一种使用IMU数据的视频编码、解码方法,XR设备和计算机存储介质
文献发布时间:2023-06-19 11:14:36
技术领域
本发明涉及视频编解码领域,尤其涉及一种使用IMU数据的视频编码、解码方法,XR设备和计算机存储介质。
背景技术
在大多数拍摄的视频序列中,相邻图像的内容非常相似,其背景画面变化极小,因此不需要对每幅图像的全部信息都进行编码,而只需要将当前图像中运动物体的运动信息传给解码器,利用前一图像内容以及当前图像的运动信息即可恢复当前图像,这样可以有效的节省比特率。
目前XR设备(AR、MR、VR等)上的远程协作、实时视频通话、实时视频上云存储备份、视频本地压缩等,都是在沿用成熟的H.264/HEVC等方案。现有技术方案中,主流实时远程协作仍为H.264,编码端复杂度较HEVC低;主流的存储方案中的非实时编码器多为复杂度更高压缩效率也更高的HEVC;H.264/HEVC在编码的过程中,编码都是通过帧内以及帧间预测进行,考虑的都是去除视频帧本身的上下文冗余信息(空间和时间);视频帧的空间冗余是通过帧内预测进行编码的:H.264会完整的遍历9种帧内预测模式,每个方向都会进行一次完整的预测、变换、量化、反量化、反变换后进行码率比较才得到最佳选择;类似的,H.265供需要遍历35种模式,复杂度更高;视频帧的时间冗余是通过帧间预测进行编码的:在一定范围内寻找与当前帧最匹配的帧来做运动估计,得到运动矢量。
在一些利用XR设备(例如AR头显、MR头显)进行视频拍摄场景中,例如远程协作的过程中,佩戴XR设备的用户会和远端的专家进行视频通讯,XR设备会将用户视野内的视频图像拍摄下来传送给专家端,此时XR设备拍摄的场景主要是针对固定的场景,且工厂一般都位于偏远地区,网络环境不好。传统的视频编解码方案只考虑软件方案,没有发挥XR设备上各种传感器的最大价值。
发明内容
本发明的目的在于提供一种使用IMU数据的视频编码、解码方法,可以提高视频编解码的效率,并在网络传输环境较差的情况下,在丢帧的情况下,提高视频传输的质量。
根据本发明的第一方面,本发明的一个或多个实施例提供了一种使用IMU数据的视频编码方法,包括:获取原始视频数据流拍摄时的IMU数据,基于所述IMU数据,对原始视频数据流进行运动估计,基于所述运动估计的结果,对原始视频数据流进行帧间预测,并基于所述帧间预测的结果,对原始视频数据流进行压缩,以获得压缩后的视频数据流,将IMU数据和所述压缩后的视频数据流进行封装。
根据本发明的第二方面,本发明的一个或多个实施例提供了一种XR设备,其特征在于,包括摄像头、IMU传感器、处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,执行上述第一方面的步骤。
根据本发明的第三方面,本发明的一个或多个实施例提供了一种使用IMU数据的视频解码方法,包括,获取包含IMU数据的压缩后的视频数据流,若在视频解码过程中,出现帧间预测信息的丢失,则使用IMU数据对视频数据流进行运动估计,基于所述运动估计的结果,对原始视频数据流进行帧间预测,并基于所述帧间预测的结果,对所述视频数据流进行解码。
根据本发明的第四方面,本发明的一个或多个实施例提供了一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如本发明第三方面所述的步骤。
通过利用IMU信息对视频编码进行帧间预测,节省了帧间预测时的360°方向搜索及对视频编解码的遍历执行,也可以将能利用每一帧对应的旋转信息和加速度信息,实现更高鲁棒性的解码,可以提高视频编解码的效率,特别是在网络较差的情况下提升视频通讯的质量。
附图说明
图1是根据本发明一个或多个实施例的使用IMU数据进行视频编码的方法的流程框图;
图2是根据本发明的一个或多个实施例的XR设备的空间三维坐标的示意图;
图3是根据本发明的一个或多个实施例的XR设备的运动估计的示意图;
图4是根据本发明的一个或多个实施例的对原始视频数据流进行帧间预测的一个示意图;
图5是根据本发明一个或多个实施例的使用IMU数据进行视频解码的方法的流程框图。
具体实施方式
为更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种使用IMU数据的视频编码、解码方法的具体实施方式、结构、特征及其功效,详细说明如后。
根据本发明的一个方面,如图1所示,示出了根据本发明一个或多个实施例的使用IMU数据进行视频编码的方法的流程框图,具体包括:
S1、获取原始视频数据流拍摄时的IMU数据;
S2、基于所述IMU数据,对原始视频数据流进行运动估计;
S3、基于所述运动估计的结果,对原始视频数据流进行帧间预测,并基于所述帧间预测的结果,对原始视频数据流进行压缩,以获得压缩后的视频数据流;
S4、将IMU数据和所述压缩后的视频数据流进行封装。
在步骤S1中,获取原始视频数据流拍摄时的IMU数据。具体地,在拍摄视频数据流的XR设备上包括IMU传感器(惯性传感器),IMU传感器被配置为随着摄像头进行视频拍摄,实时记录IMU数据。通过IMU数据以反映XR设备在拍摄视频数据流的时候的移动和旋转,并估算相应的移动和旋转的量。在一个或多个实施例中,XR设备为AR眼镜、MR眼镜、AR头环等近眼显示设备。XR设备获取的IMU数据可以和拍摄时间相关联,或者和视频帧相关联,即确保获取的IMU数据可以对应上同时拍摄的视频数据流。在一个优选的实施例中,由于IMU传感器获取数据的频率通常都大于视频的帧率,即一个视频帧会对应多个IMU数据,因此可以将和原始视频数据流的每一帧对应的时间内的IMU数据进行均值滤波,并将均值滤波后的IMU数据和每一帧进行关联,以减少和视频数据流关联的IMU数据的数据量。
在步骤S2中,基于所述IMU数据,可以对原始视频数据流进行运动估计。运动估计的原理是将视频数据流中的每一帧分成许多互不重叠的区块,并认为区块内所有像素的位移量都相同,然后对每个区块,在参考帧的某一给定搜索范围内,根据一定的匹配准则找出与当前块最相似的块,即匹配块,匹配块与当前块的相对位移即为运动矢量(motionvector,MV),得到运动矢量的过程被称为运动估计。
在其中一个实施例中,若XR设备拍摄的场景中不存在快速移动的物体,则视频数据流中的运动矢量可以认为是由XR设备的移动和旋转决定,因此XR设备的移动和MV可以匹配。在另一个实施例中,若拍摄的场景中存在快速移动的物体,则由于物体的移动和XR设备的移动两者的影响,IMU数据计算出来的XR设备的移动和MV无法匹配。因此,可以通过判断所述原始视频数据流拍摄中的是否包含运动物体,若是,则不使用IMU数据进行运动估计。具体地,在其中一个实施例中,可以使用用户输入或预先设置的方式,来确定是否启动步骤S2。在另一个实施例中,也可以通过CV算法中的运动物体检测的算法,来判断拍摄的场景中是否存在快速移动的物体。
在步骤S2的一些实施方式中,还可以判断所述IMU数据中的加速度和角速度的范数是否大于某一阈值,若为否,则不使用IMU数据进行运动估计。可以使用IMU数据的一范数或二范数是否大于某一阈值,来判断XR设备是否有明显的移动,如果可以通过IMU数据判断XR设备基本上保持静止状态,则可以不使用IMU数据进行运动估计。
在步骤S2的一些实施方式中,进一步包括:利用IMU数据中的加速度,估计摄像头FOV的移动方向,利用IMU数据中的角速度,估计摄像头FOV的旋转方向,通过所述移动方向和旋转方向计算拍摄原始视频数据流的摄像头FOV的运动矢量,并根据所述运动矢量进行运动估计。
以下对步骤S2的运动估计的算法进行示例性的详细说明。如图2所述,示出了基于XR设备的空间三维坐标分布的示意图,其中Z轴是XR设备的摄像头FOV的方向,即朝向XR设备拍摄的正前方,X轴为旁观者面对XR设备时观察XR设备平面从左向右方向,Y轴为XR设备垂直于XZ平面朝上方向,即可以理解为垂直于地面的方向。其中,定义AccX、AccY、AccZ分别是IMU数据在YZ/XZ/XY平面的加速度,其可由IMU传感器直接或间接获取;定义Wx、Wy、Wz分别为设备绕X、Y、Z轴旋转时的角速度,其也可由IMU传感器直接或间接获取。定义AngleX、AngleY、AngleZ分别为Δτ时间内的角度变化值,其中Δτ由当IMU数据的时间戳current_timestamp减去上一次IMU数据的时间戳prev_timestamp。在此基础上,分别记为α、β、γ为AngleX、AngleY、AngleZ的简写,其计算方式如下:
△τ=current_timestamp-prev_timestamp
其中,AngleX_prev、AngleY_prev、AngleZ_prev分别是上一次公式计算的值,即上一时刻的角度值。
具体的,在其中一个或多个实施例中,针对IMU传感器中的加速度的数据,可以按照以下算法处理。如果AccX、AccY、AccZ都小于ξ(ξ为一个近于0的值,可以不失一般性取值0.1),则XR设备在各轴无加速度,不做加速度相关处理;如果AccX、AccY、AccZ某两个大于ξ,只有另一个大于ξ,不失一般性,假设在Z轴方向上具备加速度,则当前宏块的帧间预测方向可以设定为上一帧的同一位置;如果AccX、AccY、AccZ某一个轴上加速度小于ξ,有两个轴加速度大于ξ,不失一般性,假设AccX、AccY大于ξ,则在XY平面内的运动角度θ=arctan(AccY/AccX)。由于IMU的运动与真实自然世界的运动呈现相对应、相反应,因此XR设备有Frame T-1运动到Frame T时刻时,设备呈现的运动方向是θ。但在Frame T时刻,使用Frame T-1时刻的宏块进行预测时,其运动搜索的方向为90-θ=90-arctan(AccY/AccX)。
在另一些实施例中,如果XR设备的IMU传感器获取了角速度的数据,则优先考虑XR设备的转向问题。根据上面的公式,可知α、β、γ分别为设备绕X、Y、Z轴旋转时的偏移角度。如果Wx、Wy、Wz都小于ξ(ξ为一个近于0的值,可以不失一般性取值0.1),则XR设备在各轴无角速度,不做角速度相关处理;如果Wx、Wy、Wz任意方向的旋转角度超过FOV视场角,则可以认为XR设备快速转动过程中,此时帧间预测已无意义,可以不作角速度处理;如果Wx、Wy、Wz某一个大于ξ,另外两个小于ξ,不失一般性,假设绕Z轴旋转,则当前宏块的帧间预测方向来自于上一帧的直接方向(对应位置方向)可以按照如下的方式进行估算。如图3所示,设XR设备在XY平面旋转角度为Wz=θ,即frame t0时刻设备中的环境物体出D’位置,frame t1时刻,设备中所显示的环境物体任处于D位置,但在t1时刻进行帧间预测时,相当于在用t0时刻的D’进行帧间搜索预测D处的宏块,因此需要计算∠DD'X”。最终D相对于D’的方向为:
∠XOX'=∠DOD'=∠YOY'=θ
∠OD'D=∠ODD'=90-θ/2
∠OD'Y=90-θ
∠DD'X”=180-∠OD'Y-∠OD'D=3θ/2
即在确定帧间搜索时,可以从D’出的坐标系方向-3θ/2进行搜索,从而提升步骤S3中的帧间预测的效率。
在佩戴XR设备的人朝Z轴方向运动时,利用IMU的在XR设备的视觉方向(Z轴)的加速度,可以计算出设备在各方向运动的运动趋势、以及运动的距离,从而确定设备的运动轨迹,确定帧间预测的方向,减少对无效方向的挨个遍历和检索。在Z轴方向不存在运动的情况下,可以利用IMU的X/Y方向的加速度,可以计算出XR设备在各方向运动的运动趋势、以及运动的距离,从而确定设备的水平或垂直移动的轨迹,直接确定帧间预测的方向,减少对无效方向的遍历和搜索。利用IMU的陀螺仪信息,可以预计XR设备的旋转角度,进而直接确定帧间预测的搜索方向,减少对无效角度的遍历和检索,大幅度提升编码速度。
在步骤S3中,基于所述运动估计的结果,对原始视频数据流进行帧间预测,并基于所述帧间预测的结果,对原始视频数据流进行压缩,以获得压缩后的视频数据流。具体地,帧间预测指当前图像中待编码块从邻近已编码图像中预测得到参考块的过程,目的是去除视频信号的时间冗余。在其中一个实施例中,可以基于在步骤S2获得的运动估计的结果,来确定运动搜索的起始方向,从而加快帧间预测的过程。在另一个实施例中,可以基于在步骤S2获得的运动估计的结果,计算运动搜索的距离,从而加快帧间预测的过程。在另一个实施例中,可以基于在步骤S2获得的运动估计的结果,确定运动搜索的方向和距离,从而加快帧间预测的过程。基于帧间的预测的结果,可以对原始视频数据流进行压缩,压缩的方法可以采用H.264、H.265等视频协议定义的压缩算法,从而获得压缩后的视频数据流。
如图3所示,示出了对原始视频数据流进行帧间预测的一个示例。为了简化描述,在这个示例只考虑存在一个固定物体100,而不考虑视频帧中是否存在其他背景数据。在第N帧中,物体100位于视频帧的(2,2)位置,在第N+1帧的时候,物体100则到了(3,3)的位置,由此,可以计算出运动矢量MV=(1,1)。由于物体100为固定物体,因此物体100的移动是由于拍摄设备的移动造成的,因此可以使用拍摄设备的移动来估计运动矢量。例如,在这个示例中,可以通过拍摄设备的IMU在水平和垂直方向的加速度,来预测设备在水平和垂直方向的移动距离,从而计算出设备的运动方向和运动距离。
在步骤S4中,将IMU数据和所述压缩后的视频数据流进行封装。在H.264等标准中,可以为视频数据中加入附加增强信息,IMU数据可以作为附加增强信息和视频数据流进行封装,用于视频数据流解码中进行使用,具体使用的方法可以见下方对A1-A3步骤的描述。
根据本发明的另一个方面,公开了一种XR设备,包括摄像头、IMU传感器、处理器和存储器,所述存储器存储有计算机程序,当所述计算机程序被所述处理器执行时,执行如上述步骤S1-S4所描述的步骤或方法,且实现相同或类似的技术效果,在此不再赘述。XR设备为AR(增强现实)、MR(混合现实)、VR(虚拟现实)这三类设备的统称,通常为佩戴于人眼之前的显示设备,可以实现近眼显示,从而达到解放用户双手的目的。
根据本发明的另一个方面,如图3所示,示出了根据本发明一个或多个实施例的使用IMU数据进行视频解码的方法的流程框图,具体包括:
A1、获取包含IMU数据的压缩后的视频数据流;
A2、若在视频解码过程中,出现帧间预测信息的丢失,则使用IMU数据对视频数据流进行运动估计;
A3、基于所述运动估计的结果,对原始视频数据流进行帧间预测,并基于所述帧间预测的结果,对所述视频数据流进行解码。
在步骤A1中,获取包含IMU数据的压缩后的视频数据流。具体地,压缩后的视频数据流开业为基于H.264等协议进行编码压缩的视频数据流,IMU数据为在编码压缩过程中的附加增强信息,其与视频数据流的每一帧相对应。
在步骤A2中,若在视频解码过程中,出现帧间预测信息的丢失,则使用IMU数据对视频数据流进行运动估计。具体地,使用IMU数据对视频数据流进行运动估计,具体包括:具体包括:利用IMU数据中的加速度,估计视频数据流的移动方向,利用IMU数据中的角速度,估计视频数据流的旋转方向,通过所述移动方向和旋转方向计算所述视频数据流的运动矢量,并根据所述运动矢量进行运动估计。本步骤的具体的实施方式可以参考步骤S2中的相应描述,在此不再赘述。
在步骤A3中,基于所述运动估计的结果,对原始视频数据流进行帧间预测,并基于所述帧间预测的结果,对所述视频数据流进行解码。具体地,在视频编码过程中产生的帧间预测信息丢失的情况下,可能会产生丢帧、延迟等导致视频通讯质量,此时,可以利用在步骤A2中获得运动估计的信息,来弥补帧间预测中的信息丢失,并迅速的计算出丢失的帧的内容。
根据本发明的另一个方面,还公开了一种计算机存储介质,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如步骤A1-A3所述的方法,且实现相同或类似的技术效果,在此不再赘述。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
- 一种使用IMU数据的视频编码、解码方法,XR设备和计算机存储介质
- 视频编码、视频解码方法、装置、计算机设备和存储介质