CN105893086B - 一种基于音频处理器的系统固件压缩方法及其解压缩方法 - Google Patents

一种基于音频处理器的系统固件压缩方法及其解压缩方法 Download PDF

Info

Publication number
CN105893086B
CN105893086B CN201610192804.5A CN201610192804A CN105893086B CN 105893086 B CN105893086 B CN 105893086B CN 201610192804 A CN201610192804 A CN 201610192804A CN 105893086 B CN105893086 B CN 105893086B
Authority
CN
China
Prior art keywords
system firmware
program segment
decompression
functional program
image
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
CN201610192804.5A
Other languages
English (en)
Other versions
CN105893086A (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.)
Shenzhen Tendzone Intelligent Technology Co ltd
Original Assignee
Shenzhen Tendzone Intelligent 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 Shenzhen Tendzone Intelligent Technology Co ltd filed Critical Shenzhen Tendzone Intelligent Technology Co ltd
Priority to CN201610192804.5A priority Critical patent/CN105893086B/zh
Publication of CN105893086A publication Critical patent/CN105893086A/zh
Application granted granted Critical
Publication of CN105893086B publication Critical patent/CN105893086B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明提供一种基于音频处理器的系统固件压缩方法及其解压缩方法,所述系统固件压缩方法包括以下步骤:步骤S1,对基于音频处理器的系统固件进行字符串压缩编码,得到压缩后的功能程序段,所述功能程序段为系统固件源数据对应的各段功能程序;步骤S2,加入解压缩程序段的字符串,得到未经压缩的解压缩程序段;步骤S3,将未经压缩的解压缩程序段和压缩后的功能程序段合在一起,并生成软件镜像。本发明能够解决了存储介质过小存储不足问题,从而可以选择小容量存储介质,达到了降低成本的目的;而因为系统固件的软件镜像变得更小时,将缩短整个系统固件的软件升级时间,同时也降低了设备升级过程当中出错的概率,提高了产品的稳定性。

Description

一种基于音频处理器的系统固件压缩方法及其解压缩方法
技术领域
本发明涉及一种压缩方法及解压缩方法,尤其涉及一种基于音频处理器的系统固件压缩方法及其解压缩方法。
背景技术
在传统的音频处理器系统中,开发者通过编译器将软件源代码编译成镜像文件,如*.axf、*.hex、*.bin、*.coff、*.ais等格式文件,再通过各种烧录器将镜像文件烧写到存储介质当中,其中存储介质有诸如sd卡、nand flash、nor flash、spi flash和MCU内部闪存等,其中有些存储介质不可以用于执行代码如sd卡、nand flash和spi flash,这些部件在音频处理器系统中仅充当存储介质,系统启动时,需通过内部启动程序先加载这些存储介质中的软件镜像到内存中,然后跳转到软件镜像的入口地址,软件镜像得以正确执行。当音频处理器功能变得更复杂时,软件镜像将变得庞大,这时候我们需要选择存储空间更大的存储介质,烧录存储介质的时间也变得更长,而在真正的产品开发中,不仅需要考虑生产效率问题,还要考虑系统成本的问题;因此,必须要寻找一种更优的方案来解决以上问题,而不是接受这种让人吃力不讨好的方案。
发明内容
本发明所要解决的技术问题是需要提供一种能够通过更小的容量存储介质容纳更复杂的音频处理器的系统固件软件镜像,以实现优化烧录镜像存储介质时间等目的的系统固件压缩方法及其解压缩方法。
对此,本发明提供一种基于音频处理器的系统固件压缩方法,包括以下步骤:
步骤S1,对基于音频处理器的系统固件进行字符串压缩编码,得到压缩后的功能程序段,所述功能程序段为系统固件源数据对应的各段功能程序;
步骤S2,加入解压缩程序段的字符串,得到未经压缩的解压缩程序段;
步骤S3,将未经压缩的解压缩程序段和压缩后的功能程序段合在一起,并生成软件镜像。
本发明的进一步改进在于,所述步骤S1中,在对系统固件进行字符串压缩编码时,加入各段功能程序的运行地址。
本发明的进一步改进在于,所述步骤S1通过哈夫曼编码压缩算法对系统固件的源数据进行字符串压缩编码。
本发明的进一步改进在于,所述步骤S1中,包括以下子步骤:
步骤S101,统计出系统固件的源数据中各个字符出现频率;
步骤S102,按照出现频率对各个字符进行排序;
步骤S103,根据排序构建哈夫曼树的编码结构;
步骤S104,依据哈夫曼树的编码结构对字符串进行编码。
本发明的进一步改进在于,所述步骤S1中,还包括步骤S105,将编码后的功能程序段进行按位存储。
本发明的进一步改进在于,还包括步骤S4,将步骤S3生成的软件镜像烧录至存储介质中。
本发明的进一步改进在于,所述音频处理器的系统固件为基于OmapL138的系统固件。
本发明的进一步改进在于,步骤S1中,得到压缩后的功能程序段后生成功能程序镜像,所述步骤S2中,通过未经压缩的解压缩程序段生成解压缩程序镜像,所述步骤S3将功能程序镜像和功能程序镜像合在一起生成软件镜像。
本发明还提供一种基于音频处理器的系统固件解压缩方法,所述系统固件解压缩方法用于对上述的软件镜像进行解压缩。
本发明的进一步改进在于,包括以下步骤:
步骤A,启动并加载整个软件镜像到内存中;
步骤B,跳转到解压缩程序段的程序入口,通过解压缩程序对压缩后的功能程序段的镜像文件进行解压缩得到原始的功能程序镜像数据;
步骤C,根据功能程序镜像数据将数据拷贝至各段的运行地址;
步骤D,跳转至功能程序段入口,正常运行所述系统固件。
与现有技术相比,本发明的有益效果在于:能够使得原有系统固件的软件镜像变为更小的镜像,解决了存储介质过小存储不足问题,从而可以选择小容量存储介质,达到了降低成本的目的;而因为系统固件的软件镜像变得更小时,将缩短整个系统固件的软件升级时间,同时也降低了设备升级过程当中出错的概率,提高了产品的稳定性;由于系统固件的软件镜像变得更小,缩短了烧录镜像文件的时间,从而提高了生产效率,减少了人力成本,加之,由于存储介质中的功能程序段镜像被压缩,可防止黑客对存储介质读出并直接进行静态分析从而得到一些程序关键的信息,提高了产品的保密性。
附图说明
图1是本发明一种实施例的工作流程示意图;
图2是本发明一种实施例步骤S1的工作流程示意图;
图3是本发明一种实施例哈夫曼树的编码结构示意图;
图4是本发明一种实施例的工作原理示意图。
具体实施方式
下面结合附图,对本发明的较优的实施例作进一步的详细说明。
如图1所示,本例提供一种基于音频处理器的系统固件压缩方法,包括以下步骤:
步骤S1,对基于音频处理器的系统固件进行字符串压缩编码,得到压缩后的功能程序段,所述功能程序段为系统固件源数据对应的各段功能程序;
步骤S2,加入解压缩程序段的字符串,得到未经压缩的解压缩程序段;
步骤S3,将未经压缩的解压缩程序段和压缩后的功能程序段合在一起,并生成软件镜像。
如果对一段数据进行非失真压缩可以去掉数据当中的冗余部分使数据变得更小,但是数据中的信息量并不会改变;而通常烧录到存储介质中的软件镜像含有较大数据冗余,故可以对软件镜像进行压缩。
本例所述步骤S1中,在对系统固件进行字符串压缩编码时,加入各段功能程序的运行地址,以便在解压缩之后,能够快速便捷地找到各段功能程序的运行地址;所述步骤S1通过哈夫曼编码压缩算法对系统固件的源数据进行字符串压缩编码。
如图2所示,本例所述步骤S1中,优选包括以下子步骤:
步骤S101,统计出系统固件的源数据中各个字符出现频率;
步骤S102,按照出现频率对各个字符进行排序;
步骤S103,根据排序构建哈夫曼树的编码结构;
步骤S104,依据哈夫曼树的编码结构对字符串进行编码;
步骤S105,将编码后的功能程序段进行按位存储。
本例所述步骤S104中,依据哈夫曼树的编码结构对字符串进行编码,即为依据哈夫曼树的编码结构对源数据的字符串进行编码;本例还优选包括步骤S4,将步骤S3生成的软件镜像烧录至存储介质中;所述音频处理器的系统固件优选为基于OmapL138的系统固件;步骤S1中,得到压缩后的功能程序段后生成功能程序镜像,所述步骤S2中,通过未经压缩的解压缩程序段生成解压缩程序镜像,所述步骤S3将功能程序镜像和功能程序镜像合在一起生成软件镜像,这样操作能够便于整个系统固件的软件镜像的生成,降低出错率。
在本例中,优选采用了哈夫曼编码压缩算法;哈夫曼编码的主导思想是根据字符出现的概率来构造平均长度最短的编码,并且保存编码的唯一可解性。例如一个系统固件源数据的字符串是abcabcabcabcabcabcddddddddd,其中a、b和c的出现次数均为6次,d的出现次数为9次;按照一般的存储方法,一个字符占用一个字节,需要27个字节来存储该字符串;本例采用哈夫曼进行压缩编码时,可首先构建哈夫曼树的编码结构,如图3所示。
然后再根据图3的编码结构对字符串进行编码,得出001,1000,0110,0001,1000,0110,0001,1000,0110,1111,1111,1111,1111,11,这里是按位存储,之前的27字节就被压缩到了7字节,这样,在解压的时候按照哈夫曼树译码进行还原;其压缩编码的框图如图2所示。
而对应的解压缩过程相对比较简单,直接根据构建的哈夫曼树进行译码得到源数据。
因此,本例还提供一种基于音频处理器的系统固件解压缩方法,所述系统固件解压缩方法用于对上述的软件镜像进行解压缩。
本例所述系统固件解压缩方法包括以下步骤:
步骤A,启动并加载整个软件镜像到内存中;
步骤B,跳转到解压缩程序段的程序入口,通过解压缩程序对压缩后的功能程序段的镜像文件进行解压缩得到原始的功能程序镜像数据;
步骤C,根据功能程序镜像数据将数据拷贝至各段的运行地址;
步骤D,跳转至功能程序段入口,正常运行所述系统固件。
本例的实现原理和方案如图4所示,基于可行性分析之后得知软件镜像可以压缩,但是当软件镜像加载到内存中后要得以执行,就必须把数据还原成主MCU可以识别的指令和实际的数据,还原的过程在这里其实就是所述系统固件解压缩方法的工作过程。
所述系统固件解压缩方法的工作过程在音频处理器的主MCU中完成,而且解压缩部分是不能被压缩,否则MCU无法进行译指,系统将跑飞,所以这里将整个系统固件的软件镜像分为两部分,一部分是未经压缩的解压缩程序段,另一部分为压缩后的功能程序段,两部分合在一起成为最终的软件镜像。主MCU启动时会加载整个软件镜像到内存中,而后跳转到解压缩程序段的程序入口,解压缩程序将对第二部分亦即功能程序段的功能程序镜像进行解压缩得到原始的镜像数据,然后再根据镜像数据将数据拷贝至各段的运行地址,最后执行跳转至功能程序段入口,使得系统正常运行。
综上,本例能够使得原有系统固件的软件镜像变为更小的镜像,解决了存储介质过小存储不足问题,从而可以选择小容量存储介质,达到了降低成本的目的;而因为系统固件的软件镜像变得更小时,将缩短整个系统固件的软件升级时间,同时也降低了设备升级过程当中出错的概率,提高了产品的稳定性;由于系统固件的软件镜像变得更小,缩短了烧录镜像文件的时间,从而提高了生产效率,减少了人力成本,加之,由于存储介质中的功能程序段镜像被压缩,可防止黑客对存储介质读出并直接进行静态分析从而得到一些程序关键的信息,提高了产品的保密性。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (4)

1.一种基于音频处理器的系统固件压缩方法,其特征在于,包括以下步骤:
步骤S1,对基于音频处理器的系统固件进行字符串压缩编码,加入各段功能程序的运行地址,得到压缩后的功能程序段,生成功能程序镜像,所述功能程序段为系统固件源数据对应的各段功能程序;
步骤S2,加入解压缩程序段的字符串,得到未经压缩的解压缩程序段,通过未经压缩的解压缩程序段生成解压缩程序镜像;
步骤S3,将未经压缩的解压缩程序段所对应的解压缩程序镜像和压缩后的功能程序段所对应的功能程序镜像合在一起,并生成软件镜像;
所述音频处理器的系统固件为基于OmapL138的系统固件;
所述步骤S1通过哈夫曼编码压缩算法对系统固件的源数据进行字符串压缩编码,并包括以下子步骤:
步骤S101,统计出系统固件的源数据中各个字符出现频率;
步骤S102,按照出现频率对各个字符进行排序;
步骤S103,根据排序构建哈夫曼树的编码结构;
步骤S104,依据哈夫曼树的编码结构对字符串进行编码;步骤S105,将编码后的功能程序段进行按位存储。
2.根据权利要求1所述的基于音频处理器的系统固件压缩方法,其特征在于,还包括步骤S4,将步骤S3生成的软件镜像烧录至存储介质中。
3.一种基于音频处理器的系统固件解压缩方法,其特征在于,所述系统固件解压缩方法用于对权利要求1或2所述的软件镜像进行解压缩。
4.根据权利要求3所述的系统固件解压缩方法,其特征在于,包括以下步骤:
步骤A,启动并加载整个软件镜像到内存中;
步骤B,跳转到解压缩程序段的程序入口,通过解压缩程序对压缩后的功能程序段的镜像文件进行解压缩得到原始的功能程序镜像数据;
步骤C,根据功能程序镜像数据将数据拷贝至各段的运行地址;
步骤D,跳转至功能程序段入口,正常运行所述系统固件。
CN201610192804.5A 2016-03-30 2016-03-30 一种基于音频处理器的系统固件压缩方法及其解压缩方法 Active CN105893086B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610192804.5A CN105893086B (zh) 2016-03-30 2016-03-30 一种基于音频处理器的系统固件压缩方法及其解压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610192804.5A CN105893086B (zh) 2016-03-30 2016-03-30 一种基于音频处理器的系统固件压缩方法及其解压缩方法

Publications (2)

Publication Number Publication Date
CN105893086A CN105893086A (zh) 2016-08-24
CN105893086B true CN105893086B (zh) 2020-04-10

Family

ID=57013998

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610192804.5A Active CN105893086B (zh) 2016-03-30 2016-03-30 一种基于音频处理器的系统固件压缩方法及其解压缩方法

Country Status (1)

Country Link
CN (1) CN105893086B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101135978A (zh) * 2007-03-02 2008-03-05 中兴通讯股份有限公司 压缩版应用程序生成、执行方法与装置及应用方法与系统
CN101140522A (zh) * 2007-03-13 2008-03-12 中兴通讯股份有限公司 一种嵌入式系统版本的自解压方法
CN101526902A (zh) * 2008-12-25 2009-09-09 北京邮电大学 用于移动终端的可执行文件压缩及加载技术
CN105354050A (zh) * 2015-09-30 2016-02-24 深圳市九洲电器有限公司 一种智能终端的应用软件调用方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101135978A (zh) * 2007-03-02 2008-03-05 中兴通讯股份有限公司 压缩版应用程序生成、执行方法与装置及应用方法与系统
CN101140522A (zh) * 2007-03-13 2008-03-12 中兴通讯股份有限公司 一种嵌入式系统版本的自解压方法
CN101526902A (zh) * 2008-12-25 2009-09-09 北京邮电大学 用于移动终端的可执行文件压缩及加载技术
CN105354050A (zh) * 2015-09-30 2016-02-24 深圳市九洲电器有限公司 一种智能终端的应用软件调用方法

Also Published As

Publication number Publication date
CN105893086A (zh) 2016-08-24

Similar Documents

Publication Publication Date Title
US7661102B2 (en) Method for reducing binary image update package sizes
CN105009067B (zh) 管理对存储数据单元的操作
JP5508370B2 (ja) OTA(Over−the−air)が可能な携帯装置のためのプログラムアップグレード方法およびシステム
JP6742692B2 (ja) 符号化プログラムおよび伸長プログラム
TWI531971B (zh) 用以加速壓縮及解壓縮操作之設備與方法
US20070194953A1 (en) Method and apparatus for CABAC-based encoding having high compression ratio using improved context model selection and method and apparatus for CABAC-based decoding
TWI393353B (zh) 資料壓縮/解壓縮裝置及其方法
CN101467129A (zh) 能够空中下载的移动终端的程序升级系统和方法
KR20120134916A (ko) 저장 장치 및 저장 장치를 위한 데이터 처리 장치
KR102275431B1 (ko) 저장된 데이터 유닛들의 동작 관리
KR20120063455A (ko) 펌웨어 업데이트 장치 및 방법
CN110870287B (zh) 对部分压缩固件的空中(ota)更新
US9577666B2 (en) Method and system
JP2017073615A (ja) 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置
CN112165331A (zh) 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备
CN104811209A (zh) 一种抗最长匹配检测的压缩文件数据嵌入方法及装置
CN104579356A (zh) 在存在重现的霍夫曼树的情况下加速解压缩的方法和系统
US9137336B1 (en) Data compression techniques
US8909606B2 (en) Data block compression using coalescion
CN105893086B (zh) 一种基于音频处理器的系统固件压缩方法及其解压缩方法
US9479195B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device, and decompression device
US8018359B2 (en) Conversion of bit lengths into codes
CN108829872B (zh) 无损压缩文件的快速处理方法、设备、系统及存储介质
US9998142B1 (en) Techniques for invariant-reference compression
JP2016052046A (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
CB02 Change of applicant information

Address after: 2, 202-B building, C building, Hua Han Innovation Park, No. 16, Lang Shan Road, Guangdong, Shenzhen, Nanshan District 518000, China

Applicant after: Shenzhen East micro smart Polytron Technologies Inc

Address before: 2, 202-B building, C building, Hua Han Innovation Park, No. 16, Lang Shan Road, Guangdong, Shenzhen, Nanshan District 518000, China

Applicant before: Shenzhen Tendzone Intelligent Technology Co., Ltd.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 518000 R & D building 1601, block a, building 7, Wanke Yuncheng phase I, Xili community, Xili street, Nanshan District, Shenzhen City, Guangdong Province (16 / F, block a, building 1, international innovation Valley)

Patentee after: SHENZHEN TENDZONE INTELLIGENT TECHNOLOGY Co.,Ltd.

Address before: 2, 202-B building, C building, Hua Han Innovation Park, No. 16, Lang Shan Road, Guangdong, Shenzhen, Nanshan District 518000, China

Patentee before: SHENZHEN TENDZONE INTELLIGENT TECHNOLOGY Co.,Ltd.