转码技术在视频领域内的应用分析
本文简单介绍了视频转码技术的定义、分类及实现手段,重点分析了如何在视频工程中使用转码技术,包括转码技术的使用方式及其优势所在。分析了在流方式和文件方式下如何使用转码技术。通过对移动非线性编辑系统远程传输视频数据和节目制作网络素材集中上载两个工程实例的分析,探讨了转码系统工作的灵活性和通用性。阐明了作者对在专业视频领域内,配合计算机设备及网络架构,使用转码技术前景的看法。
1 引言
从一个简单的问题开始我们的讨论:对于一个视频工程技术人员而言,工作中所需面对的视音频编码方式有多少种?
以编码和压缩方式的大类而言,我们需要面对 MoTIon-JPEG 、 MPEG 、 DV 、 H.261\H.263 等不同系列的压缩编码方式;每一种编码方式我们又需面对不同的子类或子级,如讨论 DVB ,经常就要涉及 MPEG-2 MP@ML 和 MP@HL ;不同厂商的视频产品,也根据各自情况采用不同的 帧内、帧间编码关系及不同的码流; GOP 长度、 I 、 B 、 P 帧、 50 、 25 Mbps 等名词现在已经成为视频产品技术参数的重要组成部分;每个厂商在视频数据的封装上也有各自的编码方式,不同厂商开发的视频服务器,如 Grass Valley 的 Profile 系列服务器和 SONY 的 MAV 系列的服务器,虽然可以支持以相同 GOP 长度、相同码流的编码方式产生 MPEG-2 视频文件,但由于在文件封装上的不同,二者产生的视频文件是无法相互直接使用的,这种情况在数字视频领域相当普遍,有时甚至在同一厂商所开发的不同系列的视频产品中,数据流或文件也是无法相互识别的。
我们不想在这里探讨哪一种编码压缩方式更好、更优秀,本文想要讨论的是:在采用不同压缩编码方式的视频设备之间如何高质量、高效效率的共享和交换视音频数据。
现在交换视频数据的普遍做法是将编码完成的视频数据解压缩为基带信号,根据情况进行再编码,并加以适当的封装,使用相同的接口协议,以流的方式,在不同的视频产品之间进行传输共享。如在不同的视频产品间使用 SDI 连接,不论设备内部使用何种编码方式,均通过内置的 SDI 编解码器将视频数据编解码为标准的 SDI 数据流,进行传输。
无论设备 A 内部的采用何种压缩编码方式,在向设备 B 传输视频数据时,首先通过其内置的数据解码单元将视频数据解码送至 SDI 编码器,封装转换成 SDI 数据流,再通过 SDI 接口传输给设备 B 的 SDI 接口,设备 B 将其通过 SDI 解码器,送至其本身的数据编码单元,对视频数据重新编码进行处理或存储。
这种数据交换的前提,是不同的设备存在遵从相同协议的接口,如 SDI 接口,并具备相应的编解码硬件设备,使用一种可以共同识别的数据流作为中介进行视音频数据的交换。
我们换一个角度来看,这种方式本身可以看成是一个编码方式转换,即转码的过程。它将设备 A 中编码处理的视频数据解码,通过 SDI 编解码器转换成 SDI 流,传输给设备 B ,再将其传换成为设备 B 所使用的数据编码方式进行处理和存储。
在这种情况下,如果我们可以使用直接的转码手段,将基于设备 A 编码方式的视频数据转换为设备 B 可以识别并使用的数据编码格式,为设备 B 处理或存储,可以减少重复编解码所带来的设备开销和信号质量下降,并且可以利用多种的传输通道,而不局限于指定的接口通道,可以大大的提高工作效率。
这正是本文想要和大家探讨的,如何灵活的利用转码方式,在基于不同编码方式的设备间共享视频数据,提高工作效率,同时讨论在工程方面的可能会遇到的问题及解决方案。
2 视频转码技术
视频转码技术,顾名思义就是在通过某种手段改变现有视频数据的编码方式。视频转码技术使用的目的不同,其实现的手段也各不相同。大致上可以分为两类:
一、不同编码格式之间的视频数据转码
不同编码格式之间的数据转码,指通过转码方法改变视频数据的编码格式。通常这种数据转码会改变视频数据的现有码流和分辨率。
例如我们可以将基于 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 运动补偿等方面有许多可以公用的地方,我们并不需要将其完全解码成独立的图像序列,可利用不同编码方式间的相关性进行转码工作
MPEG-2 视频数据中所有的头信息被解码后都直接送到 MPEG -4 编码器中进行编码,其中少数头信息需要调整,以适应新的编码格式。而 DCT 系数和 MV 信息被重用,省去了运动估计和 DCT 的系统消耗。同时 MPEG -4 做运动补偿的时候,也可以直接利用 MPEG -2 解码器解码得出的运动矢量的信息。
我们可以看出,使用不同的转码算法在不同需求的编码转换时,可以得到不同的时间及系统消耗复杂度。这些不同复杂度算法的是否采用取决于用户对工作任务的要求。比如工作任务需要实时获得转码结果,要求高可靠性,并且对转码前后的数据的编码方式及码流指定不变。那么我们可以采用高效的转码算法,必要时牺牲一些图像质量,将算法固化在硬件芯片板卡上,从而满足任务需求。如果工作任务对转码同步性要求并不高,不要求实时输出,但对图像质量有很高的要求,我们可以采用一些效率较低,但图像质量损失较小的转码算法。可以将算法固定在硬件芯片中,也可以使用通用的计算机运算系统、存储系统和数据交换系统,使用软件算法进行转码工作,这些方式的具体应用方式在本文的后半部分会详细介绍。
下面来看一下这些转码工作是如何实现的。
一、传统面向流方式的视频转码
由于视频数据自身的特点,数据量的庞大和线性的存储格式,长期以来传统的视频编码转换都是面向数据流进行操作。其工作原理如一个制式转换器一样,输入端输入连续的 NTSC 制信号,同时在输出端输出实时的 PAL 制信号。
这种方式的优点是可以以实时或者接近实时的方式输出转码结果,转码算法固化在板卡芯片上,转码工作基本上是由硬件完成,稳定性好。但其缺点也是显而易见的,转码单元针对特定的源编码方式和目标编码方式,用户基本无法对码流的大小和附加信息进行控制,灵活性较差。而为了满足实时处理的要求,有时必须需要牺牲一些图像的质量。另外的缺点就是这种基于流方式的视频转码,输入和输出基本同步,不能以快于实时的速度进行编码转换。
随着计算机技术的日益进步,非线性存储手段日益完善,我们可以通过文件的方式存储视频数据。这样就为视频数据提供了新的,更加灵活高效的转码手段。
二、使用计算机及其相关设备面向文件方式进行视频转码
使用计算机设备改变单幅图像的编码方式已经是一个非常成熟的技术,但受到计算机运算能力和存储能力的限制,很长一段时间内,对于符合广播级要求的专业视频数据的编码转换处理一直没有什么好的解决方案。但随着计算机设备运算能力的增强和存储容量的日益扩大、其数据接口已经可以满足视频数据处理的需求,使用计算机及其相关设备处理视频数据已经成为现在的主流,同时也给视频转码提供了更好性价比的平台。我们可以使用计算机设备,利用软件手段,进行灵活高效的转码工作。
我们来看一看如何使用计算机系统进行转码工作。
这种利用计算机设备进行转码的工作方式具有非常大的灵活性,可以对以文件方式或以流方式存在的视频数据进行处理。其本质均是在计算机设备的存储器内开设足够大数据的缓存地带,将所需处理的视频数据文件或流分成许多大小适合的片段,放入其中。由软件提供转码算法,并控制计算机系统进行转码工作。图 -7 中所示的数据接口的概念也非常的灵活,它可以使计算机设备的外部接口,如千兆以太、 Fiber Channel 通道,也可以是其本身的内置存储通道接口。我们来看一下他们是如何工作的。
计算机设备先将需转换编码方式的视频数据文件放入外部存储或本地存储设备中。然后将该视频文件拆分成适合计算机设备处理的数据片段,放入高速缓存中,由软件提供转码算法,利用计算机设备的处理能力对数据片段进行编码转换。转换完成后将数据片段送入指定区域存储,同时高速缓存区获取新的数据片段。循环这种方式直到所有的拆分数据片段均得到了转码处理,合并转码完成的视频数据文件片段,输出我们所需要得到的视频数据。
这种拆分数据的方式同样也适合于以流方式存在的视频数据,比如我们可以使用数据接口直接与数字视频数据流连接,不经过任何的编解码将其存储到计算机转码设备的指定缓存区域,变线性的数据流存在方式为非线性的数据存储方式,然后可以使用图— 8 所示的数据拆分方式进行转码处理,经合并后,可以选择文件方式或依然保持流方式的数据输出。
采用这种方式的转码工作,具有很强的灵活性,数字信号接口并不需要识别接收到的数据流为何种格式编码、封装如何。只需将数据如实记录到缓存区,由转码软件决定采用何种转码手段,针对何种数据流的编码格式和封装方法进行编码转换工作。如我们在接口硬件标准相同的情况下,可以对 DV 流、 TS 流、 FTP 文件流等多种方式的数据流输入进行编码转换,并不需要更换硬件接口和编解码设备,只需更改转码软件的转码处理手段及控制手段即可
我们看一下转码软件究竟是如何进行工作的。
不同的转码软件有其各自特点,但不外乎有以下几个功能模块组成:数据接口模块、硬件接口模块、存储管理模块、转码算法模块、数据处理模块、控制管理模块和用户界面模块。
每个模块各自负责软件工作的一个或几个方面:数据接口模块负责处理数据的输入和输出,硬件接口模块负责与计算机硬件驱动程序通信,存储管理模块负责内村等存储空间的分配,转码算法模块提供转码处理工作的算法手段,数据处理模块进行转码的具体数据处理,控制管理模块进行整个转码工作的控制和信息处理,用户界面模块提供用户与转码软件的交互,提供用户对转码的编码方式、码流及其它的一些软件提供的选项进行控制。
转码算法模块可以固化到转码软件中,也可以以插件的方式存在。当转码软件处理不同的编码转换任务时,根据需要使用不同的转码算法插件,可以在不改变其它功能模块配置的情况下,灵活的扩展软件功能。
使用计算机设备配合转码软件,进行专业视频编码转换工作,具有以下一些优点:
• 硬件设施相对简单
使用计算机设备及软件进行转码工作,无需使用专用的编解码芯片或板卡。对数据的处理完全由软件来控制完成。
• 转码范围广、灵活性好
使用软件转码,可以由用户根据需求对转码设置进行控制。包括目标码流的的大小、级别、压缩方式、封装方式等方面均可以由用户来指定,根据不同的需求直接使用相应的转码算法,转码算法可以作为插件存在于软件中,便于随时更新或升级,而无需对整个系统进行改动。
三、转码的复杂度和资源消耗随需求不同发生变化。运用软件转码系统可以对不同的转码要求分别对待。有时候我们仅仅是想改变视频文件的封装方式,而不改变其压缩编码的方式,这种方式就非常适合。例如我们有这样的需求,需将 SONY 的 MAV 系列服务器中的 MPEG-2 I 帧 50M 码流 编码 的视频文件转码为 Ma trox DigiSuite DTV 板卡可支持的视频文件形式,用于节目制作网络编辑。由于 DTV 板卡支持 MPEG-2 I 帧 50M 码流的视频数据,我们在进行转码工作的时候可以仅仅只改变视频文件的封装形式,而不改变其中涉及视频数据内容的压缩编码。这样可以大大降级转码工作的复杂度和系统消耗,同时可以保证视频数据的质量不因重新编解码而受到损伤。
4 转码系统在实际工程中的应用
在电视技术工程中,已经有不少的应用转码系统的实际例子。我们下面就通过两个工程实例来进一步的分析基于计算机设备的转码系统的工作原理和应用前景。
一、转码系统在移动非线性编辑系统远程传输中的应用
随着笔记本电脑性能的日益增强,商家已经敏锐的看到使用基于笔记本电脑的移动非线性编辑系统在远程编辑传输上的应用前景。基于软件的编辑手段使编辑系统的价格大大的降低,设备的便携性使现场编辑成为可能。但这些并不是移动非编优势的全部,还有非常重要的一个吸引用户的特点:使用移动非线性编辑系统,配合相应的网络接入设备,就可以利用现有的公用通讯网络进行视频数据的传输。使利用廉价的公共互联网络、电信网络或者移动通讯网络,替代专用昂贵的、点对点的通讯线路进行视频数据传输成为可能。
移动编辑系统可以使用遍布城镇的廉价的宽带、 ADSL 线路、 GPRS 无线通讯所构成的公用互联通讯网络取代微波、光纤通道、卫星等专用昂贵的数据链接通路进行视频数据的传输。
但使用公用网络传输视频素材,不可避免的要遇到公共网络带宽的瓶颈问题,比如给予以太局域网的宽带互联网络接入,其最高传输速率一般不会超过 4Mbps ,而根据路由的不同及干线带宽的限制,实际传输的速率会更低。对于 50M 码流的 MPEG2 全 I 帧编码或 25M 码流的 DV 编码而言,公用网络的数据传输率是难以忍受的。我们以 DV 25M 码流的编码方式为例,在 Windows 操作系统下,一分钟的 DV 文件约为 220MB 左右,在互联网络上以 200KBps 的速度传输,其需要 4100 秒左右,即 68 分钟左右。即视频数据时长和传输所需时长之比是 1 : 68 。这种效率的传输方式虽然在理论上是可行的,但在实际应用中,由于不同网络状况,速度各有差别,而且在传输中任何的一次中断都有可能使整个视频文件的不可使用,从而导致必须从头重新传输。所以这种工作方式在实际工作中是不具有可操作性的。
那么如何使用公用互联通讯网络,高效,便捷的将节目视频数据传回编辑地点或者直接用于播出呢?可以利用基于软件转码的视频数据传输系统解决这个问题。
我们可以根据具体需要,将节目视频数据通过软件转码系统转换为指定格式,指定码流编码方式,以文件分割的方式分成若干个大小合适的数据包,通过公共互联网络以 FTP 的方式将这些数据包发送给异地的接收端,并提供数据校验手段。接收端在收到各个数据包后,将这些数据包和并编码为接收端指定的数据编码方式,在这个过程中如遇到数据包丢失,则接收端要求传输方重新发送该数据包,而不需重新将视频数据从头传输。
如在实际工作中遇到这样一个问题:工作任务要求将异地拍摄的突发新闻素材及时传至远方的电视台。两地之间无专用视频信号传输线路或专用线路租金过于昂贵,公用互联网络接入却很方便。拍摄的原素材为 DV 的压缩编码格式,电视台的编辑和播出系统使用的是 MPEG-2 的压缩编码格式。为了达到快速、高效、廉价的将节目素材传回电视台,可以采用以下的工作方式。
首先使用移动非线性编辑系统本机上的软件转码系统将源视频数据( DV )转码为用户指定编码方式和码流的视频数据文件。编码方式和码流的指定根据用户的具体需要,如对注重内容性的突发新闻和一些不需要进行再次复杂编辑的视频数据,用户可以选择适当的牺牲视频数据图像质量来换取更高的压缩比的文件用于在公共互联网络上传输,比如将每分钟 220MB 左右的 DV 文件转码为每分钟 60MB 的高压缩比的 MPEG-4 文件。在网络状况不变的情况下,其传输时间可以减少为直接传输 DV 文件所需花费时间的四分之一,代价是牺牲图像质量,但其图像质量的损失肉眼几乎不能区别。随后将 MPEG-4 文件拆分为若干个数据包。通过 FTP 方式将这些数据包发送到远端的电视台接收端。接收端将这些文件合并后得到的 MPEG-4 文件,根据用户指定的码流和编码方式,通过转码系统将该文件转码为指定封装格式的 MPEG-2 文件,直接用于编辑或播出。
采用这种传输方式有以下特点:用户可以控制所需传输文件的大小,根据自身需要及网络状况进行灵活调整;用户可以对视频数据图像质量进行控制,可以在传输数据的同时改变图像的分辨率及编码方式;将视频数据文件拆分成若干的数据包进行传输,可以充分的利用公用互联通讯网络的资源,同时具有断点续传的功能;用户在拆分和合并数据包时可以加入自定义的加密解密方式,可以使数据在互联网上的传输更加安全;拆分文件、编码传输、合并文件等工作可以同时进行,如在编码的过程中可以将已经编码完成的部分拆分成数据包,直接发送到接收端,接收端可以边接收边合并,并将已经合并的数据进行编码工作,可以大大的提高工作效率。
值得一提的是,图像质量损失的大小是在用户指定传输的编码方式和码流的大小时确定的。在传输至目的地时将收到的视频数据转码为高码流的编码方式时,只会在视频数据中加入冗余信息,而不能改变图像质量。因此用户可以根据自己的需求,通过调整传输码流的大小控制图像质量和传输时间的平衡关系。
转码系统在这个工程中主要用于改变视频数据的编码方式及码流大小,以适合使用低速网络进行传输,并且在传输过程中通过控制编码方式和码流的大小,对传输的图像质量进行控制。在下面的一个工程例子中,我们通过对如何利用转码系统进行高效的视频素材数据的收录工作的分析,从而探讨转码系统应用的另外一种侧重,即对视频数据编码的封装方式和冗余信息的转码,而较少的触及视频数据内容本身的编码方式和码流大小,提高不同数字视频设备产生的视频数据的通用性,并且减少传输中的编解码环节对视频数据质量的影响。
二、转码系统在集中收录系统中的应用
我们在基于 Ma trox DigiSuite DTV 板卡的节目制作网络中,设计一个集中上载系统,目的是改变传统使用编辑板卡本身进行上载工作的方式,利用视频服务器的多通道,高稳定性和编码的灵活性进行视频数据的集中上载。通过转码系统将服务器产生的视频文件格式转换为编辑系统可以使用的视频数据格式,同时将卫星收录、已经存在的视音频文件及其它途径获取的视频源通过转码系统引入编辑网络中。从而提高视频数据上载的效率及灵活性,减少编辑站点有于上载工作所花费的非编辑占机时间,并且将不同压缩编码格式的视频数据方便的引入编辑系统中来。
该方案的工作原理是利用带存储单元的多通道视频服务器,作为集中上载的第一个环节,视频输入通道分别与录像机、摄像机、切换台等传统前期节目相连。录制控制工作站通过 422 控制矩阵控制视频服务器的输入通道进行节目素材上载,以视频服务器所提供的视频文件格式存储在服务器本机存储单元内。视频服务器利用千兆异步接口通过网关与千兆以太交换机连接,利用标准的 FTP 协议将服务器内的视频文件,通过转码系统传输至节目制作网络的硬盘存储阵列中,提供给编辑环境进行编辑制作工作。
这种工作方式建立后,具有极强的灵活性。传统使用 SDI 、模拟复合分量接口的设备可以使用视频服务器连接上载,而对提供千兆以太接口的设备,如硬盘录像机、 SONY 的带标准以太接口的录像机设备及基于文件系统的蓝光盘摄录设备、 P2 卡设备等,都可以通过标准的千兆以太接口和集中上载系统中的千兆交换机连接,通过 422 控制或以太网络和控制环节连接。可以方便的利用 FTP 方式进行高速文件上载的工作,并且在加入这些设备时,对集中上载的系统配置和控制操作无需进行大的调整或更改。转码系统在集中收录系统中处于核心地位。
转码系统是由转码服务器、转码调度服务器、用户控制界面和相应的以太网络及 Fiber Channel 网络联接交换设备组成。其中具体负责转码工作的转码服务器是一台或几台带有千兆以太及 FC 接口的高性能计算机设备。视频数据通过千兆以太接口进入转码服务器,经过转码处理后通过 FC 端口输出至节目制作网络的硬盘存储阵列或者其它存储机构。用户通过用户控制界面对转码调度服务器进行配置调整,指定转码的编码方式及码流。转码调度服务器通过以太连接控制转码服务器进行转码工作。转码服务器可以在视频数据从千兆以太接口输入到从 Fiber Channel 接口输出的数据迁移过程中,改变视频数据的编码方式或文件封装的格式,将视频数据文件由视频服务器所支持的文件格式转换为编辑环境所识别和可使用的视频文件格式。同样的,对于可以提供千兆异步接口的视频设备均可通过网关和千兆以太网络连接,在数据迁移中进行视频数据的转码工作
- 高速DAC AD9712B/AD9713B的原理和应用(11-30)
- OLED技术会铺平通向微显示器之路吗?(05-18)
- 视频解码器SAA7111在图像采集中的应用(06-21)
- LED全彩屏数字视频信号处理电路的设计(04-19)
- 锁相环同步检波技术及在视频检波中的应用(05-20)
- 基于CPLD的VGA视频显示系统的设计(05-16)