CN105960803A - 递归块分区 - Google Patents

递归块分区 Download PDF

Info

Publication number
CN105960803A
CN105960803A CN201480074562.9A CN201480074562A CN105960803A CN 105960803 A CN105960803 A CN 105960803A CN 201480074562 A CN201480074562 A CN 201480074562A CN 105960803 A CN105960803 A CN 105960803A
Authority
CN
China
Prior art keywords
region
block
divisional type
pixels
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480074562.9A
Other languages
English (en)
Inventor
韩敬宁
罗纳德·塞巴斯蒂安·布特杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN105960803A publication Critical patent/CN105960803A/zh
Pending legal-status Critical Current

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/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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

递归块分区
相关申请的交叉引用
本申请要求2013年12月30日提交的标题为“RECURSIVEBLOCK PARTITIONING”的美国非临时专利申请第No.14/144,375号的优先权并且是该案的延续,其公开内容以引用的方式全部并入本文。
技术领域
本描述涉及用于递归块分区以及其在视频压缩中的熵编码的各种基于计算机的技术。
背景技术
一般而言,视频编解码能够实现数字视频的的压缩/解压缩。通常,在视频质量、表现视频所需的数据量(即,比特率)、编码/解码算法的复杂性、和一些其它因素之间存在复杂平衡。视频编解码器通常采用基于块的编码,其中,较大块大小使代码化方面的平均间接成本降低,而较小块大小可以允许在预测方面更灵活以减少残差能量。当处理块大小选择时,传统视频编解码在维持相对简单和简洁的编解码结构的同时使率失真代价最佳化方面有不足。近年来,使在平均间接成本与预测质量之间的折衷最佳化的共同策略是针对给定区域的共同策略,编码器可以对所有允许的块大小进行测试并且选择使率失真代价最小化的允许的块大小。该共同策略明确地将选定的块大小编码为比特流。不幸的是,由于传统编码,在所有块大小上的这类大规模搜索导致高度复杂的视频编解码实施方式。进一步地,明确地对块大小信息进行代码化充分地利用了空间相关性,这可能导致压缩效率低。同样,存在对通过其实现视频编解码的过程最佳化和/或和/或改进需要。
发明内容
根据本公开的各个方面,提供了一种用于存储指令的非暂时性计算机可读存储介质,该指令在被执行时使得至少一个处理器进行过程。所述指令可以包括被配置成将图像分为多个区域并且将多个分区类型应用于所述多个区域中的每个区域的指令。所述指令可以包括被配置成基于应用于所述多个区域中的每个区域的所述多个分区类型来为所述多个区域中的每个区域确定率失真(例如,率失真代价)的指令。所述指令可以包括被配置成基于应用于所述多个区域中的每个区域的所述多个分区类型来为所述多个区域中的每个区域确定代码化方案的指令。所述指令可以包括被配置成基于为所述多个区域中的每个区域确定的率失真代价和代码化方案来单独地对所述多个区域中的每个区域进行编码的指令。
根据本公开的各个方面,提供了一种用于存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得至少一个处理器执行过程。所述指令可以包括被配置成将视频分为多个像素块并且将多个分区类型应用于所述多个像素块中的每个像素块的指令。所述指令可以包括被配置成对于应用于所述多个像素块中的每个像素块的所述多个分区类型的第一分区类型,将第一分区类型的每个像素块分为多个像素子块,并且将所述多个分区类型重新应用于所述多个像素子块中的每个像素子块的指令。所述指令可以包括被配置成基于分别应用于并且重新应用于每个像素块和每个像素子块的所述多个分区类型来为每个像素块和每个像素子块确定率失真代价的指令。所述指令可以包括被配置成基于分别应用于并且重新应用于每个像素块和每个像素子块的所述多个分区类型来为每个像素块和每个像素子块确定代码化方案的指令。所述指令可以包括基于为每个像素块和每个像素子块确定的率失真代价和代码化方案来单独地对每个像素块和每个像素子块进行编码的指令。
根据本公开的各个方面,系统可以包括至少一个处理器和存储器。系统可以包括编码器,该编码器被配置成使得至少一个处理器将图像分为多个区域并且将多个分区类型应用于所述多个区域中的每个区域。编码器可以被配置成使得至少一个处理器:对于应用于所述多个区域中的每个区域的所述多个分区类型中的至少一个分区类型,将该至少一个分区类型的每个区域分为多个子区域,并且将所述多个分区类型重新应用于多个子区域中的每个子区域。编码器可以被配置成使至少一个处理器基于分别应用于并且重新应用于每个区域和每个子区域的所述多个分区类型来为每个区域和每个子区域确定率失真代价。编码器可以被配置成使至少一个处理器基于分别应用于并且重新应用于每个区域和每个子区域的多个分区类型来为每个区域和每个子区域确定编码方案。编码器可以被配置成使至少一个处理器基于分别为每个区域和每个子区域确定的率失真代价和编码方案来单独地对每个区域和每个子区域进行编码。
在附图或以下描述中阐释了一个或多个实施方式的细节。其它特征将通过描述和附图并且通过权利要求而变得显而易见。
附图说明
图1A是图示出了根据本公开的各个方面的用于实施各种基于计算机的技术的示例系统的框图,该各种基于计算机的技术用于递归块分区和其在视频压缩中的熵编码。
图1B是图示出了根据本公开的各个方面的与图1A所示的部分框相关联的示例组件的框图。
图2是图示出了根据本公开的各个方面的示例编码器的框图。
图3是图示出了根据本公开的各个方面的示例解码器的另一框图。
图4是图示出了根据本公开的各个方面的用于递归块分区的示例技术的框图。
图5是图示出了根据本公开的各个方面的用于基于上下文的熵编码的示例技术的框图。
图6A是图示出了根据本公开的各个方面的用于在编码器处产生表格的方法的过程流程。
图6B至图6C是根据本公开的各个方面的用于递归块分区的示例方法的过程流程。
图7是图示出了根据实施方式的概率表的示例的示意图。
图8是图示出了根据本公开的各个方面的用于递归块分区的另一示例方法的过程流程。
具体实施方式
图1A是图示出了根据本公开的各个方面的用于实施各种技术的示例系统100的框图,该各种技术用于递归块分区和其在视频压缩中的熵编码。在一些实施方式中,可以将图像分为多个区域(例如,每个区域具有诸如64×64像素的n×n像素的大小)。进一步地,可以通过率失真环路来对每个区域进行测试以发现最佳代码化决策决策(包括:将图像分为或者分区为区域或者像素块大小的方式、每块的预测模式、应用于每个块的变换类型等),并且然后可以以光栅顺序将每个区域代码化或者编码为比特流。在一些实施方式中,可以将图像分为多个区域,该多个区域具有诸如64×32像素的n×m像素的尺寸。
率失真环路可以用于在视频压缩中提高视频质量,并且可以涉及将失真量(视频质量损失)与用于对视频进行编码的数据量(数据率)进行比较并且确定该失真量。在一些实施方式中,率失真环路可以用于改善编码,其中,决策可以同时影响编码视频的文件大小和质量。
在图1A的示例中,系统100可以包括用于实施递归块分区的计算机系统。在图1A的示例中,编码器120可以包括:在正向通路上执行各种功能以使用输入视频流来提供编码比特流或者压缩比特流的一个或者多个阶段。如本文进一步所描述的,可以将输入视频流的图像或者视频帧分为多个区域,其中,可以通过率失真环路来对每个区域执行测试或者评估以发现最佳代码化决策,并且然后可以以光栅顺序将每个区域编码为比特流。
在图1A的示例中,解码器124可以包括:执行各种功能以提供来自编码比特流或者压缩比特流的输出视频流的一个或者多个阶段。如本文进一步所描述的,可以向用于解码的解码器提供编码比特流或者压缩比特流以提供输出视频流。在一些实施方式中,解码器124是编码器120的补充,因此,解码器124所使用的解码过程是编码器120所使用的编码过程的补充。下面结合例如图2至图5来描述与编码器120和解码器124的操作有关的更多细节。
在图1A的示例中,计算装置104可以包括与视频源114和网络118通信的服务器或者用户装置。在一些实施方式中,计算装置104可以配置为:经由视频接口130接收来自视频源114的视频数据流、经由编码器120对视频数据流执行编码、并且经由网络接口134通过网络118传送编码视频数据流。编码器120可以使用基于视频源114的块分区和其熵编码而被最佳化的编码过程。本文进一步描述了发生最佳化的(一个或多个)示例编码过程。
在一些实施方式中,计算装置104可以配置为:经由网络接口134接收来自网络118的视频数据流、经由解码器124对视频数据流进行解码、并且经由视频接口130将解码视频数据流显示在显示装置150上。解码器124可以使用基于视频数据流的块分区和其熵编码而被最佳化的解码过程。本文进一步描述了示例解码过程。
视频源114可以是能够提供、捕捉、和/或传送包括静态图像、视频帧等的视频图像的任何装置。例如,视频源114可以包括:计算机服务器、膝上型计算机、笔记本计算机、平板计算机、移动电话、个人数字助理、数码相机、数码摄像机、网络摄像机、或者能够提供、捕捉、和/或传送包括视频图像的图像的任何其它装置。在一些实施方式中,计算机装置104可以接收来自多个视频源114的音频和/或视频,并且将源合并为单个视频数据流。
在一些实施方式中,计算装置104可以处于网络118的一个节点处,并且可以操作为与网络118的一个或者多个其它节点直接地并且间接地通信。例如,计算机装置104可以包括web服务器,该web服务器操作为经由网络118与一个或者多个客户端装置通信,使得计算装置104使用网络118来向用户传送信息并且将该信息显示在显示装置152上。虽然通常参照计算装置104来描述本文所述的概念和技术,但是本公开的各个方面可以应用于能够实施编码/解码操作的任何装置和/或计算节点。
在一些实施方式中,系统100可以配置成为数据提供隐私保护,包括例如,个人可识别信息的匿名化、数据的聚合、敏感信息的过滤、移除个人属性的敏感信息的加密、散列或者过滤、有关信息存储的时间限制、和/或有关数据使用或者共享的限制。这样,可以使数据匿名化并且聚合,使得个人用户数据不会被透露。
在图1A的示例中,视频接口130可以配置为:为与许多不同的音频和视频标准有关的输入提供硬件和/或软件接口,该音频和视频标准定义为在计算装置、外围设备、和各种类型的电气设备之间的连接指定的物理特性和参数的类型。这些音频和视频标准可以定义用于信号的成功传输的模拟和数字视频数据传输协议。例如,数字接口可以用于将视频源连接至用于传输诸如输入视频流的数字视频内容的诸如计算机的计算装置。在某些情况下,可以将视频接口130设计为接收来自视频源114的输入视频流,并且将其提供给用于编码的编码器120。
在图1A的示例中,网络接口134可以配置为管理传送编码器120所编码的视频数据流。进一步地,网络接口134可以配置为管理接收解码器124所解码的视频数据流。网络接口134可以配置为接收来自该至少一个处理器110的指令以配置用于传送和接收视频数据流的网络参数和网络协议。
网络118可以包括各种配置并且使用各种协议,包括:互联网、万维网、内联网、虚拟专用网、本地以太网、使用一个或者多个公司专有的通信协议的专用网络、蜂窝和无线网络(例如,Wi-Fi)、即时通信、超文本传输协议(“HTTP”)、简易邮件传输协议(“SMTP”)、以及上述事项的各种组合。进一步地,系统100可以是经由网络118通信的相连计算机的较大系统的一部分。
虽然如上面所看到的那样在传送或者接收信息时获得某些优点,但是本文所描述的系统和方法的其它方面并不限于信息传输的任何特定方式。例如,在一些实施方式中,可以经由诸如光盘或者便携式驱动的介质传送信息。在其它实施方式中,可以以非电子格式传送信息和/或将该信息手动输入到系统中。
在图1A的示例中,系统100可以包括用于实施递归块分区的计算机系统,该递归块分区可以与计算装置104相关联,该计算装置104可以配置为专用机器,该专用机器设计为实施用于递归块分区和其在视频压缩中的熵编码的各种基于计算机的技术,如本文所描述。从这个意义上讲,计算装置104可以包括任何(一个或多个)标准元件和/或(一个或多个)组件,包括至少一个处理器110、至少一个存储器112(例如,非暂时性计算机可读存储介质)、至少一个数据库140、电源、(一个或多个)外围设备、以及在图1A中可能未被特别示出的各种其它计算元件和/或组件。进一步地,系统100可以与显示装置150(例如,监视器或者其它显示器)相关联,该显示装置150可以用于提供用户界面(UI)152,诸如,例如,图形用户界面(GUI)。UI 152可以用于接收来自利用系统100的用户的输入。
这样,可以添加或者包括系统100的可以用于实施系统100的各种其它元件和/或组件。进一步地,在各种实施方式中,计算装置104可以包括任何类型的装置,诸如,计算机服务器、膝上型计算机、笔记本计算机、平板计算机、移动电话、个人数字助理、或者能够处理(例如,编码、解码等)和/或传送包括静态图像和视频图像的图像的任何其它装置。
虽然图1A在单个功能框内功能地图示出了至少一个处理器110和至少一个存储器112,但是应该理解,该至少一个处理器110和该至少一个存储器112可以包括:可以或可以不被存储在相同的物理壳体内的多个处理器和存储器。这样,对(一个或多个)处理器、(一个或多个)计算机、和/或(一个或多个)存储器的引用可以包括对可以并行操作或者可以不并行操作的一些处理器、计算机、和/或存储器的引用。
在图1A的示例中,系统100可以包括计算装置104和记录在计算机可读介质112并且可由至少一个处理器110执行的指令。进一步地,在一个实施方式中,系统100可以包括用于向用户提供输出的显示装置150,并且显示装置150可以包括用于接收来自用户的输入的UI 152。
在图1A的示例中,应该理解,通过使用或多或少地表示离散功能的各种功能框或者模块来图示出系统100。然而,为了清晰和方便起见提供了这种图示,且因此应该了解,各种功能可能与所述(一个或多个)框或者(一个或多个)模块重叠或者被结合在所述框或者模块内,并且/或者可以由在图1A的示例中未被具体图示出的一个或者多个框或者模块实施。这样,应该了解,为了清晰和方便起见,即使没有明确地图示出这种传统元件,也可以包括可能被认为对图1A的系统100有用的传统功能。
图1B是图示出了根据本公开的各个方面的与图1A所示的部分框相关联的示例组件的框图。具体地,图1B示出了与图1A所示的存储器112和编码器120相关联的示例组件。
在图1B的示例中,存储器112可以包括概率表160,其中,每个概率表160与一个或者多个概率值(例如,CN1、CN2、CN3、CN4)相关联和/或用该一个或者多个概率值来填充。在各种实施方式中,存储器112可以包括诸如概率表160的任何数量的概率表以及任何数量的相关联概率值。在一些实施方式中,概率值中的一个或者多个概率值可以与一个或者多个其它概率表(未示出)有关。可以为在包括一组视频帧的视频序列中的每个帧修改/更新在概率表160中所包括的一个或者多个概率值。概率值CN1、CN2、CN3、CN4可以各自与对在视频帧内的块进行编码结合使用的特定分区类型的概率相关联。
进一步地,在图1B的示例中,编码器120可以包括一个或者多个组件(例如,处理组件),该一个或者多个组件包括视频序列检测器162、概率计算器164、和分区模块165。在一些实施方式中,可以将视频序列的每个视频帧分为小区域网格,其中,可以通过率失真最佳化环路来测试每个区域以发现最佳代码化决策,并且然后以光栅顺序将该每个区域代码化为比特流。
视频序列检测器162可以配置为识别在视频帧序列中的第一帧。例如,视频序列检测器162可以配置为检测新的视频序列、重新设置/重新开始概率计算、并且更新/修改概率表,包括例如,将概率表重新设置为默认在视频序列的开始(第一帧)。在一些实施方式中,视频序列检测器162可以配置为当检测到视频序列的第一帧时,改变概率分布数和/或值。
概率计算器164可以配置为:基于在视频帧序列中的第一帧(或者随后的帧)的编码来将与分区类型相关联的概率值(例如,概率值CN1)修改/更新为更新的概率值。在一些实施方式中,可以对每个概率表160的概率值进行修改/更新,以使针对在视频序列中的每个帧的代码化决策最佳化。
分区模块165可以配置为基于存储在存储器112中的概率表160来对在视频序列中的第一帧进行编码。在一些实施方式中,概率表160可以包括与一个或者多个分区类型相关联的一个或者多个概率值。进一步地,分区模块165可以配置为基于在概率表160中包括的更新的概率值来对在视频帧序列中的第二帧进行编码。在一些实施方式中,可以递归地对每个帧进行编码以确定最佳代码化决策,最佳代码化决策包括将每个帧分区为较小块大小的方式、每块的预测模式、应用于每个块的变换模式等。
分区模块165可以包括一个或者多个组件,该一个或者多个组件包括邻居块分析器166和分区选择器167。在一些实施方式中,邻居块分析器166可以配置为识别包括左边邻居块和上方邻居块的邻居块(和/或不同的邻居),并且分区选择器167可以配置为将各种分区类型应用于一个或者多个邻居块以进行进一步分析,所述分析包括在参照邻居块的分区来识别当前块的最佳分区。
根据本公开的各个方面,编码器120可以配置为利用基于上下文的熵编码方法来分析邻居块,并且选择分区类型来使代码化决策最佳化。例如,用于分区类型代码化的概率模型可以以下列因素中的一个或者多个为条件:当前块大小(例如,64×64、32×32、16×16、8×8、4×4、2×2等)、其上方邻居块的分区类型、其左边邻居块的分区类型。每个条件概率模型可以是后向自适应的,并且可以以每帧为基础而被更新。该基于上下文的熵代码化技术可以用于有效地利用空间相关性,其中,分区类型倾向于与连续区域保持一致,并且可以用于实现各种性能增益。
与超过所有可能的块大小的传统大规模搜索方法不同,本公开的基于上下文的熵代码化技术配置为使用用于最佳率失真搜索以及最佳编码和解码过程的递归块分区。在率失真最佳化阶段期间,可以通过多个分区类型(诸如,例如,垂直(vert)分区、水平(horz)分区、无(none)分区、以及拆分(split)分区为更小的区域/块)来对每个区域/块进行测试。进一步地,然后通过各种可能的预测模式、滤波类型、变换尺寸等来独立地对结果子块中的每个结果子块进行测试,以发现其(局部)最佳代码化决策。本文更详细地描述了本公开的这些和各种其它方面。
图2是图示出了根据本公开的各个方面的示例编码器200的框图。可以诸如通过提供在例如存储器112(在图1A中示出)的存储器中存储的计算机软件程序来在计算装置、服务器、传送站等中实施编码器200。编码器200可以包括在正向通路208(例如,如流虚线所示)上执行各种功能以通过使用输入视频流210来提供编码或者压缩比特流230的一个或者多个阶段。在各种实施方式中,正向通路208可以包括:作为对编码器200的输入的输入视频流210,其后跟随内部/中间预测阶段214(例如,可以从初始视频信号中减去预测信号以生成用于下个阶段的残差)、变换阶段218、量化阶段222、和熵编码阶段226。
编码器200可以包括重构通路232(例如,如连接虚线所示)以重构用于未来块的编码的帧。在一些实施方式中,这可以确保编码器200和解码器300(例如,如图3所示)使用相同的参考来对编码器200所提供的编码或者压缩比特流230进行解码。如图2所示,编码器200可以包括在重构通路232中执行各种功能的一个或者多个附加阶段。在各种实施方式中,重构通路232可以包括解量化阶段234、反变换阶段238、重构阶段242、和环路滤波阶段246。在其它实施方式中,编码器200的结构变化可以用于对输入视频流210进行编码。
当将输入视频流210发送至用于编码的编码器200时,可以以块为单元处理输入视频流210的每个帧。在一些实施方式中,在内部/中间预测阶段214,可以使用帧内预测(其可以被称为内部预测)或者帧间预测(其可以被称为其间预测)来对每个块进行编码。在任何情况下,可以形成(例如,定义)预测块。在内部预测的情况下,预测块可以由在已经被先前编码和重构的当前帧中的采样形成。在其间预测的情况下,预测块可以由在一个或者多个先前构建的参考帧中的采样形成。在内部/其间预测阶段214,可以从当前块中减去预测块以提供残差块(其可以被称为残差)。变换阶段218可以配置为将残差转变为在例如频域中的系数。
进一步地,在一些实施方式中,量化阶段222可以配置为使用量化器值或者量化级别来将变换系数转换为离散量子值,该离散量子值可以被称为量化变换系数。然后可以通过熵编码阶段226来对量化变换系数进行熵编码。然后将熵编码系数连同用于对可以包括例如所使用的预测类型、运动矢量和量化器值的块进行解码的其它信息一起输出至编码或者压缩比特流230。在各种实施方式中,可以使用各种技术(诸如例如变长代码化(VLC)、算术代码化)来使压缩比特流230格式化。压缩比特流230也可以被称为编码视频流或者编码输出视频流。熵编码阶段226可以配置为生成一个或者多个概率表,并且生成一个或者多个概率值以用本文所描述的方式来填充概率表。
在一些实施方式中,视频编解码可以采用基于块的代码化去,其中,将每个帧分区为块网格,然后使用跟随有空间变换和量化的帧间/帧内预测来独立地对每个块进行代码化。大块大小可以导致在对预测模式、参考帧索引、运动矢量等进行代码化方面的平均间接成本更低,而小块大小可以允许在预测方面的更多灵活性,从而减少残差能量。本公开的各个方面可以配置为提供方法和设备来有效地处理块大小选择以在维持相对简单和简洁的编解码结构的同时使总体率失真代价权衡最佳化。进一步地,在编码器200中设置互补的熵代码化技术,以对每个选定块大小进行代码化/解码,从而充分地利用用于对性能增益进行代码化的空间相关性,本文进一步对此进行了描述。
使在平均间接成本与预测质量之间的折衷最佳化或者平衡的一个策略为针对给定区域的策略,编码器可以对每个允许的块大小进行测试并且选择使率失真代价最小化的至少一个块大小。进一步地,编码器然后可以明确地将选定的块大小编码为比特流。超过每个块大小的这种大规模搜索可能导致高度复杂的视频编解码实施方式。此外,明确地对块大小信息进行代码化充分地利用了空间相关性,这可能导致压缩效率低。
然而,本公开的各个方面使用递归块分区,这在维持相对简单和简洁的编解码实施方式的同时允许在使块大小最佳化方面的更多灵活性。在一些实施方式中,递归块分区将实际块大小的代码化转化为结合基于上下文的熵代码化的分区类型的代码化(本文进一步描述),从而提供改进的性能增益。根据允许的块大小的灵活性可以通过维持简单和简洁的编解码结构来提高压缩效率。进一步地,在一些实施方式中,分区类型的基于上下文的熵代码化可以提供进一步对性能增益进行代码化。本公开的各个方面可以应用于研究并且开发视频编解码和/或各种视频压缩技术(例如,编解码设计)。更进一步地,本公开的各个方面可以应用于和/或适用于与视频流和/或静态图片代码化有关的技术。
图3是图示出了根据本公开的各个方面的示例编码器300的框图。在一些实施方式中,解码器300可以与编码器200的重构通路232相似。解码器300可以包括执行各种功能以提供来自编码或者压缩比特流310的输出视频流342的一个或者多个阶段。解码器300可以包括熵解码阶段314、解量化阶段318、反变换阶段322、重构阶段326、环路滤波阶段330、内部/其间预测阶段334、和解块滤波阶段338。在其它实施方式中,解码器300的结构变化可以用于对压缩比特流310进行解码。
当向用于解码的解码器300提供压缩比特流310时,可以由熵解码阶段314(例如,使用VLC、算术代码化等)来对在压缩比特流310内的数据元素进行解码以产生一组量化变换系数。解量化阶段318可以配置为对量化变换系数进行解量化,并且反变换阶段322可以配置为对解量化变换系数进行反变换以提供导数残差,该导数残差可以与由编码器200的反变换阶段238生成的导数残差相同。在一些实施方式中,使用从压缩比特流310解码的头信息,解码器300可以配置为使用内部/其间预测阶段334来生成与由内部/其间预测阶段214在编码器200中生成的预测块相同的预测块。在重构阶段326,可以将预测块添加至导数残差以生成重构块。可以将环路滤波阶段330应用于重构块以降低块效应。在一些实施方式中,可以将各种其它滤波应用于重构块。例如,可以将解块滤波阶段338应用于重构块以降低导致例如输出视频流342的输出的块失真。可以将输出视频流342称为解码视频流或者解码输出视频流。
图4是图示出了根据本公开的各个方面的用于递归块分区400的示例技术的框图。在图4中,在一些实施方式中,可以将图像410(例如,视频帧)分为诸如区域网格的多个区域414,其中,每个区域418至少可以比图像本身小(例如,每个区域的尺寸为64×64像素)。在这种情况下,可以利用率失真环路来对每个区域418进行测试以评估和发现最佳代码化决策(包括:将图像410分为或者分区为更小块大小的方式、每块的预测模式、应用于每个块的变换类型等),并且然后以光栅顺序将该每个区域418代码化为比特流。
关于最佳代码化方案,对于给定区域,编码器可以配置为对一个、一些、或者全部可能的分区(划分)类型进行测试,其中,每个类型导致一组子块,该一组子块可以是互相排斥的并且一起可以覆盖整个区域。编码器然后可以对在每个子块上的包括预测模式、参考源、滤波类型、变换类型和大小等的各种可能的代码化模式进行测试,并且获得使该子块的率失真代价最小化或者具有满足阈值条件(例如,阈值)的率失真代价的一种可能的代码化模式。给定区域的每个分区类型现在可以与率失真代价值相关联,该率失真代价值可以被计算为每个子块的最小率失真代价的总和。因此,编码器可以选取或者选择提供最小总体代价的分区类型。
与超过所有可能的块大小的传统大规模搜索不同,本公开的各个方面可以配置为进行用于率失真搜索以及编码和解码过程的递归块分区方法,如本文所描述的。在各个实施方式中,在率失真最优化阶段期间,可以通过多个分区类型426来对每个区域418进行测试,所述多个分区类型426诸如例如包括无分区(none)分区类型430、水平(horz)分区类型432、垂直(vert)分区类型434、和拆分分区类型436的四个分区类型中的至少一个,该至少一个类型将每个区域438分为四个更小的区域(拆分)或者被称为子块的子区域438。如图4所示,然后可以通过一种或者多种可能的预测模式、滤波类型、变换尺寸等来独立地对结果子区域438进行测试,以发现其(局部)最佳代码化决策。这指的是图像410的递归分区。
在一些实施方式中,分区操作可以应用于方形块。例如,区域可以包括N×N的大小,其中,N为偶数(例如,二的幂)。四个分区类型可以导致以下子块大小:
无分区(NONE)->一个N×N子块,
拆分分区(SPLIT)->四个(N/2)×(N/2)子块,
垂直分区(VERTICAL)->两个(N/2)×N子块,以及
水平分区(HORIZONTAL)->两个N×(N/2)子块。
在一些实施方式中,第一分区类型可以包括具有尺寸相似的四个子块的拆分分区类型436,第二分区类型可以包括具有两个尺寸相似的、水平布置的两个子块的水平分区类型432,第三分区类型可以包括具有尺寸相似的、垂直布置的两个子块的垂直分区类型434,并且第四分区类型可以包括具有单个块的无分区类型430。
在一些实施方式中,可以认为包括无分区430、水平分区432和垂直分区434的分区类型426是终端节点,即,其中无进一步分区可以应用于子块内部。然后可以认为拆分分区类型436的子区域438是起始点,可以通过包括无分区430、水平分区432、垂直分区434和拆分分区456的四个分区类型446中的每一个来对该起始点进行递归测试。在这种情况下,可以将第一次划分414的每个区域418分为在第二次划分446中的多个子区域438,诸如四个区域的网格。可以为拆分分区类型的每次迭代重复该递归分区任意多次。在一些实施方式中,该递归分区可以开始于64×64像素块,每个下一次递归分区接下来是一系列32×32像素块、16×16像素块、8×8像素块、和4×4像素块。在一些实施方式中,从4×4像素块开始,递归分区可以紧接下来至2×2像素块。在其它实施方式中,递归分区可以从任何n×n像素块开始并且结束于任何n×n像素块。应该理解,可以可选地迫使代码化模式信息(诸如,例如,参考帧索引、滤波类型等)被分配为超过某个块大小级别。
一旦选定最佳代码化模式,编码器200就可以配置为将该选定的最佳代码化模式写入到比特流中。替代明确地对在给定区域内的实际块大小进行代码化之外,该递归分区方法以递归方式对分区类型进行代码化。例如,该递归分区方法可以从64×64块开始并且写入该分区类型。如果该类型为垂直分区、水平分区、或者无分区,则可能已经对子块大小进行了解析,因此无进一步分区信息被发送。如果该类型为拆分分区类型,则编码器200可以写入另外四个分区类型,每个分区类型针对一个子块。在一些实施方式中,编码器200重复发送分区类型信息,直到达到垂直分区/水平分区/无分区的分区类型,或者在一些情况下,例如8×8以下块大小。解码器300可以配置为从64×64块开始,读取分区类型,并且相应地解析子块大小。
进一步地,本公开的各个方面配置为对分区信息进行基于上下文的熵代码化方法。例如,用于分区类型代码化的概率模型可以以下列三个因素为条件:当前块大小(例如,64×64、32×32、16×16等)、其上方邻居块的分区类型、其左边邻居块的分区类型,如参照图5所描述的。在一些实施方式中,这些条件概率模型可以配置为后向自适应,并且可以是逐帧被更新。这种基于上下文的熵代码化方法有效地利用了空间相关性,即,其中分区类型倾向于与连续区域保持一致,并且该基于上下文的熵代码化方法可以实现某些性能增益。
在一些实施方式中,可以将自然视频信号视为(模型化为)平稳随机过程。块可以处理与一个或者多个附近块的某些相似之处,包括像素值、运动信息等。例如,如果帧包括在明亮的背景前面水平移动的深色对象,则包括对象边缘的块(区域)可以倾向于被垂直分区,使得可以单独地对分别包括对象和背景的子块进行代码化,这在使每个子块的代码化模式最优化方面允许更多的灵活性。
在图4的实施方式中,本公开的系统和方法可以配置为:将图像410(例如,视频帧)分为多个区域414、将多个分区类型426应用于多个区域中的每个区域418、并且基于应用于每个区域418的多个分区类型426来为每个区域418确定率失真代价。进一步地,本公开的系统和方法可以配置为:基于应用于每个区域418的多个分区类型426来为每个区域418确定代码化方案、并且基于为每个区域418确定的率失真代价和代码化方案来单独地对每个区域418进行编码。在一些实施方式中,该分区方法可以以重复方式递归地应用于诸如拆分分区类型436的分区类型426中的至少一个的一个或者多个子区域438以实现最佳率失真代价。率失真环路可以用于在视频压缩中提高视频质量,并且可以涉及将失真量(视频质量损失)与用于对视频进行编码的数据量(数据率)进行比较并且确定该失真量。在一些示例中,率失真环路可以用于改善编码,其中,决策可以同时影响编码视频的文件大小和质量。
图5是图示出了根据本公开的各个方面的用于分区类型的基于上下文的熵编码的示例技术的框图。在一些实施方式中,如本文所描述,分区类型的采样空间可以包括至少4个条目,包括无分区(NONE)、水平分区(HORZ)、垂直分区(VERT)、和拆分(SPLIT)为4个子块。大小范围从例如8×8到64×64的每个方块可以被分配至少一个分区类型。可以通过使用采用在采样空间上的概率分布的熵代码化来对该符号进行代码化以实现压缩。
例如,如图5所示,块A和块B可以表示先前代码化的块,并且块C可以表示待编码的块。参考自然视频/图像信号的空间一致性,如果A被垂直地分区(即,VERT或者SPLIT),则C也更有可能被垂直地分区。同样地,如果B被水平地分区(即,HORZ或者SPLIT),则C也非常可能被水平地分区。因此,本公开的各个方面提供了一种由熵代码器使用的依赖于在图5中的其上方(即,A)代码化邻居和左边代码化邻居(即,B)的概率分布。进一步地,本公开的各个方面识别有关块C的块大小的概率模型(分布)的潜在依赖,例如,假定上方/左边块分区类型相同,64×64块可能比8×8块更有可能选择SPLIT。
因此,该工作采用概率模型阵列来捕捉上述依赖,如图5所图示。进一步地,该工作根据邻居上方/左边(A和B)分区类型和当前块大小来计算索引数、从阵列中检索对应概率模型、并且使用所检索的模型用于C分区类型的熵代码化。
以下为用于分区类型的基于上下文的熵编码的采样代码:
检索上下文信息的源代码:
在一些实施方式中,参考递归块分区方法和其在视频压缩中的熵代码化,如参照图4至图5所描述的,可允许的块大小可以包括各个n×n像素块,诸如8×8、16×16、32×32、64×64,并且如本文所描述,其中,可以将每个块大小代码化为4个分区类型{NONE,HORZ,VERT,SPLIT}。
在这一点上,在一些实施方式中,可能的结果可以是方形块或者矩形块。可以跳过任意一个或者多个分区类型。例如,对于32×32块,最佳过程或者技术可以在编码为一个32×32块、或者两个32×16子块两者中作出选择,并且因此跳过其它分区类型的测试以使最佳化过程加速。
在一些实施方式中,参照图5,可以经由以下规则将分区类型A和B的组合转化为范围从0到3的整数:
如果A的分区类型为VERT或者SPLIT,则a=2;否则,a=0;
如果B的分区类型为HORZ或者SPLIT,则b=1;否则,b=0;
合并这些两个因素产生c=(a+b)。
根据块大小进一步使该数c偏移:
如果块大小为8×8,则偏移量=0;
如果块大小为16×16,则偏移量=4;
如果块大小为32×32,则偏移量=8;
如果块大小为64×64,则偏移量=12;
将可以用于从阵列中检索概率模型的总体索引计算为(c+偏移量)。
如本文所描述,基于上下文的熵代码化可以应用于分区信息,其中,用于分区类型代码化的概率模型以因素中的一个或者多个为条件,所述因素包括当前块大小(例如,64×64、32×32、16×16、8×8等)、其上方块的分区类型、和其左边块的分区类型。可以认为这些条件概率模型是后向自适应的,并且可以以每帧为基础来更新这些条件概率模型。该基于上下文的熵代码化技术可以用于有效地利用空间相关性,其中,在一些示例中,分区类型倾向于与连续区域保持一致,并且可以用于实现某些性能增益。
例如,在一些实施方式中,参照图5,可以认为概率分布依赖于其上方(a)代码化邻居(例如,A)和其左边(l)代码化邻居(例如,B)的分区类型。进一步地,在一些示例中,假定上方/左边块分区类型相同,例如64×64块的块C的块大小的概率模型(分布)的潜在依赖可能比8×8块更有可能选择SPLIT。因此,概率模型阵列可以用于捕捉这些潜在依赖,如图5所示。
在一些实施方式中,可以生成一个或者多个概率表以基于其上方邻居块和左边邻居块的分区类型来为当前块识别概率分布。这样,本公开的各个方面基于邻居块(例如,上方邻居块和左边邻居块)的分区类型来为当前块的基于上下文的熵代码化提供构建表(例如,概率表(也可以被称为概率分布表))。
在一些实施方式中,默认概率表可以用于在视频序列(其可以被称为视频帧序列)中的第一帧,并且概率表更新可以应用于基于第一帧的分区类型的概率分布的下一帧(其可以被称为后续帧)。在一些示例中,图1A和/或图1B的编码器120可以用于生成概率分布表。
图1B是图示出了与图1A所示的计算装置104相关联的示例组件的示意图。如图1B所示,存储器112可以配置为存储概率表160,并且编码器120可以配置为基于存储在概率表160中的概率值来以最佳方式对在视频帧中的每个块进行编码。
例如,参照图1B和图4的示例,编码器120可以配置为:将图像(例如,视频帧)分为多个区域,将多个分区类型(例如,垂直、水平、无、拆分)应用于多个区域中的每个区域,并且基于应用于每个区域的多个分区类型来为每个区域确定最佳率失真代价。进一步地,编码器120可以配置为:基于应用于每个区域的多个分区类型来为每个区域确定最佳代码化方案,并且基于为每个区域确定的最佳率失真代价和最佳代码化方案来单独地对每个区域进行编码。
在一些实施方式中,可以以重复方式将该分区技术递归地应用于每个分区类型的每个区域和子区域以实现最佳率失真代价。率失真环路可以用于在视频压缩中提高视频质量,并且可以涉及将失真量(视频质量损失)与用于对视频进行编码的数据量(数据率)进行比较并且确定该失真量。在一些示例中,率失真环路可以用于改善编码,其中,决策可以同时影响编码视频的文件大小和质量。
图6A是示出了根据本公开的各个方面的用于在编码器120处产生概率表的方法600的流程图。编码器120可以配置为将一个或者多个概率表160存储在存储器112中,包括将默认概率表存储在计算装置104的存储器112中。
在图6A的示例中,图示出了操作602至608作为以相继顺序发生的离散操作。然而,应该了解,在其它实施方式中,操作602至操作608中的两个或者多个可以以部分或者完全重叠或者并行的方式、或者以嵌套的或者循环的方式发生,或者可以以与所示的顺序不同的顺序发生。进一步地,也可以在一些示例实施方式中包括在图6A的示例中可能未被具体图示出的附加操作,而在其它实施方式中可以省略操作602至操作608中的一个或者多个。在一些实施方式中,方法600可以包括用于在图1A的系统100中的递归块分区的计算机实施的方法的过程流程。进一步地,如本文所描述,操作602至608可以提供简化的操作过程流程,该简化的操作过程流程由计算装置104制定以提供参照图1A所描述的特征和功能。
在图6A的示例中,在602处,方法600可以包括识别在视频帧序列中的第一帧。例如,编码器120可以配置为检测新的视频序列、重新设置/重新开始概率计算、并且更新/修改概率表,包括例如,将概率表重新设置为默认在视频序列的开始(第一帧)。在一些实施方式中,编码器120可以配置为:当检测到视频序列的第一帧时,改变概率分布数和/或值。
在604处,方法600可以包括:基于存储在存储器中的概率表来对在视频帧序列中的第一帧进行编码,其中,概率表包括与分区类型相关联的概率值。例如,编码器120可以配置为基于存储在存储器中的概率表中的至少一个概率表来对在视频帧序列中的第一帧进行编码。在一些实施方式中,每个概率表可以包括与一个或者多个分区类型相关联的一个或者多个概率值。在一些实施方式中,可以递归地对每个帧进行编码以确定最佳代码化决策,包括以将每个帧分区为较小块大小的方式、每块的预测模式、应用于每个块的变换类型等。
在606处,方法600可以包括:基于在视频帧序列中的第一帧的编码来将与分区类型相关联的概率值修改为更新的概率值。例如,编码器120可以配置为基于在视频帧序列中的第一帧的编码来将与分区类型相关联的概率值修改/更新为更新的概率值。在一些实施方式中,可以对每个概率表的概率值进行修改/更新,以使针对在视频序列中的每个帧的代码化决策最佳化。
在608处,方法600可以包括:基于在概率表中所包括的更新的概率值来对在视频帧序列中的第二帧进行编码。例如,编码器120可以配置为基于在概率表中包括的修改的/更新的概率值来对在视频帧序列中的第二帧进行编码。如本文所描述,存储器112可以包括概率表160,其中,概率表160包括一个或者多个概率值。
根据本公开的各个方面,编码器120可以配置为利用基于上下文的熵代码化方法来分析邻居块,并且选择使代码化决策最佳化分区类型。例如,用于分区类型代码化的概率模型可以以下列因素中的一个或者多个为条件:当前块大小(例如,64×64、32×32、16×16、8×8、4×4、2×2等)、上方邻居块的分区类型、以及左边邻居块的分区类型。每个条件概率模型可以是后向自适应的,并且可以以每帧为基础而被更新。该基于上下文的熵代码化技术可以用于有效地利用空间相关性,其中,分区类型倾向于与连续区域保持一致,并且可以用于实现各种性能增益。
参照图1A的示例,解码器124可以包括执行各种功能以提供从编码比特流或者压缩比特流解码的输出视频流的一个或者多个阶段。如本文所描述,根据本公开的各个方面,可以向用于解码的解码器提供编码比特流以提供解码输出视频流。在一些实施方式中,解码器124是编码器120的补充,因此,解码器124所使用的解码过程是编码器120所使用的编码过程的补充,其中,解码器124配置为执行与编码器120所执行的编码过程相反的解码过程。
图7是示出了根据实施方式的概率表700的示例的示意图。如图7所示,概率表700包括两个不同的块部分:块部分B和块部分A。每个块部分与正在被处理的当前块大小相关联。例如,概率表700的块部分A用于做出与具有块大小A至块大小B(例如,64×64至32×32)的块的拆分有关的决策。块大小A可以被称为正在被处理的当前块大小,并且块大小B可以被称为目标块大小。概率表700的块部分B用于做出与具有块大小B至例如块大小C(例如,32×32至16×16)的块的拆分有关的决策。尽管未示出,也可以包括附加块部分和/或大小(包括非方形大小)。
在该示例中,块部分A包括四行三列的概率值。四行由字符P至S描绘,并且列由数字1至3描绘。因此,在第二行和第二列上包括概率值Q2。
行P至S中的每一行与不同类型的邻居分析相关联。作为具体示例,行P可以包括用于分析均未拆分的上方邻居和左边邻居(对于正在被分析的即时块)的概率值,并且行Q可以包括用于分析被拆分的上方邻居和未被拆分的左边邻居的概率值。因此,编码器(例如,图1A所示的编码器120)可以配置为在当前块的分析期间选择概率表700的一行概率值,该当前块与块邻居(例如,相邻)的块的拆分(或者非拆分)相一致。
概率值可以表示可以由熵代码器使用的值。在编码期间,熵代码器可以配置为基于在概率表700中所包括的概率值来分配比特率。可以由熵代码器将更少的比特数分配给概率值所表示的相对高的结果(例如,相对高的可能结果、更有可能的结果),并且可以由熵代码器将更高的比特数分配给概率值所表示的不太可能的结果。
在概率表700中的每列与不同类型的分区相关联。例如,概率值P1(在行P中)可以表示无分区的概率,概率值P2可以表示垂直拆分的概率,并且概率值P3可以表示水平拆分的概率。如果没有满足针对与概率值P1至P3相关联的拆分的条件,则分区分析的结果为不同的拆分(例如,完整的四通拆分)。在一些实施方式中,概率表700可以包括具有100%概率并且如果与概率值的前三列(例如,P1至P3)相关联的条件没有得到满足则与最终结果相关联的第四列。
在一些实施方式中,概率值可以具有例如从0到255的范围。较高的概率值可以是与该概率值相关联的结果的概率。例如,概率值P2可以表示垂直拆分的概率,并且按照从0到255的比例,概率值P2可以为245。因此,基于概率值P2的垂直拆分的概率非常高。
在一些实施方式中,可以在对帧序列中的帧进行处理期间对在概率表700中所包括的概率值进行更新。例如,概率表700可以是默认概率表,该默认概率表可以用于在视频序列或者帧序列中的初始帧(例如,第一帧)。根据在初始帧中的块拆分结果,可以对在概率表700中包括的概率值进行修改以对后续帧(例如,第二)进行编码。作为具体示例,概率值P2可以表示与在块大小A至块大小B的块内的垂直拆分相关联的概率。如果在从块大小A到块大小B的第一帧内的垂直拆分分布较高,则可以增加概率值P2以处理第二帧的块。另一方面,如果在从块大小A到块大小B的第一帧内的垂直拆分分布较低,则可以减小概率值P2以处理第二帧的块。
在一些实施方式中,可以存储对在概率表700中包括的概率值中的一个或者多个的变化作为与在概率表700中包括的默认概率值的差异(残差)。可以存储该差异,并且该差异可以与正在被处理的块或者帧相关联。因此,在解码期间,解码器(例如,图1A所示的解码器124)可以结合默认概率值使用该差异。
可以利用对每个帧(或者块组)的处理来执行概率值的修改。在一些实施方式中,默认概率值可以初始地用于在视频帧序列中的第一帧。例如,默认概率值可以用于I帧,并且可以为在I帧之后被处理的每个后续P帧或者B帧修改(根据默认概率值)概率值。当达到新的I帧(与视频帧(例如P帧、B帧)序列相关联)时,可以重新建立默认概率值,并且该默认概率值可以再次用于与新的I帧相关联的帧。
以下为具体示例概率表(其可以是默认概率表),可以生成该具体示例概率表以基于当前块的上方邻居块和左边邻居块的分区类型来为当前块识别概率分布。要注意,正在被处理的块大小和目标块大小(例如,//8×8->4×4)是上文提到的表的块部分(其各自包括4行和3列)。在该示例中,概率值的范围在0和255之间。在一些实施方式中,范围能够是不同的。
//8×8->4×4
{199,122,141},//上方/左边均未拆分
{147,63,159},//上方被拆分,左边未拆分
{148,133,118},//左边被拆分,上方未被拆分
{121,104,114},//上方/左边均被拆分
//16×16->8×8
{174,73,87},//上方/左边均未拆分
{92,41,83},//上方被拆分,左边未被拆分
{82,99,50},//左边被拆分,上方未被拆分
{53,39,39},//上方/左边均被拆分
//32×32->16×16
{177,58,59},//上方/左边均未拆分
{68,26,63},//上方被拆分,左边未被拆分
{52,79,25},//左边被拆分,上方未被拆分
{17,14,12},//上方/左边均被拆分
//64×64->32×32
{222,34,30},//上方/左边均未拆分
{72,16,44},//上方被拆分,左边未被拆分
{58,32,12},//左边被拆分,上方未被拆分
{10,7,6},//上方/左边均被拆分
在该示例中,概率可以分布在0至255的值之间,其中,更高数可以指的是对基于当前块的当前块大小(例如,64×64、32×32、16×16等)、其上方邻居块的分区类型、和其左边邻居块的分区类型的当前块的可能分区类型的更高概率。在各个示例中,可以将更少的比特数分配给可能的候选者,并且可以将更多的比特数分配给不太可能的候选者。进一步地,在一些示例中,可以将生成的表应用于整个帧。
根据本公开的各个方面,递归块分区连同基于上下文的熵代码化在维持有效的视频编解码实施方式的同时允许在使块大小最佳化时的灵活性提高。在各个示例中,该递归块分区技术可以用于将实际块大小的代码化转化为块分区类型的代码化,并且结合基于上下文的熵代码化,该技术提供了改进的代码化性能增益。
图6B至图6C是根据本公开的各个方面的用于递归块分区的示例方法的过程流程。具体地,图6B是示出了根据本公开的各个方面的用于递归块分区的示例方法620的过程流程。
在图6B的示例中,示出了操作622至628作为以相继顺序发生的离散操作。然而,应该了解,在其它实施方式中,操作622至操作628中的两个或者多个可以以部分或者完全重叠或者并行的方式、或者以嵌套的或者循环的方式发生,或者可以以与所示的顺序不同的顺序发生。进一步地,也可以在一些示例实施方式中包括在图6B的示例中可能未被具体示出的附加操作,而在其它实施方式中可以省略操作622至操作628中的一个或者多个。在一些实施方式中,方法620可以包括用于在图1的系统100中的递归块分区的计算机实施的方法的过程流程。进一步地,如本文所描述,操作622至628可以提供一种简化的操作过程流程,该简化的操作过程流程由计算装置104制定以提供参照图1A所描述的特征和功能。
在图6B的示例中,在622处,方法620可以包括将图像分为多个区域。在624处,方法620可以包括将多个分区类型应用于多个区域中的每个区域。在626处,方法620可以包括:基于应用于多个区域中的每个区域的多个分区类型来为多个区域中的每个区域确定率失真(例如,率失真代价)。
在628处,方法620可以包括:基于应用于多个区域中的每个区域的多个分区类型来为多个区域中的每个区域确定代码化方案。在630处,方法620可以包括:基于为多个区域中的每个区域确定的率失真代价和代码化方案来单独地对多个区域中的每个区域进行编码。
在一些实施方式中,第一分区类型可以包括具有尺寸相似的四个子块的拆分分区类型,第二分区类型可以包括具有两个尺寸相似的、水平布置的两个子块的水平分区类型,第三分区类型可以包括具有尺寸相似的、垂直布置的两个子块的垂直分区类型,并且第四分区类型可以包括具有单个块的无分区类型。
图6C是示出了根据本公开的各个方面的用于递归块分区的另一示例方法640的过程流程。
在图6C的示例中,图示出了操作642至648作为以相继顺序发生的离散操作。然而,应该了解,在其它实施方式中,操作642至操作648中的两个或者多个可以以部分或者完全重叠或者并行的方式、或者以嵌套的或者循环的方式发生,或者可以以与所示的顺序不同的顺序发生。进一步地,也可以在一些示例实施方式中包括在图6C的示例中可能未被具体示出的附加操作,而在其它实施方式中可以省略操作642至操作648中的一个或者多个。在一些实施方式中,方法640可以包括用于在图1的系统100中的递归块分区的计算机实施的方法的过程流程。进一步地,如本文所描述,操作642至648可以提供简化的操作过程流程,该简化的操作过程流程由计算装置104制定以提供参照图1A所描述的特征和功能。更进一步地,操作642至648可以是图6B的操作622至630的延续,以提供简化的操作过程流程,该简化的操作过程流程由计算装置104制定以提供参照图1A所描述的特征和功能。
在图6B的示例中,在642处,方法640可以包括:对于应用于多个区域中的每个区域的多个分区类型的第一分区类型,将多个区域中的每个区域分为多个子区域。在644处,方法640可以包括将多个分区类型重新应用于多个子区域中的每个子区域。
在646处,方法640可以包括:基于应用于多个子区域中的每个子区域的多个分区类型来为多个子区域中的每个子区域确定率失真代价。在648处,方法640可以包括:基于应用于多个子区域中的每个子区域的多个分区类型来为多个子区域中的每个子区域确定代码化方案。
在一些实施方式中,第一分区类型可以包括具有尺寸相似的四个子块的拆分分区类型,第二分区类型可以包括具有尺寸相似的、水平布置的两个子块的水平分区类型,第三分区类型可以包括具有尺寸相似的、垂直布置的两个子块的垂直分区类型,并且第四分区类型可以包括具有单个块的无分区类型。
在一些实施方式中,基于为多个区域中的每个区域确定的率失真代价和代码化方案来单独地对多个区域中的每个区域进行编码可以包括:基于为多个子区域中的每个子区域确定的率失真代价和代码化方案来单独地对多个子区域中的每个子区域进行编码。
在一些实施方式中,为多个区域中的每个区域确定率失真代价可以包括:基于应用于多个区域中的每个区域的多个分区类型来为多个区域中的每个区域评估多个率失真代价,以及为多个区域中的每个区域确定最佳率失真代价,该最佳率失真代价选自为多个区域中的每个区域评估的多个率失真代价。
在一些实施方式中,为多个区域中的每个区域确定编码方案可以包括:基于应用于多个区域中的每个区域的多个分区类型来为多个区域中的每个区域评估多个代码化方案,以及为多个区域中的每个区域确定最佳代码化方案,该最佳率编码方案选自为多个区域中的每个区域评估的多个代码化方案。
图8是图示出了根据本公开的各个方面的用于递归块分区的另一示例方法800的过程流程。
在图8的示例中,示出了操作802至808作为以相继顺序发生的离散操作。然而,应该了解,在其它实施方式中,操作802至操作808中的两个或者多个可以以部分或者完全重叠或者并行的方式、或者以嵌套的或者循环的方式发生,或者可以以与所示的顺序不同的顺序发生。进一步地,也可以在一些示例实施方式中包括在图8的示例中可能未被具体示出的附加操作,而在其它实施方式中,可以省略操作802至操作808中的一个或者多个。进一步地,在一些实施方式中,方法800可以包括用于在图1的系统100中的递归块分区的计算机实施的方法的过程流程。进一步地,如本文所描述,操作802至808可以提供简化的操作过程流程,该简化的操作过程流程由计算装置104制定以提供参照图1A所描述的特征和功能。
在图8的示例中,在802处,方法800可以包括将视频帧分为多个像素块。在804处,方法800可以包括将多个分区类型应用于多个像素块中的每个像素块。
在806处,方法800可以包括:对于应用于多个像素块中的每个像素块的多个分区类型的第一分区类型,将第一分区类型的每个像素块分为多个像素子块,并且将多个分区类型重新应用于多个像素子块中的每个像素子块。在808处,方法800可以包括:基于分别应用于并且重新应用于每个像素块和每个像素子块的多个分区类型来为每个像素块和每个像素子块确定率失真代价。
在810处,方法800可以包括:基于分别应用于并且重新应用于每个像素块和每个像素子块的多个分区类型来为每个像素块和每个像素子块确定代码化方案。在812处,方法800可以包括:基于为每个像素块和每个像素子块确定的率失真代价和代码化方案来单独地对每个像素块和每个像素子块进行编码。
可以用数字电子电路系统,或者用计算机硬件、固件、软件,或者用它们的组合来实施本文所描述的各种技术的实施方式。实施方式可以实施为计算机程序产品,即,有形地体现在信息载体中的计算机程序,例如在机器可读存储装置中或者由数据处理设备(例如,可编程处理器、计算机、或者多个计算机)执行或者控制该数据处理设备的操作的的传播信号中。可以用包括编译式或者解释型语言的任何形式的编程语言来编写诸如上述计算机程序的计算机程序,并且可以将该计算机程序部署为包括独立程序或者模块、组件、子例程或者适合在计算环境中使用的其它单元的任何形式。可以将计算机程序部署为在一个计算机上或者在位于一个站点处或者分布于多个站点之间并且通过通信网络互相连接的多个计算机上执行。
可以通过执行通过操作输入数据和生成输出来执行功能的计算机程序的一个或者多个可编程处理器来执行方法步骤。也可以通过专用逻辑电路系统(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))来执行方法步骤,并且设备也可以实施为专用逻辑电路系统。
适合执行计算机程序的处理器作为示例包括通用微处理器、专用微处理器二者、以及任何种类的数字计算机的任何一个或者多个处理器。一般而言,处理器将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的元件可以包括:用于执行指令的至少一个处理器;以及用于存储指令和数据的一个或者多个存储装置。一般而言,计算机也可以包括用于存储数据的一个或者多个大容量存储装置(例如,磁盘、磁光盘、或者光盘),或者被可操作地耦合以接收来自该大容量存储装置的数据或者将数据传输到该大容量存储装置或者同时进行两者。适合体现计算机程序指令和数据的信息载体包括所有形式的非易失性存储器,该所有形式的非易失性存储器作为示例包括半导体存储器装置(例如,EPROM、EEPROM、和闪存装置)、磁盘(例如,内置硬盘或者可移动盘)、磁光盘、以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充或者被合并到该专用逻辑电路系统中。
为了提供用户交互,可以在计算机上实施实施方式,该计算机具有:用于向用户显示信息的显示装置,例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器;用户可以用来向计算机提供输入的键盘和指示装置,例如,鼠标或者轨迹球。其它类型的装置同样可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈、或者触觉反馈;并且可以以任何形式(包括声音输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以在计算系统中实施实施方式,该计算系统包括后端组件(例如,数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或者web浏览器的客户端计算机,用户可以通过该图形用户界面或者该web浏览器来与实施方式交互);或者包括该后端组件、该中间件组件或者该前端组件的任何组合。组件可以通过任何形式或者介质的数字数据通信(例如,通信网络)来互连。诸如通信网络的网络的示例可以包括局域网(LAN)和例如互联网的广域网(WAN)。
虽然已经如此处描述那样图示了所描述的实施方式的某些特征,但是本领域的技术人员现在会想到许多修改、代替、改变及等同物。因此,要理解,随附权利要求旨在涵盖所有这样的修改和改变使其落入实施例的范围内。

Claims (26)

1.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得至少一个处理器执行过程,所述指令包括被配置为进行如下操作的指令:
将图像分为多个区域;
基于概率表将多个分区类型应用于所述多个区域中的每个区域;
基于应用于所述多个区域中的每个区域的所述多个分区类型来为所述多个区域中的每个区域确定率失真代价;
基于应用于所述多个区域中的每个区域的所述多个分区类型来为所述多个区域中的每个区域确定代码化方案;以及
基于为所述多个区域中的每个区域确定的率失真代价和代码化方案来单独地对所述多个区域中的每个区域进行编码。
2.根据权利要求1所述的计算机可读存储介质,其中,所述图像包括视频帧,并且所述多个区域包括所述多个区域的网格。
3.根据权利要求1和2中任一项所述的计算机可读存储介质,其中,所述多个区域中的每个区域包括n×n像素块。
4.根据权利要求3所述的计算机可读存储介质,其中,所述n×n像素块包括以下至少一个:64×64像素块、32×32像素块、16×16像素块、8×8像素块、4×4像素块、和2×2像素块。
5.根据权利要求1至4中任一项所述的计算机可读存储介质,其中,所述概率表包括:与所述多个分区类型中的第一分区类型相关联的概率值、和与所述多个分区类型中的第二分区类型相关联的概率值。
6.根据权利要求1至5中任一项所述的计算机可读存储介质,其中,所述多个分区类型包括:
第一分区类型,所述第一分区类型包括具有尺寸相似的四个子块的拆分分区类型,
第二分区类型,所述第二分区类型包括具有尺寸相似的、水平布置的两个子块的水平分区类型,
第三分区类型,所述第三分区类型包括具有尺寸相似的、垂直布置的两个子块的垂直分区类型,以及
第四分区类型,所述第四分区包括具有单个块的无分区类型。
7.根据权利要求1至6中任一项所述的计算机可读存储介质,其中,对于应用于所述多个区域中的每个区域的所述多个分区类型的第一分区类型,所述指令包括被配置为进行如下操作的指令:
将所述多个区域中的每个区域分为多个子区域;
将所述多个分区类型重新应用于所述多个子区域中的每个子区域;
基于应用于所述多个子区域中的每个子区域的所述多个分区类型来为所述多个子区域中的每个子区域确定率失真代价;以及
基于应用于所述多个子区域中的每个子区域的所述多个分区类型来为所述多个子区域中的每个子区域确定代码化方案。
8.根据权利要求1至7中任一项所述的计算机可读存储介质,其中,被配置为基于为所述多个区域中的每个区域确定的率失真代价和代码化方案来单独地对所述多个区域中的每个区域进行编码的所述指令包括配置为进行如下操作的指令:
基于为所述多个子区域中的每个子区域确定的率失真代价和代码化方案来单独地对所述多个子区域中的每个子区域进行编码。
9.根据权利要求1至8中任一项所述的计算机可读存储介质,其中,被配置成为所述多个区域中的每个区域确定率失真代价的所述指令包括被配置成进行如下操作的指令:
基于应用于所述多个区域中的每个区域的所述多个分区类型来为所述多个区域中的每个区域评估多个率失真代价;以及
为所述多个区域中的每个区域确定率失真代价,所述率失真代价选自为所述多个区域中的每个区域评估的所述多个率失真代价。
10.根据权利要求1至9中任一项所述的计算机可读存储介质,其中,被配置成单独地对所述多个区域中的每个区域进行编码的所述指令包括被配置为进行如下操作的指令:
基于为所述多个区域中的每个区域确定的最佳率失真代价来单独地对所述多个区域中的每个区域进行编码。
11.根据权利要求1至10中任一项所述的计算机可读存储介质,其中,被配置成为所述多个区域中的每个区域确定代码化方案的所述指令包括被配置成进行如下操作的指令:
基于应用于所述多个区域中的每个区域的所述多个分区类型来为所述多个区域中的每个区域评估多个代码化方案;以及
为所述多个区域中的每个区域确定最佳代码化方案,所述最佳代码化方案选自为所述多个区域中的每个区域评估的所述多个代码化方案。
12.根据权利要求1至11中任一项所述的计算机可读存储介质,其中,被配置成单独地对所述多个区域中的每个区域进行编码的所述指令包括被配置成进行如下操作的指令:
基于为所述多个区域中的每个区域确定的最佳代码化方案来单独地对所述多个区域中的每个区域进行编码。
13.根据权利要求1至12中任一项所述的计算机可读存储介质,其中,所述代码化方案包括基于上下文的熵代码化方案,当为所述多个区域中的每个区域确定代码化方案时,所述基于上下文的熵代码化方案考虑每个区域的大小、应用于在每个区域上方的第一邻居区域和在每个区域左边的第二邻居区域的分区类型。
14.根据权利要求1至13中任一项所述的计算机可读存储介质,其中,被配置成单独地对所述多个区域中的每个区域进行编码的所述指令包括被配置成进行如下操作的指令:
基于为所述多个区域中的每个区域确定的率失真代价和代码化方案,以光栅顺序将每个区域单独地编码为比特流。
15.一种存储指令的非暂时性计算机可读存储介质,所述指令被执行时使得至少一个处理器进行过程,所述指令包括被配置成进行如下操作的指令:
将视频帧分为多个像素块;
基于概率表将多个分区类型应用于所述多个像素块中的每个像素块;
对于应用于所述多个像素块中的每个像素块的所述多个分区类型的第一分区类型,将所述第一分区类型的每个像素块分为多个像素子块,并且将所述多个分区类型重新应用于所述多个像素子块中的每个像素子块;
基于分别应用于并且重新应用于每个像素块和每个像素子块的所述多个分区类型来为每个像素块和每个像素子块确定率失真代价;
基于分别应用于并且重新应用于每个像素块和每个像素子块的所述多个分区类型来为每个像素块和每个像素子块确定代码化方案;以及
基于为每个像素块和每个像素子块确定的率失真代价和代码化方案来单独地对每个像素块和每个像素子块进行编码。
16.根据权利要求15所述的计算机可读存储介质,其中:
每个像素块包括n×n像素块,以及
每个n×n像素块包括以下至少一个:64×64像素块、32×32像素块、16×16像素块、8×8像素块、4×4像素块、和2×2像素块。
17.根据权利要求15和16所述的计算机可读存储介质,其中:
所述多个分区类型的所述第一分区类型包括具有尺寸相似的四个子块的拆分分区类型,
第二分区类型包括具有尺寸相似的、水平布置的两个子块的水平分区类型,
第三分区类型包括具有尺寸相似的、垂直布置的两个子块的垂直分区类型,以及
第四分区类型包括具有单个块的无分区类型。
18.根据权利要求15至17中任一项所述的计算机可读存储介质,其中,所述代码化方案包括基于上下文的熵代码化方案,当为所述多个像素块中的每个像素块确定代码化方案时,所述基于上下文的熵代码化方案考虑每个像素块的大小、应用于在每个像素块上面的第一邻居区域和在每个像素块左边的第二邻居区域的分区类型。
19.一种系统,包括:
至少一个处理器和存储器;
至少一个处理器被配置成:
将帧分为多个区域;
将多个分区类型应用于所述多个区域中的每个区域;
对于应用于所述多个区域中的每个区域的所述多个分区类型中的至少一个分区类型,基于概率表将该至少一个分区类型的每个区域分为多个子区域,并且将所述多个分区类型重新应用于该多个子区域中的每个子区域;
基于分别应用于并且重新应用于每个区域和每个子区域的所述多个分区类型来为每个区域和每个子区域确定率失真代价;
基于分别应用于并且重新应用于每个区域和每个子区域的所述多个分区类型来为每个区域和每个子区域确定代码化方案;以及
基于为每个区域和每个子区域确定的所述率失真代价和所述代码化方案来单独地对每个区域和每个子区域进行编码。
20.根据权利要求19的系统,其中,所述帧为第一帧,所述概率表包括与该至少一个分区类型相关联的概率值,
所述至少一个处理器被配置成基于与所述第一帧相关联的所述处理来更新用于处理第二帧的所述概率值。
21.根据权利要求29和20中任一项所述的系统,其中,所述帧为在视频帧序列中的第一帧,所述概率表包括与该至少一个分区类型相关联的默认概率值。
22.一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时致使至少一个处理器进行过程,所述指令包括被配置成进行如下操作的指令:
识别在视频帧序列中的第一帧;
基于存储在存储器中的概率表来对在所述视频帧序列中的所述第一帧进行编码,所述概率表包括与分区类型相关联的概率值;
基于对所述视频帧序列中的所述第一帧的所述编码来将与所述分区类型相关联的所述概率值修改为更新的概率值;以及
基于在所述概率表中包括的所述更新的概率值来对在视频帧序列中的第二帧进行编码。
23.根据权利要求22所述的计算机可读存储介质,其中,对所述第一帧的所述编码包括熵编码。
24.根据权利要求22和23中任一项所述的计算机可读存储介质,其中,所述指令进一步包括进行以下操作的指令:
计算与所述第一帧相关联的所述分区类型的概率分布,并且基于所述分区类型的概率分布来修改所述概率值。
25.根据权利要求22至24中任一项所述的计算机可读存储介质,其中,基于所述概率值来分配与熵编码器相关联的比特率。
26.根据权利要求22至25中任一项所述的计算机可读存储介质,其中,所述概率表包括与从第一块大小到第二块大小的分区相关联的第一块部分,并且所述概率表包括与从所述第二块大小到第三块大小的分区相关联的第二块部分。
CN201480074562.9A 2013-12-30 2014-12-26 递归块分区 Pending CN105960803A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/144,375 2013-12-30
US14/144,375 US20150189269A1 (en) 2013-12-30 2013-12-30 Recursive block partitioning
PCT/US2014/072435 WO2015103088A1 (en) 2013-12-30 2014-12-26 Recursive block partitioning

Publications (1)

Publication Number Publication Date
CN105960803A true CN105960803A (zh) 2016-09-21

Family

ID=52440819

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480074562.9A Pending CN105960803A (zh) 2013-12-30 2014-12-26 递归块分区

Country Status (6)

Country Link
US (1) US20150189269A1 (zh)
EP (1) EP3090548A1 (zh)
JP (1) JP6342500B2 (zh)
KR (1) KR101941955B1 (zh)
CN (1) CN105960803A (zh)
WO (1) WO2015103088A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110603811A (zh) * 2017-02-23 2019-12-20 真实网络公司 视频编码系统和方法中的残差变换和逆向变换

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10003792B2 (en) 2013-05-27 2018-06-19 Microsoft Technology Licensing, Llc Video encoder for images
TWI536811B (zh) * 2013-12-27 2016-06-01 財團法人工業技術研究院 影像處理方法與系統、解碼方法、編碼器與解碼器
CN105359531B (zh) 2014-03-17 2019-08-06 微软技术许可有限责任公司 用于针对屏幕内容编码的编码器侧判定的方法和系统
US9641854B2 (en) * 2014-05-19 2017-05-02 Mediatek Inc. Count table maintenance apparatus for maintaining count table during processing of frame and related count table maintenance method
CN106416254B (zh) 2015-02-06 2019-08-02 微软技术许可有限责任公司 在媒体编码期间跳过评估阶段
US9883187B2 (en) 2015-03-06 2018-01-30 Qualcomm Incorporated Fast video encoding method with block partitioning
US10136132B2 (en) * 2015-07-21 2018-11-20 Microsoft Technology Licensing, Llc Adaptive skip or zero block detection combined with transform size decision
WO2017065422A1 (ko) * 2015-10-12 2017-04-20 엘지전자(주) 영상 처리 방법 및 이를 위한 장치
CN109155857B (zh) * 2016-03-11 2023-05-30 数字洞察力有限公司 视频编码方法以及装置
CN106162184B (zh) * 2016-07-28 2020-01-10 华为技术有限公司 一种数据块编码方法及装置
JP6565885B2 (ja) * 2016-12-06 2019-08-28 株式会社Jvcケンウッド 画像符号化装置、画像符号化方法及び画像符号化プログラム、並びに画像復号化装置、画像復号化方法及び画像復号化プログラム
CN117201818A (zh) * 2017-05-26 2023-12-08 Sk电信有限公司 对视频数据进行编码或解码的方法和发送比特流的方法
KR102435881B1 (ko) 2017-05-26 2022-08-24 에스케이텔레콤 주식회사 영상 부호화 또는 복호화하기 위한 장치 및 방법
EP3725074A1 (en) * 2017-12-14 2020-10-21 InterDigital VC Holdings, Inc. Texture-based partitioning decisions for video compression
JP7491762B2 (ja) 2020-07-22 2024-05-28 アマノ株式会社 駐車場管理システム、情報処理装置、情報処理方法及びプログラム
WO2024020119A1 (en) * 2022-07-19 2024-01-25 Google Llc Bit stream syntax for partition types

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313587A (zh) * 2005-09-27 2008-11-26 高通股份有限公司 用于多媒体编码的模式选择技术
WO2011127963A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sample region merging
CN102948149A (zh) * 2010-04-16 2013-02-27 Sk电信有限公司 视频编码/解码设备和方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1351510A4 (en) * 2001-09-14 2008-12-10 Ntt Docomo Inc ENCODING METHOD, DECODING METHOD, ENCODING APPARATUS, DECODING APPARATUS, IMAGE PROCESSING SYSTEM, ENCODING PROGRAM, AND DECODING PROGRAM
EP1445955A4 (en) * 2001-11-16 2009-10-28 Ntt Docomo Inc IMAGE ENCODING METHOD, IMAGE DECODING METHOD, ENCODER AND IMAGE DECODER, PROGRAM, COMPUTER DATA SIGNAL, AND IMAGE TRANSMISSION SYSTEM
EP2479896A1 (en) * 2002-04-26 2012-07-25 NTT DoCoMo, Inc. Signal encoding method, signal decoding method, signal encoding device, signal decoding device, signal encoding program, and signal decoding program
US20040081238A1 (en) * 2002-10-25 2004-04-29 Manindra Parhy Asymmetric block shape modes for motion estimation
US20080123977A1 (en) * 2005-07-22 2008-05-29 Mitsubishi Electric Corporation Image encoder and image decoder, image encoding method and image decoding method, image encoding program and image decoding program, and computer readable recording medium recorded with image encoding program and computer readable recording medium recorded with image decoding program
US7693219B2 (en) * 2006-01-04 2010-04-06 Freescale Semiconductor, Inc. System and method for fast motion estimation
US8208548B2 (en) * 2006-02-09 2012-06-26 Qualcomm Incorporated Video encoding
US20080126278A1 (en) * 2006-11-29 2008-05-29 Alexander Bronstein Parallel processing motion estimation for H.264 video codec
EP2081386A1 (en) * 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
US8503527B2 (en) * 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
BRPI0920213A2 (pt) * 2008-10-22 2020-12-01 Nippon Telegraph And Telephone Corporation método de codificação de vídeo escalável, aparelho de codificação de vídeo escalável, programa de codificação de vídeo escalável, e meio de gravação legível por computador armazenando o programa
KR101567974B1 (ko) * 2009-01-05 2015-11-10 에스케이 텔레콤주식회사 블록 모드 부호화/복호화 방법 및 장치와 그를 이용한 영상부호화/복호화 방법 및 장치
US9100656B2 (en) * 2009-05-21 2015-08-04 Ecole De Technologie Superieure Method and system for efficient video transcoding using coding modes, motion vectors and residual information
US20110170608A1 (en) * 2010-01-08 2011-07-14 Xun Shi Method and device for video transcoding using quad-tree based mode selection
KR102145722B1 (ko) * 2010-04-13 2020-08-20 지이 비디오 컴프레션, 엘엘씨 샘플 영역 병합
WO2011129672A2 (ko) * 2010-04-16 2011-10-20 에스케이텔레콤 주식회사 영상 부호화/복호화 장치 및 방법
US20110310976A1 (en) * 2010-06-17 2011-12-22 Qualcomm Incorporated Joint Coding of Partition Information in Video Coding
EP2663075B1 (en) * 2011-01-06 2020-05-06 Samsung Electronics Co., Ltd Encoding method and device of video using data unit of hierarchical structure, and decoding method and device thereof
US10440373B2 (en) * 2011-07-12 2019-10-08 Texas Instruments Incorporated Method and apparatus for coding unit partitioning
KR102588425B1 (ko) * 2011-11-11 2023-10-12 지이 비디오 컴프레션, 엘엘씨 적응적 분할 코딩
US20130301727A1 (en) * 2012-05-14 2013-11-14 Qualcomm Incorporated Programmable and scalable integer search for video encoding
US9219915B1 (en) * 2013-01-17 2015-12-22 Google Inc. Selection of transform size in video coding

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101313587A (zh) * 2005-09-27 2008-11-26 高通股份有限公司 用于多媒体编码的模式选择技术
WO2011127963A1 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sample region merging
CN102948149A (zh) * 2010-04-16 2013-02-27 Sk电信有限公司 视频编码/解码设备和方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110603811A (zh) * 2017-02-23 2019-12-20 真实网络公司 视频编码系统和方法中的残差变换和逆向变换

Also Published As

Publication number Publication date
JP2017507532A (ja) 2017-03-16
US20150189269A1 (en) 2015-07-02
EP3090548A1 (en) 2016-11-09
WO2015103088A1 (en) 2015-07-09
KR101941955B1 (ko) 2019-01-24
KR20160104706A (ko) 2016-09-05
JP6342500B2 (ja) 2018-06-13

Similar Documents

Publication Publication Date Title
CN105960803A (zh) 递归块分区
JP7225333B2 (ja) ニューラルネットワークを使用するタイル型画像圧縮
EP3929881A1 (en) Information processing device and method
CN105052140B (zh) 用于下一代视频的模式和参考类型数据的内容自适应熵编码
CN109997361A (zh) 用于视频译码的低复杂度符号预测
CN113424547A (zh) 点云属性编解码的加权中值预测的技术和装置
US8855437B1 (en) Image compression and decompression using block prediction
CN113455007A (zh) 帧间点云属性编解码的方法和装置
CN113475083A (zh) 帧间点云属性编解码的技术和装置
CN105684441A (zh) 视频和图像编码中的基于散列的块匹配
CN105684409A (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105684443B (zh) 屏幕图像编码方法及其装置和屏幕图像解码方法及其装置
CN106105198A (zh) 用于残余差分脉码调制的量化过程
CN105850132B (zh) 编解码视频数据块的方法和装置
CN109996079A (zh) 视频解码方法和装置
CN110248187A (zh) 用于视频压缩中的方向性帧内预测的方法和设备
CN108093255A (zh) 视频编码设备和视频编码方法
CN110476422A (zh) 图像编码装置、图像编码方法和图像编码程序、图像解码装置、图像解码方法和图像解码程序
Krishnamoorthy et al. Design and implementation of power efficient image compressor for WSN systems
CN103248885B (zh) 帧内图像预测编解码方法及视频编解码器
US11652994B2 (en) Neural image compression with adaptive intra-prediction
CN110035288A (zh) 对视频序列进行编码的方法、编码装置和存储介质
CN110035290A (zh) 用于视频编码的解耦预测和编码结构
US20220292726A1 (en) Method and apparatus for adaptive image compression with flexible hyperprior model by meta learning
Lopes et al. A Memory Hierarchy Model Based on Data Reuse for Full‐Search Motion Estimation on High‐Definition Digital Videos

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160921

WD01 Invention patent application deemed withdrawn after publication