视频转码(Video Transcoding)是指将已经压缩编码的视频
码流转换成另一个视频码流,以适应不同的
网络带宽、不同的终端处理能力和不同的
用户需求。转码本质上是一个先解码,再编码的过程,因此转换前后的码流可能遵循相同的
视频编码标准,也可能不遵循相同的
视频编码标准。
技术背景
视频转码市场已经开始吸引了不少数码设备厂商和半导体公司的关注。前者出于市场实际需求的考量,一般都自行开发出从
MPEG-2到H.264的
ASIC转码芯片并集成在产品中。例如
松下的HDD
录像机DIGA系列采用了自己开发的UniPhier芯片,可以在录制节目的时候将17Mbps基于MPEG-2的数字电视信号转换成5.7Mbps的H.264格式,从而大幅提高了
视频录制时间。日本的
索尼和
日立等公司也在2007年推出了采用自有芯片的具有转码功能的产品。
随着半导体公司对转码技术的兴趣提升,支持MPEG-2、H.264、
VC-1等多种
格式转换的新品也在去年陆续面市。但是策略也不完全相同,目前转码技术的实现手段有偏向软件和硬件两种,前者通常采用高速计算机或者高性能的DSP,后者一般采用专用ASIC或者
FPGA。谈到这几种方案的区别,
TI通用DSP业务发展经理郑小龙认为:“
数字视频编解码及转码的应用中高端DSP在
实时处理中始终是主力平台。在基本的媒体处理平台中,ASIC类芯片一旦设计完成交付
流片,则各种功能均不能再改变;FPGA虽属有硬件可编程器件,但如果硬件设计完成并制板之后,就很难再有大的改动;DSP作为
嵌入式软件可编程平台所备受关注之处在于全面支持各种视频
标准算法,即便是已完成产品仍可以通过软件更新的方法进行升级。”
TI支持多格式的高清
多媒体处理器DM6467是一个包含多个处理器和核心的SoC,不是多个
并行处理单元的罗列。DM6467中主要
视频处理核心为高速高清
协处理器(HD-VICP)、高速DSP和视频
数据转换引擎三个部分。其中HD-VICP 通过编码和解码两片专用加速器实现了相当于 3
GHz 以上的 DSP 处理能力,支持 HD 1080i H.264 高类转码;高速DSP采用主频为600MHz的C64+核,辅助支持H.264 高清编解码和转码时,所耗费时钟低于300MHz,且DSP应用非常灵活,既支持早期算法,也支持新算法以及专有算法。视频数据转换引擎具有视频下垂直
调节器能降低 DSP 负载,
色度采样在硬件中完成,并有菜单覆盖功能。DM6467还集成有300MHz的
ARM9核心,可以支持多种
嵌入式实时操作系统,并实现各种主控和管理工作。
实现
当通过IP网络发送DVD
光盘上的数据时(例如公司培训、
视频点播或视频广播等应用),转码技术同样适用。对于这种情况,源视频格式是MPEG-2,而VC1很可能被用作目标格式。以下将介绍如何利用两片TI TMS320C6455 DSP来实现这种系统原型。
从技术上来看,需采用视频转码技术来解决格式转换、
位速率减小和时间/
空间分辨率缩减等诸多问题。相应地,针对不同情况开发出了不同的智能视频转码方案,其
基本原则是尽可能地复用原始输入
视频流中所包含的信息以降低复杂性。
例如,运动矢量(MV)映射、DCT(
离散余弦变换)域转换和
残差重估(residual re-
estimation)等日前流行的视频转码技术可大幅降低
计算复杂性。
此外,人们也期待出现简单且可以扩展的转码架构。由于不同的视频转码方案要求以不同的方式对算法和架构进行调整,并且不存在单个的标准化视频转码方案,具有可编程能力的DSP(如C6455 DSP)适用于这一领域。
下面我们将提出一个可满足各种转码方案的通用视频转码架构及原型。为适应各种不同的视频转码目标,我们选取了最简单的转码方案将被解码的
视频流按照新的
约束条件完全重新编码。
这个初始的视频转码方案未复用原始输入视频流中所包含的信息,却能够处理所有复杂的解码和重编码任务。不过,该视频转码架构和软件基础设施是可扩展的,可以支持智能转码方案(如MV映射、DCT域转换等),以提高通道密度并充分挖掘优化质量的潜能。由于采用了灵活的软硬件框架,这个架构可以实现许多传统的和新型的转码方案。
原型的实现
尽管MPEG-2/WMV9组合有望应用得非常普遍,但DSP的可编程能力使其可以方便地处理源视频/目标视频格式的几乎任何组合。
该系统的
原始数据以MPEG-2格式的视频
压缩文件储存在硬盘中,
数据流通过Windows Media Player软件止于
平板显示器。在这个展示装置中,
视频信号采用NTSC
标准分辨率并以30帧/s的速度进行转码。 运行在DSP1上的数据流
接收器模块负责缓存MPEG-2数据流,并对MPEG-2解码器模块的
输入数据进行管理。数据接收操作由
TI公司的Network Development Kit(NDK)库(本质上是一种TCP/IP栈)控制。DSP2也有一个基于NDK的
HTTP服务器,负责处理由Windows Media Player发出的流处理请求并把
ASF数据包传送给WMP。然后,WMP将ASF数据包解码并在屏幕上显示视频信号。 该
数据流的一个最有趣和最富挑战性的特性是两个DSP在sRIO接口上的交互。对于每个
视频帧的传送,这一过程包括: 一旦DSP1发送完视频帧,便马上发送一个在sRIO协议规范中被称为DOORBELL(门铃)的数据包。DOORBELL数据包在DSP2上产生一个
系统中断告知有帧到达,然后开始WMV9编码。在完成对帧的编码后,DSP2将一个DOORBELL数据包发送回DSP1,再次触发一个中断给DSP1中告知可继续发送下一帧。在实际的实现中,使用了一种PING-PONG缓冲方案来
并行处理编码/解码和
数据传送操作。接下来,该序列以循环方式运行直到演示停止。 GUI模块将控制和监视功能内置到系统中。sRIO链接和两个
吉比特MAC(GMAC)链接的活动以实时方式显示出来。对于传送MPEG-2
数据流的链接,平均
数据速率为8Mbps,这对于标准分辨率下编码速率达30fps的情况十分普遍。对于传送ASF
数据包的链接,平均位速率为4Mbps,这表明WMV9能够节省50%的带宽但仍可达到同样的
视频质量。对于sRIO链接,平均位速率为124Mbps。
市场需求
视频转码技术的发展及不断增加的需求与
广播电视数字化进程密切相关,目前转码技术的主要
应用领域是数字电视广播和数字媒体前端处理。 “其实,多解码芯片的应用只是在‘看’节目上应用,它让设备可以支持多种类型的
信号源。”富士通
市场经理黄自力指出:“但有时有些场合只需要一种信号源,比如
有线电视的前端,最好采用同一格式播出节目,这时候就需要将一部分节目的格式进行转换。”
另外,在
硬盘录像机里,在MPEG-2格式时候占用硬盘空间太多,一部
高清电影要占8G左右的硬盘空间,这就需要转成更高压缩比的H.264格式,从而扩大容量,节省硬盘的投入成本,同时也可以降低整机的重量和体积。像富士通的MB86H52就可以在保证节目质量不变的情况下,最大达到5倍的
容量扩展。
还有一些场合下,比如利用网络来传输节目,MPEG-2就需要占用较大的带宽,如果带宽有限,就可以将MPEG-2的信号转成H.264的信号,用较小的带宽来进行传输,并且还可以进一步利用视频转码处理器降低H.264信号的
码率,使之能够适应网络的传输。
转码技术将用来满足更广泛领域的数字视频多制式转换需求,不仅应用于包括视频广播转码、媒体网管、多会议单元 、医疗影响和视频监控等商用产品中,而且也将用于包括数字媒体
适配器、高清视频会议终端、高级
数字机顶盒、IP
视频电话和
高清网络摄像机等消费类产品。在商用产品中转码
技术支持更高密度非常必要,而在消费类产品中转码技术的单片高性价比则必需。
黄自力也指出:“转码设备的应用市场还是很大的,新的应用还将被不断开发出来。”
当今视频娱乐市场以内容为王,能够实时转换任意格式的视频内容是未来
市场发展的一个核心趋势。即使不被众人所了解,但是视频转码技术必将得到广泛的使用。视频转码是指将某一
视频格式转换为另一
视频格式的过程,通常都是先将视频暂时解码,然后重新编码成需要的格式和
数据编码速度。
IDC分析指出了三种主要的转码需求:不同视频格式间的转换,例如从MPEG-2或者MPEG-4转到H.264;内容传输,改变
比特率满足不同
网络带宽或者设备播放速度的需求;
清晰度,将高清视频转为标清甚至更低的清晰度,后者反向处理。典型的例子是,为了进行编辑并将信息上载到网站(例如
YouTube)而将视频从摄像机传输至 PC 的应用。视频
数据传输时,代码转换也正在进行;例如从摄像机(
AVI 格式)到 PC(用于编辑的 MPEG-2;用于存储的 MPEG-4)再到网站(H.263/H.264/Flash/等)。如果要在 PC 上观看网站上的文件,则需再次执行代码转换使其能在
RealPlayer 或
Windows Media Player 上播放。
数字
视频压缩已成为一种几乎在各种类型的视频应用中都非常重要的技术。随着
媒体融合的趋势不断发展,压缩和互操作性能将变得越来越重要。 DVD、
HDTV、视频电话/
电信会议和最近出现的视频监视系统是最著名的几个数字视频应用。不过,这些产品的
系统级技术各有不同的历史背景,因此,需要采用不同的
压缩算法。数字视频市场中的标准数目大幅增长,特别是在该市场引入了H.264(
MPEG-4 Part 10)AVC(高级
视频编码)和WMV9等新型
编解码器后。同时,负责视频
系统设计的工程师们仍必须与仅支持几种旧标准(如
H.261、H.263、MPEG-2或MPEG-4 part 2)的传统设备打交道。但在某些应用中,该设备必须具备与集成了最新算法的新型设备进行互操作的能力。 算法的开发也是一个富于挑战性的难题。当功能更强大的新算法被开发出来并被标准化之后,还必须保证它们与原有算法兼容,这是一个令人生畏的任务,因而,必须开发出一些强大的通用转码(transcoding)方案。 知识产权方面的问题甚至更加复杂。尽管许多视频编码算法(如MPEG-2、MPEG-4、H.263和H.264)是公开的标准,但其它一些算法(如On2和Real Video)却是专有的。专有算法有时也可以成为标准算法。例如,起初为专有算法的WMV9最终因被
SMPTE协会采纳而成为公共的VC1标准。
发展
伴随广播以及
IP网络视频应用的发展,
高清视频时代正式来临。对数字设备来说,视频画面质量大幅提升的同时也给视频内容处理带来不便。MPEG-2因
压缩比太高,
占用带宽太大,不利于高清视频图像的存储及
网络传输,而H.264因压缩比高、占用带宽小,逐步成为高清视频的主流格式。目前大家都寄希望将MPEG-2格式的视频图像内容转码成H.264格式,来解决视频内容
处理过程中出现的问题。
为满足不断增加的转码需求,
富士通新推出一款高质量
全高清视频转码芯片-MB86H52,可将高清/标清的MPEG-2格式转码成高清/标清的H.264格式,在保持与MPEG-2同等视频
图像质量的同时,转码后的视频内容数据量大小为转码前的一半甚至更小。
MB86H52芯片采用的视频
图像处理技术基于富士通已量产的全高清
H.264编解码芯片-MB86H51,在转码部分使用富士通专有的视频图像质量保真算法,该算法针对转码定制设计,可
保证在MPEG-2视频
图像格式转码成H.264格式后,视频图像质量不变。
通过使用MB86H52转码芯片,能解决视频内容处理的两大难题。第一,解决
数据记录设备容量不足问题。一般来说,对于高清的视频内容,当分辨率越高时,
硬盘录像机等
数据记录设备里可保存的视频时间就越短,而通过MB86H52的转码,在相同
硬盘容量下可将视频记录时间延长2~5倍;第二,解决
窄带宽网络内高清视频
图像传输问题。转码成H.264格式后,视频
图像数据量大幅减小,相同带宽内传输的视频图像数据更多,从而实现在家用网络或其它窄带宽网络内传送
全高清视频图像。
特点
1. 高压缩性能的全高清视频图像转码:高压缩性能,可将MPEG-2的视频图像数据大小压缩至转码前的一半,甚至更小。高清、
标清格式均适用。
2. 专有的视频图像质量保真算法:采用富士通专有的视频图像质量保真算法,可使视频图像在由MPEG-2转换为H.264格式后仍然保持同等画面质量。它连续追踪、分析人眼观看视频图像时易于察觉的画质失真部分(例如脸或缓慢移动的物体等)和不易察觉的画质失真部分,对易察觉部分使用较小压缩比以保持高画面质量,同时对其他部分尽可能压缩。
3. 内嵌的H.264
高清编解码功能:内嵌H.264高清编解码功能,可实时将未压缩的视频
数据编码成H.264格式,也可实时将已压缩或转码的H.264
视频数据进行解码。
HDMI接口输入/输出的
基带视、
音频数据也可编码为H.264格式。
4.
低功耗:采用先进的90nm制程生产,功耗极低,全高清转换(
1080i)视频内容格式时功耗仅为1.7W。
挑战
视频转码是一个高运算负荷的过程,需要对输入的
视频流进行全解码、视频过滤/
图像处理、并且对输出格式进行全编码。最简单的转码过程仅仅涉及到解码一个
比特流和用不同的编
解码器重新编码两个步骤。这种硬转码看似很简单,只需要一个解码器和一个
编码器,但是最终显示结果并不理想,因为视频数据解码后重新编码会降低画质。
硬解码无法利用捷径,所以和采用智能转码算法的方法相比,要求更高的
处理器性能并且产生更大的功耗。如果全部通过软件进行临时处理,需要2GHz频率的处理器。以现在PC上的CPU的运算能力,在运行其他程序的情况下,是无法支持实时的高清视频转码,更不要提机顶盒这样的消费产品。
用一个专用的转码处理器减轻核心处理器的任务,对于机顶盒和
数字录像机这样的设备更有帮助。而高清的转码更具挑战性,因为需要处理的数据远远高于标清格式。事实上,在没有
硬件加速器的情况下,就算是当前比较高端的PC处理器都不能实施解码1080i的
流媒体,即便是非实时的转码过程也会消耗很多
系统资源。
对于改善因为转码带来的图像质量下降的问题,常见的方法都是在转换前通过软件对已编码的视频数据进行分析,并且在重编码时采用这些分析,从而改善画质。具体来说,就是在解码原始视频时,通过DSP内核对动态矢量信息进行分析。源数据的动态矢量信息正确时,就在
编码过程中采用这些信息,当发觉动态矢量信息不合适,就通过编码器再次检测动态矢量,然后
重新分析检测到的信息。
GPU比拼
由于NVIDIA的强势宣传,Badaboom这款软件大家已经比较熟悉了。虽然这款软件并非NVIDIA
自行开发,而仅仅是利用了
CUDA通用
计算平台。但它仅支持NVIDIA GeForce 8以上显卡,NVIDIA也多次以
官方推荐的形式将它加入
通用计算大礼包提供免费下载,俨然一副“御用软件”的架势。
Badaboom并非免费软件,官方售价为29.99美元,试用版本可以免费使用30天,但输出的视频会带有水印Logo。
它的
界面设计精美且简单易用。只需要在左侧选择视频源,右侧选择
输出格式,再在中间设置编码质量,点击最底部的“start”就搞定了。输入格式支持MPEG2或
H.264,输出格式仅有H.264一种,但提供了专门对应
iPhone、
iPod、AppleTV、
Xbox 360、PS3、
PSP等的多种快捷预设。
AMD催化剂8.12 ATI Avivo Video Converter
相比
Badaboom的老面孔,恐怕大家对尚未正式发布的催化剂8.12还感到陌生,其内置的
Avivo视频转码器是
ATI Stream通用计算架构的首款王牌应用。作为反击NVIDIA CUDA的利器,它同样能够利用GPU
运算能力实现视频转码加速,支持
Radeon HD 4000系列显卡。更重要的是,它是完全免费的,直接包含在催化剂8.12
驱动程序中。
相比Badaboom,新Avivo的界面就要简单的多了,甚至比05年首个版本的Avivo还要朴素,基本就是标准的Windows
设置向导界面。
首先需要在催化剂
控制中心中选择“ATI Avivo Video Converter”。令人不解的是,只有“Basic”简化版的控制中心才有这一选项,而“Advanced”完整控制中心界面中却找不到它。
第一步选择输入输出文件。Avivo的输入格式比
Badaboom要丰富得多,包括DVD VOB、H.264、
MPEG-2、DivX、
Windows Media、
MPEG-4等等。
这里选择的文件是最新一集007电影的1080p预告片。可以看到其属性中出现了不少错误,
帧速显示仅有0.77Mbps,时长显示更是奇怪的0:2:7。
点击下一步可以选择输出格式,这里也比Badaboom要丰富,包括
DVD、
WMV、MPEG-2甚至
MPEG-1的
VCD、超级
VCD格式。
向下拉还有iPod和MPEG-4 DivX。
和
Badaboom允许详细设置输出格式不同,Avivo仅允许用一个滑杆来调整输出文件画质和尺寸。实际这里能够改变的只有
视频码率,分辨率、音频等设置都无法更改。
输出为iPod格式时,
码率最高只有770Kbps。
最低为130Kbps。而实际上,当选择MPEG-4格式时,最高码率可达15Mbps。
点击下一步就会弹出一个
进度条窗口开始转码。需要注意的是,这里的
时间估计也不尽准确,经常出现进度条已经走完仍然需要几十秒才能完成的情况。
转码完成后,会出现输出结果摘要页面。点击“Start Over”可以重新开始。
总的来说,Avivo的界面相对
Badaboom显得过于朴素,不过其在输入输出格式上享有更多的灵活性。
性能对比
测试平台:
显卡:
Badaboom测试:Geforce GTX 260+ 896MB
Avivo测试: Radeon HD 4870 1GB
首选需要说明的是,由于两款软件都和厂商显卡对应,没有一个统一的平台能够进行直接比较,甚至两款软件的输出格式都不尽相同,因此结果也不能够简单对比。比如这里的前三项测试都选择输出为iPod格式
码率780Kbps,因为这是Avivo在iPod格式下的最高码率,而对于
Badaboom来说却几乎是最低设置。就算设置基本一致,其输出文件尺寸仍有几百KB的区别。
蓝光转iPod
第一项测试的片源为1080p蓝光预告片,该视频本身即为H.264格式,需要转为480x320分辨率的780Kbps ipod格式。这里,使用
CPU进行编解码的Xilisoft使用了72秒才完成,Badaboom只用了23秒,Avivo更是只用了12秒。
DVD转iPod
这里使用
星战前传3 DVD同样转为iPod格式。CPU
转码需要接近5分半钟,Bababoom用了142秒,Avivo则只用了51秒。
MPEG-2转iPod
第三项使用一段800MB 720p MPEG-2
视频转换为iPod格式。Avivo的速度是CPU转码的4.3倍,
Badaboom则是CPU转码的2.6倍。
蓝光转WMV
最后一项使用1080p H.264预告片转为2.5Mbps的
WMV格式。Badaboom并不支持输出为WMV,而Avivo在这里的表现则相当出众,速度是CPU转码的5.16倍。
NVIDIA Badaboom
ATI的解决方案使用了更多的CPU资源,这或许也是它速度更快的一大原因。因此,如果你希望在视频转码时做其他工作,
Badaboom或许会更加适合。而如果需要让PC一心一意的转码,Avivo肯定更快。
潜在的问题
大家都应该知道,速度并不是
视频编码转码的问题。很遗憾,AMD的Avivo虽然速度奇快,其中会出现编码错误,人物手臂和小腿处出现的灰色方块。而Badaboom的输出视频却没有这种问题。
总结
测试显示,无论来自NVIDIA还是AMD的GPU视频转码方案都相当诱人,相比CPU能够成倍提高转码速度,进行批量工作时可以大幅度节约时间。当然,它们都有需要改进的地方,最大的通病在于都无法精确设置输出视频规格,而只有笼统的输出格式和
码率选择。
两者相对比,并没有一个明显的赢家。Avivo速度更快,支持格式更多。
Badaboom输出质量高,界面精美,但
速度比 Avivo慢,支持格式也过于有限。至于具体要选择哪一家,目前状况下还是要
看你究竟是对速度要求更高,还是对质量需求更严谨来做决定。