引言

  基于互联网的数字视频产业前景看好,而3G的规模部署,也会推动移动视频通信成为现实。但数字化后的视频图像具有数据海量性,给图像的存储和传输造成较大的困难。数字视频产业,是指数字内容中以数字视频形态为主的文化创意和传播产业,及其必需依赖的多学科高科技技术支撑和保障服务产业。为此,该专家组基于帧内图像相邻像素间及相邻行间的空间相关性和相邻帧间运动图像的时间相关性,采用压缩编码技术,将那些对人眼视觉图像和人耳听觉声音不太重要的东西及冗余成分抛弃,从而缩减了存储、传输和处理的数据量,提高了频谱资源利用率,使数字化正在变为现实。数字视频压缩编码技术是解决这一问题的关键技术。H.264以其良好的网络适应性和高编码压缩效率,灵活的语法配置,在视频处理领域比以往的视频编码标准更加适合视频处理的发展方向,更加适合不同应用环境的对象。进一步提高了编码算法的压缩效率和图像回放质量。在肉眼主观感受相同的情况下,H.264较之H.263的编码效率提高了50%左右。

  利用高性能数字信号处理器(DSP)来实现H.264实时编码器是一种快速有效的方法,有助于H.264视频标准的迅速推广和应用,也指明了视频图像压缩领域最新的研究方向。数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

  1 H.264编码的关键技术

  1.1 基于灵活分割宏块(MB)的运动矢量估计和补偿以及增加变换的压缩效果

  H.264根据宏块的编码特性采用亮度块直流变换,色度块直流变换与普通差值变换相结合的方法。在运动估计时,H.264信源编码采用基于4×4块的整数变换,可以灵活地选择块的大小。而其他标准处理的像素块大小均为16×16或者8x8.H.264以可变大小的块来适应不同应用环境和要求,采用16×16,16×8,8×16,8×8四种模式;当划分为8×8模式时,又可进一步采用8×4,4×8,4×4三种子宏块划分模式进一步划分,如图1所示。根据需要由不同尺寸的宏块来执行,采用整数变换既可以使运动物体的划分更加精确,不可以减小运动物体边缘的衔接误差,处理好需要更多运动细节的场合,即以引入更小运动补偿块可以提高一般和特殊情况下的预测质量,它可以提高主观视觉效果,同时又减小了变换过程中的计算量。实验表明,应用7种不同大小和形状的块可以比单一利用16×16块进行的编码提高15%以上的压缩率。

  1.2 支持l/4像素或l/8像素精度的运动估值

  运动估计与补偿算法是目前视频压缩技术中最为关键的部分,影响着编码的速度、质量和码率,其编码的复杂度也是整个编码系统中最高的。

  在H.264中通过6阶FIR滤波器的内插获得1/2像素位置的预测值。FIR(Finite Impulse Response)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。当获得1/2像素值后,通过取整数像素位置和1/2像素位置像素值均值的方式获得l/4像素位置的值。在高码率情况下,提供1/8像素精度的运动估计。采用高精度运动估计会进一步减小帧间预测误差,减少经变换和量化后的非0比特数,提高了编码效率。利用1/4像素空间精度可以比原有的一个像素精度(整数精度)预测提高20%的编码效率。

  1.3 多参考帧预测

  参考帧是帧间预测编码,也就是运动补偿的基础,根据它与待预测帧之间的位置关系,可分为前向参考帧和后向参考帧。

  以往的编解码技术在对P帧图像进行帧间预测时,只允许以参考前一帧图像进行编码,即以前一个I图像或P图像为参考帧,在对B图像进行预测时,只允许参考前后帧图像进行编码,即以前后两个I图像或P图像为参考图像。H.264则打破了这些限制,允许在从当前帧的前几帧中选择一帧作为参考帧图像,对宏块进行运动预测,当选用多参考帧模式时。编码器从几个参考帧中选择一个效果最好的参考帧,编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。 编码器把角位移或直线位移转换成电信号,前者成为码盘,后者称码尺。按照读出方式编码器可以分为接触式和非接触式两种。接触式采用电刷输出,一电刷接触导电区或绝缘区来表示代码的状态是"1"还是"0";非接触式的接受敏感元件是光敏元件或磁敏元件,采用光敏元件时以透光区和不透光区来表示代码的状态是"1"还是"0",通过"1"和"0"的二进制编码来将采集来的物理信号转换为机器码可读取的电信号用以通讯、传输和储存。达到最佳的预测效果,参考帧图像甚至可以是采用双向预测编码方式的图像,大幅度降低了预测误差。另

  因此,多参考帧预测对周期性运动和背景切换能够提供更好的预测效果。

  1.4 消除块效厘适应性滤波器

  基于分块处理的变换编码算法,忽略了物体边缘的连续性,在低码率情况下,容易出现方块效应。为消除在预测和变换过程中引入的块效应,H.264对此采用了消除块效应适应性滤波器,对宏块边缘进行平滑,有效改进图像的主观质量。但与以往标准不同的是,H.264的消除块效应滤波器位于运动估计循环内部,可以利用消除块效应以后的图像去预测其他图像的运动,即滤波后宏块用于运动估计,以产生更小的帧差进行编码,进一步提高预测精度。

  1.5 增强的熵编码

  以往标准的熵编码采用变长的哈夫曼编码,码表统一,不能适应变换多端的视频内容,影响编码效率。根据视频内容的不同,H.264利用较短的码字来代表出现,高频率的符号,可进一步去除码流中的冗余,提供两种熵编码,即上下文自适应二进制算术编码(CABAC)和基于内容的自适应可变长编码(CAVLC),CABAC的编码效率更高,也更复杂,在相同图像质量下,使用CABAC编码电视信号可降低10%左右(10%~15%)的码率,后者具有较强抗误码能力。

  2 H.264的视频编解码的DSP平台实现

  在数字图像处理中,要完成大量的数字信号处理工作,特别是对于H.264这样的新一代视频压缩编码标准。就其Baseline而言,其解码复杂度是同等情况下H.263的2倍,而编码复杂度更是H.263的3倍,解决这种高运算量问题,很大程度上依赖于高速DSP技术,而且采用半导体制造工艺生产的DSP处理器可以有更低的功耗。

  TI公司生产的DM64X系列芯片具有超高主频、很强的并行处理能力和信号处理功能,是实现H.264编解码的理想平台。

  TI公司生产的642系列是一款专门面向多媒体应用的专用DSP,该DSP时钟频率高达600 MHz,8个并行运算单元,处理能力达4 800 MIPS.它是在C64X的基础上,增加了很多外围设备和接口。可见,DM642是一个强大的多媒体处理器,是构成多媒体通信系统的良好平台。

  该系统主要是为了对模拟视频图像(PAL制式)进行采集,之后对其进行压缩,然后把压缩后的数据通过扩频的方式发送到接收端,在接收端接收码流后由DSP进行解压缩,之后再由DSP负责图像的显示,存储等。所以总体设计方案必须包括视频的输入/输出、网络等接口。设计图如图2所示。

  在发送端,视频输出由视频A/D芯片先转换为数字视频信号,然后输入到DM642的视频端口2,由DM642进行图像采集,并把图像数据送入SDRAM中,同时DM642对视频图像进行实时压缩,并把压缩后的数据通过McBSP发送到信道编码部分,完成发送端的工作。在接收端,接收由信道译码部分送来的压缩图像数据,然后由DM642完成图像的实时解压,并把解压后的数据送到SDRAM中,然后把解压后的图像数据送人视频端口0,再由视频端口0把数据送入视频D/A,完成视频的实时显示。图2中音频/视频接口作为扩展,10/100Mb/s的以太网卡以及USB控制器外设主要是为了方便接收端直接把数字视频信号传送到计算机或者终端各处,供电及复位电路完成对电路板的供电及复位功能。

  3 H.264的视频编解码的DSP优化

  将H.264编码器移植到DM642图像处理平台上,由于H.264的核心算法不仅在代码结构上需要改进,而且在具体的核心算法上也需要做较大的改动,因此整个系统的编码速度非常令人不满意,达不到实时应用的要求,因此需要从各个方面对该系统进行优化,将编码的时间减少下去。首先去除了编码器中的冗余代码,然后优化工作分三步:在PC机上实现H.264算法并进行优化;PC机H.264代码的DSP化,可以在DSP上实现H.264的编解码算法,但是,这样实现的算法运行效率很低,因为所有的代码都是由C语言编写,并没有完全利用DSP的各种性能,所以必须结合DSP本身的特点,对其进一步优化,才能实现H.264视频解码器算法对视频图像的实时处理,即要H.264的DSP算法优化。对于DSP代码的优化共分为三个层次:项目级优化、C程序级优化、汇编程序级优化。

  4 结语

  在上述环境下,解码器算法对QCIF测试序列已经能够达到45~60 f/s的解码速度,达到了实时性解码的目的。测试结果表明,图像主观质量较好,无明显方块效应,码率也比较低。另外,图像编码的实时性能与图像的内容、运动的剧烈程度等都有一定的关系。在DM642板卡上实现的H.264视频编解码器具有功能强,使用灵活等特点,有广泛的应用前景。RADVISION策略的关键是在SCOPIA架构中支持H.264-SVC技术,这样RADVISION的支持SVC的SCOPIA桌面系统就可以与诸如H.263和H.264等其它标准视频编解码技术互通。可以向同一个会议室接入不同的设备,每台设备根据其性能均可获得最佳的视频编解码质量。不支持H.264-SVC的设备仍可通过H.263或H.264方式进行连接,相信在不久的将来,基于H.264算法和DSP处理器的可视电话、视频会议、有线电视、无线流媒体通信等产品会逐渐地走进千家万户,视频编解码器在嵌入式处理终端上的应用会渐渐地成为应用的主流。

解析H.264视频编解码DSP实现与优化相关推荐

  1. H.264视频编解码的FPGA源码分析(一)输入数据分析

    目录 概要 输入数据 宏块 概要 本文的源码基于复旦大学的开源芯片-开源H.265/H.264视频编码器项目,本文的工作主要是在梳理源码的同时学习H.264视频编解码的原理及其硬件实现. 输入数据 C ...

  2. H.264视频编解码的FPGA源码分析(二)帧内预测1

    目录 帧内预测算法原理 基于论文的普通介绍 硬件实现 亮度块与色度块的划分 4×4亮度预测模块 如何产生预测像素与残差像素? 垂直模式`INTRA4x4_V` 水平模式`INTRA4x4_H` 直流模 ...

  3. H.264视频编解码的代码移植和优化

    基于DSP系统开发的视频编解码系统,国内几乎都是走的移植,优化的路线,并且移植的代码,都是开源的.毕竟花费大量的人力,物力去开发一套自己的代码,并不见得比一些成熟的开源代码效率更高,健壮性更好.更何况 ...

  4. H.266/VVC视频编解码标准

    H.266多功能视频编码编解码器标准,新的H.266 /VCC编解码器在保持清晰度不变的情况下,数据压缩效率获得极大提高,数据量减少了50%. 新标准的公告中指出,由于改进了压缩技术,H.266将减少 ...

  5. 数据压缩12 | 实验8 | H.264视频编解码

    目录 一.实验准备 1. H.264编码过程 2. 调试和编码(参考JM Reference Software Manual (JVT-AE010)) 3. 编码参数(参考JM Reference S ...

  6. H.264解码器中CAVLC码表查找算法的分析与优化

    0 引言    近年来,随着信息技术飞速发展和互联网的日益普及,尤其是以视频为信息主要来源的多媒体领域越来越受到人们的关注.H.264是ITU-T的视频编码专家组(VCEG)和ISO/IEC的活动图像 ...

  7. Android视频压缩实现,基于Android系统的H.264视频压缩技术实现

    3.2 底层驱动移植模块设计 Android系统本身是一个庞大的系统,移植需要考虑Android系统的硬件抽象层(HAL)和Linux中的相关设备驱动程序.移植的目的就是为了改动较小的内容,支撑较为庞 ...

  8. 音视频编解码技术(一):MPEG-4/H.264 AVC 编解码标准

    一.H264 概述 H.264,通常也被称之为H.264/AVC(或者H.264/MPEG-4 AVC或MPEG-4/H.264 AVC) 1. H.264视频编解码的意义 H.264的出现就是为了创 ...

  9. H.264算法的DSP移植与优化

    摘要:在TMS320DM643平台上实现H.264基档次编码器的移植与优化显得格外实用和必要.基于对DSP平台的结构特性和H.264的计算复杂度分析,主要从核心算法.数据传输和存储器/Cache使用几 ...

最新文章

  1. Visual Studio 6.0编译PWLib1.12总结
  2. 关于异常Exception
  3. 动态生成Repeater
  4. hsf 架构_HSF源码剖析 - 汪兴的个人空间 - OSCHINA - 中文开源技术交流社区
  5. 专访阿里云技术掌舵人蒋江伟:中台是企业的未来
  6. Redis官方中文翻译系列 - Redis文档
  7. 求mn的最大公约数和最小公倍数c语言,c语言如何求最大公约数和最小公倍数
  8. (Android7.0) init.rc与AIL(Android Init Language)语句
  9. 计算机网络计费系统是什么意思,计费系统
  10. 【Apache】配置.htaccess将主域名301重定向到www域名
  11. 【tomcat】使用jks配置https
  12. ICML 2019 Accepted Papers (Title, Author, Abstract, Code) (001-150)
  13. 什么是Python之禅?
  14. RPC通信协议远程服务调用(25)Java全栈
  15. 17.0~17.9 通知,系统通知,推送消息
  16. ci写微博php,php(CI框架)+ajax实现类似微博的东东
  17. vue 脚手架 图片预加载
  18. EXCEL VBA-Worksheets对象
  19. 怎么把字母缩小当符号_电气设计图纸中AL、AW、HAL等各种符号分别代表什么含义?...
  20. 2022年9月21日

热门文章

  1. 第二十一节:ADO层次上的海量数据处理方案(SqlBulkCopy类插入和更新)
  2. 第七节: EF的三种事务的应用场景和各自注意的问题(SaveChanges、DBContextTransaction、TransactionScope)
  3. jvm详解、GC、堆内存参数调优
  4. 【Python 必会技巧】对字典按照键(key)或者值(value)排序
  5. REVERSE-PRACTICE-BUUCTF-20
  6. 【HDU - 2639】Bone Collector II (第K大背包,dp,STLset)
  7. 【HDU - 5627】Clarke and MST(最大生成树,与运算性质,最小生成树MST变形)
  8. 【 HDU - 5363】Key Set(水题,快速幂,组合数学)
  9. 【CodeForces - 735A 】Ostap and Grasshopper (水题,模拟)
  10. 2.Functions and Getting Help