KR102189345B1 - 전화 통화 중의 화상 회의 설정 - Google Patents

전화 통화 중의 화상 회의 설정 Download PDF

Info

Publication number
KR102189345B1
KR102189345B1 KR1020207002845A KR20207002845A KR102189345B1 KR 102189345 B1 KR102189345 B1 KR 102189345B1 KR 1020207002845 A KR1020207002845 A KR 1020207002845A KR 20207002845 A KR20207002845 A KR 20207002845A KR 102189345 B1 KR102189345 B1 KR 102189345B1
Authority
KR
South Korea
Prior art keywords
video
camera
display
image
display area
Prior art date
Application number
KR1020207002845A
Other languages
English (en)
Other versions
KR20200013268A (ko
Inventor
엘리자베스 씨. 크란필
스티븐 오. 르메이
조 에스. 아부안
흐시-정 우
시아오송 조우
로베르토 가르시아 쥬니어.
현국 정
하이타오 구오
더글라스 에스. 프라이스
다즈홍 장
버켓 에스. 텅
제임스 오. 노밀
얀 양
데이비드 에이. 엘드레드
앤드류 야노위츠
팅 첸
데이비드 디. 쿠오
Original Assignee
애플 인크.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority to US32187110P priority Critical
Priority to US61/321,871 priority
Priority to US12/794,766 priority patent/US8744420B2/en
Priority to US12/794,771 priority patent/US8941706B2/en
Priority to US12/794,774 priority patent/US9264659B2/en
Priority to US12/794,771 priority
Priority to US12/794,768 priority
Priority to US12/794,775 priority
Priority to US12/794,768 priority patent/US8502856B2/en
Priority to US12/794,772 priority patent/US8874090B2/en
Priority to US12/794,772 priority
Priority to US12/794,775 priority patent/US8451994B2/en
Priority to US12/794,774 priority
Priority to US12/794,766 priority
Priority to US12/794,773 priority
Priority to US12/794,773 priority patent/US8917632B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Priority to PCT/US2010/050311 priority patent/WO2011126511A1/en
Publication of KR20200013268A publication Critical patent/KR20200013268A/ko
Application granted granted Critical
Publication of KR102189345B1 publication Critical patent/KR102189345B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance interaction techniques based on cursor appearance or behaviour being affected by the presence of displayed objects, e.g. visual feedback during interaction with elements of a graphical user interface through change in cursor appearance, constraint movement or attraction/repulsion with respect to a displayed object
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object or an image, setting a parameter value or selecting a range
    • G06F3/04842Selection of a displayed object
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object or an image, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the screen or tablet into independently controllable areas, e.g. virtual keyboards, menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72469User interfaces specially adapted for cordless or mobile telephones for operating the device by selecting functions from two or more displayed items, e.g. menus or icons
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment ; Cameras comprising an electronic image sensor, e.g. digital cameras, video cameras, TV cameras, video cameras, camcorders, webcams, camera modules for embedding in other devices, e.g. mobile phones, computers or vehicles
    • H04N5/225Television cameras ; Cameras comprising an electronic image sensor, e.g. digital cameras, video cameras, camcorders, webcams, camera modules specially adapted for being embedded in other devices, e.g. mobile phones, computers or vehicles
    • H04N5/2258Cameras using two or more image sensors, e.g. a CMOS sensor for video and a CCD for still image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment ; Cameras comprising an electronic image sensor, e.g. digital cameras, video cameras, TV cameras, video cameras, camcorders, webcams, camera modules for embedding in other devices, e.g. mobile phones, computers or vehicles
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/2624Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects for obtaining an image which is composed of whole input images, e.g. splitscreen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment ; Cameras comprising an electronic image sensor, e.g. digital cameras, video cameras, TV cameras, video cameras, camcorders, webcams, camera modules for embedding in other devices, e.g. mobile phones, computers or vehicles
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/142Constructional details of the terminal equipment, e.g. arrangements of the camera and the display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/141Systems for two-way working between two video terminals, e.g. videophone
    • H04N7/147Communication arrangements, e.g. identifying the communication as a video-communication, intermediate storage of the signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/14Systems for two-way working
    • H04N7/15Conference systems

Abstract

일부 실시예는 제1 모바일 장치를 사용하여 화상 회의를 개시하는 방법을 제공한다. 이 방법은 제2 장치와의 무선 통신 네트워크를 통한 음성 통화(audio call) 동안, 음성 통화로부터 화상 회의로 전환하기 위한 선택가능한 사용자 인터페이스(UI) 항목을 제1 모바일 장치 상에 제시한다. 이 방법은 선택가능한 UI 항목의 선택을 수신한다. 이 방법은 음성 통화를 종료시키지 않고 화상 회의를 개시한다. 이 방법은 제1 및 제2 장치가 화상 회의를 통해 교환되는 오디오 및 비디오 데이터를 제시할 수 있게 해 주기 전에, 음성 통화를 종료시킨다.

Description

전화 통화 중의 화상 회의 설정{ESTABLISHING A VIDEO CONFERENCE DURING A PHONE CALL}
본 출원은 전화 통화 중 화상 회의를 설정하는 기술에 관한 것이다.
스마트폰 등의 오늘날의 휴대용 장치 중 다수는 비디오 캡처 기능을 제공한다. 휴대용 장치의 사용자는 전화기 상의 카메라를 통해 정지 영상 및 비디오 둘 다를 캡처할 수 있다. 그렇지만, 캡처된 비디오를 다른 당사자에게 전송하기 위해, 사용자는 일반적으로 비디오의 캡처가 완료된 후에 비디오를 상대방 당사자에게 직접 송신하거나 비디오를 다른 장소(예컨대, 인터넷 비디오 호스팅 사이트)에 업로드해야 한다. 안타깝게도, 이것은 상대방 당사자가 라이브 비디오 스트림을 그것이 휴대용 장치에 의해 캡처되는 대로 볼 수 있게 해 주지 못한다.
그에 부가하여, 표준의 휴대용 장치는 하나의 카메라만을 갖추고 있고, 이 하나의 카메라로부터의 정보를 처리하는 것이 충분히 어렵다. 이상적인 장치는 다수의 카메라를 가질 것이며, 적어도 2개의 카메라로부터의 비디오의 합성인 라이브 비디오를 송출할 수 있을 것이다. 이것은, 장치가 다수의 캡처된 비디오 스트림을 처리하는 것 및 장치가 연결되어 있는 네트워크가 라이브 비디오 스트림의 전송을 처리하는 것 둘 다와 관련하여, 휴대용 장치에서 이용가능한 제한된 자원을 고려할 때 특히 어려운 문제이다.
본 출원은 전화 통화 중 화상 회의를 설정하는 기술을 제공하는 것을 그 일 목적으로 한다.
본 발명의 일부 실시예는 사진과 비디오를 촬영할 수 있는 2개의 카메라를 갖는 모바일 장치를 제공한다. 일부 실시예의 모바일 장치는 캡처된 사진 영상과 비디오 영상을 디스플레이하는 디스플레이 화면을 가진다. 이 장치는 또한 나중에 다른 장치에게 전송하기 위해 캡처된 영상을 저장하는 저장 장치를 포함한다. 이 장치는 장치가, 하나 이상의 장치의 사용자들 간의 실시간 통신 세션 동안, 캡처된 영상을 하나 이상의 장치에게 전송할 수 있게 해 주는 네트워크 인터페이스를 더 가진다. 이 장치는 또한 로컬 저장을 위해 또는 다른 장치에게 전송하기 위해 캡처된 영상을 인코딩하는 데 사용할 수 있는 인코더를 포함한다. 모바일 장치는 장치가 실시간 통신 세션 동안 다른 장치에 의해 캡처된 영상을 디코딩하거나 로컬로 저장된 영상을 디코딩할 수 있게 해 주는 디코더를 더 포함한다.
캡처된 비디오 영상의 전송을 수반하는 실시간 통신 세션의 예는 화상 회의이다. 일부 실시예에서, 모바일 장치는 화상 회의 동안 임의의 주어진 때에 하나의 카메라의 캡처된 비디오 영상만을 전송할 수 있다. 그렇지만, 다른 실시예에서, 모바일 장치는 화상 회의 또는 다른 실시간 통신 세션 동안 동시에 그것의 카메라 둘 다로부터 캡처된 비디오 영상을 전송할 수 있다.
다른 장치와의 화상 회의 동안, 일부 실시예의 모바일 장치는 그것의 카메라들 중 하나 또는 둘 다에 의해 캡처된 비디오와 함께, 다른 유형의 콘텐츠를 전송할 수 있다. 이러한 다른 콘텐츠의 일례는, 장치의 다른쪽 카메라가 화상 회의에서 사용되는 비디오를 캡처하고 있는 동안, 장치의 카메라들 중 한쪽 카메라에 의해 캡처되는 저해상도 또는 고해상도 사진 영상을 포함한다. 이러한 다른 콘텐츠의 다른 예는 (1) 장치에 저장되어 있는 파일 및 다른 콘텐츠, (2) 장치의 화면 디스플레이(즉, 장치의 화면 상에 디스플레이되는 콘텐츠), (3) 화상 회의 또는 다른 실시간 통신 세션 동안 다른 장치로부터 수신되는 콘텐츠 등을 포함한다.
일부 실시예의 모바일 장치는 화상 회의 동안 조절을 하는 새로운 회의중 조절 기술을 이용한다. 예를 들어, 화상 회의 동안 한쪽 카메라의 캡처된 비디오만을 전송하는 동안, 일부 실시예의 모바일 장치는 그것의 다른쪽 카메라에 의해 캡처되는 비디오를 전송하는 것으로 동적으로 전환할 수 있다. 이러한 상황에서, 일부 실시예의 모바일 장치는 화상 회의에 참여하고 있는 임의의 다른 장치에 이 전환을 통지함으로써, 이 다른 장치가 2개의 카메라에 의해 캡처되는 비디오들 간의 원할한 천이를 그 다른 장치 측에서 제공할 수 있도록 한다.
일부 실시예에서, 카메라를 전환하라는 요청은 화상 회의 동안 그것의 카메라들 간에 전환하는 "로컬" 장치에서 발원될 수 있을 뿐만 아니라, 로컬 장치에 의해 캡처된 비디오를 수신하고 있는 다른 "원격" 장치로부터도 발원될 수 있다. 게다가, 하나의 장치가 다른 장치에게 카메라를 전환하라고 지시할 수 있게 해 주는 것은 일부 실시예의 장치의 원격 제어 기능의 일례에 불과하다. 일부 실시예에서 원격으로 장치에 지시될 수 있는 다른 동작들의 예는 노출 조절 동작(예컨대, 자동 노출), 초점 조절 동작(자동 초점) 등을 포함한다. 로컬로 또는 원격으로 지정될 수 있는 새로운 회의중 조절의 다른 예는 캡처된 비디오에서의 관심 영역(region of interest, ROI)을 식별하는 것, 및 캡처하는 카메라의 거동을 수정하기 위해, 캡처하는 카메라를 구비하는 장치의 영상 처리 동작을 수정하기 위해, 또는 캡처하는 카메라를 구비하는 장치의 인코딩 동작을 수정하기 위해 이 ROI 식별을 사용하는 것이다.
일부 실시예의 새로운 회의중 조절의 또 다른 예는 장치들에 의해 발생되는 합성 비디오 디스플레이의 실시간 수정을 포함한다. 구체적으로는, 일부 실시예에서, 모바일 장치는 하나 이상의 장치의 다수의 카메라에 의해 캡처된 다수의 비디오를 동시에 디스플레이하는 합성 디스플레이를 생성한다. 일부 경우들에서, 합성 디스플레이는 비디오들을 인접한 디스플레이 영역에(예컨대, 인접한 창에) 위치시킨다. 다른 경우에, 합성 디스플레이는 2개의 상이한 비디오를 보여주는 적어도 2개의 디스플레이 영역을 포함하는 픽처-인-픽처(PIP) 디스플레이이며, 이 경우 디스플레이 영역들 중 하나의 디스플레이 영역은 배경 메인 디스플레이 영역(background main display area)이고, 다른 디스플레이 영역은 배경 메인 디스플레이 영역에 겹쳐지는 전경 삽입 디스플레이 영역(foreground inset display area)이다.
일부 실시예에서, 합성 비디오 디스플레이의 실시간 수정은, 디스플레이 영역의 사용자 선택 및 이동에 응답하여, 합성 디스플레이 내에서 디스플레이 영역들 중 하나 이상의 디스플레이 영역을 이동시키는 것을 포함한다. 일부 실시예는 또한 화상 회의 동안, 합성 디스플레이를 제공하는 장치의 화면이 회전할 때, 그 합성 디스플레이를 회전시킨다. 또한, 일부 실시예의 모바일 장치는 장치의 사용자가 PIP 디스플레이에서 비디오를 바꿀(swap) 수 있게 해 준다(즉, 전경 삽입 디스플레이에서의 비디오가 배경 메인 디스플레이에 나오게 하면서 배경 메인 디스플레이에서의 비디오가 전경 삽입 디스플레이에 나오게 할 수 있게 해 준다).
이상의 요약은 본 발명의 일부 실시예에 대한 간략한 소개로서 역할하기 위한 것이다. 이 요약이 본 문서에 개시되어 있는 모든 발명 요지의 소개 또는 개요인 것으로 보아서는 안된다. 이하의 상세한 설명 및 상세한 설명에서 참조되는 도면은 또한 요약에 기술되어 있는 실시예는 물론 다른 실시예에 대해서도 추가적으로 기술할 것이다. 그에 따라, 본 문서에 기술된 모든 실시예를 이해하기 위해서는, 요약, 상세한 설명 및 도면을 완전히 검토하는 것이 필요하다.
본 출원은 전화 통화 중 화상 회의를 설정하는 기술을 제공하는 것을 그 일 효과로 한다.
본 발명의 새로운 특징이 첨부된 특허청구범위에 기술되어 있다. 그렇지만, 설명을 위해, 본 발명의 몇가지 실시예가 이하의 도면에 기술되어 있다.
도 1은 일부 실시예의 합성 디스플레이를 나타낸 도면.
도 2는 일부 실시예의 다른 합성 디스플레이를 나타낸 도면.
도 3은 일부 실시예의 듀얼 카메라 모바일 장치의 비디오 처리 및 인코딩 모듈에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 4는 일부 실시예의 캡처된 영상 처리 유닛을 개념적으로 나타낸 도면.
도 5는 상이한 수직 블랭킹 구간(VBI)들에 기초한 상이한 프레임 레이트의 예들을 개념적으로 나타낸 도면.
도 6은 상이한 VBI들에 기초한 상이한 인터리빙 프레임 레이트의 예들의 개념적으로 나타낸 도면.
도 7은 일부 실시예의 다른 캡처된 영상 처리 유닛을 개념적으로 나타낸 도면.
도 8은 일부 실시예의 다른 캡처된 영상 처리 유닛을 개념적으로 나타낸 도면.
도 9는 일부 실시예의 듀얼 카메라 모바일 장치의 화상 회의 및 처리 모듈에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 10은 일부 실시예의 예시적인 화상 회의 요청 메시징 시퀀스를 개념적으로 나타낸 도면.
도 11은 화상 회의 설정 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 12는 화상 회의에의 초대를 수락하는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 13은 화상 회의에의 초대를 수락하는 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 14는 화상 회의 설정 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 15는 화상 회의에 대한 비트 레이트를 설정하는 일부 실시예의 프로세스를 개념적으로 나타낸 도면.
도 16은 일부 실시예의 듀얼 카메라 모바일 장치의 화상 회의 및 처리 모듈에 대한 다른 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 17은 일부 실시예의 듀얼 카메라 모바일 장치에 대한 다른 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 18은 도 16에 예시된 것과 같은 일부 실시예의 화상 회의 관리자에 의해 수행되는 프로세스를 개념적으로 나타낸 도면.
도 19는 일부 실시예의 시간 잡음 감소 모듈에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 20은 비디오의 영상의 시간 잡음을 감소시키는 일부 실시예의 프로세스를 개념적으로 나타낸 도면.
도 21은 도 9에 예시된 것과 같은 일부 실시예의 영상 처리 관리자에 의해 수행되는 프로세스를 개념적으로 나타낸 도면.
도 22는 노출 조절 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 23은 초점 조절 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 24는 도 16에 예시된 것과 같은 일부 실시예의 영상 처리 관리자에 의해 수행되는 원근 보정(perspective correction) 프로세스를 개념적으로 나타낸 도면.
도 25는 일부 실시예의 예시적인 원근 보정 동작을 개념적으로 나타낸 도면.
도 26은 도 16에 예시된 것과 같은 일부 실시예의 인코더 드라이버(encoder driver)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 27은 도 26에 예시된 것과 같은 일부 실시예의 인코더 드라이버에 의해 수행되는 영상 크기 조정 프로세스를 개념적으로 나타낸 도면.
도 28은 도 16에 예시된 것과 같은 일부 실시예의 디코더 드라이버(decoder driver)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 29는 도 28에 예시된 것과 같은 일부 실시예의 디코더 드라이버에 의해 수행되는 영상 추출 프로세스를 개념적으로 나타낸 도면.
도 30은 2개의 레이트 제어기를 포함하는 일부 실시예의 인코더 드라이버를 나타낸 도면.
도 31은 도 16에 예시된 것과 같은 일부 실시예의 네트워킹 관리자에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 32는 코너로 스냅(snap-to-corner) 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 33은 코너로 스냅 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 34는 PIP 디스플레이 회전 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 35는 PIP 디스플레이 회전 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 36은 PIP 디스플레이 회전 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 37은 PIP 디스플레이 회전 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 38은 PIP 디스플레이에서의 전경 삽입 디스플레이 영역을 크기 조정하는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 39는 PIP 디스플레이에서의 삽입 디스플레이 영역을 크기 조정하는 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 40은 PIP 디스플레이에서의 삽입 디스플레이 영역을 크기 조정하는 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 41은 PIP 디스플레이에서의 삽입 디스플레이 영역을 크기 조정하는 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 42는 디스플레이에서 관심 영역을 식별하는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 43은 디스플레이에서 관심 영역을 식별하는 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 44는 디스플레이에서 관심 영역을 식별하는 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 45는 듀얼 카메라 모바일 장치에서 로컬 카메라 전환(local switch camera) 동작을 수행하는 일부 실시예의 프로세스를 나타낸 도면.
도 46은 카메라 전환 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 47은 카메라 전환 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 48은 카메라 전환 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 49는 카메라 전환 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 50은 듀얼 카메라 모바일 장치에서 원격 카메라 전환(remote switch camera) 동작을 수행하는 일부 실시예의 프로세스를 나타낸 도면.
도 51은 원격 제어 카메라 전환 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 52는 원격 제어 카메라 전환 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 53은 원격 제어 카메라 전환 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 54는 원격 제어 카메라 전환 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 55는 노출 조절 동작을 수행하는 일부 실시예의 프로세스를 개념적으로 나타낸 도면.
도 56은 노출 조절 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 57은 노출 조절 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 58은 노출 조절 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 59는 도 16에 예시된 것과 같은 일부 실시예의 영상 처리 관리자에 의해 수행되는 노출 조절 프로세스를 개념적으로 나타낸 도면.
도 60은 일부 실시예의 노출 조절 동작을 개념적으로 나타낸 도면.
도 61은 초점 조절 동작을 수행하는 일부 실시예의 프로세스를 개념적으로 나타낸 도면.
도 62는 초점 조절 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 63은 초점 조절 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 64는 초점 조절 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 65는 하나 이상의 듀얼 카메라 모바일 장치로부터 캡처된 비디오에 대한 일부 실시예의 상이한 디스플레이 배열을 나타낸 도면.
도 66은 PIP 디스플레이에서 삽입 비디오의 전경을 배경 비디오에 중첩시키는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 67은 비디오 영상의 전경을 결정하는 일부 실시예의 기법을 나타낸 도면.
도 68은 PIP 디스플레이에서 화상 회의 동안 삽입 디스플레이와 배경 디스플레이를 바꾸는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 69는 코너로 스냅 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 70은 코너로 스냅 및 푸시(snap-to-corner and push) 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 71은 PIP 디스플레이 회전 동작에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 72는 PIP 디스플레이 회전 동작에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 73은 화상 회의 동안 2개의 원격 비디오 중에서 하나의 비디오를 선택하는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 74는 화상 회의 동안 2개의 로컬 비디오 중에서 하나의 비디오를 선택하는 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 75는 화상 회의에 사용할 비디오의 회의전 선택(pre-conference selection)에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 76은 일부 실시예의 듀얼 카메라 모바일 장치에 의해 캡처되는 2개의 비디오 사이의 대역폭 할당의 예를 나타낸 도면.
도 77은 듀얼 카메라 모바일 장치의 레이트 제어기를 관리하는 일부 실시예의 중재자 모듈을 개념적으로 나타낸 도면.
도 78은 듀얼 카메라 모바일 장치의 카메라에 의해 캡처되는 영상을 인코딩하는 일부 실시예의 방법을 개념적으로 나타낸 도면.
도 79는 듀얼 카메라 모바일 장치의 카메라에 의해 캡처되는 영상을 인코딩하는 일부 실시예의 다른 방법을 개념적으로 나타낸 도면.
도 80은 도 79에 예시된 방법에 대한 예시적인 영상 합성을 나타낸 도면.
도 81은 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처되는 영상을 인코딩하는 일부 실시예의 다른 방법을 개념적으로 나타낸 도면.
도 82는 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처되는 영상을 디코딩하는 일부 실시예의 방법을 개념적으로 나타낸 도면.
도 83은 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처되는 영상을 디코딩하는 일부 실시예의 다른 방법을 개념적으로 나타낸 도면.
도 84는 일부 실시예의 듀얼 카메라 모바일 장치의 화상 회의 및 처리 모듈에 대한 다른 소프트웨어 아키텍처를 개념적으로 나타낸 도면.
도 85는 다중-참가자 화상 회의에 대한 일부 실시예의 사용자 인터페이스를 나타낸 도면.
도 86은 다중-참가자 화상 회의에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 87은 다중-참가자 화상 회의에 대한 일부 실시예의 다른 사용자 인터페이스를 나타낸 도면.
도 88은 일부 실시예의 응용 프로그램 프로그래밍 인터페이스(API) 아키텍처를 개념적으로 나타낸 도면.
도 89는 일부 실시예의 듀얼 카메라 모바일 컴퓨팅 장치에 대한 아키텍처를 나타낸 도면.
도 90은 일부 실시예의 터치 입/출력(I/O) 장치를 개념적으로 나타낸 도면.
도 91은 일부 실시예의 예시적인 통신 시스템을 개념적으로 나타낸 도면.
도 92는 일부 실시예의 다른 예시적인 통신 시스템을 개념적으로 나타낸 도면.
이하의 기재 내용에, 설명을 위해 많은 상세가 기술되어 있다. 그렇지만, 당업자라면 본 발명이 이들 구체적인 상세를 사용하지 않고도 실시될 수 있다는 것을 잘 알 것이다. 다른 경우에, 본 발명의 설명을 불필요한 상세로 불명료하게 하지 않기 위해, 공지의 구조 및 장치는 블록도 형태로 도시되어 있다.
본 발명의 일부 실시예는 사진과 비디오를 촬영할 수 있는 2개의 카메라를 갖는 모바일 장치를 제공한다. 모바일 장치의 예는 휴대폰, 스마트폰, PDA(personal digital assistant), 랩톱, 태블릿 개인 컴퓨터, 또는 임의의 다른 유형의 모바일 컴퓨팅 장치를 포함한다. 본 문서에서 사용되는 바와 같이, 사진은 단일-사진 모드에서 한 번에 하나씩 또는 고속-동작 모드에서 한 번에 몇개씩 카메라로 촬영된 정지 사진 영상을 말한다. 한편, 비디오는 카메라에 의해 특정의 레이트(종종 프레임 레이트라고 함)로 캡처되는 비디오 영상의 시퀀스를 말한다. 비디오를 캡처하는 전형적인 프레임 레이트는 25 프레임/초(fps), 30 fps, 및 60 fps이다. 일부 실시예의 모바일 장치의 카메라는 이들 및 기타 프레임 레이트로 비디오 영상(즉, 비디오 프레임)을 캡처할 수 있다.
일부 실시예의 모바일 장치는 (1) 캡처된 사진 영상 및 비디오 영상을 디스플레이할 수 있고, (2) 나중에 다른 장치에게 전송하기 위해 캡처된 영상을 저장할 수 있으며, (3) 하나 이상의 장치의 사용자들 사이의 실시간 통신 세션 동안 캡처된 영상을 그 장치들에게 전송할 수 있고, (4) 로컬 저장을 위해 또는 다른 장치에게 전송하기 위해 캡처된 영상을 인코딩할 수 있다.
캡처된 비디오 영상의 전송을 수반하는 실시간 통신 세션의 일례는 화상 회의이다. 일부 실시예에서, 모바일 장치는 화상 회의 동안의 임의의 주어진 때에 하나의 카메라의 캡처된 비디오 영상만을 전송할 수 있다. 그렇지만, 다른 실시예에서, 모바일 장치는 화상 회의 또는 다른 실시간 통신 세션 동안 그것의 카메라 둘 다로부터의 캡처된 비디오 영상을 동시에 전송할 수 있다.
일부 실시예의 모바일 장치는 하나 이상의 장치의 다수의 카메라에 의해 캡처된 다수의 비디오의 동시 디스플레이를 포함하는 합성 디스플레이를 생성한다. 일부 경우에, 합성 디스플레이는 비디오들을 인접한 디스플레이 영역들에(예컨대, 인접한 창들에) 위치시킨다. 도 1은 하나의 장치의 2개의 카메라에 의해 캡처된, 또는 화상 회의 중인 2개의 상이한 장치의 2개의 카메라에 의해 캡처된 2개의 비디오를 동시에 디스플레이하는 2개의 인접한 디스플레이 영역(105, 110)을 포함하는 합성 디스플레이(100)의 하나의 이러한 예를 나타낸 것이다.
다른 경우에, 합성 디스플레이는 2개의 상이한 비디오를 보여주는 적어도 2개의 디스플레이 영역을 포함하는 PIP 디스플레이이며, 이 경우 디스플레이 영역들 중 하나의 디스플레이 영역은 배경 메인 디스플레이 영역이고, 다른 디스플레이 영역은 배경 메인 디스플레이 영역에 겹쳐지는 전경 삽입 디스플레이 영역이다. 도 2는 합성 PIP 디스플레이(200)의 하나의 이러한 예를 나타낸 것이다. 이 합성 PIP 디스플레이(200)는 배경 메인 디스플레이 영역(205) 및 배경 메인 디스플레이 영역과 겹치는 전경 삽입 디스플레이 영역(210)을 포함한다. 2개의 디스플레이 영역(205, 210)은 하나의 장치의 2개의 카메라에 의해 캡처된, 또는 화상 회의 중인 2개의 상이한 장치의 2개의 카메라에 의해 캡처된 2개의 비디오를 동시에 디스플레이한다. 본 문서에 예시되고 논의된 예시적인 합성 PIP 디스플레이는 배경 메인 디스플레이 영역(205) 내에 전경 삽입 디스플레이 영역(210) 전체를 보여주는 합성 PIP 디스플레이(200)와 유사하지만, 배경 메인 디스플레이 영역(205) 내에 완전히 들어 있지 않고 그와 겹치는 전경 삽입 디스플레이 영역(210)을 갖는 다른 합성 PIP 디스플레이가 가능하다.
다른 장치와의 화상 회의 동안 비디오 콘텐츠를 전송하는 것에 부가하여, 일부 실시예의 모바일 장치는 회의의 비디오 콘텐츠와 함께 다른 유형의 콘텐츠를 전송할 수 있다. 이러한 다른 콘텐츠의 일례는, 장치의 카메라들 중 다른쪽 카메라가 화상 회의에서 사용되는 비디오를 캡처하고 있는 동안, 장치의 한쪽 카메라에 의해 캡처되는 저해상도 또는 고해상도 사진 영상을 포함한다. 이러한 다른 콘텐츠의 다른 예는 (1) 장치에 저장되어 있는 파일 및 다른 콘텐츠, (2) 장치의 화면 디스플레이(즉, 장치의 화면 상에 디스플레이되는 콘텐츠), (3) 화상 회의 또는 다른 실시간 통신 세션 동안 다른 장치로부터 수신되는 콘텐츠 등을 포함한다.
일부 실시예의 모바일 장치는 화상 회의 동안 조절을 하는 새로운 회의중 조절 기술을 이용한다. 예를 들어, 화상 회의 동안 한쪽 카메라의 캡처된 비디오만을 전송하는 동안, 일부 실시예의 모바일 장치는 그것의 다른쪽 카메라에 의해 캡처되는 비디오를 전송하는 것으로 동적으로 전환할 수 있다. 이러한 상황에서, 일부 실시예의 모바일 장치는 화상 회의에 참여하고 있는 임의의 다른 장치에 이 전환을 통지함으로써, 그러한 다른 장치가 2개의 카메라에 의해 캡처되는 비디오들 간의 원할한 천이를 그 다른 장치 측에서 제공할 수 있도록 한다.
일부 실시예에서, 카메라들을 전환하라는 요청은 화상 회의 동안 그것의 카메라들 간에 전환하는 "로컬" 장치에서 발원될 수 있을 뿐만 아니라, 로컬 장치에 의해 캡처된 비디오를 수신하고 있는 다른 "원격" 장치로부터도 발원될 수 있다. 게다가, 하나의 장치가 다른 장치에 카메라를 전환하라고 지시할 수 있게 해 주는 것은 일부 실시예의 장치의 원격 제어 기능의 일례에 불과하다. 일부 실시예에서 원격으로 장치에 지시될 수 있는 다른 동작들의 예는 노출 조절 동작(예컨대, 자동 노출), 초점 조절 동작(자동 초점) 등을 포함한다. 로컬로 또는 원격으로 지정될 수 있는 새로운 회의중 조절의 다른 예는 캡처된 비디오에서의 관심 영역(region of interest, ROI)을 식별하는 것, 및 캡처하는 카메라의 거동을 수정하기 위해, 캡처하는 카메라를 갖는 장치의 영상 처리 동작을 수정하기 위해, 또는 캡처하는 카메라를 갖는 장치에서의 인코딩 동작을 수정하기 위해 이 ROI 식별을 사용하는 것이다.
일부 실시예의 새로운 회의중 조절의 또 다른 예는 장치들에 의해 발생되는 합성 비디오 디스플레이의 실시간 수정을 포함한다. 구체적으로는, 일부 실시예에서, 합성 비디오 디스플레이의 실시간 수정은, 디스플레이 영역의 사용자 선택 및 이동에 응답하여, 합성 디스플레이 내에서 디스플레이 영역들 중 하나 이상의 디스플레이 영역을 이동시키는 것을 포함한다. 일부 실시예는 또한 화상 회의 동안 합성 디스플레이를, 이 합성 디스플레이를 제공하는 장치의 화면이 회전할 때, 회전시킨다. 또한, 일부 실시예의 모바일 장치는 장치의 사용자가 PIP 디스플레이에서 비디오의 순서를 바꿀 수 있게 해 준다(즉, 전경 삽입 디스플레이에서의 비디오가 배경 메인 디스플레이에 나오게 하면서 배경 메인 디스플레이에서의 비디오가 전경 삽입 디스플레이에 나오게 할 수 있게 해 준다).
몇가지 더 상세한 실시예가 이하에 기술되어 있다. 섹션 I은 일부 실시예의 비디오 처리 아키텍처에 대한 설명을 제공한다. 섹션 II는 이어서 일부 실시예의 캡처된 영상 처리 유닛에 대해 기술한다. 일부 실시예에서, 이 유닛은 장치의 카메라들에 의해 캡처된 원시 영상을 처리하는 일을 맡고 있는 장치의 구성요소이다.
그 다음에, 섹션 III은 일부 실시예의 화상 회의 아키텍처에 대해 기술한다. 이 섹션은 또한 일부 실시예의 화상 회의 모듈은 물론, 단일 카메라 화상 회의를 설정하는 몇가지 방식에 대해 기술한다. 섹션 IV는 이어서 일부 실시예의 회의중 조절 및 제어 동작에 대해 기술한다. 섹션 V는 이어서 화상 회의 동안 개개의 장치로부터의 다수의 비디오를 전송하고 디스플레이하는 실시예의 화상 회의 특징에 대해 기술한다. 섹션 VI는 그 다음에 화상 회의 동안 비실시간 콘텐츠와 함께 실시간 비디오를 전송하는 것에 대해 기술한다. 마지막으로, 섹션 VII는 일부 실시예의 듀얼 카메라 장치의 하드웨어 아키텍처에 대해 기술한다.
I. 비디오 캡처 및 처리
도 3은 일부 실시예의 듀얼 카메라 모바일 장치의 비디오 처리 및 인코딩 모듈(300)을 개념적으로 나타낸 것이다. 일부 실시예에서, 모듈(300)은 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처되는 영상을 처리하고 비디오를 인코딩한다. 도 3에 도시된 바와 같이, 이 모듈(300)은 캡처된 영상 처리 유닛(captured image processing unit, CIPU) 드라이버(305), 미디어 교환 모듈(310), 인코더 드라이버(320), 및 비디오 처리 모듈(325)을 포함한다.
일부 실시예에서, 미디어 교환 모듈(310)은 미디어 콘텐츠의 소비자 및 생산자인 장치 상의 프로그램들이 미디어 콘텐츠 및 미디어 콘텐츠의 처리에 관한 명령어를 교환할 수 있게 해 준다. 비디오 처리 및 인코딩 모듈(300)에서, 일부 실시예의 미디어 교환 모듈(310)은 비디오 처리 모듈(325)과 CIPU 드라이버(305) 사이에서 및 비디오 처리 모듈(325)과 인코더 드라이버(320) 사이에서 명령어 및 미디어 콘텐츠를 라우팅한다. 이러한 명령어 및 미디어 콘텐츠의 라우팅을 용이하게 해주기 위해, 일부 실시예의 미디어 교환 모듈(310)은 미디어 콘텐츠의 소비자 및 생산자가 사용할 일련의 응용 프로그램 프로그래밍 인터페이스(API)를 제공한다. 이러한 실시예들 중 일부 실시예에서, 미디어 교환 모듈(310)은 듀얼 카메라 모바일 장치 상에서 실행 중인 운영 체제의 일부인 하나 이상의 프레임워크의 세트이다. 이러한 미디어 교환 모듈(310)의 일례는 Apple Inc.에 의해 제공되는 코어 미디어 프레임워크(Core Media framework)이다.
비디오 처리 모듈(325)은 장치의 카메라들에 의해 캡처된 영상 및/또는 비디오에 대해 영상 처리를 수행한다. 이러한 동작의 예는 노출 조절 동작, 초점 조절 동작, 원근 보정, 동적 범위 조절, 영상 크기 조정, 영상 합성(image compositing) 등을 포함한다. 일부 실시예에서, 일부 영상 처리 동작은 또한 미디어 교환 모듈(310)에 의해서도 수행될 수 있다. 예를 들어, 도 3에 도시된 바와 같이, 일부 실시예의 미디어 교환 모듈(310)은 장치의 카메라들에 의해 캡처된 비디오 영상에서의 잡음을 감소시키는 시간 잡음 감소(temporal noise reduction, TNR) 동작을 [예컨대, TNR(315)에 의해] 수행한다. 비디오 처리 모듈(325) 및 미디어 교환 모듈(310)의 이러한 영상 처리 동작의 추가의 예가 이하에서 제공될 것이다.
미디어 교환 모듈(310)을 통해, 비디오 처리 모듈(325)은 앞서 언급한 바와 같이 CIPU 드라이버(305) 및 인코더 드라이버(320)와 인터페이스한다. CIPU 드라이버(305)는 캡처된 영상 처리 유닛(CIPU)(330)과 미디어 교환 모듈(310) 사이의 통신 인터페이스로서 역할한다. 이하에서 추가로 기술하는 바와 같이, CIPU(330)는 장치의 카메라들의 영상 캡처 또는 비디오 캡처 동작 동안 캡처되는 영상을 처리하는 일을 맡고 있는 듀얼 카메라 장치의 구성요소이다. CIPU 드라이버(305)는 비디오 처리 모듈(325)로부터 미디어 교환 모듈(310)을 통해, 장치의 카메라들 중 하나 또는 둘 다로부터의 영상 및/또는 비디오에 대한 요청을 수신한다. CIPU 드라이버(305)는 이러한 요청을 CIPU(330)로 중계하고, 그에 응답하여, 요청된 영상 및/또는 비디오를 CIPU(330)로부터 수신하고, 다음으로 CIPU 드라이버(305)는 그것을 미디어 교환 모듈(310)을 통해 비디오 처리 모듈(325)로 송신한다. 일부 실시예의 비디오 처리 모듈(325)은 또한 CIPU 드라이버(305) 및 미디어 교환 모듈(310)을 통해, 그것의 동작들 중 일부를 수정하기 위해(예컨대, 카메라의 프레임 레이트, 노출 조절 동작, 초점 조절 동작 등을 수정하기 위해) 명령어를 CIPU(330)로 송신한다.
인코더 드라이버(320)는 미디어 교환 모듈(310)과 인코더 하드웨어(335)(예컨대, 인코더 칩, SoC(system on chip) 상의 인코딩 구성요소 등) 사이의 통신 인터페이스로서 역할한다. 일부 실시예에서, 인코더 드라이버(320)는 영상을 수신하고 미디어 교환 모듈(310)을 통해 비디오 처리 모듈(325)에 영상을 인코딩하라고 요청한다. 인코더 드라이버(320)는 인코딩될 영상을 인코더(335)로 송신하고, 인코더는 이어서 영상에 대해 사진 인코딩 또는 비디오 인코딩을 수행한다. 인코더 드라이버(320)가 인코더(335)로부터 인코딩된 영상을 수신할 때, 인코더 드라이버(320)는 인코딩된 영상을 미디어 교환 모듈(310)을 통해 다시 비디오 처리 모듈(325)로 송신한다.
일부 실시예에서, 비디오 처리 모듈(325)은 인코더로부터 수신하는 인코딩된 영상에 대해 상이한 동작을 수행할 수 있다. 이러한 동작의 예는 인코딩된 영상을 장치의 저장 장치에 저장하는 것, 화상 회의에서의 인코딩된 영상을 장치의 네트워크 인터페이스를 통해 전송하는 것 등을 포함한다.
일부 실시예에서, 비디오 처리 및 인코딩 모듈(300)의 모듈들 중 일부 또는 전부가 운영 체제의 일부로서 구현되어 있다. 예를 들어, 일부 실시예는 이 모듈(300)의 4개의 구성요소(305, 310, 320, 325) 전부를 장치의 운영 체제의 일부로서 구현하고 있다. 다른 실시예는 미디어 교환 모듈(310), CIPU 드라이버(305) 및 인코더 드라이버(320)를 장치의 운영 체제의 일부로서 구현하고 있는 반면, 비디오 처리 모듈(325)을 운영 체제 상에서 실행되는 응용 프로그램으로서 가진다. 여전히, 모듈(300)의 다른 구현이 가능하다.
비디오 캡처 세션 동안의 비디오 처리 및 인코딩 모듈(300)의 동작에 대해 이제부터 기술할 것이다. 비디오 캡처 세션을 시작하기 위해, 비디오 처리 모듈(325)은 비디오 캡처 세션에 대해 필요한 몇가지 구성요소를 초기화한다. 일부 실시예에서, 이들 구성요소는 (1) CIPU(330), (2) 비디오 처리 모듈(325)의 스케일링 및 합성 모듈(도시 생략), (3) 비디오 처리 모듈(325)의 영상 처리 모듈(도시 생략), 및 (4) 인코더(335)를 포함한다. 또한, 일부 실시예의 비디오 처리 모듈(325)은 화상 회의에 참가하고 있을 때 네트워크 관리자(도시 생략)를 초기화한다.
비디오 처리 모듈은 장치의 카메라들 중 하나 또는 둘 다가 비디오 캡처를 시작하게 하기 위해, 미디어 교환 모듈(310) 및 CIPU 드라이버(305)를 통해 그것의 초기화 요청을 CIPU(330)로 송신한다. 일부 실시예에서, 이 요청은 비디오를 캡처할 필요가 있는 각각의 카메라에 대한 특정의 프레임 레이트, 노출 레벨, 및 스케일링 크기를 지정한다. 이 요청에 응답하여, CIPU(330)는 요청받은 카메라로부터의 비디오 영상을 지정된 레이트(들), 노출 레벨(들) 및 스케일링 크기(들)로 반환하기 시작한다. 이들 비디오 영상은 CIPU 드라이버(305) 및 미디어 교환 모듈(310)을 통해 비디오 처리 모듈(325)로 반환되고, 미디어 교환 모듈은, 앞서 언급한 바와 같이, 비디오 영상을 비디오 처리 모듈(325)에 공급하기 전에 비디오 영상에 대해 TNR 동작을 수행한다. 비디오 처리 모듈(325)에서, 비디오 영상은 부가의 영상 처리를 위해 버퍼(도시 생략)에 저장된다.
비디오 처리 모듈(325)의 영상 처리 모듈은 부가의 비디오 처리를 위해 버퍼에 저장된 비디오 영상을 검색한다. 스케일링 및 합성 모듈은 이어서 처리된 비디오 영상을 검색하여, 장치의 디스플레이 화면 상에의 실시간 디스플레이를 위해 필요한 경우 이들을 스케일링한다. 일부 실시예에서, 이 모듈은 캡처된 비디오 영상의 실시간 디스플레이를 장치 상에 제공하기 위해 또는 인코딩을 위한 합성 비디오 영상을 생성하기 위해, 화상 회의 동안 장치의 2개의 카메라에 의해 캡처된 영상으로부터, 또는 다른 장치의 카메라(들)와 함께 장치의 카메라(들)에 의해 캡처된 영상으로부터 합성 영상을 생성한다.
처리된 및/또는 합성된 비디오 영상은 인코더 드라이버(320) 및 미디어 교환 모듈(310)을 통해 인코더(335)에 공급된다. 인코더(335)는 이어서 비디오 영상을 인코딩한다. 인코딩된 영상은 이어서 화상 회의 동안 장치 상에 저장하기 위해 또는 전송하기 위해 [다시, 인코더 드라이버(320) 및 미디어 교환 모듈(310)을 통해] 비디오 처리 모듈(325)로 반환된다. 장치가 화상 회의에 참가하고 있을 때, [비디오 처리 모듈(325)에 의해 초기화된] 네트워크 관리자는 이어서 이들 인코딩된 영상을 검색하고, 이들을 패킷화하며, 장치의 네트워크 인터페이스(도시 생략)를 통해 이들을 하나 이상의 다른 장치에게 전송한다.
II. 캡처된 영상 처리
A. 단일 파이프라인
일부 실시예의 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처된 영상은 미처리된 원시 영상이다. 이들 영상은 (예컨대, 화상 회의 동안) 영상을 다른 장치에게 전송하는 것, 영상을 저장하는 것, 또는 영상을 디스플레이하는 것 등의 다른 동작을 위해 영상이 사용될 수 있기 전에 특정의 색 공간으로의 변환을 필요로 한다. 그에 부가하여, 카메라들에 의해 캡처된 영상은 오차 및/또는 왜곡을 보정하기 위해 그리고 영상의 컬러, 크기 등을 조절하기 위해 처리될 필요가 있을 수 있다. 그에 따라, 일부 실시예는 영상을 저장, 전송 및 디스플레이하기 전에 이러한 영상에 대해 몇가지 처리 동작을 수행한다. 이러한 영상의 처리의 일부가 CIPU(330)에 의해 수행된다.
이러한 CIPU의 일례가 도 4에 예시되어 있다. 구체적으로는, 이 도면은 일부 실시예의 캡처된 영상 처리 유닛(CIPU)(400)을 개념적으로 나타낸 것이다. 이 CIPU(400)는 한 번에 장치의 카메라들 중 단지 하나의 카메라로부터의 영상만을 처리하거나 장치의 카메라들 둘 다로부터의 영상을 시분할 다중화 방식으로(즉, 시간 인터리빙된 방식으로) 동시에 처리하는 단일 처리 파이프라인(485)을 포함한다. CIPU(400)의 처리 파이프라인(485)은 상이한 카메라들의 상이한 특성 및/또는 동작 설정을 다루도록 상이하게 구성되어 있을 수 있다. 일부 실시예에서, 상이한 카메라 특성의 예는 상이한 해상도, 잡음 센서, 렌즈 유형(고정 또는 줌 렌즈) 등을 포함한다. 또한, 일부 실시예에서, 장치가 카메라를 작동시킬 수 있는 상이한 동작 설정의 예는 영상 해상도 크기, 프레임 레이트, 줌 레벨, 노출 레벨 등을 포함한다.
도 4에 도시된 바와 같이, CIPU(400)는 센서 모듈(415), 라인/프레임 버퍼(417), 불량 픽셀 보정(bad pixel correction, BPC) 모듈(420), 렌즈 음영(lens shading, LS) 모듈(425), 디모자이킹(demosaicing) 모듈(430), 화이트 밸런스(white balance, WB) 모듈(435), 감마 모듈(440), 색 공간 변환(color space conversion, CSC) 모듈(445), 색상, 채도 및 대비(hue, saturation, and contrast, HSC) 모듈(450), 스케일러 모듈(455), 필터 모듈(460), 통계 엔진(465), 2개의 레지스터 세트(470), 및 제어기 모듈(475)을 포함한다. 일부 실시예에서, CIPU(400)의 모든 모듈이 하드웨어(예컨대, ASIC, FPGA, 마이크로컨트롤러를 갖는 SOC 등)로 구현되어 있는 반면, 다른 실시예에서는 CIPU(400)의 모듈들 중 일부 또는 전부가 소프트웨어로 구현되어 있다.
도 4에 도시된 바와 같이, 센서 모듈(415)은 장치의 2개의 카메라의 2개의 픽셀 어레이(410a, 410b) 및 2개의 센서 세트(405a, 405b)에 통신 연결되어 있다. 일부 실시예에서, 이 통신 연결은 각각의 카메라 센서의 MIPI(mobile industry processor interface)를 통해 용이하게 된다.
이 통신 연결을 통해, 센서 모듈(415)은 각각의 카메라의 동작의 다양한 측면(예컨대 그것의 전력 레벨, 줌 레벨, 초점, 노출 레벨, 기타 등등)을 제어하기 위해 명령어를 카메라들에 전달할 수 있다. 일부 실시예에서, 각각의 카메라는 4개의 동작 전력 모드를 가진다. 제1 동작 전력 모드에서, 카메라는 전원이 꺼져 있다. 제2 동작 전력 모드에서, 카메라는 전원이 켜져 있지만, 아직 구성되어 있지 않다. 제3 동작 전력 모드에서, 카메라는 전원이 켜져 있고, 카메라의 센서가 구성되어 있으며, 카메라 센서의 픽셀이 광자를 수집하고 수집된 광자를 디지털 값으로 변환하고 있다. 그렇지만, 카메라 센서가 아직 영상을 센서 모듈(415)로 송신하고 있지는 않다. 마지막으로, 제4 동작 전력 모드에서, 카메라는, 카메라가 이제는 영상을 센서 모듈(415)로 송신하고 있다는 것을 제외하고는, 제3 전력 모드와 동일한 동작 전력 모드에 있다.
장치의 동작 동안에, 카메라들은 하나의 동작 전력 모드로부터 다른 동작 전력 모드로 임의의 횟수만큼 전환할 수 있다. 동작 전력 모드들을 전환할 때, 일부 실시예는 카메라가 앞서 기술한 순서로 동작 전력 모드를 전환할 것을 필요로 한다. 따라서, 그 실시예에서, 제1 동작 전력 모드에 있는 카메라는 제2 동작 전력 모드로만 전환할 수 있다. 카메라가 제2 동작 전력 모드에 있을 때, 카메라는 제1 동작 전력 모드로 또는 제3 동작 전력 모드로 전환할 수 있다. 이와 유사하게, 카메라는 제3 동작 전력 모드로부터 제2 동작 전력 모드로 또는 제4 동작 전력 모드로 전환할 수 있다. 카메라가 제4 동작 전력 모드에 있을 때, 카메라는 다시 제3 동작 전력 모드로만 전환할 수 있다.
게다가, 하나의 동작 전력 모드로부터 그 다음 동작 전력 모드 또는 이전의 동작 전력 모드로의 전환은 특정의 양의 시간이 걸린다. 따라서, 2개 또는 3개의 동작 전력 모드 간의 전환이 하나의 동작 전력 모드 사이의 전환보다 더 느리다. 상이한 동작 전력 모드가 또한 상이한 양의 전력을 소비한다. 예를 들어, 제4 동작 전력 모드가 가장 많은 양의 전력을 소비하고, 제3 동작 전력 모드가 제1 및 제2 동작 전력 모드보다 많은 전력을 소비하고, 제2 동작 전력 모드가 제1 동작 전력 모드보다 많은 전력을 소비한다. 일부 실시예에서, 제1 동작 전력 모드는 전력을 전혀 소비하지 않는다.
카메라가 영상을 캡처하는 제4 동작 전력 모드에 있지 않을 때, 카메라는 다른 동작 전력 모드들 중 하나의 동작 전력 모드에 있을 수 있다. 미사용 카메라를 어느 동작 모드에 남겨 두어야 할지를 결정하는 것은 카메라가 얼마나 많은 전력을 소비하도록 허용되어 있는지 및 카메라가 영상을 캡처하기 시작하라는 요청에 얼마나 빨리 응답할 필요가 있는지에 의존한다. 예를 들어, 제3 동작 전력 모드(예컨대, 대기 모드)에서 동작하도록 구성된 카메라는 제1 동작 전력 모드(즉, 전원 꺼짐)에 있도록 구성된 카메라보다 더 많은 전력을 소비한다. 그렇지만, 카메라가 영상을 캡처하도록 지시를 받을 때, 제3 동작 전력 모드에서 동작하는 카메라는 제1 동작 전력 모드에서 동작하는 카메라보다 더 빨리 제4 동작 전력 모드로 전환할 수 있다. 그에 따라, 카메라들은 상이한 요구사항(예컨대, 영상을 캡처하라는 요청에 대한 응답 시간, 전력 소비)에 기초하여, 영상을 캡처하지 않을 때 상이한 동작 전력 모드에서 동작하도록 구성될 수 있다.
비디오 처리 모듈(325)이 카메라들 중 하나 또는 둘 다에 영상을 캡처하기 시작하라고 요청하고 센서 모듈(415)이 제어기 모듈(475)을 통해 이 요청을 수신할 때, 센서 모듈(415)은 각각의 카메라와의 통신 연결을 통해, 카메라 센서 세트들 중 하나 또는 둘 다에 영상을 캡처하기 시작하라고 지시할 수 있으며, 이에 대해서는 이하에서 더 기술한다. Bayer 필터가 각각의 카메라 센서에 중첩되어 있고, 따라서 각각의 카메라 센서는 Bayer 패턴 영상을 출력하고, 이들은 각각의 카메라 센서와 연관된 픽셀 어레이에 저장된다. Bayer 패턴 영상은 각각의 픽셀이 하나의 컬러 값(적색, 청색 또는 녹색)만을 저장하는 영상이다.
센서 모듈(415)은 픽셀 어레이(410a, 410b)와의 연결을 통해, 카메라 픽셀 어레이(410a, 410b)에 저장되어 있는 원시 Bayer 패턴 영상을 검색한다. 센서 모듈(415)이 카메라의 픽셀 어레이로부터 영상을 검색하는 레이트를 제어함으로써, 센서 모듈(415)은 특정의 카메라에 의해 캡처되고 있는 비디오 영상의 프레임 레이트를 제어할 수 있다. 센서 모듈(415)은 또한 영상 검색의 레이트를 제어함으로써, 상이한 카메라들로부터의 캡처된 영상에 대한 CIPU 처리 파이프라인(485)의 영상 처리를 인터리빙하기 위해, 상이한 카메라들에 의해 캡처된 영상의 페칭을 인터리빙할 수 있다. 센서 모듈(415)의 영상 검색의 제어에 대해서는 이하의 서브섹션 II.A.1 및 II.A.2에서 더 기술한다.
센서 모듈(415)은 센서 모듈(415)이 픽셀 어레이(410a, 410b)로부터 검색하는 영상 라인(즉, 영상의 픽셀 행)을 라인/프레임 버퍼(417)에 저장한다. 라인/프레임 버퍼(417)에서의 각각의 영상 라인이 CIPU 처리 파이프라인(485)을 통해 처리된다. 도 4에 도시된 바와 같이, CIPU 처리 파이프라인(485)은 BPC 모듈(420), LS 모듈(425), 디모자이킹 모듈(430), WB 모듈(435), 감마 모듈(440), CSC 모듈(445), HSC 모듈(450), 스케일러 모듈(455), 및 필터 모듈(460)에 의해 형성된다. 일부 실시예에서, CIPU 처리 파이프라인(485)은 라인/프레임 버퍼(417)로부터의 영상을 라인별로(즉, 행별로) 처리하는 반면, 다른 실시예에서, CIPU 처리 파이프라인(485)은 라인/프레임 버퍼(417)로부터의 전체 영상을 프레임별로 처리한다.
도 4에 예시된 예시적인 파이프라인에서, BPC 모듈(420)은 라인/프레임 버퍼(417)로부터 영상을 검색하는 모듈이다. 이 모듈은 결함있는 카메라 센서들 중 하나 이상으로부터 얻어진 것일지도 모르는 검색된 영상에서의 불량 픽셀을 보정하려고 시도하는 불량 픽셀 제거 동작을 수행한다(예컨대, 결함있는 광 센서는 광을 전혀 감지하지 않거나, 광을 부정확하게 감지하거나, 기타 등등이다). 일부 실시예에서, BPC 모듈(420)은 영상에서의 특정의 픽셀을 영상에서의 하나 이상의 이웃 픽셀과 비교함으로써 불량 픽셀을 검출한다. 특정의 픽셀의 값과 이웃 픽셀의 값 사이의 차가 임계량보다 큰 경우, 특정의 픽셀의 값이 그 특정의 픽셀과 동일한 컬러(즉, 적색, 녹색 및 청색)를 갖는 몇 개의 이웃 픽셀의 값의 평균으로 대체된다.
BPC 모듈(420)의 동작은, 부분적으로, 이 모듈에 대해 CIPU(400)의 2개의 레지스터 세트(470)에 저장된 값에 의해 제어된다. 구체적으로는, 장치의 2개의 상이한 카메라에 의해 캡처된 영상을 처리하기 위해, 일부 실시예는 각각의 카메라에 대해 상이하게 CIPU 처리 파이프라인(485)을 구성하며, 이에 대해서는 앞서 언급하였다. CIPU 처리 파이프라인(485)은 2개의 상이한 카메라에 대해 2개의 상이한 값 세트를 CIPU(400)의 2개의 상이한 레지스터 세트[470a(Ra), 470b(Rb)]에 저장함으로써 구성되어 있다. 각각의 레지스터 세트(470)는 CIPU 처리 파이프라인(485) 내의 각각의 모듈(420 내지 460)에 대한 하나의 레지스터(Ra 또는 Rb)를 포함하고 있다. 각각의 레지스터 세트 내의 각각의 레지스터는 단일 처리 파이프라인 모듈의 동작을 정의하는 일련의 값을 저장하고 있다. 그에 따라, 도 4에 도시된 바와 같이, 레지스터 세트(470a)는 듀얼 카메라 모바일 장치의 한쪽 카메라(카메라 A)에 대한 각각의 처리 파이프라인 모듈의 동작 모드를 나타내기 위한 것인 반면, 레지스터 세트(470b)는 듀얼 카메라 모바일 장치의 다른쪽 카메라(카메라 B)에 대한 각각의 모듈의 동작 모드를 나타내기 위한 것이다.
각각의 카메라에 대해 상이하게 CIPU 처리 파이프라인(485)을 구성하는 일례는 CIPU 처리 파이프라인(485)의 모듈들을 상이한 크기의 영상들을 처리하도록 구성하는 것이다. 예를 들어, 카메라 센서(405a)가 640x480 픽셀이고, 카메라 센서(405b)가 2048x1536 픽셀인 경우, 레지스터 세트(470a)는 CIPU 처리 파이프라인(485)의 모듈들에 640x480 픽셀 영상을 처리하라고 지시하는 값을 저장하도록 구성되어 있고, 레지스터 세트(470b)는 CIPU 처리 파이프라인(485)의 모듈들에 2048x1536 픽셀 영상을 처리하라고 지시하는 값을 저장하도록 구성되어 있다.
일부 실시예에서, 상이한 처리 파이프라인 구성(즉, 레지스터 값)이 상이한 프로필 설정들에 저장된다. 이러한 실시예들 중 일부 실시예에서, 모바일 장치의 사용자는 카메라(들)의 동작을 설정하기 위해 (예컨대, 모바일 장치 상에 디스플레이된 사용자 인터페이스를 통해) 프로필 설정들 중 하나를 선택할 수 있다. 예를 들어, 사용자는 카메라를 고해상도 비디오를 캡처하도록 구성하는 프로필 설정, 동일한 카메라를 저해상도 비디오를 캡처하도록 구성하는 프로필 설정, 또는 양쪽 카메라를 고해상도 정지 영상을 캡처하도록 구성하는 프로필 설정을 선택할 수 있다. 많은 다른 프로필 설정들에 저장될 수 있는 다른 구성들이 가능하다. 이러한 실시예들 중 다른 실시예에서, 사용자가 프로필 설정을 선택할 수 있게 해 주는 대신에, 사용자가 어느 응용 프로그램 또는 활동을 선택하는지에 기초하여 프로필 설정이 자동으로 선택된다. 예를 들어, 사용자가 화상 회의 응용 프로그램을 선택하는 경우, 양쪽 카메라를 비디오를 캡처하도록 구성하는 프로필이 자동으로 선택되고, 사용자가 사진 응용 프로그램을 선택하는 경우, 카메라들 중 하나의 카메라를 정지 영상을 캡처하도록 구성하는 프로필이 자동으로 선택되며, 기타 등등이 있다.
BPC 모듈(420) 이후에, LS 모듈(425)은 불량 픽셀 보정된 영상을 수신한다. LS 모듈(425)은 광 감쇠 효과(light falloff effect)(즉, 카메라 센서의 가장자리로 갈수록 광이 감소됨)를 생성하는 카메라 렌즈에 의해 야기되는 영상 결함을 보정하기 위해 렌즈 음영 보정 동작을 수행한다. 이러한 효과는 영상이 불균일하게 조명되게 한다(예컨대, 코너 및/또는 가장자리에서 더 어두움). 이들 영상 결함을 보정하기 위해, 일부 실시예의 LS 모듈(425)은 렌즈의 조명 감쇠(illumination fall-off)의 수학적 모델을 추정한다. 추정된 모델은 이어서 영상의 불균일하게 조명된 부분을 균일하게 조명하기 위해 영상의 렌즈 감쇠(lens fall-off)를 보상하는 데 사용된다. 예를 들어, 영상의 코너가 영상의 중앙의 밝기의 1/2인 경우, 일부 실시예의 LS 모듈(425)은 균일한 영상을 생성하기 위해 코너 픽셀 값에 2를 곱한다.
디모자이킹 모듈(430)은 샘플링된 컬러의 영상으로부터 완전 컬러 영상을 생성하기 위해 디모자이킹 동작을 수행한다. 앞서 살펴본 바와 같이, 카메라 센서는 Bayer 패턴 영상을 출력하는데, Bayer 패턴 영상의 각각의 픽셀은 단 하나의 컬러 값만을 저장하기 때문에 그 영상은 불완전하다. 디모자이킹 모듈(430)은 Bayer 패턴 영상에서 각각의 컬러 세트에 대한 컬러 값을 보간함으로써 Bayer 패턴 영상으로부터 적색, 녹색, 청색(RGB) 영상을 재구성한다.
WB 모듈(435)은 디모자이킹 모듈(430)로부터 수신된 RGB 영상에 대해 화이트 밸런스 동작을 수행하여, 영상의 콘텐츠의 컬러가 실생활에서 사람의 눈에 의해 인지되는 그러한 콘텐츠의 컬러와 유사하게 한다. WB 모듈(435)은 중성색(예컨대, 회색, 백색 등)을 정확하게 렌더링하도록 영상의 컬러를 조절함으로써 화이트 밸런스를 조절한다. 예를 들어, 백열광 하에서의 백색 종이의 영상은 황색처럼 보일 수 있는 반면, 사람의 눈은 그 종이를 백색으로 인지한다. 센서가 캡처하는 영상의 컬러와 사람의 눈이 인지하는 영상의 컬러 간의 차이를 참작하기 위해, WB 모듈(435)은 캡처된 영상이 사람의 눈에 의해 인지되는 컬러를 적절히 반영하도록 영상의 컬러 값을 조절한다.
통계 엔진(465)은 CIPU 처리 파이프라인(485)의 다양한 스테이지들에서 영상 데이터를 수집한다. 예를 들어, 도 4는 통계 엔진(465)이 LS 모듈(425), 디모자이킹 모듈(430) 및 WB 모듈(435) 이후에, 영상 데이터를 수집하는 것을 나타내고 있다. 다른 실시예는 CIPU 처리 파이프라인(485)의 임의의 수의 다른 스테이지로부터 데이터를 수집한다. 통계 엔진(465)은 수집된 데이터를 처리하고, 처리된 데이터에 기초하여, 제어기 모듈(475) 및 센서 모듈(415)을 통해 카메라 센서(405a, 405b)의 동작을 조절한다. 이러한 동작의 예는 노출 및 초점을 포함한다. 도 4가 통계 엔진(465)이 제어기 모듈(475)을 통해 카메라 센서(405a, 405b)를 제어하는 것을 나타내고 있지만, 통계 엔진(465)의 다른 실시예는 단지 센서 모듈(415)만을 통해 카메라 센서를 제어한다.
처리된 데이터는 또한 CIPU(400)의 다양한 모듈의 동작을 조절하는 데 사용될 수 있다. 예를 들어, 일부 실시예의 통계 엔진(465)은 WB 모듈(435) 이후에 수집된 데이터에 기초하여 WB 모듈(435)의 동작을 조절한다. 이러한 실시예들 중 일부 실시예에서, 통계 엔진(465)은 WB 모듈(435)의 화이트 밸런싱 동작을 조절하기 위해 처리된 데이터를 사용함으로써 자동 화이트 밸런스(automatic white balance, AWB) 기능을 제공한다. 다른 실시예는, CIPU 처리 파이프라인(485) 내의 임의의 수의 모듈의 동작을 조절하기 위해, CIPU 처리 파이프라인(485)의 임의의 수의 스테이지로부터 수집되는 처리된 데이터를 사용할 수 있다. 게다가, 통계 엔진(465)은 또한 CIPU 처리 파이프라인(485)의 하나 이상의 모듈의 동작을 조절하기 위해 제어기 모듈(475)로부터 명령어를 수신할 수 있다.
WB 모듈(435)로부터 영상을 수신한 후에, 감마 모듈(440)은 카메라 시스템의 휘도 값 또는 삼색 자극값(tristimulus value)을 코딩 및 디코딩하기 위해 영상에 대해 감마 보정 동작을 수행한다. 일부 실시예의 감마 모듈(440)은 영상의 감마를 보정하기 위해 10 내지 12 비트 선형 신호를 8 비트 비선형 인코딩으로 변환함으로써 감마를 보정한다. 일부 실시예는 탐색 테이블(lookup table)을 사용하여 감마를 보정한다.
CSC 모듈(445)은 감마 모듈(440)로부터 수신된 영상을 한 색 공간으로부터 다른 색 공간으로 변환한다. 구체적으로는, CSC 모듈(445)은 영상을 RGB 색 공간으로부터 YUV(luminance and chrominance) 색 공간으로 변환한다. 그렇지만, CSC 모듈(445)의 다른 실시예는 영상을 임의의 수의 색 공간으로부터 임의의 수의 색 공간으로 변환할 수 있다.
HSC 모듈(450)은 CSC 모듈(445)로부터 수신된 영상의 색상, 채도, 대비 또는 이들의 임의의 조합을 조절할 수 있다. HSC 모듈(450)은 예를 들어 잡음을 감소시키기 위해 또는 영상을 향상시키기 위해 이들 특성을 조절할 수 있다. 예를 들어, 영상이 더욱 생생하게 보이도록 하기 위해 저잡음(low-noise) 카메라 센서에 의해 캡처된 영상의 채도가 증가될 수 있다. 이와 달리, 고잡음(high-noise) 카메라 센서에 의해 캡처된 영상의 채도가 감소되어 이러한 영상의 색 잡음(color noise)을 감소시킬 수 있다.
HSC 모듈(450) 이후에, 스케일러 모듈(455)은 영상의 픽셀 해상도를 조절하기 위해 또는 영상의 데이터 크기를 조절하기 위해 영상의 크기를 조정할 수 있다. 스케일러 모듈(455)은 또한, 예를 들어 작은 디스플레이에 적합하도록 영상의 크기를 감소시킬 수 있다. 스케일러 모듈(455)은 다수의 다른 방식으로 영상을 스케일링할 수 있다. 예를 들어, 스케일러 모듈(455)은 영상을 스케일 업(scale up)(즉, 확대) 및 스케일 다운(scale down)(즉, 축소)할 수 있다. 스케일러 모듈(455)은 또한 영상을 비례적으로 스케일링할 수 있거나, 영상을 왜곡되게(anamorphically) 스케일링할 수 있다.
필터 모듈(460)은 영상의 픽셀의 일부 또는 전부의 하나 이상의 속성을 변경하기 위해 스케일러 모듈(455)로부터 수신된 영상에 하나 이상의 필터 동작을 적용한다. 필터의 예는, 다른 예들 중에서도 특히 저역 통과 필터, 고역 통과 필터, 대역 통과 필터, 양방향 필터(bilateral filter), 가우시안 필터를 포함한다. 그에 따라, 필터 모듈(460)은 임의의 수의 다른 필터를 영상에 적용할 수 있다.
일부 실시예의 제어기 모듈(475)은 CIPU(400)의 동작을 제어하는 마이크로컨트롤러이다. 일부 실시예에서, 제어기 모듈(475)은 (1) 센서 모듈(415)을 통한 카메라 센서의 동작(예컨대, 노출 레벨), (2) CIPU 처리 파이프라인(485)의 동작, (3) CIPU 처리 파이프라인(485)의 타이밍(예컨대, 카메라 센서를 언제 전환할지, 레지스터를 언제 전환할지 등), 및 (4) 일부 실시예의 듀얼 카메라 모바일 장치의 일부인 플래시/스트로브(도시 생략)를 제어한다.
제어기 모듈(475)의 일부 실시예는 통계 엔진(465) 및 CIPU 드라이버(480)로부터 수신된 명령어를 처리한다. 일부 실시예에서, CIPU 드라이버(480)로부터 수신된 명령어는 듀얼 카메라 모바일 장치로부터의(즉, 로컬 장치로부터 수신된) 명령어인 반면, 다른 실시예에서, CIPU 드라이버(480)로부터 수신된 명령어는 다른 장치로부터의 명령어(예컨대, 화상 회의 동안의 원격 제어)이다. 처리된 명령어에 기초하여, 제어기 모듈(475)은 레지스터들(470)의 값을 프로그램함으로써 CIPU(400)의 동작을 조절할 수 있다. 게다가, 제어기 모듈(475)은 CIPU(400)의 동작 동안에 레지스터(470)의 값을 동적으로 재프로그램할 수 있다.
도 4에 도시된 바와 같이, CIPU(400)는 CIPU 처리 파이프라인(485) 내에 다수의 모듈을 포함하고 있다. 그렇지만, 당업자라면 CIPU(400)가 예시된 모듈들 중 단지 몇 개만으로, 또는 부가의 및 상이한 모듈로 구현될 수 있다는 것을 잘 알 것이다. 그에 부가하여, 상이한 모듈들에 의해 수행되는 처리가 도 4에 예시된 순서와 다른 순서로 영상에 적용될 수 있다.
CIPU(400)의 예시적인 동작에 대해 이제부터 도 4를 참조하여 기술할 것이다. 설명을 위해, 레지스터 세트(Ra)는 듀얼 카메라 모바일 장치의 카메라 센서(405a)에 의해 캡처되는 영상을 처리하는 데 사용되고, 레지스터 세트(Rb)는 듀얼 카메라 모바일 장치의 카메라 센서(405b)에 의해 캡처되는 영상을 처리하는 데 사용된다. 제어기 모듈(475)은 듀얼 카메라 모바일 장치의 카메라들 중 하나의 카메라에 의해 캡처되는 영상을 생성하기 위해 CIPU 드라이버(480)로부터 명령어를 수신한다.
다음으로, 제어기 모듈(475)은 듀얼 카메라 모바일 장치의 카메라들 중 하나의 카메라에 의해 캡처되는 영상을 처리하기 위해 CIPU 처리 파이프라인(485)의 다양한 모듈을 초기화한다. 일부 실시예에서, 이것은 제어기 모듈(475)이 레지스터들(470) 중의 올바른 레지스터 세트가 사용되는지를 검사하는 것을 포함한다. 예를 들어, CIPU 드라이버(480)가 카메라 센서(405a)에 의해 캡처된 영상을 생성하라고 제어기 모듈(475)에 지시하는 경우, 제어기 모듈(475)은 레지스터 세트(Ra)가 CIPU(400)의 모듈들이 판독하는 레지스터 세트인지를 검사한다. 아닌 경우, 제어기 모듈(475)은 레지스터 세트(Ra)가 CIPU(400)의 모듈에 의해 판독되는 세트이도록 레지스터 세트들 간에 전환한다.
CIPU 처리 파이프라인(485) 내의 각각의 모듈에서, 동작 모드는 레지스터 세트(Ra)에 저장된 값에 의해 나타내어진다. 앞서 언급한 바와 같이, 레지스터 세트(470) 내의 값이 CIPU(400)의 동작 동안 동적으로 재프로그램될 수 있다. 따라서, 하나의 영상의 처리가 그 다음 영상의 처리와 다를 수 있다. CIPU(400)의 이 예시적인 동작에 대한 논의는 CIPU(400) 내의 각각의 모듈이 모듈들의 동작 모드를 나타내기 위해 레지스터들에 저장된 값을 판독하는 것에 대해 기술하고 있지만, 일부 소프트웨어-구현 실시예에서는, 파라미터가 CIPU(400)의 다양한 모듈에 대신 전달된다.
일부 실시예에서, 제어기 모듈(475)은 픽셀 어레이(410a)로부터 영상을 검색한 후에 특정의 양의 시간을 지연시키라고 센서 모듈(415)에 지시함으로써 센서 모듈(415)을 초기화한다. 환언하면, 제어기 모듈(475)은 특정의 레이트로 픽셀 어레이(410a)로부터 영상을 검색하라고 센서 모듈(415)에 지시한다.
그 다음에, 제어기 모듈(475)은 영상을 캡처하라고 센서 모듈(415)을 통해 카메라 센서(405a)에 지시한다. 일부 실시예에서, 제어기 모듈(475)은 또한 노출 및 다른 카메라 동작 파라미터를 카메라 센서(405a)에 제공한다. 다른 실시예에서, 카메라 센서(405a)는 카메라 센서 동작 파라미터에 대한 디폴트 값을 사용한다. 이 파라미터에 기초하여, 카메라 센서(405a)는 원시 영상을 캡처하고, 이 원시 영상은 픽셀 어레이(410a)에 저장된다. 센서 모듈(415)은 픽셀 어레이(410a)로부터 원시 영상을 검색하고, CIPU 처리 파이프라인(485)이 그 영상을 처리하기 전에 저장을 위해 그 영상을 라인/프레임 버퍼(417)로 송신한다.
어떤 상황에서, 라인/프레임 버퍼(417)에 의해 영상이 폐기(drop)될 수 있다. 카메라 센서(405a 및/또는 405b)가 높은 레이트로 영상을 캡처하고 있을 때, 센서 모듈(415)은 BPC 모듈(420)이 라인/프레임 버퍼(417)로부터 영상을 검색할 수 있는 것보다 더 빠르게 영상을 수신하여 라인/프레임 버퍼(417)에 저장할 수 있고(예컨대, 높은 프레임 레이트의 비디오를 캡처함), 라인/프레임 버퍼(417)가 채워질 것이다. 이것이 일어날 때, 일부 실시예의 라인/프레임 버퍼(417)는 선입선출(first in, first out) 방식에 기초하여 영상(즉, 프레임)을 폐기시킨다. 즉, 라인/프레임 버퍼(417)가 영상을 폐기시킬 때, 라인/프레임 버퍼(417)는 라인/프레임 버퍼(417) 내의 모든 다른 영상보다 먼저 수신된 영상을 폐기시킨다.
CIPU 처리 파이프라인(485)에 의한 영상의 처리는 BPC 모듈(420)이 영상에서의 임의의 불량 픽셀을 보정하기 위해 라인/프레임 버퍼(417)로부터 영상을 검색하는 것에 의해 시작된다. BPC 모듈(420)은 이어서 영상에서의 임의의 불균일한 조명을 보정하기 위해 영상을 LS 모듈(425)로 송신한다. 영상의 조명이 보정된 후에, LS 모듈(425)은 영상을 디모자이킹 모듈(430)로 송신하고, 디모자이킹 모듈은 원시 영상으로부터 RGB 영상을 생성하기 위해 원시 영상을 처리한다. 그 다음에, WB 모듈(435)은 디모자이킹 모듈(430)로부터 RGB 영상을 수신하고, RGB 영상의 화이트 밸런스를 조절한다.
앞서 살펴본 바와 같이, 통계 엔진(465)은 CIPU 처리 파이프라인(485)의 다양한 지점에서 어떤 데이터를 수집했을 수 있다. 예를 들어, 도 4에 예시된 바와 같이, 통계 엔진(465)은 LS 모듈(425), 디모자이킹 모듈(430) 및 WB 모듈(435) 이후에 데이터를 수집한다. 수집된 데이터에 기초하여, 통계 엔진(465)은 카메라 센서(405a)로부터의 후속 영상의 캡처를 조절하기 위해, 카메라 센서(405a)의 동작, CIPU 처리 파이프라인(485)에서의 하나 이상의 모듈의 동작, 또는 둘 다를 조절할 수 있다. 예를 들어, 수집된 데이터에 기초하여, 통계 엔진(465)은 현재 영상의 노출 레벨이 너무 낮은 것으로 판정할 수 있고, 따라서 이후에 캡처되는 영상에 대해 노출 레벨을 증가시키라고 센서 모듈(415)을 통해 카메라 센서(405a)에 지시할 수 있다. 따라서, 일부 실시예의 통계 엔진(465)은 일부 처리 동작에 대한 피드백 루프로서 동작한다.
WB 모듈(435)이 영상의 화이트 밸런스를 조절한 후에, WB 모듈은 감마 보정을 위해(예컨대, 영상의 감마 곡선을 조절하기 위해) 영상을 감마 모듈(440)로 송신한다. CSC 모듈(445)은 감마 모듈(440)로부터 감마 보정된 영상을 수신하고, 색 공간 변환을 수행한다. 이 예에서, CSC 모듈(445)은 RGB 영상을 YUV 영상으로 변환한다. 환언하면, CSC 모듈(445)은 RGB 색 공간에서 표현되는 영상을 YUV 색 공간에서 표현되는 영상으로 변환한다. HSC 모듈(450)은 CSC 모듈(445)로부터 YUV 영상을 수신하고, 영상에서의 다양한 픽셀의 색상, 채도 및 대비 속성을 조절한다. HSC 모듈(450) 이후에, 스케일러 모듈(455)은 영상의 크기를 조정한다(예컨대, 영상을 확대하거나 축소함). 필터 모듈(460)은, 스케일러 모듈(455)로부터 영상을 수신한 후에, 영상에 대해 하나 이상의 필터를 적용한다. 마지막으로, 필터 모듈(460)은 처리된 영상을 CIPU 드라이버(480)로 송신한다.
상기한 CIPU(400)의 동작의 이러한 예에서, CIPU 처리 파이프라인(485) 내의 각각의 모듈은 영상을 소정의 방식으로 처리하였다. 그렇지만, CIPU(400)에 의해 처리되는 다른 영상은 CIPU 처리 파이프라인(485)의 모든 모듈에 의한 처리를 필요로 하지 않을지도 모른다. 예를 들어, 영상이 화이트 밸런스 조절, 감마 보정, 스케일링 또는 필터링을 필요로 하지 않을지도 모른다. 그에 따라, CIPU(400)는 예를 들어 CIPU 드라이버(480)로부터의 명령어 또는 통계 엔진(465)에 의해 수집된 데이터 등의 각종의 수신된 입력에 기초하여 임의의 수의 방식으로 영상을 처리할 수 있다.
상이한 실시예들은 영상이 처리되는 레이트(즉, 프레임 레이트)를 다르게 제어한다. 프레임 레이트를 제어하는 한 방식은 수직 블랭킹 구간(VBI)의 조작을 통한 것이다. 라인별로 영상을 처리하기 위해 영상 라인을 검색하는 일부 실시예의 경우, VBI는 픽셀 어레이로부터 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 비디오의 영상의 마지막 라인을 검색하는 것과 그 픽셀 어레이로부터의 비디오의 그 다음 영상의 첫번째 라인을 검색하는 것 사이의 시간 차이다. 다른 실시예에서, VBI는 픽셀 어레이로부터 듀얼 카메라 모바일 장치의 카메라에 의해 캡처되는 비디오의 한 영상을 검색하는 것과 그 픽셀 어레이로부터 비디오의 그 다음 영상을 검색하는 것 사이의 시간 차이다.
VBI가 사용될 수 있는 일례는 센서 모듈(415)과 픽셀 어레이(410a, 410b) 사이에서이다. 예를 들어, 센서 모듈(415)의 일부 실시예는 라인별로 픽셀 어레이(410a, 410b)로부터 영상을 검색하고, 센서 모듈(415)의 다른 실시예는 영상별로 픽셀 어레이(410a, 410b)로부터 영상을 검색한다. 따라서, 센서 모듈(415)의 VBI를 조절함으로써 프레임 레이트가 제어될 수 있다 - VBI를 증가시키는 것은 프레임 레이트를 감소시키고 VBI를 감소시키는 것은 프레임 레이트를 증가시킴 -.
1. 하나의 카메라에 대한 VBI의 사용: 프레임 레이트 제어
도 5는 상이한 VBI들에 기초한 상이한 프레임 레이트(505, 510, 515)의 예를 개념적으로 나타낸 것이다. 각각의 시퀀스는 타임라인(520)을 따른 다양한 시간 인스턴스(525 내지 555)에서 기타를 들고 있는 사람의 영상 - 듀얼 카메라 모바일 장치의 카메라들 중 하나의 카메라에 의해 캡처됨 - 을 나타낸 것이다. 그에 부가하여, 각각의 시간 인스턴스(525 내지 555) 사이의 시간은 동일하고, 하나의 시간 단위라고 할 것이다. 설명을 위해, 도 5에 대해 이제부터 도 4의 센서 모듈(415) 및 픽셀 어레이(410a)를 참조하여 기술할 것이다. 그에 따라, 각각의 영상은 센서 모듈(415)이 픽셀 어레이(410a)로부터 영상을 검색하는 타임라인(520)을 따른 시간 인스턴스를 나타낸다.
예시적인 프레임 레이트(505)에서, 픽셀 어레이(410a)에 대한 센서 모듈(415)의 VBI는 [예컨대, 제어기 모듈(475)에 의해] 3개의 시간 단위로 설정되어 있다. 즉, 센서 모듈(415)은 타임라인(520)을 따라 매 3번째 시간 인스턴스마다 픽셀 어레이(410a)로부터 영상을 검색한다. 예시적인 프레임 레이트(505)에 나타낸 바와 같이, 센서 모듈(415)은 시간 인스턴스(525, 540, 555)에서 영상을 검색한다. 따라서, 예시적인 프레임 레이트(505)는 3개의 시간 단위당 하나의 영상인 프레임 레이트를 가진다.
예시적인 프레임 레이트(510)는, VBI가 2개의 시간 단위로 설정되어 있는 것을 제외하고는, 예시적인 프레임 레이트(505)와 유사하다. 따라서, 센서 모듈(415)은 타임라인(520)을 따라 매 2번째 시간 인스턴스마다 픽셀 어레이(410a)로부터 영상을 검색한다. 예시적인 프레임 레이트(510)는 센서 모듈(415)이 시간 인스턴스(525, 535, 545, 555)에서 픽셀 어레이(410a)로부터 영상을 검색하는 것을 나타내고 있다. 예시적인 프레임 레이트(510)의 VBI가 예시적인 프레임 레이트(505)의 VBI보다 작기 때문에, 예시적인 프레임 레이트(510)의 프레임 레이트가 예시적인 프레임 레이트(505)의 프레임 레이트보다 높다.
예시적인 프레임 레이트(515)도 역시, 픽셀 어레이(410a)에 대한 센서 모듈(415)의 VBI가 하나의 시간 단위로 설정되어 있는 것을 제외하고는, 예시적인 프레임 레이트(505)와 유사하다. 따라서, 센서 모듈(415)은 타임라인(520)을 따라 매 시간 인스턴스마다 픽셀 어레이(410a)로부터 영상을 검색하도록 지시받는다. 예시된 바와 같이, 센서 모듈(415)은 시간 인스턴스(525 내지 555)에서 픽셀 어레이(410a)로부터 영상을 검색한다. 예시적인 프레임 레이트(515)의 VBI는 예시적인 프레임 레이트(505, 510)의 VBI보다 작다. 따라서, 예시적인 프레임 레이트(515)의 프레임 레이트는 예시적인 프레임 레이트(505, 510)보다 높다.
2. 2개의 카메라에 대한 VBI의 사용
일부 실시예는 듀얼 카메라 모바일 장치의 양쪽 카메라를 동시에 동작시키고자 할지도 모른다(예컨대, 화상 회의 동안 양쪽 카메라로부터의 비디오를 전송함). 단일 처리 파이프라인을 포함하는 듀얼 카메라 모바일 장치의 다른 실시예는 듀얼 카메라 모바일 장치의 양쪽 카메라를 동시에 동작시키는 상이한 메커니즘들을 제공한다.
하나의 이러한 메커니즘은 각각의 카메라의 VBI를 제어함으로써 양쪽 카메라에 의해 캡처된 영상의 처리를 인터리빙하는 것이다. 즉, 다른쪽 카메라의 VBI 동안 한쪽 카메라에 의해 캡처된 하나 이상의 영상이 캡처되고 처리되며, 그 반대도 마찬가지이다. 상기한 CIPU(400)가 단일 처리 파이프라인(485)을 갖기 때문에, 이 메커니즘은 일부 실시예의 CIPU(400)에서 구현될 수 있다. 이러한 실시예에서, 센서 모듈(415)은 픽셀 어레이들(410a, 410b) 중 한쪽 픽셀 어레이로부터 영상을 검색하고, 검색된 영상이 다른쪽 픽셀 어레이에 대한 센서 모듈(415)의 VBI 동안 CIPU(400)에 의해 처리된다.
각각의 픽셀 어레이에 대한 센서 모듈(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)이 다른쪽 픽셀 어레이로부터 검색하는 하나의 영상마다 한쪽 픽셀 어레이로부터 2개의 영상을 검색한다.
도 6은 상이한 VBI들에 기초한 상이한 인터리빙 프레임 레이트(605, 610, 615)의 예를 개념적으로 나타낸 것이다. 도 6은, 도 6이 타임라인(620)을 따른 13개의 시간 인스턴스(625 내지 685)를 포함하는 것을 제외하고는 도 5와 유사하다. 그에 부가하여, 기타를 들고 있는 사람의 영상은 영상이 한쪽 픽셀 어레이로부터 검색되는 타임라인(620)을 따른 시간 인스턴스를 나타내는 반면, 학사모(즉, 사각모)를 쓰고 있는 사람의 영상은 영상이 다른쪽 픽셀 어레이로부터 검색되는 타임라인(620)을 따른 시간 인스턴스를 나타낸다.
설명을 위해, 기타를 들고 있는 사람의 영상은 듀얼 카메라 모바일 장치의 카메라 센서(405a)에 의해 캡처된 것으로 가정되고, 학사모를 쓰고 있는 사람의 영상은 듀얼 카메라 모바일 장치의 카메라 센서(405b)에 의해 캡처된 것으로 가정된다. 게다가, 도 6에 대해 이제부터 도 4의 센서 모듈(415) 및 픽셀 어레이(410a, 410b)를 참조하여 기술할 것이다.
예시적인 인터리빙 프레임 레이트(605)에서, 픽셀 어레이(410a) 및 픽셀 어레이(410b) 둘 다에 대한 센서 모듈(415)의 VBI는 2개의 시간 단위로 설정되어 있다. 예시적인 인터리빙 프레임 레이트(605)에 예시된 바와 같이, 센서 모듈(415)은 타임라인(620)을 따른 시간 인스턴스(625, 635, 645, 655, 665, 675, 685)에서 픽셀 어레이(410a)로부터 영상을 검색하고, 센서 모듈(415)은 타임라인(620)을 따른 시간 인스턴스(630, 640, 650, 660, 670, 680)에서 픽셀 어레이(410b)로부터 영상을 검색한다. 즉, 센서 모듈(415)은 매 시간 단위마다 픽셀 어레이로부터 교대로 영상을 검색한다.
예시적인 인터리빙 프레임 레이트(610)는, 픽셀 어레이(410a) 및 픽셀 어레이(410b) 둘 다에 대한 센서 모듈(415)의 VBI가 4개의 시간 단위로 설정되어 있는 것을 제외하고는, 예시적인 인터리빙 프레임 레이트(605)와 유사하다. 예시적인 인터리빙 프레임 레이트(610)는 센서 모듈(415)이 타임라인(620)을 따른 시간 인스턴스(625, 645, 665, 685)에서 픽셀 어레이(410a)로부터 영상을 검색하고, 센서 모듈(415)이 타임라인(620)을 따른 시간 인스턴스(635, 655, 675)에서 픽셀 어레이(410b)로부터 영상을 검색하는 것을 나타내고 있다. 예시적인 인터리빙 프레임 레이트(610)의 VBI가 예시적인 인터리빙 프레임 레이트(605)의 VBI보다 크기 때문에, 예시적인 인터리빙 프레임 레이트(610)의 프레임 레이트가 예시적인 인터리빙 프레임 레이트(605)의 프레임 레이트보다 낮다.
예시적인 인터리빙 프레임 레이트(615)는 또한, 픽셀 어레이(410a) 및 픽셀 어레이(410b) 둘 다에 대한 센서 모듈(415)의 VBI가 6개의 시간 단위로 설정되어 있는 것을 제외하고는, 예시적인 인터리빙 프레임 레이트(605)와 유사하다. 도 6에 도시된 바와 같이, 센서 모듈(415)은 타임라인(620)을 따른 시간 인스턴스(625, 655, 685)에서 픽셀 어레이(410a)로부터 영상을 검색하고, 센서 모듈(415)은 타임라인(620)을 따른 시간 인스턴스(640, 670)에서 픽셀 어레이(410b)로부터 영상을 검색한다. 예시적인 인터리빙 프레임 레이트(615)의 VBI는 예시적인 인터리빙 프레임 레이트(605, 610)의 VBI보다 크다. 따라서, 예시적인 인터리빙 프레임 레이트(615)의 프레임 레이트는 예시적인 인터리빙 프레임 레이트(605, 610)보다 낮다.
B. 다수의 파이프라인
도 7은 일부 실시예의 다른 캡처된 영상 처리 유닛(CIPU)(700)을 개념적으로 나타낸 것이다. CIPU(700)는, CIPU(700)가 단일 처리 파이프라인 대신에 2개의 프런트엔드 처리 파이프라인, 저장 장치, 및 백엔드 처리 파이프라인에 의해 구현되는 것을 제외하고는, 전술한 CIPU(400)와 동일한 기능을 수행한다. 그에 따라, CIPU(700)의 기능에 대한 설명은 CIPU(400)의 모듈을 참조하여 기술할 것이다.
도시된 바와 같이, CIPU(700)는 카메라 센서(405a) 및 픽셀 어레이(410a)에 대한 프런트엔드 처리 파이프라인(715), 카메라 센서(405b) 및 픽셀 어레이(410b)에 대한 프런트엔드 처리 파이프라인(720), 저장 장치(725), 제어기 모듈(730), 및 백엔드 처리 파이프라인(735)을 포함하고 있다. 일부 실시예의 카메라 센서(405a, 405b)는 듀얼 카메라 모바일 장치의 카메라의 센서이다.
일부 실시예의 프런트엔드 처리 파이프라인(715, 720)은 CIPU(400)의 영상 처리의 일부분을 수행한다. 그에 따라, 다른 실시예는 CIPU(400)의 다른 수의 모듈을 포함할 수 있다. 예를 들어, 일부 실시예의 프런트엔드 처리 파이프라인(715, 720) 각각은 CIPU(400)의 센서 모듈(415), BPC 모듈(420), LS 모듈(425), 디모자이킹 모듈(430), WB 모듈(435), 및 통계 엔진(465)을 포함하고 있다.
프런트엔드 처리 파이프라인(715, 720)이 동일한 모듈을 가지는 것으로 인해 동일한 유형의 영상 처리를 수행하지만, 각각의 프런트엔드 처리 파이프라인(715, 720)의 각각의 모듈은 CIPU(400)에 대해 앞서 기술한 바와 같이 상이한 레지스터 값들을 통해 상이하게 구성될 수 있다. 더욱이, 각각의 카메라 센서(405a, 405b)가 그 자신의 프런트엔드 처리 파이프라인을 갖기 때문에, 프런트엔드 처리 파이프라인(715, 720)이 서로 독립적으로 영상을 처리할 수 있다. 예를 들어, 프런트엔드 처리 파이프라인(715, 720)은 병렬로(즉, 동시에), 상이한 때에, 및 상이한 레이트로 영상을 처리할 수 있다.
일부 실시예에서, 각각의 프런트엔드 처리 파이프라인(715, 720)은 그의 대응하는 카메라 센서 및 픽셀 어레이로부터 영상을 검색할 수 있다. 예를 들어, 프런트엔드 처리 파이프라인(715)은 픽셀 어레이(410a)로부터 카메라 센서(405a)에 의해 캡처된 영상을 검색하고, 프런트엔드 처리 파이프라인(720)은 픽셀 어레이(410b)로부터 카메라 센서(405b)에 의해 캡처된 영상을 수신한다. 프런트엔드 처리 파이프라인(715, 720) 중 하나가 그의 대응하는 카메라 센서 및 픽셀 어레이로부터 영상을 검색할 때, 그 프런트엔드 처리 파이프라인은 영상을 처리하고 처리된 영상을 저장 장치(725)로 송신한다. 또한, 각각의 프런트엔드 처리 파이프라인(715, 720)은 상기한 바와 같이(예컨대, 각각의 프런트엔드 처리 파이프라인의 통계 엔진을 통해) 제어기 모듈(730)과 통신한다.
일부 실시예의 저장 장치(725)는 처리를 완료하기 위해 백엔드 처리 파이프라인(735)에 대한 부분적으로 처리된 영상을 저장한다. 이들 실시예에서, 저장 장치(725)는 프런트엔드 처리 파이프라인(715, 720)으로부터 부분적으로 처리된 영상을 수신하고, 부분적으로 처리된 영상을 백엔드 처리 파이프라인(735)으로 송신한다. 일부 실시예는 저장 장치(725)를 휘발성 저장 장치[예컨대, 랜덤 액세스 메모리(RAM)]로서 구현하는 반면, 다른 실시예는 저장 장치(725)를 비휘발성 저장 장치(예컨대, 플래시 메모리, 하드 디스크, 광 디스크 등)로서 구현한다. 게다가, 일부 실시예의 저장 장치(725)는 내장형 저장 장치(예컨대, RAM)인 반면, 다른 실시예의 저장 장치(725)는 외장형 저장 장치[예컨대, 콤팩트 플래시(CF) 카드, 보안 디지털(SD) 카드 등]이다.
백엔드 처리 파이프라인(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)로 송신한다.
제어기 모듈(730)은 도 4를 참조하여 상기한 것과 동일한 기능을 수행한다. 도 7에 도시된 바와 같이, 제어기 모듈(730)은 프런트엔드 처리 파이프라인(715, 720) 및 백엔드 처리 파이프라인(735)과 상호작용한다. 일부 실시예에서, 제어기 모듈(730)은 백엔드 처리 파이프라인(735)에 포함되어 있는 반면, 다른 실시예에서, 제어기 모듈(730)은 프런트엔드 처리 파이프라인(715, 720) 중 하나에 포함되어 있다.
도 7에 예시되어 있는 카메라 센서(405a, 405b), 픽셀 어레이(410a, 410b), 프런트엔드 처리 파이프라인(715, 720), 저장 장치(725), 및 백엔드 처리 파이프라인(735)을 참조하여, CIPU(700)의 동작에 대해 이제부터 기술할 것이다. 프런트엔드 처리 파이프라인(715, 720) 중 하나가 그의 대응하는 카메라 센서 및 픽셀 어레이로부터 영상을 검색할 때, 프런트엔드 처리 파이프라인은 영상을 처리하고 부분적으로 처리된 영상을 저장 장치(725)로 송신한다. 예를 들어, 프런트엔드 처리 파이프라인(715)이 픽셀 어레이(410a)로부터 카메라 센서(405a)에 의해 캡처된 영상을 검색할 수 있거나, 프런트엔드 처리 파이프라인(720)이 픽셀 어레이(410b)로부터 카메라 센서(405b)에 의해 캡처된 영상을 검색할 수 있다. 앞서 살펴본 바와 같이, 각각의 프런트엔드 처리 파이프라인(715, 720)은 영상을 병렬로 처리할 수 있다.
백엔드 처리 파이프라인(735)은 저장 장치(725)로부터 부분적으로 처리된 영상을 검색하고, 영상의 영상 처리를 완료하기 위해 부분적으로 처리된 영상을 처리한다. 일부 실시예에서, 백엔드 처리 파이프라인(735)은 선입선출 방식으로 저장 장치(725)에 저장된 영상을 검색하고 처리한다. 환언하면, 저장 장치(725) 내의 특정의 영상은 그 특정의 영상 이전에 수신되어 저장 장치(725)에 저장된 모든 영상 이후에 처리되고, 특정의 영상은 그 특정의 영상 이후에 수신되어 저장 장치(725)에 저장된 영상 이전에 처리된다. 백엔드 처리 파이프라인(735)은 영상을 처리한 후에, 처리된 영상을 CIPU 드라이버(480)로 송신한다.
도 8은 일부 실시예의 다른 캡처된 영상 처리 유닛(CIPU)(800)을 개념적으로 나타낸 것이다. CIPU(800)는, CIPU(800)가 2개의 개별적인 처리 파이프라인 - 각각의 카메라 센서가 그 자신의 개별적인 처리 파이프라인을 가짐 - 에 의해 구현되는 것을 제외하고는, 전술한 CIPU(400)와 동일한 기능을 수행한다. 그에 따라, CIPU(800)의 기능에 대한 설명은 CIPU(400)의 모듈을 참조하여 기술할 것이다.
도시된 바와 같이, CIPU(800)는 카메라 센서(405a) 및 픽셀 어레이(410a)에 대한 처리 파이프라인(815)과, 카메라 센서(405b) 및 픽셀 어레이(410b)에 대한 처리 파이프라인(820)을 포함하고 있다. 일부 실시예의 각각의 처리 파이프라인(815, 820)은 CIPU(400)에 포함된 모든 모듈을 포함하고 있다. 따라서, 이들 실시예의 각각의 처리 파이프라인(815, 820)의 동작은 CIPU(400)의 동작과 동일하다.
각각의 카메라 센서(405a, 405b)가 그 자신의 처리 파이프라인을 갖기 때문에, 처리 파이프라인(815, 820)이 서로 독립적으로 영상을 처리할 수 있다. 예를 들어, 처리 파이프라인(815, 820)은 병렬로(즉, 동시에), 상이한 때에, 및 상이한 레이트로 영상을 처리할 수 있다. 그에 부가하여, 일부 실시예의 각각의 처리 파이프라인(815, 820)이, CIPU(400)를 참조하여 전술한 바와 같이 상이한 레지스터 값들을 통해 상이하게 구성될 수 있다.
일부 실시예에서, CIPU(400)의 다수의 모듈이 모듈들의 동작들 중 일부 또는 전부를 수행하는 하나 이상의 라인/프레임 버퍼를 포함하고 있다. 예를 들어, 일부 실시예의 필터링 모듈(460)은 3x3 저역 통과 필터링을 수행하도록 구현되어 있다. 이러한 실시예에서, 3x3 저역 통과 필터는 3개의 연속적인 라인의 중간 라인에 대해 3x3 저역 통과 필터를 적용하기 위해 영상에서의 3개의 연속적인 라인을 처리한다. 따라서, 이러한 실시예의 필터링 모듈(460)은 3x3 저역 통과 필터링을 수행하기 위해 적어도 3개의 라인/프레임 버퍼를 필요로 한다. CIPU(400) 내의 다른 모듈도 역시, 예를 들어 BPC 모듈(420) 및 LS 모듈(425)처럼 하나 이상의 라인/프레임 버퍼를 포함하고 있다.
CIPU(800)의 처리 파이프라인 각각은, 그의 대응하는 카메라의 특성에 맞춰 영상 처리를 커스터마이즈하기 위해, 상이한 라인/프레임 버퍼 크기를 가질 수 있다. 예를 들어, 듀얼 카메라 모바일 장치의 한쪽 카메라가 2048x1500 픽셀 센서를 가지는 경우, 2048x1500 픽셀 센서의 처리 파이프라인은 2048 픽셀 폭의 라인/프레임 버퍼를 포함할 수 있다. 이와 유사하게, 듀얼 카메라 모바일 장치의 다른쪽 카메라가 640x480 픽셀 센서를 가지는 경우, 640x480 픽셀 센서의 처리 파이프라인은 640 픽셀 폭의 라인/프레임 버퍼를 포함할 수 있다. 즉, 단일 처리 파이프라인의 모듈에 포함되어 있는 라인/프레임 버퍼의 크기가 다른 처리 파이프라인의 모듈에 포함되어 있는 라인/프레임 버퍼의 크기와 상이할 수 있다.
III. 화상 회의
A. 화상 회의 아키텍처
도 9는 일부 실시예의 듀얼 카메라 모바일 장치의 화상 회의 및 처리 모듈(900)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 것이다. 화상 회의 및 처리 모듈(900)은 도 3을 참조하여 전술한 대응하는 모듈 및 드라이버(305, 310, 320)와 유사한 CIPU 드라이버(905), 미디어 교환 모듈(910) 및 인코더 드라이버(920)를 포함한다. 화상 회의 및 처리 모듈(900)은 또한 각종의 화상 회의 기능을 수행하는, 화상 회의 모듈(925), 화상 회의 클라이언트(945), 및 네트워크 인터페이스(950)를 포함하고 있다. 비디오 처리 및 인코딩 모듈(300)처럼, 화상 회의 및 처리 모듈(900)은 듀얼 카메라 모바일 장치의 카메라들로부터 캡처되는 영상을 처리하고 인코딩한다.
도 3을 참조하여 이상에서 기술한 바와 같이, 미디어 교환 모듈(910)은 장치에서의 미디어 콘텐츠의 소비자 및 생산자가 미디어 콘텐츠 및 미디어 콘텐츠의 처리에 관한 명령어를 교환할 수 있게 해 주고, CIPU 드라이버(905)는 캡처된 영상 처리 유닛(CIPU)(955)과의 통신 인터페이스로서 역할하며, 인코더 드라이버(920)는 인코더 하드웨어(960)(예컨대, 인코더 칩, SoC(system on chip) 상의 인코딩 구성요소 등)와의 통신 인터페이스로서 역할한다.
일부 실시예의 화상 회의 모듈(925)은 영상 처리, 화상 회의 관리, 및 네트워킹 등의 다양한 화상 회의 기능을 처리한다. 도시된 바와 같이, 화상 회의 모듈(925)은 미디어 교환 모듈(910), 화상 회의 클라이언트(945), 및 네트워크 인터페이스(950)와 상호작용한다. 일부 실시예에서, 화상 회의 모듈(925)은 화상 회의 클라이언트(945)로부터 명령어를 수신하고 화상 회의 클라이언트로 명령어를 송신한다. 일부 실시예의 화상 회의 모듈(925)은 또한 네트워크 인터페이스(950)를 통해 네트워크[예컨대, LAN(local area network), WLAN(wireless local area network), WAN(wide area network), 네트워크들의 네트워크, CDMA(code division multiple access) 네트워크, GSM 네트워크 등]로 데이터를 송신하고 네트워크로부터 데이터를 수신한다.
화상 회의 모듈(925)은 영상 처리 계층(930), 관리 계층(935), 및 네트워크 계층(940)을 포함한다. 일부 실시예에서, 영상 처리 계층(930)은 화상 회의의 영상에 대해 영상 처리 동작을 수행한다. 예를 들어, 일부 실시예의 영상 처리 계층(930)은 노출 조절, 영상 크기 조정, 원근 보정, 및 동적 범위 조절을 수행하며, 이에 대해서는 이하에서 더욱 상세히 기술한다. 일부 실시예의 영상 처리 계층(930)은 미디어 교환 모듈(910)을 통해 CIPU(955)로부터의 영상에 대한 요청을 송신한다.
일부 실시예의 관리 계층(935)은 화상 회의 모듈(925)의 동작을 제어한다. 예를 들어, 일부 실시예에서, 관리 계층(935)은 듀얼 카메라 모바일 장치의 카메라/카메라들을 초기화하고, 원격 장치에게 전송하기 위해 영상 및 오디오를 처리하며, 원격 장치로부터 수신된 영상 및 오디오를 처리한다. 일부 실시예에서, 관리 계층(935)은 장치에 대한 합성(예컨대, PIP) 디스플레이를 발생한다. 더욱이, 관리 계층(935)은 네트워크 계층(940)으로부터 수신된 네트워킹 보고에 기초하여 화상 회의 모듈(925)의 동작을 변경할 수 있다.
일부 실시예에서, 네트워크 계층(940)은 화상 회의를 위한 네트워킹 기능들 중 일부 또는 전부를 수행한다. 예를 들어, 일부 실시예의 네트워크 계층(940)은 다른 기능들 중에서도 특히, 듀얼 카메라 모바일 장치와 화상 회의의 원격 장치 사이에 네트워크 연결(도시 생략)을 설정하고, 영상을 원격 장치에게 전송하며, 원격 장치로부터 영상을 수신하며, 이에 대해서는 이하에서 기술한다. 그에 부가하여, 네트워크 계층(940)은, 다른 유형의 데이터 중에서도 특히, 패킷 손실, 단방향 대기시간, 및 왕복 지연 시간 등의 네트워킹 데이터를 수신하고, 이러한 데이터를 처리하며, 데이터를 관리 계층(935)에 보고한다.
일부 실시예의 화상 회의 클라이언트(945)는 화상 회의 모듈(925)의 화상 회의 기능을 사용할 수 있는 응용 프로그램[화상 회의 응용 프로그램, VOIP(voice-over-IP) 응용 프로그램(예컨대, Skype), 또는 인스턴트 메시징 응용 프로그램 등]이다. 일부 실시예에서, 화상 회의 클라이언트(945)는 독립형 응용 프로그램인 반면, 다른 실시예에서, 화상 회의 클라이언트(945)는 다른 응용 프로그램에 통합되어 있다.
일부 실시예에서, 네트워크 인터페이스(950)는 화상 회의 모듈(925) 및 화상 회의 클라이언트(945)가 네트워크 인터페이스(950)를 통해 네트워크(예컨대, 셀룰러 네트워크, 근거리 통신망, 무선 네트워크, 네트워크들의 네트워크, 인터넷 등)를 거쳐 데이터를 송신하고 데이터를 수신할 수 있게 해 주는 통신 인터페이스이다. 예를 들어, 화상 회의 모듈(925)이 인터넷 상에서 데이터(예컨대, 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처된 영상)를 다른 장치로 송신하고자 하는 경우, 화상 회의 모듈(925)은 네트워크 인터페이스(950)를 통해 영상을 다른 장치로 송신한다.
B. 화상 회의 설정
도 10은 일부 실시예의 예시적인 화상 회의 요청 메시징 시퀀스(1000)를 개념적으로 나타낸 것이다. 이 도면은 장치(1005) 상에서 실행 중인 화상 회의 클라이언트(1010), 화상 회의 서버(1015), 및 장치(1020) 상에서 실행 중인 화상 회의 클라이언트(1025) 간의 화상 회의 요청 메시징 시퀀스(1000)를 나타내고 있다. 일부 실시예에서, 화상 회의 클라이언트(1010, 1025)는 도 9에 도시된 화상 회의 클라이언트(945)와 동일하다. 도 10에 도시된 바와 같이, 하나의 장치[즉, 장치(1005)]가 화상 회의를 요청하고, 다른 장치[즉, 장치(1020)]가 이러한 요청에 응답한다. 본 출원에 기술되어 있는 듀얼 카메라 모바일 장치는 양쪽 동작을 수행할 수 있다(즉, 요청을 하고 요청에 응답함).
일부 실시예의 화상 회의 서버(1015)는 화상 회의 클라이언트들 간에 메시지를 라우팅한다. 일부 실시예가 하나의 컴퓨팅 장치 상에 화상 회의 서버(1015)를 구현하는 반면, 다른 실시예는 다수의 컴퓨팅 장치 상에 화상 회의 서버(1015)를 구현한다. 일부 실시예에서, 화상 회의 서버는 다수의 회의에 대한 메시지를 한 번에 처리하고 라우팅할 수 있는 공개적으로 액세스가능한 서버이다. 일부 실시예의 각각의 화상 회의 클라이언트(1010, 1025)는 전술한 네트워크 인터페이스(950) 등의 네트워크 인터페이스를 통해 네트워크(예컨대, 셀룰러 네트워크, 근거리 통신망, 무선 네트워크, 네트워크들의 네트워크, 인터넷 등)를 거쳐 화상 회의 서버(1015)와 통신한다.
화상 회의 클라이언트(1010)가 (동작 1에서) 장치(1020)와의 화상 회의를 시작하라는 장치(1005)의 사용자로부터의 요청을 수신할 때, 일부 실시예의 화상 회의 요청 메시징 시퀀스(1000)가 시작한다. 장치(1005)의 사용자가 장치(1005) 상에 디스플레이된 사용자 인터페이스의 사용자 인터페이스(UI) 항목을 선택할 때, 일부 실시예의 화상 회의 클라이언트(1010)는 화상 회의를 시작하라는 요청을 수신한다. 이러한 사용자 인터페이스의 예가 도 11 및 도 14에 예시되어 있으며, 이에 대해서는 이하에서 기술한다.
화상 회의 클라이언트(1010)가 요청을 수신한 후에, 화상 회의 클라이언트(1010)는 (동작 2에서) 사용자로부터의 입력에 기초하여 장치(1020)를 수신자로 나타내고 있는 화상 회의 요청을 화상 회의 서버(1015)로 송신한다. 화상 회의 서버(1015)는 (동작 3에서) 화상 회의 요청을 장치(1020)의 화상 회의 클라이언트(1025)에 전달한다. 일부 실시예에서, 화상 회의 서버(1015)는 푸시 기술을 사용하여 화상 회의 요청을 화상 회의 클라이언트(1025)에 전달한다. 즉, 화상 회의 서버(1015)는 클라이언트(1025)가 임의의 메시지에 대한 요청을 송신하는 것을 기다리기 보다는, 화상 회의 클라이언트(1010)로부터의 수신 시에, 화상 회의 클라이언트(1025)로의 화상 회의 요청의 전송을 개시한다.
일부 실시예의 화상 회의 클라이언트(1025)가 화상 회의 요청을 수신할 때, 장치(1005)의 사용자가 화상 회의를 시작하라는 요청을 송신했다는 것을 장치(1020)의 사용자에게 알려주기 위해 그리고 장치(1020)의 사용자에게 화상 회의 요청을 수락하거나 거절하라고 촉구하기 위해 사용자 인터페이스가 장치(1020) 상에 디스플레이된다. 이러한 사용자 인터페이스의 예가 도 12에 예시되어 있으며, 이에 대해서는 이하에서 기술한다. 일부 실시예에서, 화상 회의 클라이언트(1025)가 (동작 4에서) 장치(1005)의 사용자로부터 화상 회의 요청을 수락하라는 요청을 수신할 때, 화상 회의 클라이언트(1025)는 (동작 5에서) 화상 회의 수락을 화상 회의 서버(1015)로 송신한다. 장치(1020)의 사용자가 예를 들어 도 12에 예시된 사용자 인터페이스의 사용자 인터페이스 항목을 선택할 때, 일부 실시예의 화상 회의 클라이언트(1025)는 화상 회의 요청을 수락하라는 요청을 수신한다.
화상 회의 서버(1015)가 화상 회의 클라이언트(1025)로부터 화상 회의 수락을 수신한 후에, 화상 회의 서버(1015)는 (동작 6에서) 화상 회의 수락을 화상 회의 클라이언트(1010)에 전달한다. 화상 회의 서버(1015)의 일부 실시예는 전술한 푸시 기술을 사용하여 화상 회의 수락을 화상 회의 클라이언트(1010)에 전달한다.
화상 회의 수락을 수신할 시에, 일부 실시예는 (동작 7에서) 장치(1005)와 장치(1020) 사이의 화상 회의를 설정한다. 상이한 실시예들은 상이한 방식들로 화상 회의를 설정한다. 예를 들어, 일부 실시예의 화상 회의 설정은 장치(1005)와 장치(1020) 사이의 연결을 협상하는 것, 비디오를 인코딩할 비트 레이트를 결정하는 것, 및 장치(1005)와 장치(1020) 사이에서 비디오를 교환하는 것을 포함한다.
상기 예에서, 장치(1020)의 사용자는 화상 회의 요청을 수락한다. 일부 실시예에서, 장치(1020)는 UI를 디스플레이하지 않고서 (예컨대, 장치의 기본 설정을 통해) 들어오는 화상 회의 요청을 자동으로 수락하도록 구성되어 있을 수 있다. 더욱이, 장치(1020)의 사용자는 또한 (동작 4에서) [예컨대, 장치(1020) 상에 디스플레이되는 사용자 인터페이스의 사용자 인터페이스 항목을 선택함으로써] 화상 회의 요청을 거부할 수 있다. 화상 회의 수락을 송신하는 대신에, 화상 회의 클라이언트(1025)는 화상 회의 거부를 화상 회의 서버(1015)로 송신하고, 화상 회의 서버는 화상 회의 거부를 화상 회의 클라이언트(1010)에 전달한다. 그러면, 화상 회의가 결코 설정되지 않는다.
1. 화상 회의 설정 사용자 인터페이스
일부 실시예에서, 진행 중인 전화 통화에 기초하여 화상 회의가 개시된다. 즉, 모바일 장치의 사용자가 제2 사용자와 전화 통화를 하고 있는 동안, 사용자가 상대방 당사자의 허가를 받아 전화 통화를 화상 회의로 전환할 수 있다. 본 발명의 일부 실시예에서, 도 11은 듀얼 카메라 핸드헬드 모바일 장치(1100)에 의한 이러한 화상 회의의 시작을 나타낸 것이다. 이 도면은 화상 회의의 시작을 장치(1100)의 사용자 인터페이스("UI")(1105)의 5개의 동작 스테이지(1110, 1115, 1120, 1125, 1130)로 나타내고 있다.
도 11에 도시된 바와 같이, UI(1105)는 이름 필드(1135), 선택 메뉴(1140), 및 선택가능한 UI 항목(1145)을 포함하고 있다. 이름 필드(1135)는 사용자가 화상 회의를 요청하고자 하는 전화 통화의 상대방 쪽에 있는 사람의 이름을 디스플레이한다. 이 예에서, 선택가능한 UI 항목(1145)(선택가능한 버튼으로 구현될 수 있음)은 사용자가 전화 통화를 종료시키기 위한 선택가능한 통화 종료(End Call) 옵션을 제공한다. 선택 메뉴(1140)는 스피커폰 항목(1142), 음소거 항목(1144), 키패드 항목(1146), 전화번호부 항목(1148), 홀드 항목(1152), 화상 회의 항목(1154), 기타 등등의 선택가능한 UI 항목의 메뉴를 디스플레이한다. 상이한 실시예들은 상이한 방식들로 선택 메뉴를 디스플레이한다. 도 11에 예시된 실시예에서, 선택 메뉴(1140)는 몇개의 똑같은 크기의 아이콘(이들 각각은 상이한 동작을 나타냄)을 포함하고 있다. 다른 실시예는 스크롤가능한 메뉴를 제공하거나, (예컨대, 항목을 더 크게 함으로써) 특정의 항목에 우선순위를 부여한다.
UI(1105)의 동작에 대해 이제부터 도 11에 예시되어 있는 5개의 스테이지(1110, 1115, 1120, 1125, 1130) 동안의 이 UI의 상태를 참조하여 기술할 것이다. 제1 스테이지(1110)에서, 핸드헬드 모바일 장치 사용자와 Nancy Jones 사이에 전화 통화가 설정되었다. 제2 스테이지(1115)는 사용자가 화상 회의 도구를 활성화시키기 위해 선택가능한 화상 회의 옵션(1154)을 [예컨대, 손가락(1150)에 의한 한 손가락 탭핑을 통해] 선택한 후의 UI(1105)를 디스플레이한다. 이 예에서, 화상 회의 옵션(1154)(선택가능한 아이콘으로서 구현될 수 있음)은 사용자가 전화 통화 동안 화상 회의를 시작할 수 있게 해 준다. 제2 스테이지에서, 화상 회의 도구가 활성화되었다는 것을 알려주기 위해 화상 회의 옵션(1154)이 하이라이트된다. 상이한 실시예들은 이러한 선택을 상이한 방식들로(예컨대, 항목의 경계 또는 텍스트를 하이라이트함으로써) 알려줄 수 있다.
제3 스테이지(1120)는 장치(1100)가 화상 회의 옵션(1154)의 선택에 의해 화상 회의 프로세스를 시작한 후의 UI(1105)를 디스플레이한다. 제3 스테이지는 장치가 화상 회의가 설정되기를 기다리고 있는 동안의(예컨대, 장치가 통화의 상대방 쪽의 장치가 화상 회의를 수락하거나 거부하는 것을 기다리고 있는 동안의) 과도적 홀드(transitional hold) 스테이지이다. 제3 스테이지(1120)에서, 화상 회의 연결이 설정되고 있는 동안, 장치(1100)의 사용자는 여전히 상대방 장치의 사용자(즉, Nancy Jones)와 대화하고 있을 수 있다. 그에 부가하여, 일부 실시예는, 화상 회의 요청을 취소하기 위해 UI(1105) 상에 디스플레이되는 선택가능한 UI 항목(도시 생략)을 선택함으로써, 장치(1100)의 사용자가 제3 스테이지(1120)에서의 화상 회의 요청을 취소할 수 있게 해 준다. 이 홀드 스테이지 동안, 상이한 실시예들은 대기 상태를 나타내기 위해 UI(1105)에서의 상이한 디스플레이들을 사용한다.
도 11에 도시된 바와 같이, 일부 실시예에서, 제3 스테이지의 대기 상태는 장치(1100)에 의해 캡처되고 있는 비디오의 하부에 있는 "미리보기(Preview)" 표기와 함께, 그 비디오의 전체 화면 디스플레이로 예시되어 있다. 구체적으로는, 도 11에서, 제3 스테이지(1120)는 장치의 카메라에 의해 캡처된 비디오의 전체 화면 표시를 UI(1105)의 디스플레이 영역(1160)에 디스플레이함으로써 화상 회의 프로세스의 시작을 나타내고 있다. 일부 실시예에서는, 전방 카메라가 화상 회의의 시작에서 장치에 의해 선택되는 디폴트 카메라이다. 종종, 이 전방 카메라는 화상 회의의 시작 시에 장치의 사용자를 가리킨다. 그에 따라, 도 11에 예시된 예에서, 제3 스테이지(1120)는 장치(1100)가 장치(1100)의 사용자의 전체 화면 비디오를 제시하는 것으로 나타내고 있다. 장치의 대기 상태는 비디오 아래의 "미리보기" 표시(1165)가 제3 스테이지(1120) 동안 디스플레이 영역(1160)에 나타나는 것에 의해 추가로 하이라이트된다.
일부 실시예에서, 과도적 제3 홀드 스테이지(1120)가 다른 방식으로 표현될 수 있다. 예를 들어, 일부 실시예는 장치(1100)의 사용자가 후방 카메라를 화상 회의를 시작하는 카메라로서 선택할 수 있게 해 준다. 이 선택을 가능하게 해주기 위해, 일부 실시예는 사용자가 (예컨대, 메뉴 기본 설정을 통해) 후방 카메라를 화상 회의를 시작하는 디폴트 카메라로서 지정할 수 있게 해 주고 및/또는 사용자가 화상 회의 옵션(1154)을 선택한 후에 사용자가 후방 및 전방 카메라를 디스플레이하는 메뉴로부터 후방 카메라를 선택할 수 있게 해 준다. 이들 상황 중 어느 하나에서, UI(1105)[예컨대, 디스플레이 영역(1160)]는 제3 홀드 스테이지(1120) 동안 후방 카메라에 의해 포착된 비디오를 디스플레이한다.
또한, 다른 실시예는 장치(1100)에 의해 캡처된 작은 버전의 비디오를 디스플레이하는 것, 장치(1100) 상에 저장되어 있는 정지 영상을 디스플레이하는 것, 장치의 대기 상태를 하이라이트하라는 메시지를 제공하는 것(예컨대, "회의 설정중"을 보여줌으로써), "미리보기" 표시를 디스플레이하지 않는 것 등에 의해 화상 회의 도구의 활성화를 나타낼 수 있다. 또한, 제3 스테이지(1120)에서, 일부 실시예의 UI(1105)는, 사용자가 이 스테이지에서 (예컨대, 사용자가 원격 사용자가 그의 요청에 응답하기를 기다리고 있는 동안) 화상 회의에 들어가지 않기로 결정하는 경우, 사용자가 화상 회의에 들어가는 것을 취소하고 다시 전화 통화로 돌아갈 수 있게 해 주는 종료(End) 버튼(도시 생략)을 제공한다.
제4 스테이지(1125)는 원격 사용자가 화상 회의 요청을 수락하고 화상 회의 연결이 설정된 후의 과도적 상태에 있는 UI(1105)를 나타내고 있다. 이 과도적 상태에서, 로컬 사용자의 비디오(이 예에서 전방 카메라에 의해 캡처되고 있음)를 디스플레이하는 디스플레이 영역(1160)은, 화살표(1175)로 나타낸 바와 같이, 점차적으로 크기가 감소된다(즉, 점차적으로 축소된다). UI(1105)가 디스플레이 영역(1160) 후방에 원격 장치의 카메라로부터의 비디오를 포함하는 디스플레이 영역(1170)[예컨대, 디스플레이 창(1170)]을 디스플레이할 수 있도록, 디스플레이 영역(1160)(즉, 로컬 사용자의 비디오)이 축소된다. 환언하면, 로컬 사용자의 비디오(1160)의 축소는 로컬 사용자의 비디오의 전경 삽입 디스플레이(1160) 및 원격 사용자의 배경 메인 디스플레이(1170)를 갖는 PIP 디스플레이(1180)를 생성한다. 이 예에서, 배경 메인 디스플레이(1170)는 원격 장치의 전방 카메라에 의해 그의 비디오가 캡처되고 있는 여성(예컨대, 원격 장치의 사용자인 Nancy Jones) 또는 원격 장치의 후방 카메라에 의해 비디오가 캡처되고 있는 여성(예컨대, 그의 비디오가 Nancy Jones에 의해 캡처되고 있는 여성)의 비디오를 제시한다. 당업자라면 도 11에 도시된 과도적 제4 스테이지가 일부 실시예에 의해 사용되는 한 예시적인 방식에 불과하다는 것과, 다른 실시예가 과도적 제4 스테이지를 다른 방식으로 애니메이션화할 수 있다는 것을 잘 알 것이다.
제4 스테이지(1125)는 또한 선택가능한 UI 항목(1132)을 하부 디스플레이 영역(1155)에 나타내고 있다. 선택가능한 UI 항목(1132)(선택가능한 버튼으로 구현될 수 있음)은 PIP 디스플레이(1180) 아래에 선택가능한 회의 종료(End Conference) 옵션(1132)을 제공한다. 사용자는 (예컨대, 한 손가락 탭핑을 통해) 화상 회의를 종료시키기 위해 이 회의 종료 옵션(1132)을 선택할 수 있다. 상이한 실시예들은, 모바일 장치 상의 스위치를 토글시키는 것, 음성 명령을 제공하는 것, 기타 등등에 의해, 사용자가 회의를 상이한 방식들로 종료시킬 수 있게 해 줄 수 있다. 더욱이, 상이한 실시예들은 회의 종료 옵션(1132)이 화상 회의 동안 서서히 사라질 수 있게 해 줄 수 있고, 그로써 PIP 디스플레이(1180)가 전체 디스플레이 영역(1185)을 차지할 수 있게 해 준다. 그러면, 회의 종료 옵션(1132)은 한 손가락 탭핑으로 디스플레이 영역(1185)의 하부에 다시 나타나서, 회의 종료 옵션(1132)에의 사용자 액세스를 제공할 수 있다. 일부 실시예에서, 디스플레이 영역(1155)의 레이아웃이 디스플레이 영역(1155)과 동일하고, 이에 대해서는 이하에서 더욱 상세히 기술한다.
제5 스테이지(1130)는 제4 과도적 스테이지(1125)의 애니메이션화가 종료된 후의 UI(1105)를 나타내고 있다. 구체적으로는, 제5 스테이지(1130)는 화상 회의 동안 UI(1105)에 의해 제시되는 PIP 디스플레이(1180)를 나타내고 있다. 앞서 언급한 바와 같이, 이 PIP 디스플레이(1180)는 2개의 비디오 디스플레이 - 원격 카메라로부터의 큰 배경 디스플레이(1170) 및 로컬 카메라로부터의 작은 전경 삽입 디스플레이(1160) - 를 포함한다.
이 PIP 디스플레이(1180)는 원격 및 로컬 장치에 의해 캡처되는 비디오의 합성 뷰를 제시하는 한 방식에 불과하다. 이 합성 뷰에 부가하여, 일부 실시예의 장치는 다른 합성 뷰를 제공한다. 예를 들어, 원격 사용자의 큰 배경 디스플레이(1170)를 갖는 대신에, 큰 배경 디스플레이(1170)가 로컬 사용자의 것일 수 있고, 작은 전경 삽입 디스플레이(1160)가 원격 사용자의 것일 수 있다. 이하에서 더 기술하는 바와 같이, 일부 실시예는 사용자가 화상 회의 동안 PIP 디스플레이(1180)에서의 삽입 뷰 및 메인 뷰에 대한 카메라로서 로컬 카메라 및/또는 원격 카메라 사이에서 전환할 수 있게 해 준다.
또한, 일부 실시예는 로컬 및 원격 비디오가 UI(1105)에서 2개의 나란히 있는 디스플레이 영역(예컨대, 좌측 및 우측 디스플레이 창, 또는 상부 및 하부 디스플레이 창)에 또는 2개의 대각선으로 배열된 디스플레이 영역에 나타날 수 있게 해 준다. PIP 디스플레이의 방식 또는 디폴트 디스플레이 모드가 일부 실시예에서 장치의 기본 설정을 통해 또는 사용자가 화상 회의 동안 선택할 수 있는 컨트롤을 통해 사용자에 의해 지정될 수 있으며, 이에 대해서는 이하에서 추가로 기술한다.
도 11의 장치(1100)의 사용자가 원격 사용자를 화상 회의에 초대할 때, 원격 사용자는 그 초대를 수락하거나 거부할 수 있다. 도 12는 원격 사용자의 장치에서 화상 회의 초대를 제시하고 수락하는 동작 시퀀스를 보여주는 6개의 상이한 스테이지(1210, 1215, 1220, 1225, 1230, 1235)에서의 원격 사용자의 장치(1200)의 UI(1205)를 나타내고 있다. 이하의 UI(1205)의 설명에서는, 장치(1200)(즉, 화상 회의 요청을 수신하는 장치)의 사용자를 초대 수신자라고 하고, 장치(1100)(즉, 화상 회의 요청을 송신하는 장치)의 사용자를 초대 요청자라고 한다. 또한, 이 예에서, 초대 수신자의 장치(1200)는 초대 요청자의 장치처럼 듀얼 카메라 장치인 것으로 가정된다. 그렇지만, 다른 예에서, 이들 장치 중 하나 또는 둘 다가 단일 카메라 장치이다.
제1 스테이지(1210)는 초대 수신자가 초대 요청자인 John Smith로부터 화상 회의에의 초대를 수신할 때의 UI(1205)를 나타내고 있다. 도 12에 도시된 바와 같이, 이 스테이지에서의 UI(1205)는 이름 필드(1235), 메시지 필드(1240), 및 2개의 선택가능한 UI 항목(1245, 1250)을 포함하고 있다. 이름 필드(1235)는 화상 회의를 요청하고 있는 사람의 이름을 디스플레이한다. 일부 실시예에서, 이름 필드(1235)는 사람의 이름 대신에, 화상 회의를 요청하고 있는 사람의 전화 번호를 디스플레이한다. 메시지 필드(1240)는 초대 요청자로부터 초대 수신자로의 초대장을 디스플레이한다. 이 예에서, 필드(1240)에서의 "화상 회의 초대(Video Conference Invitation)"는 초대 요청자가 초대 수신자와의 화상 회의를 요청하고 있다는 것을 나타낸다. 선택가능한 UI 항목(1245, 1250)(선택가능한 버튼으로서 구현될 수 있음)은 초대 수신자가 초대를 거부하거나 수락하기 위해 사용하는 선택가능한 요청 거부(Deny Request) 및 요청 수락(Accept Request) 옵션(1245, 1250)을 제공한다. 상이한 실시예들은 이들 옵션을 상이한 방식들로 디스플레이하고 및/또는 기타 옵션을 디스플레이할 수 있다.
메시지 필드(1240)에 디스플레이되는 "화상 회의 초대" 표기를 볼 때, 초대 수신자는 UI에서 요청 거부 옵션(1245) 또는 요청 수락 옵션(1250)을 선택함으로써 각각 요청을 거부하거나 수락할 수 있다. 제2 스테이지(1215)는, 도 12에 도시된 예에서, 사용자가 요청 수락 옵션(1250)을 선택하는 것을 나타내고 있다. 이 예에서, 이 선택이 요청 수락 옵션(1250) 상에서의 사용자의 손가락 탭핑에 의해 행해지고, 이 선택은 이 옵션(1250)을 하이라이트함으로써 표시된다. 일부 실시예에서, 요청 수락 또는 요청 거부 옵션(1245, 1250)을 선택(예컨대, 더블 탭핑 등)하여 선택을 나타내는(예컨대, UI 항목의 경계 또는 텍스트를 하이라이트함) 다른 기술이 제공된다.
제3 스테이지(1220)는 초대 수신자가 화상 회의에 참여하기로 동의한 후의 UI(1205)를 디스플레이한다. 이 스테이지에서, UI(1205)는 원격 장치의 전방 카메라로부터의 비디오의 전체 화면 표시를 디스플레이 영역(1244)에 보여주는 미리보기 모드에 들어간다. 이 경우에서의 전방 카메라는 원격 장치의 사용자(즉, 이 예에서, Nancy Jones)를 가리키고 있다. 그에 따라, 이 미리보기 모드에서 그녀의 영상이 보여진다. 이 미리보기 모드는, 화상 회의가 시작되기 전에(예컨대, 비디오의 실제 전송이 시작되기 전에), 초대 수신자가 자신의 비디오가 적절히 디스플레이되도록 하고 자신의 모습에 만족하도록 할 수 있게 해 준다. 일부 실시예에서, 초대 수신자가 미리보기 모드에 있다는 것을 알려주기 위해, "미리보기" 표기 등의 표기가 디스플레이 영역(1244) 아래에 디스플레이될 수 있다.
일부 실시예는 초대 수신자가 후방 카메라를 화상 회의를 시작하기 위한 디폴트 카메라로서 선택할 수 있게 해 주거나, 화상 회의의 시작 시에 전방 또는 후방 카메라를 선택할 수 있게 해 주며, 이에 대해서는 이하에서 더 기술한다. 또한, 다른 실시예는 초대 수신자의 미리보기 디스플레이를 다른 방식으로[예컨대, 디스플레이 영역(1244)의 코너에 위치되어 있는 작은 영상에] 디스플레이한다. 또 다른 실시예는 이 미리보기 모드를 포함하지 않고, 오히려 초대 수신자가 요청을 수락한 직후에 화상 회의를 시작한다.
제3 스테이지에서, UI(1205)는 2개의 선택가능한 UI 항목(1275, 1246)을 보여주며, 이들 중 한쪽 UI 항목은 디스플레이 영역(1244)과 겹치는 반면, 다른쪽 UI 항목은 이 디스플레이 영역(1244) 아래에 있다. 선택가능한 UI 항목(1275)은 사용자가 화상 회의를 시작하기 위해 선택할 수 있는 수락(Accept) 버튼(1275)이다. 선택가능한 UI 항목(1246)은 초대 수신자가 이 스테이지에서 화상 회의에 참여하지 않기로 결정하는 경우에 선택할 수 있는 종료(End) 버튼(1246)이다.
제4 스테이지(1225)는 초대 수신자가 수락 버튼(1275)을 선택한 후의 UI(1205)를 디스플레이한다. 이 예에서, 초대 수신자가 화상 회의를 시작한 준비가 되어 있다는 것을 나타내기 위해 수락 버튼(1275)이 하이라이트된다. 상이한 실시예들에서, 이러한 선택이 상이한 방식들로 나타내어질 수 있다.
제5 스테이지(1230)는 초대 수신자가 화상 회의 요청을 수락한 후의 과도적 상태에 있는 UI(1205)를 나타내고 있다. 이 과도적 스테이지에서, 초대 수신자의 비디오(이 예에서 전방 카메라에 의해 캡처되고 있음)를 디스플레이하는 디스플레이 영역(1244)은 화살표(1260)로 나타낸 바와 같이 점차적으로 크기가 감소된다(즉, 점차적으로 축소된다). UI(1205)가 디스플레이 영역(1244) 후방에 초대 요청자의 카메라로부터의 비디오를 포함하는 디스플레이 영역(1265)[예컨대, 디스플레이 창(1265)]을 디스플레이할 수 있도록, 초대 수신자의 비디오가 축소된다. 환언하면, 초대 수신자의 비디오의 축소는 초대 수신자의 비디오의 전경 삽입 디스플레이 영역(1244) 및 초대 요청자의 배경 메인 디스플레이(1265)를 갖는 PIP 디스플레이(1280)를 생성한다.
이 예에서, 배경 메인 디스플레이(1265)는 그의 비디오가 로컬 장치의 전방 카메라에 의해 캡처되고 있는 남자[즉, 로컬 장치(1100)의 사용자인 John Smith]의 비디오를 표시한다. 다른 예에서, 이 비디오는 그의 비디오가 로컬 장치의 후방 카메라에 의해 캡처되고 있는 남자(예컨대, 그의 비디오가 John Smith에 의해 캡처되고 있는 남자)의 비디오였을 수 있다. 상이한 실시예들은 이 과도적 제5 스테이지를 상이한 방식들로 애니메이션화할 수 있다.
제5 스테이지(1230)에서의 UI는 또한 화상 회의 동안 상대방 사용자의 오디오를 음소거시키는 선택가능한 UI 항목(1285)[예컨대, 음소거 버튼(1285)], 화상 회의를 종료시키는 선택가능한 UI 항목(1287)[예컨대, 회의 종료 버튼(1287)], 및 카메라를 전환시키는 선택가능한 UI 항목(1289)[예컨대, 카메라 전환 버튼(1289)]을 포함하는 디스플레이 영역(1155)(예컨대, 도구모음 또는 메뉴 모음)을 디스플레이하며, 이에 대해서는 이하에서 더 상세히 기술한다. 그에 따라, 초대 수신자는 화상 회의 동안 원하는 동작을 수행하기 위해 선택가능한 UI 항목(1285 내지 1289) 중 임의의 것을 (예컨대, 한 손가락 탭핑을 통해) 선택할 수 있다. 상이한 실시예들은 초대 수신자가 그 동작들 중 임의의 것을 상이한 방식들로(예컨대, 모바일 장치 상의 스위치를 토글시키는 것, 음성 명령을 제공하는 것, 기타 등등에 의해) 수행할 수 있게 해 줄 수 있다.
도 12가 디스플레이 영역(1155)에 대한 예시적인 레이아웃을 나타내고 있지만, 일부 실시예는 화상 회의를 종료시키는 선택가능한 회의 종료(End Conference) UI 항목(1132)만을 포함하는 도 11의 디스플레이 영역(1155)의 레이아웃 등의 디스플레이 영역(1155)의 다른 레이아웃을 제공한다. 디스플레이 영역(1155)의 다른 레이아웃은 상이한 기능들을 수행하는 임의의 수의 상이한 선택가능한 UI 항목을 포함할 수 있다. 더욱이, 제5 스테이지(1230)는 UI(1205)의 하부에 디스플레이되는 디스플레이 영역(1155)을 나타내고 있다. 디스플레이 영역(1155)의 상이한 실시예들은 UI(1205) 내의 상이한 위치들에 디스플레이될 수 있고 및/또는 상이한 형상들로 정의될 수 있다.
도 12는 디스플레이 영역(1155)을 정적 디스플레이 영역으로서 나타내고 있다[즉, 디스플레이 영역(1155)이 항상 디스플레이된다]. 그렇지만, 일부 실시예에서, 디스플레이 영역(1155)은 동적 디스플레이 영역이다. 이러한 실시예들 중 일부 실시예에서, 디스플레이 영역(1155)은 보통 디스플레이되지 않는다. 오히려, 트리거링 이벤트[예컨대, 디스플레이 영역(1280)을 한번 탭핑하는 것 등의 사용자 선택, 음성 명령 등]가 수신될 때 디스플레이 영역(1155)이 디스플레이된다. 사용자 선택이 수신된 후에[예컨대, 선택가능한 음소거 UI 항목(1285)을 선택한 후에] 또는 모바일 장치 또는 화상 회의 응용 프로그램의 기본 설정을 통해 사용자에 의해 지정될 수 있는 정의된 양의 시간(예컨대, 3초) 후에 디스플레이 영역(1155)이 사라진다. 이러한 실시예들 중 일부 실시예에서, 화상 회의가 시작된 후에 디스플레이 영역(1155)이 자동으로 디스플레이되고, 앞서 언급한 것과 동일한 방식으로 사라진다.
제6 스테이지(1235)는 제5 과도적 스테이지의 애니메이션화가 종료된 후의 UI(1205)를 나타내고 있다. 구체적으로는, 제6 스테이지는 화상 회의 동안 UI(1205)에 의해 제시되는 PIP 디스플레이(1280)를 나타내고 있다. 앞서 언급한 바와 같이, 이 PIP 디스플레이(1280)는 2개의 비디오 디스플레이 - 로컬 카메라로부터의 큰 배경 디스플레이(1265) 및 원격 카메라로부터의 작은 전경 삽입 디스플레이(1244) - 를 포함한다. 이 PIP 디스플레이(1280)는 원격 및 로컬 장치에 의해 캡처되는 비디오의 합성 뷰를 제시하는 한 방식에 불과하다. 이 합성 뷰에 부가하여, 일부 실시예의 장치는 다른 합성 뷰를 제공한다. 예를 들어, 초대 수신자의 큰 배경 디스플레이를 갖는 대신에, 큰 배경 디스플레이가 초대 요청자의 것일 수 있고, 작은 전경 삽입 디스플레이가 초대 수신자의 것일 수 있다. 이하에서 더 기술하는 바와 같이, 일부 실시예는 로컬 카메라 및 원격 카메라를 전환가능하게 디스플레이하기 위해 사용자가 PIP 디스플레이에서의 삽입 뷰 및 메인 뷰를 제어할 수 있게 해 준다. 또한, 일부 실시예는 로컬 및 원격 비디오가 UI(1205)에서 2개의 나란히 있는 디스플레이 영역(예컨대, 좌측 및 우측 디스플레이 창, 또는 상부 및 하부 디스플레이 창)에 또는 2개의 대각선으로 배열된 디스플레이 영역에 나타날 수 있게 해 준다. PIP 디스플레이의 방식 또는 디폴트 디스플레이 모드가 일부 실시예에서 장치의 기본 설정을 통해 또는 사용자가 화상 회의 동안 선택할 수 있는 컨트롤을 통해 사용자에 의해 지정될 수 있으며, 이에 대해서는 이하에서 추가로 기술한다.
도 12가 화상 회의 초대를 제시하고 수락하는 동작의 시퀀스를 6개의 상이한 동작 스테이지로 나타내고 있지만, 일부 실시예는 그 동작을 더 적은 수의 스테이지로 구현할 수 있다. 예를 들어, 이러한 실시예들 중 일부 실시예는 제3 및 제4 스테이지(1220, 1225)를 제시하는 것을 생략할 수 있고, 사용자가 요청 수락 옵션(1250)을 선택한 후에, 제2 스테이지(1215)로부터 제5 스테이지(1230)로 갈 수 있다. 그 동작(즉, 화상 회의 초대를 제시하고 수락하는 것)을 더 적은 수의 스테이지로 구현하는 다른 실시예는 제1 및 제2 스테이지(1210, 1215)를 생략할 수 있고, 초대 수신자가 초대 요청자로부터 화상 회의에의 초대를 수신할 때 사용자에게 제3 스테이지(1220)를 제시할 수 있다.
도 13은 제1 및 제3 스테이지를 하나의 스테이지로 결합하고 제2 및 제4 스테이지를 하나의 스테이지로 결합함으로써 더 적은 수의 스테이지로 도 12에 예시된 동작을 수행하는 예를 나타낸 것이다. 상세하게는, 이 도면은 5개의 상이한 스테이지(1390, 1392, 1394, 1230, 1235)에서의 원격 사용자의 장치(1200)의 UI(1205)를 나타내고 있다. 제1 스테이지(1390)는, 전화 통화의 상대방 쪽의 사람의 이름을 나타내기 위해 이름 필드(1235)가 이름 "John Smith"를 디스플레이하는 것을 제외하고는, 스테이지(1110)와 유사하다. 즉, 원격 모바일 장치의 사용자와 로컬 장치의 사용자(즉, 이 예에서 John Smith) 사이에 전화 통화가 설정되었다. 제2 및 제3 스테이지(1392, 1394)는, 제2 및 제3 스테이지(1392, 1394)가 또한 원격 모바일 장치의 사용자(즉, 이 예에서 Nancy Jones)의 미리보기를 보여준다는 것을 제외하고는, 도 12의 제1 및 제2 스테이지(1210, 1215)와 유사하다. 제4 및 제5 스테이지(1230, 1235)는 도 12의 제5 및 제6 스테이지(1230, 1235)와 동일하다.
전화 통화 동안 선택가능한 옵션을 통해 화상 회의 도구를 활성화시키는 것에 부가하여, 일부 실시예는 듀얼 카메라 장치의 사용자가, 먼저 전화 통화를 할 필요가 없이, 곧바로 화상 회의를 개시할 수 있게 해 준다. 도 14는 화상 회의를 개시하는 다른 이러한 대안의 방법을 나타낸 것이다. 이 도면은 화상 회의를 시작하기 위한 대안의 동작 시퀀스를 보여주는 7개의 상이한 스테이지(1410, 1415, 1420, 1425, 1430, 1435, 1440)에서의 UI(1405)를 나타내고 있다.
제1 스테이지(1410)에서, 사용자는 전화를 걸 연락처를 찾는 방법과 유사하게, 화상 회의에 함께 참여하고자 하는 사람을 찾기 위해 이 모바일 장치 상에서 연락처 목록을 탐색하고 있다. 제2 스테이지(1415)에서, 사용자는 [예컨대, 사람의 이름(1455) 상에서의 한 손가락 탭핑(1460)을 통해] 함께 화상 회의를 하고자 하는 사람(1455)을 선택한다. 이 선택은 연락처의 정보 및 다양한 사용자 선택가능한 옵션을 디스플레이하도록 UI(1405)를 트리거한다. 이 예에서, 그 사람이 사용자가 함께 화상 회의를 하고자 하는 사람이라는 것을 나타내기 위해 Jason의 이름(1455)이 하이라이트된다. 상이한 실시예들은 이러한 선택을 상이한 방식들로 나타낼 수 있다. 제2 스테이지(1415)가 장치(1400)의 사용자가 함께 화상 회의를 하고자 하는 사람을 연락처 목록을 통해 선택할 수 있게 해 주지만, 일부 실시예는 사용자가 장치(1400)의 사용자가 최근에 함께 화상 회의 또는 전화 통화를 한 사람의 특정의 번호 또는 이름을 열거하고 있는 "최근(Recents)" 통화 내역을 통해 사람을 선택할 수 있게 해 준다.
제3 스테이지(1420)에서, UI(1405)는 사람의 이름(1455)이 선택된 후에, 선택된 사람의 정보(1462) 및 다양한 선택가능한 UI 항목(1468, 1472, 1470)을 디스플레이한다. 이 예에서, (선택가능한 아이콘 또는 버튼으로 구현될 수 있는) 다양한 선택가능한 UI 항목들 중 하나(1472)는 화상 회의 도구를 제공한다. 화상 회의 옵션(1472)은 사용자가 연락처(1466)에 의해 식별된 사람을 화상 회의에 초대할 수 있게 해 준다. 상이한 실시예들은 정보(1462) 및 선택가능한 UI 항목(1468, 1472, 1470)을 상이한 방식들로(예컨대, 다른 배열로) 디스플레이한다.
제4 스테이지(1425)는 사용자가 (예컨대, 한 손가락 탭핑을 통해) 화상 회의 옵션(1472)을 선택하는 것을 나타내고 있다. 이 예에서, 화상 회의 도구(1472)가 활성화되었다는 것을 나타내기 위해 화상 회의 옵션(1472)이 하이라이트된다. 상이한 실시예들에서, 이러한 선택이 상이한 방식들로(예컨대, 선택된 아이콘의 텍스트 또는 경계를 하이라이트함으로써) 나타내어질 수 있다.
제5, 제6 및 제7 스테이지(1430, 1435, 1440)는 도 11에 예시된 제3, 제4 및 제5 스테이지(1120, 1125, 1130)와 유사하고, 그 스테이지들에 대한 설명을 참조하면 이해될 수 있다. 간략히 말하면, 제5 스테이지(1430)는 원격 사용자가 화상 회의에의 초대에 응답하는 것을 기다리고 있는 과도적 홀드 스테이지를 나타낸다. 제6 스테이지(1435)는, 원격 사용자가 화상 회의 요청을 수락한 후에, (로컬 사용자의 비디오를 디스플레이하는) 디스플레이 영역(1480)이 점차적으로 크기가 감소되고 따라서 UI(1405)가 디스플레이 영역(1480) 후방에 원격 사용자의 카메라로부터의 비디오를 포함하는 디스플레이 영역(1492)을 보여줄 수 있는 것을 나타내고 있다. 제7 스테이지(1440)에서, 화상 회의 동안 UI(1405)에 의해 PIP 디스플레이(1447)가 제시되고 있다. 일부 실시예에서, 제6 스테이지(1435) 및 제7 스테이지(1440)에서의 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 유사하다.
도 10, 도 11, 도 12, 도 13 및 도 14는 화상 회의를 설정하는 몇가지 방식을 나타내고 있다. 일부 실시예에서, 전화 통화 동안, 오디오 데이터(예컨대, 음성)가 하나의 통신 채널을 통해(회선 교환 통신 네트워크 또는 패킷 교환 통신 네트워크와 같은 통신 네트워크를 통해) 전송되고, 화상 회의 동안, 오디오 데이터가 다른 통신 채널을 통해 전송된다. 따라서, 이러한 실시예에서, 오디오 데이터(예컨대, 음성)는 화상 회의가 설정되기 전에 통신 채널을 통해 전송되고, 화상 회의가 설정되면, 오디오는 (전화 통화 동안 사용된 통신 채널 대신에) 다른 통신 채널을 통해 전송된다.
전화 통화로부터 화상 회의로의 오디오 데이터의 매끄러운 천이(예컨대, 핸드오프)를 제공하기 위해, 일부 실시예는 화상 회의를 설정하기 전에 전화 통화를 종료시키지 않는다. 예를 들어, 일부 실시예는, 전화 통화를 종료하고 피어-투-피어 통신 세션을 통해 오디오/비디오 데이터를 전송하기 시작하기 전에, (예컨대, 도 10에 예시된 메시지 시퀀스를 완료한 후에) 피어-투-피어 화상 회의 연결을 설정한다. 다른 대안으로서, 다른 실시예는 (도 10에 예시된 메시지 시퀀스를 완료한 후에) 피어-투-피어 화상 회의 연결을 설정하고, 전화 통화를 종료하고 수신된 오디오/비디오 데이터를 제시하기 시작하기 전에, 피어-투-피어 통신 세션을 통해 오디오/비디오 데이터를 전송하기 시작한다.
일부 실시예의 피어-투-피어 화상 회의 연결은 화상 회의 중인 모바일 장치가 (예를 들어, 중앙 서버를 통해 통신하는 대신에) 서로 직접 통신할 수 있게 해 준다. 피어-투-피어 화상 회의의 일부 실시예는 화상 회의 중인 모바일 장치들이 서로 자원을 공유할 수 있게 해 준다. 예를 들어, 화상 회의의 제어 통신 채널을 통해, 한쪽 모바일 장치는 다른쪽 모바일 장치에게 영상을 상이한 방식들로 처리하라고(즉, 그것의 영상 처리 자원을 공유하라고) 지시하는 명령어를 한쪽 모바일 장치로부터 다른쪽 모바일 장치로 송신함으로써 화상 회의 중인 다른쪽 모바일 장치의 동작(노출 조절 동작, 초점 조절 동작, 및/또는 카메라 전환 동작 등)을 원격으로 제어할 수 있으며, 이에 대해서는 이하에서 더 상세히 기술한다.
2. 동적 비트 레이트 설정
통상적으로, 화상 회의 중인 모바일 장치들은 상이한 개인 및 공중 무선 통신 네트워크(예컨대, GSM, UMTS 등의 셀룰러 네트워크) 등의 상이한 유형의 통신 네트워크의 통신 채널을 통해 서로에게 데이터(예컨대, 오디오 및 비디오 영상)를 전달한다. 이러한 무선 통신 네트워크의 예에 대해 이하에서 도 91 및 도 92를 참조하여 설명할 것이다.
주어진 때에 통신 네트워크에 액세스하는 모바일 장치의 수가 변하는 것으로 인해 화상 회의를 수행하기 위한 통신 네트워크의 가용 대역폭이 상이한 시간들에서 달라지게 된다. 가용 대역폭은 심지어 화상 회의 동안에도 변할 수 있다. 그에 부가하여, 통신 네트워크를 화상 회의 동안의 높은 비트 레이트 또는 최적의 화상 회의 비트 레이트를 알아내기 위한 시도에서의 대량의 시그널링으로 플러딩(flooding)시키는 것은 바람직하지 않다.
이들 이유로 인해, 일부 실시예는 화상 회의에 대한 초기의 최적 비트 레이트를 지정하는 새로운 방법을 이용한다. 화상 회의에 대한 초기의 최적 비트 레이트를 식별하기 위해, 이 방법은, 이들 실시예가 화상 회의 품질을 열화시키게 될 네트워크 조건을 검출하지 않는 경우, 화상 회의를 특정의 비트 레이트로 시작하고 특정의 간격으로 비트 레이트를 점증적으로 증가시킨다.
이러한 실시예의 예가 도 15에 도시되어 있다. 이 도면은 화상 회의에 대한 비트 레이트를 설정하는 본 발명의 일부 실시예의 프로세스(1500)를 개념적으로 나타낸 것이다. 프로세스(1500)는 다양한 네트워크 조건에 기초하여 데이터(예컨대, 오디오 및 비디오 영상)를 전송하는 비트 레이트를 동적으로 결정하기 위해 화상 회의 설정의 일부로서(예컨대, 도 10에 예시된 화상 회의 설정의 일부로서) 수행된다. 일부 실시예에서, 프로세스(1500)는 도 9를 참조하여 전술한 화상 회의 모듈(925)의 관리 계층(935)에 의해 수행된다. 이 화상 회의 모듈의 더 상세한 버전에 대해서는 도 16을 참조하여 이하에서 기술할 것이다.
도 15에 도시된 바와 같이, 프로세스(1500)는 (1505에서) 비트 레이트를 초기 비트 레이트로 설정하는 것으로 시작한다. 일부 실시예에서, 초기 비트 레이트는 장치에 대한 디폴트 기준 레이트(default baseline rate)이다. 그렇지만, 일부 실시예는 사용자가 초기 비트 레이트를 지정할 수 있게 해 준다. 1505에서, 프로세스(1500)는 또한 하나 이상의 통신 채널을 통해 초기 비트 레이트로 원격 장치에 데이터(예컨대, 오디오 및 비디오 영상)를 전송하는 화상 회의를 시작한다.
그 다음에, 프로세스(1500)는 (1510에서) 화상 회의에서 원격 장치로부터 수신되는 일련의 네트워크 조건 파라미터를 식별한다. 일부 실시예에서, 로컬 장치는 화상 회의의 시작에서 설정되는 실시간 전송 프로토콜(RTP) 통신 세션을 통해 원격 장치로부터 일련의 네트워크 조건 파라미터를 수신한다. 예를 들어, 일부 실시예는 RTP의 확장 기능을 통해 네트워크 조건 파라미터를 제공한다. 더욱이, 일부 실시예의 RTP 확장 기능은, RTP 패킷 헤더에 확장 헤더가 존재하는 것을 나타내고 부가의 정보에 대한 확장 헤더를 정의함으로써, 임의의 유형의 정보(일련의 네트워크 조건 파라미터 등)를 전송하는 데 사용될 수 있다.
다른 실시예에서, 화상 회의 중인 장치들은 다른 일련의 네트워크 조건/혼잡 파라미터를 중계한다. 이하에서 기술되는 실시예에서, 일련의 네트워크 조건 파라미터는 단방향 대기시간 및 대역폭 추정 비트 레이트를 포함한다. 다른 실시예에서, 일련의 네트워크 조건 파라미터는 패킷 손실 데이터 및 RTT(roundtrip time) 지연 데이터를 포함한다. 그에 따라, 상이한 실시예들은 일련의 네트워크 조건 파라미터에 임의의 수의 상이한 네트워크 조건 파라미터를 포함시킬 수 있다.
일부 실시예에서, 화상 회의의 원격 장치로부터 수신된 일련의 네트워크 조건 파라미터는 화상 회의 동안 동작(1505)에서 설정된 초기 비트 레이트로 로컬 모바일 장치[즉, 프로세스(1500)를 수행하는 모바일 장치]로부터 원격 장치에게 전송된 데이터(예컨대, 오디오 및 비디오)에 기초한다. 예를 들어, 일부 실시예에서, 원격 장치는 오디오 패킷의 타임스탬프를 사용하여 오디오 패킷이 네트워크 연결을 통해 로컬 모바일 장치로부터 원격 장치로 전파하는 데 걸리는 시간을 계산함으로써 단방향 대기시간을 결정할 수 있다. 구체적으로는, 일부 실시예에서, 각각의 오디오 패킷이 타임-스탬프되어 있다. 패킷 지연이 없는 경우, 원격 장치들은 타임 스탬프들에서의 차이와 동일한 설정된 간격으로 오디오 패킷을 수신할 것이다. 그렇지만, 단방향 대기시간 지연이 있는 경우, 원격 장치는 타임 스탬프들에서의 차이보다 큰 간격으로 오디오 패킷을 수신한다.
또한, 일부 실시예에서, 원격 장치는 비디오 패킷이 수신되는 시간, 연속적인 비디오 패킷이 수신되는 시간, 및 연속적인 비디오 패킷의 크기를 검사함으로써 대역폭 추정 비트 레이트를 결정한다. 즉, 2개의 연속적인 비디오 패킷의 수신 사이의 시간 및 제2 비디오 패킷의 크기가 네트워크 연결의 가용 대역폭을 추정하는 데 사용된다. 일부 실시예는 다수의 연속적인 비디오 패킷 쌍을 검사함으로써 대역폭 추정 비트 레이트를 결정한다. 상기 예는 특정의 유형의 데이터(즉, 단방향 대기시간을 결정하기 위한 오디오 데이터 및 대역폭 추정 비트 레이트를 결정하기 위한 비디오 데이터)를 사용한다. 그렇지만, 일부 실시예에서, 로컬 모바일 장치와 원격 장치 사이의 네트워크 연결을 통해 전달된 다른 유형의 데이터도 역시 사용될 수 있다.
(1510에서) 일련의 네트워크 조건을 식별한 후에, 프로세스(1500)는 이어서 (1515에서) 단방향 대기시간이 정의된 임계량을 초과하여 열화되었는지를 판정한다. 일부 실시예에서, 임계량은 특정의 대기시간량으로서 정의되고, 현재의 단방향 대기시간과 이전의 단방향 대기시간의 차가 특정의 대기시간량을 초과할 때, 단방향 대기시간은 임계량을 초과하여 열화한 것으로 판정된다. 다른 실시예에서, 임계량은 단방향 대기시간의 특정의 변화율로서 정의된다. 그에 따라, 일련의 단방향 대기시간(예컨대, 현재의 단방향 대기시간 및 이전의 단방향 대기시간)의 변화율이 특정의 변화율을 초과할 때 단방향 대기시간은 임계량을 초과하여 열화한 것으로 판정된다.
단방향 대기시간이 임계량을 초과하여 열화한 것으로 판정될 때, 프로세스(1500)가 종료된다. 그렇지 않은 경우, 프로세스(1500)는 (1520에서) 현재의 비트 레이트가 대역폭 추정 비트 레이트에 도달하였는지를 판정한다. 일부 실시예에서, 대역폭 추정 비트 레이트는 네트워크 연결에 대한 가용 대역폭의 양[예컨대, 15 킬로비트/초(kbps)]을 나타낸다. 프로세스(1500)가 현재의 비트 레이트가 대역폭 추정 비트 레이트를 초과하는 것으로 판정할 때, 프로세스(1500)가 종료된다. 프로세스(1500)가 현재의 비트 레이트가 대역폭 추정 비트 레이트를 초과하지 않는 것으로 판정할 때, 프로세스(1500)가 동작(1525)으로 진행한다.
1525에서, 프로세스(1500)는 현재의 비트 레이트가 정의된 최대 비트 레이트에 도달하였는지를 판정한다. 프로세스(1500)가 현재의 비트 레이트가 정의된 최대 비트 레이트를 초과하는 것으로 판정할 때, 프로세스(1500)가 종료된다. 그렇지 않은 경우, 프로세스(1500)는 정의된 양만큼 현재의 비트 레이트를 증가시키기 위해 동작(1530)으로 진행한다. 상이한 실시예들은 비트 레이트를 증가시키는 양을 상이한 방식들로 정의한다. 현재의 비트 레이트를 증가시키는 정의된 양의 예는 임의의 수의 다른 양들 중에서도 특히, 32 kbps, 64 kbps를 포함한다.
그 다음에, 프로세스는 (1535에서) 정의된 양의 시간이 경과되었는지를 판정한다. 정의된 양의 시간은 1초, 2초, 5초, 또는 임의의 다른 가능한 양의 시간일 수 있는데, 그 이유는 상이한 실시예들이 시간의 양을 상이한 방식들로 정의하기 때문이다. 프로세스(1500)는, 원격 장치가 (동작 1530에서) 새로 증가된 비트 레이트로 로컬 모바일 장치로부터 전송된 데이터(예컨대, 오디오 및 비디오 영상)를 수신하고 새로 증가된 비트 레이트에 기초하여 네트워크 조건 파라미터를 결정하도록, 정의된 양의 시간이 경과하기를 기다린다. 프로세스(1500)가 정의된 양의 시간이 경과하지 않은 것으로 판정하는 경우, 프로세스(1500)는 정의된 양의 시간이 경과할 때까지 동작(1535)으로 되돌아간다. 프로세스(1500)가 정의된 양의 시간이 경과한 것으로 판정할 때, 프로세스(1500)는 동작(1510)으로 되돌아간다. 1510으로부터 전방으로의 프로세스(1500)의 동작은 프로세스(1500)가 끝날 때까지 이상에서 기술한 바와 같이 진행된다.
프로세스(1500)가 끝날 때[즉, 동작(1515, 1520, 또는 1525) 후에], 화상 회의에 대한 비트 레이트의 설정이 완료되고, 최적의 비트 레이트가 결정되었다. 화상 회의에 대한 가용 대역폭이 화상 회의 동안 변할 수 있기 때문에, 일부 실시예는 원격 장치로부터 수신되는 일련의 네트워크 조건 파라미터(즉, 단방향 대기시간 및 대역폭 추정 비트 레이트)에 기초하여 비트 레이트를 계속하여 조절한다. 화상 회의 동안 비트 레이트를 증가시킴으로써 비트 레이트가 조절될 수 있다. 예를 들어, 단방향 대기시간이 정의된 임계량을 초과하여 열화했기 때문에 프로세스(1500)가 종료되었고, 화상 회의 동안 단방향 대기시간이 향상된 경우, 일부 실시예는 비트 레이트를 증가시킨다. 이와 유사하게, 비트 레이트가 대역폭 추정 비트 레이트를 초과했기 때문에 프로세스(1500)가 종료되었고, 화상 회의 동안 대역폭 추정 비트 레이트가 증가한 경우, 일부 실시예는 비트 레이트를 증가시킨다.
이와 달리, 화상 회의 동안 비트 레이트를 감소시킴으로써 비트 레이트가 조절될 수 있다. 예를 들어, 단방향 대기시간이 화상 회의 동안 정의된 임계량을 초과하여 계속 열화되는 경우, 일부 실시예는 비트 레이트를 감소시킨다. 또한, 비트 레이트가 화상 회의 동안 대역폭 추정 비트 레이트를 계속하여 초과하는 경우(예컨대, 대역폭 추정 비트 레이트가 계속하여 감소되는 경우), 일부 실시예는 비트 레이트를 감소시킨다.
더욱이, 프로세스(1500)에 대한 설명은 비트 레이트를 증가시킬지 여부를 결정하기 위해 단방향 대기시간 및 대역폭 추정 비트 레이트를 사용하고 있다. 그렇지만, 당업자라면 상이한 실시예들에서 비트 레이트를 증가시킬지 여부를 결정하기 위해 임의의 수의 네트워크 조건 파라미터가 사용될 수 있다는 것을 잘 알 것이다. 예를 들어, 비트 레이트를 증가시킬지 여부를 결정하는 것이 RTT 지연 데이터 또는 패킷 손실 데이터에만 기초할 수 있다.
C. 화상 회의 아키텍처
앞서 언급한 바와 같이, 도 16은 일부 실시예의 듀얼 카메라 모바일 장치의 화상 회의 및 처리 모듈(1600)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 것이다. 도시된 바와 같이, 화상 회의 및 처리 모듈(1600)은 클라이언트 응용 프로그램(1665), 화상 회의 모듈(1602), 미디어 교환 모듈(1620), 버퍼(1625), 캡처된 영상 처리 유닛(CIPU) 드라이버(1630), 인코더 드라이버(1635), 및 디코더 드라이버(1640)를 포함하고 있다. 일부 실시예에서, 버퍼(1625)는 듀얼 카메라 모바일 장치의 디스플레이(1645) 상에 디스플레이하기 위한 비디오의 영상을 저장하는 프레임 버퍼이다.
일부 실시예에서, 클라이언트 응용 프로그램(1665)은 도 9의 화상 회의 클라이언트(945)와 동일하다. 앞서 언급한 바와 같이, 클라이언트 응용 프로그램(1665)은 다른 응용 프로그램에 통합되어 있거나 독립형 응용 프로그램으로서 구현될 수 있다. 클라이언트 응용 프로그램(1665)은 화상 회의 모듈(1602)의 화상 회의 기능을 사용하는 응용 프로그램[화상 회의 응용 프로그램, VOIP(voice-over-IP) 응용 프로그램(예컨대, Skype), 또는 인스턴트 메시징 응용 프로그램 등]일 수 있다.
일부 실시예의 클라이언트 응용 프로그램(1665)은 회의를 시작하고 회의를 종료시키는 명령어 등의 명령어를 화상 회의 모듈(1602)로 송신하고, 화상 회의 모듈(1602)로부터 명령어를 수신하며, 듀얼 카메라 모바일 장치의 사용자로부터 화상 회의 모듈(1602)로 명령어를 라우팅하고, 듀얼 카메라 모바일 장치 상에 디스플레이되고 사용자가 응용 프로그램과 상호작용할 수 있게 해 주는 사용자 인터페이스를 발생한다.
D. 화상 회의 관리자
도 16에 도시된 바와 같이, 화상 회의 모듈(1602)은 화상 회의 관리자(1604), 영상 처리 관리자(1608), 네트워킹 관리자(1614), 및 버퍼(1606, 1610, 1612, 1616, 1618)를 포함하고 있다. 일부 실시예에서, 화상 회의 모듈(1602)은 도 9에 예시된 화상 회의 모듈(925)과 동일하고, 따라서, 화상 회의 모듈(925)에 대해 전술한 동일한 기능들 중 일부 또는 전부를 수행한다.
일부 실시예에서, 화상 회의 관리자(1604)는 화상 회의가 시작하고 있을 때 화상 회의 모듈(1602)의 다른 모듈들[예컨대, 영상 처리 관리자(1608) 및 네트워킹 관리자(1614)] 중 일부 또는 전부를 초기화하는 일, 화상 회의 동안 화상 회의 모듈(1602)의 동작을 제어하는 일, 및 화상 회의가 종료되고 있을 때 화상 회의 모듈(1602)의 다른 모듈들 중 일부 또는 전부의 동작을 중단시키는 일을 맡고 있다.
일부 실시예의 화상 회의 관리자(1604)는 또한, 듀얼 카메라 모바일 장치 상에 디스플레이하기 위해, 화상 회의 중인 하나 이상의 장치로부터 수신되는 영상 및 듀얼 카메라 모바일 장치의 양쪽 카메라 중 하나에 의해 캡처되는 영상을 처리한다. 예를 들어, 일부 실시예의 화상 회의 관리자(1604)는 화상 회의에 참가하고 있는 다른 장치로부터 수신되었던 디코딩된 영상을 버퍼(1618)로부터 검색하고, CIPU(1650)에 의해 처리된 영상(즉, 듀얼 카메라 모바일 장치에 의해 캡처된 영상)을 버퍼(1606)로부터 검색한다. 일부 실시예에서, 화상 회의 관리자(1604)는 또한 영상을 듀얼 카메라 모바일 장치 상에 디스플레이하기 전에 영상을 스케일링하고 합성한다. 즉, 화상 회의 관리자(1604)는 일부 실시예에서 모바일 장치 상에 디스플레이하기 위해 PIP 또는 다른 합성 뷰를 발생한다. 일부 실시예는 버퍼(1606, 1618)로부터 검색된 영상을 스케일링하는 반면, 다른 실시예는 버퍼(1606, 1618) 중 하나로부터 검색된 영상만을 스케일링한다.
도 16이 화상 회의 관리자(1604)를 화상 회의 모듈(1602)의 일부로서 나타내고 있지만, 화상 회의 관리자(1604)의 일부 실시예는 화상 회의 모듈(1602)과 분리된 구성요소로서 구현되어 있다. 그에 따라, 몇개의 화상 회의 모듈(1602)을 관리하고 제어하기 위해 하나의 화상 회의 관리자(1604)가 사용될 수 있다. 예를 들어, 일부 실시예는 다중-당사자 회의에서 각각의 당사자와 상호작용하기 위해 로컬 장치 상의 개별적인 화상 회의 모듈을 실행시킬 것이고, 로컬 장치 상의 이들 화상 회의 모듈 각각이 하나의 화상 회의 관리자에 의해 관리되고 제어된다.
일부 실시예의 영상 처리 관리자(1608)는, 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처된 영상이 인코더(1655)에 의해 인코딩되기 전에, 그 영상을 처리한다. 예를 들어, 영상 처리 관리자(1608)의 일부 실시예는 CIPU(1650)에 의해 처리된 영상에 대해 노출 조절, 초점 조절, 원근 보정, 동적 범위 조절, 및 영상 크기 조정 중 하나 이상을 수행한다. 일부 실시예에서, 영상 처리 관리자(1608)는 화상 회의 중인 다른 장치에게 전송되는 인코딩된 영상의 프레임 레이트를 제어한다.
네트워킹 관리자(1614)의 일부 실시예는 듀얼 카메라 모바일 장치와 화상 회의에 참가하고 있는 다른 장치 사이의 하나 이상의 연결을 관리한다. 예를 들어, 일부 실시예의 네트워킹 관리자(1614)는 화상 회의의 시작에서 듀얼 카메라 모바일 장치와 화상 회의의 다른 장치 사이의 연결을 설정하고, 화상 회의의 끝에서 이들 연결을 끊는다.
화상 회의 동안, 네트워킹 관리자(1614)는 인코더(1655)에 의해 인코딩된 영상을 화상 회의의 다른 장치에게 전송하고, 화상 회의의 다른 장치로부터 수신된 영상을 디코딩을 위해 디코더(1660)로 라우팅한다. 일부 실시예에서는, 영상 처리 관리자(1608)가 아니라, 네트워킹 관리자(1614)가 화상 회의의 다른 장치에게 전송되는 영상의 프레임 레이트를 제어한다. 예를 들어, 네트워킹 관리자(1614)의 이러한 일부 실시예는 화상 회의의 다른 장치에게 전송되기로 되어 있는 인코딩된 프레임들 중 일부를 폐기함으로써(즉, 전송하지 않음으로써) 프레임 레이트를 제어한다.
도시된 바와 같이, 일부 실시예의 미디어 교환 모듈(1620)은 카메라 소스 모듈(1622), 비디오 압축기 모듈(1624), 및 비디오 압축 해제기 모듈(1626)을 포함하고 있다. 미디어 교환 모듈(1620)은 도 3에 도시된 미디어 교환 모듈(310)과 동일하고, 추가의 상세가 제공되어 있다. 카메라 소스 모듈(1622)은 CIPU 드라이버(1630)를 통해 화상 회의 모듈(1602)과 CIPU(1650) 사이에서 메시지 및 미디어 콘텐츠를 라우팅하고, 비디오 압축기 모듈(1624)은 인코더 드라이버(1635)를 통해 화상 회의 모듈(1602)과 인코더(1655) 사이에서 메시지 및 미디어 콘텐츠를 라우팅하며, 비디오 압축 해제기 모듈(1626)은 디코더 드라이버(1640)를 통해 화상 회의 모듈(1602)과 디코더(1660) 사이에서 메시지 및 미디어 콘텐츠를 라우팅한다. 일부 실시예는 미디어 교환 모듈(310)에 포함된 TNR 모듈(315)(도 16에 도시되지 않음)을 카메라 소스 모듈(1622)의 일부로서 구현하는 반면, 다른 실시예는 TNR 모듈(315)을 비디오 압축기 모듈(1624)의 일부로서 구현한다.
일부 실시예에서, CIPU 드라이버(1630) 및 인코더 드라이버(1635)는 도 3에 예시된 CIPU 드라이버(305) 및 인코더 드라이버(320)와 동일하다. 일부 실시예의 디코더 드라이버(1640)는 비디오 압축 해제기 모듈(1626)과 디코더(1660) 사이의 통신 인터페이스로서 역할한다. 이러한 실시예에서, 디코더(1660)는 네트워킹 관리자(1614)를 통해 화상 회의의 다른 장치로부터 수신되고 비디오 압축 해제기 모듈(1626)을 통해 라우팅된 영상을 디코딩한다. 영상이 디코딩된 후에, 영상은 디코더 드라이버(1640) 및 비디오 압축 해제기 모듈(1626)을 통해 다시 화상 회의 모듈(1602)로 송신된다.
화상 회의 동안 비디오 처리를 수행하는 것에 부가하여, 일부 실시예의 듀얼 카메라 모바일 장치에 대한 화상 회의 및 처리 모듈(1600)은 또한 화상 회의 동안 오디오 처리 동작을 수행한다. 도 17은 이러한 소프트웨어 아키텍처를 나타낸 것이다. 도시된 바와 같이, 화상 회의 및 처리 모듈(1600)은 화상 회의 모듈(1602)[화상 회의 관리자(1604), 영상 처리 관리자(1608) 및 네트워킹 관리자(1614)를 포함함], 미디어 교환 모듈(1620), 및 클라이언트 응용 프로그램(1665)을 포함하고 있다. 설명을 간략화하기 위해, 도 16에 도시된 화상 회의 및 처리 모듈(1600)의 다른 구성요소 및 모듈이 도 17에는 생략되어 있다. 화상 회의 및 처리 모듈(1600)은 또한 프레임 버퍼(1705, 1710), 오디오 처리 관리자(1715), 및 오디오 드라이버(1720)를 포함한다. 일부 실시예에서, 오디오 처리 관리자(1715)는 개별적인 소프트웨어 모듈로서 구현되는 반면, 다른 실시예에서, 오디오 처리 관리자(1715)는 미디어 교환 모듈(1620)의 일부로서 구현된다.
오디오 처리 관리자(1715)는 화상 회의 중인 다른 장치에게 전송하기 위해 듀얼 카메라 모바일 장치에 의해 캡처된 오디오 데이터를 처리한다. 예를 들어, 오디오 처리 관리자(1715)는 오디오 드라이버(1720)를 통해 오디오 데이터(마이크(1725)에 의해 캡처됨)를 수신하고, 다른 장치에게 전송하기 위해 인코딩된 오디오 데이터를 버퍼(1705)에 저장하기 전에 오디오 데이터를 인코딩한다. 오디오 처리 관리자(1715)는 또한 화상 회의 중인 다른 장치에 의해 캡처되고 그로부터 수신된 오디오 데이터를 처리한다. 예를 들어, 오디오 처리 관리자(1715)는 버퍼(1710)로부터 오디오 데이터를 검색하고, 오디오 데이터를 디코딩하며, 이 오디오 데이터는 이어서 오디오 드라이버(1720)를 통해 스피커(1730)로 출력된다.
일부 실시예에서, 화상 회의 모듈(1602)은, 오디오 처리 관리자(1715) 및 그의 관련 버퍼와 함께, 더 큰 회의 모듈의 일부이다. 비디오 콘텐츠의 교환 없이 몇개의 장치 사이에서 다중-참가자 오디오 회의가 수행될 때, 이 화상 회의 및 처리 모듈(1600)은 인터넷 프로토콜(IP) 계층을 통한 오디오의 교환을 용이하게 해주기 위해 네트워킹 관리자(1614) 및 오디오 처리 관리자(1715)만을 사용한다.
이제부터 도 18을 참조하여, 일부 실시예의 화상 회의 관리자(1604)의 동작에 대해 기술할 것이다. 도 18은 도 16에 예시된 화상 회의 관리자(1604) 등의 일부 실시예의 화상 회의 관리자에 의해 수행되는 프로세스(1800)를 개념적으로 나타낸 것이다. 이것은 도 9의 관리 계층(935)에 의해 수행되는 것과 동등할 수 있다. 일부 실시예에서, 듀얼 카메라 모바일 장치의 사용자가 (예컨대, 듀얼 카메라 모바일 장치 상에 디스플레이되는 사용자 인터페이스를 통해) 화상 회의 요청을 수락할 때 또는 다른 장치의 사용자가 듀얼 카메라 모바일 장치의 사용자에 의해 송신된 요청을 수락할 때, 화상 회의 관리자(1604)는 프로세스(1800)를 수행한다.
프로세스(1800)는 (1805에서) 화상 회의를 시작하라는 명령어를 수신하는 것으로 시작한다. 일부 실시예에서, 명령어는 클라이언트 응용 프로그램(1665)로부터 수신되거나 듀얼 카메라 모바일 장치 상에 디스플레이된 사용자 인터페이스를 통해 사용자로부터 수신되고 클라이언트 응용 프로그램(1665)에 의해 화상 회의 관리자(1604)에 전달된다. 예를 들어, 일부 실시예에서, 듀얼 카메라 모바일 장치의 사용자가 화상 회의 요청을 수락할 때, 명령어가 사용자 인터페이스를 통해 수신되고 클라이언트 응용 프로그램에 의해 전달된다. 한편, 다른 장치의 사용자가 로컬 장치로부터 송신된 요청을 수락할 때, 일부 실시예는 사용자 인터페이스 상호작용 없이 클라이언트 응용 프로그램으로부터 명령어를 수신한다(그렇지만, 초기 요청을 송출하기 위해 이전의 사용자 인터페이스 상호작용이 있었을 수 있음).
그 다음에, 프로세스(1800)는 (1810에서) 화상 회의 관리자(1604)와 상호작용하는 제1 모듈을 초기화한다. 화상 회의 관리자(1604)와 상호작용하는 일부 실시예의 모듈은 CIPU(1650), 영상 처리 관리자(1608), 오디오 처리 관리자(1715), 및 네트워킹 관리자(1614)를 포함하고 있다.
일부 실시예에서, CIPU(1650)를 초기화하는 것은 듀얼 카메라 모바일 장치의 카메라들 중 하나 또는 둘 다에 의해 캡처된 영상을 처리하기 시작하라고 CIPU(1650)에 지시하는 것을 포함한다. 일부 실시예는 버퍼(1610)로부터 영상을 검색하고 검색된 영상을 처리 및 인코딩하기 시작하라고 영상 처리 관리자(1608)에 지시함으로써 영상 처리 관리자(1608)를 초기화한다. 오디오 처리 관리자(1715)를 초기화하기 위해, 일부 실시예는 마이크(1725)에 의해 캡처된 오디오 데이터를 인코딩하고, 스피커(1730)로 출력하기 위해 버퍼(1710)에 저장된 오디오 데이터(다른 장치로부터 수신되었음)를 디코딩하기 시작하라고 오디오 처리 관리자(1715)에 지시한다. 일부 실시예의 네트워킹 관리자(1614)의 초기화는 화상 회의 중인 다른 장치와의 네트워크 연결을 설정하라고 네트워킹 관리자(1614)에 지시하는 것을 포함한다.
프로세스(1800)는 이어서 (1815에서) 초기화할 모듈들이 남아 있는지를 판정한다. 초기화할 모듈들이 남아 있을 때, 프로세스(1800)는 그 모듈들 중 다른 것을 초기화하기 위해 동작(1810)으로 되돌아간다. 필요한 모듈들 모두가 초기화되었을 때, 프로세스(1800)는 (1820에서) 듀얼 카메라 모바일 장치(즉, 로컬 디스플레이) 상에 디스플레이하기 위해 합성 영상을 생성한다. 이들 합성 영상은 이하에서 기술되는 도 65에 도시된 것(즉, PIP 또는 다른 합성 디스플레이)을 포함할 수 있고, 로컬 듀얼 카메라 모바일 장치의 카메라들로부터의 영상과 화상 회의에 참가하고 있는 다른 장치의 카메라들로부터의 영상의 다양한 조합을 포함할 수 있다.
그 다음에, 프로세스(1800)는 (1825에서) 화상 회의에 변경이 행해졌는지를 판정한다. 일부 실시예는 듀얼 카메라 모바일 장치 상에 디스플레이된 사용자 인터페이스와의 사용자 상호작용을 통해 화상 회의에 대한 변경을 수신하는 반면, 다른 실시예는 네트워킹 관리자(1614)를 통해 다른 장치로부터 화상 회의에 대한 변경을 수신한다(즉, 원격 제어). 일부 실시예에서, 화상 회의 설정에 대한 변경은 또한 클라이언트 응용 프로그램(1665) 또는 화상 회의 모듈(1602) 내의 다른 모듈들로부터 수신될 수 있다. 화상 회의 설정은 또한 네트워크 조건의 변화로 인해 변할 수 있다.
변경이 행해졌을 때, 프로세스(1800)는 (1830에서) 화상 회의에 대한 변경이 네트워크 설정에 대한 변경인지를 판정한다. 일부 실시예에서, 변경은 네트워크 설정 변경이거나 영상 캡처 설정 변경이다. 화상 회의에 대한 변경이 네트워크 설정에 대한 변경일 때, 프로세스는 (1840에서) 네트워크 설정을 수정하고 이어서 동작(1845)으로 진행한다. 일부 실시예의 네트워크 설정 변경은 영상이 인코딩되는 비트 레이트 또는 영상이 다른 장치에게 전송되는 프레임 레이트를 변경하는 것을 포함한다.
화상 회의에 대한 변경이 네트워크 설정에 대한 변경이 아닐 때, 프로세스(1800)는 변경이 영상 캡처 설정에 대한 변경인 것으로 판정하고 이어서 동작(1835)으로 진행한다. 프로세스(1800)는 이어서 (1835에서) 영상 캡처 설정에 대한 변경을 수행한다. 일부 실시예에서, 영상 캡처 설정에 대한 변경은, 다른 설정 변경들 중에서도 특히, 카메라를 전환하는 것(듀얼 카메라 모바일 장치 상의 어느 카메라가 비디오를 캡처할 것인지를 전환하는 것), 초점 조절, 노출 조절, 듀얼 카메라 모바일 장치의 카메라들 중 하나 또는 둘 다로부터의 영상을 디스플레이하거나 디스플레이하지 않는 것, 및 듀얼 카메라 모바일 장치 상에 디스플레이된 영상을 줌인 또는 줌아웃하는 것을 포함할 수 있다.
동작(1845)에서, 프로세스(1800)는 화상 회의를 종료할지 여부를 결정한다. 프로세스(1800)가 화상 회의를 종료하지 않기로 결정할 때, 프로세스(1800)는 동작(1820)으로 되돌아간다. 프로세스(1800)가 화상 회의를 종료하기로 결정할 때, 프로세스(1800)가 종료된다. 프로세스(1800)의 일부 실시예는, 프로세스(1800)가 (로컬 듀얼 카메라 모바일 장치의 사용자 인터페이스를 통해 수신된 또는 화상 회의에 참가하고 있는 다른 장치로부터 수신된 명령어로 인해) 클라이언트 응용 프로그램(1665)으로부터 화상 회의를 종료하라는 명령어를 수신할 때, 화상 회의를 종료하기로 결정한다.
일부 실시예에서, 화상 회의 관리자(1604)는 화상 회의가 종료될 때 프로세스(1800)에 도시되지 않은 다양한 동작을 수행한다. 일부 실시예는 영상을 생성하는 것을 중단하라고 CIPU(1650)에 지시하고, 화상 회의 중인 다른 장치와의 네트워크 연결을 끊으라고 네트워킹 관리자(1614)에 지시하며, 영상의 처리 및 인코딩을 중단하라고 영상 처리 관리자(1608)에 지시한다.
E. 시간 잡음 감소
일부 실시예는 비디오에서의 잡음을 감소시키기 위해 비디오 영상을 처리하는 특정의 시간 잡음 감소 모듈을 포함하고 있다. 일부 실시예의 시간 잡음 감소 모듈은 원하지 않은 잡음을 식별하여 비디오로부터 제거하기 위해 비디오 시퀀스에서의 후속 영상들을 비교한다.
도 19는 일부 실시예의 시간 잡음 감소(TNR) 모듈(1900)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 것이다. 일부 실시예는 TNR 모듈(1900)을 응용 프로그램의 일부로서(예컨대, 도 3에 도시된 바와 같이, 미디어 교환 모듈의 일부로서) 구현하는 반면, 다른 실시예는 TNR 모듈(1900)을 다른 응용 프로그램에 의해 사용되는 독립형 응용 프로그램으로서 구현한다. 또 다른 실시예는 TNR 모듈(1900)을 듀얼 카메라 모바일 장치 상에서 실행 중인 운영 체제의 일부로서 구현한다. 일부 실시예에서, TNR 모듈(1900)은 TNR 모듈(1900)의 기능들 중 일부 또는 전부를 다른 응용 프로그램에 제공하는 일련의 API에 의해 구현된다.
도 19에 도시된 바와 같이, TNR 모듈(1900)은 TNR 관리자(1905), 차 모듈(difference module)(1910), 픽셀 평균 모듈(pixel averaging module)(1915), 및 움직임 이력 모듈(motion history module)(1920)을 포함하고 있다. 도 19가 3개의 모듈(1910, 1915, 1920)을 개별적인 모듈로서 도시하고 있지만, 일부 실시예는 이하에서 기술되는 이들 모듈의 기능을 하나의 모듈에 구현한다. 일부 실시예의 TNR 모듈(1900)은 입력 영상, 기준 영상, 및 움직임 이력을 입력으로서 수신한다. 일부 실시예에서, 입력 영상은 현재 처리되고 있는 영상인 반면, 기준 영상은 입력 영상과 비교되는 비디오 시퀀스에서의 이전 영상이다. TNR 모듈(1900)은 출력 영상(감소된 잡음을 갖는 입력 영상의 버전) 및 출력 움직임 이력을 출력한다.
일부 실시예의 TNR 관리자(1905)는 TNR 모듈(1900)을 통한 데이터의 흐름의 방향을 조정한다. 도시된 바와 같이, TNR 관리자(1905)는 입력 영상, 기준 영상 및 움직임 이력을 수신한다. TNR 관리자(1905)는 또한 출력 영상 및 출력 움직임 이력을 출력한다. TNR 관리자(1905)는 입력 영상 및 기준 영상을 차 모듈(1910)로 송신하고, 차 모듈(1910)로부터 차 영상을 수신한다.
일부 실시예에서, 차 모듈(1910)은 TNR 관리자(1905)로부터 수신된 데이터를 처리하고, 처리된 데이터를 TNR 관리자(1905)로 송신한다. 도시된 바와 같이, 차 모듈(1910)은 TNR 관리자(1905)로부터 입력 영상 및 기준 영상을 수신한다. 일부 실시예의 차 모듈(1910)은 한 영상의 픽셀값을 다른 영상의 픽셀값으로부터 차감함으로써 차 영상(difference image)을 생성한다. 차 영상이 TNR 관리자(1905)로 송신된다. 일부 실시예의 차 영상은 이전 영상과 비교하여 변경된 입력 영상의 섹션 및 동일한 채로 있는 입력 영상의 섹션을 식별하기 위해 2개의 영상의 차를 나타낸다.
TNR 관리자(1905)는 또한 입력 영상 및 기준 영상을 픽셀 평균 모듈(1915)로 송신한다. 도시된 바와 같이, 일부 실시예는 또한 움직임 이력을 픽셀 평균 모듈(1915)로도 송신한다. 그렇지만, 다른 실시예는, 움직임 이력 없이 입력 영상 및 기준 영상만을 송신할 수 있다. 어느 실시예에서든, TNR 관리자(1905)는 픽셀 평균 모듈(1915)로부터 처리된 영상을 수신한다.
일부 실시예의 픽셀 평균 모듈(1915)은 영상에서의 특정의 위치에 대한 입력 영상 및 기준 영상으로부터의 픽셀의 평균을 구할지를 결정하기 위해 움직임 이력을 사용한다. 일부 실시예에서, 움직임 이력은 입력 영상에서의 각각의 픽셀에 대한 확률값을 포함한다. 특정의 확률값은 입력 영상에서의 대응하는 픽셀이 기준 영상에서의 대응하는 픽셀에 대해 변경되었을(즉, 동적 픽셀일) 확률을 나타낸다. 예를 들어, 입력 영상에서의 특정의 픽셀의 확률값이 20인 경우, 이는 입력 영상에서의 특정의 픽셀이 기준 영상에서의 대응하는 픽셀에 대해 변경되었을 확률이 20%임을 나타낸다. 다른 예로서, 입력 영상에서의 특정의 픽셀의 확률값이 0인 경우, 이는 입력 영상에서의 특정의 픽셀이 기준 영상에서의 대응하는 픽셀에 대해 변경되지 않았음(즉, 정적 픽셀임)을 나타낸다.
상이한 실시예들은 입력 영상의 확률값을 상이한 방식들로 저장한다. 일부 실시예는 입력 영상의 각각의 픽셀의 확률값을 하나의 데이터 어레이에 저장할 수 있다. 다른 실시예는 확률값을 비디오의 영상의 해상도와 동일한 차원을 갖는 행렬(예컨대, 어레이들의 어레이)에 저장할 수 있다. 예를 들어, 비디오의 영상의 해상도가 320x240인 경우, 행렬도 역시 320x240이다.
픽셀 평균 모듈(1915)이 TNR 관리자(1905)로부터 입력 영상 및 기준 영상에 부가하여 움직임 이력을 수신할 때, 픽셀 평균 모듈(1915)은 입력 영상에서의 각각의 픽셀의 확률값을 판독한다. 입력 영상에서의 특정의 픽셀에 대한 확률값이 정의된 임계값(예컨대, 5%, 20%) 미만인 경우, 픽셀 평균 모듈(1915)은 특정의 픽셀에서 움직임이 있지 않을 것이며, 따라서 그 픽셀에서의 영상들 간의 차가 잡음으로 인한 것일 수 있다는 전제에 기초하여, 특정의 픽셀값과 기준 영상에서의 대응하는 특정의 픽셀값을 평균한다.
입력 영상에서의 특정의 픽셀에 대한 확률이 정의된 임계값 미만이 아닌 경우, 픽셀 평균 모듈(1915)은 입력 영상의 특정의 픽셀을 수정하지 않는다(즉, 그 픽셀에서의 픽셀값이 입력 영상에서와 동일한 채로 있다). 이것은는 특정의 픽셀에서 움직임이 있을 가능성이 더 많으며, 따라서 영상들 간의 차가 잡음의 결과가 아닐 가능성이 더 많기 때문이다. 일부 실시예에서, 움직임 이력이 픽셀 평균 모듈(1915)로 송신되지 않을 때, 픽셀 평균 모듈(1915)은 입력 영상에서의 각각의 픽셀과 기준 영상에서의 대응하는 픽셀을 평균한다. 픽셀 평균 모듈(1915)에 의해 출력되고 TNR 관리자(1905)로 송신되는 처리된 영상은 평균되지 않은 임의의 픽셀에 대한 입력 영상 픽셀값 및 픽셀 평균 모듈(1915)에 의해 평균된 임의의 픽셀에 대한 평균된 픽셀값을 포함한다.
일부 실시예에서, 움직임 이력 모듈(1920)은 TNR 관리자(1905)로부터 수신된 데이터를 처리하고, 결과 데이터를 다시 TNR 관리자(1905)로 송신한다. 일부 실시예의 움직임 이력 모듈(1920)은 TNR 관리자(1905)로부터 입력 영상 및 움직임 이력을 수신한다. 일부 실시예는, 다음 입력 영상에 대한 픽셀 평균에서 사용될 수 있는 새로운 움직임 이력(즉, 일련의 확률값)을 생성하기 위해, 이 데이터를 Bayes 추정기에 입력한다. 다른 실시예는 다른 추정기를 사용하여 새로운 움직임 이력을 생성한다.
도 20을 참조하여 TNR 모듈(1900)의 동작에 대해 이제부터 기술할 것이다. 이 도면은 비디오의 영상의 시간 잡음을 감소시키는 일부 실시예의 프로세스(2000)를 개념적으로 나타낸 것이다. 프로세스(2000)는 TNR 관리자(1905)가 (2005에서) 입력 영상, 기준 영상 및 움직임 이력을 수신하는 것으로 시작한다. 입력 영상은 잡음 감소를 위해 현재 처리되고 있는 영상이다. 일부 실시예에서, 기준 영상은 CIPU로부터 수신되는 비디오의 영상 시퀀스의 이전 영상이다. 그렇지만, 다른 실시예에서, 기준 영상은 이전 입력 영상의 처리로부터 발생된 출력 영상[즉, TNR 모듈(1900)의 출력]이다. 움직임 이력은 이전 입력 영상의 처리로부터 발생된 출력 움직임 이력이다.
입력 영상이 비디오의 첫번째 영상일 때, 일부 실시예의 TNR 모듈(1900)은 첫번째 영상을 처리하지 않는다(즉, 첫번째 영상에 TNR을 적용하지 않는다). 환언하면, TNR 관리자(1905)는 첫번째 영상을 수신하고, 첫번째 영상을 출력하기만 한다. 다른 실시예에서, 입력 영상이 비디오의 첫번째 영상일 때, 첫번째 영상이 입력 영상 및 기준 영상으로서 사용되고, TNR 모듈(1900)은 이하에 기술되는 바와 같이 영상을 처리한다. 게다가, 입력 영상이 비디오의 첫번째 영상일 때, 움직임 이력이 비어 있고(예컨대, 널, 영으로 채워져 있음, 기타), TNR 관리자(1905)는 비어있는 움직임 이력을 출력 움직임 이력으로서 출력하기만 한다.
TNR 관리자(1905)는 이어서 (2010에서) 입력 영상이 정적인지를 판정한다. 이 판정을 하기 위해, 일부 실시예는 입력 영상 및 기준 영상을 차 모듈(1910)로 송신하고, 차 모듈(1910)로부터 차 영상을 수신한다. 2개의 영상 사이의 차가 정의된 임계값(예컨대, 5% 차, 10% 차 등) 미만일 때, 일부 실시예는 입력 영상을 정적 영상으로 분류한다.
입력 영상이 정적 영상일 때, TNR 관리자(1905)는 (2015에서) 입력 영상의 픽셀과 기준 영상의 픽셀을 평균하여 정적 영상으로부터 임의의 잡음을 감소시키기 위해, 입력 영상 및 기준 영상을 픽셀 평균 모듈(1915)로 송신한다. 프로세스는 이어서 이하에서 기술되는 2040으로 진행한다.
입력 영상이 정적 영상이 아닐 때, TNR 관리자는 입력 영상, 기준 영상, 및 움직임 이력을 처리를 위해 픽셀 평균 모듈(1915)로 송신한다. 픽셀 평균 모듈(1915)은 (2020에서) 입력 영상에서의 픽셀을 선택한다. 움직임 이력을 사용하여, 픽셀 평균 모듈(1915)은 (2025에서) 이상에서 기술한 바와 같이, 픽셀의 움직임 확률이 특정의 임계값 미만인지를 판정한다.
선택된 픽셀의 확률이 특정의 임계값 미만인 경우, 픽셀 평균 모듈(1915)은 (2030에서) 입력 영상의 픽셀과 기준 영상에서의 대응하는 픽셀을 평균한다. 그렇지 않은 경우, 픽셀이 평균되지 않고, 출력 영상은 그 특정의 픽셀에서의 입력 영상과 동일할 것이다. 픽셀 평균 모듈(1915)은 이어서 (2035에서) 입력 영상에 선택되지 않은 픽셀이 남아 있는지를 판정한다. 어떤 픽셀이라도 아직 처리되지 않은 경우, 프로세스는 다음 픽셀을 선택하기 위해 동작(2020)으로 되돌아간다. 픽셀 평균 모듈(1915)은 모든 픽셀이 평가될 때까지 동작(2020 내지 2030)을 수행한다.
프로세스는 이어서 (2040에서) 움직임 이력을 업데이트한다. 도 19에 도시되고 이상에서 기술한 바와 같이, 움직임 이력 모듈(1920)은 입력 영상에 기초하여 움직임 이력을 업데이트한다. 새로운 움직임 이력은 픽셀 평균 모듈로부터의 처리된 영상과 함께 TNR 관리자에 의해 출력된다.
F. 영상 처리 관리자 및 인코더
CIPU 및/또는 CIPU 드라이버에 의해 수행되는 시간 잡음 감소 및 영상 처리 동작에 부가하여, 일부 실시예는 화상 회의 모듈(925)의 영상 처리 계층(930)에서 각종의 영상 처리 동작을 수행한다. 이들 영상 처리 동작은, 그 중에서도 특히 노출 조절, 초점 조절, 원근 보정, 동적 범위의 조절, 및 영상 크기 조정을 포함할 수 있다.
도 21은 이러한 영상 처리 동작을 수행하는 프로세스(2100)를 개념적으로 나타낸 것이다. 일부 실시예에서, 프로세스(2100)의 동작들 중 일부 또는 전부가 도 16의 영상 처리 관리자(1608) 및 인코더 드라이버(1635)의 조합에 의해 수행된다. 이러한 실시예들 중 일부 실시예에서, 영상 처리 관리자(1608)는 픽셀-기반 처리(예컨대, 크기 조정, 동적 범위 조절, 원근 보정 등)를 수행한다. 일부 실시예는 화상 회의에 참가하고 있는 다른 장치에게 전송되어야 하는 영상에 대해 화상 회의 동안 프로세스(2100)를 수행한다.
이제부터 도 16을 참조하여 프로세스(2100)에 대해 기술할 것이다. 프로세스는 (2105에서) 버퍼(1606)로부터 영상을 검색하는 것으로 시작한다. 일부 실시예에서, 검색된 영상은 비디오의 영상(즉, 영상 시퀀스에서의 영상)이다. 이 비디오는 프로세스(2100)가 수행되는 장치의 카메라에 의해 캡처되었을 수 있다.
그 다음에, 프로세스(2100)는 (2110에서) 검색된 영상에 대해 노출 조절을 수행한다. 일부 실시예는 듀얼 카메라 모바일 장치 상에 디스플레이되는 사용자 인터페이스를 통해 노출 조절을 수행한다. 도 22는 이러한 실시예의 예시적인 노출 조절 동작을 나타낸 것이다.
이 도면은 장치(2200)의 UI(2205)의 3개의 스테이지(2210, 2215, 2220)를 참조하여 노출 조절 동작을 나타내고 있다. 제1 스테이지(2210)는 디스플레이 영역(2225) 및 디스플레이 영역(1155)을 포함하는 UI(2205)를 나타내고 있다. 도시된 바와 같이, 디스플레이 영역(2225)은 태양과 어두운 얼굴 및 신체를 갖는 남자의 영상(2230)을 디스플레이한다. 어두운 얼굴 및 신체는 남자가 적절히 노출되어 있지 않다는 것을 나타낸다. 영상(2230)은 장치(2200)의 카메라에 의해 캡처된 비디오 영상일 수 있다. 도시된 바와 같이, 디스플레이 영역(1155)은 화상 회의를 종료시키는 선택가능한 UI 항목(2250)을 포함하고 있다. 일부 실시예에서, 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 동일하다.
제2 스테이지(2215)는 장치(2200)의 사용자가 디스플레이 영역(2225)의 영역을 선택함으로써 노출 조절 동작을 개시하는 것을 나타내고 있다. 이 예에서, 손가락(2235)을 디스플레이 영역(2225) 내의 아무 곳에나 위치시킴으로써 선택이 행해진다. 일부 실시예에서, 사용자는 가능한 영상 설정 조절의 메뉴로부터 노출 조절을 선택한다.
*제3 스테이지(2220)는 노출 조절 동작이 완료된 후의 남자의 영상(2240)을 보여주고 있다. 도시된 바와 같이, 영상(2240)은 영상(2230)과 유사하지만, 영상(2240) 내의 남자는 적절히 노출되어 있다. 일부 실시예에서, 적절히 노출된 영상은 부적절하게 노출된 영상 이후에 캡처되는 영상이다. 제2 스테이지(2215)에서 개시된 노출 조절 동작은 장치(2200)의 카메라에 의해 캡처되는 후속 영상의 노출을 조절한다.
도 21로 돌아가서, 프로세스(2100)는 그 다음에 (2115에서) 영상에 대해 초점 조절을 수행한다. 일부 실시예는 듀얼 카메라 모바일 장치 상에 디스플레이되는 사용자 인터페이스를 통해 초점 조절을 수행한다. 도 23은 이러한 초점 조절 동작의 예를 개념적으로 나타낸 것이다.
도 23은 장치(2300)의 UI(2305)의 3개의 상이한 스테이지(2310, 2315, 2320)를 참조하여 초점 조절 동작을 나타내고 있다. 제1 스테이지(2310)는 디스플레이 영역(2325) 및 디스플레이 영역(1155)을 포함하는 UI(2305)를 나타내고 있다. 디스플레이 영역(2325)은 장치(2300)의 카메라에 의해 캡처된 남자의 흐릿한 영상(2330)을 제시하고 있다. 흐릿함은 남자의 영상(2330)이 초점을 벗어나 있다는 것을 나타낸다. 즉, 남자의 영상(2330)이 카메라에 의해 캡처되었을 때, 카메라의 렌즈가 남자에 초점이 맞춰져 있지 않았다. 또한, 영상(2330)은 장치(2300)의 카메라에 의해 캡처된 비디오 영상일 수 있다. 도시된 바와 같이, 디스플레이 영역(1155)은 화상 회의를 종료시키는 선택가능한 UI 항목(2350)을 포함하고 있다. 일부 실시예에서, 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 동일하다.
제2 스테이지(2315)는 장치(2300)의 사용자가 디스플레이 영역(2325)의 영역을 선택함으로써 초점 조절 동작을 개시하는 것을 나타내고 있다. 이 예에서, 손가락(2335)을 디스플레이 영역(2325) 내의 아무 곳에나 위치시킴으로써 선택이 행해진다. 일부 실시예에서, 사용자는 가능한 영상 설정 조절의 메뉴로부터 초점 조절을 선택한다.
제3 스테이지(2320)는 초점 조절 동작이 완료된 후의 남자의 영상(2340)을 보여주고 있다. 도시된 바와 같이, 영상(2340)은 영상(2330)과 유사하지만, 영상(2340) 내의 남자가 더 선명하게 보인다. 이것은 카메라의 렌즈가 남자에게 적절히 초점이 맞춰져 있다는 것을 나타낸다. 일부 실시예에서, 적절히 초점이 맞춰진 영상은 부적절하게 초점이 맞춰진 영상 이후에 캡처되는 영상이다. 제2 스테이지(2315)에서 개시된 초점 조절 동작은 장치(2300)의 카메라에 의해 캡처되는 후속 영상의 초점을 조절한다.
도 21로 돌아가서, 프로세스(2100)는 (2120에서) 영상에 대해 영상 크기 조정을 수행한다. 일부 실시예는 영상을 인코딩하는 데 사용되는 비트의 수를 감소시키기 위해(즉, 비트 레이트를 낮추기 위해) 영상에 대해 영상 크기 조정을 수행한다. 일부 실시예에서, 프로세스(2100)는 도 26을 참조하여 이하에서 기술하는 바와 같이 영상 크기 조정을 수행한다.
프로세스(2100)는 그 다음에 (2125에서) 영상에 대해 원근 보정을 수행한다. 일부 실시예에서, 프로세스(2100)는 이하에서 도 24에서 기술하는 바와 같이 원근 보정을 수행한다. 이러한 원근 보정은 듀얼 카메라 모바일 장치의 배향 및 움직임을 식별해 주는 하나 이상의 가속도계 및/또는 자이로스코프 센서에 의해 얻어진 데이터를 사용하는 것을 수반한다. 이 데이터는 이어서 오프되어 있는 원근을 보정하기 위해 영상을 수정하는 데 사용된다.
영상에 대해 원근 보정이 수행된 후에, 프로세스(2100)는 (2130에서) 영상의 동적 범위를 조절한다. 일부 실시예에서, 영상의 동적 범위는 영상에서의 각각의 픽셀이 가질 수 있는 가능한 값의 범위이다. 예를 들어, 0 내지 255의 동적 범위를 갖는 영상이 0 내지 128의 범위 또는 임의의 다른 값 범위로 조절될 수 있다. 영상의 동적 범위를 조절하는 것은 영상을 인코딩하는 데 사용될 비트의 양을 감소시킬 수 있고(즉, 비트 레이트를 낮출 수 있고) 그로써 영상을 부드럽게(smooth out) 할 수 있다.
영상의 동적 범위를 조절하는 것은 또한 다양한 다른 목적을 위해 사용될 수 있다. 한 목적은 영상 잡음을 감소시키는 것이다(예컨대, 잡음이 많은 카메라 센서에 의해 영상이 캡처되었다). 잡음을 감소시키기 위해, 블랙 레벨이 보다 밝은 블랙을 포함하게 재정의되도록[즉, 크러쉬 블랙(crush black)], 영상의 동적 범위가 조절될 수 있다. 이러한 방식으로, 영상의 잡음이 감소된다. 동적 범위 조절의 다른 목적은 영상을 향상시키기 위해 하나 이상의 컬러 또는 컬러의 범위를 조절하는 데 있다. 예를 들어, 일부 실시예는 전방 카메라에 의해 캡처된 영상이 사람의 얼굴의 영상인 것으로 가정할 수 있다. 그에 따라, 사람의 볼이 붉게/보다 붉게 보이게 하기 위해 적색 및 핑크 컬러를 증가시키도록 영상의 동적 범위가 조절될 수 있다. 다른 목적을 위해서도 동적 범위 조절 동작이 사용될 수 있다.
마지막으로, 프로세스(2100)는 (2135에서) 영상을 인코딩하는 데 사용되는 하나 이상의 레이트 제어기 파라미터를 결정한다. 일부 실시예에서, 이러한 레이트 제어기 파라미터는 양자화 파라미터 및 프레임 유형(예컨대, 예측 코딩된, 양방향 코딩된, 인트라 코딩된)을 포함할 수 있다. 이어서, 프로세스는 종료한다.
프로세스(2100)의 다양한 동작이 특정의 순서로 수행되는 것으로 예시되어 있지만, 당업자라면 이들 동작(노출 조절, 초점 조절, 원근 보정 등) 중 다수가 임의의 순서로 수행될 수 있고 서로 독립적이라는 것을 잘 알 것이다. 즉, 일부 실시예의 프로세스는 노출 조절 이전에 초점 조절을 수행할 수 있거나, 도 21에 예시된 프로세스에 대한 유사한 수정을 수행할 수 있다.
1. 원근 보정
앞서 언급한 바와 같이, 일부 실시예는 영상을 디스플레이하거나 전송하기 전에 영상의 원근 보정을 수행한다. 일부 경우에, 듀얼 카메라 모바일 장치 상의 카메라들 중 하나 이상이 그것의 피사체와 적절히 배향되어 있지 않을 것이고, 보정되지 않은 영상에서 피사체가 왜곡되어 있는 것처럼 보일 것이다. 영상에서의 객체가 실물로 어떻게 보이는지를 영상이 가깝게 반영하도록 영상을 처리하기 위해 원근 보정이 사용될 수 있다.
도 24는 도 16에 예시된 것과 같은 일부 실시예의 영상 처리 관리자에 의해 수행되는 원근 보정 프로세스(2400)를 개념적으로 나타낸 것이다. 일부 실시예의 프로세스(2400)는 도 9에 도시된 영상 처리 계층(930)[영상 처리 관리자(1608)를 포함할 수 있음]에 의해 수행된다. 일부 실시예는 영상을 디스플레이하거나 전송하기 전에 최근에 캡처된 비디오 영상의 원근을 보정하기 위해 프로세스(2100)의 동작(2125)에서 프로세스(2400)를 수행한다.
프로세스(2400)는 (2405에서) 가속도계 센서(일부 실시예에서, 듀얼 카메라 모바일 장치의 일부일 수 있음)로부터 데이터를 수신하는 것으로 시작한다. 일부 실시예의 가속도계 센서는 하나 이상의 축을 따라 장치의 속도의 변화율(즉, 장치의 가속도)을 측정한다. 프로세스는 또한 (2410에서) 자이로스코프 센서(일부 실시예에서, 역시 듀얼 카메라 모바일 장치의 일부임)로부터 데이터를 수신한다. 일부 실시예의 자이로스코프 및 가속도계 센서는 듀얼 카메라 모바일 장치의 배향을 식별하기 위해 개별적으로 또는 결합하여 사용될 수 있다.
그 다음에, 프로세스(2400)는 (2415에서) 가속도계 및 자이로스코프 센서로부터 획득된 데이터에 기초하여 수행할 원근 보정의 양을 결정한다. 일반적으로, 배향이 축으로부터 멀리 벗어나 있을수록, 최적의 영상을 생성하기 위해 더 많은 원근 보정이 필요할 것이다. 일부 실시예는 장치의 배향에 기초하여 원근 보정의 양을 나타내기 위해 와프 파라미터(warp parameter)를 계산한다.
수행할 원근 보정의 양을 결정한 후에, 프로세스(2400)는 (2420에서) 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 영상을 수신한다. 이 프로세스는 카메라에 의해 캡처된 비디오 시퀀스에서의 각각의 영상에 대해 수행될 수 있다. 일부 실시예는 듀얼 카메라 모바일 장치 상의 2개의 카메라 각각으로부터 오는 영상에 대해 개별적인 계산을 수행할 수 있다.
프로세스는 이어서 (2425에서) 결정된 원근 보정의 양에 기초하여 영상을 수정한다. 일부 실시예는 또한, 와프 파라미터 또는 원근 보정의 양의 기타 표현에 부가하여, 기준 영상 또는 기타 정보(예컨대, 보정이 수행되어야 하는 사용자-입력 점)를 사용한다. 영상을 수정한 후에, 프로세스(2400)가 종료된다.
도 25는 일부 실시예의 예시적인 영상 처리 동작을 개념적으로 나타낸 것이다. 이 도면은 원근 보정을 사용하지 않는 제1 영상 처리 모듈(2520)에 의해 수행되는 제1 영상 처리 동작(2505), 및 원근 보정을 사용하는 제2 영상 처리 모듈(2565)에 의해 수행되는 제2 영상 처리 동작(2550)을 나타내고 있다.
도시된 바와 같이, 제1 영상 처리 동작(2505)은 블록 쪽으로 어떤 각도에서 아래쪽을 보고 있는 대기 원근법(aerial perspective)으로부터의 블록(2515)의 제1 영상(2510)에 대해 수행된다. 그 시점에서 볼 때, 블록(2515)의 상부가 블록의 하부보다 더 가깝다. 그에 따라, 블록(2515)은 제1 영상(2510)을 캡처한 카메라 쪽으로 기울어진 것처럼 보인다. 도 25는 또한 제1 영상 처리 모듈(2520)에 의한 처리 이후의 처리된 제1 영상(2525)을 보여주고 있다. 도시된 바와 같이, 처리된 제1 영상(2525)에서의 블록(2515)은 처리 후에 동일한 것처럼 보이는데, 그 이유는 제1 영상 처리 모듈(2520)이 어떤 원근 보정도 수행하지 않았기 때문이다.
제2 영상 처리 동작(2550)은 블록(2560)의 제2 영상(2555)에 대해 수행된다. 블록(2560)은 제1 영상(2510)에서의 블록(2515)과 동일하다. 도 25는 또한 제2 영상 처리 모듈(2565)의 원근 보정기(2570)에 의한 제2 영상(2555)의 처리 이후의 처리된 제2 영상(2575)을 나타내고 있다. 원근 보정기(2570)는 제2 영상(2555)의 원근을 보정하기 위해 프로세스(2400)를 사용할 수 있다. 제2 영상(2555)을 캡처한 카메라가 어떤 아래쪽 각도로 기울어져 있다는 것을 나타내는 가속도계 및 자이로스코프로부터의 데이터(및 어쩌면 다른 데이터)에 기초하여, 원근 보정기(2570)는 처리된 제2 영상(2575)에서는 블록이 똑바로 있는 것처럼 보이도록, 제2 영상을 보정할 수 있다.
2. 크기 조정 및 비트 스트림 조작
일부 실시예의 영상 처리 계층(930)에 의해 수행되는 도 21을 참조하여 전술한 기능들 중에는 영상 크기 조정 및 비트스트림 조작(bitstream manipulation)이 있다. 영상 크기 조정[동작(2130)에서 수행됨]은 일부 실시예에서 영상을 스케일 업 또는 스케일 다운하는 것(즉, 영상을 표현하는 데 사용되는 픽셀의 수를 수정하는 것)을 포함한다. 일부 실시예에서, 비트스트림 조작은 크기 조정 후의 영상의 크기를 나타내는 데이터를 비트스트림에 삽입하는 것을 포함한다. 이 크기 조정 및 비트스트림 조작은 일부 실시예에서 인코더 드라이버[예컨대, 드라이버(1635)]에 의해 수행된다.
도 26은 일부 실시예의 이러한 인코더 드라이버(2600)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 것이고, 예시적인 영상(2605)에 대해 인코더 드라이버(2600)에 의해 수행되는 예시적인 크기 조정 및 비트스트림 조작 동작을 보여주고 있다. 일부 실시예에서, 영상(2605)은 화상 회의 중인 다른 장치(들)에게 전송하기 위해 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 비디오의 영상이다. 도 16을 참조하면, 일부 실시예에서, 비디오 영상은 CIPU(1650)로부터 CIPU 드라이버(1630) 및 카메라 소스 모듈(1622)을 통해 버퍼(1606)로 이동할 것이고, 그 비디오 영상은 영상 처리 관리자(1608)에 의해 버퍼로부터 검색된다. 영상 처리 관리자(1608)에서 영상 처리(예컨대, 초점 조절, 노출 조절, 원근 보정)를 거친 후에, 영상은 버퍼(1610) 및 비디오 압축기 모듈(1624)를 통해 인코더 드라이버(1635)로 송신된다.
도시된 바와 같이, 인코더 드라이버(2600)는 처리 계층(2610) 및 레이트 제어기(2645)를 포함하고 있다. 일부 실시예의 레이트 제어기의 예는 이하에서 기술하는 도 30에 예시되어 있다. 처리 계층(2610)은 영상 크기 조정기(2615) 및 비트스트림 관리자(2625)를 포함하고 있다. 일부 실시예에서, 이들 모듈은 영상이 인코딩되기 이전 및 그 이후 둘 다에서 영상에 대해 다양한 동작을 수행한다. 이 예에서, 영상 크기 조정기가 인코더 드라이버(2600)의 처리 계층(2610)의 일부로서 도시되어 있지만, 일부 실시예는 영상 크기 조정기를 인코더 드라이버(2600)보다는 영상 처리 관리자(1608)의 일부로서 구현한다(즉, 영상 및 크기 데이터를 인코더 드라이버로 송신하기 전에 영상 크기 조정이 행해진다).
도시된 바와 같이, 영상 크기 조정기(2615)는, 영상이 레이트 제어기(2645)를 통해 인코더(2650)로 송신되기 전에 영상의 크기를 조정한다. 영상(2605)은 크기 조정기(2615)를 통해 송신되고 영상(2630)으로 스케일 다운된다. 영상을 스케일 다운하는 것에 부가하여, 일부 실시예는 또한 영상을 스케일 업할 수 있다.
도 26에 도시된 바와 같이, 일부 실시예는 들어오는 영상[예컨대, 영상(2605)]을 스케일 다운하고 이어서 스케일 다운된 영상[예컨대, 영상(2630)]을 들어오는 영상과 동일한 크기(단위: 픽셀)인 공간 중복성이 있는(spatially redundant) 영상[예컨대, 영상(2635)]에 중첩시킨다[즉, 영상(2605)의 픽셀 행 및 열의 수가 공간 중복성이 있는 영상(2635)의 픽셀 행 및 열의 수와 같다]. 일부 실시예는 [도시된 바와 같이, 합성 영상(2640)을 생성하기 위해] 스케일 다운된 영상(2630)을 공간 중복성이 있는 영상의 좌측 상부 코너에 중첩시키는 반면, 다른 실시예는 스케일 다운된 영상을 공간 중복성이 있는 영상의 다른 섹션(예컨대, 중앙, 우측 상부, 중앙 상부, 중앙 하부, 우측 하부 등)에 중첩시킨다.
일부 실시예에서, 공간 중복성이 있는 영상은 실질적으로 전부가 하나의 컬러(예컨대, 흑색, 청색, 적색, 백색 등)로 되어 있거나 반복적 패턴(예컨대, 체크 무늬, 줄무늬 등)을 갖는 영상이다. 예를 들어, 도 26에 도시되어 있는 공간 중복성이 있는 영상(2635)은 반복적인 열십자 패턴을 가진다. 합성 영상(2640)의 공간 중복성이 있는 부분은 반복적 성질로 인해 인코더에 의해 적은 양의 데이터로 쉽게 압축될 수 있다. 게다가, 영상 시퀀스가 모두 스케일 다운되고, 사용되는 공간 중복성이 있는 영상이 시퀀스에서의 각각의 영상에 대해 동일한 경우, 인코딩된 영상을 표현하는 데 필요한 데이터의 양을 훨씬 더 감소시키기 위해 시간 압축이 사용될 수 있다.
영상 크기 조정기(2615)의 일부 실시예는 또한 크기 조정된 영상의 크기[예컨대, 스케일 다운된 영상(2630)의 크기]를 나타내는 크기 데이터(2620)를 생성하고, 이 생성된 크기 데이터(2620)를 비트스트림 관리자(2625)로 송신한다. 일부 실시예의 크기 데이터(2620)는 크기 조정된 영상(2630)의 픽셀 행의 수 및 픽셀 열의 수로 되어 있는 크기 조정된 영상(2630)의 크기를 나타낸다. 일부 실시예에서, 크기 데이터(2620)는 또한 합성 영상(2640)에서의 크기 조정된 영상(2630)의 위치를 나타낸다.
영상이 크기 조정된 후에, 합성 영상(2640)은 레이트 제어기(2645)를 통해 인코더(2650)로 송신된다. 레이트 제어기(2645)는, 이하에서 더욱 상세히 기술되는 바와 같이, 일부 실시예에서 인코더(2650)에 의해 출력되는 영상의 비트 레이트(즉, 데이터 크기)를 제어한다. 일부 실시예의 인코더(2650)는 영상을 압축하고 인코딩한다. 인코더(2650)는 H.264 인코딩 또는 다른 인코딩 방법을 사용할 수 있다.
일부 실시예의 비트스트림 관리자(2625)는 인코더(2650)로부터 하나 이상의 인코딩된 영상의 비트스트림을 수신하고, 비트스림에 크기 데이터를 삽입한다. 예를 들어, 일부 실시예에서, 비트스트림 관리자(2625)는 영상 크기 조정기(2615)로부터 크기 데이터(2620)를 수신하고, 인코더(2650)로부터 수신되는 인코딩된 합성 영상(2640)의 비트스트림(2655)에 크기 데이터(2620)를 삽입한다. 이 경우에, 비트스트림 관리자(2625)의 출력은 크기 데이터(2620)를 포함하는 수정된 비트스트림(2660)이다. 상이한 실시예들은 비트스트림(2655)의 상이한 위치들에 크기 데이터(2620)를 삽입한다. 예를 들어, 비트스트림(2660)은 비트스트림(2660)의 시작에 삽입된 크기 데이터(2620)를 보여주고 있다. 그렇지만, 다른 실시예는 크기 데이터(2620)를 비트스트림(2655)의 끝에, 비트스트림(2655)의 중간에, 또는 비트스트림(2655) 내의 임의의 다른 위치에 삽입한다.
일부 실시예에서, 비트스트림(2655)은 합성 영상(2640)을 포함하는 하나 이상의 인코딩된 영상의 시퀀스의 비트스트림이다. 이러한 실시예들 중 일부 실시예에서, 시퀀스에서의 영상 모두가 동일한 크기로 크기 조정되고, 크기 데이터(2620)는 그 크기 조정된 영상의 크기를 나타낸다. 영상이 화상 회의의 상대방 쪽에 있는 장치에게 전송된 후에, 수신측 장치는 비트스트림으로부터 크기 정보를 추출하고, 크기 정보를 사용하여 수신된 영상을 적절히 디코딩할 수 있다.
도 27은 드라이버(2600) 등의 듀얼 카메라 모바일 장치의 인코더 드라이버에 의해 수행되는 영상 크기 조정 프로세스(2700)를 개념적으로 나타낸 것이다. 프로세스(2700)는 (2705에서) 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 영상[예컨대, 영상(2605)]을 수신하는 것으로 시작한다. 듀얼 카메라 장치가 양쪽 카메라를 사용하여 영상을 캡처하고 있을 때, 일부 실시예는 양쪽 카메라로부터의 영상에 대해 프로세스(2700)를 수행한다.
그 다음에, 프로세스(2700)는 (2710에서) 수신된 영상을 크기 조정한다. 앞서 살펴본 바와 같이, 상이한 실시예들은 영상(2605)을 상이한 방식들로 크기 조정한다. 예를 들어, 도 26에서의 영상(2605)은 스케일 다운되고 공간 중복성이 있는 영상(2635)에 중첩되어, 합성 영상(2640)을 생성한다.
프로세스(2700)는 이어서 (2715에서) 크기 조정된 영상[예컨대, 크기 조정된 영상(2630)을 포함하는 합성 영상(2640)]을 인코딩을 위해 인코더(2650)로 송신한다. 프로세스(2700)의 일부 실시예는, 인코더가 영상을 인코딩하는 비트 레이트를 결정하는 레이트 제어기를 통해, 크기 조정된 영상(2630)[합성 영상(2640)에 포함됨]을 인코더(2650)로 송신한다. 일부 실시예의 인코더(2650)는 (예컨대, 이산 코사인 변환, 양자화, 엔트로피 인코딩 등을 사용하여) 영상을 압축하고 인코딩하며, 인코딩된 영상을 갖는 비트스트림을 인코더 드라이버(2600)로 반환한다.
그 다음에, 프로세스(2700)는 (2720에서) 크기 조정된 영상의 크기를 나타내는 데이터[예컨대, 크기 데이터(2620)]를 비트스트림 관리자로 송신한다. 도 26에 도시된 바와 같이, 이 동작은 일부 실시예에서 인코더 드라이버(2600) 내에서 수행된다[즉, 인코더 드라이버(2600) 내의 한 모듈이 인코더 드라이버(2600) 내의 다른 모듈로 크기 데이터를 송신한다].
크기 조정된 영상이 인코더(2650)에 의해 인코딩된 후에, 프로세스(2700)는 (2725에서) 인코더로부터 비트스트림을 수신한다. 도시된 바와 같이, 일부 실시예는 크기 데이터도 수신한 비트스트림 관리자에서 비트스트림을 수신한다. 수신된 비트스트림은 인코딩된 합성 영상을 포함하고, 또한 비디오 시퀀스에서의 하나 이상의 부가의 영상도 포함할 수 있다.
프로세스(2700)는 이어서 (2730에서) 크기 조정된 영상의 크기를 나타내는 데이터[예컨대, 크기 데이터(2620)]를 비트스트림에 삽입하고 종료된다. 도 26에 도시된 바와 같이, 이 동작은 또한 일부 실시예에서 비트스트림 관리자에 의해 수행된다. 앞서 언급한 바와 같이, 상이한 실시예들은 크기 데이터를 비트스트림의 상이한 부분들에 삽입한다. 예시된 예에서, 크기 데이터(2620)는 얻어진 비트스트림(2660)에 나타낸 바와 같이 비트스트림(2655)의 시작에 삽입된다. 이 비트스트림은 이제 화상 회의에 참가하고 있는 다른 장치에게 전송될 수 있고, 그 장치에서 디코딩되고 시청될 수 있다.
일부 실시예에서, 디코더 드라이버[예컨대, 드라이버(1640)]는 인코더 드라이버의 반대 기능을 수행한다. 즉, 디코더 드라이버는 수신된 비트스트림으로부터 크기 데이터를 추출하고, 비트스트림을 디코더로 전달하며, 크기 데이터를 사용하여 디코딩된 영상을 크기 조정한다. 도 28은 일부 실시예의 이러한 디코더 드라이버(2800)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 것이고, 예시적인 비트스트림(2825)에 대해 디코더 드라이버(2800)에 의해 수행되는 예시적인 비트스트림 조작 및 크기 조정 동작을 보여주고 있다.
일부 실시예에서, 비트스트림(2825)은 화상 회의 중인 장치의 카메라에 의해 캡처되고 디코더 드라이버(2800)가 동작하는 장치에게 전송되는 비디오의 인코딩된 영상을 포함하는 비트스트림[예컨대, 드라이버(2600) 등의 인코더 드라이버로부터의 비트스트림]이다. 도 16을 참조하면, 일부 실시예에서, 비트스트림은 네트워킹 관리자(1614)에 의해 수신되고 버퍼(1616)로 송신될 것이며, 이 비트스트림은 비디오 압축 해제기 모듈(1626)에 의해 버퍼로부터 검색되고 디코더 드라이버(1640)로 송신된다.
도시된 바와 같이, 디코더 드라이버(2800)는 처리 계층(2805)을 포함하고 있다. 처리 계층(2805)은 영상 크기 조정기(2810) 및 비트스트림 관리자(2820)를 포함하고 있다. 일부 실시예에서, 이들 모듈(2810, 2820)은 영상이 디코딩되기 이전 및 그 이후 둘 다에서 수신된 영상에 대해 다양한 동작을 수행한다. 이 예에서, 영상 크기 조정기(2810)가 디코더 드라이버(2800)의 처리 계층(2805)의 일부로서 도시되어 있지만, 일부 실시예는 영상 크기 조정기를 디코더 드라이버보다는 영상 처리 관리자(1608)의 일부로서 구현한다[즉, 영상을 디코더 드라이버(2800)로부터 송신한 후에 영상 크기 조정이 행해진다].
도시된 바와 같이, 일부 실시예의 비트스트림 관리자(2820)는 하나 이상의 인코딩된 영상(즉, 비디오 시퀀스에서의 영상)의 비트스트림을 수신하고, 비트스트림을 디코딩을 위해 디코더(2835)로 송신하기 전에 비트스트림으로부터 크기 데이터를 추출한다. 예를 들어, 도 28에 예시된 바와 같이, 비트스트림 관리자(2820)는 인코딩된 영상의 비트스트림(2825)을 수신하고, 비트스트림(2825)으로부터 크기 데이터(2815)를 추출하며, 얻어진 비트스트림(2830)[크기 데이터(2815)를 갖지 않음]을 디코딩을 위해 디코더(2835)로 송신한다. 도시된 바와 같이, 일부 실시예에서, 비트스트림 관리자(2820)는 추출된 크기 데이터(2815)를 영상 크기 조정기(2810)로 송신한다.
일부 실시예의 크기 데이터(2815)는 인코더 드라이버(2600)에 의해 비트스트림에 삽입된 크기 데이터(2620)와 동일하다. 도 26의 설명에서 앞서 기술한 바와 같이, 일부 실시예의 크기 데이터(2815)는 서브영상(2845)의 픽셀 행의 수 및 픽셀 열의 수로 서브영상(2845)의 크기를 나타낸다. 크기 데이터(2815)는 또한 큰 공간 중복성이 있는 영상(2840) 내에서의 서브영상(2845)의 위치를 나타낼 수 있다. 이 예에서, 비트스트림(2825)은 비트스트림(2825)의 시작에 삽입된 크기 데이터(2815)를 보여주고 있다. 그렇지만, 앞서 언급한 바와 같이, 상이한 실시예들은 크기 데이터(2815)를 비트스트림(2825)의 상이한 위치들에 삽입한다.
일부 실시예의 영상 크기 조정기(2810)는 비트스트림 관리자(2820)로부터 수신된 크기 데이터를 사용하여 영상으로부터 서브영상을 추출한다. 예를 들어, 도 28은 영상 크기 조정기(2810)가 서브영상(2845)을 포함하는 영상(2840)을 디코더(2835)로부터 수신하는 것을 나타내고 있다. 도시된 바와 같이, 일부 실시예의 영상 크기 조정기(2810)는 영상(2840)으로부터 서브영상(2845)을 추출한다. 이 추출된 영상은 이어서 듀얼 카메라 모바일 장치 상에 디스플레이될 수 있다.
도 29는 드라이버(2800) 등의 화상 회의에 참가하고 있는 장치의 디코더 드라이버에 의해 수행되는 일부 실시예의 영상 추출 프로세스(2900)를 개념적으로 나타낸 것이다. 프로세스는 (2905에서) 인코딩된 영상의 비트스트림[예컨대, 비트스트림(2825)]을 수신하는 것으로 시작한다. 비트스트림은 디코더 드라이버가 동작하고 있는 장치와의 화상 회의에 참가하고 있는 장치로부터 송신될 수 있거나, 장치의 저장 장치에 저장될 수 있다. 장치가 다수의 소스로부터 영상을 수신하고 있을 때, 일부 실시예는 각각의 소스로부터의 영상에 대해 프로세스(2900)를 수행한다.
그 다음에, 프로세스(2900)는 (2910에서) 비트스트림으로부터 크기 데이터를 추출한다. 앞서 살펴본 바와 같이, 이 크기 데이터는 비트스트림에서의 상이한 위치들에서 발견될 수 있다. 일부 실시예는 크기 데이터를 어디에서 찾아야 하는지를 알고 있는 반면, 다른 실시예는 수신된 비트스트림에서 크기 데이터가 어디에 위치하고 있는지를 나타내는 특정의 서명을 찾는다. 일부 실시예에서, 크기 데이터는 크기(예컨대, 각각의 행에 있는 픽셀의 수 및 각각의 열에 있는 픽셀의 수) 및 인코딩된 영상에서의 서브영상의 위치를 나타낸다.
프로세스(2900)는 이어서 (2915에서) 추출된 크기 데이터를 영상 크기 조정기로 송신한다. 도 28에 도시된 바와 같이, 이 동작은 일부 실시예에서 디코더 드라이버 내에서 수행된다(즉, 디코더 드라이버 내의 한 모듈이 디코더 드라이버 내의 다른 모듈로 크기 데이터를 송신한다).
프로세스(2900)는 또한 (2920에서) 비트스트림을 디코딩을 위해 디코더로 송신한다. 일부 실시예에서, 디코더는 비트스트림을 압축 해제하고 (예컨대, 역 이산 코사인 변환, 역 양자화 등을 사용하여) 디코딩하며, 재구성된 영상을 디코더 드라이버로 반환한다.
비트스트림이 디코더에 의해 디코딩된 후에, 프로세스(2900)는 (2925에서) 디코더로부터 디코딩된 영상을 수신한다. 도시된 바와 같이, 일부 실시예는 비트스트림 관리자로부터 크기 데이터도 수신한 영상 크기 조정기에서 영상을 수신한다. 프로세스는 이어서 (2930에서) 수신된 크기 데이터를 사용하여 디코딩된 영상으로부터 서브영상을 추출한다. 도시된 바와 같이, 서브영상(2845)은 크기 데이터(2815)에 나타낸 바와 같이, 디코딩된 영상(2840)의 좌측 상부로부터 추출된다. 이 추출된 서브영상은 이제 디스플레이 장치(예컨대, 듀얼 카메라 모바일 장치의 화면) 상에 디스플레이될 수 있다.
3. 레이트 제어기
일부 실시예에서, 장치의 2개의 카메라가 상이한 일련의 특성을 가지고 있다. 예를 들어, 일부 실시예에서, 전방 카메라는 동영상의 캡처에 최적화되어 있는 저해상도 카메라인 반면, 후방 카메라는 정지 영상의 캡처에 최적화되어 있는 고해상도 카메라이다. 장치의 단가, 기능, 및/또는 기하학적 형태 등의 이유로, 다른 실시예는 상이한 특성의 카메라들의 상이한 조합들을 사용할 수 있다.
상이한 특성을 갖는 카메라들은 상이한 아티팩트들을 유입시킬 수 있다. 예를 들어, 고해상도 카메라는 저해상도 카메라보다 더 많은 잡음을 나타낼 수 있다. 고해상도 카메라에 의해 캡처된 영상은 저해상도 카메라에 의해 캡처된 영상보다 더 높은 레벨의 공간적 또는 시간적 복잡도를 나타낼 수 있다. 또한, 상이한 광학적 특성을 갖는 상이한 카메라들은 캡처된 영상에 상이한 감마값들을 유입시킬 수 있다. 영상을 캡처하기 위해 상이한 카메라들에 의해 사용되는 상이한 광 감지 메커니즘들도 역시 상이한 아티팩트들을 유입시킬 수 있다.
이들 카메라-고유 아티팩트 중 일부는 다른 소스들로부터 발생된 아티팩트를 숨긴다. 예를 들어, 높은 레벨의 잡음을 갖는 고해상도 카메라에 의해 캡처된 영상에서, 비디오 인코딩 프로세스의 부산물인 아티팩트가 눈에 덜 보이게 된다. 카메라-고유 아티팩트를 숨기기 위해 잡음(양자화 왜곡 등)을 인코딩할 때, 비디오 인코딩 프로세스는 낮은 비트 레이트를 달성하기 위해 큰 양자화 계단 크기를 사용할 수 있다. 한편, 카메라가 아티팩트를 덜 유입시킬 때(저해상도 카메라의 경우 등), 비디오 인코딩 프로세스는 양자화로 인한 허용가능하지 않은 레벨의 시각적 왜곡을 피하기 위해 더 미세한 양자화 계단 크기를 사용할 수 있다. 따라서, 이들 카메라-고유 특성을 이용하도록 또는 보상하도록 최적화되어 있는 비디오 인코딩 프로세스는 이들 카메라-고유 특성을 고려하지 않은 비디오 인코딩 프로세스보다 더 나은 레이트-왜곡 트레이드오프를 달성할 수 있다.
레이트-왜곡 트레이드오프를 수행하는 데 이들 카메라-고유 특성을 이용하기 위해, 일부 실시예는 2개의 비디오 인코딩 프로세스(각각의 프로세스가 2개의 카메라 각각에 최적화되어 있음)를 구현한다. 도 30은 2개의 카메라(3060, 3070)에 대한 2개의 비디오 인코딩 프로세스를 갖는 시스템의 예를 나타낸 것이다. 도 30에 도시된 바와 같이, 시스템(3000)은 인코더 드라이버(3010), 레이트 제어기(3020, 3040), 및 비디오 인코더(3030)를 포함하고 있다. 인코더(3030)는 비디오 카메라(3060, 3070)로부터 캡처된 비디오 영상을 비트스트림(3080, 3090)으로 인코딩한다.
일부 실시예에서, 비디오 인코더 드라이버(3010)는 하나 이상의 처리 유닛 상에서 실행 중인 소프트웨어 모듈이다. 비디오 인코더 드라이버는 비디오 인코더(3030)와 시스템의 다른 구성요소(비디오 카메라, 영상 처리 모듈, 네트워크 관리 모듈, 및 저장 버퍼 등) 사이의 인터페이스를 제공한다. 인코더 드라이버(3010)는 카메라 및 영상 처리 모듈로부터 비디오 인코더(3030)로의 캡처된 비디오 영상의 흐름을 제어하고, 또한 저장 버퍼 및 네트워크 관리 모듈로의 인코딩된 비트스트림(3080, 3090)의 통로를 제공한다.
도 30에 도시된 바와 같이, 인코더 드라이버(3010)는 레이트 제어기의 2개의 상이한 인스턴스(3020, 3040)를 포함하고 있다. 이들 다수의 인스턴스는 2개의 상이한 카메라에 대한 2개의 상이한 레이트 제어기 또는 2개의 상이한 카메라에 대해 2개의 상이한 방식으로 구성되는 하나의 레이트 제어기일 수 있다. 구체적으로는, 일부 실시예에서, 2개의 레이트 제어기(3020, 3040)는 2개의 개별적인 레이트 제어기를 나타낸다. 다른 대안으로서, 다른 실시예에서, 2개의 레이트 제어기(3020, 3040)는 하나의 레이트 제어기의 2개의 상이한 구성이다.
도 30은 또한 화상 회의 동안 사용하기 위해 레이트 제어 동작에 대한 인코딩 상태 정보를 저장하는 상태 버퍼(3015)를 포함하는 인코더 드라이버(3010)를 나타내고 있다. 구체적으로는, 일부 실시예에서, 2개의 상이한 레이트 제어기 또는 동일한 레이트 제어기의 2개의 상이한 구성은 화상 회의 동안 상태 버퍼(3015)에 저장되어 있는 동일한 인코딩 상태 정보를 공유한다. 이러한 상태 정보의 공유는 듀얼 비디오 캡처 화상 회의에서 균일한 레이트 제어기 동작을 가능하게 해 준다. 이 공유는 또한 단일 비디오 캡처 화상 회의에서 카메라 전환 동작 동안 최적의 비디오 인코딩을 가능하게 해 준다(즉, 현재의 카메라에 의해 캡처된 비디오의 인코딩을 위한 레이트 제어 동작이 이전의 카메라에 의해 캡처된 비디오의 인코딩을 위해 레이트 제어 동작에 의해 유지된 인코딩 상태 정보를 사용할 수 있게 해 준다). 도 30은 상태 버퍼(3015)를 인코더 드라이버(3010)의 일부로서 나타내고 있지만, 다른 실시예는 상태 버퍼(3015)를 인코더 드라이버(3010) 외부에 구현하고 있다.
상이한 실시예들은 인코딩 상태 정보를 나타내는 상이한 유형들의 데이터(예컨대, 상이한 유형들의 인코딩 파라미터)를 상태 버퍼(3015)에 저장한다. 이러한 인코딩 상태 정보의 일례는 화상 회의에 대한 현재의 목표 비트 레이트이다. 목표 비트 레이트를 식별하는 한 방식이 상기 섹션 III.B에 기술되어 있다. 이러한 인코딩 상태 정보의 다른 예는, 다른 인코딩 상태 정보 중에서도 특히, 버퍼 점유율, 최대 버퍼 점유율, 하나 이상의 최근에 인코딩된 프레임의 비트 레이트를 포함한다.
레이트 제어기는 이어서 그것의 레이트 제어 동작에서 사용되는 하나 이상의 파라미터를 계산하기 위해 목표 비트 레이트(또는 상태 버퍼에 저장되어 있는 다른 인코딩 상태 파라미터)를 사용할 수 있다. 예를 들어, 이하에서 더 기술하는 바와 같이, 일부 실시예의 레이트 제어기는 매크로블록 또는 프레임에 대한 양자화 파라미터(QP)를 계산하기 위해 현재의 목표 비트 레이트를 사용한다. 예로서, 일부 실시예는 양자화 조절 파라미터[이로부터 매크로블록 및/또는 프레임에 대한 양자화 파라미터(QP)를 도출함]를 계산하기 위해 현재의 목표 비트 레이트를 사용한다. 그에 따라, 화상 회의에서의 카메라 전환 동작 동안, (2개의 레이트 제어기의 또는 하나의 레이트 제어기의 2개의 상이한 구성의) 2개의 레이트 제어 동작 사이에서 목표 비트 레이트를 공유하는 것은 현재의 카메라에 의해 캡처된 비디오를 인코딩하기 위한 레이트 제어 동작이 이전의 카메라에 의해 캡처된 비디오를 인코딩하기 위한 이전의 레이트 제어 동작으로부터의 인코딩 상태 데이터의 혜택을 받을 수 있게 해 준다.
도 30은 인코더 드라이버(3010)를 2개의 상이한 레이트 제어기 인스턴스(3020, 3040)를 포함하는 것으로 나타내고 있다. 그렇지만, 다른 실시예에서, 이들 레이트 제어기 인스턴스(3020, 3040)는 비디오 인코더(3030)에 내장되어 있다. 비디오 인코더(3030)는 카메라(3060, 3070)에 의해 캡처된 비디오 영상을 디지털 비트스트림(3080, 3090)으로 인코딩한다. 일부 실시예에서, 비디오 인코더는 종래의 비디오 코딩 표준(예컨대, H.264 MPEG-4)에 부합하는 비트스트림을 생성한다. 이들 실시예들 중 일부 실시예에서, 비디오 인코더는 움직임 추정, 이산 코사인 변환("DCT"), 양자화, 및 엔트로피 인코딩을 포함하는 인코딩 동작을 수행한다. 비디오 인코더는 또한 인코딩 동작의 반대 기능인 디코딩 동작도 수행한다.
일부 실시예에서, 인코더(3030)는 양자화를 수행하는 양자화기 모듈(3032)을 포함하고 있다. 양자화기 모듈은 레이트 제어기(3020 또는 3040)로부터의 양자화 파라미터(3022 또는 3042)에 의해 제어된다. 일부 실시예에서, 각각의 양자화 파라미터는 대응하는 레이트 제어기에 의해 설정되고, 레이트 제어기와 연관되어 있는 카메라의 하나 이상의 속성의 함수이며, 이에 대해서는 이하에서 더 기술한다. 레이트 제어기는 양자화 계단 크기를 크게 설정함으로써 인코딩하는 데 사용되는 비트의 수를 감소시키거나 양자화 계단 크기를 작게 설정함으로써 사용되는 비트의 수를 증가시킬 수 있다. 양자화 계단 크기를 제어함으로써, 레이트 제어기는 또한 인코딩된 비디오 영상에 왜곡이 얼마나 유입되는지를 결정한다. 따라서, 레이트 제어기는 비트 레이트와 영상 품질 간의 트레이드오프를 수행할 수 있다. 레이트-왜곡 트레이드오프를 수행함에 있어서, 레이트 제어기는 메모리 버퍼를 오버플로우시키거나 메모리 버퍼를 언더플로우시키거나 전송 채널 용량을 초과하지 않기 위해 비트 레이트를 모니터링한다. 레이트 제어기는 또한 가능한 최상의 영상 품질을 제공하기 위해 그리고 양자화로 인한 영상 품질의 허용가능하지 않은 왜곡을 피하기 위해 비트 레이트를 제어해야만 한다. 일부 실시예에서, 각각의 레이트 제어기는 모니터링된 데이터를 일련의 상태 데이터 값으로서 상태 버퍼(3015)에 저장한다. 일부 실시예에서, 레이트 제어기(3020, 3040)는 레이트-왜곡 트레이드오프를 최적화하기 위해 카메라-고유 속성을 사용한다.
일부 실시예에서, 각각의 레이트 제어기는 그의 양자화 파라미터에 수정 인자를 직접 적용함으로써 레이트-왜곡 트레이드오프를 최적화한다. 이들 실시예들 중 일부 실시예에서, 수정 인자는 사전 결정되어 카메라와 함께 장치에 내장되고, 장치는 이들 수정 인자를 동적으로 계산할 필요가 없다. 다른 실시예에서, 시스템은 카메라에 고유한 적절한 수정 인자를 동적으로 결정하기 위해 카메라에 의해 캡처된 들어오는 영상을 사용한다. 이들 실시예들 중 일부 실시예에서, 시스템은 카메라에 관한 특정의 통계를 수집하기 위해 다수의 인코딩 패스에서 카메라에 의해 캡처된 들어오는 비디오 영상 시퀀스를 분석한다. 시스템은 이어서 카메라에 최적화되어 있는 양자화 파라미터에 대한 수정 인자를 도출하기 위해 이들 통계를 사용한다.
일부 실시예에서, 이들 카메라-고유 수정 인자는 비디오 영상의 시각적 마스킹 속성을 통해 양자화 파라미터에 적용된다. 영상 또는 영상의 일부분의 시각적 마스킹 속성은 영상 또는 영상 일부분에서 코딩 아티팩트가 얼마나 허용될 수 있는지의 표시이다. 일부 실시예는 영상 또는 영상 일부분의 광도 에너지(brightness energy)를 정량화하는 시각적 마스킹 속성을 계산하는 반면, 다른 실시예는 영상 또는 영상 일부분의 활동 에너지 또는 복잡도를 정량화하는 시각적 마스킹 속성을 계산한다. 시각적 마스킹 속성이 어떻게 계산되는지에 상관없이, 일부 실시예는 비디오 프레임에 대한 수정된 또는 마스킹된 양자화 파라미터를 계산하기 위해 시각적 마스킹 속성을 사용한다. 이들 실시예들 중 일부 실시예는 마스킹된 양자화 파라미터를 프레임 레벨 시각적 마스킹 속성 φframe 및 기준 시각적 마스킹 속성(reference visual masking attribute) φR의 함수로서 계산한다. 일부 실시예에서, 시각적 마스킹 속성 φframe 및 φR에 의해 수정되는 양자화 파라미터는 다음과 같이 표현되고:
Figure 112020009678613-pat00001
여기서 MQPframe은 프레임에 대한 마스킹된 또는 수정된 양자화 파라미터이고, QPnom은 초기 또는 공칭 양자화 값이며, βframe은 국소 통계(local statistics)에 따라 적응되는 상수이다. 일부 실시예에서, 기준 시각적 마스킹 속성 φR 및 공칭 양자화 파라미터 QPnom은 네트워크 조건의 초기 또는 주기적인 평가로부터 사전 결정된다.
일부 실시예에서, 수학식 1에서의 시각적 마스킹 속성 φframe은 다음과 같이 계산되고:
Figure 112020009678613-pat00002
여기서 avgFrameLuma는 프레임의 평균 휘도값(average luminance value)이고, avgFrameSAD는 프레임의 절대차(absolute difference)의 평균 합(average sum)이다. 상수 α, β, C, D, 및 E는 국소 통계에 따라 적은된다. 일부 실시예에서, 이들 상수는 카메라-고유 특성에 따라 적응된다.
일부 실시예는 또한 매크로블록 등의 비디오 영상의 일부분에 대한 마스킹된 양자화 파라미터를 계산한다. 그 경우에, 마스킹된 양자화 파라미터는 매크로블록 시각적 마스킹 속성 φMB의 함수로서 계산되고:
Figure 112020009678613-pat00003
여기서 βMB는 국소 통계에 따라 적응되는 상수이고, MQPframe은 일부 실시예에서 수학식 1 및 수학식 2를 사용하여 계산된다. 일부 실시예에서, 수학식 3에서의 시각적 마스킹 속성 φMB는 다음과 같이 계산되고
Figure 112020009678613-pat00004
여기서 avgMBLuma는 매크로블록의 평균 휘도값이고, avgMBSAD는 매크로블록의 절대차의 평균 합이다. 상수 α, β, A, B 및 C는 국소 통계에 따라 적응된다. 일부 실시예에서, 이들 상수는 카메라-고유 특성에 따라 적응된다.
일부 실시예는 앞서 논의한 바와 같이 수정된 양자화 파라미터를 계산하기 위해 다수의 카메라-고유 상수를 사용하기 보다는, 하나의 카메라-고유 상수만을 사용하여 양자화 파라미터를 계산함으로써 카메라-고유 레이트 제어를 수행한다. 예를 들어, 시각적 마스킹 속성 φframe 및 φMB와 양자화 파라미터 QPframe가 주어진 경우, 일부 실시예는 다음과 같이 매크로블록의 양자화 파라미터를 계산하기 위해 하나의 카메라-고유 계수 μ를 사용한다:
Figure 112020009678613-pat00005
수학식 5를 계산하기 위해, 일부 실시예는 프레임 및 매크로블록의 복잡성 척도를 각각 시각적 마스킹 속성 φframe 및 φMB로서 사용한다.
일부 실시예는 QPMB의 계산에서 상이한 카메라-고유 계수를 적용한다. 예를 들어, 일부 실시예에서, QPMB는 다음과 같이 계산되고,
Figure 112020009678613-pat00006
여기서 ρ는 카메라-고유 특성에 따라 조정되는 계수이다.
앞서 언급한 바와 같이, 상태 버퍼(3015)는 2개의 상이한 레이트 제어기 인스턴스(3020, 3040)가 그들의 레이트 제어 동작으로부터 더 나은 인코딩 결과를 획득하기 위해 화상 회의 동안 공유할 수 있는 인코딩 상태 정보를 저장한다. 일부 실시예에서, 목표 비트 레이트 RT는 이러한 공유된 상태 정보의 일례이다. 이 레이트는 프레임 시퀀스를 인코딩하기 위한 원하는 비트 레이트이다. 통상적으로, 이 비트 레이트는 비트/초의 단위로 표현되고, 섹션 III.B에서 전술한 것과 같은 프로세스에 기초하여 결정된다.
이상에서 기술한 바와 같이, 일부 실시예의 레이트 제어기는 비디오 인코더(3030)로 출력하는 프레임 및/또는 매크로블록 양자화 파라미터(들)(QP)를 계산하기 위해 목표 비트 레이트를 사용한다. 예를 들어, 일부 실시예는 양자화 조절 파라미터[이로부터 매크로블록 및/또는 프레임에 대한 양자화 파라미터(QP)를 도출함]를 계산하기 위해 현재의 목표 비트 레이트를 사용한다. 일부 실시예에서, 양자화 조절 파라미터는 이전 프레임의 비트 레이트 또는 이전 프레임의 비트 레이트의 이동 평균을 현재의 목표 비트 레이트로 나눔으로써 계산되는 분수로 표현된다. 다른 실시예에서, 이 조절 파라미터는 이러한 방식으로 정확하게 계산되지 않고, 오히려 보다 일반적으로는 (1) 이전 프레임의 비트 레이트 또는 이전 프레임의 비트 레이트의 이동 평균에 비례하고 (2) 현재의 목표 비트 레이트에 반비례한다.
이러한 양자화 조절 파라미터를 계산한 후에, 일부 실시예의 레이트 제어기는 그것이 계산하는 매크로블록 및/또는 프레임 양자화 파라미터(들)를 조절하기 위해 이 파라미터를 사용한다. 이러한 조절을 하는 한 방식은 계산된 매크로블록 및/또는 프레임 양자화 파라미터(들)를 양자화 조절 파라미터와 곱하는 것이다. 이 조절을 하는 다른 방식은 양자화 조절 파라미터로부터 오프셋 양자화 파라미터 값을 계산하고 이어서 이 오프셋 파라미터를 계산된 매크로블록 및/또는 프레임 양자화 파라미터(들)에 적용(예컨대, 차감)하는 것이다. 이들 실시예의 레이트 제어기는 이어서 조절된 매크로블록 및/또는 프레임 양자화 파라미터(들)를 비디오 인코더(3030)로 출력한다.
다른 실시예에서, 레이트 제어기는 그것의 레이트 제어 동작에서 사용되는 다른 파라미터들을 계산하기 위해 목표 비트 레이트를 사용한다. 예를 들어, 일부 실시예에서, 레이트 제어기는 매크로블록 또는 프레임에 대한 시각적 마스킹 강도를 수정하기 위해 이 비트 레이트를 사용한다.
G. 네트워킹 관리자
도 31은 도 16에 예시된 네트워킹 관리자(1614) 등의 일부 실시예의 네트워킹 관리자(3100)에 대한 소프트웨어 아키텍처를 개념적으로 나타낸 것이다. 이상에서 기술한 바와 같이, 네트워킹 관리자(3100)는 네트워킹 관리자가 동작하는 듀얼 카메라 모바일 장치와 화상 회의 중인 원격 장치 사이의 네트워크 연결(예컨대, 연결 설정, 연결 모니터링, 연결 조절, 연결 끊기 등)을 관리한다. 화상 회의 동안, 일부 실시예의 네트워킹 관리자(3100)는 또한 원격 장치에게 전송하기 위한 데이터를 처리하고 원격 장치로부터 수신된 데이터를 처리한다.
도 31에 도시된 바와 같이, 네트워킹 관리자(3100)는 세션 협상 관리자(3105), 송신기 모듈(3115), 범용 전송 버퍼(universal transmission buffer)(3120), 범용 전송 버퍼 관리자(3122), 가상 전송 프로토콜(VTP) 관리자(3125), 수신기 모듈(3130), 및 미디어 전송 관리자(3135)를 포함하고 있다.
세션 협상 관리자(3105)는 프로토콜 관리자(3110)를 포함한다. 프로토콜 관리자(3110)는 송신기 모듈(3115)이 화상 회의 동안 원격 장치로 데이터를 전송하기 위해 올바른 통신 프로토콜을 사용하도록 해 주고, 사용되는 통신 프로토콜의 규칙을 시행한다. 프로토콜 관리자(3110)의 일부 실시예는 다른 것들 중에서도 특히, 실시간 전송 프로토콜(RTP), 전송 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP), 및 하이퍼텍스트 전송 프로토콜(HTTP) 등의 다수의 통신 프로토콜을 지원한다.
세션 협상 관리자(3105)는 화상 회의에 참가하고 있는 하나 이상의 원격 장치와 듀얼 카메라 모바일 장치 사이의 연결을 설정하는 일은 물론, 회의 후에 이들 연결을 끊는 일을 맡고 있다. 일부 실시예에서, 세션 협상 관리자(3105)는 또한 (예컨대, 비디오 및/또는 오디오 스트림을 전송하고 수신하기 위해) 화상 회의 중인 원격 장치들과 듀얼 카메라 모바일 장치 사이의 멀티미디어 통신 세션을 [예컨대, 세션 개시 프로토콜(SIP)을 사용하여] 설정하는 일을 맡고 있다.
세션 협상 관리자(3105)는 또한 미디어 전송 관리자(3135)로부터 피드백 데이터를 수신하고, 피드백 데이터에 기초하여, 범용 전송 버퍼 관리자(3122)를 통해 범용 전송 버퍼(3120)의 동작(예컨대, 패킷/프레임을 전송할지 폐기할지)을 결정한다. 일부 실시예에서, 이 피드백은 단방향 대기시간 및 대역폭 추정 비트 레이트를 포함할 수 있다. 다른 실시예에서, 피드백은 패킷 손실 정보 및 왕복 지연 시간(예컨대, 화상 회의 중인 원격 장치로 송신된 패킷 및 그 장치로부터의 확인 응답의 수신에 기초하여 결정됨)을 포함한다. 미디어 전송 관리자(3135)로부터의 정보에 기초하여, 세션 협상 관리자(3105)는 너무 많은 패킷이 송신되고 있는지를 판정하고, 범용 전송 버퍼(3120)가 보다 적은 패킷을 전송하게 하라고(즉, 도 15에서 기술한 바와 같이 비트 레이트를 조절하라고) 범용 전송 버퍼 관리자(3122)에 지시할 수 있다.
송신기 모듈(3115)은 비디오 버퍼[예컨대, 도 16의 버퍼(1612)]로부터 (예컨대, 비트스트림으로서) 인코딩된 영상을 검색하고, 범용 전송 버퍼(3120) 및 가상 전송 프로토콜 관리자(3125)를 통해 화상 회의 중인 원격 장치에게 전송하기 위해 영상을 패킷화한다. 인코딩된 영상이 생성되고 송신기 모듈(3115)로 송신되는 방식이 미디어 전송 관리자(3135) 및/또는 세션 협상 관리자(3105)로부터 수신된 명령어 또는 데이터에 기초할 수 있다. 일부 실시예에서, 영상을 패킷화하는 것은 수신된 비트스트림을 각각이 특정의 크기[즉, 특정의 프로토콜에 따라 세션 협상 관리자(3105)에 의해 지정된 크기]를 갖는 패킷들의 그룹으로 나누는 것, 및 임의의 필요한 헤더(예컨대, 주소 헤더, 프로토콜 지정 헤더 등)를 부가하는 것을 포함한다.
범용 전송 버퍼 관리자(3122)는 세션 협상 관리자(3105)로부터 수신된 데이터 및/또는 명령어에 기초하여 범용 전송 버퍼(3120)의 동작을 제어한다. 예를 들어, 범용 전송 버퍼 관리자(3122)는 범용 전송 버퍼(3120)에 데이터를 전송하고, 데이터의 전송을 중단하며, 데이터를 폐기하고, 기타 등등을 하라고 명령하라고 지시받을 수 있다. 이상에서 기술한 바와 같이, 일부 실시예에서, 회의에 참가하고 있는 원격 장치가 패킷을 폐기하고 있는 것처럼 보일 때, 이것은 원격 장치로부터 수신된 확인 응답에 기초하여 인식될 것이다. 패킷 폐기를 감소시키기 위해, 범용 전송 버퍼 관리자(3122)는 더 느린 레이트로 패킷을 원격 장치에게 전송하라고 지시받을 수 있다.
범용 전송 버퍼(3120)는 송신기 모듈(3115)로부터 수신된 데이터를 저장하고, 데이터를 VTP 관리자(3125)를 통해 원격 장치에게 전송한다. 앞서 살펴본 바와 같이, 범용 전송 버퍼(3120)는 범용 전송 버퍼 관리자(3122)로부터 수신된 명령어에 기초하여 데이터(예컨대, 비디오의 영상)를 폐기할 수 있다.
일부 실시예에서, RTP는 화상 회의 동안 UDP를 통해 데이터 패킷(예컨대, 오디오 패킷 및 비디오 패킷)를 전달하는 데 사용된다. 다른 실시예는 화상 회의 동안 TCP를 통해 데이터 패킷을 전달하기 위해 RTP를 사용한다. 다른 실시예에서, 다른 전송 계층 프로토콜도 역시 사용될 수 있다.
일부 실시예는 포트 번호 쌍(즉, 소스 포트 번호 및 목적지 포트 번호)에 의해 2개의 모바일 장치 사이에 특정의 통신 채널을 정의한다. 예를 들어, 모바일 장치들 사이의 하나의 통신 채널이 하나의 포트 번호 쌍[예컨대, 소스 포트(50) 및 목적지 포트(100)]에 의해 정의될 수 있고, 모바일 장치들 사이의 또 하나의 다른 통신 채널이 또 하나의 다른 포트 번호 쌍[예컨대, 소스 포트(75) 및 목적지 포트(150)]에 의해 정의될 수 있다. 일부 실시예는 또한 통신 채널을 정의하는 데 인터넷 프로토콜(IP) 주소 쌍을 사용한다. 일부 실시예에서, 상이한 유형들의 데이터 패킷을 전송하기 위해 상이한 통신 채널들이 사용된다. 예를 들어, 비디오 데이터 패킷, 오디오 데이터 패킷, 및 제어 시그널링 데이터 패킷이 개별적인 통신 채널에서 전송될 수 있다. 그에 따라, 비디오 통신 채널은 비디오 데이터 패킷을 전송하고, 오디오 통신 채널은 오디오 데이터 패킷을 전송한다.
일부 실시예에서, 제어 통신 채널은 화상 회의 동안 로컬 모바일 장치와 원격 장치 사이에서의 메시징을 위한 것이다. 이러한 메시징의 예는 요청, 통지, 및 이러한 요청 및 통지에 대한 확인 응답을 송신 및 수신하는 것을 포함한다. 메시지 전달의 다른 예는 한 장치로부터 다른 장치로 원격 제어 명령어 메시지를 송신하는 것을 포함한다. 예를 들어, 이하에서 기술되는 원격 제어 동작(예컨대, 한 특정의 카메라로부터의 영상만을 송신하거나 특정의 카메라만을 사용하여 영상을 캡처하라고 장치에 지시하는 것)은 원격 장치의 동작을 원격으로 제어하기 위해 명령어를 로컬 장치에 대한 제어 통신 채널을 통해 로컬 장치로부터 원격 장치로 송신하는 것에 의해 수행될 수 있다. 상이한 실시예들은 실시간 전송 제어 프로토콜(real-time transport control protocol, RTCP), RTP 확장, SIP 등과 같은 상이한 프로토콜들을 사용하여 제어 통신을 구현한다. 예를 들어, 일부 실시예는 화상 회의 중인 2개의 모바일 장치 사이에서 한 제어 메시지 세트를 중계하기 위해 RTP 확장을 사용하고, 화상 회의 동안 모바일 장치들 사이에서 다른 제어 메시지 세트를 중계하기 위해 SIP 패킷을 사용한다.
일부 실시예의 VTP 관리자(3125)는 상이한 통신 채널들을 통해(예컨대, 상이한 포트 번호 쌍들을 사용하여) 전송되도록 지정되어 있는 상이한 유형의 데이터 패킷들이 단일 통신 채널을 통해(예컨대, 동일한 포트 번호 쌍을 사용하여) 전송될 수 있게 해 준다. 이것을 하는 한가지 기술은 데이터 패킷 유형을 식별하는 것, 데이터 패킷의 지정된 포트 번호 쌍을 추출함으로써 데이터 패킷이 전송되도록 지정되어 있는 통신 채널을 식별하는 것, 및 데이터 패킷의 포트 번호 쌍을 단일 통신 채널의 포트 번호 쌍으로 수정함으로써 하나의 통신 채널을 통해 전송될 데이터 패킷을 지정하는 것(즉, 모든 데이터 패킷이 동일한 포트 번호 쌍을 통해 전송됨)을 포함한다.
각각의 유형의 데이터 패킷에 대한 원래의 포트 번호 쌍을 추적하기 위해, 일부 실시예는 데이터 패킷 유형에 대한 원래의 포트 번호 쌍의 매핑을 저장한다. 이들 실시예 중 일부 실시예는 이어서 하나의 통신 채널로 다중화되고 있는 상이한 패킷들을 구분하기 위해 프로토콜의 패킷 유형 필드를 사용한다. 예를 들어, VTP 관리자로 하여금 오디오, 비디오 및 제어 패킷을 하나의 RTP 스트림으로 다중화하게 하는 일부 실시예는 화상 회의 중인 상대방 장치로 하나의 RTP 채널을 통해 전송되는 오디오, 비디오, 및 제어 패킷을 구분하기 위해 RTP 패킷 유형 필드를 사용한다. 이들 실시예들 중 일부 실시예에서, VTP 관리자는 또한 SIP 패킷에서의 제어 메시징을 상대방 장치로 라우팅한다.
일부 실시예는 상이한 프로토콜들을 사용하여 전달되는 상이한 패킷을 구별하기 위해(예컨대, RTP를 사용하여 전송된 패킷과 SIP를 사용하여 전송된 패킷을 구분하기 위해) 데이터 패킷 서명(즉, 패킷 헤더 형식)을 식별하고 검사한다. 이러한 실시예에서, 상이한 프로토콜들의 데이터 패킷들이 결정된 후에, 동일한 프로토콜을 사용하는 데이터 패킷(예컨대, RTP를 사용하는 오디오 데이터 및 비디오 데이터)의 필드가 상이한 데이터 유형들을 식별하기 위해 전술한 바와 같이 검사된다. 이러한 방식으로, VTP 관리자(3125)는 상이한 통신 채널들을 통해 전송되도록 되어 있는 상이한 데이터 패킷들을 단일 통신 채널을 통해 전송한다.
상이한 유형들의 데이터를 단일 통신 채널을 통해 결합하는 한 방식이 이상에서 기술되어 있지만, 다른 실시예는 상이한 패킷 유형들을 하나의 통신 스트림으로 다중화하기 위해 다른 기술을 이용한다. 예를 들어, 일부 실시예의 한 기술은 데이터 패킷의 원래의 포트 번호 쌍을 추적하는 것 및 나중에 추출되도록 원래의 포트 번호 쌍을 데이터 패킷 자체에 저장하는 것을 포함한다. 2명의 화상 회의 참가자 사이의 상이한 유형의 데이터를 하나의 포트 쌍 채널로 결합하는 또 다른 방식이 존재한다.
VTP 관리자(3125)가 가상화된 통신 채널을 통해 원격 장치로부터 데이터 패킷을 수신할 때, VTP 관리자(3125)는 상이한 프로토콜들을 사용하여 송신되는 상이한 패킷들을 식별하기 위해 데이터 패킷의 서명을 검사한다. 이러한 서명은 SIP 패킷과 RTP 패킷을 구분하기 위해 사용될 수 있다. 일부 실시예의 VTP 관리자는 또한 하나의 가상화된 채널로 다중화된 각종의 상이한 유형의 패킷(예컨대, 오디오, 비디오 및 제어 패킷)을 역다중화하기 위해 패킷들 중 일부 또는 전부의 패킷 유형 필드를 사용한다. 패킷들의 이러한 상이한 유형들을 식별한 후에, VTP 관리자는 자신이 유지하고 있는 포트 쌍 번호와 패킷 유형의 매핑에 기초하여, 각각의 상이한 유형의 패킷을 그의 대응하는 포트 쌍 번호와 연관시킨다. VTP 관리자(3125)는 이어서 식별된 포트 번호 쌍을 사용하여 데이터 패킷의 포트 번호 쌍을 수정하고, 역패킷화될 데이터 패킷을 전달한다. 상이한 패킷 유형들을 단일 채널로 다중화하기 위해 상이한 기술들을 사용하는 다른 실시예에서, VTP 관리자는 패킷을 파싱하기 위해 상이한 기술들을 사용한다.
상이한 패킷들을 다중화 및 역다중화하는 이러한 기술을 사용함으로써, VTP 관리자(3125)는 하나의 가상화된 통신 채널(예컨대, 하나의 포트 번호 쌍)을 생성하고, 하나의 가상화된 통신 채널을 통해 비디오 데이터, 오디오 데이터, 및 제어 시그널링 데이터를 전송하며, 하나의 가상화된 통신 채널을 통해 원격 장치로부터 오디오, 비디오 및 제어 패킷을 수신한다. 따라서, 네트워크의 관점에서 볼 때, 데이터는 이 하나의 가상화된 통신 채널을 통해 전송되는 반면, 세션 협상 관리자(3105) 및 프로토콜 관리자(3110)의 관점에서 볼 때, 비디오 데이터, 오디오 데이터, 및 제어 시그널링 데이터가 상이한 통신 채널들을 통해 전송된다.
화상 회의 중인 원격 장치에게 전송되는 영상과 유사하게, 화상 회의 중인 원격 장치로부터 전송되는 영상도 패킷 형식으로 수신된다. 수신기 모듈(3130)은 디코딩하기 위해 영상을 비디오 버퍼[예컨대, 도 16의 버퍼(1616)]에 저장하기 전에 영상을 재구성하기 위해, 패킷을 수신하여 역패킷화한다. 일부 실시예에서, 영상을 역패킷화하는 것은 임의의 헤더를 제거하고 패킷으로부터 영상 데이터(및 어쩌면 크기 데이터)만을 갖는 비트스트림을 재구성하는 것을 포함한다.
미디어 전송 관리자(3135)는 데이터 전송의 레이트(즉, 비트 레이트)를 동적으로 그리고 적응적으로 조절하기 위해, 네트워크로부터 수신된 피드백 데이터(예컨대, 단방향 대기시간, 대역 추정 비트 레이트, 패킷 손실 데이터, 왕복 지연 시간 데이터 등)를 처리한다. 미디어 전송 관리자(3135)는 또한, 어떤 다른 실시예에서, 처리된 피드백 데이터에 기초하여 오류 내성(error resilience)을 제어하고, 또한 화상 회의 모듈(1602)의 다른 동작(스케일링, 크기 조정 및 인코딩 등)을 조절하기 위해 피드백 데이터를 화상 회의 관리자(1604)로 송신한다. 회의에서의 원격 장치가 모든 패킷을 처리할 수 없을 때 범용 전송 버퍼로 하여금 패킷을 폐기하게 하는 것에 부가하여, 화상 회의 모듈 및 인코더는, 각각의 영상에 대해 더 적은 패킷이 송신되도록, 영상을 인코딩하는 데 낮은 비트 레이트를 사용할 수 있다.
일부 실시예에서, 미디어 전송 관리자(3135)는 또한, 앞서 논의한 바와 같이, 카메라의 동작 전력 모드가 어떻게 구성되는지에 영향을 줄 수 있는 장치의 다른 변수(전력 소모 및 열 레벨 등)를 모니터링할 수 있다. 이 데이터는 또한 피드백 데이터에의 부가의 입력으로서 사용될 수 있다[예컨대, 장치가 너무 뜨거워지고 있는 경우, 미디어 전송 관리자(3135)는 처리를 느려지게 하려고 할 수 있다].
네트워킹 관리자(3100)의 몇가지 예시적인 동작에 대해 이제부터 도 16을 참조하여 기술할 것이다. 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 영상을 화상 회의 중인 원격 장치에게 전송하는 것에 대해 먼저 기술하고, 이어서 원격 장치로부터 영상을 수신하는 것에 대해 기술한다. 송신기 모듈(3115)은 화상 회의 중인 원격 장치에게 전송되어야 하는 인코딩된 영상을 버퍼(1612)로부터 검색한다.
프로토콜 관리자(3110)는 사용할 적절한 프로토콜(예컨대, 오디오 및 비디오를 전송하는 RTP)을 결정하고, 세션 협상 관리자(3105)는 이러한 프로토콜을 송신기 모듈(3115)에 알려준다. 그 다음에, 송신기 모듈(3115)은 영상을 패킷화하고, 패킷화된 영상을 범용 전송 버퍼(3120)로 송신한다. 범용 전송 버퍼 관리자(3122)는 범용 전송 버퍼(3120)에 영상을 전송하거나 폐기하라고 지시하는 명령어를 세션 협상 관리자(3105)로부터 수신한다. VTP 관리자(3125)는 범용 전송 버퍼(3120)로부터 패킷을 수신하고, 패킷을 단일 통신 채널을 통해 원격 장치에게 전송하기 위해 패킷을 처리한다.
원격 장치로부터 영상을 수신할 때, VTP 관리자(3125)는 원격 장치로부터 가상화된 단일 통신 채널을 통해 패킷화된 영상을 수신하고, 영상을 수신하도록 할당되어 있는 통신 채널(예컨대, 화상 통신 채널)을 통해 영상을 수신기 모듈(3130)로 보내기 위해 패킷을 처리한다.
수신기 모듈(3130)은 영상을 재구성하기 위해 패킷을 역패킷화하고, 디코더(1660)에서 디코딩하기 위해 영상을 버퍼(1616)로 송신한다. 수신기 모듈(3130)은 또한 제어 시그널링 메시지(예컨대 화상 회의 중인 원격 장치로부터의 수신된 패킷의 확인 응답)를 미디어 전송 관리자(3135)에 전달한다.
네트워킹 관리자(3100)의 몇가지 예시적인 동작에 대해 이상에서 기술하였다. 다양한 다른 실시예들이 상이한 모듈들을 사용하여 또는 모듈들 사이에 다른 방식으로 분산되어 있는 기능들에 의해 이들 또는 상이한 동작들을 수행할 것이기 때문에, 이들은 단지 예시적인 예에 불과하다. 게다가, 동적 비트 레이트 조절 등의 부가의 동작이 네트워킹 관리자(3100)의 모듈들 또는 기타 모듈들에 의해 수행될 수 있다.
IV. 회의중 조절 및 제어 동작
A. 픽처-인-픽처 수정
1. 코너로 스냅(snap-to-corner)
본 발명의 일부 실시예는 듀얼 카메라 모바일 장치의 사용자가 합성 디스플레이를 형성하는 하나 이상의 디스플레이 영역을 이리저리 이동시킴으로써 장치 상에 디스플레이되는 합성 디스플레이를 수정할 수 있게 해 준다. 한가지 이러한 예는 PIP 디스플레이의 삽입 디스플레이 영역을 이리저리 이동시키는 것이다. 도 32는 화상 회의 동안 수행되는 이러한 예를 나타낸 것이다. 화상 회의에서, 사용자는 다양한 이유로(이 영역이 배경 디스플레이 영역의 관심 영역을 가리는 경우 등) 전경 삽입 디스플레이 영역을 이동시키고자 할 수 있다.
도 32는 장치의 UI(3205)의 5개의 상이한 스테이지(3210, 3215, 3220, 3225, 3230)를 참조하여, 장치의 UI(3205)에서 삽입 디스플레이 영역(3240)을 이동시키는 것을 나타낸 것이다. 제1 스테이지(3210)는 장치의 로컬 사용자와 원격 장치의 원격 사용자 사이의 화상 회의 동안의 UI(3205)를 나타내고 있다. 도 32의 UI(3205)는 화상 회의가 시작된 후의 PIP 디스플레이(도 11의 제5 스테이지에 나타낸 것과 동일한 PIP 디스플레이임)를 보여주고 있다. 이 예에서, 로컬 사용자의 장치에 의해 캡처된 비디오가 삽입 디스플레이 영역(3240)에 디스플레이되고, 원격 사용자의 장치에 의해 캡처된 비디오가 배경 디스플레이 영역(3235)에 디스플레이된다. 도시된 바와 같이, 디스플레이 영역(1155)은 화상 회의를 종료시키는 선택가능한 UI 항목(3245)을 포함하고 있다. 일부 실시예에서, 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 동일하다.
제2 스테이지(3215)는 사용자가 삽입 디스플레이 영역(3240)을 선택함으로써 코너로 스냅(snap-to-corner) 동작을 시작하는 것을 나타내고 있다. 이 예에서, 손가락(3255)을 삽입 디스플레이 영역(3240) 내의 아무 곳에나 위치시킴으로써 선택이 행해진다. 도시된 바와 같이, 이 선택은 삽입 디스플레이 영역(3240)에 대한 두꺼운 경계(3260)로 디스플레이된다. 상이한 실시예들은 이러한 선택을 상이한 방식들로[디스플레이 영역(3240)을 하이라이트하는 것에 의해, 디스플레이 영역(3240)을 진동시키는 것에 의해, 기타 등등에 의해] 나타낼 수 있다.
제3 스테이지(3220)는 사용자가 PIP 디스플레이(3250)의 삽입 디스플레이 영역(3240)을 PIP 디스플레이(3250) 내의 한 영역으로부터 이 디스플레이 내의 다른 영역으로 이동시키기 시작한 후의 UI(3205)를 나타내고 있다. 이 예에서, 삽입 디스플레이 영역(3240)은, 화살표(3265)로 나타낸 바와 같이, PIP 디스플레이(3250)의 좌측 하부 코너로부터 이 디스플레이의 우측 하부 코너로 이동하기 시작하였다. 이 예에서, 삽입 디스플레이 영역(3240)은 제2 스테이지(3215)에서 삽입 디스플레이를 선택한 후에 사용자가 그의 손가락(3255)을 PIP 디스플레이(3250)의 우측 하부 코너 쪽으로 끄는 것에 의해 이동된다. 일부 실시예는 삽입 디스플레이 영역(3240)을 PIP 디스플레이(3250)에서 여기저기로 이동시키는 다른 기술을 제공한다.
제4 스테이지(3225)는 사용자가 장치(3200)의 화면으로부터 그의 손가락(3255)을 제거한 후의 상태에 있는 UI(3205)를 나타내고 있다. 이 상태에서, 삽입 디스플레이 영역(3240)은 여전히 제3 스테이지(3220)에서 사용자의 손가락 이동에 기초하여 식별되었던 PIP 디스플레이(3250)의 우측 하부 코너 쪽으로 움직이고 있다. 환언하면, 손가락(3255)이 삽입 디스플레이 영역(3240)을 PIP 디스플레이(3250)의 우측 하부 코너 쪽으로 이동시키기 시작한 후에, UI(3205)는 손가락(3255)이 제거된 후에도 이 움직임을 유지한다. 이 움직임을 유지하기 위해, 일부 실시예의 UI(3205)는 사용자가 그의 손가락(3255)을 제거하기 전에 사용자의 드래그 동작이 특정의 임계량보다 더 클 것(예컨대, 특정의 거리보다 길거나 특정의 시간 길이보다 길 것)을 필요로 하고, 그렇지 않은 경우, 이들 실시예는 삽입 디스플레이 영역(3240)을 약간 이동시키거나 전혀 이동시키지 않은 후에 이 디스플레이 영역(3240)을 그것의 원래의 좌측 코너 위치에 유지시킨다.
그렇지만, 일부 실시예는 삽입 디스플레이 영역이 그것의 새로운 위치에 도달하기 전에 사용자가 그의 드래그 동작을 중단한 후에도 삽입 디스플레이 영역이 이동할 수 있게 해 주지만, 다른 실시예는 삽입 디스플레이 영역이 그것의 새로운 위치에 도달할 때까지 사용자가 그의 드래그 동작을 유지할 것을 필요로 한다. 일부 실시예는 삽입 디스플레이 영역을 이동시키는 또 다른 기술을 제공한다. 예를 들어, 일부 실시예는 삽입 디스플레이 영역(3240)이 실제로 움직이기 시작하기 전에 사용자가 삽입 디스플레이 영역(3240)을 어디로 보낼지를 지정할 것 등을 필요로 할 수 있다. 일부 실시예는 또한, 모바일 장치를 상이한 각도들로 단순히 기울임으로써, 디스플레이 영역이 슬라이딩하여 코너로 스냅할 수 있게 해 줄 수 있다.
제5 스테이지(3230)는 삽입 디스플레이 영역(3240)이 PIP 디스플레이(3250)의 우측 하부 코너에 있는 그것의 새로운 위치에 도달한 후의 UI(3205)를 나타내고 있다. 제5 스테이지(3230)에서의 두꺼운 경계(3260)의 제거는 코너로 스냅 동작이 완료되었다는 것을 나타낸다.
전술한 제3, 제4 및 제5 스테이지(3220, 3225, 3230)에 예시된 이동을 용이하게 해주기 위해, 일부 실시예의 UI(3205)는 사용자가 삽입 디스플레이 영역을 PIP 디스플레이(3250)의 코너 쪽으로 이동시키면, 삽입 디스플레이 영역이 그 코너로 빠르게 스냅할 수 있게 해 주는 스냅 규칙을 이용한다. 예를 들어, 사용자가 삽입 디스플레이 영역(3240)을 임계량을 초과하여 특정의 코너 쪽으로 드래그할 때, 일부 실시예의 UI(3205)는 삽입 디스플레이 영역(3240)의 움직임 방향을 식별하고, 움직임이 임계량을 초과한 것으로 판정하며, 이어서 나중에 추가의 사용자 입력 없이 자동으로 삽입 디스플레이 영역(3240)을, 삽입 디스플레이 영역(3240)이 스냅될 수 있는 UI(3205)에서의 다음 격자점으로 이동시킨다. 일부 실시예에서, 삽입 디스플레이 영역(3240)을 스냅시키기 위해 제공되는 유일한 격자점은 PIP 디스플레이(3250)의 4개의 코너에 있는 격자점이다. 다른 실시예는 삽입 디스플레이 영역(3240)이 스냅할 수 있는[즉, 영역(3240)의 변 또는 정점이 위치될 수 있거나 그와 일렬로 정렬될 수 있는] UI(3205) 내의[예컨대, PIP 디스플레이(3250) 내의] 다른 격자점을 제공한다.
또 다른 실시예는, 삽입 디스플레이 영역이 PIP 디스플레이(3250)에서의 임의의 지점에 배치될 수 있도록, 격자점을 이용하지 않을 수 있다. 또 다른 실시예는 사용자가 UI의 격자점으로의 스냅(snap to grid poin) 기능을 켜거나 끌 수 있게 해 주는 기능을 제공한다. 더욱이, 장치로부터 캡처된 비디오에 부가하여, 다른 실시예는 사용자가 다양한 항목(아이콘 등)에 대해 코너로 스냅 동작을 수행할 수 있게 해 줄 수 있다.
도 33은 UI(3205)에서의 코너로 스냅 동작의 2개의 다른 예(3330, 3335)를 나타내고 있다. 이들 다른 코너로 스냅 동작은 삽입 디스플레이 영역(3240)이, 사용자의 수직 또는 대각선 드래그 동작에 기초하여, PIP 디스플레이(3250)에서 수직으로 또는 대각선으로 이동되는 것을 보여주고 있다.
도 32 및 도 33이 PIP 디스플레이 내에서의 삽입 디스플레이 영역의 이동을 나타내고 있지만, 당업자라면 다른 실시예가 다른 유형의 PIP 디스플레이 또는 다른 유형의 합성 디스플레이에서 디스플레이 영역을 이동시키기 위해 유사한 기술을 이용한다는 것을 잘 알 것이다. 예를 들어, 이하에서 더 기술하는 바와 같이, 일부 실시예의 PIP 디스플레이가 2개 이상의 전경 삽입 디스플레이를 가지며, 이들 삽입 디스플레이가 PIP 디스플레이에서 도 32 및 도 33을 참조하여 전술한 것과 유사한 기술을 사용하여 이동될 수 있다. 또한, 일부 실시예는 합성 디스플레이에서 디스플레이 영역을 이리저리로 이동시키기 위해(예컨대, 사용자 드래그 움직임을 통해 하나의 디스플레이 영역을 화면의 좌측으로부터 화면의 우측으로 이동시키기 위해) 유사한 기술을 사용한다. 게다가, 합성 디스플레이의 디스플레이 영역(들)의 이동은, 화상 회의 관리자(1604)로 하여금 사용자의 입력에 응답하여 합성 디스플레이에서 디스플레이 영역을 재합성하게 하는 것 등의, 듀얼 카메라 모바일 장치의 영상 처리 동작을 변경시킬 수 있다. 이하에서 더 기술하는 바와 같이, 일부 실시예는, 제2 디스플레이 영역이 제3 위치로부터 제1 위치로 이동될 때, 제1 디스플레이 영역을 제1 위치로부터 푸시하는 스냅 및 푸시 기술을 이용한다.
2. 회전
일부 실시예는 화상 회의를 위해 사용되는 모바일 장치의 사용자가 회의 동안 장치를 회전시킬 때 화상 회의 동안 제시되는 PIP 디스플레이를 회전시킨다. 도 34는 장치(3400)가 수직 위치로부터 수평 위치로 회전될 때 장치의 UI(1105)를 회전시키는 것을 나타내고 있다. 장치(3400)는 화면의 긴 쪽이 수직으로 있을 때 수직으로 보유되어 있는 반면, 장치(3400)는 화면의 긴 쪽이 수평으로 있을 때 수평으로 보유되어 있다. 도 34에 예시된 예에서, UI(1105)는 장치의 수직 보유에 대해 최적화되어 있는 세로 보기로부터 장치(3400)의 수평 보유에 최적화되어 있는 가로 보기로 회전된다. 이 회전 기능은 모바일 장치(3400)가 수직으로 또는 수평으로 보유되어 있을 때 사용자가 똑바른 위치로 디스플레이된 UI(1105)를 볼 수 있게 해 준다.
도 34는 UI(1105)를 회전시키는 것을 6개의 상이한 동작 스테이지(3410, 3415, 3420, 3425, 3430, 3435)로 나타내고 있다. 제1 스테이지(3410)는 장치의 로컬 사용자와 원격 장치의 원격 사용자 사이의 화상 회의 동안의 UI(1105)를 나타내고 있다. 도 34의 UI(1105)는 화상 회의가 설정된 후의 PIP 디스플레이(1180)(도 11의 제5 스테이지에 나타낸 것과 동일한 PIP 디스플레이임)를 보여주고 있다. 이 예에서, 로컬 사용자의 장치에 의해 캡처된 비디오가 삽입 디스플레이 영역(1160)에 디스플레이되고, 원격 사용자의 장치에 의해 캡처된 비디오가 배경 디스플레이 영역(1170)에 디스플레이된다. PIP 디스플레이(1180) 아래의 디스플레이 영역(1155)은 사용자가 (예컨대, 단일 손가락 탭을 통해) 화상 회의를 종료시키기 위해 선택할 수 있는 선택가능한 UI 항목(3485)(예컨대, 회의 종료 버튼(3485))을 포함하고 있다.
제2 스테이지(3415)는 사용자가 장치(3400)를 비스듬히 기울이기 시작한 후의 UI(1105)를 나타내고 있다. 이 예에서, 화살표(3460)로 나타낸 바와 같이, 사용자가 장치(3400)를 수직으로 보유된 것으로부터 수평으로 보유된 것으로 기울이기 시작하였다. UI(1105)의 모습은 변하지 않았다. 다른 상황에서, 사용자는 그 대신에 장치(3400)를 수평으로 보유된 것으로부터 수직으로 보유된 것으로 기울이고자 할 수 있고, 이들 상황에서, UI(1105)는 수평으로 최적화된 뷰로부터 수직으로 최적화된 뷰로 전환된다.
제3 스테이지(3420)는 장치(3400)가 수직으로 보유된 것으로부터 수평으로 보유된 것으로 기울어진 후의 상태에 있는 UI(1105)를 나타내고 있다. 이 상태에서, UI(1105)의 모습은 여전히 변하지 않았다. 일부 실시예에서, 장치(3400)가 임계량을 초과하여 기울어지고 소정 기간 동안 이 지점을 넘어 유지된 후에 회전 동작이 트리거된다. 도 34에 예시된 예에서, 장치가 수평 위치로 놓이고 나서 어떤 짧은 시간 간격 후까지는 임계량 및 회전 속도가 UI(1105)를 회전시키지 않는 것으로 가정된다. 상이한 실시예들은 회전 동작을 트리거하기 위해 상이한 임계량들 및 대기 기간들을 갖는다. 예를 들어, 일부 실시예는 장치(3400)의 배향에 상관없이 UI(1105)가 항상 똑바른 위치로 디스플레이되는 것처럼 보이도록 회전 동작을 트리거하는 것에 대한 낮은 임계값을 가질 수 있다. 다른 실시예에서, 장치(3400)의 사용자는 (예컨대, 메뉴 기본 설정을 통해) 회전 동작이 언제 트리거될 수 있는지를 지정할 수 있다. 또한, 일부 실시예는 장치가 임계량을 초과하여 기울어진 후에 회전을 지연시키지 않을 수 있다. 더욱이, 상이한 실시예들은 모바일 장치 상의 스위치를 토글시키는 것에 의해, 음성 명령을 제공하는 것에 의해, 메뉴를 통한 선택 시에, 기타 등등에 의해, 회전 동작이 상이한 방식들로 트리거되게 할 수 있다.
제4 스테이지(3425)는 회전 동작이 시작된 후의 UI(1105)를 나타내고 있다. 일부 실시예는 회전 동작에 관해 사용자에게 피드백을 제공하기 위해 회전 디스플레이 영역을 애니메이션화한다. 도 34는 하나의 이러한 애니메이션화의 예를 나타내고 있다. 구체적으로는, 그 도면은 그것의 제4 스테이지(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)의 상태를 나타내는 메시지를 제공할 수 있다.
제5 스테이지(3430)는 디스플레이 영역(1180, 1155)이 세로 보기에서 가로 보기로 반시계 방향으로 90도 회전한 후의 UI(1105)를 나타내고 있다. 이 스테이지에서, 디스플레이 영역(1180, 1155)이 회전되었지만, 아직 UI(1105)의 전체 폭에 걸쳐 확장되지는 않았다. 화살표(3475)는, 제5 스테이지의 끝에서, UI(1105)의 전체 폭에 들어맞도록 하기 위해 디스플레이 영역(1180, 1155)이 가로 방향으로 확장하기 시작할 것임을 나타낸다. 다른 실시예는 이 스테이지를 포함하지 않을 수 있는데, 그 이유는 이 확장이 제4 스테이지(3425)에서의 회전과 동시에 수행될 수 있기 때문이다.
제6 스테이지(3435)는 디스플레이 영역(1180, 1155)이 UI(1105)의 전체 디스플레이를 차지하도록 확장된 후의 UI(1105)를 나타내고 있다. 앞서 언급한 바와 같이, 다른 실시예들은 이 회전을 다른 방식들로 구현할 수 있다. 일부 실시예에서, 단순히 장치의 화면을 임계량을 초과하여 회전시키는 것이 장치(3400)의 배향에 상관없이, 회전 동작을 트리거할 수 있다.
또한, 다른 실시예는 회전 동작을 나타내는 다른 애니메이션을 제공할 수 있다. 도 34에서 수행되는 회전 동작은 디스플레이 영역(1180, 1155)이 UI(1105)의 중앙을 중심으로 회전하는 것을 나타내고 있다. 다른 대안으로서, 디스플레이 영역들이 그들의 개별적인 디스플레이 영역의 중심축을 중심으로 개별적으로 회전될 수 있다. 하나의 이러한 방식이 도 35에 도시되어 있다. 도 35는 UI(1105)의 PIP 디스플레이(1180)의 디스플레이 영역(1170, 1160)의 회전을 애니메이션화하는 대안의 방법을 나타낸 것이다. 도 35에 예시된 PIP 디스플레이(1180)는 도 11에 예시된 동일한 PIP 디스플레이(1180)이다.
도 35는 PIP 디스플레이(1180)를 회전시키는 것을 6개의 상이한 동작 스테이지(3410, 3415, 3420, 3525, 3530, 3535)로 나타내고 있다. UI(1105)의 처음 3개의 동작 스테이지는 도 34에서의 UI(1105)에 기술된 처음 3개의 동작 스테이지와 동일하다. 도 34 및 도 35 둘 다에 대한 제3 스테이지에서, 장치(3500)는 수직으로 보유된 것으로부터 수평으로 보유된 것으로 되었고, UI(1105)의 회전이 아직 시작되지 않았다.
제4 스테이지(3525)는 회전을 애니메이션화하는 대안의 방법을 나타내고 있다. 이 스테이지에서, 회전 동작이 시작되었다. 구체적으로는, 제4 스테이지(3525)는 디스플레이 영역(1170, 1160)의 회전의 시작을 나타내고 있다. 디스플레이 영역(1170, 1160) 각각은 각각의 디스플레이 영역의 중앙을 지나는 축(3567, 3565)(즉, z-축)을 중심으로 각각 회전한다. 디스플레이 영역(1170, 1160)이 [예컨대, 장치(3500)를 기울이는 것을 통한] 장치(3500)의 회전의 동일한 양만큼, 그렇지만 반대 방향으로 회전한다. 상기 도 34의 제4 스테이지(3425)에 예시된 것과 유사하게, 장치(3500)가 (수직으로 보유된 것으로부터 수평으로 보유된 것으로 되는 것에 의해) 시계 방향으로 90도 회전되었기 때문에, 회전 동작은 디스플레이 영역(1170, 1160)을 반시계 방향으로 90도 회전시킬 것이다. 디스플레이 영역(1170, 1160)이 회전함에 따라, 디스플레이 영역(1170, 1160)이 여전히 완전하게 UI(1105) 상에 나타날 수 있도록 디스플레이 영역(1170, 1160)이 UI(1105)에 들어맞도록 비례적으로 축소된다.
제5 스테이지(3530)는 디스플레이 영역(1170, 1160) 각각이 세로 보기에서 가로 보기로 반시계 방향으로 90도 회전한 후의 UI(1105)를 나타내고 있다. 이 스테이지에서, 디스플레이 영역(1170, 1160)이 회전되었지만, 아직 UI(1105)의 전체 폭에 걸쳐 확장되지는 않았다. 더욱이, 디스플레이 영역(1160)이 그것의 최종적인 위치로 이동하지 않았다. PIP 디스플레이(1180)에서의 삽입 디스플레이 영역(1160)의 최종적인 위치는, 제1 스테이지(3410)에 도시된 바와 같이 PIP 디스플레이(1180)에서의 삽입 디스플레이 영역(1160)의 위치에 의해 결정된다[예컨대, 삽입 디스플레이 영역(1160)이 PIP 디스플레이(1180)의 좌측 하부 코너에 있음]. 이 스테이지에서, 삽입 디스플레이 영역(1160)은 여전히 UI(1105)의 좌측 상부 코너에 있다.
화살표(3580)는, 제5 스테이지(3530)의 끝에서, 메인 디스플레이 영역(1170)이 수평으로 보유되어 있는 장치에 대한 UI(1105)의 전체 폭에 들어맞을 때까지, 디스플레이 영역(1170, 1160)이 가로 방향으로 확장하기 시작할 것임을 나타내고 있다. 더욱이, 화살표(3575)는 삽입 디스플레이 영역(1160)이 PIP 디스플레이(1180)의 좌측 하부 코너로 슬라이딩할 것임을 나타내고 있다.
상이한 실시예들은 이것을 상이한 방식들로 구현할 수 있다. 일부 실시예에서, 삽입 디스플레이 영역(1160)의 이동은 메인 디스플레이 영역(1170)의 확장과 동시에 또는 순차적으로 일어날 수 있다. 더욱이, 일부 실시예는, 새로운 PIP 디스플레이(1180)를 생성하기 위해 메인 디스플레이 영역(1170)의 확장 이전에, 그 확장 동안에 또는 그 확장 이후에, 삽입 디스플레이 영역(1160)의 크기를 조정할 수 있다. 이 예에서, 디스플레이 영역(1160, 1170)이 회전하고 있는 동안 디스플레이 영역(1155)이 사라진다. 그렇지만, 일부 실시예에서, 디스플레이 영역(1155)이 회전 동안에 UI(1105) 상에 그대로 있고, 디스플레이 영역(1160, 1170)과 함께 회전할 수 있다.
제6 스테이지(3535)는 삽입 디스플레이 영역(1160)이 그것의 새로운 위치에 도달하고 디스플레이 영역(1160, 1170)이 UI(1105)의 전체 폭에 들어맞도록 적절히 확장된 후의 UI(1105)를 나타내고 있다. 이 예에서, 삽입 디스플레이 영역(1160)이 이제 메인 디스플레이 영역(1170)과 겹쳐서 PIP 디스플레이(1180)의 좌측 하부 코너에 있다. PIP 디스플레이(1180)는 이제 제1 스테이지(3410)로부터의 PIP 디스플레이(1180)와 동일한 디스플레이 배열을 가진다. 제6 스테이지에서의 PIP 디스플레이(1180) 아래에 디스플레이 영역(1155)이 나타나는 것은 회전 동작이 완료되었다는 것을 나타낸다. 앞서 살펴본 바와 같이, 단순히 장치의 화면을 임계량을 초과하여 회전시키는 것이, 장치(3500)의 배향에 상관없이 회전 동작을 트리거할 수 있다.
도 34 및 도 35를 참조하여 전술한 예에서, 디스플레이 영역(1170)의 배향도 역시 (즉, 세로로부터 가로로) 변한다. 즉, 디스플레이 영역(1170)이 제3 스테이지(3420)에서 회전된 후에, 전체 UI(1105)를 채우도록 PIP 디스플레이(1180)를 수평으로 확장함으로써 디스플레이 영역(1170)의 배향이 세로로부터 가로로 변한다. 일부 실시예에서, 장치(3500)가 회전될 때, 원격 장치에 의해 캡처된 비디오가 회전하지만, 원격 장치에 의해 캡처된 비디오를 디스플레이하는 디스플레이 영역의 배향은 변하지 않은 채로 있다. 하나의 이러한 예가 도 36에 도시되어 있다. 이 도면은, 디스플레이 영역(1170)에 디스플레이되는 비디오가 회전되지만 디스플레이 영역(1170)이 세로 배향으로 디스플레이되는 채로 있는 것을 제외하고는, 도 35와 유사하다.
도 36은 또한 디스플레이 영역(1155)이 [도 35에 도시된 바와 같이, 회전되고 수평으로 확장되어 PIP 디스플레이(1180)를 채우는 대신에] 동일한 위치에 있는 회전 동작의 예를 나타내고 있다. 더욱이, 이 도면은 도 12에서 전술한 디스플레이 영역(1155)의 레이아웃과 동일한 디스플레이 영역(1155)의 레이아웃을 포함하고 있다. 도시된 바와 같이, 장치(3500)가 스테이지(3640, 3645, 3650, 3655, 3685, 3690)에서 회전할 때 디스플레이 영역(1155)은 동일한 위치에 있는 채로 있다.
일부 실시예는, 로컬 장치에 대해 회전 동작이 수행된 후에 로컬 장치의 배향을 반영하기 위해, 로컬 장치에 의해 캡처된 비디오를 디스플레이하는 디스플레이 영역의 배향이 (도 35에 도시된 바와 같이 동일한 배향으로 남아 있는 대신에) 변하는 회전 동작을 제공한다. 도 36은 UI(1105)의 이러한 회전 동작의 예를 6개의 상이한 스테이지(3640, 3645, 3650, 3655, 3685, 3690)를 참조하여 나타낸 것이다. 이 도면에서, 제1 스테이지(3640)는 장치(3500)의 카메라에 의해 캡처된 비디오를 세로 배향으로 디스플레이하는 삽입 디스플레이 영역(1160)을 나타내고 있다. 제2 및 제3 스테이지(3645, 3650)가 도 35의 제2 및 제3 스테이지(3415, 3420)와 유사한데, 그 이유는 이들이 장치(3500)를 기울이는 것을 회전 동작의 다양한 스테이지에서 나타내고 있기 때문이다. 이 시점에서, 장치(3500)의 카메라는 가로 배향으로 영상을 캡처하고 있다. 이 천이를 나타내기 위해, 일부 실시예는 제4 및 제5 스테이지(3655, 3685)에 나타낸 바와 같이 애니메이션화를 제공하는 반면, 다른 실시예는 어떤 애니메이션화도 제공하지 않는다.
제4 스테이지(3655)에서, 삽입 디스플레이 영역(1160)에 디스플레이되는 영상이 회전되지만, 삽입 디스플레이 영역(1160) 자체는 회전되지 않는데, 그 이유는 제2 및 제3 스테이지(3445, 3650)에서 장치(3500)를 기울이는 것이 삽입 디스플레이 영역(1160)을 가로 배향으로 회전시켰기 때문이다. 제5 스테이지(3685)에서, 삽입 디스플레이 영역(1160)에서의 회전된 영상은 삽입 디스플레이 영역(1160)을 채우기 위해 수평으로 확장되고, 삽입 디스플레이 영역(1160)은 삽입 디스플레이 영역(1160)을 제1 스테이지(3640)의 PIP 디스플레이에서의 삽입 디스플레이 영역(1160)과 동일한 상대 위치에 위치시키기 위해 PIP 디스플레이(1180)의 좌측 하부 영역 쪽으로 이동하기 시작한다.
일부 실시예에서, 원격 장치에 대해 회전 동작이 수행된 후의 원격 장치의 배향을 반영하기 위해 원격 장치에 의해 캡처된 비디오를 디스플레이하는 디스플레이 영역의 배향도 역시 변한다. 도 37은 (1) 로컬 장치에 대해 회전 동작이 수행된 후의 로컬 장치의 배향을 반영하기 위해 로컬 장치에 의해 캡처된 비디오를 디스플레이하는 디스플레이 영역[이 예에서, 디스플레이 영역(1160)]의 배향이 변하고, (2) 원격 장치에 대해 회전 동작이 수행된 후의 원격 장치의 배향을 반영하기 위해 원격 장치에 의해 캡처된 비디오를 디스플레이하는 디스플레이 영역[이 예에서, 디스플레이 영역(1170)]의 배향이 변하는 장치(3500)의 UI(1105)의 4개의 상이한 스테이지를 나타낸 것이다.
제1 스테이지(3705)에서, UI(1105)는 도 36에서의 UI(1105)와 동일하다. 구체적으로는, 제1 스테이지(3705)는 디스플레이 영역(1160, 1170)을 세로 배향으로 나타내고 있는데, 그 이유는 장치(3500)가 세로 배향으로 보여지고 있고 원격 장치가 세로 배향으로 보여지고 있기 때문이다(도시 생략). 제1 스테이지(3705)와 제2 스테이지(3710) 사이에서, 장치(3500)를 똑바른 위치에서 옆을 향한 위치로 90도 회전시킴으로써 로컬 장치에 대해 회전 동작이 수행된다. 제2 스테이지(3710)는 장치(3500)의 회전 동작이 완료된 후의 UI(1105)를 나타내고 있다. 이 스테이지에서, 디스플레이 영역(1170, 1160)에 디스플레이된 비디오가 똑바른 위치로 회전되었다. 그렇지만, 로컬로 캡처된 비디오의 디스플레이 영역(1160)만이 세로 배향으로부터 가로 배향으로 회전되었는데, 그 이유는 로컬 장치[즉, 장치(3500)]에 대해서만 회전 동작이 수행되기 때문이다. 디스플레이 영역(1170)은 세로 배향으로 남아 있다.
제2 스테이지(3710)와 제3 스테이지(3715) 사이에서, 원격 장치를 똑바른 위치에서 옆을 향한 위치로 회전시킴으로써 원격 장치에 대해 회전 동작이 수행된다(도시 생략). 제3 스테이지(3715)는 원격 장치의 회전 동작이 완료된 후의 UI(1105)를 나타내고 있다. 이 스테이지에서, 디스플레이 영역(1170)에 디스플레이된 비디오 및 원격으로 캡처된 비디오의 디스플레이 영역(1170)이 세로 배향으로부터 가로 배향으로 회전되었는데, 그 이유는 회전 동작이 원격 장치에 대해서만 수행되기 때문이다. 따라서, UI(1105)의 이 스테이지는 로컬로 캡처된 비디오 및 원격으로 캡처된 비디오 둘 다의 디스플레이 영역(1170, 1160)을 가로 배향으로 디스플레이한다.
제3 스테이지(3715)와 제4 스테이지(3720) 사이에서, 장치(3500)를 옆을 향한 위치에서 똑바른 위치로 90도 회전시킴으로써 로컬 장치에 대해 회전 동작이 수행된다. 제4 스테이지(3720)는 이 회전 동작의 완료 후의 UI(1105)를 나타내고 있다. 이 제4 스테이지(3720)에서, 디스플레이 영역(1160, 1170)에 디스플레이된 비디오가 똑바른 위치로 회전되었다. 그렇지만, 로컬로 캡처된 비디오의 디스플레이 영역(1160)만이 가로 배향으로부터 세로 배향으로 회전되었는데, 그 이유는 로컬 장치[즉, 장치(3500)]에 대해서만 회전 동작이 수행되기 때문이다. 디스플레이 영역(1170)은 가로 배향으로 남아 있다.
제4 스테이지(3720)와 제1 스테이지(3705) 사이에서, 원격 장치를 옆을 향한 위치에서 똑바른 위치로 90도 회전시킴으로써 원격 장치에 대해 회전 동작이 수행된다(도시 생략). 이 경우에, 제1 스테이지(3705)는 이 회전 동작의 완료 후의 디스플레이 영역(1170)을 나타내고 있다. 따라서, 이 스테이지의 UI(1105)는 디스플레이 영역(1160, 1170)을 세로 배향으로 보여주고 있다. 도 37이 상이한 회전 동작의 시퀀스를 나타내고 있지만, 다른 실시예는 임의의 수의 회전 동작을 임의의 수의 상이한 시퀀스로 수행할 수 있다.
도 34, 도 35, 도 36 및 도 37은 화상 회의 동안 로컬 장치 및 원격 장치에 대해 수행되는 회전 동작을 기술하고 있다. 로컬 모바일 장치에 대해 회전 동작이 수행될 때, 일부 실시예는, 원격 장치가 로컬 장치의 비디오에 대해 임의의 수정(로컬 장치의 비디오를 디스플레이하고 있는 디스플레이 영역을 회전시키는 것 등)을 수행하도록, 원격 장치에 회전 동작을 통지한다. 이와 유사하게, 원격 장치에 대해 회전 동작이 수행될 때, 로컬 장치가 원격 장치의 비디오에 대해 임의의 수정을 수행할 수 있게 해주기 위해 원격 장치는 로컬 장치에 이 동작을 통지한다. 일부 실시예는 화상 회의 동안 로컬 장치와 원격 장치 사이에서 회전 동작의 통지를 전달하기 위한 제어 통신 채널을 제공한다.
도 34, 도 35, 도 36 및 도 37이 회전의 애니메이션화가 수행될 수 있는 상이한 방식들을 나타내고 있지만, 당업자라면 다른 실시예가 회전의 애니메이션화를 기타의 상이한 방식들로 디스플레이할 수 있다는 것을 잘 알 것이다. 그에 부가하여, 회전 동작의 애니메이션화는, 화상 회의 관리자(1604)로 하여금 디스플레이 영역(들)을 UI(1105)에서 상이한 각도들로 재합성하고 디스플레이 영역(들)에 디스플레이되는 영상을 스케일링하게 하는 등의, 로컬 모바일 장치의 영상 처리 동작을 변경시킬 수 있다.
3. 창 크기 조절
일부 실시예는 모바일 장치의 사용자가 화상 회의 동안 제시되는 PIP 디스플레이의 삽입 디스플레이 영역의 크기를 조절할 수 있게 해 준다. 상이한 실시예들은 삽입 디스플레이 영역을 크기 조정하는 상이한 기술들을 제공한다. 도 38은 삽입 디스플레이 영역을 크기 조정하는 한 방식을 나타내고 있다. 이 방식에서, 모바일 장치의 사용자는 삽입 디스플레이 영역의 코너를 선택한 다음에 삽입 디스플레이 영역을 확장 또는 축소시킴로써 삽입 디스플레이 영역의 크기를 조절한다.
도 38에서, 모바일 장치(3825)의 UI(3800)는 다른 모바일 장치의 원격 사용자와의 화상 회의 동안 PIP 디스플레이(3865)를 제시한다. 이 PIP 디스플레이(3865)는 2개의 비디오 디스플레이 - 배경 메인 디스플레이 영역(3830) 및 전경 삽입 디스플레이 영역(3835) - 를 포함한다. 배경 메인 디스플레이 영역(3830)은 PIP 디스플레이(3865)의 대부분을 차지하는 반면, 전경 삽입 디스플레이 영역(3835)은 작고 배경 메인 디스플레이 영역(3830)과 겹친다. 이 예에서, 배경 메인 디스플레이 영역(3830)은 기타를 들고 있는 사람 - 그의 비디오가 원격 장치의 전방 카메라에 의해 캡처되고 있는 사람 또는 그의 비디오가 원격 장치의 후방 카메라에 의해 캡처되고 있는 사람인 것으로 가정됨 - 의 비디오를 제시한다. 전경 삽입 디스플레이 영역(3835)은 모자를 쓰고 있는 사람 - 이 예에서, 그의 비디오가 로컬 장치의 전방 카메라에 의해 캡처되고 있는 사람 또는 그의 비디오가 로컬 장치의 후방 카메라에 의해 캡처되고 있는 사람인 것으로 가정됨 - 의 비디오를 제시한다. PIP 디스플레이(3865) 아래에는, "회의 종료(End Conference)"라고 표시된 선택가능한 UI 항목(3860)[예컨대, 버튼(3860)] - 사용자가 이 항목을 선택함으로써 화상 회의를 종료할 수 있음 - 을 포함하는 디스플레이 영역(1155)이 있다.
이 PIP 디스플레이(3865)는 원격 및 로컬 장치에 의해 캡처되는 비디오의 합성 뷰를 제시하는 한 방식에 불과하다. 일부 실시예는 다른 합성 뷰를 제공할 수 있다. 예를 들어, 원격 장치로부터의 비디오에 대해 큰 배경 디스플레이를 갖는 대신에, 큰 배경 디스플레이는 로컬 장치로부터의 비디오를 가질 수 있고, 작은 전경 삽입 디스플레이는 원격 장치로부터의 비디오를 가질 수 있다. 또한, 일부 실시예는 로컬 및 원격 비디오가 UI(3800)에서 2개의 나란히 있는 디스플레이 영역(예컨대, 좌측 및 우측 디스플레이 창, 또는 상부 및 하부 디스플레이 창)에 또는 2개의 대각선으로 배열된 디스플레이 영역에 나타날 수 있게 해 준다. 일부 실시예에서, PIP 디스플레이 또는 디폴트 디스플레이 모드의 방식이 사용자에 의해 지정될 수 있다. 다른 실시예에서, PIP 디스플레이는 또한 큰 배경 디스플레이 및 2개의 작은 전경 삽입 디스플레이를 포함할 수 있다.
도 38은 크기 조정 동작을 UI(3800)의 4개의 동작 스테이지로 나타내고 있다. 제1 스테이지(3805)에서, 전경 삽입 디스플레이(3835)는 배경 메인 디스플레이 영역(3830)보다 실질적으로 더 작다. 또한, 이 예에서, 전경 삽입 디스플레이 영역(3835)은 PIP 디스플레이(3865)의 우측 하부 코너에 위치해 있다. 다른 예에서, 전경 삽입 디스플레이 영역(3835)은 다른 크기일 수 있거나 PIP 디스플레이(3865)에서 다른 영역에 위치해 있을 수 있다.
제2 스테이지(3810)에서, 크기 조정 동작이 개시된다. 이 예에서, 이 동작은 사용자가 크기를 조정하고자 하는 삽입 디스플레이 영역(3835)의 코너를 선택함으로써[예컨대, 삽입 디스플레이 영역(3835)의 좌측 상부 코너를 손가락(3840)으로 누름으로써] 개시된다. UI(3800)의 제2 스테이지(3810)는 이 선택을 삽입 디스플레이 영역(3835)에 대한 두꺼운 경계(3845)로 나타내고 있다. 이 스테이지에서, 사용자는 [예컨대, PIP 디스플레이(3865) 상에서 삽입 디스플레이 영역(3835)로부터 멀어지게 또는 삽입 디스플레이 영역(3835) 쪽으로 그의 손가락(3840)을 드래그하는 것에 의해] 삽입 디스플레이 영역(3835)을 확장 또는 축소시킬 수 있다.
제3 스테이지(3815)는, 화살표(3850)로 나타낸 바와 같이, 사용자가 그의 손가락(3840)을 삽입 디스플레이 영역(3835)으로부터 멀어지게 이동시킴으로써[즉, 이 예에서, 그의 손가락을 UI(3800)의 좌측 상부 코너 쪽으로 대각선으로 이동시킴으로써] 삽입 디스플레이 영역(3835)을 확장시키기 시작한 후의 UI(3800)를 나타내고 있다. 또한, 화살표(3855)로 나타낸 바와 같이, 손가락(3840)의 이동은 삽입 디스플레이 영역(3835)을 높이 및 폭 모두에서 비례적으로 확장시켰다. 다른 예에서, 사용자는 동일한 기술을 사용하여[즉, 손가락을 삽입 디스플레이 영역(3835) 쪽으로 드래그하는 것에 의해] 삽입 디스플레이 영역(3835)을 축소시킬 수 있다.
제4 스테이지(3820)는 삽입 디스플레이 영역(3835)의 크기 조정이 완료된 후의 UI(3800)를 디스플레이하고 있다. 이 예에서, 사용자는 삽입 디스플레이 영역(3835)이 원하는 크기에 도달하면, 그의 손가락(3840)의 드래그를 중단하고 그의 손가락을 PIP 디스플레이(3865)로부터 제거함으로써 삽입 디스플레이 영역(3835)의 크기 조정을 완료한다. 이 절차의 결과로서, 크기 조정된 삽입 디스플레이 영역(3835)은 제1 스테이지(3805)에서의 그것의 원래의 크기보다 더 크다. 두꺼운 경계(3845)의 제거는 삽입 디스플레이 영역 크기 조정 동작이 이제 완료되었음을 나타낸다.
일부 실시예는 사용자가 화상 회의 동안 PIP 디스플레이(3865)에서의 삽입 디스플레이 영역(3835)을 크기 조정할 수 있게 해 주는 다른 기술을 제공한다. 도 39는 하나의 이러한 다른 기술을 나타내고 있다. 이 도면은 [즉, 삽입 디스플레이 영역(3835)의 변들 중 하나에서] 삽입 디스플레이 영역(3835)의 가장자리를 선택한 다음에 삽입 디스플레이 영역(3835)을 확장 또는 축소시킴으로써 삽입 디스플레이 영역(3835)을 크기 조정하는 기술을 나타내고 있다.
도 39는 이 크기 조정 동작을 도 38의 UI(3800)의 4개의 동작 스테이지로 나타내고 있다. 도 39에서의 제1 스테이지(3805)는 도 38에서의 제1 스테이지(3805)와 동일하다. 구체적으로는, 이 스테이지에서, 장치(3925)의 UI(3800)는 큰 배경 메인 디스플레이 영역(3830)과 PIP 디스플레이(3865)의 우측 하부 코너에 있는 작은 전경 삽입 디스플레이 영역(3835)을 갖는 PIP 디스플레이(3865)를 나타내고 있다. 도 38 및 도 39가 동일한 UI(3800)에서 삽입 디스플레이 영역(3835)을 크기 조정하는 2개의 다른 기술을 나타내고 있지만, 당업자라면 일부 실시예가 동일한 UI에서 이들 기술 둘 다를 제공하지 않을 것임을 잘 알 것이다.
제2 스테이지(3910)는 크기 조정 동작의 시작을 나타내고 있다. 이 예에서, 사용자는 크기를 조정하고자 하는 삽입 디스플레이 영역(3835)의 변을 선택함으로써[예컨대, 삽입 디스플레이 영역(3835)의 상부 가장자리 또는 측면 가장자리를 손가락(3840)으로 누름으로써] 그 동작을 개시한다. 이 예에서, 사용자는 이 선택을 하기 위해, 그의 손가락(3840)을 삽입 디스플레이 영역(3835)의 상부 가장자리에 위치시킨다. 제2 스테이지(3910)는 이 선택을 삽입 디스플레이 영역(3835)에 대한 두꺼운 경계(3845)로 나타내고 있다.
제3 스테이지(3915)는, 화살표(3950)로 나타낸 바와 같이, 사용자가 그의 손가락(3840)을 삽입 디스플레이 영역(3835)으로부터 멀어지게[즉, PIP 디스플레이(3865)의 상부 쪽으로 수직으로] 이동시킴으로써 삽입 디스플레이 영역(3835)을 확장시키기 시작한 후의 UI(3800)를 나타내고 있다. 또한, 화살표(3955)로 나타낸 바와 같이, 손가락(3840)의 이동은 삽입 디스플레이 영역(3835)을 높이 및 폭 모두에서 비례적으로 확장시켰다. 다른 예에서, 사용자는 동일한 기술을 사용하여[예를 들어, 손가락(3840)을 삽입 디스플레이 영역(3835) 쪽으로 드래그하는 것에 의해] 디스플레이 영역(3835)을 축소시킬 수 있다.
제4 스테이지(3920)는 삽입 디스플레이 영역(3835)의 크기 조정이 완료된 후의 UI(3800)를 디스플레이하고 있다. 이 예에서, 사용자는, 삽입 디스플레이 영역(3835)이 원하는 크기에 도달하면, 그의 손가락(3840)의 드래그를 중단하고 그의 손가락(3840)을 장치의 디스플레이 화면으로부터 제거함으로써 삽입 디스플레이 영역(3835)의 크기 조정을 완료한다. 이 절차의 결과로서, 크기 조정된 삽입 디스플레이 영역(3835)은 제1 스테이지(3805)에서의 그것의 원래의 크기보다 더 크다. 두꺼운 경계(3845)의 제거는 삽입 디스플레이 영역 크기 조정 동작이 이제 완료되었음을 나타낸다.
끌기 동작에 응답하여, 일부 실시예는 도 38 및 도 39에 예시된 바와 같이, 높이 및 폭에서 비례적으로 삽입 디스플레이 영역(3835)의 크기를 조절한다. 다른 실시예는 다른 속성에 영향을 주는 일 없이 사용자가 삽입 디스플레이 영역(3835)의 높이 및/또는 폭을 조절할 수 있게 해 줄 수 있다. 도 40은 하나의 이러한 크기 조정 방식의 예를 나타내고 있다.
구체적으로는, 도 40은, 삽입 디스플레이 영역(3835)의 가장자리들 중 하나가 선택되어 수평으로 또는 수직으로 이동될 때 도 40의 UI(3800)가 삽입 디스플레이 영역(3835)이 수평 방향으로 및/또는 수직 방향으로 확장될 수 있게 해 주는 것을 제외하고는, 도 38의 UI(3800)와 유사한 모바일 장치(4025)의 UI(3800)를 나타내고 있다. UI(3800)의 설명을 간략화하기 위해, 도 40은, 이제 삽입 디스플레이 영역(3835)이 PIP 디스플레이(3865)의 우측 상부 코너에 있는 것을 제외하고는, 도 38의 PIP 디스플레이(3865)와 유사한 UI(3800)에서의 PIP 디스플레이(3865)를 나타내고 있다. PIP 디스플레이(3865)는 2개의 비디오 디스플레이 - 배경 메인 디스플레이 영역(3830) 및 전경 삽입 디스플레이 영역(3835) - 를 포함하고 있다. 이 예에서, 배경 메인 디스플레이 영역(3830)은 원격 장치의 전방 카메라 또는 후방 카메라에 의해 캡처되고 있는 비디오를 제시한다. 전경 삽입 디스플레이 영역(3835)은 로컬 장치의 전방 카메라 또는 후방 카메라에 의해 캡처되고 있는 비디오를 제시한다.
도 38과 마찬가지로, 도 40도 크기 조정 동작을 UI(3800)의 4개의 동작 스테이지로 나타내고 있다. 제1 스테이지(4005)는, 이제 삽입 디스플레이 영역(3835)이 우측 상부 코너에 있는 것을 제외하고는, 도 38의 제1 스테이지(3805)와 유사하다. 다른 3개의 스테이지(4010, 4015, 4020)는, 삽입 디스플레이 영역(3835)의 하부 가장자리의 선택 및 이동이, 삽입 디스플레이 영역(3835)의 폭에 영향을 주지 않고서, 삽입 디스플레이 영역(3835)을 수직 방향으로만 확장시키는 것을 제외하고는, 3개의 스테이지(3910, 3915, 3920)와 유사하다.
도 38, 도 39 및 도 40은 사용자가 삽입 디스플레이 영역(3835)의 코너 또는 변을 선택함으로써 PIP 디스플레이(3865)의 삽입 디스플레이 영역(3835)을 크기 조정할 수 있게 해 주는 예시적인 실시예를 제공한다. 일부 실시예는 삽입 창(3835)을 크기 조정하는 다른 기술을 제공한다. 예를 들어, 도 41은 일부 실시예가 삽입 디스플레이 영역(3835)의 내부를 선택함으로써 삽입 디스플레이 영역(3835)이 크기 조정될 수 있게 해 주는 것을 나타내고 있다. 이 방식에서, 사용자는 두 손가락(4155, 4156)을 화면 상에 위치시키고 손가락을 서로로부터 멀어지게 또는 서로를 향해 드래그하는 것에 의해 삽입 디스플레이 영역(3835)의 크기를 조절한다.
도 41에서, 모바일 장치(4140)의 UI(3800)는 다른 모바일 장치의 원격 사용자와의 화상 회의 동안 PIP 디스플레이(3865)를 제공한다. UI(3800)의 설명을 간략화하기 위해, 도 41은 도 38의 PIP 디스플레이(3865)와 유사한 PIP 디스플레이(3865)를 이 UI(3800)에 나타내고 있다.
도 41은 크기 조정 동작을 UI(3800)의 7개의 동작 스테이지로 나타내고 있다. 처음 4개의 스테이지(3805, 4110, 4115, 4120)는 삽입 디스플레이 영역(3835)의 확장을 나타내는 반면, 마지막 3개의 스테이지는 삽입 디스플레이 영역(3835)의 축소를 나타내고 있다. 도 41에서의 제1 스테이지(3805)는 도 38에서의 제1 스테이지(3805)와 동일하다. 구체적으로는, 이 스테이지에서, UI(3800)는 큰 배경 메인 디스플레이 영역(3830)과 작은 전경 삽입 디스플레이 영역(3835)을 갖는 PIP 디스플레이(3865)를 나타내고 있다. 이 예에서, 배경 메인 디스플레이 영역(3830)은 원격 장치의 전방 카메라 또는 후방 카메라에 의해 캡처되고 있는 비디오를 제시한다. 전경 삽입 디스플레이 영역(3835)은 로컬 장치의 전방 카메라 또는 후방 카메라에 의해 캡처되고 있는 비디오를 제시한다.
제2 스테이지(4110)는 크기 조정 동작이 개시된 후의 UI(3800)를 나타내고 있다. 이 예에서, 사용자는 크기를 조정하고자 하는 삽입 디스플레이 영역(3835)을 선택함으로써[예컨대, 삽입 디스플레이 영역(3835) 내부를 두 손가락(4155, 4156)으로 누름으로써] 그 동작을 개시한다. UI(3800)의 제2 스테이지(4110)는 이 선택을 삽입 디스플레이 영역(3835)에 대한 두꺼운 경계(4190)로 나타내고 있다.
제3 스테이지(4115)는, 화살표(4160)로 나타낸 바와 같이, 사용자가 그의 손가락(4155, 4156)을 서로로부터 멀어지게 이동시킴으로써[즉, 손가락(4155)을 PIP 디스플레이(3865)의 좌측 상부 코너 쪽으로 이동시키고 손가락(4156)을 PIP 디스플레이(3865)의 우측 하부 코너 쪽으로 이동시킴으로써] 삽입 디스플레이 영역(3835)을 확장시키기 시작한 후의 UI(3800)를 나타내고 있다. 화살표(4165)로 나타낸 바와 같이, 손가락(4155, 4156)의 이동은 삽입 디스플레이 영역(3835)을 높이 및 폭 모두에서 비례적으로 확장시켰다.
제4 스테이지(4120)는 삽입 디스플레이 영역(3835)의 크기 조정이 완료된 후의 UI(3800)를 디스플레이하고 있다. 이 예에서, 사용자는 그의 손가락(4155, 4156)의 드래그를 중단하고 그의 손가락(4155, 4156)을 장치의 디스플레이 화면으로부터 제거함으로써 삽입 디스플레이 영역(3835)의 크기 조정을 완료한다. 이 절차의 결과로서, 크기 조정된 삽입 디스플레이 영역(3835)은 제1 스테이지(3805)에서의 그것의 원래의 크기보다 더 크다. 두꺼운 경계(4190)의 제거는 삽입 디스플레이 영역 크기 조정 동작이 이제 완료되었음을 나타낸다.
제5 스테이지(4125)에서, 사용자는 두 손가락(4155, 4156)으로 삽입 디스플레이 영역(3835)을 누름으로써 삽입 디스플레이 영역(3835)을 재선택한다. 제6 스테이지(4130)는, 화살표(4170)로 나타낸 바와 같이, 사용자가 그의 손가락(4155, 4156)을 서로에 더 가까이 이동시킴으로써 삽입 디스플레이 영역(3835)을 축소시키기 시작한 후의 UI(3800)를 나타내고 있다. 화살표(4175)로 나타낸 바와 같이, 손가락(4155, 4156)의 이동은 삽입 디스플레이(3835)를 높이 및 폭 모두에서 비례적으로 축소시켰다.
제7 스테이지(4135)는, 이 동작의 결과로서 삽입 디스플레이 영역(3835)이 크기가 축소된 것을 제외하고는, 도 41에서의 제4 스테이지(4120)와 유사하다. 두꺼운 경계(4190)의 제거는 삽입 디스플레이 영역 크기 조정 동작이 이제 완료되었음을 나타낸다.
도 38 내지 도 41의 상기 설명은 사용자가 PIP 디스플레이의 삽입 디스플레이 영역을 크기 조정할 수 있게 해 주는 몇가지 예시적인 사용자 인터페이스를 나타내고 있다. 일부 실시예에서, 삽입 디스플레이 영역의 크기 조정은, 화상 회의 관리자(1604)로 하여금 사용자의 입력에 응답하여 PIP 디스플레이에서의 삽입 디스플레이 영역의 스케일링 및 합성을 변경시키게 하는 것 등의, 듀얼 카메라 모바일 장치의 영상 처리 동작에 대한 변경을 유발한다. 그에 부가하여, 일부 실시예에서, 도 38 내지 도 41에서의 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 동일하다.
4. 관심 영역 식별
일부 실시예는, 화상 회의 동안 영상 처리[예컨대, 도 16에서의 영상 처리 관리자(1608)], 인코딩[예컨대, 도 16에서의 인코더(1655)], 모바일 장치 및 그것의 카메라의 거동, 또는 이들의 조합을 수정하기 위해, 사용자가 화상 회의 동안 디스플레이된 비디오에서 관심 영역(ROI)을 식별할 수 있게 해 준다. 상이한 실시예들은 비디오에서 이러한 관심 영역을 식별하는 상이한 기술들을 제공한다. 도 42는 비디오의 영상 품질을 향상시키기 위해 비디오에서 관심 영역을 식별하는 일부 실시예의 사용자 인터페이스를 나타내고 있다.
도 42에서, 모바일 장치(4225)의 UI(4200)는 다른 모바일 장치의 원격 사용자와의 화상 회의 동안 PIP 디스플레이(4265)를 제시한다. 도 42에서의 PIP 디스플레이는 도 41에서의 것과 실질적으로 유사하다. 구체적으로는, 도 42에서의 PIP 디스플레이는 2개의 비디오 디스플레이 - 배경 메인 디스플레이(4230) 및 전경 삽입 디스플레이(4235) - 를 포함한다. 이 예에서, 배경 메인 디스플레이(4230)는 나무와 모자를 쓴 사람 - 그의 비디오가 원격 장치의 전방 카메라에 의해 캡처되고 있는 나무와 사람 또는 그의 비디오가 원격 장치의 후방 카메라에 의해 캡처되고 있는 나무와 사람인 것으로 가정됨 - 의 비디오를 제시한다. 전경 삽입 디스플레이(4235)는 남자 - 이 예에서, 그의 비디오가 로컬 장치의 전방 카메라에 의해 캡처되고 있는 남자 또는 그의 비디오가 로컬 장치의 후방 카메라에 의해 캡처되고 있는 남자인 것으로 가정됨 - 의 비디오를 제시한다. PIP 디스플레이 아래에는, "회의 종료"라고 표시된 선택가능한 UI 항목(4260)[예컨대, 버튼(4260)] - 사용자가 이 항목을 선택함으로써 화상 회의를 종료할 수 있음 - 을 포함하는 디스플레이 영역(1155)이 있다.
이 PIP 디스플레이는 원격 및 로컬 장치에 의해 캡처되는 비디오의 합성 뷰를 제시하는 한 방식에 불과하다. 일부 실시예는 다른 합성 뷰를 제공할 수 있다. 예를 들어, 원격 장치로부터의 비디오에 대해 큰 배경 디스플레이를 갖는 대신에, 큰 배경 디스플레이는 로컬 장치로부터의 비디오를 가질 수 있고, 작은 전경 삽입 디스플레이는 원격 장치로부터의 비디오를 가질 수 있다. 또한, 일부 실시예는 로컬 및 원격 비디오가 UI에서 2개의 나란히 있는 디스플레이 영역(예컨대, 좌측 및 우측 디스플레이 창, 또는 상부 및 하부 디스플레이 창)에 또는 2개의 대각선으로 배열된 디스플레이 영역에 나타날 수 있게 해 준다. 다른 실시예에서, PIP 디스플레이는 또한 큰 배경 디스플레이 및 2개의 작은 전경 삽입 디스플레이를 포함할 수 있다. 일부 실시예에서, PIP 디스플레이 또는 디폴트 디스플레이 모드의 방식이 사용자에 의해 지정될 수 있다.
도 42는 ROI 식별 동작을 UI(4200)의 4개의 동작 스테이지로 나타내고 있다. 제1 스테이지(4205)에 나타낸 바와 같이, 배경 디스플레이(4230)에 제시되는 비디오는 아주 낮은 품질을 가진다(즉, 비디오 영상이 흐릿하다). 이 예에서, 모바일 장치(4225)의 사용자는 사람의 얼굴(4270)이 관심 영역으로서 나타나는 배경 디스플레이(4230)에서의 영역을 식별하고자 할 것이다.
제2 스테이지(4210)에서, 관심 영역을 식별하는 동작이 개시된다. 이 예에서, 사용자가 관심 영역으로서 식별하고자 하는 배경 디스플레이(4230)에 제시되는 비디오에서의 영역을 선택함으로써[예컨대, 배경 디스플레이(4230)에 디스플레이된 사람의 얼굴(4270) 근방의 위치에서 장치의 화면을 손가락(4250)으로 탭핑함으로써] 이 동작이 개시된다.
제3 스테이지(4215)에 나타낸 바와 같이, 사용자가 영역을 선택하는 것은 UI(4200)로 하여금 사용자의 선택의 영역 주변에 인클로저(enclosure)(4275)[예컨대, 점선 정사각형(4275)]를 그리게 한다. 제4 스테이지(4220)는 관심 영역의 식별이 완료된 후의 UI(4200)를 디스플레이하고 있다. 이 프로세스의 결과로서, 관심 영역 내에서의 비디오의 품질이 제1 스테이지(4205)에서의 품질로부터 실질적으로 향상되었다. 인클로저(4275)의 제거는 ROI 선택 동작이 이제 완료되었음을 나타낸다. 일부 실시예에서, ROI 식별 프로세스는 또한 원격 장치 상에 디스플레이되는 동일한 비디오에 대해 로컬 장치(4225)에 대해서와 동일한 변경을 야기한다. 이 예에서, 예를 들어, 원격 장치 상에 디스플레이되는 동일한 비디오의 관심 영역 내의 화질도 역시 실질적으로 향상된다.
일부 실시예에서, 사용자는 [예컨대, 손가락(4250)으로 디스플레이를 누르고 인클로저(4275)를 확대시키기 위해 손가락(4250)을 화면의 우측 상부 코너 쪽으로 이동시킴으로써 또는 인클로저(4275)를 축소시키기 위해 손가락(4250)을 화면의 좌측 하부 코너 쪽으로 이동시킴으로써] 제3 스테이지(4215)에서 인클로저(4275)를 확대 또는 축소시킬 수 있다. 일부 실시예는 또한 제3 스테이지(4215)에서 [예컨대, 손가락(4250)으로 디스플레이를 누르고 손가락(4250)을 디스플레이 상에서 수평으로 또는 수직으로 이동시킴으로써] 사용자가 인클로저(4275)를 위치 변경할 수 있게 해 준다. 일부 다른 실시예에서, 제3 스테이지(4215)에서, 영역의 선택은 UI(4200)로 하여금 인클로저(4275)를 전혀 그리게 하지 않을 수 있다.
다른 실시예는 사용자가 비디오에서 관심 영역을 식별할 수 있게 해 주는 상이한 기술들을 제공한다. 도 43은 하나의 이러한 다른 기술을 나타내고 있다. 도 43에서, 사용자는 영역을 둘러싸는 도형을 그림으로써 관심 영역을 식별한다. 이 예에서, 도형은 직사각형이지만, 다른 도형(예컨대, 임의의 다른 다각형, 원, 타원 등)일 수 있다. 일부 실시예는 도 42에 예시된 기술도 제공하는 장치 UI에서 도 43의 이 대안의 기술을 제공한다. 그렇지만, 다른 실시예는 동일한 UI에서 이들 기술 둘 다를 제공하지는 않는다.
도 43은 이 ROI 식별 동작을 UI(4200)의 5개의 동작 스테이지로 나타내고 있다. 도 43에서의 제1 스테이지(4205)는 도 42에서의 제1 스테이지(4205)와 동일하다. 구체적으로는, 이 제1 스테이지(4205)에서, UI(4200)는 큰 배경 메인 디스플레이(4230)와 PIP 디스플레이(4265)의 좌측 하부 코너에 있는 작은 전경 삽입 디스플레이(4235)를 갖는 PIP 디스플레이(4265)를 나타내고 있다.
제2 스테이지(4310)에서, 관심 영역을 식별하는 동작이 개시된다. 이 예에서, 이 동작은 배경 디스플레이 영역(4230)에 제시되는 비디오에서 관심 영역을 정의하기 위해 일정 기간 동안 제1 위치를 선택함으로써[예컨대, 배경 디스플레이(4230)에 디스플레이된 사람의 얼굴(4270) 부근의 위치에서 손가락(4350)으로 장치의 화면을 일정 기간 동안 누름으로써] 개시된다. 제3 스테이지(4315)에서, UI(4200)는 제1 위치(4370)가 선택되었다는 것을 배경 디스플레이 영역(4230) 상의 선택된 제1 위치 옆에 있는 점(4355)으로 나타내고 있다.
제4 스테이지(4320)는 사용자가 관심 영역을 정의하기 위한 제2 위치(4375)를 선택한 후의 UI(4200)를 나타내고 있다. 이 예에서, 사용자는, 화살표(4360)로 나타낸 바와 같이, 점(4355)이 나타난 후에 손가락(4350)을 제1 위치로부터 장치의 화면을 가로질러 드래그하고 배경 디스플레이 영역(4230)에서 디스플레이된 모자와 디스플레이된 나무 사이의 위치에서 멈추는 것에 의해, 이 제2 위치(4375)를 선택한다. 제4 스테이지에 나타낸 바와 같이, 이 드래그는 UI(4200)로 하여금 대향하는 정점들에 제1 및 제2 위치(4370, 4375)를 갖는 관심 영역에 대한 직사각형 경계선(4365)을 그리게 한다.
제5 스테이지(4325)는 관심 영역의 식별이 완료된 후의 UI(4200)를 나타내고 있다. 이 예에서, 사용자는, 원하는 관심 영역이 식별되면, 손가락(4350)의 드래그를 중단하고 손가락(4350)을 장치의 디스플레이 화면으로부터 제거함으로써 관심 영역의 식별을 완료한다. 제5 스테이지(4325)는, 그리기 프로세스의 결과로서, 관심 영역 내에서의 비디오의 품질이 제1 스테이지(4205)에서의 품질로부터 실질적으로 향상되었다는 것을 나타내고 있다. 일부 실시예에서, 그리기 프로세스는 또한 원격 장치 상의 디스플레이에 대해 로컬 장치(4225)에 대해서와 동일한 변경을 야기한다. 이 예에서, 예를 들어, 원격 장치 상에 디스플레이되는 동일한 비디오의 관심 영역 내의 화질이 실질적으로 향상될 것이다.
상기 도 42 및 도 43에 대한 설명은 식별된 영역의 화질을 향상시키기 위해 비디오에서 관심 영역을 식별하는 상이한 방식들을 나타내고 있다. 일부 실시예에서, 식별된 관심 영역의 화질을 향상시키는 것은 듀얼 카메라 모바일 장치의 인코딩 동작에 대해 변경(비디오를 인코딩할 때 식별된 영역에 더 많은 비트를 할당하는 것 등)을 야기한다.
일부 실시예는 모바일 장치 또는 그것의 카메라에 대해 상이한 변경들을 하기 위해 사용자가 비디오에서 관심 영역을 식별할 수 있게 해 준다. 예를 들어, 도 44는 디스플레이 상의 관심 영역을 확장 또는 축소시키기 위해 비디오에서 관심 영역을 식별하는 예를 나타낸 것이다. 이 방식에서, 사용자는 디스플레이 상의 영역을 관심 영역의 중앙으로서 선택한 다음에 관심 영역 면적을 확장 또는 축소시킴으로써 비디오에서 관심 영역을 식별한다.
도 44에서, 모바일 장치(4425)의 UI(4400)는 다른 모바일 장치의 원격 사용자와의 화상 회의 동안의 PIP 디스플레이(4265)를 제시한다. 도 44에서의 PIP 디스플레이(4265)는 도 42의 PIP 디스플레이(4265)와 실질적으로 유사하지만, 도 44의 전경 삽입 디스플레이(4235)는 PIP 디스플레이(4265)의 좌측 하부 코너에 위치해 있다.
도 44는 ROI 선택 동작을 UI(4400)의 4개의 동작 스테이지로 나타내고 있다. 제1 스테이지(4405)에 나타낸 바와 같이, 배경 디스플레이(4430)는 디스플레이(4430)의 좌측에 남자가 있고 우측에 나무(4440)가 있는 비디오를 제시한다. 더욱이, 나무(4440)는 비교적 작고, 배경 디스플레이 영역(4430)의 우측만을 차지하고 있다. 이 예에서, 모바일 장치(4425)의 사용자는 나무(4440)가 관심 영역으로서 디스플레이(4430) 상에 나타나는 영역을 식별하고자 할 것이다.
제2 스테이지(4410)에서, 관심 영역을 식별하는 동작이 개시된다. 이 예에서, 사용자가 관심 영역으로서 식별하고자 하는 배경 디스플레이(4430)에 제시되는 비디오에서의 영역(4440)을 선택함으로써[예컨대, 나무(4440)가 디스플레이되어 있는 배경 디스플레이 영역(4430)을 두 손가락(4445, 4446)으로 누름으로써] 이 동작이 개시된다. 이 스테이지(4410)에서, 사용자는 그의 손가락(4445, 4446)을 서로로부터 더 멀리 드래그하는 것에 의해 관심 영역(4440)의 면적을 확장시켜 배경 디스플레이 영역(4430)의 더 많은 부분을 차지하게 할 수 있다. 사용자는 또한 그의 손가락(4445, 4446)을 서로에 더 가까이 드래그하는 것에 의해 배경 디스플레이 영역(4430)의 더 작은 부분을 차지하도록 관심 영역(4440)을 축소시킬 수 있다.
제3 스테이지(4415)는, 화살표(4450)로 나타낸 바와 같이, 사용자가 그의 손가락(4445, 4446)을 서로로부터 멀어지게 이동시킴으로써[즉, 손가락(4445)이 배경 디스플레이 영역(4430)의 좌측 상부 코너 쪽으로 이동하고 손가락(4446)이 디스플레이(4430)의 우측 하부 코너 쪽으로 이동함] 배경 디스플레이 영역(4430)의 더 많은 부분을 차지하도록 관심 영역(4440)을 확장시키기 시작한 후의 UI(4400)를 나타내고 있다. 일부 실시예에서, 손가락 이동은 또한 원격 장치 상의 디스플레이에 대해 로컬 장치에 대해서와 동일한 변경을 야기한다. 이 예에서, 예를 들어, 동일한 비디오의 관심 영역이 확장되고 원격 장치의 배경 디스플레이 영역(4430)의 더 많은 부분을 차지할 것이다. 일부 실시예에서, 로컬 디스플레이 및/또는 원격 디스플레이에서의 관심 영역의 확장은 모바일 장치 또는 그것의 카메라 중 하나 또는 둘 다로 하여금 그것의 다른 동작들 중 하나 이상의 동작을 수정하게 하며, 이에 대해서는 이하에서 더 기술한다.
제4 스테이지(4420)는 관심 영역의 식별이 완료된 후의 UI(4400)를 디스플레이하고 있다. 이 예에서, 관심 영역이 배경 디스플레이 영역(4430)에서 원하는 비율에 도달하면, 사용자는 그의 손가락(4445, 4446)의 드래그를 중단하고 손가락(4445, 4446)을 장치의 디스플레이 화면으로부터 제거함으로써 관심 영역의 식별을 완료한다. 이 프로세스의 결과로서, 관심 영역은 배경 디스플레이(4430)의 대부분을 차지하였다. 관심 영역 식별 동작이 이제 완료되었다.
상기 예들 중 일부는 (예컨대, 비디오의 관심 영역 부분을 인코딩하는 비트 레이트를 증가시킴으로써) 비디오에서 선택된 관심 영역 내에서의 영상 품질을 향상시키기 위해 사용자가 비디오에서 관심 영역을 어떻게 식별할 수 있는지를 나타내고 있다. 일부 실시예에서, 비디오에서 관심 영역을 식별하는 것은 노출, 스케일링, 초점, 기타 등등의 모바일 장치의 영상 처리 동작을 변경시킨다. 예를 들어, 비디오에서 관심 영역을 식별하는 것은 화상 회의 관리자(1604)로 하여금 비디오의 영상을 다른 방식으로(예컨대, 줌잉할 관심 영역을 식별하여) 스케일링 및 합성하게 할 수 있다.
다른 실시예에서, 비디오에서 관심 영역을 식별하는 것은 모바일 장치의 카메라(들)의 동작에 대한 변경(예컨대, 프레임 레이트, 줌, 노출, 스케일링, 초점 등)을 유발한다. 또 다른 실시예에서, 비디오에서 관심 영역을 식별하는 것은 모바일 장치의 인코딩 동작에 대한 변경(식별된 영역에 더 많은 비트를 할당하는 것, 스케일링, 기타 등등)을 유발한다. 그에 부가하여, 전술한 예시적인 ROI 식별 동작이 모바일 장치 또는 그것의 카메라들에 대해 전술한 수정들 중 하나만을 야기할 수 있지만, 일부 다른 실시예에서, ROI 식별 동작은 모바일 장치 또는 그것의 카메라들의 동작에 대해 그 수정들 중 둘 이상을 야기할 수 있다. 그에 부가하여, 일부 실시예에서, 도 42 내지 도 44에서의 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 동일하다.
B. 카메라 전환
일부 실시예는 화상 회의 동안 카메라를 전환하는(즉, 영상을 캡처하는 데 사용하는 카메라를 변경하는) 절차를 제공한다. 상이한 실시예들은 카메라 전환 동작을 수행하는 상이한 절차들을 제공한다. 일부 실시예는 듀얼 카메라 모바일 장치에 의해 듀얼 카메라 모바일 장치의 카메라들을 전환(즉, 로컬 전환)하기 위해 수행되는 절차를 제공하는 반면, 다른 실시예는 듀얼 카메라 모바일 장치가 화상 회의 중인 다른 듀얼 카메라 모바일 장치에 다른 장치의 카메라들을 전환(즉, 원격 전환)하라고 지시하는 절차를 제공한다. 또 다른 실시예는 둘 다에 대한 절차를 제공한다. 섹션 IV.B.1은 듀얼 카메라 모바일 장치에서 로컬 카메라 전환 동작을 수행하는 프로세스를 기술할 것이다. 섹션 IV.B.2는 듀얼 카메라 모바일 장치에서 원격 카메라 전환 동작을 수행하는 프로세스를 기술할 것이다.
1. 로컬 카메라 전환
도 45는 일부 실시예가, 적어도 하나의 카메라를 포함하는 원격 모바일 장치와의 화상 회의 동안, 로컬 듀얼 카메라 모바일 장치의 2개의 카메라 간에 전환하기 위해 로컬 듀얼 카메라 모바일 장치에 대해 수행하는 프로세스(4500)를 나타낸 것이다. 일부 실시예에서, 프로세스(4500)는 도 16에 도시된 화상 회의 관리자(1604)에 의해 수행된다. 설명을 위해, 이 논의에서는 로컬 듀얼 카메라 모바일 장치의 한쪽 카메라를 카메라 1이라고 하고 로컬 듀얼 카메라 모바일 장치의 다른쪽 카메라를 카메라 2라고 할 것이다.
프로세스(4500)는 (4505에서) 로컬 듀얼 카메라 모바일 장치와 원격 모바일 장치 간에 화상 회의를 시작하는 것으로 시작한다. 그 다음에, 프로세스(4500)는 (4510에서) 로컬 듀얼 카메라 모바일 장치의 현재 선택된 카메라(예컨대, 카메라 1)로부터의 비디오 영상을 원격 모바일 장치 상에 디스플레이하기 위해 원격 모바일 장치로 송신한다. 4510에서, 프로세스는 또한 이 비디오 영상 및 원격 모바일 장치로부터 수신하는 비디오 영상에 기초하여 합성 디스플레이를 생성하고 디스플레이한다.
프로세스(4500)는 이어서 (4515에서) 화상 회의를 종료시키라는 요청이 수신되었는지를 판정한다. 전술한 바와 같이, 일부 실시예에서, (예컨대, 로컬 듀얼 카메라 모바일 장치의 사용자 인터페이스를 통한) 로컬 듀얼 카메라 모바일 장치의 사용자의 요청 또는 (에컨대, 원격 모바일 장치의 사용자 인터페이스를 통한) 원격 모바일 장치의 사용자의 요청 시에 화상 회의가 종료될 수 있다. 프로세스(4500)가 화상 회의를 종료시키라는 요청을 수신할 때, 프로세스(4500)가 종료된다.
프로세스(4500)가 화상 회의를 종료시키라는 요청을 수신하지 않을 때, 프로세스(4500)는 이어서 (4520에서) 로컬 듀얼 카메라 모바일 장치의 사용자가 화상 회의을 위한 카메라를 전환하라고 그 장치에 지시했는지를 판정한다. 프로세스(4500)가 (4520에서) 카메라를 전환하라고 지시받지 않은 것으로 판정할 때, 프로세스(4500)는 동작(4510)으로 되돌아간다. 그렇지만, 프로세스(4500)가 (4520에서) 그렇게 하라고 지시받은 것으로 판정할 때, 프로세스(4500)는 4525로 넘어간다.
4525에서, 프로세스(4500)는 로컬 듀얼 카메라 모바일 장치가 카메라를 전환하고 있다는 것을 나타내는 통지를 원격 모바일 장치로 송신한다. 일부 실시예에서, 프로세스(4500)는, 전술한 바와 같이, VTP 관리자(3125)에 의해 오디오 및 비디오 채널과 다중화되는 화상 회의 제어 채널을 통해 통지를 송신한다.
그의 통지를 송신한 후에, 프로세스(4500)는 (4530에서) 카메라 전환 동작을 수행한다. 일부 실시예에서, (4530에서) 카메라 전환 동작을 수행하는 것은 카메라 1로 비디오 영상을 캡처하는 것을 중단하고 카메라 2로 비디오 영상을 캡처하기 시작하라고 CIPU에 지시하는 것을 포함한다. 이들 명령어는 단순히 카메라 2와 연관된 픽셀 어레이로부터 영상을 캡처하는 것으로 전환하고 이들 영상을 처리하기 시작하라고 CIPU에 지시할 수 있다. 다른 대안으로서, 일부 실시예에서, CIPU에 대한 명령어는 (1) 특정의 일련의 설정에 기초하여 카메라 2를 동작시키고, (2) 특정의 프레임 레이트로 카메라 2에 의해 생성된 비디오를 캡처하며, 및/또는 (3) 특정의 일련의 설정(예컨대, 해상도 등)에 기초하여 카메라 2로부터의 비디오 영상을 처리하라고 CIPU에 지시하는 일련의 초기화 파라미터를 수반한다.
일부 실시예에서, (4530에서의) 카메라 전환 명령어는 또한, 전술한 바와 같이, 미사용 카메라를 제4 동작 전력 모드로 전환시키라는 명령어를 포함하고 있다. 이 예에서, 카메라 전환 명령어는 카메라 2가 그것의 제4 동작 전력 모드로 전환하는 명령어를 포함하고 있다. 그에 부가하여, 카메라 전환 명령어는 또한, 카메라 1이 그것의 제4 동작 전력 모드로부터 전력을 절감하기 위한 제1 동작 전력 모드와 같은 다른 동작 전력 모드로 전환하는, 또는 영상을 캡처하라고 요청받을 때 제4 동작 전력 모드로 빠르게 전환하여 그렇게 하기 시작할 수 있도록 제3 동작 전력 모드로 전환하는 명령어를 포함하고 있다. 카메라 전환 동작(4530)은 또한 로컬 듀얼 카메라 모바일 장치 상에 디스플레이하기 위해, 로컬 듀얼 카메라 모바일 장치의 (카메라 1에 의해 캡처된 영상 대신에) 카메라 2에 의해 캡처된 영상을 원격 모바일 장치로부터 수신된 영상과 합성하는 것을 포함한다.
4530에서 카메라 전환을 지시한 후에, 프로세스(4500)는 (4535에서) 카메라 1로부터의 영상의 디스플레이와 카메라 2로부터의 영상의 디스플레이 간의 천이를 디스플레이하기 위해 로컬 듀얼 카메라 모바일 장치 상에서 카메라 전환 애니메이션화를 수행한다. 로컬 듀얼 카메라 모바일 장치 상에서의 카메라 전환 애니메이션화 이후에, 프로세스(4500)는, 화상 회의 종료 요청 또는 새로운 카메라 전환 요청이 수신될 때까지, 동작(4510 내지 4520)을 통해 루프백한다.
도 46은 어떻게 일부 실시예가 듀얼 카메라 장치의 UI(1105)를 통해 카메라 전환 동작이 요청되게 해 줄 수 있는지 및 이들 실시예가 카메라 전환 동작을 어떻게 애니메이션화하는지의 일례를 나타내고 있다. 이 도면은 카메라 전환 동작을 장치의 UI(1105)의 8개의 상이한 동작 스테이지(4610, 4615, 4620, 4625, 4630, 4635, 4640, 4645)로 나타내고 있다. UI(1105)의 처음 4개의 스테이지(4610, 4615, 4620, 4625)는 카메라를 전환하라는 사용자의 요청을 수신하는 예를 나타내고 있다. 본 발명의 일부 실시예에서, 장치의 사용자는 이러한 요청을 하는 다른 메커니즘을 가지고 있다.
제1 스테이지(4610)는 화상 회의가 설정된 후의 UI(1105)를 나타내는 도 11의 UI(1105)의 제5 스테이지(1130)와 동일하다. 이 스테이지에서, UI(1105)는 2개의 비디오 디스플레이 - 원격 카메라로부터의 큰 배경 디스플레이 및 로컬 카메라로부터의 작은 전경 삽입 디스플레이 - 를 포함하는 PIP 디스플레이를 디스플레이한다. 이 예에서, 배경 메인 디스플레이 영역(1170)은 여자(이 예에서, 그의 비디오가 원격 장치에 의해 캡처되고 있는 여자인 것으로 가정됨)의 비디오를 제시하는 반면, 전경 삽입 디스플레이 영역(1160)은 남성(이 예에서, 그의 비디오가 로컬 장치의 전방 카메라에 의해 캡처되고 있는 남자인 것으로 가정됨)의 비디오를 제시한다.
제2 스테이지(4615)는 이어서 UI(1105)의 PIP 디스플레이 영역(1180)을 선택함으로써 카메라 전환 동작을 개시하는 것을 나타내고 있다. 도시된 바와 같이, 사용자의 손가락(4670)을 PIP 디스플레이(1180) 상에 위치시킴으로써 선택이 행해진다. 제3 스테이지(4620)는 화상 회의 동안 로컬 장치(4600)의 카메라들 사이의 전환을 요청하는 선택가능한 UI 항목(4675)[예컨대, 카메라 전환 버튼(4675)]을 포함하는 UI(1105)를 나타내고 있다. 제4 스테이지(4625)는 로컬 장치(4600)의 사용자가 (예컨대, 한 손가락 탭핑을 통해) 선택가능한 UI 항목(4675)을 선택한 후, 그리고 이 선택이 선택가능한 UI 항목(4675)을 하이라이트하는 것을 통해 나타내어진 후의 UI(1105)를 나타내고 있다. 이 선택가능한 UI 항목(4675)을 선택함으로써, 사용자는 화상 회의 동안 장치(4600)의 전방 카메라로부터 장치(4600)의 후방 카메라로 전환하라고 장치(4600)에 지시하고 있다. 장치(4600)의 후방 카메라가 비디오를 캡처하고 있는 다른 예에서, 사용자가 선택가능한 UI 항목(4675)을 선택하는 것은 장치(4600)의 후방 카메라로부터 장치(4600)의 전방 카메라로 전환하라고 장치(4600)에 지시한다. 제4 스테이지 이후에, 화상 회의 관리자는 카메라 전환 동작을 시작하라는 명령어를 CIPU 및 원격 장치로 송신한다.
UI(1105)의 마지막 4개의 스테이지(4630, 4635, 4640, 4645)는 로컬 장치 상에서의 카메라 전환 애니메이션화의 예를 나타내고 있다. 이 애니메이션화는 로컬 장치의 전방 및 후방 카메라로부터 캡처된 비디오가 보기 창의 2개의 반대면 상에 동시에 디스플레이되고 있다는 인상을 제공하도록 의도된 것인데, 사용자는 임의의 주어진 때에 그 보기 창의 면들 중 하나만을 볼 수 있다. 화상 회의의 중간에 카메라 전환이 요청될 때, 이전에 한쪽 카메라의 비디오를 사용자에게 보여주고 있었던 보기 창의 한쪽 면 상에서의 한쪽 카메라의 비디오의 제시가 다른쪽 카메라의 비디오를 보여주는 보기 창의 다른쪽 면으로 대체될 때까지 사용자로부터 멀어지게 회전하도록, 이 보기 창이 수직축을 중심으로 회전하는 것처럼 보이게 된다. 인지된 보기 창의 회전의 이러한 애니메이션화 및 모습은 (1) 한쪽 카메라에 대한 디스플레이 영역에서 그 카메라로부터의 비디오 영상을 점차적으로 축소시키고 그에 대해 원근 보정 동작을 적용하는 것, 이어서 (2) 디스플레이 영역에서의 다른쪽 카메라로부터의 비디오 영상에 대한 점차적인 확장 및 원근 보정 동작에서의 감소에 의해 달성된다.
그에 따라, 제5 스테이지(4630)는 수직축(4682)을 중심으로 "보기 창의 회전"을 시작하는 것을 나타내고 있다. 보기 창이 회전하는 모습을 제공하기 위해, UI(1105)는 비디오 디스플레이 영역(1160)에서의 전방 카메라의 비디오 영상의 크기를 감소시켰고, 비디오 영상의 우측이 비디오 영상의 좌측보다 사용자로부터 더 멀리 있는 것처럼 보이게 하기 위해 원근 보정 동작을 적용하였다.
제6 스테이지(4635)는, 디스플레이 영역(1160)의 중간에 디스플레이된 가는 선(4686)으로 나타낸 바와 같이 사용자가 보기 창의 가장자리만을 볼 수 있도록 보기 창이 90도 회전한 것을 나타내고 있다. 제7 스테이지(4640)는, 사용자의 후방 카메라로부터 캡처된 비디오를 보여주기 위해 보기 창(4688)의 뒷면이 이제 점차적으로 사용자에게 보이도록, 보기 창이 계속 회전하는 것을 나타내고 있다. 다시 말하지만, 일부 실시예에서, 회전 애니메이션화의 이 표현은 비디오 디스플레이 영역(4688)에서의 후방 카메라의 비디오 영상의 크기를 감소시키고, 비디오 영상의 좌측이 비디오 영상의 우측보다 사용자로부터 더 멀리 있는 것처럼 보이게 하기 위해 원근 보정 동작을 적용하는 것에 의해 달성된다.
제8 스테이지(4645)는 카메라 전환 동작을 보여주는 애니메이션화의 완료를 나타내고 있다. 구체적으로는, 이 스테이지는 장치(4600)의 후방 카메라에 의해 캡처되고 있는 자동차의 비디오 영상을 디스플레이 영역(1160)에 디스플레이한다.
도 46을 참조하여 전술한 예는 카메라 전환 사용자 인터페이스를 통해 카메라 전환 동작을 호출한다. 다른 실시예들은 카메라 전환 동작을 상이한 방식들로 호출한다. 예를 들어, 일부 실시예는 도 47의 UI(1105) 등의 UI 상에 화상 회의 동안 카메라 전환 선택가능한 UI 항목을 영구적으로 디스플레이함으로써 카메라 전환 동작을 호출한다. 도 47에서, 카메라 전환 버튼(1289)이 음소거 버튼(1285) 및 회의 종료 버튼(1287)과 함께 디스플레이 영역(1155)에 나타내어져 있다. 디스플레이 영역(1155)의 레이아웃은 도 12를 참조하여 전술한 디스플레이 영역(1155)의 레이아웃과 동일하다.
도 47은 UI(1105)의 카메라 전환 동작을 6개의 스테이지(4610, 4790, 4630, 4635, 4640, 4645)로 나타내고 있다. 도 47의 제1 스테이지(4610)는, 디스플레이 영역(1155)의 레이아웃이 하나의 회의 종료 버튼 대신에, 음소거 버튼(1285), 회의 종료 버튼(1287), 및 카메라 전환 버튼(1289)를 나타내는 것을 제외하고는, 도 46의 제1 스테이지(4610)와 유사하다. 제2 스테이지(4790)는 로컬 장치(4600)의 사용자가 [예컨대, 손가락(4670)을 사용하는 한 손가락 탭핑을 통해] 카메라 전환 선택가능한 UI 항목(1289)을 선택한 후의 UI(1105)를 나타내고 있다. 이 예에서, 이 선택가능한 UI 항목(1289)을 선택함으로써, 사용자는 화상 회의 동안 장치(4600)의 전방 카메라로부터 장치(4600)의 후방 카메라로 전환하라고 장치(4600)에 지시한다. 도 47의 마지막 4개의 스테이지는, 디스플레이 영역(1155)의 레이아웃이 제1 스테이지(4610)에 전술한 레이아웃과 동일하다는 것을 제외하고는, 도 46의 마지막 4개의 스테이지와 유사하며, 따라서 불필요한 상세로 본 발명의 설명을 모호하게 하지 않기 위해 더 기술하지 않을 것이다.
일부 실시예에서, 원격 모바일 장치가 로컬 듀얼 카메라 모바일 장치의 다른 카메라로부터 영상을 수신할 때(즉, 로컬 듀얼 카메라 모바일 장치가 카메라를 전환했을 때), 원격 모바일 장치는 또한 로컬 듀얼 카메라 모바일 장치의 한쪽 카메라로부터의 영상의 디스플레이와 로컬 듀얼 카메라 모바일 장치의 다른쪽 카메라로부터의 영상의 디스플레이 간의 천이를 디스플레이하기 위해 카메라 전환 애니메이션화를 수행한다. 도 48은 이러한 카메라 전환 애니메이션화 중 하나의 애니메이션화의 예를 UI(4805)의 5개의 동작 스테이지(4810, 4815, 4820, 4825, 4830)로 나타내고 있다. 이 도면은 원격 모바일 장치(4800) 상에서의 예시적인 카메라 전환 애니메이션화를 나타내고 있다. 원격 모바일 장치(4800) 상에서 로컬 듀얼 카메라 모바일 장치로부터의 영상이 디스플레이되는 곳인 디스플레이 영역(4835)에 디스플레이되는 영상에 대해 애니메이션화가 수행되는 것을 제외하고는, 동작 스테이지가 도 46의 예시적인 애니메이션화와 동일하다. 그에 따라, 디스플레이 영역(4835)에 남자의 영상을 디스플레이하는 것과 자동차(4870)의 영상을 디스플레이하는 것 사이의 천이를 보여주기 위해, 디스플레이 영역(4835)에 디스플레이되는 남자의 영상이 디스플레이 영역(4850)의 중간에 위치하는 수직축(4855)을 중심으로 180도 회전하는 것처럼 보이도록 애니메이션화된다. 일부 실시예의 카메라 전환 애니메이션화의 구현은 전술한 애니메이션화의 구현과 동일하다.
상기 예는 특정의 사용자 인터페이스 레이아웃을 갖는 원격 장치 상에서의 카메라 전환 애니메이션화를 나타내고 있다. 다른 실시예는 다른 사용자 인터페이스 레이아웃을 갖는 원격 장치 상에서 이 카메라 전환 애니메이션화를 수행할 수 있다. 예를 들어, 도 49는 다른 사용자 인터페이스 레이아웃(4805)을 갖는 원격 장치(4800)의 하나의 이러한 예를 나타내고 있다. 상세하게는, 도 49의 UI(4805)는 화상 회의 동안 합성 디스플레이(4850)의 한 쪽에 영구적으로 디스플레이되는, 디스플레이 영역(1155)에 포함되어 있는 음소거 버튼(1285), 회의 종료 버튼(1287), 및 카메라 전환 버튼(1289)을 가진다. 3개의 버튼의 레이아웃에 대해서는 도 48을 참조하여 앞서 기술하였다. 다른 사용자 인터페이스 레이아웃 이외에, 도 49의 5개의 스테이지(4810, 4815, 4820, 4825, 4830)는 도 48의 5개의 스테이지(4810, 4815, 4820, 4825, 4830)와 동일하다.
2. 원격 카메라 전환
도 50은 화상 회의 동안 원격 듀얼 카메라 장치의 2개의 카메라 간에 전환하는 프로세스(5000)를 나타낸 것이다. 이 프로세스(5000)는 적어도 하나의 카메라를 포함하는 장치의 화상 회의 관리자에 의해 수행된다. 이하의 논의에서, 사용자가 원격 카메라 전환을 지시하는 데 사용되는 장치는 로컬 장치라고 하는 반면, 그의 2개의 카메라 간에 전환하는 장치는 원격 장치라고 한다. 또한, 이하의 논의에서, 원격 장치는 그것의 전방 카메라(또는 카메라 1)와 그것의 후방 카메라(또는 카메라 2) 간에 전환한다고 말해진다.
도 50의 프로세스(5000)는 도 51, 도 52, 도 53 및 도 54를 참조하여 기술될 것이다. 도 51은 사용자가 화상 회의 동안 원격 장치에게 그것의 2개의 카메라 간에 전환하라고 요청하는 데 사용하는 로컬 장치(5100)의 UI(5105)를 나타내고 있다. 이 도면은 이 UI(5105)의 8개의 상이한 동작 스테이지(5110, 5115, 5120, 5125, 5130, 5135, 5140, 5145)를 나타내고 있다. 도 54는 로컬 장치(5100)로부터 카메라 전환 요청을 수신하는 원격 장치(5400)의 UI(5405)를 나타내고 있다. 도 54는 UI(5405)의 6개의 상이한 동작 스테이지(5410, 5415, 5420, 5425, 5430, 5435)를 나타내고 있다.
도 50에 도시된 바와 같이, 프로세스(5000)는 (5005에서) 로컬 장치와 원격 장치 간의 화상 회의를 시작하는 것으로 시작된다. 프로세스(5000)는 이어서 (5010에서) 각각의 장치의 한쪽 카메라로부터(예컨대, 각각의 장치의 전방 카메라로부터) 영상을 수신하고 이 영상에 기초하여 화상 회의를 위한 합성 뷰를 생성한다. 5010에서, 프로세스(5000)는 또한 비디오 영상을 로컬 장치로부터 원격 장치로 송신한다.
그 다음에, 프로세스(5000)는 (5015에서) 화상 회의를 종료시키라는 요청이 수신되었는지를 판정한다. 전술한 바와 같이, 일부 실시예에서, 로컬 또는 원격 장치의 사용자의 요청 시에 화상 회의가 종료될 수 있다. 프로세스(5000)가 화상 회의를 종료시키라는 요청을 수신할 때, 프로세스(5000)가 종료된다.
프로세스(5000)가 화상 회의를 종료시키라는 요청을 수신하지 않을 때, 프로세스(5000)는 이어서 (5020에서) 프로세스(5000)가 실행되고 있는 장치의 사용자(즉, 로컬 장치의 사용자)가 원격 장치에게 화상 회의를 위한 그것의 카메라들 간에 전환하라고 요청하도록 장치에 지시했는지를 판정한다. 프로세스(5000)가 (5020에서) 원격 카메라 전환을 개시하라고 지시받지 않은 것으로 판정할 때, 프로세스(5000)는 동작(5010)으로 되돌아간다. 프로세스(5000)가 (5020에서) 그렇게 하라고 지시받은 것으로 판정할 때, 프로세스(5000)는 5025로 넘어가고, 이에 대해서는 이하에서 더 기술할 것이다.
도 51의 UI(5105)의 처음 4개의 스테이지(5110, 5115, 5120, 5125)는 원격 장치의 카메라를 전환하라는 사용자의 요청을 수신하는 예를 나타내고 있다. 제1 및 제2 스테이지(5110, 5115)는 도 46의 제1 및 제2 스테이지(4610, 4615)와 동일하다. 제3 스테이지(5120)가, 로컬 장치(5100)에게 카메라를 전환하라고 요청하는 선택가능한 UI 항목(5175)에 부가하여, 원격 장치(5100)에게 카메라를 전환하라고 요청하는 선택가능한 UI 항목(5180)을 포함하는 것을 제외하고, 제3 스테이지(5120)는 제3 스테이지(4620)와 동일하다. 제4 스테이지(5125)는 로컬 장치(5100)의 사용자가 원격 장치에 카메라를 전환하라고 요청하는 [예컨대, 선택가능한 UI 항목(5180)의 한 손가락 탭핑(5170)을 통해] UI 항목(5180)을 선택하는 것을 나타내고 있다. 이 선택은 선택가능한 UI 항목(5180)을 하이라이트하는 것에 의해 나타내어진다. 도 51은 이 동작을 수행하는 일례를 나타낸 것이지만, 다른 실시예는 원격 장치에 카메라를 전환하라고 요청하는 동작을 다른 방식들로 수행할 수 있다.
도 51을 참조하여 전술한 예는 원격 카메라 전환 사용자 인터페이스를 통해 원격 카메라 전환 동작을 호출한다. 다른 실시예는 원격 카메라 전환 동작을 다른 방식으로 호출한다. 예를 들어, 일부 실시예는 도 52의 UI(5105) 등의 UI 상에 화상 회의 동안 카메라 전환 선택가능한 UI 항목을 영구적으로 디스플레이함으로써 카메라 전환 동작을 호출한다. 도 52에서, 원격 카메라 전환 버튼(5288)이 음소거 버튼(5282), 회의 종료 버튼(5284) 및 로컬 카메라 전환 버튼(5286)과 함께 디스플레이 영역(1155)에 나타내어져 있다.
도 52는 장치(5100)의 UI(5105)의 원격 카메라 전환 동작을 6개의 상이한 스테이지(5110, 5290, 5130, 5135, 5140, 5145)로 나타내고 있다. 도 52의 제1 스테이지(5110)는, 디스플레이 영역(1155)의 레이아웃이 음소거 버튼(5282), 로컬 카메라 전환 버튼(5286), 원격 카메라 전환 버튼(5288) 및 회의 종료 버튼(5284)를 나타내는 것을 제외하고는, 도 51의 제1 스테이지(5110)와 유사하다. 제2 스테이지(5290)는 로컬 장치(5100)의 사용자가 [예컨대, 한 손가락 탭핑(5170)을 통해] 원격 카메라 전환 선택가능한 UI 항목(5288)을 선택한 후의 UI(1105)를 나타내고 있다. 도 52의 마지막 4개의 스테이지는, 디스플레이 영역(1155)의 레이아웃이 제1 스테이지(5110)에 전술한 레이아웃과 동일하다는 것을 제외하고는, 도 51의 마지막 4개의 스테이지와 유사하며, 따라서 불필요한 상세로 본 발명의 설명을 모호하게 하지 않기 위해 더 기술하지 않을 것이다.
일부 실시예는, 원격 카메라 전환 선택가능한 UI 항목이 디스플레이 영역(1155) 대신에 PIP 디스플레이(5165)에 디스플레이되는 것을 제외하고는, 도 52에 예시된 것과 유사한 레이아웃을 제공한다. 도 53은 이러한 레이아웃(5105)을 나타낸 것이다. 상세하게는, 이 도면은 원격 카메라 전환 선택가능한 UI 항목(5180)을 갖는 PIP 디스플레이 및 단지 음소거 버튼(5282), 로컬 카메라 전환 버튼(5286) 및 회의 종료 버튼(5284)만을 갖는 디스플레이 영역(1155)을 나타내고 있다.
앞서 언급한 바와 같이, 프로세스(5000)는 사용자가 원격 카메라 전환을 요청할 때 5025로 넘어간다. 5025에서, 프로세스(5000)는 카메라를 전환하라는 요청을 원격 장치로 송신한다. 일부 실시예에서, 이 요청은 전술한 바와 같이 VTP 관리자(3125)에 의해 오디오 및 비디오 채널과 다중화되는 화상 회의 제어 채널을 통해 송신된다.
카메라를 전환하라는 요청이 수신된 후에, 프로세스(5000)는 (5030에서) 원격 장치가 카메라를 전환하라는 요청에 응답했는지를 판정한다. 일부 실시예에서, 원격 장치는 화상 회의 제어 채널을 통해 로컬 장치로 수락 응답을 자동 송신한다(즉, 확인 응답을 송신한다). 그렇지만, 다른 실시예에서, 원격 장치의 사용자는 원격 장치의 사용자 인터페이스를 통해 이 요청을 수락해야만 한다.
도 54의 UI(5405)의 처음 2개의 스테이지(5410, 5415)는 원격 사용자가 원격 장치(5400)의 카메라를 전환하라는 요청을 수락하는 예를 나타내고 있다. 제1 스테이지(5410)는 (1) 원격 사용자에게 요청을 통지하는 텍스트를 디스플레이하는 디스플레이 영역(5440), (2) 원격 장치의 카메라를 전환하라는 요청을 수락하기 위한 선택가능한 UI 항목(5465)[예컨대, 허용(allow) 버튼(5465)], 및 (3) 원격 장치의 카메라를 전환하라는 요청을 거부하는 선택가능한 UI 항목(5470)[예컨대, 거부(reject) 버튼(5470)]을 나타내고 있다. 제2 스테이지(5415)는 이어서 원격 장치의 사용자가 [예컨대, 한 손가락 탭핑(5480)을 통해] 카메라를 전환하라는 요청을 수락하기 위한 UI 항목(5465)을 선택한 후의 UI(5405)를 나타내고 있다[선택가능한 UI 항목(5465)을 하이라이트하는 것으로 나타내어져 있음].
프로세스(5000)가 (5030에서) 원격 장치로부터 응답을 아직 수신하지 않은 것으로 판정할 때, 프로세스(5000)는 (5035에서) 화상 회의를 종료시키라는 요청이 수신되었는지를 판정한다. 그러한 경우, 프로세스(5000)가 종료된다. 그렇지 않은 경우, 프로세스는 (5040에서) 원격 및 로컬 장치의 현재 사용되는 카메라로부터 영상을 수신하고, 이들 영상에 기초하여 화상 회의를 위한 합성 뷰를 생성하며, 로컬 장치의 비디오 영상을 원격 장치에게 전송하고, 이어서 5030으로 다시 넘어간다.
프로세스(5000)가 (5030에서) 원격 장치로부터 응답을 수신한 것으로 판정할 때, 프로세스(5000)는 (5045에서) 원격 장치가 카메라를 전환하라는 요청을 수락했는지를 판정한다. 수락하지 않은 경우, 프로세스(5000)는 다른 장치의 카메라로부터의 영상을 계속하여 수신하기 위해 동작(5010)으로 되돌아간다. 그렇지 않은 경우, 프로세스는 (5050에서) 원격 장치의 다른쪽 카메라로부터의 영상을 수신하고, 이어서 (5055에서) 이전에 이용된 원격 카메라의 비디오와 현재 이용되는 원격 카메라의 비디오[즉, 동작(5050)에서 수신된 영상] 간의 천이를 디스플레이하기 위해 로컬 장치 상에서 카메라 전환 애니메이션화를 수행한다. 5055 이후에, 프로세스는 다시 5010으로 넘어가며, 이에 대해서는 앞서 기술하였다.
도 51에서의 UI(5105)에 대해 예시되어 있는 마지막 4개의 동작 스테이지(5130, 5135, 5140, 5145)는 로컬 장치(5100) 상에서의 이러한 원격 카메라 전환 애니메이션화의 일례를 나타내고 있다. 예시적인 애니메이션화는, 도 51이 원격 장치의 전방 카메라에 의해 캡처되는 여성의 비디오를 원격 장치의 후방 카메라에 의해 캡처되는 나무의 비디오로 대체하는 애니메이션화를 디스플레이 영역(5150)에 보여주는 것을 제외하고는, 도 48의 스테이지(4815, 4820, 4825, 4830)에 예시된 예시적인 애니메이션화와 유사하다. 도 52 및 도 53의 마지막 4개의 스테이지는, 도 52 및 도 53의 디스플레이 영역(1155)이 도 51에서의 디스플레이 영역(1155)과 상이한 선택가능한 UI 항목을 포함하고 있는 것을 제외하고는, 도 51에서의 것과 동일한 애니메이션화를 나타내고 있다.
일부 실시예에서, 원격 장치가 카메라를 전환할 때, 원격 장치의 UI는 또한 2개의 카메라 사이의 천이를 디스플레이하기 위해 카메라 전환 애니메이션화도 수행한다. 도 54에서 UI(5405)에 대해 예시되어 있는 마지막 4개의 동작 스테이지(5420, 5425, 5430, 5435)는 원격 장치(5400)가 카메라 간에 전환할 때 원격 장치(5400) 상에 디스플레이되는 카메라 전환 애니메이션화의 예를 나타내고 있다. 이 애니메이션화는, 디스플레이 영역(5445)에서의 애니메이션화가 원격 장치(5400)의 전방 카메라에 의해 캡처되는 여성의 비디오를 원격 장치(5400)의 후방 카메라에 의해 캡처되는 나무의 비디오로 대체하는 것을 제외하고는, 도 46의 스테이지(4630, 4635, 4640, 4645)에 예시된 애니메이션화와 유사하다.
앞서 살펴본 바와 같이, 도 46, 도 47, 도 48, 도 49, 도 51, 도 52, 도 53, 및 도 54는 사용자 인터페이스 상에서 수행되는 카메라 전환 애니메이션화의 다양예를 나타내고 있다. 일부 실시예에서, 카메라 전환 애니메이션화는 예를 들어 화상 회의 관리자(1604) 및 영상 처리 관리자(1608)에 의해 수행될 수 있는 각자의 듀얼 카메라 모바일 장치의 영상 처리 동작(스케일링, 합성, 및 원근 왜곡 등)을 변경시킨다.
C. 노출 조절
듀얼 카메라 모바일 장치와 다른 모바일 장치 사이의 화상 회의 동안, 상이한 실시예들은 어느 한 모바일 장치의 카메라들에 의해 캡처되는 영상의 노출을 조절하는 상이한 기술들을 제공한다. 일부 실시예는 듀얼 카메라 모바일 장치의 사용자가 상대방 장치의 카메라에 의해 캡처되는 영상의 노출을 조절하는 기술을 제공하는 반면, 다른 실시예는 사용자가 듀얼 카메라 모바일 장치의 카메라에 의해 캡처되는 영상의 노출을 조절하는 기술을 제공한다. 몇가지 예시적인 기술에 대해 이하에서 상세히 기술할 것이다.
도 55는 화상 회의 동안 일부 실시예의 듀얼 카메라 모바일 장치에 대해 원격 노출 조절 동작을 수행하는 프로세스(5500)를 나타낸 것이다. 이하의 논의에서, 사용자가 원격 장치에 그의 노출 레벨을 조절하라고 지시하는 데 사용하는 장치는 로컬 장치라고 한다. 일부 실시예에서, 프로세스(5500)는 로컬 장치의 화상 회의 관리자에 의해 수행된다. 그에 부가하여, 프로세스(5500)는 로컬 장치의 사용자가 원격 장치에게 노출 조절 동작을 수행하라고 요청하는 다양한 방식을 나타내는 도 56, 도 57 및 도 58을 참조하여 기술될 것이다.
도 55에 도시된 바와 같이, 프로세스(5500)는 (5505에서) 로컬 장치와 원격 장치 간의 화상 회의를 시작하는 것으로 시작된다. 프로세스(5500)는 이어서 (5510에서) 로컬 장치의 디스플레이 화면 상에 디스플레이하기 위한 원격 장치로부터의 비디오를 수신한다. 그 다음에, 프로세스(5500)는 (5515에서) 화상 회의를 종료시키라는 요청이 수신되었는지를 판정한다. 이상에서 기술한 바와 같이, 일부 실시예는 로컬 또는 원격 장치의 사용자로부터 화상 회의를 종료시키라는 요청을 수신할 수 있다. 프로세스(5500)가 화상 회의를 종료시키라는 요청을 수신할 때, 프로세스(5500)가 종료된다.
그렇지만, 프로세스(5500)가 화상 회의를 종료시키라는 요청을 수신하지 않을 때, 프로세스(5500)는 이어서 (5520에서) 원격 장치의 카메라의 노출을 조절하라는 요청이 수신되었는지를 판정한다. 프로세스(5500)가 원격 장치의 카메라의 노출을 조절하라는 요청이 수신되지 않은 것으로 판정할 때, 프로세스(5500)는 원격 장치로부터 캡처된 부가의 비디오를 수신하기 위해 다시 동작(5510)으로 되돌아간다. 도 56, 도 57 및 도 58은 사용자가 이러한 요청을 하는 방식을 제공하는 3개의 상이한 예를 나타낸 것이다. 도 56, 도 57 및 도 58에서, 제1 스테이지(5610, 5710, 5810) 모두는 2개의 비디오 - 하나는 로컬 장치의 카메라에 의해 캡처된 것이고 다른 하나는 원격 장치의 카메라에 의해 캡처된 것임 -를 디스플레이하는 로컬 장치(5600, 5700, 5800)의 PIP 디스플레이(5625, 5750, 5835)를 보여준다. 제1 스테이지(5610, 5710, 5810)에서, 배경 디스플레이(5635, 5760, 5845)에 있는 남자가 어두우며, 이는 남자가 적절히 노출되지 않았음을 나타낸다.
도 56의 제2 스테이지(5615)는 로컬 장치(5600)의 사용자가 [예컨대, 배경 디스플레이(5635) 상에서의 한번 탭핑을 통해] 원격 장치의 비디오를 선택함으로써 노출 조절을 수행하라고 원격 장치에게 요청하는 한 방식을 나타내고 있다. 이러한 방식으로, UI(5605)는 박스(5645)에 의해 정의된 관심 영역의 사용자의 선택을 관심 영역에 대해 노출 조절을 수행하라고 원격 장치에 지시하고자 하는 사용자의 소망과 자동으로 연관시키고, 따라서 노출 조절 동작을 수행하기 위해 원격 장치와 접촉하라고 로컬 장치의 화상 회의 관리자에게 지시한다. 정의된 관심 영역은 원격 장치에서 노출 조절을 계산하는 데 사용된다.
도 56의 제2 스테이지(5615)와 마찬가지로, 도 57의 제2 스테이지(5715)는, 선택이 제3 스테이지(5720)에서 나타낸 바와 같이 선택가능한 UI 항목(5770)을 디스플레이하라고 UI(5705)에 지시하는 것을 제외하고는, 로컬 사용자가 원격 장치의 비디오를 선택하는 것을 보여주고 있다. 제4 스테이지(5725)는 로컬 장치의 사용자가 전술한 바와 같이 노출 조절 동작을 수행하라고 원격 장치에게 지시하기 위해 선택가능한 UI 항목(5770)을 선택하는 것을 나타내고 있다.
도 58의 제2 스테이지(5815)는 도 57의 제2 스테이지(5715)와 유사하지만, 사용자의 원격 장치의 비디오의 선택이 하나의 선택가능한 UI 항목을 디스플레이하라고 UI에게 지시하는 대신에, 제3 스테이지(5820)에 나타낸 바와 같이, 사용자의 선택은 선택가능한 UI 항목(5855, 5860, 5865, 5870)의 메뉴를 디스플레이하라고 UI(5805)에 지시한다. 선택가능한 UI 항목은 자동 초점 항목(5855), 자동 노출 항목(5860), 카메라 전환 항목(5865), 및 취소 항목(5870)을 포함하고 있다. 일부 실시예에서, 카메라 전환 선택가능한 UI 항목(5865)은 로컬 카메라 전환 동작을 요청하는 데 사용되는 반면, 다른 실시예에서, 카메라 전환 선택가능한 UI 항목(5865)은 원격 카메라 전환 동작을 요청하는 데 사용된다. 제4 스테이지(5825)는 사용자가 전술한 바와 같이 노출 조절 동작을 수행하라고 원격 장치에게 지시하기 위해 자동 노출 항목(5860)을 선택하는 것을 나타내고 있다.
프로세스(5500)가 (5520에서) 로컬 사용자가 노출 조절 동작을 요청하라고 로컬 장치에게 지시한 것으로 판정할 때, 프로세스(5500)는 (5525에서) 현재 비디오를 캡처하여 로컬 장치에게 전송하고 있는 카메라에 의해 캡처된 비디오의 노출을 조절하라는 명령을 화상 회의 제어 채널을 통해 원격 장치로 송신한다. 동작(5525) 이후에, 프로세스(5500)는 다시 5510으로 넘어가며, 이에 대해서는 앞서 기술하였다.
일부 실시예에서, 원격 장치의 사용자는 원격 장치가 노출 조절 동작을 수행하기 전에 허가를 제공할 필요가 있는 반면, 다른 실시예에서, 원격 장치는 로컬 장치로부터 요청을 수신할 시에 노출 조절 동작을 자동으로 수행한다. 더욱이, 일부 실시예에서, 화상 회의 기능들 중 일부가 화상 회의 관리자(1604)에 의해 구현된다. 이들 실시예들 중 일부 실시예에서, 화상 회의 관리자(1604)는 사용되고 있는 원격 장치 카메라의 센서의 노출 설정을 조절하라고 CIPU(1650)에게 지시함으로써 노출 조절 동작을 수행한다.
도 56, 도 57 및 도 58의 마지막 스테이지(5620, 5730, 5830)는 원격 장치의 비디오를 더 밝게 보여주며, 이는 남자가 적절히 노출되어 있다는 것을 나타낸다. 도 56, 도 57 및 도 58이 원격 장치의 노출을 정정하라는 노출 조절 요청을 수신하는 예를 제공하고 있지만, 일부 실시예는 로컬 장치의 사용자가 로컬 장치의 카메라의 노출을 조절하라고 그 로컬 장치에게 요청하는 방식을 제공한다. 이러한 요청은 원격 장치에 그것의 카메라의 노출을 조절하라고 요청하는 도 56, 도 57 및 도 58에 예시된 방식과 유사하게 행해질 수 있다.
전술한 도 56 내지 도 58은 노출 조절 동작을 수행하는 몇가지 사용자 인터페이스를 나타내고 있다. 일부 실시예에서, 노출 조절 동작은 듀얼 카메라 모바일 장치의 영상 처리 동작에 대한 변경[노출 조절 프로세스(5900)를 호출하는 것 등]을 유발할 수 있으며, 이에 대해서는 이하에서 더 상세히 기술한다. 노출 조절 동작은 또한, 예를 들어 카메라의 노출 레벨 설정을 변경하는 것과 같이, 비디오를 캡처하고 있는 듀얼 카메라 모바일 장치의 카메라의 동작을 변경시킬 수 있다.
1. 노출 조절 방법
도 59는 도 16에 예시된 것과 같은 일부 실시예의 영상 처리 관리자에 의해 수행되는 노출 조절 프로세스(5900)를 개념적으로 나타낸 것이다. 일부 실시예에서, 프로세스(5900)는 도 55, 도 56, 도 57 및 도 58을 참조하여 전술한 노출 조절 동작의 일부이다. 이러한 실시예들 중 일부 실시예에서, 영상 처리 관리자(1608)는 프로세스(5900)를 수행하고, 앞서 언급한 바와 같이, 카메라 센서(405a 또는 405b)를 조절하라고 CIPU(1650)에게 지시하는 명령어를 화상 회의 관리자(1604)로 송신함으로써 카메라의 노출 설정을 조절한다.
일부 실시예에서, 프로세스(5900)는 도 9에 도시된 영상 처리 계층(930)에 의해 수행되는 반면, 다른 실시예에서, 프로세스(5900)는 도 4에 도시된 통계 엔진(465)에 의해 수행된다. 일부 실시예는 화상 회의 중인 (로컬 또는 원격) 장치의 카메라들에 의해 캡처된 영상에 대해 프로세스(5900)를 수행하는 반면, 다른 실시예는 도 21에 예시된 프로세스(2100)의 일부[예컨대, 동작(2110)]로서 프로세스(5900)를 수행한다. 일부 실시예는 너무 밝지도 않고 너무 어둡지도 않은 듀얼 카메라 모바일 장치의 카메라들에 의해 캡처된 영상을 노출시키기 위해 노출 조절 동작을 수행한다. 환언하면, 가능한 한 디테일(detail)의 양을 최대화하는 방식으로 영상을 캡처하기 위해 프로세스(5900)가 수행된다.
프로세스(5900)는 (5905에서) 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 영상을 수신하는 것으로 시작한다. 일부 실시예에서, 수신된 영상이 화상 회의 중인 장치의 카메라에 의해 캡처된 첫번째 영상일 때, 프로세스(5900)가 첫번째 영상에 대해서는 수행되지 않는다(즉, 첫번째 영상 이전에 노출값을 결정하기 위한 어떤 영상도 없음). 프로세스(5900)는 이어서 (5910에서) 수신된 영상에서의 정의된 영역의 픽셀값을 판독한다. 상이한 실시예들은 영역을 상이한 방식들로 정의한다. 이러한 실시예들 중 일부 실시예는 정사각형, 직사각형, 삼각형, 원, 기타 등등의 상이한 형상의 영역들을 정의하는 반면, 이러한 실시예들 중 다른 실시예는 중앙, 중앙 상부, 중앙 하부, 기타 등등의 영상에서의 상이한 위치들에 영역을 정의한다.
그 다음에, 프로세스(5900)는 (5915에서) 영상의 정의된 영역에서의 픽셀값의 평균을 계산한다. 프로세스(5900)는 (5920에서) 계산된 픽셀값의 평균이 특정의 정의된 값과 같은지를 판정한다. 상이한 실시예들은 상이한 특정의 값들을 정의한다. 예를 들어, 일부 실시예는 특정의 값을 영상의 동적 범위의 중간 픽셀값으로서 정의한다. 일부 실시예에서, 단일 값 대신에 값의 범위가 정의된다. 이러한 실시예에서, 프로세스(5900)는 (5920에서) 픽셀값의 계산된 평균이 정의된 값의 범위 내에 있는지를 판정한다.
픽셀값의 계산된 평균이 특정의 정의된 값과 같지 않을 때, 프로세스(5900)는 (5925에서) 계산된 평균에 기초하여 노출값을 조절한다. 픽셀값의 계산된 평균이 특정의 정의된 값과 같을 때, 프로세스(5900)가 종료된다. 일부 실시예에서, 노출값은 카메라 센서가 광에 노출되는 시간량을 나타낸다. 일부 실시예에서, 조절된 노출값은 수신된 영상을 캡처한 카메라에 의해 캡처될 그 다음 영상을 노출시키는 데 사용된다. 노출값이 계산된 평균에 기초하여 조절된 후에, 프로세스(5900)는 종료된다.
일부 실시예에서, 픽셀값의 계산된 평균이 특정의 정의된 값과 같을 때까지(또는 정의된 값의 범위 내에 속할 때까지) 프로세스(5900)가 반복하여 수행된다. 일부 실시예는 화상 회의 동안 프로세스(5900)를 항상 수행하는 반면, 다른 실시예는 화상 회의 동안 프로세스(5900)를 정의된 간격으로(예컨대, 5초, 10초, 30초 등) 수행한다. 게다가, 화상 회의 동안, 일부 실시예의 프로세스(5900)는 프로세스(5900)를 수행하기 전에 특정의 픽셀값을 동적으로 재정의한다.
도 60은 일부 실시예의 노출 조절 동작의 예를 개념적으로 나타낸 것이다. 각각의 예(6000, 6010, 6015)는 좌측에 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 영상(6020)을 보여주고 있다. 구체적으로는, 영상(6020)은 태양의 전방에 있는 어두운 사람을 나타낸다. 어두운 사람은 영상의 노출 레벨이 사람의 얼굴 또는 신체를 노출시키기에 충분히 높지 않다는 것을 나타낸다. 각각의 예(6000, 6010, 6015)의 우측은 각각 영상(6020) 이후에 캡처된 영상(6025, 6030, 6035)을 보여주고 있다. 일부 실시예에서, 영상(6020) 및 우측의 영상은 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 비디오의 영상이다. 다른 실시예에서, 영상(6020) 및 우측의 영상은 상이한 시간 인스턴스들에서 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 정지 영상이다.
제1 예(6000)는 노출 조절이 없는 동작을 나타내고 있다. 그에 따라, 영상(6025)은 영상(6020)과 동일한 것처럼 보인다. 노출 조절이 수행되지 않았기 때문에, 영상(6025) 내의 사람은 영상(6020) 내의 사람처럼 어두운 채로 있다.
제2 예(6010)에서, 영상(6020)에 대해 노출 조절 동작이 수행된다. 일부 실시예에서, 정의된 영역(6040)을 사용하여 프로세스(5900)에 의해 노출 조절 동작이 수행된다. 노출 조절 동작에 기초하여, 카메라의 노출 레벨이 조절되고, 카메라는 조절된 노출 레벨을 사용하여 영상(6030)을 캡처한다. 도 60에 도시된 바와 같이, 영상(6030)에서의 사람은 영상(6025)에서처럼 어둡지 않다. 그렇지만, 영상(6030)에서의 사람의 얼굴 및 신체가 여전히 선명하지 않다.
제3 예(6015)는 영상(6020)에 대해 수행된 노출 조절 동작을 나타내고 있다. 제2 예(6010)와 유사하게, 일부 실시예의 예(6015)의 노출 조절 동작은 정의된 영역(6045)을 사용하여 프로세스(5900)에 의해 수행된다. 노출 조절 동작에 기초하여, 카메라의 노출 레벨이 조절되고, 카메라는 조절된 노출 레벨을 사용하여 영상(6035)을 캡처한다. 도 60에서 보는 바와 같이, 영상(6035) 내의 사람은 완벽하게 노출되어 있는데, 그 이유는 사람의 얼굴 및 신체가 눈에 보이기 때문이다.
일부 실시예에서, 정의된 영역의 선택은 듀얼 카메라 모바일 장치의 사용자에 의해 행해질 수 있다. 장치 자체가 또한 CIPU(400)에서의 전술한 노출 조절에 대한 피드백 루프를 통한 노출 조절 동작을 위해 그것의 정의된 영역을 자동으로 조절할 수 있다. 도 4에서의 통계 엔진(465)은 노출 레벨이 캡처된 영상에 적절한지를 판정하기 위해 데이터를 수집하고 그에 따라 [예컨대, 센서 모듈(415)에의 직접 연결을 통해] 카메라 센서를 조절할 수 있다.
D. 초점 조절
도 61은 화상 회의 동안 듀얼 카메라 모바일 장치의 초점을 조절하는 프로세스(6100)를 나타낸 것이다. 이하의 논의에서, 사용자가 원격 장치에게 그것의 카메라 초점을 조절하라고 지시하는 데 사용하는 장치는 로컬 장치라고 한다. 도 61의 프로세스(6100)는 일부 실시예에서 로컬 장치의 화상 회의 관리자(1604)에 의해 수행된다. 또한, 이 프로세스는 로컬 장치의 사용자가 초점 조절 동작이 원격 장치에 의해 수행될 것을 요청하는 2개의 예시적인 방식을 제공하는 도 62 및 도 63을 참조하여 이하에서 기술될 것이다.
도 61에 도시된 바와 같이, 프로세스(6100)는 (6105에서) 로컬 장치와 원격 장치 간의 화상 회의를 시작하는 것으로 시작된다. 프로세스(6100)는 이어서 (6110에서) 로컬 장치의 디스플레이 화면 상에 디스플레이하기 위한 원격 장치로부터의 비디오를 수신한다. 그 다음에, 프로세스(6100)는 6115에서 화상 회의를 종료시키라는 요청이 수신되었는지를 판정한다. 전술한 바와 같이, 일부 실시예에서, 로컬 또는 원격 장치의 사용자의 요청 시에 화상 회의가 종료될 수 있다. 프로세스(6100)가 화상 회의를 종료시키라는 요청을 수신할 때, 프로세스(6100)가 종료된다.
그렇지 않은 경우, 프로세스는 (6120에서) 원격 장치의 원격 카메라의 초점을 조절하라는 요청을 수신했는지를 판정한다. 프로세스(6100)가 원격 장치의 원격 카메라의 초점을 조절하라는 요청이 수신되지 않은 것으로 판정할 때, 프로세스(6100)는 원격 장치로부터 부가의 비디오를 수신하기 위해 동작(6110)으로 되돌아간다. 도 62, 도 63 및 도 64는 상이한 실시예들이 이러한 요청을 하기 위해 사용자에게 제공하는 3개의 상이한 방식을 나타낸 것이다. 도 62, 도 63 및 도 64에서, 제1 스테이지(6210, 6310, 6472) 모두는 2개의 비디오 - 하나는 로컬 장치에 의해 캡처된 것이고 다른 하나는 원격 장치에 의해 캡처된 것임 -를 디스플레이하는 로컬 장치(6200, 6300, 6471)의 PIP 디스플레이(6225, 6335, 6482)를 보여준다. 도 62 및 도 63에서의 디스플레이 영역(1155, 1155)은 회의 종료 버튼을 나타내고 있다. 그렇지만, 도 64에서, 디스플레이 영역(1155)의 레이아웃은 전술한 도 12의 디스플레이 영역(1155)의 레이아웃과 동일하다. 더욱이, 일부 실시예에서 로컬 카메라 전환 동작 또는 다른 실시예에서 원격 카메라 전환 동작을 호출하기 위해 디스플레이 영역(1155)에 도시된 카메라 전환 버튼(6488)이 선택될 수 있다. 제1 스테이지(6210, 6310, 6472)에 도시된 바와 같이, 배경 디스플레이(6235, 6345, 6480)에 디스플레이되는 원격 장치의 비디오는 흐릿하다.
도 62의 제2 스테이지(6215)는 단순히 [예컨대, 원격 장치의 비디오 상에서의 한번 탭핑(6240)을 통해] 원격 장치의 비디오를 선택하는 것에 의해 로컬 장치의 사용자가 원격 장치로부터의 초점 조절을 요청하는 방식을 나타내고 있다. 이 방식에서, UI(6205)는 박스(6245)에 의해 정의된 관심 영역의 사용자의 선택을 관심 영역에 대해 동작(초점 등)을 수행하라고 원격 장치에 지시하고자 하는 사용자의 소망과 자동으로 연관시키고, 따라서 조절 동작(초점 조절 동작 등)을 수행하기 위해 원격 장치와 접촉하라고 로컬 장치(6200)의 화상 회의 관리자(1604)에게 지시한다. 정의된 관심 영역은 원격 장치에서 초점 조절을 계산하는 데 사용된다.
도 63의 제2 스테이지(6315)도 이와 유사하게 (예컨대, 사용자가 원격 장치의 비디오를 탭핑하는 것을 통해) 로컬 사용자가 원격 비디오를 선택하는 것을 나타내고 있다. 그렇지만, 도 62에 예시된 예와 달리, 도 63에서의 이 선택은 제3 스테이지(6320)에 나타낸 바와 같이, (선택가능한 버튼으로 구현될 수 있는) 선택가능한 UI 항목(6355, 6360, 6365, 6370)의 메뉴를 디스플레이하라고 UI(6305)에게 지시한다. 이들 선택가능한 UI 항목은 자동 초점 항목(6360), 자동 노출 항목(6365), 카메라 전환 항목(6370), 및 취소 항목(6355)을 포함하고 있다. 일부 실시예에서, 카메라 전환 선택가능한 UI 항목(6370)은 로컬 카메라 전환 동작을 요청하는 데 사용되는 반면, 다른 실시예에서, 카메라 전환 선택가능한 UI 항목(6370)은 원격 카메라 전환 동작을 요청하는 데 사용된다. 제4 스테이지(6325)는 이어서 로컬 사용자가 자동 초점 항목(6360)을 선택하는 것을 나타내고 있다.
도 64의 제2 스테이지(6474)는 또다시 이와 유사하게 (예컨대, 사용자가 원격 장치의 비디오를 탭핑하는 것을 통해) 로컬 사용자가 원격 비디오를 선택하는 것을 나타내고 있다. 그렇지만, 도 63에 예시된 예와 달리, 도 64에서의 이 선택은 [즉, 제2 스테이지(6474)에서] 초점 조절 동작을 요청하라고 UI(6478)에 지시한다. 초점 조절 동작이 완료된 후에, UI(6478)는 [즉, 제3 스테이지(6476)에서] 선택가능한 버튼으로서 구현될 수 있는 선택가능한 UI 항목(6484, 6486)의 메뉴를 디스플레이한다. 이들 선택가능한 UI 항목은 자동 노출 항목(6486) 및 취소 항목(6484)을 포함하고 있다.
프로세스가 (6120에서) 로컬 사용자가 초점 조절 동작을 요청하라고 로컬 장치에게 지시한 것으로 판정할 때, 프로세스(6100)는 (6140에서) 그의 비디오를 원격 장치가 현재 캡처하여 전송하고 있는 카메라의 초점을 조절하라는 명령을 화상 회의 제어 채널을 통해 원격 장치로 송신한다. 6140 이후에, 프로세스는 다시 6110으로 넘어가며, 이에 대해서는 앞서 기술하였다.
일부 실시예에서, 원격 장치의 사용자는 원격 장치가 이 동작을 수행하기 전에 허가를 제공해야만 하는 반면, 다른 실시예에서, 원격 장치는 로컬 장치의 요청을 수신할 시에 이 동작을 자동으로 수행한다. 또한, 일부 실시예에서, 초점 조절 동작은 화상 회의 동안 사용되고 있는 원격 장치의 카메라의 초점 설정을 조절한다. 이러한 실시예들 중 일부 실시예에서, 앞서 논의한 바와 같이, 화상 회의 기능들 중 일부가 화상 회의 모듈(1602)에 의해 구현된다. 이들 실시예에서, 화상 회의 관리자(1604)는 사용되고 있는 원격 장치 카메라의 센서를 조절하라고 CIPU(1650)에게 지시한다.
도 62, 도 63 및 도 64의 마지막 스테이지(6220, 6330, 6476)는 적절히 초점이 맞춰진 원격 장치의 비디오를 보여주고 있다. 도 62, 도 63 및 도 64가 원격 장치의 초점을 보정하기 위해 초점 조절 요청을 수신하는 예를 제공하고 있지만, 일부 실시예는 로컬 장치의 사용자가 로컬 장치의 카메라의 초점을 조절하라고 그 로컬 장치에 요청할 수 있게 해 준다. 이러한 요청은 원격 장치에 그것의 카메라의 초점을 조절하라고 요청하는 도 62, 도 63 및 도 64에 나타낸 방식과 유사하게 행해질 수 있다.
도 62, 도 63 및 도 64는 사용자가 초점 조절 동작을 수행할 수 있게 해 주는 3개의 예시적인 사용자 인터페이스를 나타내고 있다. 일부 실시예에서, 초점 조절 동작은 카메라의 초점을 변경하는 것과 같이, UI에 디스플레이되는 비디오를 캡처하고 있는 듀얼 카메라 모바일 장치의 카메라의 동작을 변경시킨다.
도 56 및 도 62에서 앞서 논의한 바와 같이, 정의된 관심 영역이 원격 모바일 장치에서 비디오의 노출 조절 및 초점 조절을 각각 계산하는 데 사용되었다. 그렇지만, 어떤 다른 실시예에서, 사용자가 관심 영역을 선택하는 것은 원격 장치에게 하나 이상의 동작을 수행하라고 지시하는 데 사용될 수 있다. 예를 들어, 일부 실시예에서, 노출 조절 및 초점 조절 둘 다는 정의된 관심 영역에 기초하여 수행될 수 있고, 그로써 원격 장치에게 양쪽 동작을 수행하라고 지시한다.
E. 프레임 레이트 제어
화상 회의 동안, 일부 실시예는 듀얼 카메라 모바일 장치의 카메라에 의해 캡처된 비디오의 영상이 화상 회의 중인 상대방 장치에게 전송되는 레이트(즉, 프레임 레이트)를 조절하거나 유지하고자 할 수 있다. 예를 들어, 고정된 대역폭을 가정할 때, 이러한 실시예들 중 일부 실시예는 비디오의 영상의 화질을 향상시키기 위해 비디오의 프레임 레이트를 감소시키는 반면, 이러한 실시예들 중 다른 실시예는 비디오를 부드럽게 하기 위해(즉, 지터를 감소시키기 위해) 비디오의 프레임 레이트를 증가시킨다.
상이한 실시예들은 화상 회의 동안 비디오의 영상의 프레임 레이트를 제어하는 상이한 기술들을 제공한다. 앞서 전술한 일례는 카메라에 의해 캡처된 영상이 처리되는 레이트를 제어하기 위해 카메라의 센서 모듈(415)의 VBI를 조절한다. 다른 예로서, 도 9에 도시된 화상 회의 모듈(925)의 관리 계층(935)의 일부 실시예는 영상을 폐기함으로써 프레임 레이트를 제어한다. 이와 유사하게, 영상 처리 계층(930)의 일부 실시예는 영상을 폐기함으로써 프레임 레이트를 제어한다. 일부 실시예는 범용 전송 버퍼(3120)에서 프레임을 폐기하는 것 등의 프레임 레이트를 제어하는 또 다른 기술을 제공한다.
V. 듀얼 카메라
A. 결합된 뷰
1. 픽처-인-픽처: 2개의 원격 카메라의 디스플레이
일부 실시예는 듀얼 카메라 모바일 장치가 화상 회의 동안 모바일 장치로부터 캡처된 비디오 및 다른 듀얼 카메라 모바일 장치로부터 캡처된 비디오를 몇가지 디스플레이 배열 중 임의의 것으로 디스플레이할 수 있게 해 준다. 도 65는 하나 이상의 듀얼 카메라 모바일 장치로부터 캡처된 비디오에 대한 상이한 디스플레이 배열의 예를 나타낸 것이다. 도 65에서, 듀얼 카메라 모바일 장치(6500)(장치 A)의 사용자 및 제2 듀얼 카메라 모바일 장치(6505)(장치 B)의 제2 사용자는 서로 화상 회의를 하고 있다.
도 65는 장치 A에 대한 디스플레이 배열의 4개의 예를 좌측에 나타내고 있다. 장치 A에 대한 4개의 디스플레이 배열은 제1 뷰(6510), 제2 뷰(6515), 제3 뷰(6520) 및 제4 뷰(6525)이다. 그에 부가하여, 도 65는 또한 장치 B에 대한 디스플레이 배열의 4개의 예를 우측에 나타내고 있다. 장치 B에 대한 4개의 디스플레이 배열은 제1 뷰(6565), 제2 뷰(6570), 제3 뷰(6575) 및 제4 뷰(6580)이다. 이 예에서, 장치 A는 단지 장치 A의 카메라들로부터 캡처된 2개의 비디오를 디스플레이하고 있는 반면, 장치 B는 장치 A의 카메라들로부터 캡처된 2개의 비디오는 물론, 장치 B의 카메라들로부터 캡처된 비디오들 중 하나 또는 둘 다를 디스플레이한다.
제1 뷰(6510)에서, 장치 A의 UI(6585)는 합성 디스플레이(6512)를 제공한다. 합성 디스플레이(6512)는 2개의 디스플레이 영역 - 장치 A의 후방 카메라로부터 캡처된 비디오를 디스플레이하는 디스플레이 영역(6530) 및 장치 A의 전방 카메라로부터 캡처된 비디오를 디스플레이하는 디스플레이 영역(6535) - 을 포함한다. 이 예에서, 디스플레이 영역(6530)은 합성 디스플레이(6512)의 상반부에 위치해 있는 반면, 디스플레이 영역(6535)은 합성 디스플레이(6512)의 하반부에 위치해 있다. 제1 뷰(6510)에서 2개의 디스플레이 영역은 크기가 같다. 상부 디스플레이 영역(6530)은 산(장치 A의 후방 카메라에 의해 캡처되고 있는 산인 것으로 가정됨)의 비디오를 디스플레이하고 있다. 디스플레이 영역(6535)은 나무와 모자를 쓰고 있는 남자(장치 A의 전방 카메라에 의해 캡처되고 있는 나무와 남자인 것으로 가정됨)를 디스플레이하고 있다.
제2 뷰(6515)에서의 UI(6585)는, (장치 A의 전방 카메라로부터 캡처된 비디오를 디스플레이하는) 디스플레이 영역(6535)이 이제 합성 디스플레이(6517)의 상반부에 위치해 있고 (장치 A의 후방 카메라로부터 캡처된 비디오를 디스플레이하는) 디스플레이 영역(6530)이 합성 디스플레이(6517)의 하반부에 위치해 있는 것을 제외하고는, 제1 뷰(6510)로부터의 동일한 2개의 디스플레이 영역을 포함하는 합성 디스플레이(6517)를 제공한다.
제3 뷰(6520)에서, UI(6585)는 PIP 디스플레이(6595)를 제공한다. PIP 디스플레이(6595)는 2개의 디스플레이 영역 - 장치 A의 전방 카메라로부터 캡처된 비디오를 배경 디스플레이 영역으로서 디스플레이하는 디스플레이 영역(6535) 및 장치 A의 후방 카메라로부터 캡처된 비디오를 전경 삽입 디스플레이 영역으로서 디스플레이하는 디스플레이 영역(6530) - 을 포함하고 있다. 이 뷰에서, 배경 디스플레이 영역(6535)은 PIP 디스플레이(6595)의 대부분을 차지하는 반면, 삽입 디스플레이 영역(6530)은 더 작고 배경 디스플레이 영역(6535)의 일부분과 겹친다.
제4 뷰(6525)에서의 UI(6585)는 또한 제3 뷰(6520)에 나타낸 바와 같이 디스플레이 영역(6530, 6535)을 포함하는 PIP 디스플레이(6598)를 제시한다. PIP 디스플레이(6595)와 달리, PIP 디스플레이(6598)는 배경 메인 디스플레이인 (장치 A의 후방 카메라로부터 캡처된) 디스플레이 영역(6530) 및 전경 삽입 디스플레이인 (장치 A의 전방 카메라로부터 캡처된) 디스플레이 영역(6535)을 포함하고 있다. 그에 부가하여, PIP 디스플레이(6598)는 가로 보기로 제시된다[즉, PIP 디스플레이(6598)의 폭이 높이보다 더 길다].
상기 예는 장치 A의 UI에 대한 4개의 가능한 합성 뷰 - 2개는 제1 장치의 2개의 카메라를 디스플레이하는 2개의 디스플레이 영역(6530, 6535)이 수직으로 배열되어 있고 2개는 PIP 뷰임 - 를 나타내고 있다. 장치 A의 UI에 대해 다른 뷰도 역시 가능하다. 예를 들어, 2개의 디스플레이 영역이 수평으로 또는 대각선으로 배열될 수 있거나, 다른 PIP 뷰가 사용될 수 있다.
장치 B에 대해 예시된 다양한 뷰는 장치 B의 UI에 대한 상이한 뷰들이 가능하다는 것을 나타낸다. 이들 뷰는 장치 A의 양쪽 카메라는 물론, 장치 B의 하나 이상의 카메라로부터 캡처된 비디오를 포함한다. 장치 B의 제1 뷰(6565)에서, 장치 B의 UI(6590)는 PIP 디스플레이(6568)를 제공한다. PIP 디스플레이(6568)는 장치 A 상에 디스플레이되는 합성 디스플레이(6512)와 동일한 합성 디스플레이 영역(6569)은 물론, 장치 B의 카메라들 중 하나의 카메라(예컨대, 전방 카메라)에 의해 캡처되는 비디오를 디스플레이하는 삽입 디스플레이 영역(6550)도 포함하고 있다. 합성 디스플레이 영역(6569)은 장치 A의 후방 카메라로부터 캡처된 비디오를 디스플레이하는 디스플레이 영역(6531) 및 장치 B의 전방 카메라로부터 캡처된 비디오를 디스플레이하는 디스플레이 영역(6536)을 포함한다. 장치 A로부터의 비디오를 디스플레이하는 합성 디스플레이(6569)는 PIP 디스플레이(6568)의 대부분을 차지하는 반면, 삽입 디스플레이 영역(6550)은 더 작고 합성 디스플레이(6569)와 겹친다. 디스플레이 영역(6550)은 웃는 얼굴(그의 비디오가 장치 B의 전방 카메라에 의해 캡처되고 있는 웃는 얼굴인 것으로 가정됨)의 비디오를 디스플레이하고 있다.
제2 뷰(6570)에서 장치 B의 UI(6590)는 PIP 디스플레이(6572)를 제공한다. PIP 디스플레이(6572)는 (장치 B의 전방 카메라로부터 캡처된 비디오를 디스플레이하는) 디스플레이 영역(6550) 및 장치 A의 카메라들로부터 캡처된 비디오를 디스플레이하는 디스플레이 영역(6531, 6536)을 갖는 합성 디스플레이(6573)를 포함하고 있다. 합성 디스플레이(6573)는 장치 A에 대한 제2 뷰(6515)에서의 합성 디스플레이(6517)와 동일하고 PIP 디스플레이(6572)의 대부분을 차지한다. 제1 뷰(6565)에서의 PIP 디스플레이(6568)와 마찬가지로, 디스플레이 영역(6550)이 더 작고, 합성 디스플레이(6573)와 겹친다. 구체적으로는, 양쪽 뷰에서, 디스플레이 영역은 장치 A의 후방 카메라로부터 캡처된 비디오를 디스플레이하는 디스플레이 영역(6531)의 일부분과 겹친다.
제3 뷰(6575)에서, UI(6590)는 장치 A에 대한 제3 뷰(6520)에서의 PIP 디스플레이(6595)와 유사한 PIP 디스플레이(6577)를 제공한다. PIP 디스플레이(6577)는 또한 배경 디스플레이 영역(6536)과 겹치는 제2 삽입 디스플레이 영역인 부가의 디스플레이 영역(6550)을 포함하고 있다. 2개의 삽입 디스플레이 영역(6531, 6550)은 배경 주 디스플레이 영역(6536)의 하부에 수평으로 타일링되어 있다.
제4 뷰(6580)에서의 UI(6590)는 합성 디스플레이(6582)를 제공한다. 합성 디스플레이(6582)는 3개의 디스플레이 - PIP 디스플레이(6583), 디스플레이 영역(6550) 및 디스플레이 영역(6540)(예컨대, 장치 B의 후방 카메라에 의해 캡처된 비디오를 디스플레이함) - 를 포함하고 있다. PIP 디스플레이(658