一种用于相似视频码流的转码方法及其转码装置
技术领域
本发明涉及一种用于相似视频码流的转码方法,本发明还涉及实现该方法的转码装置。
背景技术
可视电话、可视聊天、网络视频广告等视频文件越来越得到人们的喜欢和追求,使视频技术迅猛发展和进一步细分,出现了大量的视频文件格式;不同的文件格式具有不同的码流。
现有的解码器可有对一些常见的视频码流(以下简称目的码流)进行解码,由于现有的解码器的代码已经固定,随着视频技术的深入发展及网络视频的大量需求,一些与目的码流相似的视频流(以下简称为源码流)经常出现在网络上和人们的娱乐生活中,但由于解码器的代码已经固定,对于这些新出现的有一定改动的相似视频码流无能为力,不能够对相似视频码流进行正确解码,导致解码器应用有限。
现有技术中,对新出现的相似视频码流处理方法主要有以下两种:
第一,采用在PC机上进行先解码源码流,对解码后的数据再编码为目的码流的转换,将转换后的文件再传送到解码器由解码器进行解码。由于源码流格式文件都要经过PC机上的软件进行转换,可以一定程度地弥补解码器的不足,但如没有PC机或找不到相应的软件转换则行不通。
第二,在通用处理器上使用专门软件解码源码流且所有的运算都由软件实现。由于软解码速度慢,特别是在嵌入式设备上很可能无法满足音视频同步要求,同时播出的视频或音频效果不好。
发明内容
本发明的目的在于提供一种用于相似视频码流的转码方法,使现有解码器能够正确解相似码流,而且运算量小,需要的时间少,能满足音视频同步需要,播放效果好。
本发明的另一个目的在于提供实现上述方法的转码装置。
上述目的,可通过以下的技术措施来实现:一种用于相似视频码流的转码方法,包括以下步骤:
步骤1,源码流数据解析:从文件格式中提取出视频数据,按源码流格式进行解析,得到现有解码器需要的参数和转换控制参数;
步骤2,源码流数据转换:根据转换控制信息对源码流数据进行转换,如有转换控制信息指示,则对这些源码流数据按照目的码流要求进行转换;如没有转换控制信息指示,则直接把这些源码流数据部分赋给目的码流;
步骤3,源码流重排:对步骤2中经过转换的数据或直接传送给的数据,按照目的码流的格式要求进行相应的格式编排,得到现有解码器需要的目的码流。
本发明步骤1中源码流格式进行解析的内容包括:
(1)源码流参数与目的码流参数的意义是否一致,如一致,则把得到的参数值记录下来。如高、宽、帧类型、量化参数等常常是一致的;
(2)源码流与目的码流在两者中都有的参数,但表达方法不一样,需要将源码流按目的码流的要求进行转码;
(3)目的码流中具有某个参数,而在源码流中没有相应的参数,则说明忽略这个参数功能,常常这是目的码流的一个高级属性。
(4)源码流中具有某个参数,而在目的码流中没有相应的参数,如当前要解的源码流的这个参数功能有效且严重影响解码后的效果,则应该退出解析过程,说明现有解码器不能对当前源码流解码,终止要进行的解码过程;如这个参数功能有效但只是建议使用,则视解码效果决定是否退出解析过程和要进行的解码;如这个参数功能无效,则说明当前源码流没有使用这个新属性,忽略这个功能。
本发明得到现有解码器需要转换数据控制参数,决定是否进行码流数据转换。
一种实现上述转码方法的转码装置,包括:
源码流数据解析模块,用于从文件格式中提取出视频数据,按源码流格式进行解析,得到现有解码器需要的参数和转换控制参数;
数据转换控制模块,用于控制源码流数据按照目的码流要求进行转换;
源码流数据转换模块,用于完成把相同源码流数据部分直接赋给目的码流和对不同源码流数据部分按照目的码流要求进行转换;
源码流重排模块,用于把转换的数据和直接赋给的数据,按照目的码流的格式要求进行相应的格式编排;
所述源码流数据解析模块解析后获得的参数信息输出到数据转换控制模块,解析后获得的转换控制信息输出到数据转换控制模块,数据转换控制模块的控制信息输出到源码流数据转换模块,转换模块根据控制模块的输出的控制信息将解析模块输出的参数信息转换成目的码流要求的参数信息或直接赋给目的码流;源码流数据转换模块获得的全部数据输出到源码流重排模块,编排成目的码流的格式。
本发明与现有技术相比,具有以下的优点:
1、源码流解析模块所做的工作是解析头部信息;数据转换模块只做很少的转换或没有转换;码流重排模块是把数据进行编排,不产生编码前的图像数据,因此需要的时间少,运算量不大。
2、将转换生成的码流送入到原有解码器中,这样,反变换、反量化、利用运动矢量和帧间差值等运算得到原始数据,上述需要大量运算的部分由现有解码器完成,这样能很好的同步音视频,达到很好的播放效果。
3、极大限度的扩大了现有解码器的使用范围,充分利用了现有解码器;提高了带有解码器设备特别是带有硬件解码器嵌入式设备的利用率,能较好的适应视频技术的改进,很适用于有解码器的设备,使它们能够播放更多种格式文件。
附图说明
图1本发明转码装置结构图;
图2为本发明转码方法的流程框图。
具体实施方式
如图1所示,转码装置,包括:
源码流数据解析模块,用于从文件格式中提取出视频数据,按源码流格式进行解析,得到现有解码器需要的参数和转换控制参数;
数据转换控制模块,用于控制源码流数据按照目的码流要求进行转换;
源码流数据转换模块,用于完成把相同源码流数据部分直接赋给目的码流和对不同源码流数据部分按照目的码流要求进行转换;
源码流重排模块,用于把转换的数据和直接赋给的数据,按照目的码流的格式要求进行相应的格式编排;
所述源码流数据解析模块解析后获得的参数信息输出到数据转换控制模块,解析后获得的转换控制信息输出到数据转换控制模块,数据转换控制模块的控制信息输出到源码流数据转换模块,转换模块根据控制模块的输出的控制信息将解析模块输出的参数信息转换成目的码流要求的参数信息或直接赋给目的码流;源码流数据转换模块获得的全部数据输出到源码流重排模块,编排成目的码流的格式。
如图2所示,转码方法流程,包括:
得到在源码流和目的码流意义一致的参数,如在两者中都相同的时域参考、图像宽高、量化值大小、运动矢量数据、宏块类型等。
得到在源码流和目的码流都有但不同参数,如在源码流中PSC(图像起始码)为17位,而在目的码流为22位,则需要转换其中的含义。
目的码流有的源码流没有的参数,置这个参数不存在。如在目的码流中有PB帧中B图像的时域参考,而在源码流中没有这个参数,置该参数不存在,说明目的码流的这个高级属性没有。
源码流中有而目的码流没有的参数,如源码流中有滤波、不可被参考的P帧参数和源码流的版本号,而在目的码流没有,如滤波参数存在需要视不进行滤波会对解码效果产生多大影响,如不可被参考的P帧参数存在则说明后面的帧不能参考该帧数据。源码流的版本号为0,说明码流转换控制参数无效,版本号为1,说明码流转换控制参数有效。
如码流转换控制参数有效,则要进行转换数据。如某种源码流中出现ESCAPE code(0000011)时,后一位为0,指示7位LEVEL;后一位为1,指示11位LEVEL,接下来一位为LAST,再接下来6位RUN,然后是7(或11)位LEVEL,定义和目的码流不同,需要转换为目的码流的LAST、RUN、LEVEL含义。
码流重排,经过上面的步骤,源码流生成了与目的码流一样的参数数据,源码流数据格式也与目的码流相同,这样的码流数据送入解码器,让解码器做需要大运算量的反离散余弦变换等。