论文部分内容阅读
H.264/AVC的颁布是视频压缩编码学科发展中的一件大事,它的优异的压缩性能也将在数字电视广播、视频实时通信、网络视频流媒体传递以及多媒体通信等各个方面发挥重要作用。本文重点研究H.264的熵解码过程电路的实现。在进行具体的实现时,针对各个难点,本论文分别提出了解决方案,这些方案也许不是最好的解决方案,但却可以自始至终为实现所服务。本文将以时序、速度为最终的设计指标,并将这两者作为首要的设计准则,在设计中力求达到这两者的最优化和折衷。
H.264不仅具有优异的压缩性能,而且具有良好的网络亲和性,这对实时视频通信是十分重要的。但是这种优异的性能是用硬件实现的复杂度换来的。怎样克服网络传输上的误码,或者说怎样对误码进行掩盖,是在熵解码时要特别注意的问题。
H.264的熵编码中运用了三种十分先进的技术:指数哥伦布码(Exp-Golomb)、基于上下文的可变长编码(CAVLC)以及基于上下文的算术二进制编码(CABAC)。在本文中将会对前两种码字的解码进行详细、全面的分析和实现,以期形成一个较完整高效的熵解码器。在分析熵解码器和桶形移位寄存器的接口时,本文详细分析了其中的各种信号和数据流,对移位长度和解码进行了分离,提出了移位长度对实时性要求更高这一重要结论,并用这一结论指导了整个解码过程,这是本文的一个创新。在对Exp-Golomb码和CAVLC码的解码器的设计中,我们都贯彻了这一点,将快速、准确地输出移位长度放在了首要位置。
相对于上述两种解码器来说,熵解码的其它部分的电路设计的难度和复杂度较少,但是在实现的过程中会有很多细节的因素,因此在实现时,本文对各个细节进行了分析和解决,并经常考虑到调试的情况,力求设计并实现一个便于后期调试的熵解码器。
在进行设计和实现的同时,本文对测试环境进行了搭建。在搭建测试平台的过程中,本文比较了各种方法的优点和缺点,给出了完整的、基于PC的测试平台。该平台整合了EDA工具,参考模型和脚本语言,用H.264的软件参考模型(JM)生成测试向量作为激励,用仿真工具进行了功能仿真,并进行了专用集成电路(ASIC)的综合后仿真,同时将输出的结果同JM参考模型的结果进行比较,在比较时采用了Perl脚本语言以避免人工比较的复杂性和易出错性。这是本文的又一个创新点。
本文在完成理论设计和实验的基础上,提出了一个较完整的H.264熵解码器系统设计方案,提供了综合脚本、测试脚本等一系列材料。在本文的完成过程中,不但本身实现了熵解码的设计,还为H.264的其它模块的设计提供了可用的接口,为其它模块的实现提供了可行性和快速性,可以为其它模块调用。