发明内容
本发明实施例所要解决的技术问题在于,提供一种视频解码的方法和视频解码器。可解决现有技术中多协议视频解码器开发开发周期长以及芯片面积与功耗大的不足。
为了解决上述技术问题,本发明实施例第一方面提供了一种视频解码的方法,包括:
将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块,其中,M=16、8或4,所述视频压缩码流包括HEVC码流、VP9码流和AVS2.0码流中的任意一种;
根据所述残差块和所述预测块得到重建图像块;
对所述重建图像块进行滤波得到解码重建图像
结合第一方面,在第一种可能的实现方式中,所述将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块的步骤之前,还包括:
将所述视频压缩码流进行熵解码,解析出包括运动矢量和变换系数的语法元素;
对所述变换系数进行反扫描、反量化和反变换后得到变换单元;
根据所述运动矢量和参考图像进行帧间运动补偿或者根据帧内预测图像进行帧内运动补偿后得到预测单元。
结合第一方面或第一种可能的实现方式,在第二种可能的实现方式中,M=16,所述将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块具体包括:
获取待解码的编码树块中多个编码单元,每个编码单元的尺寸为2N×8×8,N=0、2、4或8;每个编码单元包括至少一个预测单元或至少一个变换单元;
若N=0,将所述编码树块中的4个编码单元组合成1个预测块或残差块;
或
若N=2,将所述编码树块中每个编码单元直接作为1个预测块或残差块;
或
若N=4,将所述编码树块中每个编码单元分割为4个预测块或残差块;或
若N=8,将所述编码树块中每个编码单元分割为16个预测块或残差块。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块之后,还包括:
对所述预测块进行像素插值处理。
结合第一方面至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述对所述重建图像块进行滤波得到解码重建图像具体包括:
对所述重建图像块进行去方块滤波得到解码重建图像。
相应地,本发明实施例第二方面还提供了一种视频解码器,包括:
转换模块,用于将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块,其中M=16、8或4,所述视频压缩码流包括HEVC码流、VP9码流和AVS2.0码流中的任意一种;
重构模块,用于根据所述残差块块和所述预测块得到重建图像块;
滤波模块,用于对所述重建图像块进行去方块滤波得到解码重建图像。
结合第二方面,在第一种可能的实现方式中,还包括:
码流解析模块,用于将所述视频压缩码流进行熵解码,解析出包括运动矢量和变换系数的语法元素;
反变换模块,用于对所述变换系数进行反扫描、反量化和反变换后得到变换单元;
预测模块,用于根据所述运动矢量和参考图像进行帧间运动补偿或者根据帧内预测图像进行帧内运动补偿后得到预测单元。
结合第二方面或第一种可能的实现方式,在第二种可能的实现方式中,M=16,所述转换模块具体用于获取待解码的编码树块中每个编码单元的尺寸为2N×8×8,N=0、2、4或8;每个编码单元包括至少一个预测单元或至少一个变换单元;
若N=0,将所述编码树块中的4个编码单元组合成1个预测块或残差块;
或
若N=2,将所述编码树块中每个编码单元直接作为1个预测块或残差块;
或
若N=4,将所述编码树块中每个编码单元分割为4个预测块或残差块;或
若N=8,将所述编码树块中每个编码单元分割为16个预测块或残差块。
结合第二方面至第三种可能的实现方式中的任意一种,在第四种可能的实现方式中,所述滤波模块具体用于对所述重建图像块进行去方块滤波得到解码重建图像。
实施本发明实施例,具有如下有益效果:
通过对不同尺寸的预测单元和变换单元转换为16×16、8×8或4×4的粒度,使得支持HEVC协议、VP9协议或AVS2.0协议的解码核心的流水线粒度等于基于宏块的解码核心的流水线粒度,利用视频解码过程的共性,HEVC协议、VP9协议或AVS2.0的解码核心能复用上一代解码核心的部分模块,减少了新的解码核心的模块开发,有效降低了支持HEVC协议、VP9协议或AVS2.0协议的多协议视频解码器面积与功耗。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,为本发明实施例的一种视频解码的方法,在本实施例中,所述方法包括:
S101、将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块,其中,M=16、8或4。
具体的,在视频编码器侧,视频编码器对视频进行HEVC协议、VP9协议或AVS2.0协议的压缩处理时是以CTB(Code Tree Block,编码树块)为基本分割单元,CTB为四叉树结构,每个CTB中包含1个或4个CU(Code Unit,编码单元),CU划分的大小不固定,每个CU中有0个、1个或4个PU(Prediction Unit,预测单元)或者每个CU中有一个或4个TU(TransformUnit,变换单元)。CU的尺寸为8×8、16×16、32×32和64×64四种形式。CU、PU和TU的更多定义可以参照现有视频编码技术协议的描述,本实施例对此不作赘述。
视频解码器从NAL(Network Abstraction Layer,网络抽象层)接收视频压缩码流并对视频压缩码流进行解析后分别得到预测单元和/或变换单元,视频压缩码流包括视频压缩码流、VP9码流和AVS2.0码流中的任意一种。视频解码器包括两条并行的处理通道,一条为变换通道,另一条为预测通道,变换单元中包括残差信息,预测单元中包括预测信息,解析得到的变换单元在变换通道上进行处理,预测单元在预测通道上进行处理。利用视频压缩码流中CTB的尺寸,视频解码器在变换通道上对变换单元进行拆分和组合操作,分别将变换通道上的变换单元转换为M×M大小的残差块,预测通道上的预测单元转换为M×M大小的预测块。
下面以M=16为示来说明视频解码器如何在变换通道和预测通道上对变换单元及预测单元进行变换。
图2显示了一个在变换通道上对CU进行重组的示例。视频解码器解析视频压缩码流得到待解码的CTB中CU的尺寸为8×8,从缓存中读出待解码的CTB包含的4个CU进行转换,4个CU分别标识为CU0、CU1、CU2和CU3,由4个8×8的CU组成一个16×16的残差块MB0。其中CU0中包含4个TU,分别为TU00、TU01、TU02和TU03;CU1中包括1个TU单元,该TU标识为TU10;CU2中包括1个TU,该TU标识为TU20;CU3中包括4个TU,4个TU分别标识为TU30、TU31、TU32和TU33。
图3显示了一个在变换通道上对CU拆分的示例。视频解码器解析视频压缩码流得到待解码CTB中CU的尺寸为32×32,其中CU包括1个TU,该TU标识为TU0,将32×32的CU拆分为4个16×16的残差块,分别为MB0、MB1、MB2和MB3。经过拆分后,MB0由TU0的1/4部分TU00组成,MB1由TU0的1/4部分TU01组成,MB2由TU0的1/4部分TU02组成,MB3由TU0的1/4部分TU03组成。
图4显示一个在变换通道上对CU进行拆分的示例。视频解码器解析视频压缩码流得到待解码CTB中CU的尺寸为32×32,其中CU包括31个TU,分别标识为:TU00-TU09、TU10-TU115、TU20-TU22和TU30,将32×32的CU拆分为4个16×16的残差块,分别为MB0、MB1、MB2和MB3。经过拆分后,MB0由TU00-TU09组成,MB1由TU10-TU115组成,MB2由TU20-TU22组成,MB3由TU30组成。
图5显示一个在预测通道上对CU重组的示例。视频解码器解析视频压缩码流得到待解码的CTB中CU的尺寸为8×8,从缓存中读出待解码的CTB包含的4个CU进行转换,4个CU分别标识为CU0、CU1、CU2和CU3,由4个8×8的CU组成一个16×16的预测块MB0,其中CU0包括2个PU,标识为PU00和PU01;CU1包括1个PU单元,标识为PU10;CU2包括1个PU,标识为PU20;CU3包括2个PU,标识为PU30和PU31。
图6显示了一个在预测通道上对CU拆分的示例。视频解码器解析视频压缩码流得到待解码CTB中CU的尺寸为32×32,其中CU包括2个PU,分别标识为PU0和PU1,将32×32的CU拆分为4个16×16的预测块,分别为MB0、MB1、MB2和MB3。经过拆分后,MB0由PU0的1/3部分PU00组成;MB1由PU0的1/6部分PU01和PU1的1/2部分PU10组成;MB2由PU0的1/3部分PU02组成;MB3由PU0的1/6部分PU03和PU1的1/2部分PU11组成。
可以理解的是,若M=8或4时,视频解码器可以采用上述的拆分或重组的方法可以将编码单元或预测单元转换成M×M的粒度。
通过对不同尺寸的预测单元和变换单元转换为16×16、8×8或4×4的粒度,使得支持HEVC协议、VP9协议或AVS2.0协议的解码核心的流水线粒度等于基于宏块的解码核心的流水线粒度,利用视频解码过程的共性,HEVC协议、VP9协议或AVS2.0的解码核心能复用上一代解码核心的部分模块,减少了新的解码核心的模块开发,有效降低了支持HEVC协议、VP9协议或AVS2.0协议的多协议视频解码器面积与功耗。
S102、根据所述残差块和所述预测块得到重建图像块。
具体的,将残差块和预测块加权后得到重建图像块。
S103、对所述重建图像块进行滤波得到解码重建图像。
具体的,对重建图像块进行去方块滤波或自适应滤波等滤波处理后得到解码重建图像。
参见图7,为本发明实施例的一种视频解码的方法的另一流程示意图,在本实施例中,所述方法包括:
S201、将视频压缩码流进行熵解码,解析出包括运动矢量和变换系数的语法元素。
具体的,视频解码器从NAL中接收视频压缩码流,解析出序列参数集、图像参数集等参数集和压缩图像数据,然后进行熵解码后得到运动矢量和变换系数等语法元素。
S202、对所述变换系数进行反扫描、反量化和反变换后得到变换单元。
具体的,经过S201得到的变换系数为一维数据,视频解码器通过反扫描、反量化和反变换处理将一维数据(变换系数)转换成二维数组或矩阵,即变换单元,变换单元中包括对应块的亮度和/或色度残差信息。
S203、根据所述运动矢量和参考图像进行帧间运动补偿或者根据帧内预测图像进行帧内运动补偿后得到预测单元。
具体的,根据运动矢量从相应的参考图像中得到预测单元,此时预测单元中包括帧间预测信息,或者根据帧内预测图像进行帧内运动补偿后得到预测单元,此时预测单元中包括帧内预测信息。
S204、将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块,其中M=16、8或4。
具体的,在HEVC协议中,编码单元的尺寸规定有4种,表示为2N×8×8,其中,N=0、2、4或8;每个编码单元包括至少一个预测单元或至少一个变换单元。下面分别以M=16、8和4为例对编码单元中的变换单元或预测单元进行转换来说明:
以M=16为例进行转换,若N=0,将所述编码树块中的4个编码单元组合成1个预测块或残差块;或若N=2,将所述编码树块中每个编码单元直接作为1个预测块或残差块;或若N=4,将所述编码树块中每个编码单元分割为4个预测块或残差块;或若N=8,将所述编码树块中每个编码单元分割为16个预测块或残差块。
以M=8为例进行转换,若N=0,将所述编码树块中的每个编码单元直接作为1个预测块或残差块;或若N=2,将所述编码树块中每个编码单元分割为4个预测块或残差块;或若N=4,将所述编码树块中每个编码单元分割为16个预测块或残差块;或若N=8,将所述编码树块中每个编码单元分割为64个预测块或残差块。
以M=4为例进行转换,若N=0,将所述编码树块中的每个编码单元分割为4个预测块或残差块;若N=2,将所述编码树块中每个编码单元分割为8个预测块或残差块;若N=4,将所述编码树块中每个编码单元分割为64个预测块或残差块;若N=8,将所述编码树块中每个编码单元分割为256个预测块或残差块。
S205、对预测块进行像素插值处理。
具体的,插值点由相邻像素点来决定,根据协议标准用滤波器来完成插值。
S206、根据残差块和预测块得到重建图像块。
具体的,对包括残差信息的残差块和包括预测信息的预测块进行加权处理得到重建图像块。
S207、对重建图像块进行滤波(例如去块效应滤波或自适应补偿滤波等)得到解码重建块。
通过对不同尺寸的预测单元和变换单元转换为16×16、8×8或4×4的粒度,使得支持HEVC协议、VP9协议或AVS2.0协议的解码核心的流水线粒度等于基于宏块的解码核心的流水线粒度,利用视频解码过程的共性,HEVC协议、VP9协议或AVS2.0的解码核心能复用基于宏块的解码核心的部分模块,减少了新的解码核心的模块开发,有效降低了支持HEVC协议、VP9协议或AVS2.0协议的多协议视频解码器面积与功耗。
参见图8,为本发明实施例的一种视频解码器的结构示意图,在本实施例中,所述视频解码器包括转换模块10、重构模块11和滤波模块12。
转换模块10,用于将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块,其中,M=16、8或4。
具体的,在视频编码器侧,视频编码器对视频进行HEVC压缩处理是以CTB(CodeTree Block,编码树块)为基本分割单元,CTB为四叉树结构,每个CTB中包含1个或4个CU(Code Unit,编码单元),CU划分的大小不固定,每个CU中有0个、1个或4个PU(PredictionUnit,预测单元)或每个CU中有一个或4个TU(Transform Unit,变换单元)。CU的尺寸为8×8、16×16、32×32和64×64四种形式。
视频解码器从NAL接收视频压缩码流并对视频压缩码流进行解析后分别得到变换单元和预测单元,视频解码器包括两条并行的处理通道,一条为变换通道,另一条为预测通道,变换单元中包括残差信息,预测单元中包括预测信息,解析得到的变换单元在变换通道上进行处理,预测单元在预测通道上进行处理。利用视频压缩码流中CTB的尺寸,转换模块10在变换通道上对变换单元进行拆分和组合操作,分别将变换通道上的变换单元转换为M×M大小的残差块,预测单元上的预测单元转换为M×M大小的预测块。
重构模块11,用于根据所述残差块块和所述预测块得到重建图像块。
滤波模块12,用于对所述重建图像块进行滤波(去块效应滤波、自适应补偿等)得到解码重建图像。
本发明实施例和方法实施例一属于同一构思,具体过程请参照方法实施例一的描述,此处不再赘述。
进一步的,参见图9,为本发明实施例的一种视频解码器的结构示意图,在本实施例中,所述视频解码器除包括转换模块10、重构模块11和滤波模块12之外,还包括码流解析模块13、反变换模块14、预测模块15和插值模块16。
码流解析模块13,用于将视频压缩码流进行熵解码,解析出包括模式信息、运动矢量和变换系数等语法元素。
反变换模块14,用于对所述变换系数进行反扫描、反量化和反变换后得到变换单元;
预测模块15,用于根据所述运动矢量和参考图像进行帧间运动补偿或者根据帧内预测图像进行帧内运动补偿后得到预测单元。
插值模块16,用于对所述预测块进行插值处理,并将插值处理后的预测块传送至所述重构模块。
可选的,M=16,转换模块用于获取待解码的编码树块中每个编码单元的尺寸为2N×8×8,N=0、2、4或8;每个编码单元包括至少一个预测单元或至少一个变换单元;
若N=0,将所述编码树块中的4个编码单元组合成1个预测块或残差块;
或
若N=2,将所述编码树块中每个编码单元直接作为1个预测块或残差块;
或
若N=4,将所述编码树块中每个编码单元分割为4个预测块或残差块;或
若N=8,将所述编码树块中每个编码单元分割为16个预测块或残差块。
本发明实施例和方法实施例二属于同一构思,具体过程请参照方法实施例一的描述,此处不再赘述。
参见图10,为本发明实施例的一种多协议视频解码器的结构示意图,在本实施例中,所述视频解码器支持HEVC协议和H.264协议,该多协议视频解码器包括两个解码核心,H.264解码核心和HEVC解码核心,H.264解码核心包括码流解析模块23、反变换模块24、预测模块25、插值模块26、重构模块21和滤波模块22,HEVC解码核心包括码流解析模块33、反变换模块34、预测模块35、转换模块30、插值模块26、重构模块21和滤波模块22,顶层解析模块37识别视频压缩码流的格式,若为H.264码流,则送入H.264解码核心进行视频解码,H.264解码核心中分别在变换通道和预测通道以H.264协议中的方法进行预测和变换处理,预测或变换处理后得到16×16的宏块。若为HEVC码流,则送入HEVC解码核心进行解码,HEVC解码核心在预测通道上将得到的预测单元转换成M×M的预测块,同时在变换通道上将得到的变换单元转换成M×M的残差块,经过上述流水线粒度的转换后,HEVC解码核心可复用H.264解码核心的插值模块26、重构模块21和滤波模块22。同样的,VP9解码核心和AVS2.0解码核心也可以复用H.264解码核心的插值模块26、重构模块21和滤波模块22,这样在多协议视频解码器中减少部分模块的开发,降低了多协议视频解码器的芯片面积与功耗,减少了开发周期。
上述视频解码器可以用集成电路制作工艺集成在一个集成电路衬底上。
相应地,参见图11,本发明第四实施还提供一种视频解码器,在本实施中,硬盘管理装置1包括处理器61、存储器62和通信接口63,通信接口63用于与外部设备进行通信,解码器1中的处理器61的数量可以是一个或多个,图11以一个处理器为例。本发明的一些实施例中,处理器61、存储器62和通信接口63可通过总线或其他方式连接,图11中以总线连接为例。
其中,存储器62中存储一组程序代码,且处理器61用于调用存储器62中存储的程序代码,用于执行以下操作:
将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块,其中,M=16、8或4,所述视频压缩码流包括高效率视频编码HEVC码流、VP9码流和音视频编码标准AVS2.0码流中的任意一种;
根据所述残差块和所述预测块得到重建图像块;
对所述重建图像块进行滤波得到解码重建图像。
在本发明的实施例中,所述处理器61还用于执行:将所述视频压缩码流进行熵解码,解析出包括运动矢量和变换系数的语法元素;
对所述变换系数进行反扫描、反量化和反变换后得到变换单元;
根据所述运动矢量和参考图像进行帧间运动补偿或者根据帧内预测图像进行帧内运动补偿后得到预测单元。
在本发明的一些实施例中,M=16,所述处理器61执行所述将对视频压缩码流进行解码后得到的变换单元和预测单元分别转换成M×M的残差块和M×M的预测块具体包括:
获取待解码的编码树块中多个编码单元,每个编码单元的尺寸为2N×8×8,N=0、2、4或8;每个编码单元包括至少一个预测单元或至少一个变换单元;
若N=0,将所述编码树块中的4个编码单元组合成1个所述预测块或所述残差块;或
若N=2,将所述编码树块中每个编码单元直接作为1个所述预测块或所述残差块;或
若N=4,将所述编码树块中每个编码单元分割为4个所述预测块或所述残差块;或
若N=8,将所述编码树块中每个编码单元分割为16个所述预测块或所述残差块。
在本发明的一些实施例中,处理器61还用于执行:对所述预测块进行像素插值处理。
在本发明的一些实施例中,处理器61执行所述对所述重建图像块进行滤波得到解码重建图像具体包括:
对所述重建图像块进行去方块滤波得到解码重建图像。
实施本发明的实施例,通过对不同尺寸的预测单元和变换单元转换为16×16、8×8或4×4的粒度,使得支持HEVC协议、VP9协议或AVS2.0协议的解码核心的流水线粒度等于基于宏块的解码核心的流水线粒度,利用视频解码过程的共性,HEVC协议、VP9协议或AVS2.0的解码核心能复用基于宏块的解码核心的部分模块,减少了新的解码核心的模块开发,有效降低了支持HEVC协议、VP9协议或AVS2.0协议的多协议视频解码器面积与功耗。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。