CN204721509U - Motion JPEG编码系统 - Google Patents
Motion JPEG编码系统 Download PDFInfo
- Publication number
- CN204721509U CN204721509U CN201520412872.9U CN201520412872U CN204721509U CN 204721509 U CN204721509 U CN 204721509U CN 201520412872 U CN201520412872 U CN 201520412872U CN 204721509 U CN204721509 U CN 204721509U
- Authority
- CN
- China
- Prior art keywords
- equipment
- huffman
- jpeg
- controller
- output
- 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.)
- Ceased
Links
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本实用新型公开了一种Motion JPEG编码系统,包括输入设备、JPEG编码器、Huffman符号统计设备、控制器以及存储设备;JPEG编码器的输入端分别与输入设备的输出端、控制器的输出端连接,JPEG编码器的输出端与Huffman符号统计设备的输入端连接;Huffman符号统计设备的输出端与控制器的输入端连接;存储设备分别与所述JPEG编码器、Huffman符号统计设备、控制器连接。本实用新型减少了视频帧之间的冗余信息,在构造Huffman说明表时采用硬件专有模块统计编码符号的频度信息,使得在提高压缩率的同时,兼顾了软件运算量和硬件成本,节约资源。
Description
【技术领域】
本实用新型涉及视频编码领域,特别涉及一种Motion JPEG编码系统。
【背景技术】
在视频信号的形成过程中,对传入图像的再处理具有很重要的意义。由于原始图像的数据量较大,为了降低传输带宽,图像的压缩和解压缩成为视频编码过程中十分重要的环节,采用合适、高效的编码方法,可以有效降低数据占用的存储空间,提高传输数据的码率。
Motion JPEG是一种基于帧内压缩的视频编码标准,由于其具有计算复杂度较低、对系统内存要求不高、易于后期编辑等优点,被广泛应用于消费类电子产品或影视媒体编辑领域。Huffman编码是一种可变字长的编码方法,能够将出现频率较高的符号赋予较短的码字,出现频率较低的符号赋予较长的码字,从而实现压缩效果,因此JPEG常采用Huffman编码作为其主要的编码方法。与Huffman编码相比,范式Huffman编码不需要建立Huffman树,而只需要模拟Huffman树的建立,最终加快了编码的速度,同时提高了系统内存的利用率,因此被广泛应用于实际的编码之中。现有的基于范式Huffman编码的Motion JPEG编码技术主要采用两种方式进行编码,一种是每一帧都采用相同的Huffman说明表(通常为标准Huffman说明表)进行编码,这并没有利用到相邻帧间的相关性,所以压缩效果并不理想;另一种是在同一帧内进行两次扫描以获得当前帧的Huffman说明表,并基于该Huffman说明表进行编码,但由于需要进行两次扫描,系统开销巨大,不利于实际应用。
【实用新型内容】
基于此,针对上述现有技术中存在的问题,本实用新型提供了一种MotionJPEG编码系统,该编码系统可以减少视频帧之间的冗余信息,降低系统内存占用,提高压缩速度和编码效率,从而提供一种可行的编码方式。
为实现上述目的,本实用新型实施例包括如下内容:
一种Motion JPEG编码系统,包括获取视频序列的输入设备、对视频序列中各个视频帧进行JPEG编码的JPEG编码器、统计每一视频帧的各个编码符号的出现频率的Huffman符号统计设备、控制器以及存储设备;
所述JPEG编码器的输入端分别与所述输入设备的输出端、所述控制器的输出端连接,所述JPEG编码器的输出端与所述Huffman符号统计设备的输入端连接;
所述Huffman符号统计设备的输出端与所述控制器的输入端连接;
所述存储设备分别与所述JPEG编码器、所述Huffman符号统计设备、所述控制器连接。
本实用新型的有益效果在于:本实用新型通过Huffman符号统计设备统计JPEG编码器输出的编码符号的频率,控制器根据该频率生成基于当前编码的视频帧的Huffman说明表,用于下一视频帧的JPEG编码过程,从而实现Huffman说明表在视频帧之间的动态变化,因而能够有效减少视频帧之间的冗余信息,提高压缩效率,降低系统开销。本实用新型利用硬件专有模块统计每帧图像中编码符号的出现频率,通过存储设备进行交换,再通过控制器构造Huffman说明表。在实际应用中,硬件专有模块可以很方便的集成、复用JPEG编码器原有的硬件逻辑,在提高压缩率的同时,兼顾软件运算量和硬件成本,节约资源。
【附图说明】
图1为本实用新型实施例中Motion JPEG编码系统的一种结构示意图;
图2为本实用新型实施例中根据当前视频帧的编码符号的出现频率获取相应的编码位长的过程示意图;
图3为本实用新型实施例中范式Huffman编码的过程示意图;
图4为本实用新型实施例中码值表的更新过程示意图;
图5为本实用新型实施例中码长表的更新过程示意图;
图6为本实用新型实施例中对编码位长进行限制的过程示意图;
图7为本实用新型实施例中Motion JPEG编码系统的另一结构示意图。
【具体实施方式】
下面将结合较佳实施方式对本实用新型的技术方案进行详细描述。
图1所示为本实用新型提出的Motion JPEG编码系统的其中一个实施例的结构示意图,本实施例中的编码系统包括输入设备100、JPEG编码器110、Huffman符号统计设备120、控制器130以及存储设备140。
JPEG编码器110的输入端分别与输入设备100的输出端、控制器130的输出端连接,JPEG编码器110的输出端与Huffman符号统计设备120的输入端连接。
Huffman符号统计设备120的输出端与控制器130的输入端连接。
存储设备140分别与JPEG编码器110、Huffman符号统计设备120、控制器130连接。存储设备140用于Motion JPEG编码过程中JPEG编码器110、Huffman符号统计设备120和控制器130产生的数据的存储、交换或者中转。
其中,输入设备100用于提供稳定的视频序列;JPEG编码器110获取输入设备100传输的视频序列,根据Huffman说明表对视频序列的各个视频帧进行JPEG编码,生成各视频帧的编码符号,并将视频序列编码成为符合Motion JPEG压缩标准的视频压缩流,该JPEG编码器110通常但不限为硬件逻辑单元。在本实施例中,JPEG编码器110可以集成、复用控制Huffman符号统计设备;Huffman符号统计设备120用于统计JPEG编码器110产生的各个编码符号的出现频率,并将统计结果写入存储设备140;控制器130提供设备控制及部分运算功能,在本实施例中,控制器130从存储设备140中获取当前视频帧的各个编码符号的出现频率,并依据范式Huffman编码方法更新Huffman说明表。
在本实施例中,Motion JPEG编码系统的工作原理如下:
输入设备100输入视频序列并将视频序列的当前视频帧输出至JPEG编码器110,JPEG编码器110接收当前视频帧并根据Huffman说明表对当前视频帧进行编码,生成当前视频帧的编码符号,同时Huffman符号统计设备120统计当前视频帧的各个编码符号的出现频率,将统计结果输出至存储设备140,控制器130从存储设备140中获取数据,根据编码符号出现频率的统计结果和范式Huffman编码方法更新Huffman说明表,JPEG编码器110将根据更新后的Huffman说明表对当前视频帧的相邻下一视频帧进行编码,输出相邻下一视频帧的编码符号,此时Huffman符号统计设备120统计相邻下一视频帧的编码符号的出现频率并将其统计结果输出至存储设备140,控制器130根据统计结果再次更新Huffman说明表。JPEG编码器110对之后的每一个视频帧进行JPEG编码时,使用的Huffman说明表均为它的相邻上一视频帧编码后得到的更新后的Huffman说明表,之后每一视频帧的具体编码方法与当前视频帧的编码方法相同,此处不再赘述。特别地,当输入设备100所获取的当前视频帧为所述视频序列的初始帧时,JPEG编码器110可采用预设Huffman说明表(通常为标准Huffman说明表)对初始帧进行JPEG编码。
本实用新型所提出的Motion JPEG编码系统通过各个组成设备之间的协调配合实现了基于帧间动态Huffman说明表的编码功能,充分利用相邻视频帧之间的相关性,从而能够有效减少视频帧之间的冗余信息,在进一步提高压缩效率的同时,降低系统开销,节约成本和资源。同时,Motion JPEG编码系统进行编码时每一帧图像的编码符号的出现频率均可以利用硬件专有模块进行统计,而基于编码符号出现频率统计结果的Huffman说明表则可以利用软件进行构造,通过这种软硬结合的方式可以更进一步地提高编码效率。
在一种具体实施方式中,Motion JPEG编码系统对每一个视频帧进行JPEG编码时,JPEG编码器110都会生成相应的编码符号,所述编码符号具体包括DC中间符号和AC中间符号,而控制器130根据范式Huffman编码方法生成的Huffman说明表又与上述两种中间符号的出现频率密切相关,因此,这里结合一个实际的Motion JPEG编码案例对上述中间符号和Huffman说明表给出相应的解释。在JPEG编码过程中,一个8x8的数据块经过离散余弦变换和量化后,位于8x8数据块左上角的数据便是DC系数,DC系数是图像在频域中频率为零的系数值,除DC系数以外的63个系数值便是AC系数,AC系数是图像在频域中频率不为零的系数值。由于DC系数是一块图像像素的平均值,相邻8x8数据块的DC系数有很大的相关性,所以通常对相邻块的DC系数的差值进行编码。JPEG编码前要将DC系数的差值转化为DC中间符号,将AC系数转化为AC中间符号。对于一个8x8的数据块而言,DC中间符号可以有12种取值,AC中间符号可以有162种取值,关于DC中间符号和AC中间符号取值的表即是码值表,关于DC中间符号和AC中间符号编码位长的取值的表即是码长表,而所述码值表和码长表共同组成Huffman说明表,用于编码过程中模拟Huffman树的建立。
在另一种具体实施方式中,控制器130根据当前视频帧的各个编码符号的出现频率和范式Huffman编码方法更新Huffman说明表这一过程具体包括根据当前视频帧各个编码符号的编码位长对码值表和码长表分别进行更新的过程。
作为控制器130对码值表进行更新的一种具体实现方式,控制器130将当前视频帧的编码符号的码值按照其对应的编码位长的大小顺序(例如编码位长从小到大的顺序)进行排列后,得到更新后的码值表。
作为控制器130对码长表进行更新的一种具体实现方式,控制器130根据预设码长阈值对各个编码符号的编码位长进行限制,根据限制后的各个编码符号的编码位长得到更新后的码长表。
作为一种范式Huffman编码方法的优选实施方式,预设码长阈值具体可取为16。
为更详细地阐明Motion JPEG编码系统中Huffman说明表的动态更新过程,下面将以每帧图像的宽度为1280、高度为720、帧数共为2445帧的视频序列Amazon[1280×720].yuv为例予以详尽的阐述。
视频的亮度和色度是视频显示的重要参数,因而也是视频编解码时需要考虑的重要内容。在实际的Huffman编码过程中,亮度Y的DC中间符号Ydc_symbol有12种,色度U和色度V的DC中间符号UVdc_symbol各有12种,亮度Y的AC中间符号Yac_symbol有162种,色度U和色度V的AC中间符号UVac_symbol各有162种,在程序代码中,可以定义Ydc_values_cnt[13]、UVdc_values_cnt[13]、Yac_values_cnt[163]和UVac_values_cnt[163]四个数组来分别存放上述亮度Y和色度U、V的各个中间符号的出现频率。为了避免后续Huffman编码时全“1”码字的出现,每个数组多出一个元素的存储位置以保留一个代码点,当然这个位置的频率值始终为0。如图2所示,JPEG编码器110对当前视频帧进行JPEG编码时生成相应的编码符号(包括亮度Y的DC中间符号和AC中间符号,色度U和色度V的DC中间符号和AC中间符号,色度V的DC中间符号和AC中间符号),同时Huffman符号统计设备120统计所述编码符号的出现频率,控制器130根据所述出现频率的统计结果对编码符号进行Huffman编码,得到各个编码符号的编码位长,根据编码位长对当前视频帧的编码符号的码值表和码长表分别进行更新,即实现Huffman说明表的动态更新。下面将结合实际编码方法,对控制器130中当前视频帧的各个编码符号的编码位长的获取过程以及Huffman说明表的更新过程予以详细说明,在如下的说明过程中,都将以当前视频帧的亮度Y的AC中间符号为例,而亮度Y的DC中间符号,色度U和色度V的AC中间符号,色度U和色度V的DC中间符号的相应过程都可以按照与亮度Y的AC中间符号相同的过程进行处理。
图3所示为Motion JPEG编码系统中范式Huffman编码的过程示意图,其结果是控制器130根据当前视频帧各个编码符号的出现频率和范式Huffman编码方法得到各个编码符号的编码位长。Yac_values_cnt[163]包含了163个AC中间符号的频率值,其中Yac_values_cnt[163]=0为保留的1个代码点,统计过程中没有出现的中间符号的频率值也为0。在Huffman编码过程中分别定义三个数组:Cnt[V]、Codelength[V]、NextIdx[V],其中Cnt[V]=Yac_values_cnt[V],Codelength[V]表示符号V的代码大小,其初始化为0,NextIdx[V]表示在当前代码树中指向所有符号组成的链的下一个符号的索引,其初始化为-1,值为-1时表示终止索引链。查找具有最小Cnt[V]的值时,要保证V值为最大值且Cnt[V]值为最小值,同时要保证Cnt[V]值大于或者等于0。这样做的目的是,当有多个V值以相同的频率出现时,总是选择具有最大V值的频率值,这样可以保证保留的代码点属于最长的代码字类别,也就保证了没有任何码字为全“1”的情形。
在确定每个亮度Y的162个AC中间符号的编码位长后,控制器130根据如图4所示的亮度Y的AC中间符号的码值表更新流程图对当前视频帧的相邻下一视频帧的码值表进行更新,具体方法是将编码符号的码值按照其对应的编码位长的从小到大的顺序进行排列,从而得到更新后的码值表。
图5所示为亮度Y的AC中间符号的码长表更新流程图。码长表BITS[V]表示在亮度Y的162个AC中间符号中编码位长为V的编码符号个数,如果将临时代码点考虑在内,则亮度Y的AC中间符号应该有163种,特别地,BITS[0]的值为0。在Motion JPEG编码过程中,范式Huffman编码所用到的有关编码位长的Huffman说明表,其最大编码位长不能大于预设码长阈值,即所有编码符号的编码位长应限制为小于或者等于预设码长阈值。作为一种优选实施方式,当预设码长阈值具体为16时,所有编码符号的编码位长应限制为小于或者等于16,该限制过程可以根据如图6所示的方法实现,其基本原理是:对于最长的Huffman代码而言,符号成对出现,所以每次从长度表中移走两个符号。符号对的前缀(至少1位)被分给符号对中的1个符号,然后把下一个最短非零BITS入口项中的代码字转换为两个代码字的前缀。当把BITS表压缩为最大为16位后,最后一步再把保留的代码点,从代码长度计数值中移出。至此,有关亮度Y的AC中间符号的码长表已经更新完毕。
上述内容已对控制器130根据当前视频帧的编码符号的出现频率和范式Huffman编码方法更新Huffman说明表的过程结合附图进行了具体的说明,并且仅以当前视频帧的一种编码符号即亮度Y的AC中间符号为例进行说明,然而对于所属技术领域人员而言,当前视频帧的其他编码符号的处理过程以及视频序列中其他视频帧的编码符号的处理过程均完全可以按照亮度Y的AC中间符号的处理过程进行相应的处理或者变换。
在Motion JPEG编码系统的工作过程中产生的Huffman说明表存储于每一帧视频头部的定义Huffman标记字段中,当解码器获取到该字段时,就可以构造出相应的Huffman树用于该视频帧的解码。Huffman说明表的存储对于解码非常重要,因为Huffman说明表的不同会导致解码时构造的Huffman树不同,进而对各个编码符号在Huffman树上的位置有影响,造成码字的不确定性,最终会影响视频解码的准确性。在本实用新型的上述实施例中,当前视频帧进行Motion JPEG编码后会更新Huffman说明表,控制器130发出指令通知JPEG编码器110将更新后的Huffman说明表存储于当前视频帧的相邻下一视频帧的定义Huffman标记字段中,JPEG编码器110将以更新后的Huffman说明表对相邻下一视频帧进行编码,以此实现了Huffman说明表在相邻视频帧之间的动态更新。
进一步的,如图7所示,本实施例中的Motion JPEG编码系统还包括输出设备150,所述输出设备150与存储设备140连接,用于获取存储设备240中的数据或者输出压缩后的视频数据。
在一种具体实施方式中,输入设备100包括Sensor(传感器)模组、硬盘、Nand Flash(一种非易失存储器)、Nor Flash(一种非易失存储器)中的任意一种。
在一种具体实施方式中,控制器130包括CPU。
在一种具体实施方式中,存储设备140包括DRAM(Dynamic Random AccessMemory,动态随机存取存储器)、SRAM(Static Random Access Memory,静态随机存取存储器)、Nand Flash中的任意一种。
在一种具体实施方式中,输出设备150包括Nand Flash或硬盘。
同时,作为一种替代方案,输入设备100、存储设备140以及输出设备150可以任选两个进行集成复用或者将三者集成到同一复合设备中,以便简化系统装置,进而节约硬件设备成本。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本实用新型的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本实用新型构思的前提下,还可以做出若干变形和改进,这些都属于本实用新型的保护范围。因此,本实用新型专利的保护范围应以所附权利要求为准。
Claims (5)
1.一种Motion JPEG编码系统,其特征在于,包括获取视频序列的输入设备、对视频序列中各个视频帧进行JPEG编码的JPEG编码器、统计每一视频帧的各个编码符号出现频率的Huffman符号统计设备、控制器以及存储设备;
所述JPEG编码器的输入端分别与所述输入设备的输出端、所述控制器的输出端连接,所述JPEG编码器的输出端与所述Huffman符号统计设备的输入端连接;
所述Huffman符号统计设备的输出端与所述控制器的输入端连接;
所述存储设备分别与所述JPEG编码器、所述Huffman符号统计设备、所述控制器连接。
2.根据权利要求1所述的Motion JPEG编码系统,其特征在于,还包括输出设备,所述输出设备与所述存储设备连接。
3.根据权利要求1或2所述的Motion JPEG编码系统,其特征在于,所述输入设备包括传感器模组、硬盘、Nand Flash、Nor Flash中的任一种。
4.根据权利要求1或2所述的Motion JPEG编码系统,其特征在于,所述存储设备包括静态随机存取存储器、动态随机存取存储器、Nand Flash中的任一种。
5.根据权利要求1或2所述的Motion JPEG编码系统,其特征在于,所述输出设备包括Nand Flash或硬盘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520412872.9U CN204721509U (zh) | 2015-06-15 | 2015-06-15 | Motion JPEG编码系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520412872.9U CN204721509U (zh) | 2015-06-15 | 2015-06-15 | Motion JPEG编码系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN204721509U true CN204721509U (zh) | 2015-10-21 |
Family
ID=54320467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201520412872.9U Ceased CN204721509U (zh) | 2015-06-15 | 2015-06-15 | Motion JPEG编码系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN204721509U (zh) |
-
2015
- 2015-06-15 CN CN201520412872.9U patent/CN204721509U/zh not_active Ceased
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111699695B (zh) | 用于对经编码数据集进行解码的方法、设备和存储介质 | |
CN106170921A (zh) | 涉及符号压缩的数据的源编码和解码方法及装置 | |
CN109409518A (zh) | 神经网络模型处理方法、装置及终端 | |
CN105120293A (zh) | 基于cpu和gpu的图像协同解码方法及装置 | |
CN109842803A (zh) | 一种图像压缩的方法及装置 | |
CN105120276B (zh) | 自适应Motion JPEG编码方法和系统 | |
CN101299611B (zh) | 一种基于集合游程的数据压缩方法 | |
CN103873877A (zh) | 远程桌面的图像传输方法及装置 | |
CN103929642A (zh) | 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法 | |
CN104125475A (zh) | 一种多维量子数据压缩、解压缩方法及装置 | |
CN103067710A (zh) | 基于三维小波变换的分布式超光谱图像编码及解码方法 | |
CN104394415B (zh) | 一种视频大数据分布式解码的方法 | |
CN104104953A (zh) | 用于图形应用的基于瓦片的压缩与解压缩 | |
US8036471B2 (en) | Joint amplitude and position coding of coefficients for video compression | |
US9948928B2 (en) | Method and apparatus for encoding an image | |
CN104869426A (zh) | 在低压缩码率下降低图像方块效应的jpeg编码方法 | |
CN204721509U (zh) | Motion JPEG编码系统 | |
CN105791819B (zh) | 一种图像的帧压缩方法、图像的解压缩方法及装置 | |
CN105376578A (zh) | 图像压缩方法及装置 | |
CN104682966A (zh) | 列表数据的无损压缩方法 | |
CN110062241A (zh) | 一种Alpha通道数据的压缩方法、系统及相关组件 | |
CN116566397A (zh) | 编码、解码方法、编码器、解码器、电子设备及存储介质 | |
CN104113394B (zh) | 通信调制信号的压缩及解压方法 | |
WO2011162964A2 (en) | System and method and computer program product for parameter estimation for lossless video compression | |
CN106254872A (zh) | 熵转换编码的方法以及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP03 | Change of name, title or address |
Address after: 519085 Guangdong city of Zhuhai province Jida West Road No. 107 Building 9 Building (1-4) Patentee after: Zhuhai jelee Polytron Technologies Inc Address before: 519085 Guangdong city of Zhuhai province Jida West Road No. 107 Building 9 Building Patentee before: Zhuhai Jieli Technology Co., Ltd. |
|
IW01 | Full invalidation of patent right |
Decision date of declaring invalidation: 20180806 Decision number of declaring invalidation: 36835 Granted publication date: 20151021 |
|
IW01 | Full invalidation of patent right |