[FFmpeg-devel] how to convert clips to the special MPEG4 restricted simple profile codec.

Jeff jyang
Fri May 22 04:52:14 CEST 2009



I would like to convert video clips with other encoders (h.264 or mpeg2 or
mpeg4 etcs) to the special codec (MPEG4 restricted simple profile codec),
please check the specified codec details in the following:


Overview of MPEG4 Simple Profile Encoder:

MPEG4 is the ISO/IEC recommended standard for video compression.

Refer to ISO/IEC 14496-2:2004, Information technology -- Coding of
audio-visual objects -- Part 2: Visual

(Approved in 2004-05-24) for details on MPEG4 encoding process.

All references in this document to the MPEG4 Encoder refer to the MPEG4
Simple Profile Encoder only.


Supported Services and Features:


. Compliant with the MPEG4 simple profile levels 0, 1, 2, 3. In addition, it
can encode 720P (1280x720)

and SXVGA (1280x960) formats.

. Supports YUV 4:2:2 interleaved data as an input

. Supports image width as multiple of 16 and height as multiple of 16

. Supports Half Pel Interpolation (HPI) for motion estimation

. Supports 1 motion vector encoding for motion estimation (1MV/MB) with
(-32, +31) half pel search


. Supports following motion estimation algorithms based on MEAlgo API

- DM355_MPEG4E_ME_LQ_HP (low quality and high performance)

- DM355_MPEG4E_ME_MQ_MP (medium quality and medium performance)

- DM355_MPEG4E_ME_HQ_MP (good quality and medium performance)

- DM355_MPEG4E_ME_HQ_LP (best quality and low performance)

. Supports DC prediction. Supports AC prediction for VBR rate control mode
with fixed Qp (rateFix = 1,


. Supports generation of streams with resync marker (RM)

. Supports MPEG2 Step 2 TM5 rate control algorithm

. Supports Constrained Variable Bit Rate (IVIDEO_STORAGE), Constant Bit Rate

(IVIDEO_LOW_DELAY), Variable Bit Rate (IVIDEO_NONE) and Variable Bit Rate
with rate fix range


. Supports Intra - Inter decision at 16x16 level (for better speed) or 8x8
block level (for better quality)

level based on IIDC API parameter

. Supports Bonus Skip MB logic (for better quality) or non-Bonus Skip MB
logic (for better performance)

based on SkipMBAlgo API parameter

. Supports Unrestricted Motion Vectors (UMV)

. Supports access of motion vectors and SAD through MV access API. The
application should pass the

buffer required to write the SAD and motion vector generated. This should be
passed as an Output

buffer parameter.

. Supports the VOL header generation at frame level. The application has to
pass the buffer required to

write the VOL header generated. The encoding process is bypassed and frame
count is unaltered

when the Header generation API is called.

. Supports modification of target bit rate and frame rate (including

. Supports setting of separate Quantization Parameter (Qp) for I-frames and

. Supports changing the size of video packets at create time

. Supports Algorithm 0 (for better performance) and algorithm 1 (for better
quality) for INTRA/INTER

decision in P frames

. Supports Area Encode feature. The application can provide width, height,
sub window width and sub

window height to the algorithm for encoding. The sub-window width and
sub-window height should be

multiple of 16.

. Supports Rotation (0, 90, 180 and 270 degrees) integrated with the Encoder
up to a resolution of


. Supports changing the encoding parameters at runtime (Dynamic

. Supports frame level re-entrancy




. Does not support 4 MV

. Does not support AC prediction for varying Qp (rateFix = 0)

. Does not support ME range beyond -32 and +31. Only ME Range = 31 and ME
Range = 7 are


. Does not support DP, RVLC and HEC

. Does not support any chroma format other than 422ILE for input

. Does not support input width/height, sub-window width/height, Rate control
algorithm, VBV size, or

rotation as dynamically configurable parameters.

. Does not support the combination of the bonus SKIP MB and intra Algo


. Does not support motion vector access with intra Algo


. Does not support arbitrary width and height

- Supports image width as multiple of 16 and height as multiple of 16

- Does not support image width below 160 (without UMV)

- Does not support image width below 192 (with UMV).

. Rotation with width more than 720 or height more than 576 (for instance,
720p (1280x720) or SXVGA

(1280x960)) is not supported

. Achieved bit rate varies within +/-10% of target bit rate in CBR (Constant
Bit Rate) mode

. Minimum value of quantization parameter (Qp) is limited to 2; i.e., Qp=1
is not supported

. MV access API always provides the motion vectors for the best matching MB

. For Variable Bit Rate with rate fix range control (IMP4VENC_VBR_RATEFIX),
maximum frame rate

supported is 100.


Any help is much appreciated. Thanks.





More information about the ffmpeg-devel mailing list