CN105684448B - 用于高效片头处理的方法和装置 - Google Patents

用于高效片头处理的方法和装置 Download PDF

Info

Publication number
CN105684448B
CN105684448B CN201380043285.0A CN201380043285A CN105684448B CN 105684448 B CN105684448 B CN 105684448B CN 201380043285 A CN201380043285 A CN 201380043285A CN 105684448 B CN105684448 B CN 105684448B
Authority
CN
China
Prior art keywords
picture
piece
class matrix
read
motion vector
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.)
Active
Application number
CN201380043285.0A
Other languages
English (en)
Other versions
CN105684448A (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 Technology Holdings LLC
Original Assignee
Google Technology Holdings 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 Technology Holdings LLC filed Critical Google Technology Holdings LLC
Publication of CN105684448A publication Critical patent/CN105684448A/zh
Application granted granted Critical
Publication of CN105684448B publication Critical patent/CN105684448B/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

本发明公开了一种用于高效片头处理的方法和装置,其用于对包括多个图片的序列进行编码和解码,该多个图片中的每个图片可分割成一个或多个片,该一个或多个片中的每个片至少部分根据片头被处理。在一个实施例中,在片类型等于P或B的情况下所有相关语法和函数调用被分组在一起,并且描述待在对数据块进行编码和对相关语法进行解块时使用的量化参数的初始值的语法(1624)被放置在这组语法和函数调用之后。

Description

用于高效片头处理的方法和装置
技术领域
本发明涉及用于对数据进行编码的系统和方法,更具体地涉及一种用于对具有高效视频编码数据的片头进行生成和处理的系统和方法。
背景技术
与媒体节目的生成、传输和再现关联的技术正在快速增长。这些技术包括允许对媒体节目的数字版本进行编码以将其压缩成非常小的尺寸并且促进其传输、存储、接收和回放的编码方案。这些技术应用在个人视频记录器(PVR)、视频点播(VOD)、多频道媒体节目提供、交互性移动电话和媒体节目传输中。
在没有压缩的情况下,数字媒体节目通常太大而不能以商业上可接受的成本来传输和/或存储。然而,这样的节目的压缩已经使得这样的数字媒体节目的传输和存储不仅商业上可行,而且很普通。
首先,媒体节目的传输涉及通过高带宽传输介质、诸如有线电视和卫星来传输的低至中等分辨率图像。然而,这样的传输已经演进到包括较低带宽传输介质、诸如经由计算机网络、WiFi、移动TV以及第三代(3G)网络和第四代(4G)网络向固定设备和移动设备的因特网传输。另外,这样的传输还演进到包括高清媒体节目、诸如高清电视(HDTV),这些节目具有巨大的传输带宽和存储要求。
高效视频编码(HEVC)编码标准(或H.265)是ISO/IEC MPEG标准化组织颁布的最新编码标准。HEVC之前的编码标准包括H.262/MPEG-2和随后的H2.64/MPEG-4高级视频编码(AVC)标准。H.264/MPEG-4在包括高清(HD)电视的很多应用中已经基本上代替了H.262/MPEG-2。HEVC即使在立体或多视图实施例中也支持比HD高的分辨率,并且更适合移动设备、诸如平板式个人计算机。与HEVC有关的另外的信息可以在由Gary J.Sullivan、Jens-Rainer Ohm、Woo-Jin Han和Thomas Wiegand在2012年12月的IEEE Transaction onCircuits and Systems for Video Technology上的公开“Overview of the HighEfficiency Video Coding(HEVC)Standard”中找到,其由此通过引用并入本文中。
如在其他编码标准中,HEVC兼容数据的比特流结构和语法是标准化的,使得符合标准的每个解码器在被提供相同输入时将产生相同输出。被合并到HEVC标准中的特征中的一些特征包括片的定义和处理,其中的一个或多个片可以一起包括视频序列中的图片中的一个图片。该视频序列包括多个图片,并且每个图片可以包括一个或多个片。片包括独立片和从属片。独立片(下文中简称为片)为在熵编码、信号预测和残留信号构造方面可以与相同图片的其他片独立地解码的数据结构。这一数据结构允许在数据丢失的情况下对事件重新同步。“依赖片”为允许将关于片的信息(诸如波前入口或片内图块(tile)有关的信息)携带至网络层,从而使得数据可用于系统更快地处理分段的片的结构。依赖片主要用于低延迟编码。
片的编码和解码根据片头中所包括的信息来执行。片头包括用于读取在对片进行解码时使用的数据和标记的语法和逻辑。由于任何给定视频流通常包括成千个图片,并且每个图片可以包含一个或多个片,所以使用该头的语法和逻辑可以对于被执行以编码并且稍后对视频流进行解码的处理负荷有显著影响。因此,需要一种将对于解码和使用片头所需的处理最小化的片头语法和逻辑。本发明满足这一需要。
发明内容
为了解决以上描述的要求,本文档公开一种可用于处理系统中的方法,该处理系统用于对包括多个图片的序列进行解码,该多个图片中的每个图片可分割成一个或多个片,该一个或多个片中的每个片至少部分根据片头来处理。在一个实施例中,该方法包括:根据片类型数据确定一个或多个片中的片是否为间预测片;如果该片被确定为图片间预测片,则伴随着仅用以将该间预测片识别为P类型片或者B类型片的进一步的片类型测试被执行而执行以下操作:(a)确定序列时间运动矢量预测符标记是否指示图片被布置在其中的序列能够使用至少一个时间运动矢量预测符来编码;(b)如果该序列时间运动矢量预测符标记指示图片被布置在其中的序列能够使用至少一个时间运动矢量预测符来编码,则读取片/图片时间运动矢量预测启用标记,该片/图片时间运动矢量预测启用标记指示该片被布置在其中的图片使用至少一个时间运动矢量预测符来编码;(c)读取参考图片超负荷标记,该参考图片超负荷标记指示片头中是否包括描述具有至少一个参考图片的至少一个参考图片列表的最大索引的数据;(d)如果所读取的参考图片超负荷标记指示存在描述具有至少一个参考图片的至少一个参考图片列表的最大索引的数据,则读取该数据;(e)只有当至少一个参考图片未被隐含地定义时,才读取参考图片列表修改信息;(f)如果该片为B类型片,则读取指示运动矢量补偿预测中所使用的运动矢量差异的结构的信息;(g)只有当该片头中存在定义用于该片的熵编码的情境变量的初始化的信息时,才读取定义该情境变量的初始化的信息;(h)根据所读取的片/图片时间运动矢量预测启用标记来确定该片是否使用至少一个时间运动矢量预测符来编码;(i)只有当该片使用至少一个时间运动矢量预测符来编码时,才至少部分根据该片为P类型片还是B类型片来读取描述与至少一个时间运动矢量预测关联的片的至少一个参考图片的信息;(j)根据该片为B类型片还是P类型片来应用加权预测;以及(k)根据该片头来确定用于该片的合并时间运动矢量预测候选的最大数目。
在另一实施例中,该方法包括用于对以上描述的序列进行编码的操作,并且该操作包括对头中的一个或多个片中的片的片类型数据进行编码,该片类型数据指示片类型;对片头逻辑进行编码以便对用于对片内的块进行编码的初始值进行解码;对片头逻辑进行编码以便根据片头来对解块滤波器参数进行解码;对片头逻辑进行编码以便根据从片头读取的片类型数据来确定一个或多个片中的片是否为间预测片;对片头逻辑进行编码以便如果该片被确定为图片间预测片则伴随着仅用以将该间预测片识别为P类型片或者B类型片的进一步的片类型测试被执行而执行包括以上步骤(a)-(k)的操作。
已经讨论的特征、功能和优点可以在本发明的各种实施例中独立地实现,或者可以在又一其他实施例中组合,该其他实施例的进一步细节可以参考以下描述和附图。
附图说明
现在参考附图,其中贯穿附图相似的附图标记代表对应的部件:
图1是描绘可以用于传输和/或存储和取回音频和/或视频信息的视频编码-解码系统示例性实施例的图;
图2A是其中向另一位置发送并且在该另一位置接收编码AV信息的编解码系统的一个实施例的图;
图2B是描绘其中编码信息被存储并且稍后被取回用于呈现的编解码系统、下文中称为编解码存储系统的示例性实施例的图;
图3是图示源编码器的一个实施例的框图;
图4是描绘AV信息的图片、诸如图片序列中的图片中的一个图片的图;
图5是示出将编码树块示例性划分成编码单元的图;
图6是图示用于图5所示的编码树块划分的代表性四叉树和数据参数的表示的图;
图7是图示将编码单元划分成一个或多个预测单元的图;
图8是示出被划分成四个预测单元的编码单元以及关联的变换单元集的图;
图9是示出用于与图8的示例中的编码单元关联的变换单元的RQT编码树的图;
图10是图示预测单元的空间预测的图;
图11是图示时间预测的图;
图12是图示运动矢量预测(MVP)的使用的图;
图13图示使用参考图片列表的示例;
图14是图示由编码器根据上述标准执行的过程的图;
图15描绘由解码器根据新兴的HEVC标准在解码时使用collocated_from_10_flag;
图16A至图16C是呈现基线片头逻辑和语法的图;
图17A和图17B呈现图示改进的片头语法的一个实施例的语法图;
图18A和图18B是图示可以根据图17A和17B所示的片头来执行的示例性操作的图;
图19A和图19B呈现图示改进的片头语法的另一实施例的语法图;
图20A和图20B呈现图示改进的片头语法的另一实施例的语法图;以及
图21图示可以用于实现本发明的实施例的示例性处理系统。
具体实施方式
在以下描述中对附图进行参考,该附图形成以下描述的一部分并且通过说明的方式示出本发明的若干实施例。应当理解,可以利用其它实施例并且可以在不偏离本发明的范围的情况下进行结构变化。
视听信息收发和存储
图1是描绘可以用于传输和/或存储和取回音频和/或视频信息的视频编码-解码(编解码)系统100的示例性实施例的图。该编解码系统100包括编码系统104和解码系统112,该编码系统104接受视听(AV)信息102并且处理该AV信息102以生成编码(压缩)AV信息106,该解码系统112处理该编码AV信息106以产生恢复AV信息114。由于编码过程和解码过程不是无损的,所以恢复AV信息114与初始AV信息102不一致,但是伴随着编码过程和参数的明智选择,恢复AC信息114与未处理AC信息102之间的差异对于人类感知而言是可接受的。
编码AC信息106通常在解码和呈现之前传输或存储和取回,这由收发(发送和接收)或存储/取回系统108来执行。收发损失可能很明显,但是存储/取回损失通常很小或者不存在,因此向解码系统112提供的收发AC信息110通常与编码AC信息106相同或者基本相同。
图2A是其中向另一位置发送并且在另一位置接收编码AV信息106的编解码系统200A的一个实施例的图。传输段230将输入AV信息102变换成适合传输的信号并且通过传输信道212向接收段232传输经变换的信号。接收段232接收经传输的信号,并且将所接收的信号变换成恢复AV信息114用于呈现。如以上所讨论的,由于编码和传输损失和误差,恢复AV信息114可能比向传输段230提供的AV信号102具有更差的质量。然而,可以包括误差校正系统以降低或消除这样的误差。例如,可以通过添加冗余信息来对编码AV信息106进行前向纠错(FEC)编码,并且可以将这样的冗余信息用于识别和消除在接收段232中的误差。
传输段102包括用以对AV信息102的多个源进行编码的一个或多个源编码器202。该源编码器202主要出于压缩目的来对AV信息102进行编码以产生编码AV信息106,并且该源编码器202可以包括例如存储实施编解码、诸如MPEG-1、MPEG-2、MPEG-4 AVC/H.264、HEVC或类似编解码的指令的相关存储器和处理器,这在下面进一步描述。
编解码系统200A还可以包括图2A中用虚线示出的可选元件。这些可选元件包括视频多路复用编码器204、编码控制器208、和视频解多路复用解码器218。可选视频多路复用编码器204根据由可选编码控制器208提供的一个或多个参数对来自关联的多个源编码器202的编码AV信息106进行多路复用。这样的多路复用通常在时间域中并且基于数据分组来实现。
在一个实施例中,视频多路复用编码器204包括统计多路复用器,其合并来自多个源编码器202的编码AV信息106以使传输所需的带宽最小化。这是可能的,因为来自每个源编码器202的编码AV信息106的瞬时比特率根据AV信息102的内容随着时间能够变化很大。例如,对具有大量细节和运动的场景(例如运动事件)通常比具有极少运动或细节的场景(例如纵向对话)以更高的比特率来编码。由于每个源编码器202可能产生具有很高瞬时比特率的信息,而另一源编码器202可能产生具有很低瞬时比特率的信息,并且由于编码控制器208可以命令源编码器202根据影响瞬时比特率的某些性能参数来对AV信息106进行编码,所以来自(每个具有时间上变化的瞬时比特率的)源编码器106中的每个源编码器的信号能够以最优方式被组合在一起以使多路复用流205的瞬时比特率最小化。
如以上所描述的,源编码器202和视频多路复用编码器204可以可选地由编码控制器208来控制以使组合视频信号的瞬时比特率最小化。在一个实施例中,这使用来自传输缓冲器206的信息来实现,该传输缓冲器206暂时存储编码视频信号并且可以指示缓冲器206的充满。这允许在源编码器202或视频多路复用编码器204处执行的编码能够是传输缓冲器206中剩余的存储空间的函数。
传输段230还可以包括传输编码器210,其还对视频信号进行编码以便向接收段232进行传输。传输编码针对选择的传输介质可以包括例如上述FEC编码和/或多路复用方案中的编码。例如,如果传输为卫星或地面发射器,则传输编码器114可以在经由正交幅度调制(QAM)或类似调制技术传输之前将信号编码成信号星座。另外,如果编码视频信号要经由因特网协议设备和因特网来用流发送,则传输根据适当的协议对信号进行编码。此外,如下面进一步描述,如果编码信号要经由移动电话来传输,则使用适当的编码协议。
接收段232包括传输解码器214,该传输解码器214用以使用解码方案来接收由传输编码器210所编码的信号,该解码方案与在传输编码器210中所使用的编码方案互补。经解码的接收信号可以由可选接收缓冲器216来暂时存储,并且如果该接收信号包括多个视频信号,则由视频多路复用解码器218对该接收信号进行多路复用解码以从由视频多路复用编码器204所多路复用的视频信号中提取感兴趣的视频信号。最后,将该感兴趣的视频信号由源解码器220使用解码方案或者使用与由源编码器202用以对AV信息102进行编码的编解码互补的编解码来进行解码。
在一个实施例中,传输数据包括从服务器(代表传输段230)向客户端(代表接收段232)传输的分组化的视频流。在这种情况下,传输编码器210可以对数据进行分组化并且被嵌入在网络分组中的网络抽象层(NAL)单元。该NAL单元定义具有头和编码元件的数据容器,并且可以对应于视频帧或视频数据的其他片。
待传输的压缩数据可以被分组化并且经由传输信道212来传输,该传输信道212可以包括广域网(WAN)或局域网(LAN)。这样的网络可以包括例如无线网络,诸如WiFi、以太网网络、因特网网络或者由若干不同网络组成的混合网络。这样的通信可能受到通信协议例如实时传输协议(RTP)、用户数据报协议(UDP)或者任何其他类型的通信协议影响。不同的分组化方法可以用于比特流的每个网络抽象层(NAL)单元。在一种情况下,一个NAL单元的大小与没有分段而可以通过网络传输的最大分组大小对应的最大传输单元(MTU)的大小相比更小。在这种情况下,NAL单元被嵌入单个网络分组中。在另一种情况下,多个整体NAL单元被包括在单个网络分组中。在第三种情况下,一个NAL单元可能太大而不能在单个网络分组中传输并且因此被分成若干分段NAL单元,其中每个分段NAL单元背在单独网络分组中传输。分段NAL单元通常出于解码目的而被连续发送。
接收段232接收分组化数据并且根据网络分组来重构该NAL单元。对于分段NAL单元,客户端连结来自分段NAL单元的数据以重构原始NAL单元。客户端232对经接收和重构的数据流进行解码,并且在显示设备上再现视频图像和由扬声器来再现音频数据。
图2B是描绘其中编码信息被存储和稍后被取回用于呈现的编解码系统、下文中称为编解码存储系统200B的示例性实施例的图。这一实施例可以用于例如将信息本地存储在数字视频记录器(DVR)、闪存驱动、硬盘驱动或类似的设备中。在本实施例中,AV信息102由源编码器202进行源编码,可选地在存储在存储设备236中之前由存储缓冲器234进行缓冲。该存储设备236可以暂时地存储视频信号或者存储该视频信号持续延长的时间段,并且可以包括硬盘驱动、闪存驱动、RAM或ROM。存储的AV信息然后被取回,可选地由取回缓冲器238进行缓冲,并且由源解码器220进行解码。
图2C是描绘可以用于发送和接收HEVC数据的示例性内容分配系统200C的另一图,该内容分配系统200C包括编码系统或编码器202以及解码系统或解码器220。在一些实施例中,编码系统202可以包括输入接口256、控制器241、计数器242、帧存储器243、编码单元244、发射器缓冲器267和输出接口257。该解码系统220可以包括接收器缓冲器259、解码单元260、帧存储器261和控制器267。该编码系统202和解码系统220可以经由可以承载压缩比特流的传输路径而彼此耦合。该编码系统202的控制器241可以基于发射器缓冲器267或接收器缓冲器259的容量来控制待传输的数据量,并且可以包括另一参数、诸如每单位时间的数据量。控制器241可以控制编码单元244以防止解码系统220的接收信号解码操作的故障的出现。该控制器241可以是处理器或者作为非限制性示例包括具有处理器、随机存取存储器和只读存储器的微计算机。
作为非限制性示例从内容提供者提供的源图片246可以包括帧的视频序列,该帧的视频序列包括视频序列中的源图片。该源图片246可以是未压缩的或压缩的。如果该源图片246是未压缩的,则编码系统202可以具有编码功能。如果该源图片246是压缩的,则编码系统202可以具有转码功能。利用控制器241可以从源图片取得编码单元。帧存储器243可以具有第一区域和第二区域,该第一区域可以用于存储来自源图片246的输入帧,该第二区域可以用于读取这些帧并且将其输出至编码单元244。该控制器241可以向帧存储器243输出区域切换控制信号249。该区域切换控制信号249可以指示要利用第一区域还是第二区域。
控制器241可以向编码单元244输出编码控制信号250。该编码控制信号250可以使得编码单元202开始编码操作,诸如基于源图片来准备编码单元。响应于来自控制器241的编码控制信号250,该编码单元244可以开始读出准备的编码单元至高效编码过程,该高效编码过程诸如预测编码过程或变换编码过程,其处理准备的编码单元从而基于与编码单元关联的源图片来生成视频压缩数据。
编码单元244可以将所生成的视频压缩数据封装成包括视频分组的分组基本流(PES)。该编码单元244可以使用控制信息将视频分组映射成编码视频信号248,并且可以将节目时间戳(PTS)和该编码视频信号248向发射器缓冲器267传输。
包括所生成的视频压缩数据的编码视频信号248可以存储在发射器缓冲器267中。可以增加信息量计数器242以指示发射器缓冲器267中的总数据量。在数据从缓冲器被取回和移除时,可以减小该计数器242以反映发射器缓冲器267中的数据量。可以向该计数器242传输占用区域信息信号253以指示是否已经从发射器缓冲器267添加或移除来自编码单元244的数据,因此可以增加或减小计数器242。该控制器241可以基于占用区域信息253来控制编码单元244所产生的视频分组的产生,该占用区域信息253可以被传送以便预期、避免、防止和/或检测发射缓冲器267中发生上溢或下溢。
信息量计数器242可以响应于控制器241生成和输出的预设信号254来被重置。在该信息量计数器242被重置之后,其可以对编码单元244输出的数据进行计数,并且获得已经生成的视频压缩数据和/或视频分组的量。该信息量计数器242可以向控制器241提供代表所获得的信息量的信息量信号255。控制器241可以控制编码单元244使得发射器缓冲器267处没有上溢。
在一些实施例中,解码系统220可以包括输入接口266、接收器缓冲器259、控制器267、帧存储器261、解码单元260和输出接口267。该解码系统220的接收器缓冲器259可以基于来自源图片246的源图片而暂时存储压缩比特流、其包括所接收的视频压缩数据和帧分组。该解码系统220可以读取与接收数据中的视频分组关联的呈现时间戳信息和控制信息,并且输出可以应用于控制器220的帧数目信号263。该控制器267可以以预定间隔监控计数的帧数目。通过非限制性示例,控制器267可以在每次解码单元260完成解码操作时监控计数的帧数目。
在一些实施例中,当帧数目信号263指示接收器缓冲器259处于预定容量时,控制器267可以向解码单元260输出解码开始信号264。当帧数目信号263指示接收器缓冲器259小于预定容量时,该控制器267可以等待其中计数的帧数目变为等于预定量的情况的出现。该控制器267可以在出现这一情况时输出解码开始信号263。通过非限制性示例,该控制器267可以在帧数目信号263指示接收器缓冲器259处于预定容量时输出解码开始信号264。编码视频分组和视频压缩数据可以基于与编码视频分组关联的呈现时间戳按照单调顺序(即增加或减小)来进行解码。
响应于解码开始信号264,解码单元260可以对与来自接收器缓冲器259的视频分组关联的、与帧关联的总计一个图片的数据以及对与该图片关联的压缩视频数据进行解码。该解码单元260可以将解码视频信号269写入帧存储器261中。该帧存储器261可以具有第一区域和第二区域,该第一区域中可以写入解码视频信号,该第二区域中可以用于向输出接口267读出解码图片262。
在各种实施例中,编码系统202可以与前端处的转码器或编码装置合并或者与其关联,并且该解码系统220可以与下游设备、诸如移动设备、机顶盒或转码器合并或者与其关联。
源编码/解码
如以上所描述的,编码器202采用压缩算法来生成比AV信息102中的原始视频序列小的比特流和/或文件。这样的压缩通过减小原始序列中的空间冗余和时间冗余来变得可能。
现有技术的编码器202包括与在ITU的“视频编码专家组(VCEG)”与ISO的“运动图片专家组(MPEG)”之间开发的视频压缩标准H.264/MPEG-4 AVC(“高级视频编码”)、具体公开为“用于通用视听服务的高级视频编码”(2005年3月)的形式的兼容的那些编码器,其由此通过引用合并到本文中。
HEVC“高效视频编码”(有时称为H.265)被期望来代替H.264/MPEG-4 AVC。HEVC引入作为H.264/AVC中定义的编码实体的一般化的新的编码工具和实体,这在下面进一步描述。CS39543/CS39549/CS39892
图3是图示源编码器202的一个实施例的框图。该源编码器202接受AV信息102并且使用采样器302对AV信息102进行采样以产生连续的数字图像或图片的序列303,每个图像或图片具有多个像素。图片可以包括帧或字段,其中帧为在已知时间间隔期间捕获的完整的图像,而字段为构成部分图像的奇数编号或偶数编号的扫描线的集合。
采样器302产生未压缩的图片序列303。每个数字图片可以通过具有多个系数的一个或多个矩阵来表示,该系数代表关于一起包括图片的像素的信息。像素的值可以对应于亮度或其他信息。在其中若干分量与每个像素(例如红绿蓝分量或亮度色度分量)关联的情况下,这些分量中的每个分量可以单独处理。
图像可以分成“片”,其可以包括图片的部分或者可以包括整个图片。在H.264标准中,这些片被分成被称为宏块的编码实体(通常为16个像素x16个像素大小的块),并且每个宏块又可以分成不同大小的数据块102、例如4x4、4x8、8x4、8x8、8x16、16x8。HEVC将编码实体的概念扩展并且一般化为超过宏块的概念。
HEVC编码实体:CTU、CU、PU和TU
如同其他视频编码标准,HEVC是一种基于块的混合空间和时间预测编码方案。然而,HEVC引入H.264/AVC标准中没有包括的新的编码实体。这些编码实体包括(1)编码树块(CTU)、编码单元(CU)、预测单元(PU)和变换单元(TU),并且在下面进一步描述。
图4是描绘AV信息102的图片400、诸如图片序列303中的图片中的一个图片的图。图片400空间上被分成被称为编码树单元或CTU 402的非交叠方块。不像H.264和其中基本编码单元为16x16个像素的宏块的先前视频编码标准,CTU 402为HEVC的基本编码单元,并且可以与128x128个像素一样大。如图4所示,CTU 402通常按照与逐行扫描类似的顺序在图片400内被引用。
每个CTU 402又可以迭代地分成用下面进一步描述的“四叉树”分解所描述的较小的可变大小的编码单元。编码单元为在图像中形成的、相似的编码参数在比特流314中被向其应用和传输的区域。
图5是示出将CTU 402示例性划分成编码单元(CU)、诸如编码单元502A和502B(下文中备选地称为编码单元502)的图。单个CTU 402可以分成四个CU 502、诸如CU 502A,每个CU 502A为CTU 402的大小的四分之一。每个这样划分的CU 502A还可以进一步分成四个更小的CU 502B,每个CU 502B为初始CU 502A的大小的四分之一。
将CTU 402划分成CU 502A和更小的CU 502B用“四叉树”数据参数(例如标记或比特)来描述,该“四叉树”数据参数连同编码数据一起来编码到输出比特流314中作为被称为语句的开销。
图6是图示用于图5所示的CTU 402划分的代表性四叉树600和数据参数的表示的图。该四叉树600包括多个节点,该多个节点包括在一个层级处的第一节点602A和在较低层级处的第二节点602B(下文中四叉树节点可以备选地被称为“节点”602)。在四叉树的每个节点602处,如果节点602进一步被分割成子节点,则分配“分割标记”或比特“1”,否则分配比特“0”。
例如,图5所示的CTU 402划分可以用图6中呈现的四叉树600来表示,其包括与在顶部CU 502级别处的节点602A关联的分割标记“1”(指示在较低层级处有4个附加节点)。图示的四叉树600还包括与在中间CU 502级别处的节点602B关联的分割标记“1”,其用以指示该CU还被划分成在下一(底部)CU级别处的四个另外的CU 502。源编码器202可以限制最小和最大CU 502大小,从而改变CU 502分割的最大可能深度。
编码器202生成比特流314形式的编码AV信息106,其包括具有用于CU 502的编码数据的第一部分和包括被称为语法元素的开销的第二部分。编码数据包括与编码CU 502对应的数据(即如在下面进一步描述的编码残留连同其关联的运动矢量、预测或者相关残留)。第二部分包括可以代表不直接对应于块的编码数据的编码参数的语法元素。例如,该语法元素可以包括CU 502在图中的地址和识别、量化参数、所选择的间/内编码模式的指示、四叉树600或其他信息。
CU 502对应于基本编码元件并且包括两个相关子单元:预测单元(PU)和变换单元(TU),这二者具有等于对应CU 502的大小的最大大小。
图7是图示将CU 502划分成一个或多个PU 702的划分的图。PU 702对应于经划分的CU 502并且用于预测图片内或图片间类型的像素值。PU 702是用于运动估计的H.264/AVC的划分的扩展,并且被定义用于没有被进一步细分成其他CU(“分割标记”=0)的每个CU502。在四叉树600的每个叶子604处,2Nx2N的最终(底层)CU 502可以占有PU的四个可能的图案:2Nx2N(702A)、2NxN(702B)、Nx2N(702C)和NxN(702D)中的一个可能的图案,如图7所示。
CU 502可以在空间上或时间上被预测编码。如果CU 502以“内”模式来编码,则CU502的每个PU 702可以具有其自己的空间预测方向和图像信息,这在下面进一步描述。此外,在“内”模式下,CU 502的PU 702可以取决于另一CU 502,因为其可以使用空间邻居,该空间邻居在另一CU中。如果CU 502以“间”模式来编码,则CU 502的每个PU 702可以具有其自己的运动矢量和关联参考图片,这在下面进一步描述。
图8是示出被分成四个PU 702的CU 502和变换单元(TU)802的关联集合的图。TU802用于代表通过DCT(离散余弦变换)在空间上被变换的基本单元。CU 502内每个块变换TU802的大小和位置用在下面进一步描述的“残留”四叉树(RQT)来描述。
图9是示出用于图8的示例中的CU 502的TU 802的RQT 900的图。注意,RQT 900的第一节点902A处的“1”指示存在四个分支,相邻的较低层级处的第二节点902B处的“1”指示所指示的节点还具有四个分支。描述RQT 900的数据也被编码和传输作为比特流314中的开销。
视频序列的编码参数可以存储在被称为参数集合的专用NAL单元中。可以采用两种类型的参数集合NAL单元。第一参数集合类型被称为序列参数集合(SPS),并且包括包含在整个视频序列期间未改变的参数的NAL单元。通常,SPS处理编码简档、视频帧的大小和其他参数。第二类型的参数集合被称为图片参数集合(PPS),并且对可以从一个图像到另一图像改变的不同的值进行编码。
空间预测和时间预测
用于压缩比特流314的技术之一为在存储像素值之前并且取而代之,使用可以在解码器220处重复的过程来预测像素值并且存储或传输预测像素值与实际像素值之间的差异(被称为残留)。只要解码器220可以根据所提供的信息来计算相同的预测像素值,则可以通过向预测值添加残留来恢复实际图片值。相同的技术也可以用于压缩其他数据。
返回参考图3,向预测模块307提供正被处理的CU 502的每个PU 702。预测模块307基于相同帧中附近PU 702中的信息(由空间预测器324来执行的帧内预测)和时间上接近的帧中的PU 702的信息(由时间预测器330来执行的帧间预测)来预测PU 702的值。然而,时间预测并不总是基于配置的PU,因为配置的PU被定义为位于与当前PU 702具有相同的x坐标和y坐标的参考/非参考帧处。这些技术利用PU 702之间的空间和时间依赖。
编码单元因此可以分类成包括两种类型:(1)非时间预测单元和(2)时间预测单元。非时间预测单元使用当前帧来预测,包括帧内相邻或附近的PU 702(例如帧内预测),并且由空间预测器324来生成。时间预测单元根据一个时间图片(例如P帧)来预测,或者根据时间上在前和/或在后的至少两个参考图片(即B帧)来预测。
空间预测
图10是图示PU 702的空间预测的图。图片i可以包括PU 702和空间上接近的其他PU 1-4,包括附近的PU 702N。空间预测器324借助于“帧内”预测来预测当前块(例如图10的块C),该“帧内”预测使用当前图像的像素的已经编码的其他块的PU 702。
空间预测器324定位适合空间编码的附近的PU(例如图10的PU 1、2、3或4)并且确定该附近的PU的角度预测方向。在HEVC中,可以考虑35个方向,因此每个PU可以具有与其关联的35个方向中的一个方向,包括水平、竖直、45度对角线、135度对角线、DC等。PU的空间预测方向用语法指示。
返回参考图3的空间预测器324,其位于PU附近用于使用元件305来计算作为附近的PU 702N与当前PU 702的像素之差的残留PU704(e)。该结果为包括预测方向1002的预测内PU元件1006和预测内残留PU 1004。预测方向1002可以通过推断与空间接近的PU的方向和图片的空间依赖来编码,使得能够降低预测内方向模式的编码速率。
时间预测
图11是图示时间预测的图。时间预测考虑来自时间上相邻的图片或帧(诸如先前的图片、图片i-1)的信息。
通常,时间预测包括单预测(P类型)和多预测(B类型),单预测通过参考来自仅一个参考图片的一个参考区域来预测PU 702,多预测通过参考来自一个或多个参考图片的两个参考区域来预测PU。参考图像是视频序列中已经被编码并且然后(通过解码)被重构的图像。
时间预测器330在这些参考区域中的一个或若干参考区域(对于P类型为一个,或者对于B类型为若干个)中识别时间上的附近帧的像素区域,使得其可以用作这一当前PU702的预测。在其中使用若干区域预测器的情况下(B类型),可以对其进行合并以生成一个单预测。参考区域1102在参考帧中由运动矢量(MV)1104来识别,该运动矢量定义当前帧(图片i)中的当前PU 702与参考帧(图片i-1)中的参考区域1102之间的位移。B图片中的PU可以具有至多两个MV。MV和refIdx信息都被包括在HEVC比特流的语法中。
返回参考图3,可以通过用开关306选择的元件305来计算参考区域1102之间的像素值与当前PU 702的之间的差异。这一差异可以被称为间预测PU 1106的残留。在时间或帧间预测过程的最后,当前PU 1106由一个运动矢量MV 1104和残留1106组成。
然而,如以上所描述的,一种用于压缩数据的技术是使用解码器220可重复的手段来生成数据的预测值,以计算数据的预测值与实际值之间的差异(残留)并且传输该残留用于解码。只要解码器220可以再现预测值,则残留值可以被用于确定实际值。
这一技术可以通过以下操作而被应用于时间预测中所使用的MV 1104:生成MV1104的预测,计算实际MV 1104与预测MV 1104之间的差异(残留),以及在比特流314中传输该MV残留。只要解码器220可以再现预测MV 1104,则实际MV 1104可以根据残留来计算。HEVC使用附近的PU 702之间的运动的空间相关性来计算每个PU 702的预测MV。
图12是图示HEVC中的运动矢量预测(MVP)的使用的图。运动矢量预测符V1、V2和V3从位于待编码块(C)的附近或与待编码块(C)相邻的多个块1、2和3的MV 1104取得。在这些矢量是指相同时间帧内的空间上相邻的块的运动矢量并且可以用于预测待编码块的运动矢量时,这些矢量可以被称为空间运动预测。
图12还图示时间运动矢量预测符VT,该时间运动矢量预测符VT是(按照解码顺序)先前解码的图片的序列的共同定位的块C’(例如与被解码的块(图像i的块C)位于同一空间位置处的图片i-1的块的运动矢量。
空间运动矢量预测符V1、V2和V3以及时间运动矢量预测符VT的分量可以用于生成中间运动时间预测符VM。在HEVC中,根据预定的可用性规则,如图12所示采用三个空间运动矢量预测符,即来自位于待编码块的左边的块(V1)、位于上方的块(V3)和来自位于待编码块的相应角落处的块中的一个块(V2)。这一MV预测符选择技术被称为高级运动矢量预测(AMVP)。
因此获得具有空间预测符(例如V1、V2和V3)以及时间预测符VT的多个(通常为五个)MV预测符(MVP)候选。为了减少在比特流中对运动矢量预测符发信号的开销,可以通过排除重复运动矢量的数据(例如可以从候选中排除与其他MV具有相同值的MV)来减少运动矢量预测的集合。
编码器202可以从候选中选择“最佳”运动矢量预测符,并且计算运动矢量预测符残留作为所选运动矢量预测符与实际运动矢量之差,以及在比特流314中传输运动矢量预测符残留。为了执行这一操作,必须存储实际运动矢量用于稍后由解码器220来使用(虽然其没有在比特流314中被传输)。在比特流314中包括信令比特或标记以规定根据归一化的运动矢量预测符来计算哪个MV残留,并且稍后由解码器使用以恢复运动矢量。这些比特或标记在下面进一步描述。
返回参考图3,从空间(内)预测或时间(间)预测过程获得的内预测残留1004和间预测残留1106然后通过变换模块308被变换成以上所描述的变换单元(TU)802。该TU 802可以通过使用以上关于图9描述的RQT分解来进一步分割成更小的TU。在HEVC中,通常使用2或3级分解,并且认可的变换大小为32x32、16x16、8x8和4x4。如以上所描述的,变换根据离散余弦变换(DCT)或离散正弦变换(DST)来取得。
残留变换系数然后通过量化器310进行量化。量化在数据压缩中扮演着很重要的角色。在HEVC中,量化将高精度的变换系数转换成有限数目的可能的值。虽然量化允许大量压缩,然而量化是一种有损操作,并且由量化产生的损失不能恢复。
经量化的变换残留的系数然后借助于熵编码312进行编码,并且然后将其插入到压缩比特流310中作为对AV信息的图像进行编码的有用数据的部分。编码语法元素还可以使用语法元素之间的空间依赖来进行编码以增加编码效率。HEVC提供上下文自适应二进制算术编码(CABAC)。也可以使用其他形式或熵或算术编码。
为了计算以上使用的预测,编码器202使用“解码”环路315对已经编码的PU进行解码,该“解码”环路315包括元件316、318、320、322、328。这一解码环路315根据经量化的变换残留来重构PU和图像。
经量化的变换残留系数E还被提供至解量化器316,该解量化器316应用量化器310的操作的逆操作以产生残留PU(E’)708的经解量化的变换系数。经解量化后的数据708然后被提供至变换器318,该变换器318应用与由变换模块308应用的变换相反的变换以生成PU(e’)710的重构残留系数。
残留PU 710的重构系数然后被添加至由选择器306从预测内PU 1004和预测间PU1106选择的对应预测PU(x’)702’的对应系数。例如,如果重构残留来自空间预测器324的“内”编码过程,则向这一残留添加“内”预测符(x’)以便恢复与由变换所造成的损失而被修改的原始PU 702对应的重构PU(x”)712,例如在这种情况下为量化操作。如果残留710来自时间预测器330的“间”编码过程,则合并由当前运动矢量所指向的区域(这些区域属于当前图像索引所指代的参考缓冲器328中所存储的参考图像)并且然后被添加至这一解码残留。以这一方式,将原始PU 702通过由量化操作所造成的损失来修改。
为了扩展编码器202使用与以上描述的图像预测技术相似的运动矢量预测技术,可以使用运动矢量缓冲器329来存储运动矢量以用于在时间上的随后帧中使用。如下面进一步描述的,可以在语法中设置和传输标记以指示当前解码帧的运动矢量应当被至少用于随后编码的帧而非代替当前帧的具有MV的MV缓冲器329的内容。
可以向重构信号(x”)712应用环路滤波器322以便降低所获得的残留的重量化所产生的影响,并且改善信号质量。环路滤波器322可以包括例如解块滤波器和线性滤波器,该解块滤波器用于平滑PU之间的边界以在视觉上减弱编码过程所产生的高频率,该线性滤波器在图像的所有PU已经被解码之后应用以使与原始图像的平方差之和(SSD)最小化。线性滤波过程被逐帧执行并且使用待滤波的像素周围的若干像素,并且还使用帧的像素之间的空间依赖。线性滤波器系数可以被编码并且在比特流的一个头、通常在图片或片头中传输。
经滤波图像也被称为重构图像然后被存储为来自参考图像缓冲器328的参考图像,以便允许随后的“间”预测在当前视频序列的随后图像的压缩期间进行。
参考图像语法
如以上所描述的,为了减少误差和改善压缩,HEVC允许使用若干参考图像用于当前图像的估计和运动补偿。给定当前图片中的当前PU 702,用于具体片的并列的PU 1102驻留在关联的附近的参考/非参考图片中。例如,在图12中,用于图片(i)中的当前PU 702的并列的PU 1102驻留在关联的附近的参考图片(i-1)中。当前PU702的时间预测或最佳“间”在多个参考/非参考图像中的一些图像中选择,其可以基于按照显示顺序在时间上在当前图片之前或之后(分别为后向预测和前向预测)的图片。
对于HEVC,对参考图片的索引由在片语法中描述的参考图片列表来定义。前向预测由list_0(RefPicList0)来定义,而后向预测由list_1(RefPicList1)来定义,并且列表0和列表1二者可以包含按照显示顺序在当前图片之前和/或之后的多个参考图片。
图13图示参考图片列表的使用的示例。考虑图13所示的图片0、2、4、5、6、8和10,其中每个图片的编号表示显示顺序,并且当前图片为图片5。在这种情况下,具有上升参考图片索引并且以等于零的索引开始的list_0参考图片为4、2、0、6、8和10,具有上升参考图片索引并且以等于零的索引开始的list_1参考图片为6、8、10、4、2和0。运动补偿预测被限制为list_0预测的片被称为预测或P片。在HEVC中,并列的图片通过使用collocated_ref_idx索引来指示。运动补偿预测包括多于一个参考图片的片为bi预测或B片。对于B片,运动补偿预测可以包括来自list_0以及list_1预测的参考图片。
因此,并列的PU 1102被布置在list_0或list_1中所规定的参考图片中。标记(collocated_from_10_flag)被用于规定是否应当从用于具体片类型的list_0或list_1取得并列的划分。参考图片中的每个参考图片还与运动矢量关联。
新兴的HEVC标准的参考图片和相关运动矢量的存储和取回在Benjamin Bross、Woo-Jin Han、Jens-Rainer Ohm、Gary J.Sullivan、Thomas Wiegand在2011年7月14至22日在托里诺IT的第六次会议的ISO/IEC JTC1/SC29/WG11和ITU-T SG16WP3的联合协作视频编码组(JCT-VC)、JCTVC-F803_d5的“WD4:高效视频编码的工作草案4”的段落8.4.1.2.9中表述(其因此通过参考合并到本文中)。
根据标准,如果slice_type等于B并且collocated_from_10_flag为0,则collocated_ref_idx变量将参考图片规定为包含由RefPICList1规定的共同定位的划分的图片。否则(slice_type等于B并且collocated_from_10_flag等于1或者slice_type等于P),collocated_ref_idx变量将参考图片规定为包含由RefPICList0规定的并列的划分的图片。
图14是图示编码器202根据上述标准执行的过程的图。块1402确定当前图片是否为另一图片的参考图片。如果不是,则不需要存储参考图片或者运动矢量信息。如果当前图片为另一图片的参考图片,则块1504确定“另一”图片是P类型还是B类型图片。如果图片为P类型图片,则处理继续进行至块1410,其将collocated_from_10_flag设置为1并且将参考图片和运动矢量存储在列表0中。如果“另一图片”为B类型图片,则块1406在期望参考图片要被存储在列表0中的情况下将处理指向块1408和1410,而在期望参考图片和运动矢量要被存储在列表1中的情况下将处理指向块1412和1414。这一判定可以基于是否期望从在时间上在前或在后的图片中选择参考图片。在多个可能的参考图片中选择哪些图片根据collocated_ref_idx索引来确定。
图15描绘由解码器220根据先前HEVC标准在解码时的collocated_from_10_flag的使用。块1502确定正被计算的当前片类型是内还是I类型。这样的片在编码/解码过程中不使用在时间上在附近的片,并且因此不需要寻找在时间上在附近的参考图片。如果片类型不是I类型,则块1504确定片是否为B片。如果片不是B类型,则其为P类型片,并且根据collocated_ref_idx的值,包含并列的划分的参考图片在列表0中被找到。如果片为B类型,则collocated_from_10_flag确定参考图片是否在列表0或列表1中被找到。如索引所指示的,并列的图片因此在列表0或列表1中被定义为具有所指示的collocated_ref_idx的参考图片,这取决于片类型(B类型还是P类型)和collocated_from_10_flag的值。在HEVC的一个实施例中,第一参考图片(如图13中所示的具有索引[0]的参考图片)被选择作为并列的图片。
基线片头语法
图16A-16C是呈现基线片头逻辑和语法的图。在这些图中,文本的首行缩进指示语法的逻辑结构,其中分隔符“||”表示逻辑“或”,“&&”表示逻辑“与”,“!”表示逻辑逆或补。另外,如果逻辑条件语句(例如“if”语句)为真,则执行逻辑从逻辑if语句首行缩进(并且被包括在括号“{}”中)的操作,否则处理继续进行至下一逻辑语句。
首先转向图16A,片处理语法取决于片是否为图片中的多个片中的第一片或者其是否不是图片中的第一片而不同。因此,片头包括被读取的图片标记中的第一片(first_slice_in_pic_flag)。这在语法1602中图示。
如早先所描述的,HEVC标准包括多个NAL单元类型,该NAL单元类型包括视频参数集合(VPS)、呈现图片序列的参数的序列参数集合(SPS)、以及描述具体图片的参数的图片参数集合(PPS)。图片参数集合的标识符(pic_parameter_set_id)也被读取。如果片不是图片中的第一片,则读取片地址。这在语法1606中图示。
如以上所描述的,片可以包括独立片或者依赖片,并且片头语法允许全部停用或启用依赖片的使用。下一逻辑使用通知依赖片被启用的先前读取的标记(dependent_slice_enabled_flag)和first_slice_in_pic_flag来确定是否读取dependent_slice_flag。注意,如果片为图片中的第一片,则不读取该片的依赖片标记,因为片在这种情况下不可能是依赖片。如果片不是依赖片,则随后的逻辑读取片类型以及在稍后用于所有片类型(I、P和B)的处理中使用的其他参数。还执行在语法1612中示出的另外的处理。
现在转向图16B,如果在序列参数集合(SPS)中读取的adaptive_loop_filter_enabled_flag被启用,则语法1614读取变量aps_id。
语法1615包括条件语句,该条件语句测试早先在片头中读取的slice_type数据是否指示片类型为P还是B。如果片类型不为P或B,则处理被路由至确定是否读取参数图片列表(ref_pic_list_modification),如下面参考语法1619进一步讨论的。如果片类型为P或B,则逻辑使用被读取作为SPS头语法的部分的sps_temporal_mvp_enable_flag来确定是否可以使用时间运动矢量预测符来对片进行解码。如果标记被设定,这指示时间运动矢量预测可以被启用,则读取描述是否允许将时间运动矢量预测符用于包含片的图片的标记(pic_temporal_mvp_enable_flag)。
不管sps_temporal_mvp_enable_flag的状态,如语法1617所示读取另一标记(num_ref_idx_active_override_flag)。这一标记指示片头中是否存在描述list_0(P类型)的最大参考图片列表索引的参数(num_ref_inx_10_active_minus1)或者描述list_1(B类型)的最大参考图片列表索引的另一参数(num_ref_idx_11_active_minus1)。如果(num_ref_idx_active_override_flag)测试为肯定,则读取num_ref_inx_10_active_minus1参数,而如果片为B类型片,则也读取num_ref_idx_11_active_minus1参数,如语法1618中所示。
HEVC允许在编码过程中修改参考图片的基线。不考虑片类型(因为在测试片是P类型还是B类型的语法1615的情况下,随后的操作不在条件的范围内),在一个实施例中,从PPS读取先前读取的标记(lists_modification_present_flag)。如果lists_modification_present_flag测试为逻辑1,则执行参考列表修改(ref_pic_list_modification())语法。
这一信息由ref_pic_list_modification语法用来基于片类型来读取标记(reference_pic_list_modification_flag_10),该标记识别片是否根据隐含的参考图片列表来编码(该标记为逻辑0或者未提供)或者是否需要清楚地定义与片关联的参考图片列表的参考图片列表(该标记为逻辑1),在这种情况下,读取参考图片列表的实体。如下面进一步描述的,基线ref_pic_list_modification()语法包括基于片类型的逻辑条件语句,这些语句在下面描述的解决方案中被简化。
接着,片头逻辑再次确定所考虑的片是否为B类型片,并且如果是,则读取mvd_11_zero_flag。该mvd_11_zero_flag不适用于P类型片,并且指示是否解析与B类型片一起使用的运动矢量差异编码语法结构。这用语法1620示出。
如以上参考图3所示的编码器312所描述的,HEVC实施上下文自适应编码、诸如上下文自适应二进制算术编码或者CABAC,CABAC是使用概率模型来对二进制符号进行编码的一种形式的熵编码。非二进制值符号(诸如变换单元系数或运动矢量)在算术编码之前被二进制化或转换成二进制代码。对于二进制化符号的每个比特(或“二进数”)重复这些阶段。
情境模型是一种用于二进制化的符号的一个或多个二进数的概率模型。这一模型可以选自取决于对最近编码的数据符号的统计的多个可用模型。该情境模型存储每个二进数为“1”或“0”的概率。算术编码器然后根据所选择的概率模型对每个二进数进行编码。
情境变量为被规定用于通过包含最近解码的二进数的等式来对二进数进行的自适应二进制算术解码处理的变量。cabac_init_flag规定用于确定在情境变量的初始化过程中使用的初始化表格的方法。cabac_init_flag的值为0或1,这是包括性的。当不存在cabac_init_flag时,推断其为0。
返回图16B,不考虑如以上用语法1615描述的确定片是否为间预测(P或B类型)片的逻辑的结果,片头逻辑检查片类型是否不是I类型以及是否应当读取指示片头中是否存在情境变量初始化标记(cabac_init_flag)的信令标记(cabac_init_present_flag)。如果片类型不是I类型并且信令标记指示在片头中存在情境变量初始化标记,则读取情境变量初始化标记。情境变量初始化变量标记规定用于确定在情境变量初始化过程中使用的初始化表格的方法。这用语法1622示出。
不考虑确定片是否为间预测(P或B类型)片的语法1615的结果,片头逻辑读取描述对数据块进行编码时要使用的量化参数的初始值的变量(slice_qp_delta)。这一初始值被使用直到在编码单元中被修改。这用语法1624图示。
如以上所描述的,编码器/解码器的环路滤波器322可以包括例如解块滤波器和线性滤波器,该解块滤波器用于平滑PU之间的边界以在视觉上减弱由编码过程而产生的高频率,该线性滤波器在图像的所有PU被解码之后来应用以使与原始图像的方差之和(SSD)最小化。逐帧对帧执行线性滤波过程,并且该线性滤波过程使用待滤波的像素周围的若干像素,并且还使用帧的像素之间的空间依赖。线性滤波器系数可以在比特流的一个头、通常为图片或片头中被编码和传输。
返回图16B,片逻辑头执行解块滤波逻辑,如关于语法1626所图示的。如以上用语法1615所描述的,这一步骤被执行而不考虑确定片是否为间预测(P或B类型)片的逻辑的结果。首先,片头逻辑确定是否通过检查图片参数集合(PPS)中的控制标记(deblocking_filter_control_present_flag)的状态来启用解块滤波器控制。如果标记测试为真,则逻辑检查以通过检查另一标记(deblocking_filter_override_enabled_flag)来确定解块滤波器是否被超负荷,该另一标记(deblocking_filter_override_enabled_flag)指示涉及PPS的图片的片头具有deblocking_filter_override_flag。如果这一滤波器被启用,则读取指示解块滤波器要被超负荷的标记(deblocking_filter_override_flag)。逻辑然后确定是否设定解块超负荷滤波器,并且如果是,则读取片头级别标记(slice_header_disable_deblocking_filter_flag)(其指示是否应当停用解块滤波器)。如果未设定slice_header_disable_deblocking_filter_flag,则片头逻辑读取beta_offset_div2和tc_offset_div2数据,其规定默认解块参数偏移。
接着,片头逻辑执行与确定用于时间运动矢量预测符的并列的图片的位置有关的操作。片头首先通过检查pic_temporal_mvp_enable_flag来检查时间运动矢量预测是否在片/图片级别被启用,如语法1628所示。如果未设定标记,则处理指向下面进一步讨论的加权预测。如果设定标记,则片头逻辑确定片类型是否为B,如语法1630所示。如果片类型为B,则片头逻辑读取collocated_from_10_flag,如语法1632所示。接着,该逻辑确定片类型是否为I类型以及(1)collocated_from_10_flag与num_ref_idx_10_active_minus1的逻辑组合大于零或者(2)num_ref_idx_active_minus1与collocated_from_10_flag的逆的逻辑组合大于零。如果这些概率测试中的任一个为逻辑1(或真),则读取并列的参考索引(collocated_ref_idx),如语法1634所示。
HEVC和先前的编码标准允许以被称为加权预测的方式应用于预测信号的缩放和偏移操作。H.264/MPEG-4支持时间隐含的加权预测和时间明确的加权预测二者,而在HEVC中,通过使用编码器明确地发送的值来缩放和偏移预测,仅应用明确的加权预测。然后将预测的比特深度调节为参考采样的原始比特深度。在单预测的情况下,对插值(和可能的加权)预测值进行四舍五入、右移并且截断以具有原始比特深度。在双预测的情况下,来自两个PB的插值(和可能的加权)预测值首先被相加,并且然后被四舍五入、右移并且截断。
在先前的编码标准中,需要总计高达3个阶段的四舍五入操作以获得每个预测采样(例如位于四分之一采样位置处的采样)。因此,如果使用双预测,则四舍五入操作的总数在最差情况下为7。在HEVC中,最多需要两个四舍五入操作以获得在四分之一采样位置处的每个采样,因此在使用双预测时在最差情况下五个四舍五入操作就足够。此外,在其中比特深度B为8比特的多数常见情况下,最差情况下的四舍五入操作的总数进一步被减少至三个。由于较少数量的四舍五入操作,减少了累积的四舍五入误差并且在解码器中执行必须操作的方式方面实现了更大的灵活性。
返回图16B,片头逻辑使用片类型和指示是否启用加权预测或双预测的标记。weighted_pred_flag被设置为等于逻辑0以指示未向P片应用加权预测,或者被设置为逻辑1以指示向P片应用加权预测。该weighted_bipred_flag被设置为逻辑0以规定向B片应用默认加权预测,或者被设置为逻辑1以规定向B片应用加权预测。片头逻辑因此包括在weighted_pred_flag被设置为逻辑1并且片类型为P或者weighted_bipred_flag被设置为逻辑1并且片类型为B的情况下用以读取预测加权表格(pred_weight_table())的逻辑,如语法1636所示。
可以规定在片中被支持的运动矢量预测候选的最大数目。在片头逻辑中,这被规定为诸如数目“5”与最大数目之差,并且被称为five_minus_max_num_merge_cand。在下一片头逻辑中,如果片类型为P类型或B类型,则读取five_minus_max_num_merge_cand,如语法1638所示。因为候选的最大数目通常为5,所以所读取的数目通常为0。
片级别的自适应环路滤波已经被包括在HEVC标准的一些版本中。在这样的版本中,片头逻辑通过检查adaptive_loop_filter_enabled_flag而检测自适应环路滤波是否被启用。如果adaptive_loop_filter_enabled_flag被设置为逻辑1,则读取slice_adaptive_loop_filter_flag,其指示要在片级别上执行自适应环路滤波。这用语法1640示出。
slice_adaptive_loop_filter_flag然后被用于确定在片中存在自适应环路滤波系数(用alf_coef_in_slice_flag指示)时读取自适应环路滤波参数(alf_param()),或者确定在片中不存在自适应环路滤波系数时读取不同的参数(alf_cu_control_param()),如语法1640所示。
最后,HEVC允许在当前片的左边界和上边界上执行环路内滤波。HEVC片头的先前版本包括slice_loop_filter_across_slices_enabled_flag,该slice_loop_filter_across_slices_enabled_flag在被设置为等于1时规定在当前片的左边界和上边界上执行这些环路内滤波操作(包括解块滤波和采样自适应偏移滤波);否则,不在当前片的左边界和上边界上应用环路内操作。如果特征在序列级别被启用(例如seq_loop_filter_across_slices_enabled_flag被设定并且slice_adaptive_loop_filter_enabled_flag或者slice_sample_adaptive_offset_flag被设定,或者disable_deblocking_filter_flag未被设定,如语法1642所示),则语法1642的逻辑读取slice_loop_filter_across_slices_enabled_flag。其余片头语法逻辑1644涉及图块或片头扩展的使用。
修改后的片头语法
基线片头设计包括语法和函数调用,甚至在相同的逻辑条件下(例如在相同的片类型下),在片头中的不同位置扩展。虽然这样的设计在所涉及的功能包括必须被维持的依赖或者因果关系时是必须的,然而它们可能导致不必要的逻辑条件检查。这在片头级别使用时尤其有害,因为通常的媒体节目包括大量片,并且因此包括大量片头。修改后的片头语法在下面呈现,其在不必要时降低或消除了过多的比特和逻辑测试。
第一解决方案:在分组P和B类型逻辑条件之后附加片量化参数初始值和解块参数
图17A和17B呈现图示改进的片头语法的一个实施例的语法图。在这一实施例中,对于P和B类型片执行的所有相关函数调用被分组在一起,并且slice_qp_delta和解块相关的语法被布置在这样的函数调用之后。
更具体地,如果片类型被测试为P类型或B类型,则基线片头、语法1616-1618被执行,否则逻辑跳转至语法1619和随后的语句。在第一解决方案中,附加逻辑被带入条件语句中并且被简化以消除不必要的函数调用。具体地,在第一解决方案中,语法1616的时间运动矢量预测逻辑和语法1617-1618的参考索引超负荷逻辑保持不变。然而,如果语法1615的条件语句测试为真,则还执行其他逻辑。这包括ref_pic_list_modification()相关的语法1619、mvd_11_zero_flag相关的语法1620、CABAC初始化标记相关的语法1622、用于读取并列的参考索引的时间运动矢量预测语法1628-1634、以及加强预测表格语法1636。
此外,消除了不必要的函数调用。例如,在基线片头结构中,reference_pic_list_modification()语法本身包括用以确定片是P片还是B片的条件测试。在条件测试1615下移动语法1619使得能够消除reference_pic_list_modification()中的测试。另外,片头的基线CABAC相关的语法1622包括用以确定片是否为I类型片的条件测试。该条件测试通过将CABAC相关的语法1622放置在语法1615的逻辑内来被消除。另外,用于读取five_minius_max_num_merge_cand参数的语法1638不再需要其自己的先前逻辑来确保其仅在片类型为P或B的情况(如图16B所示的基线语法的情况)下被读取,因为这一读取操作现在在语法1615中的逻辑条件下被执行。
图17A和17B是示例性的改进的片头语法的图。图17A和17B将参考图18A和18B来讨论,该图18A和18B呈现图17A和17B中所呈现的逻辑的流程图。
首先转向图18A,在块1802中进行关于片是否为间预测片的确定。这例如用语法1701示出,语法1701测试片类型是P类型还是B类型。在另一实施例中,这可以通过测试片类型是否为I类型的逻辑来实现。
如果片不是间预测片,则逻辑被传递至图17B的slice_qp_delta处理语法1716。如果片是间预测片(即P类型片或B类型片,但是不是I类型片),则逻辑继续进行至块1804,其测试sps_temporal_mvp_enable_flag是否指示可以使用时间运动矢量预测符来对图片被布置在其中的序列进行编码,并且如果是,则在块1806中读取pic_temporal_mvp_enable_flag。这还用语法1702图示。处理被传递至块1808,其读取参考图片超负荷标记(num_ref_idx_active_override_flag),也用语法1703图示。块1810测试片头是否包括描述最大参考索引的数据,并且如果是,则读取描述这一最大索引的数据,如块1812所示。如语法1704进一步所示,如果片为P片,则读取num_ref_idx_10_active_minus1参数,并且如果片为B片,则读取num_ref_idx_10_active_minus1参数和num_ref_idx_11_active_minus1参数二者。
块1814确定参考图片是否被隐含地定义。如果参考图片未被隐含地定义,而是从列表获得,则处理被传递至块1816,其中读取参考图片列表修改数据,并且处理被传递至块1818。否则,处理被传递至块1818而不读取参考图片列表修改数据。这也用如图17A所示的语法1705图示。注意,语法1705中所示的处理也可以在没有参考片类型的情况下(例如使用片类型的条件逻辑的情况下)进行,因为这一操作与所有P类型片和B类型片有关,并且这一条件用语法1701来确定。
如果片为B片,则读取指示运动补偿预测中所使用的L1列表的运动矢量差异的结构的信息。这在图18A的块1818和1810中并且用图17A的语法1706图示,其在片为B片的情况下读取mvd_11_zero_flag。
然后根据标记读取与熵编码中所使用的情境变量的初始化关联的信息,如图18A的块1822所示。用于执行这一操作的示意性语法在图17A中被示出为语法1708。再次注意,语法1708所示的处理可以在没有参考片类型的情况下(例如使用片类型的条件逻辑的情况下)进行,因为这一操作与所有P类型片和B类型片有关,并且这一条件用语法1702来确定并且不需要被重新评估。
如果片用至少一个时间运动矢量预测符来编码,并且片为B类型,则读取控制索引(collocated_ref_idx)的读取的标记(collocated_from_10_flag),该索引(collocated_ref_idx)指示哪个参考图片被用作10或11处的并列的图片。这在图18A的块1824-1826中图示并且用图17A中说明的语法1710图示。
加权预测取决于片是B类型片还是P类型片来应用,如块1828-1830中所示。在图示的示例中,如果片为P类型片,则读取预测加权表格,或者如果片为B类型片,则设定加权预测标记,以及设定加权双预测标记。这用语法1712图示。
根据头确定片的合并的时间运动矢量预测符候选的最大数目,如块1834中和图17A的片头语法1714所示。再次注意,语法1714所示的处理可以在没有参考片类型的情况下(例如使用片类型的条件逻辑的情况下)进行,因为这一操作与所有P类型片和B类型片有关,并且这一条件用语法1701来确定。
然后根据片头读取用于计算片的量化因子的初始值(slice_qp_delta)。这在图18B的块1836中图示并且用图17A的语法1716图示。
读取解块滤波器参数,如图18B的块1838中所示并且用图17A的语法1718所示。解块语法1718与图18B所示的基线解块滤波器控制语法相同。同样,语法1720和1722所示的自适应环路滤波处理与图16C的语法1640-1642所示的自适应环路滤波处理保持相同。最后,处理语法1724与图16C的处理语法1644相同。
第二解决方案:在分组P和B类型逻辑条件之后附加片量化参数初始值和解块参数
这一解决方案与第一解决方案类似,在于在片类型为P或B的条件下执行的相关语法和函数调用被分组在一起并且被放置在slice_qp_delta和解块相关语法之后。
图19A和19B是图示第二解决方案的修改后的片头语法的图。首先参考图19A,在测试片是否为间预测片的条件语句语法之前执行slice_qp_data语法1716和解块相关语法1718。在语法1701中,这通过确定片是P类型还是B类型(P||B)来执行,但是这还可以通过确定片是否不是I类型来实施。如果片为P类型片或B类型片(但是并不以由语法1701执行的文本为条件来确定片是P片还是B片),则执行(以上所描述的)语法1702-1712、以及语法1720-1724。
第三解决方案:将P和B类型逻辑条件分组成两个组
这一解决方案也与第一和第二解决方案类似,其中在片类型为P或B的条件下执行的相关语法和函数调用被分组在一起。在这一解决方案中,slice_qp_delta和解块相关语法在当前CD中的位置保持不变,但是在slice_qp_delta和解块相关语法之前和之后的在片类型等于P/B的条件下的相关语法和函数调用在单独的条件语句下被单独地分组在一起。
图20A和20B是图示第三解决方案的修改后的片头语法的图。首先参考图19A,条件语句1701测试片是否为间预测片。此外,这可以通过单个条件逻辑语句if(slice_type==P||slice_type==B)或者if(slice_type!I)来执行。如果片为间预测片,则执行语法元素1702-1708,包括与启用时间运动矢量预测符有关的语法1702、与参考图片超负荷逻辑有关的语法1704、与参考图片列表修改有关的语法1705、与运动矢量差异编码语法结构(mvd_11_zero_flag)有关的语法1706以及与cabac逻辑有关的语法1708。
对于所有片类型(包括I类型),片头然后读取slice_qp_delta参数并且执行语法1716和1718中所示的解块操作。
返回图20B,另一条件语句为确定片类型是否为间预测片。此外,这可以用语法2002所示的对P||B进行测试的单个条件语句或者对!I(非I)进行测试的单个条件语句来实现。如果条件语句2002测试为肯定,则执行时间运动矢量预测逻辑语法和加权预测表格相关的语法1712,并且读取合并候选的最大数目,分别如语法1710、1712和1714所示。其语法头逻辑1720-1724如之前那样被执行。
硬件环境
图20图示可以用于实施本发明的实施例的示例性处理系统2000。计算机2002包括处理器2004和存储器、诸如随机存取存储器(RAM)2006。计算机2002在操作上耦合至显示器2022,该显示器2022在图形用户界面2018B上向用户呈现图像、诸如窗口。该计算机2002可以耦合至其他设备,诸如键盘2014、鼠标设备2016、打印机等。当然,本领域技术人员将认识到,可以与计算机2002一起使用以上部件的任何组合、或者任何数目的不同部件、外围设备和其他设备。
通常,计算机2002在存储器2006中所存储的操作系统2008的控制下操作,并且与用户对接以接受输入和命令以及通过图形用户界面(GUI)模块2018A呈现结果。虽然GUI模块2018A被描绘为单独的模块,然而执行GUI功能的指令可以驻留或分布在操作系统2008中、计算机程序2010中,或者可以用专用存储器和处理器来实施。该计算机2002还实施编译器2012,该编译器2012使得能够用编程语言、诸如COBOL、C++、FORTRAN或待被翻译成处理器2004可读代码的其他语言来编写应用程序2010。在完成之后,应用2010使用通过使用编译器2012生成的关系和逻辑来访问和操纵在计算机2002的存储器2006中所存储的数据。该计算机2002还可选地包括外部通信设备,诸如调制解调器、卫星链路、以太网卡或者用于与其他计算机通信的其他设备。
在一个实施例中,实施操作系统2008的指令、计算机程序2010和编译器2012可以用计算机可读介质、例如数据存储设备2020来有形地实现,该数据存储设备2020可以包括一个或多个固定或可移除数据存储设备,诸如压缩驱动器、软盘驱动器2024、硬盘驱动器、CD-ROM驱动器、磁带驱动器等。此外,操作系统2008和计算机程序2010由当由计算机2002读取和执行时使得计算机2002执行实施和/或使用本发明所需的步骤的指令而组成。计算机程序2010和/或操作指令还可以用存储器2006和/或数据通信设备2030来有形地实现,从而制造计算机程序产品或制品。这样,如本文中所使用的术语“制品”、“计算机存储设备”和“计算机程序产品”意在涵盖从任何计算机可读设备或介质可访问的计算机程序。
处理系统2000还可以用桌上型、膝上型、平板式、笔记本式计算机、个人数字助理(PDA)、手机、智能电话或者具有适当的处理和存储能力的任何设备来实现。另外,处理系统2000可以利用专用硬件来执行上述功能中的一些或全部功能。例如,以上描述的编码和解码过程可以由专用处理器和关联存储器来执行。
本领域技术人员将认识到,可以在不偏离本公开内容的范围的情况下对这一配置进行很多修改。例如,本领域技术人员将认识到,可以使用以上部件的任何组合或者任何数目的不同部件、外围设备和其他设备。例如,本文中所描述的具体功能可以由硬件模块、或者执行以软件或固件形式所存储的指令的处理器来执行。另外,本文中所描述的功能可以在单个模块被组合或者被扩展至在多个模块中执行。
结论
以上对优选实施例的描述已经出于说明和描述的目的而呈现。其并非意在排除或将本公开内容限制为所公开的具体形式。很多修改和变化鉴于以上教导都是可能的。其意图在于,权利的范围不受详细描述的限制,而受所附权利要求的限制。

Claims (6)

1.一种在用于对包括多个图片的序列进行解码的处理设备(2100)中处理描述片参数的片头的方法,所述多个图片中的每个图片可分割成一个或多个片,所述一个或多个片中的每个片至少部分根据所述片头来处理,所述方法包括:
通过在一个条件运算中根据从所述片头读取的片类型数据来测试所述片是否为I类型片而根据片类型数据确定所述一个或多个片中的片是否为间预测片,其中:
如果所述片的至少一个编码单元根据与至少一个参考图片关联的至多两个运动矢量而使用运动补偿来编码,则所述片为B类型片(1504);
如果所述片的至少一个编码单元根据与所述至少一个参考图片关联的不多于一个运动矢量而使用运动补偿来编码,则所述片为P类型片(1504);
如果所述片没有编码单元使用运动补偿来编码,则所述片为I类型片(1502);以及
只有当所述片为P类型片或者B类型片时,所述片才为间预测片;
如果所述片被确定为图片间预测片(1802),则伴随着仅用以将所述间预测片识别为P类型片或者B类型片的进一步的片类型测试被执行而执行:
(a)确定(1804)序列时间运动矢量预测符标记是否指示所述图片被布置在其中的所述序列能够使用至少一个时间运动矢量预测符来编码;
(b)如果所述序列时间运动矢量预测符标记指示所述图片被布置在其中的所述序列能够使用所述至少一个时间运动矢量预测符来编码,则读取(1860)片/图片时间运动矢量预测符启用标记,所述片/图片时间运动矢量预测符启用标记指示所述片被布置在其中的所述图片使用至少一个时间运动矢量预测符来编码;
(c)读取(1808)参考图片超负荷标记,所述参考图片超负荷标记指示所述片头中是否包括描述具有所述至少一个参考图片的至少一个参考图片列表的最大索引的数据;
(d)如果所读取的参考图片超负荷标记指示存在(1810)描述具有所述至少一个参考图片的所述至少一个参考图片列表的所述最大索引的所述数据,则读取(1812)所述数据;
(e)只有当所述至少一个参考图片未被隐含地定义(1814)时,才读取(1816)参考图片列表修改信息;
(f)如果所述片为B类型片(1818),则读取(1820)指示所述运动矢量补偿预测中所使用的运动矢量差异的结构的信息;
(g)只有当所述片头中存在定义用于所述片的熵编码的情境变量的初始化的信息时,才读取(1822)定义所述情境变量的初始化的所述信息;
(h)根据所读取的片/图片时间运动矢量预测符启用标记来确定(1824)所述片是否使用至少一个时间运动矢量预测符来编码;
(i)只有当所述片使用至少一个时间运动矢量预测符来编码时,才至少部分根据所述片为P类型片还是B类型片来读取(1826)描述与所述至少一个时间运动矢量预测关联的片的至少一个参考图片的信息;
(j)根据所述片为B类型片还是P类型片来应用(1832)加权预测;以及
(k)根据所述片头来确定(1834)用于所述片的合并时间运动矢量预测符候选的最大数目。
2.根据权利要求1所述的方法,其中根据片类型数据确定所述一个或多个片中的片是否为间预测片包括:
在一个条件语句中根据从所述片头读取的所述片类型数据来测试所述片是P类型片还是B类型片。
3.一种在用于对包括多个图片的序列进行解码的处理设备(2100)中生成描述片参数的片头的方法,所述多个图片中的每个图片可分割成一个或多个片,所述一个或多个片中的每个片至少部分根据所述片头来处理,所述方法包括:
对所述头中的所述一个或多个片中的片的片类型数据进行编码,所述片类型数据指示片类型,其中:
如果所述片的至少一个编码单元根据与至少一个参考图片关联的至多两个运动矢量而使用运动补偿来编码,则所述片为B类型片(1504);
如果所述片的至少一个编码单元根据不多于一个运动矢量而使用运动补偿来编码,则所述片为P类型片(1504);以及
如果所述片没有编码单元使用运动补偿来编码,则所述片为I类型片(1502);
如果所述片为P类型片或者B类型片,则所述片为间预测片;
生成如下片头逻辑,即用于通过在一个条件运算中根据从所述片头读取的所述片类型数据来测试所述片是否为I类型片而根据从所述片头读取的片类型数据来确定所述一个或多个片中的片是否为间预测片;
生成如下片头逻辑,即用于如果所述片被确定为图片间预测片(1802),则伴随着仅用以将所述间预测片识别为P类型片或者B类型片的进一步的片类型测试被执行而按照任何顺序执行包括操作(a)-(k)的操作:
(a)确定(1804)序列时间运动矢量预测符标记是否指示所述图片被布置在其中的所述序列能够使用至少一个时间运动矢量预测符来编码;
(b)如果所述序列时间运动矢量预测符标记指示所述图片被布置在其中的所述序列能够使用所述至少一个时间运动矢量预测符来编码,则读取(1860)片/图片时间运动矢量预测符启用标记,所述片/图片时间运动矢量预测符启用标记指示所述片被布置在其中的所述图片使用至少一个时间运动矢量预测符来编码;
(c)读取(1808)参考图片超负荷标记,所述参考图片超负荷标记指示所述片头中是否包括描述具有所述至少一个参考图片的至少一个参考图片列表的最大索引的数据;
(d)如果所读取的参考图片超负荷标记指示存在(1810)描述具有所述至少一个参考图片的所述至少一个参考图片列表的所述最大索引的所述数据,则读取(1812)所述数据;
(e)只有当所述至少一个参考图片未被隐含地定义(1814)时,才读取(1816)参考图片列表修改信息;
(f)如果所述片为B类型片(1818),则读取(1820)指示所述运动矢量补偿预测中所使用的运动矢量差异的结构的信息;
(g)只有当所述片头中存在定义用于所述片的熵编码的情境变量的初始化的信息时,才读取(1822)定义所述情境变量的初始化的所述信息;
(h)根据所读取的片/图片时间运动矢量预测符启用标记来确定(1824)所述片是否使用至少一个时间运动矢量预测符来编码;
(i)只有当所述片使用至少一个时间运动矢量预测符来编码时,才至少部分根据所述片是P类型片还是B类型片来读取(1826)描述与所述至少一个时间运动矢量预测关联的片的至少一个参考图片的信息;
(j)根据所述片是B类型片还是P类型片来应用(1832)加权预测;以及
(k)根据所述片头来确定(1834)用于所述片的合并时间运动矢量预测符候选的最大数目。
4.根据权利要求3所述的方法,其中根据片类型数据确定所述一个或多个片中的片是否为间预测片包括:
在一个条件语句下根据从所述片头读取的所述片类型数据来测试所述片是P类型片还是B类型片。
5.一种用于对包括多个图片的序列进行解码的处理设备(2100),所述多个图片中的每个图片可分割成一个或多个片,所述一个或多个片中的每个片至少部分根据片头来处理,所述处理设备(2100)具有处理器(2104A,2104B),所述处理器(2104A,2104B)用于执行通信耦合的存储器(2106)中所存储的指令,所述指令用于生成描述片参数的所述片头,所述指令包括用于执行以下操作的指令:
用于通过在一个条件运算中根据从所述片头读取的片类型数据来测试所述片是否为I类型片的指令而根据片类型数据确定所述一个或多个片中的片是否为间预测片,其中:
如果所述片的至少一个编码单元根据与至少一个参考图片关联的至多两个运动矢量而使用运动矢量补偿来编码,则所述片为B类型片(1504);
如果所述片的至少一个编码单元根据与所述至少一个参考图片关联的不多于一个运动矢量而使用运动矢量补偿来编码,则所述片为P类型片(1504);
如果所述片没有编码单元使用运动矢量补偿来编码,则所述片为I类型片(1502);以及
只有当所述片为P类型片或者B类型片时,所述片才为间预测片;
如果所述片被确定为图片间预测片(1802),则伴随着仅用以将所述间预测片识别为P类型片或者B类型片的进一步的片类型测试被执行而执行:
(a)确定(1804)序列时间运动矢量预测符标记是否指示所述图片被布置在其中的所述序列能够使用至少一个时间运动矢量预测符来编码;
(b)如果所述序列时间运动矢量预测符标记指示所述图片被布置在其中的所述序列能够使用所述至少一个时间运动矢量预测符来编码,则读取(1860)片/图片时间运动矢量预测符启用标记,所述片/图片时间运动矢量预测符启用标记指示所述片被布置在其中的所述图片使用至少一个时间运动矢量预测符来编码;
(c)读取(1808)参考图片超负荷标记,所述参考图片超负荷标记指示所述片头中是否包括描述具有所述至少一个参考图片的至少一个参考图片列表的最大索引的数据;
(d)如果所读取的参考图片超负荷标记指示存在(1810)描述具有所述至少一个参考图片的所述至少一个参考图片列表的所述最大索引的所述数据,则读取(1812)所述数据;
(e)只有当所述至少一个参考图片未被隐含地定义(1814)时,才读取(1816)参考图片列表修改信息;
(f)如果所述片为B类型片(1818),则读取(1820)指示所述运动矢量补偿预测中所使用的运动矢量差异的结构的信息;
(g)只有当所述片头中存在定义用于所述片的熵编码的情境变量的初始化的信息时,才读取(1822)定义所述情境变量的初始化的所述信息;
(h)根据所读取的片/图片时间运动矢量预测符启用标记来确定(1824)所述片是否使用至少一个时间运动矢量预测符来编码;
(i)只有当所述片使用至少一个时间运动矢量预测符来编码时,才至少部分根据所述片是P类型片还是B类型片来读取(1826)描述与所述至少一个时间运动矢量预测关联的片的至少一个参考图片的信息;
(j)根据所述片是B类型片还是P类型片来应用(1832)加权预测;以及
(k)根据所述片头来确定(1834)用于所述片的合并时间运动矢量预测符候选的最大数目。
6.根据权利要求5所述的处理设备,其中用于根据片类型数据确定所述一个或多个片中的片是否为间预测片的指令包括:
用于在一个条件语句下根据从所述片头读取的所述片类型数据来测试所述片是P类型片还是B类型片的指令。
CN201380043285.0A 2012-06-15 2013-05-20 用于高效片头处理的方法和装置 Active CN105684448B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261659986P 2012-06-15 2012-06-15
US61/659,986 2012-06-15
US201313863072A 2013-04-15 2013-04-15
US13/863,072 2013-04-15
PCT/US2013/041764 WO2013188057A1 (en) 2012-06-15 2013-05-20 Method and apparatus for efficient slice header processing

Publications (2)

Publication Number Publication Date
CN105684448A CN105684448A (zh) 2016-06-15
CN105684448B true CN105684448B (zh) 2019-02-01

Family

ID=48576557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380043285.0A Active CN105684448B (zh) 2012-06-15 2013-05-20 用于高效片头处理的方法和装置

Country Status (7)

Country Link
US (2) US9800869B2 (zh)
EP (3) EP2862353B1 (zh)
CN (1) CN105684448B (zh)
DK (1) DK2862353T3 (zh)
ES (1) ES2750176T3 (zh)
HU (1) HUE045786T2 (zh)
WO (1) WO2013188057A1 (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9060173B2 (en) 2011-06-30 2015-06-16 Sharp Kabushiki Kaisha Context initialization based on decoder picture buffer
US9800869B2 (en) 2012-06-15 2017-10-24 Google Technology Holdings LLC Method and apparatus for efficient slice header processing
US9432685B2 (en) * 2013-12-06 2016-08-30 Qualcomm Incorporated Scalable implementation for parallel motion estimation regions
CA2942903A1 (en) * 2014-03-16 2015-09-24 Vid Scale, Inc. Method and apparatus for the signaling of lossless video coding
WO2016026526A2 (en) * 2014-08-20 2016-02-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video composition
CN104333756B (zh) * 2014-11-19 2017-10-24 西安电子科技大学 基于时域相关性的hevc预测模式快速选择方法
KR20180008445A (ko) * 2015-06-10 2018-01-24 삼성전자주식회사 적응적 가중치 예측을 위한 신택스 시그널링을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
KR102516027B1 (ko) * 2016-07-20 2023-03-31 삼성전자주식회사 헤더 처리 장치, 프로세서 및 전자장치
CN109996076B (zh) * 2016-10-12 2021-08-06 深圳市大疆创新科技有限公司 码率控制的方法、计算机系统和装置
CN109891894B (zh) * 2016-12-01 2021-10-08 谷歌有限责任公司 用于恢复由重构产生的劣化帧的劣化图块的方法和装置
US10542279B2 (en) * 2017-09-25 2020-01-21 Intel Corporation Temporal motion vector prediction control in video coding
BR112021004636A2 (pt) * 2018-09-13 2021-05-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. codificador e decodificador de vídeo, mesclador de vídeo e métodos para fornecerem uma representação de vídeo codificado e mesclado
CN112740689B (zh) * 2018-09-18 2024-04-12 华为技术有限公司 视频编码器、视频解码器及对应方法
WO2020057530A1 (en) 2018-09-18 2020-03-26 Huawei Technologies Co., Ltd. Coding method, device, system
WO2020059687A1 (en) * 2018-09-21 2020-03-26 Sharp Kabushiki Kaisha Systems and methods for signaling reference pictures in video coding
US11601666B2 (en) * 2019-06-25 2023-03-07 Qualcomm Incorporated Derivation of temporal motion vector prediction candidates in video coding
KR20220078600A (ko) 2019-10-18 2022-06-10 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 서브픽처들의 파라미터 세트 시그널링에서의 신택스 제약들
US11758193B2 (en) * 2019-11-04 2023-09-12 Hfi Innovation Inc. Signaling high-level information in video and image coding
JP7346731B2 (ja) * 2019-11-05 2023-09-19 エルジー エレクトロニクス インコーポレイティド 映像/ビデオコーディングのための映像情報処理方法及び装置
EP4091327A4 (en) 2020-02-19 2023-05-03 ByteDance Inc. INFERENCE OF WEIGHT VALUES FOR VIDEO COMPONENTS IN A BITSTREAM
JP7475908B2 (ja) 2020-03-17 2024-04-30 シャープ株式会社 予測画像生成装置、動画像復号装置及び動画像符号化装置
CN115349254A (zh) * 2020-03-23 2022-11-15 抖音视界有限公司 控制编解码视频中不同级别的去块滤波
CN112804564A (zh) * 2021-03-29 2021-05-14 浙江华创视讯科技有限公司 视频会议的媒体流加工方法、装置、设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1767654A (zh) * 2004-10-26 2006-05-03 日本电气株式会社 图像编码器及其方法、图像编码器的计算机程序和移动终端
JP2006238453A (ja) * 2002-03-27 2006-09-07 Matsushita Electric Ind Co Ltd 可変長復号化方法、記憶媒体、及び可変長復号化装置
JP2009152895A (ja) * 2007-12-20 2009-07-09 Panasonic Corp 符号量制御方法および装置、符号量制御プログラム、カメラシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319716B2 (en) * 2011-01-27 2016-04-19 Qualcomm Incorporated Performing motion vector prediction for video coding
US20120287999A1 (en) * 2011-05-11 2012-11-15 Microsoft Corporation Syntax element prediction in error correction
MX2013012020A (es) * 2011-05-24 2013-12-10 Panasonic Corp Metodo de codificacion de imagenes, aparato de codificacion de imagenes, metodo de decodificacion de imagenes, aparato de decodificacion de imagenes y aparato de codificacion /decodificacion de imagenes.
CA2841058C (en) * 2011-12-16 2021-03-23 Panasonic Corporation Video image coding method, video image coding device, video image decoding method, video image decoding device and video image coding/decoding device
US9800869B2 (en) 2012-06-15 2017-10-24 Google Technology Holdings LLC Method and apparatus for efficient slice header processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006238453A (ja) * 2002-03-27 2006-09-07 Matsushita Electric Ind Co Ltd 可変長復号化方法、記憶媒体、及び可変長復号化装置
CN1767654A (zh) * 2004-10-26 2006-05-03 日本电气株式会社 图像编码器及其方法、图像编码器的计算机程序和移动终端
US7933334B2 (en) * 2004-10-26 2011-04-26 Nec Corporation Image encoder and method thereof, computer program of image encoder, and mobile terminal
JP2009152895A (ja) * 2007-12-20 2009-07-09 Panasonic Corp 符号量制御方法および装置、符号量制御プログラム、カメラシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《High efficiency video coding(HEVC) text specification draft 7》;Benjamin Bross;《JCT-VC》;20120612;正文第3.5-3.75节,第6.3节,第7.3.3节

Also Published As

Publication number Publication date
US9838685B2 (en) 2017-12-05
EP3588957A1 (en) 2020-01-01
EP4362467A2 (en) 2024-05-01
HUE045786T2 (hu) 2020-01-28
US20130336399A1 (en) 2013-12-19
US9800869B2 (en) 2017-10-24
DK2862353T3 (da) 2019-11-04
WO2013188057A1 (en) 2013-12-19
US20130336384A1 (en) 2013-12-19
EP3588957B1 (en) 2024-01-10
CN105684448A (zh) 2016-06-15
ES2750176T3 (es) 2020-03-25
EP2862353A1 (en) 2015-04-22
EP3588957C0 (en) 2024-01-10
EP2862353B1 (en) 2019-09-11

Similar Documents

Publication Publication Date Title
CN105684448B (zh) 用于高效片头处理的方法和装置
CN112740681B (zh) 自适应多重变换译码
CA2977526C (en) Modification of unification of intra block copy and inter signaling related syntax and semantics
CN103959774B (zh) 用于高效视频编码的运动信息的有效存储
CN104205829B (zh) 合并信令及环路滤波器开/关信令
JP6517152B2 (ja) ピクチャの符号化/復号化方法及びこれを利用する装置
CN109076235A (zh) 用于在视频译码中的并置参考索引的一致性约束
KR20140120891A (ko) 효율적인 변환 유닛 인코딩을 위한 방법 및 장치
WO2015051011A1 (en) Modified hevc transform tree syntax
KR20230150284A (ko) 효율적인 비디오 인코더 아키텍처
CA2935303C (en) Conditionally parsed extension syntax for hevc extension processing
CN112887736B (zh) 用于hevc扩展处理的条件解析扩展语法
EP3266216A1 (en) Modification of unification of intra block copy and inter signaling related syntax and semantics
WO2014031734A1 (en) Method and apparatus for efficient signaling of weighted prediction in advanced coding schemes
EP2781093A1 (en) Efficient storage of motion information for high efficiency video coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant