一种图片编码的方法和设备与流程

文档序号:17796452发布日期:2019-05-31 20:48阅读:250来源:国知局
一种图片编码的方法和设备与流程

本发明涉及图片传输领域,特别涉及一种图片编码的方法和设备。



背景技术:

在ar应用中,数据需要在客户端和服务器端之间不断传输,其中最重要的数据是图片和拍摄当前图片的拍摄相机的姿态数据,在传输的过程中,这两者有其一丢失,那么这一帧图片的数据都作废,前端接收不到任何有效信息,就不能做出正常的反应,从而导致应用的效果也会受到影响。因此,如何提高数据传输过程中的一致性,是应用效果得到保障的重要前提。

由此,目前需要一种方案可以避免该缺陷。



技术实现要素:

针对现有技术中的缺陷,本发明提出了一种图片编码的方法和设备,实现将图片信息与rt矩阵相关联,以确保图片和与之对应的rt矩阵的一致性,避免了数据部分丢失问题。

具体的,本发明提出了以下实施例:

本发明实施例提出了一种图片编码的方法,包括:

获取预设图片以及拍摄所述预设图片的摄像装置的rt矩阵;其中,所述rt矩阵包括旋转矩阵与位移矩阵;

将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据;

将所述插入数据写入所述预设图片,生成待传输图片进行传输。

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0≠0,1+r11+r22+r33>0;q={q0,q1,q2,q3};

其中,

所述q为四元数;所述旋转矩阵为

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0趋近于0,则max{r11,r22,r33}=r11时;q={q0,q1,q2,q3};

其中,

所述1为四元数;所述旋转矩阵为

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0趋近于0,则当max{r11,r22,r33}=r22时,q={q0,q1,q2,q3};

所述q为四元数;所述旋转矩阵为

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0趋近于0,则当max{r11,r22,r33}=r33时,q={q0,q1,q2,q3};

所述q为四元数;所述旋转矩阵为

在一个具体的实施例中,所述“将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据”,通过以下公式来完成:

s={q0,q1,q2,q3,t1,t2,t3};

其中,s为插入数据;所述rt矩阵为

在一个具体的实施例中,所述预设图片中包括多个按序排列的预设数据块;

所述“将所述插入数据写入所述预设图片,生成待传输图片进行传输”,包括:

依次按序读取所述预设图片中的各预设数据块;

创建数据为空的空图片,将所读取的数据块依次写入到所述空图片中,并当检测到下一个待写入数据块为指定的标识数据块,将写入有所述插入数据的数据块写入所述空图片,并继续进行所述标识数据块的写入操作,直到最终完成所有预设数据块的写入,生成待传输图片;

传输所述待传输图片。

在一个具体的实施例中,所述预设图片为png格式的图片,所述标识数据块为iend数据块,所述写入有所述插入数据的数据块为text数据块。

在一个具体的实施例中,该方法还包括:

当接收端接收到所述待传输图片时,获取所述待传输图片中位于iend数据块前一个的text数据块;

对所获取的text数据块进行解析,以获取到所述插入数据。

本发明实施例还提出了一种图片传输的设备,包括:

获取模块,用于获取预设图片以及拍摄所述预设图片的摄像装置的rt矩阵;其中,所述rt矩阵包括旋转矩阵与位移矩阵;

转换模块,用于将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据;

传输模块,用于将所述插入数据写入所述预设图片,生成待传输图片进行传输。

以此,本发明实施例提出了一种图片编码的方法和设备,其中该方法包括:获取预设图片以及拍摄所述预设图片的摄像装置的rt矩阵;其中,所述rt矩阵包括旋转矩阵与位移矩阵;将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据;将所述插入数据写入所述预设图片,生成待传输图片进行传输。实现将图片信息与rt矩阵相关联,以确保图片和与之对应的rt矩阵的一致性,避免了数据部分丢失问题。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本发明实施例提出的一种图片编码的方法的流程示意图;

图2为本发明实施例提出的一种图片编码的方法中所涉及到的png文件的格式结构示意图;

图3为本发明实施例提出的一种图片编码的设备的结构示意图。

具体实施方式

在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本公开的各种实施例限于在此公开的特定实施例的意图,而是应将本公开理解为涵盖落入本公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。

在本公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本公开的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本公开的各种实施例中被清楚地限定。

实施例1

本发明实施例1公开了一种图片编码的方法,如图1所示,包括以下步骤:

步骤101、获取预设图片以及拍摄所述预设图片的摄像装置的rt矩阵;其中,所述rt矩阵包括旋转矩阵与位移矩阵;

具体的,预设图像可以为拍摄视频得到的视频帧中的图片,具体的可以从摄像装置获取到所拍摄的预设图像,并获取到摄像装置拍摄该预设图片的rt矩阵,也可以是前端设备将视频帧传输给服务器端后,服务器端计算当前视频帧的姿态信息rt矩阵。

步骤102、将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据;

在获取到rt矩阵之后,会进行转换,具体的,所述rt矩阵为其中,rij表示旋转,t表示位移。旋转矩阵为

通过四元数来表示旋转矩阵,四元数有以下优点:四元数不会有欧拉角存在的万向锁(gimballock)问题;四元数由4个数组成、旋转矩阵需要9个数;两个四元数之间更容易插值;旋转矩阵在多次运算后会积攒误差,需要分别对其做规范化和正交化,对四元数规范化更容易。

具体转换为四元数q={q0,q1,q2,q3}。

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0≠0,1+r11+r22+r33>0;q={q0,q1,q2,q3};

其中,

所述q为四元数;所述旋转矩阵为

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0趋近于0,则max{r11,r22,r33}=r11时;q={q0,q1,q2,q3};

其中,

所述1为四元数;所述旋转矩阵为

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0趋近于0,则当max{r11,r22,r33}=r22时,q={q0,q1,q2,q3};

所述q为四元数;所述旋转矩阵为

在一个具体的实施例中,所述将所述旋转矩阵转换为四元数,通过以下公式来完成:

当q0趋近于0,则当max{r11,r22,r33}=r33时,q={q0,q1,q2,q3};

所述q为四元数;所述旋转矩阵为

在一个具体的实施例中,所述“将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据”,通过以下公式来完成:

s={q0,q1,q2,q3,t1,t2,t3};

其中,s为插入数据;所述rt矩阵为

步骤103、将所述插入数据写入所述预设图片,生成待传输图片进行传输。

在一个具体的实施例中,所述预设图片中包括多个按序排列的预设数据块;

所述步骤103中的“将所述插入数据写入所述预设图片,生成待传输图片进行传输”,包括:

依次按序读取所述预设图片中的各预设数据块;

创建数据为空的空图片,将所读取的数据块依次写入到所述空图片中,并当检测到下一个待写入数据块为指定的标识数据块,将写入有所述插入数据的数据块写入所述空图片,并继续进行所述标识数据块的写入操作,直到最终完成所有预设数据块的写入,生成待传输图片;

传输所述待传输图片。

在一个具体的实施例中,所述预设图片为png格式的图片,所述标识数据块为iend数据块,所述写入有所述插入数据的数据块为text数据块。

具体的,png格式的文件(包括图片)的格式如图2所示,除了开始的8个字节是固定的,后面的格式都是一个一个的数据块结构(也即chunk),如图2所示。每个chunk的结构是固定的:4个字节的数据长度,4个字节的chunk类型,不定长度的数据内容,4个字节的crc校验码。类型为text的数据块是文本信息数据块,可以有多个text数据块。本发明的方案中为png图片增加一个text的chunk,将这个数据块写入到结束标识iend的chunk之前。这样既不影响图片的显示,也顺利将插入数据写入到png图片中。

以此写入步骤:对于原始图片,先获取图片的前8个字节数据,然后依次读取数据块;对于每个数据块先读取chunk的前四个字节,得到数据的长度,再读取4个字节,得到数据chunk的类型;创建一张空的png图片,将读取的数据依次写入到空的图片中,直到数据块的类型为iend;当数据块的类型为iend时,写入添加的text数据块,依次写入数据长度,数据块类型,数据内容以及crc校验码;最后写入iend数据块。

在一个具体的实施例中,还包括:

当接收端接收到所述待传输图片时,获取所述待传输图片中位于iend数据块前一个的text数据块;

对所获取的text数据块进行解析,以获取到所述插入数据。

具体的,后续,将编码好的png图片传输给前端并解析图片数据获得姿态信息。

前端读取图片数据,取iend数据块的前面一个text数据块内容进行解析,得到姿态信息s={q0,q1,q2,q3,t1,t2,t3}。

实施例2

本发明实施例2还公开了一种图片编码的设备,如图3所示,包括:

获取模块201,用于获取预设图片以及拍摄所述预设图片的摄像装置的rt矩阵;其中,所述rt矩阵包括旋转矩阵与位移矩阵;

转换模块202,用于将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据;

传输模块203,用于将所述插入数据写入所述预设图片,生成待传输图片进行传输。

具体的,本发明实施例还公开有其他相关特征,具体的特征请参见实施例1中的描述,在此不再进行赘述。

本发明实施例提出了一种图片编码的方法和设备,其中该方法包括:获取预设图片以及拍摄所述预设图片的摄像装置的rt矩阵;其中,所述rt矩阵包括旋转矩阵与位移矩阵;将所述旋转矩阵转换为四元数后拼接所述位移矩阵生成与所述rt矩阵对应的插入数据;将所述插入数据写入所述预设图片,生成待传输图片进行传输。实现将图片信息与rt矩阵相关联,以确保图片和与之对应的rt矩阵的一致性,避免了数据部分丢失问题。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1