本发明涉及一种对数据进行有损或无损压缩的编码及解码系统,特别是图像和视频数据的编码及解码的方法和装置。
背景技术:
随着人类社会进入大数据、云计算、移动计算、云-移动计算、超高清(4k)和特超高清(8k)视频图像分辨率、4g/5g通讯、虚拟现实的时代,对各种数据,包括大数据、图像数据、视频数据,进行超高压缩比和极高质量的数据压缩成为必不可少的技术。
数据集是由数据元素(例如:字节、比特、像素)组成的集合。对一个排列成一定形状和具有一定元素数目(即具有一定采样格式)的数据集(例如:一个文件、一帧图像、一个视频序列)进行数据压缩的编码(以及相应的解码)时,通常把此数据集划分成若干具有预定形状和大小(即元素数目)的块的子集,称为编码块(从解码的角度也就是解码块,统称为编解码块),以编解码块为单位,一块一块进行编码或者解码。在任一时刻,正在编码中的编码块称为当前编码块。在任一时刻,正在解码中的解码块称为当前解码块。当前编码块或当前解码块统称为当前编解码块或简称为当前块。正在编码或者解码中的数据元素(简称为元素)称为当前编码数据元素或者当前解码数据元素,统称为当前数据元素,简称为当前元素。元素由n个分量(通常1≤n≤5)组成,因此数据集和编解码块也都由n个分量组成。例如,一帧图像的元素即像素排列成矩形形状,具有1920(宽度)x1080(高度)的大小(分辨率),由3个分量组成:g(绿色)分量,b(蓝色)分量,r(红色)分量或y(亮度)分量,u(cb色度)分量,v(cr色度)分量。
在现有技术中,作为编码对象的数据集和编解码块都只有一种固定的采样格式和大小。例如,对于计算机产生的含图形和文字的图像,通常采用一种称为4:4:4的采样格式,就是数据集的3个分量都具有同样的采样率和大小(即分量样值的数目)。对于摄像机摄取的自然图像和视频,通常采用一种称为4:2:0的采样格式,就是具有矩形形状和3个分量的数据集(如图像或视频)的2个分量(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的采样格式,就是具有矩形形状和3个分量的数据集(如图像或视频)的2个分量(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分量。
不同的采样格式是指数据集和/或编解码块的至少一个分量具有不同的采样率和大小(即分量样值的数目)。不同的采样率和大小通常通过上采样操作或下采样操作互相转换。上采样操作是增加样值的数目的操作。下采样操作是减少样值的数目的操作。因此,不同的采样格式也就是数据集和/或编解码块的至少一个分量具有不同的样值数目。
例如,4:4:4采样格式,4:2:2采样格式,4:2:0采样格式是三种不同的采样格式。
在现有技术中,即使在某些情形,作为编码对象的数据集和编解码块有多种采样格式和大小,对这些不同采样格式和大小的编码对象进行编码时,采用的是同一种编码方式,或者不同的编码方式,总是对单一采样格式和大小的编码对象进行编码。
对于由多种特性的内容混合而成的数据集,例如由计算机产生的图形和文字与摄像机摄取的自然图像和视频混合而成的屏幕内容图像和视频、虚拟现实的图像和视频,单一的采样格式和大小、本质上单一的编码方式,极大影响了数据压缩效率的提高。
技术实现要素:
为了解决对由多种特性的内容混合而成的数据集的压缩中的这一问题,本发明提供了一种动态采用多种(即两种或以上)采样格式的数据压缩方法和装置:数据集和各编解码块有k(k>1)个分别具有k种不同采样格式的版本;在对一个编解码块进行编解码时,根据所述编解码块的固有数据特性,选择对所述编解码块的所述k个版本之一进行编解码。
本发明的首要技术特征是动态采用多种采样格式(即多种具有不同采样格式的数据版本)之一对一个编解码块进行编解码。
本发明中,优选地,采用两种采样格式之一对一个编解码块进行编解码。
本发明中,优选地,数据集及其元素由3个分量组成。
本发明中,优选地,数据集是具有矩形形状的图像。
本发明中,优选地,数据集是具有矩形形状的图像的序列。
本发明中,优选地,数据集是由3个分量组成的图像。
本发明中,优选地,数据集是由3个分量组成的图像序列。
本发明中,优选地,数据集是由3个分量组成的视频。
本发明中,优选地,数据集是由r分量、g分量、b分量组成的图像。
本发明中,优选地,数据集是由r分量、g分量、b分量组成的视频。
本发明中,优选地,数据集是由y亮度分量、u色度分量、v色度分量组成的图像。
本发明中,优选地,数据集是由y亮度分量、u色度分量、v色度分量组成的视频。
本发明中,优选地,两种采样格式是4:4:4采样格式和4:2:0采样格式。
本发明中,优选地,两种采样格式是4:4:4采样格式和4:2:2采样格式。
本发明中,优选地,两种采样格式是4:2:0采样格式和4:2:2采样格式。
本发明中,优选地,多种采样格式中的一种是主采样格式,而其他采样格式则是所述主采样格式经过下采样操作得到的采样格式。
本发明中,优选地,在编解码中产生的一种采样格式的数据版本,经过采样格式转换操作转换为其他采样格式的数据版本。
本发明中,优选地,采样格式转换操作包括重采样操作和/或上采样操作和/或下采样操作。
本发明的编码方法或装置的最基本的特有技术特征是根据一个当前编码块的特性自适应地采用预定的多种采样格式之一对所述当前编码块进行编码,产生至少含采样格式的标识码的信息及其对应的解码时需要的其他信息的压缩数据码流。图1是本发明的编码方法或装置的一个示意图。优选地,采用两种采样格式之一对一个编码块进行编码。优选地,数据集及其元素由3个分量组成。优选地,数据集是具有矩形形状的图像。优选地,数据集是具有矩形形状的图像的序列。优选地,数据集是由3个分量组成的图像。优选地,数据集是由3个分量组成的图像序列。优选地,数据集是由3个分量组成的视频。优选地,数据集是由r分量、g分量、b分量组成的图像。优选地,数据集是由r分量、g分量、b分量组成的视频。优选地,数据集是由y亮度分量、u色度分量、v色度分量组成的图像。优选地,数据集是由y亮度分量、u色度分量、v色度分量组成的视频。优选地,两种采样格式是4:4:4采样格式和4:2:0采样格式。优选地,两种采样格式是4:4:4采样格式和4:2:2采样格式。优选地,两种采样格式是4:2:0采样格式和4:2:2采样格式。优选地,多种采样格式中的一种是主采样格式,而其他采样格式则是所述主采样格式经过下采样操作得到的采样格式。优选地,在编码中产生的一种采样格式的数据版本,经过采样格式转换操作转换为其他采样格式的数据版本。优选地,采样格式转换操作包括重采样操作和/或上采样操作和/或下采样操作。
本发明的解码方法或装置的最基本的特有技术特征是解析压缩数据码流,获取采样格式的信息,根据所述采样格式的信息采用预定的多种采样格式之一对一个当前解码块进行解码。图2是本发明的解码方法或装置的一个示意图。优选地,采用两种采样格式之一对一个解码块进行解码。优选地,数据集及其元素由3个分量组成。优选地,数据集是具有矩形形状的图像。优选地,数据集是具有矩形形状的图像的序列。优选地,数据集是由3个分量组成的图像。优选地,数据集是由3个分量组成的图像序列。优选地,数据集是由3个分量组成的视频。优选地,数据集是由r分量、g分量、b分量组成的图像。优选地,数据集是由r分量、g分量、b分量组成的视频。优选地,数据集是由y亮度分量、u色度分量、v色度分量组成的图像。优选地,数据集是由y亮度分量、u色度分量、v色度分量组成的视频。优选地,两种采样格式是4:4:4采样格式和4:2:0采样格式。优选地,两种采样格式是4:4:4采样格式和4:2:2采样格式。优选地,两种采样格式是4:2:0采样格式和4:2:2采样格式。优选地,多种采样格式中的一种是主采样格式,而其他采样格式则是所述主采样格式经过下采样操作得到的采样格式。优选地,在解码中产生的一种采样格式的数据版本,经过采样格式转换操作转换为其他采样格式的数据版本。优选地,采样格式转换操作包括重采样操作和/或上采样操作和/或下采样操作。
根据本发明的一个方面,提供了一种对数据进行压缩的编码方法或装置,至少包括完成下列功能和操作的步骤或模块:
动态选择预定的多种采样格式之中的一种采样格式对一个编码块进行编码,产生至少含采样格式的信息及其语法元素的压缩数据码流。
根据本发明的另一个方面,还提供了一种对数据进行压缩的解码方法或装置,至少包括完成下列功能和操作的步骤或模块:
解析压缩数据码流,获取采样格式的信息,根据所述采样格式的信息采用预定的多种采样格式之中的一种采样格式对一个解码块进行解码。
本发明适用于对数据进行有损压缩的编码和解码,本发明也同样适用于数据进行无损压缩的编码和解码。本发明适用于一维数据如字符串数据或字节串数据的编码和解码,本发明也同样适用于二维或以上数据如图像或视频数据的编码和解码。
本发明中,数据包括下列类型的数据之一或其组合
1)一维数据;
2)二维数据;
3)多维数据;
4)图像;
5)图像的序列;
6)视频;
7)音频;
8)文件;
9)字节;
10)比特;
11)像素。
本发明中,在数据是图像、图像的序列、视频等的情形,编码块或者解码块是图像的一个编码区域或者一个解码区域,包括以下情形:图像的子图像、宏块、最大编码单元lcu、编码树单元ctu、编码单元cu、cu的子区域、预测单元pu、变换单元tu。
本发明中,所述采样格式是下列采样格式之一:
4:4:4采样格式;
或者
4:2:2采样格式;
或者
4:2:0采样格式。
本发明中,使用预定的多种编解码方式之一对一个编解码块进行编解码,所述编解码方式包括:
1)帧内预测编解码模式;
2)帧间预测编解码模式;
3)串匹配也称串预测或通用串匹配或通用串预测编解码模式;
4)字典编解码模式;
5)调色板编解码模式;
6)帧内块匹配也称帧内块预测或帧内块复制编解码模式;
7)块匹配也称块预测或块复制编解码模式
8)以上各模式的一个子模式。
以上通过若干特定的具体实例说明本发明的技术特征。本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在不背离本发明的精神下进行各种修饰或改变。
以下是本发明的更多的实施细节或变体。
实施或变体例1
所述编码方法或装置或者解码方法或装置中,所述多种采样格式是下列情形之一:
两种采样格式;
或者
三种采样格式;
或者
四种采样格式。
实施或变体例2
所述编码方法或装置或者解码方法或装置中,所述数据是下列类型的数据之一。
由3个分量组成的数据;
或者
具有矩形形状的图像;
或者
具有矩形形状的图像的序列;
或者
由3个分量组成的图像;
或者
由3个分量组成的图像序列;
或者
由3个分量组成的视频;
或者
由r分量、g分量、b分量组成的图像;
或者
由r分量、g分量、b分量组成的图像序列;
或者
由r分量、g分量、b分量组成的视频;
或者
由y亮度分量、u色度分量、v色度分量组成的图像;
或者
由y亮度分量、u色度分量、v色度分量组成的图像序列;
或者
由y亮度分量、u色度分量、v色度分量组成的视频;
或者
以上种类数据的一个编解码块;
或者
以上种类数据的变体,包括经过下列操作之一或其组合的变体数据:经过预测的预测残差、经过变换的变换域数据、经过差分运算的差分数据、经过量化的量化数据、经过反量化的数据、经过反变换的数据、经过去块效应滤波的数据、经过样值偏移补偿的数据、经过自适应修正滤波的数据。
实施或变体例3
所述编码方法或装置或者解码方法或装置中,所述数据是由3个分量组成的图像,所述多种采样格式是两种采样格式,所述两种采样格式是下列情形之一:
4:4:4采样格式和4:2:0采样格式;
或者
4:4:4采样格式和4:2:2采样格式;
或者
4:2:0采样格式和4:2:2采样格式。
实施或变体例4
所述编码方法或装置或者解码方法或装置中,所述多种采样格式中的一种是主采样格式,而其他采样格式则是所述主采样格式经过下采样操作得到的采样格式。
实施或变体例5
所述编码方法或装置或者解码方法或装置中,在编解码中产生的一种采样格式的数据版本,经过采样格式转换操作转换为其他采样格式的数据版本。
实施或变体例6
实施或变体例5所述编码方法或装置或者解码方法或装置中,所述采样格式转换操作包括对数据或其分量进行重采样操作和/或上采样操作和/或下采样操作。
实施或变体例7
所述编码方法或装置或者解码方法或装置中,所述数据是预测残差,对预测残差进行采样格式转换操作,所述采样格式转换操作包括对色度分量进行下列操作:
重采样操作
和/或
上采样操作
和/或
下采样操作
和/或
对原始预测残差进行下采样操作
和/或
对重构预测残差进行上采样操作。
实施或变体例8
所述编码方法或装置或者解码方法或装置中:
使用预定的多种(两种或以上)编解码方式之一对一个编解码块进行编解码;
对于使用预定的若干种(一种或以上)编解码方式进行编解码的编解码块,采用预定的一组(含两种或以上)采样格式之中的一种采样格式对一个编解码块进行编解码;
对于使用其余的编解码方式进行编解码的编解码块,则
采用预定的一种采样格式对各编解码块进行编解码,
或者
采用预定的第二组(含两种或以上)采样格式之一对一个编解码块进行编解码,
或者
按照预定的其他规则采用所述多种采样格式之一对一个编解码块进行编解码。
实施或变体例9
所述编码方法或装置或者解码方法或装置中:
至少使用帧内预测编解码模式对编解码块进行编解码;
对于使用帧内预测编解码模式进行编解码的编解码块,采用预定的两种采样格式之中的一种采样格式对一个编解码块进行编解码。
实施或变体例10
所述编码方法或装置或者解码方法或装置中:
至少使用帧内预测编解码模式对编解码块进行编解码,
在序列参数集或序列头或图像参数集或图像头或条带头或ctu头或cu头中,存在一个直接或间接或直接间接混合的采样格式标识码,表示一个序列或一帧图像或一个条带或一个ctu或一个cu中使用帧内预测编解码模式的编解码块采用哪一种或哪几种采样格式;
和/或
至少使用帧间预测编解码模式对编解码块进行编解码,
在序列参数集或序列头或图像参数集或图像头或条带头或ctu头或cu头中,存在一个直接或间接或直接间接混合的采样格式标识码,表示一个序列或一帧图像或一个条带或一个ctu或一个cu中使用帧间预测编解码模式的编解码块采用哪一种或哪几种采样格式;
和/或
至少使用串预测编解码模式或其一种子模式对编解码块进行编解码,
在序列参数集或序列头或图像参数集或图像头或条带头或ctu头或cu头中,存在一个直接或间接或直接间接混合的采样格式标识码,表示一个序列或一帧图像或一个条带或一个ctu或一个cu中使用串预测编解码模式或其一种子模式的编解码块采用哪一种或哪几种采样格式;
所述直接的采样格式标识码由压缩数据码流中的一个或多个位串(二元符号串)所组成。所述间接的采样格式标识码是从其他编解码参数和/或压缩数据码流的其他语法元素导出的采样格式标识码或预定的标识码缺省值。所述直接间接混合的采样格式标识码是部分直接(即由压缩数据码流中的一个或多个位串所组成)部分间接(即从其他编解码参数和/或压缩数据码流的其他语法元素导出或预定缺省)混合的采样格式标识码。
实施或变体例11
所述编码方法或装置或者解码方法或装置中,至少使用帧内预测编解码模式对编解码块进行编解码,在序列参数集或序列头中有下列斜体表示的参数或语法元素,用来表示所采用的采样格式:
色度格式chroma_format
如果色度格式的值表示序列的主采样格式是4:4:4采样格式或4:2:2采样格式,则
{
帧内编码采样格式420标志intra_chroma_format_420_flag
如果帧内编码采样格式420标志的值为1,则
{
序列内使用帧内预测编解码模式的编解码块全部都采用4:2:0采样格式
}
否则
{
帧内编码采样格式自适应标志intra_chroma_format_adaptive_flag
如果帧内编码采样格式自适应标志的值为0,则
{
序列内使用帧内预测编解码模式的编解码块全部都采用序列的主采样格式
}
否则
{
序列内使用帧内预测编解码模式的编解码块所采用的采样格式由图像参数集或图像头中的图像帧内编码采样格式标志的值来规定
}
}
}。
实施或变体例12
实施或变体例11所述编码方法或装置或者解码方法或装置中,在图像参数集或图像头中有下列斜体表示的参数或语法元素,用来表示所采用的采样格式:
图像帧内编码采样格式标志intra_chroma_format_flag
如果图像帧内编码采样格式标志的值为1,则
{
图像内使用帧内预测编解码模式的编解码块全部都采用4:2:0采样格式
}
否则
{
图像内使用帧内预测编解码模式的编解码块全部都采用序列的主采样格式
}。
实施或变体例13
所述编码方法或装置或者解码方法或装置中,所述数据是具有矩形形状和3个分量的图像或图像的序列,所述多种采样格式是两种采样格式,所述两种采样格式是4:4:4采样格式和4:2:0采样格式,4:2:0采样格式的数据版本的d分量d420={d420[i][j]:i=0~m-1,j=0~n-1}和e分量e420={e420[i][j]:i=0~m-1,j=0~n-1},分别经过下列上采样操作转换为4:4:4采样格式的数据版本的d分量d444={d444[i][j]:i=0~2m-1,j=0~2n-1}和e分量e444={e444[i][j]:i=0~2m-1,j=0~2n-1}:
d444[2i][2j]=d420[i][j]
d444[2i+1][2j]=d420[i][j]
d444[2i][2j+1]=d420[i][j]
d444[2i+1][2j+1]=d420[i][j]
e444[2i][2j]=e420[i][j]
e444[2i+1][2j]=e420[i][j]
e444[2i][2j+1]=e420[i][j]
e444[2i+1][2j+1]=e420[i][j]
其中,i=0~m-1,j=0~n-1;4:4:4采样格式的数据版本的d分量d444={d444[i][j]:i=0~2m-1,j=0~2n-1}和e分量e444={e444[i][j]:i=0~2m-1,j=0~2n-1},分别经过下列下采样操作转换为4:2:0采样格式的数据版本的d分量d420={d420[i][j]:i=0~m-1,j=0~n-1}和e分量e420={e420[i][j]:i=0~m-1,j=0~n-1}:
d420[i][j]=(d444[2i][2j]+d444[2i+1][2j]+d444[2i][2j+1]+d444[2i+1][2j+1]+r)>>2
e420[i][j]=(e444[2i][2j]+e444[2i+1][2j]+e444[2i][2j+1]+e444[2i+1][2j+1]+r)>>2
其中,i=0~m-1,j=0~n-1,r等于0(截断法)或2(四舍五入法)。
实施或变体例14
所述编码方法或装置或者解码方法或装置中,在所述压缩数据码流的下列地方之一或若干处存在表示允许采用多种采样格式进行编解码的标志位:
1)序列参数集;通常是是序列参数集的一个直接存在或隐含推导的语法元素;
2)图像参数集;通常是图像参数集的一个直接存在或隐含推导的语法元素;
3)序列头;通常是序列头的一个直接存在或隐含推导的语法元素;
4)条带头;通常是条带头的一个直接存在或隐含推导的语法元素;
5)图像头;通常是图像头的一个直接存在或隐含推导的语法元素;
6)ctu头;通常是ctu头的一个直接存在或隐含推导的语法元素;
7)cu头;通常是cu头的一个直接存在或隐含推导的语法元素;
8)编解码块头;通常是编解码块头的一个直接存在或隐含推导的语法元素。
实施或变体例15
所述编码方法或装置或者解码方法或装置中,在所述压缩数据码流的下列地方之一或若干处存在表示允许使用采用4:4:4采样格式的编解码块的标志位:
1)序列参数集;通常是是序列参数集的一个直接存在或隐含推导的语法元素;
2)图像参数集;通常是图像参数集的一个直接存在或隐含推导的语法元素;
3)序列头;通常是序列头的一个直接存在或隐含推导的语法元素;
4)条带头;通常是条带头的一个直接存在或隐含推导的语法元素;
5)图像头;通常是图像头的一个直接存在或隐含推导的语法元素。
实施或变体例16
所述编码方法或装置或者解码方法或装置中,所述预定的多种采样格式分别用多个预定的值来表示,一种采样格式对应于一个预定的值k,每个所述编解码块在所述压缩数据码流中都有一个直接或间接或直接间接混合的采样格式标识码,
如果所述采样格式标识码等于k,则
{
采用与k对应的一种采样格式对所述编解码块进行编解码
}
所述直接的采样格式标识码由压缩数据码流中的一个或多个位串(二元符号串)所组成。所述间接的采样格式标识码是从其他编解码参数和/或压缩数据码流的其他语法元素导出的采样格式标识码或预定的标识码缺省值。所述直接间接混合的采样格式标识码是部分直接(即由压缩数据码流中的一个或多个位串所组成)部分间接(即从其他编解码参数和/或压缩数据码流的其他语法元素导出或预定缺省)混合的采样格式标识码。
实施或变体例17
所述编码方法或装置或者解码方法或装置中,用来表示所述编解码块的采样格式的采样格式标识码语法元素以下列形式存在于所述编解码块的压缩数据码流中:
编解码块头信息语法元素、采样格式标识码语法元素、更多的编解码块头信息语法元素、编解码块数据语法元素;
或
编解码块头信息语法元素、部分采样格式标识码语法元素、更多的编解码块头信息语法元素、部分编解码块数据语法元素、另一部分采样格式标识码语法元素、另一部分编解码块数据语法元素;
其中,采样格式标识码取一个值时,采用与所述值对应的那种采样格式对所述编解码块进行编解码。