CN105120276A - 自适应Motion JPEG编码方法和系统 - Google Patents

自适应Motion JPEG编码方法和系统 Download PDF

Info

Publication number
CN105120276A
CN105120276A CN201510474990.7A CN201510474990A CN105120276A CN 105120276 A CN105120276 A CN 105120276A CN 201510474990 A CN201510474990 A CN 201510474990A CN 105120276 A CN105120276 A CN 105120276A
Authority
CN
China
Prior art keywords
huffman
coded identification
intermediate symbols
statistics
video frame
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.)
Granted
Application number
CN201510474990.7A
Other languages
English (en)
Other versions
CN105120276B (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.)
Zhuhai Jieli Technology Co Ltd
Original Assignee
Zhuhai Jieli 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 Zhuhai Jieli Technology Co Ltd filed Critical Zhuhai Jieli Technology Co Ltd
Priority to CN201510474990.7A priority Critical patent/CN105120276B/zh
Publication of CN105120276A publication Critical patent/CN105120276A/zh
Priority to US15/010,171 priority patent/US10110896B2/en
Application granted granted Critical
Publication of CN105120276B publication Critical patent/CN105120276B/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种Motion?JPEG编码方法及系统,该方法包括如下步骤:获取视频序列;根据Huffman说明表对所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧的编码符号并统计对应的编码符号的出现频率;根据所述当前视频帧的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码。本发明通过利用相邻视频帧之间Huffman说明表的相关性,减少视频帧之间的冗余信息,实现Huffman说明表的动态更新,从而提高压缩效率,减少系统消耗。

Description

自适应Motion JPEG编码方法和系统
技术领域
本发明涉及视频编码领域,特别是涉及一种自适应MotionJPEG编码方法和系统。
背景技术
在视频信号的形成过程中,对传入图像的再处理具有很重要的意义。由于原始图像的数据量较大,为了降低传输带宽,图像的压缩和解压缩成为视频编码过程中十分重要的环节,采用合适、高效的编码方法,可以有效降低数据占用的存储空间,提高传输数据的码率。
MotionJPEG是一种基于帧内压缩的视频编码标准,由于其具有计算复杂度较低、对系统内存要求不高、易于后期编辑等优点,被广泛应用于消费类电子产品或影视媒体编辑领域。Huffman编码是一种可变字长的编码方法,能够将出现频率较高的符号赋予较短的码字,出现频率较低的符号赋予较长的码字,从而实现压缩效果,因此MotionJPEG常采用Huffman编码作为其主要的编码方法。与Huffman编码相比,范式Huffman编码不需要建立Huffman树,而只需要模拟Huffman树的建立,最终加快了编码的速度,同时提高了系统内存的利用率,因此被广泛应用于实际的编码之中。现有的基于范式Huffman编码的MotionJPEG编码技术主要采用两种方式进行编码,一种是每一帧都采用相同的Huffman说明表(通常为标准Huffman说明表)进行编码,这并没有利用到相邻帧间的相关性,所以压缩效果并不理想;另一种是在同一帧内进行两次扫描以获得当前帧的Huffman说明表,并基于该Huffman说明表进行编码,但由于需要进行两次扫描,系统开销巨大,不利于实际应用。
发明内容
基于此,针对传统技术中存在的问题,本发明提供了一种自适应MotionJPEG编码方法和系统,所述编码方法和系统可以减少视频帧之间的冗余信息,降低系统内存占用,提高压缩速度和编码效率,从而提供一种可行的编码方式。
本发明提出一种自适应MotionJPEG编码方法,该编码方法的其中一个实施例包括如下步骤:
获取视频序列;根据Huffman说明表对所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧对应的编码符号并统计对应的编码符号的出现频率;根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码。
本发明利用当前视频帧的编码信息实现对Huffman说明表的更新,并根据更新后的Huffman说明表对当前视频帧的相邻下一视频帧进行JPEG编码,使Huffman说明表动态适应于不同视频帧的JPEG编码,由于充分利用了相邻视频帧之间的相关性,从而能够有效减少视频帧之间的冗余信息,提高压缩效率,降低系统开销,节约成本和资源。
本发明还提出一种自适应MotionJPEG编码系统,该编码系统在其中一个实施例中包括:
获取设备,用于获取视频序列;
JPEG编码设备,用于根据Huffman说明表对所述获取设备输出的所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧对应的编码符号,并输出视频压缩流;
Huffman符号统计设备,用于统计所述当前视频帧对应的编码符号的出现频率;
控制设备,用于根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码。
本发明提供一种利用自适应MotionJPEG编码方法的编码系统,该编码系统通过利用当前视频帧的编码信息实现对Huffman说明表的更新,并根据更新后的Huffman说明表对当前视频帧的相邻下一视频帧进行JPEG编码,使Huffman说明表动态适应于不同视频帧的JPEG编码,由于充分利用了相邻视频帧之间的相关性,从而能够有效减少视频帧之间的冗余信息,提高压缩效率,降低系统开销,节约成本和资源。另外,该编码系统可以利用硬件专有模块对JPEG编码过程中各个编码符号的出现频率进行统计,并使用软件构造更新后的Huffman说明表,在实际应用中,硬件专有模块可以很方便地集成、复用JPEG编码设备原有的硬件逻辑,因此在提高压缩率的同时,兼顾软件运算量和硬件成本。
附图说明
图1为自适应MotionJPEG编码方法其中一个实施例的流程示意图;
图2为自适应MotionJPEG编码方法另一个实施例的流程示意图;
图3为自适应MotionJPEG编码方法另一个实施例的时序图;
图4为设定编码符号统计比重其中一个实施例的示意图;
图5为设定编码符号的统计对象其中一个实施例的示意图;
图6为根据当前视频帧对应的编码符号的出现频率获取相应的编码位长的过程示意图;
图7为范式Huffman编码的过程示意图;
图8为码值表的更新过程示意图;
图9为码长表的更新过程示意图;
图10为对编码位长进行限制的过程示意图;
图11为自适应MotionJPEG编码系统其中一个实施例的结构示意图;
图12为自适应MotionJPEG编码系统另一个实施例的结构示意图;
图13为自适应MotionJPEG编码系统其中一个实施例的时序图;
图14为自适应MotionJPEG编码系统另一个实施例的结构示意图。
具体实施方式
下面将结合附图及较佳实施方式对本发明的技术方案进行详细描述。
在其中一个实施例中,如图1所示,一种自适应MotionJPEG编码方法,包括如下步骤:
S100获取视频序列;
S110根据Huffman说明表对视频序列的当前视频帧进行JPEG编码,生成当前视频帧对应的编码符号;
S120在步骤S110的同时统计当前视频帧对应的编码符号的出现频率;
S130输出当前视频帧的编码码流;
S140根据当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新Huffman说明表,更新后的Huffman说明表用于当前视频帧的相邻下一视频帧的JPEG编码。
具体地,首先获取视频序列,根据Huffman说明表对视频序列的当前视频帧进行JPEG编码,生成当前视频帧对应的编码符号并统计对应的编码符号的出现频率。在本发明中,所述视频序列的当前视频帧是指视频序列中正在进行JPEG编码的视频帧,而当前视频帧的相邻下一视频帧是相对于所述当前视频帧而言的,指在当前视频帧之后并且与当前视频帧的时间最为接近的下一视频帧,同样地,当前视频帧的相邻上一视频帧指在当前视频帧之前并且与当前视频帧的时间最为接近的上一视频帧,在本发明中为便于技术方案的表述将视频序列在时间顺序上的某些视频帧进行命名,但不应将此作为对本发明技术方案的限制。
其次,根据当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新Huffman说明表。具体地,更新Huffman说明表的过程包括根据当前视频帧对应编码符号的出现频率,采用范式Huffman编码方法获取对应的编码符号的编码位长,再根据对应的编码符号的编码位长对Huffman说明表进行更新的步骤。
最后,根据更新后的Huffman说明表对当前视频帧的相邻下一视频帧进行JPEG编码,生成相邻下一视频帧对应的编码符号并统计其出现频率,根据出现频率的统计结果和范式Huffman编码方法再次更新Huffman说明表。以此类推,相邻下一视频帧之后的每一个视频帧在进行JPEG编码时所采用的Huffman说明表均为其相邻上一视频帧编码后得到的更新后的Huffman说明表,之后的每一视频帧的具体编码方法与当前视频帧的编码方法相同,此处不再赘述。该实施例中的视频序列的MotionJPEG编码充分利用了相邻视频帧之间的相关性,减少了视频序列编码过程中冗余信息的产生,提高了视频序列的压缩速度和编码效率。
在另一个实施例中,作为实际编码时的一种具体实施方式,如图2所示,包括以下步骤:
S200获取视频序列;
S210判断当前视频帧是否为初始帧;
S220若是初始帧,则根据预设Huffman说明表(通常为标准Huffman说明表)对其进行JPEG编码;若不是初始帧,则根据更新后的Huffman说明表进行JPEG编码;
S230在S220进行的同时统计当前视频帧进行JPEG编码后生成的对应的编码符号的出现频率;
S240根据当前视频帧对应的编码符号的出现频率,采用范式Huffman编码方法对当前视频帧对应编码符号进行编码,获取对应的编码符号的编码位长,根据编码位长来更新Huffman说明表;
S250输出当前视频帧的编码码流。
然后获取相邻下一视频帧,重复步骤S210至S250,对所述视频序列的每一视频帧进行JPEG编码。
本实施例具体的编码过程如下:获取视频序列并判断所获取的当前视频帧是否为初始帧,如上一实施例所述,本发明中的初始帧是指第一次获取到并进行编码的视频帧,并非指视频序列在时间上的绝对第一帧。如果当前视频帧是初始帧,则根据预设Huffman说明表(通常为标准Huffman说明表)对当前视频帧进行JPEG编码,生成初始帧对应的编码符号并统计其出现频率,根据出现频率的统计结果和范式Huffman编码方法,得到当前视频帧对应的编码符号的编码位长,根据编码位长更新Huffman说明表,并输出当前视频帧的编码码流;然后获取相邻下一视频帧,根据更新后的Huffman说明表对相邻下一视频帧进行JPEG编码,之后所有视频帧的编码方法均以此类推。
该实施例结合实际编码过程,对相邻视频帧之间Huffman说明表的自适应性动态变化作出了规律性的解释说明,通过Huffman说明表的动态更新实现了不同视频帧间相关性的充分利用,从而消除冗余信息。但是对于所属技术领域的技术人员而言,在本实施例提出的编码方法的基础之上,可以引申出多种其它的编码方法,本实施例所说明的情况并不能将其他所有情况都囊括进来,因此,本发明所要求保护的范围应以权利要求限定的保护范围为准。
在另一个实施例中,根据Huffman说明表对视频序列的当前视频帧进行JPEG编码,生成当前视频帧对应的编码符号并统计其出现频率时,可以根据编码符号统计比重来统计对应的编码符号的出现概率。由于Huffman说明表是在编码符号的出现频率基础之上构建的,而编码符号的出现频率在一帧图像中的分布具有一定的规律性,往往只统计一帧图像中一部分的编码符号的出现频率,即可近似作为一帧图像的全部编码符号的出现频率,因此,基于上述原理,本实施例通过统计当前视频帧对应的部分编码符号的出现频率,即为编码符号的统计数量设定一个比重(编码符号统计比重),以当前视频帧中对应的部分编码符号的出现频率代替全部编码符号的出现频率,进而以部分编码符号的出现频率为基础构建基于当前视频帧的Huffman说明表,并将该Huffman说明表用于相邻下一视频帧的编码。该优选实施例不仅能够充分利用相邻视频帧之间的相关性,实现视频压缩效率的提高,而且,由于在视频帧编码的过程中无需等待当前视频帧编码结束后再构建相应的Huffman说明表,当前视频帧的编码过程与Huffman说明表构建过程是并行运行的,因而最大程度地发挥了JPEG编码设备的编码效率,在进一步提高视频压缩效率的同时,减小了编码过程中的延迟效应。下面结合图3所示的时序图对该实施例进行说明,由图可知,在当前视频帧结束编码之前,对当前视频帧对应的部分编码符号的出现频率进行统计,统计结束后,基于该统计结果构建Huffman说明表,由于构建Huffman说明表的时间较短,例如,在一款主频为160兆赫兹的32比特CPU上运行构建Huffman说明表的程序,约需要3毫秒,而大部分应用中编码器是按照压缩1帧用时30毫秒设计的,因此构建Huffman说明表的时间远远小于视频帧的编码时间,构建Huffman说明表的时间在时间轴上能够被完全覆盖。当Huffman说明表构建完成时,当前视频帧的编码可能尚未完成,此时需等待JPEG编码设备完成编码后再更新Huffman说明表并将更新后的Huffman说明表用于相邻下一视频帧的编码。同时,当前视频帧对应的部分编码符号统计完成后,根据JPEG编码设备输出的编码比特率和/或控制设备的使用占比设定编码符号统计比重,该编码符号统计比重将用于当前视频帧的相邻下一视频帧的部分编码符号的统计。
优选地,在获取编码符号统计比重时,将亮度分量的DC中间符号作为统计对象,以当前视频帧当前生成的亮度分量的DC中间符号个数与当前视频帧对应的全部亮度分量的DC中间符号个数之比作为编码符号统计比重的值。为能清楚表达本发明中编码符号统计比重的设定,下面结合具体实例对上述内容加以解释:
在MotionJPEG编码领域,每一个视频帧进行JPEG编码时都会生成对应的编码符号,编码符号具体包括DC中间符号和AC中间符号。例如,一个8x8数据块经过离散余弦变换和量化后,位于8x8数据块左上角的数据便是DC系数,DC系数是图像在频域中频率为零的系数值,除DC系数以外的63个系数值便是AC系数,而AC系数是图像在频域中频率不为零的系数值。由于DC系数是一块图像像素的平均值,相邻8x8数据块的DC系数有很大的相关性,所以通常对相邻块的DC系数的差值进行编码,DC中间符号就是由DC系数的差值转化而来的,而AC中间符号也是由AC系数转化而来的。在根据编码符号统计比重对部分编码符号进行统计时,优选地以亮度分量的DC中间符号(Ydc_symbol)作为设定统计比重的对象,其好处在于:一方面,对于大小一定的视频序列或者视频帧而言,Ydc_symbol总数是一定的,并且相对于其他中间符号而言其总数较少(亮度分量的DC中间符号有12种,而亮度分量的AC中间符号则有162种),同时,在根据编码符号统计比重统计部分编码符号的出现频率时,实际上可以利用当前生成的Ydc_symbol的个数作为停止统计出现频率的判定条件,即根据当前视频帧对应的Ydc_symbol总数和编码符号统计比重获得需要统计的Ydc_symbol的个数(相当于为Ydc_symbol的统计个数设置一个阈值),在当前视频帧当前生成的Ydc_symbol的个数达到阈值时,立即结束对编码符号的出现频率的统计,因此,将个数较少的Ydc_symbol用于编码符号统计比重的计算能够提高统计效率;另一方面,由于Ydc_symbol在编码的过程中具有良好的稳定性,因此采用Ydc_symbol作为编码符号统计比重的对象能够保证最终获得的编码符号统计比重的有效性和准确性。在上述实施例中,根据编码符号统计比重统计当前视频帧对应的编码符号,使得视频帧的编码过程和Huffman说明表的构建过程并行进行,从而最大程度地减小了系统延迟,同时,将基于当前视频帧的Huffman说明表应用于相邻下一视频帧的编码,提高了视频的压缩效率,因此本实施例在保留原有编码压缩效率的基础之上,提高了视频编码的灵活性。
对于编码符号统计比重的设定,其中一个实施例如图4所示,编码符号统计比重可以根据JPEG编码设备输出的编码比特率(单位时间内传送的比特数)和控制设备(如CPU等)的使用占比进行设定。下面将以具体的参数为例对根据JPEG编码设备输出的编码比特率和控制设备的使用占比设定编码符号统计比重这一过程进行详细的说明,但应当指出的是,以下说明过程仅以其中几个较为具体的数据或者参数为例进行说明,因而此处的说明不应作为对本发明保护范围的限制。图3所示为根据JPEG编码设备输出的编码比特率和控制设备的使用占比设定编码符号统计比重的过程示意图,当控制设备的使用占比小于或等于第一阈值且编码比特率小于或等于第二阈值时,编码符号统计比重设定为60%;当控制设备的使用占比小于或等于第一阈值且编码比特率大于第二阈值而小于或等于第三阈值时,编码符号统计比重设定为80%;当控制设备的使用占比小于或等于第一阈值且编码比特率大于第三阈值时,编码符号统计比重设定为100%,即对当前视频帧的全部编码符号的出现频率进行统计。特别地,当控制设备的使用占比大于第一阈值时,编码符号统计比重为0%,即意味着不对当前视频帧对应的编码符号进行统计,此时采用预设Huffman说明表(通常为标准Huffman说明表)对相邻下一视频帧进行JPEG编码。根据JPEG编码设备的编码比特率和控制设备的使用占比设定编码符号比重,充分考虑了不同条件下对编码符号进行统计的情况,根据实际情况灵活地调整编码符号统计比重,以提高视频压缩的效率。当然,在实际应用中,完全可以以控制设备的使用占比或JPEG编码设备输出的编码比特率作为设定编码符号统计比重取值的依据。
编码符号统计比重可以是如上所述的预设比重(如60%,80%,100%等),优选地,编码符号统计比重也可以是动态变化的,例如,根据JPEG编码设备输出的编码比特率和/或控制设备的使用占比的具体情况,对每一个视频帧对应的编码符号的统计都设定不同的编码符号统计比重,实现编码符号统计比重的动态变化,而编码符号统计比重的动态变化符合实际编码时对编码符号进行统计的实际情况,因此具有较强的实用性。
此外,除了根据JPEG编码设备输出的编码比特率和控制设备的使用占比对编码符号统计比重进行具体设定外,还可以对编码符号的统计对象进行设定,如图5所示,当控制设备的使用占比小于或等于第一阈值且所述编码比特率小于或等于第二阈值时,编码符号的统计对象为亮度分量的DC中间符号(Ydc_symbol)、亮度分量的AC中间符号(Yac_symbol)、色度分量的DC中间符号(UVdc_symbol)和色度分量的AC中间符号(UVac_symbol);当控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第二阈值而小于或等于第三阈值时,编码符号的统计对象为Ydc_symbol、Yac_symbol、UVdc_symbol和UVac_symbol;当控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第三阈值时,编码符号的统计对象为Ydc_symbol和Yac_symbol。与编码符号统计比重设定相似地,当控制设备的使用占比大于第一阈值时,则不对当前视频帧的编码符号进行统计,而采用预设Huffman说明表对相邻下一视频帧进行JPEG编码。控制设备在根据不同的统计对象的出现频率构建Huffman说明表时,控制设备的使用占比不同,同时,不同的编码符号统计对象与JPEG编码设备输出的编码比特率密切相关,由于根据不同的编码符号出现频率构建的Huffman说明表对编码比特率的贡献不同,因此在JPEG编码设备输出的编码比特率较高时,可以采用设定编码符号的统计对象的方式(如仅统计亮度分量的DC中间符号和AC中间符号),实现对输出的编码比特率的调节,从而平衡系统的负载。
视频帧进行JPEG编码时会生成相应的编码符号,所述编码符号具体包括DC中间符号和AC中间符号,而根据范式Huffman编码方法生成的Huffman说明表又与上述两种中间符号的出现频率密切相关。对于一个8x8的数据块而言,DC中间符号可以有12种取值,AC中间符号可以有162种取值,关于DC中间符号和AC中间符号取值的表即是码值表,关于DC中间符号和AC中间符号编码位长的表即是码长表,而所述码值表和码长表共同组成Huffman说明表,并用于编码过程中模拟Huffman树的建立。
在其中一个实施例中,根据当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新Huffman说明表这一过程,具体包括根据当前视频帧对应的编码符号的编码位长对码值表和码长表分别进行更新的过程。
作为对码值表进行更新的一种具体实现方式,将当前视频帧对应的编码符号的码值按照其相应的编码位长的大小顺序(例如从小到大的顺序)进行排列后,得到更新后的码值表。
作为对码长表进行更新的一种具体实现方式,根据预设码长阈值对当前视频帧对应的编码符号的编码位长进行限制,根据限制后编码符号的编码位长得到更新后的码长表。
作为一种范式Huffman编码方法的优选实施方式,预设码长阈值具体可取为16。
为更详细地阐明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。如图6所示,对当前视频帧进行JPEG编码时生成对应的编码符号(包括亮度分量Y的DC中间符号和AC中间符号,色度分量U和色度分量V的DC中间符号和AC中间符号,色度V分量的DC中间符号和AC中间符号),同时统计对应的编码符号的出现频率,根据所述出现频率的统计结果对编码符号进行范式Huffman编码后得到编码符号的编码位长,根据编码位长对当前视频帧对应的编码符号的码值表和码长表分别进行更新,即实现Huffman说明表的动态更新。下面将结合实际编码方法对当前视频帧的编码符号的编码位长获取过程以及Huffman说明表的更新过程予以详细说明,在如下的说明过程中,都将以当前视频帧的亮度分量Y的AC中间符号为例,而亮度分量Y的DC中间符号,色度分量U和色度分量V的AC中间符号,色度分量U和色度分量V的DC中间符号的相应过程都可以按照与亮度Y的AC中间符号相同的过程进行处理。
图7所示为MotionJPEG编码中范式Huffman编码的过程示意图,其结果是根据当前视频帧对应的编码符号的出现频率和范式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中间符号的编码位长后,根据如图8所示的亮度分量Y的AC中间符号的码值表更新流程图对当前视频帧的码值表进行更新,具体方法是将编码符号的码值按照其对应的编码位长从小到大的顺序进行排列,从而得到更新后的码值表。
图9所示为亮度分量Y的AC中间符号的码长表更新流程图。码长表BITS[V]表示在亮度分量Y的162个AC中间符号中编码位长为V的编码符号个数,如果将临时代码点考虑在内,则亮度分量Y的AC中间符号应该有163种,特别地,BITS[0]的值为0。在MotionJPEG编码过程中,范式Huffman编码所用到的有关编码位长的Huffman说明表,其最大编码位长不能大于预设码长阈值,即所有编码符号的编码位长应限制为小于或者等于预设码长阈值。作为一种优选实施方式,当预设码长阈值具体为16时,所有编码符号的编码位长应限制为小于或者等于16,该限制过程可以根据如图10所示的方法实现,其基本原理是:对于最长的Huffman代码而言,符号成对出现,所以每次从长度表中移走两个符号。符号对的前缀(至少1位)被分给符号对中的1个符号,然后把下一个最短非零BITS入口项中的代码字转换为两个代码字的前缀。当把BITS表压缩为最大为16位后,最后一步再把保留的代码点,从代码长度计数值中移出。至此,有关亮度分量Y的AC中间符号的码长表已经更新完毕。
如上所述,对根据当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新Huffman说明表的过程结合附图进行了具体的说明,并且仅以当前视频帧的一种编码符号即亮度Y的AC中间符号为例进行说明,然而对于所属技术领域人员而言,当前视频帧的其他编码符号的处理过程以及视频序列中其他视频帧对应的编码符号的处理过程均可以按照亮度Y的AC中间符号的处理过程进行相应的处理或者变换。
为了进一步验证本发明所提出的自适应MotionJPEG编码方法对视频压缩的有效性,这里分别就使用标准Huffman说明表的MotionJPEG编码方法(标准MotionJPEG编码方法)和本发明所提出的自适应MotionJPEG编码方法的实际压缩效果进行比较。用上述两种方法分别对Amazon[1280×720].yuv视频序列中的100个视频帧进行编码,得到编码后压缩文件的大小以及压缩率,结果如表1所示,其中S_01为使用标准MotionJPEG编码方法进行编码后的压缩文件大小,S_02为使用自适应MotionJPEG编码方法编码后的压缩文件大小,这两种编码方法所得到的压缩文件字节数的差值与使用标准Huffman说明表编码后得到的压缩文件的字节数之比即为压缩率_02。从表1可以看出,自适应MotionJPEG编码方法相比于传统技术中标准MotionJPEG编码方法具有更优的视频压缩效果。
视频样本 S_01 S_02 压缩率_02
Amazon[1280x720].yuv 5.91MB 4.93MB 16.58%
表1
在此基础之上,为了更进一步说明自适应MotionJPEG编码方法对于不同类型的视频序列都具有更优的压缩效果,这里给出分别使用标准MotionJPEG编码方法和自适应MotionJPEG编码方法对不同类型视频样本进行编码的结果,如表2所示,其中每一视频样本用于编码的视频帧数均为100个。根据表2的数据可知,从压缩效果上来看,一方面对于画面运动程度小的视频样本,使用自适应MotionJPEG编码方法进行编码的压缩率一般在5%~9%左右,部分视频样本的压缩率可达12%,相比于标准MotionJPEG编码方法的压缩效果,自适应MotionJPEG编码方法能够明显地提高数据的压缩率;另一方面对于720p和1080p的视频样本在使用自适应MotionJPEG编码方法进行编码时,其压缩率多在10%~30%之间,编码效率得到了更大程度的提升。
视频样本 S_01 S_02 压缩率_02
ducks_take_off[1280x720].yv12 15.8 15.3 0.0316457
bridge_close[352x288].yv12 1.47 1.38 0.06122449
Robotica[1440x1080].yuv 6.75 4.95 0.266666667
football[352x288].yv12 1.47 1.42 0.034013605
foreman[352x288].yv12 1.26 1.2 0.047619048
highway[352x288].yv12 0.97 0.85 0.12371134
blue_sky[1920x1080].yv12 19.4 18.3 0.056701031
bowing[352x288].yv12 0.95 0.86 0.094736842
Speed[1440x1080].yuv 14.4 13.3 0.076388889
Stormchasers[1440x1080].yuv 6.5 4.54 0.301538462
To_The_Limit[1440x1080].yuv 10.7 9.5 0.112149533
Amazing_Caves[1440x1080].yuv 6.81 5.04 0.259911894
Amazon[1440x1080].yuv 8.91 7.27 0.184083651
FighterPilot[1280x720].yuv 4.73 3.61 0.236786169
表2
在实际的JPEG编码中,除上述标准MotionJPEG编码方法外,还有另一种基于对同一视频帧进行两次扫描而生成用于该视频帧编码的Huffman说明表的方法,由于该编码方法能够更准确地构造出用于编码的Huffman树,因此是一种压缩效果较为理想的编码方法。这里进一步给出使用两次扫描而得到的Huffman说明表的MotionJPEG编码方法和自适应MotionJPEG编码方法分别对不同类型视频样本进行编码的压缩率对比,如表3所示,其中S_01为使用两次扫描而得到的Huffman说明表进行编码后的压缩率,S_02为使用自适应MotionJPEG编码方法进行编码后的压缩率。通过对表3的数据进行分析可知,S_01与S_02在数值上十分接近,说明此两种编码方法的压缩效果相近,但采用同一帧进行两次扫描而得到Huffman说明表的方法并不利于实际应用,因为当视频帧数较多时,对每一视频帧进行两次扫描将对系统造成巨大的开销,而本发明所提出的自适应MotionJPEG编码方法充分利用了相邻视频帧之间的相关性,在获得与理想压缩效果相接近的压缩效果的同时,减少了对每一视频帧的扫描次数,极大地节约了系统资源。
视频样本 压缩率_01 压缩率_02
ducks_take_off[1280x720].yv12 0.03164557 0.03164557
bridge_close[352x288].yv12 0.06122449 0.06122449
Robotica[1440x1080].yuv 0.271111111 0.266666667
football[352x288].yv12 0.034013605 0.034013605
foreman[352x288].yv12 0.047619048 0.047619048
highway[352x288].yv12 0.128865979 0.12371134
blue_sky[1920x1080].yv12 0.056701031 0.056701031
bowing[352x288].yv12 0.094736842 0.094736842
coastguard[352x288].yv12 0.056962025 0.050632911
Speed[1440x1080].yuv 0.076388889 0.076388889
Stormchasers[1440x1080].yuv 0.304615385 0.301538462
To_The_Limit[1440x1080].yuv 0.114018692 0.112149533
Amazing_Caves[1440x1080].yuv 0.262848752 0.259911894
Amazon[1440x1080].yuv 0.189674523 0.184062851
FighterPilot[1280x720].yuv 0.241014799 0.236786469
表3
此外,还将根据编码符号统计比重来统计编码符号的出现频率的方法(即统计部分编码符号出现频率的方法)与标准MotionJPEG编码方法进行对比,如表4所示,S_01(100%)表示使用标准Huffman说明表进行编码后压缩文件大小;S_02(100%)表示使用自适应MotionJPEG编码方法进行编码后的压缩文件大小,并且统计的是当前视频帧对应的全部编码符号的出现频率;S_02(80%)表示使用自适应MotionJPEG编码方法进行编码后的压缩文件大小,并且编码符号统计比重为80%;S_02(60%)表示使用自适应MotionJPEG编码方法进行编码后的压缩文件大小,并且编码符号统计比重为60%。由表4的数据可知,一方面,从压缩后的文件大小上来看,使用自适应MotionJPEG编码方法(S_02(100%))能够获得比现有压缩技术(S_01(100%))更好的压缩效果;另一方面,以部分编码符号(如80%,60%)的出现频率统计结果近似一帧图像中全部编码符号(100%)的出现频率统计结果,仍然能够获得与后者相接近的压缩结果,这表明,根据编码符号统计比重统计部分编码符号出现频率的方法,在最终的压缩效果上与使用统计全部编码符号的出现频率而生成的Huffman说明表进行编码的压缩效果相同,但在统计部分编码符号出现频率的方法中,出现频率的统计在JPEG编码设备完成当前视频帧的编码之前,因此可提前构建用于相邻下一视频帧的Huffman说明表,从而在提高压缩效率的同时,大大减少了编码过程的延迟,提高了视频编码的灵活性。
视频样本 S_01(100%) S_02(100%) S_02(80%) S_02(60%)
07420003-720p.yuv 13.2MB 11.3MB 11.3MB 11.4MB
19160007-720p.yuv 9.98MB 8.03MB 8.05MB 8.07MB
PPG00081-720p.yuv 22.6MB 21.4MB 21.4MB 21.5MB
Tantugo_01-720p.yuv 15MB 13.7MB 13.8MB 13.8MB
Tantugo_02-720p.yuv 12.3MB 10.7MB 10.7MB 10.7MB
Tantugo_03-720p.yuv 17.8MB 16.1MB 16.1MB 16.1MB
07420003-1080p.yuv 26.6MB 22.2MB 22.3MB 22.4MB
19160007-1080p.yuv 21.1MB 16.3MB 16.4MB 16.4MB
PPG00081-1080p.yuv 45.7MB 42.7MB 42.8MB 42.9MB
Tantugo_01-1080p.yuv 28.9MB 25.6MB 25.6MB 25.6MB
Tantugo_02-1080p.yuv 24.3MB 20.4MB 20.4MB 20.4MB
Tantugo_03-1080p.yuv 36.8MB 33MB 33MB 33MB
mobcal_ter_720p.yuv 30.9MB 30.3MB 30.3MB 30.3MB
表4
综上所述,本发明相比于传统MotionJPEG编码方法,充分利用了视频序列中相邻视频帧的相关性,实现Huffman说明表在视频帧之间的动态变化,因而能够有效减少视频帧之间的冗余信息,提高了视频编码的压缩效率,同时采用一次扫描的方式生成每一视频帧的Huffman说明表,降低了系统开销,有效节约了成本和资源。此外,本发明还提出了一种统计部分编码符号出现频率的编码方法,即以视频帧对应的部分编码符号的出现频率近似替代该视频帧对应的全部编码符号的出现频率,该方法不仅能够获得良好的视频压缩效果,而且最大程度地发挥了JPEG编码设备的编码效率,减小了视频编码过程中的延迟。
同时,本发明还提出了一种自适应MotionJPEG编码系统,如图11所示,具体包括如下组成部分:
获取设备1100,用于获取视频序列;
JPEG编码设备1110,用于根据Huffman说明表对获取设备1100输出的所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧对应的编码符号,并输出视频压缩流;
Huffman符号统计设备1120,用于统计所述当前视频帧对应的编码符号的出现频率;
控制设备1130,用于根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码。
在上述编码系统中,各组成设备具有数据存储的功能,例如JPEG编码设备1110对视频帧进行编码后生成的编码符号数据的存储,以及Huffman符号统计设备1120对编码符号出现频率统计信息的存储等,都可以通过各自自带的存储单元实现。同时,JPEG编码设备1110不仅可以将获取设备1100传输过来的视频序列编码成为符合MotionJPEG压缩标准的视频压缩流,而且可以与现有硬件逻辑实现集成、复用。
关于MotionJPEG编码系统的工作过程,将结合该实施例进行详细地描述。
如图11所示,获取设备1100获取视频序列并将视频序列输出至JPEG编码设备1110,JPEG编码设备1110接收视频序列并根据Huffman说明表对视频序列的当前视频帧进行编码,生成当前视频帧对应的编码符号,同时Huffman符号统计设备1120统计当前视频帧对应的编码符号的出现频率,将统计结果输出至控制设备1130,控制设备1130根据统计结果和范式Huffman编码方法更新Huffman说明表,JPEG编码设备1110将根据更新后的Huffman说明表对当前视频帧的相邻下一视频帧进行编码,生成相邻下一视频帧对应的编码符号,此时Huffman符号统计设备1120统计该相邻下一视频帧对应的编码符号的出现频率,并将其统计结果输出至控制设备1130,控制设备1130根据该统计结果再次更新Huffman说明表。JPEG编码设备1110对之后的每一个视频帧进行JPEG编码时,使用的Huffman说明表均为它的相邻上一视频帧编码后得到的更新后的Huffman说明表,之后每一视频帧的具体编码方法与当前视频帧的编码方法相同,此处不再赘述。特别地,当获取设备1100所获取的当前视频帧为所述视频序列的初始帧时,JPEG编码设备1110可采用预设Huffman说明表(通常为标准Huffman说明表)对初始帧进行JPEG编码。
本发明所提出的MotionJPEG编码系统通过各个组成设备之间的协调配合实现了基于帧间动态Huffman说明表的编码功能,充分利用相邻视频帧之间的相关性,从而能够有效减少视频帧之间的冗余信息,在进一步提高压缩效率的同时,降低系统开销,节约成本和资源。
优选地,MotionJPEG编码系统可以利用硬件专有模块对JPEG编码过程中编码符号的出现频率进行统计,通过DRAM(DynamicRandomAccessMemory,动态随机存取存储器)等存储单元进行交换,并使用软件构造更新后的Huffman说明表。在实际应用中,硬件专有模块可以很方便地集成、复用JPEG编码设备原有的硬件逻辑,在提高压缩率的同时,兼顾软件运算量和硬件成本。
在另一个实施例中,如图12所示,编码系统还包括:
Huffman统计控制设备1240,用于为Huffman符号统计设备设定编码符号统计比重,Huffman符号统计设备根据编码符号统计比重统计当前视频帧对应的编码符号的出现频率。
具体地,获取设备1200为编码系统提供视频序列并将视频序列输出至JPEG编码设备1210,JPEG编码设备1210接收视频序列并根据Huffman说明表对视频序列的当前视频帧进行编码,生成当前视频帧对应的编码符号,在JPEG编码设备1210进行JPEG编码的同时,Huffman符号统计设备1220根据Huffman统计控制设备1240所设定的编码符号统计比重对当前视频帧对应的编码符号的出现频率进行统计,并将统计结果输出至控制设备1230,控制设备1230根据统计结果和范式Huffman编码方法构建并更新Huffman说明表,JPEG编码设备1210将根据更新后的Huffman说明表对相邻下一视频帧进行编码。JPEG编码设备1210对之后的每一个视频帧进行编码时,使用的Huffman说明表均为相应视频帧的相邻上一视频帧编码后控制设备1230构建的Huffman说明表,之后每一视频帧的具体编码方法与当前视频帧的编码方法相同,此处不再赘述。特别地,当获取设备1200所获取的当前视频帧为所述视频序列的初始帧时,JPEG编码设备1210可采用预设Huffman说明表对初始帧进行JPEG编码,所述预设Huffman说明表可以为标准Huffman说明表。
上述自适应MotionJPEG编码系统除通过各个组成设备之间的协调配合实现压缩效率的进一步提高外,该编码系统通过Huffman统计控制设备对Huffman符号统计设备所统计的编码符号进行控制,实现在当前视频帧编码完成前,提前构建当前视频帧的Huffman说明表,从而实现控制设备与JPEG编码设备的并行运行,最大程度地发挥了JPEG编码设备的编码效率,减小系统延迟,提高了编码系统的性能和灵活性。
下面结合图13对上述实施例进行描述,图13所示为该实施例的时序图。由图可知,在JPEG编码设备结束当前视频帧的编码之前,Huffman符号统计设备对当前视频帧对应的部分编码符号出现频率进行统计,统计结束后,控制设备基于该统计结果构建Huffman说明表,由于控制设备构建Huffman说明表的时间较短,例如,在一款主频为160兆赫兹的32比特CPU上运行构建Huffman说明表的程序,约需要3毫秒,而大部分应用中编码器是按照压缩1帧用时30毫秒设计的,因此控制设备构建Huffman说明表的时间远远小于JPEG编码设备对当前视频帧的编码时间,控制设备构建Huffman说明表的时间在时间轴上能够被完全覆盖。当控制设备构建完成Huffman说明表时,JPEG编码设备可能尚未完成编码,此时控制设备需等待JPEG编码设备完成编码后再更新Huffman说明表并启动相邻下一视频帧的编码,JPEG编码设备将更新后的Huffman说明表用于相邻下一视频帧的编码。同时,Huffman符号统计设备统计完成当前视频帧对应的部分编码符号后,根据JPEG编码设备输出的编码比特率和/或控制设备的使用占比为Huffman符号统计设备设定编码符号统计比重,该编码符号统计比重将用于当前视频帧的相邻下一视频帧的部分编码符号出现频率的统计。由上述分析可知,包括Huffman统计控制设备的编码系统确实能够减小编码系统的延迟,提高编码效率。
优选地,Huffman统计控制设备在获取编码符号统计比重时,将亮度分量的DC中间符号作为统计对象,以当前视频帧当前生成的亮度分量的DC中间符号个数与当前视频帧对应的全部亮度分量的DC中间符号个数之比作为编码符号统计比重的值。Huffman统计控制设备对编码符号统计比重的设定方法及其有益效果均已在上述自适应MotionJPEG编码方法实施例部分进行了详细介绍,此处不再赘述。
作为一种具体的实施方式,Huffman统计控制设备根据编码设备输出的编码比特率和控制设备的使用占比对编码符号统计比重进行设定,充分考虑了编码系统在实际工作情况下对编码符号的统计需求,根据实际情况设定编码符号统计比重,以提高系统的编码性能。当然,在实际应用中,完全可以将JPEG编码设备输出的编码比特率或控制设备的使用占比二者中的任意一项作为设定编码符号统计比重取值的依据。
优选地,Huffman统计控制设备动态设定编码符号统计比重,例如,Huffman统计控制设备根据JPEG编码设备输出的编码比特率和/或控制设备的使用占比的具体情况,对每一个视频帧对应的编码符号的统计都设定不同的编码符号统计比重,实现编码符号统计比重的动态变化,而编码符号统计比重的动态变化符合实际编码时对编码符号进行统计的实际情况,因此具有较强的实用性。
在另一种具体的实施方式中,Huffman统计控制设备还根据JPEG编码设备输出的编码比特率和控制设备的使用占比对编码符号的统计对象进行设定。
Huffman统计控制设备根据JPEG编码设备输出的编码比特率和控制设备的使用占比对编码符号统计比重或者编码符号的统计对象的设定,其过程及其有益效果均已在上述自适应MotionJPEG编码方法中相应的实施例部分进行了详细说明,此处不再赘述。
在另一个自适应MotionJPEG编码系统的实施例中,如图14所示,其组成包括:
获取设备1400,用于提供视频序列;
JPEG编码设备1410,用于根据Huffman说明表对获取设备1400输出的所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧对应的编码符号,JPEG编码完成后输出所述当前视频帧的压缩流;
Huffman统计控制设备1420,用于为所述Huffman符号统计设备设定编码符号统计比重,所述Huffman符号统计设备根据所述编码符号统计比重统计所述当前视频帧对应的编码符号的出现频率;
Huffman符号统计设备1430,用于统计所述当前视频帧对应的编码符号的出现频率;
控制设备1440,用于根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码;
存储设备1450,用于MotionJPEG编码过程中数据的存储、交换和中转;
输出设备1460,用于压缩后MotionJPEG数据的网络输出。
在本实施例中,编码系统的工作过程具体包括:JPEG编码设备1410接收所述获取设备1400输出的视频序列,并根据Huffman说明表对视频序列的当前视频帧进行编码,生成当前视频帧对应的编码符号并将当前视频帧的编码码流输出至存储设备1450;所述Huffman符号统计设备1430根据Huffman统计控制设备1420所设定的编码符号统计比重来统计当前视频帧对应的部分编码符号(包括DC中间符号和AC中间符号)的出现频率,并将统计结果输出至存储设备1450;控制设备1440从存储设备1450获取该统计结果并根据范式Huffman编码方法更新Huffman说明表,控制设备1440将更新后的Huffman说明表输出至存储设备1450,同时控制设备1440通知JPEG编码设备1410将更新后的Huffman说明表存储至相邻下一视频帧的定义Huffman标记字段,该定义Huffman标记字段的作用在于,当解码器获取到该字段时,就可以构造出相应的Huffman树,并用于相应的视频帧的解码。获取设备1400获取相邻下一视频帧之后,JPEG编码设备1410将根据更新后的Huffman说明表对其进行编码,之后每一视频帧都按照各自的前一视频帧生成的Huffman说明表进行编码,以此类推,待视频序列中的所有视频帧编码完成后,输出设备1460从存储设备1450获取并输出符合MotionJPEG压缩标准的视频压缩流。
本实施例中的存储设备1450为JPEG编码设备1410、Huffman符号统计设备1430、控制设备1440以及输出设备1460提供数据的存储、交换和中转,一方面减少各设备的分立的存储单元,从而减小系统的复杂性,另一方面有利于不同设备对存储数据的快速读取,提高系统效率。所述存储设备1450包括DRAM(DynamicRandomAccessMemory,动态随机存取存储器)、SRAM(StaticRandomAccessMemory,静态随机存取存储器)、NandFlash(一种flash内存)中的一种以上。
此外,所述获取设备1400包括Sensor(传感器)模组、硬盘、NandFlash(一种flash内存)、NorFlash(一种flash内存)中的一种以上。
所述控制设备1440包括CPU。
所述输出设备1460包括NandFlash、硬盘中的一种或者两种。
同时,作为一种替代方案,获取设备1400、存储设备1440以及输出设备1450可以任选两个设备进行集成复用或者将三者集成到同一设备中,以便简化系统装置,进而节约硬件设备成本。
本实施例中还可以包括输入设备,该输入设备用于为获取设备1400提供连续稳定的视频序列。
优选地,Huffman统计控制设备可以集成、复用JPEG编码设备,从而简化编码系统,节约成本。
在上述实施例中,自适应MotionJPEG编码系统基于相邻视频帧之间的相关性和Huffman说明表的动态更新使得视频帧间的冗余信息减少,软件的计算量减少,从而提高压缩效率,节省系统开销,同时,通过Huffman统计控制设备对Huffman符号统计设备所统计的编码符号进行控制,实现在当前视频帧编码完成前,提前构建当前视频帧的Huffman说明表,从而进一步实现控制设备与JPEG编码设备的并行运行,最大程度地发挥了JPEG编码设备的编码效率,减小系统延迟,提高了编码系统的性能和灵活性,符合实际编码时对编码系统的要求。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (18)

1.一种自适应MotionJPEG编码方法,其特征在于,包括以下步骤:
获取视频序列;
根据Huffman说明表对所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧对应的编码符号,并统计对应的编码符号的出现频率;
根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码。
2.根据权利要求1所述的自适应MotionJPEG编码方法,其特征在于,生成所述当前视频帧对应的编码符号并统计对应的编码符号的出现频率的过程包括:
所述当前视频帧对应的编码符号的出现频率根据编码符号统计比重进行统计。
3.根据权利要求2所述的自适应MotionJPEG编码方法,其特征在于,根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表的过程包括:
在根据编码符号统计比重统计出当前视频帧对应的编码符号的出现频率后,构建Huffman说明表;
在当前视频帧完成JPEG编码后,用已构建的Huffman说明表进行更新。
4.根据权利要求2所述的自适应MotionJPEG编码方法,其特征在于,
根据JPEG编码设备输出的编码比特率和/或控制设备的使用占比设定所述编码符号统计比重。
5.根据权利要求4所述的自适应MotionJPEG编码方法,其特征在于,根据JPEG编码设备输出的编码比特率和控制设备的使用占比设定所述编码符号统计比重的过程包括:
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率小于或等于第二阈值时,所述编码符号统计比重设定为第一比重;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第二阈值而小于或等于第三阈值时,所述编码符号统计比重设定为第二比重;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第三阈值时,所述编码符号统计比重设定为第三比重。
6.根据权利要求4所述的自适应MotionJPEG编码方法,其特征在于,
还根据JPEG编码设备输出的编码比特率和控制设备的使用占比对编码符号的统计对象进行设定。
7.根据权利要求6所述的自适应MotionJPEG编码方法,其特征在于,所述编码符号包括DC中间符号和AC中间符号,所述DC中间符号包括亮度分量的DC中间符号和色度分量的DC中间符号,所述AC中间符号包括亮度分量的AC中间符号和色度分量的AC中间符号,设定所述编码符号的统计对象的过程包括:
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率小于或等于第二阈值时,所述编码符号的统计对象为亮度分量的DC中间符号、亮度分量的AC中间符号、色度分量的DC中间符号和色度分量的AC中间符号;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第二阈值而小于或等于第三阈值时,所述编码符号的统计对象为亮度分量的DC中间符号、亮度分量的AC中间符号、色度分量的DC中间符号和色度分量的AC中间符号;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第三阈值时,所述编码符号的统计对象为亮度分量的DC中间符号和亮度分量的AC中间符号。
8.根据权利要求2所述的自适应MotionJPEG编码方法,其特征在于,
所述编码符号包括DC中间符号,所述DC中间符号包括亮度分量的DC中间符号,所述编码符号统计比重为所述当前视频帧当前生成的亮度分量的DC中间符号个数与所述当前视频帧对应的全部亮度分量的DC中间符号个数之比。
9.根据权利要求1所述的自适应MotionJPEG编码方法,其特征在于,还包括如下步骤:
将更新后的Huffman说明表存储于当前视频帧的相邻下一视频帧的定义Huffman标记字段中。
10.一种自适应MotionJPEG编码系统,其特征在于,包括:
获取设备,用于获取视频序列;
JPEG编码设备,用于根据Huffman说明表对所述获取设备输出的所述视频序列的当前视频帧进行JPEG编码,生成所述当前视频帧对应的编码符号,并输出视频压缩流;
Huffman符号统计设备,用于统计所述当前视频帧对应的编码符号的出现频率;
控制设备,用于根据所述当前视频帧对应的编码符号的出现频率和范式Huffman编码方法更新所述Huffman说明表,更新后的Huffman说明表用于所述当前视频帧的相邻下一视频帧的JPEG编码。
11.根据权利要求10所述的自适应MotionJPEG编码系统,其特征在于,还包括:
Huffman统计控制设备,用于为所述Huffman符号统计设备设定编码符号统计比重,所述Huffman符号统计设备根据所述编码符号统计比重统计所述当前视频帧对应的编码符号的出现频率。
12.根据权利要求11所述的自适应MotionJPEG编码系统,其特征在于,
在所述Huffman符号统计设备根据所述编码符号统计比重统计当前视频帧对应的编码符号的出现频率后,所述控制设备构建Huffman说明表;
在所述JPEG编码设备完成所述当前视频帧的JPEG编码后,所述控制设备根据已构建的Huffman说明表进行更新。
13.根据权利要求11所述的自适应MotionJPEG编码系统,其特征在于,
所述Huffman统计控制设备根据所述JPEG编码设备输出的编码比特率和/或所述控制设备的使用占比设定所述编码符号统计比重。
14.根据权利要求13所述的自适应MotionJPEG编码系统,其特征在于,
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率小于或等于第二阈值时,所述Huffman统计控制设备设定所述编码符号统计比重为第一比重;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第二阈值而小于或等于第三阈值时,所述Huffman统计控制设备设定所述编码符号统计比重为第二比重;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第三阈值时,所述Huffman统计控制设备设定所述编码符号统计比重为第三比重。
15.根据权利要求13所述的自适应MotionJPEG编码系统,其特征在于,
所述Huffman统计控制设备还根据所述JPEG编码设备输出的编码比特率和所述控制设备的使用占比设定编码符号的统计对象。
16.根据权利要求15所述的自适应MotionJPEG编码系统,其特征在于,所述编码符号包括DC中间符号和AC中间符号,所述DC中间符号包括亮度分量的DC中间符号和色度分量的DC中间符号,所述AC中间符号包括亮度分量的AC中间符号和色度分量的AC中间符号,所述Huffman统计控制设备设定所述编码符号的统计对象包括:
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率小于或等于第二阈值时,所述Huffman统计控制设备设定所述编码符号的统计对象为亮度分量的DC中间符号、亮度分量的AC中间符号、色度分量的DC中间符号和色度分量的AC中间符号;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第二阈值而小于或等于第三阈值时,所述Huffman统计控制设备设定所述编码符号的统计对象为亮度分量的DC中间符号、亮度分量的AC中间符号、色度分量的DC中间符号和色度分量的AC中间符号;
当所述控制设备的使用占比小于或等于第一阈值且所述编码比特率大于第三阈值时,所述Huffman统计控制设备设定所述编码符号的统计对象为亮度分量的DC中间符号和亮度分量的AC中间符号。
17.根据权利要求11所述的自适应MotionJPEG编码系统,其特征在于,
所述编码符号包括DC中间符号,所述DC中间符号包括亮度分量的DC中间符号,所述编码符号统计比重为所述当前视频帧当前生成的亮度分量的DC中间符号个数与所述当前视频帧对应的全部亮度分量的DC中间符号个数之比。
18.根据权利要求10所述的自适应MotionJPEG编码系统,其特征在于,
所述JPEG编码设备将更新后的Huffman说明表存储于当前视频帧的相邻下一视频帧的定义Huffman标记字段中。
CN201510474990.7A 2015-06-15 2015-08-05 自适应Motion JPEG编码方法和系统 Active CN105120276B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510474990.7A CN105120276B (zh) 2015-06-15 2015-08-05 自适应Motion JPEG编码方法和系统
US15/010,171 US10110896B2 (en) 2015-06-15 2016-01-29 Adaptive motion JPEG encoding method and system

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201510330153 2015-06-15
CN2015103301537 2015-06-15
CN201510474990.7A CN105120276B (zh) 2015-06-15 2015-08-05 自适应Motion JPEG编码方法和系统

Publications (2)

Publication Number Publication Date
CN105120276A true CN105120276A (zh) 2015-12-02
CN105120276B CN105120276B (zh) 2018-10-09

Family

ID=54668133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510474990.7A Active CN105120276B (zh) 2015-06-15 2015-08-05 自适应Motion JPEG编码方法和系统

Country Status (2)

Country Link
US (1) US10110896B2 (zh)
CN (1) CN105120276B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107930112A (zh) * 2017-11-15 2018-04-20 杭州电魂网络科技股份有限公司 游戏数据传输方法及装置
CN114640857A (zh) * 2022-05-06 2022-06-17 江苏游隼微电子有限公司 基于改进哈夫曼编码的图像压缩方法、3d降噪方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10601443B1 (en) * 2016-08-24 2020-03-24 Arrowhead Center, Inc. Protocol for lightweight and provable secure communication for constrained devices
US10862509B1 (en) * 2019-08-16 2020-12-08 Microsoft Technology Licensing, Llc Flexible huffman tree approximation for low latency encoding
CN111510732A (zh) * 2020-05-12 2020-08-07 上海加糖科技有限公司 Jpeg文件解码方法、装置和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1976394A (zh) * 2006-12-07 2007-06-06 浙江大学 基于压缩域的场景变化实时检测方法
CN101998122A (zh) * 2010-12-13 2011-03-30 山东大学 Jpeg图像中范式霍夫曼的硬件解码方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5654704A (en) * 1995-08-02 1997-08-05 Zapex Technologies, Incorporated Video variable length code encoder with EOB insertion responsive to word length
FI974244A (fi) * 1997-11-14 1999-05-15 Nokia Mobile Phones Ltd Kuvan kompressointimenetelmä
US6882750B2 (en) * 2000-05-02 2005-04-19 Zaxel Systems, Inc. Fast loss less image compression system based on neighborhood comparisons
KR100995294B1 (ko) * 2006-06-30 2010-11-19 주식회사 메디슨 누적 빈도수를 이용한 초음파 영상의 압축 방법
TWI378654B (en) * 2009-02-04 2012-12-01 Novatek Microelectronics Corp Adaptive canonical huffman decoder and method thereof and video decoder
KR101894420B1 (ko) * 2011-04-15 2018-09-03 에스케이플래닛 주식회사 적응적 비디오 트랜스코딩 방법 및 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1976394A (zh) * 2006-12-07 2007-06-06 浙江大学 基于压缩域的场景变化实时检测方法
CN101998122A (zh) * 2010-12-13 2011-03-30 山东大学 Jpeg图像中范式霍夫曼的硬件解码方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈家大: "视频帧间动态Huffman编码的应用探讨", 《电脑编程技巧与维护》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107930112A (zh) * 2017-11-15 2018-04-20 杭州电魂网络科技股份有限公司 游戏数据传输方法及装置
CN114640857A (zh) * 2022-05-06 2022-06-17 江苏游隼微电子有限公司 基于改进哈夫曼编码的图像压缩方法、3d降噪方法
CN114640857B (zh) * 2022-05-06 2023-05-12 江苏游隼微电子有限公司 基于改进哈夫曼编码的图像压缩方法、3d降噪方法

Also Published As

Publication number Publication date
CN105120276B (zh) 2018-10-09
US10110896B2 (en) 2018-10-23
US20160366403A1 (en) 2016-12-15

Similar Documents

Publication Publication Date Title
CN105120276A (zh) 自适应Motion JPEG编码方法和系统
CN101272494B (zh) 利用合成参考帧的视频编解码方法及装置
CN105120293A (zh) 基于cpu和gpu的图像协同解码方法及装置
CN107197260A (zh) 基于卷积神经网络的视频编码后置滤波方法
CN102138326B (zh) 反量化图像的方法和设备以及解码图像的方法和设备
CN106937121A (zh) 图像解码和编码方法、解码和编码装置、解码器及编码器
CN101014129B (zh) 一种视频数据压缩方法
CN101299611B (zh) 一种基于集合游程的数据压缩方法
US8576100B2 (en) Parallel entropy encoder and parallel entropy decoder
CN107277537B (zh) 一种基于时间相关性的分布式视频压缩感知采样方法
CN102857760B (zh) 一种无反馈的优化码率的分布式视频编解码方法及其系统
CN112422989A (zh) 一种视频编码方法
CN106101703A (zh) 一种面向数字kvm切换器的屏幕视频压缩方法
CN107018416B (zh) 用于视频和图像压缩的自适应贴片数据大小编码
CN101827268A (zh) 一种基于对象的分形视频压缩与解压缩方法
CN112218084A (zh) 面向监控视频的高效视频编码标准帧级码率控制方法
US9948928B2 (en) Method and apparatus for encoding an image
CN102572426A (zh) 一种数据处理的方法和装置
CN104869426A (zh) 在低压缩码率下降低图像方块效应的jpeg编码方法
CN104113759A (zh) 视频系统、视频帧缓存再压缩/解压缩方法与装置
CN103945221A (zh) 视频编解码方法、装置及生成的视频码流
CN204721509U (zh) Motion JPEG编码系统
CN113938687A (zh) 多参考帧间预测方法、系统、设备及存储介质
CN106254872A (zh) 熵转换编码的方法以及相关装置
CN113573078B (zh) 一种基于卷积神经网络增强avs帧内解码的方法

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: 519085 Guangdong city of Zhuhai province Jida West Road No. 107 Building 9 Building (1-4)

Applicant after: Zhuhai jelee Polytron Technologies Inc

Address before: 519085 Guangdong city of Zhuhai province Jida West Road No. 107 Building 9 Building

Applicant before: Zhuhai Jieli 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: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province

Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.

Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province

Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd.