开机动画播放系统、压缩方法、装置及解压方法、装置与流程

文档序号:25349502发布日期:2021-06-08 13:04阅读:142来源:国知局
开机动画播放系统、压缩方法、装置及解压方法、装置与流程

1.本发明涉及开机动画技术领域,尤其涉及的是一种开机动画播放系统、压缩方法、装置及解压方法、装置。


背景技术:

2.在嵌入式电子设备中,系统的各部分上电后初始化到可用状态需要一定时间,通常这段时间内设备是无法操作的。在带有显示屏的设备中,为了直观显示启动状态、改善用户体验,通常会在这段启动时间中播放一段开机动画。
3.但目前开机动画的播放存在一些局限,由于cpu性能、储存器性能的限制,或者为了保障启动速度而把cpu资源大部分都分配给了系统启动任务等诸多条件限制下导致开机动画通常只能使用有限的硬件资源进行播放,进而导致了播放的开机动画在分辨率、帧率等图像质量方面较低。
4.具体来看,如果要播放一个动态视频作为开机动画而非几张静态图片的话,主要面临两大挑战:第一,由于图像的原始数据量非常大,例如1920*1080p分辨率的rgb24bit图像一帧的数据量是5.9mbyte左右,如果视频帧率是25,则一秒有148.3mbyte的数据量,这么大的数据量对于昂贵的非易失性储存器(如flash、eeprom、emmc等)都是难以接受的,况且读取速率对储存器来说也是一大挑战。
5.第二,第二是处理器性能、ram性能的限制:由于原始图像数据量大,为了缩小储存数据量,需要软件算法对图像数据进行编码压缩,目前音视频领域比较主流的视频编码压缩算法是h.264和mpeg4编码,但是这类方法在嵌入式设备中或开机动画播放环节中的应用存在以下问题:视频的解码需要大量的cpu性能和ram性能、解码库复杂代码量大、需要依赖操作系统而不能裸机运行、移植困难等。
6.综上所述的两大挑战,像第一种情况不进行编码的话图像的数据量过大,像第二种情况进行常规编码的话则对系统的性能需求过高,这是两个互相矛盾的方向在互相制约,显然这两种方法都不适用于低功耗、小体积、轻量化、低成本的嵌入式设备。
7.目前在业界中,例如安卓系统,通常使用的是轮流显示一系列png格式的图片的方法来实现开机动画,但是此方法对于更低性能的或者更高要求的嵌入式设备来说仍然存在一些问题,其图像数据量仍然较大,且png图片的解码仍需要较多的cpu性能。
8.因此,现有的技术还有待于改进和发展。


技术实现要素:

9.本发明的目的在于提供一种开机动画播放系统、压缩方法、装置及解压方法、装置,旨在解决现有的设备开机动画播放方式不能在图像数据量和解码性能需求之间取得平衡的问题。
10.本发明的技术方案如下:一种开机动画播放系统,其中,包括压缩设备和目标设
备,所述压缩设备将原始视频图像编码压缩,得到包括填充图像所需的填充引导信息数组和图像数据数组的压缩数据包并将所述压缩数据包发送至所述目标设备;在所述目标设备开机时,所述目标设备对所述压缩数据包进行解压,得到填充图像所需的填充引导信息数组和图像数据数组;所述目标设备根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据填充到输出帧缓冲区,输出开机动画图像。
11.所述的开机动画播放系统,其中,将所述压缩数据包固定到目标设备的非易失性储存器中;或者将所述压缩数据包写成编程文件的数组,与目标设备的嵌入式程序的开发环境中的软件程序一起编译。
12.所述的开机动画播放系统,其中,所述目标设备对所述压缩数据包进行解压与所述目标设备根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据填充到输出帧缓冲区,输出开机动画图像同时进行;或者所述目标设备先对所述压缩数据包进行解压,再根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据填充到输出帧缓冲区,输出开机动画图像。
13.一种压缩方法,其中,具有包括以下步骤:对原始视频图像进行帧差编码处理,得到包括填充图像所需的填充引导信息数组和图像数据数组的数据包;对所述数据包进行无损压缩处理,得到压缩数据包。
14.所述的压缩方法,其中,所述对原始视频图像进行帧差编码处理,得到帧差编码处理后的数据包,具体包括以下过程:对原始视频图像进行第一次帧差编码处理,得到第一次帧差编码处理后的包括填充图像所需的填充引导信息数组和图像数据数组的第一数据包;对所述第一数据包进行第二次帧差编码处理,得到第二次帧差编码处理后的包括填充图像所需的填充引导信息数组和图像数据数组的第二数据包。
15.所述的压缩方法,其中,在所述对原始视频图像进行帧差编码处理,得到帧差编码处理后的数据包和所述对所述数据包进行无损压缩处理,得到压缩数据包之间还包括以下过程:对所述数据包进行有损压缩,得到有损压缩数据包。
16.一种压缩装置,其中,包括:帧差编码处理模块,对原始视频图像进行帧差编码处理,得到帧差编码处理后的数据包;无损压缩模块,对所述数据包进行无损压缩处理,得到压缩数据包。
17.所述的压缩装置,其中,还包括有损压缩模块,对所述数据包进行有损压缩,得到有损压缩数据包。
18.一种解压方法,其中,具有包括以下步骤:获取压缩数据包;对所述压缩数据包进行解压,得到填充图像所需的填充引导信息数组和图像数据数组;根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据进行规律填充并输出。
19.一种解压装置,其中,包括:
压缩数据包获取模块,获取压缩数据包;解压模块,对所述压缩数据包进行解压,得到填充图像所需的填充引导信息数组和图像数据数组;填充模块,根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据进行规律填充并输出。
20.本发明的有益效果:本发明通过提供一种开机动画播放系统、压缩方法、装置及解压方法、装置,采用编码压缩可以将视频数据压缩成体积小的压缩包,且压缩过程简单快速;本方案需要的设备性能大大降低,并且在降低性能需求的同时能有合理的编码压缩率,在压缩率和性能需求之间取得一个良好平衡,非常适合用于低性能的嵌入式设备;本方案实现灵活,可以轻松替换视频素材,可根据需求在图像编码压缩算法、输出帧缓冲区填充算法、数据保存位置等多方面进行选择或扩展,实现软硬件紧密结合;本方案易于实现,开发成本低,由于不需要依赖操作系统,并且算法代码量小,效率高、容易移植等特点,可以低成本地将本方法移植到多种场景下使用。
附图说明
21.图1是本发明中开机动画播放系统的示意图。
22.图2是本发明中帧差编码示意图。
23.图3是现有技术中时长8秒总共206帧的1080p视频的每一帧保存为bmp格式的示意图。
24.图4是现有技术中时长8秒总共206帧的1080p视频压缩为png文件的示意图。
25.图5是现有技术中时长8秒总共206帧的1080p视频使用mpeg4+yuv420编码打包成mp4文件的示意图。
26.图6是本发明中时长8秒总共206帧的1080p视频使用本发明编码压缩的示意图。
27.图7是本发明中压缩方法的步骤流程图。
28.图8是本发明中压缩装置的的示意图。
29.图9是本发明中解压方法的步骤流程图。
30.图10是本发明中解压装置的的示意图。
具体实施方式
31.下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
32.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
33.如图1所示,一种开机动画播放系统,包括压缩设备1和目标设备2,所述压缩设备1
将原始视频图像编码压缩,得到压缩数据包并将压缩数据包发送至所述目标设备2;在所述目标设备2开机时,所述目标设备2对所述压缩数据包进行解压,得到填充图像所需的填充引导信息数组和图像数据数组;所述目标设备2根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据填充到输出帧缓冲区,输出开机动画图像。
34.在pc(即压缩设备1)端中,使用诸如matlab(matlab是美国mathworks公司出品的商业数学软件,用于数据分析、无线通信、深度学习、图像处理与计算机视觉、信号处理、量化金融与风险管理、机器人、控制系统等领域)等工具编写程序来编码压缩原始视频文件,具体包括以下过程:对原始视频进行帧差编码(即比较相邻两幅图像中的差异,差异部分就称为“帧差”, 将这部分“差异数据”保存下来并进行进一步压缩就称为“帧差编码压缩”),如图2所示,首先保存第一帧图像,从第二帧图像开始,在相邻两帧中大部分图像是一样的,通过找出不一样部分的最小矩形位置,如图2中的矩形框所示,只需保存这部分新的图像信息可以很大程度缩小数据量。
35.更进一步的,可以对如图2中的矩形框内的图像再进行细分,在矩形内的每一行像素中仍存在与上一帧一样的像素,所以可以将每一行中的首尾与上一行一样的像素也去除掉,如矩形框中的偏白色的部分图像,去除行的首尾图像能再次减少图像数据量,同时又最大限度保证行内的像素位置是连续的,有利于提高在嵌入式设备播放时的运算填充速度。
36.在pc端的压缩中,可以根据需要对帧差rgb图像进行一次有损压缩(有损压缩是利用了人类对图像或声波中的某些频率成分不敏感的特性,允许压缩过程中损失一定的信息;虽然不能完全恢复原始数据,但是所损失的部分对理解原始图像的影响缩小,却换来了大得多的压缩比),变成rgb565(rgb565彩色模式, 一个像素占两个字节)或其他格式,然后将图像数据和填充图像所需的填充引导信息放在一个大数组中。然后使用高效率的无损压缩(所谓无损压缩格式,是利用数据的统计冗余进行压缩,可完全恢复原始数据而不引起任何失真,但压缩率是受到数据统计冗余度的理论限制,一般为2:1到5:1.这类方法广泛用于文本数据,程序和特殊应用场合的图像数据(如指纹图像,医学图像等)的压缩)算法(在本方案中使用的是lzo(lempel

ziv

oberhumer,数据压缩算法)算法,这是一种致力于解压速度的数据无损压缩算法,具有解压简单、速度非常快、不需要内存、有合理压缩率,非常适合在实时性需求高、低性能的设备中运行)对所述大数组进行压缩。
37.其中,所述填充引导信息是指系统可以根据填充引导信息,有规律地读取图像数据包,并将相邻两帧图像的差异数据填充到前一帧图像的对应位置中,以得到后一帧图像。
38.例如,所述填充引导信息包含两部分:第一部分是说明整个开机动画的分辨率、帧率、帧数;第二部分说明每一帧“帧差”需要被填充到的坐标,例如指定第2帧“帧差”需要被填充到(x=240,y=600)的位置,并且分辨率大小为300*200;指定第3帧
……
;指定第4帧
……

39.将压缩完的数据放入嵌入式设备(即目标设备2)中,可以将压缩完的数据固定到非易失性储存器中,也可将压缩完的数据写成编程文件的数组例如.c文件,放到嵌入式程序的开发环境中与软件程序编译在一起。其中,可根据所述压缩数据包的大小、嵌入式硬件资源、整体系统架构设计等多方面进行选择,如果开机动画较简单,压缩包足够小,那第二个方案则是更优的选项(即将将压缩完的数据写成编程文件的数组例如.c文件,放到嵌入
式程序的开发环境中与软件程序编译在一起)。
40.其中,在嵌入式设备(即目标设备2)中启动的时候使用lzo算法(lzo算法是一种最快速的无损数据压缩解压算法,其中lzo是lempel

ziv

oberhumer的缩写。一个实现lzo算法的软件工具是lzop,较之常见的gzip,lzop可以提供更快的压缩与解压缩速度)对所述压缩数据包进行解压,作为高灵活性、可拓展的特性体现,该解压过程可以在目标设备2开机动画开始填充播放前运行,也可与开机动画填充播放同时进行(即边解压边进行开机动画填充播放),根据使用场景进行选择;解压后得到一个填充图像所需的填充引导信息文件和一个图像数据文件。
41.其中,根据所述填充引导信息数组中的填充引导信息,使用所述所述图像数据数组,按一定时间、像素位置规律,对帧输出缓冲区进行填充,即可实现视频播放的效果。
42.本低性能需求的开机动画播放方法相对于现有技术,具有以下优点:(1)可以将视频数据压缩到一个非常小的体积且压缩过程简单快速:一段时长8秒总共206帧的1080p视频,将每一帧保存为bmp(bmp是英文bitmap(位图)的简写,它是windows操作系统中的标准图像文件格式,能够被多种windows应用程序所支持)原始图像总大小为1.2gb左右,使用安卓常用的压缩为png(png是一种采用无损压缩算法的位图格式,其设计目的是试图替代gif和tiff文件格式,同时增加一些gif文件格式所不具备的特性)文件的方法则大小在28mb左右,使用复杂的mpeg4(mpeg是moving pictures experts group(动态图象专家组)的简称)+yuv420(yuv也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(y)与色彩信息(uv)分离,没有uv信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,yuv不像rgb那样要求三个独立的视频信号同时传输,所以用yuv方式传送占用极少的频宽)编码打包成mp4文件大小则在1.3mb左右。而使用本方法,如果对帧差矩形框内的图像不作进一步细分的话,则压缩后图像数据包在2.9mb左右,压缩率大大优于png方法,如果对帧差矩形框内的图像进行进一步细分,则压缩后图像数据包可接近mpeg4编码(但压缩过程比mpeg4编码简单快速),具有优秀的压缩率,各种压缩方法的对比如图3至图6所示。
43.(2)性能需求低,本方法相对于h.264编码(h.264,同时也是mpeg

4第十部分,是由itu

t视频编码专家组(vceg)和iso/iec动态图像专家组(mpeg)联合组成的联合视频组(jvt,jointvideo team)提出的高度压缩数字视频编解码器标准)、mpeg4编码或者其他编码方式,性能需求都大大降低,并且在降低性能需求的同时能有合理的编码压缩率,在压缩率和性能需求之间取得一个良好的平衡,使得此方法非常适合用于低性能的嵌入式设备。
44.(3)实现方法灵活,可以轻松替换视频素材,可以根据需求,在图像编码压缩算法、输出帧缓冲区填充算法、数据保存位置等多方面进行选择或扩展,实现软硬件紧密结合。
45.(4)易于实现,开发成本低,由于不需要依赖操作系统,并且算法代码量小,效率高、容易移植等特点,可以低成本地将本方法移植到多种场景下使用。
46.如图7所示,本技术方案还保护一种压缩方法,具有包括以下步骤:对原始视频图像进行帧差编码处理,得到包括填充图像所需的填充引导信息数组和图像数据数组的数据包;对所述数据包进行无损压缩处理,得到压缩数据包。
47.在某些具体实施例中,所述对原始视频图像进行帧差编码处理,得到帧差编码处
理后的数据包,具体包括以下过程:对原始视频图像进行第一次帧差编码处理,得到第一次帧差编码处理后的包括填充图像所需的填充引导信息数组和图像数据数组的第一数据包;对所述第一数据包进行第二次帧差编码处理,得到第二次帧差编码处理后的包括填充图像所需的填充引导信息数组和图像数据数组的第二数据包。
48.在某些具体实施例中,在所述对原始视频图像进行帧差编码处理,得到帧差编码处理后的数据包和所述对所述数据包进行无损压缩处理,得到压缩数据包之间还包括以下过程:对所述数据包进行有损压缩,得到有损压缩数据包。
49.如图8所示,本技术方案还保护一种压缩装置,包括:帧差编码处理模块101,对原始视频图像进行帧差编码处理,得到帧差编码处理后的数据包;无损压缩模块102,对所述数据包进行无损压缩处理,得到压缩数据包。
50.在某些具体实施例中,所述的压缩装置还包括有损压缩模块103,对所述数据包进行有损压缩,得到有损压缩数据包。
51.如图9所示,本技术方案还保护一种解压方法,具有包括以下步骤:获取压缩数据包;对所述压缩数据包进行解压,得到填充图像所需的填充引导信息数组和图像数据数组;根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据进行规律填充并输出。
52.如图10所示,本技术方案还保护一种解压装置,包括:压缩数据包获取模块201,获取压缩数据包;解压模块202,对所述压缩数据包进行解压,得到填充图像所需的填充引导信息数组和图像数据数组;填充模块203,根据所述填充引导信息数组中的填充引导信息将所述图像数据数组中的图像数据进行规律填充并输出。
53.在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
54.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
55.再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
56.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另
一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
57.以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1