一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于SEI加密的虚拟制片视频母片编解码系统、方法及平台与流程

2023-02-06 17:48:40 来源:中国专利 TAG:

基于sei加密的虚拟制片视频母片编解码系统、方法及平台
技术领域
1.本发明属于视频处理领域,具体涉及一种基于sei加密的虚拟制片视频母片编解码系统及方法。


背景技术:

2.随着5g、gpu等技术的不断深化,虚拟制片技术逐渐兴起,但其往往需要依赖专业的摄影师和设备,拍摄效果难以复制。在虚拟制片技术的应用场景中,为了达到可重复拍片的目的,除了保障视频成片的高质量高效率传输外,还需要传输一些额外信息,如:拍摄时摄像机空间位置信息、摄像机本身自由度信息(六个自由度姿态)、相机焦距、光圈大小,灯光信息,一致性同步点位标识等,这些信息都将作为视频的增强信息。
3.在增强信息的传输实现方式上,现有的技术一般采用基本信息(如视频数据)和增强信独立传输的方法,即将增强信息加以时间戳信息外挂在单独的文件中传输,然后在解码端通过时间戳同步或线程同步的方法,保证基本数据与增强信息同步。但该方法会收到二者同步关系的制约,在解码时或出现互相等待的现象使得播放实时性不好,造成不同设备解析进度不同的现象,不能满足机器运动与视频画面同步的需求。
4.同时在增强信息的传输内容保护上,作为拍摄过程中的重要资源,出于内容保密的考虑,需保证增强信息的安全,加密传输信息。


技术实现要素:

5.本发明的目的在于解决现有技术中虚拟制片编解码实时性和保密性较低的问题,并提供一种基于sei加密的虚拟制片视频母片编解码系统、方法及平台。本发明可对获取的视频增强信息按照一定的编码方式进行加密,并形成sei帧插入码流中传输,带有视频增强信息的视频文件作为用户进行虚拟制片的视频母片,在接收端提供解码和处理方法,可从中提取出原本的视频增强信息用于对虚拟制片设备进行自动控制,从而在用户拍片过程中复刻母片中的设备控制参数。
6.本发明所采用的具体技术方案如下:
7.第一方面,本发明提供了一种基于sei加密的虚拟制片视频母片编码系统,其包括:
8.第一信息获取模块,用于获取由摄像机传输的包含视频画面的基本信息,并统一为h.264标准编码后形成第一h.264码流;
9.第二信息获取模块,用于获取与所述视频画面帧对应的视频增强信息;
10.加密模块,用于按时序扫描第二信息获取模块中获取的视频增强信息,当视频增强信息发生变化出现新的视频增强信息时记录其时间戳,并通过面向字符串的全同态加密算法对所述新的视频增强信息进行加密与编码,形成加密增强信息;
11.帧构建模块,用于根据h.264标准将加密模块中得到的所述加密增强信息构建形成sei增强信息帧;
12.重编码模块,用于将帧构建模块中得到的sei增强信息帧按照加密模块中记录的时间戳插入第一信息获取模块中得到的第一h.264码流,形成包含sei增强信息帧的第二h.264码流,所述第二h.264码流用于通过网络进行打包传输。
13.作为上述第一方面的优选,所述第一信息获取模块中,摄像机传输的基本信息中视频画面帧应当至少包括i帧、b帧、p帧中一种或几种,统一为h.264码流后各视频画面帧作为校准点供视频增强信息进行插入与同步;所述第二信息获取模块中,所述视频增强信息从绑定在虚幻引擎上的ndisplay模块中获取。
14.作为上述第一方面的优选,所述加密模块中,通过面向字符串的全同态加密算法对所述新的视频增强信息进行加密与编码的方法如下:
15.s101、将新的视频增强信息的字符串转换为二进制,然后截取二进制字符串中的每一个字符并将其转换为ascii码,形成ascii码字符串;
16.s102、使用密钥生成函数生成用于加密视频增强信息字符串的公钥和私钥,并将私钥安全传输给所述虚拟制片视频母片编码系统对应的解码系统;
17.s103、利用同态加密函数和所述公钥,对ascii码字符串中的每个字符进行加密,得到加密字符数据;
18.s104、对ascii码字符串中所有字符对应的加密字符数据重新进行组合,将组合形成的二进制字符串作为加密增强信息。
19.作为上述第一方面的优选,所述帧构建模块中,构建形成sei增强信息帧的方法为:
20.s201、构造大小为537b的空间,用于存放sei帧头与帧信息体;
21.s202、计算所述加密增强信息的数据长度,并将计算得到的数据长度存入16位整形变量,该16位整形变量分为高8位和低8位;
22.s203、向537b的空间中按序插入4字节nalu开始码、1字节nal类型识别码、1字节负载类型、16字节uuid自定义识别码、1字节的数据长度高8位、1字节的数据长度高8位、不大于512字节的所述加密增强信息、1字节sei封装包结尾对齐码,从而形成sei增强信息帧。
23.作为上述第一方面的优选,所述重编码模块中,第二h.264码流的生成方法如下:
24.s301、每当帧构建模块中生成新的sei增强信息帧时,从加密模块中获取该sei增强信息帧中记录的视频增强信息对应的时间戳;
25.s302、在所述第一h.264码流中按照s301中确定的时间戳定位对应的视频画面帧,所述视频画面帧为i帧、b帧或p帧,再判断定位到的视频画面帧的前一帧是否为sei帧,若前一帧不是sei帧,则将新的sei增强信息帧直接插入定位到的视频画面帧之前,若前一帧是sei帧,则将新的sei增强信息帧替换sei帧;
26.s303、将帧构建模块中生成的所有新的sei增强信息帧均插入第一h.264码流后,形成包含sei增强信息帧的第二h.264码流。
27.第二方面,本发明提供了一种基于sei加密的虚拟制片视频母片解码系统,其包括:
28.第三信息获取模块,用于获取由网络传输的数据包,并对数据包进行解析拆包从中提取视频文件,判断该视频文件中的码流格式是否与权利要求1~5任一所述虚拟制片视频母片编码系统创建的第二h.264码流格式相同,若相同则进行解封装得到第三h.264码
流;
29.提取解码模块,用于对所述第三信息获取模块得到的第三h.264码流进行逐帧扫描,通过识别帧头信息提取出所有视频画面帧和所有sei增强信息帧,并利用所述全同态加密算法对应的解密算法对每一帧sei增强信息帧进行解密,得到每一帧sei增强信息帧中的视频增强信息以及相应的时间戳。
30.作为上述第二方面的优选,所述第三信息获取模块中,若数据包中提取的视频文件中视频流的格式不是h.264,则需要先通过转换工具将视频文件中的视频流转换为h.264码流格式后,再进行解封装得到第三h.264码流。
31.作为上述第二方面的优选,所述提取解码模块中,遍历第三h.264码流中的所有nalu帧,并根据帧头信息中的nal类型识别码判断每帧nalu帧是否为sei增强信息帧,若是则从sei增强信息帧的帧信息体中取出所述加密增强信息,通过调用所述加密模块中全同态加密算法对应的同态解密函数以及私钥,对加密增强信息进行逐字符解密,再将解密后的字符数据重新组合为二进制字符串,进而还原得到用于控制虚拟制片设备的视频增强信息。
32.第三方面,本发明提供了一种用于实现虚拟制片的云平台,所述云平台分别与上述第一方面任一方案所述的虚拟制片视频母片编码系统和上述第二方面任一方案所述的虚拟制片视频母片解码系统构成通信连接,用于存储由所述的虚拟制片视频母片编码系统通过网络发送的数据包,并对所述虚拟制片视频母片解码系统提供数据调用传输服务。
33.第四方面,本发明提供了一种基于sei加密的虚拟制片视频母片编解码控制方法,其具体做法为:
34.首先,在虚拟制片拍摄母片过程中,由摄像机即其他虚拟制片设备同步记录包含视频画面的基本信息以及与视频画面帧对应的视频增强信息,再由上述第一方面任一方案所述的虚拟制片视频母片编码系统对基本信息和视频增强信息进行编码,形成包含sei增强信息帧的第二h.264码流;
35.然后,对所述第二h.264码流进行打包,以rtp数据包形式发送至云平台进行存储;
36.最后,由上述第二方面任一方案所述的虚拟制片视频母片解码系统从云平台上读取rtp数据包,并通过解码得到所有视频画面帧以及所有sei增强信息帧中的视频增强信息和相应的时间戳,再按序将提取解码模块从第三h.264码流中得到的视频画面帧发送至显示设备,同时按相应的时间戳将视频增强信息发送至虚拟制片设备用于进行设备控制。
37.本发明相对于现有技术而言,具有以下有益效果:
38.1.本发明提供的编解码系统和方法速度快、不卡顿。对于视频增强信息的传递,传统方式是通过额外文件进行传输,再使用时间戳保证同步,此类方法编解码时间受到设备性能影响,可能收到基本信息与增强信息的同步关系影响而出现卡顿。使用本发明基于sei帧的编解码方式天然具有基本信息与增强信息同步的优点,具有编解码速度快、不卡顿的优点。
39.2.本发明提供的编解码系统和方法具有较高安全性。在对增强信息进行编码的过程中使用加密过的数据,接收端需要进行解密后才能使用数据,可以较好的保证传输信息的安全性。
40.3.本发明提供的编解码系统和方法通用性高。对于支持本发明编解码方法的虚拟
拍片系统,解码端可以分别获取到基本信息和视频增强信息,并将视频增强信息用于机器控制。对于不支持的系统,则直接将视频增强信息抛弃而不影响基本信息的使用,具有通用性高的有益效果。
附图说明
41.图1为一种基于sei加密的虚拟制片视频母片编码系统示意图;
42.图2为一种基于sei加密的虚拟制片视频母片解码系统示意图;
43.图3为一种用于实现虚拟制片的云平台示意图;
44.图4为本发明实施例中一种编码流程图;
45.图5为本发明实施例中原始视频增强数据的一种内容与格式示意图;
46.图6为同态加密运算流程示意图;
47.图7为重新编码后的码流示意图;
48.图8为插入sei帧后的码流样例;
49.图9为本发明实施例中一种解码流程图;
50.图10为归一化后的视频码流示意图。
具体实施方式
51.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。
52.在本发明的描述中,需要理解的是,当一个元件被认为是“连接”另一个元件,可以是直接连接到另一个元件或者是间接连接即存在中间元件。相反,当元件为称作“直接”与另一元件连接时,不存在中间元件。
53.在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
54.如图1所示,在本发明的一个较佳实施例中,提供了一种基于sei加密的虚拟制片视频母片编码系统,其包括第一信息获取模块、第二信息获取模块、加密模块、帧构建模块和重编码模块。该编码系统主要用户编码形成虚拟制片的视频母片。一般而言,该视频母片的拍摄,可以由专业人员在虚拟或真实背景下对包括摄像机、追踪器、陀螺仪、音响、灯光等虚拟制片设备进行操控,摄像机可以记录母片的基本信息,摄像机传输的基本信息包括视频的画面信息,而追踪器、陀螺仪、音响、灯光等虚拟制片设备则会同步记录用于控制成片效果的除视频画面基本信息的其他视频增强信息,例如视频帧编号、摄像机空间位置信息(x轴、y轴、z轴坐标,由搭载于摄像机上的追踪器记录)、摄像机自由度信息(xy平面、yz平面、xz平面,由搭载于摄像机上的陀螺仪记录)、焦距(摄像机自身记录)、音响信息、灯光信息等。同时其画面背景需要通过虚幻引擎进行渲染。通过记录专业人员人工拍摄过程中的视频增强信息和视频码流,可将其编码为带有视频增强信息的视频母片。后续用户可通过
从视频母片中解码出相关的信息,进而控制虚拟制片设备来复刻专业人员对设备的操作,重现母片拍摄的技术参数,由此无需专业知识即可复刻专业人员的拍摄过程,从而做出属于自己的较为专业的短视频。
55.下面对这五个模块中的具体实现方式和相互之间的配合方式进行详细说明。
56.该编码系统中的第一信息获取模块,用于获取由摄像机传输的包含视频画面的基本信息,并统一为h.264标准编码后形成第一h.264码流。
57.作为本发明实施例的一种较佳实现方式,上述第一信息获取模块中,摄像机传输的基本信息中视频画面帧应当至少包括i帧、b帧、p帧中一种或几种,一般由摄像机形成并直接输出,其中i帧作为关键帧,p帧和b帧作为预测帧,三者共同构成了视频画面。输出的视频流格式统一为h.264码流,各视频画面帧作为校准点供视频增强信息进行插入与同步,其中插入与同步是按照视频画面帧与视频增强信息各自的时间戳进行校准匹配的。
58.需要说明的是,h.264是一种现有的数字视频编解码器标准,对此不再展开叙述。
59.该编码系统中的第二信息获取模块,用于获取与上述视频画面帧对应的视频增强信息。
60.上述第二信息获取模块中,上述视频增强信息从绑定在虚幻引擎上的ndisplay模块中获取。视频增强信息是指用于控制成片效果的除视频画面基本信息的其他信息,包括但不限于对应视频帧编号、摄像机空间位置信息(x轴、y轴、z轴)、摄像机自由度信息(xy平面、yz平面、xz平面)、焦距、灯光信息等。这些信息需要按照格式形成数据块。
61.需要说明的是,上述第一信息获取模块和第二信息获取模块的数据获取,可以通过离线方式进行,也可以通过在线方式进行。
62.为保证数据安全,原始的视频增强信息需要经过加密算法形成密文后进行传输,因此本发明的编码系统中进一步设置了加密模块来对视频增强信息进行加密。
63.该编码系统中的加密模块,用于按时序扫描第二信息获取模块中获取的视频增强信息,当视频增强信息发生变化出现新的视频增强信息时记录其时间戳,并通过面向字符串的全同态加密算法对上述新的视频增强信息进行加密与编码,形成加密增强信息。
64.由于常规的全同态加密算法一般用于云计算中,而本发明中需要进行加密的视频增强信息本质是字符串,因此本发明采用了一种面向字符串的全同态加密算法,该算法使用公钥将明文转换为密文,同时产生私钥供接收者使用,接收者使用私钥可将密文还原。该全同态加密算法对密文进行特定的运算,得到的密文计算结果在进行同态解密后的得到的明文等价于原始明文数据直接进行相同计算所得到的数据结果,由此可以使用户在不接触实际数据的前提下对各项参数进行调整。
65.作为本发明实施例的一种较佳实现方式,上述加密模块中,通过面向字符串的全同态加密算法对上述新的视频增强信息进行加密与编码的方法如下:
66.s101、将新的视频增强信息的字符串转换为二进制,然后截取二进制字符串中的每一个字符并将其转换为ascii码,形成ascii码字符串;
67.s102、使用密钥生成函数生成用于加密视频增强信息字符串的公钥和私钥,并将私钥安全传输给上述虚拟制片视频母片编码系统对应的解码系统;
68.s103、利用同态加密函数和上述公钥,对ascii码字符串中的每个字符进行加密,得到加密字符数据;
69.s104、对ascii码字符串中所有字符对应的加密字符数据重新进行组合,将组合形成的二进制字符串作为加密增强信息。
70.需要说明的是,上述全同态加密算法以及所采用的同态加密函数形式并不做限定,可根据现有的全同态加密算法来确定。
71.该编码系统中的帧构建模块,用于根据h.264标准将加密模块中得到的上述加密增强信息构建形成sei增强信息帧。
72.该编码系统中的重编码模块,用于将帧构建模块中得到的sei增强信息帧按照加密模块中记录的时间戳插入第一信息获取模块中得到的第一h.264码流,形成包含sei增强信息帧的第二h.264码流,上述第二h.264码流用于通过网络进行打包传输。
73.作为本发明实施例的一种较佳实现方式,上述帧构建模块中,构建形成sei增强信息帧的方法为:
74.s201、构造大小为537b的空间,用于存放sei帧头与帧信息体;
75.s202、计算上述加密增强信息的数据长度,并将计算得到的数据长度存入16位整形变量,该16位整形变量分为高8位和低8位;
76.s203、向537b的空间中按序插入4字节nalu开始码、1字节nal类型识别码、1字节负载类型、16字节uuid自定义识别码、1字节的数据长度高8位、1字节的数据长度高8位、不大于512字节的上述加密增强信息、1字节sei封装包结尾对齐码,从而形成sei增强信息帧。
77.由此,通过该帧构建模块,即可得到一个含有增强信息的新sei帧,该帧的特点是:1)含有所有的增强信息;2)密文传输,安全性高;3)不支持本文提及编码方式的解码器,将直接丢弃该sei帧且不影响视频的正常播放。
78.作为本发明实施例的一种较佳实现方式,上述重编码模块中,第二h.264码流的生成方法如下:
79.s301、每当帧构建模块中生成新的sei增强信息帧时,从加密模块中获取该sei增强信息帧中记录的视频增强信息对应的时间戳;
80.s302、在上述第一h.264码流中按照s301中确定的时间戳定位对应的视频画面帧,上述视频画面帧为i帧、b帧或p帧,再判断定位到的视频画面帧的前一帧是否为sei帧,若前一帧不是sei帧,则将新的sei增强信息帧直接插入定位到的视频画面帧之前,若前一帧是sei帧,则将新的sei增强信息帧替换sei帧;
81.s303、将帧构建模块中生成的所有新的sei增强信息帧均插入第一h.264码流后,形成包含sei增强信息帧的第二h.264码流。
82.由此,通过该重编码模块,即可形成包含sei增强信息帧的h.264码流,可以经过数据打包后通过网络进行传输。相对于传统做法,本发明无需单独传输视频增强信息,因此不会出现因为基本信息与视频增强信息的不同步而造成的卡顿问题,而且码流中的视频增强信息经过了全同态加密,传输信息过程中具有较好的安全性。
83.本发明的编解码系统的应用场景是面向非专业用户的虚拟拍摄,非专业用户无法像专业用户一样准确操作各种虚拟制片设备,因此本发明的目的是利用上述编码系统将专业用户在视频拍摄过程中的视频画面以及各种设备的控制参数编码形成视频母片,然后将其复制到非专业用户的设备上,由非专业用户的设备自动复现专业用户的拍摄。此时的复现包含两方面的内容,一方面是向非专业用户展示视频画面,供用户进行模仿表演,另一方
面是将专业用户在视频拍摄过程中的设备控制参数(例如摄像机位置、姿态、焦距、灯光等等)传输给非专业用户的设备,使得非专业用户的设备能够自动进行专业运作,用户进行专注于按照视频画面进行动作模仿即可。
84.由于上述编码系统中将数据编码成了包含sei增强信息帧的第二h.264码流,因此与上述编码系统对应的是,本发明还包含了一个基于sei加密的虚拟制片视频母片解码系统。对于支持本发明编解码方法的拍片系统,解码系统通过对编码系统编码后第二h.264码流进行解码,从而重新从中获取到基本信息和视频增强信息,并将增强信息用于虚拟制片设备的控制。
85.如图2所示,在本发明的一个较佳实施例中,提供了一种基于sei加密的虚拟制片视频母片解码系统,其包括第三信息获取模块和提取解码模块。
86.下面对这两个模块中的具体实现方式和相互之间的配合方式进行详细说明。
87.该解码系统中的第三信息获取模块,用于获取由网络传输的数据包,并对数据包进行解析拆包从中提取视频文件,判断该视频文件中的码流格式是否与前述实施例中虚拟制片视频母片编码系统创建的第二h.264码流格式相同,若相同则进行解封装得到第三h.264码流。
88.需要说明的是,本发明中的第三信息获取模块可以仅获取前述实施例中虚拟制片视频母片编码系统创建的包含sei增强信息帧的第二h.264码流,但由于本发明主要面向非专业用户的虚拟拍摄,因用户接触的视频文件格式是多样的,也就是说封装码流的视频文件格式,可能是mpeg4、avi、mov等格式中的一种或几种。不同的用户在传输过程中可能使用不同的视频格式。因此,考虑可扩展性,本发明也可以支持其他系统创建的包含sei增强信息帧的非h.264格式码流。因此在第三信息获取模块中,可以先判断若数据包中提取的视频文件中视频流的格式是不是h.264,如果视频流的格式不是h.264但其也包含了与前述第二h.264码流相同的sei增强信息帧,那么可以先进行格式转换后继续采用本发明的解码系统进行解码。
89.作为本发明实施例的一种较佳实现方式,上述第三信息获取模块中,若数据包中提取的视频文件中视频流的格式不是h.264,可先通过ffmpeg等转换工具将视频文件中的视频流转换为h.264码流格式后,再进行解封装得到第三h.264码流。
90.需要说明的是,如果上述第三信息获取模块中获取的数据包中的h.264码流就是由前述的加密系统编码的,那么解封装得到的第三h.264码流实际上就是前述第二h.264码流。
91.该解码系统中的提取解码模块,用于对上述第三信息获取模块得到的第三h.264码流进行逐帧扫描,通过识别帧头信息提取出所有视频画面帧和所有sei增强信息帧,并利用上述全同态加密算法对应的解密算法对每一帧sei增强信息帧进行解密,得到每一帧sei增强信息帧中的视频增强信息以及相应的时间戳。
92.需要说明的是,h.264码流中的h.264码流是以nalu帧为单位的,每个nalu帧的开始码之后为nal类型识别码nri,因此根据nri可以判断该帧类型。
93.作为本发明实施例的一种较佳实现方式,上述提取解码模块中,遍历第三h.264码流中的所有nalu帧,并根据帧头信息中的nal类型识别码判断每帧nalu帧是否为sei增强信息帧,若是则从sei增强信息帧的帧信息体中取出上述加密增强信息,通过调用上述加密模
块中全同态加密算法对应的同态解密函数以及私钥,对加密增强信息进行逐字符解密,再将解密后的字符数据重新组合为二进制字符串,进而还原得到用于控制虚拟制片设备的视频增强信息。
94.需要说明的是,上述将加密增强信息进行解密的过程,需要调用与上述加密模块中全同态加密算法对应的全同态解密算法,两者是一种互逆的过程。具体的解密函数也需要对应同态加密函数进行设计。同态加密函数中的私钥是由上述编码系统中的加密模块生成并传输的,具体的全同态解密算法可采用现有技术来实现。
95.本发明的解密系统解密得到了带有时间戳的视频画面帧序列以及视频增强信息序列,视频增强信息可以存储在本地数据库中,通过建立sei帧到设备控制信息的映射,利用视频增强信息中记录的设备控制参数来控制相应的本地虚拟制片设备。
96.另外,需要说明的是,在上述虚拟制片视频母片编码系统和上述虚拟制片视频母片解码系统之间,需要通过中间平台进行数据的传输和交互服务。
97.如图3所示,在本发明的一个较佳实施例中,提供了一种用于实现虚拟制片的云平台,该云平台分别与上述虚拟制片视频母片编码系统和虚拟制片视频母片解码系统构成通信连接,用于存储由上述的虚拟制片视频母片编码系统通过网络发送的数据包,并对上述虚拟制片视频母片解码系统提供数据调用传输服务。
98.下面基于上述虚拟制片视频母片编码系统和虚拟制片视频母片解码系统以及云平台,进一步提供了一种基于sei加密的虚拟制片视频母片编解码控制方法,其具体做法如下:
99.首先,在虚拟制片拍摄母片过程中,由摄像机即其他虚拟制片设备同步记录包含视频画面的基本信息以及与视频画面帧对应的视频增强信息,再由上述虚拟制片视频母片编码系统对基本信息和视频增强信息进行编码,形成包含sei增强信息帧的第二h.264码流;
100.然后,对上述第二h.264码流进行打包,以rtp数据包形式发送至云平台进行存储;
101.最后,上述虚拟制片视频母片解码系统从云平台上读取rtp数据包,并通过解码得到所有视频画面帧以及所有sei增强信息帧中的视频增强信息和相应的时间戳,再按序将提取解码模块从第三h.264码流中得到的视频画面帧发送至显示设备,同时按相应的时间戳将视频增强信息发送至虚拟制片设备用于进行设备控制。
102.为了更好的理解本发明的上述虚拟制片视频母片编码系统和虚拟制片视频母片解码系统以及云平台之间的编解码控制过程,下面通过一个优选实施例来展示该编解码控制过程的具体实现过程。
103.首先,如图4所示基于上述虚拟制片视频母片编码系统,对加密sei帧的基础信息和增强信息同步进行编码,,其步骤包括:
104.步骤1:获取摄像机传输的基本信息,作为原始h.264码流输入
105.摄像机传输的基本信息包括视频的画面信息,应当至少包括i帧、b帧、p帧中一种或几种,且需要形成符合h.264标准的编码,一般由摄像机形成并直接输入。其中i帧作为关键帧,p帧和b帧作为预测帧,三者共同构成了视频画面。本实施例使用摄像机基础api图像传输接口提取基本图像信息,并归一化为h.264码,其基本信息的各个帧将作为校准点供增强信息插入与同步。
106.步骤2:获取tracker等虚拟制片设备传输的视频增强信息
107.视频增强信息是指用于控制成片效果的除视频画面基本信息的其他信息,包括对应视频帧编号、摄像机空间位置信息(x轴、y轴、z轴)、摄像机自由度信息(xy平面、yz平面、xz平面)、焦距、灯光信息等。这些信息需要按照格式形成数据块。本实施例基于虚幻引擎构建,增强信息原始数据源于绑定在虚幻引擎上的ndisplay模块,数据按照一定的格式形成原始视频增强信息,原始视频增强信息内容与格式如图5所示。
108.视频增强信息需要以sei帧的形式添加在h.264码流中,即将其插入与视频增强信息同时刻的视频画面帧(可以是i帧、b帧或p帧)之前。由于视频增强信息并非每一帧都变化的,因此无须在每个i帧、b帧或p帧之前都添加,只需在设备提供的视频增强信息发生变化时将新的视频增强信息形成sei帧,并将其插入与之同一时间戳下的视频画面帧之前。因此,在本步骤中,可以不断扫描视频增强信息的变化情况,如果出现了新的视频增强信息,则将新的视频增强信息进行后续的加密和编码。
109.步骤3:增强信息加密与编码:
110.当出现了新的视频增强信息时,本实施例使用一种面向字符串的全同态加密算法,该算法使用公钥将明文转换为密文,同时产生私钥供接收者使用,接收者使用私钥可将密文还原,如图6所示。其算法流程如下:
111.将增强信息的字符串转换为二进制,截取该字符串中的每一个字符并将其转换为对应的ascii码,记为b1,b2,

,bk。
112.使用密钥生成函数生成用于加密增强信息字符串的公钥key1和32位私钥key2,并将key2安全传输给解码系统。
113.对每个字符bi进行加密,得到加密后数据xi=encrypt(key1,bi),其中encrypt()为同态加密函数。
114.所有加密后的数据xi重新组合,形成新的二进制字符串s=x1x2

xk,字符串s即为加密增强信息,可作为用于传输的有效数据。
115.步骤4:编码加密增强信息形成sei增强信息帧;
116.根据h.264标准,使用的sei帧需要遵从一定的格式,本步用于构造符合h.264标准的sei增强信息帧,步骤如下:
117.1.构造大小为537b的空间,用于存放sei帧头与帧信息体。
118.2.求取加密增强信息s的数据长度,存入16位整形变量,记数据长度高8位为datasizeh,低8位为datasizel。
119.3.按序插入以下字段:4字节nalu开始码、1字节nal类型识别码nri、1字节负载类型(字段编码格式识别码)、16字节uuid自定义识别码、1字节datasizeh、1字节datasizel、n(n不大于512)字节的加密增强信息、1字节sei封装包结尾对齐码。
120.至此,就得到了一个含有增强信息的新sei帧,即sei增强信息帧。
121.步骤5:将sei帧插入原始h.264码流中并重新编码;
122.经过上述步骤,得到了新的视频增强信息加密编码形成的sei增强信息帧后,可以将其添加在与sei增强信息帧同步的视频画面帧(可以是i帧、b帧或p帧)之前,如图7所示。由于摄像机设备传来的h.264码流中往往已经存在部分sei帧,其中可能包含了编码参数等信息,因此对原有的sei帧进行剔除,可以防止原有信息与新加信息内容发生冲突影响接收
端的解析。因此本实施例中,当一组新的视频增强信息(其时间戳记为t)传来,首先经过步骤4构造后产生sei增强信息帧,然后按照读取码流中的帧,找到时序中时间戳为t的第一个视频画面帧p
t
(可以是i帧、b帧或p帧),在插入前查看帧头信息,根据nri字段是否为ox06判断该帧类型是否为sei帧,分情况执行直接插入sei帧和替换码流中原有的sei帧两种做法:
123.1.直接插入sei帧:若帧p
t
的前一帧p
t-1
的帧头信息中nri字段不是ox06,则表明为帧p
t-1
不是sei帧,此时将新的sei增强信息帧直接插入码流中帧p
t-1
和帧p
t
之间。
124.2.替换码流中原有的sei帧:若帧p
t
的前一帧p
t-1
的帧头信息中nri字段是ox06,则表明为帧p
t-1
是sei帧,此时将帧p
t-1
直接进行剔除,并替换为新的sei增强信息帧。
125.本实施例中,一个sei增强信息帧插入后的样例结果如图8所示,其中0x06后即为sei帧。
126.至此,所有的sei增强信息帧都插入码流后,就形成了包含sei增强信息帧的h.264码流,可以直接打包成rtp数据包的形式将该码流进行网络传输,以视频母片的形式存储至云平台上。
127.如图9所示,用户端可以通过像云平台发送请求,来调用云平台上存储的视频母片,并通过虚拟制片视频母片解码系统对数据包进行基础信息和增强信息同步的解码,其步骤包括:
128.步骤6:从云服务器中获取h.264码流;
129.本实施例中考虑了应用场景是面向非专业用户的虚拟拍摄的,因此同一云平台亦可获取除了本发明前述虚拟制片视频母片编码系统之外的其他编码系统上传的数据包,这些rtp数据包中也包含了sei增强信息帧,但是其中的视频文件格式可能并非一定封装了h.264码流,还可能是mpeg4、avi、mov等格式中的一种或几种。本实施例中,可先对rtp数据包进行解析拆包,提取视频文件,然后判断视频文件中的码流格式是否与前述编码系统中编码得到的包含sei增强信息帧的h.264码流相同,如果相同可直接解封装得到h.264码流后进行下一步的信息提取和解码,如果不同则需要首先将各种文件格式解封装归一化为h.264码流格式,然后再解封装得到h.264码流后进行下一步的信息提取和解码。一个完整的视频文件中应包括视频流、音频流、字幕流等信息,本实施例需要通过解封装获得其中的视频流,具体的解封装方式属于现有技术。另外,本实施例中对码流格式进行转换的工具可使用的是ffmpeg,一个示例性的转换结果如图10所示。
130.步骤7:对h.264码流进行sei信息提取和解码
131.步骤6中得到的h.264码流以nalu帧为单位,每个nalu帧以0x00000001或0x000001为开始码,不同的nalu帧包含了不同的信息,其中就包括我们需要的视频基本信息和视频增强信息。开始码后的两位为nal类型识别码nri,根据nri可以判断该帧类型。具体做法为:遍历该码流中的所有nalu帧,辨别nri为0x06的帧,即为包含增强信息的sei帧;然后根据帧头信息获取sei信息。此时获取到的sei信息为密文,无法直接使用,这保证了传输时不会有信息泄露的风险。接下来使用编码系统传输的私钥对sei帧的消息体进行解密,该解密过程是前述加密过程的逆过程,也需要先对字符串进行分解,再对于字符串的每一字符ci,求取yi=decrypt(key2,ci),其中key2为私钥,decrypt()为同态解密函数。将所有解密后的字符形成新的二进制字符串s’=y1y2

yk,形成的s’即可视为原始存入的视频增强信息。
132.随后可在本地数据库建立sei帧中视频增强信息到虚拟拍片设备的控制信息之间
的映射,每一个视频增强信息可用于对设备进行控制。
133.步骤8:解码得到的视频图像送入显示设备,sei信息处理后送入控制设备
134.经过提取和解码的码流信息主要分为两部分,一部分为包含视频图像的基本信息,另一部分为包含控制信息的视频增强信息。在用户进行虚拟拍片时,可按序读取h.264码流解码得到的各帧信息,若当前处理图像帧则将视频图像送入显示设备显示视频图像,若当前处理sei帧则根据预先构建的映射读取控制信息送入虚拟拍片设备进行设备动作的控制。用户可按照显示设备上实时显示的视频图像做出与母片类似的动作,然后虚拟拍片设备可自动仿照母片拍摄时的控制参数对用户进行拍摄,从而形成与母片具有类似效果的子片。
135.另外需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统中模块以及方法中所含的步骤流程,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或步骤可以结合或者可以集成到一起,一个模块或者步骤亦可进行拆分。
136.需要说明的是,根据本发明公开的实施例,上述各系统中的模块的具体实现功能可以通过编写的计算机软件程序来实现,计算机程序中包含用于执行相应方法的程序代码。
137.因此,上述各系统中的模块可以以程序形式存储在计算机可读存储介质中。该存储介质上存储有一个或者多个计算机程序,当一个或者多个计算机程序被处理器执行时,能实现上述实施例所述的模块中的功能。
138.可以理解的是,上述存储介质可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
139.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
140.因此,以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。上述各实施例仅用于示例性说明,凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献