CN102017634B - 重新排序的变换系数的多级表示 - Google Patents

重新排序的变换系数的多级表示 Download PDF

Info

Publication number
CN102017634B
CN102017634B CN200980116564.9A CN200980116564A CN102017634B CN 102017634 B CN102017634 B CN 102017634B CN 200980116564 A CN200980116564 A CN 200980116564A CN 102017634 B CN102017634 B CN 102017634B
Authority
CN
China
Prior art keywords
coefficient
symbol
value
subset
instrument
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
CN200980116564.9A
Other languages
English (en)
Other versions
CN102017634A (zh
Inventor
C·图
S·瑞古纳萨恩
S·孙
C-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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of CN102017634A publication Critical patent/CN102017634A/zh
Application granted granted Critical
Publication of CN102017634B publication Critical patent/CN102017634B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • 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/162User input
    • 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/172Methods 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 picture, frame or field
    • 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/40Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
    • 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/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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

呈现了用于对一块频率系数进行编码和解码的技术和工具。编码器从多个可用扫描次序中选择扫描次序并随后将所选扫描次序应用于变换系数的二维矩阵,从而将频率系数的非零值一起编组在一维串中。编码器根据多级嵌套集合表示对该系数值的一维串进行熵编码。在解码时,解码器对来自多级嵌套集合表示的系数值的一维串进行熵解码。解码器从多个可用扫描次序中选择扫描次序,并随后使用所选扫描次序将这些系数重新排序回二维矩阵。

Description

重新排序的变换系数的多级表示
背景
在编码诸如视频帧或静止图像等图片时,编码器通常将虚拟数据拆分成多块样本值。编码器执行诸如离散系数变换(DCT)等频率变换来将该块样本值转换成一块变换系数。按惯例在一个块的左上方示出的变换系数一般称为DC系数,并且其他系数一般称为AC系数。对于样本值的大多数块,频率变换往往将非零变换系数值组织到左上方,那里是该块变换系数的较低频率部分。
在频率变换之后,编码器量化变换系数值。量化一般减少DC和AC系数的可能值的数量。这一般将量化值的分辨率以及保真度降低到原始系数值,但它使后续熵编码更加高效。在较高频率系数具有被量化成零的低振幅时,量化往往还“移除”较高频率系数(一般被组织在该块的右下侧)。
图1示出量化之后的变换系数的8×8的块(100)的一个示例。在该示例性块(100)中,该块左上角中的值25是DC系数,而另63个值是AC系数。虽然该块(100)中的最高振幅系数是左上角的低频系数,但沿着右侧,该块包括较高频率的一簇非零系数值。
在量化了变换系数后,编码器对经量化的变换系数进行熵编码。一种对一块变换系数进行编码的常见方法通过使用“z字形”扫描次序(200)对该块进行重新排序来开始,如图2所示。在该方法中,编码器根据该扫描次序(200)将来自二维阵列的变换系数的值映射成一维串。扫描次序200在块(100)的带有DC系数的左上角开始,遍历该块(100)的位置1和2处的AC系数,遍历位置3、4和5处的AC系数,以此类推。该扫描根据扫描次序(200)来在该块(100)上跨对角线地继续,在该块(100)的具有最高频率AC系数的右下角位置63处结束。因为量化操作通常将较低值、较高频系数的显著一部分量化成零,同时保留较高值、较低频系数的非零值,所以z字形扫描重新排序通常造成剩余非零变换系数中的大多数都靠近一维串的开头且大量零值在该串的结尾。
图2示出将扫描次序(200)应用于该块(100)变换系数所得到的示例性一维串(250)。在该示例中,一维串(250)以与该块(100)的DC系数相对应的值25开始。扫描次序随后读取值12,此后是两个0,值-52,以此类推。符号“EOB”表示“块结束”并指示该块中的所有其余值都是0。
编码器随后使用行程长度编码或行程级别编码来对系数值的该一维向量进行熵编码。在行程级别编码中,编码器遍历该一维向量,将连续零值的每一行程编码成行程计数并将每一非零值编码成一个级别。对于简单编码,编码器向行程计数和级别值分配如Huffman码的可变长度码。
简单编码的一个问题是行程计数可以从0到64变化,只对于行程计数就需要65个代码的字母表。如果编码器将行程计数与后续非零级别值联合编码(以利用行程计数和级别值之间的相关),则行程计数-级别字母表的大小更大,这增加了熵编码的复杂度(例如,由于码表大小和查找操作)。将转义码用于较不频繁的组合帮助控制码表大小,但可降低编码效率。
在编码器对各行程级别组合使用同一可能的代码值而不管哪些AC系数被编码的情况下,行程级别编码发生另一问题。如果对于较高频率AC系数而言,遇到长行程的零值的机会增加,则对各行程级别组合使用同一可能代码值有损效率。
最后,在一些情况下,使用图2所示的z字形扫描次序(200)进行重新排序可损害编码效率。一般而言,一个块内的邻居系数值是相关的——如果变换系数值是零,则其邻居更可能是零,并且如果该变换系数值为非零,则其邻居更可能为非零。在一些情况下,使用z字形扫描次序(200)的重新排序在一维向量中将各邻居系数位置(例如,位置15和27)分开。例如,虽然图1中的该块(100)中的非零系数出现在两个簇中,但图2的一维串(250)中的非零系数值被一个或多个“0”值的序列打断4次。
鉴于编码和解码对于数字视频的关键重要性,编码和解码是充分开发的领域并不令人惊奇。然而,不论先前的视频编码和解码技术的好处如何,它们都没有以下技术和工具的优点。
概述
总体而言,“详细描述”呈现了用于编码和解码各块频率系数的技术和工具。例如,这些技术和工具通过改进各块频率系数的压缩来改进编码器的性能。通过在一维串中将频率系数的非零值编组在一起来增加压缩效率,并随后根据多级嵌套集合表示来对这些系数值进行熵编码。
在一个实施例中,诸如编码工具等工具选择多个扫描次序之一并应用所选扫描次序来对一个块的频率系数进行重新排序。该工具使用经重新排序的频率系数的多级嵌套集合表示来对该经重新排序的频率系数进行熵编码。这包括在概括表示中将经重新排序的频率系数中的一个或多个的第一集合表示为多分辨率表示的第一级处的第一符号,并且对该第一符号和多分辨率表示的第一级处的第二符号进行熵编码。在一些情况下,该工具还在概括表示中将第一集合的经重新排序的频率系数中的一个或多个的第一子集表示为嵌套集合表示的第二级处的第一子符号,并且该工具对该第一子符号进行熵编码。
在另一实施例中,诸如解码工具等工具通过对来自位流的视频信息进行熵解码来重构经熵编码的视频。该工具对频率系数的多级嵌套集合表示的第一级处的第一符号和第二符号进行解码。第一符号表示频率系数中的一个或多个的第一集合,并且第二符号表示频率系数中的一个或多个的第二集合。接着,该工具对多级嵌套集合表示的第二级处的第一子符号进行解码。该子符号表示第一集合的频率系数中的一个或多个的第一子集。该工具随后确定频率系数的扫描次序,根据该扫描次序对这些系数进行重新排序,并使用这些系数来重构视频。
在一些实现中,编码工具使用Huffman编码来进行熵编码,并且解码工具使用对应的Huffman解码。在其他实现中,编码工具使用行程级别编码或行程长度编码的另一变型,并且解码工具使用对应解码。在一些实现中,编码和解码工具从多个预定扫描次序中为一个块来选择扫描次序。在其他实现中,如果预定扫描次序中没有一个产生变换系数的合适压缩,则编码工具确定新扫描次序。
参考附图阅读以下详细描述,将更清楚本发明的前述和其他目标、特征和优点。提供本概述是为了以简化形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图简述
图1是示出示例性的一块经量化变换系数的图表。
图2包括示出现有技术z字形扫描次序的图表,并且还示出将该z字形扫描次序应用于来自图1的该块变换系数的结果。
图3是其中可实现所描述的若干实施例的合适的计算环境的框图。
图4是可用于选择扫描次序并使用各块的多级嵌套集合表示对图片进行编码的一般化编码工具的框图。
图5A-C是示出用于选择扫描次序并使用多级嵌套集合表示对图片进行编码的不同的一般化技术的流程图。
图6是示出选择扫描次序并使用多级嵌套集合表示对图片进行编码的示例性技术的流程图。
图7和8包括示出示例扫描次序的图表,并且还示出将相应扫描次序应用于来自图1的该块变换系数的结果。
图9A和9B是示出扫描次序选择的信令的伪码列表。
图10是示出使用多级嵌套集合表示对一个块的一组频率系数进行编码的示例性技术的流程图。
图11A、11B和11C是示例多级嵌套集合表示的示图。
图12A是示出将图11A的多级嵌套集合表示应用于图7中示出的经重新排序的系数值的向量的示图。
图12B是示出将图11A的多级嵌套集合表示应用于图8中示出的经重新排序的系数值的向量的示图。
图13A和13B分别是示出图12A和12B的多级嵌套集合表示的示例Huffman码的示图。
图14是用于对一图片的各块的经重新排序的多级嵌套集合表示进行解码的一般化解码系统的框图。
图15是示出用于对一个块的经重新排序的多级嵌套集合表示进行解码的一般化技术的流程图。
图16是示出用于对一个块的经重新排序的多级嵌套集合表示进行解码的示例性技术的流程图。
详细描述
以下详细描述呈现了用于通过根据扫描次序对一组频率系数进行重新排序来对它们进行编码以将这些频率系数的值转换成这些值的一维串的工具和技术。各值的该串是根据熵编码方法来使用多级嵌套集合表示进行编码的。以下详细描述还表示用于对一组频率系数进行解码的对应工具和技术。
本文所描述的技术和工具中的某一些解决了背景中所指出的一个或多个问题。通常,所给出的技术/工具并不解决所有这些问题。相反,鉴于编码时间、编码资源、解码时间、解码资源和/或质量的约束和折衷,所给出的技术/工具改进了特定实现或情形的编码和/或性能。
I.计算环境
图3示出了其中可实现若干所描述的实施例的合适的计算环境(300)的一般化示例。计算环境(300)并非旨在对使用范围或功能提出任何限制,因为这些技术和工具可以在完全不同的通用或专用计算环境中实现。
参考图3,计算环境(300)包括至少一个处理单元(310)和存储器(320)。在图3中,这一最基本的配置(330)被包括在虚线内。处理单元(310)执行计算机可执行指令,并且可以是真实或虚拟处理器。在多处理系统中,多个处理单元执行计算机可执行指令以提高处理能力。存储器(320)可以是易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如,ROM、EEPROM、闪存等)或两者的某种组合。存储器(320)存储使用所描述的用于对经重新排序的频率系数的嵌套集合表示进行编码和/或解码的技术和工具中的一个或多个来实现编码器的软件(380)。
计算环境可具有其他特征。例如,计算环境(300)包括存储(340)、一个或多个输入设备(350)、一个或多个输出设备(360)以及一个或多个通信连接(370)。诸如总线、控制器或网络等互连机制将计算环境(300)的各组件互连。通常,操作系统软件(未示出)为在计算环境(300)中执行的其他软件提供了操作环境,并协调计算环境(300)的各组件的活动。
存储(340)可以是可移动或不可移动的,并包括磁盘、磁带或磁带盒、CD-ROM、DVD或可用于储存信息并可在计算环境(300)内访问的任何其他介质。存储(340)储存用于实现视频编码器和/或解码器的软件(380)的指令。
输入设备(350)可以是诸如键盘、鼠标、笔或跟踪球等触摸输入设备,语音输入设备,扫描设备或向计算环境(300)提供输入的另一设备。对于音频或视频编码,输入设备(350)可以是声卡、显卡、TV调谐卡、或接受模拟或数字形式的音频或视频输入的类似设备、或将音频或视频样本读入计算环境(300)的CD-ROM或CD-RW。输出设备(360)可以是显示器、打印机、CD刻录机或提供来自计算环境(300)的输出的另一设备。
通信连接(370)允许通过通信介质与另一计算实体进行通信。通信介质传达诸如已调制数据信号形式的计算机可执行指令、音频或视频输入或输出、或其他数据等信息。已调制数据信号是其一个或多个特征以在信号中编码信息的方式设置或改变的信号。作为示例而非局限,通信介质包括以电、光、RF、红外、声学或其他载波实现的有线或无线技术。
各种技术和工具可以在计算机可读介质的一般上下文中描述。计算机可读介质可以是可在计算环境内访问的任何可用介质。作为示例而非局限,对于计算环境(300),计算机可读介质可包括存储器(320)、存储(340)、通信介质和以上任一种的组合。
该技术和工具可在诸如程序模块中所包括的在目标真实或虚拟处理器上的计算环境中执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。程序模块的功能可以如各实施例中所需的组合或在程序模块之间分离。用于程序模块的计算机可执行指令可以在本地或分布式计算环境中执行。
为了呈现起见,本详细描述使用了如“确定”和“重构”等术语来描述计算环境中的计算机操作。这些术语是由计算机执行的操作的高级抽象,且不应与人类所执行的动作混淆。对应于这些术语的实际的计算机操作取决于实现而不同。
II.用于经重新排序的频率系数的嵌套集合表示的一般化编码工具
图4示出其中可以实现本发明的各实施例的一般化编码工具(400)的框图。该工具(400)依次接收输入图片(405)。术语“图片”一般指的是源、已编码的或已重构的图像数据。对于逐行视频,图片是逐行视频帧。对于隔行视频,取决于上下文,图片可以指的是隔行视频帧、帧的上半帧、或帧的下半帧。输入图片(405)可以是整个视频帧或静止图片,或输入图片可以只是视频帧的一部分或静止图片的一部分。或者,输入图片(405)可只包括经降采样图片的一个色彩分量,例如YCbCr图片的亮度分量。
为简明起见,图4未示出编码工具(400)的与运动估计、运动补偿、以及其他运动处理相关的模块。在一些实现中,除处理样本值的各块来进行图片内压缩之外,该工具(400)使用图4中示出的各模块来处理样本值的各块的运动补偿残差。对于给定残差块,该工具执行该残差块的频率系数值的频率变换、量化、扫描重新排序以及熵编码。
在图4中,对于图片内压缩,拆分器(410)将输入图片(405)拆分成一系列块,每一个块都包含多个样本值。对于8×8的块,每一个块包括被安排成8行和8列的64个样本值。或者,各块可以是4×4、4×8、8×4、16×16或某一其他大小。
频率变换器(415)将各块变换系数转换成频域(即,频谱、变换)数据。频率变换器(415)将DCT、DCT的变型、或其他频率变换应用于各块样本值,从而产生各块频率变换系数。频率变换器(415)可应用8×8、8×4、4×8、4×4或其他大小的频率变换。
量化器(420)随后量化各块变换系数。量化器(420)将非均匀的标量量化应用于频谱数据,其中量化步长在逐图片的基础上、在逐块的基础上、或其他基础上变化。量化器(420)还可以将另一类型的量化应用于数据系数,例如这些系数中的至少一些的均匀或自适应量化,或在不使用频率变换的编码器系统中直接量化空间域数据。
系数扫描仪/重新排序器(425)扫描经量化的系数并在一维串中根据扫描次序对它们进行重新排序。熵编码器(430)对该一维串中的系数进行编码。例如,熵编码器(430)使用自适应Huffman编码来对变换系数进行编码。或者,熵编码器可以使用行程长度编码、行程级别编码、或某一其他熵编码方法来对变换系数进行编码。熵编码器(430)将经熵编码的系数值(435)输出到缓冲区(440)。
在一些实施例中,该工具(400)使用系数扫描仪(425)可用的多个扫描次序中的任一个。例如,该工具(400)在图2中的扫描次序(200)、图7中的扫描次序(700)、图8中的扫描次序(800)、以及一个或多个其他扫描次序之间切换。该工具(400)在逐块的基础上、逐宏块的基础上、逐片的基础上、逐图片的基础上或在某一其他基础上来在可用扫描次序之间进行选择。该多个可用扫描次序可包括在编码工具和对应解码工具两者处设置的一个或多个预定义扫描次序。在使用预定义扫描次序之一时,编码工具(400)使用标识所选扫描次序的代码和其他位流元素来用信号通知扫描次序选择。该多个可用扫描次序还可包括由编码工具(400)在编码期间特别定义并用信号通知给对应解码工具以在解码时使用的一个或多个扫描次序。在自身用信号通知了扫描次序后,在编码工具(400)稍后使用该扫描次序时,该工具(400)可以用信号通知标识该扫描次序的代码或其他位流元素,其中解码器存储了该扫描次序。
尽管z字形扫描次序(200)为某些变换系数块提供非零值的合适聚类,但通过选择性地使用其他扫描次序,该编码工具(400)通常可以提高熵编码效率。该工具(400)可以使用开环方法或闭环方法来选择扫描次序。缓冲区(400)存储经熵编码的系数值(435),并且缓冲区充满度因而提供熵编码所提供的压缩效率的某种度量。这一度量可以基于经压缩系数的总大小或某一其他度量。系数扫描仪(425)可以应用不同的扫描次序,其中该工具(400)对结果进行评估。在闭环方法中,该工具(400)应用可用的每一扫描次序并且选择造成最高效地压缩的经熵编码的系数值(435)的一个次序。在一些实现中,如果预定义扫描次序中没有一个提供可接受的性能(例如,根据可被预编程或由用户定义的阈值),该工具(400)确定新扫描次序并在输出位流中用信号通知它。或者,扫描次序可由用户指定。
III.用于经重新排序的频率系数的嵌套集合表示的一般编码技术
图5A示出一种对一块频率系数进行编码的一般化技术(500)的流程图。诸如参考图4描述的工具(400)等编码工具或其他工具执行该技术(500)。图5A中示出的技术(500)包括对扫描次序的自适应选择和使用默认多级嵌套集合表示的熵编码。
该工具选择多个扫描次序之一(505)。该扫描次序可以根据按实际结果的压缩效率或估计的压缩效率来进行选择(505)。另外,该扫描次序可以是多个预定扫描次序之一,或该扫描次序可以由该工具(400)在编码过程期间构造。
该工具随后将所选扫描次序应用于该块的多个频率系数(510)。这一步骤将多个频率系数重新排序成这些系数的一维串。优选地,根据该扫描次序的重新排序造成非零频率系数值在这些系数的一维串内的聚类,例如在该一维串的开头。
最后,该工具使用经重新排序的频率系数的默认多级嵌套集合表示来对该经重新排序的频率系数进行熵编码(515)。图11A、11B和11C示出了示例多级嵌套集合表示。可以使用诸如自适应Huffman编码、行程长度编码等熵编码方法或某一其他方法来将频率系数编码在嵌套集合表示内。
该工具在逐块的基础上或某一其他基础上重复该技术(500)。例如,该工具在逐帧的基础上选择扫描次序,为整个帧选择扫描次序并随后在进行熵编码之前对该帧中的各块的系数进行重新排序。
图5B示出对多个频率系数的块进行编码的替换一般化技术(520)的流程图。诸如参考图4描述的工具(400)等编码工具或其他工具执行该技术(520)。与图5A的技术(500)相比,图5B中示出的技术(520)包括使用默认扫描模式来进行的重新排序和不同多级嵌套集合表示之间的自适应选择。在该技术(520)中,已经由该工具执行先前分析、通过用户定义、或通过某一其他确定因素确定了扫描次序。该工具将该扫描次序应用于该块的各频率系数(525)。这将多个频率系数重新排序成这些系数的一维串。
该工具随后选择多个多级嵌套集合表示之一(530)。嵌套集合表示可以基于编码效率、用户定义、或某一其他因素来选择。图11A示出64个变换系数在一维向量中的一个示例多级嵌套集合表示,根据该表示每一集合被分成两个子集,每一子集包括一个或多个变换系数。图11B示出替换多级嵌套集合表示,根据该表示每一集合被拆分成两个、三个、或四个子集,每一子集包括一个或多个变换系数。图11C示出具有三层的第三多级嵌套集合表示——在一层处,每一集合(或子集)被拆分成四个子集(或变换系数)。其他嵌套集合表示用不同的方式来分割这64个系数,例如将顶层0到64拆分成位置0到3的第一集合和位置4到63的第二集合,将第二集合拆分成第一和第二子集,以此类推。可为图片的特定扫描次序或类型来预测频率系数的特定群集模式,并且可以指定特定嵌套集合表示来利用这些模式并进一步提高编码效率。特定类型的熵编码可以对更积极地将系数的集合拆分成更多子集的特定嵌套集合表示更有效。该工具随后根据诸如自适应Huffman编码、行程长度编码等方法或某一其他熵编码方法使用所选嵌套集合表示对经重新排序的多个频率系数进行熵编码(535)。
该工具在逐块的基础上或某一其他基础上重复该技术(520)。例如,该工具在逐帧的基础上选择多级嵌套集合表示,为整个帧选择嵌套集合表示并随后在使用所选嵌套集合表示进行熵编码之前对该帧中的各块的系数进行重新排序。
图5C示出对频率系数的块进行编码的替换一般化技术(540)的流程图。诸如参考图4描述的工具(400)等编码工具或其他工具执行该技术(540)。这一技术(540)一般将参考图5A和5B描述的技术(500、520)进行组合。
在该技术(540)中,该工具选择多个扫描次序之一(545)并随后将所选扫描次序应用于该块的多个频率系数(550)。接着,该工具选择多个嵌套集合部分之一(555)并根据诸如行程长度编码、自适应Huffman编码等熵编码方法或某一其他方法使用所选嵌套集合部分来对经重新排序的多个频率系数进行熵编码(560)。该工具在逐块的基础上或某一其他基础上重复该技术(540)。例如,该工具在逐帧的基础上选择扫描次序和多级嵌套集合表示,为整个帧选择扫描次序和嵌套集合表示并随后在使用所选嵌套集合表示进行熵编码之前使用所选扫描次序对该帧中的各块的系数进行重新排序。
IV.用于经重新排序的频率系数的嵌套集合表示的示例性编码技术
图6示出对图片的各块频率系数进行编码的示例性技术(600)的流程图。诸如参考图4描述的工具(400)等编码工具或某一其他编码工具执行该技术(600)。
在该技术(600)中,该工具选择预定扫描次序来进行评估(605)。一般而言,该工具可以使用多个预定扫描次序中的任一个。在特定实现中,存在默认扫描次序并且是所选择的第一个扫描次序。编码工具的默认扫描次序可以在编码工具的源代码中定义或作为编码工具设置,或用户可以在启动编码时定义特定图片或序列的默认扫描次序。或者,默认扫描次序不存在,并且改为随机选择多个预定扫描次序之一。
该工具应用所选预定扫描次序来对各块的频率系数进行重新排序(610)。对于给定块,应用预定扫描次序一般包括根据该扫描次序遍历频率系数的二维块,并将这些系数重新排序成频率系数的一维串。
在该工具将扫描次序分别应用于各块的频率系数之后(610),该工具检查系数重新排序是否充分(615)。例如,这一检查(615)包括确定将扫描次序应用于各块的多个频率系数(610)是否将二维块的非零频率值充分群集到这些系数的一维串的前部。这一检查(615)可以基于该工具的预定阈值、用户选择的阈值、或某一其他判定。
扫描次序判定是在对帧进行编码时执行的,以便使用同一所选扫描次序对该帧中的所有块进行编码。或者,扫描次序判定可以在序列的开头处执行,使得使用同一通用扫描次序对图片序列进行编码,或扫描次序可以在逐块的基础上或某一其他基础上确定。何时选择扫描次序可以根据用户定义的准则或根据诸如编码在编码工具的源代码中的指令等其他准则来选择。
如果系数被充分地重新排序,则该工具接着确定图片的各块的经重新排序的频率系数的多级嵌套集合表示(620)。在一些实现中,只有一个嵌套集合表示对该工具可用。该嵌套集合表示是在编码工具的源代码中、作为编码工具设置、由用户指令、或由某一其他准则来预定义的。或者,该工具具有可从中进行选择的多个嵌套集合表示。一般而言,嵌套集合表示可以基于诸如所使用的熵编码的类型、多个频率系数是否一般被安排成一致的模式、或哪一嵌套集合表示产生图片的频率系数的一维串的最高效编码等因素来定义或选择。
该工具将所选多级嵌套集合表示应用于经重新排序的频率系数以产生图片的各块中的每一个块的一系列符号(625),并对这些符号进行熵编码(630)。一般而言,对于多级嵌套集合表示的给定层,编码工具使用概括该层处的集合(或子集)中的系数值的符号来表示结果。例如,每一符号指示非零频率系数值在频率系数值的给定集合(或子集)中的存在或缺席。如果给定集合(或子集)的符号指示频率系数值的给定集合(或子集)中存在至少一个非零频率系数值,则另一符号可指示频率系数值的给定集合(或子集)的更低层子集中存在或缺少非零频率系数值。集合和子集的这一递进嵌套可以重复,直至子集只包含零值或只有一个非零系数为止,在这种情况下,另一符号将指示该位置处的特定频率系数的非零值。
在一些实现中,该工具将自适应Huffman编码应用于经重新排序的频率系数。或者,该工具可以使用诸如非自适应Huffman编码、行程长度编码、算术编码、LZ编码等其他熵编码方法或某一其他方法。
返回前一步骤,如果系数重新排序(615)因诸如重新排序不满足特定效率阈值等原因或某一其他原因而不充分,则该工具检查其他预定扫描次序是否可用(635)。如果一个或多个不同预定扫描次序可用,则该工具重复选择一个或多个预定扫描次序之一(605)、应用所选扫描次序以根据所选扫描次序对各块的频率系数进行重新排序(610)、并检查该系数重新排序是否充分(615)。
如果该工具检查出另一预定扫描次序不可用(635),则该工具确定产生充分系数重新排序的新扫描次序并应用该扫描次序来对各块的频率系数进行重新排序(640)。另一预定扫描次序因诸如用户指定不使用特定扫描次序、该工具只预定了一个扫描次序、或已遍历所有扫描次序并且它们中没有一个具有充分地重新排序了系数等原因而不可用。或者,如果另一预定扫描次序不可用,则该工具简单地使用产生最高效系数重新排序的预定扫描次序,或该工具可以用信号向用户通知错误。
V.示例扫描次序和扫描次序选择的信令
图2示出诸如在图4示出的编码工具等编码工具(400)可以应用来对频率系数进行重新排序的一个可能的扫描次序(200)。然而,使用固定z字形扫描次序对变换系数的某些块而言是不高效的。图7和8示出两个替换扫描次序。或者,编码工具和解码工具使用其他和/或附加扫描次序。
图7示出诸如在图4示出的编码工具等编码工具(400)可以应用来对频率系数进行重新排序的一个替换扫描次序(700)。图7中示出的扫描次序(700)可以用于频率系数的一般分布。在一些实现中,这一扫描次序(700)是一个块的默认扫描次序。
图7还示出将该扫描次序(700)应用于图1中示出的频率系数(100)来产生示例性一维串(750)的结果。系数值25处于该扫描次序(700)的系数位置0处,所以一维串(750)的第一个值是25。沿该扫描次序(700)继续,在该扫描次序中,所扫描的下一系数值将在系数位置1处,它对应于频率系数(100)中的值12,所以系数值12在该一维串(750)中是下一个。这之后是系数位置2处的系数值0,随后是位置3处的值-5。系数位置4到28具有系数值0,导致该一维串(750)中的25个0值,以此类推。相比于通过根据图2的现有技术z字形模式(200)进行重新排序所产生的一维串(250),根据该扫描次序(700)产生的该一维串(750)稍微更加高效(在将非零值进行群集方面)。
图8示出用于图1所示的特定频率系数(100)的更高效扫描次序(800)。这一扫描次序(800)可由特定用户来定义。或者,这一扫描次序(800)可以是编码工具可用的多个可能预定义扫描次序之一并且可被选作对多个频率系数进行最高效重新排序的扫描次序。或者,扫描次序(800)不是预定扫描次序之一,而是在预定扫描次序中没有一个对频率系数进行适当的重新排序的情况下由编码工具确定的。
图8示出将该扫描次序(800)应用于图1中示出的频率系数(100)来产生示例性一维串(850)的结果。与应用图7的扫描次序(700)的结果或应用图2的扫描次序(200)的结果相比,对于该特定扫描次序(800),该一维串(850)显著地更紧致。
图9A和9B示出一种用于在编码工具和解码工具在逐帧的基础上在多个扫描次序选项之间进行选择时用信号通知并接收选择信息的方法。这一方法使用序列层句法元素和图片层句法元素的组合。
图9A示出接收指示编码工具为一序列所定义的扫描次序的序列层句法元素的解码工具的伪码列表(900)。编码工具执行该信息的对应信令。在一序列头部中,解码工具接收并解析指示该序列头部之后将有多少扫描次序(从0到15)的句法元素NumOfNonDefaultScanOrders。
对于所定义的非默认扫描次序中的每一个,解码工具接收指示该扫描次序的索引位置的信息。图9A示出8×8的块的信令。对于8×8的块的扫描次序中的64个位置中的每一个位置,解码工具接收指示该位置是否具有扫描次序位置的默认值的单个位DefaultIdx。以下列表(对解码工具和编码工具两者都可用)指示扫描次序的默认位置。DefaultScanOrderIdx[64]={0,1,4,5,16,17,20,21,2,3,6,7,18,19,22,23,8,10,12,13,24,25,28,29,9,11,14,15,26,27,30,31,32,34,40,41,48,49,52,53,33,35,42,43,50,51,54,55,36,38,44,45,56,57,60,61,37,39,46,47,58,59,62,63}。这些默认位置与图7中示出的位置相对应。如果DefaultIdx指示该默认位置被用在用信号通知的扫描次序中,则解码工具在DefaultScanOrderIdx中查找默认位置。否则,解码工具获得指示在用信号通知的扫描次序中使用的非默认位置的6个位。
解码工具存储该序列的这一用信号通知的预定义扫描次序以及总是对编码工具和解码工具可用的零个或更多个其他扫描次序。虽然图9A示出8×8的块的信令,但对于其他大小的块,编码工具可以用信号通知按扫描次序的块大小。
图9B示出用于在各扫描次序之间进行切换的解码工具的伪码列表(910)。解码工具例如在解码期间在逐帧的基础上切换扫描次序。编码工具执行扫描次序选择信息的对应信令,例如在帧头部用信号通知用于一个帧的扫描次序。
解码工具接收并解析指示是对该帧使用默认扫描次序(没有对该帧的扫描次序信息的进一步信令)还是对该帧使用非默认扫描次序的句法元素UseDefaultOrder。默认扫描次序可以由编码工具和解码工具对所有序列、对被编码/解码的特定序列进行定义,或由编码工具和解码工具处的一组规则来导出。
如果解码工具对该帧使用非默认扫描次序,则解码工具检查是否应当使用针对该序列来用信号通知的非默认扫描次序(如果有的话)之一。如果是,则解码工具接收并解析标识针对该序列用信号通知的非默认扫描次序之一的句法元素OrderIdx。
否则(如果针对该序列没有用信号通知非默认扫描次序或用信号通知了它们但不应使用),解码工具接收并解析新扫描次序的信息。与图9A一样,图9B示出8×8的块的信令。对于8×8的块的新扫描次序中的64个位置中的每一个位置,解码工具接收指示该位置是否具有扫描次序位置的默认值的单个位DefaultIdx。如果否,则解码工具获得指示在该新扫描次序中使用的非默认位置的6个位。
或者,编码工具和解码工具使用另一位流句法来在逐宏块的基础上、在逐帧的基础上、或在某一其他基础上切换扫描次序。
VI.使用多级嵌套集合表示的示例编码
图10示出使用多级嵌套集合表示来对多个频率系数的经重新排序的块进行编码的示例性技术(1000)。该技术(1000)可以例如在图6中描述的技术(600)中使用。该技术(1000)是递归式的。在对一组系数值进行编码时,在一些情况下,该技术(1000)递归地对该集合内的系数值的一子集或多个子集中的每一个子集进行编码。该技术(1000)包括退出条件,在该条件下,该技术(1000)返回到入口点或完成对该集合的编码。
在该技术(1000)中,编码工具接收通过根据特定扫描次序对一个块的频率系数值进行重新排序而产生的一维串中的一组系数值。该工具评估该集合的给定级别的一个或多个系数值(1005)。当首次启动该技术(1000)时,该组多个频率系数一般将在该一维串中包括所有这多个频率系数。稍后,该技术(1000)可以在作为一维串的子集的较小集合上执行。出于这一原因,所讨论的集合可包括64个系数值、63个系数值、32个系数值、16个系数值、1个系数值或某一其他数量的系数值。
编码工具检查系数的给定集合是否只包含单个频率系数(1010)。如果该组频率系数确实只包含单个系数,则该工具对该系数的值进行编码(1015)。例如,该工具对该单个系数值使用Golomb编码、Huffman编码、或另一形式的可变长度编码。如果以其他方式暗示了该单个系数的值的幅度(例如,在对于某些类型的熵编码,该系数是-1或1时),则该工具用信号通知指示该单个系数的符号的标志。该工具随后返回(子集的)入口点或完成对该频率系数的特定集合的编码(1020)。
如果给定集合在该集合中包含多个频率系数,则该工具分析该集合并为该集合编码一个或多个代码(1025)。取决于所使用的熵编码的类型,该代码指示非零频率系数在该集合中的存在或缺席并且还可以指示该集合中的哪些子集包括任何非零值频率系数。如果该集合不包括任何非零频率系数,则该工具编码指示该集合不包括任何非零频率系数的符号。然而,如果该集合包括至少一个非零频率系数,则该工具编码指示一个或多个非零频率系数在该集合中的存在的一个或多个符号。该代码还指示给定集合应当被拆分成n个子集,并且给出关于非零频率系数值在这n个子集中的每一个中的存在或缺席的信息。例如,该一个或多个代码可以指示第一子集不包括具有非零值的至少一个频率系数,第二子集包括具有非零值的至少一个频率系数,以及第三子集不包括具有非零值的至少一个频率系数。对于某些多级嵌套集合表示,n等于2并且每一集合可被拆分成多达两个子集。或者,n是某一其他数量,如3或4。在某些实施例中,该代码可以另外指示与该集合中的频率系数的非零值有关的其他信息,如子集中的单个系数是正的还是负的或一子集中的任何系数大于还是等于给定值。
在该工具为该集合编码了一个或多个代码后(1025),该工具确定是否将给定集合拆分成多达n个频率系数子集(1030)。如果该集合中没有非零频率系数,则该工具不拆分该集合并且返回(子集的)入口点或完成对频率系数的特定集合的编码(1020)。
然而,如果该集合包含一个或多个非零频率系数,则该工具对包括至少一个非零值的任何子集进行编码。该工具将给定集合拆分成n个子集(1030)并检查以查看是否要将这些子集中的第一子集作为“集合”来进行编码(1035)。如果这些子集中的第一子集包含非零频率系数,则该工具在更低级别对该第一子集执行方法(1000)并且因此将第一子集作为“集合”进行编码。在对该子集进行编码(1040)时,执行该方法(1000)的工具所产生的这些符号和代码被组织来阐明正在被分析的频率系数值是第一集合的子集,并且正在嵌套集合表示的更低级表示处被进行分析。
如果第一子集因其不包含至少一个非零频率系数而不应被编码,则该工具随后检查该集合中是否剩余其他子集(1045)。类似地,在该工具编码了第一子集(1040)之后,该工具检查该集合中是否剩余其他子集(1045)。如果另一子集存在,则该工具检查以查看是否将该子集作为“集合”进行编码(1035),并且如果是,则该工具对该子集进行编码(1040)。在该工具确定该集合没有剩余的其他子集之后,该工具返回(子集的)入口点或完成对频率系数的特定集合的编码(1020)——该工具或者返回更高级别以对下一集合或子集进行编码,或转移至另一个块或图片。
VII.示例多级嵌套集合表示
使用变换系数的多级嵌套集合表示通过使用零值变换系数的概括表示可以方便对变换系数进行高效的熵编码。在结合自适应扫描次序选择使用时,多级嵌套集合表示尤其高效,但它们还可与非自适应扫描重新排序一起使用。取决于实现,可以使用Huffman编码、行程级别编码、行程长度编码的另一变型或某一其他形式的熵编码来对一个块的多级嵌套集合表示进行编码。
考虑变换系数的典型的8×8的块(在量化之后)。大多数非零系数值群集在少数区域中,如用于低频系数的左上角。有效的多级嵌套集合表示将零值高频率系数编组在一起成为单个块,并且将它们表示成单个零值系数(或符号)。除以此方式将零值系数编组成一个或多个块之外,多级嵌套集合表示将包括非零值(或非零值和零值的混合)的系数的子集编组成单个块并将它们当作一个系数(或符号)。在给定级别,多级嵌套集合表示包括一个或多个“概括”系数(或符号),它们随后被进行熵编码。对于包括一个或多个非零值系数的块,多级嵌套集合表示递归地将这些系数拆分成被表示为单个系数(或符号)各个子组来进行编码。
图11A、11B和11C示出了示例多级嵌套集合表示。图11A、11B和11C示出可被用于例如图10中示出的技术(1000)中的具有64个系数的块的示例多级嵌套集合表示(1100、1150、1180)。或者,编码工具和解码工具使用其他和/或附加多级嵌套集合表示。
参考图11A,在将一集合拆分成n个子集时,n等于2。在图11B中示出的表示(1150)中,n等于2、3或4,并且在图11C中示出的表示(1180)中,n等于4。或者,n可以等于3、4或某一其他数字。
在该表示中,位置0到63处的系数值表示第一级别(1105)处的第一集合,并且可能被拆分成第二级别(1110)处的包含位置0处的系数值的第一子集和第二级别(1110)处的包含位置1到63处的系数值的第二子集。位置0的集合是具有单个系数值的集合,并且因此位置0处的频率系数的非零值将被进行熵编码,例如使用第二级别(1110)处的代码。
如果第二级别(1110)处的(位置1到63的)子集包括任何非零系数值,则位置1到63处的系数值被拆分成第三级别(1115)处的两个子集。第三级别(1115)处的各子集中的第一子集包含位置1到3处的系数值,并且第三级别(1115)处的各子集中的第二子集包含位置4到63处的系数值。不进一步拆分只包括零值系数的各子集。然而,如果第三级别(1115)处的这些子集之一包括非零系数值,则第三级别(1115)处的该子集被拆分成第四级别处的多个不同子集,如图11A所示。
图11B示出第二多级嵌套集合表示(1150),根据该表示,第一级别(1155)处的集合(从位置0到63)可能被拆分成第二级别(1160)处的两个子集,并且第二级别(1160)处的第二子集(从位置1到63)可能被拆分成第三级别(1165)处的三个子集。图11B中的表示(1150)比图11A中的表示(1100)更宽但不一样深,因为集合(或子集)可能被拆分成更低级别处的三个或四个子集。
图11C示出第三多级嵌套集合表示(1180),根据该表示,第一级别(1185)处的集合(从位置0到63)可能被拆分成第二级别(1190)处的四个等大小的子集,并且第二级别(1190)处的每一子集可能被拆分成第三级别(1195)处的四个子集。图11C中的表示(1180)比图11B中的表示(1150)更宽,因为集合(或子集)可能被拆分成每一更低级别处的四个子集。
图12A示出将图11A的多级嵌套集合表示(1100)应用于图7的示例性一维串(750)。变换系数(100)的该一维串(750)提供包括从位置0到位置63的系数值的第一级别集合(1205)。第一级别集合(1205)不是单值集合,并包括至少一个非零值,所以该第一级别集合被拆分成多个子集。取决于熵编码是如何实现的,一个或多个代码指示第一级别集合被拆分成第二级别(1210)处的两个子集。在本示例中,第二级别(1210)处的两个子集包括位置0处的系数的第一子集和位置1到63处的系数的第二子集。
该工具随后将第二级别(1210)处的(位置0的)第一子集作为“集合”进行编码。在本示例中,该子集只包含单个值——系数位置0处的系数值25。该工具对该第一子集进行熵编码。
该工具随后继续进行以将第二级别处的第二子集(1210)(包括位置1到63的系数的值)作为集合进行编码。第二子集被拆分成第三级别(1215)处的两个子集。第三级别子集中的第一子集包括系数值12、0和-5,它们分别是系数位置1、2和3处的系数值。第二第三级别子集包括系数位置4到63处的系数值。
第三级别(1215)处的第一子集被拆分成第四级别(1220)处的两个子集。这些第四级别子集中的第一子集包括系数值12,它是系数位置1处的系数值。对这一系数值进行熵编码。这些第四级别子集中的另一子集包括值0和-5,它们是系数位置2和3处的系数值。这一第四级别子集被拆分成第五级别(1225)处的两个子集。这些第五级别子集中的第一子集包括系数位置2处的单个系数值0,并且这些第五级别子集中的第二子集包括系数位置3处的单个系数值-5。这些子集中的每一个都是单值子集,并且因此对这些子集中的每一个的系数值进行熵编码。
返回第三级别(1215),第三级别(1215)处的第二子集(包含系数位置4到63处的系数值)被拆分成第四级别(1220)处的两个子集。这些第四级别子集中的第一子集包括位置4到15处的系数的值,并且这些第四级别子集中的第二子集包括位置16到63处的系数的值。在该示例中,系数位置4到15处的系数值全是0。因为这样,所以位置4到15的子集不必被进一步拆分,因为它不包含任何非零系数值。用信号通知指示该子集不包含任何非零频率系数值的代码,该子集不被拆分,并且不对该子集执行进一步分析。包含位置16到63处的系数的值的子集被拆分成第五级别(1225)处的两个分开的子集,每一子集包括零值系数和非零系数的混合。继续这一分析和对集合到各个子集的选择性地拆分,直至定位了所有非零频率系数并进行了熵编码为止。
图12B示出将图11A的多级嵌套集合表示(1100)应用于图8的示例性一维串(850)。总体而言,图12B示出与图7的扫描次序(700)相比,图8是扫描次序(800)对图1的变换系数(100)进行了更高效的群集。
变换系数(100)的该一维串(850)提供包括从位置0到位置63的系数值的第一级别集合(1255)。第一级别集合(1255)被拆分成两个子集,其中一个或多个代码指示拆分成第二级别(1260)处的两个子集。第二级别(1210)处的两个子集包括位置0处的系数的第一子集和位置1到63处的系数的第二子集。位置0的子集包含单个值——系数位置0处的系数值25,它被进行了熵编码。位置1到63的子集被拆分成第三级别(1265)处的两个子集。
第三级别子集中的第一子集包括系数值12、0和-5,并且如参考图12A所描述的那样被处理。(系数位置4到63处的系数值的)第二第三级别子集被拆分成第四级别(1270)处的两个子集。这些第四级别子集中的第一子集(包括位置4到15处的系数的值)被进一步拆分成两个第五级别子集。一个第五级别子集只包含零值系数,并且不被进一步拆分;另一第五级别子集包含零值系数和非零值系数的混合并且如图12B所示的那样被进一步拆分。第四级别子集的第二子集(包括位置16到63的系数的零值)不被进一步拆分,并且用信号通知指示该子集不包含任何非零频率系数值的代码。
除图11A、11B和11C中示出的多级嵌套集合表示之外,其他多级嵌套集合表示也是可能的。并非将每一集合或子集拆分成下一级别处的两个子集,每一集合或子集可被拆分成多达三个子集、多达四个子集、或某一其他数量的子集。例如,第一级别集合包括系数位置0到63处的系数值,可被拆分成三个第二级别子集,第一子集包括位置0处的系数值,第二子集包括位置1到15处的系数值,并且第三子集包括位置16到63处的系数值。另外,至少对于图11A和11B中的表示(1100、1150),划分策略假定扫描次序会高效地将来自该块变换系数的非零频率系数值编组到一维串的前部。然而,如果安排系数值而使得它们不能被高效地编组,则嵌套集合表示可具有某种其他通用划分,如将包括系数0到63的第一级别集合拆分成两个子集的二元划分,第一子集包括系数位置0到31处的系数值,并且第二子集包括系数位置32到63处的系数值,其中每一子集可能都经受进一步的二元拆分。
另外,多级嵌套集合表示的代码的信令取决于实现。在一些情况下,给定级别的代码是作为对该表示的深度优先遍历的一部分来用信号通知的。对于图11A,编码工具用信号通知0-63的代码、0的代码、1-63的代码、1-3的代码、1的代码、2-3的代码、2的代码、3的代码、4-63的代码,等等。或者,代码是作为对该表示的宽度优先遍历的一部分来用信号通知的。
VIII.示例熵编码和解码
被用来表示多级嵌套集合表示中的变换系数的熵编码的类型取决于实现。这一部分描述熵编码和解码的两种通用方法。或者,编码工具和解码工具使用另一方法。
A.行程长度编码和解码变型
使用行程长度编码和解码,将给定集合的各符号(表示各单独的系数值或系数值的子集)编码成序列。例如,对于某一子集,符号值0指示该子集只包括零值系数,并且符号值1指示该子集包括至少一个非零值系数。对于某一单独的系数值,符号值0指示该系数值是零,并且符号值1指示该系数值是非零,其中一个或多个其他代码指示实际值。在以下示例中,术语“行程_级别_代码_x”、“行程_长度_代码_x”以及“值_x”仅仅是可变长度代码、固定长度代码或表示行程级别组合、行程长度计数或值的其他位模式的指示符。
对于图11C中的多级嵌套集合表示(1180),图8的扫描次序(800)和图1的变换系数(100),位置0、1、3和9-15具有非零值,并且其他位置具有零值系数。位置0到15的子集包括至少一个非零值,但其他三个第二级别子集中没有一个包括任何非零值,所以第一级别表示是1000。使用行程级别编码(每一代码指示零的行程计数+非零级别),这些符号被表示成0EOB的代码。实际上,随后使用某一个或多个代码来对这一表示进行编码,在此其将被指示为行程_级别_代码_0(0的计数零+第一个1)和行程_级别_代码_EOB(对于最后三个0)。第一级别表示1000足以指示位置16到63处的系数是零值系数。
位置0到15的子集被拆分成0-3、4-7、8-11以及12-15的四个子集,它们用1011来表示。使用行程级别编码,这些符号被表示成代码010,指示为行程_级别_代码_0(0的计数零+第一个1)、行程_级别_代码_1(0的计数1+第二个1)以及行程_级别_代码_0(0的计数零+最后一个1)。这足以指示位置4到7的系数是零值系数。
位置0到3的子集被表示为1101,位置8-11的子集被表示为0111,并且位置12-15的子集被表示为1111。这些子集是使用行程级别编码来进行编码的,或另选地使用向量Huffman代码或文字值来进行编码。对于每一非零值,一个或多个代码随后用信号通知实际值以及该系数的符号。例如,代码“值_25”、“值_12”和“值_-5”遵循位置0-3的子集的行程级别代码。用于某一表示的代码的信令可以遵循该表示的深度优先遍历或宽度优先遍历。
对于来自图1、8和11C的同一示例多级嵌套集合表示,使用除0和1的替换行程(例如,0010或0000或1110)之外的简单行程长度编码变型,符号1000被表示为01EOB的代码,指示为行程_长度_代码_0(0的计数零)、行程_长度_代码_1(1的计数1)和行程_长度_代码_EOB(0的计数3)。位置0到15的子集被拆分成0-3、4-7、8-11以及12-15的四个子集,被编码成行程_长度_代码_0(0的计数零)、行程_长度_代码_1(1的计数1)、行程_长度_代码_1(0的计数1)以及行程_长度_代码_EOB(最后两个1)。位置0到3的子集被表示为1101,位置8-11的子集被表示为0111,并且位置12-15的子集被表示为1111。这些子集是使用简单行程长度编码的变型来进行编码的,或另选地使用向量Huffman代码或文字值来进行编码。对于每一非零值,一个或多个代码随后用信号通知实际值以及该系数的符号。同样,用于某一表示的代码的信令可以遵循该表示的深度优先遍历或宽度优先遍历。
一般而言,某一集合或子集(如,该集合/子集的两个子集10、01或11,或者该集合/子集的三个子集111、110、101、100、011、010或001)的符号的模式可以在位流中用特定数量的位或位模式来指示,如行程_长度_代码、行程_级别_代码或某一其他模式。另外,非零值频率系数的值是使用某一特定数量的位或位模式来指示的。例如,值25可由任意代码来指示,如值_(25)。
B.Huffman编码和解码
使用Huffman编码和解码,Huffman代码表示特定子集或系数的符号。用Huffman代码表示的Huffman代码和符号取决于实现。Huffman代码可以是自适应或非自适应的。
例如,对于某一子集,符号值0指示该子集只包括零值系数,并且符号值1指示该子集包括至少一个非零值系数。对于某一单独的系数值,符号值0指示该系数值是零,并且符号值1指示该系数值是非零,其中一个或多个其他代码指示实际值。Huffman代码联合表示给定级别处的符号的值,例如表示前一章节描述的四个符号组合。
作为另一示例,某一符号的符号值的字母表具有三个元素A0、A1和A2。该示例性字母表中的第一元素是元素A0。这一元素指示,对于一个或多个系数值的给定集合(或子集)(set_cv),set_cv中的每一系数值(cv)等于0。换言之,set_cv中不存在非零频率系数值。该示例性字母表中的第二元素是元素A1。这一元素指示对于set_cv中的至少一个cv,cv=1或-1。set_cv中的其他值cv可以等于0,只要一个cv等于1或-1,并且没有一个具有大于1的绝对值。该示例性字母表中的第三字母表元素是A2。这一元素指示对于set_cv中的至少一个cv,cv大于1或小于-1。set_cv中的其他值cv可以等于0、1或-1,只要一个cv大于1或小于-1。在替换实施例中,A2可以表示set_cv中的至少一个cv大于或小于一个不同的数字,例如2、4、8或某一其他数字。
三个不同元素A0、A1和A2可帮助该工具确定在编码期间是否进一步拆分该集合或子集,并且这些元素可帮助该工具在解码期间重构集合或子集的值。表1指示包含多个频率系数值的集合X的示例性Huffman代码,这些频率系数值中的至少一个等于1或-1而没有一个具有大于1的绝对值。表2指示包含多个频率系数值的集合X的示例性Huffman代码,这些频率系数值中的至少一个具有大于1或小于-1的值。Huffman代码中的每一个指示与集合X的子集X_1和X_2有关的信息,其中子集可包括单个系数。
Figure BPA00001253544500241
表1.用于三代码表的Huffman代码
Figure BPA00001253544500242
表2.用于五代码表的Huffman代码
对于多级嵌套集合表示中的集合或子集X,表1中的这些Huffman代码中的每一个指示A0或A1是否分别适用于X的两个子集X_1和X_2中的每一个。表2中的Huffman代码中的每一个指示A0、A1或A2是否分别适用于X的两个子集X_1和X_2中的每一个。例如,如果系数值的子集包含0和-5,则Huffman代码HC5_4指示,第一系数值是零并且第二系数值是具有大于1的绝对值的非零值。如果系数值的子集包含0,0,0,0,0,2,-1,1,并且被平均拆分成各个子集,则Huffman代码HC5_4指示第一子集(0,0,0,0)只包括零值系数并且第二子集(0,2,-1,1)包括具有大于1的绝对值的至少一个非零值系数。
在一些示例中,术语“HC5_x”和“HC3_x”中的每一个仅仅是具有特定位模式的Huffman代码的指示符。图13A示出将表1和表2的Huffman代码应用于图12A的多级嵌套集合表示。在第一级别(1305)处,HC5_0指示该集合被拆分成两个子集,每一子集包含具有大于1的绝对值的至少一个非零系数值。(位置0的)第一子集具有被用信号表示成一个或多个可变长度代码(例如,Golomb代码或Huffman代码)的单个值“值_25”。(位置1到63的)第二子集也被拆分成两个子集,每一子集包含具有大于1的绝对值的至少一个非零系数值,使用代码HC5_0来指示。具有非零值的子集被拆分成各个子集,如用Huffman代码所指示的。如果具有非零值的子集只包括值-1、0或1,则来自表1的Huffman代码表示该子集。例如,如果包括-1,1,1,1和八个零的集合被拆分成具有-1,1,1和1的第一子集和具有八个零的第二子集,则代码HC3_1表示该集合。对于每一个1或-1,用信号通知该系数值的符号,绝对值是由先前代码来指示的。
图13B示出将表1和表2的Huffman代码应用于图12B的多级嵌套集合表示。与图13A相比,使用了更少Huffman代码,因为该多级嵌套集合表示更加紧致。
编码工具根据该表示的深度优先遍历来用信号通知图13A和13B中示出的Huffman代码。HC5_0、25的代码、HC5_0、HC5_0、12的代码、HC5_4、-5的代码,以此类推。或者,编码工具根据该表示的宽度优先遍历来用信号通知图13A和13B中示出的Huffman代码。
在许多编码场景中,Huffman代码通过对零值系数进行编组来方便变换系数的高效编码和解码。在解码工具接收到集合X的代码HC5_4时,解码工具随后识别出集合X的子集X_1中的每一频率系数具有值0。解码工具因此将不必花费时间来对子集X_1进行进一步解码,而可以改为向子集X_1中的每一频率系数分配值0并对诸如X_2等不同子集(该子集指示了它具有非零频率系数值)继续进行解码。因此,这一字母表可以减少对一块频率系数进行编码所需的符号数量。
IX.用于经重新排序的频率系数的嵌套集合表示的一般化解码工具
图14示出用来对经重新排序的频率系数的经熵编码的多级嵌套集合表示进行解码的一般化解码工具(1400)的框图。解码工具(1400)可被用来例如对图4中示出的编码工具(400)的输出进行解码。
为简明起见,图14未示出解码工具(1400)的与运动补偿和其他运动处理相关的模块。在一些实现中,除处理样本值的各块来进行图片内解压之外,该工具(1400)使用图14中示出的各模块来处理样本值的各块的运动补偿残差。对于给定残差块,该工具执行残差块的频率系数值的熵编码、扫描重新排序、反量化以及反频率变换。
该工具(1400)接收经熵编码的位流(1405),并且熵解码器(1410)对该位流(1405)进行解码以产生一个或多个符号。位流(1405)可以根据自适应Huffman编码、行程级别编码、行程长度编码、或多级嵌套集合表示的某一其他熵编码方法来进行编码。熵解码器(1410)所解码的符号指示多级嵌套集合表示的相应级别中的各系数子集中的一个或多个多个频率系数的相对位置和值。该工具(1400)根据所指示的系数位置将该多个频率系数安排成一维串。
扫描次序解码器(1415)根据扫描次序将这些系数安排成一个块。该工具(1400)使用扫描次序解码器(1415)可用的多个扫描次序中的所选扫描次序。例如,该工具(1400)在图2中的扫描次序(200)、图7中的扫描次序(700)、图8中的扫描次序(800)、以及一个或多个其他扫描次序之间切换。该工具(1400)在逐块的基础上、逐宏块的基础上、逐片的基础上、逐图片的基础上或在某一其他基础上来在可用扫描次序之间进行选择。该多个可用扫描次序可包括在编码工具和解码工具(1400)两者处设置的一个或多个预定义扫描次序。在使用预定义扫描次序之一时,解码工具(400)使用标识所选扫描次序的代码和其他位流元素来确定扫描次序选择。该多个可用扫描次序还可包括由编码工具在编码期间特别定义并用信号通知给该解码工具(1400)以在解码时使用的一个或多个扫描次序。在自身用信号通知了扫描次序后,在编码工具稍后使用该扫描次序时,它可以用信号通知标识该扫描次序的代码或其他位流元素,该解码工具(1400)存储了该扫描次序。在一些情况下,根据该扫描次序所产生的频率系数块是频率系数的8×8的块。在其他情况下,该块是4×4、8×8、8×4或某一其他大小。
反量化器(1420)对变换系数进行反量化。反量化器(1420)可以反转自适应频谱量化或直接量化。反频率变换器(1425)对多个频率系数执行反频率变换以产生图片的一块样本值。反频率变换器(1425)可应用8×8、8×4、4×8、4×4或其他大小的反频率变换。
该工具(1400)随后输出重构块作为重构图片(1430)的一部分。
X.用于经重新排序的频率系数的嵌套集合表示的一般化视频重构技术
图15示出重构被使用多级嵌套集合表示进行了熵编码的一块变换系数的一般化技术(1500)的流程图。这一技术(1500)可由例如图14中示出的解码工具(1400)用来对根据图5A中示出的技术(500)来编码的变换系数进行解码。图15中示出的技术(1500)包括使用默认多级嵌套集合表示的熵解码和对用于重新排序的扫描次序的自适应选择。
该工具首先对使用默认多级嵌套集合表示来编码的多个频率系数进行熵解码(1505)。这些系数可能已经根据诸如自适应Huffman编码、行程级别编码或行程长度编码等熵编码方法或根据某一其他编码方法进行了编码。一般而言,该工具对指示各值的一维串中的多个频率系数的值和相对位置的符号进行解码。这些符号中的一个或多个的每一个描述一子集中的一个或多个频率系数的值和相对位置。
接着,该工具确定一块多个频率系数的扫描次序(1510)。该工具例如通过对指示要使用多个预定扫描次序中的哪一个的信号进行解码来确定扫描次序。
最后,该工具根据所解码的扫描次序对该块中的多个频率系数值进行排序(1515)。一般而言,该多个频率系数值被解码成一维串(1505)。该工具通过根据所解码的扫描次序遍历该一维串并将系数值安排成系数的二维块来对该块中的多个频率系数值进行排序(1515)。
该工具在逐块的基础上或某一其他基础上重复该技术(1500)。例如,该工具在逐帧的基础上选择扫描次序,为整个帧选择扫描次序并随后对系数进行熵解码并在逐块的基础上对该帧中的各块的系数进行重新排序。
或者,解码工具使用默认扫描模式来执行扫描次序重新排序,但在不同的多级嵌套集合表示之间自适应地进行选择。这样的解码技术可以用于例如对根据图5B中示出的技术(520)来编码的变换系数进行解码。或者,解码工具在不同的扫描次序之间自适应地进行选择并在不同的多级嵌套集合表示之间自适应地进行选择,例如来对根据图5C中示出的技术(540)来编码的变换系数进行解码。
XI.重构使用多级嵌套集合表示来编码的视频的示例性方法
图16示出重构被使用多级嵌套集合表示进行了熵编码的一块变换系数的示例性技术(1600)的流程图。这一方法可由例如图14中示出的解码工具(1400)的熵解码模块(1410)用来对根据图10中示出的技术(1000)来编码的变换系数进行解码。该技术(1400)是递归式的。在对一组系数值进行解码时,在一些情况下,该技术(1400)递归地对该集合内的系数值的一子集或多个子集中的每一个子集进行解码。该技术(1400)包括退出条件,在该条件下,该技术(1400)返回到入口点或完成对该集合的解码。
在该方法(1600)中,该工具接收包括与一组多个频率系数有关的信息的经熵编码的位流的至少一部分,并且该工具对经熵编码的位流的至少一部分进行解码来对该集合的一个或多个代码进行解码(1605)。这些代码提供与该块变换系数的非零频率系数值的存在和缺席有关的信息,并且在一些实现中,这些代码还提供与该块的各子集中的频率系数中的一个或多个的相对位置有关的信息。
该工具使用经解码的一个或多个代码来重构给定集合的任何已知系数值(1610)。例如,该工具使用Golomb解码、Huffman解码、或另一形式的可变长度解码。如果被分析的集合只包含单个系数,则该系数的值一般将由一个或多个经解码的代码来指示。该工具随后可以重构该特定系数的系数值。如果以其他方式暗示了该单个系数的值的幅度(例如,在对于某些类型的熵编码/解码,该系数是-1或1时),则该工具接收并解析指示该单个系数的符号的标志。或者,该一个或多个代码可以指示给定集合的系数的两个或更多个子集的值,其中这些子集在多级嵌套集合表示中处于比给定集合更低的级别。例如,该一个或多个代码可以指示在更低级别处存在该集合的子集,并且该子集不包括任何非零频率系数值。如果是,则该解码工具重构该子集中的频率系数的每一个的系数值0。
该工具随后分析该一个或多个代码以确定是否要将该集合拆分成n个更低级别子集(1615)。对于一些多级嵌套集合表示,n等于2,但在其他表示中,n可以等于另一整数,如3或4。如果该工具确定给定集合的至少一个子集包含非零频率系数,则该工具将该集合拆分成n个子集。例如,如果该集合存在包含非零频率系数值的一个子集,则该工具将该集合拆分成包含具有非零值的系数(其被进一步解码)的子集和只包括零值系数(先前已重构而无需进一步解码(1610))的子集。先前解码(1605)的该一个或多个代码指示这些子集中的哪一个包含至少一个非零频率系数。该工具对包含至少一个非零频率系数的子集进行解码(1630)。
如果例如该集合只包含单个频率系数,则该工具不将该集合拆分成n个更低级别子集。在这种情况下,该工具已经对该单值集合的代码进行了解码(1605)并且重构了该集合的系数值(1610)。在该示例中,该工具随后返回(子集的)入口点或完成对该特定集合的解码(1020)。
如果,该工具确定要将该集合拆分成n个更低级别的子集(1615),则该工具检查该一个或多个代码以确定是否要对这些子集中的第一子集进行解码(1625)。如果第一子集包含非零频率系数,则该工具通过对该子集执行该解码技术(1600)来将该子集作为“集合”进行解码(1630)。在该工具从该子集的解码返回时,该工具检查是否剩余有要解码的其他子集(1635)。或者,如果没有对第一子集进行解码,则该工具检查是否剩余有要解码的其他子集(1635)。如果剩余有要解码的其他子集,则该工具检查是否要对该n个子集中的下一子集进行解码(1625)。该工具重复该过程,直至检查(1635)指示没有要留待解码的该给定集合的其他子集为止,并且该工具返回(子集的)入口点或完成对该给定集合的解码(1020)。取决于被解码的集合中的系数值或系数的数量,完成可使该根据返回对更高级别集合进行解码或完成对该块的解码并开始对视频的下一块进行解码。
XII.经重新排序的频率系数的经编码的多级嵌套集合表示的示例性解码
这一部分继续以上呈现的熵编码的特定示例,集中于对表示变换系数的多级嵌套集合表示的子集的各符号的代码进行解码的细节。一般而言,这些符号包括两个或更多个不同类型的符号。第一类型的符号指示非零值频率系数在一个或多个位置的存在或缺席,并且还可指示特定系数值(例如,零)或系数的绝对值(例如,1)。第二类型的符号指示这一个或多个位置处的频率系数的值。在其他示例中,各类型的符号可被组合,被进一步拆分成不同的类型,或可以指示关于频率系数的附加信息。
A.行程长度解码和行程级别解码
使用行程长度以及行程级别编码和解码,将给定集合的各符号(表示各单独的系数值或系数值的子集)编码成序列。在对变换系数的经编码的多级嵌套集合表示进行解码的一个示例中,诸如参考图14描述的工具(1400)等解码工具接收经编码视频数据的位流。该位流包括图1的变换系数(100)的编码值,在解码期间,该位流被扫描成如图8所示的变换系数的一维序列(850)并根据图11C示出的多级嵌套集合表示(1180)被进行了行程级别或行程长度解码。当然,行程级别或行程长度编码和解码可以与诸如图11A或11B中示出的表示等其他多级嵌套集合表示以及其他扫描次序一起使用。
在执行行程级别解码时,该工具首先对指示系数位置子集0-15、16-31、32-47以及48-63的非零值频率系数的存在或缺席的代码进行解码(参见图1、8和11C),其中只有子集0-15包括任何非零系数值。该位流产生代码行程_级别_代码_0和行程_级别_代码_EOB,这指示行程级别解码结果0EOB,它对应于系数子集的符号1000。该解码工具重构位置16到63的零值系数,并接收包括至少一个非零值的子集0-15的一个或多个代码。
对于子集0-15,该工具接收并解析代码行程_级别_代码_0、行程_级别_代码_1和行程_级别_代码_0,这表示符号1011的行程级别解码结果010。该解码工具重构位置4到7的零值系数并接收子集0-3的一个或多个代码。对子集0-3的行程级别代码进行解码以产生位置0到3的符号1101,并且该工具接收并解析位置0、1和3处的非零系数值的代码。该解码工具类似的接收并解析子集8-11的代码,随后接收并解析子集12-15的代码,从而对位置8到15的值进行解码。因为该工具在系数位置0-63中的每一个处都放置了系数值,所以该工具随后完成对当前块的变换系数值的解码。
或者,在执行行程长度解码时,该工具接收并解析指示系数位置子集0-15、16-31、32-47以及48-63的非零值频率系数的存在或缺席的代码(参见图1、8和11C)。该位流产生代码行程_长度_代码_0、行程_长度_代码_1和行程_长度_代码_EOB,这指示行程长度编码结果01EOB并对应于系数子集的符号1000。符号1000指示位置0-15中存在至少一个非零值,并且另外位置16-63中的每一位置具有零值频率系数。该解码工具因而能够为这些频率系数中的每一个将值0置于位置16-63中。
该工具接着接收并解析指示位置0-3、4-7、8-11和12-15处的系数的非零值频率系数的存在或缺席的代码。该位流产生代码行程_长度_代码_0、行程_长度_代码_1、行程_长度_代码_1以及行程_长度_代码_EOB,这分别对应于行程长度编码结果011EOB和系数位置子集0-3、4-7、8-11和12-15的符号1011。符号1011指示位置0-3、位置8-11以及位置12-15中的每一个中存在的至少一个非零值并且位置4-7中没有非零值频率系数,并且因此该解码工具将值0置于位置4-7中的频率系数中的每一个中。
接着,该工具接收并解析指示位置0、1、2和3处的系数的非零值频率系数的存在或缺席的代码。该位流产生代码行程_长度_代码_0、行程_长度_代码_2、行程_长度_代码_1以及行程_长度_代码_EOB,这指示行程长度编码结果021EOB并对应于符号1101。符号1101指示位置0、1和3处的系数各自包含具有非零值的频率系数,而位置2处的系数不包含。该工具因而自动将值0置于系数位置2中。该工具还接收并解析分别对应于系数值25、12以及-5的代码“值_25”、“值_12”以及“值_-5”。因为该工具对位置0-3的符号1101进行解码,所以该工具将值25置于位置0,值12置于位置1,且值-5置于位置3。该工具类似地接收并解析子集8-11(及其非零值)和子集12-15(及其非零值)的代码。因为该工具在系数位置0-63中的每一个处都放置了系数值,所以该工具随后完成对当前块的变换系数值的解码。
在行程级别解码和行程长度解码的上述示例中,该工具根据深度优先遍历来进行解码。该工具对位置0-63的符号、位置0-15的符号、位置0-3的符号、位置0的值、位置1的值、位置3的值、位置8-11的符号(因为位置4-7已知是零值并且因此跳过)进行解码,以此类推。在其他示例中,该工具可以改为根据宽度优先遍历进行解码,其中该工具对位置0-63的符号、位置0-15的符号、位置0-3的符号、位置8-11的符号、位置12-15的符号进行解码,并随后对位置0、1、3和9-15的值进行解码。或者,该工具可以使用深度优先和宽度优先遍历的组合。
B.Huffman解码
在Huffman编码/解码实现中,诸如参考图14所描述的工具(1400)等解码工具接收包括Huffman代码的位流,如表1和2中示出的那些代码和一个块的变换系数的值代码。该工具随后对该位流进行解码以重构频率系数的值和相对位置。在该示例中,该工具接收包含诸如图13B中示出的代码等被用来使用图11A中示出的示例性多级嵌套集合表示来对图8的一维串(850)进行编码的代码的位流。然而,Huffman编码和解码可被用于诸如图11B和11C中示出的表示等各种不同的多级嵌套集合表示,被用于与表1和2中示出的代码结构不同的代码结构并被用于其他扫描次序。
该工具首先在帧级别、序列级别、或某一其他级别对位流中用信号通知的代码进行解码以产生对多级嵌套集合表示的结构的某一指示。例如,该工具确定被用来对一维串进行编码的多级嵌套集合表示的结构。
该工具接收并解析代码HC5_0,这指示第一第一级别子集(与位置0处的系数相对应)和第二第二级别子集(与位置1-63处的系数相对应)包括其绝对值大于1的一个或多个非零系数值。
该工具接着接收并解析代码“值_25”。在该示例中,值_25是与频率系数的值25相对应的代码的任意指示。先前解码的代码HC5_0指示值25是位置0处的系数的值。因此,该工具将值25置于系数位置0处,并对该位流中的代码继续进行进一步解码
该工具接着从该位流接收并解析代码HC5_0,分别指示子集1-3和4-63的符号A2A2。下一更低级别处的第一子集(与系数位置1-3相对应)和下一更低级别处的第二子集(与系数位置4-63相对应)两者都包含其绝对值大于1的一个或多个非零值频率系数。在图13B的深度优先遍历之后,该工具接收并解析代码HC5_0(子集1-3)、值_12(位置1)、HC5_4(子集2-3)、值_-5(位置3)、HC5_2(子集4-63)、HC5_4(子集4-15)、HC5_1(子集8-15)、HC5_4(子集8-11)、HC5_1(子集9-11),等等。
在该工具达到诸如在自底(1370)的第二级别处的代码HC3_0等代码时,该代码指示具有绝对值1的至少一个非零系数值在该集合中的存在,该集合中没有系数具有更大的绝对值。因此,除对系数或子集的符号进行解码之外,该工具只需要对符号值(例如,符号位)进行解码以指示特定频率系数的非零值是1还是-1,如在最底级别(1375)所示。
这一示例将解码过程描述为深度优先遍历,使得第一集合的更低级别子集在与该第一集合处于相同级别处的第二集合之前被解码。然而,或者,该遍历可以是宽度优先的,使得给定级别处的每一集合在更低级别处的子集之前解码。其他实施例也可具有不同的遍历次序。
XIII.替换方案
本文呈现的示例中的许多涉及被重新排序成64个变换系数的一维向量的变换系数的8×8的块的熵编码。本发明的技术和工具还可以应用于被重新排序成32个系数的一维向量的变换系数的4×8或8×4的块、被重新排序成16个系数的一维向量的变换系数的4×4的块、或变换系数的块的其他大小。
类似地,本文呈现的嵌套集合表示的示例中的许多涉及64个变换系数的一维向量。本文呈现的技术和工具还可以应用于32、16或某一其他长度的向量。嵌套集合表示的深度和宽度取决于实现,其中将集合更积极地拆分成各子集往往产生更宽更浅的表示,反之亦然。
尽管以上描述了示例扫描次序,但本文呈现的技术和工具可以使用其他扫描次序来执行。经重新排序的变换系数的熵编码可以使用自适应Huffman编码、非自适应Huffman编码、行程级别编码、行程长度编码的另一变型、或某一其他类型的熵编码。
鉴于可应用所公开的本发明的原理的许多可能的实施例,应当认识到,所示实施例仅是本发明的优选示例,并且不应认为是限制本发明的范围。相反,本发明的范围由所附权利要求书来限定。因此,要求保护落入这些权利要求的精神和范围内的所有内容作为本发明。

Claims (20)

1.一种对视频进行编码的方法,所述方法包括:
选择多个扫描次序之一(605);
在位流中输出指示所选扫描次序的信息;
应用所选扫描次序来对一个块的多个频率系数进行排序(610);
使用经重新排序的频率系数的多级嵌套集合表示来对该经重新排序的多个频率系数进行熵编码(630),包括:
将所述经重新排序的多个频率系数中的一个或多个的第一集合表示为具有所述多级嵌套集合表示的第一级别处的第一符号的概括表示,并且用所述多级嵌套集合表示的第一级别处的第二符号来表示所述经重新排序的多个频率系数中的一个或多个的第二集合;以及
对所述多级嵌套集合表示的第一级别处的所述第一符号和所述第二符号进行熵编码;
在所述多级嵌套集合表示的低于所述第一级别的一给定级别处:
对所述给定级别处的多个符号进行编码,所述给定级别处的多个符号的每一个表示所述经重新排序的多个频率系数中的一个或多个的集合;并且
对于所述给定级别处的多个符号的每一个,确定是否要将符号的集合拆分成多个子集合,如果要的话,在所述多级嵌套集合表示的一更低级别处编码多个子符号,在所述更低级别处的多个子符号的每一个表示所述多个子集合中的一个;以及
在所述位流中输出经熵编码的频率系数。
2.如权利要求1所述的方法,其特征在于,所述第一符号指示非零系数值在经重新排序的频率系数的第一集合中的存在或缺席。
3.如权利要求1所述的方法,其特征在于,所述第二符号表示在所述第一集合外的经重新排序的多个频率系数之一。
4.如权利要求3所述的方法,其特征在于,对所述第一符号和所述第二符号进行熵编码包括使用Huffman编码对所述第一符号和所述第二符号进行联合编码。
5.如权利要求1所述的方法,其特征在于,对所述第一符号和所述第二符号进行熵编码包括对所述第一符号和所述第二符号连同一个或多个其他符号进行行程长度编码。
6.如权利要求1所述的方法,所述第二符号是所述经重新排序的多个频率系数中的第二集合的概括表示,其中所述第二符号指示非零系数值在所述经重新排序的多个频率系数中的第二集合中的存在或缺席,并且其中对所述第一符号和所述第二符号进行熵编码包括使用Huffman编码对所述第一符号和所述第二符号进行联合编码。
7.如权利要求1所述的方法,其特征在于,所述第一集合包括至少一个非零系数值,并且其中所述熵编码还包括在所述多级嵌套集合表示的低于所述第一级别的所述给定级别处对所述第一集合的相应系数的系数值进行熵编码作为所述给定级别处的多个符号。
8.如权利要求1所述的方法,其特征在于,所述第一集合包括至少一个非零系数值,并且其中所述熵编码还包括:
将所述第一集合的频率系数中的一个或多个的第一子集表示为具有所述多级嵌套集合表示的低于所述第一级别的所述给定级别处的多个子符号中的第一子符号的概括表示。
9.如权利要求8所述的方法,其特征在于,还包括在所述多级嵌套集合表示的低于所述给定级别的第三级别处对所述第一子集的相应系数的系数值进行熵编码。
10.如权利要求1所述的方法,其特征在于,所述选择包括:
在所述多个扫描次序之间评估多个预定扫描次序;以及
如果所述多个预定扫描次序没有一个产生用于熵编码的合适的经重新排序的频率系数,则创建新扫描次序。
11.一种重构视频的方法,所述方法包括:
在位流中接收多个频率系数的经熵编码的视频信息;
对所述经熵编码的视频信息进行熵解码(1505),包括:
对所述多个频率系数的多级嵌套集合表示的第一级别处的第一符号和第二符号进行熵解码,其中所述第一符号表示所述多个频率系数中的一个或多个的第一集合并且所述第二符号表示所述多个频率系数中的一个或多个的第二集合;以及
在所述多级嵌套集合表示的低于所述第一级别的一给定级别处:
对所述给定级别处的多个符号进行解码,所述给定级别处的多个符号的每一个表示所述多个频率系数中的一个或多个的集合;并且
对于所述给定级别处的多个符号的每一个,确定是否要将符号的集合拆分成多个子集合,如果要的话,在所述多级嵌套集合表示的一更低级别处编码多个子符号,在所述更低级别处的多个子符号的每一个表示所述多个子集合中的一个;以及;
确定所述多个频率系数的扫描次序(1510);
根据所确定的扫描次序对所述多个频率系数进行重新排序(1515);以及
使用经重新排序的频率系数来重构所述视频。
12.如权利要求11所述的方法,其特征在于,所述第一符号指示非零系数值在所述第一集合中的存在或缺席。
13.如权利要求12所述的方法,其特征在于,所述多个频率系数的多级嵌套集合表示的第一级别处的第二符号指示非零系数值在所述第一集合外部的所述多个频率系数中的一个或多个的所述第二集合中的在场或缺席。
14.如权利要求11所述的方法,其特征在于,所述多个子符号中的第一子符号指示非零系数值在所述多个子集中的第一子集中的存在或缺席。
15.如权利要求11所述的方法,其特征在于,所述确定所述扫描次序包括:
接收所述位流中的扫描次序信息。
16.如权利要求15所述的方法,其特征在于,所述扫描次序是多个预定扫描次序之一。
17.一种编码器系统,包括:
用于从多个扫描次序中选择扫描次序的块扫描次序选择器(425);
用于使用所选扫描次序对一个块中的多个频率系数进行重新排序的块扫描仪(425);
用于通过以下动作对多级嵌套集合表示中的经重新排序的频率系数进行编码的一个或多个熵编码模块(430):
将所述经重新排序的多个频率系数中的一个或多个的第一集合表示为具有所述多级嵌套集合表示的第一级别处的第一符号的概括表示,并且用所述多级嵌套集合表示的第一级别处的第二符号来表示所述经重新排序的多个频率系数中的一个或多个的第二集合;以及
对所述多级嵌套集合表示的第一级别处的所述第一符号和所述第二符号进行熵编码;
在所述多级嵌套集合表示的低于所述第一级别的一给定级别处:
对所述给定级别处的多个符号进行编码,所述给定级别处的多个符号的每一个表示所述经重新排序的多个频率系数中的一个或多个的集合;并且
对于所述给定级别处的多个符号的每一个,确定是否要将符号的集合拆分成多个子集合,如果要的话,在所述多级嵌套集合表示的一更低级别处编码多个子符号,在所述更低级别处的多个子符号的每一个表示所述多个子集合中的一个。
18.如权利要求17所述的编码器系统,其特征在于,所述块扫描次序选择器被用来基于将所述多个扫描次序中的每一个闭环应用于所述块的结果来选择所述扫描次序。
19.如权利要求17所述的编码器系统,其特征在于,所述块扫描次序选择器被用来基于将所述多个扫描次序中的一个或多个应用于所述块的开环评估的结果来选择所述扫描次序。
20.如权利要求17所述的编码器系统,其特征在于,所述多个扫描次序是预定的。
CN200980116564.9A 2008-05-02 2009-04-01 重新排序的变换系数的多级表示 Active CN102017634B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/151,069 2008-05-02
US12/151,069 US8179974B2 (en) 2008-05-02 2008-05-02 Multi-level representation of reordered transform coefficients
PCT/US2009/039089 WO2009134575A2 (en) 2008-05-02 2009-04-01 Multi-level representation of reordered transform coefficients

Publications (2)

Publication Number Publication Date
CN102017634A CN102017634A (zh) 2011-04-13
CN102017634B true CN102017634B (zh) 2014-03-12

Family

ID=41255661

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980116564.9A Active CN102017634B (zh) 2008-05-02 2009-04-01 重新排序的变换系数的多级表示

Country Status (8)

Country Link
US (2) US8179974B2 (zh)
EP (1) EP2269380B1 (zh)
JP (1) JP5180370B2 (zh)
KR (1) KR101541945B1 (zh)
CN (1) CN102017634B (zh)
HK (1) HK1154729A1 (zh)
MX (1) MX2010011961A (zh)
WO (1) WO2009134575A2 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010036772A2 (en) * 2008-09-26 2010-04-01 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
US8526745B2 (en) * 2009-12-03 2013-09-03 Sony Corporation Embedded graphics coding: reordered bitstream for parallel decoding
KR101703327B1 (ko) * 2010-01-14 2017-02-06 삼성전자 주식회사 계층적 데이터 단위의 패턴 정보를 이용하는 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
KR101675118B1 (ko) 2010-01-14 2016-11-10 삼성전자 주식회사 스킵 및 분할 순서를 고려한 비디오 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
BR122020008249B1 (pt) 2010-04-13 2021-02-17 Ge Video Compression, Llc herança em amostra de arranjo em subdivisão multitree
DK3435674T3 (da) 2010-04-13 2023-08-21 Ge Video Compression Llc Kodning af signifikanskort og transformationskoefficientblokke
CN106067983B (zh) 2010-04-13 2019-07-12 Ge视频压缩有限责任公司 解码数据流的方法、生成数据流的方法及解码器
EP3703369B1 (en) 2010-04-13 2024-07-24 GE Video Compression, LLC Sample region merging
CN106231337B (zh) 2010-04-13 2020-06-19 Ge视频压缩有限责任公司 解码器、解码方法、编码器以及编码方法
KR20120009618A (ko) * 2010-07-19 2012-02-02 에스케이 텔레콤주식회사 주파수변환단위 분할부호화 방법 및 장치와 이를 이용한 영상 부호화/복호화 방법 및 장치
US8532413B2 (en) * 2010-10-13 2013-09-10 Samsung Electronics Co., Ltd. Entropy encoding/decoding method and apparatus for hierarchical image processing and symbol encoding/decoding apparatus for the same
US9641846B2 (en) * 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US9042440B2 (en) 2010-12-03 2015-05-26 Qualcomm Incorporated Coding the position of a last significant coefficient within a video block based on a scanning order for the block in video coding
US8976861B2 (en) 2010-12-03 2015-03-10 Qualcomm Incorporated Separately coding the position of a last significant coefficient of a video block in video coding
US20120163472A1 (en) * 2010-12-22 2012-06-28 Qualcomm Incorporated Efficiently coding scanning order information for a video block in video coding
US20120163456A1 (en) 2010-12-22 2012-06-28 Qualcomm Incorporated Using a most probable scanning order to efficiently code scanning order information for a video block in video coding
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
KR101739580B1 (ko) * 2010-12-30 2017-05-25 에스케이 텔레콤주식회사 적응적 스캔 장치 및 그 스캔 방법
CN102651816B (zh) * 2011-02-23 2014-09-17 华为技术有限公司 一种变换系数块的扫描方法和装置
US10397577B2 (en) 2011-03-08 2019-08-27 Velos Media, Llc Inverse scan order for significance map coding of transform coefficients in video coding
US9106913B2 (en) 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
CN104093018B (zh) * 2011-03-10 2017-08-04 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
CN102685503B (zh) 2011-03-10 2014-06-25 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
CN104093020B (zh) * 2011-03-10 2017-11-17 华为技术有限公司 变换系数的编码方法、变换系数的解码方法,和装置
CN107529708B (zh) * 2011-06-16 2019-05-07 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US9756360B2 (en) * 2011-07-19 2017-09-05 Qualcomm Incorporated Coefficient scanning in video coding
EP4391545A3 (en) 2012-01-20 2024-10-02 GE Video Compression, LLC Transform coefficient coding
US9432666B2 (en) * 2012-03-29 2016-08-30 Intel Corporation CAVLC decoder with multi-symbol run before parallel decode
CN103391433B (zh) * 2012-05-09 2017-07-18 腾讯科技(深圳)有限公司 视频编码帧内预测扫描方法及视频编码方法
CN102843562B (zh) * 2012-08-21 2016-03-02 西北农林科技大学 一种分组容错熵编码的方法
US20140327737A1 (en) 2013-05-01 2014-11-06 Raymond John Westwater Method and Apparatus to Perform Optimal Visually-Weighed Quantization of Time-Varying Visual Sequences in Transform Space
US10893274B2 (en) 2016-05-12 2021-01-12 Lg Electronics Inc. Method for processing video signal on basis of arbitrary partition transform
US9712830B1 (en) 2016-09-15 2017-07-18 Dropbox, Inc. Techniques for image recompression
GB2556886B (en) 2016-11-23 2019-05-15 Imagination Tech Ltd Encoding and decoding variable length instructions
AU2019315029A1 (en) * 2018-08-03 2021-03-11 V-Nova International Limited Transformations for signal enhancement coding
US10728555B1 (en) 2019-02-06 2020-07-28 Sony Corporation Embedded codec (EBC) circuitry for position dependent entropy coding of residual level data
US11765366B2 (en) * 2020-05-07 2023-09-19 Blackmagic Design Pty Ltd Method for processing transform coefficients
CN113489980B (zh) * 2021-08-13 2022-10-25 北京大学深圳研究生院 一种点云属性变换系数的熵编码和熵解码的方法及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5714950A (en) * 1992-07-23 1998-02-03 Samsung Electronics Co., Ltd. System for variable-length-coding and variable-length-decoding digitaldata
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
CN1565129A (zh) * 2002-07-16 2005-01-12 三星电子株式会社 使用多个扫描图形的编码和解码方法及装置
CN1946185A (zh) * 2001-11-22 2007-04-11 松下电器产业株式会社 可变长度编码方法以及可变长度解码方法

Family Cites Families (219)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420771A (en) 1981-02-09 1983-12-13 Bell Telephone Laboratories, Incorporated Technique for encoding multi-level signals
US4558302A (en) 1983-06-20 1985-12-10 Sperry Corporation High speed data compression and decompression apparatus and method
DE3629434C2 (de) 1986-08-29 1994-07-28 Karlheinz Dipl Ing Brandenburg Digitales Codierverfahren
ATE108587T1 (de) * 1986-09-13 1994-07-15 Philips Nv Verfahren und schaltungsanordung zur bitratenreduktion.
US4730348A (en) * 1986-09-19 1988-03-08 Adaptive Computer Technologies Adaptive data compression system
US4698672A (en) 1986-10-27 1987-10-06 Compression Labs, Inc. Coding system for reducing redundancy
US4862167A (en) 1987-02-24 1989-08-29 Hayes Microcomputer Products, Inc. Adaptive data compression method and apparatus
US4968135A (en) 1987-08-17 1990-11-06 Digital Equipment Corporation System for producing pixel image data from CCITT encoded pixel data
US4792981A (en) 1987-09-21 1988-12-20 Am International, Inc. Manipulation of run-length encoded images
JPH0191587U (zh) 1987-12-07 1989-06-15
US4813056A (en) * 1987-12-08 1989-03-14 General Electric Company Modified statistical coding of digital signals
JPH0621830Y2 (ja) 1988-03-11 1994-06-08 本田技研工業株式会社 自動車のサイドシル構造
EP0339589A3 (en) * 1988-04-28 1992-01-02 Sharp Kabushiki Kaisha Orthogonal transform coding system for image data
US5043919A (en) 1988-12-19 1991-08-27 International Business Machines Corporation Method of and system for updating a display unit
DE3943879B4 (de) 1989-04-17 2008-07-17 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Digitales Codierverfahren
FR2646978B1 (fr) * 1989-05-11 1991-08-23 France Etat Procede et installation a codage de signaux sonores
US5179442A (en) * 1989-06-02 1993-01-12 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
US5128758A (en) * 1989-06-02 1992-07-07 North American Philips Corporation Method and apparatus for digitally processing a high definition television augmentation signal
JPH03108824U (zh) 1990-02-22 1991-11-08
US5270832A (en) 1990-03-14 1993-12-14 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
JPH0787331B2 (ja) 1990-05-07 1995-09-20 松下電器産業株式会社 圧電振動子及びその周波数調整方法
US5146324A (en) 1990-07-31 1992-09-08 Ampex Corporation Data compression using a feedforward quantization estimator
JPH04199981A (ja) * 1990-11-29 1992-07-21 Nec Corp 即時処理型1次元符号器
US5253053A (en) 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
US5266941A (en) 1991-02-15 1993-11-30 Silicon Graphics, Inc. Apparatus and method for controlling storage of display information in a computer system
US5373513A (en) 1991-08-16 1994-12-13 Eastman Kodak Company Shift correction code system for correcting additive errors and synchronization slips
JP2670201B2 (ja) * 1991-08-30 1997-10-29 富士写真フイルム株式会社 画像データ圧縮符号化装置および方法
JP2586260B2 (ja) 1991-10-22 1997-02-26 三菱電機株式会社 適応的ブロッキング画像符号化装置
JP3134424B2 (ja) 1991-10-31 2001-02-13 ソニー株式会社 可変長符号化方法及び装置
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
JP2812446B2 (ja) 1991-11-21 1998-10-22 三洋電機株式会社 画像符号化方式
DE69228983T2 (de) * 1991-12-18 1999-10-28 Koninklijke Philips Electronics N.V., Eindhoven System zum Übertragen und/oder Speichern von Signalen von texturierten Bildern
EP0619053A1 (en) 1991-12-23 1994-10-12 Intel Corporation Decoder and decoding method for prefixed Huffman codes using plural codebooks
JPH05199422A (ja) 1992-01-20 1993-08-06 Fujitsu General Ltd 画像伝送装置
US6680975B1 (en) * 1992-02-29 2004-01-20 Samsung Electronics Co., Ltd. Signal encoding and decoding system and method
US5227788A (en) * 1992-03-02 1993-07-13 At&T Bell Laboratories Method and apparatus for two-component signal compression
EP0559348A3 (en) * 1992-03-02 1993-11-03 AT&T Corp. Rate control loop processor for perceptual encoder/decoder
CA2090052C (en) * 1992-03-02 1998-11-24 Anibal Joao De Sousa Ferreira Method and apparatus for the perceptual coding of audio signals
KR950010913B1 (ko) 1992-07-23 1995-09-25 삼성전자주식회사 가변장부호화 및 복호화시스템
JP3348310B2 (ja) 1992-09-28 2002-11-20 ソニー株式会社 動画像符号化方法および動画像符号化装置
CA2107727C (en) * 1992-10-07 1999-06-01 Hiroaki Ueda Synchronous compression and reconstruction system
US5982437A (en) 1992-10-26 1999-11-09 Sony Corporation Coding method and system, and decoding method and system
JP2959916B2 (ja) * 1992-10-28 1999-10-06 松下電器産業株式会社 デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ
KR0166722B1 (ko) 1992-11-30 1999-03-20 윤종용 부호화 및 복호화방법 및 그 장치
US5367629A (en) 1992-12-18 1994-11-22 Sharevision Technology, Inc. Digital video compression system utilizing vector adaptive transform
US5467134A (en) 1992-12-22 1995-11-14 Microsoft Corporation Method and system for compressing video data
US5535305A (en) * 1992-12-31 1996-07-09 Apple Computer, Inc. Sub-partitioned vector quantization of probability density functions
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder
JPH06217110A (ja) 1993-01-20 1994-08-05 Process Shizai Kk 画像変換方法
US5544286A (en) 1993-01-29 1996-08-06 Microsoft Corporation Digital video data compression technique
TW224553B (en) * 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
US5376968A (en) 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
US5408234A (en) * 1993-04-30 1995-04-18 Apple Computer, Inc. Multi-codebook coding process
CA2140779C (en) * 1993-05-31 2005-09-20 Kyoya Tsutsui Method, apparatus and recording medium for coding of separated tone and noise characteristics spectral components of an acoustic signal
US5664057A (en) 1993-07-07 1997-09-02 Picturetel Corporation Fixed bit rate speech encoder/decoder
KR0155784B1 (ko) 1993-12-16 1998-12-15 김광호 영상데이타의 적응형 가변장 부호화/복호화방법
KR970009408B1 (ko) 1994-01-18 1997-06-13 대우전자 주식회사 인터/인트라 테이블 선택 회로
JP3277677B2 (ja) 1994-04-01 2002-04-22 ソニー株式会社 信号符号化方法及び装置、信号記録媒体、信号伝送方法、並びに信号復号化方法及び装置
US5504591A (en) * 1994-04-25 1996-04-02 Microsoft Corporation System and method for compressing graphic images
US5457495A (en) 1994-05-25 1995-10-10 At&T Ipm Corp. Adaptive video coder with dynamic bit allocation
US5748786A (en) * 1994-09-21 1998-05-05 Ricoh Company, Ltd. Apparatus for compression using reversible embedded wavelets
US6195465B1 (en) * 1994-09-21 2001-02-27 Ricoh Company, Ltd. Method and apparatus for compression using reversible wavelet transforms and an embedded codestream
US6141446A (en) * 1994-09-21 2000-10-31 Ricoh Company, Ltd. Compression and decompression system with reversible wavelets and lossy reconstruction
US5881176A (en) 1994-09-21 1999-03-09 Ricoh Corporation Compression and decompression with wavelet style and binary style including quantization by device-dependent parser
US5568167A (en) 1994-09-23 1996-10-22 C-Cube Microsystems, Inc. System for providing antialiased video overlays
JP3474005B2 (ja) 1994-10-13 2003-12-08 沖電気工業株式会社 動画像符号化方法及び動画像復号方法
JPH08116263A (ja) 1994-10-17 1996-05-07 Fujitsu Ltd データ処理装置及びデータ処理方法
US5802213A (en) 1994-10-18 1998-09-01 Intel Corporation Encoding video signals using local quantization levels
EP0738441B1 (en) 1994-11-04 2002-03-13 Koninklijke Philips Electronics N.V. Encoding and decoding of a wideband digital information signal
US5473376A (en) 1994-12-01 1995-12-05 Motorola, Inc. Method and apparatus for adaptive entropy encoding/decoding of quantized transform coefficients in a video compression system
JPH08167852A (ja) 1994-12-13 1996-06-25 Fujitsu Ltd データ圧縮方法及び装置
US5654702A (en) 1994-12-16 1997-08-05 National Semiconductor Corp. Syntax-based arithmetic coding for low bit rate videophone
JP2951861B2 (ja) 1994-12-28 1999-09-20 シャープ株式会社 画像符号化装置及び画像復号装置
JP3371590B2 (ja) 1994-12-28 2003-01-27 ソニー株式会社 高能率符号化方法及び高能率復号化方法
JPH08190764A (ja) 1995-01-05 1996-07-23 Sony Corp ディジタル信号処理方法、ディジタル信号処理装置及び記録媒体
JPH08205169A (ja) 1995-01-20 1996-08-09 Matsushita Electric Ind Co Ltd 動画像符号化装置及び復号装置
JP3238854B2 (ja) 1995-02-21 2001-12-17 富士通株式会社 データ圧縮方法及びデータ圧縮装置、並びにデータ復元方法及びデータ復元装置
US5574449A (en) 1995-02-24 1996-11-12 Intel Corporation Signal processing with hybrid variable-length and entropy encodidng
US5991451A (en) 1995-03-23 1999-11-23 Intel Corporation Variable-length encoding using code swapping
US5884269A (en) * 1995-04-17 1999-03-16 Merging Technologies Lossless compression/decompression of digital audio data
US5864711A (en) 1995-07-05 1999-01-26 Microsoft Corporation System for determining more accurate translation between first and second translator, and providing translated data to second computer if first translator is more accurate
US5825830A (en) 1995-08-17 1998-10-20 Kopf; David A. Method and apparatus for the compression of audio, video or other data
US6026182A (en) 1995-10-05 2000-02-15 Microsoft Corporation Feature segmentation
US5819215A (en) 1995-10-13 1998-10-06 Dobson; Kurt Method and apparatus for wavelet based data compression having adaptive bit rate control for compression of digital audio or other sensory data
US5889891A (en) * 1995-11-21 1999-03-30 Regents Of The University Of California Universal codebook vector quantization with constrained storage
JP3283413B2 (ja) 1995-11-30 2002-05-20 株式会社日立製作所 符号化復号方法、符号化装置および復号装置
JPH09162748A (ja) 1995-12-01 1997-06-20 Fujitsu Ltd データ符号化方法、データ復号方法、データ圧縮装置、データ復元装置、及びデータ圧縮・復元システム
US5956674A (en) 1995-12-01 1999-09-21 Digital Theater Systems, Inc. Multi-channel predictive subband audio coder using psychoacoustic adaptive bit allocation in frequency, time and over the multiple channels
US5831559A (en) 1996-01-24 1998-11-03 Intel Corporation Encoding/decoding video signals using multiple run-val mapping tables
US6957350B1 (en) * 1996-01-30 2005-10-18 Dolby Laboratories Licensing Corporation Encrypted and watermarked temporal and resolution layering in advanced television
US5675332A (en) 1996-02-01 1997-10-07 Samsung Electronics Co., Ltd. Plural-step chunk-at-a-time decoder for variable-length codes of Huffman type
US5682152A (en) * 1996-03-19 1997-10-28 Johnson-Grace Company Data compression using adaptive bit allocation and hybrid lossless entropy encoding
US5812971A (en) 1996-03-22 1998-09-22 Lucent Technologies Inc. Enhanced joint stereo coding method using temporal envelope shaping
US6215910B1 (en) * 1996-03-28 2001-04-10 Microsoft Corporation Table-based compression with embedded coding
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
KR100371130B1 (ko) 1996-05-28 2003-02-07 마쯔시다덴기산교 가부시키가이샤 화상예측 복호화 장치 및 그 방법과 화상예측 부호화 장치및 그 방법
WO1998000924A1 (en) 1996-06-28 1998-01-08 Philips Electronics N.V. High performance variable length decoder with two-word bit stream segmentation and related method
CN1097957C (zh) 1996-07-03 2003-01-01 摩托罗拉公司 用于基于边界的自适应熵编码/解码的方法和装置
DE19628292B4 (de) 1996-07-12 2007-08-02 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Verfahren zum Codieren und Decodieren von Stereoaudiospektralwerten
DE19628293C1 (de) * 1996-07-12 1997-12-11 Fraunhofer Ges Forschung Codieren und Decodieren von Audiosignalen unter Verwendung von Intensity-Stereo und Prädiktion
US5828426A (en) 1996-08-20 1998-10-27 Samsung Electronics Co., Ltd. Apparatus for decoding variable length coded data of both MPEG-1 and MPEG-2 standards
JP3318825B2 (ja) 1996-08-20 2002-08-26 ソニー株式会社 デジタル信号符号化処理方法、デジタル信号符号化処理装置、デジタル信号記録方法、デジタル信号記録装置、記録媒体、デジタル信号伝送方法及びデジタル信号伝送装置
US5734340A (en) * 1996-08-27 1998-03-31 Symantech Corporation Method and apparatus for storing run-intensive information in compact form
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
US5748789A (en) * 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
DE69720559T2 (de) * 1996-11-06 2004-02-12 Matsushita Electric Industrial Co., Ltd., Kadoma Methode zur Bildkodierung mit Kodes variabler Länge
ATE310307T1 (de) 1996-11-07 2005-12-15 Koninkl Philips Electronics Nv Datenverarbeitung von einem bitstromsignal
JP3987582B2 (ja) * 1996-11-11 2007-10-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ライスエンコーダ/デコーダを用いるデータ圧縮/拡張
US5903231A (en) * 1996-12-16 1999-05-11 Vidicast Ltd. System for encoding base N data using a multi-level coding scheme
JP3484310B2 (ja) 1997-01-17 2004-01-06 松下電器産業株式会社 可変長符号器
NL1005084C2 (nl) * 1997-01-24 1998-07-27 Oce Tech Bv Werkwijze voor het uitvoeren van een beeldbewerkingsoperatie op looplengte gecodeerde bitmaps.
JP3534577B2 (ja) 1997-07-23 2004-06-07 日本電信電話株式会社 情報多重化方法、情報抽出方法及びそれらの装置
US6038536A (en) * 1997-01-31 2000-03-14 Texas Instruments Incorporated Data compression using bit change statistics
US6272175B1 (en) 1997-02-13 2001-08-07 Conexant Systems, Inc. Video signal coding systems and processes using adaptive quantization
JPH10229340A (ja) * 1997-02-14 1998-08-25 Nec Corp サブバンド信号およびウエーブレット変換係数の符号化復号方式
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US6005980A (en) * 1997-03-07 1999-12-21 General Instrument Corporation Motion estimation and compensation of video object planes for interlaced digital video
FI114248B (fi) * 1997-03-14 2004-09-15 Nokia Corp Menetelmä ja laite audiokoodaukseen ja audiodekoodaukseen
US6728775B1 (en) * 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
US6009387A (en) 1997-03-20 1999-12-28 International Business Machines Corporation System and method of compression/decompressing a speech signal by using split vector quantization and scalar quantization
US6404813B1 (en) * 1997-03-27 2002-06-11 At&T Corp. Bidirectionally predicted pictures or video object planes for efficient and flexible video coding
US6259810B1 (en) * 1997-04-15 2001-07-10 Microsoft Corporation Method and system of decoding compressed image data
US5883633A (en) * 1997-04-15 1999-03-16 Microsoft Corporation Method and system of variable run length image encoding using sub-palette
JP3410629B2 (ja) 1997-05-21 2003-05-26 シャープ株式会社 可変長符号化回路及び可変長符号化方法
US6580834B2 (en) * 1997-05-30 2003-06-17 Competitive Technologies Of Pa, Inc. Method and apparatus for encoding and decoding signals
CN1126270C (zh) * 1997-07-11 2003-10-29 皇家菲利浦电子有限公司 使用可变长度编码器的传输系统
DE19730129C2 (de) 1997-07-14 2002-03-07 Fraunhofer Ges Forschung Verfahren zum Signalisieren einer Rauschsubstitution beim Codieren eines Audiosignals
DE19730130C2 (de) 1997-07-14 2002-02-28 Fraunhofer Ges Forschung Verfahren zum Codieren eines Audiosignals
US6421738B1 (en) * 1997-07-15 2002-07-16 Microsoft Corporation Method and system for capturing and encoding full-screen video graphics
JP3884172B2 (ja) 1997-10-02 2007-02-21 株式会社東芝 可変長復号化装置および復号化方法
US6493385B1 (en) 1997-10-23 2002-12-10 Mitsubishi Denki Kabushiki Kaisha Image encoding method, image encoder, image decoding method, and image decoder
EP1988714B1 (en) 1997-10-23 2010-03-03 Mitsubishi Denki Kabushiki Kaisha Image decoding apparatus
JPH11161782A (ja) * 1997-11-27 1999-06-18 Seiko Epson Corp カラー画像の符号化方法およびその符号化装置ならびにカラー画像の復号化方法およびその復号化装置
US6111914A (en) 1997-12-01 2000-08-29 Conexant Systems, Inc. Adaptive entropy coding in adaptive quantization framework for video signal coding systems and processes
US5946043A (en) 1997-12-31 1999-08-31 Microsoft Corporation Video coding using adaptive coding of block parameters for coded/uncoded blocks
US6226407B1 (en) * 1998-03-18 2001-05-01 Microsoft Corporation Method and apparatus for analyzing computer screens
US6054943A (en) * 1998-03-25 2000-04-25 Lawrence; John Clifton Multilevel digital information compression based on lawrence algorithm
US7263127B1 (en) * 1998-04-02 2007-08-28 Intel Corporation Method and apparatus for simplifying frame-based motion estimation
AU4701999A (en) * 1998-06-19 2000-01-05 Equator Technologies, Inc. Decoding an encoded image having a first resolution directly into a decoded image having a second resolution
JP3413720B2 (ja) 1998-06-26 2003-06-09 ソニー株式会社 画像符号化方法及び装置、並びに画像復号方法及び装置
US6253165B1 (en) * 1998-06-30 2001-06-26 Microsoft Corporation System and method for modeling probability distribution functions of transform coefficients of encoded signal
DE19840835C2 (de) 1998-09-07 2003-01-09 Fraunhofer Ges Forschung Vorrichtung und Verfahren zum Entropiecodieren von Informationswörtern und Vorrichtung und Verfahren zum Decodieren von Entropie-codierten Informationswörtern
WO2000021199A1 (fr) * 1998-10-06 2000-04-13 Matsushita Electric Industrial Co., Ltd. Procede et dispositif de codage a compression sans perte, et procede et dispositif de decodage a compression sans perte
US6233359B1 (en) * 1998-10-29 2001-05-15 Seiko Epson Corporation File size bounded JPEG transcoder (FSBJT)
US6404931B1 (en) * 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US6300888B1 (en) 1998-12-14 2001-10-09 Microsoft Corporation Entrophy code mode switching for frequency-domain audio coding
US6223162B1 (en) * 1998-12-14 2001-04-24 Microsoft Corporation Multi-level run length coding for frequency-domain audio coding
US6377930B1 (en) * 1998-12-14 2002-04-23 Microsoft Corporation Variable to variable length entropy encoding
US6100825A (en) 1998-12-31 2000-08-08 Microsoft Corporation Cluster-based data compression system and method
JP3434260B2 (ja) 1999-03-23 2003-08-04 日本電信電話株式会社 オーディオ信号符号化方法及び復号化方法、これらの装置及びプログラム記録媒体
US6477280B1 (en) 1999-03-26 2002-11-05 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
EP1188244B1 (en) * 1999-03-26 2004-11-10 Microsoft Corporation Lossless adaptive encoding of finite alphabet data
US7050503B2 (en) 1999-04-17 2006-05-23 Pts Corporation Segment-based encoding system using residue coding by basis function coefficients
JP3323175B2 (ja) 1999-04-20 2002-09-09 松下電器産業株式会社 符号化装置
US6573915B1 (en) * 1999-12-08 2003-06-03 International Business Machines Corporation Efficient capture of computer screens
US6567781B1 (en) * 1999-12-30 2003-05-20 Quikcat.Com, Inc. Method and apparatus for compressing audio data using a dynamical system having a multi-state dynamical rule set and associated transform basis function
US6552673B2 (en) * 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
US6771828B1 (en) * 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
EP1294197A4 (en) * 2000-05-23 2004-11-24 Matsushita Electric Ind Co Ltd METHOD AND DEVICE FOR CODING WITH VARIABLE LENGTH
US6542863B1 (en) * 2000-06-14 2003-04-01 Intervideo, Inc. Fast codebook search method for MPEG audio encoding
US6373411B1 (en) 2000-08-31 2002-04-16 Agere Systems Guardian Corp. Method and apparatus for performing variable-size vector entropy coding
JP4508490B2 (ja) 2000-09-11 2010-07-21 パナソニック株式会社 符号化装置および復号化装置
US6961685B2 (en) 2000-09-19 2005-11-01 Sy Bon K Probability model selection using information-theoretic optimization criterion
AU2002213714A1 (en) 2000-10-24 2002-05-06 Eyeball Networks Inc. Three-dimensional wavelet-based scalable video compression
US6735339B1 (en) 2000-10-27 2004-05-11 Dolby Laboratories Licensing Corporation Multi-stage encoding of signal components that are classified according to component value
JP3580251B2 (ja) 2000-12-27 2004-10-20 日本電気株式会社 データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体
US7274671B2 (en) 2001-02-09 2007-09-25 Boly Media Communications, Inc. Bitwise adaptive encoding using prefix prediction
CN100456640C (zh) 2001-06-07 2009-01-28 日本胜利株式会社 调制和解调方法与装置、信息传输方法和装置
US6650784B2 (en) 2001-07-02 2003-11-18 Qualcomm, Incorporated Lossless intraframe encoding using Golomb-Rice
US6587057B2 (en) * 2001-07-25 2003-07-01 Quicksilver Technology, Inc. High performance memory efficient variable-length coding decoder
US20030033143A1 (en) * 2001-08-13 2003-02-13 Hagai Aronowitz Decreasing noise sensitivity in speech processing under adverse conditions
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
US6959116B2 (en) 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
PT2268034T (pt) * 2001-11-22 2016-11-18 Godo Kaisha Ip Bridge 1 Método de codificação de comprimento variável e método de descodificação de comprimento variável
US6825847B1 (en) 2001-11-30 2004-11-30 Nvidia Corporation System and method for real-time compression of pixel colors
US7165028B2 (en) * 2001-12-12 2007-01-16 Texas Instruments Incorporated Method of speech recognition resistant to convolutive distortion and additive distortion
US6934677B2 (en) 2001-12-14 2005-08-23 Microsoft Corporation Quantization matrices based on critical band pattern information for digital audio wherein quantization bands differ from critical bands
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
US7155065B1 (en) 2002-03-27 2006-12-26 Microsoft Corporation System and method for progressively transforming and coding digital data
US7139703B2 (en) 2002-04-05 2006-11-21 Microsoft Corporation Method of iterative noise estimation in a recursive framework
US6653955B1 (en) 2002-05-09 2003-11-25 Lsi Logic Corporation Multi-symbol variable length code decoder
GB2388502A (en) 2002-05-10 2003-11-12 Chris Dunn Compression of frequency domain audio signals
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
DE10236694A1 (de) 2002-08-09 2004-02-26 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zum skalierbaren Codieren und Vorrichtung und Verfahren zum skalierbaren Decodieren
US7424434B2 (en) * 2002-09-04 2008-09-09 Microsoft Corporation Unified lossy and lossless audio compression
US7502743B2 (en) * 2002-09-04 2009-03-10 Microsoft Corporation Multi-channel audio encoding and decoding with multi-channel transform selection
ES2297083T3 (es) 2002-09-04 2008-05-01 Microsoft Corporation Codificacion entropica por adaptacion de la codificacion entre modos por longitud de ejecucion y por nivel.
US7328150B2 (en) * 2002-09-04 2008-02-05 Microsoft Corporation Innovations in pure lossless audio compression
US7433824B2 (en) * 2002-09-04 2008-10-07 Microsoft Corporation Entropy coding by adapting coding between level and run-length/level modes
US7536305B2 (en) * 2002-09-04 2009-05-19 Microsoft Corporation Mixed lossless audio compression
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US20040136457A1 (en) * 2002-10-23 2004-07-15 John Funnell Method and system for supercompression of compressed digital video
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US7403561B2 (en) 2003-04-04 2008-07-22 Avid Technology, Inc. Fixed bit rate, intraframe compression and decompression of video
US7324927B2 (en) * 2003-07-03 2008-01-29 Robert Bosch Gmbh Fast feature selection method and system for maximum entropy modeling
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
CN1214649C (zh) 2003-09-18 2005-08-10 中国科学院计算技术研究所 用于视频预测残差系数编码的熵编码方法
US7460990B2 (en) 2004-01-23 2008-12-02 Microsoft Corporation Efficient coding of digital media spectral data using wide-sense perceptual similarity
US7454076B2 (en) 2004-06-15 2008-11-18 Cisco Technology, Inc. Hybrid variable length coding method for low bit rate video coding
US7852916B2 (en) 2004-06-27 2010-12-14 Apple Inc. Efficient use of storage in encoding and decoding video data streams
KR100668302B1 (ko) * 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
KR100664932B1 (ko) * 2004-10-21 2007-01-04 삼성전자주식회사 비디오 코딩 방법 및 장치
US7809064B2 (en) * 2004-11-15 2010-10-05 Industrial Technology Research Institute Systems and methods of flexible power management applicable to digital broadcasting
US20060176959A1 (en) 2005-02-07 2006-08-10 Paul Lu Method and system for encoding variable length code (VLC) in a microprocessor
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
WO2007002468A2 (en) 2005-06-23 2007-01-04 1Stworks Corporation Modeling for enumerative encoding
US7599840B2 (en) 2005-07-15 2009-10-06 Microsoft Corporation Selectively using multiple entropy models in adaptive coding and decoding
US7630882B2 (en) 2005-07-15 2009-12-08 Microsoft Corporation Frequency segmentation to obtain bands for efficient coding of digital media
US7693709B2 (en) * 2005-07-15 2010-04-06 Microsoft Corporation Reordering coefficients for waveform coding or decoding
US7684981B2 (en) * 2005-07-15 2010-03-23 Microsoft Corporation Prediction of spectral coefficients in waveform coding and decoding
US7546240B2 (en) * 2005-07-15 2009-06-09 Microsoft Corporation Coding with improved time resolution for selected segments via adaptive block transformation of a group of samples from a subband decomposition
US7562021B2 (en) 2005-07-15 2009-07-14 Microsoft Corporation Modification of codewords in dictionary used for efficient coding of digital media spectral data
US9077960B2 (en) * 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
JP2007300389A (ja) * 2006-04-28 2007-11-15 Victor Co Of Japan Ltd 画像符号化装置および画像符号化プログラム
US9070178B2 (en) * 2006-08-11 2015-06-30 Siemens Product Lifecycle Management Software Inc. Method and system for organizing topology elements for better compression
US7756350B2 (en) 2006-11-13 2010-07-13 Global Ip Solutions, Inc. Lossless encoding and decoding of digital data
US7761290B2 (en) 2007-06-15 2010-07-20 Microsoft Corporation Flexible frequency and time partitioning in perceptual transform coding of audio
US20080317364A1 (en) 2007-06-25 2008-12-25 Augusta Technology, Inc. Methods for determining neighboring locations for partitions of a video stream
US8406307B2 (en) * 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5714950A (en) * 1992-07-23 1998-02-03 Samsung Electronics Co., Ltd. System for variable-length-coding and variable-length-decoding digitaldata
US6678419B1 (en) * 1999-03-26 2004-01-13 Microsoft Corporation Reordering wavelet coefficients for improved encoding
CN1946185A (zh) * 2001-11-22 2007-04-11 松下电器产业株式会社 可变长度编码方法以及可变长度解码方法
CN1565129A (zh) * 2002-07-16 2005-01-12 三星电子株式会社 使用多个扫描图形的编码和解码方法及装置

Also Published As

Publication number Publication date
US9172965B2 (en) 2015-10-27
MX2010011961A (es) 2010-11-30
EP2269380B1 (en) 2020-05-06
US20090273706A1 (en) 2009-11-05
KR20110010599A (ko) 2011-02-01
JP2011521536A (ja) 2011-07-21
EP2269380A2 (en) 2011-01-05
US8179974B2 (en) 2012-05-15
JP5180370B2 (ja) 2013-04-10
US20120243615A1 (en) 2012-09-27
CN102017634A (zh) 2011-04-13
KR101541945B1 (ko) 2015-08-05
WO2009134575A3 (en) 2010-03-11
HK1154729A1 (zh) 2012-04-27
EP2269380A4 (en) 2014-05-28
WO2009134575A2 (en) 2009-11-05

Similar Documents

Publication Publication Date Title
CN102017634B (zh) 重新排序的变换系数的多级表示
CN113455007B (zh) 帧间点云属性编解码的方法和装置
CN113475083B (zh) 帧间点云属性编解码的方法和装置
US8615138B2 (en) Image compression using sub-resolution images
CN106716997B (zh) 使用环路内滤波器参数预测的视频编码方法和设备
CN108632625B (zh) 一种视频编码方法、视频解码方法和相关设备
CN107743239B (zh) 一种视频数据编码、解码的方法及装置
US8855437B1 (en) Image compression and decompression using block prediction
CN112188197B (zh) 通道间点云属性解码方法、装置以及可读存储介质
WO2015120818A1 (zh) 图像编码、解码方法及装置
US20060028359A1 (en) Context-based adaptive binary arithmetic coding method and apparatus
US20120033731A1 (en) Video encoding apparatus and video decoding apparatus
US20120045141A1 (en) Image encoding apparatus and decoding apparatus
CN105103453A (zh) 数据编码和解码
KR20200003888A (ko) 비디오 압축에서의 엔트로피 코딩을 위한 선택적 혼합
JP2007020208A (ja) ブロック単位での画像データの圧縮及び圧縮解除
CN112335241A (zh) 对视频样本的变换块编码和解码的方法、设备和系统
JP2013507794A (ja) ビットストリームを復号する方法
CN113795870A (zh) 用于点云属性编解码的信道间预测和变换的技术和装置
US20110090954A1 (en) Video Codes with Directional Transforms
Kabir et al. Edge-based transformation and entropy coding for lossless image compression
Hasnat et al. Modified vector quantization algorithm to overcome the blocking artefact problem of vector quantization algorithm
US6615335B1 (en) Compressed storage of information
US20220094951A1 (en) Palette mode video encoding utilizing hierarchical palette table generation
Kuo et al. An efficient spatial prediction-based image compression scheme

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1154729

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1154729

Country of ref document: HK

ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150504

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150504

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.