视频解码方法及系统的制作方法

文档序号:7824226
视频解码方法及系统的制作方法
【专利摘要】本发明实施例提供的一种视频解码方法及系统,可以将解码过程中的运动补偿处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,CPU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了GPU进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了CPU的运行负担,并提高了解码效率。
【专利说明】视频解码方法及系统

【技术领域】
[0001]本发明涉及视频解码【技术领域】,特别是涉及视频解码方法及系统。

【背景技术】
[0002]随着技术的不断进步,观看高清视频已经成为互联网用户日常生活必不可缺的一部分,新的视频编解码标准如H265、VP9等得到了越来越多的重视。
[0003]然而,这些编码标准定案较晚,目前市面上主流的移动设备没有专门的硬件解码器支持,只有运行在中央处理器CPU上的软件解码方案。受限于功耗及尺寸限制,移动设备上的CPU处理能力仍然有限,利用软件进行高清解码处理,将极大的消耗CPU的计算能力,增加了 CPU的运行负担,导致移动设备运行缓慢。


【发明内容】

[0004]本发明实施例的目的在于提供一种视频解码方法及系统,以降低CPU的运行负担。
[0005]为达到上述目的,本发明实施例公开了一种视频解码方法,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述方法包括:
[0006]对包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧:
[0007]对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0008]多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同:
[0009]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;根据第η帧残差系数进行反余弦变换,获得第η帧残差;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;
[0010]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0011]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0012]可选的,还包括:
[0013]执行如下处理以获得第N帧解码图像:
[0014]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0015]根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0016]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0017]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0018]一种视频解码方法,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述方法包括:
[0019]对于包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧:
[0020]对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0021]多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同:
[0022]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;在11>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0023]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0024]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0025]可选的,还包括:
[0026]执行如下处理以获得第N帧解码图像:
[0027]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0028]控制所述GPU根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0029]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0030]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0031 ] 一种视频解码方法,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述方法包括:
[0032]对于包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧:
[0033]对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0034]多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同:
[0035]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序,在确定首先获得所述第η+1帧残差系数时,根据第η帧残差系数进行反余弦变换,获得第η帧残差;在确定首先获得所述第η帧运动补偿结果时,控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;其中,在确定首先获得所述第η+1帧残差系数时,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;在确定首先获得所述第η帧运动补偿结果时,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0036]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0037]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0038]一种视频解码系统,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,所述系统包括:第一单元及第二单元,
[0039]所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0040]所述第二单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第二单元执行如下处理的次数的值相同:
[0041]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;根据第η帧残差系数进行反余弦变换,获得第η帧残差;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;
[0042]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0043]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0044]可选的,还包括:第五单元,用于执行如下处理以获得第N帧解码图像:
[0045]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0046]根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0047]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0048]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0049]一种视频解码系统,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,所述系统包括:第一单元及第三单元,
[0050]所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0051]所述第三单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第三单元执行如下处理的次数的值相同:
[0052]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;在11>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0053]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0054]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0055]可选的,还包括:第六单元,用于执行如下处理以获得第N帧解码图像:
[0056]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0057]控制所述GPU根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0058]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0059]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0060]一种视频解码系统,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,所述系统包括:第一单元及第四单元,
[0061]所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0062]所述第四单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第四单元执行如下处理的次数的值相同:
[0063]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序,在确定首先获得所述第η+1帧残差系数时,根据第η帧残差系数进行反余弦变换,获得第η帧残差;在确定首先获得所述第η帧运动补偿结果时,控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;其中,在确定首先获得所述第η+1帧残差系数时,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;在确定首先获得所述第η帧运动补偿结果时,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0064]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0065]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0066]本发明实施例提供的一种视频解码方法及系统,可以将解码过程中的运动补偿处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,CPU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了 GPU进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。

【专利附图】

【附图说明】
[0067]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0068]图1为对本发明实施例1提供的视频解码方法进行举例说明的示意图;
[0069]图2为对本发明实施例2提供的视频解码方法进行举例说明的示意图;
[0070]图3为对本发明实施例4提供的视频解码方法进行举例说明的示意图。

【具体实施方式】
[0071]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0072]实施例1:
[0073]本发明实施例1提供了一种视频解码方法,应用于中央处理器CPU中,该CPU与图形处理器GPU通信连接,该方法可以包括:
[0074]对包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧:
[0075]对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0076]多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同:
[0077]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;根据第η帧残差系数进行反余弦变换,获得第η帧残差;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;
[0078]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0079]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0080]本发明优选适用于移动终端中,例如手机、平板电脑、多媒体播放器等。
[0081]其中,CPU可以首先对第η+1帧的视频编码数据进行熵解码处理和反量化处理,然后根据第η帧残差系数进行反余弦变换,获得第η帧残差;CPU也可以首先根据第η帧残差系数进行反余弦变换,获得第η帧残差,然后对第η+1帧的视频编码数据进行熵解码处理和反量化处理。
[0082]CPU进行第η+1帧熵解码处理、反量化处理和第η帧反余弦变换,与GPU进行第η帧运动补偿的执行过程为并行执行过程,并不限定同时执行和/或同时结束,只要CPU进行第η+1帧熵解码处理、反量化处理和第η帧反余弦变换所占用的时间段与GPU进行第η帧运动补偿所占用的时间段具有重合时间段即可。
[0083]其中,熵解码处理可以从视频编码数据中解码出图像的残差变换系数、宏块的帧内/帧间预测信息等。
[0084]反量化处理可以从量化后的残差变换系数得到图像的残差变换系数。
[0085]反余弦变换为对残差系数进行反变换,得到图像残差。
[0086]运动补偿处理为利用运动矢量及参考图像对宏块的像素值进行插值预测。
[0087]帧内预测处理为利用当前图像中相邻的已解码宏块对当前宏块的像素值进行预测。
[0088]去块效应处理为对宏块的边缘进行自适应滤波,以减少宏块间的块效应。
[0089]其中,对第η帧进行运动补偿处理时使用的参考图像可以为该第η帧之前的一个或多个视频帧,例如参考图像为之前的三个视频帧:第η-3帧、第η-2帧和第η_1帧。当第η帧之前的视频帧个数不足时,可以将该第η帧之前的所有视频帧作为参考图像。例如:η为3,则第η帧之前仅有第I帧和第2帧两个视频帧,不足三个视频帧,因此可以将第I帧和第2帧作为参考图像。进一步,当η为I时,该第η帧前不存在参考图像,则该第I帧不进行运动补偿处理,也不产生第I帧运动补偿结果,进而在进行第I帧的帧内预测时,也仅根据所述第I帧残差及第I帧残差系数进行帧内预测处理,获得第I帧帧内预测结果。
[0090]现在的电子设备一般均具有CPU和GPU,GPU作为专门处理图形的处理器,具有强大的计算能力。 申请人:研宄发现:运动补偿处理是解码环节中计算量最大的一部分,在1080Ρ高清视频解码中,运动补偿处理约占整个解码环节计算量的1/3。运动补偿处理主要利用参考图像及运动矢量,对各子宏块进行插值预测,非常适合由GPU进行处理。因此本发明将解码过程中的运动补偿处理交由GPU进行处理。由于对当前视频帧进行运动补偿处理时需要使用该当前视频帧进行熵解码处理和反量化处理后生成的该当前视频帧的残差系数,因此当前视频帧的熵解码处理和反量化处理需要首先进行。为了提高执行效率,本发明使得CPU和GPU并行执行相关处理。由于CPU进行反余弦变换所花费的时间相对较少,而GTO进行运动补偿处理所花费的时间相对较多,而CPU进行帧内预测处理需要使用GPU进行运动补偿处理后的运动补偿结果,因此CPU在进行完反余弦变换处理后,需要等待GPU进行完运动补偿后才能进行帧内预测处理。这阻碍了执行效率的进一步提高。
[0091]为了解决该问题,本发明创造性的将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,CPU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,以及当前视频帧的反余弦变换处理,这样就充分利用了 GPU进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待,使得解码效率更高。可以理解的是,由于一个视频有大量的视频帧,因此可以多次循环执行上述过程。
[0092]为方便理解,下面对第η帧的解码过程进行举例说明:
[0093]为了体现对第η帧解码过程中和对其他视频帧解码中的关系,同时提供了对第η-1帧的解码过程和第η+1帧的解码过程,如图1所示:左侧的处理过程均由CPU执行,右侧的运动补偿处理均由GPU执行。由于进行各种处理过程为循环执行,因此使用虚线框将一个循环过程圈起。由于未示出其他视频帧,因此未示出的视频帧的解码过程与图1所示的三个视频帧的解码过程的关系也未示出。
[0094]图1中第一个循环过程001中,CPU首先进行第η帧的熵解码处理和反量化处理,然后进行第η-1帧的反余弦变换处理;在此过程中,GPU执行第η-1帧的运动补偿处理。
[0095]上述处理执行完毕后,CPU再依次执行第η-1帧帧内预测处理及第η_1帧去块效应处理,得到第η-1帧解码图像。
[0096]图1中第二个循环过程002中,CPU首先进行第η+1帧的熵解码处理和反量化处理,然后进行第η帧的反余弦变换处理;在此过程中,GPU执行第η帧的运动补偿处理。其中,第η帧的反余弦变换处理需要使用第一个循环过程001中的第η帧的熵解码处理和反量化处理的结果,也即第η帧残差系数。同时,第η帧的运动补偿处理需要使用第一个循环过程001中生成的第η帧残差系数及第η-1帧解码图像,其中,第η_1帧解码图像为参考图像。
[0097]上述处理执行完毕后,CPU再依次执行第η帧帧内预测处理及第η帧去块效应处理,得到第η帧解码图像。其中,第η帧帧内预测处理需要使用第η帧反余弦变换处理结果、第η帧运动补偿结果及第η帧残差系数;第η帧去块效应处理需要使用第η帧帧内预测结果及第η帧残差系数。
[0098]图1中第三个循环过程003中,CPU首先进行第η+2帧的熵解码处理和反量化处理,然后进行第η+1帧的反余弦变换处理;在此过程中,GPU执行第η+1帧的运动补偿处理。其中,第η+1帧的反余弦变换处理需要使用第二个循环过程002中的第η+1帧的熵解码处理和反量化处理的结果,也即第η+1帧残差系数。同时,第η+1帧的运动补偿处理需要使用第二个循环过程002中生成的第η+1帧残差系数及第η帧解码图像,其中,第η帧解码图像为参考图像。
[0099]上述处理执行完毕后,CPU再依次执行第η+1帧帧内预测处理及第η+1帧去块效应处理,得到第η+1帧解码图像。其中,第η+1帧帧内预测处理需要使用第η+1帧反余弦变换处理结果、第η+1帧运动补偿结果及第η+1帧残差系数;第11+1帧去块效应处理需要使用第η+1帧帧内预测结果及第η+1帧残差系数。
[0100]为方便起见,图1所示举例中对当前视频帧的运动补偿处理中,仅将当前视频帧的上一视频帧解码图像作为参考图像。在实际应用中,还可以将当前视频帧的前几个视频帧解码图像作为参考图像,如3个,本发明在此不做限定。
[0101]本发明实施例1提供的一种视频解码方法,可以将解码过程中的运动补偿处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,(PU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了 GPU进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。
[0102]实施例2:
[0103]在本发明实施例1的基础上,本发明实施例2提供的另一种视频解码方法,还可以包括:
[0104]执行如下处理以获得第N帧解码图像,其中,第N帧为最后一帧:
[0105]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0106]根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0107]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0108]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0109]可以理解的是,对于最后一个视频帧一一第N帧而言,由于已不存在第Ν+1帧,因此无需再对第Ν+1帧的视频编码数据进行熵解码处理和反量化处理。CPU只需要进行反余弦变换并控制GPU进行运动补偿后即可执行帧内预测等后续处理。
[0110]为方便理解实施例2的处理过程,下面举例说明:
[0111]设视频中共有四个视频帧,则处理过程如图2所示:
[0112]CPU首先进行第I帧的熵解码处理和反量化处理,获得第I帧残差系数;
[0113]然后开始循环执行过程:
[0114]图2中第一个循环过程100中,CPU首先进行第2帧的熵解码处理和反量化处理,然后进行第I帧的反余弦变换处理;其中,第I帧的反余弦变换处理需要使用第I帧残差系数。由于第I帧前没有视频帧,因此无法进行运动补偿处理。
[0115]上述处理执行完毕后,CPU再依次执行第I帧帧内预测处理及第I帧去块效应处理,得到第I帧解码图像。其中,第I帧帧内预测处理需要使用第I帧反余弦变换处理结果及第I帧残差系数;第I帧去块效应处理需要使用第I帧帧内预测结果及第I帧残差系数。
[0116]图2中第二个循环过程200中,CPU首先进行第3帧的熵解码处理和反量化处理,然后进行第2帧的反余弦变换处理;在此过程中,GPU执行第2帧的运动补偿处理。其中,第2帧的反余弦变换处理需要使用第一个循环过程100中的第2帧的熵解码处理和反量化处理的结果,也即第2帧残差系数。同时,第2帧的运动补偿处理需要使用第一个循环过程100中生成的第2帧残差系数及第I帧解码图像,其中,第I帧解码图像为参考图像。
[0117]上述处理执行完毕后,CPU再依次执行第2帧帧内预测处理及第2帧去块效应处理,得到第2帧解码图像。其中,第2帧帧内预测处理需要使用第2帧反余弦变换处理结果、第2帧运动补偿结果及第2帧残差系数;第2帧去块效应处理需要使用第2帧帧内预测结果及第2帧残差系数。
[0118]图2中第三个循环过程300中,CPU首先进行第4帧的熵解码处理和反量化处理,然后进行第3帧的反余弦变换处理;在此过程中,GPU执行第3帧的运动补偿处理。其中,第3帧的反余弦变换处理需要使用第二个循环过程200中的第3帧的熵解码处理和反量化处理的结果,也即第3帧残差系数。同时,第3帧的运动补偿处理需要使用第二个循环过程200中生成的第3帧残差系数及第2帧解码图像,其中,第2帧解码图像为参考图像。
[0119]上述处理执行完毕后,CPU再依次执行第3帧帧内预测处理及第3帧去块效应处理,得到第3帧解码图像。其中,第3帧帧内预测处理需要使用第3帧反余弦变换处理结果、第3帧运动补偿结果及第3帧残差系数;第3帧去块效应处理需要使用第3帧帧内预测结果及第3帧残差系数。
[0120]图2中第四个循环过程400中,由于第4帧即为最后一帧,因此无需进行第5帧的熵解码处理和反量化处理。CPU首先进行第4帧的反余弦变换处理;在此过程中,GPU执行第4帧的运动补偿处理。其中,第4帧的反余弦变换处理需要使用第三个循环过程300中的第4帧的熵解码处理和反量化处理的结果,也即第4帧残差系数。同时,第4帧的运动补偿处理需要使用第三个循环过程300中生成的第4帧残差系数及第3帧解码图像,其中,第3帧解码图像为参考图像。
[0121]上述处理执行完毕后,CPU再依次执行第4帧帧内预测处理及第4帧去块效应处理,得到第4帧解码图像。其中,第4帧帧内预测处理需要使用第4帧反余弦变换处理结果、第4帧运动补偿结果及第4帧残差系数;第4帧去块效应处理需要使用第4帧帧内预测结果及第4帧残差系数。
[0122]为方便起见,图2所示举例中对当前视频帧的运动补偿处理中,仅将当前视频帧的上一视频帧解码图像作为参考图像。
[0123]实施例3:
[0124]在本发明实施例1的基础上,本发明实施例3提供的另一种视频解码方法,还可以包括:
[0125]执行如下处理以获得第N帧解码图像:
[0126]根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0127]根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0128]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0129]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0130]可以理解的是,由于之前的视频帧已经在进行解码过程中将运动补偿处理交由GPU处理,因此最后一个视频帧可以不再将运动补偿处理交由GPU处理,而由CPU进行处理。
[0131]实施例4:
[0132]本发明实施例4提供了另一种视频解码方法,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,该方法可以包括:
[0133]对于包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧:
[0134]对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0135]多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同:
[0136]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;在11>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0137]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0138]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0139]其中,GPU可以首先对第η+1帧的视频编码数据进行熵解码处理和反量化处理,然后进行第η帧运动补偿处理;GPU也可以首先进行第η帧运动补偿处理,然后对第η+1帧的视频编码数据进行熵解码处理和反量化处理。
[0140]CPU进行第η+1帧熵解码处理和反量化处理,与GPU进行第η帧运动补偿和第η帧反余弦变换的执行过程为并行执行过程,并不限定同时执行和/或同时结束,只要CPU进行第η+1帧熵解码处理、反量化处理所占用的时间段与GPU进行第η帧运动补偿和第η帧反余弦变换所占用的时间段具有重合时间段即可。
[0141]实施例4提供的视频解码方法与实施例1提供的视频解码方法的不同之处在于:CPU还将反余弦变换交由GPU进行处理,进一步减轻了 CPU的运行负担,充分利用了 GPU的计算能力。
[0142]为方便理解,下面对第η帧的解码过程进行举例说明:
[0143]为了体现对第η帧解码过程中和对其他视频帧解码中的关系,同时提供了对第η-1帧的解码过程和第η+1帧的解码过程,如图3所示:左侧的处理过程均由CPU执行,右侧的运动补偿处理均由GPU执行。由于进行各种处理过程为循环执行,因此使用虚线框将一个循环过程圈起。由于未示出其他视频帧,因此未示出的视频帧的解码过程与图3所示的三个视频帧的解码过程的关系也未示出。
[0144]图3中第一个循环过程101中,CPU首先进行第η帧的熵解码处理和反量化处理;在此过程中,GPU执行第η-1帧的运动补偿处理及第η-1帧的反余弦变换处理。
[0145]上述处理执行完毕后,CPU依次执行第η-1帧帧内预测处理及第η_1帧去块效应处理,得到第η-1帧解码图像。其中,第η-1帧帧内预测处理需要使用第n-1帧反余弦变换处理结果、第η-1帧运动补偿结果及第η-1帧残差系数(第η-1帧残差系数的生成过程图3未示出);第η-1帧去块效应处理需要使用第η-1帧帧内预测结果及第n_l帧残差系数(第η-1帧残差系数的生成过程图3未示出)。
[0146]图3中第二个循环过程102中,CPU首先进行第η+1帧的熵解码处理和反量化处理;在此过程中,GPU执行第η帧的运动补偿处理及第η帧的反余弦变换处理。其中,第η帧的反余弦变换处理需要使用第一个循环过程101中的第η帧的熵解码处理和反量化处理的结果,也即第η帧残差系数。同时,第η帧的运动补偿处理需要使用第一个循环过程101中生成的第η帧残差系数及第η-1帧解码图像,其中,第n-1帧解码图像为参考图像。
[0147]上述处理执行完毕后,CPU再依次执行第η帧帧内预测处理及第η帧去块效应处理,得到第η帧解码图像。其中,第η帧帧内预测处理需要使用第η帧反余弦变换处理结果、第η帧运动补偿结果及第η帧残差系数;第η帧去块效应处理需要使用第η帧帧内预测结果及第η帧残差系数。
[0148]图3中第三个循环过程103中,CPU首先进行第η+2帧的熵解码处理和反量化处理;在此过程中,GPU执行第η+1帧的运动补偿处理及第η+1帧的反余弦变换处理。其中,第η+1帧的反余弦变换处理需要使用第二个循环过程102中的第η+1帧的熵解码处理和反量化处理的结果,也即第η+1帧残差系数。同时,第η+1帧的运动补偿处理需要使用第二个循环过程102中生成的第η+1帧残差系数及第η帧解码图像,其中,第η帧解码图像为参考图像。
[0149]上述处理执行完毕后,CPU再依次执行第η+1帧帧内预测处理及第η+1帧去块效应处理,得到第η+1帧解码图像。其中,第η+1帧帧内预测处理需要使用第η+1帧反余弦变换处理结果、第η+1帧运动补偿结果及第η+1帧残差系数;第11+1帧去块效应处理需要使用第η+1帧帧内预测结果及第η+1帧残差系数。
[0150]为方便起见,图3所示举例中对当前视频帧的运动补偿处理中,仅将当前视频帧的上一视频帧解码图像作为参考图像。在实际应用中,还可以将当前视频帧的前几个视频帧解码图像作为参考图像,如3个,本发明在此不做限定。
[0151]本发明实施例4提供的一种视频解码方法,可以将解码过程中的运动补偿处理交和反余弦变换处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理和反余弦变换处理的过程中,CPU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了 GPU进行运动补偿处理和反余弦变换处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。
[0152]实施例5:
[0153]在本发明实施例4的基础上,本发明实施例5提供的另一种视频解码方法,还可以包括:
[0154]执行如下处理以获得第N帧解码图像,其中,第N帧为最后一帧:
[0155]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0156]控制所述GPU根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0157]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0158]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0159]可以理解的是,对于最后一个视频帧一一第N帧而言,由于已不存在第N+1帧,因此无需再对第N+1帧的视频编码数据进行熵解码处理和反量化处理。CPU只需要控制GPU进行反余弦变换和运动补偿后即可执行帧内预测等后续处理。
[0160]实施例6:
[0161]本发明实施例6提供了另一种视频解码方法,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,该方法可以包括:
[0162]对于包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧:
[0163]对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0164]多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同:
[0165]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序,在确定首先获得所述第η+1帧残差系数时,根据第η帧残差系数进行反余弦变换,获得第η帧残差;在确定首先获得所述第η帧运动补偿结果时,控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;其中,在确定首先获得所述第η+1帧残差系数时,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;在确定首先获得所述第η帧运动补偿结果时,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0166]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0167]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0168]具体的,本发明可以在对视频进行解码前,提前根据视频格式信息确定进行熵解码处理、反量化处理、运动补偿处理所花费的时间,从而进一步确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序。由于熵解码处理、反量化处理、运动补偿处理完成后均会产生相应结果,因此本发明也可以在视频解码过程中,直接确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序。
[0169]由于对于不同的视频而言,对其视频帧进行熵解码处理、反量化处理、运动补偿处理所花费的时间并不相同,因此为了增加CPU和GPU并行执行处理的时间长度,实施例6可以确定是CPU进行熵解码处理和反量化处理首先完成还是GPU进行运动补偿处理首先完成。如果CPU进行熵解码处理和反量化处理首先完成,则反余弦变换由CPU在GPU仍在进行运动补偿时开始执行,可以增加并行执行时间。同样,如果GPU进行运动补偿处理首先完成,则反余弦变换由GPU在CPU仍在进行熵解码处理和反量化处理时开始执行,也可以增加并行执行时间。
[0170]本发明实施例6提供的一种视频解码方法,可以将解码过程中的运动补偿处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,(PU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了 GPU进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。
[0171]进一步,本发明实施例6还可以根据获得第η+1帧残差系数和获得第η帧运动补偿结果的先后顺序,来相应调整进行反余弦变换的处理器,使得CPU和GPU进行并行处理的时间更长,进一步提高了解码效率。
[0172]与上述方法实施例相对应,本发明还提供了视频解码系统。
[0173]实施例7:
[0174]本发明实施例7提供的一种视频解码系统,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,该系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,该系统可以包括:第一单元及第二单元,
[0175]所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0176]所述第二单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第二单元执行如下处理的次数的值相同:
[0177]对第n+1帧的视频编码数据进行熵解码处理和反量化处理,获得第n+1帧残差系数;根据第η帧残差系数进行反余弦变换,获得第η帧残差;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;
[0178]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0179]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0180]其中,CPU可以首先对第η+1帧的视频编码数据进行熵解码处理和反量化处理,然后根据第η帧残差系数进行反余弦变换,获得第η帧残差;CPU也可以首先根据第η帧残差系数进行反余弦变换,获得第η帧残差,然后对第η+1帧的视频编码数据进行熵解码处理和反量化处理。
[0181]CPU进行第η+1帧熵解码处理、反量化处理和第η帧反余弦变换,与GPU进行第η帧运动补偿的执行过程为并行执行过程,并不限定同时执行和/或同时结束,只要CPU进行第η+1帧熵解码处理、反量化处理和第η帧反余弦变换所占用的时间段与GPU进行第η帧运动补偿所占用的时间段具有重合时间段即可。
[0182]本发明实施例7提供的一种视频解码系统,可以将解码过程中的运动补偿处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,(PU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了 GPU进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。
[0183]实施例8:
[0184]在实施例7的基础上,本发明实施例8提供的一种视频解码系统,还可以包括:第五单元,用于执行如下处理以获得第N帧解码图像:
[0185]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0186]根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0187]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0188]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0189]可以理解的是,对于最后一个视频帧第N帧而目,由于已不存在第Ν+1帧,因此无需再对第Ν+1帧的视频编码数据进行熵解码处理和反量化处理。CPU只需要进行反余弦变换并控制GPU进行运动补偿后即可执行帧内预测等后续处理。
[0190]实施例9:
[0191]本发明实施例9提供的一种视频解码系统,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,该系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,该系统可以包括:第一单元及第三单元,
[0192]所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0193]所述第三单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第三单元执行如下处理的次数的值相同:
[0194]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;在11>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0195]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0196]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0197]其中,GPU可以首先对第η+1帧的视频编码数据进行熵解码处理和反量化处理,然后进行第η帧运动补偿处理;GPU也可以首先进行第η帧运动补偿处理,然后对第η+1帧的视频编码数据进行熵解码处理和反量化处理。
[0198]CPU进行第η+1帧熵解码处理和反量化处理,与GPU进行第η帧运动补偿和第η帧反余弦变换的执行过程为并行执行过程,并不限定同时执行和/或同时结束,只要CPU进行第η+1帧熵解码处理、反量化处理所占用的时间段与GPU进行第η帧运动补偿和第η帧反余弦变换所占用的时间段具有重合时间段即可。
[0199]实施例9提供的视频解码系统与实施例7提供的视频解码系统的不同之处在于:CPU还将反余弦变换交由GPU进行处理,进一步减轻了 CPU的运行负担,充分利用了 GPU的计算能力。
[0200]本发明实施例9提供的一种视频解码系统,可以将解码过程中的运动补偿处理交和反余弦变换处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理和反余弦变换处理的过程中,CPU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了 GPU进行运动补偿处理和反余弦变换处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。
[0201]实施例10:
[0202]在实施例9的基础上,本发明实施例10提供的一种视频解码系统,
[0203]还可以包括:第六单元,用于执行如下处理以获得第N帧解码图像:
[0204]控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果;
[0205]控制所述GPU根据所述第N帧残差系数进行反余弦变换,获得第N帧残差;
[0206]根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果;
[0207]根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
[0208]可以理解的是,对于最后一个视频帧第N帧而目,由于已不存在第N+1帧,因此无需再对第N+1帧的视频编码数据进行熵解码处理和反量化处理。CPU只需要控制GPU进行反余弦变换和运动补偿后即可执行帧内预测等后续处理。
[0209]实施例11:
[0210]本发明实施例11提供的一种视频解码系统,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,该系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,该系统可以包括:第一单元及第四单元,
[0211]所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;
[0212]所述第四单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第四单元执行如下处理的次数的值相同:
[0213]对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序,在确定首先获得所述第η+1帧残差系数时,根据第η帧残差系数进行反余弦变换,获得第η帧残差;在确定首先获得所述第η帧运动补偿结果时,控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;其中,在确定首先获得所述第η+1帧残差系数时,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;在确定首先获得所述第η帧运动补偿结果时,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理;
[0214]根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果;
[0215]根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
[0216]具体的,本发明可以在对视频进行解码前,提前根据视频格式信息确定进行熵解码处理、反量化处理、运动补偿处理所花费的时间,从而进一步确定获得所述第n+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序。由于熵解码处理、反量化处理、运动补偿处理完成后均会产生相应结果,因此本发明也可以在视频解码过程中,直接确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序。
[0217]由于对于不同的视频而言,对其视频帧进行熵解码处理、反量化处理、运动补偿处理所花费的时间并不相同,因此为了增加CPU和GPU并行执行处理的时间长度,实施例11可以确定是CPU进行熵解码处理和反量化处理首先完成还是GPU进行运动补偿处理首先完成。如果CPU进行熵解码处理和反量化处理首先完成,则反余弦变换由CPU在GPU仍在进行运动补偿时开始执行,可以增加并行执行时间。同样,如果GPU进行运动补偿处理首先完成,则反余弦变换由GPU在CPU仍在进行熵解码处理和反量化处理时开始执行,也可以增加并行执行时间。
[0218]本发明实施例11提供的一种视频解码系统,可以将解码过程中的运动补偿处理交由GPU进行处理,并将当前视频帧的下一视频帧的熵解码处理和反量化处理提前到对当前视频帧进行帧内预测处理之前进行。这样,在GPU进行当前视频帧的运动补偿处理过程中,CPU可以进行当前视频帧的下一视频帧的熵解码处理、反量化处理,这样就充分利用了GI3U进行运动补偿处理所占据的时间。同时,由于下一视频帧的熵解码处理和反量化处理已经在进行下一视频帧其他处理之前完成,因此下一视频帧的运动补偿处理及反余弦变换处理可以在对当前视频帧处理完毕后开始执行,不必等待。本发明降低了 CPU的运行负担,并提高了解码效率。
[0219]进一步,本发明实施例11还可以根据获得第η+1帧残差系数和获得第η帧运动补偿结果的先后顺序,来相应调整进行反余弦变换的处理器,使得CPU和GPU进行并行处理的时间更长,进一步提高了解码效率。
[0220]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0221]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0222]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【权利要求】
1.一种视频解码方法,其特征在于,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述方法包括: 对包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧: 对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同: 对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;根据第η帧残差系数进行反余弦变换,获得第η帧残差;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换; 根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果; 根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
2.根据权利要求1所述的方法,其特征在于,还包括: 执行如下处理以获得第N帧解码图像: 控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果; 根据所述第N帧残差系数进行反余弦变换,获得第N帧残差; 根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果; 根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
3.一种视频解码方法,其特征在于,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述方法包括: 对于包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧: 对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同: 对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;在11>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理; 根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果; 根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
4.根据权利要求3所述的方法,其特征在于,还包括: 执行如下处理以获得第N帧解码图像: 控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果; 控制所述GPU根据所述第N帧残差系数进行反余弦变换,获得第N帧残差; 根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果; 根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
5.一种视频解码方法,其特征在于,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述方法包括: 对于包括多个视频帧的视频编码数据,进行如下处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧: 对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数;多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述CPU执行如下处理的次数的值相同: 对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序,在确定首先获得所述第η+1帧残差系数时,根据第η帧残差系数进行反余弦变换,获得第η帧残差;在确定首先获得所述第η帧运动补偿结果时,控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;其中,在确定首先获得所述第η+1帧残差系数时,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;在确定首先获得所述第η帧运动补偿结果时,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理; 根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果; 根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
6.一种视频解码系统,其特征在于,应用于中央处理器CPU中,所述CPU与图形处理器GTO通信连接,所述系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,所述系统包括:第一单元及第二单元, 所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数; 所述第二单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第二单元执行如下处理的次数的值相同: 对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;根据第η帧残差系数进行反余弦变换,获得第η帧残差;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换; 根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果; 根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
7.根据权利要求6所述的系统,其特征在于,还包括:第五单元,用于执行如下处理以获得第N帧解码图像: 控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果; 根据所述第N帧残差系数进行反余弦变换,获得第N帧残差; 根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果; 根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
8.一种视频解码系统,其特征在于,应用于中央处理器CPU中,所述CPU与图形处理器GTO通信连接,所述系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,所述系统包括:第一单元及第三单元, 所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数; 所述第三单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第三单元执行如下处理的次数的值相同: 对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;在11>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;其中,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理; 根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果; 根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
9.根据权利要求8所述的系统,其特征在于,还包括:第六单元,用于执行如下处理以获得第N帧解码图像: 控制所述GPU根据第N帧残差系数及参考图像进行运动补偿,获得第N帧运动补偿结果; 控制所述GPU根据所述第N帧残差系数进行反余弦变换,获得第N帧残差; 根据所述第N帧运动补偿结果、所述第N帧残差及所述第N帧残差系数进行帧内预测处理,获得第N帧帧内预测结果; 根据所述第N帧帧内预测结果及所述第N帧残差系数进行去块效应处理,获得第N帧解码图像。
10.一种视频解码系统,其特征在于,应用于中央处理器CPU中,所述CPU与图形处理器GPU通信连接,所述系统用于对包括多个视频帧的视频编码数据进行解码处理,其中,所述多个视频帧根据编码顺序依次记为第I帧至第N帧,N为自然数且第N帧为最后一帧,所述系统包括:第一单元及第四单元, 所述第一单元,用于对第I帧的视频编码数据进行熵解码处理和反量化处理,获得第I帧残差系数; 所述第四单元,用于多次执行如下处理以获得第I帧解码图像至第N-1帧解码图像,如下处理中的η与所述第四单元执行如下处理的次数的值相同: 对第η+1帧的视频编码数据进行熵解码处理和反量化处理,获得第η+1帧残差系数;在η>1时,控制所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理,获得第η帧运动补偿结果;确定获得所述第η+1帧残差系数和获得所述第η帧运动补偿结果的先后顺序,在确定首先获得所述第η+1帧残差系数时,根据第η帧残差系数进行反余弦变换,获得第η帧残差;在确定首先获得所述第η帧运动补偿结果时,控制所述GPU根据第η帧残差系数进行反余弦变换,获得第η帧残差;其中,在确定首先获得所述第η+1帧残差系数时,所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理与所述CPU进行的第一处理为并行处理过程,所述第一处理包括:所述CPU对第η+1帧的视频编码数据进行熵解码处理和反量化处理、所述CPU根据第η帧残差系数进行反余弦变换;在确定首先获得所述第η帧运动补偿结果时,所述GPU进行的第二处理与所述CPU进行的第三处理为并行处理过程,所述第二处理包括:所述GPU根据第η帧残差系数进行反余弦变换、所述GPU根据所述第η帧残差系数及参考图像进行运动补偿处理;所述第三处理为:对第η+1帧的视频编码数据进行熵解码处理和反量化处理; 根据所述第η帧运动补偿结果、所述第η帧残差及所述第η帧残差系数进行帧内预测处理,获得第η帧帧内预测结果; 根据所述第η帧帧内预测结果及所述第η帧残差系数进行去块效应处理,获得第η帧解码图像。
【文档编号】H04N21/4402GK104469488SQ201410838057
【公开日】2015年3月25日 申请日期:2014年12月29日 优先权日:2014年12月29日
【发明者】冯巍 申请人:北京奇艺世纪科技有限公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1