本发明涉及一种对数据进行有损或无损压缩的编码及解码系统,特别是多分量数据如彩色图像和视频数据的编码及解码的方法和装置。
背景技术:
1、随着人类社会进入大数据、云计算、移动计算、云-移动计算、超高清(4k)和特超高清(8k)视频图像分辨率、4g/5g通讯、虚拟现实的时代,对各种数据,包括大数据、图像数据、视频数据,进行超高压缩比和极高质量的数据压缩成为必不可少的技术。
2、数据集是由数据的样值也称数据元素(例如:字节、比特、像素、空间采样点、变换域系数)组成的集合。对一个排列成一定空间(一维、二维、或多维)形状和具有一定元素数目以及一定采样格式的数据集(例如:一个文件、一个一维数据队列、一个二维数据文件、一帧图像、一个视频序列、一个变换域、一个变换块、多个变换块、一个三维场景、一个持续变化的三维场景的序列),特别是二维或以上数据集进行数据压缩的编码(以及相应的解码)时,通常把此数据集划分成若干具有预定形状和大小(即元素数目)的块的子集,称为编码块(从解码的角度也就是解码块,统称为编解码块),以编解码块为单位,一个块一个块地进行编码或者解码。在任一时刻,正在编码中的编码块称为当前编码块。在任一时刻,正在解码中的解码块称为当前解码块。当前编码块或当前解码块统称为当前编解码块或简称为当前块。
3、 正在编码或者解码中的数据元素(简称为元素)称为当前编码数据元素或者当前解码数据元素,统称为当前数据元素,简称为当前元素。元素由n个分量(通常1≤n≤5)组成,因此数据集和编解码块也都由n个分量组成。例如,一帧图像的元素即像素排列成矩形形状,具有1920(宽度)x 1080(高度)的大小(分辨率),由3个分量组成:g(绿色)分量,b(蓝色)分量,r(红色)分量或y(亮度)分量,u(cb色度)分量,v(cr色度)分量。
4、元素或其分量统称为样值。一般可从上下文确定样值是指元素还是元素的分量。如果从上下文不能确定样值是指元素还是元素的分量,样值就是指元素和/或元素的分量。
5、 作为编码对象的不少数据集和编解码块具有一种采样格式。例如,对于计算机产生的含图形和文字的图像,通常采用一种称为4:4:4(简称444)的采样格式,就是数据集的三个分量都具有同样的采样率和大小(即分量样值的数目)。对于摄像机摄取的自然图像和视频,通常采用一种称为4:2:0(简称420)的采样格式,就是具有矩形形状和三个分量的数据集(如图像或视频)的两个称为次分量的分量(d分量和e分量)的采样率和尺寸分别是另一个称为主分量的分量(f分量)的四分之一。在这种情形,一个d分量d[i][j]和一个e分量e[i][j]对应于四个(2×2个)f分量f[2i][2j],f[2i+1][2j],f[2i][2j+1],f[2i+1][2j+1]。如果f分量的分辨率是2m×2n,即数据集的f分量是f = {f[i][j]:i = 0~2m-1,j = 0~2n-1},那么d分量和e分量的分辨率分别都是m×n,即数据集的d分量和e分量分别是d = {d[i][j]:i = 0~m-1,j = 0~n-1}和e = {e[i][j]:i = 0~m-1,j = 0~n-1}。在需要较高视频质量的场合,则常常使用一种称为4:2:2(简称422)的采样格式,就是具有矩形形状和三个分量的数据集(如图像或视频)的两个次分量(d分量和e分量)的采样率和尺寸分别是另一个主分量(f分量)的二分之一。在这种情形,在数据集(如图像或视频)的一个方向(如水平方向),一个d分量d[i][j]和一个e分量e[i][j]对应于两个(2×1个)f分量f[2i][j]和f[2i+1][j]。如果f分量的分辨率是2m×n,,即数据集的f分量是f = {f[i][j]:i = 0~2m-1,j = 0~n-1},那么d分量和e分量的分辨率分别都是m×n,即数据集的d分量和e分量分别是d = {d[i][j]:i = 0~m-1,j = 0~n-1}和e = {e[i][j]:i = 0~m-1,j = 0~n-1}。在采用yuv色彩格式的图像和视频中,以上所述f、d、e分量通常分别是y、u、v分量。在采用rgb色彩格式的图像和视频中,以上所述f、d、e分量通常分别是g、b、r分量或g、r、b分量。在数据是图像或视频的场合,采样格式也常称为色度格式。
6、 444采样格式的图像或视频经过d和e分量的一个方向(如水平方向或垂直方向)的2:1下采样产生422采样格式,经过d和e分量的水平2:1下采样以及垂直2:1下采样(总体4:1下采样)产生420采样格式。
7、多分量数据的各个分量之间一般具有一定程度的相关性。因此,使用分量间预测可以有效地起到数据压缩的作用。
8、适用分量间预测的数据包括原始数据、进行其他预测如相邻像素预测、串预测、视频的帧间预测之前的数据、进行其他预测如相邻像素预测、串预测、视频的帧间预测之后的数据、处于编解码各阶段的其他数据、残差数据。
9、在现有技术中,仅使用预定的一部分分量预测预定的不同的另外一部分分量。分量间预测前后的分量数目一般也不变。因此,现有分量间预测的作用有限。
技术实现思路
1、为了充分利用分量间相关性来提高编码效率,本发明提供了一种在编解码块层次动态地选择多个权重值之一进行多分量数据的分量间自预测以减少分量数目的数据压缩方法和装置。在多个分量的所述自预测中,各分量都互相使用内部其他分量的加权值产生预测差值。当选择所述多个权重值中的若干预定权重值时,舍弃至少一个数值很小接近于零的预测差值分量,从而减少分量数目进而大幅减少数据量,提高编码效率。
2、本发明的首要技术特征是对具有多个(两个或以上)分量的数据进行编解码时,一部分编解码块选择最合适的权重值进行分量间自预测以减少分量数目,另一部分编解码块选择最合适的另外的权重值进行分量间自预测或实际上不进行分量间预测,这时,分量数目没有减少。
3、本发明的编码方法或装置的最基本的特有技术特征是至少对多分量数据中的至少两个分量动态地选择多个权重值之一作为对一个编码块进行分量间自预测编码以减少分量数目时所采用的特定权重值,输出的压缩数据码流中至少含表示所述编码块是否使用分量间自预测和/或表示其所采用的特定权重值所需要的部分或全部信息。图1是本发明的编码方法或装置的一个示意图。
4、本发明的解码方法或装置的最基本的特有技术特征是解析压缩数据码流,至少获取表示一个解码块是否使用分量间自预测和/或表示其所采用的特定权重值所需要的部分或全部信息;如果所述信息表示所述解码块使用分量间自预测,则至少采用所述特定权重值,对所述解码块进行分量间自预测解码。图2是本发明的解码方法或装置的一个示意图。
5、根据本发明的一个方面,提供了一种至少对具有l(l≥2)个分量的数据中预定的k(2≤k≤l)个分量进行压缩的编码方法或装置,至少包括完成下列功能和操作之一或其组合的步骤或模块:
6、至少根据一个编码块的各分量间的相关性的特点,动态地选择多个权重值之一作为对所述编码块的至少k个分量进行分量间自预测编码时所采用的特定权重值;
7、至少采用特定权重值,对一个编码块的至少k个分量进行k个分量间自预测编码,即对k个分量中的j(1 ≤ j ≤ k)个分量的每个分量,都从其他分量构造出该分量的预测值,至少从该分量的值和/或该分量的预测值,产生j个预测差值;至少对一部分编码块,j<k,以起到减少分量数目的作用;
8、至少将表示一个编码块的至少k个分量是否使用k个分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的j(1 ≤ j ≤ k)个预测差值所需要的部分或全部信息写入压缩数据码流。
9、从第一个角度,本发明提供了一种至少对具有l(l≥2)个分量的数据中预定的k(2≤k≤l)个分量进行压缩的编码方法,其特征在于至少包括下列步骤之一或其组合:
10、步骤1)至少根据一个编码块的各分量间的相关性的特点,动态地选择多个权重值之一作为对所述编码块的至少k个分量进行分量间自预测编码时所采用的特定权重值;
11、步骤2)至少采用特定权重值,对一个编码块的至少k个分量进行k个分量间自预测编码,即对k个分量中的j(1 ≤ j ≤ k)个分量的每个分量,都从其他分量构造出该分量的预测值,至少从该分量的值和/或该分量的预测值,产生j个预测差值;至少对一部分编码块,j<k,以起到减少分量数目的作用;
12、步骤3)至少将表示一个编码块的至少k个分量是否使用k个分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的j(1 ≤ j ≤ k)个预测差值所需要的部分或全部信息写入压缩数据码流。
13、从第二个角度,本发明提供了一种至少对具有l(l≥2)个分量的数据中预定的k(2≤k≤l)个分量进行压缩的编码装置,其特征在于至少包括下列模块之一或其组合:
14、1)权重值选择模块:至少根据一个编码块的各分量间的相关性的特点,动态地选择多个权重值之一作为对所述编码块的至少k个分量进行分量间自预测编码时所采用的特定权重值;
15、2)分量间自预测编码模块:至少采用特定权重值,对一个编码块的至少k个分量进行k个分量间自预测编码,即对k个分量中的j(1 ≤ j ≤ k)个分量的每个分量,都从其他分量构造出该分量的预测值,至少从该分量的值和/或该分量的预测值,产生j个预测差值;至少对一部分编码块,j<k,以起到减少分量数目的作用;
16、3)压缩数据码流产生模块:至少将表示一个编码块的至少k个分量是否使用k个分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的j(1 ≤ j ≤k)个预测差值所需要的部分或全部信息写入压缩数据码流。
17、根据本发明的另一个方面,提供了一种至少对具有l(l≥2)个分量的数据中预定的k(2≤k≤l)个分量进行压缩的解码方法或装置,至少包括完成下列功能和操作之一或其组合的步骤或模块:
18、解析压缩数据码流,至少获取表示一个解码块的至少k个分量是否使用k个分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的j(1 ≤ j ≤ k)个预测差值所需要的部分或全部信息;
19、至少根据从压缩数据码流中获得的信息,动态地选择多个权重值之一作为对一个解码块的至少k个分量进行分量间自预测解码时所采用的特定权重值;
20、至少采用特定权重值,至少使用j(1 ≤ j ≤ k)个预测差值的重建值,对一个解码块的至少k个分量进行k个分量间自预测解码,即至少从j个预测差值的重建值,经过包括加权组合的操作,产生k个分量的重建值;至少对一部分解码块,j<k,以起到减少分量数目的作用。
21、从第三个角度,本发明提供了一种至少对具有l(l≥2)个分量的数据中预定的k(2≤k≤l)个分量进行压缩的解码方法,其特征在于至少包括下列步骤之一或其组合:
22、步骤1)解析压缩数据码流,至少获取表示一个解码块的至少k个分量是否使用k个分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的j(1 ≤ j ≤k)个预测差值所需要的部分或全部信息;
23、步骤2)至少根据从压缩数据码流中获得的信息,动态地选择多个权重值之一作为对一个解码块的至少k个分量进行分量间自预测解码时所采用的特定权重值;
24、步骤3)至少采用特定权重值,至少使用j(1 ≤ j ≤ k)个预测差值的重建值,对一个解码块的至少k个分量进行k个分量间自预测解码,即至少从j个预测差值的重建值,经过包括加权组合的操作,产生k个分量的重建值;至少对一部分解码块,j<k,以起到减少分量数目的作用。
25、从第四个角度,本发明提供了一种至少对具有l(l≥2)个分量的数据中预定的k(2≤k≤l)个分量进行压缩的解码装置,其特征在于至少包括下列模块之一或其组合:
26、1)压缩数据码流解析模块:解析压缩数据码流,至少获取表示一个解码块的至少k个分量是否使用k个分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的j(1 ≤ j ≤ k)个预测差值所需要的部分或全部信息;
27、2)权重值选择模块:至少根据从压缩数据码流中获得的信息,动态地选择多个权重值之一作为对一个解码块的至少k个分量进行分量间自预测解码时所采用的特定权重值;
28、3)分量间自预测解码模块:至少采用特定权重值,至少使用j(1 ≤ j ≤ k)个预测差值的重建值,对一个解码块的至少k个分量进行k个分量间自预测解码,即至少从j个预测差值的重建值,经过包括加权组合的操作,产生k个分量的重建值;至少对一部分解码块,j<k,以起到减少分量数目的作用。
29、 本发明适用于对数据进行有损压缩的编码和解码,本发明也同样适用于对数据进行无损压缩的编码和解码。本发明适用于图像数据的编码和解码,本发明也同样适用于其他任何一维、二维或多维数据的编码和解码。
30、本发明中,数据包括下列类型的数据之一或其组合
31、1)一维数据;
32、2)二维数据;
33、3)多维数据;
34、4)图形;
35、5)分维图形;
36、6)图像;
37、7)图像的序列;
38、8)视频;
39、9)三维场景;
40、10)持续变化的三维场景的序列;
41、11)虚拟现实的场景;
42、12)持续变化的虚拟现实的场景的序列;
43、13)像素形式的图像;
44、14)图像或视频的预测残差数据;
45、15)图像或视频的变换域数据;
46、16)图像或视频的量化后数据;
47、17)二维或二维以上字节的集合;
48、18)二维或二维以上比特的集合;
49、19)像素的集合;
50、20)像素分量的集合。
51、本发明中,在数据是从图像、图像的序列、视频等产生的情形,编码块或解码块是图像的一个编码区域或一个解码区域,包括以下至少一种:整幅图像、图像的子图像、条带slice、片块tile、宏块、最大编码单元lcu、编码树单元ctu、编码单元cu、cu的子区域、子编码单元subcu、预测单元pu、pu的子区域、子预测单元subpu、变换单元tu、tu的子区域、子变换单元subtu。
52、本发明的所述编码方法或装置或者解码方法或装置中,表示编解码块的至少k个分量是否使用分量间自预测和/或表示自预测所采用的特定权重值和/或表示自预测产生的预测差值所需要的部分或全部信息存在于所述压缩数据码流的下列地方之一或若干处:
53、1)序列参数集;
54、2)图像参数集;
55、3)序列头;
56、4)图像头;
57、5)条带头;
58、6)ctu头;
59、7)cu头;
60、8)编解码块头;
61、所述信息是一个或几个直接存在或隐含推导或混合的语法元素;所述直接存在的语法元素由压缩数据码流中的一个或多个位串(比特串)所组成;所述隐含推导的语法元素是从其他编码参数和/或编解码变量和/或压缩数据码流的其他语法元素导出的语法元素或预定的语法元素缺省值;所述混合的语法元素是部分直接存在(即由压缩数据码流中的一个或多个位串所组成)部分隐含推导(即从其他编码参数和/或编解码变量和/或压缩数据码流的其他语法元素和/或预定的语法元素缺省值导出)混合的语法元素。
62、以上通过若干特定的具体实例说明本发明的技术特征。本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在不背离本发明的精神下进行各种修饰或改变。
1.一种至少对具有l,l≥2,个分量的图象、图像的序列、视频数据中预定的2个分量进行压缩的编码方法,其特征在于至少包括下列步骤:
2.根据权利要求1所述的编码方法,其特征在于包括下列特征之一或其任一不冲突的组合:
3.根据权利要求1所述的编码方法,其特征在于包括下列特征之一或其任一不冲突的组合:
4.根据权利要求1所述的编码方法,其特征在于包括下列特征之一或其任一不冲突的组合:
5.一种至少对具有l,l≥2,个分量的图象、图像的序列、视频数据中预定的2个分量进行压缩的编码装置,其特征在于,包括实现如权利要求1至4任一项所述的一种至少对具有l,l≥2,个分量的图象、图像的序列、视频数据中预定的2个分量进行压缩的编码方法的模块。
6.一种至少对具有l,l≥2,个分量的图象、图像的序列、视频数据中预定的2个分量进行压缩的解码方法,其特征在于至少包括下列步骤:
7.根据权利要求6所述的解码方法,其特征在于包括下列特征之一或其任一不冲突的组合:
8.根据权利要求6所述的解码方法,其特征在于包括下列特征之一或其任一不冲突的组合:
9.根据权利要求6所述的解码方法,其特征在于包括下列特征之一或其任一不冲突的组合:
10.一种至少对具有l,l≥2,个分量的图象、图像的序列、视频数据中预定的2个分量进行压缩的解码装置,其特征在于,包括实现如权利要求6至9任一项所述的一种至少对具有l,l≥2,个分量的图象、图像的序列、视频数据中预定的2个分量进行压缩的解码方法的模块。