论文部分内容阅读
高速传输对于日常生活来说已经很普通了,闪存、硬盘及光盘的存储能力比以往任何时候都强。传输或存储的成本正在持续下降,那么,为什么要视频压缩,又为什么要做那么大的努力来改进视频压缩性能呢?这是因为视频压缩有两个重要的优点:首先,视频压缩使得在某些传输和存储介质中能够使用数字视频,这些介质不能支持未压缩视频;其次,视频压缩使得存储和传输资源的应用更加专业。在过去20多年里,图象和视频压缩已经成为研究与发展的一个活跃课题。各种不同的压缩和解压缩算法和系统已经被设计和开发。为了提升竞争力、增加可选择性,有必要定义标准的编码和解码压缩算法,从而使得不同公司的产品能够相互兼容。这促使了包括JPEG、MPEG和H.26X等一系列标准在内的图象和视频压缩国际标准的产生。视频压缩算法通过除去时间、空间和频率域的冗余来完成。通过消除不同类型的冗余,可以大量压缩数据,但要以一定量的信息丢失为代价。通过对处理的数据使用如Huffman编码或者代数编码等熵编码技术能够获得更多的压缩。比起早期的编码标准(H.263、MPEG-2和MPEG-4),H.264在高、低速码率下都增加了编码性能。按照视觉及编码特性,H.264/MPEG4的第十部使用率失真优化技术以获得最好的结果。为了实现率失真最优化,编译器在不同的预先定义的模式中通过全局搜索最佳模式来对视频进行编码。因此,编译器的计算复杂性显著增加,显然这不利于诸如实时视频通信之类的实际应用。本论文主要致力于研究如何降低在H.264/MPEG4第十部分中相关的计算复杂度,主要研究结果总结如下。改进的帧内和帧间预测技术是H.264成功的主要因素。帧间预测由率失真约束方式决定,它是H.264/AVC帧内编译器中最重要的技术。H.264/AVC帧内编译器在编码性能和计算复杂性方面可以与最新的图象编码标准JPEG2000相匹敌。如果在帧内模式对一个块或宏块进行编码,那么在前面被编码和重建(但是未过滤)块的基础上可形成一个预测块,并在编码之前从当前块中减去这个预测块。在基本档次中,对于亮度(luma)成分,可以为每个4×4子块或16×16宏块形成预测块。对每个4×4 luma块总共有9个可选预测模式,对每个16×16块有4个可选模式。对于色度组成,有4个预测块应用于两个8×8色度块。论文首先提出了利用并行处理来提高帧内块间预测的速度。在实时多媒体情况下,计算复杂性成为一个主要约束,所以人们努力探索快速算法进行块间预测。许多现存的“快速”块间预测算法通过减少参考数量来降低计算量,视频编码器计算复杂性的降低影响解码后视频的质量。H.264算法中的全局搜索与所有模式计算和比较,所以理所当然能选出最好的模式。我们用并行处理来解决这个问题,因为并行算法大量节省了时间,同时提高处理问题的能力。我们选择FPGA(现场可编程门阵列)作为并行处理平台。FPGA这样的电路是并行的,因为每个子电路独立执行自己的功能。文中对4×4大小的块实现了9种模式的预测,在FPGA上实现了串行和并行两种方法。结果表明通过并行处理找到的最优预测模式比串行处理需要的时间少,而且性能没有下降。我们提出了一种有效技术来传输块预测模式的编号。对每个4×4块,必须把块预测模式的编号发送给解码器,这需要大量的比特。然而,对于4×4块邻域的预测模式常常是相互关联的。利用这些相关性,可以用预测编码来对编号进行压缩。在图像帧的边界,由于预测可用的像素有限,我们不能应用所有模式。现在的问题是,使用与9个模型所采取的相同技术标志更少数目的模式可行吗?我们提出不同的方法来传输4×4块预测模式。提出的信号发送帧/片段顶部边界三种模式(1,2和8)的技术如下:编码器为每个4×4块发送一个标志,如果标志为“1”,最可能的预测模式就被使用了;如果标志为“0”,就发送另一个标志,来表明下一个最可能的模式,如果标志仍为“0”,就送出另外1比特来表明剩余的两种模式。我们提出三种不同的技术来发送帧/片段左部边界的四种模式(0,2,3和7)。第一种技术中,我们用2比特编码表示4个值。第二种技术与9种预测模式相似,只是有一点改变,编码器为每个块发送一个标志,如果标志等于1,就使用了最可能的预测模式,如果标志等于0,就发送了另外一个参数(2比特),表示剩余的3种模式。第三种技术与第二种有些微不同,即如果标志等于0,就发送另一个标志表明下一个最可能的模式,如果标志又等于0,就发送另外1比特表示剩余的2种模式。实验结果表明提出的方法优于现有方法(所提出的方法传输预测模式编号的比特数少于现有方法)。此外,我们还提出了另一种技术,通过选择更少的模式,来进行快速块预测模式决策。如我们在前段中所提及的,在帧/片段边界应用所有的4×4 luma块预测模式是不实际的。预测模式减少就可以节省标志块预测模式的比特。例如,仅有三个4×4块预测模式(1,2和8)能够应用于帧/片段顶部边界,四个块预测模型(0,2,3和7)能够应用于帧/片段的左边界,七个4×4块预测模式(1,2,3,4,5,6和8)能够应用于帧/片段的右边界,九个预测模式能够用于4×4块的其他部分。在帧/片段的右边界我们只选择五个模式来代替七个模式,并且计算五个模块不同组合的RD性能。相似的,我们只选择五个模式来代替九个模式,并且计算五个模块不同组合的RD性能。通过分析实验结果我们知道,右边界五个模式(0,1,2,4和8)的组合给出最好的结果,4×4块其他部分五个模式(0,1,3,4和8)的组合有最好的RD性能。同样,我们用上文提出的技术发送帧上边界的3种模式。对于发送帧左边界的4种块预测模式,我们用上文提出的第三种技术,该技术中使用了2个标志。提出的五个块间预测模块信号发送技术如下:编码器为每个4×4块发送一个标志,就是以前的块间4×4预测模块,如果标志为“1”,最可能的预测模式就被使用了;如果标志为“0”,一个剩余块间4×4预测模式参数(2bits)就被发送到信号剩余的四个模块。通过选择较少的模式,我们储存了许多比特来发送块预测模式,但是另一方面,为剩余的系数编码需要更多比特。实验结果表明在相同峰值信噪比的情况下,由于预测模式减少,残差增大,那么对残差系数编码增加的比特与块预测方式减少降低的比特数是相当的。通过使用所提出技术,计算速度(寻找最好的4×4帧内预测模型)能够增加45%,且没有显著的性能损失。最后研究了自适应更新表中的数值来对系数标志进行编码。在新的H.264/AVC标准中,当熵编码模模式为零的时候,其余的数据块使用一个上下文自适应的变长编码(CAVLC)方案来编码。第一个系数标志VLC编码非零系数和曳尾的系数的总数。查找表用于为一个4×4块编码系数标志,它有四种选择。我们论述了自适应地给更可能的对(系数个数,曳尾的系数)分配更短的编码的结果,反之亦然。因为三对( (0,0),(1,1)和(2,2))的概率曲线之间存在较大的差距,所以自适应的概率更新不能得出更好的结果。其他对的概率曲线彼此相交,且自适应的概率更新能够得出更好的结果,但是这样的对的概率很小(≈10 %)。