用于视频编码的方法和装置

文档序号:246880 发布日期:2021-11-12 浏览:6次 >En<

阅读说明:本技术 用于视频编码的方法和装置 (Method and apparatus for video encoding ) 是由 许晓中 刘杉 于 2020-06-26 设计创作,主要内容包括:一种用于视频解码的装置,包括处理电路。处理电路可被配置成:在码流中接收已以帧内块复制(IBC)模式编码的当前块的数据。可根据基于历史的块矢量预测(HBVP)表确定当前块的块矢量,HBVP表包括一个或多个条目,每个条目对应于先前已解码块。每个条目可包括所对应的先前已解码块的块矢量和所对应的先前已解码块的位置。可基于所确定的当前块的块矢量重建当前块。(An apparatus for video decoding includes a processing circuit. The processing circuit may be configured to: data of a current block that has been encoded in an Intra Block Copy (IBC) mode is received in a code stream. The block vector for the current block may be determined from a history-based block vector prediction (HBVP) table that includes one or more entries, each entry corresponding to a previously decoded block. Each entry may include a block vector of the corresponding previously decoded block and a location of the corresponding previously decoded block. The current block may be reconstructed based on the determined block vector of the current block.)

用于视频编码的方法和装置

援引并入

本公开要求于2020年6月25日提交的标题为“Method and Apparatus for VideoCoding”的美国专利申请第16/912,223号(其要求了于2019年8月28日提交的标题为“History Based Block Vector Prediction for Intra Picture Compensation”的美国临时申请第62/892,918号的权益)的权益。在先申请的全部公开内容通过引用整体并入本文中。

技术领域

本公开描述了总体上涉及视频编码的实施例。

背景技术

本文所提供的背景描述是出于总体上呈现本公开的背景的目的。在该背景部分中描述的工作范围内,目前命名的发明人的工作以及提交之时不可另行具备现有技术资格的本描述的各方面既未明确、亦未默示地承认为本公开的现有技术。

可以使用具有运动补偿的帧间图片预测来执行视频编码和解码。未压缩的数字视频可以包括一系列图片,每个图片具有例如为1920x1080的亮度样本及相关的色度样本的空间大小。该一系列图片可以具有例如每秒60幅图片或60Hz的固定的或可变的图片速率(也非正式地称为帧率)。未压缩的视频具有很高的位速率要求。例如,每样本8位的1080p604:2:0的视频(60Hz帧率的1920x1080亮度样本分辨率)需要接近1.5Gbit/s的带宽。一小时的此类视频需要多于600GB的存储空间。

视频编码和解码的一个目的可以是通过压缩来减少输入视频信号中的冗余。压缩可以有助于减小上述带宽或存储空间需求,在某些情况下可以减小两个数量级或大于两个数量级。可以采用无损压缩和有损压缩以及它们的组合。无损压缩是指可以从已压缩的原始信号中重建原始信号的精确副本的技术。当使用有损压缩时,已重建的信号可能与原始信号不同,但是原始信号和已重建的信号之间的失真足够小,以使已重建的信号可用于预期的应用。在视频的情况下,广泛使用有损压缩。可容忍的失真量取决于应用,例如某些消费流式应用的用户相比电视分布应用的用户来说可以容忍更高的失真。可达到的压缩率可以反映:更高的可容许/容忍的失真可以产生更高的压缩率。

运动补偿可以是有损压缩技术,并且可以涉及下述技术:来自先前已重建的图片或其部分(参考图片)的样本数据的块在沿着由运动矢量(此后称为MV)指示的方向上空间偏移之后,被用于预测新的已重建的图片或图片部分。在一些情况下,参考图片可以与当前正在重建的图片相同。MV可以具有X和Y两个维度,或具有三个维度,第三个维度指示正在使用的参考图片(后者间接地可以是时间维度)。

在一些视频压缩技术中,可以根据其他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预测机制中,本申请描述的是下文称作“空间合并”的技术。

请参考图1,当前块(101)包括在运动搜索过程期间已由编码器发现的样本,这些样本可以根据已在空间上偏移的相同大小的先前块来预测。可从与一个或多个参考图片相关联的元数据中推导出MV,而非对MV直接编码。例如,使用与被标记为A0、A1和B0、B1、B2(分别对应102到106)的五个周围样本中的任一样本相关联的MV,(按解码顺序)从最近的参考图片相关联的元数据中推导出该MV。在H.265中,MV预测可以使用来自相邻块正在使用的相同参考图片的预测值。

发明内容

本公开的各方面提供了用于视频编码/解码的方法和装置。在一些示例中,用于视频解码的装置包括处理电路。处理电路可被配置成:在码流中接收已以帧内块复制(IBC)模式编码的当前块的数据。可根据基于历史的块矢量预测(HBVP)表确定当前块的块矢量,HBVP表包括一个或多个条目,每个条目对应于先前已解码块。每个条目可包括所对应的先前已解码块的块矢量和所对应的先前已解码块的位置。可基于所确定的当前块的块矢量重建当前块。在一个实施例中,将当前块的块矢量、位置、宽度和高度存储在HBVP表中。

此外,每个条目可包括对应的先前已解码块的角的x坐标和y坐标。在另一个实施例中,每个条目可包括对应的先前已解码块的角位置以及对应的先前已解码块的宽度和高度中的一个。

在一个实施例中,电路可被配置成基于HBVP表构造块矢量预测(BVP)候选列表。BVP候选列表可包括第一候选和第二候选中的一个或多个。第一候选可包括HBVP表中的块矢量中的第一块矢量。第一块矢量对应的先前已解码块具有在当前块左侧的位置。第二候选可包括HBVP表中的块矢量中的第二块矢量。第二块矢量对应的先前已解码块具有在当前块上方的位置。

电路被配置成将HBVP表中的条目分类成不同的组,每个组存储在一个分类HBVP表中。在一个示例中,当HBVP表的一个条目的对应的先前解码块的大小满足块大小条件时,将HBVP表的一个条目存储在多个分类HBVP表中的一个分类HBVP表中。块大小条件可以是HBVP表的条目中的一个条目所对应的先前已解码块的亮度样本的数量大于或等于阈值。

在另一个示例中,基于HBVP表中存储的所对应的先前已解码块中的每个先前已解码块的x坐标、y坐标或者x坐标和y坐标的组合,将HBVP表中的条目分类到多个分类HBVP表中。

在一个实施例中,接收对多个分类HBVP表中的一个分类HBVP表进行指示的索引。从所指示的分类HBVP表中选择一个条目,所选择的一个条目与所指示的分类HBVP表中的一个或多个条目的先前已解码块之中最近的已解码块对应。所选择的一个条目的块矢量用作当前块的块矢量的块矢量预测器。

在一个实施例中,构建BVP候选列表。BVP候选列表包括一个或多个BVP候选,每个BVP候选包括从多个分类HBVP表中选择的块矢量。可基于从码流接收的索引,从BVP候选列表中选择BVP候选,作为当前块的块矢量的块矢量预测器。在各个实施例中,当前块可以以跳过模式、合并模式或高级运动矢量预测(AMVP)模式中的一种模式来编码。

本公开的各方面还提供了一种非暂时性计算机可读介质,非暂时性计算机可读介质存储指令,该指令在被用于视频解码的计算机执行时使得计算机执行用于视频解码的方法。

附图说明

通过以下详细描述和附图,所公开的主题的其他特征、性质和各种优点将更加明显,在附图中:

图1是在一个示例中的当前块及其周围空间合并候选的示意图。

图2是根据一个实施例的通信系统(200)的简化框图的示意图。

图3是根据一个实施例的通信系统(300)的简化框图的示意图。

图4是根据一个实施例的解码器的简化框图的示意图。

图5是根据一个实施例的编码器的简化框图的示意图。

图6示出了根据另一个实施例的编码器的框图。

图7示出了根据另一个实施例的解码器的框图。

图8示出了帧内图片块补偿的示例。

图9A至图9D示出了帧内图片块补偿的示例,其中一个CTU大小的存储器用于存储已重建样本。

图10示出了当前块(1010)的空间合并候选的示例。

图11示出了对根据本公开的一些实施例的过程(1100)进行概述的流程图。

图12是根据一个实施例的计算机系统的示意图。

具体实施方式

I.视频编码的编码器和解码器

图2示出了根据本公开的实施例的通信系统(200)的简化框图。通信系统(200)包括多个终端装置,该终端装置可通过例如网络(250)彼此通信。举例来说,通信系统(200)包括通过网络(250)互连的第一终端装置对(210)和(220)。在图2的示例中,第一终端装置对(210)和(220)执行单向数据传输。举例来说,终端装置(210)可对视频数据(例如由终端装置(210)采集的视频图片流)进行编码以通过网络(250)传输到另一终端装置(220)。已编码视频数据以一个或多个已编码视频码流形式传输。终端装置(220)可从网络(250)接收已编码视频数据,对已编码视频数据进行解码以恢复视频图片,并根据恢复的视频数据显示视频图片。单向数据传输在媒体服务等应用中是较常见的。

在另一示例中,通信系统(200)包括执行已编码视频数据的双向传输的第二终端装置对(230)和(240),该双向传输可例如在视频会议期间发生。对于双向数据传输,在一示例中,终端装置(230)和终端装置(240)中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络(250)传输到终端装置(230)和终端装置(240)中的另一终端装置。终端装置(230)和终端装置(240)中的每个终端装置还可接收由终端装置(230)和终端装置(240)中的另一终端装置传输的已编码视频数据,且可对该已编码视频数据进行解码以恢复视频图片,且可根据恢复的视频数据在可访问的显示装置上显示视频图片。

在图2的示例中,终端装置(210)、终端装置(220)、终端装置(230)和终端装置(240)可被示出为服务器、个人计算机和智能电话,但本公开的原理可不限于此。本公开的实施例适用于膝上型计算机、平板电脑、媒体播放器和/或专用视频会议设备。网络(250)表示在终端装置(210)、终端装置(220)、终端装置(230)和终端装置(240)之间传送已编码视频数据的任何数量的网络,包括例如有线(连线的)和/或无线通信网络。通信网络(250)可在电路交换和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。出于本讨论的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本公开的操作来说可能是无关紧要的。

作为所公开主题的应用的示例,图3示出了视频编码器和视频解码器在流式传输环境中的放置方式。所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字TV、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。

流式传输系统可包括采集子系统(313),该采集子系统可包括例如数码相机的视频源(301),该视频源创建例如未压缩的视频图片流(302)。在示例中,视频图片流(302)包括由数码相机拍摄的样本。相较于已编码视频数据(304)(或已编码视频码流),被描绘为粗线以强调高数据量的视频图片流(302)可由电子装置(320)处理,该电子装置(320)包括耦接到视频源(301)的视频编码器(303)。视频编码器(303)可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流(302),被描绘为细线以强调较低数据量的已编码视频数据(304)(或已编码视频码流(304))可存储在流式传输服务器(305)上以供将来使用。一个或多个流式传输客户端子系统,例如图3中的客户端子系统(306)和客户端子系统(308),可访问流式传输服务器(305)以检索已编码视频数据(304)的副本(307)和副本(309)。客户端子系统(306)可包括例如电子装置(330)中的视频解码器(310)。视频解码器(310)对已编码视频数据的传入副本(307)进行解码,且产生可在显示器(312)(例如显示屏)或另一呈现装置(未描绘)上呈现的输出视频图片流(311)。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码视频数据(304)、已编码视频数据(307)和已编码视频数据(309)(例如视频码流)进行编码。该些标准的示例包括ITU-T建议书H.265。在示例中,正在开发的视频编码标准非正式地称为下一代视频编码(Versatile Video Coding,VVC),所公开的主题可用于VVC的上下文中。

应注意,电子装置(320)和电子装置(330)可包括其它组件(未示出)。举例来说,电子装置(320)可包括视频解码器(未示出),且电子装置(330)还可包括视频编码器(未示出)。

图4是根据本公开的实施例的视频解码器(410)的框图。视频解码器(410)可包括在电子装置(430)中。电子装置(430)可包括接收器(431)(例如接收电路)。视频解码器(410)可用于代替图3的示例中的视频解码器(310)。

接收器(431)可接收将由视频解码器(410)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其它已编码视频序列的解码。可从信道(401)接收已编码视频序列,该信道可以是通向存储已编码视频数据的存储装置的硬件/软件链路。接收器(431)可接收可转发到它们各自的使用实体(未描绘)的已编码视频数据以及其它数据,例如,已编码音频数据和/或辅助数据流。接收器(431)可将已编码视频序列与其它数据分开。为了防止网络抖动,缓冲存储器(415)可耦接在接收器(431)与熵解码器/解析器(420)(此后称为“解析器(420)”)之间。在某些应用中,缓冲存储器(415)是视频解码器(410)的一部分。在其它情况下,缓冲存储器(415)可位于视频解码器(410)外部(未描绘)。而在其它情况下,在视频解码器(410)的外部可配置缓冲存储器(未描绘)以例如防止网络抖动,且在视频解码器(410)的内部可配置另一缓冲存储器(415)以例如处理播出定时。而当接收器(431)从具有足够带宽和可控性的存储/转发装置或从等时同步网络接收数据时,也可能不需要配置缓冲存储器(415),或可以将该缓冲存储器做得较小。为了在互联网等业务分组网络上使用,也可能需要缓冲存储器(415),该缓冲存储器可相对较大且可有利地具有自适应性大小,且可至少部分地实施于操作系统或视频解码器(410)外部的类似元件(未描绘)中。

视频解码器(410)可包括解析器(420)以根据已编码视频序列重建符号(421)。这些符号的类别包括用于管理视频解码器(410)的操作的信息,以及用以控制显示装置(412)(例如,显示屏)等显示装置的潜在信息,该显示装置不是电子装置(430)的整体部分,但可耦接到电子装置(430),如图4中所示。用于一个(多个)显示装置的控制信息可以是辅助增强信息(Supplemental Enhancement Information,SEI消息)或视频可用性信息(VideoUsability Information,VUI)的参数集片段(未描绘)形式。解析器(420)可对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可根据视频编码技术或标准进行,且可遵循各种原理,包括可变长度编码、霍夫曼编码(Huffman coding)、具有或不具有上下文灵敏度的算术编码等等。解析器(420)可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个子群的子群参数集。子群可包括图片群组(Group of Pictures,GOP)、图片、图块、切片、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器(420)还可从已编码视频序列提取信息,例如变换系数、量化器参数值、运动矢量等等。

解析器(420)可对从缓冲存储器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。

取决于已编码视频图片或一部分已编码视频图片(例如:帧间图片和帧内图片、帧间块和帧内块)的类型以及其它因素,符号(421)的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器(420)从已编码视频序列解析的子群控制信息来控制。为了清楚起见,未描述解析器(420)与下文的多个单元之间的此类子群控制信息流。

除已经提及的功能块以外,视频解码器(410)可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,概念上细分成下文的功能单元是适当的。

第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为一个(多个)符号(421)的量化变换系数以及控制信息,包括使用哪种变换方式、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可输出包括样本值的块,该样本值可输入到聚合器(455)中。

在一些情况下,缩放器/逆变换单元(451)的输出样本可属于帧内编码块;即,不使用来自先前重建的图片的预测性信息,但可使用来自当前图片的先前重建部分的预测性信息的块。此类预测性信息可由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)采用从当前图片缓冲器(458)提取的周围已重建信息生成大小和形状与正在重建的块相同的块。举例来说,当前图片缓冲器(458)缓冲部分重建的当前图片和/或完全重建的当前图片。在一些情况下,聚合器(455)基于每个样本,将帧内预测单元(452)生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。

在其它情况下,缩放器/逆变换单元(451)的输出样本可属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元(453)可访问参考图片存储器(457)以提取用于预测的样本。在根据属于块的符号(421)对提取的样本进行运动补偿之后,这些样本可由聚合器(455)添加到缩放器/逆变换单元(451)的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元(453)从参考图片存储器(457)内的地址获取预测样本可受到运动矢量控制,且该运动矢量以符号(421)的形式而供运动补偿预测单元(453)使用,该符号(421)可以具有例如X、Y和参考图片分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图片存储器(457)提取的样本值的内插、运动矢量预测机制等等。

聚合器(455)的输出样本可经受环路滤波器单元(456)中的各种环路滤波技术。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频序列(也称作已编码视频码流)中并且作为来自解析器(420)的符号(421)可用于环路滤波器单元(456)的参数,然而,视频压缩技术还可响应于在解码已编码图片或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。

环路滤波器单元(456)的输出可以是样本流,该样本流可输出到显示装置(412)以及存储在参考图片存储器(457)中,以用于后续的帧间图片预测。

一旦完全重建,某些已编码图片就可用作参考图片以用于将来预测。举例来说,一旦对应于当前图片的已编码图片被完全重建,且已编码图片(通过例如解析器(420))被识别为参考图片,则当前图片缓冲器(458)可变为参考图片存储器(457)的一部分,且可在开始重建后续已编码图片之前重新分配新的当前图片缓冲器。

视频解码器(410)可根据例如ITU-T建议书H.265标准中的预定视频压缩技术执行解码操作。在已编码视频序列遵循视频压缩技术或标准的语法以及视频压缩技术或标准中记录的配置文件的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。具体地说,配置文件可从视频压缩技术或标准中可用的所有工具中选择某些工具作为在该配置文件下可供使用的仅有工具。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可通过假定参考解码器(Hypothetical ReferenceDecoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。

在实施例中,接收器(431)可连同已编码视频一起接收附加(冗余)数据。该附加数据可以被包括作为一个(多个)已编码视频序列的一部分。该附加数据可由视频解码器(410)使用以对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可为例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图片、前向纠错码等形式。

图5示出了根据本公开的实施例的视频编码器(503)的框图。视频编码器(503)包括在电子装置(520)中。电子装置(520)包括传输器(540)(例如传输电路)。视频编码器(503)可用于代替图3的示例中的视频编码器(303)。

视频编码器(503)可从视频源(501)(并非图5示例中的电子装置(520)的一部分)接收视频样本,该视频源可采集将由视频编码器(503)编码的一个(多个)视频图像。在另一示例中,视频源(501)是电子装置(520)的一部分。

视频源(501)可提供将由视频编码器(503)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位、12位……)、任何色彩空间(例如BT.601Y CrCB、RGB……)和任何合适样本结构(例如Y CrCb 4:2:0、Y CrCb 4:4:4)。在媒体服务系统中,视频源(501)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(501)可以是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可构造为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。

根据实施例,视频编码器(503)可实时或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。在一些实施例中,控制器(550)控制如下文所描述的其它功能单元且在功能上耦接到所述其它功能单元。为了简洁起见,图中未标示耦接。由控制器(550)设置的参数可包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值……)、图片大小、图片群组(GOP)布局、最大运动矢量搜索范围等。控制器(550)可被配置成具有其它合适的功能,这些功能涉及针对某一系统设计优化的视频编码器(503)。

在一些实施例中,视频编码器(503)被配置成在编码环路中进行操作。作为简单的描述,在示例中,编码环路可包括源编码器(530)(例如,负责基于待编码的输入图片和一个(多个)参考图片创建符号,例如符号流)和嵌入于视频编码器(503)中的(本地)解码器(533)。解码器(533)重建符号以用类似于(远程)解码器还可创建样本数据的方式创建样本数据(因为在所公开主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流(样本数据)输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片存储器(534)中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。这种参考图片同步性的基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)也用于一些相关技术。

“本地”解码器(533)的操作可与例如已在上文结合图4详细描述的视频解码器(410)的“远程”解码器相同。然而,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器(415)和解析器(420)在内的视频解码器(410)的熵解码部分,可能无法完全在本地解码器(533)中实施。

此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,所公开主题侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。

在操作期间,在一些示例中,源编码器(530)可执行运动补偿预测编码。参考来自视频序列中被指定为“参考图片”的一个或多个先前已编码图片,该运动补偿预测编码对输入图片进行预测性编码。以此方式,编码引擎(532)对输入图片的像素块与一个(多个)参考图片的像素块之间的差异进行编码,该参考图片可被选作该输入图片的一个(多个)预测参考。

本地视频解码器(533)可基于源编码器(530)创建的符号,对可指定为参考图片的图片的已编码视频数据进行解码。编码引擎(532)的操作可有利地为有损过程。当已编码视频数据可在视频解码器(图5中未示出)处被解码时,重建的视频序列通常可以是带有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,该解码过程可由视频解码器对参考图片执行,且可使重建的参考图片存储在参考图片高速缓存(534)中。以此方式,视频编码器(503)可在本地存储重建的参考图片的副本,该副本与将由远端视频解码器获得的重建的参考图片具有共同内容(不存在传输误差)。

预测器(535)可针对编码引擎(532)执行预测搜索。即,对于将要编码的新图片,预测器(535)可在参考图片存储器(534)中搜索可作为该新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,例如参考图片运动矢量、块形状等。预测器(535)可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(535)获得的搜索结果所确定的那样,输入图片可具有从参考图片存储器(534)中存储的多个参考图片取得的预测参考。

控制器(550)可管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。

可在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据例如霍夫曼编码、可变长度编码、算术编码等技术对各种功能单元生成的符号进行无损压缩,从而将该符号转换成已编码视频序列。

传输器(540)可缓冲由熵编码器(545)创建的一个(多个)已编码视频序列,从而为通过通信信道(560)进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储装置的硬件/软件链路。传输器(540)可将来自视频编码器(503)的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。

控制器(550)可管理视频编码器(503)的操作。在编码期间,控制器(550)可以为每个已编码图片分配某一已编码图片类型,但这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种图片类型:

帧内图片(I图片),其可以是不将序列中的任何其它图片用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(Independent Decoder Refresh,“IDR”)图片。所属领域的技术人员了解I图片的变体及其相应的应用和特征。

预测性图片(P图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。

双向预测性图片(B图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可使用多于两个参考图片和相关联元数据以用于重建单个块。

源图片通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测性编码,该其它块由应用于块的相应图片的编码分配来确定。举例来说,I图片的块可进行非预测性编码,或该块可参考同一图片的已编码的块来进行预测性编码(空间预测或帧内预测)。P图片的像素块可参考一个先前编码的参考图片通过空间预测或通过时域预测进行预测性编码。B图片的块可参考一个或两个先前编码的参考图片通过空间预测或通过时域预测进行预测性编码。

视频编码器(503)可根据例如ITU-T建议书H.265的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(503)可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所使用的视频编码技术或标准指定的语法。

在实施例中,传输器(540)可在传输已编码视频时传输附加数据。源编码器(530)可包括此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、冗余图片和切片等其它形式的冗余数据、SEI消息、VUI参数集片段等。

采集到的视频可作为呈时间序列的多个源图片(视频图片)。帧内图片预测(常常简化为帧内预测)利用给定图片中的空间相关性,而帧间图片预测则利用图片之间的(时间或其它)相关性。在示例中,将正在编码/解码的特定图片分割成块,正在编码/解码的特定图片被称作当前图片。在当前图片中的块类似于视频中先前已编码且仍被缓冲的参考图片中的参考块时,可通过称作运动矢量的矢量对当前图片中的块进行编码。该运动矢量指向参考图片中的参考块,且在使用多个参考图片的情况下,该运动矢量可具有识别参考图片的第三维度。

在一些实施例中,双向预测技术可用于帧间图片预测中。根据双向预测技术,使用两个参考图片,例如按解码次序都在视频中的当前图片之前(但按显示次序可能分别是过去和将来)的第一参考图片和第二参考图片。可通过指向第一参考图片中的第一参考块的第一运动矢量和指向第二参考图片中的第二参考块的第二运动矢量对当前图片中的块进行编码。可通过第一参考块和第二参考块的组合来预测该块。

此外,合并模式技术可用于帧间图片预测中以改善编码效率。

根据本公开的一些实施例,例如帧间图片预测和帧内图片预测的预测以块为单位执行。举例来说,根据HEVC标准,将视频图片序列中的图片分割成编码树单元(coding treeunit,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,或16个16×16像素的CU。在示例中,分析每个CU以确定用于CU的预测类型,例如帧间预测类型或帧内预测类型。取决于时间和/或空间可预测性,将CU拆分为一个或多个预测单元(prediction unit,PU)。通常,每个PU包括亮度预测块(prediction block,PB)和两个色度PB。在实施例中,编码(编码/解码)中的预测操作以预测块为单位来执行。以亮度预测块作为预测块的示例,预测块包括针对像素的值(例如,亮度值)的矩阵,所述像素为例如8×8像素、16×16像素、8×16像素、16×8像素等等。

图6示出了根据本公开的另一实施例的视频编码器(603)的图。视频编码器(603)被配置成接收视频图片序列中的当前视频图片内的样本值的处理块(例如预测块),且将该处理块编码到作为已编码视频序列的一部分的已编码图片中。在示例中,视频编码器(603)用于代替图3示例中的视频编码器(303)。

在HEVC示例中,视频编码器(603)接收用于处理块的样本值的矩阵,该处理块为例如8×8样本的预测块等。视频编码器(603)使用例如率失真(rate-distortion,RD)优化来确定是否使用帧内模式、帧间模式或双向预测模式来最佳地编码该处理块。当在帧内模式中编码处理块时,视频编码器(603)可使用帧内预测技术以将处理块编码到已编码图片中;且当在帧间模式或双向预测模式中编码处理块时,视频编码器(603)可分别使用帧间预测或双向预测技术将处理块编码到已编码图片中。在某些视频编码技术中,合并模式可以是帧间图片预测子模式,其中,在不借助预测器外部的已编码运动矢量分量的情况下,从一个或多个运动矢量预测器导出运动矢量。在某些其它视频编码技术中,可存在适用于主题块的运动矢量分量。在示例中,视频编码器(603)包括其它组件,例如用于确定处理块的模式的模式决策模块(未示出)。

在图6的示例中,视频编码器(603)包括如图6所示的耦接到一起的帧间编码器(630)、帧内编码器(622)、残差计算器(623)、开关(626)、残差编码器(624)、通用控制器(621)和熵编码器(625)。

帧间编码器(630)被配置成接收当前块(例如处理块)的样本、比较该块与参考图片中的一个或多个参考块(例如先前图片和后来图片中的块)、生成帧间预测信息(例如根据帧间编码技术的冗余信息描述、运动矢量、合并模式信息)、以及基于帧间预测信息使用任何合适的技术计算帧间预测结果(例如已预测块)。在一些示例中,参考图片是基于已编码视频信息解码的已解码参考图片。

帧内编码器(622)被配置成接收当前块(例如处理块)的样本、在一些情况下比较该块与同一图片中已编码的块、在变换之后生成量化系数、以及在一些情况下还生成帧内预测信息(例如根据一个或多个帧内编码技术生成帧内预测方向信息)。在示例中,帧内编码器(622)还基于帧内预测信息和同一图片中的参考块计算帧内预测结果(例如已预测块)。

通用控制器(621)被配置成确定通用控制数据,且基于该通用控制数据控制视频编码器(603)的其它组件。在示例中,通用控制器(621)确定块的模式,且基于该模式将控制信号提供到开关(626)。举例来说,当该模式是帧内模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧内模式结果,且控制熵编码器(625)以选择帧内预测信息且将该帧内预测信息包括在码流中;以及当该模式是帧间模式时,通用控制器(621)控制开关(626)以选择供残差计算器(623)使用的帧间预测结果,且控制熵编码器(625)以选择帧间预测信息且将该帧间预测信息包括在码流中。

残差计算器(623)被配置成计算所接收的块与选自帧内编码器(622)或帧间编码器(630)的预测结果之间的差(残差数据)。残差编码器(624)被配置成基于残差数据操作,以对残差数据进行编码以生成变换系数。在示例中,残差编码器(624)被配置成将残差数据从空间域转换至频域,且生成变换系数。变换系数接着经受量化处理以获得量化的变换系数。在各种实施例中,视频编码器(603)还包括残差解码器(628)。残差解码器(628)被配置成执行逆变换,且生成已解码残差数据。已解码残差数据可适当地由帧内编码器(622)和帧间编码器(630)使用。举例来说,帧间编码器(630)可基于已解码残差数据和帧间预测信息生成已解码块,且帧内编码器(622)可基于已解码残差数据和帧内预测信息生成已解码块。适当处理已解码块以生成已解码图片,且在一些示例中,该已解码图片可在存储器电路(未示出)中缓冲并用作参考图片。

熵编码器(625)被配置成将码流格式化以包括已编码块。熵编码器(625)被配置成根据例如HEVC标准的合适标准而包括各种信息。在示例中,熵编码器(625)被配置成将通用控制数据、所选预测信息(例如帧内预测信息或帧间预测信息)、残差信息和其它合适的信息包括在码流中。应注意,根据所公开的主题,当在帧间模式或双向预测模式的合并子模式中对块进行编码时,不存在残差信息。

图7示出了根据本公开的另一实施例的视频解码器(710)的图。视频解码器(710)被配置成接收作为已编码视频序列的一部分的已编码图片,且对该已编码图片进行解码以生成重建的图片。在示例中,视频解码器(710)用于代替图3的示例中的视频解码器(310)。

在图7的示例中,视频解码器(710)包括如图7中所示耦接到一起的熵解码器(771)、帧间解码器(780)、残差解码器(773)、重建模块(774)和帧内解码器(772)。

熵解码器(771)可被配置成根据已编码图片来重建某些符号,这些符号表示构成该已编码图片的语法元素。此类符号可包括例如用于对该块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、后两者的合并子模式或另一子模式)、可识别分别供帧内解码器(772)或帧间解码器(780)使用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。在示例中,当预测模式是帧间或双向预测模式时,将帧间预测信息提供到帧间解码器(780);以及当预测类型是帧内预测类型时,将帧内预测信息提供到帧内解码器(772)。残差信息可经受逆量化并提供到残差解码器(773)。

帧间解码器(780)被配置成接收帧间预测信息,且基于该帧间预测信息生成帧间预测结果。

帧内解码器(772)被配置成接收帧内预测信息,且基于该帧内预测信息生成预测结果。

残差解码器(773)被配置成执行逆量化以提取解量化的变换系数,且处理该解量化的变换系数,以将残差从频域转换到空间域。残差解码器(773)还可能需要某些控制信息(用以包括量化器参数QP),且该信息可由熵解码器(771)提供(未标示数据路径,因为这仅仅是低量控制信息)。

重建模块(774)被配置成在空间域中组合由残差解码器(773)输出的残差与预测结果(根据具体情况,可由帧间预测模块或帧内预测模块输出)以形成重建的块,该重建的块可以是重建的图片的一部分,该重建的图片继而可以是重建的视频的一部分。应注意,可执行诸如解块操作等其它合适的操作来改善视觉质量。

应注意,可使用任何合适的技术来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在实施例中,可使用一个或多个集成电路来实施视频编码器(303)、视频编码器(503)和视频编码器(603)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。在另一实施例中,可使用执行软件指令的一个或多个处理器来实施视频编码器(303)、视频编码器(503)和视频编码器(503)以及视频解码器(310)、视频解码器(410)和视频解码器(710)。

II.帧内块复制

对于基于混合块的视频编码,根据不同图片的运动补偿(帧间图片运动补偿)是众所周知的。类似地,运动补偿还可以根据同一图片内的先前已重建区域执行。这种运动补偿被称为帧内图片块补偿、当前图片参考(CPR)或帧内块复制(IBC)。在IBC中,指示当前块和参考块之间的偏移的位移矢量被称为块矢量(BV)。与根据不同图片的运动补偿中的运动矢量(该运动矢量可以是任何值(正或负、处于x或y方向))不同,块矢量具有几个约束,从而确保所指向的参考块是可用且已重建的。此外,出于并行处理的考虑,对于IBC,还排除了作为图块边界或波前梯形边界的一些参考区域。

块矢量的编码可以是显式或隐式的。在显式模式(或者在帧间编码中被称为高级运动矢量预测(AMVP)模式)中,用信号通知块矢量与其预测器之间的差异。在隐式模式中,以与合并模式中获得运动矢量的方式类似的方式,完全根据块矢量的预测值来恢复块矢量。在一些实现方式中,块矢量的分辨率被限制到整数位置;在其它系统中,可允许块矢量的分辨率指向分数位置。

在一个实施例中,可使用被称为IBC标志的块级标志来用信号通知在块级处IBC的使用。在一个示例中,当当前块不是以合并模式编码时,用信号通知IBC标志。在另一个示例中,可通过参考索引方法来用信号通知IBC的使用,且将当前解码图片视为参考图片。例如,在HEVC屏幕内容编码(SCC)中,将这种参考图片置于参考图片列表的最后位置。该特殊参考图片也与其它时间参考图片一起在已解码图片缓冲器(DPB)中被管理。

对于IBC,还存在一些变体,例如将IBC视为不同于帧内预测模式或帧间预测模式的第三模式。通过这样做,将用于IBC的合并模式和AMVP模式中的块矢量预测与常规帧间模式分离。例如,对IBC模式定义单独的合并候选列表,该列表中的所有条目都是块矢量。类似地,IBC AMVP模式中的块矢量预测列表由块矢量组成。适用于两个列表的一般规则是:在候选推导过程方面,规则可遵循与帧间合并候选列表或AMVP预测器列表相同的逻辑。例如,访问HEVC或VVC帧间合并模式中的5个空间相邻位置(在图10中示出)以推导出用于IBC的合并候选列表。

图8示出了帧内图片块补偿的示例。正在处理的图片(810)(被称为当前图片)被划分成多个CTU(811-825)。CTU(811-822)已被解码。当前CTU(823)正在被处理。为了解码当前CTU(823)中的IBC编码的当前块(801),首先可确定块矢量(803)。基于块矢量(803),可定位CTU(817)中的参考块(802)(还称为预测块或预测值块)。因此,可通过将参考块(802)与当前块(801)的残差结合来重建当前块(801)。如图所示,参考块(802)和当前块(801)位于同一个当前图片(810)中。

图9A至图9D示出了帧内图片块补偿的示例,其中一个CTU大小的存储器用于存储已重建样本。在第一示例中,可将IBC模式的搜索范围限制在当前CTU内。因此,存储用于IBC模式的参考样本的有效存储器要求是一个CTU大小的样本。作为示例,128×128当前CTU可划分成四个64×64区域。考虑到现有的参考样本存储器存储当前64×64区域中的已重建样本,因此需要另外3个64×64大小的参考样本存储器。基于这个事实,在第二示例中,用于存储参考像素的总存储器要求保持不变(1个CTU大小,总共4个64×64参考样本存储器)的同时,IBC模式的有效搜索范围可扩展到左侧CTU的某一部分。

图9A至图9D示出了如何将一个CTU大小的存储器重新用于搜索左侧CTU。图9A至图9D各自示出了大小为128×128个样本的左侧CTU和右侧CTU。每个CTU划分成四个64×64区域。在图9A中,左侧CTU中的已重建区域(901-903)和正在处理的当前区域904可存储在一个CTU大小的存储器中。在图9B中,左侧CTU中的两个已重建区域(911-912)、当前CTU中的一个已重建区域(913)和当前区域(914)可存储在一个CTU大小的存储器中。在图9C中,左侧CTU中的已重建区域(921)、当前CTU中的两个已重建区域(922-923)和当前区域924可存储在一个CTU大小的存储器中。在图9D中,当前CTU中的三个已重建区域(931-933)和当前区域934可存储在一CTU大小的存储器中。

在一些实施例中,要求在码流中用信号通知的块矢量遵循一组码流符合性条件。作为一个示例,由mvL表示的、以1/16像素分辨率的有效亮度块矢量应该遵守以下码流符合性条件。

A1:当以相邻亮度位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))和设置成等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)作为输入,来调用用于块可用性的推导过程时,输出应等于“真”(意味着块已被构建,因此是可用的)。块可用性的推导过程还被称为相邻块可用性检查过程。条件A1验证了在位置(xCb+(mvL[0]>>4),yCb+(mvL[1]>>4))处的参考块的左上角样本是可用的(已重建)。

A2:当以相邻亮度位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4+cbHeight-1))和设置成等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)作为输入,来调用用于块可用性的推导过程时,输出应等于“真”。条件A2验证了在位置(xCb+(mvL[0]>>4)+cbWidth-1,yCb+(mvL[1]>>4+cbHeight-1))处的参考块的右下角样本是可用的。

B1:以下条件之一或两者应为真:(mvL[0]>>4)+cbWidth的值小于或等于0;和(mvL[1]>>4)+cbHeight的值小于或等于0。条件B1验证了参考块与当前块不重叠。

C1:以下条件应为真:

(yCb+(mvL[1]>>4))>>CtbLog2SizeY=yCb>>CtbLog2SizeY;

(yCb+(mvL[1]>>4)+cbHeight-1)>>CtbLog2SizeY=yCb>>CtbLog2SizeY;)

(xCb+(mvL[0]>>4))>>CtbLog2SizeY>=(xCb>>CtbLog2SizeY)-1;以及

(xCb+(mvL[0]>>4)+cbWidth-1)>>CtbLog2SizeY<=(xCb>>CtbLog2SizeY)。

条件C1验证了参考块是位于当前CTU或当前CTU的左CTU中的。

C2:当(xCb+(mvL[0]>>4))>>CtbLog2SizeY等于(xCb>>CtbLog2SizeY)-1时,以相邻亮度位置(((xCb+(mvL[0]>>4)+CtbSizeY)>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1)、((yCb+(mvL[1]>>4))>>(CtbLog2SizeY-1))<<(CtbLog2SizeY-1))和设置成等于(xCb,yCb)的当前亮度位置(xCurr,yCurr)作为输入,来调用用于块可用性的推导过程,则输出应等于“假”(尚未构建)。条件C2验证了左侧CTU中的参考区域(例如,图9C中的区域(921))与当前CTU中尚未构造的区域对应。

III.当前块的空间合并候选

图10示出了当前块(1010)的五个空间合并候选。空间合并候选可用于构建用于当前块(1010)的块矢量预测的预测值列表。例如,正在用跳过模式、合并模式或AMVP模式来构建当前块(1010)。可构造候选列表。候选列表上的候选可选自空间候选位置A1、A0、B2、B0和B1。在一个示例中,按照顺序A0、B0、B1、A1和B2来检查空间候选位置的可用性。当候选位置可用时,可将候选位置处的运动信息添加到候选列表中,作为候选。可在码流中接收对候选列表的索引。对应于索引的候选可用作运动矢量预测(或预测器)以确定当前块1010的运动矢量。

IV.基于历史的运动矢量预测(HMVP)

在一些示例中,使用基于历史的运动矢量预测(HMVP)方案来对块进行编码。例如,在空间运动矢量预测(SMVP)候选和时间运动矢量预测(TMVP)候选之后,将HMVP合并候选添加到合并列表中。在该方法中,先前已编码块的运动信息存储在表(被称为HMVP表)中,并用作当前CU的运动矢量预测值(MVP)。在编码或解码过程期间,维护具有多个HMVP候选的HMVP表。在一些示例中,当遇到新的CTU行时,HMVP表被重置(清空)。在一些示例中,每当存在非子块帧间编码的CU时,就将相关联的运动信息添加到HMVP表的最后一个条目,作为新的HMVP候选。

在一个实施例中,HMVP表的大小S设置为6,这表明最多可以将6个HMVP候选添加到HMVP表中。当将新的运动候选插入HMVP表中时,使用受约束的先进先出(FIFO)规则。首先应用冗余校验来查找HMVP表中是否存在相同的HMVP。如果找到,则从表中去除相同的HMVP,然后将在后面的所有HMVP候选向前移动。

HMVP候选可用于合并候选列表构建过程。在一个示例中,HMVP表中最新的若干个HMVP候选按顺序受到检查,并在TMVP候选之后插入到候选列表中。针对空间或时间合并候选,对HMVP候选应用冗余校验。

在一个实施例中,为了减少冗余校验操作的次数,引入以下简化。(1)用于合并列表生成的HMVP候选的数量设置为(N<=4)?M:(8-N),其中N表示合并列表中现有候选的数量,且M表示HMVP表中可用HMVP候选的数量。(2)在一个示例中,一旦可用合并候选的总数达到最大允许合并候选减1,则终止根据HMVP的合并候选列表构建过程。

V.基于HBVP表的帧内块复制(IBC)

在各个实施例中,IBC模式作为与帧间模式(来自与当前图片不同的图片的运动补偿)分离的模式来操作。单独的历史缓冲器(被称为基于历史的块矢量预测(HBVP)缓冲器)用于存储先前已处理(在编码器侧已编码/在解码器侧已解码)的IBC块矢量。当在编码器侧或解码器侧对已以IBC模式编码的当前块进行处理时,可基于HBVP缓冲器来确定当前块的块矢量。HBVP缓冲器还可被称为HBVP表或HBVP列表。在本文的具体实施方式中,HBVP缓冲器、HBVP表和HBVP列表可互换使用。

本文所述的实施例可单独使用或以任何顺序组合使用。此外,方法(或实施例)、编码器和解码器中的每一个可由处理电路(例如,一个或多个处理器或者一个或多个集成电路)实现。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序。在详细描述中,术语“块”可被解释为预测块、编码块或编码单元(CU)。

实施例A

当将已处理块的块矢量添加到HBVP表中时,可以将已处理块的位置(或定位)信息记录在HBVP表中。换句话说,对于HBVP表中的每个条目,除了存储块矢量信息之外,还存储与块矢量相关联的编码块(先前已编码或已解码的块)的位置。

在一个示例中,由于多个编码块中每个编码块的位置不同,因此当将新的块矢量和相关联的位置信息添加到HBVP表时,不执行冗余校验。在另一示例中,当将新的块矢量和相关联的位置信息添加到HBVP表时,执行冗余校验。例如,将新的块矢量与HBVP表中先前存储的块矢量进行比较。如果找到相似或相同的旧的块矢量,则可去除包括旧的块矢量的旧条目,且可以将包括新的块矢量和相关联的位置信息的条目添加到HBVP表中作为最近的候选。

在各个示例中,编码块的位置可由编码块的四个角中的一个角表示。例如,可以使用编码块的角的x和y坐标来指示位置。在一个示例中,编码块的位置由编码块的右下角的位置表示。在另一示例中,编码块的位置可由编码块的左下角的位置表示。

在一个示例中,编码块的位置可由编码块的四个角中的一个角的位置加上编码块的大小(例如,宽度和高度)信息来表示。

在一个示例中,HBVP表在每个CTU行的开始处被重置(例如,清空)。在这种配置下,针对每个相应已编码块的y坐标,可以使用距相应CTU上边缘的相对y偏移来记录HBVP表中每个条目的位置信息。在另一实施例中,HBVP表在每个CTU的开始处被重置。因此,针对每个相应已编码块的x和y坐标,可以使用距相应CTU原点的相对x和y偏移来记录HBVP中每个条目的位置信息。在另一示例中,当在HBVP表中记录条目的x和y坐标时,与HBVP表重置操作无关地记录距相应已编码块的相应CTU原点的偏移。

实施例B

在一些示例中,基于HBVP表构造块矢量预测(BVP)候选列表。当从HBVP中选择条目作为BVP候选列表上的BVP候选时,考虑条目的位置(或定位)(指的是相应条目对应的已编码块的位置)。

在一个示例中,当前块的位置和条目的位置进行比较。如果条目的位置在当前块的右下位置,则调整条目的位置信息。基于调整后的位置信息,可确定编码块和当前块之间的位置关系。

例如,当计算当前块与HBVP表中的一个条目的相对位置时,如果当前块的x和y坐标分别小于条目的x和y坐标(意味着先前已编码块相对于当前块位于右下位置,这是不可能的),则当执行计算时,将(-CTU宽度,0)的偏移添加到条目的坐标。因此,将这个条目移动到当前块的左侧(意味着相应块矢量现在是从CTU指向当前CTU的左侧)。

在一个示例中,位于当前块的左侧的条目可选自HBVP表,并用作块矢量预测值(例如,添加到BVP候选列表)。例如,HBVP表中的条目包括与已编码块的左上角对应的x坐标。如果x坐标小于当前块的左上角的坐标,则可确定条目(或对应的编码块)位于当前块的左侧。

类似地,可从HBVP表中选择当前块上方的块矢量。例如,HBVP表中的条目包括与已编码块的左上角对应的y坐标。如果y坐标小于当前块的左上角的y坐标,则可确定条目(或对应的编码块)位于当前块的上方。

因此,在一些示例中,可基于从HBVP表中选择的、位于当前块的左侧或上方的条目来构建BVP候选列表。

在一些示例中,采用最大数量2×N个预测值(例如,预测值被添加到BVP候选列表)来预测当前块的块矢量。在一个示例中,N=1,则2×N个预测值中的一个预测值来自HBVP表中位于左侧的条目(指的是位于当前块左侧的条目),而2×N个预测值中的另一个预测值来自HBVP表中位于上方的条目(指的是位于当前块上方的条目)。在另一个示例中,N=2,则BVP候选列表中的预测器的顺序可以是:第一左侧->第一上方->第二左侧->第二上方(假设HBVP表中有足够的条目)。当HBVP表中没有足够的条目时,预测值列表(BVP候选列表)中的对应项可以为空,并用下一项填充。

在一些示例中,从HBVP表中最近编码的条目开始,选择当前块左侧的第一条目作为左侧预测值。选择当前块左侧的下一个条目作为第二左侧预测值。以这种方式,可连续地选择左侧预测值。

在一些示例中,从HBVP表中最近编码的条目开始,可选择当前块上方的第一条目作为第一上方预测值。可选择当前块上方的下一个条目作为第二上方预测值。以这种方式,可连续地选择上方预测值。

在一个示例中,通过扫描HBVP表中的前N个HBVP条目来构建二维候选预测值列表(BVP候选列表)。在不同的示例中,前N个条目可以是最近已编码的N个条目,或者可以是最先已编码的N个条目。例如,N可以小于HBVP表的大小S。当前块左侧的第一条目可作为第一候选放入预测值列表中。当前块上方的第一条目可作为第二候选放入预测值列表中。如果HBVP表中仅存在上方候选或仅存在左侧候选,则可选择前两个可用条目作为预测值。

实施例C

在一些实施例中,可以如下方式来构建BVP候选列表(预测值列表)。如果HBVP表中的块矢量具有与当前块相邻的关联位置,则该块矢量被推导为预测值。例如,可根据例如从最新到最旧的顺序来扫描HBVP表中的条目。如果条目与当前块相邻(该条目包括与当前块相邻的位置),则将该条目的块矢量放入预测值列表中。该过程可以继续,直到达到预测值列表中的最大候选数为止。例如,在图10中,5个空间相邻的位置被认为与当前块(1010)相邻。可考虑HBVP表中具有与图10中的五个位置对应的位置的条目,并根据某一顺序(例如,A0、B0、B1、A1和B2)选择这些条目作为预测值列表中的候选。

在一个示例中,如果HBVP缓冲器中的块矢量不与当前块相邻,则可将HBVP缓冲器中的该块矢量放在预测值列表中在空间相邻条目之后的靠后位置。在另一个示例中,如果HBVP缓冲器中的块矢量不与当前块相邻,则可以不在预测值列表中使用该块矢量。

实施例D

在一些示例中,当块矢量放入预测器列表中时,可执行冗余校验以确保新的预测值不同于预测值列表中的其它已有的预测值。

实施例E

在各个示例中,可基于HBVP表来构建预测值列表,且预测值列表用于合并模式、跳过模式或AMVP模式(差分编码的矢量预测),以对当前块的块矢量进行编码(块矢量预测)。

实施例F

在一个实施例中,可在解码过程期间维护多个HBVP表。每个HBVP表可以与不同的标准相关联,以用于获取新的已编码块矢量(先前已解码块的块矢量)。以这种方式,编码块的块矢量可分类成不同的组并存储在对应的HBVP表中。当对当前的IBC编码的块进行编码时,可从那些单独的HBVP表中选择一个或多个块矢量,且将所选择的一个或多个块矢量用作对当前块的块矢量进行编码的预测值。类似地,这些HBVP表中的条目各自可包括编码块的块矢量、编码块的位置(x和y坐标)、编码块的大小(宽度和高度)或其它相关信息。

在第一示例中,针对HBVP表中的一个HBVP表,获取已编码块的新的块矢量的标准是已编码块满足块大小条件。可以以各种方式测量已编码块的块大小。例如,块大小可以是通过将已编码块的宽度与高度相乘而计算出的该已编码块中的亮度样本的数量。在一个示例中,块大小条件是块大小大于或等于阈值T_size1且小于另一阈值T_size2。在一个示例中,块大小条件是块大小大于或等于阈值。

在第二示例中,针对HBVP表中的一个HBVP表,获取已编码块的新的块矢量的标准是已编码块的左上角的x坐标xc满足以下条件:xc%ctuSizeY大于或等于阈值T_x0且小于另一阈值T_x1。符号%表示取模运算,且ctuSizeY表示CTU的大小。

在第三实施例中,针对HBVP表中的一个HBVP表,获取已编码块的新的块矢量的标准是已编码块的左上角的y坐标yc满足以下条件:yc%ctuSizeY大于或等于阈值T_y0且小于另一阈值T_y1。

在第四示例中,针对HBVP表中的一个HBVP表,获取已编码块的新的块矢量的标准是已编码块的右下角的x坐标xc满足以下条件:xc%ctuSizeY大于或等于阈值T_x0且小于另一阈值T_x1。

在第五示例中,针对HBVP表中的一个HBVP表,获取已编码块的新的块矢量的标准是已编码块的右下角的y坐标yc满足以下条件:yc%ctuSizeY大于或等于阈值T_y0且小于另一阈值T_y1。

在上述示例中,当将新的块矢量放入HBVP表中时,可应用剪除过程(pruningprocess)。例如,当在HBVP表中找到具有与新的块矢量的块矢量值相同的块矢量值的条目时,可去除该条目。包括新的块矢量的新条目可放在用于存储包括最近已编码块的块矢量的条目的位置。

实施例G

在一个实施例中,针对IBC编码块的块矢量预测维护一个或多个HBVP表。每个HBVP表与用于获取新的块矢量的特定标准相关联。假设总共创建并维护N个HBVP表。N是正整数且大于或等于1。

在第一示例中,对于没有存储任何条目的每个HBVP表,使用一组默认的块矢量预测值来填充HBVP表。例如,默认的块矢量预测值可以是零值块矢量(x和y坐标为零)。

在第二示例中,可在解码器处从码流接收指向N个HBVP表之一的索引。作为响应,可以选择由索引指示的HBVP表中的条目以用于对当前块的块矢量预测。例如,可选择由索引指示的HBVP表中的最近条目(最近添加的条目)作为当前IBC编码块的块矢量预测值。对于另一示例,选择由索引指示的HBVP表中最早的条目(最早的已编码条目)作为当前IBC编码块的块矢量预测值。

实施例H

在一个实施例中,在解码器处的解码过程期间维护单个HBVP表HBVP0。在对当前IBC编码块进行解码时,为了确定当前块的块矢量预测值,将HBVP0中的条目分类成不同的组。将每个组存储在被称为分类HBVP表的单独的HBVP表中。可以给每个分类HBVP表分配用于从HBVP0获取条目的特定标准。因此,分类操作可基于那些标准。

例如,HBVP0的大小可以是M。分类HBVP表的数量可以是小于或等于M的N。分类HBVP表可以表示为从HBVP1到HBVPN。

例如,可以使用如实施例F中所描述的用于对新的已编码块矢量进行分类的标准,来将HBVP0的条目分类到从表HBVP1到表HBVPN中。在其它示例中,可采用与实施例F中的标准不同的标准。当将新条目放入HBVPx表(x=0,1,..,N)时,可应用剪除过程。例如,当在HBVPx中存在具有与新条目的块矢量值相同的块矢量值的旧条目时,可去除旧条目,且将新条目放在用于存储最近已编码块的信息的位置。

在一个示例中,在生成表HBVP1到表HBVPN之后,可根据从码流接收的索引来从表HBVP1到表HBVPN之一选择条目。所选择的条目中的块矢量可用作当前块的块矢量预测值。

在第一种情况下,索引可指示表HBVP1到表HBVPN之一。响应于接收到索引,可以从由该索引所指示的HBVP表中选择最新的条目(最近的条目)。

在第二种情况下,首先可通过根据一些规则(例如,如在实施例C中描述的)从表HBVP1到表HBVPN中选择条目来构建预测值列表。索引可指示预测值列表上的候选。响应于接收到索引,可以将预测值列表上的候选用作当前块的块矢量预测值。

VI.基于HBVP表的IBC模式解码过程的示例

图11示出了对根据本公开的一些实施例的过程(1100)进行概述的流程图。过程(1100)可用于重建IBC编码块,以针对正在重建的块生成预测块。在各种实施例中,过程(1100)由诸如终端装置(210)、终端装置(220)、终端装置(230)和终端装置(240)中的处理电路、执行视频解码器(310)的功能的处理电路、执行视频解码器(410)的功能的处理电路之类的处理电路执行。在一些实施例中,过程(1100)以软件指令实现,因此当处理电路执行软件指令时,处理电路执行过程(1100)。该过程在(S1101)处开始并进行到(S1110)。

在(S1110)处,可在解码器处对图片进行解码的过程期间维护HBVP表。例如,HBVP表可包括一个或多个条目,每个条目对应于先前已解码的IBC编码块。每个条目可包括对应的先前已解码块的块矢量和对应的先前已解码块的位置。该位置可以是先前已编码块的四个角中的一个角的x坐标和y坐标。在一个示例中,每个条目还可包括相应的先前已解码块的大小信息(例如,宽度和高度)。

在(S1120)处,可在码流中接收以IBC模式编码的当前块的数据。例如,该数据可包括对应于当前块的一组块级语法元素。语法元素之一可指示当前块是以IBC模式编码的。

在(S1130)处,可基于HBVP表确定当前块的块矢量。为了确定当前块的块矢量,首先可确定当前块的块矢量的块矢量预测值。

在一个示例中,可基于HBVP表构建BVP候选列表。然后,例如基于在码流中接收的BVP候选列表上的候选的索引,从BVP候选列表中选择候选。所选择的候选可包括用作块矢量预测值的块矢量。BVP候选列表可包括第一候选和第二候选中的一个或多个。第一候选可包括HBVP表中的块矢量中的第一块矢量。第一块矢量的对应的先前已解码块具有在当前块左侧的位置。第二候选可包括HBVP表中的块矢量中的第二块矢量。第二块矢量的对应的先前已解码块可具有在当前块上方的位置。

在一些示例中,为了确定块矢量预测值,首先将HBVP表中的条目分类成不同的组,将每个组存储在分类HBVP表中。每个分类HBVP表可以与用于获取新条目的标准相关联。例如,当HBVP表的条目之一对应的先前已解码块的大小满足块大小条件时,HBVP表的该条目存储在多个分类HBVP表中的一个分类HBVP表中。例如,块大小条件可以是HBVP表的条目之一对应的先前已解码块的亮度样本的数量大于或等于阈值。

对于另一个示例,可基于HBVP表中存储的每个对应的先前已解码块的x坐标、y坐标或者x坐标和y坐标的组合,将HBVP表中的条目分类到分类HBVP表中。因此,可以将相对于当前块位于不同位置的编码块的条目存储在不同的分类表中。

可以基于多个分类HBVP表来确定块矢量预测值。在一个示例中,可在码流中接收对分类HBVP表中的一个分类HBVP表进行指示的索引。因此,可以从所指示的分类HBVP表中选择一个条目。所选择的条目可以与所指示的分类HBVP表中的条目的已解码块之中最近的已解码块对应。所选择的条目的块矢量可用作当前块的块矢量的块矢量预测值。

在另一个示例中,可基于分类HBVP表来构建BVP候选列表。BVP候选列表可包括一个或多个BVP候选,每个BVP候选包括从分类HBVP表中选择的块矢量。随后,可基于从码流接收的索引,从BVP候选列表中选择BVP候选,作为当前块的块矢量的块矢量预测值。

在确定块矢量预测值之后,可相应地确定当前块的块矢量。例如,可以在跳过模式、合并模式或AMVP模式之一中以IBC模式对当前块进行编码。对于跳过模式和合并模式,可以将块矢量预测值用作当前块的块矢量。对于AMVP模式,可在码流中接收矢量差,并将矢量差添加到块矢量预测值,以形成当前块的块矢量。

在(S1140)处,可基于所确定的当前块的块矢量来重建当前块。例如,可基于块矢量在图片的已解码区域中确定参考块,并将参考块与当前块的残差结合以形成重建块。

在(S1150)处,可使用当前块的块矢量来更新HBVP表。例如,可以将当前块的块矢量、当前块的位置、宽度和高度存储在HBVP表中。当更新HBVP表时,可执行冗余校验。然后,过程(1100)可进行到(S1199),并在(S1199)处终止。

VII.计算机系统

可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,且物理地存储在一个或多个计算机可读介质中。例如,图12示出了适合于实施所公开的主题的某些实施例的计算机系统(1200)。

可以使用任何合适的机器代码或计算机语言来对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由一个或多个计算机中央处理单元(CPU)、图形处理单元(GPU)等直接执行或通过解释、微代码等执行。

指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。

图12所示的计算机系统(1200)的组件本质上是示例性的,并且不旨在对实施本公开的实施例的计算机软件的使用范围或功能提出任何限制。组件的配置也不应被解释为具有与计算机系统(1200)的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖性或要求。

计算机系统(1200)可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户例如通过下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未描绘出)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些媒体,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。

输入人机接口装置可以包括下述中的一项或多项(每种中仅示出一个):键盘(1201)、鼠标(1202)、触控板(1203)、触摸屏(1210)、数据手套(未示出)、操纵杆(1205)、麦克风(1206)、扫描仪(1207)、相机(1208)。

计算机系统(1200)也可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏(1210)的触觉反馈、数据手套(未示出)或操纵杆(1205),但是也可以是不作为输入设备的触觉反馈装置)、音频输出装置(例如:扬声器(1209)、耳机(未示出))、视觉输出装置(例如包括CRT屏幕、LCD屏幕、等离子屏幕、OLED屏幕的屏幕(1210),每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能-其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未描绘出)、全息显示器和烟箱(未描绘出)以及打印机(未描绘出)来输出二维视觉输出或超过三维输出。

计算机系统(1200)也可以包括人类可访问存储装置及其关联介质:例如包括具有CD/DVD等介质(1221)的CD/DVD ROM/RW(1220)的光学介质、指状驱动器(1222)、可拆卸硬盘驱动器或固态驱动器(1223)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用ROM/ASIC/PLD的装置(未示出)等。

本领域技术人员还应该理解,结合当前公开的主题使用的术语“计算机可读介质”不涵盖传输介质、载波或其他瞬时信号。

计算机系统(1200)还可以包括到一个或多个通信网络(1255)的接口(1254)。网络可以例如是无线网络、有线网络、光网络。网络可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、耐延迟网络等。网络的示例包括诸如以太网之类的局域网、无线LAN、包括GSM、3G、4G、5G、LTE等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括CANBus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(1249)的外部网络接口适配器(例如计算机系统(1200)的USB端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统(1200)的内核中(例如,连接PC计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(1200)可以使用这些网络中的任何一个与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些CANbus装置的CANbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口的每一个上使用某些协议和协议栈。

上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统(1200)的内核(1240)。

内核(1240)可以包括一个或多个中央处理单元(CPU)(1241)、图形处理单元(GPU)(1242)、现场可编程门区域(FPGA)(1243)形式的专用可编程处理单元、用于某些任务的硬件加速器(1244)、图形适配器(1250)等。这些装置以及只读存储器(ROM)(1245)、随机存取存储器(1246)、诸如内部非用户可访问的硬盘驱动器、SSD等之类的内部大容量存储器(1247)可以通过系统总线(1248)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(1248),以能够通过附加的CPU、GPU等进行扩展。外围装置可以直接连接到内核的系统总线(1248)或通过外围总线(1249)连接到内核的系统总线(1248)。在图12中,屏幕(1210)连接到图形适配器(1250)。外围总线的体系结构包括PCI、USB等。

CPU(1241)、GPU(1242)、FPGA(1243)和加速器(1244)可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在ROM(1245)或RAM(1246)中。过渡数据也可以存储在RAM(1246)中,而永久数据可以例如存储在内部大容量存储器(1247)中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个CPU(1241)、GPU(1242)、大容量存储器(1247)、ROM(1245)、RAM(1246)等。

计算机可读介质可以在其上具有用于执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于本公开的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。

作为非限制性示例,可以由于一个或多个处理器(包括CPU、GPU、FPGA、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(1200),特别是内核(1240)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储器相关联的介质,以及某些非暂时性的内核(1240)的存储器,例如内核内部大容量存储器(1247)或ROM(1245)。可以将实施本公开的各种实施例的软件存储在此类装置中并由内核(1240)执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以引起内核(1240),特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在RAM(1246)中的数据结构以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器(1244))中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(Integrated Circuit,IC))、体现用于执行的逻辑的电路或两者都包括。本公开包括硬件和软件的任何合适的组合。

附录A:缩略语

AMVP:高级运动矢量预测

ASIC:专用集成电路

BMS:基准集

BV:块矢量

CANBus:控制器局域网总线

CD:光盘

CPR:当前图片参考

CPU:中央处理单元

CRT:阴极射线管

CTB:编码树块

CTU:编码树单元

Cu:编码单元

DPB:已解码图片缓冲器

DVD:数字视频光盘

FIFO:先进先出

FPGA:现场可编程门区域

GOP:图片组

GPU:图形处理单元

GSM:全球移动通信系统

HBVP:基于历史的块矢量预测

HEVC SCC:HEVC屏幕内容编码

HEVC:高效视频编码

HMVP:基于历史的运动矢量预测

HRD:假定参考解码器

IBC:帧内块复制

IC:集成电路

JEM:联合探索模型

LAN:局域网

LCD:液晶显示器

LTE:长期演进

MV:运动矢量

MVP:运动矢量预测器

OLED:有机发光二极管

PB:预测块

PCI:外围部件互连

PLD:可编程逻辑器件

PU:预测单元

RAM:随机存取存储器

ROM:只读存储器

SEI:补充增强信息

SNR:信噪比

SSD:固态驱动器

TMVP:时间运动矢量预测

TU:变换单元

USB:通用串行总线

VTM:VVC测试模型

VUI:视频可用性信息

VVC:下一代视频编码

尽管本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的修改、置换和各种替换等效物。因此,应当理解,本领域技术人员将能够设计出许多系统和方法,这些系统和方法虽然未在本文中明确示出或描述,但其体现了本公开的原理,因此落入本公开的精神和范围内。

40页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于在视频编解码中用信号发送合并模式的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类