CN109565587A - 具有上下文解码和重构旁路的视频编码的方法和系统 - Google Patents

具有上下文解码和重构旁路的视频编码的方法和系统 Download PDF

Info

Publication number
CN109565587A
CN109565587A CN201780047638.2A CN201780047638A CN109565587A CN 109565587 A CN109565587 A CN 109565587A CN 201780047638 A CN201780047638 A CN 201780047638A CN 109565587 A CN109565587 A CN 109565587A
Authority
CN
China
Prior art keywords
context
block
fritter
current
bulk
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
Application number
CN201780047638.2A
Other languages
English (en)
Other versions
CN109565587B (zh
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 CN109565587A publication Critical patent/CN109565587A/zh
Application granted granted Critical
Publication of CN109565587B publication Critical patent/CN109565587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

与具有上下文解码和重构旁路的视频编码有关的技术。

Description

具有上下文解码和重构旁路的视频编码的方法和系统
优先权
本申请要求在2017年1月11日提交的题为“METHOD AND SYSTEM OF VIDEO CODINGWITH CONTEXT DECODING AND RECONSTRUCTION BYPASS”的美国专利申请No.15/403,935以及在2016年8月25日提交的题为“METHOD AND SYSTEM OF VIDEO CODING WITH CONTEXTDECODING AND RECONSTRUCTION BYPASS”的美国临时专利申请No.62/379,574的权益,并且这些申请出于所有目的通过引用整体并入。
背景技术
由于不断增加的视频分辨率以及对高质量视频图像的期望提高,因此对视频的高效图像数据压缩存在高要求,然而对于利用现有视频编码标准(诸如VP9、Alliance OpenMedia Version 1(AV1)、H.264、H.265/HEVC(高效视频编码)标准等)进行的编码而言性能是有限的。上述标准使用扩展形式的传统方法来解决不足压缩/质量问题,但结果往往仍然不足。
传统的视频编解码器将视频帧划分为块,然后逐块对帧进行编码或解码。这可以包括在编码器的解码循环处重构的各种大小的预测块。然后,求预测块与匹配块的实际图像数据的差异,并且对该差异或残差而不是实际块的所有图像数据进行编码并发送到解码器。残差被形成为变换系数块,其大小可以与预测块不同,并且用于进一步压缩和发送到解码器。然后,解码器通过应用逆变换来逆转该处理以重构帧,该逆变换从解码的变换系数块重构编码单元块处的残差,然后通过使用帧间预测(时间参考块)和帧内预测(空间参考块)对预测块进行解码来复制编码器的解码循环。然而,帧间预测仍然使用空间相邻块来重构上下文以确定参考帧上的哪个(哪些)参考块与正被解码的当前帧上的当前块匹配。这样的上下文可以包括帧间模式(哪个帧间预测模式将用于块),用于帧间预测的运动矢量和参考块标识,用于帧内预测的重构像素块,以及变换系数。
在这些处理期间,一个当前块的解码可能需要编码系统等待形成解码该当前块的上下文的其他空间相邻块的解码。这可以导致视频帧的解码中的大量延迟或等待时间,包括用户可察觉的停顿。
附图说明
在附图中通过示例的方式而不是限制的方式示出本文描述的材料。为了说明的简单和清楚,附图中示出的元素不一定按比例绘制。例如,为清楚起见,一些元素的尺寸可能相对于其他元素被夸大。另外,在认为适当的情况下,在附图中已经重复参考标记以指示对应或类似的元素。在图中:
图1是用于视频编码系统的示例编码器的说明图;
图2是用于视频编码系统的示例解码器的说明图;
图3是根据本文的实施方式的具有上下文解码和重构旁路的视频编码方法的流程图;
图4是图像数据帧的大块的示意图,该大块具有至少一个上下文块和要解码的当前块的布置,用于解释根据本文描述的实施方式的具有上下文解码和重构旁路的视频编码;
图5是图像数据帧的大块的示意图,该大块具有至少一个上下文块和要解码的当前块的另一布置,用于解释根据本文描述的实施方式的具有上下文解码和重构旁路的视频编码;
图6是图像数据帧的大块的示意图,该大块具有至少一个上下文块和要解码的当前块的另一布置,用于解释根据本文描述的实施方式的具有上下文解码和重构旁路的视频编码;
图7是图像数据帧的大块的示意图,该大块具有至少一个上下文块和要解码的当前块的另一布置,用于解释根据本文描述的实施方式的具有上下文解码和重构旁路的视频编码;
图8是根据本文的实施方式的具有上下文解码和重构旁路的视频编码的详细流程图;
图8A是根据本文的实施方式的具有上下文解码和重构旁路并使用符号上下文的视频编码的另一详细流程图;
图9是示例系统的说明图;
图10是另一示例系统的说明图;
图11示出了全部根据本公开的至少一些实施方式布置的另一示例设备。
图12是用于视频编码系统的另一示例编码器的说明图;并且
图13是用于视频编码系统的另一示例解码器的说明图。
具体实施方式
现在参考附图描述一个或多个实施方式。虽然讨论了具体的配置和布置,但应该理解,这仅是出于说明性目的而进行的。相关领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其他配置和布置。对于相关领域的技术人员来说将显而易见的是,本文描述的技术和/或布置也可用于除本文所述之外的各种其他系统和应用。
虽然以下描述阐述了可以在诸如片上系统(SoC)架构之类的架构中表现出的各种实施方式,但是本文描述的技术和/或布置的实施方式不限于特定架构和/或计算系统,并且可以由用于类似目的任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构、和/或各种计算设备和/或消费电子(CE)设备(诸如机顶盒,智能电话,平板计算机,电视,等等)可以实现本文描述的技术和/或布置。另外,虽然以下描述可以阐述许多具体细节(诸如系统组件的逻辑实施方式、类型和相互关系,逻辑划分/集成选择,等等),但是可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,可能未详细示出一些材料(例如控制结构和完整软件指令序列),以免使本文公开的材料模糊。
本文公开的材料可以用硬件、固件、软件或其任何组合来实现。本文公开的材料还可被实现为存储在机器可读介质上的指令,其可以由一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或发送信息的任何介质和/或机制。例如,机器可读介质可包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等),等等。在另一种形式中,诸如非暂时性计算机可读介质之类的非暂时性物品除了它不包括暂时性信号本身之外可以与上述任何示例或其他示例一起使用。它确实包括除信号本身以外的可以以“暂时”方式暂时保存数据的那些元素,诸如RAM等。
说明书中对“一个实施方式”、“实施方式”、“示例实施方式”等的提及表明所描述的实施方式可包括特定的特征、结构或特性,但是每个实施方式可能不一定包括该特定的特征、结构或特性。而且,这些短语不一定指的是相同的实施方式。另外,当结合实施方式描述特定的特征、结构或特性时,认为结合其他实施方式来实现这样的特征、结构或特性在本领域技术人员的知识范围内,无论本文明确描述与否。
以下描述与具有上下文解码和重构旁路的视频编码有关的系统、物品和方法。
如上所述,在视频帧的编码和解码中存在许多子处理,这些子处理可能需要系统等待来自与当前帧相同的帧中的空间相邻块的上下文的解码和重构,以便解码当前块。这种情况的一个示例是帧间预测,其包括在编码器侧的帧间预测期间由运动估计单元生成运动矢量,以及在解码器侧重构运动矢量。在运动估计期间,减少时间冗余以确定相同或类似图像数据在参考帧和正被分析的当前帧之间已经移动之处。该运动由运动矢量表示,该运动矢量指示块在帧与帧之间已经移动之处。然后执行运动补偿以应用运动矢量以构造用于要重构的当前帧的预测块。
可以以多种方式执行运动估计。一种方式是在参考帧上执行针对与当前帧上正在分析的块匹配的一个或多个块的搜索。然而,搜索在计算上可以非常大。因此,为了减少必须执行的搜索的数量,也可以应用空间技术。这包括通过使用同一帧上在当前块旁边的其他相邻块的运动矢量来计算正被分析的当前块的运动矢量。这通常是相邻块上的运动矢量的某一数学组合,诸如当前块上方和左侧的一个或多个块的平均运动矢量或中值运动矢量。可以使用正被分析的当前块附近的相邻块,因为相邻块很可能对应于具有类似运动的相同运动对象并且对象的运动不太可能从一帧到下一帧相对突然地改变。对于质量编码器提供非常准确的高质量图像来说,保持同一帧上的各块之间的这些空间依赖性可以是必不可少的。然后,运动矢量被压缩并发送到解码器,其中解码器可以使用相同类型的空间相邻块重构来重构运动矢量。然而,在解码器的情况下,解码器必须等待空间相邻块的上下文被解码,以便使用上下文来解码当前块。如上所述,当解码发生延迟时(这可以由如在下面解释的许多不同因素引起),可能导致质量不良的视频。
具体而言,专业固定功能硬件和图形处理单元(GPU)资源经常用于加速视频编码和形成用于执行编码任务的流水线。这样的硬件或流水线可具有并行线(或并行的电路或单元),其执行相同任务或不同任务的许多同时计算,这在为了解码帧必须对数千个像素数据块执行相同计算时可以是非常有效的。因此,当一个流水线单元正在例如针对帧的一个大块(诸如超级块或大型编码单元(LCU))对一些图像数据块的数据进行从比特到符号(数字或字母)的解熵解码时,另一个流水线单元可以正在同一帧的另一个大块上使用符号来重构诸如运动矢量(MV)之类的编码工具(本文中可以称为上下文或语法工具或支持数据)。流水线通常以帧的某些大块(诸如超级块或LCU)的粒度进行操作。
将硬件应用于当前示例,因为当前块的分析必须等待在当前块所依赖的空间相邻块上确定运动矢量,这使得硬件更低效地运行。具体而言,这些严重依赖于空间依赖性的帧间预测技术限制了并行的数量、或可以同时分析的块的数量。当通过传统的波阵面或光栅顺序技术执行空间依赖块解码时(其中系统等待分析前块的波或行,直到完成对前一行块的分析并建立它们的运动矢量为止),这显著地未充分利用和减慢具有并行计算能力的硬件系统,从而可能导致从在解码器处接收到作为输入的数据的时间到解码器提供输出的时间的大等待时间。当这些延迟累积时,它们可能最终被感知为显示给用户的视频序列中的暂停或停止。
将此当作一个具体示例,可以由算术解码器计算一个或多个概率模型上下文以便解码块的帧间模式,以确定当多个帧间预测模式(例如,使用不同参考帧的模式)可用时将使用哪个帧间预测模式,或者是否使用空间相邻块。当块将其帧间模式设置为使用空间相邻上下文时,可以使用相邻块的信息(诸如相邻模式和运动矢量)来得到上下文。由于算术解码处理的性质,在算术解码器对帧间模式进行解码之前,在表示帧间模式的比特之后的比特的解码无法进行。换句话说,算术解码处理是顺序处理。在现有技术的算术解码器中,使用来自与当前解码的块相邻的块的信息来计算概率模型上下文。这种信息对于算术解码器可以是已知的。例如,先前算术解码的帧间预测模式在相邻块本身上可以是已知的。仅可以由视频解码器的其他流水线单元知道其他这样的信息,诸如作为当前解码的块的邻居的块的重构的运动矢量和对应的预测块(或者换言之,参考帧上的参考块的标识)。再一次,对于仅可以由视频解码器的其他流水线单元知道这样的信息时的情况,视频解码器流水线通常以某一等待时间生成这样的信息。由于这种等待时间,算术解码器可能停顿,等待信息被生成并发送到算术解码器。如上所述,该停顿限制了算术解码器的吞吐量/性能。
作为另一示例,在帧内预测期间,可以使用相邻块的图像数据或像素(色度和亮度值)来确定当前块的图像数据,并且在当前块在当前块可以被解码之前等待空间相邻块上的像素数据的解码的情况下可能出现相同的缺点。这也适用于残差编码单元块的解码,其中使用变换系数的相邻变换块来构造残差的编码单元(CU)块。在解码期间,解码器在重构变换块继而重构CU的残差之前必须等待CU的相邻变换块被解码,从而产生对相邻块的类似依赖性。因此,换句话说,在一个或多个已知的视频编解码器中,诸如刚刚描述的情况,算术编解码器吞吐量或性能可以是需要支持高比特率或高质量的一个或多个视频编解码器的瓶颈。
因此,这里的本旁路方法通过使用如下块的信息生成概率模型上下文来寻求减少或完全消除算术解码器停顿:这些块接近当前解码的块,从而保持编码效率,但是这些块在算术解码器需要它们来计算当前块的概率模型上下文时之前已经被视频解码器流水线的其他组件解码。
为了实现这一点并解决上述问题,本文的处理基于相邻块的元素的重构来放宽或消除当前块的元素的解码的依赖性。具体而言,压缩数据的使用可能涉及两个操作。第一操作也称为解码,其指的是从压缩数据(无论是否来自比特流)中提取比特并将这些比特转换成符号(诸如数字)。为清楚起见,这可以称为符号解码。第二操作是重构,其根据符号重构元素或工具,例如运动矢量(作为一个示例)。将会理解,根据本文中语言的上下文,这里的解码可以指代该特定定义或者意味着解码中包括的任何操作的通用术语。
下面详细说明的对依赖性的一种解决方案是第一方法(或外部块方法)。诸如LCU之类的大块或例如64x64像素的超级块被用作如上所述的流水线粒度。大块被划分为小块以便更有效地处理数据,其中,对于如下面详细描述的预测块和残差编码单元块,小块的范围可以从16x16宏块到4x4块。通常,小块可以是8x8块,并且以波形或光栅顺序在大块内被解码。外部块是来自与具有正被解码的当前块的当前大块不同的大块的预测大小块,其中外部块已经被与处理当前大块的流水线单元不同的流水线单元完全解码(完全构造的上下文可用)。系统使用外部块的已经可用的上下文数据,而不是等待当前大块的空间相邻块的迟上下文。
通过第二方法(符号上下文方法),当来自空间相邻块的语法元素的完全构造的上下文尚不可用(尚未完全重构)但是空间相邻块的符号已经被熵解码(或符号解码)时,使用算术解码器的优点。于是存在当正被解码的当前块尚未将其符号解码而空间相邻块已经将其符号解码时的时间点。在这种情况下,代替使用上下文块的重构语法元素,即使空间相邻块的语法元素尚未完全重构,也可以使用那些相邻块的已经符号解码的符号上下文。
具体而言,在一个或多个算术解码器中,相对于帧上的位置(诸如相邻小块)在即将被解码的符号(这里称为SymbolToBeDecoded(待解码符号))之前或接近即将被解码的符号的符号可以用来改变SymbolToBeDecoded的概率模型的估计。概率模型表示对从当前块的熵解码(符号解码)将出现哪个符号的预测。预测越准确,SymbolToBeDecoded的编码效率越好。在简单的情况下,存在许多固定概率模型,其可用于对正被解码的当前块的符号(SymbolToBeDecoded)进行熵解码。在SymbolToBeDecoded之前或接近SymbolToBeDecoded的已经解码和可用的符号上下文用于确定要选择哪个概率模型。空间相邻块的符号的值可被组合(相加等)以确定使用哪个上下文或概率模型。然后,可以使用所选择的概率模型对当前块的符号进行熵解码,然后当前块使用其符号来重构其语法元素。这可以包括重构变换系数、用于帧内预测的像素数据、运动矢量、参考(或预测)块的标识以及正被解码的当前块的帧间模式,所有这些通常从空间相邻块获得。下面提供了用于实现这些方法中的一者或两者的细节。
参考图1-2,示出了示例算术编码器100和解码器200,尽管编码装置倾向于更多表示HEVC类型的编码器和解码器。下面的图12和13是分别示出示例算术VP9编码器1200和解码器1300的图。针对编码装置100和200描述的许多相关组件可以同等地应用于VP9编码装置1200和1300,使得VP9编码装置1200和1300的所有组件的描述已经与编码装置100和200一起提供。在编码装置100和200的描述之后提供关于VP9编码装置的一些其他细节。
现在参考图1,为了更好地理解本文所述的具有上下文解码和重构旁路的视频编码方法的实施方式而描述了视频编码系统100,并且将其布置为执行本文描述的实施方式中的至少一种或多种。在各种实施方式中,视频编码系统100可被配置为根据一个或多个标准进行视频编码和/或实现视频编解码器。另外,在各种形式中,视频编码系统100可被实现为图像处理器、视频处理器和/或媒体处理器的一部分,并且进行帧间预测、帧内预测、预测编码和残差预测。在各种实施方式中,系统100可以根据一个或多个标准或规范(例如H.264(MPEG-4),高级视频编码(AVC),VP8,H.265(高效视频编码或者HEVC),VP9,Alliance OpenMedia Version 1(AV1),等等)进行视频压缩和解压缩和/或实现视频编解码器。尽管本文中可以描述系统100和/或其他系统、方案或处理,但是本公开不一定总是限于任何特定视频编码标准或规范或其扩展。
如本文所使用的,术语“编码装置”可以指代编码器和/或解码器。类似地,如本文所使用的,术语“编码”可以指代经由编码器的编码和/或经由解码器的解码。编码装置、编码器或解码器可以具有编码器和解码器两者的组件。
对于示例视频编码系统100,系统可以是编码器,其中可以接收与视频帧序列有关的数据形式的当前视频信息以进行压缩。系统100可以将每个帧划分为更小的更易于管理的单元,然后比较这些帧以计算预测。如果在原始块和预测之间确定差异或残差,则对所得到的残差进行变换和量化,然后进行熵编码并在比特流中发送到解码器或存储装置。为了执行这些操作,系统100可以包括输入图片缓冲器(具有可选的图片重新定序器)102,预测单元划分器104,减法单元106,残差编码划分器108,变换单元110,量化器112,熵编码器114,以及编码控制器116。控制器116管理编码的许多方面,仅举几个示例,这些方面包括对右运动分区大小的基于速率失真或场景特性的本地自适应选择,右编码分区大小,对预测参考类型的最佳选择,和对模式的最佳选择以及在启用比特率控制的情况下管理总比特率。
可以将量化器112的输出提供给在编码器处提供的解码或预测循环150,以生成如将在解码器200处生成的相同的参考或重构的块、帧或其他单元。因此,解码循环150可以使用逆量化和逆变换单元118和120来重构帧,并使用残差组装器122、加法器124和预测单元组装器126来重构在每个帧内使用的单元。然后,解码循环150提供滤波器128以提高重构图像的质量,以更好地匹配对应的原始帧。这可以包括去块滤波器,样本自适应偏移(SAO)滤波器和质量恢复(QR)滤波器。解码循环150还可以具有解码图片缓冲器130以保持参考帧。
编码器100还具有提供如下所述的运动矢量的运动估计模块或单元132,以及使用运动矢量来形成预测块的运动补偿模块134。运动估计单元132和运动补偿单元134形成编码器的帧间预测能力。将会理解,运动估计器132可以使用各种技术来形成运动矢量,这些技术包括块匹配(诸如分层运动估计(HME),整数运动估计(IME),和分数运动估计(FME)),零运动矢量(ZMV)以及如本文所述的空间相邻块依赖性。不论使用空间相邻块还是其他,要使用的帧间模式(帧间预测模式)可被压缩并且与用于空间相邻块的运动矢量和参考块的标识一起放置在比特流中并且在解码器处提供当前块的上下文。帧内预测模块136提供帧内预测能力。运动补偿模块134和帧内预测模块136都可以向预测模式分析器和模式选择器138提供预测,模式选择器138通常基于比特成本和其他因素来选择特定块的最佳预测模式(包括帧间模式)。当多个这样的模式可用时,模式选择器138可以选择帧间模式或帧间预测模式。除了根据所使用的运动估计技术而具有不同的帧间模式之外,帧间模式还可以包括使用不同帧参考的模式。所选择的帧间模式被压缩并与其他数据一起放置在比特流中。在应用帧间模式以解码块的上下文之前,本方法可用于在解码器处解压缩该帧间模式。
如图1所示,然后将预测块形式的选择器138的预测输出提供给减法单元106以生成残差,并且在解码循环中将其提供给加法器124以将预测添加到来自逆变换的残差以重构帧。仅举几个示例,在将块提供给加法器124和减法器106以用于HEVC或VP9操作之前,可以在预测模式分析器和选择器138的输出处提供PU组装器(未示出)。
现在更具体而言,可以将像素数据帧形式的视频数据提供给输入图片缓冲器102。缓冲器102以输入视频序列顺序保持帧,并且可以按照需要对帧进行编码的顺序从缓冲器中取回帧。例如,后向参考帧在如下帧之前被编码:后向参考帧作为其参考但在其之后显示。输入图片缓冲器102还可以为帧指派诸如I帧(帧内编码的)、P帧(帧间编码的,从先前参考帧预测的)和B帧(帧间编码帧,其可以是从先前帧、后续帧或两者双向预测的)的分类。VP#编码器也可以添加黄金参考帧,其是不一定与当前帧连续的特定类型的P帧。
对于VP9编码,可以将帧划分为并行块(tile),并行块是帧的大部分,并行块然后被划分为64x64像素超级块。超级块可被划分为更小的块,对于预测块大小通常为16x16或8x8,但是可以小到4x4。
对于HEVC编码,在每种情况下,整个帧可被相同地分类或者可具有不同地分类的条带(因此,I帧可以仅包括I条带,P帧可以包括I和P条带,等等)。在I条带中,使用空间或帧内预测,并且在一种形式中,仅来自帧本身中的数据。在P条带中,时间(而不是空间)预测可以通过估计帧之间的运动来进行,但是也可以包括空间依赖性以得到如本文所解释的运动矢量。在B条带中,并且对于HEVC,表示每个分区单元(PU)的两个运动估计(下面说明)的两个运动矢量可以用于时间(和空间依赖的MV)预测或运动估计。换句话说,例如,可以根据来自相对于B条带的过去、未来或两者的帧上的条带来预测B条带。此外,可以根据关于显示顺序在过去或在将来发生的多个图片来估计运动。在各种实施方式中,可以在对应于下面提到的大小的各种编码单元(CU)或PU级别估计运动。对于更旧的标准,宏块或其他块基础可以是所使用的分区单元。
具体而言,当正在使用HEVC标准时,预测划分器单元204可以将帧划分为预测单元。这可以包括使用编码单元(CU)或大编码单元(LCU)。对于该标准,可以通过划分为编码树块的一个或多个条带(例如,具有对应色度样本的64x64亮度样本)来划分当前帧以便由编码分区器进行压缩。每个编码树块也可被划分为四叉树分割方案中的编码单元(CU)。另外,四叉树上的每个叶CU可以再次被分割为4个CU或者被划分为分区单元(PU)以用于运动补偿预测。在根据本公开的各种实施方式中,CU可具有各种大小,包括但不限于64x64、32x32、26x26和8x8,而对于2Nx2N CU,对应的PU也可具有各种大小,包括但不限于2Nx2N、2NxN、Nx2N、NxN、2Nx0.5N、2Nx1.5N、0.5Nx2N和2.5Nx2N。然而,应该注意的是,前述仅是示例CU分区和PU分区形状和大小,本公开不限于任何特定CU分区和PU分区形状和/或大小。
如本文所使用的,术语“大块”可以指代由视频编码规范设置的LCU或超级块或其他类似块或者作为提供用于处理或编码视频帧的流水线的硬件的主要粒度单元的块大小。换句话说,流水线可以具有多个单元——在下面命名为阶段——每个单元实现整个编码或解码处理的不同部分。大块顺序地进入流水线,并通过逐阶段移动而被顺序地处理。因此,流水线的不同阶段同时处理不同的大块。可以将大块划分为多种其他小块大小,所以术语“小块”可以指代CU,或者指代如上所述的PU和用于VP#编码的类似大小,并且宏块指代16x16大小的块。块不需要总是方形块。如上所述,也可以包括非方形矩形。通过一些替代方案,除非另外定义,否则这可以包括将块视为宏块或用于H.264/AVC、AV1、VP8、VP9等的视频或像素数据的宏块的划分。然后,最少,大块是被划分为更小块的块,使得更小块在解码处理期间可以被重构并且逐小块地继续进行。
同样在视频编码系统100中,可以将划分为超级块、LCU、CU和/或PU大小的单元的当前视频帧提供给运动估计单元或估计器132。系统100可以按照光栅或诸如在本文其他地方提到的波形之类的不同扫描顺序以图像的指定单位来处理当前帧。当视频编码系统100在帧间预测模式下操作时,运动估计单元132可基于空间相邻块生成运动矢量。然后,运动补偿模块134可以使用参考视频帧和由运动估计模块132提供的运动矢量来生成具有运动矢量的每个预测块的预测。
如果选择帧间预测作为预测块的正确模式,则可以在减法器106处从当前块中减去预测的块,并且将得到的残差提供给残差编码划分器108。编码划分器108可以将残差划分为一个或多个块,并且通过HEVC的一种形式,将CU进一步划分为变换单元(TU)。然后,仅举几个示例,变换模块110使用可变块大小离散余弦变换(VBS DCT)和/或4x4离散正弦变换(DST)将TU的划分残差数据变换为变换系数。使用由控制器116设置的量化参数(Qp),量化器112然后对这些系数使用有损重采样或量化。
在诸如帧间模式、运动矢量、参考块的身份、帧内预测像素数据和变换系数之类的上下文数据的熵编码期间,可以使用用于基于上下文的自适应二进制算术编码(CABAC)的上下文模型或概率模型,其使用空间相邻块的符号值来确定在编码器处针对当前块要压缩的符号。本文中,该处理可以在解码器处反转,并且可以用于执行如下所述的符号上下文方法。
所生成的量化变换系数集合可以由熵编码模块114重新排序和熵编码,以生成由视频编码系统100提供的压缩比特流(例如,网络抽象层(NAL)比特流)的一部分。在各种实施方式中,由视频编码系统100提供的比特流除了要用于解码每个块的边信息(例如,预测模式,量化参数,运动矢量信息,分区信息,环内滤波信息,等等)之外还可以包括熵编码的系数,并且可被提供给其他系统和/或设备以进行发送或存储。
量化模块112的输出也可被提供给解码循环中的去量化单元118和逆变换模块120。去量化单元118和逆变换模块120可以实现由变换单元110和量化模块112进行的操作的逆操作。然后,残差组装器单元122可以从TU重构残差CU。然后,残差组装器单元122的输出可以在加法器124处与预测帧组合以生成粗略重构块。然后,预测单元(LCU)组装器126从CU重构LCU以完成帧重构。
重构的帧被滤波,然后被提供给解码图片缓冲器130,其中这些帧可以用作用来构造用于运动估计和补偿的对应预测的参考帧,如本文所解释的。当视频编码系统100在帧内预测模式下操作时,帧内预测模块136可使用当前帧的重构像素来进行帧内预测方案。大多数涉及使用来自相对于正被以光栅或波形类型的方案分析的当前块的左和/或上预测块(包括在当前块的左上角和右上角的上对角块)的解码数据。
虽然如下所述的上下文旁路单元215主要用于解码器200的用途,但是将会理解,在某些情况下,例如当外部存储器被使用并且太慢时,当上下文数据未被及时获得或生成以用于当前块的上下文时,可以在编码器100上使用上下文旁路单元115。上下文旁路单元115监视GPU或流水线编码处理以确定何时存在这种条件,并且引导来自外部或空间相邻块的上下文数据以与当前块一起使用。这可以针对逆变换单元120、帧内预测器单元136和运动估计单元132执行,以确定何时空间相邻块将不会及时解码其上下文数据以提供正被分析的当前块的上下文。下面针对解码器提供了细节。
在一些示例中,视频编码系统100可以包括为清楚起见而尚未在图1中示出的附加项目。例如,视频编码系统100可包括处理器,射频类型(RF)收发器,分路器和/或复用器,显示器,和/或天线。另外,视频编码系统100可包括附加项目,诸如扬声器,麦克风,加速度计,存储器,路由器,网络接口逻辑等。这些组件中的一些在本文描述的其他实施方式上示出。
参考图2,系统200可以具有解码器或可以是解码器,并且可以接收比特流形式的编码视频数据,其具有图像数据(色度和亮度像素值)以及包括量化变换系数形式的残差、运动矢量、参考块的身份和各个块的预测模式的上下文数据。系统200可以利用熵解码模块202处理比特流,以提取量化的残差系数以及运动矢量、预测模式、分区、量化参数、滤波器信息等。然后,系统200可以使用逆量化器模块204和逆变换模块206来重构残差像素数据。当块被完全解码时,可以像往常一样通过使用空间相邻块来执行残差像素数据的构造。否则,如在下面并且根据上下文旁路单元215所述,可以使用具有解码符号的空间相邻块或外部替代解码块来重构当前块的数据。
然后,系统200可以使用残差编码组装器208,将残差添加到预测块的加法器210,以及用于小块和大块(例如LCU或超级块)的预测单元组装器212。系统200还可以使用根据在比特流的语法中指示并经由预测模式切换或选择器(其也可以称为语法控制模块)222实现的编码模式而采用的解码技术以及包括帧内预测模块220的第一路径或者包括一个或多个滤波器214的作为帧间预测解码路径的第二路径对结果数据进行解码。第二路径可具有解码图片缓冲器216以存储用作参考帧的重构和过滤的帧以及发出重构的帧以供显示或存储以用于之后在另一应用或设备上查看。对于VP#编解码器,这也可包括重构和存储黄金帧。运动补偿预测器218利用来自解码图片缓冲器216的重构帧以及来自比特流的运动矢量来重构预测块。因此,解码器由于运动矢量已经被提供而不需要其自己的运动估计单元,尽管它仍然可具有一个。无论哪种方式,解码器200可以具有上下文旁路单元215以监视(通过一种形式,以大块粒度)执行处理的流水线单元。当上下文旁路单元215可以确定在当前块准备好被解码时空间相邻块将不会具有完全构造的上下文时,上下文旁路单元215将引导来自外部上下文就绪块的空间重构上下文或者来自空间相邻块的符号上下文用于解码当前块,如下所述。如上所述,预测模式选择器222为每个块设置正确模式,其中预测模式可以是从压缩比特流中提取和解压缩的。在将块提供给加法器210之前,可以在选择器222的输出处提供PU组装器(未示出)。除了与例如在本文中详细描述的上下文旁路单元115和215有关的单元之外,本文描述的用于系统100和200的模块的功能在本领域中是公认的,并且在本文中将不再更详细描述。
参考图12-13,提供了示例VP9编码器1200和示例VP9解码器1300以示出具有可用于实现本文描述的图像数据块解码和重构方法的替代编解码器标准的另一示例视频系统。VP9系统1200和1300具有许多与上述编码器和解码器100和200相同或类似的组件,并且上面已经提到了VP9编解码器的相关方面。将清楚哪些组件执行类似的功能并且不需要再次在此描述。VP9编码器1200和解码器1300都明确地添加了在DCT或iDCT单元与均匀量化(或逆量化)单元之间的扫描排序(或重新排序)单元1204或1304,以及黄金帧缓冲器1220或1310。这些附加组件中的每一个在VP9编解码器中是已知的,并且无需特别说明。将会理解,VP9编码器1200和解码器1300各自可以分别具有上下文旁路单元1228和1316,并且如对上下文旁路单元115和215描述的那样起作用。
一些视频编码器以软件实现,而其他视频编码器具有完全或部分硬件加速。全硬件加速解决方案不提供与部分或混合解决方案一样多的可扩展性和灵活性。本文中,使用所描述的上下文解码和重构旁路方法可以提高用于视频编码的混合架构的效率。对于混合解决方案,可以在执行单元(EU)上执行一些工作,并且可以在固定功能硬件上执行其他工作。为了使性能最大化,充分利用了固定功能硬件。执行本文描述的方法的本编码器可以使用一个或多个视频运动估计(VME)引擎作为主要固定功能硬件。
现在参考图3,根据本公开的至少一些实施方式布置示例处理300。一般而言,处理300可以提供计算机实现的视频编码方法,其具有如上所述的上下文解码和重构旁路。在所示的实施方式中,处理300可以包括一个或多个操作、功能或动作,如由均匀编号的操作302至308中的一个或多个所示。作为非限制性示例,本文中在相关的情况下可以参考关于分别来自图1、图2和图9的示例系统100、200或900讨论的操作来描述处理300。
处理300可以包括“获得视频序列的多个帧,其中各个帧被划分为至少一个大块,该至少一个大块被划分为像素数据的多个小块并且包括当前小块”302。如上所述,可以将压缩数据提供给解码器。所获得的图像或上下文数据的状态,或接收图像或上下文数据的组件的视角取决于要使用哪个上下文。因此,帧被如上所述处理,并且解码器执行逆量化和逆变换以提供变换系数。然后,可以接收这里的图像数据,其中帧准备好用于重构残差代码单元并且正在等待空间相邻变换系数的重构。否则,解码器还可能已经重构帧的分区以形成被划分为较小预测块的大超级块或LCU,其可以是或可以不是如已经在上面描述的各种像素大小。这里相关的是,当前预测块的解码可以等待来自空间相邻块的上下文的解码。另外,大块可以指代如下块单元:其由GPU的多个并行电路之一或其他这样的流水线架构一次处理,以使得GPU具有在并行流水线单元处各自处理的单个大块的所有数据。较小的块可以是MB、CU、PU、TU等。通过其他示例,大块可以是被划分为较小块的块,用于将较小块重构为单独单元。较小块的重构可以以每个大块中的光栅或波形顺序进行,或以其他顺序进行。
处理300还可以包括“识别与当前小块属于同一大块并且将用于解码当前块的至少一个空间相邻块”304。同样如本文所述,可以包括或可以不包括与要解码的当前小块相邻的块的空间相邻块可以具有先前解码的上下文数据以用于解码当前小块。在正常操作期间,大块中的空间相邻块可以是帧间预测块,并且一旦被解码,将具有帧间预测模式、运动矢量和/或一个或多个参考块(要用作空间相邻块的参考的块)的身份。对于帧内预测块,空间相邻块可具有像素数据(色度、亮度或相关值),且变换块可具有被组合以形成编码单元(CU)以重构残差的系数。通过一种形式,诸如HEVC或VP9之类的标准编解码器或定制编解码器可以仅使用相对于当前小块的某些块位置来用作空间相邻块,诸如相邻的左和上块。除了两个空间相邻块之外,还使用包括各种块的许多其他块模式。经常,多个空间相邻块中的上下文数据的组合(诸如平均值)用于重构要解码的当前小块的数据。
然后,处理300可以包括“在当前小块准备好被解码时,确定将由至少一个空间相邻块提供的完全构造的上下文是否将是可用的”306。因此,编码器或其他系统可以监视解码的流程(例如通过监视进入和/或离开GPU、SoC或其他处理器的数据)。利用处理器或执行处理的硬件花费多长时间来处理某些任务的知识,系统可以确定空间相邻块是否将使其上下文数据充分地完全重构以便能够及时用于解码当前小块。监视解码处理避免了实际等待和查看空间相邻块是否使其上下文数据完全重构所可能导致的延迟。在替代方案中,通信协议可以在空间相邻块使其上下文数据充分地完全重构以便能够解码当前小块时通知系统。
处理300还可以包括“当至少一个空间相邻块的完全构造的上下文不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块”308。这里,上下文就绪块可指代几个不同事物。首先,上下文就绪块可以是位于具有正被解码的当前小块的正被处理的当前大块外部的块。因此,系统可以查看另一大块,诸如与当前大块相邻的大块,其中相邻块的所有或各个小块已经具有已解码和完全构造的上下文。然后,可以使用这些外部上下文就绪块来代替如果其上下文数据已被及时解码则应该已被使用的空间相邻块。
外部块的可能位置的细节在下面被提供,但是通常可以包括相邻大块中的与正被分析的当前大块相邻的小块的行或列。而且,外部小块可以位于与当前小块的行或列相同的列或行中,使得外部块正好在当前小块的左侧或正好在当前小块之上,尽管当前小块和外部块不一定是相同的大小。否则,外部块可以提供上下文值的某一平均值,并且在沿着当前大块的边缘或一些其他图案的行或列中对齐。下面提供细节。
作为另一替代方案,或除了使用外部块之外,将用于解码当前小块的上下文就绪块可以指代空间相邻块,但是其至少具有解码的符号上下文(数字)(并且其是已经可用的解码上下文数据),但确实具有上下文工具(诸如帧间模式,运动矢量,参考块的身份,全变换系数,帧内像素值等,其是完全重构的上下文)。在这种情况下,符号上下文用于在要在当前小块处重构的符号的多个可能概率模型中选择概率模型。然后使用修改后的概率模型来选择当前小块的符号上下文,当前小块的符号上下文然后用于重构当前小块的上下文工具。下面提供细节。
将会理解,系统或编码器在这里可以针对帧间预测、帧内预测和/或变换系数或这些的任何组合实现解码处理,并且可以提供用于实现这些中的任何一个或组合的选项(例如由系统自动选择,由程序员选择,或由用户选择)。而且,系统或编码器可以使用外部块方法、符号上下文方法或两者,或者也可以为这些中的任何一个提供选项。
还将理解,虽然本方法主要针对解码器操作,但是当确定上下文生成(或从存储器中取回上下文数据)对于在编码器的解码循环处正被解码的当前块的空间相邻块将会迟到时,也可以在编码器的解码循环处应用这些方法。
因此,例如,这些方法可用于限制或消除算术编解码器用来编码和/或解码空间相邻块的帧间模式、运动矢量、参考帧身份、像素内数据和变换系数的一个或多个概率模型上下文的计算之间的依赖性。
现在参考图4,示出了具有大块402和小块408的帧400以展示外部块方法。对于外部块方法,算术解码器为了解码块的帧间模式(或其他语法元素)而使用的一个或多个概率模型上下文例如仅使用在当前块的大块之外的块的数据。许多硬件解码器的流水线是基于大块(诸如超级块或LCU)的,其中大块要么由视频编解码器规范定义,要么由解码器实施方式的架构定义。然后,基于大块的流水线一次处理一个大块的数据。因此,如果当前块的算术解码所使用的数据来自在当前小块的大块外部并且在已经解码(或者至少在解码上领先)的大块中的一个或多个块,那么这样的数据等到熵解码器需要它来计算解码表示帧间模式的比特所需的所使用的一个或多个概率模型上下文的时候将是可用的。因此,在这种情况下,算术解码器不会停顿。
由具有大块402的帧400提供如何将外部块方法应用于空间运动矢量生成的示例,大块402按照一个示例诸如是超级块,并且被划分为较小块408,其中的一些被示出并编号为0至9,其可以是向当前小块C(406)贡献上下文的顺序。当前的8x 8小块C406将被解码并且属于大块402。通常,相邻块0和1的数据将用于通过提供可被组合成例如平均值的运动矢量数据来解码当前块406。这里,数据尚未被解码,或者根本尚未被解熵解码(符号上下文尚未被解码),或者那些相邻块0和1的运动矢量尚未被重构。在这种情况下,改为使用在发送到解码器的比特流中作为在解码顺序上领先的前一大块的一部分已经被解码的外部块404(或者遥远或远块)。
外部块应该位于相邻大块内的最近位置(或者恰好在当前大块之外)。这通常将与大块402相邻或沿着大块402的边缘并且与当前块406在同一列或行中,但是这不需要总是如此。
外部块可以具有离当前块更远的其他位置,但是当离当前块更远地放置外部块时,当前块的运动矢量的准确性很可能会降低。外部块的大小也可以与当前块不同,并且不一定需要精确地与当前块的列或行(或尺寸)的宽度对齐,如图5所示。
参考图5,帧500提供了如何应用外部块方法的附加示例。在该附加示例中,具有大块502的帧500具有要解码的当前的16x16小宏块504。编号为0至13的其他块510也在大块502内。当诸如0和1的相邻块尚未被解码时,可以改为使用在大块502的外边缘上(或者换言之,与大块502相邻)的两个8x 8外部块506和508的先前解码的数据来形成当前块504的上下文。外部块506和508可以用于计算由算术解码器用来解码表示当前16x16块502的模式(运动矢量和其他帧间预测数据,帧内预测数据)的比特的概率模型上下文。可以诸如通过平均值或其他组合来组合两个外部块506和508的上下文值,以应用于当前小块C(504)。
因此,可以使用在大块(诸如超级块或者LCU或者作为正在使用的流水线的粒度的大块大小)外部并且可以比当前块更小或更大的一个或多个块来计算由算术解码器用来解码表示当前块的模式的比特的概率模型上下文。因此,在外部块方法中,降低或放宽了算术编解码器所使用的概率模型上下文的计算与使用这种算术编解码器的视频解码器或编码器流水线中的元素的重构之间的依赖性。
参考图6,提供了帧以展示符号上下文方法的应用。在该方法中,可以通过使用由算术解码器生成并且已经被视频解码器流水线的其他单元所知的空间相邻块的符号数据对当前小块(尚未解码的)的符号数据进行熵解码来完全去除对其他空间相邻块处的语法元素的完全重构的这种依赖性。因为该数据是由算术解码器生成的,所以一旦需要它就可以存储和访问它以形成当前块的可以用于重构其自己的元素的符号。对于在该描述中使用的示例,由算术解码器生成并由同一算术解码器用于计算当前块的概率模型符号上下文的符号数据包括用于相邻块的帧间模式的符号。可以在解码器处获得的诸如运动矢量、参考块的身份、帧内预测像素数据和/或变换系数之类的其他数据也可以被解码。
在帧600的示例中,可以是超级块或LCU的大块602可被划分为编号为0到9的小块604和将通过使用诸如块0和1的其他小块来解码的当前8x 8块606。对于本示例,块0和1的帧间模式用于计算算术解码器用来对表示当前8x 8小块的模式的比特进行熵解码的概率模型上下文。然后使用解码的比特作为当前块的修改后的符号上下文来重构当前小块C(606)的解码元素(或预测工具等)。下面提供了符号上下文方法的更多细节。
参考图7,提供了帧700以解释外部块方法和符号上下文方法如何可以一起使用。帧700具有大块702,并且被划分为包括块0到14的块。当前小块704可以是16x16像素(或宏块大小)。外部块(A...H)在当前大块(或超级块)704之外。与当前块704的模式和块大小相关联的与来自外部块(A...H)的任何子集或所有块的运动矢量相结合的来自内部块(0...14)和外部块(A...H)的任何子集的帧间模式和块大小可以一起使用,使得当符号上下文用于计算算术解码器用来解码表示当前16x16块的模式的比特的概率模型上下文时当前块可以使用运动矢量。因此,诸如0、1、2和3之类的内部块(706)可以提供符号上下文,而相邻大块中的外部块A...H可以提供完全构造的上下文,其然后可以以许多不同方式进行组合。例如,在有或者没有与当前块704对齐的0和1的符号上下文的情况下,可以使用A到H的平均值,或者可以使用只是E和F。而且,符号上下文可以经由概率模型产生当前小块704的某个元素值,并且该值可以例如针对相同元素而被与外部块的值平均。否则,外部块A到H的完全构造的上下文和空间相邻块0和1的符号上下文各自可以对当前块的不同语法元素(如所提到的帧间模式与运动矢量)有贡献。
现在参考图8,根据本公开的至少一些实施方式布置示例处理800。一般而言,处理800可以提供具有上下文解码和重构旁路的计算机实现的视频编码方法。在所示实施方式中,处理800可以包括如由通常均匀编号的操作802至814中的一个或多个所示的一个或多个操作、功能或动作。作为非限制性示例,本文中可以参考关于图1-2和9讨论的操作来描述处理800,并且在下面可以关于示例系统100、200或900来讨论处理800。
处理800可以包括“接收被划分为大块的视频帧的图像数据,大块被划分为小块”802。在解码器处,这指的是接收来自比特流并且包括视频序列的帧的压缩图像数据,其各自包括像素图像数据(诸如颜色、或色度和/或亮度像素值)。这也指接收曾在比特流中(或者是解码器分区的编解码器标准的一部分)的指示帧已被分区为包括超级块或LCU的大块的解压缩分区数据,大块被划分为更小的预测块和/或变换单元,如上面详细描述的。如上所述,按照一种形式,大块是流水线单元的粒度,流水线单元各自处理不同的大块。这样的流水线可以由GPU或ISP建立,并且能够一次保持单个大块的数据。对于变换单元(TU),该操作可以指接收从逆量化生成的变换系数的形式的图像数据,并且现在解码器正在等待熵解码或上下文重构,诸如变换系数将被逆变换为残差数据以重构残差编码单元块(CU)。因为逆变换在提供语法元素(残差数据部分)方面可能迟到,或者逆变换上游的诸如熵解码之类的任何其他操作可能迟到,所以编码器以及因此解码器可以决定使用本文描述的外部块方法或符号上下文方法或两者(或两者都没有)来重构要解码的当前块。下面用操作806对此进行描述。
类似地,所接收的图像数据可以是将利用帧间预测或帧内预测来解码的预测块分区的形式。在帧间预测的情况下,解码器可以等待对诸如帧间模式指示、运动矢量和/或用于帧间预测的参考块的标识或用于帧内预测的像素图像数据之类的上下文数据进行解码(指的是符号解码和语法工具重构)。再一次,如果这些语法元素迟到,则解码器可以使用本文描述的外部块方法或符号上下文方法。
处理800可以包括“识别要使用空间概率模型上下文来解码的帧的块”804。这里,解码器继续进行帧间预测、帧内预测或残差重构,并且继续按照某一预定顺序(无论是波形顺序还是光栅顺序,还是其他顺序)重构大块中的小块。可以通过尤其沿着大块的左列和最上列等待并生成小块自己的上下文(帧间模式,运动矢量,参考(或预测块)身份,帧内预测像素数据和残差)来执行第一块。此后,当小块被处于预定位置的足够数量的空间相邻块(例如在要解码的当前块的左侧的至少一个相邻的相邻小块和在当前块之上的至少一个相邻的相邻小块)包围时,系统然后可以开始分析相邻块的上下文。空间相邻块的预定模式可以具有除仅仅直接在当前块的左侧或上方的块以外的许多其他变化,诸如距离当前小块在某一数量的小块内的任何块,并且可以包括特别用于帧内编码的角块,诸如在当前块的上角处的左上和右上块。然后由编码器执行对要使用哪个上下文的指示并将其提供给解码器,其中解码器应该利用相同的上下文执行块重构,这里相关的决定是使用空间相邻上下文与否,但是编码器实际上可以在要使用的所有可能的上下文(包括要使用哪种帧间预测模式(帧间模式))中进行该确定。该决定被放置在开销数据中或压缩比特流的其他位置,其由使用相同上下文的解码器读取。该决定还可以包括如下所述要使用外部块上下文或符号上下文方法中的哪一个或两者或两者都不使用。
处理800可以包括“确定上下文是否将被及时解码以解码当前块”806。这里,编码器、编码器控制或编码器的其他控制器可以监视处理器或GPU,其可以是片上系统(SoC)或是SoC的一部分。这包括确定解码器是在处理完全重构的上下文数据还是停顿并且正在等待完全重构的上下文。为了执行此操作,它可以例如简单地监视某个标志、标签等或代码(0或1),但是许多其他变化是可能的。
处理800可以包括“确定要用于重构的上下文的外部块”808。如上所述,编码器和解码器都必须在所有上下文方法中决定要使用哪一种上下文方法,包括是否使用外部块方法。对于编码器和解码器,方法应该是相同的。因此,编码器和解码器都必须决定哪个上下文将具有更高的及时解码概率。一旦已经决定,解码器和编码器都将使用该上下文。这里,解码器可被设置为对于具有相邻块的每个预测当前块使用外部块方法来解码当前块,以便在其他候选中形成候选预测,以便由块的预测模式选择器进行选择。通过其他形式,仅在需要外部块方法时(即当空间相邻块中缺少语法元素时)可以使用外部块方法。要使用的模式(诸如相邻大块中的最接近的小块)可以是预定的,并且可以是固定的,无论要用于形成上下文的语法元素的类型如何。通过其他形式,每个或单独的语法元素类型可以具有它们自己的外部块模式。
如上所述,外部块模式可以是在相邻大块中最接近正被解码的当前小块的位置处的一个块,如在图像400中那样。如在图像500中那样,可以使用用来填充比外部块大的当前小块的列或行的若干小块。通过如图像700(图7)上的其他选项,可以使用比将填充当前小块的行或列的块更多的外部块。当使用多个外部块时,可以组合它们的值(例如平均或其他算法)。如在图像400、500或700上示出,可以首先沿着具有当前小块的当前大块的边缘上的行或列放置外部块。外部块模式的许多其他变化是可能的。
也可能根本不使用外部块方法并且仅使用符号上下文方法,或者如下所述可以一起使用两者。
可替代地或另外地,处理800可以包括“确定要使用的并且具有符号上下文的相邻块”810。再一次,一旦确定空间相邻块的完全构造的上下文没有准备好用于要解码的当前块,系统可以根据编码器的并复制到解码器(或在解码器处以其他方式确定)的先验决定从其他流水线单元请求空间相邻块的符号。下面利用符号上下文处理850(图8A)提供细节。结果是确定被选择为给要解码的当前小块贡献上下文的空间相邻块是否至少使其符号被熵解码。
处理800可以包括“使用上下文来解码当前块”812。这里,无论是应用外部块方法还是应用符号上下文方法还是应用两者,都应用这些方法并且为当前小块生成语法元素。对于外部块方法,这可以包括将语法元素值组合成某些平均值,例如包括矢量x和y幅度和长度的平均运动矢量值。一个或多个参考块的位置可以是在大多数外部块上使用的相同位置。帧间模式值可以简单地是多数帧间模式值,或者应用某一其他概率算法来获得帧间模式指示符值。与来自变换系数单元的残差数据值一样,帧内预测像素值可以是内插值。
关于符号上下文方法,在符号上下文处理850上提供细节,符号上下文处理850使用空间相邻块的先前解码的符号来选择多个模型中的熵解码概率模型。然后,所选择的模型用于对当前小块的要解码的符号进行熵解码(或修改)。一旦为当前小块确定了符号,就可以为当前小块重构语法元素。每个语法元素可以具有其自己的多个熵解码概率模型。在下面提供细节。
将会理解,解码器(或编码器)可以仅操作方法之一,例如仅操作外部块方法或符号上下文方法,或者可以执行两种方法,无论是一起对同一当前小块还是两者择一地还是两者兼有。因此,编码器可以预先确定要应用哪种方法以及何时应用。否则,编码器自动(或由程序员或用户手动)可以选择设置何时以及如何应用这两种方法。因此,例如,可以将一种方法或两种方法设置为用于帧间预测与帧内预测与残差重构,或两种方法都不设置。还可以通过帧间预测语法元素类型(帧间模式,运动矢量或参考块指示符)来区分这些方法的使用。当确定一种方法或另一种方法提供更好的质量或更有效时,可以设置这些。这可以在制造商处预设,或者可以由程序员确定,或者甚至用户可以具有以不同方式应用方法的质量或速度设定。存在许多变化。
一种变化是同时应用两种方法。这可以是对当前小块的不同语法元素,诸如外部块方法可以用于确定运动矢量而符号上下文方法用于形成当前小块的帧间模式。存在通过哪一种方法构造哪一种语法元素的许多变化。通过另一方式,两种方法都可用于重构相同的语法元素。因此,当结果是当前小块的语法元素值(比如运动矢量的x维度)时,该值可被与来自一个或多个外部块的值平均或者以其他方式被组合或修改。在这里,预期到许多变化。
然后,处理800可以包括查询“更多块?”814。如果是,则处理800循环到操作804并针对下一块重复。如果不再有块将使用例如大块乃至帧的空间概率模型上下文,则该处理结束,并且可以执行当前小块的编码。
现在参考图8A,根据本公开的至少一些实施方式布置示例处理850。处理850可以提供具有上下文解码和重构旁路的计算机实现的视频编码方法,并且特别针对使用空间相邻块中的符号上下文。在所示实施方式中,处理850可包括一个或多个操作、功能或动作,如通常均匀编号的操作852至862中的一个或多个所示。作为非限制性示例,本文中可以参考关于图1-2和图9讨论的操作来描述处理800,并且可以关于下面讨论的示例系统100、200或900来讨论处理800。
处理850可包括“识别具有解码的符号但没有重构的语法元素的相邻块”852。这里,通过在编码器和解码器处或至少在解码器处监视如上所述的流水线,将揭示是否空间相邻块已经具有熵解码的符号但是尚未重构它们的语法元素。通过一种形式,块解码领先熵解码并且简单地等待符号。具体而言,处理850然后可以包括“获得符号上下文”854,并且正在处理当前小块的上下文并且需要空间相邻块的符号的硬件逻辑可以向其他硬件单元(其他并行流水线单元)发送请求以获得符号(拉取),在这种情况下,直到符号已被发送到第一处理并行流水线单元处理才会继续进行。在替代方案中,可以将相邻块的符号自动地发送(推送)到需要它们的硬件逻辑,在这种情况下,可以使用的通信协议将向处理当前小块的硬件逻辑通知已经接收到空间相邻块的符号。
处理850可包括“确定相邻块的符号上下文”856,其简单地指从存储器中读取符号或者在符号被熵解码时保存符号,以及通过正在对当前小块进行解码的硬件或流水线单元获得那些针对需要重构的语法元素的符号。
处理850可包括“通过使用邻居符号上下文来修改要被熵解码的当前块的熵解码概率模型的估计”858。这里,在熵解码期间,每个符号可以具有用于CABAC熵解码操作的多个概率模型。使用哪些空间相邻块来对符号进行熵编码是已知的,所以可以对相同的空间相邻块执行反转处理和解码符号以获得相同的值。空间相邻块符号上下文可用于修改概率模型。这可以通过以下操作来执行:使用空间相邻块的符号值来提供值的概率范围,以便选择应该使用哪个概率模型来解码形成当前块的待解码符号的码字上的每个比特。首先,可以计算符号值的某一组合,诸如范数,如LI范数。然后可以将结果值(比如ek)与每个可能的概率模型的符号上下文值ek的预定可接受范围进行比较,以确定符号(不仅仅是比特)是否将有很高的是小或大的概率。因此,如果ek为0到3,则符号将最可能是小的,并且某个概率模型用于该比特的小幅度,而对于超过33的值则相反,其中另一个概率模型用于该比特的大幅度,相对的是其间的情况,其中第三概率模型用于该比特。范围值由已知算法确定。对于形成当前块的待解码符号的二进制码字中的每个比特重复该处理。概率模型产生概率0或1。参见Khalid Sayood等人的,Lossless Compression Handbook,第1-2章,2003Elsevier Inc.(2013);H.264/AVC Context Adaptive Binary Arithmetic Coding(CABC),www.vcodex.com,Vcodex Ltd(2007-2016)。
为了覆盖该操作,然后,处理850可以包括“使用相邻块符号上下文来选择概率模型之一”860。特别地,如刚才所解释的,符号上下文用于根据符号上下文的值(或其范数)来选择使用哪个概率模型,其中假设当前块的符号的值将接近相邻块的符号值。
然后,处理850可以包括“使用修改的概率模型对来自当前块的待解码符号比特的当前块符号进行熵解码”862,并且这里修改指的是针对每个比特的所选择的概率模型(或对每个比特的概率模型的选择)。这里然后,将所选择的概率模型应用于每个比特,并且结果是二进制码字,其是当前块的符号值。可以针对当前块的针对语法元素的每个符号重复该处理,然后针对当前块的需要被解码的每个语法元素重复该处理。
处理850可以包括“使用当前块符号上下文来重构当前块的一个或多个语法元素”864。此后,现在使用当前块的熵解码的符号上下文(以及通过使用其他标准编解码器)来重构当前块的一个或多个语法元素,诸如运动矢量等。
虽然示例处理300、800和850的实施方式可以包括以所示顺序进行所示的所有操作,但是本公开不限于该方面,并且在各种示例中,本文的任何处理的实施方式都可以包括仅进行所示操作的子集和/或以与所示顺序不同的顺序进行。
在实施方式中,可以响应于由一个或多个计算机程序产品提供的指令而进行本文描述的特征。这样的程序产品可以包括提供指令的信号承载介质,所述指令在由例如处理器执行时可以提供本文描述的功能。计算机程序产品可以以一种或多种机器可读介质的任何形式提供。因此,例如,包括一个或多个处理器核的处理器可以响应于由一个或多个机器可读介质传送到该处理器的程序代码和/或指令或指令集而进行本文描述的一个或多个特征。一般而言,机器可读介质可以以可以使本文描述的任何设备和/或系统实现本文描述的至少部分特征的程序代码和/或指令或指令集的形式传送软件。如前所述,在另一种形式中,诸如非暂时性计算机可读介质之类的非暂时性物品除了它不包括暂时性信号本身之外可以与上述任何示例或其他示例一起使用。它确实包括除信号本身以外的可以以“暂时性”方式暂时保存数据的那些元件,诸如RAM等。
如在本文描述的任何实施方式中所使用的,术语“模块”指代被配置为提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。软件可被体现为软件包、代码和/或指令集或指令,并且如在本文描述的任何实施方式中使用的“硬件”可以包括(例如,单独地或以任何组合)硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地体现为形成较大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC)等。例如,模块可被体现在用于经由软件、固件或硬件实现本文讨论的编码系统的逻辑电路中。
如在本文描述的任何实施方式中所使用的,术语“逻辑单元”指代被配置为提供本文描述的功能的固件逻辑和/或硬件逻辑的任何组合。如在本文描述的任何实施方式中使用的“硬件”可以包括(例如,单独地或以任何组合)硬连线电路、可编程电路、状态机电路和/或存储由可编程电路执行的指令的固件。逻辑单元可以共同地或单独地体现为形成较大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC)等。例如,逻辑单元可被体现在用于经由固件或硬件实现本文讨论的编码系统的逻辑电路中。本领域普通技术人员将认识到由硬件和/或固件执行的操作可以替代地经由软件(其可被体现为软件包、代码和/或指令集或指令)实现,并且还认识到逻辑单元也可以利用一部分软件来实现其功能。
如在本文描述的任何实施方式中所使用的,术语“组件”可以指代模块或逻辑单元,如在上面描述这些术语一样。因此,术语“组件”可以指代被配置为提供本文描述的功能的软件逻辑、固件逻辑和/或硬件逻辑的任何组合。例如,本领域普通技术人员将认识到由硬件和/或固件执行的操作可以替代地经由软件模块(其可被体现为软件包、代码和/或指令集)来实现,并且还认识到逻辑单元也可以利用一部分软件来实现其功能。
参考图9,根据本公开的至少一些实施方式,可以布置用于提供具有上下文解码和重构旁路的视频编码的示例图像处理系统(或视频编码系统)900。在所示的实施方式中,系统900可以包括:一个或多个处理器903,用于提供本文讨论的编码器和解码器的一个或多个处理单元920,用于捕获图像的一个或多个成像设备901,用于接收或发送图像数据的天线902,显示设备905,以及一个或多个存储器存储装置904。一个或多个处理器903、存储器存储装置904和/或显示设备905能够经由例如总线、电线或其他接入方式彼此通信。在各种实施方式中,显示设备905可被集成在系统900中或者与系统900分开实现。
如图9所示和在上面讨论的,一个或多个处理单元920可以具有逻辑模块950,其具有编码器952,编码器952可以是编码器100或1200,或者解码器200或1300,或者这些的某一组合。这里相关的是,编码器952可以具有帧间预测单元954,其具有运动估计单元956(在编码器中并且可选地在解码器中)和运动补偿单元958。当编码器952是解码器时,外部块和符号上下文旁路方法可用于构造帧间模式、运动矢量和/或参考块的标识。(这也可以应用于如上所述的编码器)。帧内预测单元960也可被提供,并且可以使用外部块和/或部分解码的相邻块来重构当前块的像素(或图像或像素数据)。编码器952还可以具有逆变换(InvT)单元962和残差编码组装器964,其可以使用外部块和符号解码的相邻块来重构当前块的变换系数以重构残差。
编码器952还可以具有上下文旁路单元970(诸如上述的上下文旁路单元115或215)以确定何时应该使用外部块的语法元素或空间相邻块的符号上下文,以及哪些块,以及上面提到的其他功能。为了实现这些功能,上下文旁路单元970可具有空间邻居识别单元972和邻居上下文解码时间监视单元974。为了使用来自空间相邻块的符号上下文来解码当前块,上下文旁路单元970可以包括:邻居符号解码时间监视单元976,邻居符号上下文到当前块符号上下文单元978,以及当前块符号上下文到完整上下文单元980。为了使用外部块来解码当前块,上下文旁路单元970可以包括外部块上下文单元982。逻辑电路的这些单元提供本文所述并且如利用上述处理解释的许多功能。该组件的标题揭示了由该组件执行的上述功能。
如将会认识到的,图9所示的模块可以包括各种软件和/或硬件模块和/或可以经由软件或硬件或其组合实现的模块。例如,模块可以经由处理单元920而被实现为软件,或者模块可以经由专用硬件部分来实现。而且,可以以各种方式实现系统900。例如,系统900(不包括显示设备905)可被实现为具有加速器或图形处理器单元(GPU)的单个芯片或设备,其可以具有或不具有图像信号处理器(ISP)、四核中央处理单元和/或存储器控制器输入/输出(I/O)模块。在其他示例中,系统900(再次不包括显示设备905)可被实现为芯片组或片上系统(SoC)。将会理解,天线902也可用于接收用于编码的图像数据。
否则,一个或多个处理器903可以包括任何合适的实施方式,包括例如中央处理单元(CPU)、一个或多个微处理器、多核处理器、专用集成电路、一个或多个芯片、芯片组、可编程逻辑器件、图形卡、集成图形、一个或多个通用图形处理单元、固定功能GPU、SoC、其他加速器等。这还可以包括或定义具有可以各自处理不同的大块的多个并行流水线单元的流水线。只要用于执行视频编码预测任务的内核可以使用软件、固件和/或硬件在可以调用固定功能硬件(诸如VME)的执行单元上运行以有效地执行诸如用于块匹配或空间依赖性计算的重复计算或其他任务并与上述描述一致,则实施方式不受限制。在用于该目的的无论专用与否的硬件中,VME可以是块的形式。这可被放置在图形硬件中,或者可以是独立的GPU。
此外,存储器存储装置904可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性示例中,存储器存储装置904也可以经由高速缓冲存储器来实现。
在各种实施方式中,示例视频编码系统900可以使用成像设备901来形成或接收捕获的图像数据。这可以以各种方式实现。因此,在一种形式中,图像处理系统900可以是一个或多个数字相机或其他图像捕获设备,并且在这种情况下,成像设备901可以是相机硬件和相机传感器软件、模块或组件950。在其他示例中,视频编码系统900可以具有包括或可以是一个或多个相机的成像设备901,并且逻辑模块950可以与成像设备901远程通信或者可以通信地耦合到成像设备901以进行图像数据的进一步处理。
因此,视频编码系统900可以是以下各项,或者可以是以下各项的一部分,或者可以与以下各项通信:智能电话,平板计算机,膝上型计算机,或者其他移动设备,诸如包括智能眼镜、智能耳机、运动带等的可穿戴设备。在任何这些情况下,这种技术可以包括:诸如数字相机系统、专用相机设备或成像电话或平板计算机之类的无论是静态图片相机还是摄像机的相机,提供预览屏幕的相机,或者这些的某种组合。因此,在一种形式中,成像设备901可以包括相机硬件和光学器件,包括一个或多个传感器以及自动聚焦、变焦、光圈、ND滤光器、自动曝光、闪光和致动器控制。成像设备901还可具有:透镜,具有RGB拜耳滤色器的图像传感器,模拟放大器,A/D转换器,将入射光转换为数字信号的其他组件等,和/或其组合。数字信号在本文中也可以称为原始图像数据。
其他形式包括相机传感器型成像设备等(例如,网络摄像头或网络摄像头传感器或其他互补金属氧化物半导体型图像传感器(CMOS)),而不使用红绿蓝(RGB)深度相机和/或麦克风阵列来定位谁在说话。在其他示例中,除了相机传感器之外或作为相机传感器的替代,可以使用RGB深度相机和/或麦克风阵列。在一些示例中,成像设备901可以设置有眼睛跟踪相机。否则,成像设备901可以是记录、显示或处理数字图像的任何其他设备,诸如视频游戏面板或控制台、机顶盒等。
如图所示,这些组件中的任何组件能够彼此通信和/或与逻辑模块950和/或成像设备901的部分通信。因此,处理器903可以通信地耦合到成像设备901和逻辑模块950以用于操作那些组件。尽管图像处理系统900如图9所示可以包括与特定组件或模块相关联的一组特定块或动作,但是这些块或动作可以与不同于这里示出的特定组件或模块的组件或模块相关联。
参考图10,根据本公开和各种实施方式的示例系统1000可以例如体现系统1000,并且可以是媒体系统,尽管系统1000不限于该上下文。例如,系统1000可被包含到以下各项中:个人计算机(PC),膝上型计算机,超便携式计算机,平板计算机,触摸板,便携式计算机,手持计算机,掌上型计算机,个人数字助理(PDA),蜂窝电话,组合蜂窝电话/PDA,电视,智能设备(例如,智能电话、智能平板计算机或智能电视),移动因特网设备(MID),消息传送设备,数据通信设备,等等。
在各种实施方式中,系统1000包括通信地耦合到显示器1020的平台1002。平台1002可以从诸如一个或多个内容服务设备1030或一个或多个内容递送设备1040或其他类似内容源之类的内容设备接收内容。包括一个或多个导航特征的导航控制器1050可用于与例如平台1002和/或显示器1020进行交互。下面更详细地描述这些组件中的每一个。
在各种实施方式中,平台1002可以包括芯片组1005、处理器1010、存储器1012、存储装置1014、图形子系统1015、应用1016和/或无线电装置1018以及一个或多个天线1011的任何组合。芯片组1005可以在处理器1010、存储器1012、存储装置1014、图形子系统1015、应用1016和/或无线电装置1018之间提供相互通信。例如,芯片组1005可以包括能够提供与存储装置1014的相互通信的存储适配器(未示出)。
处理器1010可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器;x86指令集兼容处理器,多核处理器,或任何其他微处理器或中央处理单元(CPU)。在各种实施方式中,处理器1010可以是一个或多个双核处理器,一个或多个双核移动处理器,等等。
存储器1012可被实现为易失性存储器设备,诸如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储装置1014可被实现为非易失性存储设备,诸如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实施方式中,存储装置1014可包括例如当包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强保护的技术。
图形子系统1015可执行诸如静止或视频之类的图像的处理以供显示。例如,图形子系统1015可以是图形处理单元(GPU)或视觉处理单元(VPU)。模拟或数字接口可用于通信地耦合图形子系统1015和显示器1020。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任何一种。图形子系统1015可被集成到处理器1010或芯片组1005中。在一些实施方式中,图形子系统1015可以是通信地耦合到芯片组1005的独立卡。
本文描述的图形和/或视频处理技术可以在包括固定功能硬件(诸如视频运动估计(VME)引擎或类似的并行处理电路)的各种硬件架构中实现。例如,图形和/或视频功能可被集成在芯片组内。或者,可以使用独立的图形和/或视频处理器。作为又一实施方式,图形和/或视频功能可以由包括多核处理器的通用处理器提供。在其他实施方式中,这些功能可以在消费者电子设备中实现。
无线电装置1018可以包括能够使用各种合适的无线通信技术发送和接收信号的一个或多个无线电装置。这些技术可能涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨这样的网络进行通信时,无线电装置1018可以根据任何版本的一个或多个可适用标准进行操作。
在各种实施方式中,显示器1020可包括任何电视类型的监视器或显示器。显示器1020可包括例如计算机显示屏、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1020可以是数字和/或模拟的。在各种实施方式中,显示器1020可以是全息显示器。而且,显示器1020可以是可以接收视觉投影的透明表面。这种投影可以传达各种形式的信息、图像和/或对象。例如,这种投影可以是移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1016的控制下,平台1002可以在显示器1020上显示用户界面1022。
在各种实施方式中,一个或多个内容服务设备1030可以由任何国家、国际和/或独立的服务托管,并且因此例如可经由因特网被平台1002访问。一个或多个内容服务设备1030可被耦合到平台1002和/或显示器1020。平台1002和/或一个或多个内容服务设备1030可被耦合到网络1060以便向和从网络1060传送(例如,发送和/或接收)媒体信息。一个或多个内容递送设备1040也可被耦合到平台1002和/或显示器1020。
在各种实施方式中,一个或多个内容服务设备1030可包括有线电视盒,个人计算机,网络,电话,能够递送数字信息和/或内容的支持因特网的设备或电器,以及能够经由网络1060或直接地在内容提供商和平台1002和/或显示器1020之间单向或双向地传送内容的任何其他类似设备。将会认识到,可以经由网络1060向和从内容提供商和系统1000中的任何一个组件单向和/或双向地传送内容。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
一个或多个内容服务设备1030可以接收诸如有线电视节目的内容,包括媒体信息,数字信息和/或其他内容。内容提供商的示例可以包括任何有线或卫星电视或无线电装置或因特网内容提供商。所提供的示例并不意味着以任何方式限制根据本公开的实施方式。
在各种实施方式中,平台1002可以从具有一个或多个导航特征的导航控制器1050接收控制信号。例如,控制器1050的导航特征可用于与用户界面1022进行交互。在实施方式中,导航控制器1050可以是指示设备,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体而言,人机接口设备)。诸如图形用户界面(GUI)和电视和监视器之类的许多系统允许用户使用物理手势来控制数据和向计算机或电视提供数据。
可以通过显示器上显示的指针、光标、聚焦环或其他视觉指示器的移动在显示器(例如,显示器1020)上复制控制器1050的导航特征的移动。例如,在软件应用1016的控制下,位于导航控制器1050上的导航特征可被映射到例如在用户界面1022上显示的虚拟导航特征。在实施方式中,控制器1050可以不是单独的组件,而是可被集成到平台1002和/或显示器1020中。然而,本公开不限于本文示出或描述的元件或上下文。
在各种实施方式中,例如,当启用时,驱动程序(未示出)可以包括使得用户能够在初始启动之后通过触摸按钮来立即打开和关闭类似电视的平台1002的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台1002将内容流式传输到媒体适配器或其他一个或多个内容服务设备1030或一个或多个内容递送设备1040。此外,芯片组1005可以包括例如对7.1环绕声音频和/或高清晰度(7.1)环绕声音频的硬件和/或软件支持。驱动程序可包括用于集成图形平台的图形驱动程序。在实施方式中,图形驱动程序可包括外围组件互连(PCI)Express图形卡。
在各种实施方式中,可以集成系统1000中示出的任何一个或多个组件。例如,可以集成平台1002和一个或多个内容服务设备1030,或者可以集成平台1002和一个或多个内容递送设备1040,或者可以集成平台1002、一个或多个内容服务设备1030和一个或多个内容递送设备1040。在各种实施方式中,平台1002和显示器1020可以是集成的单元。例如,可以集成显示器1020和一个或多个内容服务设备1030,或者可以集成显示器1020和一个或多个内容递送设备1040。这些示例不意味着限制本公开。
在各种实施方式中,系统1000可被实现为无线系统、有线系统或两者的组合。当被实现为无线系统时,系统1000可以包括适合于通过无线共享介质进行通信的组件和接口,诸如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等。无线共享介质的示例可包括部分无线频谱,诸如RF频谱等。当被实现为有线系统时,系统1000可以包括适合于通过有线通信介质进行通信的组件和接口,诸如输入/输出(I/O)适配器,用于将I/O适配器与对应的有线通信介质连接的物理连接器,网络接口卡(NIC),盘控制器,视频控制器,音频控制器等。有线通信介质的示例可包括电线,电缆,金属引线,印刷电路板(PCB),背板,交换结构,半导体材料,双绞线,同轴电缆,光纤等。
平台1002可以建立一个或多个逻辑或物理信道以传送信息。该信息可包括媒体信息和控制信息。媒体信息可以指代表示用于用户的内容的任何数据。内容的示例可包括例如来自语音对话、视频会议、流式视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等的数据。来自语音对话的数据可以是例如语音信息,静默时段,背景噪声,舒适噪声,音调等。控制信息可以指代表示用于自动系统的命令、指令或控制字的任何数据。例如,控制信息可用于通过系统路由媒体信息,或指示节点以预定方式处理媒体信息。然而,实施方式不限于图10中示出或描述的元件或上下文。
如上所述,系统900或1000可以以不同的物理样式或形状因子来实现。图11示出了系统900或1000可以实现于其中的小规格设备1100的实施方式。在实施方式中,例如,设备1100可被实现为具有无线能力的移动计算设备。例如,移动计算设备可以指代具有处理系统和移动电源或电力供应(诸如一个或多个电池)的任何设备。
如上所述,移动计算设备的示例可以包括个人计算机(PC),膝上型计算机,超便携式计算机,平板计算机,触摸板,便携式计算机,手持计算机,掌上型计算机,个人数字助理(PDA),蜂窝电话,组合蜂窝电话/PDA,电视,智能设备(例如,智能电话、智能平板计算机或智能电视),移动因特网设备(MID),消息传送设备,数据通信设备,等等。
移动计算设备的示例还可以包括被布置为由人佩戴的计算机,诸如手腕计算机,手指计算机,环形计算机,眼镜计算机,带夹计算机,臂带计算机,鞋计算机,服装计算机,以及其他可穿戴计算机。在各种实施方式中,例如,移动计算设备可被实现为能够执行计算机应用以及语音通信和/或数据通信的智能电话。尽管可以通过示例的方式利用实现为智能电话的移动计算设备来描述一些实施方式,但是可以认识到,也可以使用其他无线移动计算设备来实现其他实施方式。实施方式不限于该上下文。
如图11所示,设备1100可包括外壳1102,显示器1104,输入/输出(I/O)设备1106,以及天线1108。设备1100还可包括导航特征1112。显示器1104可以包括用于显示适合于移动计算设备的信息的显示单元上的任何合适的屏幕1110。I/O设备1106可以包括用于将信息输入到移动计算设备中的任何合适的I/O设备。I/O设备1106的示例可以包括字母数字键盘,数字小键盘,触摸板,输入键,按钮,开关,摇臂开关,麦克风,扬声器,语音识别设备和软件等。还可以通过麦克风(未示出)将信息输入到设备1100中。这种信息可以由语音识别设备(未示出)数字化。实施方式不限于该上下文。
可以使用硬件元件、软件元件或两者的组合来实现各种实施方式。硬件元件的示例可包括处理器,微处理器,电路,电路元件(例如,晶体管,电阻器,电容器,电感器等),集成电路,专用集成电路(ASIC),可编程逻辑器件(PLD),数字信号处理器(DSP),现场可编程门阵列(FPGA),逻辑门,寄存器,半导体器件,芯片,微芯片,芯片组等。软件的示例可包括软件组件,程序,应用,计算机程序,应用程序,系统程序,机器程序,操作系统软件,中间件,固件,软件模块,例程,子例程,函数,方法,过程,软件接口,应用程序接口(API),指令集,计算代码,计算机代码,代码段,计算机代码段,字,值,符号,或其任何组合。确定是否使用硬件元件和/或软件元件实现实施方式可以根据任何数量的因素(诸如期望的计算速率,功率水平,热容差,处理周期预算,输入数据速率,输出数据速率,存储器资源,数据总线速度和其他设计或性能约束)而变化。
上面描述的一个或多个方面可以通过存储在机器可读介质上的表示处理器内的各种逻辑的代表性指令来实现,这些代表性指令当由机器读取时使该机器制造逻辑以执行本文描述的技术。这种称为“IP核”的表示可被存储在有形的机器可读介质上,并被提供给各种客户或制造设施,以加载到实际制造逻辑或处理器的制造机器中。
虽然已经参考各种实施方式描述了本文阐述的某些特征,但是该描述并不旨在以限制意义来解释。因此,对本公开所属领域的技术人员显而易见的本文描述的实施方式的各种修改以及其他实施方式被认为落入本公开的精神和范围内。
以下示例涉及另外的实施方式。
一种计算机实现的视频编码方法包括:获得视频序列的多个帧,其中各个帧被划分为至少一个大块,所述至少一个大块被划分为像素数据的多个小块并包括当前小块;识别与当前小块属于同一大块并将用于解码当前块的至少一个空间相邻块;在当前小块准备好被解码时,确定将由所述至少一个空间相邻块提供的完全构造的上下文是否将是可用的;以及当所述至少一个空间相邻块的完全构造的上下文不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块。
通过另一实施方式,该方法可包括:其中所述至少一个上下文就绪块被布置在当前小块的大块的外部;其中所述至少一个上下文就绪块被布置在与当前小块的大块相邻的大块中;其中所述至少一个上下文就绪块被布置在与当前小块的大块相邻并沿着当前小块的大块的边缘延伸的小块行或小块列中;并且该方法包括具有如下上下文数据的多个外部上下文就绪块,所述上下文数据被组合以形成要用于解码当前小块的上下文值,其中所述至少一个上下文就绪块被布置在与当前小块的大块相邻的大块中并且在当前小块的至少一个相同行或列中;其中当前小块和所述至少一个上下文就绪块的大小不同;其中完全构造的上下文包括:多个可用帧间预测模式的至少一个帧间预测模式标识,至少一个运动矢量,参考块的至少一个标识,用于帧内预测的至少一个像素数据值,或要用于形成残差的至少一个变换系数。该方法还包括确定所述至少一个空间相邻块是否包括包括尚未构造成完全构造的上下文的解码符号的可用上下文数据;以及使用所述符号来确定要用于构造当前小块的完全构造的上下文的当前小块的符号。该方法还可包括:确定所述至少一个空间相邻块的符号上下文;根据所述符号上下文选择当前小块的符号的多个概率模型中的熵解码概率模型;使用所选择的概率模型来构造当前小块的符号;以及使用所选择的概率模型来构造当前小块的完全构造的上下文;其中当前小块被重构为帧间预测块、帧内预测块和变换块中的至少一个;并且该方法包括:当所述至少一个空间相邻块的完全构造的上下文不可用时,由编码器提供使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块的选项,并提供提供帧间预测块、帧内预测块和/或变换块中的任何一个、两个或所有三个的选项;以及由编码器提供从以下各项中获得已经可用的上下文数据的选项:(1)外部上下文就绪块或(2)具有尚未形成为完全构造的上下文的符号上下文数据的所述至少一个空间相邻块,或者(1)和(2)两者;其中,所述外部上下文就绪块和所述至少一个空间相邻块各自对当前小块的完全构造的上下文的不同语法元素有贡献。
通过另一实施方式,一种计算机实现的系统包括:存储器;显示器,其通信地连接到所述存储器;至少一个处理器,其通信地耦合到所述显示器和所述存储器;和上下文旁路单元,其将由所述至少一个处理器操作并通过以下操作来进行操作:获得视频序列的多个帧,其中各个帧被划分为至少一个大块,所述至少一个大块被划分为像素数据的多个小块并包括当前小块;识别与当前小块属于同一大块并将用于解码当前块的至少一个空间相邻块;在当前小块准备好被解码时,确定将由所述至少一个空间相邻块提供的完全构造的上下文是否将被解码;以及当所述至少一个空间相邻块的完全构造的上下文数据不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块。
通过另一示例,所述系统包括:其中所述至少一个上下文就绪块被布置在当前小块的大块的外部;该系统包括多个上下文就绪块,所述多个上下文就绪块被布置在具有当前小块的大块的外部,其中所述上下文旁路单元通过组合所述多个上下文就绪块的值以提供当前小块的完全构造的上下文来进行操作;其中所述至少一个上下文就绪块被布置在与当前小块的大块相邻并沿着当前小块的大块的边缘延伸的小块行或小块列中;其中所述至少一个上下文就绪块是所述至少一个空间相邻块,其具有包括熵解码符号的可用上下文数据,所述熵解码符号尚未构造成具有语法元素的完全构造的上下文;其中所述上下文旁路单元将通过以下操作来进行操作:确定所述至少一个空间相邻块的符号上下文;根据所述符号上下文选择当前小块的符号的多个概率模型中的熵解码概率模型;使用所选择的概率模型来构造当前小块的符号;以及使用所选择的概率模型来构造当前小块的完全构造的上下文。所述系统还包括:其中所述上下文旁路单元将通过从以下二者获得已经可用的上下文数据并使用这两种上下文就绪块解码当前小块的语法元素来进行操作:(1)位于具有当前小块的大块外部并且具有完全构造的上下文的至少一个上下文就绪块,以及(2)作为所述至少一个空间相邻块并且具有尚未形成为完全构造的上下文的符号上下文数据的至少一个上下文就绪块。所述系统可包括具有并行流水线单元的解码流水线,每个流水线单元的处理粒度为所述大块之一;其中所述完全构造的上下文包括以下各项中的至少一个:多个可用帧间预测模式中的至少一个帧间预测模式的标识,至少一个运动矢量,参考块的至少一个标识,用于帧内预测的至少一个像素数据值,或要用于形成残差的至少一个变换系数。
通过一种方式,至少一种计算机可读物品包括多个指令,所述多个指令响应于被在计算设备上执行而使该计算设备通过以下操作来进行操作:获得视频序列的多个帧,其中各个帧被划分为至少一个大块,所述至少一个大块被划分为像素数据的多个小块并包括当前小块;识别与当前小块属于同一大块并将用于解码当前块的至少一个空间相邻块;在当前小块准备好被解码时,确定将由所述至少一个空间相邻块提供的完全构造的上下文是否将被解码;以及当所述至少一个空间相邻块的完全构造的上下文数据不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块。
通过另一方式,所述指令包括以下各项中的至少一个:所述至少一个上下文就绪块被布置在当前小块的大块外部,并且具有形成至少一种类型的语法元素的完全构造的上下文,并且所述至少一个上下文就绪块是具有可用上下文数据的所述至少一个空间相邻块,所述可用上下文数据包括尚未构造成具有语法元素的完全构造的上下文的熵解码符号。
在另一示例中,至少一个机器可读介质可包括多个指令,其响应于被在计算设备上执行而使该计算设备执行根据以上示例中的任一个的方法。
在又一示例中,一种装置可以包括用于执行根据以上示例中的任一个的方法的装置。
以上示例可以包括特征的特定组合。然而,以上示例在这方面不受限制,并且在各种实施方式中,以上示例可以包括仅承担这些特征的子集、承担这些特征的不同顺序、承担这些特征的不同组合和/或承担除明确列出的那些特征之外的其他特征。例如,关于示例方法描述的所有特征可以关于示例装置、示例系统和/或示例物品来实现,反之亦然。

Claims (27)

1.一种计算机实现的视频编码方法,包括:
获得视频序列的多个帧,其中各个帧被划分为至少一个大块,所述至少一个大块被划分为像素数据的多个小块并包括当前小块;
识别与当前小块属于同一大块并将用于解码当前块的至少一个空间相邻块;
在当前小块准备好被解码时,确定将由所述至少一个空间相邻块提供的完全构造的上下文是否将是可用的;以及
当所述至少一个空间相邻块的完全构造的上下文不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块。
2.如权利要求1所述的方法,其中,所述至少一个上下文就绪块被布置在当前小块的大块的外部。
3.如权利要求1所述的方法,其中,所述至少一个上下文就绪块被布置在与当前小块的大块相邻的大块中。
4.如权利要求1所述的方法,其中,所述至少一个上下文就绪块被布置在与当前小块的大块相邻并沿着当前小块的大块的边缘延伸的小块行或小块列中。
5.如权利要求4所述的方法,包括具有上下文数据的多个外部上下文就绪块,所述上下文数据被组合以形成要用于解码当前小块的上下文值。
6.如权利要求1所述的方法,其中,所述至少一个上下文就绪块被布置在与当前小块的大块相邻的大块中并且在当前小块的至少一个相同行或列中。
7.如权利要求1所述的方法,其中,当前小块和所述至少一个上下文就绪块的大小不同。
8.如权利要求1所述的方法,其中,完全构造的上下文包括:
多个可用帧间预测模式的至少一个帧间预测模式标识,
至少一个运动矢量,
参考块的至少一个标识,
用于帧内预测的至少一个像素数据值,或
要用于形成残差的至少一个变换系数。
9.如权利要求1所述的方法,包括确定所述至少一个空间相邻块是否包括包括尚未构造成完全构造的上下文的解码符号的可用上下文数据;以及
使用所述符号来确定要用于构造当前小块的完全构造的上下文的当前小块的符号。
10.如权利要求9所述的方法,包括:
确定所述至少一个空间相邻块的符号上下文;
根据所述符号上下文选择当前小块的符号的多个概率模型中的熵解码概率模型;
使用所选择的概率模型来构造当前小块的符号;以及
使用所选择的概率模型来构造当前小块的完全构造的上下文。
11.如权利要求1所述的方法,其中,当前小块被重构为帧间预测块、帧内预测块和变换块中的至少一个。
12.如权利要求11所述的方法,包括:当所述至少一个空间相邻块的完全构造的上下文不可用时,由编码器提供使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块的选项,并提供提供帧间预测块、帧内预测块和/或变换块中的任何一个、两个或所有三个的选项。
13.如权利要求1所述的方法,包括由编码器提供从以下各项中获得已经可用的上下文数据的选项:(1)外部上下文就绪块或(2)具有尚未形成为完全构造的上下文的符号上下文数据的所述至少一个空间相邻块,或者(1)和(2)两者。
14.如权利要求13所述的方法,其中,所述外部上下文就绪块和所述至少一个空间相邻块各自对当前小块的完全构造的上下文的不同语法元素有贡献。
15.一种计算机实现的系统,包括:
存储器;
显示器,其通信地连接到所述存储器;
至少一个处理器,其通信地耦合到所述显示器和所述存储器;以及
上下文旁路单元,其将由所述至少一个处理器操作并通过以下操作来进行操作:
获得视频序列的多个帧,其中各个帧被划分为至少一个大块,所述至少一个大块被划分为像素数据的多个小块并包括当前小块;
识别与当前小块属于同一大块并将用于解码当前块的至少一个空间相邻块;
在当前小块准备好被解码时,确定将由所述至少一个空间相邻块提供的完全构造的上下文是否将被解码;以及
当所述至少一个空间相邻块的完全构造的上下文数据不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块。
16.如权利要求15所述的系统,其中,所述至少一个上下文就绪块被布置在当前小块的大块的外部。
17.如权利要求16所述的系统,包括多个上下文就绪块,所述多个上下文就绪块被布置在具有当前小块的大块的外部,其中所述上下文旁路单元通过组合所述多个上下文就绪块的值以提供当前小块的完全构造的上下文来进行操作。
18.如权利要求16所述的系统,其中,所述至少一个上下文就绪块被布置在与当前小块的大块相邻并沿着当前小块的大块的边缘延伸的小块行或小块列中。
19.如权利要求15所述的系统,其中,所述至少一个上下文就绪块是所述至少一个空间相邻块,其具有包括熵解码符号的可用上下文数据,所述熵解码符号尚未构造成具有语法元素的完全构造的上下文。
20.如权利要求19所述的系统,其中,所述上下文旁路单元将通过以下操作来进行操作:
确定所述至少一个空间相邻块的符号上下文;
根据所述符号上下文选择当前小块的符号的多个概率模型中的熵解码概率模型;
使用所选择的概率模型来构造当前小块的符号;以及
使用所选择的概率模型来构造当前小块的完全构造的上下文。
21.如权利要求15所述的系统,其中,所述上下文旁路单元将通过从以下二者获得已经可用的上下文数据并使用这两种上下文就绪块解码当前小块的语法元素来进行操作:(1)位于具有当前小块的大块外部并且具有完全构造的上下文的至少一个上下文就绪块,以及(2)作为所述至少一个空间相邻块并且具有尚未形成为完全构造的上下文的符号上下文数据的至少一个上下文就绪块。
22.如权利要求15所述的系统,包括具有并行流水线单元的解码流水线,每个流水线单元的处理粒度为所述大块之一。
23.如权利要求15所述的系统,其中,所述完全构造的上下文包括以下各项中的至少一个:
多个可用帧间预测模式中的至少一个帧间预测模式的标识,
至少一个运动矢量,
参考块的至少一个标识,
用于帧内预测的至少一个像素数据值,或
要用于形成残差的至少一个变换系数。
24.至少一种计算机可读物品,包括多个指令,所述多个指令响应于被在计算设备上执行而使该计算设备通过以下操作来进行操作:
获得视频序列的多个帧,其中各个帧被划分为至少一个大块,所述至少一个大块被划分为像素数据的多个小块并包括当前小块;
识别与当前小块属于同一大块并将用于解码当前块的至少一个空间相邻块;
在当前小块准备好被解码时,确定将由所述至少一个空间相邻块提供的完全构造的上下文是否将被解码;以及
当所述至少一个空间相邻块的完全构造的上下文数据不可用时,使用至少一个上下文就绪块的已经可用的上下文数据来解码当前小块。
25.如权利要求24所述的物品,包括以下各项中的至少一个:
所述至少一个上下文就绪块被布置在当前小块的大块外部,并且具有形成至少一种类型的语法元素的完全构造的上下文,以及
所述至少一个上下文就绪块是具有可用上下文数据的所述至少一个空间相邻块,所述可用上下文数据包括尚未构造成具有语法元素的完全构造的上下文的熵解码符号。
26.至少一种机器可读介质,包括多个指令,所述多个指令响应于被在计算设备上执行而使该计算设备执行根据权利要求1-14中任一项所述的方法。
27.一种装置,包括用于执行根据权利要求1-14中任一项所述的方法的装置。
CN201780047638.2A 2016-08-25 2017-07-24 具有上下文解码和重构旁路的视频编码的方法和系统 Active CN109565587B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662379574P 2016-08-25 2016-08-25
US62/379,574 2016-08-25
US15/403,935 US10827186B2 (en) 2016-08-25 2017-01-11 Method and system of video coding with context decoding and reconstruction bypass
US15/403,935 2017-01-11
PCT/US2017/043553 WO2018038839A1 (en) 2016-08-25 2017-07-24 Method and system of video coding with context decoding and reconstruction bypass

Publications (2)

Publication Number Publication Date
CN109565587A true CN109565587A (zh) 2019-04-02
CN109565587B CN109565587B (zh) 2021-10-29

Family

ID=61244092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780047638.2A Active CN109565587B (zh) 2016-08-25 2017-07-24 具有上下文解码和重构旁路的视频编码的方法和系统

Country Status (4)

Country Link
US (1) US10827186B2 (zh)
CN (1) CN109565587B (zh)
DE (1) DE112017003212T5 (zh)
WO (1) WO2018038839A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112926456A (zh) * 2021-02-26 2021-06-08 格学教育科技(唐山)有限公司 一种基于状态机的识别文字逻辑重组方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018131986A1 (ko) * 2017-01-16 2018-07-19 세종대학교 산학협력단 영상의 부호화/복호화 방법 및 장치
KR102535361B1 (ko) * 2017-10-19 2023-05-24 삼성전자주식회사 머신 러닝을 사용하는 영상 부호화기 및 그것의 데이터 처리 방법
JP7193929B2 (ja) * 2018-05-15 2022-12-21 キヤノン株式会社 画像処理装置、画像処理方法、及び、プログラム
US11006150B2 (en) * 2018-09-24 2021-05-11 Tencent America LLC Method and apparatus for video coding
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
RU2751552C1 (ru) * 2019-01-16 2021-07-14 Телефонактиеболагет Лм Эрикссон (Пабл) Кодирование видео, содержащее равномерное мозаичное разделение с остатком
WO2020228762A1 (en) 2019-05-14 2020-11-19 Beijing Bytedance Network Technology Co., Ltd. Context modeling for residual coding
WO2020236723A1 (en) 2019-05-19 2020-11-26 Bytedance Inc. Transform bypass coded residual blocks in digital video
WO2020255578A1 (ja) * 2019-06-19 2020-12-24 ソニー株式会社 画像処理装置および方法
US11375196B2 (en) * 2019-09-19 2022-06-28 Tencent America LLC Method of context modeling for entropy coding of transform coefficient flags with transform skip, and coding method with the same
WO2022217417A1 (zh) * 2021-04-12 2022-10-20 Oppo广东移动通信有限公司 编解码方法、编码器、解码器以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101115201A (zh) * 2007-08-30 2008-01-30 上海交通大学 视频解码方法与解码装置
US20080240254A1 (en) * 2007-03-29 2008-10-02 James Au Parallel or pipelined macroblock processing
CN103765887A (zh) * 2011-07-01 2014-04-30 三星电子株式会社 用于使用分层数据单元进行熵编码的方法和设备、以及用于解码的方法和设备
WO2015093890A1 (ko) * 2013-12-19 2015-06-25 삼성전자 주식회사 인트라 예측을 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2016048834A1 (en) * 2014-09-26 2016-03-31 Vid Scale, Inc. Intra block copy coding with temporal block vector prediction
CN106921859A (zh) * 2017-05-05 2017-07-04 郑州云海信息技术有限公司 一种基于fpga的cabac熵编码方法与装置
CN107087202A (zh) * 2012-04-13 2017-08-22 Jvc 建伍株式会社 图像编码装置、图像编码方法、发送装置、发送方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233017B1 (en) 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
US20040190615A1 (en) * 2002-05-22 2004-09-30 Kiyofumi Abe Moving image encoding method, moving image decoding method, and data recording medium
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US20090274213A1 (en) * 2008-04-30 2009-11-05 Omnivision Technologies, Inc. Apparatus and method for computationally efficient intra prediction in a video coder
US9025661B2 (en) 2010-10-01 2015-05-05 Qualcomm Incorporated Indicating intra-prediction mode selection for video coding
US10327008B2 (en) 2010-10-13 2019-06-18 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding
JP5616984B2 (ja) * 2011-01-26 2014-10-29 株式会社日立製作所 画像復号化装置
KR20120088488A (ko) * 2011-01-31 2012-08-08 한국전자통신연구원 시간적 움직임 벡터 저장 방법 및 그 장치
US9264706B2 (en) * 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
KR102072832B1 (ko) * 2012-09-26 2020-02-03 벨로스 미디어 인터내셔널 리미티드 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및, 화상 부호화 복호 장치
WO2015032350A1 (zh) * 2013-09-07 2015-03-12 同济大学 一种使用块匹配的图像压缩方法和装置
US10091530B2 (en) * 2014-10-01 2018-10-02 Qualcomm Incorporated Pipelined intra-prediction hardware architecture for video coding
US10142652B2 (en) * 2016-05-05 2018-11-27 Google Llc Entropy coding motion vector residuals obtained using reference motion vectors
US10554977B2 (en) * 2017-02-10 2020-02-04 Intel Corporation Method and system of high throughput arithmetic entropy coding for video coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080240254A1 (en) * 2007-03-29 2008-10-02 James Au Parallel or pipelined macroblock processing
CN101115201A (zh) * 2007-08-30 2008-01-30 上海交通大学 视频解码方法与解码装置
CN103765887A (zh) * 2011-07-01 2014-04-30 三星电子株式会社 用于使用分层数据单元进行熵编码的方法和设备、以及用于解码的方法和设备
CN107087202A (zh) * 2012-04-13 2017-08-22 Jvc 建伍株式会社 图像编码装置、图像编码方法、发送装置、发送方法
WO2015093890A1 (ko) * 2013-12-19 2015-06-25 삼성전자 주식회사 인트라 예측을 수반한 비디오 부호화 방법 및 그 장치, 비디오 복호화 방법 및 그 장치
WO2016048834A1 (en) * 2014-09-26 2016-03-31 Vid Scale, Inc. Intra block copy coding with temporal block vector prediction
CN106921859A (zh) * 2017-05-05 2017-07-04 郑州云海信息技术有限公司 一种基于fpga的cabac熵编码方法与装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112926456A (zh) * 2021-02-26 2021-06-08 格学教育科技(唐山)有限公司 一种基于状态机的识别文字逻辑重组方法
CN112926456B (zh) * 2021-02-26 2022-11-15 格学教育科技(唐山)有限公司 一种基于状态机的识别文字逻辑重组方法

Also Published As

Publication number Publication date
DE112017003212T5 (de) 2019-03-28
CN109565587B (zh) 2021-10-29
US20180063534A1 (en) 2018-03-01
US10827186B2 (en) 2020-11-03
WO2018038839A1 (en) 2018-03-01

Similar Documents

Publication Publication Date Title
CN109565587A (zh) 具有上下文解码和重构旁路的视频编码的方法和系统
CN104885471B (zh) 用于下一代视频的编码/未编码的数据的内容自适应熵编码
CN104854866B (zh) 下一代视频的内容自适应、特性补偿预测
CN104737540B (zh) 用于下一代视频的视频编解码器架构
CN109792540A (zh) 利用每帧参数控制的硬件加速的视频编码方法和系统
CN103918265B (zh) 跨通道残余预测
CN106537918B (zh) 用于视频编码的运动估计的系统和方法
CN110214447A (zh) 用于360视频的解块滤波
CN104541505B (zh) 层间内部模式预测方法、设备及装置
CN110268715A (zh) 变换核选择与熵编译
CN107005701A (zh) 使用减少数量的角模式来降低帧内预测复杂度及其后续改进
CN108432253A (zh) 长期参考图片译码
US11310514B2 (en) Encoding method and apparatus using non-encoding region, block-based encoding region, and pixel-based encoding region
CN104756498B (zh) 跨层运动向量预测
CN107231557B (zh) 用于在视频编码中的高级帧内预测的递归块分区中的智能重排的编、解码方法及装置
CN104168479B (zh) 用于视频成码的切片级比特率控制
CN110741638B (zh) 使用残差块能量分布的运动矢量代码化
CN109155856A (zh) 用于视频编解码的利用近邻块模式的运动估计的方法和系统
CN107113435A (zh) 基于视频平坦性的分区模式和变换尺寸确定
CN104798373A (zh) 包括在多个独立编码流之间的共享运动估计的视频编码
CN104322068A (zh) 跨层跨通道残差预测
CN104838652A (zh) 层间运动数据继承
CN109891887A (zh) 解耦视频系数的规范和实现数据路径交织的转换缓冲器
US9794574B2 (en) Adaptive tile data size coding for video and image compression
CN110035290A (zh) 用于视频编码的解耦预测和编码结构

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