论文部分内容阅读
视频图像数据间有极强的相关性,也就是说有大量的冗余信息。视频编码就是在最大程度保持视频质量的前提下,将数据中的冗余信息去掉,以较少的数据量表示被编码的信号源。冗余可分为空域冗余、时域冗余、统计冗余等。为了去除空域的冗余信息,人们采用了帧内编码技术;为了减少时域的冗余信息,人们则采用了帧间编码技术;而为了减少统计冗余信息,则采用了熵编码技术。其中,熵编码技术是一种无损压缩技术。它对变换、量化后得到的系数和运动信息,进行进一步的压缩。
AVS标准采用了一种自主知识产权的熵编码技术,对帧内编码和帧间编码后的语法元素和残差信息进行进一步的压缩。AVS熵编码中采用的主要编码方式主要有:固定长度编码,K-阶指数哥伦布编码和基于内容2D-VLC编码。熵编码器处理各种不规整的语法元素,在每个宏块周期内处理的数据量也会随着每个宏块的编码方式的不同而变化,并且前后数据间具有严格的时序性和依赖性。设计者在设计熵编码结构时不仅需要考虑最坏情况下的处理性能,而且还要考虑设计后的运行速度和硬件资源消耗,这往往会给设计者带来很大的挑战。
首先,本文针对AVS标准熵编码技术提出一种高速低硬件资源消耗的适合高清视频实时编码的熵编码结构。通过将整个熵编码器分成两级流水线结构,使产生宏块头参数和编码宏块头参数处于不同的流水级,消除了等待时间,同时合理分配了编码时间。每级流水线内部采用了单路流水线硬件结构,与传统的多路并行结构相比,节省了大量硬件资源;整个变长编码模块采用了多级流水线结构,完成一级操作只需要1个时钟。因此,该熵编码器能够在每个时钟内完成一次变长编码操作。顺序编码宏块头信息和残差系数,复用一套哥伦布编码和码流拼接装置,节省了硬件成本,提高了资源利用率。提出了一种统一地址编排方法,对不会同时使用的表格进行编排,如变长编码码表、CBP映射表、帧场扫描地址映射表,减少了ROM的使用数量。
其次,本文同时设计了一种高速多级流水线结构的熵解码器,每个时钟解码一个语法元素,能在150MHz的频率下实现对高清视频码流解码。支持序列级、帧级、宏块级和块级语法元素解码,实现固定长度解码、哥伦布解码和2D-VLC解码。本文在设计时,为了打断变长解码过程中前后系数间的依赖性,实现一个时钟内解码一个系数,采用了一种基于查找表结构的码流移位电路。该移位电路每个时钟能够分离出一个码字,支持流水线操作,并且能在很高的频率下工作。
本文利用Verilog HDL对提出的熵编码器和熵解码器结构进行RTL描述,在Modelsim SE6.3下仿真通过,最终在Xilinx Vertex5 VLX330 FPGA上综合实现。其结果表明,本文提出的结构是有效的,完全满足AVS高清视频的编解码器的性能要求。