CN114788271A - 具有多种块内拷贝模式的视频编码 - Google Patents

具有多种块内拷贝模式的视频编码 Download PDF

Info

Publication number
CN114788271A
CN114788271A CN202080083841.7A CN202080083841A CN114788271A CN 114788271 A CN114788271 A CN 114788271A CN 202080083841 A CN202080083841 A CN 202080083841A CN 114788271 A CN114788271 A CN 114788271A
Authority
CN
China
Prior art keywords
block
ibc
intra
encoded
version
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080083841.7A
Other languages
English (en)
Inventor
维杰·圣达拉姆
邱怡仁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN114788271A publication Critical patent/CN114788271A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/172Methods 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 picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/182Methods 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 a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

公开了实现具有多种块内拷贝模式的视频编码的示例方法、装置、系统和制品(例如,物理存储介质)。本文公开了示例视频编码器装置,包括编码块转化器,用于对图像帧的编码块执行转化操作以确定编码块的转化后版本。公开的示例视频编码器装置还包括搜索器,用于基于编码块的未转化版本执行第一块内拷贝搜索并且基于编码块的转化后版本执行第二块内拷贝搜索,以确定图像帧的先前编码像素的候选预测块,该候选预测块对应于编码块的块内拷贝预测子。

Description

具有多种块内拷贝模式的视频编码
相关申请
本专利要求获得2020年1月3日提交的标题为“ENHANCED INTRA BLOCK COPYMODES FOR IMPROVED SCREEN CONTENT COMPRESSION(用于改进的屏幕内容压缩的增强块内拷贝模式)”的美国临时申请62/956,813号的权益。要求美国临时申请62/956,813号的优先权。特此通过引用将美国临时申请62/956,813号全部并入在此。
技术领域
本公开概括而言涉及视频编码,更具体而言,涉及具有多种块内拷贝模式的视频编码。
背景技术
可以通过执行空间(图片内)预测和/或时间(图片间)预测来压缩视频流,以减少和/或去除视频流中包括的图像帧序列中的冗余。可以根据一个或多个视频编码行业标准,以及为支持特定类型的视频内容(例如由媒体设备生成的屏幕内容)而定制的这种标准的扩展,来执行视频压缩。媒体设备可以通过实现这种视频压缩来高效地发送、接收、编码、解码和/或存储数字视频信息。
附图说明
图1是根据本公开的教导的用于实现具有多种块内拷贝模式的视频编码的示例视频编码器的框图。
图2图示了可与由图1的视频编码器处理的示例编码块和/或示例预测块相对应的示例分区单元。
图3-图4图示了由图1的视频编码器实现的示例块内拷贝模式。
图5-图19图示了由图1的视频编码器对示例编码块和/或示例预测块执行来实现图3-图4的示例块内拷贝模式的示例转化操作。
图20图示了由图1的视频编码器执行的示例块内拷贝过程。
图21是可用于实现图1的视频编码器的示例块内拷贝编码器的框图。
图22是可用于对从图1的视频编码器输出的编码视频比特流进行解码的示例块内拷贝解码器的框图。
图23是代表可被执行来实现图1和/或图21的视频编码器和/或块内拷贝编码器的示例计算机可读指令的流程图。
图24是代表可被执行来实现图22的块内拷贝解码器的示例计算机可读指令的流程图。
图25是代表可被执行来实现图1的视频编码器的示例计算机可读指令的流程图。
图26是被构造来执行图23和/或图25的示例计算机可读指令以实现图1的视频编码器和/或图1和/或图21的块内拷贝编码器的示例处理器平台的框图。
图27是被构造来执行图24的示例计算机可读指令以实现图22的视频解码器的示例处理器平台的框图。
图28是被构造来根据本公开的教导实现多种块内拷贝模式以执行屏幕内容压缩的示例电子设备的框图。
图29是用于根据本公开的教导实现多种块内拷贝模式以执行屏幕内容压缩的示例计算机可读介质的框图。
图30是示例软件分发平台的框图,用于将软件(例如,与图23、图24和/或图25的示例计算机可读指令相对应的软件)分发到客户端设备,例如消费者(例如,用于许可、销售和/或使用)、零售商(例如,用于销售、再销售、许可和/或次级许可)和/或原始设备制造商(OEM)(例如,用于包括在要被分发到例如零售商和/或直接购买客户的产品中)。
图31是图示出根据本公开的教导实现的具有多种块内拷贝模式的视频编码的示例性能结果的曲线图。
附图不是按比例的。相反,在附图中可能放大了层或区域的厚度。一般而言,相同的标号将在各幅图和伴随的书面描述的各处被用于指代相同或相似的部件、元素,等等。提及连接(例如,附接、耦合、连接、接合,等等)应被宽泛解释,并且可包括元素的集合之间的中间构件和/或元素之间的相对运动,除非另有指示。因此,提及连接不一定推断出两个元素是直接连接并且彼此之间有固定关系的。
本文中在识别可被分开提及的多个元素或组件时使用了描述语“第一”、“第二”、“第三”,等等。除非另有指明或者基于其使用上下文另有理解,否则这种描述语并不打算灌输优先级、物理顺序或者列表中的排列或者时间上的排序的任何含义,而只是被用作用于分开提及多个元素或组件的标签,以便容易理解所公开的示例。在一些示例中,描述语“第一”在详细描述中可用于提及某一元素,而同一元素在权利要求中可以用不同的描述语来提及,例如“第二”或“第三”。在这种情况中,应当理解,这种描述语只是为了容易引用多个元素或组件而使用的。
具体实施方式
本文公开了实现具有多种块内拷贝模式的视频编码的示例方法、装置、系统和制品(例如,物理存储介质)。可根据一个或多个视频编码行业标准来压缩视频流,和/或可以改变流的特性,以减小与视频流相关联的大小和/或带宽。可以改变的视频流的特性包括但不限于视频流的分辨率和比特率。在准备视频流来在计算设备和/或计算设备的组件之间传输时,也可以使用视频编码。视频编码行业标准包括高级视频编码(Advanced VideoCoding,AVC)标准、高效率视频编码(High Efficiency Video Coding,HEVC)视频编码标准,等等。
例如,高效率视频编码(HEVC/H.265)最近由ISO/IEC运动图片专家组和ITU-T视频编码专家组建立,以实现相对于H.264/AVC的比特率降低。随后,HEVC的屏幕内容编码(Screen Content Coding,SCC)扩展被创建,以使得能够为包含静态图形、文本和动画的视频——也称为屏幕内容——实现改善的压缩性能。屏幕内容一般指的是视频中存在的数字生成的像素。以数字方式生成的像素,与成像器或相机捕捉的像素相比,可能具有早期AVC和HEVC标准没有考虑的不同属性。2017年3月发布的添加了SCC扩展的HEVC标准的ITU-T版本,至少解决了早期标准中的这些空白中的一些。SCC扩展的一个特征是块内拷贝(IntraBlock Copy,IBC)特征。
本文公开的示例解决方案通过实现一个或多个额外的IBC预测模式来改善现有的标准化IBC特征,目标是改善屏幕内容编码性能。块内拷贝(IBC)是在HEVC的SCC扩展中引入的一种编码工具,作为除了传统的帧内预测(intra prediction)和帧间预测(interprediction)模式之外的一种编码模式。IBC与帧间预测相似,但不同的是,当编码块(也被称为编码单元)在IBC模式中被编码时,该编码块的候选预测块(也被称为预测单元)是从同一图像帧(同一图片)内的重建块中选择的。因此,IBC可被认为是当前帧/图片内的“运动补偿”。
本文公开的具有多种块内拷贝模式的视频编码的示例解决方案,通过在传统IBC模式之外提供其他IBC预测模式,改善了屏幕内容的压缩。传统的IBC模式在当前帧中的先前编码块的空间邻域中,识别候选预测块,以及识别出预测块相对于当前编码块的位置的关联位移向量(例如,运动向量)。在本文公开的示例中,IBC被扩展到包括额外的IBC模式,例如四种不同的镜像转化模式和三种不同的旋转转化模式,这在下文更详细公开。在一些示例中,这种转化模式可以对方形块的一些或所有支持编码块大小(例如,从4x4到128x128像素),以及一些或所有编码块形状(例如,方形形状、矩形形状,等等)执行。在一些示例中,如本文所公开的具有多种IBC模式的屏幕内容剪辑(例如,网页/文本内容、游戏内容,等等)的视频编码,依据屏幕内容的类型,相对于传统的IBC编码表现出0.8%至2.63%的平均性能改善(使用Bjontegaard速率峰值信噪比BD-PSNR测量)。
从而,本文公开的示例视频编码技术相对于其他现有技术可以改善屏幕内容编码的效率。另外,一些先前的行业标准将“宏块”视为静态大小的元素,而在较新的树状递归编解码器中,编码器可以评估像素编码块何时应当被分割成更精细的编码块或者被做成更大的编码块,以便例如产生具有最高视觉质量的最低比特成本。另外,一些先前的标准用统一的预测类型(例如,帧间预测或帧内预测类型)和统一的变换大小(例如,8x8或4x4)来处理每个宏块,而高效率标准允许了预测类型的混合和变换大小的混合,两者都基于编码器决策过程。相比之下,能够被本文公开的视频编码技术处理的编码块可以是动态大小的,并且可包括不同IBC模式类型的任何组合,例如镜像和/或旋转模式,这在下文更详细公开。相对于其他现有的视频编码技术,这种灵活性可进一步改善屏幕内容编码的效率。
下文更详细公开了实现具有多种块内拷贝模式的视频编码的这些和其他示例方法、装置、系统和制品(例如,物理存储介质)。
转到附图,图1中图示了根据本公开的教导实现具有多种块内拷贝模式的视频编码的示例视频编码器100的框图。图示示例的视频编码器100包括示例视频接口105、示例块内拷贝编码器110、一个或多个示例预测编码器115、示例模式选择器120以及示例流编码器125。视频接口105被构造为接受示例的未压缩输入视频流130。例如,未压缩输入视频流130可对应于相机和/或其他成像设备的输出视频流,由计算设备(例如,诸如媒体设备、视频游戏机、计算机、服务器、移动电话,等等)生成的计算机生成的视频流(例如,诸如与视频游戏相对应的视频流、计算机生成的图形流,等等),和/或这些的任何组合。在图示中,视频接口105将输入视频流130分割成图像帧(例如,图片)的序列,以由块内拷贝编码器110和/或(一个或多个)预测编码器115进行编码。
图示示例的块内拷贝编码器110根据本公开的教导实现具有多种块内拷贝模式的视频编码。在一些示例中,(一个或多个)预测编码器115对应于帧内预测编码器和帧间预测编码器中的一个或多个。帧间预测是视频编码的一种形式,它利用视频的连续图像帧之间的冗余。这种帧间冗余可以与连续图像帧之间的物体运动相关联。在帧间预测编码中,对于正被编码的当前帧的当前编码块(例如,像素的当前编码块),帧间预测编码器搜索预测块(例如,像素的预测块),这些预测块可用于从视频中当前帧之前的先前编码帧预测当前编码块。一旦找到候选预测块——也被称为候选帧间预测块(例如,其满足一个或多个选择标准),帧间预测编码器就确定运动向量来表示候选帧间预测块的位置。帧间预测编码器还确定当前编码块和候选帧间预测块之间的残差(例如,差异)。运动向量和残差被用来对编码块进行编码。例如,运动向量和残差可以被编码到编码视频比特流中以表示编码块。为了对编码块进行解码,帧间预测解码器基于运动向量从先前解码的图像帧中选择适当的预测块,并且将预测块与残差相结合(例如,添加)以获得解码后的编码块。
与帧间预测不同,帧内预测是视频编码的一种形式,它利用视频中的给定图像帧内的冗余。这种帧内冗余可以与在对象、背景等等区域上表现出的相似纹理特性相关联。在帧内预测编码中,对于正被编码的当前帧的当前编码块(例如,像素的当前编码块),帧内预测编码器搜索预测块(例如,像素的预测块),这些预测块可用于从当前帧的先前编码块的编码块的像素预测当前编码块。在一些示例中,被搜索的先前编码的编码块的像素被限制到从正被编码的编码块的一组指定的方向。不同的允许方向可以被称为不同的帧内预测模式。在一些示例中,与给定的帧内预测模式相关联的预测块被形成为基于该特定帧内预测模式选择的像素的组合(例如,线性组合)。一旦找到候选预测块——也被称为候选帧内预测块(例如,其满足一个或多个选择标准),当前编码块和候选帧内预测块之间的残差(例如,差异)就被确定来对编码块进行编码。产生了所选预测块的残差和关联的帧内预测模式可以被编码到编码视频比特流中以表示编码块。为了对编码块进行解码,帧内预测解码器基于帧内预测模式,从正被解码的当前帧的先前解码像素中选择适当的预测块,并且将该预测块与残差相结合(例如,添加)以获得解码后的编码块。
块内拷贝是一种帧内预测的形式,用于对诸如编码单元、分区单元等等之类的编码块进行编码。块内拷贝是针对屏幕内容编码的,并且利用了这样的概念:对于包含计算机生成的屏幕内容的视频的图像帧的给定部分,在该图像帧的该给定部分附近,很有可能存在该图像的另一个先前编码的部分,该部分包含相似的图像内容,在像素纹理方面差异很小(如果有的话)。从而,为了传输关于图像的给定部分(例如,编码块)的信息,只传输给定部分(例如,编码块)和先前编码的相似部分(例如,预测块)之间的差异(例如,残差)就足够了。在先前编码的图像和/或同一图像的内容中寻找相似区域的过程可被称为IBC搜索或者IBC预测。表示正被编码的给定图像部分(例如,编码块)和先前编码内容的预测区域(例如,预测块)之间的差异的差异值的集合被称为残余或者残差。
为了使用块内拷贝对图像的当前编码块进行编码,IBC编码器110搜索图像的先前编码像素的搜索区域,以识别预测块。在一些示例中,IBC编码器110将其对预测块的搜索限制到包含正被编码的当前编码块的图像帧的同一瓦片或者同一切片。在一些示例中,预测块可以是与当前编码块中包括的像素块(例如,阵列)相匹配(例如,基于一个或多个标准,例如编码成本,等等)的像素块(例如,阵列)。在图示示例中,IBC编码器110基于一个或多个标准,从在IBC搜索期间发现的预测块群组中选择候选预测块(例如,最佳预测块)。ICB编码器110随后生成表示当前视频块和候选预测块之间的位移的位移向量,该位移向量识别出候选预测块相对于当前编码块的位置。因此,如上所述,IBC类似于帧间预测,但差别在于,当编码块在IBC模式中被编码时,编码块的候选预测块是从同一图像帧(同一图片)内的先前编码和重建的块中选择的。因此,IBC可被认为是当前帧/图片内的“运动补偿”。
在一些示例中,IBC编码器110生成残差(也被称为IBC残差),作为当前编码块和候选预测块之间的差异(例如,通过从当前编码块中减去候选预测块)。然后,位移向量和残差可被包括在编码的视频比特流中,从而对当前编码块进行编码。如下文更详细公开的,IBC解码器然后可以从编码的视频比特流中提取位移向量和关联的残差数据,并且使用位移向量来识别预测块以对编码块进行解码。IBC解码器可以对残差和预测块的相应样本(例如,像素)求和,以从预测块重建并从而解码编码块。
传统的IBC实现方式在当前帧中的先前编码块的空间邻域中,识别当前编码块的候选预测块,以及识别出预测块相对于当前编码块的位置的关联位移向量(例如,运动向量)。图示示例的IBC编码器110扩展了IBC,以支持额外的IBC模式,其中传统的IBC被称为IBC模式0。如下文更详细公开的,由IBC编码器110实现的额外IBC模式对应于编码块相对于预测块的不同转化(也被称为变换)。例如,图示示例的IBC编码器110实现了多达七个额外的IBC模式,被称为IBM模式1至7,对应于包括多达四个不同的镜像转化模式的第一组转化模式,以及包括多达三个不同的旋转转化模式的第二组转化模式。有关这种转化模式的进一步细节将在下文提供。在一些示例中,IBC编码器对于方形编码块的一些或所有支持编码块大小(例如,从4x4到128x128像素),以及一些或所有编码块形状(例如,方形形状、矩形形状,等等)实现不同的IBC模式(或者IBC转化模式)。
例如,图2图示了可被IBC编码器110用于选择编码块和/或预测块来进行处理的示例分区单元200。图示示例的分区单元200具有4x4形状,从而,对应于方形的4x4像素块。在数学上,分区单元200的像素可以用p(i,j)表示,其中i的范围从0到3,j的范围从0到3。从而,p(i,j)表示在分区单元200的第i行位置和第j列位置的像素。
图3中图示了可由IBC编码器110实现的第一组示例IBC转化模式300。第一组IBC转化模式300包括示例镜像转化模式305、310、315和320。在图示示例中,镜像转化模式305、310、315和320是相对于叠加在分区单元200上的X和Y轴而描绘的,从而使得原点(X=Y=0)在分区单元200的中心。如图3所示,镜像转化模式305对应于分区单元200跨X轴(或者换句话说,Y=0轴)的镜像,这也被称为分区单元200的0度镜像。在图示示例中,镜像转化模式310对应于分区单元200跨与Y/X=1相对应的线的镜像,这也被称为分区单元200的45度镜像。在图示示例中,镜像转化模式315对应于分区单元200跨Y轴(或者换句话说,X=0轴)的镜像,这也被称为分区单元200的90度镜像。在图示示例中,镜像转化模式305对应于分区单元200跨与Y/X=-1相对应的线的镜像,这也被称为分区单元200的135度镜像。
图4中图示了可由IBC编码器110实现的第二组示例IBC转化模式400。第二组IBC转化模式400包括示例旋转转化模式405、410和415。在图示示例中,旋转转化模式405、410和415是相对于叠加在分区单元200上的X和Y轴而描绘的,从而使得原点(X=Y=0)在分区单元200的中心。如图4所示,旋转转化模式405对应于分区单元200的90度旋转。在图示示例中,旋转转化模式410对应于分区单元200的180度旋转。在图示示例中,旋转转化模式415对应于分区单元200的270度旋转。
图5-图11图示了根据上文公开的示例IBC转化模式305-320和405-415对示例编码块进行变换的示例结果。在图示示例中,该编码块具有根据图2的分区单元200选择的像素。另外,在接下来的示例中,其中处理源未变换编码块的传统IBC编码,被可互换地称为IBC转化模式0、IBC模式0或者默认IBC模式,并且对应于在被编码的编码块上不执行转化。
考虑到上述情况,图5图示了示例转化后编码块500,其中与分区单元200相对应的编码块根据上述的IBC模式1被转化。因此,转化后的编码块500是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了0度镜像操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块500中的IBC模式1像素,pIBC1(i,j),根据公式1与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC1(i,j)=p(3-i,j)。
公式1
图6图示了示例转化后编码块600,其中与分区单元200相对应的示例编码块根据上述的IBC模式2被转化。因此,转化后的编码块600是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了45度镜像操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块600中的IBC模式2像素,pIBC2(i,j),根据公式2与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC2(i,j)=p(3-j,3-i)。
公式2
图7图示了示例转化后编码块700,其中与分区单元200相对应的示例编码块根据上述的IBC模式3被转化。因此,转化后的编码块700是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了90度镜像操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块700中的IBC模式3像素,pIBC3(i,j),根据公式3与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC3(i,j)=p(i,3-j)。
公式3
图8图示了示例转化后编码块800,其中与分区单元200相对应的示例编码块根据上述的IBC模式4被转化。因此,转化后的编码块800是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了270度镜像操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块800中的IBC模式4像素,pIBC4(i,j),根据公式4与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC4(i,j)=p(j,i)。
公式4
图9图示了示例转化后编码块900,其中与分区单元200相对应的示例编码块根据上述的IBC模式5被转化。因此,转化后的编码块900是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了90度旋转操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块900中的IBC模式5像素,pIBC5(i,j),根据公式5与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC5(i,j)=p(3-j,i)。
公式5
图10图示了示例转化后编码块1000,其中与分区单元200相对应的示例编码块根据上述的IBC模式6被转化。因此,转化后的编码块1000是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了180度旋转操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块1000中的IBC模式6像素,pIBC6(i,j),根据公式6与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC6(i,j)=p(3-i,3-j)。
公式6
图11图示了示例转化后编码块1100,其中与分区单元200相对应的示例编码块根据上述的IBC模式7被转化。因此,转化后的编码块1100是与分区单元200相对应的编码块的转化后版本,如上所述,它已经经历了270度旋转操作。使用上文在图2的上下文中描述的数学符号,包括在转化后编码块1100中的IBC模式7像素,pIBC7(i,j),根据公式7与源编码块的未转化像素p(i,j)相关,该公式为:
pIBC7(i,j)=p(j,3-i)。
公式7
图5-图11的示例图示了IBC转化模式1至7(也被称为IBC+模式1至7,以将它们区别于传统的IBC模式)由IBC编码器110对4x4编码块执行。然而,IBC编码器110可以在其他编码块大小上执行IBC转化模式1至7,例如从4x4到128x128像素的方形编码块。另外,IBC编码器110可以对具有其他块形状的编码块执行IBC转换模式1至7,例如矩形块形状。然而,一些IBC转化模式可能会导致转化后的编码块相对于源编码块的形状的变化,IBC编码器110可以如下计入这个问题。
例如,根据IBC+模式1至7转化执行的块转化对于方形编码块是形状不变的,从而,维持源编码块的原始形状。因此,对于方形编码块不需要额外的处理。另外,一些IBC+模式甚至对非方形编码块形状也是形状不变的。例如,IBC+模式1(0度镜像)、IBC+模式3(90度镜像)和IBC+模式6(180度旋转)转化不会改变源编码块的原始形状。为了说明,图12图示了示例矩形8x4源编码块1200。图13图示了示例转化后编码块1300,它对应于已经经历了与IBC+模式1相关联的0度镜像操作的编码块1200的转化后版本。从而,与IBC+模式1相关联的0度镜像操作是形状不变的,因为源编码块1200和所得到的转化后编码块1300具有相同的形状。作为另一个示例,图14图示了示例矩形4x8源编码块1400。图15图示了示例转化后编码块1500,它对应于已经经历了与IBC+模式3相关联的90度镜像操作的编码块1400的转化后版本。从而,与IBC+模式3相关联的90度镜像操作是形状不变的,因为源编码块1400和所得到的转化后编码块1500具有相同的形状。
如上所述,一些IBC+模式与不是形状不变的块转化相关联。例如,IBC+模式2(45度镜像)、IBC+模式4(135度镜像)、IBC+模式5(90度旋转)和IBC+模式7(270度旋转)转化可改变源编码块的原始形状,使得宽度和高度在源编码块和所得到的转化后编码块之间互换。为了说明,图16图示了示例矩形8x4源编码块1600。图17图示了示例转化后编码块1700,它对应于已经经历了与IBC+模式2相关联的45度镜像操作的编码块1600的转化后版本。从而,与IBC+模式2相关联的45度镜像操作不是形状不变的,因为源编码块1600和所得到的转化后编码块1700具有不同的形状(例如,在图示示例中宽度和高度互换)。作为另一个示例,图18图示了示例矩形4x8源编码块1800。图19图示了示例转化后编码块1900,它对应于已经经历了与IBC+模式5相关联的90度旋转操作的编码块1800的转化后版本。从而,与IBC+模式5相关联的90度旋转操作不是形状不变的,因为源编码块1800和所得到的转化后编码块1900具有不同的形状(例如,在图示示例中宽度和高度互换)。
返回到图2,图示示例的IBC编码器110被配置为支持IBC模式0以及IBC+模式1至7中的一个或多个。如下文更详细描述的,为了对图像帧的源编码块进行编码,IBC编码器110根据传统的IBC模式0基于源块执行IBC搜索。IBC编码器110还根据支持的IBC+模式,基于编码块的转化后版本,执行一个或多个IBC搜索。IBC编码器110评估为IBC模式搜索和支持的IBC+模式搜索识别的各个预测块,以选择最终的候选预测块。例如,IBC编码器110可以基于任何一个或多个标准选择候选预测块,这些标准被定义为从可用的已识别的预测块中选择最佳/最优的预测块。
一旦识别了候选预测块,IBC编码器110就生成位移向量(例如,运动向量)以表示候选预测块在图像帧中相对于源编码块的位置。例如,IBC编码器110可以将位移向量生成为候选预测块的左上角像素和源编码块的左上角像素之间的差异。从而,即使候选预测块对应于编码块的转化后版本,IBC编码器110也仍然可以将位移向量计算为候选预测块的左上角像素与源(未转化)编码块的左上角像素之间的差异。IBC编码器110还输出值,以指示出哪个IBC模式(例如,IBC模式0或者支持的IBC+模式1-7之一)产生了候选预测块。如下文更详细公开的,位移向量和获胜的IBC模式被编码到编码的视频比特流中,以表示编码的编码块。
如上所述,IBC编码器110基于源编码块(对应于IBC模式0)执行IBC搜索,并且基于编码块的(一个或多个)转化后版本(对应于IBC+模式1至7中的一个或多个)执行一个或多个IBC搜索。图20中图示了由IBC编码器110在经历IBC编码的示例图像帧2005中执行的示例IBC搜索2000。在图示示例的IBC搜索2000中,IBC编码器110在图像帧2005的与已经被编码的像素相关联(例如,包含图像帧2005的先前编码的像素)的示例搜索区域2010中搜索预测块。搜索区域2010假设像素块是按光栅顺序被编码的。在图20的图示示例中,IBC编码器110将正被编码的示例编码块2015与在搜索区域2010中选择的预测块,例如示例预测块2020,进行比较。当根据IBC模式0执行编码时,IBC编码器110将未转化的编码块2015与预测块2020相比较。当根据IBC+模式之一执行编码时,IBC编码器110将编码块2015的转化后版本(它是根据给定的IBC+模式被转化的)与预测块2020相比较。在一些示例中,当根据IBC+模式之一执行编码时,IBC编码器110或者可以改为转化预测块2020而不是编码块2015。然而,这样的实现方式可能会招致很大的性能惩罚,因为在搜索区域2010中选择的每个预测块都需要根据该IBC+模式进行转化。与之不同,当根据IBC+模式之一执行编码时,IBC编码器110能够根据该IBC+模式仅转化一次编码块,并且将转化后的编码块与在搜索区域2010中选择的未转化的预测块进行比较。
在图20的图示示例中,对于执行的每个IBC搜索2000(例如,对IBC模式0的IBC搜索和对IBC+模式1至7中的一个或多个的(一个或多个)IBC搜索),IBC编码器110选择(例如,基于一个或多个标准)与该IBC搜索相对应的中间预测块。然后,IBC编码器110从与不同的支持IBC/IBC+模式相关联的中间预测块之中选择(例如,基于一个或多个标准)最终的候选预测块。在图20的图示示例中,假设预测块2020是为编码块2015最终选择的候选预测块,则IBC编码器110确定示例位移向量2025以表示候选预测块2020在图像帧2005中相对于源编码块2015的位置。例如,IBC编码器110可以将位移向量2025计算为候选预测块2020的左上角像素与源编码块2015的左上角像素之间的差异。如上所述,即使候选预测块2020对应于编码块2015的转化后版本,IBC编码器110也仍然将位移向量2025计算为候选预测块2020的左上角像素与源(未转化)编码块2015的左上角像素之间的差异。IBC编码器110还输出值,以指示出哪个IBC模式(例如,IBC模式0或者支持的IBC+模式1-7之一)产生了候选预测块2020。如下文更详细公开的,位移向量2025和获胜的IBC模式被编码到编码的视频比特流中以表示编码块2015的编码版本。
在一些示例中,IBC编码器110限制搜索区域2010的搜索,以使得预测块2020不可与当前编码块2015重叠。额外地或者替换地,在一些示例中,IBC编码器110限制搜索区域2010的搜索,以使得预测块2020与编码块2015在图像帧2005的同一切片和/或瓦片内。在一些示例中,IBC编码器110将搜索窗口限制为覆盖图像帧2005中的顶部和左侧相邻超级块的先前编码块,以避免影响由波阵面提供的并行处理能力。在一些示例中,IBC编码器110从IBC搜索中排除了就在正被编码的当前编码块2015之前的256像素宽的区域。这导致有效的搜索区域2010被限制到与当前块至少有256像素的距离(在光栅扫描顺序上)的已经编码和重建的块。在一些示例中,由IBC编码器110实现的IBC搜索2000是经典的钻石搜索及其后的散列搜索的组合,其中循环冗余校验(cyclic redundancy check,CRC)被用作散列度量。在一些示例中,IBC编码器110以全像素分辨率执行IBC搜索2000,因为不允许亚像素的位移。前述的约束也适用于上文公开的所提议的镜像和旋转模式。
返回到图2,对于正在经历编码的给定编码块,示例IBC编码器110输出为该当前编码块选择的候选预测块的位移向量,以及指示出哪个IBC模式(例如,IBC模式0或者支持的IBC+模式1-7之一)产生了该当前编码块的候选预测块的IBC模式值。因此,候选预测块也被称为编码块的块内拷贝预测子(predictor)。在图示示例中,IBC编码器110输出位移值和IBC模式值到模式选择器120。在一些示例中,IBC编码器110还向模式选择器120输出候选预测块和/或使用候选预测块确定的残差。额外地或者替换地,在一些示例中,IBC编码器110还输出一个或多个编码度量(例如,(一个或多个)编码成本、(一个或多个)编码得分,等等),用于使用所选择的候选预测块来执行IBC编码,并且将这(一个或多个)度量提供给模式选择器120。
在图示示例中,(一个或多个)其他预测编码器115也输出它们各自对当前编码块进行编码的结果。在一些示例中,IBC编码器110和(一个或多个)其他预测编码器115各自根据其各自的编码模式计算对给定编码块进行编码的速率失真(rate distortion,RD)性能值。例如,IBC编码器110可以执行给定编码块的IBC编码,然后进一步变换和量化经编码的编码块以准备包括在输出比特流中,并且为结果生成RD性能值,该性能值包含将该结果编码块包括在输出比特流中的成本/惩罚。同样地,(一个或多个)其他预测编码器115可以根据其各自的模式(例如,互、内,等等)来计算对编码块编码的各自RD性能值。模式选择器120比较IBC编码器110和(一个或多个)其他预测编码器115为当前编码块提供的结果,以确定哪种编码模式将被用于对当前编码块进行编码。例如,模式选择器120可以为当前编码块选择具有最低RD值的编码模式。假设IBC是获胜的编码模式,则模式选择器将位移向量、产生了获胜候选预测块的IBC模式值以及残差(如果IBC编码器110提供了的话)提供给流编码器125。然后,流编码器125通过将位移向量、IBC模式值和残差(如果提供了的话)编码到示例输出编码视频比特流135中,来对当前编码块进行编码。
因为IBC编码器110可以支持多种IBC模式(例如,IBC模式0和多达七种IBC+模式1至7),所以流编码器125采用一种语法来表示由IBC编码器110输出的获胜IBC模式值。在一些示例中,流编码器125采用比特字段来表示IBC模式值,其中一个比特用于指示出IBC是否是模式选择器120选择的获胜编码模式(例如,如果IBC编码被模式选择器120选择,则被设置为1,而如果其他预测编码模式之一被模式选择器120为当前编码块选择,则被设置为0)。如果选择了IBC编码,则该比特字段还包括最多三个IBC模式值比特的可变群组,以表示与当前编码块的获胜IBC/IBC+模式相对应的IBC模式值。例如,IBC模式值比特的群组对于传统IBC模式0可被设置为000,并且对于IBC+模式1至7可分别被设置为001至111。在一些示例中,比特字段在编码的视频比特流中是在位移向量之后被编码的。因此,流编码器125是用于将块内拷贝模式编码为编码视频比特流的字段中的比特模式的装置的示例。
图21中图示了图1的IBC编码器110的示例实现方式的框图。图21的示例IBC编码器110包括示例编码块选择器2105、示例编码块转化器2110、示例预测块搜索器2115。在图示示例中,编码块选择器2105基于一个或多个示例编码块参数2120来选择当前编码块用于编码。例如,(一个或多个)编码块参数2120可以指定要由IBC编码器110处理的编码块的大小和/或形状。在一些示例中,大小对于方形编码块可以在从4x4到128x128的范围中,而形状可以是方形、矩形,等等。例如,(一个或多个)编码块参数2120可以指定要由IBC编码器110处理的编码块是符合图2和图5-图11的示例的方形4x4编码块,符合图12、图13、图16和图17的示例的矩形8x4编码块,符合图14、图15、图18和图19的示例的矩形4x8编码块,等等。(一个或多个)编码块参数2120可以是预先确定的,被指定为配置输入,等等。
如上所述,示例编码块转化器2110在图像帧的编码块上执行一个或多个转化操作以确定编码块的转化后版本。例如,由编码块转化器2110实现的转化操作可包括与传统IBC模式0相对应的无转化操作,与上述的该组增强型IBC+模式1至7相对应的第一组镜像操作中的一个或多个和/或第二组旋转操作中的一个或多个,等等。在图示示例中,编码块转化器2110接受一个或多个示例IBC模式配置参数2125,以指定哪些IBC模式(例如,传统IBC模式0和/或增强型IBC+模式1至7中的一个或多个)将被编码块转化器2110实现,并且从而被IBC编码器110支持。(一个或多个)IBC模式配置参数2125可以是预先确定的,被指定为配置输入,等等。因此,编码块转化器2110是用于对图像帧的编码块执行转化操作以确定编码块的转化后版本的装置的示例。
在一些示例中,(一个或多个)IBC模式配置参数2125指定编码块转化器2110以及从而IBC编码器110要支持所有的IBC/IBC+模式,包括传统IBC模式0和所有增强型IBC+模式1至7。在一些示例中,对于配置0,表示获胜IBC模式值的比特字段如上所述包括4个比特,其中该比特字段的一个比特用于指示出IBC是否是模式选择器120选择的获胜编码模式(例如,如果IBC编码被模式选择器120选择,则被设置为1,而如果其他预测编码模式之一被模式选择器120为当前编码块选择,则被设置为0)。其他三个比特被设置为表示与当前编码块的获胜IBC/IBC+模式相对应的IBC模式值。例如,IBC模式值比特的群组对于传统IBC模式0可被设置为000,并且对于IBC+模式1至7可分别被设置为001至111。下面的表格1说明了IBC模式值比特的示例比特模式。
然而,在一些示例中,用于对获胜IBC模式值编码的比特字段是可变长度的比特字段,以改善编码性能。例如,可以对获胜IBC模式值进行编码,以便用更少的比特(例如,1或2比特)表示更频繁出现的值,而用更多的比特(例如,3或更多的比特)表示不那么频繁出现的值。可用于对获胜IBC模式值编码的示例可变长度编码技术是霍夫曼编码,虽然也可以使用其他类型的可变长度编码。
IBC模式值比特 IBC模式 编码块转化
000 IBC模式0 无转化
001 IBC+模式1 0度镜像
010 IBC+模式2 45度镜像
011 IBC+模式3 90度镜像
100 IBC+模式4 135度镜像
101 IBC+模式5 90度旋转
110 IBC+模式6 180度旋转
111 IBC+模式7 270度旋转
表格1
在一些示例中,(一个或多个)IBC模式配置参数2125指定编码块转化器2110以及从而IBC编码器110要支持IBC/IBC+模式的子集。例如,(一个或多个)IBC模式配置参数2125可以指定编码块转化器2110以及从而IBC编码器110要支持传统IBC模式0以及增强型IBC+模式的子集,该子集包括IBC+模式1(0度镜像)、IBC+模式3(90度镜像)、IBC+模式5(90度旋转)、IBC+模式6(180度旋转)、以及IBC+模式7(270度旋转)。这样的配置在此被称为配置1。在一些示例中,对于配置1,表示获胜IBC模式值的比特字段如上所述包括4个比特,其中该比特字段的一个比特用于指示出IBC是否是模式选择器120选择的获胜编码模式(例如,如果IBC编码被模式选择器120选择,则被设置为1,而如果其他预测编码模式之一被模式选择器120为当前编码块选择,则被设置为0)。其他三个比特被设置为表示与当前编码块的获胜IBC/IBC+模式相对应的IBC模式值。例如,可以根据表格1来设置IBC模式值比特的群组以表示获胜的IBC模式。然而,在一些示例中,可以使用可变长度编码来对用于表示获胜IBC模式值的比特字段进行编码,如上所述。虽然配置1可表现出相对于配置0的性能降低,因为它包括更少的支持的IBC模式,但与配置0相比,配置1涉及的对于每个编码块执行的转化操作更少,从而,可表现出更快的编码性能。
作为另一个示例,(一个或多个)IBC模式配置参数2125可以指定编码块转化器2110以及从而IBC编码器110要支持传统IBC模式0以及增强型IBC+模式的子集,该子集包括IBC+模式1(0度镜像)、IBC+模式3(90度镜像)、IBC+模式5(90度旋转)、以及IBC+模式6(180度旋转)。这样的配置在此被称为配置2。在一些示例中,对于配置2,表示获胜IBC模式值的比特字段如上所述包括4个比特,其中该比特字段的一个比特用于指示出IBC是否是模式选择器120选择的获胜编码模式(例如,如果IBC编码被模式选择器120选择,则被设置为1,而如果其他预测编码模式之一被模式选择器120为当前编码块选择,则被设置为0)。其他三个比特被设置为表示与当前编码块的获胜IBC/IBC+模式相对应的IBC模式值。例如,可以根据表格1来设置IBC模式值比特的群组以表示获胜的IBC模式。作为另一个示例,三个比特中的第一比特可以被设置为指示出IBC模式0或者IBC+模式之一是否是获胜者(例如,如果IBC模式0是获胜者,则该比特被设置为0,而如果其他IBC+模式之一是获胜者,则该比特被设置为1)。在这样的示例中,剩余的2比特被用来表示配置2中的4种可能的IBC+模式(例如,00=IBC+模式1,01=IBC+模式3,10=IBC+模式5,11=IBC+模式6)。然而,在一些示例中,可以使用可变长度编码来对用于表示获胜IBC模式值的比特字段进行编码,如上所述。虽然配置2可表现出相对于配置0和1的性能降低,因为它包括更少的支持的IBC模式,但与配置0和1相比,配置2涉及的对于每个编码块执行的转化操作更少,从而,可表现出更快的编码性能。
作为另外一个示例,(一个或多个)IBC模式配置参数2125可以指定编码块转化器2110以及从而IBC编码器110要支持传统IBC模式0以及增强型IBC+模式的子集,该子集包括IBC+模式1(0度镜像)、IBC+模式3(90度镜像)、以及IBC+模式6(180度旋转)。这样的配置在此被称为配置3。在一些示例中,对于配置3,表示获胜IBC模式值的比特字段包括3个比特,其中该比特字段的一个比特用于指示出IBC是否是模式选择器120选择的获胜编码模式(例如,如果IBC编码被模式选择器120选择,则被设置为1,而如果其他预测编码模式之一被模式选择器120为当前编码块选择,则被设置为0)。其他两个比特被设置来表示配置3中的4种可能的IBC+模式(例如,00=IBC模式0,01=IBC+模式1,10=IBC+模式3,11=IBC+模式6)。然而,在一些示例中,可以使用可变长度编码来对用于表示获胜IBC模式值的比特字段进行编码,如上所述。虽然配置3可表现出相对于配置0、1和2的性能降低,因为它包括更少的支持的IBC模式,但与配置0、1和2相比,配置3涉及的对于每个编码块执行的转化操作更少,从而,可表现出更快的编码性能。
图21的示例预测块搜索器2115对于由编码块转化器2110实现的(例如,由配置参数2125配置的)不同IBC模式执行IBC搜索,如上文联系图20所描述。在图示示例中,预测块搜索器2115为正被编码的给定编码块执行多个IBC搜索,以确定编码块的候选预测块,其中每个IBC搜索对应于由编码块转化器2110实现的IBC模式中的一个不同IBC模式。例如,为了确定编码块的候选预测块,预测块搜索器2115可以对于IBC模式0基于编码块的未转化版本执行第一IBC搜索,并且对于其他IBC+模式之一基于编码块的转化后版本执行第二IBC搜索。如果配置了多个IBC+模式,则预测块搜索器2115可以对于其他IBC+模式基于编码块的其他不同的转化后版本执行额外的IBC搜索,并且基于为该编码块执行的所有IBC搜索的结果确定候选预测块。例如,如果编码块转化器2110被配置为支持传统IBC模式(例如,IBC模式0)、IBC镜像模式中的一个或多个(例如,IBC+模式1至4中的一个或多个)和IBC旋转模式中的一个或多个(例如,IBC+模式5至7中的一个或多个),则预测块搜索器2115可以通过执行以下搜索来为正被编码的编码块确定候选预测块:(i)基于编码块的未转化版本(对应于IBC模式0)的第一块内拷贝搜索,(ii)基于编码块的(一个或多个)镜像版本(对应于配置的(一个或多个)IBC镜像模式)的第二组一个或多个IBC搜索,以及(iii)基于编码块的(一个或多个)旋转版本(对应于配置的(一个或多个)IBC旋转模式)的第三组一个或多个IBC搜索。因此,预测块搜索器2115是用于执行块内拷贝搜索的装置的示例,块内拷贝搜索包括基于编码块的未转化版本的第一块内拷贝搜索和基于编码块的转化后版本的第二块内拷贝搜索,以确定图像帧的先前编码的像素的候选预测块,该候选预测块对应于编码块的块内拷贝预测子。
在对于给定的编码块执行对于配置的IBC模式的IBC搜索之后,图示示例的预测块搜索器2115输出代表获胜候选预测块相对于该编码块的位置的示例位移向量2130,以及识别与候选预测块相关联的IBC模式中的获胜者的示例IBC模式值2135,如上所述。在图示示例中,预测块搜索器2115还对于给定的编码块输出一个或多个示例编码度量2140(例如,(一个或多个)编码成本、(一个或多个)编码得分,等等),以用于使用所选择的候选预测块和IBC模式来执行IBC编码,如上所述。在图示示例中,预测块搜索器2115进一步对于给定的编码块输出代表候选预测块和编码块之间的差异的示例残差2145,如上所述。
图22中图示了根据本公开的教导可用于对IBC编码的视频比特流解码的示例IBC视频解码器2200的框图。图22的示例IBC解码器2200包括示例流解码器2205、示例预测块选择器2210、示例预测块转化器2215以及示例帧解码器2220。图示示例的流解码器2205对示例编码视频比特流进行解码,以对于要解码的给定帧的给定编码块,获得代表该编码块的候选预测块在该帧中的位置的位移向量。流解码器2205还对编码视频比特流进行解码,以获得代表哪一个IBC模式与该预测块相关联的IBC模式值。在一些示例中,流解码器2205进一步对编码视频比特流进行解码以获得与经编码的编码块相关联的残差。
预测块选择器2210选择正被解码的给定图像帧的先前解码的像素的预测块。在图示示例中,预测块选择器2210基于解码的位移向量选择预测块。因此,预测块选择器2210是用于选择正被解码的图像帧的先前解码的像素的预测块的装置的示例,其中预测块是基于位移向量来选择的。
图示示例的预测块转化器2215对所选择的预测块执行转化操作,以确定预测块的转化后版本。在图示示例中,转化操作是基于解码的IBC模式值来选择的,并且可以对应于无转化(例如,对于IBC模式0)、第一组镜像转化操作之一(例如,对于IBC+模式1至4)、一组旋转转化操作之一(例如,对于IBC+模式5至7)。在图示示例中,预测块转化器2215执行与解码的IBC模式值相关联的转化的逆反(因为在编码期间,是编码块而不是预测块被转化)。因此,预测块转化器2215是用于对预测块执行转化操作以确定预测块的转化后版本的装置的示例。
图示示例的帧解码器2220基于从预测块转化器2215输出的所选预测块的转化后版本对图像帧的经编码的编码块进行解码。例如,帧解码器2220对经解码的残差和预测块的转化后版本进行组合(例如,相加)以产生经解码的编码块。因此,帧解码器2220是用于基于预测块的转化后版本对图像帧的编码块进行解码的装置的示例。
虽然在图1-图22中图示了实现视频编码器100、IBC编码器110和IBC解码器2200的示例方式,但图1-图22中所示的元件、过程和/或设备中的一个或多个可被组合、划分、重布置、省略、消除和/或以任何其他方式来实现。此外,示例视频接口105、(一个或多个)示例预测编码器115、示例模式选择器120、示例流编码器125、示例编码块选择器2105、示例编码块转化器2110、示例预测块搜索器2115、示例预测块选择器2210、示例预测块转化器2215、示例帧解码器2220,和/或更概括而言,示例视频编码器100、示例IBC编码器110和/或示例IBC解码器2200,可由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现。从而,例如,示例视频接口105、(一个或多个)示例预测编码器115、示例模式选择器120、示例流编码器125、示例编码块选择器2105、示例编码块转化器2110、示例预测块搜索器2115、示例预测块选择器2210、示例预测块转化器2215、示例帧解码器2220和/或更概括而言示例视频编码器100、示例IBC编码器110和/或示例IBC解码器2200中的任何一者可由一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)可编程控制器、(一个或多个)图形处理单元(graphics processing unit,GPU)、(一个或多个)数字信号处理器(digital signal processor,DSP)、(一个或多个)专用集成电路(application specificintegrated circuit,ASIC)、(一个或多个)可编程逻辑器件(programmable logicdevice,PLD)、现场可编程门阵列(field programmable gate array,FPGA)和/或(一个或多个)现场可编程逻辑器件(field programmable logic device,FPLD)来实现。当读到本专利的任何装置或系统权利要求覆盖纯软件和/或纯固件实现方式时,示例视频编码器100、示例IBC编码器110、示例IBC解码器2200、示例视频接口105、(一个或多个)示例预测编码器115、示例模式选择器120、示例流编码器125、示例编码块选择器2105、示例编码块转化器2110、示例预测块搜索器2115、示例预测块选择器2210、示例预测块转化器2215和/或示例帧解码器2220中的至少一者,在此被明确定义为包括包含该软件和/或固件的非暂态计算机可读存储设备或存储盘,例如存储器、数字多功能盘(digital versatile disk,DVD)、致密盘(compact disk,CD)、蓝光盘,等等。此外,图1-图22的示例视频编码器100、示例IBC编码器110和/或示例IBC解码器2200可包括除了图1-图22中所示的那些以外或者取代图1-图22中所示的那些的一个或多个元件、过程和/或设备,和/或可包括多于一个图示的元件、过程和设备中的任何一者或所有。就本文使用的而言,短语“与……通信”——包括其变体——涵盖了直接通信和/或通过一个或多个中间组件进行的间接通信,而不要求直接物理(例如,有线)通信和/或不断的通信,而是还包括按周期性间隔、排定的间隔、非周期性间隔和/或一次性事件的选择性通信。
代表用于实现示例视频编码器100和/或示例IBC编码器110的示例硬件逻辑、机器可读指令、硬件实现状态机和/或其任何组合的流程图在图23和图25中示出。在这些示例中,机器可读指令可以是供计算机处理器执行的一个或多个可执行程序或者可执行程序的(一个或多个)部分,所述计算机处理器例如是下文联系图26论述的示例处理器平台2600中所示出的处理器2612。该一个或多个程序或者其(一个或多个)部分可体现在存储于诸如CD-ROM、软盘、硬盘驱动器、DVD、蓝光盘TM或者与处理器2612相关联的存储器之类的非暂态计算机可读存储介质上的软件中,但整体的一个或多个程序和/或其一些部分可替换为由除了处理器2612以外的设备执行和/或体现在固件或专用硬件中。另外,虽然是参考图23和图25中所示的流程图来描述(一个或多个)示例程序的,但可替换使用实现示例视频编码器100和/或示例IBC编码器110的许多其他方法。例如,参考图23和图25中所示的流程图,块的执行顺序可以被改变,和/或所描述的一些块可以被改变、消除、组合和/或细分为多个块。额外地或者替换地,任何或所有块可由被构造为执行相应的操作而不执行软件或固件的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路,等等)来实现。
代表用于实现示例IBC解码器2200的示例硬件逻辑、机器可读指令、硬件实现状态机和/或其任何组合的流程图在图24中示出。在这个示例中,机器可读指令可以是供计算机处理器执行的一个或多个可执行程序或者可执行程序的(一个或多个)部分,所述计算机处理器例如是下文联系图27论述的示例处理器平台2700中所示出的处理器2712。该一个或多个程序或者其(一个或多个)部分可体现在存储于诸如CD-ROM、软盘、硬盘驱动器、DVD、蓝光盘TM或者与处理器2712相关联的存储器之类的非暂态计算机可读存储介质上的软件中,但整体的一个或多个程序和/或其一些部分可替换为由除了处理器2712以外的设备执行和/或体现在固件或专用硬件中。另外,虽然是参考图24中所示的流程图来描述(一个或多个)示例程序的,但可替换使用实现示例IBC解码器2200的许多其他方法。例如,参考图24中所示的流程图,块的执行顺序可以被改变,和/或所描述的一些块可以被改变、消除、组合和/或细分为多个块。额外地或者替换地,任何或所有块可由被构造为执行相应的操作而不执行软件或固件的一个或多个硬件电路(例如,分立和/或集成的模拟和/或数字电路、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路,等等)来实现。
可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、打包格式等等中的一种或多种格式来存储本文描述的机器可读指令。本文描述的机器可读指令可被存储为可被利用来创建、制造和/或产生机器可执行指令的数据(例如,指令的部分、代码、代码的表示,等等)。例如,机器可读指令可被分段并且存储在一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可要求安装、修改、调适、更新、组合、补充、配置、解密、解压缩、解包、分发、重指派、编译等等中的一个或多个,以便使得它们可被计算设备和/或其他机器直接可读、可解释和/或可执行。例如,机器可读指令可被存储为多个部分,这些部分被单独压缩、加密并存储在分开的计算设备上,其中这些部分当被解密、解压缩和组合时,形成实现例如本文所述那种的程序的一组可执行指令。
在另一示例中,机器可读指令可被存储在如下状态中:在该状态中它们可被计算机读取,但要求添加库(例如,动态链接库(dynamic link library,DLL))、软件开发套件(software development kit,SDK)、应用编程接口(application programminginterface,API)等等,以便在特定的计算设备或其他设备上执行这些指令。在另一示例中,在机器可读指令和/或相应的(一个或多个)程序可被全部或部分执行之前,机器可读指令可能需要被配置(例如,存储设置、输入数据、记录网络地址,等等)。从而,公开的机器可读指令和/或相应的(一个或多个)程序打算涵盖这种机器可读指令和/或(一个或多个)程序,无论这些机器可读指令和/或(一个或多个)程序在被存储时或以其他方式在休息或在途时的特定格式或状态如何。
本文描述的机器可读指令可以由任何过去、当前或者未来的指令语言、脚本语言、编程语言等等来表示。例如,可以利用以下语言中的任何一种来表示机器可读指令:C、C++、Java、C#、Perl、Python、JavaScript、超本文标记语言(HyperText Markup Language,HTML)、结构化查询语言(Structured Query Language,SQL)、Swift,等等。
如上所述,可利用存储在非暂态计算机和/或机器可读介质上的可执行指令(例如,计算机和/或机器可读指令)来实现图23-图25的示例过程,所述介质例如是硬盘驱动器、闪存、只读存储器、致密盘、数字多功能盘、缓存、随机访问存储器、和/或其中信息可被存储任何持续时间(例如,存储较长时间段、永久存储、短暂存储、用于临时缓冲、和/或用于信息的缓存)的任何其他存储设备或存储盘。就本文使用的而言,术语非暂态计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,并且排除传播信号和排除传输介质。另外,就本文使用的而言,术语“计算机可读”和“机器可读”被认为是等同的,除非另有指示。
“包括”和“包含”(以及其所有形式和时态)在本文中被用作开端式术语。从而,每当权利要求采用任何形式的“包括”或“包含”(例如,包括、包含、具有,等等)作为序言或者在任何种类的权利要求记载中使用时,要理解,额外的元素、术语等等可存在,而不落在相应权利要求或记载的范围之外。就本文使用的而言,当短语“至少”在例如权利要求的前序部分中被用作过渡术语时,它是开端的,与术语“包括”和“包含”是开端的方式一样。术语“和/或”当例如被以比如A、B和/或C这样的形式使用时,指的是A、B、C的任何组合或子集,例如(1)A单独,(2)B单独,(3)C单独,(4)A与B,(5)A与C,(6)B与C,以及(7)A与B以及与C。就本文在描述结构、组件、项目、对象和/或事物的上下文中使用的而言,短语“A和B中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。类似地,就本文在描述结构、组件、项目、对象和/或事物的上下文中使用的而言,短语“A或B中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。就本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中使用的而言,短语“A和B中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。类似地,就本文在描述过程、指令、动作、活动和/或步骤的执行或运行的上下文中使用的而言,短语“A或B中的至少一者”打算指包括以下各项中的任何一者的实现方式:(1)至少一个A,(2)至少一个B,以及(3)至少一个A和至少一个B。
就本文使用的而言,单数指代(例如,“一”、“第一”、“第二”,等等)并不排除多数。就本文使用的而言,术语“一”实体指的是一个或多个该实体。术语“一”、“一个或多个”和“至少一个”在本文中可以被可互换地使用。此外,虽然是单独列出的,但多个装置、元素或方法动作可由例如单个单元或处理器来实现。此外,虽然个体特征可被包括在不同的示例或权利要求中,但它们可能可被组合,并且包括在不同的示例或权利要求中并不暗示着特征的组合是不可行的和/或不是有利的。
可被执行以实现图1和/或图21的IBC编码器110的示例程序2300由图23所示的流程图表示。参考先前附图和关联的书面描述,示例程序2300在块2305处开始执行,在该块处,IBC编码器110的编码块选择器2105选择要编码的图像的编码块(例如,基于(一个或多个)配置参数2120),如上所述。在块2310,编码块转化器2110获得要评估的IBC模式(例如,基于(一个或多个)配置参数2125),如上所述。在块2315,编码块转化器2110如上所述,根据不同的增强型IBC+模式来转化编码块,以确定分别与在块2310处配置的不同增强型IBC+模式相对应的编码块的转化后版本。
在块2320,IBC编码器110的预测块搜索器2115如上所述,基于编码块的未转化版本执行IBC搜索,该版本对应于传统IBC模式0。在块2325,预测块搜索器2115如上所述,基于为在块2310处配置的(一个或多个)增强型IBC+模式确定的编码块的各个转化后版本执行一个或多个IBC搜索。在块2330,预测块搜索器2115如上所述,基于在块2320和2325处执行的IBC搜索,为编码块确定候选预测块。在块2335,预测块搜索器2115输出与候选预测块相关联的获胜IBC模式和位移向量,如上所述。在块2340,预测块搜索器2115输出与预测块相关联的(一个或多个)编码度量和残差块数据,如上所述。
在块2345,模式选择器120如上所述,确定是否为当前编码块选择IBC编码(例如,超过由(一个或多个)预测性编码器115实现的(一个或多个)其他预测性编码技术)。如果没有选择IBC编码(块2345),那么在块2350,流编码器125对IBC比特字段编码以指示出没有选择IBC,如上所述。然而,IBC编码被选择(块2345),那么在块2355,流编码器125对IBC比特字段编码以指示出IBC被选择,并且还编码获胜的IBC模式,并且还在输出编码视频比特流中编码位移向量,如上所述。
可被执行以实现图22的IBC解码器2200的示例程序2400由图24所示的流程图表示。参考先前附图和关联的书面描述,示例程序2400在块2405处开始执行,在该块处,图22的IBC解码器2200的流解码器2205如上所述,从编码视频比特流中解码当前编码块的IBC模式和位移向量,如上所述。在块2410,IBC解码器2200的预测块选择器2210基于位移向量选择用于为当前块解码的预测块,如上所述。在块2415,预测块转化器2215基于IBC模式来转化预测块,以确定预测块的转化后版本,如上所述。在块2420,IBC解码器2200的帧解码器2220基于预测块的转化后版本来对当前编码块解码,如上所述。
可被执行以实现图1的视频编码器100的示例程序2500由图25所示的流程图表示。图25图示了用于执行块内拷贝的示例过程,在一些示例中,该过程可以在下面的示例电子设备2800中实现。在块2502,在当前块上方选择像素区域,并且将所选区域与源块一起缩减规模。执行穷举搜索,以识别不同形状布置中的最佳块向量候选者。例如,形状布置可包括方形、矩形对、方形四元组以及其他形状布置。最佳块向量候选者被包括到全分辨率的整数运动估计(Integer Motion Estimation,IME)中。
在块2504,根据所选择的镜像模式或旋转模式,沿轴线执行全分辨率一维搜索。例如,先前编码的像素可以如图2-图20中所述。
在块2506,根据所选择的镜像模式或旋转模式,选择候选块内拷贝候选者。例如,可以基于质量和比特成本将候选块内拷贝候选者与其他候选者进行比较。从而,块2502和2504的技术可以被组合以在性能受限的编码内进行高准确度搜索。
图26是被构造来执行图23和/或图25的指令以实现图1和图21的示例视频编码器100和/或示例IBC编码器110的示例处理器平台2600的框图。处理器平台2600可以例如是服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如iPadTM之类的平板设备)、个人数字助理(personal digital assistant,PDA)、互联网家电、DVD播放器、CD播放器、数字视频记录器、蓝光播放器、游戏机、个人视频记录器、机顶盒、数字相机、耳机或其他可穿戴设备、或者任何其他类型的计算设备。
图示示例的处理器平台2600包括处理器2612。图示示例的处理器2612是硬件。例如,处理器2612可由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或者控制器来实现。硬件处理器2612可以是基于半导体(例如,基于硅)的设备。在这个示例中,处理器2612实现示例视频编码器100、示例IBC编码器110、示例视频接口105、(一个或多个)示例预测编码器115、示例模式选择器120、示例流编码器125、示例编码块选择器2105、示例编码块转化器2110和/或示例预测块搜索器2115。
图示示例的处理器2612包括本地存储器2613(例如,缓存)。图示示例的处理器2612经由链路2618与包括易失性存储器2614和非易失性存储器2616的主存储器进行通信。链路2618可以由总线、一个或多个点到点连接等等或者其组合来实现。易失性存储器2614可由同步动态随机访问存储器(Synchronous Dynamic Random Access Memory,SDRAM)、动态随机访问存储器(Dynamic Random Access Memory,DRAM)、
Figure BDA0003676869830000291
动态随机访问存储器(
Figure BDA0003676869830000292
Dynamic Random Access Memory,
Figure BDA0003676869830000293
)和/或任何其他类型的随机访问存储器设备来实现。非易失性存储器2616可由闪存和/或任何其他期望类型的存储器设备来实现。对主存储器2614、2616的访问受存储器控制器的控制。
图示示例的处理器平台2600还包括接口电路2620。接口电路2620可由任何类型的接口标准来实现,例如以太网接口、通用串行总线(universal serial bus,USB)、
Figure BDA0003676869830000294
接口、近场通信(near field communication,NFC)接口、和/或PCI快速接口。
在图示示例中,一个或多个输入设备2622连接到接口电路2620。(一个或多个)输入设备2622允许用户向处理器2612中输入数据和/或命令。(一个或多个)输入设备可由例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、轨迹条(例如isopoint)、语音识别系统和/或任何其他人机接口来实现。另外,许多系统,例如处理器平台2600,可允许用户使用物理姿态来控制计算机系统并且向计算机提供数据,所述物理姿态例如但不限于是手或身体运动、面部表情、以及面部识别。
一个或多个输出设备2624也连接到图示示例的接口电路2620。输出设备2624可例如由显示设备(例如,发光二极管(light emitting diode,LED)、有机发光二极管(organiclight emitting diode,OLED)、液晶显示器(liquid crystal display,LCD)、阴极射线管显示器(cathode ray tube,CRT)、就地切换(in-place switching,IPS)显示器、触摸屏,等等)、触觉输出设备、打印机和/或(一个或多个)扬声器来实现。图示示例的接口电路2620从而通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。
图示示例的接口电路2620还包括通信设备,例如发送器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口,来促进经由网络2626与外部机器(例如,任何种类的计算设备)的数据交换。通信可经由例如以太网连接、数字订户线(digitalsubscriber line,DSL)连接、电话线连接、同轴线缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等等。
图示示例的处理器平台2600还包括用于存储软件和/或数据的一个或多个大容量存储设备2628。这种大容量存储设备2628的示例包括软盘驱动器、硬盘驱动器、致密盘驱动器、蓝光盘驱动器、独立盘冗余阵列(redundant array of independent disks,RAID)系统、以及数字多功能盘(digital versatile disk,DVD)驱动器。
与图23和/或图25的指令相对应的机器可执行指令2632可被存储在大容量存储设备2628中、易失性存储器2614中、非易失性存储器2616中、本地存储器2613中和/或诸如CD或DVD 2636之类的可移除非暂态计算机可读存储介质上。
图27是被构造来执行图24的指令以实现图22的示例IBC解码器2200的示例处理器平台2700的框图。处理器平台2700可以例如是服务器、个人计算机、工作站、自学习机器(例如,神经网络)、移动设备(例如,蜂窝电话、智能电话、诸如iPadTM之类的平板设备)、PDA、互联网家电、DVD播放器、CD播放器、数字视频记录器、蓝光播放器、游戏机、个人视频记录器、机顶盒、耳机或其他可穿戴设备、或者任何其他类型的计算设备。
图示示例的处理器平台2700包括处理器2712。图示示例的处理器2712是硬件。例如,处理器2712可由来自任何期望的家族或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或者控制器来实现。硬件处理器2712可以是基于半导体(例如,基于硅)的设备。在这个示例中,处理器2712实现示例IBC解码器2200、示例预测块选择器2210、示例预测块转化器2215、和/或示例帧解码器2220。
图示示例的处理器2712包括本地存储器2713(例如,缓存)。图示示例的处理器2712经由链路2718与包括易失性存储器2714和非易失性存储器2716的主存储器进行通信。链路2718可以由总线、一个或多个点到点连接等等或者其组合来实现。易失性存储器2714可以由SDRAM、DRAM、
Figure BDA0003676869830000311
和/或任何其他类型的随机访问存储器设备来实现。非易失性存储器2716可以由闪存和/或任何其他期望类型的存储器设备实现。对主存储器2714、2716的访问受存储器控制器的控制。
图示示例的处理器平台2700还包括接口电路2720。接口电路2720可由任何类型的接口标准来实现,例如以太网接口、USB、
Figure BDA0003676869830000312
接口、NFC接口、和/或PCI快速接口。
在图示示例中,一个或多个输入设备2722连接到接口电路2720。(一个或多个)输入设备2722允许用户向处理器2712中输入数据和/或命令。(一个或多个)输入设备可由例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、触控板、轨迹球、轨迹条(例如isopoint)、语音识别系统和/或任何其他人机接口来实现。另外,许多系统,例如处理器平台2700,可允许用户使用物理姿态来控制计算机系统并且向计算机提供数据,所述物理姿态例如但不限于是手或身体运动、面部表情、以及面部识别。
一个或多个输出设备2724也连接到图示示例的接口电路2720。输出设备2724可例如由显示设备(例如,LED、OLED、LCD、CRT显示器、IPS显示器、触摸屏,等等)、触觉输出设备、打印机和/或(一个或多个)扬声器来实现。图示示例的接口电路2720从而通常包括图形驱动器卡、图形驱动器芯片、和/或图形驱动器处理器。
图示示例的接口电路2720还包括通信设备,例如发送器、接收器、收发器、调制解调器、住宅网关、无线接入点、和/或网络接口,来促进经由网络2726与外部机器(例如,任何种类的计算设备)的数据交换。通信可经由例如以太网连接、数字订户线(digitalsubscriber line,DSL)连接、电话线连接、同轴线缆系统、卫星系统、直线对传式无线系统、蜂窝电话系统等等。
图示示例的处理器平台2700还包括用于存储软件和/或数据的一个或多个大容量存储设备2728。这种大容量存储设备2728的示例包括软盘驱动器、硬盘驱动器、致密盘驱动器、蓝光盘驱动器、RAID系统、以及DVD驱动器。
与图24的指令相对应的机器可执行指令2732可被存储在大容量存储设备2728中、易失性存储器2714中、非易失性存储器2716中、本地存储器2713中和/或诸如CD或DVD 2736之类的可移除非暂态计算机可读存储介质上。
图28是示例电子设备2800的框图,该设备使得能够实现增强的块内拷贝模式,以改善屏幕内容压缩。电子设备2800可例如是服务器、膝上型计算机、平板计算机、移动电话、智能电话、或者可穿戴设备、无人机,等等。电子设备2800可包括被配置为执行存储的指令的中央处理单元(central processing unit,CPU)2802,以及存储可被CPU 2802执行的指令的存储器设备2804。CPU可通过总线2806耦合到存储器设备2804。此外,CPU 2802可以是单核处理器、多核处理器、计算集群、或者任何数目的其他配置。此外,电子设备2800可包括多于一个CPU 2802。存储器设备2804可包括随机访问存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、闪存、或者任何其他适当的存储器系统。例如,存储器设备2804可包括动态随机访问存储器(dynamic random-access memory,DRAM)。
电子设备2800还包括图形处理单元(graphics processing unit,GPU)2808。如图所示,CPU 2802可通过总线2806耦合到GPU 2808。GPU2808可被配置为在电子设备2800内执行任何数目的图形操作。例如,GPU 2808可被配置为渲染或操纵图形图像、图形帧、视频等等,以被显示给电子设备2800的用户。在一些示例中,GPU 2808包括若干个图形引擎,其中每个图形引擎被配置为执行特定的图形任务,或者执行特定类型的工作负载。例如,GPU2808可包括经由无损像素压缩来处理视频数据的引擎。
CPU 2802可通过总线2806链接到显示接口2810,该接口被配置为将电子设备2800连接到多个显示设备2812。显示设备2812可包括作为电子设备2800的内置组件的显示屏幕。显示设备2812还可包括从外部连接到电子设备2800的计算机监视器、电视或者投影仪,等等。
CPU 2802也可通过总线2806连接到输入/输出(I/O)设备接口2814,该接口被配置为将电子设备2800连接到一个或多个I/O设备2814。I/O设备2816可包括例如键盘和指点设备,其中指点设备可包括触摸板或者触摸屏,等等。I/O设备2816可以是电子设备2800的内置组件,或者可以是从外部连接到电子设备2800的设备。
电子设备2800也可包括存储设备2818。存储设备2818是物理存储器,例如硬盘驱动器、光驱动器、闪存驱动器、驱动器的阵列、或者这些的任何组合。电子设备2818可存储用户数据,例如音频文件、视频文件、音频/视频文件、以及图片文件,等等。存储设备2818也可存储编程代码,例如设备驱动器、软件应用、操作系统,等等。被存储到存储设备2818的编程代码可被CPU 2802、GPU 2808或者可包括在电子设备2800中的任何其他处理器执行。
CPU 2802可通过总线2806耦合到蜂窝硬件2820。蜂窝硬件2820可以是任何蜂窝技术,例如,4G标准(由国际电信联盟-无线电通信部门(International TelecommunicationsUnion–Radio communication Sector,ITU-R)颁布的国际移动电信-高级版(International Mobile Telecommunications-Advanced,IMT-Advanced)标准)。以这种方式,电子设备2800可以访问任何网络2822,而不需要与另一设备拴住或配对,其中网络2822是蜂窝网络。
CPU 2802也可以通过总线2806来链接到WiFi硬件2824。WiFi硬件是根据WiFi标准(作为电气与电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.11标准颁布的标准)的硬件。WiFi硬件2824使得电子设备2800能够使用传输控制协议和互联网协议(Transmission Control Protocol and the Internet Protocol,TCP/IP)连接到互联网,其中网络2822是互联网。因此,电子设备2800可以通过根据TCP/IP协议寻址、路由、发送和接收数据来实现与互联网的端到端连通性,而无需使用另一设备。此外,蓝牙接口2826可以通过总线2806与CPU2802耦合。蓝牙接口2826是根据蓝牙网络的接口(基于蓝牙特殊利益集团颁布的蓝牙标准)。蓝牙接口2826使得电子设备2800能够通过个人区域网络(personal area network,PAN)与其他启用蓝牙的设备配对。因此,网络2822可以是PAN。启用蓝牙的设备的示例包括膝上型计算机、桌面型计算机、超极本、平板计算机、移动设备、或者服务器,等等。
电子设备2800可包括编码器2828。在一些示例中,编码器2828可以是在编码器算法的主循环内执行的没有可编程引擎的硬件编码器。这可被称为固定功能编码。一般而言,对视频数据编码包括对视频进行编码,以满足适当的格式和规格,以用于记录和重放。运动估计2830可以经由编码器2828的固定功能硬件执行算法。运动估计是视频编码和视频压缩中的一项重要且计算密集型的任务。在一些示例中,运动估计2830可包括HME、AVC IME、以及HEVC IME。例如,HME可以执行粗粒度的运动估计搜索。诸如多遍打包(multi-passpacking,PAK)参数之类的参数可以由PAK模块基于目标大小或比特率来计算。在一些示例中,编码器可以以迭代的方式被使用,以实现有条件的多遍编码。例如,编码器可以使用基于瓦片或帧的重复。电子设备2800还包括块内拷贝单元2832。块内拷贝单元2832可以使得能够根据所选择的镜像模式或旋转模式沿轴线执行全分辨率一维搜索。例如,先前编码的像素可以如图2-图20中所述。可以根据所选择的镜像模式或旋转模式来选择候选块内拷贝候选者。例如,可以基于质量和比特成本将候选块内拷贝候选者与其他候选者进行比较。
图28的框图并不打算表明电子设备2800要包括图28中所示的所有组件。更确切地说,计算系统2800可包括更少的组件或者图28中没有图示的额外组件(例如,传感器、功率管理集成电路、额外的网络接口,等等)。取决于具体实现方式的细节,电子设备2800可包括图28中没有示出的任何数目的额外组件。此外,CPU 2802的任何功能可以部分或完全在硬件中和/或处理器中实现。例如,功能可以用专用集成电路、在处理器中实现的逻辑、在专门的图形处理单元中实现的逻辑来实现,或者在任何其他设备中实现。
图29是示出介质2900的框图,该介质包含逻辑来用于增强的块内拷贝模式,以改善屏幕内容压缩。介质2900可以是计算机可读介质,包括存储可被处理器2902通过计算机总线2904访问的代码的非暂态计算机可读介质。例如,计算机可读介质2900可以是易失性或非易失性数据存储设备。介质2900也可以是逻辑单元,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或者在一个或多个集成电路中实现的逻辑门的布置。
介质2900可包括被配置为执行本文描述的技术的模块2906-2908。例如,运动估计模块2906可包括HME、AVC IME、以及HEVC IME。例如,HME可以执行粗粒度的运动估计搜索。诸如多遍打包(PAK)参数之类的参数可以由PAK模块基于目标大小或比特率来计算。在一些示例中,编码器可以以迭代的方式被使用,以实现有条件的多遍编码。例如,编码器可以使用基于瓦片或帧的重复。块内拷贝模块2908可被配置为使得能够根据所选择的镜像模式或旋转模式沿轴线执行全分辨率一维搜索。例如,先前编码的像素可以如图2-图20中所述。可以根据所选择的镜像模式或旋转模式来选择候选块内拷贝候选者。例如,可以基于质量和比特成本将候选块内拷贝候选者与其他候选者进行比较。
图29的框图并不打算表明介质2900要包括图29中所示的所有组件。另外,取决于具体实现方式的细节,介质2900可包括图29中没有示出的任何数目的额外组件。
在图30中图示了图示出用于向第三方分发诸如图26和/或图27的示例计算机可读指令2632和/或2732之类的软件的示例软件分发平台3005的框图。示例软件分发平台3005可由能够存储软件并且将其传输到其他计算设备的任何计算机服务器、数据设施、云服务等等实现。第三方可以是拥有和/或操作该软件分发平台的实体的客户。例如,拥有和/或操作软件分发平台的实体可以是软件(例如图26和/或图27的示例计算机可读指令2632和/或2732)的开发者、销售者和/或许可人。第三方可以是购买和/或许可该软件以供使用和/或再销售和/或分许可的消费者、用户、零售商、OEM,等等。在图示示例中,软件分发平台3005包括一个或多个服务器和一个或多个存储设备。存储设备存储计算机可读指令2632和/或2732,这些指令可对应于如上所述的图23-图25的示例计算机可读指令2300、2400和/或2500。示例软件分发平台3005的一个或多个服务器与网络3010通信,该网络可对应于互联网和/或上述的示例网络2600和/或2700的任何一者中的任何一个或多个。在一些示例中,作为商业交易的一部分,一个或多个服务器响应将软件传输给请求方的请求。对软件的交付、销售和/或许可的支付可由软件分发平台的一个或多个服务器处理和/或经由第三方支付实体来处理。这些服务器使得购买者和/或许可人能够从软件分发平台3005下载计算机可读指令2632和/或2732。例如,可与图23和图25的示例计算机可读指令2300和/或2500相对应的软件可被下载到示例处理器平台2600,该平台要执行计算机可读指令2632以实现视频编码器100和/或IBC编码器110。作为另一示例,可与图24的示例计算机可读指令2400相对应的软件可被下载到示例处理器平台2700,该平台要执行计算机可读指令2732以实现IBC解码器2200。在一些示例中,软件分发平台3005的一个或多个服务器周期性地提供、传输和/或强制更新软件(例如,图26和图27的示例计算机可读指令2632和/或2732),以确保改进、补丁、更新等等被分发并且在终端用户设备处被应用于软件。
在图31中图示了并且在下文中描述了根据本公开的教导实现的具有多种块内拷贝模式的视频编码的示例性能结果和潜在的改善。性能结果是基于示例实现方式的,其中对于上文描述的一些或所有7种IBC+模式的多个PU形状实现了编码器和解码器变化。在第一示例实现方式中,在块内拷贝搜索之前,应用了对源编码块的转化。当用IBC和IBC+模式执行预测时,如果/当提议的IBC+模式之一获胜时,这个示例实现方式的编码器将位移向量(块的左上角位置的DV)与指示比特一起编码,以定义获胜模式(如上述7种IBC+模式指定的镜像或旋转)。在解码器一侧,这个信息被解码,并且适当的逆转化被应用。在这个示例实现方式中,由于编码器对源编码块进行了转化,所以在重建期间,解码器对预测/获胜块执行逆转化,以达到在编码器侧执行的转化的相同效果。这个第一示例实现方式支持上述的配置0,从而,在这个示例中支持所有7种IBC+模式。这个第一示例实现方式还使用了可变长度编码(最大3比特字段)来指示出获胜的IBC模式。
另外,还构造并测试了第二示例实现方式。第二示例实现方式支持IBC+模式的子配置,以比较/对比质量折衷与复杂性的开销以及表示获胜IBC模式所需的比特。来自多个实验的统计显示,最常见的获胜IBC+模式是镜像角度0和90(分别对应于上述的IBC+模式1和3)以及旋转角度90、180和270(分别对应于上述的IBC+模式5、6和7)。从而,这个第二示例实现方式支持上述的配置1,它被限制在前5个IBC+模式(镜像0和90,旋转90、180和270)。这个第二示例实现方式还使用了可变长度编码(最大3比特字段)来指示出获胜的IBC模式。由于与45度镜像和135度镜像转化相对应的IBC+模式1和4,在实验中贡献了非常小的获胜百分比,所以配置1的子配置提供了质量与复杂性和比特率开销的良好折衷。
由于这些示例实现方式添加了新的IBC+模式,有7种新IBC+模式的配置0和有5种新IBC+模式的配置1都可能增加编码器的复杂性,因为要在全套编码块大小(例如,4x4到128x128)上对于每个支持的IBC+模式搜索每个输入编码块以寻找潜在的获胜者。表格2提供了先前IBC实现方式(没有增强型IBC+模式)和上文描述的示例增强型IBC+配置0实现方式之间的比较。表格2显示,对于所考虑的序列,与示例的先前非增强型IBC实现方式相比,示例增强型IBC+配置0实现方式在编码器时间上有约5.36倍的增加。为了潜在地减小这种复杂性,还探索了限制为IBC+模式使能的块大小的选项。为了实现这一点,用IBC形状桶(128/64/32/16/8/4)执行了实验,其中每个形状桶包括有其变体形状,以提取指示出最常获胜的IBC形状的统计数据。实验是在3个剪辑的小样本集合上进行的,即控制台1080p、飞行图形1080p和Map 720p,它们来自HEVC屏幕内容编码扩展(HEVC screen content codingextension,HEVC-SCC)共同测试条件(common test condition,CTC),有420和444两种格式,每个都在(22,27,32,37)的4个不同量化参数(quantization parameter,QP)中对于5个帧以全内配置进行了编码。选择这些剪辑是因为它们在测试的SCC剪辑上提供了最大的BD速率改善(HEVC和开放媒体视频联盟1(Alliance for Open Media Video 1,AV1))。
表格2呈现了关于所选形状桶上的ICB+获胜者的统计数据。这个表格中的每一行是ICB获胜者百分比的20帧平均(每QP 5帧*4QP)。
Figure BDA0003676869830000381
表格2:IBC加获胜者(按百分比)
表格2中的统计数据表明,所有IBC获胜者中的约99.75%来自形状4x4至32x32。由于来自大于32x32的块形状的贡献可以忽略不计,所以将IBC+模式限制在小于或等于2x32的块形状是一个可行的限制,它不会导致任何显著的质量损失。另外,表格3提供的结果表明,编码器运行时间提速在这种限制下是相当快的,例如,从与上述的配置0实现方式相关联的约5.3倍增大,运行时间下降到比先前的非增强型IBC实现方式高约3.5倍。
Figure BDA0003676869830000391
表格3
总的来说,我们看到在没有或几乎没有质量损失的情况下,通过为大于32x32的编码块禁用IBC+模式,可以为增强型IBC+配置0实现方式实现33%的提速。
接下来,论述了示例常见测试条件(CTC)性能结果。本文所公开的具有多种块内拷贝模式的视频编码是IBC的扩展,因此,针对的是屏幕内容改善。在来自AV1 CTC(420,4个剪辑,每个60帧)和HEVC CTC(444和420,12个剪辑,每个120帧)的屏幕内容剪辑上进行了实验,以便有相当大的样本空间来衡量质量结果。所选内容的类别如下:“带运动的文本和图形(text and graphics with motion,TGM)”,“混合内容(M)”,和“动画(A)”。实验使用了标准的四QP配置,这是CODEC测试中常见的:QP[22,27,32,37]。AV1只允许在帧内启用IBC。从而,用“全内”配置运行了实验,即剪辑中的每一帧都被编码为内帧。
表格4列出了实验中使用的不同屏幕内容剪辑。
Figure BDA0003676869830000401
表格4
表格5-表格8说明了用表格4中的AV1/HEVC SCC内容剪辑对测试的每个增强型IBC+配置运行实验的性能结果。
Figure BDA0003676869830000411
表格5:配置0(所有7种IBC+模式都被启用);YUV 444编码
Figure BDA0003676869830000421
表格6:配置0(所有7种IBC+模式都被启用);YUV 420编码
Figure BDA0003676869830000431
表格7:配置1(前5种IBC+模式被启用);YUV 444编码
Figure BDA0003676869830000441
表格8:配置1(前5种IBC+模式被启用);YUV 420编码
表格5至表格8中的示例性能结果显示,上文描述的示例增强型IBC+配置0实现方式在测试的所有屏幕内容上都表现出了最佳和一致的结果。下面的表格9和表格10提供了示例增强型IBC+配置0实现方式的进一步示例性能结果,但经过修改以纳入将IBC+模式限制在小于或等于32x32的形状的块大小限制,如上所述。
Figure BDA0003676869830000451
表格9
Figure BDA0003676869830000452
表格10
对于测试的444和420屏幕内容示例,示例增强型IBC+配置0实现方式表现出最好的结果,444格式显示出BD-PSNR的约2%的平均改善,对于一些剪辑高达约5%,而420格式显示出约0.8%的平均改善,一些剪辑显示出高达约1.9%。分析不同内容类别(文本和图形运动、动画和混合内容)的结果,测试的所有三个示例增强型IBC+配置似乎都显示出大幅改善,特别是对于文本和图形运动(TGM)。示例增强型IBC+配置0实现方式再次显示出最大的改善,对于444格式内容在BD-PSNR上平均约为2.63%,而对于420格式内容约为1.1%。
图31包括示例曲线图3100,示出了对于来自HEVC SCC CTC的序列控制台(1080p,444)对于提议的增强型IBC模式,PSNR-Y与比特率的BD速率改善曲线。
在测试的示例实现方式中,示例增强型IBC+配置0实现方式为编码器搜索添加了最多的复杂性,因为它对于每个编码块涉及到7个不同转化。为了降低编码器复杂性,还测试了对应用IBC+模式的编码形状有限制的其他示例实现方式,包括上文描述的示例增强型IBC+配置1。表格11和表格12提供了缩减模式示例增强型IBC+配置1的示例性能结果,其中包括如上所述的前5种最常见出现的IBC+模式。
Figure BDA0003676869830000461
表格11
Figure BDA0003676869830000471
表格12
如表格11和表格12所示,示例增强型IBC+配置1实现方式(具有前5种IBC+模式)在所有测试的剪辑中对于444格式内容表现出约1.8%的平均BD-PSNR改善,在一些剪辑上高达约4.8%,这与示例增强型IBC+配置0实现方式(支持所有IBC+模式)的结果相比略有降低。文本和图形运动(TGM)剪辑也显示出,示例增强型IBC+配置1实现方式的性能改善与示例增强型IBC+配置0实现方式相比略有降低,其对于444格式表现出约2.46%的平均BD-PSNR改善,对于420格式为1.1%。
混合内容(M)的结果在两个示例增强型IBC+配置中显得基本一致,对于444格式有约0.75%的平均BD-PSNR改善,对于420格式为约0.40%。除了一个420剪辑(星际争霸-1080p,60f)表现出约1.1%的性能改善外,动画内容没有表现出太大的改善。总的来说,对于复杂性是阻碍性问题的编码器设计而言,示例增强型IBC+配置1实现方式为相对于编码器和硬件设计复杂性的质量改善提供了良好的折衷。
除了上述的编码器运行时间实验以外,还执行了分析解码器执行时间的实验。进行了使用来自HEVC SCC套件的4个剪辑的实验,即420和444两种格式的控制台/飞行图形(1080p)和地图/网络浏览(720p),并且包括在4个不同的QP(22、27、32、37)中对每个剪辑的120帧进行解码。表格13提供了先前的IBC解码器实现方式相对于如上所述禁用了大于32x32的形状的增强型IBC+配置0实现方式的结果示例解码器运行时间的比较。表格13展示出,由于在增强型IBC+配置0实现方式中出现了更多的IBC获胜者,所以与当前的先前IBC解码器实现方式相比,解码器运行时间显示出小幅改善(约3%)。
最新的AV1 有形状被禁用的IBC+提议
内容名称,分辨率 解码时间(秒) 解码时间(秒)
地图,720p,420 22.79 20.09
地图,720p,444 25.13 26.29
Web浏览,720p,420 9.84 9.76
Web浏览,720p,444 14.08 13.83
控制台,1080p,420 27.33 26.55
控制台,1080p,444 35.73 34.20
飞行图形,1080p,420 34.75 34.59
飞行图形,1080p,444 50.50 48.88
运行时间 1倍 0.97x
表格13
总的来说,本文公开的增强型IBC+配置的编码器运行时间比先前的非增强型IBC实现方式表现出约250%的增大,而解码器运行时间与先前的非增强型IBC实现方式相比,被认为是加快了3%。注意,这些结果是针对所考察的“全内”模式的,从而,在现实世界场景中,组合编码器和解码器序列的整体运行时间增大应当远小于本文公开的增强型IBC+配置。
上述公开内容提供了实现具有多种块内拷贝模式的视频编码的示例解决方案。本文公开了以下的进一步示例,其中包括诸如以下主题:视频编码器装置,包括指令的非暂态计算机可读介质,所述指令在被执行时使得至少一个处理器实现视频编码器,视频解码器装置,包括指令的非暂态计算机可读介质,所述指令在被执行时使得至少一个处理器实现视频解码器,以及关联的方法。可以单独地和/或按一种或多种组合方式来实现所公开的示例。
示例1包括一种视频编码器。如示例1所述的视频编码器包括编码块转化器,用于对图像帧的编码块执行转化操作以确定所述编码块的转化后版本。如示例1所述的视频编码器还包括搜索器,用于基于所述编码块的未转化版本执行第一块内拷贝搜索并且基于所述编码块的转化后版本执行第二块内拷贝搜索,以确定所述图像帧的先前编码像素的候选预测块,所述候选预测块对应于所述编码块的块内拷贝预测子。
示例2包括如示例1所述的视频编码器,其中,所述转化操作是镜像操作或旋转操作中的至少一者。
示例3包括如示例2所述的视频编码器,其中,所述转化操作是所述镜像操作,所述编码块的转化后版本是所述编码块的镜像版本,所述编码块转化器用于对所述编码块执行所述旋转操作以确定所述编码块的旋转版本,并且所述搜索器用于(i)基于所述编码块的未转化版本执行所述第一块内拷贝搜索,(ii)基于所述编码块的镜像版本执行所述第二块内拷贝搜索,并且(iii)基于所述编码块的旋转版本执行第三块内拷贝搜索,以确定所述候选预测块。
示例4包括如示例1至3中的任一者所述的视频编码器,其中,所述转化操作是多个转化操作之一,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例5包括如示例4所述的视频编码器,其中,所述编码块的转化后版本是所述编码块的第一转化后版本,所述编码块转化器用于对所述编码块执行所述多个转化操作中的各个转化操作以确定所述编码块的相应的不同转化后版本,所述编码块的不同转化后版本包括所述编码块的第一转化后版本,并且所述搜索器用于基于所述编码块的相应未转化版本和所述编码块的不同转化后版本执行各个块内拷贝搜索以确定所述候选预测块。
示例6包括如示例1至3中的任一者所述的视频编码器,其中,所述转化操作对应于要由所述编码块转化器执行的多个转化操作之一,多个块内拷贝模式中的各个块内拷贝模式用于表示所述转化操作中的相应转化操作,并且所述搜索器用于输出(i)代表所述候选预测块相对于所述编码块的位置的位移向量,以及(ii)与所述候选预测块相关联的所述块内拷贝模式中的第一块内拷贝模式。
示例7包括如示例6所述的视频编码器,还包括流编码器,用于将所述块内拷贝模式中的第一块内拷贝模式编码为经编码的视频比特流的字段中的比特模式。
示例8包括至少一个非暂态计算机可读介质,其包括计算机可读指令,所述指令当被执行时,使得一个或多个处理器至少(i)对图像帧的编码块执行转化操作以确定所述编码块的转化后版本,并且(ii)基于所述编码块的未转化版本执行第一块内拷贝搜索并且基于所述编码块的转化后版本执行第二块内拷贝搜索,以确定所述图像帧的先前编码像素的候选预测块,所述候选预测块对应于所述编码块的块内拷贝预测子。
示例9包括如示例8所述的非暂态计算机可读介质,其中,所述转化操作是镜像操作或旋转操作中的至少一者。
示例10包括如示例9所述的非暂态计算机可读介质,其中,所述转化操作是所述镜像操作,所述编码块的转化后版本是所述编码块的镜像版本,并且所述指令使得所述一个或多个处理器对所述编码块执行所述旋转操作以确定所述编码块的旋转版本,并且(i)基于所述编码块的未转化版本执行所述第一块内拷贝搜索,(ii)基于所述编码块的镜像版本执行所述第二块内拷贝搜索,并且(iii)基于所述编码块的旋转版本执行第三块内拷贝搜索,以确定所述候选预测块。
示例11包括如示例8至10中的任一者所述的非暂态计算机可读介质,其中,所述转化操作是多个转化操作之一,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例12包括如示例11所述的非暂态计算机可读介质,其中,所述编码块的转化后版本是所述编码块的第一转化后版本,并且所述指令使得所述一个或多个处理器对所述编码块执行所述多个转化操作中的各个转化操作以确定所述编码块的相应的不同转化后版本,所述编码块的不同转化后版本包括所述编码块的第一转化后版本,并且基于所述编码块的相应未转化版本和所述编码块的不同转化后版本执行各个块内拷贝搜索以确定所述候选预测块。
示例13包括如示例8至10中的任一者所述的非暂态计算机可读介质,其中,所述转化操作对应于要由所述编码块转化器执行的多个转化操作之一,多个块内拷贝模式中的各个块内拷贝模式用于表示所述转化操作中的相应转化操作,并且所述指令使得所述一个或多个处理器输出(i)代表所述候选预测块相对于所述编码块的位置的位移向量,以及(ii)与所述候选预测块相关联的所述块内拷贝模式中的第一块内拷贝模式。
示例14包括如示例13所述的非暂态计算机可读介质,其中所述指令使得所述一个或多个处理器将所述块内拷贝模式中的第一块内拷贝模式编码为经编码的视频比特流的字段中的比特模式。
示例15包括一种视频解码器。如示例15所述的视频解码器包括预测块选择器,用于选择正被解码的图像帧的先前解码像素的预测块,所述预测块选择器基于位移向量来选择所述预测块。如示例15所述的视频解码器还包括预测块转化器,用于对所述预测块执行转化操作以确定所述预测块的转化后版本。如示例15所述的视频解码器还包括帧解码器,用于基于所述预测块的转化后版本对所述图像帧的编码块进行解码。
示例16包括如示例15所述的视频解码器,其中,所述转化操作是多个转化操作之一,并且所述预测块转化器基于与所述编码块相关联的块内拷贝模式来选择所述转化操作。
示例17包括如示例16所述的视频解码器,其中,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例18包括如示例16或示例17所述的视频解码器,其中,所述块内拷贝模式是多个块内拷贝模式之一,并且所述多个块内拷贝模式中的各个块内拷贝模式用于表示所述多个转化操作中的相应转化操作。
示例19包括如示例16至18中的任一者所述的视频解码器,其中,所述图像帧与经编码的视频比特流相关联,并且所述视频解码器还包括流解码器,用于从所述经编码的视频比特流中解码出所述位移向量和所述块内拷贝模式。
示例20包括如示例19所述的视频解码器,其中,所述块内拷贝模式被编码为所述经编码的视频比特流的字段中的比特模式。
示例21包括至少一个非暂态计算机可读介质,其包括计算机可读指令,所述指令当被执行时,使得一个或多个处理器至少(i)选择正被解码的图像帧的先前解码像素的预测块,所述预测块是基于位移向量来选择的,(ii)对所述预测块执行转化操作以确定所述预测块的转化后版本,并且(iii)基于所述预测块的转化后版本对所述图像帧的编码块进行解码。
示例22包括如示例21所述的非暂态计算机可读介质,其中,所述转化操作是多个转化操作之一,并且所述指令使得所述一个或多个处理器基于与所述编码块相关联的块内拷贝模式来选择所述转化操作。
示例23包括如示例22所述的非暂态计算机可读介质,其中,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例24包括如示例22或示例23所述的非暂态计算机可读介质,其中,所述块内拷贝模式是多个块内拷贝模式之一,并且所述多个块内拷贝模式中的各个块内拷贝模式用于表示所述多个转化操作中的相应转化操作。
示例25包括如示例22至24中的任一者所述的非暂态计算机可读介质,其中,所述图像帧与经编码的视频比特流相关联,并且所述指令使得所述一个或多个处理器从所述经编码的视频比特流中解码出所述位移向量和所述块内拷贝模式,所述块内拷贝模式被编码为所述经编码的视频比特流的字段中的比特模式。
示例26包括一种视频编码方法。如示例26所述的视频编码方法包括通过利用至少一个处理器执行指令,来对图像帧的编码块执行转化操作以确定所述编码块的转化后版本。如示例26所述的方法还包括通过利用所述至少一个处理器执行指令,来基于所述编码块的未转化版本执行第一块内拷贝搜索并且基于所述编码块的转化后版本执行第二块内拷贝搜索,以确定所述图像帧的先前编码像素的候选预测块,所述候选预测块对应于所述编码块的块内拷贝预测子。
示例27包括如示例26所述的方法,其中,所述转化操作是镜像操作或旋转操作中的至少一者。
示例28包括如示例27所述的方法,其中,所述转化操作是所述镜像操作,所述编码块的转化后版本是所述编码块的镜像版本,并且所述方法还包括对所述编码块执行所述旋转操作以确定所述编码块的旋转版本,并且(i)基于所述编码块的未转化版本执行所述第一块内拷贝搜索,(ii)基于所述编码块的镜像版本执行所述第二块内拷贝搜索,并且(iii)基于所述编码块的旋转版本执行第三块内拷贝搜索,以确定所述候选预测块。
示例29包括如示例26至28中的任一者所述的方法。其中,所述转化操作是多个转化操作之一,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例30包括如示例29所述的方法,其中,所述编码块的转化后版本是所述编码块的第一转化后版本,并且所述方法还包括对所述编码块执行所述多个转化操作中的各个转化操作以确定所述编码块的相应的不同转化后版本,所述编码块的不同转化后版本包括所述编码块的第一转化后版本,并且基于所述编码块的相应未转化版本和所述编码块的不同转化后版本执行各个块内拷贝搜索以确定所述候选预测块。
示例31包括如示例26至28中的任一者所述的方法。其中,所述转化操作对应于要由所述编码块转化器执行的多个转化操作之一,多个块内拷贝模式中的各个块内拷贝模式表示所述转化操作中的相应转化操作,并且所述方法包括输出(i)代表所述候选预测块相对于所述编码块的位置的位移向量,以及(ii)与所述候选预测块相关联的所述块内拷贝模式中的第一块内拷贝模式。
示例32包括如示例31所述的方法,并且所述方法还包括将所述块内拷贝模式中的第一块内拷贝模式编码为经编码的视频比特流的字段中的比特模式。
示例33包括一种视频编码装置。如示例33所述的视频编码装置包括用于对图像帧的编码块执行转化操作以确定所述编码块的转化后版本的装置。如示例33所述的视频编码装置还包括用于执行块内拷贝搜索的装置,所述块内拷贝搜索包括基于所述编码块的未转化版本的第一块内拷贝搜索和基于所述编码块的转化后版本的第二块内拷贝搜索,以确定所述图像帧的先前编码像素的候选预测块,所述候选预测块对应于所述编码块的块内拷贝预测子。
示例34包括如示例1所述的视频编码装置,其中,所述转化操作是镜像操作或旋转操作中的至少一者。
示例35包括如示例2所述的视频编码装置,其中,所述转化操作是所述镜像操作,所述编码块的转化后版本是所述编码块的镜像版本,所述用于执行转化操作的装置对所述编码块执行所述旋转操作以确定所述编码块的旋转版本,并且所述用于执行块内拷贝搜索的装置(i)基于所述编码块的未转化版本执行所述第一块内拷贝搜索,(ii)基于所述编码块的镜像版本执行所述第二块内拷贝搜索,并且(iii)基于所述编码块的旋转版本执行第三块内拷贝搜索,以确定所述候选预测块。
示例36包括如示例33至35中的任一者所述的视频编码装置,其中,所述转化操作是多个转化操作之一,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例37包括如示例36所述的视频编码装置,其中,所述编码块的转化后版本是所述编码块的第一转化后版本,所述用于执行转化操作的装置对所述编码块执行所述多个转化操作中的各个转化操作以确定所述编码块的相应的不同转化后版本,所述编码块的不同转化后版本包括所述编码块的第一转化后版本,并且所述用于执行块内拷贝搜索的装置基于所述编码块的相应未转化版本和所述编码块的不同转化后版本执行各个块内拷贝搜索以确定所述候选预测块。
示例38包括如示例33至35中的任一者所述的视频编码装置,其中,所述转化操作对应于多个转化操作之一,多个块内拷贝模式中的各个块内拷贝模式表示所述转化操作中的相应转化操作,并且所述用于执行块内拷贝搜索的装置输出(i)代表所述候选预测块相对于所述编码块的位置的位移向量,以及(ii)与所述候选预测块相关联的所述块内拷贝模式中的第一块内拷贝模式。
示例39包括如示例38所述的视频编码装置,还包括用于将所述块内拷贝模式中的第一块内拷贝模式编码为经编码的视频比特流的字段中的比特模式的装置。
示例40包括一种视频解码方法。如示例40所述的视频解码方法包括通过利用至少一个处理器执行指令,来选择正被解码的图像帧的先前解码像素的预测块,所述预测块是基于位移向量来选择的。如示例40所述的方法还包括通过利用所述至少一个处理器执行指令,来对所述预测块执行转化操作以确定所述预测块的转化后版本。如示例40所述的方法还包括通过利用所述至少一个处理器执行指令,基于所述预测块的转化后版本对所述图像帧的编码块进行解码。
示例41包括如示例40所述的方法,其中,所述转化操作是多个转化操作之一,并且所述方法包括基于与所述编码块相关联的块内拷贝模式来选择所述转化操作。
示例42包括如示例41所述的方法,其中,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例43包括如示例41或示例42所述的方法,其中,所述块内拷贝模式是多个块内拷贝模式之一,并且所述多个块内拷贝模式中的各个块内拷贝模式表示所述多个转化操作中的相应转化操作。
示例44包括如示例41至43中的任一者所述的方法。其中,所述图像帧与经编码的视频比特流相关联,并且所述方法还包括从所述经编码的视频比特流中解码出所述位移向量和所述块内拷贝模式。所述块内拷贝模式被编码为所述经编码的视频比特流的字段中的比特模式。
示例45包括一种视频解码装置。如示例45所述的视频解码装置包括用于选择正被解码的图像帧的先前解码像素的预测块的装置,所述预测块选择器基于位移向量来选择所述预测块。如示例45所述的视频解码装置还包括用于对所述预测块执行转化操作以确定所述预测块的转化后版本的装置。如示例45所述的视频解码装置还包括用于基于所述预测块的转化后版本对所述图像帧的编码块进行解码的装置。
示例46包括如示例45所述的视频解码装置,其中,所述转化操作是多个转化操作之一,并且所述预测块转化器基于与所述编码块相关联的块内拷贝模式来选择所述转化操作。
示例47包括如示例46所述的视频解码装置,其中,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
示例48包括如示例46或示例47所述的视频解码装置,其中,所述块内拷贝模式是多个块内拷贝模式之一,并且所述多个块内拷贝模式中的各个块内拷贝模式表示所述多个转化操作中的相应转化操作。
示例49包括如示例46至48中的任一者所述的视频解码装置,其中,所述图像帧与经编码的视频比特流相关联,并且所述视频解码装置还包括用于从所述经编码的视频比特流中解码出所述位移向量和所述块内拷贝模式的装置。
示例50包括如示例19所述的视频解码装置,其中,所述块内拷贝模式被编码为所述经编码的视频比特流的字段中的比特模式。
虽然本文公开了某些示例方法、装置和制品,但本专利的覆盖范围不限于此。相反,本专利覆盖了公平地落在本专利的权利要求的范围内的所有方法、装置和制品。

Claims (25)

1.一种视频编码器,包括:
编码块转化器,用于对图像帧的编码块执行转化操作以确定所述编码块的转化后版本;以及
搜索器,用于基于所述编码块的未转化版本执行第一块内拷贝搜索并且基于所述编码块的转化后版本执行第二块内拷贝搜索,以确定所述图像帧的先前编码像素的候选预测块,所述候选预测块对应于所述编码块的块内拷贝预测子。
2.如权利要求1所述的视频编码器,其中,所述转化操作是镜像操作或旋转操作中的至少一者。
3.如权利要求2所述的视频编码器,其中,所述转化操作是所述镜像操作,所述编码块的转化后版本是所述编码块的镜像版本,所述编码块转化器用于对所述编码块执行所述旋转操作以确定所述编码块的旋转版本,并且所述搜索器用于(i)基于所述编码块的未转化版本执行所述第一块内拷贝搜索,(ii)基于所述编码块的镜像版本执行所述第二块内拷贝搜索,并且(iii)基于所述编码块的旋转版本执行第三块内拷贝搜索,以确定所述候选预测块。
4.如权利要求1所述的视频编码器,其中,所述转化操作是多个转化操作之一,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
5.如权利要求4所述的视频编码器,其中,所述编码块的转化后版本是所述编码块的第一转化后版本,所述编码块转化器用于对所述编码块执行所述多个转化操作中的各个转化操作以确定所述编码块的相应的不同转化后版本,所述编码块的不同转化后版本包括所述编码块的第一转化后版本,并且所述搜索器用于基于所述编码块的相应未转化版本和所述编码块的不同转化后版本执行各个块内拷贝搜索,以确定所述候选预测块。
6.如权利要求1所述的视频编码器,其中,所述转化操作对应于要由所述编码块转化器执行的多个转化操作之一,多个块内拷贝模式中的各个块内拷贝模式用于表示所述转化操作中的相应转化操作,并且所述搜索器用于输出(i)代表所述候选预测块相对于所述编码块的位置的位移向量,以及(ii)与所述候选预测块相关联的所述块内拷贝模式中的第一块内拷贝模式。
7.如权利要求6所述的视频编码器,还包括:流编码器,用于将所述块内拷贝模式中的第一块内拷贝模式编码为经编码的视频比特流的字段中的比特模式。
8.至少一个非暂态计算机可读介质,包括计算机可读指令,所述指令当被执行时,使得一个或多个处理器至少:
对图像帧的编码块执行转化操作以确定所述编码块的转化后版本;并且
基于所述编码块的未转化版本执行第一块内拷贝搜索并且基于所述编码块的转化后版本执行第二块内拷贝搜索,以确定所述图像帧的先前编码像素的候选预测块,所述候选预测块对应于所述编码块的块内拷贝预测子。
9.如权利要求8所述的非暂态计算机可读介质,其中,所述转化操作是镜像操作或旋转操作中的至少一者。
10.如权利要求9所述的非暂态计算机可读介质,其中,所述转化操作是所述镜像操作,所述编码块的转化后版本是所述编码块的镜像版本,并且所述指令使得所述一个或多个处理器:
对所述编码块执行所述旋转操作以确定所述编码块的旋转版本;并且
(i)基于所述编码块的未转化版本执行所述第一块内拷贝搜索,(ii)基于所述编码块的镜像版本执行所述第二块内拷贝搜索,并且(iii)基于所述编码块的旋转版本执行第三块内拷贝搜索,以确定所述候选预测块。
11.如权利要求8所述的非暂态计算机可读介质,其中,所述转化操作是多个转化操作之一,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
12.如权利要求11所述的非暂态计算机可读介质,其中,所述编码块的转化后版本是所述编码块的第一转化后版本,并且所述指令使得所述一个或多个处理器:
对所述编码块执行所述多个转化操作中的各个转化操作以确定所述编码块的相应的不同转化后版本,所述编码块的不同转化后版本包括所述编码块的第一转化后版本;并且
基于所述编码块的相应未转化版本和所述编码块的不同转化后版本执行各个块内拷贝搜索,以确定所述候选预测块。
13.如权利要求8所述的非暂态计算机可读介质,其中,所述转化操作对应于要由所述编码块转化器执行的多个转化操作之一,多个块内拷贝模式中的各个块内拷贝模式用于表示所述转化操作中的相应转化操作,并且所述指令使得所述一个或多个处理器输出(i)代表所述候选预测块相对于所述编码块的位置的位移向量,以及(ii)与所述候选预测块相关联的所述块内拷贝模式中的第一块内拷贝模式。
14.如权利要求13所述的非暂态计算机可读介质,其中,所述指令使得所述一个或多个处理器将所述块内拷贝模式中的第一块内拷贝模式编码为经编码的视频比特流的字段中的比特模式。
15.一种视频解码器,包括:
预测块选择器,用于选择正被解码的图像帧的先前解码像素的预测块,所述预测块选择器用于基于位移向量来选择所述预测块;
预测块转化器,用于对所述预测块执行转化操作以确定所述预测块的转化后版本;以及
帧解码器,用于基于所述预测块的转化后版本对所述图像帧的编码块进行解码。
16.如权利要求15所述的视频解码器,其中,所述转化操作是多个转化操作之一,并且所述预测块转化器用于基于与所述编码块相关联的块内拷贝模式来选择所述转化操作。
17.如权利要求16所述的视频解码器,其中,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
18.如权利要求16所述的视频解码器,其中,所述块内拷贝模式是多个块内拷贝模式之一,并且所述多个块内拷贝模式中的各个块内拷贝模式用于表示所述多个转化操作中的相应转化操作。
19.如权利要求16所述的视频解码器,其中,所述图像帧与经编码的视频比特流相关联,并且所述视频解码器还包括流解码器,用于从所述经编码的视频比特流中解码出所述位移向量和所述块内拷贝模式。
20.如权利要求19所述的视频解码器,其中,所述块内拷贝模式被编码为所述经编码的视频比特流的字段中的比特模式。
21.至少一个非暂态计算机可读介质,包括计算机可读指令,所述指令当被执行时,使得一个或多个处理器至少:
选择正被解码的图像帧的先前解码像素的预测块,所述预测块是基于位移向量来选择的;
对所述预测块执行转化操作以确定所述预测块的转化后版本;以及
基于所述预测块的转化后版本对所述图像帧的编码块进行解码。
22.如权利要求21所述的非暂态计算机可读介质,其中,所述转化操作是多个转化操作之一,并且所述指令使得所述一个或多个处理器基于与所述编码块相关联的块内拷贝模式来选择所述转化操作。
23.如权利要求22所述的非暂态计算机可读介质,其中,所述多个转化操作包括第一多个不同的镜像操作和第二多个不同的旋转操作。
24.如权利要求22所述的非暂态计算机可读介质,其中,所述块内拷贝模式是多个块内拷贝模式之一,并且所述多个块内拷贝模式中的各个块内拷贝模式用于表示所述多个转化操作中的相应转化操作。
25.如权利要求22所述的非暂态计算机可读介质,其中,所述图像帧与经编码的视频比特流相关联,并且所述指令使得所述一个或多个处理器从所述经编码的视频比特流中解码出所述位移向量和所述块内拷贝模式,所述块内拷贝模式被编码为所述经编码的视频比特流的字段中的比特模式。
CN202080083841.7A 2020-01-03 2020-12-22 具有多种块内拷贝模式的视频编码 Pending CN114788271A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202062956813P 2020-01-03 2020-01-03
US62/956,813 2020-01-03
PCT/US2020/066704 WO2021138164A1 (en) 2020-01-03 2020-12-22 Video coding with multiple intra block copy modes

Publications (1)

Publication Number Publication Date
CN114788271A true CN114788271A (zh) 2022-07-22

Family

ID=76686711

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080083841.7A Pending CN114788271A (zh) 2020-01-03 2020-12-22 具有多种块内拷贝模式的视频编码

Country Status (6)

Country Link
US (1) US20220353498A1 (zh)
EP (1) EP4085621A4 (zh)
JP (1) JP2023509296A (zh)
CN (1) CN114788271A (zh)
BR (1) BR112022010865A2 (zh)
WO (1) WO2021138164A1 (zh)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101686393B (zh) * 2008-09-28 2012-10-17 华为技术有限公司 应用于模板匹配的快速运动搜索方法及装置
US9549182B2 (en) * 2012-07-11 2017-01-17 Qualcomm Incorporated Repositioning of prediction residual blocks in video coding
GB2519070A (en) * 2013-10-01 2015-04-15 Sony Corp Data encoding and decoding
US10368092B2 (en) * 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
CA2939431C (en) * 2014-03-04 2020-09-22 Microsoft Techology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US9860559B2 (en) * 2014-03-17 2018-01-02 Mediatek Singapore Pte. Ltd. Method of video coding using symmetric intra block copy
WO2015176225A1 (en) * 2014-05-20 2015-11-26 Mediatek Singapore Pte. Ltd. Improved intra-block copy searching methods
KR101748620B1 (ko) * 2014-06-20 2017-07-04 성균관대학교산학협력단 영상의 부호화/복호화 방법 및 이를 이용하는 장치
CN105392008B (zh) * 2014-08-22 2018-09-25 中兴通讯股份有限公司 一种预测编、解码方法和相应的编、解码器和电子设备
US9955185B2 (en) * 2015-02-12 2018-04-24 Mediatek Inc. Method and apparatus of constrained intra block copy for coding video
US10148981B2 (en) * 2015-03-20 2018-12-04 Mediatek Singapore Pte. Ltd. Methods of palette coding with inter-prediction in video coding
EP3354029A4 (en) * 2015-09-23 2019-08-21 Nokia Technologies Oy METHOD, APPARATUS AND COMPUTER PROGRAM PRODUCT FOR ENCODING 360-DEGREE PANORAMIC VIDEO
EP3422724B1 (en) * 2017-06-26 2024-05-01 Nokia Technologies Oy An apparatus, a method and a computer program for omnidirectional video
US10382767B2 (en) * 2017-07-21 2019-08-13 Google Llc Video coding using frame rotation
US11202079B2 (en) * 2018-02-05 2021-12-14 Tencent America LLC Method and apparatus for video decoding of an affine model in an intra block copy mode
CN114402616A (zh) * 2019-09-27 2022-04-26 Oppo广东移动通信有限公司 当前块的预测方法及装置、设备、存储介质

Also Published As

Publication number Publication date
EP4085621A1 (en) 2022-11-09
EP4085621A4 (en) 2024-02-14
JP2023509296A (ja) 2023-03-08
WO2021138164A1 (en) 2021-07-08
US20220353498A1 (en) 2022-11-03
BR112022010865A2 (pt) 2022-08-23

Similar Documents

Publication Publication Date Title
US10142652B2 (en) Entropy coding motion vector residuals obtained using reference motion vectors
CN105282558B (zh) 帧内像素预测方法、编码方法、解码方法及其装置
JP2018050308A (ja) ビデオコーディングのための動きベクトル予測の実行
CN111741311A (zh) 用于对运动矢量进行编码/解码的方法和装置
KR102439871B1 (ko) 영상 변환 부호화/복호화 방법 및 장치
CN109076225A (zh) 用于变换系数编码的系统和方法
JP2021520144A (ja) デコードまたはエンコードのための方法並びに装置およびコンピュータプログラム
US10368071B2 (en) Encoding data arrays
CN110169059B (zh) 视频代码化的复合预测
JP2021506180A (ja) ビデオデータインター予測方法及び装置
KR20200125698A (ko) 서브-블록 모션 벡터 예측을 위한 방법 및 장치
KR20220088503A (ko) 비디오 코딩을 위해 가상 참조 영상을 이용한 인터-픽처 예측 방법 및 장치
RU2624464C1 (ru) Порядки сканирования для кодирования без преобразования
JP2023530548A (ja) マルチプレーン画像圧縮
JP2024505798A (ja) 点群符号化・復号化方法及びシステム、点群符号器並びに点群復号器
CN114788271A (zh) 具有多种块内拷贝模式的视频编码
US20220109889A1 (en) Apparatus, articles of manufacture, and methods for improved adaptive loop filtering in video encoding
JP2017073598A (ja) 動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラム
KR20240050427A (ko) 루마 인트라 예측 모드로부터의 크로마에 대한 다운샘플링 필터들의 시그널링
WO2023044669A1 (en) Methods and apparatus to implement scalable video coding for distributed source and client applications
US20230326090A1 (en) Point cloud decoding method, point cloud encoding method, and decoder
JP2024500701A (ja) 点群符号化方法、点群復号化方法、点群符号化と復号化システム、点群エンコーダ及び点群デコーダ
KR102398232B1 (ko) 참조 영상 필터링을 통한 비디오 신호 복호화 방법 및 장치
KR20240065141A (ko) 시간적 예측 기반 정점 위치 압축
KR20240100382A (ko) 메시 압축에서의 중복적인 정점 병합

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