CN1231066C - 串长编码数字图像 - Google Patents

串长编码数字图像 Download PDF

Info

Publication number
CN1231066C
CN1231066C CNB2003101172971A CN200310117297A CN1231066C CN 1231066 C CN1231066 C CN 1231066C CN B2003101172971 A CNB2003101172971 A CN B2003101172971A CN 200310117297 A CN200310117297 A CN 200310117297A CN 1231066 C CN1231066 C CN 1231066C
Authority
CN
China
Prior art keywords
pixel
symbol
error vector
quantification
display controller
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
CNB2003101172971A
Other languages
English (en)
Other versions
CN1512782A (zh
Inventor
迈克尔·K·德怀尔
托马斯·A·皮亚扎
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1512782A publication Critical patent/CN1512782A/zh
Application granted granted Critical
Publication of CN1231066C publication Critical patent/CN1231066C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Image Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)

Abstract

本发明描述了以无损或有损方式压缩和/或解压数字图像的方法和装置。在一些实施例中,显示控制器可量化数字图像的象素并可识别多串相等的连续量化象素。显示控制器可生成符号来代表识别出的一串象素。所述符号可包括可用来重构该串象素的串长和量化象素。所述符号还可包括串中每个象素的误差向量,所述误差向量还可被用来重构象素串。

Description

串长编码数字图像
技术领域
本发明涉及数字图像的压缩和/或解压。
背景技术
计算设备一般包括显示控制器,用于渲染数字图像并将所渲染的数字图像显示在如计算机监视器或平板显示器的显示设备上。显示控制器可渲染数字图像并将所渲染的数字图像存储在帧缓冲器中。帧缓冲器可位于共享***存储器或专用视频存储器中。当到了要显示所渲染的数字图像的时间时,显示控制器可从帧缓冲器检索数字图像,并可产生一个信号以在显示设备上显示检索到的数字图像。存储数字图像和从帧缓冲器检索数字图像的过程可消耗大量的存储器带宽。如果帧缓冲器位于共享***存储器中,由于显示控制器显著地减少其它任务的可用存储器带宽,将极大地降低计算设备的性能。另外,如果帧缓冲器位于专用视频存储器中,为了提供足够的存储器带宽,视频存储器子***可能要用昂贵的存储技术来实现。
发明内容
本发明的目的是提供用于处理数字图像的新方法和新装置,以节约存储器带宽,提高***性能。
根据本发明的第一方面,提供了一种数字图像处理方法,该方法包括:量化第一象素和第二象素来获得量化第一象素和量化第二象素;以及如果所述量化第一象素和所述量化第二象素具有预定的关系则增大和所述第一象素相关联的串长。
根据本发明的第二方面,提供了一种数字图像处理方法,该方法包括:从代表一个或多个象素的符号中获得串长和量化象素;以及根据所述串长和所述量化象素构造所述一个或多个象素。
根据本发明的第三方面,提供了一种显示控制器,其包括压缩器,用于量化第一象素和第二象素来获得量化第一象素和量化第二象素,如果所述量化第一象素和所述量化第二象素具有预定的关系则更新串长,以及用所述串长和所述量化第一象素来生成代表所述第一象素和所述第二象素的符号;所述显示控制器还包括存储器接口,用于将所述符号传送到帧缓冲器。
根据本发明的第四方面,提供了一种计算设备,其包括包含帧缓冲器的***存储器,还包括集成显示控制器,用于从所述帧缓冲器获得符号,从所述符号获得串长和量化象素,并根据所述串长和所述量化象素构造一个或多个象素。
本发明所公开的基于串长编码的数字图像压缩及解压的方法和装置与现有技术相比,可以节约存储器资源,提高***性能。
附图说明
在附图中通过示例而非限制来图示所描述的本发明。为了图示的简单和清楚,图中所图示的元素并不一定按比例画出。例如,为了清楚,可能相对于其它元素夸张了一些元素的尺寸。另外,在认为合适的地方,标号在图中被重复使用以表示相应或相似的元素。
图1图示了具有含集成显示控制器的芯片组的计算设备的实施例;
图2图示了数字图像的一个示例实施例;
图3图示了具有和芯片组分离的显示控制器的计算设备的实施例;
图4图示了一种图1和图3的显示控制器可用来压缩数字图像单元的方法;
图5图示了一种图1和图3的显示控制器可用来解压数字图像单元的方法。
具体实施方式
下面的说明描述了用于压缩和解压数字图像单元的技术。在以下说明中,给出了大量的具体细节,如逻辑实现、操作码、指定操作数的方法、资源分配/共享/复制的实现、***元件的类型和相互关系以及逻辑划分/集成的选择,以便于更充分地理解本发明。但是应认识到,没有这些具体细节,本领域的技术人员也可以实施本发明。在另外一些例子里,没有详细示出控制结构、门级电路和完整的软件指令序列,以免使本发明难以理解。本领域的一般技术人员用所包括的说明将能够实现合适的功能,而不必进行不必要的实验。
本说明书中对“一个实施例”、“实施例”和“一个示例实施例”等等的引用表示所描述的实施例可包括某个特定特征、结构或特性,但并非每个实施例都必须包括该特定特征、结构或特性。而且,这种短语并不一定指同一个实施例。另外,如果关于一个实施例描述了某个特定特征、结构或特性,则无论是否明确描述过,也认为实现与其它实施例相关的该特定特征、结构或特性是在本领域的技术人员知识范围之内的。
计算设备100的一个示例实施例如图1听示。计算设备100可包括一个或多个经由处理器总线106耦合到芯片组104的处理器102。芯片组104可包括一个或多个集成电路封装或芯片,以将处理器102耦合到***存储器108、固件110和/或其它设备112(例如鼠标、键盘、磁盘驱动器、扫描仪和照相机等等)。固件110可包括基本输入/输出***例行程序(BIOS),该例行程序可被处理器102在***启动期间执行,以初始化计算设备100的元件并开始执行操作***。
在一个实施例中,芯片组104可包括存储器控制器114。但是,在其它实施例中,处理器102可包括存储器控制器114的全部或一部分。存储器控制器114可为集成显示控制器116和计算设备100的其它元件提供访问***存储器108的接口。芯片组104还可支持如下列I/O(输入/输出)总线上的I/O操作,例如***部件互连(PCI)总线、PCI-Express总线、加速图形端口(AGP)总线、通用串行总线(USB)总线、低引脚数(LPC)总线或任何其它I/O总线(未示出)。
芯片组104还可包括集成显示控制器116,用来在例如计算机监视器、平板显示器或电视的显示设备118上显示数字图像。集成显示控制器116可包括计算机接口120,用来从计算设备100接收或获得命令和/或数据。计算机接口120可和存储器控制器114相互作用以从***存储器108检索图形命令。此外,计算机接口120可提供一个或多个例如AGP端口、PCI端口或PCI-Express端口的视频端口,经由这些视频端口,计算机接口120可从处理器102接收数据和/或命令。集成显示控制器116还可包括存储器接口122,用来从视频存储器124获得象素(pel)、区域(zore)、帧和块(tile)等等。如所描述的,***存储器108和视频存储器124可共享或被实施为同一物理存储设备。在这样一个实施例中,部分存储设备被静态或动态地分配给***存储器108或视频存储器124。相应地,集成显示控制器116的存储器接口122可和芯片组104的存储器控制器114相互作用,以将象素、区域、帧和块等等向视频存储器124读取或写入。
集成显示控制器116的渲染引擎126可执行图形命令以产生用于显示的数字图像。如图2所示,数字图像可包括一个或多个矩形的非重叠区域(图2中的Z)。另外,每个区域可包括一条或多条线的图象元素(picture element)或象素(图2中的P),并且每个象素可定义在数字图像的某一特定点处数字图像的视觉外观(例如颜色、阴影、色调和透明度等等)。例如,象素可包括依照例如RGB格式、YUV格式、RGBA格式或其它格式的某一特定视频格式来定义外观的一个或多个通道。在RGB格式中,每个象素包括一个红色(R)通道、一个绿色(G)通道和一个蓝色(B)通道。类似地,在RGBA格式中,每个象素包括一个红色(R)通道、一个绿色(G)通道、一个蓝色(B)通道和表示透明程度的阿尔法(A)通道。例如,集成显示控制器116可通过给每个象素赋一个8位(bit)的红色通道、一个8位的绿色通道和一个8位的蓝色通道来实现24位的颜色。在YUV格式中,每个象素可包括一个亮度(Y)通道、一个第一色度(U)通道和一个第二色度(V)通道。类似地,集成显示控制器116可通过给每个象素的每个YUV通道赋一个8位的值来实现24位的YUV颜色。但是,集成显示控制器116可选择更精确地表示亮度(Y)通道。相应地,集成显示控制器116可通过给每个象素赋一个12位的亮度(Y)通道、一个6位的第一色度(U)通道和一个6位的第二色度(V)通道来实现24位的颜色。一个以YUV格式编码的数字图像还可使用如4:1:1格式的空间精简色度格式。在该4:1:1格式中,一个宏象素(macro-pel)可包括四个亮度(Y)通道、一个第一色度(U)通道和一个第二色度(V)通道,这些通道确定部分所述宏象素的视觉外观。
渲染引擎126可执行由指令/数据单元128从***存储器108检索到的图形命令,并可更新存储在集成显示控制器116的区域高速缓存130中的一个或多个区域。在渲染数字图像的一个或多个区域之后,渲染引擎126可使所渲染的区域被清除出高速缓存130并被写入帧缓冲器132。帧缓冲器压缩器/解压器(编码译码器)134可压缩所清除的区域并将所压缩的区域提供给存储器接口122以存储在帧缓冲器132中。显示引擎136可随后从帧缓冲器132检索所渲染的数字图像以在合适的时间显示该数字图像。具体而言,显示引擎136可从帧缓冲器132检索所压缩的区域,并且编码译码器134可解压检索到的区域。显示引擎136可将数字图像的解压区域与例如覆盖(overlay)、硬件光标等等的其它视频源混和,并可将合成的视频信号提供给显示接口138。显示接口138可将从显示引擎136接收到的数字视频信号转换为适于显示设备118的模拟或数字信号。
现在参考图3,图示了计算设备100的另一个实施例。如图3所示,计算设备100可包括和芯片组104分开的非集成显示控制器140。和集成显示控制器116相似,非集成显示控制器140可包括计算机接口120、存储器接口122、渲染引擎126、指令/数据单元128、区域高速缓存130、编码译码器134、显示引擎136和显示接口138。另外,非集成显示控制器140可包括板载视频存储器124。非集成显示控制器140可以以类似于图1的集成显示控制器116的方式操作。但是,非集成显示控制器140的计算机接口120可包括AGP端口、PCI端口、PCI-Express端口或其它设备接口,用来与芯片组104的相应的图形接口142传送命令和/或数据,图形接口142也可包括AGP端口、PCI端口、PCI-Express端口或其它设备接口。而且,非集成显示控制器140的存储器接口122可直接访问视频存储器124,从而使得非集成显示控制器140能够向视频存储器124以及从视频存储器124传送象素、区域、块和帧等等,而不必消耗存储器控制器114和***存储器108的大量带宽。
现在参考图4,描述了一种方法,可由编码译码器134用来在传送到帧缓冲器132之前压缩区域线(zone line)、区域、帧线(frame line)、帧场(frame field)、帧或其它数字图像单元的象素。一般地,所述方法对一个数字图像单元产生一个或多个符号,其中每个符号代表一串一个或多个象素。在块200中,编码译码器134可获得包含一个或多个通道的一个当前象素并设置串长为一初始值(例如0)。在块202中,编码译码器134可量化当前象素以获得包含一个或多个量化通道的量化当前象素。每个量化通道可包括每个通道的一个或多个最高有效位(MSB)并可丢弃每个通道的一个或多个最低有效位(LSB)。例如,编码译码器134可在18位的量化水平上量化一个24位的RGB象素(例如10010101-11111001-01110001)以获得一个包含三个6位的量化通道的量化当前象素(例如100101-111110-011100),这三个量化通道保留了每个通道的六个MSB并丢弃了每个通道的两个LSB。编码译码器134可利用多种不同技术来获得量化当前象素。在一个实施例中,编码译码器134可通过将通道和掩码进行按位与,和/或通过对当前象素的通道进行合适的移位操作,来获得量化当前象素。而且,编码译码器134可在不同水平上量化一个象素的每个通道。例如,编码译码器134对一个24位的YUV象素可保留Y通道的7个MSB、U通道的6个MSB以及V通道的5个MSB:
在块204中,编码译码器134可确定是否已经开始了一个新的象素串和相应的新的符号。在一个实施例中,编码译码器134可响应于确定串长和初始值(例如0)有预定的关系(例如相等),而确定已经开始了一个新串。响应于确定已经开始了一个新串,编码译码器134可进行到块210。否则,编码译码器134在块208中可设置量化串象素等于量化当前象素。
在块210中,编码译码器134可确定对当前象素是使用无损还是有损压缩。在一个实施例中,编码译码器134可根据芯片组104或显示控制器116、140的一个或多个配置寄存器(未示出)的状态来确定是使用无损还是有损压缩。在另一个实施例中,编码译码器134可根据计算设备100的负载来确定是使用无损还是有损压缩。例如,响应于计算设备100的存储***、处理器和/或其它子***的负载升高到超过一个临界水平,编码译码器134可确定使用有损压缩甚至增加损失的水平。具体而言,编码译码器134可响应于确定到***存储器108的可用存储器带宽已降到低于某一水平,而确定增大损失。之后编码译码器134可响应于确定可用存储器带宽已升高到高于某一水平,而减小损失或使用无损压缩。
响应于确定使用无损压缩,编码译码器134在块212中可产生一个包含当前象素每个通道的无损通道误差的无损误差向量。具体而言,每个无损通道误差可包括在块202中从量化通道丢弃的一个或多个LSB。例如,编码译码器134可产生一个6位的无损误差向量(例如[01-01-00]),该无损误差向量对当前象素的每个通道都包括一个2位的无损通道误差。具体而言,每个无损通道误差可包括在块202的象素量化期间从相应通道丢弃的2个LSB。编码译码器134可利用多种不同技术来获得无损误差向量。在一个实施例中,编码译码器134可通过将通道和块202中所使用的掩码进行按位与,和/或通过对当前象素的通道进行合适的移位操作,来获得无损误差向量。
响应于确定使用有损压缩,编码译码器134在块214中可产生一个包含当前象素的每个通道的有损通道误差的有损误差向量。具体而言,每个有损通道误差可包括在当前象素的量化期间丢弃的位的子集。如上所述,所述压缩的损失可根据计算设备100所受的负载来调整。例如,可通过减少用来定义有损误差向量的丢弃位子集中的位数来增加损失。类似地,可通过增大用来定义有损误差向量的丢弃位子集中的位数来减小损失。例如,响应于将子集定义为一位,编码译码器134可生成一个3位的有损误差向量(例如0-0-0),其对当前象素的每个通道都包括一个1位的有损通道误差。具体而言,每个有损通道误差可包括在块202中从当前的24位RGB象素的每个通道丢弃的2个LSB中的MSB。此外,编码译码器134可利用多种不同技术来获得有损误差向量。在一个实施例中,编码译码器134可通过将通道和块202中所用掩码的取反进行按位与,和/或通过对当前象素的通道进行合适的移位操作,来获得有损误差向量。而且,在一个实施例中,有损误差向量可不包括位,以进一步增加压缩的损失。
在块215中,编码译码器134可确定量化当前象素和量化串象素是否有预定关系(例如相等)。如果量化象素有预定关系,则编码译码器134可进行到块217。否则,编码译码器134在块216中可向输出缓冲器输出一个代表一个或多个象素的符号,可更新串长以表示新的象素串,可为下一个符号清除误差向量缓冲器,并可设置量化串象素等于量化当前象素。在一个实施例中,由编码译码器134生成的符号可包括串长(例如0011)、量化当前象素(例如100101-111110-011100)和存储在误差向量缓冲器中的串的象素的误差向量(例如[01-01-00][00-11-01][11-11-10])。在另一个实施例中,所述符号还可包括表示该串使用了无损压缩或某一水平的有损压缩的压缩模式(例如一个1位的值)。所述符号一般比这些一位或多位的原始象素表示包含更少的位。但是,在一个实施例中,所述符号比原始表示实际上包含更多的位。例如,在一个实施例中,表示或编码单个24位的RGB象素的符号可包括一个4位的串长、一个18位的量化象素和一个6位的无损误差向量,总共28位。但是,表示或编码两个24位的RGB象素的符号可包括一个4位的串长、一个18位的量化象素和一个12位的无损误差向量,总共34位。
编码译码器134在块217中可将所获得的无损或有损误差向量存储到误差向量缓冲器中。在块218中,编码译码器134可更新与当前象素和当前串相关的串长以表示将另一个象素加入了符号。在一个实施例中,编码译码器134可通过将串长加一来更新串长。编码译码器134在块220中可确定是否结束当前串。在一个实施例中,编码译码器134可响应于确定当前象素是区域线、区域、帧线、帧场、帧或被编码的数字图像单元的某一部分的最后一个象素,而结束当前串。在另一个实施例中,编码译码器134还可根据编码译码器134的限制来确定结束当前串。例如,编码译码器134可将由符号所代表的象素串限制为一个数,这个数使得编码译码器134的用来存储串长和/或误差向量的寄存器、缓冲器等等不会溢出。
响应于在块220中确定结束当前串,编码译码器134在块222中可向输出缓冲器输出一个代表一个或多个象素的符号,可更新串长以表示一个新串,并可为下一个符号清除误差向量缓冲器。在块222中输出符号或在块220中决定不结束串之后,编码译码器134在块223中可确定是否数字图像的所有象素已被编码。如果所有象素已被编码,则数字图像单元的编码完成了,编码译码器134可退出。否则,编码译码器134在块224中可设置当前象素等于数字图像单元的下一象素。随后编码译码器134可返回块202以量化和编码当前象素。
现在参考图5,描述了一种方法,可由编码译码器134用来从获得自帧缓冲器132的多个符号来重构区域线、区域、帧线、帧场、帧或其它数字图像单元。一般地,所述方法可用来从代表数字图像象素的一个或多个符号重构数字图像。编码译码器134在块300中可获得从帧缓冲器132检索到的压缩数字图像的一个符号。在块302中,编码译码器134可从所述符号获得串长。编码译码器134在块304中可从所述符号中获得一个量化象素(例如[100101-111110-011100])。在块306中,编码译码器134可根据串长来确定所述符号的解压是否完成了。在一个实施例中,编码译码器134可响应于串长和停止值(例如0)有预定的关系(例如大于)而确定解压未完成。
响应于确定解压完成了,编码译码器134在块307中可确定是否数字图像单元的所有符号都已被解码。如果数字图像单元的所有符号都已被解码,则数字图像单元的解码完成了,编码译码器134可退出。否则,编码译码器134可返回块300以得到数字图像单元的下一符号。
响应于确定解压未完成,编码译码器134在块308中可确定是进行有损还是无损解压。在一个实施例中,编码译码器134可根据芯片组104、集成显示控制器116、和/或非集成显示控制器140的一个或多个寄存器来确定是进行无损还是有损解压。在另一个实施例中,编码译码器134可根据从所述符号所获得的压缩模式来确定是进行无损解压还是某个水平的无损解压。响应于确定将使用无损解压,编码译码器134在块310中可从所述符号获得下一个无损误差向量(例如[01-01-00])。
响应于确定将使用有损解压,编码译码器134在块312中可从所述符号获得下一个有损误差向量(例如[0-0-0])。编码译码器134在块314中可替换有损误差向量的丢弃位以获得重构的误差向量。在一个实施例中,编码译码器134可对有损误差向量(例如[0-0-0])的每个有损通道误差添加预定的值(例如0)以获得重构的误差向量(例如[00-00-00])。在另一个实施例中,编码译码器134可对有损误差向量(例如[0-0-0])的每个通道误差添加当前的抖动值(例如10)以获得重构的误差向量(例如[010-010-010])。在另一个实施例中,编码译码器134可用抖动值替换有损误差向量的丢弃位以获得重构的误差向量。例如,编码译码器134可将抖动值0更新为抖动值1和将抖动值1更新为抖动值0,并可用更新后的抖动值来替换丢弃位。对丢弃多于单个位的实施例,编码译码器134可通过在两个中心值之间切换来更新抖动值。具体而言,编码译码器134可通过在01和10之间切换来抖动两位,可通过在011和100之间切换来抖动三位,并可通过在0111和1000之间切换来抖动四位。
在块316中,编码译码器134可从所获得的量化象素和所获得的误差向量(例如无损向量或重构误差向量)来生成象素并将重构的象素存储到输出缓冲器中。在一个实施例中,编码译码器134可将误差向量的每个通道误差添加到量化象素的每个量化通道中。编码译码器134可使用很多不同的技术来将通道误差添加到量化通道中。具体而言,编码译码器134可将量化通道合适地移位,并可将移位后的量化通道和通道误差进行按位或。
编码译码器134可在块318中更新串长以表示所述符号的象素已被重构。在一个实施例中,编码译码器134可通过将串长减一来更新串长。编码译码器134随后可回到块306来确定所述符号的解压是否完成。如果完成了,则编码译码器134可回到300来获得从帧缓冲器132检索到的压缩数字图像的下一个符号。
计算设备100可响应于执行机器可读介质的指令来进行图4和图5示例方法中的全部或子集,所述机器可读介质例如只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备和/或电、光、声或其它形式的传播信号,例如载波、红外信号、数字信号和模拟信号。另外,虽然图4和图5的示冽方法图示为操作序列,但在一些实施例中计算设备100可并行或以不同顺序来进行所述方法的各种图示操作。
在以下表1到7示出了一个无损压缩/解压的例子和一个有损压缩/解压的例子。具体而言,表1示出了一条具有四个24位RGB象素的区域线,表2示出了在被使用每个通道6位量化到18位的量化水平之后的所述四个24位RGB象素。由表可见,编码译码器可简单地通过每个通道去掉2个LSB来生成18位的量化象素。
                表1:四个24位RGB象素的区域线
    位置     R通道     G通道     B通道
    0     10010101     11111001     01110000
    1     10010100     11111011     01110001
    2     10010111     11111011     01110010
    3     10000000     11111011     01110001
            表2:区域线的18位量化象素
    位置     R通道     G通道     B通道
    0     100101     111110     011100
    1     100101     111110     011100
    2     100101     111110     011100
    3     100000     111110     011100
表3还示出了表2的18位量化象素的无损误差向量。从表3可见,编码译码器可简单地通过保留在象素量化期间从每个通道去掉的2个LSB来生成6位的无损误差向量。现在参考表4,示出了表2的18位量化象素的有损误差向量。编码译码器可简单地通过保留在象素量化期间从每个通道所去掉的MSB来生成3位的有损误差向量。
       表3:18位量化象素的无损误差向量
  位置   R通道误差   G通道误差   B通道误差
  0   01   01   00
  1   00   11   01
  2   11   11   10
  3   00   11   01
       表4:18位量化象素的有损误差向量
  位置   R通道误差   G通道误差   B通道误差
  0   0   0   0
  1   0   1   0
  2   1   1   1
  3   0   1   0
现在参考表5,示出了对表1的四个24位RGB象素的无损编码。如所描述的,无损编码包括将表1的象素0、1和2编码的符号0,和将表1的象素3编码的符号1。符号0包括一个表示所述符号代表三个象素的4位串长。而且,符号0包括一个等于表2的18位量化象素0、1和2的18位量化象素。此外,符号0包括如表3所示的对象素0、1和2的三个6位无损误差向量。类似地,符号1包括一个表示符号1代表单个象素的串长、象素3的18位量化象素以及象素3的无损误差向量。表5表示这两个符号仅用68位就代表了96位的象素数据,由此提供了对象素0、1、2和3的一种压缩表示。之后编码译码器可将每个符号的无损误差向量添加到每个符号的量化象素而解压符号并获得表1的四个象素。
                              表5:区域线的无损符号
  符号   串长   量化象素   无损误差向量   未编码位   编码位
  0   0011   100101-111110-011100   [01-01-00][00-11-01][11-11-10]   72   40
  1   0001   100000-111110-011100   [00-11-01]   24   28
现在参考表6,示出了对表1的四个24位RGB象素的有损编码。如所描述的,有损编码包括将表1的象素0、1和2编码的符号0,和将表1的象素3编码的符号1。符号0包括一个表示符号0代表三个象素的4位串长。而且,符号0包括一个等于表2的18位量化象素0、1和2的18位量化象素。此外,符号0对每个象素0、1和2包括表4的3位有损误差向量。类似地,符号1包括一个表示符号1代表单个象素的串长,表2中的象素3的18位量化象素,以及表4中的象素3的有损误差向量。表6还表示这两个符号仅用56位就代表了96位的象素数据,由此提供了对象素0、1、2和3的一种压缩表示。
                              表6:区域线的有损符号
  符号   串长   量化象素   有损误差向量   未编码位   编码位
  0   0011   100101-111110-011100   [0-0-0][0-1-0][1-1-1]   72   31
  1   0001   100000-111110-011100   [0-1-0]   24   25
之后编码译码器可向表6的有损误差向量添加一位而获得重构误差向量,还可将重构误差向量添加到表6的每个符号的量化象素而解压符号并获得四个24位象素。表7示出了可从表6的有损符号获得的一组可能的四个24位象素。具体而言,通过将象素0的每个通道的最后一位状态设为0并对每个象素切换通道的最后一位状态,就得到表7的四个象素。从对表7的重构象素和表1的原始象素的比较可见,每个通道的LSB有时正确有时不正确,但一般而言,重构通道即使不等于也非常接近于原始通道。在大多数情况下,用户不能辨别出原始数字图像和从有损符号重构的数字图像之间的不同。
              表7:从有损符号重构的区域线(w/抖动)
  位置   R通道   G通道   B通道
  0   10010100   11111000   01110000
  1   10010101   11111011   01110001
  2   10010110   11111010   01110010
  3   10000001   11111011   01110001
虽然已经参照示例实施例对本发明的某些特征进行了描述,但并不意于在限定的意义上理解说明书。对本发明所属领域的技术人员很清楚的是,对于所述示例实施例的各种修改以及本发明的其它实施例,都被认为包含在本发明的精神和范围之内。

Claims (28)

1.一种数字图像处理方法,包括:
量化第一象素和第二象素来获得量化第一象素和量化第二象素;和
如果所述量化第一象素和所述量化第二象素具有预定的关系,则增大和所述第一象素相关联的串长。
2.如权利要求1所述的方法,还包括生成一个包括所述量化第一象素和所述串长的符号来代表所述第一象素和所述第二象素。
3.如权利要求1所述的方法,其中所述量化包括:
丢弃所述第一象素的一个或多个最低有效位;和
丢弃所述第二象素的一个或多个最低有效位。
4.如权利要求3所述的方法,还包括:
生成包括从所述第一象素丢弃的所述一个或多个最低有效位的第一误差向量;
生成包括从所述第二象素丢弃的所述一个或多个最低有效位的第二误差向量;
生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
5.如权利要求3所述的方法,还包括:
生成第一误差向量,该第一误差向量包括从所述第一象素丢弃的所述一个或多个最低有效位的子集;
生成第二误差向量,该第二误差向量包括从所述第二象素丢弃的所述一个或多个最低有效位的子集;以及
生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
6.如权利要求1所述的方法,其中所述第一象素包括多个第一通道,所述第二象素包括多个第二通道,并且所述量化包括:
从所述多个第一通道丢弃一个或多个最低有效位;和
从所述多个第二通道丢弃一个或多个最低有效位。
7.如权利要求6所述的方法,还包括:
生成包括从所述多个第一通道丢弃的所述一个或多个最低有效位的第一误差向量;
生成包括从所述多个第二通道丢弃的所述一个或多个最低有效位的第二误差向量;
生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
8.如权利要求6所述的方法,还包括:
生成第一误差向量,该第一误差向量包括从所述多个第一通道丢弃的所述一个或多个最低有效位的子集;
生成第二误差向量,该第二误差向量包括从所述多个第二通道丢弃的所述一个或多个最低有效位的子集;
生成代表所述第一象素和所述第二象素的符号,所述符号包括所述量化第一象素、所述串长、所述第一误差向量和所述第二误差向量。
9.如权利要求6所述的方法,其中根据计算设备的负载来调整包括在所述子集中的位数。
10.一种数字图像处理方法,包括:
从代表一个或多个象素的符号中获得串长和量化象素;和
根据所述串长和所述量化象素构造所述一个或多个象素。
11.如权利要求10所述的方法,还包括:
从所述符号获得一个或多个误差向量,所述一个或多个误差向量对应于所述符号的所述一个或多个象素;并且
还根据所述一个或多个误差向量来构造所述一个或多个象素。
12.如权利要求10所述的方法,还包括:
从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素;并且
还根据所述一个或多个有损误差向量和所述一个或多个象素的丢失位的预定值来构造所述一个或多个象素。
13.如权利要求10所述的方法,还包括:
从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素;
还根据所述一个或多个有损误差向量来构造所述一个或多个象素;和
抖动所述一个或多个象素的丢失位。
14.一种显示控制器,包括:
压缩器,用于量化第一象素和第二象素来获得量化第一象素和量化第二象素,如果所述量化第一象素和所述量化第二象素具有预定的关系则更新串长,以及用所述串长和所述量化第一象素来生成代表所述第一象素和所述第二象素的符号;和
存储器接口,用于将所述符号传送到帧缓冲器。
15.如权利要求14所述的显示控制器,还包括视频存储器,所述视频存储器包括所述帧缓冲器。
16.如权利要求14所述的显示控制器,其中所述压缩器从所述第一象素的多个第一通道丢弃一个或多个最低有效位,并从所述第二象素的多个第二通道丢弃一个或多个最低有效位。
17.如权利要求16所述的显示控制器,其中所述压缩器生成包括从所述多个第一通道丢弃的所述一个或多个最低有效位的第一误差向量,生成包括从所述多个第二通道丢弃的所述一个或多个最低有效位的第二误差向量,并经由所述第一误差向量和所述第二误差向量生成进一步代表所述第一象素和所述第二象素的所述符号。
18.如权利要求17所述的显示控制器,其中所述存储器接口还从所述帧缓冲器获得所述符号,所述显示控制器还包括:
解压器,用于从获得自所述帧缓冲器的所述符号来获得所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量,并根据来自所述符号的所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量来构造所述第一象素和所述第二象素。
19.如权利要求16所述的显示控制器,其中所述压缩器生成第一误差向量,该第一误差向量包括从所述多个第一通道丢弃的所述一个或多个最低有效位的子集;所述压缩器生成第二误差向量,该第二误差向量包括从所述多个第二通道丢弃的所述一个或多个最低有效位的子集;以及所述压缩器经由所述第一误差向量和所述第二误差向量,生成进一步代表所述第一象素和所述第二象素的所述符号。
20.如权利要求19所述的显示控制器,其中所述存储器接口还从所述帧缓冲器获得所述符号,所述显示控制器还包括:
解压器,用于从获得自所述帧缓冲器的所述符号来获得所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量,并根据来自所述符号的所述串长、所述量化第一象素、所述第一误差向量和所述第二误差向量来构造所述第一象素和所述第二象素。
21.如权利要求20所述的显示控制器,其中所述解压器还使用预定值来作为所述第一象素和所述第二象素的丢失位。
22.如权利要求20所述的显示控制器,其中所述解压器还抖动所述第一象素和所述第二象素的丢失位。
23.如权利要求19所述的显示控制器,其中根据计算设备的负载来调整包括在所述子集中的位数。
24.如权利要求19所述的显示控制器,其中所述存储器接口还从所述帧缓冲器获得所述符号,所述显示控制器还包括:
解压器,用于从获得自所述帧缓冲器的所述符号来获得所述串长,从所述符号获得所述量化第一象素,并根据所述串长和所述量化第一象素来构造来自所述符号的所述第一象素和所述第二象素。
25.一种计算设备,包括:
***存储器,其中包含帧缓冲器;和
集成显示控制器,用于从所述帧缓冲器获得符号,从所述符号获得串长和量化象素,并根据所述串长和所述量化象素构造一个或多个象素。
26.如权利要求25所述的计算设备,其中所述集成显示控制器从所述符号获得一个或多个误差向量,所述一个或多个误差向量对应于所述符号的所述一个或多个象素,并且还根据所述一个或多个误差向量来构造所述一个或多个象素。
27.如权利要求25所述的计算设备,其中所述集成显示控制器从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素,并且还根据所述一个或多个有损误差向量和用于所述一个或多个象素的丢失位的预定值来构造所述一个或多个象素。
28.如权利要求25所述的计算设备,其中所述集成显示控制器从所述符号获得一个或多个有损误差向量,所述一个或多个有损误差向量对应于所述符号的所述一个或多个象素,并且还根据所述一个或多个有损误差向量和丢失位的抖动来构造所述一个或多个象素。
CNB2003101172971A 2002-12-30 2003-12-10 串长编码数字图像 Expired - Fee Related CN1231066C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/335,377 US7532765B2 (en) 2002-12-30 2002-12-30 Run length encoded digital image
US10/335,377 2002-12-30

Publications (2)

Publication Number Publication Date
CN1512782A CN1512782A (zh) 2004-07-14
CN1231066C true CN1231066C (zh) 2005-12-07

Family

ID=32655336

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003101172971A Expired - Fee Related CN1231066C (zh) 2002-12-30 2003-12-10 串长编码数字图像

Country Status (9)

Country Link
US (1) US7532765B2 (zh)
EP (1) EP1579389B1 (zh)
KR (1) KR100803402B1 (zh)
CN (1) CN1231066C (zh)
AT (1) ATE389219T1 (zh)
AU (1) AU2003287730A1 (zh)
DE (1) DE60319742T2 (zh)
TW (1) TWI240215B (zh)
WO (1) WO2004061773A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4500213B2 (ja) * 2005-05-20 2010-07-14 オリンパスイメージング株式会社 データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム
US8243340B2 (en) * 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US8369642B2 (en) * 2006-11-21 2013-02-05 Stmicroelectronics (Research & Development) Ltd Artifact removal from phase encoded images
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US11310033B2 (en) * 2019-06-05 2022-04-19 Blackberry Limited System and method for operating pseudorandom generators

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903317A (en) * 1986-06-24 1990-02-20 Kabushiki Kaisha Toshiba Image processing apparatus
US4888795A (en) * 1987-06-30 1989-12-19 Nec Corporation Videotelephone apparatus for transmitting high and low resolution video signals over telephone exchange lines
CA1326898C (en) * 1988-04-27 1994-02-08 John Music Method and system for decompressing color video encoded data
US5253078A (en) * 1990-03-14 1993-10-12 C-Cube Microsystems, Inc. System for compression and decompression of video data using discrete cosine transform and coding techniques
US5576835A (en) * 1992-02-24 1996-11-19 Dirr; Josef Method for run-length coding for shortening transmission time
US5318173A (en) * 1992-05-29 1994-06-07 Simco/Ramic Corporation Hole sorting system and method
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
EP0662770B1 (en) * 1993-06-30 2003-05-14 Sony Corporation Apparatus and method for coding/decoding subtitles data
US5450130A (en) * 1994-03-30 1995-09-12 Radius Inc. Method and system for cell based image data compression
US5764374A (en) * 1996-02-05 1998-06-09 Hewlett-Packard Company System and method for lossless image compression having improved sequential determination of golomb parameter
US5818877A (en) * 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
US6728775B1 (en) * 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
GB9919805D0 (en) * 1999-08-21 1999-10-27 Univ Manchester Video cording
US6760479B1 (en) * 1999-10-22 2004-07-06 Research Foundation Of The City University Of New York Super predictive-transform coding
US6959116B2 (en) * 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US7088398B1 (en) * 2001-12-24 2006-08-08 Silicon Image, Inc. Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US6982722B1 (en) * 2002-08-27 2006-01-03 Nvidia Corporation System for programmable dithering of video data
US7116718B2 (en) * 2002-09-11 2006-10-03 Njr Corporation Unified memory address generation system and method for fetching and storing MPEG video data
US6707397B1 (en) * 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation

Also Published As

Publication number Publication date
EP1579389A1 (en) 2005-09-28
US7532765B2 (en) 2009-05-12
CN1512782A (zh) 2004-07-14
US20040126031A1 (en) 2004-07-01
KR100803402B1 (ko) 2008-02-13
DE60319742D1 (de) 2008-04-24
ATE389219T1 (de) 2008-03-15
AU2003287730A1 (en) 2004-07-29
KR20050084472A (ko) 2005-08-26
TW200421203A (en) 2004-10-16
TWI240215B (en) 2005-09-21
WO2004061773A1 (en) 2004-07-22
DE60319742T2 (de) 2009-04-30
EP1579389B1 (en) 2008-03-12

Similar Documents

Publication Publication Date Title
CN1224267C (zh) 最高有效位匹配数字图像压缩
US7873212B2 (en) Compression of images for computer graphics
US6885319B2 (en) System and method for generating optimally compressed data from a plurality of data compression/decompression engines implementing different data compression algorithms
US6819271B2 (en) Parallel compression and decompression system and method having multiple parallel compression and decompression engines
US7129862B1 (en) Decoding bit streams encoded according to variable length codes
US7907069B2 (en) Fast compression method for scientific data
US8194977B2 (en) Remote desktop protocol compression acceleration using single instruction, multiple dispatch instructions
US20220014767A1 (en) Bit plane encoding of data arrays
US20080075173A1 (en) Systems and Methods for Context Adaptive Video Data Preparation
AU2011203169C1 (en) Compression of high bit-depth images
CN1231066C (zh) 串长编码数字图像
CN114222129A (zh) 图像压缩编码方法、装置、计算机设备和存储介质
US10897635B2 (en) Memory compression systems and methods
JP4061104B2 (ja) コンテキストモデルによるラン・スキップカウントに基づくメモリアクセス及びスキッピング
US11263786B2 (en) Decoding data arrays
CN114584777A (zh) 数据压缩和打包
CN1692626A (zh) 图像编码设备及其方法,编码图像解码设备及其方法
US10523970B2 (en) Keyframe-based video codec designed for GPU decoding
WO2022250397A1 (en) Methods and apparatus for processing of high-resolution video content
TW202345595A (zh) 圖像編解碼的方法、裝置及存儲介質
CN117939171A (zh) 基于argb无损压缩的vlsi实现方法

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

Granted publication date: 20051207

Termination date: 20171210

CF01 Termination of patent right due to non-payment of annual fee