CN116095310B - 图像编解码方法、装置、电子设备及存储介质 - Google Patents
图像编解码方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116095310B CN116095310B CN202210320915.5A CN202210320915A CN116095310B CN 116095310 B CN116095310 B CN 116095310B CN 202210320915 A CN202210320915 A CN 202210320915A CN 116095310 B CN116095310 B CN 116095310B
- Authority
- CN
- China
- Prior art keywords
- block
- decoded
- pixel
- residual
- prediction mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 256
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 337
- 238000013139 quantization Methods 0.000 claims description 178
- 238000004590 computer program Methods 0.000 claims description 9
- 238000013461 design Methods 0.000 description 74
- 238000012545 processing Methods 0.000 description 57
- 230000008569 process Effects 0.000 description 50
- 230000003321 amplification Effects 0.000 description 42
- 238000003199 nucleic acid amplification method Methods 0.000 description 42
- 238000006073 displacement reaction Methods 0.000 description 40
- 238000010586 diagram Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 21
- 230000006870 function Effects 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 17
- 230000009466 transformation Effects 0.000 description 15
- 230000009286 beneficial effect Effects 0.000 description 14
- 230000001131 transforming effect Effects 0.000 description 12
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 6
- 230000003139 buffering effect Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000008078 mathematical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 108091026890 Coding region Proteins 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
本申请公开了一种图像编解码方法、装置、电子设备及存储介质,涉及图像编解码技术领域。该图像编码方法包括:解析待解码块的码流,以确定预测待解码块中像素的目标预测模式;基于目标预测模式,确定与目标预测模式对应的目标预测顺序;按照目标预测模式,以目标预测顺序预测待解码块中的每个像素;基于每个像素的预测值对每个像素进行重建,得到待解码块的重建块。通过该方法,能够提高图像编码的效率。
Description
技术领域
本申请涉及图像编解码技术领域,尤其涉及一种图像编解码方法、装置、电子设备及存储介质。
背景技术
视频中完整的图像通常被称为“帧”,由多个帧按照时间顺序组成的视频被称为视频序列(video sequence)。视频序列存在空间冗余、时间冗余、视觉冗余、信息熵冗余、结构冗余、知识冗余、重要性冗余等一系列的冗余信息。为了尽可能的去除视频序列中的冗余信息,减少表征视频的数据量,提出了视频编码(video coding)技术,以达到减小存储空间和节省传输带宽的效果。视频编码技术也称为视频压缩技术。
随着技术的不断发展,采集视频数据越来越便捷,所采集的视频数据的规模也越来越大,因此,如何有效地对视频数据进行编解码,成为迫切需要解决的问题。
发明内容
本申请提供了一种图像编解码方法、装置、电子设备及存储介质,该图像编解码方法能够提高图像编解码的效率。
为达上述目的,本申请提供如下技术方案:
第一方面,本申请提供了一种图像解码方法,该方法包括:解析待解码块的码流,以确定预测待解码块中像素的目标预测模式。基于目标预测模式,确定与目标预测模式对应的目标预测顺序。按照目标预测模式,以目标预测顺序预测待解码块中的每个像素。基于每个像素的预测值对每个像素进行重建,得到待解码块的重建块。
通过本申请提供的图像解码方法,解码端在以目标预测模式对待解码块中的像素进行预测时,是以该目标预测模式对应的目标预测顺序对待解码块中的像素进行预测的。在这一过程中,解码端预测待解码块中的任一个像素时,用于预测该像素的像素均已完成重建。因此,本申请提供的图像解码方法提高了预测待解码块中像素的效率,进而解码端在基于预测值和残差值重获得重建值时,解码端无需对残差值进行缓存,因此本实施例提供的解码方法不仅可以节约用于缓存残差值的缓存空间,还能提高解码效率。
在一种可能的设计方式中,在以上述的目标预测顺序预测待解码块中的任一像素时,用于预测任一像素的像素已完成重建。
在另一种可能的设计方式中,若上述目标预测模式指示以目标预测顺序逐点预测待解码块中的每个像素,则上述的按照目标预测模式,以目标预测顺序预测待解码块中的每个像素包括:按照目标预测模式,沿目标预测顺序指示的方向逐点预测待解码块中的每个像素。其中,当目标预测模式为第一目标预测模式时,目标预测顺序为第一预测顺序,当目标预测模式为第二目标预测模式时,目标预测顺序为第二预测顺序,第一预测顺序和第二预测顺序不同。
换言之,不同的预测模式对应不同的预测顺序。
在另一种可能的设计方式中,对于尺寸为第一尺寸的待解码块,在上述目标预测模式下采用第三预测顺序对待解码块进行预测。对于尺寸为第二尺寸的待解码块,在上述目标预测模式下采用第四预测顺序对待解码块进行预测。其中,第三预测顺序和第四预测顺序不同。
换言之,在待解码块的大小不同时,若采用相同预测模式预测待解码块中的像素时,预测顺序也可以是不同的。
在一种可能的设计方式中,若上述目标预测模式指示以待解码块中具有预设大小的子块为单位依次预测待解码块中每个子块的像素,则上述按照目标预测模式,以目标预测顺序预测待解码块中的每个像素包括:按照目标预测模式,沿目标预测顺序指示的方向依次预测待解码块中每个子块中的像素。
在另一种可能的设计方式中,上述目标预测模式包括待解码块中每个子块的预测模式,对于待解码块中第一子块而言,当第一子块中包括第一像素和第二像素,则第一子块的预测模式用于根据第一子块周围已重建的像素并行的对第一像素和第二像素进行预测。
通过该两种可能的设计,解码端在对一个子块进行预测时,可以并行的基于该子块周围已重建的像素对该子块内的多个像素进行预测,即这种预测模式能够进一步提高解码端预测待解码块的效率。进而,当解码端在基于预测值和残差值重获得重建值时,解码端无需对残差值进行缓存,因此该两种可能的设计提供的解码方法进一步的节约了缓存空间,并提高解码效率。
在另一种可能的设计方式中,上述的基于每个像素的预测值对每个像素进行重建,得到待解码块的重建块包括:基于解析待解码块的码流得到的待解码块中每个像素的反量化参数和反量化预设数组,对解析待解码块的码流得到的待解码块的第一残差块进行反量化,得到第二残差块。基于上述每个像素的预测值和第二残差块对每个像素进行重建,得到重建块。
通过该可能的设计,能够以基于更少乘法运算实现对待解码块的第一残差块的反量化,即能够高效的实现对待解码块的第一残差块的反量化,因此该可能的设计提供的解码方法能够进一步提高图像解码的效率。
在一种可能的设计方式中,上述的解析待解码块的码流包括:采用可变码长的解码方式解析待解码块的码流,以得到编码待解码块对应的残差块中每个值的编码码长CL和第一残差块。
通过该可能的设计,待解码块的残差块和CL在编码侧被以更少的比特被编码,因此在相应的解码侧,解码效率得以提高。因此该可能的设计提供的解码方法能够进一步提高图像解码的效率。
第二方面,本申请提供了一种图像编码方法,该方法包括:确定待编码块的目标预测模式,以及确定与目标预测模式对应的目标预测顺序。按照目标预测模式,以目标预测顺序预测待编码块中的每个像素。基于每个像素的预测值确定待编码块的残差块。以目标预测顺序编码残差块,以得到待编码块的码流。
在一种可能的设计方式中,在以上述目标预测顺序预测待编码块中的任一像素时,用于预测任一像素的像素已完成重建。
在另一种可能的设计方式中,若上述的目标预测模式指示以目标预测顺序逐点预测编码块中的每个像素,则上述的按照目标预测模式,以目标预测顺序预测待编码块中的每个像素包括:按照目标预测模式,沿目标预测顺序指示的方向逐点预测待编码块中的每个像素。其中,当目标预测模式为第一目标预测模式时,目标预测顺序为第一预测顺序,当目标预测模式为第二目标预测模式时,目标预测顺序为第二预测顺序,第一预测顺序和第二预测顺序不同。换言之,不同的预测模式对应不同的预测顺序。
在另一种可能的设计方式中,对于尺寸为第一尺寸的待编码块,在上述目标预测模式下采用第三预测顺序对待编码块进行预测。对于尺寸为第二尺寸的待编码块,在上述目标预测模式下采用第四预测顺序对待编码块进行预测。其中,第三预测顺序和第四预测顺序不同。换言之,在待编码块的大小不同时,若采用相同预测模式预测待编码块中的像素时,预测顺序也可以是不同的。
在另一种可能的设计方式中,若上述的目标预测模式指示以待编码块中具有预设大小的子块为单位依次预测待编码块中每个子块的像素,则上述的按照目标预测模式,以目标预测顺序预测待编码块中的每个像素包括:按照目标预测模式,沿目标预测顺序指示的方向依次预测待编码块中每个子块中的像素。
在另一种可能的设计方式中,上述的目标预测模式包括待编码块中每个子块的预测模式,对于待编码块中第一子块而言,如果第一子块中包括第一像素和第二像素,则第一子块的预测模式用于根据第一子块周围已重建的像素并行的对第一像素和第二像素进行预测。
在另一种可能的设计方式中,在上述的以目标预测顺序编码残差块,以得到待编码块的码流之前,上述方法包括:确定待编码块中每个像素的量化参数QP。基于每个像素的QP和量化预设数组,对待编码的残差块进行量化,得到第一残差块。这样的话,则上述的以目标预测顺序编码残差块,以得到待编码块的码流包括:以目标预测顺序编码第一残差块,以得到待编码块的码流。
在另一种可能的设计方式中,上述的以目标预测顺序编码第一残差块,以得到待编码块的码流包括:以目标预测顺序、且采用可变码长的编码方式对第一残差块进行编码,以得到待编码块的码流。
可以理解,第二方面及其任一种可能的是设计提供的图像编码方法与第一方面及其任一种可能的是设计提供的图像解码方法是对应的,因此,第二方面及其任一种可能的是设计提供的技术方案的有益效果,均可以参考第一方面中对应的方法的有益效果的描述,不再赘述。
第三方面,本申请提供了一种图像解码方法,该方法包括:解析待解码块的码流,得到待解码块中每个像素的反量化参数和待解码块的第一残差块。基于每个像素的反量化参数指示的QP和反量化预设数组,对第一残差块进行反量化,得到第二残差块。基于第二残差块对待解码块进行重建,得到重建块。
通过本申请提供的图像解码方法,在图像解码过程中,基于本申请提供的量化预测数组所实现的量化处理方式大大节省了解码端计算资源,即该图像解码方法中的量化处理过程的效率相比现有技术大大提高,进而该图像解码方法大大提高了图像的解码效率。
在一种可能的设计方式中,上述解析待解码块的码流,得到待解码块中每个像素的反量化参数和待解码块的第一残差块包括:基于待解码块的码流确定预测待解码块中像素的目标预测模式和待解码块中每个像素的反量化参数;基于目标预测模式,确定与目标预测模式对应的残差扫描顺序;基于残差扫描顺序解析待解码块的码流,得到第一残差块。其中,当目标预测模式为第一目标预测模式时,残差扫描顺序为第一扫描顺序,当目标预测模式为第二目标预测模式时,残差扫描顺序为第二扫描顺序,第一扫描顺序和第二扫描顺序不同。换言之,不同的预测模式对应不同的残差扫描顺序。
在另一种可能的设计方式中,对于尺寸为第一尺寸的待解码块,在上述目标预测模式下采用第三扫描顺序解析待解码块的码流。对于尺寸为第二尺寸的待解码块,在上述目标预测模式下采用第四扫描顺序解析待解码块的码流;其中,第三扫描顺序和第四扫描顺序不同。换言之,在待解码块的大小不同时,若采用相同预测模式预测待解码块中的像素时,解析待解码块的码流时的残差扫描顺序也可以是不同的。
基于该两种可能的设计方法,当基于残差扫描顺序解析得到待解码的残差块时,若以与该残差扫描顺序相同的目标预测顺序预测待解码块的预测块,则基于残差块和预测块重建待解码块的重建快的效率能够得以提高,即该两种可能的设计方法进一步提高了图像的解码效率。
在另一种可能的设计方式中,在上述的反量化预设数组中,第1至第n个数中相邻的两个数之间的间隔为1,第n+1至第n+m个数中相邻的两个数之间的间隔为2,第n+k*m+1至第n+k*m+m个数中相邻两个数之间的数值间隔为2k+1,其中,n、m为大于1的整数,k均为正整数。
在另一种可能的设计方式中,上述的基于每个像素的量化参数QP和反量化预设数组,对第一残差块进行反量化,得到第二残差块包括:基于每个像素的QP在反量化预设数组中确定每个像素对应的放大系数。基于每个像素对应的放大系数,对第一残差块进行反量化运算,得到第二残差块。
在另一种可能的设计方式中,上述的基于每个像素的量化参数QP和反量化预设数组,对第一残差块进行反量化,得到第二残差块包括:基于每个像素的QP和反量化预设数组,确定每个像素对应的放大参数和位移参数。基于每个像素对应的放大参数和位移参数,对第一残差块进行反量化运算,得到第二残差块。其中,每个像素对应的放大参数的值为每个像素的QP与7按位与后的值在反量化预设数组中对应的值,每个像素对应的位移参数的值为7与每个像素的QP除以23的商的差值。
基于上述三种可能的实现方式,本申请提供的量化预测数组所实现的量化处理方式大大节省了解码端计算资源,即该图像解码方法中的量化处理过程的效率相比现有技术大大提高。
在另一种可能的设计方式中,上述的基于第二残差块对待解码块进行重建,得到重建块包括:对第二残差块进行反变换,以重建待解码块的残差值块。基于残差值块对待解码块进行重建,得到重建块。
在另一种可能的设计方式中,上述的基于第二残差块对待解码块进行重建包括:按照目标预测模式,以与该目标预测模式对应的目标预测顺序预测待解码块中的每个像素。基于每个像素的预测值和第二残差块对待解码块进行重建,得到重建块。
通过该可能的设计方式,由于基于本申请提供的目标预测模式对待解码块进行预测时能够提高预测效率,因此该可能的设计方式进一步提供了图像的解码效率。
在另一种可能的设计方式中,上述的解析待解码块的码流包括:采用可变码长的解码方式解析待解码块的码流,以得到编码待解码块对应的残差块中每个值的编码码长CL和第一残差块。
通过该可能的设计,待解码块的残差块和CL在编码侧被以更少的比特被编码,因此在相应的解码侧,解码效率得以提高。因此该可能的设计提供的解码方法能够进一步提高图像解码的效率。
第四方面,本申请提供了一种图像编码方法,该方法包括:确定待编码块的第二残差块和待编码块中每个像素的量化参数QP。基于每个像素的QP和量化预设数组,对第二残差块进行量化,得到第一残差块。编码第一残差块,得到待编码块的码流。
在另一种可能的设计方式中,上述的编码第一残差块,得到待编码块的码流包括:确定待编码块的目标预测模式,以及确定与目标预测模式对应的残差扫描顺序。以残差扫描顺序编码残差块,得到待编码块的码流。其中,当目标预测模式为第一目标预测模式时,残差扫描顺序为第一扫描顺序,当目标预测模式为第二目标预测模式时,残差扫描顺序为第二扫描顺序,第一扫描顺序和第二扫描顺序不同。
在另一种可能的设计方式中,对于尺寸为第一尺寸的待编码块,在上述目标预测模式下采用第三扫描顺序对待编码块进行编码。对于尺寸为第二尺寸的待编码块,在上述目标预测模式下采用第四扫描顺序对待编码块进行编码。其中,第三扫描顺序和第四扫描顺序不同。
在另一种可能的设计方式中,上述的量化预设数组包括放大参数数组和位移参数数组,放大参数数组和位移参数数组包括相同数量个数值,对于放大参数数组的第i个值amp[i]和位移参数数组中的第i个值shift[i],2shift[i]与amp[i]的商构成的反量化数组具有以下规律:第1至第n个数中相邻的两个数之间的间隔为1,第n+1至第n+m个数中相邻的两个数之间的间隔为2,第n+k*m+1至第n+k*m+m个数中相邻两个数之间的数值间隔为2k+1;其中,n、m为大于1的整数,i、k均为正整数。
在另一种可能的设计方式中,上述的基于每个像素的QP和量化预设数组,对第二残差块进行量化,得到第一残差块包括:基于每个像素的QP,在放大参数数组确定每个像素的放大参数,以及在位移参数数组确定每个像素的位移参数。基于每个像素的放大参数和位移参数,对第二残差块进行量化运算,得到第一残差块。
在另一种可能的设计方式中,上述的基于每个像素的QP和量化预设数组,对第二残差块进行量化,得到第一残差块包括:基于每个像素的QP和量化预设数组,确定每个像素对应的放大参数和位移参数。基于每个像素对应的放大参数和位移参数,对第二残差块进行量化运算,得到第二残差块。其中,每个像素对应的放大参数的值为每个像素的QP与7按位与后的值在量化预设数组中对应的值,每个像素对应的位移参数的值为7与每个像素的QP除以23的商的加和值;
在另一种可能的设计方式中,上述的第二残差块为待编码块的原始残差值块,或者,上述的第二残差块为残差值块经变换后得到的残差系数块。
在另一种可能的设计方式中,上述的确定待编码块的第二残差块包括:按照目标预测模式,以目标预测顺序预测待编码块中的每个像素。基于待编码块中的每个像素的预测值,确定第二残差块。
在另一种可能的设计方式中,上述的编码第一残差块,得到待编码块的码流包括:采用可变码长的编码方式对第一残差块进行编码,以得到待编码块的码流。
可以理解,第四方面及其任一种可能的是设计提供的图像编码方法与第三方面及其任一种可能的是设计提供的图像解码方法是对应的,因此,第四方面及其任一种可能的是设计提供的技术方案的有益效果,均可以参考第三方面中对应的方法的有益效果的描述,不再赘述。
第五方面,本申请提供了一种图像编码方法,该方法包括:确定待编码块对应的残差块。采用可变码长的编码方式对残差块进行编码,以得到待编码块的码流。
通过本申请提供的编码方法,当编码端通过可变换阶数的指数哥伦布编码算法对待编码块的残差块进行编码,可以自适应的用较少的比特编码较小的残差值,从而可以达到节省比特的目的。也即在提高图像编码的压缩率的同时,本申请提供的编码方法还提高了编码效率。
在一种可能的设计方式中,上述的可变码长的编码方式包括可变换阶数的指数哥伦布编码方式,则上述的采用可变码长的编码方式对残差块进行编码,得到待编码块的码流包括:确定待编码块中每个像素的属性类型。对于残差块中与待编码块的第一像素对应的第一值,基于预设策略和第一像素的属性类型,确定编码第一值时的目标阶数。采用目标阶数的指数哥伦布编码算法编码第一值,得到码流。
在另一种可能的设计方式中,上述的可变码长的编码方式包括预设阶数的指数哥伦布编码方式,采用可变码长的编码方式对残差块进行编码,得到待编码块的码流包括:对于残差块中与待编码块的第一像素对应的第一值,采用预设阶数的指数哥伦布编码算法编码第一值,得到码流。
该两种可能的设计方式通过可变或指定阶数的指数哥伦布编码方式,实现了对残差块中残差值的变长编码,该编码方式可以自适应的用较少的比特编码较小的残差值,从而可以达到节省比特的目的。
在另一种可能的设计方式中,上述的方法还包括:确定残差块对应的语义元素,语义元素包括编码残差块中每个值的编码码长CL。采用可变码长的编码方式对每个值的CL进行编码,以得到码流。
在另一种可能的设计方式中,上述的可变码长的编码方式包括可变换阶数的指数哥伦布编码方式,对于残差块中的任一值,上述采用可变码长的编码方式对每个值的CL进行编码,以得到码流包括:确定编码任一值的CL时的目标阶数。采用目标阶数的指数哥伦布编码算法编码任一值的CL,以得到码流。
该两种可能的设计方式通过可变或指定阶数的指数哥伦布编码方式,实现了对残差块中残差值的CL的变长编码,该编码方式可以自适应的用较少的比特编码较小的CL,从而可以达到节省比特的目的。
在另一种可能的设计方式中,对于残差块中的任一值,上述的采用可变码长的编码方式对每个值的CL进行编码,以得到码流包括:当任一值的CL小于等于阈值,采用预设数量个比特编码任一值的CL,以得到码流。当任一值的CL大于阈值,采用截断一元码编码任一值的CL,以得到码流。
该可能的设计方式,通过定长编码和截断一元码实现了对残差块中残差值的CL的变长编码,该编码方式可以自适应的用较少的比特编码较小的CL,从而可以达到节省比特的目的。
在另一种可能的设计方式中,上述的残差块为待编码块的原始残差值块;或者,上述的残差块为原始残差值块经变换后得到的残差系数块;或者,上述的残差块为残差系数块经量化后得到的量化系数块。
在另一种可能的设计方式中,如果上述的残差块为待编码块的原始残差值块,则上述的确定待编码块对应的残差块包括:确定待编码块的目标预测模式,以及确定与目标预测模式对应的目标预测顺序。按照目标预测模式,以目标预测顺序预测待编码块中的每个像素。基于待编码块中的每个像素的预测值,确定残差块。
通过该可能的设计方式,由于基于本申请提供的目标预测模式对待编码块进行预测时能够提高预测效率,因此该可能的设计方式进一步提供了图像的编码效率。
在另一种可能的设计方式中,如果上述的残差块为残差系数块经量化后得到的量化系数块,则在上述的采用可变码长的编码方式对残差块进行编码,以得到待编码块的码流之前,上述方法还包括:确定待编码块中每个像素的量化参数QP。基于每个像素的QP和量化预设数组,对待编码的残差值块进行量化,得到残差块。
通过该可能的设计,能够以基于更少乘法运算实现对待编码的残差值块的量化,即能够高效的实现对待编码的残差值块的量化,因此该可能的设计提供的编码方法能够进一步提高图像编码的效率。
第六方面,本申请提供了一种图像解码方法,该方法包括:采用可变码长的解码方式解析待解码块的码流,得到编码待解码块对应的残差块中每个值的编码码长CL。基于编码每个值的CL确定残差块。基于残差块对待解码块进行重建,得到重建块。
在另一种可能的设计方式中,上述的可变码长的解码方式包括可变换阶数或预设阶数的指数哥伦布解码方式,则上述的采用可变码长的解码方式解析待解码块的码流,得到编码待解码块对应的残差块中每个值的编码码长CL包括:确定解析编码残差块中每个值的CL时的目标阶数。采用目标阶数的指数哥伦布解码算法解析码流,得到编码残差块中每个值的CL。
在另一种可能的设计方式中,上述的采用可变码长的解码方式解析待解码块的码流,得到编码待解码块对应的残差块中每个值的编码码长CL包括:当用于编码残差块中任一值CL的比特数量为预设数量,则基于定长解码策略解析码流,以得到编码任一值的CL。当用于编码残差块中任一值CL的比特数量大于预设数量,则基于截断一元码的规则解析码流,以得到编码任一值的CL。
在另一种可能的设计方式中,上述的基于编码每个值的CL确定残差块包括:基于编码每个值的CL在码流中确定与待解码块中每个像素对应的比特组。确定待解码块中每个像素的属性类型。对于与待解码块中第一像素对应的第一比特组,基于预设策略和第一像素的属性类型,确定解析第一比特组的目标阶数。采用目标阶数的指数哥伦布解码算法解析第一比特组,以得到残差块。
在另一种可能的设计方式中,上述的基于编码每个值的CL确定残差块包括:基于编码每个值的CL在码流中确定与待解码块中每个像素对应的比特组。对于与待解码块中第一像素对应的第一比特组,采用预设阶数的指数哥伦布解码算法解析第一比特组,以得到残差块。
在另一种可能的设计方式中,上述的基于残差块对待解码块进行重建,得到重建块包括:对该残差块进行反量化和反变换,或者,对该残差块进行反量化,以重建待解码块的残差值块。基于残差值块对待解码块进行重建,得到重建块。
在另一种可能的设计方式中,上述的基于残差块对待解码块进行重建,得到重建块包括:基于待解码块的码流确定预测待解码块中像素的目标预测模式。基于目标预测模式,确定与目标预测模式对应的目标预测顺序。按照目标预测模式,以目标预测顺序预测待解码块中的每个像素。基于待解码块中的每个像素的预测值和残差块对待解码块进行重建,得到重建块。
在另一种可能的设计方式中,上述的对残差块进行反量化包括:基于解析待解码块的码流得到的待解码块中每个像素的反量化参数和反量化预设数组,对残差块进行反量化。
可以理解,第六方面及其任一种可能的是设计提供的图像解码方法与第五方面及其任一种可能的是设计提供的图像编码方法是对应的,因此,第六方面及其任一种可能的是设计提供的技术方案的有益效果,均可以参考第五方面中对应的方法的有益效果的描述,不再赘述。
第七方面,本申请提供了一种图像解码装置。该解码装置可以是视频解码器或包含视频解码器的设备。该解码装置包括用于实现第一方面、第三方面或第六方面中任一种可能实现方式中方法的各个模块。所述解码装置具有实现上述相关方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块。其有益效果可以参见相应方法中的描述,此处不再赘述。
第八方面,本申请提供了一种图像编码装置。该编码装置可以是视频编码器或包含视频编码器的设备。该编码装置包括用于实现第二方面、第四方面或第五方面中任一种可能实现方式中方法的各个模块。所述编码装置具有实现上述相关方法实例中行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能对应的模块。其有益效果可以参见相应方法中的描述,此处不再赘述。
第九方面,本申请提供一种电子设备,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,以实现第一方面至第六方面中任一种实现方式的方法。
例如,该电子设备可以是指视频编码器,或包括视频编码器的设备。
又如,该电子设备可以是指视频解码器,或包括视频解码器的设备。
第十方面,本申请提供一种计算机可读存储介质,存储介质中存储有计算机程序或指令,当计算机程序或指令被计算设备或计算设备所在的存储系统执行时,以实现第一方面至第六方面中任一种实现方式的方法。
第十一方面,本申请提供一种计算机程序产品,该计算程序产品包括指令,当计算机程序产品在计算设备或处理器上运行时,使得计算设备或处理器执行该指令,以实现第一方面至第六方面中任一种实现方式的方法。
第十二方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以实现第一方面至第六方面中任一种实现方式的方法。
第十三方面,本申请提供一种图像译码系统,该图像译码系统包括编码端和解码端,解码端用于实现第一、第三或第六方面提供的相应的解码方法,编码端用于实现与此对应的编码方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。或者说,上述任意一个方面的任意一种可能的实现方式,在不冲突的情况下,均可以应用于其他方面,从而得到新的实施例。例如,上述第一、第三以及第六方面提供的任意一种图像解码方法,可以在不冲突的情况下两两组合、或三个方面进行组合,从而可以得到新的图像解码方法。
附图说明
图1为本申请实施例所应用的编解码系统10的架构示意图;
图2为用于实现本申请实施例方法的编码器112的实例的示意性框图;
图3为本申请实施例提供的一种图像、并行编码单元、独立编码单元和编码单元之间的对应关系的示意图;
图4为本申请实施例提供的一种编码过程的流程示意图;
图5为用于实现本申请实施例方法的解码器122的实例的示意性框图;
图6a为本申请实施例提供的一种图像编码方法的流程示意图;
图6b为本申请实施例提供的一种图像解码方法的流程示意图;
图6c为本申请实施例提供的另一种图像编码方法的流程示意图;
图7a为本申请实施例提供的一种预测顺序的示意图;
图7b为本申请实施例提供的另一种预测顺序的示意图;
图7c-1为本申请实施例提供的又一种预测顺序的示意图;
图7c-2为本申请实施例提供的又一种预测顺序的示意图;
图7d-1为本申请实施例提供的又一种预测顺序的示意图;
图7d-2为本申请实施例提供的又一种预测顺序的示意图;
图7d-3为本申请实施例提供的又一种预测顺序的示意图;
图7e为本申请实施例提供的又一种预测顺序的示意图;
图7f为本申请实施例提供的又一种预测顺序的示意图;
图7g为本申请实施例提供的又一种编码顺序的示意图;
图8为本申请实施例提供的另一种图像解码方法的流程示意图;
图9a为本申请实施例提供的又一种图像编码方法的流程示意图;
图9b为本申请实施例提供的又一种图像解码方法的流程示意图;
图10a为本申请实施例提供的又一种图像编码方法的流程示意图;
图10b为本申请实施例提供的又一种图像解码方法的流程示意图;
图11为本申请实施例提供的一种解码装置1100的结构示意图;
图12为本申请实施例提供的一种编码装置1200的结构示意图;
图13为本申请实施例提供的一种解码装置1300的结构示意图;
图14为本申请实施例提供的一种编码装置1400的结构示意图;
图15为本申请实施例提供的一种编码装置1500的结构示意图;
图16为本申请实施例提供的一种解码装置1600的结构示意图;
图17为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了更清楚的理解本申请实施例,下面对本申请实施例中涉及的部分术语或技术进行说明:
1)、预测模式
预测当前图像块(如待编码图像块(以下简称待编码块)或待解码图像块(以下简称待解码块))中每个像素的预测值所采用的预测方式的组合称为预测模式。其中,预测当前图像块中的不同像素可以采用不同的预测方式,也可以采用相同的预测方式,预测当前图像块中的所有像素所采用的预测方式可以共同称为该当前图像块的(或对应的)预测模式。
可选地,预测模式包括:逐点预测模式,帧内预测模式,块复制模式和原始值模式(即直接解码固定位宽的重建值模式)等。
示例的,逐点预测模式是指将待预测像素周围相邻像素的重建值作为待预测像素的预测值的预测模式。逐点预测模式包括垂直预测、水平预测、垂直均值预测和水平均值预测等预测方式中的一种或多种的组合。
其中,垂直预测为用待预测像素上侧(既可以是相邻的上侧,也可以是非相邻但距离较近的上侧)像素的重建值来获得待预测像素的预测值(PointPredData)。在本申请实施例中,将采用垂直预测的预测方式称为T预测方式。一种示例为:将待预测像素上侧相邻像素的重建值作为待预测像素的预测值。
水平预测为用待预测像素左侧(既可以是相邻的左侧,也可以是非相邻但距离较近的左侧)像素的重建值来获得待预测像素的预测值。在本申请实施例中,将采用水平预测的预测方式称为L预测方式。一种示例为:将待预测像素左侧相邻像素的重建值作为待预测像素的预测值。
垂直均值预测为用待预测像素上下方像素的重建值来获得待预测像素的预测值。在本申请实施例中,将采用垂直均值预测的预测方式称为TB预测方式。一种示例为:将待预测像素垂直上方相邻像素的重建值和垂直下方相邻像素的重建值的均值作为待预测像素的预测值。
水平均值预测为用待预测像素左右两侧像素的重建值来获得待预测像素的预测值。在本申请实施例中,将采用水平均值预测的预测方式称为RL预测方式。一种示例为:将待预测像素水平左侧相邻像素的重建值和水平右侧相邻像素的重建值的均值作为待预测像素的预测值。
示例的,帧内预测模式是将待预测块周围相邻块中像素的重建值作为预测值的预测模式。
示例的,块复制预测模式是将周围已编码(解码)块(不一定相邻)像素的重建值作为预测值预测模式。
示例的,原始值模式是直接解码固定位宽的重建值模式,即无参考预测模式。
2)、残差编码模式
对当前图像块(如待编码块或待解码块)的残差(即残差块,由当前图像块中的每个像素的残差值构成)进行编码的方式,被称为残差编码模式。残差编码模式可以包括跳过残差编码模式和正常残差编码模式。
在跳过残差编码模式下,无需编码(解码)残差系数,此时当前图像块中的像素的残差值为全0,每个像素的重建值等于该像素的预测值。
在正常残差编码模式下,需要编码(解码)残差系数,此时前图像块中的像素的残差值不全为0,每个像素的重建值可以基于该像素的预测值和残差值得到。
在一个示例中,像素的残差值等价于该像素的残差系数;在另一个示例中,像素的残差系数可以是该像素的残差值经一定处理得到的。
3)、量化和反量化
在图像编码过程中,为实现对图像的压缩,通常会对待编码块的残差块进行量化,或者对该残差块经一定处理后得到的残差系数块进行量化,从而使得量化后的残差块或残差系数块可以以更少的比特进行编码。可以理解,残差块为基于待编码块的原始像素块和预测块得到的残差值块,残差系数块为对残差块进行一定处理变换后得到的系数块。
作为示例,以编码装置对残差块进行量化为例,编码装置可以为待编码块的残差块中的每个残差值除以量化系数,以缩小该残差块中的残差值。这样,相比未进行量化的残差值,量化后被缩小的残差值即可通过更少的比特来编码,这样即实现了图像的压缩编码。
相应的,为从压缩编码后的码流中重建图像块,解码装置可以对从码流中解析到的残差块或残差系数块进行反量化,从而可以重建图像块对应的未被量化的残差块或残差系数块,进而,解码装置根据重建的残差块或残差系数块对图像块进行重建,从而得到图像的重建块。
作为示例,以解码装置从码流中解析到待解码块经量化后的残差块为例,编码装置可以对该残差块进行反量化。具体的,编码装置可以为解析到的残差块中的每个残差值乘以量化系数,以重建待解码块对应的未被量化的残差块中的残差值,从而得到重建的残差块。其中,量化系数为编码装置在编码待解码块时,对待解码块的残差块进行量化时的量化系数。这样,解码装置基于反量化后重建的残差块,即可实现对待解码块的重建,并得到待解码块的重建块。
4)、其他术语
本申请实施例中的术语“至少一个(种)”包括一个(种)或多个(种)。“多个(种)”是指两个(种)或两个(种)以上。例如,A、B和C中的至少一种,包括:单独存在A、单独存在B、同时存在A和B、同时存在A和C、同时存在B和C,以及同时存在A、B和C。在本申请的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。“多个”是指两个或多于两个。另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
下面描述本申请实施例所应用的系统架构。
参见图1,图1示出了本申请实施例所应用的编解码系统10的架构示意图。如图1所示,编解码系统10可以包括源设备11和目的设备12。其中,源设备11用于对图像进行编码,因此,源设备11可被称为图像编码装置或视频编码装置。目的设备12用于对由源设备11所产生的经编码的图像数据进行解码,因此,目的设备12可被称为图像解码装置或视频解码装置。
源设备10和目的设备12的具体形态可以为各种装置,本申请实施例对比不作限定。例如时源设备10和目的设备12可以为桌上型计算机、移动计算装置、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话等电话手持机、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机或其他类似设备等。
可选地,图1中的源设备11和目的设备12可以是两个单独的设备。或者,源设备11和目的设备12为同一设备,即源设备11或对应的功能以及目的设备12或对应的功能可以集成在同一个设备上。
源设备11和目的设备12之间可以进行通信。例如,目的设备12可从源设备11接收经编码的图像数据。在一个示例中,源设备11和目的设备12之间可以包括一个或多个通信媒体,该一个或多个通信媒体用于传输经编码的图像数据。该一个或多个通信媒体可以包含路由器、交换器、基站或促进从源设备11到目的设备12的通信的其它设备,本申请实施例对此不作限定。
如图1所示,源设备11包括编码器112。可选地,源设备11还可以包括图像预处理器111以及通信接口113。其中,图像预处理器111,用于对接收到的待编码图像执行预处理,例如,图像预处理器111执行的预处理可以包括整修、色彩格式转换(例如,从RGB格式转换为YUV格式)、调色或去噪等。编码器112,用于接收经图像预处理器111预处理的图像,采用相关预测模式对预处理后的图像进行处理,从而提供经编码的图像数据。在一些实施例中,编码器112可以用于执行下文中所描述的各个实施例中的编码过程。通信接口113,可用于将经编码的图像数据传输至目的设备12或任何其它设备(如存储器),以用于存储或直接重构,其它设备可为任何用于解码或存储的设备。通信接口113也可以将经编码的图像数据封装成合适的格式之后再传输。
可选地,上述图像预处理器111、编码器112以及通信接口113可能是源设备11中的硬件部件,也可能是源设备11中的软件程序,本申请实施例不做限定。
目的设备12包括解码器122。可选地,目的设备12还可以包括通信接口121、图像后处理器123。其中,通信接口121可用于从源设备11或任何其它源设备接收经编码的图像数据,该任何其它源设备例如为存储设备。通信接口121还可以解封装通信接口113所传输的数据以获取经编码的图像数据。解码器122,用于接收经的编码图像数据并输出经解码的图像数据(也称为经重构图像数据或已重构图像数据)。在一些实施例中,解码器122可以用于执行下文中所描述的各个实施例所述的解码过程。图像后处理器123,用于对经解码的图像数据执行后处理,以获得经后处理图像数据。图像后处理器123执行的后处理可以包括:色彩格式转换(例如,从YUV格式转换为RGB格式)、调色、整修或重采样,或任何其它处理,图像后处理器123还可用于将经后处理的图像数据传输至显示设备进行显示。
可选地,上述通信接口121、解码器122以及图像后处理器123可能是目的设备12中的硬件部件,也可能是目的设备12中的软件程序,本申请实施例不做限定。
下面对图1中的编码器112和解码器122的结构进行简单介绍。
参见图2,图2示出用于实现本申请实施例方法的编码器112的实例的示意性框图。如图2所示,编码器112包括预测处理单元201、残差计算单元202、残差变换单元203、量化单元204、编码单元205、反量化单元(也可以称为逆量化单元)206、残差逆变换单元207、重构单元(或者称为重建单元)208以及滤波器单元209。可选地,编码器20还可以包括缓冲器、经解码图像缓冲器。其中,缓冲器用于缓存重构单元208输出的重构块(或成为重建块),经解码图像缓冲器用于缓存滤波器单元209输出的滤波后的图像块。
在一个示例中,编码器112的输入为待编码图像的图像块(即待编码块或编码单元。在另一个示例中,编码器112的输入为待编码图像,编码器20中可以包括分割单元(图2中未示出),该分割单元用于将待编码图像分割成多个图像块。编码器112用于逐块编码从而完成对待编码图像的编码。例如,编码器112对每个图像块执行编码过程,从而完成对待编码图像的编码。
在一个示例中,一种将待编码图像划分成多个图像块的方法可以包括:
步骤1:将一帧图像分成一个或多个互相不重叠的并行编码单元,各个并行编码单元间无依赖关系,可并行/独立编解码。
步骤2:对于每个并行编码单元,编码端可将其分成一个或多个互相不重叠的独立编码单元,各个独立编码单元间可相互不依赖,但可以共用该并行编码单元的一些头信息。
步骤3:对于每个独立编码单元,编码端可再将其分成一个或多个互相不重叠的编码单元。其中,若将独立编码单元划分成多个互相不重叠的编码单元,则划分方式可以为水平等分法、垂直等分法或水平垂直等分法。当然具体实现时不现于此。独立编码单元内的各个编码单元可相互依赖,即在执行预测步骤的过程中可以相互参考。
编码单元的宽为w_cu,高为h_cu,可选的,其宽大于高(除非是边缘区域)。通常的,编码单元可为固定的w_cu×h_cu,w_cu和h_cu均为2个N次方(N大于等于0),如16×4,8×4,16×2,8×2,4×2,8×1,4×1等。
编码单元即可以是包括亮度Y、色度Cb、色度Cr三个分量(或红R、绿G、蓝B三分量),也可以仅包含其中的某一个分量。若包含三个分量,几个分量的尺寸可以完全一样,也可以不一样,具体与图像输入格式相关。
如图3所示,为一种图像、并行编码单元、独立编码单元和编码单元之间的对应关系的示意图。其中,图3中是以按照3:1将一个图像划分为并行编码单元1和并行编码单元2,以及一个独立编码单元包含4个编码单元为例进行说明的。
预测处理单元201,用于接收或获取待编码块的真实值和已重构图像数据,基于已重构图像数据中的相关数据对待编码块进行预测,得到待编码块的预测块。
残差计算单元202用于计算待编码块的真实值和待编码块的预测块之间的残差值,得到残差块。例如,通过逐像素将待编码块的真实像素值减去预测块的像素值。
在一个示例中,残差变换单元203用于基于残差块确定残差系数。可选的,在该过程中,可以包括:对残差块进行例如离散余弦变换(discrete cosine transform,DCT)或离散正弦变换(discrete sine transform,DST)的变换,以在变换域中获取变换系数,变换系数也可以称为变换残差系数或残差系数,该残差系数可以在变换域中表示残差块。当然,编码器112在对待编码块进行编码的过程中也可以不包含残差变换的步骤。
量化单元204用于通过应用标量量化或向量量化来量化变换系数或残差值,以获取经量化残差系数(或经量化残差值)。量化过程可以减少与部分或全部残差系数有关的位深度(bitdepth)。例如,可在量化期间将p位变换系数向下舍入到q位变换系数,其中p大于q。可通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以应用不同的标度来实现较细或较粗的量化。较小量化步长对应较细量化,而较大量化步长对应较粗量化。可以通过QP指示合适的量化步长。
编码单元205用于对上述经量化残差系数(或经量化残差值)进行编码,以经编码比特流(或称为码流)的形式输出的经编码的图像数据(即当前待编码块的编码结果),然后可以将经编码比特流传输到解码器,或将其存储起来,后续传输至解码器或用于检索。编码单元205还可用于对待编码块的语法元素进行编码,例如将待编码块采用的预测模式编码至码流等。
在一个示例中,编码单元205对残差系数编码,一种可行方法为:半定长编码方式。首先将一个残差小块(residual block,RB)内残差绝对值的最大值定义为modifiedmaximum(mm)。确定该RB内残差系数的编码比特数(同一个RB内残差系数的编码比特数一致)。例如,若当前RB的CL为2,当前残差系数为1,则编码残差系数1需要2个比特,表示为01。若前RB的CL为7,则表示编码8-bit的残差系数和1-bit的符号位。CL的确定是去找满足当前子块所有残差都在[-2^(M-1),2^(M-1)]范围之内的最小M值。若同时存在-2^(M-1)和2^(M-1)两个边界值,则M应增加1,即需要M+1个比特编码当前RB的所有残差;若仅存在-2^(M-1)和2^(M-1)两个边界值中的一个,则需要编码一个Trailing位来确定该边界值是-2^(M-1)还是2^(M-1);若所有残差均不存在-2^(M-1)和2^(M-1)中的任何一个,则无需编码该Trailing位。
当然,也可以采用其他残差系数编码方法,如指数Golomb编码方法,Golomb-Rice编码方法,截断一元码编码方法,游程编码方法,直接编码原始残差值等。
另外,对于某些特殊的情况,也可以直接编码原始值,而不是残差值。
反量化单元206用于对上述经量化残差系数(或经量化残差值)进行反量化,以获取经反量化残差系数(经反量化残差值),该反量化是上述量化单元204的反向应用,例如,基于或使用与量化单元204相同的量化步长,应用量化单元204应用的量化方案的逆量化方案。
残差逆变换单元207用于对上述反量化残差系数逆变换(或反变换),以得到重建的残差块。可选的,反变换可以包括逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discrete sine transform,DST)。这样,对上述反量化残差系数逆变换(或反变换)后得到的逆变换值,即为在像素域(或者称为样本域)中重建的残差值。也即,经反量化的残差系数块在经残差逆变换单元207逆变换后,得到的块为重建的残差块。当然,在编码器112中不包括上述的残差变化单元203时,编码器112也可以不包含反变换的步骤。
重构单元208用于重建的残差块添加至预测块,以在样本域中获取经重构块,重构单元208可以为求和器。例如,重构单元208将重建的残差块中的残差值与预测块中对应像素的预测值相加,以得到对应像素的重建值。该重构单元208输出的重构块可以后续用于预测其他待编码的图像块。
滤波器单元209(或简称“滤波器”)用于对经重构块进行滤波以获取经滤波块,从而顺利进行像素转变或提高图像质量。
在一个示例中,一种编码过程如图4所示。具体的,编码器判断是否采用逐点预测模式,若是,则基于逐点预测模式进行预测,并执行反量化和重建步骤,从而实现编码过程;若否,则判断是否采用原始值模式。若是,则采用原始值模式编码;若否,则确定采用其他预测模式如帧内预测或块复制模式进行预测。后续,在确定执行残差跳过时,直接执行重建步骤;在确定不执行残差跳过时,先执行反量化步骤,并判断是否采用块复制预测模式。若确定采用块复制预测模式,则一种情况下,在确定执行变换跳过时,直接执行重建步骤,在另一种情况下,在确定没有执行变换跳过时,通过执行反变换和重建步骤,实现编码过程。若确定不采用块复制模式(该情况下,所采用的一种预测模式为帧内预测模式)时,执行反变换步骤和重建步骤,从而实现编码过程。
具体的,在本申请实施例中,编码器112用于实现后文实施例中描述的编码方法。
在一个示例中,编码器112实现的一种编码过程可以包括以下步骤:
步骤11:预测处理单元201确定预测模式,并基于确定的预测模式和已编码图像块的重构块对待编码块进行预测,得到待编码块的预测块。
其中,已编码图像块的重构块是反量化单元206、残差逆变换单元207以及重构单元208依次对该已编码图像块的经量化残差系数块处理后得到的。
步骤12:残差计算单元202基于预测块和待编码块的原始像素值,得到待编码块的残差块;
步骤13:残差变换单元203对残差块进行变换,得到残差系数块。
步骤14:量化单元204对残差系数块进行量化,得到经量化残差系数块。
步骤15:编码单元205对经量化残差系数块进行编码,以及对相关语法元素(例如预测模式,编码模式)进行编码,得到待编码块的码流。
参见图5,图5示出用于实现本申请实施例方法的解码器122的实例的示意性框图。解码器122用于接收例如由编码器112编码的图像数据(即经编码比特流,例如,包括图像块的经编码比特流及相关联的语法元素),以获取经解码图像块。
如图5所示,解码器122包括码流解析单元301、反量化单元302、残差逆变换单元303、预测处理单元304、重构单元305、滤波器单元306。在一些实例中,解码器122可执行大体上与图2的编码器112描述的编码过程互逆的解码过程。可选地,解码器122还可以包括缓冲器、经滤波图像缓冲器,其中,缓冲器用于缓存重构单元305输出的重构图像块,经滤波图像缓冲器用于缓存滤波器单元306输出的滤波后的图像块。
码流解析单元301用于对经编码比特流执行解码,以获取经量化残差系数(或经量化残差值)和/或解码参数(例如,解码参数可以包括编码侧执行的帧间预测参数、帧内预测参数、滤波器参数和/或其它语法元素中的任意一个或全部)。码流解析单元301还用于将上述解码参数转发至预测处理单元304,以供预测处理单元304根据解码参数执行预测过程。
反量化单元302的功能可与编码器112的反量化单元206的功能相同,用于反量化(即逆量化)经码流解析单元301解码输出的经量化残差系数。
残差逆变换单元303的功能可与编码器112的残差逆变换单元207的功能相同,用于对上述经反量化残差系数进行逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程),得到重建的残差值。逆变换得到块即为重建的待解码块在像素域中的残差块。
重构单元305(例如求和器)的功能可与编码器112的重构单元208的功能相同。
预测处理单元304,用于接收或获取经编码图像数据(例如当前图像块的经编码比特流)和已重构图像数据,预测处理单元304还可以从例如码流解析单元302接收或获取预测模式的相关参数和/或关于所选择的预测模式的信息(即上述的解码参数),并且基于已重构图像数据中的相关数据和解码参数对当前图像块进行预测,得到当前图像块的预测块。
重构单元305用于将重建的残差块添加到预测块,以在样本域中获取待解码图像的重构块,例如将重建的残差块中的残差值与预测块中的预测值相加。
滤波器单元306用于对经重构块进行滤波以获取经滤波块,该经滤波块即为经解码图像块。
具体的,在本申请实施例中,解码器122用于实现后文实施例中描述的解码方法。
应当理解的是,在本申请实施例的编码器112和解码器122中,针对某个环节的处理结果也可以经过进一步处理后,输出到下一个环节,例如,在插值滤波、运动矢量推导或滤波等环节之后,对相应环节的处理结果进一步进行Clip或移位shift等操作。
在一个示例中,解码器122实现的一种解码过程可以包括以下步骤:
步骤21:码流解析单元301解析预测模式和残差编码模式;
步骤22:码流解析单元301基于预测模式和残差编码模式解析量化相关值(如near值,或QP值等);
步骤23:反量化单元302基于预测模式和量化相关值解析残差系数;
步骤24:预测处理单元304基于预测模式,获得当前图像块各个像素的预测值;
步骤25:残差值解码单元303对残差系数逆变换,以重建当前图像块各个像素的残差值;
步骤26:重构单元305基于当前编码单元各个像素的预测值和残差值,获得其重建值。
以下,结合附图,本申请实施例提供了如下图像编解码方法进行说明。
需要说明的是,本申请任一实施例中的编码端可以是上述图1或图2中的编码器112,也可以是上述图1中的源设备11。本申请任一实施例中的解码端可以上述图1或图5中的解码器122,也可以是上述图1中的目的设备12,本申请实施例对此不作限定。
参考图6a,图6a示出了本申请实施例提供的一种图像编码方法的流程示意图,该方法可以包括如下步骤:
S11、编码端确定待编码块的目标预测模式,以及确定与目标预测模式对应的目标预测顺序。
其中,S11的详细说明可以参考下文S101的描述,不再赘述。
S12、编码端按照上述的目标预测模式,以上述目标预测顺序预测待编码块中的每个像素。
其中,S12的详细说明可以参考下文S102的描述,不再赘述。
S13、编码端基于待编码块中每个像素的预测值确定待编码块的残差块。
其中,S13的详细说明可以参考下文S103的描述,不再赘述。
S14(可选的)、编码端对待编码块的残差块进行变换处理,得到经变换的残差系数块。
S15、编码端对上述残差系数块进行量化处理,得到经量化的残差系数块。
可以理解,当编码端未执行S14时,编码端可以直接对上述残差块进行量化处理,从而得到经量化的残差块。
其中,编码端对残差块或残差系数块进行量化处理的详细说明,可以参考下文S301-S302中对残差块进行量化的详细描述,不再赘述。
S16、编码端编码上述经量化的残差系数块,得到待编码块的码流。
可以理解,当编码端未执行S14时,编码端编码上述经量化的残差块,从而得到待编码块的码流。
其中,编码端编码经量化的残差系数块(或残差块)的过程,可以参考下文S502的详细描述,不再赘述。
需要说明,编码端编码残差系数块的残差扫描顺序,可以和S11中的目标预测顺序相同。这样的话,在解码侧,解码端可以以目标预测顺序预测待解码块中像素的预测值,同时以与该目标预测顺序相同的残差扫描顺序解码待解码块的残差块,进而能够高效的得到待解码块的重建块。
在S11-S16所述的图像编码方法中,编码端采用的用于预测待编码块中像素的目标预测模式具有较高的预测效率,编码端采用的用于量化残差块或残差系数块的量化方法能能够减少编码端的乘法运算,即提高了量化效率,并且,编码端所采用的编码方法能够减少用于编码残差块或残差系数块的比特数,因此,通过本申请实施例提供的方法,能够大大提高编码端的编码效率。
参考图6b,图6b示出了本申请实施例提供的一种图像解码方法的流程示意图,该方法可以包括如下步骤:
S21、解码端解析待解码块的码流,以确定预测待解码块中像素的目标预测模式。
其中,S21的详细说明可以参考下文S201的描述,不再赘述。
S22、解码端基于目标预测模式,确定与目标预测模式对应的目标预测顺序。
其中,S22的详细说明可以参考下文S202的描述,不再赘述。
S23、解码端按照目标预测模式,以目标预测顺序预测待解码块中的每个像素,得到该每个像素的预测值。
S24、解码端采用可变码长的解码方式解析待解码块的码流,得到待解码块对应的残差块中每个值的CL,以及基于该CL、并按照上述残差扫描顺序解析待解码块的码流,得到待解码块的第一残差块。
其中,残差扫描顺序和上述的目标预测顺序可以相同。当相同时,即解码端以目标预测顺序预测待解码块中的像素时,解码端还按照与该目标预测顺序相同的残差扫描顺序从待解码块的码流中解析得到待解码块的第一残差块。这样可以提高解码端的解码效率。
其中,解码端采用可变码长的解码方式解析待解码块的码流,得到待解码块对应的残差块中每个值的CL的过程,可以参考下文S601的描述。解码端基于CL确定第一残差块的说明,可以参考S602的描述,不再赘述。
S25、解码端通过解析待解码块的码流得到待解码块中每个像素的反量化参数。
其中,反量化参数的详细说明可以参考下文S401中的描述,不再赘述。
S26、解码端基于待解码块中每个像素的反量化参数所指示的QP和反量化预设数组,对第一残差块进行反量化,得到第二残差块。
其中,S26的详细说明可以参考下文S402的描述,不再赘述。
需要说明,本申请实施例对S23和S24-S26的执行顺序不作限定,例如可以同时执行S23和S24-S26。
S27(可选的)、解码端对第二残差块进行反变换处理,以得到经反变换的第二残差块。
应理解,当图像编码过程包括上述的S14时,则解码端执行S27。
S28、解码端基于经反变换的第二残差块和待解码块中每个像素的预测值,对待解码块进行重建,得到重建块。
可以理解,当解码端未执行S27时,则解码端直接基于第二残差块和待解码块中每个像素的预测值,对待解码块进行重建,得到重建块。
需要说明,S21-S27的图像解码方法与S11-S16的图像编码方法对应。在S21-S26所述的图像解码方法,解码端采用的用于预测待解码块中像素的目标预测模式具有较高的预测效率,解码端采用的用于反量化残差块或残差系数块的反量化方法能能够减少解码端的乘法运算,即提高了反量化效率,并且,解码端所采用的解码方法能够减少用于编码残差块或残差系数块的比特数,因此,通过本申请实施例提供的方法,能够大大提高解码端的解码效率。
实施例一
如图6c所示,为本实施例提供的另一种图像编码方法的流程示意图。图6c所示的方法包括如下步骤:
S101、编码端确定待编码块的目标预测模式,以及确定与目标预测模式对应的目标预测顺序。
具体的,编码端可以通过采用不同的预测模式分别对待编码块进行预测,并基于不同预测模式预测待编码块后的编码性能,确定目标预测模式。
例如,编码端可以通过采用不同的预测模式分别对待编码块进行预测,并在基于不同预测模式预测得到预测块后,编码端执行上文描述的步骤12-步骤15以得到不同预测模式下的待编码块的码流。编码端通过确定在不同预测模式下得到待编码块的码流的时间,并将用时最短的预测模式确定为目标预测模式。换句话说,编码端将编码效率最高的预测模式确定为目标预测模式。
除现有的预测模式,本申请实施例还提供了多种预测模式。在本申请实施例提供的预测模式中,编码端可以通过预设顺序依次预测待编码块中的像素。编码端通过预设顺序依次预测待编码块中的像素,是指编码端以预设轨迹依次预测待编码块中的像素。在这一过程中,编码端预测待编码块中的任一个像素时,用于预测该任一像素的像素均已完成重建。其中,本申请实施例所提供的预测模式的详细说明可以参考下文,这里不作赘述。
当编码端基于不同预测模式预测待编码块后的编码性能,确定目标预测模式后,即可确定以目标预测模式预测待编码块中像素时的目标预测顺序。
S102、编码端按照上述的目标预测模式,以上述目标预测顺序预测待编码块中的每个像素。
可选的,目标预测模式可以用于指示以目标预测顺序逐点预测编码块中的每个像素。例如,当目标预测模式是下文所述的第一种-第五种预测模式时,目标预测顺序即用于指示以目标预测顺序指示的轨迹方向逐点预测编码块中的每个像素。
这种情况下,编码端即按照目标预测顺序指示的轨迹方向,沿该方向依次逐点预测待编码块中的每个像素,以得到每个像素的预测值。
可选的,目标预测模式还可以用于指示以待编码块中具有预设大小的子块为单位依次预测待编码块中每个子块的像素。例如,当目标预测模式是下文所述的第六种预测模式时,目标预测模式即用于指示以待编码块中具有预设大小的子块为单位,依次预测待编码块中每个子块的像素。
这种情况下,目标预测模式包括待编码块中每个子块的预测模式。这样,编码端即可按照目标预测模式,沿目标预测顺序指示的方向依次预测待编码块中每个子块的像素。并且,在编码端对待编码块的一个子块进行预测时,编码端可以并行的基于该子块周围已重建的像素对该子块内的每个像素进行预测。
S103、编码端基于待编码块中每个像素的预测值确定待编码块的残差块。
编码端可以根据待编码块中每个像素的预测值和待编码块的原始像素值,确定待编码块的残差块。
例如,编码端可以通过图2所示的残差计算单元202,对待编码块中每个像素的预测值和待编码块的原始像素值做差值运算,从而得到待编码块的残差块。
S104、编码端以残差扫描顺序编码上述残差块,以得到待编码块的码流。
其中,残差扫描顺序和上述的目标预测模式对应。可选的,残差扫描顺序可以和上述的目标预测顺序可以相同。
例如,当待编码块是16×2大小的图像块时,如果目标预测模式是下文表1所示的预测模式,则残差扫描顺序可以是图7a所示预设轨迹指示的顺序。如果目标预测模式是下文表2所示的预测模式,则残差扫描顺序可以是图7b所示示预设轨迹指示的顺序。如果目标预测模式是下文表3-1所示的预测模式,则残差扫描顺序可以是图7c-1所示示预设轨迹指示的顺序。如果目标预测模式是下文表4-1所示的预测模式,则残差扫描顺序可以是图7d-1所示示预设轨迹指示的顺序。
再例如,当待编码块是8×2大小的图像块时,如果目标预测模式是下文表3-2所示的预测模式,则残差扫描顺序可以是图7c-2所示预设轨迹指示的顺序。如果目标预测模式是下文表4-2所示的预测模式,则残差扫描顺序可以是图7d-2所示预设轨迹指示的顺序。
又例如,当待编码块是8×1大小的图像块时,如果目标预测模式是下文表4-3所示的预测模式,则残差扫描顺序可以是图7d-3所示预设轨迹指示的顺序。如果目标预测模式是下文表5所示的预测模式,则残差扫描顺序可以是图7e所示预设轨迹指示的顺序。
又例如,当待编码块是16×2大小的图像块时,如果目标预测模式是图7f所示的预测模式,则残差扫描顺序可以是图7g所示预设轨迹指示的顺序。
可选的,编码端可以先对待编码块的残差块进行变换处理,得到待编码块的残差系数块。编码端还可以对该残差系数块进行量化,得到量化后的残差系数块。然后,编码端以上述的目标预测顺序对量化后的残差系数块进行编码,从而得到待编码块经编码后的码流。
例如,编码端可以先通过图2所示的残差变换单元203对待编码块的残差块进行变换处理,得到待编码块的残差系数块。编码端还可以通过图2所示的量化单元204对该残差系数块进行量化,得到量化后的残差系数块。然后,编码端通过图2所示的编码单元205以上述的目标预测顺序,对量化后的残差系数块进行编码,从而得到待编码块经编码的码流。
可选的,编码端可以直接对待编码块的残差块进行量化处理,得到量化后的残差块。然后,编码端以上述的目标预测顺序对量化后的残差块进行编码,从而得到待编码块经编码的码流。
例如,编码端可以直接通过图2所示的量化单元204对待编码块的残差块进行量化处理,得到量化后的残差块。然后,编码端通过图2所示的编码单元205以上述的目标预测顺序,对量化后的残差块进行编码,从而得到待编码块经编码的码流。
可选的,编码端还对上述的目标预测模式作为待编码块的语义元素,或者将上述的目标预测模式和对应的目标预测顺序作为待编码块的语义元素,并对该语义元素进行编码。编码端还可以将编码后的语义元素数据添加至待编码块经编码的码流中。
需要说明,本实施例对待编码块的残差块或残差系数块进行量化的方式不作具体限定,例如可以采用下述实施例二方案中描述的量化方式对待编码块的残差块或残差系数块进行量化,当然不限于此。
还需要说明,本实施例对编码端编码量化后的残差块或残差系数、以及编码相关的语义元素的具体编码方式不作具体限定,例如可以采用下述实施例三中描述的可变长的编码方式进行编码,当然不限于此。
下面对本实施例提供的预测模式进行详细说明。需要预先说明的是,在对一个待编码块进行预测的预测模式中,可以包括上文所述的T预测方式、TB预测方式、L预测方式以及RL预测方式至少一种预测方式。其中,待编码块中的一个像素可以通过T预测方式、TB预测方式、L预测方式或RL预测方式种的任一种预测方式进行预测。
需要说明的是,下述的任一种预测模式可以应用于编码端对图像编码的流程中,也可以应用于解码端对图像数据进行解码的流程中,本申请实施例对此不作限定。
在第一种预测模式中,以待编码块的大小为16×2为例,如表1所示,表1示出了一种对大小为16×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7a所示的预设轨迹指示的顺序。也就是说,编码端以图7a所示的预设轨迹依次逐个预测待编码块中的像素时,会以表1所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。
表1
T | RL | T | RL | T | RL | T | RL | T | RL | T | RL | T | RL | T | L |
T | RL | T | RL | T | RL | T | RL | T | RL | T | RL | T | RL | T | L |
可以理解,表1中的每一格显示的预测方式,用于预测图7a所示待编码块中对应位置像素的预测值。例如表1中的第1行第1格显示的T预测方式,用于预测图7a所示待编码块中位于第1行第1格的像素1-1的预测值。再例如,表1中的第1行第2格显示的RL预测方式,用于预测图7a所示待编码块中位于第1行第2格的像素1-2的预测值。又例如,表1中的第2行第1格显示的T预测方式,用于预测图7a所示待编码块中位于第2行第1格的像素2-1的预测值。又例如,表1中的第2行第15格显示的T预测方式,用于预测图7a所示待编码块中位于第2行第15格的像素1-15的预测值。
还应理解,图7a所示的两个大小为16×2的块表示待编码图像中的同一个图像块(如待编码块)。图7a中通过两个块表征待编码块,仅为了清楚的展示编码端对待编码块中的像素依次进行预测时的预设轨迹,该预设轨迹即为图7a中带箭头的黑色实线所示的轨迹。其中,原点为该预设轨迹的起点,黑色虚线两端的像素点为预设轨迹上相邻的两个像素点。
这样,示例性的,在编码端按照图7a所示的预设轨迹对待编码块进行预测时,编码端首先对图7a所示的像素1-1以表1所示的T预测方式进行预测。即,像素1-1的预测值=PT1-1,PT1-1为像素1-1上侧像素(例如待编码块上侧图像块中的像素。应理解,待编码块的上侧图像块和左侧图像块通常早于待编码块被执行编码流程,因此待编码块的上侧图像块和左侧图像块中的像素值已完成重建)的重建值。应理解,编码端得到像素1-1的预测值后,即可基于像素1-1的预测值确定像素1-1的重建值(例如在编码端得到像素1-1的预测值后,通过执行上文所述的步骤12-步骤14,并通过执行反量化和反变换重建像素的残差值,进而基于预测值和重建的残差值得到像素1-1的重建值)。
又示例性的,按照图7a所示的预设轨迹,编码端对像素1-1完成预测后,对图7a所示的像素2-1以表1所示的T预测方式对其进行预测。即,像素2-1的预测值=PT2-1,PT2-1为像素2-1上侧像素(例如已完成重建的像素1-1)的重建值。
再示例性的,按照图7a所示的预设轨迹,编码端对像素2-15完成预测后,对图7a所示的像素1-2以表1所示的RL预测方式进行预测。即,像素1-2的预测值=(PR1-2+PL1-2+1)>>1,其中,(PR1-2+PL1-2+1)>>1表示对(PR1-2+PL1-2+1)的二进制值右移1位后得到的值,数学上的效果相当于(PR1-2+PL1-2+1)除以21的值。PR1-2为像素1-2右侧像素(例如已完成重建的像素1-3,这是由于像素1-3的预测顺序在像素1-2之前)的重建值,PL1-2为像素1-2左侧像素(例如已完成重建的像素1-1)的重建值。
在第二种预测模式中,以待编码块的大小为16×2为例,如表2所示,表2示出了另一种对大小为16×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7b所示的预设轨迹指示的顺序。也就是说,编码端以图7b所示的预设轨迹依次逐个预测待编码块中的像素时,会以表2所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表2所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7b中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表2
TB | TB | TB | TB | T | TB | TB | TB | T | TB | TB | TB | T | TB | TB | TB |
L | L | L | L | T | L | L | L | T | L | L | L | T | L | L | L |
这样,示例性的,在编码端按照图7b所示的预设轨迹对待编码块进行预测时,编码端首先对图7b所示的像素2-1以表2所示的L预测方式进行预测。即,像素2-1的预测值=PL2-1,PL2-1为像素2-1左侧像素(例如待编码块左侧图像块中的像素)的重建值。
再示例性的,按照图7a所示的预设轨迹,编码端对像素2-16完成预测后,对图7a所示的像素1-1以表2所示的TB预测方式进行预测。即,像素1-1的预测值=(PT1-1+PB1-1+1)>>1。PT1-1为像素1-1上侧像素(例如待编码块上侧图像块中的像素)的重建值,PB1-1为像素1-1下侧像素(例如已完成重建的像素2-1,这是由于像素2-1的预测顺序在像素1-1之前)的重建值。
在第三种预测模式中,以待编码块的大小为16×2为例,如表3-1所示,表3-1示出了又一种对大小为16×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7c-1所示的预设轨迹指示的顺序。也就是说,编码端以图7c-1所示的预设轨迹依次逐个预测待编码块中的像素时,会以表3-1所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表3-1所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7c-1中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表3-1
L | L | L | L | T | L | L | L | T | L | L | L | T | L | L | L |
L | L | L | L | T | L | L | L | T | L | L | L | T | L | L | L |
在第三种预测模式中,以待编码块的大小为8×2为例,如表3-2所示,表3-2示出了一种对大小为8×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7c-2所示的预设轨迹指示的顺序。也就是说,编码端以图7c-2所示的预设轨迹依次逐个预测待编码块中的像素时,会以表3-2所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表3-2所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7c-2中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表3-2
L | L | L | L | T | L | L | L |
L | L | L | L | T | L | L | L |
在第四种预测模式中,以待编码块的大小为16×2为例,如表4-1所示,表4-1示出了又一种对大小为16×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7d-1所示的预设轨迹指示的顺序。也就是说,编码端以图7d-1所示的预设轨迹依次逐个预测待编码块中的像素时,会以表4-1所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表4-1所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7d-1中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表4-1
T | T | T | T | T | T | T | T | T | T | T | T | T | T | T | T |
T | T | T | T | T | T | T | T | T | T | T | T | T | T | T | T |
在第四种预测模式中,以待编码块的大小为8×2为例,如表4-2所示,表4-2示出了另一种对大小为8×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7d-2所示的预设轨迹指示的顺序。也就是说,编码端以图7d-2所示的预设轨迹依次逐个预测待编码块中的像素时,会以表4-2所示的预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表4-2所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7d-2中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表4-2
T | T | T | T | T | T | T | T |
T | T | T | T | T | T | T | T |
在第四种预测模式中,以待编码块的大小为8×1为例,如表4-3所示,表4-3示出了又一种对大小为8×2的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7d-3所示的预设轨迹指示的顺序。也就是说,编码端以图7d-3所示的预设轨迹依次逐个预测待编码块中的像素时,会以表4-3所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表4-3所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7d-3中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表4-3
T | T | T | T | T | T | T | T |
在第五种预测模式中,以待编码块的大小为8×1为例,如表5所示,表5示出了一种对大小为8×1的编码块中每个像素进行预测的预测模式。在该预测模式下,编码端预测待编码块中像素的预测顺序可以是以图7e所示的预设轨迹指示的顺序。也就是说,编码端以图7e所示的预设轨迹依次逐个预测待编码块中的像素时,会以表5所示预测模式中的具体预测方式对待编码块中的每个像素进行预测。其中,以表5所示预测方式预测待编码块中每个像素的详细说明,可以参考上文中对以表1所示预测方式预测待编码块中每个像素的相关描述,图7e中显示的预设轨迹的说明也可以参考图7a中对预设轨迹的描述,不再赘述。
表5
L | L | L | T | L | L | L | L |
可以看出,上述的每种预测模式对应不同的预测顺序。例如当预测模式为第一预测模式时,预测顺序为第一预测顺序,当预测模式为第二预测模式时,预测顺序为第二预测顺序,其中,第一预测顺序和第二预测顺序不同。
还可以看出,在相同的预测模式下,当待编码块的尺寸大小不同时,对应的预测顺序也是不同的。例如,对于尺寸为第一尺寸的待解码块,在预测模式1下采用第三预测顺序对待解码块进行预测,对于尺寸为第二尺寸的待解码块,在预测模式1下采用第四预测顺序对待解码块进行预测,其中,第三预测顺序和第四预测顺序不同。
在第六种预测模式中,该预测模式用于指示编码端以待编码块中具有预设大小的子块为单位,沿与该预测模式对应的预测顺序所指示的方法依次对待编码中的每个子块依次进行预测。并且,在该预测模式下,编码端在对待编码块的任一个子块进行预测时,可以并行基于该任一个子块周围已重建的像素对该任一个子块内的像素进行预测。
在这种预测模式下,编码端可以将待编码块划分为具有预设大小的多个不重合的子块,并将划分得到的子块的排列方向作为该预测模式对应的预测顺序所指示的方向。
作为示例,参考图7f,图7f示出了本申请实施例提供的一种待编码块中子块的示意图。
如图7f中的(a)所示,假设具有预设大小的子块为2×2大小的子块,则对于16×2的待编码块,待编码块可以划分如图7f中的(a)中黑色粗线框所示的8个不重合的2×2子块。并且,这8个子块的排列方向,即作为该预测模式对应的预测顺序所指示的方向,例如图7f中的(a)所示箭头指向的方向。
如图7f中的(b)所示,假设具有预设大小的子块为4×2大小的子块,则对于16×2的待编码块,待编码块可以划分如图7f中的(a)中黑色粗线框所示的4个不重合的4×2子块。并且,这4个子块的排列方向,即作为该预测模式对应的预测顺序所指示的方向,例如图7f中的(b)所示箭头指向的方向。
如图7f中的(c)所示,假设具有预设大小的子块为8×2大小的子块,则对于16×2的待编码块,待编码块可以划分如图7f中的(a)中黑色粗线框所示的2个不重合的8×2子块。并且,这2个子块的排列方向,即作为该预测模式对应的预测顺序所指示的方向,例如图7f中的(c)所示箭头指向的方向。
具体的,对于待编码块中的任一子块,第六种预测模式指示基于该任一子块的上侧(相邻或不相邻)、左侧(相邻或不相邻)以及斜上侧(相邻或不相邻)的像素的重建值对该任一子块内的像素进行预测。需要说明,在该预测模式下,一个子块内的一个像素不会依赖相同子块内的其他像素进行预测。为简单描述,本申请实施例以该预测模式指示基于该任一子块的上侧、左侧以及斜上侧相邻的像素的重建值对该任一子块内的像素进行预测。
以第六种预测模式用于指示以图7f中的(a)所示的子块为单位,沿与该预测模式对应的预测顺序所指示方法依次对待编码中的每个子块进行预测为例,如图7f中的(a)所示,假设上述任一个子块为子块a,且图7f中的(a)所示的灰色方格为子块a上侧、左侧以及斜上侧相邻的像素。以子块a中的像素分别为Y0、Y1、Y2以及Y3,子块a上侧的像素包括为T0和T1,子块a左侧的像素包括为L0和L1,子块a斜上侧的像素为LT为例:
则在一种可能的实现方式中,第六种预测模式具体可以指示:子块a中Y0的预测值基于T0、L0以及LT得到,子块a中Y1的预测值基于T1、L0以及LT得到,子块a中Y2的预测值基于T0、L1以及LT得到,子块a中Y3的预测值基于T1、L1以及LT得到。
可选的,第六种预测模式具体指示的预测方式1可以是:基于待编码块中任一子块内任一像素的上侧像素、左侧像素以及斜上方像素的水平梯度或垂直梯度,确定该任一像素的预测值。
参考图7f中的(a),以子块a中的像素Y0为例,当编码端确定Y0的上侧像素T0、左侧像素L0以及斜上侧像素LT的重建值满足条件1,则将Y0左侧像素L0的重建值确定为Y0预测值。其中,条件1用于表征Y0周围像素的水平梯度最小。条件1具体为:|T0重建值-LT重建值|≤|L0重建值-LT重建值|,且|T0重建值-LT重建值|≤|L 0重建值+T 0重建值-2*LT重建值|。当编码端确定Y0的上侧像素T0、左侧像素L0以及斜上侧像素LT的重建值满足条件2,则将Y0上侧像素T0的重建值确定为Y0预测值。其中,条件2用于表征Y0周围像素的垂直梯度最小。条件2具体为:|T0重建值-LT重建值|≤|L 0重建值+T 0重建值-2*LT重建值|。当编码端确定Y0的上侧像素T0、左侧像素L0以及斜上侧像素LT的重建值不满足上述条件1和条件2,则将Y0斜上侧像素LT的重建值确定为Y0预测值。
可选的,第六种预测模式具体指示的预测方式2可以是:基于待编码块中任一子块内任一像素的上侧像素、左侧像素以及斜上方像素的重建值的均值,确定该任一像素的预测值。
继续参考图7f中的(a),以子块a中的像素Y0为例,Y0的预测值可以是:(L0重建值+T0重建值+2*LT重建值)>>2。其中,(L0重建值+T0重建值+2*LT重建值)>>2表示对(L0重建值+T0重建值+2*LT重建值)的二进制值右移2位后得到的值。
另一种可能的实现方式,第六种预测模式具体可以指示:将位于待编码块中任一子块内任一像素预测方向的上侧像素、左侧像素或斜上方像素的重建值,确定为该任一像素的预测值。其中,预测方向可以是该任一像素的左斜向45度方向,或者是右斜向45度方向,本申请实施例对此不作限定。
以第六种预测模式用于指示以图7f中的(b)所示的子块为单位,沿与该预测模式对应的预测顺序依次对待编码中的每个子块进行预测为例,参考图7f中的(b),假设上述任一个子块为子块b,且图7f中的(b)所示的灰色方格为子块b上侧、左侧以及斜上侧相邻的像素。以子块b中的像素分别为Y0、Y1、Y2、Y3、Y4、Y5、Y6以及Y7,子块b上侧的像素包括为T0、T1、T2、T3、T4以及T5,子块b左侧的像素包括L0和L1,子块b斜上侧的像素为LT:
则当预测方向为待预测像素的左斜向45度方向时,第六种预测模式具体可以指示:将位于子块b中Y0左斜向45度方向上的LT的重建值确定为Y0的预测值,将位于子块b中Y1左斜向45度方向上的T0的重建值确定为Y1的预测值,将位于子块b中Y2左斜向45度方向上的T1的重建值确定为Y2的预测值,将位于子块b中Y3左斜向45度方向上的T2的重建值确定为Y3的预测值,将位于子块b中Y4左斜向45度方向上的L0的重建值确定为Y4的预测值,将位于子块b中Y5左斜向45度方向上的LT的重建值确定为Y5的预测值,将位于子块b中Y6左斜向45度方向上的T0的重建值确定为Y6的预测值,以及,将位于子块b中Y7左斜向45度方向上的T1的重建值确定为Y7的预测值。
当预测方向为待预测像素的右斜向45度方向时,第六种预测模式具体可以指示:将位于子块b中Y0右斜向45度方向上的T1的重建值确定为Y0的预测值,将位于子块b中Y1右斜向45度方向上的T2的重建值确定为Y1的预测值,将位于子块b中Y2右斜向45度方向上的T3的重建值确定为Y2的预测值,将位于子块b中Y3右斜向45度方向上的T4的重建值确定为Y3的预测值,将位于子块b中Y4右斜向45度方向上的T2的重建值确定为Y4的预测值,将位于子块b中Y5右斜向45度方向上的T3的重建值确定为Y5的预测值,将位于子块b中Y6右斜向45度方向上的T4的重建值确定为Y6的预测值,以及,将位于子块b中Y7右斜向45度方向上的T5的重建值确定为Y7的预测值。
需要说明,当编码端采用第六种预测模式对待编码块中的像素进行预测时,则在编码端对待编码块对应的残差块或残差系数块进行编码时,可以以图7g所示轨迹指示的顺序进行编码。
至此,基于上述S101-S104所述的编码方法,编码端在以目标预测模式对待编码块中的像素进行预测时,是以该目标预测模式对应的目标预测顺序对待编码块中的像素进行预测的。在这一过程中,编码端预测待编码块中的任一个像素时,用于预测该像素的像素均已完成重建。因此,本实施例提供的编码方法提高了预测待编码块中像素的效率,进而编码端在基于预测值和残差值重获得重建值时,编码端无需对残差值进行缓存,因此本实施例提供的编码方法不仅可以节约用于缓存残差值的缓存空间,还能提高编码效率。
此外,当目标预测模式指示以子块为单位依次对待编码块中的每个子块进行预测时,由于该预测模式下,编码端在对一个子块进行预测时,可以并行的基于该子块周围已重建的像素对该子块内的多个像素进行预测,即这种预测模式能够进一步提高编码端预测待编码块的效率。进而,当编码端在基于预测值和残差值重获得重建值时,编码端无需对残差值进行缓存,因此本实施例提供的编码方法进一步的节约了缓存空间,并提高编码效率。
如图8所示,为本实施例提供的另一种图像解码方法的流程示意图。图8所示的方法包括如下步骤:
S201、解码端解析待解码块的码流,以确定预测待解码块中像素的目标预测模式。
其中,待解码块的码流可以是解码端从编码端接收到的码流,或者是从其他设备获取的码流,例如从存储设备获取的码流,本申请实施例对此不作限定。
其中,目标预测模式用于对待解码块中的像素进行预测,以得到待解码块中像素的预测值。可以理解,这里的目标预测模式为编码端在编码时用于预测图像块中像素的预测模式。
具体的,解码端可以通过与编码端对应的解码方式,对待解码块的码流进行解析,从而得到目标预测模式。
S202、解码端基于目标预测模式,确定与目标预测模式对应的目标预测顺序。
其中,预测模式、与预测模式对应的预测顺序的描述,可以参考上文中的描述,这里不在赘述。
可选的,解码端可以预置有多个预测模式及其对应的预测顺序的对应关系。这样,当解码端确定预测模式为目标预测模式后,即可在预置的对应关系中确定出与目标预测模式对应的目标预测顺序。
S203、解码端按照目标预测模式,以目标预测顺序预测待解码块中的每个像素,得到该每个像素的预测值。
这里,基于预测模式,以与预测模式对应的预测顺序预测待解码块中每个像素的说明,可以参考上文中对预测模式的详细描述,这里不再赘述。
S204、解码端基于待解码块中每个像素的预测值对该每个像素进行重建,从而得到待解码块的重建块。
可选的,解码端可以先通过解析码流,得到待解码块的残差块。然后,解码端对该残差块进行反量化,从而得到重建的待解码块的残差块。这样,解码端可以基于上述得到的待解码块中像素的预测值和重建的残差块中的残差值,得到待解码块的重建块。
例如,解码端可以先通过图5所示的码流解析单元301解析待解码块的码流,得到待解码块的残差块。然后,解码端可以通过图5所示的反量化单元302对该残差块进行反量化,从而得到重建的待解码块的残差块。这样,解码端可以通过重构单元306,并基于上述得到的待解码块中像素的预测值和重建的残差块中的残差值,得到待解码块的重建块。
可选的,解码端可以先通过解析码流,得到待解码块的残差系数块。然后,解码端对该残差块进行反量化,从而得到反量化的残差系数块。接着,解码端对反量化后的残差系数块进行反变换,得到重建的待解码块的残差块。这样,解码端可以基于上述得到的待解码块中像素的预测值和重建的残差块中的残差值,得到待解码块的重建块。
例如,解码端可以先通过图5所示的码流解析单元301解析待解码块的码流,得到待解码块的残差系数块。然后,解码端可以通过图5所示的反量化单元302对该残差系数块进行反量化,从而得到反量化的残差系数块。接着,解码端通过图5所示的残差逆变换单元303对反量化后的残差系数块进行反变换,得到重建的待解码块的残差块。这样,解码端可以通过重构单元306,并基于上述得到的待解码块中像素的预测值和重建的残差块中的残差值,得到待解码块的重建块。
其中,解码端可以通过与编码端对应的解码方式,对待解码块的码流进行解析,从而得到待解码块的残差块或残差系数块。例如,解码端解码待解码块码流的残差扫描顺序为上述预测待解码块中像素的目标预测顺序。其中,目标预测顺序与预测待解码块的目标预测模式对应。残差扫描顺序的相关说明可以参考上文,这里不做赘述。
需要说明,图8所示的图像解码方法与图6c所示的图像编码方法对应,因此,该图像解码方法有助于提高预测待解码块的效率,进而在基于预测值和残差值重构待解码块以得到待解码块的重建值时,能够节约用于缓存残差值的缓存空间,并能提高解码效率。
需要说明,本实施例对待解码块的残差块或残差系数块进行反量化的方式不作具体限定,例如可以采用下述实施例二方案中描述的反量化方式对待解码块的残差块或残差系数块进行反量化,当然不限于此。
还需要说明,本实施例对解码端解码待解码块的码流的方式不作具体限定,例如可以采用下述实施例三中描述的可变长的解码方式进行编码,当然不限于此。
实施例二
如图9a所示,为本实施例提供的又一种图像编码方法的流程示意图。图9a所示的方法包括如下步骤:
S301、编码端确定待编码块的第二残差块和待编码块中每个像素的量化参数QP。
这里,第二残差块可以是待编码块的原始残差值块,或者,第二残差块也可以是该原始残差值块经变换后得到的残差系数块。
其中,待编码块的原始残差值块即为编码端基于待编码块的原始像素值和待编码块的预测块得到残差块。可以理解,编码端对待编码块中的像素进行预测以得到预测块的过程,可以基于实施例一中所述方法实现,当然也可以基于现有技术中任意能够得到待编码块预测块的方法得到,本申请实施例对此不作限定。残差系数块为编码端对原始残差值块进行变换处理后得到的,本申请实施例对编码端变换处理原始残差值块的过程不作具体限定。
为简单描述,本实施例在下文中以第二残差快是待编码块的原始残差值块为例进行说明。
另外,编码端在获得待编码块的第二残差块之前或之后,还可以确定待编码块中每个像素的量化参数QP。这里,本申请实施例对编码端确定待编码块中每个像素的量化参数QP的具体过程不作限定。
S302、编码端基于待编码块中每个像素的QP和量化预设数组,对第二残差块进行量化,得到第一残差块。
其中,量化预设数组用于对第二残差块中的值进行量化处理。
第一种可能的实现方式中,上述量化预设数组包括放大参数数组和位移参数数组,且放大参数数组和位移参数数组包括相同数量个数值。若以amp表示放大参数数组中的放大参数,以shift表示位移参数数组中的位移参数,则编码端可以基于公式(1)对第二残差块中每个值进行量化处理:
公式(1)量化后的残差值=(量化前的残差值×amp[QP])>>shift[QP]
其中,amp[QP]表示放大参数数组中第QP个放大参数,shift[QP]表示位移参数数组中第QP个位移参数,(量化前的残差值×amp[QP])>>shift[QP]表示对(量化前的残差值×amp[QP])的二进制值右移shift[QP]位。
在本实施例中,对于放大参数数组中的第i个放大参数的值amp[i]和位移参数数组中的第i个位移参数的值shift[i]而言,2shift[i]与amp[i]的商构成的反量化数组具有以下规律:该反量化数组中的第1至第n个数中相邻的两个数之间的间隔为1,该反量化数组中的第n+1至第n+m个数中相邻的两个数之间的间隔为2,该反量化数组中的第n+k*m+1至第n+k*m+m个数中相邻两个数之间的数值间隔为2k+1。其中,n、m为大于1的整数,i、k均为正整数。
其中,反量化数组用于实现对量化后得到第一残差块进行反量化处理,即反量化数组用于实现与量化预设数组所实现的互逆运算。因此,基于具有上述规律的反量化数组,可以反向确定出用于实现量化运算的放大参数数组和位移参数数组。
作为示例,假设以mult表示反量化数组中的放大参数,且反量化数组包括42个放大参数,以上述的n取值12,m取值6为例,则基于具有上述规律的反量化数组可以为:
mult(42)={1,2,3,4,5,6,7,8,9,10,11,12,14,16,18,20,22,24,28,32,36,40,44,48,56,64,72,80,88,96,112,128,144,160,176,192,224,256,288,320,352,384}
则放大参数数组可以为:
amp[42]={1,2048,2731,2048,3277,2731,2341,2048,3641,3277,2979,2731,2341,2048,3641,3277,2979,2731,2341,2048,3641,3277,2979,2731,2341,2048,3641,3277,2979,2731,2341,2048,3641,3277,2979,2731,2341,2048,3641,3277,2979,2731}
位移参数数组可以为:
shift[42]={0,12,13,13,14,14,14,14,15,15,15,15,15,15,16,16,16,16,16,16,17,17,17,17,17,17,18,18,18,18,18,18,19,19,19,19,19,19,20,20,20,20}
这样,编码端可以基于确定的待编码块中每个像素的QP,在上述放大参数数组中确定该每个像素的放大参数,以及在上述的位移参数数组确定该每个像素的位移参数。然后,编码端基于待编码块中每个像素对应的放大参数和位移参数,对第二残差块进行量化运算,从而得到第一残差块。
例如,对于待编码块中任一像素而言,编码端可以基于确定的该任一像素的QP,在上述放大参数数组中查找,并将放大参数数组中的第QP个值确定为该任一像素的放大参数,以及在上述的位移参数数组查找,并将位移参数数组中的第QP个值确定该任一像素的位移参数。然后,编码端基于该任一像素对应的放大参数和位移参数,并通过上述的公式(1)对第二残差块中与该任一像素对应的残差值进行量化运算,从而得到该任一像素对应的量化后的残差值。当编码端对第二残差块中的全部残差值完成量化处理,即得到第一残差快。
通过该可能的实现方式,编码端在对第二残差块中的残差值进行量化处理时,最多需要进行6种乘法运算,相比现有技术,该方式大大减少了编码端的计算量,即该方式大大节省了编码端的计算资源。
第二种可能的实现方式中,相比上述第一种可能的实现方式,该实现方式中的量化预设数组可以包括更少的数值。在该实现方式中,编码端可以基于公式(2)实现对第二残差块中每个残差值的量化处理:
公式(2)量化后的残差值=(量化前的残差值×amp+offset)>>shift
其中,amp为编码端基于待编码块中每个像素的QP和量化预设数组确定出的该每个像素对应的放大参数,shift为编码端基于待编码块中每个像素的QP和量化预设数组确定出的该每个像素对应的位移参数。offset为偏移参数,用于实现量化后的残差值能够四舍五入取整,(量化前的残差值×amp+offset)>>shift表示对(量化前的残差值×amp+offset)的二进制值向右移位shift位。
具体的,编码端确定出的待编码块中每个像素对应的放大参数amp的值为该每个像素的QP与7按位与后的值在量化预设数组中对应的值,编码端确定出的待编码块中每个像素对应的位移参数shift的值为7与该每个像素的QP除以23的商的加和值。
也即,假设以quant_scal表示量化预设数组中的值,则放大参数amp可以通过quant_scale[QP&0x07]计算得到,位移参数shift可以通过7+(QP>>3)计算得到。其中,[QP&0x07]表示QP的二进制值与7按位与(相当于QP除以8取余的数学效果),quant_scale[QP&0x07]即为量化预设数组中的第QP&0x07个数值。QP>>3表示对QP的二进制值向右移位3位。
另外,offset可以通过1<<(shift-1)计算得到,1<<(shift-1)表示对1的二进制值向左移位(shift-1)(数学上的效果为1乘以2的(shift-1)次方)。
在本申请实施例中,当编码端以公式(2)实现第二残差块的量化处理时,量化预设数组可以是:quant_scal[8]={128,140,153,166,182,197,216,234}。
这样,编码端基于确定的待编码块中每个像素的QP和量化预设数组,计算得到该每个像素对应的放大参数和位移参数。然后,编码端即可基于计算得到的待编码块中每个像素的放大参数、位移参数以及偏移参数,并通过公式(2)实现对第二残差块的量化,从而得到第一残差块。
可以看出,通过该可能的实现方式,编码端在对第二残差块中的残差值进行量化处理时,最多需要进行8种乘法运算。相比现有技术,该方式大大减少了编码端的计算量,即该方式大大节省了编码端的计算资源。
第三种可能的实现方式中,编码端可以通过公式(3)实现对第二残差块中每个残差值的量化处理:
公式(3)量化后的残差值=(量化前的残差值+offset)>>shift
其中,shift表示位移参数,shift的取值为与QP相关、且为单调不递减的整数。或者可以理解为,在QP递增的情况下,shift与QP一一对应,且shift的取值为单调不递减的整数。offset的说明可以参考上文,这里不再赘述。并且,offset可以通过(shift==0)?0:(1<<(shift-1))确定,具体为:当shift取值为0时,offset取值为0,当shift取值不为0,则offset取值为(1<<(shift-1))(即为对1的二进制值左移(shift-1)位后得到的值)。
这样,编码端基于确定的待编码块中每个像素的QP即可确定出该每个像素的位移参数,并进一步确定出对应的偏移参数。然后,编码端即可基于确定出的待编码块中每个像素的位移参数和偏移参数,并通过公式(3)实现对第二残差块的量化,从而得到第一残差块。
可以看出,通过该可能的实现方式,编码端在对第二残差块中的残差值进行量化处理时,无需进行乘法运算。相比现有技术,在对量化粒度要求不高的编码场景中,该方式大大减少了编码端的计算量,即该方式大大节省了编码端的计算资源。
S303、编码端编码第一残差块,得到待编码块的码流。
编码端在得到第一残差块后,即对其进行编码,从而得到待编码块经编码的码流。
可选的,编码端将上述对第二残差块进行量化时的每个像素对应的QP,以及具体采用的量化方式作为待编码块的语义元素,并对该语义元素进行编码。编码端还可以将编码后的语义元素数据添加至待编码块经编码的码流中。
可选的,编码端编码待第一残差块的残差扫描顺序,可以为编码端预测待编码块中像素的目标预测顺序。其中,目标预测顺序与预测待解码块的目标预测模式对应。目标预测模式和目标预测顺序的相关说明可以参考上文,这里不做赘述。
需要说明,本实施例对待编码块进行预测的具体模式不作具体限定,例如可以采用上文实施例一方案中描述的预测模式对待编码块进行预测,当然不限于此。
还需要说明,本实施例对编码端编码第一残差块以及相关的语义元素的具体编码方式不作具体限定,例如可以采用实施例三中描述的可变长的编码方式进行编码。
通过上述的S301-S303所述的图像编码方法,由于在图像编码过程中采用了能够节省编码端计算资源的量化处理方式,即该图像编码方法中的量化处理过程的效率被大大提高,进而该图像编码方法大大提高了图像的编码效率。
如图9b所示,为本实施例提供的又一种图像解码方法的流程示意图。图9b所示的方法包括如下步骤:
S401、解码端解析待解码块的码流,得到待解码块中每个像素的反量化参数和待解码块的第一残差块。
其中,待解码块的码流可以是解码端从编码端接收到的码流,或者是从其他设备获取的码流,例如从存储设备获取的码流,本申请实施例对此不作限定。
其中,反量化参数用于指示解码端采用与该反量化参数对应的反量化方式对第一残差块中的残差值进行反量化处理。反量化参数中可以包括量化参数QP。
具体的,解码端可以通过与编码端对应的解码方式,对待解码块的码流进行解析,从而得到待解码块中每个像素的反量化参数和待解码块的第一残差块。
例如,解码端解码待解码块码流的残差扫描顺序为预测待解码块中像素的目标预测顺序。其中,目标预测顺序与预测待解码块的目标预测模式对应。目标预测模式和目标预测顺序的相关说明可以参考上文,这里不做赘述。
S402、解码端基于待解码块中每个像素的反量化参数所指示的QP和反量化预设数组,对第一残差块进行反量化,得到第二残差块。
第一种可能的实现方式,当解码端基于待解码块中每个像素的反量化参数,确定对第一残差块的反量化方式与上述S302中第一种可能的实现方式中描述的量化方式互逆,则反量化预设数组的说明可以参数上文S302中反量化数组的相关说明,这里不做赘述。
这种情况下,解码端可以基于待解码块中每个像素的QP,在反量化预设数组中确定该每个像素对应的放大系数。然后,解端可以基于该每个像素对应的放大系数,对第一残差块进行反量化处理,从而得到第二残差块。
例如,对于待解码块中任一像素而言,解码端可以基于该任一像素的QP,在上述反量化预设数组中查找,并将反量化预设数组中的第QP个值确定为该任一像素的放大系数。然后,解码端基于该任一像素对应的放大系数,对第一残差块中与该任一像素对应的残差值进行乘法运算,从而得到该任一像素对应的反量化后的残差值。当解码端对第一残差块中的全部残差值完成反量化处理,即得到第二残差快。
可选的,解码端还可以在确定待解码块中每个像素对应的放大系数后,通过对该每个像素对应的第一残差块中的残差值做向左移位处理,以实现对残差值和与该残差值对应的放大系数的乘法运算,本申请实施例对比不作具体限定。
第二种可能的实现方式,当解码端基于待解码块中每个像素的反量化参数,确定对第一残差块的反量化方式与上述S302中第二种可能的实现方式中描述的量化方式互逆,则解码端可以基于上述公式(2)实现对第一残差块中每个残差值的反量化处理,以得到第一残差块。
这种情况下,公式(2)中的放大参数mult(和上文量化处理时的amp区分)可以通过dequant_scale[QP&0x07]计算得到,dequant_scale[QP&0x07]即为反量化预设数组中的第QP&0x07个数值。公式(2)中的位移参数shift可以通过7-(QP>>3)计算得到。公式(2)中的偏移参数offset可以通过(shift==0)?0:(1<<(shift-1))计算得到。
在本申请实施例中,当解码端以公式(2)实现第一残差块的反量化处理时,反量化预设数组可以是:dequant_scal[8]={128,117,107,99,90,83,76,70}。
这样,解码端基于待解码块中每个像素的QP和反量化预设数组,计算得到该每个像素对应的放大参数和位移参数。然后,解码端即可基于计算得到的待解码块中每个像素的放大参数、位移参数以及偏移参数,并通过公式(2)实现对第一残差块的反量化,从而得到第二残差块。
可以看出,通过该可能的实现方式,解码端在对第一残差块中的残差值进行反量化处理时,最多需要进行8种乘法运算。相比现有技术,该方式大大减少了解码端的计算量,即该方式大大节省了解码端的计算资源。
第三种可能的实现方式,当解码端基于待解码块中每个像素的反量化参数,确定对第一残差块的反量化方式与上述S302中第三种可能的实现方式中描述的量化方式互逆,则解码端可以基于公式(4)实现对第一残差块中每个残差值的反量化处理,以得到第一残差块:
公式(4)反量化后的残差值=(反量化前的残差值+offset)<<shift
其中,偏移参数offset和位移参数shift的描述均可以参考S302中第三种可能的实现方式中的描述,这里不再赘述。
这样,解码端基于待解码块中每个像素的QP即可确定出该每个像素的位移参数,并进一步确定出对应的偏移参数。然后,解码端即可基于确定出的待解码块中每个像素的位移参数和偏移参数,并通过公式(4)实现对第一残差块的反量化,从而得到第二残差块。
可以看出,通过该可能的实现方式,解码端在对第一残差块中的残差值进行反量化处理时,无需进行乘法运算。相比现有技术,在对量化粒度要求不高的编码场景中,该方式大大减少了解码端的计算量,即该方式大大节省了解码端的计算资源。
需要说明的是,上述几种可能的实现方式中的反量化方式,可以应用于编码端对图像进行编码的过程中(例如获得用于预测图像块中像素的重建块),也可以应用于解码端对图像数据进行解码的过程中,本申请实施例对此不作限定。
S403、解码端基于第二残差块对待解码块进行重建,得到重建块。
可选的,解码端可以直接对第二残差块进行重建,得到待解码块的重建块。具体的,解码端可以直接根据第二残差块以及待解码块的预测块对待解码块进行重建,得到待解码块的重建块。例如,解码端可以通过对第二残差块和待解码块的预测块求和,从而得到待解码块的重建块。
其中,待解码块的预测块可以是解码端基于解析待解码块的码流得到的预测模式,对待解码块进行预测得到的。可选的,该预测模式可以是实施例一所述的任一种预测模式,或者,该预测模式可以是现有技术中任意的预测模式,本申请实施例对此不作限定。此外,这里对解码端预测待解码块的预测块的过程不做详述。
可选的,解码端可以先对第二残差块进行反变换,以重建待解码块的残差值块。这种情况下,第二残差块实际为残差系数块。然后,解码端可以根据重建的残差值块和待解码块的预测块对待解码块进行重建,得到待解码块的重建块。例如,解码端可以通过对重建的残差值块和待解码块的预测块求和,从而得到待解码块的重建块。
其中,待解码块的预测块的说明可以参考上文,不再赘述。此外,本申请实施例对解码端对第二残差块进行反变换处理的过程不作详述。
需要说明,图9b所示的图像解码方法与图9a所示的图像编码方法对应,基于上述S401-S403所述的图像解码方法,由于在图像解码过程中采用了能够节省解码端计算资源的反量化处理方式,即该图像解码方法中的反量化处理过程的效率被大大提高,进而该图像解码方法大大提高了图像的解码效率。
还需要说明,本实施例对待解码块进行预测的具体模式不作具体限定,例如可以采用上文实施例一方案中描述的预测模式对待解码块进行预测,当然不限于此。
还需要说明,本实施例对解码端解码待解码块的码流的方式不作具体限定,例如可以采用下述实施例三中描述的可变长的解码方式进行编码,当然不限于此。
实施例三
如图10a所示,为本实施例提供的又一种图像编码方法的流程示意图。图10a所示的方法包括如下步骤:
S501、编码端确定待编码块对应的残差块。
这里,该残差块可以是待编码块的原始残差值块,或者,该残差块也可以是该原始残差值块经变换后得到的残差系数块,或者,该残差块也可以是编码端对该残差系数块进行量化后得到的经量化的残差块,对此不作限定。
其中,待编码块的原始残差值块即为编码端基于待编码块的原始像素值和待编码块的预测块得到残差块。
可以理解,编码端对待编码块中的像素进行预测以得到预测块的过程,可以基于实施例一中所述方法实现,当然也可以基于现有技术中任意能够得到待编码块预测块的方法得到,本申请实施例对此不作限定。
残差系数块为编码端对原始残差值块进行变换处理后得到的,本申请实施例对编码端变换处理原始残差值块的过程不作具体限定。
编码端对残差系数块进行量化后得到经量化的残差块的过程,可以基于实施例二中所述的方法实现,当然也可以基于现有技术中任意能够实现对残差块进行量化的方法得到,本申请实施例对此不作限定。
为简单描述,本实施例在下文中以残差块是待编码块的残差系数块为例进行说明。
S502、编码端采用可变码长的编码方式对待编码块的残差块进行编码,以得到待编码块的码流。
可选的,上述的可变码长的编码方式可以包括可变换阶数的指数哥伦布编码方式。这样,编码端即可先确定出待编码块中每个像素的属性类型。对于待编码块的残差块中与待编码块中第一像素对应的第一值而言,编码端可以基于预设策略和第一像素的属性类型,确定编码与第一像素对应的第一值时的目标阶数。然后,编码端可以采用目标阶数的指数哥伦布编码算法对待编码块的残差块中的第一值进行编码。当编码端对待编码块的残差块中的每个值进行编码,即得到待编码块经编码的码流。其中,编码端可以预置有上述预测策略,该预测策略用于指示用于编码不同属性类型的像素对应残差值时的阶数。
应理解,不同阶数的指数哥伦布编码方式的编码规则不同。参考表6,表6示出了阶数k取不同值时指数哥伦布编码方式的编码规则(包括码字结构及对应的编码范围)。如表6所示,表6所示的码字结构中的X可以为0或1。
表6
这样,对于待编码块的残差块中与待编码块的第一像素对应的第一值而言,当编码端基于预设策略和第一像素的属性类型,确定出编码与第一像素对应的第一值时的目标阶数。然后,编码端可以基于目标阶数的指数哥伦布编码算法以及第一值的大小,确定用于编码第一值的码字结构,并以该码字结构编码第一值。类似的,当编码端对待编码块的残差块中的每个值进行编码,即得到待编码块经编码的码流。
例如,当编码端基于预设策略和第一像素的属性类型,确定出编码与第一像素对应的第一值时的目标阶数为0。假设第一值的取值为2,则如表6所示,第一值属于编码范围1~2,则编码端可以基于0阶的指数哥伦布编码算法以及第一值的大小,确定用于编码第一值的码字结构为011(即编码范围1~2对应的码字结构01X)。这样,编码端即可以以011编码第一值。假设第一值的取值为7,则如表6所示,第一值属于编码范围7~14,则编码端可以基于0阶的指数哥伦布编码算法以及第一值的大小,确定用于编码第一值的码字结构为00010000(即编码范围7~14对应的码字结构0001XXXX)。这样,编码端即可以以00010000编码第一值。当编码端对待编码块的残差块中的每个值进行编码,即得到待编码块经编码的码流。
可选的,上述的可变码长的编码方式还可以包括预设阶数的指数哥伦布编码方式。其中,该预设阶数可以是编码端预先设置的值,例如是0或1(即上述K的取值可以是预设的0或1),本申请实施例对此不作限定。
由表6可以看出,当编码端预先指定指数哥伦布编码方式的阶数值(即K值),也可以实现对残差块中的残差值(或残差系数块中的残差系数值)的变长编码。
应理解,编码端在对待编码块的残差块编码后,还可以确定该残差块对应的语义元素,该语义元素例如包括编码该残差块中每个值的编码码长(code legth,CL)。
可选的,编码端可以采用上述的可变换阶数的指数哥伦布编码算法对CL进行编码,以实现节省比特的目的,进而实现了在提高图像编码的压缩率的同时,提高编码效率的目的。
例如,对于待编码块的残差块中的任一值,编码端可以基于该任一值的CL确定编码该CL时的目标阶数。然后,编码端可以采用目标阶数的指数哥伦布编码算法对该CL进行编码,并将编码后的数据添加至待编码块经编码的码流。
可以看出,当编码端通过可变换阶数的指数哥伦布编码算法对待编码块的残差块(或残差块中残差值的CL)进行编码,可以自适应的用较少的比特编码较小的残差值(或CL值),从而可以达到节省比特的目的。也即在提高图像编码的压缩率的同时,本申请实施例方法还提高了编码效率。
可选的,编码端也可以采用定长编码和截断一元码来编码待编码块的残差块中每个值的CL。例如,对于待编码块的残差块中的任一值,编码端可以采用定长编码或截断一元码对该该任一值的CL进行编码。
具体的,当上述任一值的CL小于等于阈值,则编码端采用预设数量个比特对该任一值的CL进行定长编码,并将编码后的数据添加至待编码块的码流。当上述任一值的CL大于前述阈值,则编码端采用截断一元码编码该任一值的CL,并将编码后的数据添加至待编码块的码流。其中,本申请实施例对该阈值的具体取值不作限定。
作为示例,以该阈值的取值为2为例,如表7所示,表7示出了编码端对小于等于2的CL值采用2比特进行定长编码得到的码字,表7还示出了编码端对大于2的CL值采用截断一元码编码得到的码字。其中,若以CLmax表示最大的CL值,则对于大于2的CL值,CLmax的码字中包括CLmax-1个1,CLmax-1的码字包括CLmax-2个1和1个0,…,CLmax-j的码字包括CLmax-j-1个1和1个0,其中,j是正整数。
表7
CL值 | 码字 |
0 | 00 |
1 | 01 |
2 | 10 |
3 | 110 |
4 | 1110 |
5 | 11110 |
6 | 111110 |
… | … |
CLmax-1 | 11…110 |
CLmax | 11…111 |
可以理解,编码端也可以采用定长编码和截断一元码来编码待编码块的残差块中每个值,具体可以参考编码端采用定长编码或截断一元码来编码待编码块的残差块中每个值的CL的描述,不再赘述。
可以看出,当编码端采用定长编码和截断一元码来编码CL(或残差值),可以自适应的用较少的比特编码较小的CL值(或残差值),从而可以达到节省比特的目的。也即在提高图像编码的压缩率的同时,还提高了编码效率。
如图10b所示,为本实施例提供的又一种图像解码方法的流程示意图。图10b所示的方法包括如下步骤:
S601、解码端采用可变码长的解码方式解析待解码块的码流,得到待解码块对应的残差块中每个值的CL。
可选的,上述可变码长的解码方式可以是可变换阶数的指数哥伦布解码方式。解码端可以先从码流中解析出用于解码待解码块的码流的目标阶数,然后采用目标阶数的指数哥伦布解码算法解析待解码块的码流,从而得到待解码块的残差块中每个值的CL。
其中,可变换阶数的指数哥伦布解码方式可以参考上文中可变换阶数的指数哥伦布编码方式的描述。可以理解,解码为编码的逆运算,不再赘述。
可选的,上述可变码长的解码方式可以是预设阶数的指数哥伦布解码方式。这种情况下,解码端可以采用该预设阶数的指数哥伦布解码算法解析待解码块的码流,从而得到待解码块的残差块中每个值的CL。
可选的,解码端还可以确定当码流中用于编码待解码块的残差块中任一值CL的比特数量为预设数量时,则基于定长解码策略解析待解码块的码流,以得到编码该任一值的CL。以及,解码端可以确定当码流中用于编码待解码块的残差块中任一值CL的比特数量大于预设数量时,则基于截断一元码的规则解析待解码块的码流,以得到编码该任一值的CL。其中,具体描述可以参考上文中编码端以定长编码和截断一元码编码CL的说明。可以理解,解码为编码的逆运算,不再赘述。
S602、解码端基于上述获得的CL确定待解码块的残差块。
编码端确定待解码块的残差块中每个值的CL后,即确定了用于编码该残差块中每个值的比特数。这样,解码端即可基于编码该每个值的CL,在待解码块的码流中确定与待解码块中每个像素对应的比特组,并确定用于解析每个比特组的目标阶数。
其中,一种可能的情况,解码端可以在解析出待解码块的残差块中每个值的CL后,先确定待解码块中每个像素的属性类型。然后,对于与待解码块中第一像素对应的第一比特组而言,解码端可以基于预设策略和第一像素的属性类型,确定解析第一比特组的目标阶数。另一种可能的情况,解码端预置有与待解码块中每个像素对应的比特组的预设阶数,则解码端将与待解码块中每个像素对应的比特组的预设阶数确定为每个比特组的目标阶数。
然后,解码端采用目标阶数的指数哥伦布解码算法对与待解码块中每个像素对应比特组进行解析,即可得到该每个像素的残差值,从而得到待解码块的残差块。
可以理解,解码端根据待解码块的码流解析得到残差块中值的顺序,和编码端编码残差块中值的顺序相同。
S603、解码端基于待解码块的残差块对待解码块进行重建,得到重建块。
可选的,当待解码块的残差块为残差系数块时,解码端可以对待解码块的残差块依次进行反量化和反变换,以得到重建的待解码块的残差值块。然后,解码端可以基于重建的残差值块对待解码块进行重建,从而得到重建块。例如,解码端可以通过对重建的残差值块和待解码块的预测块求和,从而得到待解码块的重建块。
可选的,当待解码块的残差块为残差值块时,解码端可以对待解码块的残差块进行反量化,以得到重建的待解码块的残差值块。然后,解码端可以基于重建的残差值块对待解码块进行重建,从而得到重建块。例如,解码端可以通过对重建的残差值块和待解码块的预测块求和,从而得到待解码块的重建块。
其中,上述的待解码块的预测块可以是解码端基于解析待解码块的码流得到的预测模式,对待解码块进行预测得到的。可选的,该预测模式可以是实施例一所述的任一种预测模式,或者,该预测模式可以是现有技术中任意的预测模式,本申请实施例对此不作限定。此外,这里对解码端预测待解码块的预测块的过程不做详述。
其中,解码端对待解码块的残差块进行反量化的过程,可以基于实施例二中所述的方法实现,当然也可以基于现有技术中任意能够实现对残差块进行反量化的方法得到,本申请实施例对此不作限定。
需要说明,图10b所示的图像解码方法与图10a所示的图像编码方法对应,因此该方法可以在提高图像编码的压缩率的同时,提高解码效率。
还需说明,实施例三提供的可变长的编/解码方式也可以应用于实施例一和实施例二,或者应用于任意需要进行图像编/解码的场景中,本申请实施例对此不作限定。
可以理解的是,为了实现上述实施例中功能,编码端/解码端包括了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本申请中所公开的实施例描述的各示例的单元及方法步骤,本申请能够以硬件或硬件和计算机软件相结合的形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用场景和设计约束条件。
以下,说明本申请实施例提供的解码装置和编码装置。
在一个示例中,本申请实施例提供的任一种解码装置均可以是图1中的目的设备12或解码器122。在另一个示例中,以下提供的任一种编码装置均可以是图1中的源设备11或编码器112。此处统一说明,下文不再赘述。
图11为本申请提供的一种解码装置1100的结构示意图,上述任一种解码方法实施例都可以由该解码装置1100执行。该解码装置1100包括解析单元1101、确定单元1102、预测单元1103以及重建单元1104。其中,解析单元1101,用于解析待解码块的码流,以确定预测待解码块中像素的目标预测模式。确定单元1102,用于基于该目标预测模式,确定与该目标预测模式对应的目标预测顺序。预测单元1103,用于按照确定的目标预测模式,以与该目标预测模式对应的目标预测顺序预测待解码块中的每个像素。重建单元1104,用于基于待解码块中的每个像素的预测值对该每个像素进行重建,从而得到待解码块的重建块。
在一个示例中,解析单元1101可以通过图5中的码流解析单元301实现。确定单元1102和预测单元1103可以通过图5中的预测处理单元304实现,重建单元1104可以通过图5中的重构单元305实现。图5中的经编码比特流可以是本实施例中的待解码块的码流。
有关上述解析单元1101、确定单元1102、预测单元1103和重建单元1104更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图12为本申请提供的一种编码装置1200的结构示意图,上述任一种编码方法实施例都可以由该编码装置1200执行。该编码装置1200包括确定单元1201、预测单元1202以及编码单元1203。其中,确定单元1201,用于确定待编码块的目标预测模式,以及确定与目标预测模式对应的目标预测顺序。预测单元1202,用于按照目标预测模式,以目标预测顺序预测待编码块中的每个像。确定单元1201,还用于基于该每个像素的预测值确定待编码块的残差块。编码单元1203,用于以目标预测顺序编码残差块,以得到待编码块的码流。
在一个示例中,确定单元1201和预测单元1202可以通过图2中的预测处理单元201实现。确定单元1201还可以通过图2中的残差计算单元202实现。编码单元1203可以通过图2中的编码单元205实现。图2中的待编码块可以是本实施例中的待编码块。
有关上述确定单元1201、预测单元1202和编码单元1203更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图13为本申请提供的一种解码装置1300的结构示意图,上述任一种解码方法实施例都可以由该解码装置1300执行。该解码装置1300包括解析单元1301、反量化单元1302以及重建单元1303。其中,解析单元1301,用于解析待解码块的码流,得到待解码块中每个像素的反量化参数和待解码块的第一残差块。反量化单元1302,用于基于该每个像素的反量化参数指示的QP和反量化预设数组,对第一残差块进行反量化,得到第二残差块。重建单元1303,用于基于第二残差块对待解码块进行重建,得到重建块。
在一个示例中,解析单元1301可以通过图5中的码流解析单元301实现。反量化单元1302可以通过图5中的反量化单元302实现。重建单元1303可以通过图5中的重构单元305实现。图5中的经编码比特流可以是本实施例中的待解码块的码流。
有关上述解析单元1301、反量化单元1302和重建单元1303更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图14为本申请提供的一种编码装置1400的结构示意图,上述任一种编码方法实施例都可以由该编码装置1400执行。该编码装置1400包括确定单元1401、量化单元1402以及编码单元1403。其中,确定单元1401,用于确定待编码块的第二残差块和待编码块中每个像素的量化参数QP。量化单元1402,用于基于该每个像素的QP和量化预设数组,对第二残差块进行量化,得到第一残差块。编码单元1403,用于编码第一残差块,得到待编码块的码流。
在一个示例中,确定单元1401可以通过图2中的残差计算单元202实现,或者,确定单元1401可以通过图2中的残差计算单元202和残差变换单元203结合实现。量化单元1402可以通过图2中的量化单元204实现。编码单元1403可以通过图2中的编码单元205实现。图2中的待编码块可以是本实施例中的待编码块。
有关上述确定单元1401、量化单元1402和编码单元1403更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图15为本申请提供的一种编码装置1500的结构示意图,上述任一种编码方法实施例都可以由该编码装置1500执行。该编码装置1500包括确定单元1501和编码单元1502。其中,确定单元1501,用于确定待编码块对应的残差块。编码单元1502,用于采用可变码长的编码方式对前述的残差块进行编码,以得到待编码块的码流。
在一个示例中,确定单元1501可以通过图2中的残差计算单元202实现,或者,确定单元1501可以通过图2中的残差计算单元202和残差变换单元203结合实现,或者,确定单元1501可以通过图2中的残差计算单元202、残差变换单元203以及量化单元204结合实现。编码单元1502可以通过图2中的编码单元205实现。图2中的待编码块可以是本实施例中的待编码块。
有关上述确定单元1501和编码单元1502更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
图16为本申请提供的一种解码装置1600的结构示意图,上述任一种解码方法实施例都可以由该解码装置1600执行。该解码装置1600包括解析单元1601、确定单元1602以及重建单元1603。其中,解析单元1601,用于采用可变码长的解码方式解析待解码块的码流,得到编码待解码块对应的残差块中每个值的编码码长CL。确定单元1602,用于基于编码每个值的CL确定待解码块的残差块。重建单元1603,用于基于待解码块的残差块对待解码块进行重建,得到重建块。
在一个示例中,解析单元1601可以通过图5中的码流解析单元301实现。确定单元1602可以通过图5中的反量化单元302实现,或者,确定单元1602可以通过图5中的反量化单元302和残差逆变换单元303结合实现。重建单元1603可以通过图5中的重构单元305实现。图5中的经编码比特流可以是本实施例中的待解码块的码流。
有关上述解析单元1601、确定单元1602和重建单元1603更详细的描述、以及其中各技术特征更详细的描述,以及有益效果的描述等,均可以参考上述相应的方法实施例部分,此处不再赘述。
本申请还提供一种电子设备,用于执行上述任意图像编码/解码方法的实施例。如图17所示,图17为本申请提供的一种电子设备的结构示意图,电子设备1700包括处理器1701和通信接口1702。处理器1701和通信接口1702之间相互耦合。可以理解的是,通信接口1702可以为收发器或输入输出接口。
在一个示例中,电子设备1700还可以包括存储器1703,用于存储处理器1701执行的指令或存储处理器1701运行指令所需要的输入数据或存储处理器1701运行指令后产生的数据。
本申请实施例中不限定上述通信接口1702、处理器1701以及存储器1703之间的具体连接介质。本申请实施例在图17中以通信接口1702、处理器1701以及存储器1703之间通过总线1704连接,总线在图17中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器1703可用于存储软件程序及模块,如本申请实施例所提供的图像解码方法或图像编码方法对应的程序指令/模块,处理器1701通过执行存储在存储器1703内的软件程序及模块,从而执行各种功能应用以及数据处理,以实现上文提供的任一种图像解码方法或图像编码方法。该通信接口1702可用于与其他设备进行信令或数据的通信。在本申请中该电子设备1700可以具有多个通信接口1702。
可以理解的是,本申请的实施例中的处理器可以是中央处理单元(centralprocessing Unit,CPU)、神经处理器(neural processing unit,NPU)或图形处理器(graphic processing unit,GPU),还可以是其它通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。通用处理器可以是微处理器,也可以是任何常规的处理器。
本申请的实施例中的方法步骤可以通过硬件的方式来实现,也可以由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于网络设备或终端设备中。当然,处理器和存储介质也可以作为分立组件存在于网络设备或终端设备中。
本申请实施例还提供一种编解码系统,包括编码端和解码端,该编码端可以用于执行上文提供的任意一种图像编码方法,解码端用于执行对应的图像解码方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机程序或指令。在计算机上加载和执行所述计算机程序或指令时,全部或部分地执行本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其它可编程装置。所述计算机程序或指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机程序或指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是集成一个或多个可用介质的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,例如,软盘、硬盘、磁带;也可以是光介质,例如,数字视频光盘(digital video disc,DVD);还可以是半导体介质,例如,固态硬盘(solid state drive,SSD)。
在本申请的各个实施例中,如果没有特殊说明以及逻辑冲突,不同的实施例之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例中的技术特征根据其内在的逻辑关系可以组合形成新的实施例。
可以理解的是,在本申请的实施例中涉及的各种数字编号仅为描述方便进行的区分,并不用来限制本申请的实施例的范围。上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定。
Claims (16)
1.一种图像解码方法,其特征在于,包括:
解析待解码块的码流,以确定预测所述待解码块中像素的目标预测模式;
基于所述目标预测模式,确定与所述目标预测模式对应的目标预测顺序;
按照所述目标预测模式,以所述目标预测顺序预测所述待解码块中的每个像素;
基于所述每个像素的预测值对所述每个像素进行重建,得到所述待解码块的重建块。
2.根据权利要求1所述的方法,其特征在于,在以所述目标预测顺序预测所述待解码块中的任一像素时,用于预测所述任一像素的像素已完成重建。
3.根据权利要求2所述的方法,其特征在于,若所述目标预测模式指示以所述目标预测顺序逐点预测所述待解码块中的每个像素,则所述按照所述目标预测模式,以所述目标预测顺序预测所述待解码块中的每个像素包括:
按照所述目标预测模式,沿所述目标预测顺序指示的方向逐点预测所述待解码块中的每个像素;其中,当所述目标预测模式为第一目标预测模式时,所述目标预测顺序为第一预测顺序,当所述目标预测模式为第二目标预测模式时,所述目标预测顺序为第二预测顺序,所述第一预测顺序和所述第二预测顺序不同。
4.根据权利要求3所述的方法,其特征在于,对于尺寸为第一尺寸的所述待解码块,在所述目标预测模式下采用第三预测顺序对所述待解码块进行预测;对于尺寸为第二尺寸的所述待解码块,在所述目标预测模式下采用第四预测顺序对所述待解码块进行预测;其中,所述第三预测顺序和所述第四预测顺序不同。
5.根据权利要求2所述的方法,其特征在于,若所述目标预测模式指示以所述待解码块中具有预设大小的子块为单位依次预测所述待解码块中每个子块的像素,则所述按照所述目标预测模式,以所述目标预测顺序预测所述待解码块中的每个像素包括:
按照所述目标预测模式,沿所述目标预测顺序指示的方向依次预测所述待解码块中每个子块中的像素。
6.根据权利要求5所述的方法,其特征在于,所述目标预测模式包括所述待解码块中每个子块的预测模式,对于所述待解码块中第一子块,所述第一子块中包括第一像素和第二像素,则所述第一子块的预测模式用于根据所述第一子块周围已重建的像素并行的对所述第一像素和所述第二像素进行预测。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述基于所述每个像素的预测值对所述每个像素进行重建,得到所述待解码块的重建块包括:
基于解析所述待解码块的码流得到的所述待解码块中每个像素的反量化参数和反量化预设数组,对解析所述待解码块的码流得到的所述待解码块的第一残差块进行反量化,得到第二残差块;
基于所述每个像素的预测值和所述第二残差块对所述每个像素进行重建,得到所述重建块。
8.根据权利要求7所述的方法,其特征在于,所述解析所述待解码块的码流包括:
采用可变码长的解码方式解析所述待解码块的码流,以得到编码所述待解码块对应的残差块中每个值的编码码长CL和所述第一残差块。
9.根据权利要求8所述的方法,其特征在于,在所述得到第二残差块之前,所述方法还包括:
解析所述待解码块的码流,得到所述待解码块中每个像素的反量化参数和所述待解码块的第一残差块。
10.根据权利要求9所述的方法,其特征在于,所述解析所述待解码块的码流,得到所述待解码块中每个像素的反量化参数和所述待解码块的第一残差块包括:
基于所述待解码块的码流确定预测所述待解码块中像素的目标预测模式和所述待解码块中每个像素的反量化参数;
基于所述目标预测模式,确定与所述目标预测模式对应的残差扫描顺序;其中,当所述目标预测模式为第一目标预测模式时,所述残差扫描顺序为第一扫描顺序,当所述目标预测模式为第二目标预测模式时,所述残差扫描顺序为第二扫描顺序,所述第一扫描顺序和所述第二扫描顺序不同;
基于所述残差扫描顺序解析所述待解码块的码流,得到所述第一残差块。
11.根据权利要求10所述的方法,其特征在于,对于尺寸为第一尺寸的所述待解码块,在所述目标预测模式下采用第三扫描顺序解析所述待解码块的码流;对于尺寸为第二尺寸的所述待解码块,在所述目标预测模式下采用第四扫描顺序解析所述待解码块的码流;其中,所述第三扫描顺序和所述第四扫描顺序不同。
12.一种图像编码方法,其特征在于,包括:
确定待编码块的目标预测模式,以及确定与所述目标预测模式对应的目标预测顺序;
按照所述目标预测模式,以所述目标预测顺序预测所述待编码块中的每个像素;
基于所述每个像素的预测值确定所述待编码块的残差块;
以所述目标预测顺序编码所述残差块,以得到所述待编码块的码流。
13.一种图像解码装置,其特征在于,包括:
解析单元,用于解析待解码块的码流,以确定预测所述待解码块中像素的目标预测模式;
确定单元,用于基于所述目标预测模式,确定与所述目标预测模式对应的目标预测顺序;
预测单元,用于按照所述目标预测模式,以所述目标预测顺序预测所述待解码块中的每个像素;
重建单元,用于基于所述每个像素的预测值对所述每个像素进行重建,得到所述待解码块的重建块。
14.一种图像编码装置,其特征在于,包括:
确定单元,用于确定待编码块的目标预测模式,以及确定与所述目标预测模式对应的目标预测顺序;
预测单元,用于按照所述目标预测模式,以所述目标预测顺序预测所述待编码块中的每个像素;
所述确定单元,还用于基于所述每个像素的预测值确定所述待编码块的残差块;
编码单元,用于以所述目标预测顺序编码所述残差块,以得到所述待编码块的码流。
15.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储计算机指令,所述处理器用于从存储器中调用并运行所述计算机指令,实现权利要求1-12中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述存储介质中存储有计算机程序或指令,当所述计算机程序或指令被电子设备执行时,实现权利要求1-12中任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310452428.9A CN116405664B (zh) | 2022-03-29 | 2022-03-29 | 图像编解码方法、装置、电子设备及存储介质 |
CN202310440975.5A CN116405663B (zh) | 2022-03-29 | 2022-03-29 | 图像编解码方法、装置、电子设备及存储介质 |
CN202210320915.5A CN116095310B (zh) | 2022-03-29 | 图像编解码方法、装置、电子设备及存储介质 | |
PCT/CN2023/084295 WO2023185806A1 (zh) | 2022-03-29 | 2023-03-28 | 一种图像编解码方法、装置、电子设备及存储介质 |
TW112112053A TWI853514B (zh) | 2022-03-29 | 2023-03-29 | 圖像編解碼方法、裝置、電子設備及儲存媒體 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210320915.5A CN116095310B (zh) | 2022-03-29 | 图像编解码方法、装置、电子设备及存储介质 |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310452428.9A Division CN116405664B (zh) | 2022-03-29 | 2022-03-29 | 图像编解码方法、装置、电子设备及存储介质 |
CN202310440975.5A Division CN116405663B (zh) | 2022-03-29 | 2022-03-29 | 图像编解码方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116095310A CN116095310A (zh) | 2023-05-09 |
CN116095310B true CN116095310B (zh) | 2024-11-12 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103402095A (zh) * | 2010-09-30 | 2013-11-20 | 华为技术有限公司 | 扫描方法及装置、反扫描方法及装置 |
CN109076237A (zh) * | 2015-11-18 | 2018-12-21 | 联发科技股份有限公司 | 在视频和图像压缩中使用帧内预测滤波器的帧内预测模式的方法和装置 |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103402095A (zh) * | 2010-09-30 | 2013-11-20 | 华为技术有限公司 | 扫描方法及装置、反扫描方法及装置 |
CN109076237A (zh) * | 2015-11-18 | 2018-12-21 | 联发科技股份有限公司 | 在视频和图像压缩中使用帧内预测滤波器的帧内预测模式的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2694012C1 (ru) | Усовершенствованное кодирование с внутрикадровым предсказанием с использованием планарных представлений | |
TWI771679B (zh) | 以區塊為基礎之預測技術 | |
TW202423121A (zh) | 使用內預測之寫碼技術 | |
CN116074516B (zh) | 一种图像编解码方法及装置 | |
CN116095310B (zh) | 图像编解码方法、装置、电子设备及存储介质 | |
CN116405664B (zh) | 图像编解码方法、装置、电子设备及存储介质 | |
CN116527942B (zh) | 一种图像编解码方法及装置 | |
CN116074529B (zh) | 图像编解码方法、装置及存储介质 | |
CN116546193B (zh) | 图像解码方法、编码方法及装置 | |
KR101431463B1 (ko) | 무손실 비디오 부호화/복호화 방법 및 장치 | |
JP2024541755A (ja) | 画像復号方法及び装置、画像符号化方法及び装置 | |
EP3518542A1 (en) | Methods and devices for picture encoding and decoding using multiple transforms | |
JP2012209873A (ja) | 動画像符号化装置及び動画像符号化方法 | |
JP2012209874A (ja) | 動画像復号化装置及び動画像復号化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |