CN109479146B - 用于增量颜色压缩的位包装 - Google Patents

用于增量颜色压缩的位包装 Download PDF

Info

Publication number
CN109479146B
CN109479146B CN201780043310.3A CN201780043310A CN109479146B CN 109479146 B CN109479146 B CN 109479146B CN 201780043310 A CN201780043310 A CN 201780043310A CN 109479146 B CN109479146 B CN 109479146B
Authority
CN
China
Prior art keywords
bits
value
delta
group
represent
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
CN201780043310.3A
Other languages
English (en)
Other versions
CN109479146A (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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of CN109479146A publication Critical patent/CN109479146A/zh
Application granted granted Critical
Publication of CN109479146B publication Critical patent/CN109479146B/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种压缩器被配置为确定块中的多个像素的增量颜色压缩值,并且将所述块中的所述多个像素细分为多个组,并发送代表所述增量值的已压缩位流。所述已压缩位流包括:代表足以表示所述增量值的位数量范围的块标头的位;多个组标头,每个组标头都指出足以表示所述多个组中相应的一个组中的所述增量值的组最小位数量;以及使用包括所述增量值的所述组的所述组最小位数量编码的所述增量值。一种解压缩器被配置为基于所述块标头、所述多个组标头和所述已编码增量值来解压缩所述已压缩位流。

Description

用于增量颜色压缩的位包装
技术领域
本发明涉及计算机领域。
背景技术
存储器带宽管理是诸如片上系统(SOC)之类的处理系统中的一项挑战,这些处理系统在互连SOC上的指令处理器的总线上以及SOC 与诸如动态随机存取存储器(DRAM)之类的外部存储器之间的接口上产生高带宽流。例如,图形处理用于将场景的三维(3-D)模型渲染为在屏幕上显示的像素。出于以下目的,将完整图像称为帧,而帧中像素的数量由屏幕的像素分辨率确定。帧中每个像素的颜色都由特定数量的位表示,这些位表示特定颜色范围或色域上的相应数量的不同颜色。为了说明,可以使用八位值来表示特定像素表示的256种颜色中的哪一种。用于表示像素的位数量通常被称为像素的颜色深度或位深度。用于表示每个帧的位总数量与用于表示每个像素的位数量和显示器中的像素数成比例地增大。通过以例如每秒30帧(fps)的特定帧速率显示连续帧来表示场景中的移动。因此,由图形处理单元(GPU)生成的用于通过总线或接口传输的位的速率与帧速率成比例地增大。连续几代的GPU已经尝试通过以下不同的方法来改善渲染图像的质量:例如支持更高的像素分辨率、更大的颜色深度或色域,以及更高的帧速率。因此,在诸如GPU、显示器和外部存储器之类的系统中的不同元件之间通信的流量很大并且不断增大。
发明内容
本发明提供了一种用于执行增量颜色压缩和位包装的方法,其包括:确定块中多个像素的增量值,其中每个增量值都表示所述多个像素之一的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差;将所述多个像素细分为多个组,其中使用不同的最小位数量表示所述多个组中的所述增量值;生成代表所述增量值的已压缩位流,其中所述已压缩位流包括:代表指出用于表示所述多个组中的所述增量值的所述最小位数量范围的块标头的位;多个组标头,每个组标头都指出用来表示所述多个组中相应一个组中的所述增量值的组最小位数量;以及使用包括所述增量值的所述组的所述组最小位数量进行编码的所述增量值;以及发送所述已压缩位流。
本发明还提供了一种用于解压缩位流的方法,其包括:接收代表块中多个像素的增量值的已压缩位流,其中所述像素被细分为多个组,其中不同的最小位数量被用来表示所述多个组中的所述增量值,其中所述已压缩位流包括:代表指出用来表示所述多个组中的所述增量值的所述最小位数量范围的块标头的位;多个组标头,每个组标头都指出用来表示所述多个组中相应一个组中的所述增量值的组最小位数量;并且其中所述增量值已使用包括所述增量值的所述组的所述组最小位数量进行编码;以及基于所述块标头、所述多个组标头和已编码增量值对所述已压缩位流进行解压缩,以恢复所述增量值,每个所述增量值都表示所述多个像素中的一个像素的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差。
本发明还提供了一种用于执行增量颜色压缩和位包装的装置,其包括:计算单元,其被配置为生成代表块中的多个像素的位流;以及压缩器,其被配置为:确定所述多个像素的增量值,其中每个增量值都表示所述多个像素之一的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差;将所述块中的所述多个像素细分为多个组,其中使用不同的最小位数量表示所述多个组中的所述增量值;生成代表所述增量值的已压缩位流,其中所述已压缩位流包括:代表指示用来表示所述多个组中的所述增量值的所述最小位数量范围的块标头的位;多个组标头,每个组标头都指出用来表示所述多个组中相应的一个组中的所述增量值的组最小位数量,并且其中所述增量值已使用包括所述增量值的所述组的所述组最小位数量进行编码;以及发送所述已压缩位流。
另外,本本发明还提供了一种计算机处理装置,其包括:压缩器,其被配置为生成代表块中多个像素的增量值的已压缩位流,其中所述像素被细分为多个组,并且其中不同的最小位数量被用来表示所述多个组中的所述增量值;以及解压缩器,其被配置为:接收所述已压缩位流,的所述已压缩位流包括代表指出用来表示所述增量值的位数量范围的块标头的位,多个组标头,每个组标头都指出用来表示所述多个组中相应一个组中的所述增量值的组最小位数量;并且其中所述增量值已使用包括所述增量值的所述组的所述组最小位数量进行编码;以及基于所述块标头、所述多个组标头和已编码增量值对所述已压缩位流进行解压缩,以恢复所述增量值,每个所述增量值都表示所述多个像素中的一个像素的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差。
附图说明
通过参考附图,本公开可以被更好地理解,并且其许多特征和优点对于本领域技术人员变得明显。在不同的图中使用相同的附图标号来指示相似或相同的项目。
图1是根据一些实施方案的处理系统的框图。
图2是根据一些实施方案的处理系统的一部分的框图。
图3是根据一些实施方案的用于执行增量颜色压缩和位包装的方法的流程图。
图4是根据一些实施方案的可以被细分为不同组配置中的像素组的像素块的框图。
图5是根据一些实施方案的表示块中的像素的增量值的压缩位流的框图。
图6是根据一些实施方案的用于减少用于表示全正增量值或全负增量值的位数量的方法的流程图。
图7是根据一些实施方案的用于编码具有等于2的幂的最大增量值的组中的增量值的方法的流程图。
图8是根据一些实施方案的用于解码具有等于2的幂的最大增量值的组中的增量值的方法的流程图。
图9是根据一些实施方案的确定是否绕过压缩算法的特征的方法的流程图。
具体实施方式
如本文所述,通过实现增量颜色压缩以基于参考像素的颜色和表示其他像素的颜色与参考像素的颜色之间的差的增量值来表示块中像素的颜色,可以减少视频/图形图像(或其他位流)消耗的带宽。压缩器将每个块中的像素细分为组。压缩器确定表示组i中像素的增量值所需的最小位数量B_i,并且压缩器确定表示代表块的组中增量值的位数量最小值的最小位数量(M)。压缩器还确定指出最小位数量与最大位数量之间的差所需的位数量(B),所述最大位数量代表表示块的组中的增量值所需的位数量的最大值。M和B的值被包括在块标头中,所述块标头从压缩器发送到与所得压缩像素数据相关联的解压缩器。M和B的值可以被单独编码以包括在块标头中,或者M和B的值的组合可以使用表示M和B的所有可能组合的编码来编码。压缩器还生成包括B_i与M(B_i-M)之间差异的值的组标头,所述差异的值与M相结合,指出代表相应组中增量值的位数量。压缩器可以使用由相应组标头指出的位数量来压缩每个组中的像素的增量值,而解压缩器可以使用块标头和组标头中的信息来解压缩已压缩的信息。压缩器的一些实施方案将压缩算法应用于不同的组配置,并选择产生最高压缩级别的最佳组配置。压缩器在块标头中包括指出所选择的组配置的信息。
每组内的增量值可以是零、正数或负数。因此,组中的每个增量值都需要一个符号位。压缩器的一些实施方案基于组中的增量值的特性,进一步减少用于表示块中的像素的位数量。例如,如果组中的所有增量值都是正(包括零)或负(包括零),则可以丢弃代表每个增量值的符号的位。压缩器可以在组标头中包括指出所述组是全部是正的、全部是负的还是混合的位,以便解压缩器将知道如何解压缩增量值。压缩器的一些实施方案为一种配置使用一位(例如,全部是正的),而其他两种配置使用两位(例如,全部是负的,以及混合),只要所选的 1位代码和2位代码以不同的位值开始,以便解压缩器可以区分代码。另一种可能性是将所有组的符号位组合在一起,并将一个代码分配给所有符号位,而不是对不同的组使用不同的一位和两位代码。如果通过对每个增量值消除一位而节省的位数量大于为表示组的符号而添加的位数量,则产生压缩的净增益。如本文所讨论的,如果组中的像素的最大绝对增量值等于2的幂,则用于表示组中的增量值的位数量也可以减少。在一些变型中,每个块标头中都包括绕过位以启用或禁用这些特征。如果块中的所有增量值均为零,即,块中的所有像素都具有相同的颜色值,则可以丢弃绕过位。
图1是根据一些实施方案的处理系统100的框图。处理系统100 包括处理设备105,所述处理设备连接到一个或多个外部存储器,例如动态随机存取存储器(DRAM)110。处理设备105包括多个计算单元 111、112、113、114(统称为“计算单元111-114”),例如CPU或GPU。例如,处理设备105可以是片上系统(SOC),诸如在基板上形成的加速处理单元(APU)或加速处理设备(APD)。每个计算单元111-114都包括可以同时处理不同指令的多个处理器核。计算单元111-114还包括由处理器核共享的一个或多个资源,诸如高速缓存、算术逻辑单元、浮点单元、分支预测逻辑、存储器或总线接口等。
处理设备105包括数据存储单元115、120,用于存储可由计算单元111-114或处理设备105中的其他实体使用的指令或数据。数据存储单元115、120的一些实施方案用DRAM来实现。存储器控制器 (MC)125用于协调处理设备105与DRAM 110之间的通过存储器接口130的数据流。存储器控制器125包括用于控制从DRAM 110读取信息和将信息写入DRAM 110的逻辑。计算单元111-114能够使用总线135,在彼此之间、与数据存储单元115、120、与存储器控制器 125或与处理系统100中的其他实体进行通信。例如,计算单元 111-114通常包括物理层接口或总线接口,用于将信号断言到总线135 上并从总线135接收发往相应计算单元111-114的信号。处理设备105 的一些实施方案还包括一个或多个桥,例如北桥或南桥,以促进处理设备105中的实体之间的通信。
处理设备105实现在处理设备105中生成工作负载的操作系统 (OS)或一个或多个应用程序140。尽管图1中示出了OS/应用程序140 的单个实例,但是,处理设备105的一些实施方案实现操作系统或一个或多个应用程序的多个实例化。例如,在计算单元111-114上执行的虚拟机能够执行操作系统或一个或多个应用程序的单独实例。
处理设备105的一些实施方案执行图形处理以渲染由3D模型表示的场景以生成用于在屏幕145上显示的图像。例如,计算单元 111-114中的一个或多个可以经由总线135和接口130来访问代表存储在DRAM 110上的3-D模型的信息。然后,计算单元111-114使用所访问的信息来渲染场景的一部分以生成用于在屏幕145上显示的图像。计算单元111-114经由总线135将代表渲染图像的信息发送到屏幕145。信息在处理系统100中的实体之间作为位流传送。如本文所讨论的,由计算单元111-114、DRAM 110、数据存储单元115、数据存储单元120、屏幕145或处理系统100中的其他实体生成的流量可严重消耗在存储器接口130、总线135或处理系统100中的其他互连中可用的带宽,特别是对于生成代表视频或图形信息的位流的图形应用程序而言。
增量颜色压缩和位包装用于压缩代表视频或图形信息的位流,例如表示用于在屏幕145上显示的图像的像素的颜色。计算单元 111-114(或处理系统100中产生位流的其他实体)的一些实施方案实现压缩器(图1中未示出)以执行增量颜色压缩和位包装。压缩器作为可以在相应的计算单元111-114上执行的硬件、固件、软件或其组合来实现。压缩器可以作为从计算单元111-114或其他实体接收信息的独立实体来实现。压缩器的一些实施方案计算构成帧的块中的像素的增量值。例如,每个块都可以包括8x 8组像素,例如,64个像素,这些像素表示图像的正方形部分。每个增量值都表示对应像素的颜色与从多个像素中选择的参考像素的参考颜色之间的差。压缩器可以将块中的像素细分为若干组,诸如八个8x 1组像素或八个4x 2组像素。然后,压缩器可以生成压缩位流,所述压缩位流使用比未压缩位流更少的位数量来表示增量值。例如,如本文所讨论的,压缩器可以生成压缩位流,所述压缩位流包括与像素块相关联的块标头、与细分的像素组相关联的组标头,以及编码的增量值。使用不同数量的位,如块标头和相应的组标头中包括的信息所指出的,对每个组的增量值进行编码。如本文所讨论的,解压缩器(图1中未示出)可以解压缩已压缩位流,以恢复未压缩位流中的位。
图2是根据一些实施方案的处理系统的一部分200的框图。部分 200包括以硬件、固件、软件或其组合实现的压缩器205和解压缩器 210。压缩器205和解压缩器210的一些实施方案在图1所示的处理系统100中的不同位置处实现。例如,压缩器205可以作为计算单元111-114之一的一部分来实现(或者被配置为从计算单元111-114接收位),而解压缩器210可以作为DRAM 110或屏幕145的一部分来实现(或被配置为向DRAM 110或屏幕145提供位)。压缩器205接收未压缩的位流215,所述位流在某些情况下表示帧中像素的颜色。根据本文所描述的增量颜色压缩和位包装技术的一些实施方案,压缩器 205压缩未压缩的位流215,以生成提供给解压缩器210的已压缩位流220。解压缩器210解压缩已压缩位流220,以恢复未压缩的位流225,所述已压缩位流220与未压缩的位流215包括相同的位或不同位,这取决于压缩是无损还是有损以及在已压缩位流220的传输中是否发生错误。
图3是根据一些实施方案的用于执行增量颜色压缩和位包装的方法300的流程图。方法300在图2中所示的压缩器205的一些实施方案中实现。方法300应用于诸如8x 8块之类的像素块,所述像素块通过使用64字节的块大小来保持存储器可寻址性。在其他情况下,也可以通过选择其他大小的像素块使得它们与特定数量的字节(例如 64字节)对齐,来保持存储器可寻址性。可以迭代地执行方法300的一些实施方案,或者可以同时或并行地执行方法300的多个实例(例如,在图1所示的计算单元111-114中实现的多个处理器核上),以对多个块(例如表示要在屏幕上显示的图像的像素的块)执行增量颜色压缩和位包装。如本文所讨论的,根据方法300压缩的位流的解压缩由图2中所示的解压缩器210的一些实施方案执行。
在框305处,压缩器从块中的像素中选择参考像素,并确定参考像素的颜色值。例如,如果使用8位颜色深度(或色域)来表示像素的颜色,则参考像素的颜色值可以由8位的值来表示。在一些变型中,压缩器选择多于一个像素作为潜在参考像素,然后从潜在参考像素中选择一个像素以用作参考。标识潜在参考像素的信息包括在相应的块标头中。然后,压缩器定义增量值,其表示参考像素的颜色值与块中其他像素的颜色值之间的差。取决于参考像素的颜色和其他像素的颜色的相对值,像素的增量值可以是正的或负的。足以表示增量值的像素数取决于块中像素的可能增量值的范围。例如,如果像素由8位颜色深度表示,则像素的增量值在-255到+255的范围内。8位足以表示增量值的绝对值,其范围从0到255,需要一个附加位来表示增量值的符号。在一些实施方案中,通过将负数转换为偶数而将正数转换为奇数来表示增量值的符号。例如,增量值系列{0,1,-1,2,-2,3,-3}可以转换为系列{0,1,2,3,4,5,6},用于分别将正负增量值编码为偶数和奇数正值。再例如,值0到2n-1-1可用于表示正增量值和值2n-1到2n-1可用于表示负增量值。也可以使用将正和负增量值编码为全正数的其他编码。
在框310处,压缩器将块细分为像素组。例如,在一些变型中,压缩器将块细分为以8x 1配置排列的八组像素或以4x 2配置排列的八组像素。在一些变型中,如本文所讨论的,像素组中的像素的值被转换为全正数。
在框315处,压缩器确定足以表示每组(i)内的增量值的组最小位数量(B_i)。如果正负增量值已转换为一系列正数,则使用以下公式来确定组最小位数量:
B_i=floor(log2M_i)+1
其中M_i是组内像素的最大增量值。例如,第一组(i=1)中的增量值可以具有从0到6的增量值,以便第一组的增量值可以用三位表示(B_i=3),第二组(i=2)的增量值可以具有从0到13的增量值,以便第二组的增量值可以用4位表示(B_i=4),以及第三组(i=3)中的增量值可以具有从0到22的增量值,以便第三组的增量值可以用5位表示(B_i=5)。在此示例中,其余组的增量值也由3-5位表示。
在框320处,压缩器确定等于足以表示块的任何一个组中的增量值的最小位数量的位数量(M)。最小位数量(M)通过根据以下公式,取足以表示块中的每个组的组最小位数量的最小值来确定:
Figure GDA0002588898120000091
因此,如果组的增量值可以用3-5位表示,如上例所示,那么块的最小位数量M=3。
在框325处,压缩器确定足以表示M与足以表示块中的增量值的最大位数量之间的差的位数量(B)。通过获取足以表示块中的每个组的组最小位数量的最大值来确定最大位数量。因此,位数量(B)可以根据以下公式来确定:
Figure GDA0002588898120000101
因此,如上例所示,如果组的增量值可以用3-5位表示,对于块中的组,位数量B=2。
在框330处,压缩器生成包括代表M和B的位数量的块标头。块标头的一些实施方案包括表示M的第一位数量和表示B的第二位数量。例如,如果像素由8位颜色深度表示,则块标头中的四位可用于表示M,并且块标头中的四位可用于表示B,在这种情况下可能需要多达9位来表示组中的增量值。块标头的一些实施方案可选地包括多个位以表示M和B的值的所有可能组合,这减少了块标头中包含的位总数量。例如,下表说明了M和B的值的单独编码以及M和B 的相同值的组合编码。
Figure GDA0002588898120000102
在框335处,压缩器为每个组i生成组标头。组标头的一些实施方案包括一个或多个位以表示相应的组的Bi-M的值。较少的位足以表示数量Bi-M,相对于足以表示数量Bi的位数量,在M=0的情况除外,在这种情况下,使用相同数量的位来表示数量Bi-M和数量Bi。因此,使用数量Bi-M表示足以表示每个组中的增量值的位数量减少了需要从压缩器发送到解压缩器的位总数量。例如,如果块为像素使用8位颜色深度,如果M和B被分别编码,则数量M和B中的每一个都由四位表示。数量Bi-M可以用B位来表示,使得8*B位足以表示所有八个组的数量Bi-M。
在框340处,压缩器使用Bi位来对每个组i的增量值进行编码,以表示增量值。返回到框315的示例,第一组(i=1)中的增量值使用三位(B_i=3)来编码,第二组(i=2)中的增量值使用四位(B_i=4)来编码,以及第三组(i=3)中的增量值使用五位(B_i=5)来编码。
在框345处,压缩器向解压缩器发送块标头、组标头和已编码增量值。例如,与计算单元111-114相关联的压缩器经由总线135将块标头、组标头和已编码增量值朝向图1中所示的存储器控制器125或屏幕145发送。
在框350处,解压缩器接收包括表示块标头、组标头和已编码增量值的位的位流。解压缩器可以使用块标头和组标头中的信息来解压缩位流,以恢复表示增量值的未压缩位。例如,解压缩器从块标头读取B的值,并使用此值来确定表示所有组的数量Bi-M的位数量,即,如果块已被细分为八个组,则为8*B位。解压缩器还从块标头读取M 的值。对于每个组,解压缩器从相应的组标头读取数量Bi-M的值,并组合Bi-M的值和M的值,以确定相应的组的数量Bi的值。解压缩器使用数量Bi的值来解析表示已编码增量值的位,以便可以正确地解码已编码增量值。例如,如果一个组的数量Bi=3,则解压缩器确定每个已编码增量值由位流中的三位来表示。
图4是根据一些实施方案的可以被细分为不同组配置中的像素组的像素块400的框图。块400包括64个像素405(为了清楚起见,仅一个由附图标记指出),其以8x 8网格排列。然而,块400的其他实施方案包括以不同模式排列的不同数量的像素。块400被细分为像素组,例如,由诸如图2所示的压缩器205之类的压缩器。在第一组配置中,块400被细分为八个组410(为了清楚起见,仅一个由附图标记指出),每个组都以8x 1网格配置排列。在第二组配置中,块400 被细分为八个组415(为了清楚起见,仅一个由附图标记指出),每个组都以4x 2网格配置排列。也可使用其他组配置来将块400细分为更多或更少的组。
当块400根据两个或更多个不同的组配置被细分为不同的组时,压缩器的一些实施方案确定编码像素405的增量值所需的位数量。例如,在所示的两种不同组配置的情况下,可以根据第一组配置将块 400细分为组410,而根据第二组配置将块细分为组415。然后,压缩器执行图3中所示的方法300的一些部分,以根据不同的组配置,来估计编码像素405的增量值所需的位数量。然后,压缩器比较位数量的不同值,并选择在压缩的位流中导致最小位数量的组配置。然后,例如,根据图3所示的方法300的一些实施方案,使用选定的组配置来压缩位流。
图5是根据一些实施方案的表示块中的像素的增量值的压缩位流500的框图。位流500由压缩器205的一些实施方案生成,以形成图2中所示的压缩位流220,例如,通过执行图3中所示的方法300 的一些实施方案。图5中所示的比特流500是基于像素的增量值生成的,所述像素的增量值是基于具有8位颜色深度的像素的颜色值确定的。然而,也可以使用具有更多或更少位数量的颜色深度。
比特流500包括由表示最小比特数(M)的比特形成的块标头505,所述最小比特数足以表示块中任何组的增量值。块标头505还包括表示足以表示M与足以表示块中增量值的最大位数量之间的差的位数量(B)的位。值M和B中每一个都由四位表示,使得块标头505包括用于8位像素深度的至少八位。然而,如本文所讨论的,可以在块标头505中包括少量位以表示值M和B的所有可能的组合,而不是分别表示这些值。此外,如下所述,压缩算法的一些实施方案实现了改变块标头505中的位数量的特征。
位流500还包括与块的每个增量值组相关联的组标头510、515。例如,组标头510包括表示组1的B1-M的值的位,并且组标头515 包括表示组2的B2-M的值的位。如本文所讨论的,B位足以表示组的Bi-M的值,所以组标头510、515包括B位。然而,如下所述,压缩算法的一些实施方案实现了改变组标头510、515中的位数量的特征。
位流500还包括对应于组标头510、515的组的已编码增量值。例如,位流500包括与组标头510相关联的组1的已编码增量值520。对于每个已编码增量值,已编码增量值520可以由Bi位来表示。例如,如果组1的八个已编码增量值520各自都由Bi=3位来表示,然后,已编码增量值520由24位表示。然而,如下所述,压缩算法的一些实施方案实现了改变足以表示已编码增量值520的位数量的特征。
图6是根据一些实施方案的用于减少用于表示全正增量值或全负增量值的位数量的方法600的流程图。在方法600的不同变型中,为了确定增量值是全正还是全负,数量0被认为是正的或负的。方法 600由图2中所示的压缩器205的一些实施方案来实现。在图2所示的解压缩器210的一些实施方案中实现相应的解压缩过程,以解码根据方法600生成的已压缩位流。
在框605处,压缩器确定组中的增量值是否具有全正值、全负值,或者正负值的混合。然后,压缩器可以将位添加到相应的组标头中,以指出全正、全负或混合正负值。两位足以表示组中增量值的三种可能状态。
在判定框610处,压缩器确定组中的增量值是否具有全正值。如果是,则在框615处,压缩器从组中的增量值中丢弃符号位。在框 620处,压缩器将对应组标头中的第一符号位设置为1,以指出所述组中的增量值具有全正值。在所示实施方案中,相应组标头中的第二符号位的值被设置为0或1,或者第二符号位可以被排除在相应的组标头之外,以进一步减少位数量。如果组中的增量值不具有全正值,则方法进行到判定框625。
在判定框625处,压缩器确定组中的增量值是否具有全负值。如果是,则在框630处,压缩器从组中的增量值中丢弃符号位。在框 635处,压缩器将对应组标头中的第一和第二符号位设置为0,以指出所述组中的增量值具有全负值。如果组中的增量值不具有全负值,则方法进行到判定框640。
在框640处,压缩器将对应组标头中的第一符号位设置为0,并将对应组标头中的第二符号位设置为1,以指出所述组中的增量值具有正负值的混合。
图6中示出的方法600在每个组标头中使用一个或两个符号位来指出相应组中的增量值是全正、全负还是混合。然而,在一些实施方案中,压缩器使用较少数量的位来表示一个块中的组的状态的所有可能组合。例如,八组中的增量值的三种可能状态对应于3^8=6561种不同的组合,其可以由13位表示,因为2^13=8192,而2^12=4096。表示组的状态和块的组合的位可以包括在块标头中。
图7是根据一些实施方案的用于编码具有等于2的幂的最大增量值的组中的增量值的方法700的流程图。方法700在图2中所示的压缩器205的一些实施方案中实现。
在框705,压缩器读取代表增量值的未压缩位。在框710处,如本文所讨论的,压缩器将增量值映射到全正值。如果增量值全为负,或者增量值是正负值的混合,则压缩器添加一个附加位以指出正在使用符号优化,并添加一个或多个附加位以指出增量值的符号。例如,压缩器可以根据图6中所示的方法600的一些实施方案来确定附加位的值。
在判定框715处,压缩器确定组中像素的最大绝对增量值是否等于2的幂(例如,对于k>0,2k)。在这种情况下,需要k+1位来表示组中的增量值,因为在框710处,所述组已被映射到全正值。如果组中像素的最大绝对增量值不等于2的幂,则压缩器在框720处压缩未压缩的位,例如,根据图3所示的方法300的一些实施方案。如果组中像素的最大绝对增量值等于2的幂,则压缩器在框725处使用k位 (而不是使用k+1位),对每个增量值进行编码。
通过使用k位来编码增量值,等于2k或2k-1的增量值将由相同的k位数量表示。为了解决退化,在判定框730处,压缩器确定增量值是否等于2k或2k-1。如果是,则压缩器(在框735处)添加尾随位,并设置尾随位的值以指出相应的增量值是否等于2k-1或2k。如果增量值不等于2k或2k-1,则压缩器绕过(在框740处)添加尾随位。
图7中示出的示例压缩算法使用尾随位来区分增量值的两个退化编码值。但是,在某些变型中,可以使用较少数量的位来执行基本编码(例如,可以使用少于k位来编码范围高达2k(对于k>0)的最大绝对增量值的增量值。然后,使用附加的尾随位来解决所产生的退化。例如,如果块中的增量值为0、1、2、3、4和5,则最大绝对增量值为5,即2^2+1或k=2。因此,需要三位来表示每个增量值,因为最大绝对增量值大于2^2=4。因此,总共需要6*3=18位来表示所有增量值。然而,如果在框715中评估的最大绝对增量值等于2^n+1,则等于2^n-1、2^n和2^n+1的增量值都被编码为2^n-1的退化值。将附加的尾随位添加到增量值以区分2^n-1、2^n和2^n+1的退化值。例如,尾随位“1”被添加到2^n-1,两个尾随位“01”被添加到2^n,并且两个尾随位“00”被添加到2^n+1。然后,将输入数据流0、1、2、3、 4和5压缩为一系列二进制值:00、01、10、111、1101和1111。已压缩二进制流中的位总数量是2+2+2+3+4+4=17,在此示例中节省了一位。
压缩器的一些实施方案向块标头添加一位以指出2的幂优化是否正用于相应块。例如,如果压缩器确定未减少位数量,可以设置(或重置)所述位以指出未使用2的幂优化。虽然添加附加的位会降低算法的压缩率,但在某些变型中,如果存在附加位以指出是否正在使用 2的幂优化,则解压缩器需要更少的处理周期来解压缩位流,这可以减少解压缩器所需的时钟周期数。
图8是根据一些实施方案的用于解码具有等于2的幂的最大增量值的组中的增量值的方法800的流程图。方法800在图2中所示的解压缩器210的一些实施方案中实现。解压缩器使用方法800来解压缩根据相应的压缩算法(例如图7的方法700中所示的压缩算法)压缩的位流。
在框805处,解压缩器读取代表块的组中的像素的增量值的位。解压缩器使用块标头和相应的组标头中包含的信息,预先确定数量 Bi的值。组中的增量值是使用Bi位来编码的。
在判定框810处,解压缩器确定由代表增量值的位指出的位值是否等于2^(Bi)-1的最大编码位值。如果不,则解压缩器在框715处将增量值设置为等于位值。如果解压缩器确定由代表增量值的位指出的位值等于2^(Bi)-1,则方法800进行到判定框820。
在判定框820处,解压缩器读入尾随位,并确定尾随位是否等于 0或1。如果尾随位等于0,则解压缩器在框725处确定增量值等于 2^(Bi)-1。如果尾随位等于1,则解压缩器在框830处确定增量值等于 2^(Bi)。尾随位与增量值的关联是任意的,在一些实施方案中也可以使用相反的约定。
图9是根据一些实施方案的确定是否绕过压缩算法的特征的方法900的流程图。方法900在图2中所示的压缩器205的一些实施方案中实现。在图2所示的解压缩器210的一些实施方案中实现相应的解压缩过程,以解码根据方法900生成的已压缩位流。
在框905处,压缩器确定通过根据由压缩器实现的压缩算法的一个或多个优化来对块中的像素的增量值进行编码而节省的位数量。例如,压缩器可以确定足以根据图3中所示的方法300的一些实施方案来编码增量值的第一位数量。压缩器还可以确定第二位数量,当实现附加优化特征(例如根据图6所示的方法600、图7所示的方法700 或图8所示的方法800的一些实施方案实现的特征)时,第二位数量足以编码增量值。节省的位数量等于第一位数量与第二位数量之间的差。
在框910处,压缩器确定为支持根据一个或多个优化来对编码的增量值进行压缩而添加到块标头或组标头的位数量。例如,压缩器可以确定根据图3中所示的方法300的一些实施方案,表示块标头和组标头中的值以支持编码增量值所需的第一位数量。压缩器还可以确定为在实现附加优化特征(例如根据图6所示的方法600、图7所示的方法700或图8所示的方法800的一些实施方案实现的特征)时支持对增量值进行编码,表示块标头和组标头中的值所需的第二位数量。添加的位的数量等于第一数量与第二数量之间的差。
在判定框915处,压缩器确定节省的位数量是否大于添加的位数量。如果是,则压缩器(在框920处)将块标头中的绕过位设置为 FALSE(或某个其他值)以指出压缩器正在使用附加特征来压缩已编码增量值。如果节省的位数量小于添加的位数量,则方法900进行到判定框925。
在判定框925处,压缩器确定块中的像素的所有增量值是否都等于零。如果不,则压缩器(在框930处)将块标头中的绕过位设置为 TRUE(或某个其他值)以指出压缩器绕过使用附加特征来压缩已编码增量值。如果块中像素的所有增量值都等于零,则可以在框935处从块标头中删除绕过位以进一步减少位数量。
在一些实施方案中,上述装置和技术在包括一个或多个集成电路 (IC)器件(也称为集成电路封装或微芯片)的系统(例如以上参考图1至图8所描述的处理系统)中实现。电子设计自动化(EDA)和计算机辅助设计(CAD)软件工具可用于设计和制造这些IC设备。这些设计工具通常呈现为一个或多个软件程序。一个或多个软件程序包括可由计算机系统执行的代码,以便操纵计算机系统在代表一个或多个IC设备的电路的代码上进行操作,从而执行过程的至少一部分以将制造系统设计或适配为制造电路。代码可以包含指令、数据或指令和数据的组合。表示设计工具或制造工具的软件指令通常存储在计算系统可访问的计算机可读存储介质中。同样,代表IC设备的设计或制造的一个或多个阶段的代码可以存储在相同的计算机可读存储介质或不同的计算机可读存储介质中并且可以从其中进行访问。
计算机可读存储介质可以包括计算机系统在使用期间可访问以向计算机系统提供指令和/或数据的任何非暂时性存储介质或非暂时性存储介质的组合。这样的存储介质可以包括,但不限于光学介质(例如,光盘(CD)、数字多功能光盘(DVD)、蓝光光盘)、磁介质(例如,软盘、磁带或磁性硬盘驱动器)、易失性存储器(例如,随机存取存储器(RAM)或高速缓存)、非易失性存储器(例如,只读存储器(ROM)或闪存存储器)或基于微机电系统(MEMS)的存储介质。计算机可读存储介质可以嵌入在计算系统中(例如,系统RAM或ROM)、固定地附接到计算系统(例如,磁性硬盘驱动器)、可移除地附接到计算系统(例如,光盘或基于通用串行总线(USB)的快闪存储器)或者经由有线或无线网络耦合到计算机系统(例如,网络可访问存储(NAS))。
在一些实施方案中,上述技术的某些方面可以由执行软件的处理系统的一个或多个处理器来实施。所述软件包括存储或以其他方式有形地体现在非暂时性计算机可读存储介质上的一个或多个可执行指令集。所述软件可以包括指令和某些数据,这些指令和数据在由一个或多个处理器执行时操纵一个或多个处理器以执行上述技术的一个或多个方面。非暂时性计算机可读存储介质可以包括例如磁盘或光盘存储设备、固态存储设备例如快闪存储器、高速缓存、随机存取存储器(RAM)或其他一个或多个非易失性存储器设备及类似物。存储在非暂时性计算机可读存储介质上的可执行指令可以是源代码、汇编语言代码、目标代码或者被一个或多个处理器解译或以其他方式执行的其他指令格式。
应注意,并非上述一般性描述中的所有活动或元素都是必需的,特定活动或设备的一部分可能不是必需的,并且除了所描述的那些以外,还可以执行一个或多个其他活动,或者还可以包括一个或多个其他元素。更进一步地,列出活动的顺序不一定是其被执行的顺序。另外,已经参考具体实施方案描述了相应概念。然而,本领域的普通技术人员应理解,在不脱离如所附权利要求书所阐述的本公开的范围的情况下,可以进行各种修改和改变。因此,说明书和附图被认为是说明性的而不是限制性的,并且所有这些修改意在被包括在本公开的范围内。
上文已经关于具体实施方案描述了益处、其他优点和问题的解决方案。然而,可能导致任何益处、优点或解决方案发生或变得更明显的益处、优点、问题的解决方案以及任何特征都不应被解释为任何或所有权利要求的关键、必需或本质特征。此外,以上公开的特定实施方案仅仅是说明性的,因为所公开的主题可以受益于本文教示的本领域技术人员明白的不同但等效的方式进行修改和实践。除了在所附权利要求书中所描述的之外,不打算对本文示出的构造或设计的细节进行限制。因此,显而易见的是,上面公开的特定实施方案可以被改变或修改,并且所有这样的变化都被认为在所公开的主题的范围内。因此,本文寻求的保护如所附权利要求中所阐述。

Claims (26)

1.一种用于执行增量颜色压缩和位包装的方法,其包括:
确定块中多个像素的增量值,其中每个增量值都表示所述多个像素之一的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差;
将所述多个像素细分为多个组,其中使用不同的最小位数量表示所述多个组中的所述增量值;
生成代表所述增量值的已压缩位流,其中所述已压缩位流包括:
代表指出用于表示所述多个组中的所述增量值的所述最小位数量范围的块标头的位;
多个组标头,每个组标头都指出用来表示所述多个组中相应一个组中的所述增量值的组最小位数量;以及使用包括所述增量值的所述组的所述组最小位数量进行编码的所述增量值;以及
发送所述已压缩位流。
2.如权利要求1所述的方法,其中确定所述块中的所述多个像素的所述增量值包括使用预定数量的位来确定每个所述增量值以表示色差和所述增量值的符号,并且其中所述已压缩位流中的位总数量小于用于表示所述多个像素的所述增量值的所述预定数量的位在所述多个像素上的总和。
3.如权利要求1所述的方法,其中所述块标头包括指出最小位数量(M)和第一位数量(B)的位,所述最小位数量表示任何一个所述组中的所述增量值,所述第一位数量用来表示M与第二位数量之间的差,所述第二位数量表示用来表示所述增量值的所述位数量的最大值,并且其中所述多个组标头中的每一个都包括指出M与组最小位数量之间的差的位,所述组最小位数量表示所述多个组中相应一个组中的所述增量值。
4.如权利要求3所述的方法,其中代表所述块标头的所述位包括用来表示M和B的所有可能组合的第三位数量,并且还包括:
编码M和B的值的组合,以形成由所述第三位数量表示的已编码值,并且其中所述块标头包括所述已编码值。
5.如权利要求1所述的方法,其中将所述块中的所述多个像素细分为所述多个组包括:
根据不同的组配置,将所述多个像素细分为所述多个组;
比较使用所述不同组配置生成的所述已压缩位流中的位总数量;以及
基于所述比较,选择用于细分所述多个组的所述不同组配置之一。
6.如权利要求1所述的方法,其还包括:
确定每个所述组中的所述增量值是全正、全负还是混合正负值;
响应于确定一组内的所述增量值是全正或全负,从所述组的所述组标头中省略指出所述增量值的符号的位;以及
响应于确定一组内的所述增量值是混合正负值,在所述组的所述组标头中,包括指出所述组内的所述增量值是混合正负值的位。
7.如权利要求6所述的方法,其还包括:
在所述块标头中包括绕过位,以指出所述组标头是否包括指出所述多个组中相应一个组中的所述增量值是全正、全负还是混合正负值的位;以及
响应于确定与所述块中的所述多个像素相关联的所有所述增量值都等于零,在所述块标头中不包括所述绕过位。
8.如权利要求6所述的方法,其还包括:
响应于确定一个组中像素的最大绝对增量值等于2的幂,使用比所述组最小位数量少一位,对所述组中的所述增量值进行编码,使得具有所述最大绝对值或比所述最大绝对值小一的增量值由最大已编码位值来表示;以及
将尾随位添加到所述最大已编码位值,以指出所述最大已编码位值是指出所述最大绝对值还是比所述最大绝对值小一。
9.一种用于解压缩位流的方法,其包括:
接收代表块中多个像素的增量值的已压缩位流,其中所述像素被细分为多个组,其中不同的最小位数量被用来表示所述多个组中的所述增量值,其中所述已压缩位流包括:代表指出用来表示所述多个组中的所述增量值的所述最小位数量范围的块标头的位;多个组标头,每个组标头都指出用来表示所述多个组中相应一个组中的所述增量值的组最小位数量;并且其中所述增量值已使用包括所述增量值的所述组的所述组最小位数量进行编码;以及
基于所述块标头、所述多个组标头和已编码增量值对所述已压缩位流进行解压缩,以恢复所述增量值,每个所述增量值都表示所述多个像素中的一个像素的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差。
10.如权利要求9所述的方法,其中解压缩所述已压缩位流包括恢复由指出色差和所述增量值的符号的预定数量的位表示的所述增量值,并且其中所述已压缩位流中的位总数量小于用于表示所述多个像素的所述增量值的所述预定数量的位在所述多个像素上的总和。
11.如权利要求9所述的方法,其中所述块标头包括指出最小位数量(M)和第一位数量(B)的位,所述最小位数量用来表示任何一个所述组中的所述增量值,所述第一位数量足以表示M与第二位数量之间的差,所述第二位数量用来表示用来表示所述增量值的所述位数量的最大值,并且其中所述多个组标头中的每一个都包括指出M与组最小位数量之间的差的位,所述组最小位数量用来表示所述多个组中相应一个组中的所述增量值。
12.如权利要求11所述的方法,其中代表所述块标头的所述位包括用来表示M和B的所有可能组合的第三位数量,并且还包括:
解码由所述第三位数量表示的M和B的值的组合的已编码值,并且其中所述块标头包括所述已编码值。
13.如权利要求9所述的方法,其还包括:
基于相应组标头中包括的位来确定每个所述组中的所述增量值是全正、全负还是混合正负值;
响应于确定一组内的所述增量值是全正或全负,从所述组的所述组标头中省略指出所述增量值的符号的位;以及
响应于确定一组内的所述增量值是混合正负值,在所述组的所述组标头中,包括指出所述组内的所述增量值是混合正负值的位。
14.如权利要求13所述的方法,其还包括:
当与所述块中的所述多个像素相关联的至少一部分所述增量值不等于零时,检测所述块标头中的绕过位,其中所述绕过位指出所述组标头是否包括指出所述相应组中的所述增量值是全正、全负还是混合正负值的位;以及
基于所述绕过位的值来解码所述组标头。
15.如权利要求13所述的方法,其还包括:
确定一组中像素的所述增量值的最大绝对值等于2的幂;
使用比所述组最小位数量小一位来解码所述组中的增量值;以及
基于所述最大已编码位值和指出所述最大已编码位值是指出所述最大绝对值还是比所述最大绝对值小一的尾随位,来解码由最大已编码位值表示的增量值。
16.一种用于执行增量颜色压缩和位包装的装置,其包括:
计算单元,其被配置为生成代表块中的多个像素的位流;以及
压缩器,其被配置为:
确定所述多个像素的增量值,其中每个增量值都表示所述多个像素之一的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差;
将所述块中的所述多个像素细分为多个组,其中使用不同的最小位数量表示所述多个组中的所述增量值;
生成代表所述增量值的已压缩位流,其中所述已压缩位流包括:
代表指示用来表示所述多个组中的所述增量值的所述最小位数量范围的块标头的位;
多个组标头,每个组标头都指出用来表示所述多个组中相应的一个组中的所述增量值的组最小位数量,并且
其中所述增量值已使用包括所述增量值的所述组的所述组最小位数量进行编码;以及
发送所述已压缩位流。
17.如权利要求16所述的装置,其中所述块标头包括指出最小位数量(M)和第一位数量(B)的位,所述最小位数量用来表示任何一个所述组中的所述增量值,所述第一位数量足以表示M与第二位数量之间的差,所述第二位数量用来表示用来表示所述增量值的所述位数量的最大值,并且其中所述多个组标头中的每一个都包括指出M与组最小位数量之间的差的位,所述组最小位数量用来表示所述多个组中相应一个组中的所述增量值。
18.如权利要求17所述的装置,其中代表所述块标头的所述位包括用来表示M和B的所有可能组合的第三位数量,并且其中所述压缩器被配置为编码M和B的值的组合,以形成由所述第三位数量表示的已编码值,并且其中所述块标头包括所述已编码值。
19.如权利要求16所述的装置,其中所述压缩器被配置为:
确定每个所述组中的所述增量值是全正、全负还是混合正负值;
丢弃指出组中的全为正或全为负的所述增量值的符号的位;以及
在所述组标头中包括指出所述多个组中相应的一个组中的所述增量值是全正、全负还是混合正负值的位。
20.如权利要求19所述的装置,其中响应于确定一组中像素的所述增量值的最大绝对值等于2的幂,所述压缩器被配置为:
使用比所述组最小位数量少一位,对所述组中的所述增量值进行编码,使得具有所述最大绝对值或比所述最大绝对值小一的增量值由最大已编码位值来表示;以及
将尾随位添加到所述最大已编码位值,以指出所述最大已编码位值是指出所述最大绝对值还是比所述最大绝对值小一。
21.一种计算机处理装置,其包括:
压缩器,其被配置为生成代表块中多个像素的增量值的已压缩位流,其中所述像素被细分为多个组,并且其中不同的最小位数量被用来表示所述多个组中的所述增量值;以及
解压缩器,其被配置为:
接收所述已压缩位流,的所述已压缩位流包括代表指出用来表示所述增量值的位数量范围的块标头的位,多个组标头,每个组标头都指出用来表示所述多个组中相应一个组中的所述增量值的组最小位数量;并且其中所述增量值已使用包括所述增量值的所述组的所述组最小位数量进行编码;以及
基于所述块标头、所述多个组标头和已编码增量值对所述已压缩位流进行解压缩,以恢复所述增量值,每个所述增量值都表示所述多个像素中的一个像素的颜色与从所述多个像素中选择的参考像素的参考颜色之间的差。
22.如权利要求21所述的装置,其中所述块标头包括指出最小位数量(M)和第一位数量(B)的位,所述最小位数量用来表示任何一个所述组中的所述增量值,所述第一位数量用来表示M与第二位数量之间的差,所述第二位数量用来表示用来表示所述增量值的所述位数量的最大值,并且其中所述多个组标头中的每一个都包括指出M与组最小位数量之间的差的位,所述组最小位数量用来表示所述多个组中相应一个组中的所述增量值。
23.如权利要求22所述的装置,其中代表所述块标头的所述位包括用来表示M和B的所有可能组合的第三位数量,并且其中所述解压缩器被配置为:
解码由所述第三位数量表示的M和B的值的组合的已编码值,并且其中所述块标头包括所述已编码值。
24.如权利要求21所述的装置,其中所述解压缩器被配置为:
基于相应组标头中包括的位来确定每个所述组中的所述增量值是全正、全负还是混合正负值;
响应于确定一组内的所述增量值是全正或全负,从所述组的所述组标头中省略指出所述增量值的符号的位;以及
响应于确定一组内的所述增量值是混合正负值,在所述组的所述组标头中,包括指出所述组内的所述增量值是混合正负值的位。
25.如权利要求24所述的装置,其中所述解压缩器被配置为:
当与所述块中的所述多个像素相关联的至少一部分所述增量值不等于零时,检测所述块标头中的绕过位,其中所述绕过位指出所述组标头是否包括指出所述相应组中的所述增量值是全正、全负还是混合正负值的位;以及
基于所述绕过位的值来解码所述组标头。
26.如权利要求24所述的装置,其中所述解压缩器被配置为:
确定一组中像素的所述增量值的最大绝对值等于2的幂;以及
使用比所述组最小位数量小一位来解码所述组中的增量值。
CN201780043310.3A 2016-07-13 2017-07-12 用于增量颜色压缩的位包装 Active CN109479146B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/209,194 US10511858B2 (en) 2016-07-13 2016-07-13 Bit packing for delta color compression
US15/209,194 2016-07-13
PCT/IB2017/054213 WO2018011734A1 (en) 2016-07-13 2017-07-12 Bit packing for delta color compression

Publications (2)

Publication Number Publication Date
CN109479146A CN109479146A (zh) 2019-03-15
CN109479146B true CN109479146B (zh) 2020-11-17

Family

ID=60941550

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780043310.3A Active CN109479146B (zh) 2016-07-13 2017-07-12 用于增量颜色压缩的位包装

Country Status (6)

Country Link
US (1) US10511858B2 (zh)
EP (1) EP3485645A4 (zh)
JP (1) JP6990227B2 (zh)
KR (1) KR102451595B1 (zh)
CN (1) CN109479146B (zh)
WO (1) WO2018011734A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
US11153578B2 (en) 2018-04-27 2021-10-19 Ati Technologies Ulc Gradient texturing compression codec
JP2021193762A (ja) * 2018-09-28 2021-12-23 ソニーグループ株式会社 受信装置、および受信方法、並びに、画像処理システム
US11568248B2 (en) * 2020-03-31 2023-01-31 Ati Technologies Ulc Feature reordering based on similarity for improved memory compression transfers during machine learning jobs
US11405622B2 (en) * 2020-04-22 2022-08-02 Apple Inc. Lossless compression techniques
KR20230037212A (ko) * 2021-09-09 2023-03-16 주식회사 엘엑스세미콘 디-무라를 위한 보상 정보 제공 장치 및 방법과 보상 정보를 이용하는 디스플레이 구동 장치
US20230334022A1 (en) * 2022-04-14 2023-10-19 The Hospital For Sick Children System and method for processing and storage of a time-series data stream
US20230421173A1 (en) * 2022-06-27 2023-12-28 Ati Technologies Ulc Huffman Packing for Delta Compression
CN116469336B (zh) * 2023-06-20 2023-08-18 联士光电(深圳)有限公司 一种彩色微显示芯片的数字驱动方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959796A (zh) * 2016-04-29 2016-09-21 海尔优家智能科技(北京)有限公司 一种基于图像增量信息的通信方法及装置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721720A (en) 1994-12-28 1998-02-24 Kabushiki Kaisha Toshiba Optical recording medium recording pixel data as a compressed unit data block
JP3686155B2 (ja) * 1996-03-21 2005-08-24 株式会社ルネサステクノロジ 画像復号装置
US5793427A (en) * 1996-10-11 1998-08-11 Divicom Inc. Processing system with delta-based video data encoding
US6205250B1 (en) * 1998-08-27 2001-03-20 Thomson Licensing S.A. System and method for minimizing clock cycles lost to overhead data in a video decoder
TWI245557B (en) * 2003-09-11 2005-12-11 Matsushita Electric Ind Co Ltd Image compensation apparatus and method for the same
JP4893956B2 (ja) 2006-08-07 2012-03-07 富士ゼロックス株式会社 符号化装置、復号化装置、符号化方法及びプログラム
US7920749B1 (en) * 2006-12-20 2011-04-05 Nvidia Corporation Modified high dynamic range color decompression
US8331663B2 (en) * 2007-06-28 2012-12-11 Qualcomm Incorporated Efficient image compression scheme to minimize storage and bus bandwidth requirements
US9326004B2 (en) * 2008-06-03 2016-04-26 Broadcom Corporation Reduced memory mode video decode
JP2010092199A (ja) 2008-10-07 2010-04-22 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
EP2284800B1 (en) * 2009-07-23 2018-09-05 Samsung Electronics Co., Ltd. Method and system for creating an image
ES2691743T3 (es) * 2010-12-06 2018-11-28 Sun Patent Trust Método de codificación de imágenes, método de decodificación de imágenes, dispositivo de codificación de imágenes y dispositivo de decodificación de imágenes
US8811759B2 (en) * 2011-01-13 2014-08-19 Sony Corporation System and method for effectively performing an intra prediction procedure
JP2012199652A (ja) * 2011-03-18 2012-10-18 Fujitsu Ltd 画像処理装置、方法及びプログラム
US20130110522A1 (en) * 2011-10-21 2013-05-02 Samsung Electronics Co., Ltd. Energy lossless-encoding method and apparatus, audio encoding method and apparatus, energy lossless-decoding method and apparatus, and audio decoding method and apparatus
US9330475B2 (en) * 2012-05-01 2016-05-03 Qualcomm Incorporated Color buffer and depth buffer compression
US20140029864A1 (en) * 2012-07-30 2014-01-30 Dror Reif Compression encoding and decoding method and apparatus
CN103002282B (zh) * 2012-11-13 2015-10-28 北京大学 一种颜色数目自适应决策方法和图像压缩方法
JP2014143655A (ja) 2013-01-25 2014-08-07 Fuji Xerox Co Ltd 画像符号化装置及び画像復号化装置並びにプログラム
US9451257B2 (en) * 2013-03-22 2016-09-20 Stmicroelectronics S.R.L. Method and apparatus for image encoding and/or decoding and related computer program products
US9613394B2 (en) * 2013-08-28 2017-04-04 Intel Corporation Lossy color compression using adaptive quantization
US9106258B2 (en) 2013-11-22 2015-08-11 International Business Machines Corporation Early data tag to allow data CRC bypass via a speculative memory data return protocol
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US10979705B2 (en) 2014-08-08 2021-04-13 Qualcomm Incorporated Method for video coding with spatial prediction mode for multi-mode video coding
US9357232B2 (en) * 2014-10-28 2016-05-31 Sony Corporation Image processing system with binary decomposition and method of operation thereof
JP2017017629A (ja) * 2015-07-03 2017-01-19 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
US10269326B2 (en) * 2015-12-19 2019-04-23 Intel Corporation Method and apparatus for color buffer compression

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105959796A (zh) * 2016-04-29 2016-09-21 海尔优家智能科技(北京)有限公司 一种基于图像增量信息的通信方法及装置

Also Published As

Publication number Publication date
JP2019525583A (ja) 2019-09-05
US10511858B2 (en) 2019-12-17
EP3485645A1 (en) 2019-05-22
KR20190025928A (ko) 2019-03-12
CN109479146A (zh) 2019-03-15
US20180020232A1 (en) 2018-01-18
WO2018011734A1 (en) 2018-01-18
JP6990227B2 (ja) 2022-01-12
EP3485645A4 (en) 2020-04-15
KR102451595B1 (ko) 2022-10-06

Similar Documents

Publication Publication Date Title
CN109479146B (zh) 用于增量颜色压缩的位包装
US10796458B2 (en) Compression of point clouds via a novel hybrid coder
WO2014166434A1 (zh) 深度图像的编解码方法和编解码装置
KR20120009605A (ko) 3차원 메쉬 가변 부호화 장치 및 방법, 그리고 3차원 메쉬 가변 복호화 장치 및 방법
US10009606B2 (en) Low power context adaptive binary arithmetic decoder engine
MX2012004747A (es) Codificacion de graficos integrados: corriente de bits reclasificada para descodificacion paralela.
US10373384B2 (en) Lightfield compression using disparity predicted replacement
US11153578B2 (en) Gradient texturing compression codec
KR102238091B1 (ko) 3d 모델 압축 및 압축해제 시스템 및 방법
KR101303503B1 (ko) 컬러 이미지들을 위한 조인트 스칼라 임베디드 그래픽 코딩
US11831886B2 (en) Methods, apparatuses, computer programs and computer-readable media for processing configuration data
CN105791819B (zh) 一种图像的帧压缩方法、图像的解压缩方法及装置
CN113228665A (zh) 用于处理配置数据的方法、设备、计算机程序和计算机可读介质
WO2023172703A1 (en) Geometry point cloud coding
WO2023028177A1 (en) Attribute coding in geometry point cloud coding
WO2023278829A1 (en) Attribute coding in geometry point cloud coding
CN115250351A (zh) 用于图像数据的压缩方法、解压方法及相关产品
US20150229921A1 (en) Intra searches using inaccurate neighboring pixel data
KR20200105739A (ko) 정교화 비트들의 서브블록 기반의 할당을 위한 임베디드 코덱 회로
WO2023107868A1 (en) Adaptive attribute coding for geometry point cloud coding
EP4364082A1 (en) Attribute coding in geometry point cloud coding
CN117813822A (zh) 几何点云编解码中的属性编解码
CN103327336A (zh) 一种三维编码的方法及设备
WO2023249999A1 (en) System and method for geometry point cloud coding
WO2023172705A1 (en) Attribute level coding for geometry point cloud coding

Legal Events

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