>
首页 » 业界动态 » 基于H.264/AVC和AVS的视频解码芯片系统结构设计

基于H.264/AVC和AVS的视频解码芯片系统结构设计

作者:  时间:2007-10-11 07:14  来源:

1 引言

一般来说,视频信号处理算法都需要高计算能力和高吞吐量,为了满足高清晰度视频所需的运算要求,视频解码广泛采用硬件实现或硬件加速引擎。同时,多个视频编解码标准的共存,给视频解码器的设计带来了挑战。例如H.264/AVC(以下简称H.264)是最新的视频编码标准,AVS是中国最新的音视频编解码标准。在多标准视频解码器芯片的设计中,需要在分析各个标准的宏观算法和局部异同点的基础上,以灵活的、可重构的方式设计模块结构,实现硬件可重用。

2 H.264和AVS的算法分析

现有的视频编解码标准(如H.264,AVS)都是基于混合视频编码框架,主要包含以下5个模块:熵解码、变换/量化、帧内预测、帧间预测和环路滤波,如图1所示。

  

可将各个模块表述为一个参数化的流程,通过参数来体现其技术细节上的差异。

熵解码:H.264和AVS都采用VLC作为熵编码工具。在AVS中,采用K阶指数哥伦布码与2D-VLC相结合的方法,即将(run,level)通过自适应选择码表映射为一个语法元素,对这个语法元素采用指数哥伦布编码。在H.264中,将run与level分开,把系数映射成5个语法元素进行编码,使用多个码表来实现内容的自适应。因此,H.264和AVS熵解码的控制和码表都不同。为了支持H.264和AVS两个标准,需要单独设计控制表和码表。

变换:变换矩阵是决定变换操作的最关键参数之一。在H.264中包含4×4和8×8变换,而AVS仅用8×8变换。通过可变块大小多变换的可配置结构可实现对8×8变换和4×4变换的支持,复用其数据路径运算单元。

  量化:假设经过变换后的系数矩阵为A,经过量化后,生成量化系数矩阵Q,反量化后,生成矩阵B。混合视频编码框架的量化和反量化过程可分别表示为

  

  

量化和反量化过程可由4个参数决定:Quant(QP),DequantTable(QP),QShiftTable(QP)和IQShift-Table(QP)。

帧内预测:从处理流程的角度可分为帧内模式预测和像素值的帧内预测。先根据相邻块的帧内预测模式,得到当前块的帧内预测模式;再用当前块的帧内预测模式以及当前块左边和上边的像素,生成帧内预测值。H.264和AVS两种标准帧内预测的差异在于块大小的不同,以及两种帧内预测模式(Intra_luma_DC和Intra_Luma_Down_left)对像素的预测操作不同。采用可配置的像素预测生成单元,可以有效的复用各种帧内预测模式的数据路径,并支持H.264和AVS的帧内像素预测操作。

帧间预测:包括3个重要步骤,即运动矢量的预测器、参考像素的读取和分像素的插值。1)在运动矢量预测中,H.264和AVS的中值预测方法不同,需要单独设计;2)对于参考像素的读取,两者的最小块大小不同,分别为4×4和8×8,当采用基于宏块的数据读取时,可用同一结构框架来读取当前宏块所需的参考像素;3)分像素插值中的重要参数是1/2和1/4像素插值所用的滤波器。在H.264中,1/2像素插值使用6-tap插值滤波器,1/4像素插值使用2-tap的插值滤波器。在AVS中,1/2像素插值和1/4像素插值分别使用不同的4-tap插值滤波器。不同插值滤波器的数据路径可复用,通过可配置的插值滤波器实现6-tap和4-tap的插值滤波。插值过程中数据访问方式相同,都包含水平方向和垂直方向的数据访问。 环路滤波:它根据相邻块的模式信息、参考索引、运动矢量和编码块模式信息来确定边界像素的滤波强度,并根据滤波强度对边界像素进行滤波,从而去除块效应。H.264和AVS的环路滤波包括水平边界的滤波和垂直边界的滤波,数据访问包含水平的行数据访问和垂直的列数据访问。

3 解码器芯片系统结构设计

3.1 双层的控制系统

系统结构上采用双层控制结构,如图2所示。高层控制器是系统总线上的RISC控制器,完成应用级以及条带级以上语法元素的解码,并通过配置控制寄存器对低层处理核进行控制。高层控制器可访问的寄存器包括低层处理核的配置寄存器、低层处理核的状态寄存器和低层处理核的调试寄存器。可访问的SRAM包括低层嵌入的所有SRAM缓存。低层控制器是各个处理核的控制器,根据高层的配置寄存器的信息,对硬件运算模块进行控制和配置,完成条带及以下的语法元素的解码。

  

3.2 多处理核的系统结构

通过分析H.264.和AVS的宏观算法和局部异同点,将混合视频解码过程分为5个处理核:VLD解析核,变换核,帧内预测核,帧间预测核以及环路滤波核,如图2中5个粗实线框所示。对于H.264和AVS标准,这5个处理模块的处理流程相同,因此可尽量地复用硬件单元,通过设置参数来实现标准的处理过程。同时,视频处理满足流处理模型,5个处理核可被划分为多个任务级的流水线阶段,各个流水线阶段通过缓存连接。

3.3 流水线结构

在流水线阶段的划分上,最重要的是各流水线阶段在处理负荷上的平衡。为减少各流水线阶段的缓存,将流水线阶段分为块级,宏块级以及帧级的混合流水线结构,如图3所示。根据码流的处理过程,熵解码核,变换核以及帧内预测核都以块为处理单元,因此这3个处理核流水线阶段形成块级的流水线阶段,中间缓存的大小为块级。帧间预测核、环路滤波核以宏块为处理单元,形成宏块级的流水线阶段。各个流水线阶段之间通过同步信号量来实现处理的同步。高层RISC控制器解析条带级以上语法元素,准备数据流并对低层宏块解码,形成帧级的流水。通过多层次的流水线系统结构,能充分实现视频处理任务级的并行,有效提高处理的吞吐量。

  

3.4 存储器系统结构

针对视频解码器中的3级存储器结构,根据解码系统的数据访问模式,分别对片上并行存储器和帧存储器进行了优化设计。

1) 片上并行存储器设计

片上存储器缓存采用并行存储器结构,提供了一个统一的方案解决字节寻址、行列数据并行访问以及矩阵并行访问模式,从而提高处理的并行度。并行存储器结构主要包括3个部分:N个存储器模块,输入/输出地址调整单元,输入/输出数据调整单元。如图4所示。N为并行存储器能提供的数据并行度,每个存储器Mi(i=0,1,…,N-1)的位宽W根据运算特性可选择为像素位宽(8 bit)或系数位宽(16 bit)。输入/输出地址调整单元根据并行访问的映射规则给出每个存储器模块的地址,输入/输出数据调整单元将并行输入的数据分配给存储器模块,或将存储器模块读出的数据调整成运算所需的顺序并行输出。输入/输出的地址调整和数据调整两单元,将并行存储器中的数据映射规则屏蔽,对于外部而言,可以将整个并行存储器视为一个位宽为N×W存储器,进行读写操作。

  

在并行存储器中实现行列数据的并行访问,要保证每一行或每一列的数据在不同存储器模块中。因此,采用线性移位的方法将原始的二维数据映射到二维的并行存储器中。设(x,y)为原始数据的二维坐标,(b,4)是映射后在二维并行存储器中的坐标,b是所在的存储器模块索引,A是在存储器模块中的地址,存储器模块数为N;则从原始二维坐标到并行存储器二维坐标的映射关系为

  

本式及后继公式均以VHDL编写,公式中各项的含义,不再赘述。

当N为4时,其数据映射如图5所示。

  

图5a为原始二维数据,按照原始的二维数据存储方式,每一行可并行输出,但同一列数据在相同存储器模块中,不能并行输出,如图5a中的第一列。通过线性移位映射,将每一行或者每一列的数据都分配到不同的存储器模块中,实现行列数据的并行访问,如图5b。

在对色度并行插值时,需要访问n×n的矩阵数据。当n为4时,设(x,y)为原始色度数据的二维坐标,其中,O≤x≤15,0≤y≤15,(b,A)是映射后在二维并行存储器中的坐标,则其映射公式为

  

其存储器模块的分配如图6所示。每个小方框为一个像素值,小方框中的数字为存储器模块的索引值。任何一个4×4像素矩阵都分布在16个存储器模块中,可实现并行输出,图6中粗实线框所示。

  

2) 帧存储器的映射

帧存储器采用基于块映射方式。设帧图像大小为W×H,将帧图像划分为w×h的矩形块,将每个w×h的矩形块存储在SDRAM的一页中。如图7所示。

  

为了减小UV分量访问的字长效应,将UV分量交叉存储,且将色度分量与亮度分量存储在同一页中,两种数据组织结构如图8所示。

  

设(x,y)分别为像素在帧图像中的水平坐标和垂直坐标,在帧存储器中的映射和寻址可表示为

  

  

其中,bank_addr是Bank的索引,page_addr是SDRAM的行地址,SDR_col是在页中的列地址。row_bits是行地址位数,col_bits是列地址位数。

4 性能分析

针对解码器系统结构,设计了视频解码器框架的5个处理核。通过混合的流水线结构,可实现多个处理核任务级上的并行,处理核通过硬件重用来实现对两个标准的支持。工作在100 MHz的工作频率上,可实现HD的实时解码。片上并行存储器结构能有效的满足视频解码系统各个处理核所需的数据访问模式,从而能发挥运算单元并行计算的能力。完成一个宏块解码所需的时钟周期如表1所示。

  

对于外部的帧存储器,因采用基于块的映射存储方式,减小了额外时钟开销,利用效率可达70%。在读取参考数据时,根据宏块类型、插值类型并采用相邻块水平和垂直方向的数据复用来减小冗余像素,对于H.264高清测试序列,平均可减少75%左右的带宽。

5 小结

本文提出了一种支持H.264和AVS的视频解码器芯片的系统结构,可满足HD应用高处理能力和高吞吐量的要求。在此结构中,采用双层的控制结构,增加了控制上的灵活性。将混合视频编码框架分为5个处理核,各处理核通过不同参数的设置来实现相应标准的处理过程,实现硬件的可重用。采用混合的多级流水线结构,充分利用视频处理任务级的并行性,提高处理的吞吐量。并分别对存储器结构的3个层次进行优化,有效提高了数据访问的效率和并行度。该结构可作为视频解码硬件加速的一个IP核。

相关推荐

H.264/AVC中CAVLC编码器的硬件设计与实现

FPGA  H.264/AVC  变长编码  2010-10-13

ST FLI7510 iDTV片上系统(SoC)方案

中国完成蓝光产品开发 播放机3年销售超千万台

2009-10-13

本土蓝光DVD绝地反击,价格仍是瓶颈

蓝光DVD  AVS  DKAA  2009-09-24

CAST 发布最高视频编码质量的新版本H.264编码IP

CAST  视频编码  H.264  RTL源代码  2009-07-21

联合信源推出国标AVS标清解码器

2009-07-02
在线研讨会
焦点