CN102215217B - Create a video conference during a call - Google Patents
Create a video conference during a call Download PDFInfo
- Publication number
- CN102215217B CN102215217B CN201010600623.4A CN201010600623A CN102215217B CN 102215217 B CN102215217 B CN 102215217B CN 201010600623 A CN201010600623 A CN 201010600623A CN 102215217 B CN102215217 B CN 102215217B
- Authority
- CN
- China
- Prior art keywords
- video
- image
- mobile device
- equipment
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
Description
当Apple的iPhone 4的样机在2010年3月25日从Apple的一个工程师处被窃取时,本申请中要揭示和主张的发明被提前且未经Apple授权地向公众公开了。在该明显盗窃之前,尚未提交本申请所基于的美国优先权申请。When a prototype of Apple's iPhone 4 was stolen from an Apple engineer on March 25, 2010, the inventions disclosed and claimed in this application were released to the public in advance and without Apple's authorization. Prior to this apparent theft, the US priority application on which this application is based had not been filed.
背景技术 Background technique
许多目前的便携式设备,比如智能电话机具备视频拍摄功能。通过电话机上的照相机,便携式设备的用户能够拍摄静止图像和视频。不过,在完成视频拍摄之后,为了把拍摄的视频传送给另一方,用户通常必须直接把视频发送给所述另一方,或者把视频上传到另一位置(例如,因特网视频托管网站(hosting site))。不幸的是,这不允许所述另一方在便携式设备拍摄视频的时候,查看实时视频流。Many current portable devices, such as smart phones, have video capture capabilities. Through the camera on the phone, the user of the portable device is able to capture still images and video. However, after video capture is complete, in order to transfer the captured video to another party, the user typically must send the video directly to the other party, or upload the video to another location (e.g., an Internet video hosting site). ). Unfortunately, this does not allow the other party to view the live video stream while the portable device is capturing the video.
另外,标准的便携式设备只配备一部照相机,并且处理来自该照相机的信息相当困难。理想的设备理应具有多部照相机,并且能够发送实时视频,所述实时视频是来自至少两部照相机的视频的合成。就处理多个拍摄的视频流的设备,和与所述设备连接、负责处理实时视频流的传输的网络来说,鉴于可供便携式设备利用的资源有限,这是一个尤其困难的问题。Additionally, standard portable devices are equipped with only one camera, and processing information from that camera is quite difficult. An ideal device would have multiple cameras and be able to send live video which is a composite of video from at least two cameras. This is a particularly difficult problem in view of the limited resources available to portable devices in terms of devices handling multiple captured video streams, and the network connected to said devices responsible for handling the transmission of the real-time video streams.
发明内容 Contents of the invention
本发明的一些实施例提供具有两部能够拍摄照片和视频的照相机的移动设备。一些实施例的移动设备具有显示拍摄的照片图像和视频图像的显示屏。它还包括保存拍摄的图像以便稍后传送给另一个设备的存储器。所述设备还具有网络接口,所述网络接口允许该设备在多个设备的用户之间的实时通信会话期间,把拍摄的图像传送给一个或多个设备。所述设备还包括编码器,它可使用所述编码器对拍摄的图像编码,以便本地存储或者传送给另一个设备。所述移动设备还包括解码器,所述解码器允许该设备对在实时通信会话期间由另一个设备拍摄的图解解码,或者对本地保存的图像解码。Some embodiments of the invention provide a mobile device with two cameras capable of taking pictures and video. The mobile device of some embodiments has a display screen that displays captured photo images and video images. It also includes memory to save captured images for later transfer to another device. The device also has a network interface that allows the device to transmit captured images to one or more devices during a real-time communication session between users of the plurality of devices. The device also includes an encoder that can be used to encode captured images for local storage or transmission to another device. The mobile device also includes a decoder that allows the device to decode diagrams taken by another device during a real-time communication session, or to decode locally saved images.
涉及拍摄的视频图像的传输的实时通信会话的一个例子是视频会议。在一些实施例中,移动设备在视频会议期间的任意特定时间,只能够传送一部照相机拍摄的视频图像。不过,在其它实施例中,移动设备能够在视频会议或者其它实时通信会话期间,同时传送来自其两部照相机拍摄的视频图像。An example of a real-time communication session involving the transmission of captured video images is video conferencing. In some embodiments, the mobile device is only capable of transmitting video images captured by one camera at any given time during the videoconference. However, in other embodiments, the mobile device can simultaneously transmit video images captured from its two cameras during a video conference or other real-time communication session.
在与另一个设备的视频会议期间,一些实施例的移动设备通过连同由其一部或两部照相机拍摄的视频一起,传送其它类型的内容。这种其它内容的一个例子包括在该设备的一部照相机拍摄用于视频会议的视频时,由设备的另一部照相机拍摄的低分辨率或高分辨率照片图像。这种其它内容的其它例子包括(1)保存在设备上的文件和其它内容,(2)设备的屏幕显示(即,显示在设备的屏幕上的内容),(3)在视频会议或者其它实时通信会话期间,从另一个设备接收的内容,等等。During a video conference with another device, the mobile device of some embodiments communicates other types of content by, along with video captured by one or both of its cameras. An example of such other content includes low-resolution or high-resolution photo images captured by one camera of the device while another camera of the device is capturing video for a video conference. Other examples of such other content include (1) files and other content stored on the device, (2) the device's screen display (i.e., content displayed on the device's screen), (3) Content received from another device, etc. during a communication session.
一些实施例的移动设备采用新颖的会议中(in-conference)调整技术,在视频会议期间进行调整。例如,在视频会议期间只传送一部照相机拍摄的视频时,一些实施例的移动设备能够动态切换成传送由其另一部照相机拍摄的视频。在这种情况下,一些实施例的移动设备把这种切换通知参与视频会议的任何其它设备,使得所述其它设备能够在它那一端提供由这两部照相机拍摄的视频之间的平滑转换。The mobile device of some embodiments employs novel in-conference adjustment techniques to make adjustments during a video conference. For example, during a video conference when only video captured by one camera is being transmitted, the mobile device of some embodiments can dynamically switch to transmitting video captured by its other camera. In this case, the mobile device of some embodiments notifies any other device participating in the video conference of this switch so that the other device can provide on its end a smooth transition between the video captured by the two cameras.
在一些实施例中,切换照相机的请求不仅能够起源于在视频会议期间,在其照相机之间进行切换的“本地”设备,而且还能够起源于正接收本地设备拍摄的视频的另一个“远程”设备。此外,允许一个设备指令另一个设备切换照相机只是一些实施例的设备的远程控制能力的一个例子。在一些实施例中,能够远程向设备指令的其它操作的例子包括曝光调整操作(例如,自动曝光),焦距调整操作(例如,自动聚焦)等等。能够本地或远程指定的新颖的会议中调整的另一个例子是识别拍摄视频中的感兴趣区域(ROI),和使用所述ROI识别修改拍摄照相机的行为,修改带有拍摄照相机的设备的图像处理操作,或者修改带有拍摄照相机的设备的编码操作。In some embodiments, the request to switch cameras can originate not only from a "local" device that is switching between its cameras during a video conference, but also from another "remote" device that is receiving video captured by the local device. equipment. Furthermore, allowing one device to instruct another device to switch cameras is just one example of the remote control capabilities of the devices of some embodiments. In some embodiments, examples of other operations that can be commanded remotely to the device include exposure adjustment operations (eg, auto exposure), focus adjustment operations (eg, auto focus), and the like. Another example of a novel in-session adjustment that can be specified locally or remotely is identifying a region of interest (ROI) in a captured video, and using said ROI identification to modify the behavior of the capturing camera, modifying the image processing of a device with the capturing camera operation, or modify the coded operation of a device with a capture camera.
一些实施例的新颖的会议中调整的又一个例子涉及设备产生的合成视频显示的实时修改。具体地说,在一些实施例中,移动设备产生同时显示由一个或多个设备的多部照相机拍摄的多个视频的合成显示。在一些情况下,合成显示把视频放在相邻的显示区中(例如,放在相邻的窗口中)。在其它情况下,合成显示是画中画(PIP)显示,所述PIP显示包括显示两个不同视频的至少两个显示区,其中一个显示区是背景主显示区,另一个显示区是重叠在背景主显示区上的前景插入显示区。Yet another example of the novel mid-meeting adjustments of some embodiments involves real-time modification of device-generated composite video displays. Specifically, in some embodiments, a mobile device generates a composite display that simultaneously displays multiple videos captured by multiple cameras of one or more devices. In some cases, composite display places video in adjacent display areas (eg, in adjacent windows). In other cases, the composite display is a picture-in-picture (PIP) display that includes at least two display areas displaying two different videos, one of which is a background main display area and the other display area is an overlay The foreground inset display area on top of the background main display area.
一些实施例中的合成视频显示的实时修改涉及响应于用户对显示区的选择和移动,在合成显示内移动一个或多个显示区。当提供合成显示的设备的屏幕旋转时,一些实施例还在视频会议期间旋转该合成显示。另外,一些实施例的移动设备允许设备的用户交换(swap)PIP显示中的视频(即,使前景插入显示中的视频出现在背景主显示中,而使背景主显示中的视频出现在前景插入显示中)。Real-time modification of the composite video display in some embodiments involves moving one or more display regions within the composite display in response to user selection and movement of the display regions. Some embodiments also rotate the composite display during a video conference when the screen of the device providing the composite display rotates. Additionally, the mobile device of some embodiments allows a user of the device to swap video in a PIP display (i.e., have video in the foreground inset display appear in the background main display, and have video in the background main display appear in the foreground inset displaying).
前面的发明内容意图简单介绍本发明的一些实施例。并不意味是在本文献中公开的所有发明主题的介绍或综述。下面的具体实施方式和在具体实施方式中涉及的附图将进一步说明在所述发明内容中描述的实施例,以及其它实施例。因此,要理解本文献描述的所有实施例,需要完整地考察发明内容、具体实施方式和附图。The foregoing summary of the invention is intended to briefly introduce some embodiments of the invention. It is not intended to be an introduction or overview of all inventive subject matter disclosed in this document. The following detailed description and the drawings referred to in the detailed description will further illustrate the embodiments described in this summary, as well as other embodiments. Therefore, an understanding of all of the embodiments described in this document requires a complete review of the Summary, Detailed Description and Drawings.
附图说明 Description of drawings
附加权利要求中陈述了本发明的新颖特征。不过,为了说明,在下述附图中表示了本发明的几个实施例。The novel features of the invention are set forth in the appended claims. However, for purposes of illustration, several embodiments of the invention are shown in the drawings described below.
图1图解说明一些实施例的合成显示。Figure 1 illustrates a synthetic display of some embodiments.
图2图解说明一些实施例的另一种合成显示。Figure 2 illustrates another synthetic display of some embodiments.
图3概念地图解说明一些实施例的双照相机移动设备的视频处理和编码模块的软件体系结构。Figure 3 conceptually illustrates the software architecture of the video processing and encoding modules of the dual camera mobile device of some embodiments.
图4概念地图解说明一些实施例的拍摄图像处理单元。Figure 4 conceptually illustrates a captured image processing unit of some embodiments.
图5概念地图解说明基于不同的垂直消隐间隔(VBI)的不同帧速率的例子。Figure 5 conceptually illustrates an example of different frame rates based on different vertical blanking intervals (VBI).
图6概念地图解说明基于不同VBI的不同隔行扫描帧速率的例子。Figure 6 conceptually illustrates an example of different interlaced frame rates based on different VBIs.
图7概念地图解说明一些实施例的另一个拍摄图像处理单元。Figure 7 conceptually illustrates another captured image processing unit of some embodiments.
图8概念地图解说明一些实施例的另一个拍摄图像处理单元。Figure 8 conceptually illustrates another captured image processing unit of some embodiments.
图9概念地图解说明一些实施例的双照相机移动设备的视频会议和处理模块的软件体系结构。Figure 9 conceptually illustrates the software architecture of the video conferencing and processing modules of the dual camera mobile device of some embodiments.
图10概念地图解说明一些实施例的示例视频会议请求消息接发序列。Figure 10 conceptually illustrates an example video conference request messaging sequence of some embodiments.
图11图解说明一些实施例的视频会议设置操作的用户界面。Figure 11 illustrates a user interface for video conference setup operations of some embodiments.
图12图解说明一些实施例的接受视频会议邀请的用户界面。Figure 12 illustrates a user interface for accepting a video conference invitation of some embodiments.
图13图解说明一些实施例的接受视频会议邀请的另一用户界面。Figure 13 illustrates another user interface of some embodiments for accepting a video conference invitation.
图14图解说明一些实施例的视频会议设置操作的另一用户界面。Figure 14 illustrates another user interface for video conference setup operations of some embodiments.
图15概念地图解说明一些实施例的设定视频会议的比特率的处理。Figure 15 conceptually illustrates the process of setting the bit rate for a video conference of some embodiments.
图16概念地图解说明一些实施例的双照相机移动设备的视频会议和处理模块的另一软件体系结构。Figure 16 conceptually illustrates another software architecture for the video conferencing and processing module of a dual camera mobile device of some embodiments.
图17概念地图解说明一些实施例的双照相机移动设备的另一软件体系结构。Figure 17 conceptually illustrates another software architecture for a dual camera mobile device of some embodiments.
图18概念地图解说明由如图16中图解说明的一些实施例的视频会议管理器执行的处理。FIG. 18 conceptually illustrates the processing performed by a video conference manager of some embodiments as illustrated in FIG. 16 .
图19概念地图解说明一些实施例的时间噪声降低模块的软件体系结构。Figure 19 conceptually illustrates the software architecture of the temporal noise reduction module of some embodiments.
图20概念地图解说明一些实施例的降低视频图像的时间噪声的处理。Figure 20 conceptually illustrates the process of reducing temporal noise of video images of some embodiments.
图21概念地图解说明由如图9中图解说明的一些实施例的图像处理管理器执行的处理。FIG. 21 conceptually illustrates the processing performed by the image processing manager of some embodiments as illustrated in FIG. 9 .
图22图解说明一些实施例的曝光调整操作的用户界面。Figure 22 illustrates a user interface for exposure adjustment operations of some embodiments.
图23图解说明一些实施例的焦距调整操作的用户界面。Figure 23 illustrates the user interface for the focus adjustment operation of some embodiments.
图24概念地图解说明由如图16中图解说明的一些实施例的图像处理管理器执行的透视校正处理。FIG. 24 conceptually illustrates the perspective correction process performed by the image processing manager of some embodiments as illustrated in FIG. 16 .
图25概念地图解说明一些实施例的示例透视校正操作。Figure 25 conceptually illustrates an example perspective correction operation of some embodiments.
图26概念地图解说明如图16中图解说明的一些实施例的编码器驱动器的软件体系结构。FIG. 26 conceptually illustrates the software architecture of an encoder driver of some embodiments as illustrated in FIG. 16 .
图27概念地图解说明由如图26中图解说明的一些实施例的编码器驱动器执行的图像缩放处理。FIG. 27 conceptually illustrates image scaling processing performed by an encoder driver of some embodiments as illustrated in FIG. 26 .
图28概念地图解说明由如图16中图解说明的一些实施例的解码器驱动器的软件体系结构。FIG. 28 conceptually illustrates the software architecture of the decoder driver of some embodiments as illustrated in FIG. 16 .
图29概念地图解说明由如图28中图解说明的一些实施例的解码器驱动器执行的图像提取处理。FIG. 29 conceptually illustrates the image extraction process performed by a decoder driver of some embodiments as illustrated in FIG. 28 .
图30图解说明一些实施例的包括两个速率控制器的编码器驱动器。Figure 30 illustrates an encoder driver including two rate controllers of some embodiments.
图31概念地图解说明如图16中图解说明的一些实施例的连网管理器的软件体系结构。FIG. 31 conceptually illustrates the software architecture of a networking manager of some embodiments as illustrated in FIG. 16 .
图32图解说明一些实施例的锁定到角落(snap to corner)操作的用户界面。Figure 32 illustrates the user interface for the snap to corner operation of some embodiments.
图33图解说明一些实施例的锁定到角落操作的另一用户界面。Figure 33 illustrates another user interface for the lock to corner operation of some embodiments.
图34图解说明一些实施例的PIP显示旋转操作的用户界面。Figure 34 illustrates a user interface for a PIP display rotation operation of some embodiments.
图35图解说明一些实施例的PIP显示旋转操作的另一用户界面。Figure 35 illustrates another user interface for a PIP display rotation operation of some embodiments.
图36图解说明一些实施例的PIP显示旋转操作的另一用户界面。Figure 36 illustrates another user interface for a PIP display rotation operation of some embodiments.
图37图解说明一些实施例的PIP显示旋转操作的另一用户界面。Figure 37 illustrates another user interface for a PIP display rotation operation of some embodiments.
图38图解说明一些实施例的缩放PIP显示中的前景插入显示区的用户界面。Figure 38 illustrates a user interface for scaling a foreground inset display area in a PIP display of some embodiments.
图39图解说明一些实施例的缩放PIP显示中的插入显示区的另一用户界面。Figure 39 illustrates another user interface for zooming inset display areas in a PIP display of some embodiments.
图40图解说明一些实施例的缩放PIP显示中的插入显示区的另一用户界面。Figure 40 illustrates another user interface for zooming inset display areas in a PIP display of some embodiments.
图41图解说明一些实施例的缩放PIP显示中的插入显示区的另一用户界面。Figure 41 illustrates another user interface for zooming inset display areas in a PIP display of some embodiments.
图42图解说明一些实施例的识别显示画面中的感兴趣区域的用户界面。Figure 42 illustrates a user interface of some embodiments for identifying a region of interest in a display.
图43图解说明一些实施例的识别显示画面中的感兴趣区域的另一用户界面。Figure 43 illustrates another user interface of some embodiments for identifying a region of interest in a display.
图44图解说明一些实施例的识别显示画面中的感兴趣区域的另一用户界面。Figure 44 illustrates another user interface of some embodiments for identifying a region of interest in a display.
图45图解说明一些实施例的在双照相机移动设备上进行本地切换照相机操作的处理。Figure 45 illustrates the process of locally switching camera operations on a dual camera mobile device of some embodiments.
图46图解说明一些实施例的切换照相机操作的用户界面。Figure 46 illustrates a user interface for switching camera operations of some embodiments.
图47图解说明一些实施例的切换照相机操作的另一用户界面。Figure 47 illustrates another user interface for switching camera operations of some embodiments.
图48图解说明一些实施例的切换照相机操作的另一用户界面。Figure 48 illustrates another user interface for switching camera operations of some embodiments.
图49图解说明一些实施例的切换照相机操作的另一用户界面。Figure 49 illustrates another user interface for switching camera operations of some embodiments.
图50图解说明一些实施例的在双照相机移动设备上进行远程切换照相机操作的处理。Figure 50 illustrates the process of remotely switching camera operations on a dual camera mobile device of some embodiments.
图51图解说明一些实施例的远程控制切换照相机操作的用户界面。Figure 51 illustrates a user interface for remote control switching camera operations of some embodiments.
图52图解说明一些实施例的远程控制切换照相机操作的另一用户界面。Figure 52 illustrates another user interface for remote control switching camera operation of some embodiments.
图53图解说明一些实施例的远程控制切换照相机操作的另一用户界面。Figure 53 illustrates another user interface for remote control switching camera operation of some embodiments.
图54图解说明一些实施例的远程控制切换照相机操作的另一用户界面。Figure 54 illustrates another user interface for remote control switching camera operation of some embodiments.
图55概念地图解说明一些实施例的进行曝光调整操作的处理。Figure 55 conceptually illustrates the process of some embodiments for performing exposure adjustment operations.
图56图解说明一些实施例的进行曝光调整操作的用户界面。Figure 56 illustrates a user interface for performing exposure adjustment operations of some embodiments.
图57图解说明一些实施例的进行曝光调整操作的另一用户界面。Figure 57 illustrates another user interface of some embodiments for exposure adjustment operations.
图58图解说明一些实施例的进行曝光调整操作的另一用户界面。Figure 58 illustrates another user interface of some embodiments for exposure adjustment operations.
图59概念地图解说明由如图16中图解说明的一些实施例的图像处理管理器执行的曝光调整处理。FIG. 59 conceptually illustrates exposure adjustment processing performed by an image processing manager of some embodiments as illustrated in FIG. 16 .
图60概念地图解说明一些实施例的曝光调整操作。Figure 60 conceptually illustrates the exposure adjustment operation of some embodiments.
图61概念地图解说明一些实施例的执行焦距调整操作的处理。Figure 61 conceptually illustrates the process of performing a focus adjustment operation of some embodiments.
图62图解说明一些实施例的焦距调整操作的用户界面。Figure 62 illustrates the user interface for the focus adjustment operation of some embodiments.
图63图解说明一些实施例的焦距调整操作的另一用户界面。Figure 63 illustrates another user interface for the focus adjustment operation of some embodiments.
图64图解说明一些实施例的焦距调整操作的另一用户界面。Figure 64 illustrates another user interface for the focus adjustment operation of some embodiments.
图65图解说明一些实施例的关于从一个或多个双照相机移动设备拍摄的视频的不同显示安排。Figure 65 illustrates different display arrangements of some embodiments for video captured from one or more dual camera mobile devices.
图66图解说明一些实施例的把插入视频的前景叠加在PIP显示中的背景视频上的用户界面。Figure 66 illustrates a user interface of some embodiments that overlays the foreground of the inserted video over the background video in the PIP display.
图67图解说明一些实施例的确定视频图像的前景的技术。Figure 67 illustrates a technique of some embodiments for determining the foreground of a video image.
图68图解说明一些实施例的在视频会议期间,交换PIP显示中的插入显示和背景显示的用户界面。Figure 68 illustrates a user interface for swapping an inset display and a background display in a PIP display during a video conference, of some embodiments.
图69图解说明一些实施例的锁定到角落操作的用户界面。Figure 69 illustrates the user interface for the lock to corner operation of some embodiments.
图70图解说明一些实施例的锁定到角落和推送操作的用户界面。Figure 70 illustrates the user interface of some embodiments for pin to corner and push operations.
图71图解说明一些实施例的PIP显示旋转操作的用户界面。Figure 71 illustrates a user interface for a PIP display rotation operation of some embodiments.
图72图解说明一些实施例的PIP显示旋转操作的另一用户界面。Figure 72 illustrates another user interface for a PIP display rotation operation of some embodiments.
图73图解说明一些实施例的在视频会议期间,从两个远程视频中选择一个视频的用尸界面。Figure 73 illustrates a user interface for selecting one of two remote videos during a video conference, in some embodiments.
图74图解说明一些实施例的在视频会议期间,从两个本地视频中选择一个视频的用户界面。Figure 74 illustrates a user interface for selecting one of two local videos during a video conference of some embodiments.
图75图解说明一些实施例的会前选择用于视频会议的视频的用户界面。Figure 75 illustrates a user interface for pre-meeting selection of video for a video conference of some embodiments.
图76图解说明一些实施例的由双照相机移动设备拍摄的两个视频之间的带宽分配的例子。Figure 76 illustrates an example of bandwidth allocation between two videos taken by a dual camera mobile device of some embodiments.
图77概念地图解说明一些实施例的管理双照相机移动设备的速率控制器的判优器模块。Figure 77 conceptually illustrates the arbiter module of some embodiments managing the rate controller of a dual camera mobile device.
图78概念地图解说明一些实施例的对由双照相机移动设备的照相机拍摄的图像进行编码的方法。Figure 78 conceptually illustrates a method of some embodiments for encoding an image captured by a camera of a dual camera mobile device.
图79概念地图解说明一些实施例的对由双照相机移动设备的照相机拍摄的图像进行编码的另一方法。Figure 79 conceptually illustrates another method of some embodiments for encoding an image captured by a camera of a dual camera mobile device.
图80图解说明在图79中图解说明的方法的示例图像合成。FIG. 80 illustrates example image composition for the method illustrated in FIG. 79 .
图81概念地图解说明一些实施例的对由双照相机移动设备的照相机拍摄的图像进行编码的另一方法。Figure 81 conceptually illustrates another method of some embodiments for encoding an image captured by a camera of a dual camera mobile device.
图82概念地图解说明一些实施例的对由双照相机移动设备的照相机拍摄的图像进行解码的方法。Figure 82 conceptually illustrates a method of some embodiments for decoding an image captured by a camera of a dual camera mobile device.
图83概念地图解说明一些实施例的对由双照相机移动设备的照相机拍摄的图像进行解码的另一方法。Figure 83 conceptually illustrates another method of some embodiments for decoding an image captured by a camera of a dual camera mobile device.
图84概念地图解说明一些实施例的双照相机移动设备的视频会议和处理模块的另一软件体系结构。Figure 84 conceptually illustrates another software architecture for the video conferencing and processing module of a dual camera mobile device of some embodiments.
图85图解说明一些实施例的多方视频会议的用户界面。Figure 85 illustrates a user interface for a multi-party video conference of some embodiments.
图86图解说明一些实施例的多方视频会议的另一用户界面。Figure 86 illustrates another user interface for a multi-party video conference of some embodiments.
图87图解说明一些实施例的多方视频会议的另一用户界面。Figure 87 illustrates another user interface for a multi-party video conference of some embodiments.
图88概念地图解说明一些实施例的应用编程接口(API)体系结构。Figure 88 conceptually illustrates the application programming interface (API) architecture of some embodiments.
图89图解说明一些实施例的双照相机移动计算设备的体系结构。Figure 89 illustrates the architecture of a dual camera mobile computing device of some embodiments.
图90概念地图解说明一些实施例的触摸输入/输出(I/O)设备。Figure 90 conceptually illustrates a touch input/output (I/O) device of some embodiments.
图91概念地图解说明一些实施例的示例通信系统。Figure 91 conceptually illustrates an example communication system of some embodiments.
图92概念地图解说明一些实施例的另一示例通信系统。Figure 92 conceptually illustrates another example communication system of some embodiments.
具体实施方式 Detailed ways
在下面的描述中,出于解释说明的目的,陈述了众多的细节。不过,本领域的普通技术人员会认识到可在不利用这些具体细节的情况下实践本发明。在其它情况下,为了因不必要的细节而使本发明的描述模糊不清,以方框图的形式表示了公知的结构和设备。In the following description, numerous details are set forth for purposes of explanation. However, one of ordinary skill in the art will recognize that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to obscure the description of the invention with unnecessary detail.
本发明的一些实施例提供一种具有两部能够拍摄照片和视频的照相机的移动设备。移动设备的例子包括移动电话机、智能电话机、个人数字助理(PDA)、膝上型计算机、平板个人计算机或者任何其它类型的移动计算设备。本文中使用的照片指的是按单张拍摄模式每次一张地,或者按快速拍摄模式每次几张地由照相机拍摄的静止照片图像。另一方面,视频指的是照相机以特定速率(通常称为帧速率)拍摄的一系列视频图像。拍摄视频的典型帧速率是25帧/秒(fps)、30fps和60fps。一些实施例的移动设备的照相机能够以这些和其它帧速率拍摄视频图像(即,视频帧)。Some embodiments of the invention provide a mobile device with two cameras capable of taking pictures and video. Examples of mobile devices include mobile phones, smart phones, personal digital assistants (PDAs), laptop computers, tablet personal computers, or any other type of mobile computing device. Photographs as used herein refer to still photo images captured by a camera one at a time in single-shot mode, or several at a time in quick-shot mode. Video, on the other hand, refers to a series of video images captured by a camera at a specific rate (often called a frame rate). Typical frame rates for shooting video are 25 frames per second (fps), 30fps, and 60fps. The camera of the mobile device of some embodiments is capable of capturing video images (ie, video frames) at these and other frame rates.
一些实施例的移动设备(1)能够显示拍摄的照片图像和视频图像,(2)能够保存拍摄的图像,以便稍后传送给另一个设备,(3)能够在多个设备的多位用户之间的实时通信会话期间,把拍摄的图像传送给一个或多个设备,和(4)能够对拍摄的图像编码,以便本地存储或者传送给另一个设备。Mobile devices of some embodiments are (1) capable of displaying captured photo images and video images, (2) capable of saving captured images for later transfer to another device, (3) capable of sharing images between multiple users of multiple devices transmit captured images to one or more devices during a real-time communication session between them, and (4) be able to encode captured images for local storage or transmission to another device.
涉及拍摄的视频图像的传输的实时通信会话的一个例子是视频会议。在一些实施例中,在视频会议期间的任意特定时间,移动设备只能够传送一部照相机拍摄的视频图像。不过,在其它实施例中,在视频会议或者其它实时通信会话期间,移动设备能够同时传送其两部照相机拍摄的视频图像。An example of a real-time communication session involving the transmission of captured video images is video conferencing. In some embodiments, the mobile device can only transmit video images captured by one camera at any given time during the videoconference. However, in other embodiments, during a video conference or other real-time communication session, the mobile device can simultaneously transmit video images captured by its two cameras.
一些实施例的移动设备产生合成显示,所述合成显示包含由一个或多个设备的多部照相机拍摄的多个视频的同时显示。在一些情况下,合成显示把视频放在相邻的显示区中(例如,放在相邻的窗口中)。图1图解说明合成显示100的一个这种例子,合成显示100包括两个相邻的显示区105和110,这两个显示区105和110同时显示由一个设备的两部照相机拍摄的,或者由参加视频会议的两个不同设备的两部照相机拍摄的两个视频。The mobile device of some embodiments produces a composite display that includes a simultaneous display of multiple videos captured by multiple cameras of one or more devices. In some cases, composite display places video in adjacent display areas (eg, in adjacent windows). Figure 1 illustrates one such example of a composite display 100 that includes two adjacent display areas 105 and 110 that simultaneously display images taken by two cameras of a device, or by Two videos captured by two cameras of two different devices participating in a video conference.
在其它情况下,合成显示是包括显示两个不同视频的至少两个显示区的PIP显示,其中一个显示区是背景主显示区,另一个显示区是重叠在背景主显示区之上的前景插入显示区。图2图解说明合成PIP显示200的一个这种例子。合成PIP显示200包括背景主显示区205和重叠在背景主显示区之上的前景插入显示区210。这两个显示区205和210同时显示由一个设备的两部照相机拍摄的,或者由参加视频会议的两个不同设备的两部照相机拍摄的两个视频。尽管在本文中举例说明和讨论的示例合成PIP显示类似于在背景主显示区205内显示整个前景插入显示区210的合成PIP显示200,不过具有重叠在背景主显示区205之上,但是并不完全在背景主显示区205内的前景插入显示区210的其它合成PIP显示也是可能的。In other cases, the composite display is a PIP display comprising at least two display areas displaying two different videos, one of which is a background main display area and the other display area is a foreground inset superimposed on top of the background main display area display area. One such example of a composite PIP display 200 is illustrated in FIG. 2 . Composite PIP display 200 includes a background main display area 205 and a foreground inset display area 210 superimposed on the background main display area. The two display areas 205 and 210 simultaneously display two videos captured by two cameras of one device, or two videos captured by two cameras of two different devices participating in the video conference. Although the example composite PIP display illustrated and discussed herein is similar to composite PIP display 200 that displays the entire foreground inset display area 210 within background main display area 205, but with an overlay on background main display area 205, but not Other composite PIP displays with a foreground inset display area 210 entirely within the background main display area 205 are also possible.
除了在与另一个设备的视频会议期间传送视频内容之外,一些实施例的移动设备能够随同会议的视频内容一起传送其它类型的内容。这种其它内容的一个例子包括在设备的照相机之一正在拍摄用于视频会议的视频时,由该设备的另一部照相机拍摄的低分辨率或高分辨率照片图像。这种其它内容的其它例子包括(1)保存在设备上的文件和其它内容,(2)设备的屏幕显示(即,显示在设备的屏幕上的内容),(3)在视频会议或者其它实时通信会话期间,从另一个设备接收的内容,等等。In addition to communicating video content during a video conference with another device, the mobile device of some embodiments is capable of communicating other types of content along with the video content of the meeting. An example of such other content includes low or high resolution photo images captured by one of the device's cameras while another camera of the device is capturing video for a video conference. Other examples of such other content include (1) files and other content stored on the device, (2) the device's screen display (i.e., content displayed on the device's screen), (3) Content received from another device, etc. during a communication session.
一些实施例的移动设备采用新颖的会议中调整技术,在视频会议期间进行调整。例如,当在视频会议期间只传送一部照相机拍摄的视频时,一些实施例的移动设备能够动态切换成传送由其另一部照相机拍摄的视频。在这种情况下,一些实施例的移动设备把这种切换通知参加视频会议的任何另一个设备,使得所述另一个设备能够在它那一端提供这两部照相机拍摄的视频之间的平滑转换。The mobile device of some embodiments employs novel mid-meeting adjustment techniques to make adjustments during a video conference. For example, when only video captured by one camera is being transmitted during a video conference, the mobile device of some embodiments can dynamically switch to transmitting video captured by its other camera. In this case, the mobile device of some embodiments notifies any other device participating in the videoconference of this switch so that the other device can provide a smooth transition between the video captured by the two cameras on its end .
在一些实施例中,切换照相机的请求不仅能够起源于在视频会议期间,在其照相机之间进行切换的“本地”设备,而且还能够起源于正接收本地设备拍摄的视频的另一个“远程”设备。此外,允许一个设备指令另一个设备切换照相机只是一些实施例的设备的远程控制能力的一个例子。在一些实施例中,能够远程向设备指令的其它操作的例子包括曝光调整操作(例如,自动曝光),焦距调整操作(例如,自动聚焦)等等。能够本地或远程指定的新颖的会议中调整的另一个例子是识别拍摄视频中的感兴趣区域(ROI),和使用所述ROI识别修改拍摄照相机的行为,修改带有拍摄照相机的设备的图像处理操作,或者修改带有拍摄照相机的设备的编码操作。In some embodiments, the request to switch cameras can originate not only from a "local" device that is switching between its cameras during a video conference, but also from another "remote" device that is receiving video captured by the local device. equipment. Furthermore, allowing one device to instruct another device to switch cameras is just one example of the remote control capabilities of the devices of some embodiments. In some embodiments, examples of other operations that can be commanded remotely to the device include exposure adjustment operations (eg, auto exposure), focus adjustment operations (eg, auto focus), and the like. Another example of a novel in-session adjustment that can be specified locally or remotely is identifying a region of interest (ROI) in a captured video, and using said ROI identification to modify the behavior of the capturing camera, modifying the image processing of a device with the capturing camera operation, or modify the coded operation of a device with a capture camera.
一些实施例的新颖的会议中调整的又一个例子涉及设备产生的合成视频显示的实时修改。具体地说,在一些实施例中,合成视频显示的实时修改涉及响应于用户对显示区的选择和移动,在合成显示内移动一个或多个显示区。当提供合成显示的设备的屏幕旋转时,一些实施例还在视频会议期间旋转该合成显示。另外,一些实施例的移动设备允许设备的用户翻转(flip)PIP显示中的视频的顺序(即,使前景插入显示中的视频出现在背景主显示中,而使背景主显示中的视频出现在前景插入显示中)。Yet another example of the novel mid-meeting adjustments of some embodiments involves real-time modification of device-generated composite video displays. Specifically, in some embodiments, real-time modification of the composite video display involves moving one or more display regions within the composite display in response to user selection and movement of the display regions. Some embodiments also rotate the composite display during a video conference when the screen of the device providing the composite display rotates. Additionally, the mobile device of some embodiments allows the user of the device to flip the order of the videos in the PIP display (i.e., have the video in the foreground inset display appear in the background main display, and the video in the background main display appear in the background main display). foreground inset display).
下面说明几个更详细的实施例。第I节提供一些实施例的视频处理体系结构的说明。随后,第II节描述一些实施例的拍摄图像处理单元。在一些实施例中,拍摄图像处理单元是设备的负责处理由设备的照相机拍摄的原始图像的组件。Several more detailed embodiments are described below. Section I provides a description of the video processing architecture of some embodiments. Subsequently, Section II describes the captured image processing unit of some embodiments. In some embodiments, the captured image processing unit is a component of the device responsible for processing raw images captured by a camera of the device.
接下来,第III节描述一些实施例的视频会议体系结构。第III节还描述一些实施例的视频会议模块,以及设置单照相机视频会议的几种方式。之后,第IV节描述一些实施例的会议中调整和控制操作。第V节随后描述一些实施例的在视频会议期间,传送和显示来自各个设备的多个视频的视频会议特征。接下来,第VI节描述在视频会议期间,随同非实时内容一起的实时视频的传输。最后,第VII节描述一些实施例的双照相机设备的硬件体系结构。Next, Section III describes the videoconferencing architecture of some embodiments. Section III also describes the video conferencing module of some embodiments, and several ways to set up a single camera video conference. Section IV then describes in-session moderation and control operations of some embodiments. Section V then describes video conferencing features of some embodiments for transmitting and displaying multiple videos from various devices during a video conference. Next, Section VI describes the transmission of real-time video along with non-real-time content during videoconferencing. Finally, Section VII describes the hardware architecture of the dual camera device of some embodiments.
I.视频拍摄和处理I. Video shooting and processing
图3概念地图解说明一些实施例的双照相机移动设备的视频处理和编码模块300。在一些实施例中,模块300对由双照相机移动设备的照相机拍摄的图像进行处理,和对视频进行编码。如图3中所示,模块300包括拍摄图像处理单元(CIPU)驱动器305、媒体交换模块310、编码器驱动器320和视频处理模块325。Figure 3 conceptually illustrates a video processing and encoding module 300 of a dual camera mobile device of some embodiments. In some embodiments, module 300 processes images captured by cameras of a dual camera mobile device and encodes video. As shown in FIG. 3 , the module 300 includes a captured image processing unit (CIPU) driver 305 , a media exchange module 310 , an encoder driver 320 and a video processing module 325 .
在一些实施例中,媒体交换模块310允许设备上的程序(媒体内容的使用者和制造者)交换媒体内容和关于媒体内容的处理的指令。在视频处理和编码模块300中,一些实施例的媒体交换模块310在视频处理模块325和CIPU驱动器305之间,以及在视频处理模块325和编码器驱动器320之间路由这些指令和媒体内容。为了使所述指令和媒体内容的路由更容易,一些实施例的媒体交换模块310提供供媒体内容的使用者和制造者使用的一组应用编程接口(API)。在一些这样的实施例中,媒体交换模块310是作为运行于双照相机移动设备上的操作系统的一部分的一组一个或多个架构。这种媒体交换模块310的一个例子是苹果公司提供的Core Media架构。In some embodiments, the media exchange module 310 allows programs on the device (consumers and producers of media content) to exchange media content and instructions regarding the processing of the media content. Within video processing and encoding module 300 , media exchange module 310 of some embodiments routes these instructions and media content between video processing module 325 and CIPU driver 305 , and between video processing module 325 and encoder driver 320 . To facilitate the routing of the instructions and media content, the media exchange module 310 of some embodiments provides a set of application programming interfaces (APIs) for use by consumers and producers of media content. In some of these embodiments, media exchange module 310 is a set of one or more frameworks that are part of an operating system running on a dual camera mobile device. An example of such a media switching module 310 is the Core Media architecture provided by Apple Inc.
视频处理模块325对由设备的照相机拍摄的图像和/或视频进行图像处理。这种操作的例子包括曝光调整操作、焦距调整操作、透视校正、动态范围调整、图像缩放、图像合成等等。在一些实施例中,一些图像处理操作也可由媒体交换模块310执行。例如,如图3中所示,一些实施例的媒体交换模块310执行降低由设备的照相机拍摄的视频图像中的噪声的时间噪声降低(TNR)操作(例如,用TNR 315)。下面提供视频处理模块325和媒体交换模块310的这种图像处理操作的另外的例子。The video processing module 325 performs image processing on images and/or videos captured by the camera of the device. Examples of such operations include exposure adjustment operations, focus adjustment operations, perspective correction, dynamic range adjustment, image scaling, image compositing, and the like. In some embodiments, some image processing operations may also be performed by the media exchange module 310 . For example, as shown in FIG. 3 , the media exchange module 310 of some embodiments performs temporal noise reduction (TNR) operations (e.g., with TNR 315) that reduce noise in video images captured by the device's camera. Additional examples of such image processing operations by video processing module 325 and media exchange module 310 are provided below.
通过媒体交换模块310,视频处理模块325与CIPU驱动器305和编码器驱动器320接口,如上所述。CIPU驱动器305充当拍摄图像处理单元(CIPU)330和媒体交换模块310之间的通信接口。如以下进一步所述,CIPU 330是双照相机设备的组件,负责处理在设备的照相机的图像拍摄或者视频拍摄操作期间拍摄的图像。CIPU驱动器305通过媒体交换模块310,从视频处理模块325接收对来自设备的一部或两部照相机的图像和/或视频的请求。CIPU驱动器305把所述请求传递给CIPU 330,作为响应,从CIPU 330接收请求的图像和/或视频,CIPU驱动器305随后通过媒体交换模块310,把接收的图像和/或视频发送给视频处理模块325。通过CIPU驱动器305和媒体交换模块310,一些实施例的视频处理模块325还向CIPU 330发送指令,以便修改其一些操作(例如,修改照相机的帧速率、曝光调整操作、焦距调整操作等等)。Through the media exchange module 310, the video processing module 325 interfaces with the CIPU driver 305 and the encoder driver 320, as described above. The CIPU driver 305 serves as a communication interface between the captured image processing unit (CIPU) 330 and the media exchange module 310 . As described further below, the CIPU 330 is a component of a dual camera device responsible for processing images captured during image capture or video capture operations of the device's cameras. The CIPU driver 305 receives requests from the video processing module 325 via the media exchange module 310 for images and/or video from one or both cameras of the device. The CIPU driver 305 transmits the request to the CIPU 330, as a response, receives the requested image and/or video from the CIPU 330, and the CIPU driver 305 then sends the received image and/or video to the video processing module through the media exchange module 310 325. Through CIPU driver 305 and media exchange module 310, video processing module 325 of some embodiments also sends instructions to CIPU 330 in order to modify some of its operations (e.g., modify camera frame rate, exposure adjustment operations, focus adjustment operations, etc.).
编码器驱动器320充当媒体交换模块310和编码器硬件335(例如,编码器芯片、芯片系统上的编码组件等等)之间的通信接口。在一些实施例中,编码器驱动器320通过媒体交换模块310,从视频处理模块325接收图像和对图像编码的请求。编码器驱动器320把要编码的图像发送给编码器335,编码器335随后对图像进行照片编码或视频编码。当编码器驱动器320从编码器335接收到编码图像时,编码器驱动器320通过媒体交换模块310,把编码图像回送给视频处理模块325。The encoder driver 320 acts as a communication interface between the media exchange module 310 and the encoder hardware 335 (eg, an encoder chip, an encoding component on a chip system, etc.). In some embodiments, encoder driver 320 receives images and requests to encode images from video processing module 325 via media exchange module 310 . The encoder driver 320 sends the image to be encoded to the encoder 335, which then photo-encodes or video-encodes the image. When the encoder driver 320 receives the encoded image from the encoder 335 , the encoder driver 320 sends the encoded image back to the video processing module 325 through the media exchange module 310 .
在一些实施例中,视频处理模块325能够对它从编码器接收的编码图像进行不同的操作。所述操作的例子包括把编码图像保存在设备的存储器中,通过设备的网络接口在视频会议中传送编码图像,等等。In some embodiments, the video processing module 325 can perform different operations on the encoded images it receives from the encoder. Examples of such operations include saving the encoded image in the device's memory, transmitting the encoded image in a video conference through the device's network interface, and the like.
在一些实施例中,视频处理和编码模块300的一些或全部模块被实现成操作系统的一部分。例如,一些实施例把视频处理和编码模块300的所有四个组件305、310、320和325实现成设备的操作系统的一部分。其它实施例把媒体交换模块310、CIPU驱动器305和编码器驱动器320实现成设备的操作系统的一部分,而把视频处理模块325作为在操作系统上运行的应用。另外,模块300的其它实现也是可能的。In some embodiments, some or all modules of video processing and encoding module 300 are implemented as part of an operating system. For example, some embodiments implement all four components 305, 310, 320, and 325 of video processing and encoding module 300 as part of the device's operating system. Other embodiments implement the media exchange module 310, CIPU driver 305, and encoder driver 320 as part of the device's operating system, while the video processing module 325 is an application running on the operating system. Additionally, other implementations of module 300 are possible.
现在说明在视频拍摄会话期间,视频处理和编码模块300的操作。为了开始视频拍摄会话,视频处理模块325初始化为视频拍摄会话所需的几个组件。在一些实施例中,这些组件包括(1)CIPU 330,(2)视频处理模块325的比例缩放和合成模块(未示出),(3)视频处理模块325的图像处理模块(未示出),和(4)编码器335。另外,当参与视频会议时,一些实施例的视频处理模块325初始化网络管理器(未示出)。The operation of the video processing and encoding module 300 during a video capture session is now described. To start a video capture session, the video processing module 325 initializes several components required for the video capture session. In some embodiments, these components include (1) CIPU 330, (2) scaling and compositing module (not shown) of video processing module 325, (3) image processing module (not shown) of video processing module 325 , and (4) encoder 335 . Additionally, the video processing module 325 of some embodiments initializes a network manager (not shown) when participating in a video conference.
通过媒体交换模块310和CIPU驱动器305,视频处理模块把其初始化请求发送给CIPU 330,以使设备的一部或两部照相机开始视频拍摄。在一些实施例中,所述请求指定需要拍摄视频的每部照相机的特定帧速率、曝光度和缩放比例大小。响应所述请求,CIPU 330开始以指定的帧速率、曝光度和缩放比例大小,返回来自所请求的照相机的视频图像。这些视频图像通过CIPU驱动器305和媒体交换模块310被返回给视频处理模块325,如上所述,在把视频图像提供给视频处理模块325之前,媒体交换模块310对视频图像进行TNR操作。在视频处理模块325,视频图像被保存在缓冲器(未示出)中,以便进行另外的图像处理。Through the media exchange module 310 and the CIPU driver 305, the video processing module sends its initialization request to the CIPU 330, so that one or two cameras of the device start video shooting. In some embodiments, the request specifies a specific frame rate, exposure, and scale size for each camera that needs to capture the video. In response to the request, the CIPU 330 begins returning video images from the requested camera at the specified frame rate, exposure, and scale size. These video images are returned to the video processing module 325 through the CIPU driver 305 and the media exchange module 310. As mentioned above, the media exchange module 310 performs a TNR operation on the video images before providing them to the video processing module 325. At video processing module 325, video images are stored in a buffer (not shown) for additional image processing.
视频处理模块325的图像处理模块取回保存在缓冲器中的视频图像,以进行另外的视频处理。比例缩放和合成模块随后取回处理后的视频图像,以便比例缩放视频图像(如果是在设备的显示屏上的实时显示所必需的话)。在一些实施例中,该模块用由设备的两部照相机拍摄的图像,或者用在视频会议期间由设备的照相机以及另一个设备的照相机拍摄的图像创建合成图像,以便在设备上提供拍摄的视频图像的实时显示,或者创建供编码的合成视频图像。The image processing module of the video processing module 325 retrieves the video images stored in the buffer for additional video processing. The scaling and compositing module then retrieves the processed video image for scaling the video image if necessary for real-time display on the device's display screen. In some embodiments, the module creates a composite image from images taken by both cameras of the device, or from images taken by the camera of the device and the camera of another device during a video conference, to provide a captured video on the device Real-time display of images, or creation of composite video images for encoding.
处理和/或合成后的视频图像通过编码器驱动器320和媒体交换模块310被提供给编码器335。编码器335随后对视频图像编码。编码图像随后被返回给视频处理模块325(再次通过编码器驱动器320和媒体交换模块310),以便保存在设备上,或者在视频会议期间传输。当设备参加视频会议时,网络管理器(由视频处理模块325初始化)随后取回这些编码图像,对编码图像分包,并通过设备的网络接口(未示出)把编码图像传送给一个或多个其它设备。The processed and/or composited video images are provided to the encoder 335 through the encoder driver 320 and the media exchange module 310 . Encoder 335 then encodes the video images. The encoded image is then returned to video processing module 325 (again via encoder driver 320 and media exchange module 310) for storage on the device, or for transmission during a video conference. When a device participates in a videoconference, the network manager (initialized by the video processing module 325) then retrieves these encoded images, packetizes the encoded images, and transmits the encoded images to one or more other devices.
II.拍摄图像处理II. Shooting image processing
A.单管线A. Single pipeline
由一些实施例的双照相机移动设备的照相机拍摄的图像是原始的未处理图像。在这些图像能够被用于其它操作,比如把图像传送给另一个设备(例如,在视频会议期间)、保存图像、或者显示图像之前,这些图像需要变换到特定的色空间。另外,照相机拍摄的图像需要被处理,以校正错误和/或失真,以及调整图像的颜色、大小等等。因此,一些实施例在保存、传送和显示这种图像之前,对图像进行几种处理操作。所述图像的部分处理由CIPU 330执行。Images captured by the cameras of the dual camera mobile device of some embodiments are raw, unprocessed images. Before these images can be used for other operations, such as transmitting the image to another device (eg, during a video conference), saving the image, or displaying the image, these images need to be transformed into a specific color space. Additionally, images captured by the camera need to be processed to correct errors and/or distortions, and to adjust the color, size, etc. of the image. Accordingly, some embodiments perform several processing operations on images prior to saving, transmitting, and displaying such images. Part of the processing of the image is performed by CIPU 330.
图4中图解说明了所述CIPU的一个例子。具体地说,图4概述地图解说明一些实施例的拍摄图像处理单元(CIPU)400。CIPU 400包括或者每次只处理来自设备的照相机之一的图像,或者按照时分多路复用方式(即,按照时间交织方式)同时处理来自设备的两部照相机的图像的单处理管线(single processing pipeline)485。可以不同地配置CIPU 400的处理管线485,以处理不同照相机的不同特性和/或操作设置。一些实施例中的不同照相机特性的例子包括不同的分辨率、噪声传感器、透镜类型(固定透镜或变焦透镜),等等。另外,在一些实施例中,设备能够按照其操作照相机的不同操作设置的例子包括图像分辨率大小、帧速率、变焦级别、曝光度等。An example of the CIPU is illustrated in FIG. 4 . In particular, Figure 4 schematically illustrates captured image processing unit (CIPU) 400 of some embodiments. The CIPU 400 includes a single processing pipeline that either processes images from one of the device's cameras at a time, or simultaneously processes images from both of the device's cameras in a time-division multiplexed manner (i.e., in a time-interleaved manner). pipeline)485. Processing pipeline 485 of CIPU 400 may be configured differently to handle different characteristics and/or operating settings of different cameras. Examples of different camera characteristics in some embodiments include different resolutions, noise sensors, lens types (fixed or zoom), etc. Additionally, in some embodiments, examples of different operational settings at which the device can operate the camera include image resolution size, frame rate, zoom level, exposure, and the like.
如图4中所示,CIPU 400包括传感器模块415,行/帧缓冲器417,坏像素校正(BPC)模块420,透镜阴影(LS)模块425,去马赛克模块430,白平衡(WB)模块435,γ模块440,色空间变换(CSC)模块445,色调、饱和度和对比度(HSC)模块450,定标器模块455,滤波器模块460,统计引擎465,两组寄存器470,和控制器模块475。在一些实施例中,CIPU 400的全部模块都是用硬件(例如,ASIC、FPGA、带有微控制器的SOC,等等)实现的,而在其它实施例中,CIPU 400的一些或全部模块是用软件实现的。As shown in FIG. 4, CIPU 400 includes sensor module 415, line/frame buffer 417, bad pixel correction (BPC) module 420, lens shading (LS) module 425, demosaic module 430, white balance (WB) module 435 , gamma module 440, color space conversion (CSC) module 445, hue, saturation and contrast (HSC) module 450, scaler module 455, filter module 460, statistics engine 465, two sets of registers 470, and controller module 475. In some embodiments, all modules of CIPU 400 are implemented in hardware (e.g., ASIC, FPGA, SOC with microcontroller, etc.), while in other embodiments, some or all modules of CIPU 400 It is realized by software.
如图4中所示,传感器模块415与设备的两部照相机的两个像素阵列410a和410b,及两组传感器405a和405b通信耦接。在一些实施例中,通过每个照相机传感器的移动行业处理器接口(MIPI),使所述通信耦接更容易。As shown in FIG. 4, sensor module 415 is communicatively coupled to two pixel arrays 410a and 410b of the device's two cameras, and two sets of sensors 405a and 405b. In some embodiments, this communication coupling is facilitated through a Mobile Industry Processor Interface (MIPI) for each camera sensor.
通过所述通信耦接,传感器模块415能够向照相机转发指令,以控制每部照相机的操作的各个方面,比如其功率级、变焦级别、焦距、曝光度等。在一些实施例中,每部照相机具有四种工作功率模式。在第一种工作功率模式下,照相机被断电。就第二种工作功率模式来说,照相机被通电,不过照相机还未被配置。在第三种工作功率模式下,照相机被通电,照相机的传感器被配置,并且照相机传感器的像素收集光子,并把收集的光子转换成数字值。不过,照相机传感器还未向传感器模块415发送图像。最后,在第四种工作功率模式下,照相机处于和第三种功率模式相同的工作功率模式之下,除了照相机现在向传感器模块415发送图像之外。Through this communicative coupling, the sensor module 415 is able to forward instructions to the cameras to control various aspects of each camera's operation, such as its power level, zoom level, focal length, exposure, and the like. In some embodiments, each camera has four operating power modes. In the first operating power mode, the camera is powered off. For the second power mode of operation, the camera is powered on, but the camera is not yet configured. In a third operating power mode, the camera is powered on, the camera's sensor is configured, and the pixels of the camera sensor collect photons and convert the collected photons into digital values. However, the camera sensor has not yet sent an image to the sensor module 415 . Finally, in the fourth power mode of operation, the camera is in the same power mode of operation as the third power mode, except that the camera is now sending images to the sensor module 415 .
在设备的操作期间,照相机可多次从一种工作功率模式切换到另一种工作功率模式。当切换工作功率模式时,一些实施例要求照相机按照上述顺序切换工作功率模式。于是,在这些实施例中,第一种工作功率模式下的照相机只能切换到第二种工作功率模式。当照相机处于第二种工作功率模式时,它能够切换到第一种工作功率模式或者第三种工作功率模式。类似地,照相机能够从第三种工作功率模式切换到第二种工作功率模式或者第四种工作功率模式。当照相机处于第四种工作功率模式时,它只能够切换回第三种工作功率模式。During operation of the device, the camera may switch from one operating power mode to another several times. When switching the working power mode, some embodiments require the camera to switch the working power mode in the above order. Therefore, in these embodiments, the camera in the first working power mode can only be switched to the second working power mode. When the camera is in the second working power mode, it can switch to the first working power mode or the third working power mode. Similarly, the camera can switch from the third power mode of operation to the second power mode of operation or the fourth power mode of operation. When the camera is in the fourth working power mode, it can only switch back to the third working power mode.
此外,从一种工作功率模式切换到下一种或前一种工作功率模式需要一定量的时间。从而,切换两种或三种工作功率模式慢于切换一种工作功率模式。不同的工作功率模式还消耗不同量的功率。例如,第四种工作功率模式消耗最大量的功率,第三种工作功率模式消耗的功率高于第一种和第二种工作功率模式,以及第二种工作功率模式消耗的功率高于第一种工作功率模式。在一些实施例中,第一种工作功率模式不消耗任何功率。Furthermore, switching from one operating power mode to the next or previous operating power mode requires a certain amount of time. Thus, switching between two or three operating power modes is slower than switching between one operating power mode. Different operating power modes also consume different amounts of power. For example, the fourth operating power mode consumes the largest amount of power, the third operating power mode consumes more power than the first and second operating power modes, and the second operating power mode consumes more power than the first A working power mode. In some embodiments, the first power mode of operation does not consume any power.
当照相机未处于拍摄图像的第四种工作功率模式时,可使照相机保持在其它工作功率模式之一下。使不用的照相机保持在哪种工作模式之下的确定取决于允许照相机消耗多少功率和照相机需要多快地响应开始拍摄图像的请求。例如,配置成按照第三种工作功率模式(例如,待机模式)工作的照相机比配置成处于第一种工作功率模式(即,断电)的照相机消耗更多的功率。不过,当指令照相机拍摄图像时,按照第三种工作功率模式工作的照相机能够比按照第一种工作功率模式工作的照相机更快地切换到第四种工作功率模式。因而,根据不同的要求(例如,对拍摄图像的请求的响应时间,功率消耗),当不拍摄图像时,照相机可被配置成按照不同的工作功率模式工作。When the camera is not in the fourth operating power mode for capturing images, the camera can be kept in one of the other operating power modes. The determination of which operating mode to keep an unused camera in depends on how much power the camera is allowed to consume and how quickly the camera needs to respond to a request to start taking images. For example, a camera configured to operate in a third operating power mode (eg, standby mode) consumes more power than a camera configured in a first operating power mode (ie, powered off). However, when the camera is instructed to take an image, the camera operating in the third operating power mode can switch to the fourth operating power mode faster than the camera operating in the first operating power mode. Thus, depending on different requirements (eg, response time to a request to capture an image, power consumption), the camera can be configured to operate in different operating power modes when not capturing an image.
如以下进一步所述,当视频处理模块325请求一部或两部照相机开始拍摄图像,并且传感器模块415通过控制器模块475接收到该请求时,通过它与每部照相机的通信耦接,传感器模块415能够指令一组或两组照相机传感器开始拍摄图像。拜尔滤镜被叠加在每个照相机传感器之上,从而每个照相机传感器输出拜尔格式图像,所述拜尔格式图像被保存在与每个照相机传感器相关联的像素阵列中。拜尔格式图像是其中每个像素只保存一种颜色值:红、蓝或绿的图像。As further described below, when the video processing module 325 requests one or both cameras to begin capturing images, and the sensor module 415 receives this request through the controller module 475, through its communicative coupling with each camera, the sensor module 415 415 can instruct one or two sets of camera sensors to start capturing images. A Bayer filter is superimposed on each camera sensor so that each camera sensor outputs a Bayer formatted image, which is stored in an array of pixels associated with each camera sensor. A Bayer format image is one in which each pixel holds only one color value: red, blue, or green.
通过它与像素阵列410a和410b的耦接,传感器模块415取回保存在照相机像素阵列410a和410b中的原始拜尔格式图像。通过控制传感器模块415从照相机的像素阵列取回图像的速率,传感器模块415能够控制由特定照相机拍摄的视频图像的帧速率。通过控制其图像取回的速率,传感器模块415还能够交织由不同照相机拍摄的图像的读取,以便交织CIPU处理管线485对来自不同照相机的拍摄图像的图像处理。以下在II.A.1和II.A.2的子节中中进一步说明传感器模块415对其图像取回的控制。Through its coupling to pixel arrays 410a and 410b, sensor module 415 retrieves the raw Bayer format images stored in camera pixel arrays 410a and 410b. By controlling the rate at which the sensor module 415 retrieves images from the camera's pixel array, the sensor module 415 is able to control the frame rate of video images captured by a particular camera. By controlling the rate at which its images are retrieved, the sensor module 415 is also able to interleave the reading of images captured by different cameras in order to interleave the image processing by the CIPU processing pipeline 485 of captured images from different cameras. The sensor module 415's control of its image retrieval is further described below in subsections II.A.1 and II.A.2.
传感器模块415把它从像素阵列410a和410b取回的图像行(即,图像的一排排像素)保存在行/帧缓冲器417中。通过CIPU处理管线485处理行/帧缓冲器417中的每个图像行。如图4中所示,CIPU处理管线485由BPC模块420、LS模块425、去马赛克模块430、WB模块43、γ模块440、CSC模块445、HSC模块450、定标器模块455和滤波器模块460构成。在一些实施例中,CIPU处理管线485逐行(即,逐排)地处理来自行/帧缓冲器417的图像,而在其它实施例中,CIPU处理管线485逐帧地处理来自行/帧缓冲器417的整个图像。Sensor module 415 stores image lines (ie, rows of pixels of an image) that it retrieves from pixel arrays 410 a and 410 b in line/frame buffer 417 . Each image line in the line/frame buffer 417 is processed through the CIPU processing pipeline 485 . As shown in FIG. 4, CIPU processing pipeline 485 consists of BPC module 420, LS module 425, demosaic module 430, WB module 43, gamma module 440, CSC module 445, HSC module 450, scaler module 455 and filter module 460 composition. In some embodiments, the CIPU processing pipeline 485 processes images from the line/frame buffer 417 row-by-row (i.e., row-by-row), while in other embodiments, the CIPU processing pipeline 485 processes images from the row/frame buffer frame-by-frame. The entire image of the device 417.
在图4中图解说明的示例管线中,BPC模块420是从行/帧缓冲器417取回图像的模块。BPC模块420进行坏像素消除操作,该操作设法校正取回的图像中可能由一个或多个有缺陷的照相机传感器引起的坏像素(例如,有缺陷的光子传感器根本不感测光,错误地感测光等等)。在一些实施例中,BPC模块420通过比较图像中的特定像素与图像中的一个或多个相邻像素,检测坏像素。如果所述特定像素的值与所述相邻像素的值之间的差异大于阈值量,那么用颜色(即,红、绿和蓝)与所述特定像素相同的几个相邻像素的值的平均值替换所述特定像素的值。In the example pipeline illustrated in FIG. 4 , the BPC module 420 is the module that retrieves images from the line/frame buffer 417 . The BPC module 420 performs a bad pixel removal operation that seeks to correct bad pixels in the retrieved images that may be caused by one or more defective camera sensors (e.g., a defective photon sensor that does not sense light at all, incorrectly senses light, etc.). In some embodiments, BPC module 420 detects bad pixels by comparing a particular pixel in the image to one or more neighboring pixels in the image. If the difference between the value of the particular pixel and the values of the neighboring pixels is greater than a threshold amount, then the value of several neighboring pixels of the same color (i.e., red, green, and blue) as the particular pixel The average value replaces the value of that particular pixel.
BPC模块420的操作部分由为该模块保存在CIPU 400的两组寄存器470中的值控制。具体地说,为了处理由设备的两部不同照相机拍摄的图像,一些实施例关于每部照相机不同地配置CIPU处理管线485,如上所述。通过在CIPU 400的两组不同的寄存器470a(Ra)和470b(Rb)中保存两组不同的值,为两部不同的照相机配置CIPU处理管线485。每组寄存器470包括用于CIPU处理管线485内的每个模块420-460的一个寄存器(Ra或Rb)。每个寄存器组中的每个寄存器保存一组定义一个处理管线模块的操作的值。因此,如图4中所示,寄存器组470a用于指示双照相机移动设备的一部照相机(照相机A)的每个处理管线模块的工作模式,而寄存器组470b用于指示双照相机移动设备的另一部照相机(照相机B)的每个处理管线模块的工作模式。The operation of the BPC module 420 is controlled in part by the values held in two sets of registers 470 of the CIPU 400 for that module. Specifically, to process images captured by two different cameras of a device, some embodiments configure the CIPU processing pipeline 485 differently with respect to each camera, as described above. The CIPU processing pipeline 485 is configured for two different cameras by storing two different sets of values in two different sets of registers 470a (Ra) and 470b (Rb) of the CIPU 400. Each set of registers 470 includes one register (Ra or Rb) for each module 420 - 460 within the CIPU processing pipeline 485 . Each register in each register bank holds a set of values that define the operation of a processing pipeline block. Thus, as shown in FIG. 4, register set 470a is used to indicate the operating mode of each processing pipeline module of one camera (camera A) of a dual-camera mobile device, while register set 470b is used to indicate the other of the dual-camera mobile device. The working mode of each processing pipeline module of a camera (Camera B).
对于每部照相机不同地配置CIPU处理管线485的一个例子是把CIPU处理管线485的模块配置成处理大小不同的图像。例如,如果照相机传感器405a为640×480像素,照相机传感器405b为2048×1536像素,那么寄存器组470a被配置成保存指令CIPU处理管线485的各个模块处理640×480像素图像的值,以及寄存器组470b被配置成保存指令CIPU处理管线485的各个模块处理2048×1536像素图像的值。One example of configuring the CIPU processing pipeline 485 differently for each camera is to configure the modules of the CIPU processing pipeline 485 to process images of different sizes. For example, if camera sensor 405a is 640 x 480 pixels and camera sensor 405b is 2048 x 1536 pixels, then register set 470a is configured to hold values that instruct the various modules of CIPU processing pipeline 485 to process a 640 x 480 pixel image, and register set 470b It is configured to hold values that instruct various modules of the CIPU processing pipeline 485 to process a 2048x1536 pixel image.
在一些实施例中,不同的处理管线配置(即,寄存器值)被保存在不同的简档设置中。在一些这样的实施例中,允许移动设备的用户选择简档设置之一(例如,通过显示在移动设备上的用户界面),以设置一部或多部照相机的操作。例如,用户可以选择把照相机配置成拍摄高分辨率视频的简档设置,把相同的照相机配置成拍摄低分辨率视频的简档设置,或者把两部照相机都配置成拍摄高分辨率静止图像的简档设置。各种不同的配置都是可能的,可被保存在许多不同的简档设置中。在其它这样的实施例中,代替允许用户选择简档设置,根据用户选择的应用或活动,自动选择简档设置。例如,如果用户选择视频会议应用,那么自动选择把两部照相机配置成拍摄视频的简档,如果用户选择照相应用,那么自动选择把照相机之一配置成拍摄静止图像的简档,等等。In some embodiments, different processing pipeline configurations (ie, register values) are stored in different profile settings. In some of these embodiments, a user of the mobile device is allowed to select one of the profile settings (eg, via a user interface displayed on the mobile device) to set the operation of one or more cameras. For example, a user can choose to configure a camera with a profile setting that takes high-resolution video, configure the same camera with a profile setting that takes low-resolution video, or configure both cameras for a high-resolution still image. Profile settings. A variety of different configurations are possible and can be saved in many different profile settings. In other such embodiments, instead of allowing the user to select a profile setting, the profile setting is automatically selected based on the application or activity selected by the user. For example, if the user selects a videoconferencing application, a profile that configures both cameras to capture video is automatically selected, if the user selects a camera application, a profile that configures one of the cameras to capture still images is automatically selected, and so on.
在BPS模块420之后,LS模块425接收坏像素校正后的图像。LS模块425执行透镜阴影校正操作,以校正由产生光衰减效应(即,朝着照相机传感器的边缘,光逐渐减少)的照相机透镜引起的图像缺陷。这种效应导致图像照明度不均匀(例如,在角落和/或边缘更暗)。为了校正这些图像缺陷,一些实施例的LS模块425估计透镜的照明度衰减的数学模型。估计的模型随后被用于补偿图像的透镜衰减,以均匀地照明图像的未被均匀照明的部分。例如,如果图像的角落的亮度是图像中心的亮度的一半,那么一些实施例的LS模块425把角落像素值乘以2,以便产生均匀的图像。After the BPS module 420, the LS module 425 receives the bad pixel corrected image. The LS module 425 performs lens shading correction operations to correct image defects caused by camera lenses that produce a light falloff effect (ie, light gradually decreases towards the edges of the camera sensor). This effect results in uneven image illumination (eg, darker in corners and/or edges). To correct for these image defects, the LS module 425 of some embodiments estimates a mathematical model of the illumination falloff of the lens. The estimated model is then used to compensate for lens falloff of the image to uniformly illuminate parts of the image that are not uniformly illuminated. For example, if the corners of the image are half as bright as the center of the image, the LS module 425 of some embodiments multiplies the corner pixel values by 2 in order to produce a uniform image.
去马赛克模块430执行去马赛克操作,以便由采样颜色的图像产生全色图像。如上所述,照相机传感器输出拜尔格式图像,由于拜尔格式图像的每个像素只保存一种色值,因此拜尔格式图像是不完整的。去马赛克模块430通过在拜尔格式图像中插入每组颜色的色值,由拜尔格式图像重构红、绿、蓝(RGB)图像。The demosaicing module 430 performs a demosaicing operation to produce a full-color image from the sampled-color image. As mentioned above, the camera sensor outputs a Bayer format image, which is incomplete because each pixel of the Bayer format image stores only one color value. The demosaicing module 430 reconstructs a red, green, blue (RGB) image from the Bayer format image by interpolating the color values of each set of colors in the Bayer format image.
WB模块435对从去马赛克模块430接收的RGB图像执行白平衡操作,使得图像内容的颜色与现实生活中人眼感觉到的所述内容的颜色相似。WB模块435通过调整图像的颜色来调整白平衡,以正确地呈现中性颜色(例如,灰、白等)。例如,在白炽灯下的一张白纸的图像可能显现为黄色,而人眼感觉所述一张纸为白色。为了解决传感器拍摄的图像的颜色与人眼感觉的图像的颜色之间的差异,WB模块435调整图像的色值,使得拍摄的图像正确地反映人眼感觉的颜色。The WB module 435 performs a white balance operation on the RGB image received from the demosaic module 430 so that the color of the image content is similar to the color of the content perceived by human eyes in real life. The WB module 435 adjusts the white balance by adjusting the color of the image to correctly render neutral colors (eg, gray, white, etc.). For example, an image of a piece of white paper under incandescent light may appear yellow, while the human eye perceives the piece of paper to be white. In order to solve the difference between the color of the image captured by the sensor and the color of the image perceived by the human eye, the WB module 435 adjusts the color value of the image so that the captured image correctly reflects the color perceived by the human eye.
统计引擎465收集在CIPU处理管线485的各个阶段的图像数据。例如,图4表示统计引擎465收集在LS模块425、去马赛克模块430和WB模块435之后的图像数据。不同的实施例从CIPU处理管线485的任意数目的不同阶段收集数据。统计引擎465处理收集的数据,并根据处理后的数据,通过控制器模块475和传感器模块415调整照相机传感器405a和405b的操作。这种操作的例子包括曝光和聚焦。尽管图4显示通过控制器模块475控制照相机传感器405a和405b的统计引擎465,不过,统计引擎465的其它实施例通过传感器模块415控制照相机传感器。The statistical engine 465 collects image data at various stages of the CIPU processing pipeline 485 . For example, FIG. 4 shows statistical engine 465 collecting image data after LS module 425 , demosaicing module 430 , and WB module 435 . Different embodiments collect data from any number of different stages of the CIPU processing pipeline 485 . Statistics engine 465 processes the collected data and adjusts the operation of camera sensors 405a and 405b via controller module 475 and sensor module 415 based on the processed data. Examples of such operations include exposure and focusing. Although FIG. 4 shows statistical engine 465 controlling camera sensors 405 a and 405 b via controller module 475 , other embodiments of statistical engine 465 control camera sensors via sensor module 415 .
处理后的数据还可用于调整CIPU 400的各个模块的操作。例如,一些实施例的统计引擎465根据在WB模块435之后收集的数据,调整WB模块435的操作。在一些这样的实施例中,统计引擎465通过利用处理后的数据提供自动白平衡(AWB)功能,以调整WB模块435的白平衡操作。其它实施例可以使用从CIPU处理管线485的任意数目的阶段收集的处理后数据来调整CIPU处理管线485内的任意数目模块的操作。此外,统计引擎465还能够从控制器模块475接收指令,以调整CIPU处理管线485的一个或多个模块的操作。The processed data can also be used to adjust the operation of the various modules of the CIPU 400. For example, statistics engine 465 of some embodiments adjusts the operation of WB module 435 based on data collected after WB module 435 . In some of these embodiments, statistical engine 465 provides an automatic white balance (AWB) function by utilizing the processed data to adjust the white balance operation of WB module 435 . Other embodiments may use processed data collected from any number of stages of the CIPU processing pipeline 485 to adjust the operation of any number of modules within the CIPU processing pipeline 485 . Additionally, statistics engine 465 can also receive instructions from controller module 475 to adjust the operation of one or more modules of CIPU processing pipeline 485 .
在从WB模块435接收到图像之后,γ模块440对图像进行γ校正操作,以编码和解码照相机系统的亮度或者三色值。一些实施例的γ模块440通过把10-12比特的线性信号转换成8比特的非线性编码,以校正图像的γ值,进行γ值校正。一些实施例利用查找表校正γ值。After receiving an image from WB module 435, gamma module 440 performs a gamma correction operation on the image to encode and decode luminance or tristimulus values for the camera system. The gamma module 440 in some embodiments corrects the gamma value of the image by converting the 10-12-bit linear signal into an 8-bit non-linear code, and performs gamma value correction. Some embodiments correct gamma values using a lookup table.
CSC模块445把从γ模块440接收的图像从一个色空间变换到另一个色空间。具体地说,CSC模块445把图像从RGB色空间变换到亮度和色度(YUV)色空间。不过,CSC模块445的其它实施例可以往来于任意数目的色空间变换图像。The CSC module 445 transforms the image received from the gamma module 440 from one color space to another. Specifically, the CSC module 445 transforms the image from the RGB color space to the luma and chrominance (YUV) color space. However, other embodiments of the CSC module 445 may transform images to and from any number of color spaces.
HSC模块450可调整从CSC模块445接收的图像的色调、饱和度、对比度或者它们的任意组合。例如,HSC模块450可以调整这些性质,以降低噪声或者增强图像。例如,可以增大由低噪声照相机传感器拍摄的图像的饱和度,以使图像显得更鲜艳。相反,可以降低由高噪声照相机传感器拍摄的图像的饱和度,以降低这种图像的色噪声。The HSC module 450 may adjust the hue, saturation, contrast, or any combination thereof of the image received from the CSC module 445 . For example, HSC module 450 may adjust these properties to reduce noise or enhance images. For example, you can increase the saturation of an image captured by a low-noise camera sensor to make the image appear more vibrant. Conversely, images captured by noisy camera sensors can be desaturated to reduce the color noise of such images.
在HSC模块450之后,定标器模块455可缩放图像,以调整图像的像素分辨率,或者调整图像的数据大小。例如,定标器模块455还可减小图像的大小,以便适合较小的显示器。例如,定标器模块455能够以许多不同的方式比例缩放图像。例如,定标器模块455能够按比例增大(即,放大)和按比例减小(即,缩小)图像。定标器模块455还能够按比例缩放图像,或者变形地缩放图像。After the HSC module 450, the scaler module 455 may scale the image to adjust the pixel resolution of the image, or to adjust the data size of the image. For example, the scaler module 455 may also reduce the size of the image to fit smaller displays. For example, the scaler module 455 can scale images in many different ways. For example, the scaler module 455 can scale up (ie, enlarge) and scale down (ie, reduce) the image. The scaler module 455 can also scale the image proportionally, or anamorphically scale the image.
滤波器模块460对从定标器模块455接收的图像应用一种或多种滤波操作,以改变图像的一些或全部像素的一种或多种属性。滤波器的例子包括低通滤波器、高通滤波器、带通滤波器、双边滤波器、高斯滤波器,等等。因而,滤波器模块460能够对图像应用任意多种不同的滤波。Filter module 460 applies one or more filtering operations to the image received from scaler module 455 to alter one or more properties of some or all of the pixels of the image. Examples of filters include low-pass filters, high-pass filters, band-pass filters, bilateral filters, Gaussian filters, and the like. Thus, filter module 460 is capable of applying any number of different filters to the image.
一些实施例的控制器模块475是控制CIPU 400的操作的微控制器。在一些实施例中,控制器模块475(1)通过传感器模块41,控制照相机传感器的操作(例如,曝光度),(2)控制CIPU处理管线485的操作,(3)控制CIPU处理管线485的定时(例如,何时切换照相机传感器,何时切换寄存器,等等),和(4)控制闪光灯/频闪闪光灯(未示出),所述闪光灯/频闪闪光灯是一些实施例的双照相机移动设备的一部分。The controller module 475 of some embodiments is a microcontroller that controls the operation of the CIPU 400. In some embodiments, the controller module 475 (1) controls the operation of the camera sensor (e.g., exposure) through the sensor module 41, (2) controls the operation of the CIPU processing pipeline 485, (3) controls the operation of the CIPU processing pipeline 485 Timing (e.g., when to switch camera sensors, when to switch registers, etc.), and (4) control the flash/strobe (not shown), which is the dual camera movement of some embodiments part of the device.
控制器模块475的一些实施例处理从统计引擎465和CIPU驱动器480接收的指令。在一些实施例中,从CIPU驱动器480接收的指令是来自双照相机移动设备(即,接收自本地设备)的指令,而在其它实施例中,从CIPU驱动器480接收的指令是来自另一个设备的指令(例如,视频会议期间的远程控制)。根据处理后的指令,控制器模块475能够通过规划寄存器470的值,调整CIPU 400的操作。此外,控制器模块475能够在CIPU 400的操作期间,动态重新规划寄存器470的值。Some embodiments of controller module 475 process instructions received from statistics engine 465 and CIPU driver 480 . In some embodiments, the instructions received from CIPU driver 480 are instructions from a dual camera mobile device (i.e., received from a native device), while in other embodiments, the instructions received from CIPU driver 480 are from another device Instructions (for example, remote control during a video conference). According to the processed instruction, the controller module 475 can adjust the operation of the CIPU 400 by programming the value of the register 470. Additionally, the controller module 475 is capable of dynamically reprogramming the values of the registers 470 during operation of the CIPU 400.
如图4中所示,CIPU 400包括CIPU处理管线485中的许多模块。不过,本领域的普通技术人员会认识到可以只用一些图解说明的模块,或者用另外的不同模块实现CIPU 400。另外,由不同模块执行的处理可按照与图4中图解说明的顺序不同的顺序应用于图像。As shown in FIG. 4, CIPU 400 includes a number of modules in CIPU processing pipeline 485. However, those of ordinary skill in the art will recognize that the CIPU 400 may be implemented with only some of the illustrated modules, or with additional different modules. Additionally, the processing performed by the different modules may be applied to the image in an order different from that illustrated in FIG. 4 .
现在参考图4,说明CIPU 400的一个示例操作。为了说明起见,一组寄存器Ra被用于处理由双照相机移动设备的照相机传感器405a拍摄的图像,以及一组寄存器Rb被用于处理由双照相机移动设备的照相机传感器405b拍摄的图像。控制器模块475从CIPU驱动器480接收产生由双照相机移动设备的照相机之一拍摄的图像的指令。Referring now to FIG. 4, an example operation of the CIPU 400 is illustrated. For purposes of illustration, a set of registers Ra is used to process images captured by the camera sensor 405a of a dual camera mobile device, and a set of registers Rb is used to process images captured by the camera sensor 405b of a dual camera mobile device. The controller module 475 receives instructions from the CIPU driver 480 to generate an image captured by one of the cameras of the dual camera mobile device.
控制器模块475随后初始化CIPU处理管线485的各个模块,以处理由双照相机移动设备的照相机之一拍摄的图像。在一些实施例中,这包括控制器模块475检查是否使用了寄存器470中的一组正确寄存器。例如如果CIPU驱动器480指令控制器模块475产生由照相机传感器405a拍摄的图像,那么控制器模块475检查一组寄存器Ra是否是CIPU 400的模块读取的一组寄存器。如果不是,那么控制器模块475在两组寄存器之间切换,使得该组寄存器Ra是由CIPU 400的模块读取的一组寄存器。The controller module 475 then initializes the various modules of the CIPU processing pipeline 485 to process images captured by one of the cameras of the dual camera mobile device. In some embodiments, this includes the controller module 475 checking whether the correct set of registers 470 is used. For example, if the CIPU driver 480 instructs the controller module 475 to generate an image captured by the camera sensor 405a, the controller module 475 checks whether the set of registers Ra is the set of registers read by the modules of the CIPU 400. If not, then the controller module 475 switches between the two sets of registers such that the set of registers Ra is the set of registers read by the modules of the CIPU 400.
对CIPU处理管线485中的每个模块来说,工作模式由保存在所述一组寄存器Ra中的值指示。如前所述,一组寄存器470中的值能够在CIPU 400的操作期间被动态重新规则。从而,一个图像的处理不同于下一个图像的处理。尽管CIPU 400的本示例操作的讨论描述CIPU 400中的每个模块读取保存在寄存器中的指示各个模块的工作模式的值,不过在一些软件实现的实施例中,改为把参数传送给CIPU400的各个模块。For each module in the CIPU processing pipeline 485, the mode of operation is indicated by the value held in the set of registers Ra. As previously mentioned, the values in a set of registers 470 can be dynamically reordered during operation of the CIPU 400. Thus, the processing of one image differs from the processing of the next image. Although the discussion of this example operation of the CIPU 400 describes each module in the CIPU 400 reading a value held in a register indicating the mode of operation of the respective module, in some software-implemented embodiments, the parameters are passed to the CIPU 400 instead of each module.
在一些实施例中,控制器模块475通过指令传感器模块415在从像素阵列410a取回图像之后延迟特定时间量,来初始化传感器模块415。换句话说,控制器模块475指令传感器模块415以特定速率从像素阵列410a取回图像。In some embodiments, the controller module 475 initializes the sensor module 415 by instructing the sensor module 415 to delay for a certain amount of time after retrieving an image from the pixel array 410a. In other words, the controller module 475 instructs the sensor module 415 to retrieve images from the pixel array 410a at a certain rate.
随后,控制器模块475通过传感器模块415指令照相机传感器405a拍摄图像。在一些实施例中,控制器模块475还向照相机传感器405a提供曝光参数和其它照相机操作参数。在其它实施例中,照相机传感器405a使用照相机传感器操作参数的默认值。根据所述参数,照相机传感器405a拍摄原始图像,所述原始图像被保存在像素阵列410a中。传感器模块415从像素阵列410a取回所述原始图像,并把图像发送给行/帧缓冲器417以便保存,之后CIPU处理管线485处理该图像。Subsequently, the controller module 475 instructs the camera sensor 405 a to capture an image through the sensor module 415 . In some embodiments, the controller module 475 also provides exposure parameters and other camera operating parameters to the camera sensor 405a. In other embodiments, the camera sensor 405a uses default values for the camera sensor operating parameters. According to the parameters, the camera sensor 405a captures a raw image, which is stored in the pixel array 410a. Sensor module 415 retrieves the raw image from pixel array 410a and sends the image to line/frame buffer 417 for storage before CIPU processing pipeline 485 processes the image.
在某些情况下,图像可能被行/帧缓冲器417丢弃。当照相机传感器405a和/或405b以高速率拍摄图像时,传感器模块415可比BPC模块420能够从行/帧缓冲器417取回图像更快地接收图像,并把图像保存在行/帧缓冲器417中(例如,拍摄高帧速率视频时),行/帧缓冲器417会变得完全充满。当发生这种情况时,一些实施例的行/帧缓冲器417根据先进先出原则丢弃图像(即,帧)。即,当行/帧缓冲器417丢弃一帧图像时,行/帧缓冲器417丢弃在行/帧缓冲器417中的所有其它图像之前接收的那帧图像。In some cases, images may be discarded by the line/frame buffer 417 . When the camera sensors 405a and/or 405b are capturing images at a high rate, the sensor module 415 can receive images faster than the BPC module 420 can retrieve the images from the line/frame buffer 417 and store the images in the line/frame buffer 417 During normal operation (eg, when shooting high frame rate video), the line/frame buffer 417 can become completely full. When this occurs, the line/frame buffer 417 of some embodiments discards images (ie, frames) on a first-in-first-out basis. That is, when line/frame buffer 417 discards a frame of image, line/frame buffer 417 discards that frame of image received before all other images in line/frame buffer 417 .
CIPU处理管线485的图像处理从BPC模块420取回来自行/帧缓冲器417的图像,以校正图像中的任何坏像素开始。BPC模块420随后把图像发送给LS模块425,以校正图像中的任何不均匀照明度。在校正图像的照明度之后,LS模块425把图像发送给去马赛克模块430,去马赛克模块430处理原始图像,由原始图像产生RGB图像。随后,WB模块435从去马赛克模块430接收RGB图像,并调整RGB图像的白平衡。The image processing of the CIPU processing pipeline 485 fetches the image from the BPC module 420 back to the line/frame buffer 417, starting with correcting any bad pixels in the image. The BPC module 420 then sends the image to the LS module 425 to correct for any non-uniform illumination in the image. After correcting the illumination of the image, the LS module 425 sends the image to the demosaicing module 430, which processes the original image to generate an RGB image from the original image. Subsequently, the WB module 435 receives the RGB image from the demosaic module 430, and adjusts the white balance of the RGB image.
如上所述,统计引擎465可能已在CIPU处理管线485的各个点收集了一些数据。例如,如图4中图解所示,统计引擎465在LS模块425、去马赛克模块430和WB模块435之后收集数据。根据收集的数据,统计引擎465可调整照相机传感器405a的操作和/或CIPU处理管线485中的一个或多个模块的操作,以便调整从照相机传感器405a的后续图像的拍摄。例如,根据收集的数据,统计引擎465可确定当前图像的曝光度过低,从而通过传感器模块415指令照相机传感器405a增大后续所拍图像的曝光度。从而,一些实施例的统计引擎465起一些处理操作的反馈回路的作用。Statistics engine 465 may have collected some data at various points in CIPU processing pipeline 485, as described above. For example, as illustrated diagrammatically in FIG. 4 , statistical engine 465 collects data after LS module 425 , demosaicing module 430 , and WB module 435 . Based on the collected data, statistics engine 465 may adjust the operation of camera sensor 405a and/or the operation of one or more modules in CIPU processing pipeline 485 in order to adjust the capture of subsequent images from camera sensor 405a. For example, according to the collected data, the statistical engine 465 may determine that the exposure of the current image is too low, and thus instruct the camera sensor 405a through the sensor module 415 to increase the exposure of subsequent images. Thus, the statistics engine 465 of some embodiments acts as a feedback loop for some processing operations.
在WB模块435调整图像的白平衡之后,它把图像发送给γ模块440,以进行γ校正(例如,调整图像的γ曲线)。CSC模块445从γ模块440接收γ校正后的图像,并进行色空间变换。在本例中,CSC模块445把RGB图像变换成YUV图像。换句话说,CSC模块445把用RGB色空间表现的图像变换成用YUV色空间表现的图像。HSC模块450从CSC模块445接收YUV图像,并调整图像中的各个像素的色调、饱和度和对比度属性。在HSC模块450之后,定标器模块455缩放图像(例如,放大或缩小图像)。在从定标器模块455接收图像之后,滤波器模块460对图像应用一种或多种滤波。最后,滤波器模块460把处理后的图像发送给CIPU驱动器480。After the WB module 435 adjusts the white balance of the image, it sends the image to the gamma module 440 for gamma correction (eg, adjusting the gamma curve of the image). The CSC module 445 receives the gamma-corrected image from the gamma module 440 and performs color space transformation. In this example, the CSC module 445 converts the RGB image to a YUV image. In other words, the CSC module 445 converts an image expressed in RGB color space into an image expressed in YUV color space. The HSC module 450 receives the YUV image from the CSC module 445 and adjusts the hue, saturation and contrast attributes of each pixel in the image. Following the HSC module 450, a scaler module 455 scales the image (eg, enlarges or reduces the image). After receiving an image from scaler module 455, filter module 460 applies one or more filters to the image. Finally, the filter module 460 sends the processed image to the CIPU driver 480 .
在上面说明的CIPU 400的这个操作例子中,CIPU处理管线485中的每个模块以某种方式处理图像。不过,CIPU 400处理的其它图像可能不需要CIPU处理管线485的所有模块的处理。例如,图像可能不需要白平衡调整、γ校正、比例缩放或滤波。因而,CIPU 400能够根据接收的各种输入,比如来自CIPU驱动器480的指令,或者由统计引擎465收集的数据,以任意各种方式处理图像。In this example of the operation of the CIPU 400 described above, each module in the CIPU processing pipeline 485 processes images in some fashion. However, other images processed by CIPU 400 may not require processing by all modules of CIPU processing pipeline 485. For example, images may not require white balance adjustments, gamma corrections, scaling, or filtering. Thus, the CIPU 400 is capable of processing images in any of a variety of ways based on various inputs received, such as instructions from the CIPU driver 480, or data collected by the statistics engine 465.
不同的实施例不同地控制处理图像的速率(即,帧速率)。控制帧速率的一种方式是通过垂直消隐间隔(VBI)的操纵。对于取回图像行以便逐行处理图像的一些实施例来说,VBI是从像素阵列取回由双照相机移动设备的照相机拍摄的视频的一个图像的最后一行,和从像素阵列取回视频的下一个图像的第一行之间的时间差。在其它实施例中,VBI是从像素阵列取回由双照相机移动设备的照相机拍摄的视频的一个图像,和从像素阵列取回视频的下一个图像之间的时间差。Different embodiments control the rate at which images are processed (ie, frame rate) differently. One way to control the frame rate is through manipulation of the vertical blanking interval (VBI). For some embodiments that retrieve image rows to process the image row by row, the VBI retrieves the last row of an image from the pixel array for video captured by the cameras of a dual camera mobile device, and the next row of the video from the pixel array. The time difference between the first lines of an image. In other embodiments, the VBI is the time difference between retrieving from the pixel array one image of the video captured by the camera of the dual camera mobile device, and retrieving the next image of the video from the pixel array.
其中能够使用VBI的一个例子在传感器模块415与像素阵列410a和410b之间。例如,传感器模块415的一些实施例逐行地从像素阵列410a和410b取回图像,以及传感器模块415的其它实施例逐个图像地从像素阵列410a和410b取回图像。从而,通过调整传感器模块415的VBI,能够控制帧速率:增大VBI会降低帧速率,而减小VBI会提高帧速率。One example where VBI can be used is between sensor module 415 and pixel arrays 410a and 410b. For example, some embodiments of sensor module 415 retrieve images from pixel arrays 410a and 410b row by row, and other embodiments of sensor module 415 retrieve images from pixel arrays 410a and 410b image by image. Thus, by adjusting the VBI of the sensor module 415, the frame rate can be controlled: increasing the VBI decreases the frame rate, and decreasing the VBI increases the frame rate.
1.VBI对单照相机的应用:帧速率控制1. Application of VBI to single camera: frame rate control
图5概念地图解说明基于不同VBI的不同帧速率505、510和515的例子。每个序列显示在沿着时间线520的各个时刻525-555,拿着吉它的人物的图像,所述图像由双照相机移动设备的照相机之一拍摄。另外,每个时刻525-555之间的时间都相同,称为一个时间单元。为了说明起见,现在将参考图4的传感器模块415和像素阵列410a,说明图5。因而,每个图像代表沿着时间线520的传感器模块415从像素阵列410a取回图像的时刻。Figure 5 conceptually illustrates examples of different frame rates 505, 510, and 515 based on different VBIs. Each sequence shows, at various times 525-555 along the timeline 520, an image of a character holding a guitar captured by one of the cameras of the dual camera mobile device. In addition, the time between each moment 525-555 is the same, which is called a time unit. For purposes of illustration, FIG. 5 will now be described with reference to sensor module 415 and pixel array 410a of FIG. 4 . Thus, each image represents a moment along the timeline 520 at which the sensor module 415 retrieves the image from the pixel array 410a.
在示例的帧速率505中,传感器模块415关于像素阵列410a的VBI被设定为3个时间单元(例如,由控制器模块475设定)。即,传感器模块415沿着时间线520,每隔两个时刻从像素阵列410a取回一帧图像。如示例的帧速率505中所示,传感器模块415在时刻525、540和555取回图像。从而,示例的帧速率505具有每三个时间单元一帧图像的帧速率。In the example frame rate 505, the VBI of the sensor module 415 with respect to the pixel array 410a is set to 3 time units (eg, by the controller module 475). That is, the sensor module 415 retrieves a frame of image from the pixel array 410 a at every two moments along the time line 520 . As shown in example frame rate 505 , sensor module 415 retrieves images at times 525 , 540 , and 555 . Thus, the example frame rate 505 has a frame rate of one image frame every three time units.
除了VBI被设定为2个时间单元之外,示例的帧速率510类似于示例的帧速率505。从而,传感器模块415沿着时间线520,每隔一个时刻从像素阵列410a取回一帧图像。示例的帧速率510表示传感器模块415在时刻525、535、545和555,从像素阵列410a取回图像。由于示例的帧速率510的VBI小于示例的帧速率505的VBI,因此示例的帧速率510的帧速率高于示例的帧速率505的帧速率。The example frame rate 510 is similar to the example frame rate 505 except that the VBI is set to 2 time units. Therefore, the sensor module 415 retrieves a frame of image from the pixel array 410 a at every other moment along the time line 520 . The example frame rate 510 represents that the sensor module 415 retrieves images from the pixel array 410 a at times 525 , 535 , 545 and 555 . Because the VBI of example frame rate 510 is less than the VBI of example frame rate 505 , the frame rate of example frame rate 510 is higher than the frame rate of example frame rate 505 .
除了传感器模块415关于像素阵列410a的VBI被设定为1个时间单元之外,示例的帧速率515也类似于示例的帧速率505。于是,传感器模块415被指令沿着时间线520,在每个时刻从像素阵列410a取回一帧图像。如图所示,传感器模块415在时刻525-555,从像素阵列410a取回图像。示例的帧速率515的VBI小于示例的帧速率505和510的VBI。于是,示例的帧速率515的帧速率大于示例的帧速率505和510。The example frame rate 515 is also similar to the example frame rate 505 except that the VBI of the sensor module 415 with respect to the pixel array 410a is set to 1 time unit. Thus, the sensor module 415 is instructed to retrieve a frame of image from the pixel array 410a at each moment along the timeline 520 . As shown, sensor module 415 retrieves an image from pixel array 410a at times 525-555. The VBI for example frame rate 515 is less than the VBI for example frame rates 505 and 510 . Thus, the frame rate of the example frame rate 515 is greater than the example frame rates 505 and 510 .
2.VBI对双照相机的应用2. Application of VBI to dual cameras
一些实施例可能希望同时操作双照相机移动设备的两部照相机(例如,在视频会议期间,从两部照相机传送视频)。包括单处理管线的双照相机移动设备的不同实施例提供同时操作双照相机移动设备的两部照相机的不同机制。Some embodiments may wish to operate both cameras of a dual-camera mobile device simultaneously (eg, to transmit video from both cameras during a video conference). Different embodiments of dual-camera mobile devices that include a single processing pipeline provide different mechanisms for simultaneously operating the two cameras of the dual-camera mobile device.
一种这样的机制是通过控制每部照相机的VBI,交织由两部照相机拍摄的图像的处理。即,在一部照相机的VBI期间,拍摄和处理由另一部照相机拍摄的一个或多个图像,反之亦然。由于上面说明的CIPU 400具有单处理管线485,因此这种机制能够在一些实施例的CIPU 400中实现。在这样的实施例中,传感器模块415从像素阵列410a和410b之一取回图像,并且取回的图像由CIPU 400在传感器模块415关于另一个像素阵列的VBI期间处理。One such mechanism is to interleave the processing of the images captured by the two cameras by controlling the VBI of each camera. That is, during a VBI of one camera, one or more images captured by another camera are captured and processed, and vice versa. Since the CIPU 400 described above has a single processing pipeline 485, this mechanism can be implemented in the CIPU 400 of some embodiments. In such an embodiment, the sensor module 415 retrieves images from one of the pixel arrays 410a and 410b, and the retrieved images are processed by the CIPU 400 during a VBI of the sensor module 415 with respect to the other pixel array.
传感器模块415关于每个像素阵列的VBI可被设定为特定值。不过,在一些实施例中,VBI不被设定成比CIPU 400取回和处理一帧图像所用时间小的值。一些实施例把传感器模块415关于每个像素阵列的VBI设定成相同值。例如,当传感器模块415关于每个像素阵列的VBI被设定成相同值时,传感器模块415交替地从像素阵列410a和410b取回图像。其它实施例把传感器模块415关于每个像素阵列的VBI设定成不同的值。在一些这样的实施例中,传感器模块415关于一个像素阵列的VBI被设定成传感器模块415关于另一个像素阵列的VBI的倍数。例如,传感器模块415关于一个像素阵列的VBI被设定成2个时间单元,传感器模块415关于另一个像素阵列的VBI被设定成4个时间单元。在这个例子中,相对于传感器模块415从所述另一个像素阵列取回的每一帧图像,传感器模块415从所述一个像素阵列取回两帧图像。The VBI of the sensor module 415 with respect to each pixel array may be set to a specific value. However, in some embodiments, VBI is not set to a value that is less than the time it takes for CIPU 400 to retrieve and process a frame of image. Some embodiments set the VBI of the sensor module 415 to the same value for each pixel array. For example, when the VBI of sensor module 415 is set to the same value for each pixel array, sensor module 415 alternately retrieves images from pixel arrays 410a and 410b. Other embodiments set the VBI of the sensor module 415 to different values for each pixel array. In some such embodiments, the VBI of the sensor module 415 with respect to one pixel array is set to be a multiple of the VBI of the sensor module 415 with respect to the other pixel array. For example, the VBI of the sensor module 415 with respect to one pixel array is set to 2 time units, and the VBI of the sensor module 415 with respect to the other pixel array is set to 4 time units. In this example, sensor module 415 retrieves two frames of image from the one pixel array for every frame of image retrieved by sensor module 415 from the other pixel array.
图6概念地图解说明基于不同VBI的不同交织帧速率605、610和615的例子。除了图6包括沿着时间线620的13个时刻625-685之外,图6类似于图5。另外,拿着吉它的人物的图像代表沿着时间线620从一个像素阵列取回该图像的时刻,而戴着学位帽的人物的图像代表沿着时间线620从另一个像素阵列取回图像的时刻。Figure 6 conceptually illustrates an example of different interleaved frame rates 605, 610, and 615 based on different VBIs. FIG. 6 is similar to FIG. 5 except that FIG. 6 includes 13 time instants 625 - 685 along timeline 620 . Additionally, the image of the character holding the guitar represents the moment along timeline 620 when the image was retrieved from one pixel array, while the image of the character wearing the mortarboard represents the moment along timeline 620 when the image was retrieved from the other pixel array. time.
为了说明起见,拿着吉它的人物的图像假定已由双照相机移动设备的照相机传感器405a拍摄,以及戴着学位帽的人物的图像假定已由双照相机移动设备的照相机传感器405b拍摄。此外,现在将参考图4的传感器模块415及像素阵列410a和401b说明图6。For purposes of illustration, an image of a character holding a guitar is assumed to have been captured by camera sensor 405a of a dual camera mobile device, and an image of a character wearing a mortarboard is assumed to have been captured by camera sensor 405b of a dual camera mobile device. Furthermore, FIG. 6 will now be described with reference to sensor module 415 and pixel arrays 410 a and 401 b of FIG. 4 .
在示例的交织帧速率605中,传感器模块415关于像素阵列410a和像素阵列401b的VBI被设定成2个时间单元。如示例的交织帧速率605中所示,传感器模块415在沿着时间线620的时刻625、635、645、655、665、675和685,从像素阵列410a取回图像,以及传感器模块415在沿着时间线620的时刻630、640、650、660、670和680,从像素阵列410b取回图像。即,在每个时间单元,传感器模块415交替地从像素阵列取回图像。In the example interleaved frame rate 605, the VBI of the sensor module 415 with respect to the pixel array 410a and the pixel array 401b is set to 2 time units. As shown in example interleaved frame rate 605, sensor module 415 retrieves images from pixel array 410a at times 625, 635, 645, 655, 665, 675, and 685 along timeline 620, and sensor module 415 retrieves images from pixel array 410a at times along timeline 620. At times 630, 640, 650, 660, 670, and 680 on timeline 620, images are retrieved from pixel array 410b. That is, at each time unit, the sensor module 415 alternately retrieves images from the pixel array.
除了传感器模块415关于像素阵列410a和像素阵列401b的VBI被设定成4个时间单元之外,示例的交织帧速率610类似于示例的交织帧速率605。示例的交织帧速率610显示传感器模块415在沿着时间线620的时刻625、645、665和685,从像素阵列410a取回图像,以及传感器模块415在沿着时间线620的时刻635、655和675,从像素阵列410b取回图像。由于示例的交织帧速率610的VBI大于示例的交织帧速率605的VBI,因此示例的交织帧速率610的帧速率小于示例的交织帧速率605的帧速率。Example interleaved frame rate 610 is similar to example interleaved frame rate 605 except that the VBI of sensor module 415 with respect to pixel array 410a and pixel array 401b is set to 4 time units. Example interleaved frame rate 610 shows sensor module 415 retrieving images from pixel array 410 a at times 625 , 645 , 665 , and 685 along timeline 620 , and sensor module 415 at times 635 , 655 and 685 along timeline 620 . 675. Retrieve an image from the pixel array 410b. Because the VBI of example interleaved frame rate 610 is greater than the VBI of example interleaved frame rate 605 , the frame rate of example interleaved frame rate 610 is less than the frame rate of example interleaved frame rate 605 .
除了传感器模块415关于像素阵列410a和像素阵列401b的VBI被设定成6个时间单元之外,示例的交织帧速率615也类似于示例的交织帧速率605。如图6中所示,传感器模块415在沿着时间线620的时刻625、655和685,从像素阵列410a取回图像,以及传感器模块415在沿着时间线620的时刻640和670,从像素阵列410b取回图像。示例的交织帧速率615的VBI大于示例的交织帧速率605和610的VBI。从而,示例的交织帧速率615的帧速率小于示例的交织帧速率605和610的帧速率。The example interleaved frame rate 615 is also similar to the example interleaved frame rate 605 except that the VBI of the sensor module 415 with respect to the pixel array 410a and the pixel array 401b is set to 6 time units. As shown in FIG. 6, sensor module 415 retrieves images from pixel array 410a at times 625, 655, and 685 along timeline 620, and sensor module 415 retrieves images from pixel array 410a at times 640 and 670 along timeline 620. Array 410b retrieves the image. The VBI of the example interleaved frame rate 615 is greater than the VBIs of the example interleaved frame rates 605 and 610 . Thus, the frame rate of the example interleaved frame rate 615 is less than the frame rates of the example interleaved frame rates 605 and 610 .
B.多管线B. Multiple pipelines
图7概念地图解说明一些实施例的另一个拍摄图像处理单元(CIPU)700。除了CIPU 700由两个前端处理管线,一个存储器,和一个后端处理管线实现,而不是由单处理管线实现之外,CIPU 700实现和上面说明的CIPU 400相同的功能。因此,将参考CIPU 400的模块,说明CIPU 700的功能的描述。Figure 7 conceptually illustrates another captured image processing unit (CIPU) 700 of some embodiments. The CIPU 700 implements the same functions as the CIPU 400 described above, except that the CIPU 700 is implemented by two front-end processing pipelines, a memory, and a back-end processing pipeline instead of a single processing pipeline. Accordingly, the description of the functions of the CIPU 700 will be explained with reference to the modules of the CIPU 400.
如图所示,CIPU 700包括用于照相机传感器405a和像素阵列410a的前端处理管线715、用于照相机传感器405b和像素阵列410b的前端处理管线720、存储器725、控制器模块730、和后端处理管线735。一些实施例的照相机传感器405a和405b是双照相机移动设备的照相机的传感器。As shown, CIPU 700 includes front-end processing pipeline 715 for camera sensor 405a and pixel array 410a, front-end processing pipeline 720 for camera sensor 405b and pixel array 410b, memory 725, controller module 730, and back-end processing Line 735. Camera sensors 405a and 405b of some embodiments are sensors of a camera of a dual camera mobile device.
一些实施例的前端处理管线715和720执行CIPU 400的部分图像处理。因而,不同的实施例可以包括CIPU 400的不同数目的模块。例如,一些实施例的每个前端处理管线715和720包括CIPU 400的传感器模块415、BPC模块420、LS模块425、去马赛克模块430、WB模块435和统计引擎465。Front-end processing pipelines 715 and 720 of some embodiments perform a portion of CIPU 400's image processing. Thus, different embodiments may include different numbers of modules of CIPU 400. For example, each front-end processing pipeline 715 and 720 of some embodiments includes the sensor module 415, the BPC module 420, the LS module 425, the demosaic module 430, the WB module 435, and the statistics engine 465 of the CIPU 400.
尽管由于具有相同的模块,前端处理管线715和720执行相同类型的图像处理,不过通过如上关于CIPU 400说明的不同的寄存器值,能够不同地配置每个前端处理管线715和720中的每个模块。此外,由于每个照相机传感器405a和405b都具有它自己的前端处理管线,因此前端处理管线715和720能够相互独立地处理图像。例如,前端处理管线715和720能够并行地(即,在相同的时间)、在不同的时间、和以不同的速率处理图像。Although front-end processing pipelines 715 and 720 perform the same type of image processing by having the same modules, each module in each front-end processing pipeline 715 and 720 can be configured differently through different register values as explained above with respect to CIPU 400 . Furthermore, since each camera sensor 405a and 405b has its own front-end processing pipeline, the front-end processing pipelines 715 and 720 are able to process images independently of each other. For example, front-end processing pipelines 715 and 720 can process images in parallel (ie, at the same time), at different times, and at different rates.
在一些实施例中,每个前端处理管线715和720能够从其对应的照相机传感器和像素阵列取回图像。例如,前端处理管线715从像素阵列410a取回由照相机传感器405a拍摄的图像,以及前端处理管线720从像素阵列410b取回由照相机传感器405b拍摄的图像。当前端处理管线715和720之一从其对应的照相机传感器和像素阵列取回图像时,该前端处理管线处理该图像,并把处理后的图像发送给存储器725。另外,每个前端处理管线715和720如上所述与控制器模块730通信(例如,通过每个前端处理管线的统计引擎)。In some embodiments, each front-end processing pipeline 715 and 720 is capable of retrieving images from its corresponding camera sensor and pixel array. For example, front-end processing pipeline 715 retrieves images captured by camera sensor 405a from pixel array 410a, and front-end processing pipeline 720 retrieves images captured by camera sensor 405b from pixel array 410b. When one of front-end processing pipelines 715 and 720 retrieves an image from its corresponding camera sensor and pixel array, the front-end processing pipeline processes the image and sends the processed image to memory 725 . In addition, each front-end processing pipeline 715 and 720 communicates with controller module 730 (eg, through each front-end processing pipeline's statistics engine) as described above.
一些实施例的存储器725保存部分处理后的图像,供后端处理管线735完成处理。在这些实施例中,存储器725从前端处理管线715和720接收部分处理后的图像,并把部分处理后的图像发送给后端处理管线735。一些实施例把存储器725实现成易失性存储器(例如,随机存取存储器(RAM)),而其它实施例把存储器725实现成非易失性存储器(例如,闪速存储器、硬盘、光盘等)。此外,一些实施例的存储器725是内部存储器(例如,RAM),而其它实施例的存储器725是外部存储器(例如,紧凑式闪存(CF)卡,安全数字(SD)卡,等等)。The memory 725 of some embodiments holds partially processed images for the back-end processing pipeline 735 to complete processing. In these embodiments, memory 725 receives partially processed images from front-end processing pipelines 715 and 720 and sends the partially processed images to back-end processing pipeline 735 . Some embodiments implement memory 725 as volatile memory (e.g., random access memory (RAM)), while other embodiments implement memory 725 as non-volatile memory (e.g., flash memory, hard disk, optical disk, etc.) . Furthermore, memory 725 of some embodiments is internal memory (eg, RAM), while memory 725 of other embodiments is external memory (eg, Compact Flash (CF) card, Secure Digital (SD) card, etc.).
后端处理管线735的一些实施例执行CIPU 700的部分图像处理。在一些实施例中,后端处理管线735包括前端处理管线715和720不包括的CIPU 400的模块。例如,参见上面的例子,后端处理管线735应包括CIPU 400的CSC模块445、γ模块440、HSC模块450、定标器模块455和滤波器模块460。因而,这种实施例的后端处理管线735执行前端处理管线715和720不执行的CIPU 400的剩余图像处理。因此,后端处理管线735从存储器725取回部分处理后的图像,并对部分处理后的图像执行剩余的图像处理。在处理图像之后,后端处理管线735把处理后的图像发送给CIPU驱动器480。Some embodiments of the backend processing pipeline 735 perform a portion of the CIPU 700's image processing. In some embodiments, the back-end processing pipeline 735 includes modules of the CIPU 400 that the front-end processing pipelines 715 and 720 do not include. For example, referring to the example above, the backend processing pipeline 735 should include the CSC module 445, the gamma module 440, the HSC module 450, the scaler module 455 and the filter module 460 of the CIPU 400. Thus, the back-end processing pipeline 735 of such an embodiment performs the remaining image processing of the CIPU 400 that the front-end processing pipelines 715 and 720 do not perform. Accordingly, the backend processing pipeline 735 retrieves the partially processed image from the memory 725 and performs the remaining image processing on the partially processed image. After processing the image, the backend processing pipeline 735 sends the processed image to the CIPU driver 480 .
控制器模块730执行上面参考图4说明的相同功能。如图7中所示,控制器模块730与前端处理管线715和720及后端处理管线735交互。在一些实施例中,控制器模块730包括在后端处理管线735中,而在其它实施例中,控制器模块730包括在前端处理管线715和720之一中。The controller module 730 performs the same functions as explained above with reference to FIG. 4 . As shown in FIG. 7 , controller module 730 interacts with front-end processing pipelines 715 and 720 and back-end processing pipeline 735 . In some embodiments, the controller module 730 is included in the back-end processing pipeline 735 , while in other embodiments, the controller module 730 is included in one of the front-end processing pipelines 715 and 720 .
现在参考在图7中图解说明的照相机传感器405a和405b、像素阵列401a和410b、前端处理管线715和720、存储器725和后端处理管线735,说明CIPU 700的操作。当前端处理管线715和720之一从其对应的照相机传感器和像素阵列取回图像时,前端处理管线处理该图像,并把部分处理后的图像发送给存储器725。例如,前端处理管线715可从像素阵列410a取回由照相机传感器405a拍摄的图像,或者前端处理管线720可从像素阵列410b取回由照相机传感器405b拍摄的图像。如上所述,前端处理管线715和720都能够并行处理图像。Operation of the CIPU 700 is now described with reference to camera sensors 405a and 405b, pixel arrays 401a and 410b, front-end processing pipelines 715 and 720, memory 725, and back-end processing pipeline 735 illustrated in FIG. When one of the front-end processing pipelines 715 and 720 retrieves an image from its corresponding camera sensor and pixel array, the front-end processing pipeline processes the image and sends the partially processed image to memory 725 . For example, front-end processing pipeline 715 may retrieve images captured by camera sensor 405a from pixel array 410a, or front-end processing pipeline 720 may retrieve images captured by camera sensor 405b from pixel array 410b. As noted above, both front-end processing pipelines 715 and 720 are capable of processing images in parallel.
后端处理管线735从存储器725取回部分处理后的图像,并处理部分处理后的图像以完成图像的图像处理。在一些实施例中,后端处理管线735基于先进先出的原则取回和处理保存在存储器725中的图像。换句话说,存储器725中的特定图像将在先于该特定图像的接收和保存在存储器725中的所有图像之后进行处理,不过,该特定图像将在晚于该特定图像的接收和保存在存储器725中的图像之前进行处理。在后端处理管线735处理图像之后,它把处理后的图像发送给CIPU驱动器480。The backend processing pipeline 735 retrieves the partially processed image from the memory 725 and processes the partially processed image to complete the image processing of the image. In some embodiments, backend processing pipeline 735 retrieves and processes images stored in memory 725 on a first-in, first-out basis. In other words, a particular image in memory 725 will be processed after all images received and stored in memory 725 prior to that particular image, however, that particular image will be processed after it is received and stored in memory 725 before processing the image. After the backend processing pipeline 735 processes the image, it sends the processed image to the CIPU driver 480 .
图8概念地图解说明一些实施例的另一个拍摄图像处理单元(CIPU)800。除了CIPU 800由两个单独的处理管线实现,每个照相机传感器具有它自己的单独的处理管线之外,CIPU 800执行和上面说明的CIPU 400相同的功能。因而,将参考CIPU 400的模块,说明CIPU 800的功能的描述。Figure 8 conceptually illustrates another captured image processing unit (CIPU) 800 of some embodiments. The CIPU 800 performs the same functions as the CIPU 400 described above, except that the CIPU 800 is implemented by two separate processing pipelines, each camera sensor having its own separate processing pipeline. Thus, a description of the functions of the CIPU 800 will be explained with reference to the modules of the CIPU 400.
如图所示,CIPU 800包括用于照相机传感器405a和像素阵列410a的处理管线815,和用于照相机传感器405b和像素阵列410b的处理管线820。一些实施例的每个处理管线815和820都包括包含在CIPU 400中的所有模块。于是,这些实施例的每个处理管线815和820的操作均与CIPU 400的操作相同。As shown, CIPU 800 includes a processing pipeline 815 for camera sensor 405a and pixel array 410a, and a processing pipeline 820 for camera sensor 405b and pixel array 410b. Each of the processing pipelines 815 and 820 of some embodiments includes all of the modules contained in the CIPU 400. Thus, the operation of each of the processing pipelines 815 and 820 of these embodiments is identical to the operation of the CIPU 400.
由于每个照相机传感器405a和405b都具有它自己的处理管线,因此处理管线815和820能够相互独立地处理图像。例如,处理管线815和820能够并行地(即,在相同的时间)、在不同的时间、和以不同的速率处理图像。另外,通过上面参考CIPU 400说明的不同的寄存器值,能够不同地配置一些实施例的每个处理管线815和820。Since each camera sensor 405a and 405b has its own processing pipeline, processing pipelines 815 and 820 are able to process images independently of each other. For example, processing pipelines 815 and 820 can process images in parallel (ie, at the same time), at different times, and at different rates. Additionally, each of the processing pipelines 815 and 820 of some embodiments can be configured differently through the different register values described above with reference to the CIPU 400.
在一些实施例中,CIPU 400的许多模块包括用于执行该模块的一些或全部操作的一个或多个行/帧缓冲器。例如,一些实施例的滤波模块460被实现成执行3×3低通滤波。在这样的实施例中,3×3低通滤波器处理图像中的连续三行,以便对所述连续三行的中间行应用3×3低通滤波。从而,这种实施例的滤波模块460至少需要三个行/帧缓冲器,以便实现3×3低通滤波。CIPU 400中的其它模块也包括一个或多个行/帧缓冲器,比如BPC模块420和LS模块425。In some embodiments, many of the modules of CIPU 400 include one or more line/frame buffers for performing some or all of the operations of that module. For example, the filtering module 460 of some embodiments is implemented to perform 3x3 low-pass filtering. In such an embodiment, the 3x3 low pass filter processes three consecutive lines in the image to apply the 3x3 low pass filter to the middle row of the three consecutive lines. Thus, the filtering module 460 of this embodiment requires at least three line/frame buffers in order to implement 3x3 low-pass filtering. Other modules in CIPU 400 also include one or more line/frame buffers, such as BPC module 420 and LS module 425.
CIPU 800的处理管线均可具有不同的行/帧缓冲器大小,以便按照其对应照相机的特征定制图像处理。例如,如果双照相机移动设备的一部照相机具有2048×1500像素传感器,那么该2048×1500像素传感器的处理管线能够包括2048像素宽的行/帧缓冲器。类似地,如果双照相机移动设备的另一部照相机具有640×480像素传感器,那么640×480像素传感器的处理管线可包括为640像素宽的行/帧缓冲器。即,包括在一个处理管线的各个模块中的行/帧缓冲器的大小可不同于包括在另一个处理管线的各个模块中的行/帧缓冲器的大小。The CIPU 800's processing pipeline can all have different line/frame buffer sizes to tailor image processing to the characteristics of its corresponding camera. For example, if one camera of a dual camera mobile device has a 2048x1500 pixel sensor, the processing pipeline for the 2048x1500 pixel sensor can include a 2048 pixel wide line/frame buffer. Similarly, if the other camera of a dual camera mobile device has a 640x480 pixel sensor, the processing pipeline for the 640x480 pixel sensor may include a line/frame buffer that is 640 pixels wide. That is, the size of a line/frame buffer included in each module of one processing pipeline may be different from the size of a line/frame buffer included in each module of another processing pipeline.
III.视频会议III. Video conferencing
A.视频会议体系结构A. Video conferencing architecture
图9概念地图解说明一些实施例的双照相机移动设备的视频会议和处理模块900的软件体系结构。视频会议和处理模块900包括与上面参考图3说明的对应模块和驱动器305、301和320类似的CIPU驱动器905、媒体交换模块910和编码器驱动器920。视频会议和处理模块900还包括用于实现各种视频会议功能的视频会议模块925、视频会议客户端945和网络接口950。类似于视频处理和编码模块300,视频会议和处理模块900处理和编码从双照相机移动设备的照相机拍摄的图像。Figure 9 conceptually illustrates the software architecture of a video conferencing and processing module 900 of a dual camera mobile device of some embodiments. The video conferencing and processing module 900 includes a CIPU driver 905 , a media switching module 910 and an encoder driver 920 similar to the corresponding modules and drivers 305 , 301 and 320 described above with reference to FIG. 3 . The video conferencing and processing module 900 also includes a video conferencing module 925 , a video conferencing client 945 and a network interface 950 for realizing various video conferencing functions. Similar to the video processing and encoding module 300, the video conferencing and processing module 900 processes and encodes images captured from the cameras of the dual camera mobile device.
如上参考图3所述,媒体交换模块910允许设备中的媒体内容的使用者和制造者交换媒体内容,和与媒体内容的处理有关的指令。CIPU驱动器905充当与拍摄图像处理单元(CIPU)955的通信接口,编码器驱动器920充当与编码器硬件960(例如,编码器芯片、片上系统上的编码组件,等等)的通信接口。As described above with reference to FIG. 3 , the media exchange module 910 allows users and producers of media content in the device to exchange media content and instructions related to the processing of the media content. CIPU driver 905 serves as a communication interface with captured image processing unit (CIPU) 955 and encoder driver 920 serves as a communication interface with encoder hardware 960 (eg, an encoder chip, an encoding component on a system-on-chip, etc.).
一些实施例的视频会议模块925负责各种视频会议功能,比如图像处理、视频会议管理和连网。如图所示,视频会议模块925与媒体交换模块910、视频会议客户端945和网络接口950交互。在一些实施例中,视频会议模块925从视频会议客户端945接收指令,和向视频会议客户端945发送指令。一些实施例的视频会议模块925还通过网络接口950,向网络发送数据和从网络接收数据,例如,所述网络是局域网(LAN)、无线局域网(WLAN)、广域网(WAN)、网络的网络(a network of networks)、码分多址接入(CDMA)网络、GSM网络,等等。The videoconferencing module 925 of some embodiments is responsible for various videoconferencing functions, such as image processing, videoconferencing management, and networking. As shown, video conferencing module 925 interacts with media exchange module 910 , video conferencing client 945 and network interface 950 . In some embodiments, videoconferencing module 925 receives instructions from, and sends instructions to, videoconferencing client 945 . The video conferencing module 925 of some embodiments also sends data to and receives data from the network through the network interface 950, for example, the network is a local area network (LAN), a wireless local area network (WLAN), a wide area network (WAN), a network of networks ( a network of networks), code division multiple access (CDMA) network, GSM network, etc.
视频会议模块925包括图像处理层930、管理层935和网络层940。在一些实施例中,图像处理层930对图像进行图像处理操作,以便用于视频会议。例如,一些实施例的图像处理层930进行曝光调整、图像缩放、透视校正和动态范围调整,如下进一步详细所述。一些实施例的图像处理层930通过媒体交换模块910发送对来自CIPU955的图像的请求。The video conferencing module 925 includes an image processing layer 930 , a management layer 935 and a network layer 940 . In some embodiments, image processing layer 930 performs image processing operations on images for use in video conferencing. For example, the image processing layer 930 of some embodiments performs exposure adjustment, image scaling, perspective correction, and dynamic range adjustment, as described in further detail below. The image processing layer 930 of some embodiments sends requests for images from the CIPU 955 through the media exchange module 910 .
一些实施例的管理层935控制视频会议模块925的操作。例如,在一些实施例中,管理层935初始化双照相机移动设备的一部/两部照相机,处理图像和音频,以便传送给远程设备,和处理从远程设备接收的图像和音频。在一些实施例中,管理层935产生用于该设备的合成(例如PIP)显示。此外,管理层935可根据从网络层940接收的连网报告,改变视频会议模块925的操作。The management layer 935 of some embodiments controls the operation of the video conferencing module 925 . For example, in some embodiments, the management layer 935 initializes one/both cameras of a dual camera mobile device, processes images and audio for transmission to a remote device, and processes images and audio received from a remote device. In some embodiments, management layer 935 generates a composite (eg, PIP) display for the device. Additionally, the management layer 935 may alter the operation of the video conferencing module 925 based on the networking reports received from the network layer 940 .
在一些实施例中,网络层940实现用于视频会议的一些或全部网络功能。例如,如下所述,除了别的功能之外,一些实施例的网络层940建立视频会议的双照相机移动设备和远程设备之间的网络连接(未示出),把图像传送给远程设备,和从远程设备接收图像。另外,网络层940接收诸如分组丢失、单向等待时间和往返延迟时间之类的连网数据,以及其它各种数据,处理这样的数据,和把数据报告给管理层935。In some embodiments, the network layer 940 implements some or all of the network functions for video conferencing. For example, as described below, the network layer 940 of some embodiments establishes a network connection (not shown) between a videoconferencing dual-camera mobile device and a remote device, transmits images to the remote device, and Receive an image from a remote device. Additionally, the network layer 940 receives networking data such as packet loss, one-way latency, and round-trip delay time, among other miscellaneous data, processes such data, and reports the data to the management layer 935 .
一些实施例的视频会议客户端945是利用视频会议模块925的视频会议功能的应用,比如视频会议应用、IP话音(VOIP)应用(例如,Skype)或者即时通信应用。在一些实施例中,视频会议客户端945是独立的应用,而在其它实施例中,视频会议客户端945被集成到另一个应用中。The video conferencing client 945 of some embodiments is an application that utilizes the video conferencing functionality of the video conferencing module 925, such as a video conferencing application, a voice over IP (VOIP) application (eg, Skype), or an instant messaging application. In some embodiments, video conferencing client 945 is a stand-alone application, while in other embodiments video conferencing client 945 is integrated into another application.
在一些实施例中,网络接口950是允许视频会议模块925和视频会议客户端945通过网络(例如,蜂窝网络、局域网、无线网络、网络的网络、因特网等)发送数据和接收数据的通信接口。例如,如果视频会议模块925想要向因特网上的另一个设备发送数据(例如,由双照相机移动设备的照相机拍摄的图像),那么视频会议模块925通过网络接口950把图像发送给所述另一个设备。In some embodiments, network interface 950 is a communication interface that allows video conferencing module 925 and video conferencing client 945 to send and receive data over a network (e.g., a cellular network, a local area network, a wireless network, a network of networks, the Internet, etc.). For example, if videoconferencing module 925 wants to send data (e.g., an image captured by a camera of a dual-camera mobile device) to another device on the Internet, then videoconferencing module 925 sends the image to the other device via network interface 950. equipment.
B.视频会议设置B. Video conferencing setup
图10概念地图解说明一些实施例的示例的视频会议请求消息接发序列1000。图10表示运行于设备1005上的视频会议客户端1010,视频会议服务器1015,和运行于设备1020上的视频会议客户端1025之间的视频会议请求消息接发序列1000。在一些实施例中,视频会议客户端1010和1025与图9中所示的视频会议客户端945相同。如图10中所示,一个设备(即,设备1005)请求视频会议,以及另一个设备(即,设备1020)应答该请求。在本申请中描述的双照相机移动设备能够执行这两个操作(即,发出请求和响应请求)。Figure 10 conceptually illustrates an example video conference request messaging sequence 1000 of some embodiments. FIG. 10 shows a video conference request messaging sequence 1000 between video conference client 1010 running on device 1005 , video conference server 1015 , and video conference client 1025 running on device 1020 . In some embodiments, video conferencing clients 1010 and 1025 are the same as video conferencing client 945 shown in FIG. 9 . As shown in FIG. 10, one device (ie, device 1005) requests a video conference, and another device (ie, device 1020) responds to the request. The dual-camera mobile device described in this application is capable of performing both operations (ie, making a request and responding to a request).
一些实施例的视频会议服务器1015在视频会议客户端之间路由消息。尽管一些实施例在一个计算设备上实现视频会议服务器1015,不过其它实施例在多个计算设备上实现视频会议服务器1015。在一些实施例中,视频会议服务器是可公开访问的服务器,它能够同时处理和路由众多会议的消息。一些实施例的每个视频会议客户端1010和1025经网络接口,比如上面说明的网络接口950,通过网络(例如,蜂窝网络、局域网、无线网络、网络的网络、因特网等)与视频会议服务器1015通信。The video conferencing server 1015 of some embodiments routes messages between video conferencing clients. While some embodiments implement video conferencing server 1015 on one computing device, other embodiments implement video conferencing server 1015 on multiple computing devices. In some embodiments, the video conferencing server is a publicly accessible server capable of processing and routing messages for numerous conferences simultaneously. Each of videoconferencing clients 1010 and 1025 of some embodiments communicates with videoconferencing server 1015 via a network interface, such as network interface 950 described above, over a network (e.g., a cellular network, a local area network, a wireless network, a network of networks, the Internet, etc.) communication.
当视频会议客户端1010从设备1005的用户接收到(在操作1)开始和设备1020的视频会议的请求时,一些实施例的视频会议请求消息接发序列1000开始。当设备1005的用户选择显示在设备1005上的用户界面的某一用户界面(UI)项目时,一些实施例的视频会议客户端1010接收开始视频会议的请求。在下面说明的图11和图14中图解说明了这种用户界面的例子。Video conference request messaging sequence 1000 of some embodiments begins when video conference client 1010 receives (at operation 1 ) a request from a user of device 1005 to start a video conference with device 1020 . When a user of device 1005 selects a certain user interface (UI) item of a user interface displayed on device 1005, video conferencing client 1010 of some embodiments receives a request to start a video conference. Examples of such user interfaces are illustrated in Figures 11 and 14 described below.
在视频会议客户端1010接收到请求之后,视频会议客户端1010向视频会议服务器1015发送(在操作2)视频会议请求,该请求根据用户的输入,把设备1020指示为收件人。视频会议服务器1015把视频会议请求转发给(在操作3)设备1020的视频会议客户端1025。在一些实施例中,视频会议服务器1015利用推送技术,把视频会议请求转发给视频会议客户端1025。即,当从视频会议客户端1010接收到请求时,视频会议服务器1015开始向视频会议客户端1025传送视频会议请求,而不是等待客户端1025发送对任何消息的请求。After videoconferencing client 1010 receives the request, videoconferencing client 1010 sends (at operation 2) a videoconferencing request to videoconferencing server 1015, the request indicating device 1020 as the recipient based on user input. The video conference server 1015 forwards (at operation 3 ) the video conference client 1025 of the device 1020 to the video conference request. In some embodiments, the video conference server 1015 forwards the video conference request to the video conference client 1025 using push technology. That is, when a request is received from videoconferencing client 1010, videoconferencing server 1015 begins transmitting the videoconferencing request to videoconferencing client 1025, rather than waiting for client 1025 to send a request for any messages.
当一些实施例的视频会议客户端1025接收到视频会议请求时,在设备1020上显示用户界面,以向设备1020的用户指出,设备1005的用户发送了开始视频会议的请求,并提示设备1020的用户接受或拒绝该视频会议请求。在下面说明的图12中图解说明了这种用户界面的例子。在一些实施例中,当视频会议客户端1025接收到(在操作4)接受来自设备1005的用户的视频会议请求的请求时,视频会议客户端1025向视频会议服务器1015发送(在操作5)视频会议接受。当设备1020的用户选择如图12中图解说明的用户界面的某一用户界面项目时,一些实施例的视频会议客户端1025接收到接受视频请求的请求。When the video conference client 1025 of some embodiments receives a video conference request, a user interface is displayed on the device 1020 to indicate to the user of the device 1020 that the user of the device 1005 has sent a request to start the video conference, and to prompt the user of the device 1020 The user accepts or rejects the video conference request. An example of such a user interface is illustrated in Figure 12 described below. In some embodiments, when the video conferencing client 1025 receives (at operation 4) a request to accept a video conference request from the user of the device 1005, the video conferencing client 1025 sends (at operation 5) a video conference request to the video conferencing server 1015. Meeting accepted. When a user of device 1020 selects a certain user interface item of the user interface as illustrated in FIG. 12 , video conferencing client 1025 of some embodiments receives a request to accept a video request.
在视频会议服务器1015从视频会议客户端1025接收到视频会议接受之后,视频会议服务器1015把视频会议接受转发给(在操作6)视频会议客户端1010。视频会议服务器1015的一些实施例利用上述推送技术,把视频会议接受转发给视频会议客尸端1010。After video conference server 1015 receives the video conference acceptance from video conference client 1025 , video conference server 1015 forwards (at operation 6 ) the video conference acceptance to video conference client 1010 . Some embodiments of the video conference server 1015 forward the video conference acceptance to the video conference client 1010 using the push technology described above.
当接收到视频会议接受时,一些实施例在设备1005和设备1020之间建立(在操作7)视频会议。不同的实施例不同地建立视频会议。例如,一些实施例的视频会议建立包括:协商设备1005和设备1020之间的连接、确定对视频编码的比特率、和在设备1005和设备1020交换视频。When a video conference acceptance is received, some embodiments establish (at operation 7 ) a video conference between device 1005 and device 1020 . Different embodiments set up the video conference differently. For example, video conference setup of some embodiments includes negotiating a connection between device 1005 and device 1020 , determining a bit rate to encode the video, and exchanging video at device 1005 and device 1020 .
在上面的例子中,设备1020的用户接受视频会议请求。在一些实施例中,设备1020可被配置成(例如,通过设备的优先选择设置)自动接受到来的视频会议请求,而不显示UI。此外,设备1020的用户也能够拒绝(在操作4)视频会议请求(例如,通过选择在设备1020上显示的用户界面的某个用户界面项目)。代替发送视频会议接受,视频会议客户端1025向视频会议服务器1015发送视频会议拒绝,视频会议服务器1015把视频会议拒绝转发给视频会议客户端1010。从而根本不建立视频会议。In the above example, the user of device 1020 accepts a video conference request. In some embodiments, device 1020 may be configured (eg, via device preferences) to automatically accept incoming video conference requests without displaying a UI. Additionally, the user of device 1020 can also decline (at operation 4) the video conference request (eg, by selecting a certain user interface item of the user interface displayed on device 1020). Instead of sending a video conference acceptance, video conference client 1025 sends a video conference rejection to video conference server 1015 , which forwards the video conference rejection to video conference client 1010 . Thereby no video conference is established at all.
1.视频会议设置用户界面1. Video conference setting user interface
在一些实施例中,根据正在进行的通话,发起视频会议。即,在移动设备的用户与第二位用户通话的时候,经另一方的许可,该用户能够把通话变成视频会议。对本发明的一些实施例来说,图11图解说明由双照相机手持移动设备1100进行的这种视频会议的启动。图11利用设备1100的用户界面(“UI”)1105的五个操作阶段1110、1115、1120、1125和1130,图解说明视频会议的启动。In some embodiments, a video conference is initiated based on an ongoing call. That is, when a user of a mobile device is on a call with a second user, the user can turn the call into a video conference with the permission of the other party. Figure 11 illustrates the initiation of such a video conference by a dual camera handheld mobile device 1100 for some embodiments of the invention. FIG. 11 illustrates the initiation of a video conference using five operational stages 1110 , 1115 , 1120 , 1125 , and 1130 of a user interface (“UI”) 1105 of device 1100 .
如图11中所示,UI 1105包括名字栏1135、选择菜单1140和可选择的UI项目1145。名字栏1135显示在通话另一端的用户意欲请求与之进行视频会议的人物的名字。在本例中,可选择的UI项目1145(它可被实现成可选择的按钮)向用户提供可选择的结束通话(End Call)选项,以结束通话。选择菜单1140显示可选择的UI项目的菜单,比如喇叭扩音器项目1142、静音项目1144、数字小键盘项目1146、电话簿项目1148、保持项目1152、视频会议项目1154等等。不同的实施例不同地显示选择菜单。对图11图解说明的实施例来说,选择菜单1140包括几个同样大小的图标,每个图标代表一个不同的操作。其它实施例提供可滚动的菜单,或者给予特定项目以优先级(例如,通过使这些项目变得更大)。As shown in FIG. 11 , UI 1105 includes a name field 1135, a selection menu 1140, and selectable UI items 1145. The name column 1135 displays the name of the person with whom the user at the other end of the call wishes to request a video conference. In this example, selectable UI item 1145 (which can be implemented as a selectable button) provides the user with a selectable End Call option to end the call. Selection menu 1140 displays a menu of selectable UI items, such as speakerphone item 1142, mute item 1144, numeric keypad item 1146, phonebook item 1148, hold item 1152, video conferencing item 1154, and the like. Different embodiments display the selection menu differently. For the embodiment illustrated in FIG. 11, the selection menu 1140 includes several icons of the same size, each icon representing a different operation. Other embodiments provide scrollable menus, or give priority to certain items (eg, by making them larger).
现在将参考UI 1105在图11中图解说明的五个阶段1110、1115、1120、1125和1130中的状态,说明UI 1105的操作。在第一阶段1110中,在手持移动设备用户和Nancy Jones之间已经建立了通话。第二阶段1115显示在用户选择可选择的视频会议选项1154(例如,通过手指1150的单指轻点),以激活视频会议工具之后的UI 1105。在这个例子中,视频会议选项1154(它可被实现成可选择的图标)允许用户在通话期间启动视频会议。在第二阶段中,视频会议选项1150被突出显示,以指示视频会议工具已被激活。不同的实施例可用不同的方式(例如,通过突出显示项目的边框或文本),指示这样的选择。Operation of the UI 1105 will now be described with reference to the states of the UI 1105 in five stages 1110, 1115, 1120, 1125, and 1130 illustrated in FIG. 11 . In a first stage 1110, a call has been established between the handheld mobile device user and Nancy Jones. The second stage 1115 displays the UI 1105 after the user selects a selectable video conferencing option 1154 (e.g., with a single-finger tap of finger 1150) to activate the video conferencing tool. In this example, video conference option 1154 (which can be implemented as a selectable icon) allows the user to initiate a video conference during a call. In the second stage, the video conferencing option 1150 is highlighted to indicate that the video conferencing tool has been activated. Different embodiments may indicate such selection in different ways (eg, by highlighting a border or text of an item).
第三阶段1120显示在依据选择视频会议选项1154的选择,设备1100已启动视频会议处理之后的UI 1105。第三阶段是在设备等待建立视频会议时(例如,在设备等待通话另一端的设备接受或拒绝视频会议时)的过渡保持阶段。在第三阶段1120中,在建立视频会议连接的时候,设备1100的用户仍然能够与另一设备的用户(即,Nancy Jones)谈话。另外,一些实施例允许设备1100的用户通过选择显示在UI 1105上的用于取消视频会议请求的可选UI项目(未示出),在第三阶段1120中取消视频会议请求。在该保持阶段期间,不同的实施例使用UI 1105中的不同显示来指示该等待状态。The third stage 1120 displays the UI 1105 after the device 1100 has initiated the video conferencing process upon selection of the select video conferencing option 1154. The third phase is the transition hold phase while the device is waiting to establish a video conference (eg, while the device is waiting for the device on the other end of the call to accept or decline the video conference). In a third stage 1120, while the video conference connection is being established, the user of device 1100 is still able to talk to the user of another device (ie, Nancy Jones). Additionally, some embodiments allow the user of device 1100 to cancel the video conference request in the third stage 1120 by selecting an optional UI item (not shown) displayed on UI 1105 for canceling the video conference request. During this hold phase, different embodiments indicate this wait state using a different display in UI 1105.
如图11中所示,在一些实施例中,利用由设备1100拍摄的视频的全屏显示,以及在该视频的底部的“Preview(预览)”符号图解说明第三阶段的等待状态。具体地说,在图11中,第三阶段1120通过在UI 1105的显示区1160中,显示由设备的照相机拍摄的视频的全屏呈现,图解说明视频会议处理的开始。在一些实施例中,正面的照相机是在开始视频会议时,设备选择的默认照相机。通常,在开始视频会议时,所述正面照相机对着设备的用户。因此,在图11中图解说明的例子中,第三阶段1120把设备1100图解表示成呈现设备1100的用户的全屏视频。位于在第三阶段1120期间,出现在显示区1160中的视频之下的“Preview”指示进一步突出设备的等待状态。As shown in FIG. 11 , in some embodiments, the third stage wait state is illustrated with a full screen display of the video captured by device 1100 , and a "Preview" symbol at the bottom of the video. Specifically, in FIG. 11 , the third stage 1120 illustrates the start of the video conferencing process by displaying in the display area 1160 of the UI 1105 a full-screen representation of the video captured by the device's camera. In some embodiments, the front camera is the default camera selected by the device when starting a video conference. Typically, the front camera is pointed at the user of the device when the video conference is started. Thus, in the example illustrated in FIG. 11 , the third stage 1120 graphically represents the device 1100 as presenting a full screen video of the user of the device 1100 . A "Preview" indication located below the video that appears in the display area 1160 during the third stage 1120 further highlights the waiting state of the device.
在一些实施例中,能够不同地表示过渡性的第三保持阶段1120。例如,一些实施例允许设备1100的用户选择背面的照相机作为启动视频会议的照相机。为了允许这种选择,一些实施例允许用户(例如,通过菜单优先选择设置)把背面的照相机指定为启动视频会议的默认照相机,和/或允许用户从在用户选择视频会议选项1154之后,显示背面和正面的照相机的菜单中选择背面的照相机。在这些情况的任何一种中,UI 1105(例如,显示区1160)在第三保持阶段1120期间,显示由背面的照相机拍摄的视频。In some embodiments, the transitional third hold phase 1120 can be represented differently. For example, some embodiments allow a user of device 1100 to select the camera on the back as the camera to initiate a video conference. To allow for this choice, some embodiments allow the user (e.g., via a menu preference setting) to designate the back camera as the default camera to Select Rear Camera from the menu and Front Camera. In any of these cases, the UI 1105 (e.g., the display area 1160) displays the video captured by the camera on the back during the third hold phase 1120.
另外,其它实施例可通过显示设备1100所摄视频的较小版本,通过显示保存在设备1100上的静止图像,通过提供突出显示设备的等待状态的消息(例如,通过显示“Conference Being Established”(正在建立会议),通过不显示“Preview”指示,等等,可指出视频会议工具的激活。另外,在第三阶段1120中,一些实施例的UI 1105提供如果在该阶段(例如,在用户等待远程用户答复他的请求时),用户决定不进入视频会议,那么允许用户取消进入视频会议,并返回通话状态的结束(End)按钮(未示出)。Additionally, other embodiments may display a smaller version of the video captured by device 1100, by displaying a still image stored on device 1100, by providing a message that highlights the device's waiting state (e.g., by displaying a "Conference Being Established" ( The meeting is being established), by not displaying the "Preview" indication, etc., can indicate the activation of the video conferencing tool. Additionally, in the third stage 1120, the UI 1105 of some embodiments provides an indication if at this stage (e.g., while the user is waiting When the remote user answers his request), the user decides not to enter the video conference, so the user is allowed to cancel entering the video conference, and return to the End (End) button (not shown) of the call state.
第四阶段1125图解说明在远程用户接受了视频会议请求,并且建立了视频会议连接之后,处于过渡状态的UI 1105。在该过渡状态下,显示本地用户的视频(在本例中,由正面的照相机拍摄的视频)的显示区1160的大小逐渐减小(即,逐渐缩小),如箭头1175所示。显示区1160(即,本地用户的视频)缩小,使得UI 1105能够在显示区1160之后,显示包含来自远程设备的照相机的视频的显示区1170(例如,显示窗口1170)。换句话说,本地用户的视频1160的缩小产生PIP显示1180,PIP显示1180具有本地用户的视频的前景插入显示1160,和远程用户的背景主显示1170。在本例中,背景主显示1170呈现远程设备的正面照相机正在拍摄其视频的女士(例如,Nancy Jones,远程设备的用户),或者远程设备的背面照相机正在拍摄其视频的女士(例如,Nancy Jones正在拍摄其视频的女士)的视频。普通技术人员会认识到图11中所示的过渡性的第四阶段只是一些实施例使用的一种示例方法,其它实施例可以不同地动画演示过渡性的第四阶段。The fourth stage 1125 illustrates the UI 1105 in a transitional state after the remote user has accepted the video conference request and established a video conference connection. In this transition state, the display area 1160 displaying the local user's video (in this example, the video captured by the front camera) gradually decreases in size (ie, tapers out), as indicated by arrow 1175 . Display area 1160 (i.e., the local user's video) is zoomed out, enabling UI 1105 to display, behind display area 1160, display area 1170 (e.g., display window 1170) containing video from the remote device's camera. In other words, zooming out of the local user's video 1160 produces a PIP display 1180 with a foreground inset display 1160 of the local user's video, and a background main display 1170 of the remote user. In this example, the background main display 1170 presents a woman whose video is being captured by the remote device's front camera (e.g., Nancy Jones, the user of the remote device), or a woman whose video is being captured by the remote device's back camera (e.g., Nancy Jones video of the woman whose video is being filmed). One of ordinary skill will recognize that the transitional fourth stage shown in FIG. 11 is only one example approach used by some embodiments, and that other embodiments may animate the transitional fourth stage differently.
第四阶段1125还在下面的显示区1155中图解说明可选的UI项目1132。可选的UI项目1132(它可被实现成可选择的按钮)在PIP显示1180之下提供可选择的结束会议(End Conference)选项1132。用户可以选择结束会议选项1132来结束视频会议(例如,通过单指轻点)。不同的实施例可允许用户用不同的方式结束会议,比如通过转换移动设备上的开关,通过发出话音命令,等等。此外,不同的实施例可允许结束会议选项1132在视频会议期间逐渐消失,从而允许PIP显示1180占据整个显示区1185。随后在单指轻点显示区1185的底部时,结束会议选项1132可重新出现,使用户可以利用结束会议选项1132。在一些实施例中,显示区1155的布局和下面进一步详细说明的显示区1155相同。The fourth stage 1125 also illustrates an optional UI item 1132 in the lower display area 1155 . An optional UI item 1132 (which can be implemented as a selectable button) provides a selectable End Conference option 1132 below the PIP display 1180. The user may select the end meeting option 1132 to end the video conference (eg, with a one-finger tap). Different embodiments may allow the user to end the meeting in different ways, such as by flipping a switch on the mobile device, by issuing a voice command, and so on. Additionally, various embodiments may allow the end meeting option 1132 to fade away during the video conference, thereby allowing the PIP display 1180 to occupy the entire display area 1185 . On subsequent one-finger taps on the bottom of display area 1185 , end meeting option 1132 may reappear, making end meeting option 1132 available to the user. In some embodiments, the layout of the display area 1155 is the same as that of the display area 1155 described in further detail below.
第五阶段1130图解说明在结束第四过渡状态1125的动画之后的UI 1105。具体地说,第五阶段1130图解说明在视频会议期间,由UI1105呈现的PIP显示1180。如上所述,PIP显示1180包括两个视频显示:来自远程照相机的较大的背景显示1170,和来自本地照相机的较小的前景插入显示1160。The fifth stage 1130 illustrates the UI 1105 after ending the animation of the fourth transition state 1125. Specifically, the fifth stage 1130 illustrates the PIP display 1180 presented by the UI 1105 during the video conference. As noted above, the PIP display 1180 includes two video displays: a larger background display 1170 from the remote camera, and a smaller foreground inset display 1160 from the local camera.
PIP显示1180只是呈现由远程设备和本地设备拍摄的视频的合成视图的一种方式。除了该合成视图之外,一些实施例的设备提供其它合成视图。例如,代替具有远程用户的较大的背景显示1170,较大的背景显示1170可以是本地用户,而较小的前景插入显示1160是远程用户。如下进一步所述,一些实施例允许用户在视频会议期间,在作为提供PIP显示1180的插入视图和主视图的照相机的本地照相机和/或远程照相机之间切换。The PIP display 1180 is just one way of presenting a composite view of the video captured by the remote device and the local device. In addition to this composite view, devices of some embodiments provide other composite views. For example, instead of having a larger background display 1170 of a remote user, the larger background display 1170 could be of the local user, while the smaller foreground inset display 1160 is of the remote user. As described further below, some embodiments allow a user to switch between a local camera and/or a remote camera during a video conference as the camera providing the inset and main views of the PIP display 1180 .
另外,一些实施例允许本地视频和远程视频出现在UI 1105中的两个并排的显示区(例如,左右显示窗口,或者上下显示窗口),或者两个对角排列的显示区中。在一些实施例中,如下进一步所述,通过设备的优先选择设置,或者通过在视频会议期间,用户能够选择的控件,用户可以规定PIP显示或者默认显示模式的方式。Additionally, some embodiments allow local video and remote video to appear in UI 1105 in two side-by-side display areas (e.g., display windows left and right, or display windows above and below), or in two diagonally arranged display areas. In some embodiments, as described further below, the user may specify the manner in which the PIP display or default display mode is displayed, either through a device preference setting, or through a user-selectable control during a video conference.
当图11的设备1100的用户邀请远程用户进行视频会议时,远程用户可接受或拒绝该邀请。图12图解说明在六个不同的阶段1210、1215、1220、1225、1230和1235,远程用户的设备1200的UI 1205,所述六个阶段表示在远程用户的设备呈现和接受视频会议邀请的操作序列。下面的UI 1205的描述把设备1200(即,接收到视频会议请求的设备)的用户称为受邀者(invite recipient),把设备1100(即,发送视频会议请求的设备)的用户称为邀请者(invite requestor)。另外,在本例中,假定受邀者的设备1200是双照相机设备,和邀请者的设备一样。不过,在其它例子中,这些设备中的一个或者两个都是单照相机设备。When a user of device 1100 of FIG. 11 invites a remote user to a video conference, the remote user can accept or decline the invitation. 12 illustrates the UI 1205 of the remote user's device 1200 in six different stages 1210, 1215, 1220, 1225, 1230, and 1235 representing the operations of presenting and accepting a video conference invitation at the remote user's device sequence. The following description of UI 1205 refers to the user of device 1200 (i.e., the device that received the video conference request) as the invitee recipient, and the user of device 1100 (i.e., the device that sent the video conference request) as the inviter The person (invite requestor). Also, in this example, it is assumed that the invitee's device 1200 is a dual camera device, as is the inviter's device. However, in other examples, one or both of these devices are single camera devices.
第一阶段1210图解说明当受邀者从邀请者,John Smith接收到视频会议邀请时的UI 1205。如图12中所示,第一阶段的UI 1205包括名字栏1235、消息栏1240和两个可选的UI项目1245和1250。名字栏1235显示正请求视频会议的人物的名字。在一些实施例中,名字栏1235显示正请求视频会议的人物的电话号码,而不是人物的名字。消息栏1240显示邀请者给受邀者的邀请。在本例中,消息栏1240中的“Video Conference Invitation(视频会议邀请)”指示邀请者正在请求与受邀者进行视频会议。可选的UI项目1245和1250(它们可被实现成可选择的按钮)提供可选择的供受邀者用于拒绝或接受邀请的“拒绝请求(Deny Requst)”和“接受请求(Accept Request)”选项1245和1250。不同的实施例可不同地显示这些选项和/或显示其它选项。The first stage 1210 illustrates the UI 1205 when the invitee receives a video conference invitation from the inviter, John Smith. As shown in FIG. 12, the UI 1205 of the first stage includes a name field 1235, a message field 1240, and two optional UI items 1245 and 1250. Name column 1235 displays the name of the person requesting the video conference. In some embodiments, the name column 1235 displays the phone number of the person requesting the video conference instead of the person's name. The message column 1240 displays the invitation from the inviter to the invitees. In this example, "Video Conference Invitation" in message column 1240 indicates that the inviter is requesting a video conference with the invitees. Optional UI items 1245 and 1250 (which may be implemented as selectable buttons) provide selectable "Deny Request (Deny Request)" and "Accept Request (Accept Request)" for invitees to reject or accept the invitation. "Options 1245 and 1250. Different embodiments may display these options differently and/or display other options.
当看到显示在消息栏1240中的“Video Conference Invitation”符号时,通过分别选择UI中的“拒绝请求”选项1245或“接受请求”选项1250,受邀者可拒绝或接受请求。第二阶段1215图解说明在图12中所示的例子中,用户选择“接受请求”选项1250。在这个例子中,通过用户的手指轻轻点击“接受请求”选项1250,实现所述选择,并通过选项1250的突出显示,指出所述选择。在一些实施例中提供其它技术来选择“接受”或“拒绝请求”选项1245和1250(例如,连续两次轻轻点击,等等)以指出所述选择(例如,突出显示UI项目的边框或文本)。Upon seeing the "Video Conference Invitation" symbol displayed in the message bar 1240, the invitee can decline or accept the request by selecting the "Deny Request" option 1245 or the "Accept Request" option 1250, respectively, in the UI. The second stage 1215 illustrates that in the example shown in FIG. 12 , the user selects the "Accept Request" option 1250 . In this example, the selection is made by lightly tapping the "Accept Request" option 1250 with the user's finger, and indicated by the highlighting of the option 1250. Other techniques are provided in some embodiments to select the "Accept" or "Deny Request" options 1245 and 1250 (e.g., two consecutive taps, etc.) to indicate the selection (e.g., highlighting the border of a UI item or text).
第三阶段1220显示在受邀者同意加入视频会议之后的UI 1205。在该阶段,UI 1205进入预览模式,预览模式在显示区1244中显示来自远程设备的正面照相机的视频的全屏呈现。这种情况下的正面照相机对着远程设备的用户(即,本例中的Nancy Jones)。因此,按所述预览模式显示她的图像。这种预览模式使受邀者可以确保她的视频被正确显示,并且在视频会议开始之前(例如,在开始实际传输视频之前),她对其外表感到满意。在一些实施例中,可在显示区1244之下显示诸如“Preview”符号之类的符号,以指出受邀者处于预览模式。The third stage 1220 shows the UI 1205 after the invitee agrees to join the video conference. At this stage, the UI 1205 enters a preview mode, which displays a full-screen rendering of the video from the remote device's front camera in the display area 1244. The front-facing camera in this case is directed at the user of the remote device (ie, Nancy Jones in this example). Therefore, her image is displayed in the preview mode. This preview mode allows the invitee to ensure that her video is displayed correctly and that she is happy with how it looks before the video conference starts (for example, before the actual video transmission begins). In some embodiments, a symbol such as a "Preview" symbol may be displayed below the display area 1244 to indicate that the invitee is in preview mode.
一些实施例允许受邀者选择背面的照相机作为开始视频会议的默认照相机,或者在开始视频会议时选择正面或背面的照相机,如下进一步所述。另外,其它实施例不同地显示受邀者的预览显示(例如,在置于显示区1244的角落的较小图像中)。除此之外的其它实施例不包括这种预览模式,而是在受邀者接受请求之后,立即开始视频会议。Some embodiments allow invitees to select the back camera as the default camera for starting a video conference, or to select either the front or back camera when starting a video conference, as described further below. Additionally, other embodiments display a preview display of invitees differently (eg, in a smaller image placed in a corner of display area 1244). Other embodiments besides this do not include this preview mode, but start the video conference immediately after the invitee accepts the request.
在第三阶段,UI 1205显示两个可选的UI项目1275和1246。其中一个重叠在显示区1244之上,而另一个在显示区1244下面。可选的UI项目1275是用户可选择以开始视频会议的“接受”按钮1275。可选的UI项目1246是如果受邀者在此阶段决定不加入视频会议,那么她可选择的“结束”按钮1246。In the third stage, UI 1205 displays two selectable UI items 1275 and 1246. One of them is overlaid on the display area 1244 and the other is below the display area 1244 . An optional UI item 1275 is an "Accept" button 1275 that the user can select to start the video conference. An optional UI item 1246 is an "End" button 1246 that the invitee can select if she decides not to join the video conference at this stage.
第四阶段1225显示在受邀者选择“接受”按钮1275之后的UI1205。在本例中,“接受”按钮1275被突出显示,以指出受邀者随时可开始视频会议。在其它实施例中可用不同的方式指出这样的选择。The fourth stage 1225 displays the UI 1205 after the invitee selects the "Accept" button 1275 . In this example, the "Accept" button 1275 is highlighted to indicate that the invitee is ready to start the video conference. Such selection may be indicated in different ways in other embodiments.
第五阶段1230图解说明在受邀者接受视频会议请求之后,处于过渡状态的UI 1205。在该过渡阶段,显示受邀者的视频(在本例中,所述视频由正面的照相机拍摄)的显示区1244的大小逐渐减小(即,逐渐缩小),如箭头1260所示。受邀者的视频缩小,使得UI 1205能够在显示区1244之后,显示包含来自邀请者的照相机的视频的显示区1265(例如,显示窗口1265)。换句话说,受邀者的视频的缩小产生PIP显示1280,PIP显示1280具有受邀者的视频的前景插入显示区1244,和邀请者的背景主显示1265。The fifth stage 1230 illustrates the UI 1205 in a transitional state after the invitee accepts the video conference request. During this transition phase, the display area 1244 showing the invitee's video (in this example, captured by the front camera) gradually decreases in size (ie, tapers out), as indicated by arrow 1260 . The invitee's video is zoomed out, enabling UI 1205 to display, behind display area 1244, display area 1265 (e.g., display window 1265) containing video from the inviter's camera. In other words, zooming out of the invitee's video produces a PIP display 1280 with a foreground inset display area 1244 of the invitee's video, and a main display 1265 of the inviter's background.
在这个例子中,背景主显示1265呈现本地设备的正面照相机正在拍摄其视频的男士(即,John Smith,本地设备1100的用户)的视频。在另一个例子中,该视频可以是本地设备的背面照相机拍摄其视频的男士(例如,由John Smith拍摄其视频的男士)的视频。不同地实施例可以不同地动画演示过渡性的第五阶段。In this example, the background main display 1265 presents a video of the man (ie, John Smith, user of the local device 1100) whose video is being captured by the local device's front-facing camera. In another example, the video may be of a man whose video was captured by the local device's back camera (eg, a man whose video was captured by John Smith). Different embodiments may animate the transitional fifth stage differently.
第五阶段1230的UI还显示包括在视频会议期间,使另一用户的音频静音的可选UI项目1285(例如,静音按钮1285),结束视频会议的可选UI项目1287(例如,结束会议按钮1287),和下面进一步说明的切换照相机的可选UI项目1289(例如,切换照相机按钮1289)的显示区1155(例如,工具条或菜单条)。因而,受邀者可以选择任意可选UI项目1285-1289(例如,通过单指轻点),以在视频会议期间执行希望的操作。不同的实施例允许受邀者按照不同的方式,例如切换移动设备上的开关,通过给出话音命令等,执行任意操作。The UI display of the fifth stage 1230 also includes an optional UI item 1285 (e.g., a mute button 1285) to mute another user's audio during the video conference, an optional UI item 1287 (e.g., an end conference button) to end the video conference 1287), and the display area 1155 (eg, tool bar or menu bar) of an optional UI item 1289 (eg, switch camera button 1289) for toggle camera, described further below. Thus, invitees can select any of the selectable UI items 1285-1289 (eg, by single-finger taps) to perform desired actions during the video conference. Different embodiments allow invitees to perform arbitrary actions in different ways, such as toggling a switch on the mobile device, by giving voice commands, and the like.
尽管图12表示显示区1155的示例布局,不过,一些实施例提供显示区1155的不同布局,比如图11的显示区1155的布局,该布局只包括用于结束视频会议的可选的结束会议UI选项1132。显示区1155的其它布局可以包括用于执行不同功能的任意多种不同的可选UI项目。此外,第五阶段1230表示显示在UI 1205的底部的显示区1155。显示区1155的不同实施例可被显示在UI 1205内的不同位置,和/或定义成不同的形状。Although FIG. 12 shows an example layout of the display area 1155, some embodiments provide a different layout of the display area 1155, such as the layout of the display area 1155 of FIG. Option 1132. Other layouts of the display area 1155 may include any of a variety of different selectable UI items for performing different functions. Additionally, fifth stage 1230 represents display area 1155 displayed at the bottom of UI 1205. Different embodiments of display area 1155 may be displayed in different locations within UI 1205, and/or defined as different shapes.
图12把显示区1155表示成静态显示区(即,显示区1155总是被显示)。不过,在一些实施例中,显示区1155是动态显示区。在一些这样的实施例中,显示区1155平常不被显示。相反,只有当接收到触发事件(例如,比如轻点显示区1280一次,话音命令之类的用户选择)时,才显示所述显示区1155。在接收到用户选择(例如,选择可选的静音UI项目985),或者规定量的时间(例如,3秒)之后,显示区1155消失,所述规定量的时间可由用户通过移动设备或视频会议应用的优先选择设置指定。在一些这样的实施例中,显示区1155在视频会议开始后被自动显示,和按照上面提及的相同方式消失。FIG. 12 shows display area 1155 as a static display area (ie, display area 1155 is always displayed). However, in some embodiments, display area 1155 is a dynamic display area. In some of these embodiments, display area 1155 is not normally displayed. Instead, the display area 1155 is displayed only when a triggering event (eg, user selection such as tapping the display area 1280 once, a voice command, etc.) is received. The display area 1155 disappears after receiving a user selection (e.g., selecting the optional mute UI item 985), or a specified amount of time (e.g., 3 seconds), which can be determined by the user via a mobile device or video conferencing. The preference settings specified for the application. In some of these embodiments, the display area 1155 is automatically displayed after the video conference starts, and disappears in the same manner as mentioned above.
第六阶段1235图解说明在结束第五过渡阶段的动画之后的UI1205。具体地说,第六阶段图解说明在视频会议期间,由UI 1205呈现的PIP显示1280。如上所述,PIP显示1280包括两个视频显示:来自本地照相机的较大的背景显示1265,和来自远程照相机的较小的前景插入显示1244。PIP显示1280只是呈现由远程设备和本地设备拍摄的视频的合成视图的一种方式。除了该合成视图之外,一些实施例的设备提供其它的合成视图。例如,代替具有较大的受邀者的背景显示,较大的背景显示可以是邀请者的视频,较小的前景插入显示可以是受邀者的视频。如下进一步所述,一些实施例允许用户控制PIP显示中的插入视图和主视图,以可切换地显示本地照相机和远程照相机。另外,一些实施例允许本地视频和远程视频出现在UI 1205中的两个并排显示区(例如,左右显示窗口,或者上下显示窗口),或者两个对角排列的显示区中。如下进一步所述,通过设备的优先选择设置,或者通过在视频会议期间,用户能够选择的控件,用户可以指定PIP显示的方式或者默认显示模式。The sixth stage 1235 illustrates the UI 1205 after ending the animation of the fifth transition stage. Specifically, the sixth stage illustrates a PIP display 1280 presented by UI 1205 during a video conference. As noted above, the PIP display 1280 includes two video displays: a larger background display 1265 from the local camera, and a smaller foreground inset display 1244 from the remote camera. PIP Display 1280 is just one way of presenting a composite view of the video captured by the remote device and the local device. In addition to this composite view, devices of some embodiments provide other composite views. For example, instead of a background display with a larger invitee, the larger background display could be the inviter's video and the smaller foreground inset display could be the invitee's video. As described further below, some embodiments allow the user to control the inset and main views in the PIP display to switchably display local and remote cameras. In addition, some embodiments allow local video and remote video to appear in two side-by-side display areas in UI 1205 (e.g., display windows left and right, or display windows above and below), or in two display areas arranged diagonally. As described further below, the user may specify the manner in which the PIP is displayed, or the default display mode, through a device preference setting, or through a control that the user can select during a video conference.
尽管图12按照六个不同的操作阶段表示呈现和接受视频会议邀请的操作序列,不过,一些实施例可以用较少的阶段实现所述操作。例如,一些这样的实施例可以省略呈现第三阶段1220和第四阶段1225,从而在用户选择“接受请求”选项1250之后,从第二阶段1215进到第五阶段1230。用较少的阶段实现所述操作(即,呈现和接受视频会议邀请)的其它实施例可以省略第一阶段1210和第二阶段1215,从而当受邀者从邀请者接收到视频会议的邀请时,向用户呈现第三阶段1220。Although FIG. 12 represents the sequence of operations for presenting and accepting a video conference invitation in terms of six distinct operational phases, some embodiments may implement the operations in fewer phases. For example, some such embodiments may omit presenting the third stage 1220 and the fourth stage 1225 , thereby proceeding from the second stage 1215 to the fifth stage 1230 after the user selects the "Accept Request" option 1250 . Other embodiments that implement the described operations (i.e., presenting and accepting a videoconference invitation) in fewer stages may omit the first stage 1210 and the second stage 1215, so that when the invitee receives the invitation to the videoconference from the inviter , presenting the third stage 1220 to the user.
图13图解说明通过把第一和第三阶段结合成一个阶段,以及把第二和第四阶段结合成一个阶段,用较少的阶段执行图12中图解说明的操作的例子。特别地,图13图解说明在五个不同的阶段1390、1392、1394、1230和1235,远程用户的设备1200的UI 1205。第一阶段1390类似于阶段1110,除了名字栏1295显示名字“John Smith”,以指出在通话另一端的人物的名字之外。即,已在远程移动设备的用户和本地设备的用户(即,本例中的John Smith)之间建立了通话。第二阶段1392和第三阶段1394类似于图12的第一阶段1210和第二阶段1215,除了第二阶段1392和第三阶段1394还显示远程移动设备的用户(即,本例中的Nancy Jones)的预览之外。第四阶段1230和第五阶段1235与图12的第五阶段1230和第六阶段1235相同。FIG. 13 illustrates an example of performing the operation illustrated in FIG. 12 with fewer stages by combining the first and third stages into one stage, and combining the second and fourth stages into one stage. In particular, FIG. 13 illustrates the UI 1205 of the remote user's device 1200 at five different stages 1390, 1392, 1394, 1230, and 1235. The first stage 1390 is similar to stage 1110, except that the name column 1295 displays the name "John Smith" to indicate the name of the person on the other end of the call. That is, a call has been established between the user of the remote mobile device and the user of the local device (ie, John Smith in this example). The second stage 1392 and the third stage 1394 are similar to the first stage 1210 and the second stage 1215 of FIG. ) outside of the preview. The fourth stage 1230 and the fifth stage 1235 are the same as the fifth stage 1230 and the sixth stage 1235 of FIG. 12 .
除了在通话期间,通过可选选项激活视频会议工具之外,一些实施例允许双照相机设备的用户直接发起视频会议,而不必首先打电话。图14图解说明发起视频会议的另一种这样的备选方法。图14图解说明在七个不同阶段1410、1415、1420、1425、1430、1435和1440的UI 1405,所述七个不同阶段显示启动视频会议的备选操作序列。In addition to activating the video conferencing tool via an optional option during a call, some embodiments allow users of dual camera devices to directly initiate a video conference without having to make a phone call first. Figure 14 illustrates another such alternative method of initiating a video conference. 14 illustrates the UI 1405 at seven different stages 1410, 1415, 1420, 1425, 1430, 1435, and 1440 showing an alternative sequence of operations for initiating a video conference.
在第一阶段1410,用户浏览移动设备上的联系人名单,寻找他希望与之进行视频会议的人物,与他为了通话而查找联系人的方式类似。在第二阶段1415,用户选择他愿意与之进行视频会议的人物1455(例如,通过在该人的名字1455上的单指轻点1460)。这种选择触发UI 1405显示联系人的信息和各种用户可选选项。在这个例子中,Jason的名字1455被突出显示,以指出这是用户意欲与之进行视频会议的人。不同的实施例可以用不同的方式指出这种选择。尽管第二阶段1415允许设备1400的用户通过联系人名单,选择用户意欲与之进行视频会议的人,不过一些实施例允许用户通过“Recents(最近)”通话历史选择该人,所述“Recents”通话历史列出设备1400的用户最近与之进行视频会议或者通话的人物的特定号码或名字。In a first stage 1410, the user browses the list of contacts on the mobile device, looking for people with whom he wishes to videoconference, similar to how he looks up contacts for calling. In a second stage 1415, the user selects a person 1455 with whom he would like to videoconference (eg, by a one-finger tap 1460 on that person's name 1455). This selection triggers UI 1405 to display the contact's information and various user selectable options. In this example, Jason's name 1455 is highlighted to indicate that this is the person the user intends to video conference with. Different embodiments may indicate this selection in different ways. While the second stage 1415 allows the user of the device 1400 to select the person with whom the user would like to videoconference via the contacts list, some embodiments allow the user to select the person via the "Recents" call history, which The call history lists specific numbers or names of persons with whom the user of device 1400 has recently videoconferenced or called.
在第三阶段1420,在选择了人物的名字1455之后,UI 1405显示所选人物的信息1462,和各种可选UI项目1468、1472和1470。在这个例子中,各个可选UI项目1472(可被实现成可选的图标或按钮)之一提供视频会议工具。视频会议选项1472允许用户邀请依据联系人1466识别的人物加入视频会议。不同的实施例不同地(例如,用不同的排列)显示信息1462和可选UI项目1468、1472和1470。In a third stage 1420, after selecting a character's name 1455, the UI 1405 displays the selected character's information 1462, and various selectable UI items 1468, 1472, and 1470. In this example, one of the various selectable UI items 1472 (which may be implemented as selectable icons or buttons) provides video conferencing tools. Video conferencing option 1472 allows the user to invite persons identified from contacts 1466 to join a video conference. Different embodiments display information 1462 and selectable UI items 1468, 1472, and 1470 differently (eg, in different arrangements).
第四阶段1425表示用户选择“视频会议”选项1472(例如,通过单指轻点)。在这个例子中,“视频会议”选项1472被突出显示,以指出视频会议工具1472已被激活。在不同的实施例中可不同地指出这种选择(例如,通过突出显示所选图标的文本或边框)。The fourth stage 1425 represents the user selecting the "Video Conference" option 1472 (eg, with a single finger tap). In this example, the "Video Conferencing" option 1472 is highlighted to indicate that the video conferencing tool 1472 is activated. Such selection may be indicated differently in different embodiments (eg, by highlighting the text or border of the selected icon).
第五、第六和第七阶段1430、1435和1440类似于图11中图解说明的第三、第四和第五阶段1120、1125和1130,可通过参考这些阶段的讨论可理解第五、第六和第七阶段1430、1435和1440。简单地说,第五阶段1430图解说明等待远程用户响应视频会议邀请的过渡性的保持阶段。第六阶段1435图解说明在远程用户接受视频会议请求之后,(显示本地用户的视频的)显示区1480的大小逐渐减小,使得UI 1405能够在显示区1480之后,显示包含来自远程用户的照相机的视频的显示区1492。在第七阶段1440,在视频会议期间,UI 1405呈现PIP显示1447。在一些实施例中,第六阶段1435和第七阶段1440中的显示区1155的布局与上面说明的图12的显示区1155的布局相似。The fifth, sixth and seventh stages 1430, 1435 and 1440 are similar to the third, fourth and fifth stages 1120, 1125 and 1130 illustrated in FIG. Sixth and seventh stages 1430, 1435 and 1440. Briefly, the fifth stage 1430 illustrates an interim hold stage waiting for the remote user to respond to the video conference invitation. The sixth stage 1435 illustrates that after the remote user accepts the video conferencing request, the size of the display area 1480 (showing the local user's video) gradually decreases, enabling the UI 1405 to display a video containing the camera from the remote user behind the display area 1480. Display area 1492 for video. In a seventh stage 1440, the UI 1405 presents a PIP display 1447 during the video conference. In some embodiments, the layout of the display area 1155 in the sixth stage 1435 and the seventh stage 1440 is similar to the layout of the display area 1155 of FIG. 12 described above.
图10、11、12、13和14表示建立视频会议的几种方式。在一些实施例中,在通话期间,通过一个通信通道(通过诸如电路交换通信网络或者分组交换通信网络之类的通信网络)传送音频数据(例如,话音),并在视频会议期间,通过另一个通信通道传送音频数据。从而,在这样的实施例中,在建立视频会议之前,通过一个通信通道传送音频数据(例如,话音),以及一旦建立了视频会议,就通过不同的通信通道(而不是在通话期间使用的通信通道)传送音频。Figures 10, 11, 12, 13 and 14 show several ways of establishing a video conference. In some embodiments, audio data (e.g., voice) is transmitted over one communication channel (over a communication network such as a circuit-switched communication network or a packet-switched communication network) during a call and over another communication channel during a video conference. The communication channel carries audio data. Thus, in such embodiments, audio data (e.g., voice) is communicated over one communication channel prior to establishing the video conference, and once the video conference is established, over a different communication channel (rather than the communication used during the call). channel) to transmit audio.
为了提供音频数据从通话到视频会议的无缝过渡(例如,切换),一些实施例在建立视频会议之前,并不终止通话。例如,一些实施例在终止通话并开始通过对等通信会话传送音频/视频数据之前,建立对等视频会议连接(例如,在完成图10中图解说明的消息序列之后)。另一方面,其它实施例在终止通话和开始呈现接收的音频/视频数据之前,建立对等视频会议连接(例如在完成图10中图解说明的消息序列之后),并开始通过该对等通信会话传送音频/视频数据。To provide a seamless transition (eg, handover) of audio data from a call to a video conference, some embodiments do not terminate the call until the video conference is established. For example, some embodiments establish a peer-to-peer video conference connection (eg, after completing the sequence of messages illustrated in FIG. 10 ) before terminating the call and beginning to transmit audio/video data over the peer-to-peer communication session. On the other hand, other embodiments establish a peer-to-peer video conferencing connection (e.g., after completing the message sequence illustrated in FIG. Transfer audio/video data.
一些实施例的对等视频会议连接允许视频会议中的移动设备直接相互通信(而不是通过例如中央服务器通信)。对等视频会议的一些实施例允许视频会议中的移动设备相互共享资源。例如,经由视频会议的控制通信通道,通过从一个移动设备向另一个移动设备发送指令,以命令所述另一个移动设备不同地处理图像(即,共享其图像处理资源),比如下面进一步详细描述的曝光调整操作、焦距调整操作和/或切换照相机操作,所述一个移动设备能够远程控制视频会议中的所述另一个移动设备的操作。The peer-to-peer video conference connection of some embodiments allows mobile devices in a video conference to communicate directly with each other (rather than through, for example, a central server). Some embodiments of peer-to-peer video conferencing allow mobile devices in a video conference to share resources with each other. For example, by sending instructions from one mobile device to another mobile device via a control communication channel of a video conference to instruct the other mobile device to process images differently (i.e., share its image processing resources), such as described in further detail below The exposure adjustment operation, the focus adjustment operation and/or the switching camera operation, the one mobile device can remotely control the operation of the other mobile device in the video conference.
2.动态比特率设置2. Dynamic bit rate setting
一般来说,视频会议中的移动设备通过不同类型的通信网络,比如不同的专用和公共无线通信网络(例如,诸如GSM、UMTS之类的蜂窝网络)的通信通道,相互传递数据(例如,音频和视频图像)。下面将参考图91和92说明这种无线通信网络的例子。In general, mobile devices in a video conference communicate data (e.g., audio) to each other over different types of communication networks, such as communication channels of different private and public wireless communication networks (e.g., cellular networks such as GSM, UMTS). and video images). An example of such a wireless communication network will be described below with reference to FIGS. 91 and 92 .
由于在特定时间接入通信网络的移动设备的数目不断变化,因此通信网络可用于进行视频会议的带宽在不同时间是不同的。即使在视频会议期间,可用带宽也会改变。另外,在视频会议期间用高比特率淹没通信网络,或者企图算出最佳视频会议比特率的大量信令是不可取的。Due to the ever-changing number of mobile devices accessing the communication network at a particular time, the bandwidth available to the communication network for video conferencing varies from time to time. Even during a video conference, available bandwidth can change. Additionally, flooding the communication network with high bit rates during video conferencing, or extensive signaling in an attempt to figure out the optimal video conferencing bit rate, is not advisable.
由于这些原因,一些实施例采用指定视频会议的初始最佳比特率的新方法。为了识别视频会议的初始最佳比特率,所述方法以特定的比特率开始视频会议,如果这些实施例没有检测到会恶化视频会议质量的网络条件,那么所述方法以特定时间间隔递增地增大比特率。For these reasons, some embodiments employ a new method of specifying an initial optimal bit rate for a video conference. In order to identify the initial optimal bit rate for the video conference, the method starts the video conference at a specific bit rate, incrementally at specific time intervals if the embodiments do not detect network conditions that would degrade the quality of the video conference. high bitrate.
图15中图解说明这种实施例的一个例子。图15概念地图解说明本发明的一些实施例的设定视频会议的比特率的处理1500。作为视频会议设置的一部分(例如,作为图10中图解说明的视频会议建立的一部分)执行处理1500,以根据各种网络条件,动态确定传送数据(例如,音频和视频图像)的比特率。在一些实施例中,处理1500由上面参考图9说明的视频会议模块925的管理层935执行。下面参考图16说明该视频会议模块的更详细形式。An example of such an embodiment is illustrated in FIG. 15 . Figure 15 conceptually illustrates the process 1500 of setting the bit rate for a video conference for some embodiments of the invention. Process 1500 is performed as part of a video conference setup (eg, as part of a video conference setup illustrated in FIG. 10 ) to dynamically determine the bit rate for transferring data (eg, audio and video images) based on various network conditions. In some embodiments, process 1500 is performed by management layer 935 of videoconferencing module 925 described above with reference to FIG. 9 . A more detailed form of the video conferencing module is described below with reference to FIG. 16 .
如图15中所示,通过把比特率设为(在1505)初始比特率,开始处理1500。在一些实施例中,初始比特率是设备的默认基准速率。不过,一些实施例允许用户指定初始比特率。在1505,处理1500还通过按初始比特率,通过一个或多个通信通道,向远程设备传送数据(例如,音频和视频图像),来启动视频会议。As shown in Figure 15, process 1500 begins by setting the bit rate to (at 1505) the initial bit rate. In some embodiments, the initial bit rate is the device's default base rate. However, some embodiments allow the user to specify an initial bit rate. At 1505, process 1500 also initiates a video conference by transmitting data (eg, audio and video images) to a remote device at an initial bit rate over one or more communication channels.
随后,处理1500识别(在1510)从视频会议中的远程设备接收的一组网络条件参数。在一些实施例中,本地设备通过在开始视频会议时建立的实时传送协议(RTP)通信会话,从远程设备接收所述一组网络条件参数。例如,一些实施例通过RTP的扩展特征,提供网络条件参数。此外,通过指出扩展报头在RTP分组报头中的存在,并定义关于附加信息的扩展报头,一些实施例的RTP扩展特征能够被用于传送任意类型的信息(例如,所述一组网络条件参数)。Subsequently, process 1500 identifies (at 1510) a set of network condition parameters received from a remote device in the video conference. In some embodiments, the local device receives the set of network condition parameters from the remote device via a real-time transport protocol (RTP) communication session established when starting the video conference. For example, some embodiments provide network condition parameters through extended features of RTP. Furthermore, the RTP extension feature of some embodiments can be used to convey any type of information (e.g., the set of network condition parameters) by noting the presence of extension headers in the RTP packet header, and defining extension headers regarding additional information .
在不同的实施例中,视频会议中的各个设备传送多组不同的网络条件/拥塞参数。在下面说明的实施例中,所述一组网络条件参数包括单向等待时间和带宽估计比特率。在其它实施例中,所述一组网络条件参数包括分组丢失数据和往返时间(RTT)延迟数据。因而,不同的实施例可在所述一组网络条件参数中包括任意多个不同的网络条件参数。In various embodiments, each device in the video conference transmits different sets of network condition/congestion parameters. In the embodiment described below, the set of network condition parameters includes one-way latency and bandwidth estimation bit rate. In other embodiments, the set of network condition parameters includes packet loss data and round trip time (RTT) delay data. Thus, different embodiments may include any number of different network condition parameters in the set of network condition parameters.
在一些实施例中,从视频会议的远程设备接收的一组网络条件参数以按在操作1505设定的初始比特率,在视频会议期间,从本地移动设备(即,执行处理1500的移动设备)传送给远程设备的数据(例如,音频和视频)为基础。例如,在一些实施例中,通过利用音频分组的时间戳,计算音频分组通过网络连接,从本地移动设备传播到远程设备所用的时间,远程设备能够确定单向等待时间。具体地说,在一些实施例中,每个音频分组被打上时间戳。在没有分组延迟的情况下,远程设备应与时间戳之差相等的设定时间间隔,接收音频分组。不过,当存在单向等待延迟时,远程设备以比时间戳之差大的时间每隔接收音频分组。In some embodiments, the set of network condition parameters received from the remote device of the video conference is transmitted from the local mobile device (i.e., the mobile device executing process 1500) during the video conference at the initial bit rate set at operation 1505. based on the data (eg, audio and video) transmitted to the remote device. For example, in some embodiments, the remote device can determine the one-way latency by calculating the time it takes for the audio packet to propagate from the local mobile device to the remote device through the network connection using the timestamp of the audio packet. Specifically, in some embodiments, each audio packet is time stamped. In the absence of packet delay, the remote device should receive audio packets at set intervals equal to the difference in time stamps. However, when there is a one-way latency delay, the remote device receives audio packets at intervals greater than the time stamp difference.
另外,在一些实施例中,远程设备通过检查接收到视频分组的时间,接收到相邻视频分组的时间,和所述相邻视频分组的大小,确定带宽估计比特率。即,接收两个连续视频分组的时间差和第二个视频分组的大小被用于估计网络连接的可用带宽。一些实施例通过检查多对连续视频分组,确定带宽估计比特率。上面的例子利用特定类型的数据(即,用于确定单向等待时间的音频数据,和用于确定带宽估计比特率的视频数据)。不过,在一些实施例中,也可以使用通过本地移动设备和远程设备之间的网络连接传送的其它类型的数据。Additionally, in some embodiments, the remote device determines the bandwidth estimate bit rate by examining the time a video packet was received, the time a neighboring video packet was received, and the size of the neighboring video packet. That is, the time difference between receiving two consecutive video packets and the size of the second video packet is used to estimate the available bandwidth of the network connection. Some embodiments determine the bandwidth estimate bit rate by examining pairs of consecutive video packets. The above examples utilize specific types of data (ie, audio data for determining one-way latency, and video data for determining bandwidth estimate bitrate). However, in some embodiments, other types of data transferred over the network connection between the local mobile device and the remote device may also be used.
在识别(在1510)所述一组网络条件之后,处理1500随后确定(在1515)单向等待时间是否已恶化到超过定义的阈值量。在一些实施例中,所述阈值量被定义为特定的等待时间量,如果当前的单向等待时间和先前的单向等待时间之间的差值超过特定等待时间量,那么确定单向等待时间恶化到超过阈值量。在其它实施例中,阈值量被定义为单向等待时间的特定变化率。因而,当一组单向等待时间(例如,当前的单向等待时间和先前的单向等待时间)的变化率超过特定的变化率,那么确定单向等待时间恶化到超过阈值量。After identifying (at 1510) the set of network conditions, process 1500 then determines (at 1515) whether the one-way latency has deteriorated beyond a defined threshold amount. In some embodiments, the threshold amount is defined as a specific amount of latency, and the one-way latency is determined if the difference between the current one-way latency and the previous one-way latency exceeds the specified amount of latency Deteriorated beyond a threshold amount. In other embodiments, the threshold amount is defined as a certain rate of change in one-way latency. Thus, when the rate of change of a set of one-way latencies (eg, current one-way latencies and previous one-way latencies) exceeds a certain rate of change, then it is determined that the one-way latencies have deteriorated beyond a threshold amount.
当确定单向等待时间恶化到超过阈值量时,处理1500结束。否则,处理1500确定(在1520)当前比特率是否达到了带宽估计比特率。在一些实施例中,带宽估计比特率指示网络连接的可用带宽量(例如,15kb/s(kbps))。当处理1500确定当前比特率超过带宽估计比特率时,处理1500结束。当处理1500确定当前比特率未超过带宽估计比特率时,处理1500进入操作1525。Process 1500 ends when it is determined that the one-way latency has deteriorated beyond a threshold amount. Otherwise, process 1500 determines (at 1520) whether the current bit rate has reached the bandwidth estimated bit rate. In some embodiments, the bandwidth estimate bit rate indicates the amount of bandwidth available for the network connection (eg, 15 kb/s (kbps)). When process 1500 determines that the current bit rate exceeds the bandwidth estimated bit rate, process 1500 ends. When process 1500 determines that the current bit rate does not exceed the bandwidth estimated bit rate, process 1500 proceeds to operation 1525 .
在1525,处理1500确定当前比特率是否达到定义的最大比特率。当处理1500确定当前比特率超过定义的最大比特率时,处理1500结束。否则,处理1500进入操作1530,把当前比特率增大规定量。不同的实施例不同地定义增大比特率的量。增大当前比特率的规定量的例子包括32kbps、64kpbs、以及任意多种其它增大比特率的量值。At 1525, process 1500 determines whether the current bit rate reaches the defined maximum bit rate. When process 1500 determines that the current bit rate exceeds the defined maximum bit rate, process 1500 ends. Otherwise, process 1500 proceeds to operation 1530, where the current bit rate is increased by the specified amount. Different embodiments define the amount to increase the bit rate differently. Examples of specified amounts to increase the current bitrate include 32kbps, 64kpbs, and any number of other amounts to increase the bitrate.
随后,处理确定(在1535)规定的时间量是否已过去。规定的时间量可以是1秒、2秒、5秒或者任何其它可能的时间量,因为不同的实施例不同地定义所述时间量。处理1500等待规定的时间量过去,以便让远程设备能够接收以新增大的比特率(在操作1530),从本地移动设备传送的数据(例如,音频和视频图像),并根据新增大的比特率确定网络条件参数。如果处理1500确定规定的时间量还未过去,那么处理1500返回操作1535,直到规定的时间量过去为止。当处理1500确定规定的时间量已过去时,处理1500返回操作1510。如上所述继续进行处理1500的从1510开始的操作,直到处理1500结束为止。Processing then determines (at 1535) whether a specified amount of time has elapsed. The prescribed amount of time may be 1 second, 2 seconds, 5 seconds, or any other possible amount of time, as different embodiments define the amount of time differently. Process 1500 waits for a specified amount of time to elapse so that the remote device can receive data (e.g., audio and video images) transmitted from the local mobile device at the newly increased bit rate (at operation 1530), and The bit rate determines the network condition parameter. If process 1500 determines that the prescribed amount of time has not elapsed, then process 1500 returns to operation 1535 until the prescribed amount of time has elapsed. When process 1500 determines that the prescribed amount of time has elapsed, process 1500 returns to operation 1510 . Operations of process 1500 beginning at 1510 continue as described above until process 1500 ends.
当处理1500结束时(即,在操作1515、1520或1525之后),完成视频会议的比特率的设置,并且确定了最佳比特率。由于视频会议的可用带宽在视频会议期间可能变化,因此,一些实施例继续根据从远程设备接收的一组网络条件参数(即,单向等待时间和带宽估计比特率),调整比特率。可通过增大比特率,在视频会议期间调整比特率。例如,如果处理1500因单向等待时间恶化到超过规定的阈值量而结束,并且在视频会议期间,单向等待时间得到改善,那么一些实施例增大比特率。类似地,如果处理1500因比特率超过带宽估计比特率而结束,并且在视频会议期间,带宽估计比特率增大,那么一些实施例增大比特率。When process 1500 ends (ie, after operations 1515, 1520, or 1525), setting the bit rate for the video conference is complete, and an optimal bit rate has been determined. Since the available bandwidth for a video conference may vary during the video conference, some embodiments continue to adjust the bit rate based on a set of network condition parameters (ie, one-way latency and bandwidth estimate bit rate) received from the remote device. You can adjust the bit rate during a video conference by increasing the bit rate. For example, if process 1500 ends with one-way latency deteriorating beyond a specified threshold amount, and during a video conference, one-way latency improves, some embodiments increase the bit rate. Similarly, if process 1500 ends because the bit rate exceeds the bandwidth estimated bit rate, and during the video conference, the bandwidth estimated bit rate increases, some embodiments increase the bit rate.
相反,可通过降低比特率,在视频会议期间调整比特率。例如,如果在视频会议期间,单向等待时间继续恶化到超过规定的阈值量,那么一些实施例降低比特率。另外,如果在视频会议期间,比特率继续超过带宽估计比特率(例如,带宽估计比特率继续降低),那么一些实施例降低比特率。Instead, adjust the bit rate during a video conference by reducing the bit rate. For example, if during a video conference, one-way latency continues to deteriorate beyond a specified threshold amount, some embodiments reduce the bit rate. Additionally, some embodiments reduce the bit rate if the bit rate continues to exceed the bandwidth estimated bit rate (eg, the bandwidth estimated bit rate continues to decrease) during the video conference.
此外,处理1500使用单向等待时间和带宽估计比特率来确定是否增大比特率。不过,普通技术人员会认识到在不同的实施例中,可以使用任意多种网络条件参数来确定是否增大比特率。例如,确定是否增大比特率可以只基于RTT延迟数据或者分组丢失数据。Additionally, process 1500 uses one-way latency and bandwidth to estimate the bit rate to determine whether to increase the bit rate. However, one of ordinary skill will recognize that in different embodiments, any number of network condition parameters may be used to determine whether to increase the bit rate. For example, determining whether to increase the bit rate may be based solely on RTT delay data or packet loss data.
C.视频会议体系结构C. Video Conferencing Architecture
如上所述,图16概念地图解说明一些实施例的双照相机移动设备的视频会议和处理模块1600的软件体系结构。如图所示,视频会议和处理模块1600包括客户端应用1665、视频会议模块1602、媒体交换模块1620、缓冲器1625、拍摄图像处理单元(CIPU)驱动器1630、编码器驱动器1635和解码器驱动器1640。在一些实施例中,缓冲器1625是保存视频的图像以便在双照相机移动设备的显示器1645上显示的帧缓冲器。As noted above, Figure 16 conceptually illustrates the software architecture of the video conferencing and processing module 1600 of a dual camera mobile device of some embodiments. As shown, the video conferencing and processing module 1600 includes a client application 1665, a video conferencing module 1602, a media exchange module 1620, a buffer 1625, a captured image processing unit (CIPU) driver 1630, an encoder driver 1635, and a decoder driver 1640 . In some embodiments, the buffer 1625 is a frame buffer that holds images of the video for display on the display 1645 of the dual camera mobile device.
在一些实施例中,客户端应用1665与图9的视频会议客户端945相同。如上所述,客户端应用1665可被集成到另一个应用中,或者实现成独立的应用。客户端应用1665可以是利用视频会议模块1602的视频会议功能的应用,比如视频会议应用、IP话音(VOIP)应用(例如,Skype)或者即时消息通信应用。In some embodiments, client application 1665 is the same as video conferencing client 945 of FIG. 9 . As noted above, client application 1665 may be integrated into another application, or implemented as a stand-alone application. Client application 1665 may be an application that utilizes the videoconferencing functionality of videoconferencing module 1602, such as a videoconferencing application, a voice over IP (VOIP) application (eg, Skype), or an instant messaging application.
一些实施例的客户端应用1665向视频会议模块1602发送指令,比如开始会议和结束会议的指令,从视频会议模块1602接收指令,把来自双照相机移动设备的用户的指令路由到视频会议模块1602,和产生显示在双照相机移动设备上并允许用户与应用交互的用户界面。The client application 1665 of some embodiments sends instructions to the video conferencing module 1602, such as instructions to start a meeting and end a meeting, receives instructions from the video conferencing module 1602, routes instructions from the user of the dual camera mobile device to the video conferencing module 1602, and generate a user interface that is displayed on a dual camera mobile device and allows the user to interact with the application.
D.视频会议管理器D. Video Conference Manager
如图16中所示,视频会议模块1602包括视频会议管理器1604、图像处理管理器1608、连网管理器1614、和缓冲器1606、1610、1612、1616和1618。在一些实施例中,视频会议模块1602与图9中图解说明的视频会议模块925相同,从而执行上面关于视频会议模块925所述的一些或全部的相同功能。As shown in FIG. 16 , videoconferencing module 1602 includes videoconferencing manager 1604 , image processing manager 1608 , networking manager 1614 , and buffers 1606 , 1610 , 1612 , 1616 , and 1618 . In some embodiments, video conferencing module 1602 is the same as video conferencing module 925 illustrated in FIG. 9 , performing some or all of the same functions described above with respect to video conferencing module 925 .
在一些实施例中,视频会议管理器1604负责当视频会议开始时,初始化视频会议模块1602的一些或所有其它模块(例如,图像处理管理器1608和连网管理器1614),在视频会议期间控制视频会议模块1602的操作,和当视频会议结束时,停止视频会议模块1602的一些或所有其它模块的操作。In some embodiments, video conference manager 1604 is responsible for initializing some or all of the other modules of video conference module 1602 (e.g., image processing manager 1608 and networking manager 1614) when the video conference begins, controlling The operation of the video conferencing module 1602, and when the video conference ends, the operation of some or all other modules of the video conferencing module 1602 ceases.
一些实施例的视频会议管理器1604还处理从视频会议中的一个或多个设备接收的图像,和由双照相机移动设备的一部或两部照相机拍摄的图像,以便显示在双照相机移动设备上。例如,一些实施例的视频会议管理器1604从缓冲器1618取回从参与视频会议的另一个设备接收的解码图像,和从缓冲器1606取回由CIPU 1650处理的图像(即,由双照相机移动设备拍摄的图像)。在一些实施例中,在把图像显示在双照相机移动设备上之前,视频会议管理器1604还比例缩放和合成图像。即,在一些实施例中,视频会议管理器1604产生PIP或其它合成视图,以显示在移动设备上。一些实施例比例缩放从缓冲器1606和1618取回的图像,而其它实施例只比例缩放从缓冲器1606和1618之一取回的图像。The video conference manager 1604 of some embodiments also processes images received from one or more devices in the video conference, and images captured by one or both cameras of the dual camera mobile device, for display on the dual camera mobile device . For example, video conference manager 1604 of some embodiments retrieves from buffer 1618 decoded images received from another device participating in the video conference, and from buffer 1606 images processed by CIPU 1650 (i.e., images moved by the dual camera images captured by the device). In some embodiments, the video conferencing manager 1604 also scales and composites the images before displaying them on the dual camera mobile device. That is, in some embodiments, video conference manager 1604 generates a PIP or other composite view for display on the mobile device. Some embodiments scale images retrieved from buffers 1606 and 1618 , while other embodiments only scale images retrieved from one of buffers 1606 and 1618 .
尽管图16把视频会议管理器1604图解表示成视频会议模块1602的一部分,不过视频会议管理器1604的一些实施例被实现成与视频会议模块1602分离的组件。因而,单个视频会议管理器1604可被用于管理和控制几个视频会议模块1602。例如,一些实施例将在本地设备上运行独立的视频会议模块以与多方会议中的每一方交互,本地设备上的这些视频会议模块均由一个视频会议管理器管理和控制。Although FIG. 16 diagrammatically shows videoconferencing manager 1604 as part of videoconferencing module 1602 , some embodiments of videoconferencing manager 1604 are implemented as a separate component from videoconferencing module 1602 . Thus, a single videoconferencing manager 1604 can be used to manage and control several videoconferencing modules 1602 . For example, some embodiments will run separate video conferencing modules on local devices to interact with each party in a multi-party conference, each of these video conferencing modules on the local device being managed and controlled by a video conferencing manager.
在图像被编码器1655编码之前,一些实施例的图像处理管理器1608处理由双照相机移动设备的照相机拍摄的图像。例如,图像处理管理器1608的一些实施例对CIPU 1650处理的图像执行曝光调整、焦距调整、透视校正、动态范围调整和图像缩放中的一个或多个操作。在一些实施例中,图像处理管理器1608控制传送给视频会议中的另一个设备的编码图像的帧速率。The image processing manager 1608 of some embodiments processes images captured by the cameras of the dual camera mobile device before the images are encoded by the encoder 1655 . For example, some embodiments of the image processing manager 1608 perform one or more of exposure adjustments, focus adjustments, perspective corrections, dynamic range adjustments, and image scaling on images processed by the CIPU 1650. In some embodiments, the image processing manager 1608 controls the frame rate of encoded images transmitted to another device in the video conference.
连网管理器1614的一些实施例管理双照相机移动设备和参加视频会议的另一个设备之间的一个或多个连接。例如,一些实施例的连网管理器1614在视频会议开始时,建立双照相机移动设备和视频会议的另一个设备之间的连接,以及在视频会议结束时,中断这些连接。Some embodiments of networking manager 1614 manage one or more connections between a dual camera mobile device and another device participating in a video conference. For example, the networking manager 1614 of some embodiments establishes connections between the dual camera mobile device and the other device of the video conference when the video conference begins, and terminates these connections when the video conference ends.
在视频会议期间,连网管理器1614把由编码器1655编码的图像传送给视频会议的另一个设备,以及把从视频会议的另一个设备接收的图像路由给解码器1660以便解码。在一些实施例中,连网管理器1614,而不是图像处理管理器1608,控制传送给视频会议的另一个设备的图像的帧速率。例如,连网管理器1614的一些这样的实施例通过丢弃(即,不传送)应该被传送给视频会议的另一个设备的编码帧中的一些编码帧,控制帧速率。During the video conference, networking manager 1614 transmits images encoded by encoder 1655 to another device in the video conference, and routes images received from another device in the video conference to decoder 1660 for decoding. In some embodiments, the networking manager 1614, rather than the image processing manager 1608, controls the frame rate of the images transmitted to the other device of the video conference. For example, some such embodiments of the networking manager 1614 control the frame rate by dropping (ie, not transmitting) some of the encoded frames that should be transmitted to another device of the video conference.
如图所示,一些实施例的媒体交换模块1620包括照相机源模块1622、视频压缩模块1624和视频解压缩模块1626。媒体交换模块1620与图3中所示的媒体交换模块310相同,同时提供更多的细节。照相机源模块1622通过CIPU驱动器1630,在视频会议模块1602和CIPU1650之间路由消息和媒体内容,视频压缩模块1624通过编码器驱动器1635,在视频会议模块1602和编码器1655之间路由消息和媒体内容,以及视频解压缩模块1626通过解码器驱动器1640,在视频会议模块1602和解码器1660之间路由消息和媒体内容。一些实施例把包括在媒体交换模块310中的TNR模块315(图16中未示出)实现成照相机源模块1622的一部分,而其它实施例把TNR模块315实现成视频压缩模块1624的一部分。As shown, the media exchange module 1620 of some embodiments includes a camera source module 1622 , a video compression module 1624 and a video decompression module 1626 . The media exchange module 1620 is the same as the media exchange module 310 shown in FIG. 3, while providing more details. Camera source module 1622 routes messages and media content between videoconferencing module 1602 and CIPU 1650 via CIPU driver 1630, and video compression module 1624 routes messages and media content between videoconferencing module 1602 and encoder 1655 via encoder driver 1635 , and video decompression module 1626 routes messages and media content between videoconferencing module 1602 and decoder 1660 via decoder driver 1640 . Some embodiments implement the TNR module 315 (not shown in FIG. 16 ) included in the media exchange module 310 as part of the camera source module 1622 , while other embodiments implement the TNR module 315 as part of the video compression module 1624 .
在一些实施例中,CIPU驱动器1630和编码器驱动器1635与图3中图解说明的CIPU驱动器305和编码器驱动器320相同。一些实施例的解码器驱动器1640充当视频解压缩模块1626和解码器1660之间的通信接口。在这样的实施例中,解码器1660解码通过连网管理器1614从视频会议的另一个设备接收的并通过视频解压缩模块1626路由的图像。在图像被解码之后,图像通过解码器驱动器1640和视频压缩模块1626被送回视频会议模块1602。In some embodiments, CIPU driver 1630 and encoder driver 1635 are the same as CIPU driver 305 and encoder driver 320 illustrated in FIG. 3 . The decoder driver 1640 of some embodiments acts as a communication interface between the video decompression module 1626 and the decoder 1660 . In such an embodiment, the decoder 1660 decodes images received through the networking manager 1614 from another device of the video conference and routed through the video decompression module 1626 . After the image is decoded, the image is sent back to the video conferencing module 1602 through the decoder driver 1640 and the video compression module 1626 .
除了在视频会议期间进行视频处理之外,一些实施例的双照相机移动设备的视频会议和处理模块1600还在视频会议期间,执行音频处理操作。图17图解说明这样的软件体系结构。如图所示,视频会议和处理模块1600包括视频会议模块1602(它包括视频会议管理器1604、图像处理管理器1608和连网管理器1614)、媒体交换模块1620和客户端应用1665。图17中省略了图16中所示的视频会议和处理模块1600的其它组件和模块,以简化说明。视频会议和处理模块1600还包括帧缓冲器1705和170、音频处理管理器1715和音频驱动器1720。在一些实施例中,音频处理管理器1715被实现成单独的软件模块,而在其它实施例中,音频处理管理器1715被实现成媒体交换模块1620的一部分。In addition to performing video processing during the video conference, the video conference and processing module 1600 of the dual camera mobile device of some embodiments also performs audio processing operations during the video conference. Figure 17 illustrates such a software architecture. As shown, video conferencing and processing module 1600 includes video conferencing module 1602 (which includes video conferencing manager 1604 , image processing manager 1608 and networking manager 1614 ), media exchange module 1620 and client application 1665 . Other components and modules of the video conferencing and processing module 1600 shown in FIG. 16 are omitted in FIG. 17 for simplicity of illustration. Video conferencing and processing module 1600 also includes frame buffers 1705 and 170 , audio processing manager 1715 and audio driver 1720 . In some embodiments, the audio processing manager 1715 is implemented as a separate software module, while in other embodiments, the audio processing manager 1715 is implemented as part of the media exchange module 1620 .
音频处理管理器1715处理由双照相机移动设备捕获的音频数据,以便传送给视频会议中的另一个设备。例如,音频处理管理器1715通过音频驱动器1720接收由麦克风1725捕获的音频数据,对音频数据编码,之后把编码的音频数据保存在缓冲器1705中,以便传送给所述另一个设备。音频处理管理器1715还处理由视频会议中的另一个设备捕获并从所述另一个设备接收的音频数据。例如,音频处理管理器1715从缓冲器1710取回音频数据,对音频数据解码,解码后的音频数据随后通过音频驱动器1720被输出给扬声器1730。Audio processing manager 1715 processes audio data captured by the dual camera mobile device for transmission to another device in the video conference. For example, the audio processing manager 1715 receives audio data captured by the microphone 1725 through the audio driver 1720, encodes the audio data, and then saves the encoded audio data in the buffer 1705 for transmission to the other device. The audio processing manager 1715 also processes audio data captured by and received from another device in the video conference. For example, the audio processing manager 1715 retrieves audio data from the buffer 1710 , decodes the audio data, and then outputs the decoded audio data to the speaker 1730 through the audio driver 1720 .
在一些实施例中,视频会议模块1602连同音频处理管理器1715及其关联的缓冲器一起是更大的会议模块的一部分。当在不交换视频内容的情况下,在几个设备之间进行多方音频会议时,视频会议和处理模块1600只利用连网管理器1614和音频处理管理器1715,以使通过网际协议(IP)层的音频交换更容易。In some embodiments, video conferencing module 1602 is part of a larger conferencing module along with audio processing manager 1715 and its associated buffers. When conducting a multiparty audio conference between several devices without exchanging video content, the video conferencing and processing module 1600 only utilizes the networking manager 1614 and the audio processing manager 1715 to enable Audio swapping of layers is easier.
现在参考图18,说明一些实施例的视频会议管理器1604的操作。图18概念地图解说明由一些实施例的视频会议管理器,比如图16中图解说明的视频会议管理器1604执行的处理1800。这可等同于由图9的管理层935执行。在一些实施例中,当双照相机移动设备的用户接受(例如,通过显示在双照相机移动设备上的用户界面)视频会议请求,或者当另一个设备的用户接受双照相机移动设备的用户发送的请求时,视频会议管理器1604执行处理1800。Referring now to FIG. 18, the operation of the video conference manager 1604 of some embodiments is illustrated. FIG. 18 conceptually illustrates a process 1800 performed by a videoconferencing manager of some embodiments, such as videoconferencing manager 1604 illustrated in FIG. 16 . This may equivalently be performed by the management layer 935 of FIG. 9 . In some embodiments, when the user of the dual-camera mobile device accepts (e.g., via a user interface displayed on the dual-camera mobile device) a video conference request, or when a user of another device accepts a request sent by the user of the dual-camera mobile device , videoconferencing manager 1604 performs process 1800.
通过接收(在1805)开始视频会议的指令,开始处理1800。在一些实施例中,指令是从客户端应用1665接收的,或者是通过显示在双照相机移动设备上的用户界面从用户接收的,并由客户端应用1665转发给视频会议管理器1604。例如,在一些实施例中,当双照相机移动设备的用户接受视频会议请求时,指令是通过用户界面接收的并由客户端应用转发。另一方面,当另一个设备的用户接受从本地设备发出的请求时,一些实施例从客户端应用接收指令,而没有用户界面交互(不过,可存在先前的发送初始请求的用户界面交互)。Process 1800 begins by receiving (at 1805) an instruction to start a video conference. In some embodiments, instructions are received from the client application 1665, or from a user via a user interface displayed on a dual camera mobile device, and forwarded by the client application 1665 to the video conference manager 1604. For example, in some embodiments, when a user of a dual camera mobile device accepts a video conference request, instructions are received through the user interface and forwarded by the client application. On the other hand, when a user of another device accepts a request from the local device, some embodiments receive instructions from the client application without user interface interaction (although there may be a previous user interface interaction that sent the initial request).
随后,处理1800初始化(在1810)与视频会议管理器1604交互的第一模块。一些实施例的与视频会议管理器1604交互的模块包括CIPU 1650、图像处理管理器1608、音频处理管理器1715和连网管理器1614。Subsequently, process 1800 initializes (at 1810 ) a first module that interacts with videoconferencing manager 1604 . Modules of some embodiments that interact with video conferencing manager 1604 include CIPU 1650, image processing manager 1608, audio processing manager 1715, and networking manager 1614.
在一些实施例中,初始化CIPU 1650包括指令CIPU 1650开始处理由双照相机移动设备的一部或两部照相机拍摄的图像。一些实施例通过指令图像处理管理器1608开始从缓冲器1610取回图像,并处理和编码取回的图像,初始化图像处理管理器1608。为了初始化音频处理管理器1715,一些实施例指令音频处理管理器1715开始编码由麦克风1725捕获的音频数据,和解码保存在缓冲器1710中的音频数据(从另一个设备接收的音频数据),以便输出给扬声器1730。一些实施例的连网管理器1614的初始化包括指令连网管理器1614建立和视频会议中的另一个设备的网络连接。In some embodiments, initializing the CIPU 1650 includes instructing the CIPU 1650 to begin processing images captured by one or both cameras of a dual camera mobile device. Some embodiments initialize the image processing manager 1608 by instructing the image processing manager 1608 to begin retrieving images from the buffer 1610, and processing and encoding the retrieved images. To initialize audio processing manager 1715, some embodiments instruct audio processing manager 1715 to begin encoding audio data captured by microphone 1725, and decoding audio data stored in buffer 1710 (audio data received from another device) so that Output to speaker 1730. Initialization of the networking manager 1614 of some embodiments includes instructing the networking manager 1614 to establish a network connection with another device in the video conference.
处理1800随后确定(在1815)是否还剩有要初始化的任何模块。当剩有要初始化的模块时,处理1800返回操作1810,以初始化另一个模块。当所有需要的模块都已被初始化时,处理1800产生(在1820)供显示在双照相机移动设备(即,本地显示器)上的合成图像。这些合成图像可包括示于下面说明的图65中的那些合成图像(即,PIP或其它合成显示),并且可包括来自本地的双照相机移动设备的照相机的图像和来自参与视频会议的另一个设备的照相机的图像的各种组合。Process 1800 then determines (at 1815) whether any modules remain to be initialized. When modules remain to be initialized, process 1800 returns to operation 1810 to initialize another module. When all required modules have been initialized, process 1800 generates (at 1820) a composite image for display on the dual camera mobile device (ie, the local display). These composite images may include those shown in Figure 65 described below (i.e., PIP or other composite displays), and may include images from the cameras of the local dual camera mobile device and from another device participating in the videoconference various combinations of camera images.
接下来,处理1800确定(在1825)是否对视频会议做出了改变。一些实施例通过用户与显示在双照相机移动设备上的用户界面的交互,接收对视频会议的改变,而其它实施例通过连网管理器1614,从另一个设备接收对视频会议的改变(即,远程控制)。在一些实施例中,也可从客户端应用1665,或者视频会议模块1602中的其它模块接收对视频会议设置的改变。视频会议设置还会由于网络条件的变化而改变。Next, process 1800 determines (at 1825) whether changes have been made to the video conference. Some embodiments receive changes to the video conference through user interaction with a user interface displayed on a dual-camera mobile device, while other embodiments receive changes to the video conference from another device through the networking manager 1614 (i.e., remote control). In some embodiments, changes to video conferencing settings may also be received from client application 1665 , or other modules in video conferencing module 1602 . Video conferencing settings can also change due to changes in network conditions.
当发生改变时,处理1800确定(在1830)对视频会议的改变是否是对网络设置的改变。在一些实施例中,所述改变或者是网络设置改变或者是图像拍摄设置改变。当对视频会议的改变是对网络设置的改变时,处理修改(在1840)网络设置,随后进入操作1845。一些实施例的网络设置改变包括改变对图像编码的比特率,或者向另一个设备传送图像的帧速率。When a change occurs, process 1800 determines (at 1830) whether the change to the video conference is a change to network settings. In some embodiments, the change is either a network setting change or an image capture setting change. When the change to the video conference is a change to network settings, the process modifies (at 1840 ) the network settings, then proceeds to operation 1845 . Network setting changes of some embodiments include changing the bit rate at which images are encoded, or the frame rate at which images are transmitted to another device.
当对视频会议的改变不是对网络设置的改变时,处理1800确定所述改变是对图像拍摄设置的改变,从而进入操作1835。处理1800随后执行(在1835)对图像拍摄设置的改变。在一些实施例中,对图像拍摄设置的改变可包括切换照相机(即,切换双照相机移动设备上的哪部照相机拍摄视频),焦距调整,曝光调整,显示或不显示来自双照相机移动设备的一部或两部照相机的图像,和放大或缩小显示在双照相机移动设备上的图像,以及其它设置改变。When the change to the video conference is not a change to network settings, process 1800 determines that the change is a change to image capture settings, thereby proceeding to operation 1835 . Process 1800 then performs (at 1835) changes to image capture settings. In some embodiments, changes to image capture settings may include switching cameras (i.e., switching which camera on a dual-camera mobile device captures video), focus adjustments, exposure adjustments, displaying or not displaying an image from a dual-camera mobile device. images from one or both cameras, and zoom in or out on images displayed on dual-camera mobile devices, among other setting changes.
在操作1845,处理1800确定是否结束视频会议。当处理1800确定不结束视频会议时,处理1800返回操作1820。当处理1800确定视频会议将结束时,处理1800结束。当处理1800从客户端应用1665接收到结束视频会议的指令时(即,归因于通过本地双照相机移动设备的用户界面接收的,或者从参与视频会议的另一个设备接收的指令),处理1800的一些实施例确定结束视频会议。At operation 1845, process 1800 determines whether to end the video conference. When process 1800 determines not to end the video conference, process 1800 returns to operation 1820 . When process 1800 determines that the video conference will end, process 1800 ends. When process 1800 receives an instruction from client application 1665 to end the video conference (i.e., due to an instruction received through the user interface of the native dual camera mobile device, or from another device participating in the video conference), process 1800 Some embodiments of determine to end the video conference.
在一些实施例中,当视频会议结束时,视频会议管理器1604执行未示于处理1800中的各种操作。一些实施例指令CIPU 1650停止产生图像,指令连网管理器1614中断与视频会议中的另一个设备的网络连接,和指令图像处理管理器1608停止处理和编码图像。In some embodiments, when the video conference ends, video conference manager 1604 performs various operations not shown in process 1800 . Some embodiments instruct the CIPU 1650 to stop generating images, instruct the networking manager 1614 to break the network connection with another device in the video conference, and instruct the image processing manager 1608 to stop processing and encoding images.
E.时间噪声降低E. Temporal Noise Reduction
一些实施例包括处理视频图像,以降低视频中的噪声的特殊的时间噪声降低模块。一些实施例的时间噪声降低模块比较视频序列中的后续图像,以识别和从视频中消除有害的噪声。Some embodiments include a special temporal noise reduction module that processes video images to reduce noise in the video. The temporal noise reduction module of some embodiments compares subsequent images in a video sequence to identify and remove unwanted noise from the video.
图19概念地图解说明一些实施例的这种时间噪声降低(TNR)模块190的软件体系结构。一些实施例把TNR模块1900实现成应用的一部分(例如,实现成如图3中所示的媒体交换模块的一部分),而其它实施例把TNR模块1900实现成由其它应用使用的独立应用。除此以外的其它实施例把TNR模块1900实现成在双照相机移动设备上运行的操作系统的一部分。在一些实施例中,TNR模块1900由一组API实现,所述一组API向其它应用提供TNR模块1900的一些或全部功能。Figure 19 conceptually illustrates the software architecture of such a temporal noise reduction (TNR) module 190 of some embodiments. Some embodiments implement the TNR module 1900 as part of an application (eg, as part of the media switching module as shown in FIG. 3 ), while other embodiments implement the TNR module 1900 as a stand-alone application used by other applications. Still other embodiments implement the TNR module 1900 as part of an operating system running on a dual camera mobile device. In some embodiments, TNR module 1900 is implemented by a set of APIs that provide some or all of the functionality of TNR module 1900 to other applications.
如图19中所示,TNR模块1900包括TNR管理器1905、差分模块1910、像素平均模块1915和运动历史模块1920。尽管图19把三个模块1910、1915和1920表示成独立的模块,不过一些实施例在单个模块中实现下面说明的这些模块的功能。一些实施例的TNR模块1900接收输入图像、基准图像和运动历史作为输入。在一些实施例中,输入图像是目前正在处理的图像,而基准图像是视频序列中输入图像与之比较的在先图像。TNR模块1900输出输出图像(一种形式的噪声降低的输入图像)和输出运动历史。As shown in FIG. 19 , TNR module 1900 includes TNR manager 1905 , difference module 1910 , pixel averaging module 1915 and motion history module 1920 . Although Figure 19 shows the three modules 1910, 1915, and 1920 as separate modules, some embodiments implement the functionality of these modules described below in a single module. The TNR module 1900 of some embodiments receives as input an input image, a reference image, and a motion history. In some embodiments, the input image is the image currently being processed and the reference image is a previous image in the video sequence to which the input image is compared. The TNR module 1900 outputs an output image (a form of noise-reduced input image) and an output motion history.
一些实施例的TNR管理器1905指引数据在TNR模块1900内的流动。如图所示,TNR管理器1905接收输入图像、基准图像和运动历史。TNR管理器1905还输出输出图像和输出运动历史。TNR管理器1905把输入图像和基准图像发送给差分模块1910,从差分模块1910接收差分图像。The TNR manager 1905 of some embodiments directs the flow of data within the TNR module 1900 . As shown, the TNR manager 1905 receives an input image, a reference image, and a motion history. The TNR manager 1905 also outputs output images and output motion histories. The TNR manager 1905 sends the input image and the reference image to the difference module 1910 and receives the difference image from the difference module 1910 .
在一些实施例中,差分模块1910处理从TNR管理器1905接收的数据,并把处理后的数据发送给TNR管理器1905。如图所示,差分模块1910从TNR管理器1905接收输入图像和基准图像。一些实施例的差分模块1910通过从另一个图像的像素值中减去一个图像的像素值,产生差分图像。差分图像被发送给TNR管理器1905。一些实施例的差分图像指示两个图像之间的差异,以便识别与前一图像相比,输入图像的已发生变化的部分,和输入图像的保持不变的部分。In some embodiments, the difference module 1910 processes data received from the TNR manager 1905 and sends the processed data to the TNR manager 1905 . As shown, the difference module 1910 receives an input image and a reference image from the TNR manager 1905 . The difference module 1910 of some embodiments generates a difference image by subtracting pixel values of one image from pixel values of another image. The differential image is sent to the TNR manager 1905 . A difference image of some embodiments indicates the difference between two images in order to identify parts of the input image that have changed compared to a previous image, and parts of the input image that have remained unchanged.
TNR管理器1905还把输入图像和基准图像发送给像素平均模块1915。如图所示,一些实施例还把运动历史发送给像素平均模块1915。不过,其它实施例可以只发送输入图像和基准图像,而不发送运动历史。在任何一个实施例中,TNR管理器1905都从像素平均模块1915接收处理后的图像。The TNR manager 1905 also sends the input image and the reference image to the pixel averaging module 1915 . As shown, some embodiments also send the motion history to the pixel averaging module 1915. However, other embodiments may only send the input image and the reference image, but not the motion history. In either embodiment, the TNR manager 1905 receives the processed image from the pixel averaging module 1915 .
一些实施例的像素平均模块1915利用运动历史来确定是否关于图像中的特定位置,从输入图像和基准图像中获得像素的平均值。在一些实施例中,运动历史包括输入图像中的每个像素的概率值。特定的概率值代表相对于基准图像中的对应像素,输入图像中的对应像素已发生变化(即,动态像素)的概率。例如,如果输入图像中的特定像素的概率值为20,那么指示相对于基准图像中的对应像素,输入图像中的特定像素已变化的概率为20%。作为另一个例子,如果输入图像中的特定像素的概率值为0,那么指示相对于基准图像中的对应像素,输入图像中的特定像素未变化(即,静态像素)。The pixel averaging module 1915 of some embodiments uses the motion history to determine whether to obtain an average of pixels from the input image and the reference image with respect to a particular location in the image. In some embodiments, the motion history includes a probability value for each pixel in the input image. A particular probability value represents the probability that a corresponding pixel in the input image has changed (ie, a dynamic pixel) relative to a corresponding pixel in the reference image. For example, if a particular pixel in the input image has a probability value of 20, that indicates a probability of 20% that the particular pixel in the input image has changed relative to the corresponding pixel in the reference image. As another example, if a particular pixel in the input image has a probability value of 0, that indicates that the particular pixel in the input image has not changed (ie, a static pixel) relative to a corresponding pixel in the reference image.
不同的实施例不同地保存输入图像的概率值。一些实施例可把输入图像的每个像素的概率值保存在一个数据阵列中。其它实施例可把概率值保存在维数与视频的图像的分辨率相同的矩阵中(例如,一组阵列中)。例如,如果视频的图像的分辨率为320×240,那么矩阵也为320×240。Different embodiments save the probability values of the input images differently. Some embodiments may store the probability values for each pixel of the input image in a data array. Other embodiments may store the probability values in a matrix (eg, in a set of arrays) of the same dimensionality as the resolution of the images of the video. For example, if the video's images have a resolution of 320x240, then the matrix will also be 320x240.
当除了输入图像和基准图像之外,像素平均模块1915还从TNR管理器1905接收到运动历史时,像素平均模块1915读取输入图像中的每个像素的概率值。如果输入图像中的特定像素的概率值低于规定的阈值(例如,5%,20%),那么像素平均模块1915根据在该特定像素,大概不会存在运动,从而在该像素的图像之间的差异可能归因于噪声的假定,求该特定像素值和基准图像中的对应像素值的平均值。When the pixel averaging module 1915 receives motion history from the TNR manager 1905 in addition to the input image and the reference image, the pixel averaging module 1915 reads a probability value for each pixel in the input image. If the probability value of a particular pixel in the input image is below a specified threshold (e.g., 5%, 20%), then the pixel averaging module 1915 determines that there is probably no motion at that particular pixel, thereby distorting between images for that pixel. Assuming that the difference may be due to noise, average that particular pixel value and the corresponding pixel value in the reference image.
如果输入图像中的特定像素的概率值不低于规定的阈值,那么像素平均模块1915不修改输入图像的特定像素(即,在该像素的像素值保持和输入图像中的一样)。这是因为运动很可能位于该特定像素,从而图像之间的差异很可能不是噪声的结果。在一些实施例中,当运动历史不被发送给像素平均模块1915时,像素平均模块1915求输入图像中的每个像素与基准图像中的对应像素的平均值。由像素平均模块1915输出并被发送给TNR管理器1905的处理后的图像包括未被平均的任何像素的输入图像像素值,和被像素平均模块1915平均的任何像素的平均像素值。If the probability value for a particular pixel in the input image is not below the specified threshold, then the pixel averaging module 1915 does not modify the particular pixel of the input image (ie, the pixel value at that pixel remains the same as in the input image). This is because the motion is likely to be at that particular pixel, so the difference between the images is likely not the result of noise. In some embodiments, when the motion history is not sent to the pixel averaging module 1915, the pixel averaging module 1915 averages each pixel in the input image with the corresponding pixel in the reference image. The processed image output by pixel averaging module 1915 and sent to TNR manager 1905 includes input image pixel values for any pixels that are not averaged, and average pixel values for any pixels that are averaged by pixel averaging module 1915 .
在一些实施例中,运动历史模块1920处理从TNR管理器1905接收的数据,并把结果数据回送给TNR管理器1905。一些实施例的运动历史模块1920从TNR管理器1905接收输入图像和运动历史。一些实施例把该数据输入Bayes估计器,以便产生可在关于下一个输入图像的像素平均中使用的新的运动历史(即,一组概率值)。其它实施例使用其它估计器来产生新的运动历史。In some embodiments, the motion history module 1920 processes the data received from the TNR manager 1905 and sends the resulting data back to the TNR manager 1905 . The motion history module 1920 of some embodiments receives input images and motion histories from the TNR manager 1905 . Some embodiments feed this data into a Bayesian estimator to generate a new motion history (ie, a set of probability values) that can be used in pixel averaging with respect to the next input image. Other embodiments use other estimators to generate new motion histories.
现在参考图20,说明TNR模块1900的操作。图20概念地图解说明一些实施例的降低视频的图像的时间噪声的处理2000。从TNR管理器1905接收(在2005)输入图像、基准图像和运动历史开始处理2000。输入图像是目前为了降噪而处理的图像。在一些实施例中,基准图像是从CIPU接收的视频的图像序列中的前一个图像。不过,在其它实施例中,基准图像是由前一个输入图像的处理产生的输出图像(即,TNR模块1900的输出)。运动历史是由前一个输入图像的处理产生的输出运动历史。Referring now to FIG. 20, the operation of the TNR module 1900 is illustrated. Figure 20 conceptually illustrates a process 2000 of some embodiments for reducing temporal noise of images of video. The process 2000 begins by receiving (at 2005 ) an input image, a reference image, and a motion history from the TNR manager 1905 . The input image is the image currently being processed for noise reduction. In some embodiments, the reference image is a previous image in a sequence of images of the video received from the CIPU. However, in other embodiments, the reference image is the output image (ie, the output of the TNR module 1900 ) resulting from processing of a previous input image. The motion history is the output motion history resulting from the processing of the previous input image.
当输入图像是视频的第一个图像时,一些实施例的TNR模块1900并不处理第一个图像(即,不对第一个图像应用TNR)。换句话说,TNR管理器1905接收第一个图像,并且只是输出第一个图像。在其它实施例中,当输入图像是视频的第一个图像时,第一个图像被用作输入图像和基准图像,TNR模块1900如下所述处理该图像。此外,当输入图像是视频的第一图像时,运动历史为空(即,空值,全为零,等等),TNR管理器1905只是输出空的运动历史,作为输出运动历史。When the input image is the first image of a video, the TNR module 1900 of some embodiments does not process the first image (ie, does not apply TNR to the first image). In other words, the TNR manager 1905 receives the first image, and outputs only the first image. In other embodiments, when the input image is the first image of a video, the first image is used as both the input image and the reference image, and the TNR module 1900 processes the image as described below. Also, when the input image is the first image of the video, and the motion history is empty (ie, null, all zeros, etc.), the TNR manager 1905 simply outputs an empty motion history as the output motion history.
TNR管理器1905随后确定(在2010)输入图像是否是静态的。为了做出该确定,一些实施例把输入图像和基准图像发送给差分模块1910,从差分模块1910接收差分图像。当两个图像之间的差异低于规定的阈值(例如,5%差异,10%差异等)时,一些实施例把输入图像分类为静态图像。The TNR manager 1905 then determines (at 2010) whether the input image is static. To make this determination, some embodiments send the input image and the reference image to a difference module 1910, from which the difference image is received. Some embodiments classify an input image as a static image when the difference between the two images is below a specified threshold (eg, 5% difference, 10% difference, etc.).
当输入图像是静态图像时,TNR管理器1905把输入图像和基准图像发送给像素平均模块1915,以计算(在2015)输入图像的像素与基准图像的像素的平均值,以便从静态图像中减少任何噪声。处理随后进入下面说明的操作2040。When the input image is a static image, the TNR manager 1905 sends the input image and the reference image to the pixel averaging module 1915 to calculate (at 2015) the average of the pixels of the input image and the pixels of the reference image in order to reduce any noise. Processing then proceeds to operation 2040 described below.
当输入图像不是静态图像时,TNR管理器把输入图像、基准图像和运动历史发送给像素平均模块1915以便处理。像素平均模块1915选择(在2020)输入图像中的一个像素。通过利用运动历史,像素平均模块1915确定(在2025)像素的运动概率是否低于特定阈值,如上所述。When the input image is not a static image, the TNR manager sends the input image, reference image and motion history to the pixel averaging module 1915 for processing. The pixel averaging module 1915 selects (at 2020) a pixel in the input image. Using the motion history, the pixel averaging module 1915 determines (at 2025) whether the pixel's probability of motion is below a certain threshold, as described above.
如果所选像素的概率低于特定阈值,那么像素平均模块1915计算(在2030)输入图像的所述像素与基准图像中的对应像素的平均值。否则,该像素不被求平均值,并且输出图像将与在所述特定像素的输入图像相同。像素平均模块1915随后确定(在2035)在输入图像中是否剩有任何未选择的像素。如果存在还未被处理的任何像素,那么处理返回操作2020以选择下一个像素。像素平均模块1915执行操作2020-2030,直到评估了所有像素为止。If the probability of the selected pixel is below a certain threshold, the pixel averaging module 1915 calculates (at 2030) the average of that pixel of the input image and the corresponding pixel in the reference image. Otherwise, that pixel is not averaged, and the output image will be the same as the input image at that particular pixel. The pixel averaging module 1915 then determines (at 2035) whether there are any unselected pixels left in the input image. If there are any pixels that have not been processed, then processing returns to operation 2020 to select the next pixel. The pixel averaging module 1915 performs operations 2020-2030 until all pixels have been evaluated.
处理随后更新(在2040)运动历史。如图19中所示和如上所述,运动历史模块1920根据输入图像更新运动历史。新的运动历史连同来自像素平均模块的处理后图像一起由TNR管理器输出。The process then updates (at 2040) the motion history. As shown in FIG. 19 and described above, the motion history module 1920 updates the motion history based on the input image. The new motion history is output by the TNR manager along with the processed image from the pixel averaging module.
F.图像处理管理器&编码器F. Image Processing Manager & Encoder
除了由CIPU和/或CIPU驱动器执行的时间噪声降低和图像处理操作之外,一些实施例在视频会议模块925的图像处理层930执行各种图像处理操作。这些图像处理操作可包括曝光调整、焦距调整、透视校正、动态范围的调整和图像缩放等等。In addition to the temporal noise reduction and image processing operations performed by the CIPU and/or CIPU drivers, some embodiments perform various image processing operations at the image processing layer 930 of the video conferencing module 925 . These image processing operations may include exposure adjustments, focus adjustments, perspective corrections, dynamic range adjustments, and image scaling, among others.
图21概念地图解说明执行这样的图像处理操作的处理2100。在一些实施例中,处理2100的一些或全部操作由图16的图像处理管理器1608和编码器驱动器1635的组合执行。在一些这样的实施例中,图像处理管理器1608执行基于像素的处理(例如,缩放、动态范围调整、透视校正等)。一些实施例在视频会议期间,对将被传送给参与视频会议的另一个设备的图像执行处理2100。FIG. 21 conceptually illustrates a process 2100 for performing such image processing operations. In some embodiments, some or all of the operations of process 2100 are performed by a combination of image processing manager 1608 and encoder driver 1635 of FIG. 16 . In some such embodiments, the image processing manager 1608 performs pixel-based processing (eg, scaling, dynamic range adjustment, perspective correction, etc.). Some embodiments perform process 2100 during a video conference on an image to be transmitted to another device participating in the video conference.
现在参考图16,说明处理2100。通过从缓冲器1606取回(在2105)图像,开始该处理。在一些实施例中,取回的图像是视频的图像(即,图像序列中的一个图像)。该视频可由在其上执行处理2100的设备的照相机拍摄。Referring now to FIG. 16, process 2100 is illustrated. The process begins by retrieving (at 2105 ) an image from buffer 1606 . In some embodiments, the retrieved image is an image of a video (ie, an image in a sequence of images). The video may be captured by a camera of the device on which process 2100 is performed.
随后,处理2100对取回的图像执行(在2110)曝光调整。一些实施例通过显示在双照相机移动设备上的用户界面,进行曝光调整。图22图解说明这种实施例的示例曝光调整操作。Subsequently, process 2100 performs (at 2110) an exposure adjustment on the retrieved image. Some embodiments make exposure adjustments through a user interface displayed on a dual camera mobile device. Figure 22 illustrates an example exposure adjustment operation for such an embodiment.
图22参考设备2200的UI 2205的三个阶段2210、2215和2220,说明曝光调整操作。第一阶段2210图解说明包括显示区2225和显示区1155的UI 2205。如图所示,显示区2225显示太阳和脸及身体都暗黑的男士的图像2230。暗黑的脸和身体显示该男士未得到恰当曝光。图像2230可以是由设备2200的照相机拍摄的视频图像。如图所示,显示区1155包括用于结束视频会议的可选UI项目2250。在一些实施例中,显示区1155的布局与上面说明的图12的显示区1155的布局相同。FIG. 22 illustrates the exposure adjustment operation with reference to three stages 2210, 2215, and 2220 of the UI 2205 of the device 2200. The first stage 2210 illustrates the UI 2205 including the display area 2225 and the display area 1155. As shown, display area 2225 displays an image 2230 of a man with the sun and a dark face and body. The darkened face and body show that the man was not properly exposed. Image 2230 may be a video image taken by a camera of device 2200 . As shown, display area 1155 includes selectable UI item 2250 for ending the video conference. In some embodiments, the layout of the display area 1155 is the same as the layout of the display area 1155 of FIG. 12 described above.
第二阶段2215图解说明设备2200的用户通过选择显示区2225的某一区域,发起曝光调整操作。在这个例子中,通过把手指2235放在显示区2225内的任何地方实现选择。在一些实施例中,用户从可能的图像设置调整的菜单中选择曝光调整。The second stage 2215 illustrates that the user of the device 2200 initiates an exposure adjustment operation by selecting an area of the display area 2225 . In this example, selection is accomplished by placing finger 2235 anywhere within display area 2225 . In some embodiments, the user selects an exposure adjustment from a menu of possible image setting adjustments.
第三阶段2220显示在完成曝光调整操作之后,所述男士的图像2240。如图所示,图像2240类似于图像2230,不过图像2240中的男士被恰当曝光。在一些实施例中,恰当曝光的图像是在不恰当曝光的图像之后拍摄的图像。在第二阶段2215中发起的曝光调整操作调整由设备2200的照相机拍摄的后续图像的曝光。The third stage 2220 shows an image 2240 of the man after the exposure adjustment operation has been completed. As shown, image 2240 is similar to image 2230, except that the man in image 2240 is properly exposed. In some embodiments, the properly exposed image is an image taken after the improperly exposed image. The exposure adjustment operation initiated in the second stage 2215 adjusts the exposure of subsequent images taken by the camera of the device 2200 .
返回图21,处理2100随后对图像执行(在2115)焦距调整。一些实施例通过显示在双照相机移动设备上的用户界面,进行焦距调整。图23概念地图解说明这种焦距调整操作的例子。Returning to FIG. 21 , process 2100 then performs (at 2115 ) a focus adjustment on the image. Some embodiments make focus adjustments through a user interface displayed on a dual camera mobile device. FIG. 23 conceptually illustrates an example of such a focus adjustment operation.
图23参考设备2300的UI 2305的三个不同阶段2310、2315和2320,图解说明焦距调整操作。第一阶段2310图解说明包括显示区2325和显示区1155的UI 2305。显示区2325呈现由设备2300的照相机拍摄的男士的模糊图像2330。这种模糊说明该男士的图像2330未对准焦点。即,当照相机拍摄该男士的图像2330时,照相机的透镜未被聚焦于该男士。另外,图像2330可以是由设备2300的照相机拍摄的视频图像。如图所示,显示区1155包括用于结束视频会议的可选UI项目2350。在一些实施例中,显示区1155的布局和上面说明的图12的显示区1155的显示区1155的布局相同。FIG. 23 illustrates the focus adjustment operation with reference to three different stages 2310, 2315, and 2320 of the UI 2305 of the device 2300. The first stage 2310 illustrates the UI 2305 including the display area 2325 and the display area 1155. Display area 2325 presents a blurred image 2330 of the man taken by the camera of device 2300 . This blurring indicates that the image 2330 of the man is out of focus. That is, when the camera captured the image 2330 of the man, the lens of the camera was not focused on the man. Also, the image 2330 may be a video image captured by a camera of the device 2300 . As shown, display area 1155 includes selectable UI item 2350 for ending the video conference. In some embodiments, the layout of the display area 1155 is the same as the layout of the display area 1155 of the display area 1155 of FIG. 12 described above.
第二阶段2315图解说明设备2300的用户通过选择显示区2325的一个区域,发起焦距调整操作。在这个例子中,通过把手指2335放在显示区2225内的任何地方实现选择。在一些实施例中,用户从可能的图像设置调整的菜单中选择焦距调整。The second stage 2315 illustrates that a user of the device 2300 initiates a focus adjustment operation by selecting an area of the display area 2325 . In this example, selection is accomplished by placing finger 2335 anywhere within display area 2225 . In some embodiments, the user selects a focus adjustment from a menu of possible image setting adjustments.
第三阶段2320显示在完成焦距调整操作之后,所述男士的图像2340。如图所示,图像2340和图像2330相同,不过图像2340中的男士显得更清晰。这说明照相机的透镜被恰当地聚集于该男士。在一些实施例中,恰当聚焦的图像是在不恰当焦距的图像之后拍摄的图像。在第二阶段2315中发起的焦距调整操作调整由设备2300的照相机拍摄的后续图像的焦距。The third stage 2320 displays the image 2340 of the man after the focus adjustment operation has been completed. As shown, image 2340 is the same as image 2330, although the man in image 2340 appears sharper. This shows that the lens of the camera is properly focused on the man. In some embodiments, the properly focused image is an image taken after the improperly focused image. The focus adjustment operation initiated in the second stage 2315 adjusts the focus of subsequent images taken by the camera of the device 2300 .
返回图21,处理2100对图像进行(在2120)图像缩放。一些实施例对图像进行图像缩放,以减少用于对图像编码的比特数(即,降低比特率)。在一些实施例中,处理2100进行图像缩放,如下面参考图26所述。Returning to FIG. 21 , process 2100 performs (at 2120 ) image scaling on the image. Some embodiments perform image scaling on an image to reduce the number of bits used to encode the image (ie, reduce the bit rate). In some embodiments, process 2100 performs image scaling, as described below with reference to FIG. 26 .
处理2100随后对图像进行(在2125)透视校正。在一些实施例中,处理2100进行透视校正,如下在图24中所述。这样的透视校正涉及利用由识别双照相机移动设备的定向和移动的一个或多个加速计和/或陀螺仪传感器获得的数据。所述数据随后被用于修改图像,以校正不正确的透视。Process 2100 then applies (at 2125) perspective correction to the image. In some embodiments, process 2100 performs perspective correction, as described below in FIG. 24 . Such perspective correction involves utilizing data obtained by one or more accelerometer and/or gyroscope sensors that identify the orientation and movement of the dual camera mobile device. The data is then used to modify the image to correct incorrect perspective.
在对图像进行透视校正之后,处理2100调整(在2130)图像的动态范围。在一些实施例中,图像的动态范围是图像中的每个像素能够具有可能值的范围。例如,具有0-255的动态范围的图像可被调整到0-128的范围,或者任何其它数值范围。调整图像的动态范围可减少将用于对图像编码的比特的数量(即,降低比特率),从而使图像平滑。After perspective correcting the image, process 2100 adjusts (at 2130) the dynamic range of the image. In some embodiments, the dynamic range of an image is the range of possible values that each pixel in the image can have. For example, an image with a dynamic range of 0-255 can be scaled to a range of 0-128, or any other range of values. Adjusting the dynamic range of an image can reduce the number of bits that will be used to encode the image (ie, reduce the bit rate), thereby smoothing the image.
调整图像的动态范围还可用于各种其它目的。一个目的是减少图像噪声(例如,图像是由有噪声的照相机传感器拍摄的)。为了减少噪声,可以调整图像的动态范围,使得暗电平被重新定义,以包括浅黑(即,粉碎的黑色(crush black))。以此方式,图像的噪声被减少。动态范围调整的另一个目的是调整一种或多种颜色或者颜色范围,以便增强图像。例如,一些实施例可假定正面照相机拍摄的图像是人脸的图像。因此,可以调整该图像的动态范围,以增强红色和粉红色,使人的面颊显得红润/更红润。动态范围调整操作还可用于其它目的。Adjusting the dynamic range of an image can also be used for various other purposes. One purpose is to reduce image noise (for example, the image is taken by a noisy camera sensor). To reduce noise, the dynamic range of the image can be adjusted such that dark levels are redefined to include light blacks (ie, crush black). In this way, the noise of the image is reduced. Another purpose of dynamic range adjustment is to adjust one or more colors or color ranges in order to enhance an image. For example, some embodiments may assume that the image captured by the front camera is an image of a human face. Therefore, the dynamic range of this image can be adjusted to enhance reds and pinks to make a person's cheeks appear rosier/more rosy. The dynamic range adjustment operation can also be used for other purposes.
最后,处理2100确定(在2135)用于对图像编码的一个或多个速率控制器参数。在一些实施例中,这样的速率控制器参数可包括量化参数和帧类型(例如,预测帧、双向帧、帧内编码帧)。该处理随后结束。Finally, process 2100 determines (at 2135) one or more rate controller parameters for encoding the image. In some embodiments, such rate controller parameters may include quantization parameters and frame types (eg, predictive frames, bi-directional frames, intra-coded frames). The processing then ends.
尽管处理2100的各个操作被图解表示成按照特定的顺序执行,不过,普通技术人员会认识到这些操作中的许多操作(曝光调整、焦距调整、透视校正等)可按照任意顺序执行,并且彼此无关。即,一些实施例的处理可在曝光调整之前进行焦距调整,或者可对图21中图解说明的处理进行类似的修改。Although the various operations of process 2100 are illustrated as being performed in a particular order, one of ordinary skill will recognize that many of these operations (exposure adjustments, focus adjustments, perspective corrections, etc.) can be performed in any order and independently of each other. . That is, the process of some embodiments may perform focus adjustments prior to exposure adjustments, or similar modifications may be made to the process illustrated in FIG. 21 .
1.透视校正1. Perspective Correction
如上所述,一些实施例在显示或传送图像之前,对图像进行透视校正。在一些情况下,双照相机移动设备上的一部或多部照相机不会完全面向其被摄物体,并且在未校正的图像中,被摄物体会显得失真。可以使用透视校正来处理图像,使得图像将忠实地反映图像中的被摄对象在人看来的样子。As noted above, some embodiments apply perspective correction to images prior to displaying or transmitting the images. In some cases, one or more cameras on a dual-camera mobile device will not be fully facing its subject, and the subject will appear distorted in the uncorrected image. Images can be processed using perspective correction so that the image will faithfully reflect how the subjects in the image would appear to a human.
图24概述地图解说明由一些实施例的图像处理管理器,比如图16中图解说明的图像处理管理器执行的透视校正处理2400。一些实施例的处理2400由图9中所示的图像处理层930(它可包含图像处理管理器1608)执行。一些实施例在处理2100的操作2125执行处理2400,以便在显示或传送最近拍摄的视频图像之前,校正所述图像的透视。FIG. 24 schematically illustrates a perspective correction process 2400 performed by an image processing manager of some embodiments, such as the image processing manager illustrated in FIG. 16 . Process 2400 of some embodiments is performed by image processing layer 930 shown in FIG. 9 (which may include image processing manager 1608). Some embodiments perform process 2400 at operation 2125 of process 2100 to correct the perspective of the most recently captured video image prior to displaying or transmitting the image.
处理2400从自加速计传感器接收(在2405)数据开始,在一些实施例中,所述加速计传感器是双照相机移动设备的一部分。一些实施例的加速计传感器测量沿着一个或多个轴的设备的速度的变化率(即,设备的加速度)。该处理还从陀螺仪传感器接收(在2410)数据,在一些实施例中,所述陀螺仪传感器也可以是双照相机移动设备的一部分。一些实施例的陀螺仪和加速计传感器可被单独地或者组合地用于识别双照相机移动设备的定向。Process 2400 begins by receiving (at 2405) data from an accelerometer sensor, which in some embodiments is part of a dual camera mobile device. The accelerometer sensor of some embodiments measures the rate of change of the velocity of the device (ie, the acceleration of the device) along one or more axes. The process also receives (at 2410) data from a gyroscopic sensor, which in some embodiments may also be part of a dual camera mobile device. The gyroscope and accelerometer sensors of some embodiments may be used alone or in combination to identify the orientation of a dual camera mobile device.
随后,处理2400根据从加速计和陀螺仪传感器获得的数据,确定(在2415)要进行的透视校正量。通常,当所述定向离轴更远时,为了产生最佳的图像,需要更多的透视校正。一些实施例根据设备的定向,计算代表透视校正量的扭曲参数(warp parameter)。The process 2400 then determines (at 2415) the amount of perspective correction to make based on the data obtained from the accelerometer and gyroscope sensors. In general, more perspective correction is required to produce an optimal image as the orientation is further off-axis. Some embodiments calculate a warp parameter representing the amount of perspective correction based on the orientation of the device.
在确定要进行的透视校正量之后,处理2400接收(在2420)由双照相机移动设备的照相机拍摄的图像。可对由该照相机拍摄的视频序列中的每个图像进行所述处理。一些实施例可对分别来自双照相机移动设备上的两部照相机的每个图像进行单独的计算。After determining the amount of perspective correction to make, process 2400 receives (at 2420) an image captured by a camera of the dual camera mobile device. The processing may be performed for each image in the video sequence captured by the camera. Some embodiments may perform separate calculations for each image from each of the two cameras on a dual camera mobile device.
所述处理随后根据确定的透视校正量,修改(在2425)图像。除了扭曲参数或者透视校正量的其它表示之外,一些实施例还使用基线图像或者其它信息(例如,用户输入的应关于其进行校正的点)。在修改图像之后,处理2400结束。The process then modifies (at 2425) the image according to the determined amount of perspective correction. Some embodiments use a baseline image or other information (eg, user-entered points about which corrections should be made) in addition to warp parameters or other indications of the amount of perspective correction. After modifying the image, process 2400 ends.
图25概念地图解说明一些实施例的示例图像处理操作。图25图解说明由不使用透视校正的第一图像处理模块2520执行的第一图像处理操作2505,和由使用透视校正的第二图像处理模块2565执行的第二图像处理操作2550。Figure 25 conceptually illustrates example image processing operations of some embodiments. 25 illustrates a first image processing operation 2505 performed by the first image processing module 2520 without perspective correction, and a second image processing operation 2550 performed by the second image processing module 2565 with perspective correction.
如图所示,对由成一定角度向下观看块体的空间透视产生的块体2515的第一图像2510进行第一图像处理操作2505。与块体2515的底部相比,块体的顶部离所述透视更近。因而,块体2515显得朝着拍摄第一图像2510的照相机倾斜。图25还表示了在由第一图像处理模块2520处理之后的处理后的第一图像2525。如图所示,处理后的第一图像2525中的块体2515出现相同的后处理,因为第一图像处理模块2520未进行任何透视校正。As shown, a first image processing operation 2505 is performed on a first image 2510 of a block 2515 resulting from spatial perspective looking down at the block at an angle. The top of the block is closer to the perspective than the bottom of the block 2515. Thus, block 2515 appears to be tilted towards the camera that took first image 2510 . FIG. 25 also shows the processed first image 2525 after being processed by the first image processing module 2520 . As shown, the block 2515 in the processed first image 2525 appears the same post-processing because the first image processing module 2520 did not perform any perspective correction.
对块体2560的第二图像2555进行第二图像处理操作2550。块体2560和第一图像2510中的块体2515相同。图25还表示在由第二图像处理模块2565的透视校正器2570进行第二图像2555的处理之后的处理后的第二图像2575。透视校正器2570可使用处理2400,以便校正第二图像2555的透视。根据来自加速计和陀螺仪的指出拍摄第二图像2555的照相机成向下的角度倾斜的数据(可能还根据其它数据),透视校正器2575能够校正第二图像,使得在处理后的第二图像2575中,块体看来好像是笔直地观看的。A second image processing operation 2550 is performed on a second image 2555 of the volume 2560 . Block 2560 is the same as block 2515 in first image 2510 . FIG. 25 also shows the processed second image 2575 after the processing of the second image 2555 by the perspective corrector 2570 of the second image processing module 2565 . Perspective corrector 2570 may use process 2400 in order to correct the perspective of second image 2555 . Based on data from the accelerometer and gyroscope indicating that the camera that took the second image 2555 was tilted at a downward angle (and possibly other data), the perspective corrector 2575 can correct the second image such that in the processed second image In 2575, blocks appear as if viewed straight.
2.缩放和比特流处理2. Scaling and bitstream processing
图像缩放和比特流处理属于在上面参考图21说明的由一些实施例的图像处理层930执行的功能之列。图像缩放(在操作2130进行)涉及在一些实施例中比例放大或比例缩小图像(即,修改用于表示该图像的像素的数目)。在一些实施例中,比特流处理涉及把指示缩放后图像的大小的数据插入比特流中。在一些实施例中,这种缩放和比特流处理由编码器驱动器(例如,驱动器1635)执行。Image scaling and bitstream processing are among the functions performed by the image processing layer 930 of some embodiments described above with reference to FIG. 21 . Image scaling (performed at operation 2130) involves, in some embodiments, scaling up or down an image (ie, modifying the number of pixels used to represent the image). In some embodiments, bitstream processing involves inserting into the bitstream data indicating the size of the scaled image. In some embodiments, such scaling and bitstream processing is performed by an encoder driver (eg, driver 1635).
图26概念地图解说明一些实施例的这种编码器驱动器2600的软件体系结构,并且显示由编码器驱动器2600对示例图像2605进行的示例缩放和比特流处理操作。在一些实施例中,图像2605是由双照相机移动设备的照相机拍摄的、用于传送给视频会议中的另一个设备的视频的图像。参见图16,在一些实施例中,视频图像已通过CIPU驱动器1630和照相机源模块1622从CIPU 1650传播到缓冲器1606,图像处理管理器1608从缓冲器1606取回所述视频图像。在图像处理管理器1608中经过图像处理(例如,焦距调整、曝光调整、透视校正)之后,图像通过缓冲器1610和视频压缩模块1624被发送给编码器驱动器1635。Figure 26 conceptually illustrates the software architecture of such an encoder driver 2600 of some embodiments, and shows example scaling and bitstream processing operations performed by the encoder driver 2600 on an example image 2605. In some embodiments, image 2605 is an image taken by a camera of a dual camera mobile device for video transmission to another device in the video conference. Referring to FIG. 16, in some embodiments video images have been propagated from CIPU 1650 to buffer 1606 via CIPU driver 1630 and camera source module 1622, from which image processing manager 1608 retrieves the video images. After image processing (eg, focus adjustment, exposure adjustment, perspective correction) in the image processing manager 1608 , the image is sent to the encoder driver 1635 through the buffer 1610 and the video compression module 1624 .
如图所示,编码器驱动器2600包括处理层2610和速率控制器2645。在下面说明的图30中图解说明了一些实施例的速率控制器的例子。处理层2610包括图像缩放器2615和比特流管理器2625。在一些实施例中,这些模块在图像被编码之前和之后对图像进行各种操作。尽管在本例中,图像缩放器被表示成编码器驱动器2600的处理层2610的一部分,不过一些实施例把图像缩放器实现成图像处理管理器1608而不是编码器驱动器2600的一部分(即,在把图像和大小数据发送给编码器驱动器之前进行图像缩放)。As shown, encoder driver 2600 includes processing layer 2610 and rate controller 2645 . An example of a rate controller of some embodiments is illustrated in Figure 30, described below. The processing layer 2610 includes an image scaler 2615 and a bitstream manager 2625 . In some embodiments, these modules perform various operations on the image before and after it is encoded. Although in this example the image scaler is shown as part of the processing layer 2610 of the encoder driver 2600, some embodiments implement the image scaler as part of the image processing manager 1608 rather than as part of the encoder driver 2600 (i.e., in image scaling before sending the image and size data to the encoder driver).
如图所示,在图像通过速率控制器2645被发送给编码器2650之前,图像缩放器2615缩放图像。图像2605通过缩放器2615被发送并被比例缩小成图像2630。除了比例缩小图像之外,一些实施例还能够比例放大图像。As shown, the image scaler 2615 scales the image before it is sent to the encoder 2650 via the rate controller 2645 . Image 2605 is sent through scaler 2615 and downscaled to image 2630 . In addition to scaling down images, some embodiments are also capable of scaling up images.
如图26中所示,一些实施例比例缩小输入的图像(例如,图像2605),随后把比例缩小的图像(例如,2630)重叠在空间冗余图像(例如,图像2635)上,所述空间冗余图像的大小(就像素来说)与输入图像相同(即,图像2605的像素的行数和列数与空间冗余图像2635的像素的行数和列数相同)。一些实施例把比例缩小的图像2630重叠在空间冗余图像的左上角(如图所示,以产生合成图像2640),而其它实施例把比例缩小的图像重叠到空间冗余图像的不同部分(例如,中央、左上角、正上方、正下方、右下方等等)。As shown in FIG. 26, some embodiments downscale an input image (e.g., image 2605), and then overlay the downscaled image (e.g., 2630) on a spatially redundant image (e.g., image 2635), which The redundant image is the same size (in terms of pixels) as the input image (ie, the image 2605 has the same number of rows and columns of pixels as the spatially redundant image 2635 has the same number of rows and columns of pixels). Some embodiments overlay the downscaled image 2630 on the upper left corner of the spatially redundant image (as shown, to produce composite image 2640), while other embodiments overlay the downscaled image on a different portion of the spatially redundant image ( For example, Center, Top Left, Directly Above, Directly Below, Bottom Right, etc.).
在一些实施例中,空间冗余图像是基本上全部为一种颜色(例如,黑色、蓝色、红色、白色等),或者具有重复图案(例如,方格、条纹等)的图像。例如,图26中所示的空间冗余图像2635具有重复的十字形图案。由于重复性的缘故,合成图像2640的空间冗余部分能够容易地被编码器压缩成少量的数据。此外,如果一系列的图像都被比例缩小,并且对序列中的每个图像来说,使用的空间冗余图像都相同,那么时间压缩可被用于进一步减少为呈现编码图像所需要的数据的重。In some embodiments, a spatially redundant image is an image that is substantially all of one color (eg, black, blue, red, white, etc.), or has a repeating pattern (eg, checkered, stripes, etc.). For example, the spatially redundant image 2635 shown in FIG. 26 has a repeating cross-shaped pattern. Due to the repetitiveness, the spatially redundant portion of the composite image 2640 can be easily compressed by the encoder into a small amount of data. Furthermore, if a sequence of images is scaled down using the same spatially redundant images for each image in the sequence, temporal compression can be used to further reduce the amount of data required to represent the encoded image. Heavy.
图像缩放器2615的一些实施例还产生指示缩放后的图像的大小(例如,比例缩放的图像2630的大小)的大小数据2620,并把产生的大小数据2620发送给比特流管理器2625。一些实施例的大小数据2620按照缩放后的图像2630的像素的行数和像素的列数(即,高度和宽度),指示缩放后的图像2630的大小。在一些实施例中,大小数据2620还指示缩放后的图像2630在合成图像2640中的位置。Some embodiments of the image scaler 2615 also generate size data 2620 indicating the size of the scaled image (eg, the size of the scaled image 2630 ), and send the generated size data 2620 to the bitstream manager 2625 . The size data 2620 of some embodiments indicates the size of the scaled image 2630 in terms of number of rows of pixels and number of columns of pixels (ie, height and width) of the scaled image 2630 . In some embodiments, size data 2620 also indicates the position of scaled image 2630 within composite image 2640 .
在图像被缩放之后,合成图像2640通过速率控制器2645被发送给编码器2650。在一些实施例中,如下进一步详细所述,速率控制器2645控制由编码器2650输出的图像的比特率(即,数据大小)。一些实施例的编码器2650压缩和编码图像。编码器2650可以使用H.264编码或者另一种编码方法。After the images are scaled, the composite image 2640 is sent to the encoder 2650 through the rate controller 2645 . In some embodiments, rate controller 2645 controls the bit rate (ie, data size) of the images output by encoder 2650, as described in further detail below. The encoder 2650 of some embodiments compresses and encodes images. Encoder 2650 may use H.264 encoding or another encoding method.
一些实施例的比特流管理器2625从编码器2650接收一个或多个编码图像的比特流,并把大小数据插入比特流中。例如,在一些实施例中,比特流管理器2625从图像缩放器2615接收大小数据2620,并把大小数据2620插入从编码器2650接收的编码合成图像2640的比特流2655中。这种情况下,比特流管理器2625的输出是包括大小数据2620的修改后的比特流2660。不同的实施例把大小数据2620插入比特流2655中的不同位置。例如,比特流2660显示大小数据2620被插入在比特流2660的开始。不过,其它实施例把大小数据2620插入在比特流2655的结尾、插入在比特流2655的中间、或者插入在比特流2655内的任何其它位置。The bitstream manager 2625 of some embodiments receives the bitstream of one or more encoded pictures from the encoder 2650 and inserts size data into the bitstream. For example, in some embodiments, bitstream manager 2625 receives size data 2620 from image scaler 2615 and inserts size data 2620 into bitstream 2655 of encoded composite image 2640 received from encoder 2650 . In this case, the output of bitstream manager 2625 is modified bitstream 2660 including size data 2620 . Different embodiments insert the size data 2620 at different locations in the bitstream 2655 . For example, bitstream 2660 shows that size data 2620 is inserted at the beginning of bitstream 2660 . However, other embodiments insert size data 2620 at the end of bitstream 2655 , in the middle of bitstream 2655 , or at any other location within bitstream 2655 .
在一些实施例中,比特流2655是包括合成图像2640的一系列的一个或多个编码图像的比特流。在一些这样的实施例中,该系列中的图像都被缩放到相同的大小,并且大小数据2620指示这些缩放后的图像的大小。在图像被传送给在视频会议另一端的设备之后,接收设备能够从比特流中提取大小信息,并利用所述大小信息正确地解码接收的图像。In some embodiments, bitstream 2655 is a bitstream comprising a sequence of one or more encoded images of composite image 2640 . In some such embodiments, the images in the series are all scaled to the same size, and size data 2620 indicates the size of these scaled images. After the image is transmitted to the device at the other end of the video conference, the receiving device is able to extract the size information from the bitstream and use it to correctly decode the received image.
图27概念地图解说明由双照相机移动设备的编码器驱动器,比如驱动器2600执行的图像缩放处理2700。处理2700从接收(在2705)由双照相机移动设备的照相机拍摄的图像(例如,图像2605)开始。当双照相机设备用两部照相机拍摄图像时,一些实施例对来自两部照相机的图像执行处理2700。Figure 27 conceptually illustrates an image scaling process 2700 performed by an encoder driver of a dual camera mobile device, such as driver 2600. Process 2700 begins by receiving (at 2705) an image (eg, image 2605) captured by a camera of a dual camera mobile device. When a dual camera device captures images with both cameras, some embodiments perform process 2700 on the images from both cameras.
随后,处理2700缩放(在2710)接收的图像。如上所述,不同的实施例不同地缩放图像2605。例如,图26中的图像2605被比例缩小并被重叠在空间冗余图像2635上,从而产生合成图像2640。Subsequently, process 2700 scales (at 2710) the received image. As noted above, different embodiments scale image 2605 differently. For example, image 2605 in FIG. 26 is scaled down and overlaid on spatially redundant image 2635 to produce composite image 2640 .
处理2700随后把缩放后的图像(例如,包括缩放后的图像2630的合成图像2640)发送给(在2715)编码器2650,以便编码。处理2700的一些实施例把缩放后的图像2630(包括在合成图像2640中)通过确定编码器编码图像的比特率的速率控制器发送给编码器2650。一些实施例的编码器2650压缩和编码图像(例如,利用离散余弦变换、量化、熵编码等等),并把带有编码图像的比特流返回给编码器驱动器2600。Process 2700 then sends (at 2715 ) the scaled image (eg, composite image 2640 including scaled image 2630 ) to encoder 2650 for encoding. Some embodiments of process 2700 send scaled image 2630 (included in composite image 2640) to encoder 2650 through a rate controller that determines the bit rate at which the encoder encodes the image. The encoder 2650 of some embodiments compresses and encodes the image (eg, using discrete cosine transform, quantization, entropy coding, etc.), and returns a bitstream with the encoded image to the encoder driver 2600.
随后,处理2700把指示缩放后的图像的大小的数据(例如,大小数据2620)发送给(在2720)比特流管理器。如图26中所示,在一些实施例中,该操作是在编码器驱动器2600中进行的(即,编码器驱动器2600中的一个模块把大小数据发送给编码器驱动器2600中的另一个模块)。Subsequently, process 2700 sends (at 2720) the bitstream manager data indicating the size of the scaled image (eg, size data 2620). As shown in Figure 26, in some embodiments, this operation is performed in the encoder driver 2600 (i.e., one module in the encoder driver 2600 sends the size data to another module in the encoder driver 2600) .
在缩放后的图像被编码器2650编码之后,处理2700从编码器接收(在2725)比特流。如图所示,一些实施例在另外已接收大小数据的比特流管理器接收所述比特流。接收的比特流包括编码的合成图像,还可包括视频序列中的一个或多个另外的图像。After the scaled image is encoded by encoder 2650, process 2700 receives (at 2725) a bitstream from the encoder. As shown, some embodiments receive the bitstream at a bitstream manager that otherwise has received size data. The received bitstream includes the encoded composite image and may include one or more additional images in the video sequence.
处理2700随后把指示缩放后的图像的大小的数据(例如,大小数据2620)插入比特流中,随后结束。如图26中所示,在一些实施例中,该操作也是由比特流管理器执行的。如上所述,不同的实施例把大小数据插入比特流的不同部分。在图解说明的例子中,大小数据2620被插入在比特流2655的开始处,如所得到的比特流2660中所示。现在,该比特流可被传送给参与视频会议的另一个设备,在所述另一个设备,该比特流能够被解码和观看。Process 2700 then inserts data (eg, size data 2620 ) into the bitstream indicating the size of the scaled image, and then ends. As shown in Figure 26, in some embodiments, this operation is also performed by the bitstream manager. As mentioned above, different embodiments insert large and small data into different parts of the bitstream. In the illustrated example, size data 2620 is inserted at the beginning of bitstream 2655, as shown in resulting bitstream 2660. This bitstream can now be transmitted to another device participating in the video conference where it can be decoded and viewed.
在一些实施例中,解码器驱动器(例如,驱动器1640)执行编码器驱动器的相反功能。即,解码器驱动器从接收的比特流提取大小数据,把比特流传送给解码器,并利用大小数据缩放解码的图像。图28概念地图解说明一些实施例的这种解码器驱动器2800的软件体系结构,并且表示由解码器驱动器2800对示例的比特流2825进行的示例比特流处理和缩放操作。In some embodiments, a decoder driver (eg, driver 1640 ) performs the reverse function of an encoder driver. That is, the decoder driver extracts the size data from the received bit stream, sends the bit stream to the decoder, and scales the decoded image using the size data. Figure 28 conceptually illustrates the software architecture of such a decoder driver 2800 of some embodiments, and represents example bitstream processing and scaling operations performed by the decoder driver 2800 on an example bitstream 2825.
在一些实施例中,比特流2825是包括由视频会议中的一个设备的照相机拍摄的视频的编码图像的比特流(例如,来自诸如驱动器2600之类的编码器驱动器的比特流),并被传送给解码器驱动器2800所运行于的设备。参见图16,在一些实施例中,该比特流已被连网管理器1614接收,并被发送给缓冲器1616,所述比特流从缓冲器1616被视频解压缩模块1626取回,并被发送给解码器驱动器1640。In some embodiments, bitstream 2825 is a bitstream comprising encoded images of video captured by a camera of one of the devices in the video conference (e.g., a bitstream from an encoder driver such as driver 2600), and is transmitted For the device on which the decoder driver 2800 runs. 16, in some embodiments, the bitstream has been received by the networking manager 1614 and sent to the buffer 1616, from which the bitstream is retrieved by the video decompression module 1626 and sent to the decoder driver 1640.
如图所示,解码器驱动器2800包括处理层2805。处理层2805包括图像缩放器2810和比特流管理器2820。在一些实施例中,这些模块2810和2820在图像被解码之前和之后,对接收的图像进行各种操作。尽管在本例中,图像缩放器2810被表示成解码器驱动器2800的处理层2805的一部分,不过,一些实施例把图像缩放器实现成图像处理管理器1608,而不是解码器驱动器的一部分(即,在从解码器驱动器2800发送图像之后,进行图像缩放)。As shown, the decoder driver 2800 includes a processing layer 2805 . The processing layer 2805 includes an image scaler 2810 and a bitstream manager 2820 . In some embodiments, these modules 2810 and 2820 perform various operations on received images before and after the images are decoded. Although in this example the image scaler 2810 is shown as part of the processing layer 2805 of the decoder driver 2800, some embodiments implement the image scaler as part of the image processing manager 1608 rather than as part of the decoder driver (i.e. , after the image is sent from the decoder driver 2800, image scaling is performed).
如图所示,一些实施例的比特流管理器2820接收一个或多个编码图像(即,视频序列中的图像)的比特流,并从该比特流中提取大小数据,之后把比特流发送给解码器2835进行解码。例如,如图28中所示,比特流管理器2820接收一个编码图像的比特流2825,从比特流2825提取大小数据2815,并把得到的比特流2830(没有大小数据2815)发送给解码器2835进行解码。如图所示,在一些实施例中,比特流管理器2820把提取的大小数据2815发送给图像缩放器2810。As shown, the bitstream manager 2820 of some embodiments receives a bitstream of one or more encoded pictures (i.e., pictures in a video sequence), extracts size data from the bitstream, and then sends the bitstream to Decoder 2835 performs decoding. For example, as shown in FIG. 28, the bitstream manager 2820 receives a bitstream 2825 of an encoded image, extracts size data 2815 from the bitstream 2825, and sends the resulting bitstream 2830 (without the size data 2815) to a decoder 2835 to decode. As shown, in some embodiments, bitstream manager 2820 sends extracted size data 2815 to image scaler 2810 .
一些实施例的大小数据2815和由编码器驱动器2600插入比特流中的大小数据2620相同。如上在图26的说明中所述,一些实施例的大小数据2815按照子图像2845的像素的行数和像素的列数,指示子图像2845的大小。大小数据2815还可指示子图像2845在更大的空间冗余图像2840内的位置。在这个例子中,比特流2825显示插入在比特流2825的开始处的大小数据2815。不过,如上所述,不同的实施例把大小数据2815插入比特流2825的不同位置。The size data 2815 for some embodiments is the same as the size data 2620 inserted into the bitstream by the encoder driver 2600. As described above in the description of FIG. 26 , the size data 2815 of some embodiments indicates the size of the sub-image 2845 in terms of the number of rows of pixels and the number of columns of pixels of the sub-image 2845 . Size data 2815 may also indicate the location of sub-image 2845 within larger spatially redundant image 2840 . In this example, bitstream 2825 shows size data 2815 inserted at the beginning of bitstream 2825 . However, as noted above, different embodiments insert the size data 2815 at different locations in the bitstream 2825 .
一些实施例的图像缩放器2810利用从比特流管理器2820接收的大小数据,从图像中提取子图像。例如,图28图解说明图像缩放器2810从解码器2835接收包括子图像2845的图像2840。如图所示,一些实施例的图像缩放器2810从图像2840提取子图像2845。提取的图像随后可被显示在双照相机移动设备上。The image scaler 2810 of some embodiments utilizes the size data received from the bitstream manager 2820 to extract sub-images from the image. For example, FIG. 28 illustrates that image scaler 2810 receives image 2840 from decoder 2835 that includes sub-image 2845 . As shown, image scaler 2810 of some embodiments extracts sub-image 2845 from image 2840 . The extracted images can then be displayed on the dual camera mobile device.
图29概念地图解说明一些实施例的由参与视频会议的设备的解码器驱动器,比如驱动器2800执行的图像提取处理2900。通过接收(在2905)编码图像的比特流(例如,比特流2825),开始该处理。所述比特流可以发送自与解码器驱动器所运行于的设备进行视频会议的另一个设备,或者可被保存在所述设备的存储器中。当所述设备从多个来源接收图像时,一些实施例对来自每个来源的图像进行处理2900。Figure 29 conceptually illustrates an image extraction process 2900 performed by a decoder driver of a device participating in a video conference, such as driver 2800, in some embodiments. The process begins by receiving (at 2905) a bitstream (eg, bitstream 2825) of an encoded image. The bitstream may be sent from another device videoconferencing with the device the decoder driver is running on, or may be saved in memory of the device. When the device receives images from multiple sources, some embodiments process 2900 the images from each source.
随后,处理2900从比特流提取(在2910)大小数据。如上所述,可在比特流中的不同位置找到所述大小数据。一些实施例知道在何处寻找所述大小数据,而其它实施例寻找特定的标记,所述标记指出所述大小数据位于接收的比特流中的何处。在一些实施例中,大小数据指出子图像的大小(例如,每一行中的像素数和每一列中的像素数)和子图像在编码图像中的位置。Subsequently, process 2900 extracts (at 2910) size data from the bitstream. As mentioned above, the size data can be found in various places in the bitstream. Some embodiments know where to look for the size data, while other embodiments look for a specific flag indicating where the size data is located in the received bitstream. In some embodiments, the size data indicates the size of the sub-image (eg, the number of pixels in each row and the number of pixels in each column) and the position of the sub-image in the encoded image.
处理2900随后把提取的大小数据发送给(在2915)图像缩放器。如图28中所示,在一些实施例中,该操作是在解码器驱动器内进行的(即,解码器驱动器中的一个模块把大小数据发送给解码器驱动器中的另一个模块)。Process 2900 then sends (at 2915) the extracted size data to the image scaler. As shown in Figure 28, in some embodiments, this operation is performed within the decoder driver (ie, one module in the decoder driver sends the size data to another module in the decoder driver).
处理2900还把比特流发送给(在2920)解码器,以便解码。在一些实施例中,解码器解压缩和解码比特流(例如,利用反向离散余弦变换、反向量化等),并把重构的图像返回给解码器驱动器。Process 2900 also sends (at 2920) the bitstream to the decoder for decoding. In some embodiments, the decoder decompresses and decodes the bitstream (eg, using inverse discrete cosine transform, inverse quantization, etc.), and returns a reconstructed image to the decoder driver.
在比特流被解码器解码之后,处理2900从解码器接收(在2925)解码图像。如图所示,一些实施例在还已从比特流管理器接收大小数据的图像缩放器接收解码图像。处理随后利用接收的大小数据,从解码图像提取(在2930)子图像。如图所示,如大小数据2815中所示那样,从解码图像2840的左上角提取子图像2845。现在,提取的子图像可被显示在显示设备(例如,双照相机移动设备的屏幕)上。After the bitstream is decoded by the decoder, process 2900 receives (at 2925) the decoded image from the decoder. As shown, some embodiments receive decoded images at the image sealer that has also received size data from the bitstream manager. Processing then extracts (at 2930) a sub-image from the decoded image using the received size data. As shown, sub-image 2845 is extracted from the upper left corner of decoded image 2840 as shown in size data 2815 . The extracted sub-images can now be displayed on a display device (eg, the screen of a dual camera mobile device).
3.速率控制器3. Rate controller
在一些实施例中,设备的两部照相机具有不同的多组特性。例如,在一些实施例中,正面照相机是为运动视频图像的拍摄而优化的较低分辨率照相机,而背面照相机是为静止图像的拍摄而优化的较高分辨率照相机。由于诸如设备的成本、功能和/或几何形状之类的各种原因,其它实施例可以使用不同特性的照相机的不同组合。In some embodiments, the two cameras of the device have different sets of characteristics. For example, in some embodiments, the front camera is a lower resolution camera optimized for capturing motion video images, while the rear camera is a higher resolution camera optimized for capturing still images. Other embodiments may use different combinations of cameras of different characteristics for various reasons such as cost, functionality, and/or geometry of the device.
具有不同特性的照相机能够引入不同的伪像。例如,与较低分辨率照相机相比,较高分辨率照相机会显示更多的噪声。与由较低分辨率照相机拍摄的图像相比,由较高分辨率照相机拍摄的图像会表现出更高水平的空间或时间复杂性。另外,具有不同光学性质的不同照相机会在拍摄的图像中引入不同的γ值。由不同的照相机用于拍摄图像的不同感光机构也会引入不同的伪像。Cameras with different characteristics can introduce different artifacts. For example, a higher resolution camera will show more noise than a lower resolution camera. Images captured by a higher resolution camera may exhibit a higher level of spatial or temporal complexity than images captured by a lower resolution camera. Additionally, different cameras with different optical properties introduce different gamma values in the captured images. Different light-sensitive mechanisms used by different cameras to capture images also introduce different artifacts.
这些照相机特有的伪像中的一些隐藏由其它来源产生的伪像。例如,在由具有高水平噪声的高分辨率照相机拍摄的图像中,作为视频编码处理的副产物的伪像变得不太可见。当编码噪声(比如量化失真)隐藏在照相机特有的伪像之后时,视频编码处理可使用更大的量化步长来获得较小的比特率。另一方面,当照相机引入较少的伪像时(比如就较低分辨率照相机来说),视频编码处理能够利用更细小的量化步长,以便避免由量化引起的不可接受的视觉失真水平。从而,与忽视这些照相机特有的特性的视频编码处理相比,优化成利用或者补偿这些照相机特有的特性的视频编码处理能够获得更好的速率-失真折衷。Some of these camera-specific artifacts hide artifacts generated by other sources. For example, artifacts that are byproducts of the video encoding process become less visible in images captured by high resolution cameras with high levels of noise. When coding noise such as quantization artifacts hides behind camera-specific artifacts, the video coding process can use larger quantization step sizes to achieve smaller bit rates. On the other hand, when the camera introduces fewer artifacts (such as in the case of lower resolution cameras), the video encoding process can utilize finer quantization step sizes in order to avoid unacceptable levels of visual distortion caused by quantization. Thus, a video encoding process optimized to exploit or compensate for these camera-specific characteristics can achieve a better rate-distortion trade-off than a video encoding process that ignores these camera-specific characteristics.
为了把这些照相机特有的特性用于实现速率-失真折衷,一些实施例实现分别相对于两部照相机的每个照相机优化的两种视频编码处理。图30图解说明具有关于两部照相机3060和3070的两个视频编码处理的系统的例子。如图30中所示,系统3000包括编码器驱动器3010、速率控制器3020和3040、和视频编码器3030。编码器3030把从视频照相机3060和3070拍摄的视频图像编码成比特流3080和3090。In order to exploit these camera-specific properties to achieve the rate-distortion tradeoff, some embodiments implement two video encoding processes optimized with respect to each of the two cameras, respectively. FIG. 30 illustrates an example of a system with two video encoding processes for two cameras 3060 and 3070 . As shown in FIG. 30 , system 3000 includes encoder driver 3010 , rate controllers 3020 and 3040 , and video encoder 3030 . Encoder 3030 encodes video images captured from video cameras 3060 and 3070 into bitstreams 3080 and 3090 .
在一些实施例中,视频编码器驱动器3010是一个或多个处理单元上运行的软件模块。它提供视频编码器303和系统的其它组件,比如视频照相机、图像处理模块、网络管理模块和存储缓冲器之间的接口。编码器驱动器3010控制拍摄的视频图像从照相机和图像处理模块到视频编码器3030的流动,它还提供编码比特流3080和3090到存储缓冲器和网络管理模块的管道。In some embodiments, video encoder driver 3010 is a software module running on one or more processing units. It provides the interface between the video encoder 303 and other components of the system, such as video cameras, image processing modules, network management modules and memory buffers. The encoder driver 3010 controls the flow of captured video images from the camera and image processing modules to the video encoder 3030, and it also provides the pipeline for the encoded bitstreams 3080 and 3090 to the storage buffers and network management modules.
如图30中所示,编码器驱动器3010包括速率控制器的两个不同实例3020和3040。这些多个实例可以是用于两部不同照相机的两个不同的速率控制器,或者是关于两部不同的照相机,按照两种不同的方式配置的一个速率控制器。具体地说,在一些实施例中,这两个速率控制器3020和3040代表两个单独的速率控制器。另一方面,在其它实施例中,这两个速率控制器3020和3040是单个速率控制器的两种不同配置。As shown in Figure 30, the encoder driver 3010 includes two different instances 3020 and 3040 of the rate controller. These multiple instances can be two different rate controllers for two different cameras, or one rate controller configured in two different ways with respect to two different cameras. Specifically, in some embodiments, the two rate controllers 3020 and 3040 represent two separate rate controllers. On the other hand, in other embodiments, the two rate controllers 3020 and 3040 are two different configurations of a single rate controller.
图30还显示包括状态缓冲器3015的编码器驱动器3010,状态缓冲器3015保存在视频会议期间使用的速率控制操作的编码状态信息。具体地说,在一些实施例中,这两个不同的速率控制器,或者相同速率控制器的两种不同配置在视频会议期间,共享保存在状态缓冲器3015中的相同的编码状态信息。状态信息的这种共享允许双视频拍摄视频会议中的统一的速率控制器操作。这种共享还允许单视频拍摄视频会议中,切换照相机操作期间的最佳视频编码(即,允许关于当前照相机所摄视频的编码的速率控制操作使用由关于前一照相机所摄视频的编码的速率控制操作保持的编码状态信息)。图30把状态缓冲器3015表示成编码器驱动器3010的一部分,不过其它实施例可在编码器驱动器3010之外实现状态缓冲器3015。Figure 30 also shows an encoder driver 3010 that includes a state buffer 3015 that holds encoding state information for rate control operations used during a video conference. Specifically, in some embodiments, the two different rate controllers, or two different configurations of the same rate controller, share the same encoding state information stored in the state buffer 3015 during the video conference. This sharing of state information allows for unified rate controller operation in dual-capture videoconferencing. This sharing also allows for optimal video encoding during switching camera operations in single-video capture videoconferencing (i.e., allows rate control operations on the encoding of the video captured by the current camera to use the rate determined by the encoding of the video captured by the previous camera). Encoded state information maintained by control operations). FIG. 30 shows state buffer 3015 as part of encoder driver 3010 , although other embodiments may implement state buffer 3015 outside of encoder driver 3010 .
在状态缓冲器3015中,不同的实施例保存代表编码状态信息的不同类型的数据(例如,不同类型的编码参数)。这种编码状态信息的一个例子是视频会议的当前目标比特率。上面在III.B节中说明了识别目标比特率的一种方式。这种编码状态信息的其它例子包括缓冲器充满度、最大缓冲器充满度、一个或多个最近编码的帧的比特率、以及其它编码状态信息。In state buffer 3015, different embodiments store different types of data representing encoding state information (eg, different types of encoding parameters). An example of such encoding state information is the current target bit rate for a video conference. One way of identifying the target bit rate is described above in Section III.B. Other examples of such encoding status information include buffer fullness, maximum buffer fullness, bit rate of one or more most recently encoded frames, and other encoding status information.
速率控制器随后能够使用目标比特率(或者保存在状态缓冲器中的另一个编码状态参数)来计算在其速率控制操作中使用的一个或多个参数。例如,如下进一步所述,一些实施例的速率控制器使用当前的目标比特率来计算宏块或帧的量化参数QP。例如,一些实施例利用当前的目标比特率来计算量化调整参数,这些实施例从量化调整参数得到宏块和/或帧的量化参数QP。因此,在视频会议中的照相机切换操作期间,在(两个速率控制器,或者一个速率控制器的两种不同配置的)两种速率控制操作之间共享目标比特率允许对当前照相机拍摄的视频编码的速率控制操作受益于对前一照相机拍摄的视频编码的在先速率控制操作的编码状态数据。The rate controller can then use the target bit rate (or another encoding state parameter held in the state buffer) to calculate one or more parameters for use in its rate control operations. For example, as described further below, the rate controller of some embodiments uses the current target bit rate to calculate the quantization parameter QP for a macroblock or frame. For example, some embodiments use the current target bit rate to calculate the quantization adjustment parameter from which the quantization parameter QP of the macroblock and/or frame is derived. Thus, during a camera switching operation in a video conference, sharing the target bit rate between two rate control operations (two rate controllers, or two different configurations of a rate controller) allows The encoding rate control operation benefits from the encoding status data of the previous rate control operation encoding the video captured by the previous camera.
图30图解说明包括两个不同的速率控制器实例3020和3040的编码器驱动器3010。不过,在其它实施例中,这些速率控制器实例3020和3040被内置到视频编码器3030中。视频编码器3030把由照相机3060和3070拍摄的视频图像编码成数字比特流3080和3090。在一些实施例中,视频编码器产生符合常规的视频编码标准(例如,H.264MPEG-4)的比特流。在一些这样的实施例中,视频编码器执行包括运动估计、离散余弦变换(“DCT”)、量化和熵编码的编码操作。视频编码器还进行与编码操作的功能相反的解码操作。FIG. 30 illustrates an encoder driver 3010 including two different rate controller instances 3020 and 3040 . However, in other embodiments, these rate controller instances 3020 and 3040 are built into the video encoder 3030 . Video encoder 3030 encodes video images captured by cameras 3060 and 3070 into digital bit streams 3080 and 3090 . In some embodiments, the video encoder generates a bitstream conforming to a conventional video encoding standard (eg, H.264 MPEG-4). In some of these embodiments, the video encoder performs encoding operations including motion estimation, discrete cosine transform ("DCT"), quantization, and entropy encoding. A video encoder also performs a decoding operation that is the functional inverse of the encoding operation.
在一些实施例中,编码器3030包括用于进行量化的量化器模块3032。量化器模块由来自速率控制器3020或3040的量化参数3022或3042控制。在一些实施例中,每个量化参数由对应的速率控制器设定,并且是与该速率控制器相关的照相机的一种或多种属性的函数,如下进一步所述。速率控制器能够通过设定更大的量化步长减少用于编码的比特数,或者通过设定更小的量化步长增大所使用的比特数。通过控制量化步长,速率控制器还确定在编码的视频图像中会引入多少失真。从而,速率控制器能够实现比特率和图像质量之间的折衷。在实现速率-失真折衷时,速率控制器监控比特率,以便不会上溢存储缓冲器、下溢存储缓冲器、或者超过传输通道容量。速率控制器还必须控制比特率,以便提供最佳的可能图像质量和避免由量化引起的不可接受的图像质量失真。在一些实施例中,每个速率控制器把按照一组状态数据值表示的监控数据保存在状态缓冲器3015中。在一些实施例中,速率控制器3020和3040使用照相机特有的属性来优化速率-失真折衷。In some embodiments, the encoder 3030 includes a quantizer module 3032 for performing quantization. The quantizer module is controlled by a quantization parameter 3022 or 3042 from a rate controller 3020 or 3040 . In some embodiments, each quantization parameter is set by a corresponding rate controller and is a function of one or more properties of the camera associated with that rate controller, as described further below. The rate controller can reduce the number of bits used for encoding by setting a larger quantization step size, or increase the number of used bits by setting a smaller quantization step size. By controlling the quantization step size, the rate controller also determines how much distortion will be introduced in the encoded video image. Thus, the rate controller enables a trade-off between bit rate and image quality. In achieving the rate-distortion tradeoff, the rate controller monitors the bit rate so as not to overflow the store buffer, underflow the store buffer, or exceed the transmission channel capacity. The rate controller must also control the bit rate in order to provide the best possible image quality and to avoid unacceptable image quality distortions caused by quantization. In some embodiments, each rate controller maintains monitoring data in status buffer 3015 represented as a set of status data values. In some embodiments, rate controllers 3020 and 3040 use camera-specific properties to optimize the rate-distortion tradeoff.
在一些实施例中,每个速率控制器通过直接对其量化参数应用修正系数,优化速率-失真折衷。在一些这样的实施例中,修正系数是预先确定的并和照相机一起被内置在设备中;设备不需要动态计算这些修正系数。在其它实施例中,系统利用由照相机拍摄的输入图像,动态确定特定于照相机的适当修正系数。在一些这样的实施例中,系统在多次编码中,分析由照相机拍摄的一系列的输入视频图像,以收集关于照相机的某些统计数据。系统随后利用这些统计数据得到关于该照相机优化的量化参数的修正系数。In some embodiments, each rate controller optimizes the rate-distortion tradeoff by directly applying a correction factor to its quantization parameter. In some of these embodiments, the correction factors are predetermined and built into the device along with the camera; the device does not need to calculate these correction factors on the fly. In other embodiments, the system dynamically determines appropriate camera-specific correction factors using input images captured by the camera. In some of these embodiments, the system analyzes a series of input video images captured by the camera over multiple encodings to gather certain statistical data about the camera. The system then uses these statistics to derive correction factors for the camera-optimized quantization parameters.
在一些实施例中,这些照相机特有的修正系数经由视频图像的视觉掩蔽属性,被应用于量化参数。图像或一部分图像的视觉掩蔽属性是在所述图像或图像部分中能够容忍多少编码伪像的指示。一些实施例计算量化所述图像或图像部分的亮度能量的视觉掩蔽属性,而其它实施例计算量化所述图像或图像部分的活化能或复杂性的视觉掩蔽属性。与如何计算视觉掩蔽属性无关,一些实施例利用视觉掩蔽属性来计算一个视频帧的修正或掩蔽量化参数。一些这样的实施例把掩蔽量化参数计算为帧级视觉掩蔽属性和基准视觉掩蔽属性的函数。在一些实施例中,用视频掩蔽属性和修正的量化参数被表示成:In some embodiments, these camera-specific correction factors are applied to the quantization parameters via the visual masking properties of the video image. The visual masking property of an image or a portion of an image is an indication of how much coding artifacts can be tolerated in said image or portion of an image. Some embodiments compute a visual masking property that quantifies the luminance energy of the image or image portion, while other embodiments compute a visual masking property that quantifies the activation energy or complexity of the image or image portion. Regardless of how the visual masking properties are calculated, some embodiments utilize the visual masking properties to calculate correction or masking quantization parameters for a video frame. Some such embodiments compute masking quantization parameters as frame-level visual masking attributes and the benchmark visual masking properties The function. In some embodiments, the video masking attribute is used to and The modified quantization parameter is expressed as:
其中MQPframe是帧的掩蔽或修正量化参数,QPnom是初始或标称量化值,以及βframe是适合于本地统计数据的常数。在一些实施例中,基准视觉掩蔽属性和标称量化参数QPnom是根据网络条件的初始或周期性评估预先确定的。where MQP frame is the masked or modified quantization parameter of the frame, QP nom is the initial or nominal quantization value, and β frame is a constant suitable for local statistics. In some embodiments, the benchmark visual masking properties and the nominal quantization parameter QP nom are predetermined based on an initial or periodic assessment of network conditions.
在一些实施例中,方程式(1)中的视觉掩蔽属性被计算为In some embodiments, the visual masking property in equation (1) is calculated as
其中avgFrameLuma是帧的平均亮度值,以及avgFrameSAD是帧的绝对差的平均值和数。常数α,β,C,D和E适合于本地统计数据。在一些实施例中,这些常数适合于照相机特有的特性。where avgFrameLuma is the frame's average luminance value, and avgFrameSAD is the frame's mean sum of absolute differences. The constants α, β, C, D and E are suitable for local statistics. In some embodiments, these constants are adapted to camera-specific characteristics.
一些实施例还计算视频图像的某一部分,比如宏块的掩蔽量化参数。在这些情况下,掩蔽量化参数被计算为宏块视觉掩蔽属性的函数:Some embodiments also calculate masked quantization parameters for some portion of the video image, such as a macroblock. In these cases, the masking quantization parameters are computed as macroblock visual masking properties The function:
其中,在一些实施例中,βMB是适合于本地统计数据的常数,MQPframe是利用方程式(1)和(2)计算的。在一些实施例中,方程式(3)中的视觉掩蔽属性被计算为Wherein, in some embodiments, β MB is a constant suitable for local statistical data, and MQP frame is calculated using equations (1) and (2). In some embodiments, the visual masking property in equation (3) is calculated as
其中avgMBLuma是宏块的平均亮度值,以及avgMBSAD是宏块的绝对差的平均值和数。常数α,β,A,B和C适合于本地统计数据。在一些实施例中,这些常数适合于照相机特有的特性。where avgMBLuma is the average luminance value of the macroblock, and avgMBSAD is the mean sum of absolute differences of the macroblock. The constants α, β, A, B and C are suitable for local statistics. In some embodiments, these constants are adapted to camera-specific characteristics.
胜于如上所述利用多个照相机特有的常数来计算修正的量化参数,一些实施例通过只利用单个照相机特有的系数来计算量化参数,实现特定于照相机的速率控制。例如,已知视觉掩蔽属性和以及量化参数QPframe,一些实施例利用单个照相机特有的系数μ来计算宏块的量化参数:Rather than using multiple camera-specific constants to compute modified quantization parameters as described above, some embodiments implement camera-specific rate control by computing quantization parameters using only a single camera-specific coefficient. For example, the known visual masking properties and As well as the quantization parameter QP frame , some embodiments utilize coefficients μ specific to a single camera to calculate the quantization parameter for a macroblock:
为了计算方程式(5),一些实施例把帧和宏块的复杂性度量分别用作视觉掩蔽属性和 To compute Equation (5), some embodiments use the frame and macroblock complexity metrics as visual masking attributes, respectively and
一些实施例在QPMB的计算中应用不同的照相机特有的系数。例如,在一些实施例中,QPMB被计算为Some embodiments apply different camera-specific coefficients in the calculation of QP MB . For example, in some embodiments, QP MB is calculated as
其中ρ是按照照相机特有的特性调整的系数。where ρ is a coefficient adjusted according to camera-specific characteristics.
如上所述,状态缓冲器3015保存在视频会议期间,两个不同的速率控制器实例3020和3040能够共享的编码状态信息,以便从它们的速率控制操作获得更好的编码结果。在一些实施例中,目标比特率RT是这种共享的状态信息的一个例子。该比特率是对一系列帧编码的理想比特率。一般来说,该比特率是用比特/秒为单位表示的,并且是根据比如上面在III.B节中描述的处理确定的。As mentioned above, state buffer 3015 holds encoding state information that two different rate controller instances 3020 and 3040 can share during a videoconference in order to obtain better encoding results from their rate control operations. In some embodiments, the target bit rate RT is an example of such shared state information. This bitrate is the ideal bitrate for encoding a series of frames. Generally, the bit rate is expressed in bits/second and is determined according to processes such as described above in Section III.B.
如上所述,一些实施例的速率控制器利用目标比特率来计算它输出给视频编码器3030的帧和/或宏块量化参数QP。例如,一些实施例利用当前的目标比特率来计算量化调整参数,这些实施例从计算的量化调整参数得到宏块和/或帧的量化参数QP。在一些实施例中,量化调整参数是利用通过把前一帧的比特率,或者前一帧的比特率的运行期均值除以当前的目标比特率而计算的分数表示的。在其它实施例中,所述调整参数不是按照这种方式精确计算的,相反一般地说(1)正比于前一帧的比特率或者前一帧的比特率的运行期均值,和(2)反比于当前的目标比特率。As described above, the rate controller of some embodiments utilizes the target bit rate to calculate the frame and/or macroblock quantization parameters QP that it outputs to the video encoder 3030 . For example, some embodiments use the current target bit rate to calculate the quantization adjustment parameter, and these embodiments derive the macroblock and/or frame quantization parameter QP from the calculated quantization adjustment parameter. In some embodiments, the quantization adjustment parameter is represented by a fraction calculated by dividing the bit rate of the previous frame, or a running average of the bit rate of the previous frame, by the current target bit rate. In other embodiments, the adjustment parameter is not precisely calculated in this way, but generally (1) is proportional to the bit rate of the previous frame or the running average of the bit rate of the previous frame, and (2) Inversely proportional to the current target bitrate.
在计算这样的量化调整参数之后,一些实施例的速率控制器利用该参数调整它所计算的宏块和/或帧量化参数。进行这种调整的一种方式是把计算的宏块和/或帧量化参数乘以量化调整参数。进行这种调整的另一种方式是根据量化调整参数计算偏移量化参数值,随后把该偏移参数应用于计算的宏块和/或帧量化参数(例如减去)。这些实施例的速率控制器随后把调整的宏块和/或帧量化参数输出给视频编码器3030。After calculating such a quantization adjustment parameter, the rate controller of some embodiments utilizes this parameter to adjust its calculated macroblock and/or frame quantization parameters. One way of doing this adjustment is to multiply the calculated macroblock and/or frame quantization parameter by the quantization adjustment parameter. Another way of doing this adjustment is to calculate an offset quantization parameter value based on the quantization adjustment parameter, and then apply (eg subtract) the offset parameter to the calculated macroblock and/or frame quantization parameter. The rate controller of these embodiments then outputs the adjusted macroblock and/or frame quantization parameters to video encoder 3030 .
在其它实施例中,速率控制器利用目标比特率计算在其速率控制操作中使用的其它参数。例如,在一些实施例中,速率控制器利用该目标比特率修正宏块或帧的视觉掩蔽强度。In other embodiments, the rate controller uses the target bit rate to calculate other parameters used in its rate control operations. For example, in some embodiments, the rate controller uses the target bit rate to modify the visual masking strength of the macroblock or frame.
G.连网管理器G. Networking Manager
图31概念地图解说明一些实施例的连网管理器3100,比如图16中图解说明的连网管理器1614的软件体系结构。如上所述,连网管理器3100管理它所运行于的双照相机移动设备和视频会议中的远程设备之间的网络连接(例如,连接建立、连接监控、连接调整、连接中断等)。在视频会议期间,一些实施例的连网管理器3100还处理传送给远程设备的数据,和处理从远程设备接收的数据。Figure 31 conceptually illustrates the software architecture of a networking manager 3100 of some embodiments, such as the networking manager 1614 illustrated in Figure 16 . As described above, the networking manager 3100 manages network connections (eg, connection establishment, connection monitoring, connection adjustments, connection interruptions, etc.) between the dual camera mobile device on which it operates and remote devices in a video conference. During the video conference, the networking manager 3100 of some embodiments also processes data transmitted to the remote device, and processes data received from the remote device.
如图31中所示,连网管理器3100包括会话协商管理器3105、发射器模块3115、通用传输缓冲器3120、通用传输缓冲器管理器3122、虚拟传送协议(VTP)管理器3125、接收器模块3130和媒体传送管理器3135。As shown in FIG. 31, the networking manager 3100 includes a session negotiation manager 3105, a transmitter module 3115, a generic transport buffer 3120, a generic transport buffer manager 3122, a virtual transfer protocol (VTP) manager 3125, a receiver Module 3130 and Media Delivery Manager 3135.
会话协商管理器3105包括协议管理器3110。协议管理器3110确保在视频会议期间,发射器模块3115使用正确的通信协议向远程设备传送数据,和强制服从使用的通信协议的规则。协议管理器3110的一些实施例支持多种通信协议,比如实时传送协议(RTP)、传送控制协议(TCP)、用户数据报协议(UDP)、和超文本传送协议(HTTP),等等。Session negotiation manager 3105 includes protocol manager 3110 . The protocol manager 3110 ensures that during the video conference, the transmitter module 3115 uses the correct communication protocol to transmit data to the remote device, and enforces compliance with the rules of the communication protocol used. Some embodiments of the protocol manager 3110 support multiple communication protocols, such as Real-time Transport Protocol (RTP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Hypertext Transfer Protocol (HTTP), among others.
会话协商管理器3105负责建立双照相机移动设备和参与视频会议的一个或多个远程设备之间的连接,以及在会议之后中断这些连接。在一些实施例中,会话协商管理器3105还负责建立双照相机移动设备和视频会议中的远程设备之间的(例如,传送和接收视频和/或音频流的)多媒体通信会话(例如,利用会话发起协议(SIP))。Session Negotiation Manager 3105 is responsible for establishing connections between the dual camera mobile device and one or more remote devices participating in the video conference, and for terminating those connections after the conference. In some embodiments, the session negotiation manager 3105 is also responsible for establishing a multimedia communication session (e.g., transmitting and receiving video and/or audio streams) between the dual camera mobile device and the remote device in the video conference (e.g., using the session Initiation Protocol (SIP)).
会话协商管理器3105还从媒体传送管理器3135接收反馈数据,根据反馈数据,通过通用传输缓冲器管理器3122,确定通用传输缓冲器3120的操作(例如,是传送还是丢弃分组/帧)。在一些实施例中,这种反馈可包括单向等待时间和带宽估计比特率。在其它实施例中,反馈包括分组丢失信息和往返延迟时间(例如,根据发送给视频会议中的远程设备的分组和来自远程设备的确认的接收确定的)。根据来自媒体传送管理器3135的信息,会话协商管理器3105能够确定是否正在发送过多的分组,和指令通用传输缓冲器管理器3122,让通用传输缓冲器3120传送较少的分组(即,如图15中所述调整比特率)。The session negotiation manager 3105 also receives feedback data from the media delivery manager 3135, and determines the operation of the general transmission buffer 3120 (eg, whether to transmit or discard packets/frames) through the general transmission buffer manager 3122 according to the feedback data. In some embodiments, such feedback may include one-way latency and bandwidth estimation bit rate. In other embodiments, the feedback includes packet loss information and round trip delay times (eg, determined from packets sent to and receipt of acknowledgments from remote devices in the video conference). Based on information from the media transfer manager 3135, the session negotiation manager 3105 can determine whether too many packets are being sent, and instruct the general transfer buffer manager 3122 to allow the general transfer buffer 3120 to transfer fewer packets (i.e., as Adjust bitrate as described in Figure 15).
发射器模块3115从视频缓冲器(例如,图16的缓冲器1612)取回编码图像(例如,以比特率的形式),并对图像分包以便通过通用传输缓冲器3120和虚拟传送协议管理器3125,传送给视频会议中的远程设备。产生编码图像并把编码图像发送给发射器模块3115的方式可以基于从媒体传送管理器3115和/或会话协商管理器3105接收的指令或数据。在一些实施例中,对图像分包涉及把接收的比特流分成一组分组,每个分组均具有特定的大小(即,由会话协商管理器3105按照特定协议指定的大小),和增加任何需要的报头(例如,地址报头、协议指定报头等等)。Transmitter module 3115 retrieves encoded images (e.g., in bitrate form) from a video buffer (e.g., buffer 1612 of FIG. 3125, sent to the remote device in the video conference. The manner in which the encoded image is generated and sent to the transmitter module 3115 may be based on instructions or data received from the media delivery manager 3115 and/or the session negotiation manager 3105 . In some embodiments, packetizing the image involves dividing the received bitstream into a set of packets, each packet having a specific size (i.e., a size specified by the session negotiation manager 3105 according to a specific protocol), and adding any required headers (for example, address header, protocol-specific header, etc.).
通用传输缓冲器管理器3122根据从会话协商管理器3105接收的数据和/或指令,控制通用传输缓冲器3120的操作。例如,可以指令通用传输缓冲器管理器3122命令通用传输缓冲器3120传送数据、停止传送数据、丢弃数据等等。如上所述,在一些实施例中,当参与会议的远程设备好像丢失分组时,根据从远程设备接收的确认,能够识别这种情况。为了减少分组丢失,可以指令通用传输缓冲器管理器3122以较低的速率向远程设备传送分组。Generic transmit buffer manager 3122 controls the operation of generic transmit buffer 3120 according to data and/or instructions received from session negotiation manager 3105 . For example, the general transfer buffer manager 3122 may be instructed to instruct the general transfer buffer 3120 to transfer data, stop transferring data, discard data, and so on. As noted above, in some embodiments, when a remote device participating in a conference appears to be missing a packet, this can be identified based on an acknowledgment received from the remote device. To reduce packet loss, the general transmit buffer manager 3122 may be instructed to transmit packets to the remote device at a lower rate.
通用传输缓冲器3120保存从发射器模块3115接收的数据,并且通过VTP管理器3125把该数据传送给远程设备。如上所述,根据从通用传输缓冲器管理器3122接收的指令,通用传输缓冲器3120可丢弃分组(例如,视频的图像)。The general transmit buffer 3120 holds the data received from the transmitter module 3115 and transmits the data to the remote device through the VTP manager 3125. As described above, according to instructions received from general transmission buffer manager 3122, general transmission buffer 3120 may drop packets (eg, images of video).
在一些实施例中,RTP被用于在视频会议期间通过UDP传递数据分组(例如,音频分组和视频分组)。其它实施例利用RTP在视频会议期间通过TCP传递数据分组。在不同的实施例中,也可使用其它传送层协议。In some embodiments, RTP is used to communicate data packets (eg, audio packets and video packets) over UDP during a video conference. Other embodiments utilize RTP to communicate data packets over TCP during a video conference. In various embodiments, other transport layer protocols may also be used.
一些实施例用一对端口号(即,源端口号和目的地端口号),定义两个移动设备之间的特定通信通道。例如,移动设备之间的一个通信通道可用一对端口号(例如,源端口50和目的地端口100)定义,以及移动设备之间的另一个不同的通信通道可用另一对不同的端口号(例如,源端口75和目的地端口150)定义。一些实施例还利用一对网际协议(IP)地址来定义通信通道。在一些实施例中,不同的通信通道被用于传送不同类型的数据分组。例如,可在单独的通信通道中传送视频数据分组、音频数据分组和控制信令数据分组。因而,视频通信通道传送视频数据分组,以及音频通信通道传送音频数据分组。Some embodiments use a pair of port numbers (ie, a source port number and a destination port number) to define a particular communication channel between two mobile devices. For example, one communication channel between mobile devices may be defined with a pair of port numbers (e.g., source port 50 and destination port 100), and a different communication channel between mobile devices may be defined with another different pair of port numbers ( For example, source port 75 and destination port 150) are defined. Some embodiments also utilize a pair of Internet Protocol (IP) addresses to define a communication channel. In some embodiments, different communication channels are used to communicate different types of data packets. For example, video data packets, audio data packets and control signaling data packets may be communicated in separate communication channels. Thus, the video communication channel transfers video data packets, and the audio communication channel transfers audio data packets.
在一些实施例中,控制通信通道用于视频会议期间本地移动设备和远程设备之间的消息接发。这种消息接发的例子包括发送和接收请求、通知、以及对所述请求和通知的确认。消息接发的另一个例子包括从一个设备向另一个设备发送远程控制指令消息。例如,通过经本地设备的控制通信通道,从本地设备向远程设备发送远程控制远程设备的操作的指令,能够执行下面说明的远程控制操作(例如,指令设备只发送来自特定照相机的图像,或者只利用特定照相机拍摄图像)。不同的实施例利用不同的协议,比如实时传送控制协议(RTCP)、RTP扩展、SIP等实现所述控制通信。例如,一些实施例利用RTP扩展在视频会议中在两个移动设备之间传递一组控制消息,以及使用SIP分组在视频会议期间在所述两个移动设备之间传递另一组控制消息。In some embodiments, a control communication channel is used for messaging between a local mobile device and a remote device during a video conference. Examples of such messaging include sending and receiving requests, notifications, and acknowledgments of the requests and notifications. Another example of messaging includes sending remote control instruction messages from one device to another. For example, the remote control operations described below can be performed by sending instructions from the local device to the remote device to remotely control the operation of the remote device via the local device's control communication channel (for example, instructing the device to send only images from a specific camera, or only Capture images with a specific camera). Different embodiments implement the control communication using different protocols, such as Real-time Transport Control Protocol (RTCP), RTP extensions, SIP, and the like. For example, some embodiments utilize RTP extensions to communicate one set of control messages between two mobile devices in a video conference, and use SIP packets to communicate another set of control messages between the two mobile devices during the video conference.
一些实施例的VTP管理器3125允许通过单一通信通道(例如,利用相同的一对端口号),传送指定通过不同的通信通道(例如,利用不同的多对端口号)传送的不同类型的数据分组。用于此目的一种技术涉及识别数据分组类型,通过提取数据分组的一对指定的端口号识别数据分组被规定要通过其传送的通信通道,和通过把数据分组的一对端口号修改成所述单一通信通道的一对端口号来规定数据分组将通过所述单一通信通道传送(即,所有的数据分组通过相同的一对端口号被传送)。The VTP manager 3125 of some embodiments allows transmission of different types of data packets designated for transmission over different communication channels (e.g., using different pairs of port numbers) over a single communication channel (e.g., using the same pair of port numbers) . One technique for this purpose involves identifying the type of data packet, identifying the communication channel through which the data packet is intended to be transmitted by extracting a pair of designated port numbers of the data packet, and modifying the pair of port numbers of the data packet to the A pair of port numbers of the single communication channel is used to specify that data packets are to be transmitted through the single communication channel (ie, all data packets are transmitted through the same pair of port numbers).
为了明了每种数据分组的一对初始端口号,一些实施例保存相对于数据分组类型的一对初始端口号的映射。一些这样的实施例随后利用协议的分组类型字段来区分被多路复用到一个通信通道中的不同分组。例如,一些具有VTP管理器的实施例把音频、视频和控制分组多路复用到一个RTP流中,利用RTP分组类型字段来区分在一个RTP通道中被传送给视频会议中的另一个设备的音频、视频和控制分组。在一些这样的实施例中,VTP管理器还把SIP分组中的控制消息路由给所述另一个设备。To keep track of the pair of initial port numbers for each type of data packet, some embodiments maintain a mapping of the pair of initial port numbers relative to the data packet type. Some such embodiments then utilize the protocol's packet type field to distinguish between different packets that are multiplexed into one communication channel. For example, some embodiments with a VTP manager multiplex audio, video, and control packets into one RTP stream, using the RTP packet type field to distinguish the Audio, video and control grouping. In some of these embodiments, the VTP manager also routes control messages in SIP packets to the other device.
一些实施例识别检查数据分组签名(即,分组报头格式),以区分利用不同的协议传递的不同分组(例如,区分利用RTP传送的分组和利用SIP传送的分组)。在这样的实施例中,在确定不同协议的数据分组之后,如上所述检查使用相同协议的数据分组(例如,利用RTP的音频数据和视频数据)的字段,以识别不同的数据类型。按照这种方式,VTP管理器3125通过单一通信通道,传送预定通过不同的通信通道传送的不同数据分组。Some embodiments recognize checking data packet signatures (ie, packet header formats) to distinguish between different packets delivered using different protocols (eg, distinguishing packets delivered using RTP from packets delivered using SIP). In such an embodiment, after determining the data packets of different protocols, the fields of the data packets using the same protocol (eg, audio data and video data using RTP) are inspected to identify the different data types as described above. In this manner, VTP manager 3125 communicates over a single communication channel different data packets intended for transmission over different communication channels.
尽管上面说明了通过单一通信通道组合不同类型的数据的一种方式,不过其它实施例利用其它技术把不同的分组类型多路复用到一个通信流中。例如,一些实施例的一种技术涉及留意数据分组的一对初始端口号,并把所述一对初始端口号保存在数据分组本身中,以便稍后提取。还存在把两个视频会议参加者之间的不同类型的数据组合到一个端口对通道中的其它技术。While the above illustrates one way of combining different types of data over a single communication channel, other embodiments utilize other techniques to multiplex different packet types into one communication stream. For example, one technique of some embodiments involves noting a pair of original port numbers for a data packet, and saving the pair of original port numbers in the data packet itself for later retrieval. There are other techniques that combine different types of data between two videoconference participants into one port-pair channel.
当VTP管理器3125通过虚拟通信通道,从远程设备接收到数据分组时,VTP管理器3125检查数据分组的签名以识别利用不同的协议发送的不同分组。这种签名可被用于区分SIP分组和RTP分组。一些实施例的VTP管理器还利用一些或全部分组的分组类型字段,多路分解被多路复用到单一虚拟化通道中的各种不同类型的分组(例如,音频、视频和控制分组)。在识别这些不同类型的分组之后,VTP管理器根据它保存的端口对号和分组类型的映射,把每个不同类型的分组和其对应的端口对号关联起来。VTP 3125随后用识别的一对端口号修改数据分组的一对端口号,并转发数据分组以便解包。在利用不同的技术把不同的分组类型多路复用到单一通道中的其它实施例中,VTP管理器使用不同的技术解析分组。When VTP manager 3125 receives a data packet from a remote device over a virtual communication channel, VTP manager 3125 checks the signature of the data packet to identify a different packet sent using a different protocol. Such signatures can be used to distinguish SIP packets from RTP packets. The VTP manager of some embodiments also demultiplexes the various types of packets (eg, audio, video, and control packets) multiplexed into a single virtualized channel, using the packet type field of some or all of the packets. After identifying these different types of groups, the VTP manager associates each group of different types with its corresponding port pair number according to the mapping between the port pair number and the grouping type it keeps. The VTP 3125 then modifies the pair of port numbers of the data packet with the identified pair of port numbers and forwards the data packet for unpacking. In other embodiments where different packet types are multiplexed into a single channel using different techniques, the VTP manager parses the packets using different techniques.
通过利用这样的技术多路复用和多路分解不同的分组,VTP管理器3125创建单一的虚拟化通信通道(例如,单对端口号),通过所述单一的虚拟化通信通道传送视频数据、音频数据和控制信令数据,以及通过所述单一的虚拟化通信通道从远程设备接收音频、视频和控制分组。从而,从网络的观点来看,数据是通过所述单一的虚拟化通信通道传送的,而从会话协商管理器3105和协议管理器3110的观点来看,视频数据、音频数据和控制信令数据是通过不同的通信通道传送的。By utilizing such techniques to multiplex and demultiplex the different packets, the VTP manager 3125 creates a single virtualized communication channel (e.g., a single pair of port numbers) over which the video data, audio data and control signaling data, and audio, video and control packets are received from a remote device over the single virtualized communication channel. Thus, from the point of view of the network, data is transferred through the single virtualized communication channel, while from the point of view of session negotiation manager 3105 and protocol manager 3110, video data, audio data and control signaling data are transmitted through different communication channels.
类似于传送给视频会议中的远程设备的图像,从视频会议中的远程设备传送的图像是按分组格式接收的。接收器模块3130接收分组,并对分组解包以便重构图像,之后把图像保存在视频缓冲器(例如,图16的缓冲器1616)中以便解码。在一些实施例中,对图像解包涉及除去任何报头,和由分组重构只具有图像数据(可能有大小数据)的比特流。Images transmitted from a remote device in a video conference are received in packet format similar to the images transmitted to the remote device in the video conference. The receiver module 3130 receives packets and unpacks the packets to reconstruct the image, which is then stored in a video buffer (eg, buffer 1616 of FIG. 16 ) for decoding. In some embodiments, unpacking the image involves removing any headers, and reconstructing a bitstream with only the image data (and possibly size data) from the packets.
媒体传送管理器3135处理从网络接收的反馈数据(例如,单向等待时间、带宽估计比特率、分组丢失数据、往返延迟时间数据,等等),以动态和自适应地调整数据传输的速率(即,比特率)。在一些其它实施例中,媒体传送管理器3135还根据处理后的反馈数据控制容错,还可把反馈数据发送给视频会议管理器1604,以便调整视频会议模块1602的其它操作,比如比例缩放、大小调整和编码。除了当会议中的远程设备不能处理所有分组时,使通用传输缓冲器丢弃分组之外,视频会议模块和编码器能够使用较低比特率对图像编码,使得对每个图像来说将发送较少的分组。Media Delivery Manager 3135 processes feedback data received from the network (e.g., one-way latency, bandwidth estimate bit rate, packet loss data, round-trip delay time data, etc.) to dynamically and adaptively adjust the rate of data transmission ( i.e. bit rate). In some other embodiments, the media delivery manager 3135 also controls fault tolerance according to the processed feedback data, and can also send the feedback data to the video conference manager 1604 to adjust other operations of the video conference module 1602, such as scaling, size Adjust and code. In addition to causing the common transmit buffer to drop packets when the remote device in the conference cannot handle all the packets, the videoconferencing module and encoder can encode images using a lower bit rate so that fewer packets will be sent per image grouping.
在一些实施例中,媒体传送管理器3135还可监控设备的其它变量,比如会影响如何配置照相机的工作功率模式的功耗和热级,如上所述。该数据还可被用作加入反馈数据中的附加输入(例如,如果设备正变得过热,那么媒体传送管理器3135可设法使处理慢下来)。In some embodiments, the media delivery manager 3135 may also monitor other variables of the device, such as power consumption and thermal levels that affect how the camera's operating power modes are configured, as described above. This data can also be used as additional input into the feedback data (eg, if the device is getting too hot, the Media Delivery Manager 3135 can try to slow down the process).
现在参考图16,说明连网管理器3100的几个示例操作。首先说明把由双照相机移动设备的照相机拍摄的图像传送给视频会议中的远程设备,之后说明从远程设备接收图像。发射器模块3115从缓冲器1612取回将被传送给视频会议中的远程设备的编码图像。Referring now to FIG. 16, several example operations of the networking manager 3100 are illustrated. The transmission of images captured by the cameras of the dual-camera mobile device to the remote device in the video conference will be described first, followed by the description of receiving images from the remote device. The transmitter module 3115 retrieves from the buffer 1612 the encoded image to be transmitted to the remote device in the video conference.
协议管理器3110确定要使用的恰当协议(例如,传送音频和视频的RTP),会话协商管理器3105把该协议通知给发射器模块3115。之后,发射器模块3115对图像进行分包,并把分包的图像发送给通用传输缓冲器3120。通用传输缓冲器管理器3122从会话协商管理器3105接收指令,以命令通用传输缓冲器3120传送或丢弃图像。VTP管理器3125从通用传输缓冲器3120接收分组,并处理分组,以便通过单一通信通道把分组传送给远程设备。The protocol manager 3110 determines the appropriate protocol to use (eg, RTP for conveying audio and video), and the session negotiation manager 3105 notifies the transmitter module 3115 of the protocol. Afterwards, the transmitter module 3115 packetizes the image, and sends the packetized image to the general transmission buffer 3120 . The general transmission buffer manager 3122 receives an instruction from the session negotiation manager 3105 to instruct the general transmission buffer 3120 to transmit or discard the image. VTP manager 3125 receives packets from general purpose transmit buffer 3120 and processes the packets for transmission to remote devices over a single communication channel.
当从远程设备接收图像时,VTP管理器3125通过虚拟化的单一通信通道,从远程设备接收分包的图像,并处理分组以便通过分配用来接收图像的通信通道(例如,视频通信通道),把图像引导到接收器模块3130。When receiving images from a remote device, the VTP manager 3125 receives packetized images from the remote device over a virtualized single communication channel and processes the packets to pass through the communication channel (e.g., a video communication channel) assigned to receive the images, The images are directed to the receiver module 3130.
接收器模块3130对分组解包以重构图像,并把图像发送给缓冲器1616,以便由解码器1660解码。接收器模块3130还把控制信令消息转发给媒体传送管理器3130(例如,来自视频会议中的远程设备的接收分组的确认)。The receiver module 3130 unpacks the packets to reconstruct the image and sends the image to the buffer 1616 to be decoded by the decoder 1660 . The receiver module 3130 also forwards control signaling messages to the media delivery manager 3130 (eg, an acknowledgment of receipt of a packet from a remote device in a video conference).
上面说明了连网管理器3100的几个示例操作。这些只是说明性的例子,因为各种其它实施例将利用不同的模块,或者在各种功能不同地分布在模块之间的情况下,执行这些操作或不同的操作。此外,连网管理器3100的模块或者其它模块可执行另外的操作,比如动态比特率调整。Several example operations of networking manager 3100 are described above. These are merely illustrative examples, as various other embodiments will utilize different modules, or perform these or different operations with various functions distributed differently among the modules. Additionally, modules of networking manager 3100 or other modules may perform additional operations, such as dynamic bitrate adjustment.
IV.会议中调整和控制操作IV. In-session adjustment and control operations
A.画中画修改A. Picture-in-picture modification
1.锁定到角落(snap-to-corner)1. Snap-to-corner
本发明的一些实施例允许双照相机移动设备的用户通过来回移动构成合成显示的一个或多个显示区,修改显示在设备上的合成显示。一个这样的例子是来回移动PIP显示的插入显示区。图32图解说明在视频会议期间执行的这样一个例子。在视频会议中,由于各种原因,比如当前景插入显示区遮挡了背景显示区的感兴趣区域,用户可能想要移动前景插入显示区。Some embodiments of the invention allow a user of a dual camera mobile device to modify the composite display displayed on the device by moving around one or more display areas that make up the composite display. One such example is moving the inset display area of the PIP display back and forth. Figure 32 illustrates such an example performed during a video conference. In a video conference, a user may want to move the foreground inset display area for various reasons, such as when the foreground inset display area blocks an area of interest in the background display area.
图32参考UI 3205的五个不同阶段3210、3215、3220、3225和3230,图解说明插入显示区3240在设备的UI 3205中的移动。第一阶段3210图解说明在该设备的本地用户和远程设备的远程用户之间的视频会议期间的UI 3205。图32中的UI 3205显示与在开始视频会议之后,在图11的第五阶段中显示的PIP显示相同的PIP显示。在这个例子中,由本地用户的设备拍摄的视频被显示在插入显示区3240中,由远程用户的设备拍摄的视频被显示在背景显示区3235中。如图所示,显示区1155包括用于结束视频会议的可选UI项目3245。在一些实施例中,显示区1155的布局与上面说明的图12的显示区1155的布局相同。32 illustrates the movement of the insertion display area 3240 in the UI 3205 of the device with reference to five different stages 3210, 3215, 3220, 3225, and 3230 of the UI 3205. The first stage 3210 illustrates the UI 3205 during a video conference between a local user of the device and a remote user of the remote device. UI 3205 in FIG. 32 displays the same PIP display as that displayed in the fifth stage of FIG. 11 after starting the video conference. In this example, video captured by the local user's device is displayed in inset display area 3240 and video captured by the remote user's device is displayed in background display area 3235 . As shown, display area 1155 includes selectable UI item 3245 for ending the video conference. In some embodiments, the layout of the display area 1155 is the same as the layout of the display area 1155 of FIG. 12 described above.
第二阶段3215图解说明用户通过选择插入显示区3240,启动锁定到角落操作。在这个例子中,通过把手指3255放在插入显示区3240内的任意地方,实现选择。如图所示,用插入显示区3240的粗边框3260,显示这种选择。不同的实施例可用不同的方式指出这样的选择,比如通过突出显示区3240,通过使显示区3240摆动等等。The second stage 3215 illustrates that the user initiates the lock to corner operation by selecting the inset display area 3240 . In this example, selection is made by placing finger 3255 anywhere within inset display area 3240 . This selection is displayed with a thick border 3260 inserted into the display area 3240 as shown. Different embodiments may indicate such selection in different ways, such as by highlighting the display area 3240, by oscillating the display area 3240, and the like.
第三阶段3220图解说明在用户开始把PIP显示3250的插入显示区3240从PIP显示3250中的一个区域移动到该PIP显示3250中的另一个区域之后的UI 3205。在这个例子中,插入显示区3240已开始从PIP显示3250的左下角移动到PIP显示3250的右下角,如箭头3265所示。在这个例子中,在第二阶段3215中选择插入显示之后,用户通过朝着PIP显示3250的右下角拖动其手指3255,移动插入显示区3240。一些实施例提供在PIP显示3250中来回移动插入显示区3240的其它技术。The third stage 3220 illustrates the UI 3205 after the user begins to move the inset display area 3240 of the PIP display 3250 from one area in the PIP display 3250 to another area in the PIP display 3250. In this example, inset display area 3240 has begun to move from the lower left corner of PIP display 3250 to the lower right corner of PIP display 3250, as indicated by arrow 3265. In this example, after selecting the inset display in the second stage 3215 , the user moves the inset display area 3240 by dragging his finger 3255 towards the lower right corner of the PIP display 3250 . Some embodiments provide other techniques for moving the inset display area 3240 around in the PIP display 3250 .
第四阶段3225图解说明在用户从设备3200的屏幕上移开其手指3255之后的状态下的UI 3205。在这种状态下,插入显示区3240仍然朝着根据在第三阶段3220中的用户手指移动而被识别的PIP显示3250的右下角移动。换句话说,在手指3255开始朝着PIP显示3250的右下角移动插入显示区3240之后,即使移开了手指3255,UI 3205仍然保持这种移动。为了保持所述移动,在用户移开其手指3255之前,一些实施例的UI 3205要求用户的拖动操作大于特定的阈值量(例如,大于特定的距离,或者长于特定的时间);否则,这些实施例会在稍微移动插入显示区3240之后,使插入显示区3240保持在其初始的左下角位置,或者根本不移动插入显示区3240。The fourth stage 3225 illustrates the UI 3205 in a state after the user removes his finger 3255 from the screen of the device 3200. In this state, the inset display area 3240 is still moving towards the lower right corner of the PIP display 3250 as recognized from the user's finger movement in the third stage 3220 . In other words, after the finger 3255 begins to move toward the bottom right corner of the PIP display 3250 into the display area 3240, even if the finger 3255 is removed, the UI 3205 maintains this movement. In order to maintain the movement, the UI 3205 of some embodiments requires the user's drag operation to be greater than a certain threshold amount (e.g., greater than a certain distance, or longer than a certain time) before the user removes their finger 3255; otherwise, these Embodiments may keep the inset display area 3240 in its original bottom left corner position after moving the inset display area 3240 slightly, or may not move the inset display area 3240 at all.
不过,尽管即使用户在插入显示区到达其新位置之前,停止了他的拖动操作,一些实施例仍然允许插入显示区继续移动,不过其它实施例要求用户保持拖动操作,直到插入显示区到达其新位置为止。一些实施例提供移动插入显示区的其它技术。例如,一些实施例要求用户在插入显示区3240实际开始移动之前,指定要把插入显示区3240引导到何处,等等。一些实施例还通过仅仅以不同角度倾斜移动设备,使显示区可以滑动和锁定到角落。However, while some embodiments allow the inset display to continue moving even if the user stops his dragging operation before the inset display area reaches its new location, other embodiments require the user to keep dragging until the inset display area reaches its new location. its new location. Some embodiments provide other techniques for moving the inset display area. For example, some embodiments require the user to specify where to direct the inset display area 3240 before the inset display area 3240 actually begins to move, etc. Some embodiments also allow the display area to slide and lock into corners by simply tilting the mobile device at different angles.
第五阶段3230图解说明在插入显示区3240到达其位于PIP显示3250的右下角的新位置之后的UI 3205。在第五阶段3230中,粗边框3260的消除指示锁定到角落操作已完成。The fifth stage 3230 illustrates the UI 3205 after the inset display area 3240 has reached its new location in the lower right corner of the PIP display 3250. In the fifth stage 3230, the removal of the thick border 3260 indicates that the lock to corner operation is complete.
为了使在上述第三、第四和第五阶段3220、3225和3230中图解说明的移动更容易,一些实施例的UI 3205采用一旦用户使插入显示区朝着PIP显示3250的某个角落移动,就允许插入显示区快速锁定到该角落的锁定规则(snapping rule)。例如,当用户朝着特定角落拖动插入显示区3240超过阈值量时,一些实施例的UI 3205识别插入显示区3240的运动方向,确定所述运动已超过阈值量,从而随后自动移动插入显示区3240,而不用用户进一步输入插入显示区3240可被锁定到的UI 3205中的下一个网格点。在一些实施例中,为锁定插入显示区3240而提供的唯一网格点是位于PIP显示3250的四个角落的网格点。其它实施例提供插入显示区3240可被锁定到的UI 3205中(例如,PIP显示3250中)的其它网格点(即,插入显示区3240的侧边或顶点可被置于其上或者与之对齐的其它网格点)。To facilitate the movement illustrated in the third, fourth, and fifth stages 3220, 3225, and 3230 described above, the UI 3205 of some embodiments employs that once the user moves the inset display area toward a corner of the PIP display 3250, A snapping rule that allows the insert display to quickly snap to that corner. For example, when a user drags the inset display area 3240 toward a particular corner beyond a threshold amount, the UI 3205 of some embodiments identifies the direction of motion of the inset display area 3240, determines that the movement has exceeded a threshold amount, and then automatically moves the inset display area 3240 without further user input the next grid point in the UI 3205 to which the insertion display area 3240 can be locked. In some embodiments, the only grid points provided for locking inset display area 3240 are the grid points located at the four corners of PIP display 3250 . Other embodiments provide for other grid points in the UI 3205 (e.g., in the PIP display 3250) that the inset display area 3240 can be locked to (i.e., sides or vertices of the inset display area 3240 can be placed on or with it Aligned other grid points).
另外的实施例可以不采用网格点,使得插入显示区可被置于PIP显示3250中的任意点。再另外的实施例提供允许用户打开或关闭UI的锁定到网格点特征。此外,除了从设备拍摄的视频之外,不同的实施例可允许用户对各种项目,比如图标等执行锁定到角落操作。Alternative embodiments may not employ grid points such that the inset display area may be placed at any point within the PIP display 3250 . Still further embodiments provide a pin to grid point feature that allows the user to toggle the UI on or off. Additionally, various embodiments may allow users to perform pin-to-corner operations on various items, such as icons, in addition to video captured from the device.
图33图解说明UI 3205中的锁定到角落操作的另外两个例子3330和3335。这些另外的锁定到角落操作显示根据用户的垂直或对角拖动操作,在PIP显示3250中被垂直或对角移动的插入显示区3240。FIG. 33 illustrates two other examples 3330 and 3335 of the lock to corner operation in the UI 3205. These additional pin to corner operations display inset display area 3240 that is moved vertically or diagonally in PIP display 3250 according to the user's vertical or diagonal drag operation.
即使图32和33图解说明了插入显示区在PIP显示内的移动,不过普通技术人员会认识到其它实施例可以利用类似的技术在其它类型的PIP显示或其它类型的合成显示中移动显示区。例如,如下进一步所述,一些实施例的PIP显示具有两个或者更多的前景插入显示,通过利用与上面参考图32和33说明的技术类似的技术,能够在PIP显示中移动这些插入显示。另外,一些实施例利用类似的技术在合成显示中来回移动显示区(例如,通过用户拖动移动,把一个显示区从屏幕的左侧移动到屏幕的右侧)。此外,合成显示的一个或多个显示区的移动会导致双照相机移动设备的图像处理操作的变化,比如响应用户的输入,使视频会议管理器1604重新合成合成显示中的显示区。如下进一步所述,一些实施例采用当第二显示区被从第三位置移动到第一位置时,把第一显示区从第一位置推开的锁定和推送技术。Even though FIGS. 32 and 33 illustrate movement of inset display areas within a PIP display, one of ordinary skill will recognize that other embodiments may utilize similar techniques to move display areas in other types of PIP displays or other types of composite displays. For example, as described further below, the PIP display of some embodiments has two or more foreground inset displays that can be moved within the PIP display by utilizing techniques similar to those described above with reference to FIGS. 32 and 33 . Additionally, some embodiments utilize similar techniques to move display regions around in a composite display (eg, move a display region from the left side of the screen to the right side of the screen via a user drag movement). In addition, movement of one or more display areas of the composite display can result in changes to the image processing operations of the dual camera mobile device, such as causing the videoconferencing manager 1604 to recompose the display areas in the composite display in response to user input. As described further below, some embodiments employ a locking and pushing technique that pushes the first display area away from the first position when the second display area is moved from the third position to the first position.
2.旋转2. Rotate
当用于视频会议的移动设备的用户在会议期间旋转所述移动设备时,一些实施例旋转在视频会议期间呈现的PIP显示。图34图解说明当使设备3400从垂直位置旋转到水平位置时,设备3400的UI1105的旋转。当屏幕的长边是垂直的时,设备3400被竖握,而当屏蔽的长边是水平的时,设备3400被横握。在图34中图解说明的例子中,UI 1105从为设备的竖握而优化的纵向视图旋转成为设备3400的横握而优化的横向视图。这种旋转功能使得当移动设备3400被竖握或横握时,用户都可以观看以直立位置显示的UI 1105。When a user of a mobile device used for a video conference rotates the mobile device during the conference, some embodiments rotate the PIP display presented during the video conference. FIG. 34 illustrates the rotation of the UI 1105 of the device 3400 when the device 3400 is rotated from a vertical position to a horizontal position. When the long side of the screen is vertical, the device 3400 is held vertically, and when the long side of the shield is horizontal, the device 3400 is held horizontally. In the example illustrated in FIG. 34 , UI 1105 rotates from a portrait view optimized for a vertical hold of the device to a landscape view optimized for a landscape hold of device 3400. This rotation functionality allows the user to view the UI 1105 displayed in an upright position when the mobile device 3400 is held vertically or horizontally.
图34按照六个不同的操作阶段3410、3415、3420、3425、3430和3435,图解说明UI 1105的旋转。第一阶段3410图解说明在该设备的本地用户和远程设备的远程用户之间的视频会议期间的UI1105。图34中的UI 1105显示与在建立视频会议之后,在图11的第五阶段中显示的PIP显示相同的PIP显示1180。在这个例子中,本地用户的设备拍摄的视频显示在插入显示区1160中,远程用户的设备拍摄的视频显示在背景显示区1170中。在PIP显示1180之下的显示区1155中包括用户可选择以结束视频会议(例如,通过单指轻点)的可选UI项目3485(例如,“结束会议(End Conference)”按钮3485)。FIG. 34 illustrates the rotation of the UI 1105 according to six different stages of operation 3410, 3415, 3420, 3425, 3430, and 3435. The first stage 3410 illustrates the UI 1105 during a video conference between a local user of the device and a remote user of the remote device. UI 1105 in FIG. 34 displays the same PIP display 1180 as that shown in the fifth stage of FIG. 11 after the video conference is established. In this example, the video captured by the local user's device is displayed in inset display area 1160 and the video captured by the remote user's device is displayed in background display area 1170 . Included in display area 1155 below PIP display 1180 is a selectable UI item 3485 (eg, "End Conference" button 3485) that the user can select to end the video conference (eg, by a single-finger tap).
第二阶段3415图解说明在用户开始向一边倾斜设备3400之后的UI 1105。在这个例子中,用户开始把设备3400从被竖握倾斜到被横握,如箭头3460所示。UI 1105的外观没有变化。在其它情况下,用户可能改为想把设备3400从横握倾斜到被竖握,在这些情况下,UI1105从水平优化的视图切换成垂直优化的视图。The second stage 3415 illustrates the UI 1105 after the user begins to tilt the device 3400 sideways. In this example, the user begins to tilt device 3400 from being held vertically to being held horizontally, as indicated by arrow 3460 . The appearance of UI 1105 has not changed. In other cases, the user may instead want to tilt the device 3400 from being held horizontally to being held vertically, in which case the UI 1105 switches from a horizontally optimized view to a vertically optimized view.
第三阶段3420图解说明在设备3400已从被竖握倾斜到被横握之后的状态下的UI 1105。在这种状态下,UI 1105的外观仍然没有变化。在一些实施例中,在使设备3400倾斜超过阈值量并保持超过阈值量一段时间之后,触发旋转操作。在图34中图解说明的例子中,假定阈值量和旋转速度不会导致UI 1105旋转,直到设备已放置在水平位置之后的较短时间间隔为止。不同的实施例具有用于触发旋转操作的不同阈值量和等待时间。例如,一些实施例可具有如此低的触发旋转操作的阈值,使得不管设备3400的定向,都使UI 1105显得好像它总是以直立位置被显示似的。在其它实施例中,设备3400的用户可以规定何时可以触发旋转操作(例如,通过菜单优先选择设置)。另外,一些实施例可在设备被倾斜超过阈值量之后,不延迟所述旋转。此外,不同的实施例可以允许用不同的方式触发旋转操作,比如通过切换移动设备上的开关、通过发出话音命令、依据通过菜单进行的选择,等等。The third stage 3420 illustrates the UI 1105 after the device 3400 has been tilted from being held vertically to being held horizontally. In this state, the appearance of UI 1105 remains unchanged. In some embodiments, the rotation operation is triggered after tilting the device 3400 more than a threshold amount and holding it for a period of time. In the example illustrated in FIG. 34, it is assumed that the threshold amount and rotation speed will not cause the UI 1105 to rotate until a short time interval after the device has been placed in the horizontal position. Different embodiments have different threshold amounts and wait times for triggering a rotation operation. For example, some embodiments may have such a low threshold for triggering a rotation operation that regardless of the orientation of the device 3400, the UI 1105 appears as if it is always displayed in an upright position. In other embodiments, a user of device 3400 may specify when a rotation operation may be triggered (eg, via a menu preference setting). Additionally, some embodiments may not delay the rotation after the device has been tilted beyond a threshold amount. Furthermore, different embodiments may allow the rotation operation to be triggered in different ways, such as by toggling a switch on the mobile device, by issuing a voice command, upon selection through a menu, and so on.
第四阶段3425图解说明在开始旋转操作之后的UI 1105。一些实施例动画演示旋转显示区,以向用户提供关于旋转操作的反馈。图34图解说明这样的一种动画的例子。具体地说,图34在其第四阶段3425表现显示区1180和1155一起开始旋转。显示区1180和1155围绕经过UI 1105的中心的轴3465(即,z轴)旋转。显示区1180和1155被旋转相同的数量,不过沿与设备3400的旋转(例如,通过设备3400的倾斜)相反的方向旋转。在这个例子中,由于设备3400沿顺时针方向旋转了90°(通过从竖握变成横握),因此旋转操作会使显示区1180和1155沿逆时针方向旋转90°。当显示区1180和1155旋转时,显示区1180和1155按比例地缩小,以适合UI 1105,使得显示区1180和1155仍然可以完全出现在UI 1105上。一些实施例可提供指示设备3400的状态的消息(例如,通过显示字词“Rotating(旋转)”)。The fourth stage 3425 illustrates the UI 1105 after starting the rotation operation. Some embodiments animate the rotation of the display area to provide feedback to the user regarding the rotation operation. Figure 34 illustrates an example of such an animation. Specifically, Figure 34 in its fourth stage 3425 shows display areas 1180 and 1155 starting to rotate together. Display areas 1180 and 1155 rotate about axis 3465 (ie, the z-axis) that passes through the center of UI 1105. Display areas 1180 and 1155 are rotated by the same amount, but in a direction opposite to the rotation of device 3400 (eg, by tilting of device 3400 ). In this example, since device 3400 is rotated 90° clockwise (by going from vertical to horizontal holding), the rotating operation will cause display areas 1180 and 1155 to rotate 90° counterclockwise. When display areas 1180 and 1155 are rotated, display areas 1180 and 1155 are scaled down to fit UI 1105 so that display areas 1180 and 1155 can still fully appear on UI 1105. Some embodiments may provide a message indicating the status of the device 3400 (eg, by displaying the word "Rotating").
第五阶段3430图解说明在显示区1180和1155从纵向视图到横向视图逆时针旋转90°之后的UI 1105。在这个阶段,显示区1180和1155已被旋转,不过还未展开到UI 1105的整个宽度。箭头3475指出在第五阶段的结尾,显示区1180和1155将开始侧向展开,以适合UI 1105的整个宽度。不同的实施例可不包括该阶段,因为可以与第四阶段3425中的旋转同时地进行所述展开。The fifth stage 3430 illustrates the UI 1105 after display areas 1180 and 1155 have been rotated 90° counterclockwise from portrait view to landscape view. At this stage, display areas 1180 and 1155 have been rotated, but not expanded to the full width of UI 1105. Arrow 3475 indicates that at the end of the fifth stage, display areas 1180 and 1155 will begin to expand sideways to fit the full width of UI 1105. Different embodiments may not include this stage, as the deployment may occur concurrently with the rotation in the fourth stage 3425 .
第六阶段3435图解说明在显示区1180和1155已被展开,从而占据UI 1105的整个显示之后的UI 1105。如上所述,其它实施例可以不同地实现这种旋转。对一些实施例来说,仅仅把设备的屏幕旋转超过阈值量就可触发所述旋转操作,而不管设备3400的定向。The sixth stage 3435 illustrates UI 1105 after display areas 1180 and 1155 have been expanded to occupy the entire display of UI 1105. As noted above, other embodiments may achieve this rotation differently. For some embodiments, the rotation operation may be triggered simply by rotating the screen of the device beyond a threshold amount, regardless of the orientation of the device 3400 .
另外,其它实施例可提供用于指示旋转操作的不同动画。在图34中执行的旋转操作涉及显示区1180和1155围绕UI 1105的中心旋转。另一方面,可以使显示区围绕它们各自显示区的中心轴单独旋转。图35中示出了一种这样的方法。图35表示动画演示UI 1105的PIP显示1180的显示区1170和1160的旋转的备选方法。图35中图解说明的PIP显示1180和图11中图解说明的PIP显示1180相同。Additionally, other embodiments may provide different animations for indicating rotation operations. The rotation operation performed in FIG. 34 involves rotation of display areas 1180 and 1155 about the center of UI 1105. Alternatively, the display areas may be individually rotated about the central axis of their respective display areas. One such method is shown in FIG. 35 . 35 shows an alternative method of animating the rotation of the display areas 1170 and 1160 of the PIP display 1180 of the UI 1105. The PIP display 1180 illustrated in FIG. 35 is the same as the PIP display 1180 illustrated in FIG. 11 .
图35按照六个不同的操作阶段3410、3415、3420、3525、3530和3535,图解说明PIP显示1180的旋转。UI 1105的前三个阶段的操作与如在图34中的UI 1105中说明的前三个阶段的操作相同。在图34和35的第三阶段,设备3500都已从竖握变成横握,并且UI 1105的旋转还未开始。FIG. 35 illustrates the rotation of the PIP display 1180 according to six different stages of operation 3410 , 3415 , 3420 , 3525 , 3530 , and 3535 . The operations of the first three stages of the UI 1105 are the same as those illustrated in the UI 1105 in FIG. 34 . In the third stage of Figures 34 and 35, the device 3500 has both been held from portrait to landscape, and the rotation of the UI 1105 has not yet started.
第四阶段3525图解说明动画演示所述旋转的备选方法。在第四阶段,旋转操作已开始。具体地说,第四阶段3525表现显示区1170和1160的旋转的开始。显示区1170和1160分别围绕穿过每个显示区的中心的轴3567和3565(即,z轴)旋转。显示区1170和1160被旋转相同的量,不过沿与设备3500的旋转(例如,通过设备3500的倾斜)相反的方向旋转。与上面在图34的第四阶段3425中图解说明的类似,由于设备3500沿顺时针方向旋转了90°(通过从竖握变成横握),因此旋转操作会使显示区1170和1160沿逆时针方向旋转90°。当显示区1170和1160旋转时,显示区1170和1160按比例缩小以适合UI 1105,使得显示区1170和1160仍然可以完全出现在UI 1105上。The fourth stage 3525 illustrates an alternative method of animating the rotation. In the fourth stage, the rotation operation has started. Specifically, fourth stage 3525 represents the beginning of rotation of display areas 1170 and 1160 . Display areas 1170 and 1160 rotate about axes 3567 and 3565 (ie, the z-axis), respectively, passing through the center of each display area. Display areas 1170 and 1160 are rotated by the same amount, but in a direction opposite to the rotation of device 3500 (eg, by tilting of device 3500). Similar to what was illustrated above in the fourth stage 3425 of FIG. 34 , since device 3500 is rotated 90° clockwise (by going from vertical to horizontal holding), the rotating operation will cause display areas 1170 and 1160 to rotate in a counterclockwise direction. Rotate 90° clockwise. When display areas 1170 and 1160 are rotated, display areas 1170 and 1160 are scaled down to fit UI 1105 so that display areas 1170 and 1160 can still fully appear on UI 1105.
第五阶段3530图解说明在显示区1170和1160都从纵向视图到横向视图逆时针旋转90°之后的UI 1105。在这个阶段,显示区1170和1160已被旋转,不过还未展开到UI 1105的整个宽度。此外,显示区1160还未被移动到其最终位置。插入显示区1160在PIP显示1180中的最终位置由如在第一阶段3410中所示的插入显示区1160在PIP显示1180中的位置确定(例如,插入显示区1160在PIP显示1180的左下角)。在这个阶段,插入显示区1160仍然在UI 1105的左上角。The fifth stage 3530 illustrates the UI 1105 after both the display areas 1170 and 1160 have been rotated 90° counterclockwise from the portrait view to the landscape view. At this stage, display areas 1170 and 1160 have been rotated, but not expanded to the full width of UI 1105. Furthermore, display area 1160 has not been moved to its final position. The final location of the inset display area 1160 in the PIP display 1180 is determined by the position of the inset display area 1160 in the PIP display 1180 as shown in the first stage 3410 (e.g., the inset display area 1160 is in the lower left corner of the PIP display 1180) . At this stage, the inset display area 1160 is still in the upper left corner of the UI 1105.
箭头3580指出在第五阶段3530的结尾,显示区1170和1160将开始侧向展开,直到主显示区1170适合横握的设备的UI 1105的整个宽度为止。此外,箭头3575指出插入显示区1160将滑动到PIP显示1180的左下角。Arrow 3580 indicates that at the end of fifth stage 3530, display areas 1170 and 1160 will begin to expand sideways until main display area 1170 fits the full width of UI 1105 of the device held horizontally. Additionally, arrow 3575 indicates that inset display area 1160 will slide to the lower left corner of PIP display 1180 .
不同的实施例可不同地实现这一点。在一些实施例中,插入显示区1160的移动可以和主显示区1170的展开同时发生,或者可以顺序发生。此外,一些实施例可以在主显示区1170展开前、展开中或展开后缩放插入显示区1160,以产生新的PIP显示1180。在这个例子中,在显示区1160和1170旋转时,显示区1155消失。不过,在一些实施例中,显示区1155可在旋转期间保留在UI 1105上,并和显示区1160和1170一起旋转。Different embodiments may accomplish this differently. In some embodiments, the movement of the inset display area 1160 may occur simultaneously with the expansion of the main display area 1170, or may occur sequentially. Additionally, some embodiments may zoom inset display area 1160 before, during, or after expansion of main display area 1170 to generate new PIP display 1180 . In this example, display area 1155 disappears as display areas 1160 and 1170 rotate. However, in some embodiments, display area 1155 may remain on UI 1105 during rotation and rotate together with display areas 1160 and 1170.
第六阶段3535图解说明在插入显示区1160到达其新位置,并且显示区1160和1170已被恰当展开,以适合UI 1105的整个宽度之后的UI 1105。在这个例子中,插入显示区1160现在位于PIP显示1180的左下角,重叠在主显示区1170上。PIP显示1180现有具有和第一阶段3410的PIP显示1180相同的显示排列。第六阶段中在PIP显示1180之下出现的显示区1155指示旋转操作已完成。如上所述,仅仅把设备的屏幕旋转超过阈值量就可触发所述旋转操作,而不管设备3500的定向。The sixth stage 3535 illustrates the UI 1105 after the inset display area 1160 has reached its new location, and the display areas 1160 and 1170 have been properly expanded to fit the full width of the UI 1105. In this example, inset display area 1160 is now positioned in the lower left corner of PIP display 1180 , overlaid on main display area 1170 . The PIP display 1180 currently has the same display arrangement as the PIP display 1180 of the first stage 3410 . The display area 1155 that appears below the PIP display 1180 in the sixth stage indicates that the rotation operation is complete. As described above, the rotation operation may be triggered by merely rotating the screen of the device beyond a threshold amount, regardless of the orientation of the device 3500 .
在上面参考图34和35说明的例子中,显示区1170的定向也改变(即,从纵向变成横向)。即,在第三阶段3420中旋转显示区1170之后,通过水平展开PIP显示1180,使得它适合整个UI 1105,显示区1170的定向从纵向变成横向。在一些实施例中,当设备3500被旋转时,由远程设备拍摄的视频旋转,不过显示由远程设备拍摄的视频的显示区的定向保持不变。图36中图解说明了一个这样的例子。图36类似于图35,除了显示在显示区1170中的视频旋转,不过显示区1170保持沿纵向方向显示。In the example described above with reference to Figures 34 and 35, the orientation of the display area 1170 is also changed (ie, from portrait to landscape). That is, after rotating the display area 1170 in the third stage 3420, the orientation of the display area 1170 is changed from portrait to landscape by expanding the PIP display 1180 horizontally so that it fits the entire UI 1105. In some embodiments, when the device 3500 is rotated, the video captured by the remote device rotates, but the orientation of the display area displaying the video captured by the remote device remains the same. One such example is illustrated in Figure 36. Figure 36 is similar to Figure 35, except that the video displayed in display area 1170 is rotated, but display area 1170 remains displayed in portrait orientation.
图36中还图解说明了其中显示区1155保持在相同位置(而不是如图35中所示那样旋转并且水平展开,以填满PIP显示1180)的旋转操作的例子。此外,图36包括与上面在图12中说明的显示区1155的布局相同的显示区1155的布局。如图所示,在阶段3640、3645、3650、3655、3685和3690中,当设备3500旋转时,显示区1155保留在相同位置。Also illustrated in FIG. 36 is an example of a rotation operation in which the display area 1155 remains in the same position (rather than rotating and expanding horizontally to fill the PIP display 1180 as shown in FIG. 35 ). Furthermore, FIG. 36 includes the same layout of the display area 1155 as that of the display area 1155 explained above in FIG. 12 . As shown, in stages 3640, 3645, 3650, 3655, 3685, and 3690, when device 3500 is rotated, display area 1155 remains in the same position.
一些实施例提供一种旋转操作,其中显示由本地设备拍摄的视频的显示区的定向改变(而不是如图35中所示那样保持相同的定向),以反映在对本地设备进行旋转操作之后本地设备的定向。图36参考六个不同的阶段3640、3645、3650、3655、3685和3690,图解说明UI1105的这种旋转操作的例子。在图36中,第一阶段3640沿纵向方向显示插入显示区1160,插入显示区1160显示由设备3500的照相机拍摄的视频。第二和第三阶段3645和3650与图35的第二和第三阶段3415和3420相同,因为它们表示设备3500在旋转操作的各个阶段的倾斜。此时,设备3500的照相机在沿横向方向拍摄图像。为了指出这种转变,一些实施例提供如在第四和第五阶段3655和3685中所示的动画,而其它实施例根本不提供任何动画。Some embodiments provide a rotate operation where the orientation of the display area showing video captured by the local device changes (instead of remaining at the same orientation as shown in FIG. 35 ) to reflect that the local Orientation of the device. FIG. 36 illustrates an example of such a rotation operation of the UI 1105 with reference to six different stages 3640 , 3645 , 3650 , 3655 , 3685 , and 3690 . In FIG. 36 , the first stage 3640 displays an inset display area 1160 displaying a video captured by a camera of the device 3500 in a portrait direction. The second and third stages 3645 and 3650 are the same as the second and third stages 3415 and 3420 of FIG. 35 in that they represent the tilting of the device 3500 at various stages of rotational operation. At this time, the camera of the device 3500 is capturing an image in a landscape orientation. To indicate this transition, some embodiments provide an animation as shown in the fourth and fifth stages 3655 and 3685, while other embodiments do not provide any animation at all.
在第四阶段3655,显示在插入显示区1160中的图像被旋转,不过插入显示区1160本身不被旋转,因为第二和第三阶段3445和3650中设备3500的倾斜已把插入显示区1160旋转到横向方向。在第五阶段3685中,插入显示区1160中的旋转图像被水平展开以填充插入显示区1160,插入显示区1160开始朝着PIP显示1180的左下侧区域移动,以把插入显示区1160置于和插入显示区1160在第一阶段3640的PIP显示中相同的相对位置。In the fourth stage 3655, the image displayed in the inset display area 1160 is rotated, but the inset display area 1160 itself is not rotated because the tilt of the device 3500 in the second and third stages 3445 and 3650 has rotated the inset display area 1160 to landscape orientation. In the fifth stage 3685, the rotated image in the inset display area 1160 is expanded horizontally to fill the inset display area 1160, and the inset display area 1160 begins to move towards the lower left area of the PIP display 1180 to place the inset display area 1160 in and The insertion display area 1160 is in the same relative position as in the PIP display of the first stage 3640 .
在一些实施例中,显示由远程设备拍摄的视频的显示区的定向也变化,以反映在对远程设备进行旋转操作之后远程设备的定向。图37图解说明设备3500的UI 1105的四个不同阶段,其中(1)显示由本地设备拍摄的视频的显示区(本例中的显示区1160)的定向变化,以反映在对本地设备进行旋转操作之后本地设备的定向,和(2)显示由远程设备拍摄的视频的显示区(本例中的显示区1170)的定向变化,以反映在对远程设备进行旋转操作之后本地设备的定向。In some embodiments, the orientation of the display area displaying video captured by the remote device also changes to reflect the orientation of the remote device after the remote device is rotated. 37 illustrates four different stages of the UI 1105 of the device 3500, where (1) the orientation of the display area (display area 1160 in this example) showing the video captured by the local device changes to reflect when the local device is rotated The orientation of the local device after the operation, and (2) the orientation of the display area displaying the video captured by the remote device (display area 1170 in this example) changes to reflect the orientation of the local device after the rotation operation of the remote device.
在第一阶段3705,UI 1105和图36中的UI 1105相同。具体地说,第一阶段3705显示纵向定向的显示区1160和1170,因为设备3500是按纵向定向显示的,以及远程设备是纵向定向的(未示出)。从第一阶段3705到第二阶段3710,通过把设备3500从直立位置到横向位置旋转90°,对本地设备进行旋转操作。第二阶段3710显示在完成设备3500的旋转操作之后的UI 1105。在第二阶段,显示在显示区1170和1160中的视频已旋转到直立位置。不过,只有本地拍摄视频的显示区1160从纵向定向旋转到横向定向,因为只对本地设备(即,设备3500)进行了旋转操作。显示区1170保持纵向定向。In the first stage 3705, the UI 1105 is the same as the UI 1105 in FIG. 36 . Specifically, first stage 3705 displays portrait-oriented display areas 1160 and 1170 because device 3500 is displayed in portrait orientation and the remote device is portrait-oriented (not shown). From the first stage 3705 to the second stage 3710, the local device is rotated by rotating the device 3500 90° from an upright position to a landscape position. The second stage 3710 displays the UI 1105 after completing the rotation operation of the device 3500. In the second stage, the video displayed in display areas 1170 and 1160 has been rotated to an upright position. However, only the locally captured video display area 1160 rotates from a portrait orientation to a landscape orientation because the rotation operation is only performed on the local device (ie, device 3500). Display area 1170 maintains a portrait orientation.
从第二阶段3710到第三阶段3715,通过把远程设备从直立位置旋转到横向位置(未示出),对远程设备进行旋转操作。第三阶段3715显示在完成远程设备的旋转操作之后的UI 1105。在第三阶段,显示在显示区1170中的视频和远程拍摄视频的显示区1170从纵向定向旋转到横向定向,因为只对远程设备进行了旋转操作。从而,UI 1105的第三阶段均按横向定向显示本地和远程拍摄视频的显示区1170和1160。From the second stage 3710 to the third stage 3715, the remote device is rotated by rotating it from an upright position to a landscape position (not shown). The third stage 3715 displays the UI 1105 after completing the rotation operation of the remote device. In the third stage, the video displayed in the display area 1170 and the display area 1170 of the remotely captured video rotates from a portrait orientation to a landscape orientation because only the rotation operation is performed on the remote device. Thus, the third stage of UI 1105 displays display areas 1170 and 1160 for both local and remote capture video in landscape orientation.
从第三阶段3715到第四阶段3720,通过把设备3500从横向位置到直立位置旋转90°,对本地设备进行旋转操作。第四阶段3720显示在完成该旋转操作之后的UI 1105。在第四阶段3720,显示在显示区1160和1170中的视频已旋转到直立位置。不过,只有本地拍摄视频的显示区1160从横向定向旋转到纵向定向,因为只对本地设备(即,设备3500)进行了旋转操作。显示区1170保持横向定向。From the third stage 3715 to the fourth stage 3720, the local device is rotated by rotating the device 3500 90° from a landscape position to an upright position. The fourth stage 3720 displays the UI 1105 after completing the rotation operation. In the fourth stage 3720, the video displayed in display areas 1160 and 1170 has been rotated to an upright position. However, only the locally captured video display area 1160 rotates from a landscape orientation to a portrait orientation because the rotation operation is only performed on the local device (ie, device 3500). Display area 1170 maintains a landscape orientation.
从第四阶段3720到第一阶段3705,通过把远程设备从横向位置到直立位置旋转90°(未示出),对远程设备进行旋转操作。在这种情况下,第一阶段3705显示在完成该旋转操作之后的显示区1170。于是,该阶段的UI 1105显示纵向定向的显示区1160和1170。尽管图37图解说明了一系列的不同旋转操作,不过其它实施例可以按照任意许多不同序列,进行任意许多旋转操作。From the fourth stage 3720 to the first stage 3705, the remote device is rotated by rotating it 90° (not shown) from a landscape position to an upright position. In this case, the first stage 3705 displays the display area 1170 after the rotation operation is completed. Thus, UI 1105 at this stage displays portrait-oriented display areas 1160 and 1170. Although FIG. 37 illustrates a series of different rotation operations, other embodiments may perform any number of rotation operations in any number of different sequences.
图34、35、36和37说明在视频会议期间对本地和远程设备进行的旋转操作。当对本地移动设备进行旋转操作时,一些实施例把旋转操作通知给远程设备,以便让远程设备能对本地设备的视频进行任何修改(例如旋转显示本地设备的视频的显示区)。类似地,当对远程设备进行旋转操作时,远程设备把该操作通知给本地设备,使本地设备可以对远程设备的视频进行任何修改。一些实施例提供在视频会议期间,在本地设备和远程设备之间传送旋转操作的通知的控制通信通道。Figures 34, 35, 36 and 37 illustrate the rotation of the local and remote devices during a video conference. When the local mobile device is rotated, some embodiments notify the remote device of the rotation so that the remote device can make any modifications to the local device's video (eg, rotate the display area displaying the local device's video). Similarly, when a rotation operation is performed on the remote device, the remote device notifies the local device of the operation, so that the local device can make any modification to the video of the remote device. Some embodiments provide a control communication channel for communicating notifications of rotation operations between a local device and a remote device during a video conference.
尽管图34、35、36和37图解说明能够实现旋转的动画的不同方式,不过普通技术人员会认识到其它实施例可以用不同的方式显示旋转的动画。另外,旋转操作的动画能够引起本地移动设备的图像处理操作的变化,比如使视频会议管理器1604在UI 1105中以不同的角度重新合成显示区,和比例缩放显示在显示区中的图像。Although FIGS. 34, 35, 36, and 37 illustrate different ways in which the animation of rotation can be achieved, one of ordinary skill will recognize that other embodiments can display the animation of rotation in different ways. In addition, the animation of the rotation operation can cause changes in the image processing operations of the local mobile device, such as causing the video conference manager 1604 to recompose the display area at different angles in the UI 1105, and scale the image displayed in the display area.
3.窗口大小调整3. Window resizing
一些实施例允许移动设备的用户调整在视频会议期间呈现的PIP显示的插入显示区的大小。不同的实施例提供缩放插入显示区的不同技术。图38图解说明缩放插入显示区的一种方法。在该方法中,移动设备的用户通过选择插入显示区的一个角落,随后扩大或缩小插入显示区,来调整插入显示区的大小。Some embodiments allow a user of a mobile device to adjust the size of an inset display area of a PIP display presented during a video conference. Different embodiments provide different techniques for scaling the inset display area. Figure 38 illustrates one method of scaling the inset display area. In this method, the user of the mobile device adjusts the size of the inset display area by selecting a corner of the inset display area and subsequently expanding or shrinking the inset display area.
在图38中,移动设备3825的UI 3800在与另一个移动设备的远程用户的视频会议期间,呈现PIP显示3865。PIP显示3865包括两个视频显示:背景主显示区3830和前景插入显示区3835。背景主显示区3830占据大部分的PIP显示3865,而前景插入显示区3835较小并重叠在背景主显示区3830上。在这个例子中,背景主显示区3830呈现拿着吉它的人物的视频,该人物被假定为由远程设备的正面照相机拍摄其视频的人物,或者由远程设备的背面照相机拍摄其视频的人物。前景插入显示区3835呈现戴着帽子的人物的视频,在这个例子中,该人物被假定为由本地设备的正面照相机拍摄其视频的人物,或者由本地设备的背面照相机拍摄其视频的人物。在PIP显示3865下面是包括标记成“End Conference(结束会议)”的可选UI项目3860(例如,按钮3860)的显示区1155,可选UI项目3860允许用户通过选择该项目来结束视频会议。In FIG. 38, UI 3800 of mobile device 3825 presents PIP display 3865 during a video conference with a remote user of another mobile device. PIP display 3865 includes two video displays: background main display area 3830 and foreground inset display area 3835 . The background main display area 3830 occupies most of the PIP display 3865 , while the foreground inset display area 3835 is smaller and overlaps the background main display area 3830 . In this example, background main display area 3830 presents a video of a character holding a guitar, which is assumed to be the character whose video was captured by the remote device's front camera, or the remote device's rear camera. The foreground inset display area 3835 presents a video of a person wearing a hat, which in this example is assumed to be the person whose video was captured by the local device's front camera, or the person whose video was captured by the local device's back camera. Below the PIP display 3865 is the display area 1155 that includes a selectable UI item 3860 (e.g., button 3860) labeled "End Conference" that allows the user to end the video conference by selecting the item.
PIP显示3865只是呈现由远程设备和本地设备拍摄的视频的合成视图的一种方式。一些实施例可以提供其它的合成视图。例如,代替具有用于来自远程设备的视频的较大背景显示,较大的背景显示可以是来自本地设备的视频,以及较小的前景插入显示可以是来自远程设备的视频。另外,一些实施例允许本地视频和远程视频出现在UI3800中的两个并排显示区(例如,左右显示窗口,或者上下显示窗口),或者两个对角排列的显示区中。在一些实施例中,PIP显示的方式或者默认显示模式可由用户规定。在其它实施例中,PIP显示还可包含一个较大的背景显示,和两个较小的前景插入显示。The PIP display 3865 is just a way of presenting a composite view of the video taken by the remote device and the local device. Some embodiments may provide other composite views. For example, instead of having a larger background display for the video from the remote device, the larger background display could be the video from the local device, and the smaller foreground inset display could be the video from the remote device. In addition, some embodiments allow local video and remote video to appear in two side-by-side display areas in UI 3800 (eg, display windows left and right, or display windows above and below), or in two display areas arranged diagonally. In some embodiments, the way of PIP display or the default display mode can be specified by the user. In other embodiments, the PIP display may also include one larger background display, and two smaller foreground inset displays.
图38按照UI 3800的四个操作阶段,图解说明缩放操作。在第一阶段3805,前景插入显示区3835显著小于背景主显示区3830。另外在这个例子中,前景插入显示区3835位于PIP显示3865的右下角。在其它例子中,前景插入显示区3835可具有不同的大小,或者位于PIP显示3865中的不同区域。FIG. 38 illustrates the zoom operation in terms of the four operational phases of the UI 3800. In the first stage 3805, the foreground inset display area 3835 is significantly smaller than the background main display area 3830. Also in this example, the foreground inset display area 3835 is located in the lower right corner of the PIP display 3865 . In other examples, foreground inset display area 3835 may be a different size, or located in a different area of PIP display 3865 .
在第二阶段3810,发起缩放操作。在这个例子中,通过选择用户想要缩放的插入显示区3835的一个角落(例如,通过把手指3840放在插入显示区3835的左上角上),发起该操作。UI 3800的第二阶段3810用插入显示区3835的粗边框3845指出这种选择。在这个阶段,用户能够扩大或缩小插入显示区3835(例如,通过在PIP显示3865上远离插入显示区3835或者朝着插入显示区3835拖动其手指3840)。In a second stage 3810, a scaling operation is initiated. In this example, the operation is initiated by selecting a corner of inset display area 3835 that the user wants to zoom (eg, by placing finger 3840 on the upper left corner of inset display area 3835). The second stage 3810 of the UI 3800 indicates this selection with a thick border 3845 inserted into the display area 3835. At this stage, the user can expand or shrink inset display area 3835 (eg, by dragging their finger 3840 on PIP display 3865 away from inset display area 3835 or toward inset display area 3835).
第三阶段3815图解说明在如箭头3850所示,通过远离插入显示区3835移动其手指3840(即在本例中,通过朝着UI 3800的左上角对角移动他的手指),用户开始扩大插入显示区3835之后的UI 3800。另外如箭头3855所示,手指3840的移动在高度和宽度方向按比例地扩大了插入显示区3835。在其它例子中,用户能够利用相同的技术(即,通过朝着插入显示区3835拖动手指),缩小插入显示区3835。The third stage 3815 illustrates that, as indicated by arrow 3850, by moving his finger 3840 away from the inset display area 3835 (i.e., in this example, by moving his finger diagonally towards the upper left corner of the UI 3800), the user begins to expand the inset UI 3800 behind display area 3835. In addition, as indicated by arrow 3855, the movement of finger 3840 expands insertion display area 3835 proportionally in height and width directions. In other examples, the user can zoom out of inset display area 3835 using the same technique (ie, by dragging a finger toward inset display area 3835).
第四阶段3820显示在已经完成插入显示区3835的缩放之后的UI 3800。在这个例子中,一旦插入显示区3835已经达到理想的大小,那么用户就通过停止其手指3840的拖动,并从PIP显示3865移开他的手指,完成插入显示区3835的缩放。作为该过程的结果,缩放后的插入显示区3835大于其在第一阶段3805中的初始大小。粗边框3845的消除指示现在完成了插入显示区缩放操作。The fourth stage 3820 displays the UI 3800 after zooming inset display area 3835 has completed. In this example, once the inset display area 3835 has reached the desired size, the user completes the zooming of the inset display area 3835 by stopping the dragging of his finger 3840 and removing his finger from the PIP display 3865. As a result of this process, the scaled inset display area 3835 is larger than its original size in the first stage 3805 . The removal of the thick border 3845 indicates that the inset display area scaling operation is now complete.
一些实施例提供允许用户在视频会议期间,在PIP显示3865中缩放插入显示区3835的其它技术。图39图解说明一种这样的其它技术。图39图解说明一种通过选择插入显示区3835的一个边缘(即,在插入显示区3835的侧边之一),随后扩大或缩小插入显示区3835,来缩放插入显示区3835的技术。Some embodiments provide other techniques that allow a user to zoom inset display area 3835 in PIP display 3865 during a video conference. Figure 39 illustrates one such other technique. FIG. 39 illustrates a technique for zooming inset display area 3835 by selecting an edge of inset display area 3835 (ie, on one of the sides of inset display area 3835 ), and then expanding or shrinking inset display area 3835 .
图39按照图38的UI 3800的四个操作阶段,图解说明该缩放操作。图39的第一阶段3805和图38中的第一阶段3805相同。具体地说,在这个阶段,设备3925的UI 3800图解说明具有较大的背景主显示区3830和位于PIP显示3865的右下角的较小的前景插入显示区3835的PIP显示3865。尽管图38和39图解说明在相同的UI 3800中缩放插入显示区3835的两种不同技术,不过普通技术人员会认识到一些实施例将不在相同的UI中提供这两种技术。FIG. 39 illustrates the zooming operation in terms of the four operational phases of the UI 3800 of FIG. 38. The first stage 3805 of FIG. 39 is the same as the first stage 3805 of FIG. 38 . Specifically, at this stage, UI 3800 of device 3925 illustrates PIP display 3865 with a larger background main display area 3830 and a smaller foreground inset display area 3835 located in the lower right corner of PIP display 3865. Although FIGS. 38 and 39 illustrate two different techniques for zooming inset display area 3835 in the same UI 3800, one of ordinary skill will recognize that some embodiments will not provide both techniques in the same UI.
第二阶段3910图解说明缩放操作的开始。在这个例子中,用户通过选择该用户想要缩放的插入显示区3835的一个侧边(例如,把手指3840放在插入显示区3835的顶边或侧边上),发起缩放操作。在这个例子中,用户把他的手指3840放在插入显示区3835的顶边上,以便实现所述选择。第二阶段3910用插入显示区3835的粗边框3845指示这种选择。The second stage 3910 illustrates the beginning of the scaling operation. In this example, the user initiates a zoom operation by selecting a side of inset display area 3835 that the user wants to zoom (eg, placing finger 3840 on the top or side edge of inset display area 3835). In this example, the user places his finger 3840 on the top edge of the inset display area 3835 to effect the selection. The second stage 3910 indicates this selection with a thick border 3845 inserted into the display area 3835 .
第三阶段3915图解说明在如箭头3950所示,用户通过使其手指3840移离插入显示区3835(即,垂直地朝着PIP显示3865的顶部移动),开始扩大插入显示区3835之后的UI 3800。另外,如箭头3955所示,手指3840的移动在高度和宽度方向都按比例扩大了插入显示区3835。在其它例子中,用户通过利用相同的技术(即,通过朝着插入显示区3835拖动手指3840),缩小显示区3835。The third stage 3915 illustrates the UI 3800 after the user has begun to expand the inset display area 3835 by moving its finger 3840 away from the inset display area 3835 (i.e., moving vertically toward the top of the PIP display 3865), as indicated by arrow 3950 . Additionally, as indicated by arrow 3955, the movement of finger 3840 expands inset display area 3835 proportionally in both height and width directions. In other examples, the user zooms out of display area 3835 by utilizing the same technique (ie, by dragging finger 3840 toward inset display area 3835).
第四阶段3920显示在完成插入显示区3835的缩放之后的UI3800。在这个例子中,一旦插入显示区3835达到理想的大小后,那么用户就通过停止其手指3840的拖动,并从设备的显示屏移开他的手指3840,来完成插入显示区3835的缩放。作为该过程的结果,缩放后的插入显示区3835大于其在第一阶段3805中的初始大小。粗边框3845的消除指示现在完成了插入显示区缩放操作。The fourth stage 3920 displays the UI 3800 after zooming into the display area 3835 is complete. In this example, once the inset display area 3835 has reached the desired size, the user completes the zooming of the inset display area 3835 by stopping the dragging of his finger 3840 and removing his finger 3840 from the device's display screen. As a result of this process, the scaled inset display area 3835 is larger than its original size in the first stage 3805 . The removal of the thick border 3845 indicates that the inset display area scaling operation is now complete.
响应拖动操作,一些实施例在高度和宽度方向,按比例地调整插入显示区3835的大小,如图38和39中所示。其它实施例可允许用户调整插入显示区3835的高度和/或宽度,而不影响另一属性。图40图解说明一种这样的缩放过程的例子。In response to a drag operation, some embodiments resize the inset display area 3835 proportionally in height and width, as shown in FIGS. 38 and 39 . Other embodiments may allow the user to adjust the height and/or width of the inset display area 3835 without affecting another attribute. Figure 40 illustrates an example of one such scaling process.
具体地说,图40图解说明移动设备4025的与图38的UI 3800类似的UI 3800,除了当选择插入显示区3835的边缘之一并水平或垂直移动该边缘时,图40的UI 3800允许插入显示区3835沿水平方向和/或垂直方向扩展之外。图40图解说明UI 3800中的与图38的PIP显示3865类似的PIP显示3865,除了现在插入显示区3835在PIP显示3865的右上角之外。PIP显示3865包括两个视频显示:背景主显示区3830和前景插入显示区3835。在这个例子中,背景主显示区3830呈现由远程设备的正面照相机或背面照相机拍摄的视频。前景插入显示区3835呈现由本地设备的正面照相机或背景照相机拍摄的视频。Specifically, FIG. 40 illustrates a UI 3800 for a mobile device 4025 that is similar to the UI 3800 of FIG. 38, except that the UI 3800 of FIG. The display area 3835 expands horizontally and/or vertically. 40 illustrates a PIP display 3865 in UI 3800 that is similar to PIP display 3865 of FIG. PIP display 3865 includes two video displays: background main display area 3830 and foreground inset display area 3835 . In this example, background main display area 3830 presents video captured by the remote device's front or back camera. The foreground inset display area 3835 presents video captured by the local device's front camera or background camera.
类似于图38,图40按照UI 3800的四个操作阶段,图解说明缩放操作。第一阶段4005与图38的第一阶段3805类似,除了现在插入显示区3835在右上角之外。其它三个阶段4010、4015和4020类似于三个阶段3910、3915和3920,除了插入显示区3835的底边的选择和移动只导致插入显示区3835沿垂直方向扩大,而不影响插入显示区3835的宽度之外。Similar to FIG. 38 , FIG. 40 illustrates the zoom operation in terms of the four operational phases of the UI 3800. The first stage 4005 is similar to the first stage 3805 of Figure 38, except now the inset display area 3835 is in the upper right corner. The other three stages 4010, 4015, and 4020 are similar to the three stages 3910, 3915, and 3920, except that selection and movement of the bottom edge of the inset display area 3835 only causes the inset display area 3835 to expand vertically without affecting the inset display area 3835 outside of the width.
图38、39和40提供通过选择插入显示区3835的一个角落或侧边,允许用户缩放PIP显示3865的插入显示区3835的示例实施例。一些实施例提供缩放插入窗口3835的其它技术。例如,图41图解说明一些实施例允许通过选择插入显示区3835的内部,缩放插入显示区3835。在这种方法中,用户通过把两根手指4155和4156放在屏幕上,并且彼此远离或者接近地拖动所述两根手指,调整插入显示区3835的大小。38 , 39 and 40 provide example embodiments that allow a user to zoom inset display area 3835 of PIP display 3865 by selecting a corner or side of inset display area 3835 . Some embodiments provide other techniques for scaling the inset window 3835. For example, FIG. 41 illustrates that some embodiments allow the inset display area 3835 to be zoomed by selecting the interior of the inset display area 3835 . In this method, the user resizes the inset display area 3835 by placing two fingers 4155 and 4156 on the screen and dragging the two fingers away from or close to each other.
在图41中,移动设备4140的UI 3800在与另一个移动设备的远程用户的视频会议期间,提供PIP显示3865。为了简化UI 3800的说明,图41图解说明UI 3800中与图38的PIP显示3865类似的PIP显示3865。In FIG. 41 , UI 3800 of mobile device 4140 provides PIP display 3865 during a video conference with a remote user of another mobile device. To simplify the description of the UI 3800, FIG. 41 illustrates a PIP display 3865 in the UI 3800 similar to the PIP display 3865 of FIG. 38.
图41按照UI 3800的七个操作阶段,图解说明该缩放操作。前四个阶段3805、4110、4115和4120表示插入显示区3835的扩大,而后三个阶段表示插入显示区3835的缩小。图41中的第一阶段3805和图38中的第一阶段3805相同。具体地说,在这个阶段,UI 3800图解说明具有较大的背景主显示区3830和较小的前景插入显示区3835的PIP显示3865。在这个例子中,背景主显示区3830呈现由远程设备的正面照相机或背面照相机拍摄的视频。前景插入显示区3835呈现由本地设备的正面照相机或背面照相机拍摄的视频。Figure 41 illustrates the zooming operation in terms of the seven operational phases of the UI 3800. The first four stages 3805, 4110, 4115, and 4120 represent the enlargement of the inset display area 3835, while the last three stages represent the reduction of the inset display area 3835. The first stage 3805 in FIG. 41 is the same as the first stage 3805 in FIG. 38 . Specifically, at this stage, UI 3800 illustrates a PIP display 3865 with a larger background main display area 3830 and a smaller foreground inset display area 3835. In this example, background main display area 3830 presents video captured by the remote device's front or back camera. The foreground inset display area 3835 presents video captured by the local device's front or back camera.
第二阶段4110图解说明在发起缩放操作之后的UI 3800。在这个例子中,用户通过选择该用户想要缩放的插入显示区3835(例如,通过把两根手指4155和4156放在插入显示区3835内),发起缩放操作。UI 3800的第二阶段4110用插入显示区3835的粗边框4190指出这种选择。The second stage 4110 illustrates the UI 3800 after initiating a zoom operation. In this example, the user initiates a zoom operation by selecting the inset display area 3835 that the user wants to zoom (eg, by placing two fingers 4155 and 4156 within the inset display area 3835). The second stage 4110 of the UI 3800 indicates this selection with a thick border 4190 inserted into the display area 3835.
第三阶段4115图解说明在如箭头4160所示,用户通过相互远离地移动其手指4155和4156(即,朝着PIP显示3865的左上角移动手指4155,朝着PIP显示3865的右下角移动手指4156),开始扩大插入显示区3835之后的UI 3800。如箭头4165所示,手指4155和4156的移动在高度和宽度方向按比例地扩大了插入显示区3835。The third stage 4115 illustrates that, as indicated by arrow 4160, the user moves his fingers 4155 and 4156 away from each other (i.e., moves finger 4155 toward the upper left corner of PIP display 3865, moves finger 4156 toward the lower right corner of PIP display 3865). ), begin to expand the UI 3800 after inserting the display area 3835. As indicated by arrow 4165, the movement of fingers 4155 and 4156 expands insertion display area 3835 proportionally in the height and width directions.
第四阶段4120显示在完成插入显示区3835的缩放之后的UI3800。在这个例子中,用户通过停止其手指4155和4156的拖动,并且从设备的显示屏移开其手指4155和4156,来完成插入显示区3835的缩放。作为该过程的结果,缩放后的插入显示区3835大于其在第一阶段3805中的初始大小。粗边框4190的消除指示现在已完成插入显示区缩放操作。The fourth stage 4120 displays the UI 3800 after zooming into the display area 3835 is complete. In this example, the user completes the zooming of the inset display area 3835 by stopping the dragging of their fingers 4155 and 4156, and removing their fingers 4155 and 4156 from the display screen of the device. As a result of this process, the scaled inset display area 3835 is larger than its original size in the first stage 3805 . The removal of the thick border 4190 indicates that the inset display area scaling operation is now complete.
在第五阶段4125,通过把两根手指4155和4156放在插入显示区3835上,用户重新选择插入显示区3835。第六阶段4130图解说明在如箭头4170所示,用户通过相互接近地移动其手指4155和4156,开始缩小插入显示区3835之后的UI 3800。如箭头4175所示,手指4155和4156的移动在高度和宽度方向按比例地缩小了插入显示区3835。In the fifth stage 4125, the user reselects the insertion display area 3835 by placing two fingers 4155 and 4156 on the insertion display area 3835. The sixth stage 4130 illustrates the UI 3800 after the user begins zooming out of the inset display area 3835 by moving their fingers 4155 and 4156 in close proximity to each other, as indicated by arrow 4170. As indicated by arrow 4175, the movement of fingers 4155 and 4156 scales down inset display area 3835 in both height and width directions.
第七阶段4135类似于图41的第四阶段4120,除了通过所述操作,插入显示区3835的大小已缩小之外。粗边框4190的消除指示现在已完成插入显示区缩放操作。The seventh stage 4135 is similar to the fourth stage 4120 of FIG. 41 , except that by the operation described, the size of the inset display area 3835 has been reduced. The removal of the thick border 4190 indicates that the inset display area scaling operation is now complete.
图38-41的上述说明举例说明了允许用户缩放PIP显示的插入显示区的几种示例用户界面。在一些实施例中,插入显示区的缩放会引起双照相机移动设备的图像处理操作的变化,比如使视频会议管理器1604响应用户的输入,改变PIP显示中的插入显示区的比例缩放和合成。另外,在一些实施例中,图38-41中的显示区1155的布局和上面说明的图12的显示区1155的布局相同。The above descriptions of FIGS. 38-41 illustrate several example user interfaces that allow a user to zoom the inset display area of a PIP display. In some embodiments, scaling of the inset display area causes changes in the image processing operations of the dual camera mobile device, such as causing the video conference manager 1604 to change the scaling and compositing of the inset display area in a PIP display in response to user input. Additionally, in some embodiments, the layout of the display area 1155 in FIGS. 38-41 is the same as the layout of the display area 1155 of FIG. 12 described above.
4.识别感兴趣区域4. Identify the region of interest
一些实施例允许用户在视频会议期间,识别显示的视频中的感兴趣区域(ROI),以便修改图像处理(例如,图16中的图像处理管理器1608),编码(例如,图16中的编码器1655),移动设备及其照相机在视频会议期间的行为,或者它们的组合。不同的实施例提供不同的技术来识别视频中的这种感兴趣区域。图42图解说明用于识别视频的感兴趣区域,以便提高视频的图像质量的一些实施例的用户界面。Some embodiments allow a user to identify regions of interest (ROIs) in displayed video in order to modify image processing (e.g., image processing manager 1608 in FIG. 16 ), encoding (e.g., encoding device 1655), the behavior of the mobile device and its camera during the video conference, or a combination thereof. Different embodiments provide different techniques to identify such regions of interest in video. Figure 42 illustrates a user interface of some embodiments for identifying regions of interest of a video in order to improve the image quality of the video.
在图42中,移动设备4225的UI 4200在与另一个移动设备的远程用户的视频会议期间,呈现PIP显示4265。图42中的PIP显示基本上与图41中的PIP显示类似。具体地说,图42中的PIP显示包括两个视频显示:背景主显示4230和前景插入显示4235。在这个例子中,背景主显示4230呈现树和戴着帽子的人物的视频,所述树和人物被假定为由远程设备的正面照相机拍摄其视频的树和人物,或者由远程设备的背面照相机拍摄其视频的树和人物。前景插入显示4235呈现男士的视频,在这个例子中,所述男士被假定为由本地设备的正面照相机拍摄其视频的男士,或者由本地设备的背面照相机拍摄其视频的人物。PIP显示的下面是包括标记成“End Conference(结束会议)”的可选UI项目4260(例如,按钮4260)的显示区1155,可选UI项目4260允许用户通过选择该项目来结束视频会议。In FIG. 42, UI 4200 of mobile device 4225 presents PIP display 4265 during a video conference with a remote user of another mobile device. The PIP display in FIG. 42 is basically similar to the PIP display in FIG. 41 . Specifically, the PIP display in FIG. 42 includes two video displays: a background main display 4230 and a foreground inset display 4235. In this example, the background main display 4230 presents a video of a tree and a figure wearing a hat, which is assumed to be the tree and figure whose video was captured by the remote device's front camera, or the remote device's rear camera Its videos of trees and people. The foreground inset display 4235 presents a video of a man, which in this example is assumed to be the man whose video was captured by the local device's front camera, or the person whose video was captured by the local device's back camera. Below the PIP display is a display area 1155 that includes a selectable UI item 4260 (e.g., button 4260) labeled "End Conference" that allows the user to end the video conference by selecting the item.
该PIP显示只是呈现由远程设备和本地设备拍摄的视频的合成视图的一种方式。一些实施例可以提供其它的合成视图。例如,代替具有用于来自远程设备的视频的较大背景显示,较大的背景显示可以是来自本地设备的视频,较小的前景插入显示可以是来自远程设备的视频。另外,一些实施例允许本地视频和远程视频出现在UI中的两个并排显示区(例如,左右显示窗口,或者上下显示窗口),或者两个对角排列的显示区中。在其它实施例中,PIP显示还可包含一个较大的背景显示,和两个较小的前景插入显示。在一些实施例中,PIP显示的方式或者默认显示模式可由用户规定。This PIP display is just one way of presenting a composite view of the video captured by the remote device and the local device. Some embodiments may provide other composite views. For example, instead of having a larger background display for video from a remote device, the larger background display could be the video from the local device and the smaller foreground inset display could be the video from the remote device. In addition, some embodiments allow local video and remote video to appear in two side-by-side display areas in the UI (eg, display windows left and right, or display windows above and below), or in two diagonally arranged display areas. In other embodiments, the PIP display may also include one larger background display, and two smaller foreground inset displays. In some embodiments, the way of PIP display or the default display mode can be specified by the user.
图42按照UI 4200的四个操作阶段,图解说明ROI标识操作。如第一阶段4205中所示,呈现在背景显示4230中的视频具有很低的质量(即,视频图像模糊)。在这个例子中,移动设备4225的用户意欲把背景显示4230中出现人物的脸部4270的区域识别为感兴趣区域。Figure 42 illustrates the ROI identification operation according to the four operational phases of the UI 4200. As shown in the first stage 4205, the video presented in the background display 4230 is of very low quality (ie, the video image is blurry). In this example, the user of the mobile device 4225 intends to identify the area in the background display 4230 where the face 4270 of the person appears as an area of interest.
在第二阶段4210中,发起识别感兴趣区域的操作。在这个例子中,通过选择呈现在背景显示4230中的视频之中用户想要识别为感兴趣区域的区域(例如,通过在设备的屏幕上,在背景显示4230中的显示的人物脸部4270附近的位置轻点手指4250),发起该操作。In a second stage 4210, an operation to identify a region of interest is initiated. In this example, by selecting an area of the video presented in background display 4230 that the user wants to identify as an area of interest (e.g., by displaying a character's face 4270 in background display 4230 on the device's screen Tap your finger 4250) to initiate this operation.
如第三阶段4215中所示,用户的区域选择使UI 4200画出环绕用户选择的区域的环绕框4275(例如,虚线方框4275)。第四阶段4220显示在结束感兴趣区域的标识之后的UI 4200。作为该过程的结果,与第一阶段4205中相比,感兴趣区域内的视频的质量已得到显著改善。环绕框4275的消除指示现在已完成ROI选择操作。在一些实施例中,ROI标识处理还对显示在远程设备上的相同视频造成与它对本地设备4225造成的变化相同的变化。例如,在这个例子中,显示在远程设备上的相同视频的感兴趣区域内的画面质量也得到显著改善。As shown in the third stage 4215, the user's selection of an area causes the UI 4200 to draw a surrounding box 4275 (e.g., a dashed box 4275) around the area selected by the user. The fourth stage 4220 displays the UI 4200 after concluding identification of the region of interest. As a result of this process, the quality of the video within the region of interest has improved significantly compared to the first stage 4205 . The elimination of surrounding box 4275 indicates that the ROI selection operation is now complete. In some embodiments, the ROI identification process also causes the same changes to the same video displayed on the remote device as it does to the local device 4225. For example, in this example, the picture quality in the region of interest of the same video displayed on the remote device is also significantly improved.
在一些实施例中,用户可在第三阶段4215放大或缩小环绕框4275(例如,通过把手指4250放在显示画面上,并朝着屏幕的右上角移动手指4250,以放大环绕框4275,或者朝着屏幕的左下角移动手指4250,以缩小环绕框4275)。一些实施例还允许用户在第三阶段4215旋转环绕框4275(例如,通过把手指4250放在显示画面上,并在显示画面上水平或垂直移动手指4250)。在一些其它实施例中,所述区域的选择根本不会使UI 4200在第三阶段4215中画出环绕框4275。In some embodiments, the user may zoom in or out on the surrounding frame 4275 in the third stage 4215 (e.g., by placing the finger 4250 on the display and moving the finger 4250 toward the upper right corner of the screen to zoom in on the surrounding frame 4275, or Move the finger 4250 towards the lower left corner of the screen to shrink the surrounding frame 4275). Some embodiments also allow the user to rotate the surrounding frame 4275 in the third stage 4215 (eg, by placing the finger 4250 on the display and moving the finger 4250 horizontally or vertically on the display). In some other embodiments, the selection of the area does not cause the UI 4200 to draw the surrounding box 4275 in the third stage 4215 at all.
其它实施例提供允许用户识别视频中的感兴趣区域的不同技术。图43图解说明一种这样的其它技术。在图43中,用户通过画出包围感兴趣区域的形状,识别感兴趣区域。在这个例子中,所述形状是矩形,不过也可以是其它形状(例如,任何其它多边形、圆形、椭圆形等)。一些实施例在还提供在图42中图解说明的那种技术的设备UI中,提供图43的备选技术。不过,其它实施例不在相同UI中提供这两种技术。Other embodiments provide different techniques that allow a user to identify regions of interest in a video. Figure 43 illustrates one such other technique. In FIG. 43, the user identifies the region of interest by drawing a shape enclosing the region of interest. In this example, the shape is a rectangle, but could be other shapes (eg, any other polygon, circle, ellipse, etc.). Some embodiments provide the alternative technique of FIG. 43 in a device UI that also provides the technique illustrated in FIG. 42 . However, other embodiments do not provide these two technologies in the same UI.
图43按照UI 4200的五个操作阶段,图解说明这种ROI标识操作。图43中的第一阶段4205和图42中的第一阶段4205相同。具体地说,在第一阶段4205中,UI 4200图解说明具有较大的背景主显示4230,和位于PIP显示4265的左下角的较小的前景插入显示4235的PIP显示4265。Figure 43 illustrates this ROI identification operation in terms of the five operational phases of the UI 4200. The first stage 4205 in FIG. 43 is the same as the first stage 4205 in FIG. 42 . Specifically, in a first stage 4205, the UI 4200 illustrates a PIP display 4265 with a larger background main display 4230, and a smaller foreground inset display 4235 located in the lower left corner of the PIP display 4265.
在第二阶段4310,发起识别感兴趣区域的操作。在这个例子中,通过持续一段时间选择定义呈现在背景主显示4230中呈现的视频中的感兴趣区域的第一位置(例如,通过在设备的屏幕上,持续一段时间把手指4350放在背景显示4230中的所显示人物脸部4270附近的位置上),发起所述操作。在第三阶段4315,UI 4200利用临近背景显示区4230上的所选第一位置的圆点4355,指示已选择了所述第一位置4370。In a second stage 4310, an operation to identify a region of interest is initiated. In this example, a first location defining an area of interest in a video presented in the background main display 4230 is selected by selecting for a period of time (e.g., by holding a finger 4350 on the screen of the device for a period of time on the background display 4230 in the vicinity of the displayed character's face 4270), initiate the operation. In a third stage 4315, the UI 4200 indicates by a dot 4355 adjacent to the selected first location on the background display area 4230 that said first location 4370 has been selected.
第四阶段4320图解说明在用户选择了定义感兴趣区域的第二位置4375之后的UI 4200。在这个例子中,通过如箭头4360所示,在圆点4355出现之后,从第一位置开始在设备的屏幕内拖动手指4350,并停止在位于背景显示区430中的显示的帽子和显示的树之间的位置,用户选择第二位置4375。如第四阶段中所示,这种拖动导致UI4200画出感兴趣区域的矩形边框4365,所述矩形边框4365具有在其相对顶点上的第一和第二位置4370和4375。The fourth stage 4320 illustrates the UI 4200 after the user has selected a second location 4375 defining an area of interest. In this example, by dragging the finger 4350 within the screen of the device starting from the first position after the dot 4355 appears as shown by the arrow 4360, and stopping at the displayed hat and the displayed hat located in the background display area 430 Between locations in the tree, the user selects a second location 4375. As shown in the fourth stage, this dragging causes the UI 4200 to draw a rectangular bounding box 4365 of the region of interest with first and second positions 4370 and 4375 on its opposing vertices.
第五阶段4325图解说明在感兴趣区域的标识已完成之后的UI4200。在这个例子中,用户通过一旦标识了期望的感兴趣区域,就停止手指4350的拖动并从设备的显示屏移开手指4350,来完成感兴趣区域的标识。第五阶段4325图解说明通过该拖拉(drawing)过程,与第一阶段4205中相比,感兴趣区域内的视频的质量已得到显著改善。在一些实施例中,和它对本地设备4225所造成的变化一样,这种拖拉过程也对远程设备上的显示画面造成相同的变化。例如,在这个例子中,显示在远程设备上的相同视频的感兴趣区域内的图像质量会得到显著改善。The fifth stage 4325 illustrates the UI 4200 after the identification of the region of interest has been completed. In this example, the user completes the identification of the region of interest by stopping the dragging of the finger 4350 and removing the finger 4350 from the display screen of the device once the desired region of interest is identified. The fifth stage 4325 illustrates that through this drawing process, the quality of the video within the region of interest has improved significantly compared to the first stage 4205 . In some embodiments, this dragging process causes the same changes to the display on the remote device as it does to the local device 4225. For example, in this example, the image quality in the region of interest of the same video displayed on the remote device will be significantly improved.
上面的图42和43的描述举例说明了识别视频中的感兴趣区域,以便改善所识别区域的图像质量的不同方式。在一些实施例中,改善识别的感兴趣区域的画面质量会导致双照相机移动设备的编码操作的变化,比如当对视频编码时,对所识别的区域分配更多的比特。The description of Figures 42 and 43 above exemplifies different ways of identifying regions of interest in a video in order to improve the image quality of the identified regions. In some embodiments, improving the picture quality of identified regions of interest results in changes to the encoding operations of the dual camera mobile device, such as allocating more bits to the identified regions when encoding video.
一些实施例允许用户识别视频中的感兴趣区域,以对移动设备或其照相机做出不同的改变。例如,图44图解说明识别视频中的感兴趣区域,以在显示画面上扩大或缩小感兴趣区域的例子。在这种方法中,用户通过把显示画面上的某一区域选为感兴趣区域的中心,随后扩大或缩小所述感兴趣区域,识别视频中的感兴趣区域。Some embodiments allow a user to identify areas of interest in a video to make different changes to the mobile device or its camera. For example, FIG. 44 illustrates an example of identifying a region of interest in a video to enlarge or reduce the region of interest on a display. In this method, a user identifies an area of interest in a video by selecting an area on the display as the center of the area of interest and then enlarging or reducing the area of interest.
在图44中,移动设备4425的UI 4400在与另一个移动设备的远程用户的视频会议期间,呈现PIP显示4265。图44中的PIP显示4265基本上与图42的PIP显示4265类似,不过图44的前景插入显示4235位于PIP显示4265的左下角。In FIG. 44, UI 4400 of mobile device 4425 presents PIP display 4265 during a video conference with a remote user of another mobile device. PIP display 4265 in FIG. 44 is substantially similar to PIP display 4265 of FIG. 42, except that foreground inset display 4235 of FIG.
图44按照UI 4400的四个操作阶段,图解说明ROI选择操作。如第一阶段4405中所示,背景显示4430呈现具有在背景显示4430的左侧的男士,和在背景显示4430的右侧的树4440的视频。此外,树4440相对较小,只占据背景显示区4430的右侧。在这个例子中,移动设备4425的用户意欲把背景显示区4430上出现树4440的区域识别为感兴趣区域。FIG. 44 illustrates the ROI selection operation in terms of the four operational phases of the UI 4400. As shown in the first stage 4405, the background display 4430 presents a video with a man on the left side of the background display 4430, and a tree 4440 on the right side of the background display 4430. Additionally, the tree 4440 is relatively small, occupying only the right side of the background display area 4430 . In this example, the user of mobile device 4425 intends to identify the area on background display area 4430 where tree 4440 appears as an area of interest.
在第二阶段4410中,发起识别感兴趣区域的操作。在这个例子中,通过选择呈现在背景显示4430中的视频之中的、用户希望识别为感兴趣区域的区域4440(例如,通过把两根手指4445和4446放在背景显示区4430上、显示树4440的地方),发起所述操作。在第二阶段4410,通过彼此远离地拖动其手指4445和4446,用户能够使感兴趣区域4440扩大,并占据更大部分的背景显示区4430。通过相互接近地拖动其手指4445和4446,用户还能够使感兴趣区域4440缩小,从而占据较小部分的背景显示区4430。In a second stage 4410, an operation to identify a region of interest is initiated. In this example, by selecting an area 4440 of the video presented in background display 4430 that the user wishes to identify as an area of interest (e.g., by placing two fingers 4445 and 4446 on background display area 4430, displaying a tree 4440), initiate the operation. In a second stage 4410 , by dragging their fingers 4445 and 4446 away from each other, the user can cause the region of interest 4440 to expand and occupy a larger portion of the background display area 4430 . The user can also zoom out the region of interest 4440 by dragging their fingers 4445 and 4446 close to each other so as to occupy a smaller portion of the background display area 4430 .
第三阶段4415图解说明在如箭头4450所示,用户通过彼此远离地移动其手指4445和4446(即,手指4445朝着背景显示区4430的左上角移动,手指4446朝着背景显示区4430的右下角移动),开始使感兴趣区域4440扩大以占据更大部分的背景显示区4430之后的UI4400。在一些实施例中,手指移动还对远程设备的显示造成和它对本地设备造成的变化一样的变化。例如,在这个例子中,相同视频的感兴趣区域将扩大,从而占据远程设备的更大部分的背景显示区4430。在一些实施例中,本地显示和/或远程显示中的感兴趣区域的扩大导致一个或两个移动设备或其照相机修改它们的一个或多个其它操作,如下进一步所述。The third stage 4415 illustrates that, as shown by arrow 4450, the user moves his fingers 4445 and 4446 away from each other (i.e., finger 4445 moves towards the upper left corner of the background display area 4430 and finger 4446 towards the right of the background display area 4430). Move the lower corner), start to expand the ROI 4440 to occupy a larger portion of the UI 4400 behind the background display area 4430 . In some embodiments, finger movement also causes the same changes to the remote device's display as it does to the local device. For example, in this example, the region of interest for the same video would expand to occupy a larger portion of the background display area 4430 of the remote device. In some embodiments, enlargement of the region of interest in the local display and/or the remote display causes one or both mobile devices or their cameras to modify one or more of their other operations, as described further below.
第四阶段4420显示在感兴趣区域的标识已完成之后的UI 4400。在这个例子中,一旦感兴趣区域在背景显示区4430中达到期望的比例后,那么用户通过停止用户的手指4445和4446的拖动,并且从设备的显示屏上移开手指4445和4446,来完成感兴趣区域的标识。作为该过程的结果,感兴趣区域占据了大部分的背景显示区4430。现在完成感兴趣区域的标识操作。The fourth stage 4420 displays the UI 4400 after the identification of the region of interest has been completed. In this example, once the region of interest has reached the desired proportions in the background display area 4430, the user stops the dragging of the user's fingers 4445 and 4446, and removes the fingers 4445 and 4446 from the display screen of the device. Complete the identification of the region of interest. As a result of this process, the region of interest occupies most of the background display area 4430 . The identification of the region of interest is now complete.
上面的一些例子举例说明用户如何识别视频中的感兴趣区域,以提高视频中的所选感兴趣区域内的图像质量(例如,通过增大对视频的感兴趣区域编码的比特率)。在一些实施例中,识别视频中的感兴趣区域导致移动设备的图像处理操作,比如曝光、比例缩放、聚焦等的变化。例如,识别视频中的感兴趣区域会导致视频会议管理器1604不同地比例缩放和合成视频的图像(例如,识别要变焦的感兴趣区域)。Some of the examples above illustrate how a user can identify a region of interest in a video to improve image quality within the selected region of interest in the video (eg, by increasing the bitrate for encoding the region of interest in the video). In some embodiments, identifying the region of interest in the video results in changes in the mobile device's image processing operations, such as exposure, scaling, focus, and the like. For example, identifying an area of interest in a video may cause videoconferencing manager 1604 to scale and composite images of the video differently (eg, identifying an area of interest to zoom in).
在其它实施例中,识别视频中的感兴趣区域导致移动设备的照相机的操作的变化(例如,帧速率、变焦、曝光、比例缩放、聚焦等)。在另外的其它实施例中,识别视频中的感兴趣区域导致移动设备的编码操作的变化,比如向识别的区域分配更多的比特、比例缩放等等。另外,尽管上面说明的示例ROI标识操作只会对移动设备或其照相机造成上述修改中的一种修改,不过在一些其它实施例中,ROI标识操作会对移动设备或其照相机的操作造成多于一种的修改。另外,在一些实施例中,图42-44的显示区1155的布局和上面说明的图12的显示区1155的布局相同。In other embodiments, identifying the region of interest in the video results in a change in the operation of the mobile device's camera (eg, frame rate, zoom, exposure, scaling, focus, etc.). In yet other embodiments, identifying regions of interest in the video results in changes to the mobile device's encoding operations, such as allocating more bits to the identified regions, scaling, and the like. Additionally, while the example ROI identification operations described above cause only one of the aforementioned modifications to the mobile device or its camera, in some other embodiments the ROI identification operation causes more than one of the above modifications to the operation of the mobile device or its camera. A kind of modification. Additionally, in some embodiments, the layout of the display area 1155 of FIGS. 42-44 is the same as the layout of the display area 1155 of FIG. 12 described above.
B.切换照相机B. Switch camera
一些实施例提供在视频会议期间,切换照相机(即,改变拍摄图像的照相机)的方法。不同的实施例提供实现切换照相机操作的不同方法。一些实施例提供由双照相机移动设备执行的切换该设备的照相机(即,本地切换)的方法,而其它实施例为双照相机移动设备提供指令视频会议中的另一个双照相机移动设备切换所述另一个设备的照相机(即,远程切换)的方法。除此之外的其它实施例同时提供进行本地切换和远程切换的方法。IV.B.1节将说明在双照相机移动设备上进行本地切换照相机操作的处理。IV.B.2节将说明在双照相机移动设备上进行远程切换照相机操作的处理。Some embodiments provide a method of switching cameras (ie, changing which camera captures an image) during a video conference. Different embodiments provide different methods of implementing switching camera operations. Some embodiments provide a method performed by a dual-camera mobile device for switching the device's camera (i.e., local switching), while other embodiments provide for a dual-camera mobile device to instruct another dual-camera mobile device in a video conference to switch the other camera. A method for a device's camera (i.e., remote switching). Other embodiments besides this provide methods for both local handover and remote handover. Section IV.B.1 will describe the handling of switching camera operations locally on a dual-camera mobile device. Section IV.B.2 will describe the handling of remote switching camera operations on a dual-camera mobile device.
1.本地切换照相机1. Switch camera locally
图45图解说明一些实施例在本地双照相机移动设备执行的,在与包括至少一部照相机的远程移动设备的视频会议期间,在本地设备的两部照相机之间进行切换的处理4500。在一些实施例中,处理4500由图16中所示的视频会议管理器1604执行。为了说明起见,下面的讨论将把本地双照相机移动设备的一部照相机称为照相机1,把本地双照相机移动设备的另一部照相机称为照相机2。Figure 45 illustrates a process 4500 performed by some embodiments at a local dual camera mobile device to switch between the local device's two cameras during a video conference with a remote mobile device that includes at least one camera. In some embodiments, process 4500 is performed by video conference manager 1604 shown in FIG. 16 . For purposes of illustration, the following discussion will refer to one camera of the local dual camera mobile device as camera 1 and the other camera of the local dual camera mobile device as camera 2 .
通过在本地双照相机移动设备和远程移动设备之间开始(在4505)视频会议,开始处理4500。随后,处理4500把来自本地双照相机移动设备的当前所选照相机(例如,照相机1)的视频图像发送给(在4510)远程移动设备,以便在远程移动设备上显示。在4510,处理4500还根据所述视频图像和它从远程移动设备接收的视频图像,产生和显示合成图像。Process 4500 begins by initiating (at 4505) a video conference between the local dual camera mobile device and the remote mobile device. Process 4500 then sends (at 4510 ) the video image from the currently selected camera (eg, Camera 1 ) of the local dual camera mobile device to the remote mobile device for display on the remote mobile device. At 4510, process 4500 also generates and displays a composite image based on the video image and the video image it received from the remote mobile device.
处理4500随后确定(在4515)是否接收到结束视频会议的请求。如上所述,在一些实施例中,可以应本地双照相机移动设备的用户的请求(例如,通过本地双照相机移动设备的用户界面),或者应远程移动设备的用户的请求(例如,通过远程移动设备的用户界面),结束视频会议。当处理4500接收到结束视频会议的请求时,处理4500结束。Process 4500 then determines (at 4515) whether a request to end the video conference has been received. As noted above, in some embodiments, the local dual-camera mobile device user's request (e.g., through the user interface of the local dual-camera mobile device), or at the request of the user of the remote mobile device (e.g., via a remote mobile device user interface), end the video conference. Process 4500 ends when process 4500 receives a request to end the video conference.
当处理4500未接收到结束视频会议的请求时,处理4500随后确定(在4520)本地双照相机移动设备的用户是否已指令该本地设备切换用于视频会议的照相机。当处理4500确定(在4520)所述本地设备未被指令切换照相机时,处理4500返回操作4510。不过,当处理4500确定(在4520)所述本地设备已被指令切换照相机时,处理4500进入操作4525。When process 4500 does not receive a request to end the video conference, process 4500 then determines (at 4520) whether the user of the local dual camera mobile device has instructed the local device to switch cameras for the video conference. When process 4500 determines (at 4520) that the local device has not been instructed to switch cameras, process 4500 returns to operation 4510. However, when process 4500 determines (at 4520) that the local device has been instructed to switch cameras, process 4500 proceeds to operation 4525.
在4525,处理4500向远程移动设备发送指出本地双照相机移动设备要切换照相机的通知。在一些实施例中,处理4500通过如上所述,与音频通道和视频通道一起由VTP管理器3125多路复用的视频会议控制通道发送所述通知。At 4525, process 4500 sends a notification to the remote mobile device indicating that the local dual camera mobile device is to switch cameras. In some embodiments, process 4500 sends the notification over a videoconferencing control channel multiplexed by VTP manager 3125 along with audio and video channels as described above.
在发送其通知之后,处理4500进行(在4530)切换照相机操作。在一些实施例中,进行(在4530)切换照相机操作包括指令CIPU停止用照相机1拍摄视频图像,开始用照相机2拍摄视频图像。这些指令可以仅仅指令CIPU切换捕获来自与照相机2关联的像素阵列的图像,并开始处理这些图像。另一方面,在一些实施例中,给CIPU的指令可以伴随一组初始化参数,所述一组初始化参数指令CIPU:(1)根据特定的一组设置操作照相机2,(2)以特定的帧速率捕获由照相机2产生的视频,和/或(3)根据特定的一组设置(例如,分辨率等)处理来自照相机2的视频图像。After sending its notification, process 4500 proceeds (at 4530) to switch camera operations. In some embodiments, performing (at 4530) a switch camera operation includes instructing the CIPU to stop capturing video images with camera 1 and begin capturing video images with camera 2. These instructions may simply instruct the CIPU to switch to capturing images from the pixel array associated with camera 2, and to begin processing these images. On the other hand, in some embodiments, the instructions to the CIPU may be accompanied by a set of initialization parameters that instruct the CIPU to: (1) operate camera 2 according to a particular set of settings, (2) operate at a particular frame The rate captures video produced by camera 2, and/or (3) processes video images from camera 2 according to a particular set of settings (eg, resolution, etc.).
在一些实施例中,切换照相机指令(在4530)还包括把未使用的照相机切换成如上所述的第四种工作功率模式的指令。在这个例子中,切换照相机指令包括给照相机2的、切换到其第四种工作功率模式的指令。另外,切换照相机指令还包括给照相机1的、从其第四种工作功率模式切换到另一种工作功率模式,比如第一种工作功率模式,以节省电力,或者切换到第三种工作功率模式,使得当被要求拍摄图像时,它能够快速切换到第四种工作功率模式,并开始拍摄图像的指令。切换照相机操作4530还涉及合成由本地双照相机移动设备的照相机2拍摄的图像(而不是由照相机1拍摄的图像)和从远程移动设备接收的图像,以便在双照相机移动设备上显示。In some embodiments, the instruction to switch cameras (at 4530) also includes instructions to switch unused cameras to a fourth operating power mode as described above. In this example, the switch camera command includes a command to camera 2 to switch to its fourth operating power mode. In addition, the switching camera instruction also includes switching from its fourth working power mode to another working power mode, such as the first working power mode, for the camera 1 to save power, or switching to the third working power mode , so that when it is required to take an image, it can quickly switch to the fourth working power mode and start to take the instruction of the image. Switch camera operation 4530 also involves compositing images captured by camera 2 of the local dual camera mobile device (rather than images captured by camera 1 ) and images received from the remote mobile device for display on the dual camera mobile device.
在4530指令切换照相机之后,处理4500在本地双照相机移动设备上进行(在4535)切换照相机动画,以显示在来自照相机1的图像的显示和来自照相机2的图像的显示之间的转变。在本地双照相机移动设备上的切换照相机动画之后,处理4500循环经过操作4510-4520,直到接收到结束视频会议请求或者新的切换照相机请求为止。After commanding a switch camera at 4530, process 4500 performs (at 4535) a switch camera animation on the native dual camera mobile device to show the transition between the display of the image from camera 1 and the display of the image from camera 2. Following the switch camera animation on the native dual camera mobile device, process 4500 loops through operations 4510-4520 until an end video conference request or a new switch camera request is received.
图46图解说明一些实施例如何允许通过双照相机移动设备的UI1105请求切换照相机操作,和这些实施例如何动画演示切换照相机操作的一个例子。图46按照该设备的UI 1105的八个不同的操作阶段4610、4615、4620、4625、4630、4635、4640和4645,图解说明切换照相机操作。UI 1105的前四个阶段图解说明接收用户的切换照相机请求的例子。在本发明的一些实施例中,该设备的用户具有产生这种请求的其它机制。Figure 46 illustrates how some embodiments allow a switch camera operation to be requested through the UI 1105 of a dual camera mobile device, and an example of how these embodiments animate the switch camera operation. 46 illustrates switching camera operations in terms of eight different operational stages 4610, 4615, 4620, 4625, 4630, 4635, 4640, and 4645 of the UI 1105 of the device. The first four stages of UI 1105 illustrate an example of receiving a user's request to switch cameras. In some embodiments of the invention, the user of the device has other mechanisms for generating such requests.
第一阶段4610和图11的UI 1105的第一阶段1130相同,它表示在建立视频会议之后的UI 1105。在这个阶段,UI 1105显示包括两个视频显示的PIP显示:来自远程照相机的较大的背景显示,和来自本地照相机的较小的前景插入显示。在这个例子中,背景主显示区1170呈现一位女士的视频,在这个例子中,所述女士被假定为由远程设备拍摄其视频的女士,而前景插入显示区1160呈现一位男士的视频,在这个例子中,所述男士被假定为由本地设备的正面照相机拍摄其视频的男士。The first stage 4610 is the same as the first stage 1130 of the UI 1105 of FIG. 11, which represents the UI 1105 after the video conference is established. At this stage, the UI 1105 displays a PIP display that includes two video displays: a larger background display from the remote camera, and a smaller foreground inset display from the local camera. In this example, the background main display area 1170 presents a video of a woman, who in this example is assumed to be the woman whose video was captured by the remote device, while the foreground inset display area 1160 presents a video of a man, In this example, the man is assumed to be the man whose video was captured by the local device's front camera.
第二阶段4615随后显示通过UI 1105的PIP显示区1180的选择,开始切换照相机操作。如图所示,通过把用户的手指4670放在PIP显示1180上,实现所述选择。第三阶段4620显示包括用于在视频会议期间,请求在本地设备4600的照相机间进行切换的可选UI项目4675(例如,切换照相机按钮4675)的UI 1105。第四阶段4625图解说明在本地设备4600的用户选择(例如,通过单指轻点)可选UI项目4675之后,和在通过可选UI项目4675的突出显示指出这种选择之后的UI 1105。通过选择该可选UI项目4675,用户指令设备4600在视频会议期间,从设备4600的正面照相机切换到设备4600的背面照相机。在其中设备4600的背面照相机拍摄视频的其它例子中,用户对可选UI项目4675的选择会指令设备4600从设备4600的背面照相机切换到设备4600的正面照相机。在第四阶段之后,视频会议管理器向CIPU发送指令,以及远程设备开始切换照相机操作。The second stage 4615 then displays selection via the PIP display area 1180 of the UI 1105 to begin switching camera operations. The selection is made by placing the user's finger 4670 on the PIP display 1180 as shown. The third stage 4620 displays the UI 1105 including a selectable UI item 4675 (e.g., switch camera button 4675) for requesting to switch between cameras of the local device 4600 during the video conference. The fourth stage 4625 illustrates the UI 1105 after the user of the local device 4600 selects (e.g., by single-finger tapping) the selectable UI item 4675, and after such selection is indicated by highlighting of the selectable UI item 4675. By selecting this selectable UI item 4675, the user instructs the device 4600 to switch from the front camera of the device 4600 to the back camera of the device 4600 during the video conference. In other examples where the back camera of device 4600 captures video, user selection of selectable UI item 4675 would instruct device 4600 to switch from the back camera of device 4600 to the front camera of device 4600. After the fourth phase, the videoconferencing manager sends an instruction to the CIPU, and the remote device starts switching camera operations.
UI 1105的后四个阶段4630、4635、4640和4645图解说明本地设备上的切换照相机动画的例子。该动画意图造成从本地设备的正面照相机和背面照相机拍摄的视频被并发地显示在观察窗格的正反两面上的印象,在任意时间,所述观察窗格只能够让用户看到其正反两面之一。当在视频会议中间请求切换照相机时,使该观察窗格仿佛围绕垂直轴旋转,使得在观察窗格的先前向用户显示一部照相机的视频的一个侧面上呈现的一部照相机的视频转动离开用户,直到它被观察窗格的另一个侧面代替为止,所述另一个侧面显示另一部照相机的视频。这种感受到的观察窗格的旋转动画和现象是通过(1)在用于一部照相机的显示区中,逐渐缩小来自该部照相机的视频图像,并对所述视频图像应用透视校正操作,随后(2)在所述显示区中,逐渐扩大来自另一部照相机的视频图像,并减小对所述视频图像的透视校正操作实现的。The last four stages 4630, 4635, 4640, and 4645 of the UI 1105 illustrate examples of switching camera animations on the local device. The animation is intended to give the impression that video captured from the local device's front and back cameras is displayed concurrently on both the front and back sides of the viewing pane, which at any one time only allows the user to see its front and back sides. One of two sides. When a camera switch is requested in the middle of a videoconference, rotate the viewing pane as if about a vertical axis such that a video from a camera presented on a side of the viewing pane that was previously showing video from a camera to the user rotates away from the user , until it is replaced by the other side of the viewing pane, which shows video from another camera. This perceived rotation animation and phenomenon of the viewing pane is achieved by (1) zooming out, in the display area for a camera, of the video image from that camera and applying a perspective correction operation to said video image, Then (2) in the display area, gradually enlarge the video image from the other camera and reduce the effect of the perspective correction operation on the video image.
因此,第五阶段4630图解说明围绕垂直轴4682的“观察窗格的旋转”的开始。为了给出观察窗格的旋转现象,UI 1105减小了视频显示区1160中的正面照相机的视频图像的大小,并应用了透视操作,以显得与视频图像的左侧相比,视频图像的右侧更远离用户。Thus, the fifth stage 4630 illustrates the initiation of a “rotation of the viewing pane” about the vertical axis 4682 . To give the viewing pane a rotation phenomenon, the UI 1105 reduces the size of the video image of the front camera in the video display area 1160 and applies a perspective operation so that the right side of the video image appears smaller than the left side of the video image The side is further away from the user.
第六阶段4635图解说明观察窗格已旋转90°,使得用户只能看到窗格的边缘,如显示在显示区1160的中央的细线4686所示。第七阶段4640图解说明观察窗格继续旋转,使得观察窗格4688的背面现在逐渐出现在用户面前,以显示从用户的背面照相机拍摄的视频。同样,在一些实施例中,旋转动画的这种表现是通过减小背面照相机的视频图像在视频显示区4688中的大小,并应用透视操作,以使得与视频图像的右侧相比,视频图像的左侧更远离用户来实现的。The sixth stage 4635 illustrates that the viewing pane has been rotated 90° such that the user can only see the edges of the pane, as shown by the thin line 4686 displayed in the center of the display area 1160 . The seventh stage 4640 illustrates that the viewing pane continues to rotate such that the back of the viewing pane 4688 now gradually appears in front of the user to display the video captured from the user's back camera. Also, in some embodiments, the rotation animation is performed by reducing the size of the video image of the rear camera in the video display area 4688 and applying a perspective operation so that the video image is larger than the right side of the video image. The left side is further away from the user to achieve.
第八阶段4645图解说明表示切换照相机操作的动画的完成。具体地说,这个阶段在显示区1160中显示由设备4600的背面照相机拍摄的汽车的视频图像。The eighth stage 4645 illustrates the completion of the animation representing the switch camera operation. Specifically, this stage displays in the display area 1160 a video image of the car captured by the rear camera of the device 4600 .
上面参考图46说明的例子通过切换照相机用户界面调用切换照相机操作。其它实施例不同地调用切换照相机操作。例如,一些实施例通过使切换照相机可选UI项目永久地显示在视频会议期间的UI,例如图47的UI 1105上,调用切换照相机操作。在图47中,切换照相机按钮1289连同静音按钮1285和结束会议按钮1287一起被显示在显示区1155中。显示区1155的布局和上面参考图12说明的显示区1155的布局相同。The example described above with reference to FIG. 46 invokes the switch camera operation through the switch camera user interface. Other embodiments invoke the switch camera operation differently. For example, some embodiments invoke the toggle camera operation by having the toggle camera selectable UI item permanently displayed on a UI during a video conference, such as UI 1105 of FIG. 47 . In FIG. 47 , a switch camera button 1289 is displayed in the display area 1155 together with a mute button 1285 and an end meeting button 1287 . The layout of the display area 1155 is the same as that of the display area 1155 explained above with reference to FIG. 12 .
图47按照六个阶段:4610、4790、4630、4635、4640和4645,图解说明UI 1105的切换照相机操作。图47的第一阶段4610类似于图46的第一阶段4610,除了显示区1155的布局显示静音按钮1285,结束会议按钮1287和切换照相机按钮1289,而不是单一的结束会议按钮之外。第二阶段4790图解说明在本地设备4600的用户选择(例如,通过利用手指4670的单指轻点)切换照相机可选UI项目1289之后的UI 1105。在这个例子中,通过选择可选UI项目1289,用户指令设备4600在视频会议期间,从设备4600的正面照相机切换到设备4600的背面照相机。图47的后四个阶段与图46的后四个阶段类似,除了显示区1155的布局和上面在第一阶段4610中说明的布局相同之外,于是不再进一步说明,以避免用不必要的详情模糊本发明的描述。Figure 47 illustrates the switch camera operation of the UI 1105 in terms of six phases: 4610, 4790, 4630, 4635, 4640, and 4645. The first stage 4610 of FIG. 47 is similar to the first stage 4610 of FIG. 46, except that the layout of the display area 1155 shows a mute button 1285, an end meeting button 1287, and a switch camera button 1289 instead of a single end meeting button. The second stage 4790 illustrates the UI 1105 after a user selection of the local device 4600 (eg, by a single-finger tap with the finger 4670) toggles the camera selectable UI item 1289. In this example, by selecting selectable UI item 1289, the user instructs device 4600 to switch from the front camera of device 4600 to the back camera of device 4600 during the video conference. The last four stages of FIG. 47 are similar to the last four stages of FIG. 46, except that the layout of the display area 1155 is the same as that described above in the first stage 4610, so no further description is given to avoid using unnecessary The details obscure the description of the invention.
在一些实施例中,当远程移动设备接收到来自本地双照相机移动设备的不同照相机的图像(即,本地双照相机移动设备切换照相机)时,远程移动设备也进行切换照相机动画,以显示在来自双照相机移动设备的一部照相机的图像的显示和来自本地双照相机移动设备的另一部照相机的图像的显示之间的转变。图48按照UI 4805的五个操作阶段4810、4815、4820、4825和4830,图解说明这种切换照相机动画之一的例子。图48表示远程移动设备4800上的示例切换照相机动画。各个操作阶段与图46的示例动画相同,除了是对显示在显示区4835中的图像进行动画之外,显示区4835是在远程移动设备4800上显示来自本地双照相机移动设备的图像的地方。因而,显示在显示区4835中的男士的图像被动画演示成仿佛在位于显示区4850中央的垂直轴4855上旋转180°,以表示在显示区4835中的男士的图像的显示和汽车4870的图像的显示之间的转变。一些实施例的切换照相机动画的实现和上面说明的动画的实现相同。In some embodiments, when the remote mobile device receives an image from a different camera of the local dual-camera mobile device (i.e., the local dual-camera mobile device switches cameras), the remote mobile device also performs a switch camera animation to display Camera Transition between the display of an image from one camera of a mobile device and the display of an image from the other camera of a native dual camera mobile device. FIG. 48 illustrates an example of one of such switching camera animations in terms of five operational stages 4810, 4815, 4820, 4825, and 4830 of the UI 4805. FIG. 48 shows an example switching camera animation on a remote mobile device 4800. The various stages of operation are the same as the example animation of FIG. 46 , except that the images displayed in display area 4835 , which is where images from the local dual camera mobile device are displayed on remote mobile device 4800 , are animated. Thus, the image of the man displayed in the display area 4835 is animated as if rotated 180° on the vertical axis 4855 centrally located in the display area 4850 to represent the display of the image of the man in the display area 4835 and the image of the car 4870 to switch between displays. The implementation of the switching camera animation in some embodiments is the same as the animation described above.
上面的例子举例说明在具有特定用户界面布局的远程设备上的切换照相机动画。其它实施例可在具有不同的用户界面布局的远程设备上实现该切换照相机动画。例如,图49图解说明具有不同的用户界面布局4805的远程设备4800的一个这种例子。特别地,图49的UI 4805具有包括在显示区1155中的静音按钮1285、结束会议按钮1287和切换照相机按钮1289,在视频会议期间,所述显示区1155水久地显示在合成显示4850的一侧。上面参考图48说明了这三个按钮的布局。除了不同的用户界面布局之外,图49的五个阶段4810、4815、4820、4825和4830与图48的五个阶段4810、4815、4820、4825和4830相同。The above example illustrates a switching camera animation on a remote device with a specific UI layout. Other embodiments may implement this switching camera animation on remote devices with different user interface layouts. For example, FIG. 49 illustrates one such example of a remote device 4800 having a different user interface layout 4805. In particular, the UI 4805 of FIG. 49 has a mute button 1285, an end meeting button 1287, and a switch camera button 1289 included in the display area 1155 that is permanently displayed to the side of the composite display 4850 during a video conference. . The layout of these three buttons is described above with reference to FIG. 48 . The five stages 4810, 4815, 4820, 4825, and 4830 of FIG. 49 are identical to the five stages 4810, 4815, 4820, 4825, and 4830 of FIG. 48, except for a different user interface layout.
2.远程切换照相机2. Switch cameras remotely
图50图解说明在视频会议期间,切换远程双照相机设备的两部照相机的处理5000。处理5000由包括至少一部照相机的设备的视频会议管理器执行。在下面的讨论中,用户通过其指令远程切换照相机的设备被称为本地设备,而切换其两部照相机的设备被称为远程设备。另外,在下面的讨论中,远程设备被认为在其正面照相机(或者说照相机1)和其背面照相机(或者说照相机2)之间进行切换。FIG. 50 illustrates a process 5000 of switching the two cameras of a remote dual camera device during a video conference. Process 5000 is performed by a videoconferencing manager of a device that includes at least one camera. In the following discussion, a device through which a user commands to remotely switch cameras is referred to as a local device, and a device that switches its two cameras is referred to as a remote device. Also, in the following discussion, the remote device is considered to be switching between its front camera (or camera 1 ) and its back camera (or camera 2 ).
下面参考图51、52、53和54,说明图50的处理5000。图51图解说明本地设备5100的UI 5105,在视频会议期间,用户通过本地设备5100请求远程设备在其两部照相机之间进行切换。图51图解说明UI 5105的八个不同的操作阶段5110、5115、5120、5125、5130、5135、5140和5145。图54图解说明从本地设备5100接收切换照相机请求的远程设备5400的UI 5405。图54图解说明UI 5405的六个不同的操作阶段5410、5415、5420、5425、5430和5435。Referring now to Figures 51, 52, 53 and 54, the process 5000 of Figure 50 will be described. Figure 51 illustrates the UI 5105 of a local device 5100 through which a user requests a remote device to switch between its two cameras during a video conference. FIG. 51 illustrates eight different operational stages 5110, 5115, 5120, 5125, 5130, 5135, 5140, and 5145 of the UI 5105. 54 illustrates a UI 5405 of a remote device 5400 receiving a switch camera request from a local device 5100. FIG. 54 illustrates six different operational stages 5410, 5415, 5420, 5425, 5430, and 5435 of the UI 5405.
如图50中所示,通过在本地设备和远程设备之间启动(在5005)视频会议,开始处理5000。处理5000随后(在5010)接收来自每个设备的一部照相机(例如,来自每个设备的正面照相机)的图像,根据这些图像生成视频会议的合成图像。在5010,处理5000还把来自本地设备的视频图像发送给远程设备。As shown in Figure 50, process 5000 begins by initiating (at 5005) a video conference between a local device and a remote device. Process 5000 then receives (at 5010) images from one camera of each device (eg, from each device's front camera) from which a composite image for the videoconference is generated. At 5010, process 5000 also sends video images from the local device to the remote device.
随后,处理5000确定(在5015)是否接收到结束视频会议的请求。如上所述,在一些实施例中,可应本地或远程设备的用户的请求,结束视频会议。当处理5000接收到结束视频会议的请求时,处理5000结束。Process 5000 then determines (at 5015) whether a request to end the video conference has been received. As noted above, in some embodiments, a video conference may end at the request of a user of a local or remote device. Process 5000 ends when process 5000 receives a request to end the video conference.
当处理5000未接收到结束视频会议的请求时,处理5000随后确定(在5020)在其上执行处理5000的设备的用户(即,本地设备的用户)是否指令该设备请求远程设备在其用于视频会议的照相机之间切换。当处理5000确定(在5020)它未被指令发起远程切换照相机时,处理5000返回操作5010。当处理5000确定(在5020)它已被指令发起远程切换照相机时,处理5000进入下面进一步说明的操作5025。When process 5000 does not receive a request to end the videoconference, process 5000 then determines (at 5020) whether the user of the device on which process 5000 is executing (i.e., the user of the local device) has instructed the device to request that the remote device Switch between cameras for video conferencing. When process 5000 determines (at 5020 ) that it has not been instructed to initiate a remote switch camera, process 5000 returns to operation 5010 . When process 5000 determines (at 5020) that it has been instructed to initiate a remote switch camera, process 5000 proceeds to operation 5025, described further below.
图51的UI 5105的前四个阶段5110、5115、5120和5125图解说明接收用户的切换远程设备的照相机的请求的例子。第一和第二阶段5100和5115与图46的第一和第二阶段4610和4615相同。第三阶段5120和第三阶段4620相同,除了第三阶段5120不仅包括请求本地设备5100切换照相机的可选UI项目5175,而且包括请求远程设备5100切换照相机的可选UI项目5180之外。第四阶段5125图解说明本地设备5100的用户选择请求远程设备切换照相机的UI项目5180(例如,通过可选UI项目5180的单指轻点5170)。通过突出显示可选UI项目5180,指出所述选择。图51表示进行这种操作的一个例子,不过其它实施例可不同地进行请求远程设备切换照相机的操作。The first four stages 5110, 5115, 5120, and 5125 of the UI 5105 of FIG. 51 illustrate an example of receiving a user's request to switch the camera of a remote device. The first and second stages 5100 and 5115 are the same as the first and second stages 4610 and 4615 of FIG. 46 . The third stage 5120 is the same as the third stage 4620, except that the third stage 5120 includes not only an optional UI item 5175 requesting the local device 5100 to switch cameras, but also an optional UI item 5180 requesting the remote device 5100 to switch cameras. The fourth stage 5125 illustrates the user of the local device 5100 selecting a UI item 5180 requesting the remote device to switch cameras (eg, via a single finger tap 5170 of the optional UI item 5180). The selection is indicated by highlighting selectable UI item 5180 . Figure 51 shows one example of doing this, although other embodiments may do it differently to request the remote device to switch cameras.
上面参考图51说明的例子通过远程切换照相机用户界面,调用远程切换照相机操作。其它实施例不同地调用远程切换照相机操作。例如,一些实施例通过使切换照相机可选UI项目永久地显示在视频会议期间的UI,例如图52的UI 5105上,调用切换照相机操作。在图52中,远程切换照相机按钮5288连同静音按钮5282、结束会议按钮5284和本地切换照相机按钮5286一起被显示在显示区1155中。The example described above with reference to FIG. 51 invokes the remote switch camera operation through the remote switch camera user interface. Other embodiments invoke the remote switch camera operation differently. For example, some embodiments invoke the toggle camera operation by having the toggle camera selectable UI item permanently displayed on a UI during a video conference, such as UI 5105 of FIG. 52 . In FIG. 52 , a remote switch camera button 5288 is displayed in the display area 1155 along with a mute button 5282 , an end meeting button 5284 and a local switch camera button 5286 .
图52按照六个不同的阶段5110、5290、5130、5135、5140和5145,图解说明设备5100的UI 5105的远程切换照相机操作。图52的第一阶段5110类似于图51的第一阶段5110,除了显示区1155的布局显示静音按钮5282、本地切换照相机按钮5286、远程切换照相机按钮5288和结束会议按钮5284之外。第二阶段5290图解说明在本地设备5100的用户选择(例如,通过单指轻点5170)远程切换照相机可选UI项目5288之后的UI 1105。图52的后四个阶段类似于图51的后四个阶段,除了显示区1155的布局和上面在第一阶段5110中描述的布局相同之外,于是不再进一步说明,以避免用不必要的详情模糊本发明的描述。Figure 52 illustrates the remote switch camera operation of the UI 5105 of the device 5100 in six different stages 5110, 5290, 5130, 5135, 5140, and 5145. The first stage 5110 of FIG. 52 is similar to the first stage 5110 of FIG. 51 , except that the layout of the display area 1155 shows a mute button 5282 , a local toggle camera button 5286 , a remote toggle camera button 5288 and an end meeting button 5284 . The second stage 5290 illustrates the UI 1105 after the user of the local device 5100 selects (e.g., via a single-finger tap 5170) the remote switch camera selectable UI item 5288. The last four stages of FIG. 52 are similar to the last four stages of FIG. 51, except that the layout of the display area 1155 is the same as that described above in the first stage 5110, so no further description is given to avoid unnecessary unnecessary The details obscure the description of the invention.
一些实施例提供和图52中图解说明的布局类似的布局,除了远程切换照相机可选UI项目显示在PIP显示5165中,而不是显示在显示区1155中之外。图53图解说明这样的布局5105。具体地说,图53表示具有远程切换照相机可选UI项目5180的PIP显示,和只具有静音按钮5282、本地切换照相机按钮5286和结束会议按钮5284的显示区1155。Some embodiments provide a layout similar to the layout illustrated in FIG. Figure 53 illustrates such a layout 5105. Specifically, FIG. 53 shows a PIP display with a remote toggle camera selectable UI item 5180, and a display area 1155 with only a mute button 5282, a local toggle camera button 5286, and an end meeting button 5284.
如上所述,当用户请求远程切换照相机时,处理5000进入操作5025。在操作5025,处理5000把切换照相机的请求发送给远程设备。在一些实施例中,该请求是通过如上所述,与音频通道和视频通道一起被VTP管理器多路复用的视频会议控制通道发送的。As described above, process 5000 proceeds to operation 5025 when a user requests to switch cameras remotely. At operation 5025, process 5000 sends a request to switch cameras to the remote device. In some embodiments, the request is sent over a videoconferencing control channel multiplexed by the VTP manager along with audio and video channels as described above.
在切换照相机的请求被接收之后,处理5000确定(在5030)远程设备是否响应了切换照相机的请求。在一些实施例中,远程设备自动通过视频会议控制通道,向本地设备发送接受响应(即,发送确认)。不过,在其它实施例中,远程设备的用户必须通过远程设备的用户界面接受该请求。After the request to switch cameras is received, process 5000 determines (at 5030) whether the remote device responded to the request to switch cameras. In some embodiments, the remote device automatically sends an acceptance response (ie, sends an acknowledgment) to the local device over the video conference control channel. However, in other embodiments, the user of the remote device must accept the request through the remote device's user interface.
图54的UI 5405的前两个阶段5410和5415图解说明远程用户接受切换远程设备5400的照相机的请求的例子。第一阶段5410显示(1)用于显示把所述请求通知远程用户的文本的显示区5440,(2)用于接受切换远程设备的照相机的请求的可选UI项目5465(例如,“允许(Allow)”按钮5465),和(3)用于拒绝切换远程设备的照相机的请求的可选UI项目5470(例如,“拒绝(Reject)”按钮5470)。第二阶段5415随后图解说明在远程设备的用户选择(例如,通过单指轻点5480)用于接受切换照相机的请求的UI项目5465之后的UI 5405,通过突出显示可选UI项目5465,指示用户的所述选择。The first two stages 5410 and 5415 of the UI 5405 of FIG. 54 illustrate an example of the remote user accepting a request to switch the camera of the remote device 5400. The first stage 5410 displays (1) a display area 5440 for displaying text notifying the remote user of the request, (2) an optional UI item 5465 for accepting the request to toggle the remote device's camera (e.g., "Allow( "Allow" button 5465), and (3) an optional UI item 5470 for denying a request to switch the remote device's camera (eg, "Reject" button 5470). The second stage 5415 then illustrates the UI 5405 after the user of the remote device selects (e.g., by single-finger tap 5480) the UI item 5465 for accepting the request to switch cameras, by highlighting the optional UI item 5465, instructing the user of said selections.
当处理5000确定(在5030)它未接收到来自远程设备的响应时,处理5000确定(在5035)是否接收到结束视频会议的请求。如果是,那么处理5000结束。否则,处理接收(在5040)来自远程设备和本地设备的当前所用照相机的图像,根据这些图像产生视频会议的合成图像,把本地设备的视频图像传送给远程设备,以及随后返回操作5030。When process 5000 determines (at 5030) that it has not received a response from the remote device, process 5000 determines (at 5035) whether a request to end the video conference has been received. If yes, then process 5000 ends. Otherwise, the process receives (at 5040) images from the remote device and the currently used cameras of the local device, generates a composite image for the video conference from these images, transmits the local device's video image to the remote device, and then returns to operation 5030.
当处理5000确定(在5030)它接收到了来自远程设备的响应时,处理5000确定(在5045)远程设备是否接受切换照相机的请求。如果否,那么处理5000返回操作5010,继续接收来自另一个设备的所述照相机的图像。否则,处理5100接收(在5050)来自远程设备的另一部照相机的图像,随后在本地设备上进行(在5055)切换照相机动画,以显示先前利用的远程照相机的视频和当前利用的远程照相机的视频(即,在操作5050的接收图像)之间的转变。在操作5055之后,处理返回上面说明的操作5010。When process 5000 determines (at 5030) that it has received a response from the remote device, process 5000 determines (at 5045) whether the remote device accepts the request to switch cameras. If not, then process 5000 returns to operation 5010 to continue receiving images from the camera of another device. Otherwise, process 5100 receives (at 5050) an image from another camera of the remote device, followed by (at 5055) a switch camera animation on the local device to show video from the previously utilized remote camera and video from the currently utilized remote camera. Transitions between videos (ie, received images at operation 5050). After operation 5055, processing returns to operation 5010 explained above.
关于图51中的UI 5105图解说明的后四个操作阶段5130、5135、5140和5145图解说明本地设备5100上的这种远程切换照相机动画的一个例子。该示例动画与在图48的阶段4815、4820、4825和4830中图解说明的示例动画类似,除了图51在显示区5150中,显示用由远程设备的背面照相机拍摄的树的视频,替换由远程设备的正面照相机拍摄的女士的视频的动画之外。图52和图53的后四个阶段图解说明与图51中的动画相同的动画,除了图52和53的显示区1155包含与图51中的显示区1155不同的可选UI项目之外。The last four operational stages 5130, 5135, 5140, and 5145 illustrated with respect to UI 5105 in FIG. 51 illustrate one example of such a remote switching camera animation on the local device 5100. This example animation is similar to the example animation illustrated in stages 4815, 4820, 4825, and 4830 of FIG. 48, except that FIG. Outside the animation of the lady's video captured by the device's front camera. The last four stages of FIGS. 52 and 53 illustrate the same animation as that in FIG. 51 , except that display area 1155 of FIGS. 52 and 53 contains different selectable UI items than display area 1155 in FIG. 51 .
在一些实施例中,当远程设备切换照相机时,远程设备的UI也进行切换照相机动画,以显示两部照相机之间的转变。关于图54中的UI 5405图解说明的后四个操作阶段5420、5425、5430和5435图解说明当远程设备5400切换照相机时,显示在远程设备5400上的切换照相机动画的例子。该动画与在图46的阶段4630、4635、4640和4645中图解说明的动画类似,除了显示区5445中的动画用由远程设备5400的背面照相机拍摄的树的视频,替换由远程设备5400的正面照相机拍摄的女士的视频之外。In some embodiments, when the remote device switches cameras, the remote device's UI also performs a switch camera animation to show the transition between the two cameras. The last four operational stages 5420, 5425, 5430, and 5435 illustrated with respect to UI 5405 in FIG. 54 illustrate an example of a switch camera animation displayed on remote device 5400 when remote device 5400 switches cameras. This animation is similar to the animation illustrated in stages 4630, 4635, 4640, and 4645 of FIG. The camera captures the video of the lady outside.
如上所述,图46、47、48、49、51、52、53和54表示在用户界面上执行的切换照相机动画的各种例子。在一些实施例中,切换照相机动画导致相应双照相机移动设备的图像处理操作的变化,比如可由视频会议管理器1604和图像处理管理器1608执行的比例缩放、合成和透视失真。As mentioned above, Figures 46, 47, 48, 49, 51, 52, 53 and 54 represent various examples of switching camera animations performed on the user interface. In some embodiments, switching camera animations result in changes in image processing operations of the corresponding dual camera mobile device, such as scaling, compositing, and perspective distortion, which may be performed by video conference manager 1604 and image processing manager 1608 .
C.曝光调整C. Exposure adjustment
在双照相机移动设备和另一个移动设备之间的视频会议期间,不同的实施例提供调整由任意一个移动设备的照相机拍摄的图像的曝光的不同技术。一些实施例向双照相机移动设备的用户提供调整由另一个设备的照相机拍摄的图像的曝光的技术,而其它实施例向用户提供调整由双照相机移动设备的照相机拍摄的图像的曝光的技术。下面将详细说明一些示例性的例子。During a videoconference between a dual camera mobile device and another mobile device, different embodiments provide different techniques for adjusting the exposure of images captured by either mobile device's camera. Some embodiments provide a user of a dual-camera mobile device with techniques to adjust the exposure of an image captured by another device's camera, while other embodiments provide a user with a technique to adjust the exposure of an image captured by the camera of a dual-camera mobile device. Some illustrative examples are described in detail below.
图55图解说明在视频会议期间,在一些实施例的双照相机移动设备上进行远程曝光调整操作的处理5500。在下面的讨论中,用户通过其指令远程设备调整其曝光度的设备被称为本地设备。在一些实施例中,处理5500由本地设备的视频会议管理器执行。另外,将参考图56、57和58说明处理5500,图56、57和58举例说明本地设备的用户请求远程设备进行曝光调整操作的各种方式。Figure 55 illustrates a process 5500 for performing remote exposure adjustment operations on a dual camera mobile device of some embodiments during a video conference. In the following discussion, the device through which the user instructs the remote device to adjust its exposure is referred to as the local device. In some embodiments, process 5500 is performed by a video conferencing manager of the local device. Additionally, process 5500 will be described with reference to Figures 56, 57, and 58, which illustrate various ways in which a user of a local device may request an exposure adjustment operation from a remote device.
如图55中所示,通过在本地设备和远程设备之间启动(在5505)视频会议,开始处理5500。处理5500随后接收(在5510)来自远程设备的视频,以在本地设备的显示屏上显示。随后,处理5500确定(在5515)是否接收到结束视频会议的请求。如上所述,一些实施例能够从本地或远程设备的用户接收结束视频会议的请求。当处理5500接收到结束视频会议的请求时,处理5500结束。As shown in Figure 55, process 5500 begins by initiating (at 5505) a video conference between a local device and a remote device. Process 5500 then receives (at 5510) the video from the remote device for display on a display screen of the local device. Subsequently, process 5500 determines (at 5515) whether a request to end the video conference has been received. As noted above, some embodiments are capable of receiving a request to end a video conference from a user of a local or remote device. Process 5500 ends when process 5500 receives a request to end the video conference.
不过,当处理5500未接收到结束视频会议的请求时,处理5500随后确定(在5520)是否接收到调整远程设备的照相机的曝光的请求。当处理5500确定未接收到调整远程设备的照相机的曝光的请求时,处理5500返回操作5510,接收从远程设备拍摄的另外的视频。图56、57和58图解说明向用户提供产生这种请求的三个不同例子。在图56、57和58中,第一阶段5610、5710和5810都显示本地设备5600、5700和5800的PIP显示5625、5750和5835,PIP显示5625、5750和5835显示两个视频:由本地设备的照相机拍摄的视频,和由远程设备的照相机拍摄的另一个视频。在第一阶段5610、5710和5810中,背景显示5635、5760和5845中的男士较暗黑,指示该男士未被恰当曝光。However, when process 5500 does not receive a request to end the video conference, process 5500 then determines (at 5520) whether a request to adjust the exposure of the remote device's camera was received. When process 5500 determines that a request to adjust the exposure of the remote device's camera has not been received, process 5500 returns to operation 5510 to receive additional video captured from the remote device. Figures 56, 57 and 58 illustrate three different examples of providing a user with such a request. In Figures 56, 57 and 58, the first stage 5610, 5710 and 5810 all show the PIP displays 5625, 5750 and 5835 of the local devices 5600, 5700 and 5800, and the PIP displays 5625, 5750 and 5835 show two videos: A video captured by the camera of the remote device, and another video captured by the camera of the remote device. In the first stages 5610, 5710 and 5810, the man in the background display 5635, 5760 and 5845 is darker, indicating that the man is not properly exposed.
图56的第二阶段561图解说明通过选择远程设备的视频(例如,通过单击背景显示5635),本地设备5600的用户请求远程设备进行曝光调整的一种方式。按照这种方式,UI 5605自动使用户对由方框5645限定的感兴趣区域的选择与用户的指令远程设备对感兴趣区域进行曝光调整的期望关联起来,从而指令本地设备的视频会议管理器联系远程设备,以进行曝光调整操作。定义的感兴趣区域被远程设备用于曝光调整的计算。The second stage 561 of FIG. 56 illustrates one way in which the user of the local device 5600 requests the remote device to make an exposure adjustment by selecting the remote device's video (eg, by clicking on the background display 5635). In this manner, the UI 5605 automatically correlates the user's selection of the region of interest defined by block 5645 with the user's desire to instruct the remote device to make exposure adjustments to the region of interest, thereby instructing the videoconferencing manager of the local device to contact Remote device for exposure adjustment operations. The defined region of interest is used by the remote device for the calculation of exposure adjustments.
类似于图56的第二阶段5615,图57的第二阶段5715表示本地用户对远程设备的视频的选择,除了该选择指令UI 5705显示如第三阶段5720中所示的可选UI项目5770之外。第四阶段5725图解说明本地设备的用户选择可选UI项目5770,以指令远程设备如上所述进行曝光调整操作。Similar to the second stage 5615 of FIG. 56, the second stage 5715 of FIG. 57 represents the local user's selection of the remote device's video, except that the selection instructs the UI 5705 to display selectable UI items 5770 as shown in the third stage 5720 outside. The fourth stage 5725 illustrates the user of the local device selecting selectable UI item 5770 to instruct the remote device to perform exposure adjustment operations as described above.
图58的第二阶段5815类似于图57的第二阶段,不过代替用户对远程设备的视频的选择指令UI显示单一的可选UI项目,用户的选择指令UI 5805显示可选UI项目5855、5860、5865和580的菜单,如第三阶段5820中所示。可选UI项目包括“自动聚焦(Auto Focus)”项目5855、“自动曝光(Auto Exposure)”项目5860、“切换照相机(Switch Camera)”项目5865、和“取消(Cancel)”项目5870。在一些实施例中,“切换照相机”可选UI项目5865被用于请求本地切换照相机操作,而在其它实施例中,“切换照相机”可选UI项目5865被用于请求远程切换照相机操作。第四阶段5825图解说明用户选择“自动曝光,,项目5860,以指令远程设备如上所述进行曝光调整操作。The second stage 5815 of FIG. 58 is similar to the second stage of FIG. 57, but instead of the user's selection instruction UI displaying a single selectable UI item for the video of the remote device, the user's selection instruction UI 5805 displays selectable UI items 5855, 5860 , 5865 and 580 menus, as shown in the third stage 5820. Selectable UI items include "Auto Focus" item 5855, "Auto Exposure" item 5860, "Switch Camera" item 5865, and "Cancel" item 5870. In some embodiments, the "Toggle Camera" selectable UI item 5865 is used to request a local toggle camera operation, while in other embodiments, the "Toggle Camera" selectable UI item 5865 is used to request a remote toggle camera operation. The fourth stage 5825 illustrates the user selecting the "Auto Exposure," item 5860, to instruct the remote device to perform exposure adjustment operations as described above.
当处理5500确定(在5520)本地用户指令本地设备请求曝光调整操作时,处理5500通过视频会议控制通道向远程设备发送(在5525)命令,以调整由目前拍摄并向本地设备传送视频的照相机拍摄的视频的曝光。在操作5525之后,处理5500返回上面说明的操作5510。When process 5500 determines (at 5520) that the local user instructs the local device to request an exposure adjustment operation, process 5500 sends (at 5525) a command to the remote device over the video conferencing control channel to adjust the capture by the camera currently capturing and transmitting video to the local device. exposure of the video. After operation 5525, process 5500 returns to operation 5510 explained above.
在一些实施例中,在远程设备进行曝光调整操作之前,要求远程设备的用户提供许可,而在其它实施例中,当从本地设备接收到请求后,远程设备自动进行曝光调整操作。此外,在一些实施例中,一些视频会议功能由视频会议管理器1604实现。在一些这样的实施例中,视频会议管理器1604通过指令CIPU 1650调整正在使用的远程设备照相机的传感器的曝光设置,执行曝光调整操作。In some embodiments, the user of the remote device is required to provide permission before the remote device performs the exposure adjustment operation, while in other embodiments, the remote device performs the exposure adjustment operation automatically upon receiving a request from the local device. Additionally, in some embodiments, some videoconferencing functionality is implemented by the videoconferencing manager 1604 . In some of these embodiments, the video conference manager 1604 performs the exposure adjustment operation by instructing the CIPU 1650 to adjust the exposure setting of the sensor of the remote device camera being used.
图56、57和58的最后阶段5620、5730和5830更明亮地显示远程设备的视频,这指示该男士被恰当曝光。尽管图56、57和58提供接收校正远程设备的曝光的曝光调整请求的例子,不过一些实施例向本地设备的用户提供请求本地设备调整本地设备的照相机的曝光的方式。可与在图56、57和58中图解说明的请求远程设备调整其照相机的曝光的方式类似地产生这样的请求。The final stages 5620, 5730 and 5830 of Figures 56, 57 and 58 show the remote device's video brighter, which indicates that the man is properly exposed. While FIGS. 56, 57, and 58 provide examples of receiving an exposure adjustment request to correct a remote device's exposure, some embodiments provide a way for a user of a local device to request that the local device adjust the exposure of the local device's camera. Such a request may be generated similarly to the manner in which the remote device is requested to adjust the exposure of its camera illustrated in FIGS. 56 , 57 and 58 .
上面说明的图56-58表示用于进行曝光调整操作的几种用户界面。在一些实施例中,曝光调整操作能够导致双照相机移动设备的图像处理操作的改变,比如调用下面进一步详细说明的曝光调整处理5900。曝光调整操作还能够造成拍摄视频的双照相机移动设备的照相机的操作的改变,比如改变照相机的曝光度设置。Figures 56-58 described above show several user interfaces for performing exposure adjustment operations. In some embodiments, the exposure adjustment operation can result in a change in the image processing operation of the dual camera mobile device, such as invoking the exposure adjustment process 5900 described in further detail below. Exposure adjustment operations can also result in changes in the operation of the cameras of the dual-camera mobile device capturing video, such as changing the exposure settings of the cameras.
1.曝光调整方法1. Exposure adjustment method
图59概念地图解说明由一些实施例的图像处理管理器,比如图16中图解说明的图像处理管理器执行的曝光调整处理5900。在一些实施例中,处理5900是上面参考图55、56、57和58说明的曝光调整操作的一部分。在一些这样的实施例中,图像处理管理器1608执行处理5900,并通过向视频会议管理器1604发送指令调整照相机的曝光设置,所述视频会议管理器1604指令CIPU 1650调整照相机传感器405a或405b,如上所述。Figure 59 conceptually illustrates an exposure adjustment process 5900 performed by an image processing manager of some embodiments, such as the image processing manager illustrated in Figure 16 . In some embodiments, process 5900 is part of the exposure adjustment operations described above with reference to FIGS. 55 , 56 , 57 and 58 . In some such embodiments, the image processing manager 1608 performs the process 5900 and adjusts the exposure settings of the camera by sending an instruction to the video conferencing manager 1604 which instructs the CIPU 1650 to adjust the camera sensor 405a or 405b, as above.
在一些实施例中,处理5900由图9中所示的图像处理层930执行,而在其它实施例中,处理5900由图4中所示的统计引擎465执行。一些实施例对由视频会议中的(本地或远程)设备的照相机拍摄的图像进行处理5900,而其它实施例以图21中图解说明的处理2100的一部分(例如,操作2110)的形式执行处理5900。一些实施例进行曝光调整操作,以曝光由双照相机移动设备的照相机拍摄的不是太亮,也不是太暗的图像。换句话说,执行处理5900,以按照使细节的数量尽可能最大化的方式拍摄图像。In some embodiments, process 5900 is performed by image processing layer 930 shown in FIG. 9 , while in other embodiments process 5900 is performed by statistical engine 465 shown in FIG. 4 . Some embodiments perform processing 5900 on images captured by cameras of devices (local or remote) in the video conference, while other embodiments perform processing 5900 as part of process 2100 (e.g., operation 2110) illustrated in FIG. . Some embodiments perform an exposure adjustment operation to expose an image captured by a camera of a dual camera mobile device that is neither too bright nor too dark. In other words, process 5900 is performed to capture images in a manner that maximizes the amount of detail as possible.
通过接收(在5905)由双照相机移动设备的照相机拍摄的图像,开始处理5900。在一些实施例中,当接收到的图像是由视频会议中的设备的照相机拍摄的第一帧图像时,不对第一帧图像进行处理5900(即,在第一帧图像之前,不存在根据其确定曝光值的任何图像)。处理5900随后读取(在5910)接收图像中的规定区域的像素值。不同的实施例不同地定义所述区域。一些这样的实施例定义不同形状的区域,比如正方形、矩形、三角形、圆形等,而其它的这种实施例在图像的不同位置,比如中心、正上方、正下方等定义所述区域。Process 5900 begins by receiving (at 5905) an image captured by a camera of a dual camera mobile device. In some embodiments, when the received image is the first frame image captured by a camera of a device in the video conference, the first frame image is not processed 5900 (ie, prior to the first frame image, there is no any image whose exposure value is determined). Process 5900 then reads (at 5910) the pixel values for the specified area in the received image. Different embodiments define the regions differently. Some such embodiments define regions of different shapes, such as squares, rectangles, triangles, circles, etc., while other such embodiments define the regions at different locations in the image, such as in the center, directly above, directly below, etc.
随后,处理5900计算(在5915)图像的规定区域中的像素值的平均值。处理5900确定(在5920)像素值的计算平均值是否等于特定的规定值。不同的实施例定义不同的特定值。例如,一些实施例把所述特定值定义为图像的动态范围的中位数像素值。在一些实施例中,定义数值的范围,而不是单个值。在这样的实施例中,处理5900确定(在5920)像素值的计算平均值是否在数值的规定范围之内。Subsequently, process 5900 calculates (at 5915) an average of pixel values in a specified region of the image. Process 5900 determines (at 5920) whether the calculated average of pixel values is equal to a particular prescribed value. Different embodiments define different specific values. For example, some embodiments define the specific value as the median pixel value of the dynamic range of the image. In some embodiments, ranges of values are defined, rather than individual values. In such embodiments, process 5900 determines (at 5920) whether the calculated average of pixel values is within a specified range of values.
当像素值的计算平均值不等于特定的规定值时,处理5900根据计算平均值调整(在5925)曝光值。当像素值的计算平均值等于特定的规定值时,处理5900结束。在一些实施例中,曝光值代表照相机传感器被曝光的时间量。在一些实施例中,调整后的曝光值被用于曝光将由拍摄接收图像的照相机拍摄的下一帧图像。在根据计算的平均值调整曝光值之后,处理5900结束。When the calculated average of pixel values is not equal to a particular specified value, process 5900 adjusts (at 5925) the exposure value based on the calculated average. Process 5900 ends when the calculated average of pixel values is equal to the specified specified value. In some embodiments, the exposure value represents the amount of time the camera sensor was exposed. In some embodiments, the adjusted exposure value is used to expose the next frame of image to be captured by the camera that captured the received image. After adjusting the exposure value according to the calculated average, process 5900 ends.
在一些实施例中,重复执行处理5900,直到像素值的计算平均值等于特定的规定值(或者在数值的规定范围内)为止。一些实施例在视频会议期间,不断进行处理5900,而其它实施例在视频会议期间,以规定的时间间隔(例如,5秒、10秒、30秒等)进行处理5900。此外,在视频会议期间,一些实施例的处理5900在进行处理5900之前,动态重新定义特定的像素值。In some embodiments, process 5900 is repeated until the calculated average of pixel values is equal to a certain specified value (or within a specified range of values). Some embodiments perform the processing 5900 continuously during the video conference, while other embodiments perform the processing 5900 at regular intervals (eg, 5 seconds, 10 seconds, 30 seconds, etc.) during the video conference. Additionally, during a video conference, process 5900 of some embodiments dynamically redefines certain pixel values prior to performing process 5900 .
图60概念地图解说明一些实施例的曝光调整操作的例子。例子6000、6010和6015都把由双照相机移动设备的照相机拍摄的图像6020显示在左侧。具体地说,图像6020显示背对太阳的暗黑人物。暗黑的人物指示图像的曝光度未高到足以曝光人物的脸部或身体。每个例子6000、6010和6015的右侧分别表示在图像6020之后拍摄的图像6025、6030和6035。在一些实施例中,图像6020和右侧的图像是由双照相机移动设备的照相机拍摄的视频的图像。在其它实施例中,图像620和右侧的图像是由双照相机移动设备的照相机在不同时刻拍摄的静止图像。Figure 60 conceptually illustrates an example of an exposure adjustment operation of some embodiments. Examples 6000, 6010, and 6015 all display an image 6020 captured by a camera of a dual camera mobile device on the left. Specifically, image 6020 shows a dark figure facing away from the sun. A dark person indicates that the exposure of the image is not high enough to expose the person's face or body. The right side of each instance 6000, 6010, and 6015 represent images 6025, 6030, and 6035, respectively, taken after image 6020. In some embodiments, image 6020 and the image on the right are images of a video captured by a camera of a dual camera mobile device. In other embodiments, image 620 and the image on the right are still images taken at different times by the cameras of the dual camera mobile device.
第一个例子6000图解说明没有任何曝光调整的操作。因而,图像6025显得和图像6020相同。由于没有进行任何曝光调整,因此和图像6020中的人物类似,图像6025中的人物仍然暗黑。The first example 6000 illustrates the operation without any exposure adjustment. Thus, image 6025 appears to be the same as image 6020. Similar to the person in image 6020, the person in image 6025 is still dark because no exposure adjustments have been made.
在第二个例子6010中,对图像6020进行曝光调整操作。在一些实施例中,曝光调整操作是由处理5900利用规定区域6040进行的。根据曝光调整操作,照相机的曝光度被调整,照相机利用调整后的曝光度拍摄图像6030。如图60中所示,图像6030中的人物不如图像6025中暗黑。不过,图像6030中人物的脸部和身体仍然不清晰。In a second example 6010, an exposure adjustment operation is performed on an image 6020. In some embodiments, exposure adjustment operations are performed by process 5900 using defined regions 6040 . According to the exposure adjustment operation, the exposure of the camera is adjusted, and the camera captures an image 6030 with the adjusted exposure. As shown in FIG. 60 , the characters in image 6030 are not as dark as in image 6025 . However, the face and body of the person in image 6030 is still unclear.
第三个例子6015表示对图像6020进行的曝光调整操作。类似于第二个例子6010,一些实施例的例子6015的曝光调整操作是由处理5900利用规定区域6045进行的。根据曝光调整操作,照相机的曝光度被调整,照相机利用调整后的曝光度拍摄图像6035。如图60中所示,图像6035中的人物被正确曝光,因为人物的脸部和身体都可见。A third example 6015 represents an exposure adjustment operation performed on an image 6020 . Similar to the second example 6010, the exposure adjustment operation of the example 6015 of some embodiments is performed by the process 5900 using the prescribed area 6045. According to the exposure adjustment operation, the exposure of the camera is adjusted, and the camera captures an image 6035 with the adjusted exposure. As shown in Figure 60, the person in image 6035 is correctly exposed because both the person's face and body are visible.
在一些实施例中,规定区域的选择可由双照相机移动设备的用户进行。设备本身可以通过上面在CIPU 400中提及的曝光调整的反馈回路,自动调整其用于曝光调整操作的规定区域。图4中的统计引擎465可收集数据,以确定曝光度是否适合于拍摄的图像,并据此调整照相机传感器(例如,通过与传感器模块415的直接连接)。In some embodiments, the selection of the specified area may be made by the user of the dual camera mobile device. The device itself can automatically adjust its prescribed area for exposure adjustment operation through the feedback loop of exposure adjustment mentioned above in CIPU 400. Statistical engine 465 in FIG. 4 may collect data to determine whether exposure is appropriate for a captured image, and adjust camera sensors accordingly (eg, through a direct connection to sensor module 415).
D.焦距调整D. Focus adjustment
图61图解说明在视频会议期间,调整双照相机移动设备的焦距的处理6100。在下面的讨论中,用户通过它指令远程设备调整远程设备的照相机焦距的设备被称为本地设备。在一些实施例中,图61的处理6100由本地设备的视频会议管理器1604执行。另外,下面将参考图62和63说明处理6100,图62和63为本地设备的用户提供请求远程设备执行焦距调整操作的两种示例方式。FIG. 61 illustrates a process 6100 of adjusting the focus of a dual camera mobile device during a video conference. In the following discussion, the device through which the user instructs the remote device to adjust the focus of the remote device's camera is referred to as a local device. In some embodiments, the process 6100 of Figure 61 is performed by the video conferencing manager 1604 of the local device. Additionally, process 6100 is described below with reference to FIGS. 62 and 63 , which provide two example ways for a user of a local device to request a remote device to perform a focus adjustment operation.
如图61中所示,通过在本地设备和远程设备之间启动(在6105)视频会议,开始处理6100。处理6100随后接收(在6110)来自远程设备的视频,以便在本地设备的显示屏上显示。随后,在6115,处理6100确定是否接收到结束视频会议的请求。如上所述,在一些实施例中,可应本地或远程设备的用户的请求,结束视频会议。当处理6100接收到结束视频会议的请求时,处理6100结束。As shown in Figure 61, process 6100 begins by initiating (at 6105) a video conference between a local device and a remote device. Process 6100 then receives (at 6110) the video from the remote device for display on a display screen of the local device. Subsequently, at 6115, process 6100 determines whether a request to end the video conference has been received. As noted above, in some embodiments, a video conference may end at the request of a user of a local or remote device. When process 6100 receives a request to end the video conference, process 6100 ends.
否则,处理6100确定(在6120)它是否接收到调整远程设备的远程照相机的焦距的请求。当处理6100确定它未接收到调整远程设备的远程照相机的焦距的请求时,处理6100返回操作6110,接收来自远程设备的另外的视频。图62、63和64图解说明不同实施例向用户提供的产生这种请求的三种不同方式。在图62、63和64中,第一阶段6210、6310和6472都显示本地设备6200、6300和6471的PIP显示6225、6335和6482,PIP显示6225、6335和6482都显示两个视频,由本地设备拍摄的视频,和由远程设备拍摄的另一个视频。图62和63中的显示区1155和1155显示结束会议按钮。不过,在图64中,显示区1155的布局与上面说明的图12的显示区1155的布局相同。此外,可以选择在显示区1155中所示的切换照相机按钮6488,以在一些实施例中调用本地切换照相机操作,或者在其它实施例中调用远程切换照相机操作。如第一阶段6210、6310和6472中所示,显示在背景显示6235、6345和6480中的远程设备的视频是模糊的。Otherwise, process 6100 determines (at 6120) whether it has received a request to adjust the focus of the remote camera of the remote device. When process 6100 determines that it has not received a request to adjust the focus of the remote camera of the remote device, process 6100 returns to operation 6110 to receive additional video from the remote device. Figures 62, 63, and 64 illustrate three different ways that different embodiments provide users with generating such requests. In Figures 62, 63, and 64, the first stage 6210, 6310, and 6472 all show the PIP displays 6225, 6335, and 6482 of the local devices 6200, 6300, and 6471, and the PIP displays 6225, 6335, and 6482 all show two videos, generated by the local A video taken by the device, and another video taken by the remote device. Display areas 1155 and 1155 in FIGS. 62 and 63 display an end conference button. However, in FIG. 64, the layout of the display area 1155 is the same as that of the display area 1155 of FIG. 12 explained above. Additionally, the switch camera button 6488 shown in display area 1155 may be selected to invoke a local switch camera operation in some embodiments, or a remote switch camera operation in other embodiments. As shown in the first stages 6210, 6310, and 6472, the video of the remote device displayed in the background displays 6235, 6345, and 6480 is blurred.
图62的第二阶段6215图解说明通过简单地选择远程设备的视频(例如,通过在远程设备的视频上的单点6240),本地设备的用户向远程设备请求焦距调整的方法。按照这种方法,UI 6205自动把用户对由方框6245限定的感兴趣区域的选择与用户的指令远程设备对所述感兴趣区域执行操作(例如,焦距调整操作)的期望关联起来,从而指令本地设备6200的视频会议管理器1604联系远程设备,以执行调整操作(比如,焦距调整操作)。定义的感兴趣区域被远程设备用于焦距调整的计算。The second stage 6215 of Figure 62 illustrates the method by which the user of the local device requests a focus adjustment from the remote device by simply selecting the remote device's video (eg, via a single point 6240 on the remote device's video). In this way, the UI 6205 automatically associates the user's selection of the region of interest defined by block 6245 with the user's desire to instruct the remote device to perform an operation (e.g., a focus adjustment operation) on the region of interest, thereby instructing The video conference manager 1604 of the local device 6200 contacts the remote device to perform an adjustment operation (eg, a focus adjustment operation). The defined region of interest is used by the remote device for calculations of focus adjustments.
图63的第二阶段6315类似地表示本地用户对远程视频的选择(例如,通过用户对远程设备的视频的轻点)。不过,不同于图62中图解说明的例子,图63中的这种选择指令UI 6305显示如在第三阶段6320中所示的可选UI项目6355、6360、6365和6370(它们可被实现成可选的按钮)的菜单。这些可选UI项目包括“自动聚焦(Auto Focus)”项目6360、“自动曝光(Auto Exposure)”项目6365、“切换照相机(Switch Camera)”项目6370和“取消(Cancel)”项目6355。在一些实施例中,“切换照相机”可选UI项目6370被用于请求本地切换照相机操作,而在其它实施例中,“切换照相机”可选UI项目6370被用于请求远程切换照相机操作。第四阶段6325随后图解说明本地用户选择自动聚焦项目6360。The second stage 6315 of FIG. 63 similarly represents the local user's selection of the remote video (eg, by the user's tap on the remote device's video). However, unlike the example illustrated in FIG. 62, this selection instruction UI 6305 in FIG. optional button) menu. These selectable UI items include an "Auto Focus" item 6360, an "Auto Exposure" item 6365, a "Switch Camera" item 6370, and a "Cancel" item 6355. In some embodiments, the "Toggle Camera" selectable UI item 6370 is used to request a local toggle camera operation, while in other embodiments, the "Toggle Camera" selectable UI item 6370 is used to request a remote toggle camera operation. The fourth stage 6325 then illustrates the local user selecting an auto-focus item 6360 .
图64的第二阶段6474再次类似地表示本地用户对远程视频的选择(例如,通过用户对远程设备的视频的轻点)。不过,不同于在图63中图解说明的例子,图64中的这种选择指令UI 6478请求焦距调整操作(即,在第二阶段6474中)。在结束焦距调整操作之后,UI 6478显示可选UI项目6484和6486的菜单(即,在第三阶段6476中),可选UI项目6484和6486可被实现成可选按钮。这些可选UI项目包括“自动曝光”项目6486和“取消”项目6484。The second stage 6474 of FIG. 64 again similarly represents the local user's selection of the remote video (eg, by the user's tap on the remote device's video). However, unlike the example illustrated in FIG. 63, such selection in FIG. 64 instructs the UI 6478 to request a focus adjustment operation (i.e., in the second stage 6474). After concluding the focus adjustment operation, UI 6478 displays a menu of selectable UI items 6484 and 6486 (i.e., in third stage 6476), which may be implemented as selectable buttons. These selectable UI items include an “Auto Exposure” item 6486 and a “Cancel” item 6484 .
当处理6100确定(在6120)本地用户指令本地设备请求焦距调整操作时,处理6100通过视频会议控制通道,向远程设备发送(在6140)命令,以调整远程设备目前捕获和传送其视频的照相机的焦距。在6140之后,处理返回上面说明的操作6110。When process 6100 determines (at 6120) that the local user instructs the local device to request a focus adjustment operation, process 6100 sends (at 6140) a command to the remote device, over the video conferencing control channel, to adjust the focus of the camera whose video is currently being captured and transmitted by the remote device. focal length. After 6140, processing returns to operation 6110 explained above.
在一些实施例中,在远程设备进行这种操作之前,远程设备的用户必须提供允许,而在其它实施例中,当接收到本地设备的请求后,远程设备自动执行这种操作。另外,在一些实施例中,焦距调整操作调整远程设备的在视频会议期间使用的照相机的焦距设置。在一些这样的实施例中,如上所述,一些视频会议功能由视频会议模块1602实现。在这些实施例中,视频会议管理器1604指令CIPU 1650调整正在使用的远程设备照相机的传感器。In some embodiments, the user of the remote device must provide permission before the remote device can perform such operations, while in other embodiments, the remote device performs such operations automatically upon receipt of a request from the local device. Additionally, in some embodiments, the focus adjustment operation adjusts the focus setting of the remote device's camera used during the video conference. In some of these embodiments, some video conferencing functionality is implemented by video conferencing module 1602, as described above. In these embodiments, the videoconferencing manager 1604 instructs the CIPU 1650 to adjust the sensor of the remote device camera being used.
图62、63和64的最后阶段6220、6330和6476表示恰当聚焦的远程设备的视频。尽管图62、63和64提供接收校正远程设备的焦距的焦距调整请求的例子,不过,一些实施例允许本地设备的用户请求本地设备调整本地设备的照相机的焦距。可类似于在图62、63和64中所示的请求远程设备调整其照相机的焦距的方法,产生这样的请求。The final stages 6220, 6330 and 6476 of Figures 62, 63 and 64 represent the video of the remote device properly focused. While FIGS. 62, 63, and 64 provide examples of receiving a focus adjustment request to correct the focus of a remote device, some embodiments allow a user of a local device to request that the local device adjust the focus of the local device's camera. Such a request may be generated similar to the method of requesting the remote device to adjust the focus of its camera shown in FIGS. 62 , 63 and 64 .
图62、63和64图解说明允许用户进行焦距调整操作的三种示例用户界面。在一些实施例中,焦距调整操作导致拍摄显示在UI中的视频的双照相机移动设备的照相机的操作的改变,比如改变照相机的焦距。Figures 62, 63 and 64 illustrate three example user interfaces that allow a user to perform focus adjustment operations. In some embodiments, the focus adjustment operation results in a change in the operation of the camera of the dual camera mobile device capturing the video displayed in the UI, such as changing the focus of the camera.
如上在图56和62中所述,规定的感兴趣区域被远程移动设备分别用于视频的曝光调整和焦距调整的计算。不过,在一些其它实施例中,用户对感兴趣区域的选择可被用于指令远程设备进行一个或多个操作。例如,在一些实施例中,可根据定义的感兴趣区域,进行曝光调整和焦距调整,从而指令远程设备进行两个操作。As described above in FIGS. 56 and 62 , the specified region of interest is used by the remote mobile device for the calculation of exposure adjustment and focus adjustment, respectively, of the video. However, in some other embodiments, a user's selection of an area of interest may be used to instruct a remote device to perform one or more operations. For example, in some embodiments, an exposure adjustment and a focus adjustment may be performed according to a defined region of interest, thereby instructing the remote device to perform both operations.
E.帧速率控制E. Frame rate control
在视频会议期间,一些实施例可能希望调整或保持向视频会议中的另一个设备传送由双照相机移动设备的照相机拍摄的视频图像的速率(即,帧速率)。例如,假定带宽固定,一些这样的实施例降低视频的帧速率,以提高视频图像的画面质量,而其它这样的实施例增大视频的帧速率,以平滑视频(即,减少抖动)。During a video conference, some embodiments may wish to adjust or maintain the rate at which video images captured by the cameras of the dual camera mobile device (ie, the frame rate) are transmitted to the other device in the video conference. For example, assuming a fixed bandwidth, some such embodiments reduce the frame rate of the video to improve the picture quality of the video image, while other such embodiments increase the frame rate of the video to smooth the video (i.e., reduce jitter).
不同的实施例提供在视频会议期间,控制视频图像的帧速率的不同技术。前面说明的一个例子调整照相机的传感器模块415的VBI,以控制处理由照相机拍摄的图像的速率。作为另一个例子,图9中所示的视频会议模块925的管理层935的一些实施例通过丢弃图像来控制帧速率。类似地,图像处理层930的一些实施例通过丢弃图像来控制帧速率。一些实施例提供除此之外的其它技术来控制帧速率,比如丢弃通用传输缓冲器3120中的帧。Different embodiments provide different techniques for controlling the frame rate of video images during a video conference. One example described above adjusts the VBI of the camera's sensor module 415 to control the rate at which images captured by the camera are processed. As another example, some embodiments of the management layer 935 of the video conferencing module 925 shown in FIG. 9 control the frame rate by dropping images. Similarly, some embodiments of the image processing layer 930 control the frame rate by dropping images. Some embodiments provide other techniques besides this to control the frame rate, such as dropping frames in general transmit buffer 3120 .
V.双照相机V. Dual cameras
A.组合视图A. Combined view
1.画中画:两个远程照相机的显示1. Picture-in-picture: display of two remote cameras
一些实施例允许双照相机移动设备按照几种显示排列中的任意一种,显示从在视频会议期间,从该移动设备拍摄的视频和从另一个双照相机移动设备拍摄的视频。图65图解说明从一个或多个双照相机移动设备拍摄的视频的不同显示排列的例子。在图65中,双照相机移动设备6500(设备A)的用户和另一个双照相机移动设备6505(设备B)的另一位用户正在相互进行视频会议。Some embodiments allow a dual-camera mobile device to display video captured from the mobile device and video captured from another dual-camera mobile device during a video conference in any of several display arrangements. Figure 65 illustrates examples of different display arrangements for video captured from one or more dual camera mobile devices. In FIG. 65, a user of a dual-camera mobile device 6500 (Device A) and another user of another dual-camera mobile device 6505 (Device B) are videoconferencing with each other.
图65把设备A的显示排列的四种例子表示在左侧。设备A的四种显示排列是第一视图6510、第二视图6515、第三视图6520和第四视图6525。另外,图65还把设备B的显示排列的四种例子表示在右侧。设备B的四种显示排列是第一视图6565、第二视图6570、第三视图6575和第四视图6580。在这个例子中,设备A只显示从设备A的照相机拍摄的两个视频,而设备B显示从设备A的照相机拍摄的两个视频,而且显示从设备B的照相机拍摄的一个或两个视频。Fig. 65 shows four examples of the display arrangement of the device A on the left side. The four display arrangements for device A are a first view 6510 , a second view 6515 , a third view 6520 and a fourth view 6525 . In addition, FIG. 65 also shows four examples of the display arrangement of the device B on the right side. The four display arrangements for device B are a first view 6565 , a second view 6570 , a third view 6575 and a fourth view 6580 . In this example, device A shows only two videos taken from device A's camera, while device B shows two videos taken from device A's camera, and one or two videos taken from device B's camera.
在第一视图6510中,设备A的UI 6585提供合成显示6512。合成显示6512包括两个显示区:显示从设备A的背面照相机拍摄的视频的显示区6530,和显示从设备A的正面照相机拍摄的视频的显示区6535。在这个例子中,显示区6530位于合成显示6512的上半部,而显示区6535位于合成显示6512的下半部。在第一视图6510中,这两个显示区大小相同。上部的显示区6530正显示山脉的视频,所述山脉假定是正由设备A的背面照相机拍摄的山脉。显示区6535正显示树和戴帽男士,所述树和戴帽男士假定是正由设备A的正面照相机拍摄的树和戴帽男士In a first view 6510, Device A's UI 6585 provides a composite display 6512. Composite display 6512 includes two display areas: display area 6530 that displays video captured from device A's back camera, and display area 6535 that displays video captured from device A's front camera. In this example, display area 6530 is located in the upper half of composite display 6512 and display area 6535 is located in the lower half of composite display 6512 . In the first view 6510, the two display areas are the same size. The upper display area 6530 is displaying a video of a mountain range, which is assumed to be the mountain range being captured by Device A's back camera. Display area 6535 is displaying a tree and man in hat, which is assumed to be the tree and man in hat being photographed by device A's front camera
第二视图6515中的UI 6585提供合成显示6517,合成显示6517包括和第一视图6510相同的两个显示区,除了显示区6535(显示从设备A的正面照相机拍摄的视频)正在位于合成显示6517的上半部,显示区6530(显示从设备A的背面照相机拍摄的视频)位于合成显示6517的下半部之外。UI 6585 in second view 6515 provides composite display 6517, which includes the same two display areas as first view 6510, except that display area 6535 (showing video captured from device A's front camera) is being positioned on composite display 6517 Display area 6530 (displaying video captured from device A's back camera) is located outside the lower half of composite display 6517.
在第三视图6520中,UI 6585提供PIP显示6595。PIP显示6595包括两个显示区:作为背景显示区的、显示从设备A的正面照相机拍摄的视频的显示区6535,和作为前景插入显示区的、显示从设备A的背面照相机拍摄的视频的显示区6530。在这个视图中,背景显示区6535占据大部分的PIP显示6595,而插入显示区6530较小且重叠在一部分的背景显示区6535上。In a third view 6520, the UI 6585 provides a PIP display 6595. PIP display 6595 includes two display areas: a display area 6535 as a background display area showing video captured from device A's front camera, and a foreground inset display area displaying video captured from device A's back camera District 6530. In this view, the background display area 6535 occupies most of the PIP display 6595 , while the inset display area 6530 is smaller and overlaps a portion of the background display area 6535 .
第四视图6525中的UI 6585也呈现包括如第三视图6520中所示的显示区6530和6535的PIP显示6598。不同于PIP显示6595,PIP显示6598包括作为背景主显示的显示区6530(拍摄自设备A的背面照相机),和作为前景插入显示的显示区6535(拍摄自设备A的正面照相机)。另外,PIP显示6598是按横向视图呈现的(即,PIP显示598的宽度大于高度)。UI 6585 in fourth view 6525 also presents PIP display 6598 including display areas 6530 and 6535 as shown in third view 6520. Unlike PIP display 6595, PIP display 6598 includes display area 6530 (photographed from device A's back camera) as the background main display, and display area 6535 (photographed from device A's front camera) as the foreground inset display. Additionally, PIP display 6598 is presented in landscape view (ie, PIP display 598 is wider than it is tall).
上面的例子图解说明设备A的UI的四种可能的合成视图-其中显示第一设备的两部照相机的视频的两个显示区6530和6535纵向层叠的两个视图,和两个PIP视图。对设备A的UI来说,其它视图也是可能的。例如,两个显示区可以水平或对角层叠,或者可以使用不同的PIP视图。The example above illustrates four possible composite views of Device A's UI - two views in which the two display areas 6530 and 6535 displaying video from the first device's two cameras are stacked vertically, and two PIP views. Other views are also possible for device A's UI. For example, two display areas can be stacked horizontally or diagonally, or different PIP views can be used.
关于设备B图解说明的各个视图表示设备B的UI可以采用不同的视图。这些视图包括从设备A的两部照相机,以及设备B的一部或多部照相机拍摄的视频。在设备B的第一视图6565中,设备B的UI6590提供PIP显示6568。PIP显示6568包括与显示在设备A上的合成显示6512相同的合成显示区6569,以及显示由设备B的照相机之一(例如,正面照相机)拍摄的视频的插入显示区6550。合成显示区6569包括显示从设备A的背面照相机拍摄的视频的显示区6531,和显示从设备B的正面照相机拍摄的视频的显示区6536。显示设备A的视频的合成显示6569占据大部分的PIP显示6568,而插入显示区6550较小且重叠在合成显示6569上。显示区6550显示笑脸的视频,所述笑脸假定是正由设备B的正面照相机拍摄其视频的笑脸。The various views illustrated with respect to device B represent that the UI of device B may take different views. These views include video taken from both of Device A's cameras, and one or more of Device B's cameras. In Device B's first view 6565, Device B's UI 6590 provides a PIP display 6568. PIP display 6568 includes the same composite display area 6569 as composite display 6512 displayed on device A, and an inset display area 6550 that displays video captured by one of device B's cameras (eg, the front camera). The composite display area 6569 includes a display area 6531 displaying video captured from the rear camera of device A, and a display area 6536 displaying video captured from the front camera of device B. The composite display 6569 of display device A's video occupies the majority of the PIP display 6568 , while the inset display area 6550 is smaller and overlaps the composite display 6569 . Display area 6550 displays a video of a smiling face, which is assumed to be a smiling face whose video is being captured by the front camera of device B.
第二视图6570中的设备B的UI 6590提供PIP显示6572。PIP显示6572包括显示区6550(显示从设备B的正面照相机拍摄的视频),和具有显示从设备A的照相机拍摄的视频的显示区6531和6536的合成显示6573。合成显示6573与设备A的第二视图6515中的合成显示6517相同,并占据大部分的PIP显示6572。和第一视图6565中的PIP显示6568中一样,显示区6550较小且重叠在合成显示6573上。具体地说,在这两个视图中,显示区6550重叠在显示从设备A的背面照相机拍摄的视频的显示区6531的一部分上。The UI 6590 of Device B in the second view 6570 provides a PIP display 6572. PIP display 6572 includes display area 6550 (displaying video captured from device B's front camera), and composite display 6573 having display areas 6531 and 6536 displaying video captured from device A's camera. Composite display 6573 is the same as composite display 6517 in device A's second view 6515 and occupies the majority of PIP display 6572 . As in PIP display 6568 in first view 6565 , display area 6550 is smaller and overlaid on composite display 6573 . Specifically, in both views, display area 6550 overlaps a portion of display area 6531 that displays video captured from device A's back camera.
在第三视图6575中,UI 6590提供与设备A的第三视图6520中的PIP显示6595类似的PIP显示6577。PIP显示6577还包括另外的显示区6550,作为第二插入显示区,第二插入显示区6550重叠在背景显示区6536上。两个插入显示区6531和6550水平平铺在背景主显示区6536的底部。In third view 6575, UI 6590 provides a PIP display 6577 similar to PIP display 6595 in device A's third view 6520. The PIP display 6577 also includes an additional display area 6550 as a second inset display area that overlays the background display area 6536 . The two inset display areas 6531 and 6550 are horizontally tiled at the bottom of the background main display area 6536 .
第四视图6580中的UI 6590提供合成显示6582。合成显示6582包括三个显示:PIP显示6583、显示区6550和显示区6540(例如,用于显示由设备B的背面照相机拍摄的视频)。PIP显示6583与设备A的第四视图6525中的PIP显示6598相同,并占据大部分的合成显示区6582。显示区6540和6550较小,并且水平平铺在PIP显示区6583之下。UI 6590 in fourth view 6580 provides composite display 6582. Composite display 6582 includes three displays: PIP display 6583, display area 6550, and display area 6540 (eg, for displaying video captured by device B's back camera). PIP display 6583 is the same as PIP display 6598 in device A's fourth view 6525 and occupies most of the composite display area 6582 . Display areas 6540 and 6550 are smaller and are tiled horizontally below PIP display area 6583 .
尽管图65图解说明了设备B的四种可能视图,不过其它许多视图也是可能的。设备A的视频的背景合成显示可以水平平铺,而不是垂直平铺,插入显示区可重叠在设备A的正面照相机显示区上,而不是重叠在背面照相机显示区上,较大的显示区可以显示设备B的照相机的视频,而不是设备A的照相机的视频,插入显示区可以位于不同的位置,等等。Although FIG. 65 illustrates four possible views of device B, many other views are possible. The background composite display of device A's video can be tiled horizontally instead of vertically, the inset display area can overlap the front camera display area of device A instead of the back camera display area, and the larger display area can Video from device B's camera is displayed instead of device A's camera video, the inset display area may be in a different location, and so on.
源于设备A的每个视图的每组箭头6560表明不存在对表示在设备A上的显示和表示在设备B上的显示之间的关联性的要求。例如,即使设备A正在按视图6510的排列显示区视频(例如,按照设备A的用户选择的排列),设备B也可按图解说明的四种排列,或者按图65中未示出的多种其它排列任意之一显示视频(例如,按照设备B的用户选择的排列)。换句话说,设备A的显示排列与设备B的显示排列无关。一些实施例不把显示区从一个设备传送给另一个设备,而只是传送视频(例如,以编码的形式),所述视频被设备显示在其对应的显示区中。Each set of arrows 6560 originating from each view of device A indicates that there is no requirement for a correlation between the display represented on device A and the display represented on device B. For example, even if device A is displaying zone video in the arrangement of view 6510 (e.g., in the arrangement selected by the user of device A), device B may be in the four arrangements illustrated, or in a variety of arrangements not shown in FIG. Any of the other arrangements displays the video (eg, in an arrangement selected by the user of device B). In other words, device A's display arrangement is independent of device B's display arrangement. Some embodiments do not transfer a display area from one device to another, but only transfer video (eg, in encoded form) that is displayed by a device in its corresponding display area.
2.专用PIP2. Dedicated PIP
一些实施例允许双照相机移动设备的用户在视频会议期间,在PIP显示中把视频的前景叠加在另一个视频上。在一些实施例中,视频的前景按照这样的方式混合到另一个视频中,使得它们表现为由单一的照相机拍摄的单一视频的显示。图66图解说明在PIP显示中,插入视频的前景在背景视频上的这种叠加的例子。Some embodiments allow a user of a dual camera mobile device to superimpose the foreground of a video on top of another video in a PIP display during a video conference. In some embodiments, the foreground of a video is blended into another video in such a way that they appear as a display of a single video captured by a single camera. Figure 66 illustrates an example of such superimposition of the foreground of the inserted video on the background video in a PIP display.
图66按照UI 6670的七个操作阶段6620、6625、6630、6635、6640、6660和6665,图解说明这种视频叠加操作。第一阶段6620图解说明在与远程设备的视频会议期间,具有PIP显示6682的双照相机移动设备6600的UI 6670。如第一阶段6620中所示,PIP显示6682包括两个视频显示:背景主显示6610和前景插入显示6605。背景主显示6610占据大部分的UI 6670,而前景插入显示6605较小且重叠在背景主显示6610上。Figure 66 illustrates this video overlay operation in terms of seven operational stages 6620, 6625, 6630, 6635, 6640, 6660, and 6665 of UI 6670. The first stage 6620 illustrates the UI 6670 of a dual camera mobile device 6600 with a PIP display 6682 during a video conference with a remote device. As shown in the first stage 6620, the PIP display 6682 includes two video displays: a background main display 6610 and a foreground inset display 6605. The background main display 6610 takes up most of the UI 6670, while the foreground inset display 6605 is smaller and overlaps the background main display 6610.
在这个例子中,背景显示区6610显示山脉的视频,所述山脉假定是由远程设备的照相机之一拍摄的山脉。前景插入显示区6605显示戴帽人物的视频,所述人物假定是由本地设备的照相机之一拍摄其视频的人物。PIP显示6682下面是标记为“End Conference(结束会议)”的可选UI项目6685(例如,按钮6685),所述可选UI项目6685允许用户通过选择该项目(例如,通过单击或双击该按钮),结束视频会议。In this example, background display area 6610 displays a video of a mountain range, which is assumed to be a mountain range captured by one of the remote device's cameras. The foreground inset display area 6605 displays a video of a person wearing a hat, which is assumed to be the person whose video was captured by one of the local device's cameras. Below the PIP display 6682 is an optional UI item 6685 (e.g., a button 6685) labeled "End Conference" that allows the user to select the item (e.g., by clicking or double-clicking the button) to end the video conference.
第二阶段6625图解说明可选菜单6675的调用。在一些实施例中,通过选择(例如触摸)PIP显示区6682,可以调用可选UI项目6675的菜单。代替这种调用操作,或者与这种调用操作结合,一些实施例还允许用户通过其它操作,比如通过不同的触屏操作或者利用设备的一个或多个其它物理输入,调用可选UI项目6675的菜单。The second stage 6625 illustrates the invocation of the selectable menu 6675. In some embodiments, by selecting (eg, touching) the PIP display area 6682, a menu of selectable UI items 6675 may be invoked. Instead of, or in combination with, such an invocation operation, some embodiments also allow the user to invoke the optional UI item 6675 through other operations, such as through various touch screen operations or using one or more other physical inputs of the device. menu.
第三阶段6630显示UI 6670,UI 6670具有调用的一组用于选择视频叠加操作的可选UI项目。在这个例子中,在PIP显示6682上显示具有几个可选UI项目的弹出式菜单6675。可选UI项目的菜单6675包括“Flip PIP(翻转PIP)”可选UI项目6640(例如,按钮6640),“Specialized PIP(专用PIP)”可选UI项目6645(例如,按钮6645),和“Cancel(取消)”可选UI项目6690(例如,按钮6690)。在这个例子中,选择“Flip PIP”按钮6640会导致UI 6670交换背景显示6610和插入显示6605(在下一节中将详细讨论),选择“Specialized PIP”按钮6645会导致UI 6670开始视频叠加的操作,以及选择“Cancel”按钮6690会从PIP显示6682中除去弹出式菜单6675。其它实施例在PIP弹出式菜单6675中包括不同的或者更多的项目。The third stage 6630 displays a UI 6670 with an invoked set of selectable UI items for selecting video overlay operations. In this example, a pop-up menu 6675 is displayed on the PIP display 6682 with several selectable UI items. Menu 6675 of selectable UI items includes "Flip PIP (flip PIP)" selectable UI item 6640 (e.g., button 6640), "Specialized PIP (specialized PIP)" selectable UI item 6645 (e.g., button 6645), and " "Cancel" optional UI item 6690 (eg, button 6690). In this example, selection of the "Flip PIP" button 6640 causes the UI 6670 to swap the background display 6610 and the inset display 6605 (discussed in detail in the next section), and selection of the "Specialized PIP" button 6645 causes the UI 6670 to begin the video overlay operation , and selecting the "Cancel" button 6690 removes the popup menu 6675 from the PIP display 6682. Other embodiments include different or more items in the PIP pop-up menu 6675.
第四阶段6635图解说明在用户选择了“Specialized PIP”按钮6645(例如通过用他的手指6695轻点按钮6645)之后的UI 6670。通过在UI显示6670上突出显示按钮6645,指示这种选择。一些实施例使用不同的指示显示(例如,突出显示所选项目的边框或者所选项目中的文本)。The fourth stage 6635 illustrates the UI 6670 after the user has selected the "Specialized PIP" button 6645 (eg, by tapping the button 6645 with his finger 6695). This selection is indicated by highlighting button 6645 on UI display 6670. Some embodiments use a different indication display (eg, highlighting a border of a selected item or text within a selected item).
第五阶段6640表示在开始视频叠加操作之后的UI 6670。在这个阶段,UI 6670允许用户选择他想要从哪个视频进行提取以作为前景,和他想要使用哪个视频作为叠加视频中的背景。UI 6670通过显示在PIP显示6682上的具有几个可选UI项目的弹出式菜单6680,提供各种选项。可选UI项目的弹出式菜单6680包括“Select Inset(选择插入显示)”可选UI项目6655(例如,按钮6655),“Select Main(选择主显示)”可选UI项目6650(例如,按钮6650),和“Cancel”可选UI项目6692(例如,按钮6692)。The fifth stage 6640 represents the UI 6670 after starting the video overlay operation. At this stage, the UI 6670 allows the user to choose which video he wants to extract from as the foreground, and which video he wants to use as the background in the superimposed video. The UI 6670 provides various options through a pop-up menu 6680 displayed on the PIP display 6682 with several selectable UI items. The popup menu 6680 of selectable UI items includes a "Select Inset" selectable UI item 6655 (e.g., button 6655), a "Select Main" selectable UI item 6650 (e.g., button 6650 ), and a "Cancel" optional UI item 6692 (eg, button 6692).
选择“Select Inset”按钮6655会导致UI 6670把来自本地设备的照相机的插入视频6605的前景(即,戴帽的男士)叠加在来自远程设备的照相机的背景主视频6610上。另一方面,选择“Select Main”按钮6650会导致UI 6670把来自远程设备的照相机的背景主视频6610的前景(即,山脉)叠加在来自本地设备的照相机上的插入视频6605上。在一些实施例中,这导致两个视频推送(feed)的切换,使得目前在插入显示区6605中的视频将占据大部分的UI 6670,目前在主显示区6610中的视频将被叠加在马上的主视频上。选择“Cancel”按钮6692会放弃视频叠加操作,并从PIP显示区6682去除弹出式菜单6680。Selecting the "Select Inset" button 6655 causes the UI 6670 to superimpose the foreground of the inset video 6605 from the local device's camera (i.e., the man in the hat) over the background main video 6610 from the remote device's camera. On the other hand, selecting the "Select Main" button 6650 causes the UI 6670 to superimpose the foreground (i.e., mountains) of the background main video 6610 from the remote device's camera over the insert video 6605 from the local device's camera. In some embodiments, this results in a toggle between the two video feeds such that the video currently in the inset display area 6605 will take up most of the UI 6670 and the video currently in the main display area 6610 will be superimposed on the immediate on the main video. Selecting the "Cancel" button 6692 aborts the video overlay operation and removes the pop-up menu 6680 from the PIP display area 6682.
第六阶段6600图解说明在用户选择“Select Inset”按钮6655(例如,通过用他的手指6695轻点按钮6655)之后的UI 6670。通过在UI显示6670上突出显示按钮6655,指示这种选择。一些实施例利用不同的指示显示(例如,突出显示所选项目的边框或者所选项目中的文本)。The sixth stage 6600 illustrates the UI 6670 after the user selects the "Select Inset" button 6655 (e.g., by tapping the button 6655 with his finger 6695). This selection is indicated by highlighting button 6655 on UI display 6670. Some embodiments utilize different indication displays (eg, highlighting a border of a selected item or text within a selected item).
第七阶段6665图解说明在完成视频叠加操作之后的UI 6670。如UI 6670中所示,从显示区6605中提取出插入显示区6605的前景(即,戴帽的男士)。另外从屏幕中消除插入显示6605的窗框和背景(即,除所述前景外的其它一切)。最后,按照这样的方式把前景(即,戴帽的男士)混合到背景视频6610中,使得它表现为单一视频。可以使用各种不同的技术去除插入视频的背景。一些实施例识别相对于其它像素不移动的像素、寻找恒定不变的图案或颜色、使用与包括前景的图像相比的基线图像、并扣除差异、或者使用不同的技术。The seventh stage 6665 illustrates the UI 6670 after completion of the video overlay operation. As shown in UI 6670, the foreground inserted into display area 6605 (i.e., a man in a hat) is extracted from display area 6605. The window frame and background of the inset display 6605 are also eliminated from the screen (ie, everything else but the foreground). Finally, the foreground (ie, the man in the cap) is blended into the background video 6610 in such a way that it appears as a single video. There are a variety of different techniques that can be used to remove the background of an inserted video. Some embodiments identify pixels that do not move relative to other pixels, look for a constant pattern or color, use a baseline image compared to an image including the foreground, and subtract the difference, or use a different technique.
尽管图66的例子图解说明当被叠加在背景显示区6610上时,插入显示区6605的前景保留在UI中的相同位置,不过这只是叠加能够如何实现的一个例子。一些实施例把前景视频移动到UI 6670中的特定位置(例如,中心、角落之一,等等)。类似于在IV.A.1和IV.A.3节中所示的特征,一些实施例允许本地设备的用户在UI中来回拖动叠加的前景视频,或者改变叠加的前景视频的大小。While the example of FIG. 66 illustrates that the foreground of the inset display area 6605 remains in the same location in the UI when overlaid over the background display area 6610, this is only one example of how overlaying can be accomplished. Some embodiments move the foreground video to a specific location in the UI 6670 (e.g., the center, one of the corners, etc.). Similar to the features shown in Sections IV.A.1 and IV.A.3, some embodiments allow the user of the local device to drag the overlay foreground video back and forth in the UI, or to change the size of the overlay foreground video.
可以使用不同的技术来确定视频图像的哪个或哪些部分是如上所述的视频叠加操作的“前景”。一些实施例的一个这种方法确定视频图像的哪个或哪些部分(如果有的话)是动态的。动态部分被认为是“前景”,因为视频图像的背景通常是静态的(即,无运动)。在这样的实施例中,在特定的一段时间内分析视频图像。如果所述一段时间内,特定像素的值之间的差异不大于规定的阈值(例如,5%、10%、15%),那么认为所述特定像素是静态像素。在分析了视频图像中的每个像素之后,视频图像的动态像素(即,不是静态的像素)被认为是视频图像的“前景”。Different techniques may be used to determine which portion or portions of a video image are "foreground" for a video overlay operation as described above. One such method of some embodiments determines which portion or portions of the video image, if any, are dynamic. The dynamic part is considered "foreground" because the background of a video image is usually static (ie, no motion). In such embodiments, video images are analyzed over a specified period of time. If the difference between the values of a particular pixel is not greater than a specified threshold (eg, 5%, 10%, 15%) within the period of time, then the particular pixel is considered to be a static pixel. After analyzing every pixel in the video image, the dynamic pixels (ie, the pixels that are not static) of the video image are considered to be the "foreground" of the video image.
图67图解说明能够由视频会议管理器1604或者图像处理管理器1608执行的、确定视频图像的前景的这种技术的一个例子。具体地说,图67图解说明显示戴帽的人物和树的视频的一系列六个图像6705-6730。在这个例子中,假定所述人物不是完全静止地站立着的,可能正在说话。如上所述,分析视频图像中的每个像素,以确定像素是动态的还是静态的。例如,确定图像6705-6730中的像素6735的值之间的差异是否大于规定的阈值。这里,由于像素6735代表除人物之外的部分地面,因此认为像素6735是静态的。在分析了图像6705-6730中的所有像素之后,确定图像中的人物是动态的,以及图像的其余部分是静态的。因而,所述人物是将由上面参考图66说明的操作提取的“前景”。FIG. 67 illustrates one example of such a technique that can be performed by the video conferencing manager 1604 or the image processing manager 1608 to determine the foreground of a video image. Specifically, FIG. 67 illustrates a series of six images 6705-6730 showing a video of a figure wearing a hat and a tree. In this example, it is assumed that the character is not standing perfectly still and may be speaking. As described above, each pixel in a video image is analyzed to determine whether the pixel is dynamic or static. For example, it is determined whether the difference between the values of pixels 6735 in images 6705-6730 is greater than a specified threshold. Here, since the pixel 6735 represents part of the ground other than the person, the pixel 6735 is considered to be static. After analyzing all the pixels in the images 6705-6730, it is determined that the person in the image is dynamic and the rest of the image is static. Thus, the person is the "foreground" to be extracted by the operation explained above with reference to FIG. 66 .
3.交换画中画显示中的视频3. Swap the video in the picture-in-picture display
一些实施例允许双照相机移动设备的用户在视频会议期间,交换PIP显示中的两个显示区(即,在PIP显示中,插入显示区变成背景显示区,背景显示区变成插入显示区)。图68图解说明在视频会议期间,交换PIP显示6682中的插入显示区6605和背景显示区6610的例子。Some embodiments allow a user of a dual-camera mobile device to swap two display areas in a PIP display (i.e., in a PIP display, the inset display area becomes the background display area, and the background display area becomes the inset display area) during a video conference . Figure 68 illustrates an example of swapping the inset display area 6605 and the background display area 6610 in a PIP display 6682 during a videoconference.
图68按照图66中的设备6800的UI 6670的八个操作阶段,图解说明交换PIP操作。图68中的前三个阶段与图66中的前三个阶段相同。在这些阶段中,通过利用本地设备的触摸屏进行选择,用户使菜单6675出现在UI 6670内。Figure 68 illustrates the exchange PIP operation in terms of eight operational phases of the UI 6670 of the device 6800 in Figure 66. The first three stages in FIG. 68 are the same as the first three stages in FIG. 66 . During these stages, the user causes a menu 6675 to appear within the UI 6670 by making selections using the local device's touch screen.
图68的第四阶段6840图解说明在用户选择“Flip PIP”按钮6640(例如,通过用他的手指6695轻点按钮6640)之后的UI 6670。通过在UI显示6670上突出显示按钮6640,指示这种选择。一些实施例利用不同的指示显示(例如,突出显示所选项目的边框或者所选项目中的文本)。The fourth stage 6840 of FIG. 68 illustrates the UI 6670 after the user selects the "Flip PIP" button 6640 (e.g., by tapping the button 6640 with his finger 6695). Such selection is indicated by highlighting button 6640 on UI display 6670. Some embodiments utilize different indication displays (eg, highlighting a border of a selected item or text within a selected item).
第五阶段6845图解说明在开始交换PIP操作之后的UI 6670。一些实施例通过翻转动作,动画演示插入显示6605和背景显示6610的交换。图68图解说明这种动画演示的一个例子。在这个例子中,通过PIP显示6682(在执行交换操作之前)在其一面上,新的PIP显示6684(在执行交换操作之后)在其另一面上的观察窗格的翻转,能够说明这种动画。观察窗格围绕位于PIP显示6682的中心的垂直轴6686旋转180°。在第五阶段6845,观察窗格开始围绕垂直轴6686旋转。The fifth stage 6845 illustrates the UI 6670 after starting the exchange PIP operation. Some embodiments animate the swapping of the inset display 6605 and the background display 6610 through a flipping action. Figure 68 illustrates an example of such an animation. In this example, this animation is illustrated by the flipping of the viewing pane with the PIP showing 6682 (before performing the swap operation) on one side and the new PIP showing 6684 (after performing the swap operation) on its other side . The viewing pane rotates 180° about a vertical axis 6686 located at the center of the PIP display 6682. In the fifth stage 6845, the viewing pane begins to rotate about the vertical axis 6686.
在第六阶段6850,观察窗格被表示成已旋转大约90°。这是用显示在屏幕中心的细线6688(即,观察窗格的边缘)指示的。第七阶段6855图解说明观察窗格的旋转接近于完成。新的PIP显示6684开始从观察窗格的另一面出现,并水平扩展到充满设备的屏幕。PIP显示6684包括在进行交换操作之后的两个显示区6605和6610。呈现戴帽男士的视频(来自本地设备的照相机)的显示区6605现在在PIP显示6684的背景中,呈现山脉的视频(来自远程设备的照相机)的显示6610现在在PIP显示6684的前景中,所述前景重叠在显示6605上。第八阶段6860表示交换显示操作的完成。At the sixth stage 6850, the viewing pane is indicated to have been rotated approximately 90°. This is indicated by a thin line 6688 displayed in the center of the screen (ie, the edge of the viewing pane). The seventh stage 6855 illustrates that the rotation of the viewing pane is nearing completion. The new PIP shows 6684 starting to emerge from the other side of the viewing pane and expanding horizontally to fill the device's screen. PIP display 6684 includes two display areas 6605 and 6610 after a swap operation has been performed. The display area 6605 showing the video of the man in the hat (from the local device's camera) is now in the background of the PIP display 6684, and the display 6610 showing the video of the mountains (from the remote device's camera) is now in the foreground of the PIP display 6684, so The foreground is overlaid on display 6605. The eighth stage 6860 represents the completion of the swap display operation.
普通技术人员会认识到图68中所示的动画只是PIP插入/背景交换操作的多种可能动画中的一种。例如,不同的实施例可以沿着水平轴旋转观察窗格、瞬间交换这两个显示区、扩展一个显示区同时缩小另一个显示区,等等。一些实施例提供一种总是用于交换操作的动画,而其它实施例允许用户从几种动画中选择,或者使用不同的动画(例如,通过随机选择)。此外,交换操作能够导致双照相机移动设备的图像处理操作的变化,比如导致视频会议管理器1604响应用户的输入,改变视频的比例缩放和合成。Those of ordinary skill will recognize that the animation shown in Figure 68 is only one of many possible animations for the PIP insert/background swap operation. For example, different embodiments may rotate the viewing pane along a horizontal axis, swap the two display areas instantaneously, expand one display area while shrinking the other, and so on. Some embodiments provide one animation that is always used for the swap operation, while other embodiments allow the user to choose from several animations, or use a different animation (eg, by random selection). Additionally, the swapping operation can result in changes in the image processing operations of the dual camera mobile device, such as causing the video conferencing manager 1604 to change the scaling and compositing of the video in response to user input.
4.锁定到角落4. Lock to the corner
本发明的一些实施例允许双照相机移动设备的用户通过来回移动形成合成显示的一个或多个显示区,修改合成显示。上面在IV.A.1节中说明了这种移动的一个例子。当PIP显示包括多于一个的插入显示区时,插入显示的这种移动也是可能的。Some embodiments of the invention allow a user of a dual camera mobile device to modify a composite display by moving around one or more display areas forming the composite display. An example of this movement is described above in Section IV.A.1. Such movement of the inset display is also possible when the PIP display comprises more than one inset display area.
图69图解说明在视频会议期间执行的这种例子。在图69中图解说明的例子与在图3中图解说明的例子类似,除了图69图解说明来回移动包括两个插入显示区6905和6910,而不是仅仅一个这种插入显示区的PIP显示6965的插入显示区6910之外。Figure 69 illustrates such an example performed during a video conference. The example illustrated in FIG. 69 is similar to the example illustrated in FIG. 3, except that FIG. 69 illustrates moving back and forth of a PIP display 6965 comprising two inset display areas 6905 and 6910, rather than just one such inset display area. Insert outside display area 6910.
在图69中,在与另一个设备的远程用户的视频会议期间,移动设备6900的UI 6960呈现PIP显示6965。图69中的PIP显示6965包括三个视频显示:背景主显示6915及两个前景插入显示6905和6910。在这个例子中,背景主显示6915呈现边唱边弹吉它的人物的视频,所述视频被假定是由远程设备的背面照相机拍摄的视频。前景插入显示6905呈现拿着球拍的人物的视频,在这个例子中,该视频被假定是由本地设备的背面照相机拍摄的视频。另一个前景插入显示6910呈现戴着帽子的人物的视频,在这个例子中,该人物假定是由本地设备的正面照相机拍摄其视频的人物。PIP显示6965下面是标记为“End Conference”的可选UI项目6970(例如,按钮6970),可选UI项目6970允许用户通过选择它而结束视频会议。In FIG. 69, UI 6960 of mobile device 6900 presents PIP display 6965 during a video conference with a remote user of another device. PIP display 6965 in FIG. 69 includes three video displays: a background main display 6915 and two foreground inset displays 6905 and 6910. In this example, the background main display 6915 presents a video of a character singing and playing guitar, which is assumed to be video taken by the remote device's back camera. The foreground inset display 6905 presents a video of a character holding a racket, which in this example is assumed to be video captured by the local device's back camera. Another foreground inset shows 6910 presenting a video of a person wearing a hat, which in this example is assumed to be the person whose video was captured by the local device's front camera. Below the PIP display 6965 is an optional UI item 6970 (eg, button 6970) labeled "End Conference," which allows the user to end the video conference by selecting it.
PIP显示6965只是呈现由远程设备和本地设备拍摄的视频的合成视图的一种方式。一些实施例可以提供其它的合成视图。例如,代替具有来自远程设备的视频的较大背景显示6915,较大的背景显示6915可以是来自本地设备的视频,较小的前景插入显示6905和6910可以是来自远程设备的视频。另外,一些实施例允许本地视频和远程视频出现在插入显示6905和6910在一侧,背景显示6915在另一侧,或者所有这三个显示并排排列的UI 6910中。在其它实施例中,PIP显示6965可包含较大的背景显示6915和/或较小的前景插入显示。在一些实施例中,PIP显示6965或者默认显示模式的方式可由用户指定。The PIP display 6965 is just a way of presenting a composite view of the video taken by the remote device and the local device. Some embodiments may provide other composite views. For example, instead of a larger background display 6915 with video from a remote device, the larger background display 6915 could be the video from the local device and the smaller foreground inset displays 6905 and 6910 could be the video from the remote device. Additionally, some embodiments allow local and remote video to appear in the UI 6910 with the inset displays 6905 and 6910 on one side, the background display 6915 on the other, or all three displays side-by-side. In other embodiments, the PIP display 6965 may comprise a larger background display 6915 and/or a smaller foreground inset display. In some embodiments, the manner in which the PIP displays 6965 or the default display mode can be specified by the user.
图69通过参考五个不同的操作阶段6920、6925、6930、6935和6940,图解说明设备6900的UI 6960中的两个插入显示区之一的移动。第一阶段6920图解说明在设备6900的本地用户和远程设备的远程用户之间的视频会议期间的UI 6960。69 illustrates the movement of one of the two inset display areas in the UI 6960 of the device 6900 by referring to five different stages of operation 6920, 6925, 6930, 6935, and 6940. The first stage 6920 illustrates the UI 6960 during a video conference between a local user of the device 6900 and a remote user of the remote device.
第二阶段6925图解说明通过选择插入显示区6910,用户开始锁定到角落操作。在这个例子中,通过把手指6950放在插入显示区6910内的任何地方,做出选择。如图所示,用插入显示区6910的粗边框6962显示这种选择。不同的实施例可用不同的方式指出这样的选择,比如通过突出显示插入显示区6910,通过使插入显示区6910摆动,等等。The second stage 6925 illustrates that by selecting the inset display area 6910, the user begins the lock-to-corner operation. In this example, by placing finger 6950 anywhere within inset display area 6910, a selection is made. This selection is displayed with a thick border 6962 inserted into the display area 6910 as shown. Different embodiments may indicate such selection in different ways, such as by highlighting the inset display area 6910, by shaking the inset display area 6910, and the like.
第三阶段6930图解说明在用户开始把PIP显示6965的插入显示区6910从PIP显示6965中的一个区域移动到PIP显示6965中的另一个区域之后的UI 6960。在这个例子中,插入显示区6910已开始从PIP显示6965的右下角向PIP显示6965的右上角移动,如箭头6955所示。在选择插入显示区6910之后,用户通过朝着PIP显示6965的右上角拖动其手指6950,移动插入显示区6910。一些实施例提供在PIP显示6965中来回移动插入显示区6910的其它技术。The third stage 6930 illustrates the UI 6960 after the user begins moving the inset display area 6910 of the PIP display 6965 from one area in the PIP display 6965 to another area in the PIP display 6965. In this example, inset display area 6910 has begun to move from the lower right corner of PIP display 6965 to the upper right corner of PIP display 6965, as indicated by arrow 6955. After selecting the inset display area 6910 , the user moves the inset display area 6910 by dragging his finger 6950 towards the upper right corner of the PIP display 6965 . Some embodiments provide other techniques for moving the inset display area 6910 around in the PIP display 6965 .
第四阶段6935图解说明在用户已从设备6900的屏幕移开其手指6950之后的状态下的UI 6960。在这种状态下,插入显示区6910仍然朝着根据第三阶段中的用户手指移动而识别的PIP显示6965的右上角移动。换句话说,在手指6950启动插入显示区6910朝着PIP显示6965的右上角的移动之后,即使在移开手指6950之后,UI 6960仍然保持这种移动。为了保持所述移动,一些实施例的UI 6960要求在用户移开其手指之前,用户的拖动操作要大于特定的阈值量(例如,大于特定的距离,或者长于特定的时间);否则,这些实施例会在稍微移动插入显示区之后,使该插入显示区保持在其初始的右下角位置,或者根本不移动该插入显示区。The fourth stage 6935 illustrates the UI 6960 in a state after the user has removed his finger 6950 from the screen of the device 6900. In this state, the inset display area 6910 is still moving towards the upper right corner of the PIP display 6965 identified from the user's finger movement in the third stage. In other words, after finger 6950 initiates movement of inset display area 6910 towards the upper right corner of PIP display 6965, UI 6960 maintains this movement even after finger 6950 is removed. To maintain the movement, the UI 6960 of some embodiments requires that the user's drag operation be greater than a certain threshold amount (e.g., greater than a certain distance, or longer than a certain time) before the user removes their finger; otherwise, these Embodiments may keep the inset display area in its original lower right corner position after moving it slightly, or not move the inset display area at all.
不过,尽管即使用户在插入显示区到达其新位置之前,停止了他的拖动操作,一些实施例仍然允许插入显示区继续移动,不过其它实施例要求用户保持拖动操作,直到插入显示区到达其新位置为止。一些实施例提供移动插入显示区的其它技术。例如,一些实施例要求用户在显示区6910实际开始移动之前,指定要把显示区6910引导到何处,等等。一些实施例还通过仅仅以不同角度倾斜移动设备,使显示区可以滑动和锁定到角落。However, while some embodiments allow the inset display to continue moving even if the user stops his dragging operation before the inset display area reaches its new location, other embodiments require the user to keep dragging until the inset display area reaches its new location. its new location. Some embodiments provide other techniques for moving the inset display area. For example, some embodiments require the user to specify where to direct the display area 6910, etc., before the display area 6910 actually begins to move. Some embodiments also allow the display area to slide and lock into corners by simply tilting the mobile device at different angles.
第五阶段6940图解说明在插入显示区6910到达其位于PIP显示区6965的右上角的新位置之后的UI 6960。第五阶段中粗边框6962的消除指示锁定到角落操作已完成。The fifth stage 6940 illustrates the UI 6960 after the inset display area 6910 reaches its new location in the upper right corner of the PIP display area 6965. The elimination of the thick border 6962 in the fifth stage indicates that the lock to corner operation is complete.
为了使在上述第三、第四和第五阶段6930、6935和6940中图解说明的移动更容易,一些实施例的UI 6960采用一旦用户使插入显示区6910朝着PIP显示6965的某个角落移动,就允许插入显示区6910快速锁定到该角落的锁定规则。例如,当用户朝着特定角落拖动插入显示区6910超过阈值量时,一些实施例的UI 6960识别插入显示区6910的运动方向,确定所述运动已超过阈值量,从而随后自动移动插入显示区6910,而不用用户进一步输入插入显示区6910可被锁定到的UI 6960中的下一个网格点。在一些实施例中,为锁定插入显示区6910而提供的唯一网格点是位于PIP显示6965的四个角落的网格点。其它实施例提供插入显示区6910可被锁定到的UI 6960中(例如,PIP显示6965中)的其它网格点。To facilitate the movements illustrated in the third, fourth, and fifth stages 6930, 6935, and 6940 described above, the UI 6960 of some embodiments employs , it allows the insertion display area 6910 to quickly lock to the corner locking rules. For example, when a user drags the inset display area 6910 toward a particular corner beyond a threshold amount, the UI 6960 of some embodiments identifies the direction of motion of the inset display area 6910, determines that the movement has exceeded a threshold amount, and then automatically moves the inset display area 6910 without further user input the insertion display area 6910 may be locked to the next grid point in the UI 6960. In some embodiments, the only grid points provided for locking inset display area 6910 are the grid points located at the four corners of PIP display 6965 . Other embodiments provide for other grid points in the UI 6960 (e.g., in the PIP display 6965) that the insertion display area 6910 can be locked to.
另外的实施例可以不采用网格点,使得插入显示区6910可被置于PIP显示中的任意点。再另外的实施例提供允许用户打开或关闭UI的锁定到网格点特征。此外,除了从设备拍摄的视频之外,不同的实施例可允许用户对各种项目,比如图标等执行锁定到角落操作。如上所述,合成显示的一个或多个显示区的移动会导致双照相机移动设备的图像处理操作的变化,比如导致视频会议管理器1604响应用户的输入,重新合成合成显示中的显示区。Alternative embodiments may not employ grid points such that the inset display area 6910 may be placed at any point in the PIP display. Still further embodiments provide a pin to grid point feature that allows the user to toggle the UI on or off. Additionally, various embodiments may allow users to perform pin-to-corner operations on various items, such as icons, in addition to video captured from the device. As noted above, movement of one or more display areas of the composite display can result in changes to the image processing operations of the dual camera mobile device, such as causing the video conference manager 1604 to recompose the display areas in the composite display in response to user input.
5.推送和锁定5. Push and lock
图69中的例子图解说明允许双照相机移动设备的用户把两个插入显示区之一,从PIP显示的一个角落移动到未被插入显示占据的另一个角落的锁定到角落操作。一些实施例能够实现把第一插入显示移动到第二插入显示的位置,还把第二插入显示推送到新位置的推送特征。图70图解说明在视频会议期间执行的一个这种例子。The example in FIG. 69 illustrates a pin to corner operation that allows a user of a dual camera mobile device to move one of the two inset display areas from one corner of the PIP display to another corner not occupied by the inset display. Some embodiments enable a push feature that moves the first inset display to the location of the second inset display, and also pushes the second inset display to the new location. Figure 70 illustrates one such example performed during a video conference.
图70通过参考UI 6960的六个不同阶段7020、7025、7030、7035、7040和7045,图解说明插入显示从PIP显示的一个角落到未被另一个插入显示占据的PIP显示的另一个角落的移动。第一阶段7020图解说明在该设备的本地用户和远程设备的远程用户之间的视频会议期间的UI 6960。图70中的UI 6960表示和在开始视频会议之后,在图69的第一阶段中所示的PIP相同的PIP显示6965。在这个例子中,由本地用户的设备拍摄的视频被显示在插入显示区6905和6910中,由远程用户的设备拍摄的视频被显示在背景显示区6915中。Figure 70 illustrates the movement of an inset display from one corner of the PIP display to another corner of the PIP display not occupied by another inset display by referring to six different stages 7020, 7025, 7030, 7035, 7040, and 7045 of the UI 6960 . The first stage 7020 illustrates the UI 6960 during a video conference between a local user of the device and a remote user of the remote device. UI 6960 in FIG. 70 represents the same PIP display 6965 as that shown in the first stage of FIG. 69 after starting the video conference. In this example, video captured by the local user's device is displayed in inset display areas 6905 and 6910 , and video captured by the remote user's device is displayed in background display area 6915 .
第二阶段7025图解说明用户通过选择插入显示区6905,开始锁定到角落操作。在这个例子中,通过把手指7055放在插入显示区6905内的任意地方,进行选择。如图所示,用插入显示区6905的粗边框7065显示这种选择。不同的实施例用不同的方式指示这样的选择,比如通过突出显示区6905,通过使显示区6905摆动,等等。The second stage 7025 illustrates that the user initiates the lock to corner operation by selecting the inset display area 6905 . In this example, selection is made by placing finger 7055 anywhere within inset display area 6905. This selection is displayed with a thick border 7065 inserted into the display area 6905, as shown. Different embodiments indicate such selection in different ways, such as by highlighting the display area 6905, by shaking the display area 6905, and the like.
第三阶段7030图解说明如箭头7050所示,在用户开始把插入显示区6905从PIP显示6965的左下角移向PIP显示6965的右下角(通过在第三阶段中,在选择插入显示区6905之后,朝着PIP显示6965的右下角拖动他的手指7055)之后的UI 6960。一些实施例提供在PIP显示6965中来回移动插入显示区6905的其它技术。The third stage 7030 illustrates that, as indicated by arrow 7050, after the user begins to move the inset display area 6905 from the lower left corner of the PIP display 6965 to the lower right corner of the PIP display 6965 (by in the third stage, after selecting the inset display area 6905 , UI 6960 after dragging his finger 7055) towards the bottom right corner of the PIP display 6965. Some embodiments provide other techniques for moving the inset display area 6905 around in the PIP display 6965 .
第四阶段7035图解说明在插入显示区6905接触插入显示区6910之后的UI 6960。当接触时,插入显示区6910朝着下一个最近的角落移动。在这个例子中,插入显示区6910开始沿PIP显示6965的右上角的方向(如箭头7075所示)移动。用插入显示区6910的粗边框7070,显示这种推送操作的激活。不同的实施例可用不同的方式指示这种激活,比如通过突出显示区6910,等等。The fourth stage 7035 illustrates the UI 6960 after the inset display area 6905 contacts the inset display area 6910. When touched, the inset display area 6910 moves towards the next closest corner. In this example, inset display area 6910 begins moving in the direction of the upper right corner of PIP display 6965 (as indicated by arrow 7075). Activation of this push operation is shown with a thick border 7070 inserted into the display area 6910 . Different embodiments may indicate this activation in different ways, such as by highlighting 6910, and so on.
第五阶段7040图解说明在插入显示区6905被锁定到先前被插入显示区6910占据的右下角之后的状态下的UI。在这个例子中,该插入显示区仍然朝着PIP显示6965的右上角移动。另外,不再显示粗边框7065。只要第三阶段7030的用户拖动操作大于使插入显示区6905锁定到右角落的阈值,就把插入显示区6910从其角落移开,并一直锁定到下一个最低的角落。The fifth stage 7040 illustrates the UI in a state after the inset display area 6905 is locked to the lower right corner previously occupied by the inset display area 6910 . In this example, the inset display area is still moving towards the upper right corner of the PIP display 6965. Additionally, the thick border 7065 is no longer displayed. As long as the third stage 7030 user drag operation is greater than the threshold for locking the inset display area 6905 to the right corner, the inset display area 6910 is moved away from its corner and locked all the way to the next lowest corner.
一些实施例包括确定采用哪种方式推送第二插入显示区6910的一组规则。在图70中图解说明的情况下,一些实施例设法继续保持插入显示区的旋转。即,由于插入显示区6905是沿逆时针方向移动的,因此显示区6910也被逆时针移动。一些实施例提供被推送的插入显示区6910能够移动到的可能位置的分级,并选择该列表上的第一个未被占据的位置。例如,当位于右下角的插入显示区被来自左下角的插入显示区推送时,右上角可能是这种列表中的第一个位置。不过,如果第三插入显示区已位于右上角,那么一些实施例会移动到列表上的下一个选项(例如,左上角、中心、或者左下角)。其它实施例可随着第二插入显示区一起推送第三插入显示区,使得设备不需要确定第三插入显示区的新位置。Some embodiments include a set of rules that determine which way to push the second inset display area 6910. In the case illustrated in Figure 70, some embodiments seek to continue to maintain the rotation of the inset display area. That is, since the insertion display area 6905 is moved in the counterclockwise direction, the display area 6910 is also moved counterclockwise. Some embodiments provide a hierarchy of possible positions to which the pushed insert display area 6910 can be moved, and select the first unoccupied position on the list. For example, the upper right corner may be the first position in such a list when an inset display area located in the lower right corner is pushed by an inset display area from the lower left corner. However, if the third inset display area is already in the upper right corner, some embodiments move to the next option on the list (eg, upper left, center, or lower left). Other embodiments may push the third inset display area along with the second inset display area so that the device does not need to determine a new location for the third inset display area.
第六阶段7045图解说明在插入显示区6910到达其位于PIP显示区6965的右上角的新位置之后的UI 6960。在该阶段中,粗边框7070的消除指示锁定到角落-推送操作已完成。类似于参考图68说明的推送到角落操作,合成显示的一个或多个显示区的移动能够导致双照相机移动设备的图像处理操作的变化,比如导致视频会议管理器1604响应用户的输入,重新合成合成显示中的显示区。The sixth stage 7045 illustrates the UI 6960 after the inset display area 6910 has reached its new location in the upper right corner of the PIP display area 6965. At this stage, the removal of the thick border 7070 indicates the lock to the corner - the push operation is complete. Similar to the push-to-corner operation described with reference to FIG. 68 , movement of one or more display areas of the composite display can result in changes to the image processing operations of the dual-camera mobile device, such as causing the videoconferencing manager 1604 to recompose the display in response to user input. The display area in the composite display.
6.旋转6. Rotate
当用于视频会议的移动设备的用户在会议期间旋转该设备时,一些实施例旋转在视频会议期间呈现的PIP显示。图71图解说明当设备7100从垂直位置被旋转到水平位置时,该设备的UI显示7175的旋转。当屏幕的长边是垂直的时,设备7100被竖握,而当屏幕的长边水平时,设备7100被横握。在图71中图解说明的例子中,UI显示7175从为设备的竖握而优化的纵向视图旋转到为设备7100的横握而优化的横向视图。这种旋转功能使得当移动设备7100被竖握或横握时,用户都能够观看以直立位置显示的UI 7175。图71中图解说明的例子类似于图34中图解说明的例子,除了图71图解说明旋转包括两个插入显示区而不只是一个插入显示区的PIP显示。When a user of a mobile device used for video conferencing rotates the device during the meeting, some embodiments rotate the PIP display presented during the video conference. Figure 71 illustrates the rotation of the device's UI display 7175 as the device 7100 is rotated from a vertical position to a horizontal position. When the long side of the screen is vertical, the device 7100 is held vertically, and when the long side of the screen is horizontal, the device 7100 is held horizontally. In the example illustrated in FIG. 71 , UI display 7175 rotates from a portrait view optimized for a vertical hold of the device to a landscape view optimized for a landscape hold of device 7100 . This rotation functionality enables the user to view the UI 7175 displayed in an upright position when the mobile device 7100 is held vertically or horizontally. The example illustrated in FIG. 71 is similar to the example illustrated in FIG. 34, except that FIG. 71 illustrates a PIP display that rotates to include two inset display areas rather than just one.
在图71中,在与另一个移动设备的远程用户的视频会议期间,移动设备的UI 7175呈现PIP显示7180。图71中的PIP显示7180包括三个视频显示:背景主显示7115和两个前景插入显示7110和7160。在这个例子中,背景主显示7115呈现山脉的视频,所述视频假定是由远程设备的正面或背面照相机拍摄的视频。前景插入显示7110呈现房间中的笑脸的视频,所述视频假定由本地设备的正面或背面照相机拍摄。另一个前景插入显示7160呈现唱歌的吉它演奏者的视频,所述吉它演奏者假定是正由本地设备的另一部照相机拍摄其视频的吉它演奏者。PIP显示7180下面是“结束会议”按钮7155,用户可以选择该按钮以结束视频会议(例如,通过单指轻点)。该PIP显示只是呈现由远程设备和本地设备拍摄的视频的合成视图的一种方式。一些实施例可提供其它合成视图,比如平铺视图或者不同的PIP显示。In FIG. 71 , the mobile device's UI 7175 presents a PIP display 7180 during a video conference with a remote user of another mobile device. PIP display 7180 in FIG. 71 includes three video displays: a background main display 7115 and two foreground inset displays 7110 and 7160. In this example, the background main display 7115 presents a video of a mountain range, which is assumed to be video taken by the remote device's front or back camera. The foreground inset display 7110 presents a video of a smiling face in the room, assumed to be captured by the local device's front or back camera. Another foreground insert shows 7160 presenting a video of a singing guitar player, presumably the one whose video is being captured by another camera of the local device. Below the PIP display 7180 is an "End Meeting" button 7155, which the user may select to end the video conference (eg, with a one-finger tap). This PIP display is just one way of presenting a composite view of the video captured by the remote device and the local device. Some embodiments may provide other composite views, such as tiled views or different PIP displays.
图71按照六个不同的操作阶段7120、7125、7130、7135、7140和7145,图解说明UI 7175的旋转。第一阶段7120图解说明在该设备的本地用户和远程设备的远程用户之间的视频会议期间的UI7175。FIG. 71 illustrates the rotation of the UI 7175 according to six different stages of operation 7120, 7125, 7130, 7135, 7140, and 7145. The first stage 7120 illustrates the UI 7175 during a video conference between a local user of the device and a remote user of the remote device.
第二阶段7125图解说明在用户开始向一边倾斜设备7100之后的UI 7175。在这个例子中,设备7100已开始把设备7100从竖握倾斜到被横握,如箭头7185所示。UI 7175的外观没有变化。在其它情况下,用户可能改为想把设备7100从被横握倾斜到被竖握,在这些情况下,UI显示7175从水平优化的视图切换到垂直优化的视图。The second stage 7125 illustrates the UI 7175 after the user begins to tilt the device 7100 sideways. In this example, device 7100 has begun tilting device 7100 from being held vertically to being held horizontally, as indicated by arrow 7185 . The appearance of UI 7175 has not changed. In other cases, the user may instead want to tilt the device 7100 from being held horizontally to being held vertically, in which case UI display 7175 switches from a horizontally optimized view to a vertically optimized view.
第三阶段7130图解说明在设备7100已从被竖握倾斜到被横握之后的状态下的UI 7175。在这种状态下,UI显示7175的外观仍然没有变化。在一些实施例中,在设备7100被倾斜超过阈值量,并保持超过阈值量一段时间之后,触发旋转操作。在图71中图解说明的例子中,假定阈值量和旋转速度不会使UI显示7175旋转,直到设备已放置在水平位置之后的较短时间间隔为止。不同的实施例具有用于触发旋转操作的不同阈值量和等待时间。例如,一些实施例可具有如此低的触发旋转操作的阈值,使得不管设备7100的定向,都使UI 7175显得好像它总是以直立位置显示似的。在其它实施例中,设备7100的用户可以规定何时可以触发旋转操作(例如,通过菜单优先选择设置)。另外,一些实施例可在设备被倾斜超过阈值量之后,不延迟所述旋转。此外,不同的实施例可以允许用不同的方式触发旋转操作,比如通过切换移动设备上的开关、通过发出话音命令、依据通过菜单进行的选择,等等。The third stage 7130 illustrates the UI 7175 after the device 7100 has been tilted from being held vertically to being held horizontally. In this state, the UI shows that the appearance of 7175 remains unchanged. In some embodiments, the rotation operation is triggered after the device 7100 is tilted more than a threshold amount and held there for a period of time. In the example illustrated in FIG. 71 , it is assumed that the threshold amount and rotation speed will not cause the UI display 7175 to rotate until a short time interval after the device has been placed in the horizontal position. Different embodiments have different threshold amounts and wait times for triggering a rotation operation. For example, some embodiments may have such a low threshold for triggering a rotation operation that regardless of the orientation of the device 7100, the UI 7175 appears as if it is always displayed in an upright position. In other embodiments, a user of device 7100 may specify when a rotation operation may be triggered (eg, via a menu preference setting). Additionally, some embodiments may not delay the rotation after the device has been tilted beyond a threshold amount. Furthermore, different embodiments may allow the rotation operation to be triggered in different ways, such as by toggling a switch on the mobile device, by issuing a voice command, upon selection through a menu, and so on.
第四阶段7135图解说明在开始旋转操作之后的UI 7175。一些实施例动画演示旋转显示区,以向用户提供关于旋转操作的反馈。图71图解说明这样的一种动画的例子。具体地说,图71在其第四阶段7135表现显示区7110、7115和7160一起开始旋转。显示区7110、7115和7160围绕经过UI显示7175的中心的轴7165(即,z轴)旋转。显示区7110、7115和7160被旋转相同的数量,不过沿与设备7100的旋转(例如,通过设备7100的倾斜)相反的方向旋转。在这个例子中,由于设备7100沿顺时针方向旋转了90°(通过从竖握变成横握),因此旋转操作会使显示区7110、7115和7160沿逆时针方向旋转90°。当显示区7110、7115和7160旋转时,显示区7110、7115和7160按比例地缩小,以适合UI显示7175,使得显示区7110、7115和7160仍然可以完全出现在UI 7175内。一些实施例可提供指示设备7100的状态的消息(例如,通过显示字词“Rotating(旋转)”)。The fourth stage 7135 illustrates the UI 7175 after starting the rotation operation. Some embodiments animate the rotation of the display area to provide feedback to the user regarding the rotation operation. Figure 71 illustrates an example of such an animation. Specifically, Figure 71 in its fourth stage 7135 shows display areas 7110, 7115 and 7160 starting to rotate together. Display areas 7110 , 7115 , and 7160 rotate about axis 7165 (ie, the z-axis) that passes through the center of UI display 7175 . Display areas 7110, 7115, and 7160 are rotated by the same amount, but in a direction opposite to the rotation of device 7100 (eg, by tilting of device 7100). In this example, since device 7100 is rotated 90° clockwise (by going from vertical to horizontal holding), the rotating operation will cause display areas 7110, 7115, and 7160 to rotate 90° counterclockwise. When display areas 7110, 7115, and 7160 are rotated, display areas 7110, 7115, and 7160 are scaled down to fit UI display 7175 such that display areas 7110, 7115, and 7160 can still fully appear within UI 7175. Some embodiments may provide a message indicating the status of the device 7100 (eg, by displaying the word "Rotating").
第五阶段7140图解说明在显示区7110、7115和7160从纵向视图到横向视图逆时针旋转90°之后的UI 7175。在这个阶段,显示区7110、7115和7160已被旋转,不过还未展开到UI 7175的整个宽度。箭头7170指出在第五阶段的结尾,显示区7110、7115和7160将开始侧向展开,以适合UI 7175的整个宽度。不同的实施例可不包括该阶段,因为可以与第四阶段7135中的旋转同时地进行所述展开。The fifth stage 7140 illustrates the UI 7175 after display areas 7110, 7115, and 7160 have been rotated 90° counterclockwise from portrait view to landscape view. At this stage, display areas 7110, 7115, and 7160 have been rotated, but not expanded to the full width of UI 7175. Arrow 7170 indicates that at the end of the fifth stage, display areas 7110, 7115, and 7160 will begin to expand sideways to fit the full width of UI 7175. Different embodiments may not include this stage, as the deployment may occur concurrently with the rotation in the fourth stage 7135 .
第六阶段7145图解说明在显示区7110、7115和7160已被展开,以占据UI 7175的整个显示之后的UI 7175。如上所述,其它实施例可以不同地实现这种旋转。对一些实施例来说,仅仅把设备的屏幕旋转超过阈值量就可触发所述旋转操作,而不管设备7100的定向。The sixth stage 7145 illustrates UI 7175 after display areas 7110, 7115, and 7160 have been expanded to occupy the entire display of UI 7175. As noted above, other embodiments may achieve this rotation differently. For some embodiments, the rotation operation may be triggered simply by rotating the screen of the device beyond a threshold amount, regardless of the orientation of the device 7100.
另外,其它实施例可提供用于指示旋转操作的不同动画。在图71中执行的旋转操作涉及UI显示7175围绕UI显示7175的中心旋转。另一方面,可以使显示区围绕它们各自显示区的中心轴单独旋转。图72中表示了一种这样的方法,图72表示动画演示UI 7175的PIP显示区7180的旋转的备选方法。图72中图解说明的PIP显示和图71中图解说明的PIP显示7180相同。Additionally, other embodiments may provide different animations for indicating rotation operations. The rotation operation performed in FIG. 71 involves rotation of the UI display 7175 about the center of the UI display 7175. Alternatively, the display areas may be individually rotated about the central axis of their respective display areas. One such method is shown in FIG. 72, which shows an alternative method of animating the rotation of the PIP display area 7180 of the UI 7175. The PIP display illustrated in FIG. 72 is the same as the PIP display 7180 illustrated in FIG. 71 .
图72按照六个不同的操作阶段7120、7125、7130、7220、7225和7230,图解说明PIP显示7180的旋转。UI 7175的前三个阶段的操作与如在图71中的UI 7175中说明的前三个阶段的操作相同。在图71和72的第三阶段,设备都已从竖握变成横握,并且UI 7175的旋转还未开始。FIG. 72 illustrates the rotation of the PIP display 7180 according to six different stages of operation 7120 , 7125 , 7130 , 7220 , 7225 , and 7230 . The operation of the first three stages of UI 7175 is the same as that of the first three stages as illustrated in UI 7175 in FIG. 71 . In the third stage of Figures 71 and 72, both devices have changed from vertical to horizontal holding, and the rotation of UI 7175 has not yet started.
第四阶段7220图解说明动画演示所述旋转的备选方法。在第四阶段,旋转操作已开始。具体地说,第四阶段7220表现显示区7110、7115和7160的旋转的开始。显示区7110、7115和7160分别围绕穿过每个显示区的中心的轴7250(即,z轴)旋转。显示区7110、7115和7160被旋转相同的量,不过沿与设备7100的旋转(例如通过设备7100的倾斜)相反的方向旋转。在这个例子中,由于设备7100沿顺时针方向旋转了90°(通过从竖握变成横握),因此旋转操作会使显示区7110、7115和7160沿逆时针方向旋转90°。当显示区7110、7115和7160旋转时,它们还按比例缩小,以适合UI显示7175,使得显示区7110、7115和7160仍然可以完全出现在UI 7175上。The fourth stage 7220 illustrates an alternative method of animating the rotation. In the fourth stage, the rotation operation has started. Specifically, fourth stage 7220 represents the beginning of rotation of display areas 7110 , 7115 , and 7160 . The display areas 7110, 7115, and 7160 rotate about an axis 7250 (ie, a z-axis) passing through the center of each display area, respectively. Display areas 7110, 7115, and 7160 are rotated by the same amount, but in a direction opposite to the rotation of device 7100 (eg, by tilting of device 7100). In this example, since device 7100 is rotated 90° clockwise (by going from vertical to horizontal holding), the rotating operation will cause display areas 7110, 7115, and 7160 to rotate 90° counterclockwise. When display areas 7110, 7115, and 7160 rotate, they also scale down to fit UI display 7175 so that display areas 7110, 7115, and 7160 can still fully appear on UI 7175.
第五阶段7225图解说明在显示区7110、7115和7160都从纵向视图到横向视图逆时针旋转90°之后的UI 7175。在这个阶段,显示区7110、7115和7160已被旋转,不过还未展开到UI 7175的整个宽度,或者到达它们的最终位置。显示区在PIP显示7115中的最终位置由如在第一阶段7120中所示的显示区在PIP显示7115中的位置确定(例如,插入显示7110在PIP显示7180的左下角,和插入显示7160在PIP显示7180的右下角)。The fifth stage 7225 illustrates the UI 7175 after display areas 7110, 7115, and 7160 have all been rotated 90° counterclockwise from portrait view to landscape view. At this stage, display areas 7110, 7115, and 7160 have been rotated, but have not expanded to the full width of UI 7175, or reached their final positions. The final location of the display area in PIP display 7115 is determined by the position of the display area in PIP display 7115 as shown in first stage 7120 (e.g., inset display 7110 in the lower left corner of PIP display 7180, and inset display 7160 in bottom right corner of PIP display 7180).
箭头7170指出在第五阶段的结尾,显示区7115、7110和7160将开始侧向展开,直到主显示区7115适合UI 7175的整个宽度为止。此外,箭头7255指出插入显示区7110和7160将移动,从而到达它们在PIP显示7180中的最终位置。换句话说,插入显示区7110将向下朝着PIP显示7180的左下角移动,而另一个插入显示区7160移向PIP显示7180的右下角。不同的实施例可不同地实现这种动画,例如通过利用在图71中图解说明的锁定和推送操作。第六阶段7230图解说明在显示区7110、7115和7160已被展开从而占据UI 7175的整个显示并且已移动到它们的最终位置之后的UI 7175。Arrow 7170 indicates that at the end of the fifth stage, display areas 7115, 7110, and 7160 will begin to expand sideways until main display area 7115 fits the full width of UI 7175. Additionally, arrow 7255 indicates that inset display areas 7110 and 7160 will move to reach their final positions in PIP display 7180 . In other words, the inset display area 7110 will move down towards the lower left corner of the PIP display 7180 while the other inset display area 7160 will move towards the lower right corner of the PIP display 7180 . Different embodiments may implement this animation differently, for example by utilizing the lock and push operations illustrated in FIG. 71 . The sixth stage 7230 illustrates UI 7175 after display areas 7110, 7115, and 7160 have been expanded to occupy the entire display of UI 7175 and have moved to their final positions.
如上所述,其它实施例可不同地实现这种旋转。例如,与图36和37中图解说明的类似,一些实施例提供一种旋转操作,其中显示由本地设备拍摄的视频的显示区的定向改变,以反映在对本地设备进行旋转操作之后本地设备的定向,一些实施例提供一种旋转操作,其中显示由远程设备拍摄的视频的显示区的定向改变,以反映在对远程设备进行旋转操作之后远程设备的定向,一些实施例提供其中显示区1155保留在相同位置的旋转操作,一些实施例提供显示区中的不同布局(例如,图12的显示区1155的布局),或者它们的组合。As noted above, other embodiments may achieve this rotation differently. For example, similar to that illustrated in FIGS. 36 and 37 , some embodiments provide a rotation operation in which the orientation of the display area displaying video captured by the local device changes to reflect the orientation of the local device after the rotation operation is performed on the local device. Orientation, some embodiments provide a rotate operation wherein the orientation of the display area showing the video captured by the remote device changes to reflect the orientation of the remote device after the remote device is rotated, some embodiments provide wherein the display area 1155 remains Rotation operations at the same location, some embodiments provide different layouts in the display area (eg, the layout of display area 1155 of FIG. 12 ), or combinations thereof.
对一些实施例来说,仅仅使设备的屏幕旋转超过阈值量就可触发旋转操作,而不管设备7100的定向。另外如上所述,本地设备和远程设备可通过控制通信通道,相互通知对两个设备中的一个设备进行的旋转操作,以允许另一个设备对所述一个设备的视频进行任何对应的修改。另外,旋转操作的动画还会导致照相机的操作或者双照相机移动设备的图像处理操作的变化,比如使视频会议管理器1604重新合成UI 1105中的成不同角度的一个或多个显示区,和比例缩放显示在一个或多个显示区中的图像。For some embodiments, simply rotating the device's screen beyond a threshold amount may trigger a rotate operation, regardless of the orientation of the device 7100. Also as mentioned above, the local device and the remote device can notify each other of the rotation operation performed on one of the two devices through the control communication channel, so as to allow the other device to make any corresponding modification to the video of the one device. In addition, the animation of the rotation operation can also cause changes in the operation of the camera or the image processing operation of the dual-camera mobile device, such as causing the video conference manager 1604 to recompose one or more display areas in the UI 1105 at different angles, and scale Zooms the image displayed in one or more display areas.
7.选择观看远程视图7. Select Watch Remote View
如上所述,一些实施例允许双照相机移动设备的用户在开始视频会议之前,或者在开始视频会议时,选择把哪部照相机用于视频会议。代替这种能力,或者与这种能力结合,一些实施例允许该设备的用户在两个视频之间进行选择,所述两个视频是在视频会议中显示的并且或者来自远程设备的两部视频照相机,或者来自用户的本地设备的两部视频照相机。图73图解说明在会议中选择两个远程视频中的一个视频,而图74图解说明在会议中选择两个本地视频中的一个视频。As noted above, some embodiments allow a user of a dual-camera mobile device to select which camera to use for a video conference prior to starting the video conference, or while starting the video conference. Instead of, or in conjunction with, this capability, some embodiments allow the user of the device to choose between two videos displayed in a video conference and either from a remote device. camera, or two video cameras from the user's local device. Figure 73 illustrates the selection of one of two remote videos in a meeting, while Figure 74 illustrates the selection of one of two local videos in a meeting.
图73按照显示在本地设备7300上的UI 7375的六个操作阶段7335、7340、7345、7350、7355和7360,图解说明所述远程视频的选择。第一阶段7335图解说明具有在与具有两部照相机的移动设备的远程用户的视频会议期间,呈现的初始PIP显示7390的UI 7375。73 illustrates the selection of the remote video in terms of six operational stages 7335, 7340, 7345, 7350, 7355, and 7360 of the UI 7375 displayed on the local device 7300. The first stage 7335 illustrates a UI 7375 with an initial PIP display 7390 presented during a video conference with a remote user of a mobile device with two cameras.
如第一阶段7335中所示,初始PIP显示7390包括三个显示:背景主显示7315和两个前景插入显示7305和7310。背景显示7315占据大部分的PIP显示区7390,而前景插入显示7305和7310分别重叠在UI 7375上的部分背景显示7315上。在这个例子中,背景显示7315呈现在麦克风之前的人物的视频,所述视频假定是由远程设备的背面照相机拍摄的视频。第一前景插入显示7305呈现男士的脸部的视频,在这个例子中,该视频假定是由本地设备7300的照相机之一拍摄的视频。第二前景插入显示7310呈现戴着帽子的人物的视频,在这个例子中,该视频假定是由远程设备的正面照相机拍摄的视频。As shown in the first stage 7335, the initial PIP display 7390 includes three displays: a background main display 7315 and two foreground inset displays 7305 and 7310. Background display 7315 occupies most of the PIP display area 7390, while foreground inset displays 7305 and 7310 each overlay a portion of background display 7315 on UI 7375. In this example, the background display 7315 presents a video of the person in front of the microphone, which is assumed to be video taken by the remote device's back camera. A first foreground inset display 7305 presents a video of the man's face, which in this example is assumed to be video taken by one of the cameras of the local device 7300. A second foreground inset display 7310 presents a video of a figure wearing a hat, which in this example is assumed to be video taken by the remote device's front camera.
初始PIP显示7390只是呈现由本地设备和远程设备的照相机拍摄的视频的合成视图的一种方式。一些实施例可以提供其它的合成视图。例如,背景显示可以呈现来自本地设备的照相机之一的视频,较小的前景插入显示可以呈现来自远程设备的正面照相机和背面照相机的视频。另外,在一些情况下,PIP显示可以只包括均来自远程设备的一个背景视频显示和一个前景视频显示。在一些实施例中,PIP显示的方式或者默认显示模式可由用户指定。The initial PIP display 7390 is just one way of presenting a composite view of the video captured by the cameras of the local device and the remote device. Some embodiments may provide other composite views. For example, a background display may present video from one of the local device's cameras, and a smaller foreground inset display may present video from the remote device's front and back cameras. Additionally, in some cases, a PIP display may include only one background video display and one foreground video display, both from the remote device. In some embodiments, the way of PIP display or the default display mode can be specified by the user.
第二阶段7340图解说明视频选择操作的开始。在这个例子中,通过调用要显示在PIP显示7390上的一组可选UI项目,发起该操作。所述一组可选UI项目呈现用于选择显示用远程视频的选项。在一些实施例中,通过选择(例如,通过触摸)UI 7375上的播放远程视频的任何显示区,调用所述一组可选UI项目。在其它实施例中,通过选择(例如,通过触摸)UI 7375上的任意地方,可调用所述各个项目。代替这种调用操作,或者与这种调用操作结合,一些实施例还允许用户通过其它操作,比如通过不同的触屏操作,或者利用设备的一个或多个其它物理输入,调用所述一组可选UI项目。The second stage 7340 illustrates the beginning of the video selection operation. In this example, the operation is initiated by invoking a set of selectable UI items to be displayed on the PIP display 7390. The set of selectable UI items presents options for selecting remote video for display. In some embodiments, the set of selectable UI items is invoked by selecting (e.g., by touching) any display area on the UI 7375 that is playing the remote video. In other embodiments, the various items may be invoked by selecting (e.g., by touching) anywhere on the UI 7375. Instead of, or in combination with, this invocation operation, some embodiments also allow the user to invoke the set of available functions through other operations, such as through different touch screen operations, or using one or more other physical inputs of the device. Select the UI item.
第三阶段7345显示UI 7375,UI 7375具有一组调用的用于选择远程视频的可选UI项目7380。在这个例子中,呈弹出式菜单形式的一组可选UI项目7380被显示在PIP显示区7390中,重叠在该PIP显示上。所述一组可选UI项目7380(它们可被实现成可选按钮)包括“Select R1”可选UI项目7320(例如,按钮7320),“Select R2”可选UI项目7325(例如,按钮7325),“Select Both”可选UI项目7330(例如,按钮7330),和“Cancel”可选UI项目7385(例如,按钮7385)。在这个例子中,选择“Select R1”按钮7320会使UI 7375只显示由远程设备的背面照相机拍摄的视频(呈现在背景显示7315中)。选择“SelectR2”按钮7325会使UI 7375只显示由远程设备的正面照相机拍摄的视频(呈现在前景插入显示7310中)。选择“Select Both”按钮7330会使UI 7375继续显示由远程设备的正面照相机和背面照相机拍摄的两个视频。选择“Cancel”按钮7385会取消该操作。在一些实施例中,由本地设备拍摄的视频不受在该菜单上进行的选择的影响。The third stage 7345 displays a UI 7375 with a set of optional UI items called 7380 for selecting remote video. In this example, a set of selectable UI items 7380 in the form of a pop-up menu is displayed in the PIP display area 7390, superimposed on the PIP display. The set of selectable UI items 7380 (which may be implemented as selectable buttons) includes a "Select R1" selectable UI item 7320 (e.g., button 7320), a "Select R2" selectable UI item 7325 (e.g., button 7325 ), a "Select Both" selectable UI item 7330 (eg, button 7330), and a "Cancel" selectable UI item 7385 (eg, button 7385). In this example, selecting the "Select R1" button 7320 will cause the UI 7375 to display only the video captured by the remote device's back camera (presented in the background display 7315). Selecting the "Select R2" button 7325 causes the UI 7375 to display only the video captured by the remote device's front camera (presented in the foreground inset display 7310). Selecting the "Select Both" button 7330 causes the UI 7375 to continue to display both videos captured by the remote device's front and back cameras. Selecting the "Cancel" button 7385 cancels the operation. In some embodiments, video captured by the local device is not affected by selections made on this menu.
第四阶段7350图解说明在用户选择了“Select R1”按钮7320(例如,通过用他的手指7365轻点按钮7320)之后的UI 7375。通过突出显示UI 7375上的按钮7320,指示这种选择。一些实施例利用不同的指示显示(例如,突出显示所选项目的边框,或者所选项目中的文本)。The fourth stage 7350 illustrates the UI 7375 after the user has selected the "Select R1" button 7320 (e.g., by tapping the button 7320 with his finger 7365). Such selection is indicated by highlighting button 7320 on UI 7375. Some embodiments utilize different indication displays (eg, a border highlighting a selected item, or text within a selected item).
第五阶段7355图解说明在用户选择了来自R1的视频以便显示之后的UI 7375的动画。在这个例子中,通过如箭头7370所示,使不需要的前景插入显示区7310滑出PIP显示7390的右边缘,UI 7375除去不需要的前景插入显示区7310。其它实施例利用不同的动画来消除不需要的插入显示区,比如使该插入显示区淡出或者渐隐、沿不同的方向移动该插入显示区、或者简单地立即消除该插入显示区。The fifth stage 7355 illustrates the animation of the UI 7375 after the user has selected the video from R1 for display. In this example, UI 7375 removes unwanted foreground inset display area 7310 by sliding it off the right edge of PIP display 7390 as indicated by arrow 7370. Other embodiments eliminate unwanted inset display areas using different animations, such as fading or fading out the inset display area, moving the inset display area in a different direction, or simply eliminating the inset display area immediately.
第六阶段7360显示在结束视频选择操作之后,视频会议期间的UI 7375。视频显示区7310不再显示在UI 7375上。在这个阶段,UI7375呈现新的PIP显示7395,PIP显示7395包括作为背景主显示的视频显示区7315,和作为插入显示的视频显示区7305。The sixth stage 7360 displays the UI 7375 during the video conference after the video selection operation has ended. Video display area 7310 is no longer displayed on UI 7375. At this stage, the UI 7375 presents a new PIP display 7395 that includes a video display area 7315 as a background main display, and a video display area 7305 as an inset display.
在一些实施例中,该视频选择操作还会使远程设备只显示选择的视频,不过在其它实施例中,视频选择操作对远程设备没有任何影响。在一些实施例中,该视频选择操作会使远程设备停止向本地设备传送不需要的视频。事实上,在一些实施例中,盖视频选择操作会使远程设备的照相机停止拍摄不需要的视频。在一些实施例中,远程设备的用户可以否决对远程设备的这些影响。In some embodiments, this video selection operation also causes the remote device to display only the selected video, although in other embodiments, the video selection operation has no effect on the remote device. In some embodiments, this video selection action causes the remote device to stop transmitting unwanted video to the local device. In fact, in some embodiments, the cover video selection action causes the remote device's camera to stop capturing unwanted video. In some embodiments, the user of the remote device can override these effects on the remote device.
上面的例子举例说明选择的远程视图是已显示在背景主显示中的远程视图的情况。在一些实施例中,当用户选择显示在插入显示之一中的远程视图时,选择的远程视图被显示在背景主显示中。这种情况下,一些这样的实施例利用和在图68中显示的动画类似的动画。此外,远程视频的选择会导致本地双照相机移动设备的图像处理操作的变化,比如使视频会议管理器1604响应用户的输入,在合成显示中只合成选择的一个或多个远程视频。The above example illustrates the case where the selected remote view is the remote view already displayed in the background main display. In some embodiments, when the user selects a remote view displayed in one of the inset displays, the selected remote view is displayed in the background main display. In this case, some such embodiments utilize animations similar to those shown in FIG. 68 . In addition, selection of remote videos can result in changes to the image processing operations of the local dual camera mobile device, such as causing video conference manager 1604 to composite only the selected remote video or videos in a composite display in response to user input.
8.选择观看本地视图8. Choose to watch local view
图74按照显示在本地设备7400上的UI 7475的六个操作阶段7435、7440、7445、745、7455和7460,图解说明本地视频的选择。第一阶段7435图解说明UI 7475,UI 7475具有在与具有至少一部照相机的移动设备的远程用户的视频会议期间呈现的初始PIP显示7490。PIP显示7490和在图73中的第一阶段7335中的PIP显示类似,除了不同于图73,背景显示7415呈现由远程设备的照相机拍摄的男士的视频,左侧的前景插入显示7410呈现由本地移动设备的背面照相机拍摄的拿着吉它的人物的视频,右侧的前景插入显示7405呈现由本地移动设备7400的正面照相机拍摄的戴着帽子的男士的视频之外。从而,只显示一个远程视频,而显示两个本地视频。74 illustrates the selection of local video in accordance with six operational stages 7435, 7440, 7445, 745, 7455, and 7460 of the UI 7475 displayed on the local device 7400. The first stage 7435 illustrates a UI 7475 with an initial PIP display 7490 presented during a video conference with a remote user of a mobile device having at least one camera. PIP display 7490 is similar to the PIP display in first stage 7335 in FIG. 73, except that unlike FIG. The foreground inset on the right shows 7405 a video of a man in a hat taken by the front camera of the native mobile device 7400 outside the video of the character holding the guitar captured by the mobile device's back camera. Thus, only one remote video is displayed, while two local videos are displayed.
第二阶段7440图解说明视频选择操作的开始。在这个例子中,通过调用要显示在PIP显示7490上、用于选择显示用远程视频的一组可选UI项目,发起该操作。在一些实施例中,通过选择(例如,通过触摸)UI显示7475上的播放本地视频的任何显示区,可调用所述一组可选UI项目。在其它实施例中,通过选择(例如,通过触摸)UI显示7475上的任意地方,可调用所述各个项目。代替这种调用操作,或者与这种调用操作结合,一些实施例还允许用户通过其它操作,比如通过不同的触屏操作,或者利用设备的一个或多个其它物理输入,调用所述一组可选UI项目。The second stage 7440 illustrates the beginning of the video selection operation. In this example, the operation is initiated by invoking a set of selectable UI items to be displayed on the PIP display 7490 for selecting remote video for display. In some embodiments, the set of selectable UI items can be invoked by selecting (eg, by touching) any display area on UI display 7475 that is playing local video. In other embodiments, the various items may be invoked by selecting (eg, by touching) anywhere on the UI display 7475 . Instead of, or in combination with, this invocation operation, some embodiments also allow the user to invoke the set of available functions through other operations, such as through different touch screen operations, or using one or more other physical inputs of the device. Select the UI item.
第三阶段7445显示UI 7475,UI 7475具有一组调用的用于选择本地视频的可选UI项目7480。在这个例子中,呈弹出式菜单形式的一组可选UI项目7480被显示在PIP显示区7490中,重叠在该PIP显示上。所述一组可选UI项目7480包括“Select L1”可选UI项目7420(例如,按钮7420),“Select L2”可选UI项目7425(例如,按钮7425),“Select Both”可选UI项目7430(例如,按钮7430),和用于取消该操作的“Cancel”可选UI项目7485(例如,按钮7485)。在这个例子中,选择“Select L1”按钮7420会使UI 7475只显示由本地设备的背面照相机拍摄的视频(呈现在前景插入显示7410中)。选择“SelectL2”按钮7425会使UI 7475只显示由本地设备的正面照相机拍摄的视频(呈现在前景插入显示7405中)。选择“Select Both”按钮7430会使UI 7475继续显示由本地设备的两部照相机拍摄的两个视频,以及选择“Cancel”按钮7485会取消该操作。在一些实施例中,由远程设备拍摄的视频不受通过该菜单进行的选择的影响。The third stage 7445 displays a UI 7475 with a set of optional UI items called 7480 for selecting local video. In this example, a set of selectable UI items 7480 in the form of a pop-up menu is displayed in a PIP display area 7490, superimposed on the PIP display. The set of selectable UI items 7480 includes a "Select L1" selectable UI item 7420 (e.g., button 7420), a "Select L2" selectable UI item 7425 (e.g., button 7425), a "Select Both" selectable UI item 7430 (eg, button 7430), and a "Cancel" selectable UI item 7485 (eg, button 7485) for canceling the operation. In this example, selecting the "Select L1" button 7420 causes the UI 7475 to display only the video captured by the local device's back camera (rendered in the foreground inset display 7410). Selecting the "SelectL2" button 7425 causes the UI 7475 to display only the video captured by the local device's front camera (rendered in the foreground inset display 7405). Selecting the "Select Both" button 7430 will cause the UI 7475 to continue to display the two videos captured by the local device's two cameras, and selecting the "Cancel" button 7485 will cancel the operation. In some embodiments, video captured by the remote device is not affected by selections made through this menu.
第四阶段7450图解说明在用户选择了“Select L2”按钮7425(例如,通过用他的手指7465轻点按钮7425)之后的UI 7475。通过突出显示UI 7475上的按钮7425,指示这种选择。一些实施例利用不同的指示显示(例如,突出显示所选项目的边框,或者所选项目中的文本)。The fourth stage 7450 illustrates the UI 7475 after the user has selected the "Select L2" button 7425 (e.g., by tapping the button 7425 with his finger 7465). Such selection is indicated by highlighting button 7425 on UI 7475. Some embodiments utilize different indication displays (eg, a border highlighting a selected item, or text within a selected item).
第五阶段7455显示在用户选择了来自L2的视频以便显示之后的UI 7475的动画。在这个例子中,通过如箭头7470所示,使不需要的前景插入显示7410滑出PIP显示7490的左边缘,UI 7475除去不需要的前景插入显示7410。其它实施例利用不同的动画来消除不需要的插入显示区,比如使该插入显示区淡出或者渐隐、沿不同的方向移动该插入显示区、或者简单地立即消除该插入显示区。The fifth stage 7455 shows an animation of the UI 7475 after the user has selected the video from L2 for display. In this example, UI 7475 removes unwanted foreground inset display 7410 by sliding unwanted foreground inset display 7410 off the left edge of PIP display 7490 as indicated by arrow 7470. Other embodiments eliminate unwanted inset display areas using different animations, such as fading or fading out the inset display area, moving the inset display area in a different direction, or simply eliminating the inset display area immediately.
第六阶段显示在完成视频选择操作之后,视频会议期间的UI7475。视频显示区7410不再在UI 7425上。在这个阶段,UI 7475呈现新的PIP显示7495,PIP显示7495包括作为背景主显示的远程视频显示7415,和作为插入显示的本地视频显示7405。在一些实施例中,这种视频选择操作只影响本地显示,因为两个视频仍然被传送给远程设备。其它实施例停止从除去的照相机拍摄视频。The sixth stage shows UI 7475 during a video conference after the video selection operation is completed. The video display area 7410 is no longer on the UI 7425. At this stage, the UI 7475 presents a new PIP display 7495 that includes the remote video display 7415 as the background main display, and the local video display 7405 as the inset display. In some embodiments, this video selection operation only affects the local display, since both videos are still transmitted to the remote device. Other embodiments stop taking video from the removed camera.
上面的例子举例说明选择的本地视图是已显示在背景主显示中的视图的情况。在一些实施例中,当用户选择显示在插入显示之一中的本地视图时,选择的本地视图被显示在背景主显示中。这种情况下,一些这样的实施例利用和在图68中显示的动画类似的动画。当背景主显示中的本地视图被除去时,其它实施例将利用插入远程视图。The above example illustrates the case where the selected local view is the view already displayed in the background main display. In some embodiments, when the user selects a local view displayed in one of the inset displays, the selected local view is displayed in the background main display. In this case, some such embodiments utilize animations similar to those shown in FIG. 68 . Other embodiments will utilize an inset remote view when the local view in the background main display is removed.
类似于上面参考图73说明的远程视图选择操作,本地视频的选择会导致本地双照相机移动设备的图像处理操作的变化,比如使视频会议管理器1604响应用户的输入,在合成显示中只合成选择的一个或多个远程视频。本地视频的选择还会导致本地设备的一个或多个照相机的操作的变化。例如,一些实施例使不需要的视频的照相机停止向远程设备传送不需要的视频,而其它实施例使该照相机停止拍摄不需要的视频。Similar to the remote view selection operation described above with reference to FIG. 73 , the selection of the local video results in a change in the image processing operation of the local dual camera mobile device, such as causing the video conferencing manager 1604 to composite only the selection in the composite display in response to user input. One or more remote videos of . Selection of local video may also result in a change in the operation of one or more cameras of the local device. For example, some embodiments cause an unwanted video camera to stop transmitting unwanted video to a remote device, while other embodiments stop the camera from taking unwanted video.
9.选择传送本地视图9. Select Send local view
上面的各个子节举例说明了会议中对视频显示的修改。一些实施例还允许双照相机移动设备的用户在开始视频会议之前,选择把哪部照相机用于视频会议。图75图解说明在会议前,从由用户的双照相机移动设备拍摄的两个视频中选择一个视频,用于视频会议的操作。The subsections above provide examples of modifications to the video display in a meeting. Some embodiments also allow a user of a dual camera mobile device to select which camera to use for a video conference before starting the video conference. Figure 75 illustrates the operation of selecting one of the two videos captured by the user's dual camera mobile device for video conferencing prior to the meeting.
图75按照UI 7500的八个操作阶段,图解说明用于视频会议的本地视频的选择。第一阶段7502图解说明双照相机移动设备7518的UI 7500,UI 7500具有在用户请求开始与移动设备的远程用户的视频会议之后呈现的初始PIP显示7542。Figure 75 illustrates the selection of local video for videoconferencing in terms of eight operational stages of UI 7500. The first stage 7502 illustrates the UI 7500 of a dual camera mobile device 7518 with an initial PIP display 7542 presented after a user requests to start a video conference with a remote user of the mobile device.
如第一阶段7502中所示,初始PIP显示7542包括两个视频显示:背景主显示7520和前景插入显示7522。背景主显示7520和前景插入显示7522。背景主显示7520占据设备的大部分显示屏幕,而前景插入显示7522较小且重叠在背景主显示上。在这个例子中,背景显示7520呈现拿着吉它的人物的视频,该视频假定是由设备的背面照相机拍摄的视频。前景插入显示7522呈现戴着帽子的人物的视频,在本例中,该视频假定是由设备的正面照相机拍摄的视频。As shown in the first stage 7502, the initial PIP display 7542 includes two video displays: a background main display 7520 and a foreground inset display 7522. Background main display 7520 and foreground inset display 7522. Background main display 7520 occupies most of the display screen of the device, while foreground inset display 7522 is smaller and overlaid on background main display. In this example, background display 7520 presents a video of a character holding a guitar, presumably captured by the device's back camera. The foreground inset display 7522 presents a video of a figure wearing a hat, which in this example is assumed to be video taken by the device's front camera.
初始PIP显示7542只是呈现由本地设备的照相机拍摄的视频的合成视图的一种方式。一些实施例可以提供其它的合成视图。例如,背景显示可以呈现来自设备的正面照相机的视频,较小的前景插入显示可呈现来自设备的背面照相机的视频。另外,一些实施例允许两个视频出现在UI 7500中的两个并排显示区(例如,左右显示窗口,或者上下显示窗口),或者两个对角排列的显示区中。在一些实施例中,PIP显示的方式或者默认显示模式可由用户指定。PIP显示的下面是标记为“End Conference”的可选UI项目7540(例如,按钮7540),可选UI项目7540允许用户通过选择该项目而结束视频会议。The initial PIP display 7542 is just one way of presenting a composite view of the video captured by the local device's camera. Some embodiments may provide other composite views. For example, a background display may present video from the device's front camera, and a smaller foreground inset display may present video from the device's back camera. Additionally, some embodiments allow two videos to appear in UI 7500 in two side-by-side display areas (e.g., display windows left and right, or display windows above and below), or in two display areas arranged diagonally. In some embodiments, the way of PIP display or the default display mode can be specified by the user. Below the PIP display is a selectable UI item 7540 (eg, button 7540) labeled "End Conference," which allows the user to end the video conference by selecting this item.
在第一阶段7502,移动设备7518的用户已请求与远程用户进行视频会议,并且正在等待远程用户响应。在显示画面的底面的“Preview,Waiting for response...(预览,正等待响应...)”注解图解说明该等待期。In the first stage 7502, the user of the mobile device 7518 has requested a video conference with a remote user and is waiting for the remote user to respond. The "Preview, Waiting for response..." annotation at the bottom of the display illustrates this waiting period.
第二阶段7504图解说明视频选择操作的开始。在这个例子中,通过调用要显示在PIP显示7542上的一组可选UI项目,发起该操作。所述一组可选UI项目呈现用于选择本地视频,以传送给视频会议的远程设备的各种选项。在一些实施例中,在等待远程用户响应的同时,通过在会前时间内选择(例如,触摸)UI显示7500上的任意地方,可调用所述一组可选UI项目。代替这种调用操作,或者与这种调用操作结合,一些实施例还允许用户通过其它操作,比如通过不同的触屏操作,或者利用设备的一个或多个其它物理输入,调用所述一组可选UI项目。The second stage 7504 illustrates the beginning of the video selection operation. In this example, the operation is initiated by invoking a set of selectable UI items to be displayed on the PIP display 7542. The set of selectable UI items presents various options for selecting local video for transmission to the remote device of the video conference. In some embodiments, the set of selectable UI items can be invoked by selecting (eg, touching) anywhere on the UI display 7500 within the pre-meeting time while waiting for the remote user to respond. Instead of, or in combination with, this invocation operation, some embodiments also allow the user to invoke the set of available functions through other operations, such as through different touch screen operations, or using one or more other physical inputs of the device. Select the UI item.
第三阶段7506图解说明具有一组调用的供用户选择视频的可选UI项目7526的UI 7500。在这个例子中,呈弹出式菜单形式的一组可选UI项目7526显示在PIP显示区7542中,并重叠在PIP显示上。在这个例子中,所述一组可选UI项目包括:“Transmit L1”项目7528(例如,按钮7528);“Transmit L2”项目7530(例如,按钮7530);“Transmit Both”项目7532(例如,按钮7532);和“Cancel”项目7534(例如,按钮7534)。在这个例子中,选择“Transmit L1”按钮7528会使UI 7500在视频会议期间,只把由设备的背面照相机拍摄的视频传送给远程设备。选择“Transmit L2”按钮7530会使UI 7500在视频会议期间,只把由设备的正面照相机拍摄的视频传送给远程设备。选择“Transmit Both”按钮7532会使UI 7500把由设备的正面和背面照相机拍摄的两个视频传送给视频会议的远程用户,以及选择“Cancel”按钮7534会取消该操作。The third stage 7506 illustrates the UI 7500 with a set of selectable UI items 7526 invoked for the user to select a video. In this example, a set of selectable UI items 7526 in the form of a pop-up menu is displayed in the PIP display area 7542, superimposed on the PIP display. In this example, the set of selectable UI items includes: "Transmit L1" item 7528 (e.g., button 7528); "Transmit L2" item 7530 (e.g., button 7530); "Transmit Both" item 7532 (e.g., button 7530); button 7532); and a "Cancel" item 7534 (eg, button 7534). In this example, selecting the "Transmit L1" button 7528 will cause the UI 7500 to transmit only the video captured by the device's back camera to the remote device during the video conference. Selecting the "Transmit L2" button 7530 will cause the UI 7500 to transmit only the video captured by the device's front camera to the remote device during a video conference. Selecting the "Transmit Both" button 7532 will cause the UI 7500 to transmit both videos captured by the device's front and back cameras to the remote user of the video conference, and selecting the "Cancel" button 7534 will cancel the operation.
第四阶段7508图解说明在用户选择了“Transmit L1”按钮7528(例如,通过用他的手指7524轻点按钮7528)之后的UI 7500。通过突出显示PIP显示区7542上的按钮7528,指示这种选择。一些实施例利用不同的指示显示(例如,突出显示所选项目的边框或者所选项目中的文本)。The fourth stage 7508 illustrates the UI 7500 after the user has selected the "Transmit L1" button 7528 (e.g., by tapping the button 7528 with his finger 7524). This selection is indicated by highlighting button 7528 on PIP display area 7542. Some embodiments utilize different indication displays (eg, highlighting a border of a selected item or text within a selected item).
第五阶段7510图解说明在用户选择了设备的背面照相机的视频,以传送给远程设备之后的UI 7500的动画。在这个例子中,通过如箭头756所示,使不需要的前景插入显示7522滑出PIP显示7542的右边缘,UI 7500除去不需要的前景插入显示7522。在第六阶段7512,插入显示7522已从PIP显示区7542中被完全除去。不同的实施例利用不同的动画来除去不需要的显示区,比如使该显示区淡出或者渐隐、沿不同的方向移动该显示区、或者简单地立即消除该显示区。The fifth stage 7510 illustrates the animation of the UI 7500 after the user has selected the video from the device's back camera for transmission to the remote device. In this example, UI 7500 removes unwanted foreground inset display 7522 by sliding it off the right edge of PIP display 7542 as indicated by arrow 756. In the sixth stage 7512, the inset display 7522 has been completely removed from the PIP display area 7542. Different embodiments utilize different animations to remove unwanted display areas, such as fading or fading the display area, moving the display area in a different direction, or simply eliminating the display area immediately.
第七阶段7514图解说明在远程用户已接受视频会议请求之后的UI 7500的动画。通过消除显示画面上的“Preview,Waiting forresponse...”注释,突出显示视频会议请求的接受。在这个阶段,作为来自设备的背面照相机的视频的背景显示区7520逐渐缩小到PIP显示区7542的左下角,如箭头7538所示。背景显示7520缩小,使得UI 7500能够在显示区7520之后显示包含来自远程用户的照相机的视频的显示区7544。一些实施例把本地照相机缩小到不同的位置,利用显示的两个视频的平铺合成显示,或者使远程视图成为PIP显示的插入显示区。The seventh stage 7514 illustrates the animation of the UI 7500 after the remote user has accepted the video conference request. Highlight the acceptance of the video conference request by dismissing the "Preview, Waiting for response..." annotation on the display. At this stage, the background display area 7520, which is video from the device's back camera, tapers down to the lower left corner of the PIP display area 7542, as indicated by arrow 7538. The background display 7520 is zoomed out, enabling the UI 7500 to display a display area 7544 behind the display area 7520 that contains video from the remote user's camera. Some embodiments zoom out the local camera to a different location, utilize a tiled composite display of the two videos being displayed, or make the remote view an inset display area of the PIP display.
第八阶段7516表示在完成视频选择操作之后的UI 7500。UI 7500呈现新的PIP显示7546,PIP显示7546包括从本地设备拍摄的视频的插入显示7520,和从远程设备传送来的视频的背景显示7544。The eighth stage 7516 represents the UI 7500 after the video selection operation is completed. UI 7500 presents a new PIP display 7546 that includes an inset display 7520 of video captured from the local device, and a background display 7544 of video transmitted from the remote device.
B.带宽&帧速率B. Bandwidth & Frame Rate
在一些实施例中,视频会议期间对远程移动设备的显示区的大小的调整会使本地移动设备重新分配分配给由本地移动设备的两部照相机(即,正面照相机和背面照相机)拍摄的每个视频的带宽。图76图解说明在本地设备的两部照相机之间的这种带宽重新分配的两个例子。In some embodiments, resizing of the remote mobile device's display area during the videoconference causes the local mobile device to reallocate each image captured by the local mobile device's two cameras (i.e., the front camera and the back camera). The bandwidth of the video. Figure 76 illustrates two examples of such bandwidth reallocation between two cameras at the local device.
图76中的每个例子涉及本地设备的背面照相机传感器7605、本地设备的正面照相机传感器7610、本地设备的视频会议模块7615、和远程移动设备7620的UI 7635。背面照相机传感器7605和正面照相机传感器7610捕获来自本地设备的相应背面照相机和正面照相机的视频。捕获的视频被发送给视频会议模块7615,视频会议模块7615处理捕获的视频,并把它们传送给远程设备,以在UI 7635中显示。Each example in FIG. 76 involves the back camera sensor 7605 of the local device, the front camera sensor 7610 of the local device, the video conferencing module 7615 of the local device, and the UI 7635 of the remote mobile device 7620. The back camera sensor 7605 and front camera sensor 7610 capture video from the respective back and front cameras of the local device. The captured video is sent to the video conferencing module 7615, which processes the captured video and transmits them to the remote device for display in the UI 7635.
在图76中,远程设备的UI 7635呈现合成显示。合成显示表示由本地设备的正面照相机和背面照相机拍摄的视频。来自正面照相机的视频拍摄树和戴着帽子的男士,而来自背面照相机的视频拍摄山脉风景。如图76中所示,根据用于显示视频的显示区的排列以及显示区的大小,可用许多不同的方式在UI 7635中显示这两个视频。在每个例子中,视频会议模块7615最初按照远程设备中的显示区的相对大小,在每个视频之间分配总的输出带宽。具体地说,显示在UI 7635中的较大显示区中的视频被分配较大部分的总带宽,以及显示在UI7635中的较小显示区中的视频被分配较小部分的带宽。在一些实施例中,当视频被显示在相同大小的显示区中时,在这两个视频之间平分总的输出带宽。In FIG. 76, the remote device's UI 7635 presents a composite display. The composite display represents the video captured by the local device's front and back cameras. Video from the front camera captures trees and a man in a hat, while video from the rear camera captures a mountain landscape. As shown in FIG. 76, the two videos can be displayed in the UI 7635 in many different ways depending on the arrangement of the display area used to display the video and the size of the display area. In each instance, the video conferencing module 7615 initially divides the total output bandwidth between each video according to the relative size of the display area in the remote device. Specifically, video displayed in a larger display area in UI 7635 is allocated a greater portion of the total bandwidth, and video displayed in a smaller display area in UI 7635 is allocated a smaller portion of the bandwidth. In some embodiments, when the videos are displayed in the same sized display area, the total output bandwidth is divided equally between the two videos.
分配给这两个视频中的每个视频的带宽的量会最影响处理每个视频的方式。例如,视频可能需要比分配给该视频的带宽更大的带宽。在这种情况下,视频的帧速率被调整,或者视频图像的大小被比例缩小,以便适应较小的带宽。降低视频的帧速率导致视频显得“不连贯”,而比例缩小视频图像的大小会减小显示该视频的区域。于是,当视频被分配一定量的带宽时,一些实施例调整该视频的帧速率,比例缩小视频图像的大小,或者进行这两者的组合,以便确保能够在分配的带宽内传送该视频。本领域的普通技术人员会认识到帧速率和平均帧大小的调整可变化,以获得最佳的总体视频质量,同时仍然确保能够在分配的带宽内传送该视频。The amount of bandwidth allocated to each of the two videos will most affect how each video is processed. For example, a video may require more bandwidth than is allocated for the video. In this case, the frame rate of the video is adjusted, or the size of the video image is scaled down to fit the smaller bandwidth. Reducing the frame rate of a video causes the video to appear "choppy", while scaling down the size of the video image reduces the area in which the video is displayed. Thus, when a video is allocated a certain amount of bandwidth, some embodiments adjust the frame rate of the video, scale down the size of the video image, or a combination of both, in order to ensure that the video can be delivered within the allocated bandwidth. Those of ordinary skill in the art will recognize that adjustments to the frame rate and average frame size can be varied to obtain the best overall video quality while still ensuring that the video can be delivered within the allocated bandwidth.
图76的例子(1)用UI 7635的两个操作阶段,举例说明带宽重新分配的一种情形。第一阶段7670中的远程设备7620的UI 7635呈现包含两个显示的合成显示:一个在UI 7635的顶部,另一个在UI 7635的底部。在这个例子中,顶部的显示区7625显示由本地设备的正面照相机拍摄的视频,底部的显示区7630显示由本地设备的背面照相机拍摄的视频。如第一阶段7670中所示,顶部的显示区7625大于底部的显示区7630。从而,来自本地设备的正面照相机的视频被分配80%的带宽,来自本地设备的背面照相机的视频被分配20%的带宽。为了确保能够在分配的带宽内,把来自本地设备的背面照相机的视频从本地设备传送给远程设备,调整该视频的帧速率和/或缩放比例大小。Example (1) of Figure 76 illustrates a situation of bandwidth reallocation with two phases of operation of the UI 7635. The UI 7635 of the remote device 7620 in the first stage 7670 presents a composite display comprising two displays: one at the top of the UI 7635 and another at the bottom of the UI 7635. In this example, the top display area 7625 displays video captured by the local device's front camera, and the bottom display area 7630 displays video captured by the local device's rear camera. As shown in the first stage 7670 , the top display area 7625 is larger than the bottom display area 7630 . Thus, video from the front camera of the local device is allocated 80% of the bandwidth and video from the back camera of the local device is allocated 20% of the bandwidth. To ensure that the video from the back camera of the local device can be transmitted from the local device to the remote device within the allocated bandwidth, the frame rate and/or scaling of the video is adjusted.
第二阶段7675图解说明在远程设备的用户增大底部显示区的大小,使得顶部显示区7625和底部显示区7630的大小近似相同之后的UI 7635。结果,每个视频被视频会议模块7615重新分配50%的总带宽。The second stage 7675 illustrates the UI 7635 after the user of the remote device has increased the size of the bottom display area such that the top display area 7625 and the bottom display area 7630 are approximately the same size. As a result, 50% of the total bandwidth is reallocated by the video conferencing module 7615 for each video.
图76的例子(2)用UI 7635的两个操作阶段,举例说明带宽重新分配的另一种情形。在例子(2)的第一阶段7680中,UI 7635呈现PIP显示。该PIP显示包含两个显示:背景主显示区7650和前景插入显示区7655。背景主显示区7650占据大部分的PIP显示,而前景插入显示区7655较小且重叠在背景主显示区7650上。在这个例子中,背景显示区7650呈现由该设备的正面照相机拍摄的视频。插入显示区7655呈现由该设备的背面照相机拍摄的视频。如在这个阶段中所示,背景显示区7650大于插入显示区7655。从而,来自设备的正面照相机的视频被分配80%的带宽,来自设备的背面照相机的视频被分配20%的带宽。为了确保在分配的带宽内,能够把来自本地设备的背面照相机的视频从本地设备传送给远程设备,调整视频的帧速率和/或缩放比例大小。Example (2) of Figure 76 illustrates another situation of bandwidth reallocation with two phases of operation of the UI 7635. In the first stage 7680 of example (2), the UI 7635 presents a PIP display. The PIP display consists of two displays: a background main display area 7650 and a foreground inset display area 7655 . The background main display area 7650 occupies most of the PIP display, while the foreground inset display area 7655 is smaller and overlaps the background main display area 7650 . In this example, background display area 7650 presents video captured by the device's front camera. Inset display area 7655 presents video captured by the device's back camera. As shown at this stage, background display area 7650 is larger than inset display area 7655 . Thus, video from the front camera of the device is allocated 80% of the bandwidth and video from the back camera of the device is allocated 20% of the bandwidth. To ensure that video from the back camera of the local device can be transmitted from the local device to the remote device within the allocated bandwidth, the frame rate and/or scaling of the video is adjusted.
第二阶段7685图解说明在远程设备的用户已交换这两个视频的显示之后的UI 7635。具体地说,背景显示区7660现在呈现由设备的背面照相机拍摄的视频,以及插入显示区7665现在呈现由设备的正面照相机拍摄的视频。由于这两个视频的显示区的大小已改变,因此来自设备的背面照相机的视频被分配80%的带宽,来自设备的正面照相机的视频被分配20%的带宽。因而,来自本地设备的正面照相机的视频的帧速率和/或缩放比例大小将被减小。本领域的普通技术人员会认识到在图76中说明的带宽分布只是例子,在视频会议期间,在两部照相机之间分配带宽的其它技术也是可能的。The second stage 7685 illustrates the UI 7635 after the user of the remote device has exchanged the display of the two videos. Specifically, background display area 7660 now presents video captured by the device's back camera, and inset display area 7665 now presents video captured by the device's front camera. Since the size of the display area for these two videos has changed, the video from the device's back camera is allocated 80% of the bandwidth and the video from the device's front camera is allocated 20% of the bandwidth. Thus, the frame rate and/or scale size of the video from the local device's front camera will be reduced. One of ordinary skill in the art will recognize that the bandwidth distribution illustrated in FIG. 76 is an example only and that other techniques for distributing bandwidth between two cameras during a video conference are possible.
1.帧速率控制1. Frame rate control
类似于上面说明的会议中的帧速率控制操作,一些实施例可能希望单独调整或保持在向视频会议中的另一个设备传送由双照相机移动设备的每部照相机拍摄的视频图像的速率。一些这样的实施例提供上面说明的类似技术。例如,一些实施例通过调整每部照相机的传感器模块415的VBI,控制每部照相机的帧速率。其它实施例还提供另外的技术,比如可由每部照相机的传感器模块415和/或通用传输缓冲器3120执行的帧丢弃。Similar to the frame rate control operation in a conference described above, some embodiments may wish to individually adjust or maintain the rate at which video images captured by each camera of a dual camera mobile device are transmitted to the other device in the video conference. Some of these embodiments provide similar techniques to those described above. For example, some embodiments control the frame rate of each camera by adjusting the VBI of each camera's sensor module 415 . Other embodiments also provide additional techniques such as frame dropping that may be performed by each camera's sensor module 415 and/or general transmit buffer 3120 .
2.通过比例缩放的带宽控制2. Bandwidth control via scaling
如上所述,在双照相机移动设备和另一个设备之间的视频会议期间,在一定时间量内,通过一个或多个网络连接能够传送的图像数据的数量(即,网络连接带宽)有限。为了最大化并维持网络连接的吞吐量,双照相机移动设备的不同实施例提供不同的方式控制在特定时间量内,通过网络连接传送的图像数据的数量。在一些实施例中,吞吐量是通过通信通道(例如,网络连接)的成功消息传送的平均速率。As noted above, during a video conference between a dual camera mobile device and another device, there is a limited amount of image data that can be transferred over one or more network connections (ie, network connection bandwidth) within a certain amount of time. In order to maximize and maintain the throughput of the network connection, different embodiments of the dual camera mobile device provide different ways to control the amount of image data transmitted over the network connection within a certain amount of time. In some embodiments, throughput is the average rate of successful message delivery over a communication channel (eg, a network connection).
当传送由双照相机移动设备的两部照相机拍摄的图像时,一种这样的方法调整来自双照相机移动设备的一部或两部照相机的图像的大小,以控制通过网络连接传送的图像数据的数量。一些实施例比例缩小由双照相机移动设备拍摄的图像的大小,以减少通过网络连接传送的图像数据的数量,而其它实施例比例放大图像的大小,以增大通过网络连接传送的图像数据的数量。When transferring images captured by both cameras of a dual-camera mobile device, one such method resizes images from one or both cameras of a dual-camera mobile device to control the amount of image data transferred over a network connection . Some embodiments scale down the size of the image captured by the dual camera mobile device to reduce the amount of image data transferred over the network connection, while other embodiments scale up the size of the image to increase the amount of image data transferred over the network connection .
一些实施例在缩放时,保持图像的高宽比(即,均匀缩放)。其它实施例缩放图像,使得缩放后的图像的高宽比不同于原始图像的高宽比(即,变形缩放)。Some embodiments maintain the aspect ratio of the image when scaling (ie, scale evenly). Other embodiments scale the image such that the aspect ratio of the scaled image is different from the aspect ratio of the original image (ie, anamorphic scaling).
此外,可在图像处理过程的不同阶段进行比例缩放。一些实施例的比例缩放可由照相机传感器进行。在这样的实施例中,照相机传感器可丢弃图像的多行或多列数据(即,像素值)。在一些这样的实施例中,剩余的图像数据被插值,以平滑图像的外形。In addition, scaling can be performed at different stages of the image processing process. Scaling for some embodiments may be performed by a camera sensor. In such embodiments, the camera sensor may discard rows or columns of data (ie, pixel values) of the image. In some of these embodiments, the remaining image data is interpolated to smooth the shape of the image.
其它实施例的比例缩放由CIPU 400的定标器模块455执行。在一些实施例中,比例缩放由视频会议管理器1604执行,如上所述,在其它实施例中,比例缩放由编码器执行。因而,双照相机移动设备的不同实施例不同地进行比例缩放。The scaling of other embodiments is performed by the scaler module 455 of the CIPU 400. In some embodiments, scaling is performed by the videoconferencing manager 1604, as described above, and in other embodiments, scaling is performed by an encoder. Thus, different embodiments of dual camera mobile devices scale differently.
3.比特率控制3. Bit rate control
一些实施例提供不同的机制来管理对由双照相机移动设备的照相机拍摄的视频编码的比特率。在一些实施例中,双照相机移动设备包括用于每部照相机的速率控制器。一些实施例提供固定比特率管理方案。按照这种方案,每个速率控制器被设定为固定比特率,使得来自移动设备上的两部照相机的视频的总比特率是恒定的。其它实施例提供优先级方案,其中当要求减小总比特率时,来自设备的照相机的两个视频之一总是获得比另一个视频高的优先级。Some embodiments provide different mechanisms to manage the bitrate for encoding video captured by the cameras of a dual camera mobile device. In some embodiments, a dual camera mobile device includes a rate controller for each camera. Some embodiments provide a fixed bit rate management scheme. In this scheme, each rate controller is set to a fixed bit rate so that the total bit rate of the video from both cameras on the mobile device is constant. Other embodiments provide a priority scheme where one of the two videos from the device's camera always gets a higher priority than the other when reducing the overall bitrate is required.
在一些实施例中,判优器模块管理两部照相机的两个速率控制器。图77图解说明这种判优器模块的例子。如图77中所示,速率控制器7700设定正面照相机的比特率,以及速率控制器7705设定背面照相机的比特率。速率控制器把来自照相机传感器的图像发送给编码器7715。判优器模块7710与两个速率控制器连接,并根据诸如可用带宽、两个视频中的每个视频的视频大小等,以任意多种方式控制每个速率控制器7700和7705的比特率的设置。以确保在可用带宽下,能够把两个视频都传送给远程设备。另外,判优器7710可被配置成实现上面提及的固定速率方案,或者优先级方案。In some embodiments, the arbiter module manages two rate controllers for the two cameras. Figure 77 illustrates an example of such an arbiter module. As shown in FIG. 77, the rate controller 7700 sets the bit rate of the front camera, and the rate controller 7705 sets the bit rate of the back camera. The rate controller sends the image from the camera sensor to the encoder 7715. The arbiter module 7710 interfaces with the two rate controllers and controls the ratio of the bit rate of each rate controller 7700 and 7705 in any number of ways based on factors such as available bandwidth, video size of each of the two videos, etc. set up. To ensure that both videos can be sent to the remote device under the available bandwidth. Additionally, the arbiter 7710 may be configured to implement the above-mentioned fixed rate scheme, or a priority scheme.
在一些其它实施例中,用于两部照相机的两个速率控制器能够相互通信。按照这种方案,速率控制器能够交换它们各自视频的信息,并据此设定视频的比特率。提供了速率控制器速率管理机制的几个例子。不过,许多其它的不同机制也是可能的。In some other embodiments, the two rate controllers for the two cameras can communicate with each other. In this scheme, the rate controllers can exchange information about their respective videos and set the video bit rate accordingly. Several examples of rate controller rate management mechanisms are provided. However, many other different mechanisms are possible.
4.视频处理4. Video processing
双照相机移动设备的一些实施例在不同的情况下,不同地处理由双照相机移动设备的两部照相机拍摄的图像。例如,当处理包括由双照相机移动设备的两部照相机拍摄的图像的PIP合成图像时,一些实施例有选择地对PIP合成图像进行TNR处理2000。一些这种实施例只对PIP合成图像中的主图像进行TNR处理2000,而其它的这种实施例只对PIP合成图像中的插入图像进行TNR处理2000。Some embodiments of a dual camera mobile device process images captured by the two cameras of the dual camera mobile device differently in different situations. For example, when processing a PIP composite image that includes images captured by both cameras of a dual camera mobile device, some embodiments selectively perform TNR processing 2000 on the PIP composite image. Some such embodiments perform TNR processing 2000 only on the main image in the PIP composite image, while other such embodiments perform TNR processing 2000 on only the insert image in the PIP composite image.
作为处理由移动设备的两部照相机拍摄的图像的另一个例子,一些实施例根据视频会议的各种改变,比如用户对显示视频的显示区的调整(例如,放大PIP显示的插入显示区、在显示的视频中定义感兴趣区域、交换PIP显示的主显示区/插入显示区,等等),对总的可用带宽的改变,等等,比例缩放由双照相机移动设备的两部照相机拍摄的图像。一些这样的实施例按照上述方式比例缩放图像。即,图像可由编码器1655、视频会议管理器1604、定标器模块455和用其拍摄图像的照相机传感器(即,405a或405b)比例缩放。As another example of processing images captured by the two cameras of a mobile device, some embodiments respond to various changes in the video conference, such as user adjustments to the display area where the video is displayed (e.g., zooming in on the defining regions of interest in displayed video, swapping main/insert display areas for PIP displays, etc.), changes to the total available bandwidth, etc., scaling images captured by the two cameras of a dual-camera mobile device . Some such embodiments scale images in the manner described above. That is, the image may be scaled by the encoder 1655, the video conference manager 1604, the scaler module 455, and the camera sensor (ie, 405a or 405b) with which the image was captured.
5.编码5. Coding
如上所述,一些实施例传送来自双照相机移动设备的两部照相机的视频。因而,这些实施例可对由两部照相机拍摄的视频编码,以便在视频会议期间传送给远程设备。不同的实施例提供不同的方式来编码视频以便传输。图78图解说明利用多路复用器(MUX)7815、编码器模块7825、缓冲器7830和组合模块7835处理视频,以便传输的方法。As noted above, some embodiments transmit video from both cameras of a dual camera mobile device. Thus, these embodiments can encode video captured by two cameras for transmission to a remote device during a video conference. Different embodiments provide different ways to encode video for transmission. Figure 78 illustrates a method of processing video for transmission using a multiplexer (MUX) 7815, encoder module 7825, buffer 7830, and combiner module 7835.
根据选择信号,MUX 7815获得一个输入信号,并把选择的输入信号输出给编码器7825。例如,如果选择信号指示MUX 7815获得来自C1的输入信号,那么MUX 7815选择该输入信号,并输出该输入信号。可用多种方式,比如通过来自视频会议管理器1604的指令,提供所述选择信号。通过MUX 7815,编码器7825交替地把从MUX7815接收的图像编码成比特流格式,并把编码的图像保存在缓冲器7830中。组合模块7835组合(即,多路复用)保存在缓冲器7830中的一个或多个比特流,并输出单一的比特流。According to the selection signal, MUX 7815 obtains an input signal and outputs the selected input signal to encoder 7825. For example, if the select signal instructs the MUX 7815 to get an input signal from C1, then the MUX 7815 selects that input signal and outputs that input signal. The selection signal may be provided in a variety of ways, such as through instructions from the videoconferencing manager 1604 . Through the MUX 7815, the encoder 7825 alternately encodes the images received from the MUX 7815 into a bitstream format and stores the encoded images in the buffer 7830. The combining module 7835 combines (ie, multiplexes) one or more bitstreams held in the buffer 7830 and outputs a single bitstream.
现在按照三个阶段7860、7865和7870,说明这种编码方法的操作。在第一阶段7860,MUX 7815被配置成接收由照相机C1拍摄的图像7805,并输出给编码器7825以便编码。编码器7825对接收的图像编码并产生比特流7850,比特流7850随后被保存在缓冲器7830中。第二阶段7865类似于第一阶段7860,除了MUX 7815被配置成接收由照相机C2拍摄的图像7810,并输出给编码器7825,以便编码之外。同样地,编码器对接收的图像编码并产生比特流7855,比特流7855被保存在缓冲器7830中。在第三阶段870,组合模块7835从缓冲器7830取回比特流7850和7855,并把它们组合成一个比特流,以便传送给远程设备。The operation of this encoding method is now described in terms of three stages 7860, 7865 and 7870. In the first stage 7860, the MUX 7815 is configured to receive the image 7805 captured by the camera C1 and output to the encoder 7825 for encoding. The encoder 7825 encodes the received image and generates a bitstream 7850 , which is then saved in the buffer 7830 . The second stage 7865 is similar to the first stage 7860, except that the MUX 7815 is configured to receive the image 7810 captured by the camera C2 and output it to the encoder 7825 for encoding. Likewise, the encoder encodes the received image and generates a bitstream 7855 , which is stored in the buffer 7830 . In the third stage 870, the combining module 7835 retrieves the bitstreams 7850 and 7855 from the buffer 7830 and combines them into one bitstream for transmission to the remote device.
图79图解说明对来自双照相机移动设备的两个视频编码,以便在视频会议期间传送给远程设备的另一种方法。在这种方法中,来自移动设备的第一部照相机的视频帧(即,图像)和来自移动设备的第二部照相机的另一个视频帧被合成为一个视频帧,之后合成的视频帧被编码成比特流,以便发送给远程设备。如图79中所示,这种方法包括合成器7915、缓冲器7920和编码器7925。Figure 79 illustrates another method of encoding two videos from a dual camera mobile device for transmission to a remote device during a video conference. In this method, a video frame (i.e., an image) from the first camera of the mobile device and another video frame from the second camera of the mobile device are combined into one video frame, after which the combined video frame is encoded into a bitstream for sending to a remote device. As shown in FIG. 79 , this method includes a combiner 7915 , a buffer 7920 and an encoder 7925 .
如图所示,合成器7915合成来自第一部照相机的图像7905和来自第二部照相机的图像7910,以形成合成图像7955。不同的实施例不同地合成图像7905和7910。例如,一些实施例的合成器7915可通过把两个图像排列成彼此相邻(如图80中所示),合成图像。合成图像8030和8035图解说明利用这种技术的两个示例合成图像。在合成图像8030中,来自第一部照相机的图像7905被排列在来自第二照相机的图像7910之上。而合成图像8035表示图像7905排列在图像7910的左侧。As shown, combiner 7915 combines image 7905 from the first camera and image 7910 from the second camera to form composite image 7955 . Different embodiments composite images 7905 and 7910 differently. For example, the combiner 7915 of some embodiments may combine images by arranging two images next to each other (as shown in Figure 80). Composite images 8030 and 8035 illustrate two example composite images utilizing this technique. In composite image 8030, image 7905 from the first camera is arranged over image 7910 from the second camera. And composite image 8035 shows that image 7905 is arranged on the left side of image 7910 .
在一些其它的实施例中,合成器7915可通过把两个图像7905和7910叠加在更大的背景图像的上面,合成两个图像7905和7910。图80的合成图像8040图解说明利用这种技术的示例合成图像。在合成图像8040中,图像7905和7910对角排列,并叠加在空白图像上(即,图像7905位于背景图像的左上角,而图像7910位于背景图像的右下角)。在一些实施例中,照相机传感器可能大小不同,从而拍摄具有不同像素分辨率的图像。在这种实施例中,合成器7915可按照如由图80的合成图像8045图解说明的相似方式合成图像7905和7910。在合成这两个图像之后,合成器7915把合成图像保存在缓冲器7920中。编码器7925从缓冲器7920取回合成图像,把合成图像编码成比特流,并将其发送给视频会议的远程设备。In some other embodiments, the compositor 7915 may composite the two images 7905 and 7910 by superimposing the two images 7905 and 7910 on top of a larger background image. Composite image 8040 of FIG. 80 illustrates an example composite image utilizing this technique. In composite image 8040, images 7905 and 7910 are arranged diagonally and superimposed on a blank image (ie, image 7905 is in the upper left corner of the background image and image 7910 is in the lower right corner of the background image). In some embodiments, the camera sensors may be of different sizes, thereby capturing images with different pixel resolutions. In such an embodiment, combiner 7915 may combine images 7905 and 7910 in a similar manner as illustrated by combined image 8045 of FIG. 80 . After combining the two images, the combiner 7915 saves the combined image in the buffer 7920. Encoder 7925 retrieves the composite image from buffer 7920, encodes the composite image into a bitstream, and sends it to the remote device of the video conference.
现在参考图79中图解说明的合成器7915、缓冲器7920和编码器7925,说明各个操作。首先,第一部照相机把作为视频中的一系列图像的一部分的图像7905发送给合成器7915。同时,第二部照相机把作为视频中的一系列图像的一部分的图像7910发送给合成器7915。合成器7915随后按照上述方式合成图像7905和7910,以形成合成图像7955。之后,合成器7915把合成图像7955发送给缓冲器7920。缓冲器7920随后保存合成图像,之后把合成图像发送给编码器7925。最后,编码器7925把合成图像编码成比特流,并将其发送给视频会议的远程设备。Referring now to the synthesizer 7915, buffer 7920, and encoder 7925 illustrated in FIG. 79, individual operations are described. First, the first camera sends an image 7905 to the compositor 7915 as part of a series of images in the video. At the same time, the second camera sends the image 7910 to the compositor 7915 as part of a series of images in the video. Compositor 7915 then composites images 7905 and 7910 in the manner described above to form composite image 7955 . Afterwards, the synthesizer 7915 sends the synthesized image 7955 to the buffer 7920 . The buffer 7920 then holds the composite image before sending the composite image to the encoder 7925. Finally, the encoder 7925 encodes the composite image into a bitstream and sends it to the remote device of the video conference.
图81图解说明对来自双照相机移动设备的两个视频编码,以便在视频会议期间传送给远程设备的再一种方法。在这种方法中,来自该设备的两个视频以合成显示的形式被显示,获得合成显示的屏幕截图,并将其编码成比特流,以便发送给远程设备。如图81中所示,这种方法包括编码器8115。在一些实施例中,编码器8115对合成图像编码,并发送给远程设备。Figure 81 illustrates yet another method of encoding two videos from a dual camera mobile device for transmission to a remote device during a video conference. In this method, two videos from the device are displayed as a composite display, a screenshot of the composite display is taken, and encoded into a bitstream for sending to the remote device. As shown in FIG. 81, this method includes an encoder 8115. In some embodiments, the encoder 8115 encodes the composite image and sends it to the remote device.
现在参考图81中图解说明的编码器8115,说明各个操作。首先,来自双照相机移动设备的两部照相机的视频以合成显示的形式被显示在设备的屏幕上。所述合成显示能够按任意方式呈现视频。例如,一些实施例中的合成显示能够把两个视频呈现在PIP显示,比如在图81中图解说明的PIP显示8105中。在其它实施例中,合成显示可把两个视频呈现在两个并排的显示区,或者两个对角排列的显示区中。获得PIP显示8105的屏幕截图,比如图像8110,并将其发送给编码器8115。编码器随后把一系列的屏幕截图编码成比特流8120,之后将其发送给视频会议的远程设备。尽管上面说明了对两个视频编码的几种不同方法,不过其它方法也是可能的。Referring now to the encoder 8115 illustrated in FIG. 81, various operations will be described. First, video from both cameras of a dual camera mobile device is displayed in a composite display on the device's screen. The composite display is capable of rendering video in any manner. For example, a composite display in some embodiments can present two videos in a PIP display, such as PIP display 8105 illustrated in FIG. 81 . In other embodiments, the composite display may present the two videos in two side-by-side display areas, or in two diagonally arranged display areas. Take a screenshot of the PIP display 8105, say image 8110, and send it to the encoder 8115. The encoder then encodes the series of screenshots into a bitstream 8120, which is then sent to the remote device in the video conference. Although several different methods of encoding the two videos are described above, other methods are possible.
6.解码6. Decoding
双照相机移动设备的一些实施例可接收用上面参考图78-81说明的方法编码的比特流。在这样的实施例中,双照相机移动设备可接收(例如,通过视频会议控制通道)指示用于对视频编码的方法的信息。图82图解说明一种对通过通信网络,从另一个设备接收的两个视频的比特流解码,以便在视频会议期间,显示在双照相机移动设备上的方法。具体地说,这种方法用于对用上面参考图78说明的编码方法编码的比特流解码。Some embodiments of a dual camera mobile device may receive a bitstream encoded in the method described above with reference to Figures 78-81. In such an embodiment, the dual camera mobile device may receive (eg, over a video conference control channel) information indicative of the method used to encode the video. Figure 82 illustrates a method of decoding two video bitstreams received from another device over a communication network for display on a dual camera mobile device during a video conference. Specifically, this method is used to decode a bit stream encoded by the encoding method explained above with reference to FIG. 78 .
如图82中所示,这种方案使用分离模块8235、缓冲器8230和8290、以及解码器模块8225。分离模块8235把比特流分离(即,多路分解)成一个或多个比特流,并把比特流保存在缓冲器8230中。解码器8225取回编码的比特流,对它们解码以产生视频,随后把视频保存在缓冲器8290中。As shown in FIG. 82 , this scheme uses a separation module 8235 , buffers 8230 and 8290 , and a decoder module 8225 . The splitting module 8235 splits (ie, demultiplexes) the bitstream into one or more bitstreams and saves the bitstreams in the buffer 8230 . Decoder 8225 retrieves the encoded bitstreams, decodes them to produce video, and then saves the video in buffer 8290.
现在参考图82中图解说明的分离模块8235、缓冲器8230和8290、以及解码器模块8225,说明这种方法的操作。首先,双照相机移动设备通过通信网络,从视频会议中的另一个设备接收比特流7845(即,在连网管理器1614)。分离模块8235把接收的比特流分离成两个比特流8255和8260,因为接收的比特流是两个比特流的多路复用比特流。每个编码的比特流代表从设备的两部照相机之一拍摄的视频数据。随后,分离模块8235把比特流8255和8260保存在缓冲器8230中。Referring now to the separation module 8235, buffers 8230 and 8290, and decoder module 8225 illustrated in FIG. 82, the operation of this method is described. First, the dual camera mobile device receives a bitstream 7845 from another device in the video conference (ie, at the networking manager 1614) over the communication network. The split module 8235 splits the received bit stream into two bit streams 8255 and 8260 because the received bit stream is a multiplexed bit stream of the two bit streams. Each encoded bitstream represents video data captured from one of the device's two cameras. Subsequently, the separation module 8235 saves the bitstreams 8255 and 8260 in the buffer 8230 .
之后,解码器8225从缓冲器8230取回比特流8250(它是两个比特流8255和8260中的一个),解码器8225对比特流8250解码,以产生视频8280,并把视频8280保存在缓冲器8290中。解码器8225还对比特流8255和8260中的另一个解码,并把产生的视频保存在缓冲器8290中。现在,两个视频可从缓冲器8290被取回,并被保存或显示在双照相机移动设备上。Afterwards, decoder 8225 retrieves bitstream 8250 (which is one of two bitstreams 8255 and 8260) from buffer 8230, decoder 8225 decodes bitstream 8250 to generate video 8280, and saves video 8280 in buffer device 8290. Decoder 8225 also decodes the other of bitstreams 8255 and 8260 and saves the resulting video in buffer 8290. Now, both videos can be retrieved from buffer 8290 and saved or displayed on the dual camera mobile device.
图83图解说明对用参考图79说明的方法编码的比特流解码的方法。如图83中所示,该方法包括解码器8325、缓冲器8320和去合成器8315。FIG. 83 illustrates a method of decoding a bitstream encoded with the method explained with reference to FIG. 79 . As shown in FIG. 83 , the method includes a decoder 8325 , a buffer 8320 and a desynthesizer 8315 .
在一些实施例中,解码器8325接收用图79中图解说明的方法编码的比特流,把比特流解码成一个或多个合成图像,所述合成图像随后被保存在缓冲器8320中。去合成器8315从每个合成图像中提取这两个图像。为了从合成图像中提取这两个图像,去合成器8315还接收指示每个图像在合成图像内的位置的信息(例如,通过视频会议通信控制通道,从视频会议中的合成并编码图像的设备接收的信息)。In some embodiments, decoder 8325 receives a bitstream encoded using the method illustrated in FIG. 79 , decodes the bitstream into one or more composite images, which are then stored in buffer 8320 . Decompositor 8315 extracts the two images from each composite image. To extract the two images from the composite image, the decompositor 8315 also receives information indicating the position of each image within the composite image (e.g., via a videoconferencing communication control channel, from a device in the videoconferencing that composited and encoded the images information received).
现在参考图83中图解说明的解码器8325、缓冲器8320和去合成器8315,说明这种方法的操作。首先,解码器325从视频会议的另一个移动设备接收视频的比特流,比如用参考图79说明的方法产生的视频的比特流。解码器8325把该比特流解码成包括合成图像7955的一个或多个合成图像,并把它们保存在缓冲器8320中。缓冲器8320随后保存合成图像,之后把它们发送给去合成器8315。当去合成器从缓冲器8320接收到合成图像7955时,它把合成图像7955分离成与图79中的图像7905和7910相同的两个图像7905和7910。Referring now to the decoder 8325, buffer 8320 and desynthesizer 8315 illustrated in FIG. 83, the operation of this method will be described. First, the decoder 325 receives a video bitstream from another mobile device of the video conference, such as the video bitstream generated by the method explained with reference to FIG. 79 . Decoder 8325 decodes the bitstream into one or more composite images including composite image 7955 and stores them in buffer 8320. The buffer 8320 then holds the composited images before sending them to the decompositor 8315. When the decompositor receives composite image 7955 from buffer 8320, it splits composite image 7955 into two images 7905 and 7910 identical to images 7905 and 7910 in FIG. 79 .
当从诸如图81中说明的系统之类的系统接收到比特流时,解码器,比如图83中的解码器8325把比特流解码成一系列的屏幕截图。所述一系列的屏幕截图作为视频被显示在设备的屏幕上,而没有进一步的处理。When a bitstream is received from a system such as the system illustrated in Figure 81, a decoder, such as decoder 8325 in Figure 83, decodes the bitstream into a series of screenshots. The series of screenshots are displayed as a video on the screen of the device without further processing.
VI.多个来源VI. Multiple sources
如上所述,视频可由双照相机移动设备的两部照相机拍摄,并传送给视频会议中的另一个设备。一些实施例可随同从双照相机移动设备的一部照相机拍摄的视频一起,传送显示在双照相机移动设备上的不同媒体内容或者任意内容,而不是传送从双照相机移动设备的两部照相机拍摄的视频。换句话说,这些实施例能够随同由双照相机移动设备的照相机拍摄的视频一起,传送来自多个来源的内容。As mentioned above, video can be captured by both cameras of a dual camera mobile device and sent to another device in a video conference. Rather than delivering video captured from both cameras of a dual camera mobile device, some embodiments may deliver different media content or arbitrary content displayed on a dual camera mobile device along with video captured from one camera of the dual camera mobile device . In other words, these embodiments are capable of delivering content from multiple sources along with video captured by the cameras of the dual camera mobile device.
图84概念地图解说明一些实施例的双照相机移动设备的视频会议和处理模块的另一种软件体系结构。图84的视频会议和处理模块类似于图16的视频会议和处理模块1600,除了该视频会议和处理模块包括显示驱动器8485和存储器8475,以及媒体交换模块1620包括媒体来源模块8470和屏幕捕获模块8480之外。Figure 84 conceptually illustrates another software architecture for the video conferencing and processing module of a dual camera mobile device of some embodiments. The video conferencing and processing module of FIG. 84 is similar to the video conferencing and processing module 1600 of FIG. 16, except that the video conferencing and processing module includes a display driver 8485 and memory 8475, and the media exchange module 1620 includes a media source module 8470 and a screen capture module 8480 outside.
一些实施例的媒体来源模块8470在视频会议模块8402和存储器8475之间路由媒体内容。媒体内容的例子包括视频、图像、文档和音乐。其它实施例把其它类型的媒体内容保存在存储器8475中。一些实施例的存储器8475是内部存储器(例如,RAM),而其它实施例的存储器8475是外部存储器(例如,紧凑式闪存(CF)卡、安全数字(SD)卡,等等)。The media source module 8470 of some embodiments routes media content between the video conferencing module 8402 and the storage 8475. Examples of media content include video, images, documents, and music. Other embodiments store other types of media content in memory 8475. The memory 8475 of some embodiments is internal memory (eg, RAM), while the memory 8475 of other embodiments is external memory (eg, Compact Flash (CF) card, Secure Digital (SD) card, etc.).
在一些实施例中,屏幕捕获模块8480通过显示驱动器8485,路由显示在双照相机移动设备的显示器上的内容的图像。在一些实施例中,显示驱动器8485负责捕获显示器上的内容,并把内容转换成图像。不同的实施例捕获显示在显示器上的不同内容。例如,一些实施例捕获显示在显示器上的所有内容。其它实施例捕获显示器的特定显示区(例如,当前活动窗口的显示区,PIP显示的显示区,等等)。In some embodiments, the screen capture module 8480 routes images of the content displayed on the display of the dual camera mobile device through the display driver 8485. In some embodiments, the display driver 8485 is responsible for capturing content on the display and converting the content into images. Different embodiments capture different content displayed on the display. For example, some embodiments capture all content displayed on the display. Other embodiments capture a specific display area of the display (eg, the display area of the currently active window, the display area of a PIP display, etc.).
现在参考图84,说明视频会议和处理模块的一些示例操作。为了随同从双照相机移动设备的照相机拍摄的视频一起传送媒体内容,一些实施例的视频会议模块8402进行和上面在图16中说明的视频会议模块1602相同的操作,除了代替从CIPU 1650取回图像,视频会议管理器1604通过媒体来源模块8470,从存储器8475取回媒体内容之外。为了传送显示在双照相机移动设备的显示器上的内容的图像,视频会议管理器1604的一些实施例通过显示驱动器8485,取回显示在双照相机移动设备的显示器上的内容的图像。一些实施例对显示在显示器上的媒体内容或者内容的图像进行与对从CIPU 1650取回的图像进行的处理类似的处理(例如,透视校正、缩放等),而其它实施例根本不进行任何处理。Referring now to FIG. 84, some example operations of the video conferencing and processing module are illustrated. To deliver media content along with video captured from a camera of a dual camera mobile device, video conferencing module 8402 of some embodiments performs the same operations as video conferencing module 1602 described above in FIG. 16, except instead of retrieving images from CIPU 1650 , the video conference manager 1604 retrieves the media content from the storage 8475 through the media source module 8470 . To transmit images of the content displayed on the display of the dual camera mobile device, some embodiments of the video conferencing manager 1604, through the display driver 8485, retrieve images of the content displayed on the display of the dual camera mobile device. Some embodiments perform similar processing (e.g., perspective correction, scaling, etc.) .
上面的讨论描述了随同由双照相机移动设备的一部照相机拍摄的视频一起,传送来自各种来源的内容的几个例子。不过,其它实施例可以传送其它不同类型的内容。例如,在涉及多个参与者的视频会议中,一些实施例把从视频会议中的一个设备接收的视频,和由双照相机移动设备的照相机拍摄的视频传送给另一个设备。因而,随同由双照相机移动设备的一部照相机拍摄的视频一起,可以传送来自任意多个来源的任意多种不同类型的内容。The above discussion describes several examples of delivering content from various sources along with video captured by one camera of a dual camera mobile device. However, other embodiments may deliver other different types of content. For example, in a video conference involving multiple participants, some embodiments transmit video received from one device in the video conference and video captured by a camera of a dual camera mobile device to another device. Thus, any number of different types of content from any number of sources may be delivered along with video captured by one camera of a dual camera mobile device.
VII.多方视频会议VII. Multi-party video conferencing
涉及视频会议的上述各节描述了具有两个参与者的视频会议。不过,借助一些实施例的移动设备的多方视频会议(即,三个以上的参与者)也是可能的。在一些实施例中,多方视频会议中的所有参与者能够相互看到和听到。其它实施例提供一种多方广播视频会议,其中一个参与者(例如,广播者)能够看到和听到所有其它的参与者,以及所有其它的参与者能够看到和听到该广播者,不过其它参与者不能相互看到或听到(除非例如得到广播者的批准)。The above sections dealing with video conferencing describe a video conference with two participants. However, multiparty video conferencing (ie, more than three participants) is also possible with mobile devices of some embodiments. In some embodiments, all participants in a multiparty video conference can see and hear each other. Other embodiments provide a multicast video conference where one participant (e.g., the broadcaster) can see and hear all other participants, and all other participants can see and hear the broadcaster, but Other participants cannot see or hear each other (unless, for example, with the broadcaster's approval).
A.多方视频会议的用户界面A. User Interface for Multiparty Video Conferencing
在多方视频会议期间,一些实施例提供各种用于显示视频会议的参与者,并选择要观看的一个或多个特定参与者的不同UI。例如,移动设备的一些实施例提供同时显示多方视频会议的所有参与者,并允许移动设备的用户选择参与者之一以便观看(例如,通过放大所选参与者的图像)的UI。图85图解说明了这种UI的一个例子。During a multi-party video conference, some embodiments provide a variety of different UIs for displaying the participants of the video conference and selecting one or more specific participants to view. For example, some embodiments of a mobile device provide a UI that simultaneously displays all participants of a multi-party video conference and allows a user of the mobile device to select one of the participants for viewing (eg, by zooming in on the image of the selected participant). Figure 85 illustrates an example of such a UI.
图85参考UI 8530的五个不同阶段8505、8510、8515、8520和8525,图解说明在移动设备8500的UI 8530中同时显示多方视频会议的所有参与者,并选择参与者之一以便观看的一系列操作。第一阶段8505图解说明在建立了其它设备的另外三位用户之间的多方视频会议之后的UI 8530。如图所示,UI 8530包括合成显示8535和显示区1155。合成显示8535包括显示由多方视频会议的参与者的照相机拍摄的图像的四个显示区8565、8570、8575和8580。在这个例子中,显示区8565表示移动设备8500的用户(即,显示区8565显示由移动设备8500的正面照相机拍摄的图像)。显示区1155和前面在图12中说明的显示区1155相同。FIG. 85 illustrates the simultaneous display of all participants of a multiparty video conference in the UI 8530 of the mobile device 8500 with reference to five different stages 8505, 8510, 8515, 8515, 8520, and 8525 of the UI 8530, and the selection of one of the participants for viewing. series of operations. The first stage 8505 illustrates the UI 8530 after establishing a multi-party video conference between three other users of other devices. As shown, UI 8530 includes composite display 8535 and display area 1155. Composite display 8535 includes four display areas 8565, 8570, 8575, and 8580 that display images captured by cameras of participants in the multi-party video conference. In this example, display area 8565 represents the user of mobile device 8500 (ie, display area 8565 displays an image captured by the front camera of mobile device 8500). The display area 1155 is the same as the display area 1155 previously described in FIG. 12 .
第二阶段8510表示移动设备8500的用户通过选择合成显示区8530的显示区之一,开始参与者选择操作。特别地,第二阶段8510表示用户选择显示区870(例如,通过在显示区8570上轻点手指8550)。The second stage 8510 represents the user of the mobile device 8500 beginning a participant selection operation by selecting one of the display areas of the composite display area 8530 . In particular, the second stage 8510 represents the user selecting the display area 870 (eg, by tapping a finger 8550 on the display area 8570).
UI 8530的第三阶段8515图解说明在完成参与者选择操作之后的合成显示8555。一些实施例提供显示第二阶段8510和第三阶段8515之间的转变的动画(未示出)。合成显示8555包括PIP显示8560,PIP显示8560把在第二阶段8510中选择的参与者的显示区(即,显示区8570)显示为背景显示区,以及把用户的显示区8565显示为PIP显示8560的插入显示区。在这个例子中,PIP显示8560显示被水平拉伸以适合横向定向的所选显示区8570的图像。在一些实施例中,该图像不被拉伸,并且选显示区的图像保持其纵向定向(即,如图36中所示,用黑条填充在背景显示区两侧的多余空间)。此外,合成显示8555还包括合成显示8585,合成显示8585显示两个未选择的显示区8575和8580的比例缩小的图像。The third stage 8515 of the UI 8530 illustrates the composite display 8555 after completion of the participant selection operation. Some embodiments provide an animation (not shown) showing the transition between the second stage 8510 and the third stage 8515. Composite display 8555 includes a PIP display 8560 that displays the participant's display area (i.e., display area 8570) selected in the second stage 8510 as a background display area, and a user's display area 8565 as a PIP display 8560 Insert display area. In this example, PIP display 8560 displays an image of the selected display area 8570 stretched horizontally to fit a landscape orientation. In some embodiments, the image is not stretched, and the image of the selected display area maintains its portrait orientation (ie, black bars fill the excess space on either side of the background display area, as shown in FIG. 36 ). In addition, composite display 8555 also includes composite display 8585 that displays scaled-down images of two unselected display regions 8575 and 8580 .
第四阶段8520表示移动设备8500的用户通过选择PIP显示8560(例如,通过PIP显示8560上轻点手指8550),开始参与者取消选择操作。第五阶段8525图解说明在参与者取消选择操作完成之后的合成显示8535。The fourth stage 8520 represents the user of the mobile device 8500 beginning a participant deselection operation by selecting the PIP display 8560 (eg, by tapping a finger 8550 on the PIP display 8560). The fifth stage 8525 illustrates the composite display 8535 after the participant deselection operation is complete.
图85表示同时显示多方视频会议的所有参与者,进行参与者选择操作和进行参与者取消选择操作的示例操作序列。其它操作序列也是可能的。例如,在第三阶段8515之后,代替开始参与者取消选择操作,用户能够选择显示在合成显示8585中的未选显示区之一,以交换显示区8585中的新选显示区和PIP显示8560的背景显示区(即,先前选择的显示区)。因而,在多方视频会议期间,用户能够随时并且任意多次地交换显示区8585中的显示区和PIP显示8560的背景显示区。另外,在多方视频会议期间的任意时候,用户能够进行参与者取消选择操作,以返回合成显示8535。此外,不同的实施例允许用户按照不同的方式,比如切换移动设备8500上的开关,通过发出话音命令等,选择特定的参与者。FIG. 85 shows an exemplary sequence of operations for simultaneously displaying all participants of a multi-party video conference, performing a participant selection operation, and performing a participant deselection operation. Other sequences of operations are also possible. For example, after the third stage 8515, instead of initiating a participant deselection operation, the user can select one of the unselected display areas displayed in composite display 8585 to exchange the newly selected display area in display area 8585 with that of PIP display 8560. The background display area (ie, the previously selected display area). Thus, during a multi-party video conference, the user can swap the display area in display area 8585 and the background display area of PIP display 8560 at any time and any number of times. Additionally, at any time during the multi-party video conference, the user can perform a participant deselect operation to return to composite display 8535 . In addition, different embodiments allow the user to select specific participants in different ways, such as toggling a switch on the mobile device 8500, by issuing voice commands, and the like.
一些实施例提供例如根据语音检测自动选择参与者的技术。在这样的实施例中,当参与者之一说话时,该参与者的显示区被自动选为PIP显示8560的背景显示区。当一位不同的参与者说话时,该参与者的显示区被自动选为PIP显示8560的背景显示区。在一些实施例中,当多方视频会议的参与者都没有说话时,在规定量的静默(例如,3秒)之后,显示器显示合成显示8535。在一些实施例中,当移动设备8500的用户说话时,移动设备8500的UI 8530上什么操作也不发生。Some embodiments provide techniques for automatically selecting participants, eg, based on voice detection. In such an embodiment, when one of the participants speaks, that participant's display area is automatically selected as the background display area of the PIP display 8560. When a different participant speaks, that participant's display area is automatically selected as the background display area of the PIP display 8560. In some embodiments, the display displays composite display 8535 after a prescribed amount of silence (eg, 3 seconds) when none of the participants in the multi-party video conference is speaking. In some embodiments, when the user of the mobile device 8500 speaks, nothing happens on the UI 8530 of the mobile device 8500.
图86图解说明同时显示多方视频会议的所有参与者并选择参与者之一以便观看的另一个示例的操作序列。图86参考UI 8645的七个不同阶段8505、8605、8610、8615、8620、8625和8630,图解说明移动设备850的UI 8645中的这种操作。第一阶段8505和在图85中图解说明的第一阶段8505相同,因为它显示在建立了其它设备的另外三位用户之间的多方视频会议之后的UI 8645。FIG. 86 illustrates another example sequence of operations for simultaneously displaying all participants of a multi-party video conference and selecting one of the participants for viewing. Figure 86 illustrates this operation in the UI 8645 of the mobile device 850 with reference to seven different stages 8505, 8605, 8610, 8615, 8620, 8625, and 8630 of the UI 8645. The first stage 8505 is the same as the first stage 8505 illustrated in Figure 85 in that it shows the UI 8645 after establishing a multi-party video conference between three other users of other devices.
第二阶段8605图解说明通过选择显示区8570(例如,通过把两根手指放在显示区8570上),移动设备8500的用户开始参与者选择操作。第三阶段8610表示参与者选择操作的转变阶段。在这个阶段,用户彼此远离地拖动两根手指,同时使显示区8570变得更大,并充满用于显示合成显示835的显示区。这个例子表示显示区8570被选择,不过任意其它显示区8565、8575和8580也可被选择。在一些实施例中,不允许移动设备8500的用户选择该用户的显示区(即,这个例子中的显示区8565)。The second stage 8605 illustrates that the user of the mobile device 8500 initiates a participant selection operation by selecting the display area 8570 (eg, by placing two fingers on the display area 8570). The third stage 8610 represents the transition stage of the participant selection operation. At this stage, the user drags two fingers away from each other, making the display area 8570 larger and filling the display area used to display the composite display 835 . This example shows display area 8570 being selected, but any of the other display areas 8565, 8575, and 8580 may also be selected. In some embodiments, a user of mobile device 8500 is not permitted to select the user's display area (ie, display area 8565 in this example).
UI 8645的第四阶段8615显示在完成参与者选择操作之后的UI8645的PIP显示8635。一些实施例要求用户继续彼此远离地拖动两根手指,直到显示区8570充满PIP显示8635的背景显示区8640为止,而其它实施例只要求在用户移开手指之前,用户的拖动操作大于特定的阈值量(例如,大于特定的距离,或者大于特定的时间量)。当用户的拖动操作满足或超过特定阈值量时,UI 8645继续显示区8570的放大,直到它充满PIP显示8635的背景显示区8640为止。否则,参与者选择操作未完成,UI 8645返回合成显示8535。如图所示,选择的显示区(即,显示区8570)是PIP显示8635的背景显示区8640,用户的显示区8565是PIP显示8635的插入显示区。一些实施例提供显示第三阶段8610和第四阶段8615之间的转变的动画(未示出)。The fourth stage 8615 of the UI 8645 shows the PIP display 8635 of the UI 8645 after the participant selection operation is completed. Some embodiments require the user to continue dragging the two fingers away from each other until the display area 8570 fills the background display area 8640 of the PIP display 8635, while other embodiments only require the user to drag more than a certain amount before the user removes the fingers. A threshold amount of (eg, greater than a certain distance, or greater than a certain amount of time). When the user's drag operation meets or exceeds a certain threshold amount, the UI 8645 continues the enlargement of the display area 8570 until it fills the background display area 8640 of the PIP display 8635. Otherwise, the participant selection operation is not complete and the UI 8645 returns to the composite display 8535. As shown, the selected display area (ie, display area 8570 ) is the background display area 8640 of the PIP display 8635 and the user's display area 8565 is the inset display area of the PIP display 8635 . Some embodiments provide an animation (not shown) showing the transition between the third stage 8610 and the fourth stage 8615.
第五阶段8620图解说明通过选择PIP显示8635的背景显示区8640(例如,通过把两根手指放在背景显示区8640上),移动设备8500的用户开始参与者取消选择操作。第六阶段8625表示参与者取消选择操作的转变阶段。该阶段图解说明用户相互接近地拖动手指,以缩小被用于PIP显示8635的背景显示区8640的显示区。类似于在第三阶段8610中说明的操作,一些实施例要求在用户移开手指之前,用户的拖动操作要大于特定阈值量(例如,大于特定的距离,或者大于特定的时间量)。否则,参与者取消选择操作未完成,UI 8645返回PIP显示8635。UI 8645的第七阶段8630表示在完成参与者取消选择操作之后的合成显示8535。The fifth stage 8620 illustrates that by selecting the background display area 8640 of the PIP display 8635 (eg, by placing two fingers on the background display area 8640 ), the user of the mobile device 8500 initiates a participant deselection operation. The sixth stage 8625 represents the transition stage of the participant deselection operation. This stage illustrates the user dragging the fingers closer to each other to shrink the display area used for the background display area 8640 of the PIP display 8635 . Similar to the operations described in the third stage 8610, some embodiments require that the user's drag operation be greater than a certain threshold amount (eg, greater than a certain distance, or greater than a certain amount of time) before the user removes the finger. Otherwise, the participant deselection operation is not complete and UI 8645 returns to PIP display 8635. The seventh stage 8630 of the UI 8645 represents the composite display 8535 after completion of the participant deselection operation.
图86图解说明同时显示多方视频会议的所有参与者,进行参与者选择操作,和进行参与者取消选择操作的另一个示例操作序列。不过,一些实施例允许移动设备8500的用户重复进行参与者选择操作和参与者取消选择操作。图87图解说明一个这样的实施例。FIG. 86 illustrates another example sequence of operations for simultaneously displaying all participants of a multi-party video conference, performing a participant selection operation, and performing a participant deselection operation. However, some embodiments allow the user of mobile device 8500 to repeatedly perform participant selection operations and participant deselection operations. Figure 87 illustrates one such embodiment.
具体地说,图87参考UI 8730的七个不同阶段8505、8705、8615、8710、8715、8720和8725,图解说明多次进行参与者选择操作和参与者取消选择操作的示例序列。第一阶段8505和上面提及的图85和86的第一阶段8505相同。第二阶段8705类似于图86的第二阶段8605,除了用户通过轻点显示区8570一次(而不是把两根手指放在显示区8570上),选择显示区8570之外。第三阶段8615和图86的第四阶段8615相同,因为它表示在完成参与者选择操作之后的PIP显示8635。第四阶段8710类似于图86的第五阶段8620,除了用户通过轻点背景显示区8640一次(而不是把两根手指放在背景显示区8640上),选择PIP显示8645的背景显示区8640之外。In particular, FIG. 87 illustrates an example sequence of performing participant selection operations and participant deselection operations multiple times with reference to seven different stages 8505, 8705, 8615, 8710, 8715, 8720, and 8725 of the UI 8730. The first stage 8505 is the same as the first stage 8505 of FIGS. 85 and 86 mentioned above. The second stage 8705 is similar to the second stage 8605 of FIG. 86, except that the user selects the display area 8570 by tapping the display area 8570 once (instead of placing two fingers on the display area 8570). The third stage 8615 is the same as the fourth stage 8615 of FIG. 86 in that it represents the PIP display 8635 after completion of the participant selection operation. The fourth stage 8710 is similar to the fifth stage 8620 of FIG. 86, except that the user selects one of the background display areas 8640 of the PIP display 8645 by tapping the background display area 8640 once (instead of placing two fingers on the background display area 8640). outside.
第五阶段8715和图86的第七阶段8630相同,因为它表示在参与者完成取消选择操作之后的合成显示8535。第六阶段8720类似于第二阶段8510,除了对显示区8575进行参与者选择操作之外。类似地,第七阶段8725类似于第三阶段8705,因为它把选择的显示区(即,显示区8575)表示成PIP显示8635的背景显示区8640。尽管图87只表示了少许参与者选择和参与者取消选择操作,不过在多方视频会议期间,可以进行任意多次的这种操作。The fifth stage 8715 is the same as the seventh stage 8630 of FIG. 86 in that it represents the composite display 8535 after the participant has completed the deselection operation. The sixth stage 8720 is similar to the second stage 8510 except that the display area 8575 is manipulated for participant selection. Similarly, seventh stage 8725 is similar to third stage 8705 in that it represents the selected display area (ie, display area 8575 ) as background display area 8640 of PIP display 8635 . Although FIG. 87 shows only a few participant selection and participant deselection operations, any number of such operations can be performed during a multiparty video conference.
此外,一些实施例提供在视频会议期间,能够显示不同数目的参与者的UI。例如,当移动设备被直立拿着(即,纵向定向)时,一些实施例的UI只显示多方视频会议的一些参与者,当移动设备被横向拿着(即,横向定向)时,显示另外的参与者。其它实施例在移动设备被横向拿着时,显示所有的参与者。另外,一些实施例提供动画来指示在和图34、35、36和37中图解说明的类似的移动设备的不同位置和/或定向之间的转变。其它不同的动画也是可能的。Additionally, some embodiments provide a UI capable of displaying different numbers of participants during a video conference. For example, the UI of some embodiments displays only some of the participants in a multi-party video conference when the mobile device is held upright (i.e., oriented in portrait orientation) and others when the mobile device is held in landscape orientation (i.e., oriented in landscape). participants. Other embodiments display all participants when the mobile device is held in landscape orientation. Additionally, some embodiments provide animations to indicate transitions between different positions and/or orientations of a mobile device similar to those illustrated in FIGS. 34 , 35 , 36 and 37 . Other different animations are also possible.
作为在视频会议期间,显示不同数目的参与者的UI的另一个例子,一些实施例允许移动设备的用户在视频会议期间选择要同时观看的多位参与者。为了说明起见,参见图85的第一阶段8505,一些这样的实施例允许移动设备8500的用户选择显示区8565、8570、8575和8580中的两个或更多个显示区(例如,通过轻点合成显示8535中的对应显示区)。选择的显示区随后能够按照各种方式被显示,比如合成显示、PIP显示、图65中图解说明的显示排列中的任意一种,以及其它各种多参与者显示排列。此外,尽管说明了一些实施例的例子,不过,普通技术人员会认识到不同的实施例能够按照任意多种方式,选择和显示多方视频会议的多位参与者。As another example of a UI displaying different numbers of participants during a video conference, some embodiments allow a user of a mobile device to select multiple participants to view simultaneously during a video conference. For purposes of illustration, referring to the first stage 8505 of FIG. Corresponding display area in Composite Display 8535). The selected display area can then be displayed in a variety of ways, such as composite display, PIP display, any of the display arrangements illustrated in Figure 65, and other various multi-participant display arrangements. Furthermore, while examples of some embodiments are described, those of ordinary skill will recognize that different embodiments can select and display multiple participants in a multi-party video conference in any number of ways.
B.多方广播视频会议的用户界面B. User Interface for Multicast Videoconferencing
如上所述,多方广播视频会议只允许一位参与者听到和看到所有其它参与者,而其它参与者不能相互听到或看到。为了使多方广播视频会议更容易,一些实施例提供用于显示多方广播视频会议的广播者和其它参与者的众多不同的UI。例如,一些实施例提供学生-教师式UI布局,类似于在图85中图解说明的第三阶段8515的布局。因而,现在参考所述第三阶段8515,说明一些实施例的学生-教师式UI布局。As mentioned above, a multicast video conference allows only one participant to hear and see all other participants, and the other participants cannot hear or see each other. To facilitate multicast video conferencing, some embodiments provide a number of different UIs for displaying the broadcaster and other participants of the multicast video conference. For example, some embodiments provide a student-teacher UI layout, similar to that of the third stage 8515 illustrated in FIG. 85 . Thus, referring now to said third stage 8515, the student-teacher UI layout of some embodiments is illustrated.
在这些实施例中,只有广播者被显示在PIP显示8560的整个显示区中(即,不显示插入显示区)。多方广播视频会议的其它参与者被显示在PIP显示8560下面,类似于在合成显示8585中显示的显示区。与上面所述类似,在一些实施例中,当移动设备处于纵向模式时,在合成显示8585中显示规定数目的其它参与者,而当移动设备处于横向模式时,合成显示8585中可显示另外的或者所有参与者。另外,其它实施例提供显示多方广播视频会议的广播者和其它参与者的不同UI。In these embodiments, only the broadcaster is displayed in the entire display area of the PIP display 8560 (ie, the inset display area is not displayed). The other participants in the multicast video conference are displayed below the PIP display 8560 , similar to the display area shown in the composite display 8585 . Similar to the above, in some embodiments, a specified number of other participants may be displayed in composite display 8585 when the mobile device is in portrait mode, and additional participants may be displayed in composite display 8585 when the mobile device is in landscape mode. Or all participants. Additionally, other embodiments provide a different UI that displays the broadcaster and other participants of the multicast video conference.
C.控制多方视频会议的音频C. Control the audio of a multi-party video conference
此外,一些实施例的移动设备提供控制多方视频会议的多个参与者的音频的不同技术。例如,移动设备的一些实施例允许移动设备的用户通过显示在这种实施例的UI上的单组音量控件(例如,音量滑动块),控制多方视频会议中的每位参与者的音频。在其它实施例中,移动设备允许移动设备的用户通过一组音量控件,比如显示在每个参与者的显示区中的音量滑动块,分别控制多方视频会议中的每位参与者的音频的音量。一些实施例只提供静音按钮,而不是一组音量控件。因而,在一些这样的实施例中,移动设备的用户只能够静音或取消静音多方视频会议的所有参与者,而在其它这种实施例中,移动设备的用户能够分别静音或取消静音多方视频会议的每个参与者。另外,控制多方视频会议的参与者的音频的其它技术也是可能的,比如通过切换移动设备上的开关、通过发出话音命令等等。Additionally, the mobile device of some embodiments provides different techniques for controlling the audio of multiple participants in a multi-party video conference. For example, some embodiments of a mobile device allow a user of the mobile device to control the audio for each participant in a multiparty video conference through a single set of volume controls (eg, a volume slider) displayed on the UI of such an embodiment. In other embodiments, the mobile device allows the user of the mobile device to individually control the volume of the audio for each participant in the multiparty video conference through a set of volume controls, such as a volume slider displayed in each participant's display area . Some embodiments provide only a mute button, rather than a set of volume controls. Thus, in some such embodiments, the user of the mobile device can only mute or unmute all participants of the multiparty video conference, while in other such embodiments, the user of the mobile device can individually mute or unmute the multiparty video conference each participant. Additionally, other techniques of controlling the audio of participants in a multi-party video conference are possible, such as by toggling a switch on a mobile device, by issuing voice commands, and the like.
VIII.电子系统VIII. Electronic system
许多上述特征和应用被实现成软件进程,所述软件进程被规定为记录在计算机可读存储介质(也称为计算机可读介质)上的一组指令。当这些指令被一个或多个处理单元(例如,一个或多个处理器,处理器的核芯,或者其它处理单元)执行时,它们使处理单元执行在指令中指示的动作。计算机可读介质的例子包括但不限于CD-ROM、闪存驱动器、RAM芯片、硬盘驱动器、EPROM等等。计算机可读介质不包括无线或者通过有线连接传递的载波和电信号。Many of the above-described features and applications are implemented as software processes specified as a set of instructions recorded on a computer-readable storage medium (also referred to as a computer-readable medium). When these instructions are executed by one or more processing units (eg, one or more processors, cores of processors, or other processing units), they cause the processing units to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, RAM chips, hard drives, EPROMs, and the like. Computer-readable media do not include carrier waves and electrical signals transmitted wirelessly or through wired connections.
在本说明书中,术语“软件”意图包括驻留在只读存储器中的固件,或者保存在磁性存储器中的应用,它们可被读入存储器中,以便由处理器处理。另外,在一些实施例中,多个软件发明可被实现成更大程序的子部分,同时仍然是不同的软件发明。在一些实施例中,多个软件发明也可被实现成独立的程序。最后,一同实现这里描述的软件发明的分离程序的任何组合也在本发明的范围之内。在一些实施例中,当安装到在一个或多个电子系统上操作时,软件程序定义执行和实现软件程序的操作的一个或多个特定的机器实现。In this specification, the term "software" is intended to include firmware residing in read-only memory, or applications stored in magnetic storage, which can be read into memory for processing by a processor. Additionally, in some embodiments, multiple software inventions may be implemented as sub-parts of a larger program while still being distinct software inventions. In some embodiments, multiple software inventions may also be implemented as separate programs. Finally, any combination of separate programs that together implement the software inventions described herein is also within the scope of the invention. In some embodiments, a software program defines one or more specific machine implementations that execute and implement the operations of the software program when installed to operate on one or more electronic systems.
在调用程序代码通过一个或多个接口与被调用的其它程序代码交互的环境中,一些实施例被实现成包括一个或多个应用编程接口(API)的软件进程。进一步可包括各种参数的各种函数调用、消息或其它各种调用可通过API,在调用程序和被调用代码之间传送。另外,API可向调用程序代码提供使用在API中定义并在被调用的程序代码中实现的数据类型或类别的能力。In environments where calling program code interacts with other program code that is called through one or more interfaces, some embodiments are implemented as a software process that includes one or more application programming interfaces (APIs). Various function calls, messages or other various calls that may further include various parameters can be transmitted between the calling program and the called code through the API. Additionally, the API may provide calling program code with the ability to use data types or classes defined in the API and implemented in the called program code.
至少一些实施例包括调用软件组件通过API与被调用的软件组件交互的环境。在这种环境中通过API操作的一种方法包括通过API,传送一个或多个函数调用、消息、其它各种调用或参数。At least some embodiments include an environment in which a calling software component interacts with a called software component through an API. One method of operating through the API in this environment includes passing one or more function calls, messages, other various calls or parameters through the API.
在一些实施例中,可以使用一个或多个应用编程接口(API)。例如,媒体交换模块310(或者910)的一些实施例向其它软件组件提供一组API,用于访问在图3和9中描述的各种视频处理和编码功能,比如在图19中描述的TNR模块1900的功能。In some embodiments, one or more application programming interfaces (APIs) may be used. For example, some embodiments of the media exchange module 310 (or 910) provide a set of APIs to other software components for accessing the various video processing and encoding functions described in FIGS. 3 and 9, such as the TNR described in FIG. Module 1900 functions.
API是由程序代码组件或硬件组件(下面称为“API实现组件”)实现的接口,允许不同的程序代码组件或硬件组件(下面称为“API调用组件”)访问和使用由API实现组件提供的一个或多个函数、方法、过程、数据结构、类别和/或其它服务。AIP能够定义在API调用组件和AIP实现组件之间传送的一个或多个参数。API is an interface implemented by a program code component or hardware component (hereinafter referred to as "API implementing component") that allows different program code components or hardware components (hereinafter referred to as "API calling component") to access and use the API provided by the API implementing component One or more functions, methods, procedures, data structures, classes and/or other services of . The AIP can define one or more parameters passed between the API calling component and the AIP implementing component.
API允许API调用组件的开发人员(可以是第三方开发人员)利用由API实现组件提供的规定特征。可以存在一个API调用组件,或者可以存在多于一个的API调用组件。API可以是计算机系统或者程序库为支持来自应用的服务请求而提供的源代码接口。操作系统(OS)可具有多个API,以允许在OS上运行的应用调用一个或多个这样的API,服务(比如程序库)可以具有多个API,以允许使用该服务的应用调用一个或多个这样的API。可利用当建立应用时,能够被解释或编译的编程语言指定API。The API allows the developer of the API-calling component (which may be a third-party developer) to take advantage of specified features provided by the API-implementing component. There may be one API calling component, or there may be more than one API calling component. An API can be a source code interface provided by a computer system or program library to support service requests from applications. An operating system (OS) may have multiple APIs to allow applications running on the OS to call one or more of these APIs, and a service (such as a library) may have multiple APIs to allow applications using the service to call one or more Multiple such APIs. The API may be specified with a programming language that can be interpreted or compiled when building an application.
在一些实施例中,API实现组件可提供多于一个的API,每个API提供访问由API实现组件实现的功能的不同方面的不同状况的不同视图,或者具有所述不同状况的不同视图。例如,API实现组件的一个API能够提供第一组函数,并且能够暴露给第三方开发人员,API实现组件的另一个API能够被隐藏(不被暴露),并提供第一组函数的子集,还提供另一组函数,比如不在第一组函数中的测试或调试函数。在其它实施例中,API实现组件本身可通过下层的API调用一个或多个其它组件,从而既是API调用组件,又是API实现组件。In some embodiments, an API implementing component may provide more than one API, each API providing a different view of, or having a different view of, a different situation accessing a different aspect of the functionality implemented by the API implementing component. For example, an API of the API implementation component can provide the first set of functions and can be exposed to third-party developers, another API of the API implementation component can be hidden (not exposed) and provide a subset of the first set of functions, Another set of functions is also provided, such as testing or debugging functions that are not in the first set of functions. In other embodiments, the API implementation component itself can call one or more other components through the underlying API, so that it is both an API calling component and an API implementation component.
API定义当访问和利用API实现组件的指定特征时,API调用组件使用的语言和参数。例如,API调用组件通过API暴露的一个或多个API调用或启用(例如用函数或方法调用具体化),访问API实现组件的指定特征,并经由API调用或启用,利用参数传送数据和控制信息。API实现组件可响应来自API调用组件的API调用,通过API返回数值。尽管API定义API调用的语法和结果(例如,如何启用API调用,和API调用做什么),不过API可不展现AIP调用如何完成由API调用指定的函数。各个API调用是通过调用方(API调用组件)和API实现组件之间的一个或多个应用编程接口传送的。传送API调用可包括发出、初启、启用、调用、接收、返回或响应函数调用或消息;换句话说,传送能够描述API调用组件或者API实现组件的动作。API的函数调用或其它启用可通过参数列表或其它结构,发送或接收一个或多个参数。参数可以是常数、键码(key)、数据结构、对象、对象类别、变量、数据类型、指针、数组、列表、或者函数或方法的指针或引用要通过API传递的数据或另一项目的其他方式。The API defines the language and parameters used by the API call component when accessing and utilizing the specified feature of the API implementation component. For example, an API call component accesses the specified features of the API implementation component through one or more API calls or activations exposed by the API (e.g., embodied by function or method calls), and transmits data and control information using parameters via the API call or activation . The API implementation component can respond to the API call from the API call component, and return a value through the API. Although an API defines the syntax and results of an API call (eg, how to enable the API call, and what the API call does), the API may not expose how the AIP call completes the function specified by the API call. Each API call is communicated through one or more application programming interfaces between the caller (the API calling component) and the API implementing component. Transmitting an API call can include issuing, initiating, enabling, invoking, receiving, returning, or responding to a function call or message; in other words, transmitting can describe the actions of an API calling component or an API implementing component. A function call or other invocation of an API may send or receive one or more parameters via a parameter list or other structure. Parameters can be constants, keys, data structures, objects, object classes, variables, data types, pointers, arrays, lists, or pointers to functions or methods or other references to data or another item to be passed through the API Way.
此外,数据类型或类别可由API提供,并由API实现组件实现。从而,API调用组件可以利用在API中提供的定义,说明变量、使用这种类型或类别的指针、使用或例示这种类型或类别的常量。Additionally, data types or classes may be provided by the API and implemented by the API implementing component. Thus, an API calling component can declare variables, use pointers of this type or class, use or instantiate constants of this type or class, using definitions provided in the API.
通常,API能够被用于访问由API实现组件提供的服务或数据,或者发起由API实现组件提供的操作或计算的执行。例如,API实现组件和API调用组件都可以是操作系统、程序库、设备驱动器、API、应用程序或者其它模块任意之一(应明白API实现组件和API调用组件可以是相同类型的模块,或者类型彼此不同的模块)。在一些情况下,可以至少部分用固件、微代码或者其它硬件逻辑来具体体现API实现组件。在一些实施例中,API可允许客户端程序使用由软件开发套件(SDK)库提供的服务。在其它实施例中,应用或者其它客户端程序可以使用由应用架构提供的API。在这些实施例中,应用或客户端程序可包含对由SDK提供和由API提供的函数或方法的调用,或者使用在SDK中定义和由API提供的数据类型或对象。在这些实施例中,应用架构可为程序提供响应由所述架构定义的各种事件的主事件循环。API允许应用利用应用架构,指定事件和对事件的响应。在一些实现中,API调用能够向应用报告硬件设备的能力或状态,包括与各个方面相关的能力或状态,比如输入能力和状态、输出能力和状态、处理能力、电源状态、存储容量和状态、通信能力等等,以及API可部分用固件、微代码、或者部分在硬件组件上运行的其它低级逻辑实现。In general, an API can be used to access services or data provided by an API-implementing component, or to initiate the execution of operations or computations provided by an API-implementing component. For example, both the API implementation component and the API call component can be any one of the operating system, program library, device driver, API, application program or other modules (it should be understood that the API implementation component and the API call component can be the same type of module, or a type different modules from each other). In some cases, an API implementing component may be embodied at least in part in firmware, microcode, or other hardware logic. In some embodiments, the API may allow client programs to use services provided by software development kit (SDK) libraries. In other embodiments, applications or other client programs may use APIs provided by the application framework. In these embodiments, the application or client program may contain calls to functions or methods provided by the SDK and provided by the API, or use data types or objects defined in the SDK and provided by the API. In these embodiments, the application framework may provide a program with a main event loop that responds to various events defined by the framework. APIs allow applications to specify events and responses to events using the application framework. In some implementations, the API calls can report the capabilities or status of the hardware device to the application, including capabilities or status related to various aspects, such as input capabilities and status, output capabilities and status, processing capabilities, power status, storage capacity and status, Communication capabilities, etc., and APIs may be implemented in part in firmware, microcode, or in part other low-level logic running on hardware components.
API调用组件可以是本地组件(即,和API实现组件在相同的数据处理系统上),或者是通过网络经API与API实现组件通信的远程组件(即,与API实现组件在不同的数据处理系统上)。应明白API实现组件还可充当API调用组件(即,它可对由不同的API实现组件暴露的AIP进行API调),通过实现暴露给不同的API调用组件的API,API调用组件还可充当API实现组件。The API calling component can be a local component (i.e., on the same data processing system as the API implementation component), or a remote component that communicates with the API implementation component through the network via the API (i.e., on a different data processing system from the API implementation component). superior). It should be understood that the API implementation component can also act as an API call component (that is, it can perform API calls on the AIP exposed by different API implementation components), and by implementing the API exposed to different API call components, the API call component can also act as an API Implement components.
API还允许用不同的编程语言编写的多个API调用组件与API实现组件通信(从而,API可包括在API实现组件和API调用组件之间转换调用和回复的特征);不过,可利用特定的编程语言实现API。在一个实施例中,API调用组件可调用来自不同提供商的API,比如来自OS提供商的一组API、来自插件提供商的另一组API、和来自另一个提供商(例如,软件库的提供商)或者另一组API的创建者的另一组API。The API also allows multiple API-calling components written in different programming languages to communicate with the API-implementing component (thereby, the API may include features that translate calls and replies between the API-implementing component and the API-calling component); however, specific The programming language implements the API. In one embodiment, the API calling component can call APIs from different providers, such as one set of APIs from an OS provider, another set of APIs from a plug-in provider, and another set of APIs from another provider (e.g., a software library). provider) or another set of APIs from the creator of another set of APIs.
图88是图解说明可用在本发明的一些实施例中的示例API体系结构的方框图。如图88中所示,API体系结构8800包括实现API 8820的API实现组件8810(例如,操作系统、程序库、设备驱动器、API、应用程序、软件或其它模块)。API 8820指定可由API调用组件8830使用的一个或多个函数、方法、类别、对象、协议、数据结构、格式和/或API实现组件的其它特征。API 8820可以规定至少一种调用约定,所述调用约定规定API实现组件8810中的函数如何接收来自API调用组件8830的参数,和该函数如何把结果返回给API调用组件。API调用组件8830(例如,操作系统、程序库、设备驱动器、API、应用、软件或其它模块)通过API 8820发出API调用,以访问和利用由API 8820指定的API实现组件8810的特征。API实现组件8810可响应API调用,通过API 8820向API调用组件830返回数值。Figure 88 is a block diagram illustrating an example API architecture that may be used in some embodiments of the invention. As shown in FIG. 88, API architecture 8800 includes API implementation components 8810 (e.g., operating systems, libraries, device drivers, APIs, applications, software, or other modules) that implement APIs 8820. The API 8820 specifies one or more functions, methods, classes, objects, protocols, data structures, formats, and/or other characteristics of the API implementing component that can be used by the API calling component 8830. The API 8820 can specify at least one calling convention, and the calling convention specifies how the function in the API implementation component 8810 receives parameters from the API calling component 8830, and how the function returns the result to the API calling component. An API call component 8830 (e.g., an operating system, program library, device driver, API, application, software, or other module) issues an API call through the API 8820 to access and utilize features of the API implementation component 8810 specified by the API 8820. The API implementation component 8810 can respond to the API call, and return a value to the API call component 830 through the API 8820.
要认识到API实现组件8810可包括未通过API 8820指定并不可供API调用组件8830使用的另外的函数、方法、类别、数据结构和/或其它特征。应明白API调用组件8830可以和API实现组件8810在相同的系统上,或者可以位于远程位置,并通过网络利用API 8820访问API实现组件8810。尽管图88图解说明与API 8820交互的单个API调用组件8830,不过应明白其它API调用组件可以使用API8820,所述其它API调用组件可以用与API调用组件8830不同的语言(或者用相同的语言)编写。It is to be appreciated that the API implementing component 8810 may include additional functions, methods, classes, data structures and/or other features not specified by the API 8820 and available to the API calling component 8830. It should be appreciated that the API calling component 8830 can be on the same system as the API implementing component 8810, or can be located in a remote location and access the API implementing component 8810 via the API 8820 over a network. Although FIG. 88 illustrates a single API call component 8830 interacting with the API 8820, it should be understood that other API call components may use the API 8820, which may be in a different language (or in the same language) as the API call component 8830 write.
API实现组件8810、API 8820和API调用组件8830可被保存在机器可读介质中,所述机器可读介质包括以机器(例如计算机或者其它数据处理系统)可读的形式保存信息的任何机构。例如,机器可读介质包括磁盘、光盘、随机存取存储器、只读存储器、闪速存储设备等等。API implementing component 8810, API 8820, and API calling component 8830 can be stored on a machine-readable medium, including any mechanism that stores information in a form readable by a machine (eg, a computer or other data processing system). For example, machine-readable media include magnetic disks, optical disks, random access memory, read only memory, flash memory devices, and the like.
图89是双照相机移动计算设备体系结构8900的一个例子。移动计算设备的实现可包括一个或多个处理单元8905、存储器接口8910和外设接口8915。构成计算设备体系结构的这些组件都可以是单独的组件,或者被集成到一个或多个集成电路中。这些各个组件还可用一个或多个通信总线或信号线耦接在一起。89 is an example of a dual camera mobile computing device architecture 8900. Implementations of mobile computing devices may include one or more processing units 8905 , memory interfaces 8910 , and peripherals interfaces 8915 . The components that make up the architecture of the computing device may all be separate components or integrated into one or more integrated circuits. These various components may also be coupled together by one or more communication buses or signal lines.
外设接口8915可与各种传感器和子系统,包括照相机子系统8920、无线通信子系统8925、音频子系统8930、I/O子系统8935等耦接。外设接口8915能够实现处理器和外围设备之间的通信。诸如定向传感器8945或加速度传感器8950之类的外围设备能够与外设接口8915耦接,以便利定向和加速度功能。The peripherals interface 8915 can couple with various sensors and subsystems, including a camera subsystem 8920, a wireless communication subsystem 8925, an audio subsystem 8930, an I/O subsystem 8935, and the like. The peripherals interface 8915 enables communication between the processor and peripheral devices. Peripherals, such as orientation sensor 8945 or acceleration sensor 8950, can be coupled to peripherals interface 8915 to facilitate orientation and acceleration functions.
照相机子系统8920能够与一个或多个光学传感器8940,例如电荷耦合器件(CCD)光学传感器、互补金属氧化物半导体(CMOS)光学传感器耦接。与传感器耦接的照相机子系统8920能够便利照相机功能,比如图像和/或视频数据捕获。无线通信子系统8925可用于便利通信功能。无线通信子系统8925可包括射频接收器和发射器,和光学接收器和发射器。它们可被实现成通过一个或多个通信网络,比如GSM网络、Wi-Fi网络、蓝牙网络等工作。音频子系统8930与扬声器和麦克风耦接,以便利允许话音的功能,比如话音识别、数字记录等等。The camera subsystem 8920 can be coupled with one or more optical sensors 8940, such as charge coupled device (CCD) optical sensors, complementary metal oxide semiconductor (CMOS) optical sensors. A camera subsystem 8920 coupled to a sensor can facilitate camera functions, such as image and/or video data capture. A wireless communication subsystem 8925 may be used to facilitate communication functions. The wireless communication subsystem 8925 may include radio frequency receivers and transmitters, and optical receivers and transmitters. They can be implemented to work over one or more communication networks, such as GSM networks, Wi-Fi networks, Bluetooth networks, etc. Audio subsystem 8930 is coupled with a speaker and a microphone to facilitate voice-enabled functions such as voice recognition, digital recording, and the like.
I/O子系统8935涉及诸如显示器、触摸屏之类的输入/输出外围设备与CPU的数据总线之间通过外设接口的传送。I/O子系统8935可包括触摸屏控制器8955和其它输入控制器8960,以便利这些功能。触摸屏控制器8955可与触摸屏8965耦接,并利用多种触敏技术中的任意一种,检测屏幕上的接触和移动。其它输入控制器8960能够与其它输入/输出设备,比如一个或多个按钮耦接。The I/O subsystem 8935 is concerned with the transfer between input/output peripherals such as displays, touch screens, and the CPU's data bus through the peripheral interface. The I/O subsystem 8935 may include a touch screen controller 8955 and other input controllers 8960 to facilitate these functions. A touch screen controller 8955 can be coupled to the touch screen 8965 and detect contact and movement on the screen using any of a variety of touch sensitive technologies. Other input controls 8960 can be coupled with other input/output devices, such as one or more buttons.
存储器接口8910可与存储器8970耦接,存储器8970可包括高速随机存取存储器和/或非易失性存储器,比如闪速存储器。存储器能够保存操作系统(OS)8972。OS 8972可包括处理基本系统服务和执行硬件相关任务的指令。The memory interface 8910 can be coupled with a memory 8970, which can include high-speed random access memory and/or non-volatile memory, such as flash memory. The memory is capable of holding an operating system (OS) 8972 . The OS 8972 may include instructions to handle basic system services and perform hardware-related tasks.
存储器还可包括使与一个或多个另外设备的通信更容易的通信指令8974;便利图形用户界面处理的图形用户界面指令8976;便利涉及图像/视频的处理和功能的图像/视频处理指令8978;便利涉及电话的处理和功能的电话指令8980;便利与媒体通信和处理相关的处理和功能的媒体交换和处理指令8982;便利涉及照相机的处理和功能的照相机指令8984;和便利视频会议处理和功能的视频会议指令8986。上述指令不需要被实现成独立的软件程序或模块。可用硬件和/或软件,包括用一个或多个信号处理和/或专用集成电路实现移动计算设备的各种功能。The memory may also include communication instructions 8974 to facilitate communication with one or more additional devices; GUI instructions 8976 to facilitate GUI processing; image/video processing instructions 8978 to facilitate processing and functions involving images/videos; Telephony Instructions 8980 to facilitate processing and functions related to telephony; Media Exchange and Processing Instructions 8982 to facilitate processing and functions related to media communications and processing; Camera Instructions 8984 to facilitate processing and functions related to cameras; and Video Conferencing processing and functions to facilitate Videoconferencing Instruction 8986. The above-described instructions need not be implemented as separate software programs or modules. Various functions of the mobile computing device may be implemented in hardware and/or software, including one or more signal processing and/or application specific integrated circuits.
上述实施例可以包括能够接收触摸输入,以如图90中所示通过有线或无线通信通道9002,与计算系统9003交互的触摸I/O设备9001。触摸I/O设备9001可被用于代替或者结合其它输入设备,比如键盘、鼠标等,把用户输入提供给计算系统9003。一个或多个触摸I/O设备9001可用于把用户输入提供给计算系统9003。触摸I/O设备9001可以是计算系统9003的组成部分(例如,膝上型计算机的触摸屏),或者独立于计算系统9003。The above-described embodiments may include a touch I/O device 9001 capable of receiving touch input to interact with a computing system 9003 through a wired or wireless communication channel 9002 as shown in FIG. 90 . Touch I/O device 9001 may be used to provide user input to computing system 9003 instead of or in combination with other input devices, such as a keyboard, mouse, or the like. One or more touch I/O devices 9001 can be used to provide user input to the computing system 9003. Touch I/O device 9001 may be an integral part of computing system 9003 (eg, a touch screen of a laptop computer), or be separate from computing system 9003 .
触摸I/O设备9001可以包括完全或部分透明、半透明、不透明的触敏面板,或者它们的任意组合。触摸I/O设备9001可被具体体现为触摸屏、触摸板、起触摸板作用的触摸屏(例如,代替膝上型计算机的触摸板的触摸屏)、与任何其它输入设备结合或合并的触摸屏或触摸板(例如,置于键盘上的触摸屏或触摸板)、或者具有用于接收触摸输入的触敏表面的任何多维物体。Touch I/O device 9001 may include a fully or partially transparent, translucent, opaque touch-sensitive panel, or any combination thereof. Touch I/O device 9001 may be embodied as a touch screen, a touch pad, a touch screen functioning as a touch pad (e.g., a touch screen instead of a touch pad of a laptop computer), a touch screen or touch pad combined or incorporated with any other input device (for example, a touchscreen or touchpad placed over a keyboard), or any multi-dimensional object with a touch-sensitive surface for receiving touch input.
在一个例子中,具体体现为触摸屏的触摸I/O设备9001可包括部分或全部置于至少一部分的显示器之上的透明和/或半透明的触敏面板。按照这个实施例,触摸I/O设备9001用于显示从计算系统9003(和/或另一来源)传送的图形数据,并且还用于接收用户输入。在其它实施例中,触摸I/O设备9001可被具体体现为其中使触敏组件/设备与显示组件/设备结合的集成触摸屏。在又一些实施例中,触摸屏可被用作显示辅助图像数据,或者和主显示器相同的图形数据和接收触摸输入的辅助或附加显示屏。In one example, the touch I/O device 9001 embodied as a touch screen may include a transparent and/or translucent touch-sensitive panel partially or fully disposed over at least a portion of the display. According to this embodiment, touch I/O device 9001 is used to display graphical data communicated from computing system 9003 (and/or another source), and is also used to receive user input. In other embodiments, touch I/O device 9001 may be embodied as an integrated touch screen in which a touch-sensitive component/device is combined with a display component/device. In yet other embodiments, the touch screen may be used as a secondary or additional display screen that displays secondary image data, or the same graphical data as the primary display and receives touch input.
触摸I/O设备9001可被配置成根据电容、电阻、光学、声学、感应、机械或化学测量结果,或者关于邻近设备9001的一次或多次触摸或者接近触摸的发生可测量的任何现象,检测设备9001上的一次或多次触摸或接近触摸的位置。软件、硬件、固件或者它们的任意组合可被用于处理所检测的触摸的测量结果,以识别和跟踪一个或多个手势。手势可对应于触摸I/O设备9001上的固定或非固定的一次或多次触摸或接近触摸。通过基本同时地、不间断地或者相继地按照预定方式,比如轻点、按压、摆动、擦动、扭动、改变定向、压力变化地按压等,在触摸I/O设备9001上移动一根或多根手指或者其它物体,可做出手势。手势可用手指之间,或者任何其它一根或多根手指的捏挤、滑动、挥击、旋转、弯曲、拖动或者轻点动作表征(但不限于此)。单一的手势可用一只手或两只手、由一个或多个用户、或者它们的任意组合实现。Touch I/O Device 9001 may be configured to detect, based on capacitive, resistive, optical, acoustic, inductive, mechanical, or chemical measurements, or any phenomenon measurable with respect to the occurrence of one or more touches or proximity touches in proximity to Device 9001 The location of one or more touches or near-touches on device 9001. Software, hardware, firmware, or any combination thereof may be used to process measurements of detected touches to recognize and track one or more gestures. A gesture may correspond to one or more touches or proximity touches on the touch I/O device 9001, fixed or non-fixed. Move one or more buttons on the touch I/O device 9001 substantially simultaneously, uninterruptedly, or sequentially in a predetermined manner, such as tapping, pressing, swinging, wiggling, twisting, changing orientation, pressing with varying pressure, etc. Multiple fingers or other objects to make gestures. A gesture may be characterized by (but not limited to) a pinching, sliding, swiping, rotating, bending, dragging, or tapping motion between fingers, or any other finger or fingers. A single gesture can be accomplished with one or two hands, by one or more users, or any combination thereof.
计算系统9003可用图形数据驱动显示器,以显示图形用户界面(GUI)。GUI可被配置成通过触摸I/O设备9001接收触摸输入。具体体现为触摸屏的触摸I/O设备9001可显示GUI。另一方面,GUI可被显示在与触摸I/O设备9001分离的显示器上。GUI可包括显示在界面内的特定位置的图形元件。图形元件可包括但不限于各种显示的虚拟输入设备,包括虚拟滚轮、虚拟键盘、虚拟旋钮、虚拟按钮、任意虚拟UI等等。用户可在触摸I/O设备9001的与GUI的图形元件关联的一个或多个特定位置做手势。在其它实施例中,用户可在与GUI的图形元件的位置无关的一个或多个位置做手势。在触摸I/O设备9001上做的手势可直接或间接地操纵、控制、修改、移动、激励、启动或一般地影响GUI内的图形元件,比如光标、图标、媒体文件、列表、文本、全部或部分的图像等等。例如,就触摸屏来说,用户可通过在触摸屏上的图形元件上做手势,直接与图形元件交互。另一方面,触摸板一般提供间接的交互。手势还影响未显示的GUI元件(例如,导致用户界面出现),或者可影响计算系统9003内的其它动作(例如,影响GUI、应用或操作系统的状态或模式)。可结合显示的光标,在触摸I/O设备9001上做或不做手势。例如,就在触摸板上做手势的情况来说,光标(或者指示符)可被显示在显示屏或触摸屏上,借助触摸板上的触摸输入可控制光标,以与显示屏上的图形对象交互。在其中在触摸屏上直接做手势的其它实施例中,用户可在光标或指示符显示或未显示在触摸屏上的情况下,直接与触摸屏上的对象交互。The computing system 9003 may drive a display with graphical data to display a graphical user interface (GUI). The GUI can be configured to receive touch input by touching the I/O device 9001. The touch I/O device 9001 embodied as a touch screen can display a GUI. Alternatively, the GUI may be displayed on a display separate from the touch I/O device 9001. A GUI may include graphical elements that are displayed at specific locations within the interface. Graphical elements may include, but are not limited to, various displayed virtual input devices, including virtual scroll wheels, virtual keyboards, virtual knobs, virtual buttons, any virtual UI, and the like. A user may gesture at one or more specific locations of the touch I/O device 9001 that are associated with graphical elements of the GUI. In other embodiments, the user may gesture at one or more locations independent of the location of the graphical elements of the GUI. Gestures made on the touch I/O device 9001 can directly or indirectly manipulate, control, modify, move, actuate, activate, or generally affect graphical elements within the GUI, such as cursors, icons, media files, lists, text, all or part of the image and so on. For example, in the case of a touch screen, a user can directly interact with graphical elements on the touch screen by making gestures on the graphical elements. Touchpads, on the other hand, generally provide indirect interaction. Gestures also affect GUI elements that are not displayed (eg, cause a user interface to appear), or can affect other actions within computing system 9003 (eg, affect the state or mode of a GUI, application, or operating system). Gestures can be made or not made on the touch I/O device 9001 in conjunction with a displayed cursor. For example, in the case of gestures on a touchpad, a cursor (or indicator) can be displayed on a display or touchscreen, and the cursor can be controlled by touch input on the touchpad to interact with graphical objects on the display . In other embodiments in which gestures are made directly on the touch screen, the user can directly interact with objects on the touch screen with or without a cursor or indicator displayed on the touch screen.
响应或者根据触摸I/O设备9001上的触摸或接近触摸,可通过通信通道9002向用户提供反馈。反馈可以可变地或者不可变地用光学、机械、电气、嗅觉、声学等方式,或者它们的任意组合来传送。Feedback may be provided to the user via communication channel 9002 in response to or in response to a touch or proximity touch on touch I/O device 9001 . Feedback may be conveyed optically, mechanically, electrically, olfactory, acoustically, etc., or any combination thereof, variably or invariably.
上述这些功能可用数字电子电路、用计算机软件、固件或硬件来实现。各种技术可利用一个或多个计算机程序产品来实现。可编程处理器和计算机可包括在或者包装成移动设备。处理和逻辑流程可由一个或多个可编程处理器和由一个或多个可编程逻辑电路执行。通用和专用计算设备和存储设备可通过通信网络互连。These functions described above may be implemented by digital electronic circuits, by computer software, firmware or hardware. Various techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuits. General and special purpose computing devices and storage devices can be interconnected by communication networks.
一些实施例包括把计算机程序指令保存在机器可读或计算机可读介质(另一方面称为计算机可读存储介质、机器可读介质或者机器可读存储介质)中的电子组件,比如微处理器、存储器和记忆装置。这种计算机可读介质的例子包括RAM、ROM、只读光盘(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、只读数字通用光盘(例如,DVD-ROM,双层DVD-ROM)、各种可记录/可重写DVD(例如,DVD-RAM、DVD-RW、DVD+RW等)、闪速存储器(例如SD卡、小型SD卡、微型SD卡等)、磁和/或固态硬盘驱动器、只读和可记录蓝光光盘、超高密度光盘、任意其它光学或磁性介质、和软盘。计算机可读介质可保存可由至少一个处理单元执行的计算机程序,包括用于实现各种操作的多组指令。计算机程序或计算机代码的例子包括机器代码,比如由编译器产生的机器代码,和包括由计算机、电子组件或者利用解释器的微处理器执行的高级代码的文件。Some embodiments include an electronic component, such as a microprocessor, storing computer program instructions in a machine-readable or computer-readable medium (otherwise referred to as a computer-readable storage medium, machine-readable medium, or machine-readable storage medium). , storage and memory devices. Examples of such computer-readable media include RAM, ROM, compact disc read-only (CD-ROM), compact disc-recordable (CD-R), compact disc rewritable (CD-RW), digital versatile disc (e.g., DVD -ROM, dual-layer DVD-ROM), various recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD card, mini SD card, micro SD cards, etc.), magnetic and/or solid-state hard drives, read-only and recordable Blu-ray Compact discs, ultra-high density discs, any other optical or magnetic media, and floppy disks. The computer-readable medium may store a computer program executable by at least one processing unit, including sets of instructions for implementing various operations. Examples of computer programs or computer code include machine code, such as produced by a compiler, and files including high-level code executed by a computer, electronic component, or microprocessor using an interpreter.
尽管上面的讨论主要涉及执行软件的微处理器或者多核芯处理器,不过一些实施例由一个或多个集成电路,比如专用集成电路(ASIC)或现场可编程门阵列(FPGA)执行。在一些实施例中,这样的集成电路执行保存在电路本身上的指令。Although the above discussion primarily refers to microprocessors or multi-core processors executing software, some embodiments are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some embodiments, such integrated circuits execute instructions stored on the circuit itself.
在说明书和本申请的任何权利要求中使用的术语“计算机”、“服务器”、“处理器”和“存储器”都指的是电子设备或者其它技术设备。这些术语排除人或人群。对说明书来说,术语“显示”意味在电子设备上显示。在说明书和本申请的任何权利要求中使用的术语“计算机可读介质”完全局限于以计算机可读的形式保存信息的有形实体。这些术语排除任何无线信号、有线下载信号和任何其它瞬息信号。As used in the specification and any claims of this application, the terms "computer", "server", "processor" and "memory" all refer to electronic or other technological devices. These terms exclude persons or groups of people. For purposes of this specification, the term "display" means displaying on an electronic device. As used in the specification and any claims of this application, the term "computer-readable medium" is strictly limited to tangible entities that store information in a form readable by a computer. These terms exclude any wireless signals, wired download signals and any other transient signals.
图91概念地图解说明按照一些实施例,用于连接视频会议的一些参与者的示例通信系统9100。如图所示,通信系统9100包括若干移动设备9115、若干蜂窝基站(或者说Node B)9110、若干无线网络控制器(RNC)9105,和核心网络9125。蜂窝基站和RNC被集体称为通用移动电信系统(UMTS)地面无线接入网络(UTRAN)9130。每个RNC9105与一起被称为无线接入网络(RAN)的一个或多个蜂窝基站9110连接。Figure 91 conceptually illustrates an example communication system 9100 for connecting some participants of a video conference, according to some embodiments. As shown, a communication system 9100 includes a number of mobile devices 9115, a number of cellular base stations (or Node Bs) 9110, a number of radio network controllers (RNCs) 9105, and a core network 9125. The cellular base stations and RNCs are collectively known as the Universal Mobile Telecommunications System (UMTS) Terrestrial Radio Access Network (UTRAN) 9130 . Each RNC 9105 is connected to one or more cellular base stations 9110 collectively referred to as a Radio Access Network (RAN).
每个蜂窝基站9110覆盖一个服务区9120。如图所示,每个服务区中的移动设备9115通过Uu接口,与服务区9120的服务蜂窝基站9110无线连接。Uu接口使用具有两个平面的协议栈:控制平面和用户平面。用户平面支持电路交换、分组交换和广播数据流。控制平面携带网络的信令消息。Each cellular base station 9110 covers a service area 9120. As shown, the mobile devices 9115 in each service area are wirelessly connected to the serving cellular base station 9110 in the service area 9120 through the Uu interface. The Uu interface uses a protocol stack with two planes: a control plane and a user plane. The user plane supports circuit-switched, packet-switched, and broadcast data streams. The control plane carries the signaling messages of the network.
每个蜂窝基站通过Iub接口与RNC连接。每个RNC 9105通过Iu-cs和Iu-ps接口与核心网络9125连接。Iu-cs接口用于电路交换服务(例如,话音),而Iu-ps接口用于分组交换服务(例如,数据)。Iur接口用于把两个RNC连接在一起。Each cellular base station is connected with RNC through Iub interface. Each RNC 9105 is connected to the core network 9125 through Iu-cs and Iu-ps interfaces. The Iu-cs interface is used for circuit switched services (eg voice) and the Iu-ps interface is used for packet switched services (eg data). The Iur interface is used to connect two RNCs together.
因此,通信系统9100支持电路交换服务和分组交换服务。例如,电路交换服务允许通过经由通信系统9100的电路交换设备传送通话数据(例如,话音),进行通话。分组交换服务允许通过利用在网际协议层(比如IP)之上的传送协议层(比如UDP或TCP),经由通信系统9100的分组交换设备传送视频会议数据,进行视频会议。在一些实施例中,前面在视频会议设置章节中说明的通话-视频会议转变(例如,切换)利用诸如通信系统9100之类的通信系统支持的电路交换服务和分组交换服务。即,在这样的实施例中,通话是通过通信系统9100的电路交换设备进行的,视频会议是通过通信系统9100的分组交换设备进行的。Accordingly, communication system 9100 supports circuit-switched services and packet-switched services. For example, a circuit switched service allows a call to be made by transferring call data (eg, voice) through the circuit switched equipment of the communication system 9100 . The packet switching service allows video conferencing by transferring video conferencing data via the packet switching devices of the communication system 9100 using a transport protocol layer such as UDP or TCP on top of an internet protocol layer such as IP. In some embodiments, the call-to-video conference transition (eg, handoff) described above in the video conference setup section utilizes circuit switched services and packet switched services supported by a communication system such as communication system 9100 . That is, in such an embodiment, the call is conducted over the circuit switched equipment of the communication system 9100 and the video conference is conducted over the packet switched equipment of the communication system 9100 .
尽管图91中的示例通信系统举例说明第三代(3G)技术UTRAN无线移动通信系统,不过应注意在一些实施例中,第二代(2G)通信系统,其它3G通信系统,比如3GPP2演进数据优化或者进化-只是数据(EV-DO)和第三代合作伙伴计划2(3GPP2)码分多址接入1X(CDMA1X),第四代(4G)通信系统,无线局域网(WLAN),和微波存取全球互通(WiMAX)通信系统可被用于连接会议的一些参与者。2G系统的例子包括全球移动通信系统(GSM),通用分组无线服务(GPRS)和增强数据速率GSM演进(EDGE)。2G通信系统体系结构类似于图91中所示的体系结构,除了2G通信系统体系结构使用基站收发器(BTS)代替Node B 9110,和基站控制器(BSC)代替RNC 9105之外。在2G通信系统中,BSC和核心网络之间的A接口用于电路交换服务,以及BSC和核心网络之间的Gb接口用于分组交换服务。Although the exemplary communication system in FIG. 91 illustrates a third generation (3G) technology UTRAN wireless mobile communication system, it should be noted that in some embodiments, a second generation (2G) communication system, other 3G communication systems, such as 3GPP2 Evolution Data Optimize or Evolve - Just Data (EV-DO) and 3rd Generation Partnership Project 2 (3GPP2) Code Division Multiple Access 1X (CDMA1X), Fourth Generation (4G) Communication Systems, Wireless Local Area Network (WLAN), and Microwave The Worldwide Interoperability for Access (WiMAX) communication system may be used to connect some of the participants in the conference. Examples of 2G systems include Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS) and Enhanced Data Rates for GSM Evolution (EDGE). The 2G communication system architecture is similar to the architecture shown in Figure 91, except that the 2G communication system architecture uses a Base Transceiver (BTS) instead of Node B 9110, and a Base Station Controller (BSC) instead of RNC 9105. In a 2G communication system, the A interface between the BSC and the core network is used for circuit switched services, and the Gb interface between the BSC and the core network is used for packet switched services.
在一些实施例中,通信系统9100由最初供应移动设备9115以允许移动设备9115利用通信系统9100的服务运营商运行。一些实施例通过在移动设备9115中配置和登记用户识别模块(SIM),提供移动设备9115。在其它实施例中,改为利用移动设备9115的存储器配置和登记移动设备9115。此外,可以提供另外的服务(在客户购买移动设备9115之后),比如类似GPRS、多媒体消息接发服务(MMS)和即时通信的数据服务。一旦被供应,移动设备9115就被服务运营商激活,从而允许使用通信系统9100。In some embodiments, the communication system 9100 is operated by a service carrier that originally provisioned the mobile device 9115 to allow the mobile device 9115 to utilize the communication system 9100 . Some embodiments provide the mobile device 9115 by provisioning and registering a Subscriber Identity Module (SIM) in the mobile device 9115. In other embodiments, the mobile device 9115 is configured and registered using the memory of the mobile device 9115 instead. Additionally, additional services may be provided (after the customer purchases the mobile device 9115), such as data services like GPRS, Multimedia Messaging Service (MMS) and instant messaging. Once provisioned, the mobile device 9115 is activated by the service operator, allowing use of the communication system 9100.
在一些实施例中,通信系统9100是专用通信网络。在这样的实施例中,移动设备9115能够在相互之间(例如,为通信系统9100提供的移动设备9115)通信(例如,进行语音通话、交换数据)。在其它实施例中,通信系统9100是公共通信网络。从而,除了为通信系统9110提供的移动设备9115之外,移动设备9115还能够与在通信系统9100外的其它设备通信。在通信系统9100外的其它设备中的一些包括通过其它网络,比如公共交换电话网或另一种无线通信网络,与通信系统9100连接的电话机、计算机和其它设备。In some embodiments, communication system 9100 is a dedicated communication network. In such embodiments, the mobile devices 9115 are capable of communicating (eg, conducting voice calls, exchanging data) with each other (eg, the mobile devices 9115 provided for the communication system 9100 ). In other embodiments, the communication system 9100 is a public communication network. Thus, in addition to the mobile device 9115 provided for the communication system 9110 , the mobile device 9115 is also capable of communicating with other devices outside of the communication system 9100 . Some of the other devices external to the communication system 9100 include telephones, computers and other devices connected to the communication system 9100 through other networks, such as the public switched telephone network or another wireless communication network.
长期演进(LTE)规范用于定义4G通信系统。图92概念地图解说明在一些实施例中,用于连接视频会议的一些参与者的4G通信系统9200的例子。如图所示,通信系统9200包括若干移动设备9115、若干演进型Node B(eNB)9205、移动管理实体(MME)9215、服务网关(S-GW)9220、分组数据网络(PDN)网关9225、和归属用户服务器(HSS)9235。在一些实施例中,通信系统9200包括一个或多个MME 9215、一个或多个S-GW 9220、一个或多个PDN网关9225、和一个或多个HSS 9235。The Long Term Evolution (LTE) specification is used to define the 4G communication system. Figure 92 conceptually illustrates an example of a 4G communication system 9200 for connecting some participants of a video conference, in some embodiments. As shown, a communication system 9200 includes a number of mobile devices 9115, a number of evolved Node Bs (eNBs) 9205, a mobility management entity (MME) 9215, a serving gateway (S-GW) 9220, a packet data network (PDN) gateway 9225, and Home Subscriber Server (HSS) 9235. In some embodiments, the communication system 9200 includes one or more MMEs 9215, one or more S-GWs 9220, one or more PDN gateways 9225, and one or more HSSs 9235.
eNB 9205为移动设备9115提供空中接口。如图所示,每个eNB9205覆盖服务区9210。每个服务区9210中的移动设备设备9115通过LTE-Uu接口,与服务区9210的eNB 9205无线连接。图92还表示eNB 9205通过X2接口相互连接。另外,eNB 9205通过S1-MME接口与MME 9215连接,通过S1-U接口与S-GW 9220连接。eNB 9205集体被称为演进的UTRAN(E-TRAN)9230。The eNB 9205 provides the air interface for the mobile device 9115. Each eNB 9205 covers a service area 9210 as shown. The mobile device 9115 in each service area 9210 is wirelessly connected to the eNB 9205 in the service area 9210 through the LTE-Uu interface. Figure 92 also shows that the eNBs 9205 are connected to each other through the X2 interface. In addition, the eNB 9205 is connected to the MME 9215 through the S1-MME interface, and connected to the S-GW 9220 through the S1-U interface. The eNBs 9205 are collectively known as the Evolved UTRAN (E-TRAN) 9230.
eNB 9205提供各种功能,比如无线电资源管理(例如,无线承载控制、连接移动性控制等等),用户平面数据朝着S-GW 9220的路由,信号测量和测量报告,在移动设备连接时的MME选择,等等。MME9215的功能包括空闲模式移动设备跟踪和寻呼,无线承载的启用和停用,在移动设备连接时的S-GW 9220的选择,非接入层面(NAS)信令终止,通过与HSS 9235交互的用户鉴权,等等。The eNB 9205 provides various functions such as radio resource management (e.g. radio bearer control, connection mobility control, etc.), routing of user plane data towards the S-GW 9220, signal measurement and measurement reporting, MME selection, etc. The functions of the MME9215 include mobile device tracking and paging in idle mode, radio bearer activation and deactivation, selection of the S-GW 9220 when the mobile device is connected, non-access stratum (NAS) signaling termination, and interaction with the HSS 9235 user authentication, etc.
S-GW 9220的功能包括(1)路由和转发用户数据分组,和(2)管理和保存移动设备上下文,比如IP承载服务的参数和网络内部路由信息。PDN网关9225的功能包括通过成为移动设备的通信量的出口点和入口点,提供从移动设备到外部分组数据网络(未示出)的连通性。移动站可具有多于一个PDN网关的同时连通性,以便接入多个分组数据网络。PDN网关9225还充当3GPP和非3GPP技术,比如WiMAXt 3GPP2(例如,CDMA 1X和EV-DO)之间的移动性的锚点(anchor)。The functions of the S-GW 9220 include (1) routing and forwarding user data packets, and (2) managing and saving mobile device context, such as parameters of IP bearer services and network internal routing information. Functions of the PDN Gateway 9225 include providing connectivity from the mobile device to external packet data networks (not shown) by being the point of egress and point of entry for the mobile device's traffic. A mobile station may have simultaneous connectivity to more than one PDN gateway in order to access multiple packet data networks. The PDN Gateway 9225 also acts as an anchor for mobility between 3GPP and non-3GPP technologies, such as WiMAXt 3GPP2 (eg, CDMA 1X and EV-DO).
如图所示,MME 9215通过S11接口与S-GW 9220连接,通过S6a接口与HSS 9235连接。S-GW 9220和PDN网关9220通过S8接口连接。MME 9215、S-GW 9220和PDN网关9225集体被称为分组核心演进(EPC)。EPC是系统体系结构演进(SAE)体系结构的主要组件,系统体系结构演进(SAE)体系结构是3GPP LTE无线通信标准的核心网络体系结构。EPC是纯分组系统。例如,EPC不具有话音媒体网关。诸如话音和SMS之类的服务是分组交换路由的,并由利用EPC服务的应用功能提供。如此利用前面说明的通话-视频会议转变作为例子,在一些实施例中,通话和视频会议都是通过通信系统9200的分组交换设备进行的。在一些这样的实施例中,在通话结束之后,用于通话的分组交换通道继续被用于视频会议的音频数据。不过,在其它这种实施例中,创建不同的分组交换通道(例如,当建立视频会议时),通过新创建的分组交换通道而不是当通话结束时,利用通话的分组交换通道传送音频数据。As shown in the figure, MME 9215 is connected to S-GW 9220 through S11 interface, and connected to HSS 9235 through S6a interface. The S-GW 9220 and the PDN gateway 9220 are connected through the S8 interface. The MME 9215, S-GW 9220 and PDN Gateway 9225 are collectively referred to as the Evolved Packet Core (EPC). EPC is a major component of the System Architecture Evolution (SAE) architecture, which is the core network architecture of the 3GPP LTE wireless communication standard. EPC is a pure packet system. For example, an EPC does not have a voice media gateway. Services such as voice and SMS are packet-switched routed and provided by application functions utilizing EPC services. Using the previously described call-to-video conference transition as an example, in some embodiments, both the call and the video conference are conducted through the packet switching device of the communication system 9200 . In some of these embodiments, the packet-switched channel used for the call continues to be used for the audio data of the video conference after the call ends. However, in other such embodiments, a different packet-switched channel is created (eg, when a video conference is established) and audio data is transmitted over the newly created packet-switched channel rather than when the call ends using the packet-switched channel of the call.
此外,这些不同技术提供的带宽的数量从GPRS的44千比特/秒(kbps)到LTE的超过10兆比特/秒(Mbps)。未来对LTE来说,预计下载速率为100Mbps,上传速率为50Mbps。Furthermore, the amount of bandwidth provided by these different technologies ranges from 44 kilobits/second (kbps) for GPRS to over 10 megabits/second (Mbps) for LTE. For LTE in the future, the expected download rate is 100Mbps and the upload rate is 50Mbps.
尽管关于众多的具体细节说明了本发明,不过本领域的普通技术人员会认识到可用其它特定形式具体体现本发明,而不脱离本发明的精神。另外,众多的附图概念地图解说明了各种处理。可不按照所述表示和描述的严格顺序执行这些处理的具体操作。在连续的一系列操作中可不执行特定的操作,以及可在不同的实施例中执行不同的特定操作。此外,处理可利用几个子处理来实现,或者被实现成更大的宏处理的一部分。Although the invention has been described with respect to numerous specific details, those skilled in the art will recognize that the invention may be embodied in other specific forms without departing from the spirit of the invention. In addition, the numerous drawings conceptually illustrate various processes. The specific operations of these processes may not be performed in the exact order shown and described. No particular operation may be performed in a continuous series of operations, and particular operations may be performed differently in different embodiments. Furthermore, a process can be implemented with several sub-processes, or as part of a larger macro-process.
另外,上面关于双照相机移动设备之间的视频会议说明了许多实施例。不过,本领域的普通技术人员会认识到在这些实施例中的许多实施例可用在涉及双照相机移动设备和另一个设备,比如单照相机移动设备、计算机、具有视频会议能力的电话机等之间的视频会议的情况中。此外,在单照相机移动设备和具有视频会议能力的其它计算设备中,可以使用上面说明的许多实施例。从而,本领域的普通技术人员理解本发明不受上面的示例细节限制,而是由附加的权利要求限定。Additionally, many of the embodiments are described above with respect to video conferencing between dual camera mobile devices. However, one of ordinary skill in the art will recognize that many of these embodiments can be used between a dual camera mobile device and another device, such as a single camera mobile device, computer, phone with videoconferencing capabilities, etc. in the case of video conferencing. Additionally, many of the embodiments described above can be used in single camera mobile devices and other computing devices with videoconferencing capabilities. Accordingly, those of ordinary skill in the art understand that the present invention is not limited to the details of the above examples, but is only defined by the appended claims.
Claims (36)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201410575145.4A CN104270597B (en) | 2010-04-07 | 2010-09-25 | Video conference is established during call |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US32187110P | 2010-04-07 | 2010-04-07 | |
| US61/321,871 | 2010-04-07 | ||
| US12/794,766 | 2010-06-06 | ||
| US12/794,766 US8744420B2 (en) | 2010-04-07 | 2010-06-06 | Establishing a video conference during a phone call |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201410575145.4A Division CN104270597B (en) | 2010-04-07 | 2010-09-25 | Video conference is established during call |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN102215217A CN102215217A (en) | 2011-10-12 |
| CN102215217B true CN102215217B (en) | 2014-09-17 |
Family
ID=44746350
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201010600623.4A Active CN102215217B (en) | 2010-04-07 | 2010-09-25 | Create a video conference during a call |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN102215217B (en) |
Families Citing this family (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8502856B2 (en) | 2010-04-07 | 2013-08-06 | Apple Inc. | In conference display adjustments |
| CN108089643B (en) * | 2012-02-17 | 2022-01-21 | 索尼移动通信株式会社 | Electronic device and method for enhancing interaction with electronic device |
| US9485461B2 (en) * | 2012-03-19 | 2016-11-01 | Sony Corporation | Video conferencing using wireless peripheral video conferencing device |
| US8903768B2 (en) * | 2012-11-04 | 2014-12-02 | International Business Machines Corporation | Method and system for synchronization and management of system activities with locally installed applications |
| US8953079B2 (en) * | 2012-12-31 | 2015-02-10 | Texas Instruments Incorporated | System and method for generating 360 degree video recording using MVC |
| KR102032541B1 (en) * | 2013-02-26 | 2019-11-08 | 삼성전자주식회사 | Apparatus and method for processing a image in device |
| KR20140114501A (en) * | 2013-03-14 | 2014-09-29 | 삼성전자주식회사 | Image Data Processing Method And Electronic Device supporting the same |
| US9232177B2 (en) * | 2013-07-12 | 2016-01-05 | Intel Corporation | Video chat data processing |
| CN103701849A (en) * | 2013-11-20 | 2014-04-02 | 卓易畅游(北京)科技有限公司 | Method and equipment for operating mobile equipment through user equipment |
| CN103686063B (en) * | 2013-12-27 | 2018-02-02 | 上海斐讯数据通信技术有限公司 | Multi-party video calls method and the mobile phone and server for supporting multi-party video calls |
| WO2015130508A2 (en) * | 2014-02-28 | 2015-09-03 | Dolby Laboratories Licensing Corporation | Perceptually continuous mixing in a teleconference |
| US9369668B2 (en) * | 2014-03-14 | 2016-06-14 | Cisco Technology, Inc. | Elementary video bitstream analysis |
| US10284813B2 (en) * | 2014-03-17 | 2019-05-07 | Microsoft Technology Licensing, Llc | Automatic camera selection |
| CN104994314B (en) * | 2015-08-10 | 2019-04-09 | 优酷网络技术(北京)有限公司 | Pass through the method and system of gesture control PIP video on mobile terminals |
| US10243691B2 (en) * | 2016-09-06 | 2019-03-26 | Mediatek Singapore Pte. Ltd. | Apparatuses and methods for avoiding video artifacts introduced by a handover or out-of-service (OOS) condition during a video call |
| US10372298B2 (en) * | 2017-09-29 | 2019-08-06 | Apple Inc. | User interface for multi-user communication session |
| US9992241B1 (en) * | 2017-10-18 | 2018-06-05 | Moxtra, Inc. | Unified communications for online collaboration |
| DK201870364A1 (en) | 2018-05-07 | 2019-12-03 | Apple Inc. | MULTI-PARTICIPANT LIVE COMMUNICATION USER INTERFACE |
| US11128792B2 (en) | 2018-09-28 | 2021-09-21 | Apple Inc. | Capturing and displaying images with multiple focal planes |
| CN110266991B (en) * | 2019-06-24 | 2022-09-23 | 江西盈盛实业有限公司 | Video call method, mobile terminal and computer readable storage medium |
| US12132868B2 (en) * | 2019-12-13 | 2024-10-29 | Sony Group Corporation | Telepresence system |
| US11079913B1 (en) | 2020-05-11 | 2021-08-03 | Apple Inc. | User interface for status indicators |
| CN111627089B (en) * | 2020-07-30 | 2020-11-13 | 深圳诚一信科技有限公司 | User head portrait picture processing method, device and system and readable storage medium |
| US12301979B2 (en) | 2021-01-31 | 2025-05-13 | Apple Inc. | User interfaces for wide angle video conference |
| US12170579B2 (en) | 2021-03-05 | 2024-12-17 | Apple Inc. | User interfaces for multi-participant live communication |
| US11907605B2 (en) | 2021-05-15 | 2024-02-20 | Apple Inc. | Shared-content session user interfaces |
| US11893214B2 (en) | 2021-05-15 | 2024-02-06 | Apple Inc. | Real-time communication user interface |
| CN120881039A (en) | 2021-05-15 | 2025-10-31 | 苹果公司 | Real-time communication user interface |
| US11822761B2 (en) | 2021-05-15 | 2023-11-21 | Apple Inc. | Shared-content session user interfaces |
| US12449961B2 (en) | 2021-05-18 | 2025-10-21 | Apple Inc. | Adaptive video conference user interfaces |
| US12368946B2 (en) | 2021-09-24 | 2025-07-22 | Apple Inc. | Wide angle video conference |
| US12267622B2 (en) | 2021-09-24 | 2025-04-01 | Apple Inc. | Wide angle video conference |
| US11770600B2 (en) | 2021-09-24 | 2023-09-26 | Apple Inc. | Wide angle video conference |
| CN114339371A (en) * | 2021-12-30 | 2022-04-12 | 咪咕音乐有限公司 | Video display method, device, device and storage medium |
| CN116233353A (en) * | 2023-05-08 | 2023-06-06 | 北京航天星桥科技股份有限公司 | Remote video conference communication method and system |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1801926A (en) * | 2000-11-01 | 2006-07-12 | 奥林奇私人通讯服务有限公司 | Mixed-media telecommunication call set-up |
| US20070115349A1 (en) * | 2005-11-03 | 2007-05-24 | Currivan Bruce J | Method and system of tracking and stabilizing an image transmitted using video telephony |
-
2010
- 2010-09-25 CN CN201010600623.4A patent/CN102215217B/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1801926A (en) * | 2000-11-01 | 2006-07-12 | 奥林奇私人通讯服务有限公司 | Mixed-media telecommunication call set-up |
| US20070115349A1 (en) * | 2005-11-03 | 2007-05-24 | Currivan Bruce J | Method and system of tracking and stabilizing an image transmitted using video telephony |
Also Published As
| Publication number | Publication date |
|---|---|
| CN102215217A (en) | 2011-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12302035B2 (en) | Establishing a video conference during a phone call | |
| CN102215217B (en) | Create a video conference during a call | |
| AU2015201127B2 (en) | Establishing a video conference during a phone call |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant |