[FFmpeg-devel] Processing h264 decoder in wavefront order in FFmpeg

Winand Chen winand at gmail.com
Tue Jul 8 22:30:28 CEST 2014


Hi,

I am trying to parallel the h264 decoder in FFmpeg using wavefront
processing. I know that the function ff_h264_decode_mb_cabac performs
entropy decoding, and ff_h264_hl_decode_mb performs inverse quanization,
inverse DCT and motion compensation per MB. And loop_filter applies the
deblocking filter per row. I adjusted the values of mb_x and mb_y from the
original scanline order to wavefront order. E.g. (0,0),
(1,0),(2,0),(0,1),(3,0),(1,1)… but it showed a lot of warning messages as
follows.

[h264 @ 0x204e310] left block unavailable for requested intra mode at 117 31
[h264 @ 0x204e310] left block unavailable for requested intra4x4 mode -1 at
87 46
[h264 @ 0x204e310] top block unavailable for requested intra mode at 73 53
[h264 @ 0x204e310] top block unavailable for requested intra mode at 92 44
[...]

Do any dependencies for the scanline order still exist in these functions
after I change the processing order?

- Winand


More information about the ffmpeg-devel mailing list