CN114902662A - 用于视频译码的跨分量自适应环路滤波 - Google Patents

用于视频译码的跨分量自适应环路滤波 Download PDF

Info

Publication number
CN114902662A
CN114902662A CN202080089822.5A CN202080089822A CN114902662A CN 114902662 A CN114902662 A CN 114902662A CN 202080089822 A CN202080089822 A CN 202080089822A CN 114902662 A CN114902662 A CN 114902662A
Authority
CN
China
Prior art keywords
syntax element
alf
syntax
turned
value
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
Application number
CN202080089822.5A
Other languages
English (en)
Inventor
阿南德·梅赫·科特拉
塞米赫·艾森力克
伊蕾娜·亚历山德罗夫娜·阿尔希娜
高晗
王彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN114902662A publication Critical patent/CN114902662A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/174Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/186Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

提供了一种用于图像编码和/或图像解码的方法,该方法中,图像头条目被引入CCALF,图像头条目定义了公共的CCALF数据,且所有条带(slice)都可以继承该公共信息,从而减少了信令开销,尤其减少了条带头的开销(以比特数而言)。

Description

用于视频译码的跨分量自适应环路滤波
相关申请案交叉引用
本申请要求于2019年12月23日提交的申请号为PCT/EP2019/086984的国际专利申请以及要求于2020年1月13日提交的申请号为US62/960,147的美国临时专利申请的优先权。上述专利申请的公开内容通过全文引用的方式并入本文中。
技术领域
本申请(本发明)实施例通常涉及图像处理领域,更具体地,涉及作为环内滤波器或环后滤波器的跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)以及用于跨分量ALF(Cross Component ALF,CCALF)的高级语法。
背景技术
图像译码(编码和解码)广泛用于数字图像应用,例如广播数字TV、通过互联网和移动网络传输视频、实时会话应用(如视频聊天)、视频会议、DVD和蓝光光盘、视频内容采集和编辑系统,以及安全应用的摄像机。
自从1990年H.261标准中基于块的混合视频译码方法发展以来,新的视频译码技术和工具相继出现,为新的视频编码标准奠定了基础。大多数视频编码标准的目标中的其中一个目标是,与前代标准相比,在保证图像质量的情况下实现码率的降低。其它视频编码标准包括MPEG-1视频、MPEG-2视频、ITU-T H.262/MPEG-2、ITU-T H.263、ITU-T H.264/MPEG-4第10部分/高级视频编码(Advanced Video Coding,AVC)、ITU-T H.265/高效视频编码(High Efficiency Video Coding,HEVC)、ITU-T H.266/通用视频编码(VersatileVideo Coding,VVC)以及这些标准的扩展,例如这些标准的可扩展性和/或三维(three-dimensional,3D)扩展。
基于块的图像编码方案的共同点是块边缘可能会出现边缘伪影。这些伪影是由于对编码块进行独立编码造成的,而且这些边缘伪影通常很容易被用户看到。基于块的图像译码的目标是将边缘伪影减少到可见度阈值以下,这可以通过,例如,去块效应滤波器、SAO滤波器和自适应环路滤波(adaptive loop filter,ALF)器执行环路滤波来实现。滤波过程是按照去块效应滤波器、SAO滤波器和ALF滤波器的顺序执行。此外,还可以使用跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)。
特别是对于跨分量自适应环路滤波器(cross-component adaptive loopfilter,CC-ALF)而言,亮度样本值用于修正每个色度分量。该过程需要同时对Cb分量和Cr分量执行,因此,跨分量自适应环路滤波在计算上较为复杂,而且可能会增加额外的流水线时延,特别是通过硬件实现时。
发明内容
基于上述挑战,本发明旨在改进跨分量自适应环路滤波和用于CCALF的语法元素。除其它目的外,本发明可以涉及的目的是提供一种装置、编码器、解码器以及相应方法,能够以更少的信令开销执行跨分量自适应环路滤波,特别地,可以减少条带头的开销(以比特数而言)。因此,滤波可以更加高效。
本发明的示例提供了图像编码和解码装置和方法,能够提高译码性能,从而提高视频信号的译码效率。本发明在本文件中包括的各个示例和权利要求中进行详细说明。
本申请实施例提供了独立权利要求所述的用于编码和解码的装置和方法,能够降低跨分量ALF的复杂度,并且可以提高跨分量自适应环路滤波器(cross-componentadaptive loop filter,CC-ALF)分别作为环内滤波器或环后滤波器的性能。
上述和其它目的可以通过由独立权利要求请求保护的主题来实现。其它实现方式在从属权利要求、具体说明和附图中是显而易见的。
特定实施例在所附独立权利要求中进行概述,其它实施例在从属权利要求中进行概述。
第一方面,本发明涉及一种由编码设备实现的编码方法,该方法包括:
通过应用跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)执行滤波过程(例如,跨分量滤波过程);
生成包括多个CC-ALF相关语法元素的码流(例如,包括M个CC-ALF相关语法元素,其中,M>=1,且M为整数),其中,所述多个CC-ALF相关语法元素表示所述CC-ALF相关信息。
所述多个CC-ALF相关语法元素在视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameter set,PPS)级别、图像头、条带头、或分块头中的任何一个或多个进行指示;或者
所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别和/或图像头中进行指示。
这样,在为本申请实际适用的或本申请涉及的那些级别在所述码流的结构中提供相关信息的同时,可以减小码流的大小,而且所述码流支持以更少的信令开销进行跨分量自适应环路滤波。因此,滤波可以更加高效,并且可以提高译码效率。
第二方面,本发明涉及一种由解码设备实现的解码方法,所述方法包括:
从视频信号的码流中解析出一个或多个语法元素,其中,所述语法元素表示跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)相关信息,所述语法元素从所述码流的视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameter set,PPS)级别、图像头、条带头或分块头中的任何一个或多个获得,或者,所述语法元素从序列参数集(sequence parameter set,SPS)级别和/或图像头中获得;
通过根据所述语法元素或所述语法元素的值应用CC-ALF执行滤波过程(例如,跨分量滤波过程)。
该方法能够支持在解码过程中从码流中获得相关信息,并减小码流的大小,从而支持改进数据压缩处理。而且,该方法支持以更少的信令开销进行跨分量自适应环路滤波。因此,滤波可以更加高效,并且可以提高译码效率。
第三方面,本发明涉及一种用于对视频数据进行解码的装置。该装置包括处理电路,所述处理电路用于执行本发明第一方面所述的方法。
第四方面,本发明涉及一种用于对视频数据进行编码的装置。该装置包括处理电路,所述处理电路用于执行本发明第二方面所述的方法。
本发明第一方面所述的方法可以由本发明第三方面所述的装置执行。本发明第三方面所述的方法的其它特征和实现方式对应于本发明第一方面所述的装置的特征和实现方式。
本发明第二方面所述的方法可以由本发明第四方面所述的装置执行。本发明第四方面所述的方法的其它特征和实现方式对应于本发明第二方面所述的装置的特征和实现方式。
第五方面,本发明涉及一种用于解码视频流的装置,所述装置包括处理器和存储器。所述存储器存储指令,所述指令使得所述处理器执行第一方面所述的方法。
第六方面,本发明涉及一种用于编码视频流的装置,所述装置包括处理器和存储器。所述存储器存储指令,所述指令使得所述处理器执行第二方面所述的方法。
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储指令。当执行所述指令时,使得一个或多个处理器对视频数据进行译码。所述指令使得所述一个或多个处理器执行第一方面或第二方面或第一方面或第二方面的任一可能实施例中所述的方法。
第八方面,本发明涉及一种计算机程序,所述计算机程序包括程序代码,所述程序代码用于在计算机中被执行时执行第一方面或第二方面或第一方面或第二方面任一可能实施例中所述的方法。
本发明提供了一种由编码设备实现的编码方法,所述方法包括:
应用跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)修正色度分量;
生成包括多个ALF相关语法元素(下文中称为CC-ALF相关语法元素)的码流,其中,所述多个CC-ALF相关语法元素表示ALF相关信息(下文中称为CC-ALF相关信息)。
所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示。
所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应滤波器的自适应环路滤波器(adaptive loopfilter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。
虽然这里通常指定第一语法元素和第二语法元素在SPS级别进行指示,但这并不意味着对至少第二语法元素的指示是无条件的。相反,本实施例还包括各种实现方式,例如,第二语法元素是基于第一语法元素的值和/或根据下文中描述的其它语法元素的值进行指示的。
第一语法元素在下文中可以表示为sps_alf_enabled_flag,而第二语法元素可以表示为sps_ccalf_enabled_flag。但是,这只是这里使用的名称。本发明不限定第一语法元素或第二语法元素或本文中提到的任何其它语法元素的具体名称。
可以理解到,CC-ALF是一种特殊类型的ALF。CC-ALF可以取决于是否开启ALF,因此,第一语法元素,即sps_alf_enabled_flag,也与CC-ALF相关,因此,在下文中可以称为CC-ALF相关语法元素。类似地,由第一语法元素即sps_alf_enabled_flag表示的信息也与CC-ALF相关,因此,在下文中可以称为CC-ALF相关信息。
因此,例如,可被序列中所有图像使用的信息可以在SPS级别高效地进行指示,从而可以通过减少冗余信息的量来减小码流的大小。而且,支持以更少的信令开销进行跨分量自适应环路滤波。因此,滤波可以更加高效,并且可以提高译码效率。
在一个实施例中,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第三语法元素,其中,所述第三语法元素在所述图像头中进行指示,并且所述第三语法元素表示是否为包括多个条带的当前图像开启CC-ALF。
所述第三个语法元素可以表示为pic_ccalf_enabled_flag。在本实施例中,可以在保持码流大小较小的同时,对与全图像有关的相关CC-ALF信息进行指示。在一个示例中,条带1至条带N共享相同的CCALF信息,因此,公共信息可以直接从图像头继承,而不需要通过每个条带头重复传输该信息。
在另一个实施例中,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第四语法元素,其中,所述第四语法元素在所述图像头中进行指示,并且所述第四语法元素表示是否为与所述码流关联的视频序列的当前图像开启Cb颜色分量的CC-ALF。
例如,所述第四语法元素可以表示为用pic_cross_component_alf_cb_enabled_flag。但是,这不是强制性的。第四语法元素可以在保持例如条带头中的冗余信息的量较少的同时,高效地指示Cb颜色分量的CC-ALF。
基于上述描述,如果所述第四语法元素的值为1,则表示为所述当前图像开启所述Cb颜色分量的CC-ALF;和/或,如果所述第四语法元素的值为0,则表示为所述当前图像关闭所述Cb颜色分量的CC-ALF。
在一个实施例中,当所述第四语法元素表示为所述当前图像开启所述Cb颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第五语法元素,其中,所述第五语法元素在所述图像头中进行指示,并且所述第五语法元素表示所述当前图像中所有条带的Cb颜色分量所参考的参数集。该语法元素可以表示为pic_cross_component_alf_cb_aps_id。但是,这只是一个名称,且不应解释为对本发明的限制。本实施例可以支持对提供给图像级别的图像的所有条带的参数集进行指示,从而减少冗余信息的量。
基于上述描述,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素还包括第七语法元素,其中,所述第七语法元素在图像头中进行指示,并且所述第七语法元素表示是否为与所述码流关联的视频序列的当前图像开启Cr颜色分量的CC-ALF。例如,该语法元素可以表示为pic_cross_component_alf_cr_enabled_flag,但这不应解释为对本发明的限制。通过该语法元素,可以可靠地指示为开启Cr颜色分量的CC-ALF。
基于上述描述,如果所述第七语法元素的值为1,则表示为所述当前图像开启所述Cr颜色分量的CC-ALF;和/或,如果所述第七语法元素的值为0,则表示为所述当前图像关闭所述Cr颜色分量的CC-ALF。
在一个实施例中,当所述第七语法元素表示为所述当前图像开启所述Cr颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第八语法元素,其中,所述第八语法元素在所述图像头中进行指示,并且所述第八语法元素表示所述当前图像中所有条带的Cr颜色分量所关联的参数集。所述第八语法元素可以表示为pic_cross_component_alf_cr_aps_id,但是这只是一个例子。该语法元素可以提供待在滤波过程中使用的相关参数的信息。
基于上述描述,当所述第三语法元素表示为与所述码流关联的视频序列的当前图像开启CC-ALF时,对所述第四语法元素、所述第五语法元素、所述第六语法元素、所述第七语法元素、所述第八语法元素和所述第九语法元素进行指示。如果CC-ALF被关闭,这些元素可以设置为默认值,仍然在码流中进行指示。可选地,如果CC-ALF被关闭,这些语法元素可以不在码流中进行指示。由于码流中不包括未使用的信息,从而减小了码流的大小。
在另一个实施例中,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十语法元素,其中,所述第十语法元素在条带头中进行指示,并且所述第十语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cb颜色分量的CCALF。该语法元素可以表示为slice_cross_component_alf_cb_enabled_flag,但这并不意味着是对本发明的限制。因此,可以高效地指示是否开启Cb颜色分量的CC-ALF。
基于上述描述,如果所述第十语法元素的值为1,则表示为所述当前条带开启所述Cb颜色分量的CCALF;和/或,如果所述第十语法元素的值为0,则表示为所述当前条带关闭所述Cb颜色分量的CCALF。
在另一个实施例中,当所述第十语法元素表示为所述当前条带开启所述Cb颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第十一语法元素,其中,所述第十语法元素在条带头中进行指示,并且所述第十语法元素表示所述当前条带的Cb颜色分量所参考的参数集。该语法元素可以表示为pic_cross_component_alf_cb_aps_id,但这并不意味着是对本发明的限制。
在另一个实施例中,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十二语法元素,其中,所述第十二语法元素在条带头中进行指示,并且所述第十二语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cr颜色分量的CCALF。例如,所述第十二语法元素可以表示为slice_cross_component_alf_cr_enabled_flag。
在另一个实施例中,可以了解的是,如果所述第十二语法元素的值为1,则表示为所述当前条带开启所述Cr颜色分量的CCALF;和/或,如果所述第十二语法元素的值为0,则表示为所述当前条带关闭所述Cr颜色分量的CCALF。
基于上述描述,当所述第十二语法元素表示为所述当前条带开启所述Cr颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素还包括第十三语法元素,其中,所述第十三语法元素在条带头中进行指示,并且所述第十三语法元素表示所述当前条带的Cr颜色分量所参考的参数集。例如,所述第十三语法元素可以表示为slice_cross_component_alf_cr_aps_id。这可以高效地提供将在所述Cr颜色分量所关联的滤波过程中使用的参数的信息。
基于上述描述,所述第二语法元素是在所述第一语法元素具有第一值时进行指示的;或者,所述第二语法元素是至少根据所述第一语法元素的值有条件地进行指示的。如果所述ALF未被开启(由所述第一语法元素进行指示),所述CC-ALF也不会被开启。在这种情况下,如果不提供所述第二语法元素,可以进一步减小所述码流的大小。
在一个实施例中,所述多个CC-ALF相关语法元素包括第十四语法元素,其中,所述第十四语法元素在所述SPS级别进行指示,并且所述第十四语法元素表示所述CC-ALF的输入的类型。所述第十四语法元素可以表示为ChromaArrayType,但这不应解释为对本发明的限制。
更具体地,所述第二语法元素是在所述第一语法元素具有第一值且所述第十四语法元素具有第二值时进行指示的。所述第二值可以是不同于表示不开启CC-ALF的特定值的任何值。
在另一个具体实施例中,所述第二语法元素是在所述第一语法元素的值等于1且所述第十四语法元素的值不等于0时进行指示的。
对于上述实施例中的任何一个实施例,可以了解的是,所述CC-ALF运行为自适应环路滤波过程的一部分,并利用亮度样本值修正至少一个色度分量。
本发明还提供了一种由解码设备实现的解码方法,所述方法包括:
从码流中解析出多个跨分量自适应环路滤波器(cross component adaptiveloop filter,CC-ALF)相关语法元素,其中,所述多个语法元素,其中,所述多个CC-ALF相关语法元素从序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个获得;
所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应环路滤波器的自适应环路滤波器(adaptive loopfilter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示;
通过所述多个CC-ALF相关语法元素中的至少一个语法元素执行CC-ALF过程。
虽然这里通常指定第一语法元素和第二语法元素是在SPS级别提供的,但这并不意味着在码流中提供至少第二语法元素是无条件的。相反,本实施例还包括各种实现方式,例如,第二语法元素是码流的一部分,是基于第一语法元素的值和/或根据下文中描述的其它语法元素的值获得的。
第一语法元素在下文中可以表示为sps_alf_enabled_flag,而第二语法元素可以表示为sps_ccalf_enabled_flag。但是,这只是这里使用的名称。本发明不限定第一语法元素或第二语法元素或本文中提到的任何其它语法元素的具体名称。
因此,例如,可被序列中所有图像使用的信息可以在SPS级别高效地提供给解码器,从而可以通过减少冗余信息的量来减小码流的大小。而且,支持以更少的信令开销进行跨分量自适应环路滤波。因此,滤波可以更加高效,并且可以提高译码效率。
基于上述描述,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第三语法元素,其中,所述第三语法元素从所述图像头获得,并且所述第三语法元素表示是否为包括多个条带的当前图像开启CC-ALF。所述第三个语法元素可以表示为pic_ccalf_enabled_flag。在本实施例中,可以在保持码流大小较小的同时,提供与全图像有关的相关CC-ALF信息。
在另一个实施例中,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第四语法元素,其中,所述第四语法元素从所述图像头获得,并且所述第四语法元素表示是否为视频序列的当前图像开启Cb颜色分量的CC-ALF。例如,所述第四语法元素可以表示为用pic_cross_component_alf_cb_enabled_flag。但是,这不是强制性的。所述第四语法元素可以在保持例如条带头中的冗余信息的量较少的同时,高效地促使解码器开启Cb颜色分量的CC-ALF。
在另一个实施例中,可以了解的是,如果所述第四语法元素的值为1,则表示为所述当前图像开启所述Cb颜色分量的CC-ALF;和/或,如果所述第四语法元素的值为0,则表示为所述当前图像关闭所述Cb颜色分量的CC-ALF。
而且,当所述第四语法元素表示为所述当前图像开启所述Cb颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第五语法元素,其中,所述第五语法元素从所述图像头获得,并且所述第五语法元素表示所述当前图像中所有条带的Cb颜色分量所关联的参数集。该语法元素可以表示为pic_cross_component_alf_cb_aps_id。但是,这只是一个名称,且不应解释为对本发明的限制。本实施例可以支持为图像级别的图像的所有条带提供参数集,从而减少冗余信息的量。
在另一个实施例中,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第七语法元素,其中,所述第七语法元素从所述图像头获得,并且所述第七语法元素表示是否为与所述码流关联的视频序列的当前图像开启Cr颜色分量的CC-ALF。例如,该语法元素可以表示为pic_cross_component_alf_cr_enabled_flag,但这不应解释为对本发明的限制。通过该语法元素,CC-ALF解码器可以可靠地确定是否开启Cr颜色分量的CC-ALF。
基于上述描述,如果所述第七语法元素的值为1,则表示为所述当前图像开启所述Cr颜色分量的CC-ALF;和/或,如果所述第七语法元素的值为0,则表示为所述当前图像关闭所述Cr颜色分量的CC-ALF。
在另一个实施例中,当所述第七语法元素被获得并表示为所述当前图像开启所述Cr颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第八语法元素,其中,所述第八语法元素从所述图像头获得,并且所述第八语法元素表示所述当前图像中所有条带的Cr颜色分量所关联的参数集。所述第八语法元素可以表示为pic_cross_component_alf_cr_aps_id,但是这只是一个例子。该语法元素可以提供待在滤波过程中使用的相关参数的信息。
基于上述描述,当所述第三语法元素被获得并表示为与所述码流关联的视频序列的当前图像开启CC-ALF时,则获得所述第四语法元素、所述第五语法元素、所述第六语法元素、所述第七语法元素、所述第八语法元素和所述第九语法元素。
在一个实施例中,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十语法元素,其中,所述第十语法元素从条带头获得,并且所述第十语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cb颜色分量的CCALF。该语法元素可以表示为slice_cross_component_alf_cb_enabled_flag,但这并不意味着是对本发明的限制。因此,可以了解的是,解码器可以确定是否开启Cb颜色分量的CC-ALF。
基于上述描述,如果所述第十语法元素的值为1,则表示为所述当前条带开启所述Cb颜色分量的CCALF;和/或,如果所述第十语法元素的值为0,则表示为所述当前条带关闭所述Cb颜色分量的CCALF。
在一个实施例中,当所述第十语法元素被获得并表示为所述当前条带开启所述Cb颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第十一语法元素,其中,所述第十语法元素从所述条带头中获得,并且所述第十语法元素表示所述当前条带的Cb颜色分量所参考的参数集。该语法元素可以表示为pic_cross_component_alf_cb_aps_id,但这并不意味着是对本发明的限制。
基于上述描述,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十二语法元素,其中,所述第十二语法元素从所述条带头中获得,并且所述第十二语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cr颜色分量的CCALF。例如,所述第十二语法元素可以表示为slice_cross_component_alf_cr_enabled_flag。
在一个更具体的实施例中,如果所述第十二语法元素的值为1,则表示为所述当前条带开启所述Cr颜色分量的CCALF;和/或,如果所述第十二语法元素的值为0,则表示为所述当前条带关闭所述Cr颜色分量的CCALF。
基于上述描述,当所述第十二语法元素被获得并表示为所述当前条带开启所述Cr颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素还包括第十三语法元素,其中,所述第十三语法元素从条带头中获得,并且所述第十三语法元素表示所述当前条带的Cr颜色分量所参考的参数集。例如,所述第十三语法元素可以表示为slice_cross_component_alf_cr_aps_id。这可以高效地提供将在所述Cr颜色分量所关联的滤波过程中使用的参数的信息。
在一个实施例中,所述第二语法元素是在所述第一语法元素具有第一值时获得的;或者,所述第二语法元素是至少根据所述第一语法元素的值有条件地获得的。
基于上述描述,所述多个CC-ALF相关语法元素还包括第十四语法元素,其中,所述第十四语法元素从所述SPS级别获得,并且所述第十四语法元素表示所述CC-ALF的输入的类型。所述第十四语法元素可以表示为ChromaArrayType,但这不应解释为对本发明的限制。
更具体地,所述第二语法元素是在所述第一语法元素具有第一值且所述第十四语法元素具有第二值时获得的。所述第二值可以是不同于表示不开启CC-ALF或可用于表示不开启CC-ALF的值的任何值。
更具体地,基于上述描述,所述第二语法元素是在所述第一语法元素的值等于1且所述第十四语法元素的值不等于0时获得的。
对于上述实施例中的任何一个实施例,还可以了解的是,所述CC-ALF运行为自适应环路滤波过程的一部分,并利用亮度样本值修正至少一个色度分量。
本发明还涉及:
一种用于对视频数据进行编码的设备,所述设备包括:
视频数据存储器;以及
视频编码器,所述视频编码器用于:应用跨分量自适应环路滤波器(rosscomponent adaptive loop filter,CC-ALF)修正色度分量;生成包括多个CC-ALF相关语法元素的码流,其中,所述多个CC-ALF相关语法元素表示CC-ALF相关信息;所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示;所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应环路滤波器的自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。因此,上述编码方法中所述的优点被提供给编码器以进行编码,例如对视频进行编码。
本发明还涉及:
一种用于对视频数据进行解码的设备,所述设备包括:
视频数据存储器;以及
视频解码器,所述视频解码器用于:从码流中解析出多个跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)相关语法元素,其中,所述多个语法元素即所述多个CC-ALF相关语法元素从序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个获得;所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应环路滤波器的自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示;通过所述多个CC-ALF相关语法元素中的至少一个语法元素执行CC-ALF过程。
因此,优点是在实现可靠视频解码的同时,可以减小码流的大小。
进一步地,还提供了一种用于编码视频的编码器,所述编码器包括处理电路,所述处理电路用于执行上述任一实施例所述的方法。因此,上述编码方法中所述的优点被提供给编码器以进行编码,例如对视频进行编码。
此外,还提供了一种用于解码码流的解码器,所述解码器包括用于处理电路,所述处理电路用于执行上述任一实施例所述的方法。因此,优点是在实现可靠视频解码的同时,可以减小码流的大小。
本发明还提供了一种计算机可读存储介质;所述计算机可读存储介质包括计算机可执行指令;当所述计算机可执行指令被计算设备执行时,使得所述计算设备执行上述任一实施例所述的方法。
本发明还提供了一种用于视频信号的经编码码流,所述码流包括多个CC-ALF相关语法元素,其中,所述多个CC-ALF相关语法元素表示CC-ALF相关信息;
所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示;
所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应滤波器的自适应环路滤波器(adaptive loopfilter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。
当以可靠方式应用CC-ALF时,可以在提供待用于解码的信息的同时,减小码流的大小。
以下附图及说明书将详细阐述一个或多个实施例。其它特征、目的和优点在说明书、附图和权利要求书中是显而易见的。
附图说明
下面结合附图对本发明实施例进行更加详细的描述。
图1A为用于实现本发明实施例的视频译码系统的一种示例的框图;
图1B为用于实现本发明实施例的视频译码系统的另一种示例的框图;
图2为用于实现本发明实施例的视频编码器的一种示例的框图;
图3为用于实现本发明实施例的视频解码器的一种示例性结构的框图;
图4为编码装置或解码装置的一种示例的框图;
图5为编码装置或解码装置的另一种示例的框图;
图6包括图6(a)、图6(b)和图6(c),其中,图6(a)示出了CC ALF相对于其它环路滤波器(如图6(b)和图6(c)所示)如菱形滤波器的放置位置;
图7为示出了现有技术中所有条带头需传输CCALF数据的示意图;
图8为CC-ALF的改进的语法元素的一种示例的示意图;
图9A为亮度样本和色度样本的标称垂直和水平相对位置的概念图;
图9B为共址亮度块以及色度块的示意图;
图10为实现内容分发服务的内容提供系统3100的一种示例性结构的框图;
图11为终端设备的一种示例性结构的框图。
图12为编码器的一种示例的框图;
图13为解码器的一种示例的框图;
图14为一个实施例提供的用于编码视频的方法的流程图;
图15为一个实施例提供的用于解码视频的方法的流程图。
图16为数据结构5000即视频码流500的示意图。
在下文中,如果没有另外明确说明,相同的附图标记将指代相同特征或至少在功能上等效的特征。
具体实施方式
以下定义供参考:
■编码块(coding block):一个M×N的样本块,其中,M和N可以设为某个值,使得一个CTB划分成多个编码块,这就是一种分割方式。
■编码树块(coding tree block,CTB):一个N×N的样本块,其中,N可以设为某个值,使得一个分量划分成多个CTB,这就是一种分割方式。
■编码树单元(coding tree unit,CTU):具有三个样本阵列的图像中的亮度样本组成的一个CTB以及色度样本组成的两个对应CTB,或者黑白图像或采用三个单独颜色平面和语法结构进行译码的图像中的样本组成的一个CTB,其中,这些语法结构用于对上述样本进行译码。
■编码单元(coding unit,CU):具有三个样本阵列的图像中的亮度样本组成的一个编码块以及色度样本组成的两个对应编码块,或者黑白图像或采用三个单独颜色平面和语法结构进行译码的图像中的样本组成的一个编码块,其中,这些语法结构用于对上述样本进行译码。
■分量(component):组成4:2:0、4:2:2或4:4:4颜色格式图像的三个阵列(一个亮度阵列和两个色度阵列)中的一个阵列或一个阵列中的一个样本,或者组成单色格式图像的阵列或阵列中的一个样本。
在以下描述中,参考构成本发明的一部分的附图,附图通过图示说明的方式示出了本发明实施例的具体方面或可使用本发明实施例的具体方面。应当理解的是,本发明实施例可以在其它方面中使用,并且可以包括附图中未描绘的结构变化或逻辑变化。因此,以下详细描述不应以限制性的意义来理解,且本发明的范围由所附权利要求书界定。
例如,应当理解的是,与所描述的方法有关的公开内容对于用于执行所述方法的对应设备或系统同样也可以适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如,功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或者多个单元分别执行多个步骤中的一个或多个步骤),即使附图中未明确描述或示出此类一个或多个单元。另一方面,例如,如果根据一个或多个单元(例如,功能单元)来描述具体装置,则对应的方法可以包括一个或多个步骤来实现一个或多个单元的功能(例如,一个步骤实现一个或多个单元的功能,或者多个步骤分别实现多个单元中的一个或多个单元的功能),即使附图中未明确描述或示出此类一个或多个步骤。此外,应当理解的是,除非另外明确说明,本文中所描述的各示例性实施例和/或方面的特征可以相互组合。
视频译码通常指对构成视频或视频序列的图像序列进行处理。在视频译码领域中,术语“帧(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等,以对经编码图像数据13进行解码。
源设备12可以包括编码器20,并且可以另外(即可选地)包括图像源16、预处理器(或预处理单元)18(例如图像预处理器18)和通信接口或通信单元22。
图像源16可以包括或可以是任何类型的图像捕获设备,例如用于捕获真实世界图像的摄像机;和/或任何类型的图像生成设备,例如用于生成计算机动画图像的计算机图形处理器;或者用于获得和/或提供真实世界图像、计算机动画图像(例如屏幕内容、虚拟现实(virtual reality,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将经编图像数据21(或者对经编码图像数据21进一步处理后得到的数据)发送给另一设备(例如目的地设备14)或任何其它设备,以便进行存储或直接重建。
目的地设备14可以包括解码器30(例如视频解码器30),并且可以另外(即可选地)包括通信接口或通信单元28、后处理器32(或后处理单元32)和显示设备34。
目的地设备14中的通信接口28可以用于直接从源设备12或从存储设备例如经编码图像数据存储设备等任何其它源端接收经编码图像数据21(或者对经编码图像数据21进一步处理后得到的数据),并将经编码图像数据21提供给解码器30。
通信接口22和通信接口28可以用于经由源设备12与目的地设备14之间的直接通信链路(例如,直接有线或无线连接)或者经由任何类型的网络(例如,有线网络、无线网络或其任何组合,或者任何类型的私网和公网或其任何类型的组合)发送或接收经编码图像数据21或经编码数据13。
例如,通信接口22可以用于将经编码图像数据21封装成合适的格式(例如数据包),和/或通过任何类型的传输编码或处理方式来处理经编码图像数据,以便通过通信链路或通信网络进行传输。
例如,与通信接口22对应的通信接口28可以用于接收传输的数据,并通过任何类型的对应传输解码或处理和/或解封装方式来处理传输数据,得到经编码图像数据21。
通信接口22和通信接口28两者或至少一者可以配置为图1A中从源设备12指向目的地设备14的通信信道13的箭头所指示的单向通信接口,或者配置为双向通信接口,并且可以用于发送和接收消息等,以建立连接、确认并交换与通信链路和/或数据传输(例如经编码图像数据传输)相关的任何其它信息,等等。
解码器30可以用于接收经编码图像数据21并提供经解码图像数据31或经解码图像31(下文将结合图3或图5等描述更多细节)。
目的地设备14的后处理器32可以用于对经解码图像数据31(也称为重建图像数据)(例如,经解码图像31)进行后处理,以获得经后处理的图像数据33(例如,经后处理的图像33)。例如,由后处理单元32执行的后处理可以包括颜色格式转换(例如,从YCbCr转换为RGB)、调色、修剪、重采样,或任何其它处理,用于提供经解码图像数据31以供显示设备34等进行显示,等等。
目的地设备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或其对应的功能。源设备和/或目的地设备还可以采用专用硬件和/或软件实现。例如,这些设备中的一者或两者可以采用专门设计的硬件实现,以实现上文和下文中描述的功能中的一个或多个功能。同时可选地,上文和下文中描述的功能中的一个或多个功能可以通过专门设计的可以在通用硬件如处理器上运行的软件来实现。此外,还设想了上述的组合,即,源设备和/或目的地设备可以采用用于实现一个或多个功能的专用硬件和用于实现一个或多个其它功能的专用软件的组合来实现。
本领域技术人员根据上述描述明显可知,图1A中所示的源设备12和/或目的地设备14的不同单元或功能的存在和(精确)功能划分可以根据实际设备和应用的变化而变化。
编码器20(例如视频编码器20)或解码器30(例如视频解码器30)或所述编码器20和所述解码器30两者都可以通过如图1B所示的处理电路实现,例如一个或多个微处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gatearray,FPGA)、离散逻辑、硬件、视频编码专用处理器或其任意组合。编码器20可以通过处理电路46实现,以体现参照图2的编码器20所描述的各种模块和/或本文中所描述的任何其它编码器系统或子系统。解码器30可以通过处理电路46实现,以体现参照图3的解码器30所描述的各种模块和/或本文中所描述的任何其它解码器系统或子系统。所述处理电路可以用于执行下文论述的各种操作。如图5所示,如果所述技术部分地以软件形式实现,则设备可以将该软件的指令存储在合适的非瞬时性计算机可读存储介质中,并且可以通过一个或多个处理器以硬件形式执行所述指令,以实现本发明的技术。视频编码器20和视频解码器30中的任一个可以作为组合编码器/解码器(编解码器,CODEC)的一部分集成在单个设备中,如图1B所示。
源设备12和目的地设备14可以包括多种设备中的任一种,包括任何类型的手持式或固定设备,例如,笔记本电脑或膝上型电脑、手机、智能手机、平板电脑(tablet/tabletcomputer)、摄像机、台式计算机、机顶盒、电视机、显示设备、数字媒体播放器、视频游戏机、视频流设备(如内容服务服务器或内容分发服务器)、广播接收器设备、广播发送器设备等,并且可以不使用或使用任何类型的操作系统。在一些情况下,源设备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 picturebuffer,DPB)230、帧间预测单元244和帧内预测单元254还组成视频编码器20的“内置解码器”。
图像和图像分割(图像和块)
例如,编码器20可以用于通过输入端201接收图像17(或图像数据17),例如,形成视频或视频序列的图像序列中的图像。接收到的图像或图像数据也可以是经预处理的图像19(或经预处理的图像数据19)。为简单起见,下文均描述为图像17。图像17也可以称为当前图像或待译码图像(尤其是在视频译码中为了将当前图像与同一视频序列(即同时包括当前图像的视频序列)中的其它图像(例如先前的经编码图像和/或经解码图像)区分开)。
(数字)图像为或者可以视为具有强度值的样本组成的二维阵列或矩阵。阵列中的样本也可以称为像素(pixel/pel)(图像元素的简称)。阵列或图像在水平方向和垂直方向(或轴线)上的样本数量限定了图像的大小和/或分辨率。为了表示颜色,通常采用三个颜色分量,即图像可以表示为或可以包括三个样本阵列。在RBG格式或颜色空间中,一个图像包括对应的红、绿、蓝样本阵列。但是,在视频译码中,每个像素通常以亮度和色度格式或颜色空间表示,例如YCbCr,包括Y表示的一个亮度分量(有时也用L表示)和Cb和Cr表示的两个色度分量。所述亮度(luminance,简写为luma)分量Y表示亮度或灰阶强度(例如,如同在灰阶图像中),而所述两个色度(chrominance,简写为chroma)分量Cb和Cr表示色度或颜色信息分量。相应地,YCbCr格式的图像包括由亮度样本值(Y)组成的一个亮度样本阵列和由色度值(Cb和Cr)组成的两个色度样本阵列。RGB格式的图像可以转换或变换成YCbCr格式,反之亦然,该过程也称为颜色转换或颜色变换。如果图像是黑白的,则该图像可以只包括亮度样本阵列。相应地,例如,图像可以为黑白格式的一个亮度样本阵列或4:2:0、4:2:2和4:4:4颜色格式的亮度样本阵列和两个对应的色度样本阵列。
视频编码器20的实施例可以包括图像分割单元(图2中未示出),用于将图像17分割成多个(通常不重叠)图像块203。这些块也可以称为根块、宏块(H.264/AVC标准中),或编码树块(coding tree block,CTB)或编码树单元(coding tree unit,CTU)(H.265/HEVC和VVC标准中)。图像分割单元可以用于对视频序列中的所有图像使用相同的块大小并使用限定块大小的对应网格,或者在图像或图像子集或图像组之间改变块大小,并将每个图像划分成多个对应块。
在其它实施例中,视频编码器可以用于直接接收图像17的块203,例如组成图像17的一个、几个或所有块。图像块203也可以称为当前图像块或待译码图像块。
与图像17类似,图像块203同样为或者可以视为具有强度值(样本值)的像素点组成的二维阵列或矩阵,但是图像块203的尺寸比图像17的尺寸小。换句话说,根据所应用的颜色格式,块203可以包括,例如,一个样本阵列(例如,图像17是黑白图像时的一个亮度阵列或图像17是彩色图像时的一个亮度阵列或一个色度阵列)或三个样本阵列(例如,图像17是彩色图像时的一个亮度阵列和两个色度阵列)或任何其它数量和/或类型的阵列。块203在水平方向和垂直方向(或轴线)上的样本数量限定了块203的大小。相应地,一个块可以为M×N(M列×N行)的样本阵列或M×N的变换系数阵列等。
在图2所示的视频编码器20的实施例中,视频编码器20可以用于对图像17进行逐块编码,例如对每个块203进行编码和预测。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于使用条带(slice)(也称为视频条带)对图像进行分割和/或编码。其中,可以使用一个或多个条带(通常为不重叠的条带)对图像进行分割或编码,并且每个条带可以包括一个或多个块(例如CTU)或一个或多个块组(例如,分块(tile)(H.265/HEVC和VVC)或砖(brick)(VVC))。
在图2所示的视频编码器20的实施例中,视频编码器20还可以用于使用条带/分块组(也称为视频分块组)和/或分块(也称为视频分块)对图像进行分割和/或编码。其中,可以使用一个或多个条带/分块组(通常为不重叠的条带/分块组)对图像进行分割或编码,每个条带/分块组可以包括一个或多个块(例如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变换相比,这种整数近似通常为按一定的因子进行比例缩放(scale)。为了维持经正变换和逆变换处理的残差块的范数,应用其它比例缩放因子作为变换过程的一部分。比例缩放因子通常是根据某些约束条件选择的,例如,比例缩放因子是用于移位运算的2的幂、变换系数的位深度、精度与实现成本之间的权衡等。例如,通过逆变换处理单元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)。量化是有损操作,其中,量化步长越大,损耗越大。
在视频编码器20的实施例中,视频编码器20(相应地,量化单元208)可以用于,例如,直接输出或通过熵编码单元270进行编码后输出量化参数(quantization parameter,QP),使得视频解码器30可以接收并使用量化参数进行解码。
反量化
反量化单元210可以用于对量化系数执行量化单元208执行的量化的反量化,得到解量化系数211,例如,根据或使用与量化单元208相同的量化步长执行量化单元208所执行的量化方案的反量化方案。解量化系数211也可以称为解量化残差系数211,对应于变换系数207,但是由于量化造成损耗,解量化系数211通常与变换系数不完全等同。
逆变换
逆变换处理单元212可以用于执行变换处理单元206执行的变换的逆变换,例如,逆离散余弦变换(discrete cosine transform,DCT)、逆离散正弦变换(discrete sinetransform,DST)或其它逆变换,以获得样本域中的重建残差块213(或对应的解量化系数213)。重建残差块213也可以称为变换块213。
重建
重建单元214(例如加法器或求和器214)可以用于通过以下方式将重建残差块213的样本值与预测块265的样本值逐样本进行相加,例如,将变换块213(即重建残差块213)添加到预测块265,以得到样本域中的重建块215。
滤波
环路滤波器单元220(或简称为“环路滤波器”220)可以用于对重建块215进行滤波,得到经滤波的块221,或者通常用于对重建样本进行滤波,得到滤波样本值。例如,环路滤波器单元用于平滑像素转变或提高视频质量。环路滤波器单元220可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或其任意组合。例如,环路滤波器单元220可以包括去块效应滤波器、SAO滤波器和ALF滤波器。滤波过程可以按照去块效应滤波器、SAO滤波器和ALF滤波器的顺序执行。再例如,增加一种称为亮度映射与色度缩放(lumamapping with chroma scaling,LMCS)(即自适应环内整形器)的过程。该过程在去块效应滤波之前执行。再例如,去块效应滤波器过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换(sub-block transform,SBT)边缘和帧内子分割(intra sub-partition,ISP)边缘。
为了有效地去除大“块”中发生的块效应,VVC使用长抽头去块效应滤波器。这里,术语“块”以非常通用的,可以指“变换块(transform block,TB)、预测块(predictionblock,PB)或编码单元块(coding unit block,CU)”。长抽头滤波器适用于亮度分量和色度分量。用于亮度分量的长抽头滤波器修改每行样本中最多7个样本,其中,这些样本与边缘垂直且相邻。该长抽头滤波器适用于在去块效应方向上大小大于或等于32个样本的块,即对于垂直边缘,块宽度应大于或等于32个样本,对于水平边缘,块高度应大于或等于32个样本。
用于色度分量的长抽头滤波器适用于两个色度块,该两个色度块与给定边缘相邻且大小大于或等于8个样本。该长抽头滤波器修改该边缘每侧的最多3个样本。因此,对于垂直边缘,与给定边缘相邻的两个块的块宽度应大于或等于8个样本,对于水平边缘,与给定边缘相邻的两个块的块高度应大于或等于8个样本。尽管环路滤波器单元220在图2中示出为环内滤波器,但是在其它配置中,环路滤波器单元220可以实现为环后滤波器。经滤波的块221也可以称为经滤波的重建块221。
在视频编码器20的实施例中,视频编码器20(对应地,环路滤波器单元220)可以用于,例如,直接输出或通过熵编码单元270进行编码后输出环路滤波器参数(例如SAO滤波器参数、ALF滤波器参数或LMCS参数),使得解码器30可以接收并使用相同或不同的环路滤波器参数进行解码。
解码图像缓冲区
解码图像缓冲区(decoded picture buffer,DPB)230可以是存储参考图像或通常存储参考图像数据以供视频编码器20对视频数据进行编码时使用的存储器。DPB 230可以由多种存储器设备中的任何一种组成,例如动态随机存取存储器(dynamic random accessmemory,DRAM),包括同步DRAM(synchronous DRAM,SDRAM)、磁阻RAM(magnetoresistiveRAM,MRAM)、电阻RAM(resistive RAM,RRAM)或其它类型的存储器设备。解码图像缓冲区(decoded picture buffer,DPB)230可以用于存储一个或多个经滤波的块221。解码图像缓冲区230还可以用于存储同一当前图像或不同图像(例如先前经重建的图像)中的其它先前经滤波的块(例如先前经重建和滤波的块221),并且可以提供完整的先前经重建(即经解码)的图像(和对应的参考块和样本)和/或部分经重建的当前图像(和对应的参考块和样本),以进行帧间预测等。解码图像缓冲区(decoded picture buffer,DPB)230还可以用于存储一个或多个未经滤波的重建块215,或者,例如,如果重建块215未由环路滤波器单元220进行滤波,则通常存储未经滤波的重建样本,或者存储未进行任何其它处理的重建块或重建样本。
模式选择(分割和预测)
模式选择单元260包括分割单元262、帧间预测单元244和帧内预测单元254,用于从解码图像缓冲区230或其它缓冲区(例如行缓冲区,图中未示出)接收或获得原始块203(当前图像17的当前块203)等原始图像数据以及重建图像数据,例如,同一(当前)图像和/或一个或多个先前经解码图像的经滤波和/或未经滤波的重建样本或重建块。重建图像数据用作帧间预测或帧内预测等预测中的参考图像数据,以得到预测块265或预测值265。
模式选择单元260可以用于为当前块预测模式(包括不分割的情况)确定或选择一种分割方式以及确定或选择一种预测模式(例如帧内预测模式或帧间预测模式),生成对应的预测块265,以对残差块205进行计算和对重建块215进行重建。
在一些实施例中,模式选择单元260可以用于选择分割和预测模式(例如,从模式选择单元260支持或可用的那些模式中进行选择)。所述分割和预测模式提供最佳匹配或者说最小残差(最小残差是指进行更好的压缩以便传输或存储),或者提供最小信令开销(最小信令开销是指进行更好的压缩以便传输或存储),或者同时考虑或平衡以上两者。模式选择单元260可以用于根据率失真优化(rate distortion optimization,RDO)确定分割和预测模式,即选择提供最小率失真的预测模式。本文中,术语“最佳”、“最小”、“最优”等不一定指总体上“最佳”、“最小”、“最优”等,也可以指满足终止或选择标准的情况,例如,某个值超过或低于阈值或其它限制,可能导致“次优选择”,但会降低复杂度和处理时间。
换言之,分割单元262可以用于通过以下方式将视频序列中的图像分割为译码树单元(coding tree unit,CTU)序列,例如,可以通过迭代地使用四叉树分割(quad-treepartitioning,QT)、二叉树分割(binary-tree partitioning,BT)或三叉树分割(triple-tree partitioning,TT)或其任意组合,将CTU 203进一步分割为较小的分割块(partition)或子块(它们再次形成块),并且用于例如对分割块或子块中的每一个进行预测,其中,模式选择包括选择分割块203的树结构和选择应用于每个分割块或子块的预测模式。
下文将详细地描述由示例性视频编码器20执行的分割(例如由分割单元260执行)和预测处理(由帧间预测单元244和帧内预测单元254执行)。
分割
分割单元262可以用于将视频序列中的图像分割为一系列编码树单元(codingtree unit,CTU),分割单元262可以将编码树单元(coding tree unit,CTU)203分割(或划分)为更小的分割块,例如正方形或矩形大小的较小块。对于具有三个样本阵列的图像,CTU由一个N×N的亮度样本块和两个对应的色度样本块组成。在正在开发的通用视频编码(Versatile Video Coding,VVC)标准中,CTU中的亮度块的最大允许尺寸被指定为128×128,但是将来可以被指定为不同于128×128的值,例如256×256。图像的CTU可以聚类/分组为条带(slice)/分块组(tile group)、分块(tile)或砖(brick)。分块覆盖图像的矩形区域,并且可以将分块划分为一个或多个砖。砖由分块中的多个CTU行组成。未被分割为多个砖的分块可以称为砖。但是,砖是分块的真子集,因此不可以称为分块。VVC支持两种分块组模式,即光栅扫描条带/分块组模式和矩形条带模式。在光栅扫描分块组模式中,条带/分块组包含图像的分块光栅扫描中的分块的序列。在矩形条带模式中,条带包含图像的多个砖,这些砖共同组成图像的矩形区域。矩形条带内的砖是按照条带的砖光栅扫描顺序进行排列的。这些较小块(也可以称为子块)可以进一步分割为甚至更小的分割块。这也称为树分割或层次树分割,其中,例如在根树级别0(层次级别为0,深度为0)的根块可以递归地分割为两个或更多下一较低级别的块,例如分割为树级别1(层次级别为1,深度为1)的节点。这些块可以再次分割为两个或更多下一较低级别的块,例如树级别2(层次级别为2、深度为2)的块,直到分割结束(因为达到结束标准,例如达到最大树深度或最小块尺寸)。未被进一步分割的块也称为树的叶块或叶节点。分割为两个分割块的树称为二叉树(binary-tree,BT),分割为三个分割块的树称为三叉树(ternary-tree,TT),分割为四个分割块的树称为四叉树(quad-tree,QT)。
例如,编码树单元(coding tree unit,CTU)可以为或可以包括具有三个样本阵列的图像中的亮度样本组成的一个CTB以及色度样本组成的两个对应CTB,或者可以为或可以包括黑白图像或使用三个单独颜色平面和语法结构进行译码的图像中的样本组成的一个CTB,其中,这些语法结构用于对样本进行译码。相应地,编码树块(coding tree block,CTB)可以为N×N个样本块,其中,N可以设为某个值,使得一个分量被划分为多个CTB,这就是一种分割方式。编码单元(coding unit,CU)可以为或可以包括具有三个样本阵列的图像中的亮度样本组成的一个编码块以及色度样本组成的两个对应编码块,或者可以为或可以包括黑白图像或使用三个单独颜色平面和语法结构进行译码的图像中的样本组成的一个编码块,其中,这些语法结构用于对样本进行译码。相应地,编码块(coding block,CB)可以为M×N个样本块,其中,M和N可以设为某个值,使得一个CTB被划分为多个编码块,这就是一种分割方式。
在一些实施例中,例如根据HEVC,可以通过表示为编码树的四叉树结构将编码树单元(coding tree unit,CTU)划分为多个CU。是否通过帧间(时间)预测或帧内(空间)预测对图像区域进行译码是在叶CU层级决定的。每个叶CU可以根据PU划分类型进一步划分为一个、两个或四个PU。一个PU内将执行相同的预测过程,并且以PU为单位向解码器发送将相关信息。根据PU划分类型执行该预测过程获得残差块之后,可以根据与CU的编码树类似的其它四叉树结构将叶CU分割为变换单元(transform unit,TU)。
在一些实施例中,例如,根据当前正在开发的最新视频编码标准(称为通用视频编码(Versatile Video Coding,VVC)),使用嵌套多类型树(例如二叉树和三叉树)的组合四叉树来划分例如用于分割编码树单元的分段结构。在编码树单元内的编码树结构中,CU可以为正方形或矩形。例如,编码树单元(coding tree unit,CTU)首先通过四叉树结构进行分割。然后,四叉树叶节点可以通过多类型树结构进行进一步分割。多类型树结构中存在四种划分类型:垂直二叉树划分(SPLIT_BT_VER)、水平二叉树划分(SPLIT_BT_HOR)、垂直三叉树划分(SPLIT_TT_VER)和水平三叉树划分(SPLIT_TT_HOR)。多类型树叶节点称为编码单元(coding unit,CU)。除非CU对于最大变换长度而言太大,否则,这样的分段将用于进行预测和变换处理,而无需进行任何进一步的分割。这意味着,在大多数情况下,CU、PU和TU在四叉树嵌套多类型树的编码块结构中的块大小相同。当所支持的最大变换长度小于CU的彩色分量的宽度或高度时,就会出现该异常情况。VVC制定了在四叉树嵌套多类型树的编码树结构中用于分割划分信息的唯一指示机制。在该指示机制中,编码树单元(coding tree unit,CTU)作为四叉树的根首先通过四叉树结构进行分割。然后,每个四叉树叶节点(由于太大而需要进行分割时)进一步通过多类型树结构进行分割。在多类型树结构中,指示第一标志(mtt_split_cu_flag)来表示是否对节点进行进一步分割;当节点被进一步分割时,指示第二标志(mtt_split_cu_vertical_flag)来表示划分方向,再指示第三标志(mtt_split_cu_binary_flag)来表示该划分是二叉树划分还是三叉树划分。基于mtt_split_cu_vertical_flag和mtt_split_cu_binary_flag的值,CU的多类型树划分模式(MttSplitMode)可以由解码器根据预定义的规则或表格推导得到。需要说明的是,对于某种设计,例如VVC硬件解码器中的64×64亮度块和32×32色度流水线设计,当亮度编码块的宽度或高度大于64时,不允许进行TT划分,如图6所示。当色度编码块的宽度或高度大于32时,也不允许进行TT划分。流水线设计将图像划分为多个虚拟流水线数据单元(virtual pipeline data unit,VPDU),这些虚拟流水线数据单元被定义为图像中的非重叠单元。在硬件解码器中,通过多个流水线阶段同时处理连续的VPDU。在大多数流水线阶段中,VPDU的大小与缓冲区的大小大致成正比,因此重要的是保持较小的VPDU。在大多数硬件解码器中,VPDU的大小可以设置为最大变换块(transform block,TB)的大小。但是,在VVC中,三叉树(ternary tree,TT)和二叉树(binary tree,BT)分割可能会增大VPDU。
另外,需要说明的是,当树节点块的一部分超出图像的下边界或右边界时,强制对该树节点块进行划分,直到每个经译码的CU的所有样本都位于图像边界内。
例如,帧内子分割(intra sub-partition,ISP)工具可以根据块的大小将经帧内预测的亮度块垂直或水平地划分为2个或4个子分割块。
在一个示例中,视频编码器20中的模式选择单元260可以用于执行本文中描述的分割技术的任意组合。
如上所述,视频编码器20用于从(例如预定的)预测模式集合中确定或选择最佳或最优的预测模式。例如,预测模式集合可以包括帧内预测模式和/或帧间预测模式等。
帧内预测
帧内预测模式集合可以包括35种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式等非方向性模式,或如HEVC中定义的方向性模式,或者可以包括67种不同的帧内预测模式,例如,如DC(或均值)模式和平面模式等非方向性模式,或如VVC中定义的方向性模式。例如,若干传统的角度帧内预测模式自适应地替换为如VVC中所定义的非方形块的广角帧内预测模式。又例如,为了避免DC预测的除法运算,仅使用较长边来计算非方形块的平均值。而且,平面模式的帧内预测结果还可以通过位置相关帧内预测组合(positiondependent intra prediction combination,PDPC)方法进行修改。
帧内预测单元254用于根据帧内预测模式集合中的帧内预测模式,使用同一个当前图像中的邻块的重建样本来生成帧内预测块265。
帧内预测单元254(或通常为模式选择单元260)还用于将帧内预测参数(或通常为表示块的所选帧内预测模式的信息)以语法元素266的形式输出到熵编码单元270,以包含到经编码的图像数据21中,使得视频解码器30可以例如接收并使用预测参数进行解码。
帧间预测
(可能的)帧间预测模式集合取决于可用的参考图像(即,例如上述存储在DBP 230中的至少部分经解码图像)和其它帧间预测参数,例如取决于是否使用整个参考图像或只使用参考图像的一部分(例如当前块的区域周围的搜索窗口区域)来搜索最佳匹配的参考块,和/或例如取决于是否进行像素插值,例如二分之一像素、四分之一像素和/或1/16像素插值。
除了上述预测模式之外,还可以应用跳过模式、直接模式和/或其它帧间预测模式。
例如,扩展融合预测,这种模式下的融合候选列表由以下5种候选类型按顺序组成:来自空间相邻CU的空间MVP、来自并置CU的时间MVP、来自FIFO表的历史MVP、成对的平均MVP和零MV。而且,基于双边匹配的解码器端运动矢量修正(decoder side motion vectorrefinement,DMVR)方法可以用来提高融合模式下的MV的精度。带有MVD的融合模式(mergemode with MVD,MMVD)即源自带有运动矢量差值的融合模式。MMVD标志在发送跳过标志和融合标志之后立即进行指示,用于表示CU是否采用MMVD模式,而且可以应用CU级自适应运动矢量精度(adaptive motion vector resolution,AMVR)方案。AMVR方案支持以不同的精度对CU的MVD进行译码。根据当前CU的预测模式,可以自适应地选择当前CU的MVD。当CU采用融合模式进行译码时,组合的帧间/帧内预测(combined inter/intra prediction,CIIP)模式可以应用于当前CU。对帧间预测信号和帧内预测信号进行加权平均,得到CIIP预测。仿射运动补偿预测中,块的仿射运动场通过两个控制点运动矢量(4-参数)或三个控制点运动矢量(6-参数)的运动信息来描述。基于子块的时间运动矢量预测(subblock-basedtemporal motion vector prediction,SbTMVP)与HEVC中的时间运动矢量预测(temporalmotion vector prediction,TMVP)类似,但预测的是当前CU中的子CU的运动矢量。双向光流(bi-directional optical flow,BDOF)以前称为BIO,是一种简化版本,其所需的计算大幅减少,特别是乘法次数和乘法器的大小的减少。三角分割模式:在这种模式中,CU通过对角线划分和反对角线划分两种划分方式被均匀划分为两个三角形分割块。此外,双向预测模式在简单平均的基础上进行了扩展,以支持对两个预测信号进行加权平均。
帧间预测单元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可以用于将熵编码算法或方案(例如可变长度编码(variablelength coding,VLC)方案、上下文自适应VLC(context adaptive VLC,CAVLC)方案、算术编码方案、二值化,上下文自适应二进制算术编码(context adaptive binary arithmeticcoding,CABAC)、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binary arithmetic coding,SBAC)、概率区间分割熵(probability intervalpartitioning entropy,PIPE)编码或其它熵编码方法或技术)等应用于或不应用于(无压缩)量化系数209、帧间预测参数、帧内预测参数、环路滤波器参数和/或其它语法元素,以获得可以通过输出端272以经编码码流21等形式输出的经编码图像数据21,使得视频解码器30可以接收并使用这些参数进行解码等。例如,码流可以具有如图16中进一步指定的形式。因此,关于该图所描述的实施例也被认为包括此处描述的码流21。此外,从本实施例的意义来说,此处所提到的码流的任何结构都可以提供为码流21。可以将经编码码流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,DPB)330、模式应用单元360、帧间预测单元344和帧内预测单元354。帧间预测单元344可以为或可以包括运动补偿单元。在一些示例中,视频解码器30可以执行大体上与参照图2中的视频编码器100所描述的编码过程互逆的解码过程。
如参照编码器20所述,反量化单元210、逆变换处理单元212、重建单元214、环路滤波器220、解码图像缓冲区(decoded picture buffer,DBP)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还可以用于(例如通过熵解码单元304等进行解析和/或解码)从经编码图像数据21接收变换参数或对应的信息,以确定要对解量化系数311进行的变换。
重建
重建单元314(例如加法器或求和器314)可以用于通过以下方式将重建残差块313的样本值与预测块365的样本值相加,例如,将重建残差块313添加到预测块365,以得到样本域中的重建块315。
滤波
环路滤波器单元320(在译码环路中或在译码环路之后)可以用于对重建块315进行滤波,得到经滤波的块321,例如,以平滑像素转变或以其它方式提高视频质量等。环路滤波器单元320可以包括一个或多个环路滤波器,例如去块效应滤波器、样本自适应偏移(sample-adaptive offset,SAO)滤波器或一个或多个其它滤波器,例如自适应环路滤波器(adaptive loop filter,ALF)、噪声抑制滤波器(noise suppression filter,NSF)或其任意组合。例如,环路滤波器单元220可以包括去块效应滤波器、SAO滤波器和ALF滤波器。滤波过程可以按照去块效应滤波器、SAO滤波器和ALF滤波器的顺序执行。再例如,增加一种称为亮度映射与色度缩放(luma mapping with chroma scaling,LMCS)(即自适应环内整形器)的过程。该过程在去块效应滤波之前执行。再例如,去块效应滤波器过程也可以应用于内部子块边缘,例如仿射子块边缘、ATMVP子块边缘、子块变换(sub-block transform,SBT)边缘和帧内子分割(intra sub-partition,ISP)边缘。尽管环路滤波器单元320在图3中示出为环内滤波器,但是在其它配置中,环路滤波器单元320可以实现为环后滤波器。
JVET-P0080和JVET-O0630提出了一种新的环内滤波器,称之为跨分量ALF滤波器,此处也称为CC-ALF或CCALF。CC-ALF运行为自适应环路滤波器过程的一部分,并利用亮度样本值来修正每个色度分量(即Cr分量或Cb分量,例如,第一色度分量(即Cb分量),第二色度分量(即Cr分量))。CC-ALF的工作方式是:为色度分量的每个色度样本针对亮度分量应用菱形滤波器,然后将输出的滤波值用作色度ALF过程的输出的校正值。
跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)可以分别用作环路滤波器并用于后处理步骤。
解码图像缓冲区
然后,将图像的经解码视频块321存储在解码图像缓冲区330中,其中,解码图像缓冲区330存储经解码图像331作为参考图像,以便后续对其它图像进行运动补偿和/或进行输出并显示。
解码器30可以用于通过输出端312等输出经解码图像311,以向用户呈现或供用户查看。
预测
帧间预测单元344的功能可以与帧间预测单元244(特别是运动补偿单元)相同,帧内预测单元354的功能可以与帧间预测单元254相同,并根据从经编码图像数据21(例如通过熵解码单元304等进行解析和/或解码)接收的分割方式和/或预测参数或相应的信息来执行划分或分割决策并进行预测。模式应用单元360可以用于根据重建图像、块或相应的样本(经滤波或未经滤波)对每个块执行预测(帧内预测或帧间预测),得到预测块365。
当视频条带被译码为经帧内译码(I)条带时,模式应用单元360中的帧内预测单元354用于根据指示(signal)的帧内预测模式和来自当前图像的先前经解码块的数据为当前视频条带的图像块生成预测块365。当视频图像被译码为经帧间译码(例如B或P)条带时,模式应用单元360的帧间预测单元344(例如运动补偿单元)用于根据运动矢量和从熵解码单元304接收的其它语法元素为当前视频条带的视频块产生预测块365。对于帧间预测,可以根据其中一个参考图像列表内的其中一个参考图像产生这些预测块。视频解码器30可以根据存储在DPB 330中的参考图像,使用默认的构建技术来构建参考帧列表0和列表1。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或由这些实施例应用,例如,视频可以使用I、P或B分块组和/或分块进行译码。
模式应用单元360可以用于通过解析运动矢量或相关信息以及其它语法元素,为当前视频条带的视频块确定预测信息,并使用该预测信息为正在解码的当前视频块产生预测块。例如,模式应用单元360使用接收到的一些语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如帧内预测或帧间预测)、帧间预测条带类型(例如B条带、P条带或GPB条带)、用于条带的一个或多个参考图像列表的构建信息、用于条带的每个经帧间编码视频块的运动矢量、用于条带的每个经帧间译码视频块的帧间预测状态以及其它信息,以对当前视频条带中的视频块进行解码。除条带(例如视频条带)之外或作为条带的替代,相同或类似的过程可以应用于使用分块组(例如视频分块组)和/或分块(例如视频分块)的实施例或由这些实施例应用,例如,视频可以使用I、P或B分块组和/或分块进行译码。
在一些实施例中,图3所示的视频解码器30可以用于使用条带(也称为视频条带)对图像进行分割和/或解码,其中,可以使用一个或多个条带(通常为不重叠的条带)对图像分割或解码,并且每个条带可以包括一个或多个块(例如CTU)、一个或多个块组(例如分块(H.265/HEVC和VVC)或砖(VVC))。
在一些实施例中,图3所示的视频解码器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子块的MV)的值进行限制,使得这四个4×4子块的MV的整数部分之间的最大差值不超过N个像素,例如不超过1个像素。这里提供了两种根据bitDepth来限制运动矢量的方法。
图4为本发明实施例提供的一种视频译码设备400的示意图。该视频译码设备400适用于实现本文中描述的公开实施例。在一个实施例中,该视频译码设备400可以是解码器(例如图1A中的视频解码器30)或编码器(例如图1A中的视频编码器20)。
视频译码设备400包括:用于接收数据的入端口410(或输入端口410)和接收单元(Rx)420;用于处理数据的处理器、逻辑单元或中央处理器(central processing unit,CPU)430;用于发送数据的发送单元(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到不同状态的转换。可选地,译码模块470实现为存储在存储器460中并由处理器430执行的指令。
存储器460可以包括一个或多个磁盘、一个或多个磁带机以及一个或多个固态硬盘,并且可以用作溢出数据存储设备,以在选择程序来执行时存储这些程序并且存储在执行程序的过程中读取的指令和数据。例如,存储器460可以是易失性和/或非易失性的,并且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、三态内容寻址存储器(ternary content-addressable memory,TCAM)和/或静态随机存取存储器(static random-access memory,SRAM)。
图5为示例性实施例提供的装置500的简化框图,其中,该装置500可以用作图1中的源设备12和目的地设备14中的任一者或两者。
装置500中的处理器502可以是中央处理单元。可选地,处理器502可以是现有的或今后将开发出的能够操作或处理信息的任何其它类型的设备或多个设备。虽然可以使用如图所示的处理器502等单个处理器来实现所公开的实现方式,但是可以通过使用多个处理器来提高速度和效率。
在一种实现方式中,装置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可以通过多种配置实现。
本发明实施例详细描述如下:
视频译码可以根据颜色空间和颜色格式执行。例如,彩色视频在多媒体系统中发挥着重要作用,其中的各种颜色空间用于高效地表示颜色。颜色空间通过多个分量表示具有数值的颜色。常见的颜色空间有RGB颜色空间,其中的颜色表示为三原色分量值(即,红色、绿色和蓝色)的组合。YCbCr颜色空间已广泛用于彩色视频压缩,如伦敦威斯敏斯特大学技术系的A.Ford和A.Roberts于1998年8月发表的“颜色空间转换(Colour spaceconversions)”中所述。
YCbCr可以很容易通过线性变换从RGB颜色空间转换而来,而且不同分量之间的冗余,即跨分量冗余,在YCbCr颜色空间中明显降低。YCbCr的一个优点是后向兼容黑白电视,这是因为由Y信号传递亮度信息。另外,色度带宽可以通过以4:2:0色度采样格式对Cb和Cr分量进行子采样而减少,这种子采样的主观影响明显小于RGB颜色空间中的子采样。由于这些优点,YCbCr一直是视频压缩中的主流色彩空间。视频压缩中还存在其它颜色空间,例如YCoCg。在本发明中,无论实际使用的是哪种颜色空间,亮度(或L或Y)和两个色度(Cb和Cr)都是用于表示视频压缩方案中的三个颜色分量。
例如,当色度格式采样结构为4:2:0时,两个色度阵列的高度和宽度均为亮度阵列的高度和宽度的一半。图像中亮度样本和色度样本的标称垂直和水平相对位置如图9A所示。图9B示出了4:2:0采样的示例。图9B示出了共址亮度块和色度块的示例。如果视频格式为YUV4:2:0,则存在一个16x16的亮度块和两个8x8的色度块。
具体地,一个编码块(coding block)或变换块(transform block)包括一个亮度块和两个色度块。如图所示,亮度块中包括的样本是色度块中的4倍。具体地,色度块包括N个样本×N个样本,而亮度块包括2N个样本×2N个样本。因此,亮度块的分辨率是色度块的4倍。例如,当使用YUV4:2:0格式时,可以按因子4(例如宽度除以2且高度除以2)对亮度样本进行下采样。YUV是一种颜色编码系统,其采用包括亮度分量Y和两个色度分量U和V的颜色空间。
图像头:
VVC标准中新引入了图像头的概念(如JVET-P1006、JVET-P0095、JVET-P0120、JVET-P0239所示)。关于图像头的语法,参见JVET-P2001-VE第7.3.2.6节。
当前的VVC草案提出了一个必备须图像头的概念,图像头作为图像的第一个VCLNAL单元通过每个图像传输一次。当前VVC草案还提出将条带头中当前存在的少量语法元素移到该图像头中。语法元素被移到图像头中,在功能上只需要通过每个图像传输一次,而无需针对某个图像传输多次,例如,条带头中的语法元素通过每个条带传输一次。处理条带头所需的计算可能是总体吞吐量的一个限制因素,因此,将语法元素从条带头中移出是有益处的。
对于自适应环路滤波器(adaptive loop filter,ALF),在图像头中引入了以下语法元素(ALF相关语法元素):
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000261
Figure BDA0003709883050000271
此处,语法元素为pic_alf_enabled_present_flag、pic_alf_enabled_flag、pic_num_alf_aps_ids_luma、pic_alf_aps_id_luma[i]、pic_alf_chroma_idc和pic_alf_aps_id_chroma。这些语法元素在图像头中提供,其存在与否可能取决于先前指示或以其它方式指示的其它语法元素。例如,sps_alf_enabled_flag和ChromaArrayType为此类其它语法元素。
在下文中,在表中用描述符表示和/或以粗体形式提供的任何语法元素均为在当前语法结构中进行指示或提供的语法元素。
在条带头中为ALF引入了以下语法变化。
7.3.7.1通用条带头语法
Figure BDA0003709883050000272
Figure BDA0003709883050000281
ALF图像头条目和条带头条目的语义如下所述:
pic_alf_enabled_present_flag等于1表示图像头(PH)中存在pic_alf_enabled_flag、pic_num_alf_aps_ids_luma、pic_alf_aps_id_luma[i]、pic_alf_chroma_idc和pic_alf_aps_id_chroma;pic_alf_enabled_present_flag等于0表示PH中不存在pic_alf_enabled_flag、pic_num_alf_aps_ids_luma、pic_alf_aps_id_luma[i]、pic_alf_chroma_idc和pic_alf_aps_id_chroma。当pic_alf_enabled_present_flag不存在时,则推断pic_alf_enabled_present_flag等于0。
pic_alf_enabled_flag等于1表示为与PH关联的所有条带开启自适应环路滤波器,并且自适应环路滤波器可以应用于所述条带中的Y、Cb或Cr颜色分量;pic_alf_enabled_flag等于0表示可以为与PH关联的一个、多个或所有条带关闭自适应环路滤波器。当pic_alf_enabled_flag不存在时,则推断pic_alf_enabled_flag等于0。
pic_num_alf_aps_ids_luma表示与PH关联的条带所参考的ALF APS的数量。
pic_alf_aps_id_luma[i]表示与PH关联的条带的亮度分量所参考的第i个ALFAPS的adaptation_parameter_set_id。
对于aps_params_type等于ALF_APS且adaptation_parameter_set_id等于pic_alf_aps_id_luma[i]的APS NAL单元,其alf_luma_filter_signal_flag的值应等于1。
pic_alf_chroma_idc等于0表示自适应环路滤波器不应用于Cb和Cr颜色分量;pic_alf_chroma_idc等于1表示自适应环路滤波器应用于Cb颜色分量;pic_alf_chroma_idc等于2表示自适应环路滤波器应用于Cr颜色分量;pic_alf_chroma_idc等于3表示自适应环路滤波器应用于Cb和Cr颜色分量。当pic_alf_chroma_idc不存在时,则推断pic_alf_chroma_idc等于0。
pic_alf_aps_id_chroma表示与PH关联的条带的色度分量所参考的ALF APS的adaptation_parameter_set_id。
对于aps_params_type等于ALF_APS且adaptation_parameter_set_id等于pic_alf_aps_id_chroma的APS NAL单元,其alf_chroma_filter_signal_flag的值应等于1。
slice_alf_enabled_flag等于1表示自适应环路滤波器被开启,并且可以应用于条带中的的Y、Cb或Cr颜色分量;slice_alf_enabled_flag等于0表示为条带中的所有颜色分量关闭自适应环路滤波器。当slice_alf_enabled_flag的值不存在时,则推断slice_alf_enabled_flag的值等于pic_alf_enabled_flag的值。
slice_num_alf_aps_ids_luma表示条带所参考的ALF APS的数量。当slice_alf_enabled_flag等于1且slice_num_alf_aps_ids_luma不存在时,则推断slice_num_alf_aps_ids_luma的值等于pic_num_alf_aps_ids_luma的值。
slice_alf_aps_id_luma[i]表示条带的亮度分量所参考的第i个ALF APS的adaptation_parameter_set_id。对于aps_params_type等于ALF_APS且adaptation_parameter_set_id等于slice_alf_aps_id_luma[i]的APS NAL单元,其TemporalId应小于或等于经译码条带NAL单元的TemporalId。当slice_alf_enabled_flag等于1且slice_alf_aps_id_luma[i]不存在时,则推断slice_alf_aps_id_luma[i]的值等于pic_alf_aps_id_luma[i]的值。
对于aps_params_type等于ALF_APS且adaptation_parameter_set_id等于slice_alf_aps_id_luma[i]的APS NAL单元,其alf_luma_filter_signal_flag的值应等于1。
slice_alf_chroma_idc等于0表示自适应环路滤波器不应用于Cb和Cr颜色分量;slice_alf_chroma_idc等于1表示自适应环路滤波器应用于Cb颜色分量;slice_alf_chroma_idc等于2表示自适应环路滤波器应用于Cr颜色分量;slice_alf_chroma_idc等于3表示自适应环路滤波器应用于Cb和Cr颜色分量。当slice_alf_chroma_idc不存在时,则推断slice_alf_chroma_idc的值等于pic_alf_chroma_idc的值。
slice_alf_aps_id_chroma表示条带的色度分量所参考的ALF APS的adaptation_parameter_set_id。对于aps_params_type等于ALF_APS且adaptation_parameter_set_id等于slice_alf_aps_id_chroma的APS NAL单元,其TemporalId应小于或等于经译码条带NAL单元的TemporalId。当slice_alf_enabled_flag等于1且slice_alf_aps_id_chroma不存在时,则推断slice_alf_aps_id_chroma的值等于pic_alf_aps_id_chroma的值。
对于aps_params_type等于ALF_APS且adaptation_parameter_set_id等于slice_alf_aps_id_chroma的APS NAL单元,其alf_chroma_filter_signal_flag的值应等于1。
如上所述,当所有条带具有相同的ALF滤波数据时,则在图像头中对所有条带中的公共ALF滤波数据仅传输一次,而不是在每个条带头中分别传输ALF滤波数据。这样传输的结果是所有条带从图像头继承ALF滤波数据。这样,减少了条带头的开销(以比特数而言)。
本发明收集了CCALF的所有公共语法元素,这些语法元素在图像的每个条带头中进行指示,并在图像头中进行定义。本发明尝试将ALF信令的相同原理也扩展到跨分量ALF(cross component ALF,CCALF)。目前,对于CCALF,每个条带头必须以传统方式传输以下信息:
7.3.7.1通用条带头语法
Figure BDA0003709883050000291
Figure BDA0003709883050000301
因此,即使给定图像的所有条带中的信息都相同,每个条带也必须传输上述所有语法元素。
因此,为了减少条带头的开销,本发明还定义了用于CCALF的图像头条目。
1.1本发明要解决的技术问题
本发明引入了用于CCALF的图像头条目,以减少条带开销。如图7所示,条带1至条带N包括相同的CCALF滤波器信息7001。由于每个条带头必须传输相同的数据,从而导致冗余并且产生了条带位信令开销。如图8所示,引入了用于CCALF的图像头条目8001,以消除CCALF数据中的冗余。所述图像头条目定义了公共CCALF数据(即CCALF相关信息),且所有条带都可以继承该公共信息8002,从而消除了信令中的冗余,减少了条带头的解析开销。
1.2本发明技术实现的实施例
需要说明的是,公开为“可选”的以下实施例中的每一个实施例可以是结合任何其它(可选)实施例提供的,并且具体地可以通过任何上述设备来实现,例如上述图中提到的编码器和/或解码器。
1.2.1可选实施例1
第一步,引入了一个新的序列参数集(sequence parameter set,SPS)语法元素,称为“第二语法元素”(例如下文表示为sps_ccalf_enabled_flag),该语法元素控制是否开启CCALF。该语法如下所述:第二语法元素(sps_ccalf_enabled_flag)对ALF操作和CCALF操作进行完全解耦,从而使得ALF和CCALF可以在序列级别分别开启或关闭。
7.3.2.3序列参数集RBSP语法
Figure BDA0003709883050000302
此处,sps_alf_enabled_flag是第一语法元素的一个示例,其中,第一语法元素同样是在SPS级别语法中提供的。第一语法元素和第二语法元素可以如上表所示彼此独立地进行指示。但是,例如,如下述可选实施例5所述,第二语法元素也可以根据例如第一语法元素具有或采用的值进行指示。
新的图像头条目(以粗斜体表示)如下所述:
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000311
Figure BDA0003709883050000321
这里,在图像头中引入了其它语法元素,其中,只有当第一语法元素和/或第二语法元素采用特定值时,这些其它语法元素才可能存在。这表示为“if”语法,具体取决于第一语法元素和/或第二语法元素的值。
具体地,可以根据第二语法元素的值在图像头中提供第三语法元素(这里表示为pic_ccalf_enabled_flag)。该语法元素可以表示(如下文所述)是否为当前图像开启CCALF。
根据第二语法元素,还可以在图像头中提供第四语法元素(如pic_cross_component_alf_cb_enabled_flag)。
例如,根据第二语法元素的值和/或第三语法元素的值和/或第四语法元素,可以提供第五语法元素如pic_cross_component_alf_cb_aps_id。此外,还可以根据第二语法元素和/或第三语法元素和/或第四语法元素在图像头中提供第六语法元素(这里表示为pic_cross_component_cb_filters_signalled_minus1)。
同时,可以根据第二语法元素和/或第三语法元素提供第七语法元素(上表中表示为pic_cross_component_alf_cr_enabled_flag)。
例如,根据第七语法元素的值,还可能根据第二语法元素和/或第三语法元素,可以提供第八语法元素(如pic_cross_component_alf_cr_aps_id)和/或第九语法元素(如pic_cross_component_cr_filters_signalled_minus1)。
稍后将说明第一语法元素至第九语法元素的含义以及第十语法元素至第十四语法元素的含义。
条带头语法如下所述:
7.3.7.1通用条带头语法
Figure BDA0003709883050000322
Figure BDA0003709883050000331
如上所述,在一些实施例中,只有在图像头中提供的第一语法元素和/或第二语法元素和/或一个或多个其它语法元素取适当的值时,才可以在条带头语法中提供其它语法元素。
具体地,如上所示,可以根据第二语法元素的值,还可能根据第十四语法元素(在SPS级别可选地提供,这里表示为ChromaArrayType,且第十四语法元素不等于0时)提供第十语法元素如slice_cross_component_alf_cb_enabled_flag。此外,可以根据第二语法元素的值和/或第十语法元素的值提供第十一语法元素,其中,第十一语法元素在上表中表示为slice_cross_component_alf_cb_aps_id。
相应地,可以根据第二语法元素的值,还可能根据第十四语法元素(不等于0时)提供第十二语法元素如slice_cross_component_alf_cr_enabled_flag。此外,可以根据第二语法元素的值和/或第十二语法元素的值提供第十三语法元素,其中,第十三语法元素在上表中表示为slice_cross_component_alf_cr_aps_id。
但是,还包括以下内容:条带头中提供的语法元素(特别是第十语法元素至第十三语法元素)可以独立于其它语法元素(如第二语法元素或第十四语法元素)的值而存在。具体地,基于上述描述,如果第一语法元素或第二语法元素或其它语法元素表示CC-ALF未被开启,则条带头中与CC-ALF有关的语法元素(例如,第十语法元素至第十三语法元素)均取默认值。
新引入的语法元素的语义如下所述:
第二语法元素在这里表示为sps_ccalf_enabled_flag。这只是示例性的,对本发明不构成限制。在一些实施例中,第二语法元素的值等于0表示为当前视频序列关闭跨分量自适应环路滤波器。第二语法元素的值等于1表示为当前视频序列开启跨分量自适应环路滤波器。
pic_ccalf_enabled_present_flag等于1表示PH(图像头)中存在pic_ccalf_enabled_flag、pic_cross_component_alf_cb_enabled_flag、pic_cross_component_alf_cb_aps_id、pic_cross_component_alf_cb_filter_count_minus1、pic_cross_component_alf_cr_enabled_flag、pic_cross_component_alf_cr_aps_id和pic_cross_component_alf_cr_filter_count_minus1;pic_alf_enabled_present_flag等于0表示PH中不存在pic_ccalf_enabled_flag、pic_cross_component_alf_cb_enabled_flag、pic_cross_component_alf_cb_aps_id、pic_cross_component_alf_cb_filter_count_minus1、pic_cross_component_alf_cr_enabled_flag、pic_cross_component_alf_cr_aps_id和pic_cross_component_alf_cr_filter_count_minus1。当pic_ccalf_enabled_present_flag不存在时,则推断pic_ccalf_enabled_present_flag等于0。
第三语法元素的值(这里表示为pic_ccalf_enabled_flag)等于1表示为与PH关联的所有条带开启跨分量自适应环路滤波器,并且该跨分量自适应环路滤波器可以应用于这些条带中的Cb或Cr颜色分量。第三语法元素的值等于0表示可以为与PH(图像头)关联的一个或多个或所有条带关闭跨分量自适应环路滤波器。当第三语法元素的值不存在时,则可以推断第三语法元素的值等于0。
上述第四语法元素在这里可以表示为pic_cross_component_alf_cb_enabled_flag。第四语法元素的值等于0表示跨分量Cb滤波器不应用于与PH关联的所有条带的Cb颜色分量。第四语法元素的值等于1表示跨分量Cb滤波器应用于与PH关联的所有条带的Cb颜色分量。当第四语法元素不存在时,则推断第四语法元素等于0。
第五语法元素在这里可以表示为pic_cross_component_alf_cb_aps_id。第五语法元素表示与PH关联的所有条带的Cb颜色分量所参考的adaptation_parameter_set_id。
第六语法元素在这里可以表示为pic_cross_component_cb_filters_signalled_minus1。第六语法元素的值加1表示与PH关联的所有条带的跨分量Cb滤波器的数量。第六语法元素的值应在0~3的范围内。
当第四语法元素等于1时,码流一致性的要求为:第六语法元素的值应小于或等于当前图像的第五语法元素所参考的ALF APS中alf_cross_component_cb_filters_signalled_minus1的值。
上述第七语法元素表示为pic_cross_component_alf_cr_enabled_flag。第七语法元素的值等于0表示跨分量Cr滤波器不应用于与PH关联的所有条带的Cr颜色分量。第七语法元素的值等于1表示跨分量Cr滤波器应用于与PH关联的所有条带的Cr颜色分量。当第七语法元素不存在时,则推断第七语法元素等于0。
上述第八语法元素示例性地表示为pic_cross_component_alf_cr_aps_id。第八语法元素的值旨在指示与PH关联的所有条带的Cr颜色分量所参考的adaptation_parameter_set_id。
此外,上述第九语法元素可以表示为pic_cross_component_cr_filters_signalled_minus1。第九语法元素的值加1表示与PH关联的所有条带的跨分量Cr滤波器的数量。第九语法元素的值应在0~3的范围内。
当第七语法元素等于1时,码流一致性的要求为:第九语法元素的值应小于或等于当前图像的第八语法元素所参考的ALF APS中alf_cross_component_cr_filters_signalled_minus1的值。
CCALF条带头语法元素的语义进一步细化如下:
slice_ccalf_enabled_flag等于1表示跨分量自适应环路滤波器被开启,并且可以应用于条带中的Cb或Cr颜色分量;slice_alf_enabled_flag等于0表示为条带中的所有颜色分量关闭跨分量自适应环路滤波器。当slice_ccalf_enabled_flag的值不存在时,则推断slice_ccalf_enabled_flag的值等于第三语法元素的值。
上述第十语法元素可以表示为slice_cross_component_alf_cb_enabled_flag。基于上述描述,第十语法元素的值等于0表示跨分量Cb滤波器不应用于Cb颜色分量。第十语法元素等于1表示跨分量Cb滤波器应用于Cb颜色分量。当第十语法元素不存在时,则推断第十语法元素等于第四语法元素(如pic_cross_component_alf_cb_enabled_flag)的值。
上述第十一语法元素可以表示为slice_cross_component_alf_cb_aps_id。第十一语法元素的值表示条带的Cb颜色分量所参考的adaptation_parameter_set_id。
当第十语法元素的值等于1时,码流一致性的要求为:对于当前图像的所有条带,第十一语法元素所参考的ALF APS应相同。
当第十语法元素等于1且第十一语法元素不存在时,则推断第十一语法元素的值等于第五语法元素的值。
slice_cross_component_cb_filters_signalled_minus1加1表示跨分量Cb滤波器的数量。slice_cross_component_cb_filters_signalled_minus1的值应在0~3的范围内。
当第十语法元素等于1时,码流一致性的要求为:slice_cross_component_cb_filters_signalled_minus1的值应小于或等于当前条带的第十一语法元素所参考的ALFAPS中alf_cross_component_cb_filters_signalled_minus1的值。
当第十语法元素等于1且第十一语法元素不存在时,则推断slice_cross_component_cb_filters_signalled_minus1的值等于pic_cross_component_cb_filters_signalled_minus1的值。
上述第十二语法元素可以表示为slice_cross_component_alf_cr_enabled_flag。第十二语法元素的值等于0表示跨分量Cr滤波器不应用于Cr颜色分量。第十二语法元素的值等于1表示跨分量自适应环路滤波器应用于Cr颜色分量。当第十二语法元素不存在时,则推断第十二语法元素的值等于第七语法元素(如pic_cross_component_alf_cr_enabled_flag)的值。
上述第十三个语法元素还可以表示为slice_cross_component_alf_cr_aps_id。第十三语法元素的值表示条带的Cr颜色分量所参考的adaptation_parameter_set_id。
当第十二语法元素的值等于1时,码流一致性的要求为:对于当前图像的所有条带,第十三语法元素所参考的ALF APS应相同。
当第十二语法元素的值等于1且第十三语法元素不存在时,则推断第十三语法元素的值等于第八语法元素的值。
slice_cross_component_cr_filters_signalled_minus1加1表示跨分量Cr滤波器的数量。slice_cross_component_cr_filters_signalled_minus1的值应在0~3的范围内。
当第十二语法元素等于1时,码流一致性的要求为:slice_cross_component_cr_filters_signalled_minus1的值应小于或等于当前条带的第十三语法元素所参考的参考ALF APS中alf_cross_component_cr_filters_signalled_minus1的值。
当第十二语法元素等于1且第十三语法元素不存在时,则推断slice_cross_component_cr_filters_signalled_minus1的值等于pic_cross_component_cr_filters_signalled_minus1的值。。
可选实施例2
在可选实施例2中,不再引入SPS级别的第二语法元素(如sps_ccalf_enabled_flag),因此第一语法元素(如sps_alf_enabled_flag)还控制ccalf滤波器的应用。
可选实施例2中的语法如下所述:
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000361
Figure BDA0003709883050000371
在该第二实施例中,可以在SPS级别提供第二语法元素,其中,第二语法元素可以为sps_ccalf_enabled_flag。在本实施例中,是否开启CCALF可以根据其它语法元素如pic_ccalf_enabled_present_flag进行指定,该其它语法元素表示是否存在与CCALF有关的其它语法元素,并且从该语法元素还可以获知要为与pic_ccalf_enabled_present_flag有关的当前图像开启CCALF。
条带头语法如下所述:
7.3.7.1通用条带头语法
Figure BDA0003709883050000372
Figure BDA0003709883050000381
由上表可见,条带头中的语法元素例如slice_ccalf_enabled_flag、slice_cross_component_alf_cb_enabled_flag、slice_cross_component_alf_cb_aps_id、slice_cross_component_cb_filters_signalled_minus1、slice_cross_component_alf_cr_enabled_flag、slice_cross_component_alf_cr_aps_id和slice_cross_component_cr_filters_signalled_minus1,和/或上述所参考的第十语法元素至第十三语法元素的存在可以取决于在SPS级别所提供的第一语法元素如sps_alf_enabled_flag和图像头中提供的语法元素如pic_ccalf_enabled_present_flag,而且还可能取决于条带头中提供的其它语法元素如slice_ccalf_enabled_flag。
可选实施例3
用于CCALF图像头条目的另一个可选方案如下:在该可选方案中,通过pic_alf_enabled_present_flag和pic_alf_enabled_flag分别控制CCALF图像头条目和CCALF条带头条目。
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000382
Figure BDA0003709883050000391
条带头语法如下所述:
7.3.7.1通用条带头语法
Figure BDA0003709883050000392
Figure BDA0003709883050000401
需要说明的是!(0)=1或者!(1)=0。
可选实施例4
由于CCALF的当前设计中有一个限制,即slice_cross_component_alf_cb_aps_id和slice_cross_component_alf_cr_aps_id在所有条带中都应相同,因此,在条带头中重复该语法元素是没有意义的,但是可以只在图像头中指示pic_cross_component_alf_cb_aps_id和pic_cross_component_alf_cr_aps_id。然后,可以推断语法元素slice_cross_component_alf_cb_aps_id和slice_cross_component_alf_cr的值与pic_cross_component_alf_cb_aps_id和pic_cross_component_alf_cr_aps_id的值相同。因此,可以进一步减少码流中信息的量。
可能的语法如下所述:
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000411
Figure BDA0003709883050000421
这里,根据在SPS级别指示的第二语法元素(即本实施例中的sps_ccalf_enabled_flag)的值,提供与CCALF有关的其它语法元素(即至少包括元素ccalf或cross_component_alf或cc_alf的语法元素)。
具体地,可以根据第二语法元素的值在图像头中提供第三语法元素如pic_ccalf_enabled_flag,其中,该第三语法元素可以表示是否为当前图像的条带开启CCALF。
此外,可以根据第二语法元素的值在图像头中提供第四语法元素如pic_cross_component_alf_cb_enabled_flag和第七语法元素如pic_cross_component_alf_cb_enabled_flag。
条带头语法可以如下所述:
7.3.7.1通用条带头语法
Figure BDA0003709883050000422
Figure BDA0003709883050000431
同样,对于本实施例,可以了解的是,可以根据在SPS级别提供的第二语法元素的值和/或根据在图像头中提供的与CCALF有关的一个或多个语法元素如pic_ccalf_enabled_present_flag的值提供条带头中的与CCALF有关的语法元素。
可以始终推断slice_cross_component_alf_cb_aps_id的值与pic_cross_component_alf_cb_aps_id的值相同。
可以始终推断slice_cross_component_alf_cr_aps_id的值与pic_cross_component_alf_cr_aps_id的值相同。
其它可能的语法如下所述:
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000432
Figure BDA0003709883050000441
在上表所示的语法中,与CCALF有关的语法元素的存在取决于在SPS级别提供的第一语法元素的值,如sps_alf_enabled_flag的值。在本实施例中,第二语法元素如sps_ccalf_enabled_flag可以在SPS级别提供,也可以不在SPS级别提供。
条带头语法可以如下所述:
7.3.7.1通用条带头语法
Figure BDA0003709883050000451
可以始终推断slice_cross_component_alf_cb_aps_id的值与pic_cross_component_alf_cb_aps_id的值相同。
可以始终推断slice_cross_component_alf_cr_aps_id的值与pic_cross_component_alf_cr_aps_id的值相同。
其它可能的语法如下所述:
图像头RBSP语法
Figure BDA0003709883050000461
条带头语法如下所述:
7.3.7.1通用条带头语法
Figure BDA0003709883050000471
本实施例中,可以始终推断slice_cross_component_alf_cb_aps_id的值与pic_cross_component_alf_cb_aps_id的值相同。
在本实施例中,可以始终推断第十二语法元素(如slice_cross_component_alf_cr_aps_id)的值与第八语法元素(如pic_cross_component_alf_cr_aps_id)的值相同。
可选实施例5
其它可能的可选语法如下所述:在该语法中,CCALF参数根据如上文所述的第二语法元素的值有条件地进行指示。该第二语法元素可以提供为一个标志,或者可以包括一个标志,例如sps_ccalf_enabled_flag。
序列参数集RBSP语法
Figure BDA0003709883050000481
Figure BDA0003709883050000491
Figure BDA0003709883050000501
Figure BDA0003709883050000511
Figure BDA0003709883050000521
Figure BDA0003709883050000531
Figure BDA0003709883050000541
由上表可见,第二语法元素sps_ccalf_enabled_flag是根据第一语法元素sps_alf_enabled_flag的值以及可选地根据第十四语法元素如ChromaArrayType提供的。具体地,在一些实施例中,如果第十四语法元素取不等于零的值,则可以对第二语法元素进行指示。
7.3.2.3序列参数集RBSP语法
Figure BDA0003709883050000542
需要注意的是,ChromaArrayType!=0,即ChromaArrayType不是亮度分量,也不是Cb或Cr色度分量
ChromaArrayType表示相对于亮度采样的色度采样,如下表所示。
ChromaArrayType 色度格式
0 黑白
1 4:2:0
2 4:2:2
3 4:4:4
在黑白采样中,只有一个样本阵列,名义上是亮度阵列。
在4:2:0采样中,两个色度阵列的每个色度阵列的高度和宽度分别为亮度阵列的高度和宽度的一半。
在4:2:2采样中,两个色度阵列的每个色度阵列的高度与亮度阵列的高度相同,宽度为亮度阵列的宽度的一半。
在4:4:4采样中,两个色度阵列的每个色度阵列的高度和宽度分别与亮度阵列的高度和宽度相同。
如上表所示,如果第一语法元素表示为“true(真)”,即在第一语法元素为sps_alf_enabled_flag并表示ALF将被开启的情况下,则提供第二语法元素。此外,如果第十四语法元素的值不等于0,则提供第二语法元素。
1.1.1.1序列参数集RBSP语法
Figure BDA0003709883050000551
Figure BDA0003709883050000561
Figure BDA0003709883050000571
Figure BDA0003709883050000581
Figure BDA0003709883050000591
Figure BDA0003709883050000601
Figure BDA0003709883050000611
1.1.1.2图像参数集RBSP语法
Figure BDA0003709883050000612
Figure BDA0003709883050000621
Figure BDA0003709883050000631
Figure BDA0003709883050000641
Figure BDA0003709883050000651
通用约束信息语法
Figure BDA0003709883050000652
Figure BDA0003709883050000661
7.3.3.2通用约束信息语法
Figure BDA0003709883050000662
需要注意的是,!(0)=1,!(1)=0
7.3.2.4图像参数集RBSP语法
图像头RBSP语法
Figure BDA0003709883050000671
Figure BDA0003709883050000681
Figure BDA0003709883050000691
Figure BDA0003709883050000701
Figure BDA0003709883050000711
Figure BDA0003709883050000721
Figure BDA0003709883050000731
alf_present_in_ph_flag等于1表示参考PPS的PH(图像头)中可能存在用于开启使用ALF的语法元素;alf_present_in_ph_flag等于0表示参考PPS的条带头中可能存在用于开启使用ALF的语法元素。
7.3.2.6图像头RBSP语法
Figure BDA0003709883050000732
Figure BDA0003709883050000741
如上表所示,图像头中与CCALF有关的其它语法元素如第四语法元素(如pic_cross_component_alf_cb_enabled_flag)和第七语法元素(如pic_cross_component_alf_cr_enabled_flag)的存在可以取决于第二语法元素的存在和/或值。第五语法元素如pic_cross_component_alf_cb_aps_id的存在可以取决于第二语法元素和/或第四语法元素的存在和/或值,而第八语法元素如pic_cross_component_alf_cr_aps_id的存在和/或值可以取决于第二语法元素的存在和/或值和/或第七语法元素的存在和/或值。
7.3.7.1通用条带头语法
Figure BDA0003709883050000742
Figure BDA0003709883050000751
在上表中,与CCALF有关的其它语法元素也可以取决于第二语法元素的存在和/值。例如,可以根据第二语法元素提供第十语法元素如slice_cross_component_alf_cb_enabled_flag;可以根据该第十语法元素的存在和/值和/或第二语法元素提供第十一语法元素如slice_cross_component_alf_cb_aps_id。此外,可以根据第二语法元素的值在条带头中提供第十二语法元素如slice_cross_component_alf_cr_enabled_flag;可以根据第十二语法元素的存在和/或值和/或根据第二语法元素在条带头中提供第十三语法元素如slice_cross_component_alf_cr_aps_id。
需要注意的是,!(0)=1,!(1)=0
if(sps_alf_enabled_flag&&!alf_present_in_ph_flag)是指“如果sps_alf_enabled_flag为true(真)且如果alf_present_in_ph_flag为false(假)”。
条带头语法
通用条带头语法
Figure BDA0003709883050000752
Figure BDA0003709883050000761
Figure BDA0003709883050000771
Figure BDA0003709883050000781
Figure BDA0003709883050000791
在上表中,一些元素显示为带删除线的形式。这意味着在第一实施例中,这些元素可能存在。在另一实施例中,这些元素可能被删除,而其余语法元素保持原样。例如,可以不提供元素ChromaArrayType。相应地,可以在第一实施例中提供与该元素(ChromaArrayType)关联的任何依赖关系,包括其它语法元素的条件存在性。在另一实施例中,这种依赖关系不存在,导致例如这些语法元素在任何情况下都会存在;而在另一实施例中,这些语法元素仅在ChromaArrayType具有特定值时存在。
同样,可以完全不提供如slice_cross_component_cr_filters_signalled_minus1和slice_cross_component_cb_filters_signalled_minus1等语法元素(这与是否存在诸如ChromaArrayType等语法元素没有关联)。
新引入的语法元素的语义如下所述:
第二语法元素(如sps_ccalf_enabled_flag)的值等于0表示跨分量自适应环路滤波器被关闭。第一语法元素的值等于1表示跨分量自适应环路滤波器被开启。这也可以反过来描述,即,如果第二语法元素的值等于1,可以关闭CCALF;而如果第二语法元素的值等于0,可以开启CCALF。
no_ccalf_constraint_flag等于1表示第一语法元素(如sps_ccalf_enabled_flag)应等于0;no_ccalf_constraint_flag等于0表示不施加此类约束。
在本实施例中,滤波过程具体如下所述。
对于上述讨论的实施例,下文将对特定语法元素的含义以及这些语法元素取特定值时产生的结果进行一些通用性的讨论。下面公开的内容旨在被纳入上述实施例中的任何一个实施例,特别是可选实施例1至5。
8.8环内滤波器过程
8.8.1概述
……
4.当第一语法元素(上文中表示为sps_alf_enabled_flag)等于1时,以下情况适用:
–当第二语法元素(如sps_ccalf_enabled_flag)等于1时,重建图像样本阵列(在自适应环路滤波器之前)SL'被设置为等于重建图像样本阵列SL
–如第8.8.5.1节所述,调用自适应环路滤波器过程时,重建图像样本阵列SL和阵列SCb和SCr(当第十四语法元素(上表中被表示为ChromaArrayType)不等于0时)作为输入,修改后的重建图像样本阵列S'L和在自适应环路滤波器之后的阵列S'Cb和S'Cr(当第十四语法元素不等于0时)作为输出。
–阵列S'L和阵列S'Cb和S'Cr(当第十四语法元素不等于0时)被分别分配给阵列SL和阵列SCb和SCr(当第十四语法元素不等于0时)(这代表解码图像)。
–当第二语法元素(如sps_ccalf_enabled_flag)等于1时,以下情况适用:
–如第x.x.x.x.x条所述,调用跨分量自适应环路滤波器过程时,重建图像样本阵列SL和,阵列SCb和SCr(当第十四语法元素(如ChromaArrayType)不等于0时)作为输入,修改后的重建图像样本阵列S'L和在跨分量自适应环路滤波器之后的阵列S'Cb和S'Cr(当第十四语法元素不等于0时)作为输出。
–阵列S'L和阵列S'Cb和S'Cr(当第十四语法元素不等于0时)被分别分配给阵列SL和阵列SCb和SCr(当第十四语法元素不等于0时)(这代表解码图像)。
需要说明的是,本发明并不限于这里提出的可选方案,而是以非常通用的方式支持在图像头中有条件地指示条带头中存在的CCALF数据。在图像头中使用CCALF数据的主要优点是减少了条带头中的信令开销。
本发明还涵盖了条带头中所指示的特定CCALF语法元素在所有条带中具有相同值的情况(例如,由于一些码流一致性要求),此时,该特定语法元素将不再在条带头中进行指示,而是仅在与所有条带关联的图像头中指示一次。
跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)可以分别用作环路滤波器并用于后处理步骤。
CC-ALF使用亮度样本值来修正每个色度分量。CC_ALF应用于亮度样本,以推导出色度样本滤波的校正因子。
JVET-P0080和JVET-O0630提出了一种新的环内滤波器,该环内滤波器称为跨分量ALF滤波器。CC-ALF运行为自适应环路滤波器过程的一部分,并利用亮度样本值来修正每个色度分量(Cr分量或Cb分量)。该工具由码流中的信息控制,该信息包括(a)用于每个色度分量的滤波器系数,和(b)控制样本块滤波器的应用的掩码。滤波器系数在自适应参数集(adaptation parameter set,APS)中进行指示,而块大小和掩码在条带级别进行指示。
可以理解的是,掩码是1比特(0或1)。这里,掩码表示样本块是否进行了滤波(掩码=1表示已滤波,掩码=0表示未滤波)。基本上,APS携带用于ALF和其它信息的系数。
CC-ALF的通用设计如图6(a)、图6(b)和图6(c)所示。该通用设计可以应用于涉及CC-ALF相关问题的上述实施例中的任何一个实施例。具体地,这里描述的内容旨在被纳入上述可选实施例1至5中的每一个实施例。
滤波器的放置位置如图6(a)所示(位于左侧)。滤波器的形状如图6(b)和图6(c)所示。
CC-ALF通过将线性菱形滤波器(图6b和6c)应用于每个色度分量的亮度通道来运行,表示为:
Figure BDA0003709883050000801
其中
(x,y)表示被修正的色度分量i的位置;
(xC,yC)表示基于(x,y)的亮度位置;
Si为用于色度分量i的亮度的滤波器;
ci(x0,y0)表示滤波器系数。
需要说明的是,当色度分量i为i=1时,存在第一色度分量(如cb颜色分量),当色度分量i为i=2时,存在第二色度分量(如cr颜色分量)。
CC-ALF的主要功能包括:
●基于亮度平面和色度平面之间的空间缩放因子计算亮度位置(xC,yC),围绕该亮度位置以支持区域为中心。基本上,CCALF使用亮度样本来修正色度样本。因此,滤波器应用于亮度样本,然后推导出色度的校正因子。
●所有滤波器系数均在APS中进行传输,具有8比特的动态范围。
●某APS可以在条带头中进行参考。
●用于条带的每个色度分量的CC-ALF系数也存储在时间子层对应的缓冲区中。采用条带级别标志,有利于重复使用这些时间子层滤波器系数集。可以理解的是,时间子层基本上是根据参考信息进行定义的。
●CC-ALF滤波器的应用通过可变的块大小进行控制,并且通过为每个样本块所接收的上下文编码标志进行指示。在条带级别为每个色度分量接收块大小以及CC-ALF开启标志。
●水平虚拟边界的边界填充被重复复用;而对于其余边界,使用与常规ALF相同类型的填充。
图8为引入了用于CCALF的图像头条目的一个框图,其中,所述图像头条目定义了公共的CCALF数据,且与图7相比,所有条带均可以继承该公共信息。
图16为数据结构5000的示意图。所述数据结构5000可以代表由图2中的编码器生成并由图3中的解码器接收的码流21的一部分。所述数据结构5000(即视频码流5000)可以包括VPS 5005、SPS 5010、PPS 5015,以及至少四个条带5020、5025、5030和5035。所述条带5020可以包括条带头5040和数据5045。所述条带5025、5030、5035与所述条带5020类似。所述数据5045可以包括至少三个块5050、5055和5060,即至少三个块5050、5055和5060的编码表示。虽然示出了四个条带5020-5035,但视频码流5000可以包括任何适当数量的条带。虽然示出了三个块5050-5060,但数据5045可以包括任何适当数量的块。此外,其余条带5025、5030、5035也分别包括块。因此,虽然所述视频码流5000包括如许多块的编码表示,但所述视频码流5000包括一个SPS 5010和明显少于块的条带头。应当理解的是,包括多个CC-ALF相关语法元素的码流也可以如图16所示。如上述和下述语法所示,清楚地描述了多个CC-ALF相关的语法元素。此外,上文和下文提到的语法和/或语义中清楚地描述了编码或解码码流的过程。
这里所示的码流可以通过使用上述实施例中的任何一个实施对视频序列进行编码得到。具体地,可以获得该码流,或者该码流可以包括语法元素,具体地,包括如上述可选实施例1至5中说明的与CC-ALF相关的语法元素。
图14为用于编码例如视频等的方法4200的流程图。例如,可以通过图12提供的编码器来实现该方法,还可以通过本文所公开的任何其它编码器和编码设备来执行该方法。
所述编码方法4200包括:4201:应用跨分量自适应环路滤波器(cross componentadaptive loop filter,CC-ALF)修正色度分量;4202:生成包括多个CC-ALF相关语法元素的码流,其中,所述多个CC-ALF相关语法元素表示CC-ALF相关信息。在步骤4202中生成的所述码流中,所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示。所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应滤波器的自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启跨分量自适应环路滤波器,并且所述第二语法元素在SPS级别进行指示。
图15为用于解码例如来自码流的视频等的方法4300的流程图。例如,可以通过图13提供的解码器来实现该方法4300,还可以通过本文所公开的任何其它解码器和解码设备来执行该方法4300。
所述方法4300包括:4301:从码流中解析出多个跨分量自适应环路滤波器(crosscomponent adaptive loop filter,CC-ALF)相关语法元素,其中,所述多个CC-ALF相关语法元素从序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个获得。所述多个CC-ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应滤波器的自适应环路滤波器(adaptive loopfilter,ALF),并且所述第一语法元素在SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启跨分量自适应环路滤波器,并且所述第二语法元素在SPS级别进行指示。所述方法4300还包括:步骤4302:通过所述多个CC-ALF相关语法元素中的至少一个语法元素执行CC-ALF过程。
在一个实施例中,提供了一种由编码设备实现的编码方法,该方法包括:
通过应用跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)执行滤波过程(例如,跨分量滤波过程);
生成包括多个CC-ALF相关语法元素的码流(例如,包括M个CC-ALF相关语法元素,其中,M>=1,且M为整数),其中,所述多个CC-ALF相关语法元素表示所述CC-ALF相关信息。
其中,所述多个CC-ALF相关语法元素在视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameterset,PPS)级别、图像头、条带头或分块头中的任何一个或多个进行指示;或者,所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别和/或图像头中进行指示。
通过该方法,可以提供尺寸减小的码流,因为例如与图像的所有条带相关的信息均可以通过图像头仅提供一次。
在一个实施例中,所述多个CC-ALF相关语法元素包括第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag或sps_alf_enabled_flag),其中,所述第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag)在序列参数集(sequence parameterset,SPS)级别进行指示。该指示符可以表示是否可以为整个序列开启ALF或CC-ALF或两者。
在另一个实施例中,所述第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag)表示是否在序列级别开启跨分量自适应环路滤波器(cross componentadaptive loop filter,CC-ALF),或者
所述第一语法元素(例如第一指示符,例如sps_alf_enabled_flag)表示是否在序列级别开启包括跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)的自适应环路滤波器(adaptive loop filter,ALF)。通过该第一语法元素,具体可以在序列级别为所有图像或序列的部分提供自适应环路滤波器的模式。
基于上述描述,所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1),或者所述第一语法元素具有第一值(true(真)或1)。通过该值,可以表示ALF和/或CC-ALF是否,较佳地,仅通过单个比特值进行开启。
在一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1),或者所述第一语法元素具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第二语法元素(例如第二指示符,例如pic_ccalf_enabled_present_flag),其中,所述第二语法元素(例如pic_ccalf_enabled_present_flag)在图像头中进行指示;或者
如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1),或者所述第一语法元素具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第九语法元素(例如第九指示符,例如pic_alf_enabled_present_flag),其中,所述第九语法元素(例如pic_alf_enabled_present_flag)在图像头中进行指示。
所述第一语法元素被设置为第一值时提供所述第二语法元素(相应地,对于第九语法元素类似)可以理解为是指仅仅或至少在所述第一语法元素具有第一值时提供相应的语法元素,而在任何其它情况下则不提供该相应的语法元素。然而,本实施例还可以包括:不管第一语法元素的值为多少,第二语法元素和第九语法元素都将被提供或者存在。这种含义可以应用于确定本文提到的所有其它语法元素是否存在,只要这些语法元素在另一语法元素取特定值时被认为是存在的。
通过第二语法元素和第九语法元素,可以表示是否通过减少的比特数为图像的条带开启ALF和/或CC-ALF。
在一个实施例中,所述第二语法元素(例如第二指示符,例如pic_ccalf_enabled_present_flag)表示图像头中是否存在第三语法元素和/或第四语法元素集。
基于上述描述,如所述果第二语法元素(例如pic_ccalf_enabled_present_flag)或第九语法元素(例如pic_alf_enabled_present_flag)被设置为第一值(true(真)或1),或者所述第二语法元素或第九语法元素具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第三语法元素(例如第三指示符,例如pic_ccalf_enabled_flag或pic_alf_enabled_flag),其中,所述第三语法元素(例如pic_ccalf_enabled_flag或pic_alf_enabled_flag)在图像头中进行指示。
在另一个实施例中,所述第三语法元素(例如第三指示符,例如pic_ccalf_enabled_flag)表示是否为与图像头关联的所有条带开启跨分量自适应环路滤波器(crosscomponent adaptive loop filter,CCALF),或者
所述第三语法元素(例如第三指示符,例如pic_alf_enabled_flag)表示是否为与图像头关联的所有条带开启包括跨分量自适应环路滤波器(cross component adaptiveloop filter,CCALF)的自适应环路滤波器。因此,关于应用ALF或CC-ALF的信息能够通过减少的信息量为图像的所有条带进行指示。
在另一个实施例中,如果所述第三语法元素(例如第三指示符,例如pic_ccalf_enabled_flag或pic_alf_enabled_flag)被设置为第一值(true(真)或1),或者所述第三语法元素具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第四语法元素集,其中,所述第四语法元素集在图像头(例如在图像头级别)进行指示,或者所述第四语法元素集由图像头条目携带。
具体地,在一个实施例中,所述第四语法元素集包括:
Figure BDA0003709883050000831
Figure BDA0003709883050000841
同时可选地,基于上述描述,所述第四语法元素集包括:
Figure BDA0003709883050000842
此外,同时可选地,所述第四语法元素集包括:
Figure BDA0003709883050000843
Figure BDA0003709883050000851
通过上述实施例,可以为图像头中已经存在的所有条带提供待应用的滤波器的相关信息,从而可以减小码流的大小。
在另一个实施例中,可以了解的是,对于同一图像的所有条带,其从图像头继承相同的CC-ALF相关信息(例如,aps_ids)。因此,在图像头中提供的信息不需要另外包括在条带头等,从而可以减少码流中提供的信息量。
在一个实施例中,所述多个CC-ALF相关语法元素包括:第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag或sps_alf_enabled_flag),其中,所述第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag)在序列参数集(sequence parameterset,SPS)级别上进行指示。
如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1)或者具有第一值(true(真)或1),所述多个CC-ALF相关语法元素包括第二语法元素,其中,所述第二语法元素(例如pic_ccalf_enabled_present_flag)在图像头中进行指示。
此外,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),并且如果所述第二语法元素(例如pic_ccalf_enabled_present_flag或pic_alf_enabled_present_flag)被设置为第二值(false(假)或0)或具有第二值(false(假)或0),所述多个CC-ALF相关语法元素可以包括第五语法元素(例如第五指示符,例如slice_ccalf_enabled_flag或slice_alf_enabled_flag),其中,第五语法元素(例如slice_ccalf_enabled_flag或slice_alf_enabled_flag)在条带头中进行指示。
基于上述描述,如果所述第五语法元素(例如第五指示符,例如slice_ccalf_enabled_flag或slice_alf_enabled_flag)被设置为第一值(true(真)或1),或者所述第五语法元素具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第六语法元素集,其中,所述第六语法元素集在条带头中进行指示,或者所述第六语法元素集由条带头条目进行携带。所述第六语法元素集可以,例如,表示将在ALF或CC-ALF中使用的参数。通过提供所述第六语法元素集(可能取决于第五语法元素的值),可以进一步减小码流的大小。
具体地,基于上述描述,所述第六语法元素集包括:
Figure BDA0003709883050000852
Figure BDA0003709883050000861
同时可选地,基于上述描述,所述第六语法元素集包括:
Figure BDA0003709883050000862
此外,基于上述描述,所述第六语法元素集包括:
Figure BDA0003709883050000863
在另一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第七语法元素(例如第七指示符,例如pic_cross_component_alf_cb_aps_id)和第八语法元素(例如第八指示符,例如pic_cross_component_alf_cr_aps_id)。
在一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),且第九语法元素(例如pic_alf_enabled_present_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第七语法元素(例如,第七指示符,例如pic_cross_component_alf_cb_aps_id)和第八语法元素(例如第八指示符,例如pic_cross_component_alf_cr_aps_id)。
在一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),且第九语法元素(例如pic_alf_enabled_present_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第七语法元素(例如第七指示符,例如pic_cross_component_alf_cb_aps_id)、第八语法元素(例如第八指示符,例如,pic_cross_component_alf_cr_aps_id)和所述第二语法元素(例如pic_ccalf_enabled_present_flag)。
基于上述描述,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被设置为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个CC-ALF相关语法元素还包括第七语法元素(例如第七指示符,例如pic_cross_component_alf_cb_aps_id)、第八语法元素(例如第八指示符,例如pic_cross_component_alf_cr_aps_id)和第九语法元素(例如pic_alf_enabled_present_flag)。
此外,在一个实施例中,CC-ALF应用于对当前图像块的亮度分量的一个或多个亮度样本进行滤波处理,以修正所述当前图像块的色度分量的色度样本(例如每个色度样本)。
具体地,基于上述描述,所述CC-ALF用于通过亮度样本值修正每个色度分量。
在一个实施例中,所述CC-ALF运行为自适应环路滤波器过程的一部分。
基于上述描述,所述图像块还包括亮度块和色度块。
其中,第一色度块是所述图像块的第一色度分量(例如Cb分量),第二色度块是所述图像块的第二色度分量(例如Cr分量)。
本发明还涉及一种由编码设备实现的编码方法,所述方法包括:
确定是否开启跨分量ALF(Cross Component ALF,CC-ALF);
生成包括一个或多个语法元素(例如,CC-ALF相关语法元素,例如pic_ccalf_enabled_flag、pic_cross_component_alf_cb_enabled_flag或pic_cross_component_alf_cr_enabled_flag)的码流,其中,所述一个或多个语法元素表示是否在图像头级别开启跨分量ALF(Cross Component ALF,CC-ALF)并表示相应的CC-ALF相关信息,所述语法元素在图像头级别进行指示。因此,用于进行后续解码的相关信息可以在码流中以减小大小的形式进行提供。
基于上述描述,CC-ALF也应用于对当前图像块的亮度分量的一个或多个亮度样本进行滤波处理,以修正所述当前图像块的色度分量的色度样本(例如每个色度样本)。
在一个实施例中,所述方法还包括:
通过所述CC-ALF滤波器对属于某一图像的当前图像块的亮度分量进行滤波处理,其中,所述当前图像块的亮度分量的一个或多个亮度样本用于修正所述当前图像块的色度分量的至少一个色度样本(例如每个色度样本)。
基于上述描述,所述CC-ALF用于通过亮度样本值修正每个色度分量。
在另一个实施例中,所述CC-ALF运行为自适应环路滤波器过程的一部分。
基于上述描述,所述图像块还包括亮度块和色度块。
其中,第一色度块是所述图像块的第一色度分量(例如Cb分量),第二色度块是所述图像块的第二色度分量(例如Cr分量)。
本发明还涉及一种由解码设备实现的解码方法,所述方法包括:
从视频信号的码流中解析出一个或多个语法元素,其中,所述一个或多个语法元素表示跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)相关信息,所述一个或多个语法元素从所述码流的视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameterset,PPS)级别、图像头、条带头或分块头中的任何一个或多个获得,或者,所述一个或多个语法元素从序列参数集(sequence parameter set,SPS)级别和/或图像头中获得;
通过根据所述语法元素或所述语法元素的值应用CC-ALF执行滤波过程(例如,跨分量滤波过程)。
可能需要用于确定待应用的滤波方法以及确定如何应用该滤波方法的信息可以在具有减小的大小但仍然支持可靠解码的码流中进行提供。
本发明还阐述了一种由解码设备实现的解码方法,所述方法包括:
从视频信号的码流中解析出多个语法元素,其中,所述语法元素从码流的视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameter set,PPS)级别、图像头、条带头或分块头中的任何一个或多个获得,或者,所述语法元素从序列参数集(sequence parameter set,SPS)级别和/或图像头中获得;
根据所述多个语法元素中的一个或多个语法元素确定跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)相关信息;
通过根据所述CC-ALF相关信息应用CC-ALF执行滤波过程(例如跨分量滤波过程)。
可能需要用于确定待应用的滤波方法以及确定如何应用该滤波方法的信息可以在具有减小的大小但仍然支持可靠解码的码流中进行提供。
基于上述描述,所述一个或多个语法元素或多个语法元素(例如CC-ALF相关语法元素)包括第一语法元素(例如第一指示符,例如,sps_ccalf_enabled_flag或sps_alf_enabled_flag),其中,所述第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag)从序列参数集(sequence parameter set,SPS)级别获得。
具体地,基于上述描述,所述第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag)表示是否在序列级别开启跨分量自适应环路滤波器(cross componentadaptive loop filter,CC-ALF),或者
所述第一语法元素(例如第一指示符,例如sps_alf_enabled_flag)表示是否在序列级别开启包括跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)的自适应环路滤波器(adaptive loop filter,ALF)。
因此,关于将应用哪种滤波方法的信息可以在码流中以减少信息量的形式提供给解码器。
在一个实施例中,所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1),或者,所述第一语法元素具有第一值(true(真)或1)。
基于上述描述,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1),或者所述第一语法元素具有第一值(true(真)或1),多个语法元素(例如CC-ALF相关语法元素)还包括第二语法元素(例如第二指示符,例如pic_ccalf_enabled_present_flag),其中,所述第二语法元素(例如pic_ccalf_enabled_present_flag)从图像头获得;或者
如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1),或者所述第一语法元素具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第九语法元素(例如第九指示符,例如pic_alf_enabled_present_flag),其中,所述第九语法元素(例如pic_alf_enabled_present_flag)从图像头获得。
在另一个实施例中,所述第二语法元素(例如第二指示符,例如pic_ccalf_enabled_present_flag)表示图像头中是否存在第三语法元素和/或第四语法元素集。
如果所述第二语法元素(例如pic_ccalf_enabled_present_flag)或第九语法元素(例如pic_alf_enabled_present_flag)被推导为第一值(true(真)或1),或者所述第二语法元素或第九语法元素具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还可以包括第三语法元素(例如第三指示符,例如pic_ccalf_enabled_flag或pic_alf_enabled_flag),其中,第三语法元素(例如pic_ccalf_enabled_flag或pic_alf_enabled_flag)从图像头获得。
具体地,基于上述描述,所述第三语法元素(例如第三指示符,例如pic_ccalf_enabled_flag)表示是否为与图像头关联的所有条带开启跨分量自适应环路滤波器(crosscomponent adaptive loop filter,CCALF),或者
所述第三语法元素(例如第三指示符,例如pic_alf_enabled_flag)表示是否为与图像头关联的所有条带开启包括跨分量自适应环路滤波器(cross component adaptiveloop filter,CCALF)的自适应环路滤波器。
在一个实施例中,如果所述第三语法元素(例如第三指示符,例如pic_ccalf_enabled_flag或pic_alf_enabled_flag)被推导为第一值(true(真)或1),或者所述第三语法元素具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第四语法元素集,其中,所述第四语法元素集从图像头(例如在图像头级别)获得,或者第所述四语法元素集由图像头条目携带。
只有当所述第三语法元素取第一值或被推导为第一值时,才能提供所述第四语法元素集;否则,所述第四语法元素集可能不存在,或者如果所述第三语法元素取不同的值,则所述第四语法元素集可以被设置为默认值,如0。在这两种情况下,可以确保在码流中以减小大小的形式可靠地提供用于解码的相关信息。
具体地,所述第四语法元素集可以包括:
Figure BDA0003709883050000891
Figure BDA0003709883050000901
同时可选地,所述第四语法元素集可以包括:
Figure BDA0003709883050000902
在另一个实施例中,所述第四语法元素集可以包括:
Figure BDA0003709883050000903
Figure BDA0003709883050000911
基于上述描述,对于同一图像的所有条带,其从图像头继承相同的CC-ALF相关信息(例如,aps_ids)。因此,可以减少码流中用于向解码器指示某一图像的条带的CC-ALF相关信息的信息的量。
在一个实施例中,所述多个语法元素(例如CC-ALF相关语法元素)包括第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag或sps_alf_enabled_flag),其中,所述第一语法元素(例如第一指示符,例如sps_ccalf_enabled_flag)从序列参数集(sequenceparameter set,SPS)级别获得。
如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)包括第二语法元素(例如第二指示符,例如pic_ccalf_enabled_present_flag),其中,所述第二语法元素(例如pic_ccalf_enabled_present_flag)从图像头获得。
在另一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),并且如果所述第二语法元素(例如pic_ccalf_enabled_present_flag或pic_alf_enabled_present_flag)被推导为第二值(false(假)或0)或具有第二值(false(假)或0),所述多个语法元素(例如CC-ALF相关语法元素)还包括第五语法元素(例如第五指示符,例如slice_ccalf_enabled_flag或slice_alf_enabled_flag),其中,所述第五语法元素(例如slice_ccalf_enabled_flag或slice_alf_enabled_flag)从条带头获得。
基于上述描述,如果所述第五语法元素(例如第五指示符,例如slice_ccalf_enabled_flag或slice_alf_enabled_flag)被推导为第一值(true(真)或1),或者所述第五语法元素具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第六语法元素集,其中,所述第六语法元素集从条带头获得,或者第六语法元素集由条带头条目携带。
具体地,基于上述描述,所述第六语法元素集包括:
Figure BDA0003709883050000912
Figure BDA0003709883050000921
同时可选地,基于上述描述,所述第六语法元素集包括:
Figure BDA0003709883050000922
同样地,基于上述描述,所述第六语法元素集包括:
Figure BDA0003709883050000923
在一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第七语法元素(例如第七指示符,例如pic_cross_component_alf_cb_aps_id)和第八语法元素(例如第八指示符,例如pic_cross_component_alf_cr_aps_id)。
基于上述描述,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),且第九语法元素(例如pic_alf_enabled_present_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第七语法元素(例如,第七指示符,例如pic_cross_component_alf_cb_aps_id)和第八语法元素(例如第八指示符,例如pic_cross_component_alf_cr_aps_id)。
在另一个实施例中,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),且第九语法元素(例如pic_alf_enabled_present_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第七语法元素(例如第七指示符,例如pic_cross_component_alf_cb_aps_id)、第八语法元素(例如第八指示符,例如,pic_cross_component_alf_cr_aps_id)和所述第二语法元素(例如pic_ccalf_enabled_present_flag)。
基于上述描述,如果所述第一语法元素(例如sps_ccalf_enabled_flag或sps_alf_enabled_flag)被推导为第一值(true(真)或1)或具有第一值(true(真)或1),所述多个语法元素(例如CC-ALF相关语法元素)还包括第七语法元素(例如第七指示符,例如pic_cross_component_alf_cb_aps_id)、第八语法元素(例如第八指示符,例如pic_cross_component_alf_cr_aps_id)和第九语法元素(例如pic_alf_enabled_present_flag)。
在一个实施例中,所述CC-ALF应用于对当前图像块的亮度分量的一个或多个亮度样本进行滤波处理,以修正所述当前图像块的色度分量的色度样本(例如每个色度样本)。
所述CC-ALF可以用于通过亮度样本值修正每个色度分量。
基于上述描述,所述CC-ALF运行为自适应环路滤波器过程的一部分。
在一个实施例中,所述图像块包括亮度块和色度块,
其中,第一色度块是所述图像块的第一色度分量(例如Cb分量),第二色度块是所述图像块的第二色度分量(例如Cr分量)。
本发明还涉及一种由解码设备实现的解码方法,所述方法包括:
从视频信号的码流中解析出一个或多个语法元素(例如M个CC-ALF相关语法元素,其中,M为整数,且M>=1,例如pic_ccalf_enabled_flag、pic_cross_component_alf_cb_enabled_flag或pic_cross_component_alf_cr_enabled_flag),其中,所述一个或多个语法元素表示是否在图像头级别开启跨分量ALF(cross component ALF,CCALF)并表示相应的CCALF相关信息,所述一个或多个语法元素从图像头级别获得。
响应于确定CC-ALF被开启,通过应用CC-ALF执行滤波过程(例如跨分量滤波过程)。
所述方法在支持减小码流大小的同时,可以在解码期间恰当地应用所述CC-ALF。
在一个实施例中,所述CC-ALF应用于对当前图像块的亮度分量的一个或多个亮度样本进行滤波处理,以修正所述当前图像块的色度分量的色度样本(例如每个色度样本)。
基于上述描述,所述CC-ALF用于通过亮度样本值修正每个色度分量。
在另一个实施例中,所述CC-ALF运行为自适应环路滤波器过程的一部分。
实施例还可以包括:所述图像块包括亮度块和色度块。
其中,第一色度块是所述图像块的第一色度分量(例如Cb分量),第二色度块是所述图像块的第二色度分量(例如Cr分量)。
本发明还提供了一种用于对视频数据进行编码的设备,所述设备包括:
视频数据存储器;以及
视频编码器,所述视频编码器用于:
通过应用跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)执行滤波过程(例如,跨分量滤波过程);
生成包括多个语法元素(例如CC-ALF相关语法元素)且用于视频信号的码流,其中,所述多个语法元素表示CC-ALF相关信息。
所述多个CC-ALF相关语法元素从视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameter set,PPS)级别、图像头、条带头、或分块头中的任何一个或多个获得;或者
所述多个CC-ALF相关语法元素从序列参数集(sequence parameter set,SPS)级别和/或图像头获得。
所述设备可以实现编码,得到减小大小的码流。
此外,提供了一种用于对视频数据进行解码的设备,所述设备包括:
视频数据存储器;以及
视频解码器,所述视频解码器用于:
从视频信号的码流中解析出多个语法元素,其中,所述多个语法元素从码流的视频参数集(video parameter set,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(picture parameter set,PPS)级别、图像头、条带头或分块头中的任何一个或多个获得,或者,所述多个语法元素从序列参数集(sequence parameter set,SPS)级别和/或图像头中获得;
根据所述多个语法元素中的一个或多个语法元素确定跨分量自适应环路滤波器(cross-component adaptive loop filter,CC-ALF)相关信息;
通过根据所述CC-ALF相关信息应用CC-ALF执行滤波过程(例如跨分量滤波过程)。
所述解码器能够在码流大小减小的同时执行可靠的解码,获得与解码期间待应用的滤波器有关的信息。
本发明还提供了一种编码器,所述编码器包括处理电路,所述处理电路用于执行上述实施例中任一实施例所述的方法。
本发明还涉及一种解码器,所述解码器包括处理电路,所述处理电路用于执行上述实施例中任一实施例所述的方法。
此外,提供了一种包括程序代码的计算机程序产品,所述程序代码用于执行上述实施例中任一实施例所述的方法。
本发明还涉及一种解码器,所述解码器包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述计算机可读存储介质被耦合到所述处理器并存储由所述处理器执行的程序,当所述程序由所述处理器执行时,使得所述解码器执行上述实施例中任一实施例所述的方法。
此外,本发明提供了一种编码器,所述编码器包括:
一个或多个处理器;
非瞬时性计算机可读存储介质,所述计算机可读存储介质被耦合到所述处理器并存储由所述处理器执行的程序,当所述程序由所述处理器执行时,使得所述编码器执行上述实施例中任一实施例所述的方法。
此外,提供了一种非瞬时性记录介质,所述记录介质包括由图像解码设备进行解码的经编码码流,其中,所述码流是通过将视频信号或图像信号的帧划分为多个块而产生的,并且包括多个语法元素(例如CC-ALF相关语法元素),所述多个语法元素表示CC-ALF相关信息。
所述多个语法元素(例如CC-ALF相关语法元素)从视频参数集(video parameterset,VPS)级别、序列参数集(sequence parameter set,SPS)级别、图像参数集(pictureparameter set,PPS)级别、图像头、条带头、或分块头中的任何一个或多个获得;或者
所述多个语法元素(例如CC-ALF相关语法元素)从序列参数集(sequenceparameter set,SPS)级别或图像头中的至少一个获得。
本发明还涉及一种装置,所述装置包括:
非瞬时性计算机可读介质,所述计算机可读介质上存储指令,当所述指令由一个或多个处理器执行时,使得所述一个或多个处理器执行多个操作以生成视频码流对应的图像数据,所述图像数据包括:
所述视频码流中的多个图像,包括包含N个条带的图像;
与所述图像的N个条带关联的图像头。
其中,所述N个条带中的一个或多个条带或每个条带包括经熵编码的多个样本块。
所述N个条带从所述图像头继承CC-ALF滤波信息或CC-ALF滤波器参数,或者所述N个条带从所述图像头继承ALF滤波数据。
根据上述实施例中的任一实施例,还可以了解的是,
slice_cross_component_alf_cr_aps_id和slice_cross_component_alf_cb_aps_id的值与pic_cross_component_alf_cb_aps_id和pic_cross_component_alf_cr_aps_id的值相同。
在另一个实施例中,pic_cross_component_alf_cb_aps_id和pic_cross_component_alf_cr_aps_id从所述图像头获得。
基于上述描述,CCALF相关语法元素仅从与全部N个条带关联的图像头获得一次。
在一个实施例中,N为大于1的正整数。
在一个实施例中,提供了一种由编码设备实现的用于对视频码流进行编码的方法,所述编码方法包括:
生成包括多个语法元素(例如ALF相关语法元素,例如sps_alf_enabled_flag,和/或CCALF相关语法元素,例如sps_ccalf_enabled_flag)且用于视频信号的码流,其中,所述多个语法元素包括跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)开启标志(例如sps_ccalf_enabled_flag)。
CC-ALF相关参数至少根据所述CC-ALF开启标志(例如sps_ccalf_enabled_flag)的值有条件地进行指示。
这样,可以提供包括用于解码的相关信息但具有减小大小的码流。
此外,本发明提供了一种由解码设备实现的用于对视频码流进行解码的方法,所述解码方法包括:
(S110)从视频码流中获得多个语法元素。
所述多个语法元素包括跨分量自适应环路滤波器(cross component adaptiveloop filter,CC-ALF)开启标志(例如sps_ccalf_enabled_flag)。
CC-ALF相关参数至少根据所述CCALF开启标志(例如sps_ccalf_enabled_flag)的值有条件地进行指示。
这种方法在即使码流的大小被减小的情况下也可以执行可靠的解码。
在一个实施例中,在满足一个或多个条件的情况下,所述CCALF开启标志(例如sps_ccalf_enabled_flag)在码流的序列参数集(sequence parameter set,SPS)进行指示,所述一个或多个条件包括:当在码流的序列参数集(sequence parameter set,SPS)级别指示的第一标志(例如sps_alf_enabled_flag)的值为开启值(例如第一值,即ture(真)或1)时。
所述CCALF开启标志表示是否在序列级别或SPS级别开启跨分量自适应环路滤波器(cross component adaptive loop filter,CCALF)。
基于上述描述,所述语法元素还包括第三标志(例如alf_present_in_ph_flag),其中,所述第三标志在所述码流的图像参数集(picture parameter set,PPS)级别进行指示,并且所述第三标志表示参考PPS的PH(图像头)中是否存在用于开启使用ALF的一个或多个语法元素。
基于上述描述,所述第三标志(alf_present_in_ph_flag)等于1表示所述参考PPS的PH(图像头)中可以存在所述用于开启使用ALF的语法元素;所述第三标志(alf_present_in_ph_flag)等于0表示参考PPS的条带头中可以存在所述用于开启使用ALF的语法元素。
在一个实施例中,可以了解的是,如果所述第一标志(例如sps_alf_enabled_flag)的值为开启值(例如第一值,即ture(真)或1),并且所述第三标志(alf_present_in_ph_flag)的值为开启值(例如第一值,即ture(真)或1),以及
如果所述CCALF开启标志(例如sps_ccalf_enabled_flag)的值为开启值(例如第一值,即ture(真)或1),所述跨分量自适应环路滤波(cross component adaptive loopfiltering,CCALF)相关参数(例如,用于开启使用CCALF的语法元素)在所述码流的picture_header级别进行指示。
在另一个实施例中,可以了解的是,如果所述第一标志(例如sps_alf_enabled_flag)的值为开启值(例如第一值,即ture(真)或1),并且所述第三标志(alf_present_in_ph_flag)的值为关闭值(例如第二值,即false(假)或0),以及
如果所述CCALF开启标志(例如sps_ccalf_enabled_flag)的值为开启值(例如第一值,即true(真)或1),所述跨分量自适应环路滤波(cross component adaptive loopfiltering,CCALF)相关参数(例如,用于开启使用CCALF的语法元素)在所述码流的slice_header级别进行指示。
在另一个实施例中,可以了解的是,所述CC-ALF开启标志(例如sps_ccalf_enabled_flag)等于0表示所述跨分量自适应环路滤波器被关闭;或者
所述CC-ALF开启标志(如sps_ccalf_enabled_flag)等于1表示所述跨分量自适应环路滤波器被开启。
基于上述描述,所述语法元素还包括:
第二标志(例如no_ccalf_constraint_flag),其中,所述第二标志等于1表示所述CCALF开启标志(例如sps_ccalf_enabled_flag)等于0;而所述第二标志(例如no_ccalf_constraint_flag)等于0时,则不施加此类约束。
在一个实施例中,所述方法还包括:
对重建图像(例如重建亮度样本阵列SL、重建色度样本阵列SCb和/或重建色度样本阵列SCr)执行滤波处理(例如跨分量自适应环路滤波处理),获得经滤波的重建图像(例如,经修改的重建亮度样本阵列S'L、经修改的重建色度样本阵列S'Cb,和/或经修改的重建色度样本阵列S'Cr)。
本发明还提供了一种经编码码流,其中,所述经编码码流包括多个语法元素(例如ALF相关语法元素,例如sps_alf_enabled_flag,和/或CCALF相关语法元素,例如sps_ccalf_enabled_flag),并用于视频信号;所述多个语法元素包括跨分量自适应环路滤波器(cross component adaptive loop filter,CCALF)开启标志(例如sps_ccalf_enabled_flag)。
CCALF相关参数至少根据所述CCALF开启标志(例如sps_ccalf_enabled_flag)的值有条件地进行指示。
当以可靠方式应用CC-ALF时,可以在提供待用于解码的信息的同时,减小码流的大小。
图12示出了编码器4000的一个实施例。所述编码器4000可以通过这里表示为4001的任何处理电路实现,以执行对视频进行编码的方法。具体地,所述处理电路4001可以用于应用跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)修正色度分量。所述处理电路还可以用于生成包括多个CC-ALF相关语法元素的码流,其中,所述多个CC-ALF相关语法元素表示CC-ALF相关信息,并且所述多个CC-ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示。
在上下文中,所述多个CC-ALF相关语法元素包括:第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应环路滤波器的自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。
所述编码器还可以包括:接收器4002,用于接收待编码的视频;发送器4003,用于传输包括至少所述多个语法元素的码流。
图13示出了解码器4100的一个实施例。所述解码器4100可以通过这里表示为4101的任何处理电路实现,以执行对视频进行解码的方法。具体地,所述处理电路4101可以用于从码流中解析出多个跨分量自适应环路滤波器(ross component adaptive loop filter,CC-ALF)相关语法元素,其中,所述多个CC-ALF相关语法元素从序列参数集(sequenceparameter set,SPS)级别、图像头或条带头中的任何一个或多个获得。
具体地,所述多个CC-ALF相关语法元素包括:第一语法元素,其中,所述第一语法元素表示是否在序列级别开启包括跨分量自适应滤波器的自适应环路滤波器(adaptiveloop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。
所述处理电路还可以用于通过所述多个CC-ALF相关语法元素中的至少一个语法元素执行CC-ALF过程。
此外,所述解码器4100可以包括接收器4102,用于接收码流。同时,所述解码器可以包括发送器4103,用于将经解码的视频输出到例如输出设备(此处未示出)。
下文对上述实施例中所示的编码方法和解码方法的应用以及使用这些方法的系统进行说明。
图10为用于实现内容分发服务的内容提供系统3100的框图。所述内容提供系统3100包括捕获设备3102、终端设备3106,并且可选地包括显示器3126。捕获设备3102与终端设备3106通过通信链路3104进行通信。该通信链路可以包括上述通信信道13。通信链路3104包括但不限于WIFI、以太网、电缆、无线(3G/4G/5G)、USB或者其任何组合等。
捕获设备3102生成数据,并且可以通过上述实施例所示的编码方法对该数据进行编码。或者,捕获设备3102可以将该数据分发到流服务器(图中未示出),所述服务器对该数据进行编码并将经编码数据发送给终端设备3106。捕获设备3102包括但不限于摄像机、智能手机或平板电脑、计算机或笔记本电脑、视频会议系统、PDA、车载设备,或它们的任何组合等。例如,捕获设备3102可以包括如上所述的源设备12。当该数据包括视频时,捕获设备3102中包括的视频编码器20实际上可以执行视频编码处理。当该数据包括音频(即声音)时,捕获设备3102中包括的音频编码器实际上可以执行音频编码处理。对于一些实际场景,捕获设备3102通过将经编码的视频数据和经编码的音频数据一起复用以分发该经编码的视频数据和该经编码的音频数据。对于其它实际场景,例如在视频会议系统中,经编码的音频数据和经编码的视频数据不进行复用。捕获设备3102将经编码的音频数据和经编码的视频数据分别分发到终端设备3106。
在所述内容提供系统3100中,终端设备310接收并再现经编码数据。终端设备3106可以是具有数据接收和恢复能力的设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digitalvideo recorder,DVR)3112、电视3114、机顶盒(set top box,STB)3116、视频会议系统3118、视频监控系统3120、个人数字助理(personal digital assistant,PDA)3122、车载设备3124或其任何组合,或者是能够解码上述经编码数据的设备。例如,终端设备3106可以包括如上所述的目的地设备14。当经编码数据包括视频时,终端设备中包括的视频解码器30优先进行视频解码处理。当经编码数据包括音频时,终端设备中包括的音频解码器优先进行音频解码处理。
对于具有显示器的终端设备,例如智能手机或平板电脑3108、计算机或笔记本电脑3110、网络视频录像机(network video recorder,NVR)/数字视频录像机(digitalvideo recorder,DVR)3112、电视3114、个人数字助理(personal digital assistant,PDA)3122或车载设备3124,终端设备可以将经解码数据馈送至终端设备的显示器。对于不配备显示器的终端设备,例如STB3116、视频会议系统3118或视频监控系统3120,应连接外部显示器3126以接收和显示经解码数据。
当该系统中的每个设备执行编码或解码时,可以使用如上述实施例中所示的图像编码设备或图像解码设备。
图11为终端设备3106的一种示例性结构的示意图。终端设备3106从捕获设备3102接收到流后,协议处理单元(protocol proceeding unit)3202分析该流的传输协议。该协议包括但不限于实时流协议(Real Time Streaming Protocol,RTSP)、超文本传输协议(Hyper Text Transfer Protocol,HTTP)、HTTP直播流媒体协议(HTTP Live streamingprotocol,HLS)、MPEG-DASH、实时传输协议(Real-time Transport protocol,RTP)、实时消息传输协议(Real Time Messaging Protocol,RTMP),或其任何种类的组合等。
协议处理单元3202对流进行处理后,生成流文件。文件被输出到解复用单元3204。解复用单元3204可以将复用数据分成经编码音频数据和经编码视频数据。如上所述,对于一些实际场景,例如在视频会议系统中,经编码音频数据和经编码视频数据不进行复用。在这种情况下,不通过解复用单元3204,即可将经编码数据发送给视频解码器3206和音频解码器3208。
通过解复用处理,生成视频基本流(elementary stream,ES)、音频ES和可选的字幕。视频解码器3206包括上述实施例中描述的视频解码器30,通过上述实施例中所示的解码方法对视频ES进行解码,以生成视频帧,并将此数据馈送到同步单元3212。音频解码器3208对音频ES进行解码以生成音频帧,并将此数据馈送到同步单元3212。可选地,在将视频帧馈送到同步单元3212之前,可以将视频帧存储在缓冲区(图Y中未示出)中。类似地,在将音频帧馈送到同步单元3212之前,可以将音频帧存储在缓冲区(图Y中未示出)中。
同步单元3212同步视频帧和音频帧,并将视频/音频提供给视频/音频显示器3214。例如,同步单元3212同步视频信息和音频信息的呈现。信息可以根据与经译码音频和可视数据的呈现有关的时间戳以及与数据流本身的分发有关的时间戳被译码到语法中。
如果流中包括字幕,则字幕解码器3210对字幕进行解码,使字幕与视频帧和音频帧同步,并将视频/音频/字幕提供给视频/音频/字幕显示器3216。
本发明并不限于上述系统,上述实施例中的图像编码设备或图像解码设备都可以结合到其它系统,例如汽车系统。
数学运算符
本申请中使用的数学运算符与C编程语言中使用的数学运算符类似。但是,本申请准确定义了整除运算和算术移位运算的结果,并且还定义了其它运算,如幂运算和实值除法。编号和计数规范通常从0开始,例如,“第一个”相当于第0个,“第二个”相当于第1个,以此类推。
算术运算符
算术运算符的定义如下:
+ 加法运算
- 减法运算(作为双参数运算符)或者非运算(作为一元前缀运算符)
* 乘法运算,包括矩阵乘法运算
xy 幂运算,表示x的y次幂。在其它上下文中,这种表示符用作上标,而非理解为幂运算。
/ 整除运算,向0方向对结果进行截断。例如,7/4和–7/–4被截断成1,–7/4和7/–4被截断成–1。
÷ 用来表示数学等式中的除法运算,但不对结果进行截断或四舍五入操作。
Figure BDA0003709883050000991
用来表示数学等式中的除法运算,但不对结果进行截断或四舍五入操作。
Figure BDA0003709883050000992
用于计算f(i)的和,i取x到y之间的所有整数,包括x和y。
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”(not applicable,不适用)的语法元素或变量时,值“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(包括y和z)的整数值,其中,x、y和z均为整数,z大于y。
数学函数
数学函数的定义如下:
Figure BDA0003709883050001011
Asin(x) 三角反正弦函数,对参数x进行运算,x在–1.0至1.0(包括首尾值)的范围之间,输出值在–π÷2至π÷2(包括首尾值)范围之间,单位为弧度。
Atan(x) 三角反正切函数,对参数x进行运算,输出值在–π÷2至π÷2(包括首尾值)范围之间,单位为弧度。
Figure BDA0003709883050001012
Ceil(x) 表示大于或等于x的最小整数。
Clip1Y(x)=Clip3(0,(1<<BitDepthY)-1,x)
Clip1C(x)=Clip3(0,(1<<BitDepthC)-1,x)
Figure BDA0003709883050001013
Cos(x) 三角余弦函数,对参数x进行运算,单位为弧度。
Floor(x) 表示小于或等于x的最大整数。
Figure BDA0003709883050001014
Ln(x) 返回x的自然对数(以e为底的对数,其中,e是自然对数底数常数2.718281 828……)。
Log2(x) 返回x的以2为底的对数。
Log10(x) 返回x的以10为底的对数。
Figure BDA0003709883050001015
Figure BDA0003709883050001016
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
Figure BDA0003709883050001017
Sin(x) 三角正弦函数,对参数x进行运算,单位为弧度。
Figure BDA0003709883050001021
Swap(x,y)=(y,x)
Tan(x) 三角正切函数,对参数x进行运算,单位为弧度。
运算优先级顺序
当没有使用括号来显式地表示表达式中的优先顺序时,以下规则适用:
–高优先级的运算在低优先级的任何运算之前进行。
–相同优先级的运算从左到右依次进行。
下表从最高到最低的顺序表示运算的优先级,下表中位置越高,优先级越高。
如果在C编程语言中也使用这些运算符,则本文中采用的优先级顺序与C编程语言中采用的优先级顺序相同。
表:运算优先级从最高(表格顶部)到最低(表格底部)
Figure BDA0003709883050001022
逻辑运算的文本说明
在文本中,用数学形式描述如下逻辑运算语句:
Figure BDA0003709883050001023
Figure BDA0003709883050001031
可以通过如下方式进行描述:
……如下/……以下为准:
–如果条件0,则语句0
–否则,如果条件1,则语句1
-……
–否则(关于其余条件的提示性说明),则语句n
文本中每个“如果……否则,如果……否则,……”语句由“……如下”或“……以下为准”语句(其后面紧跟着“如果……”)引入。最后一个条件“如果……否则,如果……否则,……”总跟着一个“否则,……”。中间的“如果……否则,如果……否则,……”语句可以通过匹配“……如下”或“……以下为准”与结束内容“否则,……”来识别。
在文本中,用数学形式描述如下逻辑运算语句:
Figure BDA0003709883050001032
可以通过如下方式进行描述:
……如下/……以下为准:
–如果以下条件均为真,则语句0:
–条件0a
–条件0b
–否则,如果以下条件中的一个或多个条件为真,则语句1:
–条件1a
–条件1b
-……
–否则,语句n
在文本中,用数学形式描述如下逻辑运算语句:
Figure BDA0003709883050001033
可以通过如下方式进行描述:
当条件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或其它光盘存储器、磁盘存储器或其它磁性存储设备、闪存或可以用于存储指令或数据结构形式的所需程序代码且可以由计算机访问的任何其它介质。此外,任何连接也可以被适当地定义为计算机可读介质。例如,如果指令通过同轴电缆、光纤缆线、双绞线和数字用户线(digital subscriber line,DSL)、或红外线、无线电和微波等无线技术从网站、服务器或其它远程源进行传输,则同轴电缆、光纤缆线、双绞线和DSL、或红外线、无线电和微波等无线技术也包含在上述介质的定义中。但是,应理解的是,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其它瞬时性介质,而是指非瞬时性的有形存储介质。本文所使用的磁盘和光盘包括压缩光盘(compact disc,CD)、激光光盘、光学光盘、数字多功能光盘(digital versatile disc,DVD)、软盘和蓝光光盘,其中,磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。上述各项的组合也应包括在计算机可读介质的范围内。
指令可以通过一个或多个处理器执行,例如,一个或多个数字信号处理器(digital signal processor,DSP)、一个或多个通用微处理器、一个或多个专用集成电路(application specific integrated circuit,ASIC)、一个或多个现场可编程逻辑阵列(field programmable logic array,FPGA)或其它同等集成或离散逻辑电路等。因此,本文使用的术语“处理器”可以指任何上述结构或适合实现本文所描述的技术的任何其它结构。另外,在一些方面中,本文描述的各种功能可以提供在用于编码和解码的专用硬件和/或软件模块内,或者并入在组合编解码器中。而且,这些技术可以在一个或多个电路或逻辑元件中完全实现。
本发明的技术可以在多种设备或装置中实现,这些设备或装置包括无线手机、集成电路(integrated circuit,IC)或一组IC(例如芯片组)。本发明描述了各种组件、模块或单元,以强调用于执行所公开技术的设备的功能方面,但未必需要由不同的硬件单元实现。实际上,如上所述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过包括如上所述的一个或多个处理器的互操作硬件单元的集合来提供。

Claims (45)

1.一种由编码设备实现的编码方法(4200),其特征在于,所述方法包括:
应用(4201)跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF)修正色度分量;
生成(4202)包括多个ALF相关语法元素的码流,其中,所述多个ALF相关语法元素表示ALF相关信息;
所述多个ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示;
所述多个ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。
2.根据权利要求1所述的方法,其特征在于,当所述第二语法元素表示CC-ALF被开启时,所述多个ALF相关语法元素包括第三语法元素,其中,所述第三语法元素在所述图像头中进行指示,并且所述第三语法元素表示是否为包括多个条带的当前图像开启CC-ALF。
3.根据权利要求1或2所述的方法,其特征在于,当所述第二语法元素表示CC-ALF被开启时,所述多个ALF相关语法元素包括第四语法元素,其中,所述第四语法元素在所述图像头中进行指示,并且所述第四语法元素表示是否为与所述码流关联的视频序列的当前图像开启Cb颜色分量的CC-ALF。
4.根据权利要求3所述的方法,其特征在于,如果所述第四语法元素的值为1,则表示为所述当前图像开启所述Cb颜色分量的CC-ALF;和/或,如果所述第四语法元素的值为0,则表示为所述当前图像关闭所述Cb颜色分量的CC-ALF。
5.根据权利要求3或4所述的方法,其特征在于,当所述第四语法元素表示为所述当前图像开启所述Cb颜色分量的CC-ALF时,所述多个ALF相关语法元素包括第五语法元素,其中,所述第五语法元素在所述图像头中进行指示,并且所述第五语法元素表示所述当前图像中所有条带的Cb颜色分量所参考的参数集。
6.根据权利要求1至5中任一项所述的方法,其特征在于,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第七语法元素,其中,所述第七语法元素在图像头中进行指示,并且所述第七语法元素表示是否为与所述码流关联的视频序列的当前图像开启Cr颜色分量的CC-ALF。
7.根据权利要求6所述的方法,其特征在于,如果所述第七语法元素的值为1,则表示为所述当前图像开启所述Cr颜色分量的CC-ALF;和/或,如果所述第七语法元素的值为0,则表示为所述当前图像关闭所述Cr颜色分量的CC-ALF。
8.根据权利要求6或7所述的方法,其特征在于,当所述第七语法元素表示为所述当前图像开启所述Cr颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第八语法元素,其中,所述第八语法元素在所述图像头中进行指示,并且所述第八语法元素表示当前图像中所有条带的Cr颜色分量所关联的参数集。
9.根据权利要求3至8中任一项所述的方法,其特征在于,当所述第三语法元素表示为与所述码流关联的视频序列的当前图像开启CC-ALF时,对所述第四语法元素、所述第五语法元素、所述第六语法元素、所述第七语法元素、所述第八语法元素和所述第九语法元素进行指示。
10.根据权利要求1至9中任一项所述的方法,其特征在于,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十语法元素,其中,所述第十语法元素在条带头中进行指示,并且所述第十语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cb颜色分量的CCALF。
11.根据权利要求10所述的方法,其特征在于,如果所述第十语法元素的值为1,则表示为所述当前条带开启所述Cb颜色分量的CCALF;和/或,如果所述第十语法元素的值为0,则表示为所述当前条带关闭所述Cb颜色分量的CCALF。
12.根据权利要求10或11所述的方法,其特征在于,当所述第十语法元素表示为所述当前条带开启所述Cb颜色分量的CC-ALF时,所述多个ALF相关语法元素包括第十一语法元素,其中,所述第十语法元素在条带头中进行指示,并且所述第十语法元素表示所述当前条带的Cb颜色分量所参考的参数集。
13.根据权利要求1至12中任一项所述的方法,其特征在于,当所述第二语法元素表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十二语法元素,其中,所述第十二语法元素在条带头中进行指示,并且所述第十二语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cr颜色分量的CCALF。
14.根据权利要求13所述的方法,其特征在于,如果所述第十二语法元素的值为1,则表示为所述当前条带开启所述Cr颜色分量的CCALF;和/或,如果所述第十二语法元素的值为0,则表示为所述当前条带关闭所述Cr颜色分量的CCALF。
15.根据权利要求13或14所述的方法,其特征在于,当所述第十二语法元素表示为所述当前条带开启所述Cr颜色分量的CC-ALF时,所述多个ALF相关语法元素包括第十三语法元素,其中,所述第十三语法元素在条带头中进行指示,并且所述第十三语法元素表示所述当前条带的Cr颜色分量所参考的参数集。
16.根据权利要求1至15中任一项所述的方法,其特征在于,所述第二语法元素是在所述第一语法元素具有第一值时进行指示的;或者,所述第二语法元素是至少根据所述第一语法元素的值有条件地进行指示的。
17.根据权利要求1至16中任一项所述的方法,其特征在于,所述多个ALF相关语法元素包括第十四语法元素,其中,所述第十四语法元素在所述SPS级别进行指示,并且所述第十四语法元素表示所述CC-ALF的输入的类型。
18.根据权利要求17所述的方法,其特征在于,所述第二语法元素是在所述第一语法元素具有第一值且所述第十四语法元素具有第二值时进行指示的。
19.根据权利要求18所述的方法,其特征在于,所述第二语法元素是在所述第一语法元素的值等于1且所述第十四语法元素的值不等于0时进行指示的。
20.根据权利要求1至19中任一项所述的方法,其特征在于,所述CC-ALF运行为自适应环路滤波过程的一部分,并利用亮度样本值修正至少一个色度分量。
21.一种由解码设备实现的解码方法(4300),其特征在于,所述方法包括:
从码流中解析(4301)出多个自适应环路滤波器(adaptive loop filter,ALF)相关语法元素,其中,所述多个ALF相关语法元素从序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个获得;
所述多个ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF),并且所述第二语法元素在所述SPS级别进行指示;
通过所述多个ALF相关语法元素中的至少一个语法元素执行(4302)CC-ALF过程。
22.根据权利要求21所述的方法,其特征在于,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个ALF相关语法元素包括第三语法元素,其中,所述第三语法元素从所述图像头获得,并且所述第三语法元素表示是否为包括多个条带的当前图像开启CC-ALF。
23.根据权利要求21或22所述的方法,其特征在于,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个ALF相关语法元素包括第四语法元素,其中,所述第四语法元素从所述图像头获得,并且所述第四语法元素表示是否为视频序列的当前图像开启Cb颜色分量的CC-ALF。
24.根据权利要求23所述的方法,其特征在于,如果所述第四语法元素的值为1,则表示为所述当前图像开启Cb颜色分量的CC-ALF;和/或,如果所述第四语法元素的值为0,则表示为所述当前图像关闭Cb颜色分量的CC-ALF。
25.根据权利要求24或25所述的方法,其特征在于,当所述第四语法元素表示为所述当前图像开启所述Cb颜色分量的CC-ALF时,所述多个ALF相关语法元素包括第五语法元素,其中,所述第五语法元素从所述图像头获得,并且所述第五语法元素表示所述当前图像中所有条带的Cb颜色分量所关联的参数集。
26.根据权利要求21至25中任一项所述的方法,其特征在于,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第七语法元素,其中,所述第七语法元素从所述图像头获得,并且所述第七语法元素表示是否为与所述码流关联的视频序列的当前图像开启Cr颜色分量的CC-ALF。
27.根据权利要求26所述的方法,其特征在于,如果所述第七语法元素的值为1,则表示为所述当前图像开启所述Cr颜色分量的CC-ALF;和/或,如果所述第七语法元素的值为0,则表示为所述当前图像关闭所述Cr颜色分量的CC-ALF。
28.根据权利要求26或27所述的方法,其特征在于,当所述第七语法元素被获得并表示为所述当前图像开启所述Cr颜色分量的CC-ALF时,所述多个CC-ALF相关语法元素包括第八语法元素,其中,所述第八语法元素从所述图像头获得,并且所述第八语法元素表示所述当前图像中所有条带的Cr颜色分量所关联的参数集。
29.根据权利要求23至28中任一项所述的方法,其特征在于,当所述第三语法元素被获得并表示为与所述码流关联的视频序列的当前图像开启CC-ALF时,则获得所述第四语法元素、所述第五语法元素、所述第六语法元素、所述第七语法元素、所述第八语法元素和所述第九语法元素。
30.根据权利要求21至29中任一项所述的方法,其特征在于,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十语法元素,其中,所述第十语法元素从条带头获得,并且所述第十语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cb颜色分量的CCALF。
31.根据权利要求30所述的方法,其特征在于,如果所述第十语法元素的值为1,则表示为所述当前条带开启所述Cb颜色分量的CCALF;和/或,如果所述第十语法元素的值为0,则表示为所述当前条带关闭所述Cb颜色分量的CCALF。
32.根据权利要求30或31所述的方法,其特征在于,当所述第十语法元素被获得并表示为所述当前条带开启所述Cb颜色分量的CC-ALF时,所述多个ALF相关语法元素包括第十一语法元素,其中,所述第十语法元素从所述条带头中获得,并且所述第十语法元素表示所述当前条带的Cb颜色分量所参考的参数集。
33.根据权利要求21至32中任一项所述的方法,其特征在于,当所述第二语法元素被获得并表示CC-ALF被开启时,所述多个CC-ALF相关语法元素包括第十二语法元素,其中,所述第十二语法元素从所述条带头中获得,并且所述第十二语法元素表示是否为与所述码流关联的视频序列的当前图像的当前条带开启Cr颜色分量的CCALF。
34.根据权利要求33所述的方法,其特征在于,如果所述第十二语法元素的值为1,则表示为所述当前条带开启所述Cr颜色分量的CCALF;和/或,如果所述第十二语法元素的值为0,则表示为所述当前条带关闭所述Cr颜色分量的CCALF。
35.根据权利要求33或34所述的方法,其特征在于,当所述第十二语法元素被获得并表示为所述当前条带开启所述Cr颜色分量的CC-ALF时,所述多个ALF相关语法元素包括第十三语法元素,其中,所述第十三语法元素从条带头中获得,并且所述第十三语法元素表示所述当前条带的Cr颜色分量所参考的参数集。
36.根据权利要求21至35中任一项所述的方法,其特征在于,所述第二语法元素是在所述第一语法元素具有第一值时获得的;或者,所述第二语法元素是至少根据所述第一语法元素的值有条件地获得的。
37.根据权利要求21至36中任一项所述的方法,其特征在于,所述多个ALF相关语法元素包括第十四语法元素,其中,所述第十四语法元素从所述SPS级别获得,并且所述第十四语法元素表示所述CC-ALF的输入的类型。
38.根据权利要求37所述的方法,其特征在于,所述第二语法元素是在所述第一语法元素具有第一值且所述第十四语法元素具有第二值时获得的。
39.根据权利要求38所述的方法,其特征在于,所述第二语法元素是在所述第一语法元素的值等于1且所述第十四语法元素的值不等于0时获得的。
40.根据权利要求21至39中任一项所述的方法,其特征在于,所述CC-ALF运行为自适应环路滤波过程的一部分,并利用亮度样本值修正至少一个色度分量。
41.一种对视频数据进行编码的设备,其特征在于,所述设备包括:
视频数据存储器;以及
视频编码器,所述视频编码器用于:
应用跨分量自适应环路滤波器(ross component adaptive loop filter,CC-ALF)修正色度分量;
生成包括多个自适应环路滤波器(adaptive loop filter,ALF)相关语法元素的码流,其中,所述多个ALF相关语法元素表示ALF相关信息;
所述多个ALF相关语法元素在序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个进行指示;
所述多个ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启所述跨分量自适应环路滤波器,并且所述第二语法元素在所述SPS级别进行指示。
42.一种对视频数据进行解码的设备,其特征在于,所述设备包括:
视频数据存储器;以及
视频解码器,所述视频解码器用于:
从码流中解析出多个自适应环路滤波器(adaptive loop filter,ALF)相关语法元素,其中,所述多个ALF相关语法元素从序列参数集(sequence parameter set,SPS)级别、图像头或条带头中的任何一个或多个获得;
所述多个ALF相关语法元素包括第一语法元素,其中,所述第一语法元素表示是否在序列级别开启自适应环路滤波器(adaptive loop filter,ALF),并且所述第一语法元素在所述SPS级别进行指示;以及第二语法元素,其中,所述第二语法元素表示是否在序列级别开启跨分量自适应环路滤波器(cross component adaptive loop filter,CC-ALF),并且所述第二语法元素在所述SPS级别进行指示;
通过所述多个ALF相关语法元素中的至少一个语法元素执行CC-ALF过程。
43.一种对视频进行编码的编码器,其特征在于,所述编码器包括处理电路,所述处理电路用于执行根据权利要求1至20中任一项所述的方法。
44.一种对视频进行解码的解码器,其特征在于,所述解码器包括处理电路,所述处理电路用于执行根据权利要求21至40中任一项所述的方法。
45.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机可执行指令,当所述计算机可执行指令被计算设备执行时,使得所述计算设备执行根据权利要求1至40中任一项所述的方法。
CN202080089822.5A 2019-12-23 2020-12-23 用于视频译码的跨分量自适应环路滤波 Pending CN114902662A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EPPCT/EP2019/086984 2019-12-23
EP2019086984 2019-12-23
US202062960147P 2020-01-13 2020-01-13
US62/960,147 2020-01-13
PCT/CN2020/138735 WO2021129690A1 (en) 2019-12-23 2020-12-23 Cross-component adaptive loop filtering for video coding

Publications (1)

Publication Number Publication Date
CN114902662A true CN114902662A (zh) 2022-08-12

Family

ID=76575693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080089822.5A Pending CN114902662A (zh) 2019-12-23 2020-12-23 用于视频译码的跨分量自适应环路滤波

Country Status (12)

Country Link
US (1) US20220329794A1 (zh)
EP (1) EP4070545A4 (zh)
JP (1) JP2023508060A (zh)
KR (1) KR20220110327A (zh)
CN (1) CN114902662A (zh)
AU (1) AU2020414917A1 (zh)
BR (1) BR112022012383A2 (zh)
CA (1) CA3162821A1 (zh)
CL (1) CL2022001730A1 (zh)
IL (1) IL294258A (zh)
MX (1) MX2022007865A (zh)
WO (1) WO2021129690A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021051046A1 (en) 2019-09-14 2021-03-18 Bytedance Inc. Quantization parameter for chroma deblocking filtering
CN114651442A (zh) 2019-10-09 2022-06-21 字节跳动有限公司 视频编解码中的跨分量适应性回路滤波
KR20220073745A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 잔차 및 필터링의 공동 코딩
EP4055827A4 (en) 2019-12-09 2023-01-18 ByteDance Inc. USING QUANTIFICATION GROUPS IN VIDEO CODING
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding
JP7444997B2 (ja) * 2020-01-01 2024-03-06 バイトダンス インコーポレイテッド ビデオコーディングのためのクロスコンポーネント適応ループフィルタリング
CN115211130B (zh) 2020-02-21 2024-04-09 抖音视界有限公司 基于条带和片图片分割的信令通知的处理视频数据的方法
CN115516857A (zh) * 2020-05-22 2022-12-23 阿里巴巴集团控股有限公司 用于处理视频内容的方法和装置
CN117616758A (zh) * 2021-08-04 2024-02-27 Lg 电子株式会社 图像编码/解码方法、用于发送比特流的方法以及存储比特流的记录介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8548062B2 (en) * 2010-07-16 2013-10-01 Sharp Laboratories Of America, Inc. System for low resolution power reduction with deblocking flag
US20120039383A1 (en) * 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags
CN104683819A (zh) * 2015-01-31 2015-06-03 北京大学 一种自适应环路滤波方法及装置
US10419757B2 (en) * 2016-08-31 2019-09-17 Qualcomm Incorporated Cross-component filter
US11451773B2 (en) * 2018-06-01 2022-09-20 Qualcomm Incorporated Block-based adaptive loop filter (ALF) design and signaling
US11432016B2 (en) * 2019-12-05 2022-08-30 Hfi Innovation Inc. Methods and apparatuses of syntax signaling constraint for cross-component adaptive loop filter in video coding system

Also Published As

Publication number Publication date
US20220329794A1 (en) 2022-10-13
EP4070545A1 (en) 2022-10-12
EP4070545A4 (en) 2023-03-08
MX2022007865A (es) 2022-10-07
JP2023508060A (ja) 2023-02-28
WO2021129690A1 (en) 2021-07-01
KR20220110327A (ko) 2022-08-05
CA3162821A1 (en) 2021-07-01
CL2022001730A1 (es) 2023-01-27
IL294258A (en) 2022-08-01
BR112022012383A2 (pt) 2022-08-30
AU2020414917A1 (en) 2022-07-21

Similar Documents

Publication Publication Date Title
US11736695B2 (en) Performing chroma deblocking for blocks which use joint chroma coding
WO2021129690A1 (en) Cross-component adaptive loop filtering for video coding
CN115567716A (zh) 编码器、解码器及对应方法和装置
CN113508592A (zh) 编码器、解码器及相应的帧间预测方法
CN112673626A (zh) 各分割约束元素之间的关系
KR20210151248A (ko) 적응 루프 필터를 사용하는 인코더, 디코더 및 대응하는 방법들
CN114424571A (zh) 编码器、解码器及对应方法
CN113455005A (zh) 用于帧内子分区译码工具所产生的子分区边界的去块效应滤波器
CN114450958A (zh) 用于减小增强插值滤波器的内存带宽的仿射运动模型限制
CN114679583B (zh) 视频编码器、视频解码器及对应方法
CN114946181A (zh) 用于视频译码的参考图像管理方法
CN115349257A (zh) 基于dct的内插滤波器的使用
CN114586362A (zh) 色度量化参数指示方法和装置
CN114556923B (zh) 编码器、解码器和使用插值滤波的对应方法
CN114930840A (zh) 增强型插值滤波器的运动矢量范围的推导
CN114930834A (zh) 编码器、解码器及灵活档次配置的对应方法
CN113692740A (zh) 用于无除法帧内预测的方法和装置
CN116489389B (zh) 编码器、解码器及对应方法
CN114424554B (zh) 色度qp偏移表指示和推导的方法和装置
EP4052467A2 (en) A decoder of coding block partitioning restrictions derivations
CN114503593A (zh) 编码器、解码器及对应方法
CN118138782A (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