高清视频解码

2024-05-16

高清视频解码(精选7篇)

高清视频解码 篇1

视频正在成为应急通信、指挥调度、监控识别等领域的主流业务, 那么, 市场对视频业务需求有什么变化?视频业务在应急通信中存在哪些问题?视频行业未来发展如何?带着这些问题, 本刊记者采访了北京数码视讯科技股份有限公司 (以下简称“数码视讯”) 视频通讯事业部营销总监裴文哲先生。

应急通信的业务需求变化

数码视讯是一家多媒体厂商, 以前关注应急通信中的卫星通信。如今, 公网4G、政府专网甚至依托于短波通信的无人机等通信手段与交互手法越来越丰富, 并且提供的相应链路带宽也越来越宽, 这些通信技术的发展使得业务使用模式也产生了新的变化, 裴文哲先生具体介绍了以下三个方面:

一是由集中型向服务型转化。以前把所有的基于应急通信的信息统一汇总到指挥中心, 现在由于通信手段的发展, 更多的情况下还要把信息共享到前端, 是一个双向化的过程。指挥中心的人不仅仅需要知道应急通信的信息, 前方一线的人员更希望知道后方人员知道的信息以及其他友邻单位的信息。

二是从规模化向精细化转化。以前强调对一个区域的覆盖, 例如, 以前在灾害应急指挥的过程中, 应急通信发挥了极其重要的作用, 强调一辆车或一架飞机能覆盖到的区域, 能知道灾害现场发生了什么就可以了;而今, 这个要求会更高, 在灾害或突发事件现场, 后方指挥人员不仅仅需要知道现场一个面上的情况, 比如派过去一架无人机, 就希望能了解到是否有人遇难、某个桥梁出现了什么问题。一个一线人员通过背负式设备进入现场, 这就需要设备从规模化向精细化、小型化转化, 而单兵设备小型化更加关注电池续航能力、服务能力。

三是由单一型向交互型转化。在我国应急通信领域, 以前分部门、分时间段、分体系建设, 单个部门建设自己部门的系统, 不同时期使用的技术标准更新, 造成标准难以兼容;不同体系有自己的视频会议、视频监控或卫星链路, 这些手段在某些情况下可以通过一个终端来实现, 也就是说, 不用通过不同体系来完成一个功能。交互型就是能够把不同部门、不同时间段、不同体系已经附带的信息 (如多媒体信息) , 在应用的时候都拿过来, 这就是行业里以前和现在一直都在提的互联互通。伴随着技术的发展, 通信手段的不断革新进步, 出现上述三点变化。

用户急需解决视频业务的问题

视频业务也称多媒体信息, 裴文哲先生表示, 用户在使用过程中急需解决的问题有两个:

第一个问题是小型化。无论哪个行业, 都需要派去现场的单兵能够把现场多媒体信息在第一时间传回指挥中心, 或者能够在第一时间与后端进行交互, 这是十分迫切的需求。但是如今不仅是多媒体信息的处理设备 (如我们编解码的板卡) , 也包括通信设备, 设备电池的续航能力、重量, 这些也是数码视讯等多媒体厂家要考虑的。在设备小型化方面, 数码视讯一开始从MPEG-2, H.264, H.265, 尺寸也由当初的大板卡逐渐向小型化转变, 低功耗、高质量、小型化也是我们一直追求的方向。

第二个问题是交互 (互联互通) 。这个问题最大还不是来自于技术体制, 而是能否有个机会把所有的厂家设备实现互通, 例如通过一个网关来实现相应的交互。这也是数码视讯这几年投入的重点之一, 我们研发出来的视频网关或者说多媒体网关, 基本上可以涵盖主流的视频会议厂商、视频监控厂商、视频指挥厂商, 这是我们两三年逐渐积累的结果。通过这个网关能够实现不同体系、不同部门已有的多媒体信息之间互通。不同厂家设备来做互通或联调, 需要各个厂商的意愿, 技术实力以及场景和机会。互联互通是一个长期的工作, 并不是把各个厂家的设备简单调整就可以实现互通, 因为每个厂家设备在依托相同标准的同时, 也一定有各自的技术, 互通的过程就是把设备原有的属性改动, 因此, 各个厂商需要权衡的。在这个基础之上, 还需要有一个机会, 能够把不同的厂商集中到一起, 让大家有机会和动力进行联调。数码视讯正是在行业中有这个机会, 在不同的项目中, 逐渐把不同主流厂家的设备实现联调互通。

视频行业未来发展

基于数码视讯对多媒体通信的理解, 预计视频行业未来发展体现在三大方面:

第一方面是视频压缩。这不仅仅是从MPEG-2到H.264, H.265, 还包括两个含义, 一是对国有标准的支持。国有的器件与产品背后最核心的应该有一个自主的标准, 既广电领域的AVS, AVS+等国家标准, 也包括公安等行业标准。第二方面是对大数据包括视频数据的支持。这种视频压缩不仅仅针对多媒体通信, 而是针对将来大数据中, 存储的不同类别的数据。大数据中的多媒体信息或视频信息, 基于压缩技术的海量数据的利用效率, 比如节省30%~4 0%的存储空间;基于自己的视频压缩包括压缩格式, 在将来, 从这些海量的视频数据当中调用时, 是否能够提供更多的便利性, 视频检索、视频模糊搜索等, 用什么方式进行视频压缩与存储, 都是有应用场景的。

第二方面是多媒体通信平台。从应用角度来讲, 视频会议、视频监控、视频指挥的概念越来越模糊, 无非就是终端与终端之间进行多媒体交互。数码视讯多媒体通信平台, 可以帮助用户实现多媒体信息的交互, 也可以通过这个平台帮助用户建设点播视频节目网站, 还可以通过这个平台实现简单的视频指挥平台。其架构我们是从多媒体通信的角度提出来的, 但从使用者的角度来看, 可以涵盖以前划分的那几种。

第三方面是视频智能分析。视频采集、视频平台建立之后, 如何使用这些数据, 已经逐渐为用户关注, 这就需要进行视频智能分析。最早应用交通、安全区域检测等, 比较成熟的机动车的车牌识别。随着视频采集、压缩、视频通信或者多媒体通信网络覆盖的越来越广泛, 采集的视频图像越来越清晰, 传输高质量视频的带宽链路成本的降低, 在后端进行视频智能分析的条件就成熟了。基于它做研判的应用逐渐成为多媒体通信平台比较看重的功能。数码视讯在视频智能分析领域已经进行了几年的技术储备, 通过与国内高校合作, 走产、学、研的发展道路。现在, 基于视频智能分析也是围绕数码视讯多媒体视频通信平台, 重点对区域、物体、车辆、目标 (如飞机) 的识别告警等应用, 能对多媒体视频通信平台建立的视频素材有一个简单的智能分析与研判。

今年, 数码视讯在应急通信领域的工作重点有:H.2 65的单机与产品今年已经推出, 并且得到了应用, 这是数码视讯目前在视频通信领域的核心产品;另外, 数码视讯基于多媒体通信的调度软件 (多媒体通信平台或者视频融合平台) 在行业市场中也得到了应用, 视频网关是里面最核心的产品;最后, 就是针对数码视讯熟悉的场景推广智能视频分析。

高清视频解码 篇2

关键词:H.264,QFHD,流水线,去块滤波

1 引言

2009年好莱坞电影《阿凡达》的热映使得3D视频技术以及数字IMAX 4K影院播放重新获得了人们的关注, 可以预见这些能够向观众展现栩栩如生的影像将是未来下一代高清视频系统的主流, 高分辨率的3D影像将给观众带来身临其境的视觉体验。当今流行的数字视频编码标准H.264自从2007年11月以来陆续加入一些新的扩展特性, 例如可适性视频编码 (Scalable Video Coding, SVC) 、多视角视频编码 (Multiview Video Coding, MVC) 以及3D立体编码[1,2]等, 作为对既有标准的改良, 从而实现3D视频系统的大规模市场应用。这些新的特性支持多路分辨率为1920*1080的全高清视频图像的实时编解码, 也支持一路3840*2160或更高分辨率 (4K分辨率) 四倍全高清 (Quad FullHD, QFHD) 视频的编解码应用 (以下如无特别说明, 四倍全高清视频图像尺寸均指分辨率为4096*2160大小, 并简称QFHD) 。SVC编解码标准的重要特征视频码流 (Bitstream) 可包含一个或多个子码流 (Subset bitstream) 进行解码, 而其中子码流本身可使用既有H.264解码手段重复利用相同数据, 达到解码复杂或者重构视频质量的目的。MVC编解码特性利用多路摄像机捕获的多视角画面之间相关性冗余进行编码压缩, 适用于立体 (双画面) 视频、自由视角电视以及多视角3D电视。

文献[3,4]提出了一种支持一路全高清实时解码的SoC设计实现, 主要技术特性为:在典型0.18um工艺库基础上综合得到芯片时钟频率达到166MHz, 解码器工作指标为1920*1088@30fps, 面积0.38mm2。使用OpenRisc 1200作为嵌入式CPU IP核复用加半定制ASIC设计方式。

考察一个具有较高效率的支持QFHD视频图像处理解码器应达到的技术指标不难发现, 现有的全高清实时解码SoC设计在以下三方面不能满足应用期望:第一、QFHD解码对系统有较高的运算需求。例如以30fps速度处理QFHD中的一个子视角需要的运算量达到了66.2TOPS[1]。第二、SoC片内用于缓存与数据整理的SRAM存储器出于成本考虑, 通常会兼顾速度与容量设计合理尺寸, 不会留有过多余量。而QFHD的一帧图像数据包含16*16宏块数比全高清图像宏块数多约出265%, 再加上片内SRAM有关宏块属性与宏块内block数据等估算, 现有设计无法满足处理一帧QFHD图像所需的片上存储需要。最后, 至少达到电影级24fps显示输出的要求使视频图像数据吞吐率达到4096*2160*1.5*24=303.75Mb/s, 既有设计只能满足71.2Mb/s即QFHD设计要求的23.4%。为了支持QFHD以及立体多视角的H.264协议SVC与MVC扩展, 现有的全高清解码器必须要将解码性能提升一倍以上。针对以上三点, 本文提出了一种速度较快、片内SRAM扩充合理的支持QFHD实时解码设计改进方案。

2 现有全高清解码器工作流程

基于文献[3,4]的全高清H.264解码系统使用软硬件协同设计, 根据H.264协议将解码过程分解成软件与硬件两部分, 其接口通讯使用Wishbone总线实现数据传输。解码过程中前期的熵解码、反量化、反直流变换、运动补偿与去块滤波数据准备使用嵌入式RISC CPU执行部分软件程序处理图像级计算, 配合硬件前端的数字逻辑完成, 之后将数据送至片外大容量的SDRAM内。硬件部分后端由中央控制器根据视频显示需求, 从SDRAM中取出相应数据完成解码、重构图像并显示输出的过程。整体硬件系统采用宏块级的流水线设计, 第一部分负责处理宏块的熵解码和反量化、反变换过程, 第二部分完成宏块的运动补偿与去块环路滤波。两者之间使用高速SRAM实现数据交互。

解码器硬件前端的中心模块是前端数据处理单元 (Front Data Processing Unit, FDPU) , 主要功能是为解码流程中的熵解码、运动补偿以及环路滤波做数据准备, 此外还要维护片内SRAM, 负责调用熵解码、与解码图像缓存 (Decoded Picture Buffer, DPB) 通讯以及向CCIU传递数据送入硬件后端完成宏块解码。FDPU是前端的控制核心, 它的内部模块组成如图1。

3 QFHD硬件结构设计与改进

现有的解码系统如果添加QFHD支持, 为多路码流MVC解码与3D立体解码支持作准备, 则必须在处理速度、片上SRAM容量与数据吞吐率三点加以改良。考察解码系统内RISC CPU运算部分可以发现, 为了提高系统实时处理宏块解码速度, 必须将软件部分的工作量减小, 而RISC CPU能给系统设计带来灵活性, 所以进一步分离解码流程中图像级运算与宏块级运算, 将原先由软件实现的宏块地址与属性计算交给前端硬件实现, 仅保留每个新Slice到来时的Slice与Picture信息计算与传输, 大大减轻硬件等待CPU执行结果所消耗的时钟周期。达到提升硬件前端处理速度的目的。此外, 解码器各个模块涉及表达宏块位置与图像尺寸的信号位宽加以扩展以实现QFHD分辨率支持。

3.1 流水线架构

使用流水线设计能够提升解码器数据处理吞吐量, 有效缩短解码一帧所需要的时钟周期。QFHD每帧的宏块数为4096*2160/256=34560, 正是1080p图像的四倍。改良的设计对每一宏块内的解码过程不做大量变动, 若设计要求仍然维持24fps的帧率显示的话, 则使用宏块间的流水线处理, 将解码过程分解。

由于环路滤波具有边界自适应特性, 复杂度很高, 所以Deblock模块会占用宏块解码过程很大一部分时钟周期。进一步考察Deblock内部模块可知, 宏块在做去块滤波的过程有两个阶段, 一方面需要用到量化参数计算滤波所需的块边界滤波强度 (BS) 、Index等滤波参数, 另一方面需要读取4*4block边界的像素点, 并利用第一阶段得到的滤波参数执行滤波计算。第一阶段的硬件实现正是FDPU内部模块DBP, 去块滤波的自适应特性表现在DBP模块对块边界的滤波参数计算的判断。图2即为滤波强度BS的判断树, 体现了块边界的自适应。该判断树具有5级逻辑判断单元, 最差情况需要判断4次才可以得到BS的值。

另外对于像素级自适应, 对于边界滤波强度BS不为零的情况, 还需要区分虚假边界与真实边界, 用与量化有关的alpha与beta来检查图像像素, 决定边界是否需要滤波。这部分硬件会给出块边界的滤波阈值。总的来说, DBP模块存在较多判断, 所需的数据包括帧内或帧间预测模式、是否存在非零残差变换系数以及边界宏块运动矢量差值。相对于FDPU内其他模块在宏块解码的具体过程, 该模块占用宏块解码的时钟周期较长, 所需数据类型较多, 以及计算复杂度较高。作为流水线改进的一部分, 该模块可以从宏块解码其他过程中分离出来, 达到并行化处理的目的。

第2节介绍的FDPU内部模块组成均是与宏块信息的判断与数据处理相关, 因此可以按照既有模块分为两级流水线处理, 前一级包含interpret_mb_mode, MiscControl, ReadMotion与dpb, 作用于宏块解码开始时读取Slice与宏块类型、判断预测方式、读取Slice的cbp、计算预测的运动矢量与参考索引、管理DPB;后一级包含DBP和cciu_trans, 用于计算宏块去块滤波所需的边界Strength与index值。FDPU内两级流水线设计的宏块解码过程需要两套提供当前宏块数据的存储空间, 当第一级流水线完成从读取宏块类型到预测运动矢量的计算后, 不必等待DBP模块计算去块滤波的Strength与Index参数而继续处理下一个宏块;第二级流水线则完成去块滤波参数计算后, 与在第一级流水线前一个时刻得到的宏块数据一起打包, 发送到解码器后端, 供CCU模块完成最后的解码和输出工作。

在FDPU塦模块增加两级流水线的控制部分, 使用判断信号控制P0与P1流水线的使能与运行标志。此外协调两部分数据交互, P0与P1需要错开一个宏块处理, 因此去块滤波前端DBP与数据打包cciu_trans两模块的输入信号, 例如宏块信息、帧场信息以及指示宏块位置的坐标都需要按照流水线控制部分使P1相对P0延迟一个宏块。

3.2 片内SRAM规划

现有解码器设计中, FDPU维护了一片5KB大小的SRAM存储器共内部模块进行数据存储与共享。主要存储宏块解码处理过程产生的中间数据, 如运动矢量 (mv) 、参考帧索引 (ref_idx) 、宏块类型 (mb_type) 、滤波强度 (Strength) 与阈值 (IndexA, IndexB) 等等。使用片内SRAM避免了宏块处理过程中随时需要向片外DRAM的读写这些重复使用率很高的中间数据请求, 使用高速缓存小容量、高速度的存储体系减少系统延时。各个模块不会同一时间使用SRAM内的同一部分数据, 因此SRAM可以为各模块在不同时刻控制。此外为达到解一个宏块的数据吞吐率, SRAM的位宽设定为64bit;而SRAM内的数据也多是按照block为单位进行组织, 提高FDPU内部模块对存储器操作效率。

FDPU内部模块要实现流水线改进, 则维护的SRAM也需要做相应的改动确保各个模块存取数据不受影响。原有的SRAM存储数据主要有两部分:一是用作宏块解码参考数据, 当前宏块上一行1920/16=120个宏块边界以及左边一个宏块边界的ref_idx与mv信息、上一行宏块的ipredmode数据、ref_pic_id以及熵解码得到的一行宏块mb_type, QP和cbp值;另一部分是经过FDPU内模块计算处理得到的ref_idx与mv, 还有去块滤波计算得到的滤波参数, 此外还有供后端解码使用的DPB与POC数据。P0与P1流水线均涉及到SRAM的读取参考宏块数据与写入当前宏块数据的操作。为解决SRAM操作的读写冲突, 对片内SRAM的改进分为以下两个步骤:

(1) 参考宏块与当前宏块分离存储。使用另外开辟的SRAM存储用作模块计算的参考输入。这部分数据包含当前宏块之上一整行宏块最下面4个block外加当前左侧宏块最右4个block的ref_idx, mv, 整行宏块的ipredmode操作、熵解码mb_type, QP以及cbp值。QFHD图像一行宏块有4096/16=256个宏块, 因此这部分数据比原有SRAM对应的空间要增加两倍以上。参考宏块部分的SRAM特点是数据容量较多但访问频率不高, 另外由于P1级流水线用于宏块解码前端部分最后计算滤波参数, 则再开辟一块SRAM用于DBP模块数据存取, 其余处于P0级流水线的FDPU内模块存取参考宏块数据与DBP需要的参考宏块数据SRAM分离。

(2) 当前宏块SRAM采用“乒乓”双缓冲配合P0与P1两级流水线完成一个宏块解码的数据存取操作。P0与P1两级流水线各个模块都要在计算当前宏块完成以后写入SRAM, 这部分SRAM容量不大, 但访问频率很高。采用双缓冲的形式在一级流水线传数据给其中一个缓冲的时候, 另一级流水线能从另一个缓冲里面读取数据, 从而使传输和解码同时进行, 确保两级流水线提升数据吞吐率的目的, 示意如图3。

新的FDPU片内SRAM由4片SRAM组成, 位宽均为64bit。其中SRAM0与SRAM1容量为1KByte组成“乒乓”双缓冲结构、SRAM2容量12.5KBytes用于DBP、SRAM3容量8.5KBytes用于FDPU内其他模块。与原有FDPU片内SRAM设计相比容量增加了7倍之多, 一方面是由于QFHD图像尺寸扩展, 另外的原因则是流水线的采用以及“乒乓”双缓冲的机制, 使用面积增加换取硬件系统速度的提升。

此外, SRAM3内参考宏块数据也是由解码器在解码上一行宏块时得到的, 因此增加linebuf_main模块用于维护SRAM0&1向SRAM3写入每一个宏块最下面一行block数据 (因此称为LineBuffer) , 供解码器进行到下一行宏块解码时取用SRAM3内的数据。SRAM2内的参考宏块数据由DBP内控制器的有限状态机完成维护。

4 硬件实现

对上文所述针对QFHD设计改进使用Verilog HDL硬件描述语言进行实现, 并使用NCVerilog进行行为仿真, 最后经过综合在Xilinx Virtex 5 FPGA验证平台上进行硬件验证, 成功解码并向显示设备输出QFHD尺寸的视频图像。使用DC综合工具得到硬件设计的时序改进为175MHz, 去除独立的片内RAM面积达到23万门, 数据吞吐达到QFHD@24fps要求。

图4为从FDPU模块提取的流水线机制仿真波形, 图中可以看到第一级流水线宏块坐标计数已经从MB[0, 0]向MB[1, 0]过渡, 而第二级流水线宏块坐标刚刚从上一帧最后一个宏块向新一帧图像宏块MB[0, 0]变化。P0流水线里FDPU内子模块的使能信号依照宏块和Slice的类型依次激活, 完成从interpret_mb到dpb的操作;与此同时P1流水线处理上一个宏块的deblock操作, 并通过cciu_trans模块打包传输给解码器后端进行解码。

5 总结

本文提出了一种在现有全高清实时解码器硬件设计的基础上针对支持MVC的QFHD尺寸视频解码的设 (下转第18页) (上接第44页) 计改进方案, 利用硬件并行性、改良的存储系统与流水线机制使整个设计的解码速度满足QFHD解码需求, 并在最终FPGA上实现和验证了正确性与可用性。

参考文献

[1]ITU-T Rec.H.264-Advanced video coding for generic audiovisual services[M].2010.3.

[2]Pei-Kuei Tsung, Ping-Chih Lin, Kuan-Yu Chen, Tzu-Der Chuang, Hsin-Jung Yang, Shao-Yi Chien, Li-Fu Ding, Wei-Yin Chen, Chih-Chi Cheng, Tung-Chien Chen, Liang-Gee Chen., A 216fps 4096×2160p 3DTV Set-Top Box SoC for Free-Viewpoint 3DTV Applications[J].ISSCC Dig.Tech.Papers.pp124-126, Feb.2011.

[3]张力航.软硬件协同设计技术在H.264解码器设计中的应用[J].电子设计应用, 2006 (9) .

H.264视频解码的软件优化 篇3

Blackfin533在结构上是一款介于通用处理器与专用DSP之间的特殊处理器,由于DSP与PC机的指令集和外围存储器、接口等条件不同,在DSP平台上程序的执行效率往往比较低,因此,如何将DSP的性能全部发挥是实现H.264编解码的关键[1,2,3]。

基于文献[2]的Blackfin533上的H.264解码系统方案,提出了一种新的解码方案,在Blackfin533 EZ-Ki Lite开发板上调用现有模块进行整个系统的开发,硬件功能模块主要包括码流接收单元、视频解码单元、数据存储单元、数模转换单元和视频显示单元。整个系统的硬件结构如图1所示。

文献[4]对解码器进行了复杂度分析,发现解码器中计算密集型模块依次为帧内预测的插值、去方块滤波以及反变换和重建,仅这3个模块就占了解码器总复杂度的71%,本文的优化重点是去方块滤波模块。

2 解码软件设计流程及优化

2.1 软件设计流程

基于Blackfin533的解码软件设计分为3个阶段:阶段1产生C代码,阶段2优化C代码,阶段3编写汇编代码,具体流程如图2所示。

2.2 软件优化

目前,H.264开源解码器主要包括JM decoder,T264decoder,x264 decoder和ffmpeg libavcodec。本文采用的解码模型是JM decoder,它是一个基于PC的软件解码器,主要作用是解释H.264协议,测试H.264编码效率,其代码功能十分齐全,但代码运算效率很低。经过对耗时的IDCT反变换、反量化和去方块滤波模块进行软件优化,可以在DSP上实现高效的H.264解码。

2.2.1 C代码优化

为了提高程序代码的效率,必须对处理的源码进行一定的优化,参考软件JM大部分是用C语言编写的,通过分析比较[5],采用以下方法优化C代码程序:

1)去除冗余代码、规范程序结构、减少if-else的判断、调整全局和局部变量、使用寄存器变量代替局部变量,减少不必要的代码冗余;

2)避免使用超过三重循环的计算,因为Blackfin533处理器拥有2个硬件循环寄存器,充分利用这2个寄存器,就可以做到零开销的硬件循环;

3)尽量使用定点运算,由于Blackfin533没有硬件浮点单元,所以用定点数运算比浮点运算要快很多;

4)将多层循环展开,调整循环结构,更加有利于汇编优化;

5)用逻辑移位运算来代替乘除操作,因为乘除运算指令的执行时间远远超过逻辑移位指令,尤其是除法指令,使用逻辑移位运算可以加快指令的运行时间;

6)注意循环函数的调用,编写代码时尽量使上次循环与下次循环没有相关性,减少不必要的代码计算量。

2.2.2 汇编优化

DSP嵌入式程序受到硬件资源的限制,对程序流程和数据组织需要考虑硬件资源和代码运行效率,所以对解码算法的优化不仅要对PC机上C代码优化,还要结合DSP结构进行优化,使其符合DSP中C代码的规范。考虑到实时性要求以及Blackfin533的处理能力,提出了以下汇编优化策略:

1)内存分配优化

DSP嵌入式系统存储器空间通常受限[6],并且DSP内核对不同存储器空间的数据访问速度差别很大:片内空间小,访问速度快;片外空间大但访问速度慢。ADI的Blackfin533处理器的存储器结构采用片内片外两级结构。对于两级存储结构的处理器,访问片内存储器通常要比访问片外存储器快10~20倍,所以将常用数据尽量放在片内空间中。不常用的数据放在片外空间中;在调用片外数据时,尽量一次性将大块片外数据读进片内缓存,可避免每次读取少量片外带来的时间浪费。

2)数据管理优化

Blackfin533处理器的数据管理有三大关键技术:数据总线宽度的充分利用、数据的有效传输和视频操作指令数据的充分利用。

Blackfin533外部数据总线宽度为32 bit,可以一次存取4 byte[7]。在数据的批量处理时,使用一次存取4 byte来代替一次存取3 byte或者1 byte会节省指令的执行条数,大大提高执行速度。

数据传输的优化则是利用直接存储器访问(DMA)技术[8]:DMA控制器将数据从片外数据存储器读入到片内,程序执行时就直接从片内调用相应的数据,该段程序执行完毕后再通过DMA通道将处理后的数据从片内存储器传送到片外,同时,DMA控制器允许Blackfin533或外部设备指定数据传送操作,然后返回正常操作中,这样可以大大提高程序的运行速度。

另一关键技术是利用算法中存在大量数据并行的特点,充分利用DSP的视频操作指令集。由于Black fin533的寄存器一般是32 bit,而视频图像中像素采用8 bit表示,视频编解码中大量的运算都是基于8 bit进行的,因此,采用视频操作指令集可以提高处理速度。

3)软件流水设计优化

在图像压缩的DSP算法中,存在大量循环操作,因此充分地运用软件流水技术能极大提高程序的运行速度。

Blackfin533处理器拥有十级流水线,具有很强的指令并行执行能力。Blackfin533应用软件流水技术安排循环内的指令运行方式,重新编排循环指令,对一个循环结构的指令进行调度安排,使循环的多次迭代能够并行执行。最典型的方法就是循环展开,即在程序里把小循环的迭代展开,使可能并行的指令数增加,从而改进软件流水编排,改善代码性能。

3 去方块滤波优化

在解码器中,传统JM模型的去方块滤波算法[9]效率很低,运行该模块占H.264解码器约1/3的运算量,通过分析比较,发现主要原因有以下几点:滤波算法中的函数逻辑关系复杂、跳转、判断以及函数调用情况频繁;函数的循环体中存在着大量不必要的重复计算和很多用不到的数据,如条件语句的判断,造成大量的冗余计算。本节对JM模型的边界强度(BS)判断算法进行优化,根据上文的C代码优化方法,通过改变函数结构以及函数调用等情况,得到了图3所示的改进的BS判断流程,它与H.264标准中的BS判断存在很大的差别,其优势主要体现在以下几点:

1)循环体运算量明显减少:在传统JM模型的BS判断中,对所有BS值(1~4)分别进行16次判断(由于边界有16个点,所以对每个点都做了滤波强度判断),这明显造成程序冗余。因为当BS=3,4时,只取决于预测模式是否为帧内模式和模块是否为边缘模块即可,优化后的流程把BS=3,4的情况首先判断出来,不必进行16次的重复判断,这将大大减少循环体内的运算量。

2)函数调用次数大大减少。在传统JM模型的BS判断中,都要取得相邻块的信息属性,并通过调用GetNeighbour函数来实现,而且在循环内反复的判断和调用;而在优化后的边界强度判断中,不再进行GetNeighbour函数的调用。在JM模型的GetNeighbour函数中存在大量的if-else语句,而且很多是没有意义的判断,优化后重新改写了GetNeighbour函数,精简了大量的冗余判断,并且将优化后的GetNeighbour函数直接放在主程序中运行,提高函数执行的速度。

3)循环参数计算量减少。在传统JM模型的BS判断中,循环内部有很多语句和参数与循环无关,如P块和Q块的信息属性;优化过程中可以将这些语句调整到循环外部,将循环判断语句调整到整个边界滤波强度判断的底部,这将会避免大量的冗余计算。

4 实验与分析

根据上述的优化方法,进行实验的对比:实验过程是以JM86模型为基础,同时选取foreman_qcif和silent_qcif参考序列,最后进行各种滤波处理。实验平台采用VC6.0编译环境、Windows XP操作系统、Celeron CPU 1.80 GHz、256 Mbyte内存。

从实验结果(见表1)可明显看出:未用滤波算法和采用滤波算法的信噪比(SNR)差异,但同样采用滤波算法的信噪比变化不明显,即图像主观质量基本不变;同时,优化算法较传统JM算法在时间上的优越性,其中时间的提高主要来自于改进的边界滤波强度判断算法的优化。

通过结合H.264解码器结构和Blackfin 533指令特点,对去方块滤波的算法进行了具体优化,实验证明,优化后算法的解码效率提高了近10%,非常有利于实时视频解码器的应用。

摘要:介绍了H.264视频解码原理,分析了基于Blackfin533的H.264解码的硬件平台和软件设计流程,重点讨论了C代码优化和汇编优化,最后对去方块滤波算法进行了具体优化,可缩短近10%的解码时间。

关键词:H.264标准,Blackfin533,视频解码

参考文献

[1]王嵩,周祥平.新标准H.264的核心技术与视频移动通信研究[J].无线电工程,2005,35(5):21-23.

[2]李炜,黎福海.基于Blackfin533的H.264解码系统方案[J].仪器仪表应户,2007,14(4):100-101.

[3]毕厚杰.新一代视频压缩编码标准-H.264/AVC[M].北京:人民邮电出版社,2005.

[4]LAPPALAINEN V,HALLAPURO A,TIMO D H.Complexity of opti-mized H.264video decoder implementation[J].IEEE Trans.Circuits and Systems for Video Technology,2003,13(7):717-925.

[5]刘羽楠,国澄明.基于TMS320DM642的H.264解码器的实现与优化[J].电子测量技术,2007(6):96-99.

[6]汪燮彬,刘云海,刘斌兵,等.多媒体处理库在BF5xx系列DSP上的优化[J].电视技术,2006(7):24-27.

[7]陈峰.Blackfin系列DSP原理与系统设计[M].北京:电子工业出版社,2004.

[8]干宗良,王凯,朱秀昌.基于DSP平台的H.264运动补偿解码优化[J].南京邮电大学学报:自然科学版,2007(4):16-19.

高清视频解码 篇4

近年来, 我国音视频产业发展迅猛, 已成为全世界音视频产品生产和销售第一大国。音视频产业已成为国民经济与社会发展的重要产业, 是电子信息产业的三大组成部分之一。未来几年, 将是中国音视频产业加快自主研发、发展核心技术, 赶超世界先进水平的重要时期。在数字音视频产业中, 视频数据的编码压缩技术是整个产业依赖的共性技术, 是音视频产业进入数字时代的关键技术, 因而成为近20年来数字电视以及整个数字视频领域国际竞争的热点。

1 数字视频编解码技术标准

1.1 MPEG标准

ISO/IEC JTC1/SC29/WG11运动图像专家组提出了MPEG系列标准, 主要有MPEG-1、MPEG-2、MPEG-4三大标准。

MPEG-1标准是用于数字存储媒体, 总比特率1.5 Mb/s以下的运动图像及其声音信号的国际编码标准。M P E G-1标准目前主要应用于V C D制作和M P 3格式 (M P E G-1的音频第三层) 。

MPEG-2标准是目前消费类电子视频设备中使用较广泛的视频编码标准。在数字存储媒体上, 应用于DVD/SVCD;在数字电视广播 (包括地面、有线和直接卫星广播) 上, SDTV和HDTV均选用MPEG-2视频标准。

M P E G-4标准是目前学术界比较关注的视频编解码标准之一。在应用上, M P E G-4企图涵盖从低码率 (视频64 kb/s) 到高码率 (50 kb/s甚至更高) 的各种应用;在技术上, 提出了面向对象编码的概念。M P E G-4的档次大致可以分为两组, 第一组包括SP (simple profile) 和ASP (advanced simple profile) , 其技术框架沿袭了传统的以宏块为单位的压缩框架;第二组包括其他的档次 (core profile、main profile等) , 其中包括面向对象的压缩技术、技术框架和传统的标准有很大的不同。2 0 0 0年左右, I T U的视频编码专家组 (V C E G) 制定的H.2 6 4标准在沿袭传统技术框架的同时压缩效率超过了M P E G-4A S P。经过协商, 两个标准化组织决定成立联合视频编码工作组J V T, 共同制定下一代视频压缩标准, 新标准在I T U系统中仍然使用H.2 6 4, 在I S O中被作为M P E G-4的第10部分。

1.2 H.26x标准

H.261标准是ITU的视频编码专家组提出的基于ISDN的视讯电话与视频会议的视频压缩标准。目前, 随着视频编码标准各方面性能的不断提高, 除了在一些视频会议系统和网络视频中为了向后兼容还支持H.261外, 用H.2 6 1的产品越来越少。

H.263标准是H.261的增强版, 在编码算法上做一些改进和完善, 提高了性能和纠错能力。H.263效能比H.261高出很多。目前还应用于视频会议系统和网络视频。

H.2 6 4标准是目前基于传统技术框架的压缩效率最高的视频编码标准, 应用前景非常广阔。

H.265是ITU-T VCEG正在规划中的视频编码标准, 其目标是更高的压缩效率, 更好的网络适应性。

2 知识产权现状

2.1 专利情况

标准在推动技术进步和相关产品发展的同时也涉及大量专利。表1是典型国际视频标准涉及的国家/地区及其专利数量。

注: (1) 数据截至2010年3月31日; (2) () 中的是目前尚在专利保护期的专利数。

从表1可见, 已有专利中美国和日本是最主要的专利技术申请国。很多国外公司利用在该领域上的技术优势, 申请了大量专利 (包括很多非核心专利) , 例如H.264/AVC标准中涉及到了日本松下公司在2 7个国家/地区申请的377项专利。在我国, 专利申请数量排在前几位的也都是国外的公司, 最多的是韩国三星、其次是松下和飞利浦。从表2中可看出随着数字音视频编解码技术的不断进步, 涉及到我国专利的数量大幅上升, 意味着中国企业要采用以上国际标准需被授权的专利越来越多。我国高校 (如清华大学) 、科研机构 (如中科院计算所) 和公司 (如华为) 加紧研究、通过集体创新, 也有不少相关的专利。

2.2 专利许可情况

很多国外跨国巨头公司利用先进的技术优势组成专利联盟, 联盟内各专利权人运用交叉许可的方式, 组建专利池统一对外进行专利许可, 使专利池成为打击不拥有专利的产品竞争者的工具, 从而达到垄断市场、牟取巨额利润的目的, 阻碍了产业发展, 损害了消费者的利益。这是全球范围内知识产权和标准领域面临的一个严峻挑战。目前在数字音视频编解码技术领域影响较大的M P E G L A维护的系列专利池 (M P E G-2、M P E G-4、H.2 6 4) 就存在这类问题。表2是国际视频标准许可费用收费模式和收费费率比较。

注:此对照表仅为参考方便, 具体条款和数额以相应组织的法律文件为准

根据MPEG LA宣布的MPEG-4、H.2 6 4/AVC的专利许可政策, 需要缴纳专利费的厂商有两种类型:编解码产品制造商和视频节目运营商。对于中国的数字音视频产业来说, 可以说是一种巨大的压力和负担。更危险的是MPEG LA的专利池远未包含标准所有的必要专利, 一些国外知名公司已经宣称将单独收费。同时, 标准将直接影响芯片、软件、整机和媒体文化产业运营整个产业链条。要培育健康的、能够良性发展的数字化音视频产业, 掌握自主知识产权、实施标准战略势在必行。

3 产业发展分析

3.1 发展状况

近年来, 我国数字音视频产业发展迅猛, 产业规模逐渐壮大, 数字化已成为了音视频产业发展的总趋势。

广播电视行业是我国音视频产业的第一大分类行业。2003年, 我国全面启动了数字有线电视的转换。截至2009年第四季度, 中国有线数字电视已达到6 348万户, 有线数字电视改造工作到2 0 0 9年第四季度已逐步的落实到位, 各地运营商在一定程度上加快了数字化进程。预计到2 0 1 1年我国有线数字电视用户将达到1.147亿, 将基本实现有线电视全数字化。

互联网电视 (IPTV) 作为“三网融合”的主要载体之一, 产业发展迅猛, 从2003年的不足两万户, 到2009年初已经超过了300万户, 上海已经成为全国首个IPTV用户超百万的城市。据统计, 国内IPTV用户数呈稳步上升趋势, 到2010年底中国IPTV用户预计将超过1 000万户。

数字音视频产业是各种新技术聚集的领域, 涉及大量关键核心技术, 我国在核心技术掌握上不足, 需要加紧研究。我国音视频产业发展不仅仅受制于相关技术, 还受到相关行业发展政策、宽带接入技术、内容服务商等的影响。今年, 国务院总理温家宝主持召开国务院常务会议, 决定加快推进电信网、广播电视网和互联网三网融合, 明确了“三网融合”的时间表, 提出了阶段性目标。同时, 具有自主知识产权视频编解码技术标准产业化进程需加速, 产业成熟度还需提高。广电部门、电信部门已在大力推动自主视频标准的应用, 促进了数字音视频产业化不断深入。

3.2 产业发展展望

我国将继续大力发展数字化广播电视网, 相关视频技术向高清、全高清发展, 音频技术趋向于环绕立体声, 实现视听内容的全部数字化。网络电视产业将蓬勃发展, 将有效运用宽带有线电视网、互联网向家庭用户提供包括数字电视在内的多种交互式服务。数字电视和网络电视市场规模巨大, 成为“三网融合”、“三电一体”的主要载体之一。

数字电影产业将加速发展, 其中3 D电影产业的兴起, 形成电影业的第三次革命。随着3 D立体显示研究不断深入, 多视点编码算法等技术的不断成熟, 3D投影技术和3D电视的研究也将快速实现产业化和商业化。

安防监控、手机电视、移动电视、视频通信等新兴产业均将成为数字音视频产业发展的重要力量, 形成巨大市场。

4 工作建议

(1) 大力促进自主知识产权标准的产业化

建议在互联网视频应用、数字电视、直播卫星、安保监控等诸多领域中, 鼓励采用自主知识产权标准, 建议国家相关部门进一步加大政策、资金和市场等方面的支持力度, 特别是针对服务提供商推出切实有力的鼓励措施 (例如采用自主知识标准给予补贴或税收优惠) 。只要服务提供商愿意采用自主标准, 自然会有更多有实力的国内外企业参与, 很快就会形成成熟的数字音视频产业链。

(2) 加强专利政策对企业的保护、鼓励作用

不论是企业还是科研院所, 如看不到核心技术能够给他们带来显著的收益, 就不会愿意在科研 (特别是基础技术研究) 方面进行投入。因此, 如何让企业和科研院所能够通过专利或者核心技术获得应有的收益, 加强专利政策对企业的保护、鼓励作用, 是政府制定政策时需要考虑的核心问题。

摘要:介绍了国外数字视频编解码技术标准现状:MPEG-1、MPEG-2、MPEG-4三大标准和H.26x标准, 分析了标准涉及的知识产权中的专利和专利许可情况, 并根据当前产业需求提出了发展建议。

基于压缩感知理论的视频编解码器 篇5

关键词:压缩感知,视频编码,编码器,解码器

1 引言

现有的视频压缩编码标准是基于传统的香农采样定理。在该定理要求下,信号的采样率必须大于信号带宽的2倍,才能实现信号的准确重构。因此,要实现视频图像的准确重构所需要的样本数较多。此外,视频编码过程中,图像变换后大部分的系数被舍弃,造成了数据和系统资源的浪费。近年来出现的压缩感知(Compressive Sensing,CS)理论指出,在已知信号具有稀疏性或可压缩性的前提下,用于重构的样本数可以远远低于传统的香农采样定理下的样本数[1,2,3,4]。由于视频图像通常在某些变换域上具有可压缩性,而且视频残差图像具有较强的稀疏性,所以CS理论在视频编码中有着良好的应用前景[5,6,7,8]。

2 压缩感知理论和传统的编解码核心技术

2.1 压缩感知理论

压缩感知理论下,信号若具有稀疏性或可压缩性,则可通过少量的测量样本进行重构。假定实的离散信号x[n],n=1,2,…,N,在N×N的稀疏基Ψ=[ψ1,ψ2,…,ψN]下具有稀疏性,即

式中:系数α仅有K垲N个元素非零,其余N-K个元素为零或接近于零。

在上述稀疏条件的假设下,对该信号进行采样或测量,设测量矩阵用M×N(K

将式(1)代入式(2)可得,

由于M垲N,所以方程组是欠定方程组,从测量样本y重构信号x的过程是病态的,但是如果测量矩阵Φ和稀疏矩阵Ψ能满足RIP[1,2,3,4]或者两者非相关时,则可实现精确的重构。一种常用的算法是基于l1极小范数求解系数α

再将稀疏系数α代入式(1)即可重构原信号。

2.2 视频编解码核心技术

传统的视频编解码器是基于宏块操作的,编码模式包括帧内模式和帧间模式。下面以H.264为例,简单分析传统视频编解码的核心技术[9]。

H.264的编码器如图1所示。在帧内模式下,当前宏块的像素的预测是基于对帧内已经编码并解码重构后的宏块进行的。将当前宏块与参考宏块求残差后进行变换,再将得到的系数中少数重要部分保留,并对其幅度和位置进行量化、熵编码。在帧间模式下,当前宏块的预测块是基于对参考帧进行运动估计和补偿得到,再将当前帧和预测帧的宏块求残差,最后对残差进行量化、熵编码,得到编码码流用于传输或存储。由于编码器中需要参考帧,所以编码器内包含了部分解码器。

H.264的解码器如图2所示,整个解码的过程是编码的逆过程。接收的码流先经过熵解码、逆量化、逆变换得到残差图像,再加上根据帧内编码或帧间编码的参数得到的预测图像即为重构的图像。

从上述过程看,传统的编码过程复杂,解码简单,对编码端的要求更为严格。编码过程中,图像变换后的系数大部分被抛弃,造成数据和内存资源的浪费。

3 基于压缩感知理论的编解码器

结合上节中的压缩感知理论和传统的视频编解码核心技术,本节将设计一种基于压缩感知理论的视频编解码器。

3.1 基于压缩感知理论的编码器

基于压缩感知理论的编码原理如图3所示。编码前,先将视频序列分成图像组。编码时,如果当前帧采用帧内编码(记为I帧),则它的编码方法是直接对该帧进行预处理和编码测量,其中,预处理过程是个可选的步骤;如果当前帧采用帧间编码(记为P帧),编码方法是用前面解码重构帧作为参考帧,并与当前帧求残差,再对残差进行预处理和编码测量。由于残差图像的稀疏性更强,所需的测量样本数可以更少。两种模式下得到的编码测量值再经量化、熵编码便可得到编码码流。和传统的视频编码器一样,编码器内有个局部的解码器,目的是得到用于帧间编码的参考帧。

和传统的视频编码器相比,存在以下几个不同点:1)传统方式下是以块作为处理单元的,而基于压缩感知理论的编码器是对整幅图像进行处理的;2)传统方式下所需的图像样本数远远大于压缩感知理论下的情况;3)基于压缩感知编码中的测量过程是将高维信号投影到低维空间的一个非自适应过程,事实上,它可对应于传统方式下的采样和变换过程,由于得到的每个测量值包含了传统方式下的所有样本的部分信息,所以它能避免传统方式下因丢弃高频分量而带来图像细节丢失的现象;4)传统方式下的帧间编码需进行运动估计和补偿,而基于压缩感知的帧间编码不需这些过程,有利于降低运算的复杂度。

3.2 基于压缩感知理论的解码器

基于压缩感知理论的解码原理如图4所示。解码时,接收的码流先进行熵解码、反量化后,用求欠定线性方程组解的方法(即求解表达式(3))进行重构,接着进行后处理。得到的如果是I帧图像,则该图像即是重构图像;如果是P帧,则该图像是残差图像,此时需要将帧存储内保存的参考图像与残差图像通过加法器相加,进一步得到重构图像。两种模式下的重构图像需送入帧存储,作为后面帧的参考帧。

基于压缩感知理论的解码器与传统解码器的主要区别在于,传统解码过程是编码的逆过程,解码器相对简单,编码器较为复杂,而基于压缩感知理论的解码不再是编码的逆过程,而是一个求欠定线性方程组解的过程,相对于编码器来说,解码器较为复杂。这种情况有利于环境恶劣或条件较为严格时的编码测量。

总之,基于压缩感知理论的视频编解码器结构比传统的更简单,且编码达到的压缩比和解码重构图像的质量都较高。

4 实验结果及分析

为了验证基于CS理论的视频编码器的有效性,对两组视频序列进行处理,考虑不同I帧采样数N与P帧采样数N1组合下的视频重构质量。编码测量过程中的稀疏基采用Daubechies 9/7小波基,测量矩阵选用32×32的随机扰动分块Hadamard矩阵[10]。重构算法采用GPSR算法[11]。由于量化(反量化)和熵编码(熵解码)技术在传统的视频编解码技术中非常成熟,所以实验中没有加以考虑。

对第一组尺寸为176×144像素的“carphone”视频序列进行处理时,连续的12帧被分成3组,每组4帧。每组的第一帧进行I帧编码,而组内的其余帧采用P帧编码方式,参考帧选用当前帧的前面已解码重构的帧。当I帧的测量样本数N由10 000增至25 000,P帧的测量样本数N1由1 000增至25 000时,重构视频图像的平均PSNR随N和N1的变化如图5所示。实验结果表明,当I帧测量样本数N较大时,重构的视频图像的平均PSNR较高,此时,即使P帧测量样本数N1增加很大,平均PSNR的改善很小。原因是帧间编码的残差图像的稀疏性很强,在压缩感知理论下,很少的测量值已经足够得到一定质量的重构图像。但是,如果当I帧测量样本数N较小,即使P帧的测量样本数N1很高,重构的视频图像的平均PSNR仍是很低,这是由于I帧的重构误差扩散所造成的。

图6a为视频源序列中的第7帧图像。当N为10 000且N1为100时,整个视频的压缩率为9.8,平均PSNR为26.26 dB。当N仍为10 000而N1为10 000时,视频压缩率为2.5,平均PSNR为26.88 dB。在这两种情况下,第7帧图像的重构情况分别如图6b,6c所示。当N变为25 000,N1为100时,视频压缩率变为4,平均PSNR为32.48 dB;N不变,N1改为10 000时,视频压缩率为1.8,平均PSNR为33.83 dB。这两种情况下的第7帧图像重构情况分别如图6e,6f所示。由此可见,测量样本数和视频的平均PSNR之间可以根据实际需要进行合理的折中,以达到合理的压缩率和重构质量的平衡。例如设置N为15 000,N1为100,视频压缩率可以达到6.6,而平均PSNR接近30 dB。此时,第7帧重构如图6d所示。

第二组实验中,连续的80帧视频序列“salesman”被分成8组,每组10帧。每组的第一帧进行I帧编码,组内的其余帧采用P帧编码方式,参考帧选用当前帧的前面已解码重构的帧。当I帧的采样数N从10 000到65 000进行变化,对每种I帧的情况,P帧的采样数N1从5 000到65 000变化。各种情况下,重构视频图像的平均PSNR随N和N1的变化如图7所示。

图8a为视频源序列中的第31帧图像。当N为10 000且N1为1 000时,视频压缩率为34.5,平均PSNR为19.6 dB。当N仍为10 000而N1为10 000时,视频压缩率降为6.6,平均PSNR为19.81 dB。在这两种情况下,第31帧的重构情况分别如图8b,8c所示。当N变为60 000,N1为1 000时,视频压缩率为9.5,平均PSNR为27.65 dB;N不变,N1改为10 000时,视频压缩率为4.4,平均PSNR为28.77 dB。这两种情况下的第31帧重构情况分别如图8e,8f所示。若考虑测量样本数和重构质量之间的平衡,设置N为30 000,N1为1 000,那么压缩率可以达到16.8,而平均PSNR能够高于24 dB。此时,重构的图像如图8d所示。

5 小结

结合压缩感知理论和传统的视频编解码技术,笔者提出了一种结构较为简单的基于压缩感知理论的视频编解码器。该编解码器充分利用了视频图像的相邻帧间的残差具有较强的稀疏性的特点,在样本数很少的情况下,仍取得了较高的压缩比和较好的图像重构效果。实验验证时采用的是对视频图像固定分组形式,若采用根据图像稀疏度变化情况自适应地分组形式,效果将会更好。

参考文献

[1]CANDES E,ROMBERG J,TAO T.Robust uncertainty principles:Exact signal reconstruction from highly incomplete frequency information[J].IEEE Trans.Inform.Theory,2006,52(2):489-509.

[2]DONOHO D.Compressed sensing[J].IEEE Trans.Inform.Theory,2006,52(4):1289-1306.

[3]BARANIUK R G.Compressive sensing[J].IEEE Signal ProcessingMagazine,2007,24(7):118-121.

[4]喻玲娟,谢晓春.压缩感知理论简介[J].电视技术,2008,32(12):16-18.

[5]DUARTE M,DAVENPORT M,TAKHAR D,et al.Single-pixel imaging via compressive sampling[J].IEEE Signal Processing Magazine,2008,25(2):83-91.

[6]STANKOVIC V,STANKOVIC L,CHENG S.Compressive video sampling[C/OL]//Proceedings of the European Signal Processing Conf.,Lausanne,Switzerland,2008[2009-11-02].http://www.eurasip.org/Proceedings/Eusipco/Eusipco2008/papers/1569099804.pdf.

[7]MARCIA R,WILLETT R.Compressive coded aperture video reconstruction[C/OL]//Proceedings of the European Signal Processing Conf.,Lausanne,Switzerland,2008[2009-11-02].http://www.ee.duke.edu/~willett/papers/MarciaEUSIPCO2008.pdf.

[8]PARK J Y,WAKIN M B.A multiscale framework for compressive sensing of video[C/OL]//Proceedings of Picture Coding Symposium,Chicago,Illinois,2009[2009-11-12].http://inside.mines.edu/~mwakin/papers/jyp-mbw-videocs-pcs2009.pdf.

[9]WIEGAND T,SULLIVAN G J,BJONTEGAARD G,et al.Overview of the H.264/AVC video coding standard[J].IEEE Trans.Circ.Syst.Video Technol.,2003,13(7):560-576.

[10]GAN L,DO T T,TRAN T D.Fast compressive imaging using scrambled block Hadamard ensemble[C/OL]//Proceedings of the European Signal Processing Conf.,Lausanne,Switzerland,2008[200911-11].http://www.eurasip.org/Proceedings/Eusipco/Eusipco2008/papers/1569104824.pdf.

高清视频解码 篇6

随着3D立体电视技术越来越成熟,立体视频编解码系统引起了越来越多的关注。近年来,基于H.264及MEPG-4的立体视频压缩编解码系统得到了长足的发展。尽管立体视频有着很大的吸引力,但是视频数据量以及计算的复杂度与普通视频相比增加了1倍以上[1,2]。为了解决在有限带宽下传输大量视频数据的问题,迫切需要一个高效率的编解码系统。

传统立体视频压缩编解码算法,由于引入了额外的运动估计及视差估计,因此运算复杂度大大增加,若要降低运算复杂度,则要以牺牲图像质量为代价。文献[3]~[4]提出了残差图像编码的方法,通过对左右2副图像的残差进行编码从而达到了对图像进行压缩的目的。文献[5]提出了使用分布式计算的方法,无监督的自主学习视差。文献[6]采用自组织神经网络的方法,进行视差估计。以上几种算法,都存在运算复杂度高、计算量大的缺点,不适于在现有硬件系统上实现。

笔者提出运用联合预测的方法进行立体视频编解码的系统。这种联合预测的方案包含了3种编解码工具:首先,联合块补偿的使用使视频获得了更好的主观和客观质量;其次,依照立体视频的主要特征提出了新的运动补偿和视差补偿方法;最后,模式预决策方案的采用大大降低了运算的复杂度。

2 立体视频编解码系统实现

在此方案中,左路视频被设置为基础层,同时,右路视频被设置为增强层[7,8]。基础层使用H.264或MEPG-4等编码方式进行编码。在补偿的过程中,一个块不仅由左(右)参考帧的对应块进行补偿,还需要参考当前块的不同种类进行一种联合的补偿(如:此块属于背景、运动物体或者同时属于背景和运动物体)。此外,运用模式预决策的方案可以降低视差估计的运算复杂度。

2.1 编码流程

图1给出了立体视频编码器的框图。左路图像与右路图像在编码器中的主要不同点在于视差补偿和模式预决策。编码后,左路图像的压缩数据M和L,以及右路图像的压缩数据(数量很小)N和R将被传输。

在编码过程中,左路图像作为参考图像,使用普通的编码方式进行编码(如H.264,MEPG-4等);而右路图像使用左路图像作为参考,进行额外的运动补偿、模式预决策、视差估计。

2.2 联合块补偿方案

在右路图像的运动估计和视差估计过程中,当前帧有两个参考帧,如图2所示。灰色区域是参考帧的搜索范围。由于摄像机是平行放置的,根据平行相机系统视差的性质,左路图像的参考帧的搜索范围不是正方形的,而是呈带状的。

此立体视频编码器中包含3种补偿块:1)运动补偿块,主要出现在背景中,对缓慢运动的物体或者由于摄像机移动造成的运动进行补偿;2)视差补偿块,主要出现在运动物体上,由于物体在运动过程中产生的变形,因此,视差补偿块往往有更好的预测能力;3)联合补偿块,由于运动物体和背景可以相应地由不同种类的块进行预测,因此,联合补偿块主要出现在同时包含前景和背景的块中。

根据SAD(绝对误差和)准则,可以确定最佳匹配块的预测模式。对于当前帧的每个宏块来说,3种块的失真按如下进行计算

式中:Dmotion和Ddisparity分别为运动补偿块和视差补偿块的SAD最小值。Ir(B)是右路当前块,Ir-1(BR)是右路参考块,Il(BL)是左路参考块。SRR(B)和SRL(B)分别为B块在左右2路图像参考帧中的搜索范围。在左右2路图像的参考块I1(B′L)和Ir-1(B′R)的最佳匹配块中得到视差估计和运动估计的结果。接下来,联合估计块将通过I1(B′L)块和Ir-1(B′R)块的加权和来决定。Wn和Wn′为补充的加权函数,如图2中的A到D。最后,模式决定由式(4)进行描述,用来决定当前块进行何种补偿

2.3 右路视频运动估计的快速算法

在普通的立体视频编解码系统中,运动估计和视差估计是最关键的2个步骤。可是,与普通的视频编解码系统相比,右路视频额外的运动补偿及视差补偿极大地增加了运算负担。因此,在进行视差补偿前提出了精确的运动向量预测法和模式预决策法。首先,给出了运动向量(MV)和视差向量(DV)间的相互关系[8],如图3所示。

图3中4个向量间的相互关系可以由以下的等式来说明

总的来说,由于在时间域上,2帧之间的区别是很小的,因此得到以下的关系

通过以上的关系可以看出,由左路(MVL)得到的运动向量将被设置为右路(MVR)的预测值运动向量。由于摄像机的水平放置结构,在左右2路视频中存在一个图像的水平位移。这个位移称为“全局视差”。全局视差的引入将大大减小算法在视差估计及补偿过程中的计算复杂度和计算量。

2.4 背景探测和右路图像的全局视差估计

背景探测的应用可以准确确定前景(运动物体)及背景[9,10],是下一步进行全局视差估计以及模式预决策的前提。

背景由式(7)来确定

式中:B(N)是左路图像的第N帧的状态。MVN(x,y)是第N个块的运动向量。如果运动向量为0或者Fdiff(N)小于一个阈值,那么,这个块就是属于背景的,这样,B(N)设置为true。此步完成后,全局视差向量

这些背景块的视差向量将积累起来作为一个统计。出现频率最高的运动向量DV将被认作为全局视差向量GD。对于左路图像的第一个P帧,背景检测的方法用来得到全局视差向量GD。在右路图像进行运动补偿之前,通过使用全局视差向量GD能得到当前块(右路图像帧)的对应块(左路图像帧)。接下来,对应块的运动向量MV将被认作为右路图像帧当前块的预测值,这样,MVR只需很小的搜索范围就能准确得到,从而降低了运算复杂度。可是,背景的视差向量DV往往小于前景的视差向量。如果SAD大于一个阈值,将扩大搜索范围来获得一个更好的MV。这样,一个更精确的全局视差向量将反馈给系统。为了避免误码传播,每M帧全局视差向量都将刷新(M是一个可变的参量)。

2.5 视差估计前的模式预决策

实验结果表明,在右路图像的一帧中,有40%~70%的块需要进行运动补偿,25%~60%的块需要进行联合补偿,只有约5%的块需要进行视差补偿。由于联合补偿块的结果同时由运动估计和视差估计得到,这就代表着25%~60%的块需要进行运动估计和视差估计。分析可见,将近95%的块需要进行运动估计,同时只有40%~60%的块需要进行视差估计。这样,不必要的视差估计的过程就可省略,从而降低了运算复杂度。模式预决策的方法将由以下公式得到

如果Fdiff

3 实验结果与小结

实验结果表明,运用本文提出的立体图像压缩编解码方法,可以大大降低运算复杂度以及视频传输数据量。视差估计及运动估计的运算量约为普通算法15%,需传输的数据量与未进行压缩前相比,减少70%~80%,同时视频效果较之其他方法相比也有所提高。

综上所述,这种基于联合预测的算法,采用背景探测、模式预决策等策略,大大降低了运动估计、视差估计等的运算量。与传统方法相比,在保证图像质量的前提下,运算复杂度及计算量大大降低,且易于集成现有的编解码方式(H.264,MEPG-4等),易于在现有硬件系统上实现。

参考文献

[1]ADIKARI A B B,FERNANDO W A C.A H.264compliant stereoscopic video codec[C]//Proc.CCECE/CCGEI2005.Saskatoon:IEEE Press,2005:1614-1617.

[2]XIONG Wei,JIA Jiaya.Stereo matching on objects with fractional boundary[EB/OL].[2008-03-01].http://www.cse.cuhk.edu.hk/~leo-jia/all_final_papers/alpha_stereo_cvpr07.pdf.

[3]FRAJKA T,ZEGER K.Residual image coding for stereo image compression[J].Opt.Eng,2003,42(1):182-189.

[4]SHEN Liyun,HU Bo,WANG Qinzhe.A residual image coding scheme for stereo image compression[C]//Proc.2003IEEE Int.Conf.Neural Networks B Signal Processing.[S.l.]:IEEE Press,2003:1074-1077.

[5]VARODAYAN D,MAVLANKAR A.Distributed grayscale stereo image coding with unsupervised learning of disparity[EB/OL].[2008-03-01].http://www.stanford.edu/~bgirod/pdfs/Varo-dayan_DCC_07.pdf.

[6]VENKATESH Y V,RAJA S K,KUMAR A J.On the application of a modified self-organizing neural network to estimate stereo dis-parity[J].IEEE Trans.Image Processing,2007,16(11):2822-2829.

[7]杨蕾,戴居丰.基于H.264的静止自由立体图像压缩算法[J].计算机应用,2006,26(9):2086-2088.

[8]GUNATILAKE P D,SIEGEL M W,JORDAN A G.Compression of stereo video streams[EB/OL].[2008-03-01].http://www.cs.cmu.edu/afs/cs/project/sensor-9/ftp/papers/gunatilake_hdtv93.pdf.

[9]于成忠,朱骏,袁小辉.基于背景差法的运动目标检测[J].东南大学学报,2005(35):159-161.

高清视频解码 篇7

当前,数字电视机顶盒设计中,主要参考的视频编解码标准包括MPEG-2、H.264以及中国自主研发的AVS;MPEG-2作为广播级的视音频标准已使用很多年;H.264相比其他标准能够在同等图像质量下有更高的压缩相率,因此,它广泛地应用于电视广播实时通信等领域;AVS与H.264相比虽然在性能上没有太大的提高,但是计算复杂度有了明显的下降[1]。国内有线广播主要是采用MPEG-2和H.264,地面广播采用AVS,目前,我国正大力发展农村直播卫星项目,它是利用卫星实现广播电视,多媒体数据直接向用户传送数据(直播卫星节目采用的编码标准是MPEG-2,数字地面广播采用AVS),同时,传统的有线、无线数据传输方式在很长一段时间内仍然是主流(高清节目主要是采用有线传输的MPEG-2和H.264编码标准)。为了满足不同客户对视频节目质量的不同需求,仅仅支持单一的视频编解码标准已难以满足要求,因此,兼容多标准的视频解码芯片将成为高清数字电视机顶盒芯片设计的必然趋势,这种视频解码芯片主要有以下3个特点:1)支持主流的视频编解码标准,包括MPEG-2,H.264,AVS(综合考虑成本与性能,在国内兼容这3种标准的机顶盒能够满足高清视频解码芯片设计要求,而不必兼容于更多的视频编解码标准,如:在国际上一些地区使用的用于广播的编解码标准VC-1);2)软硬件配合工作,固件Firmware可更新,以便于针对市场变化需求进行升级;3)支持通用的接口,易于系统集成化。本设计主要应用于中国直播星DTH项目以及高清卫星机顶盒应用。

在高清视频编解码设计中,基于硬件的实现技术已变的越来越重要,特别是在需要高效率执行、低功耗要求中。运动补偿(Motion Compensation)模块是视频解码器设计模块中访问存储器最频繁,且数据吞吐量最高的模块。为了解决存储器带宽的限制,文献[2]中提出了一种支持H.264的MC子系统,但是它不兼容于AVS;文献[3]中使用了Cache机制来降低访问外部存储器带宽,但当多种预测方式被请求时,就会减少Cache的命中效率。为解决这些问题,本设计中采用数据缓存机制用于减少对外部存储单元的频繁访问;另外,外部存储器单元SDRAM分配6帧高清帧存储空间,存储用于运动补偿计算的相关帧与重构帧,帧存储在SDRAM中采用顶底场数据分开方式,采用这种方式能够提高数据的存取效率。整个运动补偿计算模块采用并行多级流水线设计,减少了运动补偿的计算周期,提高了执行效率,使用90 nm COMS工艺库,在135 MHz的频率下综合,电路规模为45 kgate,处理一宏块数据大约需要520个时钟周期,文中设计能够应用于MPEG-2 MP@HL,H.264MP@L40以及AVS Jizhun Profile。

1 运动补偿计算模块整体架构

在运动补偿计算过程中,首先,需要接收来自于VLD(Variable Length Decoding)模块解码的运动矢量;然后根据当前模块的数据分割以及运动矢量信息,从外部的存储器参考帧中读取相应的参考像素;再通过像素插补等一系列计算,最后得到重构的像素数据。对于MPEG-2,像素插补只是在半像素位置进行双线性差值;对于AVS,在半像素位置采用4抽头滤波器F1(-1,5,5,-1),在四分之一像素位置采用4抽头的滤波器F2(1,7,7,1);而H.264/AVC在半像素位置采用6抽头滤波器F3(1,-5,20,20,-5,1)。运动补偿模块整体结构如图1所示,包括用于得到重构数据的运动补偿像素插补模块单元,用于取相关数据的外部存储器接口单元以及一些控制计算单元(包括总线判决器和DMA控制器等)。外部存储器接口单元处于运动补偿像素插补模块与总线判决器模块之间,此模块接收来自于运动补偿像素插补单元的请求,用于控制运动补偿像素插补单元取相关数据;如果相关数据不存在于逻辑缓存器子模块中,那么外部存储器接口模块将发送请求给总线判决器用于从外部的SDRAM中读取相关数据,请求返回的数据将存储在逻辑缓存器单元中,同时相关数据将被传送给运动补偿像素插补单元;若运动补偿像素插补单元请求的相关数据存在于逻辑缓存器单元中,相关数据将从逻辑缓存器单元中直接传递给运动补偿像素插补单元而不访问外部的SDRAM。

2 数据存储器优化

本文中提出了一种插补像素缓存机制,用于存储像素插补计算过程中的中间数据,对于那些反复被使用的参考像素存放在外部存储器接口单元中的缓存器Buffer中,完整的参考帧则存放在外部存储器SDRAM中,通过这种数据Buffer机制能够很好地提高运动补偿的性能,减少计算周期,运动补偿存储器架构如图2所示。

滤波中间值缓存器用于存放运动补偿计算过程中的中间值。由于这个滤波中间值缓存器只是用于存储像素插补流水的中间值,因此,它只是与像素插补计算单元有数据的交换。外部存储器接口单元内部结构框图见图3所示,主要是用于执行3部分请求响应:1) 从运动补偿像素插补模块加载来自于相关Buffer的数据;2) 发送请求信号给总线判决器;3) 将返回的数据存储到逻辑缓存Buffer中。整个外部存储器接口单元包括以下几个子模块:亮度数据请求地址模块、色度数据请求地址模块、2k亮度数据Buffer、1k色度数据Buffer、亮度数据hit模块、色度数据hit模块,以及存储器请求发送FIFO、存储器访问FIFO。整个模块采用并行多级流水线方式,可以同时处理亮度和色度的取相关数据操作。

通过这种存储器结构设计,能够减少对外部存储器频繁的访问。这样,虽然片内的存储器功耗略有增加,但是对于外部的存储器以及I/O接口的功耗能够大大地减少,表1是通过对20个QCIF视频序列功耗仿真测试的结果,结果表明存储器Buffer机制平均能够减少42%的系统功耗。

3 像素插补计算

3.1 亮度计算

在亮度像素插补计算中,需要使用3种滤波器:2种4抽头滤波器F1(-1,5,5,-1)和F2(1,7,7,1),用于AVS亮度像素插补计算;1个6抽头的滤波器F3(1,-5,20,20,-5,1),用于H.264/AVC的亮度像素插补计算。1个6阶的滤波器直接计算需要5个加法器和4个乘法器,但是通过简单的操作数组合能够将资源消耗减少到2个乘法器,即out=(A+F)-5×(B+E)+20×(C+D)。6抽头滤波器如图4a所示,设计中使用移位器和加法器组合来实现乘法器功能,因此1个6抽头滤波器需要使用7个加法器和3个移位器实现。对于2个4抽头滤波器,可采用类似6抽头的设计方式,水平滤波为out=-(A+D)+5×(B+C);垂直滤波为out=(A+D)+7×(B+C)。这样2个4抽头滤波器能够分别使用4个加法器和1个移位器实现,如图4b、图4c所示。

以文献[4]图8-4中j点像素插补为例,对一个4×4块进行像素插补计算。图5描述了H.264解码流水线过程。在流水线第1周期,使用4个水平和4个垂直滤波器分别对参考像素进行计算,输出结果存放在滤波中间值缓存器中;在第2周期,水平和垂直滤波窗口分别向右移动一格,对4×4块第2列数进行垂直插补,并且开始执行均值滤波,这样通过6个时钟周期,就能够得到计算j像素点的6个半像素参考点,所以,计算一个j参考像素需要9个时钟周期。表2总结了在H.264/AVC中插值计算一个4×4亮度像素块不同像素位置所需时钟周期(各像素点代表文献[4]中图8-4所示的位置)。

3.2 色度计算

对于色度计算来说,AVS与H.264/AVC可采用类似的计算方法,相比亮度计算,色度计算相对直接。插值按照以下公式完成

out=[(8-dx)(8-dy)A+dx(8-dy)B+(8-dx)dyC+dxdyD+32]>>6 (1)

整理后为

out=(8-dy)[8A+(B-A)dx]+dy[8C+(D-C)dx] (2)

因此,色度滤波器可设计为如图6所示,与原始设计相比,该设计需要11个加法器、4个固定长移位器以及3个可配置移位器就能实现,减少了大量的乘法器消耗。

3.3 Page/Bank地址结构

外部SDRAM采用Page/Bank存储方式用于存储6帧高清图存储空间(满足IBBBBP编码方式),设计中采用顶底场分开的方式将数据存储在SDRAM中,如图7所示。对于亮度数据来说,每一页分为4个Bank的存储空间能够存储64宏块的亮度数据,这样,每个Bank能够存储4×4=16个宏块的数据,读/写访问每个时钟周期能够读取4 pixel×2的数据,采用此种数据分割模式,能够产生最优化的数据加载能力[5]。图7中1~5标示了取值模块在不同的Page/Bank中的位置,取值模块1所耗费的时钟周期最短,而由于取值模块5跨4个Bank取值,因此,所需的时钟周期最长。例如:当考虑到一个13×13像素的取数据操作时,读取方式如图7所示,其中阴影部分为所需要取得的数据,黑色箭头表示每个时钟周期所取像素。采用这种取相关数据方式,每个时钟周期能够取得8像素数据,这种架构能够有效地减少访问外部SDRAM的precharge/active的频率(每个precharge/active需要消耗2~5个时钟周期),从而能够提高运动补偿计算的性能。

4 综合结果比较

采用文中所提出的设计方法,用Verilog语言进行RTL级描述,开发环境为QuartusII 10.2,使用Altera公司的Stratix II系列芯片EP2S90F1020C4,在时钟频率为135 MHz的情况下,使用资源为:4 590个ALUT;4 017个寄存器。建立的C模型是基于AVS验证模型RM09.10,H.264相关软件JM12.1以及MPEG-2相关的模型v1.2a。通过测试3种不同标准的码流,使用Synopsys Design Compiler综合结果显示,该Verilog代码能够满足MC功能。表3中描述采用文中Buffer缓存机制,AVS码流测试所节省的带宽,结果表明采用文中设计Buffer能够平均节省37.47%的带宽消耗。

Synopsys Design Compiler下,使用0.09 μm CMOS工艺库综合,在工作频率为135 MHz下,除去外部的存储单元SDRAM运动补偿计算模块总共消耗45.48 kgate(运动补偿像素插补计算单元与外部存储器接口单元总和),执行1 Mbyte的MC计算(运动补偿像素插补计算,不包括从外部SDRAM中取相关数据),需要消耗大约520个时钟周期,相比文献[6]减少了大约15%的时钟周期,MC计算单元资源消耗情况及与文献[6,7]比较见表4、表5所示,结果表明,该设计满足实时高清解码要求(30 f/s)。

5 小结

本文提出了一种满足多标准视频解码的运动补偿存储架构,外部存储器SDRAM存储6帧HD图,每一帧图采用顶底场数据分开的方式存储在SDRAM中,整个MC单元采用并行多级流水线处理,实现了对外部帧存储单元的高效存取访问以及运动补偿的高效计算,处理1 Mbyte的MC操作需要大约520个时钟周期,相比文献[6]节省了15%。综合结果表明,本设计满足高清视频解码的要求。

参考文献

[1]Document JVT-C167.Draft ITU-T recommendation H.264(a.k.a"H.26L")[S].2002.

[2]WANG S Z,LIN T A,LIU T M,et al.A new motion compensation design for H.264/AVC decoder[C]//Proc.IEEE International Symposium on Circuits and Systems,2005.[S.l.]:IEEE Press,2005:4558-4561.

[3]KIM J H,HYUN G H,LEE H J.Cache organizations for H.264/AVC motion compensation[C]//Proc.13th IEEE International Conference on RTCSA,2007.[S.l.]:IEEE Press,2007:534-541.

[4]ITU-T H.264建议书[S].2005.

[5]LIN C F,CHUNG C C,TSAI Y C,et al.Bandwidth-efficient architecture design for motion compensation in H.264/AVC decoder[C]//Proc.10thIEEE International Conference on Solid-State and Integrated Circuit Technology,2010.[S.l.]:IEEE Press,2010:445-447.

[6]ZHENG Junhao,GAO Wen,WU D,et al.A novel VLSI architecture of motion compensation for multiple standards[J].IEEE Trans.Consumer Electronics,2008,54(2):687-694.

上一篇:数学学案教学法摭论下一篇:自动化评价