CN101340537B - 数据展开装置 - Google Patents

数据展开装置 Download PDF

Info

Publication number
CN101340537B
CN101340537B CN2008100959272A CN200810095927A CN101340537B CN 101340537 B CN101340537 B CN 101340537B CN 2008100959272 A CN2008100959272 A CN 2008100959272A CN 200810095927 A CN200810095927 A CN 200810095927A CN 101340537 B CN101340537 B CN 101340537B
Authority
CN
China
Prior art keywords
data
png
zone
result
dictionary
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
CN2008100959272A
Other languages
English (en)
Other versions
CN101340537A (zh
Inventor
小野彰久
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN101340537A publication Critical patent/CN101340537A/zh
Application granted granted Critical
Publication of CN101340537B publication Critical patent/CN101340537B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3086Compression; 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/004Recording, reproducing or erasing methods; Read, write or erase circuits therefor
    • G11B7/005Reproducing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明涉及数据展开装置和数据展开方法。所述数据展开装置,包括:LZ77展开部件,当输出与先前数据相同的数据时,该LZ77展开部件通过参照包括先前展开结果的字典来扩展数据;PNG逆滤波器,对LZ77展开部件的展开结果和先前输出的图像数据执行算法运算并输出该图像数据;以及包括内部字典区域和行数据区域的共享存储器,该内部字典区域存储由LZ77展开部件参照的先前展开结果,并且该行数据区域存储先前输出的并且被PNG逆滤波器使用的数据。共享储存器具有基于分析输入数据的分析结果而设置的、用于内部字典区域的容量和用于行数据区域的容量。

Description

数据展开装置
技术领域
本发明涉及应用于如HD DVD、蓝光光盘等光盘复制装置的数据展开装置和数据展开方法,该装置和该方法展开以PNG方式压缩的图像数据。 
背景技术
PNG(便携网络图形)格式是近来已知的一种新型图像数据格式。该格式被广泛地应用于网络、新一代DVD等。通过执行哈夫曼(Huffman)解码、LZ77展开、以及PNG逆滤波运算的每步处理可实现PNG数据的展开(参见示例:公开号2003-92684的美国专利申请)。 
图12示出了常规的LZ77展开装置。LZ77展开装置700包括LZ77展开部件701、DMA702、内部字典存储器703、以及DMA704。哈夫曼解码结果输入至LZ77展开部件701。该LZ77展开部件701将之前的解码结果存储在作为字典的存储器中,当输出与先前数据相同的数据时,通过参照该字典,该LZ77展开部件701扩展数据。因此,LZ77展开装置需要具有与字典相对应的存储器。 
另外,该字典具有高达32KB的容量。在LSI等的应用中,将全部字典存储器嵌入LSI中,从成本方面而言,是不可行的。那么,提供了一种技术,用于将字典存储器中的一部分存储到LSI内部字典存储器703中,以及将余下的部分存储到外部存储器710的外部字典区域711中,如图12所示。根据该技术,可能在性能降低最小化的同时降低LSI成本。 
当LZ77展开部件701参照外部字典时,DMA702读出数据。 DMA704将内部字典存储器703中的部分或全部数据写(闪存)入外部字典区域711。 
图13示出了常规的PNG逆滤波算法装置。该PNG逆滤波算法装置800包括PNG逆滤波器801、行存储器802、以及DMA803。该PNG逆滤波器801在之前输出的一行图像数据和LZ77展开结果之间执行算法运算。因此,PNG逆滤波算法装置800需要具有存储用于先前输出的一行数据的行存储器802。在LSI等的应用中,将用于先前输出的一行的数据存储在外部存储器810,从成本方面来说,是可能的。然而,从处理性能方面来说,则期望将用于先前输出的一行的数据存储在嵌入式存储器上,如图13所示。请注意,PNG逆滤波算法处理结果作为图像数据,存储于外部存储器810的图像数据输出区域811中。 
根据此背景,为了达到高处理性能,优选的是,PNG展开装置包括用于LZ77的字典存储器部分(以下称为内部字典),以及用于PNG逆滤波运算的行存储器(以下称为行存储器)。 
图14示出了常规的PNG数据展开装置。该PNG数据展开装置900包括LZ77展开部件901、DMA902、内部字典存储器903、DMA904、逆PNG过滤器905、DMA906、以及行存储器907。该PNG数据展开装置900与外部存储器910相连接,外部存储器910包括外部字典区域911和图像数据输出区域912。如上所述,该PNG数据展开装置900包括内部字典存储器903,用于将LZ77展开结果存储为字典;以及行存储器907,用于存储先前输出的图像数据。不能存储到内部字典存储器903的数据,通过DMA904,被写入外部字典区域911。LZ77展开部件901访问外部字典区域911或者内部字典存储器903,以参照先前的展开结果。该PNG逆滤波器905读取从行存储器907先前输出的图像数据,并对该数据及LZ77展开部件901的展开结果执行逆PNG滤波处理,以生成图像数据。 
然而,我们现已发现,当PNG数据展开装置包括作为内部字典的用于LZ77字典的存储器部分,以及用于PNG逆滤波运算的行存储器时,会导致一些问题。第一,在用于PNG逆滤波运算的存储器中有从不使用的空间。这是由于每个图像的一行数据量各不相同,而存储器的容量却是固定的。 
第二,处理性能下降。这是因为仅用于LZ77字典的存储器部分被存储为内部字典,在参照字典过程中,当数据没有存储在内部字典时,需要访问外部存储器。 
发明内容
在一个实施方式中,包括展开部件,当输出与先前的数据相同的数据时,通过参照包括先前展开结果的字典来扩展数据;运算部件,对展开部件的展开结果和先前输出的图像数据执行算法运算并输出图像数据;以及共享存储器,包括内部字典区域和行数据区域,该内部字典区域存储由展开部件参照的先前展开结果,并且该行数据区域存储先前输出的并且被运算部件使用的图像数据。在这个实施方式中,该共享存储器具有基于分析输入数据的分析结果而设置的,用于内部字典区域的容量,以及用于行数据区域的容量。 
在另一个实施方式中,包括分析输入数据,以及在共享存储器中设置内部字典区域和行数据区域;当输出与先前数据相同的数据时,通过参照包括先前展开结果并且存储于共享存储器的内部字典区域的内部字典,展开输入数据;对展开结果和先前输出的并且存储在共享存储器的行数据区域的图像数据执行算法运算,并且输出图像数据。 
根据本发明,输入数据被分析,并且在共享存储器中提供内部字典区域和行数据区域。因此,可能根据输入数据,为存储具有不同大小的行数据的区域分配适当的容量,以防止在共享存储器中生成从不使用的空间,从而做出内部字典区域的最佳使用。 
根据本发明,通过对内部存储器做出最佳利用,可能提供具有改善的展开速度的数据展开装置及数据展开方法。 
附图说明
从以下结合附图的对特定优选实施方式的描述,本发明的上述及其他目的、优点及特征将变得更加明显,其中: 
图1示出了根据本发明的实施方式的PNG数据展开装置的结构图; 
图2示出了根据本发明的实施方式的PNG数据展开装置中的控制装置的行为的流程图; 
图3示出了根据本发明的实施方式的PNG数据展开装置中的LZ77展开部件的行为的流程图; 
图4示出了根据本发明的实施方式的PNG数据展开装置中的PNG逆滤波器的行为的流程图; 
图5示出了根据本发明的特定实施方式的PNG数据展开装置的图示; 
图6示出了PNG数据展开装置执行数据展开时内部存储器的一个方面的图示; 
图7示出了PNG数据展开装置执行数据展开时内部存储器的一个方面的图示; 
图8示出了PNG数据展开装置执行数据展开时内部存储器的一个方面的图示; 
图9示出了PNG数据展开装置执行数据展开时内部存储器的一个方面的图示; 
图10示出了根据本发明该实施方式的不同实施例的图示; 
图11示出了根据本发明该实施方式的另一个不同实施例的图示; 
图12示出了常规LZ77展开装置的图示; 
图13示出了常规PNG逆滤波算法装置的图示;以及 
图14示出了常规PNG数据展开装置的图示。 
具体实施方式
下面结合解释性的实施方式对本发明进行描述。本领域技术人员应当认识到,利用本发明的教导,可完成许多可替换的实施方式,并且本发明不限于为解释目的而举例说明的实施方式。 
下文将结合附图对本发明所应用的特定实施方式进行描述。本实施方式是关于本发明在扩展以PNG方法压缩的PNG(便捷网络图形)数据的数据展开装置上的应用。在本实施方式中,通过将行存储器中从不使用的空间作为内部字典使用,扩大了内部字典的容量,而提高了展开速度。 
图1示出了根据本发明的实施方式的PNG数据展开装置的结构图。PNG数据展开装置10包括内部存储器2、LZ77(Lempel-Ziv 77)展开部件3、PNG逆滤波器4、以及DMA5、6、和7。 
当输出与先前数据相同的数据时,LZ77展开部件3通过参照包括先前展开结果的字典来扩展数据。LZ77展开部件3将先前展开数据存入内部字典2。 
PNG逆滤波器4对LZ77展开部件3的展开结果和从PNG逆滤波器4中先前输出的用于一行的图像数据执行算法运算,以输出用于一行的图像数据。从PNG逆滤波器4中先前输出的用于一行的图像数据存储在内部字典2的行数据区域中。 
内部字典2包括内部字典区域以及行数据区域。LZ77展开部件3使用内部存储器2作为字典。PNG逆滤波器4使用内部存储器2作为行存储器。LZ77展开部件3和PNG逆滤波器4所使用的内部存储器2的区域的容量,也就是使用开始位置和大小由连接到PNG数据展开装置10的控制装置1为每个图像设置。 
DMA(直接存储器存取)5是将外部存储器的数据引入内部存储器2的装置。DMA5由LZ77展开部件3在参照外部字典的数据时使用。DMA5由LZ77展开部件3或者控制装置1控制。 
DMA6和DMA7将存储在内部存储器2的数据写入外部存储器。DMA6由内部存储器2或控制装置1控制。DMA7由PNG逆滤波器4或控制装置1控制。DMA6适时将内部字典区域的数据写入(闪存)到外部存储器的外部字典区域,以避免内部字典区域存满数据。DMA7将由PNG逆滤波器4生成的图像数据写入外部存储器的图像输出区域。 
下面将描述PNG数据展开装置的行为。图2示出了控制装置的行为的流程图。图3示出了LZ77展开部件的行为的流程图。图4示出了PNG逆滤波器的行为的流程图。首先,将描述控制装置1的行为。如图2所示,在开始PNG数据展开装置的行为时,控制装置1分析PNG数据,并计算一行的数据量。控制装置1设置PNG逆滤波器4的一行的数据量所需的存储区域(步骤S1)。内部存储器2的存储区域被PNG逆滤波器4使用作为行存储器。为LZ77展开部件3设置通过从内部存储器2的总容量中减去用于一行的数据量所得出的存储区域(步骤S2)。内部存储器2的存储区域被LZ77展开部件3用作内部字典。 
然后,确定是否有需要将内部字典写(闪存)入外部存储器(步骤S3)。当不需要时,LZ77展开部件3和PNG逆滤波器4被激活(步骤S4)。另一方面,当需要内部字典的闪存时,内部字典区域的数据被写入外部存储器的外部字典区域(步骤S7)。然后,为LZ77展开部件3设置写入外部存储器的外部字典区域的容量(步骤S8)。然后,LZ77展开部件3和PNG逆滤波器4被激活(步骤S4)。当一行的处理完成时(步骤S5),执行对下一行的处理,从步骤3开始的处理将被重复,直至所有行的处理完成(步骤S6)。 
接下来将描述LZ77展开部件3的行为。LZ77展开部件3被激活(步骤S11),确定字典是否被正在被参照(步骤S12),并且当字典没有被参照时,接收哈夫曼解码结果(步骤S13)。然后确定是否需要参照字典从而执行LZ77展开(步骤S14)。当需要参照字典时,确定在内部字典是否有目标数据(步骤S18)。当内部字典有目标数据时,从内部字典区域读出1个字节的数据(步骤S20)。另一方面,当目标数据位于外部存储器的外部字典区域中时,LZ77展开部件3通过DMA5访问外部存储器,并且从外部字典区域读出1个字节的数据(步骤S19)。当LZ77展开基于内部字典的参照结果而执行时,LZ77展开部件3将展开结果(1个字节)写入内部存储器2的内部字典区域(步骤S15)。同时,LZ77展开部件3也输出1个字节的数据至PNG逆滤波器4(步骤S16)。重复从步骤S12的处理,直至完成用于一行的处理(步骤S17)。 
当重复LZ77展开时,内部存储器2的内部字典的区域被存满数据。为了避免这一情形,内部存储器2的内部字典中的所有或部分数据,通过在控制装置1或内部存储器2的控制之下的DMA6,写(闪存)入外部存储器的外部字典区域。此操作的结果是,数据被写入外部字典区域的内部字典中的区域,可被用于重写。因此,LZ77展开部件3可再次将该区域用作为新的内部字典区域。 
接下来,将描述PNG逆滤波器4的行为。PNG逆滤波器4被激活(步骤S21),确定当前的输入数据是否是第一行(步骤S22),并且当输入数据不是第一行时,访问存有先前行数据的内部存储器2的行数据区域。然后,1个字节的数据被读出(步骤S23)。同时,从LZ77展开部件3接收展开结果的1个字节的数据(步骤S24)。当该输入数据是第一行时,由于该数据没有存储在内部存储器2中,PNG逆滤波器4从LZ77展开部件3接收展开结果。 
然后,基于这些数据,PNG逆滤波运算被执行,并且计算当前行数据(步骤S25)。该运算结果(1个字节)输出到内部存储器2的行数据区域(步骤S26),并且1个字节的数据通过DMA7写入外部存储器的图像输出区域(步骤S27)。然后,重复从步骤S22的处理,直至完成用于一行的处理(步骤S28)。 
请注意,用于每个将展开的PNG图像数据的一行的数据量是不同的。因此,由控制装置1将内部存储器2的区域分配给每个PNG图像数据。 
本实施方式达到了如下两个效果。第一,无论展开的图像如何,均没有生成存储器空间的从不使用的空间。这是因为,可以为每个图像数据设置存储行数据的区域,从而该区域对应于用于一行的数据量,并且通过改变LZ77展开部件3和PNG逆滤波器4使用的存储区域的顶端位置和大小以及在作为共享存储器的内部存储器2中设置存储空间,将余下的区域分配为内部字典区域。 
第二个效果是PNG数据展开性能能够提高。这是因为在LZ77展开中,参照内部字典的概率得到提高,并且可以减少由于参照外部字典中存储器延迟的性能降低。更具体地说,当具有用于一行的小数据量的图像被处理时,分配给行数据区域的区域也较小。结果,可能增加内部字典区域,并且提高参照内部字典的概率。总之,存在插入在装置与外部存储之间的存储器总线等。因此,在参照外部存储器中的字典时,在传输数据中加入了较大延迟,与参照内部字典的情况相比较,性能下降。 
现将描述本实施方式的特定实施例。图5示出了根据本发明的特定实施例的PNG数据展开装置100。PNG数据展开装置100与控制装置和外部存储器300相连接。 
PNG数据展开装置100读出PNG原始数据,并且包括执行哈夫曼解码的哈夫曼解码部件101、内部存储器102、LZ77展开部件103、PNG逆滤波器104,以及DMA105至107。DMA105从外部存储器300的外部字典区域301读出字典,DMA106将内部字典闪存至外部字典区域301,并且DMA107将由PNG逆滤波器104生成的图像数据写入图像数据输出区域302。内部存储器102的存储容量例如是16KB。 
接下来将描述根据本实施方式的PNG数据展开装置的行为。图6至图9示出了PNG数据展开装置执行数据展开时的内部存储器。在本实施方式中,我们考虑用于一行的数据量展开为4KB图像的情况。控制装置200分析待展开的PNG图像,并识别出一行的容量是4KB。这可以由根据PNG标准的相对简单的分析来确定,而不必实际执行PNG数据的展开。 
然后,控制装置200指示PNG逆滤波器104使用开始位置为0并且容量为4KB的存储区域作为行数据区域。控制装置200还指示LZ77展开部件103使用开始位置为4KB并且容量为12KB的存储区域作为内部字典。 
为了展开第一行,控制装置200开始哈夫曼解码部件101、LZ77展开部件103以及PNG逆滤波器104的操作。哈夫曼解码部件101读出PNG原始数据,并将哈夫曼解码结果输出至LZ77展开部件103。LZ77展开部件103接收哈夫曼解码结果,执行LZ77展开,并将结果写入内部存储器102的内部字典区域。当在执行LZ77展开中需要查字典时,字典中的数据被适时地从内部字典区域读出,然后继续展开操作。PNG逆滤波器104输入来自LZ77展开部件103的第一行的LZ77展开结果,以执行第一行的PNG逆滤波运算。 
该运算结果通过DMA107写入外部存储器300的图像数据输出区域302。相同的数据被写入内部存储器102的行数据区域。 
由LZ77展开部件103和PNG逆滤波器104执行第一行的PNG逆滤波运算之后,内部存储器102如图6中所示。相当于图像数据的第一行的4KB数据(第一行的PNG逆滤波运算结果)被写入行数据区域,并且4K+1B数据(第一行的LZ77展开结果)被写入内部字典区域。内部字典区域内的数据容量可根据PNG标准描述为用于一行的数据量加1个字节。该4KB数据作为图像数据的第一行(第一行的PNG逆滤波运算结果)被写入外部存储器300的图像数据输出区域。 
接下来,为了展开第二行,控制装置200开始哈夫曼解码部件101、LZ77展开部件103、以及PNG逆滤波器104的操作。在第一行被处理之后,LZ77展开部件103将LZ77展开结果从连续部分写入内部存储器102的内部字典。这是因为,先前的32KB区域可能被作为字典参照,在第一行被处理后,有必要将结果保存。当有查字典的需求时,该字典的数据从内部字典读出,以继续展开处理,如在第一行中的一样。 
PNG逆滤波器104接收来自LZ77展开部件103的第二行的LZ77展开结果,并且从内部存储器102的行数据区域读出第一行的数据,以便执行第二行的PNG逆滤波运算。PNG逆滤波器104从这两个数据执行PNG逆滤波运算。 
运算结果通过DMA107写入外部存储器300的图像输出区域。相同的数据被写入内部存储器102的行数据区域。当数据被写入内部存储器102的行数据区域时,该数据可以重写第一行的数据。这是因为被重写的数据已经从PNG逆滤波器104读出,并且已用于PNG逆滤波处理。 
在LZ77展开部件103和PNG逆滤波器104执行了第二行的PNG逆滤波运算后,内部存储器102中的数据如图7所示。相当于该图像第二行的4KB数据(第二行的PNG逆滤波运算结果)被写入行数据区 域。8K+2B数据(第一行的LZ77展开结果以及第二行的LZ77展开结果)被写入内部字典区域。作为图像的第一行的4KB数据(第一行的PNG逆滤波运算结果)以及作为图像的第二行的4KB数据(第二行的PNG逆滤波运算结果)被写入外部存储器300的图像数据输出区域302。 
接下来展开第三行。然而,在内部存储器102的内部字典区域中没有足够的空间剩余以用于展开第三行。更具体地说,为了展开第三行,在内部字典区域需要4K+1B的空间。然而,在内部字典区域中仅有4K-2B的空间。因此,控制装置200将部分内部字典闪存至外部存储器300的外部字典区域301。在本实施方式中,内部字典区域的数据中最先写入的512字节数据被闪存。闪存操作完成后的内部存储器如图8所示。 
结果,LZ77的字典被分成外部存储器300的外部字典区域301,以及内部存储器102的内部字典区域。因此,当LZ77展开中对字典进行参照时,LZ77展开部件103确定所需数据是存在内部字典区域还是外部字典区域,从而选择读出的字典。当对内部字典进行参照时,该处理与第一行和第二行的处理相同。另一方面,当对外部字典进行参照时,数据通过DMA105从外部存储器300的外部字典区域301读出。 
在内部字典的闪存操作后,为了展开第三行,控制装置200开始哈夫曼解码部件101、LZ77展开部件103、以及PNG逆滤波器104的操作。LZ77展开部件103将LZ77展开结果从第二行的处理结果的连续部分写入内部存储器102的内部字典区域。当LZ77展开结果被写入内部字典的下端时,LZ77展开部件103从内部存储器102的内部字典区域的上端继续写入数据,如在环形缓冲区中一样。内部字典的上端区域已经被闪存至外部存储器300的外部字典区域,并且可用于重写。当需要查字典时,字典中的数据适时地从外部字典区域301或者内部字典区域读出,从而继续展开操作。 
为了如在第二行的操作一样执行第三行的PNG逆滤波运算,PNG逆滤波器104接收来自LZ77展开部件103的第三行的LZ77展开结果,并且还从内部存储器102的行数据区域读出第二行的数据。然后,PNG逆滤波器从这两个数据执行运算。 
运算结果通过DMA107写入外部存储器300的图像数据输出区域302,如在第二行的操作中一样。相同的数据被写入内部存储器102的行数据区域中。当数据被写入内部存储器102的行数据区域中时,该数据可以重写到第二行的数据。这是因为被重写的数据已经从PNG逆滤波器104读出,并且已用于PNG逆滤波处理。 
在LZ77展开部件103和PNG逆滤波器104执行第三行的PNG逆滤波运算后,内部存储器102中的数据如图9所示。与图像的第三行相对应的4KB数据(第三行的PNG逆滤波运算结果)被写入行数据区域,并且12K+3-512B的数据(第一行的部分LZ77展开结果、第二行的LZ77展开结果、以及第三行的LZ77展开结果)被写入内部字典区域。请注意,512B是在开始对第三行的展开之前,闪存至外部字典区域301的容量。4KB数据(第一行的PNG逆滤波运算结果)作为图像第一行被写入、4KB数据(第二行的PNG逆滤波运算结果)作为图像第二行被写入、作为第三行的4KB数据(第三行的PNG逆滤波运算结果)被写入外部存储器300的图像数据输出区域302中。该512B数据被写入外部存储器300的外部字典区域301中。此后,处理继续直到所有PNG数据的行被展开。 
在本实施方式中,PNG数据展开装置100包括内部存储器、LZ77展开部件103以及PNG逆滤波器104。内部存储器包括内部字典区域和行数据区域。LZ77展开部件103可以为每个图像改变内部字典区域的容量和开始位置。PNG逆滤波器104可为每个图像改变行数据区域的容量和开始位置。而且,PNG数据展开装置100与控制装置200相 连接,该控制装置200为每个图像设置LZ77展开部件103以及PNG逆滤波器104的内部字典的开始位置和容量和行数据区域的开始位置和容量。 
因此,在PNG数据展开装置100开始PNG数据的展开时,控制装置200分析PNG数据,并计算用于输出图像的一行的数据量。控制装置200设置PNG逆滤波器104的行数据区域的开始位置及容量,以便基于用于一行的数据量,使内部存储器102在行数据区域中有效使用。而且,控制装置200设置LZ77展开部件103的内部字典开始位置及容量,以使用具有从内部存储器的总容量减去一行的数据量而获得的容量的存储区域作为内部字典区域。结果,内部存储器102可被有效使用,而没有从不使用的空间,从而提高了内部字典区域的容量。因此,可能不生成从不使用的存储空间,并且无论待展开的图像如何,可提高PNG数据展开的性能。 
图10示出了根据本实施方式的不同实施例的图示。在本实施例中,具有2KB一行数据量的图像被展开。控制装置200分析待展开的PNG数据,并识别出一行的容量是2KB。接下来,控制装置200指示PNG逆滤波器104将开始位置为0并且容量为2KB的存储区域用作行数据区域。控制装置200指示LZ77展开部件103将开始位置为2KB并且容量为14KB的存储区域用作内部字典区域。控制装置200如上文所述在其他部件上执行PNG图像的展开。因此,与行数据区域被设置为4KB的情况相比,内部字典区域增加了,这就意味着当为了LZ77展开对字典进行参照时,内部字典的命中率能够提高,从而可期望高速的PNG展开处理。 
图11示出了根据本实施方式的另一个不同实施例的图示。在本实施方式中,通过从内部存储器402读取数据,将数据输入至PNG逆滤波器404。因为由LZ77展开部件403写入内部字典区域的数据,以及输出至PNG逆滤波器404的数据两者均是LZ77展开结果,并且相互 相等,该技术在本实施例中可行。因此,内部存储器402的内部字典区域在LZ77展开部件403和PNG逆滤波器404之间起输入和输出缓冲区的作用。因此,从LZ77展开部件403至PNG逆滤波器404的LZ77展开结果输出信号行被省略,而且逆滤波器404适时地从内部存储器402的内部字典读出LZ77展开结果,以执行PNG逆滤波运算。当PNG逆滤波器404开始PNG逆滤波运算时,控制装置200指示适当的内部存储器402的读取开始位置和容量,以及操作开始时序。 
本发明显然并不限于上述实施方式,可以在不背离本发明的范围和精神的情况下,对本发明作出修改和改变。 

Claims (4)

1.一种用于对PNG数据进行展开的数据展开装置,该数据展开装置包括:
共享存储器,包括内部字典区域和行数据区域,所述内部字典区域存储先前LZ77展开结果,所述先前LZ77展开结果是先前对哈夫曼解码结果进行LZ77展开的结果,所述行数据区域存储PNG数据的行数据,所述PNG数据的最先前行数据是先前对所述先前LZ77展开结果进行PNG逆滤波操作的结果,
LZ77展开部件,其用于对哈夫曼解码结果进行LZ77展开,以输出LZ77展开结果并将LZ77展开结果写入所述共享存储器的内部字典区域中,其中,当输出与所述先前LZ77展开结果相同的LZ77展开结果时,所述LZ77展开部件参照在所述共享存储器中的所述先前LZ77展开结果,
PNG逆滤波器,其用于接收所述LZ77展开结果,以对在所述共享存储器中先前存储的所述行数据和所接收的所述LZ77展开结果进行PNG逆滤波操作,以输出PNG数据的该行数据,并将该行数据写入到所述共享存储器的行数据区域中,
其中,在开始所述PNG数据的展开中,基于一行的PNG数据的数据量来设置所述共享存储器中的行数据区域的开始位置和容量,
其中,在开始所述PNG数据的展开中设置所述共享存储器中的内部字典区域的开始位置和容量,并且所述内部字典区域的容量通过从所述共享存储器的总容量减去所述一行的PNG数据的数据量而获得。
2.根据权利要求1所述的数据展开装置,还包括对PNG数据执行哈夫曼解码的哈夫曼解码部件。
3.根据权利要求1所述的数据展开装置,其中:
所述数据展开装置与包括外部字典区域的外部存储器连接,所述外部字典区域存储有未能被存储在所述共享存储器的所述内部字典区域中的LZ77展开结果,以及
当用于LZ77展开的目标数据未被存储在所述内部字典区域中时,所述LZ77展开部件参照所述外部字典区域。
4.根据权利要求1所述的数据展开装置,其中
PNG逆滤波器通过访问所述内部字典区域读出所述LZ77展开结果,以接收所述LZ77展开结果。
CN2008100959272A 2007-04-27 2008-04-25 数据展开装置 Expired - Fee Related CN101340537B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007120177A JP4874162B2 (ja) 2007-04-27 2007-04-27 データ展開装置及びデータ展開方法
JP2007120177 2007-04-27
JP2007-120177 2007-04-27

Publications (2)

Publication Number Publication Date
CN101340537A CN101340537A (zh) 2009-01-07
CN101340537B true CN101340537B (zh) 2011-11-02

Family

ID=39888238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100959272A Expired - Fee Related CN101340537B (zh) 2007-04-27 2008-04-25 数据展开装置

Country Status (5)

Country Link
US (1) US7598891B2 (zh)
JP (1) JP4874162B2 (zh)
KR (1) KR100956960B1 (zh)
CN (1) CN101340537B (zh)
TW (1) TWI377795B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489199B2 (en) 2012-12-28 2016-11-08 Intel Corporation Vector compare instructions for sliding window encoding
US8947270B2 (en) 2013-06-29 2015-02-03 Intel Corporation Apparatus and method to accelerate compression and decompression operations
US9813079B2 (en) 2016-02-29 2017-11-07 International Business Machines Corporation High-throughput compression of data
JP6648620B2 (ja) 2016-04-19 2020-02-14 富士通株式会社 符号化プログラム、符号化装置および符号化方法
CN107105266A (zh) * 2017-05-22 2017-08-29 郑州云海信息技术有限公司 一种png图像的解码方法、装置及系统
CN116760996B (zh) * 2023-05-30 2024-02-23 广东匠芯创科技有限公司 Png图像解码方法及其硬件架构、电子设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236759B1 (en) * 1997-10-16 2001-05-22 Matsushita Graphic Communication Systems, Inc. Image processing apparatus
JP2003087798A (ja) * 2001-09-13 2003-03-20 Canon Inc 動画像圧縮装置及び方法
JP2003092684A (ja) * 2001-09-17 2003-03-28 Canon Inc 画像符号化装置、及び画像符号化方法、並びにプログラム、記憶媒体
CN1658665A (zh) * 2004-02-17 2005-08-24 索尼株式会社 存储器管理方法、图像处理设备和存储器管理程序
US20060007237A1 (en) * 2004-07-08 2006-01-12 Eric Jeffrey Apparatuses and methods for sharing a memory between display data and compressed display data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0476727A (ja) * 1990-07-18 1992-03-11 Fujitsu Ltd データ復元方式
US5729228A (en) * 1995-07-06 1998-03-17 International Business Machines Corp. Parallel compression and decompression using a cooperative dictionary
US6272257B1 (en) * 1997-04-30 2001-08-07 Canon Kabushiki Kaisha Decoder of variable length codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236759B1 (en) * 1997-10-16 2001-05-22 Matsushita Graphic Communication Systems, Inc. Image processing apparatus
JP2003087798A (ja) * 2001-09-13 2003-03-20 Canon Inc 動画像圧縮装置及び方法
JP2003092684A (ja) * 2001-09-17 2003-03-28 Canon Inc 画像符号化装置、及び画像符号化方法、並びにプログラム、記憶媒体
CN1658665A (zh) * 2004-02-17 2005-08-24 索尼株式会社 存储器管理方法、图像处理设备和存储器管理程序
US20060007237A1 (en) * 2004-07-08 2006-01-12 Eric Jeffrey Apparatuses and methods for sharing a memory between display data and compressed display data

Also Published As

Publication number Publication date
KR100956960B1 (ko) 2010-05-11
KR20080096474A (ko) 2008-10-30
JP2008278258A (ja) 2008-11-13
US20080270429A1 (en) 2008-10-30
JP4874162B2 (ja) 2012-02-15
TW200908571A (en) 2009-02-16
US7598891B2 (en) 2009-10-06
TWI377795B (en) 2012-11-21
CN101340537A (zh) 2009-01-07

Similar Documents

Publication Publication Date Title
CN101340537B (zh) 数据展开装置
US10769065B2 (en) Systems and methods for performing memory compression
KR100447294B1 (ko) 임의 벡터 어드레싱을 이용한 벡터 레지스터 파일
CN110799959B (zh) 一种数据压缩方法与解压方法以及相关设备
US9367392B2 (en) NAND flash memory having internal ECC processing and method of operation thereof
CN106462496B (zh) 在基于中央处理单元cpu的系统中使用经压缩存储器控制器cmc来提供存储器带宽压缩
JP7244263B2 (ja) メモリ装置
US9641464B2 (en) FIFO buffer system providing same clock cycle response to pop commands
CA2626184A1 (en) Integrated processor array, instruction sequencer and i/o controller
CN103425589A (zh) 控制装置、存储装置以及存储控制方法
KR102398540B1 (ko) 메모리 장치, 반도체 장치 및 반도체 시스템
CN101194228B (zh) 执行微处理器和微控制器的子例行程序的快速返回的装置
US20120256771A1 (en) Method for compression and real-time decompression of executable code
CN114527953B (zh) 存储器数据处理系统、方法、装置、计算机设备和介质
JP3201716B2 (ja) コンピュータ装置
JP2006500658A (ja) プログラムを動的に圧縮解除するための装置および方法
JP3750821B2 (ja) 圧縮された命令フォーマットを処理するvliwプロセッサ
US6674373B1 (en) System and method for data decompression
KR102247529B1 (ko) 전자 장치, 재구성 가능 프로세서 및 그 제어 방법들
US9519599B2 (en) Memory location determining device and method for determining locations of compressed data in a memory by using first and second arithmetic operations
CN109614349A (zh) 一种基于绑定机制的缓存管理方法
CN102263562B (zh) 一种码流数据的读取移除方法和装置
US11762768B2 (en) Accessing circuit of memory device and operation method about reading data from memory device
CN101467126B (zh) 根据数据历史优化不同数字式数据的存储的方法和系统
JP3271155B2 (ja) データ制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1124980

Country of ref document: HK

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111102

Termination date: 20140425

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1124980

Country of ref document: HK