一种处理器的视频编码器平台的探讨

最新更新时间:2012-04-25来源: 21IC关键字:视频编码器  处理器  视频处理 手机看文章 扫描二维码
随时随地手机看文章

  1 硬件平台

  1.1 ADSP-BF561处理器

  ADSP-BF561 的推出使Analog Devices公司的Blackfin处理器系列得到了进一步的扩充,这款器件具有由两个Blackfin处理器内核构成的对称多处理结构。相比ADSP-BF533,ADSP-BF561可提供两倍的信号处理性能、两倍的片上处理器以及显着提高的数据带宽能力。ADSP-BF561 与ADSP-BF533完全代码兼容,并利用架构的动态电源管理能力而继续保持了非常低的功耗。

  Blackfin561是Blackfin系列中的一款高性能定点DSP视频处理芯片。ADSP-BF561 集成了两个工作频率均高达756MHz的Blackfin处理器内核(ADI公司还提供了低成本的500MHz和600MHz版本)和2.6Mbytes的片上SRAM存储器。ADSP-BF561 片上存储器被分配于每个内核的专用、高速L1存储器和一个128KBytes大容量共享L2存储器之间。32位外部端口和双16通道DMA控制器提供了极高的数据带宽。ADSP-BF561 片上外设包括两个并行外设接口(均支持ITU-R 656视频格式化)和支持I2S格式的高速串行端口。ADSP-BF561 专门针对各种消费类多媒体应用进行了优化。

  1.2 基于ADSP-BF561的视频编码器平台

  此评估板包括1块ADSP-BF561处理器、32MBSDRAM和4MBFlash,板中的AD-V1836音频编解码器可外接4输入/6输出音频接口,而ADV7183视频解码器和ADV7171视频编码器则可外接3输入/3输出视频接口此外,该评估板还包括1个UART接口、1个USB调试接口和1个JTAG调试接口。摄像头输入的模拟视频信号经视频芯片ADV7183A转化为数字信号,此信号从Blackfin561的PPI1(并行外部接口)进入Blackfin561芯片进行压缩,压缩后的码流则经ADV7179转换后从ADSP-BF561的PPI2口输出。此系统可通过Flash加载程序,并支持串口及网络传输。编码过程中的原始图像、参考帧等数据可存储在SDRAM中。

  2 H.264视频压缩编码算法的主要特点

  H.264压缩算法和以太网(IP)接口,可实现1路单向数字视频、2路双向高保真音频、1~2路双向异步数据在以太网上高质量传输。视频编解码标准主要包括两个系列:一个是MPEG系列,一个是H.26X系列。其中MPEG系列标准由ISO/IEC组织制定,H.26X系列标准由ITU-T制定。

  H.264视频压缩算法采用与H.263和MPEG-4类似的、基于块的混和编码方法,它采用帧内编码(Intra)和帧间编码(Inter)两种编码模式。与以往的编码标准相比,为了提高编码效率、压缩比和图像质量,H.264采用了以下全新的编码技术:

  (1)H.264按功能将视频编码系统分为视频编码层(VCL,VideoCodingLayer)和网络抽象层(NAL,NetworkAbstractionLayer)两个层次。其中VCL用于完成对视频序列的高效压缩,NAL则用于规范视频数据的格式,主要提供头部信息以适合各种媒体的传输和存储。

  (2)先进的帧内预测,它对含有较多空域细节信息的宏块采用4×4预测,而对于较平坦的区域则采用16×16的预测模式,前者有9种预测方法,后者有4种预测方法。

  (3)帧间预测采用更多的块划分种类,标准中定义了7种不同尺寸和形状的宏块分割和子宏块分割。由于采用更小的块和自适应编码方式,故可使得预测残差的数据量减少,从而进一步降低了码率。

  (4)1/4 采样精度运动补偿:以前的标准最多 1/2 精度运动补偿,首次 1/4 采样精度运动 补偿出现在 MPEG-4 第二部分高级类部分,但 H.264/AVC 大大减少了内插处理的复杂度。

  (5) 改善“跳过”和“直接”运动推测:在以前的标准中,预测编码图像的“跳过”区 不能有运动。当编码有全局运动的图像时,该限制有害。H.264/AVC 对“跳过”区的 运动采用推测方法。对双预测的 B 帧图像,采用高级运动预测方法,称为“直接”运动补 偿,进一步改善编码效率。

  (6)整数变换(DCT/IDCT)。对残差图像的4×4整数变换技术,采用定点运算来代替以往DCT变换中的浮点运算。以降低编码时间,同时也更适合到硬件平台的移植。

  (7)H.264/AVC支持两种熵编码方法,即CAVLC(基于上下文的自适应可变长编码)和CABAC(基于上下文的自适应算术编码)。其中CAVLC的抗差错能力比较高,但编码效率比CABAC低;而CABAC的编码效率高,但需要的计算量和存储容量更大。

  (8)多参考图像运动补偿:在 MPEG-4及以前的标准中,P 帧只使用一帧,B 帧只使用 两帧图像进行预测。H.264/AVC 使用高级图像选择技术,可以用以前已编码过且保留在缓 冲区的大量的图像进行预测,大大提高了编码效率。

  H.264的这些新技术使运动图像压缩技术向前迈进了一大步,它具有优于MPEG-4和H.263的压缩性能,可应用于因特网、数字视频、DVD及电视广播等高性能视频压缩领域。

  3 H.264视频编码算法的实现

  将H.264在DSP进行改进要经过以下3个步骤:PC机上的C算法优化、从PC机到DSP的程序移植、在DSP平台上的代码优化。

  3.1 PC机上的C算法优化

  根据系统要求,本设计选择了ITU的Jm8.5版本baselineprofile作为标准算法软件。ITU的参考软件JM是基于PC机设计的,故可取得较高的编码效果。将视频编解码软件移植到DSP时,应考虑到DSP系统资源,主要应考虑的因素是系统空间,需要对原始的C代码进行评估,这就需要对所移植的代码有所了解。

  了解了算法结构以后,还需要确定在编码算法的实现过程中,运算量较大且耗时较长的部分。VC6自带的profile分析工具显示:帧内与帧间编码部分占用了整体运行时间的60%以上。其中ME(MoveEstimation,运动估计)又占用了其中较多的时间。

  (1)大幅删减不必要的文件和函数

  由于选用了baseline和单一参考帧,因此,很多文件和函数都可以删减,包括有关B帧、SI片、SP片和数据分割、分层编码、权值预测模式、CABAC编码模式等不支持特性的冗余程序代码,此外,还可以删除top_pic、bottom_pic等与场有关的全局变量与局部变量、分层编码、多slice分割以及FMO、与场编码/帧场自适应编码/宏块自适应编码有关的预测、参考帧排序、输入输出以及解码器缓存操作等;也可以删除随机帧内宏块刷新模式和权值预测模式等相关的冗余代码,同时删除rtp.c;sei.c中包含一些辅助编码信息(并不编入码流中),如果不用,也可以删除leaky_bucket.c用于计算泄漏缓存器的参数。

  (2)配置函数的改写

  由于JM的系统参数配置是通过读取encoder.cfg文件来实现的,故可将参数配置由读取文件改为通过初始化集中赋值函数来实现,这样既减少了代码量,又减少了对有限内存空间的占用和读取时间,提高了编码器整体的编码速度。

  (3)去除冗余的打印信息

  为了调试与算法改进的方便,JM保留了大量的打印信息。为了提高编码速度,减少存储空间消耗,这些信息完全可以删掉。如果lor.dat和stat.dat仅需在PC机上调试时使用,也没必要移植到DSP平台上,跟这部分相关的代码完全可以去除。但是,调试时所需的基本信息(如码率、信噪比、编码序列等)则应保留参考。

  通过调整可使得代码的结构、容量更加精简,从而为接下来在DSP上的移植做好准备。

  3.2 从PC机到DSP的程序移植

  要将PC端精简的程序移植到ADSP-BF561的开发环境VisualDSP下,以使其能够初步运行,所需考虑的主要是语法规则和内存分配等问题。

  (1)除去所有编译环境不支持的函数

  (2)添加与硬件相关的代码

  (3)配置LDF文件

  (4)Malloc问题的解决

  4 DSP平台上的代码优化

  在VisualDSP开发环境下对代码进行优化的主要方法有C语言级优化和汇编级优化。

  4.1 C语言级优化

  通过VC6的profile分析工具发现:移植与优化的重点应在运动估计部分。DS算法可采用两种搜索模板,分别是有9个检索点的大模板LD-SP和有5个检索点的小模板SDSP(SmallDiamondSearchPattern)。搜索时,先用大模板计算,当最小块误差SAD点出现在中心点处时,再将大模板LDSP换为SDSP进行匹配运算,这时,5个点中具有最小SAD者若为中心点,则该点即为最优匹配点,然后结束搜索,否则将继续以此点为搜索中心进行SPSS搜索。

  经JM实验证实,采用此种方法,可以节约大约10%的运行时间,且代码量无太大增长。

  针对DSP的特点和相关的硬件指令,设计时可对代码进行如下优化:

  ◇对程序结构进行调整。对不适合DSP执行的语句进行改写,以提高代码的并行性。

  ◇宏的使用。也就是将有些较短,执行单一、调用次数多的函数改为宏。

  ◇循环优化是将C语言中的for循环打开,排流水线,提高并行性。

  ◇浮点数定点化。因为Blackfin561并不支持浮点运算,但原始程序代码却是浮点运算的格式,所以必须改成定点运算,而其修改后的执行速度也会加快很多。

  ◇尽量用逻辑运算代替乘除运算。由于乘除运算指令的执行时间要远远大于逻辑移位指令,尤其是除法指令,故应尽量用逻辑移位运算来代替乘除运算,以加快指令的运行速度。

  ◇减少判断转换。

  ◇尽量静态分配内存。

  ◇调用系统提供的丰富的内联函数。

  此外,为了充分发挥DSP的运算能力,还必须从它的硬件结构出发,最大限度地利用它的8个功能单元,使用软件流水线尽量让程序无冲突地并行执行。也可将最耗时的函数抽取出来,用线性汇编改写,从而最大限度的利用DSP的并行性。

  4.2 汇编级优化

  汇编级优化主要指如下几点操作:

  (1)使用寄存器资源

  Blackfin561提供了8个32位数据寄存器以及一系列的地址寄存器。使用寄存器代替局部变量时,若局部变量用来保存中间结果,那么用寄存器代替局部变量可省掉很多访问内存的时间。

  (2)使用专用指令

  Blackfin561提供有求最大值、最小值、绝对值、CUP及大量视频专用指令,应可能用多位的指令来访问少位的数据。通过使用这些指令能大大提高代码的执行速度。如用int型(32位)访问2个short(16位)型数据时,可将其分别放在32位寄存器的高16位和低16位字段。这样,数据读取效率可以提高1倍,从而减少内存访问次数。

  (3)使用并行指令和向量指令

  ADSP-BF561中每条通用指令都可以和一条或两条存储器访问指令并列执行,这样有利于ADSP-BF561的流水线满负荷运行,更充分发挥ADSP-BF561的数据处理能力。

  (4)合理存放反复调用的程序段

  把被反复调用的程序段(如DCT变换和IDCT变换)放在片内程序存储区中,把频繁用到的数据段(如编码表)放在片内数据存储器中,而把不常用到的程序和数据段放在片外存储器中,以避免对程序或数据进行不必要的反复搬移。

  (5)合理使用内外存储器

  BF561片内只有256KB的存储空间,因此当前帧、参考帧和当前帧的重建帧都必须放至片外存储器,压缩码流若被主机读取,也可放至片外。其它数据如程序代码、全局变量、VLC码表、各编码模块产生的中间数据等均可放至片内。

  (6)DMA的使用

  由于CPU访问片外存储器的速度通常要比访问片内慢几十倍,片外数据的传输通常成为程序运行时的瓶颈,这样,即使代码效率很高,流水线也会因为等待数据而被严重阻塞。解决这一问题的有效方法是用DMA传送数据。程序是逐个宏块进行编码的,在编码当前宏块的同时,先由DMA将下一个宏块的数据、用到的参考帧数据由片外传送至片内,当前宏块做完运动补偿后,DMA又将重建后的宏块由片内传送至片外。这样CPU只对片内数据进行操作,从而使流水线可以顺利进行,而压缩码流按逐个码字有时间间隔地写入,可由CPU直接写至片外。

  5 结束语

  经过用ADSP-BF561汇编语言改写的对应函数的优化程序经调试运行后,DCT,IDCT部分效率提高了大约15倍,去块滤波部分效率提高了大约6~7倍。对于模块中的其它部分函数,也同样取得了良好的优化结果。说明其优化工作确实达到了良好的效果。

关键字:视频编码器  处理器  视频处理 编辑:探路者 引用地址:一种处理器的视频编码器平台的探讨

上一篇:如何延长电视发射管使用寿命
下一篇:富士通推出电源管理IC在线设计仿真工具Easy DesignSim

推荐阅读最新更新时间:2023-10-18 16:40

AMD:绝不开放安全协处理器
在技术上,AMD一直给人以很开放的态度,习惯采纳业界通用标准,即便是自主研发的也不会完全封闭起来,这么做最大好处就是能争取到更广泛的业界支持,不过凡事总有例外。下面就随嵌入式小编一起来了解一下相关内容吧。 AMD在最近几代APU,以及最新的Ryzen、EPYC处理器中都集成了一个名为平台安全处理器(PSP)的模块,从硬件底层负责系统安全,而且有权限直接访问整个系统,类似Intel的管理引擎,但更加强大。 PSP模块的权限非常高,而且对于操作系统而言,它基本上是不透明的,也就是处在一个很封闭的状态。 这样问题就来了:如果PSP中存在漏洞并被人恶意利用怎么办?如何关闭它(事实上你不能)? 开源社区里就有不少人提出AMD应该开放PSP的
[嵌入式]
PandaBoard 推出基于 OMAP™ 4 处理器的低成本开放式移动软件开发平台
日前,PandaBoard 宣布为移动软件开发人员推出一款基于德州仪器 (TI) 高性能 OMAP™ 4 平台的方便易用、功能齐全的开源开发工具。该款最新低成本电路板使开发人员能够空前发挥德州仪器 (TI) OMAP 4 应用处理器平台的强大功能,该平台针对智能电话及其它移动设备进行了功耗与性能优化。不断发展的 Linux 专家在线社区可为 PandaBoard 开发人员提供支持,帮助他们进行各种移动开源软件的设计,如 Android、Angstrom、Chrome、MeeGo 以及 Ubuntu 等。 Canonical OEM 厂商服务部销售与产品管理副总裁Jon Melamut表示,“Canoni
[嵌入式]
PandaBoard 推出基于 OMAP™ 4 <font color='red'>处理器</font>的低成本开放式移动软件开发平台
嵌入式ARM处理器的节能优势
许多嵌入式ARM处理器的系统都是基于电池供电的能量供应方式,而处理器的功耗对于整个SoC芯片至关重要,因此ARM处理器的低功耗优势可以充分节省能量消耗。总之,当前的典型功耗的 电流 图并不依赖于标准过程、标准集或工作 负载 。 EnergyBench提供若干工具,这些工具可容易低与经济实用的硬件结合使用,以便使用E EM B C开发的标准方法测量典型功耗。不过,除了处理器之外,具体芯片设计和集成到芯片内部的外围模块也是影响芯片功耗的重要因素。虽然许多芯片供应商都会在产品的datasheet中提供功耗参数,但是这些参数往往是不具可比性的。当设计者试图对集成到SoC中的不同处理器进行对比时,如果想要弄清楚处理器的真实功耗是怎样
[单片机]
嵌入式ARM<font color='red'>处理器</font>的节能优势
分析师称AMD可能撤销图形处理器业务
   AMD收购ATI显然将使这两家公司的产品路线图发生变化。目前,没有人能够确切地说明这两家公司的计划将发生什么变化。美国技术研究公司的一位分析师认为,AMD最终将撤销单独的图形芯片业务。   美国技术研究公司的分析师Doug Freedman在给用户的分析报告中说,在分析了这些选择之后,我们认为AMD可能会剥离单独的图形处理器(GPU)业务,以实现把CPU和GPU芯片集成到一个芯片中的长远目标。   这位分析师认为,ATI Radeon单独图形处理器芯片将仅限于AMD自己的微处理器,因此市场份额并不大。AMD单独的图形处理器业务与Nvidia和其它独立的图形处理器供应商相比将处于不利的地位。AMD的图形处理器将与A
[焦点新闻]
通过嵌入式ARM多核处理器对串行快速排序算法进行并行化优
目前,嵌入式多核处理器已经在嵌入式设备领域得到广泛运用,但嵌人式系统软件开发技术还停留在传统单核模式,并没有充分发挥多核处理器的性能。程序并行化优化目前在PC平台上有一定运用,但在嵌入式平台上还很少,另外,嵌入式多核处理器与PC平台多核处理器有很大不同,因此不能直接将PC平台的并行化优化方法应用到嵌人式平台。本文分别从任务并行和缓存优化两方面进行并行化优化的研究,探索在嵌人式多核处理器上对程序进行并行化优化的方法。 1 嵌入式多核处理器结构 嵌人式多核处理器的结构包括同构(Symmetric)和异构(Asymmetric)两种。同构是指内部核的结构是相同的,这种结构目前广泛应用在PC多核处理器;而异构是指内部核的结构是不同的,
[单片机]
通过嵌入式ARM多核<font color='red'>处理器</font>对串行快速排序算法进行并行化优
高通谈手机处理器:不能超过3W、45℃
Fudzilla近日采访了高通的几位高管,包括CDMA技术高级市场总监Michelle Leyden Li、GPU产品管理高级总监Tim Leland、CPU产品管理总监Tavis Lanier,畅谈了移动平台的诸多方面,尤其是芯片的功耗和发热。高通认为,45℃是移动处理器所能允许的最高温度,同时,手机处理器的热设计功耗最多只能允许2.5-3W,平板上则可以放宽到5W。 注意,热设计功耗并非芯片本身消耗的能量,而是针对散热设计的指标。 高通称,这两组数据是移动处理器保持被动散热的极限,再高就必须使用主动散热,而这在手机里是不可想象的,平板里也没见有谁敢做过。 高通表示,他们的骁龙800、骁龙600都是按照以上目标
[手机便携]
基于GIO/FVID的F2812DSP的视频处理系统
  随着时代的发展,DSP技术在视频处理系统、可视电话、工业检测等视频处理领域得到了广泛的应用,对于不同的视频处理系统,会使用不同的视频设备,所以有必要为视频没备设计驱动程序,为高层应用程序提供统一的接口来操作底层硬件。只要是遵循此驱动程序接口标准开发的高层应用程序,都可以在具有相同接口的不同硬件平台上运行,具有很好的通用性和可移植性。同时高层应用程序设计人员只要会使用设备驱动程序提供的API接口,就不必了解底层硬件的具体实现,可以大大提高整个视频系统的开发效率。   对于视频设备,TI公司也提出了对应的视频设备驱动程序模型,但这些模型主要是针对6000系列高端DSP,甚至是DM64X这样的视频处理专用DSP设计的。而TMS3
[电源管理]
基于GIO/FVID的F2812DSP的<font color='red'>视频</font><font color='red'>处理</font>系统
最多24核心32线程,全新酷睿第14代台式机处理器先睹为快
6 GHz 开箱即得! 自带 AI 加持的应用优化器,英特尔酷 睿 第 14 代台式机处理器来了 最新英特尔处理器提供全球出众的台式机处理器频率,为发烧友带来非凡的台式机体验,其 出色 的超频能力带来令人 惊叹 的超高性能。 2023 年 10 月 16 日 —— 今天,英特尔发布了以 i9-14900K 为代表的全新英特尔 ® 酷睿™ 第 14代台式机处理器产品家族,涵盖了此次推出的六款全新未锁频台式机处理器,拥有最多 24 核心和 32 线程,最大睿频频率高达 6 GHz。此外,由于比前一代增加了 4 个能效核,i7-14700K 拥有 20 核心和 28 线程。英特尔 Extreme Tunin
[家用电子]
最多24核心32线程,全新酷睿第14代台式机<font color='red'>处理器</font>先睹为快
小广播
最新电源管理文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved