基于Wince的H.264解码器的设计与实现(2)
时间:2018-06-01 21:36 来源:毕业论文 作者:毕业论文 点击:次
码流进行解码,完成图像重构。图 2 展示了解码器的总框图。 图中可以看出,解码的基本流程为:将 NAL 数据位流输入到 H.264 解码器 中, 熵解码模块解码后输出量化系数 X, 系数经过反量化和变化得到残差数据R; 解码器使用从码流中解码的信息经过熵解码、重排序、反量化和反变换得到预测 块 Pred,然后做求和处理得到原数据块,每个块经过去块效滤波器得到原来的图 像块 F。 2.2 熵解码 熵解码算法有两种一种是上下文自适应变长编码(CAVLC) ,另一种是上下 文自适应二进制算数编码(CABAC)。 CAVLC 的基本思想就是对经常出现的符号使用短的码字,而不经常出现的 符号采用较长的码字,这样可以使得总体来说平均码长最小。CAVCL 熵解码中 采用若干 VLC 码表,这些码表事先排列好以对应不同的概率模型。编码器能够 根据上下文统合的处理在这些码表中自动地选择适合的码表。 最大可能地增大压 缩比实现整体码长最小。 2.3 重排序、反量化和反变换 量化技术和变换编码技术在 H.264 中的应用是为了进一步对图像信息进行 压缩。 一般在反量化反变换过程中得到残差, 再结合参考帧完成图像的重建工作。 主要流程如图 3 所示。 2.4 帧内预测 帧内预测在视频的编码中是用来减少当前图像的空间复杂度。在 H.264中, 当编码时图像时间关联不紧密时,则就很有必要对该图像进行帧内预测。在编码 时,待编码宏块与其周围的宏块上的空间联系很密切,所以 H.264的帧内预测会 压缩有联系的空间相近宏块, 用以提高编码的效率, 提高压缩比。 在帧内预测时, 选择待编码宏块相邻像素点作为参考来生成它的预测值, 而预测值与原来值的差 就是差值信息,在信息量上与原始的信息相比,要大大减少。而在解码时,通过 差值和宏块预测然后求和就可以得到原始的宏块信息。 2.5 帧间预测 H.264的帧间预测是采用先前已经完成编码的编码帧结合基于块的运动补偿 对当前图像进行预测编码的一种方式。 它通过运动矢量的补偿把参考图像的抽样 点,作为当前图像的参考值。和以往标准相比,H.264帧间预测的区别在于块尺 寸更加丰富。 3.操作系统的选择与定制 3.1 操作系统的选择 根据不同用户对操作系统的需求, 在选择嵌入式操作系统时主要考虑以下几 个方面: (1) 成本问题:对嵌入式系统的使用时要支付的费用是一个考虑因素。 (2) 系统定制能力和开发周期:用户的需求各不相同,硬件也不尽相同。利 用哪类嵌入式操作系统的开发周期比较短,能提高开发速度。Windows CE 有丰 富的人力资源,而且可以根据系统功能需求直接做减法,去掉不需要的功能。 (3) 用户界面:友好的界面可以让用户很容易的进行操作。 通过以上 3 个因素考虑,本系统采用 Windows CE 5.0作为操作系统,完全 可以满足系统的要求。为方便 Windows CE 的定制使用界面十分友好的嵌入式平 台工具 Platform Builder, 可以根据系统需求直接对其进行定制。 同时 Windows CE 具有杰出的图形用户界面。而且因为有和 VC++基本相同的特点,开发工具 Embedded Visual C++为开发人员提供了一个熟悉的和 VS2005 几乎一样的编程 环境,因此系统有很大的优越性,开发周期短。 (责任编辑:qin) |