MJPEG Decoder

We present here an MJPEG decoder. A detailed information about this example can be found in the technical report TR-2011-1. The figure below illustrates the process network.

Fig : MJPEG decoder

The process network in describes in the file examplemjpeg.xml. The behavior of the processes splitstream, splitframe, iqzigzagidct, mergeframe and mergestream are described respectively in the files splitstream.c, splitframe.c, iqzigzagidct.c, mergeframe.c, mergestream.c. The complete source is here.

To translate the DOL specifiation into BIP and execute the BIP model, do the following steps :

  • Step1 : Generate BIP application software model
    ~ $ $BIP2_HOME/bin/dol2bip -f examplemjpeg.xml 
    Creating tmp folder...
    Parsing file : /tmp/DOL2BIP2927796489747548648tmp/libSW.bip
    Generating model : libSW.timod
    Generating model : libSW.model
    Scanning process network ...
    Process name:    splitstream
    Scanning source: splitstream.c
    ...............
    Process name:    splitframe_0
    Scanning source: splitframe.c
    Function unpack_block2 will be flattened... skipping code
    Function load_quant_tables2 will be flattened... skipping code
    ...............
    Process name:    iqzigzagidct_0
    Scanning source: iqzigzagidct.c
    ...............
    Process name:    mergeframe_0
    Scanning source: mergeframe.c
    ...............
    Process name:    mergestream
    Scanning source: mergestream.c
    ...............
    Finished generation of examplemjpeg_SWModel.bip
    Deleting tmp folder

    The application software BIP model is generated in the file examplemjpeg_SWModel.bip. This can be compiled and executed using the BIP compiler and runtime as follows :

  • Step2 : Compile
    ~$ $BIP2_HOME/bin/bipc -f examplemjpeg_SWModel.bip --genC-execute
  • Step3 : Build
    ~ $ make -f examplemjpeg_SWModel.bip.mk
  • Step4 : Execute
    ~$ ./examplemjpeg_SWModel.bip.x --quiet

    This will produce the decoded frames frame-00000.ppm and frame-00001.ppm.


Contact | Plan du site | Site réalisé avec SPIP 4.2.16 + AHUNTSIC [CC License]

info visites 3748575