CN117440154B - 一种考虑浮点数位拆分的深度图序列压缩方法 - Google Patents

一种考虑浮点数位拆分的深度图序列压缩方法 Download PDF

Info

Publication number
CN117440154B
CN117440154B CN202311768148.5A CN202311768148A CN117440154B CN 117440154 B CN117440154 B CN 117440154B CN 202311768148 A CN202311768148 A CN 202311768148A CN 117440154 B CN117440154 B CN 117440154B
Authority
CN
China
Prior art keywords
compression
depth map
sequence
bits
floating point
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
CN202311768148.5A
Other languages
English (en)
Other versions
CN117440154A (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.)
Zhejiang Lab
Original Assignee
Zhejiang Lab
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 Zhejiang Lab filed Critical Zhejiang Lab
Priority to CN202311768148.5A priority Critical patent/CN117440154B/zh
Publication of CN117440154A publication Critical patent/CN117440154A/zh
Application granted granted Critical
Publication of CN117440154B publication Critical patent/CN117440154B/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/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
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开一种考虑浮点数位拆分的深度图序列压缩方法,该方法首先将每张深度图的深度值映射到新的数值范围,并转换为二进制串;将所有二进制串的指数位存储为整数数组,使用整数序列压缩算法进行压缩;将所有二进制串的有效位转换为RGB图像,使用视频流压缩算法进行压缩。该方法将深度值浮点数的指数位和有效位拆分开,分别进行针对性压缩,在保证指数位精度的基础上充分压缩有效位;合理排布有效位在RGB图像的通道分布,降低压缩误差;通过复用经典视频流压缩算法,提高算法的整体鲁棒性。

Description

一种考虑浮点数位拆分的深度图序列压缩方法
技术领域
本发明涉及图像数据压缩领域,尤其涉及一种考虑浮点数位拆分的深度图序列压缩方法。
背景技术
图像压缩是数据压缩技术在数字图像上的应用,它的目的是减少图像数据中的冗余信息从而用更加高效的格式存储和传输数据。图像压缩分为有损数据压缩和无损数据压缩两种,其中无损压缩适用于医疗图像或者用于存档的扫描图像,有损压缩则更适用于人眼感知的自然图像。在3D计算机图形和计算机视觉中,深度图是一种图像或图像通道,包含与场景对象的表面到视点的距离有关的信息。深度图可以由3D扫描仪生成或从多个图像重建。
目前主流的深度图像的压缩算法主要包含以下几种:
1.基于标准编码格式的压缩方法:该方法使用JPEG-LS、JPEG-XR、PNG、TIFF、H.264、3D-HEVC等标准编码进行压缩。优点是可以直接复用标准的编码方法,缺点是不能针对深度图的内在特性进行压缩,且物体边缘通常会出现artifact;
2.基于平面分割的压缩方法:该方法使用Graph Cut算法检测并分割出深度图场景中的平面物体,对于每个平面物体单独进行压缩编码。优点是将场景沿深度值进行分类,压缩率高;缺点是对于复杂场景结果较差,且平面分割算法费时;
3.RVL算法深度图压缩算法:该方法是一种无损压缩算法,利用游程编码和变长编码进行压缩。优点是算法简单鲁棒,运行效率高,缺点是压缩率较低。
发明内容
为解决现有技术的不足,实现深度图像序列的快速、高质量压缩,本发明提出一种考虑浮点数位拆分的深度图序列压缩方法,具体技术方案如下:
一方面,一种考虑浮点数位拆分的深度图序列压缩方法,该方法包括以下步骤:
步骤一:遍历深度图序列的每张深度图的每个深度值dij,将深度值dij使用映射函数映射成一个数值vij,计算数值vij的浮点数二进制串Bij;其中,i∈{0, 1, 2, …, N-1},j∈{0, 1, 2, …, M-1},N为深度图的数量,M为每张深度图的深度值数量;
步骤二:对第i张深度图,将浮点数二进制串Bij的指数位依次转换为整数,并依次存储到整数数组Ei中;将所述浮点数二进制串Bij的有效位转换为像素值,依次存储到图像Fi中;
步骤三:使用整数序列压缩算法对整数数组Ei,i∈{0, 1, 2, …, N-1}进行编码,使用视频流压缩算法对图像序列{F0, F1, F2, …Fi, …FN-1}进行编码,完成对深度图序列的压缩。
进一步地,所述步骤一中,采用折回扫描法或者ZigZag扫描,将每一张深度图展开成一维深度值数组,其中数组长度为M,每个深度值都为一个单精度浮点数;二进制串Bij采用IEEE 754二进制浮点数算术标准。
进一步地,所述步骤一中的映射函数是一个预设的映射函数,由若干个参数进行控制,将深度值dij由实际的深度值范围[dmin, dmax]映射到预设的数值范围[vmin, vmax];该映射函数需满足如下条件:实际的深度值越小,映射后的数值精度越高。
进一步地,所述步骤二中,图像Fi的像素格式为 RGB8,存储二进制串Bij的有效位,其中有效位的高位部分分别存储在RGB三个通道的高位部分。
进一步地,所述步骤三中,整数数组Ei的每个元素为8位的unsigned short类型,使用的整数序列压缩算法为无损压缩算法,具体的编码过程分为如下几个步骤:
S3.1,使用差分编码算法处理整数数组Ei,得到一个差分序列DEi
S3.2,将差分序列DEi的每个元素都映射成一个正整数;
S3.3,使用游程编码处理差分序列DEi,压缩其中的0位;压缩后的数据由若干个编码节构成,每个编码节包含三部分:连续0位个数、连续非0位个数和连续非0位的位数据序列。
进一步地,所述步骤三中,视频流压缩算法通过码率来控制深度图的压缩率。
进一步地,所述步骤三中,最终的深度图序列压缩结果包括所有整数数组编码后的数据、图像序列编码后的数据以及映射函数的参数。
进一步地,有效位的高位部分分别存储在RGB三个通道的高位部分,具体包括:
将有效位的第0/1/2/8/9/10/16/17位放入到对应像素的R通道中,将有效位的第3/4/5/11/12/13/18/19位放入到对应像素的G通道中,最后将有效位的第6/7/14/15/20/21/22位放入对应像素的B通道中,并将B通道的最低位补0。
另一方面,一种考虑浮点数位拆分的深度图序列压缩装置,该装置包括一个或多个处理器,用于实现考虑浮点数位拆分的深度图序列压缩方法。
再一方面,一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现考虑浮点数位拆分的深度图序列压缩方法。
本发明的有益效果如下:
本发明的考虑浮点数位拆分的深度图序列压缩方法,该方法首先将每张深度图的深度值映射到新的数值范围,并转换为二进制串;将所有二进制串的指数位存储为整数数组,使用整数序列压缩算法进行压缩;将所有二进制串的有效位转换为RGB图像,使用视频流压缩算法进行压缩。该方法将深度值浮点数的指数位和有效位拆分开,分别进行针对性压缩,在保证指数位精度的基础上充分压缩有效位;合理排布有效位在RGB图像的通道分布,降低压缩误差;通过复用经典视频流压缩算法,提高算法的整体鲁棒性。
附图说明
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1为示例性实施例中一种考虑浮点数位拆分的深度图序列压缩方法的流程图。
图2为示例性实施例中考虑浮点数位拆分的深度图序列压缩算法示意图。
图3为示例性实施例中指数位整数数组游程编码压缩算法示意图。
图4为示例性实施例中有效位RGB图像像素存储格式示意图。
图5为示例性中的考虑浮点数位拆分的深度图序列压缩装置示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
还需要说明的是:在本申请中提及的“多个”是指两个或者两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在一个实施例中,如图1所示,一种考虑浮点数位拆分的深度图序列压缩方法,该方法首先将深度图序列中的每张深度图的深度值映射到新的数值范围,并转换为二进制串;将所有二进制串的指数位存储为整数数组,使用整数序列压缩算法进行压缩;将所有二进制串的有效位转换为RGB图像,使用视频流压缩算法进行压缩。
该方法具体包括以下步骤:
步骤一:遍历深度图序列的每张深度图的每个深度值dij,将深度值dij使用映射函数映射成一个数值vij,计算数值vij的浮点数二进制串Bij;其中,i∈{0, 1, 2, …, N-1},j∈{0, 1, 2, …, M-1},N为深度图的数量,M为每张深度图的深度值数量。
深度相机能够感知现实世界中的三维环境,由于深度相机提供更丰富的信息,它们在视觉引导机器人、检查和监控等应用中变得越来越重要。深度相机将获取到的深度值信息存储在深度图像中。深度图包含有关对象距特定视角或参考点的距离信息,每个像素都分配一个值来表示该像素与参考点的距离,从而用来表征深度相机捕捉到的三维场景的几何信息。
本实施例中,深度图采用16bit的位深度进行存储,深度值使用unsigned short类型表示,数值采样范围为[0, 65535];深度图的大小为720p,即为1280*720的图像分辨率,采集帧率为30hz;使用仿真深度相机在虚拟三维场景中采集深度图数据。深度图的数量N=1000,每张深度图的深度值数量M=1280*720。
在将一张深度图展开成一维深度值数组时,可以用折回扫描法或者ZigZag扫描。且映射函数是一个预设的映射函数,由若干个参数进行控制,将深度值dij由实际的深度值范围[dmin, dmax]映射到预设的数值范围[vmin, vmax];该映射函数需满足如下条件:实际的深度值越小,映射后的数值精度越高。
本实施例中,采用折回扫描法将每一张深度图展开成一维深度值数组。传统的图像读取时扫描换行时会从头开始,由于深度数据具有局部性,换行会出现距离值的跳跃,增加动态范围。折回扫描法将深度图以折回扫描的形式“拉直”成一维数据序列,减少边界突变的出现。每个深度值从[0, 65535]映射到[0, 1]范围,具体的映射公式为:
其中x为原始深度值,f(x)为映射后的深度值。在实际应用中,距离摄像头更近的深度值往往比更远的深度值更加重要,因此上述映射公式通过压缩远处深度值的数值范围进而扩展近处深度值的数值范围,提高了近处更重要的深度值的数据精度。
将映射后的深度值用单精度浮点数的二进制串表示,二进制串采用IEEE 754二进制浮点数算术标准,总共32位,分为三个部分:
(I)符号位,占1位;
(II)指数位,占8位;
(III)有效位,占23位。
由于深度值都是正数,所以符号位始终为0,不需要额外进行压缩存储。
步骤二:对第i张深度图,将浮点数二进制串Bij的指数位依次转换为整数,并依次存储到整数数组Ei中;将所述浮点数二进制串Bij的有效位转换为像素值,依次存储到图像Fi中。
图像Fi的像素格式为 RGB8,存储二进制串Bij的有效位,其中有效位的高位部分分别存储在RGB三个通道的高位部分。
本实施例中,采用IEEE 754二进制浮点数算术标准,指数位占8位,取值范围为[0,255],使用unsigned short数据类型存储,有效位占23位,依次存储到图像像素中。如图2所示,将二进制串的指数位依次存储到无符号短整型数组中,有效位依次存储到图像像素中。
步骤三:使用整数序列压缩算法对整数数组Ei,i∈{0, 1, 2, …, N-1}进行编码,使用视频流压缩算法对图像序列{F0, F1, F2, …Fi, …FN-1}进行编码,完成对深度图序列的压缩。
1. 使用整数序列压缩算法对整数数组Ei,i∈{0, 1, 2, …, N-1}进行编码
整数序列压缩算法是一类经典的无损压缩算法,在网络数据传输、文本数据压缩、搜索引擎索引压缩等领域都有大量应用。传统的整数序列压缩算法大致可分为以下几种:
(1)变长压缩
变长压缩以UTF8编码和Base-128变长编码为主要代表。UTF8是一种变长编码方式,使用1~4个字节表示一个符号。这种编码方式冗余度较高,每个字节都可以根据它的高位的若干比特确定它在整个二进制表示中的位置(比如是首个字节还是非首个字节),即使字节流中丢一些字节,也能定位出下个字符的起始字节,很多情况这种冗余是不必要的;Base-128变长编码的每个字节使用低7位表示数字,除了最后一个字节,其他字节的最高位都设置为1,并采用Little-Endian字节序。这种编码有效的前提是一个数字有比较大的可能性是小数字,也就是高位有比较多的0,也只适用于0和正整数。
(2)增量编码
增量编码是一种以顺序数据而不是完整文件之间的差异(增量)形式存储或传输数据的方式;更一般地,这称为数据差异。增量编码有时称为增量压缩,特别是在需要更改的存档历史的情况下,例如在版本控制软件中。在解压缩期间,每个增量都会添加到先前的值并重建原始值,实际的压缩算法仅存储增量。由于增量通常相对较小,因此压缩比会提高。但是,增量编码仅适用于排序序列,并且它会减慢某些操作的速度,例如在序列末尾附加一个值。
(3)位图编码
位图编码将N位无符号整数按照高N/2位分成若干个桶,即最多可能有2^(N-1)个桶,也被称为容器。存储数据时,按照数据的高N/2位查找容器(找不到就会新建一个),再将低N/2位放入容器中。也就是说,一个位图就是很多容器的集合。
本实施例中,整数数组Ei的每个元素为8位的unsigned short类型,考虑到二进制指数位短整数序列的特殊性,采用差分编码+游程编码混合编码算法进行压缩,具体的压缩过程分为如下几个步骤:
S3.1,使用差分编码算法处理整数数组Ei,得到一个差分序列DEi
整数数组Ei有M个元素,差分序列DEi有M-1个元素,差分序列DEi的第j个元素的值等于整数数组Ei的第j+1个元素的值与第j个元素的值的差,其中j∈{0, 1, 2, …, M-2}。
S3.2,将差分序列DEi的每个元素都映射成一个正整数。
默认差分序列DEi
的元素有正数也有负数,将正数映射成偶数,将负数映射成奇数,具体的映射函数如下:
其中h为原始差分序列DEi的数值,g(h)映射后的数值。
S3.3,使用游程编码处理差分序列DEi,压缩其中的0位;压缩后的数据由若干个编码节构成,每个编码节包含三部分:连续0位个数、连续非0位个数和连续非0位的位数据序列。
游程编码是一种无损压缩方法,其中显示冗余数据的序列存储为表示重复块及其在图像中出现的次数的单个数据值。之后在解压缩过程中,可以根据该信息准确地重建图像。这种类型的压缩最适合具有大量冗余像素的简单图像和动画,对于黑白图像尤其有用。对于复杂的图像和动画,如果冗余部分不多,游程编码甚至可以使文件大小变大而不是变小。另外,游程编码非常适合对差分数据进行压缩,因为差分数据的数值范围一般来说比较小,并且相同或者相近的数值会比较多。
如图3所示,差分序列的游程编码算法分为以下几个步骤:
(1)维护一个指针变量ptr,指针ptr默认指向差分序列的第一个元素;创建变量z_num存储0位的数量,默认值为0;创建变量nz_num存储非0位的数量,默认值为0;创建变量lastz存储上一个元素是否为0,默认为false;
(2)读取指针ptr指向的元素,如果为0,执行步骤(3);否则执行步骤(4);
(3)设置z_num=z_num+1,如果lastz为false,则将nz_num写入游程编码的结果序列中,并设置nz_num=0,设置lastz=true;执行步骤(5);
(4)设置nz_num=nz_num+1,将当前非0元素值写入游程编码的结果序列中;如果lastz为true,则将z_num写入游程编码的结果序列中,并设置z_num=0;执行步骤(5);
(5)如果指针ptr已经移动到差分序列的最后一个元素,结束游程编码;否则指针ptr向后移动一位,继续执行步骤(2)。
2. 使用视频流压缩算法对图像序列{F0, F1, F2, …Fi, …FN-1}进行编码
视频流压缩算法是一种将原始的视频帧序列进行空间和时间冗余信息压缩的算法。视频流压缩可以定义为通过丢弃一些信息或质量来减小视频的文件大小。视频流压缩有几个明显的好处:无论是基于云的存储还是本地存储,它都可以确保存储空间的最佳利用并降低成本;它可以加快文件传输速度,从而减少视频缓冲实例;压缩视频更容易传输和使用,并且占用的网络带宽更少;压缩可以通过删除冗余或难以察觉的数据位来提高图形、音频、视频和图像的质量。常用的视频流算法包括H.264、H.265、VP9等:
(1)H.264
H.264是一种广泛应用于无线视频传输领域的视频压缩算法,具有良好的压缩比和较好的视频质量,是当前应用最广泛的无线视频传输压缩算法之一。H.264的压缩原理是将视频分成不同的块(通常是16x16或者8x8),然后对每个块进行预测和编码。具体来说,对于每个块,H.264会对其进行运动估计和运动补偿,从而减少编码时需要传输的像素点数。此外,H.264还支持不同的编码参数,比如帧间预测、变换、量化等,以进一步提高视频压缩比。
(2)H.265
H.265是一种新型的视频压缩算法,也是H.26x系列编码标准的一员。与H.264相比,H.265在压缩比和视频质量方面都有了明显的提高。H.265的压缩原理与H.264类似,但在编码参数方面进行了优化。具体来说,H.265引入了更高效的预测模式、更灵活的变换方式和更优秀的量化矩阵,从而提高了视频压缩比。另外,H.265还支持高达10位的色深,可以提供更细腻的色彩还原效果。
(3)VP9
VP9是由Google开发的一种新型视频压缩算法,支持从240p到4K等多种分辨率和帧率的视频编码,并且具有良好的压缩比和视频质量,是当前应用最广泛的无线视频传输压缩算法之一。VP9的压缩原理与H.26x系列编码算法有所不同,采用的是基于无参考帧的预测算法,可以进一步提高视频压缩比。此外,VP9还采用了更灵活的帧间预测和自适应变换方式,从而进一步提高了视频压缩效率。
一般来说,所有视频流编码算法都属于有损压缩,即在编码的过程中会丢失数据的精度。本实施例中,通过码率来控制视频流编码算法的数据精度丢失程度。码率,又叫比特率,是指视频流信号每秒处理的比特数,体现了每秒内视频数据的信息量。可用信息越多,视频图像就越好,但也代表着视频流压缩的空间越有限。这意味着降低比特率会增加对视频的压缩程度,并且增加视频数据的精度丢失。比特率通常以每秒位数 (bit/s) 表示,其他比特率单位为千比特每秒 (kbit/s,通常缩写为“kbps”)。压缩率则反映了原始数据量与减少后的数据量之间的比率。低压缩率会带来更好的图像质量,但也需要更多的存储空间。比特率与压缩率成反比关系,实际情况中需要权衡这两个压缩参数去获得最佳的压缩效果。
本实施例中,采用经典的H.264视频流压缩算法对生成的存储有效位的图像序列进行编码。H.264视频流压缩算法的数据精度误差比较稳定,即随着码率的下降,每个像素的RGB通道数据的精度误差会稳定增加,基本呈单调递增的趋势。如图4所示,本实施例将有效位的第0/1/2/8/9/10/16/17位放入到对应像素的R通道中,将有效位的第3/4/5/11/12/13/18/19位放入到对应像素的G通道中,最后将有效位的第6/7/14/15/20/21/22位放入对应像素的B通道中,同时将B通道的最低位补0,保证有效位的高位部分分别存储在RGB三个通道的高位部分。由于上述数据精度误差的稳定性,保证了RGB三个通道高位数据的数据误差比低位数据更小,从而使得存储在RGB通道高位数据的有效位的高位数据的精度误差也更小,充分降低有效位的数据精度损失,达到最大化的深度值压缩质量。
本实施例中,调用ffmpeg多媒体编码库实现具体的H.264视频流压缩算法,设置视频码率为500000bit/s,每10帧插入一帧关键帧,压缩视频质量设置为slow,完成最终的视频流压缩。
本实施例中,最终的深度图序列压缩结果包括所有整数数组编码后的数据、图像序列编码后的数据以及映射函数f(x)的参数,方便在接收端完成深度图序列的解压操作。
与前述的实施例相对应,本发明的另一个实施例,还提供一种考虑浮点数位拆分的深度图序列压缩装置的实施例,如图5所示,该装置包括一个或多个处理器,用于实现上述考虑浮点数位拆分的深度图序列压缩方法。
本发明考虑浮点数位拆分的深度图序列压缩装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的考虑浮点数位拆分的深度图序列压缩方法。
计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(SmartMedia card, SMC)、SD卡、闪存卡(Flash card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储己经输出或者将要输出的数据。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。

Claims (10)

1.一种考虑浮点数位拆分的深度图序列压缩方法,其特征在于,该方法包括以下步骤:
步骤一:遍历深度图序列的每张深度图的每个深度值dij,将深度值dij使用映射函数映射成一个数值vij,计算数值vij的浮点数二进制串Bij;其中,i∈{0, 1, 2, …, N-1},j∈{0, 1, 2, …, M-1},N为深度图的数量,M为每张深度图的深度值数量;所述映射函数需满足如下条件:实际的深度值越小,映射后的数值精度越高;
步骤二:对第i张深度图,将浮点数二进制串Bij的指数位依次转换为整数,并依次存储到整数数组Ei中;将所述浮点数二进制串Bij的有效位转换为像素值,依次存储到图像Fi中;
步骤三:使用整数序列压缩算法对整数数组Ei,i∈{0, 1, 2, …, N-1}进行编码,使用视频流压缩算法对图像序列{F0, F1, F2, …Fi, …FN-1}进行编码,完成对深度图序列的压缩。
2.根据权利要求1所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,所述步骤一中,采用折回扫描法或者ZigZag扫描,将每一张深度图展开成一维深度值数组,其中数组长度为M,每个深度值都为一个单精度浮点数;二进制串Bij采用IEEE 754二进制浮点数算术标准。
3.根据权利要求1所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,所述步骤一中的映射函数是一个预设的映射函数,由若干个参数进行控制,将深度值dij由实际的深度值范围[dmin, dmax]映射到预设的数值范围[vmin, vmax]。
4.根据权利要求1所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,所述步骤二中,图像Fi的像素格式为 RGB8,存储二进制串Bij的有效位,其中有效位的高位部分分别存储在RGB三个通道的高位部分。
5. 根据权利要求1所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,所述步骤三中,整数数组Ei的每个元素为8位的unsigned short类型,使用的整数序列压缩算法为无损压缩算法,具体的编码过程分为如下几个步骤:
S3.1,使用差分编码算法处理整数数组Ei,得到一个差分序列DEi
S3.2,将差分序列DEi的每个元素都映射成一个正整数;
S3.3,使用游程编码处理差分序列DEi,压缩其中的0位;压缩后的数据由若干个编码节构成,每个编码节包含三部分:连续0位个数、连续非0位个数和连续非0位的位数据序列。
6.根据权利要求1所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,所述步骤三中,视频流压缩算法通过码率来控制深度图的压缩率。
7.根据权利要求1所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,所述步骤三中,最终的深度图序列压缩结果包括所有整数数组编码后的数据、图像序列编码后的数据以及映射函数的参数。
8.根据权利要求4所述的考虑浮点数位拆分的深度图序列压缩方法,其特征在于,有效位的高位部分分别存储在RGB三个通道的高位部分,具体包括:
将有效位的第0/1/2/8/9/10/16/17位放入到对应像素的R通道中,将有效位的第3/4/5/11/12/13/18/19位放入到对应像素的G通道中,最后将有效位的第6/7/14/15/20/21/22位放入对应像素的B通道中,并将B通道的最低位补0。
9.一种考虑浮点数位拆分的深度图序列压缩装置,其特征在于,该装置包括一个或多个处理器,用于实现权利要求1~8中任意一项所述的考虑浮点数位拆分的深度图序列压缩方法。
10.一种计算机可读存储介质,其特征在于,其上存储有程序,该程序被处理器执行时,实现权利要求1~8中任意一项所述的考虑浮点数位拆分的深度图序列压缩方法。
CN202311768148.5A 2023-12-21 2023-12-21 一种考虑浮点数位拆分的深度图序列压缩方法 Active CN117440154B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311768148.5A CN117440154B (zh) 2023-12-21 2023-12-21 一种考虑浮点数位拆分的深度图序列压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311768148.5A CN117440154B (zh) 2023-12-21 2023-12-21 一种考虑浮点数位拆分的深度图序列压缩方法

Publications (2)

Publication Number Publication Date
CN117440154A CN117440154A (zh) 2024-01-23
CN117440154B true CN117440154B (zh) 2024-04-19

Family

ID=89550215

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311768148.5A Active CN117440154B (zh) 2023-12-21 2023-12-21 一种考虑浮点数位拆分的深度图序列压缩方法

Country Status (1)

Country Link
CN (1) CN117440154B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062816A (zh) * 2014-02-26 2016-10-26 汤姆逊许可公司 用于对hdr图像进行编码和解码的方法和装置
WO2017072218A1 (en) * 2015-10-30 2017-05-04 Agfa Healthcare Compressing and uncompressing method for high bit-depth medical gray scale images
CN109636865A (zh) * 2017-10-06 2019-04-16 想象技术有限公司 数据压缩
US10277771B1 (en) * 2014-08-21 2019-04-30 Oliver Markus Haynold Floating-point camera
CN110888623A (zh) * 2019-11-25 2020-03-17 集美大学 数据转换方法、乘法器、加法器、终端设备及存储介质
CN114503439A (zh) * 2019-09-09 2022-05-13 谷歌有限责任公司 压缩表现混合压缩性的数据
CN116594572A (zh) * 2023-07-17 2023-08-15 北京四维纵横数据技术有限公司 浮点数流式数据压缩方法、装置、计算机设备及介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106062816A (zh) * 2014-02-26 2016-10-26 汤姆逊许可公司 用于对hdr图像进行编码和解码的方法和装置
US10277771B1 (en) * 2014-08-21 2019-04-30 Oliver Markus Haynold Floating-point camera
WO2017072218A1 (en) * 2015-10-30 2017-05-04 Agfa Healthcare Compressing and uncompressing method for high bit-depth medical gray scale images
CN109636865A (zh) * 2017-10-06 2019-04-16 想象技术有限公司 数据压缩
CN114503439A (zh) * 2019-09-09 2022-05-13 谷歌有限责任公司 压缩表现混合压缩性的数据
CN110888623A (zh) * 2019-11-25 2020-03-17 集美大学 数据转换方法、乘法器、加法器、终端设备及存储介质
CN116594572A (zh) * 2023-07-17 2023-08-15 北京四维纵横数据技术有限公司 浮点数流式数据压缩方法、装置、计算机设备及介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
律帅 ; 达飞鹏 ; 黄源 ; .基于数据类型转换的点云快速有损压缩算法.图学学报.2016,(02),全文. *

Also Published As

Publication number Publication date
CN117440154A (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
US11044478B2 (en) Compression with multi-level encoding
Sneyers et al. FLIF: Free lossless image format based on MANIAC compression
US7245235B2 (en) Lossless adaptive encoding and decoding of integer data
KR101461209B1 (ko) 2d 매트릭스들에 인코딩 파라미터들을 저장하는 이미지 압축을 위한 방법 및 장치
US7126506B2 (en) Lossless adaptive encoding and decoding of integer data
CN108028941B (zh) 用于通过超像素编码和解码数字图像的方法和装置
JP3978478B2 (ja) 推定画素値により固定速度のブロック単位の画像圧縮を行うための装置及び方法
US8254700B1 (en) Optimized method and system for entropy coding
JP5935695B2 (ja) 埋め込みグラフィック符号化:並列復号に向けて並べ替えられたビットストリーム
US10785493B2 (en) Method of compressing and decompressing image data
WO2015176280A1 (en) Re-encoding image sets using frequency-domain differences
CN111131828B (zh) 一种图像压缩方法、装置、电子设备和存储介质
JP4801778B2 (ja) 映像圧縮符号化装置、映像復元装置、映像圧縮プログラム、及び、映像復元プログラム
KR101346942B1 (ko) 벡터 임베디드 그래픽 코딩
JP6727011B2 (ja) 画像符号化装置及びその制御方法
JP2006129467A (ja) 整数データの無損失適応符号化・復号化
US11153578B2 (en) Gradient texturing compression codec
CN112887713B (zh) 图片压缩、解压缩方法和装置
CN117440154B (zh) 一种考虑浮点数位拆分的深度图序列压缩方法
KR100717002B1 (ko) 영상 부호화 및 복호화 장치와, 그 방법, 및 이를 수행하기위한 프로그램이 기록된 기록 매체
KR20000029715A (ko) 화상매핑장치및방법과화상생성장치및방법
JP5809574B2 (ja) 符号化方法、復号方法、符号化装置、復号装置、符号化プログラム及び復号プログラム
CN111479116A (zh) 等比特精度预测、映射和分段编码的数据压缩方法和装置
US20240129473A1 (en) Probability estimation in multi-symbol entropy coding
US11854235B1 (en) Lossless integer compression scheme

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