CN103262123B - 图块编码和解码 - Google Patents

图块编码和解码 Download PDF

Info

Publication number
CN103262123B
CN103262123B CN201080070715.4A CN201080070715A CN103262123B CN 103262123 B CN103262123 B CN 103262123B CN 201080070715 A CN201080070715 A CN 201080070715A CN 103262123 B CN103262123 B CN 103262123B
Authority
CN
China
Prior art keywords
sequence
symbol
combined
symbols
symbol position
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.)
Expired - Fee Related
Application number
CN201080070715.4A
Other languages
English (en)
Other versions
CN103262123A (zh
Inventor
雅各布·斯特罗姆
玻尔·温纳斯滕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN103262123A publication Critical patent/CN103262123A/zh
Application granted granted Critical
Publication of CN103262123B publication Critical patent/CN103262123B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/69Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving reversible variable length codes [RVLC]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

至少通过将像素(6)的第一块(4)可变长度编码为符号的第一序列(10)以及将像素(6)的第二块(5)可变长度编码为符号的第二序列(20),对像素(6)的图块(1)编码。将第一序列和第二序列(10、20)的符号共同组织到符号的组合序列(70)中,在所述组合序列(70)中,能够在第一读取方向上读取第一序列(10)的符号,以及能够在相反的第二读取方向上读取第二序列(20)中的符号的至少一部分。对图块(1)编码以形成一个或更多个组合序列(70)显著地降低了在向像素值缓冲区(9)写入图块(1)时的带宽需求。对第一序列和第二序列(10、20)的共同组织使得可以并行读取和解码来自像素值缓冲区(9)的第一序列和第二序列(10、20),由此降低了任何的解码等待时间。

Description

图块编码和解码
技术领域
本发明大致涉及图像处理,以及具体地,涉及图块(tile)的编码和解码。
背景技术
计算机图形系统中的带宽消耗大的任务之一是更新缓冲区,具体地,颜色缓冲区。颜色缓冲区包含最终要被显示的数据,即,输出像素。在传统架构中,逐三角形地更新颜色缓冲区。首先,对第一个三角形进行光栅化,并更新颜色缓冲区的对应像素。然后,将第二个三角形光栅化,写到其颜色缓冲区中的像素,可能与第一个三角形中的那些像素重叠。这意味着,可以写颜色缓冲区中的每个像素若干次。典型应用将可能平均3至10次地覆写颜色缓冲区中的每个像素。这在本技术领域内被称为具有3至10的过度绘制。这意味着,颜色缓冲区的写入带宽将比如果仅写每个像素1次要大3到10倍之间。
用于减少颜色缓冲区的带宽需求的一种方式是使用被称为图块化架构的技术。替代逐三角形地对场景进行光栅化,将颜色缓冲区划分为不重叠的图块。然后,逐图块地渲染场景。对于第一图块,仅将与第一图块重叠的三角形用于光栅化。使得图块大小足够小,从而整个图块可以适合在图形处理单元(GPU)的片上。因此,在渲染图块的三角形期间无需对颜色缓冲区的外部存储器访问。当已经对图块中的所有三角形进行光栅化时,向颜色缓冲存储器发送图块,并且处理下一图块。注意,在图块化架构中,颜色缓冲区中的每个像素仅向外部存储器写一次。这意味着,图块化架构一般可以以3-10的因子来减少用于颜色缓冲区的写入带宽。
用于降低颜色缓冲区带宽的另一技术被称为缓冲区压缩。这意味着缓冲区数据块以压缩形式存储在存储器中。场景仍然逐三角形地进行处理,但在向颜色缓冲存储器发送像素块之前,像素被压缩。GPU中存储或高速缓存的被称为大小比特的少数比特被用于保持跟踪数据被压缩的程度,例如向下压缩到与初始比特长度的25%、50%或75%对应的比特长度,或一点也不压缩。当后续三角形想要写到相同像素块时,大小比特用于获知应读取多少数据。对块进行解压,新三角形覆写块中的一些像素,该块然后再次被压缩并且存储。Hasselgren和2006,Efficient Depth Buffer Compression,InGraphics Hardware,103-110和Rasmusson,Hasselgren和2007,Exactand Error_bounded Approximate Color Buffer Compression and Decompression,InGraphics Hardware,41-48分别给出了颜色缓冲区压缩和深度缓冲区压缩的良好概述。
图块化架构的限制在于,虽然每个像素仅被写一次,但这仍然非常昂贵。此外,显示器控制器将必须读取每个像素以将其输出到显示器。这意味着,将必须从颜色缓冲区读取每个像素并且将其以未压缩形式写入颜色缓冲区至少一次,这是昂贵的。
颜色缓冲区压缩解决方案的问题在于,即使可以实现50%的压缩因子,这也仍然占有太多带宽。在例如6的过度绘制的情况下,每个像素平均仍然被写六次。50%的压缩比率将使得有效带宽下降到3倍像素数目,但这对于图块化架构仍然过多。
因此,需要一种可以结合计算机图形系统来高效地处理像素值缓冲区的技术。
发明内容
实施例的一般目的是提供用于有效地处理与图形系统相结合的像素值缓冲区的技术。
通过本文中描述的实施例来满足该目的以及其他目的。
实施例的一方面定义了编码像素的图块的方法,每个像素具有相应的像素值。该方法包括将像素的第一块可变长度编码为符号的第一序列,以及将第二块可变长度编码为符号的第二序列。第一块和第二块构成图块的不同子集。第一序列是第一块中的像素的像素值的编码表示,以及第二序列是第二块中的像素值的对应编码表示。
将第一序列和第二序列的符号共同组织为符号的组合序列。从而,在组合序列中,可在第一读取方向上读取第一序列的符号。还产生组合序列,以使得可在相反的第二读取方向上读取第二序列中的符号的至少一部分。然后将所产生的组合序列存储在存储器中。
对图块的块的编码将降低在向像素值缓冲区写入图块时的带宽需求。此外,组合序列中符号的共同组织便于轻松识别属于至少第一序列和第二序列中的相应序列的符号。即使已经由可变长度编码获得了序列(潜在地导致不同符号长度的序列),这也是可能的。这意味着可以并行地进行从组合序列解码第一序列和第二序列,由此降低任何的解码等待时间。
实施例的另一方面涉及用于编码图块的设备。该设备包括可变长度编码器,可变长度编码器被配置为将至少第一块和第二块可变长度编码为符号的第一序列和第二序列。符号组织器被配置为将第一序列和第二序列的符号共同组织为组合序列,以使得可在第一读取方向上从组合序列读取第一序列的符号,以及可在相反的第二读取方向上读取第二序列的符号的至少一部分。设备的存储器控制器被配置为将所产生的组合序列存储在存储器中。
实施例的另一方面定义了解码图块的方法。该方法包括从缓冲存储器获取符号的组合序列。通过从组合序列中的第一已定义符号位置开始,在第一读取方向上读取所获取的组合序列的第一部分,识别符号的第一序列。通过从组合序列中的第二已定义符号位置开始,在相反的第二读取方向上读取所获取的组合序列的第二部分,对应地识别符号的第二序列。然后,解码所识别的第一序列,以得到第一块中的像素的像素值的解码表示。相应地解码第二序列,以得到图块的第二块中的像素值的解码表示。
实施例的另一方面涉及用于解码图块的设备。设备包括序列获取器,序列获取器被配置为从缓冲存储器获取组合序列。序列识别器被实现为通过在第一读取方向上读取所获取的组合序列的第一部分来识别第一序列。序列识别器还在相反的第二读取方向上读取组合序列的第二部分,以从组合序列识别第二序列。然后,第一解码器解码第一序列,以得到图块的第一块中的像素值的解码表示,以及第二解码器解码第二序列,以得到第一块中的像素值的解码表示。
附图说明
通过结合附图来参考以下的描述,可以最好地理解本发明及其进一步的目标和优势,在附图中:
图1是示出根据实施例的编码图块的方法的流程图;
图2示意性示出根据实施例的图块以及将图块划分为小的单元;
图3是示出图1中的方法的附加可选步骤的流程图;
图4是示出图1中的共同组织步骤的实施例的流程图;
图5示意性地示出根据实施例的符号的组合序列;
图6是示出图1中的方法的附加可选步骤的流程图;
图7A-7D示意性地示出根据不同实施例的符号的组合序列;
图9是根据实施例的包括填充符号的符号的组合序列的示意性示出;
图10示意性地示出根据实施例的符号的组合序列;
图11是示出根据实施例的解码图块的方法的流程图;
图12是示出图11中的序列识别步骤的实施例的流程图;
图13是示出图11中的方法的附加可选步骤的流程图;
图14是根据实施例的用于显示图像的系统的示意性概述;
图15是根据实施例的用于对图块进行编码的设备的示意性框图;以及
图16是根据实施例的用于对图块进行解码的设备的示意性框图。
具体实施方式
贯穿附图,相同附图标记用于相似或对应要素。
实施例通常涉及图像处理,具体地说,涉及对构成像素值缓冲区的至少一部分的像素图块进行编码和解码。实施例由此将用于缓冲压缩的现有技术与图块化架构组合,以当写入并更新缓冲存储器中的像素值缓冲时甚至进一步降低写带宽。还通过允许并行地解码已编码图块的不同部分的具体方式来编码和解码图块,并由此使得可降低解码时间。
根据实施例,像素图块表示像素值缓冲区的至少一部分。因此,将像素值缓冲区划分为一个或通常多个(即至少两个)非重叠部分(其在本领域中表述为图块)。特别对于非常小的像素值缓冲区而言,单个图块占据整个像素值缓冲区是可能的。然而,在多数实际实现中,像素值缓冲区被认为被划分为分离的非重叠图块。
然而,由于编码和解码时间长以及较低的编码效率,编码整个图块通常是不可行的。因此,期望将图块划分为多个像素块,其中,选择这种块在像素数目方面的大小,以从编码和解码的角度来有效地对其进行处理。
然而,关于编码和解码效率来将图块划分为多个较小的块引入了与数据传递有关的问题。通常,所产生的块的编码表示的符号大小或长度不能很好地适于通过数据总线的有效传递。从而,针对比从编码和解码的角度而言所期望的符号长度长的符号长度,图形系统的数据总线通常被发计为实现有效的突发传递。
实施例通过将编码多个块而获得符号的序列共同组织为组合序列来解决这些冲突的期望,该组合序列可以有效地通过数据总线来传递,然而单独符号序列具有良好地适于编码和解码需求的大小。
根据实施例,按照即使在使用可变长度编码方案来编码块时也可以并行地解码单独的符号序列的方式来执行将符号序列共同组织为组合序列。
可变长度编码意味着符号序列不具有单一的固定符号长度,而是可以采用各种符号长度。将符号序列彼此相继地组织在组合序列中将防止在解码侧随机地访问具体块的符号序列,因为解码器不知道符号序列在组合序列中从何处开始和结束。因此,针对组合序列中的每个符号序列,识别相应开始符号和结束符号的唯一可能性从而是从最高有效符号开始并向最低有效符号继续,解析和解码组合序列。然而,这种方案意味着不可能进行单独符号序列的并行解码,并且针对组合序列,仅有单个解码器可以操作。
实施例通过将符号序列具体地共同组织在组合序列中以允许多个解码器并行地操作组合序列来解决了该问题,并由此与单一的连续解码线路相比,显著地降低了解码等待时间。
根据实施例,每个像素具有各自的像素值。取决于特定应用,在本领域中使用各个这样的像素值。这种像素值的典型示例是颜色值,更优选地,多分量颜色值。在后一种情况下,像素颜色包括多个颜色分量。这种颜色的典型示例是具有三种颜色分量的红色、绿色、蓝色(RGB)。其它多分量颜色(例如YUV、YCoCg或YCrCb)也是本领域已知的,并且可以根据实施例而使用。
可以根据实施例而使用的像素值的另一示例是深度值或所谓的Z值。该特征表示对于特定像素距眼睛的深度或距离,并且控制在渲染期间将实际显示哪些像素。
图块从而可以构成颜色缓冲或深度缓冲的至少一部分。
除了颜色和深度缓冲之外,实施例可以应用的像素值缓冲的另一示例是所谓的模板(stencil)缓冲。模板缓冲可以用于限制渲染区域,在本领域中也表示模板化。在渲染流程中,也可以结合深度缓冲来使用模板缓冲。例如,对于失败于或通过了深度测试的每个像素,模板值可以自动更新(即增加或减少)。模板缓冲在实现各种效果(例如阴影、轮廓绘制或各复杂图元之间的交点的高亮)中找到应用。在此情况下,图块可以构成模板缓冲的至少一部分,并且像素值是模板缓冲的模板值。
实际上,像素值可以是期望基于像素而分配并且在其处将像素分组为图块的任何性质。使用图形系统内的可编程着色器(shader)使得能够创建并且使用各自像素值缓冲区,并且实施例也可以应用于这种像素值缓冲区。例如,在延迟的渲染中,将法线(normal)写入到缓冲,从而像素各自是表示法线(X、Y、Z坐标,或如果采用单位法线,则仅需要两个坐标)。此外,这些应用可以受益于实施例。
编码
图1是示出对像素图块进行编码的方法的实施例的流程图,其中,每个像素具有对应像素值。该方法开始于步骤S1中,其中,对至少第一像素块和第二像素块进行可变长度编码。第一像素块构成图块的第一子集,第二像素块对应地构成图块的不同的(即不重叠的)第二子集。步骤S1的可变长度编码产生作为第一块中像素的像素值的编码表示的第一符号序列。步骤S1还产生作为第二块中像素的像素值的编码表示的第二符号序列。第一符号序列和第二符号序列可以根据数据编码内的任何传统上采用的符号字母表。例如,符号字母表可以是二进制字母表。在此情况下,符号可以是0bin或1bin。可以使用的其它符号字母表包括十六进制符号(即0-9hex和A-Fhex)、十进制符号(即0-9dec)。在优选应用中,将具有比特序列的二进制字母表用作符号字母表的示意性实施例。本文中使用的符号不表示VLC符号,即可变长度编码符号,VLC符号有时被使用来表示具体的事件,例如块的尾端。
可以根据传统上采用来用于对颜色或深度缓冲数据或其它像素值缓冲进行编码的任何可变长度编码方案来进行可变长度编码。然而,与这些可变长度编码方案的传统使用相比的重要差别在于,它们现将对图块的块而不是全部像素值缓冲区进行操作。因此,实施例基于图块化架构和缓冲区编码或压缩的组合。根据实施例可以采用的合适的可变长度编码方案的示例公开于Hasselgren和2006,Efficient Depth BufferCompression,In Graphics Hardware,103-110,Rasmusson,Hasselgren和2007,Exact and Error_bounded Approximate Color BufferCompression and Decompression,In Graphics Hardware,41-48,WO 2009/092455,WO2009/092454和WO 2009/093947中,通过引用将其关于可变长度编码方案的教导并入本文。然而,实施例并不限于任何特定可变长度编码方案,而是可以应用于并结合可以将具有像素值的像素块编码为符号序列的任何已知的这种可变长度编码使用。
图2是图块1的示意性示出,并示出了可以如何将图块1划分为像素6的更小单元的示例。在非限制性但示意性的示例中,图块1具有32×32像素的大小。在这种情况下,可以将图块1划分为4个垂直的片2,例如32×8像素的片2。在可选的方案中,继而将片2划分为两个段3,例如,16×8像素的段3。优选地,段3从而在像素6的数目方面具有产生作为段3的编码表示的符号序列的大小,该符号序列平均具有使得可以通过数据总线有效地进行突发传递的符号长度。然而,即使段3中的像素6的编码表示的符号长度可适于有效的突发传递,从解码器等待时间的角度看,所产生的相对长的符号长度也不是最优的。根据实施例,因此可以认为段3被划分为像素6的多个块4、5。在一个示例中,这种块4、5可以包括4×4个像素,导致每个段3有8个块4、5。
如果可以以每个像素6一个时钟周期的速率进行解码,在本示例中,对片2编码和解码将总计有32×8=256个时钟周期的等待时间。然而,可能仅有最多64个时钟周期可用于解码。因此,片2在实现有效的解码方面可能太大。另一方面,在本示例中,4×4=16个像素的块4、5将仅需要16个时钟周期用于解码。然而,对于有效的突发传递而言,块4、5的编码表示的符号长度通常太小。事实上,如果每个像素与每颜色组成8比特的RGB颜色值相关联,甚至块4、5的未压缩序列也才将导致4×4×3×8=384个符号或比特。然而,对于有效的突发大小而言,这已经太小,有效的突发大小通常可以是能够在4个周期中传递512比特。如果可变长度编码附加地可导致例如1/6的压缩,所产生的比特长度将仅是64比特。这对于有效的突发传递而言非常小。
然而,如果不压缩,例如具有8个块4、5的段3将导致8×384=3072比特的总比特长度。如果压缩平均而言将是1/6,总比特长度将是512比特,这是针对于本示例中的突发传递进行了优化。因此,图块1被有利地划分为多个小的块4、5,该多个小的块4、5被单独进行可变长度编码,然而当通过数据总线来传递时,将其在至少具有两个块4、5的段3中一起处理。
图1中的方法的下一步骤S2将由可变长度编码步骤S1获得的第一序列中的符号和第二序列中的符号进行共同组织(co-organize)。按照特别的方式将符号组合为符号的组合序列,以便于容易地读取分别属于第一序列和第二序列的符号。从而,在第一或缺省的读取方向上,可从组合序列读取第一序列的符号。然而,在相反的第二读取方向上,可从组合序列读取第二序列的符号的至少一部分。该对符号的特定共同组织使得可以并行读取属于第一或第二序列的相应符号,并因此使得可以并行解码第一序列和第二序列。即使第一和第二序列是从可变长度编码产生的,并行读取和解码也是可能的。从而,即使之前不知道第一序列和第二序列的相应长度,并行读取和解码也是可能的。
下一步骤S3将组合序列存储在存储器中。存储器通常是所谓的片上存储器,并具体地是图形处理单元的片上存储器。在这种情况下,步骤S1-S3的方法可以对在片上存储器上存储的数据操作,并且不需要为了产生符号的组合序列而针对外部存储器的外部并耗时的存储器提取。
针对多个块(例如,图块的之前的段的块)一起执行步骤S1至S3的方法。一旦要处理具有多个块的下一个段,再次针对该段的多个块进行步骤S1至S3的操作。取决于具体的实现,至少部分地并行处理至少两个段甚至也是可能的。在任一情况下,优选将步骤S1至S3的循环执行充分多的次数(并行地或串行地),以编码整个图块。取决于图块的大小,这意味着可以将步骤S1至S3的循环执行一次,或者通常执行多次,直到对图块的所有块编码。
图3是示出图1中的方法的附加步骤的流程图。该方法从图1的步骤S3继续。下一步骤S10从图形处理单元中的存储器向显示单元中或连接到显示单元的缓冲存储器发送组合序列。然后,通过将从多个块获得的符号序列(其中,对于有效的突发传递而言,一个这样的符号序列通常具有太小的大小)进行组合,可以通过有效传递突发的方式来进行组合序列的发送。
实施例的图块化方案意味着缓冲存储器中的各个像素仅需要被写一次,由此降低了带宽消耗。此外,对像素的块的可变长度编码甚至进一步降低了该带宽消耗,因为有可能向缓冲存储器传递已编码并因此被压缩的像素值数据。
现在将更详细地描述各种实现实施例。
图4是示出图1中的共同组织步骤的具体实施例的流程图。该方法从图1中的步骤S1继续。下一步骤S20在组合序列的第一部分中在第一读取方向上组织第一序列的符号。步骤S21在组合序列中组织第二序列的符号。在组合序列的后续第二部分中,在相反的第二读取方向上组织这些符号。
图5更详细地示出了该实施例。组合序列70包括具有第一序列10的符号的第一部分7A、以及后续的第二部分8A。这意味着组合序列70的最高有效符号被认为在图5的左边,并通常与第一序列10的最高有效符号相一致。根据第一读取方向,第二部分8A跟随在第一部分7A之后。与第一序列10形成鲜明对比的是,在相反的第二读取方向上组织第二序列20中的符号。在图5中通过箭头来标记相应的读取方向。将相反的第二读取方向用于第二序列20意味着第二序列20的最高有效符号将是组合序列70的最低有效符号。
如图5中所示地在相反的读取方向上组织第一序列10和第二序列20中的符号,使得可以并行读取和解码这两个序列10、20。从而,通过以下方式读取第一序列10的符号:从组合序列70的最高有效符号开始,并继续去往组合序列70的最低有效符号,但一旦到达第一序列10的尾端便停止。相反,在本实施例中,通过以下方式读取第二序列20中的符号:从组合序列70的最低有效符号开始,并继续去往组合序列70的最高有效符号,以及在第二序列20的尾端处停止。因此,不需要第一和第二序列10、20的相应符号长度的信息,以在组合序列70中找到两个序列10、20的相应开始位置。
对于当对两个以上的块进行可变长度编码并且将所产生的符号序列共同组织为组合序列时的情况,也可以应用该在组合序列中使用两个相反的读取方向的概念。
在这种情况下,对构成图块的相应子集或部分的N个像素块进行可变长度编码,以形成作为N个块中的像素值的编码表示的N个符号序列。从而,参数N是大于等于3的整数。然后,将N个序列的符号共同组织为组合序列。
在一个实施例中,将符号共同组织为组合序列,以使得在第一读取方向上可读取N个序列中的第一序列中的符号,以及在相反的第二读取方向上可读取N个序列中的最后一个序列(即,序列号为N)的符号。将剩余N-2个序列的符号组织到组合序列中,以使得在相反的第二读取方向上可读取剩余序列中的每个偶数编号的序列,而在第一读取方向上可读取N个序列中的剩余序列中的每个奇数编号的序列。
因此,在本实施例中,一个接一个地并使用交替的读取方向来组织前N-1个序列的符号。优选地,总是在相反的第二方向上可读取最后一个序列的符号。在这种情况下,如果组合序列包括奇数个序列,则最后两个序列将具有在相反的第二方向上组织的符号,而如果N是偶数,对于组合序列中的所有序列,读取方向将是交替的。
可以将上述实施例限定为:将N个序列的符号共同组织为组合序列,以使得可以在相反的第二读取方向上读取序列号为N的序列(即,最后一个序列)的符号。在所述第一读取方向上可读取N个序列中序列号为2m+1的序列的符号。在所述相反的第二读取方向上可读取N个序列中序列号为2n的序列的符号。
参数m是整数,并且,即,其中,表示向下取整函数。在本文中,整数对应于包括0在内的自然数以及非零自然数的负数。然而,因为m是从闭区间中选择的整数,m不能是负数。例如,N=3给出m=0,N=4给出m=0,1,N=5给出m=0,1,N=6给出m=0,1,2,等等。参数n是整数,并且从而,N=3给出n=1,N=4给出n=1,N=5给出n=1,2,N=6给出n=1,2,等等
优选地,将N个序列中的符号共同组织为组合序列,使得以正确的顺序来提供序列。从而,在组合序列中,序列号i在序列号i+1之前,其中,i=1,2,...,N-1。
在上述实施例中,可以从组合序列中并行地读取和解码组合序列中的第一个和最后一个序列的符号。然而,在不提供任何附加信息的情况下,第一个和最后一个序列的相应尾端以及因此组合序列中的其他序列的开始位置是未知的。
在一个实施例中,不提供这种附加信息。在这种情况下,在第一轮次可以读取和解码第一个和最后一个序列。然后,解码需要至少一个附加轮次,以读取和解码其他序列。然而,在这种情况下,在与第一序列相同的第一读取方向上布置第二序列,以及在与最后一个序列相同的相反的第二读取方向上布置倒数第二个序列。对应地,如果组合序列包括三个符号序列,优选地在第一读取方向上布置前三个,而在相反的第二读取方向上布置后三个。在这种情况下,需要三个解码轮次来解码组合序列中的所有序列。
在备选实施例中,提供至少一个指针来作为附加信息,以便于在第一轮次期间读取和解码组合序列中的也在中间的序列。图6中更详细地示出了该实施例。该方法因而从图1中的步骤S2继续。下一步骤S30确定对组合序列中的中间序列的最高有效符号进行定义的至少一个指针。步骤S30确定一个或更多个这种指针,其中,各个指针从而定义了相应中间序列的最高有效符号。步骤S30中确定的指针的实际数目取决于参数N,即组合序列中序列的总数。如果N是奇数,步骤S30优选地包括确定个指针,即对于N=3是一个指针,对于N=5是两个指针,等等。因此,如果N是偶数,步骤S30优选地包括确定个指针,即对于N=4是一个指针,对于N=6是两个指针,等等。然后,个指针的指针号k定义了组合序列中序列号为2k的序列的最高有效符号位置。这意味着第一指针标识组合序列中的序列号为2的序列的最高有效符号以及因此的开始位置,第二指针标识序列号为4的序列的最高有效符号,等等。参数k是整数,并且如果N是奇数,以及如果N是偶数,
图7A至7D示出了组合序列70,其中,N=3-6。在图7A中,组合序列70包括三个符号序列10、20、30。在第一读取方向上可读取第一序列10的符号,而在相反的第二读取方向上可读取第二序列20和最后一个序列30的符号。指针11是针对组合序列70确定的,并定义了第二序列20的最高有效符号位置。
图7B示出了在组合序列70中具有4个序列10、20、30、40的情况。第一序列10和第三序列30具有第一读取方向上的符号,而在相反的第二读取方向上可读取第二序列20和最后一个序列40中的符号。指针11使得可以标识第二序列20的最高有效符号位置。指针11还使得可以标识第三序列30的最高有效符号位置。从而,因为在相反方向上可读取第二序列20和第三序列30,在本实施例中,第三序列30的最高有效符号占据了组合序列70中在第二序列20的最高有效符号之后的下一个符号位置。这意味着如果指针指向组合序列70中的符号位置S1(根据第一读取方向),第三序列30的最高有效符号将占据符号位置S1+1。因此,在本示例中,指针11使得可以标识第二序列20和第三序列30二者的开始。备选地,指针11指向组合序列70中与第三序列30的最高有效符号相对应的符号位置S1。从而,第二序列20的开始位置将是组合序列70中根据读取方向的前一符号位置S1-1。
与图7B相比,图7C具有一个附加序列50。在第一读取方向上可读取第一序列10和第三序列30的符号,而在相反的第二方向上可读取第二序列20、第四序列40和最后一个序列50的符号。与图7B的示例相类似地,第一指针11定义了第二序列20和第三序列30的开始。还针对图7C中的组合序列70确定第二指针13。第二指针13定义第四序列40的最高有效符号。
在图7D中,由第一序列10、第三序列30和第五序列50来使用第一读取方向。在相反的第二读取方向上可读取剩余序列(即,第二序列20、第四序列40和第六序列60)中的符号。如上所述,第一指针11定义了第二序列20和第三序列30的开始。第二指针13不仅使得可以识别第四序列40的开始,还可以识别第五序列50的开始。在这种情况下,优选地,第二指针13定义了第四序列40在组合序列70中的最高有效符号位置S2。在这种情况下,优选地,第五序列50的最高有效符号和开始是组合序列70中根据第一读取方向的下一个符号位置s2+1。
图7A-7D中对针对于组合序列70的一个或更多个指针11、13的确定以及在不同读取方向上对符号的具体组织允许组合序列70的所有序列10、20、30、40、50、60被并行地读取并且可解码。由此将最小化解码侧的等待时间,因为可以用并行解码器来使用单个解码轮次解码完整的组合序列70。
图7A-7D还示出了可变长度编码的结果,即,不是所有的序列10、20、30、40、50、60在符号数方面都有必要具有相同的大小。
在图7A和7C中可以最好地看出,如果使用了指针11、13,组合序列70的最后一个序列30、50应当不是必须组织在相反的第二读取方向上。在这种情况下,图7A中的指针11和图7C中的指针13可以通过指向在最后一个序列30、50的最高有效符号的符号位置之前的符号位置来定义最后一个序列30、50的开始位置。
然而,通常优选总是具有根据相反的第二方向的最后一个序列,因为解码侧可以因此被预配置为总是通过在相反的第二方向上进行读取来获取最后一个序列,而不仅针对于具有偶数N的组合序列。此外,使最后一个序列在相反的第二方向上意味着即使不使用指针,也可以从组合序列读取至少两个符号序列。
在步骤S30的实施例中,指针被确定为具有与组合序列中的序列号为2k的序列的最高有效符号的符号位置相对应的值。例如,如果组合序列的长度最大是3072比特,指针可以是12比特数。然而,可以通过使用指针并不独立这一事实来减小指针的大小。从而,第二指针以及其他指针的符号位置不能小于第一指针和之前指针的比特位置。在备选实施例中,指针不是必须等于组合序列中的绝对位置,而是可以等于相对于先前指针的符号位置。
在这种情况下,在步骤S30中将第一指针确定为等于第二序列的最高有效符号的符号位置。步骤S30还涉及:在组合序列中,将指针号j+1确定为等于组合序列中序列号为2j+2的序列的最高有效符号的符号位置与序列号为2j的序列的最高有效符号的符号位置之间的差。参见图7C和7D,这意味着第二指针13将等于组合序列70中的第四和第二序列20、40的最高有效符号的符号位置之差。参数j是整数,并且如果N是奇数,其中,以及如果N是偶数,其中,
在本实施例中,与独立确定各个指针相比,第二指针和其他指针的长度在比特或符号数方面可以减小。
然后,在步骤S31中,将步骤S30中确定的至少一个指针存储在存储器中。有利地,该存储器是图形处理单元中的片上存储器,并且优选地,是与在其中存储组合序列的存储器相同的存储器。如果存储器可以包含一个以上的组合序列,可以通过识别该指针属于哪个组合序列的方式来执行步骤S31中的将指针存储在存储器中。
在备选的或者附加的实施例中,可以通过将指针限制为受限为指向特定的符号位置来进一步减小指针的大小。例如,通过强制组合序列的指针仅指向组合序列中的偶数符号位置或者仅指向奇数符号位置,可以减小指针的长度。这可以通过使用所谓的填充符号来实现,填充符号被添加到组合序列,以移动至少一个序列的开始位置。甚至还可以将这扩展为:将指针限制为仅能够指向可被4、8或其他一些固定的数除尽的符号位置和地址。
图8是示出该概念的流程图。该方法从图1中的步骤S2继续。下一步骤S40向组合序列添加至少一个填充符号。优选地,步骤S40涉及在组合序列中的序列号为2k-1的序列的最低有效符号与序列号为2k的序列的最低有效符号之间添加至少一个填充符号。由此,该至少一个填充符号强制序列号为2k的序列的最高有效符号的符号位置在组合序列中的偶数符号位置或奇数符号位置处,除非已经在偶数或奇数符号位置处。因此,如果指针被确定为仅在偶数(奇数)符号位置处开始,则调查组合序列中的序列号为2k的序列中的最高有效符号的符号位置,即第二、第四、等等。如果符号位置是偶数(或奇数),不添加填充符号。然而相反,如果符号位置将是奇数(偶数),则在组合序列中的当前序列号为2k的序列的最低有效符号与之前的序列号为2k-1的序列的最低有效符号之间添加至少一个填充符号。由此,填充符号将针对于最高有效符号来移动符号位置,并由此将指针的位置移动到偶数(奇数)符号位置。
图9示意性地示出了该概念。在图9中,已经在第一序列10和第二序列20的最低有效符号之间添加了填充符号21,以由此移动第二序列20的开始、因而是第一指针11的符号位置到所期望的符号位置。相应地,已经在第三序列30和第四序列40的最低有效符号之间添加了填充符号23,以由此移动第四序列40的开始位置以及第二指针13的符号位置。
不是仅必须使用填充符号以移动组合序列中指针的位置。还可以向组合序列添加填充符号,以得到组合序列的包括填充符号在内的、与有效突发传递的所需符号长度相匹配的总大小。例如,如果从突发传递的角度看,组合序列的最优长度是512个符号,如果对于编码块的组合符号,对块的可变长度编码导致短的长度,则可以向组合序列添加填充符号以达到该目标长度。从而可以将这些填充符号全部添加到连续的序列中,例如,在组合序列中的最后一个序列和倒数第二个序列之间。备选地,填充符号可以分布在组合序列中的连续序列之间的多个位置处。从而可以通过以下这种方式来插入额外的填充符号:任何指针的符号位置都在可以通过有效的方式容易地表示的位置上。例如,可以添加填充符号,以将指针位置移动靠近预先定义的符号位置。下面示出了该概念。
在以上序列中,A表示符号位置0,B表示符号位置8,C表示符号位置16,D表示符号位置32,以及E是符号位置63。数字表示了第一序列、第三序列、第五序列和第七序列的符号,以及字母表示第二序列、第四序列、第六序列和第八序列的符号。x表示填充符号,以及^指示指针的符号位置。
在该示意性的示例中,已经添加了填充符号,以强制指针指向奇数符号位置。此外,已经在第七序列和第八序列之间添加了填充符号,以达到最优的长度,在本示例中,最优长度是64个符号。然而,如果不同地分布额外的填充符号,可以将指针移动到更靠近符号位置B、C和D:
在该情况下,已经在序列之间添加了填充符号,使得指针靠近符号位置B、C、D,即,8、16和32。从而可以更有效地相对于这些以及其他一些已定义的符号位置来定义指针。因此,在本示例中,各个指针从而表示第二、第四或第六序列的最高有效符号与所定义的符号位置8、16或32之间的符号长度之差。作为需要6个比特来表示指针的替代,通过替代地表示位置差,该方案可以在填充符号的帮助下将指针减低到短于6个比特。
再次参考图3,步骤S10涉及通过数据总线从图形单元中的存储器向显示单元中的缓冲存储器发送组合序列。在本实施例中,步骤S10还涉及通过数据总线从图形单元中的存储器向显示单元中或连接到显示单元的存储器发送针对组合序列确定的指针。该存储器可以是缓冲存储器或另一存储器。
在备选实施例中,与复用或交织技术相类似地进行对至少两个序列的符号的共同组织。本实施例组织符号,以使得在第一读取方向上可读取第一序列和第二序列中的一个序列的所有符号,而在第一读取方向上可读取第一序列和第二序列中的另一序列的符号的第一部分,在相反的第二读取方向上可读取符号的剩余的第二部分。从而,具有可在两个读取方向上读取的符号的序列比另一序列包括更多的符号。
例如,假设第二符号序列比第一序列包括更多的符号。然后,对符号的共同组织包括将第一序列和第二序列中的符号共同组织为符号的组合序列,以使得第一序列的符号占据组合序列的第一部分中的每个奇数或每个偶数符号位置。然后,第二序列的符号的第一部分占据组合序列的第一部分中的每个偶数或每个奇数符号位置,以及还占据组合序列的剩余的第二部分中的每个偶数或每个奇数符号位置。在第一读取方向上可读取第一序列的符号和第二序列中符号的第一部分。第二序列中的剩余的第二部分的符号占据组合序列的剩余的第二部分中的每个奇数或每个偶数符号位置,并可在相反的第二读取方向上读取。
图10可视地示出了该概念。在图中,第一序列10的符号是白色的,而以斜线标记第二序列20的符号。该图还示出了各个符号的相应读取方向。在所示出的示例中,第一序列10的符号占据组合序列70的第一部分7B中的偶数符号位置(0,2,4,...)。第二序列20的最高有效符号占据该第一部分7B中的奇数符号位置(1,3,5,...)。第二序列20还占据组合序列70的剩余的第二部分8B中的奇数符号位置。所有这些符号(即,第一序列10的所有符号,以及在组合序列70的奇数符号位置处的第二序列20的符号)可在第一读取方向上读取。一旦到达组合序列70的尾端,第二序列20的剩余符号占据组合序列70的剩余的第二部分8B中的偶数位置。然后,通过以下方式来读取第二序列20:首先在第一读取方向上读取占据组合序列70中的奇数符号位置的符号,以及然后通过在相反的第二读取方向上读取组合序列70的剩余的第二部分8B中的偶数符号位置来继续。
例如,假设由012345来表示第一序列,以及第二序列是abcdefghij,则所产生的组合序列将看起来像是:0a1b2c3d4e5fjgih。然后,通过以下方式获得第一序列:在第一读取方向上偶数符号位置,直到到达第一序列的尾端,即,读取组合序列中的符号位置0、2、4、6、8。通过以下方式获得第二序列:首先在第一读取方向上读取奇数符号位置,直到组合序列的尾端,即,读取符号位置1、3、5、7、9、11、13、15。第二序列的这些第一符号从而是abcdefgh。在相反的第二读取方向上从偶数符号位置读取第二序列的剩余符号,直到到达第二序列的尾端,即,读取符号位置14、12,给出最后两个符号ij。
同样在该实施例,可以并行地读取和解码两个序列。
可以通过在相反的读取方向上布置序列来组合本实施例。在这种情况下,图10中示出的组合序列基本上与镜像交织的序列互补。然后,组合序列将包括至少四个序列。将前两个序列交织,并且在第一读取方向上单独读取其中之一。根据第一读取方向来部分地读取另一序列,而根据相反的第二读取方向来读取剩余符号。也将剩余的两个序列交织,并且在相反的第二读取方向上单独读取其中之一。在相反的第二读取方向上部分地读取另一序列,而根据第一读取方向来读取剩余符号。
这种组合序列的示例可以是0a1b2c3d4e5fjgihqrpso9n8m71k6。从而与上面相同,第一序列是012345,以及第二序列是abcdefghij。第三序列是6789以及第四序列是klmnopqrs。
解码
图11是示出解码像素图块的方法的流程图。方法开始于步骤S50,其中,从缓冲存储器获取组合序列。如之前已经描述的,组合序列至少包括第一符号序列(作为第一块中的像素的像素值的可变长度编码表示)和第二符号序列(作为第二块中的像素的像素值的可变长度编码表示)。第一块和第二块构成图块的不同子集。
下一步骤S51通过从组合序列中的第一已定义符号位置开始,在第一读取方向上读取所获取的组合序列的一部分,来识别第一序列。步骤S51还涉及通过从组合序列中的第二已定义符号位置开始,在相反的第二读取方向上读取所获取的组合序列的一部分,来识别第二序列。
以下的步骤S52和S53解码所识别的第一序列和第二序列,以得到第一块和第二块中的像素的像素值的解码表示。在步骤S52、S53中进行的解码基本上与之前讨论的可变长度编码相反,并且本文中提及的与可变长度编码方案有关的参考文献还公开了根据实施例可以使用的不同的对应解码方案。
优选地,进行步骤S51,以使得可以从组合序列并行地识别和读取第一序列和第二序列。此外,优选地,与解码第一序列的解码步骤S52至少部分并行地进行解码第二序列的解码步骤S53。在这种情况下,可以减少识别相应的序列并对其解码的总时间,由此使解码等待时间最小化。
图12是示出图11中的识别步骤的实施例的流程图。该实施例特别适于图5中示出的组合序列。该方法从图11中的步骤S50继续。下一步骤S60通过从组合序列70的最高有效符号位置开始,在第一读取方向上读取组合序列70的第一部分70A,来识别第一序列10。通过从所定义的开始符号位置开始逐序列的符号位置地读取来进行可变长度编码,可以识别伺时到达序列的尾端。这是实施例所使用的可变长度编码方案的固有特性。步骤S60因此涉及:在第一读取方向上从最高有效符号位置向最低有效符号读取符号,并且只要到达第一序列10的尾端便停止。
步骤S61相应地涉及通过以下方式来识别第二序列20:从后续的第二部分8A的最低有效符号并通常是组合序列70的最低有效符号开始,在相反的第二读取方向上读取组合序列70的后续的第二部分8A。
优选地,通过从组合序列70的任一端开始,在两个读取方向上读取组合序列70,至少部分地并行执行两个步骤S60和S61。然后,方法继续到步骤S52和S53,在步骤S52和S53中,对识别出的序列解码。
如果组合序列包括N个如前在本文中所述地组合的序列,优选地,图11的识别步骤涉及:通过从组合序列中的最高有效符号位置开始,在第一读取方向上读取组合序列来识别N个序列中的第一序列。识别步骤还包括:通过从组合序列的最低有效符号位置开始,在相反的第二读取方向上读取组合序列来识别N个序列中的最后一个序列。然后,通过针对剩余序列中每个偶数编号的序列,在相应的已定义符号位置处开始在相反的第二读取方向上读取组合序列来识别组合序列中的剩余序列。通过在相应的已定义符号位置开始,在第一读取方向上读取组合序列来识别剩余序列中相应的奇数编号的序列。
从而,在该情况下,在通过从所述组合序列的最低有效符号开始的相反的第二读取位置中读取组合序列的一部分来识别N个序列中的序列号为N的序列。通过从相应的已定义符号位置起在第一读取方向上读取组合序列的相应部分来识别N个序列中的序列号为2m+1的序列。参数m是整数,并且识别还涉及:通过从相应的已定义符号位置起在相反的第二读取方向上读取组合序列的相应部分来识别N个序列中的序列号为2n的序列。参数n是整数,并且
在第一轮次中对第一序列和最后一个序列的识别之后,可以获得组合序列中的中间或剩余序列的相应已定义符号位置。从而,第一读取方向上在第一序列的尾端之后的下一个符号位置或者相反的第二读取方向上在最后一个序列的尾端之后的下一个序号位置可以是组合序列中另一序列的已定义符号位置和开始符号。在备选方案中,使用至少一个指针来发现已定义符号位置。
图13是示出使用指针来对组合序列中的序列的已定义符号位置进行识别的方案的流程图。该方法从图11中的步骤S50继续。在一个实施例中,省略步骤S70,因此方法直接继续到步骤S71。步骤S71基于与组合序列相关联的指针来识别序列的已定义符号位置。在具体的实施例中,步骤S71包括:如果N是奇数,基于个指针中的指针,或者如果N是偶数,基于个指针中的指针,识别与序列号为2k(以及可选地,2k+1)的序列的最高有效符号相对应的已定义符号位置。优选地,该指针从而定义了N个序列中的序列号为2k的序列的最高有效符号的符号位置。优选地,然后,第一读取方向上的下一个符号位置是下一个序列(即,序列号为2k+1)的最高有效符号。从而,每个指针使得可以识别一个或两个序列的开始位置。例如,在图7C中,第一指针11使得可以识别第二序列20和第三序列30二者的开始位置。然而,第二指针13仅使得可以识别第四序列40的开始位置,因为在本实施例中,第五序列50的开始位置与组合序列70的最低有效符号相一致。如果组合序列中的N个序列在读取方向上是交替的,则每个指针将定义两个序列(即,序列号为2k和2k+1)的相应的已定义符号位置。参数k是整数,并且如果N是奇数,以及如果N是偶数,
如果根据图7A-7D中示出的技术来对序列进行共同组织,如果N是奇数,则除最后一个指针之外的每个指针使得可以识别组合序列中的两个序列的已定义符号位置。因此,除了当2k+1=N的时候,对于参数k的所有允许的值,这都会发生,在2k+1=N的情况下,指针仅识别单个序列的开始位置。
在步骤S71中使用来识别已定义符号位置的指针可以直接定义相应的已定义符号位置。在备选方案中,在图13的步骤S70中,首先计算指针。在这种情况下,通过计算当前指针与组合序列的所有之前指针的总和,有利地获得序列的已定义符号位置。优选地,这适用于除第一指针之外的所有指针,第一指针直接定义组合序列中其相关联序列的开始位置。
在一个具体的实施例中,步骤S70因此包括:基于指针号j+1和指针号j之和来计算序列号为2j+2(以及可选地2j+3)的序列的已定义符号位置。参数j是整数,并且如果N是奇数,以及如果N是偶数,在该情况下,N≥5,因为对于参数N的较小值,仅需要单个指针。
在备选实施例中,如图10中所示地组织组合序列70。在这种情况下,图11中的识别步骤包括:通过在第一读取方向上读取组合序列70的第一位置7B中的每个奇数和偶数符号位置之一,识别第一序列10。通过在第一读取方向上读取组合序列70(即,第一部分7B和剩余的第二部分8B二者)中的每个奇数或偶数符号位置中的另一类,识别第二序列20。此外,一旦到达组合序列70的尾端,通过在相反的第二读取方向上读取组合序列的剩余的第二部分中的每个奇数和偶数符号位置之一继续读取。
还可以使用具有交织序列的组合序列,交织序列是被提供来根据两个读取方向进行读取的。从而,从第一读取方向读取第一序列和第二序列,其中,第二序列的最后的符号是从相反的第二读取方向上读取的。相反,第三和第四序列是从相反的第二读取方向上读取的,其中,如之前所述,第四序列的最后的符号是从第一读取方向上读取的。
实现方面
图14是根据实施例的图形系统的概述。图形系统包括三个主要单元或实体:经由数据总线380、385而互连的图形处理单元300(图中表示为GPU)、缓冲存储器430以及显示设备400。可以在任何数据处理单元或终端中实现图形系统。非限定性示例包括计算机(包括膝上型计算机)、游戏控制台、移动电话和其它移动处理单元(例如个人数字助理、iPad和其它平板计算机)。
图形处理单元300包括片上存储器340,被配置为存储图块1(当图块1被可变长度编码器310编码时)。从片上存储器340通过数据总线380向缓冲存储器430传递所产生的对应组合序列。缓冲存储器430从而包括以编码和压缩形式提供的像素值缓冲区9。当在显示设备400的显示器470上或连接到显示设备400的显示器470上显示数据时,从缓冲存储器430读取与压缩像素值缓冲区9的至少一部分对应的编码数据,并且将其通过数据总线385提供给并行解码器440的集合。解码器440然后对所取得的编码数据进行解码,以取得可以在显示器470上显示的像素值。
在替选实现实施例中,采用单个数据总线来将数据从GPU 300传送到缓冲存储器430并且从缓冲存储器430传送到显示设备400。还可能的是,将缓冲存储器430布置为显示设备400的一部分。
在具体的实施例中,GPU 300对段中的所有块进行可变长度编码并进行压缩。表示块所需的所有符号的总和(通常是比特)(可选地,包括所有指针比特和所有填充比特)定义了段的总大小。例如,假设段中有8个4×4的块。从而,在RGB 888颜色缓冲的情况下,未压缩的段将具有4×4×8×3=3072比特的大小。如果压缩可以将大小减少到66%、33%或1/6,对应的总大小将是2048比特、1024比特或512比特。可以使用两个大小比特00bin至11bin来对此进行信号通知。在图块1的编码期间,将段的这些大小比特存储在片上存储器340中的GPU300中。一旦已经对整个图块1编码,通过数据总线380将其从GPU 300向缓冲存储器430发送。还向另一存储器区域(例如,大小存储器)传递大小比特,该另一存储器区域优选地在显示设备400(优选地)中或在缓冲存储器430的另一部分中。然后,优选地,将大小比特彼此相继地存储在大小存储器中,其中,以第一图块1中的所有块开始,然后是针对第二图块的所有大小比特,等等。
当显示设备400要从缓冲存储器430读取数据时,其首先读取相关的大小比特,以确定从缓冲存储器430中有多少应该是突发形式的数据。例如,大小比特可以表示针对当前的段,突然出现2048个比特。不是所有这些2048个比特都应当有必要被使用并由显示设备400中的解码器440解码。
GPU 300应当不是必须在编码图块之后向大小存储器传递所有的大小比特。在片上存储器340中存储多个大小比特,直到这些所存储的大小比特的总大小很好地适合所期望的突发大小,以用于有效地在数据总线380、385上传递,这可以是可能的。
代之,可以向显示设备400中的解码器440直接发送大小比特。然后,解码器440包括或连接到片上存储器,该片上存储器足够大,以存储要在显示器470上显示的所有图块的所有大小比特。
编码器
图15是根据实施例的用于编码图块的设备100的示意性方框图。设备100包括可变长度编码器110,可变长度编码器110被配置为至少对第一像素块和第二像素块进行可变长度编码,以形成第一符号序列和第二符号序列。设备100可以包括对至少第一块和第二块的像素值进行串行操作的单个可变长度编码器110。备选地,设备100可以包括可以对来自图块中的不同块的像素数据进行并行操作的多个可变长度编码器110的组。
在设备100中实现符号组织器120,并且符号组织器120被配置为将来自可变长度编码器110的第一序列和第二序列的符号共同组织为组合符号序列。然后,符号组织器120被配置为对符号进行共同组织,以使得在第一读取方向上可读取第一序列的符号,而在相反的第二读取方向上可读取第二序列中的至少一部分符号。通过被配置为将数据写到存储器140并从存储器140读取数据的存储器控制器130来将符号组织器120产生的组合序列存储到设备100的存储器140中。
设备100优选地包括输出单元150,在图中示出为通常的输入和输出(I/O)单元150。从而,输出单元150被配置为通过图14中示出的数据总线从存储器140并向缓冲存储器发送或传递组合序列。优选地,I/O单元150包括将I/O单元150与数据总线互连的一个或更多个I/O端口。
在具体实施例中,符号组织器120被配置为在组合序列的第一部分中,在第一读取方向上组织第一序列的符号。符号组织器120还在组合序列的后续的第二部分中,在相反的第二读取方向上组织第二序列的符号。
在一个实施例中,可变长度编码器110编码两个以上的像素块,即,对图块的N个块进行可变长度编码,以形成N个符号序列,作为N个块的像素值的编码表示,其中,N是大于等于3的整数。优选地,在本实施例中,符号组织器120被配置为:将N个序列的符号共同组织为组合序列,以使得可以在相反的第二读取方向上读取序列号为N的序列的符号(即,最后一个序列)。符号组织器120还将N个序列中的序列号为2m+1的序列的符号组织为可在第一读取方向上读取,以及将N个序列中的序列号为2n的序列的符号组织为可在所述相反的第二读取方向上读取。参数m、n如之前所定义。此外,符号组织器120优选地按照升序来组织序列。从而,符号组织器120在组合序列中提供N个序列,以使得在组合序列中,序列号i在序列号i+1之前,其中,i=1,2,..,N-1。
在可选实施例中,设备100包括指针生成器160,指针生成器160被配置为确定使得可以识别组合序列中的至少一个序列的开始位置的至少一个指针。优选地,指针生成器160被配置为:如果N是奇数,则确定个指针,以及如果N是偶数,则确定个指针。指针生成器160从而确定了至少一个指针,以使得指针号k定义了组合序列中序列号为2k的序列的最高有效符号的符号位置。参数k如之前所定义。然后,存储器控制器130优选地将所确定的指针与组合序列一起存储在存储器140中。此外,除了通过数据总线向缓冲存储器发送组合序列之外,输出单元150还通过数据总线从存储器140向例如显示单元中的存储器发送指针。
在一个实施例中,指针生成器160确定用于对组合序列中与相应序列号为2k的序列的最高有效符号相对应的相应符号位置进行表示的指针。在备选实施例中,指针生成器160确定至少一个指针等于相应序列中的一个序列与组合序列中之前的相应序列的最高有效符号的符号位置之差。优选地,指针生成器160还被配置为:在组合序列中,将指针号j+1确定为等于序列号为2j+2的序列的最高有效符号的符号位置与序列号为2j的序列的最高有效符号的符号位置之间的差。参数j如之前所定义。
可以在设备100中实现可选的填充提供器170,以向组合序列添加至少一个填充符号。填充提供器170从而可被配置为在序列号为2k-1的序列的最低有效符号与序列号为2k的序列的最低有效符号之间添加至少一个填充符号,以将序列号为2k的序列的最高有效符号强制到组合序列中已定义的符号位置处,除非其已经在已定义的符号位置处。从而,填充提供器170由此可以使用填充符号来移动序列号为2k的序列的最高有效符号,并由此将与该最高有效符号相关联的指针移动到已定义的符号位置,该已定义的符号位置易于由指针通过有效方式来表示,即,需要更少的符号或比特来用于该指针。在具体实施例中,填充提供器170添加填充符号,以强制指针所定义的所有符号位置在偶数符号位置处,或在奇数符号位置处。
此外,或备选地,填充提供器170可以向组合序列添加至少一个填充符号,以在符号数目方面达到组合序列的目标长度。从而,所产生的目标长度可以适于通过数据总线的有效突发传递。
设备100不是必须将序列相继地组织到组合序列中。在备选方案中,符号组织器120被配置为至少将第一序列和第二序列的符号组织为组合序列,以使得例如第一序列的符号占据组合序列的第一部分中的每个奇数(或偶数)符号位置。此外,符号组织器120将第二序列中的第一符号部分组织为占据组合序列(即,组合序列的第一部分和剩余的第二部分二者)中的每个偶数(或奇数)符号位置。从而在第一读取方向或缺省读取方向上可读取第一序列的符号和第二序列中的符号的第一部分。代之,符号组织器120组织第二序列中的剩余符号部分,以占据组合序列的剩余的第二部分中的奇数(或偶数)符号位置。在相反的第二读取方向上可读取第二序列中的该剩余的第二符号部分。可以将该概念扩展到如前所述具有四个或更多序列的情况。
设备100的单元或电路110-130、140-170可以作为硬件或硬件与软件的组合来实现或提供。在基于软件的实现的情况下,实现设备100或其部分的计算机程序产品包括在通用或专用计算机、处理器、或微处理器上运行的软件或计算机程序。软件包括图15所示的计算机程序代码要素或软件代码部分。程序可以全部或部分存储在一个或多个合适的易失性计算机可读介质或数据存储装置(例如RAM)或一个或多个非易失性计算机可读介质或数据存储装置(例如磁盘、CD-ROM、DVD盘、硬盘、ROM或闪存)上或其中。数据存储装置可以是本地数据存储装置或是远程提供的(例如在数据服务器中)。
设备100的单元110-170优选地实现在如图14所示的图形处理单元中,并且可以出现在图形芯片上。在此情况下,有利地以硬件来实现单元110-170。
解码器
图16是用于解码像素图块的设备200的示意性框图。设备200通过数据总线连接到(或包括)缓冲存储器,缓冲存储器被配置为存储编码形式的图块,其中,图块构成缓冲存储器中存储的至少一部分像素值缓冲区。
设备200的序列获取器210被配置为通过数据总线从缓冲存储器获取符号的组合序列,可选地,依靠在图中表示为通用的I/O单元270的输入单元270来获取。优选地,I/O单元270包括将I/O单元270与数据总线互连的一个或更多个I/O端口。通常将读取到的组合序列输入到设备200的存储器230中。组合序列至少包括第一符号序列和第二符号序列,第一符号序列和第二符号序列分别是第一像素块和第二像素块的可变长度编码表示。这些第一块和第二块构成图块的不同子集或不同部分。
在可选方案中,序列获取器210首先从存储器230或一些其他的大小存储器读取大小比特或指示,以确定组合序列的最大大小以及应该从缓冲存储器读取多少符号。
在设备200中实现序列识别器220,以通过以下方式识别第一序列:从组合序列中的第一已定义符号位置开始,在第一读取方向上读取由序列获取器210获取的组合序列。序列识别器220还通过以下方式识别第二序列:从组合序列中的第二定义符号位置开始,在相反的第二读取方向上至少读取所获取的组合序列的一部分。
设备200还包括至少两个解码器240、250的组,解码器240、250被配置为处理和解码由序列识别器220识别的相应符号序列。通过具有多个解码器240、250,设备200可以并行地解码多个序列,由此加速总的解码时间并降低解码等待时间。
第一解码器240从而被配置为解码序列识别器220识别出的第一序列,以得到第一块中的像素的像素值的解码表示。第二解码器250被对应地布置为解码识别出的第二序列,以得到第二块中的像素的像素值的解码表示。优选地,第一解码器240和第二解码器250被配置为至少部分地并行操作,以使得第一解码器240解码识别出第一序列与第二解码器250解码第二序列至少部分并行。
在一个实施例中,序列识别器220被配置为通过以下方式识别第一序列:从组合序列的最高有效符号开始,在第一读取方向上读取组合序列的第一部分。序列识别器220优选地还与第一序列的识别并行地从组合序列识别第二序列。第二序列是通过以下方式识别的:从后续的第二部分的最低有效符号位置(以及通常是组合序列的最低有效符号位置)开始,在相反的第二方向上读取组合序列的后续的第二部分。
如果组合序列包括两个以上的序列,即,N个序列,其中,N是大于等于3的整数,序列识别器220优选地通过以下方式识别最后一个序列(即在N个序列中序列号为N):从组合序列的最低有效符号开始,在相反的第二读取位置上读取组合序列的部分。序列识别器220还通过从相应的已定义符号位置在第一读取方向上读取组合序列的相应部分来识别N个序列中的序列号为2m+1的序列。序列识别器220通过从相应的已定义符号位置在相反的第二读取方向上读取组合序列的相应部分来识别剩余序列,即N个序列中的序列号为2n的序列。参数m、n如之前所定义。设备200从而优选包括N个解码器240、250。这些解码器240、250中的每一个被配置为解码序列识别器识别出的相应序列,以得到相应块中像素的像素值的解码表示,该相应块来自图块中的N个块。备选地,设备200包括第一解码器240和第二解码器250,第一解码器240和第二解码器250在第一解码轮次中解码组合序列中的序列号为1和序列号为N的序列,在第二轮次中解码序列号为2和序列号为N-1的序列,等等。
在具体的实施例中,序列识别器220被配置为:至少基于与组合序列相关联并存储在缓冲存储器或连接到设备200的另一存储器230中的指针,识别针对于组合序列中的至少一个序列的已定义的符号位置,即,开始位置。在这种情况下,序列识别器230被配置为基于指针来识别序列号为2k(以及可选地,2k+1)的序列的已定义符号位置,如果N是奇数,则该指针来自于个指针,如果N是偶数,则该指针来自寸个指针。参数k如之前所定义的。
可以直接使用与组合序列相关联的指针,该指针是由序列识别器220从存储器230获取的。在备选实施例中,首先,需要由设备200的计算器260计算指针的实际值。从而,计算器260被配置为基于指针号j+1和指针号j的总和来计算序列号为2j+2(以及可选地2j+3)的序列的已定义的符号位置.参数i如之前所定义。从而,通过将给定指针的值与组合序列的第一读取方向上的之前指针的值求和,由此优选地获得了给定指针的已定义的符号位置。该方案意味着与不使用任何指针添加相比,可以降低在指针上消耗的关于符号数目的长度。
在备选实施例中,第一序列和第二序列如图10中所示地被组织为组合序列。然后,序列识别器220被配置为通过在组合序列的第一位置中读取第一读取方向上的每个奇数(或偶数)符号位置来识别第一序列。序列识别器220还通过在组合序列的第一部分以及剩余的第二部分中在第一读取方向上读取每个偶数(或奇数)符号位置来识别第二序列。这些所读取的符号对应于第二序列的第一部分。序列识别器220通过在组合序列的剩余的第二部分中在相反的第二读取方向上读取每个偶数(奇数)符号位置来获得第二序列中的符号的剩余的第二部分。
设备200的单元或电路210、220、240-260可以作为硬件或硬件与软件的组合来实现或提供。在基于软件的实现的情况下,实现设备200或其部分的计算机程序产品包括在通用或专用计算机、处理器、或微处理器上运行的软件或计算机程序。软件包括图16所示的计算机程序代码要素或软件代码部分。程序可以全部或部分存储在一个或多个合适的易失性计算机可读介质或数据存储装置(例如RAM)或一个或多个非易失性计算机可读介质或数据存储装置(例如磁盘、CD-ROM、DVD盘、硬盘、ROM或闪存)上或其中。数据存储装置可以是本地数据存储装置或是远程提供的(例如在数据服务器中)。
设备200的单元210-260优选地实现在如图14所示的显示单元中,并且可以出现在图形芯片上。在具体的实施例中,有利地通过硬件来实现210-260。
上述实施例应理解为本发明的示意性示例。本领域技术人员应理解,在不脱离本发明的范围的的情况下,可以对实施例进行各种修改、组合和改变。具体地说,在技术上可能的情况下,可以通过其它配置组合不同实施例中的的不同部分解决方案。然而,本发明的范围由所附权利要求限定。

Claims (36)

1.一种编码像素(6)的图块(1)的方法,每个像素(6)具有相应的像素值,所述方法包括:
i)对构成所述图块(1)的第一子集的像素(6)的第一块(4)进行可变长度编码(S1),以形成符号的第一序列(10),作为所述第一块(4)中所述像素(6)的像素值的编码表示,以及ii)对构成所述图块(1)的第二子集的像素(6)的第二块(5)进行可变长度编码(S1),以形成符号的第二序列(20),作为所述第二块(5)中所述像素(6)的像素值的编码表示;
将所述第一序列(10)的所述符号和所述第二序列(20)的所述符号共同组织(S2)为符号的组合序列(70),在所述组合序列(70)中,能够在第一读取方向上读取所述第一序列(10)的所述符号,以及能够在相反的第二读取方向上读取所述第二序列(20)的所述符号的至少一部分;
在第一序列的最低有效符号与第二序列的最低有效符号之间添加(S40)至少一个填充符号(21、23),以强制所述第二序列的最高有效符号的符号位置是所述组合序列(70)中的偶数或奇数符号位置,除非其已经是偶数或奇数符号位置处;以及
将所述组合序列(70)存储(S3)在存储器中。
2.根据权利要求1所述的方法,还包括:通过数据总线(380)从图形处理单元(300)中的所述存储器向缓冲存储器(430)发送(S10)所述组合序列(70)。
3.根据权利要求1或2所述的方法,其中,共同组织(S2)所述符号包括:
在所述组合序列(70)的第一部分(7A)中,在所述第一读取方向上组织(S20)所述第一序列(10)的所述符号;以及
在所述组合序列(70)的后续的第二部分(8A)中,在所述相反的第二读取方向上组织(S21)所述第二序列(20)的所述符号。
4.根据权利要求1或2所述的方法,其中:
可变长度编码(S1)包括:对构成所述图块(1)的相应子集的像素(6)的N个块(4、5)进行可变长度编码(S1),以形成符号的N个序列(10、20、30、40、50、60),作为所述N个块(4、5)中所述像素(6)的像素值的编码表示,其中,N是大于等于3的整数;以及
对所述符号进行共同组织(S2)包括:将所述N个序列(10、20、30、40、50、60)的所述符号共同组织(S2)为所述组合序列(70),在所述组合序列(70)中,能够在所述相反的第二读取方向上读取所述N个序列(10、20、30、40、50、60)中序列号为N的序列(60)的所述符号,能够在所述第一读取方向上读取所述N个序列(10、20、30、40、50、60)中序列号为2m+1的序列(10、30、50)的所述符号,其中m是整数,并且以及能够在所述相反的第二读取方向上读取所述N个序列(10、20、30、40、50、60)中序列号为2n的序列(20、40)的所述符号,其中n是整数,并且
5.根据权利要求4所述的方法,其中,对所述符号进行共同组织(S2)还包括:在所述组合序列(70)中提供所述N个序列(10、20、30、40、50、60),以使得在所述组合序列(70)中,序列号i在序列号i+1之前,其中,i=1,2,...,N-1。
6.根据权利要求4所述的方法,还包括:
如果N是奇数,则确定(S30)个指针(11、13),以及如果N是偶数,则确定(S30)个指针(11、13),其中,指针号k(11、13)定义了所述组合序列(70)中序列号为2k的序列(20、40)的最高有效符号的符号位置,其中,如果N是奇数,则k是整数并且以及如果N是偶数,则k是整数并且以及
将所述指针(11、13)存储(S31)在所述存储器中。
7.根据权利要求6所述的方法,其中,确定(S30)所述指针(11、13)包括:将指针号j+1(13)确定(S30)为等于所述组合序列(70)中序列号为2j+2的序列(40)的最高有效符号的符号位置与序列号为2j的序列(20)的最高有效符号的符号位置之间的差,其中,如果N是奇数,则j是整数,并且以及如果N是偶数,则j是整数,并且
8.根据权利要求6所述的方法,其中:在序列号为2k-1的序列(10、30)的最低有效符号与所述序列号为2k的序列(20、40)的最低有效符号之间添加(S40)至少一个填充符号(21、23),以强制所述序列号为2k的序列(20、40)的所述最高有效符号的所述符号位置是所述组合序列(70)中的偶数符号位置,除非其已经是偶数符号位置。
9.根据权利要求6所述的方法,其中:在序列号为2k-1的序列(10、30)的最低有效符号与所述序列号为2k的序列(20、40)的最低有效符号之间添加(S40)至少一个填充符号(21、23),以强制所述序列号为2k的序列(20、40)的所述最高有效符号的所述符号位置是所述组合序列(70)中的奇数符号位置,除非其已经是奇数符号位置。
10.根据权利要求6所述的方法,其中,发送(S10)所述组合序列(70)包括:
通过数据总线(380)从图形处理单元(300)中的所述存储器向缓冲存储器(430)发送(S10)所述组合序列(70);以及
通过所述数据总线(380)从所述图形处理单元(300)中的所述存储器向显示单元(400)中的存储器(230)发送(S10)所述指针(11、13)。
11.根据权利要求1或2所述的方法,其中,所述第二序列(20)比所述第一序列(10)包括更多的符号,以及对所述符号进行共同组织(S2)包括:将所述第一序列(10)的所述符号和所述第二序列(20)的所述符号共同组织为符号的所述组合序列(70),在所述组合序列(70)中,所述第一序列(10)的所述符号占据所述组合序列(70)的第一部分(7B)中的每奇数符号位置和偶数符号位置中的一个,以及所述第二序列(20)的所述符号的第一部分占据所述组合序列(70)中的每奇数符号位置和偶数符号位置中的另一个,以及所述第二序列(20)的所述符号的剩余的第二部分占据所述组合序列(70)的剩余的第二部分(8B)中的每奇数符号位置和偶数符号位置中的所述一个,其中,能够在所述第一读取方向上读取所述第一部分(7B)中的符号以及在所述剩余的第二部分(8B)中占据每奇数符号位置和偶数符号位置中的所述另一个的符号,以及能够在所述相反的第二读取方向上读取占据所述剩余的第二部分(8B)中的每奇数符号位置和偶数符号位置中的所述一个的符号。
12.一种用于编码像素(6)的图块(1)的设备(100),每个像素(6)具有相应的像素值,所述设备(100)包括:
可变长度编码器(110),被配置为:i)对构成所述图块(1)的第一子集的像素(6)的第一块(4)进行可变长度编码,以形成符号的第一序列(10),作为所述第一块(4)中所述像素(6)的像素值的编码表示,以及ii)对构成所述图块(1)的第二子集的像素(6)的第二块(5)进行可变长度编码,以形成符号的第二序列(20),作为所述第二块(5)中所述像素(6)的像素值的编码表示;
符号组织器(120),被配置为:将所述第一序列(10)的所述符号和所述第二序列(20)的所述符号共同组织为符号的组合序列(70),在所述组合序列(70)中,能够在第一读取方向上读取所述第一序列(10)的所述符号,以及能够在相反的第二读取方向上读取所述第二序列(20)的所述符号的至少一部分;
填充提供器(170),所述填充提供器(170)被配置为:在第一序列的最低有效符号与第二序列的最低有效符号之间添加(S40)至少一个填充符号(21、23),以强制所述第二序列的最高有效符号的符号位置是所述组合序列(70)中的偶数或奇数符号位置,除非其已经是偶数或奇数符号位置处;以及
存储器控制器(130),被配置为将所述组合序列(70)存储在存储器(140)中。
13.根据权利要求12所述的设备,还包括:输出单元(150),被配置为通过数据总线(380)从所述存储器(140)向缓冲存储器(430)发送所述组合序列(70)。
14.根据权利要求12或13所述的设备,其中,所述符号组织器(120)被配置为:i)在所述组合序列(70)的第一部分(7A)中,在所述第一读取方向上组织所述第一序列(10)的所述符号;以及ii)在所述组合序列(70)的后续的第二部分(8A)中,在所述相反的第二读取方向上组织所述第二序列(20)的所述符号。
15.根据权利要求12或13所述的设备,其中:
所述可变长度编码(110)被配置为:对构成所述图块(1)的相应子集的像素(6)的N个块(4、5)进行可变长度编码,以形成符号的N个序列(10、20、30、40、50、60),作为所述N个块(4、5)中的所述像素(6)的像素值的编码表示,其中,N是大于等于3的整数;以及
所述符号组织器(120)被配置为:将所述N个序列(10、20、30、40、50、60)的所述符号共同组织为所述组合序列(70),在所述组合序列(70)中,能够在所述相反的第二读取方向上读取所述N个序列(10、20、30、40、50、60)的序列号为N的序列(60)的所述符号,能够在所述第一读取方向上读取所述N个序列(10、20、30、40、50、60)的序列号为2m+1的序列(10、30、50)的所述符号,其中,m是零或整数,并且以及能够在所述相反的第二读取方向上读取所述N个序列(10、20、30、40、50、60)的序列号为2n的序列(20、40)的所述符号,其中,n是整数,并且
16.根据权利要求15所述的设备,其中,所述符号组织器(120)被配置为:在所述组合序列(70)中提供所述N个序列(10、20、30、40、50、60),以使得在所述组合序列(70)中,序列号i在序列号i+1之前,其中,i=1,2,...,N-1。
17.根据权利要求15所述的设备,还包括指针生成器(160),所述指针生成器(160)被配置为:如果N是奇数,则确定个指针(11、13),以及如果N是偶数,则确定个指针(11、13),其中,指针号k(11、13)定义了所述组合序列(70)中的序列号为2k的序列(20、40)的最高有效符号的符号位置,其中,如果N是奇数,则k是整数并且以及如果N是偶数,则k是整数并且其中,所述存储器控制器(130)被配置为将所述指针(11、13)存储在所述存储器(140)中。
18.根据权利要求17所述的设备,其中,所述指针生成器(160)被配置为:将指针号j+1(13)确定为等于在所述组合序列(70)中序列号为2j+2的序列(40)的最高有效符号的符号位置与序列号为2j的序列(20)的最高有效符号的符号位置之间的差,其中,如果N是奇数,则j是整数,并且以及如果N是偶数,则j是整数,并且
19.根据权利要求17所述的设备,其中所述填充提供器(170)被配置为:在序列号为2k-1的序列(10、30)的最低有效符号与序列号为2k的序列(20、40)的最低有效符号之间添加至少一个填充符号(21、23),以强制所述序列号为2k的序列(20、40)的所述最高有效符号的所述符号位置为所述组合序列(70)中的偶数符号位置,除非其已经是偶数符号位置。
20.根据权利要求17所述的设备,其中所述填充提供器(170)被配置为:在序列号为2k-1的序列(10、30)的最低有效符号与所述序列号为2k的序列(20、40)的最低有效符号之间添加至少一个填充符号(21、23),以强制所述序列号为2k的序列(20、40)的所述最高有效符号的所述符号位置为所述组合序列(70)中的奇数符号位置,除非其已经是奇数符号位置。
21.根据权利要求17所述的设备,其中,输出单元(150)被配置为:i)通过数据总线(380)从所述存储器(140)向缓冲存储器(430)发送所述组合序列(70),以及ii)通过所述数据总线(380)从所述存储器(140)向显示单元(400)中的存储器(230)发送(S10)所述指针(11、13)。
22.根据权利要求12或13所述的设备,其中,所述第二序列(20)比所述第一序列(10)包括更多的符号,以及所述符号组织器(120)被配置为:将所述第一序列(10)的所述符号和所述第二序列(20)的所述符号共同组织为符号的所述组合序列(70),在所述组合序列(70)中,所述第一序列(10)的所述符号占据所述组合序列(70)的第一部分(7B)中的每奇数符号位置和偶数符号位置中的一个,以及所述第二序列(20)的所述符号的第一部分占据所述组合序列(70)中的每奇数符号位置和偶数符号位置中的另一个,以及所述第二序列(20)的所述符号的剩余的第二部分占据所述组合序列(70)的剩余的第二部分(8B)中的每奇数符号位置和偶数符号位置中的所述一个,其中,能够在所述第一读取方向上读取所述第一部分(7B)中的符号以及在所述剩余的第二部分(8B)中占据每奇数符号位置和每偶数符号位置中的所述另一个的符号,以及能够在所述相反的第二读取方向上读取占据所述剩余的第二部分(8B)中的每奇数符号位置和偶数符号位置中的所述一个的符号。
23.一种解码像素(6)的图块(1)的方法,每个像素(6)具有相应的像素值,所述方法包括:
从缓冲存储器(430)获取(S50)符号的组合序列(70),所述组合序列(70)包括符号的第一序列(10)和符号的第二序列(20),所述第一序列是构成所述图块(1)的第一子集的第一块(4)中像素(6)的像素值的可变长度编码表示,所述第二序列是构成所述图块(1)的第二子集的第二块(5)中像素(6)的像素值的可变长度编码表示,其中在第一序列的最低有效符号与第二序列的最低有效符号之间添加了至少一个填充符号(21、23),以强制所述第二序列的最高有效符号的符号位置是所述组合序列(70)中的偶数或奇数符号位置,除非其已经是偶数或奇数符号位置处;
i)通过从所述组合序列(70)中的第一已定义符号位置开始,在第一读取方向上读取所述获取的组合序列(70)的一部分,来识别(S51)所述第一序列(10),以及ii)通过从所述组合序列(70)中的第二已定义符号位置开始,在相反的第二读取方向上读取所述获取的组合序列(70)的一部分,来识别(S51)所述第二序列(20);
解码(S52)所述识别的第一序列(10),以得到所述第一块(4)中所述像素(6)的所述像素值的解码表示;以及
解码(S53)所述识别的第二序列(20),以得到所述第二块(5)中所述像素(6)的所述像素值的解码表示。
24.根据权利要求23所述的方法,其中,至少部分地并行于解码(S52)所述识别的第一序列(10)来解码(S53)所述识别的第二序列(20)。
25.根据权利要求23或24所述的方法,其中,识别(S51)所述第一序列(10)和所述第二序列(20)包括:
通过从所述组合序列(70)的最高有效符号位置开始,在所述第一读取方向上读取所述组合序列(70)的第一部分(7A),来识别(S60)所述第一序列(10);以及
通过从所述组合序列(70)的后续的第二部分(8A)的最低有效符号位置开始,在所述相反的第二读取方向上读取所述后续的第二部分(8A),来识别(S61)所述第二序列(20)。
26.根据权利要求25所述的方法,其中,所述组合序列(70)包括符号的N个序列(10、20、30、40、50、60),作为构成所述图块(1)的相应子集的N个块(4、5)中的像素(6)的像素值的可变长度编码表示,其中,N是大于等于3的整数,其中在序列号为2k-1的序列(10、30)的最低有效符号与序列号为2k的序列(20、40)的最低有效符号之间添加了至少一个填充符号(21、23),以强制所述序列号为2k的序列(20、40)的所述最高有效符号的所述符号位置是所述组合序列(70)中的偶数或奇数符号位置,除非其已经是偶数或奇数符号位置;以及识别(S51)所述第一序列(10)和所述第二序列(20)包括:
通过从所述组合序列(70)的最低有效符号开始,在所述相反的第二读取位置处读取所述组合序列(70)的一部分,来识别(S51)所述N个序列(10、20、30、40、50、60)的序列号为N的序列(60);
通过从相应的已定义符号位置起,在所述第一读取方向上读取所述组合序列(70)的相应部分,来识别(S51)所述N个序列(10、20、30、40、50、60)的序列号为2m+1的序列(10、30、50),其中,m是整数,并且以及
通过从相应的已定义符号位置起,在所述相反的第二读取方向上读取所述组合序列(70)的相应部分来识别(S51)所述N个序列(10、20、30、40、50、60)的序列号为2n的序列(20、40),其中,n是整数,并且
27.根据权利要求26所述的方法,还包括:基于指针(11、13)来识别(S71)序列号为2k的序列(20、40)以及可选是序列号为2k+1的序列(30、50)的所述已定义符号位置,如果N是奇数,则所述指针(11、13)来自于个指针(11、13),以及如果N是偶数,则所述指针(11、13)来自于个指针(11、13),所述指针(11、13)与所述组合序列(70)相关联,其中,如果N是奇数,则k是整数,并且以及如果N是偶数,则k是整数,并且
28.根据权利要求27所述的方法,还包括:基于指针号j+1(13)和指针号j(11)之和,计算(S70)序列号为2j+2的序列(40)以及可选地序列号为2j+3的序列(50)的所述已定义符号位置,其中,如果N是奇数,则j是整数,并且以及如果N是偶数,则j是整数,其中,N≥5。
29.根据权利要求23或24所述的方法,其中,所述第二序列(20)比所述第一序列包括更多的符号,以及识别(S51)所述第一序列(10)和所述第二序列(20)包括:
通过在所述第一读取方向上读取所述组合序列(70)的第一部分(7B)中的每奇数符号位置和偶数符号位置中的一个,来识别(S51)所述第一序列(10);以及
通过在所述第一读取方向上读取所述组合序列(70)的每奇数符号位置和偶数符号位置中的另一个,并通过在所述相反的第二读取方向上读取所述组合序列(70)的剩余的第二部分(8B)中的所述每奇数符号位置和偶数符号位置中的所述一个,来识别(S51)所述第二序列。
30.一种用于解码像素(6)的图块(1)的设备(200),每个像素(6)具有相应的像素值,所述设备(200)包括:
序列获取器(210),被配置为:从缓冲存储器(430)获取符号的组合序列(70),所述组合序列(70)包括符号的第一序列(10)和符号的第二序列(20),所述第一序列是构成所述图块(1)的第一子集的第一块(4)中的像素(6)的像素值的可变长度编码表示,所述第二序列是构成所述图块(1)的第二子集的第二块(5)中的像素(6)的像素值的可变长度编码表示,其中在第一序列的最低有效符号与第二序列的最低有效符号之间添加了至少一个填充符号(21、23),以强制所述第二序列的最高有效符号的符号位置是所述组合序列(70)中的偶数或奇数符号位置,除非其已经是偶数或奇数符号位置处;
序列识别器(220),被配置为:i)通过从所述组合序列(70)中的第一已定义符号位置开始,在第一读取方向上读取所述获取的组合序列(70)的一部分,来识别所述第一序列(10),以及ii)通过从所述组合序列(70)中的第二已定义符号位置开始,在相反的第二读取方向上读取所述获取的组合序列(70)的一部分,来识别所述第二序列(20);
第一解码器(240),被配置为:解码所述识别的第一序列(10),以得到所述第一块(4)中所述像素(6)的所述像素值的解码表示;以及
第二解码器(250),被配置为:解码所述识别的第二序列(20),以得到所述第二块(5)中所述像素(6)的所述像素值的解码表示。
31.根据权利要求30所述的设备,其中,所述第二解码器(250)被配置为:至少部分地并行于所述第一解码器(240)解码所述识别的第一序列(10)来解码所述识别的第二序列(20)。
32.根据权利要求30或31所述的设备,其中,所述序列识别器(220)被配置为:i)通过从所述组合序列(70)的最高有效符号位置开始,在所述第一读取方向上读取所述组合序列(70)的第一部分(7A),来识别所述第一序列(10);以及通过从所述组合序列(70)的后续的第二部分(8A)的最低有效符号位置开始,在所述相反的第二读取方向上读取所述后续的第二部分(8A),来识别所述第二序列(20)。
33.根据权利要求32所述的设备,其中,所述组合序列(70)包括符号的N个序列(10、20、30、40、50、60),作为构成所述图块(1)的相应子集的N个块(4、5)中的像素(6)的像素值的可变长度编码表示,其中,N是大于等于3的整数,其中在序列号为2k-1的序列(10、30)的最低有效符号与序列号为2k的序列(20、40)的最低有效符号之间添加了至少一个填充符号(21、23),以强制所述序列号为2k的序列(20、40)的所述最高有效符号的所述符号位置是所述组合序列(70)中的偶数或奇数符号位置,除非其已经是偶数或奇数符号位置;以及所述序列识别器(220)被配置为:
i)通过从所述组合序列(70)的最低有效符号开始,在所述相反的第二读取位置中读取所述组合序列(70)的一部分,来识别所述N个序列(10、20、30、40、50、60)的序列号为N的序列(60);
ii)通过从相应的已定义符号位置起,在所述第一读取方向上读取所述组合序列(70)的相应部分来识别所述N个序列(10、20、30、40、50、60)的序列号为2m+1的序列(10、30、50),其中,m是整数,并且以及
iii)通过从相应的已定义符号位置起,在所述相反的第二读取方向上读取所述组合序列(70)的相应部分来识别所述N个序列(10、20、30、40、50、60)的序列号为2n的序列(20、40),其中,n是整数,并且其中,所述设备(200)包括N个解码器(240、250),每个解码器(240、250)被配置为解码相应的所识别的序列(10、20、30、40、50、60),以得到构成所述图块(1)的相应子集的N个块(4、5)中的相应块(4、5)中像素(6)的像素值的解码表示。
34.根据权利要求33所述的设备,其中,所述序列识别器(220)被配置为:基于指针(11、13)来识别序列号为2k的序列(20、40)以及可选地序列号为2k+1的序列(30、50)的所述已定义符号位置,如果N是奇数,则所述指针(11、13)来自于个指针(11、13),以及如果N是偶数,则所述指针(11、13)来自于个指针(11、13),所述指针(11、13)与所述组合序列(70)相关联,其中,如果N是奇数,则k是整数,并且以及如果N是偶数,则k是整数,并且
35.根据权利要求34所述的设备,还包括:计算器(260),被配置为:基于指针号j+1(13)和指针号j(11)之和,计算序列号为2j+2的序列(40)以及可选是序列号为2j+3的序列(50)的所述已定义符号位置,其中,如果N是奇数,则j是整数,并且以及如果N是偶数,则j是整数,其中,N≥5。
36.根据权利要求30或31所述的设备,其中,所述第二序列(20)比所述第一序列(10)包括更多的符号,以及所述序列识别器(220)被配置为:
i)通过在所述第一读取方向上读取所述组合序列(70)的第一部分(7B)中的每奇数符号位置和偶数符号位置中的一个,来识别所述第一序列(10);以及
ii)通过在所述第一读取方向上读取所述组合序列(70)的每奇数符号位置和偶数符号位置中的另一个,并通过在所述相反的第二读取方向上读取所述组合序列(70)的剩余的第二部分(8B)中的所述每奇数符号位置和偶数符号位置中的一个,来识别所述第二序列。
CN201080070715.4A 2010-12-14 2010-12-14 图块编码和解码 Expired - Fee Related CN103262123B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SE2010/051379 WO2012082028A1 (en) 2010-12-14 2010-12-14 Tile encoding and decoding

Publications (2)

Publication Number Publication Date
CN103262123A CN103262123A (zh) 2013-08-21
CN103262123B true CN103262123B (zh) 2016-10-19

Family

ID=46244950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080070715.4A Expired - Fee Related CN103262123B (zh) 2010-12-14 2010-12-14 图块编码和解码

Country Status (6)

Country Link
US (1) US9014497B2 (zh)
EP (1) EP2652707A4 (zh)
JP (1) JP5894605B2 (zh)
CN (1) CN103262123B (zh)
BR (1) BR112013012721A2 (zh)
WO (1) WO2012082028A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US10535178B2 (en) * 2016-12-22 2020-01-14 Advanced Micro Devices, Inc. Shader writes to compressed resources
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
CN109587490B (zh) * 2018-11-05 2022-05-31 深圳威尔视觉传媒有限公司 一种Tile分片填充方法、装置、设备、存储介质和解码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1167534A (zh) * 1995-10-26 1997-12-10 摩托罗拉公司 基于宏块的视频压缩技术中错误控制的方法和装置
US5852469A (en) * 1995-03-15 1998-12-22 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
US7433825B1 (en) * 1999-02-23 2008-10-07 Fraunhofer-Gesellschaft Zur Foerderling Der Angewandten Forschung E.V. Apparatus and method for producing a data stream and apparatus and method for reading a data stream

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2998254B2 (ja) * 1990-04-17 2000-01-11 松下電器産業株式会社 可変長符号化データの伝送方法
JPH0792654B2 (ja) 1992-10-23 1995-10-09 インターナショナル・ビジネス・マシーンズ・コーポレイション ビデオ・データ・フレーム伝送方法および装置
JPH09182073A (ja) * 1995-03-15 1997-07-11 Toshiba Corp 動画像符号化装置および復号装置
US6104754A (en) * 1995-03-15 2000-08-15 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
JPH0964753A (ja) 1995-08-29 1997-03-07 Casio Comput Co Ltd データ圧縮装置、及びデータ伸長装置
US7785098B1 (en) * 2001-06-05 2010-08-31 Mikro Systems, Inc. Systems for large area micro mechanical systems
US8249161B2 (en) 2005-09-30 2012-08-21 Stmicroelectronics International Nv Video decoder incorporating reverse variable length decoding
US8898633B2 (en) * 2006-08-24 2014-11-25 Siemens Industry, Inc. Devices, systems, and methods for configuring a programmable logic controller
US8160056B2 (en) * 2006-09-08 2012-04-17 At&T Intellectual Property Ii, Lp Systems, devices, and methods for network routing
US8374498B2 (en) * 2006-09-29 2013-02-12 Microscan Systems, Inc. Systems and/or devices for camera-based inspections
US8374383B2 (en) * 2007-03-08 2013-02-12 Microscan Systems, Inc. Systems, devices, and/or methods for managing images
US8291069B1 (en) * 2008-12-23 2012-10-16 At&T Intellectual Property I, L.P. Systems, devices, and/or methods for managing sample selection bias
JP5067361B2 (ja) 2008-12-25 2012-11-07 ソニー株式会社 エンコーダ及びデコーダ、符号方法及び復号方法、並びに記録媒体
US8502864B1 (en) * 2009-07-28 2013-08-06 Robert Watkins Systems, devices, and/or methods for viewing images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5852469A (en) * 1995-03-15 1998-12-22 Kabushiki Kaisha Toshiba Moving picture coding and/or decoding systems, and variable-length coding and/or decoding system
CN1167534A (zh) * 1995-10-26 1997-12-10 摩托罗拉公司 基于宏块的视频压缩技术中错误控制的方法和装置
US7433825B1 (en) * 1999-02-23 2008-10-07 Fraunhofer-Gesellschaft Zur Foerderling Der Angewandten Forschung E.V. Apparatus and method for producing a data stream and apparatus and method for reading a data stream

Also Published As

Publication number Publication date
JP5894605B2 (ja) 2016-03-30
EP2652707A1 (en) 2013-10-23
US20130278617A1 (en) 2013-10-24
EP2652707A4 (en) 2017-04-19
BR112013012721A2 (pt) 2016-09-06
US9014497B2 (en) 2015-04-21
CN103262123A (zh) 2013-08-21
JP2014502807A (ja) 2014-02-03
WO2012082028A1 (en) 2012-06-21

Similar Documents

Publication Publication Date Title
US9014496B2 (en) Methods of and apparatus for encoding and decoding data in data processing systems
US8625910B2 (en) Compression of image data
US9286698B2 (en) Method and device for storing a compression ratio indication in a pixel value buffer in tile encoding
US7764833B2 (en) Method and apparatus for anti-aliasing using floating point subpixel color values and compression of same
US9116790B2 (en) Methods of and apparatus for storing data in memory in data processing systems
US10235738B2 (en) Method of and apparatus for displaying an output surface in data processing systems
CN106254877B (zh) 视频处理系统、处理视频数据帧的方法、装置与存储介质
US20170352165A1 (en) Encoding and decoding arrays of data elements
CN101340587A (zh) 编码输入图像的方法以及播放已编码图像的方法及装置
WO2006006915A1 (en) Multi-mode image processing
US10824357B2 (en) Updating data stored in a memory
CN103262123B (zh) 图块编码和解码
KR102194615B1 (ko) 그래픽 애플리케이션을 위한 타일 기반 압축 및 압축 해제
DK2504814T3 (en) DECODING SYSTEM AND PROCEDURE TO USE ON CODED TEXTURE ELEMENT BLOCKS
CN110971904B (zh) 一种图像压缩的控制方法
JP2006080793A (ja) 画像符号化装置及び方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US10283094B1 (en) Run-length compression and decompression of media tiles
US11954028B2 (en) Accessing encoded blocks of data
CN113496530A (zh) 对数据阵列进行编码
US20140300628A1 (en) Tile-based compression and decompression for graphic applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161019