CN114760481B - 一种视频编码方法、装置、设备及存储介质 - Google Patents

一种视频编码方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114760481B
CN114760481B CN202210472514.1A CN202210472514A CN114760481B CN 114760481 B CN114760481 B CN 114760481B CN 202210472514 A CN202210472514 A CN 202210472514A CN 114760481 B CN114760481 B CN 114760481B
Authority
CN
China
Prior art keywords
parameter
pixel value
coding
encoding
result
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
CN202210472514.1A
Other languages
English (en)
Other versions
CN114760481A (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.)
Beijing Tricolor Technology Co ltd
Original Assignee
Beijing Tricolor 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 Beijing Tricolor Technology Co ltd filed Critical Beijing Tricolor Technology Co ltd
Priority to CN202210472514.1A priority Critical patent/CN114760481B/zh
Publication of CN114760481A publication Critical patent/CN114760481A/zh
Application granted granted Critical
Publication of CN114760481B publication Critical patent/CN114760481B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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/182Methods 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 pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供了一种视频编码方法、装置、设备及存储介质,所述视频编码方法包括:根据待编码视频数据中的每一像素值,确定待编码视频数据中像素值的数值范围区间;根据数值范围区间中的最大绝对值,确定用于在二进制下对待编码视频数据进行压缩编码的第一参数;在二进制下,根据第一参数以及用于表征前缀码长度的第二参数,按照目标编码规则,对待编码视频数据中的每一像素值进行编码,得到每一像素值的编码结果;根据编码顺序,对每一像素值的编码结果进行首尾相拼,得到待编码视频数据的压缩编码结果。这样,本申请能够在满足无损压缩要求的条件下,对待编码视频数据进行编码,以解决指数哥伦布编码在无损压缩场景下编码效率较低的问题。

Description

一种视频编码方法、装置、设备及存储介质
技术领域
本申请涉及视频传输技术领域,具体而言,涉及一种视频编码方法、装置、设备及存储介质。
背景技术
在视频传输过程中,尤其是在传输数据量较大的视频数据时,由于网络传输设备的视频传输速度有限,因此,在传输视频数据之前,通常需要对待传输的视频数据进行压缩编码,以通过压缩编码的方式缩短实际传输的数据量,从而达到提高视频传输效率的目的。
目前,在视频传输领域内,通常采用指数哥伦布编码的方式对待传输视频数据进行压缩编码;其中,指数哥伦布编码的编码特征是待传输视频数据的实际数值(即视频图像中各点的像素值)越小,则编码结果所占的比特位数也越少。
基于上述编码特征,现有技术在进行指数哥伦布编码之前,一般会先对待传输视频数据进行频域变换和量化等预处理步骤,以使预处理后的视频数据符合上述编码特征(即将待传输视频数据拆解成大量小数据,少量大数据的形式),从而保证指数哥伦布编码的编码效率;但是,在需要无损压缩的视频传输场景中,在实际编码之前,通常不允许使用量化等会造成编解码前后视频数据误差的预处理操作;此时,由于无损压缩场景下没有执行上述预处理操作,因此,导致指数哥伦布编码在无损压缩场景下的编码效率会大打折扣。
发明内容
有鉴于此,本申请的目的在于提供一种视频编码方法、装置、设备及存储介质,以在能够满足无损压缩的条件下,对待编码视频数据进行编码,解决现有技术中指数哥伦布编码在无损压缩场景下编码效率较低的问题。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
第一方面,本申请实施例提供了一种视频编码方法,所述视频编码方法包括:
针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;
根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;其中,所述第一参数属于自然数;
在二进制下,根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;其中,所述目标编码规则用于表征无符号编码规则或者有符号编码规则;所述第二参数小于所述第一参数;
根据每一所述像素值的编码顺序,对每一所述像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。
在一种可选的实施方式中,所述根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数,包括:
根据所述数值范围区间中像素值的最大绝对值,从目标类型的整数指数幂中,确定满足编码条件的多个第一整数指数幂;其中,所述目标类型的整数指数幂用于表征底数为二进制的基数的整数指数幂;所述编码条件用于表征数值大于或者等于所述最大绝对值;
从所述多个第一整数指数幂中,确定最小的第一整数指数幂的指数作为所述第一参数。
在一种可选的实施方式中,所述根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数,还包括:
在二进制下,对所述数值范围区间中像素值的最大绝对值进行数值转换,得到所述最大绝对值的二进制表示结果;
将所述最大绝对值的二进制表示结果中包含的比特位个数作为所述第一参数。
在一种可选的实施方式中,当所述目标编码规则用于表征所述无符号编码规则时,所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,包括:
针对该待编码视频数据中包括的每一像素值,判断该像素值的绝对值是否小于第二整数指数幂;其中,所述第二整数指数幂的底数为:二进制的基数,所述第二整数指数幂的指数为:所述第一参数与所述第二参数的差值;
若该像素值的绝对值小于所述第二整数指数幂,则按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码,得到该像素值的第一无符号编码结果;
若该像素值的绝对值大于或者等于所述第二整数指数幂,则按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码,得到该像素值的第二无符号编码结果;其中,所述第二编码子规则用于表征按照固定码长对该像素值进行编码,所述固定码长根据所述第一参数与所述第二参数确定。
在一种可选的实施方式中,所述按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码,包括:
在二进制下,对该像素值进行数值转换,得到该像素值的二进制序列;
从该像素值的二进制序列中,去除位于最高比特位的字符,得到第一子序列;
在所述第一子序列的最高比特位之前插入第一字符,并沿指向最低比特位的方向,在所述第一子序列的每个比特位后方插入第二字符,得到第二子序列;其中,所述第一字符和所述第二字符分别用于表征二进制下的不同字符;
在所述第二子序列的最低比特位后方插入所述第二字符,得到该像素值的第一无符号编码结果。
在一种可选的实施方式中,所述按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码,包括:
计算该像素值的绝对值与所述第二整数指数幂的商值,并对计算出的该商值进行向下取整运算,得到第三参数;
以该像素值的绝对值作为被除数,以所述第二整数指数幂作为除数,对所述被除数和所述除数进行取余运算,将取余运算的结果作为第四参数;
以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理,得到符合所述第一处理目标的第三子序列;
以得到比特位个数为目标差值的二进制序列作为数据处理的第二处理目标,对所述第四参数的二进制表示结果进行数据处理,得到符合所述第二处理目标的第四子序列;其中,所述目标差值用于表征所述第一参数与所述第二参数的差值;
沿指向最低比特位的方向,在所述第四子序列的每个比特位后方插入所述第二字符,得到第五子序列;
在所述第五子序列的最低比特位后方插入所述第二字符,得到第六子序列;
将所述第三子序列作为所述第二无符号编码结果的前缀码,将所述第六子序列作为所述第二无符号编码结果的后缀码,得到所述第二无符号编码结果。
在一种可选的实施方式中,所述以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理,包括:
根据所述第三参数的二进制表示结果中包含的比特位总数,判断所述比特位总数是否等于所述第二参数;
若所述比特位总数大于所述第二参数,则以最低比特位作为起始位置,从所述第三参数的二进制表示结果中,提取比特位个数为所述第二参数的二进制序列作为所述第三子序列;
若所述比特位总数小于所述第二参数,则以最高比特位作为起始位置,对所述第三参数的二进制表示结果进行高位补零,得到比特位个数为所述第二参数的二进制序列作为所述第三子序列。
在一种可选的实施方式中,在所述对所述第三参数的二进制表示结果进行数据处理之前,确定所述第三参数的二进制表示结果的方法还包括:
获取该像素值的绝对值的二进制表示结果;
基于右移运算符,以所述目标差值作为指定右移位数,对获取到的该二进制表示结果进行右移运算,将得到的右移运算结果作为所述第三参数的二进制表示结果。
在一种可选的实施方式中,当所述目标编码规则用于表征所述有符号编码规则时,所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,包括:
针对该待编码视频数据中包括的每一像素值,根据所述第一参数以及用于表征前缀码长度的第二参数,按照所述无符号编码规则对该像素值进行无符号编码,得到该像素值的无符号编码结果;其中,所述无符号编码结果用于表征所述第一无符号编码结果或者所述第二无符号编码结果;
根据该像素值所属的符号类型,从二进制下的字符中,确定表征含义与该像素值所属的符号类型相匹配的字符作为目标字符;其中,所述符合类型包括:正号类型和负号类型;
在所述无符号编码结果的目标比特位后方插入所述目标字符,得到该像素值的有符号编码结果;其中,所述目标字符用于在所述有符号编码结果中表示该像素值所属的符号类型。
在一种可选的实施方式中,当通过帧间作差的编码方式,在二进制下对所述待编码视频数据进行压缩编码时,在所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码之前,所述视频编码方法还包括:
针对所述待编码视频数据中包括的每一像素值,当检测到该像素值为零时,则确定该像素值的编码结果为零。
第二方面,本申请实施例提供了一种视频编码装置,所述视频编码装置包括:
像素确定模块,用于针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;
参数确定模块,用于根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;其中,所述第一参数属于自然数;
编码模块,用于在二进制下,根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;其中,所述目标编码规则用于表征无符号编码规则或者有符号编码规则;所述第二参数小于所述第一参数;
输出模块,用于根据每一所述像素值的编码顺序,对每一所述像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的视频编码方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述的视频编码方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请实施例提供的一种视频编码方法,针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;根据数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;在二进制下,根据第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;根据每一像素值的编码顺序,对每一像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。通过这种方式,本申请能够在满足无损压缩的条件下,对待编码视频数据进行编码,解决现有技术中指数哥伦布编码在无损压缩场景下编码效率较低的问题。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种视频编码方法的流程示意图;
图2示出了本申请实施例所提供的第一种确定第一参数的方法的流程示意图;
图3示出了本申请实施例所提供的第二种确定第一参数的方法的流程示意图;
图4示出了本申请实施例所提供的一种无符号编码方法的流程示意图;
图5示出了本申请实施例所提供的一种按照第二编码子规则,对像素值进行无符号编码的方法的流程示意图;
图6示出了本申请实施例所提供的一种有符号编码方法的流程示意图;
图7示出了本申请实施例提供的一种视频编码装置的结构示意图;
图8为本申请实施例提供的一种计算机设备800的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
目前,在视频传输领域内,通常采用指数哥伦布编码的方式对待传输视频数据进行压缩编码;其中,基于指数哥伦布编码的编码特征,现有技术在进行指数哥伦布编码之前,一般会先对待传输视频数据进行频域变换和量化等预处理步骤,以使预处理后的视频数据符合上述编码特征(即将待传输视频数据拆解成大量小数据,少量大数据的形式),从而提高指数哥伦布编码的编码效率;但是,在无损压缩要求较高的视频传输场景中,在实际编码之前,通常不允许使用量化等会造成编解码前后视频数据误差的预处理操作;此时,指数哥伦布编码的编码效率会大打折扣。
基于此,本申请实施例提供了一种视频编码方法、装置、设备及存储介质,针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;根据数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;在二进制下,根据第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;根据每一像素值的编码顺序,对每一像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。通过这种方式,本申请能够在满足无损压缩的条件下,对待编码视频数据进行编码,解决现有技术中指数哥伦布编码在无损压缩场景下编码效率较低的问题。
下面对本申请实施例提供的一种视频编码方法、装置、设备及存储介质进行详细介绍。
参照图1所示,图1示出了本申请实施例所提供的一种视频编码方法的流程示意图,所述视频编码方法包括步骤S101-S104;具体的:
S101,针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间。
这里,待编码视频数据用于表征当前需要进行视频传输的视频图像数据,其中,待编码视频数据中包括多个时间连续的图像帧,每个图像帧中包括多个像素点,各个像素点的具体像素值共同构成了待编码视频数据中需要进行编码的数值集合。
具体的,本申请实施例提供的视频编码方法应用于视频编码器中,在本申请实施例中,视频编码器是以每个像素点的具体像素值作为最小编码单元,来对接收到的待编码视频数据进行压缩编码的。
这里,将待编码视频数据输入至视频编码器中,视频编码器即可根据待编码视频数据中像素值的分布情况,确定出待编码视频数据中的最大像素值max1以及最小像素值min1,从而得到待编码视频数据中像素值的数值范围区间为:[min1,max1]。
针对上述数值范围区间需要说明的是,在视频传输领域内,视频图像数据可以是在不同类型的颜色空间中得到的,其中,不同类型的颜色空间对于像素值的取值范围具有不同的约束条件,也即,在不同类型的颜色空间下得到的视频图像数据中,像素值的具体数值范围是不同的,对于待编码视频数据对应的具体颜色空间类型,本申请实施例不作任何限定。
示例性的说明,以Lab颜色空间为例,Lab颜色空间由一个亮度通道L和两个颜色通道a和b共同构成,其中,亮度通道L的值域为:0至100,L=50时,相当于50%的黑;颜色通道a表示洋红色至绿色的范围,颜色通道a的值域为:+127至-128;颜色通道b表示黄色至蓝色的范围,颜色通道b的值域为:+127至-128;此时,若待编码视频数据中的视频图像是在Lab颜色空间中得到的,则待编码视频数据中像素值的数值范围区间为:[-128,+127]。
示例性的说明,以RGB颜色空间为例,RGB颜色空间由三个颜色通道R通道、G通道、B通道共同构成,其中,每个颜色通道中颜色数值的取值范围均为0-255,此时,若待编码视频数据中的视频图像是在RGB颜色空间中得到的,则待编码视频数据中像素值的数值范围区间为:[0,255]。
S102,根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数。
这里,上述第一参数属于自然数,也即,第一参数属于非负整数(正整数和零)。
具体的,在本申请实施例中,压缩编码是指通过编码的方式,将待编码视频数据转换由0和1组成的二进制码流的过程,也即,本申请实施例是在二进制下执行的编码方法。
这里,在根据步骤S101的执行,得到待编码视频数据中像素值的具体数值范围区间之后,为保证能够在二进制下对上述数值范围区间内的每个像素值进行编码,在不考虑像素值的正负的条件下,至少需要保证能够对上述数值范围区间中像素值的最大绝对值进行编码。
基于此,在本申请实施例中,需要根据上述数值范围区间中像素值的最大绝对值,来确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;此时,若将第一参数记作n,将上述数值范围区间中像素值的最大绝对值记作|max|,则在步骤S102中,根据上述数值范围区间中像素值的最大绝对值|max|,可以确定2n≥|max|,从而,能够从自然数中,确定出满足该不等式条件的任意一个目标自然数作为第一参数。
S103,在二进制下,根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果。
这里,针对上述第二参数需要说明的是:
在本申请实施例中,第二参数用于表征在按照本申请实施例进行压缩编码时,用户预先设置的前缀码长度;其中,在保证能够对上述数值范围区间内的每个像素值进行编码的条件下,第二参数的具体参数设置范围为:第二参数小于第一参数;也即,在上述具体参数设置范围内,用户可以基于实际的编码需求来设置第二参数的具体参数值;对于第二参数的具体参数取值,本申请实施例不作任何限定。
这里,针对上述目标编码规则需要说明的是:
在本申请实施例中,目标编码规则用于表征无符号编码规则或者有符号编码规则;其中,无符号编码规则用于表征对待编码视频数据中包括的每一像素值进行无符号编码(即编码结果中不体现像素值的正负);有符号编码规则用于表征对待编码视频数据中包括的每一像素值进行有符号编码(即编码结果中能够体现像素值的正负)。
具体的,在本申请实施例中,用户可以基于实际的编码需求,来从上述无符号编码规则以及有符号编码规则中,指定符合编码需求的目标编码规则;对于步骤S103中执行的具体编码规则,本申请实施例不进行任何限定。
S104,根据每一所述像素值的编码顺序,对每一所述像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。
这里,基于上述步骤S101-S103的实施,可以得到每个像素值的独立编码结果,此时,在输出待编码视频数据对应的码流(即待编码视频数据的压缩编码结果)时,视频编码器只需根据上述步骤S103中针对每个像素值进行独立编码时的编码顺序,依次将每个像素值的编码结果进行首尾相拼,即可得到待编码视频数据对应的完整码流。
具体的,视频编码器可以将输出的压缩编码结果通过网络通信设备发送给视频接收终端(即用于接收待编码视频数据的终端设备),接收终端依据与目标编码规则相对应的目标解码规则,对接收到的压缩编码结果执行对应的解码步骤,即可得到完整的原始视频数据(即待编码视频数据)。
基于此,在无损压缩的视频传输场景中,在实际编码之前,由于本申请实施例无需进行频域变换和量化等预处理步骤,因此,本申请能够在满足无损压缩的条件下,对待编码视频数据进行编码,解决现有技术中指数哥伦布编码在无损压缩场景下编码效率较低的问题。
需要说明的是,除无损压缩的视频传输场景之外,本申请实施例提供的视频编码方法同样适用于其他的视频传输场景,对于实际应用中视频传输场景的具体场景类型,本申请实施例不作任何限定。
下面针对上述各步骤在本申请实施例中的具体实施过程,分别进行详细说明:
针对上述步骤S102的具体实施过程,在本申请实施例中,除上述步骤S102中给出的任意选取目标自然数作为第一参数的可选实施方式之外,作为另一可选实施例,还可以通过以下两种可选实施方式,从满足上述不等式条件的多个目标自然数中,确定数值最小的目标自然数作为第一参数,以在根据第一参数和第二参数对每个像素值进行编码时,最大限度的缩短每个编码结果的码长,从而,有利于提高压缩编码的压缩效率(也相当于提高视频编码的编码效率);具体的:
在第一种可选的实施方式中,如图2所示,图2示出了本申请实施例所提供的第一种确定第一参数的方法的流程示意图,其中,在执行步骤S102时,该方法包括步骤S201-S202;具体的:
S201,根据所述数值范围区间中像素值的最大绝对值,从目标类型的整数指数幂中,确定满足编码条件的多个第一整数指数幂。
这里,上述目标类型的整数指数幂用于表征底数为二进制的基数的整数指数幂,也即,目标类型的整数指数幂用于表征2x;其中,指数x表示整数。
这里,上述编码条件用于表征数值大于或者等于所述最大绝对值。
S202,从所述多个第一整数指数幂中,确定最小的第一整数指数幂的指数作为所述第一参数。
示例性的说明,以数值范围区间是[0,255]为例,则数值范围区间中像素值的最大绝对值为255,此时,步骤S201中的编码条件为2x≥255,可以确定最小的第一整数指数幂为28,由此确定第一参数的具体参数值为8。
在第二种可选的实施方式中,如图3所示,图3示出了本申请实施例所提供的第二种确定第一参数的方法的流程示意图,其中,在执行步骤S102时,该方法包括步骤S301-S302;具体的:
S301,在二进制下,对所述数值范围区间中像素值的最大绝对值进行数值转换,得到所述最大绝对值的二进制表示结果。
示例性的说明,仍以数值范围区间是[0,255]为例,则数值范围区间中像素值的最大绝对值为255,最大绝对值255的二进制表示结果为:11111111。
S302,将所述最大绝对值的二进制表示结果中包含的比特位个数作为所述第一参数。
示例性的说明,仍以上述示例为例,最大绝对值255的二进制表示结果为:11111111,此时,该二进制表示结果中包含的比特位个数为8个,由此同样可以确定第一参数的具体参数值为8。
针对上述步骤S103的具体实施过程,结合上述步骤S103处的说明内容可知,在本申请实施例中,用户可以根据实际的编码需求,从无符号编码规则和有符号编码规则中,指定符合编码需求的具体目标编码规则;基于此,下面针对两种不同类型编码规则下,上述步骤S103的具体实施方式分别进行详细说明,具体的:
类型一、当目标编码规则用于表征无符号编码规则时,也即,在编码过程中对待编码视频数据中像素值的正负不需要进行区分的情况下,在一种可选的实施方式中,如图4所示,图4示出了本申请实施例所提供的一种无符号编码方法的流程示意图,其中,在执行步骤S103时,该无符号编码方法包括步骤S401-S403;具体的:
S401,针对该待编码视频数据中包括的每一像素值,判断该像素值的绝对值是否小于第二整数指数幂。
这里,所述第二整数指数幂的底数为:二进制的基数,所述第二整数指数幂的指数为:所述第一参数与所述第二参数的差值。
具体的,在本申请实施例中,若将第一参数记作n,将第二参数记作m,则第二整数指数幂可以记作2n-m。
S402,若该像素值的绝对值小于所述第二整数指数幂,则按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码,得到该像素值的第一无符号编码结果。
这里,作为一可选实施例,可以按照以下步骤1-4来执行步骤S402,具体的:
步骤1、在二进制下,对该像素值进行数值转换,得到该像素值的二进制序列。
示例性的说明,以第一参数n=8,第二参数m=3为例,此时,第二整数指数幂2n-m=28-3=32;若当前待编码的像素值为20,则像素值20的绝对值小于第二整数指数幂32,确定按照步骤1-4来执行步骤S402,此时,在二进制下,得到像素值20的二进制序列为:10100。
步骤2、从该像素值的二进制序列中,去除位于最高比特位的字符,得到第一子序列。
示例性的说明,仍以上述示例为例,像素值20的二进制序列为:10100,从该二进制序列中,去除位于最高比特位的字符1,得到第一子序列为0100。
这里,需要说明的是,本申请实施例提供的是视频编码方法,因此,上述二进制序列中的比特位高低仅用于表征一种排序方式,也即,在本申请实施例中,既可以设置从左至右的排序方式表征比特位由高到低排序,也可以设置从右至左的排序方式表征比特位由高到低排序;对于具体的排序方式本申请实施例不作任何限定。
步骤3、在所述第一子序列的最高比特位之前插入第一字符,并沿指向最低比特位的方向,在所述第一子序列的每个比特位后方插入第二字符,得到第二子序列。
这里,所述第一字符和所述第二字符分别用于表征二进制下的不同字符;其中,作为一可选实施例,第一字符和第二字符可以是不同的单个字符,如第一字符为0,第二字符为1;作为另一可选实施例,第一字符和第二字符也可以是不同的字符组合,如第一字符为00,第二字符为11等。对于第一字符和第二字符的具体字符形式,本申请实施例不作任何限定。
示例性的说明,仍以上述示例为例,像素值20的第一子序列为0100,若第一字符为0,第二字符为1,则在第一子序列0100的最高比特位0之前插入第一字符0,并沿指向最低比特位的方向,在第一子序列0100的每个比特位后方插入第二字符1,得到第二子序列为:001110101。
步骤4、在所述第二子序列的最低比特位后方插入所述第二字符,得到该像素值的第一无符号编码结果。
示例性的说明,仍以上述示例为例,当第一字符为0,第二字符为1时,像素值20的第二子序列为:001110101,此时,在第二子序列的最低比特位1后方插入第二字符1,得到像素值20的第一无符号编码结果0011101011。
S403,若该像素值的绝对值大于或者等于所述第二整数指数幂,则按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码,得到该像素值的第二无符号编码结果。
这里,所述第二编码子规则用于表征按照固定码长对该像素值进行编码,所述固定码长根据所述第一参数与所述第二参数确定。
具体的,在实际编码过程中,如图5所示,图5示出了本申请实施例所提供的一种按照第二编码子规则,对像素值进行无符号编码的方法的流程示意图,其中,在执行步骤S403时,该方法包括步骤S501-S507;具体的:
S501,计算该像素值的绝对值与所述第二整数指数幂的商值,并对计算出的该商值进行向下取整运算,得到第三参数。
具体的,仍以第一参数n=8,第二参数m=3为例,此时,第二整数指数幂2n-m=28-3=32;若当前待编码的像素值为100,则像素值100的绝对值大于第二整数指数幂32,确定按照步骤S501-S507来执行步骤S403。
示例性的说明,仍以第一参数n=8,第二参数m=3,像素值是100为例,计算像素值100的绝对值与第二整数指数幂32的商值为3.125,对该商值进行向下取整运算得到第三参数为3。
S502,以该像素值的绝对值作为被除数,以所述第二整数指数幂作为除数,对所述被除数和所述除数进行取余运算,将取余运算的结果作为第四参数。
示例性的说明,仍以上述示例为例,像素值100的绝对值为100,此时,以100作为被除数,以第二整数指数幂32作为除数,得到取余运算结果为4,将取余运算结果作为第四参数,得到第四参数为4。
S503,以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理,得到符合所述第一处理目标的第三子序列。
这里,作为一可选实施例,可以按照以下步骤(1)-(3)来执行步骤S503,具体的:
步骤(1)、根据所述第三参数的二进制表示结果中包含的比特位总数,判断所述比特位总数是否等于所述第二参数。
示例性的说明,仍以步骤S501中的示例为例,第三参数3的二进制表示结果为011,该二进制表示结果包含的比特位个数为3个,也即,恰好为第二参数3,此时,可以直接将该二进制表示结果作为第三子序列,得到第三子序列为011。
步骤(2)、若所述比特位总数大于所述第二参数,则以最低比特位作为起始位置,从所述第三参数的二进制表示结果中,提取比特位个数为所述第二参数的二进制序列作为所述第三子序列。
示例性的说明,仍以第一参数n=8,第二参数m=3为例,若第三参数为8(8的二进制表示结果为1000),则由于比特位总数4位大于第二参数3,因此,以最低比特位作为起始位置,从8的二进制表示结果1000中,提取后3个比特位的字符,得到第三子序列为000。
步骤(3)、若所述比特位总数小于所述第二参数,则以最高比特位作为起始位置,对所述第三参数的二进制表示结果进行高位补零,得到比特位个数为所述第二参数的二进制序列作为所述第三子序列。
示例性的说明,仍以第一参数n=8,第二参数m=3为例,若第三参数为2(2的二进制表示结果为10),则由于比特位总数2位小于第二参数3,因此,以最高比特位作为起始位置,对2的二进制表示结果10进行高位补零,得到第三子序列为010。
这里,作为另一可选实施例,除上述步骤S501得到第三参数,再将该第三参数的二进制数作为步骤S503中需要进行数据处理的第三参数的二进制表示结果的方式之外,在本申请实施例中,还可以通过以下方法确定上述第三参数的二进制表示结果,具体的:
(1)、获取该像素值的绝对值的二进制表示结果。
(2)、基于右移运算符,以所述目标差值作为指定右移位数,对获取到的该二进制表示结果进行右移运算,将得到的右移运算结果作为所述第三参数。
具体的,右移运算符是一种移位运算符,以符号>>表示,右移运算符的运算规则为:将一个二进制数按照指定移动的位数向右移动,在移动过程中,将移出位的数值舍弃,对于舍弃移出位之后剩余的左边空位执行补零或者补符号位的操作。
示例性的说明,仍以第一参数n=8,第二参数m=3,像素值是100为例,获取像素值100的绝对值的二进制表示结果为:1100100,第一参数n与第二参数m的目标差值为5;则基于右移运算符,以目标差值5作为指定右移位数,对该二进制表示结果1100100进行右移运算(表示为1100100>>5),得到第三参数的二进制表示结果为:0000011(相当于总位数7比特位不变,在右移过程中,将右移的5个移出位数值00100舍弃,并在高位进行补零操作);此时,按照上述步骤(1)-(3)对该第三参数的二进制表示结果进行数据处理,由于该第三参数的二进制表示结果的比特位总数7位大于第二参数3,因此,在按照上述步骤(2)所示的数据处理方式对该第三参数的二进制表示结果进行数据处理后,得到第三子序列为011(与同一像素值下步骤S501中示例得到最终第三子序列相同)。
需要说明的是,在本领域内,右移运算符对无符号类型的数据(即不需要区分正负的数据)执行补零操作,对有符号类型的数据执行补符号位的操作;因此,由于本申请实施例中右移运算符的运算对象为:像素值的绝对值(即与像素值取值是正还是负无关),且上述步骤是在对像素值进行无符号编码的过程中进行的,因此,即使本申请实施例并未对右移运算符具体执行何种操作进行限定,本领域技术人员同样可以明确本申请实施例中右移运算符执行的是补零操作。
S504,以得到比特位个数为目标差值的二进制序列作为数据处理的第二处理目标,对所述第四参数的二进制表示结果进行数据处理,得到符合所述第二处理目标的第四子序列。
这里,所述目标差值用于表征所述第一参数与所述第二参数的差值。
具体的,第二处理目标与步骤S503中的第一处理目标相似,步骤S504同样是通过数据处理的方式,得到一个固定长度(即比特位个数为目标差值)的第四子序列;基于此,步骤S504的具体实施方式可以参考上述步骤S503的实施,重复之处在此不再赘述。
示例性的说明,仍以步骤S501中的示例为例,像素值100的第四参数为32,第四参数4的二进制表示结果为100,目标差值n-m的具体数值为5,此时,由于二进制表示结果100的比特位总数3位小于目标差值5,因此,可以按照上述步骤(3)的方式,以最高比特位作为起始位置,对第四参数4的二进制表示结果100进行高位补零,得到第四子序列为00100。
S505,沿指向最低比特位的方向,在所述第四子序列的每个比特位后方插入所述第二字符,得到第五子序列。
示例性的说明,仍以步骤S504中的示例为例,沿指向最低比特位的方向,在第四子序列00100的每个比特位后方插入第二字符1,得到第五子序列0101110101。
S506,在所述第五子序列的最低比特位后方插入所述第二字符,得到第六子序列。
示例性的说明,仍以步骤S505中的示例为例,在第五子序列0101110101的最低比特位1的后方插入第二字符1,得到第六子序列01011101011。
S507,将所述第三子序列作为所述第二无符号编码结果的前缀码,将所述第六子序列作为所述第二无符号编码结果的后缀码,得到所述第二无符号编码结果。
示例性的说明,仍以上述示例为例,像素值100的第三子序列为011,第六子序列为01011101011,此时,以011作为前缀码,以01011101011作为后缀码,得到第二无符号编码结果为:01101011101011。
类型二、当目标编码规则用于表征有符号编码规则时,也即,在编码过程中对待编码视频数据中像素值的正负需要进行区分的情况下,在一种可选的实施方式中,如图6所示,图6示出了本申请实施例所提供的一种有符号编码方法的流程示意图,其中,在执行步骤S103时,该有符号编码方法包括步骤S601-S603;具体的:
S601,针对该待编码视频数据中包括的每一像素值,根据所述第一参数以及用于表征前缀码长度的第二参数,按照所述无符号编码规则对该像素值进行无符号编码,得到该像素值的无符号编码结果。
这里,无符号编码结果用于表征所述第一无符号编码结果或者所述第二无符号编码结果。
这里,步骤S601的具体实施方式与上述步骤S401-S403的实施方式相同,重复之处在此不再赘述。
示例性的说明,以像素值为-100为例,则基于步骤S601的实施,得到像素值-100的无符号编码结果为:01101011101011(即与像素值100的第二无符号编码结果相同)。
S602,根据该像素值所属的符号类型,从二进制下的字符中,确定表征含义与该像素值所属的符号类型相匹配的字符作为目标字符。
这里,所述符合类型包括:正号类型和负号类型。
示例性的说明,以字符1表征负号类型,字符0表征正号类型为例,若像素值为-100,则确定像素值-100对应的目标字符为字符1。
S603,在所述无符号编码结果的目标比特位后方插入所述目标字符,得到该像素值的有符号编码结果。
这里,所述目标字符用于在所述有符号编码结果中表示该像素值所属的符号类型。
在本申请实施例中,目标比特位表征的具体数位可以根据用户的实际编码需求确定,在对编码结果进行解码时,只需按照相同的目标比特位进行解码即可;对于目标比特位表征的具体数位,本申请实施例不作任何限定。
示例性的说明,仍以像素值为-100,表征负号类型的目标字符是字符1为例,若目标比特位表征的具体数位为倒数第2位,则可以在像素值-100的无符号编码结果01101011101011的倒数第2位后方插入目标字符1,得到像素值-100的有符号编码结果为:011010111010111。
针对步骤S103的具体实施过程,需要说明的是,本申请实施例提供的上述类型一和类型二所述的两种编码方法适用于任意视频传输场景,也即,在实际应用过程中,针对任意取值的像素值都可以按照上述类型一和类型二所述的两种编码方法进行编码。
这里,在一种特定应用场景中,该特定应用场景下的待编码视频数据具有大量视频图像数据属于静态图像的数据特点,例如,在KVM(Keyboard Video Mouse,键盘视频鼠标)切换系统中,获取到的视频数据大量属于静态图像,只有少量的视频图像中会涉及目标对象(如鼠标等可移动操作设备)在相邻帧间的运动;此时,当通过帧间作差(即相邻帧视频图像之间进行帧间作差)的编码方式,在二进制下对所述待编码视频数据进行压缩编码时,作为另一可选实施例,在按照上述类型一和类型二所述的两种编码方法执行步骤S103之前,本申请实施例提供的视频编码方法还包括以下步骤,具体的:
针对所述待编码视频数据中包括的每一像素值,当检测到该像素值为零时,则确定该像素值的编码结果为零。
这里,针对上述步骤需要说明的是,结合上述特定应用场景下视频数据的数据特点可知,当通过帧间作差的编码方式,在二进制下对待编码视频数据进行压缩编码时,待编码视频数据中会出现大量像素值为0的待编码数据,此时,按照上述步骤的实施,可以直接将出现频率最大的像素值(即像素值为0的待编码数据)的编码结果表示得最短(即仅用码长为1个比特位的数值0来表示该像素值的编码结果),有利于在上述步骤S101-S104实施的基础上,进一步提高编码的压缩效率。
基于上述各步骤的实施,本申请实施例提供了一种与现有技术中常用的指数哥伦布编码完全不同的视频编码方法,以解决指数哥伦布编码在无损压缩场景下编码效率较低的问题,除无需在编码之前执行量化等预处理操作之外,相较于指数哥伦布编码,在按照上述步骤S101-S104的视频编码方法进行编码之后,对于同一待编码数据而言,本申请实施例提供的上述视频编码方法还能够缩短单个编码结果的码长,从而,在除无损压缩场景之外的其他视频传输场景中,仍然能够达到比指数哥伦布编码更高的压缩效率。
这里,为了从整体上更加清晰的体现本申请实施例提供的无符号编码/有符号编码方法,与现有技术中常用的指数哥伦布编码针对同一待编码视频数据中不同像素值进行批量式编码时,各自所需的比特位总数(即编码长度);本申请实施例还提供了如下的对照表,以便从整体上更加清晰的体现本申请实施例提供的无符号编码/有符号编码方法,与现有技术中常用的指数哥伦布编码之间的区别,具体的:
在无符号编码方法下,本申请实施例与现有技术中指数哥伦布编码针对同一待编码视频数据中不同像素值进行批量式编码时,各自所需的比特位总数之间的区别如下表1所示,其中,bit(binary digit,比特)为编码长度的单位,n为本申请实施例中的第一参数,m为本申请实施例中的第二参数,具体的:
Figure BDA0003623431020000181
Figure BDA0003623431020000191
表1
在有符号编码方法下,本申请实施例与现有技术中指数哥伦布编码针对同一待编码视频数据中不同像素值进行批量式编码时,各自所需的比特位总数之间的区别如下表2所示,其中,bit(binary digit,比特)为编码长度的单位,n为本申请实施例中的第一参数,m为本申请实施例中的第二参数,具体的:
Figure BDA0003623431020000192
表2
针对上述表1和表2所示内容,需要说明的是,基于上述步骤S601-S603可知,在本申请实施例中,有符号编码结果相当于在无符号编码结果的基础上,增加一个用于表示正/负的符号位(即上述目标比特位),因此,在相同的编码参数下(即相同的第一参数n以及相同的第二参数m),针对同一像素值,表2所示的有符号编码结果的编码长度恰好比表1所示的无符号编码结果多1个bit。
这里,对于上述表1和表2中每个像素值的具体编码步骤,可以参考前述各步骤的实施,重复之处在此不再赘述。
下面以步骤S103中的目标编码规则表征无符号编码规则为例,在相同编码需求(即都是对待编码数据进行无符号编码)下,对本申请实施例中得到的编码结果与指数哥伦布编码的编码结果差异,进行示例性说明,具体的:
以步骤S101中待编码视频数据中像素值的数值范围区间是[0,255]为例,当按照指数哥伦布编码的方式对该待编码视频数据中每个像素值进行视频编码时,各像素值的指数哥伦布编码结果如下表3所示,其中,表3中的阶数k用于表示指数哥伦布编码结果中,后缀码的比特位个数与前缀码中连续0的个数之间的差值,具体的:
Figure BDA0003623431020000201
表3
这里结合表3所示的指数哥伦布编码结果,首先对指数哥伦布编码的具体编码规则进行说明如下:
指数哥伦布编码结果由一个前缀码和一个后缀码首尾拼接而成,其中,前缀码由x个连续的0以及固定处于前缀码末位的一个数字1组成,此时,针对阶数为k的指数哥伦布编码,后缀码有k+x个比特位,并且阶数为k的指数哥伦布编码能够最多编码2k+x个像素值(即像素值的数值范围区间位于[0,2k+x-1]内的待编码视频数据);其中,x的取值从0开始。
具体的,以像素值255为例,则按照指数哥伦布编码,对像素值255进行编码得到的指数哥伦布编码结果为:
当阶数k=0时,像素值255的指数哥伦布编码结果为00000000100000000,码长为17个比特位;
当阶数k=1时,像素值255的指数哥伦布编码结果为0000000100000001,码长为16个比特位;
当阶数k=2时,像素值255的指数哥伦布编码结果为000000100000011,码长为15个比特位。
仍以像素值255为例,本申请实施例对像素值255的具体编码过程如下:
1、确定第一参数的具体参数值。
具体的,当步骤S101中待编码视频数据中像素值的数值范围区间是[0,255]时,基于上述步骤S201-S202或者步骤S301-S302的实施,本申请实施例可以确定第一参数n的具体参数值为8。
2、在确定目标编码规则表征无符号编码规则的情况下,执行步骤S401-S403所示的无符号编码步骤,得到像素值255的无符号编码结果。
这里,以表征前缀码长度的第二参数m是3为例,则在执行步骤S401-S403所示的无符号编码步骤时,可以确定第二整数指数幂2n-m的数值为32,由于像素值255大于第二整数指数幂32,因此,可以确定按照步骤S501-S507对像素值255进行无符号编码,得到像素值255的第二无符号编码结果为:11111111111111,码长为14个比特位。
基于上述具体示例可以看出,在同等编码条件下对数值较大的像素值进行编码时,相较于现有技术中的指数哥伦布编码,本申请实施例提供的视频编码方法能够有效缩短编码结果的码长,从而,在除无损压缩场景之外的其他视频传输场景中,仍然能够达到比指数哥伦布编码更高的压缩效率。
基于同一发明构思,本申请实施例中还提供了与上述实施例中视频编码方法对应的视频编码装置,由于本申请实施例中的视频编码装置解决问题的原理与本申请上述实施例中的视频编码方法相似,因此,视频编码装置的实施可以参见前述视频编码方法的实施,重复之处不再赘述。
参照图7所示,图7示出了本申请实施例提供的一种视频编码装置的结构示意图;所述视频编码装置包括:
像素确定模块701,用于针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;
参数确定模块702,用于根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;其中,所述第一参数属于自然数;
编码模块703,用于在二进制下,根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;其中,所述目标编码规则用于表征无符号编码规则或者有符号编码规则;所述第二参数小于所述第一参数;
输出模块704,用于根据每一所述像素值的编码顺序,对每一所述像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。
在一种可选的实施方式中,参数确定模块702,具体用于:
根据所述数值范围区间中像素值的最大绝对值,从目标类型的整数指数幂中,确定满足编码条件的多个第一整数指数幂;其中,所述目标类型的整数指数幂用于表征底数为二进制的基数的整数指数幂;所述编码条件用于表征数值大于或者等于所述最大绝对值;
从所述多个第一整数指数幂中,确定最小的第一整数指数幂的指数作为所述第一参数。
在一种可选的实施方式中,参数确定模块702,具体用于:
在二进制下,对所述数值范围区间中像素值的最大绝对值进行数值转换,得到所述最大绝对值的二进制表示结果;
将所述最大绝对值的二进制表示结果中包含的比特位个数作为所述第一参数。
在一种可选的实施方式中,当所述目标编码规则用于表征所述无符号编码规则时,编码模块703,具体用于:
针对该待编码视频数据中包括的每一像素值,判断该像素值的绝对值是否小于第二整数指数幂;其中,所述第二整数指数幂的底数为:二进制的基数,所述第二整数指数幂的指数为:所述第一参数与所述第二参数的差值;
若该像素值的绝对值小于所述第二整数指数幂,则按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码,得到该像素值的第一无符号编码结果;
若该像素值的绝对值大于或者等于所述第二整数指数幂,则按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码,得到该像素值的第二无符号编码结果;其中,所述第二编码子规则用于表征按照固定码长对该像素值进行编码,所述固定码长根据所述第一参数与所述第二参数确定。
在一种可选的实施方式中,在所述按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码时,编码模块703,具体用于:
在二进制下,对该像素值进行数值转换,得到该像素值的二进制序列;
从该像素值的二进制序列中,去除位于最高比特位的字符,得到第一子序列;
在所述第一子序列的最高比特位之前插入第一字符,并沿指向最低比特位的方向,在所述第一子序列的每个比特位后方插入第二字符,得到第二子序列;其中,所述第一字符和所述第二字符分别用于表征二进制下的不同字符;
在所述第二子序列的最低比特位后方插入所述第二字符,得到该像素值的第一无符号编码结果。
在一种可选的实施方式中,在所述按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码时,编码模块703,具体用于:
计算该像素值的绝对值与所述第二整数指数幂的商值,并对计算出的该商值进行向下取整运算,得到第三参数;
以该像素值的绝对值作为被除数,以所述第二整数指数幂作为除数,对所述被除数和所述除数进行取余运算,将取余运算的结果作为第四参数;
以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理,得到符合所述第一处理目标的第三子序列;
以得到比特位个数为目标差值的二进制序列作为数据处理的第二处理目标,对所述第四参数的二进制表示结果进行数据处理,得到符合所述第二处理目标的第四子序列;其中,所述目标差值用于表征所述第一参数与所述第二参数的差值;
沿指向最低比特位的方向,在所述第四子序列的每个比特位后方插入所述第二字符,得到第五子序列;
在所述第五子序列的最低比特位后方插入所述第二字符,得到第六子序列;
将所述第三子序列作为所述第二无符号编码结果的前缀码,将所述第六子序列作为所述第二无符号编码结果的后缀码,得到所述第二无符号编码结果。
在一种可选的实施方式中,在所述以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理时,编码模块703,具体用于:
根据所述第三参数的二进制表示结果中包含的比特位总数,判断所述比特位总数是否等于所述第二参数;
若所述比特位总数大于所述第二参数,则以最低比特位作为起始位置,从所述第三参数的二进制表示结果中,提取比特位个数为所述第二参数的二进制序列作为所述第三子序列;
若所述比特位总数小于所述第二参数,则以最高比特位作为起始位置,对所述第三参数的二进制表示结果进行高位补零,得到比特位个数为所述第二参数的二进制序列作为所述第三子序列。
在一种可选的实施方式中,在所述对所述第三参数的二进制表示结果进行数据处理之前,编码模块703还用于通过以下方法确定所述第三参数的二进制表示结果:
获取该像素值的绝对值的二进制表示结果;
基于右移运算符,以所述目标差值作为指定右移位数,对获取到的该二进制表示结果进行右移运算,将得到的右移运算结果作为所述第三参数的二进制表示结果。
在一种可选的实施方式中,当所述目标编码规则用于表征所述有符号编码规则时,编码模块703,具体用于:
针对该待编码视频数据中包括的每一像素值,根据所述第一参数以及用于表征前缀码长度的第二参数,按照所述无符号编码规则对该像素值进行无符号编码,得到该像素值的无符号编码结果;其中,所述无符号编码结果用于表征所述第一无符号编码结果或者所述第二无符号编码结果;
根据该像素值所属的符号类型,从二进制下的字符中,确定表征含义与该像素值所属的符号类型相匹配的字符作为目标字符;其中,所述符合类型包括:正号类型和负号类型;
在所述无符号编码结果的目标比特位后方插入所述目标字符,得到该像素值的有符号编码结果;其中,所述目标字符用于在所述有符号编码结果中表示该像素值所属的符号类型。
在一种可选的实施方式中,当通过帧间作差的编码方式,在二进制下对所述待编码视频数据进行压缩编码时,在所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码之前,编码模块703,还用于:
针对所述待编码视频数据中包括的每一像素值,当检测到该像素值为零时,则确定该像素值的编码结果为零。
如图8所示,本申请实施例提供了一种计算机设备800,用于执行本申请中的视频编码方法,该设备包括存储器801、处理器802及存储在该存储器801上并可在该处理器802上运行的计算机程序,其中,上述处理器802执行上述计算机程序时实现上述视频编码方法的步骤。
具体地,上述存储器801和处理器802可以为通用的存储器和处理器,这里不做具体限定,当处理器802运行存储器801存储的计算机程序时,能够执行上述视频编码方法。
对应于本申请中的视频编码方法,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述视频编码方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述视频编码方法。
在本申请所提供的实施例中,应该理解到,所揭露系统和方法,可以通过其它的方式实现。以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围。都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (13)

1.一种视频编码方法,其特征在于,所述视频编码方法包括:
针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;
根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;其中,所述第一参数属于自然数;
在二进制下,根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;其中,所述目标编码规则用于表征无符号编码规则或者有符号编码规则;所述第二参数小于所述第一参数;
根据每一所述像素值的编码顺序,对每一所述像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。
2.根据权利要求1所述的视频编码方法,其特征在于,所述根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数,包括:
根据所述数值范围区间中像素值的最大绝对值,从目标类型的整数指数幂中,确定满足编码条件的多个第一整数指数幂;其中,所述目标类型的整数指数幂用于表征底数为二进制的基数的整数指数幂;所述编码条件用于表征数值大于或者等于所述最大绝对值;
从所述多个第一整数指数幂中,确定最小的第一整数指数幂的指数作为所述第一参数。
3.根据权利要求1所述的视频编码方法,其特征在于,所述根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数,还包括:
在二进制下,对所述数值范围区间中像素值的最大绝对值进行数值转换,得到所述最大绝对值的二进制表示结果;
将所述最大绝对值的二进制表示结果中包含的比特位个数作为所述第一参数。
4.根据权利要求1所述的视频编码方法,其特征在于,当所述目标编码规则用于表征所述无符号编码规则时,所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,包括:
针对该待编码视频数据中包括的每一像素值,判断该像素值的绝对值是否小于第二整数指数幂;其中,所述第二整数指数幂的底数为:二进制的基数,所述第二整数指数幂的指数为:所述第一参数与所述第二参数的差值;
若该像素值的绝对值小于所述第二整数指数幂,则按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码,得到该像素值的第一无符号编码结果;
若该像素值的绝对值大于或者等于所述第二整数指数幂,则按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码,得到该像素值的第二无符号编码结果;其中,所述第二编码子规则用于表征按照固定码长对该像素值进行编码,所述固定码长根据所述第一参数与所述第二参数确定。
5.根据权利要求4所述的视频编码方法,其特征在于,所述按照所述无符号编码规则下的第一编码子规则,对该像素值进行无符号编码,包括:
在二进制下,对该像素值进行数值转换,得到该像素值的二进制序列;
从该像素值的二进制序列中,去除位于最高比特位的字符,得到第一子序列;
在所述第一子序列的最高比特位之前插入第一字符,并沿指向最低比特位的方向,在所述第一子序列的每个比特位后方插入第二字符,得到第二子序列;其中,所述第一字符和所述第二字符分别用于表征二进制下的不同字符;
在所述第二子序列的最低比特位后方插入所述第二字符,得到该像素值的第一无符号编码结果。
6.根据权利要求5所述的视频编码方法,其特征在于,所述按照所述无符号编码规则下的第二编码子规则,对该像素值进行无符号编码,包括:
计算该像素值的绝对值与所述第二整数指数幂的商值,并对计算出的该商值进行向下取整运算,得到第三参数;
以该像素值的绝对值作为被除数,以所述第二整数指数幂作为除数,对所述被除数和所述除数进行取余运算,将取余运算的结果作为第四参数;
以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理,得到符合所述第一处理目标的第三子序列;
以得到比特位个数为目标差值的二进制序列作为数据处理的第二处理目标,对所述第四参数的二进制表示结果进行数据处理,得到符合所述第二处理目标的第四子序列;其中,所述目标差值用于表征所述第一参数与所述第二参数的差值;
沿指向最低比特位的方向,在所述第四子序列的每个比特位后方插入所述第二字符,得到第五子序列;
在所述第五子序列的最低比特位后方插入所述第二字符,得到第六子序列;
将所述第三子序列作为所述第二无符号编码结果的前缀码,将所述第六子序列作为所述第二无符号编码结果的后缀码,得到所述第二无符号编码结果。
7.根据权利要求6所述的视频编码方法,其特征在于,所述以得到比特位个数为所述第二参数的二进制序列作为数据处理的第一处理目标,对所述第三参数的二进制表示结果进行数据处理,包括:
根据所述第三参数的二进制表示结果中包含的比特位总数,判断所述比特位总数是否等于所述第二参数;
若所述比特位总数大于所述第二参数,则以最低比特位作为起始位置,从所述第三参数的二进制表示结果中,提取比特位个数为所述第二参数的二进制序列作为所述第三子序列;
若所述比特位总数小于所述第二参数,则以最高比特位作为起始位置,对所述第三参数的二进制表示结果进行高位补零,得到比特位个数为所述第二参数的二进制序列作为所述第三子序列。
8.根据权利要求6所述的视频编码方法,其特征在于,在所述对所述第三参数的二进制表示结果进行数据处理之前,确定所述第三参数的二进制表示结果的方法还包括:
获取该像素值的绝对值的二进制表示结果;
基于右移运算符,以所述目标差值作为指定右移位数,对获取到的该二进制表示结果进行右移运算,将得到的右移运算结果作为所述第三参数的二进制表示结果。
9.根据权利要求4所述的视频编码方法,其特征在于,当所述目标编码规则用于表征所述有符号编码规则时,所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,包括:
针对该待编码视频数据中包括的每一像素值,根据所述第一参数以及用于表征前缀码长度的第二参数,按照所述无符号编码规则对该像素值进行无符号编码,得到该像素值的无符号编码结果;其中,所述无符号编码结果用于表征所述第一无符号编码结果或者所述第二无符号编码结果;
根据该像素值所属的符号类型,从二进制下的字符中,确定表征含义与该像素值所属的符号类型相匹配的字符作为目标字符;其中,所述符号类型包括:正号类型和负号类型;
在所述无符号编码结果的目标比特位后方插入所述目标字符,得到该像素值的有符号编码结果;其中,所述目标字符用于在所述有符号编码结果中表示该像素值所属的符号类型。
10.根据权利要求1所述的视频编码方法,其特征在于,当通过帧间作差的编码方式,在二进制下对所述待编码视频数据进行压缩编码时,在所述根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码之前,所述视频编码方法还包括:
针对所述待编码视频数据中包括的每一像素值,当检测到该像素值为零时,则确定该像素值的编码结果为零。
11.一种视频编码装置,其特征在于,所述视频编码装置包括:
像素确定模块,用于针对每一待编码视频数据,根据该待编码视频数据中包括的每一像素值,确定该待编码视频数据中像素值的数值范围区间;
参数确定模块,用于根据所述数值范围区间中像素值的最大绝对值,确定用于在二进制下对该待编码视频数据进行压缩编码的第一参数;其中,所述第一参数属于自然数;
编码模块,用于在二进制下,根据所述第一参数以及用于表征前缀码长度的第二参数,按照预先设置的目标编码规则,对该待编码视频数据中包括的每一像素值进行编码,得到每一像素值的编码结果;其中,所述目标编码规则用于表征无符号编码规则或者有符号编码规则;所述第二参数小于所述第一参数;
输出模块,用于根据每一所述像素值的编码顺序,对每一所述像素值的编码结果进行首尾相拼,以将首尾相拼的结果作为该待编码视频数据的压缩编码结果。
12.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至10任一所述视频编码方法的步骤。
13.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至10任一所述视频编码方法的步骤。
CN202210472514.1A 2022-04-29 2022-04-29 一种视频编码方法、装置、设备及存储介质 Active CN114760481B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210472514.1A CN114760481B (zh) 2022-04-29 2022-04-29 一种视频编码方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210472514.1A CN114760481B (zh) 2022-04-29 2022-04-29 一种视频编码方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114760481A CN114760481A (zh) 2022-07-15
CN114760481B true CN114760481B (zh) 2023-05-30

Family

ID=82333716

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210472514.1A Active CN114760481B (zh) 2022-04-29 2022-04-29 一种视频编码方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114760481B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115175248B (zh) * 2022-09-06 2023-01-24 北京智芯微电子科技有限公司 用于通信系统的定点数据压缩、解压方法、装置及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011023926A (ja) * 2009-07-15 2011-02-03 Nikon Corp 画像圧縮装置、撮像装置、プログラムおよび画像伸張装置
JP2011229096A (ja) * 2010-04-23 2011-11-10 Renesas Electronics Corp 画像圧縮装置、画像圧縮方法、および画像圧縮プログラム
CN103517068A (zh) * 2012-06-21 2014-01-15 富士通株式会社 图像压缩方法和装置
CN105379283A (zh) * 2013-07-09 2016-03-02 索尼公司 数据编码和解码
CN110047077A (zh) * 2019-04-17 2019-07-23 湘潭大学 一种用于以太坊共识机制的图像处理方法
CN110290391A (zh) * 2019-07-19 2019-09-27 苏州浪潮智能科技有限公司 一种指数哥伦布码解码方法、系统及电子设备和存储介质
WO2020002117A2 (en) * 2018-06-29 2020-01-02 Canon Kabushiki Kaisha Methods and devices for performing sample adaptive offset (sao) filtering
CN114208205A (zh) * 2019-07-25 2022-03-18 韦勒斯标准与技术协会公司 视频信号处理方法和设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386146B2 (en) * 2001-09-13 2008-06-10 Canon Kabushiki Kaisha Insertion of a message in a sequence of digital images
KR101549823B1 (ko) * 2008-09-02 2015-09-04 삼성전자주식회사 적응적 이진화를 이용한 영상 부호화, 복호화 방법 및 장치

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011023926A (ja) * 2009-07-15 2011-02-03 Nikon Corp 画像圧縮装置、撮像装置、プログラムおよび画像伸張装置
JP2011229096A (ja) * 2010-04-23 2011-11-10 Renesas Electronics Corp 画像圧縮装置、画像圧縮方法、および画像圧縮プログラム
CN103517068A (zh) * 2012-06-21 2014-01-15 富士通株式会社 图像压缩方法和装置
CN105379283A (zh) * 2013-07-09 2016-03-02 索尼公司 数据编码和解码
WO2020002117A2 (en) * 2018-06-29 2020-01-02 Canon Kabushiki Kaisha Methods and devices for performing sample adaptive offset (sao) filtering
CN110047077A (zh) * 2019-04-17 2019-07-23 湘潭大学 一种用于以太坊共识机制的图像处理方法
CN110290391A (zh) * 2019-07-19 2019-09-27 苏州浪潮智能科技有限公司 一种指数哥伦布码解码方法、系统及电子设备和存储介质
CN114208205A (zh) * 2019-07-25 2022-03-18 韦勒斯标准与技术协会公司 视频信号处理方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
高效视频编码关键技术研究;张世彦;《中国优秀硕士论文电子期刊》;全文 *

Also Published As

Publication number Publication date
CN114760481A (zh) 2022-07-15

Similar Documents

Publication Publication Date Title
US9743080B2 (en) Encoding or decoding method and apparatus
US20060262982A1 (en) Image encoding apparatus and method, computer program, and computer-readable storage medium
US20160249068A1 (en) Method for Producing Video Coding and Programme-Product
CN110915213B (zh) 编解码符号的熵编解码的方法与装置
KR20200003888A (ko) 비디오 압축에서의 엔트로피 코딩을 위한 선택적 혼합
US10681388B2 (en) Compression of occupancy or indicator grids
CN112506880B (zh) 数据处理方法及相关设备
CN114760481B (zh) 一种视频编码方法、装置、设备及存储介质
CN110768785A (zh) 一种编、解码方法、相关装置及计算机设备
CN111131828B (zh) 一种图像压缩方法、装置、电子设备和存储介质
CN105409129B (zh) 编码器设备、解码器设备和方法
CN110545417A (zh) 一种桌面场景的图像编码、解码方法及相关装置
WO2010044099A1 (en) Lossless content encoding
CN113630125A (zh) 数据压缩、编码解压缩方法、装置、电子设备及存储介质
CN114584773A (zh) 图像压缩装置、方法、电子设备及计算机可读存储介质
JP6044292B2 (ja) データ処理装置、データ処理方法
JP6426212B2 (ja) 制限されたキャリー演算による算術コーディングを遂行するための方法及び装置
JP2006270325A (ja) 画像圧縮装置、画像伸長装置、画像データ、画像処理方法及びプログラム
US8559741B2 (en) Lossless image compression method
US20140015698A1 (en) System and method for fixed rate entropy coded scalar quantization
CN112449191A (zh) 压缩多个图像的方法、解压缩图像的方法和装置
US6947606B2 (en) Skim encoding method for compression of a two dimensional array of data
KR100241069B1 (ko) 단일명령사이클에서 0부터 라운드처리된 4정수의 평균산출방법과 그 장치
CN112449201B (zh) 解码方法、编码方法、相应的装置、电子设备及存储介质
CN111836051B (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