CN103841424B - 随机存取存储器中压缩数据的系统及方法 - Google Patents

随机存取存储器中压缩数据的系统及方法 Download PDF

Info

Publication number
CN103841424B
CN103841424B CN201310562165.3A CN201310562165A CN103841424B CN 103841424 B CN103841424 B CN 103841424B CN 201310562165 A CN201310562165 A CN 201310562165A CN 103841424 B CN103841424 B CN 103841424B
Authority
CN
China
Prior art keywords
compressed data
storage
fragment
data fragment
series
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
CN201310562165.3A
Other languages
English (en)
Other versions
CN103841424A (zh
Inventor
杜宣明
C.S.科夫曼
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.)
Omnivision Technologies Inc
Original Assignee
Omnivision Technologies Inc
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 Omnivision Technologies Inc filed Critical Omnivision Technologies Inc
Publication of CN103841424A publication Critical patent/CN103841424A/zh
Application granted granted Critical
Publication of CN103841424B publication Critical patent/CN103841424B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements

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)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

一种促进随机存取存储于存储器中压缩数据片段的方法,包括以下步骤:接收一系列数据片段;将该系列数据片段编码成一系列可变片段大小的压缩数据片段;在存储器中存储该系列压缩数据片段;以及为每一个压缩数据片段产生定位符。每一个定位符指示在存储器中一关联压缩数据片段的位置。一种随机存取压缩数据片段的方法,包括:接收对于压缩数据片段的请求;检索与被请求的片段相关联的定位符;使用被检索的定位符以在存储器中定位被请求的片段;以及从存储器中检索被请求的片段。因此,可对压缩数据片段以不同于被编码的次序进行解码。也公开可实现该方法的系统。

Description

随机存取存储器中压缩数据的系统及方法
技术领域
本发明通常涉及一种用于压缩和解压缩数据的编解码器系统,尤其是一种可促进压缩数据片段进行独立解码的编解码器系统,使其解码的次序可不依那些压缩数据片段被编码的次序。
背景技术
近年来对媒体的需求,如视频和图像等,特别是高分辨率(High Definition,HD)媒体急遽增加。可惜的是,原始的高分辨率媒体包含非常大数量的数据,使得存储该原始数据变困难。举例来说,存储一原始高分辨率视频数据的帧需要一个很大的帧缓冲器。当高分辨率装置的开发者们面临降低装置大小及成本的压力时,这会变成一种问题。
编解码器在媒体装置中被用于增加数据的压缩。在一编解码器中,编码器接收原始媒体数据,将之编码成压缩数据并能被存储在存储器中以供后续检索。当该压缩数据从存储器中被检索时会被送往解码器,该解码器解码压缩数据并输出解码完的媒体数据以便回放。
然而,编解码器带来本身的问题。举例来说,流行的图像编解码器,如联合图像专家组(JPEG)编解码器等,将数据相依性带入此压缩数据。因此,此定义一图像的压缩数据必须以被编码的次序的相同次序被解码,即以一种先进先出(first-in-first-out)的方式。这会有一种影响:若需解码及存取欲解码图像的一部分时,要先解码在此部分以前先被编码的压缩数据。编解码器也有缺点,因其需要详细配置信息,如一帧标头,用以存储压缩数据并在编码器和解码器间转移。然而,传输和存储该配置信息是一种缺点,因为会增加需要存储该压缩数据的存储器总量以及在媒体装置内需要被通信的数据总量。
因此,需要一种系统及方法可促进独立和选择式存取压缩数据片段。也需要一种系统及方法,促进对压缩数据片段以不同于压缩数据片段被编码的次序做解码。也需要一种用于压缩数据的系统及方法,在该压缩数据内不会造成数据相依性。也需要一种系统及方法,消除在编码器和解码器间转移配置信息的需求。
发明内容
本发明克服与先前技术相关的问题,藉由提供一种系统及方法来促进随机存取存储在存储器中的压缩数据片段。本发明在多个压缩数据片段间不带入数据相依性以促进数据片段的压缩。本发明也促进产生定位符,用以指示在存储器中关联压缩数据片段的位置。因此,多个压缩数据片段中任一个能以任何次序从存储器中被检索和解码,且不请求其它压缩数据片段也被解码。
根据本发明的一种方法可促进存储在存储器中压缩数据片段的随机存取。该方法包括以下步骤:接收一系列数据片段;将该系列数据片段编码成一系列具有可变片段大小的压缩数据片段;在一压缩数据存储器中存储该系列压缩数据片段,可选地,未使用标头信息;以及为压缩数据片段中的每一个压缩数据片段产生一定位符。每个定位符指示在该压缩数据存储器中的一关联压缩数据片段的位置。特定方法也能包括以下步骤:确定在该系列压缩数据片段中的每一个压缩数据片段的大小,及/或在一定位符存储器中存储该定位符以供后续检索。
根据一种特定方法,该定位符包括一存储地址,在该压缩数据存储器中识别一存储位置,该压缩数据存储器存储该关联压缩数据片段的至少一部分;以及一偏移,在该被识别的存储位置内,识别该关联压缩数据片段的第一位的位置。在一种更特定的方法中,通过计算存储在一关联压缩数据片段之前的多个压缩数据片段中的每一个压缩数据片段的大小总和,产生该关联压缩数据片段的定位符;将该总和除以等于该压缩数据存储器的宽度的值以得到一商数和一余数;转换该商数成该定位符的存储地址;以及设定该定位符的偏移等于该余数。根据另一种特定方法,该定位符可为一存储器指示器。
根据一种特定的方法,该系列数据片段包括一系列图像数据块用于定义一图像,而该压缩数据存储器为一帧缓冲器。根据上述方法,该编码该等数据片段的步骤包括在每一个图像数据块上执行一离散余弦变换(Discrete Cosine Transform,DCT)以产生一系列DCT系数绝对值的块,其是不参考任何其它的DCT系数块而产生的DCT系数。对每一个DCT系数块,该编码步骤可包括以下步骤:量化该DCT系数块以产生一量化系数块;将该量化系数块经锯齿型编码成一序列量化系数;将该序列量化系数经游程长度编码以产生游程长度编码(run-length-encoded,RLE)数据;以及将该RLE数据熵编码以产生该系列压缩数据片段中的一个压缩数据片段。可选地,在量化及熵编码的步骤中被使用的量化数据和熵数据在图像间不改变。
也公开一种随机存取压缩数据存储器中压缩数据片段的方法。依据本发明实施例的一种方法包括以下步骤:接收用于一压缩数据片段的一请求;检索与该被请求的压缩数据片段相关联的一定位符;使用该检索的定位符以定位在该系列压缩数据片段内的被请求的压缩数据片段,该系列压缩数据片段存储在该压缩数据存储器中;以及检索该被请求的压缩数据片段。根据本发明实施例一特定方法,进一步包括以下步骤:检索与第二压缩数据片段相关联的第二定位符,该第二压缩数据片段在该被请求的压缩数据片段后存储在该压缩数据存储器中;以及使用该第二定位符以定位该被请求的压缩数据片段的末端。
根据本发明实施例另一个特定方法,包括解码该压缩数据的步骤。因此,本发明能使一压缩数据片段以与该系列压缩数据片段的剩余部分无关的次序被检索及解码。在一图像的情况下,对该压缩数据片段解码的步骤可包括以下步骤:对被请求的压缩数据片段熵解码以产生RLE数据;将该RLE数据经游程长度解码以产生多个量化系数;在多个量化系数上执行一逆锯齿型处理以产生一量化系数块;将该量化系数块去量化以产生一DCT系数的绝对值块;以及不参考其余任何DCT系数块,在该DCT系数的绝对值块上执行一逆DCT处理,以产生一解码后图像数据块。根据本发明实施例一更特定的方法,可不对与该系列压缩数据片段相关联的一标头做语法分析,即执行该解码步骤。
本发明同时公开一种非过渡、电子可读式的存储媒体,其具有代码可使一电子装置执行上述本发明的方法。此「非过渡」用语系在将存储媒体与过渡性电子信号做区别。然而,可覆写的存储器可意指为「非过渡」的。
本发明也描述一种促进随机存取在压缩数据存储器中存储的压缩数据片段的系统。根据一实施例,该系统包括:一数据输入,被耦合以接收一系列数据片段;一编码器,经操作以编码该系列数据片段成具有可变片段大小的一系列压缩数据片段;一压缩数据存储器,被耦合以接收和存储该系列压缩数据片段;以及一定位符产生器,经操作以产生用于该系列压缩数据片段中的每一个压缩数据片段的一定位符,而该定位符是指示在该系列中一关联压缩数据片段的位置。
本发明中编码器的特定实施例经实现可执行以上描述的任何特定编码方法,特别是关于绝对值DCT、量化、锯齿形、游程长度、和熵编码处理,用于将图像数据块编码成压缩数据片段。本发明的定位符产生的特定实施例也能根据上述方法来实现以产生定位符,特别是关于确定该压缩数据片段的大小及使用该大小以产生该定位符。此外,任何用于定位符的上述描述方式也能在本发明的特定实施例中来实现。
也公开一种随机存取存储器中压缩数据片段的系统。根据一实施例,该系统包括一数据请求输入,经操作以接收用于选自存储在压缩数据存储器中的一系列可变大小的压缩数据片段的至少一压缩数据片段的一请求。该实施例也包括一控制器,其经操作以检索与该被请求的压缩数据片段相关联的一定位符;使用该被检索的定位符以在该压缩数据存储器中定位该被请求的压缩数据片段;以及从存储器中检索该被请求的压缩数据片段。在一更特定的实施例中,该控制器也能检索与第二压缩数据片段相关联的第二定位符,该第二压缩数据片段存储在该压缩数据存储器中,且接着使用该第二定位符以定位该被请求的压缩数据片段的末端。
该系统也可包括一解码器,其经操作以解码该被请求的压缩数据片段。在特定实施例中,该解码器可使用逆熵、逆游程长度、逆锯齿形、逆量化、和逆DCT处理,以解码该压缩数据片段。在另一特定实施例中,该解码器可不对一压缩数据标头语法分析解码该被请求的压缩数据片段。
本发明也公开一种用于在存储器中定位一关联压缩数据片段的定位符的数据结构。该数据结构能被存储在一非过渡、电子可读式的存储媒体。在特定实施例中,该数据结构包括第一字段,该第一字段存储定义一存储地址的数据,该存储地址在存储器中识别一存储位置,且该关联压缩数据片段的至少一部分被存储在该存储器中。该数据结构也包括第二字段,该第二字段存储定义一偏移的数据,而该偏移指示在该存储位置内的一位位置,而该关联压缩数据片段起始于该位位置。在一更特定的实施例中,该数据结构进一步包括第三字段,该第三字段存储从其它多个压缩数据片段中单一地识别该关联压缩数据片段的数据。
附图说明
本发明参考以下图式加以描述,其中同样的参考标记大致表示相同的组件:
图1为根据本发明一实施例包括编码器和解码器(编解码器)系统的主机装置的方块图;
图2为说明根据本发明的图像如何被分割成多个数据片段的示意图;
图3为根据本发明一实施例更详细地显示图1中的编码器的示意图;
图4为显示根据本发明图3的DCT单元在图像数据块上执行DCT的示意图;
图5为根据本发明一实施例进一步显示图3的熵与定位符单元(ELU)的方块图;
图6为根据本发明一实施例显示定位符的数据结构的示意图;
图7为根据本发明一实施例显示图1的定位符缓冲器存储多个定位符的示意图;
图8为根据本发明一实施例显示图1的压缩数据存储器存储一系列与图7的定位符相关联的压缩数据片段的示意图;
图9为根据本发明一实施例进一步显示图1的随机存取控制器的方块图;
图10为根据本发明一实施例进一步显示图1的解码器的方块图;
图11为根据本发明一实施例显示实现在软件中本发明的编解码器系统的计算机系统方块图;
图12为根据本发明总结了促进随机存取在存储器中存储的压缩数据片段的方法的流程图;
图13为根据本发明总结了执行图12中方法的第二步骤(编码该系列数据片段)的特定方法的流程图;
图14为根据本发明总结了执行图12中方法的第四步骤(产生定位符)的特定方法的流程图;以及
图15为根据本发明总结了随机存取存储器中压缩数据片段的方法的流程图。
具体实施方式
本发明通过提供促进随机存取在存储器中存储的压缩数据片段的系统及方法,克服了与先前技术相关的问题。在以下描述中,呈现多种特定细节,如产生定位符的特定程序和组件、数据的修整方法等,以供完全理解本发明。然而,熟知本发明所属技术领域者可辨识出本发明能以除了该特定细节外的方法执行。在其它例子中,为了不必要地模糊本发明,众所周知的数据压缩方法的细节(如特定的编码及解码技术、程序最佳化)和组件已被省略。
图1为根据本发明一实施例包括编码器和解码器(编解码器)系统102的主机装置100的方块图。编解码器系统102,在其它优点中,可促进随机存取存储在压缩数据存储器104中的压缩数据片段。编解码器系统102包括:编码器106,该编码器106包括定位符产生器108;解码器110;定位符缓冲器112;以及随机存取控制器(RAC)114。未压缩数据经由数据输入116提供给编解码器系统102,而解码数据经由解码数据输出118从编解码器系统102提供。从压缩数据存储器104随机存取压缩数据片段的数据请求经由数据请求输入120从主机装置100提供。
主机装置100代表任何具有以下功效的系统或装置,包括编码(压缩)数据、解码(解压缩)数据、及或随机地检索及解码存储在压缩数据存储器104中的压缩数据片段。在本实施例中,主机装置100为一图像处理器,而编解码器系统102促进随机存取在压缩数据存储器104中存储的图像压缩片段(如视频的压缩帧)。主机装置100可以例如以集成电路、软件等、及或任何组合来实现。
编解码器系统102的组件操作如下。编码器106经由数据输入116收到一系列未压缩数据片段,将该系列数据片段编码成一系列压缩数据片段,并且经由数据路径124提供该系列压缩数据片段给压缩数据存储器104。编码器106提供用于编码独立于任何其它压缩数据片段的每个数据片段的装置,以下将更详细地描述。在一实施例中,编码器106类似于联合图像专家群(Joint Photographic Experts Group,JPEG)编码器,但不受到JPEG压缩标准或其相关文件格式,例如JIF、Exif、JFIF等的限制。
编码器106包括定位符产生器108,该定位符产生器108可为该系列中的每一个压缩数据片段产生定位符。每一个定位符优先地指出在压缩数据存储器104中存储关联压缩数据片段的位置。定位符产生器108经由数据路径126,存储用于定位符缓冲器112中每一个该系列压缩数据片段的定位符。因此,定位符产生器108和所产生的定位符是用于在压缩数据存储器中定位压缩数据片段的装置。定位符产生器108在图1中显示为结合在编码器106之内,然而,定位符产生器108可选择性地被设置在编码器106之外。
压缩数据存储器104经由数据路径124从编码器106接收该系列压缩数据片段,并于其中存储每一个压缩数据片段。解码器110经由数据路径128可直接从压缩数据存储器104中读取压缩数据片段,如:当解压缩整体图像时。此外,RAC 114能经由数据路径130以任何次序从压缩数据存储器104中读取压缩数据片段,如:当只解压缩图像的部分时,并且经由数据路径134把该压缩数据片段提供给解码器110。
在本发明实施例中,压缩数据存储器104为帧缓冲器,适于在多个存储位置中连续地存储一系列与图像(如视频的帧)有关联的压缩数据片段。压缩数据存储器104可在主机装置100内实现,或选择性地为在主机装置100之外的存储器。如另一例所示,压缩数据存储器104可为专属于编解码器102的存储器。
定位符缓冲器112经由数据路径126从编码器106接收及存储定位符。每一个定位符被存储在定位符缓冲器112中使其与相对应的压缩数据片段相关联。定位符缓冲器112当被RAC 114请求时经由数据路径132也提供定位符给RAC 114。即使定位符缓冲器112显示为在编解码器102内的存储器,定位符缓冲器112应被理解为在主机装置100中的任一处或甚至在主机装置100之外。
RAC 114利用在定位符缓冲器112中的定位符从压缩数据存储器104中检索一个或多个压缩数据片段,并以在数据请求输入120上接收的数据请求所指示之任意次序,提供那些压缩数据片段给解码器110。尤其,RAC 114从主机装置100经由数据请求输入120接收数据片段的请求。RAC 114经由数据路径132为被请求的数据片段检索定位符,然后经由数据路径130从压缩数据存储器104中读取被请求的压缩数据片段。则RAC 114经由数据路径134提供一个或多个被请求的压缩数据片段给解码器110以供解码。如上所述,主机装置100能以任何期望的序列请求数据片段,且RAC 114将从压缩数据存储器104中读取相对应的压缩数据片段,并根据该序列的次序解码。
解码器110分别经由数据路径128和134从压缩数据存储器104和RAC 114中接收压缩数据片段,并解码那些压缩数据片段。当解码器110被主机装置100请求时,经由解码数据输出118提供解码的数据片段至主机装置100供进一步使用。如以下将进一步描述,在一实施例中,解码器110类似于JPEG解码器,但不限于JPEG压缩标准及其相关的文件格式。
图1也显示主机装置102包括定时与控制单元136,该定时与控制单元136经由定时与控制路径138提供定时与其它控制信号,如时序脉冲、使能信号、重设信号等,给编解码器系统102的组件及压缩数据存储器104。通过定时与控制单元136所提供的定时与其它控制信号,使能编解码器系统102和压缩数据存储器104以执行它们预期的功能,并在适当的时间点和以适当的次序通过编解码器系统102及压缩数据存储器104移除数据。
定时与控制单元136及定时与控制路径138仅代表性例示。本领域具有通常知识者会了解定时与控制单元136及定时与控制路径138可以不同方法实现,如:用于定时信号和控制信号的个别单元和总线、用于主机装置100和编解码器系统102的个别单元等。此外,定时与控制组件也能在编解码器系统102中被实现。
图2为显示图像200(如视频的帧)如何被分割成多个数据片段202(1)-202(n)的方块图。如204所示,每一个数据片段202(1)-202(n)包括图像200的8乘8个块的像素206的图像数据。因此,假设图像200有1280乘720个像素,其可被切割成160乘90,即14400个块的图像数据,且每一个块202(1)-202(14400)定义了总数一致的像素数据。
在本发明中,主机装置100负责分割每一个图像200成数据片段202(1)-202(n)的数组,以下被称为块202(1)-202(n),并将块202(1)-202(n)一系列地提供至编解码器系统102的数据输入116。主机装置100也以主机装置100所知的预定序列,把该系列块202(1)-202(n)提供给编解码器系统102以及编解码器系统102的组件。在本实施例中,主机装置100提供块202(1)-202(n),在该数组的最上方左端以块202(1)为序列的开头,然后在数组中一列一列地往下移动,结束于该数组最底部的右端的块202(n)。因此,如图2显示的数组,此序列为块202(1,1)、202(2,1)、…202(i,1),202(1,2)、202(2,2)、…202(i,2),…202(1,j)、202(2,j)…,而结束于202(i,j)。
在本发明实施例中,主机装置100也可格式化每一个图像200成与编解码器系统102兼容。举例而言,主机装置100可将一图像从一个色空间,如红、绿、蓝(R、G、B)等,转换成另一个色空间如YCbCr等。此外,主机装置100也能将一个图像分离成其色空间成分,如Y、Cb、Cr等,使得每一个组成图像产生多重图像200。在此例中,每一个图像200只包含该组成图像的色空间成分的数据。主机装置100可利用这些和其它块制作技术。
在本实施例中,当主机装置100在提供图像数据给编码器106之前负责块制作,可理解的是编码器106也会制作该系列块202(1)-202(n)以供编码。
根据本发明一实施例,图3为进一步显示图1的编码器106的方块图。编码器106包括DCT单元302、量化单元304、锯齿型单元306、游程长度编码器308、和ELU单元310。
根据以上所讨论的预定序列,编码器106从主机装置100在编码器输入路径312上依序地接收一系列未压缩的(原始)图像数据块202(1)-202(n)。编码器106如下接收及编码在系列中的每一个块202(1)-202(n)。
DCT单元302接收图像数据的每一个块202(1)-202(n),并在块202上执行绝对值DCT,使图像数据块202可因此被转换成在频域中的8乘8个块的64个DCT系数。如以下将进一步描述,执行DCT使在块中的所有DCT系数为绝对值。因为在DCT系数的每一个块中的所有DCT系数是绝对值,不会在编码器106所产生该系列压缩数据片段中,带入块与块之间的数据相依性。因此,DCT单元302也可被视为绝对值DCT单元302,其会在图像数据的每一个块202上执行绝对值DCT。DCT单元302经由数据路径314提供每一个产生的块的DCT系数给量化单元304。
量化单元304接收每一个块的DCT系数的绝对值,并用默认量化数据316量化该块的DCT系数而产生8乘8个块的量化系数。在本实施例中,默认量化数据316为一个默认量化表,但能替代地包括用于量化所有DCT系数的默认量化值。量化单元304通过将每一个DCT系数除以在该默认量化表316中的相对应的量化值,量化该DCT系数块,并将商数舍入至最接近的整数。
应注意地是默认量化数据316能被存储在编码器106之内部或外部。举例来说,默认量化数据316能被存储在编码器106之外、但可被量化单元304存取的存储器中。默认量化数据316能替代地被定义在编码器106的集成电路中。
使用默认量化数据316对多重图像200量化该DCT系数块可提供重要的优点。首先,因为默认量化数据316不必改变,不必在标头中提供量化数据给解码器110以配置逆量化程序。更确切地,当编码器106支配多重图像/帧时,可将解码器110程序化为使用相同的默认量化数据。此外,因为不需要有标头将量化数据传送至解码器110,所以不必在压缩数据存储器104的压缩数据中存储该标头,却将之删除,如此可促进数据压缩和减少传送数据的次数。
在量化后,量化单元304经由数据路径318提供每一个量化系数块给锯齿形单元306。锯齿形单元306从量化单元304接收每一个量化系数块并在该块上执行锯齿形操作。该锯齿形操作通过沿该块的对角线锯齿形,将该量化系数块排列成线性序列,此操作为该领域之熟知技术。对每一个量化系数块而言,锯齿形单元306经由数据路径320将线性序列的量化系数输出至游程长度编码器308。
游程长度编码器308从锯齿形单元306接收与块202相关联的线性序列的量化系数,并将该线性序列编码成与该块相关联的游程长度编码(RLE)数据。游程长度编码是一种众所周知的数据压缩的形式,其一连串有相同数值(如零)的数据被当作一个计数值存储。用于游程长度编码的特定方法将与图像数据块202相关联的多个量化系数存储成数值对,每一个数值对具有定义一连串零的第一数值和指示下一个非零量化系数的第二数值。此方法也包括使用块的终止(end-of-block,EOB)码以指示与块202相关联的所有剩余量化系数具有零值。一旦产生RLE数据,就经由数据路径322提供到ELU 310。
ELU 310接收与块202相关联的RLE数据并将之熵编码成熵编码数据(entropy-encoded data,EED),因此定义与图像数据块202相关联的压缩数据片段。在熵编码的过程中,使用较短码对常发生的RLE数据编码,并使用较长码对不常发生的RLE数据编码。在此领域中,已知熵编码的其中一个型式为霍夫曼编码(Huffman encoding)。被用来编码RLE数据的熵码被存储成可被ELU 310使用的默认熵数据324,即默认熵检查表。一旦完成熵编码,ELU 310会经由编码器输出路径328和数据路径124,提供与图像数据块202相关联的压缩数据片段至压缩数据存储器104。
如同默认量化数据316,只要熵编码器310能对之存取,默认熵数据324能存储在编码器106的外部。此外,默认熵数据324提供如同默认量化数据316的优点。尤其,因为默认熵数据324不必在块202(1)-202(n)或在多重图像200之间改变,所以不必在附有压缩数据的标头中提供熵数据(如熵表)至解码器110,以配置其逆熵过程。更确切地,如同编码器106将程序化解码器110,以使用相同的默认熵数据324。又,由于不须在压缩数据存储器104中存储包含熵数据的标头信息,因此改进了数据的压缩并节省数据的传送次数。
ELU 310除了是熵编码器外,也提供定位符产生器108的功能(参见图1)。ELU 310为与块202(1)-202(n)相关联的每一个压缩数据片段产生定位符,以指示压缩数据片段存储在压缩数据存储器104中的位置。因为编码器106的编码过程产出一系列压缩数据片段,其中每一个压缩数据片段具有可变的片段大小,ELU 310产生的定位符有利地促进定位及从压缩数据存储器104中提取任一个压缩数据片段。根据本发明实施例,ELU 310确定及利用该压缩数据片段的可变片段大小,而产生与其相关的定位符。一旦产生与图像200的块202相关的一个压缩数据片段的定位符,ELU 310经由数据路径126在定位符缓冲器112(参见图1)中存储该定位符,并在压缩数据存储器104中存储与块202相关联的压缩数据片段。
因此,对一个给定的图像200而言,编码器106可产生一系列压缩数据片段,该压缩数据片段被存储在压缩数据存储器104中,其中每一个压缩数据片段与图像200的块202(1)-202(n)的其中一个互有关联。这每一个压缩数据片段也与ELU 310所产生且存储在定位符缓冲器112中的定位符之一互有关联。因此,存储在定位符缓冲器112中的每一个定位符也与图像200的块202(1)-202(n)的其中一个块互有关联。
图4为显示图3的DCT单元302在图像数据的块202(1)-202(n)的其中一个块执行DCT的方块图。如图4所示,DCT单元302将图像数据的每一个8乘8的块202转换成频域中一个8乘8的块402的DCT系数。每一个块402的DCT系数包括一个直流系数404和63个交流系数406(1)-406(63)。如上所示,在每一个块402的DCT系数中的系数404和406(1)-406(63)是绝对值,使得不会带入数据相依性到该系列压缩数据片段中。
DCT处理在本领域中为熟知技术。该DCT处理倾向于把大的DCT系数集合在DCT系数块的最上方左端。因此,普遍来说直流系数的绝对值都很大,尤其与交流系数的绝对值相比。为增加数据的压缩,先前技术的编码器(如JPEG编码器等)将直流系数编码成电流块的直流系数的绝对值和另一数值(例如先前块的直流系数的绝对值)之间的差值。此处理一般称作预测差化(prediction differencing)。对此差值而不是对直流系数的绝对值编码,会产生更好的数据压缩,但也有在连续的DCT系数块之间带入数据相依性的缺点。因此,要对先前的DCT系数块解码,才能对先前技术中之随后的DCT系数块解码。因此,此先前技术被称为使用相对的DCT编码技术,先前技术的解码器被请求使用先进先出的解码技术。
相对于先前技术,本发明的DCT单元302对所产生的每一个块402的DCT系数中的直流系数404及每一个交流系数406(1)-406(63)的绝对值编码。因此,每一个块402中的DCT系数值与其它块402的DCT系数的系数值无关。当DCT单元302由于较大的直流系数404绝对值放弃一部分的数据压缩(大约5%或更少)时,则有不将数据相依性带入块402的DCT系数的优点。因此,根据本发明,在不必检索和解码其余任何压缩数据片段的情况下,就可从压缩数据存储器104中随机检索及解码一个压缩数据片段。此外,因为配置数据(如含有量化及熵数据的标头)不存储在压缩数据存储器104中,会补偿因编码DCT系数的绝对值而损失的任何数据压缩。
图5为根据本发明实施例更详细显示ELU 310(图3)的方块图。如图5所示,ELU 310包括熵编码器502、地址及偏移确定(address and offset determination,AOD)单元504、以及累计大小寄存器506。在本实施例中,熵编码器502、AOD单元504、以及累计大小寄存器506实现定位符产生器108(图1)。图5也显示ELU 310包括(或能存取)默认熵数据324。
熵编码器502经由数据路径322接收与图像数据的每一个块202(1)-202(n)相关的RLE数据。对每一个块202(1)-202(n)而言,熵编码器502使用默认熵数据324将块202的RLE数据编码成熵编码数据(entropy-encoded data,EED)。EED代表与块202相关的压缩数据片段,其将被存储在压缩数据存储器104中。
熵编码器502也确定与每一个块202(1)-202(n)相关联的压缩数据片段的大小,其中,大小代表该压缩数据片段在压缩存储器104中将占据的存储器总数。因为该熵编码数据为连续数据,该压缩数据片段的大小能表达成该压缩数据片段的位长度。熵编码器502经由数据路径508将与每一个块202(1)-202(n)相关联的压缩数据片段的大小,即位长度,传达至地址及偏移确定单元504。熵编码器502经由编码器输出路径328也提供压缩数据片段至压缩数据存储器104。
地址及偏移确定单元504为与块202相关联的每一个压缩数据片段产生定位符,用于从压缩数据存储器104中定位及检索压缩数据片段。在本实施例中,地址及偏移确定单元504基于存储在累计大小寄存器506中的累计大小数值,为每一个压缩数据片段确定定位符和压缩数据存储器104的宽度。地址及偏移确定单元504也经由数据路径126在定位符缓冲器112中存储定位符。通过增加与图像200相关的每一个压缩数据片段的大小到累计大小寄存器506,地址及偏移确定单元504也操作成可累计压缩数据片段的大小。
当图像200的块202(1)-202(n)被编码时,累计大小寄存器506存储与那些块相关联的压缩数据片段的累计大小。在使用编码器106编码图像200之前,例如通过在定时与控制路径138上接收的重设信号来重设累计大小寄存器506。当熵编码器502为连续的每一个压缩数据片段产生大小,地址及偏移确定单元504会在累计大小寄存器506中一片段一片段地累计大小值。因此,对于被编码的图像200的所给定的任何块202(b),累计大小寄存器506存储了与图像200的所有先前被编码的块202(1)-202(b-1)相关联的压缩数据片段的总大小。
图6为根据本发明一实施例显示由地址及偏移确定单元504所产生的每一个定位符600的数据结构。如图所示,每一个定位符600包括第一字段602、第二字段604和选择性的第三字段606。
第一字段602包含在压缩数据存储器104内可识别存储位置(如,存储地址)的数据,此位置即为与定位符600相关联的压缩数据片段的起始处。在本发明中,压缩数据存储器104是一个64位宽的帧缓冲器。因此,第一字段602包含了一个可在压缩数据存储器104中识别64位宽的存储位置的存储地址。定义存储在第一字段602中的存储地址所需要的位数会视压缩数据存储器104的大小而定。
第二字段604包含从第一字段602中的存储地址所识别的存储位置的开端识别一位偏移的数据。在本实施例中,该位偏移指示了从存储位置的开端处开始的数据的位数目,但此存储位置不是与定位符600相关联的压缩数据片段的一部分。因此,与定位符600相关联的压缩数据片段,在等于位偏移的存储位置中的多个位之后的位开始。在第二字段604中用于定义位偏移的位数,将与在压缩数据存储器104中的存储位置的宽度有关。对于64位宽的存储位置,可用6位的数据定义第二字段604。
第三字段606包括图像200的块202(1)-202(n)的其中一个块与定位符600相关联的数据。举例而言,在图像200中的每一个块202(1)-202(n)能以一个单一的识别器指定,在产生定位符600时在第三字段606会提供此识别器。然后RAC 114能使用定位符600以检索该识别器。然而,在本实施例中,第三字段606为选择性的,因为定位符600能以与块202(1)-202(n)被编码的同样的预定序列,存储在定位符缓冲器112中连续的存储位置。
地址及偏移确定单元504产生如下的每一个定位符600。对每一个压缩数据片段而言,地址及偏移确定单元504为图像200计算所产生的所有先前的压缩数据片段的大小的总和。在图5所示的实施例中,地址及偏移确定单元504通过读取存储在累计大小寄存器506中的值得到此总和。然后地址及偏移确定单元504将此总和除以压缩数据存储器104的宽度(在本实施例中是64位),以得到商数及余数,皆以整数表达。地址及偏移确定单元504则转换(例如藉由一个查找表等)该商数成一个在压缩数据存储器104中的存储位置的地址。这个存储位置为压缩数据片段在压缩数据存储器104中的起始处。然后地址及偏移确定单元504使用所产生的存储地址如字段602产生定位符600,以及产生余数作为字段604中的位偏移。一旦为当前的压缩数据片段产生定位符600,地址及偏移确定单元504增加当前压缩数据片段(先前从熵编码器502得到的)的大小到存储在累计大小寄存器506的累计值,更新此累计大小值以产生与下一个压缩数据片段相关联的定位符600。
例如通过计数熵编码器502为其提供大小值的次数,地址及偏移确定单元504也可利用该选择性的第三字段600产生定位符600。地址及偏移确定单元504则可用该计数值,将一使图像数据的特定块202与定位符600相关联的值提供给第三字段606。于此例中,每一次对一个新的图像200编码时,例如通过经由定时与控制路径138所接收的重设信号,来重设地址及偏移确定单元504所使用的计数值。
地址及偏移确定单元504也可经操作产生选择性的「结束定位符」(图7),该结束定位符可指示在压缩数据存储器104内与图像200的最后一个块202(n)相关联的压缩数据片段的终端。该结束定位符提供的优点包括:使能RAC 114以定位压缩数据片段的终端,以及在提供压缩数据片段给解码器110之前修正任何不是其中一部分的数据。地址及偏移确定单元504在产生与最后一个块202(n)相关联的定位符600之后,和编码下一个图像200之前,产生结束定位符。该结束定位符可包括如同定位符600的相同的字段。举例而言,地址及偏移确定单元504可使用存储在累计大小寄存器506中而与所有块202(1)-202(n)相关联的压缩数据片段的累计大小值、以及如上述用于产生字段602及604的算法,产生该结束定位符。此外,地址及偏移确定单元504可提供结束定位符,其具有唯一识别该结束定位符的第三字段。
图7为显示根据本发明的定位符缓冲器112(参见图1)的数据结构,用于存储与一个1280乘720的图像200相关联的多个定位符600(1)-600(14400)。定位符600(1)-600(14400)在压缩数据存储器104中分别定位与图像200的块202(1)-202(14400)相关联的压缩数据片段。定位符缓冲器112也如所示被配置以存储结束定位符700。
在本实施例中,主机装置100和编解码器系统102可处理的最大图像为1280乘720的图像。因此,定位符缓冲器112包含足够的存储器以存储任何在大小上大至1280乘720个像素的图像的定位符。本发明所属技术领域者可理解定位符缓冲器112有能力可存储的定位符600的数目会随着待压缩图像的分辨率而改变。
在本实施例中,从一个预定的存储位置开始,在连续的存储位置中,定位符缓冲器112从编码器106依序地接收及存储定位符600(1)-600(14400)。因此,与块202(1)相关联的定位符600(1)被存储在第一存储位置,与块202(2)相关联的定位符600(2)被存储在第二存储位置,如此等等直到与最后一个块202(14400)相关联的最后一个定位符600(14400)被存储。然后,结束定位符700如图所示被存储在最后一个定位符600(14400)之后。因为块202(1)-202(14400)被以一个已知的预定次序供应至编码器106,也以同样的已知预定次序产生及存储定位符600(1)-600(14400)。因此,能藉由RAC 114从定位符缓冲器112中立即识别和检索与图像200的任何特定块202相关联的定位符600。因此,在本实施例中定位符600(1)-600(14400)中的第三字段606是选择性的。然而在另一种情况下,假如在定位符缓冲器112中的随机位置存储定位符600,第三字段606能促进识别与特定块202相关联的特定定位符600。
须注意的是,可在连续图像200之间的编码或其它的预定次数中,重设定位符缓冲器112的存储位置(例如,经由定位与控制路径138接收的重设信号)。举例来说,如果连续编码图像的分辨率改变,重设每一个图像的定位符缓冲器112,可确保存储在其中的定位符600不会被破坏。
图7为显示用于与图像200的块202(1)-202(5)和202(14400)相关联的假定压缩数据片段的定位符600(1)-600(5)、和600(14400)、以及结束定位符700。在以下解释中,假设与块202(1)-202(4)和202(14400)相关联的压缩数据片段的大小,即数据长度,分别为37位、32位、43位、83位及75位。
对第一块202(1)而言,定位符600(1)的第一字段602指示与图像200的第一块202(1)相关联的压缩数据片段起始于压缩数据存储器104的存储位置0。定位符600(1)的第二字段604进一步指示与块202(1)相关联的压缩数据片段起始于存储位置0中的第一位,因为该位偏移为0。因为与块202(1)相关联的压缩数据片段的长度为37位长,所以该压缩数据片段占据存储位置0中的最初的37个位。地址及偏移确定单元504藉由将图像200的先前压缩数据片段的位长度的总和(在此例中为0)除以64(在压缩数据存储器104中的存储位置的宽度)产生定位符600(1),以得到产生的商数0和余数0。则此商数被转换为存储位置0的地址并存储在第一字段602中,且此余数在第二字段604中被存储为位偏移。
定位符600(2)指示与图像200的第二块202(2)相关联的压缩数据片段起始于在第37个位(第二字段604)之后的存储位置0(第一字段602)。(注意:最初的37个位被与第一块202(1)相关联的压缩数据片段所占据。)地址及偏移确定单元504藉由把图像200的先前压缩数据片段的位长度的总和(在此例中总和是37,被存储在累计大小寄存器506中)除以64产生定位符600(2),以得到产生的商数0和余数37。则该商数被转换为存储位置0的地址并存储在第一字段602中,且余数在第二字段604中被存储为位偏移。
定位符600(3)指示与图像200的第三块202(3)相关联的压缩数据片段起始于在第5个位(第二字段604)之后的存储位置1(第一字段602)。(最初的5个位被与第二块202(2)相关联的压缩数据片段所占据。)地址及偏移确定单元504藉由把图像200的先前压缩数据片段的位长度的总和(在此例中总和是37位+32位,被存储在累计大小寄存器506中)除以64产生定位符600(3),以得到产生的商数1和余数5。则此商数被转换为存储位置1的地址并存储在第一字段602中,且余数在定位符600(3)的第二字段604被存储为位偏移。
定位符600(4)指示与图像200的第四块202(4)相关联的压缩数据片段起始于在第48个位(第二字段604)之后的存储位置1(第一字段602)。(最初的48个位被与第三块202(3)相关联的压缩数据片段所占据。)地址及偏移确定单元504藉由把先前压缩数据片段的位长度的总和(在此例中总和是37位+32位+43位,被存储在累计大小寄存器506中)除以64产生定位符600(4),以得到产生的商数1和余数48。则此商数被转换为存储位置1的地址并存储在第一字段602中,且余数在定位符600(4)的第二字段604被存储为位偏移。
定位符600(5)指示与图像200的第五块202(5)相关联的压缩数据片段起始于在第3个位(第二字段604)之后的存储位置3(第一字段602)(最初的3个位被与第四块202(4)相关联的压缩数据片段所占据)。地址及偏移确定单元504藉由将图像200的先前压缩数据片段的位长度的总和(在此例中总和是37位+32位+43位+83位)除以64产生定位符600(5),以得到产生的商数3和余数3。则此商数被转换为存储位置3的地址并存储在第一字段602中,且余数在第二字段604被存储为位偏移。
定位符600(14400)指示与图像200的最后一个块202(14400)相关联的压缩数据片段,起始于在第17个位(第二字段604)之后的存储位置7192(第一字段602)。此外,结束定位符700指示与块202(14400)相关联的压缩数据片段结束于存储位置7193(第一字段602),在此存储位置中有28个位。地址及偏移确定单元504藉由将图像200的所有压缩数据片段的位长度的总和(在产生定位符600(14400)之后存储到累计大小寄存器506中)除以64产生结束定位符700,以得到产生的商数7193和余数28。则此商数被转换为存储位置7193的地址并存储在第一字段702中,且余数被存储在第二字段704中,指示与块202(14400)相关的压缩数据片段的最后一个位。
图8显示压缩数据存储器104(图1)存储与图7的定位符600(1)-600(5)和600(14400)相关联的系列假定的压缩数据片段。压缩数据存储器104包括多个可寻址的存储位置802(0)-802(x)。在压缩数据存储器104中显示的存储位置802(0)-802(x)的数目本质上是示例性的,并可随着应用和压缩比例改变,不应解释成可限制本发明。如图8所示,每一个存储位置802(0)-802(x)的宽度是64位。
压缩数据存储器104存储与连续在存储位置802(0)-802(x)中的图像200的块202(1)-202(n)相关联的系列压缩数据片段804(1)-804(n)。在所显示的理论例子中,与1280乘720像素图像200的块202(1)-202(14400)相关联的系列压缩数据片段804(1)-804(14400)占据存储位置802(0)-802(7193)。压缩数据存储器104的存储位置802(1)-802(x)在需要时,举例来说,借着经由定时与控制路径138所接收到的重设信号,可被清除(如在连续图像之间等)。
定位符600(1)-600(14400)指示在存储位置802(0)-802(7193)内关联的压缩数据片段804(1)-804(14400)的位置。举例而言,如定位符600(1)所显示,压缩数据片段804(1)起始于存储位置802(0)中的第一位。压缩数据片段(compresses data segment,C.D.S)804(2)如定位符600(2)所示,在存储位置802(0)的37个位之后开始(即起始于第38个位)。压缩数据片段804(3)如定位符600(3)所示,在存储位置802(1)的第5个位之后开始。压缩数据片段804(4)如定位符600(4)所示,在存储位置802(1)的第48个位之后开始。压缩数据片段804(5)如定位符600(5)所示,在存储位置802(3)的第3个位之后开始。这会持续至此图像200的最后一个压缩数据片段804(14400),在存储位置802(7192)的第17个位之后开始。结束定位符700最终指示压缩数据片段804(14400)的末端在存储位置802(7193)的第28个位结束。
图9为根据本发明一实施例更详细地显示RAC 114(图1)的方块图。如图所示,RAC114经由数据请求输入120从主机装置100接收图像200的任何一个块202(1)-202(n)的请求。此来自主机装置100的请求提供关于主机装置100欲存取的图像200的块202(1)-202(n)的指示(如块识别器等),因此,关于存储在压缩数据存储器104中的压缩数据片段需要被解码的指示。对每一个被请求的块而言,RAC 114从压缩数据存储器104检索相关联的压缩数据片段,并提供此被检索的压缩数据片段到解码器110以便解码成图像数据的已解码块。RAC 114提供了很重要的优点,即可以主机装置100所请求的任意次序从压缩数据存储器104中检索及输出压缩数据片段。换言之,本发明促进了以任意次序随机存取及解码与图像200的块202(1)-202(n)相关联的压缩数据片段。
在图9中,RAC 114显示为包括定位符与数据检索(LDR)单元902以及数据修整器904,彼此间经由数据路径906通信。当需要块202的请求经由数据请求输入120到达时,定位符与数据检索单元902检索与被请求的块202相关联的定位符600、以及接续在被请求的块202之后编码的块202的定位符600。若请求最后一个块202(n)时,定位符与数据检索单元902会检索定位符600(n)和结束定位符700。若请求多个连续块202时,定位符与数据检索单元902检索与被请求的多个块中第一个块202相关联的定位符600、以及被请求的多个块中最后一个块202之后的下一个被解码的块的定位符、或结束定位符700。因此,在本实施例中,对以上在数据请求输入120上接收是任何请求类型,定位符与数据检索单元902至少检索两个定位符600、或一个定位符600和结束定位符700。
因为图像200的块202(1)-202(n)被以预定的序列编码,且因为以与每一个图像200相同的预定序列产生定位符600(1)-600(n)和700并存储在定位符缓冲器112中,假如定位符与数据检索单元902知道此预定序列以及定位符600(1)-600(n)和结束定位符700将存储在定位符缓冲器112中的存储位置,定位符与数据检索单元902可从定位符缓冲器112中检索适当的定位符600(1)-600(n)和700。所述数据请求可选择性地包括与包含在结束定位符700和定位符600(1)-600(n)的第三字段606中的识别器匹配的识别器,定位符与数据检索单元902可用以从定位符缓冲器112中检索被请求的定位符600和结束定位符700。
使用来自主机装置100的请求而检索的定位符600,定位符与数据检索单元902则从压缩数据存储器104中检索压缩数据片段804,包括在被检索的定位符600的第一字段602中被识别的两个存储位置802之间,或在定位符600的第一字段602中和结束定位符700的第一字段702被识别的两个存储位置802之间。定位符与数据检索单元902将被检索的压缩数据和至少包含在第二字段604的位偏移、或在第二字段604中的位偏移和结束定位符700的第二字段704的值,经由数据路径906提供到数据修整器904。
数据修整器904利用被检索的定位符600和700中的第二字段604和704的值,微调从压缩数据存储器104中检索的压缩数据的两端。在第一定位符600中的第二字段604的位偏移指示在位的一数字等于此位偏移之后开始被请求的压缩数据的第一位。因此,数据修整器904在被检索的压缩数据中移除(调节)等于此偏移的多个位。相似地,第二定位符600的第二字段604(或结束定位符700的第二字段704)指示最后被请求的块202的压缩数据的结束位置。因此,在识别第二定位符600(或结束定位符700)的第二字段604(或第二字段704)的位之后,数据调整器904移除被检索的压缩数据的一部分。一旦经过微调,数据调整器904会经由数据路径134提供与被请求的块相关联的被请求的压缩数据片段804到解码器110。
以下例子参考图7及图8进一步解释压缩数据的检索和本发明的调节方面。本发明促进以任意次序且独立地检索及解码图像200的压缩数据片段。
在第一例中,RAC 114接收用于图像200的第二块202(2)的请求。一旦接收请求,定位符与数据检索单元902经由数据路径132从定位符缓冲器112检索定位符600(2)和600(3)。基于在定位符600(2)和600(3)的第一字段602中的存储地址,定位符与数据检索单元902检索存储在存储位置802(0)中的64个位的压缩数据,和存储在存储位置802(1)的64个位的压缩数据。定位符与数据检索单元902则至少提供每一个定位符600(2)和600(3)的第二字段604、以及压缩数据从存储位置802(0)-802(1)到数据修整器904。数据修整器904利用定位符600(2)的第二字段604中的位偏移,以从存储位置802(0)中移除非属于第二块202(2)的压缩数据的部分的压缩数据的部分。尤其,存储在存储位置802(0)的压缩数据的最初37个位与图像200的第一块202(1)而非第二块202(2)的压缩数据片段有相关。因此,数据修整器904把从存储位置802(0)所检索的压缩数据的起始处的位移除。则数据修整器904利用在定位符600(3)的第二字段604的位偏移,也将从存储位置802(1)中检索但非属于第二块202(2)的压缩数据的部分的压缩数据的部分移除。尤其,从存储位置802(1)所检索的压缩数据的第6到最后一个位与第三块202(3)而非第二块202(2)有相关。因此,数据修整器904从存储位置802(1)所检索的压缩数据中移除这些位。从存储位置802(0)和802(1)所检索产生的压缩数据对应于与块202(2)相关联的压缩数据片段804(2)。则数据修整器904经由数据路径134提供压缩数据片段804(2)至解码器110以供解码。
在第二个例子中,RAC 114接收了对于图像200的块202(2)至202(4)的请求。因此,定位符与数据检索单元902经由数据路径132从定位符缓冲器112中检索定位符600(2)和600(5)。基于在定位符600(2)和600(5)的第一字段602中识别的存储地址,定位符与数据检索单元902也检索存储在压缩数据存储器104的存储位置802(0)和存储位置802(3)中的压缩数据、和存储在中间存储位置802(1)和802(2)的压缩数据的64个位。换言之,定位符与数据检索单元902从包含存储位置802(0)至802(3),检索压缩数据。定位符与数据检索单元902则至少提供每一个定位符600(2)和600(5)的第二字段604、以及来自存储位置802(0)-802(3)的压缩数据到数据修整器904。数据修整器904利用定位符600(2)的第二字段604中的位偏移,用于移除存储在存储位置802(0)的压缩数据的最初37个位。数据修整器904则利用定位符600(5)的第二字段604中的位偏移,也移除从存储位置802(3)所检索的压缩数据的第4至最后一个位;因为那些位是与第5块202(5)相关,而非第四块202(4)。从存储位置802(0)-802(3)所产生的压缩数据对应于与块202(2)至202(4)相关联的压缩数据片段804(2)-804(4)。数据修整器904则经由数据路径134提供此系列的压缩数据片段804(2)-804(4)到解码器110以供解码。
在第三个例子中,RAC 114接收了对于图像200的最后一个块202(14400)的请求。根据接收的请求,定位符与数据检索单元902经由数据路径132从定位符缓冲器112检索定位符600(14400)和结束定位符700。基于在定位符600(14400)的第一字段602和结束定位符700的第一字段702中识别的存储地址,定位符与数据检索单元902检索存储在存储位置802(7192)中的压缩数据的64个位,和存储在存储位置802(7193)的压缩数据的64个位。定位符与数据检索单元902则至少提供定位符600(14400)的第二字段604和结束定位符700的第二字段704、以及来自存储位置802(7192)和802(7193)的压缩数据到数据修整器904。数据修整器904利用定位符600(14400)的第二字段604中的位偏移,移除与块202(14399)而非与块202(14400)相关联且存储在存储位置802(7192)的压缩数据的最初17个位。数据修整器904则利用结束定位符700的第二字段704中的值,也移除从存储位置802(7193)中检索但非属于最后一个块202(14400)的压缩数据的部分的压缩数据的部分。尤其,存储在存储位置802(7193)的压缩数据的第29个至最后一个位被移除。从存储位置802(7192)-802(7193)所产生的压缩数据对应于与最后一个块202(14400)相关联的压缩数据片段804(14400)。RAC114则经由数据路径134提供压缩数据片段804(14400)到解码器110。
图10为根据本发明的实施例更详细显示解码器110的块图。如图10所示,解码器110包括熵解码器1002、游程长度解码器1004、逆锯齿形单元1006、逆量化单元1008、以及逆离散余弦变换DCT单元1010。
与图像200的块202(1)-202(n)相关联的压缩数据片段804(1)-804(n)经由数据路径134从RAC 114提供到解码器110,且经由数据路径128直接从压缩数据存储器104被解码成解码的图像数据块。数据路径128和134收敛成数据路径1012,如同熵编码数据(EEO)信息流般的压缩数据片段藉以被提供到熵解码器1002。在本实施例中,熵解码器1002每次只对一个熵编码数据信息流解码。假如整体图像200的压缩数据被解码,直接从压缩数据存储器104提供压缩数据片段804(1)-804(n)是有效率的。如上所述,可替换地,一个或多个随机存取的压缩数据片段804(1)-804(n)经由RAC 114被提供到解码器110。解码器110根据以下处理对每一个压缩数据片段804(1)-804(n)解码。
熵解码器1002经由数据路径1012接收与块202相关联的压缩数据片段804,并对压缩数据片段804执行逆熵处理以产生与块202相关联的RLE数据。熵解码器1002在熵解码中使用默认熵数据1014。默认熵数据1014与ELU 310在编码处理中使用的默认熵数据324是相同的。因为熵解码器1002能存取默认熵数据1014,熵解码器1002不会为了得到在解码处理中使用的熵数据,而对在压缩数据信息流中的数据标头作语法分析。
一旦熵解码器1002将压缩数据片段804解码成与块202相关联的RLE数据,熵解码器1002会将此RLE数据提供到游程长度解码器1004。游程长度解码器1004将此RLE数据解码成多个与块202相关联的量化系数,并经由数据路径1018将多个量化系数提供到逆锯齿形单元1006。
逆锯齿形单元1006接收多个量化系数,并对多个量化系数执行逆锯齿形处理,以便产生一个8乘8块的量化系数。逆锯齿形单元1006则经由数据路径1020将该块的量化系数提供到逆量化单元1008。
逆量化单元1008接收该块的量化系数,并使用默认量化数据1022将该块去量化成一个8乘8个块402的绝对值离散余弦变换系数。默认量化数据1022与编码器106在编码处理中所使用的默认量化数据316相同。因为逆量化单元1008可存取默认量化数据1022,有利于逆量化单元1008不必为了得到在去量化处理中所使用的量化数据,而对压缩数据信息流中的数据标头作语法分析。在以下去量化中,逆量化单元1008经由数据路径1024将与块202相关联的绝对值离散余弦变换系数块提供到逆离散余弦变换单元1010。
逆离散余弦变换单元1010接收该绝对值离散余弦变换系数块,并对该绝对值离散余弦变换系数块执行逆离散余弦变换,以产生一个8乘8的解码后像素数据块。因为由逆量化单元1022所提供的离散余弦变换系数皆为绝对值,该逆离散余弦变换处理与先前技术相比是很简单的。举例而言,在先前技术中使用的相对逆离散余弦变换处理,牵涉到把当前块的相对直流系数,加到从先前块的离散余弦变换系数所得到的直流系数值。相反地,本发明的逆离散余弦变换单元1010从逆量化单元1008接收绝对值直流系数值,且因此不必如同先前技术实施多余的处理。
一旦完成此逆离散余弦变换处理,逆离散余弦变换单元1010输出一个8乘8个的解码后图像数据块,从相关联的压缩数据片段804中被解压缩出来。此解码后的图像数据块则于需要时被主机装置100使用。
如同编码器106,解码器110不受到联合图像专家群编码标准及相关文件格式的限制。有利于解码器110存取默认熵数据1014和默认量化数据1022,使得解码器110不必在解码压缩数据片段之前,先对一个标头作语法分析以得到配置信息。此特点也提供优点,使图像(如视频的帧)的压缩数据能不需要标头就可以存储在压缩数据存储器104中,从而促进数据压缩。以此方式促进压缩也补偿在编码器106的离散余弦转换处理中对绝对值DC系数编码。
本发明的特定实施例现在将有更详细的描述。然而,需被理解的是在本发明的范畴内可能对本发明作各种改良,尤其是考虑到以上所描述的观念和原理。
如同一个例子,可在解码器110内移除RAC 114的功能。举例而言,RAC 114的定位符和压缩数据片段的检索和/或压缩数据调节功能可被并入到解码器110之内,或在熵解码器1002之前。相似地,把定位符缓冲器112并入成解码器110的一个组件或如图1所示的某些其它组件,可能也是有益的。
本发明也可被改良成使用标头为每一个帧在编码器和解码器之间传递配置信息(如熵表和量化表等)。此外,可用标头维持与特定压缩标准(如联合图像专家群)的兼容性。然而,在压缩数据存储器中存储标头会减少数据压缩的数量,且须改良解码器110以便对标头作语法分析。当定位符600被产生用以补偿在压缩数据存储器104中标头所占据的空间时,需要调整定位符600。
须要注意的是根据本应用,在此描述的定位符也可被改良。如作为一个例子,每一个压缩数据片段804(1)-804(n)在压缩数据存储器104中能被分配到一个或多个预定的存储位置802,而每一个定位符600(1)-600(n)能为一个指向该预定位置的存储器指示器。如另一个例子,每一个定位符可能只能指示一个相关联的压缩数据片段的大小。RAC 114则能被改良成使用这些片段的大小,实时地在压缩数据存储器104中定位特定的压缩数据片段804(1)-804(n),举例而言,藉由把定义在帧的所有先前定位符600的大小加起来,除以存储器104的宽度而得到商数和余数,就可如以上所述而使用。这些和其它改良是有可能的。
再如其它例子,可改良压缩数据存储器104和定位符缓冲器112,为多个图像/帧200存储压缩数据片段804(1)-804(n)和定位符600(1)-600(n)。
图11为显示藉由软件,如藉由嵌入电子可读式的存储媒体的代码,实现的本发明的编码器和/或解码器的计算机系统1100的块图。计算机系统1100包括一个或多个处理单元(CPU)1102、非易失性存储器1104、用户输入输出控制器1106、网络接口1108、以及工作存储器1110,都经由系统总线1112通信。CPU(s)1102执行包含在工作存储器1110的数据及代码,导致计算机系统1100实现想要的功能,如图像处理、视频回放等。非易失性存储器1104,如只读存储器、一个或多个驱动硬盘、闪存等,提供数据或代码(如启动代码、编码器和解码器程序、随机存取控制器程序、压缩图像文件等)的存储,甚至在计算机系统1100关闭电源时,可保留这些数据或代码。用户输入输出控制器1106管理用户接口装置(未显示)的连接,举例而言:键盘、鼠标、显示器、打印机、相机和其它诸如此类可促进计算机系统1100和用户之间的互动和通信的装置。网络接口1108(如以太网络适配器卡)把数据分组传送至互连网络(如因特网)上并从互连网络接收数据分组,以便用户可经由互连网络寄送和接收数据(如图像数据)。系统总线1112促进了在计算机系统1100中的各种组件之间的通信。
工作存储器1110(如随机存取存储器)提供动态存储器给计算机系统1100,并包含可执行代码(如操作系统1114等),在系统启动时将可执行码加载到工作存储器1110中。操作系统1114促进所有其它被加载工作存储器1110中的模块的控制与执行。工作存储器1110也包含媒体编程1116(如,图像观察器、电影播放器等)。编码器例程1118代表执行这里之前所述的任何和所有编码器的功能的例行程序。编码器例程1118产生定位符600(1)-600(n)并在定位符缓冲器1120中存储那些定位符600(1)-600(n),该定位符缓冲器也被定义在工作存储器1110中。工作存储器1110也包括可执行这里描述的解码器110的任何和所有功能的解码器例程1122。工作存储器1110也包括随机存取控制器模块1124,其提供了如图1和图8所示的RAC 114的任何和所有功能。藉由编码器例程1118所产生的压缩数据片段804(1)-804(n)被存储在工作存储器1110所定义的压缩数据缓冲器1126中,和/或它被存储在非易失性存储器1104中。可选地,存储在缓冲器1120中的定位符600(1)-600(n)也可被存储在非易失性存储器1104(如定位符文件)中以便随后取回。
可由非易失性存储器1104初始化和/或加载上述每一个程序和缓冲器到工作存储器1110中。选择性地从替代的大量数据存储装置,包括但不限于CD-ROM、DVD-ROM、闪存驱动器等,将上述程序和缓冲器加载到工作存储器1110中。此外,只要需要的话,某些或所有被描述的程序可被加载到工作存储器1110中。
现在请参考图12到图15以描述本发明的方法。为了清楚说明,会参考先前描述的实施例中执行特定功能的特定组件描述这些方法。然而,应注意的是,其它组件无论是否在此被明确地描述或由于本发明被创造,能被不脱离本发明范围的其它引用所取代。因此,需要理解的是本发明的方法不限于执行任何特定功能的任何特定组件。而且,所呈现方法的某些步骤不必然以所示次序发生。举例而言,在某些例子中两个或更多的方法步骤会同时发生。尤其鉴于在先前所提供的本发明描述中,在所公开的方法中的这些和其它变化将立即显现且被视为在本发明的全部范畴内。
图12为根据本发明总结了促进随机存取存储在压缩数据存储器中的压缩数据片段的方法1200的流程图。在第一步骤1202中,经由数据输入116接收一系列数据片段(如图像200的块202(1)-202(n))。在第二步骤1204中,编码器106将该系列数据片段编码成一系列压缩数据片段804(1)-804(n),其中每一个压缩数据片段804(1)-804(n)具有一个可变的片段大小。然后,在第三步骤1206中,将该系列压缩数据片段804(1)-804(n)存储在压缩数据存储器104中。在第四步骤1208中,定位符产生器108为该系列的每一个压缩数据片段804(1)-804(n)产生定位符600,定位符600(1)-600(n)指示在压缩数据存储器104中的关联的压缩数据片段804(1)-804(n)的位置。
图13为根据本发明总结了执行方法1200中第二步骤1204(编码此系列的数据片段)的特定方法。对该系列的数据片段中的每一个数据片段执行如图13所示的方法。根据此方法,该系列的数据片段包含图像200的像素数据的块202(1)-202(n)。
在第一步骤1302中,在像素数据的块202(1)-202(n)上执行离散余弦变换以产生离散余弦变换系数的块402,该离散余弦变换系数为绝对值(也即,非以相对于另一个块中的离散余弦变换系数加以定义)。然后在第二步骤1304中,使用量化数据316量化绝对值离散余弦变换系数的块402,以产生量化系数的块。下一步,在第三步骤1306中,将该量化系数块锯齿形编码,以产生一序列量化系数且在第四步骤1308中,将该序列量化系数游程长度编码,以产生游程长度编码(RLE)数据。然后在第五步骤1310中,使用熵数据324对游程长度编码数据熵编码,以产生该系列压缩数据片段804(1)-804(n)的其中一个。
图14为根据本发明总结了执行方法1200的第四步骤1208(产生定位符)的特定方法的流程图。为所产生的多个定位符600(1)-600(n)中的每一个定位符600执行如图14所示的方法。注意每一个定位符600(1)-600(n)与该系列压缩数据片段804(1)-804(n)的其中一个相关联。
在第一步骤1402中,计算先前存储在压缩数据存储器104中该系列压缩数据片段804(1)-804(n)的每一个压缩数据片段804的大小的总和。然后在第二步骤1404中,将此总和除以等于压缩数据存储器104中每一个存储位置802(0)-802(x)的宽度(即64位)的值,以得到商数和余数。然后在第三步骤1406中,将该商数转换为可识别存储位置802(0)-802(x)中存储位置802的存储地址,且与定位符600相关联的压缩数据片段804将被存储在存储位置802(0)-802(x)中。然后在第四步骤1408中,产生对于相关联的压缩数据片段804的定位符600,其中有包含存储地址的第一字段602和包含余数的第二字段604。
图15为根据本发明总结从压缩数据存储器104中随机存取该系列压缩数据片段804(1)-804(n)中的压缩数据片段804的方法1500的流程图。在第一步骤1502中,对应于至少一个数据片段(即图像200的块202(1)-202(n)中的至少一个块)的至少一个压缩数据片段804的请求经由数据请求120被接收。该被请求的压缩数据片段804是存储在压缩数据存储器104中的一系列可变大小压缩数据片段804(1)-804(n)中的其中一个。然后在第二步骤1504中,从定位符缓冲器112中检索与被请求的压缩数据片段804相关联的至少一定位符600。下一步,在第三步骤1506中,使用被检索的定位符600在压缩数据存储器104中的该系列压缩数据片段804(1)-804(n)之间定位被请求的压缩数据片段804。然后在第四步骤1508中,藉由RAC 114从压缩数据存储器104中检索被请求的压缩数据片段804,并提供到解码器110。后续在第五步骤1510中,藉由解码器110解码被请求的压缩数据片段804,且解码后的数据片段被提供到解码数据输出118。
本发明的特定实施例的描述于此完整呈现。在不脱离本发明范畴的前提下,许多描述的特点可被替代、修改或删除。举例而言,替代的定位符(即存储器指示器、片段大小等)可取代其中所述的定位符。如同另一个例子,可使用帧标头促进改变在编码及解码(即量化数据和熵数据)每一个帧中所使用的数据。尤其鉴于先前的公开信息,所显示特定实施例的这些和其它偏差对熟知本技术领域者而言是显而易见的。

Claims (27)

1.一种促进随机存取存储于存储器中的压缩数据片段的方法,所述方法包括:
接收一系列数据片段;
编码该系列数据片段成一系列压缩数据片段,每一该压缩数据片段具有一可变的片段大小;
存储该系列压缩数据片段在一压缩数据存储器中;
确定每一该压缩数据片段的大小;以及
对于每一该压缩数据片段产生一定位符;并且其中
该定位符识别存储至少一部分关联压缩数据片段的该压缩数据存储器的一存储位置;
该定位符包括一存储地址和一偏移,该存储地址从该压缩数据存储器的多个存储位置中识别该存储位置;以及该偏移指示在该存储位置内该关联压缩数据片段的第一位的位置;以及
该产生该关联压缩数据片段的该定位符的步骤包括:
计算存储在该关联压缩数据片段之前的所述系列中的每一该压缩数据片段大小的总和;
将该总和除以等于该压缩数据存储器中多个存储位置的每一个的宽度的值以得到一商数及一余数;
转换该商数成该存储地址;以及
设定该偏移等于该余数。
2.如权利要求1所述的方法,其中,
该系列数据片段包含一系列图像数据块;
该编码的步骤包括对所述系列数据片段中的每一图像数据块执行一离散余弦变换(DCT)以产生一系列离散余弦变换系数块;以及
在不参考所述系列中其它任何离散余弦变换系数块的情况下,产生每一该离散余弦变换系数块中的该离散余弦变换系数。
3.如权利要求2所述的方法,其中对该一系列离散余弦变换系数块中的每一该离散余弦变换系数块而言,该编码步骤进一步包括:
量化该离散余弦变换系数块以产生一量化系数块;
锯齿形编码该量化系数块以产生一序列的量化系数;
将该一序列的量化系数进行游程长度编码以产生游程长度编码(RLE)数据;以及
熵编码该游程长度编码数据以产生该一系列压缩数据片段的一个片段。
4.如权利要求3所述的方法,进一步包含:
接收第二系列数据片段;
编码该第二系列数据片段成第二系列压缩数据片段,以及其中,
该量化该离散余弦变换系数块的步骤包括使用量化数据以量化该离散余弦变换系数块;
该熵编码该执行长度编码数据的步骤包括使用熵数据以熵编码该游程长度编码数据;以及
该量化数据及该熵数据不会在编码该系列的数据片段和编码该第二系列数据片段的步骤之间改变。
5.如权利要求1所述的方法,其中该系列压缩数据片段系存储在该压缩数据存储器中,而该压缩数据存储器不含与该系列压缩数据片段相关联的标头信息。
6.如权利要求1所述的方法,进一步包括:存储每一该压缩数据片段的该定位符。
7.如权利要求6所述的方法,进一步包括:
接收对于从存储在该压缩数据存储器的该系列压缩数据片段选择的至少一个压缩数据片段的一请求;
检索与该被请求的压缩数据片段相关联的该定位符;
在存储于该压缩数据存储器的该系列压缩数据片段间,使用该被检索的定位符以定位该被请求的压缩数据片段的开端;以及
从该压缩数据存储器检索该被请求的压缩数据片段。
8.如权利要求7所述的方法,进一步包括:
检索与存储于该压缩数据存储器中的第二压缩数据片段相关联的第二定位符;以及
使用该第二定位符在该压缩数据存储器中定位该被请求的压缩数据片段的末端。
9.如权利要求7所述的方法,进一步包括:解码该被请求的压缩数据片段,而该被请求的压缩数据片段与其余的该系列压缩数据片段无次序之分。
10.如权利要求9所述的方法,其中该解码该被请求的压缩数据片段的步骤包括:
熵解码该被请求的压缩数据片段以产生游程长度编码(RLE)数据;
游程长度解码该游程长度编码数据以产生多个量化系数;
对多个量化系数执行一逆锯齿形处理以产生一量化系数块;
去量化该量化系数块以产生一离散余弦变换系数绝对值的块;以及
在不参考其它任何离散余弦变换系数块的情况下,对该离散余弦转换系数绝对值的块执行一逆离散余弦变换处理,以产生一解码数据块。
11.如权利要求10所述的方法,其中该解码该被请求的压缩数据片段的步骤不包括在解码该被请求的压缩数据片段之前对与该系列压缩数据片段相关联的一标头作语法分析。
12.如权利要求1所述的方法,其中,
该系列数据片段包含定义图像的一系列图像数据块;以及
该压缩数据存储器为一帧缓冲器,用于存储定义该图像的压缩数据。
13.一种促进随机存取存储于存储器中的压缩数据片段的系统,该系统包括:
一数据输入,该数据输入被耦合以接收一系列数据片段;
一编码器,该编码器经操作将该系列的数据片段编码成一系列压缩数据片段,每一该压缩数据片段具有一可变的片段大小;
一压缩数据存储器,该压缩数据存储器被耦合以从该编码器接收该系列压缩数据片段,并存储该系列压缩数据片段;以及
一定位符产生器,该定位符产生器经操作以确定在所述系列中的每一该压缩数据片段的大小以及对于每一该压缩数据片段产生一定位符;并且其中
该定位符识别存储至少一部分关联压缩数据片段的该压缩数据存储器的一存储位置;
该定位符包括一存储地址和一偏移;该存储地址从该压缩数据存储器的多个存储位置中识别该存储位置;以及该偏移指示在该存储位置内该关联压缩数据片段的第一位的位置;并且
对于每一该关联压缩数据片段,该定位符产生器进一步操作以:
计算存储在该关联压缩数据片段之前的所述系列中的每一该压缩数据片段的大小的总和;
将该总和除以等于该压缩数据存储器中所述多个存储位置的每一个的宽度的值以得到一商数及一余数;
转换该商数成该存储地址;以及
设定该偏移等于该余数。
14.如权利要求13所述的系统,其中,
该系列数据片段包括一系列图像数据块;
该编码器经操作以对所述系列中的每一该图像数据块执行一离散余弦变换(DCT)以产生一系列离散余弦变换系数块;以及
不参考所述系列中的其它任何离散余弦变换系数块,在每一该离散余弦变换系数块中产生该离散余弦变换系数。
15.如权利要求14所述的系统,其中,对于该系列离散余弦变换系数块中的每一个离散余弦变换系数块,该编码器进一步操作以:
量化该离散余弦变换系数块以产生一量化系数块;
锯齿形编码该量化系数块成为一序列的量化系数;
将该序列的量化系数进行游程长度编码以产生游程长度编码(RLE)数据;以及
熵编码该游程长度编码数据以产生该系列压缩数据片段的一个。
16.如权利要求15所述的系统,其中,
输入终端机进一步经操作以接收第二系列数据片段;
该编码器进一步操作以
编码该第二系列数据片段成为第二系列压缩数据片段,
使用量化数据以量化该离散余弦变换系数块,
使用熵数据熵编码该游程长度编码数据;以及
该编码器经操作以使用相同的该量化数据和该熵数据以编码该系列数据片段和该第二系列数据片段。
17.如权利要求13所述的系统,其中该系列压缩数据片段是存储在该压缩数据存储器中,而该压缩数据存储器不含与该系列压缩数据片段相关联的标头信息。
18.如权利要求13所述的系统,进一步包括:一定位符存储器,经操作以存储每一该压缩数据片段的定位符。
19.如权利要求18所述的系统,进一步包括:
一数据请求,其经操作以接收对于存储在该压缩数据存储器中的该系列压缩数据片段之中的至少一个压缩数据片段的一请求;以及
一控制器,其经操作以
检索与该被请求的压缩数据片段相关联的该定位符,
使用该被检索的定位符以在该压缩存储器中的该系列压缩数据片段间定位该被请求的压缩数据片段的开头,并
从该压缩数据存储器中检索该被请求的压缩数据片段。
20.如权利要求19所述的系统,其中该控制器进一步操作以:
检索第二定位符,该第二定位符与存储在该压缩数据存储器中的第二压缩数据片段相关联;以及
使用该第二定位符在该压缩数据存储器中定位该被请求的压缩数据片段的末端。
21.如权利要求19所述的系统,进一步包括解码器,其经操作以解码该被请求的压缩数据片段,而该被请求的压缩数据片段与其余的该系列压缩数据片段无次序之分。
22.如权利要求21所述的系统,其中该解码器包括:
一熵解码器,其经操作以熵解码该被请求的压缩数据片段以产生游程长度编码(RLE)数据;
一游程长度解码器,其经操作以游程长度解码该游程长度解码数据以产生多个量化系数;
一逆锯齿形单元,其经操作以对多个量化系数执行一逆锯齿形处理以产生一量化系数块;
一去量化器,其经操作以去量化该量化系数块以产生一离散余弦变换系数绝对值的块;以及
一逆离散余弦变换单元,其经操作以对该逆离散余弦变换绝对值的块执行一逆离散余弦变换处理,而不参考其它任何离散余弦变换系数块。
23.如权利要求22所述的系统,其中该解码器经操作以解码该被请求的压缩数据片段,在解码该被请求的压缩数据片段之前不对与该系列压缩数据片段相关联的一标头作语法分析。
24.如权利要求13所述的系统,其中,
该系列数据片段包括一系列图像数据块,用以定义一图像;以及
该压缩数据存储器为一帧缓冲器,用于存储定义该图像的压缩数据。
25.一种促进随机存取存储于存储器中压缩数据片段的系统,该系统包括:
一输入终端机,该输入终端机被耦合以接收一系列数据片段;
用于编码该系列数据片段成一系列压缩数据片段的装置,每一该数据片段是独立于其它任何该压缩数据片段被编码,每一该压缩数据片段具有一可变的片段大小;
一压缩数据存储器,该压缩数据存储器被耦合以接收及存储该系列压缩数据片段;以及
用于在该压缩数据存储器中定位每一该压缩数据片段的装置,所述用于定位的装置被操作以确定在所述系列中的每一该压缩数据片段的大小并且对于每一该压缩数据片段产生一定位符;并且其中
该定位符识别存储至少一部分关联压缩数据片段的该压缩数据存储器的一存储位置;
该定位符包括一存储地址和一偏移,该存储地址从该压缩数据存储器的多个存储位置中识别该存储位置;以及该偏移指示在该存储位置内该关联压缩数据片段的第一位的位置;以及
对于每一该关联压缩数据片段,所述用于定位每一该压缩数据片段的装置进一步操作以:
计算存储在该关联压缩数据片段之前的所述系列中的每一该压缩数据片段的大小的总和;
将该总和除以等于该压缩数据存储器中所述多个存储位置的每一个的宽度的值以得到一商数及一余数;
转换该商数成该存储地址;以及
设定该偏移等于该余数。
26.一种随机存取存储器中压缩数据片段的方法,该方法包括:
接收对于选自存储在一压缩数据存储器中的一系列压缩数据片段的一压缩数据片段的一请求,每一该压缩数据片段具有一可变的片段大小;
检索与该被请求的压缩数据片段相关联的一定位符;
使用该被检索的定位符以在该压缩数据存储器中的该系列压缩数据片段内定位该被请求的压缩数据片段;以及
从该压缩数据存储器中检索该被请求的压缩数据片段;并且其中
所述定位符通过如下步骤产生:
计算存储在该被请求的压缩数据片段之前的所述系列中的每一该压缩数据片段大小的总和;
将该总和除以等于该压缩数据存储器中多个存储位置的每一个的宽度的值以得到一商数及一余数;
转换该商数成存储地址;以及
设定一偏移等于该余数;
所述存储器地址识别存储至少一部分该被请求的压缩数据片段的该压缩数据存储器的一存储位置;并且
所述偏移指示在该存储位置内该被请求的压缩数据片段的第一位的位置。
27.一种随机存取存储器中压缩数据片段的系统,该系统包括:
一数据请求输入,其经操作以接收对于选自存储在一压缩数据存储器中的一系列压缩数据片段的至少一个压缩数据片段的一请求,每一该压缩数据片段具有一可变的片段大小;以及
一控制器,其经操作以:
检索与该被请求的压缩数据片段相关联的一定位符,
使用该被检索的定位符以在该压缩数据存储器的该一系列压缩数据片段内定位该被请求的压缩数据片段,以及
从该压缩数据存储器中检索该被请求的压缩数据片段;并且其中
所述定位符通过如下步骤产生:
计算存储在该被请求的压缩数据片段之前的所述系列中的每一该压缩数据片段大小的总和;
将该总和除以等于该压缩数据存储器中多个存储位置的每一个的宽度的值以得到一商数及一余数;
转换该商数成存储地址;以及
设定一偏移等于该余数;
所述存储器地址识别存储至少一部分该被请求的压缩数据片段的该压缩数据存储器的一存储位置;并且
所述偏移指示在该存储位置内该被请求的压缩数据片段的第一位的位置。
CN201310562165.3A 2012-11-27 2013-11-12 随机存取存储器中压缩数据的系统及方法 Active CN103841424B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/686,574 US9083977B2 (en) 2012-11-27 2012-11-27 System and method for randomly accessing compressed data from memory
US13/686,574 2012-11-27

Publications (2)

Publication Number Publication Date
CN103841424A CN103841424A (zh) 2014-06-04
CN103841424B true CN103841424B (zh) 2017-06-09

Family

ID=50773283

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310562165.3A Active CN103841424B (zh) 2012-11-27 2013-11-12 随机存取存储器中压缩数据的系统及方法

Country Status (3)

Country Link
US (1) US9083977B2 (zh)
CN (1) CN103841424B (zh)
TW (1) TWI524740B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
TWI505091B (zh) * 2014-09-16 2015-10-21 Storart Technology Co Ltd 用於非揮發性記憶體的自適應壓縮資料儲存方法及使用該方法的系統
US20160378452A1 (en) * 2015-06-29 2016-12-29 Mediatek Inc. Policy-Based Compression of Machine Code Generated by a Virtual Machine
US10387305B2 (en) * 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
US11190810B2 (en) 2018-01-26 2021-11-30 Samsung Electronics Co., Ltd. Device and method for compressing image data using quantization parameter and entropy tables
US10904049B1 (en) * 2019-07-11 2021-01-26 Stmicroelectronics (Research & Development) Limited Time domain discrete transform computation
US20230206380A1 (en) * 2021-12-28 2023-06-29 Advanced Micro Devices, Inc. Optimizing partial writes to compressed blocks

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4237549B2 (ja) * 2003-05-29 2009-03-11 株式会社日立国際電気 循環記録装置
KR20120031073A (ko) 2003-11-18 2012-03-29 스칼라도 아베 디지털 이미지 처리 방법 및 이미지 표현 포맷
US7469067B2 (en) 2004-07-06 2008-12-23 Magnum Semiconductor, Inc. Sequential decoding of progressive coded JPEGs
KR100668302B1 (ko) * 2004-07-28 2007-01-12 삼성전자주식회사 비디오 디코더/엔코더에서의 메모리 맵핑 장치 및 그 방법
FR2875042B1 (fr) * 2004-09-03 2006-11-24 Canon Kk Procede et dispositif d'acces aleatoire a une zone d'une image codee en vue de la decoder et procede et dispositif de codage d'une image
US8107754B2 (en) * 2007-12-07 2012-01-31 Mediatek Inc. Systems and methods for randomly accessing compressed images
US8868575B2 (en) * 2010-01-13 2014-10-21 International Business Machines Corporation Method and system for transformation of logical data objects for storage
EP2721816A4 (en) * 2011-06-16 2015-03-18 Freescale Semiconductor Inc METHOD AND DEVICE FOR ENCODING AND DECODING AN IMAGE

Also Published As

Publication number Publication date
TWI524740B (zh) 2016-03-01
US9083977B2 (en) 2015-07-14
TW201421996A (zh) 2014-06-01
US20140146872A1 (en) 2014-05-29
CN103841424A (zh) 2014-06-04

Similar Documents

Publication Publication Date Title
CN103841424B (zh) 随机存取存储器中压缩数据的系统及方法
US20230188736A1 (en) Methods and apparatuses for hierarchically encoding and decoding a bytestream
CN106170921B (zh) 涉及符号压缩的数据的源编码和解码方法及装置
US7113643B2 (en) Method and device for forming a derived digital signal from a compressed digital signal
RU2417518C2 (ru) Эффективное кодирование и декодирование блоков преобразования
US7281033B2 (en) Method and device for forming a reduced compressed digital signal
US7365659B1 (en) Method of context adaptive binary arithmetic coding and coding apparatus using the same
US20030043905A1 (en) Image processing method and apparatus, computer program, and storage medium
CN103581680B (zh) 使用量化控制改良解码器性能的方法与系统
CN101653004A (zh) 从编码比特流选择性地解码预定数据单元的解码器
CN104704825A (zh) 分段图像数据的无损压缩
CN105306067A (zh) 算术编码的方法和设备
CN104904211B (zh) Jctvc-l0227:带有profile-tier-level语法结构的更新的vps_extension
CN102238376B (zh) 图像处理系统及方法
US8175403B1 (en) Iterative backward reference selection with reduced entropy for image compression
US10536697B2 (en) Method for re-encoding image and apparatus therefor
US7683809B2 (en) Advanced lossless bit coding
JP2003189109A (ja) 画像処理装置及び方法、並びにコンピュータ・プログラム
CN102047662A (zh) 编码器
CN107801031A (zh) 一种对纯三原色图片数据的无损压缩编码方法
US7733249B2 (en) Method and system of compressing and decompressing data
WO2008065249A1 (en) Image processing method
CN111656784A (zh) 解码方法、解码器和解码系统
JP2001217722A (ja) 情報符号化装置及び情報符号化方法及びコンピュータ読み取り可能な記憶媒体
JP4743613B2 (ja) 符号生成装置、ファイル生成装置、符号処理装置、プログラム、情報記録媒体

Legal Events

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

Ref country code: HK

Ref legal event code: DE

Ref document number: 1194225

Country of ref document: HK

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

Ref country code: HK

Ref legal event code: GR

Ref document number: 1194225

Country of ref document: HK