微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 针对H.264的编译码设计以及各种硬件加速架构

针对H.264的编译码设计以及各种硬件加速架构

时间:11-18 来源:中电网 点击:

前言

不只在高解析视讯应用上发光发热,H.264|0">H.264针对中低分辨率,也能发挥其降低流量的长处,因此应用于网络实时串流传输,或者是行动装置上小屏幕视讯的播放,都是非常合宜的方式。由H.264具有一系列优于MPEG4和H.263的特性,在相同的重建图像质量下,能比H.263节省约50%左右的流量。但是,在获得优越性能的同时,H.264的计算复杂度却大大增加。

了解视讯编译码发展历史的读者会知道,H.264编码的计算复杂度大约相当于H.263的3倍,解碼复杂度大约相当于H.263的2倍,乍看之下,所得到的成果似乎与计算负担不成比例,考虑到以目前的网络环境、硬件的总线频宽限制等因素,现阶段硬件频宽与网络环境的拓展有其限制且进展缓慢,但是处理器的计算能力一日千里,与其在硬件或网络环境花成本、下功夫,不如利用更强大的处理器及更有效率的编码机制来完成。

装上高效能处理器之后,一般的纯软件解压缩方案在个人计算机平台上,已经可以达到完美的播放质量与速度,但是行动产品受限于功耗问题,处理器的性能必须有所妥协,因此行动产品在进行实时译码的过程中就会显得力不从心,综观市面上可播放H.264视讯的行动产品,以纯软件来完成译码工作,几乎都无法达到完美的流畅度。

图说:PC的软件译码能力已经完美肩负起BD影片的播放需求。(www.Amazon.com)

视讯编译码导入SoC|0">SoC的关键技术

懂得运用多媒体架构对开发者来说十分重要,应用在视讯编译码的处理架构相当多,针对行动应用方面来说,就可包括了硬件线路单元、独立硬件线路芯片、嵌入式DSP、独立视讯加速处理器、具备多媒体加速指令集的通用处理器等等,在SoC之中,我们常可见到这些架构彼此混用,事实上,适当的混合不同架构的处理单元,常是1款SoC设计成功的关键,过于单向的设计,可能会严重影响到SoC产品的应用广度。

纯粹硬件线路(Hardwired)的视讯编译码设计

老式的硬件加速技术只执行1个特定标准(通常是单个标准)的单一功能(编码或译码),具有最高的效率和较少的逻辑闸。研发时,不同的SoC只有在功能完全相同时才能复用,例如当加速器支持以VGA分辨率编码的MPEG-4简单格式时,而当加速器需要同时支持MPEG-4(简单格式)和分辨率为D1的H.264(基线格式)编码时,则需要完全重新设计,需要大约35万个逻辑闸。

体积的精省是采用硬件加速器的主要优点,因为固定电路芯片规模可以做到非常小。由于硬件线路只执行固定的操作,不包括任何指令操作(存取、译码),也没有程序储存器管理。因此逻辑闸数较少。而逻辑闸数目少,晶体管数量也少,每单位的晶体管效率高,因此功耗较小。而在性能方面,由于这是一项效率非常高的解决方案,运作的执行时间和速度都较快。
上述方案优点固然不少,但是也有不少缺点,首先不同功能取向的硬件线路译码芯片,只能解决单一的编译码需求,因此视讯译码芯片只能处理视讯。采用硬件加速器时,多媒体中的音效和语音部分必须由SoC中的其它部分来处理(通常是CPU或DSP);其次,音效与视讯之间的同步化必须在CPU上来执行。

在CPU上实现同步增加了研发难度、整合难度和QA,如此一来也会带来处理器的计算负载,而硬件线路未必能够负担起全部的运算流程,当采用硬件加速器时,CPU通常执行算法中的讯息编码(如CAVLC)和后处理(如去方块滤波器),这使得该方案耗费的功率极大(在大约150MHz的载荷上,1个ARM11内核消耗的功率可能就高达120mW以上)。

而硬件线路最大的缺点,在于无法进行软件升级和缺陷修复。要修正错误,通常也要伴随着芯片本身的改版以及重新投片生产,已经生产出来的缺陷产品无法进行任何修补工作。针对新一代的产品,在SoC中执行特定任务的硬件加速器似乎不能满足下一代的需求,也就是功能没有拓展性,无法程序化,效率也固定,无法藉由软件来进一步最佳化。

至于专属内存方面,在SoC中,硬件线路芯片的专用内存不易被其它组件存取,因此从成本和硅芯片面积的角度上来看,效率显得较低。 虽然某些硬件线路加速器能够支持多种标准(如H.264 Baseline格式和MPEG-4 Simple Profile)的译码运算,但尽管这些硬件线路设计加速器弹性佳,且兼具能性能表现,却也同时牺牲了逻辑闸和晶体管数目少的最大优点。
硬件线路设计案例

图说:由交通大学与联发科合作开发的硬件线路H.264译码的芯片。(交通大学)

交通大学与联发科在2006年合作开发出针对H.264译码的低耗电系统单芯片,便是针对行动应用所开发出来的1款产品,由于是采用硬件线路独立芯片,相当适用于各类型的行动影音装置,芯片本身采用108pin CQFP封装,内嵌了22.75Kb的高速缓存,并外接2颗4MB的SDRAM。核心电压为1.8V,而I/O电压则是3.3V,以1P6M CMOS制程制作,Die size仅有3.9mm x 3.9mm,全速工作时功耗为12.4mW(16.6MHz的速度,D1分辨率,以30fps译码H.264影片),完全将硬件线路译码的优点发挥的淋漓尽致。

由于这颗芯片采用的是MPEG-2与H.264混合设计,在主要译码核心中,同时内建了MPEG-2与H.264语法器,至于在其它如管线及内存部份则是采共享设计,因此如果想要扩充规模支持其它编码标准,也是有可能的,在架构上具备了相当程度的弹性,或可称为可调性。在设计上有几个重点,那就是H.264与MPEG-2的区块取样定义不同,因此采用了不同阶段并用的区块取样策略。

其次,为了降低耗电,设计人员也大幅减少内存耗电的电路构成及处理步骤。通过将译码处理所需要的内存空间区分为3个等级,分别准备各自最佳的内存容量。3个等级的内存区块分别称为「Macroblock Memory」、「Slice Memory」及「Frame Memory」。 Macroblock Memory主要用于储存进行Motion compensation等的单位区块的像素数据。Slice Memory主要用于储存Macroblock附近的影像数据。Frame Memory用于保存现有Frame和参考Frame,这部份采用了2个4MB的SDRAM,以及与芯片外部连接的总线。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top