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

H.264 baseline streams

ssingh179
Beginner
567 Views
Hi,

Is it possible to create H.264 bitstreams which are (strictly) baseline using the H.264 encoder as implemented in the sample code?

Thanks,
S

0 Kudos
2 Replies
Ying_H_Intel
Employee
567 Views
Quoting - ssingh179
Hi,

Is it possible to create H.264 bitstreams which are (strictly) baseline using the H.264 encoder as implemented in the sample code?

Thanks,
S


Hi S,

You may have read the paper about H.264 encoder parameter setting in
http://software.intel.com/en-us/articles/setting-h264-encoding-parameters-in-intel-ipp-media-processing-samples/


the line 7
100 0 /* profile_idc (77-main, 100-high); level_idc (set 0 for automatic selection) (check that num_ref_frames and frame size are in accordance with the level) */

when 66 - Baseline.
(UMC also support 100 - High, 110 - High10, 122 - High422, 144 -
High444 (for lossless mode only).

But as you read the readme file, the encoder of IPP is just a sample code and have limitation
Known Limitations
Encoder produce only JM9.2 compatible streams
SI and SP slice types are not supported.
Slice Data Partitioning is not supported.
- Annex A - Enforcement of Profile and Level Restrictions is not supported.
- Annex C - Full conformance with HRD (Hypothetical Reference Decoder) is not supported.
- Annex D - SEI (Supplemental Enhancement Information) is not supported.
- Annex E - VUI (Video Usability Information) is not supported.
Long Term Reference frames are not supported.
FMO (flexible macroblock ordering) is not supported.
ASO (arbitrary slice order) is not supported.
Weighted prediction is not supported.
The encoder only supports slices with MBs in raster order. All slices are the same size (in MBs) with any remainder going to the final slice. The maximum number of slices is the number of MB rows (one slice per row of 16x16 MBs).
Encoder does not support frame resizing. Thus input and output frame sizes should be the same.
Custom and default scale matrices are not supported. Standard scaling matrices are always used.
Transform 8x8 can be used for inter coding only.
The encoder assumes that input VideoData object contains frame in YUV420 (I420 according to FOURCC.org) format.

and if refer to the wiki http://en.wikipedia.org/wiki/H.264/MPEG-4_AVC,thenin general, no, the sampe code can't. but it may depends what exact means of "strictly"baseline:).

Regards,
Ying
0 Kudos
ssingh179
Beginner
567 Views
Hi Ying,

Thanks for your reply, but I am already aware of the information that you have provided.

Recommendation ITU-T H.264, annex A.2.1 (Baseline profile) specifies a set of constraints. If a bitstream satisfies these constraints, the bitstream is baseline, else its not baseline. That is what I mean by *strictly* baseline - a bitstream which meets all the constrains set in this section (annex A.2.1) of Recommendation ITU-T H.264.
0 Kudos
Reply