CN113767629A - 用于指示色度量化参数映射函数的方法和装置 - Google Patents
用于指示色度量化参数映射函数的方法和装置 Download PDFInfo
- Publication number
- CN113767629A CN113767629A CN202080030925.4A CN202080030925A CN113767629A CN 113767629 A CN113767629 A CN 113767629A CN 202080030925 A CN202080030925 A CN 202080030925A CN 113767629 A CN113767629 A CN 113767629A
- Authority
- CN
- China
- Prior art keywords
- chroma
- mapping
- value
- cbcr
- qpi
- 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.)
- Pending
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 585
- 238000000034 method Methods 0.000 title claims abstract description 300
- 238000013139 quantization Methods 0.000 title claims abstract description 174
- 241000023320 Luma <angiosperm> Species 0.000 claims abstract description 88
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 claims abstract description 88
- 238000012545 processing Methods 0.000 claims description 57
- 238000005070 sampling Methods 0.000 claims description 56
- 238000003491 array Methods 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 25
- 238000009795 derivation Methods 0.000 claims description 21
- 230000003044 adaptive effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000153 supplemental effect Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 461
- 230000008569 process Effects 0.000 description 29
- 230000006854 communication Effects 0.000 description 28
- 238000004891 communication Methods 0.000 description 28
- 239000013598 vector Substances 0.000 description 24
- 230000006399 behavior Effects 0.000 description 22
- 238000005192 partition Methods 0.000 description 21
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 19
- 239000000872 buffer Substances 0.000 description 19
- 230000006835 compression Effects 0.000 description 16
- 238000007906 compression Methods 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 238000001914 filtration Methods 0.000 description 13
- 230000003247 decreasing effect Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000011218 segmentation Effects 0.000 description 11
- 238000000638 solvent extraction Methods 0.000 description 9
- 230000000295 complement effect Effects 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000009466 transformation Effects 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 4
- 238000003709 image segmentation Methods 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 238000012886 linear function Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000002146 bilateral effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007620 mathematical function Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 238000004886 process control Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 1
- 238000012952 Resampling Methods 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
- Processing Of Color Television Signals (AREA)
- Color Television Systems (AREA)
Abstract
本申请提供了一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法。所述方法由解码器执行,包括:解析接收到的码流,以获得亮度QP和映射函数(f)的信息,其中,映射函数关联QP索引(QP index,QPi)与色度QP(QPc);根据亮度QP的至少一部分获得所述QPi;根据获得的信息获得所述映射函数;根据获得的映射函数和获得的QPi获得QPc。
Description
相关申请案交叉申请
本申请要求于2019年4月26日提交的申请号为US 62/839,6076的美国临时专利申请、于2019年6月21日提交的申请号为PCT/RU2019/000444的国际专利申请、于2019年7月7日提交的申请号为US 62/871,197的美国临时专利申请,以及于2019年7月9日的提交的申请号为62/872,238的美国临时专利申请的优先权。上述专利申请的全部内容通过引用结合在本申请中。
技术领域
本申请(发明)实施例大体上涉及图像和/或视频解码领域,更具体地涉及用于指示(signal)色度量化参数的装置和方法。
背景技术
视频译码(视频编码和解码)广泛用于数字视频应用,例如广播数字TV、通过互联网和移动网络传输视频、实时会话应用(如视频聊天)、视频会议、DVD和蓝光光盘、视频内容采集和编辑系统,以及安全应用的摄像机。
即使在视频较短的情况下,也需要对大量的视频数据进行描述,当数据要在带宽容量受限的通信网络中流式发送或以其它方式发送时,这样可能会造成困难。因此,视频数据通常要先压缩,然后在现代电信网络中发送。由于内存资源可能有限,当在存储设备上存储视频时,视频的大小也可能成为问题。视频压缩设备通常在源侧使用软件和/或硬件,以在发送或存储之前对视频数据进行编码,从而减少用来表示数字视频图像所需的数据量。然后,压缩的数据在目的地侧由解码视频数据的视频解压缩设备接收。在网络资源有限而对更高视频质量的需求不断增长的情况下,需要改进压缩和解压缩技术,这些改进的技术能够在几乎不影响图像质量的情况下提高压缩比。
发明内容
本申请实施例提供独立权利要求中所述的用于编码和解码的装置和方法。
上述目的及其它目的通过独立权利要求请求保护的主题实现。其它实现方式在从属权利要求、说明书以及附图中是显而易见的。
本发明提供了一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法,所述方法由解码器执行,包括:
接收码流;
解析所述码流,以获得所述亮度QP和色度QP映射表的信息,其中,所述色度QP映射表关联QP索引(QP index,QPi)与色度QP(QPc);
至少部分地根据所述亮度QP获得所述QPi;
根据所述获得的信息获得所述色度QP映射表;
根据所述获得的色度QP映射表和所述获得的QPi获得QPc;
根据所述获得的QPc获得色度量化参数。
因此,色度QP映射表是根据码流中指示的信息获得的。
根据上述方法,qPCb、qPCr和qPCbCr可以推导如下:
qPChroma=Clip3(-QpBdOffset,63,QpY);
qPCb=ChromaQpTable[0][qPChroma];
qPCr=ChromaQpTable[1][qPChroma];
qPCbCr=ChromaQpTable[2][qPChroma];
Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr可以推导如下:
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset;
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset;
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset_value+
slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset;
其中,ChromaQpTable为所述色度QP映射表;
QPi对应于qPChroma;
QPc对应于qPCb、qPCr和qPCbCr;
QpBdOffset为根据亮度和色度阵列的样本的位深通过以下公式计算获得的位深偏移:
QpBdOffset=6*bit_depth_minus8,
其中,bit_depth_minus8的范围为0至8(包括0和8);
pps_cb_qp_offset和pps_cr_qp_offset分别表示用于推导Qp′Cb和Qp′Cr的亮度量化参数Qp′Y的偏移量;
pps_joint_cbcr_qp_offset_value表示用于推导Qp′CbCr的亮度量化参数Qp′Y的偏移量;
slice_cr_qp_offset表示在确定量化参数Qp′Cr的值时待增加到pps_cr_qp_offset的值的差值;
slice_cb_qp_offset表示在确定量化参数Qp′Cb的值时待增加到pps_cb_qp_offset的值的差值;
slice_joint_cbcr_qp_offset表示在确定Qp′CbCr的值时待增加到pps_joint_cbcr_qp_offset_value的值的差值;
变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr表示在分别确定用于所述解码器的量化参数Qp′Cb、Qp′Cr和Qp′CbCr的值时待使用的值。
根据上述方法,所述色度QP映射表可以关联集合X中的每个元素x或所述集合X的任意子集与集合Y中的一个元素y,其中,所述集合X可以与所述解码器支持的允许QPi范围内的QPi对应,所述集合Y可以与所述解码器支持的允许QPc范围内的QPc对应。
根据上述方法,所述色度QP映射表中的值可以满足映射函数。
根据上述方法,所述映射函数可以为分段映射函数,所述分段映射函数的信息可以包括所述分段映射函数的断点、变化点或枢轴点。
根据上述方法,所述断点、变化点或枢轴点的数量及其相应的x、y坐标直接在所述码流中指示,或根据当前枢轴点的坐标与前一个枢轴点的坐标之间的增量值在所述码流中进行指示。
因此,为了进一步减少指示开销,可以在所述码流中指示当前枢轴点的x、y坐标和前一个枢轴点的x、y坐标之间的差值。具体地,对于第一个点,可以指示其与某个starting_point之间的差值。starting_point是指某个预定义的点,或者在码流中进行指示。在一些实现方式中,starting_point可以限制位于一对一的线上,在这种情况下,一个坐标即足以定义starting_point。
根据上述方法,所述映射函数可以是基于以下方程的分段函数:
线性方程,
指数方程,
对数方程,或
以上方程的组合。
根据上述方法,所述分段函数各个部分的参数可以基于枢轴点通过以下给定的线性方程获得:
y=slope*x+b,其中,slope和b为所述线性方程的参数,
slope=(Ey–Dy)/(Ex–Dx),
b=Dy–slope*Dx,
其中,D和E为枢轴点,对应的坐标分别为Dx、Dy和Ex、Ey。
根据上述方法,可以为所有色度分量联合指示对所述色度QP映射表的信息。
根据上述方法,所述色度QP映射表的信息可以包括指示符,所述指示符用于表示为色度分量单独指示或联合指示所述映射函数。
根据上述方法,所述色度QP映射表的信息可以在以下级别进行指示:
序列参数集的序列级别,或
图像参数集的图像级别,或
分块组参数集的分块组级别,或
在自适应参数集中,或
在补充增强信息(supplemental enhancement information,SEI)消息中。
根据上述方法,可以根据色度采样格式的规格对所述色度QP映射表的信息即色度QP映射信息进行解析。
根据上述方法,所述色度采样格式的规格可以如下表所示:
chroma_format_idc | separate_colour_plane_flag | 色度格式 | SubWidthC | SubHeightC |
0 | 0 | 单色 | 1 | 1 |
1 | 0 | 4:2:0 | 2 | 2 |
2 | 0 | 4:2:2 | 2 | 1 |
3 | 0 | 4:4:4 | 1 | 1 |
3 | 1 | 4:4:4 | 1 | 1 |
其中,chroma_format_idc表示色度采样格式的索引;
在单色采样中,只有一个样本阵列,所述样本阵列通常被认为是亮度阵列;
在4:2:0采样中,两个色度阵列中的每个色度阵列的高度和宽度为亮度阵列的高度和宽度的一半;
在4:2:2采样中,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
在4:4:4采样中,根据标志separate_colour_plane_flag的值,以下情况可以适用:
如果separate_colour_plane_flag等于0,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
否则,如果separate_colour_plane_flag等于1,三个颜色平面分别作为单色采样图像进行处理;
其中,separate_colour_plane_flag等于1,表示对采用4:4:4色度格式的三个颜色分量分别进行编码;separate_colour_plane_flag等于0,表示不对所述颜色分量分别进行编码;当separate_colour_plane_flag等于1时,经编码的图像由三个独立的分量组成,每个分量由一个颜色平面(Y、Cb或Cr)的编码样本组成,并且使用单色编码语法;在这种情况下,每个颜色平面与具体的colour_plane_id值关联;
根据separate_colour_plane_flag的值,变量ChromaArrayType的值可以赋值如下:
–如果separate_colour_plane_flag等于0,ChromaArrayType设置为等于chroma_format_idc;
–否则(separate_colour_plane_flag等于1),ChromaArrayType设置为等于0。
因此,可以根据色度采样格式对色度QP映射信息进行条件指示。例如,如果色度格式为单色(采样格式为4:0:0),此时,不指示映射表。再例如,如果存在单独编码的颜色分量(separate_colour_plane_flag等于1),此时,也不指示色度映射表。这样,当色度分量不存在或单独进行编码时,可以节省用于指示色度QP映射表的比特。
根据上述方法,可以根据如下表中的一项所指定的色度采样格式决定是否存在标志chroma_qp_mapping_flag和/或色度Qp映射信息:
或者,
或者
或者,
其中,chroma_format_idc等于3,表示色度采样格式为4:2:0;
seq_parameter_set_rbsp()表示序列参数集的始字节序列载荷;
chroma_format_idc表示色度采样格式的索引;
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射函数,且所述色度Qp映射函数覆盖QpC(色度Qp)的默认规格作为qPi的函数,其中,qPi用于推导QpC;
chroma_qp_mapping_flag等于0,表示使用默认色度Qp映射表推导QpC,其中,当chroma_qp_mapping_flag不存在时,QpC推导为等于0;
sps_joint_cbcr_enabled_flag等于0,表示禁用对色度残差的联合编码;ps_joint_cbcr_enabled_flag等于1,表示启用对色度残差的联合编码;
same_qp_table_for_chroma等于1,表示仅指示一个色度QP映射表,其中,该表适用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,还适用于联合Cb-Cr残差;same_qp_table_for_chroma等于0,表示在SPS中指示色度QP映射表,其中,两个色度QP映射表用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,额外一个色度QP映射表用于联合Cb-Cr残差;
chroma_qp_table_present_flag等于1,表示指示用户定义的色度QP映射表ChromaQpTable;chroma_qp_table_present_flag等于0,表示不指示用户定义的色度QP映射表且使用预定义的色度QP映射表;
cqp_mapping_data()表示色度Qp映射信息。
根据上述方法,所述映射函数可以是单调递增函数。
因此,所述映射函数被限制为单调递增(非递减)函数。
根据上述方法,可以基于增量值通过无符号整数码在所述码流中对所述映射函数的枢轴点进行指示。
因此,可以通过无符号型ue(v)码对枢轴点的dx和df(x)进行译码来实现单调递增函数。
根据上述方法,无符号整数码为无符号型整数0阶Exp-Golomb码。
根据上述方法,所述映射函数的信息可以包括第一值a0与starting_point_value之间的差值(delta_a0),其中,子集A的第一值a0基于所述差值(delta_a0)通过以下公式获得:
a0=starting_point_value+delta_a0,
其中,starting_point_value在所述码流中指示,或者为预定义值。
由于映射函数的点根据定义的行为被分为两类,且映射函数是非递增函数时所对应的点的数量受到限制,因此,相对于直接指示映射函数的每个值,这样减小了指示开销。
根据上述方法,所述起始点值starting_point_value可以为0、21、30、maxQPi>>1中的一个,其中,maxQPi表示所述解码器支持的最大QPi值。
根据上述方法,第一个枢轴点可以通过以下公式获得:
qpInVal[i][0]=qp_table_start_minus26[i]+26;
qpOutVal[i][0]=qpInVal[i][0];
其中,qp_table_start_minus26[i]+26表示用于描述第i个色度QP映射表的起始亮度和色度QP。
根据上述方法,i=0..numQpTables–1中的第i个色度QP映射表ChromaQpTable[i]可以推导如下:
根据上述方法,还包括预定义的色度QP映射表,其中,所述码流可以包括指示符,所述指示符用于表示使用所述预定义的色度QP映射表或使用在所述码流中指示的所述色度QP映射表。
根据上述方法,所述预定义的色度QP映射表可以如下表所示:
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
QpC | =qPi | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据上述方法,所述预定义的色度QP映射表可以如下表所示:
qPi | <35 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据上述方法,可以在所述码流中直接或间接对所述色度QP映射表的信息进行指示。
本发明还提供一种解码器,包括处理电路,所述处理电路用于执行上述方法。
本发明还提供一种计算机程序产品,包括用于执行上述方法的程序代码。
本发明还提供一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行上述方法。
本发明还提供一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的解码器,包括:接收单元,用于接收码流;解析单元,用于解析码流,以获得亮度QP和色度QP映射表的信息,其中,色度QP映射表关联QP索引(QP index,QPi)与色度QP(QPc);第一获得单元,用于至少部分地根据亮度QP获得所述QPi;第二获得单元,用于根据获得的信息获得所述色度QP映射表;第三获得单元,用于根据获得的色度QP映射表和获得的QPi获得QPc;第四获得单元,用于根据获得的QPc获得色度量化参数。
在码流中包含色度QP映射表的信息,能够调整输入视频信号的特定属性,例如SDR或HDR属性,或者调整亮度和色度通道上的不同强度和分布,从而提高压缩效率,并提高重建视频信号的色度分量与亮度分量之间的平衡。
根据上述解码器,qPCb、qPCr和qPCbCr可以推导如下:
qPChroma=Clip3(-QpBdOffset,63,QpY);
qPCb=ChromaQpTable[0][qPChroma];
qPCr=ChromaQpTable[1][qPChroma];
qPCbCr=ChromaQpTable[2][qPChroma];
Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr推导如下:
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset;
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset;
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset_value+
slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset;
其中,ChromaQpTable为所述色度QP映射表;
QPi对应于qPChroma;
QPc对应于qPCb、qPCr和qPCbCr;
QpBdOffset为根据亮度和色度阵列的样本的位深通过以下公式计算获得的位深偏移:
QpBdOffset=6*bit_depth_minus8,
其中,bit_depth_minus8的范围为0至8(包括0和8);
pps_cb_qp_offset和pps_cr_qp_offset分别表示用于推导Qp′Cb和Qp′Cr的亮度量化参数Qp′Y的偏移量;
pps_joint_cbcr_qp_offset_value表示用于推导Qp′CbCr的亮度量化参数Qp′Y的偏移量;
slice_cr_qp_offset表示在确定量化参数Qp′Cr的值时待增加到pps_cr_qp_offset的值的差值;
slice_cb_qp_offset表示在确定量化参数Qp′Cb的值时待增加到pps_cb_qp_offset的值的差值;
slice_joint_cbcr_qp_offset表示在确定Qp′CbCr的值时待增加到pps_joint_cbcr_qp_offset_value的值的差值;
变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr表示在分别确定用于所述解码器的量化参数Qp′Cb、Qp′Cr和Qp′CbCr的值时待使用的值。
根据上述解码器,所述色度QP映射表可以关联集合X中的每个元素x或所述集合X的任意子集与集合Y中的一个元素y,其中,所述集合X可以与所述解码器支持的允许QPi范围内的QPi对应,所述集合Y可以与所述解码器支持的允许QPc范围内的QPc对应。
根据上述解码器,所述色度QP映射表中的值可以满足映射函数。
根据上述解码器,所述映射函数可以为分段映射函数,所述分段映射函数的信息可以包括所述分段映射函数的断点、变化点或枢轴点。
本方面中,可以通过有限的指示开销仅指示函数改变其行为(例如,线的斜率)时所对应的点来描述所述解码器支持的QP的完整范围的函数行为,并且将函数描述为变化点或枢轴点之间的分段函数。
根据上述解码器,断点、变化点或枢轴点的数量及其相应的x、y坐标直接在码流中指示,或通过当前枢轴点的坐标与前一个枢轴点的坐标之间的增量值在码流中进行指示。
根据上述解码器,所述映射函数可以是基于以下方程的分段函数:
线性方程,
指数方程,
对数方程,或
以上方程的组合。
通过使用预定义方程形式(例如,线性方程)的分段函数,可以获得枢轴点之间的函数值,而无需显式指示该函数,从而有助于减少用于描述映射函数的指示开销。
根据上述解码器,所述分段函数各个部分的参数可以基于枢轴点通过以下给定的线性方程获得:
y=slope*x+b,其中,slope和b为所述线性方程的参数,
slope=(Ey–Dy)/(Ex–Dx),
b=Dy–slope*Dx,
其中,D和E为枢轴点,对应的坐标分别为Dx、Dy和Ex、Ey。
根据上述解码器,可以为所有色度分量联合指示所述色度QP映射表的信息。
根据上述解码器,所述色度QP映射表的信息可以包括指示符,所述指示符用于表示为色度分量单独指示或联合指示所述色度QP映射表。
本方面中,对于不同色度通道(例如,Cb通道和Cr通道)具有不同信号特征的情况,不同的色度通道具有不同的色度QP映射表,这样可以进一步提高量化过程控制的灵活性,从而可以进一步提高压缩效率。
根据上述解码器,所述色度QP映射表的信息可以在以下级别进行指示:
序列参数集的序列级别,或
图像参数集的图像级别,或
分块组参数集的分块组级别,或
在自适应参数集中,或
在补充增强信息(supplemental enhancement information,SEI)消息中。
根据上述解码器,可以根据色度采样格式的规格对所述色度QP映射表的信息即色度QP映射信息进行解析。
根据上述解码器,所述色度采样格式的规格可以如下表所示:
chroma_format_idc | separate_colour_plane_flag | 色度格式 | SubWidthC | SubHeightC |
0 | 0 | 单色 | 1 | 1 |
1 | 0 | 4:2:0 | 2 | 2 |
2 | 0 | 4:2:2 | 2 | 1 |
3 | 0 | 4:4:4 | 1 | 1 |
3 | 1 | 4:4:4 | 1 | 1 |
其中,chroma_format_idc表示色度采样格式的索引;
在单色采样中,只有一个样本阵列,所述样本阵列通常被认为是亮度阵列;
在4:2:0采样中,两个色度阵列中的每个色度阵列的高度和宽度为亮度阵列的高度和宽度的一半;
在4:2:2采样中,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
在4:4:4采样中,根据标志separate_colour_plane_flag的值,以下情况可以适用:
如果separate_colour_plane_flag等于0,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
否则,如果separate_colour_plane_flag等于1,三个颜色平面分别作为单色采样图像进行处理;
其中,separate_colour_plane_flag等于1,表示对采用4:4:4色度格式的三个颜色分量分别进行编码;separate_colour_plane_flag等于0,表示不对所述颜色分量分别进行编码;当separate_colour_plane_flag等于1时,经编码的图像由三个独立的分量组成,每个分量由一个颜色平面(Y、Cb或Cr)的编码样本组成,并且使用单色编码语法;在这种情况下,每个颜色平面与具体的colour_plane_id值关联;
根据separate_colour_plane_flag的值,变量ChromaArrayType的值赋值如下:
–如果separate_colour_plane_flag等于0,ChromaArrayType设置为等于chroma_format_idc;
–否则(separate_colour_plane_flag等于1),ChromaArrayType设置为等于0。
因此,根据色度采样格式对色度QP映射信息进行条件指示,额外减少了指示开销。例如,如果色度格式为单色(采样格式为4:0:0),此时,不指示映射表。再例如,如果存在单独编码的颜色分量(separate_colour_plane_flag等于1),此时,也不指示色度映射表。这样,当色度分量不存在或单独进行编码时,可以节省用于指示色度QP映射表的比特。
根据上述解码器,可以根据如下表中的一项所指定的色度采样格式决定是否存在标志chroma_qp_mapping_flag和/或色度Qp映射信息:
或者,
或者,
或者,
其中,chroma_format_idc等于3,表示色度采样格式为4:2:0;
seq_parameter_set_rbsp()表示序列参数集的始字节序列载荷;
chroma_format_idc表示色度采样格式的索引;
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射函数,且所述色度Qp映射函数覆盖QpC(色度Qp)的默认规格作为qPi的函数,其中,qPi用于推导QpC;
chroma_qp_mapping_flag等于0,表示使用默认色度Qp映射表推导QpC,其中,当chroma_qp_mapping_flag不存在时,QpC推导为等于0;
sps_joint_cbcr_enabled_flag等于0,表示禁用对色度残差的联合编码;ps_joint_cbcr_enabled_flag等于1,表示启用对色度残差的联合编码;
same_qp_table_for_chroma等于1,表示仅指示一个色度QP映射表,其中,该表适用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,还适用于联合Cb-Cr残差;same_qp_table_for_chroma等于0,表示在SPS中指示色度QP映射表,其中,两个色度QP映射表用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,额外一个色度QP映射表用于联合Cb-Cr残差;
chroma_qp_table_present_flag等于1,表示指示用户定义的色度QP映射表ChromaQpTable;chroma_qp_table_present_flag等于0,表示不指示用户定义的色度QP映射表且使用预定义的色度QP映射表;
cqp_mapping_data()表示色度Qp映射信息。
根据上述解码器,所述映射函数可以是单调递增函数。
对映射函数施加该约束,可以避免配置“怪诞的”映射函数,例如,当色度QP随着亮度QP的增加而减小时产生意外的、不理想的行为,即可以避免色度质量随着亮度质量的下低而提高的情况。单调递增的约束可以同步提高亮度质量和色度质量。此外,还有一个优点是:该约束不需要描述函数的负向增加,从而节省了用于指示映射函数信息的比特。
根据上述解码器,可以基于增量值通过无符号整数码在所述码流中对所述映射函数的枢轴点进行指示。
通过指示差值而不是指示直接值,可以进一步节省比特。通过映射函数单调递增的约束,确保了增量值始终为非负值。由于使用无符号整数码,因此不需要指示枢轴点增量的符号位,从而可以进一步节省比特。
根据上述解码器,无符号整数码可以为无符号型整数0阶Exp-Golomb码。
根据上述解码器,所述映射函数的信息可以包括第一值a0与starting_point_value之间的差值(delta_a0),其中,子集A的第一值a0基于所述差值(delta_a0)通过以下公式获得:
a0=starting_point_value+delta_a0,
其中,starting_point_value在所述码流中指示,或者为预定义值。
根据上述解码器,所述起始点值starting_point_value可以为0、21、30、maxQPi>>1中的一个,其中,maxQPi为所述解码器支持的最大QPi值。通过选择合适的starting_point_value,可以进一步节省用于指示第一值的比特。
根据上述解码器,第一个枢轴点可以通过以下公式获得:
qpInVal[i][0]=qp_table_start_minus26[i]+26;
qpOutVal[i][0]=qpInVal[i][0];
其中,qp_table_start_minus26[i]+26表示用于描述第i个色度QP映射表的起始亮度和色度QP。
根据上述解码器,i=0..numQpTables–1中的第i个色度QP映射表ChromaQpTable[i]可以推导如下:
根据上述解码器,还可以包括预定义的色度QP映射表,其中,所述码流可以包括指示符,所述指示符用于表示使用所述预定义的色度QP映射表或使用在所述码流中指示的所述色度QP映射表。
这样,可以仅在映射表的信息是有利的情况下,即当亮度通道和色度通道特征与普通情况(如用于HDR信号)显著不同时,指示映射表的信息,并且使用适用于普通情况的预定义映射表。这样,在大多数预定义映射表已优化的普通情况下,可以节省指示开销。
根据上述解码器,所述预定义的色度QP映射表可以如下表所示:
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
QpC | =qPi | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据上述解码器,所述预定义的色度QP映射表可以如下表所示:
qPi | <35 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据上述解码器,可以在所述码流中直接或间接对所述色度QP映射表的信息进行指示。
本发明第一方面提供的方法可以由本发明第三方面提供的装置执行。本发明第三方面提供的方法的更多特征和实现方式对应于本发明第一方面提供的装置的特征和实现方式。
本发明第二方面提供的方法可以由本发明第四方面提供的装置执行。本发明第四方面提供的方法的更多特征和实现方式对应于本发明第二方面提供的装置的特征和实现方式。
第五方面,本发明涉及一种用于视频流解码装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第一方面所述的方法。
第六方面,本发明涉及一种视频流编码装置,包括处理器和存储器。所述存储器存储指令,所述指令使所述处理器执行第二方面所述的方法。
第七方面,本发明涉及一种计算机可读存储介质,所述计算机可读存储介质存储指令。当执行所述指令时,使一个或多个处理器编码视频数据。所述指令使所述一个或多个处理器执行第一方面和第二方面或第一方面和第二方面任意可能实施例中所述的方法。
第八方面,本发明涉及一种计算机程序,所述计算机程序包括程序代码。在计算机上执行所述程序代码时,执行第一方面和第二方面或第一方面和第二方面任意可能实施例中所述的方法。
以下附图和说明中将详细阐述了一个或多个实施例。其它特征、目标和优点在说明书、附图以及权利要求书中是显而易见的。
附图说明
下面参照所附的附图和示意图对本发明实施例进行更加详细的描述,其中:
图1A为用于实现本发明实施例的示例性视频译码系统的框图;
图1B为用于实现本发明实施例的另一示例性视频译码系统的框图;
图2为用于实现本发明实施例的示例性视频编码器的框图;
图3为用于实现本发明实施例的视频解码器的示例性结构的框图;
图4为示例性编码装置或解码装置的框图。
图5为另一示例性编码装置或解码装置的框图;
图6示出了根据[2]所述的HEVC(黑色,61)和H.264|AVC(灰色,62)中量化参数索引QPi到色度量化参数QPc的映射函数的示意性表示;
图7示出了所支持的QP范围的量化参数索引QPi到色度量化参数QPc的HEVC映射函数的示意性表示,其中,72表示HEVC映射函数,71表示1对1映射函数;
图8示出了量化参数索引QPi到色度量化参数QPc的HEVC映射函数(82)和经修改的映射函数(83)的表格表示,其中,表81表示单调递增的1对1函数,表84、85和86对应表示1对1函数(81)、HEVC映射函数(82)和经修改的正映射函数(83)中当前值与前一个值之间的差值,87表示差值为零时所对应的示例性点;
图9示出了通过两个枢轴点D(94)和E(95)表示的映射函数92的分段线性表示93的示例;
图10示出了用于所支持的QP范围的量化参数索引QPi到色度量化参数QPc的HEVC映射函数的示意性表示,其中,102表示色度Qp偏移等于1的HEVC映射函数,101表示1对1映射函数;
图11示出了作为qPi的函数的VVC色度Qp映射表;
图12示出了本发明提供的调整映射函数;
图13示出了本发明提供的一种用于获得色度量化参数的方法;
图14示出了本发明提供的一种解码器。
下文中,相同的附图标记表示相同的特征或至少在功能上等效的特征,除非另有明确规定。
具体实施方式
以下描述中,参考构成本发明的一部分的附图,这些附图通过说明的方式示出本发明实施例的特定方面或可以使用本发明实施例的特定方面。应理解,本发明实施例可以在其它方面中使用,且可以包括附图中未描述的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
例如,应理解,结合所描述的方法的揭示内容可以对用于执行所述方法的对应设备或系统也同样适用,且反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括如功能单元等一个或多个单元,以执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元中的每一个单元都执行多个步骤中的一个或多个步骤),即使附图中未显式描述或说明此一个或多个单元。另一方面,例如,如果基于如功能单元等一个或多个单元来描述具体装置,则对应的方法可以包括一个步骤,以执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤中的每一个步骤执行多个单元中的一个或多个单元的功能),即使附图中未显式描述或说明此一个或多个步骤。进一步,应理解的是,除非另外明确说明,本文中所描述的各种示例性实施例和/或方面的特征可以相互组合。
视频译码通常是指处理形成视频或视频序列的图像序列。在视频译码领域,术语“帧(frame)”与“图像(picture/image)”可以用作同义词。视频译码(或通常称为译码)包括视频编码和视频解码两部分。视频编码在源端执行,通常包括处理(例如,压缩)原始视频图像,以减少表示该视频图像所需的数据量(以便更高效地进行存储和/或传输)。视频解码在目的地端执行,通常包括相对于编码器的逆处理过程,用于重建该视频图像。实施例涉及的视频图像(或通常称为图像)的“译码”应理解为视频图像或各自视频序列的“编码”或“解码”。编码部分和解码部分也合称为编解码器(编码和解码,codec)。
在无损视频译码的情况下,可以对原始视频图像进行重建,即重建的视频图像与原始视频图像具有相同的质量(假设存储或传输期间没有传输损耗或其它数据损失)。在有损视频译码的情况下,通过量化等进行进一步压缩,以减少表示视频图像所需的数据量。此时,解码器侧无法完全重建视频图像,即重建的视频图像的质量低于或劣于原始视频图像的质量。
若干个视频译码标准属于“有损混合视频编解码器”组(即,将样本域中的空间和时间预测与2D变换译码相结合,以在变换域中进行量化)。视频序列中的每个图像通常分割成不重叠块的集合,通常进行块级别的译码。换句话说,编码器侧通常在块(视频块)级别处理即编码视频,例如,通过空间(帧内)预测和/或时间(帧间)预测来产生预测块;从当前块(当前正在处理/待处理的块)中减去预测块,获得残差块;在变换域中变换并量化残差块,以减少待传输(压缩)数据的量,而解码器侧则将相对于编码器的逆处理过程应用于经编码或压缩的块,以重建用于表示的当前块。此外,编码器和解码器的处理步骤相同,因此,编码器和解码器生成相同的预测(例如,帧内预测和帧间预测)和/或重建,用于进行处理,即对后续块进行译码。
在以下视频译码系统10的实施例中,视频编码器20和视频解码器30结合图1至图3进行描述。
图1A为示例性译码系统10的示意性框图,例如,可以利用本申请技术的视频译码系统10(或简称为译码系统10)。视频译码系统10中的视频编码器20(或简称为编码器20)和视频解码器30(或简称为解码器30)代表可用于根据本申请中描述的各种示例执行各技术的设备的示例。
如图1A所示,译码系统10包括源设备12,源设备12用于将经编码的图像数据21,例如,提供给目的地设备14;目的地设备14用于对经编码的图像数据13进行解码。
源设备12包括编码器20,另外即可选地,包括图像源16、预处理器(或预处理单元)18如图像预处理器18、通信接口或通信单元22。
图像源16可以包括或可以为任何类型的图像捕获设备、和/或任何类型的图像生成设备或任何类型的其它设备,其中,图像捕获设备例如为用于捕获现实世界图像的相机,图像生成设备例如为用于生成计算机动画图像的计算机图形处理器,其它设备用于获取和/或提供现实世界的图像、计算机生成图像(例如,屏幕内容、虚拟现实(virtualreality,VR)图像)和/或其任意组合(例如,增强现实(augmented reality,AR)图像)。图像源可以为存储上述图像中的任意图像的任何类型的存储器(memory/storage)。
为了区分预处理器18和预处理单元18执行的处理,图像或图像数据17也可以称为原始图像或原始图像数据17。
预处理器18用于接收(原始)图像数据17,并对图像数据17进行预处理,以获得经预处理的图像19或经预处理的图像数据19。预处理器18执行的预处理可以包括例如修剪(trimming)、颜色格式转换(例如从RGB转换为YCbCr)、颜色校正或去噪。可以理解的是,预处理单元18可以为可选部件。
视频编码器20用于接收经预处理的图像数据19并提供经编码的图像数据21(下文将根据图2等进行详细描述)。
源设备12中的通信接口22可以用于:接收经编码的图像数据21并通过通信信道13向目的地设备14等其它设备或任何其它设备发送经编码的图像数据21(或其它任意处理后的版本),以供存储或直接重建。
目的地设备14包括解码器30(例如视频解码器30),另外即可选地,包括通信接口或通信单元28、后处理器32(或后处理单元32)以及显示设备34。
目的地设备14中的通信接口28用于直接从源设备12或从存储设备等任意其它源设备接收经编码的图像数据21(或其它任意处理后的版本),例如,存储设备为存储经编码的图像数据的存储设备,并将经编码的图像数据21提供给解码器30。
通信接口22和通信接口28可以用于通过源设备12与目的地设备14之间的直接通信链路,例如直接有线或无线连接等,或者通过任何类型的网络,例如有线网络、无线网络或其任意组合、任何类型的私网和公网或其任意类型的组合,发送或接收经编码的图像数据21或经编码的数据13。
例如,通信接口22可以用于将经编码的图像数据21封装为报文等合适的格式,和/或使用任意类型的传输编码或处理来处理经编码的图像数据,以便在通信链路或通信网络上进行传输。
通信接口28与通信接口22对应,例如,可以用于接收传输数据,并使用任意类型的对应传输解码或处理和/或解封装过程对传输数据进行处理,以获得经编码的图像数据21。
通信接口22和通信接口28均可以配置为如图1A中从源设备12指向目的地设备14的与通信信道13对应的箭头所指示的单向通信接口,或配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接,确认并交换与通信链路和/或例如经编码的图像数据传输等数据传输相关的任何其它信息,等等。
解码器30用于接收经编码的图像数据21并提供经解码的图像数据31或经解码的图像31(下文将基于例如图3或图5进行详细描述)。
目的地设备14中的后处理器32用于对经解码的图像数据31(也称为经重建的图像数据),例如,经解码的图像31进行后处理,以获得经后处理的图像数据33,例如,经后处理的图像33。后处理单元32执行的后处理可以包括例如颜色格式转换(例如从YCbCr格式转换为RGB格式)、颜色校正、修剪或重采样,或者任何其它处理,例如用于产生供显示设备34等显示的经解码的图像数据31等。
目的地设备14中的显示设备34用于接收经后处理的图像数据33,以向用户或观看者等显示图像。显示设备34可以为或可以包括任意类型的用于呈现经重建的图像的显示器,例如,集成或外部显示屏或显示器。例如,显示器可以包括液晶显示器(liquid crystaldisplay,LCD)、有机发光二极管(organic light emitting diode,OLED)显示器、等离子显示器、投影仪、微型LED显示器、硅基液晶显示器(liquid crystal on silicon,LCoS)、数字光处理器(digital light processor,DLP)或任意类型的其它显示器。
尽管图1A示出了将源设备12和目的地设备14作为独立的设备,但设备实施例也可以同时包括源设备12和目的地设备14或同时包括源设备12和目的地设备14的功能,即同时包括源设备12或源设备12的对应功能和目的地设备14或目的地设备14的对应功能。在这些实施例中,源设备12或源设备12的对应功能和目的地设备14或目的地设备14的对应功能可以使用相同硬件和/或软件或通过单独的硬件和/或软件或其任意组合来实现。
根据描述,图1A所示的源设备12和/或目的地设备14中的不同单元或功能的存在和(准确)划分可能根据实际设备和应用的不同而有所不同,这对技术人员来说是显而易见的。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30),或编码器20和解码器30两者可以通过如图1B所示的处理电路如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、离散逻辑、硬件、视频译码专用处理器或其任意组合来实现。编码器20可以通过处理电路46实现,以包含参照图2所示的编码器20和/或本文描述的任何其它编码器系统或子系统所讨论的各种模块。解码器30可以通过处理电路46实现,以包含参照图3所示的解码器30和/或本文描述的任何其它解码器系统或子系统所讨论的各种模块。处理电路可以用于执行下文描述的各种操作。如图5所示,如果部分技术通过软件实施,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,通过一个或多个处理器在硬件中执行所述指令,从而执行本发明的技术。例如,如图1B所示,视频编码器20和视频解码器30中的任一者可以作为组合编解码器(encoder/decoder,CODEC)的一部分集成在单个设备中。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任意类型的手持设备或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板或平板电脑、相机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备(如内容业务服务器或内容分发服务器)、广播接收设备、广播发射设备等,且可以使用或不使用任意类型的操作系统。在一些情况下,源设备12和目的地设备14可配备用于无线通信的组件。因此,源设备12和目的地设备14可以是无线通信设备。
在一些情况下,图1A所示的视频译码系统10仅是示例性的,并且本申请的技术可适用于视频译码设置(例如,视频编码或视频解码),这些设置未必包括编码设备与解码设备之间的任何数据通信。在其它示例中,数据从本地存储器检索,在网络上流式传输等等。视频编码设备可以对数据进行编码并将数据存储到存储器中,和/或视频解码设备可以从存储器中检索数据并对数据进行解码。在一些示例中,由互不通信而是仅编码数据到存储器和/或从存储器检索数据且解码数据的设备来执行编码和解码。
为便于描述,例如,参考由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合协作团队(Joint Collaboration Team on Video Coding,JCT-VC)开发的高效视频编码(High-Efficiency Video Coding,HEVC)、通用视频编码(Versatile video coding,VVC)参考软件、下一代视频编码标准来描述本发明实施例。本领域普通技术人员应理解本发明实施例不限于适用HEVC或VVC标准。
编码器和编码方法
图2为用于实现本申请技术的示例性视频编码器20的示意性框图。在图2的示例中,视频编码器20包括输入端201(或输入接口201)、残差计算单元204、变换处理单元206、量化单元208、反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、模式选择单元260、熵编码单元270和输出端272(或输出接口272)。模式选择单元260可以包括帧间预测单元244、帧内预测单元254和分割单元262。帧间预测单元244可以包括运动估计单元和运动补偿单元(未示出)。图2所示的视频编码器20也可以称为混合型视频编码器或基于混合型视频编解码器的视频编码器。
残差计算单元204、变换处理单元206、量化单元208和模式选择单元260组成编码器20的前向信号路径;反量化单元210、逆变换处理单元212、重建单元214、缓冲器216、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254组成视频编码器20的后向信号路径。其中,视频编码器20的后向信号路径对应于解码器(参见图3所示的解码器30)的信号路径。反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
图像和图像分割(图像和块)
编码器20可以用于通过输入端201等接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据还可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,以下描述中称为图像17。图像17还可以称为当前图像或待译码图像(尤其在视频译码中,为区分当前图像和其它图像,其它图像例如为同一视频序列即同时包括当前图像的视频序列中的先前经编码的图像和/或先前经解码的图像)。
(数字)图像是或可以认为是具有强度值的样本组成的二维阵列或矩阵。该阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的样本的数量决定了该图像的大小和/或分辨率。为了表示颜色,通常采用三个颜色分量,即该图像可以表示为或者可以包括三个样本阵列。在RGB格式或颜色空间中,图像包括对应的红色、绿色、蓝色样本阵列。然而,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如,YCbCr格式,其包括用Y表示的亮度分量(有时也用L表示)和用Cb和Cr表示的两个色度分量。亮度(或简称luma)分量Y表示亮度或灰度级强度(例如,在灰度级图像中),而两个色度(或简称chroma)分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括亮度样本值(Y)的亮度样本阵列和色度值(Cb和Cr)的两个色度样本阵列。RGB格式的图像可以转换或变换为YCbCr格式,反之亦然。该过程也称为颜色变换或转换过程。如果图像是黑白的,则该图像可以只包括亮度样本阵列。相应地,图像可以为例如黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
在视频编码器20的实施例中,视频编码器20可以包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常不重叠)图像块203。这些块也可以称为根块或宏块(H.264/AVC标准)或称为编码树块(coding tree block,CTB)或编码树单元(coding treeunit,CTU)(H.265/HEVC和VVC标准)。图像分割单元可以用于:对视频序列中的所有图像使用相同的块大小,并使用对应网格定义块大小,或者在图像或图像子集或图像组之间改变块大小,并将每个图像分割成对应的块。
在其它实施例中,视频编码器可以用于直接接收图像17的图像块203,例如,组成图像17的一个、若干个或所有图像块。图像块203也可以称为当前图像块或待译码图像块。
与图像17一样,图像块203同样是或可以认为是具有强度值(样本值)的样本组成的二维阵列或矩阵,但是图像块203的尺寸要比图像17的尺寸小。换句话说,图像块203可以包括一个样本阵列(例如,图像17是黑白图像时,图像块203包括一个亮度阵列;图像17是彩色图像时,图像块203包括一个亮度阵列或一个色度阵列),或者包括三个样本阵列(例如,图像17是彩色图像时,图像块203包括一个亮度阵列和两个色度阵列),或者包括由所使用的颜色格式决定的任何其它数量和/或类型的阵列。图像块203在水平方向和垂直方向(或轴线)上的样本的数量限定了图像块203的大小。相应地,某图像块可以为例如M×N(M列×N行)个样本阵列,或M×N个变换系数阵列等。
在图2所示的视频编码器20的实施例中,视频编码器20可以用于对图像17进行逐块编码,例如,对每个图像块203进行编码和预测。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于使用条带(slice)(也称为视频条带)对图像进行分割和/或编码。其中,可以使用一个或多个条带(通常为不重叠的条带)对图像进行分割或编码,并且每个条带可以包括一个或多个块(例如,CTU)。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于使用分块组(tile group)(也称为视频分块组)和/或分块(tile)(也称为视频分块)对图像进行分割和/或编码。其中,可以使用一个或多个分块组(通常为不重叠的分块组)对图像进行分割或编码,每个分块组可以包括一个或多个块(例如,CTU)或一个或多个分块等,其中,每个分块可以为矩形等形状,并且可以包括一个或多个块(例如,CTU),例如,完整块或部分块。
残差计算
残差计算单元204可以用于根据图像块203和预测块265(下文将详细描述预测块265)通过如下方式计算残差块205(也称为残差205),例如,逐个样本(逐个像素)从图像块203的样本值中减去预测块265的样本值,获得样本域中的残差块205。
变换
变换处理单元206可以用于对残差块205的样本值执行离散余弦变换(discretecosine transform,DCT)或离散正弦变换(discrete sine transform,DST)等变换,以获得变换域中的变换系数207。变换系数207也可以称为变换残差系数,表示变换域中的残差块205。
变换处理单元206可以用于执行DCT/DST的整数近似,例如,针对H.265/HEVC指定的变换。与正交DCT变换相比,该整数近似通常基于某一因子进行缩放。使用其它缩放因子作为变换过程的一部分,以维持经前向变换和逆变换处理的残差块的范数。缩放因子通常是基于某些约束条件来选择的,例如缩放因子是用于移位运算的2的幂、变换系数的位深度、准确性与实施成本之间的折衷等。例如,在编码器20侧通过逆变换处理单元212等为逆变换(在视频解码器30侧通过逆变换处理单元312等为对应的逆变换)指定具体的缩放因子,并且相应地,可以在编码器20侧通过变换处理单元206等为前向变换指定对应的缩放因子。
在视频编码器20的实施例中,视频编码器20(对应地,变换处理单元206)可以用于,例如,直接输出或经熵编码单元270进行编码或压缩后输出一种或多种变换类型的变换参数,使得视频解码器30可以接收并使用变换参数进行解码。
量化
量化单元208用于通过执行标量量化或矢量量化等对变换系数207进行量化,以获得量化系数209。量化系数209也可以称为经量化的变换系数209或经量化的残差系数209。
量化过程可以减小与部分或全部变换系数207相关的位深度。例如,可以在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m,可以通过调整量化参数(quantization parameter,QP)修改量化程度。例如,对于标量量化,可以执行不同的缩放来实现更精细或更粗略的量化。量化步长越小,量化越精细;量化步长越大,量化越粗略。量化参数(quantization parameter,QP)可以用于表示合适的量化步长。例如,量化参数可以为合适的量化步长的预定义集合的索引。例如,小的量化参数可以对应精细的量化(小的量化步长),大的量化参数可以对应粗略的量化(大的量化步长),反之亦然。量化操作可以包括除以量化步长,而反量化单元210等执行的相应解量化或逆解量化操作可以包括乘以量化步长。在一些实施例中,根据如HEVC等一些标准,可以使用量化参数来确定量化步长。通常,可以根据量化参数使用包括除法运算的等式的定点近似来计算量化步长。可以引入其它缩放因子进行量化和解量化,用于恢复残差块的范数。由于在用于量化步长和量化参数的等式的定点近似中使用了缩放,所以可能修改了该残差块的范数。在一种示例性实现方式中,可以合并逆变换和解量化中的缩放。或者,可以使用自定义的量化表并在如码流中将自定义的量化表从编码器指示(signal)到解码器。量化是有损操作,其中量化步长越大,损耗越大。
图像压缩级别根据量化参数(quantization parameter,QP)进行控制。可以针对整个图像使用固定的量化参数(例如,使用相同的量化参数值),也可以针对图像的不同区域使用不同的量化参数值。
对于YCbCr格式为4:2:0和4:2:2的视频,亮度分量和色度分量的信号特征是完全不同的。特别地,色度分量通常表现出很强的低通特征。如果执行强量化,色度信息可能会被完全量化为零,从而导致完全失去颜色。因此,为了减少颜色损失,根据[2]通过减小高QP值对应的色度量化器步长来调整色度对应的量化器步长。
在如[1]中规定的高效视频编码(HEVC)标准中,色度量化参数QPc根据表1推导,其中,qPi等于关联的亮度量化参数加上在图像参数集(picture parameter set,PPS)和/或条带头中指示的色度QP偏移值。可以通过指示不同的色度QP偏移值来调整基于关联的亮度QP值对色度QP值的推导。正色度QP偏移值表示针对关联的色度分量使用更粗粒度的量化器。
表1:HEVC中qPi的函数的QpC规格示例
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 29 | 30 | 31 | 32 | 33 | 33 | 34 | 35 | 35 | 35 | 36 | 36 | 37 | 37 | =qPi–6 |
图6示出了根据[2]所述的HEVC(黑色)和H.264|AVC(灰色)中量化参数索引QPi到色度量化参数QPc的映射的示意性表示。
HEVC标准中,亮度(Luminance或Luma)编码块(coding block,CB)的QP值根据预测QP(qPY_PRED)推导,而预测QP根据帧/条带/分块中的CB位置确定。然后,根据以下公式1推导变量QpY:
QpY=((qPYPRED+CuQpDeltaVal+64+2*QpBdOffsetY)%(64+QpBdOffsetY))-QpBdOffsetY (公式1)
其中,CuQpDeltaVal为针对编码单元(coding unit,CU)指示或推导的QP增量值;QpBdOffsetY为根据亮度位深(HEVC标准中,该术语对应于“亮度阵列样本的位深”)确定的恒定偏移。最后,可以根据以下公式2计算亮度(Luminance或Luma)分量的量化参数Qp′Y:
Qp′Y=QpY+QpBdOffsetY (公式2)
根据等于qPiCb或qPiCr的索引qPi,将变量qPCb和qPCr分别设置为等于映射表(例如,表1)中指定的值QpC,其中,qPiCb和qPiCr根据公式3推导如下:
其中,QpBdOffsetC为根据色度位深(HEVC标准中,该术语对应于“色度阵列样本的位深”)确定的恒定偏移;pps_cb_qp_offset或pps_cr_qp_offset为在图像参数集(pictureparameter set,PPS)中指示的Cb分量或Cr分量的固定偏移;slice_cb_qp_offset或slice_cr_qp_offset为在条带头中指示的Cb分量或Cr分量的固定偏移。
Cb分量和Cr分量的色度量化参数(Qp′Cb和Qp′Cr)根据公式5推导如下:
根据等于qPiCb或qPiCr的索引qPi,将变量qPCb和qPCr分别设置为等于表1中指定的值QpC。
VVC是规范草案第5版[]中新开发的标准,其包括用于推导色度量化参数的下述流程:
–当treeType等于DUAL_TREE_CHROMA,变量QpY设置为等于亮度编码单元的亮度量化参数QpY,其中,所述亮度编码单元位于亮度位置(xCb+cbWidth/2,yCb+cbHeight/2)。
–变量qPCb、qPCr和qPCbCr推导如下:
qPiCb=Clip3(-QpBdOffsetC,69,QpY+pps_cb_qp_offset+slice_cb_qp_offset)(8-926)
qPiCr=Clip3(-QpBdOffsetC,69,QpY+pps_cr_qp_offset+slice_cr_qp_offset)(8-927)
qPiCbCr=Clip3(-QpBdOffsetC,69,QpY+pps_joint_cbcr_qp_offset+slice_joint_cbcr_qp_offset) (8-928)
–如果ChromaArrayType等于1,根据等于qPiCb、qPiCr或qPiCbCr的索引qPi,将变量qPCb、qPCr和qPCbCr分别设置为等于如公式(8-931)“Qp′CbCr=
qPCbCr+QpBdOffsetC”中指定的、表2所示的QpC的值。
–否则,根据等于qPiCb、qPiCr或qPiCbCr的索引qPi,将变量qPCb、qPCr和qPCbCr分别设置为等于Min(qPi,63)。
–Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr推导如下:
Qp′Cb=qPCb+QpBdOffsetC (8-929)
Qp′Cr=qPCr+QpBdOffsetC (8-930)
Qp′CbCr=qPCbCr+QpBdOffsetC (8-931)
表2:ChromaArrayType等于1时作为qPi的函数的QpC的规格
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 29 | 30 | 31 | 32 | 33 | 33 | 34 | 34 | 35 | 35 | 36 | 36 | 37 | 37 | =qPi–6 |
其中,pps_cb_qp_offset和slice_cb_qp_offset分别是在图像参数集(pictureparameter set,PPS)和条带头中指示的图像级色度QP偏移值和条带级色度QP偏移值。
由于VVC中包括色度专用编码工具,如色度分离树和CCLM,因此,在VVC中,色度压缩效率显著提高,从而可能需要调整色度Qp映射函数。
因此,可以看出,使用了与HEVC标准中(表1)相同的色度Qp映射表(表2)。与HEVC相比,除了Qp′Cb和Qp′Cr,还引入了Qp′CbCr,以推导Cb和Cr颜色分量经联合量化后获得的块的量化参数。该Qp′CbCr参数还可以根据表2中指定的色度Qp映射函数推导。
如上所述,可以通过指示不同的色度QP偏移值来调整基于关联的亮度QP值对色度QP值的推导。正色度QP偏移值表示针对关联的色度分量使用更粗粒度的量化器。图10示出了色度Qp偏移等于1时的HEVC/VVC色度Qp映射函数的示例。
在视频编码器20的实施例中,视频编码器20(对应地,量化单元208)可以用于,例如,直接输出或经熵编码单元270进行编码后输出量化参数(quantization parameter,QP),使得视频解码器30可以接收并使用量化参数进行解码。
反量化
反量化单元210用于对量化系数执行与量化单元208所执行的量化相反的反量化,以获得解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行与量化单元208所执行的量化方案相反的反量化方案。解量化系数211也可以称为解量化残差系数211,其对应于变换系数207,但是由于量化造成损耗,解量化系数211通常与变换系数不完全相等。
逆变换
逆变换处理单元212用于执行与变换处理单元206所执行的变换相反的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)或逆离散正弦变换(discretesine transform,DST),以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
重建
重建单元214(例如,加法器或求和器214)用于将变换块213(即重建残差块213)与预测块265相加,例如,将重建残差块213的样本值和预测块265的样本值逐个样本进行相加,获得样本域中的重建块215。
滤波
环路滤波器单元220(或简称为“环路滤波器”220)用于对重建块215进行滤波,获得滤波块221,或通常用于对重建样本进行滤波,获得滤波样本值。例如,环路滤波单元用于平滑像素的突变或者提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管环路滤波器单元220在图2中示出为环内滤波器,但在其它配置中,环路滤波器单元220可以实现为环后滤波器。滤波块221也可以称为滤波重建块221。
在视频编码器20的实施例中,视频编码器20(对应地,环路滤波器单元220)可以用于,例如直接输出或经熵编码单元270进行编码后输出环路滤波参数(例如样本自适应偏移信息),使得解码器30可以接收并使用相同的环路滤波参数或不同的环路滤波器进行解码。
解码图像缓冲区
解码图像缓冲区(decoded picture buffer,DPB)230可以是存储参考图像或通常存储参考图像数据的存储器,以在视频编码器20对视频数据进行编码时使用。DPB 230可以由多种存储器设备中的任一者形成,例如包含同步DRAM(synchronous DRAM,SDRAM)的动态随机存取存储器(dynamic random access memory,DRAM)、磁阻式RAM(magnetoresistiveRAM,MRAM)、电阻式RAM(resistive RAM,RRAM)或其它类型的存储器设备。解码图像缓冲区(decoded picture buffer,DPB)230可以用于存储一个或多个滤波块221。解码图像缓冲区230还可以用于存储同一当前图像或如先前重建图像等的不同图像的其它先前滤波块,例如先前重建和滤波的块221,且可以提供完整的先前重建图像即经解码的图像(以及对应的参考块和样本)和/或部分重建的当前图像(以及对应的参考块和样本),例如,以进行帧间预测。解码图像缓冲区(decoded picture buffer,DPB)230还可以用于存储一个或多个未经滤波的重建块215,或通常存储未经滤波的重建样本,例如,未经环路滤波单元220滤波的重建块215,或未进行任何其它处理的重建块或重建样本。
模式选择(分割和预测)
模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254。模式选择单元260用于从解码图像缓冲区230或其它缓冲区(例如,行缓冲区,图中未显示)接收或获得原始图像数据如原始块203(当前图像17的当前块203),以及重建图像数据如同一(当前)图像和/或一个或多个先前解码的图像的经滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测所需的参考图像数据,用于获得预测块265或预测值265。
模式选择单元260可以用于为当前块预测模式(包括不分割模式)和预测模式(例如帧内预测模式或帧间预测模式)确定或选择分割模式,并生成对应的预测块265,所述预测块用于残差块205的计算以及重建块215的重建。
在模式选择单元260的实施例中,模式选择单元260可以用于选择分割和预测模式(例如,从模式选择单元260支持或可用的模式中选择)。分割和预测模式提供最佳匹配,即最小残差(最小残差意味着更好的压缩性能,以便进行发送或存储),或提供最小指示开销(最小指示开销意味着更好的压缩性能,以便进行发送或存储),或者同时考虑以上两者或在以上两者中取得平衡。模式选择单元260可以用于根据率失真优化(rate distortionoptimization,RDO)确定分割和预测模式,即选择提供最小率失真的预测模式。本文中,术语“最佳”、“最小”、“最优”等不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。
分割单元262可以用于将块203分割成更小的块部分或子块(子块再次形成块),例如,通过迭代地使用四叉树分割(quad-tree partitioning,QT)、二叉树分割(binary-treepartitioning,BT)或三叉树分割(triple-tree partitioning,TT)或其任何组合,并用于例如对每个块部分或子块进行预测。其中,模式选择包括选择经分割的块203的树结构以及选择应用于每个块部分或子块的预测模式。
下文将详细地描述由示例性视频编码器20执行的分割处理(例如,由分割单元260执行)和预测处理(例如,由帧间预测单元244和帧内预测单元254执行)。
分割
分割单元262可以将当前块203分割(或划分)为较小的部分,例如方形或矩形小块。这些小块(也可以称为子块)可进一步分割为更小的部分。这也称为树分割或分层树分割,其中,在根树层级0(分层0、深度0)等的根块可以递归地分割为至少两个下一较低树层级的块,例如树层级1(分层1、深度1)的节点。这些块又可以分割为至少两个下一较低层级的块,例如树层级2(分层2、深度2)等,直到由于满足结束标准而结束分割,例如达到最大树深度或最小块大小。未进一步分割的块也称为树的叶块或叶节点。分割为两个部分的树称为二叉树(binary-tree,BT),分割为三个部分的树称为三叉树(ternary-tree,TT),分割为四个部分的树称为四叉树(quad-tree,QT)。
如上所述,本文中使用的术语“块”可以是图像的一部分,特别是正方形或矩形部分。例如,参照HEVC和VVC,块可以为或可以对应于编码树单元(coding tree unit,CTU)、编码单元(coding unit,CU)、预测单元(prediction unit,PU)和变换单元(transform unit,TU),和/或对应于对应的块,例如,编码树块(coding tree block,CTB)、编码块(codingblock,CB)、变换块(transform block,TB)或预测块(prediction block,PB)。
例如,编码树单元(coding tree unit,CTU)可以为或可以包括具有3个样本阵列的图像中的亮度样本的一个CTB、该图像中的色度样本的两个对应CTB、或黑白图像中的或使用3个独立颜色平面和语法结构进行译码的图像中的样本的一个CTB。这些语法结构用于对样本进行译码。相应地,编码树块(coding tree block,CTB)可以为N×N个样本块,其中,N可以设为某个值,使得一个分量被划分为CTB,这就是分割。编码单元(coding unit,CU)可以为或可以包括具有3个样本阵列的图像中的亮度样本的一个编码块、该图像中的色度样本的两个对应编码块,或者黑白图像中的或使用3个单独颜色平面和语法结构进行译码的图像中的样本的一个编码块。这些语法结构用于对样本进行译码。相应地,编码块(codingblock,CB)可以为M×N个样本块,其中,M、N可以设为某个值,使得一个CTB被划分为编码块,这就是分割。
在一些实施例中,例如根据HEVC,可以通过表示为编码树的四叉树结构将编码树单元(coding tree unit,CTU)划分为多个CU。在CU级作出是否使用帧间(时间)预测或帧内(空间)预测对图像区域进行译码的决定。每个CU可以根据PU划分类型进一步划分为1个、2个或4个PU。一个PU内执行相同的预测过程,并以PU为单位向解码器发送相关信息。在根据PU划分类型执行预测过程获得残差块之后,可以根据类似于用于CU的编码树类似的另一种四叉树结构将CU分割成变换单元(transform unit,TU)。
在一些实施例中,例如根据当前开发的最新视频编码标准(称为通用视频编码(Versatile Video Coding,VVC)),使用四叉树结合二叉树(quad-tree and binary-tree,QTBT)分割来分割编码块。在QTBT块结构中,一个CU可以为正方形或矩形形状。例如,编码树单元(coding tree unit,CTU)首先通过四叉树结构进行分割。四叉树叶节点进一步通过二叉树或三叉树结构进行分割。分割树叶节点称为编码单元(coding unit,CU),这样的分段用于预测和变换处理,无需任何进一步的分割。这表示在QTBT编码块结构中,CU、PU和TU的块大小相同。与此同时,可以将三叉树分割等多重分割与QTBT块结构一起使用。
在一个示例中,视频编码器20中的模式选择单元260可以用于执行本文中描述的分割技术的任意组合。
如上所述,视频编码器20用于从(预定的)预测模式集合中确定或选择最佳或最优的预测模式。该预测模式集合可以包括例如帧内预测模式和/或帧间预测模式等。
帧内预测
帧内预测模式集合可以包括35种不同的帧内预测模式,例如像DC(或均值)模式和平面模式的非方向性模式或如HEVC中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如像DC(或均值)模式和平面模式的非方向性模式或如VVC中定义的方向性模式。
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一个当前图像的相邻块的重建样本来生成帧内预测块265。
帧内预测单元254(或总称为模式选择单元260)还用于将帧内预测参数(或总称为表示块的选定帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包含到经编码的图像数据21中,使得(例如)视频解码器30可以接收并使用预测参数进行解码。
帧间预测
(可能的)帧间预测模式集合取决于可用的参考图像(即如上述存储在DBP 230中的至少部分经解码的图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗区域)来搜索最佳匹配参考块,和/或例如取决于是否进行像素插值(例如二分之一/半像素插值和/或四分之一像素插值)。
除了上述预测模式之外,还可以使用跳过模式和/或直接模式。
帧间预测单元244可以包括运动估计(motion estimation,ME)单元和运动补偿(motion compensation,MC)单元(两者均未在图2中示出)。运动估计单元可以用于接收或获取图像块203(当前图像17的当前图像块203)和经解码的图像231,或者至少一个或多个先前重建块(例如一个或多个其它/不同的先前解码的图像231的重建块),以进行运动估计。例如,视频序列可以包括当前图像和先前解码的图像231,换句话说,当前图像和先前解码的图像231可以为组成视频序列的一序列图像的一部分或组成该序列的图像。
例如,编码器20可以用于从多个其它图像中的同一个或不同图像的多个参考块中选择一个参考块,并将参考图像(或参考图像索引)和/或参考块的位置(x坐标、y坐标)与当前块的位置之间的偏移(空间偏移)作为帧间预测参数提供给运动估计单元。该偏移也称为运动矢量(motion vector,MV)。
运动补偿单元用于获取如接收帧间预测参数,并根据或使用帧间预测参数进行帧间预测,获得帧间预测块265。由运动补偿单元执行的运动补偿可以包括根据通过运动估计确定的运动/块矢量来提取或生成预测块,还可以包括对子像素精度进行插值。进行插值滤波时,可以根据已知像素样本生成其它像素样本,从而可能增加可用于对图像块进行译码的候选预测块的数量。接收到当前图像块的PU对应的运动矢量后,运动补偿单元可以在其中一个参考图像列表中定位所述运动矢量所指向的预测块。
运动补偿单元还可以生成与块和视频条带关联的语法元素,以供视频解码器30在解码视频条带的图像块时使用。此外,可选的,作为条带和相应语法元素的替代,可以生成或使用分块组和/或分块以及相应的语法元素。
熵译码
熵编码单元270用于将熵编码算法或方案(例如可变长度编码(variable lengthcoding,VLC)方案、上下文自适应VLC(context adaptive VLC scheme,CAVLC)方案、算术编码方案、二值化,上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability intervalpartitioning entropy,PIPE)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,以获得可以通过输出端272以编码码流21等形式输出的经编码的图像数据21,使得如视频解码器30等可以接收并使用这些参数进行解码。编码码流21可以传输到视频解码器30,或者存储在存储器中,以进行后续传输或以供视频解码器30进行后续检索。
视频编码器20的其它结构变化可以用于对视频流进行编码。例如,基于非变换的编码器20可以在没有变换处理单元206的情况下为某些块或帧直接量化残差信号。在另一种实现方式中,编码器20可以包括组合成单个单元的量化单元208和反量化单元210。
解码器和解码方法
图3示出了用于实现本申请技术的示例性视频解码器30。视频解码器30用于接收,如由编码器20编码的经编码图像数据21(例如,编码码流21),获得经解码的图像331。经编码的图像数据或码流包括用于解码经编码的图像数据的信息,例如表示经编码的视频条带(和/或分块组和分块)中的图像块的数据和相关的语法元素。
在图3的示例中,解码器30包括熵解码单元304、反量化单元310、逆变换处理单元312、重建单元314(例如求和器314)、环路滤波器320、解码图像缓冲区(decoded picturebuffer,DBP)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行大体上与结合图2所示的视频编码器100所描述的编码过程相反的解码过程。
如编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DPB)230、帧间预测单元344和帧内预测单元354组成视频编码器20的“内置解码器”。相应地,反量化单元310在功能上可以与反量化单元110相同,逆变换处理单元312在功能上可以与逆变换处理单元212相同,重建单元314在功能上可以与重建单元214相同,环路滤波器320在功能上可以与环路滤波器220相同,解码图像缓冲区330在功能上可以与解码图像缓冲区230相同。因此,视频编码器20的相应单元和功能的解释相应地适用于视频解码器30的相应单元和功能。
熵解码
熵解码单元304用于解析码流21(或总称为经编码的图像数据21)并对经编码的图像数据21执行熵解码等,获得量化系数309和/或经解码的编码参数(图3中未示出)等,例如帧间预测参数(例如参考图像索引和运动矢量)、帧内预测参数(例如帧内预测模式或索引)、变换参数、量化参数、环路滤波器参数和/或其它语法元素中的任意一个或全部。熵解码单元304可以用于使用与结合编码器20中的熵编码单元270所描述的编码方案对应的解码算法或方案。熵解码单元304还可以用于向模式应用单元360提供帧间预测参数、帧内预测参数和/或其它语法元素,以及向解码器30的其它单元提供其它参数。视频解码器30可以接收视频条带级和/或视频块级的语法元素。此外,可选的,作为条带和相应语法元素的替代,可以接收或使用分块组和/或分块以及相应的语法元素。
反量化
反量化单元310可以用于从经编码的图像数据21(例如通过熵解码单元304等解析和/或解码)接收量化参数(quantization parameter,QP)(或总称为反量化相关信息)和量化系数,并根据这些量化参数对经解码的量化系数309进行反量化,以获得解量化系数311。解量化系数311也可以称为变换系数311。反量化过程可以包括使用视频编码器20为视频条带(分块或分块组)中的每个视频块确定的量化参数来确定量化程度,同样也确定需要进行的反量化的程度。
逆变换
逆变换处理单元312可以用于接收解量化系数311(也称为变换系数311),并对解量化系数311进行变换,以获得样本域中的重建残差块213。重建残差块213也可以称为变换块313。所述变换可以为逆变换,例如逆DCT、逆DST、逆整数变换或概念上类似的逆变换过程。逆变换处理单元312还可以用于从经编码的图像数据21接收变换参数或对应的信息(例如,通过熵解码单元304等解析和/或解码),以确定将对解量化系数311进行的变换。
重建
重建单元314(例如加法器或求和器314)可以用于通过如下方式将重建残差块313添加到预测块365,例如,将重建残差块313的样本值和预测块365的样本值相加,以获得样本域中的重建块315。
滤波
环路滤波器单元320(在译码环路中或在译码环路之后)用于对重建块315进行滤波,获得滤波块321,从而平滑像素的突变或以其它方式提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如双边滤波器、自适应环路滤波器(adaptive loop filter,ALF)、锐化滤波器、平滑滤波器、协作滤波器或其任意组合。尽管环路滤波器单元320在图3中示出为环内滤波器,但在其它配置中,环路滤波器单元320可以实现为环后滤波器。
解码图像缓冲区
将一个图像的经解码视频块321存储在解码图像缓冲区330中,解码图像缓冲区330存储经解码的图像331作为参考图像,以便对其它图像进行后续运动补偿和/或进行相应输出以进行显示。
解码器30用于通过输出端312等输出经解码的图像311,以向用户呈现或供用户观看。
预测
帧间预测单元344在功能上可以与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354在功能上可以与帧内预测单元254相同,并根据从经编码的图像数据21(例如通过熵解码单元304等解析和/或解码)接收的分割和/或预测参数或相应信息来决定划分或分割并进行预测。模式应用单元360可以用于根据重建图像、重建块或相应的样本(经过滤波或未经滤波)按块执行预测(帧内预测或帧间预测),以获得预测块365。
视频条带译码为经帧内译码(intra coded)的(I)条带时,模式应用单元360中的帧内预测单元354用于根据指示的帧内预测模式和来自当前图像的先前解码块的数据为当前视频条带的图像块生成预测块365。当视频图像译码为经帧间译码(inter coded)的(B或P)条带时,模式应用单元360中的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收到的其它语法元素为当前视频条带的视频块生成预测块365。对于帧间预测,可以根据其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认构建技术来构建参考帧列表0和参考帧列表1。除了条带(如视频条带)或作为条带的替代,可以将相同或类似过程应用于或体现于分块组(如视频分块组)和/或分块(如视频分块)上,例如,可以采用I、P或B分块组和/或分块对视频进行译码。
模式应用单元360用于通过解析运动矢量或相关信息以及其它语法元素,确定当前视频条带的视频块的预测信息,并使用该预测信息为正在解码的当前视频块产生预测块。例如,模式应用单元360使用接收到的一些语法元素确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个经帧间编码的视频块的运动矢量、用于条带的每个经帧间译码的视频块的帧间预测状态,以及其它信息,以对当前视频条带中的视频块进行解码。除了条带(如视频条带)或作为条带的替代,可以将相同或类似过程应用于或体现于分块组(如视频分块组)和/或分块(如视频分块)上,例如,可以采用I、P或B分块组和/或分块对视频进行译码。
在图3所示的视频解码器30的实施例中,视频解码器30还可以用于使用条带(也称为视频条带)对图像进行分割和/或解码。其中,可以使用一个或多个条带(通常为不重叠的条带)对图像进行分割或解码,并且每个条带可以包括一个或多个块(例如,CTU)。
在图3所示的视频解码器30的实施例中,视频解码器30可以用于使用分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或解码。其中,可以使用一个或多个分块组(通常为不重叠的分块组)对图像进行分割或解码,每个分块组可以包括一个或多个块(例如,CTU)或一个或多个分块等,其中,每个分块可以为矩形等形状,并且可以包括一个或多个块(例如,CTU),例如,完整块或部分块。
视频解码器30的其它变型可以用于对经编码的图像数据21进行解码。例如,解码器30能够在没有环路滤波器单元320的情况下产生输出视频流。例如,基于非变换的解码器30可以在没有逆变换处理单元312的情况下为某些块或帧直接反量化残差信号。在另一种实现方式中,视频解码器30可以包括组合成单个单元的反量化单元310和逆变换处理单元312。
应当理解的是,在编码器20和解码器30中,可以针对当前步骤的处理结果进行进一步处理,然后输出到下一步骤。例如,在插值滤波、运动矢量推导或环路滤波之后,可以针对插值滤波、运动矢量推导或环路滤波的处理结果进一步进行如修正(clip)或移位(shift)等操作。
需要说明的是,可以对当前块的推导运动矢量(包括但不限于仿射模式下的控制点运动矢量、仿射模式下的子块运动矢量、平面模式下的子块运动矢量、ATMVP模式下的子块运动矢量、时域运动矢量等)执行进一步的操作。例如,根据运动矢量的表示位将该运动矢量的值限制在预定义范围内。如果运动矢量的表示位为bitDepth,则该范围为–2^(bitDepth–1)至2^(bitDepth–1)–1,其中“^”符号表示幂次方。例如,如果bitDepth设置为16,则该范围为–32768至32767;如果bitDepth设置为18,则该范围为–131072至131071。例如,推导到的运动矢量的值(例如一个8×8块中的4个4×4子块的MV)被限制,使得所述4个4×4子块MV的整数部分之间的最大差值不超过N个像素,例如不超过1个像素。这里提供了两种根据bitDepth限制运动矢量的方法。
方法1:通过流操作来去除溢出的最高有效位(most significant bit,MSB)。
ux=(mvx+2bitDepth)%2bitDepth (1)
mvx=(ux>=2bitDepth–1)?(ux–2bitDepth):ux (2)
uy=(mvy+2bitDepth)%2bitDepth (3)
mvy=(uy>=2bitDepth–1)?(uy–2bitDepth):uy (4)
其中,mvx表示一个图像块或子块的运动矢量中的水平分量,mvy表示该图像块或子块的运动矢量中的垂直分量,ux和uy表示中间值。
例如,如果mvx的值为–32769,则使用公式(1)和(2)后,所获得的值为32767。在计算机系统中,十进制数以2的补码的形式存储。–32769的2的补码为1,0111,1111,1111,1111(17位),然后丢弃MSB,因此所获得的2的补码为0111,1111,1111,1111(十进制数为32767),与公式(1)和(2)的输出结果相同。
ux=(mvpx+mvdx+2bitDepth)%2bitDepth (5)
mvx=(ux>=2bitDepth–1)?(ux–2bitDepth):ux (6)
uy=(mvpy+mvdy+2bitDepth)%2bitDepth (7)
mvy=(uy>=2bitDepth–1)?(uy–2bitDepth):uy (8)
这些运算可以在对mvp和mvd求和的过程中进行,如公式(5)至(8)所示。
方法二:通过对值进行修正来去除溢出的MSB。
vx=Clip3(–2bitDepth–1,2bitDepth–1–1,vx)
vy=Clip3(–2bitDepth–1,2bitDepth–1–1,vy)
其中,vx表示一个图像块或子块的运动矢量中的水平分量,vy表示该图像块或子块的运动矢量中的垂直分量;x、y和z分别对应于MV修正过程的3个输入值,函数Clip3的定义如下:
图4为本发明实施例提供的视频译码设备400的示意图。视频译码设备400适用于实现本文描述的公开实施例。在一个实施例中,视频编码设备400可以是解码器,例如图1A中的视频解码器30,也可以是编码器,例如图1A中的视频编码器20。
视频译码设备400包括:入端口410(或输入端口410)和接收单元(receiver unit,Rx)420,用于接收数据;处理器、逻辑单元或中央处理单元(central processing unit,CPU)430,用于处理数据;发送单元(transmitter unit,Tx)440和出端口450(或输出端口450),用于发送数据;存储器460,用于存储数据。视频译码设备400还可以包括与入端口410、接收单元420、发送单元440和出端口450耦合的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件,用作光信号或电信号的出口或入口。
处理器430通过硬件和软件实现。处理器430可以实现为一个或多个CPU芯片、核(例如,多核处理器)、FPGA、ASIC以及DSP。处理器430与入端口410、接收单元420、发送单元440、出端口450和存储器460通信。处理器430包括译码模块470。译码模块470实现上述描述的公开实施例。例如,译码模块470执行、处理、准备或提供各种译码操作。因此,将译码模块470包含在内,这为视频译码设备400的功能提供了实质性的改进,并且影响了视频译码设备400到不同状态的转换。或者,以存储在存储器460中并由处理器430执行的指令来实现译码模块470。
存储器460可以包括一个或多个磁盘、磁带机以及固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序以及存储在执行程序过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(staticrandom-access memory,SRAM)。
图5为示例性实施例提供的装置500的简化框图。装置500可以用作图1中的源设备12和目的地设备14中的任一者或两者。
装置500中的处理器502可以是中央处理器。或者,处理器502可以是现有的或今后将开发出的能够操控或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但使用多于1个处理器实现时可以提高速度和效率。
在一种实现方式中,装置500中的存储器504可以是只读存储器(read-onlymemory,ROM)设备或随机存取存储器(random access memory,RAM)设备。任何其它合适类型的存储设备都可以用作存储器504。存储器504可以包括处理器502通过总线512访问的代码和数据506。存储器504还可以包括操作系统508和应用程序510,应用程序510包括至少一个程序,所述至少一个程序使得处理器502执行本文中所描述的方法。例如,应用程序510可以包括应用1至N,其包括执行本文所述方法的视频译码应用。
装置500还可以包括一个或多个输出设备,例如显示器518。在一个示例中,显示器518可以是将显示器与触敏元件相结合的触敏显示器,该触敏显示器能够用于感测触摸输入。显示器518可以通过总线512与处理器502耦合。
虽然装置500的总线512在图中示也为单个总线,但是总线512可以有多个。此外,辅助存储器514可以直接与装置500中的其它组件耦合或可以通过网络访问,并且可以包括单个集成单元(例如一个存储卡)或多个单元(例如多个存储卡)。因此,装置500可以具有各种各样的配置。
通用视频编码(Versatile Video coding,VVC)是新开发的标准,用于编码标准动态范围视频内容和高动态范围视频内容。高动态范围视频(HDR视频)描述了一种视频,其动态范围大于标准动态范围视频(SDR视频)的动态范围。HDR视频的关键特征是白色更亮、黑色更深,具有至少10位颜色深度(SDR视频具有8位颜色深度),以维持此扩展范围的精度。虽然技术上不同,术语“HDR视频”通常理解为暗示还具有宽色域。
目前,SDR和HDR已进行商用部署,并且会长期共存。SDR内容通常编码为BT.709容器或BT.2020容器中的非恒亮度(Non-Constant Luminance,NCL)Y'CbCr伽玛。HDR内容通常编码为BT.2020容器/BT.2100容器中的NCL Y'CbCr Pq、恒定亮度ICtCp PQ或NCL Y'CbCrHLG。在当前的VVC规范中,仅指定了用于映射亮度量化参数到色度量化参数的映射表(表1)。该表从HEVC标准继承,仅用于SDR内容。正如[3]中报告的那样,使用默认QpC表导致低码率的色度假象,特别是在彩色区域。本申请提出了增加专用于HDR内容的色度映射表。
考虑到新开发的标准需要数年来部署,而且处理信号类型的可变性可能会增加,因此需要具有灵活的映射表规格。此外,使用特定内容的色度QP映射表,可以为编码器的优化带来更多的选择性。一种直接的解决方案是指定图片/条带/分块组级别的映射表。然而,考虑到编解码器支持的QP范围可以足够宽(例如,在VVC中,编解码器支持的QP范围为0至63),直接的表规格可能会消耗大量的比特。因此,进一步描述了可以减少比特消耗量的色度QP映射表指示方法。还应理解的是,亮度QP和色度QP之间的关系可以表示为函数,也可以表示为表的形式。在此处以及下文中,映射表和映射函数用作同义词。
图7示出了所支持的QP范围的量化参数索引QPi到色度量化参数QPc的HEVC映射函数的示意性表示,其中,72表示HEVC映射函数,71表示1对1映射函数。
此时,为了更好地理解本发明,应当考虑的是,函数被称为单调递增函数,即也称为递增或非递减函数。对于所有x和y,只要x<=y,则f(x)<=f(y),因此,f保持这种次序关系。这里,应理解的是,x和y都来自定义该函数的集合。
对于线性函数,斜率定义为df(x)/dx。根据非递减函数的定义,如上所述,dx和df(x)总是具有相同的符号。因此,df(x)/dx和斜率总是非负数。这可以通过使用无符号型ue(v)码来编码枢轴点的dx和df(x)实现,如下文所述。
根据本发明的第一实施例,亮度-色度映射函数是单调递增(非递减)函数,被划分为包括两类区域。A类区域是平坦区域(732),对应的函数为非递增(或flat)函数,即f(x)–f(x–1)=0。B类区域对应的函数为递增函数(731),即f(x)–f(x–1)=c,其中,c是x的函数,c(x)>=1。在更具体的情况下,在B类区域,对于每个连续输入参数,函数具有增量1,即f(x)–f(x–1)=1。输入参数值x的集合X被划分为两个不重叠的集合。集合A对应于非递增区域(A类)的函数值,集合B对应于递增区域(类B)的函数值。需要说明的是,X=A+B。
图8示出了一种示例性映射表,该映射表示出了增量值等于零(即平坦区域)的函数(87)的示例以及对应的参数值x(88)的示例。例如,对于HEVC映射表82,集合A由值30、35、37、39、41和43组成。对于另一示例性的经修改的映射表83,集合A由值30、39、43(或值35、39、43)组成。根据第一实施例,在码流中指示集合A,并且解码器根据从码流中获得的关于集合A的信息以表的形式等构建映射函数。由于集合B可以推导为B=X–A,其中,X是解码器支持的QP范围(例如,0至63)的集合等,且由于为集合A和B的输入参数定义了映射函数行为,因此,可以假设x=0对应的映射函数的第一值为0,使用以下示例性的伪码以表的形式等构建映射函数:
下文将演示如何根据给定的QP索引QPi计算一个QPc的另一个示例性伪码:
需要说明的是,在一些实现方式,集合X可以是解码器支持的QP范围的子集。该子集可以预定义或在码流中指示。
需要说明的是,映射函数的平坦(非递增)区域也可以通过当前的输入参数值和下一个输入参数值进行定义,即f(x+1)–f(x)=0。可以理解的是,这种定义并不改变指示和获得映射函数的逻辑。例如,将值x+1放入集合A中,可以达到相同的效果。
由于映射函数的点根据定义的行为被分为两类,且映射函数是非递增函数时所对应的点的数量受到限制,因此,相对于直接指示映射函数的每个值,这样减小了指示开销。
为了在解码器侧获得集合A,码流中包括关于该集合的大小(元素的数量)和元素值的信息。
本实施例的第一方面,使用一种合适的码,例如二进制码、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码,在码流中直接指示集合A的大小(sizeA)。在一些实现方式中,限制集合A的大小不为零,此时,在码流中指示一个值sizeA–1。这样,可以节省1个指示比特。
本实施例的第二方面,使用一种合适的码,例如二进制码、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码,在码流中直接指示集合A的元素的值(例如,30、39、43)。对应的映射函数可以如以下示例形式的表所示:
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
QpC | =qPi | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
应理解的是,上表可以用于在未启用通过码流指示映射表或者编码器/解码器不支持事件时指定默认映射函数。
根据第二方面,在另一个示例性实施例中,集合A的元素的值等于(35、39、43)。对应的映射函数可以如以下示例形式的表所示:
qPi | <35 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
应理解的是,上表可以用于在未启用通过码流指示映射表或者编码器/解码器不支持事件时指定默认映射函数。
第三方面,针对除了第一个元素之外的每个元素指示当前元素(ai)的值与前一个元素(ai–1)的值之间的差值(delta_ai)(例如,delta_ai=ai–ai–1,其中,i>0)。对集合A进行排序,可以排除负数差值,同时减少符号位的指示。此外,了解到集合A的元素值是唯一的(非重复的),可以确保delta_ai总是大于零。这样,可以在所述码流中指示delta_ai–1,从而额外减少了指示开销。
集合A的第一值a0被指示为第一值a0与starting_point_value的差值,其中,starting_point_value在码流中进行指示或者是预定义的值,例如0、21、30或maxQP>>1,其中,maxQP为解码器支持的最大QP值,例如63。starting_point_value也可以根据内容类型(例如,SDR内容或HDR内容)确定。根据上述方法指示差值delta_a0。通过选择合适的starting_point_value,可以节省用于指示第一值的比特。
上述指示方法的语法表和对应语义的示例如下:
色度QP映射数据的语法:
色度QP映射数据的语义:
cqp_flat_points_minus1+1表示映射函数为非递增函数时对应的点的数量。
cqp_delta_fp0表示映射函数为非递增函数时所对应的点构成的集合的第一个元素与starting_point_value之间的增量值,其中,starting_point_value等于21(在另一种可能的实现方式中,starting_point_value可以为例如0、26或32,或根据支持的QP范围进行定义,例如,定义为maxQP/2)。cqp_delta_fp_minus1[i]+1表示映射函数为非递增函数时所对应的点构成的集合的第i个元素与第(i–1)个元素之间的增量值。
变量cQpFlatSize推导如下:
cQpFlatSize=cqp_flat_points_minus1+1
变量cQpFlat[]推导如下:
色度QP映射表cqpMappingTable[]推导如下:
其中,maxQP为支持的最大QP值。
在一种可能的实现方式中,starting_point_value为0,cqp_delta_fp0表示映射函数为非递增函数时所对应的点构成的集合中的第一个元素的值。
用于获得相同结果且可以根据QP索引QPi获得QPc的替代语义如下所示:
QPc=QPi–sum
在上述starting_point_value为0的可能实现方式中,可以具有如下语法和语义:
或者,在替代示例中:
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射表,且该色度Qp映射表覆盖用于推导QpC的表2。chroma_qp_mapping_flag等于0,表示使用表2中指定的默认色度Qp映射表来推导QpC。当chroma_qp_mapping_flag不存在时,推断chroma_qp_mapping_flag等于0。
cqp_flat_points_minus1+1表示映射函数为非递增函数时对应的点的数量。
cqp_fp0表示映射函数为非递增函数时所对应的点构成的集合的第一个元素。
cqp_delta_fp_minus1[i]+1表示映射函数为非递增函数时所对应的点构成的集合的第i个元素与第(i–1)个元素之间的增量值。
变量cQpFlatSize推导如下:
cQpFlatSize=cqp_flat_points_minus1+1
变量cQpFlat[]推导如下:
色度QP映射表cqpMappingTable[]推导如下:
其中,maxQP为支持的最大QP值。
在一个示例中,qPCb、qPCr和qPCbCr推导如下:
qPChroma=Clip3(-QpBdOffset,63,QpY);
qPCb=ChromaQpTable[0][qPChroma];
qPCr=ChromaQpTable[1][qPChroma];
qPCbCr=ChromaQpTable[2][qPChroma];
Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr推导如下:
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset;
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset;
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset_value+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset;
其中,ChromaQpTable为所述色度QP映射表;
QPi对应于qPChroma;
QPc对应于qPCb、qPCr和qPCbCr;
QpBdOffset为根据亮度和色度阵列的样本的位深通过以下公式计算获得的位深偏移:
QpBdOffset=6*bit_depth_minus8
其中,bit_depth_minus8的范围为0至8(包括0和8);
pps_cb_qp_offset和pps_cr_qp_offset分别表示用于推导Qp′Cb和Qp′Cr的亮度量化参数Qp′Y的偏移量;
pps_joint_cbcr_qp_offset_value表示用于推导Qp′CbCr的亮度量化参数Qp′Y的偏移量;
slice_cr_qp_offset表示在确定量化参数Qp′Cr的值时待增加到pps_cr_qp_offset的值的差值;
slice_cb_qp_offset表示在确定量化参数Qp′Cb的值时待增加到pps_cb_qp_offset的值的差值;
slice_joint_cbcr_qp_offset表示在确定Qp′CbCr的值时待增加到pps_joint_cbcr_qp_offset_value的值的差值;
变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr表示在分别确定用于所述解码器的量化参数Qp′Cb、Qp′Cr和Qp′CbCr的值时待使用的值。
在一些实现方式中,在推导非递增点cQpFlat构成的阵列的过程中,可以使用图像级和条带级的色度QP偏移(pps_cr_qp_offset、slice_cr_qp_offset):
变量cQpFlat[]推导如下:
以下为使用非递增点cQpFlat构成的阵列的示例,其中,非递增点是根据从集成到色度QP推导过程的码流中解析出的信息获得的:
当ChromaArrayType不等于0且treeType等于SINGLE_TREE或DUAL_TREE_CHROMA时,以下情况适用:
–当treeType等于DUAL_TREE_CHROMA,变量QpY设置为等于亮度编码单元的亮度量化参数QpY,其中,所述亮度编码单元位于亮度位置(xCb+cbWidth/2,yCb+cbHeight/2)。
–变量qPCb、qPCr和qPCbCr推导如下:
qPiCb=Clip3(-QpBdOffsetC,69,QpY+pps_cb_qp_offset+slice_cb_qp_offset)
(8-928)
qPiCr=Clip3(-QpBdOffsetC,69,QpY+pps_cr_qp_offset+slice_cr_qp_offset)
(8-929)
qPiCbCr=Clip3(-QpBdOffsetC,69,QpY+pps_joint_cbcr_qp_offset+
slice_joint_cbcr_qp_offset)(8-930)
–如果ChromaArrayType等于1,变量qPCb、qPCr和qPCbCr设置为等于QpC的值:
QpC=qPi–QpShift,
其中,变量QpShift推导如下:
上述示例中涉及的变量cQpFlat可用于对默认映射表进行定义和初始化。可用作默认值的cQpFlat的示例如下:
cQpFlat={30、35、37、39、41、43}
cQpFlat={30、39、43}
cQpFlat={35、39、43}或cQpFlat={35、39、41、43}
cQpFlat={22、23、25、27、29、31、33、35、39、40、41、43、47、49、51、53、55}
cQpFlat={21、22、24、25、26、27、29、30、31、32、33、35、42、47、49、51、53、55}
为了使cQpFlat[0]的值小于starting_point_value,cqp_delta_fp0可以是负数,并且此参数的指示可以包括符号位,或者,例如,使用有符号型Exp-Golomb码,如以下示例所述:
或者,在一些示例性实现方式中,集合A的大小和其中的值通过以下方式指示:
1.读取用于指示以下码流信息中是否包含集合A的元素的指示符。
2.如果指示符为正(TRUE),根据例如第二方面或第三方面所述的方法读取元素值。
重复步骤1。
3.如果指示符为负(FALSE),停止读取与集合A相关的信息。
在该实现方式中,集合A的大小为具有正值的指示符的数量。
限制集合A不为空,可以通过以下方式实现对集合A的大小和集合A中的值的指示:
1.根据例如第二方面或第三方面所述的方法读取元素值。
2.读取用于指示以下码流信息中是否包含集合A的其它元素的指示符。
3.如果指示符为正(TRUE),重复步骤1和步骤2的读取操作。
4.如果指示符为负(FALSE),停止读取与集合A相关的信息。
在本实现方式中,集合A的大小为具有正值的指示符的数量加1。限制集合A不为空,可以不需要指示一个附加指示符,从而进一步减少指示开销。
需要说明的是,上述对集合A的大小以及其元素的值的指示可以使用任意一种合适的码来实现,例如二进制码、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码等。
在映射函数的一些实现过程中,平坦区域(集合A)中的元素的数量可以大于递增区域(集合B)中的元素的数量。在这种情况下,使用上述方法对集合B的元素进行指示是有益的。
根据本发明的第二实施例,亮度-色度映射函数的B类区域被划分为Bk的子集的集合,其中,每个子集Bk包括所述映射函数具有相同增量ck时所对应的元素x:
x∈Bk,若f(x)–f(x–1)=ck,其中,ck为自然数(例如,0、1、2、3、4……)。
换句话说,根据在子集Bk的点x处的映射函数增量的数量将子集B划分为不同的子集。
在图10所示的示例中,1031表示的区域的映射函数增量等于1(ck=1)。1032表示的区域的函数增量等于2(ck=2)。1032表示的区域的函数增量等于0(ck=0)。下表示出了与图10所示的示例性函数对应的子集Bk的划分。
函数增量c<sub>k</sub> | 子集B<sub>k</sub>中的点的数量 | 子集B<sub>k</sub>的点x |
2 | 1 | 11 |
0 | 6 | 30、35、37、39、41、43 |
1 | maxQP–(6+1) | 其它点X |
其中,maxQP为解码器支持的最大QP值(例如,0至63)。
根据第三实施例,码流包括关于在所述码流中指示的子集Bk的数量的信息、在所述码流中指示的每个子集的函数增量ck,在所述码流中指示的每个子集Bk的大小以及在所述码流中指示的每个子集Bk的点。
语法和语义示例如下文所述:
cqp_set_num表示色度Qp映射表具有非默认行为时所对应的点构成的集合的数量(在下文中,通常理解为在默认行为下,函数增量等于1。默认行为还可通过其它方式定义,例如,定义为先前指示的映射函数或默认映射函数)。
cqp_set_inc[k]表示第k个集合中的点的函数增量。
cqp_set_size[k]表示第k个集合中的点的数量。
cqp_fp0表示映射函数为非递增函数时所对应的点构成的集合的第一个元素。
cqp_set_point[k][i]表示第k个集合的第i个元素(此处,可以对上述示例中i=0所对应的元素之外的其它第i个元素和第(i–1)个元素之间的增量进行编码)。
变量cQpFlatSize推导如下:
cQpFlatSize=cqp_flat_points_minus1+1
变量cQpFlat[]推导如下:
色度QP映射表cqpMappingTable[]推导如下:
其中,maxQP为支持的最大QP值。
根据QP索引(qPi)推导QpC的值可以如下所述:
QpC=qPi+QpShift,
其中,变量QpShift推导如下:
其中,变量defInc=1定义了默认函数增量(例如,在上述给定示例中等于1)。
或者,替代地:
QpC=qPi+QpShift,
其中,变量QpShift推导如下:
需要说明的是,变量cqp_set_inc[k]具有符号值(例如,使用有符号型Exp-Golomb码(se(v))进行指示,使函数具有负增量,因此提高了灵活性,即映射函数维持相同的语义递减)。
第二实施例的第二方面,色度QP映射表信息可以用于修改默认映射函数或先前指示的映射函数。色度QP映射表信息可以用于对视频序列特定部分进行映射函数自适应,以便通过更好地利用不同的视频信号属性来提高压缩效率。根据该方面,上述默认函数行为(或增量)被现有的映射函数增量代替。示例性语义如下所述:
色度QP映射表cqpMappingTable[]推导如下:
其中,maxQP为支持的最大QP值,cqpMappingTablePrev为先前指示的映射表或默认映射表。
根据QP索引(qPi)推导QpC的值可以如下所述:
QpC=qPi+QpShift,
其中,变量QpShift推导如下:
其中,变量defInc定义了先前的映射函数(cqpMappingTablePrev)增量。
或者,替代地:
QpC=qPi+QpShift,
其中,变量QpShift推导如下:
其中,变量defInc定义了先前的映射函数(cqpMappingTablePrev)增量。
使用第二实施例中所述的方法,可以在QP索引(qPi)计算中不计算pps_cr_qp_offset和slice_cr_qp_offset参数,并且使用亮度QP作为映射函数的输入参数。这样简化了色度QP参数的推导公式,而且不需要在码流中指示色度QP偏移参数pps_cr_qp_offset和slice_cr_qp_offset。
pps_cr_qp_offset和slice_cr_qp_offset参数可以在使用映射函数之后再使用。
下面提供语法和语义的另一个示例,该示例中未限制映射函数在每个点的增量的大小。映射函数仍然限制为是非递减函数。
序列参数集语法
语义:选项2,基于表
阐明以下语义以根据指示的参数来推导色度Qp映射表:
same_сqp_table等于1,表示仅指示一个色度QP映射表,而且该色度QP映射表适用于Cb分量、Cr分量以及联合Cb-Cr编码。same_сqp_table等于0,表示在SPS中指示3个色度QP映射表。
cqp_set_num_m1[n]+1表示第n个色度Qp映射函数的增量值不为1时所对应的点构成的集合的数量。
cqp_set_inc[n][k]表示在第k个集合的点处的色度Qp映射函数增量,而且限制该增量不为1。
cqp_set_size_m1[n][k]+1表示集合的点的数量。
cqp_set_delta_m1[n][k][i]+1表示i等于0时集合的第i个元素或者表示i不等于0时第i个元素与第(i–1)个元素之间的增量值。
阵列cqp_set_point[n][k][i]表示第n个色度Qp映射表的增量值不为1时所对应的点构成的集合,推导如下:
cqp_set_point[n][k][i]=cqp_set_delta_m1[n][k][i]+1+(i>0?:cqp_set_point[n][k][i–1]:0)
当n=0..same_qp_table_for_chroma?0:2时,第n个色度QP映射表cqpMappingTable[i]推导如下:
cqpMappingTable[n][0]=0
cqpMappingTable[n][i]=cqpMappingTable[n][i–1]+incStep,其中,i=1..63,incStep被初始化为1,并在k=0..cqp_set_num_m1[n],j=0..cqp_set_size_m1[n][k]时修改如下:
–If(i==cqp_set_point[n][k][j])incStep=cqp_set_inc[n][k]
在一些实现方式中,一种有益方式是可以避免存储整个映射表,从而节省了内存。为了实现提供色度Qp值的推导过程,色度Qp映射表的语法元素和语义与选项1中的相同,但不需要维护cqpMappingTable:
same_сqp_table等于1,表示仅指示一个色度QP映射表,而且该色度QP映射表适用于Cb分量、Cr分量以及联合Cb-Cr编码。same_сqp_table等于0,表示在SPS中指示3个色度QP映射表。
cqp_set_num_m1[n]+1表示第n个色度Qp映射函数的增量值不为1时所对应的点构成的集合的数量。
cqp_set_inc[n][k]表示在第k个集合的点处的色度Qp映射函数增量,而且限制该增量不为1。
cqp_set_size_m1[n][k]+1表示集合的点的数量。
cqp_set_delta_m1[n][k][i]+1表示i等于0时集合的第i个元素或者表示i不等于0时第i个元素与第(i–1)个元素之间的增量值。
阵列cqp_set_point[n][k][i]表示第n个色度Qp映射表的增量值不为1时所对应的点构成的集合,推导如下:
cqp_set_point[n][k][i]=cqp_set_delta_m1[n][k][i]+1+(i>0?:cqp_set_point[n][k][i–1]:0)
语义:选项2,不基于表
在一些实现方式中,一种有益方式是可以避免存储整个映射表,从而节省了内存。为了实现提供色度Qp值的推导过程,色度Qp映射表的语法元素和语义与选项1中的相同,但不需要维护cqpMappingTable:
same_сqp_table等于1,表示仅指示一个色度QP映射表,而且该色度QP映射表适用于Cb分量、Cr分量以及联合Cb-Cr编码。same_сqp_table等于0,表示在SPS中指示3个色度QP映射表。
cqp_set_num_m1[n]+1表示第n个色度Qp映射函数的增量值不为1时所对应的点构成的集合的数量。
cqp_set_inc[n][k]表示在第k个集合的点处的色度Qp映射函数增量,而且限制该增量不为1。
cqp_set_size_m1[n][k]+1表示集合的点的数量。
cqp_set_delta_m1[n][k][i]+1表示i等于0时集合的第i个元素或者表示i不等于0时第i个元素与第(i–1)个元素之间的增量值。
阵列cqp_set_point[n][k][i]表示第n个色度Qp映射表的增量值不为1时所对应的点构成的集合,推导如下:
cqp_set_point[n][k][i]=cqp_set_delta_m1[n][k][i]+1+(i>0?:cqp_set_point[n][k][i–1]:0)
推导过程
当treeType等于DUAL_TREE_CHROMA,变量QpY设置为等于亮度编码单元的亮度量化参数QpY,其中,所述亮度编码单元位于亮度位置(xCb+cbWidth/2,yCb+cbHeight/2)。
–阵列QpMapOffset[n]被初始化为0,其中,n=0..2。如果ChromaArrayType等于1,QpMapOffset在k=0..cqp_set_num_m1[n],I=0..cqp_set_size_m1[n][k]时修改如下:
–QpMapOffset[n]=QpMapOffset[n]+(cqp_set_point[n][k][i]<=QpY?cqp_set_inc[n][k]–1:0)
–变量QpOffsetCb、QpOffsetCr和QpOffsetCbCr推导如下:
QpOffsetCb=QpMapOffset[0]+pps_cb_qp_offset+slice_cb_qp_offset
QpOffsetCr=QpMapOffset[1]+pps_cr_qp_offset+slice_cr_qp_offset
QpOffsetCbCr=QpMapOffset[2]+pps_cbcr_qp_offset+slice_cbcr_qp_offset
–Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr推导如下:
Qp′Cb=Clip3(-QpBdOffsetC,63,QpY+QpOffsetCb)+QpBdOffsetC (8-931)
Qp′Cr=Clip3(-QpBdOffsetC,63,QpY+QpOffsetCr)+QpBdOffsetC (8-932)
Qp′CbCr=Clip3(-QpBdOffsetC,63,QpY+QpOffsetCbCr)+QpBdOffsetC (8-933)
需要说明的是,可以对Cb分量和Cr分量采用单独的映射表,即Cb分量的映射表信息可以根据码流获得,Cr分量的映射表信息也可以根据码流获得。
根据第三实施例,映射函数被表示为分段函数,并且码流中指示的信息是分段函数的断点(或变化点,或枢轴点),例如,如图9所示的94和95。
最直接的方式是,在码流中指示枢轴点的数量及其相应的x、y坐标作为用于获得映射函数的信息。类似于第一实施例的第一方面所述的方式,包含枢轴点的集合的大小可以限制为大于零,在这种情况下,在码流中指示一个值size–1。需要说明的是,“用于获得映射函数的信息”可以描述为“映射函数的信息”,“用于获得……的信息”可以描述为“……的信息”。
在第三实施例的第一方面,分段线性函数用于表示映射函数。
在另一个实现方式中,可以限制集合中的第一个点(点D 94)属于单调一对一函数91,此时只需要指示一个坐标即可,例如,Dx,并且可以推导Dy为Dy=Dx。此外,假设分段线性函数的最后一段(或个)与一对一函数平行,则不需要指示点F 96,并且可以根据点E 95以及最后一段与一对一函数平行的信息推导最后一段的参数。
为了进一步减少指示开销,在码流中指示当前枢轴点(例如,E 95)的对应x、y坐标与前一个枢轴点(例如,D 94)的对应x、y坐标之间的差值。对于第一个点,则指示其与某个starting_point之间的差值。starting_point是指某个预定义的点,或者在码流中进行指示。在一些实现方式中,starting_point可以限制位于一对一的线上,在这种情况下,一个坐标即足以定义starting_point。
为了实现映射函数单调递增,当前枢轴点的x、y坐标和前一个枢轴点的x、y坐标之间的差值被限制为非负数,例如,大于或等于零。无符号码,例如,无符号型整数0阶Exp-Golomb码,可以用于指示该差值。
需要说明的是,在解码器的一种实现方式中,上述第一实施例和第二实施例可以共存。编码器选择最合适的方法,例如,使用更少比特进行指示的方法,并在码流中通过对应的指示符进行指示。
在一些实现方式中,解码器可以使用预定义的映射函数和选项来使用从码流中获得的映射函数。在这种情况下,所述选项在码流中通过对应的指示符进行指示。由于合适的映射函数可能取决于序列或序列的部分的一些信号特征,因此编码器可以决定是使用预定义的映射函数还是花费一些额外的比特在码流中指示映射函数,以便在重建的视频中获得更好的压缩效率和平衡的亮度和色度质量。
序列的不同部分可以具有不同的信号特征,对应具有不同的最优映射函数。为了提供改变序列中不同部分的映射函数的能力,所述码流中包括指示符,其中,所述指示符用于表示是否改变例如在图片、条带或分块组级别或在自适应参数集中的映射函数。这样,可以通过更好地调整序列的一部分的信号特征来提高压缩效率。
指示序列参数集中映射函数信息所对应的语法表的示例如下:
上述语法表的示例性语义如下所述:
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射函数,且所述色度Qp映射函数覆盖QpC(色度Qp)的默认规格作为qPi的函数,其中,qPi根据亮度Qp进行推导,且用于推导QpC。chroma_qp_mapping_flag等于0,表示使用默认色度Qp映射表推导QpC。当chroma_qp_mapping_flag不存在时,推断chroma_qp_mapping_flag等于0。
需要说明的是,在一些实现方式中,chroma_qp_mapping_flag可以省略并继承为1。这表明色度Qp映射信息(cqp_mapping_data())在码流中始终存在。
通过码流传输的视频信号可以具有不同的色度格式采样结构。色度采样格式规格的示例如下:
chroma_format_idc | separate_colour_plane_flag | 色度格式 | SubWidthC | SubHeightC |
0 | 0 | 单色 | 1 | 1 |
1 | 0 | 4:2:0 | 2 | 2 |
2 | 0 | 4:2:2 | 2 | 1 |
3 | 0 | 4:4:4 | 1 | 1 |
3 | 1 | 4:4:4 | 1 | 1 |
在单色采样中,只有一个样本阵列,所述样本阵列通常被认为是亮度阵列。
在4:2:0采样中,两个色度阵列中的每个色度阵列的高度和宽度为亮度阵列的高度和宽度的一半。
在4:2:2采样中,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同。
在4:4:4采样中,根据separate_colour_plane_flag的值,以下情况适用:
–如果separate_colour_plane_flag等于0,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同。
–否则(separate_colour_plane_flag等于1),三个颜色平面分别作为单色采样图像进行处理。
在一些实现方式中,可以根据如下表中示例性指定的色度采样格式决定是否存在chroma_qp_mapping_flag和/或色度Qp映射信息(cqp_mapping_data()),其中,chroma_format_idc等于3,表示色度采样格式为4:2:0:
另一示例为:
关于这一点,应当记住,如果图像是黑白图像,该图像可以仅包括亮度样本阵列。相应地,图像可以为例如黑白格式的亮度样本阵列或4:2:0、4:2:2和4:4:4彩色格式的亮度样本阵列和两个对应的色度样本阵列。
指示自适应参数集中映射函数信息所对应的语法表的示例如下:
其中,CQP_APS为色度QP映射表信息的标识。
合适的映射函数可能取决于对颜色分量进行压缩时的编解码效率以及序列的信号特征。这对于HDR内容可能更为重要,因为颜色信息对于此类内容非常重要。此外,Cb分量和Cr分量相应地可以具有不同的特征和不同的最优映射函数。为了更好地匹配内容类型和特征,一种可能的有益方式是使Cb分量和Cr分量具有不同的映射函数。为了提供这种能力,在一些有利的实施方式中,在码流中包括用于获得Cb分量和Cr分量两者的映射函数的信息。
在另一种有利的实现方式中,可以灵活地在码流包括指示符,其中,所述指示符用于表示是否为Cb分量和Cr分量均指示映射函数。如果指示符为正(TRUE),则解码器从对应于Cb分量和Cr分量的码流中获得两个映射函数,并在重建过程中使用两个映射函数。否则,使用单个映射函数对Cb分量和Cr分量进行重建。
0
图11示出了作为qPi的函数的VVC色度Qp映射表。从图中可以看出,亮度-色度映射函数是单调递增(非递减)函数,被划分为包括两类区域。A类区域对应的函数为非递增(或flat)函数,即f(x)–f(x–1)=0。B类区域对应的函数为递增函数,即f(x)–f(x–1)=1。
在指示方法中,我们提议使用微分表示法在码流中指示A类区域(平坦区域)的点(例如,cqp_delta_fpi=A[i]–A[i–1])。根据所提议的方法,解码器使用集合A的点的信息构建映射函数。对于允许Qp范围内的其余点,则假设映射函数随着步骤1单调递增。例如,为了重现当前的VVC映射函数,需要指示以下点:30、35、37、39、41和43。
在SPS中新增语法元素chroma_qp_mapping_flag。chroma_qp_mapping_flag的值等于0时,使用默认色度Qp映射表。chroma_qp_mapping_flag的值等于1时,指示色度Qp映射表。
序列参数集语法的示例
阐明以下语义以根据指示的参数来推导色度Qp映射表:
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射表,且该色度Qp映射表覆盖表8 15“作为qPi的函数的QpC规格”,其中,qPi用于推导QpC。chroma_qp_mapping_flag等于0,表示使用表8 15“作为qPi的函数的QpC规格”中指定的默认色度Qp映射表来推导QpC。当chroma_qp_mapping_flag不存在时,推断chroma_qp_mapping_flag等于0。
cqp_flat_points_minus1+1表示映射函数为非递增函数时对应的点的数量。
cqp_fp0表示映射函数为非递增函数时所对应的点构成的集合的第一个元素。
cqp_delta_fp_minus1[i]+1表示映射函数为非递增函数时所对应的点构成的集合的第i个元素与第(i–1)个元素之间的增量值。
变量cQpFlatSize推导如下:
cQpFlatSize=cqp_flat_points_minus1+1
变量cQpFlat[]推导如下:
色度QP映射表cqpMappingTable[]推导如下:
本方案的第二个方面,我们评估了一种经调整的映射函数,其在点35、39、43处包括非递增区域。经调整的映射函数如图12所示。
使用经调整的色度Qp映射函数,获得以下结果,其中,该经调整的色度Qp映射函数在点35、39和43处包括平坦区域。使用测试配置文件根据所提议的指示机制对映射表进行调整。在本实验中,我们仅保持全帧内(all intra,AI)配置下的色度QP偏移等于1。对于随机接入(random access,RA)、低时延B(low delay B,LDB)和低时延P(low delay P,LDP)配置,色度QP偏移设置为0。
表A基于VTM5.0的经调整映射表的编码性能
需要说明的是,VTM5.0用作锚点引导一些序列的RD曲线相交。这可能使BD-rate值不相关。为了获得正确的值,我们通过对比VTM5.0的性能与使用HM中经调整的映射表进行测试后的性能,来估计VTM5.0的性能。下表B中左侧部分示出了VTM5.0中BD-rate差值,中间部分示出了HM16.20经调整的表的编码性能,右侧部分示出了用于进行比较的基于HM的VTM5.0的编码性能。
表B以HM为锚点的VTM5.0中经调整映射表的编码性能差值
进一步地,图13示出了本发明提供的一种用于获得色度量化参数的方法。图13示出了基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法。该方法由解码器执行。图13的方法包括:步骤1601:接收码流。步骤1603:解析码流,以获得亮度QP和色度QP映射表的信息,其中,所述色度QP映射表关联QP索引(QP index,QPi)与色度QP(QPc)。步骤1605:至少部分地根据亮度QP获得所述QPi。步骤1607:根据获得的信息获得所述色度QP映射表。步骤1609:根据获得的色度QP映射表和获得的QPi获得QPc。步骤1611:根据获得的QPc获得色度量化参数。
进一步地,图14示出了本发明提供的一种解码器30。图13示出了一种基于亮度分量的亮度量化参数(quantization parameter,QPminance QP)获得色度分量的色度QP的解码器30。图13的解码器包括:接收单元3001,用于接收码流;解析单元3003,用于解析码流,以获得亮度QP和色度QP映射表的信息,其中,色度QP映射表关联QP索引(QP index,QPi)与色度QP(QPc);第一获得单元3005,用于至少部分地根据亮度QP获得所述QPi;第二获得单元3007,用于根据获得的信息获得所述色度QP映射表;第三获得单元3009,用于根据获得的色度QP映射表和获得的QPi获得QPc;第四获得单元3011,用于根据获得的QPc获得色度量化参数。
应理解的是,第一获得单元3005、第二获得单元3007、第三获得单元3009和第四获得单元3011被示出为单独的单元。然而,这些单元中的两个或两个以上或全部单元可以分别由一个或多个公共获得单元高效实现。
数学运算符
本申请中使用的数学运算符与C编程语言中使用的数学运算符类似。但是,这里准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如幂运算和实值除法运算。编号和计数规范通常从零开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,等等。
算术运算符
算术运算符定义如下:
+加法
–减法(用作双参数运算符)或者非运算(用作一元前缀运算符)。
*乘法,包括矩阵乘法。
xy幂次方,表示了x的y次幂。在其它上下文中,该表示形式也可以用作上标,而不应解释为是幂次方运算。
/向零方向对结果进行截断的整数除法。例如,7/4和–7/–4被截断成1,–7/4和7/–4被截断成–1。
÷用来表示数学等式中的除法运算,但没有进行截断或者四舍五入操作。
x%y取模运算,x除y的余数,这里x和y都必须是整数,并且x≥0和y>0。
逻辑运算符
逻辑运算符定义如下:
x&&y x和y的布尔逻辑“与”运算
x||y x和y的布尔逻辑“或”运算
!布尔逻辑“非”运算
x?y:z如果x为TRUE或者不等于0,那么返回y的值,否则,返回z的值。
关系运算符
关系运算符定义如下:
>大于
>=大于或等于
<小于
<=小于或等于
==等于
!=不等于
当关系运算符用于一个已赋值为“na”(不适用)的语法元素或变量时,则将值“na”视为该语法元素或变量的唯一值。值“na”被视为不等于任何其它值。
按位运算符
按位运算符定义如下:
&按位“与”运算。当对整数参数进行运算时,运算的是整数值的二进制补码表示。当对二进制参数进行运算时,如果该二进制参数包含的位数比另一个参数的少,则通过添加更多等于0的有效位来扩展该较短的参数。
|按位“或”运算。当对整数参数进行运算时,运算的是整数值的二进制补码表示。当对二进制参数进行运算时,如果该二进制参数包含的位数比另一个参数的少,则通过添加更多等于0的有效位来扩展该较短的参数。
^按位“异或”运算。当对整数参数进行运算时,运算的是整数值的二进制补码表示。当对二进制参数进行运算时,如果该二进制参数包含的位数比另一个参数的少,则通过添加更多等于0的有效位来扩展该较短的参数。
x>>y x整数的二进制补码表示向右算术移动y个位元。仅当y为非负整数时,才定义该函数。右移操作的结果是移进最高有效位(most significant bit,MSB)的位数等于移位操作之前的x的MSB的值。
x<<y x整数的二进制补码表示向左算术移动y个位元。仅当y为非负整数时,才定义该函数。左移操作的结果是移进最低有效位(least significant bit,LSB)的位数等于0。
赋值运算符
算术运算符定义如下:
=赋值运算符
++增,即,x++等于x=x+1;当在阵列索引中使用时,等于增运算之前变量的值。
––减,即x––相当于x=x–1;当在阵列索引中使用时,等于减运算之前变量的值。
+=增加指定的量,例如:x+=3相当于x=x+3,x+=(–3)相当于x=x+(–3)。
–=减少指定的量,例如:x–=3相当于x=x–3,x–=(–3)相当于x=x–(–3)。
范围表示法
以下符号用于说明值的范围:
x=y..z x取y到z的范围内的整数值(包含首尾数字),这里x,y和z都是整数,且z大于y。
数学函数
数学函数定义如下:
Asin(x)三角反正弦函数,对参数x进行运算,x在–1.0至1.0的范围内(包含首尾数字),输出值在–π÷2至π÷2的范围内(包含首尾数字),单位为弧度。Atan(x)三角反正切函数,对参数x进行运算,输出值的范围为–π÷2到π÷2(包括首尾数字),单位为弧度。
Ceil(x)表示大于或等于x的最小整数值。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)–1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)–1,x)
Cos(x)三角余弦函数,对参数x进行运算,单位为弧度。
Floor(x)表示小于或等于x的最大整数值。
Ln(x)返回自然对数中x的值(以e为底的对数,其中,e为自然对数中的底数常数2.718281828……)。
Log2(x)返回以2为底的对数中x的值。
Log10(x)返回以10为底的对数中x的值。
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Sin(x)三角正弦函数,对参数x进行运算,单位为弧度。
Swap(x,y)=(y,x)
Tan(x)三角正切函数,对参数x进行运算,单位为弧度。
运算优先级顺序
当没有使用括号来显式的表示优先顺序时,则遵循如下规则:
–高优先级的运算在低优先级的运算之前进行。
–相同优先级的运算从左到右依次进行。
下表从最高到最低的顺序说明运算的优先级,在表中的位置越高,优先级也越高。
如果在C编程语言中也使用这些运算符,则本文中采用的优先级顺序与C编程语言中采用的优先级顺序相同。
表:运算优先级从最高(表格顶部)到最低(表格底部)进行排序
运算(操作数x、y、z) |
"”++“,"x“-“ |
“!x”、“–x”(用作一元前缀运算符) |
x“ |
"x”y“,"x”y“,"x”y“,"”","“%y"” |
"“+y"”"“-–y"”(用作双参数运算符),"“"” |
"“<<y"”"“>>y"” |
"“<y"”"“<=y"”"“>y"”"“>=y"” |
"“==y"”"“!=y"” |
"“&y"” |
"“|y"” |
"“&&y"” |
"“||y"” |
"“?y:z"” |
"“..y"” |
"“=y"”"“+=y"”"“-=y"” |
逻辑运算的文字描述
文本中,逻辑运算中的语句以数学形式描述如下:
可以通过如下方式进行描述:
……如下/……以下为准:
–如果条件0,则语句0
–否则,如果条件1,则语句1
-……
–否则(剩余条件的提示性说明),则语句n
每个“如果……”否则,如果……否则,……“如果……”后面紧跟着“……如下”或“……以下为准”用来介绍文本中的语句。“最后一个条件‘如果……’”,否则,如果……否则,……总有一个“否则,……”。中间有“如果……”否则,如果……否则,“……如下”或“……以下为准”之后用“否则”结尾来识别语句。
文本中,逻辑运算中的语句以数学形式描述如下:
可以通过如下方式进行描述:
……如下/……以下为准:
–如果以下所有条件都为真(true),则语句0:
–条件0a
–条件0b
–否则,如果以下一个或多个条件为真,则语句1:
–条件1a
–条件1b
-……
–否则,语句n
文本中,逻辑运算中的语句以数学形式描述如下:
可以通过如下方式进行描述:
如果条件0,则语句0
如果条件1,则语句1
尽管本发明实施例主要根据视频译码进行了描述,但需要说明的是,译码系统10、编码器20和解码器30(相应地,系统10)的实施例以及本文描述的其它实施例也可以用于静止图像处理或译码,即对视频译码中独立于任何先前或连续图像的单个图像进行处理或译码。一般情况下,如果图像处理和译码仅限于单个图像17,帧间预测单元244(编码器)和帧间预测单元344(解码器)可能不可用。视频编码器20和视频解码器30的所有其它功能(也称为工具或技术)同样可以用于静止图像处理,例如残差计算204/304、变换206、量化208、反量化210/310、(逆)变换212/312、分割262/362、帧内预测254/354和/或环路滤波220/320、熵编码270和熵解码304。
编码器20和解码器30等的实施例以及本文中结合编码器20和解码器30等描述的功能可以通过硬件、软件、固件或其任意组合实现。如果通过软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质中或通过通信介质发送,且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质(例如数据存储介质),或者包括任何根据通信协议等有利于将计算机程序从一个地方传递到另一个地方的通信介质。通过这种方式,计算机可读介质一般可以对应于(1)非瞬时性有形计算机可读存储介质或(2)信号或载波等通信介质。数据存储介质可以是通过一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实施本发明所描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这类计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可用于存储指令或数据结构形式的所需程序代码并且可由计算机访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴缆线、光纤缆线、双绞线、数字用户线(digitalsubscriber line,DSL)或红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,则同轴缆线、光纤缆线、双绞线、DSL或红外线、无线电和微波等无线技术包含在介质的定义中。但是,应理解,计算机可读存储介质和数据存储介质并不包括连接、载波、信号或其它瞬时性介质,而是涉及非瞬时性有形存储介质。本文所使用的磁盘和光盘包含压缩光盘(compact disc,CD)、激光光盘、光学光盘、数字多功能光盘(digital versatiledisc,DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘则通过激光以光学方式再现数据。以上各项的组合也应包括在计算机可读介质的范围内。
指令可以通过一或多个处理器来执行,例如,一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个通用微处理器、一个或多个专用集成电路(application specific integrated circuit,ASIC)、一个或多个现场可编程逻辑阵列(field programmable logic array,FPGA)或其它同等集成或离散逻辑电路等。因此,本文所使用的术语“处理器”可以指上述结构中的任一种或适用于实施本文所描述的技术的任何其它结构。另外,在一些方面中,本文所描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合的编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本发明技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明中描述了各种组件、模块或单元,以强调用于执行所公开的技术的设备的功能方面,但未必需要通过不同的硬件单元实现。相反,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。
提供了一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法,所述方法由解码器执行,包括:
解析接收到的码流,以获得亮度QP和映射函数(f)的信息,其中,映射函数关联QP索引(QP index,QPi)与色度QP(QPc);
至少部分地根据所述亮度QP获得所述QPi;
根据获得的信息获得所述映射函数;
根据获得的映射函数和获得的QPi,获取QPc。
在码流中包含色度QP映射表信息,可以调整输入视频信号的特定属性,例如SDR或HDR属性,或者调整亮度和色度通道上的不同强度和分布,从而提高压缩效率,并提高重建视频的色度分量与亮度分量之间的平衡。
根据上述方法,所述映射函数关联集合X中的每个元素x或集合X的任意子集与集合Y中的一个元素y,其中,集合X与解码器支持的允许QPi范围内的QPi(例如,0至63或支持范围内的其它部分如20至50)对应,集合Y与解码器支持的允许QPc范围内的QPc(例如,0至63或支持范围内的其它部分如0至59或18至46)对应。
例如,QPi范围和QPc范围可以相同,也可以不同。
根据上述方法,所述映射函数是单调递增(非递减)函数。
对映射函数施加该约束,可以避免配置“怪诞的”映射函数,例如,当色度QP随着亮度QP的增加而减小时产生意外的、不理想的行为,即可以避免色度质量随着亮度质量的下低而提高的情况。单调递增的约束可以同步提高亮度质量和色度质量。此外,还有一个优点是:该约束不需要描述函数的负向增加,从而节省了用于指示映射函数信息的比特。
根据上述方法,所述集合X包括子集A,子集A对应的映射函数f为非递增函数,例如:
对于子集A的任意x,f(x)–f(x–1)=0。
例如,A={30、39、43},f(30)–f(29)=0,f(39)–f(38)=0,或者f(43)–f(42)=0;或者
A={35、39、43},f(35)–f(34)=0,f(39)–f(38)=0,或者f(43)–f(42)=0。
根据上述方法,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:
对于子集B的任意x,f(x)–f(x–1)=c,其中,A+B=X,c为不小于1的自然数。
例如,c=1或2,或者c可以是x的函数,且c(x)>=1。
根据以上任一项所述的方法,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:
对于子集B的任意x,f(x)–f(x–1)=c,其中,c为不小于1的自然数。
例如,c=1或2,或者c可以是x的函数,且c(x)>=1。
本发明还公开了以下四十一方面,其中,第一方面至第四十一方面列举如下:
第一方面,提供了一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法。所述方法由解码器执行,包括:解析接收到的码流,以获得亮度QP和映射函数(f)的信息,其中,映射函数关联QP索引(QP index,QPi)与色度QP(QPc);至少部分地根据亮度QP获得所述QPi;根据获得的信息获得所述映射函数;根据获得的映射函数和获得的QPi获得QPc。
根据第一方面所述的方法,第二方面,所述映射函数关联集合X中的每个元素x或集合X的任意子集与集合Y中的一个元素y,其中,集合X与解码器支持的允许QPi范围内的QPi对应,集合Y与解码器支持的允许QPc范围内的QPc对应。
根据第二方面所述的方法,第三方面,所述映射函数为单调递增(非递减)函数。
根据第二方面或第三方面所述的方法,第四方面,所述集合X包括子集A,子集A对应的映射函数f为非递增函数,例如:
对于子集A的任意x,f(x)–f(x–1)=0。
根据第四方面所述的方法,第五方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,A+B=X,c为不小于1的自然数。
根据第二方面至第四方面中任一项所述的方法,第六方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,c为不小于1的自然数。
根据第五方面或第六方面所述的方法,第七方面,所述子集B对应的映射函数f定义如下:对于子集B的任意x,f(x)–f(x–1)=1。
根据第一方面至第七方面中任一项所述的方法,第八方面,所述映射函数的信息包括所述子集A的大小信息(sizeA)和所述子集A的元素ai的信息。
这有助于通过仅指示子集A的点来节省比特,其中,函数行为与正常的预定义行为(子集B)不同。
根据第一方面至第八方面中任一项所述的方法,第九方面,所述映射函数的信息包括所述子集A的大小。
根据第一方面至第九方面中任一项所述的方法,第十方面,所述映射函数的信息包括所述子集A的元素ai的直接值。
根据第八方面至第十方面中任一项所述的方法,第十一方面,所述映射函数的信息包括当前元素ai的值与前一个元素ai–1的值之间的差值(delta_ai),ai的值通过以下公式获得:对于任意i>0,ai=ai–1+delta_ai。
通过指示差值而不是指示直接值,可以进一步节省比特。
根据第八方面至第十方面中任一项所述的方法,第十二方面,所述映射函数的信息包括第一值a0与starting_point_value之间的差值(delta_a0),子集A的第一值a0根据所述差值(delta_a0)通过以下公式获得:a0=starting_point_value+delta_a0,其中,starting_point_value在所述码流中进行指示或者是预定义的值,例如0、21、30或maxQPi>>1,其中,maxQPi为所述解码器支持的最大QPi值,例如63。
根据第一方面至第十二方面中任一项所述的方法,第十三方面,使用以下任意一种码在所述码流中对所述映射函数的信息进行指示:二进制码、固定长度、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码。
根据第一方面至第十三方面中任一项所述的方法,第十四方面,所述映射函数通过为子集A和B定义的函数行为获得,即,对于子集B中的任意输入参数x,函数递增,例如增加1,即f(x)–f(x–1)=1,对于子集A中的任意输入参数x,函数是平坦函数,即f(x)–f(x–1)=0。例如,假设所述映射函数对应x=0的第一值为0,则所述映射函数可以通过以下伪代码迭代实现:
根据第四方面至第十四方面中任一项所述的方法,第十五方面,所述映射函数的信息包括子集B的值b的信息,并且子集A通过A=X–B获得。
这样,可以通过最少的指示开销,即仅指示函数行为不同于预定义行为时所对应的点来获得支持的QPi值所组成的整个集合X的函数行为。
根据第四方面至第十四方面中任一项所述的方法,第十六方面,所述子集B包括子子集Bk,所述子子集Bk包括所述映射函数具有相同增量ck时所对应的元素x:如果x∈Bk,则f(x)–f(x–1)=ck,其中,ck为自然数。例如,ck等于0、1、2、3、4……。换句话说,可以根据在子子集Bk的点x处的映射函数增量的数量将子集B划分为不同的子子集。
这样,可以通过增加映射函数可能具有不同增量(ck)速度时所对应的点来提高定义映射函数的灵活性。
根据第十六方面所述的方法,第十七方面,所述映射函数的信息包括至少一个子子集Bk的大小信息(size Bk)和所述至少一个子子集Bk的元素bi的信息。
根据第十六方面或第十七方面所述的方法,第十八方面,所述映射函数的信息包括所述映射函数在子子集Bk的点的增量的信息。
根据第十六方面或第十七方面所述的方法,第十九方面,所述映射函数的信息包括子子集Bk的数量的信息。
根据第十六方面至第十九方面中任一项所述的方法,第二十方面,所述映射函数的信息的至少一部分(例如,子子集Bk的信息)通过以下语法获得:
根据第十六方面至第十九方面中任一项所述的方法,第二十一方面,所述映射函数的信息的至少一部分(例如,子子集Bk的信息)通过以下语法获得:
根据第二方面或第三方面所述的方法,第二十二方面,其特征在于,所述映射函数为分段函数,所述映射函数的信息包括所述分段函数的断点或变化点或枢轴点。
本方面中,可以通过有限的指示开销仅指示函数改变其行为(例如,线的斜率)时所对应的点来描述函数行为,并且将函数描述为变化点或枢轴点之间的分段函数。
根据第二十二方面所述的方法,第二十三方面,断点、变化点或枢轴点的数量及其相应的x、y坐标直接在码流中指示,或通过当前点的坐标与前一个点的坐标之间的差值在码流中进行指示。
与指示枢轴点坐标的直接值这一方式相比,指示差值,可以进一步节省比特。
根据第二十二方面或第二十三方面所述的方法,第二十四方面,所述映射函数是基于以下方程的分段函数:线性方程,指数方程,对数方程,或上述方程的组合。
通过使用预定义方程形式(例如,线性方程)的分段函数,可以获得枢轴点之间的函数值,而无需显式指示该函数,从而有助于减少用于描述映射函数的指示开销。
根据第二十四方面所述的方法,第二十五方面,所述分段函数的参数基于枢轴点通过以下线程方程获得,例如:slope=(Ey–Dy)/(Ex–Dx),b=Dy+slope*Dx。
其中,D(94)和E(95)是坐标为Dx、Dy和Ex、Ey的变化点的示例,slope和b为所述线性方程的参数,例如,y=slope*x+b。
为了实现映射函数单调增加,slope应为非负数,这可以通过限制增量(Ey–Dy)和(Ex–Dx)具有相同的符号来实现,特别是限制为非负数,例如大于或等于零。为了实现上述目的,可以使用无符号码,例如,无符号型整数0阶Exp-Golomb码来指示该差值。一种额外的技术优势是:通过单调递增这一限制条件,可以使用无符号码来指示所述增量,从而可以节省用于增量符号的比特。
根据第二方面或第三方面所述的方法,第二十六方面,所述集合X包括子集C;所述映射函数的信息包括所述子集C的起始索引(x_start)和终止索引(x_end)的信息。
根据第二十五方面或第二十六方面所述的方法,第二十七方面,所述映射函数的信息包括所述子集C的任意x对应的映射函数f(x)–f(x–1)的增量值的信息。
根据第二十七方面所述的方法,第二十八方面,所述增量值通过以下语法获得:
其中,sps_qpc_cb_delta[i]表示增量值。
根据第二十七方面所述的方法,第二十九方面,所述增量值在0至1的范围内。
根据第二十九方面所述的方法,第三十方面,所述增量值通过以下语法获得:
sps_qpc_x_start | u(7) |
sps_qpc_x_end | u(7) |
for(i=sps_qpc_x_start;i<=sps_qpc_x_end;i++) | |
sps_qpc_cb_delta[i] | ue(1) |
其中,sps_qpc_cb_delta[i]表示增量值。
根据第二十六方面至第三十方面中任一项所述的方法,第三十一方面,使用以下任意一种码对所述映射函数的信息进行指示:二进制码、固定长度、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码。
根据第一方面至第三十一方面中任一项所述的方法,第三十二方面,所述解码器还包括预定义的映射函数,所述码流包括指示符,其中,所述指示符用于表示使用所述预定义的映射函数或使用在所述码流中指示的映射函数。
本方面中,可以仅在映射函数的信息是有利的情况下,即当亮度通道和色度通道的特征与普通情况(如用于HDR信号)显著不同时,指示映射函数的信息,并且使用适用于普通情况的预定义映射函数。这样,在大多数普通情况下,可以节省指示开销。
根据第一方面至第三十二方面所述的方法,第三十三方面,为Cb分量和Cr分量(色度分量)都指示所述映射函数的信息。
根据第一方面至第三十三方面中任一项所述的方法,第三十四方面,所述映射函数的信息包括指示符,所述指示符用于表示为Cb分量和Cr分量单独指示或联合指示所述映射函数。
本方面中,可以针对不同色度通道(例如,Cb通道和Cr通道)具有不同信号特征的情况进一步提高量化过程控制的灵活性,从而可以进一步提高压缩效率。
根据第一方面至第三十四方面中任一项所述的方法,第三十五方面,所述映射函数的信息在以下级别进行指示:序列参数集的序列级别,或图像参数集的图像级别,或分块组参数集的分块组级别,或在自适应参数集中,或在补充增强信息(supplementalenhancement information,SEI)消息中。
根据第一方面至第三十五方面中任一项所述的方法,第三十六方面,所述映射函数如下表所示:
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
QpC | =qPi | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据第一方面至第三十七方面中任一项所述的方法,第三十七方面,所述映射函数如下表所示:
qPi | <35 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据第一方面至第三十六方面中任一项所述的方法,第三十八方面,在所述码流中直接或间接对所述映射函数的信息进行指示。
第三十九方面,提供了一种解码器(30),包括处理电路,所述处理电路用于执行根据第一方面至第三十八方面中任一项所述的方法。
第四十方面,提供了一种计算机程序产品,其包括程序代码,所述程序代码用于执行第一方面至第三十八方面中任一项所述的方法。
第四十一方面,提供了一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行上述第一方面至第三十八方面中任一项所述的方法。
此外,本发明还公开了以下四十一方面,其中,第一方面至第二十五方面列举如下:
第一方面,提供了一种基于亮度分量的量化参数(quantization parameter,QP)获得色度分量的QP的方法。所述方法由解码器执行,包括:
获得亮度QP;
通过解析接收到的码流,以获得用于获得映射函数(f)的信息,其中,所述映射函数关联亮度QP与色度QP;
根据获得的信息获得所述映射函数;
根据所述映射函数获得色度QP。
根据第一方面所述的方法,第二方面,所述映射函数关联集合X中的每个元素x或集合X的任意子集与集合Y中的一个元素y,其中,集合X与解码器支持的允许亮度QP范围内的亮度QP(例如,0至63或支持范围内的其它部分如20至50)对应,集合Y与解码器支持的允许色度QP范围内的色度QP(例如,0至63或支持范围内的其它部分如0至59或18至46)对应。例如,亮度QP范围和色度QP范围可以相同,也可以不同。
根据第二方面所述的方法,第三方面,所述映射函数为单调递增(非递减)函数。
根据第二方面所述的方法,第三方面,所述集合X包括子集A,子集A对应的映射函数f为非递增函数,例如:对于子集A(例如,A={30、39、43})的任意x,f(x)–f(x–1)=0。例如,f(30)–f(29)=0,f(39)–f(38)=0,或f(43)–f(42)=0。
根据第二方面所述的方法,第五方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,c是x的函数,且c(x)>=1。例如,子集B可以等于X–A,换句话说,子集A和子集B是X的两个不重叠的子集,例如,A+B=X。
根据第五方面所述的方法,第六方面,子集B对应的映射函数f定义如下:对于子集B的任意x,f(x)–f(x–1)=1。
根据第一方面至第六方面中任一项所述的方法,第七方面,在所述码流中指示的用于获得映射函数的信息包括用于获得所述子集A的大小(sizeA)和所述子集A的元素ai的信息。
根据第七方面所述的方法,第八方面,在所述码流中指示的用于获得映射函数的信息包括所述子集A的大小。
根据第七方面所述的方法,第九方面,在所述码流中指示的用于获得映射函数的信息包括元素ai的直接值。
根据第七方面所述的方法,第十方面,在所述码流中指示的用于获得映射函数的信息包括当前元素ai的值与前一个元素ai–1的值之间的差值(delta_ai),ai的值通过以下公式获得:对于任意i>0,ai=ai–1+delta_ai。
根据第七方面所述的方法,第十一方面,子集A的第一值a0根据a0与starting_point_value之间的差值(delta_a0)获得,所述差值(delta_a0)在所述码流中进行指示,所述第一值a0通过以下公式获得:a0=starting_point_value+delta_a0,其中,starting_point_value在所述码流中进行指示或者是预定义的值,例如0、21、30或maxQP>>1,其中,maxQP为所述解码器支持的最大QP值,例如63。
根据第七方面至第十一方面中任一项所述的方法,第十二方面,使用以下任意一种码对所述用于从所述码流中获得映射函数的信息进行指示:二进制码、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码。
根据第一方面至第十一方面中任一项所述的方法,第十三方面,所述映射函数通过为子集A和B定义的函数行为获得,即,对于子集B中的任意输入参数x,函数递增,例如增加1,即f(x)–f(x–1)=1,对于子集A中的任意输入参数x,函数是平坦函数,即f(x)–f(x–1)=0。例如,假设所述映射函数对应x=0的第一值为0,则所述映射函数可以通过以下伪代码迭代实现:
根据第四方面至第十二方面中任一项所述的方法,第十四方面,在所述码流中指示的用于获得映射函数的信息包括用于获得子集B的值b的信息,并且子集A通过A=X–B获得。
根据第二方面所述的方法,第十五方面,所述映射函数为分段函数,并且在所述码流中指示的用于获得映射函数的信息包括所述分段函数的断点(或变化点,或枢轴点)。
根据第十五方面所述的方法,第十六方面,断点(变化点、或枢轴点)的数量及其相应的x、y坐标直接在所述码流中指示,或通过当前点的坐标与前一个点的坐标之间的差值在所述码流中进行指示。
根据第十五方面或第十六方面所述的方法,第十七方面,所述映射函数是基于以下方程的分段函数:线性方程,指数方程,对数方程,或上述方程的组合。
根据第十七方面所述的方法,第十八方面,所述分段函数的参数基于枢轴点通过以下线性方程获得,例如,slope=(Ey–Dy)/(Ex–Dx),b=Dy+slope*Dx,其中,D(94)和E(95)是坐标为Dx、Dy和Ex、Ey的变化点的示例,slope和b为所述线性方程的参数,例如,y=slope*x+b。
为了实现映射函数单调增加,slope应为非负数,这可以通过限制增量(Ey–Dy)和(Ex–Dx)具有相同的符号来实现,特别是限制为非负数,例如大于或等于零。为了实现上述目的,可以使用无符号码,例如,无符号型整数0阶Exp-Golomb码来指示该差值。
根据第一方面至第十八方面中任一项所述的方法,第十九方面,所述解码器还包括预定义的映射函数,所述码流包括指示符,其中,所述指示符用于表示使用所述预定义的映射函数或使用在所述码流中指示的映射函数。
根据第一方面至第十九方面所述的方法,第二十方面,为Cb分量和Cr分量(色度分量)都指示所述用于获得映射函数的信息。
根据第一方面至第二十方面中任一项所述的方法,第二十一方面,所述用于获得映射函数的信息包括指示符,其中,所述指示符用于表示为Cb分量和Cr分量单独指示或联合指示所述映射函数。
根据第一方面至第二十一方面中任一项所述的方法,第二十二方面,所述用于获得映射函数的信息在以下级别进行指示:序列参数集的序列级别,或图像参数集的图像级别,或分块组参数集的分块组级别,或在自适应参数集中。
第二十三方面,提供了一种解码器(30),包括处理电路,所述处理电路用于执行根据第一方面至第二十二方面中任一项所述的方法。
第二十四方面,提供了一种计算机程序产品,其包括程序代码,所述程序代码用于执行第一方面至第二十二方面中任一项所述的方法。
第二十五方面,提供了一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行第一方面至第二十二方面中任一项所述的方法。
此外,本发明还公开了以下四十一方面,其中,第一方面至第三十二方面列举如下:
第一方面,提供了一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法。所述方法由解码器执行,包括:解析接收到的码流,以获得亮度QP和映射函数(f)的信息,其中,映射函数关联QP索引(QP index,QPi)与色度QP(QPc);至少部分地根据亮度QP获得所述QPi;根据获得的信息获得所述映射函数;根据获得的映射函数和获得的QPi获得QPc。
根据第一方面所述的方法,第二方面,所述映射函数关联集合X中的每个元素x或集合X的任意子集与集合Y中的一个元素y,其中,集合X与解码器支持的允许QPi范围内的QPi对应,集合Y与解码器支持的允许QPc范围内的QPc对应。
根据第二方面所述的方法,第三方面,所述映射函数为单调递增(非递减)函数。
根据第二方面所述的方法,第四方面,所述集合X包括子集A,子集A对应的映射函数f为非递增函数,例如:对于集合A的任意x,f(x)–f(x–1)=0。
根据第四方面所述的方法,第五方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,A+B=X,c为不小于1的自然数。
根据第二方面至第四方面中任一项所述的方法,第六方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,c为不小于1的自然数。
根据第五方面或第六方面所述的方法,第七方面,所述子集B对应的映射函数f定义如下:对于子集B的任意x,f(x)–f(x–1)=1。
根据第一方面至第七方面中任一项所述的方法,第八方面,在所述码流中指示的用于获得映射函数的信息包括用于获得所述子集A的大小(sizeA)和所述子集A的元素ai的信息。
根据第八方面所述的方法,第九方面,在所述码流中指示的用于获得映射函数的信息包括所述子集A的大小。
根据第八方面所述的方法,第十方面,在所述码流中指示的用于获得映射函数的信息包括元素ai的直接值。
根据第八方面所述的方法,第十一方面,在所述码流中指示的用于获得映射函数的信息包括当前元素ai的值与前一个元素ai–1的值之间的差值(delta_ai),ai的值通过以下公式获得:对于任意i>0,ai=ai–1+delta_ai。
根据第八方面所述的方法,第十二方面,子集A的第一值a0根据a0与starting_point_value之间的差值(delta_a0)获得,所述差值(delta_a0)在所述码流中进行指示,所述第一值a0通过以下公式获得:a0=starting_point_value+delta_a0,其中,starting_point_value在所述码流中进行指示或者是预定义的值,例如0、21、30或maxQPi>>1,其中,maxQPi为所述解码器支持的最大QPi值,例如63。
根据第八方面至第十二方面中任一项所述的方法,第十三方面,使用以下任意一种码对所述用于从所述码流中获得映射函数的信息进行指示:二进制码、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码。
根据第一方面至第十一方面中任一项所述的方法,第十四方面,所述映射函数通过为子集A和B定义的函数行为获得,即,对于子集B中的任意输入参数x,函数递增,例如增加1,即f(x)–f(x–1)=1,对于子集A中的任意输入参数x,函数是平坦函数,即f(x)–f(x–1)=0。例如,假设所述映射函数对应x=0的第一值为0,则所述映射函数可以通过以下伪代码迭代实现:
根据第四方面至第十三方面中任一项所述的方法,第十五方面,在所述码流中指示的用于获得映射函数的信息包括用于获得子集B的值b的信息,并且子集A通过A=X–B获得。
根据第四方面至第十三方面中任一项所述的方法,第十六方面,所述子集B包括子子集Bk,所述子子集Bk包括所述映射函数具有相同增量ck时所对应的元素x:如果x∈Bk,则f(x)–f(x–1)=ck,其中,ck为自然数。例如,ck等于0、1、2、3、4……。换句话说,可以根据在子子集Bk的点x处的映射函数增量的数量将子集B划分为不同的子子集。
根据第十六方面所述的方法,第十七方面,在所述码流中指示的用于获得映射函数的信息包括至少一个子子集Bk的大小信息(size Bk)和所述至少一个子子集Bk的元素bi的信息。
根据第十六方面或第十七方面所述的方法,第十八方面,在所述码流中指示的用于获得映射函数的信息包括用于获得所述映射函数在子子集Bk的点的增量的信息。
根据第十六方面或第十七方面所述的方法,第十九方面,在所述码流中指示的用于获得映射函数的信息包括用于获得子子集Bk的数量的信息。
根据第二方面所述的方法,第二十方面,所述映射函数为分段函数,并且在所述码流中指示的用于获得映射函数的信息包括所述分段函数的断点(或变化点,或枢轴点)。
根据第二十方面所述的方法,第二十一方面,断点(变化点、或枢轴点)的数量及其相应的x、y坐标直接在码流中指示,或通过当前点的坐标与前一个点的坐标之间的差值在码流中进行指示。
根据第二十方面或第二十一方面所述的方法,第二十二方面,所述映射函数是基于以下方程的分段函数:线性方程,指数方程,对数方程,或上述方程的组合。
根据第二十二方面所述的方法,第二十三方面,所述分段函数的参数基于枢轴点通过以下线性方程获得,例如,slope=(Ey–Dy)/(Ex–Dx),b=Dy+slope*Dx,其中,D(94)和E(95)是坐标为Dx、Dy和Ex、Ey的变化点的示例,slope和b为所述线性方程的参数,例如,y=slope*x+b。
根据第一方面至第二十三方面中任一项所述的方法,第二十四方面,所述解码器还包括预定义的映射函数,所述码流包括指示符,其中,所述指示符用于表示使用所述预定义的映射函数或使用在所述码流中指示的映射函数。
根据第一方面至第二十四方面中任一项所述的方法,第二十五方面,为Cb分量和Cr分量(色度分量)都指示所述用于获得映射函数的信息。
根据第一方面至第二十五方面中任一项所述的方法,第二十六方面,所述用于获取映射函数的信息包括指示符,其中,所述指示符用于表示为Cb分量和Cr分量单独指示或联合指示所述映射函数。
根据第一方面至第二十六方面中任一项所述的方法,第二十七方面,所述用于获得映射函数的信息在以下级别进行指示:序列参数集的序列级别,或图像参数集的图像级别,或分块组参数集的分块组级别,或在自适应参数集中,或在补充增强信息(supplemental enhancement information,SEI)消息中。
根据第一方面至第二十七方面中任一项所述的方法,第二十八方面,所述映射函数如下表所示:
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
QpC | =qPi | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据第一方面至第二十七方面中任一项所述的方法,第二十九方面,所述映射函数如下表所示:
qPi | <35 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
第三十方面,提供了一种解码器(30),包括处理电路,所述处理电路用于执行根据第一方面至第二十九方面中任一项所述的方法。
第三十一方面,提供了一种计算机程序产品,其包括程序代码,所述程序代码用于执行第一方面至第二十九方面中任一项所述的方法。
根据所述解码器的第三十二方面,所述解码器包括:一个或多个处理器;非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行上述第一方面至第二十九方面中任一项所述的方法。
此外,本发明还公开了以下四十一方面,其中,第一方面至第四十一方面列举如下:
第一方面,提供了一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法。所述方法由解码器执行,包括:解析接收到的码流,以获得亮度QP和映射函数(f)的信息,其中,映射函数关联QP索引(QP index,QPi)与色度QP(QPc);至少部分地根据亮度QP获得所述QPi;根据获得的信息获得所述映射函数;根据获得的映射函数和获得的QPi获得QPc。
根据第一方面所述的方法,第二方面,所述映射函数关联集合X中的每个元素x或集合X的任意子集与集合Y中的一个元素y,其中,集合X与解码器支持的允许QPi范围内的QPi对应,集合Y与解码器支持的允许QPc范围内的QPc对应。
根据第二方面所述的方法,第三方面,所述映射函数为单调递增(非递减)函数。
根据第二方面或第三方面所述的方法,第四方面,所述集合X包括子集A,子集A对应的映射函数f为非递增函数,例如:对于集合A的任意x,f(x)–f(x–1)=0。
根据第四方面所述的方法,第五方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,A+B=X,c为不小于1的自然数。
根据第二方面至第四方面中任一项所述的方法,第六方面,所述集合X包括子集B,子集B对应的映射函数f为递增函数,即:对于子集B的任意x,f(x)–f(x–1)=c,其中,c为不小于1的自然数。
根据第五方面或第六方面所述的方法,第七方面,所述子集B对应的映射函数f定义如下:对于子集B的任意x,f(x)–f(x–1)=1。
根据第一方面至第七方面中任一项所述的方法,第八方面,所述映射函数的信息包括所述子集A的大小信息(sizeA)和所述子集A的元素ai的信息。
根据第一方面至第八方面中任一项所述的方法,第九方面,所述映射函数的信息包括所述子集A的大小。
根据第一方面至第九方面中任一项所述的方法,第十方面,所述映射函数的信息包括所述子集A的元素ai的直接值。
根据第八方面至第十方面中任一项所述的方法,第十一方面,所述映射函数的信息包括当前元素ai的值与前一个元素ai–1的值之间的差值(delta_ai),ai的值通过以下公式获得:
对于任意i>0,ai=ai–1+delta_ai。
根据第八方面至第十方面中任一项所述的方法,第十二方面,所述映射函数的信息包括第一值a0与starting_point_value之间的差值(delta_a0),其中,子集A的第一值a0基于所述差值(delta_a0)通过以下公式获得:
a0=starting_point_value+delta_a0,
其中,starting_point_value在所述码流中进行指示,或者是预定义的值,例如0、21、30或maxQPi>>1,其中,maxQPi是所述解码器支持的最大QPi值,例如63。
根据第一方面至第十二方面中任一项所述的方法,第十三方面,使用以下任意一种码在所述码流中对所述映射函数的信息进行指示:二进制码、固定长度、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码。
根据第一方面至第十三方面中任一项所述的方法,第十四方面,所述映射函数通过为子集A和B定义的函数行为获得,即,对于子集B中的任意输入参数x,函数递增,例如增加1,即f(x)–f(x–1)=1,对于子集A中的任意输入参数x,函数是平坦函数,即f(x)–f(x–1)=0。例如,假设所述映射函数对应x=0的第一值为0,则所述映射函数可以通过以下伪代码迭代实现:
根据第四方面至第十四方面中任一项所述的方法,第十五方面,所述映射函数的信息包括子集B的值b的信息,并且子集A通过A=X–B获得。
根据第四方面至第十四方面中任一项所述的方法,第十六方面,所述子集B包括子子集Bk,所述子子集Bk包括所述映射函数具有相同增量ck时所对应的元素x:如果x∈Bk,则f(x)–f(x–1)=ck,其中,ck为自然数。例如,ck等于0、1、2、3、4……。换句话说,可以根据在子子集Bk的点x处的映射函数增量的数量将子集B划分为不同的子子集。
根据第十六方面所述的方法,第十七方面,所述映射函数的信息包括至少一个子子集Bk的大小信息(size Bk)和所述至少一个子子集Bk的元素bi的信息。
根据第十六方面或第十七方面所述的方法,第十八方面,所述映射函数的信息包括所述映射函数在子子集Bk的点的增量的信息。
根据第十六方面或第十七方面所述的方法,第十九方面,所述映射函数的信息包括子子集Bk的数量的信息。
根据第十六方面至第十九方面中任一项所述的方法,第二十方面,所述映射函数的信息的至少一部分(例如,子子集Bk的信息)通过以下语法获得:
根据第十六方面至第十九方面中任一项所述的方法,第二十一方面,所述映射函数的信息的至少一部分(例如,子子集Bk的信息)通过以下语法获得:
根据第二方面或第三方面所述的方法,第二十二方面,其特征在于,所述映射函数为分段函数,所述映射函数的信息包括所述分段函数的断点或变化点或枢轴点。
根据第二方面或第三方面所述的方法,第二十二方面,断点、变化点或枢轴点的数量及其相应的x、y坐标直接在码流中指示,或通过当前点的坐标与前一个点的坐标之间的差值在码流中进行指示。
根据第二十二方面或第二十三方面所述的方法,第二十四方面,所述映射函数是基于以下方程的分段函数:线性方程,指数方程,对数方程,或上述方程的组合。
根据第二十四方面所述的方法,第二十五方面,所述分段函数的参数基于枢轴点通过以下线性方程获得,例如,slope=(Ey–Dy)/(Ex–Dx),b=Dy+slope*Dx,其中,D(94)和E(95)是坐标为Dx、Dy和Ex、Ey的变化点的示例,slope和b为所述线性方程的参数,例如,y=slope*x+b。
根据第二方面或第三方面所述的方法,第二十六方面,所述集合X包括子集C;所述映射函数的信息包括所述子集C的起始索引(x_start)和终止索引(x_end)的信息。
根据第二十五方面或第二十六方面所述的方法,第二十七方面,所述映射函数的信息包括所述子集C的任意x对应的映射函数f(x)–f(x–1)的增量值的信息。
根据第二十七方面所述的方法,第二十八方面,所述增量值通过以下语法获得:
其中,sps_qpc_cb_delta[i]表示增量值。
根据第二十七方面所述的方法,第二十九方面,所述增量值在0至1的范围内。
根据第二十九方面所述的方法,第三十方面,所述增量值通过以下语法获得:
其中,sps_qpc_cb_delta[i]表示增量值。
根据第二十六方面至第三十方面中任一项所述的方法,第三十一方面,使用以下任意一种码对所述映射函数的信息进行指示:二进制码、固定长度、一元码、截断一元码、截断二进制码、Golomb码或Exp-Golomb码。
根据第一方面至第三十一方面中任一项所述的方法,第三十二方面,所述解码器还包括预定义的映射函数,所述码流包括指示符,其中,所述指示符用于表示使用预定义的映射函数或使用在所述码流中指示的映射函数。
根据第一方面至第三十二方面中任一项所述的方法,第三十三方面,为Cb分量和Cr分量(色度分量)都指示所述映射函数的信息。
根据第一方面至第三十三方面中任一项所述的方法,第三十四方面,所述映射函数的信息包括指示符,所述指示符用于表示为Cb分量和Cr分量单独指示或联合指示所述映射函数。
根据第一方面至第三十四方面中任一项所述的方法,第三十五方面,所述映射函数的信息在以下级别进行指示:序列参数集的序列级别,或图像参数集的图像级别,或分块组参数集的分块组级别,或在自适应参数集中,或在补充增强信息(supplementalenhancement information,SEI)消息中。
根据第一方面至第三十五方面中任一项所述的方法,第三十六方面,所述映射函数如下表所示:
qPi | <30 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
QpC | =qPi | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据第一方面至第三十七方面中任一项所述的方法,第三十七方面,所述映射函数如下表所示:
qPi | <35 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | >43 |
Qp<sub>C</sub> | =qPi | 34 | 35 | 36 | 37 | 37 | 38 | 39 | 40 | 40 | =qPi–3 |
根据第一方面至第三十六方面中任一项所述的方法,第三十八方面,在所述码流中直接或间接对所述映射函数的信息进行指示。
第三十九方面,提供了一种解码器(30),包括处理电路,所述处理电路用于执行根据第一方面至第三十八方面中任一项所述的方法。
第四十方面,提供了一种计算机程序产品,其包括程序代码,所述程序代码用于执行第一方面至第三十八方面中任一项所述的方法。
第四十一方面,提供了一种解码器,包括:一个或多个处理器;非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行上述第一方面至第三十八方面中任一项所述的方法。
Claims (53)
1.一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的方法,其特征在于,所述方法由解码器执行,包括:
接收码流;
解析所述码流,以获得所述亮度QP和色度QP映射表的信息,其中,所述色度QP映射表关联QP索引(QP index,QPi)与色度QP(QPc);
至少部分地根据所述亮度QP获得所述QPi;
根据所述获得的信息获得所述色度QP映射表;
根据所述获得的色度QP映射表和所述获得的QPi获得QPc;
根据所述获得的QPc获得色度量化参数。
2.根据权利要求1所述的方法,其特征在于:
qPCb、qPCr和qPCbCr推导如下:
qPChroma=Clip3(-QpBdOffset,63,QpY);
qPCb=ChromaQpTable[0][qPChroma];
qPCr=ChromaQpTable[1][qPChroma];
qPCbCr=ChromaQpTable[2][qPChroma];
Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr推导如下:
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset;
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset;
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset_value+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset;
其中,ChromaQpTable为所述色度QP映射表;
QPi对应于qPChroma;
QPc对应于qPCb、qPCr和qPCbCr;
QpBdOffset为根据亮度和色度阵列的样本的位深通过以下公式计算获得的位深偏移:
QpBdOffset=6*bit_depth_minus8,
其中,bit_depth_minus8的范围为0至8(包括0和8);
pps_cb_qp_offset和pps_cr_qp_offset分别表示用于推导Qp′Cb和Qp′Cr的亮度量化参数Qp′Y的偏移量;
pps_joint_cbcr_qp_offset_value表示用于推导Qp′CbCr的亮度量化参数Qp′Y的偏移量;
slice_cr_qp_offset表示在确定量化参数Qp′Cr的值时待增加到pps_cr_qp_offset的值的差值;
slice_cb_qp_offset表示在确定量化参数Qp′Cb的值时待增加到pps_cb_qp_offset的值的差值;
slice_joint_cbcr_qp_offset表示在确定Qp′CbCr的值时待增加到pps_joint_cbcr_qp_offset_value的值的差值;
变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr表示在分别确定用于所述解码器的量化参数Qp′Cb、Qp′Cr和Qp′CbCr的值时待使用的值。
3.根据权利要求1或2所述的方法,其特征在于,所述色度QP映射表关联集合X中的每个元素x或所述集合X的任意子集与集合Y中的一个元素y,其中,所述集合X与所述解码器支持的允许QPi范围内的QPi对应,所述集合Y与所述解码器支持的允许QPc范围内的QPc对应。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述色度QP映射表中的值满足映射函数。
5.根据权利要求4所述的方法,其特征在于,所述映射函数为分段映射函数,所述分段映射函数的信息包括所述分段映射函数的断点、变化点或枢轴点。
6.根据权利要求5所述的方法,其特征在于,所述断点、变化点或枢轴点的数量及其相应的x、y坐标直接在所述码流中指示,或通过当前枢轴点的坐标与前一个枢轴点的坐标之间的增量值在所述码流中进行指示。
7.根据权利要求4至6中任一项所述的方法,其特征在于,所述映射函数是基于以下方程的分段函数:
线性方程,
指数方程,
对数方程,或
以上方程的组合。
8.根据权利要求7所述的方法,其特征在于,所述分段函数各个部分的参数基于枢轴点通过以下给定的线性方程获得:
y=slope*x+b,其中,slope和b为所述线性方程的参数,
slope=(Ey–Dy)/(Ex–Dx),
b=Dy–slope*Dx,
其中,D和E为枢轴点,对应的坐标分别为Dx、Dy和Ex、Ey。
9.根据权利要求1至8中任一项所述的方法,其特征在于,为所有色度分量联合指示所述色度QP映射表的信息。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述色度QP映射表的信息包括指示符,所述指示符用于表示为色度分量单独指示或联合指示所述映射函数。
11.根据权利要求1至10中任一项所述的方法,其特征在于,所述色度QP映射表的信息在以下级别进行指示:
序列参数集的序列级别,或
图像参数集的图像级别,或
分块组参数集的分块组级别,或
在自适应参数集中,或
在补充增强信息(supplemental enhancement information,SEI)消息中。
12.根据权利要求1至11中任一项所述的方法,其特征在于,根据色度采样格式的规格对所述色度QP映射表的信息即色度QP映射信息进行解析。
13.根据权利要求12所述的方法,其特征在于,所述色度采样格式的规格如下表所示:
其中,chroma_format_idc表示色度采样格式的索引;
在单色采样中,只有一个样本阵列,所述样本阵列通常被认为是亮度阵列;
在4:2:0采样中,两个色度阵列中的每个色度阵列的高度和宽度为亮度阵列的高度和宽度的一半;
在4:2:2采样中,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
在4:4:4采样中,根据标志separate_colour_plane_flag的值,以下情况适用:
如果separate_colour_plane_flag等于0,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
否则,如果separate_colour_plane_flag等于1,三个颜色平面分别作为单色采样图像进行处理;
其中,separate_colour_plane_flag等于1,表示对采用4:4:4色度格式的三个颜色分量分别进行编码;separate_colour_plane_flag等于0,表示不对所述颜色分量分别进行编码;当separate_colour_plane_flag等于1时,经编码的图像由三个独立的分量组成,每个分量由一个颜色平面(Y、Cb或Cr)的编码样本组成,并且使用单色编码语法;在这种情况下,每个颜色平面与具体的colour_plane_id值关联;
根据separate_colour_plane_flag的值,变量ChromaArrayType的值赋值如下:
–如果separate_colour_plane_flag等于0,ChromaArrayType设置为等于chroma_format_idc;
–否则(separate_colour_plane_flag等于1),ChromaArrayType设置为等于0。
14.根据权利要求12或13所述的方法,其特征在于,根据如下表中的一项所指定的色度采样格式决定是否存在标志chroma_qp_mapping_flag和/或色度Qp映射信息:
或者,
或者,
或者
其中,chroma_format_idc等于3,表示色度采样格式为4:2:0;
seq_parameter_set_rbsp()表示序列参数集的始字节序列载荷;
chroma_format_idc表示色度采样格式的索引;
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射函数,且所述色度Qp映射函数覆盖QpC(色度Qp)的默认规格作为qPi的函数,其中,qPi用于推导QpC;
chroma_qp_mapping_flag等于0,表示使用默认色度Qp映射表推导QpC,其中,当chroma_qp_mapping_flag不存在时,QpC推导为等于0;
sps_joint_cbcr_enabled_flag等于0,表示禁用对色度残差的联合编码;ps_joint_cbcr_enabled_flag等于1,表示启用对色度残差的联合编码;
same_qp_table_for_chroma等于1,表示仅指示一个色度QP映射表,其中,该表适用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,还适用于联合Cb-Cr残差;same_qp_table_for_chroma等于0,表示在SPS中指示色度QP映射表,其中,两个色度QP映射表用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,额外一个色度QP映射表用于联合Cb-Cr残差;
chroma_qp_table_present_flag等于1,表示指示用户定义的色度QP映射表ChromaQpTable;chroma_qp_table_present_flag等于0,表示不指示用户定义的色度QP映射表且使用预定义的色度QP映射表;
cqp_mapping_data()表示色度Qp映射信息。
15.根据权利要求4至14中任一项所述的方法,其特征在于,所述映射函数是单调递增函数。
16.根据权利要求5至15中任一项所述的方法,其特征在于,基于增量值通过无符号整数码在所述码流中对所述映射函数的枢轴点进行指示。
17.根据权利要求15或16所述的方法,其特征在于,无符号整数码为无符号型整数0阶Exp-Golomb码。
18.根据权利要求17所述的方法,其特征在于,所述映射函数的信息包括第一值a0与starting_point_value之间的差值(delta_a0),其中,子集A的第一值a0基于所述差值(delta_a0)通过以下公式获得:
a0=starting_point_value+delta_a0,
其中,starting_point_value在所述码流中指示,或者为预定义值。
19.根据权利要求18所述的方法,其特征在于,所述起始点值starting_point_value为0、21、30、maxQPi>>1中的一个,其中,maxQPi为所述解码器支持的最大QPi值。
20.根据权利要求16至19中任一项所述的方法,其特征在于,第一个枢轴点通过以下公式获得:
qpInVal[i][0]=qp_table_start_minus26[i]+26;
qpOutVal[i][0]=qpInVal[i][0];
其中,qp_table_start_minus26[i]+26表示用于描述第i个色度QP映射表的起始亮度和色度QP。
22.根据权利要求1至14中任一项所述的方法,其特征在于,还包括预定义的色度QP映射表,其中,所述码流包括指示符,所述指示符用于表示使用所述预定义的色度QP映射表或使用在所述码流中指示的所述色度QP映射表。
23.根据权利要求22所述的方法,其特征在于,所述预定义的色度QP映射表如下表所示:
24.根据权利要求22所述的方法,其特征在于,所述预定义的色度QP映射表如下表所示:
25.根据权利要求1至14、22至24中任一项所述的方法,其特征在于,在所述码流中直接或间接对所述色度QP映射表的信息进行指示。
26.一种解码器(30),其特征在于,包括处理电路,所述处理电路用于执行根据权利要求1至25中任一项所述的方法。
27.一种计算机程序产品,其特征在于,包括程序代码,所述程序代码用于执行根据权利要求1至25中任一项所述的方法。
28.一种解码器,其特征在于,包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质与所述处理器耦合并存储由所述处理器执行的程序,当所述处理器执行所述程序时,使得所述解码器执行根据权利要求1至25中任一项所述的方法。
29.一种基于亮度分量的亮度量化参数(quantization parameter,QP)获得色度分量的色度QP的解码器,其特征在于,包括:
接收单元,用于接收码流;
解析单元,用于解析所述码流,以获得所述亮度QP和色度QP映射表的信息,其中,所述色度QP映射表关联QP索引(QP index,QPi)与色度QP(QPc);
第一获得单元,用于至少部分地根据所述亮度QP获得所述QPi;
第二获得单元,用于根据所述获得的信息获得所述色度QP映射表;
第三获得单元,用于根据所述获得的色度QP映射表和所述获得的QPi获得QPc;
第四获得单元,用于根据所述获得的QPc获得色度量化参数。
30.根据权利要求29所述的解码器,其特征在于:
qPCb、qPCr和qPCbCr推导如下:
qPChroma=Clip3(-QpBdOffset,63,QpY);
qPCb=ChromaQpTable[0][qPChroma];
qPCr=ChromaQpTable[1][qPChroma];
qPCbCr=ChromaQpTable[2][qPChroma];
Cb分量和Cr分量的色度量化参数Qp′Cb和Qp′Cr以及联合Cb-Cr编码的色度量化参数Qp′CbCr推导如下:
Qp′Cb=Clip3(-QpBdOffset,63,qPCb+pps_cb_qp_offset+slice_cb_qp_offset+CuQpOffsetCb)+QpBdOffset;
Qp′Cr=Clip3(-QpBdOffset,63,qPCr+pps_cr_qp_offset+slice_cr_qp_offset+CuQpOffsetCr)+QpBdOffset;
Qp′CbCr=Clip3(-QpBdOffset,63,qPCbCr+pps_joint_cbcr_qp_offset_value+slice_joint_cbcr_qp_offset+CuQpOffsetCbCr)+QpBdOffset;
其中,ChromaQpTable为所述色度QP映射表;
QPi对应于qPChroma;
QPc对应于qPCb、qPCr和qPCbCr;
QpBdOffset为根据亮度和色度阵列的样本的位深通过以下公式计算获得的位深偏移:
QpBdOffset=6*bit_depth_minus8,
其中,bit_depth_minus8的范围为0至8(包括0和8);
pps_cb_qp_offset和pps_cr_qp_offset分别表示用于推导Qp′Cb和Qp′Cr的亮度量化参数Qp′Y的偏移量;
pps_joint_cbcr_qp_offset_value表示用于推导Qp′CbCr的亮度量化参数Qp′Y的偏移量;
slice_cr_qp_offset表示在确定量化参数Qp′Cr的值时待增加到pps_cr_qp_offset的值的差值;
slice_cb_qp_offset表示在确定量化参数Qp′Cb的值时待增加到pps_cb_qp_offset的值的差值;
slice_joint_cbcr_qp_offset表示在确定Qp′CbCr的值时待增加到pps_joint_cbcr_qp_offset_value的值的差值;
变量CuQpOffsetCb、CuQpOffsetCr和CuQpOffsetCbCr表示在分别确定用于所述解码器的量化参数Qp′Cb、Qp′Cr和Qp′CbCr的值时待使用的值。
31.根据权利要求29或30所述的解码器,其特征在于,所述色度QP映射表关联集合X中的每个元素x或所述集合X的任意子集与集合Y中的一个元素y,其中,所述集合X与所述解码器支持的允许QPi范围内的QPi对应,所述集合Y与所述解码器支持的允许QPc范围内的QPc对应。
32.根据权利要求29至31中任一项所述的解码器,其特征在于,所述色度QP映射表中的值满足映射函数。
33.根据权利要求32所述的解码器,其特征在于,所述映射函数为分段映射函数,所述分段映射函数的信息包括所述分段映射函数的断点、变化点或枢轴点。
34.根据权利要求33所述的解码器,其特征在于,所述断点、变化点或枢轴点的数量及其相应的x、y坐标直接在所述码流中指示,或通过当前枢轴点的坐标与前一个枢轴点的坐标之间的增量值在所述码流中进行指示。
35.根据权利要求32至34中任一项所述的解码器,其特征在于,所述映射函数是基于以下方程的分段函数:
线性方程,
指数方程,
对数方程,或
以上方程的组合。
36.根据权利要求35所述的解码器,其特征在于,所述分段函数各个部分的参数基于枢轴点通过以下给定的线性方程获得:
y=slope*x+b,其中,slope和b为所述线性方程的参数,
slope=(Ey–Dy)/(Ex–Dx),
b=Dy–slope*Dx,
其中,D和E为枢轴点,对应的坐标分别为Dx、Dy和Ex、Ey。
37.根据权利要求29至36中任一项所述的解码器,其特征在于,为所有色度分量联合指示所述色度QP映射表的信息。
38.根据权利要求29至37任一项所述的解码器,其特征在于,所述色度QP映射表的信息包括指示符,所述指示符用于表示为色度分量单独指示或联合指示所述色度QP映射表。
39.根据权利要求29至38中任一项所述的解码器,其特征在于,所述色度QP映射表的信息在以下级别进行指示:
序列参数集的序列级别,或
图像参数集的图像级别,或
分块组参数集的分块组级别,或
在自适应参数集中,或
在补充增强信息(supplemental enhancement information,SEI)消息中。
40.根据权利要求29至39中任一项所述的解码器,其特征在于,根据色度采样格式的规格对所述色度QP映射表的信息即色度QP映射信息进行解析。
41.根据权利要求40所述的解码器,其特征在于,所述色度采样格式的规格如下表所示:
其中,chroma_format_idc表示色度采样格式的索引;
在单色采样中,只有一个样本阵列,所述样本阵列通常被认为是亮度阵列;
在4:2:0采样中,两个色度阵列中的每个色度阵列的高度和宽度为亮度阵列的高度和宽度的一半;
在4:2:2采样中,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
在4:4:4采样中,根据标志separate_colour_plane_flag的值,以下情况适用:
如果separate_colour_plane_flag等于0,两个色度阵列中的每个色度阵列的高度和宽度与亮度阵列的高度和宽度相同;
否则,如果separate_colour_plane_flag等于1,三个颜色平面分别作为单色采样图像进行处理;
其中,separate_colour_plane_flag等于1,表示对采用4:4:4色度格式的三个颜色分量分别进行编码;separate_colour_plane_flag等于0,表示不对所述颜色分量分别进行编码;当separate_colour_plane_flag等于1时,经编码的图像由三个独立的分量组成,每个分量由一个颜色平面(Y、Cb或Cr)的编码样本组成,并且使用单色编码语法;在这种情况下,每个颜色平面与具体的colour_plane_id值关联;
根据separate_colour_plane_flag的值,变量ChromaArrayType的值赋值如下:
–如果separate_colour_plane_flag等于0,ChromaArrayType设置为等于chroma_format_idc;
–否则(separate_colour_plane_flag等于1),ChromaArrayType设置为等于0。
42.根据权利要求40或41所述的解码器,其特征在于,根据如下表中的一项所指定的色度采样格式决定是否存在标志chroma_qp_mapping_flag和/或色度Qp映射信息:
或者,
或者,
或者,
其中,chroma_format_idc等于3,表示色度采样格式为4:2:0;
seq_parameter_set_rbsp()表示序列参数集的始字节序列载荷;
chroma_format_idc表示色度采样格式的索引;
chroma_qp_mapping_flag等于1,表示指示的是色度Qp映射函数,且所述色度Qp映射函数覆盖QpC(色度Qp)的默认规格作为qPi的函数,其中,qPi用于推导QpC;
chroma_qp_mapping_flag等于0,表示使用默认色度Qp映射表推导QpC,其中,当chroma_qp_mapping_flag不存在时,QpC推导为等于0;
sps_joint_cbcr_enabled_flag等于0,表示禁用对色度残差的联合编码;ps_joint_cbcr_enabled_flag等于1,表示启用对色度残差的联合编码;
same_qp_table_for_chroma等于1,表示仅指示一个色度QP映射表,其中,该表适用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,还适用于联合Cb-Cr残差;same_qp_table_for_chroma等于0,表示在SPS中指示色度QP映射表,其中,两个色度QP映射表用于Cb和Cr残差,且当sps_joint_cbcr_enabled_flag等于1时,额外一个色度QP映射表用于联合Cb-Cr残差;
chroma_qp_table_present_flag等于1,表示指示用户定义的色度QP映射表ChromaQpTable;chroma_qp_table_present_flag等于0,表示不指示用户定义的色度QP映射表且使用预定义的色度QP映射表;
cqp_mapping_data()表示色度Qp映射信息。
43.根据权利要求32至42中任一项所述的解码器,其特征在于,所述映射函数是单调递增函数。
44.根据权利要求33至43中任一项所述的解码器,其特征在于,基于增量值通过无符号整数码在所述码流中对所述映射函数的枢轴点进行指示。
45.根据权利要求43或44所述的解码器,其特征在于,无符号整数码为无符号型整数0阶Exp-Golomb码。
46.根据权利要求45所述的解码器,其特征在于,所述映射函数的信息包括第一值a0与starting_point_value之间的差值(delta_a0),其中,子集A的第一值a0基于所述差值(delta_a0)通过以下公式获得:
a0=starting_point_value+delta_a0,
其中,starting_point_value在所述码流中指示,或者为预定义值。
47.根据权利要求46所述的解码器,其特征在于,所述起始点值starting_point_value为0、21、30、maxQPi>>1中的一个,其中,maxQPi为所述解码器支持的最大QPi值。
48.根据权利要求44至47中任一项所述的解码器,其特征在于,第一枢轴点通过以下公式获得:
qpInVal[i][0]=qp_table_start_minus26[i]+26;
qpOutVal[i][0]=qpInVal[i][0];
其中,qp_table_start_minus26[i]+26表示用于描述第i个色度QP映射表的起始亮度和色度QP。
50.根据权利要求29至42任一项所述的解码器,其特征在于,还包括预定义的色度QP映射表,其中,所述码流包括指示符,所述指示符用于表示使用所述预定义的色度QP映射表或使用在所述码流中指示的所述色度QP映射表。
51.根据权利要求50所述的解码器,其特征在于,所述预定义的色度QP映射表如下表所示:
52.根据权利要求50所述的解码器,其特征在于,所述预定义的色度QP映射表如下表所示:
53.根据权利要求29至42、50至52中任一项所述的解码器,其特征在于,在所述码流中直接或间接对所述色度QP映射表的信息进行指示。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962839607P | 2019-04-26 | 2019-04-26 | |
US62/839,607 | 2019-04-26 | ||
RU2019000444 | 2019-06-21 | ||
RUPCT/RU2019/000444 | 2019-06-21 | ||
US201962871197P | 2019-07-07 | 2019-07-07 | |
US62/871,197 | 2019-07-07 | ||
US201962872238P | 2019-07-09 | 2019-07-09 | |
US62/872,238 | 2019-07-09 | ||
PCT/CN2020/086933 WO2020216376A1 (en) | 2019-04-26 | 2020-04-26 | Method and apparatus for signaling of mapping function of chroma quantization parameter |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113767629A true CN113767629A (zh) | 2021-12-07 |
Family
ID=72941360
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080031573.4A Active CN113785577B (zh) | 2019-04-26 | 2020-04-26 | 用于指示色度量化参数映射函数的方法和装置 |
CN202310754266.4A Pending CN116760984A (zh) | 2019-04-26 | 2020-04-26 | 用于指示色度量化参数映射函数的方法和装置 |
CN202310751937.1A Pending CN117714687A (zh) | 2019-04-26 | 2020-04-26 | 根据亮度分量的亮度qp获取色度分量的色度qp的方法及装置 |
CN202080030925.4A Pending CN113767629A (zh) | 2019-04-26 | 2020-04-26 | 用于指示色度量化参数映射函数的方法和装置 |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080031573.4A Active CN113785577B (zh) | 2019-04-26 | 2020-04-26 | 用于指示色度量化参数映射函数的方法和装置 |
CN202310754266.4A Pending CN116760984A (zh) | 2019-04-26 | 2020-04-26 | 用于指示色度量化参数映射函数的方法和装置 |
CN202310751937.1A Pending CN117714687A (zh) | 2019-04-26 | 2020-04-26 | 根据亮度分量的亮度qp获取色度分量的色度qp的方法及装置 |
Country Status (12)
Country | Link |
---|---|
US (3) | US20220070462A1 (zh) |
EP (3) | EP4346205A3 (zh) |
JP (2) | JP7368496B2 (zh) |
KR (1) | KR20210147063A (zh) |
CN (4) | CN113785577B (zh) |
AU (1) | AU2020260657A1 (zh) |
BR (2) | BR112021000379A2 (zh) |
CA (1) | CA3137206A1 (zh) |
CL (1) | CL2021002776A1 (zh) |
MX (1) | MX2021012861A (zh) |
SG (1) | SG11202111156PA (zh) |
WO (2) | WO2020216375A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020243206A1 (en) * | 2019-05-28 | 2020-12-03 | Dolby Laboratories Licensing Corporation | Quantization parameter signaling |
CN116800978A (zh) | 2019-06-11 | 2023-09-22 | Lg电子株式会社 | 图像编码/解码方法、图像数据发送方法和存储介质 |
CN117579830A (zh) | 2019-06-21 | 2024-02-20 | 北京字节跳动网络技术有限公司 | 自适应环内颜色空间转换和其他编解码工具的选择性使用 |
CN113347427A (zh) * | 2019-06-21 | 2021-09-03 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置、设备及存储介质 |
CN114026858B (zh) * | 2019-06-23 | 2024-08-09 | 夏普株式会社 | 用于在视频编码中导出视频块的量化参数的系统和方法 |
US11146823B2 (en) | 2019-06-25 | 2021-10-12 | Qualcomm Incorporated | Signalling chroma quantization parameter (QP) mapping tables |
WO2020262913A1 (ko) | 2019-06-28 | 2020-12-30 | 엘지전자 주식회사 | 크로마 양자화 파라미터 데이터에 대한 영상 디코딩 방법 및 그 장치 |
KR102641457B1 (ko) | 2019-07-05 | 2024-02-28 | 엘지전자 주식회사 | 크로마 성분에 대한 영상 디코딩 방법 및 그 장치 |
JP2022540659A (ja) * | 2019-07-12 | 2022-09-16 | インターデジタル ヴイシー ホールディングス フランス,エスエーエス | ルマツークロマ量子化パラメータテーブルシグナリング |
WO2021091214A1 (ko) * | 2019-11-05 | 2021-05-14 | 엘지전자 주식회사 | 크로마 양자화 파라미터 오프셋 관련 정보를 코딩하는 영상 디코딩 방법 및 그 장치 |
WO2021088951A1 (en) * | 2019-11-07 | 2021-05-14 | Beijing Bytedance Network Technology Co., Ltd. | Quantization properties of adaptive in-loop color-space transform for video coding |
US11803989B2 (en) * | 2020-01-08 | 2023-10-31 | Qualcomm Incorporated | Quantization for geometry-based point cloud compression |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100213018B1 (ko) * | 1994-07-30 | 1999-08-02 | 윤종용 | 동화상 부호화장치 |
US6347116B1 (en) * | 1997-02-14 | 2002-02-12 | At&T Corp. | Non-linear quantizer for video coding |
US7269219B1 (en) * | 1997-02-14 | 2007-09-11 | At&T Corp. | Non-linear quantizer for video coding |
US6639942B1 (en) * | 1999-10-21 | 2003-10-28 | Toshiba America Electronic Components, Inc. | Method and apparatus for estimating and controlling the number of bits |
US7295609B2 (en) * | 2001-11-30 | 2007-11-13 | Sony Corporation | Method and apparatus for coding image information, method and apparatus for decoding image information, method and apparatus for coding and decoding image information, and system of coding and transmitting image information |
US7630435B2 (en) * | 2004-01-30 | 2009-12-08 | Panasonic Corporation | Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus, and program thereof |
KR100763178B1 (ko) * | 2005-03-04 | 2007-10-04 | 삼성전자주식회사 | 색 공간 스케일러블 비디오 코딩 및 디코딩 방법, 이를위한 장치 |
KR100878827B1 (ko) * | 2005-07-08 | 2009-01-14 | 엘지전자 주식회사 | 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는방법 |
KR101154999B1 (ko) * | 2005-07-08 | 2012-07-09 | 엘지전자 주식회사 | 영상 신호의 코딩정보를 압축/해제하기 위해 모델링하는 방법 |
US20070147497A1 (en) * | 2005-07-21 | 2007-06-28 | Nokia Corporation | System and method for progressive quantization for scalable image and video coding |
US7894523B2 (en) * | 2005-09-05 | 2011-02-22 | Lg Electronics Inc. | Method for modeling coding information of a video signal for compressing/decompressing coding information |
US7889790B2 (en) * | 2005-12-20 | 2011-02-15 | Sharp Laboratories Of America, Inc. | Method and apparatus for dynamically adjusting quantization offset values |
US8711925B2 (en) * | 2006-05-05 | 2014-04-29 | Microsoft Corporation | Flexible quantization |
ATE540383T1 (de) * | 2008-05-27 | 2012-01-15 | Ericsson Telefon Ab L M | Indexbasierte pixelblock-verarbeitung |
US20110135198A1 (en) * | 2009-12-08 | 2011-06-09 | Xerox Corporation | Chrominance encoding and decoding of a digital image |
US8588536B2 (en) * | 2010-02-22 | 2013-11-19 | Texas Instruments Incorporated | Guaranteed-rate tiled image data compression |
JP5393573B2 (ja) * | 2010-04-08 | 2014-01-22 | 株式会社Nttドコモ | 動画像予測符号化装置、動画像予測復号装置、動画像予測符号化方法、動画像予測復号方法、動画像予測符号化プログラム、及び動画像予測復号プログラム |
US9363509B2 (en) * | 2011-03-03 | 2016-06-07 | Electronics And Telecommunications Research Institute | Method for determining color difference component quantization parameter and device using the method |
KR20130068823A (ko) * | 2011-12-16 | 2013-06-26 | 삼성전자주식회사 | 영상 신호 처리를 위한 방법 및 장치 |
JP5988577B2 (ja) * | 2011-12-28 | 2016-09-07 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム |
EP3550840A1 (en) * | 2012-01-20 | 2019-10-09 | Sony Corporation | Complexity reduction of significance map coding |
GB2501535A (en) * | 2012-04-26 | 2013-10-30 | Sony Corp | Chrominance Processing in High Efficiency Video Codecs |
US9219916B2 (en) * | 2012-06-12 | 2015-12-22 | Dolby Laboratories Licensing Corporation | Joint base layer and enhancement layer quantizer adaptation in EDR video coding |
US9414054B2 (en) * | 2012-07-02 | 2016-08-09 | Microsoft Technology Licensing, Llc | Control and use of chroma quantization parameter values |
US9591302B2 (en) * | 2012-07-02 | 2017-03-07 | Microsoft Technology Licensing, Llc | Use of chroma quantization parameter offsets in deblocking |
GB2506852B (en) * | 2012-09-28 | 2015-09-30 | Canon Kk | Method and device for determining the value of a quantization parameter |
GB2512826B (en) * | 2013-04-05 | 2017-05-10 | Canon Kk | Method and device for determining the value of a quantization parameter |
JP6226578B2 (ja) * | 2013-06-13 | 2017-11-08 | キヤノン株式会社 | 画像符号化装置、画像符号化方法及びプログラム |
EP2843949B1 (en) * | 2013-06-28 | 2020-04-29 | Velos Media International Limited | Methods and devices for emulating low-fidelity coding in a high-fidelity coder |
US10075735B2 (en) * | 2013-07-14 | 2018-09-11 | Sharp Kabushiki Kaisha | Video parameter set signaling |
US9510002B2 (en) * | 2013-09-09 | 2016-11-29 | Apple Inc. | Chroma quantization in video coding |
US10362333B2 (en) * | 2014-01-02 | 2019-07-23 | Qualcomm Incorporated | Color index coding for palette-based video coding |
US20150195554A1 (en) * | 2014-01-03 | 2015-07-09 | Sharp Laboratories Of America, Inc. | Constraints and enhancements for a scalable video coding system |
WO2015130541A1 (en) * | 2014-02-26 | 2015-09-03 | Dolby Laboratories Licensing Corporation | Luminance based coding tools for video compression |
US10136141B2 (en) * | 2014-06-11 | 2018-11-20 | Qualcomm Incorporated | Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding |
US9924175B2 (en) * | 2014-06-11 | 2018-03-20 | Qualcomm Incorporated | Determining application of deblocking filtering to palette coded blocks in video coding |
US20150373327A1 (en) * | 2014-06-20 | 2015-12-24 | Qualcomm Incorporated | Block adaptive color-space conversion coding |
US20150373350A1 (en) * | 2014-06-20 | 2015-12-24 | Qualcomm Incorporated | Temporal motion vector prediction (tmvp) indication in multi-layer codecs |
EP3026908A1 (en) * | 2014-11-26 | 2016-06-01 | Thomson Licensing | Method and device for quantizing and de-quantizing a picture using scaling factors for chrominance based on luminance |
CN107852512A (zh) * | 2015-06-07 | 2018-03-27 | 夏普株式会社 | 基于亮度转换函数或视频色彩分量值的优化视频编码的系统及方法 |
CA2996349A1 (en) * | 2015-09-02 | 2017-03-09 | Thomson Licensing | Method and apparatus for quantization in video encoding and decoding |
US10165275B2 (en) * | 2016-01-26 | 2018-12-25 | Dolby Laboratories Licensing Corporation | Content-adaptive reshaping for high dynamic range images |
GB2552223B (en) * | 2016-07-15 | 2020-01-01 | Gurulogic Microsystems Oy | Encoders, decoders and methods employing quantization |
US10834400B1 (en) * | 2016-08-19 | 2020-11-10 | Fastvdo Llc | Enhancements of the AV1 video codec |
US10477212B2 (en) * | 2016-10-11 | 2019-11-12 | Dolby Laboratories Licensing Corporation | Adaptive chroma quantization in video coding for multiple color imaging formats |
US11019339B2 (en) * | 2017-07-12 | 2021-05-25 | Futurewei Technologies, Inc. | Fractional quantization parameter offset in video compression |
US20200162735A1 (en) * | 2017-07-28 | 2020-05-21 | Sony Semiconductor Solutions Corporation | Image processing apparatus and method |
CN116170590A (zh) * | 2017-08-10 | 2023-05-26 | 夏普株式会社 | 图像滤波装置、图像解码装置以及图像编码装置 |
WO2019148977A1 (en) * | 2018-02-01 | 2019-08-08 | Mediatek Inc. | Methods and apparatuses of video encoding or decoding with adaptive quantization of video data |
US11889070B2 (en) * | 2018-03-23 | 2024-01-30 | Sharp Kabushiki Kaisha | Image filtering apparatus, image decoding apparatus, and image coding apparatus |
EP3688986B1 (en) * | 2018-04-01 | 2021-10-27 | LG Electronics Inc. | An image coding method based on a quantization parameter derivation |
KR102030384B1 (ko) * | 2018-06-19 | 2019-11-08 | 광운대학교 산학협력단 | 잔차 계수 부호화/복호화 방법 및 장치 |
-
2020
- 2020-04-26 EP EP24158549.6A patent/EP4346205A3/en active Pending
- 2020-04-26 WO PCT/CN2020/086924 patent/WO2020216375A1/en unknown
- 2020-04-26 CN CN202080031573.4A patent/CN113785577B/zh active Active
- 2020-04-26 MX MX2021012861A patent/MX2021012861A/es unknown
- 2020-04-26 KR KR1020217036311A patent/KR20210147063A/ko not_active Application Discontinuation
- 2020-04-26 CN CN202310754266.4A patent/CN116760984A/zh active Pending
- 2020-04-26 CA CA3137206A patent/CA3137206A1/en active Pending
- 2020-04-26 JP JP2021563407A patent/JP7368496B2/ja active Active
- 2020-04-26 BR BR112021000379-7A patent/BR112021000379A2/pt unknown
- 2020-04-26 BR BR112021021434A patent/BR112021021434A2/pt unknown
- 2020-04-26 CN CN202310751937.1A patent/CN117714687A/zh active Pending
- 2020-04-26 CN CN202080030925.4A patent/CN113767629A/zh active Pending
- 2020-04-26 AU AU2020260657A patent/AU2020260657A1/en active Pending
- 2020-04-26 WO PCT/CN2020/086933 patent/WO2020216376A1/en unknown
- 2020-04-26 EP EP20794386.1A patent/EP3949402A4/en not_active Ceased
- 2020-04-26 EP EP20794728.4A patent/EP3939283A4/en active Pending
- 2020-04-26 SG SG11202111156PA patent/SG11202111156PA/en unknown
-
2021
- 2021-10-22 CL CL2021002776A patent/CL2021002776A1/es unknown
- 2021-10-25 US US17/509,324 patent/US20220070462A1/en active Pending
- 2021-10-25 US US17/452,137 patent/US12052419B2/en active Active
-
2023
- 2023-10-12 JP JP2023176442A patent/JP2023179671A/ja active Pending
-
2024
- 2024-02-12 US US18/439,264 patent/US20240205406A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US12052419B2 (en) | 2024-07-30 |
EP3939283A4 (en) | 2022-05-18 |
EP3939283A1 (en) | 2022-01-19 |
CN113785577A (zh) | 2021-12-10 |
US20220070462A1 (en) | 2022-03-03 |
CN116760984A (zh) | 2023-09-15 |
JP7368496B2 (ja) | 2023-10-24 |
JP2022530480A (ja) | 2022-06-29 |
CL2021002776A1 (es) | 2022-05-20 |
MX2021012861A (es) | 2021-12-10 |
EP4346205A3 (en) | 2024-04-24 |
CN117714687A (zh) | 2024-03-15 |
CN113785577B (zh) | 2023-06-27 |
US20220070460A1 (en) | 2022-03-03 |
AU2020260657A1 (en) | 2021-11-11 |
CA3137206A1 (en) | 2020-10-29 |
EP3949402A4 (en) | 2022-06-08 |
KR20210147063A (ko) | 2021-12-06 |
BR112021000379A2 (pt) | 2021-04-13 |
JP2023179671A (ja) | 2023-12-19 |
US20240205406A1 (en) | 2024-06-20 |
EP4346205A2 (en) | 2024-04-03 |
EP3949402A1 (en) | 2022-02-09 |
WO2020216376A1 (en) | 2020-10-29 |
SG11202111156PA (en) | 2021-11-29 |
WO2020216375A1 (en) | 2020-10-29 |
BR112021021434A2 (pt) | 2021-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113785577B (zh) | 用于指示色度量化参数映射函数的方法和装置 | |
CN112913236B (zh) | 编码器,解码器和使用压缩mv存储的对应方法 | |
CN114424567B (zh) | 使用基于矩阵的帧内预测进行组合的帧间-帧内预测的方法和装置 | |
EP3868098A1 (en) | Method and apparatus of local illumination compensation for predictive coding | |
CN113411612B (zh) | 对图像块进行视频译码的方法、解码设备和编/解码器 | |
CN113473134B (zh) | 子块融合候选的单独融合列表和帧内和帧间预测技术协调方法、装置和存储介质 | |
CN114342403A (zh) | 用于加权预测的高级指示的方法和装置 | |
CN113170118A (zh) | 视频译码中进行色度帧内预测的方法及装置 | |
CN113692740A (zh) | 用于无除法帧内预测的方法和装置 | |
CN113330741B (zh) | 从帧内子划分译码模式工具限制子分区的尺寸的编码器、解码器、及对应方法 | |
WO2020182116A1 (en) | An encoder, a decoder and corresponding methods using an adaptive loop filter | |
CN113994683A (zh) | 用于色度量化控制的编码器、解码器和对应方法 | |
CN114830654A (zh) | 译码块分割限制推导的编码器、解码器和对应方法 | |
CN114830652A (zh) | 用于方向性帧内预测的参考样本插值滤波的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |