CN116527904B - 熵编码方法、熵解码方法及相关装置 - Google Patents

熵编码方法、熵解码方法及相关装置 Download PDF

Info

Publication number
CN116527904B
CN116527904B CN202310797299.7A CN202310797299A CN116527904B CN 116527904 B CN116527904 B CN 116527904B CN 202310797299 A CN202310797299 A CN 202310797299A CN 116527904 B CN116527904 B CN 116527904B
Authority
CN
China
Prior art keywords
data
length code
signed
fixed
coding
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
CN202310797299.7A
Other languages
English (en)
Other versions
CN116527904A (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.)
Guangzhou Kuvision Digital Technology Co ltd
Peng Cheng Laboratory
Original Assignee
Guangzhou Kuvision Digital Technology Co ltd
Peng Cheng Laboratory
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 Guangzhou Kuvision Digital Technology Co ltd, Peng Cheng Laboratory filed Critical Guangzhou Kuvision Digital Technology Co ltd
Priority to CN202310797299.7A priority Critical patent/CN116527904B/zh
Publication of CN116527904A publication Critical patent/CN116527904A/zh
Application granted granted Critical
Publication of CN116527904B publication Critical patent/CN116527904B/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/124Quantisation
    • 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/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供了一种熵编码方法、熵解码方法及相关装置,应用于人工智能领域,包括:对只量化数据进行无符号码定长编码,得到无符号定长码;根据预测残差数据确定位指示信息和非对称值域标志位,得到传输值域,以确定编码方式;根据编码方式对预测残差数据进行编码,得到有符号定长码;对只量化数据进行编码,得到无符号变长码;对预测残差数据进行编码,得到有符号变长码;从无符号定长码、有符号定长码、无符号变长码和有符号变长码中选取比特数最少的一个,作为压缩数据。与现有技术相比,本申请在实现同等的图像压缩质量的基础上,能够降低芯片的带宽要求和功耗,而在相同的芯片带宽要求和功耗的基础上,能够提高图像压缩效率和图像压缩质量。

Description

熵编码方法、熵解码方法及相关装置
技术领域
本申请涉及人工智能技术领域,尤其涉及一种熵编码方法、熵解码方法及相关装置。
背景技术
图像压缩通常分别参考帧压缩和视频接口压缩,参考帧压缩属于浅压缩技术的一种,能够对存储在帧存储器中的数据进行压缩,以减少外部带宽和功耗。在目标码率有上界的视频压缩中,参考帧越多,预测的精确度越高,图像的质量越好,然而芯片主频一般在400兆赫兹上下,在处理部分图像数据时,只使用一个参考帧都已经超过存储器处理能力的上界,且在实际应用中,一般只能规划存储器工作期70%的有效带宽下,视频压缩的质量就更差。因此,目前图像压缩对芯片的带宽和功耗要求高,增加了芯片的复杂度,从而降低了图像的压缩效率,降低了图像的压缩质量。
发明内容
本申请实施例的主要目的在于提出一种熵编码方法、熵解码方法及相关装置,旨在提高图像压缩的效率和质量。
为实现上述目的,本申请实施例的第一方面提出了一种熵编码方法,所述熵编码方法包括:
获取原始图像中帧图像数据的只量化数据和预测残差数据;
对所述只量化数据进行无符号定长编码,得到无符号定长码;
根据所述预测残差数据确定位指示信息和非对称值域标志位;
根据所述位指示信息和所述非对称值域标志位,得到有符号定长编码的传输值域,以确定有符号定长编码的编码方式,所述非对称值域标志位在同一所述位指示信息下对应的两个所述传输值域的开闭情况相反;
根据所述编码方式对所述预测残差数据进行有符号定长编码,得到有符号定长码;
对所述只量化数据进行无符号变长编码,得到无符号变长码;
对所述预测残差数据进行有符号变长编码,得到有符号变长码;
从所述无符号定长码、所述有符号定长码、所述无符号变长码和所述有符号变长码中选取比特数最少的一个,作为所述帧图像数据的压缩数据。
在一些实施例,所述根据所述预测残差数据确定位指示信息和非对称值域标志位,包括:
根据所述预测残差数据,确定所述预测残差数据的绝对值最大数据;
根据所述绝对值最大数据以及对应的所述预测残差数据的符号,确定所述位指示信息和非对称值域标志位。
在一些实施例,所述根据所述位指示信息和所述非对称值域标志位,得到有符号定长编码的传输值域,包括:
当所述位指示信息大于0时,根据所述位指示信息,确定边界信息;
当所述非对称值域标志位为1时,将所述边界信息的负数端设置为开区间、所述边界信息的正数端设置为闭区间,得到所述有符号定长码的传输值域;
当所述非对称值域标志位为0时,将所述边界信息的负数端设置为闭区间、所述边界信息的正数端设置为开区间,得到所述有符号定长码的传输值域。
在一些实施例,所述根据所述位指示信息,确定边界信息,包括:
将所述位指示信息减1,得到相减结果;
将第一预设数值作为底数、所述相减结果作为指数进行幂运算,得到正边界;
计算所述正边界对应数值的相反数,得到负边界;
根据所述正边界和所述负边界,确定边界信息。
在一些实施例,所述对所述预测残差数据进行有符号变长编码,得到有符号变长码,包括:
当所述预测残差数据大于0或小于0时,根据所述预测残差数据,确定符号位;
对所述预测残差数据的绝对值进行无符号变长编码,得到第一编码;
根据所述第一编码和所述符号位,得到有符号变长码。
在一些实施例,所述对所述预测残差数据的绝对值进行无符号变长编码,得到第一编码,包括:
将所述预测残差数据的绝对值与第二预设数值相加;
对相加的结果进行二进制转换,得到第二编码;
根据所述第二编码的比特数,确定编码前缀;
根据所述编码前缀和所述第二编码,得到第一编码。
在一些实施例,所述对所述预测残差数据进行有符号变长编码,得到有符号变长码,还包括:
当所述预测残差数据等于0时,对所述预测残差数据进行无符号变长编码,得到有符号变长码。
在一些实施例,所述获取原始图像中帧图像数据的只量化数据和预测残差数据,包括:
获取原始图像中的帧图像数据;
根据预设的量化参数对所述帧图像数据进行量化,得到只量化数据;
对所述只量化数据进行像素预测,得到预测残差数据。
在一些实施例,在从所述无符号定长码、所述有符号定长码、所述无符号变长码和所述有符号变长码中选取比特数最少的一个,作为所述帧图像数据的压缩数据之后,所述熵编码方法还包括:
将所述压缩数据输入至视频缓存检验器进行检验;
当所述视频缓存检验器处于上溢出状态时,对所述量化参数进行增加调整,并将调整后的所述量化参数作为预设的量化参数;
根据所述量化参数,重复获取所述帧图像数据对应的压缩数据,直至所述视频缓存检验器处于非上溢出状态;
输出所述视频缓存检验器处于非上溢出状态时对应的所述压缩数据。
为实现上述目的,本申请实施例的第二方面提出了一种熵解码方法,所述熵解码方法包括:
获取压缩数据,所述压缩数据根据上述第一方面所述的熵编码方法生成;
根据所述压缩数据,确定编码类型,所述编码类型包括无符号定长编码、有符号定长编码、无符号变长编码和有符号变长编码;
根据所述编码类型对所述压缩数据进行解码,得到解码数据;
根据所述解码数据,确定帧图像数据。
在一些实施例,所述根据所述解码数据,确定帧图像数据包括:
当所述解码数据为预测残差数据时,确定所述解码数据的预测方式和量化参数;
根据所述预测方式对所述解码数据进行反预测,得到只量化数据;
根据所述量化参数对所述只量化数据进行反量化,得到帧图像数据。
为实现上述目的,本申请实施例的第四方面提出了一种熵编码装置,包括:
获取单元,用于获取原始图像中帧图像数据的只量化数据和预测残差数据;
第一编码单元,用于对所述只量化数据进行无符号定长编码,得到无符号定长码;
信息确定单元,用于根据所述预测残差数据确定位指示信息和非对称值域标志位;
值域确定单元,用于根据所述位指示信息和所述非对称值域标志位,得到有符号定长编码的传输值域,以确定有符号定长编码的编码方式,所述非对称值域标志位在同一所述位指示信息下对应的两个所述传输值域的开闭情况相反第二编码单元,用于根据所述编码方式对所述预测残差数据进行有符号定长编码,得到有符号定长码;
第三编码单元,用于对所述只量化数据进行无符号变长编码,得到无符号变长码;
第四编码单元,用于对所述预测残差数据进行有符号变长编码,得到有符号变长码;
比较单元,用于从所述无符号定长码、所述有符号定长码、所述无符号变长码和所述有符号变长码中选取比特数最少的一个,作为所述帧图像数据的压缩数据。
为实现上述目的,本申请实施例的第四方面提出了一种电子设备,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的熵编码方法或上述第二方面所述的熵解码方法。
为实现上述目的,本申请实施例的第五方面提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的熵编码方法或上述第二方面所述的熵解码方法。
本申请提出的熵编码方法、熵解码方法及相关装置,其对只量化数据分别进行编码,得到无符号定长码和无符号变长码,并对预测残差数据进行编码,得到有符号定长码和有符号变长码,融合了变长编码和定长编码,并从中选取压缩效率最优的编码方式,即比特数最少的编码结果对应的编码方式,对应的编码结果作为压缩数据,另外,本申请根据非对称值域标志位确定有符号定长编码的传输值域,且不同非对称值域标志位在同一位指示信息下对应的两个传输值域的开闭情况相反,能够提高有符号定长码的信息密度,提高了编码效率,与现有技术相比,在实现同等的图像压缩质量的基础上,本申请能够有效地降低芯片的带宽要求和功耗,而在相同的芯片带宽要求和功耗的基础上,本申请能够提高图像的压缩效率,提高了图像的压缩质量。
附图说明
图1是本申请实施例提供的熵编码方法的流程图;
图2是本申请实施例提供的熵编码方法的信息确定的流程图;
图3是本申请实施例提供的熵编码方法的确定传输值域的流程图;
图4是本申请实施例提供的熵编码方法的计算边界信息的流程图;
图5是本申请实施例提供的熵编码方法的有符号变长码编码的流程图;
图6是本申请实施例提供的熵编码方法的确定第一编码的流程图;
图7是本申请实施例提供的熵编码方法的有符号变长码编码的另一流程图;
图8是本申请实施例提供的熵编码方法的计算只量化数据和预测参数的另一流程图;
图9是本申请实施例提供的熵编码方法的检验的流程图;
图10是本申请实施例提供的熵解码方法的主要流程图;
图11是本申请实施例提供的熵解码方法的确定帧图像数据的流程图;
图12是本申请实施例提供的熵编码方法的示意图;
图13是本申请实施例提供的熵解码方法的示意图;
图14是是本申请实施例提供的熵编码装置的结构示意图;
图15是本申请实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
首先,对本申请中涉及的若干名词进行解析:
人工智能(artificial intelligence,AI):是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用***的一门新的技术科学;人工智能是计算机科学的一个分支,人工智能企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家***等。人工智能可以对人的意识、思维的信息过程的模拟。人工智能还是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
机器学习,是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习。机器学习算法使用计算方法直接从数据中“学习”信息,而不依赖于预定方程模型。当可用于学习的样本数量增加时,这些算法可自适应提高性能。它是人工智能核心,是使计算机具有智能的根本途径。
自然语言处理(natural language processing,NLP): NLP用计算机来处理、理解以及运用人类语言(如中文、英文等),NLP属于人工智能的一个分支,是计算机科学与语言学的交叉学科,又常被称为计算语言学。自然语言处理包括语法分析、语义分析、篇章理解等。自然语言处理常用于机器翻译、手写体和印刷体字符识别、语音识别及文语转换、信息意图识别、信息抽取与过滤、文本分类与聚类和观点挖掘等技术领域,它涉及与语言处理相关的数据挖掘、机器学习、知识获取、知识工程、人工智能研究和与语言计算相关的语言学研究等。
信息抽取(Information Extraction):从自然语言文本中抽取指定类型的实体、关系、事件等事实信息,并形成结构化数据输出的文本处理技术。信息抽取是从文本数据中抽取特定信息的一种技术。文本数据是由一些具体的单位构成的,例如句子、段落、篇章,文本信息正是由一些小的具体的单位构成的,例如字、词、词组、句子、段落或是这些具体的单位的组合。抽取文本数据中的名词短语、人名、地名等都是文本信息抽取,当然,文本信息抽取技术所抽取的信息可以是各种类型的信息。
视频压缩,又称为视频编码,是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频图像数据有很强的相关性,也就是说有大量的冗余信息。其中冗余信息可分为空域冗余信息和时域冗余信息。视频压缩家属就是将数据中的冗余信息去掉(去除数据之间的相关性),压缩技术包含帧内图像数据压缩技术、帧间图像数据压缩技术和熵编码压缩技术。
浅压缩,又称夹层压缩,是一种视频压缩级别,可以有效降低视频带宽,并能保持视频整体质量,压缩比通常为2:1到8:1。
参考帧压缩,是视频压缩技术中的一种,属于浅压缩技术。参考帧压缩是一种减少视频编码器访存带宽的有效方案,不仅可以减小读参考帧像素的带宽,还能减少编码器向外存写入重建帧像素的带宽,参考帧压缩为图像压缩比,即压缩前所占空间与实际所占空间的比值,在2至3倍附近的接近透明质量的压缩技术。
熵编码,即编码过程中按熵原理不丢失任何信息的编码。根据信息论的原理,可以找到最佳数据压缩编码的方法,数据压缩的理论极限是信息熵。如果要求编码过程中不丢失信息量,即要求保存信息熵,这种信息保持编码叫熵编码,是根据消息出现概率的分布特性而进行的,是无损数据压缩编码。常见的熵编码有:香农(Shannon)编码、哈夫曼(Huffman)编码和算术编码(arithmetic coding)。在视频编码中,熵编码把一系列用来表示视频序列的元素符号转变为一个用来传输或是存储的压缩码流。输入的符号可能包括量化后的变换系数,运动向量,头信息(宏块头,图像头,序列的头等)以及附加信息(对于正确解码来说重要的标记位信息)。
熵解码与熵编码的过程一一对应,熵解码可分为四部分:“判断语法元素”、“算术解码”、“更新上下文”和“反二值化”。“判断语法元素”部分按照标准中严格定义的编码顺序同步进行分析,得到当前需要解码出哪一种语法元素。“算术解码”部分先根据判断语法元素给出的上下文模型种类查表得到上下文模型,根据上下文模型里的数据解码引擎解析出当前解码区间范围和偏移量,进一步得到解码出的具体二进制字符。“更新上下文”根据解码的二进制字符,上下文模型进行自适应更新以备下一次解码使用。“反二值化”模块将二进制字符还原为语法元素的真实值,至此一个语法元素解析完成。此语法元素会送回“判断语法元素”模块决定下一个语法元素的种类以及上下文模型的类型。
图像压缩通常分别参考帧压缩和视频接口压缩,参考帧压缩属于浅压缩技术的一种,能够对存储在帧存储器中的数据进行压缩,以减少外部带宽和功耗。在目标码率有上界的视频压缩中,参考帧越多,预测的精确度越高,图像的质量越好,然而芯片主频一般在400兆赫兹上下,在处理部分图像数据时,只使用一个参考帧都已经超过存储器处理能力的上界,且在实际应用中,一般只能规划存储器工作期70%的有效带宽下,视频压缩的质量就更差。因此,目前图像压缩对芯片的带宽和功耗要求高,增加了芯片的复杂度,从而降低了图像的压缩效率,降低了图像的压缩质量。
基于此,本申请提供一种熵编码方法、熵解码方法及相关装置,本申请实施例提供的熵编码方法融合了变长编码和定长编码,并从中选取压缩效率最优的编码方式对应的编码结果作为压缩数据,另外,本申请根据非对称值域标志位确定有符号定长编码的传输值域,能够提高有符号定长码的信息密度,提高了编码效率,与现有技术相比,在实现同等的图像压缩质量的基础上,本申请能够有效地降低芯片的带宽要求和功耗,而在相同的芯片带宽要求和功耗的基础上,本申请能够提高图像的压缩效率,提高了图像的压缩质量。
本申请实施例提供的熵编码方法、熵解码方法及相关装置,具体通过如下实施例进行说明,首先描述本申请实施例中的熵编码方法。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用***。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互***、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的熵编码方法,涉及人工智能技术领域。本申请实施例提供的熵编码方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式***,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现熵编码方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
需要说明的是,在本申请的各个具体实施方式中,当涉及到需要根据用户信息、用户行为数据,用户历史数据以及用户位置信息等与用户身份或特性相关的数据进行相关处理时,都会先获得用户的许可或者同意,而且,对这些数据的收集、使用和处理等,都会遵守相关法律法规和标准。此外,当本申请实施例需要获取用户的敏感个人信息时,会通过弹窗或者跳转到确认页面等方式获得用户的单独许可或者单独同意,在明确获得用户的单独许可或者单独同意之后,再获取用于使本申请实施例能够正常运行的必要的用户相关数据。
参照图1,图1是本申请实施例提供的熵编码方法的流程图。本申请实施例提供的熵编码方法包括但不限于以下步骤:
步骤S100、获取原始图像中帧图像数据的只量化数据和预测残差数据。
步骤S200、对只量化数据进行无符号定长编码,得到无符号定长码。
步骤S300、根据预测残差数据确定位指示信息和非对称值域标志位。
步骤S400、根据位指示信息和非对称值域标志位,得到有符号定长编码的传输值域,以确定有符号定长编码的编码方式,非对称值域标志位在同一位指示信息下对应的两个传输值域的开闭情况相反。
步骤S500、根据有符号定长编码的编码方式对预测残差数据进行有符号定长编码,得到有符号定长码。
步骤S600、对只量化数据进行无符号变长编码,得到无符号变长码。
步骤S700、对预测残差数据进行有符号变长编码,得到有符号变长码。
步骤S800、从无符号定长码、有符号定长码、无符号变长码和有符号变长码中选取比特数最少的一个,作为帧图像数据的压缩数据。
需要说明的是,本申请实施例提供的熵编码方法对只量化数据分别进行编码,得到无符号定长码和无符号变长码,并对预测残差数据进行编码,得到有符号定长码和有符号变长码,融合了变长编码和定长编码,并从中选取压缩效率最优的编码方式,即占用码位最小的编码结果对应的编码方式,对应的编码结果作为压缩数据,另外,本申请根据非对称值域标志位确定有符号定长编码的传输值域,不同非对称值域标志位在同一位指示信息下对应的两个传输值域的开闭情况相反,能够提高有符号定长码的信息密度,提高了编码效率,与现有技术相比,在实现同等的图像压缩质量的基础上,本申请能够有效地降低芯片的带宽要求和功耗,而在相同的芯片带宽要求和功耗的基础上,本申请能够提高图像的压缩效率,提高了图像的压缩质量。
需要说明的是,熵编码是一种进行无损数据压缩的技术,其是图像压缩方法中的一种常见方法。
在一些实施例的步骤S100中,只量化数据和预测残差数据分别与帧图像数据一一对应,只量化数据由帧图像数据经量化生成,其为无符号数据,而预测残差数据为只量化数据经像素预测所得,其为有符号数。
在一些实施例的步骤S200中,无符号定长码的长度固定,且其长度,即无符号定长码对应的位指示信息由只量化数据的数值最大值决定,该最大值对应的二进制编码中的最高有效比特位为1,更高的比特位皆为0,从该最大值的最低有效位开始到最高有效位为1的位为止的总比特位数即为无符号定长码的比特位长度。无符号定长码的长度固定,无论只量化数据对应的数值再小,其长度始终固定。
需要说明的是,本申请首先通过最少无符号位数方法MinUnsignedBit(图像宏块对应的只量化数据中统计出来的无符号数中的最大值m)对无符号数进行处理,当输入无符号数为0时,最少无符号位数方法返回0,无符号数最少位数m为0,而当输入无符号数不等于0时,通过逆向位扫描方法BitScanReverse将无符号数作为非零无符号数输入,返回二进制数中与高位全零区域相邻的,最高位为1的位置对应的位映射数值X,最大无符号位数方法返回X+1,X+1即为输入的无符号数的最少位数,即为无符号定长码对应的位指示信息。每个无符号数都只取其二进制编码位数中的低位部分的位指示信息m个位进行传输,特别地,当位指示信息等于0时,不需要传输任何一个无符号的预测残差数据,因为它们都同时为0,只需要传输位指示信息即可。
在一些实施例的步骤S300中,位指示信息为有符号定长码的位数,而非对称值域标志位与传输值域的左右开闭相对应,二者相结合能够确定有符号定长编码传输值域。
在一些实施例的步骤S400中,位指示信息为有符号定长码的位数,而非对称值域标志位与传输值域的左右开闭相对应,根据该对应关系,能够确定编码方式,当位指示信息相同时,非对称值域标志位对应的两个传输值域的开闭情况相反,例如,当位指示信息为2时,非对称值域标志位对应的两个传输值域分别为(-2,2]和[-2,2)。
在一些实施例的步骤S500中,有符号定长码设置有符号位,符号位用于表示预测残差数据的正负。
在一些实施例的步骤S600中,无符号变长码的长度为变化值,无符号变长码的长度会跟随预测残差数据的大小而改变,只量化数据越大,无符号变长码越长。
在一些实施例的步骤S700中,无符号定长码设置有符号位,符号位用于表示预测残差数据的正负。
在一些实施例的步骤S800中,不同编码数据对应的无符号定长码、无符号变长码、有符号定长码和有符号变长码的比特数均不相同,从无符号定长码、有符号定长码、无符号变长码和有符号变长码中选取比特数最少的一个,作为帧图像数据的压缩数据,其占用码位最小,对应的压缩效率更高,压缩质量更佳。
可以理解的是,参照图2,步骤S300包括但不限于以下步骤:
步骤S310、根据预测残差数据,确定预测残差数据的绝对值最大数据。
步骤S320、根据绝对值最大数据以及对应的预测残差数据的符号,确定位指示信息和非对称值域标志位。
需要说明的是,位指示信息为定长码的位数,定长码对应的块数据头通常包括定长码的长度指示值,即位指示信息,因此,位指示信息为0或正整数。
需要说明的是,通过最少有符号位数方法MinSignedBit(图像宏块残差对应的预测参数数据中统计出来的有符号数的绝对值最大值M,M对应预测残差数据中有符号数的正负符号情况)得到有符号二进制数的最少位数m,m即为有符号数的位指示信息,具体的,MinSignedBit中通过MinUnsignedBit求出M的最小位数n;当n等于0时,返回n;当n不等于0时,如果M对应的预测残差数据只有正数或者只有负数,且M等于2的n-1次幂,即2n-1(也就是1左移n-1个二进制位)时,返回n; 当n不等于0时,如果M对应的预测残差数据只有正数或者只有负数,且M不等于2的n-1次幂,即2n-1(也就是1左移n-1个二进制位)时,返回n+1;当n不等于0时,如果M对应的预测残差数据同时有正数和负数时,返回n+1。而非对称值域标志位与半开半闭区间的传输值域的左右开闭相对应,其计算方法如下,通过MinUnsignedBit(M)求出M的最小位数n,当n等于0时,所有预测残差数据都等于0,不需要传输非对称值域标志位,只需要传输位指示信息;当n不等于0时,如果M对应的预测残差数据只有正数且M等于2n -1时,非对称值域标志位取值为1; 当n不等于0时,如果M对应的预测残差数据只有负数,且M等于2n-1时,非对称值域标志位取值为0;当n不等于0时,如果M对应的预测残差数据同时有正数和负数时,非对称值域标志位取值为0。
可以理解的是,参照图3,步骤S400包括但不限于以下步骤:
步骤S410、当位指示信息大于0时,根据位指示信息,确定边界信息。
步骤S420、当非对称值域标志位为1时,将边界信息的负数端设置为开区间、边界信息的正数端设置为闭区间,得到有符号定长码的传输值域。
步骤S430、当非对称值域标志位为0时,将边界信息的负数端设置为闭区间、边界信息的正数端设置为开区间,得到有符号定长码的传输值域。
需要说明的是,现有技术中的有符号定长码一般都是对称的传输值域,因为有符号,所以最小表达要用两个位以上去表达,即位指示信息大于等于2,例如2个位时候表达的值域是闭区间[-1,1],只表达3个值,2个位时实际上可以表达4个值;3个位时表达的值域是[-3,3],只表达7个值,3个位时实际上可以表达8个值;…;N个位时表达的值域是闭区间[-2N-1-1),((2N-1-1)],只表达2N–1个值,N个位时实际上可以表达2N个值。显然,有符号定长码中有一个值是浪费的,为解决这一问题,现有技术中的传输值域是以负数端为闭区间、正数端为开区间的半开半闭区间,其具体范围如下:
1个位,表达[-1,1),取值为-1、0。
2个位,表达[-2,2), 取值为-2、-1、0、1。
3个位,表达[-4,4),取值为-4、-3、-2、-1、0、1、2、3。
以此类推,N个位,表达[-2N-1,2N-1),有2N种取值。
而上述的传输值域不够灵活,无法满足预测残差数据中的数据刚好处于取相反数的传输值域的情况。
需要说明的是,针对有符号定长码,本申请的块数据头增加非对称值域标志位,来标定有符号定长码值域的左右开闭空间,非对称值域标志位为0时,表示有符号定长码采用常规补码截断方式,即有符号定长码的传输值域的负数端为闭区间、正数端为开区间,而当非对称值域标志位为1时,表示有符号定长码采用取相反数后截断方式,即有符号定长码的传输值域的负数端为开区间、正数端为闭区间。本申请中有符号定长码的设置方式能够满足预测残差数据刚好处于取反的传输值域的情况,提高了有符号定长码的灵活程度,并且在解决具有对称的传输值域的定长码的码值浪费问题的同时又能够提高非对称定长码的信息密度。
在一些实施例的步骤S410中,当位指示信息等于0时,不需要计算也不需要传输非对称值域标志位,不需要传输任何一个有符号的预测残差数据,因为它们都同时为0,只需要传输位指示信息,而当位指示信息大于0时,根据位指示信息,确定边界信息。
在一些实施例的步骤S420中,非对称值域标志位与定长码的传输值域的左右开闭相对应,当位指示信息大于0且非对称值域标志位为1时,有符号定长码的传输值域的负数端为开区间、正数端为闭区间。传输值域的边界信息由位指示信息进行确定。负数端为开区间、正数端为闭区间的传输值域能够适应正数端值域占优的情况。
在一些实施例的步骤S430中,当位指示信息大于0且非对称值域标志位为0时,有符号定长码采用常规补码截断方式,即有符号定长码的传输值域的负数端为闭区间、正数端为开区间。两种不同传输值域的定长码的设置方法能够同时满足正数端值域占优或者负数端值域占优的情况,从而提高编码效率。
可以理解的是,参照图4,步骤S410均包括但不限于以下步骤:
步骤S411、将位指示信息减1,得到相减结果。
步骤S412、将第一预设数值作为底数、相减结果作为指数进行幂运算,得到正边界。
步骤S413、计算正边界对应数值的相反数,得到负边界。
步骤S414、根据正边界和负边界,确定边界信息。
需要说明的是,当位指示信息为N时,指数为N-1,另外,熵编码为二进制,第一预设数值设置为2,即底数为2,幂运算得到的结果为2N-1,即正边界为2N-1。计算正边界对应数值的相反数,得到负边界,则负边界为-2N-1。最终得到的边界包括正边界和负边界,并根据此确定有符号定长码的传输值域。
需要说明的是,步骤S340中有符号定长码的传输值域为(-2N-1,2N-1],步骤S360中有符号定长码的传输值域为[-2N-1,2N-1),两个半开半闭区间的传输值域的开闭情况互为相反。
需要说明的是,当非对称值域标志位为1时,有符号定长码的传输值域的负数端为开区间、正数端为闭区间,其具体范围如下:
1个位,表达(-1,1],取值为0、1。
2个位,表达(-2,2], 取值为-1、0、1、2。
3个位,表达(-4,4],取值为-3、-2、-1、0、1、2、3、4。
以此类推,N个位,表达(-2N-1,2N-1],有2N种取值。
在一些实施例中,首选的编码方案一,定长码的长度为大于0的固定值N,当非对称值域标志位为0时,对于预测残差数据进行处理时,将预测残差数据的二进制数只取位指示信息N指示的低N位数据作为预测残差数据的编码值。例如,当位指示信息为4时,-2可以表示为1110,-8可以表示为1000,0表示为0000,3表示为0011。另外,当非对称值域标志位为1时,对于预测残差数据进行处理时,将预测残差数据取相反数后转化为二进制数,只取位指示信息N指示的低N位数据作为预测残差数据的编码值。例如,当位指示信息为4时,-2可以表示为0010,-7可以表示为0111,0表示为0000,8可以表示为1000,3可以表示为1101。
在一些实施例中,可选的编码端实施方案二,定长码的长度为大于0的固定值N,当非对称值域标志位为0时,对于预测残差数据进行处理时,将预测残差数据对应的数值减去传输值域中的最小值-2N-1得差值,再将差值转化为二进制数只取位指示信息N指示的低N位数据作为预测残差数据的编码值。例如,当位指示信息为4时,传输值域中的最小值-2N-1等于-8, -2可以表示为0110,-8可以表示为0000,0表示为1000,3表示为1011。另外,当非对称值域标志位为1时,对于预测残差数据进行处理时,将预测残差数据对应的数值减去传输值域中的最小值-2N-1+1得差值,再将差值转化为二进制数只取位指示信息N指示的低N位数据作为预测残差数据的编码值。例如,当位指示信息为4,传输值域中的最小值-2N-1+1等于-7时,-2可以表示为0101,-7可以表示为0000,0表示为0111,8可以表示为1111,3可以表示为1010。
以上只是罗列算法上相对比较简单的两种具体实施方案,但并不代表限定编码实施的具体细节,例如可选的编码实施方案二中减去的数字,实际上可以为其它常数。但并不影响非对称值域才是真正的提高熵编码信息密度的核心方案。
可以理解的是,参照图5,步骤S700包括但不限于以下步骤:
步骤S710、当预测残差数据大于0或小于0时,根据预测残差数据,确定符号位。
步骤S720、对预测残差数据的绝对值进行无符号编码,得到第一编码。
步骤S730、根据第一编码和符号位,得到有符号变长码。
需要说明的是,本申请的有符号变长码,即有符号定长码中符号位的设置更加充分地节省了有效阶码,省下阶码前置阶码表达位,进一步提高了编码效率。
在一些实施例的步骤S710中,符号位与预测残差数据的正负号相对应,当预测残差数据模为正整数时,符号位可以设置为1,而当符号位为负整数时,符号位设置为0。也可以,当预测残差为正整数时,符号位可以设置为0,而当符号位为负整数时,符号位设置为1。
在一些实施例的步骤S730中,符号位与第一编码相组合得到有符号变长码,符号位可以设置于第一编码的前方或者后方,本申请中,符号位设置于第一编码的后方,为有符号定长码的末位置。
需要说明的是,变长码又称为K阶变长指数码、K阶哥伦布编码。哥伦布编码的设计本意是用于编码连续的无符号数的,但是它可以非常容易地通过正负数逐个交叠的方式映射扩展至有符号数的数域,数字交叠成序列:0、-1、1、-2、2、-3、3、-4、4……给予非负整数偶数编号,给予负整数奇数编号,设置x为有符号数,index为映射后的无符号数下标,则:
If(x>=0)
index=2x;
Else
index=-2x-1;
由上可知现有技术的变长指数编码的有符号数扩展,符号位都是直接占用0阶变长指数编码的一个码值下标来影射表达的,具体的,无符号0阶指数变长码与对应的传输值集以及有符号0阶指数变长码与对应的传输值集如表1所示。
表1
其中,X为0或1,而本申请中的数值0直接用0阶无符号变长指数编码,除0以外的数的有符号扩展采用升一阶的方式,也就是用1阶的无符号变长指数编码来扩展符号,即设置符号位S放在最后,具体如表2所示。
表2
将具体数值对应的原有符号0阶指数变长码的使用位数与本申请有符号0阶指数变长码进行比较,得到的结果如表3所示。
表3
表3只统计了在正态分布非常靠近中心的符号的情况,在非常靠近中心的时候,概率变化相对较小,但这并不影响编码效率分析的一般性。改良后的方式可以有更大的概率用更少的比特数表达给定的数值。代价只是少部分数值用多了一个比特。
可以理解的是,参照图6,步骤S720包括但不限于以下步骤:
步骤S721、将预测残差数据的绝对值与第二预设数值相加。
步骤S722、对相加的结果进行二进制转换,得到第二编码。
步骤S723、根据第二编码的比特数,确定编码前缀。
步骤S724、根据编码前缀和第二编码,得到第一编码。
在一些实施例的步骤S721中,本申请为二进制编码,因此第二预设数值设置为1。
在一些实施例的步骤S723中,编码前缀与第二编码的比特数相对应,具体地,第二编码的比特数减1得到编码前缀的位数,且编码前缀的数值均为0。
在一些实施例的步骤S724中,编码前缀设置于第二编码前方,可以得到第一编码。
需要说明的是,假设预测残差数据为-7,首先对预测残差数据的绝对值与第二预设数值相加,得到8,然后进行二进制转换,得到的第二编码为1000,第二编码的比特数为4,由此得到编码前缀为000,因此,第一编码为0001000。预测残差数据为负数,其对应的符号位设置为0,那么预测残差数据最终对应的有符号变长码为00010000。也可以,预测残差数据为负数,其对应的符号位设置为1,那么预测残差数据最终对应的有符号变长码为00010001。当预测残差数据为正数时,符号位的处理正好和预测残差数据为负数时相反。
可以理解的是,参照图7,步骤S700还包括但不限于以下步骤:
步骤S740、当预测残差数据等于0时,对预测残差数据进行无符号变长编码,得到有符号变长码。
需要说明的是,因为0是无符号数,直接用0阶无符号变长指数编码,其对应的有符号变长码为1。
需要说明的是,在本申请中,定长码用于预测残差数据处于小数值时的编码,以表4所示的十位像素位宽的宽高都为8的8x8的数据块距离,该数据块经像素预测后,得到的预测残差数据最优为4,其对应的有符号变长码的长度为6,最优数据字节大小为8*8*6/8=48字节,优于使用10比特的不经过数位压缩的无符号定长码进行表示时的数据字节大小为8*8*10/8=80字节。另外,该数据块中的最大数值为12,对应的二进制码位1100,直接传输无符号编码对应的数据量为8*8*4/8=32字节,显然通过定长码传输的数据量更多,更加优于无符号编码和变长码。
另外,按本申请步骤S300描述的无符号定长编码方式,该数据块中的最大数值为12,对应的二进制码位1100,按本申请步骤S800直接传输无符号定长编码对应的数据字节为8*8*4/8=32字节,显然通过无符号定长码传输的数据更少,信息密度更高,更加优于有符号变长码。本申请中无符号变长编码直接用0阶无符号变长指数编码,如果采用无符号变长码,0对应的无符号变长码的字节大小是1,4对应的无符号变长码的字节大小是5,8和12对应的无符号变长码的字节大小是7,平均用位是5,对应的数据字节大小为8*8*5/8=40字节,依然是无符号定长编码更优。
按本申请中S374步骤中描述的方法编码的有符号定长码的方式时,得到的预测残差数据最优为4,位指示信息的最优为3,正数端占优,非对称值域标志位为1,传输值域为(-4,4],数据字节大小是8*8*3/8=24字节,仅付出多了一个非对称值域标志位的代价。它是这里面使用位数最少,信息密度最高的编码方式.
这里明显地指出本申请中的取最优编码的实际意义与具体的实施方式。
表4
可以理解的是,参照图8,步骤S100包括但不限于以下步骤:
步骤S110、获取原始图像中的帧图像数据。
步骤S120、根据预设的量化参数对帧图像数据进行量化,得到只量化数据。
步骤S130、对只量化数据进行像素预测,得到预测残差数据。
需要说明的是,只量化数据和预测残差数据分别与帧图像数据一一对应,只量化数据由帧图像数据经量化生成,其为无符号数据,而预测残差数据为只量化数据经像素预测所得,其为有符号数。只量化数据和预测残差数据的设置便于进行无符号编码和有符号编码。
需要说明的是,量化能够在不降低视觉效果的前提下减少编码长度,减少视觉恢复中不必要的信息。
需要说明的是,预测主要包括对只量化数据进行相邻元素(如像素)预测、串预测、块预测等,产生预测残差数据。在图像编码中,宏块是编码的基本单位,在YUV420格式中,每一个宏块包括4个8×8的亮度块和2个8×8的色度块,共6个图像块。对熵编码中,图像块每一点为一个系数,这个系数表示经过熵编码之前的编码步骤得到的预测残差数据。
可以理解的是,参照图9,步骤S800之后还包括但不限于以下步骤:
步骤S910、将压缩数据输入至视频缓存检验器进行检验。
步骤S920、当视频缓存检验器处于上溢出状态时,对量化参数进行增加调整,并将调整后的量化参数作为预设的量化参数。
步骤S930、根据量化参数,重复获取帧图像数据对应的压缩数据,直至视频缓存检验器处于非上溢出状态。
步骤S940、输出视频缓存检验器处于非上溢出状态时对应的压缩数据。
需要说明的是,视频缓存检验器(Video Buffering Verifier,VBV)是一个当输入码流遵从数字视/音频制定压缩专家组的标准(MovingPictureExpertsGroup,MPEG)时,不会溢出的解码缓冲器模型。将得到压缩数据输入至视频缓存检验器进行检验,当视频缓存检验器处于上溢出状态时,对量化参数进行增加调整,并将调整后的量化参数作为预设的量化参数,根据量化参数,重复获取帧图像数据对应的压缩数据,直至视频缓存检验器处于非上溢出状态,将频缓存检验器处于非上溢出状态时对应的压缩数据进行输出,使得最终得到的压缩数据满足MPEG要求,提高了压缩质量。
需要说明的是,本申请的图像质量下降是由量化产生的,而量化是否产生图像质量下降是由缓冲区模型,即视频缓存检验器决定的,也就是由码率控制决定。
需要说明的是,压缩数据的结构为:
预测模式|是否定长码|定长码长度指示值|QP值|像素压缩数据|…|像素压缩数据。
那么,压缩数据的宏块头的具体结构为:
预测模式|是否定长码|定长码长度指示值|QP值。
定长码传输:
预测模式|是否定长码|定长码长度指示值|QP值。
变长码传输:
预测模式|是否定长码|QP值|变长码像素压缩数据的字节长度。
需要说明的是,QP值为量化参数,不同的像素位宽对应不同的最大量化参数,最大量化参数MaxQp的计算公式如下:
If(像素位宽是偶数)
{
MaxQp=4*像素位宽/2;
}
Else
{
MaxQp=4*(像素位宽+1)/2;
}
当像素位宽为10的时候,最大量化参数为20,字段长度是5,而像素位宽为7的时候,最大量化参数为16,字段长度是5。
需要说明的是,预测模式为3个比特,其中0表示上预测,1表示左预测,2表示左上预测,3表示右上预测,4表示直流中值预测,5表示只量化模式,6、7表示保留。
需要说明的是,是否定长码占位1比特,当该值为0时,压缩数据为变长码,在预测模式为只量化模式,即无符号编码时,压缩数据是无符号变长码,其它为有符号变长码。当是否定长码对应的值为1时,压缩数据为定长码,在预测模式为只量化模式,即无符号编码时,压缩数据是无符号定长码,其它为有符号定长码。
需要说明的是,定长码长度指示值由两部分组成,其中4个比特是位指示信息,其具体大小为预测残差数据或只量化数据的绝对值的最大值,另外一个比特是非对称值域标志位,这个比特是动态的,只在有符号定长码传输时存在。如果位指示信息为0,表示所要传输的预测残差数据或只量化数据为0,所有预测残差数据或只量化数据都不需要传输,只需要传输位指示信息。
需要说明的是,定长码除固定字节长度的宏块头外,其像素压缩数据是可以直接计算出来的,也就是不需要传输压缩数据的字节长度信息,在解码端,能够从当前宏块头直接定位到下一个宏块头的首字节。
需要说明的是,变长码的宏块头也是固定长度的,里面包含了可选的变长码像素压缩数据的字节长度,同样可以在解码端从当前宏块头直接定位到下一个宏块头的首字节。
需要说明的是,参照图12,本申请首先对帧图像数据进行量化,得到只量化数据,只量化数据可直接进行无符号变长编码,首先得到无符号变长码,并将无符号变长码,即无符号变长码输出至中间缓冲,并与无符号定长码进行比特数比较,判断哪个最优,并将性能更优的无符号编码进行输出,另外,还对只量化数据进行像素预测,得到预测残差数据,对预测残差数据进行有符号编码,得到有符号变长码和有符号定长码,并将性能更优的有符号编码进行输出,之后,比较输出的有符号编码和无符号编码,得到性能最优的编码,即压缩数据,压缩数据对应的编码占用的比特位数最少,将压缩数据输入至视频缓存检验器进行检验,当视频缓存检验器处于上溢出状态时,对量化参数进行增加调整,并将调整后的量化参数作为预设的量化参数,根据量化参数,重复获取帧图像数据对应的压缩数据,直至视频缓存检验器处于非上溢出状态,将视频缓存检验器处于非上溢出状态时对应的压缩数据进行输出,使得最终得到的压缩数据满足传输要求,提高了压缩质量。本申请根据像素预测的统计结果,融合了变长和定长熵编码方法,并在有符号变长码部分采用了变长指数码方式,0因为是无符号数,用0阶无符号变长指数码去表达,除0之外的有符号数,设置符号位,更加充分地节省了有效阶码,省下阶码前置阶码表达位,进一步提高了编码效率,而在有符号定长码部分设置非对称值域标志位,以标定有符号定长码传输值域的左右开闭空间,提高了定长码的编码效率。
另外,参照图10,本申请实施例还提供一种熵解码方法,熵解码方法包括但不限于以下步骤:
步骤S1010、获取压缩数据,压缩数据根据上述的熵编码方法生成。
步骤S1020、根据压缩数据,确定编码类型,编码类型包括无符号定长编码、有符号定长编码、无符号变长编码和有符号变长编码。
步骤S1030、根据编码类型对压缩数据进行解码,得到解码数据。
步骤S1040、根据解码数据,确定帧图像数据。
需要说明的是,本申请提供的熵解码方法的压缩数据为无符号定长码、无符号变长码、有符号定长码和有符号变长码的其中一种,首先根据压缩数据,确定编码类型,编码类型与无符号定长码、无符号变长码、有符号定长码和有符号变长码相对应,根据编码类型对压缩数据进行解码,得到解码数据,根据解码数据,确定帧图像数据该熵解码方法与上述的熵编码方式相对应,能够提高视频压缩的压缩效率,提高了视频的压缩质量。
需要说明的是,本申请提供的熵编码方法和熵解码方法能够实现透明质量的2-3倍浅压缩,现采用22个超高清序列进行编解码压缩测试,测试结果如表5所示。其中,序列22为随机噪声,由此可见,本申请提供的熵编码方法和熵解码方法对无法预测的随机噪声,可以很好地收敛并维持高质量,而对于其余序列部分达到完全无损,并达到人眼无法分辨的误差精度。
表5
需要说明的是,当在参考帧压缩还是视频接口压缩的场景下,很有可能会面临多重压缩的使用场景,本申请提供的编解码方法与20至30倍压缩率的算法串联编解码时的结果如表6所示,本申请提供的编解码方法与80至120倍压缩率的算法串联编解码时的结果如表7所示。
表6
表7
由表6、表7可得,本申请在于其他压缩编解码器串联时,质量或码率带来的影响极小,基本可以忽略,达到透明的串联效果。
可以理解的是,参照图11,步骤S1040包括但不限于以下步骤:
步骤S1041、当解码数据为预测残差数据时,确定解码数据的预测方式和量化参数。
步骤S1042、根据预测方式对解码数据进行反预测,得到只量化数据。
步骤S1043、根据量化参数对只量化数据进行反量化,得到帧图像数据。
需要说明的是,与步骤S130相对应,需要预测方式对解码数据进行反预测,得到只量化数据,与步骤S120相对应,需要根据量化参数对只量化数据进行反量化,最终得到原始图像数据。
需要说明的是,当解码数据为只量化数据时,直接根据步骤S1043进行反量化,得到帧图像数据。
需要说明的是,参照图13,接收到压缩数据后,判断压缩数据是否经过预测,当压缩数据经过预测时,确定压缩数据的预测方式和有符号编码方式,即编码类型,并根据预测方式和有符号编码方式对压缩数据进行还原,若压缩数据未经过预测,确定压缩数据的无符号编码方式,即编码类型,并根据无符号编码方式对压缩数据进行还原。最后根据量化参数对还原得到的数据进行反量化,得到帧图像数据。
另外,参照图14,本申请实施例还提供一种熵编码装置,包括:
获取单元100,用于获取原始图像中帧图像数据的只量化数据和预测残差数据。
第一编码单元200,用于对只量化数据进行无符号定长编码,得到无符号定长码。
信息确定单元300,用于根据预测残差数据确定位指示信息和非对称值域标志位。
值域确定单元400,用于根据位指示信息和非对称值域标志位,得到有符号定长编码的传输值域,以确定有符号定长编码的编码方式,非对称值域标志位在同一位指示信息下对应的两个传输值域的开闭情况相反。
第二编码单元500,用于根据编码方式对预测残差数据进行有符号定长编码,得到有符号定长码。
第三编码单元600,用于对只量化数据进行无符号变长编码,得到无符号变长码。
第四编码单元700,用于从无符号定长码、有符号定长码、无符号变长码和有符号变长码中选取比特数最少的一个,作为帧图像数据的压缩数据。
比较单元800,用于比较无符号定长码、有符号定长码、无符号变长码和有符号变长码的比特数,确定帧图像数据的压缩数据。
该熵编码装置的具体实施方式与上述熵编码方法的具体实施例基本相同,在此不再赘述。
本申请实施例还提供了一种电子设备,电子设备包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述熵编码方法或熵解码方法。该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参阅图15,图15示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器901,可以采用通用的CPU(CentralProcessingUnit,中央处理器)、微处理器、应用专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案。
存储器902,可以采用只读存储器(ReadOnlyMemory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(RandomAccessMemory,RAM)等形式实现。存储器902可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器902中,并由处理器901来调用执行本申请实施例的熵编码方法或熵解码方法。
输入/输出接口903,用于实现信息输入及输出。
通信接口904,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线905,在设备的各个组件(例如处理器901、存储器902、输入/输出接口903和通信接口904)之间传输信息。
其中处理器901、存储器902、输入/输出接口903和通信接口904通过总线905实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述熵编码方法或熵解码方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例提供的熵编码方法、熵解码方法及相关装置,该熵编码方法对只量化数据分别进行编码,得到无符号定长码和无符号变长码,并对预测参数进行编码,得到有符号定长码和有符号变长码,融合了变长编码和定长编码,并从中选取压缩效率最优的编码方式,即占用码位最小的编码结果对应的编码方式,对应的编码结果作为压缩数据,另外,本申请根据非对称值域标志位确定有符号定长编码的传输值域,能够提高有符号定长码的信息密度,提高了编码效率,与现有技术相比,在实现同等的图像压缩质量的基础上,本申请能够有效地降低芯片的带宽要求和功耗,而在相同的芯片带宽要求和功耗的基础上,本申请能够提高图像的压缩效率,提高了图像的压缩质量。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图中示出的技术方案并不构成对本申请实施例的限定,可以包括比图示更多或更少的步骤,或者组合某些步骤,或者不同的步骤。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、***、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。

Claims (14)

1.一种熵编码方法,其特征在于,所述熵编码方法包括:
获取原始图像中帧图像数据的只量化数据和预测残差数据,所述只量化数据为所述帧图像数据经量化后生成,所述预测残差数据为对所述只量化数据进行像素预测所得;
对所述只量化数据进行无符号定长编码,得到无符号定长码;
根据所述预测残差数据确定位指示信息和非对称值域标志位;
根据所述位指示信息和所述非对称值域标志位,得到有符号定长编码的传输值域,以确定有符号定长编码的编码方式,所述非对称值域标志位在同一所述位指示信息下对应的两个所述传输值域的开闭情况相反;
根据所述有符号定长编码的编码方式对所述预测残差数据进行有符号定长编码,得到有符号定长码;
对所述只量化数据进行无符号变长编码,得到无符号变长码;
对所述预测残差数据进行有符号变长编码,得到有符号变长码;
从所述无符号定长码、所述有符号定长码、所述无符号变长码和所述有符号变长码中选取比特数最少的一个,作为所述帧图像数据的压缩数据。
2.根据权利要求1所述的熵编码方法,其特征在于,所述根据所述预测残差数据确定位指示信息和非对称值域标志位,包括:
根据所述预测残差数据,确定所述预测残差数据的绝对值最大数据;
根据所述绝对值最大数据以及对应的所述预测残差数据的符号,确定所述位指示信息和非对称值域标志位。
3.根据权利要求1所述的熵编码方法,其特征在于,所述根据所述位指示信息和所述非对称值域标志位,得到有符号定长编码的传输值域,包括:
当所述位指示信息大于0时,根据所述位指示信息,确定边界信息;
当所述非对称值域标志位为1时,将所述边界信息的负数端设置为开区间、所述边界信息的正数端设置为闭区间,得到所述有符号定长编码的传输值域;
当所述非对称值域标志位为0时,将所述边界信息的负数端设置为闭区间、所述边界信息的正数端设置为开区间,得到所述有符号定长编码的传输值域。
4.根据权利要求3所述的熵编码方法,其特征在于,所述根据所述位指示信息,确定边界信息,包括:
将所述位指示信息减1,得到相减结果;
将第一预设数值作为底数、所述相减结果作为指数进行幂运算,得到正边界;
计算所述正边界对应数值的相反数,得到负边界;
根据所述正边界和所述负边界,确定边界信息。
5.根据权利要求1所述的熵编码方法,其特征在于,所述对所述预测残差数据进行有符号变长编码,得到有符号变长码,包括:
当所述预测残差数据大于0或小于0时,根据所述预测残差数据,确定符号位;
对所述预测残差数据的绝对值进行无符号变长编码,得到第一编码;
根据所述第一编码和所述符号位,得到有符号变长码。
6.根据权利要求5所述的熵编码方法,其特征在于,所述对所述预测残差数据的绝对值进行无符号变长编码,得到第一编码,包括:
将所述预测残差数据的绝对值与第二预设数值相加;
对相加的结果进行二进制转换,得到第二编码;
根据所述第二编码的比特数,确定编码前缀;
根据所述编码前缀和所述第二编码,得到第一编码。
7.根据权利要求5所述的熵编码方法,其特征在于,所述对所述预测残差数据进行有符号变长编码,得到有符号变长码,还包括:
当所述预测残差数据等于0时,对所述预测残差数据进行无符号变长编码,得到有符号变长码。
8.根据权利要求1所述的熵编码方法,其特征在于,所述获取原始图像中帧图像数据的只量化数据和预测残差数据,包括:
获取原始图像中的帧图像数据;
根据预设的量化参数对所述帧图像数据进行量化,得到只量化数据;
对所述只量化数据进行像素预测,得到预测残差数据。
9.根据权利要求8所述的熵编码方法,其特征在于,在从所述无符号定长码、所述有符号定长码、所述无符号变长码和所述有符号变长码中选取比特数最少的一个,作为所述帧图像数据的压缩数据之后,所述熵编码方法还包括:
将所述压缩数据输入至视频缓存检验器进行检验;
当所述视频缓存检验器处于上溢出状态时,对所述量化参数进行增加调整,并将调整后的所述量化参数作为预设的量化参数;
根据调整后的所述量化参数,重复获取所述帧图像数据对应的压缩数据,直至所述视频缓存检验器处于非上溢出状态;
输出所述视频缓存检验器处于非上溢出状态时对应的所述压缩数据。
10.一种熵解码方法,其特征在于,所述熵解码方法包括:
获取压缩数据,所述压缩数据根据权利要求1至9任一项所述的熵编码方法生成;
根据所述压缩数据,确定编码类型,所述编码类型包括无符号定长编码、有符号定长编码、无符号变长编码和有符号变长编码;
根据所述编码类型对所述压缩数据进行解码,得到解码数据;
根据所述解码数据,确定帧图像数据。
11.根据权利要求10所述的熵解码方法,其特征在于,所述根据所述解码数据,确定帧图像数据包括:
当所述解码数据为预测残差数据时,确定所述解码数据的预测方式和量化参数;
根据所述预测方式对所述解码数据进行反预测,得到只量化数据;
根据所述量化参数对所述只量化数据进行反量化,得到帧图像数据。
12.一种熵编码装置,其特征在于,包括:
获取单元,用于获取原始图像中帧图像数据的只量化数据和预测残差数据,所述只量化数据为所述帧图像数据经量化后生成,所述预测残差数据为对所述只量化数据进行像素预测所得;
第一编码单元,用于对所述只量化数据进行无符号定长编码,得到无符号定长码;
信息确定单元,用于根据所述预测残差数据确定位指示信息和非对称值域标志位;
值域确定单元,用于根据所述位指示信息和所述非对称值域标志位,得到有符号定长编码的传输值域,以确定有符号定长编码的编码方式,所述非对称值域标志位在同一所述位指示信息下对应的两个所述传输值域的开闭情况相反;
第二编码单元,用于根据所述有符号定长编码的编码方式对所述预测残差数据进行有符号定长编码,得到有符号定长码;
第三编码单元,用于对所述只量化数据进行无符号变长编码,得到无符号变长码;
第四编码单元,用于对所述预测残差数据进行有符号变长编码,得到有符号变长码;
比较单元,用于从所述无符号定长码、所述有符号定长码、所述无符号变长码和所述有符号变长码中选取比特数最少的一个,作为所述帧图像数据的压缩数据。
13.一种电子设备,其特征在于,所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现权利要求1至9任一项所述的熵编码方法或权利要求10至11任一项所述的熵解码方法。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至9任一项所述的熵编码方法或权利要求10至11任一项所述的熵解码方法。
CN202310797299.7A 2023-07-03 2023-07-03 熵编码方法、熵解码方法及相关装置 Active CN116527904B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310797299.7A CN116527904B (zh) 2023-07-03 2023-07-03 熵编码方法、熵解码方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310797299.7A CN116527904B (zh) 2023-07-03 2023-07-03 熵编码方法、熵解码方法及相关装置

Publications (2)

Publication Number Publication Date
CN116527904A CN116527904A (zh) 2023-08-01
CN116527904B true CN116527904B (zh) 2023-09-12

Family

ID=87405102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310797299.7A Active CN116527904B (zh) 2023-07-03 2023-07-03 熵编码方法、熵解码方法及相关装置

Country Status (1)

Country Link
CN (1) CN116527904B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012023611A (ja) * 2010-07-15 2012-02-02 Mitsubishi Electric Corp 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
CN109495211A (zh) * 2018-09-30 2019-03-19 湖南瑞利德信息科技有限公司 一种信道编码和解码方法
WO2020171668A1 (ko) * 2019-02-24 2020-08-27 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 부호 정보를 포함하는 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
CN111641827A (zh) * 2019-03-02 2020-09-08 上海天荷电子信息有限公司 多套方案切换进行预测残差熵编码的数据压缩方法和装置
CN112437300A (zh) * 2020-11-23 2021-03-02 武汉理工大学 一种基于自适应区间重叠因子的分布式视频编码方法
CN112737729A (zh) * 2019-10-28 2021-04-30 哈尔滨工业大学(深圳) 数据传输方法、装置、计算机设备及存储介质
CN113519155A (zh) * 2019-01-02 2021-10-19 弗劳恩霍夫应用研究促进协会 统一变换类型信令和变换类型相关的变换系数水平编码
CN114424547A (zh) * 2019-07-05 2022-04-29 威诺瓦国际有限公司 视频译码中的残差的量化
CN115086664A (zh) * 2021-03-13 2022-09-20 腾讯科技(深圳)有限公司 未匹配像素的解码方法、编码方法、解码器以及编码器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9167252B2 (en) * 2010-12-01 2015-10-20 Texas Instruments Incorporated Quantization matrix compression in video coding
EP3777187A4 (en) * 2018-04-04 2021-12-22 Kakadu R & D Pty Ltd IMPROVED IMAGE COMPRESSION PROCESS AND APPARATUS
EP3910950A4 (en) * 2019-02-19 2022-07-13 LG Electronics Inc. VIDEO DECODING METHOD USING RESIDUAL INFORMATION IN A VIDEO CODING SYSTEM AND APPARATUS THEREOF
EP3957070A1 (en) * 2020-06-16 2022-02-23 Google LLC Dynamic method for symbol encoding

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012023611A (ja) * 2010-07-15 2012-02-02 Mitsubishi Electric Corp 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
CN109495211A (zh) * 2018-09-30 2019-03-19 湖南瑞利德信息科技有限公司 一种信道编码和解码方法
CN113519155A (zh) * 2019-01-02 2021-10-19 弗劳恩霍夫应用研究促进协会 统一变换类型信令和变换类型相关的变换系数水平编码
WO2020171668A1 (ko) * 2019-02-24 2020-08-27 엘지전자 주식회사 영상 코딩 시스템에서 컨텍스트 코딩된 부호 정보를 포함하는 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
CN111641827A (zh) * 2019-03-02 2020-09-08 上海天荷电子信息有限公司 多套方案切换进行预测残差熵编码的数据压缩方法和装置
CN114424547A (zh) * 2019-07-05 2022-04-29 威诺瓦国际有限公司 视频译码中的残差的量化
CN112737729A (zh) * 2019-10-28 2021-04-30 哈尔滨工业大学(深圳) 数据传输方法、装置、计算机设备及存储介质
CN112437300A (zh) * 2020-11-23 2021-03-02 武汉理工大学 一种基于自适应区间重叠因子的分布式视频编码方法
CN115086664A (zh) * 2021-03-13 2022-09-20 腾讯科技(深圳)有限公司 未匹配像素的解码方法、编码方法、解码器以及编码器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Based on discrete orthogonal tchebichef transform for image compression;Li Ji 等;Computer Engineering and Design;第34卷(第12期);第4261-4266页 *

Also Published As

Publication number Publication date
CN116527904A (zh) 2023-08-01

Similar Documents

Publication Publication Date Title
US20210092445A1 (en) Method for Producing Video Coding and Programme-Product
CN110915213B (zh) 编解码符号的熵编解码的方法与装置
US10681388B2 (en) Compression of occupancy or indicator grids
JPH07262175A (ja) 関数変換演算装置
CN112399181B (zh) 图像编解码的方法、装置和存储介质
CN105474642A (zh) 使用频域差对图像集合进行重新编码
KR102165070B1 (ko) 콘텍스트 트리를 사용한 비디오 신택스 엘리먼트들의 코딩
CN100423582C (zh) 一种用于将待编码数据进行二进制化编码的方法和装置
CN105230021A (zh) 屏幕内容的词典编码和解码
CN111131828A (zh) 一种图像压缩方法及装置
KR101696589B1 (ko) 영상 양자화 파라미터 복호 방법
Kabir et al. Edge-based transformation and entropy coding for lossless image compression
US20170180757A1 (en) Binarizer selection for image and video coding
CN105409129A (zh) 编码器设备、解码器设备和方法
CN116527904B (zh) 熵编码方法、熵解码方法及相关装置
EP2733940B1 (en) Image quantization parameter encoding method and image quantization parameter decoding method
Niedermayer Ffv1 video codec specification
US20230188726A1 (en) Dynamic Method for Symbol Encoding
KR20220045920A (ko) 머신비전을 위한 영상의 처리 방법 및 장치
CN116982082A (zh) 图像编解码方法、编码器、解码器及存储介质
JP6635312B2 (ja) 画像処理装置および方法
Abed et al. Gray-Scale Image Compression Method Based on a Pixel-Based Adaptive Technique
Jabeen et al. Predictive Coding Based Lossless Image Compression Model
KR20160105848A (ko) 데이터 심볼들에 대해 산술 코딩을 수행하는 방법 및 장치
CN116248895A (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