嵌入式DSP上的视频编解码
随着数字多媒体的应用日渐广泛,视频解码在嵌入式系统设计中变成一个基本要素。视频标准有多种,依赖于产品可实施其中的一个或者多个标准。当然这不是全部,视频仅仅是多媒体码流的一部分,另外还有音频或者语音需要并行处理。因此,一个精确的处理存储或数据流的同步层是必需的。此外,视频解码本身对性能要求较高,需要不同于先前基于语音和信息应用的系统架构;这就对便携系统提出了特殊挑战,而桌面应用同样面临这些问题。
%A
%A 通用视频标准和编解码器
%A
%A 联合视频组(Joint Video Team, JVT)由ITU的视频编码专家组(Video Coding Experts Group, VCEG)和ISO/IEC运动图像专家组(Moving Picture Experts Group, MPEG)组成。VCEG开发自愿性标准,用于会话和非会话类音/视频应用的先进移动图像编码。MPEG开发国际标准,用于移动图像、音频及两者组合的压缩、编码、解压缩、处理等,以满足各种应用。总之,JVT已经开发了包括ITU H.262/MPEG2和H.264/MPEG-4 AVC在内的最流行的视频标准。
%A
%A MPEG-2 Video/H.262:MPEG2(ISO/IEC 13818-2),也被称为ITU-T H.262,是目前消费类电子视频设备中使用最广泛的视频编码标准。MPE2视频用于数字电视广播:包括地面、电缆和直接卫星广播。它能在25fps(Pal)或者30fps(NTSC)的固定帧率下达到720x576象素成像。此外,它也是DVD视频中必需的编解码器。
%A
%A MPEG-4-SP/ASP:ISO/IEC 14496-2描述了MPEG4简单类(Simple Profile, SP)/高级简单类(Advanced Simple Profile, ASP)。其中,SP用于下一代便携式终端和窄带互联网。而ASP增加若干工具,编码效率提高了1.5到2倍。他们两个均在市场上获得越来越多的接受
%A
%A MPEG-4-AVC/ITU-T H.264:先进视频编码(AVC)是由ISO/MPEG和ITU-T联合技术委员会开发的多媒体标准。AVC提供更高的压缩率,更好的视频质量和比MPEG2更高的容错性,有望用于互联网广播和移动通讯。
%A
%A Windows Media Video(WVM)/SMPTE VC-1:WMV9是微软的多媒体标准,其特性包括支持流处理,可变比特率,以及与MPEG-4-AVC/H.264相媲美的容错工具。除了用于家庭电脑,WMV9目前也在电影院用于数字投影。电影中使用的编码可以是7~12Mbps的恒定比特率CBR或可变比特率VBR,并达到DVE解析度(720x480)。
%A
%A 应用方案
%A
%A 特定的目标应用决定了系统要求,因而带动了系统设计的选择。
%A
%A 个人媒体播放器(PMP):个人媒体播放器是带大容量存储器的便携式设备,通过对存储的文件进行解码,可以观看视频、听音乐或者浏览数码照片。由于是便携式播放器,因此功耗至关重要。既然编码和流处理功能都不需要,并且屏幕尺寸通常是比较小的QVGA或者CIF格式,其可通过基于DSP的方案很好的解决。采用DSP的优势还在于可轻松支持多种视频和音频标准。例如:LSI针对高性能嵌入式系统的可授权DSP核ZSP500,可为此类应用提供充足的视频处理能力。此外,ZSP500还可以提供杰出的音频解码能力,使DSP可在较低的频率下运行;从而使音频/视频子系统功耗很低。而存储器、键盘、显示和文件系统可通过微控制器执行。
%A
%A
%A 当然,某些PMP具备把播放器连接到普通电视机的视频输出功能。虽然PMP集成的显示屏幕相对较小,但现在的视频解码尺寸通常达到D1格式。依据播放器的功能列表要求,设备需要集成1个或者多个视频解码标准;对于在电视帧率(25-30帧/秒)下D1格式视频解码,硬件视频解码器是最佳选择。多个视频解码标准可能需要多个硬件模块。实行多个解码标准会提高系统成本,但不会提高功耗,因为同一时间只有一个模块会被激活。多标准音频解码可在小而高效的嵌入式DSP核中实现,而无需增加额外的硬件成本(存储解码器的空间除外)。而微控制器将用于控制DSP和视频硬件解码器。
%A
%A 当仅用于播放音频时―如典型的MP3播放器,也可使用单DSP解决方案。此系统中DSP进行音频解码、文件/流数据处理,还同时控制键盘、显示屏和存储器等。由于DSP处理音频解码更为高效,因此使用如ZSP400 DSP而非微控制器可以显著降低功耗。此外,基于DSP的解决方案可进行软件升级,以支持运算更为密集的音频标准(比如aac Plus),此时微控制器可能无法处理额外增加的负荷。
%A
%A 视频移动电话:该类应用的视频尺寸是QCIF或者CIF,帧率从10到30帧每秒。是否需要支持多种视频/音频解码标准取决于电话的功能要求。视频将是流视频或者短的视频序列回放。通过软件解码而无需额外硬件,既可满足这些设备的性能要求。而且大多数的电话集成了微控制器和DSP,因此视频解码可通过DSP实现,这也使得低功耗精巧系统成为可能。另外一些电话可能包含PMP或者数码摄像机的一些功能,单纯的DSP设计方案无法满足要求,这就需要额外的硬件加速。
%A
%A 视频桌面电话:该设备提供视频会议功能,需要在强实时限制下完成编解码。如果帧尺寸和帧率有限,单DSP解决方案仍然可行。然而,大部分桌面电话具备QVGA或者更大的显示屏;此外,用户通常期望有比无线移动设备更佳的语音/视频质量。这意味帧率应当更高,掉帧率/卡帧率应当尽可能低,此时可能需要采用硬件解决方案完成视频编解码。语音编解码可通过低成本的DSP(如ZSPneo)或者系统中的微控制器实现。
%A
%A 移动数码摄像机(DVR):对于该类设备,多标准编解码没有必要,大多数仅使用单一视频编解码标准。由于大尺寸,高帧率和低功耗的苛刻要求,纯硬件解决方案通常是首选。而不需要DSP,此时系统微控制器用于驱动视频和音频硬件模块。
%A
%A 机顶盒:机顶盒需要完成高质量视频流的处理和已录制的视频文件的解码。同DVR一样,视频质量的要求(帧尺寸,帧率,比特率和容错能力)使其几乎只能通过硬件解码来进行。当然,因为不像移动设备对功耗要求那样苛刻,也可采用多DSP核配合一些基本的硬件加速的方案来设计可处理各种视频编解码器的系统。根据功能要求,机顶盒可能需要一定的灵活性:尤其是将其用于媒体播放器、数字VCR或网络流媒体领域。这时可用DSP中的软件处理音频。为了实现这种灵活性,要选择不同的编解码器完成回放、编码、译码等功能,此时用于音频处理的DSP将会是如ZSP500这样的高性能处理器,以实现迎合家庭影院最新潮流的环绕声、声音处理等功能要求。
%A
%A 基本设计配置
%A
%A 针对本文宗旨,我们可以考虑以下4种基本设计配置:第一种设计包含1个微控制器和1个DSP(MC+DSP);第二种设计包括1个微控制器和1个DSP,但是DSP同时也控制1个视频编码/解码硬件模块(MC+[DSP+VHW]);第三种设计使用1个微控制器,DSP和视频编码/解码硬件模块(MC+DSP+VHW),在该设计中微控制器控制DSP和视频硬件模块;最后一种设计包含1个微控制器,1个视频编码/解码硬件模块,1个音频编码/解码硬件模块(MC+VHW+AHW)。在上述各类设计中,微控制器负责典型的嵌入式控制任务:包括用户控制连接(如操纵杆控制),USB/UART/以太网驱动,协议层(如TCP/IP, HTTP)等。
%A
%A
%A MC+DSP-微控制器和DSP用于低视频解析度(CIF),软件可升级,支持多种音、视频标准的系统。DSP用于音频解码,视频解码和音/视频同步。虽然性能有限,但系统非常灵活,此平台可轻松实现多种音频和视频解码格式支持。
%A
%A MC+[DSP+VHW]―该视频硬件模块用于高解析度视频编/解码。DSP管理音频编/解码,也负责音/视频同步,同时也能用于画中画或者其他视频叠加功能。该系统的一个优势是音频/视频子系统可设计为一个标准的多媒体编/解码器,可轻松植入系统而不会增加太多的复杂性。DSP是系统多媒体部分的控制器。由于多媒体编/解码系统与微控制系统的连接很松散,因此其能够被轻松整合进众多现有微控制器系统中,从而使这个方案具备相当吸引力。该编/解码系统可被当作一个具有标准本地总线接口的ASSP产品。
%A
%A MC+DSP+VHW-在该配置中,DSP用于音频编/解码,而微控制器用于实现音/视频同步。这就需要更复杂的微控制器设计,但可采用与MC+[DSP+VHW]系统相比功耗、成本都更低的DSP。由于微控制器必须协调DSP和VHW,同时还要执行其它的控制任务以及所有的协调操作,因此该方案实现困难很多。
%A
%A 该配置的一个变种是由DSP执行视频解码、音频编/解码,而视频编码仍然由硬件执行,这需要一个性能强大的DSP,但会使系统灵活性更强,并支持多种视频解码标准。
%A
%A MC+VHW+AHW-在该配置中,微控制器执行除音、视频编/解码外的所有任务。音/视频同步也由微控制器执行。该解决方案除音频子系统灵活性较差(仅能执行原始设计中的音频编解码器而不能软件升级)外,和MC+DSP+VHW很相象。其好处在于它能与特定应用配合,与各种前述方案相比具有最佳的功耗。
%A
%A 本文小结
%A
%A 嵌入式系统的设计取决于特定的目标应用。软件灵活性、功耗和性能的综合考虑决定最佳配置方案。应用很广泛,解决方案则反映了不同应用的需求。一些应用需要低功耗而其他需要灵活性和/或高性能。DSP可提供良好的性能和低功耗,同时可增加灵活性;完美适合于各种应用。由于整个多媒体解决方案(音/视频编解码和音/视频同步)可作为单一模块轻松集成至现有和新系统中;这将使大量复杂问题得到一次性解决并在以后可多次重用,从而降低了使用多媒体模块的系统的开发成本和总体开发时间。
%A
%A 作者:Ramon Trombetta
%A
%A%A
%A
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。