CN113287300A - 针对照度补偿的块大小限制 - Google Patents

针对照度补偿的块大小限制 Download PDF

Info

Publication number
CN113287300A
CN113287300A CN201980086680.4A CN201980086680A CN113287300A CN 113287300 A CN113287300 A CN 113287300A CN 201980086680 A CN201980086680 A CN 201980086680A CN 113287300 A CN113287300 A CN 113287300A
Authority
CN
China
Prior art keywords
block
size
illumination compensation
block size
video
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
CN201980086680.4A
Other languages
English (en)
Inventor
V·谢廖金
W-J·钱
M·卡切夫维茨
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN113287300A publication Critical patent/CN113287300A/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/176Methods 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 block, e.g. a macroblock
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

描述了用于限制块大小进行照度补偿的系统、方法和计算机可读存储介质。示例方法可以包括:获得视频数据的图片的块;确定块的大小;确定块的大小是否等于或小于与块大小限制相关联的第一块大小或者块的大小是否大于与视频译码流水线结构相关联的第二块大小,块大小限制用于限制针对具有等于或小于与块大小限制相关联的第一块大小的相应大小的块的双向帧间预测;以及基于确定块的大小等于或小于第一块大小或者大于第二块大小,来禁用针对块的照度补偿。

Description

针对照度补偿的块大小限制
技术领域
本申请与视频译码和压缩相关。更具体地,本申请涉及执行改进的局部照度补偿的系统和方法。
背景技术
许多设备和系统允许视频数据被处理和输出以供消费。数字视频数据包括大量数据,以满足消费者和视频提供者的需求。例如,视频数据的消费者期望最高质量的视频,其具有高保真度、高分辨率、高帧速率等。结果,满足这些需求所需要的大量视频数据为处理和存储视频数据的通信网络和设备带来了负担。
各种视频译码技术可以用于对视频数据进行压缩。可以根据一种或多种视频译码标准来执行视频译码。例如,视频译码标准包括高效率视频译码(HEVC)、高级视频译码(AVC)、MPEG-2第2部分编码(MPEG代表运动图像专家组)、VP9、开放媒体联盟(AOMedia)视频1(AV1)、基本视频译码(EVC)等。视频译码通常利用预测方法(例如,帧间预测、帧内预测等),预测方法利用在视频图像或序列中存在的冗余。视频译码技术的目标是将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的降级。随着不断发展的视频服务变得可用,需要具有更好的译码效率的编码技术。
发明内容
照度补偿可以用于补偿一个或多个图片之间的照度变化。然而,在处理视频数据的块时,照度补偿可能引入额外的处理成本(例如,存储器成本、计算成本、性能成本等)和复杂性。相应地,在一些示例中,为了避免某些不兼容或不一致性并且降低处理带宽、功率、成本和复杂性,本文的技术可以在处理特定大小的块时选择性地禁用(例如,限制、禁止、抑制、避免、不应用等)照度补偿。在一些情况下,视频译码技术可能提供对用于特定大小的块的特定预测模式的限制,以便降低针对这样的块的处理复杂性。本文所公开的技术可以通过同样禁用针对这些块的照度补偿来类似地降低针对这样的块的处理复杂性(或避免引入额外的处理复杂性)。
例如,一些视频译码技术可以限制针对特定大小的块的双向帧间预测,以减少最坏情况的存储器带宽和复杂性。例如,在联合探索视频小组(JVET)的通用视频译码(VVC)标准中,4x4块提供了最坏情况的复杂性。因此,在VVC中,限制针对4x4的双向帧间预测以降低最坏情况的存储器带宽和复杂性。其它示例译码技术可以类似地限制针对特定块大小的双向帧间预测,以降低复杂性。
为了类似地降低针对特定块大小(诸如如上所述的其中双向帧间预测被限制的块大小)的处理复杂性,本文描述的技术可以禁用针对这种大小的块的照度补偿。例如,系统和/或过程可以阻止照度补偿被应用于针对其的双向帧间预测被限制的特定大小的块。系统和/或过程可以确定将针对特定大小的块不应用双向帧间预测。然后,系统和/或过程可以确定针对该块不应用照度补偿。例如,系统和/或过程可以禁用针对该块的照度补偿或决定针对该块不启用照度补偿。通过针对使得双向帧间预测被限制以降低复杂性的那些块禁用或不应用照度补偿,系统和/或过程可以降低针对那些块的处理成本和复杂性和/或避免引入照度补偿的额外复杂性。
为了进一步说明,使用上面的VVC示例(其中针对4x4块限制双向帧间预测),系统和/或过程可以限制或避免针对4x4块使用照度补偿,以便降低针对这样的块的处理复杂性或者避免引入照度补偿的额外复杂性。因此,系统和/或过程可以在没有照度补偿的情况下处理4x4块。在一些情况下,当系统和/或过程确定针对块不应用照度补偿时,系统和/或过程可以确定不用信号通知针对该块的照度补偿标志(或照度补偿(IC)标志)。在其它情况下,响应于确定针对块不应用照度补偿,系统和/或过程可以确定用信号通知针对该块的照度补偿标志,该照度补偿标志具有指示将针对该块不执行照度补偿的值。
本文描述的技术还可以限制针对超过视频译码流水线结构中的块的大小的块大小使用照度补偿。例如,如果使用64x64流水线结构来实现编解码器,则在将照度补偿应用于在64x64流水线结构内不适配的较大的块(诸如128xN块)时可能出现问题。为了进一步说明,使用128xN块作为示例,将需要用于当前块的参考和相邻样本中的128个参考样本来推导照度补偿参数。然而,由于128个样本不适配64x64流水线结构,因此系统和/或过程可以禁用或决定针对大于64x64的块不启用/应用照度补偿,以便避免由于针对这些块使用照度补偿而引起的问题。
尽管上面使用64x64流水线结构和128xN块大小作为示例,但是本文的技术可以类似地应用于任何块大小和/或流水线结构。例如,在涉及与以上示例中的64x64流水线结构不同的流水线结构的情况下,系统和/或过程可以针对大于该特定流水线结构中的块的块禁用或决定不启用/应用照度补偿。在一些情况下,系统和/或过程可以不用信号通知针对使得照度补偿被禁用或以其它方式不启用/应用的块的照度补偿模式标志。在一些示例中,响应于确定不对这些块应用照度补偿,系统和/或过程可以确定用信号通知针对这些块的一个或多个照度补偿标志,其具有指示将针对那些块不执行照度补偿的值。
本文描述了用于将局部照度补偿(LIC)与各种预测模式选择性地应用的系统、方法和计算机可读介质。根据至少一个示例,提供了一种对视频数据进行译码的方法。所述方法可以包括:获得视频数据的图片的块;确定所述块的大小;确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
根据至少一个示例,提供了一种用于对视频数据进行译码的装置。所述装置可以包括:至少一个存储器;以及一个或多个处理器,其在电路中实现并且被配置为:获得视频数据的图片的块;确定所述块的大小;确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
根据至少一个示例,提供了一种用于对视频数据进行译码的非暂时性计算机可读介质。所述非暂时性计算机可读介质可以包括存储在其上的指令,所述指令在由一个或多个处理器执行时使得所述一个或多个处理器进行以下操作:获得视频数据的图片的块;确定所述块的大小;确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
根据至少一个示例,提供了一种用于对视频数据进行译码的装置。所述装置可以包括用于进行以下操作的单元:获得视频数据的图片的块;确定所述块的大小;确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
在一些方面中,上述方法、装置和计算机可读介质可以包括:基于禁用针对所述块的所述照度补偿,来将与所述块相关联的照度补偿标志的值设置为假,其中,所述照度补偿标志的被设置为假的所述值指示禁用针对所述块的照度补偿。
在一些方面中,上述方法、装置和计算机可读介质可以包括:确定所述视频数据的图片的不同块的大小是否大于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否小于与所述视频译码流水线结构相关联的所述第二块大小;确定所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小;以及基于所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小,启用针对所述不同块的照度补偿。
在一些方面中,上述方法、装置和计算机可读介质可以包括:基于启用针对所述不同块的所述照度补偿,来将与所述不同块相关联的照度补偿标志的值设置为真,其中,所述照度补偿标志的被设置为真的所述值指示启用针对所述不同块的照度补偿。
在一些方面中,上述方法、装置和计算机可读介质可以包括:基于所述块的一个或多个相邻块和被选择用于所述块的帧间预测的参考块的一个或多个额外相邻块,来推导用于所述不同块的一个或多个照度补偿参数;基于所述一个或多个照度补偿参数来针对所述不同块应用照度补偿;以及基于被应用于所述块的所述照度补偿来重构所述块的样本。
在一些方面中,上述方法、装置和计算机可读介质可以包括:基于所述块的大小小于与所述块大小限制相关联的所述第一块大小,来确定针对所述块不应用双向帧间预测。
在上述方法、装置和计算机可读介质的一些方面中,禁用针对所述块的照度补偿可以是基于确定针对所述块不应用双向帧间预测。
在上述方法、装置和计算机可读介质的一些方面中,对视频数据进行译码可以包括对视频数据进行解码。
在一些方面中,上述方法、装置和计算机可读介质可以包括:基于预测模式并且在没有所述照度补偿的情况下对所述块进行解码。
在一些方面中,上述方法、装置和计算机可读介质可以包括:确定用于所述块的残差值;针对所述块执行预测模式;以及基于用于所述块的所述残差值和针对所述块执行的所述预测模式来重构所述块的至少一个样本。
在上述方法、装置和计算机可读介质的一些方面中,对视频数据进行译码可以包括对视频数据进行编码。在一些方面中,上述方法、装置和计算机可读介质可以包括:生成经编码的视频比特流,所述经编码的视频比特流包括所述视频数据的图片的所述块。
在一些方面中,上述方法、装置和计算机可读介质可以包括:在所述经编码的视频比特流中用信号通知一个或多个照度补偿标志,所述一个或多个照度补偿标志包括关于禁用针对所述块的照度补偿的指示。
在一些方面中,上述方法、装置和计算机可读介质可以包括:用信号通知所述经编码的视频比特流。
在上述方法、装置和计算机可读介质的一些方面中,确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况可以包括确定照度补偿被限制。在上述方法、装置和计算机可读介质的一些方面中,基于确定照度补偿被限制,与所述块相关联的照度补偿标志不在所述经编码的视频比特流中用信号通知。
在一些方面中,上述方法、装置和计算机可读介质可以包括:确定所述视频数据的图片的不同块的大小是否等于或小于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否大于与所述视频译码流水线结构相关联的所述第二块大小;确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,禁用针对所述不同块的照度补偿。
在一些方面中,上述装置可以包括移动设备,其具有用于捕获一个或多个图片的相机。
在一些方面中,上述装置可以包括用于显示一个或多个图片的显示器。
该发明内容既不旨在标识所要求保护的主题的关键或必要特征,也不旨在单独用于确定所要求保护的主题的范围。通过参考本专利的整个说明书的适当部分、任何或所有附图以及每个权利要求,应当理解该主题。
在参考以下说明书、权利要求和附图之后,前述内容以及其它特征和实施例将变得更加显而易见。
附图说明
下面参考以下附图来详细描述本申请的说明性实施例:
图1是示出根据一些示例的编码设备和解码设备的示例的框图;
图2A是示出根据一些示例的用于合并模式的示例空间相邻运动矢量候选的概念图;
图2B是示出根据一些示例的用于高级运动矢量预测(AMVP)模式的示例空间相邻运动矢量候选的概念图;
图3A是示出根据一些示例的示例时间运动矢量预测器(TMVP)候选的概念图;
图3B是示出根据一些示例的运动矢量缩放的示例的概念图;
图4A是示出根据一些示例的用于估计用于当前译码单元的照度补偿(IC)参数的当前译码单元的相邻样本的示例的概念图;
图4B是示出根据一些示例的用于估计用于当前译码单元的IC参数的参考块的相邻样本的示例的概念图;
图5A是示出根据一些示例的用于推导用于当前译码单元的照度补偿(IC)参数的当前译码单元的相邻样本的示例的概念图;
图5B是示出根据一些示例的用于推导用于当前译码单元的IC参数的参考块的相邻样本的示例的概念图;
图6是示出根据一些示例的当前块的邻居重构样本和用于单向帧间预测的参考块的邻居样本的示例的概念图;
图7是示出根据一些示例的当前块的邻居重构样本和用于双向帧间预测的两个参考块的邻居样本的示例的概念图;
图8是示出根据一些示例的用于在处理特定大小的块时选择性地限制照度补偿的示例方法的流程图;
图9是示出根据一些示例的用于对视频数据进行解码的方法的示例的流程图;
图10是示出根据一些示例的用于对视频数据进行编码的方法的示例的流程图;
图11A是示出根据一些示例的其中基于针对视频译码算法定义的块大小限制来将当前块的照度补偿标志设置为关闭的示例场景的图;
图11B是示出根据一些示例的其中基于针对视频译码算法定义的块大小限制来将当前块的照度补偿标志设置为开启的示例场景的图;
图11C和图11D是示出根据一些示例的其中基于针对视频译码算法定义的基于流水线结构块大小的限制来设置用于当前块的照度补偿标志的示例场景的图;
图12是示出根据一些示例的示例视频编码设备的框图;以及
图13是示出根据一些示例的示例视频解码设备的框图。
具体实施方式
下文提供了本公开内容的某些方面和实施例。如对于本领域技术人员将显而易见的,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以相结合地应用。在以下描述中,出于解释的目的,阐述了具体细节以便提供对本申请的实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实施各个实施例。附图和描述并不旨在是限制性的。
随后的描述仅提供了示例性实施例,并且不旨在限制本公开内容的范围、适用性或配置。确切而言,对这些示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的可行描述。应当理解的是,在不脱离如在所附的权利要求书中阐述的本申请的精神和范围的情况下,可以对元素的功能和布置进行各种改变。
视频译码设备实现视频压缩技术以对视频数据高效地编码和解码。视频压缩技术可以包括应用不同的预测模式(包括空间预测(例如,帧内预测(intra-frame prediction)或帧内预测(intra-prediction))、时间预测(例如,帧间预测(inter-frame prediction)或帧间预测(inter-prediction))、层间预测(跨视频数据的不同层)、和/或其它预测技术),以减少或去除在视频序列中固有的冗余。视频编码器可以将原始视频序列的每个图片分割为矩形区域,所述矩形区域被称为视频块或译码单元(下面将更加详细地描述)。可以使用特定的预测模式来对这些视频块进行编码。
视频块可以以一种或多种方式划分为一组或多组更小的块。块可以包括译码树块、预测块、变换块或其它适当的块。除非另外指定,否则通常对“块”的引用可以指代这样的视频块(例如,如本领域普通技术人员将理解的,译码树块、译码块、预测块、变换块或其它合适的块或子块)。此外,这些块中的每个块在本文中也可以被互换地称为“单元”(例如,译码树单元(CTU)、译码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可以指示被编码在比特流中的译码逻辑单元,而块可以指示过程所针对的视频帧缓冲器中的一部分。
对于帧间预测模式,视频编码器可以搜索在帧(或图片)中位于另一时间位置上的与正被编码的块类似的块,被称为参考帧或参考图片。视频编码器可以将搜索限制为与要被编码的块相距特定的空间位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动矢量来定位最佳匹配。对于帧内预测模式,视频编码器可以基于来自同一图片内的先前编码的相邻块的数据,使用空间预测技术来形成预测块。
视频编码器可以确定预测误差。例如,可以将预测确定为在正被编码的块与预测块中的像素值之间的差。预测误差也可以被称为残差。视频编码器还可以将变换应用于预测误差(例如,离散余弦变换(DCT)或其它适当的变换)以生成变换系数。在变换之后,视频编码器可以对变换系数进行量化。经量化的变换系数和运动矢量可以使用语法元素来表示,并且与控制信息一起形成视频序列的译码表示。在一些情况下,视频编码器可以对语法元素进行熵译码,从而进一步减少需要用于其表示的比特数量。
视频解码器可以使用以上讨论的语法元素和控制信息来构造用于对当前帧进行解码的预测数据(例如,预测块)。例如,视频解码器可以将预测块和经压缩的预测误差相加。视频解码器可以通过使用量化系数对变换基函数进行加权来确定经压缩的预测误差。在经重构的帧与原始帧之间的差被称为重构误差。
在一些示例中,处理视频数据的一种或多种系统和方法涉及在基于块的视频译码中推导或估计照度补偿(IC)参数。在一些情况下,视频编码器和/或视频解码器可以执行局部照度补偿(LIC)(或照度补偿),以对一个或多个图片之间的照度(例如,明度)变化高效地译码。视频编码器和/或视频解码器可以确定用于正被编码或解码的译码块或译码单元的一个或多个IC参数(例如,偏移、一个或多个缩放因子、移位数或其它合适的IC参数)。IC参数可以是基于多个参考块的样本、当前块的一个或多个相邻块的样本和/或其它信息来确定的。视频解码器可以利用IC参数和/或其它数据来构造用于解码当前块的预测数据。
图1是示出包括编码设备104和解码设备112的系统100的示例的框图。编码设备104可以是源设备的一部分,并且解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,诸如移动或固定电话手机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型计算机或笔记本计算机、平板计算机、机顶盒、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、互联网协议(IP)相机、或任何其它适当的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发机。本文描述的编码技术适用于在各种多媒体应用中的视频编码,包括流式视频传输(例如,通过互联网)、电视广播或传输、对用于存储在数据存储介质上的数字视频的编码、对被存储在数据存储介质上的数字视频的解码、或其它应用。如本文所使用的,术语译码(coding)可以指代编码(encoding)和/或解码(decoding)。在一些示例中,系统100可以支持单向或双向视频传输,以支持诸如视频会议、视频流式传输、视频回放、视频广播、游戏和/或视频电话之类的应用。
编码设备104(或编码器)可以用于使用视频译码标准或协议来对视频数据进行编码,以生成经编码的视频比特流。视频译码标准的示例包括ITU-T H.261、ISO/IEC MPEG-1视频(visual)、ITU-T H.262或ISO/IEC MPEG-2视频、ITU-T H.263、ISO/IEC MPEG-4视频、ITU-T H.264(也被称为ISO/IEC MPEG-4AVC)(包括其可伸缩视频译码(SVC)和多视图视频译码(MVC)扩展)、以及高效率视频译码(HEVC)或ITU-T H.265。存在涉及多层视频译码的对HEVC的各种扩展,包括范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)和可伸缩扩展(SHVC)。ITU-T视频译码专家组(VCEG)和ISO/IEC运动图像专家组(MPEG)的视频译码联合协作小组(JCT-VC)以及3D视频译码扩展开发联合协作小组(JCT-3V)已经开发了HEVC和其扩展。
MPEG和ITU-T VCEG也已经组建了联合探索视频小组(JVET),以探索用于下一代视频译码标准的新译码工具,其被命名为通用视频译码(VVC)。参考软件被称为VVC测试模型(VTM)(或JEM(联合探索模型))。VVC的目标是提供相比于现有HEVC标准而言在压缩性能方面的显著改进,从而辅助部署更高质量的视频服务和新兴应用(例如,诸如360°全向沉浸式多媒体、高动态范围(HDR)视频等)。VP9、开放媒体联盟(AOMedia)视频1(AV1)和基本视频译码(EVC)是本文描述的技术可以应用于其的其它视频译码标准。
本文描述的技术可以应用于现有视频编解码器(例如,高效率视频译码(HEVC)、高级视频译码(AVC)或其它适当的现有视频编解码器)中的任何一者,和/或可以是用于正在开发的任何视频译码标准和/或将来的视频译码标准(诸如,正在开发或将要开发的VVC和/或其它视频译码标准)的高效译码工具。例如,可以使用诸如VVC、HEVC、AVC和/或其扩展之类的视频编解码器来执行本文描述的示例。然而,本文描述的技术和系统也可以适用于其它译码标准,诸如MPEG、JPEG(或用于静止图像的其它译码标准)、VP9、AV1、其扩展、或已经可用或尚不可用或开发的其它适当的译码标准。因此,尽管可能参考特定的视频译码标准来描述本文描述的技术和系统,但是本领域普通技术人员将明白的是,不应当将该描述解释为仅适用于该特定标准。
参照图1,视频源102可以将视频数据提供给编码设备104。视频源102可以是源设备的一部分,或者可以是除了源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、照相电话、视频电话等),包含被存储的视频的视频存档单元、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、此类源的组合、或任何其它适当的视频源。
来自视频源102的视频数据可以包括一个或多个输入图片或帧。图片或帧是静止图像,其在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不作为视频的一部分的静止图像。在HEVC、VVC和其它视频译码规范中,视频序列可以包括一系列图片。图片可以包括三个样本阵列,其被表示为SL、SCb和SCr。SL是亮度样本的二维阵列,SCb是Cb色度样本的二维阵列,并且SCr是Cr色度样本的二维阵列。色度(chrominance)样本在本文中也可以被称为“色度(chroma)”样本。像素可以指代针对图片的阵列中的给定位置的所有三个分量(亮度和色度样本)。在其它情况下,图片可以是单色的,并且可以仅包括亮度样本的阵列,在这种情况下,术语像素和样本可以互换地使用。关于本文中出于说明性目的而描述的提及各个样本的示例技术,可以将相同技术应用于像素(例如,针对图片的阵列中的给定位置的所有三个样本分量)。关于本文中出于说明性目的而描述的提及像素(例如,针对图片的阵列中的给定位置的所有三个样本分量)的示例技术,可以将相同的技术应用于各个样本。
编码设备104的编码器引擎106(或编码器)对视频数据进行编码以生成经编码的视频比特流。在一些示例中,经编码的视频比特流(或“视频比特流”或“比特流”)是一系列的一个或多个经译码的视频序列。经译码的视频序列(CVS)包括一系列访问单元(AU),所述一系列访问单元从在基本层中具有随机访问点图片并且具有某些属性的AU开始直到在基本层中具有随机访问点图片并且具有某些属性的下一个AU,并且不包括该下一个AU。例如,开始CVS的随机访问点图片的某些属性可以包括等于1的RASL标志(例如,NoRaslOutputFlag)。否则,随机访问点图片(其中RASL标志等于0)并不开始CVS。访问单元(AU)包括一个或多个经译码的图片以及与共享相同输出时间的经译码的图片相对应的控制信息。图片的经译码的切片在比特流级别被封装为数据单元,所述数据单元被称为网络抽象层(NAL)单元。例如,HEVC视频比特流可以包括一个或多个CVS,其包括NAL单元。NAL单元中的每个NAL单元具有NAL单元报头。在一个示例中,报头对于H.264/AVC(除了多层扩展之外)为一个字节,而对于HEVC为两个字节。NAL单元报头中的语法元素采用指定的比特,并且因此对于所有种类的系统和传输层(诸如传输流、实时传输(RTP)协议、文件格式以及其它)都是可见的。
在HEVC标准中存在两类NAL单元,包括视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括经译码的图片数据的一个切片或切片段(下文描述),并且非VCL NAL单元包括与一个或多个经译码的图片有关的控制信息。在一些情况下,NAL单元可以被称为分组。HEVC AU包括:包含经译码的图片数据的VCL NAL单元、以及与经译码的图片数据相对应的非VCL NAL单元(如果有的话)。
NAL单元可以包含形成视频数据的译码表示的比特序列(例如,经编码的视频比特流、比特流的CVS等),诸如在视频中的图片的译码表示。编码器引擎106通过将每个图片分割为多个切片来生成图片的译码表示。一切片是独立于其它切片的,使得可以对该切片中的信息进行译码,而不依赖于来自在同一图片内的其它切片的数据。切片包括一个或多个切片段,其包括独立的切片段以及(如果存在的话)依赖于先前切片段的一个或多个从属切片段。
在HEVC中,然后将切片分割为亮度样本和色度样本的译码树块(CTB)。亮度样本的CTB和色度样本的一个或多个CTB连同用于样本的语法一起被称为译码树单元(CTU)。CTU还可以被称为“树块”或“最大译码单元”(LCU)。CTU是用于HEVC编码的基本处理单元。CTU可以被拆分为尺寸不同的多个译码单元(CU)。CU包含被称为译码块(CB)的亮度和色度样本阵列。
亮度和色度CB可以被进一步拆分为预测块(PB)。PB是亮度分量或色度分量的样本块,其使用相同的运动参数来进行帧间预测或块内复制(IBC)预测(当可用或被启用以供使用时)。亮度PB和一个或多个色度PB连同关联的语法一起形成预测单元(PU)。对于帧间预测,运动参数集(例如,一个或多个运动矢量、参考索引等)是在用于每个PU的比特流中用信号通知的,并且用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以被称为运动信息。CB也可以被分割为一个或多个变换块(TB)。TB表示色彩分量的样本的正方形块,其中残差变换(例如,在一些情况下,相同的二维变换)被应用于其以对预测残差信号进行译码。变换单元(TU)表示亮度和色度样本的TB以及对应的语法元素。以下更加详细地描述变换译码。
CU的尺寸对应于译码模式的尺寸并且可以是正方形形状。例如,CU的尺寸可以是8x8个样本、16x16个样本、32x32个样本、64x64个样本、或高达对应的CTU的尺寸的任何其它适当的尺寸。短语“N x N”在本文中用于指代视频块在垂直和水平维度方面的像素尺寸(例如,8个像素x8个像素)。块中的像素可以是按行和列来排列的。在一些实现中,块在水平方向上可以不具有与垂直方向上相同数量的像素。与CU相关联的语法数据可以描述例如将CU分割为一个或多个PU。分割模式可以在CU是经帧内预测模式编码的还是经帧间预测模式编码的之间而不同。PU可以被分割为非正方形形状。与CU相关联的语法数据还可以例如描述根据CTU将CU分割为一个或多个TU。TU可以是正方形或非正方形形状。
根据HEVC标准,可以使用变换单元(TU)来执行变换。对于不同的CU,TU可以不同。可以基于在给定CU内的PU的尺寸来设定TU的尺寸。TU可以具有与PU相同的尺寸或者小于PU。在一些示例中,可以使用被称为残差四叉树(RQT)的四叉树结构来将与CU相对应的残差样本细分为更小的单元。RQT的叶子节点可以对应于TU。与TU相关联的像素差值可以被变换以产生变换系数。然后可以由编码器引擎106对变换系数进行量化。
一旦视频数据的图片被分割为CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或预测块以获得残差(下文描述)。对于每个CU,可以使用语法数据在比特流内用信号通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用在图片内在空间上相邻的样本之间的相关性。例如,使用帧内预测,每个PU是从在相同图片中的相邻图像数据进行预测的,使用例如DC预测以找到用于PU的平均值,使用平面预测以使平面表面适配PU,使用方向预测以从相邻数据进行推断,或者使用任何其它适当的预测类型。帧间预测使用在图片之间的时间相关性,以便推导出用于图像样本块的运动补偿预测。例如,使用帧间预测,每个PU是使用运动补偿预测来从在一个或多个参考图片(按照输出顺序在当前图片之前或之后)中的图像数据进行预测的。例如,可以在CU级别处作出是使用图片间预测还是使用图片内预测来对图片区域进行译码的决定。
编码器引擎106和解码器引擎116(下文更加详细地描述的)可以被配置为根据VVC进行操作。根据VVC,视频译码器(诸如编码器引擎106和/或解码器引擎116)将图片分割为多个译码树单元(CTU)(其中,亮度样本的CTB和色度样本的一个或多个CTB,以及用于样本的语法一起被称为CTU)。视频译码器可以根据树结构(诸如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来分割CTU。QTBT结构去除了多种分割类型的概念,诸如在HEVC的CU、PU和TU之间的区分。QTBT结构包括两个级别,其包括:根据四叉树分割而被分割的第一级别、以及根据二叉树分割而被分割的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于译码单元(CU)。
在MTT分割结构中,可以使用四叉树分割、二叉树分割以及一种或多种类型的三叉树分割来对块进行分割。三叉树分割是其中块被分为三个子块的分割。在一些示例中,三叉树分割将块划分为三个子块,而不通过中心来划分原始块。MTT中的分割类型(例如,四叉树、二叉树和三叉树)可以是对称的或不对称的。
在一些示例中,视频译码器可以使用单个QTBT或MTT结构来表示亮度和色度分量中的每一者,而在其它示例中,视频译码器可以使用两个或更多个QTBT或MTT结构,诸如用于亮度分量的一个QTBT或MTT结构以及用于两个色度分量的另一个QTBT或MTT结构(或者用于相应色度分量的两个QTBT和/或MTT结构)。
视频译码器可以被配置为使用按照HEVC的四叉树分割、QTBT分割、MTT分割、或其它分割结构。出于说明的目的,本文的描述可以指代QTBT分割。然而,应当理解的是,本公开内容的技术还可以应用于被配置为使用四叉树分割或者还使用其它类型的分割的视频译码器。
在一些示例中,图片的一个或多个切片被指派切片类型。切片类型包括I切片、P切片和B切片。I切片(帧内,可独立地解码)是图片的仅通过帧内预测来译码的切片,并且因此是可独立解码的,这是因为I切片仅需要帧内的数据来预测切片的任何预测单元或预测块。P切片(单向预测帧)是图片的可以利用帧内预测和单向帧间预测来译码的切片。P切片内的每个预测单元或预测块是利用帧内预测或帧间预测来译码的。当应用帧间预测时,预测单元或预测块是仅通过一个参考图片来预测的,并且因此参考样本仅来自一个帧的一个参考区域。B切片(双向预测帧)是图片的可以利用帧内预测和帧间预测(例如,双预测或单预测)来译码的切片。可以从两个参考图片来对B切片的预测单元或预测块进行双向预测,其中每个图片贡献一个参考区域,并且对两个参考区域的样本集合进行加权(例如,利用相等的权重或利用不同的权重)以产生双向预测块的预测信号。如上所解释的,一个图片的切片被独立地译码。在一些情况下,图片可以仅作为一个切片被译码。
如上所提到的,图片的图片内预测利用在该图片内的空间相邻样本之间的相关性。存在多种帧内预测模式(也被称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35种模式,其包括平面模式、DC模式和33种角度模式(例如,对角帧内预测模式和与对角帧内预测模式邻接的角度模式)。如以下表1所示,对35种帧内预测模式进行索引。在其它示例中,可以定义更多的帧内模式,其包括可能尚未由33个角度模式表示的预测角度。在其它示例中,与角度模式相关联的预测角度可以不同于在HEVC中使用的那些预测角度。
帧内预测模式 关联的名称
0 INTRA_PLANAR
1 INTRA_DC
2..34 INTRA_ANGULAR2..INTRA_ANGULAR34
表1–帧内预测模式和相关联的名称的规范
图片间预测使用在图片之间的时间相关性,以便推导针对图像样本块的运动补偿预测。使用平移运动模型,在先前解码的图片(参考图片)中块的位置由运动矢量(Δx,Δy)表示,其中,Δx指定参考块相对于当前块的位置的水平位移,而Δy指定参考块相对于当前块的位置的垂直位移。在一些情况下,运动矢量(Δx,Δy)可以是整数样本精确度(也被称为整数精确度),在这种情况下,运动矢量指向参考帧的整数像素网格(或整数像素采样网格)。在一些情况下,运动矢量(Δx,Δy)可以具有分数样本精确度(也被称为分数像素精确度或非整数精确度),以更加准确地捕获基础对象的运动,而不受限于参考帧的整数像素网格。运动矢量的精确度可以通过运动矢量的量化水平来表达。例如,量化水平可以是整数精确度(例如,1像素)或分数像素精确度(例如,1/4像素、1/2像素或其它像素以下的值)。当对应的运动矢量具有分数样本精确度时,将插值应用于参考图片以推导预测信号。例如,可以对在整数位置处可用的样本进行滤波(例如,使用一个或多个插值滤波器)以估计在分数位置处的值。先前解码的参考图片由针对参考图片列表的参考索引(refIdx)来指示。运动矢量和参考索引可以被称为运动参数。可以执行两种图片间预测,其包括单预测和双预测。
在使用双预测进行帧间预测(也被称为双向帧间预测)的情况下,使用两个运动参数集(Δx0,y0,refIdx0和Δx1,y1,refIdx1)来生成两个运动补偿预测(来自同一参考图片或可能来自不同的参考图片)。例如,在双预测的情况下,每个预测块使用两个运动补偿预测信号,并且生成B个预测单元。然后,将两个运动补偿预测进行组合以获得最终的运动补偿预测。例如,可以通过进行平均来组合两个运动补偿预测。在另一示例中,可以使用加权预测,在这种情况下,可以将不同的权重应用于每个运动补偿预测。可以在双预测中使用的参考图片被存储在两个单独的列表中,分别被表示为列表0和列表1。可以在编码器处使用运动估计过程来推导运动参数。
在使用单预测进行帧间预测(也被称为单向帧间预测)的情况下,使用一个运动参数集(Δx0,y0,refIdx0)来从参考图片生成运动补偿预测。例如,在单预测的情况下,每个预测块最多使用一个运动补偿预测信号,并且生成P个预测单元。
PU可以包括与预测过程相关的数据(例如,运动参数或其它适当的数据)。例如,当PU是使用帧内预测来编码时,PU可以包括描述用于PU的帧内预测模式的数据。作为另一示例,当PU是使用帧间预测来编码的时,PU可以包括定义用于PU的运动矢量的数据。定义用于PU的运动矢量的数据可以描述例如运动矢量的水平分量(Δx)、运动矢量的垂直分量(Δy)、用于运动矢量的分辨率(例如,整数精度、四分之一像素精度、或八分之一像素精度)、运动矢量所指向的参考图片、参考索引、用于运动矢量的参考图片列表(例如,列表0、列表1或列表C)、或其任何组合。
在使用帧内预测和/或帧间预测执行预测之后,编码设备104然后可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算与PU相对应的残差值。残差值可以包括在正被译码的当前像素块(PU)与用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,实行帧间预测或帧内预测)之后,编码器引擎106可以通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括像素差值集合,其对在当前块的像素值与预测块的像素值之间的差进行量化。在一些示例中,可以用二维块格式(例如,像素值的二维矩阵或阵列)来表示残差块。在这样的示例中,残差块是像素值的二维表示。
使用块变换来对在执行预测之后可能剩余的任何残差数据进行变换,块变换可以是基于离散余弦变换、离散正弦变换、整数变换、小波变换、其它适当的变换函数、或其任何组合的。在一些情况下,可以将一个或多个块变换(例如,尺寸32x32、16x16、8x8、4x4或其它适当的尺寸)应用于每个CU中的残差数据。在一些实施例中,可以将TU用于由编码器引擎106实现的变换和量化过程。具有一个或多个PU的给定CU也可以包括一个或多个TU。如下文进一步详细描述的,残差值可以使用块变换而被变换为变换系数,并且然后可以使用TU进行量化和扫描,以产生用于熵译码的串行化变换系数。
在一些实施例中,在使用CU的PU进行帧内预测或帧间预测译码之后,编码器引擎106可以计算用于CU的TU的残差数据。PU可以包括空间域(或像素域)中的像素数据。TU可以包括在应用块变换之后在变换域中的系数。如前所述,残差数据可以对应于在未被编码的图片的像素与对应于PU的预测值之间的像素差值。编码器引擎106可以形成包括用于CU的残差数据的TU,并且然后可以对TU进行变换以产生用于CU的变换系数。
编码器引擎106可以执行变换系数的量化。量化通过对变换系数进行量化以减少用于表示系数的数据量来提供进一步的压缩。例如,量化可以减小与系数中的一些或所有系数相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间向下舍入为m比特值,其中n大于m。
一旦执行了量化,则经译码的视频比特流包括经量化的变换系数、预测信息(例如,预测模式、运动矢量、块矢量等)、分割信息以及任何其它适当的数据(诸如其它语法数据)。经译码的视频比特流的不同元素然后可以由编码器引擎106进行熵编码。在一些示例中,编码器引擎106可以利用预定义的扫描顺序来扫描经量化的变换系数,以产生可以被熵编码的串行化矢量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描经量化的变换系数以形成矢量(例如,一维矢量)之后,编码器引擎106可以对该矢量进行熵编码。例如,编码器引擎106可以使用上下文自适应变长译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率区间分割熵译码或另一种适当的熵编码技术。
如前所述,HEVC比特流包括一组NAL单元,其包括VCL NAL单元和非VCL NAL单元。VCL NAL单元包括形成经译码的视频比特流的经译码的图片数据。例如,在VCL NAL单元中存在形成经译码的视频比特流的比特序列。除了其它信息之外,非VCL NAL单元还可以包含具有与经编码的视频比特流有关的高级别信息的参数集。例如,参数集可以包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。参数集的目标的示例包括比特率效率、错误恢复力以及提供系统层接口。每个切片参考单个有效的PPS、SPS和VPS,以访问解码设备112可以用于对切片进行解码的信息。可以为每个参数集译码一标识符(ID),包括VPS ID、SPS ID和PPS ID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每个切片报头包括PPS ID。使用这些ID,可以标识针对给定切片的有效参数集。
PPS包括适用于在给定图片中的所有切片的信息。因此,在图片中的所有切片都参考相同的PPS。在不同图片中的切片也可以参考相同的PPS。SPS包括适用于在相同的经译码的视频序列(CVS)或比特流中的所有图片的信息。如前所述,经译码的视频序列是一系列访问单元(AU),其以在基本层中并且具有某些属性(如上所述)的随机访问点图片(例如,即时解码参考(IDR)图片或断链访问(BLA)图片或其它适当的随机访问点图片)开始,直到在基本层中具有随机访问点图片并且具有某些属性的下一个AU(或者比特流的结尾)并且不包括该下一个AU。SPS中的信息可以不在经译码的视频序列内的图片之间发生变化。经译码的视频序列中的图片可以使用相同的SPS。VPS包括适用于在经译码的视频序列或比特流内的所有层的信息。VPS包括语法结构,所述语法结构具有适用于整个经译码的视频序列的语法元素。在一些实施例中,VPS、SPS或PPS可以与经编码的比特流一起在带内发送。在一些实施例中,VPS、SPS或PPS可以在与包含经译码的视频数据的NAL单元不同的传输中在带外发送。
视频比特流还可以包括补充增强信息(SEI)消息。例如,SEI NAL单元可以是视频比特流的一部分。在一些情况下,SEI消息可能包含解码过程不需要的信息。例如,SEI消息中的信息对于解码器对比特流的视频图片进行解码而言可能不是必要的,但是解码器可以使用该信息来改善对图片(例如,经解码的输出)的显示或处理。SEI消息中的信息可以是被嵌入的元数据。在一个说明性示例中,解码器侧实体可以使用在SEI消息中的信息来改善内容的可视性。在一些情况下,某些应用标准可能强制在比特流中存在此类SEI消息,使得可以为符合该应用标准的所有设备带来质量的改善(例如,除了许多其它示例之外,针对与帧兼容的平面立体3DTV视频格式来携带帧封装的SEI消息,其中,针对视频的每个帧来携带SEI消息,处理恢复点SEI消息,在DVB中使用泛扫描来扫描矩形SEI消息)。
编码设备104的输出110可以在通信链路120上将构成经编码的视频比特流数据的NAL单元发送给接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括由无线网络、有线网络或有线网络和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何适当的无线网络(例如,互联网或其它广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi直连、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆以太网、数字信号线(DSL)等)。可以使用各种装置来实现有线和/或无线网络,诸如基站、路由器、接入点、桥接器、网关、交换机等。可以根据诸如无线通信协议之类的通信标准来调制经编码的视频比特流数据,并且将其发送给接收设备。
在一些示例中,编码设备104可以将经编码的视频比特流数据存储在存储单元108中。输出110可以从编码器引擎106或从存储单元108取得经编码的视频比特流数据。存储单元108可以包括各种分布式或本地访问的数据存储介质中的任何一种。例如,存储单元108可以包括硬盘驱动器、存储盘、闪存、易失性或非易失性存储器、或用于存储经编码的视频数据的任何其它适当的数字存储介质。存储单元108还可以包括用于存储供在帧间预测中使用的参考图片的解码图片缓冲器(DPB)。在另外的示例中,存储单元108可以对应于文件服务器或可以存储由源设备生成的经编码的视频的另一中间存储设备。在这样的情况下,包括解码设备112的接收设备可以经由流式传输或下载来从存储设备访问被存储的视频数据。文件服务器可以是能够存储经编码的视频数据并且将该经编码的视频数据发送给接收设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。接收设备可以通过任何标准数据连接(包括互联网连接)来访问经编码的视频数据。这可以包括适于访问被存储在文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或这两者的组合。经编码的视频数据从存储单元108的传输可以是流式传输、下载传输或其组合。
解码设备112的输入114接收经编码的视频比特流数据,并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储单元118以供解码器引擎116稍后使用。例如,存储单元118可以包括用于存储供在帧间预测中使用的参考图片的DPB。包括解码设备112的接收设备可以经由存储单元108来接收要被解码的经编码的视频数据。可以根据诸如无线通信协议之类的通信标准来对经编码的视频数据进行调制,并且将其发送给接收设备。用于发送经编码的视频数据的通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站、或可以用于促进从源设备到接收设备的通信的任何其它装置。
解码器引擎116可以通过熵解码(例如,使用熵解码器)并且提取构成经编码的视频数据的一个或多个经编码的视频序列的元素,从而对经编码的视频比特流数据进行解码。解码器引擎116然后可以重新缩放经编码的视频比特流数据并且对其执行逆变换。残差数据然后被传递到解码器引擎116的预测阶段。解码器引擎116然后预测像素块(例如,PU)。在一些示例中,将预测与逆变换的输出(残差数据)相加。
解码设备112可以将经解码的视频输出到视频目的地设备122,视频目的地设备122可以包括用于将经解码的视频数据显示给内容的消费者的显示器或其它输出设备。在一些方面中,视频目的地设备122可以是包括解码设备112的接收设备的一部分。在一些方面中,视频目的地设备122可以是不同于接收设备的单独设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可以包括用于实现上述译码技术所必需的其它硬件或软件,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可以被集成为在相应设备中的组合编码器/解码器(编解码器)的一部分。下文参考图11描述了编码设备104的具体细节的示例。下文参考图12描述了解码设备112的具体细节的示例。
图1中示出的示例系统仅是可以在本文中使用的一个说明性示例。用于使用本文描述的技术来处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管一般来说,本公开内容的技术是由视频编码设备或视频解码设备来执行的,但是所述技术还可以由通常被称为“CODEC”的组合视频编码器-解码器来执行。此外,本公开内容的技术还可以由视频预处理器来执行。源设备和接收设备仅是这样的编码设备的示例,其中,源设备生成经编码的视频数据以用于传输给接收设备。在一些示例中,源设备和接收设备可以以基本上对称的方式进行操作,使得这些设备中的每个设备包括视频编码和解码组件。因此,示例系统可以支持在视频设备之间的单向或双向视频传输,例如,以用于视频流式传输、视频回放、视频广播或视频电话。
HEVC标准的扩展包括被称为MV-HEVC的多视图视频译码扩展、以及被称为SHVC的可伸缩视频译码扩展。MV-HEVC和SHVC扩展共享分层译码的概念,其中不同的层被包括在经编码的视频比特流中。经译码的视频序列中的每个层是通过唯一的层标识符(ID)来寻址的。可以在NAL单元的报头中存在层ID,以标识NAL单元所关联的层。在MV-HEVC中,不同的层可以表示视频比特流中的相同场景的不同视图。在SHVC中,提供了以不同的空间分辨率(或图片分辨率)或不同的重构保真度来表示视频比特流的不同的可伸缩层。可伸缩层可以包括基本层(其中层ID=0)和一个或多个增强层(其中层ID=1,2,…n)。基本层可以符合HEVC的第一版本的简档,并且表示比特流中的最低可用层。与基本层相比,增强层具有增加的空间分辨率、时间分辨率或帧速率和/或重构保真度(或质量)。增强层是分层次来组织的,并且可以依赖于(或者可以不依赖于)较低层。在一些示例中,可以使用单标准编解码器对不同的层进行译码(例如,使用HEVC、SHVC或其它译码标准对所有层进行编码)。在一些示例中,可以使用多标准编解码器对不同的层进行译码。例如,可以使用AVC对基本层进行译码,而可以使用SHVC和/或HEVC标准的MV-HEVC扩展来对一个或多个增强层进行译码。
通常,层包括VCL NAL单元集合和对应的非VCL NAL单元集合。向NAL单元指派特定的层ID值。在层可以依赖于较低层的意义上,层可以是分层次的。层集合指代在比特流内表示的自包含的层集合,这意味着在层集合内的层在解码过程中可以依赖于在该层集合中的其它层,但是不依赖于任何其它层来解码。因此,在层集合中的各层可以形成可以表示视频内容的独立比特流。可以通过子比特流提取过程的操作来从另一比特流获得在层集合中的一组层。当解码器希望根据某些参数进行操作时,层集合可以对应于将被解码的该组层。
如上所述,对于每个块,运动信息(本文中也被称为运动参数)集合可以是可用的。运动信息集合包含用于前向预测方向和后向预测方向的运动信息。前向预测方向和后向预测方向是双向预测模式的两个预测方向,在这种情况下,术语“前向”和“后向”不一定具有几何含义。相反,“前向”和“后向”对应于当前图片的参考图片列表0(RefPicList0或L0)和参考图片列表1(RefPicList1或L1)。在一些示例中,当仅有一个参考图片列表可用于图片或切片时,仅有RefPicList0是可用的,并且切片的每个块的运动信息总是前向的。
在一些示例中,在译码过程(例如,运动补偿)中使用运动矢量以及其参考索引。具有关联的参考索引的这种运动矢量被表示为运动信息的单预测集合。对于每个预测方向,运动信息可以包含参考索引和运动矢量。在一些情况下,为了简单起见,运动矢量本身可以按照假定其具有关联的参考索引的方式来引用。参考索引用于标识当前参考图片列表(RefPicList0或RefPicList1)中的参考图片。运动矢量具有水平分量和垂直分量,其提供从当前图片中的坐标位置到由参考索引标识的参考图片中的坐标系的偏移。例如,参考索引可以指示应当用于当前图片中的块的特定参考图片,并且运动矢量可以指示在参考图片中最佳匹配的块(与当前块最佳匹配的块)在参考图片中位于何处。
可以在视频译码标准中使用图片顺序计数(POC)来标识图片的显示顺序。尽管存在一个经编码视频序列内的两个图片可能具有相同的POC值的情况,但是其通常不会发生在经译码的视频序列内。当在比特流中存在多个经译码的视频序列时,具有相同的POC值的图片在解码顺序方面可能彼此更接近。图片的POC值可以用于参考图片列表构造(如在HEVC中的参考图片集合推导)以及运动矢量缩放。
在H.264/AVC中,可以以四种不同的方式来分割每个帧间宏块(MB),其包括:一个16x16 MB分区;两个16x8 MB分区;两个8x16 MB分区;以及四个8x8 MB分区。一个MB中的不同MB分区可以具有针对每个方向的不同的参考索引值(RefPicList0或RefPicList1)。在一些情况下,当MB未被分割为四个8x8 MB分区时,其在每个方向上可以仅具有针对每个MB分区的一个运动矢量。在一些情况下,当MB被分割为四个8x8 MB分区时,每个8x8 MB分区可以被进一步分割为子块,在这种情况下,每个子块在每个方向上可以具有不同的运动矢量。在一些示例中,存在四种不同的方式来从8x8 MB分区得到子块,包括:一个8x8子块;两个8x4子块;两个4x8子块;以及四个4x4子块。每个子块在每个方向上可以具有不同的运动矢量。因此,运动矢量可以以等于高于子块的级别存在。
在AVC中,对于B切片中的跳过和/或直接模式,可以以MB级别或MB分区级别来实现时间直接模式。对于每个MB分区,使用在当前块的RefPicList1[0]中与当前MB分区同位的块的运动矢量来推导运动矢量。可以基于POC距离来对同位块中的每个运动矢量进行缩放。
在AVC中,还可以执行空间直接模式。例如,在AVC中,直接模式还可以根据空间邻居来预测运动信息。
如上所提到的,在HEVC中,切片中的最大译码单元被称为译码树块(CTB)。CTB包含四叉树,其节点是译码单元。在HEVC主简档中,CTB的尺寸范围可以从16x16到64x64。在一些情况下,可以支持8x8 CTB的尺寸。译码单元(CU)可以具有与CTB相同的尺寸,并且小至8x8。在一些情况下,可以利用一种模式来对每个译码单元进行译码。当CU被帧间译码时,CU可以被进一步分割为2或4个预测单元(PU),或者当进一步分割不适用时,CU可以成为仅一个PU。当在一个CU中存在两个PU时,它们可以是一半尺寸的矩形,或者是具有CU的1/4或3/4尺寸的两个矩形。
当CU被帧间译码时,针对每个PU存在一个运动信息集合。另外,可以利用唯一的帧间预测模式来对每个PU进行译码,以推导运动信息集合。
对于HEVC中的运动预测,存在针对预测单元(PU)的两种帧间预测模式,包括合并模式和高级运动矢量预测(AMVP)模式。跳过被视为合并的特殊情况。在AMVP或合并模式下,可以维护针对多个运动矢量预测器的运动矢量(MV)候选列表。在合并模式下当前PU的运动矢量以及参考索引是通过从MV候选列表中提取一个候选来生成的。在一些示例中,如下所述,可以将一个或多个被存储的局部照度补偿(LIC)标志连同被存储的运动矢量一起包括在MV候选列表中。
在其中MV候选列表用于块的运动预测(在适用的情况下,以及照度补偿)的示例中,MV候选列表可以由编码设备和解码设备分别构造。例如,MV候选列表可以由编码设备在对块进行编码时生成,并且可以由解码设备在对块进行解码时生成。可以在编码设备与解码设备之间用信号通知与在MV候选列表中的运动信息候选相关的信息(例如,与一个或多个运动矢量相关的信息,与在一些情况下可以被存储在MV候选列表中的一个或多个LIC标志相关的信息和/或其它信息)。例如,在合并模式下,可以从编码设备向解码设备用信号通知针对所存储的运动信息候选的索引值(例如,在语法结构中,诸如图片参数集(PPS)、序列参数集(SPS)、视频参数集(VPS)、切片报头、在视频比特流中发送或与视频比特流分开发送的补充增强信息(SEI)消息、和/或其它信令)。解码设备可以构造MV候选列表,并且使用用信号通知的参考或索引来从经构造的MV候选列表中获得一个或多个运动信息候选,以用于运动补偿预测。例如,解码设备112可以构造MV候选列表,并且使用来自索引位置的运动矢量(在一些情况下,以及LIC标志)来对块进行运动预测。在AMVP模式的情况下,除了参考或索引之外,还可以将差或残差值作为增量用信号通知。例如,对于AMVP模式,解码设备可以构造一个或多个MV候选列表,并且将增量值应用于在执行对块的运动补偿预测时使用用信号通知的索引值获得的一个或多个运动信息候选。
在一些示例中,MV候选列表包含用于合并模式的多达五个候选以及用于AMVP模式的两个候选。在其它示例中,可以将不同数量的候选包括在用于合并模式和/或AMVP模式的MV候选列表中。合并候选可以包含运动信息集合。例如,运动信息集合可以包括与两个参考图片列表(列表0和列表1)相对应的运动矢量以及参考索引。如果合并候选是通过合并索引来标识的,则参考图片被用于当前块的预测,以及确定关联的运动矢量。然而,在AMVP模式下,针对来自列表0或列表1的每个潜在预测方向,需要将参考索引连同对MV候选列表的MVP索引一起明确地用信号通知,这是因为AMVP候选仅包含运动矢量。在AMVP模式中,可以进一步细化预测运动矢量。
如上所看到的,合并候选对应于完整的运动信息集合,而AMVP候选仅包含用于特定预测方向的一个运动矢量和参考索引。可以类似地从相同的空间和时间相邻块来推导用于两种模式的候选。
在一些示例中,合并模式允许帧间预测的PU从如下的帧间预测的PU继承相同的一个或多个运动矢量、预测方向以及一个或多个参考图片索引:该帧间预测的PU包括从一组空间上相邻的运动数据位置中选择的运动数据位置以及两个时间上同位的运动数据位置中的一个运动数据位置。对于AMVP模式,可以相对于来自由编码器和/或解码器构造的AMVP候选列表中的一个或多个运动矢量预测器(MVP),来对PU的一个或多个运动矢量进行预测译码。在一些情况下,对于PU的单方向帧间预测,编码器和/或解码器可以生成单个AMVP候选列表。在一些情况下,对于PU的双向预测,编码器和/或解码器可以生成两个AMVP候选列表,一个使用来自前向预测方向的空间和时间相邻的PU的运动数据,以及一个使用来自后向预测方向的空间和时间相邻的PU的运动数据。
用于两种模式的候选可以从空间和/或时间相邻块来推导。例如,图2A和图2B包括示出HEVC中的空间相邻候选的概念图。图2A示出了用于合并模式的空间相邻运动矢量(MV)候选。图2B示出了用于AMVP模式的空间相邻运动矢量(MV)候选。虽然对于合并和AMVP模式,根据块来生成候选的方法不同,但是根据用于特定PU(PU0)的相邻块来推导空间MV候选。
在合并模式下,编码器和/或解码器可以通过考虑来自各种运动数据位置的合并候选来形成合并候选列表。例如,如图2A所示,关于在图2A中以数字0-4示出的空间上相邻的运动数据位置,可以推导出多达四个空间MV候选。在合并候选列表中,MV候选可以按照由数字0-4所示的顺序进行排序。例如,位置和顺序可以包括:左侧位置(0)、上方位置(1)、右上方位置(2),左下方位置(3)和左上方位置(4)。
在图2B中所示的AVMP模式下,可以将相邻块分为两组:包括块0和1的左侧组、以及包括块2、3和4的上方组。对于每个组,在相邻块中的引用与用信号通知的参考索引所指示的参考图片相同的参考图片的潜在候选具有最高优先级,以被选择以形成该组的最终候选。可能的是,所有的相邻块都不包含指向同一参考图片的运动矢量。因此,如果无法找到这样的候选,则可以将第一可用候选进行缩放以形成最终候选,因此可以补偿时间距离差。
图3A和图3B包括示出HEVC中的时间运动矢量预测的概念图。将时间运动矢量预测器(TMVP)候选(如果启用并且可用的话)添加到MV候选列表中,其在空间运动矢量候选之后。针对TMVP候选的运动矢量推导的过程对于合并和AMVP模式两者而言是相同的。然而,在一些情况下,在合并模式下针对TMVP候选的目标参考索引可以被设置为零或者可以根据相邻块的参考索引来推导。
用于TMVP候选推导的主要块位置是在同位PU外部的右下块(如在图3A中被示为块“T”),以补偿对用于生成空间相邻候选的上方和左侧块的偏差。然而,如果该块位于当前CTB(或LCU)行外部或者运动信息是不可用的,则可以将该块替换为PU的中心块。从以切片级别指示的同位图片的同位PU来推导用于TMVP候选的运动矢量。类似于AVC中的时间直接模式,可以对TMVP候选的运动矢量进行运动矢量缩放,这可以被执行以补偿距离差。
在HEVC标准中涵盖了运动预测的其它方面。例如,涵盖了合并模式和AMVP模式的若干其它方面。一个方面包括运动矢量缩放。关于运动矢量缩放,假定运动矢量的值是与在呈现时间中的图片的距离成比例的。运动矢量将两个图片(参考图片和包含运动矢量的图片(即包含图片))进行关联。当运动矢量被用于预测其它运动矢量时,基于图片顺序计数(POC)值来计算包含图片和参考图片的距离。
对于要被预测的运动矢量,其关联的包含图片和参考图片两者可以是不同的。因此,(基于POC)计算新的距离。而且,基于这两个POC距离来对运动矢量进行缩放。对于空间相邻候选,用于两个运动矢量的包含图片是相同的,而参考图片是不同的。在HEVC中,运动矢量缩放适用于针对空间和时间相邻候选的TMVP和AMVP两者。
运动预测的另一方面包括人工运动矢量候选生成。例如,如果运动矢量候选列表是不完整的,则生成人工运动矢量候选并且将其插入到列表的末尾处,直到获得所有列表为止。在合并模式下,存在两种类型的人工MV候选:仅针对B切片来推导的组合候选;以及仅用于AMVP的零候选(如果第一种类型没有提供足够的人工候选的话)。对于已经在候选列表中并且具有必要的运动信息的每对候选而言,通过参考在列表0中的图片的第一候选的运动矢量和参考在列表1中的图片的第二候选的运动矢量的组合,来推导双向组合运动矢量候选。
在一些实现中,当将新的候选添加或插入到MV候选列表中时,可以执行修剪过程。例如,在一些情况下,来自不同块的MV候选可能包括相同的信息。在这样的情况下,在MV候选列表中存储多个MV候选的重复运动信息可能导致在MV候选列表中的冗余以及效率降低。在一些示例中,修剪过程可以将在MV候选列表中的冗余消除或最小化。例如,修剪过程可以包括将要被添加到MV候选列表中的潜在MV候选与已经被存储在MV候选列表中的MV候选进行比较。在一个说明性示例中,可以将所存储的运动矢量的水平位移(Δx)和垂直位移(Δy)(指示参考块相对于当前块的位置的位置)与潜在候选的水平位移(Δx)和垂直位移(Δy)进行比较。如果该比较揭示潜在候选的运动矢量与一个或多个存储的运动矢量中的任何一个都不匹配,则潜在候选不被认为是要被修剪的候选,并且可以被添加到MV候选列表中。如果基于该比较找到匹配,则不将潜在MV候选添加到MV候选列表中,从而避免插入相同的候选。在一些情况下,为了降低复杂度,在修剪过程期间仅执行有限数量的比较,而不是将每个潜在MV候选与所有的现有候选进行比较。
存在各种相关的运动预测技术。一种预测技术是照度补偿(IC)或亮度补偿(在一些情况下也称为局部照度补偿(LIC))。术语照度补偿(IC)和局部照度补偿(LIC)在本文中互换地使用。提出了用于HEVC的IC。例如,在JCTVC-C041中,提出了基于分割的照度补偿(PBIC)。与启用和/或禁用WP并且在切片级别用信号通知WP参数(如下所述)的加权预测(WP)不同,PBIC启用和/或禁用IC,并且在预测单元(PU)级别用信号通知IC参数,以处理局部照度变化。在JVET-B0023中,基于块的IC被扩展到CU,并且类似于HEVC中的PU,CU变成QTBT结构中的携带运动信息的基本单元。
与下面更详细地描述的加权预测(WP)类似,在IC中使用缩放因子(也通过a表示)和偏移(也通过b表示),并且移位数被固定为6。对用于每个PU的IC标志进行译码以指示IC是否应用于当前PU。如果IC应用于PU,则将IC参数集(例如,a和b)用信号通知给解码器并且将其用于运动补偿。在一些示例中,为了节省花费在IC参数上的比特,色度分量与亮度分量共享缩放因子,并且使用固定偏移128。
在3D-HEVC中,针对视图间预测启用了IC。与显式地用信号通知IC参数的WP和PBIC不同,IC基于当前CU的相邻样本和参考块的相邻样本来推导IC参数。在一些情况下,IC仅适用于2Nx2N分割模式。在一些示例中,对于AMVP模式,针对从视图间参考图片预测的每个CU,用信号通知一个IC标志。在一些示例中,对于合并模式,为了节省比特,仅当PU的合并索引不等于0时才用信号通知IC标志。在一些情况下,IC不适用于仅从时间参考图片预测的CU。
关于IC参数的推导,在等式(1)中示出了在视图间预测中使用的线性IC模型:
p(i,j)=a*r(i+dvx,j+dvy)+b,where(i,j)∈PUc 等式(1)
在等式(1)中,PUc是当前PU,(i,j)是PUc中像素的坐标,(dvx,dvy)是PUc的视差矢量,p(i,j)是PUc的预测,r是PU的来自相邻视图的参考图片,以及a和b是线性IC模型的参数。
为了估计用于PU的参数a和b,使用如图4A和图4B所示的两个像素集合。第一像素集合在图4A中示出,并且包括在当前CU(包含当前PU的CU)的左侧列和上方行中的可用重构相邻像素。第二像素集合在图4B中示出,并且包括当前CU的参考块的对应相邻像素。通过使用当前PU的视差矢量来找到当前CU的参考块。
设Recneig和Recrefneig分别表示当前CU和其参考块的相邻像素集合,并且设2N表示Recneig和Recrefneig中的像素编号。那么,可以如下计算a和b:
Figure BDA0003132607620000301
Figure BDA0003132607620000302
在一些情况下,在线性模型中仅使用a,并且b始终被设置为等于0。在一些情况下,仅使用b,并且a始终被设置为等于1。
在HEVC中,支持加权预测(WP),在这种情况下,在运动补偿中使用缩放因子(由a表示)、移位数(由s表示)和偏移(由b表示)。假设在参考图片的位置(x,y)中的像素值为p(x,y),则p’(x,y)=((a*p(x,y)+(1<<(s-1)))>>s)+b代替p(x,y)来用作运动补偿中的预测值。
当启用WP时,对于当前切片的每个参考图片,用信号通知标志以指示WP是否适用于参考图片。如果WP适用于一个参考图片,则向解码器发送WP参数集(即,a、s和b),并且所述WP参数集用于根据参考图片的运动补偿。在一些示例中,为了灵活地打开/关闭针对亮度和色度分量的WP,分别用信号通知用于亮度和色度分量的WP标志和WP参数。在WP中,可以针对在一个参考图片中的所有像素使用一个相同的WP参数集。
在JEM中还提出了局部照度补偿(LIC)方法。可以在JVET-G1001中找到对JEM中的LIC的描述。关于JEM中的LIC,LIC是基于使用缩放因子a和偏移b的用于照度变化的线性模型。对于已经针对其应用帧间预测模式的每个译码单元(CU),自适应地启用或禁用这样的LIC。当LIC适用于CU时,采用最小二乘误差方法,以通过使用当前CU的相邻样本以及其对应的参考样本来推导参数a和b。例如,如图5A和图5B所示,使用CU的经子采样(例如,2:1子采样)的相邻样本和参考图片中的对应像素(由当前CU或子CU的运动信息来标识)。在一些示例中,LIC参数被推导并且分别应用于每个预测方向。在一些示例中,可以针对CU用信号通知照度补偿标志以指示LIC是否适用。在一些示例中,诸如当利用合并模式对CU进行译码时,可以以类似于合并模式中的运动信息复制的方式从相邻块复制照度补偿标志。
根据LIC,在帧间预测中以线性形式a*p+b来补偿(样本或像素的)亮度值,其中,p是帧间预测中的样本,a是缩放因子,并且b是偏移。缩放因子a和偏移b是使用当前块的相邻样本和用于帧间预测的参考块(例如,如图5A和图5B所示)的相邻样本而推导的参数。例如,可以首先使用针对经帧间译码的块而用信号通知的运动信息来推导帧间预测,然后可以推导LIC参数a和b,并且然后可以执行预测细化。可以通过将当前块的相邻重构样本和用于帧间预测的参考块的相邻样本之间的差最小化,来推导LIC参数。在一些情况下,可以使用线性最小二乘法和/或任何其它合适的最小化方法来执行最小化。
图6是示出当前块602的邻居重构样本以及用于单向帧间预测的参考块604的邻居样本的示例的图。可以针对当前块602来对运动矢量MV进行译码,其中,MV可以包括针对参考图片列表的参考索引和/或用于标识参考块604的其它运动信息。例如,MV可以包括水平分量和垂直分量,其提供从当前图片中的坐标位置到由参考索引所标识的参考图片中的坐标的偏移。
图7是示出当前块702的邻居重构样本以及用于双向帧间预测的第一参考块704和第二参考块706的邻居样本的示例的图。在这种情况下,可以针对当前块702来对两个运动矢量MV0和MV1进行译码,以分别标识第一参考块704和第二参考块706。
如上所述,LIC参数可以包括一个或多个偏移(例如,偏移b)、一个或多个权重或缩放因子(例如,缩放因子a)、移位数和/或其它适当的照度补偿参数。可以推导用于帧间预测(例如,单向帧间预测)的LIC参数。对于双向帧间预测,一个或多个权重可以包括用于第一参考图片的第一权重和用于第二参考图片的第二权重。
在一些实现中,可以使用线性最小二乘回归来估计双向预测运动补偿中的LIC参数。在一个示例中,可以通过求解成本函数来执行对LIC参数的推导。例如,成本函数可以包括使用最小二乘函数。例如,可以使用来自当前块的一个或多个相邻块的样本子集来推导LIC参数。可以使用来自当前块的相邻块的样本来找到当前块702中的可能的照度变化,因为可以假设在相邻样本(在相邻块中)和当前样本(在当前块702中)之间存在强相关性。例如,可以假设共享相同运动信息的当前块和相邻块应当包含非常相似的照度值。使用相邻样本的另一个原因是,当前块尚未被预测,并且可能不存在来自当前块的要使用的像素,在这种情况下,可以在执行当前块的运动补偿时使用相邻样本(其已经被重构)。
在一个说明性示例中,可以使用顶部邻居、左侧邻居、或顶部邻居和左侧邻居两者。例如,在推导用于当前块702的LIC参数时,可以使用来自用于当前块702的顶部邻居和左侧邻居(Ni)的样本子集、来自第一参考块704的顶部邻居和左侧邻居(P0)的像素子集、以及来自第二参考块706的顶部邻居和左侧邻居(P1)的像素子集。相邻块P0和P1的样本可以包括与相邻块Ni的相邻样本相对应的样本。在一些情况下,在相邻块P0和P1中使用的对应样本可以通过当前块的运动信息来标识。在一个说明性示例中,可以通过合并模式或AMVP模式来用信号通知运动矢量。参考图片可以使用它们的参考索引来标识,参考图片内的参考块704和706可以分别使用运动矢量MV0和MV1来标识。
在一些示例中,可以执行一种以上的推导方法来推导LIC参数。用于在编码器侧推导LIC参数的帧间预测引擎或模块的示例可以包括在图11中所示的预测处理单元41、运动估计单元42、和/或运动补偿单元44。用于在解码器侧推导LIC参数的帧间预测引擎或模块的示例可以包括在图11中所示的预测处理单元81和/或运动补偿单元82。在这样的示例中,编码器或其它发送器侧设备可以在序列级别(例如,在VPS和/或SPS中)、在图片级别(例如,在PPS中)、在切片级别(例如,在切片报头中)、在CTU级别、在CU级别、在PU级别、或其组合、或其它适当的信令级别,用信号向解码器通知将使用哪种推导方法。
在一些示例中,最小二乘求解可以是基于邻居的多条线和/或列(例如,顶部邻居、左侧邻居、顶部和左侧邻居两者、或其它邻居)来计算的。线和/或列的示例编号(在一些情况下,以及典型数字)包括一、二、四或任何其它适当的行和/或列的编号。当使用相邻块的多条线和/或列时,可以修改上述成本函数。例如,如果块是16x16块(16行像素乘16列像素),并且如果使用来自顶部相邻块的两条线和来自左侧相邻块的两列,则相邻块Ni将包括64个样本(来自左侧相邻块的32个样本和来自顶部相邻块的32个样本)。在这样的示例中,邻居P0和P1还将包括64个样本。
在一些情况下,使用整数定位的样本(或像素)来推导LIC参数。在一些情况下,使用分数定位的样本来推导LIC参数。在一些情况下,可以使用整数定位的样本和分数定位的样本两者。例如,移动对象在图片之间的真实位移是连续的,并且往往不遵循视频序列中的图片的采样网格。因为这个原因,分数精度可以代替整数精度来用于运动矢量,从而导致视残差误差降低以及视频译码器的译码效率提高。如果运动矢量具有分数值,则需要相应地对参考块进行插值。例如,用于当前块的样本的运动矢量可以指向参考块中的分数像素位置。分数像素位置指代在块中的分数样本位置(非整数位置)的样本(例如,亮度样本)。需要通过插值来生成这些位置。在使用分数定位的样本的一个示例中,可以使用参考块邻居(例如,P0或P1)的插值或滤波版本来减小在推导LIC参数时来自经重构的像素的量化误差。可以使用一个或多个插值滤波器来生成模板的这种插值版本。
在一些示例中,仅需要使用亮度分量来联合优化用于Ref0和Ref1的LIC参数。替代地,在推导双向预测LIC参数期间,可以考虑亮度和色度分量两者。编码器可以向解码器(在参数集中、SEI消息或其它适当的信令机制中)用信号通知将LIC应用到色度分量中的一者或多者还是仅将LIC应用于亮度分量。
在一些示例中,可以例如从编码器向解码器用信号通知一个或多个标志(例如,在块级别、切片级别或其它适当的级别),以指示在块的预测中是否已经应用特定工具(例如,LIC、合并模式以及其它模式)。例如,可以将合并模式标志与用于当前块的运动信息一起存储。可以基于合并模式标志,从运动信息推断是否已经使用合并模式对当前块进行译码。除了合并模式标志之外,还可以使用照度补偿(IC)标志来指示已经在应用照度补偿的情况下对块(例如PU、CU或其它块)进行译码。如上所述,当利用合并模式对块进行译码时,可以以类似于合并模式中的运动信息复制的方式从相邻块复制IC标志。否则,如果未利用合并模式(例如,替代地使用AMVP模式)对CU进行译码,则可以用信号通知用于CU的IC标志以指示LIC是否适用。
本文描述了用于选择性地将局部照度补偿(LIC)与各种预测模式一起应用的系统、方法和计算机可读介质。在一些示例中,描述了如下的各种技术:这些技术用于当处理某些大小的块时选择性地禁用(例如,限制、禁止、抑制、避免、不应用等)照度补偿以降低针对这样的块的处理成本和复杂性和/或避免在对某些块应用照度补偿时引起的问题或不一致性。
在一些情况下,可以针对某些大小的块和/或针对具有某些限制的块禁用或不启用/应用LIC,以便降低针对这样的块的处理成本和/或复杂性。例如,当将LIC应用于块(例如,CU、PU、TU或其它块)时,LIC过程可能向该块的处理引入额外的复杂性和存储器带宽要求。然而,某些大小的块可能具有可能使得针对这样的块的LIC是不合适或不期望的某些限制、局限性和/或特性。
为了进行说明,一些视频译码技术可能限制针对特定大小的块的双向帧间预测,以便降低最坏情况的存储器带宽和复杂性。例如,在VVC中,4x4块提供了最坏情况复杂性。因此,在VVC中,限制针对4x4块的双向帧间预测(在这种情况下,不能针对4x4块执行双向帧间预测),以减少最坏情况的存储器带宽和复杂性。其它示例译码技术可能类似地限制针对特定块大小的双向帧间预测,以降低复杂性。因此,为了类似地降低针对某些块大小(诸如如上所述的其中限制双向帧间预测的块大小)的处理复杂性,本文描述的技术可以针对这种大小的块来禁用、限制或不应用LIC。
例如,系统和/或过程可以阻止将LIC应用于限制针对其的双向帧间预测的某些块大小的块。系统和/或过程可以确定(例如,基于译码限制)双向帧间预测被禁用或被限制应用于特定大小的块,并且基于该限制,可以确定双向帧间预测将不被应用于特定大小的块。然后,系统和/或过程可以例如基于确定双向帧间预测被禁用或被限制应用于特定大小的块,来确定不将LIC应用于该特定大小的块。例如,系统和/或过程可以在对该块进行编码和/或解码时禁用针对该块的LIC,或者决定针对该块不启用LIC。通过针对其使得双向帧间预测被限制的那些块禁用或不应用LIC,系统和/或过程可以降低针对那些块的处理成本/复杂性和/或避免引入LIC的额外复杂性。为了进一步说明,使用上面的VVC示例(其中限制针对4x4块的双向帧间预测),系统和/或过程可以限制或避免针对4x4块使用LIC,以便降低针对这样的块的处理复杂性或避免引入LIC的额外复杂性。因此,系统和/或过程可以在不使用LIC的情况下处理4x4块。
在一些情况下,当系统和/或过程确定针对块不应用LIC时,系统和/或过程可以确定不用信号通知针对该块的LIC标志(或照度补偿(IC)标志)。在其它情况下,响应于确定不对该块应用LIC,系统和/或过程可以确定用信号通知针对该块的LIC标志,该LIC标志具有指示针对该块将不执行LIC的值。
此外,本文的技术可以限制针对超过视频译码流水线结构中的块的大小的块大小使用LIC。例如,在一些情况下,可以使用64x64虚拟流水线结构来实现VVC编解码器。然而,当LIC被应用于在64x64流水线结构内不适配的较大的块(诸如128xN块)时可能出现问题。为了进一步说明,使用128xN块作为示例,将需要用于当前块的参考和相邻样本中的128个参考样本来推导LIC参数。然而,由于128个样本不适配64x64流水线结构,因此系统和/或过程可以针对大于64x64的块禁用或决定不启用/应用LIC。
虽然上面使用64x64流水线结构和128xN块大小为示例,但是本文的技术可以类似地应用于任何块大小和/或流水线结构。例如,在以上示例中涉及与64x64流水线结构不同的流水线结构的情况下,系统和/或过程可以针对大于这些特定流水线结构的块的块禁用或决定不启用/应用LIC。在一些情况下,系统和/或过程可以针对使LIC禁用或以其它方式不启用/应用的块来用信号通知LIC模式标志。在一些示例中,响应于确定不对这样的块应用LIC,系统和/或过程可以确定用信号通知针对这些块的一个或多个LIC标志,这些LIC标志具有指示针对那些块将不执行LIC的值。
视频译码流水线结构可以包括一个或多个虚拟流水线数据单元(VPDU)或者可以由其组成。在一些示例中,VPDU可以包括图片或视频帧中的非重叠单元。例如,VPDU可以是图片中的非重叠MxM-亮度(L)/NxN-色度(C)单元。VPDU构造包括用于存储器访问的虚拟块(例如,以确定存储器的哪个区域用于处理一个或多个特定数据块),其定义被分配给实现基于标准的译码过程(例如,HEVC、VVC或其它译码过程)的存储器的大小。在硬件解码过程的一些示例中,可以通过多个处理/解码流水线级并行地处理连续的VPDU。例如,不同的解码流水线级可以同时处理不同的VPDU。在一些情况下,VPDU大小可以大致与一些流水线中的缓冲器大小成比例。例如,VPDU大小可以被设置为变换块(TB)大小。在一个说明性示例中,VPDU的大小可以是64x64个样本(例如,亮度样本)。在HEVC中,VPDU大小被设置为最大变换块大小,其是32x32-L(亮度样本)和16x16-C(色度样本)。在VVC中,VPDU大小被设置为128x128-L(亮度样本)和64x64-C(色度样本),这导致要求较大的VPDU大小。
VPDU可以包括一个或多个块(例如,CU、PU、TU或其它块)。例如,在一些情况下,单个CU可以被包括在一个VPDU中(例如,CU的大小和VPDU大小是相同的)。在一些情况下,多个CU可以被包括在一个VPDU中(例如,多个CU具有小于VPDU大小的大小)。根据块(例如,CU、PU或其它块)的大小,块可以跨越或可以不跨越多个VPDU(在这种情况下,块可以包括多个VPDU)。例如,具有128x64(128个样本宽x64个样本高)的大小的块可以跨越两个VPDU,其各自具有64x64的大小。在另一示例中,具有128x128(128个样本宽x128个样本高)的大小的块可以跨越四个VPDU,其各自具有64x64的大小。块可以被拆分成特定数量的子块,以用于由VPDU流水线级中的每一者执行帧间预测。例如,128x128块可被拆分成64x64子块,以用于由四个不同的VPDU流水线级处理。由于在用于执行帧间预测的相邻块上不存在依赖性,因此可以对块进行拆分以用于帧间预测。
图8是示出用于在处理特定大小的块时选择性地限制照度补偿的示例方法800的流程图。在框802处,方法800可以包括获得视频数据的图片的块。该块可以包括译码单元(CU)、预测单元(PU)、变换单元(TU)或图片的任何其它块。在一个说明性示例中,该块可以是在图7中所示的当前块702。此外,在一些示例中,视频数据可以包括经编码的视频数据(例如,经编码的视频比特流),诸如当方法800由解码设备(例如,112)执行时。在其它示例中,视频数据可以包括未经编码的视频数据,诸如当方法800由编码设备(例如,104)执行时。
视频数据可以包括多个图片,并且图片可以被分为多个块,如前面所描述的。视频数据还可以包括用于图片和/或块的运动信息,运动信息可以用于执行运动补偿。
在框804处,方法800可以包括确定该块的大小。例如,可以对块进行分析以确定该块的宽度和/或高度。在框806处,方法800可以包括确定该块的大小是否等于或小于与块大小限制相关联的块大小或者该块的大小是否大于与视频译码流水线结构相关联的块大小,块大小限制禁止针对具有等于或小于与块大小限制相关联的块大小的相应大小的块的双向帧间预测。
在一些示例中,方法800可以确定该块的大小是否满足框804中的第一条件(例如,块的大小是否等于或小于与块大小限制相关联的块大小)或框804中的第二条件(例如,块的大小是否大于与视频译码流水线结构相关联的块大小)。例如,如果用于处理块的视频译码算法限制针对4x4块大小的双向帧间预测,则方法800可以确定该块的大小是否等于或低于该特定4x4块大小限制。作为另一示例,如果视频译码流水线结构具有MxN块大小,其中M和N两者都是正整数,则方法800可以确定该块的大小是否大于MxN。在其它示例中,方法800可以确定该块的大小是否满足第一条件(例如,该块的大小是否等于或小于与块大小限制相关联的块大小)和第二条件(例如,该块的大小是否大于与视频译码流水线结构相关联的块大小)两者。
在一些示例中,块大小限制可以定义被设置为启用或允许双向帧间预测的最小块大小。在一些示例中,最小块大小可以提供允许针对块的双向帧间预测所要求的门限大小。在一些示例中,与块大小限制相关联的块大小可以是与被设置为启用或允许双向帧间预测的最小块大小相比较小的块大小。因此,块大小限制可以阻止或禁止针对具有等于或小于与块大小限制相关联的块大小的大小的任何块的双向帧间预测。
在框808处,方法800可以包括确定该块的大小是等于或小于与块大小限制相关联的块大小或者大于与视频译码流水线结构相关联的块大小中的一种情况。
在框810处,方法800可以包括基于确定该块的大小是等于或小于与块大小限制相关联的块大小或者大于与视频译码流水线结构相关联的块大小中的一种情况来禁用针对该块的照度补偿(或局部照度补偿)。禁用针对该块的照度补偿可以包括限制、禁止、避免和/或抑制针对该块的照度补偿和/或决定针对该块不应用或启用照度补偿。
在一些方面中,方法800可以包括基于禁用针对该块的照度补偿,来将与该块相关联的照度补偿标志的值设置为假。在一些示例中,将照度补偿标志的值设置为假指示禁用针对该块的照度补偿。在一些实现中,照度补偿标志的假值可以是0或空值。
在一些方面中,方法800可以包括基于该块的大小等于或小于与块大小限制相关联的块大小来确定针对该块不应用双向帧间预测。此外,在一些情况下,可以至少部分地基于确定针对该块不应用双向帧间预测来禁用针对该块的照度补偿。
在一些方面中,方法800可以包括:确定视频数据的图片的不同块(例如,新的当前块)的大小是否大于与块大小限制相关联的块大小或者该不同块的大小是否小于与视频译码流水线结构相关联的块大小;确定视频数据的图片的该不同块的大小大于与块大小限制相关联的块大小并且小于与视频译码流水线结构相关联的块大小;以及基于确定该不同块的大小大于与块大小限制相关联的块大小并且小于与视频译码流水线结构相关联的块大小,来启用针对该不同块的照度补偿。
在一些情况下,当(或基于)启用针对该不同块的照度补偿时,可以将与该不同块相关联的照度补偿标志的值设置为真。将照度补偿标志的值设置为真可以指示启用针对该不同块的照度补偿。在一些实现中,照度补偿标志的值可以被设置为1以指示真值。
在一些示例中,可以基于该不同块(例如,702)的一个或多个相邻块(例如,Ni)和被选择用于该块的帧间预测的参考块(例如,704或706)的一个或多个额外相邻块(例如,P0或P1),来推导用于该不同块的一个或多个照度补偿参数,并且可以基于一个或多个照度补偿参数,针对该不同块应用照度补偿。此外,可以基于被应用于该块的照度补偿来重构该块的样本。
在一些方面中,方法800可以包括基于预测模式并且在没有照度补偿的情况下对块进行解码(例如,经由解码设备112)。例如,可以使用双向帧间预测、单向帧间预测、帧内预测等并且在没有应用照度补偿的情况下,对块进行解码。在一些情况下,可以使用包含该块的比特流中的语法数据来用信号通知预测模式。
在一些情况下,可以基于预测模式和针对块而估计的残差值来重构块的样本。例如,可以针对块计算残差值,并且可以针对该块执行预测模式(例如,双向帧间预测、单向帧间预测、帧内预测等)。然后,可以基于针对该块的残差值和针对该块执行的预测模式来重构该块的样本。
在一些方面中,方法800可以包括生成包括视频数据的图片的块的经编码的视频比特流,以及将经编码的视频比特流用信号通知给解码设备(例如,112)。在一些示例中,可以在经编码的视频比特流中用信号通知一个或多个照度补偿标志。一个或多个照度补偿标志可以包括关于禁用针对该块的照度补偿的指示。例如,一个或多个照度补偿标志可以包括具有指示禁用针对该块的照度补偿的假值的照度补偿标志。
在一些示例中,确定该块的大小是等于或小于与块大小限制相关联的块大小或者大于与视频译码流水线结构相关联的块大小中的一种情况可以包括确定照度补偿被限制。在一些情况下,可以基于确定照度补偿被限制,不在经编码的视频比特流中用信号通知照度补偿标志。
图9是示出对视频数据进行解码的示例方法900的流程图。在一些示例中,方法900可以包括基于每个块的大小、该块是否大于流水线结构中的块、和/或双向预测是否被应用于该块,来选择性地针对该块应用或不应用照度补偿。
在框902处,方法900可以包括获得包括视频数据的经编码的视频比特流。在框904处,方法900可以包括从经编码的视频比特流获得视频数据的图片的块(例如,框702)。块可以包括CU、PU、TU或图片的任何其它块。在一些示例中,视频数据可以包括经编码的视频数据(例如,在经编码的视频比特流中),诸如当方法900由解码设备(例如,112)执行时。如前所述,视频数据可以包括多个图片,并且图片可以被分为多个块。视频数据还可以包括图片和/或块的运动信息,运动信息可以用于执行运动补偿。
在框906处,方法900可以包括确定该块的大小是否等于或小于与块大小限制相关联的块大小或者该块的大小是否大于与视频译码流水线结构相关联的块大小,该块大小限制禁止针对具有等于或小于与块大小限制相关联的块大小的相应大小的块的双向帧间预测。
在一些示例中,方法900可以确定该块的大小是否满足框906中的第一条件(例如,该块的大小是否等于或小于与块大小限制相关联的块大小)或者框906中的第二条件(例如,该块的大小是否大于与视频译码流水线结构相关联的块大小)。例如,如果限制针对4x4块大小的双向帧间预测,则方法900可以确定该块的大小是否等于或小于该特定4x4块大小限制。作为另一示例,如果视频译码流水线结构具有MxN块大小,其中M和N都是正整数,则方法900可以确定该块的大小是否大于MxN。在其它示例中,方法900可以确定该块的大小是否满足第一条件(例如,块的大小是否等于或小于与块大小限制相关联的块大小)和第二条件(例如,块的大小是否大于与视频译码流水线结构相关联的块大小)两者。
块大小限制可以定义被设置为启用双向帧间预测的最小块大小和/或被设置为禁用双向帧间预测的一个或多个块大小。在一些示例中,最小块大小可以提供允许针对块的双向帧间预测所要求的门限大小。因此,块大小限制可以阻止或禁止针对具有低于最小块大小的大小的任何块的双向帧间预测。在一些示例中,与块大小限制相关联的块大小可以是针对其的双向帧间预测被块大小限制禁止或限制的大小。
在框908处,方法900可以包括基于该块的大小等于或小于与块大小限制相关联的块大小或大于与视频译码流水线结构相关联的块大小,来禁用针对该块的照度补偿(或局部照度补偿)。例如,如果该块的大小等于或小于与块大小限制相关联的块大小或大于与视频译码流水线结构相关联的块大小,则可以避免或抑制针对该块的照度补偿。在一些示例中,禁用针对块的照度补偿可以包括避免、限制、禁止和/或抑制针对该块的照度补偿,和/或决定针对该块不应用或启用照度补偿。通过当块的大小等于或小于与针对双向预测而定义的块大小限制相关联的块大小或者该块大于流水线结构中的块时禁用照度补偿,可以降低针对该块的处理成本和/或复杂性,并且可以避免先前描述的处理问题和不一致性。
在一些示例中,禁用针对块的照度补偿可以包括基于该块的大小和/或该块是否大于流水线结构中的块来确定是否将针对该块应用照度补偿。例如,如果该块的大小等于或小于与针对双向预测而设置的块大小限制相关联的块大小,则可以避免或抑制针对该块的照度补偿。此外,如果该块大于流水线结构中的块,则可以避免或抑制针对该块的照度补偿。在其它示例中,禁用针对该块的照度补偿可以包括基于确定是否针对该块的帧间预测应用双向预测来确定是否针对该块应用照度补偿。
在一些实现中,代替确定该块的大小是否等于或小于与针对双向预测而设置的块大小限制相关联的块大小或者大于流水线结构中的块,并且随后基于该块的大小是否等于或小于与针对双向预测而设置的块大小限制相关联的块大小或大于流水线结构中的块来确定是否禁用针对块的照度补偿,方法900可以基于照度补偿标志或缺少照度补偿标志来确定是否禁用针对块的照度补偿。
例如,照度补偿标志可以利用经编码的视频比特流来用信号通知,并且可以指示是否将针对块应用照度补偿。在一些情况下,照度补偿标志被设置为假指示照度补偿将不被应用于块。否则,照度补偿标志被设置为真可以指示将针对块应用照度补偿。在一些示例中,如果确定将针对当前块应用双向预测,该块的大小等于或小于与针对双向预测的块大小限制相关联的块大小,和/或该块大于流水线结构中的块,那么可以将照度补偿标志设置为假。在一些情况下,如果照度补偿标志没有利用经编码的视频比特流来用信号通知,方法900可以确定应当禁用或避免针对块的照度补偿。
在一些方面中,方法900可以包括:从经编码的视频比特流获得视频数据的图片的不同块;确定视频数据的图片的该不同块的大小(例如,新的当前块)是否大于与块大小限制相关联的块大小或者该不同块的大小是否小于与视频译码流水线结构相关联的块大小。在一些示例中,方法900还可以包括:基于确定该不同块的大小大于与块大小限制相关联的块大小并且小于与视频译码流水线结构相关联的块大小来针对不同块应用照度补偿。
在一些示例中,针对不同块应用照度补偿可以包括:使用该不同块的一个或多个相邻块和用于该不同块的帧间预测的参考块的一个或多个相邻块来推导用于该不同块的一个或多个照度补偿参数。例如,如前所解释的,(样本或像素的)亮度值可以在帧间预测中以线性形式a*p+b进行补偿,其中p是帧间预测中的样本,a是缩放因子,并且b是偏移。缩放因子a和偏移b是可以使用不同块的相邻样本和参考块的相邻样本来推导的参数(例如,如图5A和图5B所示)。在一些示例中,该不同块的一个或多个相邻块可以包括不同块的顶部相邻块或左侧相邻块中的一者或多者,并且参考块的一个或多个相邻块可以包括参考块的顶部相邻块或左侧相邻块中的一者或多者。
如前所述,在一些情况下,可以通过选择性地避免照度补偿来克服与在对块进行译码时的处理成本和/或复杂性相关联的一个或多个前述挑战。例如,如果针对块限制双向预测,则可以抑制或不执行针对该块的照度补偿。作为另一示例,如果块具有等于或小于与禁止或阻止针对块的双向预测的块大小限制相关联的块大小的大小,或者如果块大于流水线结构中的块,则可以禁用针对当前块的照度补偿。禁用(例如,抑制、避免、限制、禁止、不应用等)针对满足这种条件的块(例如,具有等于或小于与禁止或阻止双向预测块大小限制相关联的块大小或大于流水线结构中的块的大小)的照度补偿可以降低针对这种块的处理成本和/或复杂性。
在一些情况下,照度补偿标志(或IC标志或LIC标志)可以与用于块的运动信息一起存储。在一些示例中,对于所有双向运动矢量候选,照度补偿标志可以被设置为假。在一些示例中,即使照度补偿标志以其它方式指示(例如,被设置为真),也可以避免照度补偿。例如,如果已经从另一块继承被设置为真的照度补偿标志,但是将对该块执行双向运动补偿,该块大于流水线结构大小,或者当前块的大小等于或低于针对双向预测的块大小限制,那么,可以避免或禁用针对该块的照度补偿。
如前所述,可以将照度补偿标志与用于块的运动信息一起存储。在一些示例中,所存储的照度补偿标志可以连同相关联的运动信息一起继承。例如,可以继承相邻块的照度补偿标志和运动信息,并且其可以用于对块的运动预测(例如,在合并模式下)。在一些示例中,对块的运动预测可以包括使用所继承的运动信息而不需要修改。在这种示例中,可以基于所继承的照度补偿标志的值来针对块执行照度补偿。例如,从相邻块继承的运动矢量可以用作该块的运动矢量,并且如果从相邻块继承的照度补偿标志为真,则可以执行照度补偿。在这样的示例中,如果照度补偿标志为真,也可以从相邻块继承LIC参数,并且其可以用作用于块的LIC参数。
在其它示例中,对块的运动预测可以包括根据另一块的运动信息(诸如相邻块)来推导用于该块的运动信息。在这样的示例中,推导用于该块的运动信息可以包括修改相邻块或另一块的运动信息(例如,在AMVP或TMVP模式下)。例如,在TMVP模式下,可以对相邻块的运动矢量进行缩放,并且经缩放的运动矢量可以用作该块的运动矢量。在逐对运动矢量推导中,两个相邻块的两个运动矢量MV1和MV2可以用于推导块的运动矢量MV。例如,块的运动矢量MV可以被推导为两个运动矢量MV1和MV2的半和,其中MV=(MV1+MV2)/2。在这种示例中(以及其它示例),块的运动矢量可以与用于推导该块的运动矢量的其它块的一个或多个运动矢量不同。当块的运动矢量可以与用于推导该块的运动矢量的其它块的一个或多个运动矢量不同时,从一个或多个其它块继承用于该块的照度补偿标志可能是有问题的。例如,所推导(经修改)的用于块的运动矢量可以指向参考图片中的与由其它块的一个或多个运动矢量(未经修改)指向的块不同的块。相应地,可以不需要对根据一个或多个其它块的运动矢量而推导用于其的运动信息的块的照度补偿,即使针对一个或多个其它块执行照度补偿(或所继承的照度补偿标志为真)。
在一些示例中,关于是否将针对块应用双向预测和/或照度补偿的信息可以是用信号通知的,或者可以是基于所存储的或与该块相关联的信息的。例如,从编码设备(例如,104)到解码设备(例如,112)的信令可以指示是否已经利用双向预测运动补偿和/或照度补偿对该块进行译码。
在一些示例中,关于是否针对该块应用双向预测和/或照度补偿的指示可以是基于与该块相关联的照度补偿标志的。例如,照度补偿标志的值被设置为假可以指示将针对该块不应用双向预测和/或照度补偿。另一方面,被设置为真的照度补偿标志的值可以指示将对块应用双向预测和/或照度补偿。在一些情况下,没有利用比特流用信号通知与该块相关联的照度补偿标志可以指示应当针对该块禁用或避免照度补偿。
在一些示例中,基于块的大小和流水线结构的大小来确定是否针对该块应用照度补偿可以取决于视频比特流中的信令信息是否包括与该块相关联的照度补偿标志。例如,如果信令信息不包括照度补偿标志,则方法900可以执行框906,并且随后基于块的大小是否等于或小于与块大小限制相关联的块大小或者大于与视频译码流水线结构相关联的块大小来确定是否禁用针对该块的照度补偿。
在一些示例中,可以继承用于块的运动信息。例如,在合并模式中,可以从候选列表中的相邻块或另一块的运动信息继承用于该块的运动信息。在一些示例中,照度补偿标志可以连同用于该块的运动信息一起被存储在包括用于该块的运动信息的运动矢量候选列表中。
在一些示例中,可以确定关于是否将应用双向预测的信息。例如,针对块应用双向预测可以包括使用第一参考块和第二参考块来获得用于该块的双向预测器。考虑到图7的说明性示例,确定是否针对当前块702应用双预测运动补偿可以是基于第一参考块704和第二参考块706是否可以用于分别获得第一单向预测器和第二单向预测器。在一些示例中,如果第一参考块704和第二参考块706是可用的,则第一参考块704和第二参考块706可以用于分别获得第一单向预测器和第二单向预测器。在一些情况下,第一参考块704和第二参考块706中的一者或两者可能是不可用的,并且相应地,双向预测运动补偿可能不适用于当前块702。
图10是示出用于对视频数据进行编码的示例方法1000的流程图。在一些示例中,方法1000可以包括:基于以下各项来针对每个块选择性地应用或不应用照度补偿:是否应用双向预测,该块的大小是否等于或小于与块大小限制相关联的块大小,或者该块是否大于流水线结构中的块,块大小限制禁止或限制针对具有等于或小于与块大小限制相关联的块大小的相应大小的块的双向预测。
在框1002处,方法1000可以包括获得视频数据的图片的块。该块可以包括CU、PU、TU或图片的任何其它块。在一些示例中,视频数据可以包括未经编码的视频数据,例如当方法1000由编码设备(例如,编码设备104)执行时。如前所述,视频数据可以包括多个图片,并且图片可以被分为多个块。方法1000可以确定图片和/或块的运动信息,该运动信息可以用于执行运动补偿。
在框1004处,方法1000可以包括确定该块的大小是否等于或小于与块大小限制相关联的块大小或者该块的大小是否大于与视频译码流水线结构相关联的块大小,块大小限制禁止针对具有等于或小于与块大小限制相关联的块大小的相应大小的块的双向帧间预测。
在一些示例中,方法1000可以确定该块的大小是否满足框1004中的第一条件(例如,该块的大小是否等于或小于与块大小限制相关联的块大小)或框1004中的第二条件(例如,该块的大小是否大于与视频译码流水线结构相关联的块大小)。例如,如果限制针对4x4块大小的双向帧间预测,则方法1000可以确定该块的大小是否等于或低于该特定4x4块大小限制。作为另一示例,如果视频译码流水线结构具有MxN块大小,其中M和N都是正整数,则方法1000可以确定该块的大小是否大于MxN。在其它示例中,方法1000可以确定该块的大小是否满足第一条件(例如,该块的大小是否等于或小于与块大小限制相关联的块大小)和第二条件(例如,该块的大小是否大于与视频译码流水线结构相关联的块大小)两者。
块大小限制可以定义被设置为启用双向帧间预测的最小块大小和/或用于禁用双向帧间预测的一个或多个块大小。在一些示例中,最小块大小可以提供用于允许针对块的双向帧间预测所要求的门限大小。因此,块大小限制可以阻止或禁止针对具有小于最小块大小的大小的任何块的双向帧间预测。在一些示例中,块大小限制可以定义一个或多个块大小,诸如在框1004中的与块大小限制相关联的应当禁用针对其的双向帧间预测的块大小。
在框1006处,方法1000可以包括基于该块的大小等于或小于与块大小限制相关联的块大小或者大于与视频译码流水线结构相关联的块大小来禁用针对该块的照度补偿(或局部照度补偿)。例如,如果该块的大小等于或小于与块大小限制相关联的块大小或大于与视频译码流水线结构相关联的块大小,则可以避免或抑制针对该块的照度补偿。在一些示例中,禁用针对该块的照度补偿可以包括避免、限制、禁止和/或抑制针对该块的照度补偿,和/或决定针对该块不应用或启用照度补偿。通过当块的大小等于或小于与针对双向预测的块大小限制相关联的块大小时或当该块大于流水线结构中的块时禁用照度补偿,可以降低针对该块的处理成本和/或复杂性,并且可以避免先前描述的处理问题和不一致性。
在一些示例中,禁用针对块的照度补偿可以包括基于该块的大小和/或该块是否大于流水线结构中的块来确定是否针对该块应用照度补偿。例如,如果该块的大小等于或小于与针对双向预测而设置的块大小限制相关联的块大小,则可以作出应当避免或抑制针对块的照度补偿的确定。此外,如果该块大于流水线结构中的块,则可以作出应当避免或抑制针对该块的照度补偿。在其它示例中,禁用针对该块的照度补偿可以包括基于确定是否针对该块的帧间预测应用双向预测来确定是否针对该块应用照度补偿。
在一些实现中,代替确定该块的大小是否等于或小于与针对双向预测而设置的块大小限制相关联的块大小或者大于流水线结构中的块,并且随后基于该块的大小是否等于或小于与针对双向预测而设置的块大小限制相关联的块大小或者该块的大小是否大于流水线结构中的块,来确定是否禁用针对该块的照度补偿,方法1000可以基于照度补偿标志或缺少与该块相关联的照度标志来确定是否禁用针对该块的照度补偿。
例如,照度补偿标志可以指示是否将针对该块应用照度补偿。在一些情况下,照度补偿标志被设置为假指示将针对该块不应用照度补偿。否则,照度补偿标志被设置为真可以指示将针对该块应用照度补偿。在一些示例中,如果确定双向预测将被应用于该块,则该块的大小等于或小于与针对双向预测的块大小限制相关联的块大小和/或该块大于流水线结构中的块,那么,可以将照度补偿标志设置为假。
如前所述,照度补偿标志可以连同用于该块的运动信息一起存储。在一些示例中,对于所有双向运动矢量候选,可以将照度补偿标志设置为假。在一些示例中,即使照度补偿标志以其它方式指示(例如,被设置为真),也可以避免照度补偿。例如,如果已经从另一块继承被设置为真的照度补偿标志,但是将针对该块执行双向运动补偿,则可以基于确定双向运动补偿将不被应用于该块,该块的大小等于或低于针对双向预测的块大小限制或大于流水线结构中的块,来避免针对该块的照度补偿。
在框1008处,方法1000可以包括生成包括该块的至少一部分的经编码的比特流。在一些示例中,照度补偿标志可以被包括在经编码的比特流中。在一些示例中,照度补偿标志可以包括指示是否应当针对该块应用照度补偿的值(例如,真或假)。
此外,在一些情况下,如果确定将针对该块应用照度补偿,则可以用信号通知照度补偿标志。在一些示例中,不用信号通知针对该块的照度补偿标志可以指示不应当针对该块应用照度补偿。
图11A是示出示例场景1100的图,其中基于针对视频译码算法定义的块大小限制1104,当前块1102的LIC标志1106被设置为关闭(例如,假),这指示不执行和/或禁用针对当前块1102的LIC。当前块1102可以包括CU、PU、TU或图片的任何其它块。块大小限制1104可以定义用于确定针对当前块1102的照度补偿应当被启用还是被禁用的门限块大小。如果当前块1102的大小等于或低于块大小限制1104,则可以禁用(例如,限制、禁止、不启用/应用、避免等)针对当前块1102的照度补偿。另一方面,如果当前块1102的大小大于块大小限制1104,则可以启用针对当前块1102的照度补偿。
在一些示例中,块大小限制1104的大小可以基于由译码算法针对当前块1102的双向帧间预测而设置的任何大小限制来确定。例如,如果译码算法规定应当禁用针对等于或小于4x4的块的双向帧间预测,则用于确定是否启用或禁用针对当前块1102的照度补偿的块大小限制1104可以被设置为4x4,这与由译码算法针对双向帧间预测而设置的大小限制一致。在一些情况下,译码算法可以针对较小的块来设置针对双向帧间预测的大小限制,以便降低针对这样的块的处理成本和/或复杂性和/或降低最坏情况存储器带宽和复杂性。因此,通过将块大小限制1104设置为与针对双向帧间预测的大小限制一致,系统和/或过程可以避免启用针对使双向帧间预测被限制的块的照度补偿,并且因此,该系统和/或过程可以避免引入照度补偿的额外成本和复杂性,并且可以降低或限制用于对这样的块进行译码的成本和/或复杂性。
在其它示例中,可以在考虑或不考虑由特定译码算法针对双向帧间预测而设置的任何大小限制的情况下,基于块大小的大小,针对该译码算法来确定块大小限制1104的大小。例如,在一些情况下,可以通过相对于针对一个或多个块大小应用照度补偿的益处来权衡针对这样的一个或多个块大小应用照度补偿的成本/复杂性,从而针对特定译码算法来确定块大小限制1104的大小。在另一示例中,可以通过相对于一个或多个条件(诸如资源可用性(例如,存储器带宽/容量、计算带宽/容量、网络带宽/容量等)、特定译码算法的复杂性、针对一个或多个块大小应用特定译码算法的成本或复杂性、性能要求(例如,服务质量等)、与一个或多个块相关联的成本/复杂性和译码性能的比率等)来权衡针对一个或多个块大小应用照度补偿的成本/复杂性,从而针对特定译码算法来确定块大小限制1104的大小。在又一示例中,可以基于与特定译码算法相关联的估计的最坏情况存储器带宽和/或复杂性,针对该特定译码算法来确定块大小限制1104的大小。
在示例场景1100中,当前块1102低于(例如,小于)块大小限制1104,如图11A所示。因此,用于当前块1102的LIC标志1106被设置为关闭或假,这指示不应当针对当前块1102应用照度补偿。在一些示例中,块大小限制1104可以要求当前块1102的长度和宽度两者都等于或低于块大小限制1104,以便LIC标志1106被关闭。在其它示例中,块大小限制1104可以允许LIC标志1106被关闭,即使仅有当前块1102的长度或宽度等于或低于块大小限制1104。
图11B是示出示例场景1120的图,其中基于针对视频译码算法而定义的块大小限制1124,当前块1122的LIC标志1126被设置为开启(例如,真),这指示执行和/或启用针对当前块1122的LIC。当前块1122可以包括CU、PU、TU或图片的任何其它块。如前面所解释的,块大小限制1124可以定义用于确定针对当前块1122的照度补偿应当被启用还是被禁用的门限块大小。因此,如果当前块1122的大小等于或低于块大小限制1124,则可以禁用(例如,限制、禁止、不启用/应用、避免等)针对当前块1122的照度补偿,并且如果当前块1122的大小大于块大小限制1124,那么可以启用针对当前块1102的照度补偿。
在该示例中,当前块1122高于(例如,大于)块大小限制1124,如图11B所示。因此,用于当前块1122的LIC标志1126被设置为开启或真,这指示应当针对当前块1122应用照度补偿。在一些示例中,块大小限制1124可以要求当前块1122的长度和宽度两者都高于块大小限制1124,以便LIC标志1126被打开。在其它示例中,块大小限制1124可以允许LIC标志1126被打开,即使仅有当前块1122的长度或宽度大于块大小限制1104的相应长度或宽度。
在一些示例中,块大小限制1124可以基于与特定译码算法的流水线结构相关联的大小来定义另一块大小限制,如下面关于图11C和11D进一步描述的。例如,块大小限制1124可以定义第二块大小限制,其指示:如果当前块1122的大小超过或大于译码算法的流水线结构中的块的大小,则应当关闭LIC标志1126。因此,基于第二块大小限制,如果当前块1122的大小超过或大于流水线结构中的块的大小,则LIC标志1126将被设置为关闭,即使当前块1122高于(例如,大于)在图11B中所示的块大小限制1124。
图11C是示出示例场景1140的图,其中用于当前块1142的LIC标志1146是根据基于流水线结构块大小的限制1144来设置的。当前块1142可以包括CU、PU、TU或图片的任何其它块。可以基于用于当前块1142的特定译码算法的流水线结构中的块的大小来定义基于流水线结构块大小的限制1144。
在该示例中,基于流水线结构块大小的限制1144可以定义对应于与特定译码算法的流水线结构相关联的大小的块大小限制。例如,基于流水线结构块大小的限制1144可以定义基于译码算法的流水线结构中的块的大小而设置的块大小限制。在一些情况下,针对块大小限制定义的大小可以与流水线结构中的块的大小匹配。如果当前块1142的大小(例如,长度和/或宽度)超过流水线结构中的块的大小,则LIC标志1146可以被设置为关闭,因为用于计算用于当前块1142的LIC参数的样本(例如,参考和/或相邻样本)将在流水线结构内不适配。
如图11C所示,当前块1142的大小超过(例如,大于)由基于流水线结构块大小的限制1144定义的大小。换句话说,当前块1142的长度和/或宽度超过译码算法的流水线结构中的块的长度和/或宽度。因此,在该示例中,LIC标志1146被设置为关闭或假以防止当前块1142的大小和流水线结构之间的不一致、错误、不兼容和/或由不一致性引起的其它问题。
图11D是示出另一示例场景1160的图,其中用于当前块1162的LIC标志1166是根据基于流水线结构块大小的限制1164而设置的。当前块1162可以包括CU、PU、TU或图片的任何其它块。如前所解释的,可以基于用于当前块1162的特定译码算法的流水线结构中的块的大小来定义基于流水线结构块大小的限制1164。
在该示例中,当前块1162的大小低于(例如,小于)由基于流水线结构块大小的限制1164定义的大小。换句话说,当前块1162小于译码算法的流水线结构中的块。因此,在该示例中,LIC标志1166被设置为开启或真。在一些情况下,如果当前块1162的大小等于由基于流水线结构块大小的限制1164定义的大小,则LIC标志1166可以类似地被设置为开启或真。
在一些示例中,基于流水线结构块大小的限制1164可以是定义一组块大小限制的块大小限制子集(例如,1104或1124)。例如,用于译码算法的块大小限制可以包括分别在图11A和11B中所示的基于流水线结构块大小的限制1164以及块大小限制1104或1124。因此,在一些情况下,即使当前块1162的大小低于由基于流水线结构块大小的限制1164定义的大小,如果当前块1162的大小也等于或低于另一块大小限制(诸如块大小限制1104或1124),则LIC标志1166仍然可以被设置为关闭或假。
因此,如果译码算法的块大小限制包括第二块大小限制(诸如块大小限制1104或1124),则在当前块1162的大小被确定为低于基于流水线结构块大小的限制1164时将LIC标志1166设置为开启之前,可以执行检查以确定当前块1162的大小是否等于或低于第二块大小限制。如果除了低于基于流水线结构块大小的限制1164之外,当前块1162的大小被确定为高于(例如,大于)第二块大小限制,则LIC标志1166可以被设置为开启。另一方面,如果替代地确定当前块1162的大小等于或低于第二块大小限制,则即使当前块1162的大小低于基于流水线结构块大小的限制1164,LIC标志1166也可以被设置为关闭。
在一些实现中,本文描述的过程(或方法)(包括方法800、900和1000)可以由计算设备或装置(诸如,在图1中所示的系统100)来执行。例如,这些过程可以由在图1和图12中所示的编码设备104、另一视频源侧设备或视频传输设备、在图1和图13中所示的解码设备112、和/或另一客户端侧设备(诸如,播放器设备、显示器或任何其它客户端侧设备)来执行。在一些情况下,计算设备或装置可以包括一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行方法800、900和1000的步骤的其它组件。
在一些示例中,计算设备可以包括移动设备、台式计算机、服务器计算机和/或服务器系统、或其它类型的计算设备。可以在电路系统(circuitry)中实现计算设备的组件(例如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其它组件)。例如,组件可以包括电子电路或其它电子硬件和/或可以使用电子电路或其它电子硬件来实现,所述电子电路或其它电子硬件可以包括一个或多个可编程电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其它适当的电路),和/或可以包括计算机软件、固件或其任何组合和/或使用计算机软件、固件或其任何组合来实现,以执行本文描述的各种操作。在一些示例中,计算设备或装置可以包括被配置为捕获包括视频帧的视频数据(例如,视频序列)的相机。在一些示例中,捕获视频数据的相机或其它捕获设备是与计算设备分开的,在这种情况下,计算设备接收或获得所捕获的视频数据。计算设备可以包括被配置为传送视频数据的网络接口。网络接口可以被配置为传送基于互联网协议(IP)的数据或其它类型的数据。在一些示例中,计算设备或装置可以包括用于显示输出视频内容(例如,视频比特流的图片的样本)的显示器。
可以关于逻辑流程图来描述这些过程,逻辑流程图的操作表示可以用硬件、计算机指令或其组合来实现的一系列操作。在计算机指令的背景下,所述操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,所述计算机可执行指令在由一个或多个处理器执行时执行所记载的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序并不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的操作以实现这些过程。
另外,这些过程可以在被配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以被实现为在一个或多个处理器上共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用),通过硬件来实现,或其组合。如上所提到,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读存储介质或机器可读存储介质可以是非暂时性的。
本文讨论的译码技术可以在示例视频编码和解码系统(例如,系统100)中实现。在一些示例中,系统包括源设备,源设备提供稍后要由目的地设备解码的经编码的视频数据。具体地,源设备经由计算机可读介质将视频数据提供给目的地设备。源设备和目的地设备可以包括多种设备中的任何一种,包括台式计算机、笔记本计算机(即膝上型计算机)、平板计算机、机顶盒、电话手机(例如,所谓的“智能”手机)、所谓的“智能”板、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流式传输设备等。在一些情况下,源设备和目的地设备可以被配备用于无线通信。
目的地设备可以经由计算机可读介质接收要被解码的经编码的视频数据。计算机可读介质可以是能够将经编码的视频数据从源设备移动到目的地设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以是用于使得源设备能够将经编码的视频数据直接实时地发送给目的地设备的通信介质。可以根据诸如无线通信协议之类的通信标准来对经编码的视频数据进行调制,并且将其发送给目的地设备。通信介质可以包括任何无线或有线通信介质,诸如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如,局域网、广域网或诸如互联网之类的全球网络。通信介质可以包括路由器、交换机、基站、或可以用于促进从源设备到目的地设备的通信的任何其它装置。
在一些示例中,可以将经编码的数据从输出接口输出到存储设备。类似地,可以通过输入接口从存储设备存取经编码的数据。存储设备可以包括各种分布式或本地存取的数据存储介质中的任何一种,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器、或用于存储经编码的视频数据的任何其它适当的数字存储介质。在另外的示例中,存储设备可以对应于文件服务器或另一中间存储设备,其可以存储由源设备生成的经编码的视频。目的地设备可以经由流式传输或下载来从存储设备存取被存储的视频数据。文件服务器可以是能够存储经编码的视频数据并且将该经编码的视频数据发送给目的地设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备可以通过任何标准数据连接(包括互联网连接)来存取经编码的视频数据。这可以包括适于存取被存储在文件服务器上的经编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或这两者的组合。经编码的视频数据从存储设备的传输可以是流式传输、下载传输或其组合。
本公开内容的技术不一定限于无线应用或设置。所述技术可以被应用于视频译码,以支持多种多媒体应用中的任何一种,诸如,空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(例如,基于HTTP的动态自适应流传输(DASH))、被编码到数据存储介质上的数字视频、对被存储在数据存储介质上的数字视频的解码、或其它应用。在一些示例中,系统可以被配置为支持单向或双向视频传输,以支持诸如视频流式传输、视频回放、视频广播和/或视频电话之类的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目的地设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文公开的技术。在其它示例中,源设备和目的地设备可以包括其它组件或布置。例如,源设备可以从诸如外部相机之类的外部视频源接收视频数据。同样,目的地设备可以与外部显示设备对接,而不是包括集成显示设备。
上文的示例系统仅是一个示例。用于并行地处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管一般而言,本公开内容的技术是由视频编码设备来执行的,但是所述技术还可以由通常被称为“CODEC”的视频编码器/解码器来执行。此外,本公开内容的技术还可以由视频预处理器来执行。源设备和目的地设备仅是这样的编码设备的示例:其中,源设备生成经编码的视频数据以用于传输给目的地设备。在一些示例中,源设备和目的地设备可以以基本上对称的方式操作,使得这些设备中的每一者包括视频编码和解码组件。因此,示例系统可以支持在视频设备之间的单向或双向视频传输,例如,用于视频流式传输、视频回放、视频广播或视频电话。
视频源可以包括视频捕获设备,例如,摄像机、包含先前捕获的视频的视频存档单元、和/或用于从视频内容提供商接收视频的视频馈送接口。作为另外的替代方式,视频源可以生成基于计算机图形的数据作为源视频,或者生成实时视频、存档视频和计算机生成的视频的组合。在一些情况下,如果视频源是摄像机,则源设备和目的地设备可以形成所谓的照相电话或视频电话。然而,如上所述,在本公开内容中描述的技术通常可以适用于视频编码,并且可以被应用于无线和/或有线应用。在每种情况下,所捕获的、预捕获的或计算机生成的视频都可以由视频编码器进行编码。然后,可以通过输出接口将经编码的视频信息输出到计算机可读介质上。
如所提到的,计算机可读介质可以包括诸如无线广播或有线网络传输之类的临时介质、或者诸如硬盘、闪存驱动器、压缩光盘、数字多功能光盘、蓝光光盘之类的存储介质(即非暂时性存储介质)、或其它计算机可读介质。在一些示例中,网络服务器(未示出)可以例如经由网络传输从源设备接收经编码的视频数据,并且将经编码的视频数据提供给目的地设备。类似地,诸如光盘冲压设施之类的介质生产设施的计算设备可以从源设备接收经编码的视频数据,并且制造包含经编码的视频数据的光盘。因此,在各个示例中,计算机可读介质可以被理解为包括各种形式的一个或多个计算机可读介质。
目的地设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息(其也被视频解码器使用),语法信息包括描述块和其它译码单元(例如,图片组(GOP))的特性和/或处理的语法元素。显示设备将经解码的视频数据显示给用户,并且可以包括各种显示设备中的任何一种,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器、或另一种类型的显示设备。已经描述了本申请的各个实施例。
在图12和图13中分别示出了编码设备104和解码设备112的具体细节。图12是示出可以实现在本公开内容中描述的技术中的一种或多种技术的示例编码设备104的框图。编码设备104可以例如生成本文描述的语法结构(例如,VPS、SPS、PPS或其它语法元素的语法结构)。编码设备104可以执行对视频切片内的视频块的帧内预测和帧间预测译码。如前所述,帧内译码至少部分地依赖于空间预测以减少或去除在给定视频帧或图片内的空间冗余。帧间译码至少部分地依赖于时间预测以减少或去除在视频序列的相邻或周围帧内的时间冗余。帧内模式(I模式)可以指代若干种基于空间的压缩模式中的任何一种。诸如单向预测(P模式)或双预测(B模式)之类的帧间模式可以指代若干种基于时间的压缩模式中的任何一种。
编码设备104包括分割单元35、预测处理单元41、滤波器单元63、图片存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重构,编码设备104还包括逆量化单元58、逆变换处理单元60和求和器62。滤波器单元63旨在表示一个或多个环路滤波器,诸如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管在图12中将滤波器单元63示为环路内滤波器,但是在其它配置中,滤波器单元63可以被实现为环路后滤波器。后处理设备57可以对由编码设备104生成的经编码的视频数据执行额外的处理。在一些情况下,本公开内容的技术可以由编码设备104来实现。然而,在其它情况下,本公开内容的技术中的一种或多种技术可以由后处理设备57来实现。
如图12所示,编码设备104接收视频数据,并且分割单元35将数据分割为视频块。这种分割还可以包括例如根据LCU和CU的四叉树结构来分割为切片、切片段、瓦片或其它较大的单元,以及视频块分割。编码设备104总体上示出了对在要被编码的视频切片内的视频块进行编码的组件。切片可以被划分为多个视频块(并且可能被划分为被称为瓦片的视频块集合)。预测处理单元41可以基于误差结果(例如,编码率和失真水平等)来为当前视频块选择多种可能的译码模式之一,诸如多种帧内预测译码模式之一或多种帧间预测译码模式之一。预测处理单元41可以将所得到的经帧内或帧间译码的块提供给求和器50以生成残差块数据,并且提供给求和器62以重构经编码的块以用作参考图片。
在预测处理单元41内的帧内预测处理单元46可以相对于在与要被译码的当前视频块相同的帧或切片中的一个或多个相邻块,来执行当前块的帧内预测译码,以提供空间压缩。在预测处理单元41内的运动估计单元42和运动补偿单元44相对于在一个或多个参考图片中的一个或多个预测块来执行对当前视频块的帧间预测译码,以提供时间压缩。
运动估计单元42可以被配置为根据用于视频序列的预定图案来确定用于视频切片的帧间预测模式。预定图案可以将序列中的视频切片指定为P切片、B切片或GPB切片。运动估计单元42和运动补偿单元44可以是高度集成的,但是出于概念性目的而被分别示出。由运动估计单元42执行的运动估计是生成运动矢量的过程,该运动矢量估计针对视频块的运动。运动矢量例如可以指示在当前视频帧或图片内的视频块的预测单元(PU)相对于在参考图片内的预测块的位移。
预测块是被发现在像素差方面与要被译码的视频块的PU紧密匹配的块,其可以通过绝对差之和(SAD)、平方差之和(SSD)或其它差度量来确定。在一些示例中,编码设备104可以计算用于被存储在图片存储器64中的参考图片的整数以下的像素位置的值。例如,编码设备104可以对四分之一像素位置、八分之一像素位置或参考图片的其它分数像素位置的值进行插值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索,并且以分数像素精度输出运动矢量。
运动估计单元42通过将在经帧间译码的切片中的视频块的PU的位置与参考图片的预测块的位置进行比较,来计算针对PU的运动矢量。可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择参考图片,这两个参考图片列表中的每一者标识被存储在图片存储器64中的一个或多个参考图片。运动估计单元42将所计算出的运动矢量发送给熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可以涉及基于通过运动估计而确定的运动矢量来取得或生成预测块,可能对像素以下的精度执行插值。在接收到针对当前视频块的PU的运动矢量时,运动补偿单元44可以在参考图片列表中定位运动矢量所指向的预测块。编码设备104通过从正被译码的当前视频块的像素值中减去预测块的像素值来形成像素差值,从而形成残差视频块。像素差值形成针对该块的残差数据,并且可以包括亮度差分量和色度差分量两者。求和器50表示执行这种减法运算的一个或多个组件。运动补偿单元44还可以生成与视频块和视频切片相关联的语法元素,以供解码设备112在对视频切片的视频块进行解码时使用。
如上所述,帧内预测处理单元46可以对当前块进行帧内预测,作为对由运动估计单元42和运动补偿单元44执行的帧间预测的替代方式。具体地,帧内预测处理单元46可以确定要用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可以例如在单独的编码通路期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46可以从被测试的模式中选择合适的帧内预测模式来使用。例如,帧内预测处理单元46可以使用针对各种被测试的帧内预测模式的率失真分析来计算率失真值,并且可以在被测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定在经编码的块与被编码以产生经编码的块的原始的未经编码块之间的失真(或误差)量、以及用于产生经编码的块的比特速率(即比特数量)。帧内预测处理单元46可以根据针对各种经编码的块的失真和速率来计算比率,以确定哪种帧内预测模式表现出针对该块的最佳率失真值。
在任何情况下,在为块选择帧内预测模式之后,帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示所选择的帧内预测模式的信息进行编码。编码设备104可以在所发送的比特流配置数据中包括用于各种块的编码上下文的定义以及对要用于这些上下文中的每个上下文的最可能的帧内预测模式、帧内预测模式索引表和经修改的帧内预测模式索引表的指示。比特流配置数据可以包括多个帧内预测模式索引表和多个经修改的帧内预测模式索引表(也被称为码字映射表)。
在预测处理单元41经由帧间预测或帧内预测生成用于当前视频块的预测块之后,编码设备104通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个TU中,并且被应用于变换处理单元52。变换处理单元52使用变换(诸如离散余弦变换(DCT)或概念上类似的变换)来将残差视频数据变换为残差变换系数。变换处理单元52可以将残差视频数据从像素域转换到变换域(诸如频域)。
变换处理单元52可以将所得到的变换系数发送给量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程可以减小与这些系数中的一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括经量化的变换系数的矩阵的扫描。替代地或另外,熵编码单元56可以执行该扫描。
在量化之后,熵编码单元56对经量化的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应变长译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或另一种熵编码技术。在由熵编码单元56进行熵编码之后,可以将经编码的比特流发送给解码设备112,或者将其存档以供稍后传输或者由解码设备112取得。熵编码单元56还可以对用于正被译码的当前视频切片的运动矢量和其它语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换,以重构像素域中的残差块,以供稍后用作参考图片的参考块。运动补偿单元44可以通过将残差块加上在参考图片列表内的参考图片之一的预测块来计算参考块。运动补偿单元44还可以将一个或多个插值滤波器应用于经重构的残差块,以计算用于运动估计的整数以下的像素值。求和器62将经重构的残差块加到由运动补偿单元44产生的经运动补偿的预测块上,以产生用于存储在图片存储器64中的参考块。参考块可以由运动估计单元42和运动补偿单元44用作参考块,以对在随后的视频帧或图片中的块进行帧间预测。
以这种方式,图12的编码设备104表示被配置为执行本文描述的技术中的任何技术(包括上文关于图8和/或图10描述的过程)的视频编码器的示例。在一些情况下,本公开内容的技术中的一些技术也可以由后处理设备57来实现。
图13是示出示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、求和器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可以执行通常与关于来自图12的编码设备104所描述的编码阶段相反的解码阶段。
在解码过程期间,解码设备112接收由编码设备104发送的经编码的视频比特流,其表示经编码的视频切片的视频块和关联的语法元素。在一些实施例中,解码设备112可以从编码设备104接收经编码的视频比特流。在一些实施例中,解码设备112可以从网络实体79(诸如服务器、媒体感知网络元素(MANE)、视频编辑器/拼接器、或被配置为实现上述技术中的一种或多种技术的其它这种设备)接收经编码的视频比特流。网络实体79可以包括或者可以不包括编码设备104。在网络实体79将经编码的视频比特流发送给解码设备112之前,网络实体79可以实现在本公开内容中描述的技术中的一些技术。在一些视频解码系统中,网络实体79和解码设备112可以是单独设备的部分,而在其它情况下,关于网络实体79所描述的功能可以由包括解码设备112的相同设备来执行。
解码设备112的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量和其它语法元素。熵解码单元80将运动矢量和其它语法元素转发给预测处理单元81。解码设备112可以接收在视频切片级别和/或视频块级别的语法元素。熵解码单元80可以处理和解析在诸如VPS、SPS和PPS之类的更多参数集中的固定长度语法元素和可变长度语法元素两者。
当视频切片被编码为经帧内译码(I)的切片时,预测处理单元81的帧内预测处理单元84可以基于用信号通知的帧内预测模式以及来自当前帧或图片的先前解码的块中的数据,来生成用于当前视频切片的视频块的预测数据。当视频帧被译码为经帧间译码(即,B、P或GPB)的切片时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量以及其它语法元素来产生用于当前视频切片的视频块的预测块。可以从在参考图片列表内的参考图片之一产生预测块。解码设备112可以基于被存储在图片存储器92中的参考图片,使用默认构造技术来构造参考帧列表,即列表0和列表1。
运动补偿单元82通过解析运动矢量和其它语法元素来确定用于当前视频切片的视频块的预测信息,并且使用该预测信息来产生用于正在被解码的当前视频块的预测块。例如,运动补偿单元82可以使用参数集中的一个或多个语法元素来确定用于对视频切片的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测切片类型(例如,B切片、P切片或GPB切片)、用于针对该切片的一个或多个参考图片列表的构造信息、用于该切片的每个经帧间编码的视频块的运动矢量、用于该切片的每个经帧间译码的视频块的帧间预测状态、以及用于对当前视频切片中的视频块进行解码的其它信息。
运动补偿单元82还可以基于插值滤波器来执行插值。运动补偿单元82可以使用在视频块的编码期间由编码设备104使用的插值滤波器来计算针对参考块的整数以下的像素的插入的值。在这种情况下,运动补偿单元82可以根据所接收的语法元素来确定由编码设备104使用的插值滤波器,并且可以使用插值滤波器来产生预测块。
逆量化单元86对在比特流中提供并且由熵解码单元80解码的经量化的变换系数进行逆量化或解量化。逆量化过程可以包括使用由编码设备104针对视频切片中的每个视频块计算出的量化参数来确定量化程度,以及同样地确定应当被应用的逆量化度。逆变换处理单元88将逆变换(例如,逆DCT或其它适当的逆变换)、逆整数变换或概念上类似的逆变换过程应用于变换系数,以便在像素域中产生残差块。
在运动补偿单元82基于运动矢量和其它语法元素生成用于当前视频块的预测块之后,解码设备112通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的相应预测块相加以形成经解码的视频块。求和器90表示执行这种求和运算的一个或多个组件。如果需要的话,还可以使用环路滤波器(在编码环路中或在编码环路之后)来使像素过渡平滑,或者以其它方式提高视频质量。滤波器单元91旨在表示一个或多个环路滤波器,诸如去块滤波器、自适应环路滤波器(ALF)和样本自适应偏移(SAO)滤波器。尽管在图13中将滤波器单元91示为环路中滤波器,但是在其它配置中,滤波器单元91可以被实现为环路后滤波器。然后将给定帧或图片中的经解码的视频块存储在图片存储器92中,图片存储器92存储用于随后运动补偿的参考图片。图片存储器92还存储经解码的视频,以供稍后在显示设备(诸如在图1中所示的视频目的地设备122)上呈现。
以这种方式,图13的解码设备112表示被配置为执行本文描述的技术中的任何技术(包括上文关于图8和/或图9描述的过程)的视频解码器的示例。
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学存储设备、以及能够存储、包含或携带指令和/或数据的各种其它介质。计算机可读介质可以包括数据可以被存储在其中并且不包括以下各项的非暂时性介质:无线地或者在有线连接上传播的载波和/或暂时性电子信号。非暂时性介质的示例可以包括但不限于:磁盘或磁带、诸如压缩光盘(CD)或数字多功能光盘(DVD)之类的光学存储介质、闪存、存储器或存储器设备。计算机可读介质可以具有被存储在其上的代码和/或机器可执行指令,代码和/或机器可执行指令可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类、或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容,来耦合到另一代码段或硬件电路。可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何适当的手段来传递、转发或发送信息、自变量、参数、数据等。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当提及时,非暂时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波和信号本身之类的介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实施这些实施例。为了解释清楚,在一些情况下,本文的技术可以被呈现为包括包含如下的功能块的单独的功能块,这些功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。除了在各图中所示和/或本文描述的组件之外,还可以使用额外的组件。例如,电路、系统、网络、过程和其它组件可以以框图形式被示为组件,以便不会在不必要的细节上模糊这些实施例。在其它情况下,公知的电路、过程、算法、结构和技术可能被示为不具有不必要的细节,以便避免模糊这些实施例。
上文可能将各个实施例描述为过程或方法,该过程或方法被描绘为流程图、流程示意图、数据流程图、结构图或框图。虽然流程图可以将操作描述为顺序的过程,但是这些操作中的许多操作可以并行或同时执行。另外,可以重新排列操作的次序。过程在其操作完成后被终止,但是可能具有未被包括在图中的额外步骤。过程(process)可以对应于方法、函数、过程(procedure)、子例程、子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。
根据上述示例的过程和方法可以使用计算机可执行指令来实现,计算机可执行指令被存储在计算机可读介质中或者以其它方式可从计算机可读介质得到。这样的指令可以包括例如指令或数据,指令或数据使得通用计算机、专用计算机或处理设备执行或者以其它方式将其配置为执行特定功能或特定的一组功能。可以通过网络访问所使用的计算机资源的部分。计算机可执行指令可以是例如二进制文件、诸如汇编语言之类的中间格式指令、固件、源代码等。可以用于存储指令、所使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、设置有非易失性存储器的USB设备、网络存储设备等。
实现根据这些公开内容的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合,并且可以采用多种形状因子中的任何一种。当用软件、固件、中间件或微代码来实现时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以被存储在计算机可读或机器可读介质中。处理器可以执行必要任务。形状因子的典型示例包括膝上型计算机、智能电话、移动电话、平板设备或其它小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文描述的功能还可以体现在外围设备或插件卡中。通过另外的举例,这种功能还可以在单个设备中执行的不同芯片或不同过程之间的电路板上实现。
指令、用于传送这样的指令的介质、用于执行它们的计算资源以及用于支持这样的计算资源的其它结构是用于提供在本公开内容中描述的功能的示例模块。
在前面的描述中,参考本申请的特定实施例描述了本申请的各方面,但是本领域技术人员将认识到,本申请不限于此。因此,尽管本文已经详细描述了本申请的说明性实施例,但是应理解的是,可以以其它方式不同地体现和采用本发明构思,并且所附的权利要求旨在被解释为包括这样的变型,除了由现有技术限制的变型。可以单独地或共同地使用上述应用的各个特征和方面。此外,在不脱离本说明书的更宽泛的精神和范围的情况下,实施例可以在除了本文描述的环境和应用之外的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,以特定次序描述了方法。应当明白的是,在替代实施例中,可以以与所描述的次序不同的次序来执行所述方法。
本领域普通技术人员将明白的是,在不脱离本说明书的范围的情况下,本文中使用的小于(“<”)和大于(“>”)符号或术语可以分别用小于或等于(“≤”)以及大于或等于(“≥”)符号来替换。
在将组件描述为“被配置为”执行某些操作的情况下,这种配置可以例如通过以下方式来实现:将电路或其它硬件设计为执行该操作,将可编程电路(例如,微处理器或其它适当的电路)编程为执行该操作,或其任何组合。
短语“耦合到”指代直接或间接地物理连接到另一组件的任何组件、和/或直接或间接地与另一组件通信的任何组件(例如,通过有线或无线连接和/或其它适当的通信接口而连接到另一组件)。
记载集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其它语言指示该集合中的一个成员或者该集合中的多个成员(以任何组合)满足该权利要求。例如,记载“A和B中的至少一个”的权利要求语言意指A、B、或者A和B。在另一示例中,记载“A、B和C中的至少一个”的权利要求语言意指A、B、C、或者A和B、或者A和C、或者B和C、或者A和B和C。语言集合中的“至少一个”和/或集合中的“一个或多个”并不将该集合限制为在该集合中列出的项目。例如,记载“A和B中的至少一个”的权利要求语言可以意指A、B或者A和B,并且可以另外包括未在A和B的集合中列出的项目。
结合本文公开的实施例描述的各种说明性的逻辑框、模块、电路和算法步骤可以被实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,上面已经对各种说明性的组件、框、模块、电路和步骤围绕其功能进行了总体描述。至于这种功能被实现为硬件还是软件取决于特定的应用和被施加在整个系统上的设计约束。技术人员可以针对每种特定应用以不同的方式来实现所描述的功能,但是这种实现决策不应当被解释为导致脱离本申请的范围。
本文描述的技术还可以用电子硬件、计算机软件、固件或其任何组合来实现。这样的技术可以在各种设备中的任何一种中实现,诸如通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其它设备中的应用)的集成电路设备。被描述为模块或组件的任何特征都可以在集成逻辑设备中一起实现,或者分别作为分立但是可互操作的逻辑设备来实现。如果用软件来实现,则所述技术可以至少部分地由计算机可读数据存储介质来实现,计算机可读数据存储介质包括程序代码,程序代码包括在被执行时执行上述方法中的一种或多种方法的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括包装材料。计算机可读介质可以包括存储器或数据存储介质,诸如随机存取存储器(RAM)(诸如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。另外或替代地,所述技术可以至少部分地由以指令或数据结构的形式携带或传送程序代码并且可以由计算机访问、读取和/或执行的计算机可读通信介质(诸如传播的信号或波)来实现。
程序代码可以由处理器执行,处理器可以包括一个或多个处理器,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效的集成或分立逻辑电路。这样的处理器可以被配置为执行在本公开内容中描述的任何技术。通用处理器可以是微处理器,但是在替代方式中,处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器也可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核的结合、或任何其它这样的配置。因此,如本文所使用的术语“处理器”可以指代任何前述结构、前述结构的任何组合、或适于实现本文描述的技术的任何其它结构或装置。另外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或者被合并在组合视频编码器-解码器(CODEC)中。
本公开内容的说明性示例包括:
示例1:一种对视频数据进行译码的方法。所述方法包括:获得视频数据的图片的块;确定所述块的大小;确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
示例2:根据示例1所述的方法,还包括:基于禁用针对所述块的所述照度补偿,来将与所述块相关联的照度补偿标志的值设置为假,其中,所述照度补偿标志的被设置为假的所述值指示禁用针对所述块的照度补偿。
示例3:根据示例1或2中任一项所述的方法,还包括:确定所述视频数据的图片的不同块的大小是否大于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否小于与所述视频译码流水线结构相关联的所述第二块大小;确定所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小;以及基于所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小,启用针对所述不同块的照度补偿。
示例4:根据示例3所述的方法,还包括:基于启用针对所述不同块的所述照度补偿,来将与所述不同块相关联的照度补偿标志的值设置为真,其中,所述照度补偿标志的被设置为真的所述值指示启用针对所述不同块的照度补偿。
示例5:根据示例3或4中任一项所述的方法,还包括:基于所述块的一个或多个相邻块和被选择用于所述块的帧间预测的参考块的一个或多个额外相邻块,来推导用于所述不同块的一个或多个照度补偿参数;基于所述一个或多个照度补偿参数来针对所述不同块应用照度补偿;以及基于被应用于所述块的所述照度补偿来重构所述块的样本。
示例6:根据示例1至5中任一项所述的方法,还包括:基于所述块的大小小于与所述块大小限制相关联的所述第一块大小,来确定针对所述块不应用双向帧间预测。
示例7:根据示例6所述的方法,其中,禁用针对所述块的照度补偿是基于确定针对所述块不应用双向帧间预测的。
示例8:根据示例1至7中任一项所述的方法,其中,对视频数据进行译码包括对视频数据进行解码,所述方法还包括:基于预测模式并且在没有所述照度补偿的情况下对所述块进行解码。
示例9:根据示例1至8中任一项所述的方法,还包括:确定用于所述块的残差值;针对所述块执行预测模式;以及基于用于所述块的所述残差值和针对所述块执行的所述预测模式来重构所述块的至少一个样本。
示例10:根据示例1至9中任一项所述的方法,其中,对视频数据进行译码包括对视频数据进行编码,所述方法还包括:生成经编码的视频比特流,所述经编码的视频比特流包括所述视频数据的图片的所述块。
示例11:根据示例10所述的方法,还包括:在所述经编码的视频比特流中用信号通知一个或多个照度补偿标志,所述一个或多个照度补偿标志包括关于禁用针对所述块的照度补偿的指示。
示例12:根据示例10或11中任一项所述的方法,还包括:用信号通知所述经编码的视频比特流。
示例13:根据示例12所述的方法,其中,确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况包括确定照度补偿被限制,并且其中,基于确定照度补偿被限制,与所述块相关联的照度补偿标志不在所述经编码的视频比特流中用信号通知。
示例14:根据示例1至13中任一项所述的方法,还包括:确定所述视频数据的图片的不同块的大小是否等于或小于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否大于与所述视频译码流水线结构相关联的所述第二块大小;确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,禁用针对所述不同块的照度补偿。
示例15:一种用于对视频数据进行译码的装置。所述装置包括:至少一个存储器;以及在电路中实现的一个或多个处理器。所述一个或多个处理器被配置为:获得视频数据的图片的块;确定所述块的大小;确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
示例16:根据示例15所述的装置,其中,所述一个或多个处理器还被配置为:基于禁用针对所述块的所述照度补偿,来将与所述块相关联的照度补偿标志的值设置为假,其中,所述照度补偿标志的被设置为假的所述值指示禁用针对所述块的照度补偿。
示例17:根据示例15或16中任一项所述的装置,其中,所述一个或多个处理器还被配置为:确定所述视频数据的图片的不同块的大小是否大于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否小于与所述视频译码流水线结构相关联的所述第二块大小;确定所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小;以及基于所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小,启用针对所述不同块的照度补偿。
示例18:根据示例17所述的装置,其中,所述一个或多个处理器还被配置为:基于启用针对所述不同块的所述照度补偿,来将与所述不同块相关联的照度补偿标志的值设置为真,其中,所述照度补偿标志的被设置为真的所述值指示启用针对所述不同块的照度补偿。
示例19:根据示例17或18中任一项所述的装置,其中,所述一个或多个处理器还被配置为:基于所述块的一个或多个相邻块和被选择用于所述块的帧间预测的参考块的一个或多个额外相邻块,来推导用于所述不同块的一个或多个照度补偿参数;基于所述一个或多个照度补偿参数来针对所述不同块应用照度补偿;以及基于被应用于所述块的所述照度补偿来重构所述块的样本。
示例20:根据示例15至19中任一项所述的装置,其中,所述一个或多个处理器还被配置为:基于所述块的大小小于与所述块大小限制相关联的所述第一块大小,来确定针对所述块不应用双向帧间预测。
示例21:根据示例20所述的装置,其中,禁用针对所述块的照度补偿是基于确定针对所述块不应用双向帧间预测的。
示例22:根据示例15至21中任一项所述的装置,其中,对视频数据进行译码包括对视频数据进行解码,其中,所述一个或多个处理器还被配置为:基于预测模式并且在没有所述照度补偿的情况下对所述块进行解码。
示例23:根据示例15至22中任一项所述的装置,其中,所述一个或多个处理器还被配置为:确定用于所述块的残差值;针对所述块执行预测模式;以及基于用于所述块的所述残差值和针对所述块执行的所述预测模式来重构所述块的至少一个样本。
示例24:根据示例15至23中任一项所述的装置,其中,对视频数据进行译码包括对视频数据进行编码,其中,所述一个或多个处理器还被配置为:生成经编码的视频比特流,所述经编码的视频比特流包括所述视频数据的图片的所述块。
示例25:根据示例24所述的装置,其中,所述一个或多个处理器还被配置为:在所述经编码的视频比特流中用信号通知一个或多个照度补偿标志,所述一个或多个照度补偿标志包括关于禁用针对所述块的照度补偿的指示。
示例26:根据示例24或25中任一项所述的装置,其中,所述一个或多个处理器还被配置为:用信号通知所述经编码的视频比特流。
示例27:根据示例26的装置,其中,确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况包括确定照度补偿被限制,并且其中,基于确定照度补偿被限制,与所述块相关联的照度补偿标志不在所述经编码的视频比特流中用信号通知。
示例28:根据示例15至27中任一项所述的装置,其中,所述一个或多个处理器还被配置为:确定所述视频数据的图片的不同块的大小是否等于或小于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否大于与所述视频译码流水线结构相关联的所述第二块大小;确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及基于确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,禁用针对所述不同块的照度补偿。
示例29:根据示例15至28中任一项所述的装置,其中,所述装置包括移动设备,其具有用于捕获一个或多个图片的相机。
示例30:根据示例15至29中任一项所述的装置,还包括:用于显示一个或多个图片的显示器。
示例31:一种具有存储在其上的指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据示例1至14中任一项所述的方法。
示例32:一种装置,包括用于执行根据示例1至14中任一项所述的方法的单元。
示例33:一种处理视频数据的方法。所述方法包括:获得所述视频数据的块;确定双预测不被用于对所述视频数据的所述块进行译码;基于确定双预测不被用于所述块来确定不对所述块应用照度补偿;以及处理所述视频数据的所述块。
示例34:根据示例33所述的方法,其中,确定不对所述块应用照度补偿包括基于确定双预测不被用于所述块来禁用针对所述块的照度补偿。
示例35:根据示例33或34中任一项所述的方法,其中,所述块包括所述视频数据的4x4块。
示例36:根据示例33至35中任一项所述的方法,还包括:响应于确定不对所述块应用照度补偿来确定不用信号通知针对所述块的照度补偿标志,其中,照度补偿标志指示照度补偿是否应用于块。
示例37:根据示例33至36中任一项所述的方法,还包括:获得所述视频数据的额外块;以及针对所述额外块执行照度补偿,其中,执行所述照度补偿包括:推导用于所述额外块的一个或多个照度补偿参数;以及对所述额外块应用于所述一个或多个照度补偿参数。
示例38:根据示例37所述的方法,其中,用于所述块的所述一个或多个照度补偿参数是使用相邻重构样本来推导的。
示例39:根据示例38所述的方法,其中,所述相邻重构样本是来自所述块的第一相邻块以及用于帧间预测的参考块的第二相邻块中的一者或多者的。
示例40:根据示例39所述的方法,其中,所述第一相邻块包括所述块的顶部相邻块或左侧相邻块中的一者或多者,并且其中,所述第二相邻块包括所述参考块的顶部相邻块或左侧相邻块中的一者或多者。
示例41:根据示例39或40中任一项所述的方法,其中,推导用于所述块的所述一个或多个照度补偿参数包括:将所述第一相邻块的重构样本和所述第二相邻块的重构样本之间的差最小化。
示例42:根据示例36至41中任一项所述的方法,其中,所述一个或多个照度补偿参数包括至少一个缩放因子和至少一个偏移。
示例43:根据示例36至42中任一项所述的方法,其中,对所述块执行所述照度补偿产生照度补偿预测器,并且所述方法还包括:使用所述照度补偿预测器来对所述块进行解码。
示例44:根据示例36至43中任一项所述的方法,还包括:在经编码的视频比特流中用信号通知所述一个或多个照度补偿参数。
示例45:根据示例33至44中任一项所述的方法,其中,处理所述视频数据的所述块包括对所述视频数据的所述块进行解码。
示例46:根据示例33至45中任一项所述的方法,其中,处理所述视频数据的所述块包括:生成经编码的视频比特流,所述经编码的视频比特流包括视频数据的块。
示例47:根据示例46所述的方法,还包括:用信号通知所述经编码的视频比特流。
示例48:一种装置,包括:存储器,其被配置为存储视频数据;以及处理器,其被配置为根据示例33至47中任一项来处理所述视频数据。
示例49:根据示例48所述的装置,其中,所述装置包括解码器。
示例50:根据示例48所述的装置,其中,所述装置包括编码器。
示例51:根据示例48至50中任一项所述的装置,其中,所述装置是移动设备。
示例52:根据示例48至51中任一项所述的装置,其中,所述装置包括被配置为显示所述视频数据的显示器。
示例53:根据示例48至52中任一项所述的装置,其中,所述装置包括被配置为捕获一个或多个图片的相机。
示例54:一种具有存储在其上的指令的计算机可读介质,所述指令在由处理器执行时执行根据示例33至47中任一项所述的方法。
示例55:一种处理视频数据的方法。所述方法包括:获得所述视频数据;确定与所述视频数据相关联的流水线结构;禁用针对所述视频数据的大于所述流水线结构中的块的块的照度补偿;以及处理所述视频数据的一个或多个块。
示例56:根据示例55所述的方法,其中,所述流水线结构包括64x64流水线结构。
示例57:根据示例55至56中任一项所述的方法,其中,针对其的照度补偿被禁用的所述块包括128xN块,并且其中,N是整数。
示例58:根据示例55至57中任一项所述的方法,还包括:响应于禁用针对所述视频数据的所述块的照度补偿,确定不用信号通知针对所述视频数据的所述块的照度补偿标志,其中,照度补偿标志指示照度补偿是否应用于块。
示例59:根据示例55至58中任一项所述的方法,还包括:获得所述视频数据的额外块;以及针对所述额外块执行照度补偿,其中,执行所述照度补偿包括:推导用于所述额外块的一个或多个照度补偿参数;以及对所述额外块应用所述一个或多个照度补偿参数。
示例60:根据示例59所述的方法,其中,用于所述块的所述一个或多个照度补偿参数是使用相邻重构样本来推导的。
示例61:根据示例60所述的方法,其中,所述相邻重构样本是来自所述块的第一相邻块以及用于帧间预测的参考块的第二相邻块中的一者或多者的。
示例62:根据示例61所述的方法,其中,所述第一相邻块包括所述块的顶部相邻块或左侧相邻块中的一者或多者,并且其中,所述第二相邻块包括所述参考块的顶部相邻块或左侧相邻块中的一者或多者。
示例63:根据示例61或62中任一项所述的方法,其中,推导用于所述块的所述一个或多个照度补偿参数包括:将所述第一相邻块的重构样本和所述第二相邻块的重构样本之间的差最小化。
示例64:根据示例59至63中任一项所述的方法,其中,所述一个或多个照度补偿参数包括至少一个缩放因子和至少一个偏移。
示例65:根据示例59至64中任一项所述的方法,其中,对所述块执行所述照度补偿产生照度补偿预测器,并且所述方法还包括:使用所述照度补偿预测器来对所述块进行解码。
示例66:根据示例59至65中任一项所述的方法,还包括:在经编码的视频比特流中用信号通知所述一个或多个照度补偿参数。
示例67:根据示例55至66中任一项所述的方法,其中,处理所述视频数据的所述一个或多个块包括对视频数据的所述一个或多个块进行解码。
示例68:根据示例55至67中任一项所述的方法,其中,处理所述视频数据的所述一个或多个块包括:生成经编码的视频比特流,所述经编码的视频比特流包括视频数据的所述一个或多个块。
示例69:根据示例68所述的方法,还包括:用信号通知所述经编码的视频比特流。
示例70:一种装置,包括:存储器,其被配置为存储视频数据;以及处理器,其被配置为根据示例55至69中任一项来处理所述视频数据。
示例71:根据示例70所述的装置,其中,所述装置包括解码器。
示例72:根据示例70所述的装置,其中,所述装置包括编码器。
示例73:根据示例70至72中任一项所述的装置,其中,所述装置是移动设备。
示例74:根据示例70至73中任一项所述的装置,其中,所述装置包括被配置为显示所述视频数据的显示器。
示例75:根据示例70至74中任一项所述的装置,其中,所述装置包括被配置为捕获一个或多个图片的相机。
示例76:一种具有存储在其上的指令的计算机可读介质,所述指令在由处理器执行时执行根据示例55至69中任一项所述的方法。

Claims (30)

1.一种对视频数据进行译码的方法,所述方法包括:
获得视频数据的图片的块;
确定所述块的大小;
确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;
确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及
基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
2.根据权利要求1所述的方法,还包括:
基于禁用针对所述块的所述照度补偿,来将与所述块相关联的照度补偿标志的值设置为假,其中,所述照度补偿标志的被设置为假的所述值指示禁用针对所述块的照度补偿。
3.根据权利要求1所述的方法,还包括:
确定所述视频数据的图片的不同块的大小是否大于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否小于与所述视频译码流水线结构相关联的所述第二块大小;
确定所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小;以及
基于所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小,启用针对所述不同块的照度补偿。
4.根据权利要求3所述的方法,还包括:
基于启用针对所述不同块的所述照度补偿,来将与所述不同块相关联的照度补偿标志的值设置为真,其中,所述照度补偿标志的被设置为真的所述值指示启用针对所述不同块的照度补偿。
5.根据权利要求3所述的方法,还包括:
基于所述块的一个或多个相邻块和被选择用于所述块的帧间预测的参考块的一个或多个额外相邻块,来推导用于所述不同块的一个或多个照度补偿参数;
基于所述一个或多个照度补偿参数来针对所述不同块应用照度补偿;以及
基于被应用于所述块的所述照度补偿来重构所述块的样本。
6.根据权利要求1所述的方法,还包括:
基于所述块的大小小于与所述块大小限制相关联的所述第一块大小,来确定针对所述块不应用双向帧间预测。
7.根据权利要求6所述的方法,其中,禁用针对所述块的照度补偿是基于确定针对所述块不应用双向帧间预测的。
8.根据权利要求1所述的方法,其中,对视频数据进行译码包括对视频数据进行解码,所述方法还包括:
基于预测模式并且在没有所述照度补偿的情况下对所述块进行解码。
9.根据权利要求1所述的方法,还包括:
确定用于所述块的残差值;
针对所述块执行预测模式;以及
基于用于所述块的所述残差值和针对所述块执行的所述预测模式来重构所述块的至少一个样本。
10.根据权利要求1所述的方法,其中,对视频数据进行译码包括对视频数据进行编码,所述方法还包括:
生成经编码的视频比特流,所述经编码的视频比特流包括所述视频数据的图片的所述块。
11.根据权利要求10所述的方法,还包括:
在所述经编码的视频比特流中用信号通知一个或多个照度补偿标志,所述一个或多个照度补偿标志包括关于禁用针对所述块的照度补偿的指示。
12.根据权利要求10所述的方法,还包括:
用信号通知所述经编码的视频比特流。
13.根据权利要求12所述的方法,其中,确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况包括确定照度补偿被限制,并且其中,基于确定照度补偿被限制,与所述块相关联的照度补偿标志不在所述经编码的视频比特流中用信号通知。
14.根据权利要求1所述的方法,还包括:
确定所述视频数据的图片的不同块的大小是否等于或小于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否大于与所述视频译码流水线结构相关联的所述第二块大小;
确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及
基于确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,禁用针对所述不同块的照度补偿。
15.一种用于对视频数据进行译码的装置,所述装置包括:
至少一个存储器;以及
一个或多个处理器,其在电路中实现并且被配置为:
获得视频数据的图片的块;
确定所述块的大小;
确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;
确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及
基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
16.根据权利要求15所述的装置,其中,所述一个或多个处理器还被配置为:
基于禁用针对所述块的所述照度补偿,来将与所述块相关联的照度补偿标志的值设置为假,其中,所述照度补偿标志的被设置为假的所述值指示禁用针对所述块的照度补偿。
17.根据权利要求15所述的装置,其中,所述一个或多个处理器还被配置为:
确定所述视频数据的图片的不同块的大小是否大于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否小于与所述视频译码流水线结构相关联的所述第二块大小;
确定所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小;以及
基于所述不同块的大小大于与所述块大小限制相关联的所述第一块大小并且小于与所述视频译码流水线结构相关联的所述第二块大小,启用针对所述不同块的照度补偿。
18.根据权利要求17所述的装置,其中,所述一个或多个处理器还被配置为:
基于启用针对所述不同块的所述照度补偿,来将与所述不同块相关联的照度补偿标志的值设置为真,其中,所述照度补偿标志的被设置为真的所述值指示启用针对所述不同块的照度补偿。
19.根据权利要求17所述的装置,其中,所述一个或多个处理器还被配置为:
基于所述块的一个或多个相邻块和被选择用于所述块的帧间预测的参考块的一个或多个额外相邻块,来推导用于所述不同块的一个或多个照度补偿参数;
基于所述一个或多个照度补偿参数来针对所述不同块应用照度补偿;以及
基于被应用于所述块的所述照度补偿来重构所述块的样本。
20.根据权利要求15所述的装置,其中,所述一个或多个处理器还被配置为:
基于所述块的大小小于与所述块大小限制相关联的所述第一块大小,来确定针对所述块不应用双向帧间预测。
21.根据权利要求20所述的装置,其中,禁用针对所述块的照度补偿是基于确定针对所述块不应用双向帧间预测的。
22.根据权利要求15所述的装置,其中,对视频数据进行译码包括对视频数据进行解码,其中,所述一个或多个处理器还被配置为:
基于预测模式并且在没有所述照度补偿的情况下对所述块进行解码。
23.根据权利要求15所述的装置,其中,所述一个或多个处理器还被配置为:
确定用于所述块的残差值;
针对所述块执行预测模式;以及
基于用于所述块的所述残差值和针对所述块执行的所述预测模式来重构所述块的至少一个样本。
24.根据权利要求15所述的装置,其中,对视频数据进行译码包括对视频数据进行编码,其中,所述一个或多个处理器还被配置为:
生成经编码的视频比特流,所述经编码的视频比特流包括所述视频数据的图片的所述块。
25.根据权利要求24所述的装置,其中,所述一个或多个处理器还被配置为:
在所述经编码的视频比特流中用信号通知一个或多个照度补偿标志,所述一个或多个照度补偿标志包括关于禁用针对所述块的照度补偿的指示;以及
用信号通知所述经编码的视频比特流。
26.根据权利要求25所述的装置,其中,确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况包括确定照度补偿被限制,并且其中,基于确定照度补偿被限制,与所述块相关联的照度补偿标志不在所述经编码的视频比特流中用信号通知。
27.根据权利要求15所述的装置,其中,所述一个或多个处理器还被配置为:
确定所述视频数据的图片的不同块的大小是否等于或小于与所述块大小限制相关联的所述第一块大小或者所述不同块的大小是否大于与所述视频译码流水线结构相关联的所述第二块大小;
确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及
基于确定所述不同块的大小是等于或小于与所述块大小限制相关联的所述第一块大小以及大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,禁用针对所述不同块的照度补偿。
28.根据权利要求15所述的装置,其中,所述装置包括移动设备,其具有用于捕获一个或多个图片的相机。
29.根据权利要求15所述的装置,还包括:用于显示一个或多个图片的显示器。
30.一种具有存储在其上的指令的非暂时性计算机可读介质,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器进行以下操作:
获得视频数据的图片的块;
确定所述块的大小;
确定所述块的大小是否等于或小于与块大小限制相关联的第一块大小或者所述块的大小是否大于与视频译码流水线结构相关联的第二块大小,所述块大小限制用于限制针对具有等于或小于与所述块大小限制相关联的所述第一块大小的相应大小的块的双向帧间预测;
确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况;以及
基于确定所述块的大小是等于或小于与所述块大小限制相关联的所述第一块大小或者大于与所述视频译码流水线结构相关联的所述第二块大小中的一种情况,来禁用针对所述块的照度补偿。
CN201980086680.4A 2019-01-03 2019-12-24 针对照度补偿的块大小限制 Pending CN113287300A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962788117P 2019-01-03 2019-01-03
US62/788,117 2019-01-03
US16/725,775 2019-12-23
US16/725,775 US11272201B2 (en) 2019-01-03 2019-12-23 Block size restriction for illumination compensation
PCT/US2019/068475 WO2020142331A1 (en) 2019-01-03 2019-12-24 Block size restriction for illumination compensation

Publications (1)

Publication Number Publication Date
CN113287300A true CN113287300A (zh) 2021-08-20

Family

ID=71403602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980086680.4A Pending CN113287300A (zh) 2019-01-03 2019-12-24 针对照度补偿的块大小限制

Country Status (6)

Country Link
US (1) US11272201B2 (zh)
EP (1) EP3906674A1 (zh)
KR (1) KR20210107021A (zh)
CN (1) CN113287300A (zh)
TW (1) TW202042552A (zh)
WO (1) WO2020142331A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11032543B2 (en) * 2019-03-22 2021-06-08 Tencent America LLC Method and apparatus for video coding
EP3734972A1 (en) * 2019-05-03 2020-11-04 InterDigital VC Holdings, Inc. High level syntax simplified video coding tool set for small blocks
BR112021015754A2 (pt) * 2019-05-17 2021-11-30 Panasonic Ip Corp America Sistema e método para codificação de vídeo
CN114270829A (zh) * 2019-06-21 2022-04-01 交互数字Vc控股法国有限公司 局部照明补偿标志继承
EP4298796A1 (en) * 2021-02-26 2024-01-03 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video coding concept allowing for limitation of drift
US20230021722A1 (en) * 2021-07-20 2023-01-26 Mediatek Inc. Apparatus and method for performing motion vector refinement to get more precise motion vectors
CN116076073A (zh) * 2021-09-02 2023-05-05 辉达公司 用于高性能视频编码的硬件编解码器加速器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105794209A (zh) * 2013-12-13 2016-07-20 高通股份有限公司 控制三维(3d)hevc或其它3d译码中的子预测单元(sub-pu)运动参数继承mpi
CN107710764A (zh) * 2015-06-09 2018-02-16 高通股份有限公司 确定用于视频译码的照明补偿状态的系统及方法
WO2018056603A1 (ko) * 2016-09-22 2018-03-29 엘지전자 주식회사 영상 코딩 시스템에서 조도 보상 기반 인터 예측 방법 및 장치

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105794209A (zh) * 2013-12-13 2016-07-20 高通股份有限公司 控制三维(3d)hevc或其它3d译码中的子预测单元(sub-pu)运动参数继承mpi
CN107710764A (zh) * 2015-06-09 2018-02-16 高通股份有限公司 确定用于视频译码的照明补偿状态的系统及方法
WO2018056603A1 (ko) * 2016-09-22 2018-03-29 엘지전자 주식회사 영상 코딩 시스템에서 조도 보상 기반 인터 예측 방법 및 장치

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YI-WEN CHEN 等: "AHG5: Reducing VVC worst-case memory bandwidth by restricting bi-directional 4x4 inter CUs/Sub-blocks", 《JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11》, 12 October 2018 (2018-10-12), pages 1 - 2 *

Also Published As

Publication number Publication date
KR20210107021A (ko) 2021-08-31
TW202042552A (zh) 2020-11-16
US11272201B2 (en) 2022-03-08
WO2020142331A1 (en) 2020-07-09
US20200221111A1 (en) 2020-07-09
EP3906674A1 (en) 2021-11-10

Similar Documents

Publication Publication Date Title
US10999594B2 (en) Virtual search area for current picture referencing (CPR) and intra block copy (IBC)
CN109792518B (zh) 处理视频数据的方法、设备和非暂时性计算机可读介质
US11140408B2 (en) Affine motion prediction
KR102195668B1 (ko) 스케일러블 및 멀티-뷰 비디오 코딩에서의 진보된 잔차 예측
KR20210068439A (ko) 히스토리 기반 모션 벡터 예측자에 대한 개선들
KR102312766B1 (ko) 비디오 코딩을 위한 디스패리티 벡터 및/또는 진보된 레지듀얼 예측
CN114208176A (zh) 用于使用与图像大小相关的缩放比例的译码视频的方法和装置
US11272201B2 (en) Block size restriction for illumination compensation
US11290743B2 (en) Interaction of illumination compensation with inter-prediction
KR20220030988A (ko) 스위칭가능 필터들로의 레퍼런스 픽처 리샘플링
KR20220064962A (ko) 히스토리 기반 모션 벡터 예측
JP2022537664A (ja) スケーラビリティサポートのための同じピクチャ順序カウント(poc)番号付け
CN114402617A (zh) 利用矢量裁剪的仿射译码
US11388394B2 (en) Local illumination compensation (LIC) for virtual pipeline data units (VPDUS)
WO2021252293A2 (en) Decoded picture buffer (dpb) operations and access unit delimiter (aud)
CN113302939A (zh) 从局部照度补偿参数推导中排除帧内译码的参考样本
JP2023554269A (ja) 重複ブロック動き補償
US10887611B2 (en) Pruning for illumination compensation mode

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