CN108702520B - 用于显示流压缩的基于向量的熵译码的设备及方法 - Google Patents

用于显示流压缩的基于向量的熵译码的设备及方法 Download PDF

Info

Publication number
CN108702520B
CN108702520B CN201780012964.XA CN201780012964A CN108702520B CN 108702520 B CN108702520 B CN 108702520B CN 201780012964 A CN201780012964 A CN 201780012964A CN 108702520 B CN108702520 B CN 108702520B
Authority
CN
China
Prior art keywords
vector
video
coding
code
sample
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
CN201780012964.XA
Other languages
English (en)
Other versions
CN108702520A (zh
Inventor
V·提鲁马莱
N·H·雅各布森
R·L·乔许
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN108702520A publication Critical patent/CN108702520A/zh
Application granted granted Critical
Publication of CN108702520B publication Critical patent/CN108702520B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/182Methods 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 pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data

Landscapes

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

Abstract

本发明公开用于对具有多个视频样本的视频信息进行译码的方法及设备。视频样本经分割成用于在单个时钟周期内发射的群组,其中所述样本与位长度B及具有群组大小K的群组相关联。所述样本群组映射到码号且经译码以形成基于向量的码,所述码包括识别用于执行所述映射的查找表的类型的第一部分及表示所述群组的所述样本的第二部分。所述查找表可基于不同样本群组的发生概率而予以构建。另外,可针对不同B及K值使用不同类型的查找表。

Description

用于显示流压缩的基于向量的熵译码的设备及方法
技术领域
本发明涉及视频译码及压缩的领域,且特定来说,涉及用于经由显示连结的发射的视频压缩,例如显示流压缩(DSC)。
背景技术
数字视频能力可并入到广泛范围的显示器中,包含数字电视、个人数字助理(PDA)、膝上型计算机、台式监视器、数字摄像机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置,及其类似者。显示连结用于将显示器连接到适合的源装置。显示连结的带宽需求与显示器的分辨率成比例,且因此,高分辨率的显示器需要大带宽显示连结。一些显示连结不具有支持高分辨率显示器的带宽。视频压缩可用于降低带宽需求,使得较低带宽显示连结可用于将数字视频提供到高分辨率显示器。
其它人已尝试利用对像素数据的图像压缩。然而,此类方案有时在视觉上并非无损,或可能在常规显示装置中难以实施且昂贵。
视频电子元件标准协会(VESA)已开发显示流压缩(DSC)作为显示连结视频压缩的标准。显示连结视频压缩技术(例如DSC)应尤其提供视觉上无损的图片质量(例如,图片具有使得用户无法分辨出进行过压缩的质量水平)。显示连结视频压缩技术也应提供可结合常规硬件实时、简易且便宜地实施的方案。
发明内容
本发明的***、方法及装置各自具有若干创新方面,其中无单一者单独负责本文中所公开的合乎需要的属性。
在一个方面中,公开用于对具有多个视频样本的视频信息进行译码的方法及设备。视频样本经分割成用于在单个时钟周期内发射的群组,其中所述样本与位长度B及具有群组大小K的群组相关联。所述样本群组映射到码号且经译码以形成基于向量的码,所述码包括识别用于执行所述映射的查找表的类型的第一部分及表示所述群组的所述样本的第二部分。所述查找表可基于不同样本群组的发生概率而予以构建。另外,可针对不同B及K值使用不同类型的查找表。
附图说明
图1A是说明可利用根据本发明中描述的方面的技术的示范性视频编码及解码***的框图。
图1B是说明可执行根据本发明中描述的方面的技术的另一实例视频编码及解码***的框图。
图2A是说明可实施根据本发明中描述的方面的技术的视频编码器的实例的框图。
图2B是说明可实施根据本发明中描述的方面的技术的视频解码器的实例的框图。
图3展示确定量化参数(QP)调整值的示范性方法。
图4展示具有K=4个样本的向量的DSU-VLC结构。
图5说明针对示范性4样本群组的DSU-VLC码。
图6说明均匀分组的实例,其中2×8块被分割成4个群组。
图7说明基于向量的EC过程的示范性框图。
图8展示可用于对含有K=4的样本的群组进行译码的基于向量的EC的结构,其中所用的LUT类型明确地用信号表示。
图9说明包括经组合的LUT类型信号与VLC码前缀的码。
图10A及10B说明使用正负号量值表示法对多个样本向量进行熵译码的实例。
图11说明示范性图,所述示范性图说明对使用正负号量值译码的样本向量进行剖析及解码可能需要的数个时钟周期。
图12说明多个样本向量的混合熵译码的实例。
图13说明示范性图,所述示范性图说明对使用混合译码方案译码的样本向量进行剖析及解码可能需要的数个时钟周期。
图14A及14B说明用于对样本向量数据进行编码/解码的过程的流程图。
图15说明用于使用混合译码对样本向量数据进行编码的示范性过程的流程图。
具体实施方式
大体来说,本发明涉及改进视频压缩技术(例如,显示流压缩(DSC))的技术。更具体来说,本发明涉及用于通过将块值分割为样本向量且至少部分地基于所述样本向量的发生概率对所述样本向量进行译码以在每时钟周期发射多个样本值的***及方法。
虽然本文于DSC标准的上下文中描述某些实施例,但所属领域的一般技术人员应理解,本文中所公开的***及方法可适用于任何合适的视频译码标准。举例来说,本文中所公开的实施例可适用于以下标准中的一或多者:国际电信联盟(ITU)电信标准化部门(ITU-T)H.261、国际标准化组织/国际电工委员会(ISO/IEC)动画专业团体-1(MPEG-1)Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-TH.264(也称为ISO/IEC MPEG-4AVC)、高效视频译码(HEVC),及此类标准的任何扩展。本文所描述的技术可能特别适用于并有恒定位率(CBR)缓冲器模型的标准。而且,本发明中描述的技术可变为未来开发的标准的部分。换句话说,本发明中描述的技术可适用于先前开发的视频译码标准、当前正在开发的视频译码标准及即将出现的视频译码标准。
本发明的概念可集成于包含若干元件及/或模式的编码解码器(例如,DSC)中或为所述编码解码器的一部分,所述元件及/或模式旨在以大体在视觉上无损的性能编码/解码各种类型的内容。本发明提供用于将视频样本分割为群组以用于在单个时钟周期内发射的***及方法,其中所述样本与位长度B及具有群组大小K的群组相关联。所述样本群组可映射到码号且经译码以形成基于向量的码,所述码包括识别用于执行所述映射的查找表的类型的第一部分及表示所述群组的所述样本的第二部分。所述查找表可基于不同样本群组的发生概率而予以构建。另外,可针对不同B及K值使用不同类型的查找表,从而允许更有效的译码。
视频译码标准
例如视频图像、TV图像、静态图像或由视频记录器或计算机产生的图像的数字图像可包含依水平线及竖直线布置的像素或样本。单个图像中的像素的数目通常为数万个。每一像素通常含有明度及色度信息。在无压缩的情况下,待从图像编码器传送到图像解码器的信息的绝对数量将使实时图像发射显得不切实际。为了减少待发射的信息的量,已开发数个不同压缩方法,例如JPEG、MPEG及H.263标准。
视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H 264(也称为ISO/IECMPEG-4 AVC),及包含此类标准的扩展的HEVC。
另外,视频译码标准(即DSC)已由VESA开发。DSC标准为可压缩视频以用于经由显示连结发射的视频压缩标准。随着显示器的分辨率增大,驱动显示器所需的视频数据的带宽对应地增大。一些显示连结可能不具有将全部视频数据发射到此类分辨率的显示器的带宽。因此,DSC标准指定用于经由显示连结的可互操作、在视觉上无损的压缩的压缩标准。
DSC标准与其它视频译码标准(例如,H.264及HEVC)不同。DSC包含帧内压缩,但不包含帧间压缩,意谓时间信息可不被DSC标准用于对视频数据进行译码。相比来说,其它视频译码标准可在其视频译码技术中使用帧间压缩。
视频译码***
下文参考随附图式更充分地描述新颖***、设备及方法的各种方面。然而,本发明可以许多不同形式来体现,且不应被解释为限于贯穿本发明所呈现的任何具体结构或功能。确切来说,此些方面经提供以使得本发明将为透彻及完整的,且将向所属领域的技术人员充分传达本发明的范围。基于本文中的教示,所属领域的技术人员应了解,本发明的范围打算涵盖本文所公开的新颖***、设备及方法的任何方面,不管是独立于本发明的任何其它方面实施还是与本发明的任何其它方面组合地实施。举例来说,可使用本文所阐述的任何数目个方面来实施设备或实践方法。另外,本发明的范围打算涵盖使用除本文所阐述的本发明的各种方面之外的或不同于本文所阐述的本发明的各种方面的其它结构、功能性、或结构与功能性来实践的此类设备或方法。应理解,可通过权利要求书的一或多个要素来体现本文所公开的任何方面。
尽管本文描述特定方面,但此些方面的许多变化及排列属于本发明的范围内。尽管提及优选方面的一些益处及优点,但本发明的范围并不打算限于特定益处、用途或目标。确切来说,本发明的方面打算广泛适用于不同无线技术、***配置、网络及发射协议,其中一些作为实例在图式中及在优选方面的以下描述中予以说明。详细描述及图式仅说明本发明而非限制本发明,本发明的范围由所附权利要求书及其等效物界定。
随附图式说明实例。随附图式中由参考数字指示的元件对应于以下描述中由相同参考数字指示的元件。在本发明中,具有以序数词(例如,“第一”、“第二”、“第三”等等)开始的名称的元件未必暗示所述元件具有特定次序。确切来说,此类序数词仅用以指相同或类似类型的不同元件。
图1A是说明可利用根据本发明中描述的方面的技术的示范性视频译码***10的框图。如本文描述所使用,术语“视频译码器”或“译码器”一般指视频编码器及视频解码器两者。在本发明中,术语“视频译码”或“译码”一般可指视频编码及视频解码。除视频编码器及视频解码器之外,本申请案中所描述的方面可扩展到其它相关装置,例如,转码器(例如,可解码位流且重新编码另一位流的装置)及中间体(middlebox)(例如,可修改、变换及/或以其它方式操控位流的装置)。
如图1A中所展示,视频译码***10包含产生在稍后时间由目的地装置14解码的经编码视频数据的源装置12。在图1A的实例中,源装置12及目的地装置14构成单独装置。然而,应注意,源装置12与目的地装置14可在同一装置上或为同一装置的部分,如在图1B的实例中所展示。
再次参考图1A,源装置12及目的地装置14可分别包括广泛范围的装置中的任一者,包含台式计算机、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能型”电话、所谓的“智能型”平板)、电视、摄像机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机、视频流装置、可由物理(例如,人、动物及/或另一受控装置)穿戴(或可去除地可附接到所述物理)的装置(例如,护目镜及/或可穿戴式计算机)、可被消费、摄取或放置于实体内的装置或设备,及/或其类似者。在各种实施例中,源装置12及目的地装置14可经配备以用于无线通信。
目的地装置14可经由连结16接收待解码的经编码视频数据。连结16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在图1A的实例中,连结16可包括使源装置12能够实时将经编码视频数据发射到目的地装置14的通信媒体。经编码视频数据可根据通信标准(例如,无线通信协议)来调制,且被发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线。通信媒体可形成基于包的网络(例如,局域网、广域网或例如因特网的全球网络)的部分。通信媒体可包含路由器、交换器、基站或可适用于促进从源装置12到目的地装置14的通信的任何其它装备。
在图1A的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些情况下,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。在源装置12中,视频源18可包含例如视频俘获装置(例如,摄像机)、含有先前所俘获视频的视频存档、从视频内容提供者接收视频的视频馈入接口及/或用于产生计算机图形数据作为源视频的计算机图形***的源,或此类源的组合。作为一个实例,如果视频源18为摄像机,那么源装置12及目的地装置14可形成所谓的“摄像机电话”或“视频电话”,如在图1B的实例中所说明。然而,本发明中所描述的技术可大体适用于视频译码,且可应用于无线及/或有线应用。
可由视频编码器20对所俘获的、预俘获的或计算机产生的视频进行编码。经编码视频数据可经由源装置12的输出接口22发射到目的地装置14。也可(或替代地)将经编码视频数据存储到存储装置31上以供稍后由目的地装置14或其它设备存取以用于解码及/或播放。图1A及1B中所说明的视频编码器20可包括图2A中所说明的视频编码器20或本文所描述的任何其它视频编码器。
在图1A的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些情况下,输入接口28可包含接收器及/或调制解调器。目的地装置14的输入接口28可经由连结16及/或从存储装置31接收经编码视频数据。经由连结16传达或在存储装置31上提供的经编码视频数据可包含由视频编码器20产生以由视频解码器(例如,视频解码器30)用于解码视频数据的各种语法元素。此类语法元素可与发射于通信媒体之上、存储于存储媒体之上或存储于文件服务器上的经编码视频数据包含在一起。图1A及1B中说明的视频解码器30可包括图2B中说明的视频解码器30或本文所描述的任何其它视频解码器。
显示装置32可与目的地装置14集成或在所述目的地装置外部。在一些实例中,目的地装置14可包含集成显示装置,且也经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。大体来说,显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如,液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
在相关方面中,图1B展示示范性视频译码***10',其中源装置12及目的地装置14在装置11上或为装置11的部分。装置11可为电话手机,例如“智能型”电话或其类似者。装置11可包含与源装置12及目的地装置14操作性通信的处理器/控制器装置13(任选地存在)。图1B的视频译码***10'及其组件在其它方面类似于图1A的视频译码***10及其组件。
视频编码器20及视频解码器30可根据视频压缩标准(例如,DSC)来操作。或者,视频编码器20及视频解码器30可根据其它专有或工业标准(例如,ITU-T H.264标准(或者被称作MPEG-4第10部分AVC)、HEVC或此类标准的扩展)而操作。然而,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2及ITU-T H.263。
尽管未在图1A及1B的实例中展示,但视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当MUX-DEMUX单元或其它硬件及软件以处置共同数据流或单独数据流中的音频及视频两者的编码。在一些实例中,如果适用,那么MUX-DEMUX单元可符合ITU H.223多路复用器协议或其它协议,例如用户数据报协议(UDP)。
视频编码器20及视频解码器30各自可实施为多种合适编码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当所述技术部分地在软件中实施时,装置可将用于软件的指令存储于合适的非暂时性计算机可读媒体中,且在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可集成为各别装置中的组合编码器/解码器的部分。
视频译码过程
如以上简要地提及,视频编码器20对视频数据进行编码。视频数据可包括一或多个图片。图片中的每一者形成视频的部分的静态图像。在一些情况下,图片可被称作视频“帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。所述位流可包含形成视频数据的经译码表示的位序列。所述位流可包含经译码图片及相关联的数据。经译码图片为图片的经译码表示。
为了产生位流,视频编码器20可对视频数据中的每一图片执行编码操作。当视频编码器20对图片执行编码操作时,视频编码器20可产生一系列经译码图片及相关联的数据。相关联数据可包含译码参数(例如,QP)的集合。为了产生经译码图片,视频编码器20可将图片分割为相等大小的视频块。视频块可为样本的二维阵列。译码参数可定义视频数据的每一块的译码选项(例如,译码模式)。译码选项可经选择以便达成所要的速率-失真性能。
在一些实例中,视频编码器20可将图片分割为多个图块。图块中的每一者可包含图像(例如,帧)中的空间不同区域,所述区域可在无来自所述图像或帧中的其余区域的信息的情况下被独立解码。每一图像或视频帧可以单个图块予以编码,或每一图像或视频帧可以若干图块予以编码。在DSC中,经分配以编码每一图块的目标位可大体上恒定。作为对图片执行编码操作的部分,视频编码器20可对图片的每一图块执行编码操作。当视频编码器20对图块执行编码操作时,视频编码器20可产生与图块相关联的经编码数据。与图块相关联的经编码数据可被称作“经译码图块”。
DSC视频编码器
图2A为说明可实施根据本发明中描述的方面的技术的视频编码器20的实例的框图。视频编码器20可经配置以执行本发明的技术中的一些或全部。在一些实例中,本发明中描述的技术可在视频编码器20的各种组件之间共享。在一些实例中,另外或替代地,处理器(未展示)可经配置以执行本发明中描述的技术中的一些或全部。
出于解释的目的,本发明在DSC译码的上下文中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。
在图2A的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包含色彩空间转换器105、缓冲器110、平度检测器115、速率控制器120、预测器、量化器及重构建器组件125、线缓冲器130、索引色彩历史135、熵编码器140、子流多路复用器145及速率缓冲器150。在其它实例中,视频编码器20可包含更多、更少或不同的功能组件。
色彩空间转换器105可将输入色彩空间转换为用于译码实施的色彩空间。举例来说,在一个示范性实施例中,输入视频数据的色彩空间为红、绿及蓝(RGB)色彩空间,且译码以明度Y、绿色色度Cg及橙色色度Co(YCgCo)色彩空间实施。色彩空间转换可由包含移位及添加到视频数据的方法执行。应注意,可处理其它色彩空间的输入视频数据,且也可执行转换到其它色彩空间。
在相关方面中,视频编码器20可包含缓冲器110、线缓冲器130及/或速率缓冲器150。举例来说,缓冲器110可在视频编码器20的其它部分使用色彩空间转换视频数据之前保持所述色彩空间转换视频数据。在另一实例中,所述视频数据可以RGB色彩空间存储,且可按需要执行色彩空间转换,此是由于色彩空间转换数据可能需要更多位。
速率缓冲器150可充当视频编码器20中的速率控制机构的部分,下文将结合速率控制器120对此更详细地描述。编码每一块所耗费的位可大体上基于所述块的性质而高度变化。速率缓冲器150可平缓经压缩视频中的速率变化。在一些实施例中,使用其中以恒定位率从缓冲器获得位的CBR缓冲器模型。在CBR缓冲器模型中,如果视频编码器20添加过多位到位流,那么速率缓冲器150可能上溢。另一方面,视频编码器20必须添加足够位以便防止速率缓冲器150的下溢。
在视频解码器侧,可以恒定位率将位添加到视频解码器30的速率缓冲器155(见下文更详细地描述的图2B),且视频解码器30可去除每一块的可变数目个位。为确保恰当的解码,视频解码器30的速率缓冲器155不应在经压缩位流的解码期间“下溢”或“上溢”。
在一些实施例中,缓冲器充满度(BF)可基于表示当前在缓冲器中的位数目的值BufferCurrentSize及表示速率缓冲器150的大小的BufferMaxSize(例如,可在任何时间点存储于速率缓冲器150中的最大位数目)来定义。BF可计算为:
BF=((BufferCurrentSize*100)/BufferMaxSize)
应注意,上文计算BF的方法仅为示范性的,且所述BF可视特定实施方案或上下文而以任何数目个不同方式来计算。
平度检测器115可检测从视频数据中的复杂(例如,非平坦)区域到视频数据中的平坦(例如,简单或均匀)区域的变化,及/或反之亦然。术语“复杂”及“平坦”将在本文中用以大体上指视频编码器20编码视频数据的各别区域的难度。因此,本文所使用的术语复杂大体上描述视频数据的区域对视频编码器20来说编码复杂,且可(例如)包含纹理化视频数据、高空间频率及/或编码复杂的其它特征。本文所使用的术语平坦大体上描述视频数据的区域对视频编码器20来说编码简单,且可(例如)包含视频数据中的平滑梯度、低空间频率及/或编码简单的其它特征。从复杂区域到平坦区域的过渡可由视频编码器20用以减少经编码视频数据中的量化伪影。具体来说,速率控制器120及预测器、量化器及重构建器组件125可在从复杂区域到平坦区域的过渡被识别时减少此类量化伪影。类似地,从平坦区域到复杂区域的过渡可由视频编码器20用以增大QP,以便减小对当前块进行译码所需的预期速率。
速率控制器120确定译码参数(例如QP)的集合。QP可由速率控制器120基于速率缓冲器150的缓冲器充满度及视频数据的图像活动(例如,从复杂区域到平坦区域的过渡,或平坦区域到复杂区域的过渡)来调整,以便使确保速率缓冲器150不上溢或下溢的目标位率的图片质量最大化。速率控制器120也针对视频数据的每一块选择特定译码选项(例如,特定模式)以便实现最优选速率-失真性能。速率控制器120将经重构建图像的失真最小化以使得其满足位率约束条件(例如,整体实际译码速率适应目标位率)。因此,速率控制器120的一个目的为确定译码参数(例如,QP、译码模式等)的集合以满足对速率的瞬时及平均约束,同时使速率-失真性能最大化。
预测器、量化器及重构建器组件125可执行视频编码器20的至少三个编码操作。预测器、量化器及重构建器组件125可以数个不同模式执行预测。一个实例预测模式为中值适应性预测的经修改版本。中值适应性预测可通过无损JPEG标准(JPEG-LS)实施。可由预测器、量化器及重构建器组件125执行的中值适应性预测经修改版本可允许三个连续样本值的平行预测。另一实例预测模式为块预测。在块预测中,依据上方的线中或同一线中左侧的先前经重构建像素预测样本。在一些实施例中,视频编码器20及视频解码器30皆可对经重构建像素执行相同搜索以确定块预测使用,且因此在块预测模式中不需要发送位。在其它实施例中,视频编码器20可在位流中执行搜索及信号块预测向量,使得视频解码器30不必执行单独搜索。也可实施中点预测模式,其中使用组件范围的中点来预测样本。中点预测模式可实现对甚至最坏情况样本中的经压缩视频所需的位数目的限定。
预测器、量化器及重构建器组件125也执行量化。举例来说,可经由可使用移位器实施的2次幂量化器执行量化。应注意,可实施其它量化技术以代替2次幂量化器。由预测器、量化器及重构建器组件125执行的量化可基于由速率控制器120确定的QP。最终,预测器、量化器及重构建器组件125也执行重构建,所述重构建包含将经反量化的残差添加到预测值及确保结果不超出样本值的有效范围。
应注意,上文所描述的由预测器、量化器及重构建器组件125执行的预测、量化及重构建的实例方法仅为说明性的,且可实施其它方法。也应注意,预测器、量化器及重构建器组件125可包含用于执行预测、量化及/或重构建的子组件。应进一步注意,可由若干单独编码器组件代替预测器、量化器及重构建器组件125执行预测、量化及/或重构建。
线缓冲器130保持来自预测器、量化器及重构建器组件125的输出,使得预测器、量化器及重构建器组件125及索引色彩历史135可使用经缓冲的视频数据。索引色彩历史135存储最近使用的像素值。此些最近使用的像素值可由视频编码器20经由专用语法直接参考。
熵编码器140基于索引色彩历史135及平度检测器115所识别的平度转变来对从预测器、量化器及重构建器组件125接收的预测残差及任何其它数据(例如,预测器、量化器及重构建器组件125所识别的索引)进行编码。在一些实例中,熵编码器140可每时钟每子流编码器编码三个样本。子流多路复用器145可基于无标头包多路复用方案来多路复用位流。此允许视频解码器30并行执行三个熵解码器,从而促进每时钟三个像素的解码。子流多路复用器145可使包次序优化,使得包可由视频解码器30有效地解码。应注意,可实施不同的熵译码方法,此可有助于每时钟2次幂个像素(例如,2像素/时钟或4像素/时钟)的解码。
DSC视频解码器
图2B为说明可实施根据本发明中描述的方面的技术的视频解码器30的实例的框图。视频解码器30可经配置以执行本发明的技术中的一些或全部。在一些实例中,本发明中描述的技术可在视频编码器30的各种组件当中共享。在一些实例中,另外或替代地,处理器(未展示)可经配置以执行本发明中描述的技术中的一些或全部。
出于解释的目的,本发明在DSC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。
在图2B的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包含速率缓冲器155、子流多路分用器160、熵解码器165、速率控制器170、预测器、量化器及重构建器组件175、索引色彩历史180、线缓冲器185及色彩空间转换器190。所说明的视频解码器30的组件类似于上文结合图2A中的视频编码器20所描述的对应组件。由此,视频解码器30的组件中的每一者可以与上文所描述的视频编码器20的对应组件类似的方式操作。
QP计算
在一个方法中,速率控制器120可基于以下方程式导出或计算当前视频数据块的QP(标示为currQP):
currQP=prevQ+QpAdj*(diffBits>0?1:-1),
其中prevQP是与先前块相关联的QP,且QpAdj为可基于diffBits的量值计算的QP偏移值(例如,QP调整值)。DiffBits表示previousBlockBits与targetBits之间的差值,其中previousBlockBits表示用于对先前块进行译码的位数目,且targetBits表示藉以对当前块进行译码的目标位数目。当previousBlockBits>targetBits时,diffBits为正,且速率控制器120可通过将偏移值QpAdj添加到prevQP值而导出当前块的QP(currQP)。换句话说,当diffBits为正时,QP值currQP与prevQP值相比并未在值方面减小。当previousBlockBits≤targetBits时,diffBits为负或零,且由速率控制器120导出的currQP与prevQP值相比并未增大。应注意,在一些实施例中,速率控制器120可计算随diffBits而变的偏移值QpAdj,其方式为使得QpAdj随着diffBits的量值增大而单调增大。
图3说明描绘用于计算QP调整值QpAdj的示范性技术的图300。图300说明水平轴线302,在其上标绘起始于零的diffBits值。在一些实施中,当diffBits>0时,diffBits的值可使用K个阈值分类为K+1个范围。K个阈值在图3中通过标记阈值1、阈值2、阈值3、……及阈值K说明,而K+1个范围通过标记范围1、范围2、范围3、……及范围K+1说明。K+1个范围的每一范围可与具体QpAdj值相关联。举例来说,速率控制器120可随着diffBits的值的范围索引增大而增大QpAdj值。在一些实施例中,当diffBits≤0时,速率控制器120可使用J个阈值(未说明)将diffBits的绝对值分类为J+1个范围,且针对J+1个范围中的每一者指派具体QpAdj值。
在其它方面中,速率控制器120可基于图2A中所说明的缓冲器110的充满度来调整currQP值,以便防止缓冲器110的下溢及/或上溢。缓冲器110的充满度可依照所计算缓冲器充满度参数BF来表示。特定来说,当BF超出某一阈值(例如,P1)时,速率控制器120可依固定偏移值(例如,p1)递增currQP。举例来说,currQP可调整如下:currQP+=p1。此外,当BF降到某一阈值(例如,Q1)以下时,速率控制器120可依固定值q1递减currQP,例如,currQP-=q1。在某一方面中,可使用BF的多个阈值,类似于在图3中结合diffBits说明的阈值及范围。举例来说,BF的每一阈值可与对应的偏移值相关联以调整currQP。
差量大小单元-可变长度译码
在一些实施例中,译码器(例如,视频编码器20或视频解码器30)可使用差量大小单元(DSU)译码以提供低成本、固定速率、在视觉上无损的压缩。译码器可基于以块为基础的方法设计(其中块大小P×Q)且包括众多译码模式。举例来说,针对每一视频数据块的译码模式可包含(但不限于)变换(例如,DCT、Hadamard)、块预测、DPCM、图案、中点预测(MPP)及中点预测后降(MPPF)模式。在一些实施例中,若干不同译码模式可通过编码器20实施,以便有效地压缩不同类型的内容或图片。举例来说,在一些实施例中,编码器20可使用图案模式压缩文本图片,且使用变换模式压缩自然图片。
在一些实施例中,编码器20基于速率控制机构(例如,如图2A中所说明的速率控制器120)而针对每一各别视频数据块从多个译码模式挑选、选择或确定译码模式。编码器20也可在视频数据位流中将所选译码模式用信号表示,使得解码器30在收到位流之后可即刻能够确定用于译码所述视频数据的译码模式。速率控制器120可旨在通过考虑所述模式的速率及失真两者来选择用于每一块的有效译码模式。速率控制器120可由与缓冲器110(如图2A中所说明)相关联的缓冲器模型或用于存储传入块数据的其它类型的存储器支持。缓冲器110可(例如)根据编码解码器(例如DSC)的要求而配置,使得缓冲器110从不处于下溢(例如,在缓冲器中少于零个位)或上溢(例如,缓冲大小已增大超过设定的最大大小)状态。
如上文所论述,编码器20的预测器、量化器及重构建器组件125可执行量化,所述量化可在经译码视频数据的块中引起损失,其中所述损失量可由所述块的量化参数控制。举例来说,在一些实施例中,预测器、量化器及重构建器组件125可通过丢弃一或多个位平面来执行量化,其中所丢弃的位平面的数目可由与块的QP相关联的量化步长指示。在一些实施例中,替代编码器20存储每一QP的量化步长,编码器20可指定随QP而变化的缩放矩阵。每一QP的量化步长可从缩放矩阵导出,且其中导出的值不必为二的幂,例如,导出的值也可为等于非二的幂的值。在一些实施例中,编码器20对缩放矩阵的使用可允许预测器、量化器及重构建器组件125在比简单地去除位平面更具粒度的情况下执行量化,从而潜在增大性能。
在一些实施例中,如果给定视频数据块中的单个分量(例如,特定色彩分量、明度或色度分量等)的所有值为零,那么编码器20可使用跳过模式有效地对所述块进行译码。在跳过模式译码中,编码器20可对可由解码器30读取的语法元素或指示符(例如,1位旗标)进行译码,所述语法元素或指示符指示当前块是使用跳过模式(在对于当前块、分量的所有值为零的情况下)还是未使用跳过模式(在所述块中的所述分量的至少一个值非零的情况下)译码。
在一些实施例中,编码器20可使用差量大小单元-可变长度译码(DSU-VLC)而使用前缀部分及后缀部分来对K长度样本向量(也称作“群组”)的经量化残差值进行译码。样本可指单个色彩分量中的值,例如,对于RGB 444,每一像素具有三个样本。前缀部分指示在后缀部分后的残差值的大小(例如,位的长度)(所述大小标示为B个位),而后缀部分指示所述样本向量中的所有样本的实际残差值。在一些实施例中,群组中的K个残差值中的每一者使用相同的数目的位使用二的补数来译码。
图4展示根据一些实施例的用于对具有K=4个样本的样本向量402进行译码的DSU-VLC结构404。在一些实施例中,DSU-VLC结构404可对应于如图2A中所说明的熵编码器140。样本向量402可包括多个样本,每一样本对应于视频数据的特定色彩分量的残差值。如图4中所说明,样本向量402可包括四个样本(S0、S1、S2及S3)。DSU-VLC结构404可对所接收的样本向量402进行译码以形成DSU-VLC码406(以下称作码406)。码406包含前缀408及后缀410。后缀410包括多个后缀部分(例如,后缀1、后缀2等),每一者对应于所接收的样本向量402的样本(例如,S0、S1等)。下文参考图5描述码406的前缀408及后缀410的进一步描述。
图5说明可通过熵编码器140针对包括具有值[1,-2,-1,0]的4个样本的样本向量(未展示)译码的码502。码502可对应于图4中所说明的码406。另外,码502包括前缀504及后缀506(其可分别对应于图4的前缀408及后缀410)。后缀506包括四个后缀部分,每一部分对应于所述样本向量的样本值。
使用二的补数表示法,熵编码器140可使用B=2个位来对所述样本向量的样本中的每一者进行译码。在码502中,前缀504可使用一元码“001”表示,其指示后缀506的经译码后缀部分中的每一者的长度为2个位。后缀506可由值[01,10,11,00]表示,其分别表示样本向量的实际经译码样本值,每一者使用2个位译码。通过对前缀504进行解码(其通常可在单个时钟中完成),解码器30可能够并行对后缀506的所有4个符号进行解码。
群组分割
图6说明根据一些实施例的将给定P×Q视频数据块的样本分割为多个样本向量(群组)的实例。如图6中所说明,块602可为包括16个样本的2×8块。块602的每一样本可对应于视频数据的特定色彩分量的经量化残差值,所述视频数据对应于块602。在使用DSU-VLC结构404对样本进行译码之前,编码器20可将样本分割为多个群组。举例来说,图6说明被分割为四个样本向量604的块602的16个样本,每一样本向量包括4个样本(例如,样本向量604A、604B、604C及604D)。DSU-VLC结构404可对样本向量604A到604D进行译码以产生各自具有前缀及后缀(例如,如图4中所说明)的码(未展示)。如上文所描述,解码器30(如图3中所说明)可能够并行对所述码中的每一者的前缀及后缀进行解码,从而允许解码器30每时钟周期解码4个样本。
通过使用编码器20将块602的样本分割为群组,解码器30在对经译码的群组进行解码时可达成每时钟多个样本的处理量。虽然图6说明块602的样本被均匀地分割为样本向量604,但应理解,编码器20可能均匀地或不均匀地将样本块分割为N个样本向量。在均匀分组方法中,所有N个样本向量604将具有均等数目的样本。另一方面,当使用不均匀分组方法时,每一样本向量604中的样本的数目可不同。
在一些实施例中,块602的分割均匀或是不均匀可基于与块602相关联的译码模式。举例来说,编码器20可在块预测模式中使用均匀分组方法,而在变换模式中使用不均匀分组方法。
基于向量的熵译码
图7说明使用译码器702的基于向量的EC过程的示范性框图,所述译码器可对应于图2A中所说明的熵编码器140。译码器702可用于对样本向量704进行译码。样本向量704可类似如图4中所说明的样本向量402以及如6图中所说明的样本向量604。
如图7中所说明,样本向量704具有向量大小K(例如,[S0,S1,…SK-1])。另外,样本向量704可具有所需的B个位的样本大小(例如,译码器702可能需要每样本B个位以如实地表示群组中的每一样本)。对于给定K及B值,可能的K长度样本向量的总数目为2BK。举例来说,当K=2且B=1时,具有能够使用1个位表示的样本的所有可能的2长度样本向量集合为4,即,[-1,0]、[-1,-1]、[0,0]、[0,-1](当使用2的补数表示时)。使用图4到5中说明的译码方案时,译码器702可使用相同数目个位(例如,BK个位或2个位)译码对应于此些样本向量中的每一者的后缀。由此,对于K及B值的给定组合,不论对2BK个可能向量集合中的哪一K长度样本向量进行译码,用于对样本向量进行译码的位的数目为相同的。此不考量集合中的每一样本向量的发生概率。
然而,当对图像信息进行译码时,某些样本向量704相比于K长度样本向量的集合中的其它样本向量可往往会更具可能性。在一些实施例中,当2BK个向量的集合中的K长度样本向量的分布并不均匀(例如,并非集合中的所有向量同等可能)时,译码器702可基于发生概率而以不同方式对K长度样本向量704进行译码。举例来说,译码器702可使用较少位对与较不可能的K长度样本向量704相比更有可能的K长度样本向量704进行译码。下文所描述的技术是针对在可能的K长度样本向量704的集合是从不均匀分布获取之时用于对K长度样本向量704进行译码的有效译码策略。
在一些实施例中,译码器702可使用基于向量的熵译码(EC)方法,以便在可能的K长度样本向量704的集合是从不均匀分布获取时更有效地对K长度样本向量704进行译码。在一些实施例中,通过执行转换712以将给定K长度样本向量704转换为唯一单个值(例如,“索引”706),译码器702可对群组中的K长度样本向量704执行基于向量的EC。K长度样本向量704与“索引”706之间可存在一对一的对应性。
译码器702可使用计算的索引值706来执行将索引值706映射到“码号”708的映射714。使用VLC码716,译码器702可对“码号”708进行译码以形成可作为视频数据位流的部分被发射到解码器165的经译码位序列710。VLC码716可为非结构化或结构化。非结构化VLC码716的实例包含霍夫曼(Huffman)、算术,而结构化VLC译码可包含指数哥伦布(Exponential-Golomb,EG)、哥伦布莱斯(Golomb-Rice,GR)或EG与GR的混合。在解码器165处,在剖析单个经译码位序列710(通常可在单个时钟中完成)之后,样本向量704中的所有K个样本可即刻被重构建。因此,对基于向量的EC的使用可提供高处理量,通常K个样本/时钟。
在一些实施例中,译码器702可使用可用以将计算的“索引”值706映射到“码号”708的LUT(查找表,未展示)来执行映射714。LUT可基于给定群组的K长度样本向量704的概率值而构建。举例来说,在一些实施例中,LUT可经构建以使得视为更可能的样本向量704被映射到具有较小值或可以其它方式使用较少位译码的码号708(例如,具有较短码长度的码号708)。举例来说,较高概率的样本向量的码号708可使用少于BK个的位译码。在一些实施例中,用于将样本向量704映射到码号708的LUT或数据结构可经构建以使得视为更可能的样本向量704可被更快速存取或当在LUT或数据结构中查找样本向量704时具有较高优先级,从而允许解码器165更快速存取。
在一些实施例中,编码器20可存储用于明度及色度分量样本两者的同一LUT,而在其它实施例中,不同LUT可用于对明度及色度分量样本进行译码。另外,解码器30可存储编码器20所用的LUT或数据结构的其自身副本。举例来说,响应于接收到经译码视频数据的位流及解码一或多个码号708,解码器30可使用其自身的LUT来确定对应的样本向量704。
在一些实施例中,译码器702针对所有大小B使用单个LUT。在其它实施例中,译码器702可针对不同大小的B使用单独的LUT。举例来说,在实施例中,译码器702在B=1时可使用第一LUT1,在大小B=2时使用第二LUT2,例如此类。当译码器702基于大小B选择特定LUT时,译码器702可对经译码的位序列710进行译码,使得所用类型的LUT可明确地用信号表示(例如,当B=1时,用信号表示LUT类型=1,当B=2时,用信号表示LUT类型=2,以此类推)。通过将LUT的类型用信号表示于经译码位710中,解码器165将能够在对所述位序列710进行解码时识别待使用的对应的LUT。在一些实施例中,所述信号发送可呈一元码的形式。或者,将LUT类型用信号表示于经译码位710中可使用固定长度码完成。在其它实施例中,译码器702可使用VLC码(例如霍夫曼或算术)以将LUT类型用信号表示于经译码位710中。
图8展示使用基于向量的EC来对含有K=4个样本的样本向量402进行译码以产生经译码位序列806的译码器702的实例。经译码位806(其可对应于图7中所说明的经译码位序列710)可包括LUT类型信号808及基于向量的VLC码810。LUT类型信号808明确地用信号表示译码器702用以产生经译码位806的LUT的类型(例如,如图7中所说明用于执行将索引值706映射到码号708)。基于向量的VLC码810表示样本向量802中的所有四个样本。在一些实施例中,LUT类型信号808也可指示对样本向量402的样本的值进行译码所需的位数目B。
在一些实施例中,当编码器20应用不均匀分割方法(例如,不同K值)针对特定译码模式(例如,变换模式)构建样本向量402时,归因于每一样本向量中的样本数目K不同,单独LUT可用于不同样本向量大小K。由此,对应于不同B值、不同K值或不同K及B值组合,可使用不同LUT。
用于将索引值706映射到对应的码号708的LUT的大小可随着大小B增大而增大。由此,在一些实施例中,基于向量的EC仅在样本向量402的大小B小于某一阈值时由译码器702使用。此可通过不使编码器20及解码器30存储用于较大值的B的较大大小LUT来完成以便减小存储器需求。举例来说,当B超出阈值限值时,译码器702可使用基于非向量的译码技术(例如,图4到5中说明的DSU-VLC译码方案)对样本向量402进行译码。举例来说,在阈值为4的实施例中,译码器702仅在所接收的样本向量704具有大小B=1、2或3时使用基于向量的EC,而对于具有大小B大于或等于4的样本向量704,使用DSU-VLC译码(如图4到5中所说明)。
此处所公开的技术可应用于任何用于对视频数据块进行译码的译码模式,例如块预测(BP)、变换模式、BP跳过模式、变换跳过、MPP或MPPF。在基于向量的熵译码器702针对多于一个的译码模式应用基于向量的EC的实施例中,每一译码模式可与其自身LUT相关联,或共同LUT可与多个模式相关联。是否使用共同LUT或单独LUT可基于存储器需求与性能之间的取舍而确定。举例来说,在一些实施例中,BP与变换可使用相同的一或多个LUT或数据结构以将索引706映射到码号708,而在其它实施例中,BP与变换可使用不同LUT或数据结构。在一些实施例中,译码器702可仅在具体模式(例如,BP模式)中使用基于向量的EC,而在其它模式中(例如,非BP模式)使用其它译码技术。另外,此处所公开的技术可应用于任何类型的采样格式,例如,4:4:4、4:2:2、4:2:0。
图9说明其中LUT类型信号808与VLC码810的前缀组合的经译码位序列806的实例。可由译码器702用以对码号708(例如结构化VLC码,例如EG、GR或EG与GR的混合)进行译码的一些类型的VLC码716可产生包括前缀908及后缀910的VLC码810。在一些实施例中,VLC码810的前缀908可呈一元码或解码器(例如解码器165)可能要耗时处理的某一其它码格式,而后缀910可具有固定长度。为了减少处理时间,译码器702可将前缀908与LUT类型信号808组合为单个VLC码部分912。
举例来说,如图9中所说明,译码器702可经由第二级VLC译码(未展示)对经译码位806的可变长度部分(例如,LUT类型信号808及前缀908)进行组合及译码以形成VLC码部分912。在一些实施例中,第二级VLC译码可由如图2A中所说明的熵编码器140执行。因为LUT类型信号808及VLC码前缀908都可呈一元码或某一其它处理代价大的格式,所以执行第二级VLC译码可用于减小接收经译码位806的解码器165处理LUT类型信号808及VLC码前缀908所需的处理量。在一些实施例中,译码器702可使用第二单独LUT(未展示)来将LUT类型信号808及前缀908映射到单个码号。译码器702可接着对所得码号进行译码(例如,使用第二级VLC码)以形成VLC码部分912。当由解码器165接收到时,解码器165可首先对VLC码部分912进行解码以确定LUT类型信号808及完整VLC码810的前缀908,以便获得完整的经译码位序列806。在一些实施例中,用于对经译码位806的可变长度部分进行译码的第二级VLC码可为用于对码号708进行译码以形成经译码位序列806的相同类型的VLC码716。在其它实施例中,第二级VLC码可不同于VLC码716。
正负号量值译码
如上文所论述,大小B可表示如实地表示给定群组(例如,样本向量402、604或704)中的所有样本所需的位的数目。在一些实施例中,B的值可基于2的补数表示法来计算,其中需要B个位来表示从-(2B-1)到+(2B-1-1)的样本值。然而,本文中所公开的技术不限于使用2的补数对齐的实施例,且可应用于使用其它类型的表示法计算的样本值。举例来说,在一些实施例中,编码器20可使用正负号量值表示法对样本值进行译码,其中需要B个位表示介于0到2B-1的范围中的样本值。
图10A展示使用正负号量值表示法的示范性样本向量604(例如,如图6中所说明)的熵译码的实例。当正负号量值表示法用于某些实施例中时,译码器702可对样本向量604中的样本的绝对值(也称作量值或绝对部分)进行译码,继之以对应于样本向量604的样本的正负号值的正负号位译码。
译码器702可对样本向量604A直到604D中的每一者进行译码以形成经译码位的各别群组1002(例如,群组1002A、1002B、1002C及1002D)。经译码位的每一群组1002包括前缀部分1004、后缀部分1006及零或多个正负号位1008。前缀部分1002指示将各别样本向量604中的样本的最大绝对值用信号表示所需的位的数目B。后缀部分1006表示各别样本向量604的每一样本的绝对值。最终,正负号位1008表示各别样本向量604的非零样本的正负号值。
举例来说,假定样本向量604A含有具有值[1,-3,-1,0]的4个样本。在此实例中,经译码位1002A的前缀部分1004指示值B=2(其依据绝对值[1,3,1 0]计算)。后缀部分1006可包括对应于样本向量604A的绝对样本值的部分(例如,译码为01、11、01、00)。正负号位1008可指示样本向量604A的非零样本中的每一者的正负号值。举例来说,正负号位1008可用信号表示为“100”,其中“1”指示正值,“0”指示负值。样本向量604A的具有零值的样本的正负号并不用信号表示于正负号位1008中。
在一些实施例中,译码器702可使用对样本向量604的样本的量值或绝对部分的基于向量的熵译码(例如,如图7到8中所说明)来对样本向量604A进行译码。样本向量604A的样本的绝对值可使用本文中所公开的基于向量的技术译码。
举例来说,对于包括四个样本S0、S1、S8及S9的样本向量604A,基于向量的熵译码器702可将基于向量的EC应用于群组中的样本的绝对值(例如|S0|、|S1|、|S8|、|S9|)以产生前缀部分1004及后缀部分1006。前缀部分1004可指示所用的LUT类型,而后缀部分1006可对应于码号,样本向量604A的所有样本的绝对值可从所述码号确定。
另一方面,译码器702可在不使用基于向量的熵译码的情况下单独地用信号表示样本S0、S1、S8及S9的正负号位1008。举例来说,正负号位1008可使用固定长度码传信,其中每非零样本传信1位以指示所述样本是正值还是负值。在一些实施例中,当对应的样本值为零时,不用信号表示正负号位。
图10B说明根据一些实施例的使用正负号量值表示法对样本向量604进行译码的替代布置。在一些实施例中,在多个样本向量604A直到604D中的每一者的前缀部分1004及后缀部分1006已被译码之后,译码器702可对位流中的多个样本向量604A直到604D的正负号位1008进行译码。举例来说,在一些实施例中,译码器702可首先将所有样本向量604A到D的前缀部分1004及后缀部分1006译码于位流之中,而所有群组604A到D的正负号位1008可在所有前缀部分1004及后缀部分1006已被译码之后译码于位流中。
当与二的补数表示法相比时,正负号量值表示法提供的优点在于值为零的符号的正负号信息不用信号表示。因此,正负号量值表示法例如在零值更可能的模式(例如块预测及变换模式)中可产生优良译码性能。
如上文所描述,译码器702可使用正负号量值表示法对样本向量604进行译码,其中样本向量604的对应于零值的样本的正负号位不在正负号位1008中用信号表示。由此,解码器30的剖析器逻辑可能需要对样本向量604的样本(译码为后缀部分1006)进行重构建或解码,以知晓是否从来自位流的样本向量604的样本中的每一者的正负号位1008读取正负号信息。在一些实施例中,解码器30的剖析器可实施为子流多路分用器160的部分。
换句话说,解码器30的剖析器逻辑在其可剖析样本向量604的正负号位1008之前需要知晓样本向量604的每一样本是否具有零或非零值。如果样本值非零,那么解码器30剖析来自位流的样本的作为正负号位1008的部分的正负号信息。否则,如果样本值为零,那么不从位流读取正负号位。归因于解码器30的剖析与解码功能(例如,为了解码样本,实施为熵解码器165)之间的此相依性,解码器30的最大解码器处理量在一些实施例中可能减小。
在一些实施例中,响应于从视频数据位流接收经译码样本向量,剖析器可对所接收的经译码样本向量的前缀(其可为一元码)进行解码,以便确定所述样本向量的每一后缀部分的长度。剖析器可接着检索对应于所述样本向量的后缀的固定数目个位以用于由熵解码器165解码,且接着在下一时钟周期期间前进到下一样本向量。
解码器(例如,熵解码器165)从剖析器接收对应于经译码样本向量的后缀的位。解码器165可接着对所接收的位进行解码以确定码号708。解码器165可接着使用LUT将码号708映射到索引值706,所述LUT继而用于获得所述样本向量的实际样本值。在一些实施例中,此解码可在剖析器已剖析经译码样本向量之后的下一时钟周期(例如,剖析器剖析随后样本向量的同一时钟周期)中执行。
图11说明示范性图1100,其说明根据一些实施例的对使用正负号量值译码的样本向量604A到D进行剖析及解码可能需要的数个时钟周期。在一些实施例中,解码器30可能够在单个时钟中剖析每一样本向量604的前缀部分1004及后缀部分1006(因为前缀部分1004将直接识别后缀部分1006中的位数目)。考虑如图10A中所说明的样本向量604A到604D,在一些实施例中,解码器30可能需要至少5个时钟周期来剖析4个样本向量604A到604D。
在时钟周期1中,解码器30剖析样本向量604A前缀及后缀部分。在时钟周期2中,解码器30剖析样本向量604B前缀及后缀部分。同时,解码器30解码样本向量604A的绝对样本值,且剖析针对样本向量604A的正负号位。在时钟周期3中,解码器30解码样本向量604B绝对样本值,且剖析样本向量604B正负号位以及样本向量604C前缀及后缀部分。在时钟周期4中,解码器30解码样本向量604C样本值,且剖析样本向量604C正负号位及向量604D前缀及后缀。解码器30需要另一时钟周期(时钟周期5)来对样本向量604D绝对值进行解码,以便剖析样本向量604D的对应的正负号信息。因此,如图10A中所说明的此表示法在一些实施例中可能减小解码器20的最大可达成处理量。当每一样本向量的绝对样本值使用向量熵译码予以译码时可得出类似结论。
在一些实施例中,如图10B中所说明,对应于多个样本向量604A到D的正负号位1008可在位流中位于群组604A到D的前缀部分1004及后缀部分1006之后。在此些情况下,解码器30可在剖析多个样本向量的最末样本向量(例如,群组604D)的前缀及后缀之后的时钟周期剖析正负号位1008。由此,当多个样本向量604A到D的所有样本向量使用正负号量值译码时,解码器30可能需要附加时钟周期(例如,时钟周期5)以在剖析样本向量604A到D的前缀及后缀之后剖析正负号位1008,从而潜在减小解码器165的最大可达成处理量。举例来说,为了剖析n个群组604,解码器30可能需要n+1个时钟周期。
图12说明示范性样本向量604(例如,如图6中所说明)的混合熵译码的实例。在一些实施例中,为了增大解码器30的处理量,译码器702可使用混合方法。举例来说,译码器702可使用正负号量值表示法对初始数目个样本向量604(例如,样本向量604A到C)进行译码。另一方面,译码器702可使用不同表示法(例如二的补数表示法)对其余样本向量(例如,样本向量604D)进行译码。译码器702可基于DSU-VLC(如图4到5中所说明)或向量EC(例如,如图7到9中所说明)对所述样本向量604A到D中的每一者进行译码。举例来说,针对二的补数表示法的向量EC可基于图8,其中样本向量604的符号被映射到单个码号708。另一方面,在正负号量值表示法中,译码器702可将样本向量604的每一符号的绝对值的集合映射到单个码号708,而样本向量604的正负号位1008可针对样本向量604的每一非零符号单独地用信号表示。
在对四个样本向量604A到D进行译码的一个示范性实施例中,正负号量值表示法为用于前3个样本向量604A到C,而二的补数表示法是用于最末样本向量604D。图13说明示范性图1300,其说明根据一些实施例的剖析及解码使用图12中所说明的混合译码方案所译码的样本向量604A到D可能需要的数个时钟周期。通过管线化上文所描述的剖析器及符号解码器165,在第4时钟周期期间,样本向量604D的样本在样本向量604C的样本被解码时由解码器165剖析。因为样本向量604D的样本是由译码器702基于二的补数表示法编码,所以不需要解码器165对样本向量604D的绝对样本值进行解码以剖析样本向量604D的正负号位。因此,使用混合方法,解码器30可有可能在四个时钟周期中剖析所有4个样本向量604A到D。因此,在一些实施例中,为了避免在剖析n个样本向量时需要附加时钟周期,译码器702可使用正负号量值表示法对前n-1个样本向量进行译码,同时使用不同表示法(例如二的补数表示法)对最末样本向量进行译码。因此,解码器30可能够在n个时钟周期中剖析n个样本向量。
在一些实施例中,译码器702可基于具有非零样本值的样本向量604数目来确定是使用二的补数表示法还是使用正负号量值表示法。在一个实例中,译码器702可仅在先前样本向量604A到604C中的每一者含有至少一个非零样本值的情况下针对最末样本向量604D使用二的补数表示法。否则,译码器702可使用正负号量值表示法来对最末样本向量604D进行译码。在一些实施例中,使用二的补数来对最末样本向量604D进行译码可引起压缩效率上的一些损失。通过仅在三个样本向量604A到604C中的每一者含有至少一个非零样本值(因此必然对正负号位1008进行译码)时以二的补数对最末样本向量604D进行译码,对二的补数的使用可通过仅在必要时对其使用而减到最小,从而达成所要处理量。举例来说,如果三个样本向量604A到604C中的一者不含有至少一个非零样本值,那么所述样本向量可使用群组跳过模式予以译码。解码器30可因此能够更快速剖析样本向量604A到604C,从而允许所有四个样本向量在四个时钟周期内被剖析。
在以上实例中,基于DSU-VLC的熵译码是用于正负号量值及二的补数表示法两者。然而,相同的技术可延伸到用于两个表示法的向量EC。
过程流程
应注意,本发明的方面已从编码器(例如图2A中的视频编码器20)或编码器的部分(例如图8中所说明的基于向量的熵译码器804)的视角予以描述。上文所描述的内容的逆向操作可经应用以由(例如)图2B中的视频解码器30对产生的位流进行解码。
举例来说,图14A说明用于对样本向量数据进行编码的过程的流程图,而图14B说明用于对所接收的对应于样本向量数据的位序列进行解码的过程的流程图。举例来说,如在图14A的块1402处所说明,编码器将所接收的样本向量转换到索引值。在一些实施例中,样本向量与索引值之间存在一对一的对应性,使得两个不同样本向量不会具有相同的索引值。在块1404处,编码器使用LUT将索引值映射到码号。LUT可至少部分地基于可能的样本向量的群组的给定样本向量的发生概率而构建。在一些实施例中,编码器可基于用于对样本向量进行译码的译码模式、表示样本向量的每一样本值所需的位数目、样本向量中的样本值数目及/或其类似者来识别LUT。在块1406处,编码器使用VLC方案对码号进行译码以形成待存储或作为位流的部分发射的经译码位的序列。
如在图14B的块1412中所说明,解码器使用VLC方案对所接收的位序列(例如,来自所接收的位流)进行解码以形成码号。在块1414处,解码器使用LUT将码号映射到索引值。在一些实施例中,解码器基于所接收的作为位的序列的部分(例如,作为所述序列的前缀部分)的指示来识别用于执行映射的LUT类型。在块1416处,解码器将索引值转换为针对样本向量的值。
图15说明用于使用混合译码对样本向量数据进行编码的示范性过程的流程图。在块1502处,编码器接收多个样本值,且将所接收的样本值划分为n个样本向量。在块1504处,编码器使用正负号量值表示法对n个样本向量的第一部分进行译码。在一些实施例中,样本向量的第一部分可包括n个样本向量的前n-1个样本向量。在块1506处,编码器使用二的补数表示法对n个样本向量的一或多个其余样本向量进行译码。在一些实施例中,所述一或多个其余样本向量可包括所述n个样本向量的最末样本向量。在一些实施例中,编码器仅在样本向量的第一部分中的每一者含有至少一个具有非零值的样本的情况下以二的补数表示法对一或多个其余样本向量进行译码。通过使用正负号量值表示法对n个样本向量的样本向量的第一部分进行译码以及使用二的补数表示法对其余群组进行译码,可实现使用正负号量值表示法译码的优点,同时避免可由需要在已解码n个样本向量的所有样本值的绝对值之后对非零样本值的正负号位进行解码所导致解码器处理量的减小。
其它考虑因素
可使用多种不同技术及技艺中的任一者来表示本文中所公开的信息及信号。举例来说,可由电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合表示可能贯穿以上描述所参考的数据、指令、命令、信息、信号、位、符号及码片。
结合本文中所公开的实施例而描述的各种说明性逻辑块及算法步骤可实施为电子硬件、计算机软件或两者的组合。为了清晰地说明硬件与软件的此可互换性,上文已大体按其功能性描述了各种说明性组件、块及步骤。将此功能性实施为硬件还是软件视特定应用及施加于整个***的设计约束而定。所属领域的技术人员可针对每一特定应用而以变化的方式实施所描述的功能性,但不应将此些实施决策解释为致使脱离本发明的范围。
本文所描述的技术可以硬件、软件、固件或其任何组合来实施。此类技术可在多种装置中的任一者中实施,例如,通用计算机、无线通信装置手持机或具有多个用途的集成电路装置,所述用途包含无线通信装置手持机、汽车、电气装备、可穿戴装置及/或其它装置中的应用。描述为装置或组件的任何特征可一起实施于集成逻辑装置中或分开实施为离散但可互操作的逻辑装置。如果以软件实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储媒体实现,所述程序代码包含在被执行时执行上文所描述的方法中的一或多者的指令。计算机可读数据存储媒体可形成计算机程序产品的部分,计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如,随机存取存储器(RAM),例如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、快闪存储器、磁性或光学数据存储媒体,及其类似者。另外或替代地,所述技术可至少部分地由计算机可读通信媒体实现,所述计算机可读通信媒体载送或传达呈指令或数据结构的形式且可由计算机存取、读取及/或执行的程序代码,例如,传播的信号或波。
程序代码可由可包含一或多个处理器的处理器执行,例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此类处理器可经配置以执行本发明中所描述的技术中的任一者。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器也可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构、前述结构的任何组合或适合于实施本文中描述的技术的任何其它结构或设备中的任一者。此外,在一些方面中,本文中所描述的功能性可提供于经配置用于编码及解码的专用软件或硬件内,或并入于组合式视频编码器-解码器(编码解码器)中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可实施于各种装置或设备中,包含无线手持机、IC或IC的集合(例如,芯片集合)。在本发明中描述各种组件或单元以强调经配置以执行所公开技术的装置的功能方面,但未必需要通过不同硬件单元实现。确切来说,如上文所描述,各种单元可组合于编码解码器硬件单元中,或结合合适软件及/或固件而通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合来提供。
虽然已结合各种不同实施例描述了前文,但可在不脱离本发明的教示的情况下将来自一个实施例的特征或元件与其它实施例组合。然而,各别实施例之间的特征的组合未必限于此。已描述了本发明的各种实施例。此些及其它实施例是在以下权利要求书的范围内。

Claims (9)

1.一种用于对具有多个视频样本的视频信息进行译码的设备,所述设备包括:
存储器,其经配置以存储布置在多个群组中的多个视频样本,每一视频样本具有位大小B,且所述多个群组中的各群组具有群组大小K;以及
硬件处理器,所述处理器经配置以:
使用可变长度译码VLC方案对所述多个群组的每一群组中、所述多个视频样本中各长度为K的样本向量进行译码以形成对应的基于向量的码,所述对应的基于向量的码包括至少第一部分和第二部分,所述第一部分标识与位大小B或群组大小K中的至少之一对应的多个类型的查找表中的一类型的查找表,所述第二部分表示对应群组中的多个视频样本,
所述硬件处理器进一步配置成以正负号量值表示法对所述多个群组里第一数量的群组中的多个视频样本进行译码,
所述硬件处理器进一步配置成以2的补数表示法对所述多个群组的最末群组中的多个视频样本进行译码,
所述硬件处理器进一步配置成输出对应的基于向量的码,其中,所述硬件处理器配置成执行如下以对K长度的对应样本向量进行译码以形成对应的基于向量的码:
将对应的K长度的样本向量转换成索引值,
使用对应类型的查找表将所述索引值映射到码号,
对相应的基于向量的码进行译码以指示所述查找表的类型,以及
对所述码号进行译码以形成所述相应的基于向量的码的第二部分。
2.根据权利要求1所述的设备,其中所述处理器经进一步配置以:
使用可变长度译码VLC方案对各基于向量的码进行解码以形成各对应码号;
使用各基于向量的码的第一部分识别的对应类型的查找表将对应的码号映射到对应的索引值;以及
将对应的索引值转换到对应群组的多个视频样本。
3.根据权利要求1所述的设备,所述处理器电路经配置以在所述位大小B小于阈值的情形下提供对应的基于向量的码。
4.根据权利要求1所述的设备,其中所述类型的查找表至少部分地基于对应群组在一组可能的K大小群组中的发生概率。
5.一种用于对具有多个视频样本的视频信息进行译码的方法,所述方法包括:
存储布置在多个群组中的多个视频样本,每个视频样本具有位大小B,所述多个群组中的各群组具有群组大小K;
使用可变长度译码VLC方案对所述多个群组的每一群组中、所述多个视频样本中各长度为K的样本向量进行译码以形成对应的基于向量的码,所述对应的基于向量的码包括至少第一部分和第二部分,所述第一部分标识与位大小B或群组大小K中的至少之一对应的多个类型的查找表中的一类型的查找表,所述第二部分表示对应群组中的多个视频样本,其中,进行所述译码包括:
以正负号量值表示法对所述多个群组里第一数量的群组中的多个视频样本进行译码,
以2的补数表示法对所述多个群组的最末群组中的多个视频样本进行译码,
其中,对K长度的对应样本向量进行译码以形成对应的基于向量的码包括:
将对应的K长度的样本向量转换成索引值,
使用对应类型的查找表将所述索引值映射到码号,
对相应的基于向量的码进行译码以指示所述查找表的类型,以及
对所述码号进行译码以形成所述相应的基于向量的码的第二部分。
6.根据权利要求5所述的方法,其中,所述类型的查找表至少部分地基于对应群组在一组可能的K大小群组中的发生概率。
7.根据权利要求5所述的方法,其中所述VLC方案包括以下各项中的至少一项:霍夫曼、算术、指数哥伦布EG及哥伦布莱斯GR。
8.根据权利要求5所述的方法,其进一步包括:
使用可变长度译码VLC方案对各基于向量的码进行解码以形成各对应码号;
使用各基于向量的码的第一部分识别的对应类型的查找表将对应的码号映射到对应的索引值;以及
将对应的索引值转换到对应群组的多个视频样本。
9.根据权利要求5所述的方法,其进一步包括在所述位大小B小于阈值的情形下提供对应的基于向量的码。
CN201780012964.XA 2016-03-08 2017-03-06 用于显示流压缩的基于向量的熵译码的设备及方法 Active CN108702520B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662305380P 2016-03-08 2016-03-08
US62/305,380 2016-03-08
US201662415999P 2016-11-01 2016-11-01
US62/415,999 2016-11-01
US15/449,755 US10666984B2 (en) 2016-03-08 2017-03-03 Apparatus and method for vector-based entropy coding for display stream compression
US15/449,755 2017-03-03
PCT/US2017/020897 WO2017155864A1 (en) 2016-03-08 2017-03-06 Apparatus and method for vector-based entropy coding for display stream compression

Publications (2)

Publication Number Publication Date
CN108702520A CN108702520A (zh) 2018-10-23
CN108702520B true CN108702520B (zh) 2020-12-25

Family

ID=59787516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780012964.XA Active CN108702520B (zh) 2016-03-08 2017-03-06 用于显示流压缩的基于向量的熵译码的设备及方法

Country Status (9)

Country Link
US (1) US10666984B2 (zh)
EP (1) EP3427480B1 (zh)
JP (1) JP6800991B2 (zh)
KR (1) KR102185027B1 (zh)
CN (1) CN108702520B (zh)
BR (1) BR112018067872A2 (zh)
CA (1) CA3012869C (zh)
TW (1) TWI705693B (zh)
WO (1) WO2017155864A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10110931B2 (en) * 2016-04-27 2018-10-23 Aspeed Technology Inc. Variable length coding and decoding methods and devices for grouped pixels
US20180288439A1 (en) * 2017-03-31 2018-10-04 Mediatek Inc. Multiple Transform Prediction
US10855997B2 (en) * 2017-04-14 2020-12-01 Mediatek Inc. Secondary transform kernel size selection
US10706492B2 (en) 2017-09-05 2020-07-07 Texas Instruments Incorporated Image compression/decompression in a computer vision system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6909744B2 (en) * 1999-12-09 2005-06-21 Redrock Semiconductor, Inc. Processor architecture for compression and decompression of video and images
US7055018B1 (en) * 2001-12-31 2006-05-30 Apple Computer, Inc. Apparatus for parallel vector table look-up
US9055338B2 (en) * 2007-03-13 2015-06-09 Nokia Corporation System and method for video encoding and decoding
US20100098156A1 (en) * 2008-10-16 2010-04-22 Qualcomm Incorporated Weighted prediction based on vectorized entropy coding
US8301803B2 (en) * 2009-10-23 2012-10-30 Samplify Systems, Inc. Block floating point compression of signal data
US9516316B2 (en) * 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
US9877048B2 (en) * 2014-06-09 2018-01-23 Qualcomm Incorporated Entropy coding techniques for display stream compression (DSC)
US10402166B2 (en) * 2016-02-05 2019-09-03 Sony Corporation System and method for processing data in an adder based circuit

Also Published As

Publication number Publication date
EP3427480B1 (en) 2023-09-13
TW201737706A (zh) 2017-10-16
KR20180118653A (ko) 2018-10-31
CN108702520A (zh) 2018-10-23
BR112018067872A2 (pt) 2019-01-02
KR102185027B1 (ko) 2020-12-01
JP6800991B2 (ja) 2020-12-16
TWI705693B (zh) 2020-09-21
WO2017155864A1 (en) 2017-09-14
US20170264918A1 (en) 2017-09-14
JP2019511865A (ja) 2019-04-25
US10666984B2 (en) 2020-05-26
CA3012869C (en) 2022-03-29
EP3427480A1 (en) 2019-01-16
CA3012869A1 (en) 2017-09-14

Similar Documents

Publication Publication Date Title
EP3632114B1 (en) Substream multiplexing for display stream compression
CN108141591B (zh) 用于非4:4:4色度子采样的显示流压缩(dsc)的熵译码技术
US9877048B2 (en) Entropy coding techniques for display stream compression (DSC)
KR102342660B1 (ko) 디스플레이 스트림 압축을 위한 서브스트림 멀티플렉싱
EP3284253B1 (en) Rate-constrained fallback mode for display stream compression
CN108702513B (zh) 用于在显示流压缩中量化参数的适应性计算的设备及方法
CN106165420B (zh) 用于译码视频数据的方法及装置
CN111726628B (zh) 用于在显示流压缩(dsc)中固定点近似的***和方法
CN108702520B (zh) 用于显示流压缩的基于向量的熵译码的设备及方法
WO2015164369A1 (en) System and method for coding in pattern mode for display stream compression (dsc)

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