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

Questions about H.264 Decoder on Media samples

fornety
Beginner
284 Views

Hi.
I develop the video conferencing server(support RTP/RTCP)using h.264 codec(on IPP media samples)
And I've tested CounterPath eyeBeam on client side. (They support h.264 codec)
But I've some problem.
I can seethe opponent's video with about 1200~1500ms delay.
So I've checked my application. But I cannot find any problem.
I think thath.264 decoderdo not outputdecoded frame immediately.
How to I get the decoded frame immediately?

Best Regards.

Development Environments :
Redhat Linux AS4, Intel Damascus(ATCA SBC), gcc

0 Kudos
2 Replies
Vladimir_Dudnik
Employee
284 Views

Hello,

according standard, H.264 decoder can keep up to 16 frames, as they might be used for prediction.

Regards,
Vladimir

0 Kudos
Vladimir_Dudnik
Employee
284 Views

Hello,

there is comment from our expert:

There is internal buffer which called DPB (Decoded Picture Buffer). By standard, decoder couldnt return frame until DPB is full enough (Its needed for correct reordering frames process). So, when there are empty slots in DPB GetFrame function returns

UMC_NOT_ENOUGH_DATA. When DPB is full enough GetFrame return UMC_OK and you can use returned frame.

For using H.264 decoder in video conference applications its recommended to manually adjust DPB buffer size.

Size of DPB depends from level_idc (IPP H.264 encoder parameter) and pictures size.

For example, picture size is 320x280. When you set level_idc to 30 then DPB size will be ~12 frames. In this case, decoder could return first frame to application only after its received and decode 12 frames. As result, long delay occurs. When you set level_idc to 10, then DPB size will be ~1-2 frames and delay will be short.

Regards,
Vladimir

0 Kudos
Reply