CN107079156A - 交替块约束决策模式代码化 - Google Patents

交替块约束决策模式代码化 Download PDF

Info

Publication number
CN107079156A
CN107079156A CN201580034579.6A CN201580034579A CN107079156A CN 107079156 A CN107079156 A CN 107079156A CN 201580034579 A CN201580034579 A CN 201580034579A CN 107079156 A CN107079156 A CN 107079156A
Authority
CN
China
Prior art keywords
code
block
adjacent blocks
previous
making mode
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
CN201580034579.6A
Other languages
English (en)
Other versions
CN107079156B (zh
Inventor
韩敬宁
许耀武
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN107079156A publication Critical patent/CN107079156A/zh
Application granted granted Critical
Publication of CN107079156B publication Critical patent/CN107079156B/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction

Landscapes

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

Abstract

描述了一种用于使用交替块约束决策模式代码化的视频代码化的方法和装置。使用交替块约束决策模式代码化的视频代码化可以包括识别输入视频流的当前帧的当前块,通过使用交替块约束决策模式代码化对当前块进行编码来生成编码块,其中,交替块约束决策模式代码化包括在先前代码化的紧邻块是无约束决策模式代码化块的条件下将当前块编码为约束决策模式代码化块,并且将编码块包括在输出比特流中。

Description

交替块约束决策模式代码化
背景技术
例如,可以将数字视频用于经由视频会议的远程商务会议、高清晰度视频娱乐、视频广告或者对用户所生成视频的共享。由于在视频数据中涉及到的大量数据,需要高性能压缩以用于传输和存储。
发明内容
本公开涉及用于传输或存储的视频流数据的编码和解码,并且更特别地涉及用于使用交替块约束决策模式代码化进行编码和解码的系统、方法以及装置的方面。
一个方面是一种用于使用交替块约束决策模式代码化的视频代码化的方法。使用交替块约束决策模式代码化的视频代码化可以包括识别输入视频流的当前帧的当前块,通过使用交替块约束决策模式代码化对当前块进行编码来生成编码块,其中,交替块约束决策模式代码化包括在先前已代码化紧邻块是无约束决策模式代码化块的条件下将当前块编码为约束决策模式代码化块,将所述代码化块包括在输出比特流中,并且发射或存储所述输出比特流。
在某些实施方式中,使用交替块约束决策模式代码化的视频代码化可以包括识别输入视频流的当前帧的当前块,并且通过使用交替块约束决策模式代码化对当前块进行编码来生成编码块,其中,交替块约束决策模式代码化包括在第一先前代码化的紧邻块是无约束决策模式代码化块且第二先前代码化的紧邻块是无约束决策模式代码化块的条件下将当前块编码为约束决策模式代码化块。在某些实施方式中,视频代码化使用交替块约束决策模式代码化可以包括将编码块包括在输出比特流中,并且发射或存储所述输出比特流。
在某些实施方式中,使用交替块约束决策模式代码化的视频代码化包括识别输入视频流的当前帧的当前块,并且响应于存储在非暂时性计算机可读介质上的指令,由处理器通过使用交替块约束决策模式代码化对当前块进行编码来生成编码块。使用交替块约束决策模式代码化的视频代码化还可以包括
在第一先前代码化的紧邻块是无约束决策模式代码化块的条件下将当前块编码为约束决策模式代码化块,其中,所述第一先前代码化的紧邻块是在空间上紧挨着在所述当前帧中的当前块的左侧的先前代码化块,第二先前代码化的紧邻块是无约束决策模式代码化块,其中,所述第二先前代码化的紧邻块是在空间上紧挨着在所述当前帧中的当前块上方的先前代码化块,并且第三先前代码化的紧邻块是无约束决策模式代码化块,其中,所述第三先前代码化的紧邻块在空间上与所述当前块是一致的,并且所述第三先前代码化的紧邻块来自在时间上紧邻的先前代码化帧。进一步地,使用基于第一先前代码化的紧邻块和第二先前代码化的紧邻块所识别的预测滤波器对当前块进行编码,并且基于第一先前代码化的紧邻块、第二先前代码化的紧邻块以及第三先前代码化的紧邻块而使用代码化块规模范围识别块对当前块进行编码。在某些实施方式中,将编码块包括在输出比特流中,并且可以发生发射或存储所述输出比特流。
下面将另外详细地描述这些及其它方面的变化。
附图说明
本文的描述对附图做出参考,在附图中相同的参考标号遍及多个图指代相同部分,并且其中:
图1是根据本公开的实施方式的计算设备的图;
图2是根据本公开的实施方式的计算和通信系统的图;
图3是根据本公开的实施方式的供在编码和解码中使用的视频流的图;
图4是根据本公开的实施方式的编码器的框图;
图5是根据本公开的实施方式的解码器的框图;
图6是根据本公开的实施方式的帧的一部分的表示的框图;
图7是根据本公开的实施方式的使用空间和时间交替块约束模式视频代码化的帧的表示的示例的图;以及
图8是根据本公开的实施方式的空间和时间交替块约束模式视频代码化的方法的示例的图。
具体实施方式
数字视频流可以使用帧或图像的序列来表示视频。每个帧可以包括许多块,所述块可以包括指示像素属性(诸如色值或亮度)的信息。视频的传输和存储可以使用相当多的计算或通信资源。可以使用压缩及其它代码化技术来减少视频流中的数据量。这样,可以通过具有有限带宽的通信信道来发射高分辨率视频。
对视频流或其一部分(诸如帧或块)进行编码可以包括使用视频流中的时间和空间相似性来改善代码化效率。例如,视频代码化可以包括基于像素之间的时间和空间相似性来预测像素值。基于块的代码化涉及到将帧分区成块的网格或矩阵并将每个块代码化为单元。代码化包括评估许多候选代码化模式(诸如帧内代码化和帧间代码化模式),以识别最佳代码化模式,其可以是使错误度量(速率失真度量)最小化的代码化模式。评估多个候选代码化模式利用了相当多的资源、增加了复杂性、并且可能忽视了块间代码化模式相关性。
交替块约束决策模式代码化使用块间代码化模式相关性来降低复杂性并增加代码化效率。例如,交替块约束决策模式代码化包括在块的基础上在无约束代码化模式搜索与约束场境自适应代码化模式搜索之间交替。来自当前帧的当前块是基于一个或多个在空间和时间上邻近的块。可以识别用于生成运动补偿预测块以便对当前块进行编码的预测滤波器,同样,可以识别用于对当前块进行编码的代码化块规模范围。
图1是根据本公开的实施方式的计算设备100的图。计算设备100可以包括通信接口110、通信单元120、用户界面(UI)130、处理器140、存储器150、指令160、电源170或其任何组合。如本文所使用的,术语“计算设备”包括能够执行本文中公开的任何方法或其任何部分的任何单元或单元的组合。
计算设备100可以是固定计算设备,诸如个人计算机(PC)、服务器、工作站、小型计算机或主计算机;或者移动计算设备,诸如移动电话、个人数字助理(PDA)、膝上型计算机或平板PC。虽然被示出为单个单元,但可以将通信设备100的任何一个或多个元件集成到任何数目的单独的物理单元内。例如,可以将UI 130和处理器140集成在第一物理单元中,并且可以将存储器150集成在第二物理单元中。
通信接口110可以是无线天线(如所示)、有线通信端口(诸如以太网端口、红外端口、串行端口)或能够与有线或无线电子通信介质180对接的任何其它有线或无线单元。
通信单元120可以被配置成经由有线或无线介质180来发射或接收信号。例如,如所示,通信单元120被操作连接到被配置成经由无线信号通信的天线。虽然在图1中并未明确地示出,通信单元120可以被配置成经由任何有线或无线通信介质(诸如射频(RF)、紫外线(UV)、可见光、光纤、导线或其组合)进行发射、接收或发射和接收。虽然图1示出了单个通信单元120和单个通信接口110,但是可以使用任何数目的通信单元和任何数目的通信接口。
UI 130可以包括能够与用户对接的任何单元,诸如虚拟或物理小键盘、触控板、显示器、触摸显示器、扬声器、麦克风、视频相机、传感器或其任何组合。UI 130可以与处理器(如所示)或者与通信设备100的任何其它元件(诸如电源170)操作耦合。虽然被示为单个单元,但UI 130可以包括一个或多个物理单元。例如,UI 130可以包括用于执行与用户的音频通信的音频接口以及用于执行与用户的基于视觉和触摸的通信的触摸显示器。虽然被示为单独的单元,但可以将通信接口110、通信单元120以及UI 130或其各部分配置为组合单元。例如,可以将通信接口110、通信单元120以及UI 130实现为能够与外部触摸屏设备对接的通信端口。
处理器140可以包括现在存在或以后开发的能够操纵或处理信号或其它信息的任何设备或系统,包括光学处理器、量子处理器、分子处理前或其组合。例如,处理器140可以包括通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列、可编程逻辑控制器、微代码、固件、任何类型的集成电路(IC)、状态机或其任何组合。如本文所使用的,术语“处理器”包括单个处理器或多个处理器。处理器140可以与通信接口110、通信单元120、UI 130、存储器150、指令160、电源170或其任何组合操作耦合。
存储器150可以包括任何非暂时性计算机可用或计算机可读介质,诸如可以例如包含、存储、通信或传输指令160或与之相关联的任何信息以供处理器140使用或与处理器140相结合地使用的任何有形设备。非暂时性计算机可用或计算机可读介质可以是例如固态驱动、存储卡、可移动介质、只读存储器(ROM)、随机存取储器(RAM)、任何类型的磁盘(包括硬盘、软盘、光盘)、磁卡或光卡、专用集成电路(ASIC)或者适合于存储电子信息的任何类型的非暂时性介质或其任何组合。存储器150可以通过例如存储器总线(未明确地示出)连接到处理器140。
指令160可以包括用于执行本文中所公开的任何方法或其任何部分的说明。可以用硬件、软件或其任何组合来实现指令160。例如,可以将指令160实现为存储在存储器150中的信息,诸如计算机程序,其可以被处理器140执行以执行如本文中所述的任何相应的方法、算法、方面或其组合。可以将指令160或其部分实现为专用处理器或电路,其可以包括用于执行如本文中所述的任何的方法、算法、方面或其组合的专用硬件。可以将指令160的部分跨相同机器或不同机器上的多个处理器或者跨诸如局域网、广域网、互联网或其组合的网络分布。
电源170可以是用于对通信设备110供电的任何适当设备。例如,电源170可以包括有线电源;一个或多个干电池,诸如镍镉(NiCd)、镍锌(NiZn)、镍金属氢化物(NiMH)、锂离子(Li离子);太阳能电池;燃料电池;或能够对通信设备110供电的任何其它设备。通信接口110、通信单元120、UI 130、处理器140、指令160、存储器150或其任何组合可以与电源170操作耦合。
虽然被示为单独的元件,但是可以将通信接口110、通信单元120、UI 130、处理器140、指令160、电源170、存储器150或其任何组合集成在一个或多个电子单元、电路或芯片中。
图2是根据本公开的实施方式的计算和通信系统200的图。计算和通信系统200可以包括一个或多个计算和通信设备100A/100B/100C、一个或多个接入点210A/210B、一个或多个网络220或其组合。例如,计算和通信系统200可以是向一个或多个有线或无线通信设备(诸如语音、数据、视频、消息、广播或其组合)提供通信(诸如计算和通信设备100A/100B/100C)的多路访问系统。虽然为了简单起见图2示出了三个计算和通信设备100A/100B/100C、两个接入点210A/210B以及一个网络220,但可以使用任何数目的计算和通信设备、接入点以及网络。
计算和通信设备100A/100B/100C可以是例如计算设备,诸如图1中所示的计算设备100。例如,如图示,计算和通信设备100A/100B是用户设备,诸如移动计算设备、膝上型计算机、瘦客户端或智能电话,并且计算和通信设备100C是服务器,诸如主机或集群。虽然计算和通信设备100A/100B被描述为用户设备且计算和通信设备100C被描述为服务器,但任何计算和通信设备都可以执行服务器的某些或所有功能、用户设备的某些或所有功能或者服务器和用户设备的某些或所有功能。
每个计算和通信设备100A/100B/100C可以被配置成执行有线或无线通信。例如,计算和通信设备100A/100B/100C可以被配置成发射或接收有线或无线通信信号,并且可以包括用户设备(UE)、移动站、固定或移动订户单元、蜂窝电话、个人计算机、平板计算机、服务器、消费者电子装置或任何类似设备。虽然每个计算和通信设备100A/100B/100C被示为单个单元,但计算和通信设备可以包括任何数目的互连元件。
每个接入点210A/210B可以是被配置成经由有线或无线通信链路180A/180B/180C与计算和通信设备100A/100B/100C、网络220或两者通信的任何类型的设备。例如,接入点210A/210B可以包括基站、基站收发信台(BTS)、节点B、增强型节点B(eNode-B)、主节点B(HNode-B)、无线路由器、有线路由器、集线器、中继器、交换机或任何类似的有线或无线设备。虽然每个接入点210A/210B被示为单个单元,但接入点可以包括任何数目的互连元件。
网络220可以是被配置成通过有线或无线通信链路来提供服务(诸如语音、数据、应用、网际协议语音(VoIP)或任何其它通信协议或通信协议的组合)的任何类型的网络。例如,网络220可以是局域网(LAN)、广域网(WAN)、虚拟专用网(VPN)、移动或蜂窝电话网、互联网或任何其它电子通信手段。网络220可以使用通信协议,诸如传输控制协议(TCP)、用户数据报协议(UDP)、网际协议(IP)、实时传输协议(RTP)、超文本传输协议(HTTP)或其组合。
计算和通信设备100A/100B/100C可以使用一个或多个有线或无线通信链路或经由有线和无线通信链路的组合而经由网络220相互通信。例如,如所示,计算和通信设备100A/100B经由无线通信链路180A/180B进行通信,并且计算和通信设备100C经由有线通信链路180C进行通信。任何的计算和通信设备100A/100B/100C可以使用任何有线或无线通信链路进行通信。例如,第一计算和通信设备100A可以使用第一类型的通信链路经由第一接入点210A进行通信,第二计算和通信设备100B可以使用第二类型的通信链路经由第二接入点210B进行通信,并且第三计算和通信设备100C可以使用第三类型的通信链路经由第三接入点(未示出)进行通信。同样地,接入点210A/210B可以经由一个或多个类型的有线或无线通信链路230A/230B与网络220通信。虽然图2示出了经由网络220进行通信的计算和通信设备100A/100B/100C,但计算和通信设备100A/100B/100C可以经由任何数目的通信链路(诸如直接有线或无线通信链路)相互通信。
计算和通信系统200的其它实施方式是可能的。例如,网络220可以是自组织网络,并且可以省略接入点210A/210B中的一个或多个。计算和通信系统200可以包括图2中未示出的设备、单元或元件。例如,计算和通信系统200可以包括更多的计算设备、网络以及接入点。
图3是根据本公开的实施方式的供在编码和解码中使用的视频流300的图。视频流300(诸如由视频相机所捕获的视频流或者由计算设备所生成的视频流)可以包括视频序列310。视频序列310可以包括邻近帧320的序列。虽然示出了三个邻近帧320,但视频序列310可以包括任何数目的邻近帧320。来自邻近帧320的每个帧330可以表示来自视频流的单个图像。帧330可以包括块340。虽然在图3中未示出,但块340包括像素。例如,块可以包括16×16的像素群组、8×8的像素群组、8×16的像素组或任何其它像素群组。除非本文中另外指示,术语“块”可以包括超级块、宏块、段、切片或帧的任何其它部分。帧、块、像素或其组合可以包括显示信息,诸如辉度(luminance)信息、色度信息或者可以用来存储、修改、通信或显示视频流或其一部分的任何其它信息。
图4是根据本公开的实施方式的编码器400的框图。编码器400可以在设备(诸如图1中所示的计算设备100或图2中所示的计算和通信设备100A/100B/100C)中被实现为例如存储在数据存储单元(诸如图1中所示的存储器150)中的计算机软件程序。计算机软件程序可以包括可以被处理器(诸如图1中所示的处理器160)执行且可以使得设备如本文所述地将视频数据编码的机器指令。可以将编码器400实现为例如包括在计算设备100中的专用硬件。
编码器400可以将输入视频流402(诸如图3中所示的视频流300)编码而生成经编码(经压缩)比特流404。如所示,编码器400包括用于生成经压缩比特流404的正向路径。正向路径可以包括帧内/帧间预测单元410、变换单元420、量子化单元430、熵编码单元440或其任何组合。在某些实施方式中,编码器400包括重构帧以用于进一步的块的编码的重构路径(用虚连接线指示)。图4的重构路径包括去量子化单元450、逆变换单元460、重构单元470、环路滤波单元480或其任何组合。可以使用编码器400的其它结构变体来对视频流402进行编码。
为了将视频流402编码,可以以块为单位来处理视频流402内的每个帧。因此,可以从帧中的块识别当前块,并且可以将当前块编码。
在帧内/帧间预测单元410处,可以使用帧内预测(其可以是在单个帧内)或帧间预测(其可以是从帧至帧)对当前块进行编码。帧内预测可以包括从先前已被编码并重构的当前帧中的样本生成预测块。帧间预测可以包括从一个或多个先前构造参考帧中的样本生成预测块。针对当前帧中的当前块生成预测块可以包括执行运动估计以生成指示参考帧中的适当参考块的运动矢量。
帧内/帧间预测单元410可以从当前块(原始块(raw block))减掉预测块以产生残余块(residual block)。变换单元420可以执行基于块的变换,其包括将残余块变换成例如频域中的变换系数。基于块的变换的示例包括Karhunen-Loève变换(KLT)、离散余弦变换(DCT)以及奇异值分解变换(SVD)。在示例中,DCT包括将块变换到频域中,这导致在矩阵的左上方处具有最低频(即,DC)系数且在矩阵的右下方处具有最高频系数的变换系数值。
量子化单元430可以将变换系数转换成离散量子值,其被称为量子化变换系数或量子水平。量子化变换系数可以被熵编码单元440进行熵编码而产生熵编码系数。熵编码使用概率分布度量。被用来对块进行解码的熵编码系数和信息(其可以包括所使用的预测类型、运动矢量以及量化器值)可以被输出到经压缩比特流404。可以使用各种技术(诸如行程长度编码(RLE)和零行程代码化)将经压缩比特流404格式化。
可以使用重构路径来保持编码器400与对应解码器(诸如图5中所示的解码器500)之间的参考帧同步。重构路径可以类似于下面讨论的解码过程,并且可以包括在去量子化单元450处将量子化变换系数去量子化,并且在逆变换单元460处对去量子化变换系数进行逆变换以产生导数残余块。重构单元470可以将由帧内/帧间预测单元410所生成的预测块添加到导数残余块以创建重构块。可以将环路滤波单元480应用于重构块以减少失真,诸如块状伪像(blocking artifacts)。
可以使用编码器400的其它变体来对经压缩比特流404进行编码。例如,非基于变换的编码器400可以在没有变换单元420的情况下直接地将残余块量子化。在某些实施方式中,可以将量子化单元430和去量子化单元450组合成单个单元。
图5是根据本公开的实施方式的解码器500的框图。解码器500可以在设备(诸如图1中所示的计算设备100或图2中所示的计算和通信设备100A/100B/100C)中被实现为例如存储在数据存储单元(诸如图1中所示的存储器150)中的计算机软件程序。计算机软件程序可以包括可以被处理器(诸如图1中所示的处理器160)执行且可以使得设备如本文所述地将视频数据解码的机器指令。可以将解码器500实现为例如包括在计算设备100中的专用硬件。
解码器500可以接收经压缩比特流502,诸如图4中所示的经压缩比特流404,并且可以将经压缩比特流502解码以生成输出视频流504。如所示的解码器500包括熵解码单元510、去量子化单元520、逆变换单元530、帧内/帧间预测单元540、重构单元550、环路滤波单元560、解块(deblocking)滤波单元570或其任何组合。可以使用解码器500的其它结构变体来对经压缩比特流502进行解码。
熵解码单元510可以使用例如场境自适应二进制算术解码来对经压缩比特流502内的数据元素进行解码,以产生量子化变换系数集。去量子化单元520可以将量子换变换系数去量子化,并且逆变换单元530可以对去量子化变换系数进行逆变换以产生导数残余块,其可以与由图4中所示的逆变换单元460所生成的导数残余块相对应。使用从经压缩比特流502解码的报头信息,帧内/帧间预测单元540可以生成与在编码器400中所创建的预测块相对应的预测块。在重构单元550处,可以将预测块添加到导数残余块以创建重构块。可以将环路滤波单元560应用于重构块以减少块状伪像。可以将解块滤波单元570应用于重构块以减少块状失真,并且结果可以被输出作为输出视频流504。
可以使用解码器500的其它变体来对经压缩比特流502进行解码。例如,解码器500可以在没有解块滤波单元570的情况下输出视频流504。
图6是根据本公开的实施方式的帧(诸如图3中所示的帧330)的部分600的表示的框图。如所示,部分600包括在笛卡尔平面的矩阵中的两行和两列中的四个64×64块610。在某些实施方式中,64×64块可以是最大代码化单元,N=64。每个64×64块可以包括四个32×32块620。每个32×32块可以包括四个16×16块630。每个16×16块可以包括四个8×8块640。每个8×8块640可以包括四个4×4块650。每个4×4块650可以包括16个像素,所述16个像素是在笛卡尔平面或矩阵中的每个相应的块中的四行和四列中表示的。像素可以包括表示在帧中所捕获的图像的信息,诸如辉度信息、色彩信息以及位置信息。在某些实施方式中,块(诸如所示的16×16像素块)可以包括辉度块660,所述辉度块660包括辉度像素662;以及两个色度块670/680,诸如U或Cb色度块670以及V或Cr色度块680。色度块670/680包括色度像素690。例如,辉度块660包括16×16个辉度像素662,并且每个色度块670/680包括如所示的8×8个色度像素690。虽然示出了块的一个布置,但可以使用任何布置。例如,虽然图6示出了N×N块,但在某些实施方式中可以使用N×M块。例如,可以使用具有32×64、64×32、16×32或32×16个像素或任何其它规模的块。因此,可以使用N×2N块、2N×N块或其组合。
根据本文中的教导,视频代码化包括有序块级别(block-level)代码化。有序块级别代码化包括按顺序(诸如光栅扫描顺序)对帧中的块进行代码化,其中,可以从帧或帧的一部分的左上角中的块开始识别并处理块,并且沿着从左至右的行且从顶行至底行继续进行,依次识别每个块以用于处理。例如,帧的顶行和左列中的64×64块可以是被代码化的第一块,而紧挨着在第一块右侧的64×64块可以是被代码化的第二块。从顶部算起的第二行可以是被代码化的第二行,使得第二行的左列中的64×64块可以在第一行的最右列中的64×64块之后被代码化。
可以包括四叉树代码化,其包括按照光栅扫描顺序对块内的较小块单元进行代码化。例如,可以使用四叉树代码化对图6中所示的帧的部分的左下角中所示的64×64块进行代码化,其中,对左上方的32×32块代码化,然后对右上方的32×32块代码化,然后对左下方的32×32块代码化,并且然后对右下方的32×32块代码化。可以使用四叉树代码化对每个32×32块代码化,其中,对左上方的16×16块代码化,然后对右上方的16×16块代码化,然后对左下方的16×16块代码化,并且然后对右下方的16×16块代码化。可以使用四叉树代码化对每个16×16块代码化,其中,对左上方的8×8块代码化,然后对右上方的8×8块代码化,然后对左下方的8×8块代码化,并且然后对右下方的8×8块代码化。可以使用四叉树代码化对每个8×8块代码化,其中,对左上方的4×4块代码化,然后对右上方的4×4块代码化,然后对左下方的4×4块代码化,并且然后对右下方的4×4块代码化。在某些实施方式中,针对16×16块可以省略8×8块,并且可以使用四叉树代码化对16×16块进行代码化,其中,对左上方的4×4块进行代码化,然后按照光栅扫描顺序对16×16块中的其它4×4块进行代码化。
例如,可以通过从对应的已编码帧省略原始帧中的某些信息来压缩包括在原始或输入帧中的信息。例如,代码化可以包括减少频谱冗余、减少空间冗余、减少时间冗余或其组合。
在某些实施方式中,减少频谱冗余可以包括使用基于辉度分量(Y)和两个色度分量(U和V或Cb和Cr)的色彩模型,可以将其称为YUV或YCbCr色彩模型或色彩空间。使用YUV色彩模型可以包括使用相对大量的信息来表示帧的一部分的辉度分量,并且使用相对少量的信息来表示用于帧的部分的每个对应的色度分量。例如,可以用可以包括16×16像素块的高分辨率辉度分量且用两个较低分辨率色度分量(其中的每一个将帧的部分表示为8×8像素块)来表示帧的一部分。像素指示值,例如,在从0至255范围中的值,并且可以使用例如八个比特来存储或发射。虽然参考YUV色彩模型描述了本公开,但也可以使用任何色彩模型。
减少空间冗余还可以包括使用例如离散余弦变换(DCT)将块变换到频域中。例如,编码器的单元(诸如图4中所示的变换单元420)可以基于空间频率使用变换系数值来执行DCT。
减少时间冗余可以基于视频流的先前代码化、已解码以及已重构的帧的一个或多个参考帧而使用相对少量的数据,来使用帧之间的相似性来对帧进行编码。例如,当前帧的块或像素可以类似于参考帧的空间上相对应的块或像素。在某些实施方式中,当前帧的块或像素可以类似于不同空间位置处的参考帧的块或像素。然后生成运动信息,所述运动信息指示当前帧中的块或像素的位置与参考帧中的块或像素的对应位置之间的空间差异或平移。
减少时间冗余还可以包括识别参考帧或参考帧的一部分中的块或像素,其与当前帧的当前块或像素相对应。例如,在可以被存储在存储器中的参考帧或参考帧的一部分中搜索最佳块或像素以用于对当前帧的当前块或像素进行编码。该搜索可以识别对于其而言参考块与当前块之间的像素值的差被最小化的参考帧的块,并且可以被称为运动搜索。可以限制被搜索的参考帧的部分。在一个示例中,可以称为搜索区的被搜索的参考帧的部分包括参考帧的有限数目的行。在任何情况下,识别参考块可以包括计算搜索区中的块的像素与当前块的像素之间的成本函数,诸如绝对误差和(SAD)(sum of absolutedifference)。
可以将参考帧中的参考块的位置与当前帧中的当前块之间的空间差表示为运动矢量。参考块与当前块之间的像素值的差一般地称为差分数据、残余数据或者作为残余块。生成运动矢量还可以被称为运动估计。更具体地,可以基于使用笛卡尔坐标的位置将当前块的像素指示为fx,y。同样地,可以基于使用笛卡尔坐标的位置将参考帧的搜索区的像素指示为rx,y。例如,然后基于当前帧的像素与参考帧的对应像素之间的SAD来确定用于当前块的运动矢量(MV)。
虽然在本文中为了明了起见参考帧的矩阵或笛卡尔表示来描述运动补偿分区,但可以用任何数据结构对帧进行存储、发射、处理或其任意组合,使得可以针对帧或图像而高效地预测像素值。例如,可以在诸如所示的矩阵的二维数据结构中或者诸如向量数组的一维数据结构中对帧进行存储、发射、处理或其任何组合。帧的表示(诸如所示的二维表示)可以与帧作为图像的呈现中的物理位置相对应。例如,帧的左上角中的块的左上角中的位置可以与帧作为图像的呈现的左上角中的物理位置相对应。
在块内所捕获的内容可以包括展示出不同的空间和时间特性的两个或更多区域。例如,帧可以捕获以各种方向和速度移动的多个对象,并且块可以包括边缘或对象边界。在某些实施方式中,可以通过将包括具有不同特性的多个区域的块分区成与不同内容相对应的一个或多个分区(其可以是矩形(包括正方形)分区)并对分区进行编码而不是独立地对每个最小代码化单元进行编码,来改善基于块的代码化效率。
在某些实施方式中,使用分区的视频代码化可以包括从多个候选分区方案之间选择分区方案。例如,用于64×64代码化单元的候选分区方案可以包括规模在从4×4个像素至64×64个像素范围内(诸如4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32或64×64个像素)的矩形规模分区。在某些实施方式中,使用分区的视频代码化可以包括全分区搜索,其可以包括通过使用每个可用的候选分区方案对代码化单元进行编码并选择最佳方案(诸如产生最少速率失真错误的方案)来选择分区方案。
当使用分区时(诸如离线双通道编码),可以在第一代码化通道中生成与帧之间的运动有关的信息,并且该信息可以在第二代码化通道中被用来选择分区方案。诸如针对每个候选分区方案对速率失真错误或其它类似度量进行离线双通道编码和评估的技术可能是耗时的,并且可能利用多于一半的编码时间。在涉及到视频会议或包括静止背景的其它内容的实施方式中,可以基于先前和当前源帧之间的差来选择分区方案。在某些实施方式中,使用运动补偿分区对视频帧进行编码可以比全分区搜索、离线双通道编码或基于帧间差的分区更高效地识别分区方案。
在某些实施方式中,使用运动补偿分区对视频帧进行编码包括识别用于对当前块(诸如块610)进行编码的分区方案。识别分区方案可以包括确定要将块编码为最大代码化单元规模(其可以是如所示的64×64)的单个分区还是将块分区成多个分区,其与子块(如所示,诸如32×32块620、16×16块630或8×8块640)相对应,并且可以包括确定是否要分区成一个或多个较小分区。例如,可以将64×64块分区成四个32×32分区。可以将四个32×32分区中的三个编码为32×32分区,并且可以将第四32×32分区进一步划分成四个16×16分区。可以将四个16×16分区中的三个编码为16×16分区,并且可以将第四16×16分区进一步分区成四个8×8分区,其中的每一个可以被编码为8×8分区。识别分区方案可以包括使用分区决策树。
在某些实施方式中,用于当前块的视频代码化包括从多个候选代码化模式中识别最佳代码化模式,这可以在处理具有各种统计性质的视频信号时提供灵活性,并改善压缩效率。例如,视频代码器评估每个候选代码化模式以识别最佳代码化模式,其可以是例如针对当前块的错误度量(速率失真成本)最小化的代码化模式。可以通过基于当前块与对应预测块之间的相似性来限制可用候选代码化模式的集合而降低搜索候选代码化模式的复杂性。在某些实施方式中,通过执行定向求精模式搜索来降低搜索每个候选代码化模式的复杂性。例如,可以针对候选块规模(诸如16×16、8×8以及4×4)的有限集生成度量,并且可以按照递减顺序来布置与每个块规模相关联的错误度量。可以评估附加候选块规模,诸如4×8和8×4块规模。
在某些实施方式中,交替块约束决策模式代码化包括无约束决策模式与约束模式之间交替,其中,在搜索无约束决策模式中完全搜索候选代码化模式的集合,在约束模式中限制要搜索的候选代码化模式的集合。该交替可以是空间的、时间的或者空间的和时间的两者。空间交替可以包括在紧邻的相邻块之间在约束和无约束模式之间进行交替。空间交替可以是垂直的、水平的或两者。例如,可以将交替表示为跳棋盘或象棋盘图案。时间交替可以包括在紧邻帧之间在约束和无约束模式之间进行交替。
图7是根据本公开的实施方式的使用空间和时间交替块约束模式视频代码化的帧的表示的示例的图。如所述,交替块约束模式视频代码化可以包括在无约束代码化模式中对块进行代码化和在约束代码化模式中对块进行代码化之间交替。例如,用黑色示出了无约束代码化模式块,并且用白色示出了约束代码化模式块。交替块约束模式视频代码化可以包括空间交替块约束模式视频代码化、时间交替块约束模式视频代码化或其组合。在某些实施方式中,交替块约束模式视频代码化可以包括对当前视频帧进行代码化。例如,图7示出了当前帧710的一部分。虽然在图7中示出了当前帧710的8×8部分,帧可以包括任何数目的块,并且每个块可以包括任何数目的像素。
空间交替块约束模式视频代码化可以包括基于一个或多个空间邻近的先前代码化块的代码化模式来确定用于当前块的代码化模式。例如,如图7中所示,当前帧710包括当前块712、第一相邻块714以及第二相邻块716。可以基于空间紧邻块714/716的代码化模式来识别用于当前块712的代码化模式。例如,如所示,第一相邻块714直接紧挨在当前块712上方,并且第二相邻块716直接紧挨在当前块712左侧。
时间交替块约束模式视频代码化可以包括基于一个或多个空间邻近的先前代码化块和一个或多个时间邻近空间一致先前代码化块的代码化模式来确定用于当前块的代码化模式。例如,如图7中所示,参考帧720包括参考块722。参考帧720可以在空间上邻近于当前帧710,并且参考帧720中的参考块722可以在空间上与当前块712一致。
图8是根据本公开的实施方式的空间和时间交替块约束模式视频代码化的方法的示例的图。诸如图4中所示的编码器400的编码器可以接收输入视频流,诸如图4中所示的输入视频流402,可以对输入视频流进行编码,诸如图4中所示的编码,并且可以输出已编码视频流,诸如图4中所示的经压缩比特流404。在某些实施方式中,对视频流进行编码包括空间和时间交替块约束模式视频代码化800。如图8的示例中所示,空间和时间交替块约束模式视频代码化800包括在810处识别当前块,在820处确定相邻代码化模式,并且在830处进行约束或无约束代码化。
在810处识别当前块。在某些实施方式中,输入或源视频流的当前帧包括多个N×N块,诸如16×16块,并且来自当前帧的块被识别为当前块。例如,帧(诸如图7中所示的帧710)被识别为当前帧,并且块(诸如图7中所示的块712)被识别为当前块。可以以逐个块为基础对来自源帧的每个块进行代码化。在某些实施方式中,基于块的代码化包括使用分级代码化(诸如四叉树代码化)对块进行编码。在一个示例中,当前块是64×64块,并且对当前块进行编码包括对一个或多个子块(诸如图6中所示的块610至650中的一个或多个)进行编码。
在820处识别或确定相邻代码化模式。在某些实施方式中,这包括识别被用于对相邻块进行编码的代码化模式、识别被用于相邻块的代码化决策模式或两者。代码器(诸如图4中所示的编码器400)可以确定与当前块相邻的块(其可以是先前代码化的块)是被代码化为约束决策模式块还是无约束决策模式块。代码器可以存储指示先前代码化块是被代码化为约束决策模式块还是无约束决策模式块的比特或标志,并且识别或确定相邻代码化模式可以包括评估该标志。
在830处执行约束或无约束决策模式代码化。在某些实施方式中,执行约束或无约束决策模式代码化包括基于用于相邻块的代码化决策模式来确定要执行约束决策模式代码化还是无约束决策模式代码化。例如,直接紧挨在当前帧中的当前块上方的块、直接紧挨在当前帧中的当前块左侧的块或两者可以是无约束决策模式代码化块,并且可以使用约束决策模式代码化对当前块进行代码化。在另一示例中,直接紧挨在当前帧中的当前块上方的块、直接紧挨在当前帧中的当前块左侧的块或两者可以是约束决策模式代码化块,并且可以使用无约束决策模式代码化对当前块进行代码化。
无约束决策模式代码化可以包括通过从参考帧识别参考块来生成运动补偿参考块,并且使用选自候选空间滤波器集合的空间滤波器对参考块进行滤波。可以使用全搜索(诸如速率失真优化模式搜索)来识别所选择的空间滤波器。全搜索可以包括将来自候选空间滤波器集合的每个候选空间滤波器应用于参考块以生成候选运动补偿参考块的集合,确定用于每个候选运动补偿参考块的残余,并且选择与具有最小预测误差的残余相关联的空间滤波器。在某些实施方式中,无约束决策模式代码化包括部分全搜索。例如,基于指示当前块与预测块之间的相似性的度量,可以终止速率失真优化模式搜索,使得省略对候选搜索类型中的一个或多个的评估。
一个或多个参考块在无约束决策模式下可能是不可用的,使得代码化包括使用可用参考块。例如,当前块可以是帧的左上方块,因此,在当前帧的当前块上方的参考块和在当前帧中的当前块左侧的参考块是不可用的。在这种情况下,无约束决策模式代码化可以使用来自前一帧的共置(collocated)块的预测模式。在另一示例中,当前块可以是来自最左列的块,使得在当前帧中的当前块左侧的参考块不可用。在这种情况下,无约束决策模式代码化可以使用来自在当前帧中的当前块上方的参考块的预测模式和来自来自前一帧的共置块的预测模式。在另一示例中,当前块可以是来自当前帧的最顶行的块,因此在当前帧中的当前块上方的参考块不可用。在这种情况下,无约束决策模式代码化可以使用来自在当前帧中的当前块左侧的参考块的预测模式和来自前一帧的共置块的预测模式。
约束决策模式代码化还可以包括基于被用于对相邻块进行编码的预测滤波器来识别预测滤波器,其可以是空间滤波器。例如,约束决策模式代码化包括确定被用于对相邻块进行编码的预测滤波器是否匹配。所选择的预测滤波器类型可以与相邻块相匹配。例如,在候选空间滤波器的集合包括N个滤波器类型的情况下,可以使用第N滤波器类型对在当前块上方的相邻块进行编码,可以使用第N滤波器类型对在当前块左侧的相邻块进行编码,可以省略滤波器搜索,并且可以使用第N滤波器类型对当前块进行编码。在其它实施方式中,相邻滤波器类型不同,并且使用全搜索或简化的候选集搜索来选择滤波器。例如,在候选空间滤波器的集合包括N个滤波器类型的情况下,可以使用第一滤波器类型对在当前块上方的相邻块进行编码,可以使用第二滤波器类型对在当前块左侧的相邻块进行编码,并且简化的候选集搜索包括使用第一滤波器类型和第二滤波器类型的搜索。在某些情况下,简化的候选集搜索包括搜索一个或多个相似滤波器类型。例如,候选空间滤波器的集合包括N个滤波器类型,可以使用第一滤波器类型对在当前块上方的相邻块进行编码,可以使用第二滤波器类型对在当前块左侧的相邻块进行编码,候选集合包括与第一滤波器类型和第二滤波器类型类似的第三滤波器类型,并且简化的候选集搜索包括使用第一滤波器类型、第二滤波器类型以及第三滤波器类型的搜索。
无约束决策模式代码化可以包括速率失真优化搜索。例如,速率失真优化搜索包括块规模搜索以将要代码化的子块的集合识别为当前块内的不同单元。在某些实施方式中,块规模搜索包括评估候选块规模的集合以识别当前块内的每个可以被代码化为不同单元的子块的集合。例如,当前块可以是64×64块(诸如图6中所示的64×64块610)以及候选块规模的集合(诸如正方形块620至650)或矩形块。例如,可以搜索具有尺寸4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32以及64×64的块。还可以包括基于相邻块规模的定向求精模式块规模搜索。例如,在当前块上方的块可以使用8×16分区规模,在当前块左侧的块可以使用16×16分区规模,并且无约束决策模式代码化可以包括搜索类似规模的单元,诸如8×8、16×8、8×16、16×16分区规模。
在某些实施方式中,约束决策模式代码化包括场境速率失真优化搜索,其包括从在空间上在当前帧中的当前块上方的相邻块、在空间上在当前帧中的当前块左侧的相邻块以及与在时间上邻近的先前编码帧中的当前块在空间上一致的相邻块之间识别最小代码化块规模和最大代码化块规模。场境速率失真优化搜索可以包括搜索候选块规模的简化集合。例如,搜索可以省略小于来自相邻块的最小代码化块规模的候选块规模和大于来自相邻块的最大代码化块规模的候选块规模。
如图7和8中所示的交替块约束模式视频代码化的图的其它实施方式是可用的。可以添加交替块约束模式视频代码化的附加元素,可以将某些元素组合和/或可以移除某些元素。
单词“示例”或“示例性”在本文中被用来意指充当示例、实例或图示。在本文中描述为“示例”或“示例性”的任何方面或设计不一定要理解为相对于其它方面或设计而言是优选或有利的。相反地,单词“示例”或“示例性”的使用旨在以具体的方式提出概念。如在本申请中使用的术语“或”旨在意指包括性的“或”而不是排他性的“或”。也就是说,除非另外指定,或者从上下文显而易见,“X包括A或B”旨在意指任何的自然包括性排列。也就是说,如果X包括A;X包括B;或者X包括A和B两者,则根据任何前述实例,满足“X包括A或B”。另外,如在本申请和所附权利要求中使用的冠词“一(a)”和“一(an)”一般地应被理解成意指“一个或多个”,除非另外指明或者从上下文显而易见的是针对单数形式。此外,术语“实施例”或“一个实施例”或“实施方式”或“一个实施方式”遍及各处的使用并不旨在意指相同的实施例或实施方式,除非这样地描述。如本文中所使用的术语“确定”和“识别”或其任何变型包括使用图1中所示的设备中的一个或多个以无论任何方式来选择、查明、计算、查找、接收、确定、建立、获得或者以其它方式识别或确定。
进一步地,为了说明的简单起见,虽然本文中的图和描述可以包括步骤或阶段的序列或系列,但本文中公开的方法的元素可以按照各种顺序和/或同时地发生。另外,本文中公开的方法的元素可以与在本文中并未明确地呈现和描述的其它元素一起发生。此外,可能并非本文中所述的方法的所有元素都是实现根据公开主题的方法所需要的。
可以用硬件、软件或其组合来实现发射站100A和/或接收站100B(以及存储在其上面和/或从而被执行的算法、方法、指令等)的实施方式。硬件可以包括例如计算机、知识产权(IP)核心、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其它适当电路。在权利要求中,应将术语“处理器”理解为包含任何前述硬件(单独地或以组合方式)。术语“信号”和“数据”被可互换地使用。进一步地,发射站100A和接收站100B的部分不一定必须用相同的方式实现。
进一步地,在一个实施方式中,例如,可以使用具有计算机程序的通用计算机或通用处理器来实现发射站100A或接收站100B,所述计算机程序在被执行时执行本文所述的任何的各方法、算法和/或指令。另外或替选地,例如,可以利用专用计算机/处理器,其可以包含用于执行本文中所述的任何方法、算法或指令的专用硬件。
例如可以在实时视频系统中的计算机上实现发射站100A和接收站100B。替选地,可以在服务器上实现发射站100A,并且可以在与服务器分离的设备(诸如手持式通信设备)上实现接收站100B。在这种情况下,发射站100A可以使用编码器400将内容编码成已编码视频信号,并且将已编码视频信号发射到通信设备中。进而,通信设备然后可以使用解码器500将已编码视频信号解码。替选地,通信设备可以将本地地存储在通信设备上的内容(例如并非由发射站100A发射的内容)解码。其它适当的发射站100A和接收站100B实施方案可用。例如,接收站100B可以是大体上固定的个人计算机而不是便携式通信设备和/或包括编码器400的设备还可以包括解码器500。
进一步地,所有实施方式或其一部分可以采取从例如有形计算机可用或计算机可读介质可访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是可以有形地包含、存储、通信或传输程序以供任何处理器使用或与之相结合地使用的任何设备。例如,该介质可以是电子、磁性、光学、电磁或半导体设备。其它适当介质也是可用的。
描述上述实施方式是为了允许容易地理解本申请而不是进行限制。相反地,本申请涵盖包括在所附权利要求范围内的各种修改和等价布置,该范围将是根据最宽泛的解释从而涵盖根据法律许可的所有此类修改和等价结构。

Claims (18)

1.一种方法,包括:
识别输入视频流的当前帧的当前块;
响应于存储在非暂时性计算机可读介质上的指令,由处理器通过使用交替块约束决策模式代码化对所述当前块进行编码,来生成编码块,其中,交替块约束决策模式代码化包括:在先前代码化的紧邻块是无约束决策模式代码化块的条件下,将所述当前块编码为约束决策模式代码化块;以及
将所述编码块包括在输出比特流中。
2.根据权利要求1所述的方法,其中,交替块约束决策模式代码化包括:在所述先前代码化的紧邻块是约束决策模式代码化块的条件下,将所述当前块编码为无约束决策模式代码化块。
3.根据权利要求1所述的方法,其中,所述先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块左侧的先前代码化的块,或者是在空间上紧挨着在所述当前帧中所述当前块上方的先前代码化的块。
4.根据权利要求1所述的方法,其中,所述先前代码化的紧邻块是第一先前代码化的紧邻块,以及其中,交替块约束决策模式代码化包括:在第二先前代码化的紧邻块紧邻块是无约束决策模式代码化块的条件下,将所述当前块编码为约束决策模式代码化块。
5.根据权利要求4所述的方法,其中,所述第二先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块上方的先前代码化的块,并且所述第一先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块左侧的先前代码化的块。
6.根据权利要求4所述的方法,其中,将所述当前块编码为约束决策模式代码化块包括:
识别第一预测滤波器,所述第一预测滤波器被用于对所述第一先前代码化的紧邻块进行代码化;
识别第二预测滤波器,所述第二预测滤波器被用于对所述第二先前代码化的紧邻块进行代码化;
在所述第一预测滤波器与所述第二预测滤波器匹配的条件下,使用所述第一预测滤波器对所述当前块进行代码化;以及
在所述第一预测滤波器不同于所述第二预测滤波器的条件下,从候选预测滤波器的集合中识别所选预测滤波器,并使用所述所选预测滤波器对所述当前块进行代码化。
7.根据权利要求4所述的方法,其中,交替块约束决策模式代码化包括:在第三先前代码化的紧邻块是无约束决策模式代码化块的条件下,将所述当前块编码为约束决策模式代码化块,其中,所述第三先前代码化的紧邻块在空间上与所述当前块是一致的,并且所述第三先前代码化的紧邻块来自在时间上紧邻的先前代码化的帧。
8.根据权利要求7所述的方法,其中,将所述当前块编码为约束决策模式代码化块包括:
识别最小代码化块规模,其中,所述最小代码化块规模是所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块之中的最小代码化块规模;
识别最大代码化块规模,其中,所述最大代码化块规模是所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块之中的最大代码化块规模;以及
使用所述最小代码化块规模作为代码化块规模的下限并使用所述最大代码化块规模作为代码化块规模的上限,来对所述当前块进行代码化。
9.一种方法,包括:
识别输入视频流的当前帧的当前块;
响应于存储在非暂时性计算机可读介质上的指令,由处理器通过使用交替块约束决策模式代码化对所述当前块进行编码,来生成编码块,其中,交替块约束决策模式代码化包括:在第一先前代码化的紧邻块是无约束决策模式代码化块且第二先前代码化的紧邻块是无约束决策模式代码化块的条件下,将所述当前块编码为约束决策模式代码化块;以及
将所述编码块包括在输出比特流中。
10.根据权利要求9所述的方法,其中,交替块约束决策模式代码化包括:在所述第一先前代码化的紧邻块是约束决策模式代码化块且所述第二先前代码化的紧邻块是约束决策模式代码化块的条件下,将所述当前块编码为无约束决策模式代码化块。
11.根据权利要求9所述的方法,其中,所述第一先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块左侧的先前代码化的块,并且所述第二先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块上方的先前代码化的块。
12.根据权利要求9所述的方法,其中,将所述当前块编码为约束决策模式代码化块包括:
识别第一预测滤波器,所述第一预测滤波器被用于对所述第一先前代码化的紧邻块进行代码化;
识别第二预测滤波器,所述第二预测滤波器被用于对所述第二先前代码化的紧邻块进行代码化;
在所述第一预测滤波器与所述第二预测滤波器匹配的条件下,使用所述第一预测滤波器对所述当前块进行代码化;以及
在所述第一预测滤波器不同于所述第二预测滤波器的条件下,从候选预测滤波器的集合中识别所选预测滤波器,并使用所述所选预测滤波器对所述当前块进行代码化。
13.根据权利要求9所述的方法,其中,交替块约束决策模式代码化包括:在第三先前代码化的紧邻块是无约束决策模式代码化块的条件下,将所述当前块编码为约束决策模式代码化块,其中,所述第三先前代码化的紧邻块在空间上与所述当前块是一致的,并且所述第三先前代码化的紧邻块来自在时间上紧邻的先前代码化的帧。
14.根据权利要求13所述的方法,其中,将所述当前块编码为约束决策模式代码化块包括:
识别最小代码化块规模,其中,所述最小代码化块规模是所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块之中的最小代码化块规模;
识别最大代码化块规模,其中,所述最大代码化块规模是所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块之中的最大代码化块规模;以及
使用所述最小代码化块规模作为代码化块规模的下限并使用所述最大代码化块规模作为代码化块规模的上限,来对所述当前块进行代码化。
15.一种方法,包括:
识别输入视频流的当前帧的当前块;
响应于存储在非暂时性计算机可读介质上的指令,由处理器通过使用交替块约束决策模式代码化对所述当前块进行编码,来生成编码块,其中,交替块约束决策模式代码化包括:
在第一先前代码化的紧邻块是无约束决策模式代码化块的条件下,将所述当前块编码为约束决策模式代码化块,其中,所述第一先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块左侧的先前代码化的块,第二先前代码化的紧邻块是无约束决策模式代码化块,其中,所述第二先前代码化的紧邻块是在空间上紧挨着在所述当前帧中所述当前块上方的先前代码化的块,并且第三先前代码化的紧邻块是无约束决策模式代码化块,其中,所述第三先前代码化的紧邻块在空间上与所述当前块是一致的,并且所述第三先前代码化的紧邻块来自在时间上紧邻的先前代码化的帧;
使用基于所述第一先前代码化的紧邻块和所述第二先前代码化的紧邻块所识别的预测滤波器对所述当前块进行编码;以及
使用基于所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块所识别的块的代码化块规模范围,对所述当前块进行编码;以及
将所述编码块包括在输出比特流中。
16.根据权利要求15所述的方法,其中,交替块约束决策模式代码化包括:在以下条件下将所述当前块编码为无约束决策模式代码化块:
所述第一先前代码化的紧邻块是约束决策模式代码化块,
所述第二先前代码化的紧邻块是约束决策模式代码化块,以及
所述第三先前代码化的紧邻块是约束决策模式代码化块。
17.根据权利要求15所述的方法,其中,使用所述预测滤波器对所述当前块进行编码包括:
识别第一候选预测滤波器,所述第一候选预测滤波器被用于对所述第一先前代码化的紧邻块进行代码化;
识别第二候选预测滤波器,所述第二候选预测滤波器被用于对所述第二先前代码化的紧邻块进行代码化;
在所述第一候选预测滤波器与所述第二候选预测滤波器匹配的条件下,选择所述第一候选预测滤波器作为所述预测滤波器;以及
在所述第一候选预测滤波器不同于所述第二候选预测滤波器的条件下,从可用预测滤波器的集合中选择所述预测滤波器。
18.根据权利要求15所述的方法,其中,使用所述代码化块规模范围对所述当前块进行编码包括:
识别最小代码化块规模,其中,所述最小代码化块规模是所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块之中的最小代码化块规模;
识别最大代码化块规模,其中,所述最大代码化块规模是所述第一先前代码化的紧邻块、所述第二先前代码化的紧邻块以及所述第三先前代码化的紧邻块之中的最大代码化块规模;以及
选择所述最小代码化块规模作为所述代码化块规模范围的下限并选择所述最大代码化块规模作为所述代码化块规模范围的上限。
CN201580034579.6A 2014-11-13 2015-11-06 用于交替块约束决策模式代码化的方法 Active CN107079156B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/540,083 US10142647B2 (en) 2014-11-13 2014-11-13 Alternating block constrained decision mode coding
US14/540,083 2014-11-13
PCT/US2015/059547 WO2016077179A1 (en) 2014-11-13 2015-11-06 Alternating block constrained decision mode coding

Publications (2)

Publication Number Publication Date
CN107079156A true CN107079156A (zh) 2017-08-18
CN107079156B CN107079156B (zh) 2020-01-31

Family

ID=54704082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580034579.6A Active CN107079156B (zh) 2014-11-13 2015-11-06 用于交替块约束决策模式代码化的方法

Country Status (6)

Country Link
US (1) US10142647B2 (zh)
EP (1) EP3219103B1 (zh)
CN (1) CN107079156B (zh)
DE (1) DE112015005159B4 (zh)
GB (1) GB2546882B (zh)
WO (1) WO2016077179A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9806775B2 (en) * 2015-09-01 2017-10-31 Qualcomm Incorporated Multi-user multiple-input-multiple-output groupings of stations
US9860761B2 (en) * 2015-09-01 2018-01-02 Qualcomm Incorporated Multi-user multiple-input-multiple-output grouping metrics
KR20200012957A (ko) * 2017-06-30 2020-02-05 후아웨이 테크놀러지 컴퍼니 리미티드 인터-프레임 예측 방법 및 디바이스
JP7259053B2 (ja) * 2019-02-01 2023-04-17 北京字節跳動網絡技術有限公司 複合イントラ‐インター予測の拡張適用

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340659A (zh) * 2010-07-23 2012-02-01 联合信源数字音视频技术(北京)有限公司 一种基于avs的并行的模式决策装置和方法
US8774272B1 (en) * 2005-07-15 2014-07-08 Geo Semiconductor Inc. Video quality by controlling inter frame encoding according to frame position in GOP

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050230A (en) 1989-11-29 1991-09-17 Eastman Kodak Company Hybrid residual-based hierarchical storage and display method for high resolution digital images in a multiuse environment
US5617541A (en) 1994-12-21 1997-04-01 International Computer Science Institute System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets
US6847684B1 (en) 2000-06-01 2005-01-25 Hewlett-Packard Development Company, L.P. Zero-block encoding
US6778553B1 (en) 2000-11-10 2004-08-17 Microsoft Corp. System and method for media streaming
WO2004043068A1 (en) 2002-11-04 2004-05-21 Tandberg Telecom As Inter-network and inter-protocol video conference privacy method, apparatus, and computer program product
EP1642463A1 (en) 2003-06-30 2006-04-05 Koninklijke Philips Electronics N.V. Video coding in an overcomplete wavelet domain
EP1704723A1 (en) 2003-12-02 2006-09-27 Sungkyunkwan University Method and apparatus for video encoding
US7881386B2 (en) * 2004-03-11 2011-02-01 Qualcomm Incorporated Methods and apparatus for performing fast mode decisions in video codecs
US7689051B2 (en) 2004-04-15 2010-03-30 Microsoft Corporation Predictive lossless coding of images and video
JP4891234B2 (ja) 2004-06-23 2012-03-07 エージェンシー フォー サイエンス, テクノロジー アンド リサーチ グリッド動き推定/補償を用いたスケーラブルビデオ符号化
KR100679011B1 (ko) 2004-07-15 2007-02-05 삼성전자주식회사 기초 계층을 이용하는 스케일러블 비디오 코딩 방법 및 장치
WO2010042486A1 (en) 2008-10-07 2010-04-15 Euclid Discoveries, Llc Feature-based video compression
KR100703749B1 (ko) 2005-01-27 2007-04-05 삼성전자주식회사 잔차 재 추정을 이용한 다 계층 비디오 코딩 및 디코딩방법, 이를 위한 장치
US20060193386A1 (en) 2005-02-25 2006-08-31 Chia-Wen Lin Method for fast mode decision of variable block size coding
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
EP1711018A1 (en) 2005-04-08 2006-10-11 Thomson Licensing Method and apparatus for encoding video pictures, and method and apparatus for decoding video pictures
US20060256868A1 (en) 2005-05-16 2006-11-16 Ensequence, Inc. Methods and systems for repositioning mpeg image content without recoding
KR100746011B1 (ko) 2005-08-24 2007-08-06 삼성전자주식회사 잔차 예측의 성능 개선 방법, 상기 방법을 이용한 비디오인코더 및 비디오 디코더
US8467448B2 (en) 2006-11-15 2013-06-18 Motorola Mobility Llc Apparatus and method for fast intra/inter macro-block mode decision for video encoding
CN101159875B (zh) 2007-10-15 2011-10-05 浙江大学 二重预测视频编解码方法和装置
US8666181B2 (en) 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
US9014498B2 (en) 2009-06-16 2015-04-21 Koninklijke Philips N.V. Encoding a signal into a scalable bitstream and decoding such bitstream
EP2452501B1 (en) 2009-07-10 2020-09-02 Samsung Electronics Co., Ltd. Spatial prediction method and apparatus in layered video coding
US20110249743A1 (en) 2010-04-09 2011-10-13 Jie Zhao Super-block for high performance video coding
JP5763210B2 (ja) * 2011-04-21 2015-08-12 メディアテック インコーポレイテッド 改良されたループ型フィルタリング処理のための方法と装置
US9338458B2 (en) 2011-08-24 2016-05-10 Mediatek Inc. Video decoding apparatus and method for selectively bypassing processing of residual values and/or buffering of processed residual values
US9185404B2 (en) * 2011-10-07 2015-11-10 Qualcomm Incorporated Performing transform dependent de-blocking filtering
US20140044162A1 (en) * 2012-08-08 2014-02-13 Qualcomm Incorporated Adaptive inference mode information derivation in scalable video coding
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8774272B1 (en) * 2005-07-15 2014-07-08 Geo Semiconductor Inc. Video quality by controlling inter frame encoding according to frame position in GOP
CN102340659A (zh) * 2010-07-23 2012-02-01 联合信源数字音视频技术(北京)有限公司 一种基于avs的并行的模式决策装置和方法

Also Published As

Publication number Publication date
US20160142726A1 (en) 2016-05-19
WO2016077179A1 (en) 2016-05-19
DE112015005159T5 (de) 2017-08-03
GB2546882B (en) 2021-09-29
EP3219103B1 (en) 2020-09-02
US10142647B2 (en) 2018-11-27
GB2546882A (en) 2017-08-02
GB201621452D0 (en) 2017-02-01
CN107079156B (zh) 2020-01-31
DE112015005159B4 (de) 2023-09-14
EP3219103A1 (en) 2017-09-20

Similar Documents

Publication Publication Date Title
US11601644B2 (en) Image and video coding using machine learning prediction coding models
US11496740B2 (en) Efficient context handling in arithmetic coding
US10701398B2 (en) Context adaptive scan order for entropy coding
CN107743706A (zh) 超变换视频代码化
CN107852495A (zh) 低时延两次视频代码化
CN107027033A (zh) 用于视频压缩的贴片拷贝
US11849113B2 (en) Quantization constrained neural image coding
CN107465923B (zh) 在可变块尺寸的视频译码中的自适应重叠块预测
US20230308679A1 (en) Motion prediction coding with coframe motion vectors
CN107079156A (zh) 交替块约束决策模式代码化
CN107302701A (zh) 译码插值滤波器类型
US11153588B2 (en) Dual deblocking filter thresholds
CN106663310B (zh) 频域去噪
CN107465925B (zh) 在可变块尺寸的视频译码中的自适应重叠块预测
US20230291925A1 (en) Inter-Intra Prediction With Implicit Models
US20240187566A1 (en) Warped reference list for warped motion video coding
US20240089433A1 (en) Chroma Transform Type Determination

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

GR01 Patent grant
GR01 Patent grant