Hi all,

 

According to the TI MPEG4 encoder specs this codec supports two types of
encoding : MPEG4 or H.263 and the encoding choice is performed by specifying
a different value of an extended configuration parameter.

 

We are having troubles using the MPEG4 encoder with the H.263 configuration
(IMP4VENC_Params.encodeMode = 0): It looks like the encoded bitstream is
always done according to MPEG4 layering structure (VO_HEADER, VOL_HEADER,
ecc.) instead of using the H.263 layering structure(Picture Header, GOB
Header, ecc.).

 

It is now clear if this is an expected behavior of the encoder or if we are
making some mistake in configuring the encoder.

 

Does anyone has any suggestion about that or has experienced the same
problem?

 

We are using the following version of software/firmware:

.         DVSDK                                 Ver. 1.30.00.40

.         Codec Engine                    Ver. 2.00.01

.         DSP BIOS                            Ver. 5.31.01

.         Codec Boundle                Ver. 1.34

.         XDAIS                                  Ver. 6.00.01

 

Below you'll find also the code we use to create the encoder:

 

IMP4VENC_Params params; //extended VIDENC_Params;

            CLEAR(params);

            params.videncParams.size = sizeof(IMP4VENC_Params);

            params.videncParams.encodingPreset        = XDM_DEFAULT;

            params.videncParams.dataEndianness        = XDM_BYTE;

            params.videncParams.inputContentType      = IVIDEO_PROGRESSIVE;

            params.videncParams.inputChromaFormat     = XDM_YUV_422ILE;

 

            params.videncParams.rateControlPreset     = bitrate < 0 ?
IVIDEO_NONE : IVIDEO_LOW_DELAY;

            params.videncParams.maxFrameRate          = framerate;

            params.videncParams.maxBitRate            = bitrate < 0 ? 0 :
bitrate;

            params.videncParams.maxInterFrameInterval = 1;

            params.videncParams.maxHeight             = D1_HEIGHT;//height;

            params.videncParams.maxWidth              = D1_WIDTH;//width;

            

            params.encodeMode = 0;             // Encoding mode, 0: H.263
mode, 1 : MPEG4 mode

            params.levelIdc = 5;               // Profile level indication
for MPEG4 

            params.numFrames = 0x7fffffff;     // Number of frames to be
encoded. This parameter is used only for VM4 rate control inside encoder 

            params.rcAlgo = 8;                 // Rate Control Method, 0:
disable rate control, 1-TM5,  2-modified TMN5, 4-PLR3, 5-VM4, 6 : mod TM5 

            params.vbvBufferSize =112;         // vbv_buffer_size (in
multiples of 16 kbit) 

            params.useVOS = 0;                 // VOS header insertion, 0 =
off, 1 = on 

            params.useGOV = 0;                 // GOV header insertion, 0 =
off, 1 = on 

            params.useDataPartition = 0;       // Data partioning, 0 = off ,
1 = on 

            params.useRVLC = 0;                // RVLC, 0 = off , 1 = on 

            params.maxDelay = 1000;            // max delay for rate control
interms of ms, set it to 1000 for 1 second delay

 

            //create H263 Algorithm.            

            VIDENC_Status        encStatus;

            XDAS_Int32           status;

            DBG("Create mpeg4 encoder algorithm\n");

            hEncode = VIDENC_create(hEngine, "mpeg4enc", (VIDENC_Params
*)&params);

 

            if (hEncode == NULL) {

                  ERR("Can't open encode algorithm: %s\n", "mpeg4enc");

 

 

Regards,

 

Alberto Navatta

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to