微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 视频转码技术及其转码技术的实现详解

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

时间:11-25 来源:互联网 点击:

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 码流的视频数据,我们在进行转码工作的时候可以仅仅只改变视频文件的封装形式,而不改变其中涉及视频数据内容的压缩编码。这样可以大大降级转码工作的复杂度和系统消耗,同时可以保证视频数据的质量不因重新编解码而受到损伤。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top