自由立体视频

2024-07-02

自由立体视频(精选7篇)

自由立体视频 篇1

0引言

虚拟现实简称VR (Virtual Reality) , 是计算机与用户之间的一种更为理想化的人-机界面形式, 它所具有的临境性、交互性、想象性这3个重要特征使其在国防、厂矿设计与规划、建筑设计、工业设计、培训、医学领域都具有很大的应用潜力[1]。

矿产资源的露天开采因其具有生产能力大、劳动效率和回采率高、安全条件好等地下开采所无法比拟的优点而被人们所认同。但是对露天矿区的设计、生产组织、环节配合、设备操作以及安全管理等问题, 还需要使用现代化的计算机技术手段去进行辅助解决, 以达到客观管理、高效便捷和适应新形势的目的[2,3,4]。随着多媒体技术的发展, 用户对自身在虚拟现实系统中的参与性、交互性和视觉立体感受的要求越来越高。因此, 如何更好、更便捷地将设计规划好的虚拟露天矿区蓝图向用户展示, 对设计人员而言是一个棘手的问题。

交互式自由立体视频技术是多媒体研究领域当中的新兴研究热点[5]。该技术可以用很低的计算机资源消耗和系统代价向广泛的用户群提供灵活的人机交互模式、自由的视角选择和全新的三维视觉感受。将交互式自由立体视频用于虚拟现实场景的三维立体显示, 将解决由于设备、软件等因素带来的制约, 可向设计决策人员进行大范围的场景展示。本文尝试将最新的自由立体视频与虚拟现实技术相结合, 设计并实现一种基于自由立体视频的露天矿开采虚拟现实技术的交互与演示系统。首先采用3DS Max和VRMap软件建立了某露天矿区的整体模型, 得到了该矿区在各个角度的虚拟视觉模型;接着将这些虚拟视觉模型按照适合立体显示的条件进行场景渲染和视频图象生成;最后结合虚拟场景的三维显示特性设计并实现了交互式自由立体视频软件, 将虚拟现实场景通过该软件进行展示。

1虚拟露天矿区的实现

露天矿区的虚拟场景建设是一个相当复杂的系统工程, 通过系统分析的方法可以将一个极其复杂、变幻莫测的现场实际系统抽象、提炼成一个简明扼要、反映系统实质的模型。虚拟场景首先需要解决视景建模问题, 利用虚拟环境建模工具或专用的虚拟现实建模语言平台来完成建模。如利用AutoCAD、3DS Max等建模工具建立三维模型, 然后通过OpenGL编程或利用软件VRMap将模型导入视景。本文利用虚拟场景软件VRMap和3DS Max, 针对某露天矿区 (矿区实景如图1所示) 建立了矿区模型, 在建模过程中所采用的层次划分原则与技术路线如图2所示。

对象建模是虚拟现实的核心与基础, 通过建立模型, 在计算机上实现人-机-矿山机器相互关系这一采矿复杂大系统的抽象与描述。经过分析并针对其自身特点将建模对象分为2种类型:一是形状规则、参数固定、可批量制作和重复使用的, 如各类采矿设备;二是形状不规则、变化较大的, 如矿山环境。针对这2种类型的建模对象的各自特点, 应选用不同的建模软件。

(1) 采矿设备

露天采矿设备种类与数量众多, 结构复杂, 主要有电铲、轮斗铲、拉铲、转载机、带式输送机、卡车和排土机等, 设备建模是系统建模的重点。首先进行现场调研, 获取不同种类、不同型号设备的技术规格

和参数, 如拉铲斗容、臂长等等;其次, 了解各设备零部件的连接、相互运动约束关系与自由度。选用3DS Max软件作为建模软件, 以特征建模为主要特点, 实现零部件建模、产品装备等复杂功能。同时该软件与VRMap可进行直接的格式转换, 利于其做场景的最终渲染。

(2) 矿山环境

露天矿区相对与地下矿井有其自身的特点, 台阶、工作面和运输坑道相对规整, 诸如台阶高度、标高和宽度等较为统一。在此利用3DS Max进行虚拟环境建模。首先, 在开采现状图上获得对象特征点的三维坐标, 建立对象物体的几何模型和空间位置;其次, 为了增强虚拟环境的真实感, 应用实际颜色、材质和纹理贴图对地表、黄土、岩石和煤层等进行渲染, 从而建立逼真的矿坑模型。

(3) 环境整合

在相关设备和矿山环境等各部分建模完成之后, 在VRMap软件当中进行整体整合, 将矿坑、设备等模型按照其各自的空间位置定位, 合成场景, 生成露天矿区的虚拟现实环境, 如图3所示。

(4) 漫游路线设计与相机参数设定

漫游方式主要分为3种:① 自动漫游方式, 即按设计者事先设计好的最佳路线和角度, 对虚拟现实场景进行被动式观看;② 查询式漫游方式, 即由用户自行设定一条漫游路径, 然后沿该路径进行漫游;③ 交互式漫游方式, 用户除了可以按自己的意愿选择路径之外, 还可以对三维场景中的物体进行操作。在实际的虚拟场景演示过程中, 如果采用前2种漫游方式, 用户只需要接受场景视觉内容而无需与场景中的实体发生交互。因此, 在演示过程中, 对于这2种漫游方式可以单独把场景的视觉内容提取出来进行演示, 无需通过虚拟现实软件进行漫游。对于第3种交互式的漫游方式, 则可以把视觉内容与实体交互分开处理。视觉内容的演示采用立体的显示方式, 而用户与场景实体之间的交互则通过虚拟现实软件的底层API (application program interface) 函数接口进行调用。为了适合立体显示的需要, 无论采用上面哪种方式进行漫游, 都必须对相机参数的设定有特殊的要求。传统的实景漫游在漫游路线上只放置1台摄像机, 渲染结果是二维的视觉图象, 无法达到立体显示要求。在本文设计的系统的实现过程中, 在所有的漫游路线上均放置了间距为6.5 cm、方向和焦距等参数设置均相同的摄像机对。漫游渲染过程中产生同一漫游路径的2个渲染场景。人的瞳孔距离一般是6.5 cm, 用这个间距的摄像机对拍摄下来的场景才可以进行立体显示。

2基于自由立体视频的露天开采虚拟现实

2.1 可行性分析

自由立体视频技术作为交互式多媒体技术当中的最新研究领域, 引起了MPEG (moving picture expert group) 和JVT (joint video team) 国际视频组织以及广大科研工作者的关注。与虚拟现实技术相比, 自由立体视频的临境性、交互性、想象性是它们之间的共同特征, 但是自由立体视频同时还具有虚拟现实技术所无法比拟的一些优点:

(1) 显示技术:虚拟现实技术对虚拟场景的三维立体显示需要借助头盔式显示器, 其价格昂贵、技术复杂, 不利于一般用户的观看以及演示。自由立体视频只需通过价格非常低廉的偏光眼镜即可观看立体效果。

(2) 显示效果:虚拟现实技术通过渲染场景物体的大小以及相机对焦的拍摄虚实来表现物体与观看者之间的距离与位置, 观看者对物体没有实物感。而自由立体视频技术结合显示技术和人类生理特征, 能使场景从显示屏幕中突出来, 拉近观看者与场景的距离, 使人们能获得如观看立体电影所带来的强烈震撼的立体感受。

(3) 用户的参与性:虚拟现实技术通过头盔式设备和手柄进行人机交互, 设备昂贵, 而且能够参与其中的人数相当有限, 极大地限制了用户的使用范围与积极性。而自由立体视频技术设备价格低廉, 可参与的人数众多, 处于不同角度的人群可以看到其对应不同角度的立体场景。与此同时, 自由立体视频技术在人机交互方面除了可通过手柄交互之外, 观看者还可以通过简单的位置侦测设备 (如摄像头) 自主改变自己的观看角度, 以达到观看场景的角度变化的目的, 其交互性能和范围远远高于传统的虚拟现实显示技术。

(4) 可拓展性:虚拟现实立体场景的观看需要使用特定的设备以及软件, 对用户自身的能力素质和设备处理能力要求非常高。而自由立体视频除了可以进行大范围演示之外, 还可以通过流媒体技术在网络上进行组播与点播, 甚至借用平常的视频播放软件就能使所有接收自由立体视频的观看者自由地沉浸在立体的视觉感受中。

因此, 将自由立体视频技术与虚拟现实技术相结合, 是未来虚拟现实发展的一个趋势。同时, 将自由立体视频技术和虚拟现实技术共同用于露天矿区的设计、开采与管理等各个环节, 将使得露天开采在先期设计、中期开采和后期重建等方面具有很强的可操控性。

2.2 自由立体视频的关键技术

通过VRMap渲染得到的三维虚拟场景的平面图象, 本质上是二维图象, 而且在观看的过程中用户是被动观看、没有可参与性。虽然虚拟场景的搭建具有三维的参数, 但是通过摄像机拍摄下来的图片不能使观看者的肉眼产生立体的感觉。正如前文所讨论的, 可以使用头盔式显示技术来使人产生立体感, 但是这种设备的造价昂贵, 且不利于同时被多用户使用, 同时头盔式显示设备往往较重, 配戴起来不够方便舒适。正是由于传统虚拟现实显示技术在这些方面存在不足, 就使得需要探索新的显示方式和技术, 通过广播电视的立体视频的显示技术来使二维的平面图象在视觉上具有三维的感觉。立体视频的显示技术利用光学作用使平面视频图象中不同的图象部分分别进入人的2只眼睛, 再根据人眼的生理融合作用, 使得对平面图象有立体感。

图4为采用偏光技术的立体投影系统框架图。

计算机系统将通过间距为6.5 cm的双摄像机拍摄到的左、右视点视频图象分别输送到不同的投影设备上, 投影光束通过架设在各自投影仪前面的垂直与水平偏光镜片, 使得显示在金属投影幕上的2幅图象其光波震动方向分别为垂直和水平方向。金属投影幕反射回来的光线通过人眼前面的2个偏光镜片, 使得左眼和右眼分别只能接收对应光波震动方向图片信号。因此, 左、右眼所得到的图象是不同的, 分别对应着左、右摄像机所拍摄的图象内容。左、右眼睛在得到这些不同的视觉信号之后, 通过生理融合作用, 最终在大脑产生了对平面图象的立体感觉。

自由立体视频系统如图5所示。该系统通过多摄像机对场景进行拍摄, 取得多角度的视频数据, 用户通过鼠标、手柄、位置侦测设备以及偏光镜片就可以对场景进行交互式的立体观看, 还可以在二维显示与三维显示之间进行灵活的切换。

2.3 交互式自由立体视频软件系统

本文根据露天矿区设计的具体情况, 结合虚拟现实三维立体显示对交互式、沉浸感的要求, 将交互式自由立体视频软件系统的设计分为视频播放控制、视频视角控制和视频视觉控制3个主要模块, 如图6所示, 在Visual C++6.0开发平台上设计并开发了自由立体视频软件系统。

图7为该系统的具体运行界面。软件系统的显示窗口由顶端的微缩导航窗口、中间的当前视点主显示窗口、用户位置监控窗口和操作面板构成。

(1) 操作面板:

由3个部分构成:第一部分用于提供普通的视频播放软件操作功能, 如快进、快退、暂停、启动等;第二部分提供手动的视点切换功能, 允许用户利用按钮或者滑动条来进行视点切换, 让用户自主选择其喜爱或者感兴趣的观看视角, 用户可以通过显示界面上方的导航界面, 知道自己目前所处于的具体视角位置, 进而通过手动操作的方式进行视点切换;第三部分用于文件和视觉效果操作, 有进行二维显示和三维显示之间切换的功能选项。

(2) 用户位置监控窗口:

该窗口采集监控摄像头返回的用户位置信息。结合人脸识别技术, 利用摄像头检测观看者在监控范围内的具体位置。当观看者左右移动时, 表示观看视角发生变化, 通过现实空间坐标与虚拟空间坐标的转换关系, 将观看者的位置转换为虚拟场景中的视角坐标, 进而通过虚拟空间坐标关系把适合该坐标的场景反馈给观看者;当观看者前后移动时, 用户位置监控窗口中的人脸面积会发生变化, 通过计算该面积, 可得到观看者在前后坐标轴上移动的距离, 接着通过现实空间坐标和虚拟空间坐标的转换关系, 换算出观看者的移动距离, 并向观看者发送适合该距离观看的虚拟场景。因此, 当观看者左右移动、前后移动时, 监控窗口都能准确地捕获并做出判断, 进而将这些信息反馈到软件系统进行视点及场景的合理调整。

(3) 主显示窗:

该窗口显示用户所选择的当前视点内容和图象。当用户选择二维显示时, 该窗口只显示摄像机对当中左边摄像机所拍摄的内容;而当用户选择三维显示时, 主显示窗将同时显示摄像机对的2个摄像机拍摄的内容。

(4) 微缩导航窗口:

显示界面上方为微缩导航窗口。通过微缩导航窗口, 用户可以方便地知道当前视点左右两边还有多少视点可以进行切换, 以及这些视点所能看到的内容是什么。通常情况下, 因为对未知场景的好奇, 观看者的观看行为和心理会让其反复不停地切换视点, 从而增加计算机系统的开销。当用户知道其目前所观看的视点附近所能看到的内容之后, 就会减少无谓的视点切换次数。这样既方便了用户, 同时也降低了系统资源的消耗。对主显示窗口所显示的当前视点, 在导航窗口中予以亮化显示;对非当前视点图象予以暗化显示。这样, 用户就可以方便地知道自己当前所观看的视点以及周边视点情况。

3结语

交互式自由立体视频技术是多媒体研究领域当中的新兴研究热点。结合采矿学、计算机技术等, 借助3DS和VRMap等计算机软件, 本文尝试将最新的自由立体视频与虚拟现实技术相结合, 设计并实现了一种基于自由立体视频的露天矿开采虚拟现实技术的交互与演示系统, 该系统具有理论上的可行性和现实的可操作性, 具有交互性好、用户参与性高等特点。交互式自由立体视频技术的研究开发使人们更加深刻地了解实际矿业工作的环境, 进行风险预测, 对提高煤矿安全生产、系统优化设计等具有非常实用的价值。所以, 基于自由立体视频的虚拟现实技术必将广泛应用于生态重建、矿井安全、工作面生产工艺以及矿山环境的风险评价等生产领域。

摘要:文章结合最新的交互式自由立体视频技术与露天开采虚拟现实技术, 设计并实现了一种基于自由立体视频的露天矿开采虚拟现实技术的交互与演示系统。文章利用3DS Max和VRMap软件建立了某露天矿区的虚拟视觉模型, 并将这些虚拟视觉模型按照适合立体显示的条件进行场景渲染和视频图象生成, 最后结合虚拟场景的三维显示特性设计了交互式自由立体视频软件, 通过该软件展示了虚拟现实场景。该系统克服了传统虚拟现实演示的局限性, 用较低的成本支持更多的用户进行参与和交互, 同时也具有较强的环境拓展性。

关键词:露天矿,虚拟现实,自由立体视频,人机交互

参考文献

[1]汪成为.灵境 (虚拟现实) 技术的理论、实践与应用[M].北京:清华大学出版社, 1996.

[2]张幼蒂.现代露天开采技术国际发展与我国露天采煤前景[J].露天采矿技术, 2005 (3) :1~3.

[3]张瑞新, 李新旺, 姚新港, 等.露天开采工艺及其风险状况的模拟[J].中国矿业, 2006, 15 (10) :57~59.

[4]胡福祥, 蔡鸿起.虚拟现实技术在露天矿山设计中应用的展望[J].金属矿山, 2004 (2) :50~51, 67.

[5]申闫春, 才庆祥, 张幼蒂, 等.虚拟现实技术在露天矿生态重建仿真中的应用[J].中国矿业大学学报, 2002 (1) :1~5.

自由立体视频 篇2

该方案基于MFC框架,播放器功能完全采用底层的WIN32API实现,具有结构清晰、设计简洁、可扩展性强的特点。与普通视频相比,立体视频具有多个视频通道,数据量较大。本文所涉及的自由立体视频源,其每一帧的立体图像都由8幅存在一定视差的平面图像合成而来。需要播放立体视频时,通过与狭缝光栅相匹配的立体合成算法[2],将8幅分辨率为720×360的图像合成分辨率为1 920×1080的立体图像进行显示。所以,播放器除了具有普通视频播放器的基本功能之外,还具备视频格式自动匹配、帧率控制及平面/立体模式自由切换等功能。同时,为了达到明显的立体效果,帧率至少要达到20f/s以上。

1 自由立体视频播放器实现原理

播放器基于MFC框架,按钮控件实现对播放器各项功能的控制,进度条控件显示视频解码线程的进度,滚动条控件显示视频播放的进度,并具备拖动滚动条以控制视频进度的功能。静态文本控件内显示视频帧数,累计时长、平均帧率等实时信息。播放器原理如图1所示。

立体播放器处理视频文件的流程是,从数据文件读取YUV420数据,根据图像的大小,以帧为单位转换为内存无关位图DIB(即RGB格式)[3],并利用与狭缝光栅相匹配的合成算法将RGB像素数据重新组合排列,最终将内存中已经排列好的RGB数据显示在播放器的视频区域。

视频播放器的显示原理与动画片的原理类似,利用人眼的视觉暂留特性,快速地把一张张图像贴到播放器的视频区域。人眼无法分辨这些静止图像,感觉如同播放动画一样。

通过贴有特定光栅的显示器来显示、播放立体图像,由于观察者双眼相对于光栅屏幕的空间位置不同,会产生双眼视差[4],从而令观察者无需借助立体眼镜即可裸眼体验立体感觉。

2 播放器性能

为了精确测量播放程序中各个功能模块的耗时情况,程序中加入了测量时间的功能。

实现方式:在程序运行时,首先调用QueryPerformanceFrequency()函数,得到CPU的时钟频率m_freq。在需要测量时间的操作之前和之后调用QueryPerformanceCounter ()函数,分别得到2个时钟计数值mcount_start和m_count_stop,则利用公式:

即可得到执行操作所消耗的时间。

利用此种方法,测得播放器播放视频过程中各个环节的耗时情况,如图2所示。

初步实现播放功能时,播放视频的帧率很低,只有9 f/s~11f/s,所以需要针对视频播放过程中各个环节的原理和特点采取不同的方式提高播放器的运行效率。

3 关键技术研究与性能改进方法

3.1 内存中图像数据的显示

将内存中的RGB数据显示到视频区域,需要在具备图像显示功能的函数体中,提供表示图像颜色位数、尺寸等格式信息的结构体BITMAPINFO,以及图像数据起始地址的指针BMPbuffer[5]。对具备显示图像功能的函数进行测试,结果如下:

(1) StretchDIBits。可以用拉伸模式完成全屏显示功能,但是在拉伸模式下,图像会出现明显的色彩错误。

(2) SetDIBitsToDevice。只能原比例显示图像,如果显示器的分辨率设置小于1920×1080,则图像无法完整显示。

(3) DrawDib函数组。DrawDib是不依赖于图形设备接口(GDI)而直接操作显存的函数组。能够实现图像的显示功能,并且能以任意宽高比进行拉伸显示,拉伸后的图像无色彩错误。所以,此处采用DrawDib函数组来实现内存位图的显示功能。

显示功能的核心伪代码为:

核心函数是DrawDibDraw (),参数中需要提供视频显示控件上表示绘图区域的参数rect、LPBITMAPINFO类型的结构体指针m_IpBmpInfo及DIB数据的起始地址BMPbuffer。

经测试,DrawDib函数组能够很好地完成DIB图像的显示,贴图速度快,没有明显的延迟现象,并且在全屏模式播放时没有出现类似使用StretchDIBits ()函数时出现的色彩失真,达到了良好的显示效果。

3.2 内存映射文件处理大文件操作

分辨率为1 920×1 080的600帧的视频,采用YUV420存储格式时,体积高达1.78GB。目前,对于这种大文件的操作通常是以内存映射文件的方式来加以处理的[6]。

根据播放器功能模块的耗时统计结果,未使用内存映射文件方式,而直接从硬盘读取分辨率为720×360×8的YUV420数据,平均每帧耗时35 ms,是整个播放流程中耗时最大的环节。所以,采用内存映射文件的方式改进文件读取模块可以提高播放器的效率。内存文件映射是Windows的一种内存管理方法,通过文件映射使磁盘文件的全部或部分内容与进程虚拟地址空间的某个区域建立映射关联,可以直接对被映射的文件进行访问,不必执行文件I/O操作也无需对文件内容进行缓冲处理,这种特性在进行大文件的磁盘事务操作时将获得很高的效益。内存映射文件的一般编程流程如图3所示。

经过实际对比测试,直接从硬盘读取分辨率为720×360×8的YUV420数据平均帧耗时_35 ms。而通过内存映射文件的方式读取每帧数据的耗时可减少到15 ms左右。可见内存映射文件在处理大数据量文件时表现出了良好的性能,比通常使用的CFile类和ReadFile()等函数的文件处理方式更加快速有效。

3.3 缓冲解码

播放器已经实现了YUV视频格式的播放功能,在此基础上加入H.264解码模块以实现播放器对H.264格式的支持。

采用开放源码的JMVC来处理H.264视频视频的解码。经测试,对于1920×1 080的H.264视频,JMVC解码速度在12f/s左右,如果采用实时解码播放的方式,播放的帧率较低,达不到流畅播放的要求,因此采用缓冲解码的方式来实现。环形缓冲区的工作原理如图4所

为了接收JMVC解码H.264产生的YUV数据,首先在内存中开辟出能够存储100帧YUV数据的环形缓冲区YUV Buffer。所谓“环形”,是指当需要接收的YUV图像帧数多于缓冲区的承载量时,数据指针从缓冲区结尾处重新跳转至缓冲区起始处,即重新返回到缓冲区起始处开始存储,将先前的YUV数据覆盖掉。播放线程将缓冲区内的YUV数据处理并显示出来后,数据指针同样从缓冲区结尾处重新跳转至缓冲区起始处,即重新返回缓冲区起始处,继续处理播放YUV数据。

3.4 多线程的应用

根据播放器功能模块的耗时统计结果,使用单线程方式处理YUV数据的转换和RGB数据的合成平均耗时为18 ms和20 ms。

为了提高多核CPU的利用效率,采用多线程方式改进程序的功能模块。由于图像以帧为单位,每帧YUV图像数据排列结构相同且无相关性,所以在处理时将每帧图像由上至下分成4快,每块图像数据开启一个线程,同时采用四线程来处理转换过程。转换得到RGB图像,其像素数据的排列顺序也是从左至右、从下至上,所以RGB的合成工作也可采用四线程实现。

经过实际对比测试,采用4线程处理YUV数据的转换和RGB数据的合成,平均耗时降至5ms和7ms,大大提高了图像数据的转换与合成效率。

3.5 多线程同步、线程间通信

在播放H.264视频格式的模式下,播放器首先启动解码线程,向缓冲区内写入YUV数据。当缓冲区内开辟的100帧控件被装满后,需要利用线程通信机制向播放线程发送消息。播放线程开始处于等待状态,从消息队列中取得相应消息并验证,当识别出解码线程发送的特定消息后开启播放功能。采用此种方式,可以在保证视频不间断播放的基础上提高视频播放的帧率。但是由于采用多线程实现,线程间的同步成为不可忽视的问题。

解码和播放两个线程是同时执行的,解码线程提供YUV图像数据,播放线程将缓冲区内的YUV数据处理成RGB位图数据并显示出来。不允许在某一时刻,在任何一段内存区域上同时发生读取和写入操作,所以,必须采取有效的线程同步措施。常用的线程同步方式有:互斥对象、事件对象、临界区等。播放器中需要同步的只有解码和播放两个线程,所以此处采用互斥对象来实现线程的同步。线程之间的同步规则是:

(1)解码线程可以超前播放线程,但是超前的帧数不能大于缓冲区的长度。

(2)播放线程不可以超前解码线程。

根据缓冲区的长度构造一个互斥对象数组,数组的每个元素与缓冲区中一帧的YUV数据相对应。解码线程向缓冲区的某个区域写入数据之前,首先要请求与该位置相对应的互斥对象的拥有权,完成写入操作后,应立即放弃该互斥对象的所有权;播放线程从缓冲区内读取数据之前,也要首先请求与该位置相对应的互斥对象,完成读取操作后立即释放该互斥对象。

由于互斥对象只能被一个线程所拥有,在执行相关操作前,如果得不到相应的互斥对象,线程函数就会暂停执行,等待另一个线程释放互斥对象,有效地避免了同一段内存同时被两个线程读取和写入情况的。

经过测试,这种方案成功地实现了解码线程和播放线程的同步协调,有效地避免了播放视频过程中出现进度差错的问题。

3.6 视频播放速率的控制

播放线程中包含的操作有:(1) YUV到RGB转换;(2) RGB图像数据的重新合成;(3) RGB图像的显示。这三项操作整合到一个线程中,因为其时间损耗之和明显小于H.264解码,所以通过控制播放线程的速率来实现控制整体播放帧率的功能。

播放线程中,设置一个定时器,每隔一定时间,执行一帧的播放操作。播放线程每处理一帧图像耗时约15 ms,每秒能显示图像的帧数约为66帧(1000/15=66.6),所以用定时器控制播放线程的执行时,只要将定时器的时隙设置成大于15 ms的任意值,就能实现以指定的帧率来播放视频。例如,想要以25f/s的帧率播放,只需将控制播放线程的定时器时隙设置成40 ms即可。

经过优化后的各个环节耗时情况如图5所示。

3.7 平面2D/立体3D模式任意切换功能

平面与立体图像的区别只是RGB像素排列的不同,所以要播放普通的平面2D图像,只需要在合成立体图像的环节中,将8个不同视点的数据来源设置成相同的8个视点图像中的任意一个,合成后的图像则是普通的2D平面图像,通过光栅屏幕的观看效果和在普通屏幕上观看平面图像的效果是相同的。

4 播放器外观及显示效果

最终实现的播放器具备打开、列表、缓冲、播放、暂停、停止、进度控制、全屏播放及2D/3D模式切换等功能。如图6所示,上图为普通模式播放效果,下图为立体模式播放效果(立体模式需要在贴有光栅的专门显示设备上观看,在普通显示器上观察到的是模糊的图像)。

本文提出的立体视频播放器的实现方案运用WIN32API实现播放功能,播放器不依赖于任何其他外部组件,软件结构清晰、设计原理简洁、具有很强的可扩展性。目前播放器已经实现了对YUV和H.264两种视频格式的支持,以后还可以根据需要扩展其功能。立体播放器以贴有光栅的42英寸大屏幕显示器作为显示输出设备,播放视频清晰流畅,立体视觉效果明显,帧率符合设计要求,达到了预期的设计目标和性能要求。

参考文献

[1]秦开怀,罗建利.自由立体显示技术及其发展[J].中国图像图形学报,2009,14(10):1934-1940.

[2]宋晓炜,杨蕾.一种光栅普适的LCD多视点立体图像合成方法[J].计算机应用,2008,1(28):195-198.

[3]邵丹,韩家伟.YUV与RGB之间的转换[J].长春大学学报,2004(4):51-53.

[4]杨嘉琛,侯春萍,雷建军.基于人眼视觉特征的立体图像质量客观评价方法[J].天津大学学报,2009,42(7):622- 627.

[5]王伯尊,张凤茹.在Windows下实现多幅大尺寸位图的显示与浏览[J].应用科技,2002,29(4):42-44.

立体视频资源存储入库研究 篇3

随着多媒体技术的快速发展, 立体视频逐渐融入人们的日常生活中, 应用领域不断扩大, 已经广泛应用于军事、医疗、虚拟现实、教育科研等领域, 尤其是教育领域的应用不断增加, 同时产生大量立体视频资源。 常见的立体视频以双目立体视频为主, 通常采用双路分离、左右合成、上下合成等格式表示, 并通过红蓝或者偏光等形式显示和观看。 随着立体视频资源的增多, 立体视频资源存储入库成为亟待解决的问题。 本文主要解决双目立体视频的存储入库。

2.立体视频的本质特征

立体视频帧的本质特征是视频帧本身所蕴含的特征信息, 包括视频帧的颜色特征、纹理特征、形状特征、视差特征、深度特征, 等等。

颜色特征是数字图像领域中应用最广的特征之一, 提取图像的颜色特征分为三步:选取颜色空间、颜色区间量化、相似性计算。 颜色空间是一种通过特殊规则加以说明的颜色集合体, 数字图像上几乎任何一种颜色都能在颜色空间找到对应的点, 常用的颜色空间:RGB颜色空间, HSV颜色空间, YUV颜色空间。 纹理特征是一种不依赖于颜色或亮度的反映图像中同质现象的视觉特征, 是物体表面特性, 例如高山、小桥、石头、衣服等都有各自的纹理特征。 纹理特征包含物体表面结构组织排列的重要信息及其与周围环境的联系。 形状特征是指一个物体的外部轮廓, 与颜色特征和纹理特征相比, 形状特征在描述立体视频内容时更具有语义含义。 形状特征首先需要对图像分割, 把对象提取出来, 再用各种方法进行匹配测量。对于形状特征的描述方法有: 边界特征法、 傅里叶形状描述法、集合参数法、最小生成树等[1]。

与2D视频相比, 立体视频增加了视差和深度特征。立体电影的制作就是利用了双目视差的原理。 在拍摄时, 使用两台摄像机相距几厘米同时进行拍摄。 放映时, 把两个影像同时放映在屏幕上, 观众戴上立体眼镜使左右两眼的像落在视网膜上的非对应点, 并产生一定的差异, 从而产生立体视觉。

双目视差是指两眼注视外界物体时, 两个视网膜上视像之间的差异。 距离和深度知觉, 主要依赖双目视差, 它是形成立体视觉的最重要的依据。 人的双眼结构相同, 双眼间的距离大约是6.5cm, 当人们观看三维物体时, 物体投射在左右眼睛上的像并不完全落在视网膜上的对应区域, 左眼看物体的左边多一些, 右眼看物体的右边多一些, 三维物体在双眼视网膜上的像就存在差异, 称为双目视[2]。 深度信息反映了所拍摄物体到相机的距离, 获得深度信息的方式有两种;第一种是通过拍摄仪器直接获得, 但通过这种方式获得的深度信息往往分辨率低, 并且需要很大的计算复杂度, 对硬件设备要求很高, 一般情况下难以达到实时拍摄的需求。 第二种深度信息的获取是靠几何学知识, 利用已知参数的摄像机拍摄出的双目视频, 利用立体匹配计算出视差后, 反推视频对象的深度信息[2]。 随着立体匹配技术的不断完善, 现在已形成许多各具特色的匹配算法。 已有算法根据匹配准则的不同, 大致可以分为两大类:一类是局部匹配算法;另一类是全局匹配算法。全局匹配算法与局部匹配算法相比, 匹配准确性较高, 可以获得较高精度的稠密视差图, 但是往往计算量大、耗时比较长、不易于硬件实现, 无法应用于实时系统。 总之, 两类立体匹配算法各有优缺点, 适用于不同的情况和空间场景[3]。

3.建立立体视频存储入库模型

视频结构一般分为视频、场景、镜头、视频帧四个层次[4]。本文主要对立体视频资源的镜头、场景、关键帧三个方面进行研究, 建立立体视频资源存储入库模型。

3.1立体视频镜头分解存储入库

镜头是由时间上连续的帧构成, 同一个镜头内的内容具有一致性。通过判断连续帧之间的差异确定镜头的边界。 根据镜头边界的不同, 可分镜头的突变和镜头的渐变。 镜头突变是指一个镜头内容的变化发生在单个视频帧上。 镜头渐变是指相邻的两个镜头的变换是逐渐完成的, 在镜头切换的时候加入编辑特效, 达到视觉上平滑过渡的效果。 根据编辑特效的不同, 镜头的渐变可以分为淡入 (fade in) 、淡出 (fade out ) 、溶解 (dissolve) 、擦拭 (wipe) 等不同类型。 淡入是指画面亮度不断增强;淡出是指画面亮度慢慢变暗最终消失;溶解是指镜头的帧逐渐变淡退出; 擦拭是指后一个镜头的画面慢慢代替前面的一个镜头的画面。

目前立体视频镜头分割算法大多是基于2D视频的, 立体视频镜头分割算法还不成熟, 2D视频的镜头边界检测算法主要分为两大类:基于像素域的方法和基于压缩域的方法。 像素域中镜头边界检测方法主要利用时空域中的颜色、纹理、形状等特征进行检测。 像素域中的算法主要有像素比较法, 基于直方图的方法, 块匹配法, 基于边缘的方法。 由于现在大多数视频序列以压缩格式存储, 对这些压缩形式的视频流直接进行边界检测, 节省大量解压缩时间。 目前压缩域中的主要有基于DCT系数的方法, 基于小波变化的方法, 时空分析法。

虽然2D视频的镜头分割算法能完成立体视频资源存储入库的预处理工作, 但是运用2D视频镜头分割算法处理双目立体视频时, 检测结果往往存在一定误差, 并且不能很好地检测镜头渐变的完整边界变化, 在2D视频的镜头分割算法的基础上, 提取立体视频的深度特征, 进行镜头边界检测, 从而提高镜头边界的检测精度, 实现对立体视频的镜头准的确分割。 基于立体视频镜头分割算法, 对立体视频资源存储入库。

3.2立体视频场景分解存储入库

场景是由连续镜头组成的视频片段, 是表达一个完整情节的逻辑故事单元。

立体视频场景分割, 以镜头作为研究对象, 根据镜头的内容相关性和时间上的邻近性把相似的镜头划分到同一场景中, 这样一段视频被分割成若干个有意义的逻辑故事单元。

目前立体视频场景分割算法大多是基于2D视频的, 立体视频场景分割算法还不成熟。 大体上通过提取镜头的视觉特征, 把内容相关时间相近的镜头聚类成一个场景, 或者综合视觉信息和听觉信息划分场景[5]。

与传统的2D视频场景分割不同, 立体视频利用立体视频镜头分割算法的结果, 结合立体视频颜色特征、纹理等本质特征, 通过镜头聚类, 检测场景边界, 利用立体视频的深度特征, 实现对场景的准确分割, 基于立体视频场景分割算法, 对立体视频资源存储入库。

3.3立体视频关键帧分解存储入库

帧是立体视频的基本组成单位, 立体视频的每一帧都可以看成空间上独立、时间上相关的静止图像。 空间上独立体现在立体视频的每一帧都可以进行分析处理, 时间上相关体现在时间轴上相邻的帧一般会有内容上的相似性。

由于立体视频中, 帧的数量巨大, 可以用关键帧描述镜头和场景。 这样既充分描述了视频内容, 又减少了冗余信息。 关键帧就是能描述立体视频内容主要的帧。 根据立体视频结构的复杂程度, 关键帧可以由一帧或者多个帧组成。

目前立体视频关键帧提取算法主要是:基于镜头边界提取关键帧, 基于运动分析提取关键帧, 基于图像信息提取关键帧, 基于镜头活动性提取关键帧, 基于聚类的方法提起关键帧。

Zhang, Wu[6]等人依据帧间的显著变化来为2D视频选择多个关键帧, 首先把镜头的第一帧作为关键帧, 然后计算前一个关键帧与剩余帧之差, 如果差值大于某一阈值, 则再选取一个关键帧。 与2D视频不同, 立体视频依据帧间的显著变化, 再加上立体视频的深度信息构建相邻帧差, 实现对关键帧的准确提取, 基于立体视频关键帧提取算法, 对立体视频资源存储入库。

4.结语

在2D视频的镜头分割算法上基础上, 增加立体视频的深度特征, 得出立体视频镜头分割算法, 进而研究出立体视频场景分割算法和关键帧提取算法, 从镜头、场景、关键帧三个方面实现对立体视频资源高效的管理及利用。 对立体视频资源存储入库的同时, 增加了立体视频素材, 缓解了立体视频资源匮乏的现状。

参考文献

[1]印勇, 侯海珍.基于直方图帧差的自适应镜头分割算法[J].计算机工程与应用, 2010, 09:186-189.

[2]王波.双目视差的立体视觉及其在技术课程教育中的应用[D].浙江工业大学, 2012.

[3]杨志荣.双目视觉立体匹配方法和遮挡问题研究[D].燕山大学, 2010.

[4]Yong Rui, Huang, T.S, Mehrotra, S, “Exploring video structure beyond the shots, ”in Multimedia Computing and Systems, 1998.Proceedings.IEEE International Conference on, vol, no, pp.237-240, 28 Jun-1 Jul 1998.

[5]王旭军.视频场景分割方法研究[D].重庆大学, 2010.

立体电视视频质量影响因素分析 篇4

立体电视(Stereoscopic Television)又称三维电视(Three Dimension Television,3DTV),是数字电视和新媒体领域的一大热点。与现行电视相比,主要区别在于现行电视只传送一个平面的信息,而立体电视还传送物体的深度信息。立体电视在一个平面内使人们可直接看到三维立体图,画中事物既可以凸出于画面之外,也可以深藏其中,给人身临其境的感觉,有很高的艺术欣赏价值。立体电视视频的质量直接影响着立体电视技术的发展。目前关于立体电视视频质量评价缺乏科学体系和行业统一的测定标准,国内外很多学者已经开始关注研究。笔者基于目前各方提出的测定标准,从立体电视技术链的角度,归纳出可能影响立体电视视频质量的各个因素,以及对视频质量的具体影响表现。

1 立体电视基本原理

人的视觉特性和电视的电光转换成像原理是立体电视的2个最基本的依据,2个稍有差别的图像进入相距6~7 cm的双眼后,由于双目视差的存在,在大脑中综合成有立体感的图像。引起这种立体感觉的效应叫做“视觉位移”。两眼同时观察一个物体时,物体上每一点对两只眼睛都有一个张角。物体离双眼越近,其上每一点对双眼的张角越大,视差位移也越大。

对于平面图像序列,由于进入眼睛的是一幅幅角度完全相同的图像,所以视觉和大脑无法提取画面上物体真实意义上的空间立体感,不能体现其三维关系。而立体图像与平面图像有着本质的区别,平面图像反映了物体上下、左右二维关系。人们看到的一些平面图也有立体感,这主要是运用光影、虚实、明暗对比来体现的,而真正的立体画是模拟人眼看世界的原理,利用光学折射制作出来,它可以使眼睛感观上看到物体的上下、左右、前后三维关系,是真正视觉意义上的立体画。

Julesz曾经就利用随机点图证明双眼视差可以同任何视觉经验无关[1]。后人据此建立了基于双眼视差的立体视频质量客观评价的模型。

2 立体电视视频质量影响因素

从立体电视技术链的角度分析,一个完整的立体电视系统主要由采集制作、发端压缩编码、信号传输、收端硬件解码和立体显示这5大环节组成[2],如图1所示。最后观众通过佩戴立体眼镜或者裸眼方式看到立体视频。每个环节都可能造成视频质量不同程度的损伤,影响最后的立体效果。

2.1 采集制作对立体视频质量的影响

立体视频质量的好坏很大程度上取决于前端立体视频信号源的质量。首先考虑立体视频内容的获取途径。总的来说,途径可分为3大类:立体拍摄、立体动画制作以及2D转3D视频方法,如图2所示。

2.1.1 立体拍摄

立体拍摄方法有多种:

1)使用三维扫描仪刻画出相机到场景中每一个物体像素点的物理距离,深度信息刻画非常精确。但是其价格昂贵,扫描时间长,只能扫描静态物体,不能进行动态场地的三维扫描,扫描场景区域有限,因此不具备普适性。

2)使用深度相机,同样也能获取场景中的三维信息,但是因为深度相机较多地采用红外线方式进行深度测量,如果发射出去的射线经过了若干个面的反射,比如反射到墙上,墙反射到地上,地又反射到桌子上,然后反射回接收器,深度计算就会产生比较大的偏差,因此精度比较低,产生的立体画面质量比较差。

3)使用多相机拍摄系统。双目采集通过2个摄像头模拟人的双眼,方便得到场景跟人眼匹配的立体信息。但是缺点在于:首先2个摄像镜头不可调整,其次只有2个视点,用户无法选择新的视点观看场景,即缺乏交互功能。多目采集正好弥补了这些缺点,但摄像机数量多,携带不便,数据量非常大,压缩起来困难。清华大学建立了一个环形的光场采集系统,在笼子里铺上一圈摄像机,配不同的光照,采集过程中实现变光照,然后多相机多角度采集。当然,这个系统摄像机数量多,数据量也非常大,而且采集过程中光照不停变化,分析数据特性比较困难。Ijsselsteijn等人专门研究了拍摄机器参数变化对立体图像质量的影响,对3D电视系统数据采集的摄像机参数优化有指导意义[3]。用多相机模拟系统代替人眼拍摄立体视频存在2个问题。首先,人眼具有快速的视线聚合距离调整功能,模拟系统附加自动控制装置模拟这些人眼的细微运动比较困难。其次,多台摄像机的曝光、镜头缩放和聚焦控制必须做到同步,否则会存在stonekey,crosstalk等扭曲效应[4]。图3为立体拍摄设备实物举例。

2.1.2 立体动画制作

计算机制作生成三维动画的软件非常多,如3ds Max,Maya等。这方面对立体视频源质量不在讨论范围内。

2.1.3 2D转3D

目前通过2D转3D技术获得的立体视频质量普遍不高。2D转3D方式首先使用普通摄像机拍摄立体环境,通过光线透过镜头在CCD成像面上得到二维图像,通过二维信息换算或者反算回原有的三维信息,在视觉上是一种求解过程,但未知变量个数远远大于所能建立起来的方程数,因此解非常多。正因如此,最终恢复出来的三维场景的结果只能是一个近似结果,不可能还原成真实的三维场景。此外,还有一个问题,因为变量个数很多,方程个数同样很多,整个求解复杂度非常高,导致立体效果较差。

2.2 编解码对立体视频质量的影响

立体电视的拍摄制作都是在保持左眼信号与右眼信号分离与独立的情况下进行的,不进行混合与码流压缩,保持2个信号的高质量,一旦完成制作,就要根据应用考虑下一步的处理。

现行电视只传送一个平面的信息,而立体视频还需传送深度信息,立体视频要拍摄左右眼2路视频。这种逼真感的直接代价就是2倍甚至更多于普通视频的数据量,这给立体视频的传输和存储带来困难,所以必须借助于高效的编码技术压缩数据量。

目前立体视频压缩编码方法主要有基于视差估计的编码、多视点视频编码和三维网格编码3种技术[5]。基于视差估计的编码是寻找各视点图像间的空域相关性,但重建的目标图像块效应比较严重。多视点视频由放置于不同位置的摄像机对同一场景同步拍摄获取的多个视频序列构成,用户观看时可改变视点或视角。同一个场景内多个视点的画面之间存在很高的相关性,编码时通过消除空间冗余和时间冗余压缩数据量,但由于不同视频有其基于内容的特殊性,压缩方式不一定适用于所有内容的立体视频。三维网格用于描述三维场景、人脸部表情和身体动作的变化,通过三维建模软件和三维扫描获取三维网格模型,数据量巨大,一般通过量化法向、纹理坐标、颜色、顶点轨迹等属性达到压缩的目的,而量化造成了视频质量不可避免的下降[6]。

Stelmach等人研究了立体视频编码技术与主观感知质量间的关系。通过研究左右2视点在不同压缩率和不同空间分辨力对立体图像质量的影响时发现,立体图像质量主要取决于质量较高的图像视点,这意味着只要保持主观质量较好的那个视点码率不变,适当降低另一个视点图像的编码码率,不会影响立体图像的主观质量[7]。

在研的编码方法还包括多描述编码(Multiple Description Coding)、信道自适应编码(Channel Adaptive Coding)以及多视点视频编码(Multiple Visual Coding),不断减小编码环节对源视频造成的损伤。

2.3 信道传输对立体视频质量的影响

立体信号的传输离不开目前的电视传输手段——有线传输、卫星传输、地面传输以及新兴的互联网传输(IP-TV)。3D电视数据量巨大,传输带宽加大,而且数据之间还有非常紧密的联系,传统传输技术面临挑战。

目前国际上立体电视主要是基于卫星传输的立体电视业务。为了让已安装机顶盒的用户解码立体信号,基于卫星传输的立体电视业务传输的是空间交错的SBS(Side-by-Side)的半高清立体信号,需戴眼镜观看。SBS方式将每帧图像一分为二,显然这种方式以牺牲水平分解力为代价。与SBS相对应的是up/down方式,减半垂直分解力,即每帧图像在垂直方向上像素减半,减半的左右眼图像合并成新的一帧,其码流与SBS方式相当,都造成清晰度下降。

新兴的基于互联网的立体视频点播传输系统框架如图4所示。在整个框架中,立体视频点播服务端可以和多个客户端相连,负责立体视频数据的RTP封装、发送,RTSP命令的响应等,客户端利用RTSP协议点播立体视频节目,实现节目的播放、暂停、停止、随机访问等操作。网络服务端利用网页的方式发布节目,客户端利用浏览器了解节目的相关信息并进行点播。传输对视频质量造成的影响主要包括以下4点:

1)音视频同步。当声音与显示的视频图像不匹配时,称为音视频失同步,通常由于视频链路传送端和接收端之间的时钟差异导致。如果通过IP网络传输立体视频信号,由于IP网络与生俱来就是异步的,只能通过确保充足的网络带宽和不存在处理瓶颈(如路由器过载等会导致分组次序错乱)加以解决。

2)丢包。丢包是IP视频传输系统经常发生的差错之一,原因包括IP报头破坏、链路过载、数量不足或网络设备故障等。IP系统只能最大限度地降低丢包率,但对于偶尔发生的丢包现象很难避免。

3)分组抖动。当组成视频数据流的分组无法以一种平滑连续的方式到达时,就会产生分组抖动。对于时效性要求不高的数据,例如Web网页,抖动无影响,但是对于实时的视音频数据流而言,抖动的危害性很大。

4)误码。当用户接收的信号与最初发出的数据不同时,就出现了误码。不同的传输介质(无线、光纤、同轴电缆、双绞线等)导致误码出现的原因各不相同。一些差错仅会影响到一个像素,无害;而多数差错会影响到一连串的视频帧,非常严重。由于误码趋向于随机分布,没有太好的方法预测。目前纠正误码的主要方法有差错重传、前向纠错等。但差错重传会导致延时,前向纠错会消耗额外带宽,实际使用时还需综合考虑[8]。

2.4 立体显示对立体视频质量的影响

3D显示是3D电视技术链中的最后一环,也是最影响终端用户的一环。要显示3D内容,就要表示出每个点的深度或距离信息。3D显示技术直接影响立体视频清晰度、视场、深度、亮度、色度、对比度等各方面。

实现3D成像的方法有多种,设备上可分为液晶显示器、等离子显示器、投影仪以及新出现的手机等移动设备;技术上可分为眼镜式3D和裸眼式3D技术2大类。表1分别对2大类立体显示技术对立体视频质量的影响进行了比较。

从表1中可看出,不同的显示技术直接导致不同的立体显示效果。虽然3种眼镜式3D技术最终都将发展为更高一级的裸眼3D技术,但偏光式和主动快门式3D显示技术成像效果好、技术成熟,是目前3D显示的较好选择。

2.5 其他因素对立体视频质量的影响

人类的立体视觉一般由心理立体视觉与生理立体视觉两部分组成[9]。心理立体视觉是人通过观察事物形成的一种立体视觉经验和视觉记忆,可以帮助人们观看平面图像时感觉到一定的深度信息。生理立体视觉是由人眼的晶状体调节、双眼会聚和双眼视差等因素构成的立体视觉,其中双眼视差是人眼最强烈的生理立体视觉因素。但据统计,约有4%~6%的人由于先天或后天的原因,存在视差立体感视盲,看任何物体都是平面,没有空间距离感和深浅度。进一步估计,一般来说双眼视力相差度数在250°以上,就可能成为“立体视觉异常”。这类人观看立体电视时,立体感必然也会大打折扣[10]。此外,每个人由于个体的差异,双眼视差有所不同,所看立体景深有出入,而拍摄摄像机的视差是固定的,这也会导致部分人观看立体视频时立体效果有所降低,或出现双眼疲倦、身体不适感。

3 结论与展望

影响立体视频质量的原因是多方面的,随着技术的进步,研究人员正在不断采取新的方法,提高立体视频质量。

在编解码方面,中国具备自主知识产权的第二代信源编码标准AVS2定义了关于立体视频编解码的标准,支持深度编码、场景编码等新的立体视频表示方法,并介入ISO/IEC MPEG的高效视频编码(HVC)的制定;国际上,蓝光光盘协会制定的蓝光3D标准采用了基于多视角视频编码(MVC)的3D视频编码技术,该技术是基于ITU H.264的AVC视频编码技术上的拓展,相比2D内容,蓝光3D标准使用的MPEG-4-MVC技术对左右眼画面的数据进行压缩后数据增量大约为50%,能够实现与现有2D蓝光播放机的全高清1 080p高分辨力的后向兼容性。

在传输方面,HDMI高清晰度多媒体接口协议标准在HDMI 1.4的基础上,专门为3D立体影像传输进行升级,改进的1.4a版规范和对应的兼容性测试标准(CTS)也已发布,通过改进的HDMI接口可以在一根传输电缆内传送无压缩的音频信号及高分辨力的立体视频信号。

在显示方面,近日美国CES2011消费类电子展上出现了不少新型显示器。Cinema 3D电视采用FPR(Film Patterned Retarder)技术,很好解决了主动快门式立体电视图像模糊及闪烁问题。3D Light Boost技术采用液晶板表面薄型的薄膜,使3D影像的清晰度达到最大化。Cinema 3D电视同时配备Local Diming、微型像素控制以及支持减少运动模糊的“Tru Motion 400 Hz”功能,极大提高了立体电视的显示效果,液晶显示器的响应时间也得到缩减,这样不但可使3D图像更加清晰,还能减少鬼影现象,避免观众视觉疲劳[11]。多款新型主动快门式3D眼镜重量越来越轻。其中一款用户可以定做有度数的镜片,方便了近视眼患者;另一款采用全新镜架边缘设计,镜架连接于LCD镜片上沿,为观众提供更大的画面观看范围。

可以预见,随着立体视频技术的不断进步,立体视频质量将不断提高,立体电视将成为今后一种新型主流的娱乐形式。

参考文献

[1]JULESZ B.Binocular depth perception of computer-generated patterns[J].Bell System Technical Journal,1960,39(5):1125-1162.

[2]李小兰.立体电视编码传输技术及业务实现[J].电视技术,2010,34(11):4-9.

[3]IJSSELSTEIJN W,DE RIDDER H,VLIEGEN J.Subjective evaluationo f stereoscopic images:effects of camera parameters and display duration[J].IEEE Trans.Circuits and Systems for Video Technology,2000,10(2):225-233.

[4]WOODS A,DOCHERTY T,KOCH R.Image distortions in stereoscopicv ideo systems[EB/OL].[2010-12-21].http://www.andrewwoods3d.com/s pie93pa.html.

[5]沈萦华,吕朝辉.3DTV中的编码技术综述[J].电视技术,2009,33(11):28-30.

[6]DEERING M.Geometry compression[EB/OL].[2010-12-21].http://c iteseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.2.8941&rep=rep1&t ype=pdf.

[7]STELMACH L B,TAM W J.Stereoscopic image coding:effect ofd isparate image-quality in left-and right eye views[J].Signal Processing:I mage Communication,1998,14:111-117.

[8]辛普森,格林菲尔.IPTV与网络视频:拓展广播电视的应用范围[M].郎为民,集巧,译.北京:机械工业出版社,2008.

[9]侯春萍.平面图像立体化技术的研究[D].天津:天津大学,1998.

[10]孙延禄.3D影像显示方法丛谈[J].现代电影技术,2010(1):49-53.

自由立体视频 篇5

客观世界是存在三维尺寸的立体空间。自从显示设备诞生以来,为了可以真实地再现客观世界,人们从未间断对立体显示技术的研究[1,2]。人观测空间物体时产生的立体感源于空间物体在左右眼视网膜上的成像稍有差异,即视差,它是产生立体感(深度感)的重要因素[3]。多视点自由立体显示是目前最主要的立体显示方式之一[4],它无需配戴任何立体眼镜就能呈现视差图像从而获得深度信息[5,6,7]。自由立体显示技术以其方便舒适的特点成为研究的热点[8]。其中,基于柱透镜的立体显示设备因能提供较高亮度成为常见系统。类似平面显示器,人们也关心其所能展现的立体场景的画面大小、画面立体度,显示系统的成本与价格。笔者将围绕以上几点内容展开讨论,创新点在于光栅动态装配法简单易行,立体显示器立体度测试方法快速准确,为超大屏幕立体显示墙的研制打下坚实的基础。

2 基于柱透镜光栅的立体显示原理

由于光栅立体画的制作成本低、立体效果好,被广泛用于广告、工艺品和证卡上。光栅立体画是视差立体成像的一种方案。柱透镜把位于它后方焦平面的图像按扇形方向依次投射,让人的左右眼分别观看到视差影像,以产生立体感。图1a的光栅垂直双眼放置,是立体画和基于投影立体显示的常用方法。图1b的光栅成倾斜角放置,它是基于LCD自由立体显示的唯一方法。倾斜光栅的结果是像素与光栅不能完全吻合,引起漏光和亚屏幕之间的干扰,同时降低了立体度,故使用竖直光栅的数字光投影(DLP)立体显示器在分光与立体度方面也有一定优势。

这里按序列依次插入4视点图,插图数n=4,实景拍摄或计算机制作后进行软件插值合成,即

式中:j=0,1,…,n;Y=0,1,…,m。图1中的a4,a3,a2,a1分别表示图像P1,P2,P3,P4的1列。

插值合成后的图像需通过PS软件打印输出并和光栅完全匹配。4列像素需完全填满一条光栅的宽度,也就是1条光栅的宽度是打印输出的像素宽度的4倍。故一张1 920×1 080的立体图要与36 line/in(单位为线/英寸,1英寸=2.54 cm)的光栅完全匹配,即

式中:X为横向像素值;N为视点数;E为每英寸光栅的线数;L为PS软件打印输出需设置的画幅宽度。由于相同型号的光栅每一个批次的生产都会有误差,所以每次打印输出前都需多次打印黑白相间的测试图片以微调画幅宽度L。

3 用于大屏幕自由立体显示的光栅设计

系统使用单台高清DLP投影机,显示画面宽度需大于1 m。根据式(2),选用E=12 line/in的光栅可达到1 016 mm×571.5 mm的画幅。l为单根光栅的宽度也称光栅常数,其值为E的倒数。

光栅具有衍射效应,其光栅衍射方程为[9]

式中:m=0,±1,±2,…;λ为光波波长;φ为光栅的衍射角。由于λ≪l,以致各级的衍射太小,各级谱线距零级太近,故在分析光栅分光特性时忽略衍射而只计算折射。

成年人瞳孔距离deye约为65 mm,单个亚屏幕的宽度小于人眼间距,保证了绝大多数视点的立体视觉。本设计中的立体显示器允许在4 875 mm圆弧范围内自由观看,故单亚屏幕夹角α为

亚屏幕夹角α对应的柱透镜焦距f计算如下[10]

柱透镜背面的曲率半径r2为∞,柱透镜正面的焦距对应正面的曲率半径r1为

柱透镜与背投屏幕的距离Z为

由于光栅的生产误差,在使用根据以上指标生产的光栅时需要重新确定实物的参数。

4 自由立体显示器的快速动态装配

用于立体画制作的光栅厚度基本接近光栅的焦平面,这样打印输出的立体画可直接贴合在光栅的背面。但液晶显示器和DLP投影屏的成像层并不是位于显示器的表面,如直接把光栅覆在显示器前面的板上,就会使成像的像素远离焦平面,所以笔者使用膜材光栅并需寻找焦平面的准确位置。首先利用打印纸打印测试竖线,倾斜膜材光栅并把它放于打印纸上,逐渐抬高光栅高度,拉开光栅与打印纸的距离,图2a展示了不同距离情况下能观察到的图像。打印纸离光栅越近,折射线条越倾斜向上。如距离正好等于焦平面,折射线条则成为矩形。距离越大于焦平面,折射线条越倾斜向下。搜索形成矩形的准确焦平面位置称为光栅焦平面动态搜索法。通过投影产生的竖线也展示出相同的结果,图2b中间的点状画面对应的光栅与成像层的位置就是正确的焦平面距离。最终安装后的整体画面如图2c所示,由于材料的原因,实现的安装位置与焦平面位置略有偏差。

投影机的焦距需对准背投材料,通过在背后观察成像清晰度的方法可以获得大致的焦距,但要在正前方获得最清晰的像还要进行微调,此方法称为投影机焦距微调法(见图3)。同样先倾斜光栅,在焦平面调好的前提下观察分隔状矩形,投影机焦距越是远离成像层,矩形越大,当投影机焦距恰好位于成像层上,矩形面积与黑色面积接近1∶3,与4视点吻合。结果表明采用DLP和垂直光栅的方案可以获得很好的分光。

(a)利用打印纸测量光栅焦平面大致位置(b)屏幕显示竖线寻找焦平面位置(c)最终获得较准确的位置(a)投影机焦距微调后形成的矩形(b)以白色墙壁作为整屏立体度测试的依据

类似立体画光栅的匹配,笔者也使用了明暗相间的竖线图来调整像素与光栅的匹配位置。根据式(2)可计算出投影画面的大小。首先调整画面略小于计算值,可在屏幕正前方观察到图4a的条纹,然后调整投影机的梯形失真使最终画面呈现图4d的条纹。图4b表示画面的左右梯形失真,图4c表示画面的上下梯形失真。图4b表示画面的左右梯形失真,图4c表示画面的上下梯形失真。图4d显示的是系统最大程度消除梯形失真后的画面。然后略微放大画面,如图4e、图4f,匹配纹逐渐放大。最终当匹配纹的间距等于实际成像的宽度,左右眼能分别看到图4g和图4h时,说明光栅和像素已完全匹配,能对多视点图可进行较完全的分光,形成了基于单DLP投影的自由立体显示器原型样机。利用匹配纹的快速安装法是本文所制作立体显示器的基本方法。

通过匹配纹的快速安装法,样机已能展示较好的立体画面。

5 自由立体显示器的性能测试

柱透镜可以垂直安装在屏幕前,也可以倾斜安装在屏幕前。LCD屏的单个像素由红绿蓝3个子像素构成,物理位置不同,只能采取柱透镜倾斜方式。倾斜的光栅与显示像素不能完全匹配,故会引起漏光并增大立体视区间的互扰。LCD一般采用8视点(n=8)插图方式。而DLP单个像素的三原色物理位置相同,这里选择了垂直放置方案,光栅与显示像素可以完全匹配,对立体度的提高起到关键作用。为了比较立体度DLP,也可采用8视点的插图方式。为了获得更大的显示面积,最终选择4视点的插图方式。

立体视区分光特性分析是自由立体显示器最基本的测试内容,通过测试可直接获得屏幕立体度的周期变化曲线。国内有文献指出使用CCD摄像头和复合坐标系定位系统测量各视区光强。如图5a中,CCD摄像头围绕屏幕中心做多半径圆周运动,各拍摄位置位于半径和圆周的交叉位置上。CCD摄像头的对焦与曝光误差较大,所测量的灰度值与光强没有明确的比例关系。使用手动或自动的复合坐标系定位系统需拍摄大量的屏幕光强照片,通过分析这些照片来描绘整个光强分布并获取立体度数据。除了要进行多次重复的测试外,后续的数据处理也需花费较长的时间[11]。

如图5b,在立体屏幕正前方放置正投幕布以获得立体度的方法称为间接测量光强法,其可快速获得最佳观看位置和任意空间位置的立体度。如图5c上3行,前后移动正投幕布,观察到最细竖条纹时确定幕布已在最佳观看距离R上。如图5c第3行呈现最亮最细的条纹,亮条纹与相邻暗条纹的宽度比值接近理想值1∶3。如式(8),亮条纹中心与相邻暗条纹中心亮度值相除获得立体显示器的立体度Q,其值为17。立体度比值越大,明暗条纹宽度比值越接近理想值1∶(n-1),说明相邻最佳立体视区的互扰越小。实测基于DLP的立体显示方案立体视区互扰极小,能表现极佳立体画面。如图5c第4行,同样方法测定LCD立体度为12,观察到明暗条纹宽度比接近1∶5(由于LCD立体显示使用n=8视点图像插值合成,故理想值为1∶7),说明LCD的立体显示方案视区间存在明显互扰。

如图5d,3条曲线对应图5c上三行的水平光强。x0为单个立体视区中心位置,对应的E(x0)为画面的最亮值,E(x0-△x/4)为相邻立体视区中心位置,Q为立体度,表示相邻两个立体视区间互扰情况。立体度计算公式为

通常国内基于LCD的立体显示器最佳观看距离的立体度Q接近12,本文基于DLP投影的立体显示器最佳观看距离的立体度Q达到17。立体度越高代表立体质量越好。

显示样机试制费用也较低,其单DLP模块总花费控制在1.2万以内。比较相同尺寸的立体显示部件成本,DLP方案较LCD便宜一个数量级,由于采用光栅垂直安装的方法,其分光效果好,明暗条纹的宽度比接近理想值,通过微调像素大小后最佳观看距离的立体度可达到17。相同显示尺寸的DLP功耗也略小。由于使用1 800 lm的高清投影光机,投影画面也固定在0.6 m2左右,故立体显示器可在普通室内环境下观看。

6 小结

在自由立体显示领域,基于LCD的自由立体显示方案已较为成熟。但普通LCD的显示画面较小,不利于立体效果的真实展现。100 in的平板显示器价格约在50万元,而4台DLP拼接的100 in背投屏价格约在5万元。笔者先对适合大屏幕自由立体显示的光栅进行了设计,提出光栅焦平面测定法、投影焦距微调法、匹配纹装配法、快速立体度测试法,实现了立体屏的快速装配和测试,从而可构建基于DLP投影的大屏幕自由立体显示器,同时获得约150 in的立体显示器。相比LCD,基于DLP的自由立体显示器正面最佳观看位置立体度提升到17。

参考文献

[1]汪洋,王元庆.多用户自由立体显示技术[J].液晶与显示,2009,24(3):434-437.

[2]赵仁亮,赵悟翔,王琼华,等.狭缝光栅自由立体显示器立体可视区域的研究[J].光子学报,2008,37(5):960-963.

[3]刘文文,杜江.3DMAX自由立体显示功能的实现[J].合肥工业大学学报,2008,31(4):585-588.

[4]张超,王琼华,李大海,等.从平面图生成多视点自由立体显示视差图的研究[J].液晶与显示,2009,23(2):258-261.

[5]TEAVIS A R L.Autostereoscopic3-D display[J].Applied Optics,1990,29(29):4341-4342.

[6]CHATTERJEE M R,CHEN S T.Autostereoscopic,partial pixel,spatially multiplexed,and other3D display technologies[M].[S.l.]:Springer US,2006.

[7]LEE B,CHOI H,KIM J,et al.Status and prospects of autostereoscopic3D display technologies[C]//Proc.IEEE Conference on Lasers and Electro-optics Society Annual Meeting.[S.l.]:IEEE Press,2007:354-355.

[8]武维生,张海,沈威,等.裸眼立体显示中3D模型多视点影像提取[J].中国体视学与图像分析,2008,13(1):38-41.

[9]廖延彪.成像光学导论[M].北京:清华大学出版社,2008.

[10]周磊,陶宇虹,王琼华,等.立体显示用柱面透镜光栅的设计[J].光子学报,2009,38(1):30-33.

自由立体视频 篇6

随着立体显示技术的发展和市场需求的推动, HTC、夏普、三星等公司相继推出了基于Android系统的3D手机。除此之外, 基于Android系统的3D平板电脑、3D电视也越来越多。因此, 如何在Android系统上播放立体视频成为值得研究的问题之一。目前, Android系统的立体视频播放器仅有3DVPlayer一款。3DVPlayer是由深圳维尚视界立体显示技术有限公司开发, 该播放器仅支持左右格式的立体视频和垂直交错的立体视频显示方式, 功能还有待完善。鉴于这种情况, 本文重点对立体视频解码、立体视频显示这两个立体视频播放的关键技术进行研究, 开发一款支持常见立体视频格式、具有多种视频显示方式的立体视频播放器, 旨在为基于Android系统的立体显示产品解决立体视频播放的问题。

1 立体视频解码

立体视频格式有多种, 但是目前最常见的两种立体视频格式是左/右格式和上/下格式[1], 如图1所示。本文主要的研究对象即为这两种格式的立体视频。立体视频解码和普通的2D视频解码的最大区别就在于, 在得到一帧图像的像素数据后, 前者需要进行左右眼图像的分离, 而后者不用。

本文中的立体视频使用FFmpeg进行解码。FFmpeg是一个开源免费跨平台的音视频流方案, 它包含功能强大的音视频解码库。立体视频文件包含音频流和视频流, 视频流中包含左右眼图像。视频解码是一个比较复杂的过程, 而FFmpeg解码库的使用使得解码过程变得相对简单, 解码流程如图2所示。

首先, 注册所有的解码器 (av_register_all () 函数) , 解码器注册以后才可以使用。然后, 打开视频文件 (av_open_input_file () 函数) , 读取流信息 (av_find_stream_info () 函数) , 并确定音视频流的索引, 根据流索引确定音视频流对应的解码器并初始化 (avcodec_find_decoder () 、avcodec_open () 函数) 。接下来开始读取数据包 (av_read_frame () 函数) , 判断是音频包还是视频包, 如果是音频包则使用前面确定的音频解码器进行解码 (avcodec_decode_audio3 () 函数) , 如果是视频包, 则使用视频解码器进行解码 (avcodec_decode_video2 () 函数) [2]。

不同格式的立体视频每帧图像的像素数据在内存中的存储结构不同, 上/下格式、左/右格式的像素数据 (RGB888格式) 在内存中的存储结构如图3所示。

图3中:L代表左眼图像数据;R代表右眼图像数据;width表示图像宽;height表示图像高;pointer为指向一帧图像数据的指针;lpointer为指向左眼图像数据的指针;rpointer为指向右眼图像数据的指针;stride表示一行像素在内存中占据的字节个数;padding代表填补字节。

每一行像素数据后也许会包含有额外的填补字节 (padding) , 这部分字节主要是用于字节对齐, 以提升数据的存取效率。pointer和stride由前面FFmpeg视频解码时得到, 根据图3所示的图像数据存储结构, 可以计算出访问左右眼图像数据所需的变量, 计算结果如表1所示。

注: (1) lstride为左眼图像相邻两行第1个像素间间隔的字节个数; (2) rstride为右眼图像相邻两行第1个像素间间隔的字节个数。

根据表1中变量就可以分别访问组成左、右眼图像的像素数据, 如此一来, 左右眼图像在逻辑上就是两幅独立的图像, 也就实现了左右眼图像的分离。在立体视频显示部分就可以使用这里分离出来的左右眼图像按不同的显示方式来显示立体视频。

2 立体视频显示

立体视频显示决定像素在屏幕上的排列方式, 关系到立体显示设备能否产生立体效果, 是立体视频播放过程中最关键的一环。本文主要讨论7种立体视频显示方式, 如表2所示。

本文采用Android系统的OpenGL ES 2.0图形库来显示立体视频。OpenGL是应用最为广泛的图形库之一, 而OpenGL ES (OpenGL for Embedded System) 是由OpenGL裁剪而来, 为嵌入式设备而设计的图形库。OpenGL ES2.0的Shadering Language包括vertexShader和fragmentShader, 在vertexShader中处理顶点的坐标, 对纹理的采样则位于fragmentShader中[3]。

视频显示主要用到了OpenGL ES 2.0中的纹理贴图技术。首先在画布上绘制两个直角三角形, 构成一个矩形, 矩形相当于屏幕。使用立体视频解码后分离出来的左右眼图像数据生成左右眼纹理, 然后通过不同的处理方法, 以达到上述7种显示效果。这7种视频显示方式可以分为3类进行处理, 分别是:

1) 左/右

对于这两种显示方式, 只将左纹理或右纹理贴到显示区域即可。

2) 左/右、上/下

对于这两种显示方式, 生成一个新的纹理 (调用glTexImage2D () 函数) , 分别用左右眼像素数据更新显示区域的左右或上下部分即可 (调用glTexSubImage2D () 函数) 。

3) 水平交错、垂直交错、棋盘交错

对于这3种显示方式, 需要先生成一个模板纹理, 3种显示方式的模板纹理如图4所示。

在fragmentShader中, 采样器对模版纹理进行采样, 如果某一像素点的采样结果为白, 则显示区域中该像素点的颜色取左眼图像中对应像素点的颜色;否则, 取右眼图像中对应像素点的颜色。

3 立体视频播放器整体方案

立体视频播放器由文件浏览、参数选择、立体视频播放3个模块组成, 其中立体视频播放模块包括立体视频解码、立体视频显示、快进快退及其他子模块。立体视频播放器的整体方案如图5所示。

Android系统应用程序设计有3种编程语言组合可以选择:1) Java;2) Java+C/C++;3) C/C++。本文选择组合2) , 使用Java和C++语言编程。文件浏览、参数选择模块是用Java语言编程实现的, 立体视频播放模块则是用C++语言编程实现的。各模块功能如下:

1) 文件浏览

文件浏览可以逐个目录浏览文件, 也可以选择某个文件夹, 扫描其中包含的视频文件[4]。

2) 参数选择

参数选择主要进行立体视频格式以及立体视频显示方式的选择, 将用户的选择保存并传递给立体视频显示模块[5], 这些参数将影响后续的立体视频解码及显示。

3) 立体视频播放

立体视频播放模块是用C++语言实现的, 主要包含立体视频的解码、显示以及快进、快退、进度拖拽等播放控制功能。

4 测试

根据上述整体方案, 采用本文中研究的立体视频解码和显示的实现方法, 开发了一款Android系统立体视频播放器, 该播放器支持左/右、上/下格式的立体视频, 支持7种显示方式。在一款Android 2.3系统的平板电脑上对该立体视频播放器进行测试, 测试结果表明, 预期功能均已实现, 可以正常使用。以播放一个左/右格式的立体视频为例, 选择水平交错显示, 测试效果如图6所示, 图6b是图6a中方框部分的局部放大图。

5 小结

本文重点研究了在Android系统上播放立体视频的关键技术:立体视频解码、立体视频显示。在此基础上, 实现了一款支持7种显示方式的立体视频播放器, 该播放器适用于不同显示原理的立体显示设备。经过测试, 立体视频播放的基本功能均已实现, 可供用户使用。由于该立体视频播放器仅支持两种常见格式的立体视频, 因此, Android系统立体视频播放器对更多立体视频格式的支持将是下一步研究的重点。

摘要:为了解决立体视频在Android系统上的播放问题, 对在Android系统进行立体视频播放的关键技术进行了研究。与传统2D视频播放器相比, 立体视频播放器的关键技术是立体视频解码和立体视频显示。文中对这两种关键技术的实现方法进行了详细阐述, 并据此开发了一款立体视频播放器。该立体视频播放器, 支持常见的左/右、上/下格式立体视频, 有7种视频显示方式可供选择。该视频播放器在Android 2.3系统的平板电脑上进行了测试, 测试结果表明在Android系统上播放立体视频的基本功能均已实现, 可以供用户使用。

关键词:立体视频播放器,立体视频解码,立体视频显示,Android,FFmpeg

参考文献

[1]High-definition multimedia interface speciation version 1.4a extrac tion of 3D signaling portion[EB/OL].[2012-05-01].http://etmriwi.home.xs4all.nl/forum/hdmi_spec1.4a_3dextraction.pdf.

[2]Stephen Dranger.An ffmpeg and SDL Tutorial.[EB/OL].[2012-05-01].http://dranger.com/ffmpeg/.

[3]MUNSHI A, GINSBURG D, SHREINER D.OpenGL ES 2.0 program ming guide[M].Boston, USA:Addison-Wesley Professional, 2008.

[4]佘志龙, 陈昱勋, 郑名杰, 等.Google Android SDK开发范例大全[M].3版.北京:人民邮电出版社, 2011.

立体视频技术的发展现状综述 篇7

电视是在电影基础上产生,处理“光电-电光”的关系,实质是解决人眼与显示的问题,以满足人们对客观世界极大程度获取视觉信息的精神需求。然而,立体电视除了能给人提供传统二维电视的上下、左右视觉信息外,还能提供“景深”的更大信息量,更具视觉冲击力和临场感,是正在普及的数字电视的新发展,也驱使世界范围内的业界包括学界投入空前的力量给予关注。

1 立体视觉与立体视频采集

人们通过左右眼观看同样的对象,由于人眼双瞳间距一般在6~6.7 cm之间,使得两眼观看同一视点的角度不同而产生视觉差异,即两路不同的光信号在视网膜上形成两个不同的视像,经过大脑综合即可区分物体的前后远近,产生立体感。因此,所谓3D就是视差产生的左右位移。立体电视与立体电影都是利用“视差构成立体”的视觉原理,但在成像机制上,却是两个不同的系统。实践证明,当双眼视线夹角在12°左右时,观看到物体的表面最多,立体感最强。因此,为了满足人眼的立体视觉需要,从拍摄到显示的整个环节,都是围绕如何处理两路光信号或两路视频信号,而在采集立体视频即解决光电问题时,需要根据被拍物体与镜头之间的距离来调节两个摄像机距离,使两路信号夹角接近12°左右。目前市场上产生立体视频效果的主要方式有:立体拍摄、3D动画、2D到3D转换。它们的特点如表1所示。

立体拍摄主要方式有:双机或多机同步拍摄(多视点视频)、单机位移拍摄(单视点视频结合单视点深度)、使用专用(双镜头即双目立体视频)立体相机、普通单反(数码)相机配合专用立体镜头、以及深度影像置换拍摄技术等。应用较多的是采用单机水平双镜头专用立体相机,即模仿人的左右眼来获得最基本的立体视频。前不久索尼公司公布的单镜头3D摄像,仍然使用两个CMOS图像传感器,分别记录左右两幅图像,然后合成3D影像。在拍摄方式上,由多个摄像机从不同角度拍摄得到的多视点视频,能够使用户自由选择位置观看不同角度的场景,是拍摄3D的发展方向,但鉴于采集的数据特性复杂且数据量巨大,实时压缩处理技术尚不成熟,目前以相对成熟的单机双镜头的立体摄像机为主。

现已证明,同一空间视点在两镜头成像的图像平面中的投影位置差矢量为

式中:l为两摄像镜头的投影中心连线距离;f为镜头焦距;z为影像深度。可见,视差与深度成反比,即物体离双眼越远,视差位移越大,其双眼张角(亦称辐辏角)越大;影像深度越大,立体感越强,视差矢量蕴含深度信息。但客观上深度与影像视点的最终呈现,与眼睛距离、舒适度有关。市场上,韩、日两国的立体摄像机最多,技术上领先于国际水平,产品也相对成熟,如东芝、JVC、松下、索尼、三星等品牌。

2 立体视频编码与传输

2.1 关于编码及其核心算法

平面电视仅需一路视频信号编码,而立体电视为了满足视差的需要,至少需两路视频流的同时编码。其共同点是通过编码压缩去掉时间冗余、空间冗余和心里视觉冗余,但由于立体视频传输需要的资源至少是单通道平面电视的2倍以上,所以压缩编码是立体电视实现的关键,而运动和视差估计过程又是立体视频编码中的核心。目前流行如表2所示的3类压缩编码方法。

基于多视点的编码是立体电视发展方向,但目前基于视差估计和补偿的立体编码是主流,其编码的基本思路是:对左路视频进行传统数字视频压缩编码,即同一视点间进行运动估计即MCP技术(不参考其他视点的信息),而右路视频既要进行帧内的MCP,还要进行相邻视点间预测编码,参考左视点进行编码,即进行相邻视点间的视差估计,也即DCP预测技术。显然视差估计越精确,残差图像就越小,压缩比就越大。

须指出的是,不同的立体视频采集方式,其压缩编码算法路线不同(与平面视频编码区别)。目前普遍采用平行摄像系统,该系统中的空间一点在左右图像平面中的投影一般具有相同的y坐标,设其对应的两个图像点亮度相同,则可认为视差匹配搜索主要集中在水平方向,从而加快匹配搜索过程。鉴于立体视频的左右视点是由两台间隔非常近的摄像机同时拍摄同一场景得到,因此左右视点的内容具有天然的高度相关性,考虑到立体几何极线约束,场景中某一视点在左右图像中的点必定位于对应的偏振线上,那么进行DCP搜索时只需沿水平方向进行搜索即可,即透视投影左图像可认为是右图像沿水平负向的局部平移。可见,相邻视点间的视差估计是立体视频编码的关键,客观上DCP估计要比MCP复杂得多,目前常用的视差估计有图像特征点法和块匹配算法,此外,编码的原则要兼顾效率、容错性能和时延等方面的需求,已有的立体视频编码效率有待进一步提高。因此在不降低图像编码质量的同时,寻求高效的立体视频压缩编码是当今视频研究的迫切课题,以解决编码质量与效率之间的矛盾。可以充分结合视差域和运动域的信息互为利用的关系,即运动和视差联合估计快速算法,以彻底改变JWVM软件中将运动和视差估计分为2个独立步骤进行搜索的现状,文献[1]在这一方面做了很有价值的研究,该文所提出的迭代搜索策略利用运动/视差模型不断更新运动/视差矢量候选值,有效避免了陷入局部极小值的情况发生。实验结果证明,该算法在保证失真率性能基本不变的前提下,降低了96%的运算复杂度,有效节省了编码时间。而在立体视频编码中,运动和视差估计过程大约占编码时间的90%。

多视点视频编码MVC目前也取得长足进展,特别是在保证编码质量的前提下降低计算复杂度方面,基本思路是借鉴单视点视频编码的快速运动估计算法,同时考虑相邻视点的视频源于同一场景,视点之间编码信息存在相关性,即同时考虑运动矢量视点间相关性和空间相关性,可以用来进一步优化运动估计,降低计算复杂度[2,3,4]。MVC已经作为H.264/AVC的扩展方案,且JVT也提出JMVM软件测试平台JMVC4.0[5]。至于立体视频编码的核心算法,则采用先进的压缩编码算法,如小波变换或冗余离散小波变换[6]、分形视频编码[7]以及神经网络编码如利用多级神经分类器快速确定预测模式[8]等。先进的编码算法能更有效地提高压缩比,更适合多视点视频编码。如分形编码可以达到千倍以上的压缩,且编码时间更短。

在立体视频编解码标准方面,国际上已经推出H.264标准或MPEG4标准。H.264/AVC编码框架设计是目前单视点3D、多视点3D编码的主流。我国具有自主知识产权的第二代信源编码标准AVS2定义了立体视频编解码的标准,支持深度编码、场景编码等新的立体视频表示方法,并已介入ISO/IEC MPEG的高效视频编码标准的制定。在国内许多地方试验效果不错,如在深圳、广州、山东齐鲁、北京大学等地,其AVS 3D频道占用10 Mbit/s带宽资源,一般采用所谓“云电视高清机顶盒”接收。

2.2 立体视频传输

在带宽受限的差错信道中,如何更具稳健性地传输立体视频,是当前立体视频传输技术中的重要课题。包括视频流传输协议、容错编码、差错控制、信源信道联合编码等。理论与实验证明,在立体视频传输过程中,利用颜色视频和深度视频相关性,对颜色视频和深度视频数据包分配不同的容错码率[9],即采取不等的保护水平,能更有效地节约冗余码率,或者左路视频帧比右路视频帧赋予更高的保护级别,可获得较好的3D视频质量。此外,结合视频质量主要取决于质量较高的图像视点的视觉特性[10],利用后向错误隐藏技术,如利用二维视频或颜色视频与深度图像之间的强相关性,或者利用空间相关性及左右视点间视差信息相关性,即时空域混合的错误隐藏技术,最终可获得满意的3D视频效果。

立体视频传输方式主要有:传输独立的左右眼信号、传输时间交错的立体信号、传输空间交错的立体信号和传输二维+元数据信号。其中传输空间交错的立体信号在目前应用最多,且以左右格式(Side by Side)和上下格式(Up Down)在立体电视领域应用中最为广泛,而“隔行”方式和“棋盘”方式应用较少。左右格式和上下格式的传输方式,实质均为被动式立体信号传输的排列方式,将一帧图像在水平方向或垂直方向一分为二,前者在屏幕的左右两边分别显示要看的视频,后者在屏幕的上下半边显示左右眼要看的视频,其特点是降低水平分辨力或垂直分辨力,导致清晰度下降。

我国2012年元旦通过中星6A卫星开通的3D电视测试频道(下行频率、极化方式和符号率分别为:3 968,H,11 580),采用的就是SBS传输模式,需要1 920×1 080高清机顶盒及3D电视机进行接收。目前大多数国家3D广播均采用SBS模式,这种“左右”方式几乎成为目前传输3D视频的事实标准。

3 立体显示

立体显示是最终环节,解决电与光的问题,即如何产生两路光信号作用于左右眼,以形成视差使其综合为立体视觉图像。产生立体显示的效果,需利用人眼的视差特性,使一对视差(电)信号的两幅图像同时出现在屏幕上,或者将一对视差(电)信号的两幅图像先后轮流地出现在屏幕上,从而获得立体感。目前分为眼镜式和自由式两类,其中眼镜式主要分为主动式和被动式两种。

3.1 眼镜式

在眼镜式立体显示中,从被动色差式到偏光技术,再到主动快门式技术,由于被动色差式立体效果差且偏色,几乎被淘汰,目前市场上主要以偏光技术和主动快门式技术为主,它们的主要异同如表3所示。

综合各方面的技术看,目前眼镜式立体电视会持续较长时间,且以通用眼镜式的多视点显示器研发为重点。在我国目前的市场上,3D电视机如LG、松下、康佳、海信、长虹、TCL、联想、先锋等品牌,以被动偏光式占有率最大,刷新频率至少240 Hz以上的主动快门式也不少,如长虹、TCL、海尔、海信等品牌。在显示器类型上,以LCD,LED液晶显示器为主,尽管PDP显示屏闪频高,但其寿命不及前者,只是在3D超大屏幕显示中有些应用。

3.2 自由式立体显示

自由式显示首先经软件处理,把视频处理成恰当的格式,然后通过硬件手段,将左右眼视频分别折射到各自的区域,人们站在一些特定的区域,即可获得两路视差光信号,从而看到立体视频。毋庸置疑,较戴眼镜看立体视频,自由式即裸眼立体显示必将是立体电视的发展方向,目前自由式立体显示[11]的形式与特点如表4所示。

采用柱状透镜技术的3D电视,在目前自由式立体显示器中占多数,市场上的品牌有东芝、飞利浦、TCL、三星等。但柱状透镜技术的3D显示器,在呈现传统2D图像时有一些较小的失真。研究表明,从眼镜式立体到光栅式(多视点)立体电视,再到全息立体电视的发展过程,全息3D是真正的立体,是立体电视发展的最高境界,全息术可以实现“分身术”的视觉效果,目前系统在实时更新速度、稳定性及成本上需要突破。随着科技的飞速发展,很难说,2022年世界杯足球赛不采用全息技术实况转播与收视。

4 立体视频测试

MPEG于2011年4月面向全球各大科研院所发布了国际三维视频标准提案,以期尽快征集完善三维(多视点)视频编码技术的实现方案[12]。而目前支持立体显示的视频种类繁多,没有统一的国际标准,但在经济上和技术上有一定实力的国家,更是全力推出相关的技术或标准,我国在立体显示技术方面,正在制定适合国情的显示及测试标准,立体显示技术直接影响3D视频的清晰度、视场、深度、亮度均匀性、色度均匀性、对比度、可视角等,其中双眼串扰、可视角、闪烁等方面已得到业界的广泛关注。

5 结束语

立体视频可应用于立体数字电视、立体视频会议、视频监控、远程医疗、远程教育和视频点播等领域,已成为当前视频信号处理领域的研究热点。本文从立体视频的前端开始,经编码传输到接收显示的整个过程,分门别类地就目前业界现状及其热点问题,作了重点梳理与归纳,从中找出结论性的内容,以期同行参考、抉择。

摘要:围绕立体视频产生、编码、传输以及接收显示。就两路光信号产生视差的立体以及两路视频流的编码技术等方面,结合目前业界主流及其热点问题,作了广泛而深入的重点梳理与阐释。指出多视点视频、编码是发展方向。采用运动和视差联合估计,结合如分形编码、小波变换编码等快速算法并应用于最先进的编码标准中,把被动式通用眼镜作为当前一段时间的立体电视过渡,发展到未来的全息立体。

关键词:立体视频,视差,编码,传输,显示

参考文献

[1]邓智玭,贾克斌,陈锐霖,等.立体视频编码中运动和视差联合估计算法的研究[J].中国科学:信息科学,2011,41(10):1210-1218.

[2]孙懿雯,沈礼权,张兆扬.多视点编码中一种快速的模式选择方法[J].电视技术,2011,35(9):6-9.

[3]杨中华,戴声奎.新的多视点视频编码优化算法[J].计算机应用,2011(9):2461-2464.

[4]ISO/IEC JTC1/SC29/WG11.Description of exploration experimentsin 3D video coding[R].[S.l.]:ISO/IEC JTCI,2008.

[5]DVB BlueBook A151,Commercial requirements for DVB 3D-TV[S].2010.

[6]祝世平,侯仰拴.快速分形立体视频编码系统的设计[J].光学精密工程,2010(11):2506-2512.

[7]王翀,赵力,罗琳.AVS快速立体视频编码新方法[J].应用科学学报,2009(1):29-33.

[8]高韬,刘正光.基于冗余小波变换的立体图像视差估计[J].电视技术,2008,32(4):23-25.

[9]HEWAGE C T E R,WORRALL S T,DOGAN S,et al.A novelframe concealment method for depth maps using corresponding co lour motion vectors[C]//Proc.3DTV Conference:The True Vi sion-Capture,Transmission and Display of 3D Video.Istanbul:IEEE Press,2008:149-152.

[10]STELMACH L,TAM W J,MEEGAN D,et al.Stereo image quali ty:effects of mixed spatio-temporal resolution[J].IEEE Trans.Cir cuits and Systems for Video Technology,2000,10(2):188-193.

[11]王琼华,王爱红,梁栋,等.裸视3D显示技术概述[J].真空电子技术,2011(5):1-5.

【自由立体视频】推荐阅读:

立体安全07-14

立体成像05-27

立体形式06-03

立体多维06-15

立体06-16

立体影像06-28

立体车库07-05

立体体积07-08

立体探究07-10

立体视觉08-04

上一篇:影视音乐的审美价值下一篇:外墙保温裂缝如何防治