CN104104953A - 用于图形应用的基于瓦片的压缩与解压缩 - Google Patents
用于图形应用的基于瓦片的压缩与解压缩 Download PDFInfo
- Publication number
- CN104104953A CN104104953A CN201410134059.XA CN201410134059A CN104104953A CN 104104953 A CN104104953 A CN 104104953A CN 201410134059 A CN201410134059 A CN 201410134059A CN 104104953 A CN104104953 A CN 104104953A
- Authority
- CN
- China
- Prior art keywords
- error
- code element
- pixel
- interweaving
- continuous section
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/393—Arrangements for updating the contents of the bit-mapped memory
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3086—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing a sliding window, e.g. LZ77
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/02—Handling of images in compressed format, e.g. JPEG, MPEG
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明涉及用于图形应用的基于瓦片的压缩与解压缩。公开了用于基于瓦片的压缩的系统和方法。图像数据,例如帧,可以被划分成瓦片。瓦片可基于行缓冲器的大小被设计大小。瓦片被单独地压缩和解压缩。当图像帧的部分被更新时,相应的被更新瓦片可被压缩并存储。同样,当瓦片被访问时,它们可被解压缩和流式传输到请求设备。在一些实施方式中,可操作以对瓦片进行解压缩的解码器可以插入在存储设备和请求设备之间。对一个或多个压缩瓦片进行编码的数据可以被分组,以使得能够以每时钟周期四个像素的速率解压缩。公开了用于压缩包含RGB和RGBα分量的图像数据的方法。
Description
相关申请
本申请是2013年4月3日提交的、题目为“Tile-Based Compression andDecompression for Graphic Applications”的第13/856,389号美国申请的继续申请,据此,其通过引用在此被全文并入。
技术领域
本发明涉及用于压缩和解压缩图像数据的系统和方法。
背景技术
现代图形引擎通常将图像呈现或构图到帧缓冲器中,它通常是系统存储器或DDR。在许多这样的系统中,图形硬件和系统存储器不在同一芯片上。图形硬件也经常被推到极限以处理更高分辨率的复杂图形,以及处理图形数据的多个源和目标。
因此,增加数据量需要在图形和其他子系统的周围非常迅速地搬移。以极高的速度搬移大量的数据对电力、散热和性能要求提出了挑战。因此,关键的是要减少用于将数据移进移出系统存储器所需要的带宽。许多系统可操作来压缩数据,将其存储,然后在需要时解压缩数据。
本文所述的系统和方法提供用于将图像数据的压缩和解压缩包含到图像处理系统的改进途径。
附图说明
为了使本发明的优点容易理解,以上简要描述的本发明的更具体的描述将通过参考在附图中示出的具体实施方式来呈现。应理解,这些附图仅描绘了本发明的典型实施方式,并且因此不被认为是对其范围的限制,通过使用附图,本发明将利用附加特征和细节被描述和解释,其中:
图1是适用于实现根据本发明的实施方式的方法的计算系统的示意性框图;
图2是根据本发明的一个实施方式的图形和显示处理系统的部件的示意性框图;
图3是根据本发明的一个实施方式的用于在线解压缩图形数据的方法的过程流程图;
图4是根据本发明的一个实施方式的用于压缩图形数据的方法的过程流程图;
图5是根据本发明的一个实施方式的用于计算像素误差的码元的方法的过程流程图;
图6是根据本发明的一个实施方式的用于编码像素误差的码元的方法的过程流程图;
图7是根据本发明的一个实施方式的用于编码像素误差的最低有效位的方法的过程流程图;
图8是根据本发明的一个实施方式的用于解码压缩的图形数据的方法的过程流程图;
图9是根据本发明的一个实施方式的用于从压缩的图形数据提取码元的方法的过程流程图;
图10是根据本发明的一个实施方式的用于解码从压缩的图形数据提取的交织的误差的方法的过程流程图;
图11是用于从解压缩的误差数据中提取最终的像素值的方法的过程流程图;
图12是根据本发明的一个实施方式的用于格式化压缩的瓦片数据以进行流式传输的方法的过程流程图;及
图13是根据本发明的一个实施方式的用于压缩包括α值的图形数据的方法的过程流程图。
具体实施方式
将容易理解,本发明的部件,如在此概括描述和附图中示出的,可以被布置和设计成多种不同的结构。因此,本发明的实施方式的以下更详细的描述,如在图中表示的,并不旨在限制要求权利的本发明的范围,而仅仅代表根据本发明的当前设想的实施方式的某些实例。目前描述的实施方式通过参考附图将得到最好的理解,其中相同的部件始终用相同的标号指定。
本发明响应于本领域的当前状态,特别是响应于通过当前可用的装置和方法尚未得到充分解决的本领域中的问题和需求,而被提出。因此,本发明已经被开发以提供用于压缩多个瓦片(tile)中的图像帧的装置和方法。瓦片的大小可以等于图形系统中的设备的缓冲器(如行缓冲器)的大小。瓦片可被进一步格式化,使得当瓦片的数据在设备之间流式传输时,瓦片可被解压缩,如通过在线解码器。
在图形呈现或构造的大多数使用情况下,仅需要改变或更新整个图像或帧的一小部分。许多传统的图像或视频压缩工作基于逐行或逐帧。这些压缩技术非常适合于图像,其已在待执行压缩的全帧或全行可用,如视频帧或静止图像帧,它可以被存储和重复回放。然而,在许多情况下,图形的二维或三维帧被现场生成,每帧被呈现和发送用于仅显示一次。例如,图形用户界面可能需要在由用户触摸屏或进行其它交互后再次生成,然后在屏幕上重新显示。
图形图像或帧通常映射到具有特定的访问模式的特定的存储位置。在本文公开的实施方式中,帧可以被网格化成瓦片,使得只有特定的受影响的瓦片需要进行更新,且相应的存储位置需要改变。每个瓦片然后可以被单独地压缩和解压缩以提供灵活性和高压缩比。可以选择每个瓦片的大小和纵横比,以提高存储器的访问效率和总体系统性能。由发明人进行的实验已经发现,本文公开的方法可达到对于8幅测试图像和32字节的突发脉冲每24位像素10.05比特的压缩效率及对于具有64字节的突发脉冲的8幅测试图像每像素12.19比特的压缩效率。
由发明人进行的实验还发现,在选择瓦片大小时某些因素是有用的。例如,由发明人进行的实验已经表明,覆盖16到64个像素的范围的瓦片适合于许多应用,特别是图形构成。在许多系统中,显示子系统将需要以给定的刷新率实时地逐行处理像素。像素数据通常被存储在行缓冲器中,其是本地驻留在显示子系统附近的片上存储器。行缓冲器通常具有有限的尺寸,使得它们可以在某一时间保持很少行的像素,例如1行或2行。因此,瓦片的高度可以有利地限制在每瓦片1个或2个像素高,例如行缓冲器中的行的数目。因此,水平8-64个像素(例如行缓冲器的宽度)×垂直1-2个像素的瓦片大小可有利地有效地利用有限的容量尺寸的行缓冲器。
鉴于许多DDR(双倍数据速率)存储器访问被限制为对齐的256字节,瓦片的边界可以有利地约束为位于256字节的边界上。由于像素通常包括每像素32位(4字节)数据,每256个字节存储数据将会有64个像素。因此,匹配此64-像素约束可以有利地包括使用64×1或者32×2的尺寸。在图像的尺寸不是瓦片大小的倍数的情况下,一行中的最后一个像素可以被重复以填充瓦片。
图像的每个瓦片或帧可以被单独压缩和解压缩。可以对每个被压缩的瓦片数据进行传输,并将其写入与后续的瓦片对齐的存储位置。对于现有的压缩算法来说,对于比如本文描述的瓦片量级的小数据块很难获得显著的压缩率。本文描述的系统和方法对于比如64×1像素、32×2像素、16×4像素、8×8像素、以及其他瓦片大小的量级的瓦片提供了大的压缩率。
在一些实施方式中,除了构成帧的瓦片的瓦片数据之外,图像头、或瓦片状态数据,也可以与帧关联,并且包含压缩信息。图像头可以包含少量数据,并且与帧的瓦片一同被存储在存储器中。显示控制器可以可操作地从存储器中获取该瓦片状态数据,并且请求该帧的压缩的瓦片。瓦片随后可以被解压缩并且被逐行地返回给显示控制器。
在下面更详细地描述了用于解压缩图形系统中的瓦片的系统和方法。
与本发明一致的实施方式可以被实现为装置、方法、或计算机程序产品。因此,本发明可以采用纯硬件的实施方式、纯软件的实施方式(包括固件、驻留软件、微代码等)、或结合在本文中被统称为“模块”或“系统”的软件方面和硬件方面的实施方式的形式。此外,本发明可以采用在任何有形介质表现形式中实现的计算机程序产品的形式,所述有形介质表现形式含有在所述介质中实现的计算机可以使用的程序代码。
可以使用一个或多个计算机可使用的介质或计算机可读介质的任意组合。例如,计算机可读介质可以包含一个或多个便携计算机磁盘、硬盘、随机访问存储器(RAM)设备、只读存储器(ROM)设备、可擦写可编程的只读存储器(EPROM或闪存)设备、便携压缩磁盘只读存储器(CDROM)、光存储设备、以及磁存储设备。在所选择的实施方式中,计算机可读介质可以包括可包含、存储、传送、传播、或传输由指令执行系统、装置、或设备所使用的或与其相结合使用的程序的任何非暂时性介质
用于执行本发明的操作的计算机程序代码可以用一种或多种编程语言的任意组合进行编写,所述编程语言包括比如Java、Smalltalk、C++等的面向对象的编程语言,以及比如“C”编程语言或类似的编程语言的传统的过程化的编程语言。程序代码可以作为独立的软件包全部在计算机系统上执行、全部在独立的硬件单元上执行、部分在与计算机相隔一定距离的远程计算机上执行、或全部在远程计算机或服务器上执行。在后面的这种情况中,可以通过任何类型的网络将远程计算机连接到计算机,所述网络包括局域网(LAN)或广域网(WAN),或者所述连接可通过外部计算机(例如,使用互联网服务提供商通过互联网)实现。
下面参照根据本发明的实施方式的方法、装置(系统)和计算机程序产品的流程图说明和/或框图描述本发明。需要了解的是,流程图说明和/或框图中的每个框,以及流程图说明和/或框图中的框的组合,都可以用计算机程序指令或代码来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机、或其他可编程的数据处理装置的处理器,以产生一种机器,使得通过计算机或其他可编程的数据处理装置执行的这些指令产生用来实现流程图和/或框图的一个或多个框中指定的功能/动作。
这些计算机程序指令还可以被储存在非暂时性的计算机可读介质中,从而能够指示计算机或其他的可编程数据处理装置以特定的方式运行,使得存储在计算机可读介质中的指令产生了可以制造的物品,所述可以制造的物品实现流程图和/或框图的一个或多个框中指定的功能/动作。
计算机程序指令还可以被加载到计算机或其他的可编程数据处理装置上,以引起在计算机或其他的可编程装置上执行一系列步骤,从而产生计算机实现的过程,所述计算机实现的过程使得在计算机或其他的可编程装置上执行的指令提供用于实现流程图和/或框图的一个或多个框中指定的功能/动作的过程。
图1是说明示例的计算设备100的框图。计算设备100可以被用来执行比如本文中所讨论的各种步骤。计算设备100能起到服务器、客户端、或任何其他的计算实体的作用。计算设备可以执行如本文讨论的各种监控功能,并且能够执行比如本文所讨论的应用程序的一个或多个应用程序。计算设备100可以是比如台式电脑、笔记本电脑、服务器电脑、手持电脑、平板电脑等众多计算设备中的任何一种。
计算设备100包括都连接到总线112的一个或多个处理器102、一个或多个存储设备104、一个或多个接口106、一个或多个海量存储设备108、一个或多个输入/输出(I/O)设备110、以及显示设备130。处理器102包括执行存储在存储设备104和/或海量存储设备108中的指令的一个或多个处理器或控制器。处理器102还可以包括比如缓存的多种类型的计算机可读介质。
存储设备104包括各种计算机可读介质,比如易失性存储器(例如,随机存取存储器(RAM)114)和/或非易失性存储器(比如,只读存储器(ROM)116)。存储设备104还可以包括比如闪存的可重写ROM。
海量存储设备108包括各种计算机可读介质,比如磁带、磁盘、光盘、固态存储器(例如,闪存)等等。如在图1中示出的,具体的海量存储设备是硬盘驱动器124。还可以在海量存储设备108中包括多种驱动器,以使从多种计算机可读介质中读取和/或向其中写入成为可能。海量存储设备108包括可移除介质126和/或不可移除介质。
I/O设备110包括允许向计算设备100输入数据和/或其他信息或从其获取数据和/或其他信息的各种设备。示例的I/O设备110包括光标控制设备、键盘、按键平板、麦克风、监视器或其他显示设备、扬声器、打印机、网络接口卡、调制解调器、透镜、CCD或其他图像捕获设备等等。
显示设备130包括能够向计算设备100的一个或多个用户显示信息的任何类型的设备。显示设备130的示例包括监视器、显示终端、视频投影设备等等。
接口106包括允许计算设备100与其他系统、设备、或计算环境交互的各种接口。示例接口106包括比如到局域网(LAN)、广域网(WAN)、无线网络、以及互联网的接口的任意数目的不同网络接口120。其他的接口包括用户接口118和外围设备接口122。接口106还可以包括一个或多个用户接口元件118。接口106还可以包括比如用于打印机、指示设备(鼠标、轨迹面板等)、键盘等的接口的一个或多个外围接口。
总线112允许处理器102、存储设备104、接口106、海量存储设备108和I/O设备110、以及耦合到总线112的其他设备或部件彼此通信。总线112表示比如系统总线、PCI总线、IEEE1394总线、USB总线等多种总线结构类型中的一种或多种。
出于说明的目的,程序和其他的可执行程序部件在本文中被示出为分立的框,尽管需要了解的是,这些程序和部件也可以在各个时间驻留在计算设备100的不同的存储部件中,并且由处理器102执行。可选择地,本文描述的系统和步骤可以在硬件中实现,或者在硬件、软件、和/或固件的组合中实现。例如,可以对一个或多个专用集成电路(ASIC)编程以执行本文描述的一个或多个系统和步骤。
参照图2,比如计算设备100的计算设备可以包含图形系统200,图形系统200包括所示出的部件中的一些或全部,以及本领域已知的用于图形处理的任何其他的部件。
图形系统200可以包括耦合到显示器130的显示控制器202。如本领域中已知的,显示控制器202可操作地将像素帧转换成数字或模拟视频信号,用于引起该帧的表示在显示器130上显示。显示控制器202可以包括像素域206,以帮助根据数字视频接口(DVI)协议或某种其他协议将像素数据同步传输到显示器130。
显示控制器202通过总线的方式可以与一个或多个设备通信,比如像先进的可扩展接口(AXI)规范的与缓存一致性总线架构。显示控制器202可以包括AXI域208,以帮助通过AXI总线同步通信。AXI规范允许仅仅根据起始地址的基于突发的处理(transaction)。如在下面更详细地描述的,使用压缩的瓦片数据可以有利地实现突发模式中的数据的流式传输。
显示控制器202可以可操作地耦合到AXI互连结构(fabric)210,所述AXI互连结构210可以将其他的设备连接到显示控制器202和另外的其他设备。例如,AXI互连结构210可以连接到存储控制器212、图形核214、以及任何其他的客户端设备216。
在许多应用中,图形核214可以包括编解码器218,其用于压缩和解压缩图像和视频数据。在许多例子中,编解码器218可以来自与显示控制器202不同的供货商,并且因此不能很容易地被显示控制器202使用,以执行视频数据的压缩和解压缩。
如在下面将更详细讨论的,本文描述的基于瓦片的压缩和解压缩方法可以有利地使用介于AXI互连结构210、或到存储设备的某种其他的接口与显示控制器202之间的解码器220。解码器220可以与域控制器的AXI域206通信。也就是说,在按照AXI协议进行通信的背景中,来自解码器220的数据可以将解压缩的像素透明地传送到显示控制器202。同样如本文中所描述的,解码器220可以有利地执行传送到显示控制器的像素数据的流式解压缩,其对显示控制器202是透明的,因而有助于像素数据的快速呈现,同时减少了存储像素数据所需要的存储器的数量。
例如,图3示出了通过其可以将存储在存储设备114中的压缩的像素数据流式传输给显示控制器202、或比如图形核212的其他设备的高层方法300。下面包含了方法300的步骤的更详细的描述。
当设备访问特定的像素位置时,对应的瓦片可以随后被解压缩。例如,在图2的系统200的背景中,方法300可以包括获取302瓦片头。瓦片头可以包括描述帧的瓦片的信息,比如每个压缩瓦片的大小、每个瓦片的起始地址、帧的瓦片被存储的存储位置的范围、或其他数据。在一些实施方式中,每个瓦片都具有比如4比特的瓦片状态值。用于瓦片状态值的1至8的值表示需要多少32字节对该瓦片进行解码,例如,压缩的瓦片的大小。对于RGB888的颜色格式,瓦片状态值6可以表示瓦片包含原始的RGB888数据。对于RGBα8888数据,值6可以表示压缩的数据,并且瓦片状态值8可以表示瓦片包括原始的RGBα8888数据。获取302瓦片头的步骤可以通过比如显示控制器202的请求设备在取回用于在显示器130上呈现帧的像素数据的过程中执行。对于瓦片头的请求通过AXI互连结构210可以被定向到存储控制器212。
使用瓦片头,请求设备可以随后产生304对帧中的瓦片内、或所有瓦片的像素的读取请求。例如,请求设备可以请求对应该帧中的下一瓦片的字节数量,其中在该瓦片中的字节的数量通过该瓦片的瓦片状态数据表示。所述读取请求可以被发送到存储控制器212。当存储控制器212响应该读取请求时,对应于该读取请求的压缩的数据流可以通过解码器220被流式传输306给请求设备,所述解码器220可操作地对所述数据流进行实时解码。在下面对用来对压缩的数据流进行解码的方法继续进行更详细的描述。解码器随后向请求设备返回308解压缩的数据。如在上面提到的,AXI接口提供了通过其数据请求仅需要指定起始地址的突发数据转移。在一些实施方式中,压缩瓦片的突发转移可以通过解码器传输、由解码器解压缩、并且解压缩的数据以透明的方式被传输到请求设备。如将在下面更详细描述的,压缩的瓦片可以以允许对该瓦片中的单个像素进行流式解压缩的方式进行存储和/或传输。
图4示出了用于压缩像素瓦片的方法400。特别是,方法400示出了用于压缩瓦片的单个像素(“当前像素”)的方法,可以对瓦片的除了初始像素的所有像素重复该方法。方法400可以由图形系统或比如在图形核212或某个其他的处理器内的电子设备执行。
方法400可以包括计算402当前像素相对于预测像素的误差。预测像素可以包含瓦片中的在前的像素。瓦片的初始像素可以不经过压缩就被包含到压缩的瓦片。计算误差可以包括计算每个分量(RGB或RGBα)相对于预测像素的对应分量的误差。因此,误差可以是一组误差:初始Error[i]=当前[i]-预测[i],其中i是对应于RGB的红色、绿色和蓝色分量的从0至2的值,并且对应于RGBα的从0至3的值,其中第四个值表示α误差。
方法400可以包括执行404误差(OrgError[i])的颜色变换。例如,可反转的颜色变换(RCT)Error[i]可以按照如下方法执行:Error[2]=OrgError[2]-OrgError[1];Error[1]=OrgError[1]-OrgError[0];Error[0]=OrgError[0]。RCT变换导致节省了接近每个像素1比特,或节省了原始图像的大约8%的带宽。
方法400可以包含产生406颜色变换误差的交织误差。特别是,产生406交织误差可以包括对所述颜色变换误差的绝对值进行交织。例如,在绝对Error[i]=Abs(Error[i]),并且Rn…R0是AbsError[0]的比特,Gn…G0是AbsError[1]的比特,而Bn…B0是AbsError[2]的比特的情况下,交织误差可以被表示成PackAbsError=RnGnBnRn-1Gn-1Bn-1…R0G0B0。用不同的方式进行说明,PackAbsError的第i个比特是AbsError[i%3]的第(i/3)个比特。还可以为交织误差确定大小。该大小可以被表示成PackAbsError大小=LeadingOnePosition(PackAbsError)+1。例如,如果交织误差是10010,那么PackAbsError大小就是5。如果PackAbsError等于0,那么其大小也为0。
方法400可以包括计算408交织误差的码元并且对该码元进行编码。用于计算408码元的方法在下面结合图5进行了描述。编码410该码元可以包括使用变长编码(VLC)方法,该方法可以利用交织误差的大小可变的事实的优点。在示出的示例中,使用了霍夫曼编码。在下面结合图6描述了用于对该码元进行编码410的方法。
如在下面更详细地描述的,该码元和该码元的编码可以不对交织误差的所有比特进行编码。因此,方法400可以包括对交织误差(例如,PackAbsError)的未编码的最低有效位(LSB)进行编码412。下面结合图7对用于对交织误差的LSB进行编码412的方法进行了更详细的描述。
如上面提到的,交织误差可以包括上面描述的交织的误差绝对值、或颜色变换误差。因此,方法400可以包括对该误差的符号(sign)进行编码414。因为特定的误差(例如,颜色变换误差)是0还是非0可以很容易地通过对交织误差进行解交织来确定,对误差的符号编码414可以仅仅包括对非0误差的符号比特进行编码414。例如,每个非0误差的位可以包含在带符号的字符串中,用0表示正号而用1表示负号。在一些实施方式中,在用于误差的带符号的字符串中没有包含在其原始形式中包含的符号比特。如在下面更详细地描述的,在交织误差超过特定值的地方,使用原始像素数据来表示压缩瓦片中的像素。
编码的码元、编码的LSB、以及编码的符号随后可以被存储在压缩的瓦片中,所述压缩的瓦片作为方法400的主体的像素的表示。用于瓦片的初始像素和其余的根据方法400压缩的像素可以包括瓦片的压缩表示,比如由多个瓦片构成的帧的瓦片。
图5示出了用于对交织误差的一些或全部比特的码元进行编码的方法500,例如,该交织误差是等于X并具有大小S的PackAbsError。所示出的方法500用于包含24比特的颜色(即,每8比特分别用于红色、绿色、以及蓝色)的像素。本领域的技术人员将认识到可以很容易地针对更大或更小的像素对示出的值进行修改。
例如,如果发现502S不大于或等于4,那么码元(Sym)可以被计算504为等于X。否则,如果发现506S不大于或等于7,那么Sym可以被计算508为S*2+(X&1)。否则,如果没发现510S大于17,Sym可以被计算512为S+7。否则,如果S大于或等于17,那么Sym可以被计算为等于24。
参照图6,码元,比如根据图5确定的码元,可以使用比如霍夫曼编码的变长编码(VLC)方法进行编码。例如,方法600可以包括评估602Sym是否等于0。如果Sym等于0,那么码元可以被编码为等于0,或两个0比特00。
否则,方法600可以包括对码元进行VLC编码。例如,可以使第一部分等于HuffmanTable[0][Sym]且第二部分等于HuffmanTable[1][Sym]对该码元进行编码。例如,长度为N的码字值可以被计算606为Code[N-1~N-2]=Floor((Sym-1)/8+1)且Code[N-3~0]=(Sym-1)%8。在所示出的方法中,N等于5。然而,也可以根据被压缩的像素的大小使用其他的长度。
参照图7,如在上面提到的,码元和其的编码表示可以不对交织误差的全部进行编码。因此,图7的方法700可以被用于对任何没有被编码的码元进行编码的最低有效位进行编码。例如,如果发现702码元(例如,来自图5的Sym)不小于24,输出704原始RGB值,例如,像素的压缩版本将简单地为该像素的RGB值。
另外,如果发现706Sym不小于14,那么可以输出710值X[S-2~0](例如,除了交织误差的引导比特的所有比特,PackAbsError=X)。另外,如果没发现710Sym小于4,那么输出712值X>>1[S-3~0],例如,除了引导比特,X的所有比特右移1比特。另外,如果发现Sym小于4,则不输出714任何比特来编码交织误差的LSB。如在上面提到的,所引用的值仅仅是示例性的,并且对于不同大小的像素将会不同。
图8说明的是根据上述方法解压缩被压缩的像素的过程800。一般,解压缩像素是压缩过程的逆过程。特别地,被编码的码元被解码802且交织误差是从码元804获得804的。任何非零的误差的符号位都被提取806。在交织误差是由于颜色变换(诸如RCT)引起的地方,对交织误差执行反颜色变换以获得个别误差分量的(如,上面的OrgError[i])的绝对值808。个别误差分量然后根据所提取的符号位进行符号设置,并且随后与预测像素进行合并(如,被添加到预测像素)以获得原始像素810。如上所述,在码元(Sym)指示其原始形式的像素将被使用的地方,该像素将不包含符号。
图9说明的是用于从比特流(诸如来自瓦片的比特流)中提取码元的方法900。在方法900的实施之前从比特流中提取初始像素。随后可以根据方法900对后续比特进行处理。
方法900可以包括提取比特流的接下来的两比特(V0)902。如果V0被发现并不大于零904,那么Sym的值则被设定为零。Sym=0的值对应于零的交织误差。因而,正在被解压缩的像素的未被压缩的值将是瓦片中在前的像素的值。如果发现并最前面的两比特不是零904,那么方法900可包括从比特流中读取接下来的三比特(V1)908且根据Sym=(V0-1)*8+V1+1计算码元Sym910。
图10说明的是用于从提取的码元Sym获得交织误差(如,PackAbsError)的方法1000。如果没发现1002Sym不小于24,那么像素(如,被解压缩的像素)可简单地被设定为等于比特流的24比特Input[23~0],比特流的随后的24比特包括或者不包括V0或V1,这取决于实施例。
如果Sym被发现1002小于24,那么如果Sym被发现1006小于14,交织误差的尺寸S被设定为1008等于Sym–7且交织误差(如,PackAbsError)被设定为等于(1<<(S-1))+Input[S-2~0],其中Input[S-2~0]是比特流中V0和V1之后的S–1比特。
如果Sym被发现1006小于14且没发现1012小于4,那么尺寸S被设定为等于Sym/2且PackAbsError被设定1016为等于(1<<(S-1))+(Sym&1)+(Input[S-3~0]<<1),其中Input[S-3~0]是比特流中的V0和V1之后的S–2位。在步骤1010和1016中被添加到交织误差的Input[]比特包括与交织误差相关的任何最低有效位。如果Sym被发现1012小于4,那么PackAbsError被设定为等于Sym。
图11说明的是用于从交织误差(诸如,如根据方法900和方法1000恢复的PackAbsError)提取像素分量的方法1100。方法1100可包括对交织误差解交织以获得个别误差值,例如压缩过程中计算的AbsError[i]。例如,AbsError[i]的第j个比特的位置可被设定为等于位于PackAbsError的3*j+i的比特位置处的值。例如,在PackAbsError包括比特b15、b14、b13、b12、b11、b10、b9、b8、b7、b6、b5、b4、b3、b2、b1和b0时,那么AbsError[0]=b15、b12、b9、b6、b3、b0;AbsError[1]=b13、b10、b7、b4、b1;以及AbsError[2]=b14、b11、b8、b5、b2。
用于AbsError[i]值的符号可遵从编码交织误差的比特流中的比特。因而,可从比特流提取1104对于每个非零AbsError[i]符号位,如,以从AbsError[0]到AbsError[2]的顺序,且Error[i]的值可通过改变如符号位指示的符号,如,如果对应的符号位是1则取AbsError[i]的负值来获得。如上所述,某些像素可以以其原始形式进行编码。因而,没有符号位可以被编码或被应用到这些像素。
使用获得的Error[i]的值,反颜色变换(RCT)可以被执行1106以获得正在被解压缩的像素相对于预测像素的原始误差值。例如,OrgError[0]=Error[0];OrgError[1]=Error[1]+OrgError[0];以及OrgError[2]=Error[2]+OrgError[1]。然后,可以通过将误差值加到1108预测像素来获得像素(Current[i])的颜色值。例如,对于R、G和B的值,可以通过Current[i]=OrgError[i]+Predicted[i]来分别计算,其中i=1到3。
参见图12,所述整个瓦片可以随着瓦片数据被请求设备(诸如显示控制器202)取回而被“实时”解码。在某些实施例中,为了使被压缩的瓦片数据的比特流能够以每个时钟周期四个像素的速率进行解码,数据编码瓦片可以以这种方式进行排序。
以上参照图11所述的解码过程可以被表征为包括5个阶段:
阶段1:取得前2比特。如果这2比特为零,重复先前的像素颜色通道;
阶段2:如果需要,取得3比特,并与步骤1的2比特组合以得到Sym(将阶段1的结果作为Sym的MSB);
阶段3:根据Sym获得需要解码PackAbsError的LSB的数目;
阶段4:解交织PackAbsError、识别非零误差、得到非零误差的符号位;
阶段5:实施反颜色变换且将原始误差(OrgError[i])加到预测像素(Prediction[i])以获得当前像素的RGB分量值。
在阶段1-5中的每个阶段之后,后续阶段是否需要被处理且将在后续阶段中被处理的来自比特流的比特数是明显的。阶段5并不需要另外的来自比特流的比特。
通过将4个像素分为一组,对于64个像素瓦片将会有16组(组1到16)。对于每组像素,对应于阶段1-5的每个阶段的比特可以分为一组。因而,比特流可包括比特串Code0-0,Code0-1…Codei-0…Codei-j…Code16-5,其中Codei-j包括第i组的第j阶段的比特。如上所述,表示某些像素的比特可不包括阶段1-5的所有阶段的码。
在一些实施例中,对于瓦片的所有像素,对应于每个像素的阶段1-5的任意阶段的比特可以被分为一组。因而,方法1200可包括插入对于第一连续区段中的所有像素的哈夫曼编码的两比特1202,如编码的Sym的前两比特。因此,对于64像素瓦片在第一连续区段中将有2x63比特,这是因为初始像素未被压缩。
方法1200还可包括插入1204表示任何非零误差的符号的比特串的长度、不包括在它们原始形式中包含的像素。在所说明的实施例中,这些比特被插入在第一连续区段之后。符号位可有利地被插入在第一连续区段之后,因为其一般少于对应于阶段三的在符号位之前被应用的比特(多达9比特),符号位在阶段4中被应用。
方法1200可包括将初始像素(例如,瓦片中的第一像素)以其原始的、未被压缩的形式插入1206在第一连续区段和符号位串长度中的一个或二者之后。瓦片像素(而非初始像素)的剩余哈夫曼编码可以被分组为第二连续区段。剩余哈夫曼编码可包括不是被包括在第一连续区段中的最前面的两比特的经编码的Sym的任何比特。第二连续区段具有可变长度。然而,鉴于第二连续区段的长度可以使用第一区段来确定,第二连续区段的长度并不需要被包括。
方法1200可包括插入1210包括任何非零误差的符号位的位串。包括瓦片像素的任何LSB的编码的第三连续区段也可被插入1212。鉴于像素的LSB的数可以为零或非零值的可变数,第三连续区段的长度是可变的。第三连续区段的长度可以使用第一连续区段和第二连续区段来确定,因此,第三连续区段的长度并不需要被包括。第三连续区段的起始点可使用在步骤1204被插入的长度来确定。
不同的区段可在比特流或所存储的被压缩瓦片的表示中具有不同的顺序。在一个实施例中,被压缩的瓦片可按下列顺序被布置:第一连续区段、符号位串的长度、初始像素、第二连续区段、符号位串、和第三连续区段。
使用以这种方式布置的表示被压缩的像素的比特串,每个时钟周期四个像素的吞吐量可容易地实现。特别地,一旦第j组的第k个阶段被解码,就知道了对应于第j组的第(k+1)个阶段的每个阶段的比特的比特流中的起始点。同样,每个区段中的起始点对于第(j+1)组的第k个阶段是已知的。用这种方式,并行化解码瓦片像素是可行的且每个时钟周期四个像素的吞吐量可容易地实现。
可从图4-7中的压缩算法的详细描述中明显看出,每个像素将不一定包括对应于解压缩阶段1-5中的每个阶段的数据。例如,在被编码的Sym的前两比特编码像素的整个Sym时,第二连续区段可不包括该像素的比特。
如上所述,第三连续区段具有可变长度。在一些实施例中,如果第三连续区段具有奇数个比特,那么一个或多个符号位可被添加到第三连续区段,使得其具有偶数个比特或结束于字节边界、16比特边界、或其他某个边界。因而,例如,如果发现PackAbsError的尺寸是超过6的偶数或5(如,5、8、10、12、14、或16),那么阶段3中的比特可以被理解成包括一个符号位且该符号位不应该在符号比特串中重复(如,阶段4中的比特)。
如上所述,在交织误差很大时,像素的原始RGB数据可被包括在其原始形式中。在这种情况下,原始像素数据的16个最高有效位可被包括在像素的阶段3中(第三连续区段),且其余的8个LSB可被包括在阶段4中(如,与符号位一起)。包括在符号位串中的比特数可以通过估计从像素的第一连续区段中或从第一连续区段和第二连续区段两者中提取的Sym的值来提取。例如,在Sym指示像素已经包括在其原始形式中时,16个MSB可从第三连续区段得到,且其余的8个LSB可从符号位串(如阶段4的比特)检索到。鉴于阶段3具有完全可变的长度(从0到24*4)且阶段3的比特的起始点是可变的,上述方法有利地确保组中的每个像素起始于偶数偏移点。
如上所述,第三连续区段的尺寸可以使用来自第一连续区段和第二连续区段的数据来确定。在一些实施例中,阶段3的比特(LSB)的尺寸可以被编码。例如,对于当前像素,如果Error[0]和Error[1]是零,Error[2]的阶段3的比特的尺寸可以组合替代Error[0]和Error[1]的符号位。例如,不同像素的阶段3的尺寸,即,Sym值,如下列于表1中。
表1:Sym值对PackAbsError和阶段3的比特长度
Sym | PackAbsErrorSize | 阶段3的比特长度 |
0~7 | 0~3 | 0 |
8,9 | 4 | 2 |
10,11 | 5 | 4(其中被组合了一个符号位) |
12,13 | 6 | 4 |
14 | 7 | 6 |
15 | 8 | 8(其中被组合了一个符号位) |
16 | 9 | 8 |
17 | 10 | 10(其中被组合了一个符号位) |
18 | 11 | 10 |
19 | 12 | 12(其中被组合了一个符号位) |
20 | 13 | 12 |
21 | 14 | 14(其中被组合了一个符号位) |
22 | 15 | 14 |
23 | 16 | 16(其中被组合了一个符号位) |
24 | ≥17 | 16(原始数据的16比特MSB) |
参见图13,本文上述方法说明了包括RGB分量的像素的压缩和解压缩技术。图13说明的是用于压缩包括RGBα分量的像素的方法1300。
方法1300可包括插入1302哈夫曼编码的码元的两比特,比如,以与用于方法1200的相同的方式的这些比特的第一连续区段。同样地,瓦片像素的非零符号位的长度可以用与用于方法1200的相同的方式被插入1304。初始像素(其中的RGB值)也可以被插入1306。初始像素的α值也可以被插入1306。
其余像素的α值可以以组的形式被压缩,如4个像素的组。像素组的表示可包括三个阶段。如用于方法1200一样,每个阶段的比特可被分为一组,如,所有阶段1的比特在一个连续区段中,所有阶段2的比特在一个连续区段中,以及所有阶段3的比特在一个连续区段中。
像素组的阶段1可包括指示像素组的任何像素的误差是否为零的比特,其中像素误差是像素的α值与初始α值之间的差。例如,阶段1的比特等于0指示组中的所有像素的所有误差等于零。阶段1的比特等于1指示至少一个误差不等于零。
像素组的阶段2可包括指示每个像素的误差的尺寸的每个像素的三个比特。例如,误差可以是每个像素的0到7(b111)的值。如果像素的误差大于7,该像素的阶段2的比特可以被设定为等于7。
对于具有误差不是0和7的像素,阶段3的比特可包括符号位,该符号位指示误差的符号和误差的最低有效位(LSB)。对于具有等于0的误差的像素,在阶段3中不包括符号或LSB。对于具有大于7的误差的像素,阶段3将包括原始α值。
再参照图13,方法1300可包括插入1310阶段1的比特、插入1312阶段3的比特的长度、插入1314阶段2的比特、和插入1316阶段3的比特。如上所述,插入阶段的比特可包括插入瓦片中所有像素的该阶段的所有比特。鉴于阶段2的长度可以从阶段1的比特(如阶段2的9比特中的1比特)轻易地确定,在某些实施例中,阶段2的长度可被省略。
方法1300可还包括插入1318剩余的哈夫曼码(如,Sym的剩余比特),如,和用于方法1200一样的第二连续区段。方法1300还可包括插入1320非零交织误差的符号(诸如,符号位的串),和插入1322被编码的最低有效位(LSB),诸如以与用于方法1200一样的方式的第三连续区段。
如一个示例,比特流或所存储的根据方法1300的被压缩的瓦片的表示可以按以下顺序进行布置:第一连续区段、符号位串的长度、初始像素、初始α值、阶段1的α位、阶段3的α比特的长度、阶段2的α比特、和阶段3的α比特、第二连续区段、符号位串、和第三连续区段。
本发明可以以其他具体的形式进行实施,而不脱离其精神或基本特征。所述实施例在各个方面被认为仅仅是说明性的,而非限制性的。因此,本发明的范围由所附权利要求指示,而不是由前述描述指示。包含在权利要求的等同物的含义和范围内的所有变化都将包括在这些权利要求的范围内。
Claims (23)
1.一种用于数据压缩的方法,所述方法包括:
对多个像素中的每个像素,由电子设备执行:
计算所述每个像素的分量相对于预测像素的分量的误差;
交织所述误差以生成交织的误差;
生成至少对所述交织的误差的最高有效部分进行编码的第一码元;
如果所述第一码元没有对整个所述交织的误差进行编码,则生成对所述交织的误差的最低有效部分进行编码的第二码元;及
存储所述第一码元和任何第二码元,作为存储设备中与所述预测像素相关联的所述每个像素的表示。
2.根据权利要求1所述的方法,其中交织所述误差以生成交织的误差包括交织所述误差的绝对值。
3.根据权利要求2所述的方法,还包括,随所述第一码元一起存储不等于零的任何所述误差的符号位。
4.根据权利要求1所述的方法,其中生成所述交织的误差还包括交织所述误差的颜色变换。
5.根据权利要求1所述的方法,其中生成至少对所述交织的误差的最高有效部分进行编码的所述第一码元包括使用具有不超过25种情况的霍夫曼表执行霍夫曼编码。
6.根据权利要求1所述的方法,其中所述预测像素为在所述多个像素的所述每个像素之前的像素。
7.根据权利要求1所述的方法,其中,所述多个像素定义多个瓦片中的瓦片,所述多个瓦片定义帧。
8.根据权利要求1所述的方法,其中,所述多个像素中的像素的数量等于可操作地耦合到所述电子设备的图形系统部件的行缓冲器的大小。
9.根据权利要求1所述的方法,其中,存储所述第一码元和任何第二码元作为所述存储设备中与所述预测像素相关联的所述每个像素的表示还包括:
在包括所述多个像素中的所有像素的第一码元的第一区段中存储所述第一码元;及
在包括所述多个像素中的所有像素的任何第二码元的第二区段中存储任何第二码元。
10.根据权利要求9所述的方法,其中,交织所述误差以生成所述交织的误差包括交织所述误差的绝对值,所述方法还包括:
在第三区段中存储所述误差中的任何非零误差的符号位,所述第三区段包括所述多个像素中的所有像素的误差中的任何非零误差的符号位。
11.一种用于数据压缩的方法,所述方法包括:
对多个像素的至少一部分中的每个像素,由电子设备执行:
计算所述每个像素的分量相对于在前的像素的分量的误差;
交织所述误差的绝对值以生成交织的误差;
对所述交织的误差进行霍夫曼编码以生成第一码元部分和第二码元部分,所述第一码元部分和所述第二码元部分每一个都具有固定的长度并对所述交织的误差的至少一部分进行编码;
如果所述第一码元部分和所述第二码元部分没有对整个所述交织的误差进行编码,则生成对所述交织的误差的最低有效部分进行编码的第三码元部分;
流式传输所述第一码元部分和所述第二码元部分、任何第三码元部分、以及任何不等于零的误差的符号。
12.根据权利要求11所述的方法,其中,流式传输所述第一码元部分和所述第二码元部分、任何第三码元部分、以及任何不等于零的误差的符号还包括:
流式传输所述多个像素的所述第一码元部分作为第一连续区段;
流式传输所述多个像素的所述第二码元部分作为第二连续区段;
流式传输所述多个像素的任何第三码元部分作为第三连续区段;及
流式传输所述多个像素的符号作为第四连续区段。
13.根据权利要求12所述的方法,还包括将所述第三连续区段的长度插入在所述第一连续区段和所述第二连续区段之间。
14.根据权利要求12所述的方法,还包括将初始像素插入在所述第一连续区段和所述第二连续区段之间。
15.根据权利要求12所述的方法,其中所述第四连续区段被插入在所述第二连续区段和所述第三连续区段之间。
16.根据权利要求11所述的方法,其中,所述多个像素定义多个瓦片中的瓦片。
17.根据权利要求16所述的方法,其中,所述多个瓦片定义帧。
18.根据权利要求16所述的方法,其中,所述多个瓦片中的瓦片的大小等于图形处理系统的行缓冲器的大小。
19.根据权利要求15所述的方法,其中,流式传输所述第一码元部分和所述第二码元部分、任何第三码元部分、以及任何不等于零的误差的符号还包括:
响应于来自第二电子设备的请求,流式传输所述第一码元部分和所述第二码元部分、任何第三码元部分、以及任何不等于零的误差的符号到解码器,以及
将解码的像素发送到所述第二电子设备。
20.根据权利要求19所述的方法,其中所述第二电子设备是显示控制器。
21.根据权利要求11所述的方法,其中对所述交织的误差进行霍夫曼编码以生成所述第一码元部分和所述第二码元部分包括使用具有不超过25种情况的霍夫曼表对所述交织的误差进行霍夫曼编码。
22.根据权利要求11所述的方法,其中,流式传输所述第一码元部分和所述第二码元部分、任何第三码元部分、以及任何不等于零的误差的符号还包括:
流式传输所述多个像素的所述第一码元部分作为第一连续区段;
流式传输所述多个像素的所述第二码元部分作为第二连续区段;
获得包括任何第三码元部分的第三连续区段;
如果所述第三连续区段的长度为奇数,则将所述第三连续区段中的一位移动到所述第二连续区段;及
流式传输所述多个像素的符号作为第四连续区段。
23.一种用于数据压缩的方法,所述方法包括:
对多个像素的至少一部分中的每个像素,由电子设备执行:
计算所述每个像素的分量相对于在前的像素的分量的误差;
交织所述误差的绝对值以生成交织的误差;
如果所述交织的误差低于阈值,则
对所述交织的误差进行霍夫曼编码,以生成第一码元部分和第二码元部分,并且所述第一码元部分和所述第二码元部分每一个都具有固定的长度并对所述交织的误差的至少一部分进行编码;
如果所述第一码元部分和所述第二码元部分没有对整个所述交织的误差进行编码,则生成对所述交织的误差的最低有效部分进行编码的第三码元部分;以及
流式传输所述第一码元部分和所述第二码元部分、任何第三码元部分、以及任何不等于零的误差的符号;
如果所述交织的误差等于或高于所述阈值,则流式传输所述每个像素的原始表示。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/856,389 US20140300628A1 (en) | 2013-04-03 | 2013-04-03 | Tile-based compression and decompression for graphic applications |
US13/856,389 | 2013-04-03 | ||
US13/919,691 | 2013-06-17 | ||
US13/919,691 US9460525B2 (en) | 2013-04-03 | 2013-06-17 | Tile-based compression and decompression for graphic applications |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104104953A true CN104104953A (zh) | 2014-10-15 |
CN104104953B CN104104953B (zh) | 2019-04-30 |
Family
ID=50442368
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410134059.XA Active CN104104953B (zh) | 2013-04-03 | 2014-04-03 | 用于图形应用的基于瓦片的压缩与解压缩 |
CN201410134285.8A Pending CN104104954A (zh) | 2013-04-03 | 2014-04-03 | 用于图形应用的基于瓦片的压缩与解压缩 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410134285.8A Pending CN104104954A (zh) | 2013-04-03 | 2014-04-03 | 用于图形应用的基于瓦片的压缩与解压缩 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9460525B2 (zh) |
EP (2) | EP2787738B1 (zh) |
KR (1) | KR102194615B1 (zh) |
CN (2) | CN104104953B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111225259A (zh) * | 2020-01-19 | 2020-06-02 | 重庆众鸿科技有限公司 | 一种车载互联视频显示加速装置 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150049105A1 (en) * | 2013-08-13 | 2015-02-19 | Mediatek Inc. | Data processing apparatus for transmitting/receiving indication information of pixel data grouping setting via display interface and related data processing method |
KR102124714B1 (ko) * | 2015-09-03 | 2020-06-19 | 미디어텍 인크. | 비디오 코딩에서의 신경망 기반 프로세싱의 방법 및 장치 |
GB2570879B (en) * | 2018-02-06 | 2022-08-17 | Advanced Risc Mach Ltd | Encoding data arrays |
CN111724295B (zh) * | 2019-03-18 | 2024-05-14 | 芯原微电子(成都)有限公司 | 一种外部存储器的协同访问方法及系统、协同访问架构 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1457551A (zh) * | 2001-03-05 | 2003-11-19 | 皇家菲利浦电子有限公司 | 压缩信号的设备和方法 |
US7039241B1 (en) * | 2000-08-11 | 2006-05-02 | Ati Technologies, Inc. | Method and apparatus for compression and decompression of color data |
US7342590B1 (en) * | 2003-05-09 | 2008-03-11 | Nvidia Corporation | Screen compression |
US20090080788A1 (en) * | 2003-04-17 | 2009-03-26 | Droplet Technology, Inc. | Multiple Technique Entropy Coding System And Method |
US20120200575A1 (en) * | 2011-02-04 | 2012-08-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Pixel block compression and decompression |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7570819B2 (en) * | 2005-01-28 | 2009-08-04 | Chih-Ta Star Sung | Method and apparatus for displaying images with compression mechanism |
-
2013
- 2013-06-17 US US13/919,691 patent/US9460525B2/en active Active
-
2014
- 2014-04-03 KR KR1020140040116A patent/KR102194615B1/ko active IP Right Grant
- 2014-04-03 CN CN201410134059.XA patent/CN104104953B/zh active Active
- 2014-04-03 EP EP14163416.2A patent/EP2787738B1/en active Active
- 2014-04-03 CN CN201410134285.8A patent/CN104104954A/zh active Pending
- 2014-04-03 EP EP14163414.7A patent/EP2787647A1/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7039241B1 (en) * | 2000-08-11 | 2006-05-02 | Ati Technologies, Inc. | Method and apparatus for compression and decompression of color data |
CN1457551A (zh) * | 2001-03-05 | 2003-11-19 | 皇家菲利浦电子有限公司 | 压缩信号的设备和方法 |
US20090080788A1 (en) * | 2003-04-17 | 2009-03-26 | Droplet Technology, Inc. | Multiple Technique Entropy Coding System And Method |
US7342590B1 (en) * | 2003-05-09 | 2008-03-11 | Nvidia Corporation | Screen compression |
US20120200575A1 (en) * | 2011-02-04 | 2012-08-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Pixel block compression and decompression |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111225259A (zh) * | 2020-01-19 | 2020-06-02 | 重庆众鸿科技有限公司 | 一种车载互联视频显示加速装置 |
Also Published As
Publication number | Publication date |
---|---|
KR102194615B1 (ko) | 2020-12-24 |
KR20140121356A (ko) | 2014-10-15 |
EP2787738B1 (en) | 2020-03-25 |
EP2787738A1 (en) | 2014-10-08 |
US9460525B2 (en) | 2016-10-04 |
EP2787647A1 (en) | 2014-10-08 |
CN104104954A (zh) | 2014-10-15 |
CN104104953B (zh) | 2019-04-30 |
US20140301641A1 (en) | 2014-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113079379A (zh) | 一种视频压缩方法、装置、设备及计算机可读存储介质 | |
CN104104953B (zh) | 用于图形应用的基于瓦片的压缩与解压缩 | |
US10440360B2 (en) | Video processing system | |
CN104704825B (zh) | 分段图像数据的无损压缩 | |
TWI514853B (zh) | 由量化控制改良解碼器效能的方法與系統 | |
CN109889846B (zh) | 一种Demura表数据的压缩与解压方法、装置及编解码系统 | |
EA032859B1 (ru) | Многоуровневое декодирование сигнала и восстановление сигнала | |
JP2014039257A (ja) | デコーダおよび復号方法 | |
CN103986934B (zh) | 具有对压缩帧缓冲区的随机访问的视频处理器及其方法 | |
CN113873252B (zh) | 图像处理方法及装置、电子设备和存储介质 | |
KR102152346B1 (ko) | 이미지 파일의 블록 간 차이를 통한 압축율 향상 방법 및 시스템 | |
US20220014767A1 (en) | Bit plane encoding of data arrays | |
CN103581684A (zh) | 压缩编码和解码方法及装置 | |
JP2005065168A (ja) | 画像圧縮装置及び画像圧縮方法 | |
CN112449191B (zh) | 压缩多个图像的方法、解压缩图像的方法和装置 | |
JP2011234363A (ja) | 画像処理システム及び方法 | |
KR102185668B1 (ko) | 이미지 파일의 픽셀 변환을 통한 압축율 향상 방법 및 시스템 | |
CN103262123B (zh) | 图块编码和解码 | |
CN107172425B (zh) | 缩略图生成方法、装置及终端设备 | |
CN112181221A (zh) | 图像处理方法及装置、计算机可读介质及电子设备 | |
CN116132759B (zh) | 一种音视频流同步传输方法、装置、电子设备及存储介质 | |
CN106664387A (zh) | 用于4k和8k应用的多级视频压缩、解压缩和显示 | |
US20140300628A1 (en) | Tile-based compression and decompression for graphic applications | |
CN103179392A (zh) | 图像处理设备以及图像处理方法 | |
TWI497446B (zh) | 圖片錯誤隱藏系統及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: HALIM THENY Inventor after: LEFAN ZHONG Inventor after: Zhang Huiming Inventor before: HALIM THENY Inventor before: LEFAN ZHONG Inventor before: Zhang Huiming |
|
GR01 | Patent grant | ||
GR01 | Patent grant |