具体实施方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施方式,对本发明进一步详细说明。
本发明的一个方面是通过控制多视角摄像或图像处理操作,按照视角需求从多视角摄像操作中选择部分视角进行摄像、或者按照视角需求从摄像得到的多路视频数据中选择部分视角的视频数据、或者按照视角需求调整摄像机的拍摄视角、或者按照视角需求选择可重构的两个视角拍摄的视频数据,再将摄像得到的这些视频数据进行编码,以提高采集和编码效率,降低系统对处理能力的要求。
参阅图2,本发明提供多视角摄像及图像处理装置第一实施方式,包括依次连接的摄像单元210、采集单元220、选择单元230和编码单元240,其中:
所述摄像单元210用于摄像,包括进行多视角摄像并输出立体视频数据;
所述采集单元220用于采集所述摄像单元输出的立体视频数据;
所述选择单元230用于从所述立体视频数据中选择至少一路数据;
所述编码单元240用于编码,包括对所述选择单元230选出的立体视频数据进行编码。
以上实施方式可以看出,区别于现有技术无选择性地将全部视角拍摄的视频数据编码而造成系统承载较重的技术问题,由于本发明实施方式在多视角摄像中按照用户发出的视角指令,由选择单元230选择部分的视频流数据进行编码,因而可以有效降低采集和/或编码的复杂度,提高采集和编码效率,降低系统对处理能力的要求。
在其他实施方式中,所述选择单元230具体用于根据接收到的指定视角指令,将所述每路数据的视角信息与所述指定视角指令携带的视角一一匹配,得到与所述指定视角对应的至少一路立体视频数据。
在其他实施方式中,所述选择单元230集成在所述摄像单元210、采集单元220或编码单元240中。
所述编码单元240的编码内容包括下面至少一种:
原始视频数据;
原始视频数据和视差数据/深度数据;
原始视频数据、视差数据/深度数据和残差数据。
其中,所述视差数据/深度数据和残差数据可以由具有立体摄像功能的摄像单元210采集,也可以由不具备这些信息采集功能的摄像单元210先采集视频数据,然后将采集的视频数据以及另外收集的视差数据/深度数据和残差数据一起输入编码单元240。
所述编码单元240可用于根据接收到的用户观看的视角指令和显示所述立体视频数据的显示单元的显示方式指令,采用相应编码方式对所述立体视频数据进行编码,所述显示方式包括二维显示、双目立体视频显示或多视角视频显示。
参阅图3,还提供一种多视角摄像及图像处理装置,本装置与上述多视角摄像及图像处理装置第一实施方式相似,其中的选择单元具体用于根据接收到的指定视角指令控制所述摄像单元进行所述指定视角摄像,得到至少一路数据。在本实施方式中将所述选择单元具体命名为控制单元,以区别于上述多视角摄像及图像处理装置第一实施方式。所述装置具体包括:
摄像单元210,进行摄像,包括进行多视角摄像并输出立体视频数据;
采集单元220,用于采集所述摄像单元210输出的立体视频数据;
控制单元250,用于根据接收到的指定视角指令控制所述摄像单元210进行所述指定视角的摄像;
编码单元240,用于编码,包括对所述采集单元220输出的立体视频数据进行编码。
在其他实施方式中,所述控制单元250还可以集成在所述摄像单元210或采集单元220上。
所述控制单元250还可以具体用于:
根据接收到的指定视角指令控制所述摄像单元210的所述指定视角对应的摄像机进行摄像,并输出所述立体视频数据;或
根据接收到的指定视角指令控制所述摄像单元210的摄像机调整在所述指定视角并进行摄像,并输出所述立体视频数据;或
根据接收到的指定视角指令控制所述指定视角的邻近摄像机进行摄像,并输出所述立体视频数据。
此外,所述采集单元220还可以将所述邻近指定视角的摄像机摄像得到的数据及每个摄像机内参和外参、以及采集时间戳向所述编码单元240发送。
此外,所述采集单元220还可以进一步包括:
图像处理单元,用于将所述邻近指定视角的摄像机摄像得到的数据进行重构,得到虚拟视角数据并向所述编码单元240发送。
参阅图4,还提供一种多视角解码和图像处理及显示装置,包括:
输入控制单元410,用于发送指令,包括发送控制指定视角进行摄像的指令;
解码单元420,用于解码在所述指定视角摄像得到并经过编码的数据。
本实施方式是在显示端向视频采集端发送控制指定视角进行摄像的指令,使视频采集端仅采集制定视角的图像,降低编码量,也降低解码量。
在其他实施方式中,所述解码单元420具体用于根据接收到的用户观看视角指令和显示所述立体视频数据的显示单元的显示方式指令,采用相应解码方式对所述立体视频数据进行解码,所述显示方式包括二维显示、双目立体视频显示或多视角视频显示。
所述输入控制单元410向视频采集端的摄像单元210发送控制指定视角进行摄像的指令,还可以进一步发送用户到显示表面的距离信息。本实施方式是通过立体显示器观看立体图像因为位置移动带来的视差变化技术问题,
上述的输入控制单元410可以位于摄像处理一侧,也可以位于远程的显示图像一侧。当位于远程的显示图像一侧时,可以通过网络将所述控制指定视角进行摄像的指令发送到所述摄像及图像处理装置。
参阅图5,提供一种多视角摄像及图像处理系统,包括多视角摄像及图像处理装置、以及多视角解码和图像处理及显示装置:
所述多视角摄像及图像处理装置包括:
摄像单元210,进行摄像,包括进行多视角摄像并输出立体视频数据;
采集单元220,用于采集所述摄像单元210输出的立体视频数据;
选择单元230,用于从所述摄像单元210输出的多路视频数据中选择至少一路数据;
编码单元240,用于编码,包括对所述选择单元230选出的立体视频数据进行编码。
所述多视角解码和图像处理及显示装置包括:
解码单元420,用于解码所述编码单元240输出的编码数据,得到所述立体视频数据;
输入控制单元410,位于所述立体视频数据的显示图像一侧,用于发送指令,包括向所述摄像单元210或采集单元220发送控制指定视角进行摄像的指令;
在其他实施方式中,还可以进一步包括:
重构单元430,用于根据所述输入控制单元410发送的距离信息对所述解码单元420输出的立体视频数据进行图像重构。
参阅图6,是本发明多视角摄像及图像处理系统具体实施方式。所述系统包括摄像及图像处理装置以及显示装置。
所述显示装置包括:
输入控制单元,用于发送指令,包括:
1)向摄像及图像处理装置发送控制指定视角进行摄像的指令,比如选择一个或多个视角摄像的指令;
2)向下述的重构单元发送用户到所述显示单元显示屏之间的距离信息;
3)向摄像及图像处理装置发送所述显示单元显示模式的信息,比如是否支持二维显示、双目立体显示或全息显示等;
4)是否支持调整摄像机位置的信息。
输入控制单元主要接收终端或用户的输入,并发送所述指令给下述的采集控制单元、编码单元和/或重构单元等,用于控制多视角视频流的编码和重构。输入控制单元发送的上述信息可以由最终用户通过GUI界面或遥控设备进行输入,如观看视角、距离信息和显示方式;也可由终端自己检测,如终端的显示方式、距离检测、是否支持重构等信息。
所述显示装置包括依次连接的接收单元、解复用单元、解码单元、重构单元、渲染单元以及显示单元。
所述接收单元用于接收数据包,包括接收数据包并去除所述数据包的协议头,得到编码数据;
所述解复用单元用于对所述接收单元接收的数据进行解复用;
所述解码单元用于对所述解复用单元输出的编码数据进行解码,得到视频数据;
所述重构单元用于根据所述输入控制单元发送的距离信息对所述解码单元输出的立体视频数据进行图像重构;重构单元主要解决用户通过自动立体显示器观看立体图像因为位置移动带来的视差变化,从而导致所看到的立体图像发生变化的问题。自动立体显示器可以使用户在不带眼镜的条件下也能看到立体图像,但此时用户离自动立体显示器的距离是可以改变的,导致图像的视差发生变化;
图7显示了平行摄像机系统下图像视差p和物体景深zp以及用户离显示器距离D的关系,通过简单的几何关系可以得到:
从上式可以看出,图像的视差p依赖于用户到显示器的距离D。立体视频接收端收到的立体视频图像一般只具有固定的视差,可以作为一个参考视差pref,当D发生改变时,重构单元需要对视差pref做相应的调整,生成新的视差p′,并根据新视差重新生成另一幅图像。这样可以保证用户和显示表面的距离发生改变时能看到合适的图像。用户到显示表面的距离可以通过摄像机算出深度图自动检测,或由用户通过输入控制单元进行手工控制。如用户可以通过遥控器对重构图像的视差进行控制,从而在一定的位置范围内都能得到适合观看的立体图像。
所述渲染单元用于将所述解码单元或重构单元输出的数据渲染到立体显示设备上;
所述显示单元用于输入视频数据并显示视频图像,在本实施方式中,可以是自动立体显示器;
所述摄像及图像处理装置包括依次连接的摄像单元、采集控制单元、预处理单元、匹配/深度提取单元、编码单元、复用单元以及发送单元。另外,还包括分别连接所述采集控制单元的标定单元和同步单元。其中:
所述摄像单元用于摄像,包括进行多视角摄像,即从不同视角对同一场景进行拍摄,并输出立体视频数据;
所述采集控制单元用于控制所述摄像单元的操作,包括根据接收到所述输入控制单元发送的指定视角指令控制所述摄像单元进行所述指定视角的摄像,并输出所述立体视频数据。具体是:
1)根据接收到的指定视角指令控制所述摄像单元的所述指定视角对应的摄像机进行摄像,并输出所述立体视频数据;或
2)根据接收到的指定视角指令控制所述摄像单元的摄像机调整在所述指定视角并进行摄像,并输出所述立体视频数据;或
3)根据接收到的指定视角指令控制所述指定视角的邻近摄像机进行摄像,并输出所述立体视频数据。
所述采集控制单元可以控制一个摄像机组进行视频图像的采集并输出。摄像机组的数目可以根据场景和需求进行配置,当摄像机数为1时,采集控制单元输出二维视频流,当摄像机数为2时,采集控制单元输出双目立体视频流,当摄像机数大于2时,输出为多视角视频流。对于模拟摄像机,采集控制单元需要将模拟图像信号转换为数字视频图像。图像以帧的形式保存在采集控制单元的缓存中。
此外,所述采集控制单元还将采集到的图像提供给下述的标定单元进行摄像机标定,标定单元将得到摄像机内参和外参返回给采集控制单元。采集控制单元根据这些参数建立起视频流和所属采集摄像机属性的一一对应的关系,这些属性包括摄像机唯一的编号、摄像机内参和外参、每帧的采集时间戳等,并将摄像机属性和视频流按照一定格式进行输出。除了上述功能,采集控制单元还提供对摄像机的控制功能和图像采集的同步功能:采集控制单元可以根据摄像机标定的参数,通过摄像机的遥控接口对摄像机进行平移/转动/拉近/拉远等操作。采集控制单元也可以通过摄像机的同步接口向摄像机提供同步时钟信号用以控制同步采集。此外,采集控制单元也可以接受输入控制单元的控制,如根据用户选择的视角信息关闭不需要的摄像机的视频采集,即根据接收到输入控制单元的指定视角指令控制所述摄像单元的所述指定视角对应的摄像机进行摄像;或根据接收到输入控制单元的指定视角指令控制所述摄像单元的摄像机调整在所述指定视角并进行摄像;或根据接收到输入控制单元的指定视角指令控制所述指定视角的邻近摄像机进行摄像。
所述同步单元用于产生同步信号并输入到所述摄像单元,控制其进行同步采集;或将所述同步信号输入到所述采集控制单元,通知其控制所述多摄像单元进行同步采集;
所述标定单元用于获取所述摄像单元中摄像机的内参和外参,并输出摄像机位置信息比如位置校正指令到所述采集控制单元;
所述预处理单元用于接收所述采集控制单元输出的立体视频数据和相应的摄像机参数,并根据预处理算法对所述立体视频数据进行预处理;
所述匹配/深度提取单元用于从所述摄像机采集的图像中、或预处理单元输出的立体视频数据中得到成像物体的三维信息,并和所述立体视频数据一起输出给所述编码单元;
所述编码单元用于编码,包括对上述单元选出的立体视频数据进行编码。所述编码单元还可以根据输入控制单元发送过来的显示方式信息,采用相应编码方式对所述立体视频数据进行编码。
所述编码单元还可以与解码单元集成在一起成为编解码单元,负责对多路视频图像进行编解码。本实施方式中,所述编解码单元包含多种编解码器,如传统的2D图像编解码器(H.263、H.264等),支持2D图像编码加视差/深度编码的编解码器以及支持MVC标准的编码器等。在得到输入控制单元发送过来的显示方式信息时,采用与该显示方式相应的编码方式对所述立体视频数据进行编码,比如发送来的显示方式是适配MVC的显示方式,那么就用MVC标准来编码。
如上所述,在本实施方式中,采集控制单元和视频编解码单元可以接收来自输入控制单元的反向信道的输入,根据用户从输入控制单元发送过来的信息对视频图像的采集和编解码进行控制。基本的控制包括下面几方面:
(1)根据用户选择的视角,采集控制单元可以控制摄像机视频图像的采集,如只采集用户所观看视角的图像,不采集其它摄像机的视频流,这样可以减少后续编解码单元等的处理负担。此外,采集控制单元还可以根据视角信息控制摄像机进行调制,比如移动、旋转摄像机,以便采集不属于原来摄像机位置的视角的视频图像;
(2)根据用户选择的视角,找到相应的视频流进行编码,对于用户没有观看的视角的视频流不进行编码,通过这种方式可以有效地减轻编解码单元处理负担;
(3)根据用户终端的显示方式对相应的视频流进行编解码,如对于只具有二维显示方式的终端,则编码并发送1路二维视频流。通过这种方式可以提高所述多视角立体视频通信系统和普通视频通信系统的兼容性,并减少无用的数据的传输。
所述复用单元用于对所述编码单元输出的编码数据进行复用;
所述发送单元用于将所述复用单元输出的编码数据封装成符合实时传输协议的数据包,并通过分组网络进行实时传输。
参阅图8和图9,工作时,采集控制单元控制摄像单元中摄像机的采集,并输出视频流,经过预处理单元、匹配/深度提取单元的一系列的处理后到达视频编码单元。显示装置一侧的输入控制单元通过反向信道发出指令,来控制所述采集控制单元和/或编码单元,使从所述摄像单元输出的多路视频数据中选择出部分视角的视频数据到编码单元。这里,可以将所述采集控制单元作为进行流选择的功能实体。所述采集控制单元通过反向信道接收到输入控制单元的指定视角指令,然后选择视频流的方式可以包括以下:
1)将所述指定视角指令所携带视角(点)信息与摄像单元控制的每个摄像机的位置信息进行比较,即将所述指定视角指令携带的视角与所述每个摄像机输出的每路数据的视角信息一一匹配,得到与所述指定视角对应的至少一路立体视频数据,如果从所述位置信息得出该摄像机进行摄像的视角符合接收到的指定视角指令所携带的指定视角,则在所述指定视角下进行摄像,即采用该摄像机进行所属视频流的采集;
2)如果所述指定视角指令所携带的视角信息和摄像机位置信息不符,即不能匹配所述每路数据的视角信息与所述指定视角指令携带的视角,则需要进一步判断是否需要调整摄像机的位置,在判断需要调整摄像机位置时,控制所述摄像单元的摄像机调整在所述指定视角并进行摄像,如果调整成功,则继续进行摄像的操作;
3)如果不支持摄像机的调整,或调整不成功,即摄像机不能调整到该指定视角指令携带的视角时,则根据指定视角指令控制所述指定视角的邻近摄像机进行摄像,并输出所述立体视频数据,同时将所述指定视角的邻近摄像机摄像得到的数据及每个摄像机内参和外参、以及采集时间戳向所述编码单元发送,以便在接收端从其它视角的视频图像重构出所要求视角的图像。
如果不输出多路视频数据及摄像机内参、外参、时间戳等信息到编码单元,即不在接收端重构需要视角的图像,可以在摄像机一侧增加图像处理单元,用于将所述指定视角的邻近摄像机摄像得到的数据进行重构,得到虚拟视角数据并向所述编码单元发送。
也就是说,可以首先判断摄像机进行摄像的视角符合接收到的指定视角指令所携带的指定视角,相符的情况下采用该摄像机摄像,否则判断是否支持摄像机调整,如果支持摄像机调整,则可以通过改变摄像机的位置来采集所要求视角的视频图像。当通过调整摄像机位置也不能得到所需视角时,可以通过上述第三种的重构方式采集相应摄像机的视频流。
在选择视频流数据后,编码单元对选择的视频流进行编码。如果选择的视频流有两路以上,则这些码流进入复用单元进行复用,再进入发送单元分组化,形成分组数据流通过网络接口进行传输。此外,如前面所述,所述编码单元还可以根据所述显示装置一侧显示单元的显示方式,采用相应编码方式对所述立体视频数据进行编码。
显示装置一侧的接收单元接收该分组数据流,经处理后发送到解复用单元进行解复用。解复用后的数据流被发送到解码单元进行解码,生成解码。如果需要重构则由重构单元对视频流图像进行重构。输入控制单元位于接收端,其通过反向信道控制发送端的采集控制单元和/或编码单元。在重构和编解码的处理上,由于接收端和发送端的工作要配合,输入控制单元也可以有通道对解码单元和重构单元同时进行控制。
图10显示了通过输入控制单元控制编码单元的流程图。发送端从N个摄像机获取视频图像数据流后,首先要判定所选择视角(点)所属的视频流。由于采集控制单元记录了摄像机和对应的视频流的视角信息,因此它可以根据视角(摄像机位置)信息定位视频流,即将所述每路数据的视角信息与所述指定视角指令携带的视角(以视点标识的形式)一一匹配,得到与所述指定视角对应的视频数据。之后编码单元判定显示装置一侧显示单元的显示模式信息,并根据显示模式信息选择合适的编码方式。例如,当接收端只有二维图像显示方式,则编码单元将视频流按二维方式编码,或根据一定的规则对3D视频数据进行,如只传输左/右图像中的一幅进行二维编码;如果显示单元能够显示双目立体视频,则编码单元可以按照二维图像+深度/视差图的方式进行编码;如果显示单元需要同时显示多个差别很大视角的图像,则编码单元可以按照MVC标准进行编码。编码后的视频流发送到复用单元进行帧/场复用,复用后的数据被进行分组传输。在显示装置一侧,解码单元由于和编码单元一样收到输入控制单元的控制,可以得到同样的编码信息对数据流进行解码。
值得说明的是,前述本发明多视角摄像及图像处理装置各实施方式中的各单元可以集成在一个处理模块中;同理,前述本发明多视角摄像及图像处理系统其他实施方式中的各单元也可以集成在一个处理模块中;或者,前述各实施方式各单元中的任何两个或两个以上都可以集成在一个处理模块中。
还值得说明的是,本发明实施方式中的各单元既可以采用硬件的形式实现,可软件实现的部分也可以采用软件功能模块的形式实现。相应地,本发明实施方式既可以作为独立的产品销售或使用,可软件实现的部分也可以存储在一个计算机可读取存储介质中进行销售或使用。
参阅图11,本发明还提供摄像及图像处理方法第一实施方式,包括以下步骤:
步骤1101:进行多视角摄像并输出立体视频数据;
步骤1102:从所述立体视频数据中选择至少一路数据;
步骤1103:对所述选出的立体视频数据进行编码。
在其他实施方式中,所述步骤1101:进行多视角摄像并输出立体视频数据具体是:根据接收到的指定视角指令进行所述指定视角的摄像,并输出立体视频数据,具体包括:
1)在所述摄像的视角符合接收到的指定视角指令所携带的指定视角时,在所述指定视角下进行摄像;或
2)按照接收到的指定视角指令所携带的指定视角设置摄像机的摄像视角,并进行摄像;或
3)在所述摄像的视角与接收到的指定视角指令所携带的指定视角不相符时,控制所述指定视角的邻近摄像机进行摄像。
所述步骤1101:进行多视角摄像并输出立体视频数据还可以如下:
1)进行多视角摄像并输出所述立体视频数据及其对应每路数据的视角信息;
2)根据接收到的指定视角指令,将所述每路数据的视角信息与所述指定视角指令携带的视角一一匹配,得到与所述指定视角对应的至少一路立体视频数据。
所述步骤1103:对所述选出的立体视频数据进行编码可以是:根据显示所述立体视频数据的显示单元的显示方式,采用相应编码方式对所述立体视频数据进行编码。
在其他实施方式中,还进一步包括:
步骤1104:输入用户到显示表面的距离信息;
步骤1105:根据所述距离信息对所述立体视频数据进行图像重构。
本领域普通技术人员可以理解实现上述摄像及图像处理方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,该程序在执行时,可以包括前述本发明方法各个实施方式的内容。这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
参阅图12,本发明还提供一种视频解码和图像处理方法,包括:
步骤1201:输入用户观看的视角和用户到显示表面的距离信息,对接收到的立体视频数据进行解码;
步骤1202:根据所述视角和距离信息对所述解码后的立体视频数据进行图像重构,得到适合用户观看的图像并进行显示。
所述步骤:输入用户观看的视角和用户到显示表面的距离信息包括:
由用户手工输入或由系统自动检测用户观看视角和用户到显示表面的距离信息。
所述步骤:对接收到的立体视频数据进行解码包括:
根据显示所述立体视频数据的视角信息和显示单元的显示方式,采用相应解码方式对所述立体视频数据进行解码。
综上,本发明实施方式至少可以产生如下技术效果:
(1)控制视频图像采集或编码单元选择部分用户需要的视角的视频数据来进行编码,提高采集和编码效率,降低系统对处理能力的要求;
(2)可以仅对用户所需要观看的视角进行采集、编码和传输,可以最大限度地提高处理效率和传输效率,保证实时传输的质量;
(3)采用用户能够观看是显示模式来控制发送方的编码方式,可进一步减少系统的复杂度,提高系统可用性;
现有技术MVC视频图像需要在多种模式下显示,如二维显示器、立体显示器和全息显示器等,每种显示模式的数据类型不同,编码方式也会不同,但现有处理系统不支持根据显示类型进行MVC视频图像的编码。本发明实施方式可以很好地解决这个技术问题。
(4)可以根据用户到显示表面的距离信息来重构三维图像,实现质量更高的图像显示。
目前用户位置检测方法都不太可靠,而3D图像重构与用户的观察位置(用户离显示表面的距离)有很大关系。
以上对本发明所提供的一种多视角摄像及图像处理装置、系统及方法与解码处理方法通过具体实施例进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。