详谈视频转码技术及其转码技术的实现

时间:2011-08-26

  视频编码广泛用于Internet 视频传输、数字电视、视频会议等场合。不同的应用对视频编解码器、视频数据存放格式、网络传输设备等都有不同的要求。针对特定领域制订的编码标准[1 ] 也不尽相同,如:MPEG22 标准面向数字电视; H. 263 针对电话会议等制订;MPEG24 的超低码率编码更适用于移动多媒体应用等。为了使得异质网络之间、不同的接入设备之间以及不同多媒体数据格式之间能够无缝连接,视频转码技术就显得尤为重要,譬如 :在视频点播系统中,视频服务器加上转码器后,人们可以通过无线请求视频点播服务;在监控系统中,场景数据转码后就可以通过In2ternet 远程监控;在数字电视广播领域,如果想任何一种多媒体终端都可以接收数字广播,则从码率到分辨率都必须由类似机顶盒或视频网关的设备来完成转码。

  在视频会议系统中,需要利用视频转码技术对传统和新兴视频流进行格式转换。视频点播应用通常从采用传统视频编码标准(MPEG-2、H.263)的视频流转换到采用视频编码标准(H.264或VC1)的视频流。使用转码的意义在于可以在不损失任何视频质量的前提下节省高达50%的网络带宽。

  1 引言

  以编码和压缩方式的大类而言,我们需要面对 MoTIon-JPEG 、 MPEG 、 DV 、 H.261H.263 等不同系列的压缩编码方式;每一种编码方式我们又需面对不同的子类或子级,如讨论 DVB ,经常就要涉及 MPEG-2 MP@ML 和 MP@HL ;不同厂商的视频产品,也根据各自情况采用不同的 帧内、帧间编码关系及不同的码流; GOP 长度、 I 、 B 、 P 帧、 50 、 25 Mbps 等名词现在已经成为视频产品技术参数的重要组成部分;每个厂商在视频数据的封装上也有各自的编码方式,不同厂商开发的视频服务器。

  音视频转码曾被视为一种直接的、传统的处理过程,可将编码源视频解码,生成与原始未压缩内容相比并不完美的版本,然后将其重新编码为传输或观看所要求的格式。随着视频压缩算法种类的日益丰富,且越来越多的低成本消费类系统也都开始支持视频功能,工程师肩负着设计出同时具备低成本与良好视频性能的系统的重担,因此必须认真审视上述这种简单模式匹配算法(brute force approach)。尽管这种方法能产生高质量视频效果,但由于视频伪像被当作有效数据包含在编码中,视频质量会随着每个编码/解码循环操作而递减。

  现在交换视频数据的普遍做法是将编码完成的视频数据解压缩为基带信号,根据情况进行再编码,并加以适当的封装,使用相同的接口协议,以流的方式,在不同的视频产品之间进行传输共享。如在不同的视频产品间使用 SDI 连接,不论设备内部使用何种编码方式,均通过内置的 SDI 编解码器将视频数据编解码为标准的 SDI 数据流,进行传输。

  无论设备 A 内部的采用何种压缩编码方式,在向设备 B 传输视频数据时,首先通过其内置的数据解码单元将视频数据解码送至 SDI 编码器,封装转换成 SDI 数据流,再通过 SDI 接口传输给设备 B 的 SDI 接口,设备 B 将其通过 SDI 解码器,送至其本身的数据编码单元,对视频数据重新编码进行处理或存储。

  对处理器要求高:在算法效率不断提高的同时,其复杂性也越来越高,需要更高的处理能力,尤其是在需要实时转换的情况下。即使转码技术所用的芯片能支持BF算法,那么计算强度较低的转码技术也能采用同一芯片来支持更多的通道,并降低整体系统成本。对存储器资源要求高:解码/编码操作通常需要将被解码的数据存储在存储器中,而额外的存储器则会增加系统的材料清单成本。尤其对那些价格敏感型消费类产品而言,这将关系到产品在市场中的成败。移动设备上的视频回放功能就是一个需要减少处理器负载以及节约存储器资源的很好的应用实例。尽管手机本身不进行转码工作,而是在视频点播 (VoD) 服务器或视频网关上进行转码,但移动电视/移动视频电话除了受 VoD 服务器和视频网关本身限制外仍然还受其它五点限制,

  我们换一个角度来看,这种方式本身可以看成是一个编码方式转换,即转码的过程。它将设备 A 中编码处理的视频数据解码,通过 SDI 编解码器转换成 SDI 流,传输给设备 B ,再将其传换成为设备 B 所使用的数据编码方式进行处理和存储。

  2 视频转码技术

  视频转码技术将视频信号从一种格式转换成另一种格式。它具有两个面向不同领域的重要功能。首先是在传统设备和新兴设备之间实现通信。例如,许多现有的视频会议系统是基于旧的视频编码标准H.263而建立,而的视频会议系统采用了H.264基线规范。因此,实时视频转码技术是实现两者之间通信的必不可少因素。网络(特别是互联网)限制了视频传输的带宽。例如,目前大多数电影以MPEG-2格式存储在DVD光盘中。视频点播和IP视频流系统的带宽限制要求在传输之前通过实时视频转码将视频数据转换成带宽效率更高的格式。大致上可以分为两类:

  一、不同编码格式之间的视频数据转码

  不同编码格式之间的数据转码,指通过转码方法改变视频数据的编码格式。通常这种数据转码会改变视频数据的现有码流和分辨率。

  例如我们可以将基于 MPEG-2 格式的视频数据转换为 DV 、 MPEG-4 或其它编码格式,同时根据其转码目的,指定转码产生视频数据的码流和分辨率。我们可以将 MPEG-2 全 I 帧 50Mbps 的视频源数据转换为 25Mbps 码流的 DV 格式数据,用于笔记本移动编辑系统,同时产生一个 300*200 低分辨率的 MPEG-4 文件,使用 REAL 或者微软的 WMV 格式进行封装,通过互联网络传输至主管领导处用于审看。

  二、相同编码格式之间的视频数据转码

  相同编码格式的数据转码,指不改变压缩格式,只通过转码手段改变其码流或头文件信息。根据其使用目的,可分为改变码流和不改变码流两种。

  如我们可以将 MPEG-2 全 I 帧 50Mbps 码流的视频数据转码为 MPEG-2 IBBP 帧 8Mbps 码流的视频数据,直接用于播出服务器用于播出。或者我们将基于 SONY 视频服务器头文件封装的 MPEG-2 全 I 帧 50Mbps 码流的视频文件,改变其头文件和封装形式,使之可以在给予 MATROX 板卡的编辑系统上直接编辑使用。

  3 视频数据转码的实现

  视频数据不同编码之间的相互转化有很多算法可以实现,许多运动图像对此也作了深入的研究,针对不同的编码方式提出了相当多可行的方案。这些方案共同的特点就是充分利用所需相互转换编码之间的共同特征,尽量减少编解码所带来的图像质量损失,同时达到时间和资源消耗的平衡。

  如我们将一个 MPEG-2 的视频数据转换成 MPEG-4 的视频数据,当然可以采用的方法是先将 MPEG-2 的视频解压缩成单 帧的图像序列,再将其重新压缩编码成为 MPEG-4 的视频数据

  但这种转码方式的运算复杂度的使用 SDI 数据流作为中介的运算复杂度并没有什么区别。我们可以通过一些方法提高转码的效率,降低运算复杂度,比如 MPEG-2 和 MPEG-4 在其编码算法上有很多相通的地方,在 DCT 变换, MC 运动补偿, MV 运动补偿等方面有许多可以公用的地方,我们并不需要将其完全解码成独立的图像序列,可利用不同编码方式间的相关性进行转码工作

  下面来看一下这些转码工作是如何实现的。

  一、传统面向流方式的视频转码

  由于视频数据自身的特点,数据量的庞大和线性的存储格式,长期以来传统的视频编码转换都是面向数据流进行操作。其工作原理如一个制式转换器一样,输入端输入连续的 NTSC 制信号,同时在输出端输出实时的 PAL 制信号。

  这种方式的优点是可以以实时或者接近实时的方式输出转码结果,转码算法固化在板卡芯片上,转码工作基本上是由硬件完成,稳定性好。但其缺点也是显而易见的,转码单元针对特定的源编码方式和目标编码方式,用户基本无法对码流的大小和附加信息进行控制,灵活性较差。而为了满足实时处理的要求,有时必须需要牺牲一些图像的质量。另外的缺点就是这种基于流方式的视频转码,输入和输出基本同步,不能以快于实时的速度进行编码转换。

  二、使用计算机及其相关设备面向文件方式进行视频转码

  使用计算机设备改变单幅图像的编码方式已经是一个非常成熟的技术,但受到计算机运算能力和存储能力的限制,很长一段时间内,对于符合广播级要求的视频数据的编码转换处理一直没有什么好的解决方案。但随着计算机设备运算能力的增强和存储容量的日益扩大、其数据接口已经可以满足视频数据处理的需求,使用计算机及其相关设备处理视频数据已经成为现在的主流,同时也给视频转码提供了更好性价比的平台。

  我们来看一看如何使用计算机系统进行转码工作。

  这种利用计算机设备进行转码的工作方式具有非常大的灵活性,可以对以文件方式或以流方式存在的视频数据进行处理。其本质均是在计算机设备的存储器内开设足够大数据的缓存地带,将所需处理的视频数据文件或流分成许多大小适合的片段,放入其中。由软件提供转码算法,并控制计算机系统进行转码工作。图 -7 中所示的数据接口的概念也非常的灵活,它可以使计算机设备的外部接口。

  计算机设备先将需转换编码方式的视频数据文件放入外部存储或本地存储设备中。然后将该视频文件拆分成适合计算机设备处理的数据片段,放入高速缓存中,由软件提供转码算法,利用计算机设备的处理能力对数据片段进行编码转换。转换完成后将数据片段送入指定区域存储,同时高速缓存区获取新的数据片段。循环这种方式直到所有的拆分数据片段均得到了转码处理,合并转码完成的视频数据文件片段,输出我们所需要得到的视频数据。

  这种拆分数据的方式同样也适合于以流方式存在的视频数据,比如我们可以使用数据接口直接与数字视频数据流连接,不经过任何的编解码将其存储到计算机转码设备的指定缓存区域,变线性的数据流存在方式为非线性的数据存储方式,然后可以使用图— 8 所示的数据拆分方式进行转码处理,经合并后,可以选择文件方式或依然保持流方式的数据输出。

  采用这种方式的转码工作,具有很强的灵活性,数字信号接口并不需要识别接收到的数据流为何种格式编码、封装如何。只需将数据如实记录到缓存区,由转码软件决定采用何种转码手段,针对何种数据流的编码格式和封装方法进行编码转换工作。如我们在接口硬件标准相同的情况下,可以对 DV 流、 TS 流、 FTP 文件流等多种方式的数据流输入进行编码转换,并不需要更换硬件接口和编解码设备,只需更改转码软件的转码处理手段及控制手段即可

  我们看一下转码软件究竟是如何进行工作的。

  每个模块各自负责软件工作的一个或几个方面:数据接口模块负责处理数据的输入和输出,硬件接口模块负责与计算机硬件驱动程序通信,存储管理模块负责内村等存储空间的分配,转码算法模块提供转码处理工作的算法手段,数据处理模块进行转码的具体数据处理,控制管理模块进行整个转码工作的控制和信息处理,用户界面模块提供用户与转码软件的交互,提供用户对转码的编码方式、码流及其它的一些软件提供的选项进行控制。

  使用计算机设备配合转码软件,进行视频编码转换工作,具有以下一些优点:

  硬件设施相对简单

  使用计算机设备及软件进行转码工作,无需使用专用的编解码芯片或板卡。对数据的处理完全由软件来控制完成。

  转码范围广、灵活性好

  使用软件转码,可以由用户根据需求对转码设置进行控制。包括目标码流的的大小、级别、压缩方式、封装方式等方面均可以由用户来指定,根据不同的需求直接使用相应的转码算法,转码算法可以作为插件存在于软件中,便于随时更新或升级,而无需对整个系统进行改动。

  三、转码的复杂度和资源消耗随需求不同发生变化。运用软件转码系统可以对不同的转码要求分别对待。有时候我们仅仅是想改变视频文件的封装方式,而不改变其压缩编码的方式,这种方式就非常适合。例如我们有这样的需求,需将 SONY 的 MAV 系列服务器中的 MPEG-2 I 帧 50M 码流 编码 的视频文件转码为 Ma trox DigiSuite DTV 板卡可支持的视频文件形式,用于节目制作网络编辑。

  4 转码系统在实际工程中的应用

  在电视技术工程中,已经有不少的应用转码系统的实际例子。我们下面就通过两个工程实例来进一步的分析基于计算机设备的转码系统的工作原理和应用前景。

  一、转码系统在移动非线性编辑系统远程传输中的应用

  随着笔记本电脑性能的日益增强,商家已经敏锐的看到使用基于笔记本电脑的移动非线性编辑系统在远程编辑传输上的应用前景。基于软件的编辑手段使编辑系统的价格大大的降低,设备的便携性使现场编辑成为可能。但这些并不是移动非编优势的全部,还有非常重要的一个吸引用户的特点:使用移动非线性编辑系统,配合相应的网络接入设备,就可以利用现有的公用通讯网络进行视频数据的传输。使利用廉价的公共互联网络、电信网络或者移动通讯网络,替代专用昂贵的、点对点的通讯线路进行视频数据传输成为可能。

  但使用公用网络传输视频素材,不可避免的要遇到公共网络带宽的瓶颈问题,比如给予以太局域网的宽带互联网络接入,其传输速率一般不会超过 4Mbps ,而根据路由的不同及干线带宽的限制,实际传输的速率会更低。对于 50M 码流的 MPEG2 全 I 帧编码或 25M 码流的 DV 编码而言,公用网络的数据传输率是难以忍受的。我们以 DV 25M 码流的编码方式为例,在 Windows 操作系统下,一分钟的 DV 文件约为 220MB 左右,在互联网络上以 200KBps 的速度传输,其需要 4100 秒左右,即 68 分钟左右。即视频数据时长和传输所需时长之比是 1 : 68 。

  我们可以根据具体需要,将节目视频数据通过软件转码系统转换为指定格式,指定码流编码方式,以文件分割的方式分成若干个大小合适的数据包,通过公共互联网络以 FTP 的方式将这些数据包发送给异地的接收端,并提供数据校验手段。接收端在收到各个数据包后,将这些数据包和并编码为接收端指定的数据编码方式,在这个过程中如遇到数据包丢失,则接收端要求传输方重新发送该数据包,而不需重新将视频数据从头传输。

  首先使用移动非线性编辑系统本机上的软件转码系统将源视频数据( DV )转码为用户指定编码方式和码流的视频数据文件。编码方式和码流的指定根据用户的具体需要,如对注重内容性的突发新闻和一些不需要进行再次复杂编辑的视频数据,用户可以选择适当的牺牲视频数据图像质量来换取更高的压缩比的文件用于在公共互联网络上传输,比如将每分钟 220MB 左右的 DV 文件转码为每分钟 60MB 的高压缩比的 MPEG-4 文件。在网络状况不变的情况下,其传输时间可以减少为直接传输 DV 文件所需花费时间的四分之一,代价是牺牲图像质量,但其图像质量的损失肉眼几乎不能区别。随后将 MPEG-4 文件拆分为若干个数据包。

  采用这种传输方式有以下特点:用户可以控制所需传输文件的大小,根据自身需要及网络状况进行灵活调整;用户可以对视频数据图像质量进行控制,可以在传输数据的同时改变图像的分辨率及编码方式;将视频数据文件拆分成若干的数据包进行传输,可以充分的利用公用互联通讯网络的资源,同时具有断点续传的功能;用户在拆分和合并数据包时可以加入自定义的加密解密方式,可以使数据在互联网上的传输更加安全;拆分文件、编码传输、合并文件等工作可以同时进行。

  值得一提的是,图像质量损失的大小是在用户指定传输的编码方式和码流的大小时确定的。在传输至目的地时将收到的视频数据转码为高码流的编码方式时,只会在视频数据中加入冗余信息,而不能改变图像质量。

  转码系统在这个工程中主要用于改变视频数据的编码方式及码流大小,以适合使用低速网络进行传输,并且在传输过程中通过控制编码方式和码流的大小,对传输的图像质量进行控制。

  二、转码系统在集中收录系统中的应用

  我们在基于 Ma trox DigiSuite DTV 板卡的节目制作网络中,设计一个集中上载系统,目的是改变传统使用编辑板卡本身进行上载工作的方式,利用视频服务器的多通道,高稳定性和编码的灵活性进行视频数据的集中上载。通过转码系统将服务器产生的视频文件格式转换为编辑系统可以使用的视频数据格式,同时将卫星收录、已经存在的视音频文件及其它途径获取的视频源通过转码系统引入编辑网络中。从而提高视频数据上载的效率及灵活性,减少编辑站点有于上载工作所花费的非编辑占机时间,并且将不同压缩编码格式的视频数据方便的引入编辑系统中来。

  该方案的工作原理是利用带存储单元的多通道视频服务器,作为集中上载的个环节,视频输入通道分别与录像机、摄像机、切换台等传统前期节目相连。录制控制工作站通过 422 控制矩阵控制视频服务器的输入通道进行节目素材上载,以视频服务器所提供的视频文件格式存储在服务器本机存储单元内。

  这种工作方式建立后,具有极强的灵活性。传统使用 SDI 、模拟复合分量接口的设备可以使用视频服务器连接上载,而对提供千兆以太接口的设备,如硬盘录像机、 SONY 的带标准以太接口的录像机设备及基于文件系统的蓝光盘摄录设备、 P2 卡设备等,都可以通过标准的千兆以太接口和集中上载系统中的千兆交换机连接,通过 422 控制或以太网络和控制环节连接。可以方便的利用 FTP 方式进行高速文件上载的工作,并且在加入这些设备时,对集中上载的系统配置和控制操作无需进行大的调整或更改。

  转码系统是由转码服务器、转码调度服务器、用户控制界面和相应的以太网络及 Fiber Channel 网络联接交换设备组成。其中具体负责转码工作的转码服务器是一台或几台带有千兆以太及 FC 接口的高性能计算机设备。视频数据通过千兆以太接口进入转码服务器,经过转码处理后通过 FC 端口输出至节目制作网络的硬盘存储阵列或者其它存储机构。用户通过用户控制界面对转码调度服务器进行配置调整,指定转码的编码方式及码流。转码调度服务器通过以太连接控制转码服务器进行转码工作。转码服务器可以在视频数据从千兆以太接口输入到从 Fiber Channel 接口输出的数据迁移过程中,改变视频数据的编码方式或文件封装的格式,将视频数据文件由视频服务器所支持的文件格式转换为编辑环境所识别和可使用的视频文件格式。

  在这种工作方式下,转码系统可以尽可能的减少对视频数据本身的编码方式和码流大小进行改变。比如对服务器中的 MPEG-2 文件,可以改变其封装方式和头文件直接用于编辑工作站使用。同样,所有编辑站点可以处理使用的编码方式,如 DTV 板卡支持处理 MPEG-2 、 DV25 和 DV50 的编码方式,基于这些编码方式的视频数据,均可以高效、方便的引入编辑系统中,而不需要对视频数据的内容数据进行重复的编解码工作,从而避免了由于传输环节造成的图像质量损失。

  由于纯粹的转码运算工作在这项任务中已经不是转码速度的瓶颈,转码时间的大小取决于数据接口的速度,如理论上可提供千兆左右传输速度的千兆以太和 FC 接口,在只改变文件包装方式的情况下,实际上可以将 MPEG-2 全 I 帧 50M 码流的文件以 1/5~1/10 于文件时长的时间进行收录引入工作,从而大大减少了由于素材上载而带来的时间消耗。

  总结

  从运作的角度来看,视频转码通常在一个系统局端的视频基础设施中采用。常见的系统实现要求主处理器处理网络数据流同时由多个DSP来处理转码任务中的视频编码和解码。通常,一个单独的视频多端口控制单元(MCU)有足够的能力来同时处理多个视频转码通道。

  上面两个工程实例代表了转码系统在两个侧重方向上的应用,转码系统在移动非线性编辑传输视频数据时,通过改变码流减少了码流的大小,从而提高了传输的速度,并通过文件拆分的方式,将大块整体的数据转变为小块分散的数据,从而降低了由通道的不稳定带来的传输风险。而在集中收录系统应用转码系统时,利用高速稳定的传输通道,使用改变文件或流封装的方式来提高视频数据的通用性。

  通过对这两个具体工程中的应用分析,可以看到转码系统在视频领域内的应用前景是非常广阔的。以前必须使用昂贵的硬件设备才能进行的视频数据编解码、码流转换等工作,现在通过日益强大的计算机技术,可以利用转码软件来完成。同时转码技术在视频数据的传输、存储和通用性增强方面也可以提供很好的解决方案。



  
上一篇:浅谈S3c2410软件调试方法(三)
下一篇:如何选择多媒体编解码芯片

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料