CN116806427A - 用于基于偏移的修正和多参考行选择的协调设计 - Google Patents
用于基于偏移的修正和多参考行选择的协调设计 Download PDFInfo
- Publication number
- CN116806427A CN116806427A CN202280012073.5A CN202280012073A CN116806427A CN 116806427 A CN116806427 A CN 116806427A CN 202280012073 A CN202280012073 A CN 202280012073A CN 116806427 A CN116806427 A CN 116806427A
- Authority
- CN
- China
- Prior art keywords
- block
- intra
- prediction
- intra prediction
- offset correction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 69
- 238000013461 design Methods 0.000 title description 4
- 238000000034 method Methods 0.000 claims abstract description 101
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000004891 communication Methods 0.000 claims abstract description 17
- 239000000758 substrate Substances 0.000 claims 1
- 239000000523 sample Substances 0.000 description 62
- 230000033001 locomotion Effects 0.000 description 38
- 230000006835 compression Effects 0.000 description 28
- 238000007906 compression Methods 0.000 description 28
- 239000013598 vector Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 18
- 239000000872 buffer Substances 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 241000023320 Luma <angiosperm> Species 0.000 description 13
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000013139 quantization Methods 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 230000011664 signaling Effects 0.000 description 7
- 239000013074 reference sample Substances 0.000 description 6
- 208000014651 Meester-Loeys syndrome Diseases 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101150114515 CTBS gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Abstract
用于视频解码中的帧内预测和多参考行帧内预测的偏移修正的方法、装置和计算机可读存储介质。该方法包括由设备接收块的已编码视频码流,所述设备包括存储指令的存储器和与所述存储器通信的处理器。所述方法还包括基于所述块的模式信息,由所述设备确定是否将用于帧内预测的偏移修正应用于所述块,所述块的所述模式信息包括以下各项中的至少一项:所述块的参考行索引、所述块的帧内预测模式和所述块的大小;以及响应于确定将用于帧内预测的所述偏移修正应用于所述块,由所述设备执行所述偏移修正以生成用于所述块的帧内预测的帧内预测器。
Description
相关申请
本申请基于并要求于2021年6月30日提交的美国临时申请第63/217,061号和于2022年1月12日提交的美国非临时申请第17/573,823号的优先权,这两个申请通过引用整体并入本文。
技术领域
本公开涉及视频编码和/或解码技术,并且具体涉及基于偏移的修正和多参考行选择的改进设计和信令。
背景技术
本文所提供的背景描述旨在整体呈现本申请的背景。在背景技术部分以及本说明书的各个方面中所描述的目前已署名的发明人的工作所进行的程度,并不表明其在本申请提交时作为现有技术,且从未明示或暗示其被承认为本申请的现有技术。
可以使用具有运动补偿的帧间图片预测来进行视频编码和解码。未压缩的数字视频可包括一系列图片,每个图片具有例如1920×1080亮度样本及相关的全采样或子采样色度样本的空间维度。所述系列图片具有固定的或可变的图片速率(或者称为帧率),例如每秒60个图片或每秒60帧。未压缩的视频具有特定的比特率要求。例如,具有像素分辨率为1920×1080,帧速率为60帧/秒,以及色度子采样为4:2:0,以每个像素每个颜色通道8比特的视频需要接近1.5Gbit/s的带宽。一小时的此类视频需要超过600GB的存储空间。
视频编码和解码的一个目的,是通过压缩减少未压缩输入视频信号的冗余信息。视频压缩可以帮助降低对上述带宽和/或存储空间的要求,在某些情况下可降低两个或更多数量级。无损压缩和有损压缩,以及两者的组合均可采用。无损压缩是指经由解码过程,从压缩的原始信号中重建原始信号精确副本的技术。有损压缩是指原始视频信息在编码期间未被完全保留并且在解码期间不可完全恢复的编码/解码过程。当使用有损压缩时,重建信号可能与原始信号不同,但是原始信号与重建信号之间的失真小到足以使重建信号可用于预期应用,尽管一些信息损失。就视频而言,有损压缩广泛用于许多应用中。可容许失真量取决于应用。例如,某些消费视频流应用的用户可以容许比电影或电视广播应用的用户更高的失真。可以选择或调整通过特定编码算法可实现的压缩比以反映各种失真容限:较高的可容许失真通常允许产生较高损失和较高压缩比的编码算法。
视频编码器和解码器可以利用来自若干广泛类别和步骤的技术,包括例如运动补偿、傅立叶变换、量化以及熵编码。
视频编解码器技术可包括已知的帧内编码技术。在帧内编码中,在不参考先前重建的参考图片的样本或其它数据的情况下表示样本值。在一些视频编解码器中,图片在空间上被细分为样本块。当所有的样本块都以帧内模式编码时,该图片可以被称为帧内图片。帧内图片及其衍生(例如独立解码器刷新图片)可用于复位解码器状态,并且因此可用作编码视频比特流和视频会话中的第一图片,或用作静止图像。然后,可以将帧内预测后的块的样本变换到频域,并且可以在熵编码之前对如此生成的变换系数进行量化。帧内预测表示使预变换域中的样本值最小化的技术。在一些情况下,变换后的DC值越小,并且AC系数越小,则在给定的量化步长尺寸下需要越少的比特来表示熵编码之后的块。
如同从诸如MPEG-2代编码技术中所获知的,传统帧内编码不使用帧内预测。然而,一些较新的视频压缩技术包括:尝试基于例如周围样本数据和/或元数据对块进行编码/解码,该周围样本数据和/或元数据是在空间相邻的编码和/或解码期间获得的,并且在解码顺序上先于正在帧内编码或解码的数据块。此类技术此后被称为“帧内预测”技术。注意,在至少一些情况下,帧内预测仅使用来自重建中的当前图片的参考数据,而不使用来自其它参考图片的参考数据。
可以有许多不同形式的帧内预测。当在给定视频编码技术中可获得多于一种此类技术时,所使用的技术可以被称为帧内预测模式。可以在特定编解码器中提供一个或多个帧内预测模式。在某些情况下,模式可以具有子模式和/或可以与各种参数相关联,并且用于视频块的模式/子模式信息和帧内编码参数可以包含在模式码字中,可以单独或共同编码。对于给定模式、子模式和/或参数组合,使用哪个码字可以通过帧内预测对编码效率增益产生影响,并且用于将码字转换为码流的熵编码技术也同样如此。
帧内预测的某种模式与H.264一起被引入,在H.265中被修正,并且在诸如联合探测模式(JEM)、通用视频编码(VVC)和基准集(BMS)的较新的编码技术中被进一步修正。通常,对于帧内预测,可以使用已变得可用的相邻样本值来形成预测器块。例如,可以将沿着特定方向和/或行的特定相邻样本集的可用值,复制到预测器块中。对使用方向的参考可以在码流中编码,或者本身可以被预测。
参考图1A,在右下方描绘的是在H.265的33个可能的帧内预测器方向(对应于在H.265中指定的35个帧内模式的33个角度模式)中指定的9个预测器方向的子集。箭头会聚的点(101)表示正在被预测的样本。箭头表示使用相邻样本预测101处的样本所根据的方向。例如,箭头(102)指示根据与水平方向成45度角的右上方的一个或多个相邻样本,预测样本(101)。类似地,箭头(103)指示根据与水平方向成22.5度角的样本(101)左下方的一个或多个相邻样本,预测样本(101)。
仍然参考图1A,在左上方示出了一个包括4×4个样本的正方形块(104)(由粗虚线表示)。正方形块(104)由16个样本组成,每个样本用“S”、以及其在Y维度(例如,行索引)上的位置和在X维度(例如,列索引)上的位置来标记。例如,样本S21是Y维度上的第二个样本(从顶部开始)和X维度上的第一个(从左侧开始)样本。类似地,样本S44在Y维度和X维度上都是块(104)中的第四个样本。由于该块为4×4尺寸的样本,因此S44位于右下角。还示出了遵循类似编号方案的示例参考样本。参考样本用"R"、以及其相对于块(104)的Y位置(例如,行索引)和X位置(例如,列索引)来标记。在H.264和H.265中,使用与重建中的块邻近地相邻预测样本。
块104的图片内预测可以通过根据用信号通知的预测方向,从相邻样本复制参考样本值来开始。例如,假设已编码视频码流包括信令,对于该块104,该信令指示箭头(102)的预测方向——也就是说,根据与水平方向成45度角的右上方的一个或多个预测样本来预测样本。在此类情况下,根据相同的参考样本R05来预测样本S41、S32、S23和S14。然后根据参考样本R08预测样本S44。
在某些情况下,例如通过插值,可以合并多个参考样本的值,以便计算参考样本,尤其是当方向不能被45度整除时。
随着视频编码技术不断发展,可能方向的数量增加。例如,在H.264(2003年)中,9个不同的方向可用于帧内预测。这在H.265(2013年)中增加到33个,并且JEM/VVC/BMS在本公开时可以支持多达65个方向。已经进行了实验研究来帮助识别最适合的帧内预测方向,并且可以使用熵编码中的某些技术来以少量比特对那些最适合的方向进行编码,接受用于方向的某些比特代价。此外,方向本身有时可以根据用于已经解码的相邻块的帧内预测的相邻方向来进行预测。
图1B示出了根据JEM描绘65个帧内预测方向的示意图(180),以说明随着时间的推移各种编码技术中预测方向的数量增加。
用于将表示帧内预测方向的比特映射到已编码视频码流中的预测方向的方式可以随不同的视频编码技术而变化;并且可以例如从预测方向到帧内预测模式、到码字、到涉及最可能模式的复杂自适应方案和类似技术的简单直接映射。然而,在所有情况下,在视频内容中可能存在比某些其它方向在统计上更不可能出现的用于帧内预测的某些方向。由于视频压缩的目标是减少冗余,在精心设计的视频编码技术中,那些更不可能的方向将可以由比更可能的方向更大的比特数来表示。
图片间预测或帧间预测可以基于运动补偿。在运动补偿中,来自先前重建的图片或其部分(参考图片)的样本数据在由运动矢量(以下为MV)指示的方向上空间移位之后可以用于新重建的图片或图片部分(例如,块)的预测。在一些情况下,参考图片可以与当前重建中的图片相同。MV可以具有二维X和Y,或三维,其中第三维是使用中的参考图片的指示(近似时间维)。
在一些视频压缩技术中,可应用于样本数据的某一区域的当前MV可以从其它MV中预测,例如从与空间上邻近重建中区域的样本数据的其它区域相关的并且在解码顺序上先于当前MV的那些其它MV中预测。这样做可以通过依赖于去除相关MV中的冗余来显著减少编码MV所需的总数据量,从而增加压缩效率。MV预测可以有效地执行,例如,因为当对从照相机导出的输入视频信号(称为自然视频)进行编码时,存在比单个MV适用的区域大的区域在视频序列中沿类似方向移动的统计可能性。因此,在一些情况下可以使用从相邻区域的MV导出的类似运动矢量来预测。这导致给定区域的实际MV与从周围MV预测的MV类似或相同。在熵编码之后,此类MV又可以用比如果直接编码MV而不是从一个或多个相邻MV预测所使用的比特数更少的比特数来表示。在一些情况下,MV预测可以是从原始信号(即:样本流)导出的信号(即:MV)的无损压缩的示例。在其它情况下,MV预测本身可能是有损的,例如由于当从若干周围MV计算预测值时的舍入误差。
H.265/HEVC(ITU-T H.265建议书,“高效视频编解码(High Efficiency VideoCoding)”,2016年12月)中描述了各种MV预测机制。在H.265指定的多种MV预测机制中,本申请描述的是下文称作“空间合并”的技术。
请参考图2,当前块(201)包括在运动搜索过程期间已由编码器发现的样本,根据已产生空间偏移的相同尺寸的先前块,可预测所述样本。另外,可从一个或多个参考图片相关联的元数据中导出所述MV,而非对MV直接编码。例如,使用关联于A0、A1和B0、B1、B2(分别对应202到206)五个周围样本中的任一样本的MV,(按解码次序)从最近的参考图片的元数据中导出所述MV。在H.265中,MV预测可使用相邻块也使用的相同参考图片的预测值。
发明内容
本公开描述视频编码和/或解码的方法、装置和计算机可读存储介质的各种实施例。
根据一个方面,本公开的实施例提供了一种用于在视频解码中帧内预测和多参考行帧内预测的偏移修正的方法。该方法包括由设备接收块的已编码视频码流,所述设备包括存储指令的存储器和与所述存储器通信的处理器。所述方法还包括基于所述块的模式信息,由所述设备确定是否将用于帧内预测的偏移修正应用于所述块,所述块的所述模式信息包括以下各项中的至少一项:所述块的参考行索引、所述块的帧内预测模式和所述块的大小;以及响应于确定将用于帧内预测的所述偏移修正应用于所述块,由所述设备执行所述偏移修正以生成用于所述块的帧内预测的帧内预测器。根据另一个方面,本公开的实施例提供了
根据另一方面,本公开的实施例提供一种用于视频编码和/或解码的装置。该装置包括存储指令的存储器;以及与该存储器通信的处理器。当处理器执行指令时,该处理器被配置为使该装置执行用于视频解码和/或编码的以上方法。
在另一方面中,本公开的实施例提供存储指令的非易失性计算机可读介质,这些指令在由计算机执行以用于视频解码和/或编码时使计算机执行以上视频解码和/或编码的方法。
在附图、说明书和权利要求中更详细地描述了以上方面和其它方面及其实施方案。
附图说明
从以下详细描述和附图中,所公开的主题的其它特征、性质以及各种优点将更加明显。
图1A示出了帧内预测定向模式的示例性子集的示意图。
图1B示出了示例性帧内预测方向的图示。
图2示出了在一个示例中当前块及其周围用于运动矢量预测的空间合并候选的示意图。
图3示出了根据示例实施例的通信系统(300)的简化框图的示意图。
图4示出了根据示例实施例的通信系统(400)的简化框图的示意图。
图5示出了根据示例实施例的视频解码器的简化框图的示意图。
图6示出了根据示例实施例的视频编码器的简化框图的示意图。
图7示出了根据另一示例实施例的视频编码器的框图。
图8示出了根据另一示例实施例的视频解码器的框图。
图9示出了根据本公开的示例实施例的定向帧内预测模式。
图10示出了根据本公开的示例实施例的非定向帧内预测模式。
图11示出了根据本公开的示例实施例的递归帧内预测模式。
图12示出了根据本公开的示例实施例的基于各种参考线的帧内预测方案。
图13示出了根据本公开的示例实施例的用于帧内预测的基于偏移的修正。
图14A示出了根据本公开的示例实施例的用于帧内预测的基于偏移的修正的另一示意图。
图14B示出了根据本公开的示例实施例的用于帧内预测的基于偏移的修正的另一示意图。
图15示出了根据本公开的示例实施例的方法的流程图。
图16示出了根据本公开的示例实施例的计算机系统的示意图。
具体实施方式
现在将在下文中参考附图详细描述本发明,附图形成本发明的一部分,并且该附图通过图示的方式示出了实施例的具体示例。然而,请注意,本发明可以以各种不同的形式来体现,并且因此,所覆盖的或要求保护的主题旨在被解释为不限于以下将阐述的任何实施例。还请注意,本发明可以体现为方法、设备、部件或系统。因此,本发明的实施例可以例如采取硬件、软件、固件或其任何组合的形式。
在整个说明书和权利要求中,术语可以具有超出明确陈述的含义的上下文中所建议或暗示的微妙含义。如本文所使用的短语“在一个实施例中”或“在一些实施例中”不一定指相同实施例,并且如本文所使用的短语“在另一实施例中”或“在其它实施例中”不一定指不同实施例。同样,如本文所使用的短语“在一个实施方案中”或“在一些实施方案中”不一定指相同实施方案,并且如本文所使用的短语“在另一实施方案中”或“在其它实施方案中”不一定指不同实施方案。例如,所要求保护的主题旨在包括示例性实施例/实施方案的全部或部分的组合。
一般而言,术语可以至少部分地根据上下文中的使用来理解。例如,如本文所使用的术语诸如“和”、“或”、或者“和/或”可以包括多种含义,其可以至少部分取决于使用此类术语的上下文。通常,“或”如果用于关联列表,诸如A、B或C,则旨在意指A、B和C,在此以包括性意义使用,以及A、B或C,在此以排他性意义使用。此外,本文所使用的术语“一个或多个”或“至少一个”,至少部分地取决于上下文,可以用于以单数意义描述任何特征、结构或特性,或可以用于以复数意义描述特征、结构或特性的组合。类似地,术语,诸如“一个(a)”、“一种(an)”或“该”,同样可以被理解为表达单数用法或表达复数用法,这至少部分地取决于上下文。此外,术语“基于”或“由……确定”可以被理解为不一定旨在表达因素的排他集,而是可以允许存在不一定再次明确描述的附加因素,这至少部分地取决于上下文。
图3是根据本申请公开的实施例的通信系统(300)的简化框图。通信系统(300)包括多个终端装置,所述终端装置可通过例如网络(350)彼此通信。举例来说,通信系统(300)包括通过网络(350)互连的第一对终端装置(310)和(320)。在图3的实施例中,第一对终端装置(310)和(320)执行单向数据传输。举例来说,终端装置(310)可对视频数据(例如由终端装置(310)采集的视频图片流)进行编码以通过网络(350)传输到另一个终端装置(320)。已编码的视频数据以一个或多个已编码视频码流形式传输。终端装置(320)可从网络(350)接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。
在另一实施例中,通信系统(300)包括执行已编码视频数据的双向传输的第二对终端装置(330)和(340),所述双向传输可例如在视频会议期间实施。对于双向数据传输,终端装置(330)和终端装置(340)中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络(350)传输到终端装置(330)和终端装置(340)中的另一终端装置。终端装置(330)和终端装置(340)中的每个终端装置还可接收由终端装置(330)和终端装置(340)中的另一终端装置传输的已编码视频数据,且可对所述已编码视频数据进行解码以恢复视频数据,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图3的实施例中,终端装置(310)、终端装置(320)、终端装置(330)和终端装置(340)可为服务器、个人计算机和智能电话,但本申请公开的基本原理的适用范围不限于此。本申请公开的实施例适用于桌上型计算机、膝上型计算机、平板电脑、媒体播放器、可穿戴计算机、专用视频会议设备等。网络(350)表示在终端装置(310)、终端装置(320)、终端装置(330)和终端装置(340)之间传送已编码视频数据的任何数目或类型的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(350)可在电路交换、分组交换和/或其他类型信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在本文中有明确解释,否则网络(350)的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
作为实施例,图4示出视频编码器和视频解码器在视频流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它视频的应用,包括例如视频会议、数字TV广播、游戏、虚拟现实、在包括CD、DVD、存储棒等的数字介质上的压缩视频存储等等。
视频流式传输系统可包括采集子系统(413),所述采集子系统可包括例如数码相机等视频源(401),以创建例如未压缩的视频图片或图像流(402)。在实施例中,视频图片流(402)包括由视频源401的数码相机记录的样本。相较于已编码的视频数据(404)(或已编码的视频码流),未压缩的视频图片流(402)被描绘为粗线以强调高数据量的视频图片流,视频图片流(402)可由电子装置(420)处理,所述电子装置(420)包括耦接到视频源(401)的视频编码器(403)。视频编码器(403)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于未压缩的视频图片流(402),已编码的视频数据(404)(或已编码的视频码流(404))被描绘为细线以强调较低数据量的已编码的视频数据(404)(或已编码的视频码流(404)),其可存储在流式传输服务器(405)上,以供将来使用或者直接用于下游视频设备(未示出)。一个或多个流式传输客户端子系统,例如图4中的客户端子系统(406)和客户端子系统(408),可访问流式传输服务器(405)以检索已编码的视频数据(404)的副本(407)和副本(409)。客户端子系统(406)可包括例如电子装置(430)中的视频解码器(410)。视频解码器(410)对已编码的视频数据的传入副本(407)进行解码,且产生可在显示器(412)(例如显示屏)或另一呈现装置(未描绘)上呈现的未压缩的输出视频图片流(411)。视频解码器410可配置为执行本公开中所述的各种功能的部分或全部功能。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据(404)、视频数据(407)和视频数据(409)(例如视频码流)进行编码。该些标准的实施例包括ITU-T H.265。在实施例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile VideoCoding,VVC),本申请可用于VVC标准和其他视频编码标准的上下文中。
应注意,电子装置(420)和电子装置(430)可包括其它组件(未示出)。举例来说,电子装置(420)可包括视频解码器(未示出),且电子装置(430)还可包括视频编码器(未示出)。
图5是根据本申请下面公开的实施例的视频解码器(510)的框图。视频解码器(510)可设置在电子装置(530)中。电子装置(530)可包括接收器(531)(例如接收电路)。视频解码器(510)可用于代替图4实施例中的视频解码器(410)。
接收器(531)可接收将由视频解码器(510)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次解码一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列。每个视频序列可以与多个视频帧或图像相关联。可从信道(501)接收已编码视频序列,所述信道可以是通向存储已编码的视频数据的存储装置或者传输已编码视频数据的流式源的硬件/软件链路。接收器(531)可接收已编码的视频数据以及其它数据,例如,可转发到它们各自的处理电路(未标示)的已编码音频数据和/或辅助数据流。接收器(531)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(515)可配置在接收器(531)与熵解码器/解析器(520)(此后称为“解析器(520)”)之间。在某些应用中,缓冲存储器(515)可以实施为视频解码器(510)的一部分。在其它应用中,所述缓冲存储器(515)可设置在视频解码器(510)外部并与视频解码器(510)分离(未标示)。而在其它应用中,视频解码器(510)的外部设置缓冲存储器(未标示),以例如防止网络抖动,在视频解码器(510)的内部可以存在另一缓冲存储器(515)以例如处理播出定时。而当接收器(531)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(515),或可以将所述缓冲存储器做得较小。当然,为了在互联网等业务分组网络上使用,可能需要足够尺寸的缓冲存储器(515),所述缓冲存储器可相对较大。这种缓冲存储器可具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(510)外部的类似元件(未标示)中。
视频解码器(510)可包括解析器(520)以根据已编码视频序列重建符号(521)。这些符号的类别包括用于管理视频解码器(510)的操作的信息,以及用以控制显示装置(512)(例如,显示屏)等显示装置的潜在信息,所述显示装置可能是或可能不是电子装置(530)的组成部分,但可耦接到电子装置(530),如图5中所示。用于显示装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)的参数集片段(未标示)。解析器(520)可对由解析器(520)接收到的已编码视频序列进行解析/熵解码。已编码视频序列的熵编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(520)可基于对应于子群的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(CodingUnit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(520)还可从已编码视频序列提取信息,例如变换系数(例如变换系数)、量化器参数值、运动矢量等等。
解析器(520)可对从缓冲存储器(515)接收的视频序列执行熵解码/解析操作,从而创建符号(521)。
取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(521)的重建可涉及多个不同处理或功能单元。涉及哪些单元以及涉及方式可由解析器(520)从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器(520)与下文的多个处理或功能单元之间的此类子群控制信息流。
除已经提及的功能块以外,视频解码器(510)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多功能单元彼此紧密交互并且可以彼此集成。然而,出于清楚描述所公开主题多种功能的目的,在下面的公开中采用了对功能单元的概念细分。
第一单元可以包括缩放器/逆变换单元(551)。缩放器/逆变换单元(551)从解析器(520)接收作为符号(521)的量化变换系数以及控制信息,包括指示使用哪种类型的反变换、块大小、量化因子/参数、量化缩放矩阵等信息。缩放器/逆变换单元(551)可输出包括样本值的块,所述样本值可输入到聚合器(555)中。
在一些情况下,缩放器/逆变换单元(551)的输出样本可属于帧内编码块;例如不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(552)提供。在一些情况下,帧内图片预测单元(552)采用存储在当前图片缓冲器(558)中的已重建周围块信息生成大小和形状与正在重建的块相同的周围块。举例来说,当前图片缓冲器(558)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些实施中,聚合器(555)基于每个样本,将帧内图片预测单元(552)生成的预测信息添加到由缩放器/逆变换单元(551)提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元(551)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(553)可访问参考图片存储器(557)以提取用于帧间图片预测的样本。在根据符号(521)对提取的样本进行运动补偿之后,这些样本可由聚合器(555)添加到缩放器/逆变换单元(551)的输出(单元551的输出被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(553)从参考图片存储器(557)内的地址获取预测样本可受到运动矢量控制,且所述运动矢量以所述符号(521)的形式而供运动补偿预测单元(553)使用,所述符号(521)例如是包括X、Y分量(位移)和参考图片分量(时间)。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(557)提取的样本值的插值,运动补偿也可以与运动矢量预测机制相关联等等。
聚合器(555)的输出样本可在环路滤波器单元(554)中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,所述环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中的参数,且所述参数作为来自解析器(520)的符号(521)可用于环路滤波器单元(556)。然而,在其他实施例中,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。一些类型的环路滤波器可按各种顺序被包括作为环路滤波器单元556的一部分,如下文将进一步详细描述的。
环路滤波器单元(556)的输出可以是样本流,所述样本流可输出到显示装置(512)以及存储在参考图片存储器(557),以用于后续的帧间图片预测。
一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(520))被识别为参考图片,则当前图片缓冲器(558)可变为参考图片存储器(557)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。
视频解码器(510)可根据例如ITU-T H.265标准中采用的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在所述配置文件下可供使用的仅有工具。对于合规性,已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical ReferenceDecoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
在一个实施例中,接收器(531)可连同已编码视频一起接收附加(冗余)数据。所述附加数据可以是已编码视频序列的一部分。所述附加数据可由视频解码器(510)用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。
图6是根据本申请公开的实施例的视频编码器(603)的框图。视频编码器(603)设置于电子装置(620)中。电子装置(620)包括传输器(640)(例如传输电路)。视频编码器(603)可用于代替图4实施例中的视频编码器(403)。
视频编码器(603)可从视频源(601)(并非图6实施例中的电子装置(620)的一部分)接收视频样本,所述视频源可采集将由视频编码器(603)编码的视频图像。在另一实施例中,视频源(601)可以实施为电子装置(620)的一部分。
视频源(601)可提供将由视频编码器(603)编码的呈数字视频样本流形式的源视频序列,所述数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB、XYZ……)和任何合适取样结构(例如Y CrCb 4:2:0、YCrCb 4:4:4)。在媒体服务系统中,视频源(601)可以是能够存储先前已准备的视频的存储装置。在视频会议系统中,视频源(601)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片或图像,当按顺序观看时,这些图片被赋予运动。图片自身可构建为空间像素阵列,其中取决于正在使用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
根据实施例,视频编码器(603)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(643)。施行适当的编码速度是控制器(650)的一个功能。在一些实施例中,控制器(650)控制如下文所描述的其它功能单元且在功能上耦接到这些单元。为了简洁起见,图中未标示耦接。由控制器(650)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(group of pictures,GOP)布局,允许的最大运动矢量搜索范围等。控制器(650)可用于具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。
在一些实施例中,视频编码器(603)在编码环路中进行操作。作为简单的描述,在实施例中,编码环路可包括源编码器(630)(例如,负责基于待编码的输入图片和参考图片创建符号,例如符号流)和嵌入于视频编码器(603)中的(本地)解码器(633)。解码器(633)以类似于(远程)解码器创建样本数据的方式重建符号以创建样本数据,即使嵌入的解码器633在不进行熵编码的情况下通过源编码器630处理已编码视频流(因为在本申请所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(634)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(634)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)用于改进编码质量。
“本地”解码器(633)的操作可与例如已在上文结合图5详细描述视频解码器(510)的“远程”解码器相同。然而,另外简要参考图5,当符号可用且熵编码器(645)和解析器(520)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(515)和解析器(520)在内的视频解码器(510)的熵解码部分,可能无法完全在编码器的本地解码器(633)中实施。
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本申请有时侧重于解码器操作,该解码器操作与编码器的解码部分有关。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。下面仅在某些区域或方面对编码器进行更详细的描述。
在操作期间,在一些实施例中,源编码器(630)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,所述运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(632)对输入图片的颜色通道中像素块与参考图片的像素块之间的差异(残差)进行编码,所述参考图片可被选作所述输入图片的预测参考。
本地视频解码器(633)可基于源编码器(630)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(632)的操作可为有损过程。当已编码视频数据可在视频解码器(图6中未示)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(633)复制解码过程,所述解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(634)中。以此方式,视频编码器(603)可在本地存储重建的参考图片的副本,所述副本与将由远端(远程)视频解码器获得的重建参考图片具有共同内容(不存在传输误差)。
预测器(635)可针对编码引擎(632)执行预测搜索。即,对于将要编码的新图片,预测器(635)可在参考图片存储器(634)中搜索可作为所述新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(635)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器(635)获得的搜索结果,可确定输入图片可具有从参考图片存储器(634)中存储的多个参考图片取得的预测参考。
控制器(650)可管理源编码器(630)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
可在熵编码器(645)中对所有上述功能单元的输出进行熵编码。熵编码器(645)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将所述符号转换成已编码视频序列。
传输器(640)可缓冲由熵编码器(645)创建的已编码视频序列,从而为通过通信信道(660)进行传输做准备,所述通信信道可以是通向将存储已编码的视频数据的存储装置的硬件/软件链路。传输器(640)可将来自视频编码器(603)的已编码视频数据与要传输的其它数据合并,所述其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。
控制器(650)可管理视频编码器(603)的操作。在编码期间,控制器(650)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:
帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。
预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。
双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,所述帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。
源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图片的编码分配来确定所述其它块。举例来说,I图片的块可进行非预测编码,或所述块可参考同一图片的已经编码的块来进行预测编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测编码。为了其他目的,源图片或中间处理的图片可以被细分为其他类型的块。编码块和其他类型的块的划分可以遵循或可以不遵循相同的方式,如下文进一步详细描述的。
视频编码器(603)可根据例如ITU-T H.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(603)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编码技术或标准指定的语法。
在实施例中,传输器(640)可在传输已编码的视频时传输附加数据。源编码器(630)可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其它形式的冗余数据、SEI消息、VUI参数集片段等。
采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在实施例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。所述运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,所述运动矢量可具有识别参考图片的第三维度。
在一些实施例中,双向预测技术可用于帧间图片预测。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去或将来)第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。具体来说,可通过第一参考块和第二参考块的组合来共同预测所述块。
此外,合并模式技术可用于帧间图片预测中以改善编码效率。
根据本申请公开的一些实施例,帧间图片预测和帧内图片预测等预测的执行以块为单位。举例来说,将视频图片序列中的图片分割成编码树单元(coding tree unit,CTU)以用于压缩,图片中的CTU具有相同大小,例如64×64像素、32×32像素或16×16像素。一般来说,CTU包括三个并行的编码树块(coding tree block,CTB):一个亮度CTB和两个色度CTB。更进一步的,还可将每个CTU以四叉树拆分为一个或多个编码单元(coding unit,CU)。举例来说,可将64×64像素的CTU拆分为一个64×64像素的CU,或4个32×32像素的CU。一个或多个32×32块中的每个可以进一步划分成4个16×16像素的CU。在一个实施例中,可以在编码期间分析每个CU以在各种预测类型中确定用于CU的预测类型,各种预测类型例如为帧间预测类型或帧内预测类型。此外,取决于时间和/或空间可预测性,将CU拆分为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。可以以各种空间模式执行将CU分割为PU(或不同颜色通道的PB)。例如,亮度或色度PB可包括样本的值矩阵(例如,亮度值),例如8x8像素、16x16像素、8x16像素和16x8样本等。
图7是根据本申请公开的另一示意性实施例的视频编码器(703)的图。视频编码器(703)用于接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将所述处理块编码到作为已编码视频序列的一部分的已编码图片中。在本实施例中,视频编码器(703)用于代替图4实施例中的视频编码器(303)。
在一个实施例中,视频编码器(703)接收用于处理块的样本值的矩阵,所述处理块为例如8×8样本的预测块等。然后,视频编码器(703)使用例如率失真优化(rate-distortion optimization,RDO)来确定是否使用帧内模式、帧间模式或双向预测模式来编码所述处理块。当确定在帧内模式中编码处理块时,视频编码器(703)可使用帧内预测技术以将处理块编码到已编码图片中;且当确定在帧间模式或双向预测模式中编码处理块时,视频编码器(703)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在一些示意性实施例中,合并模式可以是帧间图片预测的一个子模式,其中,在不借助预测值外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测值导出运动矢量。在某些其它示意性实施例中,可存在适用于主题块的运动矢量分量。因此,视频编码器(703)包括为在图7中明确示出的组件,例如用于确定处理块的预测模式的模式决策模块(未示出)。
在图7的实施例中,视频编码器(703)包括如图7中示例性布置所示的耦接到一起的帧间编码器(730)、帧内编码器(722)、残差计算器(723)、开关(726)、残差编码器(724)、通用控制器(721)和熵编码器(725)。
帧间编码器(730)用于接收当前块(例如处理块)的样本、比较所述块与参考图片中的一个或多个参考块(例如按照显示顺序,先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如预测块)。在一些实施例中,参考图片是使用嵌入在图6的示例编码器620中的解码单元633(如图7的残差解码器728所示,详见下文),基于已编码的视频信息解码的已解码参考图片。
帧内编码器(722)用于接收当前块(例如处理块)的样本、在一些情况下比较所述块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还(例如根据一个或多个帧内编码技术的帧内预测方向信息)生成帧内预测信息。帧内编码器(722)基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如预测块)。
通用控制器(721)用于确定通用控制数据,且基于所述通用控制数据控制视频编码器(703)的其它组件。在实施例中,通用控制器(721)确定块的预测模式,且基于所述预测模式将控制信号提供到开关(726)。举例来说,当所述预测模式是帧内模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧内模式结果,且控制熵编码器(725)以选择帧内预测信息且将所述帧内预测信息添加在码流中;以及当用于块所述预测模式是帧间模式时,通用控制器(721)控制开关(726)以选择供残差计算器(723)使用的帧间预测结果,且控制熵编码器(725)以选择帧间预测信息且将所述帧间预测信息添加在码流中。
残差计算器(723)用于计算所接收的块与选自帧内编码器(722)或帧间编码器(730)的块的预测结果之间的差(残差数据)。残差编码器(724)用于对残差数据进行编码以生成变换系数。在实施例中,残差编码器(724)用于将残差数据从时域转换到频域,以生成变换系数。变换系数接着经由量化处理以获得量化的变换系数。在各种示意性实施例中,视频编码器(703)还包括残差解码器(728)。残差解码器(728)用于执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(722)和帧间编码器(730)使用。举例来说,帧间编码器(730)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(722)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且所述已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。
熵编码器(725)用于将码流格式化以产生已编码的块和执行熵编码。熵编码器(725)配置为在码流中包括各种信息。在实施例中,熵编码器(725)用于获得通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和码流中的其它合适的信息。应注意,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。
图8是根据本申请公开的另一实施例的视频解码器(810)的图。视频解码器(810)用于接收作为已编码视频序列的一部分的已编码图像,且对所述已编码图像进行解码以生成重建的图片。在实施例中,视频解码器(810)用于代替图4实施例中的视频解码器(410)。
在图8实施例中,视频解码器(810)包括如图8中示意性布置所示耦接到一起的熵解码器(871)、帧间解码器(880)、残差解码器(873)、重建模块(874)和帧内解码器(872)。
熵解码器(871)可用于根据已编码图片来重建某些符号,这些符号表示构成所述已编码图片的语法元素。此类符号可包括例如用于对所述块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可识别供帧内解码器(872)或帧间解码器(880)用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在实施例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(880);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(872)。残差信息可经由逆量化并提供到残差解码器(873)。
帧间解码器(880)用于接收帧间预测信息,且基于所述帧间预测信息生成帧间预测结果。
帧内解码器(872)用于接收帧内预测信息,且基于所述帧内预测信息生成预测结果。
残差解码器(873)用于执行逆量化以提取解量化的变换系数,且处理所述解量化的变换系数,以将残差从频域转换到空间域。残差解码器(873)还可能使用某些控制信息(用以获得量化器参数QP),该控制信息可由熵解码器(871)提供(未标示数据路径,因为这仅仅是低数据量控制信息)。
重建模块(874)用于在空间域中组合由残差解码器(873)输出的残差与预测结果(可由帧间预测模块或帧内预测模块输出)以形成重建的块,所述重建的块形成重建的图片的一部分,所述重建的图片可以作为重建的视频的一部分。应注意,可执行解块操作等其它合适的操作来改善视觉质量。
应注意,可使用任何合适的技术来实施视频编码器(403)、视频编码器(603)和视频编码器(703),以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在实施例中,可使用一个或多个集成电路来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(403)、视频编码器(603)和视频编码器(703)以及视频解码器(410)、视频解码器(510)和视频解码器(810)。
回到帧内预测过程,其中块(例如,亮度或色度预测块,或者如果没有被进一步地分割成预测块的编码块)中的样本由相邻、下一相邻或其它一个或多个行的样本进行预测,或者其中的组合进行预测,以生成预测块。然后可以通过变换,之后通过量化来处理正编码的真实块与预测块之间的残差。可以使各种帧内预测模式可用,并且可以在码流中用信号通知与帧内模式选择相关的参数和其它参数。例如,各种帧内预测模式可以涉及用于预测样本的一个或多个行位置、沿其从一个或多个预测行选择预测样本的方向和其它特殊的帧内预测模式。
例如,帧内预测模式(可互换地被称为“帧内模式”)的集可以包括预定数目的定向帧内预测模式。如以上关于图1的示例实施方式所述,这些帧内预测模式可以对应于预定数目的方向,沿着这些方向块外样本被选为用于特定块中正被预测的样本的预测。在另一特定示例实施方式中,可以支持和预定对应于与水平轴成45至207度的角度的八(8)种主定向模式。
在帧内预测的一些其它实施方式中,为了进一步地利用方向纹理中更多种类的空间冗余,定向帧内模式可以进一步地扩展到具有较精细粒度的角度集。例如,以上8个角度实施方式可以被配置为提供八个标称角度,如图9图示,其被称为V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED和D67_PRED,并且对于每个标称角度,可以添加预定数目(例如,7)的较精细的角度。用这样的扩展,对应于相同数目的预定定向帧内模式,较大总数目(例如,在该示例中为56)的方向角度对于帧内预测可用。预测角度可以由标称帧内角度加角度增量表示。对于具有用于每个标称角度的7个较精细的角方向的以上特定示例,角度增量可以是3度步长的-3至3倍。
以上定向帧内预测也可以被称为单向帧内预测,其不同于本公开的之后部分中所描述的双向帧内预测(也被称为帧内双向预测)。
在一些实施方式中,作为上述定向帧内模式的替代或补充,也可以预定义并提供预定数量的非定向帧内预测模式。例如,可以指定5种被称为平滑帧内预测模式的非定向帧内模式。这些非定向帧内模式预测模式可以被具体地称为DC、PAETH、SMOOTH、SMOOTH_V和SMOOTH_H帧内模式。在图10中,图示了在这些示例非定向模式下对特定块的样本的预测。作为示例,图10示出了正由上方相邻行的样本和/或左侧相邻行的样本预测的4×4块1002。块1002中的特定样本1010可以对应于块1002的上方相邻行中的样本1010的正上方样本1004、作为上方和左侧相邻行的交叉点的样本1010的左上方样本1006,以及块1002的左相邻行中的样本1010的正左侧样本1008。对于示例DC帧内预测模式,左侧和上方相邻样本1008和1004的平均值可以用作样本1010的预测器。对于示例PAETH帧内预测模式,可以提取上方、左侧和左上方参考样本1004、1008和1006,然后这三个参考样本中最接近(上方样本加左侧样减去左上方样本(top+left-topleft))的一个值可以被设置为样本1010的预测子。对于示例SMOOTH_V帧内预测模式,样本1010可以由在左上方相邻样本1006和左侧相邻样本1008的竖直方向上的二次插值预测。对于示例SMOOTH_H帧内预测模式,样本1010可以由在左上方相邻样本1006和上方相邻样本1004的水平方向上的二次插值预测。对于示例SMOOTH帧内预测模式,样本1010可以由在竖直和水平方向上的二次插值的平均值预测。以上非定向帧内模式实施方式仅作为非限制性示例图示。还考虑其它相邻行和样本的其它非方向选择,以及用于预测预测块中的特定样本的预测样本的组合方式。
可以在码流中用信号通知编码器从各种编码层级(图片、切片、块、单元等)处的以上定向或非定向模式中选择特定帧内预测模式。在一些示例实施方式中,可以首先用信号通知示例性8种标称定向模式以及5种非角度平滑模式(总共13个选项)。然后,如果用信号通知的模式是8种标称角度帧内模式中的一种,则进一步地用信号通知索引以将所选角度增量指示为对应的用信号通知的标称角度。在一些其它示例实施方式中,可以将所有帧内预测模式一起编入索引(例如,56种定向模式加5种非定向模式以产生61种帧内预测模式)以用于信令。
在一些示例实施方式中,示例56种或其它数目的定向帧内预测模式可以用统一的定向预测器来实现,该统一的定向预测器将块的每个样本投影到参考子样本位置,并且通过2抽头双线性滤波器来插值参考样本。
在一些实施方式中,为了捕获与边缘上的参考相关的衰减空间,可以设计被称为滤波器帧内模式的附加滤波器模式。对于这些模式,除块外样本之外,块内预测样本,可以用作用于块内一些小块的帧内预测参考样本。例如,可以预定义这些模式,并且使其对于用于至少亮度块(或仅亮度块)的帧内预测可用。可以预设计预定数目(例如,5)的滤波器帧内模式,每种滤波器帧内模式由反映例如4×2小块中的样本与邻近该样本的n个相邻样本之间的相关性的n抽头滤波器(例如,7抽头滤波器)的集表示。换句话说,用于n抽头滤波器的加权因子可以是位置相关的。以8×8块、4×2小块和7抽头滤波为例,如图11所示,8×8块1102可以被分成8个4×2小块。在图11中,这些小块由B0、B1、B1、B3、B4、B5、B6和B7表示。对于每个小块,其7个相邻小块(在图11中由R0至R7表示)可以用于预测当前小块中的样本。对于小块B0,所有相邻小块可能已经被重建。但是对于其它小块,相邻小块中的一些在当前块中,因此可能没有被重建,然后近邻的预测值用作参考。例如,图11中所示的小块B7的所有相邻小块都没有被重建,所以替代地使用相邻小块的预测采样,例如B4、B5和/或B6中的部分。
在帧内预测的一些实施方式中,可以通过使用一个或多个其它颜色分量来预测一个颜色分量。颜色分量可以是YCrCb、RGB、XYZ颜色空间等中的分量中的任何一个。例如,可以实现对来自亮度分量(例如,亮度参考样本)的色度分量(例如,色度块)(被称为来自亮度的色度,或者CfL)的预测。在一些示例实施方式中,交叉颜色预测仅可以允许从亮度到色度。例如,色度块中的色度样本可以被建模为符合重建的亮度样本的线性函数。CfL预测可以如下实现:
CfL(α)=α×LAC+DC (1)
其中LAC表示亮度分量的AC贡献,α表示线性模型的参数,以及DC表示色度分量的DC贡献。例如,为该块的每个样本获得AC分量,而为整个块获得DC分量。具体而言,可以将重建的亮度样本二次采样到色度分辨率中,然后可以从每个亮度值中减去平均亮度值(亮度的DC),以形成亮度中的AC贡献。然后亮度的AC贡献用于等式(1)的线性模式,以预测色度分量的AC值。为了近似或预测来自亮度AC贡献的色度AC分量,代替要求解码器计算缩放参数,示例CfL实施方式可以基于原始的色度样本来确定参数α,并且在码流中用信号通知它们。这降低了解码器复杂度,并且产生了更精确的预测。至于色度分量的DC贡献,在一些示例实施方式中,可以通过使用色度分量内的帧内DC模式来计算该DC贡献。
回到帧内预测,在一些示例实现中,编码块或预测块中样本的预测可以基于一组参考行中的一个参考行。换句话说,不是总是使用最近的相邻行(例如,如上面图1所示的预测块的紧邻顶部相邻行或紧邻左侧相邻行),而是可以提供多个参考行作为选择帧内预测的选项。这样的帧内预测实现可以被称为多参考行选择(Multiple Reference LineSelection,MRLS)。在这些实现方式中,编码器决定多各参考行中的哪个参考行用于生成帧内预测器,并用信号通知该参考行。在解码器侧,在解析参考行索引之后,可以通过识别已重建的参考样本,生成当前帧内预测块的帧内预测,其中识别已重建的参考样本是通过根据帧内预测模式(如定向、非定向和其他帧内预测模式)查找指定的参考行。在一些实施方式中,可以在编码块级别中用信号通知参考行索引,并且可以选择多个参考行中的仅一个参考行并将其用于一个编码块的帧内预测。在一些示例中,可以一起选择超过一个参考行用于帧内预测。例如,在有或没有权重的情况下,可以对超过一个参考行进行组合、平均、插值或执行任何其他方式,以生成预测。在一些示例实施方式中,MRLS可以仅应用于亮度分量,而不应用于色度分量。
在图12中,描绘了4个参考行MRLS的示例。如图12的示例所示,可以基于4个水平参考行1204、1206、1208和1210以及4个竖直参考行1212、1214、1216和1218中的一个,预测帧内编码块1202。在这些参考行中,1210和1218是直接相邻的参考行。可以根据参考行与编码块的距离来对参考行进行索引。例如,参考行1210和1218可以被称为零参考线,而其他参考线可以被称之为非零参考行。具体地,参考行1208和1216可以被参考作为第一参考线;参考行1206和1214可以被参考作为第二参考行;并且参考行1204和1212可以被参考作为第三参考行。
在一些实施例中,为了改善视频编码/解码的性能,可以在生成帧内预测样本之后,使用用于帧内预测的基于偏移的修正(offset-based refinement for intraprediction,ORIP)。当应用ORIP时,通过添加偏移值来修正预测样本。
如图13所示,基于参考样本来执行帧内预测(1330)。参考样本可以包括来自一个或多个左侧参考行(1312)和/或一个或多个上方参考行(1310)的样本。用于帧内预测的基于偏移的修正(ORIP)(1350)可以通过使用相邻参考样本来生成偏移值。在一些实施方式中,用于ORIP的相邻参考样本可以与用于帧内预测的参考样本是相同的集。在一些其它实施方式中,用于ORIP的相邻参考样本可以与用于帧内预测的参考样本是不同的集。
参考图14A和图14B,在一些实施方式中,可以在4×4子块级中执行ORIP。对于每个4×4子块(1471、1472、1473和/或1474),从其相邻样本中生成偏移。例如,对于第一子块(1471),从其上方相邻样本(1420中的P1、P2、P3和P4)、左侧相邻样本(1410中的P5、P6、P7和P8)和/或左上方相邻样本(P0)(1401)中生成偏移。在一些实施方式中,上方相邻样本可以包括上方相邻样本(1420中的P1、P2、P3和P4)和左上方相邻样本(P0)(1401)。在一些其它实施方式中,左侧相邻样本可以包括左侧相邻样本(1410中的P5、P6、P7和P8)和左上方相邻样本(P0)(1401)。
第一子块(1471)包括4×4个像素,并且4×4个像素中的每个像素对应于表示在修正之前第N个相邻预测样本的predN。例如,pred0、pred1、pred2……pred16。
在各个实施例中,根据公式,可以基于相邻样本来计算给定子块的每个像素的偏移值。该公式可以是预定公式,或由在已编码的码流中编码的参数指示的公式。
参考图14B,在一些实施方式中,给定子块的第k个位置的偏移值(offset(k))可以如下生成:
pred_refinedk=clip3(predk+offset(k)) (3)
Wkn是用于偏移计算的预定权重。Pn是相邻样本(例如,P0、P1、P2……P8)的值。predk是在应用帧内预测或其它预测(例如,帧间预测)之后像素的预测值。pred_refinedk是在应用ORIP之后用于像素的修正值。clip3()是clip3数学函数。n是0至8的整数,包括端值。k是0至15的整数,包括端值。
在一些实施方式中,Wkn可以是预定的,并且可以根据表1来获得。
表1:用于偏移计算的预定义权重
/>
在一些其它实施方式中,可以仅将基于子块的ORIP应用于帧内预测模式的预定集,和/或可以根据帧内预测模式将基于子块的ORIP不同地应用于亮度和色度。表2示出了基于子块的ORIP的实施方式,该实施方式根据各种帧内预测模式以及亮度或色度信道。以亮度通道为例:当预测模式是DC或SMOOTH时,ORIP总是开启,并且不需要附加信令;当预测模式是HOR/VER,并且角度增量(angle_delta)等于0时,需要块级信令来启用/禁用ORIP;和/或当帧内预测模式是其它模式时,ORIP总是关闭,并且不需要附加信令。
表2:所提出的方法的模式相关开启/关闭
返回参考第二4×4子块(1473),由于其与第一4×4子块(1471)相对的位置,第二子块的上方相邻样本可以是第一子块的一些像素:第二子块的P1可以是第一块的pred12,第二子块的P2可以是第一子块的pred13,第二子块的P3可以是第一子块的pred14,并且第二子块的P4可以是第一子块的pred15。第二子块的左上方相邻样本(P0)可以是第一子块的左侧相邻样本(P8)。
可能存在与一些ORIP实施方式相关联的一些问题/难题。例如,当块的亮度分量的帧内预测模式是竖直或水平帧内预测模式时,可能存在三个不同的选项:1)选择邻近的参考行,将ORIP应用于该块;2)选择邻近的参考行,并且不将ORIP应用于该块;和/或3)选择非邻近的参考行,并且不将ORIP应用于该块。因为来自邻近和非邻近的参考行的参考样本通常是相似的,所以选项2)与选项3)之间可能存在一些冗余,这可能会降低视频编码/解码的性能。
本公开描述了用于在视频编码和/或解码中帧内预测和多参考行帧内预测的偏移修正的各个实施例,从而解决了上述问题/难题中的至少一个。
在各个实施例中,参考图15,提供了一种用于在视频解码中帧内预测和多参考行帧内预测的偏移修正的方法1500,该方法1500可以包括以下步骤中的部分或全部:步骤1510,由设备接收块的已编码视频码流,所述设备包括存储指令的存储器和与所述存储器通信的处理器;步骤1520,基于所述块的模式信息,由所述设备确定是否将用于帧内预测的偏移修正应用于所述块,所述块的所述模式信息包括以下各项中的至少一项:所述块的参考行索引、所述块的帧内预测模式和所述块的大小;和/或步骤1530,响应于确定将用于帧内预测的偏移修正应用于该块,由该设备执行偏移修正以生成用于该块的帧内预测的帧内预测器。在一些实施方式中,步骤1520可以包括基于该块的模式信息,由该设备确定是否将用于帧内预测的偏移修正应用于该块。该块的模式信息包括以下各项中的至少一项:该块的参考行索引、该块的帧内预测模式或该块的大小。
在本公开的各种实施例中,块(例如但不限于编码块、预测块或变换块)的大小可以指块的宽度或高度。块的宽度或高度可以是以像素为单位的整数。
在本公开的各种实施例中,块(例如但不限于编码块,预测块或变换块)的大小可以指块的面积大小。块的面积大小可以是以像素为单位通过块的宽度乘以块的高度计算的整数。
在本公开的一些各种实施例中,块(例如但不限于,编码块、预测块或变换块)的大小可以指块的宽度或高度的最大值、块的宽度或高度的最小值或块的纵横比。块的纵横比可以计算为块的宽度除以高度,或者可以计算为块的高度除以宽度。
在本公开中,参考行索引指示多参考行中的一个参考行。在各种实施例中,用于块的参考行索引为0可以指示与块邻近的参考行,其也是与块最近的参考行。例如,参考图12中的块(1202),顶部参考行(1210)是块(1202)的顶部邻近参考行,其也是块的顶部最近参考行;并且左侧参考行(1218)是块(1202)的左侧邻近参考行,其也是块的左侧最近参考行。块的大于0的参考行索引指示块的非邻近参考行,其也是块的非最近参考行。例如,参考图12中的块(1202),参考行索引为1可以指示顶部参考行(1208)和/或左侧参考行(1216);参考行索引为2可以指示顶部参考行(1206)和/或左侧参考行(1214);和/或参考行索引为3可以指示顶部参考行(1204)和/或左侧参考行(1212)。
在用于视频编码和/或解码的各个实施例中,当为块(例如,正在编码的块或已编码块)选择定向帧内预测模式,以从非邻近的参考行处的样本中生成帧内预测器时,可以确定是否将用于帧内预测的偏移修正(ORIP)应用于该块。该确定可以取决于该块的模式信息,并且该块的模式信息可以包括但不限于参考行索引、一个或多个帧内预测角度和/或该块的一个或多个大小。当基于该块的模式信息来做出该确定时,不需要附加信令来指示是否应用ORIP、减少视频编码/解码中的开销和/或改善视频编码/解码的性能。在各个实施例中,用于帧内预测的偏移修正(ORIP)可以指用于帧内预测的基于偏移的修正,并且是一种帧内预测类型,根据基于一个或多个相邻参考样本来生成的偏移值,其预测结果被进一步地修正(或修改)。
参考步骤1510,该设备可以是图5中的电子设备(530)或者图8中的视频解码器(810)。在一些实施方案中,该设备可以是图6中的编码器(620)中的解码器(633)。在其它实施方案中,该设备可以是图5中的电子设备(530)的一部分、图8中的视频解码器(810)的一部分,或者图6中的编码器(620)中的解码器(633)的一部分。已编码视频码流可以是图8中的已编码视频序列,或者图6或图7中的中间已编码数据。该块可以指编码块或已编码块。
参考步骤1520,基于该块的模式信息,该设备可以确定是否将用于帧内预测的偏移修正应用于该块。该块的模式信息可以包括以下各项中的至少一项:该块的参考行索引、该块的帧内预测模式或该块的大小。
在各个实施例中,步骤1520可以包括:响应于该块的参考行索引小于预定阈值,并且该块的帧内预测模式属于定向帧内预测模式,确定将用于帧内预测的偏移修正应用于该块;和/或响应于该块的参考行索引不小于预定阈值,或者该块的帧内预测模式属于定向帧内预测模式,确定不将用于帧内预测的偏移修正应用于该块。
在一些实施方式中,对于定向帧内预测模式的集,当参考行索引的值小于预定值时,总是应用ORIP;和/或当参考行索引的值大于或等于预定值时,从不应用ORIP。在一个示例中,该定向帧内预测模式的集包括竖直模式和水平模式。在另一示例中,该定向帧内预测模式的集包括竖直模式、水平模式、45度定向模式和135度定向模式。在另一示例中,预定值是N,并且被设置为1。在另一示例中,N被设置为2。在另一示例中,N被设置为0或3。
在各个实施例中,步骤1520可以包括:响应于该块的参考行索引是偶数,并且该块的帧内预测模式属于定向帧内预测模式,确定将用于帧内预测的偏移修正应用于该块;和/或响应于该块的参考行索引是奇数,并且该块的帧内预测模式属于定向帧内预测模式,确定不将用于帧内预测的偏移修正应用于该块。
在一些实施方式中,对于定向帧内预测模式的一个集,确定是否应用ORIP取决于参考行索引的值是偶数还是奇数。在一个示例中,对于定向帧内预测模式的一个集,当参考行索引的值是偶数时,应用ORIP;当参考行索引的值是奇数时,不应用ORIP。在另一示例中,对于定向帧内预测模式的一个集,当参考行索引的值是奇数时,应用ORIP;当参考行索引的值是偶数时,不应用ORIP。在另一示例中,该定向帧内预测模式的集包括竖直模式和水平模式。在另一示例中,该定向帧内预测模式的集包括竖直模式、水平模式、45度定向模式和135度定向模式。
在各个实施例中,步骤1520可以包括:响应于该块的帧内预测模式属于帧内预测模式的第一选定集合,确定将用于帧内预测的偏移修正应用于该块;响应于该块的帧内预测模式属于帧内预测模式的第二选定集合,并且参考行索引指示邻近的参考行,确定将用于帧内预测的偏移修正应用于该块;和/或响应于该块的帧内预测模式属于帧内预测模式的第二选定集合,并且参考行索引指示非邻近的参考行,确定不将用于帧内预测的偏移修正应用于该块。在一些实施方式中,帧内预测模式的第一选定集合不与帧内预测模式的第二选定集合重叠。在一些其它实施方式中,帧内预测模式的第一选定集合可以包括对角帧内预测模式。
在一些实施方式中,对于帧内预测模式的选定集合,将ORIP应用于邻近和非邻近的参考行,而对于帧内预测模式的剩余集,仅将ORIP应用于邻近的参考行。在一个示例中,当仅通过使用整数样本,例如通过使用对角(45/225度)帧内预测模式来应用帧内预测时,也可以将ORIP应用于非邻近的参考行;和/或当帧内预测不使用整数样本时,仅将ORIP应用于邻近的参考行。
在各个实施例中,步骤1520可以包括:响应于该块的帧内预测模式属于定向帧内预测模式,并且该块的参考行索引指示非邻近的参考行,确定将用于帧内预测的偏移修正应用于该块。
在一些实施方式中,步骤1520可以进一步包括:在熵解码期间,将该块的模式信息用作用于帧内预测的偏移修正的参数的上下文。
在一些其它实施方式中,当为块选择定向帧内预测模式,以从非邻近的参考行处的样本中生成帧内预测器时,ORIP仍然可以适用,和/或ORIP仍然可以由已编码码流中的参数(例如,ORIP标志或ORIP索引)用信号通知,而不管该块的模式信息的值如何。
在视频编码期间的一些其它实施方式中,用于ORIP参数(例如,标志/索引)的熵编码的上下文取决于当前块的模式信息,ORIP参数指示是否以及如何应用ORIP。在一些实施方式中,用于语法值的熵编码的上下文取决于指示是否以及如何将ORIP应用于该块的ORIP标志/索引,语法值指示是否以及如何应用当前块的其它模式。当前块的其它模式的语法的示例包括但不限于参考行索引、一个或多个帧内预测角度和/或该块的大小。
参考步骤1530,响应于确定将用于帧内预测的偏移修正应用于该块,该设备对该块执行用于帧内预测的偏移修正。在一些实施方式中,该块是4×4块或包括多个4×4块,并且根据预定方法,例如根据以上用等式(2)和等式(3)描述的方法,对该块执行用于帧内预测的偏移修正。
在各个实施例中,步骤1530可以包括:根据由该块的参考行索引指示的非邻近的参考行,确定预测器;根据基于预测器的帧内预测,确定用于该块的预测值;和/或根据用于帧内预测的所述偏移修正,修改所述预测值,所述偏移修正基于来自邻近的参考行的样本。在一些实施方式中,非邻近的参考行和邻近的参考行来自两侧;这两侧包括顶侧和左侧。
在一些实施方式中,当应用ORIP以从非邻近的参考行处的样本中生成帧内预测器时,从由MRLS选择的非邻近的参考行处的样本中生成预测器(例如,预测器A),然后ORIP通过使用来自邻近的参考行的样本来进一步地修改来自预测器A的预测值。
在一些其它实施方式中,参考样本来自邻近的参考样本的不同侧,参考样本用于生成预测器A并进一步地修改来自(或基于)预测器A的预测值。邻近的参考样本的侧的示例包括但不限于上方参考样本和左侧参考样本。在一个示例中,一个或多个上方参考样本用于生成预测器A,并且一个或多个左侧参考样本用于修改来自(或基于)预测器A的预测值。在另一示例中,一个或多个左侧参考样本用于生成预测器A,并且一个或多个上方参考样本用于修改来自(或基于)预测器A的预测值。
在各个实施例中,步骤1530可以包括:从由该块的参考行索引指示的非邻近的参考行确定预测器;根据基于预测器的帧内预测来确定用于该块的预测值;和/或根据用于帧内预测的偏移修正来修改预测值,所述偏移修正基于来自多个参考行的样本。
在一些实施方式中,步骤1530可以进一步包括:基于样本和对应的权重,使用线性加权平均来获得样本,对应的权重是根据样本的相对的位置来预定的。
在一些其它实施方式中,当应用ORIP以从非邻近的参考行处的样本中生成帧内预测器时,由ORIP用来自多个(多于1个)参考行的样本来修正预测样本。在一个示例中,通过使用来自多个参考行的样本的线性加权和来生成ORIP。可以根据样本的相对的位置来预定权重。
本公开中的实施例可以单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一者可以由处理电路(例如,一个或多个处理器或一个或多个集成电路)实施。在一个示例中,一个或多个处理器执行存储在非易失性计算机可读介质中的程序。本公开的实施例可以应用于亮度块或色度块;并且在色度块中,实施例可以单独应用于多于一个颜色分量,或者可以一起应用于多于一个颜色分量。
在本公开中,各种实施例中的任何步骤或操作可以根据需要以任何数量或任何顺序进行组合。在本公开中,各种实施例中的两个或多个步骤或操作可以并行执行。
以上所描述的技术可以被实施为使用计算机可读指令并且物理地存储在一个或多个计算机可读介质中的计算机软件。例如,图16示出了适于实施所公开的主题的某些实施例的计算机系统(2600)。
计算机软件可以使用任何合适的机器代码或计算机语言进行编码,机器代码或计算机语言可以通过汇编、编译、链接或类似机制来创建包括可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接或通过解释、微代码执行等执行的指令的代码。
指令可以在各种类型的计算机或其部件上执行,包括例如个人计算机、平板计算机、服务器、智能电话、游戏设备、物联网设备等。
图16所示的用于计算机系统(2600)的部件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的使用范围或功能性提出任何限制。部件的配置也不应被解释为对计算机系统(2600)的示例性实施例中所图示的任何一个部件或其组合具有任何依赖性或要求。
计算机系统(2600)可以包括某些人机接口输入设备。此类人机接口输入设备可以响应于一个或多个人类用户通过例如触觉输入(诸如:击键、滑动、数据手套移动)、音频输入(诸如:语音、拍打)、视觉输入(诸如:手势)、嗅觉输入(未示出)的输入。人机接口设备还可以用于捕获不一定与人的有意识输入直接相关的某些介质,诸如音频(诸如:语音、音乐、环境声音)、图像(诸如:扫描图像、从静止图像照相机获得的摄影图像)、视频(诸如二维视频、包括立体视频的三维视频)。
输入人机接口设备可以包括以下中的一个或多个(每种仅描绘了一个):键盘(2601)、鼠标(2602)、触控板(2603)、触摸屏(2610)、数据手套(未示出)、操纵杆(2605)、麦克风(2606)、扫描仪(2607)、照相机(2608)。
计算机系统(2600)还可以包括某些人机接口输出设备。此类人机接口输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。此类人机接口输出设备可以包括触觉输出设备(例如触摸屏(2610)、数据手套(未示出)或操纵杆(2605)的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(诸如:扬声器(2609)、耳机(未描绘))、视觉输出设备(诸如屏幕(2610),包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕,其各自具有或不具有触摸屏输入能力,各自具有或不具有触觉反馈能力—其中一些能够通过诸如立体输出的方式输出二维视觉输出或多于三维输出;虚拟现实眼镜(未描绘)、全息显示器和烟雾罐(未描绘)),以及打印机(未描绘)。
计算机系统(2600)还可以包括人类可访问的存储设备及其相关联的介质,诸如包括具有CD/DVD的CD/DVD ROM/RW(2620)等介质(2621)的光学介质、拇指驱动器(2622)、可移动硬盘驱动器或固态驱动器(2623)、诸如磁带和软盘(未描绘)的传统磁性介质、诸如安全软件狗(未描绘)的基于专用ROM/ASIC/PLD的设备等。
本领域技术人员还应当理解,结合当前公开的主题使用的术语“计算机可读介质”不包括传输介质、载波或其它易失性信号。
计算机系统(2600)还可以包括到一个或多个通信网络(2655)的接口(2654)。网络例如可以是无线的、有线的、光学的。网络还可以是本地的、广域的、城域的、车辆的和工业的、实时的、延迟容许型的等等。网络的示例包括诸如以太网的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线TV、卫星TV和地面广播TV的TV有线或无线广域数字网络、包括CAN总线的车辆的和工业的网络等。某些网络通常需要附接到某些通用数据端口或外围总线(2649)的外部网络接口适配器(诸如例如,计算机系统(2600)的USB端口);其它网络通常通过附接到如下所描述的系统总线而集成到计算机系统(2600)的核心中(例如以太网接口到PC计算机系统中或蜂窝网络接口到智能电话计算机系统中)。使用这些网络中的任何一个,计算机系统(2600)可以与其它实体进行通信。此类通信可以是单向的仅接收(例如,广播TV)、单向的仅发送(例如,CANbus到某些CANbus设备),或双向的,例如到使用局域数字网络或广域数字网络的其它计算机系统。可以在如上所描述的那些网络和网络接口中的每一个上使用某些协议和协议栈。
上述人机接口设备、人类可访问的存储设备和网络接口可以附接到计算机系统(2600)的核心(2640)。
核心(2640)可以包括一个或多个中央处理单元(CPU)(2641)、图形处理单元(GPU)(2642)、现场可编程门阵列(FPGA)(2643)形式的专用可编程处理单元、用于某些任务的硬件加速器(2644)、图形适配器(2650)等。这些设备连同只读存储器(ROM)(2645)、随机存取存储器(2646)、诸如内部非用户可访问硬盘驱动器、SSD等的内部大容量存储器(2647)可以通过系统总线(2648)连接。在一些计算机系统中,系统总线(2648)可以以一个或多个物理插头的形式访问,以使得能够通过附加CPU、GPU等进行扩展。外围设备可以直接或通过外围总线(2649)附接到核心的系统总线(2648)。在一个示例中,屏幕(2610)可以连接到图形适配器(2650)。外围总线的体系结构包括PCI、USB等。
CPU(2641)、GPU(2642)、FPGA(2643)和加速器(2644)可以执行某些指令,这些指令的组合可以构成上述计算机代码。该计算机代码可以存储在ROM(2645)或RAM(2646)中。过渡数据也可以存储在RAM(2646)中,而永久数据可以存储在例如内部大容量存储器(2647)中。可以通过使用高速缓存存储器来启用对任何存储器设备的快速存储和检索,高速缓存存储器可以与一个或多个CPU(2641)、GPU(2642)、大容量存储器(2647)、ROM(2645)、RAM(2646)等紧密相关联。
计算机可读介质可以在其上具有用于执行各种计算机实施的操作的计算机代码。介质和计算机代码可以是为了本公开的目的而专门设计和构建的那些,或者它们可以是计算机软件领域的技术人员公知和可用的类型。
作为非限制性示例,具有体系结构的计算机系统(2600),并且特别是核(2640)可以提供作为一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行体现在一个或多个有形的计算机可读介质中的软件的结果的功能性。此类计算机可读介质可以是与如上所介绍的用户可访问的大容量存储器相关联的介质,以及具有非易失性性质的核心(2640)的某些存储器,诸如核心内部大容量存储器(2647)或ROM(2645)。实施本公开的各种实施例的软件可以存储在此类设备中并由核(2640)执行。根据特定需要,计算机可读介质可以包括一个或多个存储器设备或芯片。软件可以使核心(2640)并且特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文描述的特定过程或特定过程的特定部分,包括定义存储在RAM(2646)中的数据结构并且根据由软件定义的过程修改此类数据结构。另外或作为替代,计算机系统可以提供作为逻辑硬连线的结果或以其它方式体现在电路(例如:加速器(2644))中的功能性,其可以代替软件或与软件一起操作以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可以包括存储用于执行的软件的电路(诸如集成电路(IC))、体现用于执行的逻辑的电路,或两者。本公开包括硬件和软件的任何合适的组合。
虽然已经参考说明性实施例描述了特定发明,但是该描述并不意味着限制。根据该描述,本发明的说明性实施例和附加实施例的各种修改对于本领域普通技术人员将是显而易见的。本领域技术人员将容易地认识到,在不脱离本发明的精神和范围的情况下,可以对在本文中图示和描述的示例性实施例进行这些和各种其它修改。因此,设想所附权利要求书将涵盖任何此类修改和替代实施例。图示中的某些比例可能被夸大,而其它比例可能被最小化。因此,本公开和附图被认为是说明性的而非限制性的。
Claims (16)
1.一种用于在视频解码中帧内预测和多参考行帧内预测的偏移修正的方法,其特征在于,所述方法包括:
由设备接收块的已编码视频码流,所述设备包括存储指令的存储器和与所述存储器通信的处理器;
基于所述块的模式信息,由所述设备确定是否将用于帧内预测的偏移修正应用于所述块,所述块的所述模式信息包括以下各项中的至少一项:所述块的参考行索引、所述块的帧内预测模式和所述块的大小;以及
响应于确定将用于帧内预测的所述偏移修正应用于所述块,由所述设备执行所述偏移修正以生成用于所述块的帧内预测的帧内预测器。
2.根据权利要求1所述的方法,其特征在于,所述确定是否将用于帧内预测的偏移修正应用于所述块包括:
响应于所述块的所述参考行索引小于预定阈值,并且所述块的所述帧内预测模式属于定向帧内预测模式,确定将用于帧内预测的所述偏移修正应用于所述块;以及
响应于所述块的所述参考行索引不小于所述预定阈值,或者所述块的所述帧内预测模式属于所述定向帧内预测模式,确定不将用于帧内预测的所述偏移修正应用于所述块。
3.根据权利要求2所述的方法,其特征在于:
所述定向帧内预测模式包括竖直模式和水平模式。
4.根据权利要求2所述的方法,其特征在于:
所述定向帧内预测模式包括竖直模式、水平模式、45度定向模式和135度定向模式。
5.根据权利要求2所述的方法,其特征在于:
所述预定阈值包括以下各项中的一项:1或2。
6.根据权利要求1所述的方法,其特征在于,所述确定是否将用于帧内预测的偏移修正应用于所述块包括:
响应于所述块的所述参考行索引是偶数,并且所述块的所述帧内预测模式属于定向帧内预测模式,确定将用于帧内预测的所述偏移修正应用于所述块;以及
响应于所述块的所述参考行索引是奇数,并且所述块的所述帧内预测模式属于所述定向帧内预测模式,确定不将用于帧内预测的所述偏移修正应用于所述块。
7.根据权利要求1所述的方法,其特征在于,所述确定是否将用于帧内预测的偏移修正应用于所述块包括:
响应于所述块的所述帧内预测模式属于帧内预测模式的第一选定集合,确定将用于帧内预测的所述偏移修正应用于所述块;
响应于所述块的所述帧内预测模式属于帧内预测模式的第二选定集合,并且所述参考行索引指示邻近的参考行,确定将用于帧内预测的所述偏移修正应用于所述块;以及
响应于所述块的所述帧内预测模式属于帧内预测模式的所述第二选定集合,并且所述参考行索引指示非邻近的参考行,确定不将用于帧内预测的所述偏移修正应用于所述块,
其中帧内预测模式的所述第一选定集合不与帧内预测模式的所述第二选定集合重叠。
8.根据权利要求7所述的方法,其特征在于,帧内预测模式的所述第一选定集合包括对角帧内预测模式。
9.根据权利要求1所述的方法,其特征在于,所述执行所述偏移修正以生成用于所述块的帧内预测的帧内预测器包括:
根据由所述块的所述参考行索引指示的非邻近的参考行,确定预测器;
根据基于所述预测器的帧内预测,确定用于所述块的预测值;以及
根据用于帧内预测的所述偏移修正,修改所述预测值,所述偏移修正基于来自邻近的参考行的样本。
10.根据权利要求9所述的方法,其特征在于,
所述非邻近的参考行和所述邻近的参考行来自两侧;以及
所述两侧包括顶侧和左侧。
11.根据权利要求1所述的方法,其特征在于,所述执行所述偏移修正以生成用于所述块的帧内预测的帧内预测器包括:
从由所述块的所述参考行索引指示的非邻近的参考行确定预测器;
根据基于所述预测器的帧内预测,确定用于所述块的预测值;以及
根据用于帧内预测的所述偏移修正来修改所述预测值,所述偏移修正基于来自多个参考行的样本。
12.根据权利要求11所述的方法,其特征在于,所述方法进一步包括:
基于所述样本和对应的权重,使用线性加权平均来获得样本,所述对应的权重是根据所述样本的相对的位置来预定的。
13.根据权利要求1所述的方法,其特征在于,所述确定是否将用于帧内预测的偏移修正应用于所述块包括:
响应于所述块的所述帧内预测模式属于定向帧内预测模式,并且所述块的所述参考行索引指示非邻近的参考行,确定将用于帧内预测的所述偏移修正应用于所述块。
14.根据权利要求13所述的方法,其特征在于,所述方法进一步包括:
在熵解码期间,将所述块的所述模式信息用作用于帧内预测的所述偏移修正的参数的上下文。
15.一种用于在视频解码中帧内预测和多参考行帧内预测的偏移修正的装置,其特征在于,所述装置包括:
存储指令的存储器;以及
与所述存储器通信的处理器,其中当所述处理器执行所述指令时,所述处理器被配置为使所述装置执行权利要求1至14中任一项所述的方法。
16.一种存储指令的非易失性计算机可读存储介质,其特征在于,所述指令在由处理器执行时,所述指令被配置为使所述处理器执行权利要求1至14中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/217,061 | 2021-06-30 | ||
US17/573,823 | 2022-01-12 | ||
US17/573,823 US20230007299A1 (en) | 2021-06-30 | 2022-01-12 | Harmonized design for offset based refinement and multiple reference line selection |
PCT/US2022/014131 WO2023277960A1 (en) | 2021-06-30 | 2022-01-27 | Harmonized design for offset based refinement and multiple reference line selection |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116806427A true CN116806427A (zh) | 2023-09-26 |
Family
ID=88079808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280012073.5A Pending CN116806427A (zh) | 2021-06-30 | 2022-01-27 | 用于基于偏移的修正和多参考行选择的协调设计 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116806427A (zh) |
-
2022
- 2022-01-27 CN CN202280012073.5A patent/CN116806427A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114745540A (zh) | 一种视频编解码方法、装置、设备和介质 | |
CN116320408A (zh) | 用于视频解码、编码的方法、编码器、装置及可读介质 | |
US20230008488A1 (en) | Entropy coding for intra prediction modes | |
CN115516856A (zh) | 多参考行帧内预测与变换分区之间的协调设计 | |
CN115486077A (zh) | 针对变换系数的符号图的改进熵编码 | |
CN115552902A (zh) | 变换划分与主/二次变换类型选择之间的交互 | |
CN116076074A (zh) | 用于视频编码中的时域滤波的方法和设备 | |
US11838498B2 (en) | Harmonized design for intra bi-prediction and multiple reference line selection | |
US11917136B2 (en) | Intra mode coding | |
CN113395524B (zh) | 视频解码方法、装置和电子设备 | |
US20230007299A1 (en) | Harmonized design for offset based refinement and multiple reference line selection | |
US20230069984A1 (en) | Hardware friendly design for intra mode coding | |
CN116806427A (zh) | 用于基于偏移的修正和多参考行选择的协调设计 | |
CN116472711A (zh) | 用于帧内模式编码的硬件友好设计 | |
CN116998153A (zh) | 基于多个预测模式的交叉通道预测 | |
KR20230106688A (ko) | 적응적 다중 변환 세트 선택 | |
CN116783888A (zh) | 改进的帧内模式编码 | |
CN117044203A (zh) | 用于一维变换跳过的eob的信令 | |
JP2023520594A (ja) | ビデオ・コーディングのための方法及び装置 | |
CN116636205A (zh) | 次级变换系数的扫描顺序 | |
CN116686291A (zh) | 子块交叉分量线性模型预测 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40094806 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination |