CN107409212A - 用于编码和解码的使用变换系数的逐渐更新 - Google Patents

用于编码和解码的使用变换系数的逐渐更新 Download PDF

Info

Publication number
CN107409212A
CN107409212A CN201680006034.9A CN201680006034A CN107409212A CN 107409212 A CN107409212 A CN 107409212A CN 201680006034 A CN201680006034 A CN 201680006034A CN 107409212 A CN107409212 A CN 107409212A
Authority
CN
China
Prior art keywords
picture
coefficient
subset
block
conversion coefficient
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
CN201680006034.9A
Other languages
English (en)
Other versions
CN107409212B (zh
Inventor
朱立华
S·阿哈荣
E·拉尔
B·A·库马
J·E·范埃斯特伦
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing 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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107409212A publication Critical patent/CN107409212A/zh
Application granted granted Critical
Publication of CN107409212B publication Critical patent/CN107409212B/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/115Selection of the code volume for a coding unit prior to 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/146Data rate or code amount at the encoder output
    • 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/18Methods 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 a set of transform coefficients
    • 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/187Methods 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 a scalable video layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model

Abstract

提供了利用变换系数级逐渐更新进行编码和/或解码视频和/或图像内容的创新。可以通过编码(或解码)图片序列中的每个图片的块、宏块或其它编码单元的变换系数的不同子集,来应用变换系数级逐渐更新。例如,可以利用第一图片编码第一图片的块的变换系数的第一子集,可以利用第二图片编码第二图片的块的变换系数的第二子集,等等。解码器可以通过接收变换系数的额外子集而以提高的质量来重构图片。

Description

用于编码和解码的使用变换系数的逐渐更新
背景技术
工程师使用压缩(也称作源编码或源译码)来减少数字视频的比特率。压缩通过将视频信息转换为较低比特率的形式来减少存储和传输所述信息的成本。解压(也称作解码)从压缩形式重新构造原始信息的版本。“编码解码器”是编码器/解码器系统。
在过去的二十年里,已经采用了各种视频编码解码器标准,包括ITU-T H.261、H.262(MPEG-2或ISO/IEC 13818-2)、H.263和H.264(MPEG-4AVC或ISO/IEC 14496-10)标准,MPEG-1(ISO/IEC 11172-2)和MPEG-4视觉(ISO/IEC 14496-2)标准,以及SMPTE 421M标准。最近,批准了HEVC标准(ITU-T H.265或ISO/IEC 23008-2)。当前在开发HEVC标准的扩展(例如,用于可扩展的视频编码/解码,在采样比特深度或色度采样率方面具有较高保真度的情况下用于视频的编码/解码,或用于多视图编码/解码)。视频编码解码器标准通常定义已编码视频比特流的语法,当在编码和解码中使用特定特征时在比特流中详述参数。在许多情况下,视频编码解码器标准还提供关于解码器应该执行以实现解码的一致结果的解码操作的细节。除了编码解码器标准外,各种专有编码解码器格式定义用于已编码视频比特流的语法和对应解码操作的其它选项。
编码和解码特定类型的内容(例如,屏幕内容)可能呈现与编码正常视频内容不同的挑战。例如,屏幕内容可以包括类似内容的区域(例如,具有相同颜色或平滑梯度的大的图形区域)以及重复内容的区域。屏幕内容还可以包括从一帧到下一帧保持相同的内容、内容区域。利用正常视频编码技术对这种内容进行编码和解码可能(例如,通过产生压缩失真)产生低效且降低质量的结果
发明内容
提供该“发明内容”是为了以简化形式引入在下文“具体实施方式”中进一步描述的概念的选择。该“发明内容”不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
描述了改善视频和/或图像数据的编码和/或解码的效率的技术。在一些创新中,利用变换系数执行逐渐更新。例如,可以通过仅编码(或解码)给定图片的块、宏块或其它编码单元(例如,帧或半帧(field))的变换系数的子集来应用变换系数级的逐渐更新。这样,可以与第一图片一起发送块(或其它编码单元)的变换系数的第一子集,可以在第二图片中发送第二子集(表示处于不同于第一子集的位置处的变换系数),以此类推(例如,直到已经发送了所有的变换系数为止)。可以基于可用带宽(例如,基于可用带宽模型,其也可以考虑所需的量化参数值),来确定用于编码(或解码)的变换系数的数目。解码器可以通过接收变换系数的额外子集来在提高质量的情况下重构图片。
本文描述的技术可以应用于屏幕内容的编码。屏幕内容指的是计算机生成的视频和/或图像内容(例如,计算机生成的文本、图形和/或其它人造内容)。屏幕内容的例子是计算机桌面图形用户界面的图像,包括文本、图标、菜单、窗口和/或其它计算机文本和图形。本文描述的技术也可以应用于除屏幕内容以外的内容。
根据后续参考附图进行的详细描述,本发明的上述和其它目的、特征和优点将变得更加明显。
附图说明
图1是可以实现一些描述的实施例的示例性计算系统的图。
图2a和2b是可以实现一些描述的实施例的示例性网络环境的图。
图3是可以结合其实现一些描述的实施例的示例性编码器系统的图。
图4是可以结合其实现一些描述的实施例的示例性解码器系统的图。
图5a和5b是示出了可以结合其实现一些描述的实施例的示例性视频编码器的图。
图6是示出了可以结合其实现一些描述的实施例的示例性解码器系统的图。
图7是示出了变换系数的块的示例性扫描模式的图。
图8是示出了根据之字形扫描模式在帧序列上针对特定块的变换系数级的逐渐更新的例子的图。
图9是示出了根据水平扫描模式在帧序列上针对特定块的变换系数级的逐渐更新的例子的图。
图10是示出了图片的块的已编码块数据的图,包括系数截止标志。
图11是利用变换系数级的逐渐更新来编码图片的示例性方法的流程图。
图12是利用变换系数级的逐渐更新来解码图片的示例性方法的流程图。
图13是示出了对图片序列上的块组进行渐进更新的例子的图。
具体实施方式
详细描述呈现利用变换系数逐渐更新的各种创新。例如,可以通过仅编码(或解码)给定图片的块、宏块或其它编码单元(例如,帧或半帧(field))的变换系数的子集来应用变换系数级的逐渐更新。这样,可以与第一图片一起发送块、宏块或其它编码单元的变换系数的第一子集,可以在第二图片中发送第二子集,以此类推(例如,直到已经发送了所有的变换系数为止)。可以基于可用带宽(例如,基于可用带宽模型,其也可以考虑所需的量化参数值),来确定用于编码(或解码)的变换系数的数目。还提出了针对图片序列上的块组进行渐进更新的创新。
这些创新中的一些提高了编码和/或解码数字图片内容(例如,图像内容和/或视频内容)的效率和/或质量。例如,可以应用逐渐更新以产生符合可用带宽的比特流,并且随着附加变换系数被编码(或解码),所述比特流提供逐渐提高的图片质量。
本文描述的技术可以应用于屏幕内容的编码。屏幕内容指的是计算机生成的视频和/或图像内容(例如,计算机生成的文本、图形和/或其它人造内容)。屏幕内容的例子是计算机桌面图形用户界面的图像,包括文本、图标、菜单、窗口和/或其它计算机文本和图形。本文描述的技术也可以应用于除屏幕内容以外的内容(例如,其它类型的数字视频和/或图像内容)。
尽管本文描述的操作在各处被描述为由视频编码器或视频解码器执行,但是在许多情况下,可以由另一类型的媒体处理工具(例如,数字图像或数字图片编码器、数字图像或数字图片解码器)执行这些操作。
参考特定于HEVC标准的语法元素和操作来说明本文描述的一些创新。例如,参考HEVC标准的草拟版本JCTVC-N1005-“High Efficiency Video Coding(HEVC)RangeExtensions Text Specification:Draft 4”,JCTVC-N1005,2013年7月。也可以针对其它标准或格式实现本文描述的创新。
更一般地,本文描述的例子各种替代也是可能的。例如,可以通过改变所描述的方法动作的次序,通过分割、重复或省略某些方法动作等来改变本文描述的一些方法。所公开技术的各个方面可以组合使用或单独使用。不同的实施例使用所描述的一个或多个创新。本文描述的一些创新解决背景技术中提到的一个或多个问题。通常,给定的技术/工具并不解决所有这些问题。
I.示例性计算系统
图1示出了可以实现所描述的若干创新的合适的计算系统(100)的一般化示例。计算系统(100)不旨在暗示对使用或功能的范围的任何限制,因为创新可以在多种通用或专用计算系统中被实现。
参考图1,计算系统(100)包括一个或多个处理单元(110、115)和存储器(120、125)。处理单元(110、115)执行计算机可执行指令。处理单元可以是通用中央处理单元(“CPU”),专用集成电路(“ASIC”)中的处理器或任何其它类型的处理器。在多处理系统中,多个处理单元执行计算机可执行指令以增加处理能力。例如,图1示出了中央处理单元(110)以及图形处理单元或协处理单元(115)。有形存储器(120、125)可以是易失性存储器(例如,寄存器、高速缓存、RAM),非易失性存储器(例如,ROM、EEPROM、闪存等),或两者的某种组合,其可由处理单元访问。存储器(120、125)以适于由处理单元执行的计算机可执行指令的形式存储实现一个或多个创新的软件(180),所述软件(180)用于利用变换系数的逐渐更新和/或利用块组的渐进更新。
计算系统可以具有额外的特征。例如,计算系统(100)包括存储设备(140),一个或多个输入设备(150),一个或多个输出设备(160)以及一个或多个通信连接(170)。诸如总线、控制器或网络的互连机构(未示出)互连计算系统(100)的部件。通常,操作系统软件(未示出)为在计算系统(100)中执行的其它软件提供操作环境,并且协调计算系统(100)的部件的活动。
有形存储设备(140)可以是可移除的或不可移除的,并且包括磁盘、磁带或磁带盒、CD-ROM、DVD或可以用于存储信息并且可以在计算系统(100)中被访问的任何其它介质。存储设备(140)存储实现本文描述的一个或多个创新的软件(180)的指令。
输入设备(150)可以是触摸输入设备(例如键盘、鼠标、笔或轨迹球)、语音输入设备、扫描设备、或向计算系统(100)提供输入的另一设备。对于视频,输入设备(150)可以是接受模拟或数字形式的视频输入的摄像机、视频卡、TV调谐器卡或类似设备,或者是读取视频采样到计算系统(100)中的CD-ROM或CD-RW。输出设备(160)可以是提供来自计算系统(100)的输出的显示器、打印机、扬声器、CD写入器或另一设备。
通信连接(170)支持通过通信介质到另一计算实体的通信。通信介质传送诸如计算机可执行指令、音频或视频输入或输出的信息或已调制数据信号中的其它数据。已调制数据信号是以将信息编码在信号中的方式来设置或改变信号的特征中的一个或多个的信号。通过例子而非限制,通信介质可以使用电、光、RF或其它载波。
任何所公开的创新可以被实现为计算机可执行指令或计算机程序产品,其存储在一个或多个计算机可读存储介质上并在计算设备(例如,任何可用的计算设备,包括包含计算硬件的智能电话或其它移动设备)上执行。计算机可读存储介质是可以在计算环境中被访问的任意可用有形介质(例如,诸如DVD或CD的一个或多个光学介质盘,易失性存储器部件(例如DRAM或SRAM),或非易失性存储器部件(例如,闪存或硬驱动))。通过例子且参考图1,计算机可读存储介质包括存储器1020和1025以及存储设备1040。术语“计算机可读存储介质”不包括信号和载波。此外,术语“计算机可读存储介质”不包括通信连接(例如,170)。
可以在计算机可执行指令的一般上下文中描述创新,诸如包括在程序模块中的那些指令,其在计算系统中在目标实际或虚拟处理器上执行。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、部件、数据结构等。程序模块的功能可以在程序模块之间组合或分开,如在各种实施例中所希望的。程序模块的计算机可执行指令可以在本地或分布式计算系统内执行。
术语“系统”和“设备”在本文中可互换使用。除非上下文另有明确指示,否则这两个术语都不暗示对计算系统或计算设备类型的任何限制。一般而言,计算系统或计算设备可以是本地的或分布式的,并且可以包括专用硬件和/或通用硬件与实现本文描述的功能的软件的任何组合。
还可以使用被配置为执行任何所公开的方法的专用计算硬件来实现所公开的方法。例如,所公开的方法可以通过集成电路(例如,ASIC(例如ASIC数字信号处理单元(“DSP”)、图形处理单元(“GPU”)或可编程逻辑器件(“PLD”),例如现场可编程门阵列(“FPGA”))来实现,所述集成电路被专门设计或配置为实现任何所公开的方法。
为了呈现的缘故,详细描述使用如“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是由计算机执行的操作的高级抽象,不应与人类执行的行为混淆。与这些术语相对应的实际计算机操作取决于实现方式而变化。
II.示例性网络环境
图2a和2b示出了包括视频编码器(220)和视频解码器(270)的示例网络环境(201、202)。编码器(220)和解码器(270)利用适当的通信协议通过网络(250)连接。网络(250)可以包括互联网或另一计算机网络。
在图2a示出的网络环境(201)中,每个实时通信(“RTC”)工具(210)都包括用于双向通信的编码器(220)和解码器(270)。给定的编码器(220)可以产生符合HEVC标准、SMPTE421M标准、ISO-IEC 14496-10标准(也称为H.264或AVC)、另一标准或专有格式的变型或扩展的输出,其中对应的解码器(270)接受来自编码器(220)的已编码数据。双向通信可以是视频会议、视频电话呼叫或其它双方通信场景的一部分。虽然图2a中的网络环境(201)包括两个实时通信工具(210),但网络环境(201)可以替代地包括参与多方通信的三个或更多个实时通信工具(210)。
实时通信工具(210)管理编码器(220)进行的编码。图3示出了可以包含于实时通信工具(210)中的示例性编码器系统(300)。替代地,实时通信工具(210)使用另一编码器系统。实时通信工具(210)还管理解码器(270)进行的解码。图4示出了可以包含于实时通信工具(210)中的示例性解码器系统(400)。替代地,实时通信工具(210)使用另一解码器系统。
在图2b示出的网络环境(202)中,编码工具(212)包括编码器(220),其编码视频以传送到包括解码器(270)的多个回放工具(214)。可以为视频监控系统、网络摄像机监视系统、远程桌面会议呈现或其中视频被编码并从一个位置被发送到一个或多个其它位置的其它场景提供单向通信。虽然图2b中的网络环境(202)包括两个回放工具(214),但网络环境(202)可以包括更多或更少的回放工具(214)。一般而言,回放工具(214)与编码工具(212)进行通信,以确定用于回放工具(214)接收的视频流。回放工具(214)接收流,将接收到的已编码数据缓存适当的时段,并开始解码和回放。
图3示出了可以包含于编码工具(212)中的示例编码器系统(300)。替代地,编码工具(212)使用另一编码器系统。编码工具(212)还可以包括用于管理与一个或多个回放工具(214)的连接的服务器侧控制器逻辑。图4示出了可以包含于回放工具(214)中的示例性解码器系统(400)。替代地,回放工具(214)使用另一解码器系统。回放工具(214)还可以包括用于管理与编码工具(212)的连接的客户端侧控制器逻辑。
III.示例性编码器系统
图3是可以结合其实现一些描述的实施例的示例性编码器系统(300)的图。编码器系统(300)可以是能够以多种编码模式中的任何一种操作的通用编码工具,所述编码模式例如是用于实时通信的低时延编码模式、代码转换模式、以及用于从文件或流回放的媒体的常规编码模式,或者它可以是适用于一个这样的编码模式的专用编码工具。编码器系统(300)可以被实现为操作系统模块、应用库的一部分或独立应用。总的来说,编码器系统(300)从视频源(310)接收源视频帧序列(311),并产生已编码数据以输出到信道(390)。输出到信道的已编码数据可以包括使用变换系数级的逐渐更新和/或使用块组的渐进更新来编码的内容。
视频源(310)可以是摄像机、调谐器卡、存储介质或其它数字视频源。视频源(310)以例如每秒30帧的帧速率产生视频帧序列。如本文使用的,术语“帧”通常指的是源、编码或重构的图像数据。对于渐进视频,帧是渐进视频帧。对于交织的视频,在示例性实施例中,在编码之前对交织的视频帧进行被去交织。替代地,两个互补的交织的视频半帧被编码为交织的视频帧或单独的半帧。除了表示渐进视频帧之外,术语“帧”或“图片”可以表示单个非配对视频半帧、互补视频半帧对、在给定时间表示视频对象的视频对象平面、或者较大图像中的感兴趣区域。视频对象平面或区域可以是包括场景的多个对象或区域的较大图像的一部分。
到达的源帧(311)被存储在包括多个帧缓冲存储区域(321、322、...、32n)的源帧临时存储器存储区域(320)中。帧缓冲器(321、322等)在源帧存储区域(320)中保存一个源帧。在帧缓冲器(321、322等)中存储了一个或多个源帧(311)之后,帧选择器(330)周期性地从源帧存储区域(320)选择单个源帧。帧选择器(330)选择的用于输入到编码器(340)的帧的次序可以不同于视频源(310)产生帧的次序,例如,帧可以按次序在前面,以便于时间上的后向预测。在编码器(340)之前,编码器系统(300)可以包括在编码之前执行所选择的帧(331)的预处理(例如,滤波)的预处理器(未示出)。预处理还可以包括将颜色空间转换成用于编码的主要和次要分量。通常,在编码之前,视频已被转换到诸如YUV的颜色空间,其中亮度(Y)分量的采样值表示亮度或强度值,色度(U,V)分量的采样值表示色差值。色度采样值可以被子采样到较低的色度采样率(例如,对于YUV 4:2:0格式),或者色度采样值可以具有与亮度采样值相同的分辨率(例如,对于YUV 4:4:4格式)。或者,视频可以以另一格式(例如RGB 4:4:4格式)被编码。
编码器(340)编码所选择的帧(331)以产生已编码帧(341),并且还产生存储器管理控制操作(“MMCO”)信号(342)或参考图片集(“RPS”)信息。如果当前帧不是已经被编码的第一帧,则当编码器(340)执行其编码过程时,可以使用已经存储于已解码帧临时存储器存储区域360中的一个或多个先前已编码/已解码的帧(369)。将这样存储的已解码帧(369)用作当前源帧(331)的内容的帧间预测的参考帧。一般地,编码器(340)包括执行编码任务的多个编码模块,例如分割成瓦片、内预测估计和预测、运动估计和补偿、频率变换、量化和熵编码。由编码器340执行的精确操作可以根据压缩格式而变化。输出的已编码数据的格式可以是HEVC格式、Windows Media视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)的变型或扩展或其它格式。
编码器(340)可以将帧划分成相同大小或不同大小的多个瓦片。例如,编码器(340)沿着瓦片行和瓦片列分割帧,瓦片行和瓦片列利用帧边界定义帧内瓦片的水平和垂直边界,其中每个瓦片是矩形区域。瓦片通常用来改进并行处理的选项。帧也可以被组织为一个或多个切片,其中切片可以是整个帧或帧的区域。切片可以独立于帧中的其它切片被解码,这改善了容错。为了编码和解码的目的,将切片或瓦片的内容进一步分割成块或其它采样集合。
对于根据HEVC标准的语法,编码器将帧(或切片或瓦片)的内容分割成编码树单元。编码树单元(“CTU”)包括被组织为亮度编码树块(“CTB”)的亮度采样值和被组织为两个色度CTB的对应色度采样值。CTU(及其CTB)的大小由编码器选择,可以是例如64x64、32x32或16x16的采样值。CTU包括一个或多个编码单元。编码单元(“CU”)具有亮度编码块(“CB”)和两个对应的色度CB。例如,具有64×64亮度CTB和两个64×64色度CTB(YUV 4:4:4格式)的CTU可以被分割为四个CU,每个CU包括32x32亮度CB和两个32x32色度CB,并且每个CU可能进一步被分割成更小的CU。或者,作为另一例子,具有64×64亮度CTB和两个32×32色度CTB(YUV 4:2:0格式)的CTU可以被分割成四个CU,每个CU包括32×32亮度CB和两个16×16色度CB,并且每个CU可能进一步被分割成更小的CU。可以在比特流中用信号通知CU的最小容许尺寸(例如8×8、16×16)。
一般地,CU具有诸如帧间或帧内的预测模式。CU包括用于用信号传递预测信息(例如预测模式细节等)和/或预测处理的一个或多个预测单元。预测单元(“PU”)具有亮度预测块(“PB”)和两个色度PB。对于帧内预测的CU,PU具有与CU相同的大小,除非CU具有最小的尺寸(例如8×8)。在该情况下,CU可以被分割成四个较小的PU(例如,如果最小的CU大小为8×8,则每个更小的PU为4×4)或者PU可以具有最小的CU大小,如CU的语法元素所指示的。CU还具有用于残差编码/解码的一个或多个变换单元,其中变换单元(“TU”)具有变换块(“TB”)和两个色度TB。帧内预测的CU中的PU可以包含单个TU(大小与PU相同)或多个TU。如本文使用的,根据上下文,术语“块”可以表示CU、CB、PB、TB或其它采样值集合。编码器决定如何将视频分割成CTU、CU、PU、TU等。
返回到图3,编码器表示根据来自帧(331)中的其它的先前重构采样值的预测的源帧(331)的帧内编码块。对于块的帧内空间预测,图片内估计器估计相邻的重构采样值到块中的外插。帧内预测估计器输出被熵编码的预测信息(例如帧内空间预测的预测模式(方向))。帧内预测预测器应用预测信息以确定帧内预测值。
对于本文描述的变换系数级的逐渐更新技术,编码器(340)可以使用帧的块的变换系数的子集对帧进行编码(例如,其中对系数截止标志进行编码以指示块的哪些变换系数是被编码的)。随后的帧可以对对应块的变换系数的其它子集进行编码(例如,根据扫描模式的次序的变换系数的下一部分)。
编码器(340)依据来自参考帧的预测来表示源帧(331)的帧间编码预测块。运动估计器估计块相对于一个或多个参考帧(369)的运动。当使用多个参考帧时,多个参考帧可以来自不同的时间方向或相同的时间方向。运动补偿的预测参考区域是用于为当前帧的采样块产生运动补偿的预测值的、参考帧中的采样区域。运动估计器输出诸如被熵编码的运动矢量信息的运动信息。运动补偿器将运动矢量应用于参考帧(369)以确定运动补偿的预测值。
编码器(340)的熵编码器压缩量化的变换系数值以及特定的边信息(例如,运动矢量信息、QP值、模式决策、参数选择)。特别地,熵编码器可以使用系数编码语法结构来压缩索引图的元素的数据。典型的熵编码技术包括Exp-Golomb编码,算术编码,差分编码,霍夫曼编码,游程长度编码,可变长度到可变长度(“V2V”)编码,可变长度到固定长度(“V2F“)编码,LZ编码,字典编码,概率间隔分割熵编码(”PIPE“),以及上述的组合。熵编码器可以对不同种类的信息使用不同的编码技术,并且可以在特定编码技术中的多个代码表中进行选择。
已编码帧(341)和MMCO/RPS信息(342)由解码过程仿真器(350)处理。解码过程仿真器(350)实现解码器的一些功能,例如,解码任务以重构参考帧。解码过程仿真器(350)使用MMCO/RPS信息(342)来确定是否需要重构和存储给定的已编码帧(341)以用作待编码的后续帧的帧间预测中的参考帧。如果MMCO/RPS信息(342)表示需要存储已编码帧(341),则解码过程仿真器(350)对接收已编码帧(341)并产生对应的已解码帧(351)的解码器进行的解码过程进行建模。这样,当编码器(340)使用了已经存储在已解码帧存储区域(360)中的已解码帧(369)时,解码过程仿真器(350)还使用来自存储区域(360)的已解码帧(369)作为解码过程的一部分。
已解码帧临时存储器存储区域(360)包括多个帧缓冲存储区域(361、362、…、36n)。解码过程仿真器(350)使用MMCO/RPS信息(342)来管理存储区域(360)的内容,以便识别具有不再被编码器(340)需要用作参考帧的帧的任何帧缓冲器(361、362等)。在对解码过程建模之后,解码过程仿真器(350)将新解码的帧(351)存储在已经以这种方式识别出的帧缓冲器(361、362等)中。
已编码帧(341)和MMCO/RPS信息(342)被缓存在临时已编码数据区域(370)中。在已编码数据区域(370)中聚合的已编码数据包含作为基本已编码视频比特流的语法的一部分的一个或多个图片的已编码数据。在已编码数据区域(370)中聚合的已编码数据还可以包括与已编码视频数据相关的媒体元数据(例如,作为一个或多个补充增强信息(“SEI”)消息或视频可用性信息(“VUI”)消息中的一个或多个参数)。
来自临时已编码数据区域(370)的聚合数据(371)由信道编码器(380)处理。信道编码器(380)可以将聚合数据分组化以作为媒体流(例如,根据诸如ISO/IEC 13818-1的媒体流复用格式)传输,在这种情况下,信道编码器(380)可以添加语法元素作为媒体传输流的语法的一部分。或者,信道编码器(380)可以组织聚合数据用于存储为文件(例如,根据诸如ISO/IEC 14496-12的媒体容器格式),在这种情况下,信道编码器(380)可以添加语法元素作为媒体存储文件的语法的一部分。或者,更一般地,信道编码器(380)可以实现一个或多个媒体系统复用协议或传输协议,在这种情况下,信道编码器(380)可以添加语法元素作为协议的语法的一部分。信道编码器(380)向信道(390)提供输出,信道(390)表示存储、通信连接、或用于输出的另一信道。
IV.示例性解码器系统
图4是可以结合其实现一些描述的实施例的示例性解码器系统(400)的框图。解码器系统(400)可以是能够以多种解码模式中的任何一种操作的通用解码工具,所述解码模式例如是用于实时通信的低时延解码模式以及用于从文件或流进行媒体回放的常规解码模式;或者它可以是适用于一种这样的解码模式的专用解码工具。解码器系统(400)可以被实现为操作系统模块、被实现为应用库的一部分或被实现为独立应用。总的来说,解码器系统(400)从信道(410)接收已编码数据,并产生重构的帧,以输出给输出目的地(490)。已编码数据可以包括使用变换系数级的逐渐更新和/或使用块组的渐进更新编码的内容。
解码器系统(400)包括信道(410),其可以表示存储、通信连接、或用于已编码数据作为输入的另一信道。信道(410)产生已被信道编码的已编码数据。信道解码器(420)可以处理已编码数据。例如,信道解码器(420)将已经聚合作为媒体流传输(例如,根据诸如ISO/IEC 13818-1的媒体流复用格式)的数据进行解分组,在这种情况下,信道解码器(420)可以解析作为媒体传输流的语法的一部分添加的语法元素。或者,信道解码器(420)分离已经聚合以存储为文件(例如,根据诸如ISO/IEC 14496-12的媒体容器格式)的已编码视频数据,在这种情况下,信道解码器(420)可以解析作为媒体存储文件的语法的一部分添加的语法元素。或者,更一般地,信道解码器(420)可以实现一个或多个媒体系统解复用协议或传输协议,在这种情况下,信道解码器(420)可以解析作为协议的语法的一部分添加的语法元素。
从信道解码器(420)输出的已编码数据(421)被存储于临时已编码数据区域(430)中,直到已经接收到足够数量的这种数据为止。已编码数据(421)包括已编码帧(431)和MMCO/RPS信息(432)。已编码数据区域(430)中的已编码数据(421)包含作为基本已编码视频比特流的语法的一部分的一个或多个图片的已编码数据。已编码数据区域(430)中的已编码数据(421)还可以包括与已编码视频数据相关的媒体元数据(例如,作为一个或多个SEI消息或VUI消息中的一个或多个参数)。
一般而言,已编码数据区域(430)临时存储已编码数据(421),直到解码器(450)使用这样的已编码数据(421)。在此时,已编码帧(431)和MMCO/RPS信息(432)的已编码数据从已编码数据区域(430)被转移到解码器(450)。随着解码继续,将新的已编码数据添加到已编码数据区域(430),并将余留在已编码数据区域(430)中的最旧的已编码数据转移到解码器(450)。
解码器(450)周期性地解码已编码帧(431)以产生对应的已解码帧(451)。适当地,当执行其解码过程时,解码器(450)可以使用一个或多个先前已解码的帧(469)作为帧间预测的参考帧。解码器(450)从已解码帧临时存储器存储区域(460)读取这样的先前已解码的帧(469)。一般地,解码器(450)包括执行诸如熵解码、逆量化、逆频变换、帧内预测、运动补偿和瓦片合并的解码任务的多个解码模块。由解码器(450)执行的精确操作可以根据压缩格式而变化。
例如,解码器(450)接收已压缩帧或帧序列的已编码数据,并产生包括已解码帧(451)的输出。在解码器(450)中,缓冲器接收已压缩帧的已编码数据,并且在适当的时间使接收到的已编码数据可用于熵解码器。熵解码器对熵编码的量化数据以及熵编码的边信息进行熵解码,通常应用在编码器中执行的熵编码的逆。运动补偿器将运动信息应用于一个或多个参考帧,以对正被重构的帧的任何帧间编码块形成运动补偿预测值。帧内预测模块可以根据相邻的先前重构的采样值对当前块的采样值进行空间预测。
对于本文描述的变换系数级的逐渐更新技术,解码器(451)可以使用帧的块的可用量化变换系数的子集来解码帧(例如,其中块的量化变换系数由系数截止标志表示)并重构帧。后续帧可以提供对应块的可用量化变换系数的其它子集(例如,量化变换系数在根据扫描模式的次序中的下一部分),所述其它子集可以被解码并与先前解码的变换系数一起使用以重构后续帧。
解码器(450)还重构预测残差。逆量化器对熵解码的数据进行逆量化。例如,解码器(450)基于比特流中的语法元素为图片、瓦片、切片和/或视频的其它部分设置QP的值,并相应地对变换系数进行逆量化。逆频变换器将量化的频域数据转换成空间域信息。对于帧间预测块,解码器(450)将重构的预测残差与运动补偿预测相组合。解码器(450)可以类似地将预测残差与来自帧内预测的预测组合。视频解码器(450)中的运动补偿环路包括自适应解块滤波器,用以平滑跨已解码帧(451)中的块边界行和/或列的不连续性。
已解码帧临时存储器存储区域(460)包括多个帧缓冲存储区域(461、462、...、46n)。已解码帧存储区域(460)是已解码图片缓冲器的示例。解码器(450)使用MMCO/RPS信息(432)来识别其可以存储已解码帧(451)的帧缓冲器(461、462等)。解码器(450)将已解码帧(451)存储在所述帧缓冲器中。
输出定序器(480)使用MMCO/RPS信息(432)来识别将以输出次序产生的下一帧何时在已解码帧存储区域(460)中是可用的。当将以输出次序产生的下一帧(481)在已解码帧存储区域(460)中可用时,其由输出定序器(480)读取并输出到输出目的地(490)(例如,显示器)。一般而言,由输出定序器(480)从已解码帧存储区域(460)输出帧的次序可以不同于由解码器(450)对帧进行解码的次序。
V.示例性视频编码器
图5a和5b是可以结合其实现一些描述的实施例的通用视频编码器(500)的框图。编码器(500)接收包括当前图像的视频图片序列,其作为输入视频信号(505),并且产生已编码的视频比特流(595)中的已编码数据,其作为输出。
编码器(500)是基于块的,并且使用取决于实现方式的块格式。块可以在不同阶段(例如在预测、频率变换和/或熵编码阶段)被进一步细划分。例如,图片可以被划分为64x64块、32x32块或16x16块,其接着可以被划分为更小的采样值块以用于编码和解码。在HEVC标准的编码实现方式中,编码器将图片分割成CTU(CTB)、CU(CB)、PU(PB)以及TU(TB)。
编码器(500)使用图片内编码和/或图片间编码来压缩图片。编码器(500)的许多部件用于图片内编码和图片间编码。由这些部件执行的确切操作可能会根据被压缩的信息类型而改变。
瓦片化模块(510)可选地将图片分割成相同大小或不同大小的多个瓦片。例如,瓦片化模块(510)沿着瓦片行和瓦片列分割图片,瓦片行和瓦片列利用图片边界来定义图片中的瓦片的水平和垂直边界,其中每个瓦片是矩形区域。然后,瓦片化模块(510)可以将瓦片分组成一个或多个瓦片集合,其中瓦片集合是一个或多个瓦片的组。
通用编码控制件(520)接收输入的视频信号(505)的图片以及来自编码器(500)的各个模块的反馈(未示出)。总的来说,通用编码控制件(520)向其它模块(例如瓦片化模块(510)、变换器/缩放器/量化器(530)、缩放器/逆变换器(535)、图片内估计器(540)、运动估计器(550)以及帧内/帧间开关)提供控制信号(未示出),以在编码期间设置和改变编码参数。特别地,通用编码控制件(520)可以决定是否以及如何在编码期间使用字典模式。通用编码控制件(520)还可以评估编码期间的中间结果,例如执行速率失真分析。通用编码控制件(520)产生指示在编码期间做出的决定的通用控制数据(522),使得对应的解码器可以做出一致的决定。通用控制数据(522)被提供给头部格式化器/熵编码器(590)。
如果使用图片间预测来预测当前图片,则运动估计器(550)相对一个或多个参考图片来估计输入的视频信号(505)的当前图片的采样值块的运动。已解码图片缓冲器(570)缓存一个或多个重构的先前编码的图片以用作参考图片。当使用多个参考图片时,多个参考图片可以来自不同的时间方向或相同的时间方向。运动估计器(550)产生诸如运动矢量数据和参考图片选择数据的运动数据(552),作为边信息。运动数据(552)被提供给头部格式化器/熵编码器(590)以及运动补偿器(555)。
运动补偿器(555)将运动矢量应用于来自已解码图片缓冲器(570)的重构的参考图片。运动补偿器(555)产生当前图片的运动补偿预测。
在编码器(500)内的分离路径中,图片内估计器(540)确定如何对输入的视频信号(505)的当前图片的采样值块进行图片内预测。可以使用图片内编码对当前图片进行整体或部分编码。使用当前图片的重构的值(538)进行帧内空间预测,图片内估计器(540)确定如何根据当前图片的相邻的先前重构的采样值空间预测当前图片的当前块的采样值。
对于本文描述的变换系数级的逐渐更新技术,编码器(500)可以使用帧的块的变换系数的子集来编码帧(例如,其中对系数截止标志进行编码以指示块的哪些变换系数被编码)。后续帧可以对对应块的变换系数的其它子集(例如,变换系数在根据扫描模式的次序中的下一部分)进行编码。
帧内预测估计器(540)产生作为边信息的帧内预测数据(542),例如指示帧内预测是使用空间预测还是使用各种字典模式之一(例如,每帧内块或特定预测模式方向的每帧内块的标记值)、预测模式方向(用于帧内空间预测)的信息。帧内预测数据(542)被提供给头部格式化器/熵编码器(590)以及图片内预测器(545)。根据帧内预测数据(542),图片内预测器(545)根据当前图片的相邻的先前重构的采样值来空间预测当前图片的当前块的采样值。
帧内/帧间开关选择运动补偿预测或图片内预测的值用作给定块的预测(558)。在非字典模式中,预测(558)的块与输入视频信号(505)的原始当前图片的对应部分之间的差(如果有的话)提供残差值(518)。在重构当前图片期间,将重构的残差值与预测(558)组合以产生来自视频信号(505)的原始内容的重构(538)。然而,在有损压缩中,一些信息仍然从视频信号(505)中丢失。
在变换器/缩放器/量化器(530)中,对于非字典模式,频率变换器将空间域视频信息转换为频域(即,频谱、变换)数据。对于基于块的视频编码,频率变换器向预测残差数据(或当预测(558)为“空”时向采样值数据)的块应用离散余弦变换(“DCT”)、其整数近似、或另一类型的前向块变换,从而产生频率变换系数的块。编码器(500)还能够指示跳过这种变换步骤。缩放器/量化器对变换系数进行缩放和量化。例如,量化器对频域数据应用不均匀的标量量化,其中步长在逐帧的基础上、逐瓦片的基础上、逐切片的基础、逐块的基础或其它基础上变化。量化的变换系数数据(532)被提供给头部格式化器/熵编码器(590)。
在缩放器/逆变换器(535)中,缩放器/逆量化器对量化变换系数进行逆缩放和逆量化。逆频变换器执行逆频变换,产生重构的预测残差或采样值的块。编码器(500)将重构的残差与预测值(558)(例如,运动补偿预测值、图片内预测值)组合以形成重构(538)。
对于图片内预测,可将重构值(538)反馈到图片内估计器(540)和图片内预测器(545)。另外,重构值(538)可用于后续图片的运动补偿预测。重构值(538)可以被进一步滤波。滤波控制件(560)针对视频信号(505)的给定图片确定如何对重构值(538)执行去块滤波和采样自适应偏移(“SAO”)滤波。滤波控制件(560)产生滤波器控制数据(562),该数据被提供给头部格式化器/熵编码器(590)和合并器/滤波器(565)。
在合并器/滤波器(565)中,编码器(500)将来自不同瓦片的内容合并到图片的重构版本中。编码器(500)根据滤波器控制数据(562)选择性地执行去块滤波和SAO滤波,以便自适应地平滑跨越帧中的边界的不连续性。可以取决于编码器(500)的设置,选择性地对瓦片边界进行滤波或根本不滤波,并且编码器(500)可以在已编码比特流内提供语法以指示是否应用了这种滤波。已解码图片缓冲器(570)缓存重构的当前图片以用于后续的运动补偿预测。
头部格式化器/熵编码器(590)对通用控制数据(522)、量化的变换系数数据(532)、帧内预测数据(542)和打包索引值、运动数据(552)以及滤波器控制数据(562)进行格式化和/或熵编码。例如,头部格式化器/熵编码器(590)使用上下文自适应二进制算术编码(“CABAC”)来对系数编码语法结构的各种语法元素进行熵编码。
头部格式化器/熵编码器(590)在已编码视频比特流(595)中提供已编码数据。已编码视频比特流(595)的格式可以是HEVC格式、Windows Media视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)的变化或扩展或另一格式。
取决于实现方式和所期望的压缩类型,编码器的模块可以被添加、被省略、被分为多个模块、与其它模块组合、和/或被类似模块替换。在替代实施例中,具有不同模块和/或其它模块配置的编码器执行所描述技术中的一个或多个。编码器的特定实施例通常使用编码器(500)的变型或补充版本。编码器(500)内的模块之间的关系指示编码器中的一般信息流;为简化起见,未示出其它关系。
VI.示例性视频解码器
图6是可以结合其实现一些描述的实施例的通用解码器(600)的框图。解码器(600)在已编码视频比特流(605)中接收已编码数据,并产生包括用于重构的视频(695)的图片的输出。已编码视频比特流(605)的格式可以是HEVC格式、Windows Media视频格式、VC-1格式、MPEG-x格式(例如,MPEG-1、MPEG-2或MPEG-4)、H.26x格式(例如,H.261、H.262、H.263、H.264)的变型或扩展或另一格式。
解码器(600)是基于块的,并且使用取决于实现方式的块格式。块可以在不同的阶段被进一步细划分。例如,图片可以被划分为64x64块、32x32块或16x16块,其接着可以被划分为更小的采样值块。在用于HEVC标准的解码实现方式中,将图片分割为CTU(CTB)、CU(CB)、PU(PB)和TU(TB)。
解码器(600)使用图片内解码和/或图片间解码对图片进行解压缩。解码器(600)的许多部件用于图片内解码和图片间解码。这些部件执行的确切操作可能会根据正在解压缩的信息的类型而变化。
缓冲器在已编码视频比特流(605)中接收已编码数据,并使接收到的已编码数据可用于解析器/熵解码器(610)。解析器/熵解码器(610)对熵编码的数据进行熵解码,通常应用在编码器(500)中执行的熵编码的逆(例如,上下文自适应二进制算术解码)。例如,解析器/熵解码器(610)使用上下文自适应二进制算术解码来对系数编码语法结构的各种语法元素进行熵解码。作为解析和熵解码的结果,解析器/熵解码器(610)产生通用控制数据(622),量化的变换系数数据(632)、帧内预测数据(642)和打包索引值、运动数据(652)以及滤波器控制数据(662)。
通用解码控制件(620)接收通用控制数据(622),并向其它模块(例如缩放器/逆变换器(635)、图片内预测器(645)、运动补偿器(655)和帧内/帧间开关)提供控制信号(未示出),以在解码期间设置和改变解码参数。
如果使用图片间预测来预测当前图片,则运动补偿器(655)接收运动数据(652),例如运动矢量数据和参考图片选择数据。运动补偿器(655)将运动矢量应用于来自已解码图片缓冲器(670)的重构的参考图片。运动补偿器(655)为当前图片的帧间编码块产生运动补偿预测。已解码图像缓冲器(670)存储一个或多个先前重构的图片用作参考图片。
在解码器(600)内的分离路径中,帧内预测预测器(645)接收帧内预测数据(642),例如指示帧内预测是使用空间预测还是使用字典模式之一(例如,每帧内块或特定预测模式方向的每帧内块的标志值)、预测模式方向(用于帧内空间预测)的信息。对于帧内空间预测,使用当前图片的重构值(638),根据预测模式数据,图片内预测器(645)根据当前图片的相邻的先前重构的采样值来空间预测当前图片的当前块的采样值。
对于本文描述的变换系数级的逐渐更新技术,解码器(600)可以使用帧的块的可用量化变换系数的子集来解码帧(例如,其中块的量化变换系数由系数截止标志表示)并重构帧。后续帧可以提供对应块的可用量化变换系数的其它子集(例如,量化变换系数在根据扫描模式的次序中的下一部分),所述其它子集可以被解码并与先前解码的变换系数一起使用,以重构后续帧。
帧内/帧间开关选择运动补偿预测或图片内预测的值作为给定块的预测(658)。例如,当遵循HEVC语法时,可以基于针对图片的CU编码的语法元素来控制帧内/帧间开关,图片的CU包含帧内预测的CU和帧间预测的CU。解码器(600)将预测(658)与重构的残差值组合以产生来自视频信号的内容的重构(638)。
为了重构残差,缩放器/逆变换器(635)接收并处理量化变换系数数据(632)。在缩放器/逆变换器(635)中,缩放器/逆量化器对量化变换系数进行逆缩放和逆量化。逆频变换器执行逆频变换,产生重构的预测残差或采样值的块。例如,逆频变换器对频率变换系数应用逆块变换,产生采样值数据或预测残差数据。逆频变换可以是逆DCT、其整数近似、或另一种逆频变换。
对于图片内预测,可以将重构值(638)反馈给图片内预测器(645)。对于图片间预测,可以对重构值(638)进行进一步的滤波。在合并器/滤波器(665)中,解码器(600)将来自不同瓦片的内容合并成图片的重构版本。根据滤波器控制数据(662)和滤波器自适应规则,解码器(600)选择性地执行去块滤波和SAO滤波,以便自适应地平滑帧中的跨越边界的不连续性。取决于解码器(600)的设置或已编码比特流数据内的语法指示,可以对瓦片边界进行选择性地滤波或根本不滤波。已解码图片缓冲器(670)缓存重构的当前图片以用于后续的运动补偿预测。
解码器(600)还可以包括后处理去块滤波器。后处理去块滤波器可选地平滑重构图片中的不连续性。其它滤波(例如去环滤波)也可以被应用,以作为后处理滤波的一部分。
取决于期望的解压的实现方式和类型,解码器的模块可以被添加、省略、划分为多个模块、与其它模块组合、和/或被类似模块替换。在替代实施例中,具有不同模块和/或其它模块配置的解码器执行所描述技术中的一个或多个。解码器的具体实施例通常使用解码器(600)的变型或补充版本。解码器(600)内的模块之间的关系指示解码器中的一般信息流;为简化起见,未示出其它关系。
VII.现有技术的渐进更新
本节描述了用于执行渐进更新或可扩展更新的现有技术解决方案。在一个现有技术中,如在JVT-B063(Gary Sullivan,“On Random Access and Bitstream Format forJVT Video”,Joint Video Team(JVT)of ISO/IEC MPEG&ITU-T VCEG,2nd Meeting:Geneva,CH,Jan.29-Feb.1,2002)中所描述的那样,利用了其中在多于一个已编码图片中逐渐恢复已编码图片内容的逐渐解码器刷新(GDR)。GDR技术可以允许非帧内的随机接入能力。然而,通过GDR技术,只有已编码图片的有限区域可用于使用任何给定帧进行显示,并且为了能够对整个区域进行解码和显示,必须接收全部的帧(例如,第一帧可能包含仅上面一行的宏块的帧内宏块,并且因此第一帧的显示将仅显示第一行的宏块的内容;第二帧可能包含仅第二行的宏块的帧内宏块,并因此第二帧的显示将仅显示前两行的宏块的内容,以此类推)。另外,通过GDR技术,仅使用帧内编码来执刷新,这在对内容进行编码所需的比特方面增加了成本。
在另一现有技术中,H.264/AVC视频编码标准的可扩展视频编码(SVC)扩展寻求通过时间、空间和质量可扩展性模式来提供灵活的速率自适应。通过SVC质量可扩展性模式,以较低的质量对帧的基本层进行编码,同时以更高的质量编码增强层(或多个增强层)。解码器可以解码基本层并显示较低质量的帧,或者也解码增强层(或多个增强层)以实现更高的质量。
VIII.变换系数级的逐渐更新
本节呈现使用变换系数逐渐更新的各种创新。例如,可以通过仅对给定图片(例如,帧或半帧)的块、宏块或其它编码单元的变换系数的子集进行编码(或解码)来应用变换系数级的逐渐更新。这样,可以与第一图片一起发送块、宏块或其它编码单元的变换系数的第一子集,可以在第二图片中发送第二子集,以此类推(例如,直到所有变换系数都已被发送)。可以基于可用带宽(例如,基于可用带宽模型,其也可以考虑所需的量化参数值)来确定用于编码(或解码)的变换系数的数目。
例如,编码图片的视频或图像数据可以包括:对图片的块的数据值(例如,预测残差数据值或采样值)执行频率变换以产生变换系数集合:选择变换系数集合的子集(例如,基于可用带宽模型);以及编码变换系数集合的子集(例如,在应用量化之后)以产生图片的已编码数据(例如,在输出比特流中)。还可以执行其它编码操作(例如,运动补偿、帧间/帧内预测等)。可以通过选择变换系数集合的其它子集来执行对一个或多个后续图片的视频或图像数据的编码。例如,可以对第一视频图片的块的变换系数的第一部分进行编码,随后是第二视频图片的块的变换系数的第二部分,等等,直到将块的所有变换系数(例如,扫描模式次序中的所有变换系数位置或方位的变换系数)进行了编码为止。
可以通过接收图片的块的量化变换系数,并执行逆量化和逆频变换操作,来解码图片的已编码数据,所述量化变换系数是块的可用量化变换系数的子集。然后可以(例如,通过使用从逆频率变换得到的块数据值执行额外的解码操作)重构图片的块。例如,可以为第一图片的块接收量化变换系数的第一部分,并且可以使用量化变换系数的第一部分(例如,以降低的质量)来重构第一图片。可以为第二图片的块接收量化变换系数的第二部分(例如,对于扫描模式次序中的变换系数位置或方位的第二集合),并且可以使用量化变换系数的第一部分以及量化变换系数的第二部分来重构第二图片(例如,与第一图片相比,以提高的质量)。在一些实现方式中,其中变换是加法的(其中逆变换系数或重构的像素可以被添加到第一逆变换系数),变换系数的第一部分不需要被存储以供在解码第二图片时使用。
变换系数级的逐渐更新技术可以应用于各种类型的视频和图像内容的编码或解码。在一些实现方式中,变换系数级的逐渐更新被应用于屏幕内容的编码和解码。例如,对于屏幕内容,该内容可能从一个图片到下一图片(例如,从一帧或图像到下一帧或图像)保持相同。例如,表示图形用户界面的屏幕内容可能从一帧到下一帧保持相同,除非发生对用户界面的操纵(例如,打开窗口、键入文本、启动应用等)。在图片(或图片的一部分)的内容从一个图片到下一图片保持相同(或几乎相同)的这种情况下,可以应用变换系数级的逐渐更新,以有效地编码(和解码)每个图片中的块(例如,每个图片的所有块或少于每个图片的所有块,例如仅那些具有从一个图片到下一图片保持相同或几乎相同的内容的块)的仅一部分变换系数。当仅接收到第一图片时,可以执行图片的重构,随后的图片提供可用变换系数的附加部分以用于以增加的质量重构图片。换句话说,可以在图片序列上为固定块(例如,在特定块位置处的从图片到图片保持相同或几乎相同的内容)补充变换系数。例如,因为内容相同(或接近相同),所以可以跨越多个图片对来自对应块的变换系数的不同子集进行编码和解码。本文描述的技术还可以应用于除了屏幕内容之外的内容(例如,从一个图片到另一图片保持相同或接近相同的其它类型的内容)。
在一些实现方式中,为图片的每个块选择的变换系数的数目是相同的。考虑使用8×8的块编码的第一图片的例子。如果(例如,基于可用带宽)为图片选择15个变换系数,则每个块将编码该块的变换系数中的15个变换系数(例如,给定块的根据扫描模式的前15个变换系数)。下一图片将编码每个块的接下来的N个变换系数(例如,接下来的18个变换系数或某个其它数目的接下来的变换系数),以此类推。
在一些实现方式中,变换系数的数目可以从块到块(或从编码单元到编码单元)变化。例如,第一图片的第一块(或者第一组块或其它内容区域)可以对前N个变换系数进行编码,而第二块(或第二组块或其它内容区域)可以对前M个变换系数进行编码(其中N不同于M)。
取决于为每个块或每个图片选择的变换系数的数目,可能需要不同数目的图片来发送所有变换系数(用于所有变换系数方位或位置的变换系数)。例如,如果可用带宽低,则可以仅选择可用变换系数的小的子集用于与每个图片一起发送,并且因此将需要大量图片来发送变换系数的所有子集(例如20个图片)。在另一方面,如果可用带宽高,则可以选择可用变换系数的大的子集用于与每个图片一起发送,并因此将需要少量图片来发送变换系数的所有子集(例如,2或3个图片)。
在一些实现方式中,变换系数级的逐渐更新技术仅应用于图片序列的、其内容不改变的那些块。例如,对于图片的序列,可以使用变换系数级的逐渐更新来编码在图片的序列之间内容不改变的特定位置集合处的块,而在图片之间内容改变的不同的位置集合处的块可以在不使用变换系数级的逐渐更新的情况下被编码。可以使用各种技术来确定特定块位置处的内容是否从一图片到下一图片发生改变(例如,在一些实现方式中,将诸如Y、U和V采样值中的一个或多个的采样值进行比较以确定它们是否相同,在一些实现方式中,比较量化系数值以确定它们是否相同等)。例如,可能的是,变换系数级逐渐更新不应用于在后续图片中改变的内容的区域,并且仅对于在后续图片中没有变化的块,才(在图片序列上)逐渐编码所有的变换系数以实现高水平的质量(例如,使用最大质量量化参数)。例如,编码器可以使用变换系数级逐渐更新来对第一图片的所有块进行编码,然后仅对后续图片中的、内容保持相同的那些块继续使用变换系数级逐渐更新,并且对于内容改变的任何块位置切换到另一编码模式。
本文描述的变换系数级逐渐更新技术可以在某些编码情况下提供改善的编码效率和改善的图片质量。例如,仅发送给定图片中的变换系数的子集可以提供一致的编码和解码性能以及一致且可预测的带宽利用率(例如,根据可用带宽)。可以通过在图片序列上对所有变换系数进行编码(在每个图片中编码不同子集),来提供改进的图片质量,使得解码器最终可以使用所有变换系数重构图片。另外,可以通过以高质量(例如,高质量QP值)对变换系数的每个子集进行编码来提供改进的图片质量。
A.示例性扫描模式
在一些实现方式中,考虑用于扫描变换系数的扫描模式,应用变换系数级逐渐更新技术来为特定块(或其它编码单元)选择可用变换系数的要编码的子集。
图7是示出了用于变换系数的块的示例性现有扫描模式的图700。在图700中,针对视频或图像数据的8×8的块描绘了变换系数块710。可以例如通过将频率变换(例如,DCT或另一类型的频率变换)应用于块的预测残差数据值或采样数据值来生成变换系数块710。在变换系数块710中,64个单独的变换系数位置或方位被标记为“T00”到“T63”。
取决于各种准则(例如,被编码的内容的类型,编码器和解码器的复杂性,使用的频率变换的类型,熵编码方法等),根据扫描模式对变换系数进行排序。图700描绘了两个示例性扫描模式。描绘了之字形扫描模式720,其中根据之字形模式对变化系数进行排序。还描绘了水平扫描模式730,其中变换系数被水平排序(逐行)。在其它实现方式中,与图7中所描绘的那些扫描模式相比,可以使用附加的或不同的扫描模式。
B.变换系数级的逐级更新的例子
图8是示出了使用示例性之字形扫描模式720在帧序列上针对特定块的变换系数级逐渐更新的例子的图800。如在图800中所描绘的,对第一图片810(例如,第一帧或第一图像)的变换系数的特定8×8块进行编码。在编码过程期间,选择变换系数的子集或一部分用于编码(标记为“TNN”的变换系数在第一图片中被编码,而对于第一图片,标记为“0”的变换系数未被编码)。例如,可以基于可用带宽模型来选择该子集中的变换系数的数目。也可以使用其它选择准则(例如,可以选择预定义的或用户配置的变换系数数目)。如所描绘的,在该示例中已经为第一图片810选择了10个变换系数。因为在该例子中使用了之字形扫描模式720,所以根据之字形扫描模式720次序(T00、T01、T08、T16、T09、T02、T03、T10、T17和T24)选择了10个变换系数。取决于所使用的选择准则(例如,可用带宽模型),可以为第一图片选择更多或更少的变换系数。
如在图800中描绘的,对第二图片820的变换系数的对应的8×8块(与第一图片中的8×8块处于相同位置的8×8块)进行编码。对于对应的8×8块,选择变换系数的第二子集或第二部分(在变换系数位置或方位的第二子集处的变换系数)用于编码。标记为“TNN”的变换系数被在第二图片中编码,而对于第二图片,标记为“0”的变换系数未被编码,并且具有对角线的变换系数表示在一个或多个先前图片中已被编码的那些变换系数。如所描绘的,在该例子中为第二图片820已经选择了之字形扫描模式720次序中的接下来的11个变换系数。取决于所使用的选择准则(例如,可用带宽的模型),可以为第二图片选择更多或更少的变换系数。
如在图800中描绘的,对第三图片830的变换系数的对应的8×8块(与第一和第二图片中的8×8块处于相同位置的8×8块)进行编码。对于对应的8x8块,选择变换系数的第三子集或第三部分(在变换系数位置或方位的第三子集处的变换系数)用于编码。标记为“TNN”的变换系数在第三图片中被编码,而对于第三图片,标记为“0”的变换系数未被编码,并且具有对角线的变换系数表示在一个或多个先前图像中已编码的那些变换系数。如所描绘的,在该例子中为第三图片830已经选择了之字形扫描模式720次序中的接下来的22个变换系数。取决于所使用的选择准则(例如,可用带宽模型),可以为第三图片选择更多或更少的变换系数。
如在图800中描绘的,对第四图片840的变换系数的对应的8×8块(与在第一、第二、第三图片中的8×8块处于相同位置的8×8块)进行编码。对于对应的8x8块,选择变换系数的第四子集或第四部分(在变换系数位置或方位的第四子集处的变换系数)用于编码。标记为“TNN”的变换系数在第四图片中被编码,而具有对角线的变换系数表示在一个或多个先前图像中已被编码的变换系数。如所描绘的,在该例子中为第四图片840已经选择了之字形扫描模式720次序中的接下来的21个变换系数。取决于所使用的选择准则(例如,可用带宽模型),可以为第四图片选择更多或更少的变换系数。
在图8描绘的示例性场景中,在四个图片中发送了该块的所有变换系数(所有的变换系数位置或方位已经在四个图片的序列上被编码)。然而,其它编码情况可以在更多或更少的图片中发送变换系数。
在一些编码情况下,在使用系数级逐渐更新时,使用之字形模式可以提供改进的图片质量。例如,在频率变换(例如,DCT)之后,大部分信息可能集中在左上角的变换系数中。因此,通过(根据之字形模式)选择左上角的变换系数用于在第一图片中发送,最重要的信息可以被编码,并因此被解码器重构和首先被显示。后续图片可以渐进地对变换系数的较不重要的子集进行编码,较不重要的子集可被解码以提供递增改进的图片质量。
图9是示出了使用示例性水平扫描模式730在帧序列上针对特定块的转换系数级逐渐更新的例子的图900。如在图900中描绘的,对第一图片910(例如,第一帧或第一图像)的变换系数的特定8×8块进行编码。在编码过程中,选择变换系数的子集或一部分用于编码(在标记为“TNN”的位置或方位处的变换系数在第一图片中被编码,而对于第一图片,标记为“0”的变换系数未被编码)。例如,可以基于可用带宽模型来选择子集中的变换系数的数目。也可以使用其它选择准则(例如,可以选择预先定义的或用户配置的变换系数数目)。如所描绘的,在该例子中已经为第一图片910选择了21个变换系数。因为在该例子中正在使用水平扫描模式730,所以根据水平扫描模式730次序选择21个变换系数(T00至T20)。取决于所使用的选择准则(例如,可用带宽模型),可以为第一图片选择更多或更少的变换系数。
如在图900中所描绘的,第二图片920的对应块对接下来的21个变换系数(T21至T41)进行编码,并且第三图片930的对应块对剩余的22个变换系数(T42至T63)进行编码。
在图9所描绘的示例性场景中,在三个图片中发送块的所有变换系数。然而,其它编码情况可以在更多或更少的图片中发送变换系数。
在图8和9描绘的示例性场景中,示例性块是具有64个变换系数的8x8块。然而,本文描述的技术可以应用于其它块大小,例如,4x4块和16x16块,以及可应用于宏块和其它编码单元。
C.系数截止标志
在一些实现方式中,对于给定块(其它编码单元)编码的变换系数的数目被编码为可被称为系数截止标志的语法元素。系数截止标志可以使用数值来指示为特定块(或其它编码单元)编码的变换系数的数目。例如,如果为特定块编码12个变换系数,则系数截止标志可以指示数字12(例如,作为熵编码值或使用另一编码技术编码)。系数截止标志还可以通过指示变换系数的结束位置来指示为特定块(或其它编码单元)编码的变换系数的数目。例如,第一图片810的8×8块的系数截止标志可以对T24系数(根据之字形扫描模式720为块编码的最后的变换系数)的标识符或位置进行编码,第二图片810的8×8块的系数截止标志可以对T40系数(根据之字形扫描模式7200为第二块编码的最后的变换系数)的标识符或位置进行编码,等等。
在一些实现方式中,以块级别对系数截止标志进行编码。例如,可以将系数截止标志与块的已编码系数数据一起或者在块头部中进行编码。在一些实现方式中,以图片级别对系数截止标志进行编码。例如,系数截止标志可以被编码在图片头部中并用于图片的所有块。例如,系数截止标志可以以图片级别和/或区域级别被编码在补充增强信息(SEI)消息中。
图10是示出了图片1010的块的已编码块数据的图1000,其包括系数截止标志1020。如图1000所描绘的,针对图片1010的多个块描绘了已编码块数据。系数截止标志被编码在给定块的已编码块数据之后,以指示给定块的变换系数在哪里结束。
D.使用变换系数级的逐渐更新进行编码和解码的方法
该部分描述了用于利用变换级的逐渐更新进行编码和解码的示例性方法。所述示例性方法可应用于视频数据和图像数据的编码和解码。
图11是使用变换系数级逐渐更新进行视频编码或图像编码的示例性方法1100,其中变换系数的不同子集在图片序列上被编码。在1110处,对图片(例如,视频内容的帧或图像)的多个块中的每一个执行多个编码操作(包括操作1120至1140)。图片的多个块可以是图片的所有块或少于图片的所有块(例如,仅图片的特定区域,其中块内容对于图片序列保持相同)。
在1120处,对块的数据值(例如,对预测残差数据值或采样数据值)执行频率变换,以产生变换系数集合。例如,频率变换可以是DCT或另一类型的频率变换。也可以使用其它类型的系数变换,例如离散小波变换(DWT)。
在1130处,选择变换系数集合的子集。在一些实现方式中,基于可用带宽模型来选择该子集。以下是可以应用以基于可用带宽来选择变换系数的数目的示例性模型:可用比特与系数数目的线性模型,速率失真模型,将系数数目与带宽相关的算术编码模型,以及修改的rho域速率控制模型。在一些实现方式中,所选择的变换系数的数目也取决于将用于量化变换系数的量化参数。在一些实现方式中,将量化参数(QP)设置为高质量值(在具体实现方式中,使用QP 22)。
在1140处,对变换系数集合的子集进行量化,例如,可以使用高质量QP值对变换系数集合的子集进行量化。
在1150处,在比特流中输出图片的已编码数据。例如,可以根据编码解码器格式(例如,H.264、HEVC等)在比特流中输出图片的已编码数据。
图12是用于使用变换系数级逐渐更新进行视频解码或图像解码的示例性方法1200,其中变换系数的不同子集在图片序列上被解码。在1210处,在比特流中接收图片的已编码数据。
在1220处,对图片(例如,视频内容的帧或图像)的多个块中的每一个执行多个解码操作(包括操作1230至1260)。图片的多个块可以是图片的所有块或少于图片的所有块(例如,仅图像的特定区域,其中块内容对于图片序列保持相同)。
在1230处,(例如从比特流)为块获得量化的变换系数,其是可用的量化的变换系数的子集。例如,图片可以编码可用的量化的变换系数的第一子集(例如,块的前15个量化的变换系数,其中针对后续图片的对应块接收量化的变换系数的后续子集)。可以由(例如,以块级别或图片级别编码的)系数截止标志来指示为块获得的量化的变换系数的数目。
在1240处,对块的量化的变换系数进行逆量化,以产生变换系数。在1250处,对块的变换系数执行逆频变换以产生块的块数据值(例如,预测残差数据值或采样数据值)。例如,逆频变换可以是逆DCT或另一类型的逆频变换。也可以使用其它类型的逆系数变换,例如逆离散小波变换(DWT)。
在1260处,使用块数据值重构块。例如,可以使用运动补偿预测值重构块。如果在1230处获得的量化的变换系数是可用的量化的变换系数的第一子集,则重构仅使用第一子集。然而,如果针对先前图片中的对应块已经接收到先前的子集,则重构将先前接收到的量化的变换系数与针对当前块接收到的量化的变换系数进行组合以用于解码。这样,重构的块使用到目前为止接收到的量化的变换系数进行解码和重构。
IX.使用块组进行渐进更新
本节呈现了以块组(GOB)为基础的渐进更新的各种创新。例如,使用在本节描述的渐进更新技术,可以以组块为基础(例如,而不是以整个图片为基础)渐进更新质量。
在一些现有方案中,已经以帧为基础应用了渐进更新(例如,H.264的可缩放视频编码(SVC)扩展),其中第一QP值用于整个第一帧,第二QP值用于整个第二帧,等等。例如,QP35可用于第一帧,QP 29可用于第二帧,QP 25可用于第三帧,QP 22可以用于第四帧,以及QP20可以用于第五帧。
代替以帧为基础应用渐进更新,可以以块组的级别应用在本节中描述的渐进更新技术,或者可以将在本节中描述的渐进更新技术应用于图片的另一部分(例如,以块或宏块为基础,或者应用于帧或图像的另一部分)。
基于GOB(或用于图片的另一部分)的渐进更新可以被应用于各种类型的视频和图像内容的编码或解码。在一些实现方式中,渐进更新被应用于屏幕内容的编码和解码。例如,对于屏幕内容,该内容可能从一个图片到下一图片(例如,从一帧或图像到下一帧或图像)保持相同。例如,代表图形用户界面的屏幕内容可以从一帧到下一帧保持相同,除非发生对用户界面的操纵(例如,打开窗口、键入文本、启动应用等)。在图片(或图片的一部分)的内容从一个图片到下一图片保持相同(或几乎相同)的这种情况下,可以应用渐进更新以在图片序列上渐进提高不同块组的质量。例如,可以以较低的质量编码第一图片。对于第二图片,可以以更高的质量对块组的第一部分进行编码。对于第三图片,可以以更高的质量对块组的第二部分进行编码,以此类推,直到所有的块组都以更高的质量被编码为止。解码器可以在接收到第一图片(质量较低)时重构内容。在解码第二图片时,解码器可以提高在第二图片中以更高质量编码的那些块组的质量,以及对于后续图片以此类推。
图13是示出了在图片序列上针对块组的渐进更新的例子的图1300。例如,渐进更新可以应用于帧间序列(例如,P帧或B帧)。在图片序列中,图片的内容在图片序列上保持相同或基本相同(例如,内容可以是不改变的屏幕内容或其它静态视频或图像内容)。如图1300所示,第一图片1310被划分成多个块组。第一图片1310的所有块组(GOB)都已经利用QP值35(相对低的质量)进行了编码。
对于第二图片1320,已经用QP值22(相对高的质量)对前三个GOB进行了编码。对于第三图片1330,已经用QP值22对接下来的18个GOB进行了编码。对于第四图片1340,已经用QP值22对剩余的14个GOB进行了编码。
解码器可以在已编码的比特流中接收第一图片1310,并且以相对低的质量重构第一图片。当解码器接收到第二图片1320时,解码器可以改善前三个GOB的质量(并且以相对低的质量显示剩余的GOB),等等。一旦解码器已经接收到所有四个图片,解码器就可以以较高的质量显示所有GOB。
可以基于可用带宽(例如,可用带宽模型,例如上面关于变换系数级逐渐更新讨论的模型之一)来确定给定图片的以较高质量编码的GOB的数目。因此,在一些情况下,以更高质量对所有GOB进行编码所需的图片数目可能比图1300中所示的四张图片更多或更少。
考虑到可以应用所公开发明的原理的许多可能的实施例,应该认识到,图示的实施例仅是本发明的优选例子,而不应该被认为限制本发明的范围。而是,本发明的范围由后续权利要求定义。

Claims (15)

1.一种计算设备,包括:
处理单元;以及
存储器;
所述计算设备被配置为执行用于视频编码或图像编码的操作,所述操作包括:
对图片的数据编码,所述编码包括针对所述图片的多个块中的每个块:
对所述块的数据值执行频率变换,以产生变换系数集合;
至少部分地基于可用带宽模型来选择所述变换系数集合的子集;以及
量化所述变换系数集合的所述子集;以及
在比特流中输出所述图片的已编码数据;
其中,针对一个或多个后续图片中的多个对应块中的每个对应块,所述变换系数集合的一个或多个不同子集在所述一个或多个后续图片中被编码。
2.根据权利要求1所述的计算设备,其中所述变换系数集合的所述子集是特定数目的变换系数,并且其中变换系数的所述特定数目是为所述多个块中的所有块选择的相同数目。
3.根据权利要求1所述的计算设备,其中所述变换系数集合的所述子集是所述块的根据扫描模式的前N个变换系数。
4.根据权利要求1所述的计算设备,其中所述操作被执行以用于视频编码,所述操作还包括:
对下一图片的数据编码,所述编码包括针对所述下一图片的多个块中的每个块:
对所述块的数据值执行所述频率变换,以产生变换系数集合;
至少部分地基于所述可用带宽模型来选择所述变换系数集合的下一子集;以及
量化所述变换系数集合的所述下一子集;以及
在所述比特流中输出所述下一图片的已编码数据。
5.根据权利要求1所述的计算设备,其中所述图片的所述多个块是所述图片的所有块的子集,并且其中所述图片的所述多个块的内容在一个或多个后续图片中不改变。
6.根据权利要求1所述的计算设备,所述操作还包括针对所述图片的所述多个块中的每个块:
对变换系数截止标志编码,所述变换系数截止标志指示所述变换系数集合的所述子集中的变换系数的数目。
7.根据权利要求1所述的计算设备,所述操作还包括:
对所述图片的系数截止标志编码,所述系数截止标志指示所述变换系数集合的所述子集中的变换系数的数目。
8.根据权利要求1所述的计算设备,所述操作还包括:
确定所述变换系数子集的变换系数的特定数目,其中变换系数的所述特定数目基于所述可用带宽模型和量化参数(QP)被确定,其中所述变换系数子集基于所述QP被量化。
9.根据权利要求1所述的计算设备,其中所述变换系数集合根据扫描模式被排序,其中所述扫描模式是之字形扫描模式和水平扫描模式中的一个。
10.一种在具有视频解码器或图像解码器的计算设备中的方法,包括:
在比特流中接收图片的已编码数据;以及
对所述图片的数据解码,所述解码包括针对所述图片的多个块中的每个块:
获得所述块的量化变换系数,其中所述量化变换系数是所述块的可能的量化变换系数的子集,并且其中所述量化变换系数的数目由系数截止标志指示;
对所述块的所述量化变换系数执行逆量化,以产生所述块的变换系数;
对所述块的所述变换系数执行逆频率变换,以产生所述块的块数据值;以及
部分地利用所述块数据值来重构所述块;
其中针对一个或多个后续图片中的多个对应块中的每个对应块,所述可能的量化变换系数的一个或多个不同子集在所述一个或多个后续图片中被解码。
11.根据权利要求10所述的方法,其中针对所述多个块中的每个块,相同数目的量化变换系数被获得。
12.根据权利要求10所述的方法,其中所获得的量化变换系数是所述块的根据扫描模式的前N个量化变换系数。
13.根据权利要求10所述的方法,其中所述方法被执行以用于视频解码,其中所述量化变换系数是所述块的第一量化变换系数子集,所述第一量化变换系数子集被编码以产生所述块的第一块数据值子集,所述方法还包括:
在所述比特流中接收下一图片的已编码数据;以及
对所述下一图片的数据解码,所述解码包括针对所述下一图片的多个块中的每个块:
接收所述块的第二量化变换系数子集,其中所述第二量化变换系数子集是所述块的可能的量化变换系数的、与针对所述图片的对应块被解码的所述子集不同的子集,并且其中所述第二量化变换系数子集的数目由系数截止标志指示;
对所述块的所述第二量化变换系数子集执行逆量化,以产生第二变换系数子集;
对所述块的所述第二变换系数子集执行逆频率变换,以产生所述块的第二块数据值子集;以及
利用以下两者来重构所述块:
所述下一图片的所述块的所述第二块数据值子集;以及
所述图片的所述对应块的所述第一块数据值子集。
14.根据权利要求10所述的方法,其中所述逆频率变换是逆离散余弦变换(DCT),所述方法还包括:
对指示所述量化变换系数的所述数目的所述系数截止标志解码,其中所述系数截止标志以块级别和图片级别之一被解码。
15.一种存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令用于使计算设备执行用于视频编码或图像编码的操作,所述操作包括:
对图片的数据编码,所述编码包括针对所述图片的多个块中的每个块:
对所述块的数据值执行频率变换,以产生变换系数集合;
至少部分地基于可用带宽模型来选择所述变换系数集合的子集;以及
量化所述变换系数集合的所述子集;以及
在比特流中输出所述图片的已编码数据;
其中针对一个或多个后续图片中的多个对应块中的每个对应块,所述变换系数集合的一个或多个不同子集在所述一个或多个后续图片中被编码。
CN201680006034.9A 2015-01-16 2016-01-13 使用变换系数的逐渐更新进行编码和解码的方法及设备 Active CN107409212B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/598,668 2015-01-16
US14/598,668 US9762912B2 (en) 2015-01-16 2015-01-16 Gradual updating using transform coefficients for encoding and decoding
PCT/US2016/013122 WO2016115186A1 (en) 2015-01-16 2016-01-13 Gradual updating using transform coefficients for encoding and decoding

Publications (2)

Publication Number Publication Date
CN107409212A true CN107409212A (zh) 2017-11-28
CN107409212B CN107409212B (zh) 2020-02-28

Family

ID=55310924

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680006034.9A Active CN107409212B (zh) 2015-01-16 2016-01-13 使用变换系数的逐渐更新进行编码和解码的方法及设备

Country Status (5)

Country Link
US (1) US9762912B2 (zh)
EP (1) EP3245787A1 (zh)
CN (1) CN107409212B (zh)
TW (1) TW201631967A (zh)
WO (1) WO2016115186A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111684812A (zh) * 2017-12-06 2020-09-18 V-诺瓦国际有限公司 分级数据结构
CN112602329A (zh) * 2018-06-21 2021-04-02 瑞典爱立信有限公司 用于360度视频解码的块置乱
CN112913242A (zh) * 2020-07-24 2021-06-04 深圳市大疆创新科技有限公司 编码方法和编码装置
CN113170149A (zh) * 2018-12-03 2021-07-23 交互数字Vc控股公司 用于图片编码和解码的方法和设备

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10440366B2 (en) * 2016-07-01 2019-10-08 Intel Corporation Method and system of video coding using content based metadata
US11792824B2 (en) * 2020-03-30 2023-10-17 Qualcomm Incorporated Multicast feedback and retransmission for transport block grouping

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW376662B (en) * 1997-10-30 1999-12-11 Fujitsu Ltd Image data encoding apparatus
CN1685731A (zh) * 2002-09-27 2005-10-19 皇家飞利浦电子股份有限公司 可分级视频编码
CN101088295A (zh) * 2004-12-22 2007-12-12 皇家飞利浦电子股份有限公司 可分级编码
CN102301707A (zh) * 2009-01-27 2011-12-28 汤姆森特许公司 视频编码和解码中用于变换选择的方法和装置
US20140161367A1 (en) * 2012-12-12 2014-06-12 Apple Inc. Lossless Image Compression using Differential Transfer

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0885520A1 (en) 1996-03-05 1998-12-23 Telefonaktiebolaget Lm Ericsson Progressive image coding
US6614936B1 (en) 1999-12-03 2003-09-02 Microsoft Corporation System and method for robust video coding using progressive fine-granularity scalable (PFGS) coding
US6912255B2 (en) 2002-05-30 2005-06-28 Mobixell Netwoks Inc. Bit rate control through selective modification of DCT coefficients
BR0312657A (pt) 2002-07-16 2007-06-26 Nokia Corp método para executar uma restauração gradual do conteúdo de imagem com acesso randÈmico em uma seqüência de vìdeo codificada
US7782954B2 (en) 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
JP2008514107A (ja) 2004-09-16 2008-05-01 サムスン エレクトロニクス カンパニー リミテッド ウェーブレット変換装置及びその方法、それを採用したスケーラブル画像符号化装置及びその方法、スケーラブル画像復号化装置及びその方法
US8107527B1 (en) 2005-07-28 2012-01-31 Teradici Corporation Progressive block encoding using region analysis
US8665946B2 (en) 2007-10-12 2014-03-04 Mediatek Inc. Macroblock pair coding for systems that support progressive and interlaced data
US8891615B2 (en) * 2008-01-08 2014-11-18 Qualcomm Incorporated Quantization based on rate-distortion modeling for CABAC coders
JP4979655B2 (ja) * 2008-08-07 2012-07-18 キヤノン株式会社 画像符号化装置及びその制御方法
JP5768565B2 (ja) * 2011-07-28 2015-08-26 富士通株式会社 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
US9313497B2 (en) * 2012-01-25 2016-04-12 Intel Corporation Systems, methods, and computer program products for transform coefficient sub-sampling
US8861877B2 (en) * 2012-07-19 2014-10-14 Omnivision Technologies, Inc. System and method for improving decoder performance by using multiple decoding channels
US20140078249A1 (en) 2012-09-20 2014-03-20 Qualcomm Incorporated Indication of frame-packed stereoscopic 3d video data for video coding
US9294777B2 (en) 2012-12-30 2016-03-22 Qualcomm Incorporated Progressive refinement with temporal scalability support in video coding
US9154782B2 (en) * 2013-09-16 2015-10-06 Magnum Semiconductor, Inc. Apparatuses and methods for adjusting coefficients using dead zones

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW376662B (en) * 1997-10-30 1999-12-11 Fujitsu Ltd Image data encoding apparatus
CN1685731A (zh) * 2002-09-27 2005-10-19 皇家飞利浦电子股份有限公司 可分级视频编码
US20060008002A1 (en) * 2002-09-27 2006-01-12 Koninklijke Philips Electronics N.V. Scalable video encoding
CN101088295A (zh) * 2004-12-22 2007-12-12 皇家飞利浦电子股份有限公司 可分级编码
CN102301707A (zh) * 2009-01-27 2011-12-28 汤姆森特许公司 视频编码和解码中用于变换选择的方法和装置
US20140161367A1 (en) * 2012-12-12 2014-06-12 Apple Inc. Lossless Image Compression using Differential Transfer

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111684812A (zh) * 2017-12-06 2020-09-18 V-诺瓦国际有限公司 分级数据结构
CN111684812B (zh) * 2017-12-06 2023-12-22 V-诺瓦国际有限公司 解码经编码二维数据流的方法及解码器
CN112602329A (zh) * 2018-06-21 2021-04-02 瑞典爱立信有限公司 用于360度视频解码的块置乱
US11711530B2 (en) 2018-06-21 2023-07-25 Telefonaktiebolaget Lm Ericsson (Publ) Tile shuffling for 360 degree video decoding
CN112602329B (zh) * 2018-06-21 2023-08-11 瑞典爱立信有限公司 用于360度视频解码的块置乱
CN113170149A (zh) * 2018-12-03 2021-07-23 交互数字Vc控股公司 用于图片编码和解码的方法和设备
CN112913242A (zh) * 2020-07-24 2021-06-04 深圳市大疆创新科技有限公司 编码方法和编码装置
CN112913242B (zh) * 2020-07-24 2023-02-28 深圳市大疆创新科技有限公司 编码方法和编码装置

Also Published As

Publication number Publication date
EP3245787A1 (en) 2017-11-22
US9762912B2 (en) 2017-09-12
TW201631967A (zh) 2016-09-01
WO2016115186A1 (en) 2016-07-21
CN107409212B (zh) 2020-02-28
US20160212425A1 (en) 2016-07-21

Similar Documents

Publication Publication Date Title
JP7062788B2 (ja) ビデオを復号する方法、装置およびコンピュータプログラム
CN105432077B (zh) 在切换色彩空间时调整量化/缩放和逆量化/缩放
CN104584560B (zh) 在去块时使用色度量化参数偏移
CN105960802B (zh) 切换色彩空间时对编码和解码的调整
CN105684409B (zh) 在视频和图像编码和解码中使用散列值来表示各块
CN105765974B (zh) 用于视频和图像编码和解码的帧内块复制预测模式的特征
CN105264888B (zh) 用于对色彩空间、色彩采样率和/或比特深度自适应切换的编码策略
CN105659602B (zh) 用于视频和图像编码的帧内块复制预测模式的编码器侧选项
CN105493507B (zh) 用于帧内块复制的残余预测
CN110024398A (zh) 针对屏幕远程处理场景的局部的基于散列的运动估计
CN107409212A (zh) 用于编码和解码的使用变换系数的逐渐更新
CN107211150A (zh) 动态更新质量至较高的色度采样率
JP7048755B2 (ja) 柔軟なツリー構造
CN105917650A (zh) 视频和图像编码/解码中的块向量预测
JP7343668B2 (ja) Vvcにおける色変換のための方法及び機器
CN107710758A (zh) 针对视频译码处理高动态范围及广色域视频数据
CN105230023A (zh) 色彩空间、色彩采样率和/或比特深度的自适应切换
CN105532007A (zh) 在视频译码中用于非亮度分量的自适应解块滤波
CN104041035A (zh) 用于复合视频的无损编码及相关信号表示方法
CN106031177A (zh) 用于硬件加速的视频编码的主编码器
CN105659606A (zh) 用于视频和图像编码和解码的基础颜色索引图模式的特征
JP7362877B2 (ja) イントラ予測モードとブロック差分パルスコード変調モードとの間の相互作用のための方法および装置
CN105230021B (zh) 屏幕内容的词典编码和解码
JP7337164B2 (ja) ビデオ復号及び符号化の方法、装置並びにコンピュータプログラム
JP7297918B2 (ja) ビデオ符号化のための色変換

Legal Events

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