H.264

H.264数据元素:序列、图像、片、宏块、块

在H.264中,句法元素被组织成五个层次:序列(sequence)、图像(frame/field-picture)、片(slice)、宏块(macroblock)、子块(sub-block)。

图像(picture)、帧(frame)、场(field)
视频压缩中,一幅图像(picture)可以分成一帧(frame)或两场(field)。一般来讲,picture可以分为若干个宏块(macroblock),每个宏块可以采用不同的预测编码类型,整幅图像各宏块的类型可以不同。例如I picture只包含intra MB, P picture包含intra MB或predicted MB, B picture包含intra, predicted, 或bi-predicted MB。

I图像:I宏块

P图像:I宏块、P宏块

B图像:I宏块、P宏块、B宏块

片(slice)

H.264分层结构:VCL、NAL

作者:ivy_reny

H.264的功能分两层
VCL (VideoCoding Layer,视频编码层):负责高效的视频内容表示。

NAL(NetworkAbstraction Layer,网络提取层):负责以网络所要求的恰当的方式对数据进行打包和传送。

H264编码过程中的三种不同数据形式
SODB(String ofData Bits)数据比特串:最原始的编码数据,即VCL数据,没有任何附加数据。

RBSP(Raw ByteSequence Payload)原始字节序列载荷:在SODB的后面填加了结尾比特(RBSP trailing bits),一个bit“1”,若干bit “0”,以便字节对齐;

H.264码流:VBR、ABR、CBR

码流(Data Rate)
是指视频文件在单位时间内使用的数据流量,也叫码率,是他是视频编码中画面质量控制中最重要的部分。同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越高。

VBR(Variable Bitrate)动态比特率
也就是没有固定的比特率,压缩软件在压缩时根据音频数据即时确定使用什么比特率。这是Xing发展的算法,他们将一首歌的复杂部分用高Bitrate编码,简单部分用低Bitrate编码。主意虽然不错,可惜Xing编码器的VBR算法很差,音质与CBR相去甚远。幸运的是,Lame完美地优化了VBR算法,使之成为MP3的最佳编码模式。这是以质量为前提兼顾文件大小的方式,推荐编码模式。

ABR(Average Bitrate)平均比特率

作者:Anand V Kulkarni,技术主管,Atria Logic印度私人有限公司,班加罗尔(印度)

Atria Logic公司开发的H.264编解码IP(包括AL-H264E-4KI422-HW编码器和AL-H264D-4KI422-HW解码器)移植到Xilinx Zynq Z-7045 SoC上,能够实现UHD 4K@60fps视频流的操作,如下图所示:

Artia Logic公司开发的H.264编解码IP设计模块图

Artia Logic公司开发的H.264编解码IP设计模块图

视频编码方案之间的比较(HEVC,H.264,MPEG2等)

Jens-Rainer Ohm等人在文献《Comparison of the Coding Efficiency of Video Coding Standards—Including High Efficiency Video Coding (HEVC)》中对比了几种视频编码方案。编码方案包括:HEVC,H.264,MPEG4,H.263,MPEG2。在此我们展示他们针对1280x720,1920x1080两种分辨率的视频的测试结果。文献中使用PSNR(Peak Signal to Noise Ratio,峰值信噪比)衡量视频的质量。PSNR(Peak Signal to Noise Ratio,峰值信噪比)反映了压缩编码后的受损视频序列和原始序列之间的差别;两个序列之间差别越大,PSNR值越低,表明视频的质量越差。几种编码方案的码率与PSNR的对应关系如图所示。

有关PSNR的知识可以参考文章:

全参考视频质量评价方法(PSNR,SSIM)以及相关数据库

同步内容