IPTV中的视频转码技术
发布时间: 2022-06-09 11:42:51
1. IPTV系统中的现频转码需求
在IPTV系统中,不同节目内容提供者可能釆用各种不同的信源编码方式和文件格式提供节目信息;即便是釆用相同的编码方式和文件格式,也可能由于编码参数的不同而导致需要在节目录入或播出时进行视频编码格式的转换。以编码和压缩方式的大类而言,需要面对Motion-JPEG、MPEG、H.264等不同系列的压缩编码方式;每一种编码方式又需面对不同的子类或子级,如MPEG-2MP@ML和MP@HL;不同内容提供商的视频产品,也根据各自情况采用不同的帧内、帧间编码关系及不同的码流;GOP长度,I、B、P帧等现在已经成为视频产品技术参数的重要组成部分;不同内容提供商在视频数据的封装上也有各自的编码方式,不同的视频服务器,虽然可以支持以相同GOP长度、相同码流的编码方式产生MPEG视频文件,但由于在文件封装上的不同,二者产生的视频文件是无法相互直接使用的,这种情况在数字视频领域相当普遍。
在IPTV系统中,为了解决上述问题必然要引入视频转码技术。视频转码技术就是通过某种手段改变现有视频数据的编码方式,视频转码技术使用的目的不同,其实现的手段也各不相同。大致上可以分为两类:
(1) 不同编码格式之间的视频数据转码
不同编码格式之间的数据转码,指通过转码方法改变视频数据的编码格式。通常这种数据转码会改变视频数据的现有码流和分辨率。例如可以将基于MPEG-2格式的视频数据转换为MPEG-4或其他编码格式,同时根据其转码目的,指定转码产生视频数据的码流和分辨率。例如可以将MPEG-2全I帧50Mbit/s的视频源数据转换为25Mbit/s码流的DV格式数据,用于移动编辑系统;同时产生一个320X240低分辨率的MPEG-4文件,使用某种流格式进行封装,通过互联网络传输至远端。
这种转码方式设计的算法较为复杂,其实质上是一个重新编码的过程。涉及的算法复杂度和系统开销,是由转码所需图像质量要求及转码前后两种编码方式的相关度所决定的。
(2) 相同编码格式之间的视频数据转码
相同编码格式的数据转码,指不改变压缩格式,只通过转码手段改变其码流或头文件信息。根据其使用目的,可分为改变码流和不改变码流两种。如可以将MPEG-2全I帧50Mbit/s码流的视频数据转码为MPEG-2IBBP帧8Mbit/s码流的视频数据,直接用于播岀服务器播出;或者将基于视频服务器头文件封装的MPEG-2全I帧50Mbit/s码流的视频文件,改变其头文件和封装形式,使之可以在编辑系统上直接编辑使用。这种转码方式的复杂度要小于不同编码格式转码的复杂度,而且对视频工程而言,更加具有可操作性。
2、视频数据转码的实现
视频数据不同编码之间的相互转化有很多算法可以实现,针对不同的编码方式提岀了相当多可行的方案。这些方案的共同特点就是充分利用所需相互转换编码之间的共同特征,尽量减少编解码所带来的图像质量损失,同时达到时间和资源消耗的平衡。
如将一个MPEG-2的视频数据转换成MPEG-4的视频数据,可以采用的方法是先将MPEG-2的视频解压缩成单帧的图像序列,再将其重新压缩编码成为MPEG-4的视频数据。但这种转码方式的运算复杂度和使用串行数据流作为中介的运算复杂度并没有什么区别。可以通过一些方法提高转码的效率,降低运算复杂度,比如MPEG2和MPEG-4在其编码算法上有很多相通的地方,在DCT变换、运动矢量、运动补偿等方面有许多可以公用的地方,并不需要将其完全解码成独立的图像序列,可利用不同编码方式间的相关性进行转码工作。
MPEG-2视频数据中所有的头信息被解码后都直接送到MPEG-4编码器中进行编码,其中少数头信息需要调整,以适应新的编码格式。而DCT系数和运动矢量信息被重用,省去了运动估计和DCT的系统消耗。同时MPEG-4做运动补偿的时候,也可以直接利用MPEG-2解码器解码得出的运动矢量的信息。
可以看出,使用不同的转码算法在不同需求的编码转换时,可以得到不同的时间及系统消耗复杂度。这些不同复杂度算法的是否采用取决于用户对工作任务的要求。比如工作任务需要实时获得转码结果,要求高可靠性,并且对转码前后的数据的编码方式及码流指定不变。那么可以采用高效的转码算法,必要时牺牲一些图像质量,将算法固化在硬件芯片上从而满足任务需求。如果工作任务对转码同步性要求并不高,不要求实时输出,但对图像质量有很高的要求,可以采用一些效率较低但图像质量损失较小的转码算法。将算法固化在硬件芯片中,也可使用通用的计算机系统、存储系统和数据交换系统,用软件算法进行转码工作。
(1) 传统面向流方式的视频转码
由于视频数据数据量庞大和线性存储格式的特点,长期以来传统的视频编码转换都是面向数据流进行操作。其工作原理如一个制式转换器一样,输入端输入连续的NTSC制信号,同时在输出端输出实时的PAL制信号。
这种方式的优点是可以以实时或者接近实时的方式输出转码结果,转码算法固化在板卡芯片上,转码工作基本上是由硬件完成,稳定性好。但其缺点也是显而易见的,转码单元针对特定的源编码方式和目标编码方式,用户基本无法对码流的大小和附加信息进行控制,灵活性较差。而为了满足实时处理的要求,有时必须需要牺牲一些图像的质量。另外的缺点就是这种基于流方式的视频转码,输入和输出基本同步,不能以快于实时的速度进行编码转换。
随着计算机技术的日益进步,非线性存储手段日益完善,可以通过文件的方式存储视频数据。这样就为视频数据提供了新的、更加灵活高效的转码手段。

(2) 使用计算机及其相关设备面向文件方式进行视频转码
使用计算机设备改变单幅图像的编码方式已经是一个非常成熟的技术,但受到计算机运算能力和存储能力的限制。很长一段时间内,对于符合广播级要求的专业视频数据的编码转换处理一直没有好的解决方案。但随着计算机设备运算能力的增强和存储容量的日益扩大、其数据接口已经可以满足视频数据处理的需求,使用计算机及其相关设备处理视频数据已经成为主流,同时也给视频转码提供了更好的平台。可以使用计算机设备利用软件手段,进行灵活高效的转码工作。
利用计算机设备进行转码的工作方式具有非常大的灵活性,可以对以文件方式或以流方式存在的视频数据进行处理。其本质均是在计算机设备的存储器内开设足够大的数据缓存区,将所需处理的视频数据文件或流分成许多大小适合的片段放入其中。由软件提供转码算法,并控制计算机系统进行转码工作。数据接口的概念也非常的灵活,它可以是计算机设备的外部接口,也可以是其本身的内置存储通道接口。
计算机设备先将需转换编码方式的视频数据文件放入外部存储或本地存储设备中。然后将该视频文件拆分成适合计算机设备处理的数据片段放入高速缓存中,由软件提供转码算法,利用计算机设备的处理能力对数据片段进行编码转换。转换完成后将数据片段送入指定区域存储,同时高速缓存区获取新的数据片段。循环这种方式直到所有的拆分数据片段均得到了转码处理,合并转码完成的视频数据文件片段,输出所需要得到的视频数据。
这种拆分数据的方式同样也适合于以流方式存在的视频数据,比如可以使用数据接口直接与数字视频数据流连接,不经过任何的编解码将其存储到计算机转码设备的指定缓存区,变线性的数据流存在方式为非线性的数据存储方式,然后可以使用数据拆分方式进行转码处理,经合并后可以选择文件方式或依然保持流方式的数据输出。
釆用这种方式的转码工作,具有很强的灵活性,数字信号接口并不需要识别接收到的数据流为何种格式编码、封装如何,只需将数据如实记录到缓存区,由转码软件决定采用何种转码手段,针对何种数据流的编码格式和封装方法进行编码转换工作。例如在接口硬件标准相同的情况下,可以对DV流、TS流、FTP文件流等多种方式的数据流输入进行编码转换,并不需要更换硬件接口和编解码设备,只需更改转码软件的转码处理手段及控制手段即可。
不同的转码软件有其各自特点,但不外乎由以下几个功能模块组成:数据接口模块、硬件接口模块、存储管理模块、转码算法模块、数据处理模块、控制管理模块和用户界面模块。每个模块各自负责软件工作的一个或几个方面:数据接口模块负责处理数据的输入和输出,硬件接口模块负责与计算机硬件驱动程序通信,存储管理模块负责内存等存储空间的分配,转码算法模块提供转码处理工作的算法手段,数据处理模块进行转码的具体数据处理,控制管理模块进行整个转码工作的控制和信息处理,用户界面模块提供用户与转码软件的交互,提供用户对转码的编码方式、码流及其他的一些软件提供的选项进行控制。
转码算法模块可以固化到转码软件中,也可以以插件的方式存在。当转码软件处理不同的编码转换任务时,根据需要使用不同的转码算法插件,可以在不改变其他功能模块配置的情况下,灵活地扩展软件功能。
使用计算机设备配合转码软件进行专业视频编码转换工作,具有以下一些优点:
• 硬件设施相对简单:使用计算机设备及软件进行转码工作,无须使用专用的编解码芯片或板卡,对数据的处理完全由软件来控制完成。
• 转码范围广、灵活性好:使用软件转码,可以由用户根据需求对转码设置进行控制。包括目标码流的大致级别、压缩方式、封装方式等方面均可以由用户来指定,根据不同的需求直接使用相应的转码算法,转码算法可以作为插件存在于软件中,便于随时更新或升级,而无须对整个系统进行改动。