CN113196775A - 用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区 - Google Patents
用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区 Download PDFInfo
- Publication number
- CN113196775A CN113196775A CN201980082307.1A CN201980082307A CN113196775A CN 113196775 A CN113196775 A CN 113196775A CN 201980082307 A CN201980082307 A CN 201980082307A CN 113196775 A CN113196775 A CN 113196775A
- Authority
- CN
- China
- Prior art keywords
- prediction
- video
- block
- pixels
- current block
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 213
- 230000015654 memory Effects 0.000 claims abstract description 149
- 239000000872 buffer Substances 0.000 claims description 106
- 238000012545 processing Methods 0.000 abstract description 63
- 239000013598 vector Substances 0.000 description 77
- 238000003860 storage Methods 0.000 description 69
- 230000008569 process Effects 0.000 description 54
- 239000010410 layer Substances 0.000 description 52
- 238000010586 diagram Methods 0.000 description 29
- 238000004891 communication Methods 0.000 description 27
- 238000005192 partition Methods 0.000 description 27
- 238000013139 quantization Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 25
- 241000023320 Luma <angiosperm> Species 0.000 description 18
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 18
- 230000006870 function Effects 0.000 description 15
- 238000000638 solvent extraction Methods 0.000 description 15
- 230000003044 adaptive effect Effects 0.000 description 14
- 230000002123 temporal effect Effects 0.000 description 13
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 12
- 230000001965 increasing effect Effects 0.000 description 11
- 238000013500 data storage Methods 0.000 description 10
- 238000001914 filtration Methods 0.000 description 10
- 230000006835 compression Effects 0.000 description 8
- 238000007906 compression Methods 0.000 description 8
- 238000006073 displacement reaction Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 239000000945 filler Substances 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012432 intermediate storage Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000985610 Forpus Species 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000011229 interlayer Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
- H04N19/159—Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/563—Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
用于在处理视频数据中进行帧内块复制(IBC)预测的系统和技术包括一个或多个虚拟搜索区(VSA)的使用,可以生成虚拟搜索区以包括对存储在物理存储器中的一个或多个像素的一个或多个参考。一个或多个VSA能够提供对从先前解码的块导出的附加重建样点值的参考而不引起用于存储附加重建样点的物理存储器使用。能够扩展用于对视频数据的当前块执行IBC预测的搜索区,以包括一个或多个VSA。扩展搜索区以包括一个或多个VSA为IBC预测提供用于找到一个或多个预测块或预测样点的附加搜索区,而不需要利用物理存储器来存储来自先前解码的块的附加重建样点。
Description
技术领域
本公开一般地涉及视频译码(coding)和压缩,更具体地涉及与帧内块复制(Intra-Block Copy,IBC)或者当前图片参考(Current Picture Referencing,CPR)有关的技术和系统。
背景技术
许多设备和系统允许对视频数据进行处理和输出以供消费。数字视频数据包括大量的数据以满足消费者和视频提供商的需求。例如,视频数据的消费者期望具有高保真度、分辨率、帧速率等的最高质量的视频。作为结果,满足这些需求所需的大量视频数据给处理和存储视频数据的通信网络和设备带来了负担。
各种视频译码技术可以被用于压缩视频数。根据一个或多个视频译码标准来执行视频译码。例如,视频译码标准包括高效视频译码(HEVC)、高级视频译码(AVC)、MPEG-2部分2译码(MPEG代表运动图片专家组)、VP9、开放媒体联盟(AOMedia)视频1(AV1)、必要视频译码(EVC)等。视频译码通常利用预测方法(例如,帧间预测、帧内预测等),预测方法利用视频图像或序列中存在的冗余。视频译码技术的重要目标是将视频数据压缩成使用较低比特率的格式,同时避免视频质量的下降或者将视频质量的下降最小化。随着不断发展的视频服务变得可用,需要具有更好的译码效率的编码技术。
发明内容
帧内块复制(IBC)(也被称为当前图片参考(CPR))是一种用于从图片的先前解码的块的一个或多个重建像素来预测视频数据的图片的块的帧内预测技术。在一些情况下,IBC所使用的先前解码的块可以包括未滤波的先前解码的块(例如,在环路滤波之前)。使用图像图片或图像帧中的冗余,IBC执行块匹配以将样点块预测为从图片的相邻或非相邻区域中的重建样点块的位移。通过从内容的重复图案移除冗余,IBC预测能够提高译码效率,但是能消耗用于存储重建像素(例如,未滤波的重建像素)的附加存储空间。
本文描述了一种或多种译码的系统和方法,用于增强用于IBC预测的搜索区。在一些情况下,本文所描述的系统和方法能够解决用于IBC预测的存储空间利用。在一些示例中,能够增加可用于IBC预测的样点数量而不会引起附加存储空间。在一些示例中,能够生成一个或多个虚拟搜索区(VSA)以包括对存储在物理存储器中的一个或多个像素的一个或多个参考。在一些情况下,对存储在物理存储器中的一个或多个像素的一个或多个参考能够有效地构成像素填充,而不会在物理存储器中产生用于填充像素的存储空间。能扩展用于对当前块执行IBC预测的搜索区以包括虚拟搜索区(例如,虚拟搜索区的填充像素)。例如,虚拟搜索区能提供对从先前解码块导出的附加重建样点值的参考,而不会引起用于存储附加重建样点的物理存储器使用。在一些示例中,扩展搜索区以包括虚拟搜索区为当前块执行的IBC预测提供附加搜索区(即,搜索区是虚拟的,因为搜索区内的像素值未存储在物理存储器中)用于查找预测块或预测样点,而不必利用物理存储器来存储来自以上参考的先前解码块的附加重建样点。
根据至少一个示例,提供了一种解码视频数据的方法。该方法包括获得包括视频数据的经编码的视频比特流。该方法还包括生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。该方法还包括扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。
在另一示例中,提供了一种用于解码视频数据的装置。该装置包括存储器和在电路中实现的处理器。该处理器被配置为获得包括视频数据的经编码的视频比特流。该处理器还被配置为生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。该处理器还被配置为扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。
在另一示例中,提供了一种在其上存储有指令的非暂时性计算机可读介质,在由一个或多个处理器执行时,这些指令使得该一个或多个处理器:获得包括视频数据的经编码的视频比特流;生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。
在另一示例中,提供了一种用于解码视频数据的装置。该装置包括用于获得包括视频数据的经编码的视频比特流的部件。该装置还包括用于生成对视频数据的当前块执行帧内块复制预测的虚拟搜索区的部件,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。该装置还包括用于扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区的部件。
根据至少一个示例,提供了一种编码视频数据的方法。该方法包括获得视频数据的图片的当前块。该方法还包括生成用于对当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。该方法还包括扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。该方法还包括生成包括当前块的至少部分的经编码的视频比特流。
另一示例中,提供了一种用于编码视频数据的装置。该装置包括存储器和在电路中实现的处理器。该处理器被配置为获得视频数据的图片的当前块。该处理器还被配置为生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。该处理器还被配置为扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。
在另一示例中,提供了一种在其上存储有指令的非暂时性计算机可读介质,在由一个或多个处理器执行时,这些指令使得该一个或多个处理器:获得包括视频数据的经编码的视频比特流;生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区;并且生成包括当前块的至少部分的经编码的视频比特流。
在另一示例中,提供了一种用于编码视频数据的装置。该装置包括用于获得视频数据的图片的当前块的部件。该装置还包括用于生成对视频数据的当前块执行帧内块复制预测的虚拟搜索区的部件,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。该装置还包括用于扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区的部件。该装置还包括用于生成包括当前块的至少部分的经编码的视频比特流的部件。
在上述方法、装置和计算机可读介质的一些方面中,物理存储器包括用于存储译码单元的重建像素的循环缓冲器,该译码单元包括视频数据的一个或多个块。
在上述方法、装置和计算机可读介质的一些方面中,存储在物理存储器中的一个或多个像素包括属于译码单元的边界的重建像素。
在上述方法、设备和计算机可读介质的一些方面中,对存储在物理存储器中的一个或多个像素的一个或多个参考包括对属于边界的重建像素的重复参考。
在上述方法、设备和计算机可读介质的一些方面,对属于边界的重建像素的重复参考包括对属于边界的至少一个重建像素的第一参考和对属于边界的该至少一个重建像素的第二参考。
在上述方法、装置和计算机可读介质的一些方面中,当前块属于译码单元。
在上述方法、装置和计算机可读介质的一些方面中,译码单元包括两个或更多个虚拟管线数据单元(VPDU),该两个或更多个VPDU中的至少一个VPDU包括当前块,并且其中循环缓冲器的至少部分被配置为当正在对至少一个VPDU的一个或多个块执行帧内块复制预测时,存储该至少一个VPDU的重建像素。
在上述方法、装置和计算机可读介质的一些方面中,循环缓冲器的至少部分不可用于存储用于对当前块执行帧内块复制预测的搜索区的像素。
在上述方法、装置和计算机可读介质的一些方面中,物理存储器包括用于存储视频数据的一个或多个块的重建像素的线缓冲器(line buffer)。
在上述方法、装置和计算机可读介质的一些方面中,一个或多个块属于包括当前块的当前译码单元的相邻译码单元。
在上述方法、装置和计算机可读介质的一些方面中,对存储在物理存储器中的一个或多个像素的一个或多个参考包括对存储在线缓冲器中的重建像素的重复参考。
在上述方法、装置和计算机可读介质的一些方面,对存储在线缓冲器中的重建像素的重复参考包括对存储在线缓冲器中的至少一个重建像素的第一参考和对存储在线缓冲器中的该至少一个重建像素的第二参考。
上述方法、装置和计算机可读介质的一些方面还包括使用虚拟搜索区中对一个或多个像素的一个或多个参考,对当前块执行帧内块复制预测。
上述方法、设备和计算机可读介质的一些方面还包括基于使用帧内块复制预测获得的预测值和残差值来重建当前块。
本发明内容不旨在确定要求保护的主题的关键或基本特征,也不旨在单独使用以确定要求保护的主题的范围。应通过参考本专利的整个说明书的适当部分、任意或所有附图以及每项权利要求来理解主题。
参考以下说明书、权利要求和附图,上述内容连同其他特征和实施例将变得更加明显。
附图说明
下面参考以下附图对本申请的说明性实施例进行详细说明:
图1是示出根据一些示例的编码设备和解码设备的示例的框图;
图2是示出根据一些示例的对其应用帧内块复制预测模式的译码图片的示例的框图;
图3是示出根据一些示例的帧内块复制预测模式的另一示例的框图;
图4是示出根据一些示例的在管线处理中被划分为64×64块的128×128译码树单元(CTU)的示例的图;
图5是示出根据一些示例的当前CTU的虚拟搜索区的示例的图;
图6是示出根据一些示例的具有组成(makeup)区的虚拟搜索区的示例的图;
图7A是示出根据一些示例的用于共享存储情况的虚拟搜索区的示例的图;
图7B是示出根据一些示例的用于共享存储情况的虚拟搜索区的另一示例的图;
图8是示出根据一些示例的包括使用虚拟搜索区来执行帧内块复制预测的编码视频数据的过程的示例的流程图;
图9是示出根据一些示例的包括使用虚拟搜索区来执行帧内块复制预测的解码视频数据的过程的示例的流程图;
图10是示出根据一些实施例的示例视频编码设备的框图。
图11是示出根据一些实施例的示例视频解码设备的框图。
具体实施方式
下面提供本公开的某些方面和实施例。这些方面和实施例中的一些可以独立地应用并且它们中的一些可以组合应用,这对于本领域技术人员来说是显而易见的。在以下描述中,出于解释的目的,阐述了具体细节以提供对本申请实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。
随后的描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。相反,示例性实施例的随后描述将为本领域技术人员提供用于实现示例性实施例的使能描述。应当理解,在不脱离如所附权利要求阐述的本申请的精神和范围的情况下,可以对元件的功能和布置做出各种改变。
视频译码设备实施视频压缩技术以有效地编码和解码视频数据。视频压缩技术可以包括应用不同的预测模式,包括空域预测(例如,帧之内的预测或帧内预测)、时域预测(例如,帧之间的预测或帧间预测))、层间预测(跨视频数据的不同层)和/或其他预测技术,以减少或去除视频序列中固有的冗余。视频编码器可以将原始视频序列的每个图片划分为被称为视频块或译码单元的矩形区域(下面将更详细地描述)。可以使用特定预测模式来对这些视频块进行编码。
可以以一种或多种方式将视频块划分为一组或多组较小的块。块可以包括译码树块、预测块、变换块或其他合适的块。除非另有说明,一般对“块”的引用可以指这样的视频块(例如,译码树块、译码块、预测块、变换块或其他合适的块或子块,正如普通技术人员所理解的那样)。此外,这些块中的每一个在本文中还可互换地称为“单元”(例如,译码树单元(CTU)、译码单元、预测单元(PU)、变换单元(TU)等)。在一些情况下,单元可指示在比特流中编码的译码逻辑单元,而块可指示过程所针对的视频帧缓冲器的一部分。
对于帧间预测模式,视频编码器可以在位于另一时域位置的帧(或者图片)中搜索与正在被编码的块相似的块,该帧被称为参考帧或者参考图片。视频编码器可以将搜索限制为距要编码的块的确定的空域位移。可以使用包括水平位移分量和垂直位移分量的二维(2D)运动矢量来定位最佳匹配。对于帧内预测模式,视频编码器可使用空域预测技术基于来自同一图片内先前编码的相邻块的数据来形成预测块。
视频编码器可以确定预测误差。例如,可以将预测误差确定为正在被编码的块与预测块中的像素值之间的差。预测误差也可以被称为残差。视频编码器还可对预测误差应用变换(例如,离散余弦变换(DCT)或其他合适的变换)以生成变换系数。在变换之后,视频编码器可以量化变换系数。量化的变换系数和运动矢量可以使用语法元素来表示,并且与控制信息一起形成视频序列的经译码的表示。在一些情况下,视频编码器可以对语法元素进行熵编码,从而进一步减少用于其表示所需的比特数。
视频解码器可以使用上面讨论的语法元素和控制信息来构建用于解码当前帧的预测的数据(例如,预测的块)。例如,视频解码器可以将预测块和压缩的预测误差相加。视频解码器可通过使用经量化的系数对变换基函数进行加权来确定压缩的预测误差。重建帧与原始帧之间的差被称为重建误差。
本文描述了使用视频编码器、解码器和其他译码处理设备的视频译码的一些系统和方法。在一些示例中,描述了一种或多种视频译码的系统和方法,用于执行帧内块复制(IBC)或当前图片参考(CPR)。例如,本文所描述的一种或多种系统和方法提供了IBC和CPR的性能改进和复杂性降低。本文所描述的技术可以应用于任何现有的视频译码器(例如高效视频译码(HEVC)、多功能视频译码(VVC)、高级视频译码(AVC)等),和/或可以是任何未来视频编码标准中的高效的编码工具。在一些情况下,本文所描述的系统和方法可用于屏幕内容译码,其包括支持可能的高比特深度(超过8比特)、不同的色度采样格式(例如,例如4:4:4、4:2:2、4:2:0、4:0:0等)。这些系统和方法还可以应用于其他视频和/或静止图像内容的译码。
图1是示出包括编码设备104和解码设备112的系统100的示例的框图。编码设备104可以是源设备的一部分,并且解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,例如移动或固定电话手机(例如,智能手机、蜂窝电话等)、台式计算机、膝上型或笔记本计算机、平板计算机、机顶盒、电视机、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、互联网协议(IP)照相机或任何其他合适的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的一个或多个无线收发器。本文所描述的译码技术适用于各种多媒体应用中的视频译码,多媒体应用包括流式视频传输(例如,通过互联网)、电视广播或传输、用于存储在数据存储介质上的数字视频的编码、存储在数据存储介质上的数字视频的解码或其他应用。在一些示例中,系统100可以支持单向或双向视频传输以支持诸如视频会议、视频流、视频回放、视频广播、游戏和/或视频电话之类的应用。
编码设备104(或编码器)可用于使用视频译码标准或协议对视频数据进行编码以生成经编码的视频比特流。视频译码标准的示例包括ITU-T H.261、ISO/IEC MPEG-1视觉、ITU-T H.262或ISO/IEC MPEG-2视觉、ITU-T H.263、ISO/IEC MPEG-4视觉、ITU-T H.264(也被称为ISO/IEC MPEG-4AVC),包括其可缩放视频译码(SVC)和多视图视频译码(MVC)扩展,以及高效视频译码(HEVC)或ITU-T H.265。存在处理多层视频译码的HEVC的各种扩展,包括范围和屏幕内容译码扩展、3D视频译码(3D-HEVC)和多视图扩展(MV-HEVC)和可缩放扩展(SHVC)。HEVC及其扩展由ITU-T视频译码专家组(VCEG)和ISO/IEC运动图片专家组(MPEG)的视频译码联合协作组(JCT-VC)以及3D视频译码扩展开发联合协作组(JCT-3V)开发。
MPEG和ITU-T VCEG还组建了联合探索视频团队(JVET),以探索用于下一代视频译码标准的新译码工具,称为多功能视频译码(VVC)。参考软件被称为VVC测试模型(VTM)。VVC的目标是在现有HEVC标准的压缩性能方面提供显著改进,帮助部署更高质量的视频服务和新兴应用程序(例如,360°全方位沉浸式多媒体、高动态范围(HDR)视频等)。VP9、开放媒体联盟(AOMedia)视频1(AV1)和基本视频编码(EVC)是可以应用本文所述技术的其他视频译码标准。
本文描述的许多实施例可以使用诸如VTM、VVC、HEVC、AVC和/或其扩展的视频译码器来执行。然而,本文所描述的技术和系统也可适用于其他译码标准,例如MPEG、JPEG(或静止图像的其他译码标准)、VP9、AV1、其扩展或其他合适的已经可用或尚未可用或开发的译码标准。因此,尽管可以参考特定视频译码标准来描述本文所描述的技术和系统,但是本领域普通技术人员将理解,不应将描述解释为仅适用于该特定标准。
参考图1,视频源102可以向编码设备104提供视频数据。视频源102可以是源设备的一部分,或者可以是除源设备之外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、照相机电话、视频电话等)、包含存储的视频的视频档案、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、这些源的组合或任何其他合适的视频源。
来自视频源102的视频数据可以包括一个或多个输入图片或帧。图片或帧是静止图像,在一些情况下是视频的一部分。在一些示例中,来自视频源102的数据可以是不属于视频的一部分的静止图像。在HEVC、VVC和其他视频译码规范中,视频序列可以包括一系列图片。图片可以包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列,SCb是Cb色度样点的二维阵列,SCr是Cr色度样点的二维阵列。色度样点在本文中也可称为“色度”样点。在其他情况下,图片可以是单色的并且可以仅包括亮度样点的阵列。
编码设备104的编码器引擎106(或编码器)对视频数据进行编码以生成经编码的视频比特流。在一些示例中,经编码的视频比特流(或“视频比特流”或“比特流”)是一系列一个或多个经译码的视频序列。经译码的视频序列(coded video sequence,CVS)包括一系列访问单元(access unit,AU),该序列从具有基础层中的随机访问点图片并且具有某些属性的AU开始,直到并且不包括具有基础层中的随机访问点图片并且具有某属性的下一个AU。例如,启动CVS的随机访问点图片的某些属性可以包括等于1的RASL标志(例如,NoRaslOutputFlag)。否则,随机访问点图片(具有等于0的RASL标志)不启动CVS。访问单元(AU)包括一个或多个经译码的图片和对应于共享相同输出时间的经译码的图片的控制信息。图片的经译码的条带(slice)在比特流级别中被封装到称为网络抽象层(NAL)单元的数据单元中。举例来说,HEVC视频比特流可以包括包含NAL单元的一个或多个CVS。每个NAL单元都有NAL单元标头。在一个示例中,对于H.264/AVC(多层扩展除外),标头为一字节,对于HEVC为两字节。NAL单元标头中的语法元素采用指定的比特,因此对各种系统和传输层(例如传输流、实时传输(RTP)协议、文件格式等)都是可见的。
HEVC标准中存在两类NAL单元,包括视频译码层(VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括译码的图片数据的一个条带或条带片段(如下所述),并且非VCL NAL单元包括与一个或多个译码的图片相关的控制信息。在一些情况下,NAL单元可以被称为分组(packet)。HEVC AU包括包含经译码的图片数据的VCL NAL单元和对应于该经译码的图片数据的非VCL NAL单元(如果有的话)。
NAL单元可包含形成视频数据的译码的表示(例如,经编码的视频比特流、比特流的CVS等)的比特的序列,例如视频中图片的译码表示。编码器引擎106通过将每个图片分割为多个条带来生成图片的译码表示。条带独立于其他条带,使得条带中的信息在不依赖于来自同一图片内其他条带的数据的情况下被译码。条带包括一个或多个条带片段,该条带片段包括独立的条带片段,以及一个或多个依赖于先前条带片段的从属条带片段(如果存在)。
在HEVC中,随后将条带分割成亮度样点和色度样点的译码树块(CTB)。亮度样点的CTB和色度样点的一个或多个CTB,连同样点的语法,被称为译码树单元(CTU)。CTU也可以称为“树块”或“最大译码单元”(LCU)。CTU是HEVC编码的基本处理单元。CTU可以被划分成不同尺寸的多个译码单元(CU)。CU包含被称为译码块(CB)的亮度和色度样点阵列。
亮度和色度CB可以进一步被划分成预测块(PB)。PB是亮度分量或色度分量的样点块,其使用相同的运动参数进行帧间预测或帧内块复制(IBC)预测(当可用或为使用而启用时)。亮度PB和一个或多个色度PB连同相关联的语法一起,形成预测单元(PU)。对于帧间预测,运动参数的集合(例如,一个或多个运动矢量、参考索引等)在每个PU的比特流中被信令通知并用于亮度PB和一个或多个色度PB的帧间预测。运动参数也可以被称为运动信息。CB也可以被分割为一个或多个变换块(TB)。TB表示在其上应用残差变换(例如,在一些情况下,相同的二维变换)以对预测残差信号进行译码的颜色分量的正方形的样点块。变换单元(TU)表示亮度和色度样点的TB,以及相应的语法元素。下面更详细地描述变换译码。
CU的尺寸对应于译码模式的尺寸并且可以是正方形的形状。例如,CU的尺寸可以是8×8个样点、16×16个样点、32×32个样点、64×64个样点、或者达到对应CTU的尺寸的任何其他合适的尺寸。短语“N×N”在本文中用于指代在垂直和水平维度方面,视频块的像素维度(例如,8像素×8像素)。块中的像素可以按行和列排列。在一些实施例中,块在水平方向上的像素数可能与垂直方向上的像素数不同。例如,与CU相关联的语法数据可以描述CU到一个或者多个PU的分割。在CU是帧内预测模式编码还是帧间预测模式编码之间,分割模式可以不同。PU可以被分割为非正方形的形状。例如,与CU相关联的语法数据还可描述根据CTU的CU到一个或多个TU的分割。TU的形状可以是正方形或非正方形。
根据HEVC标准,可以使用变换单元(TU)来执行变换。针对不同的CU,TU可以改变。可以基于给定CU内的PU的尺寸来确定TU的尺寸。TU的尺寸可以与PU的尺寸相同或小于PU的尺寸。在一些示例中,可以使用被称为残差四叉树(RQT)的四叉树结构将对应于CU的残差样点细分为更小的单元。RQT的叶节点可以对应于TU。可以变换与TU相关联的像素差值以产生变换系数。然后可以由编码器引擎106对变换系数进行量化。
一旦视频数据的图片被分割成CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测单元或预测块以获得残差(如下所述)。对于每个CU,可以使用语法数据在比特流内部信令通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。帧内预测利用图片内空间相邻样点之间的相关性。例如,使用帧内预测,从同一图片中的相邻图像数据中预测每个PU,例如使用DC预测以寻找PU的平均值,使用平面预测以将平面表面拟合到PU,使用方向预测以从相邻数据推断,或者使用任何其他合适类型的预测。帧间预测使用图片之间的时域相关性来导出图像样点块的运动补偿的预测。例如,使用帧间预测,使用来自一个或多个参考图片(按输出顺序在当前图片之前或之后)中的图像数据的运动补偿预测来预测每个PU。例如,可以在CU级别做出是使用图片间预测还是图片内预测对图片区进行译码的决定。
编码器引擎106和解码器引擎116(下面更详细地描述)可以被配置为根据VVC操作。根据VVC,视频译码器(例如编码器引擎106和/或解码器引擎116)将图片分割为多个译码树单元(CTU)(其中亮度样点的CTB和色度样点的一个或多个CTB,与样点的语法元素一起,被称为CTU)。视频译码器可以根据树结构(例如四叉树-二叉树(QTBT)结构或多类型树(MTT)结构)来分割CTU。QTBT结构去除了多种分割类型的概念,例如HEVC的CU、PU和TU之间的区分。QTBT结构包括两个级别,第一级别按照四叉树分割,第二级别按照二叉树分割。QTBT结构的根节点对应CTU。二叉树的叶节点对应于译码单元(CU)。
在MTT分割结构中,可以使用四叉树分割、二叉树分割和一种或多种类型的三叉树分割来对块进行分割。三叉树分割是一个块被划分成三个子块的分割。在一些示例中,三叉树分割将块分成三个子块而不通过中心划分原始块。MTT中的分割类型(例如,四叉树、二叉树和三叉树)可以是对称的或不对称的。
在一些示例中,视频译码器可以使用单个QTBT或MTT结构来表示亮度和色度分量中的每一个,而在其他示例中,视频译码器可以使用两个或更多个QTBT或MTT结构,例如一个QTBT或MTT结构用于亮度分量,另一个QTBT或MTT结构用于两个色度分量(或两个QTBT和/或MTT结构用于相应的色度分量)。
视频译码器可以被配置为使用按照HEVC的四叉树分割,QTBT分割、MTT分割或其他分割结构。为了说明的目的,本文的描述可以指QTBT分割。然而,应当理解,本公开的技术还可应用于被配置为使用四叉树分割或其他类型的分割的视频译码器。
在一些示例中,为图片的一个或者多个条带分配条带类型。条带类型包括I条带、P条带和B条带。I条带(帧内,可独立解码)是仅通过帧内预测译码的图片的条带,因此可独立解码,因为I条带仅需要帧内的数据来预测条带的任何预测单元或预测块。P条带(单向预测的帧)是可以用帧内预测和用单向帧间预测译码的图片的条带。P条带内的每个预测单元或预测块都使用帧内预测或帧间预测进行译码。当应用帧间预测时,预测单元或预测块仅由一张参考图片预测,因此参考样点仅来自一个帧的一个参考区域。B条带(双向预测的帧)是可以用帧内预测和帧间预测(例如,双向预测或者单向预测)译码的图片的条带。可以从两个参考图片来双向预测B条带的预测单元或者预测块,其中每个图片贡献一个参考区域,并且两个参考区域的样点集被加权(例如,具有相同的权重或具有不同的权重)以产生双向预测的块的预测信号。如上所述,一张图片的条带是独立译码的。在一些情况下,图片可以被译码为仅一个条带。
如上所述,图片内预测利用图片内空域相邻样点之间的相关性。存在多种帧内预测模式(也称为“帧内模式”)。在一些示例中,亮度块的帧内预测包括35种模式,包括平面模式、DC模式和33种角度模式(例如,对角帧内预测模式和与对角帧内预测模式相邻的角度模式)。帧内预测的35种模式的索引如下表1所示。在其他示例中,可以定义更多帧内模式,包括可能尚未由33个角度模式表示的预测角度。在其他示例中,与角度模式相关联的预测角度可能与HEVC中使用的那些预测角度不同。
帧内预测模式 | 相关联名称 |
0 | INTRA_PLANAR |
1 | INTRA_DC |
2..34 | INTRA_ANGULAR2..INTRA_ANGULAR34 |
表1–帧内预测模式和相关联名称的规范
图片间预测使用图片之间的时域相关性以便导出针对图像样点块的运动补偿预测。使用平移运动模型,由运动矢量(Δx,Δy)表示块在先前解码图片(参考图片)中的位置,其中相对于当前块的位置,Δx指定参考块的水平位移,而Δy指定参考块的垂直位移。在一些情况下,运动矢量(Δx,Δy)可以是整数样点精度(也被称为整数精度),在这种情况下,运动矢量指向参考帧的整数像素网格(或整数像素采样网格)。在一些情况下,运动矢量(Δx,Δy)可以具有分数样点精度(也被称为分数像素精度或非整数精度),以更准确地捕获潜在的对象的运动,而不受限于参考帧的整数像素网格。运动矢量的精度可以由运动矢量的量化级别来表示。例如,量化级别可以是整数精度(例如,1像素)或分数像素精度(例如,1/4像素、1/2像素或其他子像素值)。当相应的运动矢量具有分数样点精度时,对参考图片应用内插以导出预测信号。例如,可以对整数位置处可用的样点进行滤波(例如,使用一个或多个内插滤波器)以估计分数位置处的值。先前解码的参考图片由参考图片列表的参考索引(refIdx)指示。运动矢量和参考索引可以被称为运动参数。可以执行两种图片间预测,包括单向预测和双向预测。
对于使用双向预测的帧间预测,两组运动参数(Δx0,y0,refIdx0和Δx1,y1,refIdx1)用于生成两个运动补偿预测(来自同一参考图片或可能来自不同的参考图片)。例如,对于双向预测,每个预测块使用两个运动补偿预测信号,并生成B预测单元。然后组合两个运动补偿预测以获得最终的运动补偿预测。例如,可以通过求平均来组合两个运动补偿预测。在另一个示例中,可以使用加权预测,在这种情况下,可以对每个运动补偿预测应用不同的权重。可用于双向预测的参考图片存储在两个单独的列表(表示为列表0和列表1)中。可以使用运动估计过程在编码器处导出运动参数。
对于使用单向预测的帧间预测,一组运动参数(Δx0,y0,refIdx0)用于从参考图片生成运动补偿预测。例如,对于单向预测,每个预测块最多使用一个运动补偿预测信号,并生成P预测单元。
PU可以包括与预测过程相关的数据(例如,运动参数或其他合适的数据)。例如,当使用帧内预测对PU进行编码时,PU可以包括描述PU的帧内预测模式的数据。作为另一示例,当使用帧间预测对PU进行编码时,PU可包括定义PU的运动矢量的数据。定义PU的运动矢量的数据可以描述例如运动矢量的水平分量(Δx)、运动矢量的垂直分量(Δy)、运动矢量的分辨率(例如,整数精度、四分之一像素精度或八分之一像素精度)、运动矢量指向的参考图片、参考索引、运动矢量的参考图片列表(例如,列表0、列表1或列表C)或其任何组合。
在使用帧内和/或帧间预测执行预测之后,编码设备104可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算对应于PU的残差值。残差值可以包括被译码的当前像素块(PU)和用于预测当前块的预测块(例如,当前块的预测版本)之间的像素差值。例如,在生成预测块(例如,使用帧间预测或帧内预测)之后,编码器引擎106可以通过从当前块中减去由预测单元产生的预测块来生成残差块。残差块包括量化当前块的像素值与预测块的像素值之间的差的一组像素差值。在一些示例中,可以以二维块格式(例如,像素值的二维矩阵或阵列)来表示残差块。在此类示例中,残差块是像素值的二维表示。
使用块变换对在执行预测之后可能剩余的任何残差数据进行变换,块变换可以基于离散余弦变换、离散正弦变换、整数变换、小波变换、其他合适的变换函数或其中的任何组合。在一些情况下,可以对每个CU中的残差数据应用一个或多个块变换(例如,尺寸为32×32、16×16、8×8、4×4或其他合适的尺寸)。在一些实施例中,TU可以用于由编码器引擎106实现的变换和量化过程。具有一个或多个PU的给定CU也可以包括一个或多个TU。如下文进一步详细描述的,可以使用块变换将残差值变换成变换系数,然后可以使用TU对其进行量化和扫描以产生用于熵译码的序列化变换系数。
在一些实施例中,在使用CU的PU进行帧内预测或帧间预测译码之后,编码器引擎106可以计算CU的TU的残差数据。PU可以包括空域(或像素域)中的像素数据。在应用块变换之后,TU可以包括变换域中的系数。如前所述,残差数据可对应于未编码的图片的像素与对应于PU的预测值之间的像素差值。编码器引擎106可以形成包括CU的残差数据的TU,然后可以变换TU以产生用于CU的变换系数。
编码器引擎106可执行变换系数的量化。量化通过对变换系数进行量化来提供进一步的压缩以减少用于表示系数的数据量。例如,量化可以减少与一些或所有系数相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间向下舍入为m比特值,其中n大于m。
一旦执行量化,译码的视频比特流包括量化的变换系数、预测信息(例如,预测模式、运动矢量、块矢量等)、分割信息和任何其他合适的数据,例如其他语法数据。然后译码的视频比特流的不同元素可以由编码器引擎106进行熵编码。在一些示例中,编码器引擎106可以利用预定义的扫描顺序来扫描量化的变换系数以产生可以被熵编码的序列化矢量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描量化的变换系数以形成矢量(例如,一维矢量)之后,编码器引擎106可以对该矢量进行熵编码。例如,编码器引擎106可以使用上下文自适应可变长度译码、上下文自适应二进制算术译码、基于语法的上下文自适应二进制算术译码、概率区间分割熵译码或其他合适的熵编码技术。
如前所述,HEVC比特流包括一组NAL单元,包括VCL NAL单元和非VCL NAL单元。VCLNAL单元包括形成经译码的视频比特流的经译码的图片数据。例如,形成经译码的视频比特流的比特序列存在于VCL NAL单元中。除了其他信息之外,非VCL NAL单元还可以包含具有与经编码的视频比特流相关的高级别信息的参数集。例如,参数集可以包括视频参数集(VPS)、序列参数集(SPS)和图片参数集(PPS)。参数集的目标的示例包括比特率效率、抗误码性和提供系统层接口。每个条带参考单个活跃的PPS、SPS和VPS以访问解码设备112可将其用于解码条带的信息。可以为每个参数集译码标识符(ID),包括VPS ID、SPS ID和PPSID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每个条带标头包括PPS ID。使用ID,可以针对给定的条带识别活跃的参数集。
PPS包括应用于给定图片中的所有条带的信息。因此,图片中的所有条带都参考相同的PPS。不同图片中的条带也可能指相同的PPS。SPS包括适用于同一译码的视频序列(CVS)或比特流中所有图片的信息。如前所述,译码的视频序列是一系列以基础层中的随机访问点图片(例如,瞬时解码参考(IDR)图片或断链访问(BLA)图片,或其他适当的随机访问点图片)并且具有某些属性(如上所述)的访问单元(AU)开始,直到并且不包括在基础层中具有随机访问点图片并具有某些属性(或比特流的末端)的下一个AU。SPS中的信息可能不会随译码的视频序列内的图片的变化而变化。译码的视频序列中的图片可以使用相同的SPS。VPS包括应用于译码的视频序列或比特流内所有层的信息。VPS包括具有应用于整个译码的视频序列的语法元素的语法结构。在一些实施例中,VPS、SPS或PPS可以与编码的比特流一起在带内传输。在一些实施例中,VPS、SPS或PPS可以在与包含译码的视频数据的NAL单元分开的传输中在带外传输。
视频比特流还可以包括补充增强信息(SEI)消息。例如,SEI NAL单元可以是视频比特流的一部分。在一些情况下,SEI消息能包含解码过程所不需要的信息。例如,SEI消息中的信息对于解码器解码比特流的视频图片可能不是必要的,但是解码器可以使用该信息来改进图片的显示或处理(例如,解码的输出)。SEI消息中的信息可以是嵌入的元数据。在一个说明性示例中,解码器侧实体可以使用SEI消息中的信息来提高内容的可视性。在一些情况下,某些应用标准可能会授权在比特流中存在此类SEI消息,使得可以为符合应用标准的所有设备带来质量改进(例如,用于帧兼容平面立体3DTV视频格式的帧打包SEI消息的承载,其中为视频的每一帧承载SEI消息、处理恢复点SEI消息、在DVB中使用泛扫描来扫描矩形SEI消息,以及许多其他示例)。
编码设备104的输出110可以通过通信链路120将构成经编码的视频比特流数据的NAL单元发送到接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括由无线网络、有线网络或有线和无线网络的组合提供的信道。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何合适的无线网络(例如,互联网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi-直接、蜂窝、长期演进(LTE)、WiMaxTM等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、同轴电缆上的以太网、数字信号线(DSL)等)。可以使用各种设备(例如基站、路由器、接入点、网桥、网关、交换机等)来实现有线和/或无线网络。可以根据诸如无线通信协议之类的通信标准来调制经编码的视频比特流数据,并将其传输到接收设备。
在一些示例中,编码设备104可以将经编码的视频比特流数据存储在存储108中。输出110可以从编码器引擎106或从存储108检索编码的视频比特流数据。存储108可以包括各种分布式或本地访问的数据存储介质中的任何一个。例如,存储108可以包括硬盘驱动器、存储盘、闪存、易失性或非易失性存储器、或用于存储编码的视频数据的任何其他合适的数字存储介质。存储108还可以包括用于存储在帧间预测中使用的参考图片的解码图片缓冲器(DPB)。在另外的示例中,存储108可以对应于可以存储由源设备生成的编码的视频的文件服务器或另一个中间存储设备。在这种情况下,包括解码设备112的接收设备可以经由流传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码的视频数据并将该编码的视频数据发送到接收设备的任何类型的服务器。示例文件服务器包括Web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。接收设备可以通过包括互联网连接的任何标准数据连接,访问编码的视频数据。这可以包括适合访问存储在文件服务器上的编码的视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储108的编码的视频数据的传输可以是流传输、下载传输或其组合。
解码设备112的输入114接收编码的视频比特流数据并且可以将视频比特流数据提供给解码器引擎116,或者提供给存储器118以供解码器引擎116稍后使用。例如,存储118可以包括用于存储在帧间预测中使用的参考图片的DPB。包括解码设备112的接收设备可以经由存储108接收要解码的编码的视频数据。编码的视频数据可以根据诸如无线通信协议的通信标准进行调制,并且被传输到接收设备。用于传输编码的视频数据的通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如因特网的全球网络。通信介质可包括路由器、交换机、基站或可用于促进从源设备到接收设备的通信的任何其他设备。
解码器引擎116可以通过熵解码(例如,使用熵解码器)和提取构成经编码的视频数据的一个或多个译码的视频序列的元素来对编码的视频比特流数据进行解码。然后解码器引擎116可以对经编码的视频比特流数据重新缩放和执行逆变换。然后残差数据被传递到解码器引擎116的预测阶段。然后解码器引擎116预测像素块(例如,PU)。在一些示例中,预测被添加到逆变换的输出(残差数据)。
解码设备112可以将经解码的视频输出到视频目的设备122,视频目的设备122可以包括用于向内容的消费者显示解码的视频数据的显示器或其他输出设备。在一些方面,视频目的设备122可以是包括解码设备112的接收设备的一部分。在一些方面,视频目的设备122可以是除了接收设备之外的单独设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备和音频解码设备集成。视频编码设备104和/或视频解码设备112还可包括实现上述译码技术所需的其他硬件或软件,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。视频编码设备104和视频解码设备112可以被集成为相应设备中的组合编码器/解码器(译码器)的一部分。下面参考图10描述编码设备104的具体细节的示例。下面结合图11描述解码设备112的具体细节的示例。
图1所示的示例系统是可在本文中使用的一个说明性示例。使用本文所描述的技术来处理视频数据的技术可以由任何数字视频编码和/或解码设备来执行。尽管本公开的技术通常由视频编码设备或视频解码设备执行,但这些技术也可由组合视频编码器-解码器(通常被称为“译码器”)执行。此外,本公开的技术也可由视频预处理器执行。源设备和接收设备仅仅是这样的译码设备的示例,其中源设备生成译码的视频数据以传输到接收设备。在一些示例中,源设备和接收设备可以以基本对称的方式操作,使得每个设备包括视频编码和解码组件。因此,示例系统可以支持视频设备之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。
HEVC标准的扩展包括多视图视频译码扩展(被称为MV-HEVC),以及可缩放视频译码扩展(被称为SHVC)。MV-HEVC和SHVC扩展共享分层译码的概念,不同的层被包含在经编码的视频比特流中。译码的视频序列中的每一层都由唯一的层标识符(ID)寻址。层ID可以存在于NAL单元的标头中以标识与NAL单元相关联的层。在MV-HEVC中,不同的层可以表示视频比特流中同一场景的不同视图。在SHVC中,提供了不同的可缩放层,其以不同的空域分辨率(或图片分辨率)或不同的重建保真度表示视频比特流。可缩放层可以包括基础层(层ID=0)以及一个或多个增强层(层ID=1,2,...n)。基础层可以符合HEVC的第一版本的配置文件,并且代表比特流中的最低可用层。与基础层相比,增强层具有增加的空域分辨率、时域分辨率或帧速率和/或重建保真度(或质量)。增强层是按层次组织的,可以(也可以不)依赖于较低的层。在一些示例中,可以使用单个标准译码器对不同层进行译码(例如,所有层都使用HEVC、SHVC或其他译码标准进行译码)。在一些示例中,可以使用多标准译码器对不同层进行译码。例如,可以使用AVC对基础层进行译码,而可以使用对HEVC标准的SHVC和/或MV-HEVC扩展来对一个或多个增强层译码。
通常,层包括VCL NAL单元和对应的非VCL NAL单元的集合。NAL单元被分配一个特定的层ID值。在层可能依赖于较低层的意义上,层可以是分等级的。层集是指在比特流中表示的自包含的层的集合,这意味着层集中的层可以依赖于在解码过程中的层集中的其他层,但不依赖于任何其他层进行解码。因此,层集中的层可以形成可以表示视频内容的独立比特流。层集中的层的集合可以通过子比特流提取过程的操作从另一个比特流获得。层集可以对应于当解码器想要根据某些参数进行操作时要被解码的层的集合。
如上所述,对于每个块,运动信息(本文也被称为运动参数)的集合是可用的。运动信息的集合包含前向和后向预测方向的运动信息。前向和后向预测方向是双向预测模式的两个预测方向,在这种情况下,术语“前向”和“后向”不一定具有几何意义。相反,“前向”和“后向”对应于当前图片的参考图片列表0(RefPicList0或L0)和参考图片列表1(RefPicList1或L1)。在一些示例中,当只有一个参考图片列表可用于图片或条带时,只有RefPicList0是可用的并且条带的每个块的运动信息总是前向的。
在一些情况下,运动矢量与其参考索引一起用于译码过程(例如,运动补偿)。具有相关联的参考索引的这种运动矢量被表示为运动信息的单向预测集。对于每个预测方向,运动信息可以包含参考索引和运动矢量。在一些情况下,为了简单起见,可以以假设运动矢量具有相关联的参考索引的方式来参考运动矢量本身。参考索引用于标识当前参考图片列表(RefPicList0或RefPicList1)中的参考图片。运动矢量具有水平和垂直分量,它们提供从当前图片中的坐标位置到参考索引所标识的参考图片中的坐标的偏移量。例如,参考索引可以指示应该用于当前图片中的块的特定参考图片,并且运动矢量可以指示参考图片中最佳匹配块(与当前块最佳匹配的块)在参考图片中的位置。
可以在视频译码标准中使用图片顺序计数(POC)来识别图片的显示顺序。虽然在一些情况下,一个译码的视频序列中的两个图片可能具有相同的POC值,但它通常不会发生在经译码的视频序列中。当比特流中存在多个译码的视频序列时,具有相同POC值的图片在解码顺序方面可能彼此更接近。图片的POC值可用于参考图片列表构建、如HEVC中的参考图片集的导出以及运动矢量缩放。
在H.264/AVC中,每个帧间宏块(MB)可以以四种不同的方式进行分割,包括:一个16×16MB分割;两个16×8MB分割;两个8×16MB分割;和四个8×8MB分割。一个MB中的不同MB分割对于每个方向(RefPicList0或RefPicList1)可能具有不同的参考索引值。在一些情况下,当MB没有被分割为四个8×8MB分割时,它在每个方向上的每个MB分割只能有一个运动矢量。在一些情况下,当MB被分割为四个8×8MB分割时,每个8×8MB的分割可以被进一步分割为子块,在这种情况下,每个子块可以在每个方向上具有不同的运动矢量。在一些示例中,有四种不同的方式可以从8×8MB分割中获取子块,包括:一个8×8子块;两个8×4子块;两个4×8子块;和四个4×4子块。每个子块在每个方向上可以具有不同的运动矢量。因此,运动矢量存在于等于或高于子块的级别中。
在AVC中,可以要么在MB级别要么在MB分割级别启用时域直接模式以用于B条带中的跳过和/或直接模式。对于每个MB分割,使用当前块的RefPicList1[0]中与当前MB分割的同位的块的运动矢量来导出运动矢量。同位(co-located)块中的每个运动矢量都基于POC距离进行缩放。
空域直接模式也可以在AVC中执行。例如,在AVC中,直接模式也可以从空域邻近预测运动信息。
如上所述,在HEVC中,条带中的最大译码单元被称为译码树块(CTB)。CTB包含四叉树,四叉树的节点是译码单元。在HEVC主配置文件中,CTB的尺寸范围可以从16×16到64×64。在一些情况下,可以支持8×8CTB尺寸。译码单元(CU)可以与CTB尺寸相同并且可以小到8×8。在一些情况下,每个译码单元都使用一种模式进行译码。当CU被帧间译码时,CU可以进一步被分割为2个或4个预测单元(PU),或者当进一步的分割不适用时可以变成仅一个PU。当两个PU存在于一个CU中时,它们可以是一半尺寸的矩形或两个具有CU尺寸的1/4或3/4尺寸的矩形。
当CU被帧间译码时,对于每个PU存在运动信息的一个集合。此外,每个PU都使用独特的帧间预测模式进行译码,以导出该运动信息的集合。
对于HEVC中的运动预测,存在两种帧间预测模式,包括用于预测单元(PU)的合并模式和高级运动矢量预测(AMVP)模式。跳过被认为是合并的特殊情况。在AMVP或合并模式中,为多个运动矢量(MV)预测器维持运动矢量候选列表。当前PU的运动矢量以及当前PU的合并模式中的参考索引是通过从MV候选列表中取出一个候选来生成的。
在一些示例中,MV候选列表包含多达五个用于合并模式的候选和两个用于AMVP模式的候选。在其他示例中,不同数量的候选可以被包括在用于合并模式和/或AMVP模式的MV候选列表中。合并候选可包含运动信息的集合。例如,运动信息的集合可以包括对应于参考图片列表(列表0和列表1)和参考索引两者的运动矢量。如果合并候选由合并索引标识,则参考图片用于当前块的预测,以及相关联的运动矢量被确定。然而,在AMVP模式下,对于来自列表0或列表1的每个潜在预测方向,需要显式地信令通知参考索引以及指向MV候选列表的MVP索引,因为AMVP候选仅包含一个运动矢量。在AMVP模式下,可以进一步细化预测的运动矢量。
如上可见,合并候选对应于完整的运动信息的集合,而AMVP候选仅包含用于特定预测方向一个运动矢量和参考索引的。两种模式的候选都是从相同的空域和时域相邻块中类似地导出的。
在一些示例中,合并模式允许帧间预测的PU从帧间预测的PU(该帧间预测的PU包括从一组空域相邻运动数据位置和两个时域同位的运动数据位置中的一个中选择的运动数据位置)继承相同的一个或多个运动矢量、预测方向和一个或多个参考图片索引。对于AMVP模式,PU的一个或多个运动矢量可以相对于来自由编码器构建的AMVP候选列表的一个或多个运动矢量预测器(MVP)进行预测地译码。在一些情况下,对于PU的单向帧间预测,编码器可以生成单个AMVP候选列表。在一些情况下,对于PU的双向预测,编码器可以生成两个AMVP候选列表,一个使用来自前向预测方向的空域和时域相邻PU的运动数据,另一个使用来自后向预测方向的空域和时域相邻PU的运动数据。
如前所述,可以在视频译码过程中使用各种预测模式,包括帧内预测和帧间预测。帧内预测的一种形式包括帧内块复制(IBC)。IBC也可以被称为当前图片参考(CPR)。IBC(或CPR)是在HEVC屏幕内容译码(SCC)扩展的标准化期间提出的。IBC已被证明在对屏幕内容视频素材进行译码时非常有效,也可用于对其他视频内容进行译码。JVET-J0029和JVET-J0050中提出了IBC/CPR方法,以解决对高效屏幕内容译码的需求。在第11次JVET会议上,IBC/CPR模式被纳入Benchmark Set(BMS)软件进行进一步评估。
在IBC模式中,从当前图片的一个或多个已经解码的块(例如,在环路滤波之前)预测帧内块复制块(参见图2和图3)。这里的术语环路滤波可以包括使用去方块(DB)滤波、自适应环路滤波器(ALF)和/或采样自适应偏移(SAO)滤波。使用图像图片或帧中的冗余,IBC执行块匹配以将样点块(例如,CU、PU或其他译码块)预测为从图片的相邻或非相邻区域中的重建的样点块的位移。通过从内容的重复图案中去除冗余,帧内块复制预测提高了译码效率。
在IBC的一些实现中,可以执行块补偿。例如,在一些情况下,对于使用IBC/CPR译码的亮度块,亮度块的预测可以包括块补偿。例如,整数块补偿可以应用于预测的亮度块,在这种情况下不需要插值。在一些示例中,还可以对色度块执行块补偿。在一些实现中,色度块的块补偿可包括子像素块补偿,该块补偿也将涉及内插。
在各种示例中,IBC预测(例如,当在IBC模式下时通过编码设备和/或解码设备)可以使能来自块的非相邻样点的空域预测,其中非相邻样点位于当前图片。例如,图2示出了其中使用IBC预测来预测当前译码单元202的译码的图片200。译码单元202可以包括CTU或CTU的分割(例如,被称为译码块的包含亮度和色度样点阵列的译码单元(CU)、编码块、包含亮度预测块(PB)以及一个或多个色度PB的预测单元(PU)、预测块或包括像素块的其他划分)。当前译码单元202是使用块矢量206从译码的图片200的已经解码的预测块204(例如,在一些情况下,在环路滤波之前)预测的。环路滤波可以使用环路去方块滤波器、ALF和/或SAO滤波器中的一个或多个来执行。在一些情况下,在(编码器和/或解码器的)解码环路中,可以在没有任何内插的情况下将预测值添加到残差。例如,块矢量206可以作为整数值来信令通知。在块矢量预测之后,使用运动矢量差译码方法对块矢量差进行编码,例如在HEVC标准中指定的方法。在一些情况下,IBC在CU和PU级别都启用。在一些情况下,对于PU级别IBC,所有CU尺寸都支持2N×N和N×2N PU划分。在一些情况下,当CU是最小的CU时,支持N×N PU划分。在一些示例中,可仅使用来自同一条带的预测块针对译码单元执行帧内块复制。
图3是提供IBC模式的另一图示的框图。在图中,示出了图片300,其中图片300的一个或多个块可以使用IBC预测或其他预测来译码。在一些示例中,图片300的一个或多个块可以以诸如逐行从图片300的左上角开始并朝图片300的右下角行进的顺序进行译码。在这样的示例中,图片300可以在要译码的当前块的左侧和/或顶部具有一个或多个先前译码的块。例如,考虑要译码的当前块302,图片300可以包括图片300的区域中的先前译码的块,该区域包括当前块302左侧的块和/或当前块302上方的块。这个包括先前译码块的区可以形成当前块302的搜索区域308,用于执行当前块302的IBC预测。
例如,当前块302可以包括要使用IBC预测进行译码的当前CU(或PU)。在一些示例中,可以通过在搜索区域308中搜索预测块304来为当前块302的IBC预测找到先前或已经解码的预测块304。如果找到这样的预测块304,则可以生成块矢量306以识别图片300中预测块304相对于当前块302的位置。例如,块矢量306可以使用诸如HEVC标准中指定的运动矢量差译码来编码。在一些示例中,可以使用预测块304和块矢量306来生成用于当前块302的IBC预测的预测信号。在一些示例中,搜索区域308的更大区可以提高定位预测块(例如用于当前块302的IBC预测的预测块304)的机会。在一些示例中,搜索区域308中的先前解码的块的重建像素被存储在物理存储器中。在一些示例中,针对当前块的IBC预测搜索预测块304可以包括搜索物理存储器以定位先前解码的预测块304。在一些示例中,物理存储器可以包括循环缓冲器、线缓冲器、或可以用于编码或解码图片300的其他存储空间。
在一些IBC实现中,可以使用管线方法,其中每个正在被译码的CTU可以被分成多个单元并且以逐步的方式来处理。在一些示例中,管线方法可以使能资源的重用。例如,诸如相同循环缓冲器和/或其他计算资源之类的物理存储器可用于临时存储与正在被处理的多个单元中的一个或多个单元相关的译码信息。例如,在处理一个单元后,可以释放循环缓冲器中的一部分存储空间,以便为处理另一个单元腾出空间。在一些示例中,以管线方式处理的多个单元可以包括虚拟管线数据单元(VPDU)。
在一些示例中,VPDU可以包括图片或视频帧中的非重叠单元。例如,VPDU可以是图片中不重叠的M×M-亮度(L)/N×N-色度(C)单元。VPDU结构包括用于存储器访问(例如,以确定哪个存储区用于处理特定的一个或多个数据块)的虚拟块,定义了为实现基于标准的译码过程(例如,HEVC、VVC或其他编码过程)而分配的存储器尺寸。在硬件解码过程的一些示例中,连续的VPDU可以由多个处理/解码管线阶段并行处理。例如,不同的解码管线阶段可以同时处理不同的VPDU。在一些情况下,VPDU尺寸可能与一些管线中的缓冲器尺寸大致成正比。例如,VPDU尺寸可以被设置为变换块(TB)尺寸的尺寸。在一个说明性示例中,VPDU的尺寸可以是64×64个样点(例如,亮度样点)。在HEVC中,VPDU尺寸被设置为最大变换块尺寸,即32×32-L(亮度样点)和16×16-C(色度样点)。在VVC中,VPDU尺寸被设置为128×128-L(Luma样点)和64×64-C(Chroma样点),这导致请求更大的VPDU尺寸。
VPDU可以包括一个或多个块(例如,CU、PU、TU或其他块)。例如,在一些情况下,一个VPDU中可以包括单个CU(例如,CU的尺寸和VPDU尺寸相同)。在一些情况下,一个VPDU中可以包括多个CU(例如,多个CU的尺寸小于VPDU尺寸)。根据块(例如,CU、PU或其他块)的尺寸,该块可能会或可能不会跨越多个VPDU(在这种情况下,一个块可能包括多个VPDU)。例如,尺寸为128×64(128个样点宽×64个样点高)的块可以跨越两个VPDU,每个VPDU的尺寸为64×64。在另一个示例中,尺寸为128×128(128个样点宽×128个样点高)的块可以跨越四个VPDU,每个VPDU的尺寸为64×64。块可以被划分成一定数量的子块,用于由每个VPDU管线阶段执行帧间预测。例如,128×128的块可以被划分成64×64子块,用于由四个不同的VPDU管线阶段进行处理。块可以被划分,以用于帧间预测,因为对于执行帧间预测不存在对相邻块的依赖。
图4是说明可以包括视频数据的图片的一个或多个块的译码单元400的示例的图。译码单元400可以被分成以管线方式被处理的两个或更多个VPDU。例如,译码单元400可以包括128×128CTU(128个样点乘以128个样点),其可以被分成或划分为四个64×64的VPDU:VPDU0、VPDU1、VPDU2和VPDU3。在一些示例中,循环缓冲器可以提供用于处理译码单元400中包含的视频数据的存储空间。例如,循环缓冲器的一部分可以用于临时存储与VPDU之一(例如,VPDU0)的一个或多个块相关的运动信息一段时间(例如,管线阶段持续时间)。在随后的时间段(例如,随后的管线阶段),可以使循环缓冲器的部分可用于临时存储与另一个VPDU(例如,VPDU1)的一个或多个块相关的运动信息。以此方式,循环缓冲器的相同部分可用于两个或更多个VPDU(例如译码单元400的VPDU0-VPDU3(和/或用于其他编码单元的VPDU))的管线处理。在一些示例中,循环缓冲器可以实现为先进先出(FIFO)缓冲器。
因此,在各种示例中,有限量的存储空间可用于存储与处理视频数据相关的信息。存储空间限制可能导致在实现IBC以及其他帧间预测和/或帧内预测技术中出现问题。例如,如前所解释的,IBC允许来自非相邻样点的空域预测,这些样点可以包括在应用环路滤波之前先前解码的块。先前解码的块位于同一图片内并且可以由块矢量来信令通知。例如,可以存储搜索区域内先前解码的预测块的重建像素(在一些情况下在滤波之前)并且用于在当前块的IBC预测中执行搜索区域的搜索。与存储滤波的重建像素相比,存储未滤波的重建像素消耗更多的存储空间、存储器带宽和处理资源利用。
此外,从存储器访问此类非相邻样点会增加存储器带宽消耗和存储器访问时间。例如,在传统的帧内预测模式的情况下,可以在当前块的预测中使用位于当前块上方一行或左侧一列的相邻样点。因此,这些相邻样点可以基于它们在不久的将来被访问用于预测当前块的可能性,被存储在本地存储器或高速缓存中。然而,由于IBC可以搜索可以包括非相邻样点的先前解码的块,因此在可以访问它们以用于当前块的IBC预测时,此类非相邻样点可能不位于高速缓存或本地存储器中。相反,非相邻样点可能存储在可能远离本地存储器的长期存储位置中。因此,获取非相邻样点可能涉及用于从非本地存储器或高速缓存获取非相邻样点的增加的读取访问时间。除了用于存储非相邻样点的增加的存储空间之外,非相邻样点要被存储的持续时间也可能很长。例如,在自非相邻样点被生成的时间起已经过去了大量时间之后,可以访问非相邻样点以用于当前块的IBC预测。因此,为了支持增加数量的非相邻样点可用于以更短的访问时间进行搜索,IBC模式可能需要附加的快速访问存储空间,例如更大的本地存储器结构或高速缓存。
此外,当执行IBC时,部分是由于用于基于IBC的空域预测的未滤波样点(例如,预测块)和用于未来图片的时域预测的滤波重建样点的存储(例如,使用帧间预测),使得写访问增加。因此,对于用于存储未滤波样点以及在环路滤波期间生成的滤波样点的存储空间的需求也可能进一步增加。
用于解决对IBC的存储空间增加的需求的一些方法包括对用于定位要用于当前块的IBC预测的预测块的搜索区施加限制。例如,参考图3,可以限制用于定位用于当前块302的IBC预测的预测块304的搜索区域308。例如,搜索区域308可以被限制为包括对应于存储空间的搜索区域,该存储空间将等于用于存储一个CTU的样点的存储空间(被称为“CTU存储”)。例如,可以将可用于当前块302的IBC预测的总存储限制为一个CTU存储空间,从而对搜索区域308设置相应的限制。然而,限制由一个CTU限制的搜索区域308会影响IBC译码的性能。例如,当更大的搜索区可用于定位预测块304时,可以看到IBC译码的性能提高。在一些示例中,一个CTU存储可以包括当前CTU内的重建像素,当前CTU包括当前块302。在一些示例中,一个CTU存储可以包括来自左相邻CTU和当前CTU两者的重建像素(例如,来自左相邻CTU的像素的一部分和来自当前CTU的像素的一部分)。
在循环缓冲器可用于管线处理的一些示例中,可通过重用循环缓冲器的一部分来为当前CTU存储新重建的像素来实现一个CTU存储限制,其中该部分先前用于存储先前CTU的重建像素。在实现循环缓冲器的一些示例中,可以以逐单元的方式更新该部分,单元的更新速率基于相应管线阶段的吞吐量。例如,更新率可以是1个像素、4个像素、2×2个像素、4×4个像素、整个虚拟管线数据单元(VPDU)或其他数量的像素。
本文描述了一种或多种编码系统和方法,其提供了对IBC/CPR模式的性能改进和复杂性降低。例如,本文所描述的技术解决了与用于IBC预测的存储空间相关联的问题。在一些示例中,可以使用虚拟搜索区(VSA)克服与存储空间限制相关的问题。在一些示例中,虚拟搜索区可以包括对存储在物理存储器中的一个或多个像素的一个或多个参考。例如,虚拟搜索区可以提供对从先前解码的块导出的附加重建样点值的参考,而不会招致用于存储附加重建样点的物理存储器使用。
在一些示例中,虚拟搜索区可以包括对存储在物理存储器中的一个或多个像素的一个或多个参考,其中一个或多个参考可以有效地构成像素填充,而不会在物理存储器中招致像素存储空间用于填充的像素。用于对当前块执行IBC预测的搜索区可以被扩展以包括虚拟搜索区(例如,虚拟搜索区的填充像素)。例如,虚拟搜索区可以提供来自先前解码的块的附加重建样点,而不会招致用于附加重建样点的物理存储器的使用。在一些示例中,扩展搜索区以包括虚拟搜索区为针对当前块执行的IBC预测提供了附加搜索区(即,搜索区是虚拟的,因为搜索区内的像素值不存储在物理存储器中)用于寻找预测块或预测样点,而不必利用物理存储器来存储来自上文引用的先前解码的块的附加重建样点。
图5是示出根据一些示例的用于CTU的虚拟搜索区的框图。视频数据的图片500可以包括一个或多个译码块,例如标识为当前CTU 510的译码块。在一些示例中,由参考数字510标识的译码块可以包括其他块尺寸或数据单元,例如VPDU。在示例中,当前CTU 510的当前块502可以包括要使用IBC预测进行译码的CU/PU。根据以上所讨论的传统技术,基于存储空间约束,用于定位用于当前块502的IBC预测的先前解码的预测块的搜索区可以被限制为一个CTU存储。然而,为了避免这种限制的负面影响,可以使用本文所公开的示例技术将搜索区扩展到超过一个CTU存储。
在一些示例中,用于当前块502的IBC预测的搜索区可以被扩展到超过当前CTU510以包括一个或多个虚拟搜索区506a、506b、506c和/或其他虚拟搜索区。在一些示例中,一个或多个虚拟搜索区可以包括对一个或多个先前解码的块的重建像素的参考。例如,参考可以包括映射、索引和/或指向存储一个或多个先前解码的块的重建像素的存储位置的指针。在一些示例中,一个或多个虚拟搜索区可以包括预定义的固定模式,例如值“0”或“1”的像素的行和/或列或其他模式。在一些示例中,参考可以包括对存储位置的任何其他指示,而不包括存储在存储位置中的值。在一些情况下,一个或多个虚拟搜索区被称为包括填充,其中如本文所使用的填充提供在不消耗像素值的存储空间的情况下可以被搜索的像素值。
在一些示例中,虚拟搜索区506a可以通过使用对属于当前CTU 510的边界504a(例如,上边界)的先前重建像素的参考来形成。例如,虚拟搜索区506a可以包括对属于边界504a的先前解码的块的重建像素的参考的填充值。在一些示例中,属于边界504a的重建像素可以存储在物理存储器(例如线缓冲器、循环缓冲器、乒乓缓冲器或其他存储器结构)中。填充值可以指向物理存储器中存储先前解码块的这些先前重建像素的位置。在一些示例中,两个或更多个填充值可以指向相同的解码的块,使得相同的像素值可以在虚拟搜索区内重复多次,而不增加物理存储器中的存储量。在一些示例中,可以将倍数分配给物理存储器中存储的像素。使用分配给该存储像素的倍数,IBC的搜索算法可以被配置为在寻找当前块502的预测块时多次考虑该存储像素。例如,对属于边界504a的重建像素的行的多个参考可以有效地生成虚拟搜索区506a,其中重建像素的行在虚拟搜索区506a中被重复多次。因此,该重建像素的行可用于多次搜索,潜在地提高了属于在虚拟搜索区506a中找到的边界504a中的像素的行的预测块的可能性。
虚拟搜索区506b可以类似地使用对属于当前CTU 510的边界504b(例如,左边界)的先前重建的像素的参考来形成。例如,可以用对属于边界504b的重建像素的参考填充虚拟搜索区506b。属于边界504b的重建像素可以类似地存储在诸如线缓冲器或循环缓冲器的物理存储器中。对属于边界504b的重建像素的多次参考进行填充可以有效地使属于边界504b的重建像素可用于多次搜索,从而潜在地增加在虚拟搜索区506b中找到预测块的可能性。
可以使用对属于边界504a、边界504b的先前重建像素或任何其他先前重建像素的参考来形成虚拟搜索区506c。类似于虚拟搜索区506a和506b,虚拟搜索区506c可以包括用对属于当前CTU 510的先前解码的块的边界的重建像素或其他重建像素的多个参考进行填充。在一些示例中,虚拟搜索区506c还可以包括预定义的固定模式。例如,预定义的固定模式可以包括使用比特“0”和/或“1”形成的模式。在使用预定义固定模式的一些示例中,编码设备以及解码设备可以使用相同的预定义固定模式生成虚拟搜索区506c。因此,在一些示例中,可以使用填充值来生成虚拟搜索区506c,该填充值可能不是从先前解码的块的重建像素导出的。在各种示例中,虚拟搜索区506c中的填充值可以潜在地增加在虚拟搜索区506c中找到预测块的可能性。
在一些情况下,虚拟搜索区506a-506c可以各自包括尺寸与当前CTU 510的尺寸相当的搜索区(例如,就虚拟搜索区506a-506c所参考的像素数量而言)。在一些情况下,如果不应用其他约束,则虚拟搜索区506a-506c或其他此类填充可以被无限地扩展(例如,至无穷大)。在一些示例中,可以使用对重建像素的参考来生成一个或多个虚拟搜索区506a-506c。例如,被配置为实现IBC预测的编码设备(例如图10的编码设备104),可以生成一个或多个虚拟搜索区506a-506c。编码设备可以对用于生成一个或多个虚拟搜索区506a-506c的重建像素的参考进行编码。编码(或编码)可以包括被分配给一个或多个填充值的重建像素,或者对正在被生成的重建像素的一个或多个参考。一个或多个参考可包括指向先前已存储重建像素的存储位置的指针或映射,而不会招致用于重建像素的附加存储空间。在一些示例中,如果虚拟搜索区包括对同一重建像素的多个参考,则多个参考可以被有效地译码以在译码中包括倍数。在一些示例中,一个或多个虚拟搜索区可以被信令通知(例如,到诸如图11的解码设备112的解码设备),其中该信令通知可以包括参考和指示重建样点要被重复的次数的倍数。
在一些示例中,预测块有可能部分位于搜索区之外,其中预测块的一部分位于搜索区内而预测块的另一部分位于搜索区之外。例如,包括CU/PU的预测块可能不完全属于当前CTU 510内,预测块的一部分位于当前CTU 510a内部,而预测块的一部分位于当前CTU510外部。在一些实现中,对当前CTU 510内的预测块的搜索可以被限制为包括仅搜索完全在当前CTU 510内的预测块。例如,搜索可以限于包括完全位于当前CTU 510内的先前解码块的像素的存储空间。在这样的示例中,部分位于当前CTU 510之外的预测块可以从搜索中排除。在示例实现中,一个或多个虚拟搜索区可以包括对这样的预测块的参考,即使它们部分位于当前CTU 510之外。例如,可以使用一个或多个填充像素来虚拟表示来自在当前CTU510之外的预测块的像素,允许将预测块包括在搜索中并可能地用于IBC。例如,一个或多个虚拟搜索区506a-506c的一个或多个填充值可以包括对存储预测块的存储位置的参考,即使该存储位置不完全在为当前CTU 510分配的存储空间内。以此方式,一个或多个虚拟搜索区506a-506c可以允许搜索可能不完全位于当前CTU 510内的预测块。
图6是示出根据一些示例的用于CTU的虚拟搜索区和组成区的框图。视频数据的图片600可以包括一个或多个译码块,例如当前CTU 610。使用IBC的当前CTU 610的译码块的搜索区可以使用一个或多个虚拟搜索区606a、606b、606c和/或其他搜索区来扩展到超过当前CTU 610。在一些示例中,当前CTU 610的相邻CTU的重建像素可用于构建一个或多个虚拟搜索区606a、606b、606c。例如,属于顶部相邻CTU的边界604a的先前重建的像素可以存储在诸如线缓冲器的物理存储器中。虚拟搜索区606a可以包括对边界604a的先前重建像素的存储位置(例如,在线缓冲器中)的一个或多个参考。类似地,属于左相邻CTU的边界604b的先前重建像素可以存储在物理存储器中,例如与存储边界604a的重建像素的线缓冲器相同或不同的线缓冲器。虚拟搜索区606b可以包括对属于边界604b的先前重建像素的存储位置的一个或多个参考。
除了对相邻CTU的先前重建像素的一个或多个参考或作为其替代,虚拟搜索区606a和606b还可包括对属于当前CTU 610的边界的先前重建像素的参考(例如,当前CTU610的上边界和/或左边界)。
可以使用对属于左相邻CTU的边界604a的重建像素、上相邻CTU的边界604b的重建像素、当前CTU 610的上边界的重建像素、当前CTU 610的左边界的重建像素、上述重建像素中的一个或多个的组合、或任何其他“组成”值(包括从当前CTU 610的先前重建像素获得的值)。在本公开中,“组成”值可以指在扩展搜索区中已用于填充的像素值,其中组成的值所参考的像素或值不消耗附加的存储空间。在一些示例中,组成值可以指常量值或其他参考。在一些示例中,虚拟搜索区606c中包括的组成值可以增加在虚拟搜索区606c中找到当前CTU 610的块的IBC的预测块的可能性。
图7A和图7B是示出用于IBC预测的虚拟搜索区和循环缓冲器的使用的框图。例如,图7A示出了视频数据的图片700的当前CTU 710,其中当前CTU 710可以包括被配置为使用IBC预测来预测的一个或多个块。当前CTU 710可以被分为两个或更多个虚拟管线数据单元(VPDU),以使用共享的资源(例如循环缓冲器)以管线方式来进行处理。在说明性示例中,当前CTU 710的两个或更多个VPDU中的一个可以包括VPDU0,该VODU0的块可以处对IBC预测的处理的当前管线阶段。例如,可以临时保留循环缓冲器的一部分,用于在当前管线阶段期间处理和更新VPDU0的块。在一个示例中,VPDU0的当前块702可以包括要使用IBC预测进行译码的CU或PU。例如,当前块702的IBC预测可以包括在VPDU0的先前解码的块中(以及其他先前解码的块中,例如先前解释的虚拟搜索区中的那些块中)搜索预测块。在一些示例中,在对VPDU0的一个或多个块执行IBC预测的同时,VPDU0的一个或多个块的重建像素可以被存储在循环缓冲器中。例如,当正在执行当前块702的IBC预测时,VPDU0的先前解码的块的重建像素可以在当前管线阶段期间被存储在循环缓冲器的部分中。
然而,在处理VPDU0的一个或多个其他块的同时搜遍VPDU0的一个或多个先前解码的块的存储的重建像素引入了复杂性。例如,在用于当前块702的IBC预测的循环缓冲器的一部分中搜遍VPDU0的先前解码的块是困难的,因为搜索可能涉及读取与其他操作并行执行的存储。例如,其他操作可以包括写入循环缓冲器的部分的内容(例如,其他块的重建像素)。支持对物理存储器的相同或重叠区域的多个同时读取和写入可能涉及复杂且昂贵的硬件设计以及其他挑战。因此,希望避免在处理VPDU的一个或多个块的同时搜遍被保留用于处理VPDU的循环缓冲器的一部分。例如,当正在对一个或多个块(例如VPDU0的当前块702)执行IBC预测时,期望禁止或阻止搜遍为VPDU0保留的循环缓冲器的一部分。
在一些示例中,可以提供虚拟搜索区以克服在处理VPDU0(例如,用于当前块702的IBC预测)时VPDU0的先前解码块不可用于搜索的限制。例如,图7B是示出循环缓冲器720的框图。在一些示例中,循环缓冲器720可用于同时存储两个或更多个VPDU的信息。例如,循环缓冲器720可以在处理VPDU0的同时在部分706中存储VPDU0的重建像素。循环缓冲器720的另一部分712可用于存储一个或多个其他VPDU的信息,例如属于当前CTU 710左侧的相邻CTU的一个或多个VPDU的重建像素(例如,当前CTU 710左侧的紧邻的CTU)。在一些示例中,由于在VPDU0的一个或多个块的IBC预测期间为当前CTU 710的VPDU0保留的部分706可能不可用于搜索,因此可以提供虚拟搜索区用于VPDU0的一个或多个块的IBC预测。在一些示例中,虚拟搜索区可以包括对其他VPDU(例如,当前CTU 710或其他CTU)的先前解码的块的一个或多个重建像素值或组成像素值的参考。
在一些示例中,如果译码单元的一个或多个块的可用搜索区以另一种方式受到约束,则可以使用虚拟搜索区。例如,如果可用于CTU的搜索区被限制为包括小于该CTU的区的先前解码的像素,则可以使用一个或多个虚拟搜索区来扩展可用搜索区。例如,如果128×128CTU的搜索区被约束为包括对应于64×64VPDU的搜索区,那么可以使用诸如上述那些的一个或多个虚拟搜索区来扩展搜索区超过64×64VPDU搜索区。
在本文讨论的各种示例中,用于IBC/CPR的一个或多个虚拟搜索区可以导致编码性能的改进而不增加存储成本。在一些示例中,用于IBC/CPR的一个或多个虚拟搜索区可以为搜索区启用规则形状(例如,矩形形状),即使可用搜索区是不规则形状。规则形状的搜索区可以使运动估计能够保持连续,而不会由于不规则形状的搜索区而引入中断。
图8是示出通过使用一个或多个虚拟搜索区以扩展用于执行视频数据的块的帧内块复制(IBC)预测的搜索区来编码视频数据的过程800的示例的流程图。在块802处,过程800包括获得视频数据的图片的当前块。在一些示例中,例如当过程800由编码设备执行时,视频数据可以包括未编码的视频数据。如前所述,视频数据可以包括多个图片,并且图片可以被分为多个块。过程800可确定图片和/或块的运动信息,该运动信息可以用于执行运动补偿。
在804处,过程800包括生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。例如,如图5所示,可以生成一个或多个虚拟搜索区506a-c,用于对视频数据的当前块502执行帧内块复制预测。当前块502可以包括CU或PU并且可以属于当前CTU 510。在一些示例中,虚拟搜索区506a-c可以包括对存储在物理存储器中的一个或多个像素的一个或多个参考。
在一些示例中,物理存储器可以包括用于存储译码单元的重建像素的循环缓冲器或乒乓(ping pong)缓冲器,该译码单元包括视频数据的一个或多个块。例如,循环缓冲器720可以被配置为存储包括如图7所示的当前块702的译码单元的重建像素。在一些示例中,译码单元可以包括两个或更多个虚拟管线数据单元(VPDU),例如图4的译码单元或CTU 400中所示的VPDU0-VPDU3。在一些示例中,两个或更多个VPDU中的至少一个VPDU可以包括当前块。例如,VPDU0可以包括当前块702。
在一些示例中,物理存储器可以包括线缓冲器,其用于存储视频数据的一个或多个块的重建像素。例如,物理存储器可以包括线缓冲器,其用于存储一个或多个块的重建像素,该一个或多个块属于包括当前块的当前CTU的相邻译码单元。例如,物理存储器可以包括用于存储属于当前CTU 610的顶部相邻CTU的边界604a和/或当前CTU 610的左侧相邻CTU的边界604b的一个或多个块的重建像素的线缓冲器。在一些示例中,虚拟搜索区606a可以包括对存储在线缓冲器中的边界604a的一个或多个像素的一个或多个参考,并且虚拟搜索区606b可以包括对存储在线缓冲器中的边界604b的一个或多个像素的一个或多个参考。
在806处,过程800包括扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。例如,图5中用于对当前块502执行帧内块复制预测的搜索区可以被扩展为包括一个或多个虚拟搜索区506a-506c。在一些示例中,可以使用一个或多个虚拟搜索区506a-506c中的对一个或多个像素的一个或多个参考来执行当前块502的帧内块复制预测。
在块808处,过程800包括生成包括当前块的至少部分的经编码的比特流。在一些示例中,用于为当前块502生成一个或多个虚拟搜索区506a-506c的信息也可以包括在经编码的比特流中。例如,可以在经编码的比特流中从编码设备向解码设备信令通知如上文所讨论的用于虚拟搜索区506c的预定义固定比特模式或组成填充值。在一些示例中,当从编码的比特流获得当前块时,解码设备可以使用一个或多个解码的块的重建像素来生成用于当前块的一个或多个虚拟搜索区。
图9是示出通过使用一个或多个虚拟搜索区以扩展用于执行视频数据的块的帧内块复制(IBC)预测的搜索区来解码视频数据的过程900的示例的流程图。在902处,过程900包括获得包括视频数据的经编码的视频比特流。在一些示例中,获得经编码的视频比特流的过程可以由解码设备执行。如前所述,视频数据可以包括多个图片,并且图片可以被分为多个块。视频数据还可包括图片和/或块的运动信息,其可用于执行运动补偿。
在904处,过程900包括生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考。例如,如图5所示,可以生成一个或多个虚拟搜索区506a-c,用于对视频数据的当前块502执行帧内块复制预测。当前块502可以包括CU或PU并且可以属于当前CTU 510。在一些示例中,虚拟搜索区506a-c可以包括对存储在物理存储器中的一个或多个像素的一个或多个参考。
例如,存储在物理存储器中的一个或多个像素可以包括属于当前CTU 510或其他译码单元的边界504a或边界504b的重建像素。在一些示例中,对存储在物理存储器中的一个或多个像素的一个或多个参考可以包括对属于边界的重建像素的重复参考。例如,虚拟搜索区506a可以包括对属于边界504a的重建像素的重复参考,并且虚拟搜索区506b可以包括对属于当前CTU 510的边界504b的重建像素的重复参考。在一些示例中,对属于边界504a的重建像素的重复参考可以包括对属于边界504a的至少一个重建像素的第一参考和对属于边界504a的该至少一个重建像素的第二参考。类似地,对属于边界504b的重建像素的重复参考可以包括对属于边界504b的至少一个重建像素的第一参考和对属于边界504b的该至少一个重建像素的第二参考。在一些示例中,对一个或多个像素的一个或多个参考可以包括诸如图6的虚拟搜索区606c中所示的那些组成值。
在一些示例中,物理存储器可以包括循环缓冲器,其用于存储包括视频数据的一个或多个块的译码单元的重建像素。例如,循环缓冲器720可以被配置为存储包括如图7所示的当前块702的译码单元的重建像素。在一些示例中,译码单元可以包括两个或更多个虚拟管线数据单元(VPDU),例如图4的译码单元或CTU 400中所示的VPDU0-VPDU3。在一些示例中,两个或更多个VPDU中的至少一个VPDU可以包括当前块。例如,VPDU0可以包括当前块702。在一些示例中,循环缓冲器的至少部分可以被配置为在对至少一个VPDU的一个或多个块执行帧内块复制预测时存储该至少一个VPDU的重建像素。例如,循环缓冲器720的部分706可以被配置为在对VPDU0的当前块702执行帧内块复制预测的同时存储VPDU0的重建像素。
在一些示例中,在对至少一个VPDU的一个或多个块执行帧内块复制预测的同时,被用来存储至少一个VPDU的重建像素的循环缓冲器的至少部分不可用于存储搜索区的像素,该搜索区用于对当前块进行帧内块复制预测。例如,循环缓冲器720的部分706可能不可用于存储VPDU0内的搜索区的像素以用于执行当前块702的帧内块复制预测。在此类示例中,用于当前块702的帧内块复制预测可以通过利用虚拟搜索区来执行。
在一些示例中,物理存储器可以包括线缓冲器,其用于存储视频数据的一个或多个块的重建像素。例如,物理存储器可以包括线缓冲器,其用于存储属于包括当前块的当前CTU的相邻译码单元的一个或多个块的重建像素。例如,物理存储器可以包括用于存储属于当前CTU 610的顶部相邻CTU的边界604a和/或当前CTU的左侧相邻CTU 610的边界604b的一个或多个块的重建像素的线缓冲器。在一些示例中,虚拟搜索区606a可以包括对存储在线缓冲器中的边界604a的一个或多个像素的一个或多个参考,并且虚拟搜索区606b可以包括对存储在线缓冲器中的边界604b的一个或多个像素的一个或多个参考。在一些示例中,对存储在物理存储器中的一个或多个像素的在一个或多个虚拟搜索区中一个或多个参考可以包括对存储在线缓冲器中的重建像素的重复参考。例如,对存储在线缓冲器中的重建像素的重复参考可以包括对存储在线缓冲器中的至少一个重建像素的第一参考和对存储在线缓冲器中的该至少一个重建像素的第二参考。
在906处,过程900包括扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。例如,用于对图5中的当前块502执行帧内块复制预测的搜索区可以被扩展为包括一个或多个虚拟搜索区506a-506c。在一些示例中,可以使用对一个或多个虚拟搜索区506a-506c中的一个或多个像素的一个或多个参考来对当前块502执行帧内块复制预测。例如,如参考图2和图3所示和所解释的,可以在一个或多个虚拟搜索区506a-506c内获得预测块,用于确定块矢量并生成用于执行当前块的帧内块复制的预测信号。在一些示例中,对当前块502执行帧内块复制预测可以包括基于使用帧内块复制预测获得的预测值和残差值来重建当前块502。
在一些实现中,本文所描述的过程(或方法),包括过程800和900,可以由计算设备或装置执行,例如图1中所示的系统100。例如,这些过程可以由图1和图10中所示的编码设备104、由另一视频源侧设备或视频传输设备、由图1和图11中所示的解码设备112和/或由另一个客户端侧设备(例如播放器设备、显示器或任何其他客户端侧设备)来执行。在一些示例中,计算设备或装置可以包括被配置为捕捉包括视频帧的视频数据(例如,视频序列)的照相机。在一些示例中,捕捉视频数据的照相机或其他捕捉设备与计算设备分离,在这种情况下,计算设备接收或获得所捕捉的视频数据。
在一些情况下,计算设备或装置可以包括一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或被配置为执行本文所描述的过程的步骤的其他组件。在一些示例中,计算设备可以包括移动设备、台式计算机、服务器计算机和/或服务器系统、或其他类型的计算设备。计算设备还可以包括被配置为传送视频数据的网络接口。网络接口可以被配置为传送基于互联网协议(IP)的数据或其他类型的数据。在一些示例中,计算设备或装置可以包括用于显示输出视频内容(例如视频比特流的图片的样点)的显示器。
计算设备的组件(例如,一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机和/或其他组件)可以在电路中实现。例如,组件可以包括电子电路或其他电子硬件和/或可以使用电子电路或其他电子硬件来实现,这些电子电路或其他电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其他合适的电子电路),和/或可以包括计算机软件、固件或它们的任何组合,和/或使用计算机软件、固件或它们的任何组合来实现,以执行本文所描述的各种操作。
过程800和900被示为逻辑流程图,其操作表示可以以硬件、计算机指令或其组合实现的操作序列。在计算机指令的上下文中,操作表示存储在一个或多个计算机可读存储介质上的计算机可执行指令,当由一个或多个处理器执行时,该指令执行操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。描述操作的顺序不旨在被解释为限制,并且任意数量的所描述的操作可以以任何顺序组合和/或并行地来实现这些过程。
此外,本文所描述的过程,包括过程800和900,可以在一个或多个配置有可执行指令的计算机系统的控制下执行,并且可以实现为在一个或多个处理器上、由硬件或其组合共同执行的代码(例如,可执行指令、一个或多个计算机程序、或一个或多个应用程序)。如上所述,代码可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。
本文所讨论的译码技术可以在示例视频编码和解码系统(例如,系统100)中实现。在一些示例中,系统包括源设备,该源设备提供稍后要由目的设备进行解码的编码的视频数据。特别地,源设备经由计算机可读介质向目的设备提供视频数据。源设备和目的设备可以包括多种设备中的任一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手机、所谓的“智能”平板、电视、照相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备和目的设备可以配备无线通信。
目的设备可以经由计算机可读介质接收要进行解码的编码的视频数据。计算机可读介质可以包括能够将编码视频数据从源设备移动到目的设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包括通信介质以使得源设备能够实时地将编码的视频数据直接传输到目的设备。编码的视频数据可以根据诸如无线通信协议之类的通信标准被调制,并且被传输到目的设备。通信介质可包括任何无线或有线通信介质,例如射频(RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如因特网的全球网络。通信介质可包括路由器、交换机、基站或可用于促进从源设备到目的设备的通信的任何其他设备。
在一些示例中,编码的数据可以从输出接口输出到存储设备。类似地,可以通过输入接口从存储设备访问编码的数据。存储设备可以包括各种分布式或本地访问的数据存储介质中的任何一种,例如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器或用于存储编码的视频数据的任何其他合适的数字存储介质。在另外的示例中,存储设备可以对应于可以存储由源设备生成的编码的视频的文件服务器或另一个中间存储设备。目的设备可以经由流传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码的视频数据并将该编码的视频数据传输到目的设备的任何类型的服务器。示例文件服务器包括Web服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的设备可以通过包括互联网连接的任何标准数据连接访问编码的视频数据。这可以包括适合访问存储在文件服务器上的编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等)或两者的组合。来自存储设备的编码视频数据的传输可以是流传输、下载传输或其组合。
本公开的技术不一定限于无线应用或设置。这些技术可以应用于视频译码以支持各种多媒体应用中的任何一种,例如空中电视广播、有线电视传输、卫星电视传输、互联网流视频传输(例如基于HTTP的动态自适应流传输(DASH))、被编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码或其他应用程序。在一些示例中,系统可以被配置为支持单向或双向视频传输以支持诸如视频流、视频回放、视频广播和/或视频电话之类的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目的设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文所公开的技术。在其他示例中,源设备和目的设备可以包括其他组件或布置。例如,源设备可以从外部视频源(例如外部照相机)接收视频数据。同样,目的设备可以与外部显示设备接口,而不是包括集成显示设备。
以上示例系统仅仅是一个示例。用于并行处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。尽管本公开的技术通常由视频编码设备执行,但这些技术也可由视频编码器/解码器(通常被称为“译码器”)执行。此外,本公开的技术也可由视频预处理器执行。源设备和目的设备仅仅是这样的译码设备的示例,在该译码设备中源设备生成译码的视频数据以传输到目的设备。在一些示例中,源设备和目的设备可以以基本对称的方式操作,使得设备中的每一个都包括视频编码和解码组件。因此,示例系统可以支持视频设备之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。
视频源可以包括视频捕获设备,例如摄像机、包含先前捕获的视频的视频档案和/或用于从视频内容提供商接收视频的视频馈送接口。作为另外的替代,视频源可以生成基于计算机图形的数据作为源视频,或者实况视频、存档视频和计算机生成视频的组合。在一些情况下,如果视频源是摄像机,则源设备和目的设备可以形成所谓的照相机电话或视频电话。然而,如上所述,本公开中所描述的技术一般可应用于视频译码,并且可应用于无线和/或有线应用。在每种情况下,捕获的、预先捕获的或计算机生成的视频可由视频编码器编码。然后可以通过输出接口将编码的视频信息输出到计算机可读介质上。
如上所述,计算机可读介质可以包括瞬时介质,例如无线广播或有线网络传输,或存储介质(即,非暂时性存储介质)(例如硬盘、闪存驱动器、压缩光盘、数字视频光盘、蓝光光盘或其他计算机可读介质)。在一些示例中,网络服务器(未示出)可以从源设备接收编码的视频数据并且例如经由网络传输将编码的视频数据提供给目的设备。类似地,诸如光盘冲压设施之类的介质制作设施的计算设备可以从源设备接收编码的视频数据并且制作包含编码的视频数据的光盘。因此,在各种示例中,计算机可读介质可被理解为包括各种形式的一种或多种计算机可读介质。
目的设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的、也由视频解码器使用的语法信息,该信息包括描述块和其他译码的单元(例如,图片组(GOP))的特性和/或处理的语法元素。显示设备向用户显示解码的视频数据,并且可以包括多种显示设备中的任一种,例如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或其他类型的显示设备。已经描述了本申请的各种实施例。
编码设备104和解码设备112的具体细节分别在图10和图11中示出。图10是示出可以实现本发明中所描述的技术中的一种或多种技术的示例编码设备104的框图。例如,编码设备104可以生成本文所描述的语法结构(例如,VPS、SPS、PPS或其他语法元素的语法结构)。编码设备104可执行视频条带内的视频块的帧内预测和帧间预测译码。如前所述,帧内编码至少部分依赖于空域预测以减少或去除给定视频帧或图片内的空域冗余。帧间译码至少部分依赖于时域预测以减少或去除视频序列的相邻或周围帧内的时域冗余。帧内模式(I模式)可以指几种基于空域的压缩模式中的任何一种。帧间模式,例如单向预测(P模式)或双向预测(B模式),可以指几种基于时域的压缩模式中的任何一种。
编码设备104包括分割单元35、预测处理单元41、滤波器单元63、图片存储器64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重建,编码设备104还包括逆量化单元58、逆变换处理单元60和加法器62。滤波器单元63旨在表示一个或多个环路滤波器,例如去方块滤波器、自适应环路滤波器(ALF)和采样自适应偏移(SAO)滤波器。尽管滤波器单元63在图10中示出为环路滤波器,在其他配置中,滤波器单元63可以被实现为后环路滤波器。后处理装置57可对由编码设备104产生的编码的视频数据执行附加处理。本公开的技术可在一些情况下由编码设备104实现。然而,在其他情况下,本公开的技术中的一种或多种可以由后处理设备57实现。
如图10所示,编码设备104接收视频数据,并且分割单元35将数据分割为视频块。分割还可以包括分割为条带、条带片段、片或其他更大的单元,以及视频块分割(例如,根据LCU和CU的四叉树结构)。编码设备104大体说明对要编码的视频条带内的视频块进行编码的组件。条带可以被分割为多个视频块(并且可能被分割为被称为片的视频块的集合)。预测处理单元41可以基于误差结果(例如,编码率和失真程度等)为当前视频块选择多种可能的译码模式中的一种(例如,多种帧内预测编码模式中的一种或多种帧间预测编码模式中的一种)。预测处理单元41可以向加法器50提供所得的帧内或帧间译码的块以生成残差块数据并且向加法器62提供以重建编码的块以用作参考图片。
预测处理单元41内的帧内预测处理单元46可以执行当前视频块的帧内预测译码以提供空域压缩,该当前视频块与将被译码的当前块相同的帧或条带中的一个或多个相邻块有关。预测处理单元41内的运动估计单元42和运动补偿单元44执行当前视频块的帧间预测编码以提供时域压缩,该当前视频块与一个或多个参考图片中的一个或多个预测块有关。
运动估计单元42可以被配置为根据视频序列的预定模式确定视频条带的帧间预测模式。预定模式可以将序列中的视频条带指定为P条带、B条带或GPB条带。运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的单独说明。由运动估计单元42执行的运动估计是产生运动矢量的过程,其估计视频块的运动。举例来说,运动矢量可指示当前视频帧或图片内的视频块相对于参考图片内的预测块的预测单元(PU)位移。
预测块是被发现在像素差方面与要译码的视频块的PU紧密匹配的块,像素差可由绝对差之和(SAD)、平方差之和(SSD)或其他差测量确定。在一些示例中,编码设备104可以计算存储在图片存储器64中的参考图片的子整数像素位置的值。例如,编码设备104可以内插四分之一像素位置、八分之一像素位置或参考图片的其他分数像素位置的值。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过将PU的位置与参考图片的预测块的位置进行比较来计算帧间译码的条带中的视频块的PU的运动矢量。参考图片可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择,每个列表识别存储在图片存储器64中的一个或多个参考图片。运动估计单元42发送计算的运动矢量到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计确定的运动矢量来获取或生成预测块,可能执行到子像素精度的内插。一旦接收当前视频块的PU的运动矢量,运动补偿单元44可以在参考图片列表中定位运动矢量指向的预测块。编码设备104通过从正被译码的当前视频块的像素值中减去预测块的像素值、形成像素差值,来形成残差视频块。像素差值形成块的残差数据,并且可以包括亮度和色度差分量两者。加法器50表示执行此减法运算的一个或多个组件。运动补偿单元44还可产生与视频块及视频条带相关联的语法元素以供解码设备112在对视频条带的视频块进行解码时使用。
如上所述,帧内预测处理单元46可以对当前块进行帧内预测,作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代。特别地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可使用各种帧内预测模式(例如,在单独的编码遍期间)对当前块进行编码,并且帧内预测单元处理46可从测试的模式中选择适当的帧内预测模式来使用。例如,帧内预测处理单元46可以使用针对各种测试的帧内预测模式的率失真分析来计算率失真值,并且可以在测试的模式中选择具有最佳率失真特性的帧内预测模式。率失真分析通常确定编码的块和原始、未编码的块之间的失真(或错误)量以及比特率(即,比特的数量),该原始、未编码的块被编码以产生编码的块,该比特率用于产生编码的块。帧内预测处理单元46可根据各种编码的块的失真和速率计算比率,以确定哪种帧内预测模式展示块的最佳率失真值。
在任何情况下,在为块选择帧内预测模式之后,帧内预测处理单元46可向熵编码单元56提供指示所选择的块的帧内预测模式的信息。熵编码单元56可对指示选择的帧内预测模式的信息进行编码。编码设备104可以在传输的比特流配置数据中包括各种块的编码上下文的定义以及最可能的帧内预测模式、帧内预测模式索引表和修改的帧内预测模式索引表的指示以用于每个上下文。比特流配置数据可以包括多个帧内预测模式索引表和多个修改后的帧内预测模式索引表(也称为码字映射表)。
在预测处理单元41经由帧间预测或帧内预测为当前视频块生成预测块之后,编码设备104通过从当前视频块中减去预测块来形成残差视频块。残差块中的残差视频数据可包含在一个或多个TU中并应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)或概念上类似的变换将残差视频数据变换为残差变换系数。变换处理单元52可将残差视频数据从像素域变换到变换域,例如频域。
变换处理单元52可以将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步降低比特率。量化过程可以减少与一些或所有系数相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以对包含量化的变换系数的矩阵执行扫描。或者,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56对量化的变换系数进行熵编码。例如,熵编码单元56可执行上下文自适应可变长度译码(CAVLC)、上下文自适应二进制算术译码(CABAC)、基于语法的上下文自适应二进制算术译码(SBAC)、概率区间分割熵(PIPE)译码或其他熵编码技术。在熵编码单元56进行熵编码之后,编码的比特流可被传输到解码设备112,或被存档以供解码设备112稍后传输或检索。熵编码单元56还可对正在译码的当前视频条带的运动矢量和其他语法元素进行熵编码。
逆量化单元58和逆变换处理单元60分别应用逆量化和逆变换以在像素域中重建残差块以供以后用作参考图片的参考块。运动补偿单元44可通过将残差块添加到参考图片列表内的参考图片之一的预测块来计算参考块。运动补偿单元44还可将一个或多个内插滤波器应用于重建的残差块以计算子整数像素值以用于运动估计。加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加以产生参考块以供存储在图片存储器64中。参考块可由运动估计单元42和运动补偿单元44使用作为对后续视频帧或图片中的块进行帧间预测的参考块。
以此方式,图10的编码设备104表示被配置为执行本文所描述的任何技术的视频编码器的示例,包括上文关于图8和/或图9所描述的过程。在一些情况下,本公开的一些技术也可以由后处理设备57实现。
图11是示出示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、逆量化单元86、逆变换处理单元88、加法器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112可以执行与关于来自图11的编码设备104所描述的编码遍大体相反的解码遍。
在解码过程期间,解码设备112接收由编码设备104发送的表示编码的视频条带的视频块以及相关联的语法元素的编码的视频比特流。在一些实施例中,解码设备112可以从编码设备104接收编码的视频比特流。在一些实施例中,解码设备112可以从网络实体79(例如服务器、媒体感知网络元件(MANE)、视频编辑器/拼接器或被配置为实现上述技术中的一种或多种技术的其他这种设备)接收编码的视频比特流。网络实体79可以包括或可以不包括编码设备104。本公开中所描述的一些技术可以在网络实体79向解码设备112发送编码的视频比特流之前由网络实体79实现。在一些视频解码系统中,网络实体79和解码设备112可以是单独设备的部分,而在其他情况下,关于网络实体79所描述的功能可以由包括解码设备112的同一设备来执行。
解码设备112的熵解码单元80对比特流进行熵解码以生成量化的系数、运动矢量和其他语法元素。熵解码单元80将运动矢量和其他语法元素转发到预测处理单元81。解码设备112可在视频条带级别和/或视频块级别接收语法元素。熵解码单元80可处理和解析一个或多个参数集(例如VPS、SPS和PPS)中的固定长度语法元素和可变长度语法元素两者。
当视频条带被译码为帧内译码(I)条带时,预测处理单元81的帧内预测处理单元84可基于信令通知的帧内预测模式生成当前视频条带的视频块的预测数据并且可以生成来自当前帧或图片的先前解码块的数据。当视频帧被译码为帧间译码(即B、P或GPB)条带时,预测处理单元81的运动补偿单元82基于运动矢量和从熵解码单元80接收的语法元素产生当前视频条带的视频块的预测块。可从参考图片列表内的参考图片之一产生预测块。解码设备112可以基于存储在图片存储器92中的参考图片使用默认构建技术来构建参考帧列表(列表0和列表1)。
运动补偿单元82通过解析运动矢量和其他语法元素来确定当前视频条带的视频块的预测信息,并且使用预测信息来产生正被解码的当前视频块的预测块。例如,运动补偿单元82可使用参数集中的一个或多个语法元素来确定用于对视频条带的视频块进行译码的预测模式(例如,帧内或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考图片列表的构建信息、条带的每个帧间编码的视频块的运动矢量、条带的每个帧间编码的视频块的帧间预测状态以及用于对当前视频条带中的视频块进行解码的其他信息。
运动补偿单元82还可基于内插滤波器执行内插。运动补偿单元82可使用如编码设备104在视频块的编码期间使用的内插滤波器来计算参考块的子整数像素的内插值。在此情况下,运动补偿单元82可从所接收的语法元素确定编码设备104所使用的内插滤波器,并可使用该内插滤波器来产生预测块。
逆量化单元86对比特流中提供并由熵解码单元80解码的量化的变换系数进行逆量化或去量化。逆量化过程可以包括使用由编码设备104为每个视频条带中的视频块计算的量化参数,以确定量化程度,同样地,应该应用的逆量化程度。逆变换处理单元88对变换系数应用逆变换(例如,反DCT或其他合适的逆变换)、反整数变换或概念上类似的逆变换过程,以便在像素域中产生残差块。
在运动补偿单元82基于运动矢量和其他语法元素生成当前视频块的预测块之后,解码设备112通过将来自逆变换处理单元88的残差块与由运动补偿单元82生成的对应的预测块相加来形成解码的视频块。加法器90表示执行该求和运算的一个或多个组件。如果需要,环路滤波器(在译码环路中或在译码环路之后)也可用于平滑像素过渡,或以其他方式提高视频质量。滤波器单元91旨在表示一个或多个环路滤波器,例如去方块滤波器、自适应环路滤波器(ALF)和样点自适应偏移(SAO)滤波器。尽管滤波器单元91在图11中被示出为环路滤波器,在其他配置中,滤波器单元91可以被实现为后环路滤波器。然后给定帧或图片中的解码的视频块被存储在图片存储器92中,图片存储器92存储用于后续运动补偿的参考图片。图片存储器92还存储解码的视频以供稍后在显示设备(例如图1所示的视频目的设备122)上呈现。
以这种方式,图11的解码设备112表示被配置为执行本文所描述的任何技术的视频解码器的示例,包括上文关于图8和/或图9所描述的过程。
如本文所使用的,术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光存储设备以及能够存储、包含或携带(多个)指令和/或数据的各种其他介质。计算机可读介质可以包括其中可以存储数据的非暂时性介质,并且不包括无线地或通过有线连接传播的载波和/或暂时电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如压缩光盘(CD)或数字多功能盘(DVD)之类的光存储介质、闪存、存储器或存储器设备。计算机可读介质可以在其上存储代码和/或机器可执行指令,它们可以表示过程、函数、子程序、程序、例程、子例程、模块、软件包、类,或者指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的手段(包括内存共享、消息传递、令牌传递、网络传输等)来传递、转发或传输。
在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。然而,当被提及时,非暂时性计算机可读存储介质明确排除诸如能量、载波信号、电磁波和信号本身的介质。
在以上描述中提供了具体细节以提供对本文提供的实施例和示例的透彻理解。然而,本领域普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。为了解释的清楚,在一些情况下,本技术可以被呈现为包括单独的功能块,这些功能块包括包含设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合的功能块。可以使用除了图中所示和/或本文所描述的那些之外的附加组件。例如,电路、系统、网络、过程和其他组件可以以框图形式显示为组件,以免在不必要的细节中混淆实施例。在其他情况下,可以在没有不必要的细节的情况下示出众所周知的电路、过程、算法、结构和技术以避免混淆实施例。
以上可以将各个实施例描述为过程或方法,该过程或方法被描述为流程图表、流程图、数据流程图、结构图或框图。尽管流程图可以将操作描述为顺序过程,但许多操作可以并行或并发执行。此外,可以重新安排操作的顺序。过程在其操作完成时终止,但可能具有图中未包括的附加步骤。过程可以对应于方法、函数、程序、子例程、子程序等。当过程对应于函数时,它的终止可以对应函数返回到调用函数或主函数。
根据上述示例的过程和方法可以使用存储的或从计算机可读介质以其他方式可用的计算机可执行指令来实现。这样的指令可以包括例如导致或以其他方式配置通用计算机、专用计算机或处理设备以执行特定功能或功能组的指令和数据。使用的部分计算机资源可以通过网络访问。计算机可执行指令可以是例如二进制文件、诸如汇编语言、固件、源代码等的中间格式指令。可用于存储指令、使用的信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配备有非易失性存储器的USB设备、网络存储设备等。
实现根据这些公开的过程和方法的设备可以包括硬件、软件、固件、中间件、微代码、硬件描述语言或它们的任何组合,并且可以采用多种形式因素中的任何一种。当以软件、固件、中间件或微代码实现时,执行必要任务(例如,计算机程序产品)的程序代码或代码段可以存储在计算机可读或机器可读介质中。(多个)处理器可以执行必要的任务。形式因素的典型示例包括膝上型电脑、智能手机、移动电话、平板设备或其他小型形式因素个人计算机、个人数字助理、机架式设备、独立运行的设备等。本文所描述的功能也可以体现在外围设备或插卡中。作为另外的示例,这样的功能也可以在不同芯片之间的电路板或在单个设备中执行的不同过程上实现。
指令、用于传送此类指令的介质、用于执行它们的计算资源以及用于支持此类计算资源的其他结构是用于提供本公开中所描述的功能的示例手段。
在前面的描述中,参考本申请的具体实施例描述了本申请的方面,但是本领域技术人员将认识到本申请不限于此。因此,虽然本文详细描述了本申请的说明性实施例,但应当理解,本发明构思可以以其他方式不同地体现和采用,并且所附权利要求旨在被解释为包括这样的变化,除非受到现有技术的限制。上述申请的各种特征和方面可以单独或联合使用。此外,在不脱离本说明书的更广泛的精神和范围的情况下,实施例可以在超出本文描述的环境和应用的任何数量的环境和应用中使用。因此,说明书和附图被认为是说明性的而不是限制性的。为了说明的目的,按特定顺序描述了方法。应当理解,在替代实施例中,可以以与所描述的顺序不同的顺序来执行这些方法。
本领域技术人员将理解,在不脱离本说明书的范围的情况下,本文使用的小于(“<”)和大于(“>”)符号或术语可以被分别替换为小于或等于(“≤”)和大于或等于为(“≥”)符号。
在组件被描述为“被配置为”执行某些操作的情况下,这种配置可以通过例如设计电子电路或其他硬件来执行操作、通过对可编程电子电路(例如微处理器或其他合适的电子电路)进行编程来执行操作或它们的任何组合来完成。
短语“耦合到”是指物理上直接或间接连接到另一个组件的任何组件,和/或直接或间接与另一个组件通信的任何组件(例如,通过有线或无线连接到其他组件连接,和/或其他合适的通信接口)。
描述集合“中的至少一个”和/或集合“中的一个或多个”的权利要求语言或其他语言指示满足该权利要求的该集合的一个成员或该集合的多个成员(以任何组合)。例如,描述“A和B中的至少一个”的权利要求语言表示A、B、或A和B。在另一个示例中,描述“A、B和C中的至少一个”的权利要求语言表示A、B、C、或A和B、或A和C、或B和C、或A和B和C。语言集合“中的至少一个”和/或集合“中的一个或多个”不限制集合为集合中列出的项。例如,描述“A和B中的至少一个”的权利要求语言可以表示A、B、或A和B,并且可以另外包括未在A和B的集合中列出的项。
结合本文所公开的实施例描述的各种说明性逻辑块、模块、电路和算法步骤可以实现为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件和软件的这种可互换性,各种说明性组件、块、模块、电路和步骤已经在上面大体上根据它们的功能进行了描述。这种功能是作为硬件还是软件来实现的,取决于特定的应用程序和对整个系统施加的设计约束。技术人员可以针对每个特定应用以不同方式实现所描述的功能,但是这样的实现决定不应被解释为导致偏离本申请的范围。
本文所描述的技术还可以以电子硬件、计算机软件、固件或其任何组合来实现。此类技术可以在多种设备中的任一种中实现,例如通用计算机、无线通信设备手持机或具有多种用途(包括在无线通信设备手持机和其他设备中的应用)的集成电路设备。被描述为模块或组件的任何特征可以在集成逻辑设备中一起实现或单独实现为分立但可互操作的逻辑设备。如果以软件实现,则这些技术可以至少部分地通过包括程序代码的计算机可读数据存储介质来实现,该程序代码包括在被执行时执行上述一种或多种方法的指令。计算机可读数据存储介质可以形成计算机程序产品(其可以包括包装材料)的一部分。计算机可读介质可以包括存储器或数据存储介质,例如随机存取存储器(RAM)、例如同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。附加地或替代地,这些技术可以至少部分地通过计算机可读通信介质(例如传播的信号或波)来实现,该计算机可读通信介质承载或通信以指令或数据结构形式的程序代码并且可以由计算机访问、读取和/或执行。
程序代码可以由处理器执行,该处理器可以包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立逻辑电路。这样的处理器可以被配置为执行本公开中所描述的任何技术。通用处理器可以是微处理器;但在替代方案中,处理器可以是任何传统的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核结合,或者任何其他这样的配置。因此,如本文所使用的术语“处理器”可指任何前述结构、前述结构的任何组合、或适合于实施本文所述技术的任何其他结构或装置。此外,在一些方面,本文所描述的功能可以在被配置用于编码和解码的专用软件模块或硬件模块内提供,或者并入组合视频编码器-解码器(译码器)中。
本公开的说明性示例包括:
示例1:一种解码视频数据的方法。该方法包括:获得包括视频数据的经编码的视频比特流;生成用于对视频数据的当前块进行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;以及扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。
示例2:根据示例1的方法,其中物理存储器包括用于存储译码单元的重建像素的循环缓冲器,该译码单元包括视频数据的一个或多个块。
示例3:根据示例1或2中任一项的方法,其中存储在物理存储器中的一个或多个像素包括属于译码单元边界的重建像素。
示例4:根据示例1至3中任一项的方法,其中对存储在物理存储器中的一个或多个像素的一个或多个参考包括对属于边界的重建像素的重复参考。
示例5:根据示例1至4中任一项的方法,其中对属于边界的重建像素的重复参考包括对属于边界的至少一个重建像素的第一参考和对属于边界的该至少一个重建像素的第二参考。
示例6:根据示例1至5中任一项的方法,其中当前块属于译码单元。
示例7:根据示例1至6中任一项的方法,其中译码单元包括两个或更多个虚拟管线数据单元(VPDU),两个或更多个VPDU中的至少一个VPDU包括当前块,并且其中循环缓冲器的至少部分被配置为当正在对至少一个VPDU中的一个或多个块执行帧内块复制预测时,存储该至少一个VPDU的重建像素。
示例8:根据示例1至7中任一项的方法,其中循环缓冲器的至少部分不可用于存储用于对当前块执行帧内块复制预测的搜索区的像素。
示例9:根据示例1至8中任一项的方法,其中物理存储器包括用于存储视频数据中的一个或多个块的重建像素的线缓冲器。
示例10:根据示例1至9中任一项的方法,其中一个或多个块属于包括当前块的当前译码单元的相邻译码单元。
示例11:根据示例1至10中任一项的方法,其中对存储在物理存储器中的一个或多个像素的一个或多个参考包括对存储在线缓冲器中的重建像素的重复参考。
示例12:根据示例1至11中任一项的方法,其中对存储在线缓冲器中的重建像素的重复参考包括对存储在线缓冲器中的至少一个重建像素的第一参考和对存储在线缓冲器中的该至少一个重建像素的第二参考。
示例13:根据示例1至12中任一项的方法,还包括:使用虚拟搜索区中对一个或多个像素的一个或多个参考,对当前块执行帧内块复制预测。
示例14:根据示例1至13中任一项的方法,还包括:基于使用帧内块复制预测获得的预测值和残差值来重建当前块。
实施例15:一种用于解码视频数据的装置,该装置包括:存储器;以及在电路中实现的处理器,处理器被配置为:获得包括视频数据的经编码的视频比特流;生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区。
示例16:根据示例15的装置,其中物理存储器包括用于存储编码单元的重建像素的循环缓冲器,该译码单元包括视频数据中的一个或多个块。
示例17:根据示例15至16中任一项的装置,其中存储在物理存储器中的一个或多个像素包括属于译码单元的边界的重建像素。
示例18:根据示例15至17中任一项的装置,其中对存储在物理存储器中的一个或多个像素的一个或多个参考包括对属于边界的重建像素的重复参考。
示例19:根据示例15至18中任一项的装置,其中对属于边界的重建像素的重复参考包括对属于边界的至少一个重建像素的第一参考和对属于边界的该至少一个重建像素的第二参考。
示例20:根据示例15至19中任一项的装置,其中当前块属于译码单元。
示例21:根据示例15至20中任一项的装置,其中译码单元包括两个或更多个虚拟管线数据单元(VPDU),两个或更多个VPDU中的至少一个VPDU包括当前块,并且其中循环缓冲器的至少部分被配置为当正在对至少一个VPDU中的一个或多个块执行帧内块复制预测时,存储该至少一个VPDU的重建像素。
示例22:根据示例15至21中任一项的装置,其中循环缓冲器的至少部分不可用于存储用于对当前块执行帧内块复制预测的搜索区的像素。
示例23:根据示例15至22中任一项的装置,其中物理存储器包括用于存储视频数据中的一个或多个块的重建像素的线缓冲器。
示例24:根据示例15至23中任一项的装置,其中一个或多个块属于包括当前块的当前译码单元的相邻译码单元。
示例25:根据示例15至24中任一项的装置,其中对存储在物理存储器中的一个或多个像素的一个或多个参考包括对存储在线缓冲器中的重建像素的重复参考。
示例26:根据示例15至25中任一项的装置,其中处理器还被配置为:使用虚拟搜索区中对一个或多个像素的一个或多个参考来对当前块执行帧内块复制预测。
示例27:根据示例15至26中任一项的装置,其中该装置包括具有用于捕捉一个或多个图片的照相机的移动设备。
示例28:根据示例15至27中任一项的装置,还包括用于显示一个或多个图片的显示器。
示例29:一种非暂时性计算机可读介质,其上存储有指令,当由处理器执行时,该指令执行示例1至14中任一项的方法。例如,非暂时性计算机可读介质上可以具有存储在其上的指令,当由一个或多个处理器执行时,使该一个或多个处理器:获得包括视频数据的经编码的视频比特流的指令;生成用于对视频数据的当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;以及扩展用于对当前块进行帧内块复制预测的搜索区以包括虚拟搜索区。
示例30:一种用于根据示例1至14中的任一项对视频数据进行解码的装置。该装置包括:用于获得包括视频数据的经编码的视频比特流的部件;以及用于生成对视频数据的当前块执行帧内块复制预测的虚拟搜索区的部件,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;以及用于扩展用于对当前块执行帧内块复制预测的搜索区以包括虚拟搜索区的部件。
示例31:一种用于编码视频数据的方法。该方法包括:获得视频数据的图片的当前块;生成用于对当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;扩展用于对当前块进行帧内块复制预测的搜索区以包括虚拟搜索区;以及生成包括当前块的至少部分的经编码的视频比特流。
示例32:根据示例31的方法,其中物理存储器包括用于存储译码单元的重建像素的循环缓冲器,该译码单元包括视频数据中的一个或多个块。
示例33:根据示例31或32中任一项的方法,其中存储在物理存储器中的一个或多个像素包括属于译码单元的边界的重建像素。
示例34:根据示例31至33中任一项的方法,其中对存储在物理存储器中的一个或多个像素的一个或多个参考包括对属于边界的重建像素的重复参考。
示例35:根据示例31至34中任一项的方法,其中对属于边界的重建像素的重复参考包括对属于边界的至少一个重建像素的第一参考和对属于边界的该至少一个重建像素的第二参考。
示例36:根据示例31至35中任一项的方法,其中当前块属于译码单元。
示例37:根据示例31至36中任一项的方法,其中译码单元包括两个或更多个虚拟管线数据单元(VPDU),两个或更多个VPDU中的至少一个VPDU包括当前块,并且其中循环缓冲器的至少部分被配置为当正在对至少一个VPDU中的一个或多个块执行帧内块复制预测时,存储该至少一个VPDU的重建像素。
示例38:根据示例31至37中任一项的方法,其中循环缓冲器的至少部分不可用于存储用于对当前块执行帧内块复制预测的搜索区的像素。
示例39:根据示例31至38中任一项的方法,其中物理存储器包括用于存储视频数据中的一个或多个块的重建像素的线缓冲器。
示例40:根据示例31至39中任一项的方法,其中一个或多个块属于包括当前块的当前译码单元的相邻译码单元。
示例41:根据示例31至40中任一项的方法,其中对存储在物理存储器中的一个或多个像素的一个或多个参考包括对存储在线缓冲器中的重建像素的重复参考。
示例42:根据示例31至41中任一项的方法,其中对存储在线缓冲器中的重建像素的重复参考包括对存储在线缓冲器中的至少一个重建像素的第一参考和对存储在线缓冲器中的该至少一个重建像素的第二参考。
示例43:根据示例31至42中任一项的方法,还包括:使用虚拟搜索区中对一个或多个像素的一个或多个参考,对当前块执行帧内块复制预测。
示例44:根据示例31至43中任项的方法,还包括:基于使用帧内块复制预测获得的预测值和残差值来重建当前块。
示例45:一种用于根据方法31至44中的任一项对视频数据进行编码的装置。该装置包括存储器以及实现为电路的处理器,处理器被配置为:获得视频数据的图片的当前块;生成用于对当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;扩展用于对当前块进行帧内块复制预测的搜索区以包括虚拟搜索区;以及生成包括当前块的至少部分的经编码的视频比特流。
示例46:一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,该指令使该一个或多个处理器执行示例31至44中任一项的方法。例如,非暂时性计算机可读介质可以具有存储在其上的指令,当由一个或多个处理器执行时,该指令使得该一个或多个处理器:获得视频数据的图片的当前块;生成用于对当前块执行帧内块复制预测的虚拟搜索区,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;扩展用于对当前块进行帧内块复制预测的搜索区以包括虚拟搜索区;以及生成包括当前块的至少部分的经编码的视频比特流。
示例47:一种用于根据示例31至44中任一项的对视频数据进行编码的装置。该装置包括:用于获得视频数据的图片的当前块的部件;用于生成用于对当前块执行帧内块复制预测的虚拟搜索区的部件,该虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;用于扩展用于对当前块进行帧内块复制预测的搜索区以包括虚拟搜索区的部件;以及用于生成包括当前块的至少部分的经编码的视频比特流的部件。
示例48:一种处理视频数据的方法。该方法包括:获得视频数据;确定帧内块复制预测被启用于对视频数据的至少一个块执行帧内图片预测;针对至少一个块的帧内块复制预测生成扩展搜索参考区,通过在与帧内块复制预测相关联的搜索范围边界处添加填充像素来生成扩展搜索参考区。
示例49:根据示例48的方法,其中填充像素包括来自当前参考区的边界的重复边界像素。
示例50:根据示例48至49中任一项的方法,其中填充像素包括一个或多个相邻块的重复边界像素。
示例51:根据示例48至50中任一项的方法,其中从线缓冲器获得一个或多个相邻块的边界像素。
示例52:根据示例48至51中任一项的方法,其中使用循环缓冲器来存储扩展搜索参考区。
示例53:根据示例33至52中任一项的方法,其中使用当前译码单元的重建像素更新包括相邻译码单元的重建像素的循环缓冲器的存储区域,当前译码单元包括至少一个块。
示例54:根据示例48至53中任一项的方法,其中被更新的存储区域不是搜索参考区。
示例55:根据示例48至54中任一项的方法,其中存储区域被来自扩展搜索参考区的一个或多个填充像素替代。
示例56:根据示例48至55中任一项的方法,还包括在经编码的视频比特流中信令通知扩展搜索参考区的指示。
示例57:根据示例48至56中任一项的方法,还包括:使用扩展搜索参考区对至少一个块执行帧内块复制预测。
示例58:一种装置,包括被配置为存储视频数据的存储器和被配置为根据示例48至57中的任一项来处理视频数据的处理器。
示例59:根据示例58的装置,其中该装置包括解码器。
示例60:根据示例58的装置,其中该装置包括编码器。
示例61:根据示例58至60中任一项的装置,其中该装置是移动设备。
示例62:根据示例58至61中任一项的装置,其中该装置包括被配置为显示视频数据的显示器。
示例63:根据示例58至62中任一项的装置,其中该装置包括被配置为捕捉一个或多个图片的照相机。
示例64:一种计算机可读介质,其上存储有指令,该指令在由处理器执行时执行权利要求48至57中任一项的方法。
Claims (30)
1.一种解码视频数据的方法,所述方法包括:
获得包括视频数据的经编码的视频比特流;
生成用于对所述视频数据的当前块执行帧内块复制预测的虚拟搜索区,所述虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;以及
扩展用于对所述当前块执行所述帧内块复制预测的搜索区以包括所述虚拟搜索区。
2.根据权利要求1所述的方法,其中,所述物理存储器包括用于存储译码单元的重建像素的循环缓冲器,所述译码单元包括所述视频数据的一个或多个块。
3.根据权利要求2所述的方法,其中,存储在所述物理存储器中的一个或多个像素包括属于所述译码单元的边界的重建像素。
4.根据权利要求3所述的方法,其中,所述对存储在所述物理存储器中的一个或多个像素的一个或多个参考包括对属于所述边界的重建像素的重复参考。
5.根据权利要求4所述的方法,其中,所述对属于所述边界的重建像素的重复参考包括对属于所述边界的至少一个重建像素的第一参考和对属于所述边界的所述至少一个重建像素的第二参考。
6.根据权利要求2所述的方法,其中,所述当前块属于所述译码单元。
7.根据权利要求2所述的方法,其中,所述译码单元包括两个或更多个虚拟管线数据单元(VPDU),所述两个或更多个VPDU中的至少一个VPDU包括所述当前块,并且其中所述循环缓冲器的至少部分被配置为当正在对所述至少一个VPDU中的一个或多个块执行帧内块复制预测时,存储所述至少一个VPDU的重建像素。
8.根据权利要求7所述的方法,其中,所述循环缓冲器的至少部分不可用于存储用于对所述当前块执行所述帧内块复制预测的搜索区的像素。
9.根据权利要求1所述的方法,其中,所述物理存储器包括用于存储所述视频数据的一个或多个块的重建像素的线缓冲器。
10.根据权利要求9所述的方法,其中,所述一个或多个块属于包括所述当前块的当前译码单元的相邻译码单元。
11.根据权利要求9所述的方法,其中,所述对存储在所述物理存储器中的一个或多个像素的一个或多个参考包括对存储在所述线缓冲器中的重建像素的重复参考。
12.根据权利要求11所述的方法,其中,所述对存储在所述线缓冲器中的重建像素的重复参考包括对存储在所述线缓冲器中的至少一个重建像素的第一参考和对存储在所述线缓冲器中的所述至少一个重建像素的第二参考。
13.根据权利要求1所述的方法,还包括:
使用所述虚拟搜索区中对一个或多个像素的一个或多个参考,对所述当前块执行所述帧内块复制预测。
14.根据权利要求1所述的方法,还包括:
基于使用所述帧内块复制预测获得的预测值和残差值,重建所述当前块。
15.一种用于解码视频数据的装置,所述装置包括:
存储器;以及
在电路中实现的处理器,其被配置为:
获得包括视频数据的经编码的视频比特流;
生成用于对所述视频数据的当前块执行帧内块复制预测的虚拟搜索区,所述虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;以及
扩展用于对所述当前块执行所述帧内块复制预测的搜索区以包括所述虚拟搜索区。
16.根据权利要求15所述的装置,其中,所述物理存储器包括用于存储译码单元的重建像素的循环缓冲器,所述译码单元包括所述视频数据的一个或多个块。
17.根据权利要求16所述的装置,其中,存储在所述物理存储器中的一个或多个像素包括属于所述译码单元的边界的重建像素。
18.根据权利要求17所述的装置,其中,所述对存储在所述物理存储器中的一个或多个像素的一个或多个参考包括对属于所述边界的重建像素的重复参考。
19.根据权利要求18所述的装置,其中,所述对属于所述边界的重建像素的重复参考包括对属于所述边界的至少一个重建像素的第一参考和对属于所述边界的所述至少一个重建像素的第二参考。
20.根据权利要求16所述的装置,其中,所述当前块属于所述译码单元。
21.根据权利要求16所述的装置,其中,所述译码单元包括两个或更多个虚拟管线数据单元(VPDU),所述两个或更多个VPDU中的至少一个VPDU包括所述当前块,并且其中所述循环缓冲器的至少部分被配置为当正在对所述至少一个VPDU中的一个或多个块执行帧内块复制预测时,存储所述至少一个VPDU的重建像素。
22.根据权利要求21所述的装置,其中,所述循环缓冲器的至少部分不可用于存储用于对所述当前块执行所述帧内块复制预测的搜索区的像素。
23.根据权利要求15所述的装置,其中,所述物理存储器包括用于存储所述视频数据的一个或多个块的重建像素的线缓冲器。
24.根据权利要求23所述的装置,其中,所述一个或多个块属于包括所述当前块的当前译码单元的相邻译码单元。
25.根据权利要求23所述的装置,其中,所述对存储在所述物理存储器中的一个或多个像素的一个或多个参考包括对存储在所述线缓冲器中的重建像素的重复参考。
26.根据权利要求15所述的装置,其中,所述处理器还被配置为:
使用所述虚拟搜索区中对一个或多个像素的一个或多个参考,对所述当前块执行所述帧内块复制预测。
27.根据权利要求15所述的装置,其中,所述装置包括移动设备,所述移动设备具有用于捕捉一个或多个图片的照相机。
28.根据权利要求15所述的装置,还包括用于显示一个或多个图片的显示器。
29.一种非暂时性计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,所述指令使得所述一个或多个处理器:
获得包括视频数据的经编码的视频比特流;
生成用于对所述视频数据的当前块执行帧内块复制预测的虚拟搜索区,所述虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;以及
扩展用于对所述当前块执行所述帧内块复制预测的搜索区以包括所述虚拟搜索区。
30.一种用于编码视频数据的装置,所述装置包括:
存储器;以及
在电路中实现的处理器,其被配置为:
获得视频数据的图片的当前块;
生成用于对所述当前块执行帧内块复制预测的虚拟搜索区,所述虚拟搜索区包括对存储在物理存储器中的一个或多个像素的一个或多个参考;
扩展用于对所述当前块执行所述帧内块复制预测的搜索区以包括所述虚拟搜索区;以及
生成包括所述当前块的至少部分的经编码的视频比特流。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410567731.8A CN118509583A (zh) | 2018-12-20 | 2019-12-17 | 用于解码/编码视频数据的方法及装置 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862783180P | 2018-12-20 | 2018-12-20 | |
US62/783,180 | 2018-12-20 | ||
US16/716,310 | 2019-12-16 | ||
US16/716,310 US10999594B2 (en) | 2018-12-20 | 2019-12-16 | Virtual search area for current picture referencing (CPR) and intra block copy (IBC) |
PCT/US2019/066948 WO2020131934A1 (en) | 2018-12-20 | 2019-12-17 | Virtual search area for current picture referencing (cpr) and intra block copy (ibc) |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410567731.8A Division CN118509583A (zh) | 2018-12-20 | 2019-12-17 | 用于解码/编码视频数据的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113196775A true CN113196775A (zh) | 2021-07-30 |
CN113196775B CN113196775B (zh) | 2024-05-28 |
Family
ID=71097930
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980082307.1A Active CN113196775B (zh) | 2018-12-20 | 2019-12-17 | 用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区 |
CN202410567731.8A Pending CN118509583A (zh) | 2018-12-20 | 2019-12-17 | 用于解码/编码视频数据的方法及装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410567731.8A Pending CN118509583A (zh) | 2018-12-20 | 2019-12-17 | 用于解码/编码视频数据的方法及装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10999594B2 (zh) |
EP (1) | EP3900356A1 (zh) |
CN (2) | CN113196775B (zh) |
TW (1) | TW202041030A (zh) |
WO (1) | WO2020131934A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024022377A1 (en) * | 2022-07-26 | 2024-02-01 | Douyin Vision Co., Ltd. | Using non-adjacent samples for adaptive loop filter in video coding |
WO2024022356A1 (zh) * | 2022-07-26 | 2024-02-01 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
WO2024212256A1 (zh) * | 2023-04-14 | 2024-10-17 | Oppo广东移动通信有限公司 | 编解码方法、码流、编码器、解码器以及存储介质 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019147403A1 (en) | 2018-01-29 | 2019-08-01 | Interdigital Vc Holdings, Inc. | Encoding and decoding with refinement of the reconstructed picture |
KR20200123787A (ko) * | 2018-02-26 | 2020-10-30 | 인터디지털 브이씨 홀딩스 인코포레이티드 | 일반화된 obmc를 위한 방법 및 장치 |
US11240518B2 (en) * | 2019-01-06 | 2022-02-01 | Tencent America LLC | Method and apparatus for video coding |
CN113366848A (zh) | 2019-02-02 | 2021-09-07 | 北京字节跳动网络技术有限公司 | 用于视频编解码中的帧内块复制的缓冲区重置 |
KR20210123300A (ko) * | 2019-02-02 | 2021-10-13 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리 |
WO2020177662A1 (en) | 2019-03-01 | 2020-09-10 | Beijing Bytedance Network Technology Co., Ltd. | Implementation aspects in intra block copy in video coding |
JP7405861B2 (ja) | 2019-03-01 | 2023-12-26 | 北京字節跳動網絡技術有限公司 | 映像符号化におけるイントラブロックコピーのための方向に基づく予測 |
CN113508581B (zh) * | 2019-03-04 | 2023-11-14 | 北京字节跳动网络技术有限公司 | 视频编解码中的帧内块复制中的实施方式方面 |
US11032543B2 (en) * | 2019-03-22 | 2021-06-08 | Tencent America LLC | Method and apparatus for video coding |
US11445174B2 (en) * | 2019-05-06 | 2022-09-13 | Tencent America LLC | Method and apparatus for video coding |
BR112021020641A2 (pt) * | 2019-06-21 | 2022-03-03 | Panasonic Ip Corp America | Sistema e método para codificação de vídeo |
MX2022000102A (es) * | 2019-07-06 | 2022-02-03 | Beijing Bytedance Network Tech Co Ltd | Bufer de prediccion virtual para la copia intra-bloque en codificacion de video. |
JP7359934B2 (ja) | 2019-07-10 | 2023-10-11 | 北京字節跳動網絡技術有限公司 | 映像符号化におけるイントラブロックコピーのためのサンプル識別 |
JP7297908B2 (ja) | 2019-07-11 | 2023-06-26 | テンセント・アメリカ・エルエルシー | ビデオコーディング方法、装置及びコンピュータプログラム |
CN117579816A (zh) | 2019-07-11 | 2024-02-20 | 北京字节跳动网络技术有限公司 | 用于视频编解码中的帧内块复制的比特流一致性约束 |
CN114175657B (zh) * | 2019-07-26 | 2023-12-26 | 北京字节跳动网络技术有限公司 | 基于块尺寸的图片分割模式确定 |
US11394957B2 (en) * | 2019-09-23 | 2022-07-19 | Tencent America LLC | Constraints on reference sample locations in the dedicated buffer for intra picture block compensation |
WO2021130054A1 (en) * | 2019-12-26 | 2021-07-01 | Nokia Technologies Oy | Method, apparatus, and computer program product for gradual decoding refresh for video encoding and decoding |
US11582453B2 (en) * | 2021-01-11 | 2023-02-14 | Tencent America LLC | Multi-model selection for neural network based tools in video coding |
US20220224924A1 (en) * | 2021-01-11 | 2022-07-14 | Tencent America LLC | Hierarchical structure for neural network based tools in video coding |
US20220248041A1 (en) * | 2021-02-01 | 2022-08-04 | Facebook Technologies, Llc | Pixel Block Encoder |
WO2023028965A1 (en) * | 2021-09-02 | 2023-03-09 | Nvidia Corporation | Hardware codec accelerators for high-performance video encoding |
US11849129B2 (en) * | 2022-03-18 | 2023-12-19 | Qualcomm Incorporated | Intra-block copy decoding using dynamic re-mapping of on-chip memory |
US20240013443A1 (en) * | 2022-07-08 | 2024-01-11 | Meta Platforms Technologies, Llc | Pixel Block Encoder Capable of Jointly Encoding Pixel Channels |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106134196A (zh) * | 2014-03-21 | 2016-11-16 | 高通股份有限公司 | 在视频译码中用于帧内块复制的搜索区域确定 |
WO2017058633A1 (en) * | 2015-10-02 | 2017-04-06 | Qualcomm Incorporated | Intra block copy merge mode and padding of unavailable ibc reference region |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889850A (zh) * | 2014-02-21 | 2019-06-14 | 联发科技(新加坡)私人有限公司 | 视频编解码方法 |
-
2019
- 2019-12-16 US US16/716,310 patent/US10999594B2/en active Active
- 2019-12-17 WO PCT/US2019/066948 patent/WO2020131934A1/en unknown
- 2019-12-17 CN CN201980082307.1A patent/CN113196775B/zh active Active
- 2019-12-17 TW TW108146301A patent/TW202041030A/zh unknown
- 2019-12-17 EP EP19842644.7A patent/EP3900356A1/en active Pending
- 2019-12-17 CN CN202410567731.8A patent/CN118509583A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106134196A (zh) * | 2014-03-21 | 2016-11-16 | 高通股份有限公司 | 在视频译码中用于帧内块复制的搜索区域确定 |
WO2017058633A1 (en) * | 2015-10-02 | 2017-04-06 | Qualcomm Incorporated | Intra block copy merge mode and padding of unavailable ibc reference region |
Non-Patent Citations (4)
Title |
---|
JIANLE CHEN: "JVET-L1002-v1,Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 12TH MEETING, 12 October 2018 (2018-10-12), pages 1 - 41 * |
JIANPENG DONG 等: "Adaptive Intra Prediction Padding to Improve Intra Motion Compensation", 25TH PICTURE CODING SYMPOSIUM 2006, 26 April 2006 (2006-04-26), pages 134 - 137, XP008091731 * |
XIAOZHONG XU 等: "Intra Block Copy in HEVC Screen Content Coding Extensions", IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, vol. 6, no. 4, 31 December 2016 (2016-12-31), pages 409 - 419, XP011636923, DOI: 10.1109/JETCAS.2016.2597645 * |
YU-CHEN SUN 等: "Improvements of HEVC SCC Palette Mode and Intra Block Copy", IEEE JOURNAL ON EMERGING AND SELECTED TOPICS IN CIRCUITS AND SYSTEMS, vol. 6, no. 4, 31 December 2016 (2016-12-31), pages 433 - 445, XP011636922, DOI: 10.1109/JETCAS.2016.2598193 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024022377A1 (en) * | 2022-07-26 | 2024-02-01 | Douyin Vision Co., Ltd. | Using non-adjacent samples for adaptive loop filter in video coding |
WO2024022356A1 (zh) * | 2022-07-26 | 2024-02-01 | 杭州海康威视数字技术股份有限公司 | 一种编解码方法、装置及其设备 |
WO2024212256A1 (zh) * | 2023-04-14 | 2024-10-17 | Oppo广东移动通信有限公司 | 编解码方法、码流、编码器、解码器以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US10999594B2 (en) | 2021-05-04 |
EP3900356A1 (en) | 2021-10-27 |
CN118509583A (zh) | 2024-08-16 |
CN113196775B (zh) | 2024-05-28 |
US20200204819A1 (en) | 2020-06-25 |
TW202041030A (zh) | 2020-11-01 |
WO2020131934A1 (en) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196775B (zh) | 用于当前图片参考(cpr)和帧内块复制(ibc)的虚拟搜索区 | |
CN110383839B (zh) | 仿射运动信息导出 | |
CN112956190B (zh) | 仿射运动预测 | |
CN113711595B (zh) | 针对帧内预测模式推导的基于块的量化残差域脉冲编解码调制分配 | |
US11563933B2 (en) | Reference picture resampling with switchable filters | |
CN112823517A (zh) | 基于历史的运动矢量预测子的改进 | |
CN114208176A (zh) | 用于使用与图像大小相关的缩放比例的译码视频的方法和装置 | |
US11184607B2 (en) | Same picture order count (POC) numbering for scalability support | |
US11290743B2 (en) | Interaction of illumination compensation with inter-prediction | |
CN113728634A (zh) | 自适应环路滤波器(alf)参数的自适应参数集(aps) | |
CN113287300B (zh) | 针对照度补偿的块大小限制 | |
CN114982246A (zh) | 环路滤波器的自适应舍入 | |
US11388394B2 (en) | Local illumination compensation (LIC) for virtual pipeline data units (VPDUS) | |
KR20230020413A (ko) | 디코딩된 픽처 버퍼 (dpb) 동작들 및 액세스 유닛 구분자 (aud) | |
CN114097246A (zh) | 跨光栅扫描切片的自适应环路滤波 | |
KR20230123952A (ko) | 중첩 블록 모션 보상 | |
CN113228677A (zh) | 用于照度补偿模式的修剪 | |
JP2024531112A (ja) | グリーンメタデータシグナリング |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |