首页 / 广义双向预测和加权预测

广义双向预测和加权预测有效专利 发明

技术领域

[0001] 本实施例中的至少一个一般涉及用于画面编码和解码的方法和设备,并且具体涉及使用双向预测进行画面编码和解码的方法和设备。

相关背景技术

[0002] 为了实现高压缩效率,图像和视频编码方案通常采用预测和变换来利用视频内容中的空间和时间冗余。一般地,帧内或帧间预测用于利用帧内或帧间相关性,然后对原始图像块和预测的图像块之间的差(通常表示为预测误差或预测残差或预测量)进行变换,量化和熵编码。在编码期间,通常可能使用四叉树分区将原始图像块分区/分割为子块。为了重构视频,通过与预测、变换、量化和熵编码对应的逆处理来解码压缩数据。在帧内模式下,使用当前条带,图块(tile)或画面的重构样本(例如,当前块的邻近样本)来计算块预测,如图1顶部描绘。在帧间模式下,根据之前重构的一个参考画面的至少一个运动补偿(MC)块来计算块预测,如图1描绘(底部)。

具体实施方式

[0031] 在HEVC编码中,画面被分区为具有可配置大小(典型为64x64、128x128或256x256)的正方形形状的CTU。CTU是四叉树的根,该四叉树被分区为四个相等大小的正方形编码单元(CU),即宽度和高度上是父块大小的一半。四叉树是其中父节点可以被分割为四个子节点的树,四个子节点中的每个都可以成为被进一步分割为四个子节点的父节点。在HEVC中,编码块(CB)被分区为一个或多个预测块(PB),并形成被分区为变换块(TB)的四叉树的根。对应于编码块,预测块和变换块,编码单元(CU)包括预测单元(PU)和树形结构的变换单元(TU)集,PU包括所有颜色分量的预测信息,TU包括每个颜色分量的残差编码语法结构。亮度分量的CB,PB和TB的大小应用于对应CU,PU和TU
[0032] 在更多最近的编码系统中,CTU是分区为编码单元(CU)的编码树的根。编码树是其中父节点(通常对应于CU)可以被分割为子节点(例如,被分割为2、3或4个子节点)的树,每个子节点可以成为用于进一步分割为子节点的父节点。除了四叉树分割模式之外,还定义新分割模式(二叉树对称分割模式,二叉树非对称分割模式和三叉树分割模式),其增加可能的分割模式的总数。编码树具有唯一根节点,例如CTU。编码树的叶片是树的终止节点。编码树的每个节点表示CU,其可以被进一步分割为更小的CU,也称为子CU或更一般地称为子块。一旦确定CTU分区为CU,就编码与编码树的叶片对应的CU。可以通过率失真优化过程在编码器侧确定CTU分区为CU以及用于编码每个CU(对应于编码树的叶片)的编码参数。
[0033] 在本申请中,术语“块”或“画面块”可用于指代CTU,CU,PU,TU,CB,PB和TB中的任何一个。另外,术语“块”或“画面块”可用于指代H.264/AVC或其他视频编码标准中规定的宏块,分区和子块,并且更一般地指代各种大小的样本阵列。。
[0034] 在本申请中,术语“重构”和“解码”可以互换使用,术语“像素”和“样本”可以互换使用,术语“图像”,“画面”,“帧”,“图块”或“条带”可以互换使用。通常但并非必须,术语“重构”在编码器侧使用,而“解码”在解码器侧使用。
[0035] 在帧间模式下,双向预测包括平均化两个参考块用于预测当前块。广义双向预测(GBI)是传统双向预测的变型,它允许双向预测权重在CU级别上传输。因此,GBI包括利用与常规双向预测中使用的权重(1/2;1/2)不同的权重来对块预测样本的总和进行加权。权重因此可以由表定义。作为示例,在以双向预测模式编码块的情况下,可以按块编码指向权重的表的条目或更一般地指向定义的权重集合的索引。GBI不应用于单向编码模式。
[0036] 加权预测(WP)包括对解码画面缓冲器(DPB)中的每个参考画面按条带定义权重和偏移。WP被应用于块预测。权重固定用于一个条带中的所有参考。WP可以在两种情况下应用:单向预测或双向预测。
[0037] 双向预测
[0038] 在双向预测中,分别使用来自列表L0和L1的两个参考画面来计算两个预测块(Pred0和Pred1)。用于计算Pred0的参考画面具有参考索引ref0,而用于计算Pred1的参考画面具有参考索引ref1。
[0039] 然后将预测量Pred0和Pred1组合为单个预测量Predbi。传统上,(等式1)中的组合包括平均化两个预测:
[0040] Predbi=(1/2*Pred0[x]+1/2*Pred1[x])               (1)
[0041] 在变型中,适配实现方式,以便使用整数和移位(shift)运算,如下所示:
[0042] Predbi=(Pred0[x]+Pred1[x]+1)>>1               (2)
[0043] 其中>>是右移位运算符。
[0044] 广义双向预测
[0045] 在广义双向预测(GBI)中,用于组合的权重(w0和w1)不一定等于1:
[0046] Predbi=(w0.Pred0[x]+w1.Pred1[x]+off)/(w0+w1)    (3)
[0047] 在变型中,将(2)简化如下,以易于实现方式(使用整数和移位运算):
[0048] Predgbi=(gw0.Pred0[x]+gw1.Pred1[x]+(1<<(gs‑1)))>>gs    (4)
[0049] 其中<<是左移位运算符。
[0050] 权重w0和w1可以不同。作为示例,w0可以等于w,而w1等于(1‑w),表1中列出权重值w。可以在比特流中编码与权重值对应的索引gbi_index用于每个块。例如,使用表1中规定的固定二值化,语法元素gbi_index被编码用于w1(按照w0=1‑w1从w1推导出w0,或等效地使用整数和移位运算)。
[0051]
[0052] 表1
[0053] 语法元素gbi_index可以被编码/解码用于以帧间双向预测编码的每个块/CU。在某些特定模式(例如,合并模式)中,当前块的gbi_index的值可以从当前CU从其继承其参数的邻域(更确切地,从合并候选之一)的gbi_index的值推断。
[0054] 加权单向预测和加权双向预测
[0055] 权重也可以从全局照度补偿(也称为“加权预测”(WP)工具)中确定。在这种情况下,权重由编码器确定,并且被固定用于整个条带。它们可以在比特流中传输。
[0056] WP允许定义与存储在解码画面缓冲器(DPB)中的每个列表(L0和L1)的每个参考画面“i”的每个分量相关联的每个条带的权重和偏移(wi;offi)。然后WP可以应用在块预测。权重和偏移在条带首部中被编码。WP可以在两种情况下应用:单向预测(等式5)和双向预测(等式6)。在使用利用列表L0的参考refIdx0的单向预测时编码/解码当前CU的情况下,一个表示与refIdx0相关的权重和偏移(w0;off0)。预测量如下确定:
[0057] Pred’0=((w0.Pred0[x]+(1<<(shift‑1)))>>shift)+off0   (5)
[0058] 在使用利用列表L0的参考refIdx0和列表L1的refIdx1的双向预测编码/解码当前CU的情况下,一个表示与refIdx0相关联的权重和偏移(w0;off0)以及与refIdx1相关联的权重和偏移(w1;off1)。预测量确定如下:
[0059] Pred’01=((w0.Pred0[x]+w1.Pred1[x]+off01)>>(shift+1)  (6)
[0060] 其中off01=(off0+off1+1)<
[0061] shift也在比特流中传输。
[0062] GBI和WP具有相似的基本原理,因为它们都通过利用权重的线性加权来修改预测样本。
[0063] 至少一个实施例提出了使这两个工具在编解码器中适当地共存。
[0064] 图2表示根据特定且非限制性实施例的用于从比特流解码双向预测的CU/块的方法的流程图。
[0065] 该方法开始于步骤S310。高级语法(HLS)元素被解码(S320)。描述比特流结构或提供应用于多个画面或画面中多个编码块区域的信息的语法元素(诸如,参数集)被称为HEVC的“高级语法”部分。序列参数集(SPS),画面参数集(PPS),图块首部或条带首部(SH)是HLS的示例。在实施例中,标志weighted_pred_flag和weighted_bipred_flag被解码(S320)。它们指示WP是否可用于解码后续条带的CU。以相同的方式,附加标志generalized_bi_prediction_flag和gbi_enabled_flag可以被解码(S320)。作为示例,可以从PPS解码generalized_bi_prediction_flag,并且可以从SH解码gbi_enabled_flag。它们指示GBI是否可以应用于后续条带的CU。表2和表3中提出PPS和SH语法的示例。
[0066]
[0067] 表2
[0068]
[0069] 表3
[0070] 在S360,GBI参数被解码。在实施例中,可以在CU级别解码GBI参数(例如,gbi_index)。
[0071] 在另一个实施例中,可以在编码单元(CU)级别上指定附加条件cond_gbi()(S350)。cond_gbi()是CU参数的函数,该函数返回布尔值,以指示是否显式编码gbi_index。例如,在以合并模式编码CU的情况下,cond_gbi()为假。
[0072] 在cond_gbi()为真(即,比特流中呈现GBI参数)的情况下,该方法在S360处继续以解码GBI参数。否则(cond_gbi()为假),该方法在S370继续。
[0073] 预测量P0和P1被确定(S370)。通过运动补偿第一参考图像中的第一参考块来获得预测量P0。通过运动补偿第二参考图像中的第二参考块来获得预测量P1。从比特流中解码出用于运动补偿的运动矢量。
[0074] 在GBI可应用的情况下,该方法在S380处继续。使用GBI参数(即由gbi_index确定的权重)将两个预测量P0和P1组合成单个预测量(S380)。
[0075] 在GBI不可应用的情况下,使用默认权重(例如,常规双向预测)将这两个预测量组合为单个预测量。
[0076] 在S390,重构CU。为此目的,如果尚未在S330处解码,则从比特流中解码残差。将残差添加到预测量以获得重构CU。
[0077] 该方法在步骤S395处结束。
[0078] 在变型中,加权预测也可以应用。在WP应用于(S420)双向预测的情况下(例如,weighted_bipred_flag为真),该方法在S430处继续。否则,该方法在S380处继续。
[0079] 在S430,将WP应用在预测量P0和P1,即,使用WP权重和偏移来加权P0和P1。
[0080] 在GBI可应用的情况下,该方法在S380处继续。使用GBI参数(即由gbi_index确定的权重),将WP之后的两个预测量P0和P1组合为单个预测量(S380)。
[0081] 图3表示根据特定且非限制性实施例的用于从比特流编码双向预测CU/块的方法的流程图。
[0082] 该方法开始于步骤S510。高级语法(HLS)元素被获得和编码(S520)。序列参数集(SPS),画面参数集(PPS),图块首部或条带首部(SH)是HLS的示例。在实施例中,标志weighted_pred_flag和weighted_bipred_flag被获得和编码(S520)。它们指示WP是否可用于编码后续条带的CU。以相同的方式,附加标志generalized_bi_prediction_flag和gbi_enabled_flag可以被获得和编码(S520)。作为示例,可以在PPS中编码generalized_bi_prediction_flag,并且可以在SH中编码gbi_enabled_flag。它们指示GBI是否可以应用于后续条带的CU。在表2和表3中提出PPS和SH语法的示例。选择是否应用GBI和WP,权重和偏移值的确定可以通过率失真优化来完成。
[0083] 在S560,GBI参数被编码。在实施例中,GBI参数(例如,gbi_index)可以在CU级别被编码。
[0084] 在另一个实施例中,可以在编码单元(CU)级别上指定附加条件cond_gbi()(S550)。cond_gbi()是CU参数的函数,该函数返回布尔值,以指示是否显式编码gbi_index。
[0085] 在cond_gbi()为真(即,比特流中呈现GBI参数)的情况下,该方法在S560处继续以编码GBI参数。否则(cond_gbi()为假),该方法在S570处继续。
[0086] 确定预测量P0和P1(S570)。通过运动补偿第一参考图像中的第一参考块来获得预测量P0。通过运动补偿第二参考图像中的第二参考块来获得预测量P1。用于运动补偿的运动矢量通过运动估计获得,并编码在比特流中。在GBI可应用的情况下,该方法在S580处继续。
[0087] 使用GBI参数(即,由gbi_index确定的权重)将两个预测量P0和P1组合成单个预测量(S580)。在GBI不应用的情况下,使用默认权重(例如,常规双向预测)将这两个预测量组合为单个预测量。
[0088] 在S590,CU被编码。为此,在比特流中编码(转换,量化和熵编码)残差。残差是通过从CU中减去预测量获得的。
[0089] 该方法在步骤S595处结束。
[0090] 在变型中,加权预测也可以应用。在WP应用于双向预测的情况下(S520)(例如,weighted_bipred_flag为真),该方法在S530处继续。否则,该方法在S580处继续。
[0091] 在S530,WP应用于预测量P0和P1,即,使用WP权重和偏移来加权P0和P1。
[0092] 在GBI可应用的情况下,该方法在S580处继续。使用GBI参数(即由gbi_index确定的权重),将WP之后的两个预测量P0和P1组合为单个预测量(S580)。
[0093] 图4表示根据特定且非限制性实施例的用于从比特流解码CU/块的方法的流程图。
[0094] 该方法开始于步骤S310。高级语法(HLS)元素被解码(S320)。序列参数集(SPS),画面参数集(PPS),图块首部或条带首部(SH)是HLS的示例。在实施例中,标志weighted_pred_flag和weighted_bipred_flag被解码(S320)。它们指示WP是否可用于解码后续条带的CU。以相同的方式,附加标志generalized_bi_prediction_flag和gbi_enabled_flag可以被解码(S320)。作为示例,可以从PPS解码generalized_bi_prediction_flag,并且可以从SH解码gbi_enabled_flag。它们指示GBI是否可以应用于后续条带的CU。表2和表3中提出了PPS和SH语法的示例。
[0095] 然后,当前CU的参数(编码模式,运动矢量等)被解码(S330)。在实施例中,与当前CU相关联的所有参数被解码。在变型中,仅解码它们的子集(例如,指示当前CU是否被双向预测的参数)。
[0096] 在CU被双向预测的情况下(S340),该方法在S350(如果存在S350)或在S360(如果不存在S350)继续。否则,该方法在S372处继续。在单向预测的情况下(S372),确定单个预测量P0。
[0097] 在S360,GBI参数被解码。在实施例中,如表4和表5公开的,可以在CU级别解码GBI参数(例如,gbi_index)。通过decode_gbi_info()解码GBI参数的集合。在某些情况下,可能减少可能权重的数量max_gbi_index(即gbi_index的最大值)。因此,max_gbi_index也可以是由decode_gbi_info()解码的参数。在另一个示例中,max_gbi_index是当前POC(画面顺序计数)和参考POC的函数。
[0098] 在另一个实施例中,要使用的gbi_index表是从其他CU参数(诸如,当前POC)中推断出来的。
[0099]
[0100] 表4
[0101]
[0102] 表5
[0103] 在另一个实施例中,可以在编码单元(CU)级别上指定附加条件cond_gbi()(S350)。因此,表3被表5取代。cond_gbi()是CU参数的函数,其返回布尔值,以指示是否显式编码gbi_index。实际上,可以例如在合并模式的情况下显式编码或推断诸如gbi_index的GBI参数。GBI也可以通过cond_gbi()禁用(表6)。例如,cond_gbi()可以禁用GBI(gbi_enabled_flag设置为假)用于小块(样本的数量<256)。在这种情况下,权重可以设置为如常规双向预测中使用的默认权重(S385)。在合并模式的情况下,cond_gbi()返回假,从一个邻域CU(即,选择的合并候选)的gbi_index确定gbi_index。
[0104]
[0105] 表6
[0106] 在cond_gbi()为真(即,比特流中存在GBI参数)的情况下,该方法在S360处继续以解码GBI参数。否则(cond_gbi()为假),该方法在S370继续。
[0107] 确定预测量P0和P1(S370)。通过运动补偿第一参考图像中的第一参考块来获得预测量P0。通过运动补偿第二参考图像中的第二参考块来获得预测量P1。从比特流中解码用于运动补偿的运动矢量(S330)。在GBI可应用的情况下(S375),该方法在S380处继续。
[0108] 使用GBI参数(即由gbi_index确定的权重)将两个预测量P0和P1组合成单个预测量(S380)。
[0109] 在GBI不可应用的情况下(S375),该方法在S385处继续。
[0110] 使用默认权重(例如,常规双向预测)将两个预测量组合成单个预测量(S385)。
[0111] 在S390,重构CU。为此目的,如果尚未在S330处解码,则从比特流中解码残差。将残差添加到预测量以获得重构CU。
[0112] 该方法在步骤S395处结束。
[0113] 在一个实施例中,如作为表2的变型的表7的示例中例示,在启用WP的情况下禁用GBI。实际上,启用WP和GBI用于双向预测的块可能会增加实现方式复杂性。
[0114]
[0115] 表7
[0116] 在启用WP的情况下(即,weighted_bipred_flag等于1或真),则generalized_bi_prediction_flag=假。否则,从比特流解码generalized_bi_prediction_flag。
[0117] 在变型中,可以基于当前CU参数(S375处的is_gbi_applicable())在CU级别上实现GBI‑WP互斥。然后可以使weighted_bipred_flag和generalized_bipred_flag都等于真,但是WP和GBI不会在CU级别一起激活/应用,即,其中之一被禁用,或者说只有其中之一被激活/应用,因此只有其中一个应用在CU级别。在GBI‑WP互斥的情况下,在CU级别上禁用GBI和WP中的一个等效于激活/应用WP和GBI中的单个。例如,在双向预测的情况下,并且如果is_gbi_applicable()=真,则不应用WP(即使weighted_bipred_flag=真),即WP被禁用,因此不应用,而GBI被激活,因此应用。
[0118] 例如,在weighted_bipred_flag=假的双向预测的情况下,或者在weighted_bipred_flag为真且WP权重和偏移(w0;off0)(w1;off1)等于(1;0)的情况下,则is_gbi_applicable()设置为真,即WP被禁用,因此不应用,同时GBI被激活,因此应用。
[0119] 例如,在weighted_bipred_flag为真的双向预测并且至少一个(w0;off0)或(w1;off1)不等于(1;0)的情况下,则is_gbi_applicable()设置为假,即WP被激活,因此应用,同时GBI被禁用,因此不应用。
[0120] 图5表示根据特定且非限制性实施例的用于从比特流解码CU/块的方法的流程图。在该实施例中,GBI和WP都被一起启用用于双向预测。首先应用WP,然后应用GBI。与图2的步骤完全相同的图3的步骤由相同的附图标记标识并且不再进一步公开。
[0121] 该方法开始于步骤S310。高级语法(HLS)元素被解码(S320)。序列参数集(SPS),画面参数集(PPS),图块首部或条带首部(SH)是HLS的示例。然后,当前CU的参数(编码模式,运动矢量等)被解码(S330)。
[0122] 在CU被双向预测的情况下(S340),该方法在S350处继续(如果存在S350)或在S360处继续(如果不存在S350)。否则(CU不被双向预测),该方法在S372处继续。在单向预测的情况下(S372),确定单个预测量P0。在weighted_pred_flag为真的情况下(S400),该方法在S410处继续。否则,该方法在S390处继续。在S410,将WP应用于预测量P0,即,使用WP权重和偏移来加权P0。
[0123] 在cond_gbi()为真(即,比特流中存在GBI参数)的情况下,该方法在S360处继续以解码GBI参数。否则(cond_gbi()为假),该方法在S370处继续。在S360,解码GBI参数(例如,gbi_index)。
[0124] 确定预测量P0和P1(S370)。通过运动补偿第一参考图像中的第一参考块来获得预测量P0。通过运动补偿第二参考图像中的第二参考块来获得预测量P1。从比特流中解码用于运动补偿的运动矢量(S330)。
[0125] 在WP应用于双向预测的情况下(S420)(例如,weighted_bipred_flag为真),该方法在S430处继续。否则,该方法在S375处继续。
[0126] 在S430,WP应用在预测量P0和P1上,即,使用WP权重和偏移来加权P0和P1。在一个实施例(V0)中,在S430,WP应用在预测量P0(也表示为Pred’0)和P1(也表示为Pred’1)上,如下所示:
[0127] Pred’0=((w0.Pred0[x]+(1<<(shift‑1)))>>shift)+off0
[0128] Pred’1=((w1.Pred1[x]+(1<<(shift‑1)))>>shift)+off1
[0129] 在GBI可应用的情况下(S375),该方法在S380处继续。使用GBI参数(即由gbi_index确定的权重)将两个预测量P0和P1组合为单个预测量Pred’(S380)。因此,GBI在S380处应用如下(V0):
[0130] Pred”=(gw0.Pred’0[x]+gw1.Pred’1[x]+(1<<(gs‑1)))>>gs
[0131] 在GBI不可应用的情况下(S375),该方法在S385处继续。使用默认权重(例如,常规双向预测)将两个预测量组合成单个预测量(S385)。
[0132] 在S390,CU被重构。为此目的,如果尚未在S330处被解码,则从比特流中解码残差。将残差添加到预测量以获得重构CU。
[0133] 该方法在步骤S395处结束。
[0134] 在另一个实施例(V1)中,Pred”可以如下地多合一计算(即WP和GBI):
[0135] Pred”=(GW0.Pred0[x]+GW1.Pred1[x]+OFF0+OFF1+(1<<(GS‑1)))>>GS
[0136] 其中GW0=gw0 x w0,GW1=gw1 x w1且GS=shift+gs
[0137] OFF0=gw0 x(off0<
[0138] 该实施例提高了精度。但是,在计算(GW0.Pred0[x]+GW1.Pred1[x]+OFF0+OFF1+(1<<(GS‑1)))时可能会溢出中间存储存储器,或者使用大量比特。
[0139] 因此,在另一个实施例(V2)中,可以如下实现中间精度。
[0140] S430:Pred’0=((w0.Pred0[x]+(1<<(shift‑S‑1)))>>(shift‑S))+(off0<>(shift‑S))+(off1<
[0142] S380:Pred”=(gw0.Pred’0[x]+gw1.Pred’1[x]+(1<<(gs+S‑1)))>>(gs+S)[0143] 其中0
[0144] 这样,用于存储中间结果“gw0.Pred’0[x]+gw1.Pred’1[x]+(1<<(gs‑1))”的比特的数量小于之前实施例中使用的比特的数量,而精度保持高于V0,但低于V1。
[0145] 在又一个实施例中,可以将权重和偏移制成两个3维LUT(TableWeight,TableOffset)和一个1维LUT(TableShift),以方便实现:
[0146] GW0=TableWeight[0][idxRef0][numGbiIdx‑1–gbiIdx]
[0147] GW1=TableWeight[1][idxRef1][gbiIdx]
[0148] OFF0=TableOffset[0][idxRef0][numGbiIdx‑1–gbiIdx]
[0149] OFF1=TableOffset[1][idxRef1][gbiIdx]
[0150] GS=TableShift[gbiIdx]
[0151] 在又一实施例中,可以按CU编码附加标志,以指示WP是否应用于当前CU。
[0152] 在另一实施例中,GBI和WP组合在一起,以便使用与(V1)中相同的通用双向预测加权公式:
[0153] Pred”=(GW0.Pred0[x]+GW1.Pred1[x]+OFF0+OFF1+(1<<(GS‑1)))>>GS
[0154] 但是,做出一些适配以减少用于存储中间值“GW0.Pred0[x]+GW1.Pred1[x]+OFF0+OFF1+(1<<(GS‑1))”的比特的数量。
[0155] 在该实施例中,GBI表包含相对于默认权重的权重差(delta)。当禁用WP时,默认加权为1/2(w=1,s=1)。当启用WP时,默认权重为与参考索引相关联的w0或w1。表1中描述的示例进行如下修改(表8):
[0156]
[0157] 表8
[0158] 当禁用WP时,具有默认权重(w0=1)和(w1=1),shift(s=1)
[0159] Pred”=((w0+dw).Pred0[x]+(w1‑dw).Pred1[x]+(1<<(gs‑1)))>>gs
[0160] Pred”=(GW0.Pred0[x]+GW1.Pred1[x]+OFF0+OFF1+(1<<(GS‑1)))>>GS
[0161] 其中:GW0=w0.(1<<(gs‑1))‑dw1    GW1=w1.(1<<(gs‑1))+dw1
[0162] OFF0=OFF1=0
[0163] GS=gs
[0164] 当启用WP时,当前CU的refIdx0和refIdx1的值给出WP权重(w0,w1,s)和偏移(off0,off1)。
[0165] a)如果s
[0166] GW0=w0.(1<<(gs‑s))‑dw1    GW1=w1.(1<<(gs‑s))+dw1
[0167] OFF0=(off1<
[0168] GS=gs
[0169] b)如果s>gs,则具有:
[0170] GW0=w0‑dw1.(1<<(s‑gs))    GW1=w1+dw1.(1<<(s‑gs))
[0171] OFF0=(off1<
[0172] GS=s
[0173] 使用此方法,用于计算“GW0.Pred0[x]+GW1.Pred1[x]+OFF0+OFF1+(1<<(GS‑1))”的比特的数量低于实施例(V1)中的比特的数量,其中首先应用WP然后应用GBI。
[0174] 在变型中,移位gs和s的值相等,使得可以总是使用a)或b)。例如,gs=s=4。
[0175] 图4和5的实施例也可应用于编码器侧。
[0176] 本申请描述包括工具,特征,实施例,模型,方法等的多个方面。这些方面中的许多是专门描述的,并且至少为了示出各个特征,通常以听起来可能受到限制的方式来描述。然而,这是为了描述的清楚,并且不限制那些方面的应用或范围。实际上,所有不同方面都可以组合和互换以提供进一步的方面。此外,这些方面也可以与先前申请中描述的方面组合和互换。
[0177] 本申请中描述和设想的方面可以以许多不同的形式实现。下面的图6,图7和图8提供了一些实施例,但是可以设想其他实施例,并且图6、7和8的讨论不限制实现方式的宽度。这些方面中的至少一个方面一般涉及视频编码和解码,并且至少另一个方面一般涉及传输所生成或编码的比特流。这些和其他方面可以实现为方法,装置,其上存储有用于根据所描述的任何方法编码或解码视频数据的指令的计算机可读存储介质,和/或其上存储有根据所描述的任何方法生成的比特流的计算机可读存储介质。
[0178] 本文描述了各种方法,并且每个方法包括用于实现所描述的方法的一个或多个步骤或动作。除非方法的适当操作需要特定的步骤或动作顺序,否则可以修改或组合特定步骤和/或动作的顺序和/或使用。。
[0179] 本申请中描述的各种方法和其他方面可用于修改模块,例如,如图6和图7所示的视频编码器100和解码器200的运动补偿模块、熵编码模块和/或解码模块(170、275、145、230)。而且,本方面不限于VVC或HEVC,并且可以应用于例如其他标准和建议,无论是预先存在的还是将来开发的,以及任何这样的标准和推荐(包括VVC和HEVC)的扩展。除非另外指出或在技术上排除,否则本申请中描述的方面可以单独或组合使用。
[0180] 在本申请中使用各种数值,例如,表1中定义的权重值w0和w1。特定值是出于示例目的,并且所描述的方面不限于这些特定值。
[0181] 图6例示编码器100。可以设想该编码器100的变型,但是为了清楚起见,下面描述编码器100,而没有描述所有预期的变型。
[0182] 在被编码之前,视频序列可以经过预编码处理(101),例如,对输入的彩色画面应用颜色变换(例如,从RGB 4:4:4到YCbCr 4:2:0的转换),或者执行输入图像分量的重新映射,以便获得对压缩更有弹性的信号分布(例如,使用颜色分量之一的直方图均衡化)。元数据可以与预处理相关联,并附加到比特流。
[0183] 在编码器100中,画面由编码器元件编码,如下所述。要编码的画面例如以CU为单位被分区(102)和处理。例如使用帧内或帧间模式编码每个单元。当单元以帧内模式编码时,其执行帧内预测(160)。在帧间模式中,执行运动估计(175)和补偿(170)。编码器决定(105)帧内模式或帧间模式中的哪一个用于编码单元,并且例如通过预测模式标志指示帧内/帧间决定。通过从原始图像块中减去(110)预测块来计算预测残差。
[0184] 然后预测残差被变换(125)和量化(130)。熵编码(145)量化的变换系数以及运动矢量和其他语法元素,以输出比特流。编码器可以跳过该变换,并且将量化直接应用于未变换的残差信号。编码器还可以绕过变换和量化两者,即,在不应用变换或量化处理的情况下直接编码残差。。
[0185] 编码器对编码块进行解码,以为进一步的预测提供参考。量化的变换系数被去量化(140)并且逆变换(150)以解码预测残差。组合(155)解码的预测残差和预测块,重构图像块。环内滤波器(165)被应用于重构的画面,以例如执行去块/SAO(样本自适应偏移)滤波以减少编码伪像。滤波图像被存储在参考画面缓冲器(180)中。
[0186] 图7例示视频解码器200的框图。在解码器200中,由解码器元件解码比特流,如下面描述。视频解码器200一般执行与图8中描述的编码通道相反的解码通道。编码器100也一般执行视频解码作为编码视频数据的一部分。
[0187] 具体地,解码器的输入包括可由视频编码器100生成的视频比特流。首先熵解码(230)该比特流,以获得变换系数,运动矢量,和其他编码信息。画面分区信息指示画面如何被分区。因此,解码器可以根据解码的画面分区信息来划分(235)画面。去量化(240)和逆变换(250)变换系数以解码预测残差。组合(255)解码的预测残差和预测块,重构图像块。可以从帧内预测(260)或运动补偿预测(即,帧间预测)(275)获得(270)预测块。将环内滤波器(265)应用于重构的图像。滤波的图像存储在参考画面缓冲器(280)处。
[0188] 解码的画面可以进一步经历后解码处理(285),例如,逆颜色变换(例如,从YCbCr 4:2:0到RGB 4:4:4的转换)或逆重新映射以执行与预编码处理(101)中执行的重新映射处理的逆过程。后解码处理可以使用在预编码处理中推导出并在比特流中用信号通知的元数据。
[0189] 图8例示其中实现各个方面和实施例的系统的示例的框图。系统1000可以体现为包括下面描述的各种组件的设备,并且被配置为执行本文件描述的一个或多个方面。这样的设备的示例包括但不限于各种电子设备,诸如个人计算机,膝上型计算机,智能电话,平板计算机,数字多媒体机顶盒,数字电视接收器,个人视频记录系统,连接的家用电器和服务器。系统1000的元件单独或者组合地体现在单个集成电路,多个IC和/或分立组件中。例如,在至少一个实施例中,系统1000的处理和编码器/解码器元件跨越多个IC和/或分立组件分布。在各种实施例中,系统1000例如经由通信总线或者通过专用输入和/或输出端口通信地耦合到一个或多个其他系统或者其他电子设备。在各种实施例中,系统1000配置为实现本文件描述的一个或者多个方面。
[0190] 系统1000包括至少一个处理器1010,其被配置为执行加载在其中的指令,用于实现例如本文件描述的各种方面。处理器1010可以包括嵌入式存储器,输入输出接口和本领域已知的各种其他电路。系统1000包括至少一个存储器1020(例如,易失性存储器设备,非易失性存储器设备)。系统1000可以包括存储设备1040,其可以包括非易失性存储器和/或易失性存储器,包括但不限于电可擦除可编程只读存储器(EEPROM),只读存储器(ROM),可编程只读存储器(PROM),随机存取存储器(RAM),动态随机存取存储器(DRAM),静态随机存取存储器(SRAM),闪存,磁盘驱动器和/或光盘驱动器。作为非限制性示例,存储设备1040可以包括内部存储设备,附接的存储设备(包括可拆卸和不可拆卸的存储设备)和/或网络可存取存储设备。
[0191] 系统1000包括编码器/解码器模块1030,其被例如配置为处理数据以提供编码的视频或解码的视频,并且编码器/解码器模块1030可以包括其本身的处理器和存储器。编码器/解码器模块1030表示可以包括在设备中以执行编码和/或解码功能的(多个)模块。如所知,设备可以包括编码和解码模块中的一个或两者。另外,如本领域技术人员已知的,编码器/解码器模块1030可以实现为系统1000的单独元件,或者可以并入处理器1010内作为硬件和软件的组合。
[0192] 要加载到处理器1010或编码器/解码器1030上以执行本文件描述的各种方面的程序代码可以存储在存储设备1040中,并且随后加载到存储器1020上用于由处理器1010执行。根据示例性实施例,处理器1010,存储器1020,存储设备1040和编码器/解码器模块1030中的一个或多个可以在执行本文件描述的处理期间存储各种项目中的一个或多个。这种存储的项目包括但不限于输入视频,解码视频或解码视频的一部分,比特流,矩阵,变量以及对等式、公式、运算和运算逻辑的处理的中间或最终结果。
[0193] 在一些实施例中,处理器1010和/或编码器/解码器模块1030内部的存储器用于存储指令并为编码或解码期间所需的处理提供工作存储器。然而,在其他实施例中,处理设备(例如,处理设备可以是处理器1010或编码器/解码器模块1030)外部的存储器被用于这些功能中的一个或多个。外部存储器可以是存储器1020和/或存储设备1040,例如,动态易失性存储器和/或非易失性闪存。在若干个实施例中,外部非易失性闪存用于存储例如电视的操作系统。在至少一个实施例中,诸如RAM的快速外部动态易失性存储器被用作用于视频编码和解码操作的工作存储器,诸如用于MPEG‑2(MPEG指代运动画面专家组,MPEG‑2也称为ISO/IEC 13818,并且13818‑1也称为H.222,并且13818‑2也称为H.262),HEVC(HEVC指代高效视频编码,也称为H.265和MPEG‑H第2部分)或VVC(通用视频编码,由JVET(联合视频专家组)开发的新标准)。
[0194] 可以通过如块1130中指示的各种输入设备来提供对系统1000的元件的输入。这种输入设备包括但不限于(i)接收例如通过广播者在空中传输的RF信号的射频(RF)部分,(ii)复合输入端子(或者COMP输入端子的集合),(iii)通用串行总线(USB)输入端子和/或(iv)高清多媒体接口(HDMI)输入端子。在图10中未示出的其他示例包括复合视频。
[0195] 在各种实施例中,块1130的输入设备具有相关联的相应输入处理元件,如本领域中已知的。例如,RF部分可以与适合于以下的元件相关联:(i)选择期望频率(也称为选择信号,或将信号频带限制到频率的频带),(ii)下转换选择的信号,(iii)再次将频带限制到较窄的频率的频带以选择(例如)在某些实施例中可以称为信道的信号频率带,(iv)解调下转换且频带限制的信号,(v)执行纠错,以及(vi)解复用以选择期望的数据分组流。各种实施例的RF部分包括一个或多个执行这些功能的元件,例如,频率选择器,信号选择器,频带限制器,信道选择器,滤波器,下转换器,解调器,纠错器和解复用器。RF部分可以包括执行各种这些功能(包括例如将接收到的信号下转换为较低频率(例如,中频或近基带频率)或基带)的调谐器。在一个机顶盒实施例中,RF部分及其相关联的输入处理元件接收通过有线(例如电缆)介质传输的RF信号,并通过滤波,下转换和再次滤波到期望的频率带来执行频率选择。各种实施例重新布置上述(和其他)元件的顺序,移除这些元件中的一些,和/或添加执行类似或不同功能的其他元件。添加元件可以包括在现有元件之间插入元件,例如,插入放大器和模数转换器。在各个实施例中,RF部分包括天线。
[0196] 另外,USB和/或HDMI端子可以包括相应的接口处理器,用于跨越USB和/或HDMI连接将系统1000连接到其他电子设备。要理解,输入处理的各个方面,例如里德‑所罗门纠错,可以例如按照需要在单独的输入处理IC内或在处理器1010内实现。类似地,USB或HDMI接口处理的各个方面可以按照需要在单独的接口IC内或在处理器1010内实现。解调,纠错和解复用的流被提供给各种处理元件,包括例如与存储器和存储元件结合操作的处理器1010和编码器/解码器1030以处理数据流用于在输出设备上呈现。
[0197] 可以在集成壳体内提供系统1000的各种元件。在集成壳体内,可以使用合适的连接布置互连各种元件并在它们之间传输数据,例如,本领域已知的内部总线,包括内部IC(I2C)总线,布线和印刷电路板。
[0198] 系统1000包括使得能够经由通信信道1060与其他设备通信的通信接口1050。通信接口1050可以包括但不限于配置为在通信信道1060上发送和接收数据的收发器。通信接口1050可以包括但不限于调制解调器或网卡,并且通信信道1060可以例如在有线和/或无线介质内实现。
[0199] 在各种实施例中,使用例如IEEE 802.11(IEEE指代电气和电子工程师协会)的Wi‑Fi网络的无线网络将数据流传输到或以其他方式提供给系统1000。这些实施例的Wi‑Fi信号在适配于Wi‑Fi通信的通信信道1060和通信接口1050上接收。这些实施例的通信信道1060通常连接到接入点或路由器,该接入点或路由器提供对包括因特网的外部网络的接入,以允许流传输应用和其他空中通信。其他实施例使用机顶盒向系统1000提供流传输的数据,该机顶盒通过输入块1130的HDMI连接来传递数据。其他实施例也使用输入块1130的RF连接向系统1000提供流传输的数据。如上所述,各种实施例以非流传输方式提供数据。另外,各种实施例使用除Wi‑Fi之外的无线网络,例如蜂窝网络或蓝牙网络。
[0200] 系统1000可以向包括显示器1100,扬声器1110和其他外围设备1120的各种输出设备提供输出信号。各种实施例的显示器1100包括例如触摸屏显示器,有机发光二极管(OLED)显示器,曲面显示器和/或可折叠显示器中的一个或多个。显示器1100可以用于电视,平板电脑,膝上型计算机,蜂窝电话(移动电话)或其他设备。显示器1100还可以与其他组件集成(例如,如在智能电话中),或独立(例如,用于膝上型计算机的外部监视器)。其他外围设备1120在实施例的各种示例中包括独立数字视频盘(或数字多功能盘)DVR(用于二者),盘播放器,立体系统,照明系统的一个或多个。各种实施例使用基于系统1000的输出提供功能的一个或多个外围设备1120。例如,盘播放器执行播放系统1000的输出的功能。
[0201] 在各种实施例中,使用诸如AV.Link,消费电子控制(CEC)之类的信令通信,或在有或没有用户干预的情况下使得设备到设备的控制成为可能的其他通信协议在系统1000与显示器1100,扬声器1110,或其他外围设备1120之间传输控制信号。输出设备可以通过各个接口1070、1080和1090经由专用连接而通信地耦合至系统1000。可替代地,输出设备可以经由通信接口1050使用通信信道1060而连接至系统1000。显示器1100和扬声器1110可以与系统1000的其他组件集成到一个电子设备(诸如,例如电视机)中的单一单元。在各种实施例中,显示接口1070包括显示驱动器,诸如例如,时序控制器(T Con)芯片。
[0202] 例如,如果输入1130的RF部分是单独的机顶盒的一部分,则显示器1100和扬声器1110可以可替换地与一个或多个其他组件分开。在显示器1100和扬声器1110是外部组件的各种实施例中,可以经由专用输出连接(包括例如HDMI端口,USB端口或COMP输出)提供输出信号。
[0203] 实施例可以通过由处理器1010实现的计算机软件或者由硬件,或者由硬件和软件的组合来来实施。作为非限制性示例,实施例可以由一个或多个集成电路实现。作为非限制性示例,存储器1020可以是适合于技术环境的任何类型,并且可以使用任何适当的数据存储技术来实现,诸如光存储设备,磁存储设备,基于半导体的存储设备,固定存储器和可移动存储器。作为非限制性示例,处理器1010可以是适合于技术环境的任何类型,并且可以包括微处理器,通用计算机,专用计算机和基于多核架构的处理器中的一个或多个。
[0204] 各种实现方式涉及解码。本申请中使用的“解码”可以涵盖例如对接收到的编码序列执行的全部或部分处理,以便产生适合于显示的最终输出。在各种实施例中,这样的处理包括通常由解码器执行的一个或多个处理,例如,熵解码,逆量化,逆变换和差分解码。在各种实施例中,这样的处理还或者可替代地包括由本申请中描述的各种实现方式的解码器执行的处理,例如,运动补偿。
[0205] 作为另外的示例,在一个实施例中,“解码”仅是指熵解码,在另一实施例中,“解码”仅是指差分解码,并且在另一实施例中,“解码”是指熵解码和差分解码的组合。短语“解码处理”意图专门指操作的子集还是广义上指更广泛的解码处理,基于特定描述的上下文将是清楚的,并且相信本领域技术人员将很好地理解。
[0206] 各种实现方式涉及编码。以与上述关于“解码”的讨论类似的方式,在本申请中使用的“编码”可以涵盖例如对输入视频序列执行的全部或部分处理,以便产生编码的比特流。在各种实施例中,这样的处理包括典型由编码器执行的一个或多个处理,例如,分区,差分编码,变换,量化和熵编码。在各种实施例中,这样的处理还或者可替代地包括由本申请中描述的各种实现方式的编码器执行的处理,例如运动补偿。
[0207] 作为另外的示例,在一个实施例中,“编码”仅是指熵编码,在另一实施例中,“编码”仅是指差分编码,并且在另一实施例中,“编码”是指熵编码和差分编码的组合。短语“编码处理”是否意图专门指操作的子集还是广义上指更广泛的编码处理,基于特定描述的上下文将是清楚的,并且相信本领域技术人员将很好地理解。
[0208] 注意,本文所使用的语法元素(例如gbi_index)是描述性术语。因此,它们不排除使用其他语法元素名称。
[0209] 当将附图作为流程图呈现时,应当理解,其还提供对应装置的框图。类似地,当将附图呈现为框图时,应当理解,其还提供对应方法/处理的流程图。
[0210] 各个实施例涉及率失真优化。具体地,在编码处理期间,经常在给定计算复杂性的约束的情况下,通常要考虑率和失真之间的平衡或折衷。通常将率失真优化公式化为最小化率失真函数,其是率和失真的加权和。有解决率失真优化问题的不同方法。例如,这些方法可以基于包括所有考虑的模式或编码参数值的所有编码选项的广泛测试,以及其编码成本和编码和解码之后的重构信号的相关失真的完整评估。也可以使用更快的方法来节省编码复杂性,具体是基于预测或预测残差信号而不是重构的来计算近似失真。也可以使用这两种方法的混合,诸如通过使用仅对某些可能的编码选项的近似失真,以及对其他编码选项的完全失真。其他方法仅评估可能的编码选项的子集。更一般地,许多方法采用各种技术中的任何一种来执行优化,但是优化不一定是编码成本和相关失真二者的完整评估。
[0211] 本文描述的实现方式和方面可以在例如方法或处理,装置,软件程序,数据流或信号中实现。即使仅在单个实现形式的上下文中讨论(例如,仅作为方法讨论),讨论的特征的实现方式也可以以其他形式(例如,装置或程序)来实现。装置可以在例如适当的硬件,软件和固件中实现。方法例如可以在例如处理器中实现,该处理器一般指代处理设备,包括例如计算机,微处理器,集成电路或可编程逻辑设备。处理器也包括通信设备,例如计算机,蜂窝电话,便携/个人数字助理(“PDA”),以及便于终端用户之间的信息通信的其他设备。
[0212] 对“一个实施例”或“实施例”或“一个实现方式”或“实现方式”的引用以及其其他变型意味着结合实施例描述的具体特征,结构,特性等包括在至少一个实施例中。因此,在整个文件中出现在各个地方的短语“在一个实施例中”或“在实施例中”或“在一个实现方式中”或“在实现方式中”以及任何其他变型的出现不一定都指代同一个实施例。
[0213] 另外,本申请可以指代“确定”各种信息。确定信息可以包括例如估计信息,计算信息,预测信息或从存储器检索信息中的一个或多个。
[0214] 此外,本申请可以指代“访问”各种信息。访问信息可以包括例如接收信息,检索信息(例如,从存储器中),存储信息,移动信息,复制信息,计算信息,确定信息,预测信息或估计信息中的一个或多个。
[0215] 另外,本申请可以指代“接收”各种信息。与“访问”一样,接收意图是广义术语。接收信息可以包括例如访问信息或检索信息(例如,从存储器中)中的一个或多个。此外,“接收”典型地涉及在操作期间以一种方式或其他方式,例如,存储信息,处理信息,传送信息,移动信息,复制信息,擦除信息,计算信息,确定信息,预测信息或估计信息。
[0216] 要认识到,例如在“A/B”,“A和/或B”和“A和B中的至少一个”的情况中的以下“/”,“和/或”和“至少一个”的任一使用意图包括仅对第一所列选项(A)的选择、或仅对第二所列选项(B)的选择、或对两个选项(A和B)的选择。作为进一步的例子,在“A、B和/或C”和“A、B和C中的至少一个”的情况中,这样的措辞意图包括仅对第一所列选项(A)的选择、或仅对第二所列选择(B)的选择、或仅对第三所列选项(C)的选择、或仅对第一和第二所列选项(A和B)的选择、或仅对第一和第三所列选项(A和C)的选择、或仅对第二和第三所列选项(B和C)的选择、或对全部三个选项(A和B和C)的选择。如同对于本领域和相关领域中的普通技术人员来说清楚地,可以对于所列出的许多项目扩展该措辞。
[0217] 另外,如本文使用,词语“发信号通知”除了其他方面涉及将事物指示给对应的解码器。例如,在某些实施例中,编码器发信号通知用于GBI的多个参数中的特定一个(例如,gbi_index)。以这种方式,在实施例中,在编码器侧和解码器侧都使用相同的参数。因此,例如,编码器可以向解码器发送(显式信令)特定参数,使得解码器可以使用相同的特定参数。相反,如果解码器已经具有特定参数以及其他参数,则可以使用信令而无需发送(隐式信令)以简单地使得解码器知道并选择特定参数。通过避免传输任何实际函数,在各种实施例中实现比特节省。要理解,可以以多种方式来完成信令。例如,在各种实施例中,一个或多个语法元素,标志等用于用信号发送信息到对应的解码器。尽管前面涉及词语“发信号通知”的动词形式,但词语“信号”在本文中也可以用作名词。
[0218] 将对于本领域技术人员明显的是,实现方式可以产生被格式化以携带例如可以存储或传送的信息的各种信号。该信息可以包括例如用于执行方法的指令或由描述的实施方式之一产生的数据。例如,可以格式化信号以携带描述的实施例的比特流。这样的信号可以被格式化,例如作为电磁波(例如,使用频谱的射频部分)或者作为基带信号。格式化可以包括,例如编码数据流和用编码数据流调制载波。信号携带的信息可以是例如模拟或数字信息。如已知,信号可以通过各种不同的有线或无线链路传送。信号可以存储在处理器可读介质上。
[0219] 我们描述了许多实施例。这些实施例的特征可以单独或以任何组合提供。此外,实施例可以包括跨越各种权利要求种类和类型以单独或以任意组合的以下的一个或者多个特征:
[0220] ·解码用于指示广义双向预测是否可应用于解码画面的块的高级语法元素;
[0221] ·从SPS,PPS,图块和/或条带首部解码语法元素;
[0222] ·仅在不使用加权预测的情况下才解码语法元素;
[0223] ·在解码的用于双向预测块的至少一个语法元素指示GBI用于该双向预测块的情况下,解码表示第一和第二广义双向预测权重的索引;
[0224] ·在信令插入语法元素使得解码器能够识别广义双向预测是否可应用于解码画面的块;
[0225] ·包含一个或多个描述的语法元素或其变型的比特流或信号。
[0226] ·在信令中插入语法元素使得解码器能够以与由编码器使用的方式相对应的方式来适配块预测。
[0227] ·创建和/或发送和/或接收和/或解码包括一个或多个描述的语法元素或其变型的比特流或信号。
[0228] ·电视机,机顶盒,手机,平板电脑或其他电子设备,其根据所描述的任何实施例执行广义双向预测。
[0229] ·电视,机顶盒,手机,平板电脑或其他电子设备,其根据描述的任何实施例执行广义双向预测,并显示(例如,使用监视器,屏幕或其他类型的显示器)作为结果的图像。
[0230] ·电视,机顶盒,手机,平板电脑或其他电子设备,其根据描述的任何实施例,调谐(例如,使用调谐器)信道以接收包括编码图像的信号,并执行广义双向预测。
[0231] ·电视,机顶盒,手机,平板电脑或其他电子设备,其根据描述的任何实施例,通过无线方式接收(例如,使用天线)包括编码图像的信号,并执行广义双向预测。
[0232] 根据至少一个实施例的一般方面,提出一种用于解码视频数据的方法。
[0233] 该方法包括:
[0234] ‑解码指示加权预测是否应用于预测块的第一高级语法元素和指示广义双向预测是否应用于预测块的第二高级语法元素;
[0235] ‑在所述第一高级语法元素和第二高级语法元素指示应用加权预测和广义双向预测的情况下,在块级别禁用加权预测和广义双向预测中的一个;和
[0236] ‑响应于所述禁用解码所述块。
[0237] 根据至少一个实施例的一般方面,提出一种解码装置。该装置包括一个或多个处理器,被配置为执行:
[0238] ‑解码指示加权预测是否应用于预测块的第一高级语法元素和指示广义双向预测是否应用于预测块的第二高级语法元素;
[0239] ‑在所述第一高级语法元素和第二高级语法元素指示应用加权预测和广义双向预测的情况下,在块级别禁用加权预测和广义双向预测中的一个;和
[0240] ‑响应于所述禁用解码所述块。
[0241] 根据至少一个实施例的一般方面,提出一种计算机可读介质,该计算机可读介质包括用于使一个或多个处理器执行以下操作的指令:
[0242] ‑解码指示加权预测是否应用于预测块的第一高级语法元素和指示广义双向预测是否应用于预测块的第二高级语法元素;
[0243] ‑在所述第一高级语法元素和第二高级语法元素指示应用加权预测和广义双向预测的情况下,在块级别禁用加权预测和广义双向预测中的一个;和
[0244] ‑响应于所述禁用解码所述块。
[0245] 在一个实施例中,第一高级语法元素和第二高级语法元素是从序列参数集,画面参数集,图块首部或条带首部解码的。
[0246] 在一个实施例中,解码方法还包括(解码装置的一个或多个处理器还被配置为执行):仅在满足所述块的某些条件并且第二高级语法元素指示应用广义双向预测的情况下,显式解码至少一个广义双向预测参数用于所述块。
[0247] 在一个实施例中,解码方法还包括(解码装置的一个或多个处理器还被配置为执行):仅在所述第一高级语法元素指示不应用加权预测的情况下,解码所述第二高级语法元素。
[0248] 在一个实施例中,在块级别上禁用加权预测和广义双向预测中的一个包括:在块被双向预测并且权重值等于一而偏移值等于零的情况下,禁用所述块上的加权预测。
[0249] 在一个实施例中,在块级上禁用加权预测和广义双向预测中的一个包括:在块被双向预测并且至少一个权重值不等于一或至少一个偏移值不等于零的情况下,禁用所述块上的广义双向预测。
[0250] 根据至少一个实施例的一般方面,提出一种用于编码视频数据的方法。
[0251] 该方法包括:
[0252] ‑编码指示加权预测是否应用于预测块的第一高级语法元素和指示广义双向预测是否应用于预测块的第二高级语法元素;
[0253] ‑在所述第一高级语法元素和第二高级语法元素指示应用加权预测和广义双向预测的情况下,在块级别禁用加权预测和广义双向预测中的一个;和
[0254] ‑响应于所述禁用编码所述块。
[0255] 根据至少一个实施例的一般方面,提出一种编码装置。该装置包括一个或多个处理器,该处理器被配置为执行:
[0256] ‑编码指示加权预测是否应用于预测块的第一高级语法元素和指示广义双向预测是否应用于预测块的第二高级语法元素;
[0257] ‑在所述第一高级语法元素和第二高级语法元素指示应用加权预测和广义双向预测的情况下,在块级别禁用加权预测和广义双向预测中的一个;和
[0258] ‑响应于所述禁用编码所述块。
[0259] 根据至少一个实施例的一般方面,提出一种计算机可读介质,该计算机可读介质包括用于使一个或多个处理器执行的指令,包括用于使一个或多个处理器执行以下的指令:
[0260] ‑编码指示加权预测是否应用于预测块的第一高级语法元素和指示广义双向预测是否应用于预测块的第二高级语法元素;
[0261] ‑在所述第一高级语法元素和第二高级语法元素指示应用加权预测和广义双向预测的情况下,在块级别禁用加权预测和广义双向预测中的一个;和
[0262] ‑响应于所述禁用编码所述块。
[0263] 提出一种信号,该信号包括根据任何实施例的编码方法或编码装置生成的数据。
[0264] 在一个实施例中,所述第一高级语法元素和第二高级语法元素是在序列参数集,画面参数集,图块首部或条带首部中编码的。
[0265] 在一个实施例中,所述编码方法还包括(编码装置的一个或多个处理器还被配置为执行):仅在满足所述块的某些条件并且第二高级语法元素指示应用广义双向预测的情况下,显式编码至少一个广义双向预测参数用于所述块。
[0266] 在一个实施例中,所述编码方法还包括(编码装置的一个或多个处理器还被配置为执行):仅在所述第一高级语法元素指示不应用加权预测的情况下,编码所述第二高级语法元素。
[0267] 在一个实施例中,在块级别上禁用加权预测和广义双向预测中的一个包括:在块被双向预测并且权重值等于一且偏移值等于零的情况下,禁用所述块上的加权预测。
[0268] 在一个实施例中,在块级上禁用加权预测和广义双向预测中的一个包括:在块被双向预测并且至少一个权重值不等于一或至少一个偏移值不等于零的情况下,禁用所述块上的广义双向预测。
[0269] 本实施例中的一个或多个还提供一种计算机可读存储介质,其上存储有用于根据上述任何方法的至少一部分编码或解码视频数据的指令。一个或多个实施例还提供一种计算机可读存储介质,其上存储有根据上述编码方法生成的比特流。一个或多个实施例还提供一种用于创建,发送或接收根据上述编码方法生成的比特流的方法和装置。一个或多个实施例还提供一种计算机程序产品,该计算机程序产品包括用于执行上述任何方法的至少一部分的指令。

当前第1页 第1页 第2页 第3页
相关技术
双向预测相关技术
广义双向相关技术
P.博德斯发明人的其他相关专利技术