视频编解码芯片设计原理----01 概论
本系列主要介绍视频编解码芯片的设计,以HEVC视频编码标准为基础,简要介绍编解码芯片的整体硬件架构设计以及各核心模块的算法优化与硬件流水线设计。本文为概论部分,将简单介绍图像视频的基本信息和视频编码的基础知识。
随着信息时代的高速发展,视频已经成为了不可或缺的信息载体。为了便于对视频进行存储和传输,实际应用中必须对庞大的视频数据量进行压缩,即视频编码 (Video Coding)。
1视频的组成
帧
视频是按照一定时间间隔采集的静止图像序列,一幅图像也被称为一帧 (frame)。
像素
在空间维度上,一帧图像可以视为一个像素 (pixel) 点阵,像素是图像不可分割的最小单位。
分辨率
像素的行列数用于表示图像的(空间)分辨率。对于面积相同的图像,分辨率越高,图像细节越清晰。
帧率
每秒包含的帧数被称为帧率,单位为fps (frame per second)。帧率更高的视频能够给人更加平滑连贯的视觉体验,能够流畅地显示高速运动的视频。
场
为了节约传输带宽,或者提高时间采样率,可以将一帧分为两个场(field) 分别扫描。先扫描所有奇数行构成顶场,再扫描所有偶数行构成底场。
量化空间
像素的幅度值如果用n比特进行表示,则称量化深度为n。要采集或呈现高动态范围 (HDR) 的图像,就需要较大的量化深度。
码率
码率又称比特率,是指单位时间传送数据的比特数,单位为bps (bit per second)。常见单位有每秒千比特 (kbps)、每秒兆比特 (Mbps) 等。
2色彩空间
RGB色彩空间
根据三基色原理,自然界中的绝大部分色彩,都可以由三种基色按一定比例混合得到;反之,任意一种色彩均可被分解为三种基色。其中,人眼对红 (R)、绿 (G)、蓝 (B) 三种颜色最为敏感,而采用这三种基色表示色彩的方法,即为RGB色彩空间。颜色是由亮度 (luma) 和色度 (chroma) 共同表示的,色度反映的是不包括亮度在内的色彩信息。但是,RGB色彩空间的三个分量值均与亮度相关,一旦亮度发生改变,三个分量的值均会相应改变,因此RGB色彩空间并非图像处理的最佳选择。
YUV色彩空间
YUV色彩空间使用1个亮度分量 (Y) 和两个色度分量 (U、V) 来表示像素。在YUV家族中,YCbCr是应用最为广泛的,其中Cb指蓝色色度分量,Cr指红色色度分量。相较于亮度,人眼对色度的敏感程度更低,因此可以适当降低色度的采样精度来节约比特数,即色度亚采样。下图展现了常见视频采样格式中,亮度和色度样本的位置分布。以4:2:0格式 (YUV420) 为例,色度在垂直、水平方向上的采样精度,均只有亮度采样精度的1/2。
3数据冗余
视频中存在着大量的冗余,而视频编码本质上就是要消除这些冗余,从而实现对视频数据的压缩。各种类型的冗余为图像序列的编码压缩提供了广阔的空间。
目前广泛应用的混合编码架构,就基于不同的冗余提出了许多编码工具,如基于空间冗余的帧内预测,基于时间冗余的帧间预测,基于视觉冗余的量化,基于信息熵冗余的熵编码,以及基于数学的变换等等。
4编码层次
对于视频编解码而言,编码单元反映了处理的基本单位。目前,块级编码在视频编码算法中使用得最为广泛。为了组织编解码的架构,定义了如下图所示的编码层次,依次为序列、图像组、帧/图像、切片、编码单元(块/子块)。编码过程按照编码层次,逐层深入、依次进行。而解码过程则是编码的逆过程。