CN107113435A - 基于视频平坦性的分区模式和变换尺寸确定 - Google Patents

基于视频平坦性的分区模式和变换尺寸确定 Download PDF

Info

Publication number
CN107113435A
CN107113435A CN201580061607.3A CN201580061607A CN107113435A CN 107113435 A CN107113435 A CN 107113435A CN 201580061607 A CN201580061607 A CN 201580061607A CN 107113435 A CN107113435 A CN 107113435A
Authority
CN
China
Prior art keywords
video
frame
inter prediction
final
subregion
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
CN201580061607.3A
Other languages
English (en)
Other versions
CN107113435B (zh
Inventor
雷志军
J.坦纳
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 CN107113435A publication Critical patent/CN107113435A/zh
Application granted granted Critical
Publication of CN107113435B publication Critical patent/CN107113435B/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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

讨论了与确定用于视频编码的分区模式和变换尺寸有关的技术。这样的技术可以包括确定视频帧的一部分是平坦的并且基于该视频帧的该部分是平坦的而旁路针对视频帧的该部分的帧间预测分区检查和/或变换尺寸检查。

Description

基于视频平坦性的分区模式和变换尺寸确定
优先权的要求
本申请要求2014年12月11日提交的题为“PARTITION MODE AND TRANSFORM SIZEDETERMINATION BASED ON FLATNESS OF VIDEO(基于视频平坦性的分区模式和变换尺寸确定)”的美国专利申请序列号14/567,162的优先权,其全部内容通过引用并入本文。
背景技术
视频编码器压缩视频信息,使得更多信息可以在给定带宽上进行发送或以给定的文件尺寸进行保存。可以将压缩的信号或文件发射到接收机或视频解码器,其可以对信号或文件进行解码或解压缩以用于向用户显示。这样的视频编码器-解码器系统可以遵循格式或标准。例如,视频压缩标准包括H.264/MPEG-4高级视频编码(AVC)标准、高效率视频编码(HEVC)标准和VP9标准。这样的标准可以包括基本功能模块,诸如帧内/帧间预测、变换、量化、环路滤波和熵编码。
在这样的先进视频编码标准中,16×16宏块(在H.264中)或高达64×64个编码单元(在HEVC中)可以被分成更小的分区单元并进行编码。为了支持所有可能的分区尺寸并找到最佳组合,视频编码器可以评估所有可能的划分选项的编码成本,导致极高的计算复杂度。类似地,对于这样的高级视频编码标准,每个宏块或编码单元可以使用N×N或更小的变换尺寸,其中N是编码单元尺寸。因此,除了由于确定每个分区尺寸引起的复杂度之外,变换尺寸确定可以进一步增加可能的判定的数量并因此进一步增加计算复杂度。
这样的编码技术可以提供效率,但是正如所讨论的那样,计算复杂度仍然很高。因此,现有技术在保持压缩效率的同时没有提供降低的计算复杂度。这样的问题由于压缩高质量视频的期望变得更加普遍而可能变得关键。
附图说明
本文所述的材料通过示例的方式而不是通过附图中的限制的方式进行了说明。为了说明的简单和清楚,附图中所图示的元件不一定按比例绘制。例如,为了清楚起见,相对于其它元件,某些元件的尺寸可能被放大。此外,在认为适当的情况下,在附图中重复参考标签以指示相应或类似的元件。在附图中:
图1是图示了用于包括帧间预测分区检查旁路的视频编码的示例过程的流程图;
图2是图示了用于包括帧间预测分区检查旁路和修改的变换尺寸确定的视频编码的示例过程的流程图;
图3图示了示例宏块和示例宏块分区;
图4图示了示例编码树单元和示例编码单元;
图5图示了示例编码树单元到示例候选编码单元的示例四叉树划分;
图6图示了示例编码器的框图;
图7图示了示例平坦性检查模块的框图;
图8图示了示例性帧间预测模块的框图;
图9图示了示例编码比特流;
图10是图示了用于视频编码的示例过程的流程图;
图11是用于视频编码的示例系统的说明性图;
图12是示例系统的说明性图;和
图13图示了全部根据本公开的至少一些实现进行布置的示例小形状因素设备。
具体实施方式
现在参考附图描述一个或多个实施例或实现。尽管讨论了具体的配置和布置,但是应当理解,这样做仅仅是为了说明的目的。相关技术领域的技术人员将认识到,在不脱离本说明书的精神和范围的情况下,可以采用其它配置和布置。对于相关领域的技术人员显而易见的是,本文描述的技术和/或布置也可以用于除了本文所描述的系统和应用以外的各种其他系统和应用中。
虽然以下描述阐述了可以显现在诸如例如片上系统(SoC)架构之类的架构中的各种实现,但是本文描述的技术和/或布置的实现不限于特定的架构和/或计算系统,并且可以由用于类似目的的任何架构和/或计算系统来实现。例如,采用例如多个集成电路(IC)芯片和/或封装的各种架构和/或诸如机顶盒、智能电话等的各种计算设备和/或消费电子(CE)设备可以实现本文描述的技术和/或布置。此外,虽然下面的描述可能阐述了许多具体细节,诸如系统组件的逻辑实现、类型和相互关系、逻辑划分/集成选择等,但是可以在没有这些具体细节的情况下实践所要求保护的主题。在其他情况下,可能不详细地示出诸如例如控制结构和完整的软件指令序列之类的某些材料,以便不模糊本文公开的材料。
本文公开的材料可以以硬件、固件、软件或其任何组合来实现。本文公开的材料还可以被实现为存储在机器可读介质上的指令,其可以被一个或多个处理器读取和执行。机器可读介质可以包括用于以机器(例如,计算设备)可读的形式存储或发射信息的任何介质和/或机制。例如,机器可读介质可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电气、光学、声学或其他形式的传播信号(例如载波、红外信号、数字信号等)以及其他。
说明书中对“一个实现”、“实现”、“示例实现”等的引用指示所描述的实现可以包括特定特征、结构或特性,但是每个实施例可以不一定包括特定特征、结构或特性。此外,这样的短语不一定指代相同的实现。另外,当结合实施例描述特定特征、结构或特性时,主张结合其他实现--无论是否本文被明确描述--来达成这样的特征、结构或特性是在本领域技术人员的知识范围内的。
本文中描述了与视频编码相关的、并且尤其是与旁路针对视频帧的部分的变换尺寸检查和/或帧间预测分区检查相关的方法、设备、装置、计算平台和制品。
如上所述,在高级视频编码标准的实现中,视频编码器可以评估针对视频帧的部分(例如,宏块或编码单元等)的所有可能的分区尺寸和/或所有可能的变换尺寸的编码成本。这样的技术可以以高计算复杂度为代价来提供编码效率(例如,更大的压缩)。如本文所讨论的,基于对视频帧的部分是平坦还是不平坦的确定,可以针对视频帧的部分旁路帧间预测分区检查和/或变换尺寸检查。例如,如果该部分是平坦的,则可以旁路帧间预测分区检查和/或变换尺寸检查,从而以最小或不损失编码效率和质量来节省计算复杂度。此外,如果该部分不平坦,则在一些示例中可以旁路变换尺寸检查。
例如,在一些实施例中,可以基于视频帧的一部分的平坦性检查做出关于视频帧的该部分是平坦的还是不平坦的确定。例如,平坦性检查可以基于视频帧的该部分的均匀性,如本文进一步所讨论的。如果视频帧的该部分是平坦的,则可以旁路针对该视频帧的该部分的帧间预测分区检查。在这样的示例中,可以使用基于初始运动矢量的帧间预测编码成本和基于整数运动估计和分数细化的初始帧间预测分区选择(但不执行帧间预测分区检查)来执行最终模式判定,如本文所讨论的。例如,最终模式判定可以基于帧间预测编码成本、帧内预测编码成本和跳过模式编码成本。基于最终模式判定,可以将视频帧的该部分编码成比特流,诸如符合标准的比特流。
此外,在一些实施例中,基于如经由平坦性检查确定是平坦的视频帧的部分,可以旁路变换尺寸检查,并且可以将针对视频帧的该部分的变换尺寸设置为最大变换尺寸。例如,最大变换尺寸可以与视频帧的该部分尺寸相同或者可以是基于所实现的编解码器的最大可用变换尺寸。
在其中视频帧的部分被确定为不平坦(或者当视频帧的另一部分被确定为不平坦时)的示例中,可以针对不平坦部分执行帧间预测分区检查,以基于经由帧间预测分区检查所确定的最终运动矢量和最终帧间预测分区选择来确定帧间预测编码成本。此外,可以旁路变换尺寸检查,并且可以将针对视频帧的该部分的变换尺寸设置为最小变换尺寸。例如,最小变换尺寸可以是基于所实现的编解码器的最小可用变换尺寸。
这样的分区模式、分区尺寸和变换尺寸判定技术可以显著降低编码器处的计算复杂度。例如,旁路帧间预测分区检查可以避免多个硬件调用来评估不同分区选项或选择的编码成本。旁路这样的评估可以提高性能并降低功耗。
图1是图示出根据本公开的至少一些实现而布置的用于包括帧间预测分区检查旁路的视频编码的示例过程100的流程图。过程100可以包括如图1中所图示的一个或多个操作101-109。过程100可以由设备(例如,如本文所讨论的编码器600)执行以确定针对视频帧的一部分的最终模式并且基于最终模式判定对该部分进行编码。可以在编码块或单元级处执行过程100,并且对于任意数量的编码块或单元可以重复过程100。
例如,在H.264/MPEG-4高级视频编码(AVC)标准的上下文中,AVC标准定义宏块分区以指代共享诸如运动矢量、参考帧索引、参考预测模式等的公共预测模式的宏块中的像素块。
图3图示了根据本公开的至少一些实现而布置的示例宏块和示例宏块分区。如图3所示,在AVC的上下文中,宏块301可以是16×16像素。同样如所示,宏块301可以进行划分以用于编码成宏块分区302、303、304。例如,宏块分区302可以具有两个宏块分区,其每一个具有16×8像素的尺寸,宏块分区303可以具有四个宏块分区,其每一个具有8×8像素的尺寸,并且宏块分区304可以具有两个宏块分区,其每一个具有8×16像素的尺寸,如所示。
此外,宏块分区303的四个分区中的每一个分区可以进一步划分成宏分区305、306、307。在图3的示例中,为了清楚起见,仅示出了一个进一步的划分,然而,宏块分区303的四个分区中的每一个分区可以是关于宏块分区305、306、307所图示的进一步分区。如所示,宏块分区305可以具有两个宏块分区,其每一个具有8×4像素的尺寸,宏块分区306可以具有四个宏块分区,其每一个具有4×4像素的尺寸,并且宏块分区307可以具有两个宏块分区,其每一个具有4×8像素的尺寸。
在AVC的上下文中,可以将具有大于8×8像素的尺寸的宏块分区描述为主要形状,并且可以将具有小于8×8像素的尺寸的宏块分区描述为较小的形状。如所讨论的,这样的宏块分区可以是共享用于编码的诸如运动矢量、参考帧索引、参考预测模式等的公共预测模式的像素块。
此外,在高效率视频编码(HEVC)的上下文中,HEVC标准定义了可以划分成编码单元(CU)的针对图片(例如,视频序列的视频帧)的编码树单元(CTU),所述编码单元采用具有可变尺寸的矩形块的形式。编码树单元的尺寸可以由编码器选择,并且通常可以具有64×64像素的尺寸。
图4图示了根据本公开的至少一些实现所布置的示例编码树单元和示例编码单元。如图4中所示,在HEVC的上下文中,编码树单元400可以是64×64像素,其可以定义最大编码单元(LCU)。同样如所示,编码树单元400可以被划分以用于编码成编码单元401,其在图4中被标记为CU0-CU15。此外,编码单元0(CU0)被标记,其尺寸为32×32像素,编码单元1(CU1)被标记,其尺寸为16×16像素,并且编码单元5(CU5)被标记,其尺寸为8×8像素。在图4的示例中,具有相同尺寸的编码单元与相同尺寸的块一起被示出,由此,CU15为32×32像素,CU2、CU3、CU4、CU9、CU10为16×16像素,并且CU6、CU7、CU8、CU11、CU12、CU13和CU14为8×8像素。
图4图示了包括编码单元401的示例划分选择。然而,编码树单元400可以被划分为任何编码单元401。例如,编码树单元400可以基于四叉树语法或类似的数据结构而进行划分。
图5图示了根据本公开的至少一些实现而布置的示例编码树单元到示例候选编码单元的示例四叉树划分。如图5中所示,可以提供语法以将编码树单元或最大编码单元划分成用于评估的编码单元。例如,在第一或根级501处,可以提供尺寸为64×64的编码单元用于评估。在第一级处的编码单元可以被划分成四个象限,并且每个象限(例如尺寸为32×32)可以在第二级502处作为用于评估的编码单元(例如,4个编码单元)而被提供。在第二级502处的每个编码单元可被划分成四个象限,并且每个象限(例如,尺寸为16×16)可以在第三级503处作为用于评估的编码单元(例如,16个编码单元)而被提供。可以针对第四级(具有64个尺寸为8×8的编码单元;未示出)和第五级(具有256个尺寸为4×4的编码单元;未示出)等等单元重复这样的过程,达到最小可允许编码单元尺寸。尽管关于四叉树语法进行了讨论,但是可以使用任何合适的语法或划分技术。
返回到图1,过程100可以开始于操作101,“平坦性检查”,其中可以针对视频帧的一部分执行平坦性检查,以确定该部分是平坦的还是不平坦的。例如,可以在宏块、编码树单元或最大编码单元上或针对其执行操作101,如本文所讨论的。在其他示例中,可以在视频帧的任何编码块上或针对其执行操作101。在一些示例中,可以在整个视频帧上执行操作101,并且可以将结果存储在虑及了关于视频帧的一部分是否是平坦的确定的数据结构中。例如,可以存储平坦或不平坦的比特,所述比特针对视频帧的预定义分段等指示各部分是平坦的还是不平坦的。在其他示例中,大于所讨论的部分的视频帧的区域可以被定义为平坦或不平坦,并且可以关于特定部分(例如,宏块或编码单元)是否在视频帧的平坦或非平坦区域内做出确定。
操作101可以以硬件、软件或其组合来执行,并且操作101可以使用任何可以确定视频帧的部分是平坦还是不平坦的一个或多个合适的技术。例如,可以评估视频帧的该部分的均匀性以确定其是平坦的还是不平坦的。在示例中,可以测量视频帧的该部分的像素或像素值(例如亮度和/或色度值)的均匀性并将其与阈值进行比较。
例如,视频帧的该部分的像素方差可以与阈值进行比较,以确定视频帧的该部分是平坦的还是不平坦的。在示例中,如果视频帧的该部分的像素方差小于阈值,则视频帧的该部分是平坦的,并且如果像素方差大于阈值,则视频帧的该部分是不平坦的。
在另一示例中,可以评估视频帧的该部分的全部或一些像素值以确定它们是否在视频帧的该部分的像素值的平均值或中值的阈值内。例如,可以为视频帧的该部分确定像素值的平均值或中值等,并且如果像素的每个或某一百分比或选择像素在平均值或中值的阈值内,则视频帧的该部分是平坦的,并且如果不是,视频帧的该部分是不平坦的。
在另一示例中,视频帧的该部分的像素值的范围可以与阈值进行比较,以确定视频帧的该部分是否是平坦的。例如,可以确定像素值的范围(并且在一些示例中可以丢弃异常值),并且该范围可以与阈值进行比较,使得如果该范围小于该阈值,则视频帧的该部分是平坦的,并且如果该范围大于该阈值,则视频帧的该部分是不平坦的。
在一些示例中,可以使用单个测试或比较来确定视频帧的部分是平坦的还是不平坦的。在其他示例中,可以组合两个或更多个比较测试(例如,经由加权平均或在级联的测试中)来确定视频帧的该部分是平坦的还是不平坦的。此外,所讨论的阈值可以是基于被评估的视频帧或视频段的内容、执行编码的设备的功率管理设置等的预定阈值或可变阈值。
如所示,过程100可以在操作102“帧内预测检查”处继续,其中可以执行针对视频帧的该部分的帧内预测检查。可以使用任何合适的一个或多个技术来执行帧内预测检查。例如,帧内预测检查可以针对视频帧的该部分提供最佳的帧内预测模式和相关联的帧内预测编码成本。在一些示例中,帧内预测检查可以包括对视频帧的该部分可用的所有候选帧内预测模式的评估,以确定对于视频帧的该部分具有最小失真的帧内预测模式。
过程100可以在操作103“跳过检查”处继续,其中可以针对视频帧的该部分执行跳过检查。可以使用任何合适的一个或多个技术来执行跳过检查。例如,跳过检查可以针对视频帧的该部分提供与针对视频帧的该部分的跳过模式相关联的跳过检查编码成本。在跳过模式中,解码器可以使用预定技术基于诸如与视频帧的(先前解码的)相邻部分相关联的三个可用运动矢量的中值之类的在解码器处可用的数据来确定运动矢量。此外,如所讨论的,可以确定针对视频帧的该部分的跳过模式编码成本。
过程100可以在操作104“整数运动估计”处继续,其中可以针对视频帧的该部分执行整数运动估计。可以使用任何合适的一个或多个技术来执行整数运动估计,并且可以提供针对视频帧的该部分的最佳运动矢量和帧间预测分区选择的整数级估计。例如,整数运动估计可以在针对视频帧的部分的候选分区的参考帧内的候选运动矢量中搜索最佳整数级运动矢量。整数运动估计可以检查任何数量的候选运动矢量。在一些示例中,在评估视频帧的该部分的候选分区时,可以应用树修剪方法。
例如,参考图3,如果确定作为宏块分区302(例如,作为两个16×8分区)的编码宏块301的成本小于作为宏块分区303(例如,作为四个8×8分区)的编码宏块301的成本,那么宏块301将不会被划分成宏块分区305-307(例如,这些宏块分区将不被评估)。此外,参考图5,如果将来自第一级501的最左边的路径确定为在第二级502处具有最低成本,则可以仅评估从第二级502到第三级503的四条最左边的路径,并且可以跳过从第二级502到第三级503的十二条其他路径。这样的技术可以提供树修剪方法,因为在操作104处可以不评估树结构的各个分支。
过程100可以在操作105“分数细化”处继续,其中可以基于最佳整数运动矢量和帧间预测分区选择来执行分数细化。可以使用任何合适的一个或多个技术来执行分数细化,并且可以提供针对视频帧的该部分的最佳运动矢量和帧间预测分区选择的分数估计。例如,运动矢量和帧间预测分区选择可以被描述为如本文所述的初始运动矢量和初始帧间预测分区选择。在示例中,分数细化可以包括基于在操作104处确定的估计运动矢量和帧间预测分区选择的分数候选运动矢量的内插分数(例如,以半像素或四分之一像素精度)评估。
例如,操作104和105可以一起工作以确定针对视频帧的该部分的初始运动矢量和初始帧间预测分区选择。例如,初始运动矢量和初始帧间预测分区选择可以与用于基于初始运动矢量和初始帧间预测分区选择进行编码的成本相关联。
如所示,过程100可以在判定操作106“平坦”处继续,其中可以关于视频帧的部分是平坦的还是不平坦的做出确定。可以基于在操作101中做出的确定,使用在操作101处确定的数据和所讨论的阈值比较等来做出这样的确定。
如图1中所示,如果视频帧的该部分被确定为不平坦,则过程100可以在操作107“分区检查”处继续,其中可以执行针对视频帧的该部分的帧间预测分区检查。可以使用任何合适的一个或多个技术来执行分区检查,并且可以针对视频帧的该部分生成最终运动矢量和最终帧间预测分区选择。例如,如关于操作104所讨论的,可以在整数运动估计和分数细化操作处实现树修剪方法,使得可以跳过针对视频帧的该部分的树结构的一部分(以及与其相关联的评估)。在操作107处,可以基于在操作105处生成的初始运动矢量(和可选地,初始运动矢量的分数重复)来评估树结构的这种被跳过的部分和这种被跳过的候选分区选项。例如,操作107可以包括针对视频帧的该部分对所有剩余分区选项进行评估的一个完整分区选项评估技术。
例如,帧间预测分区检查可以基于来自候选分区选项和可选分数重复的最小成本或失真来确定针对视频帧的该部分的最终运动矢量和最终帧间预测分区选择。在一些实施例中,这样的帧间预测分区检查可以包括对硬件视频运动估计引擎的调用,以评估许多候选分区选项和可选的分数重复。
返回到判定操作106,如果确定视频帧的该部分是平坦的,则过程100可以旁路操作107(例如,可以基于视频帧的该部分是平坦的而旁路帧间预测分区检查)。这样的旁路处理可以有利地降低计算复杂度,因为可以消除与帧间预测分区检查相关联的所描述的硬件调用等。
如所示,处理可以从操作107(如果视频帧的该部分是不平坦的)或判定操作106(如果视频帧的该部分是平坦的)继续至操作108“最终模式判定”,其中可以针对视频帧的该部分做出最终模式判定。可以使用任何合适的一个或多个技术来进行最终模式判定。例如,可以基于多个候选或可用编码模式或类型的编码的最小成本来进行最终模式判定。在一些示例中,最终模式判定可以包括速率失真优化。
例如,如果视频帧的该部分是不平坦的,则帧内预测模式编码成本(例如,在操作102处所确定的与最佳帧内编码模式相关联的最小帧内预测编码成本)、跳过模式编码成本(例如,在操作103处所确定的与经由跳过模式进行编码相关联的编码成本)以及与针对视频帧的该部分的最终运动矢量和最终帧间预测分区选择相关联的帧间预测模式编码成本(例如,在操作107处所确定的与最终运动矢量和最终帧间预测分区选择相关联的编码成本)可以是可用的。在操作108处,可以比较编码成本,并且可以选择具有最低成本的编码候选以用于对视频帧的该部分进行编码。
如果视频帧的该部分是平坦的,则帧内预测模式编码成本(例如,在操作102处所确定的与最佳帧内编码模式相关联的最小帧内预测编码成本)、跳过模式编码成本(例如,在操作103处所确定的与经由跳过模式进行编码相关联的编码成本)以及与针对该视频帧的该部分的初始运动矢量和初始帧间预测分区选择相关联的帧间预测模式编码成本(例如在操作105处所确定的与初始运动矢量和初始帧间预测分区选择相关联的编码成本)可以是可用的。在操作108处,可以比较编码成本,并且可以选择具有最低成本的编码候选以用于对视频帧的该部分进行编码。
如上所述,在操作108处,对于平坦部分,初始运动矢量和初始帧间预测分区选择可以被用于最终模式判定或选择,并且可以旁路或跳过最终运动矢量和最终帧间预测分区选择的确定。这样的处理可以极大地降低计算复杂度,因为不评估与本文所讨论的树结构的先前修剪的部分相关联的分区候选。
过程100可以在操作109“编码”处继续,其中基于在操作108处所确定的最终模式判定,可以将视频帧的该部分编码成比特流。例如,比特流可以是符合标准(例如,AVC、HEVC、V9等)的比特流。例如,可以对与视频帧的该部分相关联的残差进行量化和变换,并且可以将其他数据(例如,如果可应用的话,模式选择数据运、运动矢量残差等)熵编码成比特流。
如所讨论的,过程100可以基于针对被确定为平坦的视频帧的部分旁路帧间预测分区检查来提供降低的计算复杂度。在一些实施例中,对于视频帧的平坦部分,还可以跳过变换尺寸检查,并且可以基于视频的该部分是平坦的而将针对该部分的变换尺寸设置为最大变换尺寸。在其他实施例中,对于视频帧的不平坦部分,可以实现变换尺寸检查,或者可以基于视频的该部分是不平坦的而将针对该部分的变换尺寸设置为最小变换尺寸。
图2是图示了根据本公开的至少一些实现所布置的用于视频编码的示例过程200的流程图,其包括帧间预测分区检查旁路和修改的变换尺寸确定。过程200可以包括如图2中所图示的一个或多个操作101-109、201和202。过程200可以由设备(例如,如本文所讨论的编码器600)来执行以确定针对视频帧的一部分的最终模式和(一个或多个)变换尺寸,并且基于最终模式判定和(一个或多个)变换尺寸来对该部分进行编码。可以以编码块或单元级来执行过程200,并且对于任何数量的编码块或单元可以重复过程200。
例如,过程100可以对宏块、编码树单元、最大编码单元、编码单元、编码块或视频帧的任何其它部分进行操作,如本文所讨论的。如所示,过程200可以在操作101处开始,并且继续通过操作102、103、104、105和判定操作106,如本文关于图1所讨论的。如所讨论的,操作101可以提供指示视频帧的该部分是平坦的还是不平坦的确定或数据结构,操作102可以提供针对视频帧的该部分的最佳帧内预测模式和相关联的帧内预测成本,操作103可以提供针对视频帧的该部分的与跳过模式相关联的跳过检查成本,操作104可以提供针对视频帧的该部分的最佳运动矢量和帧间预测分区选择的整数级估计,并且操作105可以以分数精度提供针对视频帧的该部分的初始运动矢量和初始帧间预测分区选择。
如关于图1所讨论的,在判定操作106“平坦”处,可以关于视频帧的该部分是平坦还是不平坦做出确定。可以基于在操作101处做出的确定,使用在操作101处所确定的数据和所讨论的阈值比较等来做出这样的确定。
如图2中所示,如果视频帧的该部分被确定为不平坦,则过程200可以在操作107“分区检查”处继续,其中可以针对视频帧的该部分执行帧间预测分区检查。如所讨论的,可以使用任何合适的一个或多个技术来执行分区检查,并且可以针对视频帧的该部分生成最终运动矢量和最终帧间预测分区选择。例如,在操作107处,可以基于在操作105处生成的初始运动矢量来评估与在操作104处跳过的树结构的部分相关联的候选分区选项。此外,在操作107处,可以评估基于初始运动矢量的分数重复。可以选择与最小编码成本相关联的候选运动矢量和候选帧间预测分区选择作为针对视频帧的该部分的最终运动矢量和最终帧间预测分区选择。例如,针对视频帧的该部分的最终运动矢量和最终帧间预测分区选择可以是针对在操作108处确定的最终模式判定的帧间预测候选。
过程200可以从操作107继续至操作201 “变换尺寸检查或将变换尺寸设置为最小”,其中可以针对视频帧的该部分执行变换尺寸检查,或者可以将变换尺寸设置为针对视频帧的该部分的最小尺寸。
在一些实施例中,可以针对视频帧的该部分执行变换尺寸检查。可以使用任何合适的一个或多个技术来执行变换尺寸检查。例如,可以通过针对视频帧的该部分评估所有可用变换尺寸来执行变换尺寸检查。例如,如果视频帧的给定部分是M×M像素,则可以为了最低编码成本来评估M/2×M/2,M/4×M4等等的变换尺寸。在一些示例中,编码器可以首先选择视频帧的该部分的编码划分,并且然后基于编码划分来确定变换尺寸。
在其他实施例中,可以旁路完整变换尺寸检查,并且可以将变换尺寸设置为最小变换尺寸。例如,最小变换尺寸可以基于由所实现的编解码器所允许的最小变换尺寸。在一些示例中,最小变换尺寸可以是4×4变换。变换尺寸检查的这种旁路和将变换尺寸设置为最小变换尺寸可以降低计算复杂度并节省功率,如本文所讨论的。
返回到判定操作106,如果视频帧的该部分被确定为平坦,则过程100可以旁路操作107和201(例如,可以基于视频帧的部分是平坦的而旁路帧间预测分区检查,并且可以基于视频帧的该部分是平坦的而旁路变换尺寸检查),并且在操作202“将变换尺寸设置为最大”处继续,其中针对视频帧的该部分的变换尺寸可以被设置为最大变换尺寸。例如,最大变换尺寸可以是视频帧的该部分的尺寸,由所实现的编解码器所允许的最大变换尺寸等。在AVC的上下文中,最大变换尺寸可以是8×8,并且在HEVC的上下文中,最大变换尺寸可以是32×32,然而,可以使用任何合适的最大变换尺寸。
如所讨论的,如果视频帧的该部分被确定为平坦,则过程200可以旁路操作107和201。此外,如果视频帧的该部分被确定为平坦,则过程200可以自动地将针对视频帧的该部分的变换尺寸选择为最大变换尺寸。这种旁路处理可以在只是可忽略地降低编码质量的同时有利地降低计算复杂度,因为可以消除诸如帧间预测分区检查和/或变换尺寸检查之类的计算密集型操作。
如所示,处理可以从操作201(如果视频帧的该部分是不平坦的)或判定操作202(如果视频帧的该部分是平坦的)继续至操作108“最终模式判定”,其中可以针对视频帧的该部分做出最终模式判定。可以使用任何合适的一个或多个技术来进行最终模式判定。例如,可以基于多个候选或可用编码模式或类型的编码的最小成本来进行最终模式判定。在一些示例中,最终模式判定可以包括速率失真优化。
如关于图1所讨论的,如果视频帧的该部分是不平坦的,则帧内预测模式编码成本、跳过模式编码成本、以及针对视频帧的该部分的与最终运动矢量和最终帧间预测分区选择相关联的帧间预测模式编码成本(例如,在操作107处所确定的与最终运动矢量以及最终帧间预测分区选择相关联的编码成本)可用于最终模式判定。如果视频帧的该部分是不平坦的,则帧内预测模式编码成本、跳过模式编码成本和与针对该频帧的该部分的初始运动矢量和初始帧间预测分区选择相关联的帧间预测模式编码成本(例如,在操作105处所确定的与初始运动矢量和初始帧间预测分区选择相关联的编码成本)用于最终模式判定。在操作108处,可以比较编码成本,并且可以选择具有最低成本的编码候选以用于对视频帧的该部分进行编码。
过程100可以在操作109“编码”处继续,其中基于在操作108处所确定的最终模式判定和在操作202或操作201处所选择的(一个或多个)变换尺寸,可以将视频帧的该部分编码成比特流。例如,比特流可以是符合标准(例如,AVC,HEVC,V9等)的比特流。例如,可以基于在操作202或操作201处所选择的(一个或多个)变换尺寸来对与视频帧的该部分相关联的残差进行量化和变换。所得到的变换系数和其他数据(例如,如果可应用的话,模式选择数据、运动矢量残差、变换尺寸指示符等)可以被熵编码成比特流。
关于过程100和过程200讨论的技术可以基于针对被确定为平坦的视频帧的部分旁路帧间预测分区检查和/或变换尺寸检查来提供降低的计算复杂度。在一些实现中,这样的技术可以在视频运动估计引擎或类似运动估计电路上以可忽略的质量影响而节省高达40%的工作负载。此外,随着高清晰度、超高清晰度和4K显示器变得更加普遍,本文讨论的技术可以提供更高的性能节省,因为与这样的显示技术相关联的视频帧具有更多平坦的区间以及因此更多平坦的部分、宏块、编码单元等。
图6图示了根据本公开的至少一些实现而布置的示例编码器600的框图。如所示,编码器600可以包括平坦性检查模块602、编码控制器603、变换和量化模块604、逆量化和变换模块605、解块和滤波模块606、图片缓冲器607、帧内预测模块608、帧间预测模块609、模式选择模块613和熵编码器610。编码器600可以包括附加模块和/或互连,为了清楚呈现的缘故而未示出。
如本文所讨论的,可以对视频帧的部分进行平坦性检查。这种平坦性检查可以用于旁路帧间预测检查和/或变换尺寸检查。如图6中所示,编码器600可以接收输入视频601。输入视频601可以是任何合适的格式,并且可以经由诸如视频捕获或经由存储器等的任何合适的技术来接收。此外,可以处理(未示出)输入视频601以确定视频帧的部分(例如,宏块、编码树单元、最大编码单元、编码单元、编码块或视频帧的任何其他部分)。如所示,可以将输入视频601提供给平坦性检查模块602、编码控制器603、帧内预测模块608和帧间预测模块609。与帧内预测模块608或帧间预测模块609的耦合可以经由模式选择模块613来进行,如所示。例如,模式选择模块613可以针对输入视频601的视频帧的部分做出最终模式判定。
平坦性检查模块602可以确定视频帧的一部分(例如,宏块、编码树单元、最大编码单元、编码单元、编码块等)是平坦还是不平坦。平坦性检查模块602可以执行关于操作101和判定操作106所讨论的任何平坦性检查,以确定视频帧的一部分是平坦还是不平坦。例如,平坦性检查模块602可以实现操作101和判定操作106中的一个或两个。如所示,平坦性检查模块602可以基于平坦性确定将分区检查指示符(PCI)621和/或变换尺寸检查指示符(TSCI)622提供给帧间预测模块609。
例如,如果视频帧的部分是平坦的,则平坦性检查模块602可以针对视频帧的该部分提供指示不执行分区检查的分区检查指示符621(例如,要旁路分区检查)。如果视频帧的部分是不平坦的,则平坦性检查模块602可以提供指示针对视频帧的该部分执行分区检查的分区检查指示符621。
此外,如果视频帧的该部分是平坦的,则平坦性检查模块602可以提供指示不执行变换检查的变换尺寸检查指示符622,并且将变换尺寸设置为最大变换尺寸。如果视频帧的该部分是不平坦的,则平坦性检查模块602可以提供变换尺寸检查指示符622,其在一些示例中指示将执行变换尺寸检查,或在其他示例中指示将变换尺寸设置为最小变换尺寸。
帧间预测模块609可以至少部分地基于分区检查指示符621和/或变换尺寸检查指示符622来针对输入视频601的视频帧执行运动估计和/或运动补偿。
图7图示了根据本公开的至少一些实现所布置的示例平坦性检查模块602的框图。如图7中所示,平坦性检查模块602可以包括平坦性指示符生成模块701、阈值模块702、比较器703和控制器704。如所示,平坦性检查模块602可以经由平坦性指示符生成模块701接收输入视频601。基于输入视频601,平坦性指示符生成模块701可以为视频帧的一部分生成一个或多个指示符,并且平坦性指示符生成模块701可以向比较器703提供这样的(一个或多个)指示符。例如,(一个或多个)指示符可以包括针对该部分的像素方差、针对该部分的像素值的范围、像素值的中值、像素值的平均值等。在一些示例中,平坦性指示符生成模块701可以在控制器704的控制下生成一个或多个指示符,使得(一个或多个)特定指示符可以用于基于系统参数、用户设置等的平坦性确定。
此外,阈值模块702可以向比较器703提供一个或多个阈值。例如,阈值模块702可以经由存储器(例如,高速缓存存储器)来实现,并且可以存储一个或多个阈值。在一些示例中,阈值模块702可以在控制器704的控制下提供一个或多个指示符,如关于平坦性指示符生成模块701所讨论的。同样如所示,比较器703可以接收(一个或多个)指示符和(一个或多个)阈值,并且比较器703可以针对视频帧的该部分提供一个平坦/不平坦的指示符705给控制器704。例如,比较器703可以基于将一个或多个指示符与一个或多个阈值进行比较来生成平坦/不平坦指示符705。在示例中,视频帧的该部分的平坦性可以基于比较器703比较像素方差与阈值、确定所有像素值是否在像素值的平均值的第二阈值内、确定所有像素值是否在像素值的中值的第三阈值内、像素值的范围与第四阈值的比较、或其组合。
如所示,控制器704可以接收平坦/不平坦指示符705,并且控制器704可以提供分区检查指示符621和/或变换尺寸检查指示符622。例如,基于平坦/不平坦指示符705和/或其他控制参数或设置等,控制器可以提供分区检查指示符621和/或变换尺寸检查指示符622。在其中平坦/不平坦指示符705指示视频帧的部分是平坦的示例中,控制器704可以提供指示将要旁路分区检查的分区检查指示符621,以及指示将要跳过变换尺寸检查并将要将变换尺寸设置为最大变换尺寸的变换尺寸检查指示符622。在其中平坦/不平坦指示符705指示视频帧的部分不平坦的示例中,控制器704可以提供指示将要实现分区检查的分区检查指示符621,以及指示将要实现变换尺寸检查或者将要将变换尺寸设置为最小变换尺寸的变换尺寸检查指示符622。可以基于用户设置来预先设置、或者基于编码器600的特性(诸如处理能力、电池寿命、电源管理设置等)来确定实现变换尺寸检查或将变换尺寸设置为最小变换尺寸之间的判定。
如所讨论的,可以将分区检查指示符621和/或变换尺寸检查指示符622提供给帧间预测模块609,以至少部分地控制视频帧的该部分的帧间预测。
图8图示了根据本公开的至少一些实现而布置的示例帧间预测模块609的框图。如图8中所示,帧间预测模块609可以包括跳过检查模块801、整数运动估计模块802、分数细化模块803、分区检查模块804、变换尺寸检查模块805和变换尺寸设置模块806。如所示,帧间预测模块609可以接收输入视频601、分区检查指示符621和/或变换尺寸检查指示符622。
帧间预测模块609可以针对经由帧间预测技术编码的输入视频601的视频帧执行运动估计和/或运动补偿。例如,帧间预测模块609可以执行经由跳过检查模块801的跳过检查操作(例如,如关于操作103所讨论的)、经由整数运动估计模块802的整数运动估计(例如,如关于操作104所讨论的)以及经由分数细化模块803的分数细化(例如,如关于操作105所讨论的)。
此外,分区检查(例如,如关于操作107所讨论的)可以由分区检查模块804部分地在分区检查指示符621的控制下执行。例如,当分区检查指示符621指示要执行分区检查(例如,视频帧的当前部分是不平坦的)时,分区检查模块804可以执行分区检查,并且当分区检查指示符621指示要旁路分区检查(例如,视频帧的当前部分是平坦的)时,分区检查模块804可以不执行分区检查(例如,可以旁路分区检查)。
此外,变换尺寸检查(例如,如果启用变换尺寸检查,则如关于操作201所讨论的)可以经由变换尺寸检查模块805部分地在变换尺寸检查指示符622的控制下执行。例如,在一些实施例中,当变换尺寸检查指示符622指示要执行变换尺寸检查(例如,视频帧的当前部分是不平坦的)时,变换尺寸检查模块805可以执行变换尺寸检查,并且当变换尺寸检查指示符622指示要旁路变换尺寸检查(例如,视频帧的当前部分是平坦的)时,分区检查模块804可以不执行变换尺寸检查(例如,可以旁路变换尺寸检查)。在其他实施例中,可以不针对视频帧的平坦部分或不平坦部分执行变换尺寸检查。在这样的实施例中,可以不实现变换尺寸检查模块805。
如也经由图8所示,变换尺寸设置模块806可以基于变换尺寸检查指示符622针对视频帧的该部分设置变换尺寸。例如,如果变换尺寸检查指示符622指示变换尺寸要被设置为最大值(例如,视频帧的当前部分是平坦的)或最小值(例如,视频帧的当前部分是不平坦的,并且设置了变换尺寸检查旁路),则变换尺寸设置模块806可以分别地将变换尺寸设置为最大变换尺寸或最小变换尺寸。
此外,帧间预测模块609可以提供运动矢量、分区选择、变换尺寸和成本数据807,其可以包括运动矢量(初始或最终)、分区选择(初始或最终)、变换尺寸和针对视频帧的当前部分进行编码的成本。例如,可以经由分数细化模块803提供初始运动矢量和初始分区选择(如果可应用的话),可以经由分区检查模块804提供最终运动矢量和最终分区选择(如果可应用的话),并且可以经由变换尺寸检查模块805或变换尺寸设置模块806来提供变换尺寸。可以可选地经由帧间预测模块​​609的失真优化模块(未示出)或控制器来提供成本。成本可以包括与运动矢量(初始或最终)、分区选择(初始或最终)相关联的成本以及与跳过模式相关联的成本。在其他示例中,成本可以由模式选择模块613确定。
返回到图6,可以从帧间预测模块609向模式选择模块613提供运动矢量、分区选择、变换尺寸和/或成本数据。在一些示例中,可以从帧间预测模块609提供成本数据,并且在其他示例中,成本数据可以由模式选择模块613确定。此外,帧内预测模块608可以针对输入视频601的视频帧执行帧内预测。例如,帧内预测模块608可以执行帧内预测检查操作(例如,如关于操作102所讨论的)来确定针对视频帧的该部分的最佳帧内预测模式。可以向模式选择模块613提供最佳帧内预测模式和可选地相关联的成本。在其他示例中,帧内预测成本可以由模式选择模块613确定。
如所示,模式选择模块613(例如,经由开关)可以在最佳帧内预测模式、基于帧间预测运动矢量和分区选择的帧间预测模式以及跳过模式之间进行选择。例如,模式选择模块613可以基于针对视频帧的该部分的帧间预测模式编码成本、帧内预测模式编码成本和跳过模式编码成本中的最小成本来执行最终模式判定(例如,如关于操作108所讨论的)。
基于模式选择,视频帧的预测部分可以经由差分器611与视频帧(例如,输入视频601)的原始部分进行差分,以生成残差。可以将残差转移到变换和量化模块604,其可以(例如,经由离散余弦变换等)变换残差以确定变换系数并量化变换系数。可以经由熵编码器610将量化的变换系数编码到编码的比特流615中。还可以针对视频帧的该部分对诸如运动矢量残差、模式数据、变换尺寸数据等的其它数据进行编码并将其插入到编码的比特流615中。
此外,量化的变换系数可以通过逆量化和变换模块605进行逆量化和逆变换,以生成重构残差。重构残差可以在加法器612处与上述预测部分组合以形成重构部分,其可以可选地经由解块和滤波模块606可选地进行解块和滤波,和/或(连同当前帧或图片的其他重构部分)经由图片缓冲器607可选地进行保存,并且用于对当前视频帧的其它部分或其他视频帧进行编码。
对于视频帧的每个部分和对于多个视频帧可以重复这样的处理。可以基于本文所讨论的模式选择和/或变换尺寸选择来对视频帧的部分进行编码。选择的模式和/或变换尺寸以及结果比特可以包括在编码比特流615中。
图9图示了根据本公开的至少一些实现而布置的示例编码比特流615。在一些示例中,编码比特流615可以是符合高效率视频编码(HEVC)的比特流、符合H.264/MPEG-4高级视频编码(AVC)的比特流或符合V9的比特流。尽管在图9中未示出,但是在一些示例中,编码比特流615可以包括一个或多个报头部分和一个或多个数据部分。编码比特流615可以包括与编码的视频数据相关联的任何合适的数据。如图9中所示,编码比特流615可以包括编码的量化变换系数901、编码模式数据902、编码分裂数据903和编码变换尺寸数据904。如所讨论的,可以经由编码器600的熵编码器610生成编码比特流615。
例如,编码比特流615可以包括编码的量化变换系数901,其包括如本文所讨论的针对视频帧的一部分的残差的变换系数。例如,可以基于如本文所讨论的选择的编码模式(例如,帧内、帧间或跳过)对视频帧的一部分进行编码。视频帧的预测部分与视频帧的原始部分之间的残差可以被变换、量化、编码、并作为编码的量化变换系数901而被插入到编码比特流中。编码比特流615还可以包括编码模式数据902。例如,编码模式数据902可以包括如本文所讨论的选择的针对视频帧的部分的一个或多个模式。针对视频帧的部分的选择的一个或多个模式(例如连同针对视频帧的其他部分的模式信息一起)可以进行熵编码并作为编码模式数据902而插入到编码比特流615中。此外,编码比特流615可以包括编码分裂数据903。如本文所讨论的,对于视频帧的一部分,一个或多个模式和/或运动矢量等可以与视频帧的一部分的分区相关联(例如,树编码单元或宏块的分区等)。这样的划分信息可以作为分裂数据而被提供,其可以进行熵编码并且作为编码分裂数据903插入到编码比特流615中。同样如所示,可以生成本文所确定的变换尺寸数据、进行熵编码并将其作为编码变换尺寸数据904插入到比特流615中。如所讨论的,可以经由诸如例如编码器600的编码器或编码器系统来生成编码比特流715。可以将编码比特流615存储(例如,作为文件或容器)到(例如,系统,实现编码器600的系统的)存储器,存储(例如,作为文件或容器)到存储器存储设备(例如,盘、用于下载的服务器等)或被发射到远程设备。此外,编码比特流615可以(例如,经由读取盘、流式传输、下载等)被解码器访问,解码器可以对比特流进行解码并生成用于呈现给用户的视频帧或视频帧序列。
图10是图示出根据本公开的至少一些实现而布置的用于视频编码的示例过程1000的流程图。过程1000可以包括如图10中所图示的一个或多个操作1001-1004。过程1000可以形成视频编码过程的至少一部分。通过非限制性示例的方式,过程1000可以形成由编码器600执行的视频编码过程的至少一部分,如本文所讨论的。此外,这里将参考图11的系统1100描述过程1000。
图11是根据本公开的至少一些实现而布置的用于视频编码的示例系统1100的说明性图。如图11中所示,系统1100可以包括一个或多个中央处理单元(CPU)1101、图形处理单元(GPU)1102、存储器库1103和视频运动估计(VME)引擎1104。另外如所示,CPU 1701可以包括平坦性检查模块602、帧间预测模块609、编码控制器603、变换和量化模块604、帧内预测模块608、熵编码器610和模式选择模块613。此外,平坦性检查模块602可以包括平坦性指示符生成模块701、阈值模块702、比较器703以及控制器704,并且帧间预测模块609可以包括跳过检查模块801、整数运动估计模块802、分数细化模块803、分区检查模块804、变换尺寸检查模块805、变换尺寸设置模块806和视频运动估计引擎1104。可以实现这样的模块以执行如本文所讨论的操作。在系统1100的示例中,存储器库1103可以存储视频数据诸如输入视频、视频帧、针对视频帧的部分的像素数据、分区数据、分裂数据、模式数据、编码成本、运动矢量、平坦性数据、平坦性阈值、残差数据、变换系数、比特流数据或任何其他数据,如本文所讨论的。
如所示,在一些示例中,平坦性检查模块602、帧间预测模块609、编码控制器603、变换和量化模块604、帧内预测模块608、熵编码器610和模式选择模块613可以经由中央处理单元1101来实现。在其他示例中,平坦性检查模块602、帧间预测模块609、编码控制器603、变换和量化模块604、帧内预测模块608、熵编码器610和模式选择模块613中的一个或多个或部分可以经由图形处理单元1102来实现。在另外其他示例中,平坦性检查模块602、帧间预测模块609、编码控制器603、变换和量化模块604、帧内预测模块608、熵编码器610和模式选择模块613中的一个或多个或部分可以经由编码流水线和/或成像处理单元来实现。此外,整数运动估计模块802、分数细化模块803和分区检查模块804中的一个或多个可以访问视频运动估计引擎1104。特别而言,分区检查模块804可以经由一个或多个调用而访问视频运动估计引擎1104从而执行分区检查的至少一部分。在一些示例中,视频运动估计引擎1104可以经由图形处理单元1102的硬件来实现。
图形处理单元1102可以包括可以提供如本文所讨论的操作的任何数量和类型的图形处理单元。这样的操作可以经由软件或硬件或其组合来实现。例如,图形处理单元1102可以包括专用于操纵从存储器库1103获得的帧或视频数据的电路。中央处理单元1101可以包括可以为系统1100提供控制和其他高级功能和/或提供如本文所讨论的任何操作的任何数量和类型的处理单元或模块。存储器库1103可以是任何类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如闪速存储器等)等等。在非限制性示例中,存储器库1103可以由高速缓存存储器来实现。在实施例中,平坦性检查模块602、帧间预测模块609、编码控制器603、帧内预测模块608、变换和量化模块604以及熵编码器610中的一个或多个或部分可以经由图形处理单元1102的执行单元(EU)来实现。EU可以包括例如诸如可以提供广泛系列的可编程逻辑功能的一个或多个逻辑核心的可编程逻辑或电路。在实施例中,平坦性检查模块602、帧间预测模块609、编码控制器603、帧内预测模块608、变换和量化模块604以及熵编码器610中的一个或多个或部分可以经由诸如固定功能电路等等之类的专用硬件来实现。固定功能电路可以包括专用逻辑或电路,并且可以提供一组可以映射到用于固定目的或功能的专用逻辑的固定功能入口点。
返回到图10的讨论,过程1000可以在操作1001“确定视频帧的一部分是平坦的”处开始,其中可以基于视频帧的一部分的平坦性检查来确定视频帧的该部分是平坦的。例如,经由中央处理单元1101实现的平坦性检查模块602可以使用本文讨论的技术来确定视频帧的一部分是平坦的。平坦性检查可以包括任何合适的平坦性检查,诸如视频帧的该部分的像素方差与第一阈值的比较、确定视频帧的该部分的所有像素值是否在视频帧的该部分的像素值的平均值的第二阈值内、或像素值的范围与第三阈值的比较中的一个或多个。视频帧的该部分可以包括诸如宏块、编码单元等的视频帧的任何合适的部分。
如所讨论的,操作1001可以确定视频帧的一部分是平坦的。在其他示例中,操作1001可以基于视频帧的第二部分的第二平坦性检查来确定视频帧的第二部分是不平坦的。例如,操作1001可以经由中央处理单元1101实现的平坦性检查模块602评估视频帧的部分,以确定它们是平坦的还是不平坦的。
处理可以在操作1002“基于该部分是平坦的而旁路帧间预测分区检查”处继续,其中可以基于视频帧的该部分是平坦的而旁路针对视频帧的该部分的帧间预测分区检查。例如,可以不针对视频帧的该部分来实现分区检查模块804(以及对视频运动估计引擎1104的相关联的调用)。
对于在操作1001处被确定为不平坦的视频帧的部分,诸如视频帧的第二部分,可以基于视频帧的第二部分是不平坦的来执行帧间预测分区检查。这样的分区检查可以由分区检查模块804和/或视频运动估计运动引擎1104基于经由分数细化模块803生成的针对视频帧的第二部分的初始运动矢量和初始帧间预测分区选择来执行,以确定针对视频帧的第二部分的最终运动矢量和最终帧间预测分区选择。例如,可以基于树修剪技术来生成初始运动矢量和初始帧间预测分区选择,并且最终运动矢量和最终帧间预测分区选择可以包括针对视频帧的第二部分的完整分区选项评估。
处理可以在操作1003“基于该部分是平坦的而旁路变换尺寸检查并选择最大转移尺寸”处继续,其中基于视频帧的该部分是平坦的而可以旁路针对视频帧的该部分的变换尺寸检查并且可以基于视频帧的该部分是平坦的而选择针对视频帧的该部分的最大变换尺寸。例如,可以旁路变换尺寸检查805,并且可以实现变换尺寸设置806以设置针对视频帧的该部分的最大变换尺寸。在一些示例中,最大变换尺寸可以是视频帧的该部分的尺寸。
在一些示例中,对于在操作1001被确定为不平坦的视频帧的部分,诸如视频帧的第二部分,可以基于视频帧的第二部分是不平坦的而执行变换尺寸检查。例如,变换尺寸检查可以由变换尺寸检查模块805执行以确定针对视频帧的第二部分的变换尺寸。在其他示例中,可以基于视频帧的第二部分是不平坦的而旁路变换尺寸检查。在这样的示例中,可以基于视频帧的该部分是不平坦的而选择针对视频帧的第二部分的最小变换尺寸。
处理可以在操作1004“执行针对该部分的最终模式判定”处继续,其中可以至少部分地基于与针对视频帧的该部分的初始运动矢量和初始帧间预测分区选择相关联的针对视频帧的该部分的帧间预测模式编码成本来执行针对视频帧的该部分的最终模式判定。例如,可以通过经由中央处理单元1101实现的帧间预测模块609的整数运动估计模块802和分数细化模块803来确定针对视频帧的该部分的初始运动矢量和初始帧间预测分区选择。与初始运动矢量和初始帧间预测分区选择相关联的针对视频帧的该部分的帧间预测模式编码成本可以经由帧间预测模块609或其他控制电路来确定,并且经由中央处理单元1101实现的模式选择模块613可以执行最终模式判定。此外,模式选择模块613可以进一步基于针对视频帧的该部分的(例如,经由帧内预测模块608所确定的)帧内预测模式编码成本和针对视频帧的该部分的(例如,经由跳过检查模块801所确定的)跳过模式编码成本来执行模式选择。
对于在操作1001处被确定为不平坦的视频帧的部分,诸如视频帧的第二部分,可以基于与针对视频帧的该部分的最终运动矢量和最终帧间预测分区选择相关联的针对视频帧的该部分的帧间预测模式编码成本来执行最终模式判定。可以进一步基于针对视频帧的第二部分的帧内预测模式编码成本和针对视频帧的第二部分的跳过模式编码成本来执行这样的最终模式判定。例如,可以经由分区检查模块804和/或视频运动估计引擎1104来确定针对视频帧的该部分的最终运动矢量和最终帧间预测分区选择。
对于任何数量的视频的部分和/或视频帧,过程1000可以以串联或并行的方式重复任意次数。过程1000可以提供如本文所讨论的旁路帧间预测检查和/或变换尺寸检查以节省功率、计算复杂度和处理时间。基于模式判定、初始或最终运动矢量、初始或最终帧间预测分区选择、和/或变换尺寸,可以将视频帧的该部分编码成诸如符合标准的比特流之类的比特流。
本文描述的系统的各种组件可以以软件、固件和/或硬件和/或其任何组合来实现。例如,可以至少部分地通过诸如可以在诸如例如智能手机的计算系统中找到的计算片上系统(SoC)的硬件来提供编码器600或系统1100的各种组件。本领域技术人员可以认识到,本文描述的系统可以包括在相应附图中未描述的附加组件。例如,本文讨论的系统可以包括诸如为了清楚起见未描述的比特流多路复用器或去多路复用器模块等等之类的附加组件。
虽然本文讨论的示例过程的实现可以包括以所图示的顺序示出的所有操作的采取,但是本公开不限于这一方面,并且在各个示例中,本文的示例过程的实现可以包括仅仅所示出的操作的子集、以与图示的不同的顺序执行的操作、或附加操作。
此外,可以响应于由一个或多个计算机程序产品提供的指令来采取本文讨论的任何一个或多个操作。这样的程序产品可以包括提供指令的信号承载介质,所述指令当例如由处理器执行时可以提供本文描述的功能性。计算机程序产品可以以一个或多个机器可读介质的任何形式来提供。因此,例如,包括一个或多个图形处理单元或处理器核心的处理器可以响应于由一个或多个机器可读介质传达到处理器的程序代码和/或指令和/或指令集,来采取本文中的示例过程的一个或多个块。通常,机器可读介质可以以程序代码和/或指令或指令集的形式来传达软件,所述程序代码和/或指令或指令集可以使本文所述的任何设备和/或系统实现系统100或1700的至少一部分或任何本文所讨论的其它模块或组件。
如在本文所述的任何实现中使用的,术语“模块”是指被配置为提供本文所描述的功能性的软件逻辑、固件逻辑、硬件逻辑和/或电路的任何组合。软件可以体现为软件包、代码和/或指令集或指令,并且如本文所述的任何实现中使用的“硬件”可以单个地或者以任意组合的形式包括例如硬连线电路、可编程电路、状态机电路、固定功能电路、执行单元电路和/或存储由可编程电路执行的指令的固件。模块可以共同地或单独地体现为形成较大系统的一部分的电路,例如集成电路(IC)、片上系统(SoC)等等。
图12是根据本公开的至少一些实现而布置的示例系统1200的说明性图。在各种实现中,系统1200可以是计算系统,尽管系统1200不限于此上下文。例如,系统1200可以并入到个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板电脑或智能电视)、移动因特网设备(MID)、消息传送设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(DSLR)相机)等等中。
在各种实现中,系统1200包括耦合到显示器1220的平台1202。平台1202可以从诸如(一个或多个)内容服务设备1230或(一个或多个)内容递送设备1240或其它类似的内容源之类的内容设备接收内容。包括一个或多个导航特征的导航控制器1250可以用于与例如平台1202和/或显示器1220进行交互。下面将更详细地描述这些组件中的每一个。
在各种实现中,平台1202可以包括芯片集1205、处理器1210、存储器1212、天线1213、存储装置1214、图形子系统1215、应用1216和/或无线电1218的任意组合。芯片集1205可以提供处理器1210、存储器1212、存储装置1214、图形子系统1215、应用1216和/或无线电1218之间的相互通信。例如,芯片集1205可以包括能够提供与存储装置1214的相互通信的存储适配器(未描绘)。
处理器1210可以实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或者任何其它微处理器或中央处理单元(CPU)。在各种实现中,处理器1210可以是(一个或多个)双核处理器、(一个或多个)双核移动处理器等等。
存储器1212可以实现为易失性存储器设备,诸如但不限于:随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。
存储装置1214可以实现为非易失性存储设备,诸如但不限于:磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附加存储设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可访问存储设备。在各种实现中,存储装置1214可以包括:例如,当包含有多个硬件驱动器时,用于提高对于有价值数字介质的存储性能增强保护的技术。
图形子系统1215可以执行诸如静止或视频的图像的处理以进行显示。例如,图形子系统1215可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口来通信地耦合图形子系统1215和显示器1220。例如,接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任何一种。图形子系统1215可以集成到处理器1210或芯片集1205中。在一些实现中,图形子系统1215可以是通信耦合到芯片集1205的单独设备。
可以在各种硬件架构中实现本文所描述的图形和/或视频处理技术。例如,可以将图形和/或视频功能性集成在芯片集内。可替代地,可以使用分立的图形和/或视频处理器。作为又另一种实现,图形和/或视频功能可以由包括多核处理器的通用处理器来提供。在另外的实施例中,可以将这些功能实现在消费电子设备中。
无线电1218可以包括能够使用各种合适的无线通信技术来发射和接收信号的一个或多个无线电。这些技术可以涉及跨越一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网络和卫星网络。在跨越这样的网络进行通信时,无线电1218可以根据任何版本的一个或多个适用标准来进行操作。
在各种实现中,显示器1220可以包括任何电视类型监视器或显示器。例如,显示器1220可以包括计算机显示屏幕、触摸屏显示器、视频监视器、类似电视的设备和/或电视。显示器1220可以是数字和/或模拟的。在各种实现中,显示器1220可以是全息显示器。此外,显示器1220可以是可以接收视觉投影的透明表面。这些投影可以传送各种形式的信息、图像和/或对象。例如,这些投影可以是针对移动增强现实(MAR)应用的视觉叠加。在一个或多个软件应用1216的控制之下,平台1202可以在显示器1220上显示用户界面1222。
在各种实现中,(一个或多个)内容服务设备1230可以由任何国内、国际和/或独立服务来主控,并且因此可对于平台1202经由例如因特网来访问。(一个或多个)内容服务设备1230可以耦合到平台1202和/或显示器1220。平台1202和/或(一个或多个)内容服务设备1230可以耦合到网络1260,以传递(例如,发送和/或接收)去往和来自网络1260的媒体信息。(一个或多个)内容递送设备1240也可以耦合到平台1202和/或显示器1220。
在各种实现中,(一个或多个)内容服务设备1230可以包括有线电视盒、个人计算机、网络、电话、具备因特网能力的设备或能够传送数字信息和/或内容的电器、以及能够经由网络1260或者直接地在内容提供商和平台1202和/或显示器1220之间单向地或双向地传递内容的任何其它类似设备。将理解的是,可以经由网络1260将内容单向地和/或双向地传递去往和来自系统1200中的组件里的任何一个组件和内容提供商。内容的示例可以包括任何媒体信息,其例如包括视频、音乐、医疗和游戏信息等等。
(一个或多个)内容服务设备1230可以接收诸如包括媒体信息、数字信息的有线电视节目之类的内容和/或其它内容。内容提供商的示例可以包括任何有线或卫星电视提供商或者无线电或因特网内容提供商。所提供的示例并不意味着以任何方式来限制根据本公开的实现。
在各种实现中,平台1202可以从具有一个或多个导航特征的导航控制器1250接收控制信号。例如,可以使用导航控制器1250的导航特征来与用户界面1222进行交互。在各个实施例中,导航控制器1250可以是指向设备,其可以是允许用户将空间(例如,连续和多维)数据输入到计算机中的计算机硬件组件(具体而言,人机接口设备)。诸如图形用户接口(GUI)之类的许多系统、以及电视和监视器允许用户使用物理姿态来控制计算机或电视,并向其提供数据。
可以通过在显示器上显示的指针、光标、聚焦环或者其它视觉指示符的移动,在显示器(例如,显示器1220)上复制导航控制器1250的导航特征的移动。例如,在软件应用1216的控制之下,位于导航控制器1250上的导航特征可以映射到例如在用户界面1222上显示的虚拟导航特征上。在各个实施例中,导航控制器1250可以不是单独的组件,而可以集成到平台1202和/或显示器1220中。但是,本公开并不限于本文所示出或描述的这些元件,也不限于该上下文。
在各种实现中,驱动器(未示出)可以包括用于在初始启动之后,使用户能够利用按键的触摸来即刻地打开和关闭类似于电视的平台1202的技术--例如,当启用时。程序逻辑可以允许平台1202将内容流式传输到媒体适配器或者(一个或多个)其它内容服务设备1230或(一个或多个)内容递送设备1240--即使当该平台处于“关闭”时。此外,芯片集1205可以包括针对例如5.1环绕音频和/或高清晰度7.1环绕音频的硬件和/或软件支持。驱动器可以包括针对集成的图形平台的图形驱动器。在各个实施例中,图形驱动器可以包括高速外围组件互连(PCI)图形卡。
在各种实现中,可以将系统1200中所示出的组件里的任何一个或多个集成在一起。例如,可以将平台1202和(一个或多个)内容服务设备1230集成在一起,或者可以将平台1202和(一个或多个)内容递送设备1240集成在一起,或者例如可以将平台1202、(一个或多个)内容服务设备1230和(一个或多个)内容递送设备1240集成在一起。在各个实施例中,平台1202和显示器1220可以是集成的单元。例如,可以将显示器1220和(一个或多个)内容服务设备1230集成在一起,或者例如可以将显示器1220和(一个或多个)内容递送设备1240集成在一起。这些示例并不意味着对本公开进行限制。
在各个实施例中,系统1200可以实现为无线系统、有线系统或二者的组合。当实现为无线系统时,系统1200可以包括适合于通过诸如一个或多个天线、发射机、接收机、收发机、放大器、滤波器、控制逻辑等等之类的无线共享介质进行通信的组件和接口。无线共享介质的示例可以包括无线频谱诸如RF频谱等等的一部分。当实现为有线系统时,系统1200可以包括适合于通过诸如输入/输出(I/O)适配器、用于连接该I/O适配器与相应的有线通信介质的物理连接器、网络接口卡(NIC)、盘控制器、视频控制器、音频控制器等等之类的有线通信介质进行通信的组件和接口。有线通信介质的示例可以包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、双绞线、同轴电缆、光纤等等。
平台1202可以建立一个或多个逻辑或物理信道以传递信息。该信息可以包括媒体信息和控制信息。媒体信息可以指代表示意味着用于用户的内容的任何数据。内容的示例可以包括:例如,来自语音会话的数据、视频会议、流视频、电子邮件(“email”)消息、语音邮件消息、字母数字符号、图形、图像、视频、文本等等。来自语音会话的数据可以是例如语音信息、静默时期、背景噪声、舒适噪音、音调等等。控制信息可以指代:表示意味着用于自动系统的命令、指令或控制词的任何数据。例如,控制信息可以用于将媒体信息路由通过系统,或者指示节点以预定方式对媒体信息进行处理。然而,这些实施例并不限于图12中所示出或描述的这些元件,也不限于该上下文。
如上所述,系统1200可以以不同的物理风格或形状因素来体现。图13图示了根据本公开的至少一些实现而布置的示例的小形状因素设备1300。在一些示例中,可以经由设备1300来实现系统1800。在其他示例中,可以经由设备1300来实现成像设备101、系统900或其部分。在各个实施例中,例如,设备1300可以实现为具有无线能力的移动计算设备。例如,移动计算设备可以指代具有处理系统和诸如一个或多个电池之类移动电源或供应的任何设备。
移动计算设备的示例可以包括个人计算机(PC)、膝上型计算机、超级膝上型计算机、平板电脑、触摸板、便携式计算机、手持计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、智能设备(例如,智能电话、智能平板电脑或智能移动电视)、移动因特网设备(MID)、消息传送设备、数据通信设备、相机(例如,傻瓜相机、超级变焦相机、数码单反(DSLR)相机)等等。
移动计算设备的示例还可以包括被布置为由人类进行穿戴的计算机,诸如腕部计算机、手指计算机、环形计算机、眼镜计算机、皮带夹计算机、臂带计算机、鞋计算机、服装计算机和其它可穿戴计算机。在各个实施例中,例如,移动计算设备可以实现为能够执行计算机应用、以及语音通信和/或数据通信的智能电话。虽然通过示例的方式,可以利用实现为智能电话的移动计算设备来描述了一些实施例,但应当理解的是,也可以使用其它无线移动计算设备来实现其它实施例。这些实施例并不限于该上下文。
如图13中所示,设备1300可以包括具有前面1301和后面1302的壳体。设备1300包括显示器1304、输入/输出(I/O)设备1306和集成天线1308。设备1300还可以包括导航特征1312。对于I/O设备1306可以包括用于向移动计算设备输入信息的任何合适的I/O设备。I/O设备1306的示例可以包括字母数字键盘、数字键盘、触摸板、输入键、按键、开关、麦克风、扬声器、语音识别设备和软件等等。还可以通过麦克风(未示出)将信息输入到设备1300中,或者可以通过语音识别设备来使信息数字化。如所示,设备1300可以包括相机1305(例如,其包括镜头、光圈和成像传感器)和集成到设备1300的后面1302(或者其它地方)的闪光灯1310。在其它示例中,相机1305和闪光灯1310可以集成到设备1300的前面1301中,或者可以提供前面相机和后面相机。相机1305和闪光灯1310可以是相机模块的组件,用于将原始图像数据处理成输出到显示器1304和/或例如经由天线1308来从设备1300远程地传递的流视频。
可以使用硬件元件、软件单元或二者的组合来实现各个实施例。硬件元件的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片集等等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者其任意组合。确定一个实施例是否使用硬件元件和/或软件单元来实现的,可以根据任意数量的因素而变化,所述因素例如,期望的计算速率、功率级别、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其它设计或性能约束。
至少一个实施例的一个或多个方面可以由机器可读介质上存储的表示处理器中的各种逻辑的代表性指令来实现,其中当这些指令被机器读取时,使得该机器制造用于执行本文所描述的技术的逻辑。这些表示--称为IP核--可以存储在有形的、机器可读介质上,并提供给各个客户或制造工厂,以装载在实际产生该逻辑或处理器的制造机器中。
虽然参考各种实现来描述了本文所阐述的某些特征,但该描述并不旨在以限制性含义进行解释。因此,本文所描述的实现的各种修改以及对于本领域普通技术人员来说显而易见是与本公开有关的其它实现,被认为是落入本公开的精神和范围之内。
以下实施例涉及进一步的实施例。
在一个或多个第一实施例中,一种用于视频编码的计算机实现的方法包括:基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的;基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的帧间预测分区检查;和至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本,执行针对所述视频帧的所述部分的最终模式判定。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的变换尺寸检查;和基于所述视频帧的所述部分是平坦的,选择针对所述视频帧的所述部分的最大变换尺寸。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的变换尺寸检查;和基于所述视频帧的所述部分是平坦的,选择针对所述视频帧的所述部分的最大变换尺寸,其中,所述最大变换尺寸包括所述视频帧的所述部分的尺寸。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的变换尺寸检查;和基于所述视频帧的所述部分是平坦的,选择针对所述视频帧的所述部分的最大变换尺寸,和/或,其中所述最大变换尺寸包括所述视频帧的所述部分的尺寸。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;和基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸;基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;以及至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸;和/或基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;以及至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
进一步针对所述第一实施例,该方法还包括:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;基于树修剪技术,确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区;和基于所述视频帧的所述部分是不平坦的,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
进一步针对所述第一实施例,平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
进一步针对所述第一实施例,针对所述视频帧的所述部分的最终模式判定还基于针对所述视频帧的所述部分的帧内预测模式编码成本以及针对所述视频帧的所述部分的跳过模式编码成本。
进一步针对所述第一实施例,所述视频帧的所述部分包括宏块或编码单元中的至少一个。
进一步针对所述第一实施例,针对所述视频帧的所述部分的最终模式判定还基于针对所述视频帧的所述部分的帧内预测模式编码成本以及针对所述视频帧的所述部分的跳过模式编码成本,和/或,其中所述视频帧的所述部分包括宏块或编码单元中的至少一个。
进一步针对所述第一实施例,所述分区检查包括对硬件视频运动估计引擎的一个或多个调用。
进一步针对所述第一实施例,该方法还包括:至少部分地基于所述最终模式判定来编码所述视频帧的所述部分以生成编码的比特流。
进一步针对所述第一实施例,该方法还包括:至少部分地基于所述最终模式判定来编码所述视频帧的所述部分以生成编码的比特流,和/或,其中所述分区检查包括对硬件视频运动估计引擎的一个或多个调用。
在一个或多个第二实施例中,一种用于提供视频编码的系统包括:被配置为存储视频数据的存储器和耦合到所述存储器的中央处理单元,其中所述中央处理单元包括:平坦性检查电路,用于基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的;控制器电路,用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的帧间预测分区检查;和模式选择电路,用于至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本,执行针对所述视频帧的所述部分的最终模式判定。
进一步针对所述第二实施例,所述控制器电路用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的变换尺寸检查,并且基于所述视频帧的所述部分是平坦的而选择针对所述视频帧的所述部分的最大变换尺寸。
进一步针对所述第二实施例,所述控制器电路用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的变换尺寸检查,并且基于所述视频帧的所述部分是平坦的而选择针对所述视频帧的所述部分的最大变换尺寸,其中所述最大变换尺寸包括所述视频帧的所述部分的尺寸。
进一步针对所述第二实施例,所述平坦性检查电路用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的,并且所述控制器电路用于基于所述视频帧的所述第二部分是不平坦的而选择针对所述视频帧的所述第二部分的最小变换尺寸。
进一步针对所述第二实施例,所述系统还包括帧间预测电路,用于基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择,其中所述模式选择电路用于至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
进一步针对所述第二实施例,所述平坦性检查电路用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的第二部分是不平坦的,所述系统还包括:帧间预测电路,用于基于树修剪技术来确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区,并基于所述视频帧的所述部分是不平坦的,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
进一步针对所述第二实施例,所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
进一步针对所述第二实施例,针对所述视频帧的所述部分的最终模式判定还基于针对所述视频帧的所述部分的帧内预测模式编码成本以及针对所述视频帧的所述部分的跳过模式编码成本。
进一步针对所述第二实施例,所述视频帧的所述部分包括宏块或编码单元中的至少一个。
进一步针对所述第二实施例,所述系统还包括用于执行所述分区检查的至少一部分的硬件视频运动估计引擎。
进一步针对所述第二实施例,所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较,和/或,其中所述系统还包括用于执行所述分区检查的至少一部分的硬件视频运动估计引擎。
进一步针对所述第二实施例,所述系统还包括熵编码器,用于至少部分地基于所述最终模式判定来编码所述视频帧的所述部分以生成编码的比特流。
在一个或多个第三实施例中,一种用于提供视频编码的系统包括:用于基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的装置;用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的帧间预测分区检查的装置;和用于至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本来执行针对所述视频帧的所述部分的最终模式判定的装置。
进一步针对所述第三实施例,所述系统还包括:用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的变换尺寸检查的装置;和用于基于所述视频帧的所述部分是平坦的而选择针对所述视频帧的所述部分的最大变换尺寸的装置。
进一步针对所述第三实施例,所述系统还包括:用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的装置;和用于基于所述视频帧的所述第二部分是不平坦的而选择针对所述视频帧的所述第二部分的最小变换尺寸的装置。
进一步针对所述第三实施例,所述系统还包括:用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的装置;用于基于所述视频帧的所述第二部分是不平坦的而选择针对所述视频帧的所述第二部分的最小变换尺寸的装置;装置,用于基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,来执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;和用于至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本来执行针对所述视频帧的所述第二部分的第二最终模式判定的装置。
进一步针对所述第三实施例,所述系统还包括:用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的装置;用于基于树修剪技术来确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区的装置;和装置,用于基于所述视频帧的所述部分是不平坦的来执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
进一步针对所述第三实施例,所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
进一步针对所述第三实施例,针对所述视频帧的所述部分的最终模式判定还基于针对所述视频帧的所述部分的帧内预测模式编码成本以及针对所述视频帧的所述部分的跳过模式编码成本。
在一个或多个第四实施例中,至少一个机器可读介质包括多个指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的;基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的帧间预测分区检查;和至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本,执行针对所述视频帧的所述部分的最终模式判定。
进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的变换尺寸检查;和基于所述视频帧的所述部分是平坦的,选择针对所述视频帧的所述部分的最大变换尺寸。
进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;和基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸。
进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸;基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;以及至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;基于树修剪技术,确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区;和基于所述视频帧的所述部分是不平坦的,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
进一步针对所述第四实施例,平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
进一步针对所述第四实施例,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:至少部分地基于所述最终模式判定来编码所述视频帧的所述部分以生成编码的比特流。
在一个或多个第五实施例中,至少一个机器可读介质可以包括多个指令,所述指令响应于在计算设备上执行而使所述计算设备执行根据上述实施例中的任一个的方法。
在一个或多个第六实施例中,一种设备可以包括用于执行根据上述实施例中的任一个的方法的装置。
应当认识到,实施例并不限于如此所描述的实施例,在不脱离所附权利要求书的范围的情况下,通过修改和改变亦可实现本发明。例如,上面的实施例可以包括特征的特定组合。但是,上面的实施例在该方面并不受限,并且因此在各种实现中,上面的实施例可以包括:采取这些特征的仅仅一个子集,采取不同顺序的这些特征,采取这些特征的不同组合,和/或采取与明确所列出的那些特征不同的其它特征。因此应参照所附权利要求书以及与授权这些权利要求等同的全部范围,来确定本发明的范围。

Claims (32)

1.一种用于视频编码的计算机实现方法,包括:
基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的;
基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的帧间预测分区检查;和
至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本,执行针对所述视频帧的所述部分的最终模式判定。
2.根据权利要求1所述的方法,还包括:
基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的变换尺寸检查;和
基于所述视频帧的所述部分是平坦的,选择针对所述视频帧的所述部分的最大变换尺寸。
3.根据权利要求2所述的方法,其中,所述最大变换尺寸包括所述视频帧的所述部分的尺寸。
4.根据权利要求1所述的方法,还包括:
基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;和
基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸。
5.根据权利要求4所述的方法,还包括:
基于所述视频帧的所述第二部分是不平坦的,并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;和
至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
6.根据权利要求1所述的方法,还包括:
基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;
基于树修剪技术,确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区;和
基于所述视频帧的所述部分是不平坦的,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
7.根据权利要求1所述的方法,其中,所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
8.根据权利要求1所述的方法,其中,针对所述视频帧的所述部分的最终模式判定还基于针对所述视频帧的所述部分的帧内预测模式编码成本以及针对所述视频帧的所述部分的跳过模式编码成本。
9.根据权利要求1所述的方法,其中,所述视频帧的所述部分包括宏块或编码单元中的至少一个。
10.根据权利要求1所述的方法,其中,所述分区检查包括对硬件视频运动估计引擎的一个或多个调用。
11.根据权利要求1所述的方法,还包括:
至少部分地基于所述最终模式判定来编码所述视频帧的所述部分以生成编码的比特流。
12.一种用于提供视频编码的系统,包括:
被配置为存储视频数据的存储器;和
耦合到所述存储器的中央处理单元,其中所述中央处理单元包括:
平坦性检查电路,用于基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的;
控制器电路,用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的帧间预测分区检查;和
模式选择电路,用于至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本,执行针对所述视频帧的所述部分的最终模式判定。
13.根据权利要求12所述的系统,其中,所述控制器电路用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的变换尺寸检查,并且基于所述视频帧的所述部分是平坦的而选择针对所述视频帧的所述部分的最大变换尺寸。
14.根据权利要求12所述的系统,其中,所述平坦性检查电路用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的,并且所述控制器电路用于基于所述视频帧的所述第二部分是不平坦的而选择针对所述视频帧的所述第二部分的最小变换尺寸。
15.根据权利要求14所述的系统,还包括:
帧间预测电路,用于基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择,
其中所述模式选择电路用于至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
16.根据权利要求12所述的系统,其中,所述平坦性检查电路用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的第二部分是不平坦的,所述系统还包括:
帧间预测电路,用于基于树修剪技术来确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区,并基于所述视频帧的所述部分是不平坦的,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
17.根据权利要求12所述的系统,其中,所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
18.根据权利要求12所述的系统,还包括:
用于执行所述分区检查的至少一部分的硬件视频运动估计引擎。
19.一种用于提供视频编码的系统,包括:
用于基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的装置;
用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的帧间预测分区检查的装置;和
用于至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本来执行针对所述视频帧的所述部分的最终模式判定的装置。
20.根据权利要求19所述的系统,还包括:
用于基于所述视频帧的所述部分是平坦的而旁路针对所述视频帧的所述部分的变换尺寸检查的装置;和
用于基于所述视频帧的所述部分是平坦的而选择针对所述视频帧的所述部分的最大变换尺寸的装置。
21.根据权利要求19所述的系统,还包括:
用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的装置;和
用于基于所述视频帧的所述第二部分是不平坦的而选择针对所述视频帧的所述第二部分的最小变换尺寸的装置。
22.根据权利要求21所述的系统,还包括:
装置,用于基于所述视频帧的所述第二部分是不平坦的并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,来执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;和
用于至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本来执行针对所述视频帧的所述第二部分的第二最终模式判定的装置。
23.根据权利要求19所述的系统,还包括:
用于基于所述视频帧的第二部分的第二平坦性检查来确定所述视频帧的所述第二部分是不平坦的装置;
用于基于树修剪技术来确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区的装置;和
装置,用于基于所述视频帧的所述部分是不平坦的来执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
24.根据权利要求19所述的系统,其中,所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
25.根据权利要求19所述的系统,其中,针对所述视频帧的所述部分的最终模式判定还基于针对所述视频帧的所述部分的帧内预测模式编码成本以及针对所述视频帧的所述部分的跳过模式编码成本。
26.至少一个机器可读介质,包括多个指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:
基于视频帧的一部分的平坦性检查来确定所述视频帧的所述部分是平坦的;
基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的帧间预测分区检查;和
至少部分地基于与针对所述视频帧的所述部分的初始运动矢量和初始帧间预测分区选择相关联的针对所述视频帧的所述部分的帧间预测模式编码成本,执行针对所述视频帧的所述部分的最终模式判定。
27.根据权利要求26所述的机器可读介质,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:
基于所述视频帧的所述部分是平坦的,旁路针对所述视频帧的所述部分的变换尺寸检查;和
基于所述视频帧的所述部分是平坦的,选择针对所述视频帧的所述部分的最大变换尺寸。
28.根据权利要求26所述的机器可读介质,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:
基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;和
基于所述视频帧的所述第二部分是不平坦的,选择针对所述视频帧的所述第二部分的最小变换尺寸。
29.根据权利要求28所述的机器可读介质,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:
基于所述视频帧的所述第二部分是不平坦的,并且基于针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区选择,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,以确定针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择;和
至少部分地基于与针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择相关联的针对所述视频帧的所述第二部分的第二帧间预测模式编码成本,执行针对所述视频帧的所述第二部分的第二最终模式判定。
30.根据权利要求26所述的机器可读介质,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:
基于所述视频帧的第二部分的第二平坦性检查,确定所述视频帧的所述第二部分是不平坦的;
基于树修剪技术,确定所述初始运动矢量、所述初始帧间预测分区以及针对所述视频帧的所述第二部分的第二初始运动矢量和第二初始帧间预测分区;和
基于所述视频帧的所述部分是不平坦的,执行针对所述视频帧的所述第二部分的第二帧间预测分区检查,所述第二帧间预测分区检查包括针对所述视频帧的所述第二部分的完整分区选项评估,以生成针对所述视频帧的所述第二部分的最终运动矢量和最终帧间预测分区选择。
31.根据权利要求26所述的机器可读介质,其中所述平坦性检查包括以下中的至少一个:将所述视频帧的所述部分的像素方差与第一阈值进行比较、确定所述视频帧的所述部分的所有像素值是否在所述视频帧的所述部分的像素值的平均值的第二阈值内、或者将所述像素值的范围与第三阈值进行比较。
32.根据权利要求26所述的机器可读介质,所述机器可读介质包括进一步的指令,所述指令响应于在计算设备上执行而使所述计算设备通过以下各项对视频进行编码:
至少部分地基于所述最终模式判定来编码所述视频帧的所述部分以生成编码的比特流。
CN201580061607.3A 2014-12-11 2015-11-06 分区模式和变换尺寸确定方法、装置、系统及介质 Active CN107113435B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/567162 2014-12-11
US14/567,162 US20160173906A1 (en) 2014-12-11 2014-12-11 Partition mode and transform size determination based on flatness of video
PCT/US2015/059524 WO2016093995A1 (en) 2014-12-11 2015-11-06 Partition mode and transform size determination based on flatness of video

Publications (2)

Publication Number Publication Date
CN107113435A true CN107113435A (zh) 2017-08-29
CN107113435B CN107113435B (zh) 2021-01-05

Family

ID=56107907

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580061607.3A Active CN107113435B (zh) 2014-12-11 2015-11-06 分区模式和变换尺寸确定方法、装置、系统及介质

Country Status (4)

Country Link
US (1) US20160173906A1 (zh)
EP (1) EP3231177A4 (zh)
CN (1) CN107113435B (zh)
WO (1) WO2016093995A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
CN104539962B (zh) * 2015-01-20 2017-12-01 北京工业大学 一种融合视觉感知特征的可分层视频编码方法
US10225561B2 (en) * 2015-10-08 2019-03-05 Mediatek Inc. Method and apparatus for syntax signaling in image and video compression
US11729416B2 (en) * 2017-12-29 2023-08-15 Intel Corporation Modular motion estimation engine for tree-based video
US11159795B2 (en) * 2019-03-04 2021-10-26 Tencent America LLC Max transform size control
WO2020197038A1 (ko) 2019-03-22 2020-10-01 엘지전자 주식회사 영상 코딩 시스템에서 인트라 서브 파티션 기반의 인트라 예측 방법 및 장치

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090262800A1 (en) * 2008-04-18 2009-10-22 Sony Corporation, A Japanese Corporation Block based codec friendly edge detection and transform selection
US20110002385A1 (en) * 2009-07-01 2011-01-06 Canon Kabushiki Kaisha Image coding apparatus, control method therefor and computer program
CN102801996A (zh) * 2012-07-11 2012-11-28 上海大学 基于jndd模型的快速深度图编码模式选择方法
CN103179394A (zh) * 2013-01-21 2013-06-26 北京航空航天大学 一种基于区域视频质量平稳的i帧码率控制方法
EP2731340A1 (en) * 2012-11-13 2014-05-14 Hon Hai Precision Industry Co., Ltd. Electronic device and method for splitting image

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102197650A (zh) * 2008-10-27 2011-09-21 松下电器产业株式会社 图像编码方法、图像编码装置以及摄像系统
KR101247043B1 (ko) * 2011-06-07 2013-03-25 한양대학교 산학협력단 고속 화면내 예측 방법
WO2013009029A2 (ko) * 2011-07-08 2013-01-17 한양대학교 산학협력단 부호화 단위의 크기 결정 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090262800A1 (en) * 2008-04-18 2009-10-22 Sony Corporation, A Japanese Corporation Block based codec friendly edge detection and transform selection
US20110002385A1 (en) * 2009-07-01 2011-01-06 Canon Kabushiki Kaisha Image coding apparatus, control method therefor and computer program
CN102801996A (zh) * 2012-07-11 2012-11-28 上海大学 基于jndd模型的快速深度图编码模式选择方法
EP2731340A1 (en) * 2012-11-13 2014-05-14 Hon Hai Precision Industry Co., Ltd. Electronic device and method for splitting image
CN103179394A (zh) * 2013-01-21 2013-06-26 北京航空航天大学 一种基于区域视频质量平稳的i帧码率控制方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
FEIYANG ZHENG, ZHIRU SHI, XIAOYUN ZHANG, ZHIYONG GAO: "Fast H.264/AVC To HEVC Transcoding Based on Residual Homogeneity", 《IEEE》 *
YONGFANG SHI, OSCAR C. AU, HONG ZHANG, XINGYU ZHANG, LUHENG JIA,: "Local Saliency Detection based Fast Mode Decision for HEVC Intra Coding", 《IEEE》 *

Also Published As

Publication number Publication date
WO2016093995A1 (en) 2016-06-16
EP3231177A4 (en) 2018-08-01
US20160173906A1 (en) 2016-06-16
CN107113435B (zh) 2021-01-05
EP3231177A1 (en) 2017-10-18

Similar Documents

Publication Publication Date Title
CN104854866B (zh) 下一代视频的内容自适应、特性补偿预测
CN104885467B (zh) 用于下一代视频编码的内容自适应参数变换
CN107113435A (zh) 基于视频平坦性的分区模式和变换尺寸确定
CN106537918B (zh) 用于视频编码的运动估计的系统和方法
CN111010568B (zh) 插值滤波器的训练方法、装置及视频图像编解码方法、编解码器
CN106170979A (zh) 恒定质量视频编码
CN110214447A (zh) 用于360视频的解块滤波
CN109565587B (zh) 具有上下文解码和重构旁路的视频编码的方法和系统
JP7485839B2 (ja) ビデオピクチャ予測方法及び装置
CN104541505B (zh) 层间内部模式预测方法、设备及装置
CN107005701A (zh) 使用减少数量的角模式来降低帧内预测复杂度及其后续改进
CN104541506A (zh) 层间像素样本预测
CN104053005B (zh) 使用分级相平面相关性和块匹配的运动估计
CN107667528A (zh) 用于视频编解码的自适应参考帧缓存的方法和系统
CN109155856A (zh) 用于视频编解码的利用近邻块模式的运动估计的方法和系统
CN104169971A (zh) 使用非线性缩放和自适应源块大小的分层运动估计
KR102593525B1 (ko) 비디오 픽처 디코딩 및 인코딩 방법 및 장치
CN110351554A (zh) 用于视频编码的分割和模式决策的生成
CN103167286B (zh) 用于运动估计的详尽的子宏块形状候选保存和恢复协议
CN104798373A (zh) 包括在多个独立编码流之间的共享运动估计的视频编码
JP2016506165A (ja) インターレイヤの動きデータ継承
CN109891887A (zh) 解耦视频系数的规范和实现数据路径交织的转换缓冲器
CN110035290A (zh) 用于视频编码的解耦预测和编码结构
CN104717501A (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