CN103959786B - 用于使用非均匀重构空间进行数据压缩的方法和设备 - Google Patents

用于使用非均匀重构空间进行数据压缩的方法和设备 Download PDF

Info

Publication number
CN103959786B
CN103959786B CN201280059215.XA CN201280059215A CN103959786B CN 103959786 B CN103959786 B CN 103959786B CN 201280059215 A CN201280059215 A CN 201280059215A CN 103959786 B CN103959786 B CN 103959786B
Authority
CN
China
Prior art keywords
quantization
rsp
parameter
reconstruct
reconstruction
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
CN201280059215.XA
Other languages
English (en)
Other versions
CN103959786A (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.)
BlackBerry Ltd
Original Assignee
BlackBerry Ltd
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 BlackBerry Ltd filed Critical BlackBerry Ltd
Publication of CN103959786A publication Critical patent/CN103959786A/zh
Application granted granted Critical
Publication of CN103959786B publication Critical patent/CN103959786B/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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/196Methods 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 being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Abstract

给出了使用自适应重构级别的编码和解码方法。由编码器形成重构空间参数,并且将其插入到具有编码的视频数据的比特流中。重构空间参数可以包括解码器可以根据其来确定编码的视频数据的解量化的级别的参数。重构空间参数可以包括第一重构级别和其他级别之间的步长。第一重构级别可以不等于步长。在一些情况下,该步长可以不等于用于对变换域系数进行量化的量化步长。

Description

用于使用非均匀重构空间进行数据压缩的方法和设备
版权通告
本文档和附属材料的公开的一部分包含要求了版权的材料。版权人不反对任何人在专利商标局的文件或记录中发表的专利文档或专利公开的复制,但是无论如何保留所有其他版权权利。
技术领域
本申请大体上涉及数据压缩,具体地,涉及用于使用非均匀重构空间进行量化的方法和设备。
背景技术
数据压缩发生在众多上下文中。在通信和计算机联网中非常普遍地使用数据压缩,以有效地存储、传输和再现信息。其在图像、音频和视频的编码方面得到了具体应用。由于每个视频帧所需的大量数据以及经常需要发生的编码和解码的速度,因此视频对数据压缩提出相当大的挑战。视频编码的当前最新技术是ITU-T H.264/AVC视频编码标准。该标准定义了针对不同应用的多个不同简档,包括主简档、基线简档等等。通过MPEG-ITU的联合发起,当前正在开发下一代视频编码标准:高效视频编码(HEVC)。
存在用于编码/解码图像和视频的多个标准,包括H.264,其使用基于块的编码过程。在这些过程中,图像或帧被分割成块,通常是4×4或8×8,并且块被频谱变换成系数、量化、和熵编码。在许多情况中,被变换的数据不是实际像素数据,而是预测操作之后的残差数据。预测可以是:帧内的,即帧/图像内的块到块;或者帧间的,即在帧之间(也称为运动预测)。预计HEVC将也具有这些特征。
当对残差数据进行频谱变换时,这些标准中的多个标准规定了使用离散余弦变换(DCT)或基于它的一些变形。然后使用量化器对所得DCT系数进行量化,其中,量化器采用均匀量化步长,即,数据空间的均匀划分。
有损压缩(例如,音频/视频编码、视频编码、图像编码等)中的工作常常关注于改善速率-失真性能。也即是说,大多数编码和解码方案的目标是找到失真和编码速率之间的最佳平衡。通常使用J=D+λR类型的速率-失真优化表达式,其中,拉格朗日乘数λ表示编码速率与失真之间的期望折中。
在解码器处使用与编码器处量化对数据空间的均匀划分相匹配的均匀重构空间重构数据并不始终实现最佳的速率-失真性能。
发明内容
本申请描述了用于实现有损数据压缩的速率-失真改善的方法以及编码器/解码器。在一些实施例中,本文所述的数据压缩过程或设备可以应用于对音频数据、图像数据和/或视频数据进行编码和解码。具体地,本申请描述了使用非均匀重构空间进行解量化的数据压缩的方法和过程。描述了用于在编码器处确定非均匀重构空间、将用于非均匀重构的参数传送到解码器、以及在解码器处当解量化数据时应用非均匀重构空间的方法和设备。
在第一方面,本申请公开了一种用于对视频数据进行编码的方法,所述视频数据被划分为包括量化变换系数集合的块。所述方法包括:针对当前块中的每一个量化变换系数集合,收集统计数据,所述统计数据包括量化变换系数的数量和所述集合中的所有量化变换系数的相应非取整量化值之和。然后,所述方法包括:针对所述当前块,基于所述统计数据导出步长,从预定的量化参数(QP)集合中选择具有最接近所导出的步长的相应步长的QP,以及使用针对所述当前块所选择的QP来对下一个块进行编码。
在一个方面,本申请描述了一种对编码数据的比特流进行解码的方法。所述方法包括:从所述比特流中提取重构空间参数,其中,所述重构空间参数标识第一重构级别和其他重构级别的重构步长,所述第一重构级别不等于所述重构步长;对所述编码数据进行解码,以获得多个量化变换系数;以及基于所述第一重构级别和所述重构步长对每一个量化变换系数进行解量化,以生成重构变换系数。
在另一方面,本申请描述了一种用于对数据进行编码的方法,所述数据包括量化变换域系数。所述方法包括:基于所述量化变换域系数生成重构空间参数,其中,所述重构空间参数标识第一重构级别和其他重构级别的重构步长,并且所述第一重构级别不等于所述重构步长;对所述量化变换域系数进行熵编码;以及生成包含编码的量化变换域系数和所述重构空间参数在内的比特流。
在又一方面,本申请描述了被配置为执行这种编码和解码方法的编码器和解码器。
在又一方面,本申请描述了存储计算机可执行程序指令的非瞬时计算机可读介质,当执行所述计算机可执行程序指令时,所述计算机可执行程序指令将处理器配置为执行所描述的编码和/或解码的方法。
本领域普通技术人员将通过结合附图阅读以下示例的描述,来理解本申请的其他方面和特征。
附图说明
现在以示例方式参照附图,附图示出了本申请的示例性实施例,在附图中:
图1以框图形式示出了用于对视频进行编码的编码器;
图2以框图形式示出了用于对视频进行解码的解码器;
图3示出了示例性数据空间;
图4示出了实际数据在数据空间的子部分中的示例性非均匀分布;
图5示出了示例性自适应重构空间;
图6示出了第二示例性自适应重构空间;
图7示出了第三示例性自适应重构空间;
图8示出了第四示例性自适应重构空间;
图9以流程图的形式示出了用于使用重构空间参数来对数据进行编码的示例性方法;
图10以流程图的形式示出了用于使用重构空间参数对编码数据进行解码的示例性方法;
图11示出了编码器的示例性实施例的简化框图;以及
图12示出了解码器的示例性实施例的简化框图。
在不同的附图中可能已经使用类似的附图标记来指示类似的组件。
具体实施方式
在以下描述中,参考用于视频编码的H.264标准,描述了一些示例性实施例。本领域普通技术人员将理解的是,本申请不限于H.264,而是可适用于其他视频编码/解码标准,包括可能的将来的标准,例如,HEVC、多视图编码标准、可伸缩视频编码标准、以及可重新配置的视频编码标准。还将清楚的是,本申请不一定限制于视频编码/解码,并且可以应用于音频编码/解码、图像编码/解码、或者任何其他数据的有损编码/解码。本申请广泛地应用于采用量化的任何有损数据压缩过程,而不论正在编码/解码的数据的类型如何。
在以下描述中,当参考视频或图像时,在某种程度上可以互换地使用术语帧、片、平铺块(tile)和矩形片组。本领域技术人员将清楚的是,在H.264标准的情况中,帧可以包含一个或多个片。还将清楚的是,根据适用的图像或视频编码标准的特定要求,某些编码/解码操作是逐帧执行的,一些编码/解码操作是逐片执行的,一些编码/解码操作是逐平铺块执行的,以及一些编码/解码操作是逐矩形片组执行的。在任何特定实施例中,适用的图像或视频编码标准可以确定是否关于帧和/或片和/或平铺块和/或矩形片组来执行以下描述的操作,视情况而定。相应地,根据本公开,本领域普通技术人员将理解,本文描述的特定操作或过程以及对帧、片、平铺块、矩形片组的特定引用对于给定实施例是否适用于帧、片、平铺块、矩形片组、或者其中的一些或全部。这也可应用于编码单元、编码单元组等等,这些根据以下描述将变得明显。
在下面的讨论中,提到了DCT系数和DCT域;然而,将清楚的是,本申请不限于DCT系数的编码、基于块的变换系数的编码、基于块的数据的编码、或者任何特定的数据类型。
就下面所述的过程或方法应用于图像和/或视频而言,它们可以应用于视频或图像的一部分,例如,帧、片、画面组(GOP),或者基于任何其他因素,例如,应用于编码单元、编码单元组。就本文所述的过程或方法应用于诸如音乐或语音数据等的音频而言,它们可以应用于数据点的分组或序列,例如,音频采样。应当注意的是,术语画面和帧可以互换使用。
现在参照图1,图1以框图形式示出了用于对视频进行编码的编码器10。还参照图2,图2示出了用于对视频进行解码的解码器50的框图。将清楚的是,本文描述的编码器10和解码器50均可以在专用或通用计算设备(包含一个或多个处理单元和存储器)上实现。编码器10或解码器50执行的操作可以通过例如专用集成电路或通过通用处理器可执行的存储程序指令来实现,视情况而定。设备可以包括额外软件,包括例如用于控制基本设备功能的操作系统。关于以下描述,本领域普通技术人员将清楚在其中可以实现编码器10或解码器50的设备和平台的范围。
编码器10接收视频源12并产生编码比特流14。解码器50接收编码比特流14并输出解码视频帧16。编码器10和解码器50可以被配置为符合多个视频压缩标准来操作。例如,编码器10和解码器50可以符合H.264/AVC。在其他实施例中,编码器10和解码器50可以符合其他视频压缩标准,包括诸如HEVC之类的H.264/AVC标准的演进。
编码器10包括空间预测器21、编码模式选择器20、变换处理器22、量化器24和熵编码器26。本领域普通技术人员将清楚的是,编码模式选择器20确定视频源的适合编码模式,例如对象帧/片是I、P还是B类型,帧/片内的特定编码单元(例如宏块)是帧间还是帧内编码。变换处理器22对空间域数据执行变换。具体地,变换处理器22应用基于块的变换来将空间域数据变换为频谱分量。例如,在很多实施例中,使用离散余弦变换(DCT)。在一些示例中,可以使用其他变换,如离散正弦变换等。根据宏块的大小,该基于块的变换是在宏块或者子块的基础上执行的。在H.264标准中,例如,典型的16×16的宏块包含16个4×4的变换块,并且对4×4的块执行DCT过程。在一些情况中,变换块可以是8×8的,这意味着针对每个宏块存在4个变换块。在其他情况中,变换块可以是其他大小。在一些情况中,16×16的宏块可以包括4×4和8×8的变换块的非重叠的组合。
将基于块的变换应用于像素数据块得到变换域系数的集合。在该上下文中,“集合”是有序集合,在该集合中系数具有系数位置。在一些示例中,变换域系数的集合可被认为是系数的“块”或矩阵。在本文的描述中,短语“变换域系数的集合”或“变换域系数的块”被互换地使用,并且用于指示变换域系数的有序集合。
量化器24对变换域系数的集合进行量化。然后,熵编码器26对量化后的系数和相关联的信息进行编码。
帧内编码的帧/片(即,类型I)不参照其他帧/片进行编码。换言之,它们不采用时间预测。然而,帧内编码的帧依赖于帧/片内的空间预测,如图1中由空间预测器21所示。即,在对特定块编码时,可以将块中的数据与针对该帧/片已经编码的块内邻近像素的数据进行比较。使用预测算法,可以将块的源数据转换为残差数据。然后,变换处理器22对残差数据进行编码。例如,H.264规定了4×4变换块的9种空间预测模式。在一些实施例中,这9种模式中的每一种可以用于独立地处理块,然后使用速率-失真优化来选择最佳模式。
H.264标准还规定了使用运动预测/补偿来利用时间预测。相应地,编码器10具有反馈环路,反馈环路包括:解量化器28、逆变换处理器30和去块处理器32。这些元件反映了解码器50执行以再现帧/片的解码过程。帧存储器34用于存储再现帧。按照这种方式,运动预测基于在解码器50处重构帧是什么,而不基于原始帧,由于编码/解码中涉及的有损压缩,原始帧可能不同于重构帧。运动预测器36使用帧存储器34中存储的帧/片作为源帧/片,来与当前帧进行比较,以识别相似块。相应地,对于应用了运动预测的宏块,变换处理器22编码的“源数据”是出自运动预测过程的残差数据。例如,其可以包括关于参考帧、空间置换或“运动矢量”的信息、以及表示参考块与当前块之间的差异(如果存在)的残差像素数据。关于参考帧和/或运动矢量的信息可以不由变换处理器22和/或量化器24处理,而是可以提供给熵编码器26,作为比特流的一部分与量化后的系数一起编码。
本领域普通技术人员将清楚用于实现H264编码器的细节和可能变形。
解码器50包括:熵解码器52、解量化器54、逆变换处理器56、空间补偿器57和去块处理器60。帧缓冲器58提供重构帧以便由运动补偿器62在应用运动补偿时使用。空间补偿器57表示根据先前解码块来恢复特定帧内编码块的视频数据的操作。
熵解码器52接收并解码比特流14,以恢复量化后的系数。在熵解码过程中,还可以恢复辅助信息,如果适用,一些辅助信息可以提供给运动补偿环路,以用于运动补偿。例如,熵解码器52可以恢复运动矢量和/或针对帧间编码宏块的参考帧信息。
然后,解量化器54对量化后的系数进行解量化,以产生变换域系数,然后,逆变换处理器56对变换域系数进行逆变换,以重建“视频数据”。将清楚的是,在一些情况下,如对于帧内编码的宏块,重建的“视频数据”是用于空间补偿的、相对于帧内先前解码块的残差数据。空间补偿器57根据残差数据和来自先前解码块的像素数据来产生视频数据。在其他情况下,如对于帧间编码的宏块,来自逆变换处理器56的重建“视频数据”是用于运动补偿的、相对于来自不同帧的参考块的残差数据。在本文中,空间和运动补偿均可以称为“预测操作”。
运动补偿器62在帧缓冲器58内定位针对特定帧间编码的宏块指定的参考块。运动补偿器62基于针对帧间编码的宏块指定的参考帧信息和运动矢量来进行该操作。然后,运动补偿器62提供参考块像素数据,以与残差数据组合,从而得到针对该宏块的重构视频数据。
然后,可以对重构帧/片应用去块过程,如去块处理器60所示。在去块之后,输出帧/片作为解码视频帧16,例如以在显示设备上显示。将理解的是,视频回放机(如计算机、机顶盒、DVD或蓝光播放器和/或移动手持设备)可以在输出设备上显示之前将解码帧缓存在存储器中。
期望符合HEVC的编码器和解码器将具有这些相同或类似特征中的多个特征。
量化
对于具有预测p的给定像素块x,残差为z=x-p。(例如,通过使用DCT)对残差z进行变换,以生成变换域系数集合c。使用所选量化步长q来对系数c进行量化,以产生量化系数集合u。这可以被表达为:
u=round(c/q+f) (1)
其中,通过应用量化步长q,将输入c量化为u,并且1>f>0是取整偏移。因为通过确定性函数计算量化输出,因此这可以称作硬判决量化。
可以从速率-失真的角度来观察该量化操作。实际上,量化操作可以被重新定义,以选择索引u,使得所选索引导致最小速率-失真成本。可以按下式表达最小速率-失真成本:
在等式(2)中,c是变换系数的矩阵,q是量化步长,u是系数被量化至的相应索引矩阵。符号λ是拉格朗日乘数,其是终端用户基于其对编码速率和视频质量的偏好所确定的常数。相对小的λ更偏好更好的质量,而较大的λ着重于较低的编码速率。r(u)表示针对索引u的熵编码的速率函数。熵编码可以是任何适当或适用的熵编码方案。例如,在JPEG图像的情况下,编码可以是Huffman编码。在H.264视频的情况下,编码可以是CAVLC或CABAC编码。另一种与上下文有关或者与上下文无关的编码方案可以在特定的实施例中应用。显然,等式(2)的量化输出不再是由确定性函数给出的,而是与速率和失真都有关的优化过程的输出。因此,其被称作软判决量化。
在Yang等提交的美国专利公开no.2007/0217506(下文中称为“Yang”)中描述了软判决量化的示例性实施例。Yang公开描述了给定固定q(或者一般地,量化器的矩阵q,其中,不同的步长可以用于不同的系数位置)的条件下优化u。这被称作“软判决量化”,这是因为在速率-失真优化中变换域系数自身被视为自由参数。在Yang中描述了将软判决量化应用于使用CAVLC的H.264编码,并且它可以包括使用格子来搜索针对给定的熵编码方案产生最小累积速率-失真的量化系数集合u。在Yang中所述的示例中,H.264CAVLC编码方案用于说明的目的。
在H.264中以及在很多其他编码方案中,量化步长被预先确定,并且在特定的示例中,编码器选择量化步长之一以用于量化特定的数据点集合,不论是块、片、还是帧等。然后,编码器只需发送索引或指示符以向解码器通知使用了哪一种量化步长。
现在参照图3,图3用图形示出了数据空间100的一部分。在该示例中,数据空间100包含要使用所选量化方案量化的数据点集合。在概念上,为了执行量化,可以认为数据空间100被划分为子部分A0,A1,...AN,其中,N+1是子部分的数量。每一个子部分可以由其索引i引用,其中,i=0,1,...,N。落入子部分Ai之一中的数据点被量化为经量化的变换域系数u=索引i。重构级别qu处于其相应子部分的中点处。当解码器重构数据点时,它将其重构为重构级别qu;在u=i的情况下,数据点被重构为qi,而不论实际的数据点在子部分Ai中所处的位置如何。在量化步长为q的情况下,每一个重构级别qi由i·q给出。如果源数据是均匀的,则中点重构级别的假设将导致最小失真;然而,在很多情况下,源数据的均匀分布的假设可能不准确。
现在参照图4,图4示出了示例性子部分Ai。中点重构级别被示出为qi。源数据点的非均匀分布如附图标记102所示。将清楚的是,具有如102所示的分布的数据点将由处于或接近qi’的自适应重构级别来更好地表示。自适应重构级别可以基于与索引i相关联或者指派给索引i(即,位于子部分Ai中)的数据点的实际分布。在一些实施例中,自适应重构级别可以基于算术平均或中值或模式。通过调整重构级别以反映子部分Ai中的实际数据点的分布,当前描述的过程补偿了当依赖于均匀假设时可归因于数据点的非均匀分布的失真中的一些。
在很多数据压缩过程中,当执行量化时,未分离地考虑数据空间的划分和重构级别的选择。例如,在ITU-T H.264/AVC中,在选择量化步长的情况下,这二者都被包括在内。本申请人已经认识到,数据空间的划分和针对每一个子部分的重构级别的选择可以被分离地考虑,而无需基于例如如ITU-T H.264/AVC中一样处于子部分的中点处的预定的重构级别。
因此,在该过程情况下的量化变为两级操作。第一,将数据点指派给量化索引(即,基于数据空间的划分,将数据点分组为子部分)。该第一阶段的划分/量化可以是均匀的、非均匀的、预定的硬判决量化或软判决量化。可以基于速率-失真优化过程从预设的多个候选步长/划分大小中选择步长/划分大小。在所有这些可能的变形中,数据点中的每一个被指派给所选量化划分结构的索引之一。
第二,确定划分的数据空间的子部分中的一个或多个(例如,每一个索引)的自适应重构级别。自适应重构级别可以基于落入子部分中的实际数据点的平均。平均可以对块或编码单元、块或编码单元组、片、帧、画面组(GOP)或者考虑到特定应用的其他适当的数据点集合而进行。平均还可能对具有公共量化参数qP的编码单元或帧组进行。在一些情况下,相同的帧或GOP可以具有qp不同的编码单元,在该情况下,具有相同qP的那些编码单元可以被认为是用于确定该编码单元组的自适应重构级别的目的的编码单元组。
每一个索引的自适应重构级别的选择可以基于速率-失真分析。换言之,它可以基于选择考虑子部分中的实际数据点而最小化总失真的重构级别。它还可以基于最小化成本函数,该成本函数包括由于重构级别与实际数据点之间的差别引起的失真以及与发送重构级别相关联的速率成本。与发送重构级别相关联的速率成本可以基于用于对重构级别进行熵编码的编码方案。速率还可以取决于熵编码器操作的模式(例如,CABAC的旁路模式)。
在分别于2011年2月25日和2011年6月8日提交的美国专利申请no.61/446,528和no.13/155,616中描述了用于选择和应用自适应重构级别的示例性过程;其内容通过引用的方式并入本文。
这些早前的申请中所描述的一个示例性过程提出了以格式i·q+δi构造的自适应重构级别,其中,i是索引(在本文中也称作量化变换域系数u),q是由量化参数qP设置的量化步长,δi是第i个量化级别的偏移。图5用图形示出了根据格式i·q+δi构造的重构空间120。如美国专利no.61/446,528中的实施例中所描述的,可以针对重构级别中的一些(例如,前三个或前四个)计算偏移,并且公共偏移(其可能是使用平均来选择的)可以用于后续级别。在该示例性说明中,偏移δ4用于第四级别以及高于第四级别的级别。
早前的申请中所述的另一个示例性过程提出了以格式i·(q+δ)构造的自适应重构级别,其中,i是索引(量化变换域系数),q是通过量化参数qP设置的量化步长,并且δ是量化步长的偏移。图6用图形示出了根据该格式构造的重构空间130。将注意的是,该格式仍然导致均匀的重构空间,这是因为每一个级别相距q+δ。
格式为i·q+δi的前一个示例性重构空间的可能问题是与发送所有偏移相关联的速率-失真成本。还可能存在不足以生成足够准确的偏移以证明每一个级别的成本合理的统计数据。如所提到的,一些级别可以使用平均偏移来解决该问题。格式为i·(q+δ)的后一个示例性重构空间的可能问题是重构空间保持均匀,这在量化设计中限制了速率-失真编码性能增益。还将注意的是,两个方案都仍然基于用于在编码器处对变换域系数进行量化的量化步长q。
为了改善速率-失真性能,本申请提出了使用格式(i·a+bi)的更一般的重构空间。通过该格式,重构空间部分地与量化步长解耦,这是因为a不一定等于q。如图7中所示,这导致设计完全灵活的非均匀的重构空间150。将注意的是,当a=q时,该格式降级为格式(i·q+δi)。还将注意的是,当b=0时,该格式降级为i·(q+δ)。
然而,已经注意到,在a≠q且bi≠0的情况下,实现最佳速率-失真性能。
还已经注意到,从速率-失真的角度来看,信令bi的传输成本是不合理的,使得格式可以简化为格式(i·a+b)。图8用图形示出了根据该格式(i·a+b)构造的重构空间160。将注意的是,第一级别(例如,i=1)处于a+b,后续级别(i>1)间隔a。
可以将落入第i个子部分中的所有采样(即,变换域系数)定义为c(i) j,j=1,...,Ni。在该标记中,第i个子部分中的采样的数量为Ni
在编码过程中,如果在例如片报头中的系数数据开始时信号通知重构空间,则这些采样c(i) j可以是来自前一片、帧等的数据,然后,这些采样用于确定当前片、帧等的重构空间。在一个实施例中,当前片的重构空间可以基于具有相同类型和/或相同量化参数的前一片的采样数据;并且在片报头中信号通知重构空间。在某些情况下,以这种方式收集的统计数据可能是不稳定的,例如,采样数据的总数可能小于给定的阈值。在该情况下,可以使用重构空间的一些默认参数。在另一实施例中,如果在片/帧数据的末尾信号通知重构空间参数,则重构空间可以基于当前片或帧的采样数据;然而,这将导致解码器处的一片/帧延迟,这在一些实现中是不可接受的。
将理解的是,量化变换域系数u是使用量化步长q量化的变换域系数c,在下文中将量化步长q标记为qqP,以指定与针对特定的片、帧等所选择的qP值相关联的量化步长。注意,在一些实施例中,量化变换域系数u也可以并入缩放;例如,在一些示例性实现中,可以将这些值缩放128或某一其他因子(例如2m,其中,m具有以比特为单位的计算精度),从而帮助促进有效的计算实现。在下面的描述中省略了缩放和相关操作的一些细节,但是本领域普通技术人员将理解这些细节。
根据变换域系数c(i) j,可以按下式计算第i个级别的平均值:
用于导出重构空间的一个选项是使用例如下式来最小化总速率-失真:
mina,bij(c(i) j-(i·a+b))2+λ(ri) (4)
在该速率-失真表达式中,失真是由第i个子部分中的实际系数c(i) j与由(i·a+b)给出的重构空间级别之差来给出的。通过速率ri来表示用于发送与信令a和b相关联的重构空间参数的速率。
通过下式给出等式(4)的解:
注意,也可以通过适当的修改使用(未取整的)量化变换域系数un(i) j或者在一些实现中使用用于反映实际的编解码实现的具有固定精度的量化系数(例如,un(i) j=c(i) j/q·128)来执行上面的操作。
图8中的重构空间160的结构允许使用备选标记。备选标记利用以下事实,第一重构级别是不同的,并且所有后续级别处于相距a的均匀间隔处。第一级别可以被设置为第一级别的平均值,即,其是由i=1时的等式(3)给出的,即,不考虑通过qqP(并且在一些实现中,为了便于计算实现,通过固定值,例如,128)进行缩放,第一重构级别由下式给出:
其中,un(1) j=c(1) j/qqP·128。
注意,用具有几个比特的计算精度的缩放格式来表示在该示例中被量化至第一级别的变换域系数。通过qqP来进行缩放。示例性的计算精度为7个比特,其与因子27=128相对应。注意,也可以使用其他计算精度。然后,后续量化级别之间的步长可以被标记为s。为了找出s,可以使用下式:
可以用(i·a+b)格式来表达使用该标记的重构空间,其中,a与s相对应,b与t-s相对应。确切的说,在un=c/qqP*128的实现中,a=s/128×qqP且b=(t-s)/128×qqP
在本申请中,术语“重构空间参数”用于指代信号通知自适应重构空间的参数。这些参数可以包括a和b、t和s、或者可以被定义用于信号通知重构空间的其他此类参数。注意,重构空间参数(RSP)与qP不同,qP在H.264/AVC标准中用于信号通知在编码器处使用的量化步长q。在本申请中,a≠q,这意味着s不会导致重构空间步长qqP(或者确切的说,使用上述示例性实现,s≠128;并且更一般地,s≠2m,其中,m是以比特为单位用于表示s的计算精度)。
但是,在一个示例性实施例中,编码器可以操纵qP以调整发送的RSP的值。例如,假设将从在H.264和/或HEVC中定义的52个步长中选择量化步长qqP。在该示例中,基qP是25(其与qqP=10相对应),其中,针对量化重构步长参数s具有7比特的计算精度。如果等式(8)得到量化重构步长参数s为160,则它与重构步长(例如,a)相对应,qs=160/128*10=12.5。不是发送值s=160以信号通知重构步长qs=12.5,而是编码器可以将qP基值从25调整到26(其与qqP=11相对应),然后可以发送量化重构步长参数s=12.5/11*128=145。应当注意的是,qP已经作为片qP并入到比特流的句法中,但是RSP的更小值可以减小与信号通知这些值相关联的开销。
现在参照图9,图9示出了对数据进行编码的示例性方法200的流程图。方法200包括使用量化步长qqP对变换域系数进行量化的操作202。将理解的是,在一些实现中,量化操作与频谱变换操作结合并且应用于残差数据以得到量化变换域系数。
在操作204,编码器基于量化变换域系数生成重构空间参数(RSP)。例如,编码器可以使用等式(7)和(8)或者类似的等式来生成第一级别参数(通过等式(7)中定义的t表示和发送)以及量化重构步长参数s。在一些实现中,RSP可以包括参数a和b,如上所述。在其他实现中,RSP可以包括其他参数,例如,第一重构级别和重构步长。
在操作206,对量化变换域系数进行熵编码。熵编码可以是可变长度编码(VLC)、算术编码、或者用于具体实现的任何其他适用熵编码方案、或者各种熵编码方案/模式的组合。熵编码产生编码数据。
然后,方法200包括操作208,在操作208中,产生(形成)比特流以包含编码的数据和RSP。如上所述,RSP可以放置在片报头中或者其他报头位置。在这种示例中,基于来自一个帧的量化变换域系数来生成RSP,然后在下一个帧之前将RSP插入到片报头中。
操作208可以包括对RSP进行编码以用于有效的传输。各种技术可以用于实现传输效率。例如,可以使用各种预测方案,使得不发送实际的RSP值,而是发送残差值,根据该残差值,解码器可以使用与编码器相同的预测操作来重构实际的RSP值。量化可以用于减小正在发送的RSP值或残差值的大小。将理解的是,量化可能在重构的RSP值中引入失真。可以使用各种熵编码机制来对RSP进行编码以便于传输。下面概述多个可能的量化、预测和编码选项。
可以基于编码器和解码器已知的数据来生成预测RSP,标记为RSPp。例如,预测RSPp可以基于先前编码的RSP、量化参数qP、数据类型等。根据计算出的RSP与预测RSPp之间的差别,然后找到预测误差RSPd。然后,对预测误差RSPd进行量化,以形成预测误差索引RSP_delta_idx,然后对预测误差索引RSP_delta_idx进行熵编码以发送到解码器。在解码器处,从比特流中(例如,从片报头中)提取编码预测误差索引,然后对编码预测误差索引进行解码和解量化,以创建重构的预测误差。
在这些示例中的RSP的句法假定多于一个参数。在一些示例中,这些参数可以包括第一量化级别参数t(与相对应)和量化重构步长参数s。索引i用于区分参数。例如,索引i=1可以指代第一量化级别参数t,索引i=2可以指代量化重构步长参数s。
在一些实施例中,RSP还可以是数据类型和量化参数qP特有的。数据类型可以包括亮度和色度。在一些情况下,数据类型可以指定帧间编码或帧内编码。在其他实现中,数据类型包括亮度间、亮度内、色度间和色度内。因此,用于指定参数的格式可以由下式给出:
RSP[qP][DataType][i]
通过使用该格式,用于对具有索引i、量化参数qP和数据类型DataType的RSP进行编码的过程如下:
RSPd[qP][DataType][i]=RSP[qP][DataType][i]-RSPp[qP][DataType][i]
RSP_delta_idx[qP][DataType][i]=Q(RSPd[qP][DataType][i])
元素RSP_delta_idx[qP][DataType][i]指定通过对RSP预测误差RSPd进行量化获得的量化索引。注意,该量化操作Q(·)不一定涉及与qP相同的量化步长。对元素RSP_delta_idx进行熵编码并且在比特流中对其进行传输。
在解码器处,按照下式根据相应接收的RSP_delta_idx来重构RSP:
RSP’[qP][DataType][i]=invQ(RSP_delta_idx[qP][DataType][i])+RSPp[qP][DataType][i] (9)
其中,RSP’表示RSP参数的重构,invQ(·)表示反向量化函数。
注意,在一些实施例中,得到的RSP’[qP][DataType][i]可以被限幅以防止其值超过某一预定的合理范围。例如,如果RSP’[qP][DataType][1]<RSP’[qP][DataType][2],则RSP’[qP][DataType][1]可以被设置为等于RSP’[qP][DataType][2],使得得到的量化器的第一单元始终不小于第二单元。已经观察到,这种重构空间结构可以提供改善的性能。
存在多种可能的方式来得到预测RSPp[qP][DataType][i]。一种方式是使用固定的默认预测值。默认值可以取决于qP、DataType、和/或索引i。它还可以取决于片的时间层和其他因素。下面针对两个索引示例来描述示例性默认值。
RSPp[qP][RSP_TYPE_INTRAY][1]=128
RSPp[qP][RSP_TYPE_INTRAY][2]=128
RSPp[qP][RSP_TYPE_INTRAUV][1]=128
RSPp[qP][RSP_TYPE_INTRAUV][2]=128
如果片时间层索引≤1,则
RSPp[qP][RSP_TYPE_INTERY][1]=128,
如果片的片时间层>1,则
RSPp[qP][RSP_TYPE_INTERY][2]=147,
如果片时间层索引≤1,则
RSPp[qP][RSP_TYPE_INTERUV][1]=128
如果片时间层索引>1,则
RSPp[qP][RSP_TYPE_INTERUV][2]=147,
示例性默认值也可以独立于qP、DataType、和/或索引i。下面描述示例性默认值:
RSPp[qP][RSP_TYPE_INTRAY][i]=128
RSPp[qP][RSP_TYPE_INTRAUV][i]=128
RSPp[qP][RSP_TYPE_INTERY][i]=128
RSPp[qP][RSP_TYPE_INTERUV][i]=128
在另一实施例中,可以根据先前编码的RSP值来导出预测。例如,预测可以基于具有与当前片中的qP和DataType相同的qP和DataType的最近编码的RSP参数。在两个索引的示例中,这意味着RSP参数之一用作另一RSP参数的预测。举例说明:
RSPp[qP][DataType][i]=RSP’[qP][DataType][i+1],其中,RSP’[qP][DataType][i+1]是在重构RSP’[qP][DataType][i]之前获得的。
与预测过程一样,存在可以在各个实施例中使用的针对RSP值的多种可能的量化方案。在第一示例性实施例中,可以使用均匀量化。也即是说,通过使用给定的量化步长qRSP,由下式给出预测误差RSPd的前向量化和反向量化:
RSP_delta_idx=Q(RSPd)=sign(RSPd)·round(abs(RSPd)/qRSP+f),以及
RSPd’=invQ(RSP_delta_idx)=RSP_delta_idx·qRSP,其中,1>f>0是取整偏移
解量化的预测误差被标记为RSPd’。
在另一示例性实施例中,已经观察到,在实现更好的总编码性能方面,较大的RSP通常是优选的。因此,在该实施例中,量化可以使用上取整(ceiling)函数。
RSP_delta_idx=Q(RSPd)=ceil(RSPd/qRSP)
RSPd’=invQ(RSP_delta_idx)=RSP_delta_idx·qRSP
在另一实施例中,可以使用下面的量化方案:
RSP_delta_idx=Q(RSPd)=floor(RSPd/qRSP)
RSPd’=invQ(RSP_delta_idx)=(RSP_delta_idx+1)·qRSP
在下面的示意性示例中,首先将RSPd[qP][DataType][1]限幅至(-31,32),然后使用量化步长qRSP=8对其进行量化:
RSP_delta_idx[qP][DataType][1]=(Clip3(-31,32,RSPd[qp][DataType][1])+31)>>3
RSPd’[qP][DataType][1]=((RSP_delta_idx[qP][DataType][1]+1)<<3)-31
在下面的示意性示例中,首先将RSPd[qP][DataType][2]限幅至(-31,32),然后使用量化步长qRSP=4对其进行量化:
RSP_delta_idx[qP][DataType][2]=(Clip3(-31,32,RSPd[qP][DataType][2])+31)>>2
RSPd’[qP][DataType][2]=((RSP_delta_idx[qP][DataType][2]+1)<<2)-31
也可以在一些实施例中使用非均匀量化器。在一些示例性实现中,可以基于RSPd的统计数据来动态地形成非均匀量化器。
随着编码过程的进行,RSP的预测误差的统计数据可能改变。因此,使量化自适应可能是有益的。自适应量化的一个示例是基于从前一片接收的RSP的值在两个或更多个均匀量化器之间进行选择。例如,编码器(和解码器)可以将Q1(·)和invQ1(·)标记为量化步长为qRSP=q1且取整偏移为f=1/2的一对前向均匀量化器和反向均匀量化器。将Q2(·)和invQ2(·)标记为量化步长为qRSP=q2且取整偏移为f=1/2的一对前向均匀量化器和反向均匀量化器。将RSP’pre标记为前一片的RSP的重构。考虑两个阈值Th1和Th2,RSPd的前向量化如下:
RSP_delta_idx=Q(RSPd)=sign(RSPd)·round(abs(RSPd)/q1+f),针对RSP’pre<Th2且RSPpre>Th1;
RSP_delta_idx=Q(RSPd)=sign(RSPd)·round(abs(RSPd)/q2+f),其他
在该示例中,通过下式给出反向量化:
RSPd’=invQ(RSP_delta_idx)=RSP_delta_idx·q1,针对
RSP’pre<Th2且RSPpre>Th1;
RSPd’=invQ(RSP_delta_idx)=RSP_delta_idx·q2,其他
在该示例中,将清楚的是,量化基于来自前一片的RSP值。如果不准许片间依赖性,则可以通过上述预测方案来修改该示例性量化方案,其中,在上述预测方案中,基于来自当前片的编码的RSP值来导出预测。在该情况下,RSP’pre将是已经针对该当前片接收到的RSP。
可以以任何适当的方式对量化的预测值进行熵编码。可以在特定的实现中使用的示例性熵编码方案包括固定长度编码、Golumb-Rice编码(例如,基于索引的概率分布)、和Huffman编码(例如,基于索引的概率分布设计的)。
无论如何对RSP参数进行预测、量化和编码(如果发生的话),都将这些RSP参数作为比特流的一部分发送到解码器。在很多实施例中,编码参数可以被插入到诸如片报头等的报头中。片报头句法可以指定针对RSP参数的函数,例如,RSP_param()。下面给出了示例性片报头句法:
在一个示例中,RSP_data_type_id与数据类型名称之间的关联可以是:
在上文中,RSP_TYPE_INTERY与编码亮度间数据相对应,RSP_TYPE_INTERUV与编码色度间数据相对应,RSP_TYPE_INTRAY与编码亮度内数据相对应,并且RSP_TYPE_INTRAUV与编码色度内数据相对应。
下面阐述了备选的句法,其中,Chroma(UV)分量的RSP参数的传输取决于Luma(Y)分量的RSP参数是否存在:
在一些示例性实现中,允许不同的RSP参数分别用于U分量和V分量有时可能是有利的。例如,可以通过两个数据类型RSP_TYPE_INTRAU和RSP_TYPE_INTRAV来替代RSP_TYPE_INTRAUV数据类型。然后,如果相应的RSP_intraU_flag或RSP_intraV_flag为真,则将发送RSP索引集合。
在解码器处,根据适用的句法从比特流中提取RSP_delta_idx值。通过使用上述过程之一,解码器使用适用的预测和反向量化过程来重构RSP’的值。
从比特流中解码经熵编码的量化变换域系数。解码器通过使用重构的RSP’参数对量化变换域系数进行解量化来将量化变换域系数转换为重构变换系数。在关于解码器系数重构过程的以下描述中,不使用重构的RSP值的标记RSP’;取而代之地,为了简化起见,使用标记RSP。使用句法RSP[qP][DataType][i]来继续指定重构的RSP值。
为了该示例的目的,假设RSP参数是第一重构级别参数t和重构步长参数s。索引i=1指定第一量化级别参数t,索引i=2指定量化重构步长参数s。
具体地,两个RSP参数的语义定义是:
RSP[slice_qP][RSP_data_type_id][1]:该RSP参数确定解码器的第一重构级别(由t标记)。当7比特计算精度用于该参数t时,可以基于与当前片的给定量化步长qqP相对应的给定量化参数qP,按t/128*qqP来计算由RSP[slice_qP][RSP_data_type_id][1]确定的重构级别。
RSP[slice_qP][RSP_data_type_id][2]:该参数确定除第一重构级别之外的重构级别。它可以被称作重构步长(由s标记),表示将添加至t以确定除第一重构级别之外的重构级别的重构步长。例如,第二重构级别与t+s相对应,并且当7比特计算精度用于参数s和t时,可以按(t+s)/128*qqP来计算第二重构级别。
由uij给出经熵解码的索引(即,量化变换域系数u)。当如在片报头句法中规定地使用RSP参数时,解码器由此根据下式生成重构的变换域系数dij
dij=(uij×Fa+Fb)>>Fc; (10)
其中,
Fa=LevelScale(nS)x(nS)[qP%6][i][j]×
RSP[slice_qP][RSP_data_type_id][2];
Fb=(RSP[slice_qP][RSP_data_type_id][1]-
RSP[slice_qP][RSP_data_type_id][2])×
LevelScale(nS)x(nS)[qP%6][i][j]+iAdd;
Fc=iShift+7
将理解的是,LevelScale(nS)x(nS)[qP%6][i][j]是当前在H.264/AVC和H.265/HEVC重构过程中发现的缩放操作,如本领域普通技术人员将理解的。
在一些实施例中,当设置RSP_slice_flag时,两个RSP参数可以不包括一些特殊情况。在这些情况下,两个RSP参数的语义定义为:
RSP[slice_qP][RSP_data_type_id][1]:该参数确定针对与RSP_data_type_id相对应的编码单元的解码器的第一重构级别,并且是(3<<(RSP_PARAM_PRECISION-2))与(5<<(RSP_PARAM_PRECISION-2))之间的整数(包含端点),其中,RSP_PARAM_PRECISION是用于表示RSP参数的精度,其不小于2。当如上面在片报头句法中所规定地从片报头中读取参数RSP_delta_idx[slice_qP][RSP_data_type_id][1]时,如结合等式(9)所述地导出RSP[slice_qP][RSP_data_type_id][1](或等同地RSP’[slice_qP][RSP_data_type_id][1],如上所述),其不应当等于相应参数RSP[slice_qP][RSP_data_type_id][2](参见下面的定义)。当未从片报头读取参数RSP_delta_idx[slice_qP][RSP_data_type_id][1]时(例如,当未设置RSP_slice_flag或相应的RSP_data_type_flag时),RSP[slice_qP][RSP_data_type_id][1]被设置为默认值(1<<RSP_PARAM_PRECISION)。
RSP[slice_qP][RSP_data_type_id][2]:该参数确定除第一重构级别之外的重构级别,并且是(3<<(RSP_PARAM_PRECISION-2))与(5<<(RSP_PARAM_PRECISION-2))之间的整数(包含端点)。它可以被称作重构步长,表示被添加至第一重构级别以确定第二重构级别以及第二重构级别以上的重构级别的重构步长。当如上面在片报头句法中所规定地从片报头中读取参数RSP_delta_idx[slice_qP][RSP_data_type_id][2]时,如结合等式(9)所述地导出RSP[slice_qP][RSP_data_type_id][2](或者等同地RSP’[slice_qP][RSP_data_type_id][2],如上所述),其不应当等于(1<<RSP_PARAM_PRECISION)。当未从片报头读取参数RSP_delta_idx[slice_qP][RSP_data_type_id][2]时(例如,当未设置RSP_slice_flag或相应的RSP_data_type_flag时),RSP[slice_qP][RSP_data_type_id][2]被设置为默认值(1<<RSP_PARAM_PRECISION)。
在另一实施例中,缩放操作还可以涉及因子LevelScalePerPred(nS)x(nS)[i][j],其中,LevelScalePerPred(nS)x(nS)是大小为(nS)x(nS)的矩阵。也即是说,
Fa=LevelScale(nS)x(nS)[qP%6][i][j]x
LevelScalePerPred(nS)x(nS)[i][j]×
RSP[slice_qP][RSP_data_type_id][2];
根据在与量化变换系数uij相对应的位置(i,j)处的预测采样p的变换系数来确定因子LevelScalePerPred(nS)x(nS)[i][j]。这种缩放可以改善重构采样的视觉质量,这是因为它取决于p在变换域中的能量分布。例如,LevelScalePerPred(nS)x(nS)[i][j]可以与一乘积成反比,该乘积是预测p在变换域中的能量与取决于帧、片或定义的编码单元组的平均预测能量的值的乘积。
现在参照图10,图10以流程图的形式示出了用于对压缩数据的比特流进行解码的示例性方法300。
在操作302中,解码器从比特流中提取RSP数据。广义上讲,从比特流中提取RSP参数;但是将理解的是,可以在将参数插入到比特流中之前对参数进行预测、量化和编码。因此,在操作304中,解码器根据在操作302中提取的RSP数据来重构RSP参数(如果需要的话)。根据前面的描述,将理解的是,在一些实施例中,RSP参数可以包括第一量化级别参数t和量化重构步长参数s。在其他实施例中,可以使用其他参数。还将清楚的是,可以针对所有分量提供单个RSP参数集合,或者针对亮度分量和色度分量提供单独的RSP参数,或者针对帧间编码数据和帧内编码数据提供单独的RSP参数,或者针对亮度内数据、亮度间数据、色度内数据和色度间数据提供单独的RSP参数。根据关于示例性实施例的前述描述可以理解其他布置。
还将理解的是,RSP数据可以被称作或标记为原始字节序列有效载荷(RBSP)中的一个或多个“句法元素”。RBSP是包含封装在网络抽象层(NAL)单元中的整数个字节的句法结构,其中,NAL单元可以包含数据类型指示和一个或多个RBSP。还设想比特流中的数据的其他结构,具体地,将RSP数据封装在比特流中的各个数据结构内。将清楚的是,操作302可以包括从NAL单元和/或RBSP和/或比特流中的其他数据结构中提取RSP数据。
在操作306中,解码器对压缩数据进行解码,以恢复量化变换系数uij(即,索引)。在操作308中,解码器使用重构的RSP参数来重构变换系数。在一个示例性实现中,解码器使用诸如结合等式(9)所述的过程等的过程。
在另一个实施例中,解码器可以根据下式生成重构的变换域系数dij
dij=sgn(uij)×(abs(uij)×Fa+Fb)>>Fc;
其中,
Fa=LevelScale(nS)x(nS)[qP%6][i][j]×
RSP[slice_qP][RSP_data_type_id][2];
Fb=(RSP[slice_qP][RSP_data_type_id][1]-
RSP[slice_qP][RSP_data_type_id][2])×
LevelScale(nS)x(nS)[qP%6][i][j]+iAdd;
Fc=iShift+7
其中,sgn()是符号函数,并且abs()返回其输入的绝对值。注意,LevelScale(nS)x(nS)[qP%6][i][j]可以被降级为LevelScale(nS)x(nS)[qP%6],其独立于索引i和j。
在另一实施例中,解码器可以根据下式生成重构的变换域系数dij
将理解的是,在一些实施例中,可以在数学上一起执行反向量化过程和逆变换过程。因此,整个过程的输出可以是重构的残差(例如,经反向量化、逆变换的系数)。
简化一
由下式给出qP和H.264/AVC和当前HEVC开发中的52个量化步长之间的映射:
双精度型qQP[52]={0.625,0.6875,0.8125,0.875,1.000,
1.125,1.250,1.375,1.625,1.750,2.000,
2.250,2.500,2.7500,3.250,3.500,4.000,
4.500,5.000,5.500,6.500,7.000,8.000,
9.000,10.000,11.000,13.000,14.0000,16.000,
18.000,20.000,22.000,26.000,28.000,32.000,
36.000,40.000,44.000,52.000,56.000,64.000,
72.0000,80.000,88.000,104.000,112.000,128.000,
144.000,l60.000,176.000,208.000,224.0000};
上述过程的一个可能的简化是在编码器处确定新的量化重构步长s,并且将其取整至与现有的52个qQP步长集合接近的步长。例如,可以按下式计算s:
注意,这与等式(3)相同,但是范围包括i≥1。然后,可以按下式计算期望的重构步长qnext
qnext=s/128·qQP[qPused]
其中,Pused是片的当前qP,因此qQP给出了在当前片中实际使用以量化变换域系数的量化步长。可以通过按下式使用q阵列将期望的重构步长qnext映射回量化参数来找到重构qPnext
当针对一个片仅发送一个qPnext时,可以在无需改变当前HEVC的任何句法的情况下发送qPnext。然而,因为亮度分量和色度分量的统计数据完全不同,因此如果针对不同类型的数据(例如,亮度和色度)计算等式(11)并且发送相应的qPnext以由亮度和色度使用,则可以实现一些额外增益。
简化二
在另一示例中,通过相应的亮度和色度量化参数(qP):qPY和qPUV来分别表示亮度参数和色度参数的RSP。在HEVC中描述的当前片报头中,发送句法元素slice_qp_delta以指定qPY的初始值。因此,可以修改句法以提供要在片报头中发送的句法元素slice_chroma_qp_delta,其用于指定QPUV的初始值。
该示例中的句法元素slice_chroma_qp_delta指定要用于片中的所有宏块的qPUV的初始值,直到被编码单元层中的cu_qp_delta的值修改为止。可以按下式计算片的初始qPUV量化参数:
SliceQPC=SliceQPy+slice_chroma_qp_delta
可以限制slice_chroma_qp_delta的值,使得SliceQPC处于范围一QpBdOffsetC至+51内(包含端点)。
可以按下式导出qPUV的值:
QPC
(((QPC,PRED+cu_qp_delta+52+2*QpBdOffsetC)%(52+QpBdOffsetC))-QpBdOffsetC
其中,QPC,PRED是色度量化参数QPC的预测值,其可以根据当前片或先前片中的预先解码的编码单元的亮度或色度量化参数导出。在一个示例中,可以根据当前片中的编码单元的左侧相邻量化组的色度量化参数来导出QPC,PRED。如果当前片中的左侧相邻量化组不可用,则可以根据当前片中按解码顺序的前一量化组的色度量化参数导出QPC,PRED。对于片中的编码单元的第一量化组,可以首先将QPC,PRED设置为等于每一个片的起始处的SliceQPC
可以按Qp’C=QPC+QpBdOffsetC导出Qp’C的值。
现在参照图11,图11示出了编码器900的示例性实施例的简化框图。编码器900包括:处理器902、存储器904和编码应用906。编码应用906可以包括存储在存储器904中并包含指令的计算机程序或应用,所述指令用于将处理器902配置为执行诸如本文描述的步骤或操作等的步骤或操作。例如,编码应用906可以编码并输出根据本文描述的自适应重构级别过程所编码的比特流。输入数据点可以涉及可以是有损数据压缩方案的对象的音频、图像、视频或其他数据。编码应用906可以包括量化模块908,量化模块908被配置为确定划分结构的每一个索引的自适应重构级别。编码应用906可以包括熵编码器,熵编码器被配置为对自适应重构级别或RSP数据以及其他数据进行熵编码。将理解的是,编码应用906可以存储在计算机可读介质上,例如,压缩光盘、闪存设备、随机存取存储器、硬盘驱动器等等。
现在还参照图12,图12示出了解码器1000的示例性实施例的简化框图。解码器1000包括:处理器1002、存储器1004和解码应用1006。解码应用1006可以包括存储在存储器1004中并包含指令的计算机程序或应用,所述指令用于将处理器1002配置为执行诸如本文描述的步骤或操作等的步骤或操作。解码应用1006可以包括熵解码器和解量化模块1010,熵解码器和解量化模块1010被配置为获得RSP数据或自适应重构级别,并使用获得的数据来重构变换域系数或其他此类数据点。将理解的是,解码应用1006可以存储在计算机可读介质上,例如,压缩光盘、闪存设备、随机存取存储器、硬盘驱动器等等。
将清楚的是,根据本申请的解码器和/或编码器可以在多种计算设备中实现,包括但不限于服务器、适当编程的通用计算机、音频/视频编码和回放设备、电视机顶盒、电视广播设备和移动设备。可以通过包含指令的软件来实现解码器或编码器,所述指令用于将处理器配置为执行本文描述的功能。软件指令可以存储在任何合适的非瞬时计算机可读存储器上,包括CD、RAM、ROM、闪存等等。
将理解的是,可以使用标准计算机编程技术和语言来实现本文描述的编码器以及实现所描述的用于配置编码器的方法/过程的模块、例程、进程、线程或其他软件组件。本申请不限于特定处理器、计算机语言、计算机编程惯例、数据结构、其他这种实现细节。本领域技术人员将认识到,可以将所描述的过程实现为存储在易失性或非易失性存储器中的计算机可执行代码的一部分、专用集成芯片(ASIC)的一部分等。
可以对所描述的实施例进行某些调整和修改。因此,上述实施例被认为是示意性而非限制性。
计算机程序列表附录
举例说明而非限制地,附录包含提供各个操作的示例性实现的示例性代码子例程和/或列表。附图的内容形成了本说明书的一部分。在附录中找到的具体例程包括:
1、RSP计算:用于基于来自前一片的数据来确定片的RSP的例程;
2、将新级别应用于deQ:使用自适应重构级别进行解量化
3、数据收集:重构级别数据收集例程;
4、RSP发送:用于对片报头中的RSP数据进行编码的例程;以及
5、RSP接收:用于对来自片报头中的RSP数据进行解码的例程。
将清楚的是,这些示例性例程和代码列表是在实现根据本申请的一个实施例的编码器和/或解码器时使用的代码列表的各个部分的示例,而不是用于编码器或解码器的完整的处理器可执行代码列表。
附录
用于使用非均匀重构空间进行数据压缩的方法和设备
示例性计算机程序列表
RSP计算
Void TComTrQuant::ComputeRSP(TComSlice*pcSlice,Int Qpused,Int Qpnext,Int QpNorminal,Int type)

Claims (14)

1.一种用于对视频数据进行编码的方法,所述视频数据包括量化变换系数,所述方法包括:
使用量化参数对变换系数进行量化以获得量化变换系数,所述量化参数是从包含量化参数的集合中选择的,以及
基于所述量化变换系数来生成重构空间参数,其中所述重构空间参数包括第一重构级别和其他重构级别的重构步长,其中所述其他重构级别可以通过将重构步长与第一重构级别相加来确定,所述第一重构级别不等于所述重构步长,所述重构步长不等于量化参数指定的量化步长;
对量化变换系数进行熵编码;以及
生成包含所编码的量化变换系数和重构空间参数的比特流。
2.根据权利要求1所述的方法,其中,生成重构空间参数包括选择亮度分量的重构空间参数。
3.根据权利要求1所述的方法,其中,生成重构空间参数包括选择色度分量的重构空间参数。
4.根据权利要求2所述的方法,其中,在所述比特流中使用slice_qp_delta来表示亮度分量的重构空间参数。
5.根据权利要求3所述的方法,其中,在所述比特流中使用slice_chroma_qp_delta来表示色度分量的重构空间参数。
6.根据权利要求1所述的方法,其中,生成重构空间参数包括:预测所述重构空间参数,确定所述预测的误差,对所述误差进行量化,以及对量化误差进行编码,并且生成所述比特流包括:将编码的量化误差插入到片报头中。
7.根据权利要求6所述的方法,其中,所述量化变换系数针对当前片,并且预测所述重构空间参数与来自另一片的数据无关。
8.一种用于对编码单元组的变换系数进行编码的编码器,所述编码器包括:
处理器;
存储器;以及
编码应用,所述编码应用存储在所述存储器中并且包含用于将所述处理器配置为执行根据权利要求1至7中任意一项所述的方法的指令。
9.一种对编码数据的比特流进行解码的方法,所述数据包括从多个定义的量化步长中指定量化步长的量化参数,所述方法包括:
从所述比特流中提取重构空间参数,其中重构空间参数包括第一重构级别以及其他重构级别的重构步长,其中所述其他重构级别可以通过将重构步长与第一重构级别相加来确定,所述第一重构级别不等于所述重构步长,并且所述重构步长不等于所述量化参数指定的量化步长;
对所述编码数据进行解码,以获得多个量化变换系数;以及
基于所述第一重构级别和所述重构步长对每一个量化变换系数进行解量化,以生成重构变换系数。
10.根据权利要求9所述的方法,其中,所述重构步长不等于2m,其中,m是用于表示所述重构步长的精度的比特数量。
11.根据权利要求9或权利要求10所述的方法,其中,解量化包括:基于所述第一重构级别与所述重构步长之差来计算第一级别偏差,并且其中,如果所述量化变换系数为非零,则根据所述第一级别偏差加上所述量化变换系数与所述重构步长的乘积来计算所述重构变换系数。
12.根据权利要求9至10中任意一项所述的方法,其中,提取包括:提取亮度分量的第一重构空间参数集合,并且提取色度分量的第二重构空间参数集合,并且解量化包括:使用所述第一重构空间参数集合来生成亮度值的重构变换系数,并且使用所述第二重构空间参数集合来生成色度值的重构变换系数。
13.根据权利要求9至10中任意一项所述的方法,其中,从所述比特流中提取重构空间参数包括:提取重构空间增量索引,并且基于所述重构空间增量索引和相应的重构空间参数预测来重构所述重构空间参数。
14.一种用于对编码数据的比特流进行解码的解码器,所述解码器包括:
处理器;
存储器;以及
解码应用,所述解码应用存储在所述存储器中并且包含用于将所述处理器配置为执行根据权利要求9至13中任意一项所述的方法的指令。
CN201280059215.XA 2011-09-30 2012-10-01 用于使用非均匀重构空间进行数据压缩的方法和设备 Active CN103959786B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP11183606.0A EP2575364B1 (en) 2011-09-30 2011-09-30 Methods and devices for data compression using a non-uniform reconstruction space
EP11183606.0 2011-09-30
PCT/CA2012/050685 WO2013044393A1 (en) 2011-09-30 2012-10-01 Methods and devices for data compression using a non-uniform reconstruction space

Publications (2)

Publication Number Publication Date
CN103959786A CN103959786A (zh) 2014-07-30
CN103959786B true CN103959786B (zh) 2018-08-07

Family

ID=44799688

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280059215.XA Active CN103959786B (zh) 2011-09-30 2012-10-01 用于使用非均匀重构空间进行数据压缩的方法和设备

Country Status (5)

Country Link
EP (1) EP2575364B1 (zh)
KR (1) KR101613381B1 (zh)
CN (1) CN103959786B (zh)
CA (1) CA2848848C (zh)
WO (1) WO2013044393A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9628803B2 (en) * 2014-11-25 2017-04-18 Blackberry Limited Perceptual image and video coding
KR20190056888A (ko) 2017-11-17 2019-05-27 삼성전자주식회사 비디오 부호화 장치 및 방법
CN108573287B (zh) * 2018-05-11 2021-10-29 浙江工业大学 一种基于深度神经网络的图像编解码器的训练方法
US11076152B2 (en) * 2019-03-18 2021-07-27 Sony Group Corporation Quantization step parameter for point cloud compression

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3298915B2 (ja) * 1991-12-28 2002-07-08 ソニー株式会社 符号化装置
EP1296524A1 (en) * 2001-09-20 2003-03-26 STMicroelectronics S.r.l. Process and apparatus for the compression of digital video signals, a system and a computer program product therefor
US20070147497A1 (en) * 2005-07-21 2007-06-28 Nokia Corporation System and method for progressive quantization for scalable image and video coding
EP1830573A1 (en) * 2006-03-02 2007-09-05 Thomson Licensing Method and apparatus for determining in picture signal encoding the bit allocation for groups of pixel blocks in a picture
US8005140B2 (en) 2006-03-17 2011-08-23 Research In Motion Limited Soft decision and iterative video coding for MPEG and H.264
JP4360379B2 (ja) * 2006-05-16 2009-11-11 ソニー株式会社 画像処理装置及び画像処理方法、プログラム及び記録媒体
US8498335B2 (en) 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
KR101518237B1 (ko) * 2008-09-01 2015-05-15 삼성전자주식회사 영상의 역양자화 방법 및 장치, 복호화 방법 및 장치
CN101577825B (zh) * 2009-05-15 2011-09-07 武汉大学 压缩视频超分辨率中交互式量化噪声计算方法
JP5115519B2 (ja) * 2009-05-26 2013-01-09 富士通株式会社 動画像復号装置、動画像復号方法及び動画像復号用コンピュータプログラム

Also Published As

Publication number Publication date
CN103959786A (zh) 2014-07-30
EP2575364B1 (en) 2020-03-18
WO2013044393A1 (en) 2013-04-04
CA2848848C (en) 2017-05-09
KR20140072179A (ko) 2014-06-12
EP2575364A1 (en) 2013-04-03
KR101613381B1 (ko) 2016-04-18
CA2848848A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
US10178391B2 (en) Methods and devices for data compression using a non-uniform reconstruction space
US9282329B2 (en) Methods and devices for data compression using offset-based adaptive reconstruction levels
CN101946515B (zh) Cabac译码器的二回合量化
KR101035754B1 (ko) 동화상 부호화/복호화 방법 및 장치
CN101911702B (zh) 针对支持cabac的视频编码过程而量化视频块的系数的方法和装置
RU2734800C2 (ru) Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
US20060209952A1 (en) Image encoding/decoding method and apparatus therefor
CN105635735A (zh) 感知图像和视频编码
CN104041035A (zh) 用于复合视频的无损编码及相关信号表示方法
CN103782598A (zh) 用于无损编码的快速编码方法
CN104041038A (zh) 用于编码和解码图像的方法、编码和解码设备以及相应的计算机程序
WO2011124676A1 (en) Weighted motion compensation of video
CN110650349B (zh) 一种图像编码方法、解码方法、编码器、解码器及存储介质
KR20100079037A (ko) 비디오 영상 부호화 방법 및 장치
CN103959786B (zh) 用于使用非均匀重构空间进行数据压缩的方法和设备
KR102513756B1 (ko) 이미지 인코딩 방법, 디코딩 방법, 인코더, 디코더 및 저장매체
US20120008680A1 (en) Methods and devices for data compression using adaptive reconstruction levels
RU2782400C2 (ru) Способ кодирования и декодирования изображений, устройство кодирования и декодирования и соответствующие компьютерные программы
CA2803202C (en) Methods and devices for data compression using adaptive reconstruction levels
CN113132734A (zh) 一种编码、解码方法、装置及其设备
GB2492395A (en) Entropy encoding and decoding methods using quantized coefficient alphabets restricted based on flag magnitude
JP2016146602A (ja) 映像符号化装置、方法及びプログラム
KR20120065094A (ko) 비디오 영상의 부호화 방법 및 이를 수행하는 비디오 영상 부호화 장치
KR20100138735A (ko) 문맥정보 기반의 적응적인 포스트 필터를 이용한 동영상 부호화/복호화 장치 및 그 방법

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