[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[oc] Video compression systems (Suggesting H263 codec core)




Hi,

To get this project started, here's what I would like to suggest. In order 
to be as open as possible and to be able to expand the project to say 
MPEG-2 or similar, I would like to divide the project into separate blocks. 
Since the DCT unit is a common block for all DCT based codecs this would be 
one block, the audio codec and control logic would be another block. I 
would like to divide the web-pages and the directory structure in the same 
manner.

For example:

- video codec
   - dct block
     - dct engine
     - (de)quantization unit
     - entropy unit
       - huffman coding
         - run-length encoder/decoder
         - huffman tables
       - arithmetic coding
     -
   - H.261
   - H.263
   - MPEG-1
   - MPEG-2
   - MPEG-4
   - etc.
- audio codec
   - MPEG-1
     - layer-1
     - layer-2
     - layer-3
   - MPEG-2
   - G.711
   - G.722
   - G.723
   - G.728
   - G.729
   - etc.
- multiplexing
   - H.222.0
   - H.222.1
   - etc.
- control
   - H.230
   - H.242
   - H.245
   - etc.
- multipoint
- etc. etc
- system
   - H.320
     - video: H.261 or H.263
     - audio: G.711, G.722 or G.728
     - multiplexing: H.221
     - control: H.230 or H.242
     - multipoint: H.231
     - data: T.120
   - MJPEG
   - MPEG-1
     - MPEG-1 video
     - MPEG-1 audio
   - etc.


All directories contain blocks with a specific function, except for the 
'system' directory. It contains top-level modules that combine blocks from 
the previous directories into a complete defined system.

This is a lot of work and it requires a lot of planning to have all blocks 
operate as plug-and-play blocks, but this seems the best approach. We can 
start with a few blocks to get the H.263 codec working and then move on to 
other blocks. If people want to help, they can take on a block and thus 
extend our system.

If you want to help or want to give any comments please do so.

Richard

--
To unsubscribe from cores mailing list please visit http://www.opencores.org/mailinglists.shtml