用于解码视频信号的方法与流程

文档序号:13391843阅读:172来源:国知局
用于解码视频信号的方法与流程

本专利申请是下列发明专利申请的分案申请:

申请号:201380026155.6

申请日:2013年4月16日

发明名称:编码方法和解码方法以及使用其的设备

本发明涉及视频编码和解码技术,并更具体地,涉及用于确定色度信号的频率变换方法和/或扫描方法的方法以及使用该方法的设备。



背景技术:

随着具有高清晰度(hd)分辨率的广播在全国和全世界扩展和服务,许多用户正习惯于具有高分辨率和高画面质量的图像。因此,许多机构正推动下一代图像装置的开发。

因为存在对于具有比hdtv高四倍的分辨率的超高清晰度(uhd)以及hdtv的增长兴趣,所以存在对于其中压缩和处理具有更高分辨率和更高画面质量的图像的技术的需求。

为了压缩图像,能通过预测来编码关于当前画面的像素的信息。例如,能使用其中根据时间上在前和/或在后的画面来预测当前画面中包括的像素的值的帧间预测技术和/或其中使用关于当前画面中包括的像素的信息来预测当前画面中包括的像素的值的帧内预测技术。

像素信息包括关于亮度的亮度信号和关于色度的色度信号。可取决于人们的视觉对亮度更敏感的事实,而等同地或不同地处置亮度信号和色度信号。

因此,单独地有效处置色度信号和亮度信号的方法是有问题的。



技术实现要素:

【技术问题】

本发明的目的是提供用于增加视频编码/解码中的编码/解码效率的方法和设备。

本发明的另一目的是提供用于色度信号的有效频率变换方法和设备以及用于色度信号的有效扫描方法和设备。

【技术方案】

在本发明的一个方面中,在选择用于色度信号的频率变换方法和扫描方法时,能取决于色度信号的帧内预测模式来使用不同频率变换方法,并可取决于帧内预测模式来确定不同扫描方法。

在本发明的另一方面中,能通过用于当前块的亮度样本的帧内预测模式来确定用于当前块的亮度信号和色度信号的扫描类型。

在本发明的另一方面中,一种用于解码视频信号的方法,包括:获得当前块的预测模式信息,该预测模式信息规定该当前块是帧间编码块还是帧内编码块;响应于该当前块是帧内编码块,导出该当前块的帧内预测模式;基于该当前块的帧内预测模式,确定该当前块的扫描类型;基于该当前块的扫描类型,获得该当前块的变换系数;对所述变换系数执行反量化;确定该当前块的变换类型是dct(离散余弦变换)还是dst(离散正弦变换);和基于该变换类型对反量化的变换系数执行逆变换,其中独立于该帧内预测模式来确定该变换类型。

这里,亮度信号的扫描类型能被相同地用作色度信号的扫描类型。在另一实施例中,能使用和确定亮度信号的扫描类型的方法相同的方法来确定色度信号的扫描类型。

【有利效果】

根据本发明,能在视频编码/解码中改进编码/解码效率。更具体地,根据本发明,能有效执行用于色度信号的频率变换和/或扫描。

此外,在选择用于色度信号的频率变换方法和扫描方法时,能使用用于取决于色度信号的帧内预测方向模式向色度信号施加频率变换方法、并导出色度信号的扫描方向的方法和设备,来改进色度信号的残差信号的编码效率。

附图说明

图1是示出了根据本发明实施例的视频编码设备的构造的框图。

图2是示出了根据本发明实施例的视频解码设备的构造的框图。

图3示出了当编码画面时对lcu内的cu进行分区的方法的简要示例。

图4示意性图示了关于pu的分区结构的示例。

图5示出了cu内的tu的分区结构的简要示例。

图6示意性图示了帧内预测模式。

图7(a)和(b)是示意性图示了等式1的关系的图。

图8(a)和(b)是图示了用于重要组标记和变换系数的右上对角扫描的示例的图。

图9是图示了根据帧预测方向确定扫描方向的方法的示例的流程图。

图10是示意性图示了根据帧预测方向确定扫描方向的方法的另一示例的流程图。

图11是图示了选择用于残差画面的频率变换方法的方法的示例的流程图。

图12是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的示例的流程图。

图13是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的另一示例的流程图。

图14是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的实施例的流程图。

图15是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的另一实施例的流程图。

图16是图示了根据当前实施例的基于用于色度信号的帧内预测方向模式、来选择性导出用于色度信号的残差画面的频率变换方法的方法的示例的流程图。

图17是图示了根据当前实施例的基于用于色度信号的帧内预测方向模式、来选择性导出用于色度信号的残差画面的频率变换方法的方法的另一示例的流程图。

图18是图示了根据当前实施例的基于与用于色度信号的intra_fromluma(lm)编码模式相关的、用于亮度信号的帧内预测方向模式、来选择性导出用于色度信号的残差画面的频率变换方法的方法的示例的流程图。

图19是图示了根据当前实施例的基于与用于色度信号的intra_fromluma(lm)编码模式相关的、用于亮度信号的帧内预测方向模式、来选择性导出用于色度信号的残差画面的频率变换方法的方法的另一示例的流程图。

图20是图示了根据当前实施例的用于基于帧内预测方向模式来选择性导出用于色度信号的残差画面的频率变换方法的方法的示例的流程图。

图21是图示了根据当前实施例的用于基于帧内预测方向模式来选择性导出用于色度信号的残差画面的频率变换方法的方法的另一示例的流程图。

图22示出了亮度块和色度块之间的分辨率的差别的示例。

图23是图示了亮度块和色度块之间的分辨率的差别的另一示例。

图24示出了根据本发明的编码设备的另一示例。

图25示出了根据本发明的解码设备的另一示例。

具体实施方式

参考附图来详细描述本发明的一些示范实施例。此外,在描述该说明书的实施例时,将省略已知功能和构造的详细描述,如果认为它们使得本发明的要义不必要的模糊的话。

在该说明书中,当认为一个元件与另一元件“连接”或“耦接”时,这可意味着所述一个元件可与所述另一元件直接连接或耦接,或者第三元件可在这两个元件之间“连接”或“耦接”。此外,在该说明书中,当认为“包括”特定元件时,这可意味着不排除除了该特定元件之外的元件,并且附加元件可包括在本发明的实施例或本发明的技术精神的范围中。

诸如第一和第二的术语可被用来描述各种元件,但是这些元件不限于这些术语。使用这些术语仅将一个元件与另一元件进行区分。例如,第一元件可被称为第二元件,而不脱离本发明的范围。同样,第二元件可被称为第一元件。

此外,独立示出本发明的实施例中描述的元件模块,以指示不同和特征功能,并且这不意味着每一元件模块由一个单独硬件或一个软件形成。即,为了便于描述,安排和包括这些元件模块,并且这些元件模块中的至少两个可形成一个元件模块,或者一个元件可被划分为多个元件模块,并且所述多个所划分的元件模块可执行功能。其中集成元件的实施例或者从其分离一些元件的实施例也被包括在本发明的范围中,除非它们脱离本发明的精髓。

此外,在本发明中,一些元件不是执行必要功能的必要元件,而可以是仅用于改进性能的可选元件。本发明可仅使用用于实现本发明的精髓的必要元件而不是用来仅改进性能的元件来实现,并且仅包括必要元件而不包括用于仅改进功能的可选元件的结构被包括在本发明的范围中。

图1是示出了根据本发明实施例的视频编码设备的构造的框图。

参考图1,视频编码设备100包括运动预测模块111、运动补偿模块112、帧内预测模块120、开关115、减法器125、变换模块130、量化模块140、熵编码模块150、反量化模块160、逆变换模块170、加法器175、滤波器模块180、和参考画面缓冲器190。

视频编码设备100能按照帧内模式或帧间模式对输入画面执行编码,并作为编码结果输出比特流。在该说明书中,帧内预测和帧内预测具有相同含义,并且帧间预测和帧间预测具有相同含义。在帧内模式的情况下,开关115能切换到帧内模式。在帧间模式的情况下,开关115能切换到帧间模式。视频编码设备100能生成用于输入画面的输入块的预测块,并然后编码输入块和预测块之间的残差。这里,输入画面能意味着原始画面。

在帧内模式的情况下,帧内预测模块120能通过使用与当前块相邻的已编码块的像素的值执行空间预测,来生成预测块。

在帧间模式的情况下,运动预测模块111能通过在运动预测处理中在参考画面缓冲器190中存储的参考画面中搜索与输入块最佳匹配的区域,来获得运动向量。运动补偿模块112能通过使用运动向量和在参考画面缓冲器190中存储的参考画面执行运动补偿,来生成预测块。这里,运动向量是在帧间预测中使用的二维(2-d)向量,并且运动向量能指示当前块和参考画面内的块之间的偏移。

减法器125能基于输入块和生成的预测块之间的残差,来生成残差块。变换模块130能对残差块执行变换,并根据变换块输出变换系数。此外,量化模块140能通过使用量化参数和量化矩阵中的至少一个对接收的变换系数进行量化,来输出量化后的系数。这里,量化矩阵能被输入到编码器,并且输入的量化矩阵能被确定在编码器中使用。

熵编码模块150能基于量化模块140所计算的值、或在编码处理中计算的编码参数值,来执行熵编码,并根据熵编码来输出比特流。如果使用熵编码,则能降低用于要编码的码元的比特流的尺寸,因为通过向具有高出现频率的码元分配小数目比特并向具有低出现频率的码元分配大数目比特,来表示码元。因此,能通过熵编码来改进图像编码的压缩性能。熵编码模块150能使用诸如指数哥伦布、上下文自适应可变长度编码(cavlc)和上下文自适应二进制算术编码(cabac)的编码方法用于熵编码。

根据图1的实施例的图像编码设备执行帧间预测编码(即,帧间预测编码),并由此当前编码的画面需要被解码和存储,以便用作参考画面。因此,量化后的系数由反量化模块160反量化并由逆变换模块170逆变换。反量化和逆变换后的系数通过加法器175添加到预测块,由此生成重构块。

重构块经过(experiences)滤波器模块180。滤波器模块180能向重构块或重构画面应用解块滤波器、样本自适应偏移(sao)、和自适应环路滤波器(alf)中的一个或多个。滤波器模块180也可被称为自适应环内滤波器。解块滤波器能去除在块的边界处生成的块失真。sao能向像素值添加适当偏移值以便补偿编码误差。alf能基于通过比较重构画面与原始画面而获得的值,来执行滤波。已经过滤波器模块180的重构块能被存储在参考画面缓冲器190中。

图2是示出了根据本发明实施例的视频解码设备的构造的框图。

参考图2,视频解码设备200包括熵解码模块210、反量化模块220、逆变换模块230、帧内预测模块240、运动补偿模块250、滤波器模块260、和参考画面缓冲器270。

视频解码设备200能接收从编码器输出的比特流,按照帧内模式或帧间模式来对比特流执行解码,并输出重构画面(即,恢复画面)。在帧内模式的情况下,开关能切换到帧内模式。在帧间模式的情况下,开关能切换到帧间模式。视频解码设备200能从接收的比特流获得重构的残差块,生成预测块,并然后通过将重构的残差块添加到预测块,来生成重构块(即,恢复块)。

熵解码模块210能通过根据概率分布对接收的比特流执行熵解码,来生成包括具有量化后的系数形式的码元的码元。在该情况下,熵解码方法与前述熵编码方法类似。

如果使用熵解码方法,则能降低用于每一码元的比特流的尺寸,因为通过向具有高出现频率的码元分配小数目比特并向具有低出现频率的码元分配大数目比特,来表示码元。

量化后的系数由反量化模块220反量化并由逆变换模块230逆变换。作为对量化后的系数的反量化/逆变换的结果,能生成重构的残差块。

反量化中使用的量化矩阵也被称为缩放列表。反量化模块220能通过向量化后的系数施加量化矩阵,来生成反量化后的系数。

这里,反量化模块220能响应于编码器中使用的量化来执行反量化。例如,反量化模块220能通过向量化后的系数相反施加在编码器中使用的量化矩阵,来执行反量化。

视频解码设备200中的反量化中使用的量化矩阵可从比特流接收,或者编码器和/或解码器中已包括的缺省矩阵可被用作在视频解码设备200中的反量化中使用的量化矩阵。关于传送的量化矩阵的信息能通过向其施加量化矩阵尺寸或量化矩阵的每一变换块尺寸的序列参数集或画面参数集来接收。例如,能降低用于4×4变换块的4×4量化矩阵,能降低用于8×8变换块的8×8矩阵,能降低用于16×16变换块的16×16矩阵,并能降低用于32×32变换块的32×32矩阵。

在帧内模式的情况下,帧内预测模块240能通过使用当前块周围的已解码块的像素值执行空间预测,来生成预测块。在帧间模式的情况下,运动补偿模块250能通过使用运动向量和参考画面缓冲器270中存储的参考画面执行运动补偿,来生成预测块。

加法器255将残差块和预测块相加到一起。相加的块经过滤波器模块260。滤波器模块260能向重构的块或重构的画面应用解块滤波器、sao、和alf中的至少一个。滤波器模块260输出重构的画面(即,重构画面)。重构画面能被存储在参考画面缓冲器270中并能用于帧间预测。

在hevc中,为了有效编码画面,能在编码单元(其后称为“cu”)中执行编码。

图3示出了当编码画面时对最大编码单元(其后称为“lcu”)内的cu进行分区的方法的简要示例。

如同图3那样针对每一lcu来顺序分区向编码设备输入的画面,并且分区结构能在lcu中确定。

分区结构意味着用于有效编码lcu内的画面的cu的分布。能通过确定每一cu是否将被分区为四个cu(其尺寸已被水平和垂直降低一半),来指定cu的分布。同样,分区的cu能被递归分区为四个cu,其尺寸已被水平和垂直降低一半。

这里,cu的分区可被执行至多(upto)预定深度。关于深度的信息指示cu的尺寸,并且该信息被存储在所有cu中。作为基础的lcu的深度是0,并且最小编码单元(其后称为“scu”)的深度是预定最大深度。

只要从lcu执行水平和垂直分区一半,cu的深度就增加1。每一深度中还没有对其执行分区的cu具有2n×2n尺寸。如果对cu执行分区,则在分区前具有2n×2n尺寸的cu被分区为其每一个具有n×n尺寸的四个cu。

只要cu的深度增加1,cu的尺寸就降低一半。图3示出了其中具有最小深度0的lcu的尺寸是64×64像素并且具有最大深度3的scu的尺寸是8×8像素的示例。

在图3的示例中,64×64像素的cu(lcu)具有深度0,32×32像素的cu具有深度1,16×16像素的cu具有深度2,并且8×8像素的cu(scu)具有深度3。

此外,关于cu是否将被分区的信息由用于每一cu的1比特分区信息表示。该分区信息被包括在除了scu之外的所有cu中。如果cu不被分区,则分区信息的值能被设置为0。如果cu被分区,则分区信息的值能被设置为1。

预测单元(其后称为“pu”)是预测的单元。

图4示意性图示了关于pu的分区结构的示例。

如同图4的示例中那样,一个cu能被分区为几个pu,并且能对pu执行预测。

变换单元(其后称为“tu”)是在cu内的空间变换和量化处理中使用的基本单元。tu能具有长方形或正方形形式。

每一cu能具有一个或多个tu块,并且tu块能具有四叉树结构。

图5示出了cu内的tu的分区结构的简要示例。如示出的那样,cu510内的tu能取决于四叉树结构具有各种尺寸。

在帧内预测编码/解码中,能从当前块周围的块执行根据方向性的预测编码。

在帧内预测中,使用包括33个角度预测模式和3个非角度预测模式的一共36个预测模式,来执行编码/解码。

图6示意性图示了帧内预测模式。

在36个帧内预测方向模式中,没有方向性的3个模式包括平面模式intra_planar、平均模式“intra_dc(dc)”、和其中从重构的亮度信号预测色度信号的模式“intra_fromluma(lm)”。在帧内预测中,可使用所有3个非角度模式或者可使用3个非角度模式中的仅一些。例如,可使用仅平面模式和平均模式,并且可以不使用lm。

用于36个帧内预测方向模式的编码可被应用到亮度信号和色度信号中的每一个。在亮度信号的情况下,能排除lm。在色度信号的情况下,能根据表格1中的三种方法来执行对于帧内预测方向模式的编码。

<表格1>

表格1包括其中将用于亮度信号的帧内预测方向模式没有变化地用作用于色度信号的帧内预测方向模式的导出模式(dm)、和其中对真实帧内预测方向模式进行编码的显式模式(em)。em中编码的用于色度信号的帧内预测方向模式包括平面模式planar、平均模式dc、水平模式hor、垂直模式ver、和位于垂直方向中的第八地点的模式,即ver+8或第34模式。存在其中从重构的亮度信号预测色度信号的lm。

具有最好效率的模式能从三种模式编码/解码方法中选择:dm、em和lm。

从重构的亮度信号样本预测色度信号的方法“intra_fromluma”可被用作通过预测色度信号来执行编码/解码的方法。在该技术中,使用色度信号和亮度信号之间的线性相关。这里,等式1中图示了使用的线性相关的示例。

<等式1>

predc[x,y]=α·recl‘[x,y]+β

图7是示意性图示了等式1的关系的图。

等式1的predc[x,y]指示图7的预测的色度信号的值,而recl[x,y]指示根据等式2从亮度信号计算的值,以便满足色度信号的4:2:0采样率。

<等式2>

recl‘[x,y]=(recl[2x,2y]+recl[2x,2y+1])>>1

在等式2中,α值和β值指示下采样的亮度信号和下采样的色度信号之间的权重α和补偿值β。

作为与原始画面的差的残差画面能使用根据等式1和2获得的色度信号的预测画面来生成。

残差画面经受频域变换、量化、和熵编码。此外,频域变换能包括整数变换、整数离散余弦变换(dct)、整数离散正弦变换(dst)、或取决于帧内预测模式的dct/dst。

如上所述,原始画面和预测画面的残差画面能经受频域变换和量化并经受熵编码。这里,为了增加熵编码效率,能将具有2-d形式量化画面的系数重排为具有1-d形式的系数.

在现有技术中,使用z字形扫描方法。相反,在该说明书中,能使用除了z字形扫描方法之外的右上对角扫描方法作为用于量化系数的扫描方法。此外,频域变换能包括整数变换、整数dct、整数dst、或取决于帧内预测模式的dct/dst。

用于特定块的量化系数能被分组为4x4子块并然后编码/解码。

图8是图示了用于重要组标记和变换系数的右上对角扫描方法的示例的图。

图8示出了其中将16x16块分区为16个4x4子块并对这16个4x4子块进行编码的示例。

图8(a)示出了基本扫描方法,而图8(b)示意性示出了其中对量化系数进行实际扫描的情况以及扫描的结果。

在解码处理中,能通过从比特流解析的significant_coeff_group_flag(siggrpflag)来检查在每一子块中是否存在变换系数。当significant_coeff_group_flag的值为1时,这意味着在对应4x4子块中存在任何一个量化的变换系数。相反,当significant_coeff_group_flag的值为0时,这意味着在对应4x4子块中不存在量化的变换系数。右上扫描可基本上应用到用于图8中的4x4子块的扫描方向和用于significant_coeff_group_flag的扫描方向。

图8示出了其中应用右上对角扫描方法的示例,但是用于量化系数的扫描方法包括右上对角扫描方法、水平扫描方法、和垂直扫描方法。

在帧间预测中,能基本上使用右上对角扫描方法。在帧内预测中,能选择性使用右上对角扫描方法、水平扫描方法、和垂直扫描方法。

在帧内预测中,能取决于帧内预测方向来选择不同扫描方向,并且不同扫描方向可被应用到亮度信号和色度信号两者。

表格2图示了取决于帧预测方向来确定扫描方向的方法的示例。

<表格2>

在表格2中,“intrapredmodevalue”指示帧内预测方向。帧内预测方向对应于亮度信号中的intrapredmode值并对应于色度信号中的intrapredmodec值。此外,“log2trafosize”指示使用“log”来表示当前变换块的尺寸。

例如,当intrapredmodevalue为1时,它意味着“intra_dc”模式。当“log2trafosize-2”为1时,它意味着8x8块。

此外,在表格2中,intrapredmodevalue和log2trafosize所确定的数字0、1、或2指定扫描方向。例如,在表格2中,2指示右上对角扫描,1指示水平扫描,而2指示垂直扫描。

图9是图示了根据帧预测方向确定扫描方向的方法的示例的流程图。

在图9中,intrapredmode指示用于亮度信号的帧内预测方向模式,而intrapredmodec指示用于色度信号的帧内预测方向模式。intrapredmode(c)可以取决于信号的分量是亮度信号或色度信号。扫描类型(scantype)指示残差信号扫描方向,并包括右上(diag;up-right(右上)=0)扫描、水平(hor;horizontal(水平)=1)扫描、和垂直(ver;vertical(垂直)=2)扫描。

图9的示例能在编码器设备和解码器设备中执行。此外,图9的示例可在编码器设备和解码器设备内的特定模块中执行。

图10是示意性图示了根据帧预测方向确定扫描方向的方法的另一示例的流程图。

在图10的示例中,不同地表示用于亮度信号的扫描方法和用于色度信号的扫描方法。在图10中,索引是指示变换的尺寸的指示符,并且能如下计算根据每一变换尺寸的索引值。

如果变换尺寸是64x64,则索引是1。如果变换尺寸是32x32,则索引是2。如果变换尺寸是16x16,则索引是3。如果变换尺寸是8x8,则索引是4。如果变换尺寸是4x4,则索引是5。如果变换尺寸是2x2,则索引是6。

根据图10,可以看出在亮度信号的情况下,向8x8变换尺寸和4x4变换尺寸应用根据帧内预测方向的扫描,并且在色度信号的情况下,向4x4变换尺寸(即,最小尺寸)应用根据帧内预测方向的扫描。此外,如果应用根据帧内预测方向的扫描,则能应用右上(diag;up-right=0)扫描。

为了编码帧内预测中的量化系数,能使用从表格2获得的扫描方向作为用于4x4子块的扫描方向和用于图8中的significant_coeff_group_flag的扫描方向。

如上所述,在编码处理中,原始画面和预测画面的残差画面经受频域变换和量化并然后经受熵编码。这里,由于频域变换为了增加编码效率,能取决于块的尺寸来选择性和适应性地应用整数变换、整数dct、整数dst、或取决于帧内预测模式的dct/dst。

此外,在解码处理中,残差画面经受熵解码、反量化、和频域逆变换。这里,能取决于块的尺寸来选择性和适应性地应用整数逆变换、整数逆dct、整数逆dst、或取决于帧内预测模式的dct/dst。

图11是图示了选择用于残差画面的频率变换方法的方法的示例的流程图。

首先,如果当前块已经受帧内编码并且不是亮度信号的块,则在用于当前块的亮度信号和色度信号的残差画面的频率变换方法中执行整数变换或整数dct。

如果不是(即,当前块已经受帧内编码并且是亮度信号的块),则获得用于当前块的亮度信号的帧内预测方向模式“intrapredmode”。

接下来,检查当前块是否是具有4x4尺寸(iwidth==4)的块。如果作为检查结果当前块不是具有4x4尺寸(iwidth==4)的块,则在用于当前块的亮度信号和色度信号的残差画面的频率变换方法中执行整数变换或整数dct。

如果作为检查结果当前块是具有4x4尺寸(iwidth==4)的块,则检查当前块的帧内预测方向模式。

如果作为检查结果当前块的帧内预测方向模式是2或更多以及10或更少,则沿着水平方向在用于当前块的亮度信号的频率变换方法中执行整数dst,并沿着垂直方向在用于当前块的亮度信号的频率变换方法中执行整数dct。

沿着水平和垂直方向两者在用于当前块的色度信号的频率变换方法中执行整数dct。

如果作为检查结果当前块的帧内预测方向模式是0或者是11或更多以及25或更少,则沿着水平和垂直方向两者在用于当前块的亮度信号的频率变换方法中执行整数dst。

沿着水平和垂直方向两者在用于当前块的色度信号的频率变换方法中执行整数dct。

如果作为检查结果当前块的帧内预测方向模式是26或更多以及34或更少,则在用于当前块的亮度信号的频率变换方法中沿着水平方向执行整数dct并沿着垂直方向执行整数dst。

在用于当前块的色度信号的频率变换方法中沿着水平和垂直方向两者执行整数dct。

如果不是,则在用于当前块的亮度信号和色度信号的残差画面的频率变换方法中沿着水平和垂直方向两者执行整数dct。

在图11中,iwidth是指示变换的尺寸的指示符,并且能如下计算根据每一变换尺寸的iwidth的值。

如果变换尺寸是64x64,则iwidth=64。如果变换尺寸是32x32,则iwidth=32。如果变换尺寸是16x16,则iwidth=16。如果变换尺寸是8x8,则iwidth=8。如果变换尺寸是4x4,则iwidth=4。如果变换尺寸是2x2,则iwidth=2。

与图11相关,用于缩放变换系数的变换处理如下。

<用于缩放变换系数的变换处理>

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

-用于当前块的亮度信号和色度信号的索引:cidx

-如果cidx是0,则这意味着亮度信号,并且如果cidx是1或者cidx是2,则这意味着色度信号。此外,如果cidx是1,则这意味着色度信号中的cb,并且如果cidx是2,则这意味着色度信号中的cr。

在该情况下,输出如下。

-通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”,log2(nw*nh)的值为4,并且cidx的值为0,则取决于用于亮度信号的帧内预测方向模式来使用根据表格3的参数horiztrtype和verttrtype。如果不是,则参数horiztrtype和verttrtype被设置为0。

<表格3>

使用参数horiztrtype和verttrtype来对缩放变换系数执行逆变换处理a。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,使用它们沿着水平方向来执行1-d逆变换,并输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且如等式3中那样导出阵列“nwxnh阵列g”。

<等式3>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”与参数verttrtype,并使用它们沿着垂直方向来执行1-d逆变换。

接下来,如等式4中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式4>

rij=(fij+(1<<(shift-1)))>>shift

在等式4中,当cidx为0时,“shift”=20-bitdepthy。当cidx不为0时,“shift”=20-bitdepthc。bitdepth指示用于当前画面的比特数目(例如,8比特)。

如上所述,可使用根据重构亮度信号样本来预测色度信号的方法(intra_fromluma)作为预测色度信号的方法。

使用intra_fromluma方法编码的色度分量的残差信号(误差信号:残差)基本上沿着右上(up-right=0)方向扫描并然后编码,因为不存在帧内方向模式。

然而,由于intra_fromluma方法基于亮度信号和色度信号之间的相似度,所以存在通过intra_fromluma方法获得的色度信号的残差信号可和用于亮度信号的残差信号具有相似特性的好可能性。因此,能使用该特性改进用于色度信号的残差信号的编码效率。

此外,能通过取决于亮度信号的帧内预测方向模式沿着水平和垂直方向向4x4亮度信号块不同地施加整数dct和整数dst,来改进编码效率。相反,对传统4x4色度信号块仅执行整数dct。

存在其中色度信号的残差画面可和亮度信号的残差画面具有相似特性的可能性。因此,为了改进编码效率,也能向色度信号的残差画面施加向亮度信号的残差画面所施加的基于帧内预测方向模式的选择性频率变换方法。

此外,从重构的亮度信号样本来预测色度信号的方法(intra_fromluma)(即,预测色度信号的方法)基于亮度信号和色度信号之间的相似度。因此,存在通过intra_fromluma方法获得的色度信号的残差信号和亮度信号的残差信号具有相似特性的好可能性。结果,如果基于以上特性将选择性频率变换方法应用到色度信号的残差信号,则能改进编码效率。

如上所述,intra_fromluma方法是使用亮度信号和色度信号之间的相似度的帧内预测方法。能基于亮度信号和色度信号之间的相似度,来从用于亮度信号的帧内预测方向导出用于色度信号的残差信号的扫描方向。

在该说明书中,下面更详细地描述用于导出色度信号的扫描方向的方法和设备。

[实施例1]基于亮度信号的帧内预测方向模式导出色度信号的扫描方向的方法和设备

图12是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的示例的流程图。

在图12的示例中,能通过亮度信号的帧内预测方向模式来确定用于色度信号的扫描方向的导出。换言之,能将用于亮度信号的扫描方向没有改变地施加到色度信号。因此,存在的优点在于,降低复杂性,因为不必导出用于导出色度信号的扫描方向的计算。

图12的操作能在图1的编码设备和图2的解码设备中执行。

参考图12,在步骤s1210确定当前块的亮度分量是否已经受帧内预测。如果作为确定结果确定当前块还没有经受帧内预测(即,经受帧间预测),则在步骤s1260对当前块的色度分量和亮度分量执行右上对角扫描。即,对当前块的亮度分量的扫描类型和当前块的色度分量的扫描类型两者执行右上对角扫描。

如果作为确定结果确定当前块的亮度分量已经受帧内预测,则在步骤s1220确定用于当前块的亮度分量的帧内预测模式是否是6或更多以及14或更少。即,在步骤s1220确定用于当前块的亮度分量的帧内预测模式是否是水平方向的帧内预测模式或接近水平的方向的帧内预测模式。

如果作为确定结果确定用于当前块的亮度分量的帧内预测模式是6或更多以及14或更少,则在步骤s1240对当前块的亮度分量和色度分量执行垂直扫描。即,对当前块的亮度分量的扫描类型和当前块的色度分量的扫描类型两者执行垂直扫描。

如果当前块的亮度分量已经受帧内预测,但是确定用于当前块的亮度分量的帧内预测模式不是6或更多以及14或更少,则在步骤s1230确定用于当前块的亮度分量的帧内预测模式是否是22或更多以及30或更少。即,确定用于当前块的亮度分量的帧内预测模式是否是垂直方向的帧内预测模式或接近垂直的方向的帧内预测模式。

如果作为确定结果确定用于当前块的亮度分量的帧内预测模式是22或更多以及30或更少,则在步骤s1250对当前块的亮度分量和色度分量执行水平扫描。即,对当前块的亮度分量的扫描类型和当前块的色度分量的扫描类型两者执行水平扫描。

如果当前块的亮度分量已经受帧内预测,但是确定用于当前块的亮度分量的帧内预测模式不是6或更多以及14或更少并且不是22或更多以及30或更少,则在步骤s1260对当前块的亮度分量和色度分量执行右上对角扫描。

图13是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的另一示例的流程图。图13的示例能具有的优点在于,亮度信号的扫描方法和色度信号的扫描方法是统一的。

图13的操作能在图1的编码设备和图2的解码设备中执行。

参考图13,首先,在步骤s1310确定当前块是否已经受帧内预测。

如果作为确定结果确定当前块还没有经受帧内预测,则在步骤s1390对当前块的亮度信号和色度信号执行右上对角扫描。

如果作为确定结果确定当前块已经受帧内预测,则在步骤s1320将当前块的尺寸改变为索引。例如,能设置索引以指定当前块的尺寸。

接下来,能在步骤s1330获得关于当前块模式的帧内预测的信息(即,intrapredmode)。能基于图6来获得intrapredmode(即,指示当前块的帧内预测模式的信息)。

在步骤s1340确定在步骤s1320处对于当前块设置的索引是否大于3并且小于6。如果作为确定结果确定当前块的索引不大于3并且小于6,则在步骤s1390处对当前块的亮度信号和色度信号执行右上对角扫描。

如果作为确定结果确定当前块的索引大于3并且小于6,则在步骤s1350确定用于当前块的色度信号的帧内预测模式是否是6或更大以及14或更小。如果作为确定结果确定用于当前块的色度信号的帧内预测模式是6或更大以及14或更小,则在步骤s1370对当前块的色度信号执行垂直扫描。

如果作为确定结果确定用于当前块的色度信号的帧内预测模式不是6或更大以及14或更小,则在步骤s1360确定用于当前块的色度信号的帧内预测模式是否是22或更大以及30或更小。如果作为确定结果确定用于当前块的色度信号的帧内预测模式是22或更大以及30或更小,则在步骤s1380对当前块的色度信号执行水平扫描。

如果作为确定结果确定用于当前块的色度信号的帧内预测模式不是6或更大以及14或更小并且不是22或更大以及30或更小,则在步骤s1390对当前块的色度信号执行右上对角扫描。

与图12的示例中不同,在图13的示例中,确定用于当前块的色度信号的帧内预测模式,并基于该确定结果来确定扫描类型。然而,如同图12的示例中那样,用于色度信号和亮度信号的扫描方法被确定为相同方法。

换言之,图13的流程图能相同地应用到亮度信号的扫描。在步骤s1350和s1360使用括号来指示intrapredmode(c)的原因在于,用于亮度信号的帧内预测模式能通过intrapredmode来规定并应用,并且用于色度信号的帧内预测模式能通过intrapredmodec来规定并应用。

因此,图13的流程图能相同地应用到色度信号和亮度信号,并且用于亮度信号的扫描类型和用于色度信号的扫描类型能被确定为相同方法。这里,扫描类型是垂直扫描、水平扫描、和右上对角扫描中的任何一个。

通过将图12和13的示例合并到用于变换单元(其后称为“tu”)的语法结构中来获得表格4。

表格4示出了根据当前实施例1的tu语法的示例。

<表格4>

在表格4中,transform_unit指示用于一个tu块的比特流的次序。log2trafosize指示用于log2trafowidth和log2trafoheight之和的右移操作的结果,并指示用于亮度信号的tu块的尺寸。log2trafosizec指示用于色度信号的tu块的尺寸。

predmode指示当前块的编码模式。在帧内编码的情况下,predmode是“intra”,并且在帧间编码的情况下,predmode是“inter”。scanidx指示关于当前tu块的亮度信号的扫描方向的信息,并包括右上方向diag(up-right=0)、水平方向hor(horizontal=1)、和垂直方向ver(vertical=2)。

scanidxc指示关于当前tu块的色度信号的扫描方向的信息,并包括右上方向diag(up-right=0)、水平方向hor(horizontal=1)、和垂直方向ver(vertical=2)。

基于根据表格2的帧预测方向确定扫描方向的方法的表格,来确定scantype(扫描类型)。

intrapredmode指示关于用于亮度信号的帧内预测方向的信息。intrapredmodec指示关于用于色度信号的帧内预测方向的信息。

与表格4相关,能在transcoefflevel阵列中解析变换系数电平。这里,如果predmode是intra,则取决于帧内预测方向模式来应用不同扫描方向。能从表格2中的scantype阵列来获得该扫描方向。

用于亮度信号的扫描方向能被没有改变地用作用于色度信号的扫描方向。

[实施例2-1]当用于色度信号的帧内预测方向模式是“intra_fromluma”时、用于没有改变地向色度信号应用用于亮度信号的扫描方向的方法和设备

图14是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的实施例的流程图。

参考图14,在步骤s1410确定用于当前块的色度信号的帧内预测方向模式是否是帧内预测模式。如果作为确定结果确定还没有向当前块应用帧内预测模式,则在步骤s1480对当前块执行右上对角扫描。

如果作为确定结果确定当前块已经受帧内预测,则在步骤s1420确定用于当前块的色度信号的帧内预测模式是否是intra_fromluma。如果作为确定结果确定用于当前块的色度信号的帧内预测模式是intra_fromluma,则在步骤s1440将用于当前块的亮度信号的帧内预测模式设置为用于当前块的色度信号的帧内预测模式。

换言之,如果用于当前块的色度信号的帧内预测模式是intra_fromluma,则通过将亮度信号的帧内预测方向模式输入到色度信号的帧内预测方向模式,能导出用于色度信号的扫描方向。即,如果色度信号的帧内预测方向模式是intra_fromluma,则用于亮度信号的扫描方向能被用作用于色度信号的扫描方向。

接下来,在步骤s1430确定用于当前块的色度信号的帧内预测模式是否是6或更大以及14或更少。如果作为确定结果确定用于当前块的色度信号的帧内预测模式是6或更大以及14或更少,则在步骤s1460对当前块的色度信号执行垂直扫描。

如果作为确定结果确定用于当前块的色度信号的帧内预测模式不是6或更大以及14或更少,则在步骤s1450确定用于当前块的色度信号的帧内预测模式是否是22或更大以及30或更少。如果作为确定结果确定用于当前块的色度信号的帧内预测模式是22或更大以及30或更少,则在步骤s1470对当前块的色度信号执行水平扫描。

如果用于当前块的色度信号的帧内预测模式不是6或更大以及14或更少并且不是22或更大以及30或更少,则在步骤s1480对当前块的色度信号执行右上对角扫描。

[实施例2-2]当用于色度信号的帧内预测方向和用于亮度信号的帧内预测方向相同或者用于色度信号的帧内预测模式是intra_fromluma时、用于没有改变地向色度信号应用用于亮度信号的扫描方向的方法和设备

图15是图示了根据当前实施例的导出用于色度信号的扫描方向的方法的另一实施例的流程图。

根据图15,可以看出dm方法(即,使用用于亮度信号的帧内预测方向模式作为用于色度信号的帧内预测方向模式的方法,或者其意味着色度信号的帧内预测方向变得与亮度信号的帧内预测方向相同)和lm(intra_fromluma)方法被统一为一个。

首先,在步骤s1505确定当前块是否已经受帧内预测。如果作为确定结果确定还没有向当前块应用帧内预测模式,则在步骤s1575对当前块执行右上对角扫描。

如果作为确定结果确定当前块已经受帧内预测,则在步骤s1510将当前块的宽度改变为索引。

在步骤s1515确定要确定的目标样本是否是亮度信号。如果作为确定结果确定目标样本不是亮度信号,则在步骤s1530确定是否向当前块施加dm或lm。如果作为确定结果确定目标样本是亮度信号,则在步骤s1520获得关于帧内预测模式的信息。

如果本发明取决于应用领域为了分布(profiling)的目的而被有限应用到其中使用dm不使用lm对色度信号执行帧内编码或解码的情况,则可在图15的示例中在步骤s1530确定是否应用dm,而无需确定是否应用lm。

在获得关于帧内预测模式的信息之后,如果在步骤s1525索引大于3并且小于6(即,变换尺寸为8x8或4x4),则在步骤s1555确定用于当前块的亮度信号的帧内预测模式是否是6或更大以及14或更小。如果作为确定结果确定用于当前块的亮度信号的帧内预测模式是6或更大以及14或更小,则在步骤s1565对当前块的亮度信号执行垂直扫描。

如果作为确定结果确定用于当前块的亮度信号的帧内预测模式不是6或更大以及14或更小,则在步骤s1560确定用于当前块的亮度信号的帧内预测模式是否是22或更大以及30或更小。如果作为确定结果确定用于当前块的亮度信号的帧内预测模式是22或更大以及30或更小,则在步骤s1570对当前块执行水平扫描。如果作为确定结果确定用于当前块的亮度信号的帧内预测模式不是22或更大以及30或更小,则在步骤s1575对当前块执行右上对角扫描。

其间,如果作为步骤s1515的确定结果确定目标样本是色度信号而不是亮度信号,则在步骤s1530确定用于当前块的模式是否是dm或lm。如果作为确定结果确定用于当前块的色度信号的模式不是dm或lm,则在步骤s1545获得关于用于色度信号的帧内预测模式的信息。如果作为确定结果确定用于当前块的色度信号的模式是dm或lm,则在步骤s1535获得关于用于亮度信号的帧内预测模式的信息。为了确定用于色度信号的扫描方向,在步骤s1540将用于色度信号的帧内预测模式设置为用于亮度信号的帧内预测模式。

接下来,在步骤s1550确定索引是否大于4并且小于7(即,变换尺寸是否是4x4或2x2)。如果作为确定结果确定索引不大于4并且小于7,则在步骤s1575对当前块的色度信号执行右上对角扫描。

如果作为确定结果确定索引大于4并且小于7,则在步骤s1555确定用于当前块的色度信号的帧内预测模式是否是6或更大以及14或更小。如果作为确定结果确定用于当前块的色度信号的帧内预测模式是6或更大以及14或更小,则在步骤s1565对当前块的色度信号执行垂直扫描。

如果作为确定结果确定用于当前块的色度信号的帧内预测模式不是6或更大以及14或更小,则在步骤s1560确定用于当前块的色度信号的帧内预测模式是否是22或更大以及30或更小。如果作为确定结果确定用于当前块的亮度信号的帧内预测模式是22或更大以及30或更小,则在步骤s1570对当前块执行水平扫描。如果作为确定结果确定用于当前块的亮度信号的帧内预测模式不是22或更大以及30或更小,则在步骤s1575对当前块执行右上对角扫描。

通过将图14和15的示例合并到用于变换单元(其后称为“tu”)的语法结构中来获得表格5。

表格5示出了根据当前实施例1的tu语法的示例。

<表格5>

在表格5中,transform_unit指示用于一个tu块的比特流的次序。log2trafosize指示用于log2trafowidth和log2trafoheight之和的右移操作的结果,并指示用于亮度信号的tu块的尺寸。

log2trafosizec指示用于色度信号的tu块的尺寸。predmode指示当前块的编码模式。在帧内编码的情况下,predmode是“intra”,并且在帧间编码的情况下,predmode是“inter”。

scanidx指示关于当前tu块的亮度信号的扫描方向的信息,并包括右上方向diag(up-right=0)、水平方向hor(horizontal=1)、和垂直方向ver(vertical=2)。

scanidxc指示关于当前tu块的色度信号的扫描方向的信息,并包括右上方向diag(up-right=0)、水平方向hor(horizontal=1)、和垂直方向ver(vertical=2)。

基于根据表格2的帧预测方向确定扫描方向的方法的表格,来确定scantype。

intrapredmode指示关于用于亮度信号的帧内预测方向的信息。intrapredmodec指示关于用于色度信号的帧内预测方向的信息。如语法表格中指示的,如果intrapredmodec的值是intra_fromluma,则将亮度信号中使用的扫描方向没有改变地施加到色度信号。

与表格5相关,能在transcoefflevel阵列中解析变换系数电平。这里,如果predmode是intra,则取决于帧内预测方向模式来应用不同扫描方向。能从下面表格6中的scantype阵列来获得该扫描方向。为了获得scanidx(即,用于亮度信号的扫描方向指示符),将指示用于亮度信号的帧内预测模式的intrapredmode的值用作表格6中intrapredmodevalue的值。为了获得scanidxc(即,用于色度信号的扫描方向指示符),将指示用于色度信号的帧内预测模式的值intrapredmodec用作表格6中intrapredmodevalue的值。

表格6示出了确定扫描类型的方法的示例。

<表格6>

在表格6中,能如下通过通过log2trafosize和intrapredmodevalue来确定扫描类型scantype:scantype[log2trafosize-2][intrapredmodevalue]

如上所述,在transcoefflevel阵列中解析变换系数电平。这里,如果predmode是“intra”,则取决于帧内预测方向模式来使用不同扫描方向。

这里,能基于亮度信号变换块的尺寸“log2trafosize”和帧内预测方向模式“intrapredmodevalue”,根据表格7的语法结构,来设置scantype[log2trafosize-2][intrapredmodevalue]。

<表格7>

为了获得scanidx(即,用于亮度信号的扫描方向指示符),将指示用于亮度信号的帧内预测模式的intrapredmode的值用作表格2中intrapredmodevalue的值。为了获得scanidxc(即,用于色度信号的扫描方向指示符),将指示用于色度信号的帧内预测模式的intrapredmodec的值用作表格2中intrapredmodevalue的值。

除了已在intra_fromluma(lm)中编码当前色度块的情况之外,本实施例也能应用到以下情况。

1.在预测色度块时,本实施例能应用到将重构的亮度信号块与权重相乘并向相乘结果添加偏移的所有方法。

2.在预测色度块时,本实施例能应用到使用重构的亮度信号和色度信号块之间的模板偏移来预测色度块的所有方法。这里,使用模板偏移来导出亮度信号和色度信号之间的相关性。

另外,能按照各种方式来应用本实施例。

例如,能取决于所有块的尺寸、cu深度或tu深度,而将本实施例不同地应用到应用范围。用来确定上述应用范围的参数(即,关于尺寸或深度的信息)可被设置为使得在编码器和解码器中使用预定值,或者可取决于分布或电平来使用预定值。例如,当编码器将参数值写入比特流中时,解码器可从比特流获得值并使用该值。

如果该应用范围取决于cu深度而不同,则能如表格8图示的那样使用以下3种方法之一:仅向等于或大于特定深度的深度应用该应用范围的方法a)、仅向等于或小于特定深度的深度应用该应用范围的方法b)、和仅向特定深度应用该应用范围的方法c)。

表格8示出了确定应用范围的方法的示例,其中当特定cu(或tu)深度为2时,应用根据本实施例的三种方法中的每一种。在表格8中,“o”指示将该应用范围施加到对应深度,并且“x”指示不将该应用范围施加到对应深度。

<表格8>

如果本发明的方法没有应用到所有深度,则其可使用特定指示符(或标记)来指示,或者可通过用信号传送比cu深度的最大值大1的值、用作指示应用范围的cu深度值来表示。

此外,应注意的是,其中应用本发明的方法的用于确定应用范围的方法能单独或组合应用到前述实施例1和稍后要描述的实施例。

[实施例3]用于基于用于色度信号的帧内预测方向模式、来选择性导出用于色度信号的残差画面的频率变换方法的方法和设备

在本实施例中,能通过向色度信号的残差画面应用、根据亮度信号的残差画面已应用到的帧内预测方向模式的选择性频率变换方法,来改进编码效率。

此外,在本实施例中,能基于通过intra_fromluma方法获得的色度信号的残差信号和亮度信号的残差信号具有类似特性的性质,来选择性执行频率变换。

图16是图示了根据当前实施例的基于用于色度信号的帧内预测方向信号、来选择性导出用于色度信号的残差画面的频率变换方法的方法的示例的流程图。

参考图16,首先,如果在步骤s1605当前块已经受帧内编码“intra”并且当前块具有4x4尺寸(trafosize(或iwidth)==4),则向用于当前块的频率变换方法应用整数dst或整数dct。如果在步骤s1605当前块不具有4x4尺寸(trafosize(或iwidth)==4),则能在步骤s1660向用于当前块的频率变换方法应用dct。

接下来,如果在步骤s1610当前块是亮度块,则在步骤s1620获得用于亮度信号的帧内预测方向模式intrapredmode。这里,用于当前块的亮度信号的帧内预测方向模式能被用来导出用于亮度信号的残差画面的频率变换方法。

如果在步骤s1610当前块是色度块,则在步骤s1615确定色度块是否是dm块。

如果作为确定结果确定当前块是dm块,则能在步骤s1660向用于当前块的频率变换方法应用dct。如果作为步骤s1615的确定结果确定当前块不是dm块,则在步骤s1625能使用用于色度信号的帧内预测方向模式来导出用于色度信号的残差画面的频率变换方法。

这里,如果色度块已在dm中编码,则能根据dm向与em(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、或位于垂直方向中的第八位置处的模式(例如,ver+8或第34号模式))对应的帧内预测方向模式应用dst、dct或其他频率变换方法。

接下来,如果在步骤s1630用于当前块(即,亮度和色度信号块)的帧内预测方向模式是2或更大以及10或更小,则能在步骤s1645沿着水平方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst,并能沿着垂直方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct。

相反,如果在步骤s1635用于当前块(即,亮度和色度信号块)的帧内预测方向模式是0(平面)或者是11或更大以及25或更小,则能在步骤s1650沿着水平和垂直方向两者向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst。

相反,如果在步骤s1640用于当前块(即,亮度和色度信号块)的帧内预测方向模式是26或更大以及34或更小,则能在步骤s1655沿着水平方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct,并能沿着垂直方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst。

如果在步骤s1640用于当前块(即,亮度和色度信号块)的帧内预测方向模式不是26或更大以及34或更小,则能在步骤s1660沿着水平和垂直方向两者向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct。

图16的方法能如下合并为用于缩放变换系数的变换处理。

其中已合并了图16的示例的用于缩放变换系数的变换处理

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

用于当前块的亮度信号和色度信号的索引:cidx

-如果cidx为0,则这意味着亮度信号。如果cidx为1或者cidx为2,则这意味着色度信号。此外,如果cidx为1,则这意味着色度信号中的cb。如果cidx为2,则这意味着色度信号中的cr。

在该情况下,输出如下。

-通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”,log2(nw*nh)的值为4,并且信号是亮度信号,则取决于用于亮度信号的帧内预测方向模式来使用根据表格9的参数horiztrtype和verttrtype。

在色度信号的情况下,如果用于色度信号的帧内预测编码模式小于4,则取决于用于色度信号的帧内预测方向模式来使用根据表格9的参数horiztrtype和verttrtype。如果用于色度信号的帧内预测编码模式不小于4,则将参数horiztrtype和verttrtype设置为0。

如果用于色度信号的帧内预测方向模式是“35”,则将参数horiztrtype和verttrtype设置为0。

<表格9>

使用参数horiztrtype和verttrtype值对缩放变换系数执行逆变换处理。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,沿着水平方向执行1-d逆变换,并且作为1-d逆变换的结果输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且使用该阵列如同等式5中那样导出阵列“nwxnh阵列g”。

<等式5>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”与参数verttrtype,并沿着垂直方向执行1-d逆变换。

接下来,如同等式6中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式6>

rij=(fij+(1<<(shift-1)))>>shift

这里,当cidx为0时,shift=20–bitdepthy。当cidx不为0时,shift=20–bitdepthc。bitdepth指示用于当前画面的样本的比特的数目(例如,8比特)。

图17是图示了根据当前实施例的基于用于色度信号的帧内预测方向信号、来选择性导出用于色度信号的残差画面的频率变换方法的方法的另一示例的流程图。

参考图17,首先,在步骤s1710确定当前块是否已经受帧内编码“intra”。如果作为确定结果确定当前块已经受帧内编码,则向用于当前块的频率变换方法应用整数dst或整数dct。

如果作为确定结果确定当前块还没有经受帧内编码“intra”,则在步骤s1715获得用于当前块的亮度或色度信号的帧内预测方向模式“intrapredmode(c)”。这里,当导出用于亮度信号的频率变换方法时,intrapredmode(c)改变为intrapredmode(即,用于亮度信号的帧内预测方向模式)。当导出用于色度信号的频率变换方法时,intrapredmode(c)改变为intrapredmodec(即,用于色度信号的帧内预测方向模式)。这里,能使用用于当前块的亮度信号的帧内预测方向模式来导出用于亮度信号的残差画面的频率变换方法,并且能使用用于当前块的色度信号的帧内预测方向模式来导出用于色度信号的残差画面的频率变换方法。

这里,能如同下面1到3方法之一按照各种方式获得用于选择频率变换方法的帧内预测方向模式。

1.能使用用于当前块的亮度信号的帧内预测方向模式,以通过向亮度信号和色度信号两者的残差画面施加帧内预测方向模式来导出频率变换方法。

2.能使用用于当前块的色度信号的帧内预测方向模式,以通过向亮度信号和色度信号两者的残差画面施加帧内预测方向模式来导出频率变换方法。

3.能在当前块的亮度信号中仅使用整数dct或整数dst。此外,能使用用于当前块的色度信号的帧内预测方向模式,以导出用于色度信号的残差画面的频率变换方法。

另外,能按照各种方式来导出频率变换方法。

接下来,在步骤s1720确定当前块是否具有4x4尺寸(iwidth==4)。如果作为确定结果确定当前块不具有4x4尺寸(iwidth==4),则在步骤s1755对用于当前块的频率变换方法应用整数变换或整数dct。

如果作为确定结果确定当前块具有4x4尺寸(iwidth==4),则检查用于当前块的帧内预测方向模式.

如果在步骤s1725当前块的帧内预测方向模式是2或更大以及10或更小,则在步骤s1740能沿水平方向向用于当前块的频率变换方法施加整数dst并能沿垂直方向向用于当前块的频率变换方法施加整数dct。

相反,如果在步骤s1730当前块的帧内预测方向模式是0或者是11或更大以及25或更小,则在步骤s1745能沿水平和垂直方向两者向用于当前块的频率变换方法施加整数dst。

相反,如果在步骤s1735当前块的帧内预测方向模式是26或更大以及34或更小,则在步骤s1750能沿水平方向向用于当前块的频率变换方法施加整数dct并能沿垂直方向向用于当前块的频率变换方法施加整数dst。

如果在步骤s1735当前块的帧内预测方向模式不是26或更大以及34或更小,则在步骤s1755能沿水平和垂直方向两者向用于当前块的频率变换方法施加整数dct。

这里,能按照各种方式来使用根据帧内预测方向模式的频率变换方法。例如,如果用于当前块的帧内预测方向模式是2或更大以及10或更小,则可如同上述示例中那样应用频率变换方法。作为另一方法,能沿水平方向向用于当前块的频率变换方法施加整数dct,并沿垂直方向向用于当前块的频率变换方法施加整数dst。作为另一方法,能沿着水平和垂直方向两者向用于当前块的频率变换方法施加整数dct,或者能沿着水平和垂直方向两者向用于当前块的频率变换方法施加整数dst。此外,除了dc模式(即,不是平均值预测和方向模式的模式)之外,可向所有水平和垂直方向施加整数dst。

除了其中用于当前块的帧内预测方向模式是2或更大以及10或更小的情况之外,上述按照各种方式施加各种频率变换方法的方法能被应用到其他帧内预测方向模式范围。以下内容能按照相同方式应用到以下实施例。

图17的方法能如下被合并到用于缩放变换系数的变换处理。

其中已合并了图17的示例的用于缩放变换系数的变换处理

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

用于当前块的亮度信号和色度信号的索引:cidx

-如果cidx为0,则这意味着亮度信号。如果cidx为1或者cidx为2,则这意味着色度信号。此外,如果cidx为1,则这意味着色度信号中的cb。如果cidx为2,则这意味着色度信号中的cr。

在该情况下,输出如下。

通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”并且log2(nw*nh)的值为4,则(1)取决于用于亮度信号的帧内预测方向模式来使用根据表格10的参数horiztrtype和verttrtype和(2)取决于用于色度信号的帧内预测方向模式,来使用根据表格10的参数horiztrtype和verttrtype。如果否,则将参数horiztrtype和verttrtype设置为0。

<表格10>

使用参数horiztrtype和verttrtype值对缩放变换系数执行逆变换处理。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,沿着水平方向执行1-d逆变换,并且作为1-d逆变换的结果输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且使用该阵列如同等式7中那样导出阵列“nwxnh阵列g”。

<等式7>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”与参数verttrtype,并沿着垂直方向执行1-d逆变换。

接下来,如同等式8中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式8>

rij=(fij+(1<<(shift-1)))>>shift

这里,当cidx为0时,shift=20–bitdepthy。当cidx不为0时,shift=20–bitdepthc。bitdepth指示用于当前画面的样本的比特的数目(例如,8比特)。

[实施例4]用于基于与用于色度信号的intra_fromluma(lm)编码模式相关的、用于亮度信号的帧内预测方向模式、来选择性导出用于色度信号的残差画面的频率变换方法的方法和设备

图18是图示了根据当前实施例的基于与色度信号的lm相关的用于亮度信号的帧内预测方向信号、来选择性导出用于色度信号的残差画面的频率变换方法的方法的示例的流程图。

参考图18,首先,如果在步骤s1810当前块已经受帧内编码“intra”并且当前块具有4x4尺寸(trafosize(或iwidth)==4),则在步骤s1855对用于当前块的频率变换方法应用整数dst或整数dct。如果在步骤s1810当前块不具有4x4尺寸(trafosize(或iwidth)==4),则能向用于当前块的频率变换方法应用dct。

接下来,如果在步骤s1815当前块是亮度块或色度块并且用于色度块的帧内预测方向模式是lm,则在步骤s1820获得用于亮度信号的帧内预测方向模式“intrapredmode”。

这里,能使用用于当前块的亮度信号的帧内预测方向模式,来导出用于亮度信号和色度信号的残差画面的频率变换方法。

如果在步骤s1815当前块是色度块(即,非lm的色度块),则能在步骤s1855对用于当前块的频率变换方法应用dct。

接下来,如果在步骤s1825用于当前块(即,亮度和色度信号块)的帧内预测方向模式是2或更大以及10或更小,则在步骤s1840能沿水平方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst并能沿垂直方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct。

相反,如果在步骤s1830用于当前块(即,亮度和色度信号块)的帧内预测方向模式是0(平面)或者是11或更大以及25或更小,则在步骤s1845能沿水平和垂直方向两者向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst。

相反,如果在步骤s1835用于当前块(即,亮度和色度信号块)的帧内预测方向模式是26或更大以及34或更小,则在步骤s1850能沿水平方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct并能沿垂直方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst。如果在步骤s1835用于当前块(即,亮度和色度信号块)的帧内预测方向模式不是26或更大以及34或更小,则在步骤s1855能沿水平和垂直方向两者向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct。

其间,根据图18的示例的用于缩放变换系数的变换处理如下。

根据图18的示例的用于缩放变换系数的变换处理

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

用于当前块的亮度信号和色度信号的索引:cidx

-如果cidx为0,则这意味着亮度信号。如果cidx为1或者cidx为2,则这意味着色度信号。此外,如果cidx为1,则这意味着色度信号中的cb。如果cidx为2,则这意味着色度信号中的cr。

在该情况下,输出如下。

通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”并且log2(nw*nh)的值为4,则取决于用于亮度信号的帧内预测方向模式来使用根据表格11的参数horiztrtype和verttrtype,并且如果用于色度信号的编码模式是intra_fromluma(lm),则取决于用于色度信号的帧内预测方向模式,来使用根据表格11的参数horiztrtype和verttrtype。如果否,则将参数horiztrtype和verttrtype设置为0。

<表格11>

使用参数horiztrtype和verttrtype值对缩放变换系数执行逆变换处理。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,沿着水平方向执行1-d逆变换,并且作为1-d逆变换的结果输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且使用该阵列如同等式9中那样导出阵列“nwxnh阵列g”。

<等式9>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”与参数verttrtype,并沿着垂直方向执行1-d逆变换。

接下来,如同等式10中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式10>

rij=(fij+(1<<(shift-1)))>>shift

这里,当cidx为0时,shift=20–bitdepthy。当cidx不为0时,shift=20–bitdepthc。bitdepth指示用于当前画面的样本的比特的数目(例如,8比特)。

图19是图示了根据当前实施例的基于与用于色度信号的intra_fromluma(lm)编码模式相关的、用于亮度信号的帧内预测方向信号、来选择性导出用于色度信号的残差画面的频率变换方法的方法的另一示例的流程图。

参考图19,在步骤s1910确定是否已根据条件1(即,是否当前块已经受帧内编码“intra”并且当前块是亮度信号的块)或条件2(即,是否当前块具有lm并且当前块是色度信号的块)编码了当前块。

如果作为确定结果不满足条件1或条件2,则能在步骤s1955向用于当前块的亮度信号和色度信号的频率变换方法应用整数变换或整数dct。

如果作为确定结果满足条件1或条件2,则在步骤s1915获得用于当前块的亮度信号的帧内预测方向模式“intrapredmode”。

这里,能使用用于当前块的亮度信号的帧内预测方向模式,来导出用于亮度信号的残差画面的频率变换方法。此外,如果已在lm中编码了当前块的色度信号,则能使用用于当前块的亮度信号的帧内预测方向模式来导出用于色度信号的残差画面的频率变换方法。

接下来,在步骤s1920确定当前块是否具有4x4尺寸(iwidth==4)。如果作为确定结果确定当前块不具有4x4尺寸(iwidth==4),则在步骤s1955能对用于当前块的亮度信号和色度信号的频率变换方法应用整数变换或整数dct。如果作为确定结果确定当前块具有4x4尺寸(iwidth==4),则检查用于当前块的帧内预测方向模式。

如果在步骤s1925当前块的帧内预测方向模式是2或更大以及10或更小,则在步骤s1940能沿着水平方向向用于当前块的亮度信号的频率变换方法施加整数dst,并能沿着垂直方向向用于当前块的亮度信号的频率变换方法施加整数dct。如果已在lm中编码了当前块的色度信号,则能使用用于当前块的亮度信号的频率变换方法来对色度信号的残差画面执行频率变换。

如果还没有在lm中编码当前块的色度信号,则能在步骤s1955沿着水平和垂直方向两者对当前块的色度信号执行整数dct。

相反,如果在步骤s1930当前块的帧内预测方向模式是0或者是11或更大以及25或更小,则在步骤s1945能沿着水平和垂直方向两者向用于当前块的亮度信号的频率变换方法施加整数dst。如果已在lm中编码了当前块的色度信号,则能使用用于当前块的亮度信号的频率变换方法来对色度信号的残差画面执行频率变换。如果还没有在lm中编码当前块的色度信号,则能在步骤s1955沿着水平和垂直方向两者对当前块的色度信号执行整数dct。

相反,如果在步骤s1935当前块的帧内预测方向模式是26或更大以及34或更小,则在步骤s1950能沿着水平方向向用于当前块的亮度信号的频率变换方法施加整数dct并能沿着垂直方向向用于当前块的亮度信号的频率变换方法施加整数dst。如果已在lm中编码了当前块的色度信号,则能使用用于当前块的亮度信号的频率变换方法来对色度信号的残差画面执行频率变换。如果还没有在lm中编码当前块的色度信号,则能在步骤s1955沿着水平和垂直方向两者对当前块的色度信号执行整数dct。

如果在步骤s1935当前块的帧内预测方向模式不是26或更大以及34或更小,则在步骤s1955能沿着水平和垂直方向两者向用于当前块的亮度信号和色度信号的残差画面的频率变换方法施加整数dct。

其中已合并了图19的示例的用于缩放变换系数的变换处理如下。

其中已合并了图19的示例的用于缩放变换系数的变换处理

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

用于当前块的亮度信号和色度信号的索引:cidx

-如果cidx为0,则这意味着亮度信号。如果cidx为1或者cidx为2,则这意味着色度信号。此外,如果cidx为1,则这意味着色度信号中的cb。如果cidx为2,则这意味着色度信号中的cr。

在该情况下,输出如下。

通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”并且log2(nw*nh)的值为4,则取决于用于亮度信号的帧内预测方向模式来使用根据表格12的参数horiztrtype和verttrtype,并且如果用于色度信号的编码模式是intra_fromluma(lm),则取决于用于色度信号的帧内预测方向模式,来使用根据表格12的参数horiztrtype和verttrtype。如果否,则将参数horiztrtype和verttrtype设置为0。

<表格12>

使用参数horiztrtype和verttrtype值对缩放变换系数执行逆变换处理。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,沿着水平方向执行1-d逆变换,并且作为1-d逆变换的结果输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且使用该阵列如同等式11中那样导出阵列“nwxnh阵列g”。

<等式11>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”与参数verttrtype,并沿着垂直方向执行1-d逆变换。

接下来,如同等式12中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式12>

rij=(fij+(1<<(shift-1)))>>shift

这里,当cidx为0时,shift=20–bitdepthy。当cidx不为0时,shift=20–bitdepthc。bitdepth指示用于当前画面的样本的比特的数目(例如,8比特)。

除了其中已在intra_fromluma(lm)中编码了当前色度块的情况之外,本实施例也能应用到各种情况,诸如下面的1和2。

1.在预测色度块时,本实施例能应用到将重构的亮度信号块与权重相乘并向相乘结果添加偏移的所有方法。

2.在预测色度块时,本实施例能应用到使用用于重构的亮度信号和色度信号块的模板偏移来预测色度块的所有方法。这里,使用模板偏移来导出亮度信号和色度信号之间的相关性。

另外,能按照各种方式来应用本实施例。

[实施例5]用于取决于帧内预测方向模式来选择性导出用于色度信号的残差画面的频率变换方法的方法和设备

图20是图示了根据当前实施例的用于基于帧内预测方向模式来选择性导出用于色度信号的残差画面的频率变换方法的方法的示例的流程图。

参考图20,首先,当前块已经受帧内编码“intra”,并且在步骤s2010确定当前块是否具有4x4尺寸(trafosize(或iwidth)==4)。首先,如果当前块已经受帧内编码“intra”并且当前块具有4x4尺寸(trafosize(或iwidth)==4),则能向用于当前块的频率变换方法应用整数dst或整数dct。如果当前块不具有4x4尺寸(trafosize(或iwidth)==4),则在步骤s2065能向用于当前块的频率变换方法应用dct。

接下来,如果在步骤s2015当前块是亮度块或色度块并且用于色度块的帧内预测方向模式是lm,则在步骤s2020获得用于亮度信号的帧内预测方向模式“intrapredmode”。这里,能使用用于当前块的亮度信号的帧内预测方向模式,来导出用于亮度信号和色度信号的残差画面的频率变换方法。

如果在步骤s2015用于色度块的帧内预测方向模式不是lm,则在步骤s2025确定色度块是否是dm。

如果当前块是色度块并且是dm块,则能在步骤s2065向用于当前块的频率变换方法应用dct。如果当前块是色度块而不是dm块,则能在步骤s2030使用用于色度信号的帧内预测方向模式以导出用于色度信号的残差画面的频率变换方法。

这里,如果色度块已在dm中编码,则能根据dm向与em(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、或位于垂直方向中的第八位置处的模式(例如,ver+8或第34号模式))对应的帧内预测方向模式应用dst、dct或其他频率变换方法。

接下来,如果在步骤s2035用于当前块(即,亮度和色度信号块)的帧内预测方向模式是2或更大以及10或更小,则能在步骤s2050沿着水平方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst,并能沿着垂直方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct。

相反,如果在步骤s2040用于当前块(即,亮度和色度信号块)的帧内预测方向模式是0(平面)或者是11或更大以及25或更小,则能在步骤s2055沿着水平和垂直方向两者向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst。

相反,如果在步骤s2045用于当前块(即,亮度和色度信号块)的帧内预测方向模式是26或更大以及34或更小,则能在步骤s2060沿着水平方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct,并能沿着垂直方向向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dst。

如果在步骤s2045用于当前块(即,亮度和色度信号块)的帧内预测方向模式不是26或更大以及34或更小,则能在步骤s2064沿着水平和垂直方向两者向用于当前块(即,亮度和色度信号块)的频率变换方法应用整数dct。

能如同下面1到3中的任一个按照各种方式应用用于选择性应用频率变换方法的方法。

1.如果色度块已在dm中编码,则能向dm之中的与em(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、或位于垂直方向中的第八位置处的模式(例如,ver+8或第34号模式))对应的帧内预测方向模式应用dst、dct或其他频率变换方法

2.如果色度块已在lm中编码,则能向从亮度信号导出的帧内预测方向模式之中的、与em(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、或位于垂直方向中的第八位置处的模式(例如,ver+8或第34号模式))对应的帧内预测方向模式应用dst、dct或其他频率变换方法。

3.仅当帧内预测方向模式为planar或dc时,才能选择性应用dst、dct或其他频率变换方法。换言之,能固定应用dst、dct或其他频率变换方法。在另一实施例中,相反情况是可能的。

另外,能按照各种方式来导出频率变换方法。

通过合并图20的方法执行用于缩放变换系数的变换处理的方法如下。

其中已合并了图20的示例的用于缩放变换系数的变换处理

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

用于当前块的色度信号和亮度信号的索引:cidx

-如果cidx为0,则这意味着亮度信号。如果cidx为1或者cidx为2,则这意味着色度信号。此外,如果cidx为1,则这意味着色度信号中的cb。如果cidx为2,则这意味着色度信号中的cr。

在该情况下,输出如下。

通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”并且log2(nw*nh)的值为4,则取决于用于亮度信号的帧内预测方向模式来使用根据表格13的参数horiztrtype和verttrtype。在色度信号的情况下,如果色度信号的帧内预测编码模式小于4,则取决于用于色度信号的帧内预测方向模式来使用根据表格13的参数horiztrtype和verttrtype。相反,如果用于色度信号的编码模式是intra_fromluma(lm),则取决于用于亮度信号的帧内预测方向模式来使用根据表格13的参数horiztrtype和verttrtype。如果用于色度信号的编码模式不是intra_fromluma(lm),则将参数horiztrtype和verttrtype设置为0。

<表格13>

使用参数horiztrtype和verttrtype值对缩放变换系数执行逆变换处理。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,沿着水平方向执行1-d逆变换,并且作为1-d逆变换的结果输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且使用该阵列如同等式13中那样导出阵列“nwxnh阵列g”。

<等式13>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”与参数verttrtype,并沿着垂直方向执行1-d逆变换。

接下来,如同等式14中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式14>

rij=(fij+(1<<(shift-1)))>>shift

这里,当cidx为0时,shift=20–bitdepthy。当cidx不为0时,shift=20–bitdepthc。bitdepth指示用于当前画面的样本的比特的数目(例如,8比特)。

图21是图示了根据当前实施例的用于基于帧内预测方向模式来选择性导出用于色度信号的残差画面的频率变换方法的方法的另一示例的流程图。

参考图21,首先,如果在步骤s2105确定当前块还没有受帧内编码“intra”,则能在步骤s2160向用于当前块的亮度信号和色度信号的频率变换方法应用整数变换或整数dct。

如果当前块已经受帧内编码“intra”,则在步骤s2110确定当前块是否是亮度信号块以及当前块的编码模式是否是lm。

如果作为确定结果确定当前块不是亮度信号以及当前块的编码模式不是lm,则在步骤s2120获得用于色度信号的帧内预测方向模式。如果作为确定结果确定当前块是亮度信号以及当前块的编码模式是lm,则在步骤s2115获得用于亮度信号的帧内预测方向模式。

这里,能使用用于当前块的亮度信号的帧内预测方向模式来导出用于亮度信号的残差画面的频率变换方法。这里,能使用用于当前块的色度信号的帧内预测方向模式来导出用于色度信号的残差画面的频率变换方法。

此外,如果当前块的色度信号还没有在lm中编码,则能使用用于当前块的亮度信号的帧内预测方向模式来导出用于色度信号的残差画面的频率变换方法。

接下来,在步骤s2125确定当前块是否具有4x4尺寸(iwidth==4)。如果作为确定结果确定当前块不具有4x4尺寸(iwidth==4),则在步骤s2160能向用于当前块的亮度信号和色度信号的频率变换方法应用整数变换或整数dct。如果作为确定结果确定当前块具有4x4尺寸(iwidth==4),则检查当前块的帧内预测方向模式。

这里,当导出用于亮度信号的频率变换方法时,intrapredmode(c)改变为intrapredmode(即,用于亮度信号的帧内预测方向模式)。当导出用于色度信号的频率变换方法时,intrapredmode(c)改变为intrapredmodec(即,用于色度信号的帧内预测方向模式)。

如果在步骤s2130当前块的帧内预测方向模式是2或更大以及10或更小,则在步骤s2145能沿水平方向向用于当前块的频率变换方法施加整数dst并能沿垂直方向向用于当前块的频率变换方法施加整数dct。

相反,如果在步骤s2135当前块的帧内预测方向模式是0或者是11或更大以及25或更小,则在步骤s2150能沿水平和垂直方向两者向用于当前块的频率变换方法施加整数dst。

相反,如果在步骤s2140当前块的帧内预测方向模式是26或更大以及34或更小,则在步骤s2155能沿水平方向向用于当前块的频率变换方法施加整数dct并能沿垂直方向向用于当前块的频率变换方法施加整数dst。

如果在步骤s2140当前块的帧内预测方向模式不是26或更大以及34或更小,则在步骤s2160能沿水平和垂直方向两者向用于当前块的亮度信号和色度信号的残差画面的频率变换方法施加整数dct。

将根据图21的示例的方法合并到用于缩放变换系数的变换处理中的方法如下。

其中已合并了图21的示例的用于缩放变换系数的变换处理

在该情况下,输入如下。

-当前变换块的宽度:nw

-当前变换块的高度:nh

-具有元素dij的缩放变换系数的阵列:(nwxnh)阵列d

用于当前块的亮度信号和色度信号的索引:cidx

-如果cidx为0,则这意味着亮度信号。如果cidx为1或者cidx为2,则这意味着色度信号。此外,如果cidx为1,则这意味着色度信号中的cb。如果cidx为2,则这意味着色度信号中的cr。

在该情况下,输出如下。

通过对缩放变换系数进行逆变换而获得的残差信号的阵列:(nwxnh)阵列r

如果用于当前块的编码模式“predmode”是帧内预测模式“intra”并且log2(nw*nh)的值为4,则取决于用于亮度信号的帧内预测方向模式来使用根据表格14的参数horiztrtype和verttrtype。在色度信号的情况下,取决于用于色度信号的帧内预测方向模式,来使用根据表格14的参数horiztrtype和verttrtype。如果用于色度信号的编码模式是intra_fromluma(lm),则取决于用于亮度信号的帧内预测方向模式来使用根据表格14的参数horiztrtype和verttrtype。如果用于色度信号的编码模式不是intra_fromluma(lm),则将参数horiztrtype和verttrtype设置为0。

<表格14>

使用参数horiztrtype和verttrtype值对缩放变换系数执行逆变换处理。首先,接收当前块的尺寸nw和nh以及缩放变换系数阵列“nwxnh阵列d”与参数horiztrtype,沿着水平方向执行1-d逆变换,并且作为1-d逆变换的结果输出阵列“nwxnh阵列e”。

接下来,接收阵列“nwxnh阵列e”,并且使用该阵列如同等式15中那样导出阵列“nwxnh阵列g”。

<等式15>

gij=clip3(-32768,32767,(eij+64)>>7)

接下来,接收当前块的尺寸nw和nh以及阵列“nwxnh阵列g”以及参数verttrtype,并沿着垂直方向执行1-d逆变换。

接下来,如同等式16中那样基于cidx来设置用于残差信号的阵列“nwxnh阵列r”。

<等式16>

rij=(fij+(1<<(shift-1)))>>shift

这里,当cidx为0时,shift=20–bitdepthy。当cidx不为0时,shift=20–bitdepthc。bitdepth指示用于当前画面的样本的比特的数目(例如,8比特)。

能取决于所有块的尺寸、cu深度或tu深度,而将上述方法不同地应用到应用范围。

用来确定上述应用范围的参数(即,关于尺寸或深度的信息)可设置为使得在编码器和解码器中使用预定值,或者可取决于分布或电平来使用预定值。例如,当编码器将参数值写入比特流中时,解码器可从比特流获得值并使用该值。

如果该应用范围取决于cu深度而不同,则能如表格15图示的那样使用以下3种方法之一:仅向等于或大于特定深度的深度应用该应用范围的方法a)、仅向等于或小于特定深度的深度应用该应用范围的方法b)、和仅向特定深度应用该应用范围的方法c)。

表格15示出了确定应用范围的方法的示例,其中当特定cu(或tu)深度为2时,应用本发明的方法。在表格15中,“o”指示将该应用范围施加到对应深度,并且“x”指示不将该应用范围施加到对应深度。

<表格15>

如果本发明的方法没有应用到所有深度,则其可使用特定指示符(或标记)来指示,或者可通过用信号传送比cu深度的最大值大1的值、用作指示应用范围的cu深度值来表示。

此外,上述方法也能应用到其中亮度信号和色度信号具有不同分辨率的情况。

例如,假设色度信号的尺寸是亮度信号的尺寸的1/4(例如,亮度信号具有416x240尺寸而色度信号具有208x120尺寸),则亮度信号8x8块等于色度信号4x4块。

图22示出了亮度块和色度块之间的分辨率的差别的示例。图22的示例图示了亮度信号是8x8块2210而色度信号是4x4块2220。

在图22的示例中,亮度信号2210能包括四个4x4块,并且每一4x4块能具有帧内预测方向模式。相反,色度信号2220可以不被分区为2x2块。

在该情况下,色度信号能具有用于4x4块的一种帧内预测方向模式。这里,如果色度信号已在intra_fromluma(lm)中编码(或者如果色度信号已在dm中编码(即,当将用于亮度信号的帧内预测方向模式没有改变地用作用于色度信号的帧内预测方向模式时)),能使用四个4x4块之一作为用来导出用于色度信号的残差画面的频率变换方法的用于亮度信号的帧内预测方向模式。

为了向色度信号的残差画面选择性应用频率变换方法,能按照各种方式向导出帧内预测方向的方法应用以下1到4之一。

1.能使用亮度信号块的左上块中的帧内预测方向模式。

2.能使用亮度信号块的右上、左下、或右下块中的帧内预测方向模式。

3.能使用四个亮度信号块的平均值或中值。

4.能使用利用用于当前块的四个亮度信号块和当前块附近的色度信号块的帧内预测方向模式的平均值或中值。

另外,能使用各种方法来导出用于色度信号的帧内预测方向模式。

图23是图示了亮度块和色度块之间的分辨率的差别的另一示例。

如同图23的示例中那样,亮度信号2310能包括一个16x16块并且能具有一个帧内预测模式。相反,色度信号2320能被分区为四个4x4块。这里,每一4x4块能具有帧内预测方向模式。

这里,如果色度信号已在intra_fromluma(lm)中编码(或者如果色度信号已在dm中编码(即,当将用于亮度信号的帧内预测方向模式没有改变地用作用于色度信号的帧内预测方向模式时)),能使用用于一个亮度信号的帧内预测方向模式来导出用于每一色度信号的残差画面的频率变换方法。在另一实施例中,为了导出用于色度信号块的残差画面的频率变换方法,可从与当前块邻近的块(即,亮度块或色度块)导出帧内预测方向模式并使用。

此外,能取决于亮度块的尺寸将上述方法不同地应用到色度块。此外,能将上述方法不同地应用到亮度信号画面和色度信号画面。此外,能将频率变换方法单独应用到水平方向和垂直方向。

表格16示意性图示了这些方法的组合。

<表格16>

在表格16的修改的方法中,下面描述方法“g1”。如果亮度块的尺寸是8(8x8,8x4,2x8,等)并且色度块的尺寸是4(4x4,4x2,2x4),则能将该说明书的实施例1(g1-实施例1)、实施例2-1、实施例2-2(g1-实施例2-1或实施例2-2)、以及实施例3(g1-实施例3)应用到亮度信号、色度信号、水平信号、和垂直信号。

在表格16的修改的方法中,下面描述方法“l2”。如果亮度块的尺寸是16(16x16,8x16,4x16,等)并且色度块的尺寸是4(4x4,4x2,2x4),则能将实施例1(l2-实施例1)、实施例2-1或实施例2-2(l2-实施例2-1或实施例2-2)、以及实施例3(l2-实施例3)应用到亮度信号、色度信号和水平信号,并且可以不应用到垂直信号。

这里,除了其中已在“intra_fromluma”(lm)中编码了当前色度块的情况之外,上述方法能应用到各种情况,诸如下面的1和2。

1.在预测色度块时,上述方法能应用到将重构的亮度信号块与权重相乘并向相乘结果添加偏移的所有方法。

2.在预测色度块时,上述方法能应用到使用重构的亮度信号和色度信号块之间的模板偏移来预测色度块的所有方法。这里,使用模板偏移来导出亮度信号和色度信号之间的相关性。

另外,能按照各种方式来应用上述方法。

[实施例6]用于综合确定色度信号的频率变换方法和扫描方法的方法和设备

如上所述,用于色度信号的残差信号(或残差画面)的扫描方法能取决于用于色度信号的帧内预测方向模式而不同。

此外,用于色度信号的残差信号(或残差画面)的频率变换方法能取决于用于色度信号的帧内预测方向模式而不同。

用于色度信号的残差信号(或残差画面)的扫描方法能取决于用于色度信号的残差信号的频率变换方法而具有不同编码效率。相反,可以说用于色度信号的残差信号(或残差画面)的扫描方法和频率变换方法具有特定相关性,因为这两种方法能取决于用于色度信号的帧内预测方向模式而不同。

即,用于色度信号的残差信号的扫描方法和频率变换方法能具有相关性,并且这两种方法能被综合为最佳组合。因此,能如同表格17中那样综合确定实施例1和实施例2-1/实施例2-2中的用于色度信号的扫描方法、以及实施例3、实施例4和实施例5的频率变换方法。

表格17示出了根据本实施例的综合确定用于色度信号的残差信号的扫描方法和频率变换方法的方法的示例

<表格17>

表格17示出了综合确定用于色度信号的残差信号的扫描方法和频率变换方法的方法的组合。这里,em、dm和lm示出了编码用于色度信号的帧内预测方向模式的方法。

通过向用于色度信号的帧内预测方向模式没有改变地应用用于亮度信号的帧内预测方向模式而导出的色度信号的模式是导出模式(dm)。其中帧内预测方向模式被实际编码的用于色度信号的模式是显式模式(em)。在em中编码的色度信号的帧内预测方向模式包括平面模式planar、平均模式dc、水平模式hor、垂直模式ver、和位于垂直方向中的第八位置处的模式(即,ver+8或第34号模式)。

最后,其中从重构的亮度信号预测色度信号的模式是intra_fromluma(lm)。

下面描述“a”,即表格17的组合的示例。为了确定用于色度信号的频率变换方法,仅使用用于色度信号的帧内预测方向模式之中的em和lm,但是不使用dm。使用em和lm来确定频率变换方法(例如,实施例3、4、5)。接下来,为了确定用于变换系数的扫描方法,使用用于色度信号的帧内预测方向模式之中的em和dm来确定扫描方法(例如,实施例1和2)。

在该情况下,通过考虑编码效率,可排除其中使用用于色度信号的帧内预测方向模式之中的dm来导出频率变换方法的情况。例如,在其中在dm中执行编码的情况下,如果用于色度信号的帧内预测方向模式与用于亮度信号的帧内预测方向模式不同、并且在em中不存在用于色度信号的帧内预测方向模式(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、和位于垂直方向中的第八位置处的模式(即,ver+8或第34号模式)),则用于dm中编码的色度信号的帧内预测方向模式的精度可恶化,因为在dm中不可避免地编码色度信号。为此原因,可以不使用dm来确定频率变换方法。

下面描述“d”,即表格17的组合的另一示例。为了确定用于色度信号的频率变换方法,仅使用用于色度信号的帧内预测方向模式之中的em和lm,但是不使用dm。使用em和lm来确定频率变换方法(例如,实施例3、4、5)。接下来,为了确定用于变换系数的扫描方法,使用用于色度信号的帧内预测方向模式之中的所有em、dm和lm来确定扫描方法(例如,实施例1和2)。

在该情况下,通过考虑编码效率,可包括其中使用用于色度信号的帧内预测方向模式之中的lm来导出扫描方法的情况。如结合实施例1和2描述的,lm中编码的色度信号能和亮度信号具有相关性。因此,lm中编码的色度信号的帧内预测方向模式能和亮度信号的帧内预测方向模式几乎相同。结果,能使用lm中编码的色度信号的帧内预测方向模式来确定扫描方法,因为色度信号的帧内预测方向模式和亮度信号的帧内预测方向模式具有类似特性。

下面描述“t”,即表格17的组合的另一示例。为了确定用于色度信号的频率变换方法,使用用于色度信号的帧内预测方向模式之中的所有em、dm和lm。使用em、dm和lm来确定频率变换方法(例如,实施例3、4和5)。接下来,为了确定用于变换系数的扫描方法,使用用于色度信号的帧内预测方向模式之中的所有em、dm和lm来确定扫描方法(例如,实施例1和2)。

作为表格17的组合的另一示例,如果修改“t”方法,则能使用用于色度信号的帧内预测方向模式之中的em、dm和lm来确定用于色度信号的频率变换方法。这里,仅当em、dm和lm中的用于真实和重构的色度信号的帧内预测方向模式是em时(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、或位于垂直方向中的第八位置处的模式(ver+8或第34号模式)),能确定频率变换方法(例如,实施例3、4和5)。此外,能使用所有em、dm和lm来确定用于变换系数的扫描方法。这里,仅当em、dm和lm之中的用于真实和重构的色度信号的帧内预测方向模式是em时(例如,平面模式planar、平均模式dc、水平模式hor、垂直模式ver、或位于垂直方向中的第八位置处的模式(ver+8或第34号模式)),能使用扫描方法(例如,实施例1和2)。

[实施例7]用于综合用于确定用于色度信号的频率变换方法和扫描方法的表格的方法和设备

可以说,用于色度信号的残差信号(或残差画面)的扫描方法和频率变换方法具有紧密相关性,因为这两种方法能够取决于用于色度信号的帧内预测方向模式而不同。

所以,在本实施例中,用来确定这两种方法的表格能取决于帧内预测方向模式而综合并使用。

表格18示出了根据本实施例的基于帧内预测方向模式而导出的频率变换方法和扫描方法的示例。

<表格18>

此外,表格19示出了根据本实施例的基于帧内预测方向模式而导出的频率变换方法和扫描方法的另一示例。

<表格19>

表格20示出了根据本实施例的基于帧内预测方向模式而导出的频率变换方法和扫描方法的另一示例。

<表格20>

表格21示出了根据本实施例的基于帧内预测方向模式而导出的频率变换方法和扫描方法的另一示例。

<表格21>

表格18到21示出了其中综合基于帧内预测方向模式而导出的频率变换方法和扫描方法的表格的示例。

例如,参考表格19,如果帧内预测方向模式是2~5,则将dst用作垂直和水平频率变换方法,并且将右上对角扫描diag用作扫描方法。如果帧内预测方向模式是6~14,则使用dct作为垂直频率变换方法,使用dst作为水平频率变换方法,并使用ver(即,垂直)作为扫描方法。

如果帧内预测方向模式是15~21,则使用dst作为垂直和水平频率变换方法并且使用diag(即,右上对角扫描)作为扫描方法。如果帧内预测方向模式是22~30,则使用dst作为垂直频率变换方法,使用dct作为水平频率变换方法,并且使用hor(即,水平)作为扫描方法。

如果帧内预测方向模式是31~34,则使用dst作为垂直和水平频率变换方法并且使用diag(即,右上对角)作为扫描方法。

如果如同表格19基于帧内预测方向模式考虑频率变换方法和扫描方法,则存在的优点在于,能取决于ver和hor实现统一,与表格18不同。

这里,除了其中已在lm(intra_fromluma)中编码了当前色度块的情况之外,上述方法也能应用到下面的情况1或2。

1.在预测色度块时,上述方法能应用到将重构的亮度信号块与权重相乘并向相乘结果添加偏移的所有方法

2.在预测色度块时,上述方法能应用到使用用于重构的亮度信号和色度信号块的模板偏移、来预测色度块的所有方法。这里,使用模板偏移来导出亮度信号和色度信号之间的相关性。

另外,能按照各种方式来应用上述方法。

图24示出了根据本发明的编码设备的另一示例。

参考图24,编码设备2400包括预测模式规定模块2410和扫描模块2420。

预测模式规定模块2410规定向当前块应用的预测模式。例如,预测模式规定模块2410能规定已向当前块的亮度样本和/或色度样本应用的帧内预测模式。

这里,预测模式规定模块2410可被放置在图1的帧内预测模块之前,并被配置为规定要向当前块应用的预测模式,或者可被放置在帧内预测模块之后,并被配置为输出指示向当前块应用的帧内预测模式的信息。

帧内预测模式与参考图6描述的相同。

扫描模块2420能扫描当前块的色度信号和/或亮度信号。这里,扫描模块2420能响应于用于当前块的帧内预测模式来确定要向当前块应用的扫描类型。

已结合该说明书的实施例详细描述了确定要向当前块应用的扫描类型(或方法)的详细方法。

图25示出了根据本发明的解码设备的另一示例。

参考图25,解码设备2500包括预测模式规定模块2510和扫描模块2520。

预测模式规定模块2510规定向当前块应用的预测模式。例如,预测模式规定模块2510能规定向当前块的亮度样本和/或色度样本应用的帧内预测模式。

帧内预测模式与参考图6描述的相同。

扫描模块2520能扫描当前块的色度样本和/或亮度样本。这里,扫描模块2520能响应于用于当前块的帧内预测模式来确定要向当前块应用的扫描类型。

已结合该说明书的实施例详细描述了确定要向当前块应用的扫描类型(或方法)的详细方法。

在以上示范系统中,尽管已基于一连串步骤或块的形式的流程图描述了这些方法,但是本发明不限于这些步骤的顺序,并且一些步骤可按照与其他步骤不同的次序来执行,或者能与其他步骤同时执行。此外,前述实施例包括各种示例。例如,一些实施例的组合应也被理解为本发明的实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1