CN116760996B - Png图像解码方法及其硬件架构、电子设备、存储介质 - Google Patents

Png图像解码方法及其硬件架构、电子设备、存储介质 Download PDF

Info

Publication number
CN116760996B
CN116760996B CN202310628485.8A CN202310628485A CN116760996B CN 116760996 B CN116760996 B CN 116760996B CN 202310628485 A CN202310628485 A CN 202310628485A CN 116760996 B CN116760996 B CN 116760996B
Authority
CN
China
Prior art keywords
data
decoding
pixel
png
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.)
Active
Application number
CN202310628485.8A
Other languages
English (en)
Other versions
CN116760996A (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.)
Guangdong Jiangxin Chuang Technology Co ltd
Original Assignee
Guangdong Jiangxin Chuang Technology Co ltd
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 Guangdong Jiangxin Chuang Technology Co ltd filed Critical Guangdong Jiangxin Chuang Technology Co ltd
Priority to CN202310628485.8A priority Critical patent/CN116760996B/zh
Publication of CN116760996A publication Critical patent/CN116760996A/zh
Application granted granted Critical
Publication of CN116760996B publication Critical patent/CN116760996B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种PNG图像解码方法及其硬件架构、电子设备、存储介质。该方法包括:对获取的待解码数据进行文件结构解析处理得到PNG图片参数信息和压缩数据块;根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元和行像素缓存单元中单口静态随机存储器的数量;对压缩数据块进行Inflate解码处理,得到解码特征数据;根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元;根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理。能够节省硬件成本,提高静态随机存储器的利用率以及解码效率。

Description

PNG图像解码方法及其硬件架构、电子设备、存储介质
技术领域
本发明涉及图片解压缩技术领域,尤其是一种PNG图像解码方法及其硬件架构、电子设备、存储介质。
背景技术
随着图像处理技术及计算机技术的快速发展,PNG(Portable Network GraphicFormat,流式网络图形格式)图像作为一种针对位图的新型的图像文件存储格式诞生,增加了GIF文件格式所不具备的一些特性,其目的是企图替代GIF和TIFF文件格式的图像。PNG解码主要包括:文件结构解析、Inflate解码和反过滤处理。其中,Inflate解码需要从已经解码的历史数据(即字典数据)中读取参考数据进行解码任务;反过滤处理则可能需要参考上一行像素的缓存数据从而得到原始图像的像素数据。因此,PNG硬件解码需要缓存历史数据和行像素数据。
相关技术中,通过设置固定SRAM来缓存字典数据和行像素数据,但会导致解码应用场景受限、SRAM利用率不高。
发明内容
以下是对本文详细描述的主题的概述。
本发明实施例提供了一种PNG图像解码方法及其硬件架构、电子设备、存储介质,能够通过灵活分配字典缓存单元和行像素缓存单元的内存大小,从而节省硬件成本,提高静态随机存储器的利用率以及解码不同尺寸的PNG图像时的解码效率。
第一方面,本发明实施例提供了一种PNG图像解码方法,应用于PNG图像解码硬件架构,所述PNG图像解码硬件架构包括内存管理模块,其中,所述内存管理模块包括字典缓存单元和行像素缓存单元;
所述PNG图像解码方法包括:
对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;
根据所述PNG图片参数信息和外部带宽使用情况,配置所述字典缓存单元和行像素缓存单元中单口静态随机存储器的数量;
对所述压缩数据块进行Inflate解码处理,得到解码特征数据;
根据所述解码特征数据的数据类型确定解码数据,并将所述解码数据写入所述字典缓存单元;
从所述字典缓存单元读取待反过滤的所述解码数据,根据所述PNG图片参数信息对所述解码数据进行数据反过滤处理得到原始像素数据;
根据预设的像素缓存模式、所述PNG图片参数信息和图像宽度阈值对所述原始像素数据进行数据写入处理,以使所述原始像素数据作为下一次解码任务中反过滤处理的参考数据。
第二方面,本发明实施例提供了一种PNG图像解码硬件架构,其特征在于,包括:
内存管理模块,包括字典缓存单元和行像素缓存单元;
主控模块,用于对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;根据所述PNG图片参数信息和外部带宽使用情况,配置所述字典缓存单元和行像素缓存单元中单口静态随机存储器的数量;
Inflate解码模块,用于对所述压缩数据块进行Inflate解码处理,得到解码特征数据;根据所述解码特征数据的数据类型确定解码数据,并将所述解码数据写入所述字典缓存单元;
反过滤模块,用于从所述字典缓存单元读取待反过滤的所述解码数据,根据所述PNG图片参数信息对所述解码数据进行数据反过滤处理得到原始像素数据;根据预设的像素缓存模式、所述PNG图片参数信息和图像宽度阈值对所述原始像素数据进行数据写入处理,以使所述原始像素数据作为下一次解码任务中反过滤处理的参考数据。
第三方面,本发明实施例提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的PNG图像解码方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于被处理器执行时实现如第一方面所述的PNG图像解码方法。
本发明实施例包括:在利用PNG图像解码硬件架构进行解码的过程中,首先,对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;而后,根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元和行像素缓存单元中单口静态随机存储器的数量,通过灵活分配字典缓存单元和行像素缓存单元的内存大小,能在相同的硬件资源条件下,提高静态随机存储器的利用率;接着,对压缩数据块进行Inflate解码处理,得到解码特征数据;然后,根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元;而后,从字典缓存单元读取待反过滤的解码数据,根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;最后,根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理,以使原始像素数据作为下一次解码任务中反过滤处理的参考数据,有利于提高解码不同尺寸的PNG图像时的解码效率。即是说,本发明实施例的方案能够通过灵活分配字典缓存单元和行像素缓存单元的内存大小,从而节省硬件成本,提高静态随机存储器的利用率以及解码不同尺寸的PNG图像时的解码效率。
发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书以及附图中所特别指出的结构来实现和获得。
附图说明
图1是本发明一个实施例提供的用于执行PNG图像解码方法的PNG图像解码硬件架构的示意图;
图2是本发明一个实施例提供的PNG图像解码硬件架构的具体结构示意图;
图3是本发明一个实施例提供的内存管理模块的缓存管理示意图;
图4是解码1k×1k RGBA PNG图片时内存管理模块中SRAM的分配情况示意图;
图5是解码2k×1k RGBA PNG图片时内存管理模块中SRAM的分配情况示意图;
图6是本发明一个实施例提供的PNG图像解码方法的流程示意图;
图7是图6中步骤S120的具体流程示意图;
图8是图6中步骤S140的具体流程示意图;
图9是本发明一个实施例提供的图像的行像素示意图;
图10是图6中步骤S160的具体流程示意图;
图11是本发明一个实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
需要说明的是,在本发明的描述中虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上。描述到“第一”、“第二”只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
首先,对本发明中涉及的若干名词进行解释:
绝对数据:是压缩算法解码过程中得到的一类特征数据,可以用literal(原文)表示,能够作为解码结果直接输出。
相对数据:是压缩算法解码过程中得到的另一类特征数据,用于记录新数据与已经解码得到的历史数据的关系,用distance(数据距离)和length(数据长度)两个值表示,通过数据距离和数据长度从已经保存的历史数据(相当于字典)中读取相应长短数据(下面称之为参考数据)即可得到该笔解码的真实数据。
动态随机存储器(Dynamic Random Access Memory,DRAM),是常见的系统内存。DRAM只能将数据保持很短的时间。因此,DRAM需要由存储器控制电路按一定周期对存储器刷新,才能维系数据保存。
静态随机存储器(Static Random-Access Memory,SRAM),是常见的系统内存。SRAM的数据不需要刷新过程,在上电期间,数据不会丢失,但SRAM的成本较高。
AXI(Advanced eXtensible Interface高级可扩展接口)总线,是一种面向高性能、高带宽、低延迟的片内总线,支持读写并行、乱序传输、非对齐操作、只需要首地址的突发(Burst)传输等。
随着图像处理技术及计算机技术的快速发展,PNG(Portable Network GraphicFormat,流式网络图形格式)图像作为一种针对位图的新型的图像文件存储格式诞生,增加了GIF文件格式所不具备的一些特性,其目的是企图替代GIF和TIFF文件格式的图像。PNG解码主要包括:文件结构解析、Inflate解码和反过滤处理。其中,Inflate解码需要从已经解码的历史数据(即字典数据)中读取参考数据进行解码任务;反过滤处理则可能需要参考上一行像素的缓存数据从而得到原始图像的像素数据。因此,PNG硬件解码需要缓存历史数据和行像素数据。
相关技术中,通过设置固定SRAM来缓存字典数据和行像素数据,但会导致解码应用场景受限、SRAM利用率不高。
基于此,本发明提供了一种PNG图像解码方法、PNG图像解码硬件架构、电子设备和计算机可读存储介质,在利用PNG图像解码硬件架构进行解码的过程中,首先,对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;而后,根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元和行像素缓存单元中单口静态随机存储器的数量,通过灵活分配字典缓存单元和行像素缓存单元的内存大小,能在相同的硬件资源条件下,提高静态随机存储器的利用率;接着,对压缩数据块进行Inflate解码处理,得到解码特征数据;然后,根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元;而后,从字典缓存单元读取待反过滤的解码数据,根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;最后,根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理,以使原始像素数据作为下一次解码任务中反过滤处理的参考数据,有利于提高解码不同尺寸的PNG图像时的解码效率。因此,本发明实施例的方案能够通过灵活分配字典缓存单元和行像素缓存单元的内存大小,从而节省硬件成本,提高静态随机存储器的利用率以及解码不同尺寸的PNG图像时的解码效率。
下面结合附图,对本发明实施例作进一步阐述。
一方面,如图1所示,该PNG图像解码硬件架构包括:内存管理模块120、主控模块110、Inflate解码模块130和反过滤模块140,其中,内存管理模块120包括字典缓存单元121和行像素缓存单元122。
其中,主控模块110用于对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元121和行像素缓存单元122中单口静态随机存储器的数量。
Inflate解码模块130用于对压缩数据块进行Inflate解码处理,得到解码特征数据;根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元121。
反过滤模块140,用于从字典缓存单元121读取待反过滤的解码数据,根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理,以使原始像素数据作为下一次解码任务中反过滤处理的参考数据。
具体地,字典缓存单元121和行像素缓存单元122均为SRAM。
根据本发明实施例提供的PNG图像解码硬件架构,在利用PNG图像解码硬件架构进行解码的过程中,首先,通过利用主控模块110对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;而后,根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元121和行像素缓存单元122中单口静态随机存储器的数量,通过灵活分配字典缓存单元121和行像素缓存单元122的内存大小,能在相同的硬件资源条件下,提高静态随机存储器的利用率;接着,通过利用Inflate解码模块130对压缩数据块进行Inflate解码处理,得到解码特征数据;然后,根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元121;而后,通过利用反过滤模块140从字典缓存单元121读取待反过滤的解码数据,根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;最后,根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理,以使原始像素数据作为下一次解码任务中反过滤处理的参考数据,有利于提高解码不同尺寸的PNG图像时的解码效率。因此,通过使用本发明实施例提供的PNG图像解码硬件架构,能够适应性地调整字典缓存单元121和行像素缓存单元122的内存大小,从而节省硬件成本,提高静态随机存储器的利用率以及解码不同尺寸的PNG图像时的解码效率。
在一些实施例中,如图3所示,内存管理模块包括:多个单口静态随机存储器和接口控制模块,其中,接口控制模块与多个单口静态随机存储器电连接。
具体地,在主控模块110根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元121和行像素缓存单元122中单口静态随机存储器的数量的过程中,接口控制模块用于在图像宽度大于预设的宽度阈值的情况下,接收主控模块110发送的第一配置控制信号,根据第一配置控制信号将全部的单口静态随机存储器分配至字典缓存单元121;在图像宽度小于或等于宽度阈值的情况下,接收主控模块110发送的第二配置控制信号,基于第二配置控制信号将第一数量的单口静态随机存储器分配至行像素缓存单元122,将剩余的第二数量的单口静态随机存储器分配至字典缓存单元121,其中,第一数量是由图像宽度确定和外部带宽使用情况确定。如此,对内存管理模块120中的多个单口静态随机存储器实现了灵活的分配,适用于可以对不同尺寸的PNG图像进行解码,具有一定的普适性,同时有利于提高静态随机存储器的利用率。
举一示例,如图2所示,该PNG图像解码硬件架构具体包括:PNG图像处理模块100,总线模块200和DRAM;其中,PNG图像处理模块100中包括主控模块110、内存管理模块120、Inflate解码模块130、反过滤模块140、数据搬运模块和Huffman码表模块;此外,内存管理模块120包括字典缓存单元121和行像素缓存单元122,数据搬运模块包括第一数据搬运单元151、第二数据搬运单元152、第三数据搬运单元153和第四数据搬运单元154。具体地,总线模块200是AXI总线。
各个模块、单元之间的连接关系为:主控模块110分别与内存管理模块120、Inflate解码模块130、反过滤模块140电连接;Inflate解码模块130还与Huffman码表模块、内存管理模块120的字典缓存单元121和第一数据搬运单元151电连接;反过滤模块140还与字典缓存单元121、行像素缓存单元122、第三数据搬运单元153和第四数据搬运单元154电连接;内存管理模块120的字典缓存单元121还与第二数据搬运单元152连接;此外,第一数据搬运单元151、第二数据搬运单元152、第三数据搬运单元153和第四数据搬运单元154均通过总线模块200与DRAM连接。
可以理解的是,基于功能进行划分,可以将PNG图像解码硬件架构分为四个部分,分别是:控制部分、Inflate部分、内存管理部分和反过滤部分。接下来,分别对这四个部分进行进一步说明。
其中,控制部分包括主控模块110。主控模块110主要进行寄存器管理、PNG解码控制以及PNG文件结构解码,该主控模块110进行PNG文件结构解码可以获得图像尺寸、图像格式等参数信息。
具体地,主控模块110接收外部控制信号之后,首先根据外部控制信号开始配置自身寄存器并开启解码;而后,当主控模块110接收到待处理数据后,对待处理数据中的PNG结构部分数据解析,得到PNG图片参数信息和Deflate数据(基于Deflate的压缩数据块);其中,PNG图片参数信息包括:图像宽度和图像格式等信息;而后将剩余的Deflate数据传给Inflate模块解码。另外,主控模块110分别向内存管理模块120、Inflate模块、和反过滤模块140发送第一控制信号、第二控制信号和第三控制信号。
其中,发送至内存管理模块120的第一控制信号包括:第一开关信号和第一配置控制信号。具体地,第一开关信号用于控制内存管理模块120开启或关闭;第一配置控制信号用于配置Inflate解码模块130可使用的字典缓存单元121的内存大小、反过滤模块140可使用行像素缓存单元122的内存大小。
发送至Inflate模块的第二控制信号包括:第二开关信号和第二配置控制信号。具体地,第二开关信号用于控制Inflate解码模块130开启或关闭;第二配置控制信号用于指定Inflate解码模块130可使用的字典缓存单元121大小。
发送至反过滤模块140的第三控制信号包括:第三开关信号、PNG图片参数信息和第三配置控制信号。具体地,第三开关信号用于控制反过滤模块140开启或关闭;PNG图片参数信息包括:图像宽度和图像格式;第三配置控制信号用于预设行像素数据的像素缓存模式,其中,像素缓存模式包括自适应模式和强制模式。在一实施例中,在自适应模式下,在图像宽度小于或等于图像宽度阈值的情况下,反过滤模块140自适应使用存管理模块的SRAM,或者,在图像宽度大于图像宽度阈值的情况下,从DRAM读取行像素;在强制模式下,无论图像宽度大小反过滤模块140强制从DRAM读取行像素数据。反过滤模块140是否强制从DRAM读取行像素数据,跟中央处理器检测到总线是否繁忙以及应用场景相关,中央处理器可在解码前通过外部控制信号配置PNG解码中的像素缓存模式。可以理解的是,同一款芯片应用在如家电、工业控制、显示驱动、人机交互等不同的应用场景,使用的IP数量可能不同,总线处理的请求数目和请求数据量可能都会有极大的差异。当总线繁忙时,PNG图像处理模块100可以根据CPU发过来的总线繁忙信号,在新的一帧图像解码时不再使用DRAM的行像素缓存,而全部改用SRAM中缓存的行像素数据。
Inflate部分包括Inflate解码模块130、Huffman码表模块、第一数据搬运单元151和第二数据搬运单元152。Inflate解码模块130负责进行Inflate解码,Huffman码表模块存储Inflate解码过程用到的匹配码表,第一数据搬运单元151负责通过AXI总线从DRAM读取字典数据并传递给Inflate解码模块130,第二数据搬运单元152负责将字典数据通过AXI总线写到DRAM。
具体地,Inflate解码模块130接收到Deflate数据后,Inflate解码模块130进行Huffman码表建立和Huffman解码、LZ77解码等工作,详细的解码过程在此不做赘述,简单统称为Inflate解码。Inflate解码会从Huffman码表模块读写数据进行huffma解码码字匹配。Inflate解码过程,可能会解出绝对数据(literal),也有可能解出包括参考距离(distance)和参考长度(length)的相对数据。解出绝对数据时,意味着不需要进一步处理可以直接存到字典缓存。解出相对数据时,需要从已经解出的字典数据中往前回溯distance个byte的位置,然后从该位置往后读取length个byte的参考数据,然后根据当前的写地址将其写入字典缓存单元121,该过程称为查字典。Inflate解码不需要参考字典数据时直接将解码数据输出到内存管理模块120;Inflate解码需要参考字典数据且字典数据在字典缓存单元121时,从内存管理模块120的字典缓存单元121中读取字典数据处理后再写回字典缓存单元121;Inflate解码需要参考字典数据且参考字典数据在DRAM时,Inflate解码模块130向第一数据搬运单元151发起第一数据请求,控制第一数据搬运单元151通过AXI总线从DRAM读取字典数据,处理后再写回内存管理模块120的字典缓存单元121。此外,第二数据搬运单元152的内部缓存有限,因此第二数据搬运单元152会间断地从内存管理模块120的字典缓存单元121读取字典数据并通过AXI总线将字典数据写入DRAM中。
内存管理部分包括内存管理模块120,内存管理模块120负责字典缓存和行像素缓存分配,以及对访问内存管理模块120的接口进行切换控制。
具体地,如图3所示,内存管理模块120包括组成字典缓存单元121和行像素缓存单元122的单口静态随机存储器、以及不同读写端口的控制逻辑。以总共16k bytes大小的字典缓存单元121和4k bytes大小的行像素缓存单元122为例,说明内存管理模块120对内部的字典缓存单元121和行像素缓存单元122进行碎片化管理和综合管理。将20k bytes大小的SRAM平均拆成10个SRAM,由控制信号控制每个SRAM是进行字典缓存还是进行行像素缓存,具体接受Inflate解码模块130和第二数据搬运单元152的读写控制,还是反过滤模块140的读写控制。当行像素缓存单元122开启自适应模式且图像宽度小于等于预设的宽度阈值(可配置),缓存图像的行像素时使用内存管理模块120中的SRAM;当开启自适应行像素缓存模式且图像宽度大于阈值或者开启强制行模式,缓存图像的行像素时不会使用内存管理模块120中的SRAM。
进一步地,内存管理模块120中的SRAM分配原则,缓存图像行像素时从SRAM10、SRAM9依次开始使用,缓存字典数据时从SRAM1、SRAM2依次开始使用。结合图4和图5进一步说明行像素缓存模式为自适应模式的情况下,内存管理模块120的内存管理情况。
在一实施例中,结合图4,解码1k×1k RGBA PNG图片时,内存管理模块120的10个SRAM中,其中,SRAM1至SRAM8作为字典缓存单元121,被分配给Inflate解码模块130和第二数据搬运单元152使用、控制,用于缓存字典数据;SRAM9至SRAM10作为行像素缓存单元122,被分配给反过滤模块140使用,用于缓存行像素数据。在另一实施例中,结合图5,解码2k×1k RGBA PNG图片时,内存管理模块120的10个SRAM中,其中,SRAM1至SRAM6作为字典缓存单元121,被分配给Inflate解码模块130和第二数据搬运单元152使用、控制,用于缓存字典数据;SRAM7至SRAM10作为行像素缓存单元122,被分配给反过滤模块140使用,用于缓存行像素数据。
另外,内存管理模块120接口管理进一步说明。控制信号除了进行区分每个SRAM是用于字典缓存还是行像素缓存之外,字典缓存单元121接受的访问分别是:Inflate解码模块130的读写访问、第二数据搬运单元152的读访问、反过滤模块140的读访问,具体地,可根据实际需要区分读写优先级以及各个读数据之间的优先级。并且,行像素缓存单元122只接受反过滤模块140进行的读写访问,采用先读后写优先级即可。
反过滤部分包括反过滤模块140、第三数据搬运单元153和第四数据搬运单元154。反过滤模块140主要进行反过滤数据处理,第三数据搬运单元153负责通过AXI总线将行像素数据写到DRAM,第四数据搬运单元154负责通过AXI总线从DRAM读取行像素数据。
具体地,反过滤模块140从内存管理模块120的字典缓存单元121读取待反过滤的解码数据后,根据图像宽度和格式将反过滤数据分成预测模式和差分像素数据。
反过滤模块140从内存管理模块120的字典缓存SRAM读取待反过滤数据后,首先,根据图像宽度和格式将反过滤数据分成预测模式标志和差分像素数据。接着,反过滤模块140根据预测模式标志,选定本行数据或者上行数据作为参考数据,或者不需要参考将参考数据确定为0;其中,当需要读取上行像素数据时,会根据内存管理模块120是否缓存了行像素数据,选择从内存管理模块120的行像素缓存单元122读取行像素数据,还是发起数据请求通过第四数据搬运单元154和AXI总线从DRAM读取行像素数据。而后,将参考像素值加上差分像素数据后得到原始的像素数据;最后,根据行像素缓存单元122是否开启强制模式或自适应模式,以及根据图像宽度和宽度阈值,决定是否需要将每行像素数据都写入一份到内存管理模块120的行像素缓存单元122。具体地,若开启自适应模式并且图像宽度小于或等于宽度阈值,说明内存管理模块120容纳得下一行像素数据,则将每行像素数据写入行像素缓存单元122。若是开启自适应模式但图像宽度大于宽度阈值,说明内存管理模块120容纳不下一行像素数据,则不能用内存管理模块120缓存行像素数据。另外,不管是否用内存管理模块120缓存行像素数据,都需要通过第三数据搬运单元153和AXI总线将所有像素数据搬运到DRAM。
需要注意的是,数据搬运模块中的第一数据搬运单元151、第二数据搬运单元152、第三数据搬运单元153和第四数据搬运单元154内部皆设有缓存。
其中,第一数据搬运单元151用于响应于Inflate解码模块130发起的第一数据请求,通过AXI总线读取DRAM中的字典数据,然后将字典数据反馈给Inflate解码模块130。
第二数据搬运单元152用于在内存管理模块120中的字典缓存单元121非空且读接口可用的情况下,进行读数据并将读取的数据存入自身的缓存,在内部缓存数据足够或者Inflate解码结束后仍有字典数据需缓存,则通过AXI总线往DRAM发起写数据请求,将内部缓存的部分字典数据写入DRAM中。
第三数据搬运单元153用于在其内存缓存一定数据或者行过滤结束后仍有像素数据需缓存,则通过AXI总线往DRAM发起写数据请求,将内部缓存的部分像素数据写入DRAM中。
第四数据搬运单元154用于响应于反过滤模块140发起第二数据请求,通过AXI总线读取DRAM中的像素数据,然后将像素数据反馈给反过滤模块140。
本领域技术人员可以理解的是,图中示出的系统结构并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域技术人员可以理解的是,本发明实施例描述的系统架构以及应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
基于上述系统结构,下面提出本发明的PNG图像解码方法的各个实施例。
另一方面,如图6所示,该PNG图像解码方法能够应用于如图1所示的PNG图像解码硬件架构中,该PNG图像解码硬件架构包括内存管理模块,其中,内存管理模块包括字典缓存单元和行像素缓存单元;该PNG图像解码方法包括但不限于有步骤S110至步骤S160。
步骤S110:对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;
步骤S120:根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元和行像素缓存单元中单口静态随机存储器的数量;
步骤S130:对压缩数据块进行Inflate解码处理,得到解码特征数据;
步骤S140:根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元;
步骤S150:从字典缓存单元读取待反过滤的解码数据,根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;
步骤S160:根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理,以使原始像素数据作为下一次解码任务中反过滤处理的参考数据。
本发明实施例通过实施包括步骤S110至步骤S160的PNG图像解码方法,在利用PNG图像解码硬件架构进行解码的过程中,首先,对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;而后,根据PNG图片参数信息和外部带宽使用情况,配置字典缓存单元和行像素缓存单元中单口静态随机存储器的数量,通过灵活分配字典缓存单元和行像素缓存单元的内存大小,能在相同的硬件资源条件下,提高静态随机存储器的利用率;接着,对压缩数据块进行Inflate解码处理,得到解码特征数据;然后,根据解码特征数据的数据类型确定解码数据,并将解码数据写入字典缓存单元;而后,从字典缓存单元读取待反过滤的解码数据,根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据;最后,根据预设的像素缓存模式、PNG图片参数信息和图像宽度阈值对原始像素数据进行数据写入处理,以使原始像素数据作为下一次解码任务中反过滤处理的参考数据,有利于提高解码不同尺寸的PNG图像时的解码效率。即是说,本发明实施例的方案能够通过灵活分配字典缓存单元和行像素缓存单元的内存大小,从而节省硬件成本,提高静态随机存储器的利用率以及解码不同尺寸的PNG图像时的解码效率。
具体地,PNG图片参数信息包括图像宽度和图像格式信息;数据类型包括绝对数据和相对数据。
在一实施例中,内存管理模块包括:多个单口静态随机存储器和接口控制模块,接口控制模块与多个单口静态随机存储器电连接。另外,结合图7对步骤S120进行进一步的说明,步骤S120可以包括但不限于有步骤S210至步骤S220。
步骤S210:在图像宽度大于预设的宽度阈值的情况下,发送第一配置控制信号至接口控制模块,将全部的单口静态随机存储器分配至字典缓存单元。
步骤S220:在图像宽度小于或等于宽度阈值的情况下,发送第二配置控制信号至接口控制模块,将第一数量的单口静态随机存储器分配至行像素缓存单元,将剩余的第二数量的单口静态随机存储器分配至字典缓存单元,其中,第一数量由图像宽度和外部带宽使用情况确定。
本发明实施例通过步骤S210至步骤S220,可以根据图像宽度和宽度阈值,分配内存管理模块中的单口静态随机存储器。例如,如图4所示,内存管理模块共有10个单口静态随机存储器(SRAM),在解码1k×1k RGBA PNG图片时,将其中2个连续的单口静态随机存储器分配至行像素缓存单元,而后将剩余的8个连续的单口静态随机存储器分配至字典缓存单元。
需要说明的是,同一款芯片应用在如家电、工业控制、显示驱动、人机交互等不同的应用场景,使用的IP数量可能不同,总线处理的请求数目和请求数据量可能都会有极大的差异。当总线繁忙时,PNG图像处理模块可以根据CPU发过来的总线繁忙信号,在新的一帧图像解码时不再使用DRAM缓存行像素,而全部改用SRAM缓存行像素。也可以根据实际情况进行分配字典缓存单元和行像素缓存单元的内存大小。
在一实施例中,结合图8对步骤S140进一步的说明,步骤S140可以包括但不限于有步骤S310至步骤S320。
步骤S310:在数据类型为绝对数据的情况下,确定绝对数据为解码数据,并直接将解码数据写入内存管理模块的字典缓存单元。
步骤S320:在数据类型为相对数据的情况下,根据解码相对数据所需要读取的参考数据的存储位置读取参考数据;将参考数据确定为解码数据并根据当前的写地址将解码数据写入字典缓存单元。
本发明实施例通过步骤S310至步骤S320,根据不同的数据类型进行数据读写处理,有利于提高解码效率。
可以理解的是,Inflate解码过程,可能会解出绝对数据(literal),也有可能解出包括参考距离(distance)和参考长度(length)的相对数据。当处理到绝对数据时,则直接将当前地址的绝对数据作为解码结果内存管理模块的字典缓存单元中;而当处理相对数据时,需要从字典数据中回读参考数据才能得到真实的解码结果。此时,需要根据distance和length判断要回读的参考数据的存储位置读取参考数据,将参考数据确定为解码数据并根据当前的写地址将解码数据写入字典缓存单元。
在一实施例中,PNG图像解码硬件架构还包括:数据搬运模块、总线模块和动态随机存储器,数据搬运模块分别与内存管理模块和动态随机存储器电连接,总线模块设置在数据搬运模块和动态随机存储器之间。进一步地,步骤S320中的“根据解码相对数据所需要读取的参考数据的存储位置读取参考数据”可以包括但不限于有以下步骤:
在解码相对数据所需要读取的参考数据位于字典缓存单元的情况下,从字典缓存单元中读取参考数据;在解码相对数据所需要读取的参考数据位于动态随机存储器的情况下,向数据搬运模块发送读数据请求,以控制数据搬运模块通过总线模块从动态随机存储器读取参考数据。
在一实施例中,对步骤S150中的“根据PNG图片参数信息对解码数据进行数据反过滤处理得到原始像素数据”进行进一步说明,该步骤可以包括但不限于有以下步骤:
首先,根据PNG图片参数信息将解码数据划分为预测模式标志和差分像素数据;其次,根据预测模式标志确定参考像素值;最后,根据参考像素值和差分像素数据得到原始像素数据。
可以理解的是,在从字典缓存单元读取待反过滤的解码数据之后,根据图像宽度和图像格式将解码数据划分为预测模式标志和差分像素数据;根据预测模式标志确定参考像素值,并将参考像素值和差分像素数据相加,得到原始像素数据。
具体地,结合图9,对“根据预测模式标志确定参考像素值”进行进一步说明。
图9中包括,待过滤的像素点X,与像素点X相邻的左相邻像素点A,上相邻像素点B,左上像素点C。其中,像素点X相邻与左相邻像素点A位于第n+1行像素上,上相邻像素点B和左上像素点C位于第n行像素上。具体地,预测模式标志为pred_mode[7:0]。在pred_mode[7:0]=0的情况下,表示不需要参考其他像素,参考像素值为0;在pred_mode[7:0]=1的情况下,表示需要参考左相邻像素点A的像素值;在pred_mode[7:0]=2的情况下,表示需要参考上相邻像素点B的像素值;在pred_mode[7:0]=3的情况下,表示需要参考左相邻像素点A和上相邻像素点B的像素平均值;在pred_mode[7:0]=4的情况下,表示需要参考左相邻像素点A、上相邻像素点B和左上像素点C中最接近(A+B-C)值的像素值;在pred_mode[7:0]=5~255的情况下缺省。而Inflate解码可以得到像素差分值Δ,计算像素点X原始像素数据:X像素值=参考像素值+像素差分值Δ。
可以理解的是,当需要读取上行像素数据(上相邻像素点B和左上像素点C的像素值)时,在内存管理模块缓存了行像素数据的情况下,从内存管理模块的行像素缓存单元读取行像素数据;在内存管理模块未缓存行像素数据的情况下,发起第二数据请求通过第四数据搬运单元和AXI总线从DRAM读取行像素数据。
在一实施例中,结合图10对步骤S160进行进一步说明,步骤S160包括但不限于有步骤S410至步骤S430。
步骤S410:在预设的像素缓存模式为自适应模式,且图像宽度小于或等于图像宽度阈值的情况下,将原始像素数据写入行像素缓存单元;
步骤S420:在像素缓存模式为自适应模式,且图像宽度大于图像宽度阈值的情况下,将原始像素数据写入动态随机存储器;
步骤S430:在像素缓存模式为强制模式的情况下,将原始像素数据写入动态随机存储器。
通过步骤S410至步骤S430,根据像素缓存模式缓存原始像素数据,有利于原始像素数据作为下一次解码任务中反过滤处理的参考数据。
根据每一张PNG图像的字典缓存和行像素缓存的动态需求特性,对两个缓存单元进行综合管理,提高了PNG解码的应用灵活性、SRAM利用率和解码效率。
综上所述,需要强调的是:PNG解码主要包括三个部分:文件结构解析、Inflate解码、反过滤处理。一方面,Inflate解码过程可能需要参考已经解码的字典数据,PNG图片使用的deflate压缩的字典范围一般往前追溯32k bytes。因为越近的字典数据相关性越大,且SRAM硬件资源有限,一般的PNG硬件解码器只会将部分较近的N bytes字典数据存放在本地SRAM,完整的32k bytes数据存放在DRAM中。根据解码过程各个解码数据对来决定是否需要参考字典数据,若确定需要参考字典数据,则需要进一步确定是从SRAM查取字典,还是从DRAM查取字典。从SRAM取字典数据响应及时,但是从DRAM取数则需要一定的总线响应时间,因此Inflate解码速度很大程度上受本地SRAM字典大小影响,它的存储空间越大,意味着从SRAM取数的机率越大,从DRAM取数的机率越小,从而等待总线处理时间越短,Inflate解码速度越快。极限的情况是设置32k bytes的SRAM方案或者全部从DRAM读取字典,前者取字典数据快解码速度快,但成本过高;后者成本低,但读取取字典数据慢,解码速度慢。因此,本发明的PNG硬件解码的字典缓存方案使用SRAM+DRAM的方式,兼顾了较低的硬件成本和较高的解码效率。
另一方面,在反过滤处理过程中可能需要参考上一行像素的数据。反过滤处理可以从DRAM回读上一行的像素数据,也可以设置SRAM对一行像素进行保存,以便读写。以RGBA格式1920×1080PNG图片为例,将需要7680bytes(1920×4=7680bytes)空间的大小来存储一行像素;若是RGBA格式3840×2160PNG图片,则需要15360bytes(3840×4=15360bytes)空间的大小来存储一行像素。同样地,从SRAM取行像素则速度快但硬件成本高,从DRAM取行像素硬件成本低但速度略慢,回读速度受限于系统总线任务。因此,本发明的PNG硬件解码的行像素存储方案通常使用SRAM+DRAM的方式,兼顾了较低的硬件成本和较高的解码效率。
从节省硬件成本且兼顾解码效率考虑,硬件解码的字典缓存方案、行像素缓存方案均采用SRAM+DRAM方案。但是现有的方案都是设置固定的字典缓存SRAM和固定的行像素缓存SRAM。但是这样的固化方案,使得应用受限,SRAM利用率不高。例如:设置了16k bytes字典缓存SRAM+8k bytes行像素缓存SRAM,例如:当已知解码图片需求字典SRAM较小时,但是4k RGBA格式PNG解码只能从DRAM回读上行像素,而设置过大的字典SRAM是比较浪费的。当外部系统总线带宽紧张,希望减少DRAM行像素访问数据访问,此时固定方案则无法实现。若从DRAM回读行像素可能会需多传输一倍的像素数据,以1920×1080RGBA图片格式30帧解码计算将多消耗248MB/s,这进一步加剧带宽紧张情况。可见固定方案使得PNG模块在系统场景应用中极不灵活。而本发明实施例能够在通过使用SRAM+DRAM的方式,在节省硬件成本的同时,兼顾较高的解码效率;并通过对字典缓存单元和行像素缓存单元进行灵活分配、管理,提高PNG解码的应用灵活性、SRAM利用率和对不同宽度图片的解码效率。
第三方面,参照图11,电子设备1100包括:存储器1120、处理器1110及存储在存储器1120上并可在处理器上运行的计算机程序,处理器1110执行计算机程序时实现如第一方面的PNG图像解码方法。
处理器1110和存储器1120可以通过总线或者其他方式连接。
处理器1110,可以采用通用的中央处理器、微处理器、应用专用集成电路、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器1120作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器1120可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述实施例的PNG图像解码方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的PNG图像解码方法,例如,执行以上描述的图6、图7、图8和图10中所示的方法步骤。
以上所描述的装置实施例或者系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
第四方面,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述装置实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的PNG图像解码方法,例如,执行以上描述的图6、图7、图8和图10中所示的方法步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本发明所限定的范围内。

Claims (6)

1.一种PNG图像解码方法,其特征在于,应用于PNG图像解码硬件架构,所述PNG图像解码硬件架构包括内存管理模块,其中,所述内存管理模块包括字典缓存单元和行像素缓存单元;
所述PNG图像解码方法包括:
对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;
根据所述PNG图片参数信息和外部带宽使用情况,配置所述字典缓存单元和行像素缓存单元中单口静态随机存储器的数量;
对所述压缩数据块进行Inflate解码处理,得到解码特征数据;
根据所述解码特征数据的数据类型确定解码数据,并将所述解码数据写入所述字典缓存单元;
从所述字典缓存单元读取待反过滤的所述解码数据,根据所述PNG图片参数信息对所述解码数据进行数据反过滤处理得到原始像素数据;
根据预设的像素缓存模式、所述PNG图片参数信息和图像宽度阈值对所述原始像素数据进行数据写入处理,以使所述原始像素数据作为下一次解码任务中反过滤处理的参考数据;
其中,所述内存管理模块包括:多个单口静态随机存储器和接口控制模块,所述接口控制模块与所述多个单口静态随机存储器电连接;
所述PNG图片参数信息包括图像宽度,所述根据所述PNG图片参数信息和外部带宽使用情况,配置所述字典缓存单元和行像素缓存单元中单口静态随机存储器的数量,包括:
在所述图像宽度大于预设的宽度阈值的情况下,发送第一配置控制信号至所述接口控制模块,将全部的所述单口静态随机存储器分配至所述字典缓存单元;
在所述图像宽度小于或等于所述宽度阈值的情况下,发送第二配置控制信号至所述接口控制模块,将第一数量的所述单口静态随机存储器分配至所述行像素缓存单元,将剩余的第二数量的所述单口静态随机存储器分配至所述字典缓存单元,其中,所述第一数量由所述图像宽度和所述外部带宽使用情况确定;
所述数据类型包括绝对数据和相对数据,所述根据所述解码特征数据的数据类型确定解码数据,并将所述解码数据写入所述字典缓存单元,包括:
在所述数据类型为绝对数据的情况下,确定所述绝对数据为解码数据,并直接将所述解码数据写入所述内存管理模块的所述字典缓存单元;
在所述数据类型为相对数据的情况下,根据解码所述相对数据所需要读取的参考数据的存储位置读取所述参考数据;将所述参考数据确定为解码数据并根据当前的写地址将所述解码数据写入所述字典缓存单元;
所述根据预设的像素缓存模式、所述PNG图片参数信息和图像宽度阈值对所述原始像素数据进行数据写入处理,包括:
在所述预设的像素缓存模式为自适应模式,且所述图像宽度小于或等于所述图像宽度阈值的情况下,将所述原始像素数据写入所述行像素缓存单元;
在所述像素缓存模式为自适应模式,且图像宽度大于图像宽度阈值的情况下,将所述原始像素数据写入动态随机存储器;
在所述像素缓存模式为强制模式的情况下,将所述原始像素数据写入所述动态随机存储器。
2.根据权利要求1所述PNG图像解码方法,其特征在于,所述PNG图像解码硬件架构还包括:数据搬运模块、总线模块和动态随机存储器,所述数据搬运模块分别与所述内存管理模块和所述动态随机存储器电连接,所述总线模块设置在所述数据搬运模块和所述动态随机存储器之间;
所述根据解码所述相对数据所需要读取的参考数据的存储位置读取所述参考数据,包括:
在解码所述相对数据所需要读取的参考数据位于所述字典缓存单元的情况下,从所述字典缓存单元中读取参考数据;
在解码所述相对数据所需要读取的参考数据位于所述动态随机存储器的情况下,向所述数据搬运模块发送读数据请求,以控制所述数据搬运模块通过所述总线模块从所述动态随机存储器读取参考数据。
3.根据权利要求1所述PNG图像解码方法,其特征在于,所述根据所述PNG图片参数信息对所述解码数据进行数据反过滤处理得到原始像素数据,包括:
根据所述PNG图片参数信息将所述解码数据划分为预测模式标志和差分像素数据;
根据所述预测模式标志确定参考像素值;
根据所述参考像素值和所述差分像素数据得到所述原始像素数据。
4.一种PNG图像解码硬件架构,其特征在于,包括:
内存管理模块,包括字典缓存单元和行像素缓存单元;
主控模块,用于对获取的待解码数据进行文件结构解析处理,得到PNG图片参数信息和压缩数据块;根据所述PNG图片参数信息和外部带宽使用情况,配置所述字典缓存单元和行像素缓存单元中单口静态随机存储器的数量;
Inflate解码模块,用于对所述压缩数据块进行Inflate解码处理,得到解码特征数据;根据所述解码特征数据的数据类型确定解码数据,并将所述解码数据写入所述字典缓存单元;
反过滤模块,用于从所述字典缓存单元读取待反过滤的所述解码数据,根据所述PNG图片参数信息对所述解码数据进行数据反过滤处理得到原始像素数据;根据预设的像素缓存模式、所述PNG图片参数信息和图像宽度阈值对所述原始像素数据进行数据写入处理,以使所述原始像素数据作为下一次解码任务中反过滤处理的参考数据;
其中,所述内存管理模块包括:多个单口静态随机存储器和接口控制模块,所述接口控制模块与所述多个单口静态随机存储器电连接;
所述PNG图片参数信息包括图像宽度,所述根据所述PNG图片参数信息和外部带宽使用情况,配置所述字典缓存单元和行像素缓存单元中单口静态随机存储器的数量,包括:
在所述图像宽度大于预设的宽度阈值的情况下,发送第一配置控制信号至所述接口控制模块,将全部的所述单口静态随机存储器分配至所述字典缓存单元;
在所述图像宽度小于或等于所述宽度阈值的情况下,发送第二配置控制信号至所述接口控制模块,将第一数量的所述单口静态随机存储器分配至所述行像素缓存单元,将剩余的第二数量的所述单口静态随机存储器分配至所述字典缓存单元,其中,所述第一数量由所述图像宽度和所述外部带宽使用情况确定;
所述数据类型包括绝对数据和相对数据,所述根据所述解码特征数据的数据类型确定解码数据,并将所述解码数据写入所述字典缓存单元,包括:
在所述数据类型为绝对数据的情况下,确定所述绝对数据为解码数据,并直接将所述解码数据写入所述内存管理模块的所述字典缓存单元;
在所述数据类型为相对数据的情况下,根据解码所述相对数据所需要读取的参考数据的存储位置读取所述参考数据;将所述参考数据确定为解码数据并根据当前的写地址将所述解码数据写入所述字典缓存单元;
所述根据预设的像素缓存模式、所述PNG图片参数信息和图像宽度阈值对所述原始像素数据进行数据写入处理,包括:
在所述预设的像素缓存模式为自适应模式,且所述图像宽度小于或等于所述图像宽度阈值的情况下,将所述原始像素数据写入所述行像素缓存单元;
在所述像素缓存模式为自适应模式,且图像宽度大于图像宽度阈值的情况下,将所述原始像素数据写入动态随机存储器;
在所述像素缓存模式为强制模式的情况下,将所述原始像素数据写入所述动态随机存储器。
5.一种电子设备,其特征在于,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至3任意一项所述的PNG图像解码方法。
6.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于被处理器执行时实现如权利要求1至3任意一项所述的PNG图像解码方法。
CN202310628485.8A 2023-05-30 2023-05-30 Png图像解码方法及其硬件架构、电子设备、存储介质 Active CN116760996B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310628485.8A CN116760996B (zh) 2023-05-30 2023-05-30 Png图像解码方法及其硬件架构、电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310628485.8A CN116760996B (zh) 2023-05-30 2023-05-30 Png图像解码方法及其硬件架构、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN116760996A CN116760996A (zh) 2023-09-15
CN116760996B true CN116760996B (zh) 2024-02-23

Family

ID=87958059

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310628485.8A Active CN116760996B (zh) 2023-05-30 2023-05-30 Png图像解码方法及其硬件架构、电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN116760996B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340537A (zh) * 2007-04-27 2009-01-07 恩益禧电子股份有限公司 数据展开装置和数据展开方法
CN107105266A (zh) * 2017-05-22 2017-08-29 郑州云海信息技术有限公司 一种png图像的解码方法、装置及系统
CN113658281A (zh) * 2020-05-12 2021-11-16 湖南迪文科技有限公司 一种高效处理png图片的装置和方法
CN113891088A (zh) * 2021-11-24 2022-01-04 苏州华兴源创科技股份有限公司 Png图像解压逻辑电路及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340537A (zh) * 2007-04-27 2009-01-07 恩益禧电子股份有限公司 数据展开装置和数据展开方法
CN107105266A (zh) * 2017-05-22 2017-08-29 郑州云海信息技术有限公司 一种png图像的解码方法、装置及系统
CN113658281A (zh) * 2020-05-12 2021-11-16 湖南迪文科技有限公司 一种高效处理png图片的装置和方法
CN113891088A (zh) * 2021-11-24 2022-01-04 苏州华兴源创科技股份有限公司 Png图像解压逻辑电路及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PNG的硬件解码加速设计;郑天翼;黄世震;韦明;;现代电子技术(04);全文 *

Also Published As

Publication number Publication date
CN116760996A (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
US10313880B2 (en) Reformatting data to decrease bandwidth between a video encoder and a buffer
CN101714161A (zh) 一种嵌入式浏览器缓存装置和方法
US9430394B2 (en) Storage system having data storage lines with different data storage line sizes
JP5196239B2 (ja) 情報処理装置及び方法
WO2023134128A1 (zh) 一种视频压缩处理方法、装置及介质
WO2017045540A1 (zh) 用于智能终端的图片处理方法、装置、终端设备及系统
CN112235579A (zh) 视频处理方法、计算机可读存储介质及电子设备
CN108377394A (zh) 视频编码器的图像数据读取方法、计算机装置及计算机可读存储介质
CN114466196B (zh) 视频数据处理方法、系统、装置及计算机可读存储介质
CN114968102B (zh) 一种数据缓存方法、装置、系统、计算机设备及存储介质
CN114077554B (zh) 一种数据解码方法、系统、设备及介质
CN101212680B (zh) 图像数据的存储器存取方法及系统
CN115209145A (zh) 一种视频压缩方法、系统、装置及可读存储介质
CN116760996B (zh) Png图像解码方法及其硬件架构、电子设备、存储介质
CN111355962A (zh) 适用于多参考帧的视频解码高速缓存方法、计算机装置及计算机可读存储介质
US10418002B2 (en) Merged access units in frame buffer compression
US20190095338A1 (en) Semiconductor device, data processing system, and semiconductor device control method
US6785337B2 (en) MPEG picture processing apparatus and data transferring method using the apparatus
US7861007B2 (en) Method and apparatus for multimedia display in a mobile device
CN101847394B (zh) 用以解码及显示视讯文件的存储器映射方法及装置
CN110362519B (zh) 接口装置和接口方法
CN113535606A (zh) 一种数据处理方法及装置
CN114359029B (zh) 图像处理方法及其装置、系统、存储介质
CN117312201B (zh) 一种数据传输方法、装置及加速器设备、主机和存储介质
CN114554126B (zh) 一种基板管理控制芯片、视频数据传输方法及服务器

Legal Events

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