Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Encoding large video frame to h264 format

yanqin
Beginner
408 Views
Hi,

I'm currently doing a project that require me to encode large video file (5520 x 480). Before i encode thisframe, i actually have to convert it from RGB to YUV.

Asmy program need to be run in real-time and I need quality video image too.i find my current setting for video encoding rather slow (It's very jerky).Is it because of RGB to YUV image conversion or because of my encoding setting that slow down the whole process?
Can anyone help me with theencoding parameter so that i can encode faster?

Below is my specification for my encoding setting:

Params.profile_idc= UMC::H264_BASE_PROFILE ;
Params.key_frame_controls.method=1;
Params.info.clip_info.height=imgHeight;
Params.info.clip_info.width=imgWidth;
Params.info.bitrate = 2000000;
Params.deblocking_filter_idc = 0;
Params.chroma_format_idc = 1;
Params.info.framerate = 25;
Params.entropy_coding_mode = 0; //CAVLC
Params.bit_depth_luma =8;
Params.bit_depth_chroma = 8;
Params.m_QualitySpeed = 0; //max speed

Best Regards,
YanQin
0 Kudos
4 Replies
Emmanuel_W_
New Contributor I
408 Views
Quoting - yanqin
Hi,

I'm currently doing a project that require me to encode large video file (5520 x 480). Before i encode thisframe, i actually have to convert it from RGB to YUV.

Asmy program need to be run in real-time and I need quality video image too.i find my current setting for video encoding rather slow (It's very jerky).Is it because of RGB to YUV image conversion or because of my encoding setting that slow down the whole process?
Can anyone help me with theencoding parameter so that i can encode faster?

Below is my specification for my encoding setting:

Params.profile_idc= UMC::H264_BASE_PROFILE ;
Params.key_frame_controls.method=1;
Params.info.clip_info.height=imgHeight;
Params.info.clip_info.width=imgWidth;
Params.info.bitrate = 2000000;
Params.deblocking_filter_idc = 0;
Params.chroma_format_idc = 1;
Params.info.framerate = 25;
Params.entropy_coding_mode = 0; //CAVLC
Params.bit_depth_luma =8;
Params.bit_depth_chroma = 8;
Params.m_QualitySpeed = 0; //max speed

Best Regards,
YanQin

Hi,

I am not sure that you will be able to encode such big image in real time with the ipp encoder. Also if you need a "good" quality image 2Mbs migth be too low. I guess it depdends what you consider "good".

Emmanuel
0 Kudos
shyaki
Beginner
408 Views
Quoting - eweber

Hi,

I am not sure that you will be able to encode such big image in real time with the ipp encoder. Also if you need a "good" quality image 2Mbs migth be too low. I guess it depdends what you consider "good".

Emmanuel

The H264 encoder is a very complex encoder. Encoding so large images will be very slow. You should consider other lighter codecs, mpeg2 or jpeg2000.
If you really need H264, you have to disable most of its advanced features such as B frames, deblocking, cabac, etc.
0 Kudos
yanqin
Beginner
408 Views
Quoting - shyaki

The H264 encoder is a very complex encoder. Encoding so large images will be very slow. You should consider other lighter codecs, mpeg2 or jpeg2000.
If you really need H264, you have to disable most of its advanced features such as B frames, deblocking, cabac, etc.

Hi Shyaki,

I'm using h.264 encoding because i need to do video streaming after encoding. Can I get a smaller file (something about the size ofH.264 encode frame). If so,may i ask u for somehead startso that i could try encoding my frames to JPEG2000? H.264 have Unified Media Class (UMC).. does Jpeg2000 provide similar class of this sort?

Regards,
YanQin
0 Kudos
shyaki
Beginner
408 Views
Quoting - yanqin

Hi Shyaki,

I'm using h.264 encoding because i need to do video streaming after encoding. Can I get a smaller file (something about the size ofH.264 encode frame). If so,may i ask u for somehead startso that i could try encoding my frames to JPEG2000? H.264 have Unified Media Class (UMC).. does Jpeg2000 provide similar class of this sort?

Regards,
YanQin

In case of video streaming, SD is good enough. I think youscan scale down your source images to NTSC or PAL before feeding them to the H264Encoder, and scale back to your resolution after H264Decoder. Encoding a SD clip should be faster than real-time by IntelEncoder.

As for JPEG2000, check the sample codes of IPP image codecs.
0 Kudos
Reply