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
*)¶ms);
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