KR20180073327A - 영상 표시 방법, 저장 매체 및 전자 장치 - Google Patents

영상 표시 방법, 저장 매체 및 전자 장치 Download PDF

Info

Publication number
KR20180073327A
KR20180073327A KR1020160177058A KR20160177058A KR20180073327A KR 20180073327 A KR20180073327 A KR 20180073327A KR 1020160177058 A KR1020160177058 A KR 1020160177058A KR 20160177058 A KR20160177058 A KR 20160177058A KR 20180073327 A KR20180073327 A KR 20180073327A
Authority
KR
South Korea
Prior art keywords
image
electronic device
display
partial image
frame
Prior art date
Application number
KR1020160177058A
Other languages
English (en)
Other versions
KR102697559B1 (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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020160177058A priority Critical patent/KR102697559B1/ko
Priority to PCT/KR2017/014960 priority patent/WO2018117574A1/en
Priority to US15/845,378 priority patent/US10802578B2/en
Publication of KR20180073327A publication Critical patent/KR20180073327A/ko
Application granted granted Critical
Publication of KR102697559B1 publication Critical patent/KR102697559B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/012Head tracking input arrangements
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/50Constructional details
    • H04N23/53Constructional details of electronic viewfinders, e.g. rotatable or detachable
    • H04N23/531Constructional details of electronic viewfinders, e.g. rotatable or detachable being rotatable or detachable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/69Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N2201/3201Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
    • H04N2201/3225Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
    • H04N2201/3226Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of identification information or the like, e.g. ID code, index, title, part of an image, reduced-size image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

다양한 실시예에 따르면, 전자 장치는, 디스플레이; 및 상기 디스플레이에 기능적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 상기 디스플레이에 표시하는 동안에, 제1 입력이 입력되면, 상기 제1입력에 응답하여, 상기 영상 중 상기 제1 방향과 다른 제2방향에 대응하는 제2부분 영상을 상기 디스플레이에 표시하도록 설정될 수 있다.

Description

영상 표시 방법, 저장 매체 및 전자 장치{DISPLAY CONTROL METHOD, STORAGE MEDIUM AND ELECTRONIC DEVICE FOR DISPLAYING IMAGE}
다양한 실시예들은 영상을 표시하는 전자 장치 및 영상 표시 방법에 관한 것이다.
전자 장치들 중에는 신체에 착용할 수 있는 형태로 제공되는 전자 장치들이 있다. 이러한 전자 장치들은 통상적으로 웨어러블 장치(wearable device)라고 할 수 있다. 신체에 착용할 수 있는 전자 장치들 중에 HMD(head mounted display) 장치와 같은 헤드 장착형 전자 장치도 있다.
HMD 장치는 사용자의 신체 일부(예를 들면, 사용자의 머리)에 착용되어 사용자에게 가상 현실(Virtual Reality: VR) 환경을 제공할 수 있다. 가상 현실 환경의 제공은 예를 들어, 가상 현실을 구현할 수 있는 화면의 표시 및 가상 현실을 구현할 수 있는 다양한 사용자 인터페이스의 제공 등을 포함할 수 있다.
종래의 HMD 장치는 가속도, 각속도 또는 기울어진 방향을 센싱하고, 센싱된 정보에 대응하여 화면을 표시할 수 있다. 이에 따라, HMD 장치는 사용자의 움직임에 대응하여 화면을 변경하여 표시할 수 있으며, 사용자는 변경되는 화면을 시청함으로써 실제 현실과 같은 서비스를 제공받을 수 있다.
HMD 장치는 헤드 추적(head tracking) 기술을 통해 파악된 사용자 움직임을 반영하여 업데이트된 영상을 렌더링할 수 있다. 예를 들어, HMD 장치는 사용자 얼굴에 착용되어 사용자의 움직임을 반영하여 현실감 있는 영상 서비스를 제공할 수 있다. 하지만, 고화질 또는 대용량의 영상의 변환 또는 보정과 관련된 많은 양의 데이터를 처리하는데 많은 리소스가 요구되기 때문에, 사용자의 시야 방향(즉, 시선)이 변경됨에 따라 영상의 업데이트가 늦어지면, 인지 부조화로 인한 멀미 증상(motion sickness)을 유발할 수 있다. 게다가 현재는 HMD 장치의 주시 방향을 기준으로 사용자의 시야 방향(즉, 시선)이 정해지기 때문에 사용자의 다양한 시선을 반영한 현실감 있는 영상 서비스를 제공하는 데 한계가 있다.
따라서, 사용자의 뷰 모드 선택에 따라 다양한 시선 기반의 영상을 업데이트할 수 있는 방법이 요구된다.
다양한 실시예에 따르면, 전자 장치는, 디스플레이; 및 상기 디스플레이에 기능적으로 연결된 프로세서를 포함하고, 상기 프로세서는, 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 상기 디스플레이에 표시하는 동안에, 제1 입력이 입력되면, 상기 제1입력에 응답하여, 상기 영상 중 상기 제1 방향과 다른 제2방향에 대응하는 제2부분 영상을 상기 디스플레이에 표시하도록 설정될 수 있다.
다양한 실시예에 따르면, 전자 장치의 영상 표시 방법은, 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 표시하는 동작; 및 상기 제1방향에 대응하는 제1부분 영상을 표시하는 동안에 제1입력이 입력되면, 제1입력에 응답하여, 상기 영상 중 상기 제1방향과 다른 제2방향에 대응하는 제2부분 영상을 표시하는 동작을 포함할 수 있다.
다양한 실시예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 표시하는 동작; 및 상기 제1방향에 대응하는 제1부분 영상을 표시하는 동안에 제1입력이 입력되면, 제1입력에 응답하여, 상기 영상 중 상기 제1방향과 다른 제2방향에 대응하는 제2부분 영상을 표시하는 동작을 포함할 수 있다.
다양한 실시예들에서는, 복수의 뷰 모드 중 사용자의 뷰 모드 선택에 따라 다양한 시선 기반의 영상을 표시할 수 있다. 또한, HMD를 착용한 상태에서 사용자의 시선 변경 및/또는 헤드(head) 움직임에 기반하여 영상을 업데이트할 수 있는 방법이 제공될 수 있다.
다양한 실시예들에서는, 촬영된 360도 영상을 서로 다른 위치에서 바라보는 복수의 시선 방향들 중에서 사용자가 원하는 시야 방향(즉, 시선)을 선택할 수 있어, 다양한 시선 방향에 대응하는 영상을 볼 수 있다.
또한, 다양한 실시예들에서는, HMD를 착용한 상태에서 사용자가 고개를 돌리는 등의 움직임이 감지되면, 사용자에 의해 선택된 시선 방향을 기준으로 감지된 움직임에 대응되도록 표시되는 영상의 부분이 변경될 수 있어, 더욱 향상된 현장감을 느낄 수 있다.
또한, 다양한 실시예들에서는, 360도 영상 중 사용자가 원하는 사용자 시선 방향에 대응하는 중요 영역(또는, 뷰 영역(field of view), 응시(gazing) 영역, 관심 영역(region of interest: ROI))을 우선적으로 렌더링하여, 사용자에게 지연 없는 즉각적인 화면 업데이트를 제공할 수 있다.
도 1은 다양한 실시예에 따른 네트워크 환경 내의 전자 장치를 나타낸다.
도 2는 다양한 실시예에 따른 전자 장치의 블록도이다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 블록도이다.
도 4a는 다양한 실시예에 따른 영상 처리 시스템을 구성하는 전자 장치들을 예시하는 도면이다.
도 4b 및 도 4c는 사용자의 HMD 장치의 착용을 설명하기 위한 사시도이다.
도 5a는 다양한 실시예에 따른 영상 처리 과정을 설명하기 위한 블록도이다.
도 5b 및 도 5c는 다양한 실시예에 따른 영상에 연관된 센싱 정보의 저장 과정을 설명하기 위한 블록도이다.
도 5d는 다양한 실시예에 따른 영상 데이터와 산출된 방향 정보들의 결합 방법을 예시하고 있다.
도 6은 다양한 실시예에 따른 3D 공간을 나타내는 도면이다.
도 7은 다양한 실시예에 따른 영상 촬영 시의 카메라 방향 및 이동 방향을 설명하기 위한 도면이다.
도 8은 다양한 실시예에 따른 사용자 이동 경로에 따른 카메라 방향 및 이동 방향 간의 관계를 설명하기 위한 도면이다.
도 9a는 다양한 실시예에 따른 전자 장치에 의한 영상 표시 방법을 나타내는 흐름도이다.
도 9b는 다양한 실시예에 따른 전자 장치에 의한 영상 표시 방법을 나타내는 상세 흐름도이다.
도 10a 및 도 10b는 다양한 실시예에 따른 360도 영상을 서로 다른 위치에서 바라보는 복수의 시선 방향들에 따른 영상 예시도이다.
도 11a는 다양한 실시예에 따른 3D 공간에서 카메라 방향, 이동 방향 및 HMD 시선 방향을 설명하기 위한 도면이다.
도 11b는 다양한 실시예에 따른 3D 공간에서 복수의 시선 방향 중 선택된 시선 방향에 대응하는 부분 영상을 설명하기 위한 도면이다.
도 12는 다양한 실시예에 따른 센싱 정보를 기반으로 방향 정보의 산출 과정을 설명하기 위한 도면이다.
도 13a 내지 도 13d는 상기 도 12의 산출 과정을 상세하게 설명하기 위한 도면이다.
도 14는 다양한 실시예에 따른 영상 재생 과정을 설명하기 위한 블록도이다.
도 15a 내지 도 15c는 다양한 실시예에 따른 영상 안정화 동작을 설명하기 위한 도면이다.
도 16a는 다양한 실시예에 따른 그래픽 파이프라인 동작을 설명하기 위한 도면이다.
도 16b는 다양한 실시예에 따른 2D 평면의 어안 영상을 렌더링하는 과정을 설명하기 위한 도면이다.
도 17a 내지 도 17d는 도 14의 영상 재생 과정을 상세하게 설명하기 위한 도면이다.
도 18은 다양한 실시예에 따른 시점 선택을 위한 화면 예시도이다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A/B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1," "제 2," "첫째," 또는 "둘째,"등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다. "복수의"라는 표현은 적어도 둘 이상을 의미할 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, 하드웨어적 또는 소프트웨어적으로 "~에 적합한," "~하는 능력을 가지는," "~하도록 변경된," "~하도록 만들어진," "~를 할 수 있는," 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1을 참조하여, 다양한 실시예에서의, 네트워크 환경(100) 내의 전자 장치(101)가 기재된다. 전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스(110)는 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서(120)는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리(130)는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(130)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장할 수 있다. 프로그램(140)은, 예를 들면, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(API)(145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 커널(141), 미들웨어(143), 또는 API(145)의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널(141)은, 예를 들면, 다른 프로그램들(예: 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147))에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)을 제어 또는 관리할 수 있다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 어플리케이션 프로그램(147)에서 전자 장치(101)의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어(143)는, 예를 들면, API(145) 또는 어플리케이션 프로그램(147)이 커널(141)과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어(143)는 어플리케이션 프로그램(147)으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어(143)는 어플리케이션 프로그램(147) 중 적어도 하나에 전자 장치(101)의 시스템 리소스(예: 버스(110), 프로세서(120), 또는 메모리(130) 등)를 사용할 수 있는 우선 순위를 부여하고, 하나 이상의 작업 요청들을 처리할 수 있다. API(145)는 어플리케이션(147)이 커널(141) 또는 미들웨어(143)에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스(150)는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치(101)의 다른 구성요소(들)에 전달하거나, 또는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이(160)는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이(160)는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스(170)는, 예를 들면, 전자 장치(101)와 외부 장치(예: 제 1 외부 전자 장치(102), 제 2 외부 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 제 2 외부 전자 장치(104) 또는 서버(106))와 통신할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한 실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크(162)는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제 1 및 제 2 외부 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치(102,104), 또는 서버(106))에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치(201)의 블록도이다. 전자 장치(201)는, 예를 들면, 도 1에 도시된 전자 장치(101)의 전체 또는 일부를 포함할 수 있다. 전자 장치(201)는 하나 이상의 프로세서(예: AP)(210), 통신 모듈(220), 가입자 식별 모듈(224), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 인디케이터(297), 및 모터(298)를 포함할 수 있다. 프로세서(210)는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서(210)에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서(210)는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 프로세서(210)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서(210)는 도 2에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈(221))를 포함할 수도 있다. 프로세서(210)는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(220)(예: 통신 인터페이스(170))은, 예를 들면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227), NFC 모듈(228) 및 RF 모듈(229)를 포함할 수 있다. 셀룰러 모듈(221)은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 가입자 식별 모듈(예: SIM 카드)(224)을 이용하여 통신 네트워크 내에서 전자 장치(201)의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 프로세서(210)가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈(221)은 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈(229)은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈(229)은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈(221), WiFi 모듈(223), 블루투스 모듈(225), GNSS 모듈(227) 또는 NFC 모듈(228) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈(224)은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(230)(예: 메모리(130))는, 예를 들면, 내장 메모리(232) 또는 외장 메모리(234)를 포함할 수 있다. 내장 메모리(232)는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등) 및 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브 (SSD)) 중 적어도 하나를 포함할 수 있다. 외장 메모리(234)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리(234)는 다양한 인터페이스를 통하여 전자 장치(201)와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈(240)은, 예를 들면, 물리량을 계측하거나 전자 장치(201)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈(240)은, 예를 들면, 제스처 센서(240A), 자이로 센서(240B), 기압 센서(240C), 마그네틱 센서(240D), 가속도 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러(color) 센서(240H)(예: RGB(red, green, blue) 센서), 생체 센서(240I), 온/습도 센서(240J), 조도 센서(240K), 또는 UV(ultra violet) 센서(240M) 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈(240)은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치(201)는 프로세서(210)의 일부로서 또는 별도로, 센서 모듈(240)을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서(210)가 슬립(sleep) 상태에 있는 동안, 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)는, 예를 들면, 터치 패널(252), (디지털) 펜 센서(254), 키(256), 또는 초음파 입력 장치(258)를 포함할 수 있다. 터치 패널(252)은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널(252)은 제어 회로를 더 포함할 수도 있다. 터치 패널(252)은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서(254)는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키(256)는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(258)는 마이크(예: 마이크(288))를 통해, 입력 도구에서 발생된 초음파를 감지하여, 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이(260)(예: 디스플레이(160))는 패널(262), 홀로그램 장치(264), 프로젝터(266), 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널(262)은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널(262)은 터치 패널(252)과 하나 이상의 모듈로 구성될 수 있다. 한 실시예에 따르면, 패널(262)은 사용자의 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서(또는 포스 센서)를 포함할 수 있다. 압력 센서는 터치 패널(252)과 일체형으로 구현되거나, 또는 터치 패널(252)과는 별도의 하나 이상의 센서로 구현될 수 있다. 홀로그램 장치(264)는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터(266)는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치(201)의 내부 또는 외부에 위치할 수 있다. 인터페이스(270)는, 예를 들면, HDMI(272), USB(274), 광 인터페이스(optical interface)(276), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 인터페이스(270)는, 예를 들면, 도 1에 도시된 통신 인터페이스(170)에 포함될 수 있다. 추가적으로 또는 대체적으로, 인터페이스(270)는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈(280)은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈(280)의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스(150)에 포함될 수 있다. 오디오 모듈(280)은, 예를 들면, 스피커(282), 리시버(284), 이어폰(286), 또는 마이크(288) 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈(291)은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 전력 관리 모듈(295)은, 예를 들면, 전자 장치(201)의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈(295)은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리(296)의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리(296)는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터(297)는 전자 장치(201) 또는 그 일부(예: 프로세서(210))의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터(298)는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치(201)는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치(201))는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 블록도이다. 한 실시예에 따르면, 프로그램 모듈(310)(예: 프로그램(140))은 전자 장치(예: 전자 장치(101))에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 도 3을 참조하면, 프로그램 모듈(310)은 커널(320)(예: 커널(141)), 미들웨어(330)(예: 미들웨어(143)), API(360)(예: API(145)), 및/또는 어플리케이션(370)(예: 어플리케이션 프로그램(147))을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 전자 장치 상에 프리로드되거나, 외부 전자 장치(예: 전자 장치(102, 104), 서버(106) 등)로부터 다운로드 가능하다.
커널(320)은, 예를 들면, 시스템 리소스 매니저(321) 및/또는 디바이스 드라이버(323)를 포함할 수 있다. 시스템 리소스 매니저(321)는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저(321)는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버(323)는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다. 미들웨어(330)는, 예를 들면, 어플리케이션(370)이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션(370)이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API(360)를 통해 다양한 기능들을 어플리케이션(370)으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 런타임 라이브러리(335), 어플리케이션 매니저(341), 윈도우 매니저(342), 멀티미디어 매니저(343), 리소스 매니저(344), 파워 매니저(345), 데이터베이스 매니저(346), 패키지 매니저(347), 커넥티비티 매니저(348), 노티피케이션 매니저(349), 로케이션 매니저(350), 그래픽 매니저(351), 또는 시큐리티 매니저(352) 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리(335)는, 예를 들면, 어플리케이션(370)이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저(341)는, 예를 들면, 어플리케이션(370)의 생명 주기를 관리할 수 있다. 윈도우 매니저(342)는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저(343)는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저(344)는 어플리케이션(370)의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저(345)는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저(345)는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저(346)는, 예를 들면, 어플리케이션(370)에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저(347)는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
커넥티비티 매니저(348)는, 예를 들면, 무선 연결을 관리할 수 있다. 노티피케이션 매니저(349)는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 로케이션 매니저(350)는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저(351)는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 시큐리티 매니저(352)는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어(330)는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어(330)는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API(360)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션(370)은, 예를 들면, 홈(371), 다이얼러(372), SMS/MMS(373), IM(instant message)(374), 브라우저(375), 카메라(376), 알람(377), 컨택트(378), 음성 다이얼(379), 이메일(380), 달력(381), 미디어 플레이어(382), 앨범(383), 와치(384), 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다.
한 실시예에 따르면, 어플리케이션(370)은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다.
한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션(370)은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈(310)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서(210)), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
도 4a는 다양한 실시예에 따른 영상 처리 시스템을 구성하는 전자 장치들을 예시하는 도면이다.
도 4a에 따르면, 영상 처리 시스템은 촬영 장치(400)와 영상 처리 장치(101, 102)를 포함할 수 있다.
촬영 장치(400)는 고정 시점을 기준으로 360도 전 방향(omni-directional)으로 영상을 촬영할 수 있다. 여기서, 전 방향 영상은 촬영자가 제자리에서 한 바퀴 회전하면서 보이는 뷰(view)와 고개를 젖히거나 숙여서 바라보이는 뷰를 모두 포함하는 영상이다. 촬영 장치(400)는 전 방향의 영상을 촬영하기 위해 적어도 하나의 렌즈 또는 카메라를 포함할 수 있다.
예를 들면, 어안 렌즈는 180도 이상의 화각을 가질 수 있다. 즉, 어안 렌즈를 하늘을 바라보게 하는 경우, 하늘의 별자리에서부터 지평선까지의 영역을 한 장의 이미지에 포착하는 것이 가능하다. 촬영 장치(400)는 이러한 어안 렌즈를 복수 개를 구비하여 전 방향으로 영상을 촬영할 수 있다. 다른 예로, 촬영 장치(400)는 일정한 화각을 가지는 복수 개의 카메라를 구비하여 전 방향으로 영상을 촬영할 수 있다. 이 경우, 복수 개의 카메라는 하나의 점을 기준으로 전 방향을 커버 하도록 촬영 장치(400)에 구비될 수 있다. 또 다른 예로, 하나 이상의 카메라를 포함하는 촬영 장치(400)가 자동 및/또는 수동으로 움직여(pitch, yaw, roll 등의 방향으로) 전 방향을 촬영할 수도 있다. 다른 예로, 촬영 장치(400)는 사용자의 좌안 및 우안에 대응하여 일정한 화각을 가지는 복수 개의 카메라를 포함할 수 있다. 이 경우, 촬영 장치(400)는 전 방향으로 영상을 촬영함으로써 복수 개의 전 방향 영상을 포함하는 스테레오 스코픽 영상을 촬영할 수도 있다. 여기서, 촬영 장치(400)의 예는 상술한 예로 제한되지 않음은 물론이다.
한편, 촬영 장치(400)는 전 방향 영상뿐만 아니라, 일부 방향의 영상(예를 들어, 촬영 장치(400)의 렌즈를 기준으로 상하좌우 120도에 해당하는 사각형 영역)을 촬영할 수도 있다. 또한, 촬영 장치(400)는 전 방향 영상을 촬영하고, 전 방향의 영상 중 일부 방향에 대한 영상을 처리하여 영상 처리 장치(101, 102)에 송신할 수도 있음은 물론이다.
한편, 촬영 장치(400)는 촬영된 영상 및 관련되는 메타 데이터(예: 촬영 방향, 범위, 영역, 위치)를 연관지어 기록할 수도 있다. 예를 들어, 촬영 장치(400)는 메타데이터 즉, 센서를 통해 수신한 위치, 모션 정보, 방향 정보 중 적어도 하나 이상을 카메라 특성 정보(예: 카메라 calibration parameter, 촬영상태 정보) 및 촬영된 영상 중 적어도 하나와 연관시킬 수 있다. 촬영 장치(400)는 적어도 하나의 센서를 포함하며, 예컨대, GPS, WiFi fingerprint, 자이로, 가속도, 지자기센서, 고도 센서 중 적어도 하나를 포함할 수 있으며, 이 외에 다른 센서들도 추가될 수 있다.
한 실시 예에 따르면, 촬영 장치(400)는 촬영된 영상 및 관련되는 메타 데이터를 연관지어 기록할 수 있는데, 메타 데이터에는 영상 촬영 시에 센서를 통해 센싱된 센싱 정보가 영상의 각 프레임에 대한 식별 정보와 함께 매핑(또는 연관)된 상태로 포함될 수 있다.
한 실시 예에 따르면, 촬영 장치(400)는 영상의 각 프레임의 촬영 시의 센싱 정보를 상기 각 프레임마다 연관지어 기록할 수도 있다.
여기서, 영상과 연관된 센싱 정보는 촬영 장치(400)의 위치, 촬영 장치(400)의 방향, 촬영 장치(400)의 모션(또는 움직임) 정보 중 적어도 하나를 포함할 수 있다.
또한 촬영 장치(400)는 촬영된 전 방향 영상을 2차원의 평면 영상으로 매핑하고, 매핑된 2차원 평면 영상을 인코딩하여 메모리에 저장하거나, 영상 처리 장치(101, 102)로 전송할 수 있다.
한 실시 예에 따르면, 촬영 장치(400)는 가상현실 공간(예: 게임에 구현된 3D 공간)에서 임의의 위치에 있는 가상의 카메라로서, 가상 카메라의 특성(예: 위치, 지향 방향, 화각, 범위)에 기반하여 가상현실 내의 가상 물체들과 연관되어 수신된 영상 정보일 수도 있다. 예를 들어, 게임에서 아바타의 시야가 가상 카메라의 FOV(field of view)에 해당하며, 이를 통해 표시되는 가상현실 내의 물체 영상 영역이 전 방향 영상의 일부일 수 있다.
영상 처리 장치(101, 102)는 영상 재생 장치로, 영상의 렌더링을 수행할 수 있다. 구체적으로, 영상 처리 장치(101, 102)는 촬영 장치(400)로부터 매핑된 2차원 평면 영상의 비트스트림을 수신하여 디코딩을 수행할 수 있다. 영상 처리 장치(101, 102)는 디코딩된 2차원 평면 영상을 이용하여 렌더링을 수행하며, 렌더링된 프레임을 디스플레이할 수 있다.
상술한 영상 처리 시스템(101, 102)은 여러 단계의 영상 처리 과정을 거쳐 사용자에게 렌더링된 영상을 제공할 수 있으며, 시점(view point) 변경에 따른 영상 처리 과정은 후술하기로 한다.
여기서, 영상 처리 장치(101, 102)는 예를 들어, HMD(head mounted display)와 같은 VR(virtual reality) 장치, 스마트폰, PC, TV, 태블릿 PC 등 영상을 처리하는 다양한 전자 장치일 수 있다.
이 경우, 촬영 장치(400) 및 영상 처리 장치(101, 102)는 와이 파이(Wi-fi) 모듈, 블루투스(bluetooth) 모듈, 지그비(zigbee) 모듈과 같은 통신 모듈을 구비하여 통신을 수행할 수 있다.
영상 처리 장치는 스마트폰과 같은 전자 장치(101)일 수 있다. 전자 장치(101)는 3D 어플리케이션(또는, 가상 현실 어플리케이션) 및 3D 그래픽 라이브러리를 저장할 수 있다. 3D 어플리케이션은 사용자에게 실제 현실과 유사한 화면을 제공할 수 있는 어플리케이션일 수 있다. 한 실시예에서, 가상 현실은 사용자(또는, 원점 또는 카메라) 중심으로 주위를 회전하면서 둘러 볼 수 있는 가상 공간을 의미할 수 있다. 예를 들어, 가상 현실은, 360 비디오, 360 이미지 컨텐트, 또는 3D 그래픽 모델링 공간 등 360도를 표현할 수 있는 가상 공간을 화면에 렌더링한 것일 수 있다.
영상 처리 장치는 HMD 장치와 같은 전자 장치(102)일 수 있다. 전자 장치(102)는 사용자의 머리에 착용되어, 사용자가 움직이더라도 사용자의 머리에 고정될 수 있다. 전자 장치(101)는 촬영 장치(400) 및 전자 장치(102) 중 적어도 하나와 연결할 수 있다. 이에 따라, 사용자는 전자 장치(102)를 착용함에 따라, 전자 장치(101)의 디스플레이에 표시되는 영상을 관찰하거나, 촬영 장치(400)로부터 수신되는 영상을 볼 수 있다.
한 실시 예에서, 전자 장치(102)는 사용자의 머리에 착용되도록 마련된 하우징(450)과, 하우징(450)에 고정되며 사용자의 눈의 위치에 대응되는 영역에 마련되는 암전부(430)와, 하우징(450)의 일 영역에 구비되는 적어도 하나의 입력 버튼(421)을 포함할 수 있다. 발명의 한 실시예에 따르면 상기 전자 장치(102)의 입력을 위해 상기 적어도 하나의 입력 버튼(421) 이외의 별도의 입력 장치(미도시)를 통해서 입력이 가능하다. 상기 별도의 입력장치는 전자 장치(102)와 무선 또는 유선으로 연결되어 사용자의 입력(예: 제스쳐, 음성)을 상기 전자 장치(102)에 전달할 수 있다. 전자 장치(102)는 사용자로부터의 입력(예: 스와이프(swipe) 입력)을 수신할 수 있는 입력 패드(425)를 포함할 수 있다.
사용자는 암전부(430)에 양안을 밀착시킬 수 있으며, 이에 따라 외광의 간섭 없이 촬영 장치(400)로부터 제공되는 영상을 관찰하거나, 전자 장치(101)로부터 제공되는 3D 어플리케이션에 의한 영상을 관찰할 수 있다.
전자 장치(101)는 전자 장치(102)와 유/무선으로 연결될 수 있다. 예를 들어, 전자 장치(101)는 전자 장치(102)와 USB에 근거하여 연결될 수 있으나, 이는 단순히 예시적인 것으로 양 장치(101,102) 사이의 데이터 송수신이 가능한 연결이면 제한이 없음을 당업자는 용이하게 이해할 것이다.
한 실시 예에서, 전자 장치(101) 및 전자 장치(102)는 하나의 HMD 장치(또는 HMD VR 장치)로 통합될 수도 있다.
한 실시 예에서, 촬영 장치(400)도 전자 장치(101) 및 전자 장치(102)와 함께 하나의 HMD 장치로 통합될 수도 있다.
도 4b는 사용자의 HMD 장치의 착용을 설명하기 위한 사시도이다.
사용자는 전자 장치(102)의 하우징을 머리에 착용할 수 있으며, 촬영 장치(400)를 소지한 채로 촬영할 수 있다. 아울러, 전자 장치(101)는 전자 장치(102)와 결합할 수 있으며, 사용자는 촬영 장치(400)로부터 영상이 수신됨에 따라 전자 장치(101)의 디스플레이에 표시되는 영상을 시청할 수 있다.
전자 장치(101)는 촬영 장치(400)에서 촬영된 영상을 표시할 수 있으며, 촬영된 영상은 사용자가 360도 회전하면서 보여지는 영상으로, 사용자는 양안에 입사되는 영상을 관찰함으로써 가상 현실 서비스를 제공받을 수 있다.
전자 장치(101)에서 실행되는 3D 어플리케이션은, 사용자 또는 전자 장치(101, 102)의 움직임(yaw, pitch, roll)에 따라 영상을 변경 표시할 수 있다.
도 4c는 사용자의 HMD 장치의 착용을 설명하기 위한 사시도로, 촬영 장치(400)가 사용자의 머리에 고정되는 경우를 예시하고 있다.
도 4c에 도시된 바와 같이, 촬영 장치(400)는 액션 카메라처럼 활용될 수 있다. 예를 들어, 사용자가 스키 등을 즐기는 경우 촬영 장치(400)를 사용자 머리에 장착될 경우에는 스키장 슬로프를 자유롭게 하강하면서 스키 활강 시의 영상을 촬영할 수 있다. 촬영 이후 또는 촬영과 동시에, 사용자는 HMD 장치(410)의 디스플레이를 통해 촬영 영상을 볼 수 있다. 스키를 즐기는 중 시야 방해가 적은 점을 고려하여 사용자의 머리에 촬영 장치(400)가 배치될 수 있으나, 배치 위치는 이에 한정되지 않을 수 있다.
액션 카메라처럼 활용되는 촬영 장치(400)로 영상을 찍는 경우 카메라 렌즈가 지향하는 방향으로 영상이 촬영될 수 있다. 이때, 촬영 장치(400)를 이용하여 촬영하는 경우에는 사용자를 둘러싸는 전 방향으로 영상이 촬영되는 것이므로, 카메라의 방향은 고정되지만 실질적으로 모든 방향의 영상이 촬영될 수 있다. 이때, 동영상 등의 영상은 카메라 렌즈를 기준으로 하기 때문에, 복수의 카메라 중 메인 카메라의 방향을 기준으로 영상이 촬영될 수 있다.
한 실시 예에 따르면, HMD 장치(410)는 촬영 장치(400)로부터 영상 재생 시 메인 카메라의 방향에 대응하는 영상을 표시하다가 사용자의 시점 변경을 위한 입력이 검출되면, 메인 카메라의 방향과는 다른 방향에 대응하는 영상을 표시할 수 있다. 여기서, 메인 카메라의 방향과는 다른 방향은 촬영된 영상과 연관된 센싱 정보를 기반으로 정해질 수 있다. 예를 들어, 촬영된 영상과 연관된 센싱 정보를 기반으로 HMD 장치(410)는 촬영 장치(400)의 진행 방향(또는 이동 방향)에 대응하는 영상을 표시할 수 있다.
따라서 감상자 입장에서는 영상을 메인 카메라 방향 이외에도 촬영자의 이동 방향, 이벤트 발생 방향 등 다양한 방향 중 원하는 방향을 선택하여 볼 수 있어, 보다 다양한 시선으로 촬영 당시의 사방을 자유롭게 살펴볼 수 있다.
도 5a는 다양한 실시 예에 따른 영상 처리 시스템의 영상 처리 과정을 설명하기 위한 블록도이다.
도 5a를 참조하면, 영상 처리 시스템(500)에서 전 방향 영상(예: 360도 영상)은 카메라(510), 트랜스코더(transcoder)(520), 인코더(530), 디코더(540), 렌더링부(550) 및 디스플레이(560)에서 순차적으로 처리될 수 있다.
여기서, 카메라(510), 트랜스코더(520) 및 인코더(530)는 송신단, 디코더(540), 렌더링부(550) 및 디스플레이(560)는 수신단에 포함되는 구성으로 가정할 수 있다. 예를 들어, 도 4a에 도시된 바와 같이 송신단 및 수신단 각각은 촬영 장치(400) 및 영상 처리 장치(101, 102)로 구현될 수 있다. 다만, 상술한 영상 처리 시스템(500)을 송신단 및 수신단으로 구분한 것은 설명의 편의를 위한 것으로, 영상 처리 시스템(500)의 각 구성 모두가 하나의 장치에 포함되거나 다양한 조합으로 다른 하나의 장치에 포함될 수 있다.
카메라(510)는 전 방향 영상을 촬영할 수 있다. 예를 들어, 카메라(510)에 화각이 180도 이상인 어안 렌즈 한 쌍이 구비된 경우를 가정하면, 카메라(510)는 어안 렌즈 한 쌍으로 전 방향의 영상을 촬영할 수 있다. 이때, 카메라(510)는 어안 렌즈 한 쌍을 이용하여 촬영한 2장의 영상을 트랜스코더(520)에 전달할 수 있다. 다른 예로, 카메라(510)는 복수 개로 구성되어 있는 경우를 가정하면, 복수 개의 카메라(510)는 서로 다른 방향의 공간을 촬영할 수 있다. 이 경우, 복수 개의 카메라(510)는 서로 다른 방향으로 촬영된 복수 개의 이미지를 별개 또는 하나의 2차원 영상으로 생성하여 트랜스코더(520)에 전달할 수 있다. 상술한 예들에서, 영상 처리 시스템(500)에서 처리되는 영상을 카메라(510)에 의해 촬영된 영상으로 설명하였으나 이에 제한되지 않는다. 즉, 영상 처리 시스템(500)에서 처리 대상이 되는 영상은 가상의 영상(일 예로, 가상 공간을 기반으로 가상의 카메라 시점에서 바라보는 게임 영상, 애니메이션 영상)일 수도 있음은 물론이다. 또한, 상술한 예에서 영상 처리 시스템(500)에서 처리되는 영상은 전 방향 영상인 것으로 설명하였으나 일 방향 또는 다수 방향의 공간을 촬영한 영상일 수도 있다. 예를 들어, 영상 처리 시스템(500)은 한 쌍의 어안 렌즈 중 하나의 어안 렌즈를 이용하여 촬영한 영상을 처리할 수도 있다.
트랜스코더(520)는 전 방향 영상을 2차원 영상으로 매핑할 수 있다. 예를 들어, 트랜스코더(520)는 어안 렌즈로 촬영된 2장의 영상을 3차원 영상으로 매핑하고, 이를 2차원 영상으로 매핑할 수 있다. 이 경우, 트랜스코더(520)는 전 방향 영상을 3차원 영상으로 매핑하기 위해, 전 방향 영상을 가상의 3차원 모델의 외측 또는 내측 표면에 매핑할 수 있다.
트랜스코더(520)는 전방향 영상을 2차원 영상으로 매핑할 수도 있으며, 3차원 영상을 2차원 영상으로 매핑을 수행함과 동시에 매핑된 3차원 영상 및 매핑된 2차원 영상 간의 좌표 관계에 대한 메타데이터를 생성할 수 있다.
인코더(530)는 트랜스코더(520)로부터 전달받은 2차원 영상에 대한 인코딩을 수행할 수 있다. 예를 들어, 인코더(530)는 H.264, MPEG-4, HEVC 등의 코덱 표준에 기초하여 인코딩을 수행할 수 있다.
여기서, 인코더(530)은 2차원 영상의 인코딩된 영상 데이터를 비디오 또는 정지 영상 형태로 메모리(미도시)에 저장할 수 있다. 또한, 인코더(530)는 인코딩된 영상 데이터를 다른 전자 장치(미도시)에 스트리밍 혹은 파일 형태로 전달될 수도 있다. 저장되거나 전달된 인코딩된 영상 데이터는 디코더(540)에 전달될 수 있다.
한편, 메모리(미도시)에는 영상과 연관된 센싱 정보가 저장되며, 상기 영상에 연관된 센싱 정보는 상기 영상의 각 프레임의 촬영 시의 센싱 정보가 상기 각 프레임마다 저장된 형태를 가질 수 있다. 또한 상기 영상에 연관된 센싱 정보는 상기 영상의 각 프레임에 대한 식별 정보와 함께 상기 영상의 메타 데이터에 포함될 수 있다.
메타 데이터는 인코딩된 영상 데이터와 함께 메모리(미도시)에 저장되거나 스트리밍 혹은 파일형태로 전송될 수 있다. 다양한 실시 예에 따르면, 메타 데이터는 별도의 문서(예: omnidirectional media application format(OMAF) 문서)로 생성되어 인코딩된 영상 데이터와 연관(associated with)되어 저장되거나, 상기 영상 데이터에 대한 요구가 있을 경우 연관되어 전송될 수 있다. 일 예로, 메타데이터는 인코딩된 영상 데이터와 연관되어, 인코딩된 영상 데이터와 함께 자동으로 호출될 수 있다. 메타데이터는 인코딩된 영상 데이터에 대한 요청이 있을 경우 인코딩된 영상 데이터와 함께 또는 별도로 전달되거나, 영상 데이터에 대한 요청과는 별도로 특정 장치나 모듈로 전달될 수 있다.
한편, 수신단은 디코더(540), 렌더링부(550), 디스플레이(560)를 포함할 수 있다. 이하, 송신단에서 기설명한 부분과 중복되는 부분에 대하여는 상세한 설명을 생략한다.
디코더(540)는 인코더(530)에서 인코딩된 영상 데이터를 전달받아 디코딩을 수행할 수 있다. 디코더(540)는 인코더(530)에서 매핑된 2차원 영상을 인코딩할 때 이용한 코덱 표준과 동일한 코덱 표준(예를 들어, H.264, MPEG-4, HEVC 등)을 이용하여 디코딩을 수행할 수 있다.
렌더링부(550)는 디코딩된 2차원 영상(이하, 입력 프레임)에 기초하여 렌더링을 수행할 수 있다. 이때, 렌더링부(550)는 렌더링을 위해 메타데이터를 추가적으로 이용할 수 있다. 여기서, 메타데이터는 송신단에서 생성되어 수신단으로 전달되거나, 수신단의 저장부(미도시)에 기저장되어 있을 수 있다. 예를 들어, 메타데이터는 송신단에서 JPEG로 인코딩된 경우 JPEG의 exif 필드, 송신단에서 MPEG-4로 압축된 경우 MPEG-4의 moov 필드에 포함될 수 있다. 또한, 메타데이터는 영상 프레임의 끝 부분에 포함될 수도 있다.
디스플레이(560)는 렌더링된 출력 프레임을 디스플레이할 수 있다.
상술한 내용에서는 설명의 편의를 위해, 영상 처리 시스템(500)을 카메라(510), 트랜스코더(520), 인코더(530), 디코더(540), 렌더링부(550) 및 디스플레이(560)로 구분하였다. 이는 일 예에 불과한 것으로, 영상 처리 시스템(500)은 상술한 구성의 일부만으로 구성되거나, 상술한 구성의 일부나 전부와 다른 구성이 조합되어 구현될 수도 있다. 또한, 상술한 구성들 중 트랜스코더(520), 인코더(530), 디코더(540), 렌더링부(550)는 물리적인 하드웨어로 구현될 수 있는 것으로 설명되었지만, 상술한 기능을 수행하는 소프트웨어로 제공되어 메모리에 저장되는 한편, CPU(central processing unit), GPU(graphic processing unit)와 같은 프로세서에 의해 로드되어 그 기능이 구동될 수도 있음은 물론이다.
한 실시 예에 따르면, 전자 장치의 프로세서는 디스플레이에 기능적으로 연결되며, 상기 프로세서는 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 상기 디스플레이에 표시하는 동안에, 제1 입력이 입력되면, 상기 제1입력에 응답하여, 상기 영상 중 상기 제1 방향과 다른 제2방향에 대응하는 제2부분 영상을 상기 디스플레이에 표시하도록 설정될 수 있다. 여기서, 상기 제1부분 영상은 상기 촬영된 영상의 각 프레임의 제1 부분에 대응하며, 상기 제2 부분 영상은 상기 각 프레임의 제2 부분에 대응할 수 있다.
한 실시 예에 따르면, 상기 제1방향은 상기 영상을 촬영한 촬영 장치에 구비된 메인 카메라의 전면을 향하는 기준 방향이며, 상기 제2방향은 상기 영상에 연관된 센싱 정보를 이용하여 결정되는 상기 촬영 장치의 이동 방향일 수 있다. 한 실시 예에 따르면, 상기 제2방향은 시선 방향에 대응하거나 상기 전자 장치를 착용한 사용자 헤드의 움직임에 대응할 수도 있다.
한 실시 예에 따르면, 상기 영상에 연관된 센싱 정보는, 상기 촬영 장치의 위치, 상기 촬영 장치의 방향, 상기 촬영 장치의 움직임 정보 중 적어도 하나를 포함할 수 있다.
한 실시 예에 따르면, 상기 전자 장치의 움직임을 감지하는 적어도 하나의 센서를 더 포함하며, 상기 프로세서는 상기 제1부분 영상 표시되는 도중에 상기 센서로부터 상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제1 방향에 대응하는 제3부분 영상을 상기 디스플레이에 표시하도록 설정될 수 있다. 예를 들어, 상기 전자 장치가 HMD 장치일 경우 HMD 장치의 움직임이 감지됨에 따라 메인 카메라 포즈를 기준으로 HMD 장치의 포즈를 반영한 각도(또는 방향)에 대응하는 뷰 영역(FOV)을 표시할 수 있다.
한 실시 예에 따르면, 상기 프로세서는 상기 제2부분 영상 표시되는 도중에 상기 센서로부터 상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제2 방향에 대응하는 제4부분 영상을 상기 디스플레이에 표시하도록 설정될 수 있다. 예를 들어, 상기 전자 장치가 HMD 장치일 경우 사용자 선택 시점(예: 진행 방향의 시점)을 기준으로 HMD 장치의 포즈를 반영한 각도(또는 방향)에 대응하는 뷰 영역을 표시할 수 있다. 이때, HMD 장치는 메인 카메라의 포즈의 각도에서 진행 방향의 각도를 뺀 다음 HMD 장치의 포즈를 더한 각도에 대응하는 뷰 영역을 표시할 수 있다. 여기서, 상기 영상은 360도 영상일 수 있다.
한 실시 예에 따르면, 상기 프로세서는 상기 영상 재생 시 상기 영상에 연관된 센싱 정보 및 상기 촬영된 영상의 각 프레임 간의 비교 정보 중 적어도 하나를 기반으로 이벤트 발생을 감지하고, 상기 영상 중 상기 이벤트 발생 방향에 대응하는 제5부분 영상을 상기 디스플레이에 표시하도록 설정될 수 있다. 발명의 한 실시 예에 따르면 상기 제1부분 영상, 제2부분 영상, 제3부분 영상, 제4부분영상, 제5부분 영상은 상황에 따라 적어도 일부 중첩되는 영상이거나, 동일한 영상으로 표시될 수 있다.
이하, 도 5a의 인코더(530)에서의 동작을 상세하게 설명하기 위해 도 5b 및 도 5c를 참조하기로 한다.
도 5b 및 도 5c는 다양한 실시예에 따른 영상에 연관된 센싱 정보의 저장 과정을 설명하기 위한 블록도이다.
먼저, 도 5b를 참조하면, 촬영 장치(400)에서는 카메라를 통해 영상이 입력되면(511), 입력된 영상 신호 처리(512)를 수행한 후, 센서(514)에서 획득한 센싱 성보와 함께 인코딩(513)을 수행할 수 있다. 여기서, 영상 신호 처리의 동작은 전 방향 영상을 2차원 영상으로 매핑하기 위한 동작으로, 워핑(warping), 심 파인딩(seam finding), 블렌딩(blending), 리매핑(remapping) 등의 동작을 포함할 수 있다. 또한, 영상과 함께 인코딩되는 영상과 연관된 센싱 정보는 영상 촬영 시에 촬영 장치(400)의 센서를 통해 획득된 센싱 정보로, 가속도 센서값, 자이로 센서값, 지자기 센서값, GPS, 고도 센서값 중 적어도 하나를 포함할 수 있다.
도 5c를 참조하면, 촬영 장치(400)에서는 적어도 하나의 센서로부터의 센싱 정보(514)를 이용하여 방향 정보(517)를 산출하는 동작을 수행할 수 있다. 여기서, 방향 정보에 대한 산출 동작은 이동 방향 추정(515) 및 메인 카메라 방향 추정(516) 동작을 포함할 수 있다. 구체적으로, 촬영 장치(400)에서는 센싱 정보를 기반으로 카메라 포즈/헤드 포즈와, 이동 방향(또는 궤적 방향(trajectory), 진행 방향)를 산출할 수 있다. 여기서, 카메라 포즈는 카메라의 위치, 방향, 모션(또는 움직임)을 포함하는 것이며, 헤드 포즈도 카메라가 장착된 촬영 장치(400)의 위치, 방향, 모션(또는 움직임)을 포함할 수 있다. 이때, 촬영 장치(400)는 영상 촬영 시 실시간으로 이동 방향 및 메인 카메라 방향을 산출할 수 있다. 여기서, 메인 카메라 방향은 촬영 장치에 구비된 복수의 카메라 중 메인 카메라의 전면을 향하는 기준 방향이며, 이동 방향은 촬영 장치의 이동 방향을 나타낼 수 있다.
촬영 장치(400)에서 영상의 각 프레임을 인코딩(513) 시 각 프레임의 촬영 시의 센싱 정보를 각 프레임과 함께 인코딩할 수 있다. 만일 영상의 각 프레임의 구조가 각 프레임의 촬영 시의 센싱 정보를 함께 저장할 수 있는 구조를 가진다면 각 프레임에 삽입되는 형태로 인코딩될 수 있다. 한 실시 예에 따르면, 영상의 각 프레임의 구조가 사용자 데이터 필드 등의 여분의 필드를 가진다면 상기 센싱 정보와 함께 산출된 이동 방향 정보, 카메라 포즈 또는 헤드 포즈 등에 대한 정보도 각 프레임에 삽입되는 형태로 인코딩될 수 있다.
예를 들어, MPEG-4와 같은 인코더로 인코딩을 할 때 영상의 각 프레임에 대한 센싱 정보 또는 산출된 방향 정보(예: 이동 방향 정보, 카메라 포즈 또는 헤드 포즈 등에 대한 정보)도 함께 저장될 수 있다. 만일 각 프레임의 구조 내부에 여분의 필드가 없을 경우에는 각 프레임의 식별 정보(예: 시퀀스 넘버)와 함께 별도의 파일 형태(또는 메타 데이터)로 저장될 수도 있다.
한편, 전술한 도 5c에서는 촬영 장치(400)에서 센싱 정보를 기반으로 방향 정보(예: 이동 방향, 카메라 포즈 또는 헤드 포즈 등)을 산출하는 경우를 예시하고 있으나, 산출(computing) 동작은 외부 장치 예컨대, 별도의 서버나 영상 재생 장치에서 계산될 수도 있다.
상기와 같이 센싱 정보를 기반으로 산출된 방향 정보들은 360도 영상 중 사용자가 원하는 시점(point of wiew) 방향에 대응하는 중요 영역(또는, 뷰 영역(field of view), 응시(gazing) 영역, 관심 영역(region of interest: ROI))을 설정하는 데 이용될 수 있다. 예를 들어, 촬영된 360도 영상을 서로 다른 위치에서 바라보는 복수의 시점 방향들 중에서 사용자가 원하는 시야 방향(즉, 시점)을 선택할 수 있도록 센싱 정보를 기반으로 산출된 값들이 이용될 수 있다.
도 5d는 다양한 실시예에 따른 영상 데이터와 산출된 방향 정보들의 결합 방법을 예시하고 있다.
도 5d에 도시된 바와 같이, 영상의 각 프레임(512a, 512b, 512c)에 대해 산출된 방향 정보(예: 이동 방향, 카메라 포즈 등)(517a, 517b, 517c)가 각각 연관되어 인코딩될 수 있다. 즉, 센싱 정보를 이용한 방향 정보의 산출 동작이 센싱 정보의 획득 시 실시간으로 촬영 장치(400)에서 수행될 경우에는 도 5d에 도시된 바와 같이 영상의 각 프레임(512a, 512b, 512c)에 대해 산출된 방향 정보(517a, 517b, 517c)가 각각 연관되어 인코딩될 수 있다. 반면, 방향 정보의 산출 동작이 외부 장치 예컨대, 별도의 서버나 영상 재생 장치에서 수행되는 경우에는 영상의 각 프레임(512a, 512b, 512c)에 대해 산출된 방향 정보 대신 센싱 정보가 각각 연관되어 인코딩될 수도 있다. 따라서 영상과 연관된 센싱 정보를 이용한 방향 정보의 산출은 영상 재생 요청 시 또는 디코딩 시 수행될 수 있다.
도 6은 다양한 실시예에 따른 3D 공간을 나타내는 도면이다.
3D 공간(601)은, 전자 장치(예: 전자 장치(101, 102, 410)), 전자 장치의 프로세서 또는 전자 장치의 제어부 중 적어도 하나에 의해 구현될 수 있다.
3D 공간(601)은, 미리 설정된 3D 모델(610)(예: 미리 설정된 반지름 R을 갖는 구(Sphere), 큐브(Cube), 원통(Cylinder))에 광각 이미지/비디오를 텍스쳐 매핑하고, 사용자 시점(또는 가상 카메라)를 3D 모델의 내부(예: 원점(615))에 위치시킴으로써 구현될 수 있다.
전자 장치는, 제1 시점(예: 메인 카메라 시점)(621)에 따라 3D 공간(601)의 제1 영역에 대응하는 제1 부분 영상(631)(또는 제1 화면)을 렌더링하여 디스플레이(예: 디스플레이(160)) 상에 표시할 수 있다.
전자 장치는, 뷰 모드에 대한 선택(또는 시점 변경을 위한 입력)에 따라 즉, 제1시점(621)으로부터 선택 시점(622)으로의 이동된 각도(640)에 따라, 3D 공간(601)의 제2영역에 대응하는 제2부분 영상(634)(또는 제2 화면)을 렌더링하여 디스플레이(예: 디스플레이(160)) 상에 표시할 수 있다.
3D 공간(601) 안에서 카메라/사용자 시야(또는, 렌더링 뷰 포트 또는 렌더링 영역)는 수평(Horizental) FOV(field of view)(651)와 수직(Vertical) FOV(652)에 의해 제어될 수 있다. 3D 어플리케이션(또는, 가상 현실 어플리케이션)은 렌더링 뷰 포트를 한정/정의하는 평면들(예: right/left/top/bottom/near/far 평면들)을 설정하여 FOV를 제어할 수 있다.
발명의 한 실시예에 따르면 상기 시점 변경은 사용자의 신체 일부분(예: 눈, 머리, 몸통) 등의 움직임에 따라 변경될 수 있으며, 상기 시점 변경에 대응하여 제 2 영상이 생성될 수 있다. 발명의 한 실시예에 따르면, 상기 시점 변경은 외부 장치 또는 외부 사용자로부터 수신한 신호에 의해 변경되거나 시점 변경이 제어될 수 있다.
도 7은 다양한 실시예에 따른 영상 촬영 시의 카메라 방향 및 이동 방향을 설명하기 위한 도면이다.
도 7(a)에 도시된 바와 같이, 촬영자가 스키장 슬로프에서 하강하면서 활강 시의 영상을 촬영하는 경우 메인 카메라 방향(710)과 촬영자가 이동하는 방향(또는 궤적 방향, 진행 방향)(700)이 다를 수 있다. 예를 들어, 메인 카메라 방향(710)은 촬영자의 정면을 향하지만 촬영자의 이동 방향(700)은 촬영자가 활강하는 진행 방향에 해당하므로, 두 방향이 서로 다를 수 있다. 따라서 도 7(b)의 전 방향 영상에서 메인 카메라 방향(710)에 대응하는 부분 영상과 이동 방향(700)에 대응하는 부분 영상의 위치가 다를 수 있다.
촬영자가 이동하면서 예컨대, 슬로프를 내려오면서 촬영되는 영상의 각 프레임마다 카메라 방향과 이동 방향 간의 관계를 비교해보면 도 8에 도시된 바와 같다. 도 8은 다양한 실시예에 따른 사용자 이동 경로에 따른 카메라 방향 및 이동 방향 간의 관계를 설명하기 위한 도면이다.
도 8에 도시된 바와 같이, 촬영자의 이동 경로(800)에 따라 촬영된 영상의 각 프레임은 3차원 구면체에 매핑될 수 있다. 촬영 장치(400)는 촬영자의 이동 경로(800)에 따라 일정 시간 간격으로 촬영되는 복수의 영상 프레임을 획득할 수 있으며, 각 프레임 간의 시간 간격은 동일할 수 있다. 각 영상 프레임은 카메라 포즈(또는 헤드 포즈)에 따라 획득되는 영상으로, 카메라 포즈(또는 헤드 포즈) 등의 자세는 예를 들어, AHRS(attitude and heading reference system)을 기반으로 도출될 수 있다. AHRS을 이용한다면 3축(x, y, z축)으로 카메라가 얼마만큼 기울어져 있는지 몇 도만큼 기울어져 있는지 또는 얼마나 회전되어 있는지 등의 카메라 자세를 알 수 있다.
촬영 장치(400)는 제1위치에서는 제1이동 방향(811)이 촬영자 이동 경로(800)와 유사한 방향을 가지지만 제1카메라 포즈(812)가 제1이동 방향(811)과는 상이한 방향을 가지는 제1영상 프레임(810)을 획득할 수 있다. 이와 유사하게 제2위치에서는 제2이동 방향(821)도 촬영자 이동 경로(800)와 유사한 방향을 가지지만 제2카메라 포즈(822)는 제2이동 방향(821)과는 상이한 방향을 가지는 제2영상 프레임(820)이 획득될 수 있다.
반면, 슬로프 상에서 방향이 급격하게 바뀌는 제3위치에서는 제3이동 방향(831)과 제3카메라 포즈(832) 간의 각도 차이는 더욱 커질 수 있다. 특히, 사용자의 이동 경로 상에서 방향이 급격하게 바뀌는 제3위치에서는 제2위치에서의 제2카메라 포즈(822)와는 반대 방향의 제3카메라 포즈(832)를 가지는 제3영상 프레임(830)이 획득될 수 있다. 이어, 다시 제4위치에서는 제4이동 방향(841) 및 제4카메라 포즈(842)의 제4영상 프레임(840)이 획득될 수 있다.
상기한 바와 같이, 촬영자가 이동하면서 영상을 촬영하는 경우 도 8에 도시된 바와 같이 촬영자의 이동 방향과는 다르게 카메라가 바라보는 방향(Camera pose or head pose)에 따라 각 영상의 프레임이 획득될 수 있다. 이때, 촬영 장치(400)에서 센서 정보(예: 가속도 센서, 자이로 센서, 지자기 센서, 고도 센서, GPS 등으로부터의 센서값)을 이용하면 영상의 각 프레임에 대한 방향 정보 예를 들어, 각 프레임에 대한 메인 카메라의 시선 방향(예: 카메라 포즈 또는 헤드 포즈)에 대한 정보뿐만 아니라 각 프레임에 대한 이동 방향(Trajectory)를 획득할 수 있다. 센서 정보를 이용한 방향 정보의 구체적인 산출 방법은 도 12 내지 도 13d에서 후술하기로 한다.
도 9a는 다양한 실시예에 따른 전자 장치에 의한 영상 표시 방법을 나타내는 흐름도이다. 영상 표시 방법은 900 동작 내지 910 동작들을 포함할 수 있다. 영상 표시 방법은, 전자 장치(예: 전자 장치(101, 102, 410)), 전자 장치의 프로세서(예: 프로세서(120)) 또는 전자 장치의 제어부 중 적어도 하나에 의해 수행될 수 있다.
900 동작에서, 전자 장치(예: 프로세서(120))는 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 디스플레이(예: 디스플레이(160), 디스플레이(560)) 상에 표시할 수 있다. 상기 영상은, 360도 영상일 수 있다. 또한, 제1방향은 기준 방향으로, 360도 영상을 촬영한 촬영 장치에 구비된 메인 카메라의 전면을 향하는 방향일 수 있다.
예를 들어, 전자 장치(예: 프로세서(120))는 360 영상을 3D 공간(즉, 3차원 공간)에 매핑했을 때 3D 공간의 제1 영역(또는 제1 영역에 대응하는 제1 영상)을 제1 렌더링 방식(예: 3D 렌더링)에 따라 표시할 수 있다.
905 동작에서, 전자 장치(예: 프로세서(120))는 제1방향에 대응하는 제1부분 영상을 표시하는 동안에 제1입력이 입력되는지를 판단할 수 있다. 제1입력은 시점 변경을 위한 사용자 입력일 수 있다. 만일 제1입력이 입력된 경우, 전자 장치(예: 프로세서(120))는 910 동작에서 제1입력에 응답하여, 상기 영상 중 제1방향과 다른 제2방향에 대응하는 제2부분 영상을 표시할 수 있다. 여기서, 제1부분 영상은 상기 촬영된 영상의 각 프레임의 제1부분에 대응하며, 제2부분 영상은 상기 각 프레임의 제2부분에 대응할 수 있다. 또한, 제2방향은 변경된 시점에 대응하는 방향으로, 영상에 연관된 센싱 정보를 이용하여 결정되는 촬영 장치의 이동 방향일 수 있다. 예를 들어, 제2방향은 사용자 시선 방향에 대응할 수 있으며, 사용자의 머리에 착용된 HMD 장치의 움직임 방향에 대응할 수 있다.
한 실시 예에 따르면, 상기 영상에 연관된 센싱 정보는 상기 촬영 장치의 위치, 상기 촬영 장치의 방향, 상기 촬영 장치의 움직임 정보 중 적어도 하나를 포함할 수 있다. 상기 영상에 연관된 센싱 정보는 상기 영상의 각 프레임의 촬영 시의 상기 센싱 정보가 상기 각 프레임마다 연관된 방식, 상기 각 프레임에 대한 식별 정보와 함께 상기 영상의 메타 데이터에 포함된 방식 중 어느 하나의 방식으로 저장된 것일 수 있다.
한 실시 예에 따르면, 상기 영상 표시 방법은 상기 제1부분 영상이 표시되는 도중에 상기 전자 장치의 움직임을 감지하는 동작 및 상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제1방향에 대응하는 제3부분 영상을 표시하는 동작을 더 포함할 수 있다.
한 실시 예에 따르면, 상기 영상 표시 방법은 상기 제2부분 영상이 표시되는 도중에 상기 전자 장치의 움직임을 감지하는 동작 및 상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제2방향에 대응하는 제4부분 영상을 표시하는 동작을 더 포함할 수 있다.
한 실시 예에 따르면, 상기 영상 표시 방법은 상기 영상 재생 시 상기 영상에 연관된 센싱 정보 및 상기 촬영된 영상의 각 프레임 간의 비교 정보 중 적어도 하나를 기반으로 이벤트 발생을 감지하는 동작 및 상기 영상 중 상기 이벤트 발생 방향에 대응하는 제5부분 영상을 표시하는 동작을 더 포함할 수 있다.
도 9b는 다양한 실시예에 따른 전자 장치에 의한 영상 표시 방법을 나타내는 상세 흐름도이다. 영상 표시 방법은 920 동작 내지 955 동작들을 포함할 수 있다. 영상 표시 방법은, 전자 장치(예: 전자 장치(101, 102, 410)), 전자 장치의 프로세서(예: 프로세서(120)) 또는 전자 장치의 제어부 중 적어도 하나에 의해 수행될 수 있다.
920 동작에서, 전자 장치(예: 프로세서(120))는 360도 영상 재생 요청이 있으면 925 동작에서 360도 영상 중 제1방향에 대응하는 제1부분 영상을 표시할 수 있다. 제1방향은 기준 방향으로, 360도 영상을 촬영한 메인 카메라의 전면을 향하는 방향일 수 있다.
예를 들어, 전자 장치(예: 프로세서(120))는 360 영상을 3D 공간(즉, 3차원 공간)에 매핑했을 때 3D 공간의 제1 영역(또는 제1 영역에 대응하는 제1 영상)을 제1 렌더링 방식(예: 3D 렌더링)에 따라 표시할 수 있다.
전자 장치(예: 프로세서(120))는 가상 현실 화면(또는 3D 컨텐트의 화면)을 디스플레이(예: 디스플레이(160)) 상에 표시할 수 있다. 예를 들어, 3D 렌더링 방식은, 3D 그래픽 라이브러리의 이용, 2D 좌표계/데이터 및 3D 좌표계/데이터 간의 좌표/데이터 변환, 3D 공간 또는 3D 모델로의 데이터 매핑 등의 3D 그래픽과 관련된 작업/동작/연산을 필요로 하는 렌더링 방식을 말할 수 있다. 이와 비교하여, 2D 렌더링 방식은 3D 그래픽과 관련된 작업/동작/연산을 필요로 하지 않는 렌더링 방식을 말할 수 있다.
한 실시예에서, 3D 공간은, 촬영 장치(400) (또는 촬영자)를 360도로 둘러싸는 3D 가상 공간일 수 있다.
한 실시예에서, 3D 공간은 광각 영상/비디오에 근거하여 생성될 수 있다. 예를 들어, 광각 영상/비디오는, 360도 영상/비디오(또는 360도 파노라마 영상/비디오), 2D(즉, 2차원) 파노라마 영상 등의 적어도 하나를 포함할 수 있다.
한 실시예에서, 3D 공간은, 미리 설정된 3D 모델(예: 구(Sphere), 큐브(Cube), 원통(Cylinder))에 광각 영상 /비디오를 텍스쳐 매핑하고, 사용자 시점(예: view port)에 대응하는 가상 카메라를 3D 모델의 내부에 위치시킴으로써 구현될 수 있다.
930 동작에서, 전자 장치(예: 프로세서(120))는 시점 변경을 위한 입력이 있는지의 여부를 판단할 수 있다. 만일 시점 변경을 위한 입력이 있는 경우 935 동작에서 360도 영상 중 상기 360도 영상에 연관된 센싱 정보를 이용하여 제2 방향을 결정할 수 있다. 시점 변경을 위한 입력은 메인 카메라의 기준 방향으로부터 다른 시점으로의 변경 예를 들어, 촬영자가 이동하는 주 진행 방향을 기준으로 한 시점, 이벤트를 기준으로 한 시점, 영상의 특이점을 기준으로 한 시점, 외부 감상자의 시점을 기준으로 한 시점 중 어느 하나를 선택하는 입력일 수 있다. 도 9b에서는 시점 변경을 위한 입력으로 촬영자의 이동 방향으로 시점을 변경하기 위한 입력을 예로 들어 설명한다. 제2방향은 360도 영상에 연관된 센싱 정보를 이용하여 결정되는 촬영 장치의 이동 방향일 수 있다. 한 실시예에 따르면, 상기 영상에 연관된 센싱 정보는, 촬영 장치의 위치, 촬영 장치의 방향, 촬영 장치의 모션(또는 움직임) 정보 중 적어도 하나를 포함할 수 있다.
940 동작에서, 전자 장치(예: 프로세서(120))는 상기 제2 방향에 대응하는 제2 부분 영상을 표시할 수 있다. 제2방향은 제1방향과는 다른 방향으로, 제1부분 영상이 촬영 영상의 각 프레임의 제1부분에 대응할 경우 제2부분 영상은 상기 각 프레임의 제2부분에 대응할 수 있다.
945 동작에서, 전자 장치(예: 프로세서(120))는 전자 장치(예: 전자 장치(101, 102, 410))의 움직임이 감지되는지의 여부를 판단할 수 있다. 만일 전자 장치(예: 전자 장치(101, 102, 410))의 움직임이 감지되는 경우 950 동작에서 전자 장치(예: 전자 장치(101, 102, 410))의 움직임에 기반한 제3부분 영상을 표시할 수 있다. 예를 들어, 전자 장치가 HMD 장치(예: 전자 장치(410))일 경우, 전자 장치/사용자의 움직임이 검출됨에 따라 움직임에 대응하는 각도만큼 이동된 방향에 대응하는 부분 영상을 렌더링할 수 있다.
한 실시 예에 따르면, 전자 장치(예: 프로세서(120))는 920 동작을 수행한 이후에 925 동작을 수행하기 전에 930 동작 또는 945 동작을 수행할 수 있는 등 그 동작 순서는 이에 한정되지 않을 수 있다. 예를 들어, 전자 장치(예: 프로세서(120))는 925 동작에서 제1방향에 대응하는 제1부분 영상을 표시하는 도중에 또는 925 동작에서의 제1방향에 대응하는 제1부분 영상을 표시하기 이전에 945 동작으로 진행하여 전자 장치의 움직임이 감지되는지의 여부를 판단할 수 있다. 또한, 전자 장치(예: 프로세서(120))는 935 동작에서 센싱 정보를 이용하여 제2방향을 결정한 후 그 제2방향에 대응하는 영상을 표시하기 전에 945 동작에서 전자 장치의 움직임이 감지되는지의 여부를 판단할 수도 있다.
예를 들어, 925 동작에서 제1부분 영상이 표시되는 도중에 사용자의 얼굴에 전자 장치가 착용된 상태에서 945 동작에서 상기 전자 장치의 움직임이 감지됨에 따라 상기 360도 영상 중 상기 전자 장치의 움직임에 기반한 제3부분 영상이 표시될 수 있다. 여기서, 제3부분 영상은 상기 제1 방향에 대응하는 제4부분 영상일 수 있다. 또한 940 동작에서 제2부분 영상 표시되는 도중에 945 동작에서 상기 전자 장치의 움직임이 감지됨에 따라 상기 전자 장치의 움직임에 기반한 제3부분 영상이 표시될 수 있다. 여기서, 제3부분 영상은 상기 360도 영상 중 제2방향에 대응하는 제5부분 영상일 수 있다. 즉, 제4부분 영상은 제1부분 영상과는 다른 부분의 영상이며, 제5부분 영상은 제2부분 영상과는 다른 부분의 영상이다.
이어, 955 동작에서 전자 장치(예: 프로세서(120))는 재생 종료 요청이 있는지의 여부를 판단하여, 재생 종료 요청이 입력되지 않는 한 945 동작으로 되돌아가 전술한 동작을 반복 수행할 수 있다.
한편, 전자 장치(예: 프로세서(120))는 영상 재생 시 상기 영상에 연관된 센싱 정보 및 상기 촬영된 영상의 각 프레임 간의 비교 정보 중 적어도 하나를 기반으로 이벤트 발생을 감지하고, 상기 영상 중 상기 이벤트 발생 방향에 대응하는 제5부분 영상을 표시할 수도 있다. 만일 이벤트 발생이 감지되면, 사용자가 시점 변경을 위한 입력을 선택할 수 있도록 디스플레이 상에 이벤트 발생을 표시할 수 있다.
한 실시 예에 따르면, 이벤트 발생이 감지되면, 전자 장치(예: 프로세서(120))는 이벤트를 기반으로 360도 영상 중 이벤트 발생 방향에 대응하는 부분 영상을 표시할 수 있다. 예를 들어, 충돌 이벤트가 발생한 경우 충돌 이벤트 발생 방향에 대응하는 영역의 영상을 표시할 수 있다. 이외에도 오디오 입력이 발생했을 때 오디오의 방향성을 판단하고, 360도 영상 중 해당 오디오 발생 방향(예: 촬영 장치에 장착된 마이크에서 검출한 오디오 발생 방향)을 기반으로 대응하는 뷰 영역(field of view)을 렌더링하여 그 뷰 영역의 영상을 표시할 수도 있다.
도 10a 및 도 10b는 다양한 실시예에 따른 360도 영상을 서로 다른 위치에서 바라보는 복수의 시선 방향들에 따른 영상 예시도이다.
도 10a을 참조하면, HMD 장치로 360 영상(1000)을 재생하게 되면, HMD 장치의 초기 기준점(1020)(예: 화면의 정중앙)에 맞춰서 영상이 재생되게 되는데, 이를 HMD 주시 방향이라고 할 수 있다. HMD의 초기 기준점(1020)은 촬영된 영상의 메인 카메라의 주시 방향(1015)으로 맞춰진 상태로, 영상이 표시될 수 있다. HMD 장치의 착용자의 시점도 메인 카메라의 주시 방향(1015)을 기준으로 감상자의 HMD 시선 이동을 기준으로 영상이 보여지게 된다. 이때, 촬영자의 진행 방향(1010)과 화면 상의 주요 컨텐트(1005)로 HMD 장치의 주시 방향(1020)이 일치할 수 있는 시점도 존재한다. 예를 들어, 도 10a에서는 화면 상의 주요 컨텐트(1005)로 롤러코스터의 레일을 예시하고 있으나, 주요 컨텐트는 전후 영상 프레임 간의 비교를 통해 추출되는 움직이는 대상물, 배경의 특이점, 주목도가 가장 높은 지점의 물체를 선택하여 자동으로 찾아내거나 사용자가 직접 대상 물체를 선택하는 등 주요 컨텐트를 정하는 방법은 이에 한정되지 않을 수 있다.
반면, 도 10b를 참조하면, 시선 변경에 따른 360도 영상(1030)을 예시하고 있다. 사용자가 시선 변경을 위한 선택을 입력한 경우, 전자 장치는 촬영자가 진행하는 이동 방향(1040)에 대응하는 부분 영상을 표시하기 위해서는 메인 카메라의 기준 방향에 대응하는 뷰에서 이동 방향에 대응하는 각도를 산출한 후 산출된 각도만큼 뷰의 중심점을 옮겨야 한다. 이를 위해 전자 장치는 메인 카메라의 기준 방향에 대응하는 부분 영역을 이동 방향으로 조정한 후, HMD 장치의 시선 방향(1045)에 대한 값을 반영하는 방식으로 최종 각도를 구하여 그 각도에 대응하는 방향의 부분 영상을 표시할 수 있다. 예를 들어, 메인 카메라의 움직임을 기준으로 하는 시점을 1인칭 시점이라고 할 경우, 1인칭 시점을 기준으로 했을 때 HMD 장치를 착용한 감상자는 롤러코스터를 탑승했을 때의 전방을 향하는 장면이 재생되는 영상을 볼 수 있지만, 진행 방향 시점을 기준으로 했을 경우에는 감상자는 롤러코스터의 아래쪽이나 레일을 중심으로 하는 장면이 재생되는 영상을 볼 수 있다. 이외에 HMD 장치를 착용한 감상자는 롤러코스터를 탑승했을 때의 전방을 향하는 장면이 재생되는 영상을 보다가 외부 감상자의 시점을 선택한 경우에는 외부 감상자가 착용한 HMD 장치로 바라보는 뷰로 장면이 재생되는 영상을 볼 수 있다. 다시 말하면, 동일한 영상이 재생되고 있는 상태에서 감상자와 외부 감상자가 서로 다른 부분을 다른 각도로 바라보고 것을 의미하는 것으로, 여기서, 외부 감상자의 시점은 3인칭 시점을 의미하는 것이라고 볼 수 있다.
도 11a는 다양한 실시예에 따른 3D 공간에서 카메라 방향, 이동 방향 및 HMD 시선 방향을 설명하기 위한 도면이다.
도 11a에서와 같이 영상 프레임(1100)을 3차원 구형 공간에 매핑하는 경우 이동 방향(1105), 메인 카메라 방향(1110), HMD 시선 방향(1115)은 서로 다를 수 있다. 예를 들어, 전자 장치에서 영상을 재생할 때 촬영 장치의 메인 카메라 방향(1110)을 기준으로 한 상태에서 그 전자 장치가 HMD 장치일 경우에는 HMD 장치의 각도 즉, HMD 시선 방향의 각도만큼 더한 각도에 따른 부분 영상을 디스플레이할 수 있다. 구체적으로, 촬영자의 시점을 그대로 재생하는 경우 즉, 메인 카메라 방향(1110)을 기준으로 영상을 재생하게 되면, 메인 카메라 방향(1110)의 각도를 (φ1, θ1)라고 했을 때 메인 카메라 방향(1110)의 각도인 (φ1, θ1)으로부터 HMD 시선 방향의 각도인 (φ2, θ2)로 이동한 각도에 따른 부분 영상을 디스플레이할 수 있다.
반면, 전자 장치에서 촬영자가 진행하는 주 진행 방향 즉, 이동 방향을 기준으로 영상을 재생하는 경우, 메인 카메라 방향(1110)을 기준으로 한 각도에서 이동 방향의 각도만큼 옮긴 후 다시 HMD 시선 방향의 각도인 (φ2, θ2)로 이동한 각도에 따른 부분 영상을 디스플레이할 수 있다. 구체적으로, 메인 카메라 방향(1110)의 각도인 (φ1, θ1)에서 이동 방향(1105)의 각도인 (φ3, θ3)를 뺀 후, 다시 HMD 시선 방향(1115)의 각도인 (φ2, θ2)만큼 더하게 되면 촬영자의 이동 방향의 각도에 따른 부분 영상을 디스플레이할 수 있다. 상기한 바와 같이, 사용자가 영상 재생 시 진행 방향을 기준으로 한 시점으로 시점 변경을 선택한 경우, 진행 방향을 기준으로 HMD 장치를 이용하여 바라보는 방향의 영상은 메인 카메라 방향(1110)의 각도 (φ1, θ1)- 이동 방향(1105)의 각도 (φ3, θ3) + HMD 시선 방향(1115)의 각도(φ2, θ2)를 통해 산출된 각도에 대응하는 영상일 수 있다.
이에 따라 최종 각도가 산출되면, 전자 장치는 도 11b에서와 같은 방식으로 시점 방향을 보정하여 보정된 시점 방향에 대응하는 부분을 결정하고, 결정된 부분의 영상을 렌더링할 수 있다. 도 11b는 다양한 실시예에 따른 3D 공간에서 복수의 시선 방향 중 선택된 시점 방향에 대응하는 부분 영상을 설명하기 위한 도면이다.
예를 들어, 전자 장치는 메인 카메라의 기준 방향에 대응하는 부분(1120)의 영상을 렌더링하여 표시하다가 사용자의 시점 변경을 위한 입력이 있으면, 센싱 정보를 기반으로 촬영 장치의 이동 방향을 결정한 후 결정된 이동 방향에 대응하는 부분(1125)의 영상을 렌더링하여 표시할 수 있다. 이때, 전자 장치의 움직임 있는 경우, 전자 장치는 현재 표시하고 있는 방향에서 움직임에 대응하는 각도만큼 이동하여 이동된 각도의 방향에 대응하는 부분의 영상을 표시할 수 있다.
도 12는 다양한 실시예에 따른 센싱 정보를 기반으로 방향 정보의 산출 과정을 설명하기 위한 도면이며, 도 13a 내지 도 13d는 상기 도 12의 산출 과정을 상세하게 설명하기 위한 도면이다. 도 12에서의 카메라(또는 촬영 장치) 방향, 이동 방향 등의 방향 정보를 산출하는 동작은 촬영 장치, 외부 서버, 외부 장치 및 영상 재생 장치 중 어느 하나에서 수행될 수 있다.
도 12를 참조하면, 전자 장치는 자이로스코프, 가속도계, 자력계 등의 센서(1200)로부터 출력되는 센서 값들(1201, 1202, 1203)은 센서 융합 알고리즘(1205)을 통해 방향 정보의 산출을 수행할 수 있다. 센서 융합 알고리즘(1205)의 구체적인 동작은 도 13a에 도시된 바와 같다.
도 13a를 참조하면, 자이로(gyroscope) 센서는 동체(예: 카메라 또는 촬영 장치) 좌표 x, y, z 3축의 지구관성좌표에 대하여 회전하는 각속도를 측정한 센서값(1201)을 출력할 수 있다. 동체에 대한 회전 각속도는 카메라(또는 촬영 장치)의 자세를 나타내는 것으로, 촬영 장치의 시점이라고 볼 수 있다. 예를 들어, 센서 융합 알고리즘(1205)은 자이로 센서를 이용하여 측정된 카메라의 회전 각속도를 좌표계로 변환된 값(ωx, ωy, ωz)(1201)을 자이로 센서로부터 전달받을 수 있다.
센서 융합 알고리즘(1205)는 가속도(accelerometer) 센서로부터 동체(예: 카메라 또는 촬영 장치) 좌표 x, y, z 3축의 지구관성좌표에 대한 가속도를 측정한 센서값(1202)을 전달받을 수 있다. 센서 융합 알고리즘(1205)는 지자기(magnetometer) 센서로부터 카메라 좌표 x, y, z 3축의 자북점에 대한 방향을 측정한 센서값(1203)을 전달받을 수 있다.
한편, 자이로센서로부터의 센서값(ωx, ωy, ωz)(1201)은 쿼터니온 예측(predict quaternion)(1300)을 통해 동체(예: 카메라 또는 촬영 장치)의 자세를 나타내는 사원수인 쿼터니온(quaternion)의 예상값을 산출하는 데 이용될 수 있다. 중력 추정(estimate gravity)(1305)을 통해 로우 패스 필터(low pass filter)를 이용하여 가속도 센서의 측정치에 대한 좌표계에서의 지구 중력 가속도(
Figure pat00001
)가 산출될 수 있다. 쿼터니온 예측(1300)을 통해 산출된 쿼터니온 예상값과, 중력 추정(1305)을 통해 산출된 중력 가속도는 쿼터니온 보정(1310)을 통해 기준 좌표계에서의 중력과 실제 중력(0,0, -g)와 비교하여 롤(roll)과 피치(pitch) 각도를 보정할 수 있다. 보정된 롤과 피치의 각도를 게임 회전 벡터(game rotation vector)라고 할 수 있다. 지자기 센서로부터의 측정치와 게임 회전 벡터는 추가적인 쿼터니온 보정(1315)을 통해 기준 좌표계에서의 지구 자기장을 예측하고 기준 좌표계의 실제 자기장(M, 0, 0)과의 비교를 통해 요(yaw) 각도를 보정하는 데 이용될 수 있다.
상기한 바와 같이 센서 융합 알고리즘(1205)에서는 가속도 센서의 측정치를 이용하여 자이로 센서의 측정치를 이용해 계산한 롤과 피치에 포함된 오차를 제거하는 등의 보정을 수행하고, 지자기 센서로 측정한 요(yaw)를 이용하여 자이로 센서 측정치에 대한 오차를 제거하는 등의 보정 동작을 수행함으로써 동체(예: 카메라)의 자세를 나타내는 사원수인 쿼터니온(quaternion) 값을 산출할 수 있다. 쿼터니온 값은 하기 수학식 1에서와 같이 나타낼 수 있다.
Figure pat00002
한편, 보정된 쿼터니온 값 중 회전 벡터는 다음 쿼터니온 예측(predict quaternion)(1300)을 위해 이용될 수 있다. 예를 들어, 현재 센서 융합 알고리즘(1205)를 통해 산출된 쿼터니온 값이 k번째일 경우, 상기 회전 벡터는 k+1번째 쿼터니온 값 산출에 이용될 수 있다.
센서 융합 알고리즘(1205)을 통해 보정된 쿼터니온(Q) 값은 도 12에 도시된 바와 같이 쿼터니온/오일러 각도 변환(quaternion/euler angle conversion)(1210)을 통해 요(yaw) 정보로 출력될 수 있다. 이를 구체적으로 설명하기 위해 도 13b를 참조하기로 한다.
도 13b에 도시된 바와 같이, 쿼터니온 값은 쿼터니온/오일러 각도 변환(quaternion/euler angle conversion)(1210)을 통해 롤, 피치, 요의 각도에 해당하는 오일러 각도(φ,θ,ψ)를 산출하는데 이용될 수 있다. q1, q2, q3는 각각 롤, 피치, 요에 대한 정보를 간접적으로 가지고 있으므로, 이를 이용한다면 롤, 피치, 요의 각도를 산출할 수 있다. 여기서, 오일러 각도는 기준 항법 좌표계에 대한 동체의 3축 자세를 나타낼 수 있다.
한편, 도 12의 GPS 수신기에서 수신한 GPS 신호들은 헤딩 산출(heading calculation)(1215) 및 궤적 스무딩(1220) 시에 이용될 수 있다. 또한 GPS 신호들은 촬영 장치의 병진 운동 상태 즉, 위도, 경도, 고도, 위도 상의 속도, 경도 상의 속도 및 고도 상의 속도를 계산하는데 이용될 수 있다. 만일 상승 또는 하강 중 어느 하나로의 이동이 감지되는 경우 GPS 신호들은 고도 센서로부터 측정된 센싱 정보로 대체 가능할 수 있다.
헤딩 산출(1215) 및 궤적 스무딩(1220) 동작을 구체적으로 설명하기 위해 도 13c를 참조하면, 현재 촬영 장치를 향하는 촬영자가 전방을 향하고 있다는 가정 하에, 수신된 GPS 신호를 기반으로 한 위치 변화로부터 현재 촬영자의 이동 방향(예: 촬영자의 몸체 중심이 향하는 방향)을 산출(ψGPS)한 후, 오일러 각도의 요 방향(ψ)에서 촬영자의 이동 방향(ψGPS)을 빼면, 촬영자의 헤드 방향 즉, 헤드 포즈가 구할 수 있다. 이때, GPS 측정치들은 랜덤 노이즈를 포함하고 있으므로, 궤적 스무딩 기법을 이용한다면 촬영자가 이동하는 궤적이 이어지도록 보정될 수 있다.
헤딩 산출(1215) 동작을 통해 산출된 헤드 포즈와 궤적 스무딩(1220) 동작을 통해 보정된 궤적은 도 12에 도시된 바와 같이 센서 기반 모션 산출(1225)을 통해 산출된 모션 정보들 중에서 이벤트 모션(1204)을 검출하는 데 이용될 수 있다. 이벤트 모션의 검출 동작을 구체적으로 설명하기 위해 도 13d를 참조하면, 헤딩 산출(1215) 동작을 통해 산출된 헤드 포즈와 궤적 스무딩(1220) 동작을 통해 보정된 궤적을 합할 경우, 촬영자의 머리에 부착된 IMU(inertial measurement unit)에서 예상되는 가속도를 산출해낼 수 있다.
여기서, 헤딩 산출(1215) 동작을 통해 산출된 헤드 포즈와 궤적 스무딩(1220) 동작을 통해 보정된 궤적은 가속도 센서와 자이로 센서의 추정값에 해당할 수 있다. 만일 실제 실시간으로 측정한 가속도 센서의 측정값과 자이로 센서의 측정값에서 가속도 센서의 추정값과 자이로 센서의 추정값을 빼면, 점프, 급격한 회전 등과 같은 이벤트 모션을 검출할 수 있다. 예를 들어, 두 센서의 측정값과 두 센서의 추정값 간의 차이가 임계 범위 이내일 경우에는 예상되는 궤적을 따라 촬영자가 전방향을 향한 상태로 이동 중임을 나타내는 것으로 볼 수 있다. 하지만, 두 센서의 측정값과 두 센서의 추정값 간의 차이가 임계 범위를 벗어나는 경우 촬영자가 이동하는 도중에 예상되는 궤적을 벗어난 이동 예컨대, 점프, 급격한 회전, 급하강, 급상승 등의 이벤트 모션이 검출될 수 있다. 도 14는 다양한 실시예에 따른 영상 재생 과정을 설명하기 위한 블록도이다.
도 14를 참조하면, 영상 재생 장치(101, 102)는 촬영 장치로부터 수신된 레코딩 데이터(1400)를 디코딩(1405)을 통해 영상 데이터와 센서 데이터로 분리할 수 있다. 레코딩 데이터(1440)는 각 영상 프레임마다 센싱 정보가 결합된 형태로, 영상 촬영 시에 센싱된 센싱값을 포함하는 센서 데이터와 영상 데이터가 인코딩된 데이터를 나타낼 수 있다.
영상 데이터는 영상 안정화부(1410)로 전달되어 흔들림을 보정하는 등의 안정화된 영상 데이터로 그래픽 파이프라인(1415)으로 전달될 수 있다. 반면, 센서 데이터는 영상에 대한 진동을 조정하는 데 이용될 수 있도록 영상 안정화부(1410)로 전달되거나, 이벤트 검출을 위해 모션 이벤트 검출부(1425)로 전달되거나, 메인 카메라의 방향 및 진행 방향을 추정할 수 있도록 메인 카메라 방향 추정부(1435) 및 궤적 추정부(1440)로 전달될 수 있다.
모션 이벤트 검출부(1425)는 영상과 연관된 센서 데이터를 이용하여 이벤트를 검출할 수 있다. 예를 들어, 센싱 데이터를 기반으로 임계 범위를 벗어나는 센싱값이 검출되면, 모션 이벤트 검출부(1425)는 점프, 급격한 회전, 급하강, 급상승 등의 이벤트가 발생했다고 판단할 수 있다. 또한 이벤트 발생 여부를 센서 데이터 이외에 영상 데이터를 기반으로도 판단할 수 있다. 이를 위해 영상 분석기(1430)는 각 영상 프레임 간의 비교를 통해 이벤트 발생을 판단할 수 있다. 각 영상 프레임을 분석하여 예를 들어, 인접한 영상 프레임 사이의 특징점을 매칭하다가 특이점이 사라지거나 또 다른 특이점이 생긴 경우 등의 급격한 변화가 있는 경우 이를 이벤트 발생이라고 판단할 수 있다. 또한 모션 이벤트 검출부(1425)에 의해 이벤트가 발생했다고 감지되면, 영상 분석기(1430)는 이벤트가 발생한 시간에 해당하는 영상 프레임을 기준으로 각도를 산출할 수 있다.
만일 사용자에 의해 시점 변경 입력이 있는 경우 예를 들어, 메인 카메라의 방향 즉, 촬영자의 시점을 그대로 재생하고 있다가 촬영자가 진행하는 주 진행 방향을 기준으로 재생하고자 하는 시점 변경이 있는 경우, 제1멀티플렉서(MUX)(1445)에서는 메인 카메라의 주시 방향의 각도로부터 진행 방향의 각도를 뺀 조절된 각도가 산출될 수 있다.
또한, 모션 이벤트 검출부(1425) 또는 영상 분석기(1430)에서 이벤트가 발생했다고 감지되면, 이벤트 발생 방향에 대응하는 이벤트 각도를 제1멀티플렉서(MUX)(1445)로 제공할 수 있다. 이에 따라 이벤트 발생 시에는 제1멀티플렉서(MUX)(1445)에서는 메인 카메라의 주시 방향의 각도로부터 이벤트 발생 방향의 각도를 뺀 조절된 각도가 산출될 수 있다.
이때, 재생 영상이 HMD 장치에서 재생되는 경우 HMD 장치의 HMD 센서 모듈(1450)로부터의 센서 데이터를 기반으로 HMD 포즈 추정부(1455)에서 HMD 자세에 따른 HMD 각도를 출력할 수 있다. 제2멀티플렉서(1465)에서는 HMD 각도와 조절된 각도를 더한 최종 각도가 산출될 수 있다. 최종 각도는 그래픽 파이프라인(1415)로 전달되어 영상 렌더링 시 최종 각도의 방향에 대응하는 부분 영상을 렌더링하게 되면 HMD 디스플레이(1420)를 통해 렌더링된 최종 각도의 방향에 대응하는 부분 영상이 표시될 수 있다. 다시 말하면, 360도 영상 중 선택된 시점에 대응하는 방향의 부분 영상이 표시되므로, HMD 장치를 착용한 사용자가 보는 방향에 따른 영상을 볼 수 있게 된다.
만일 다른 HMD 장치를 착용한 외부 감상자의 시점을 기준으로 재생하는 경우, 네트워크 인터페이스(1460)를 통해 외부 장치 즉, 다른 HMD 장치의 각도를 반영한 영상을 재생할 수도 있다. 이에 따라 동일한 360도 영상을 재생하더라도 각각의 HMD 장치를 착용한 사용자들이 보고 있는 시선 방향에 따라 서로 다른 부분의 영상(또는 서로 다른 관심 영역)을 볼 수 있다.
한편, 전술한 도 14의 영상 안정화부(1410)의 동작을 구체적으로 살펴보기 위해 도 15a 내지 도 15c를 참조하여 설명하기로 한다. 도 15a 내지 도 15c는 다양한 실시예에 따른 영상 안정화 동작을 설명하기 위한 도면이다.
먼저, 도 15a에 도시된 바와 같이 영상 신호(video signal)(또는 영상 데이터)는 디지털 영상 안정화(digital image stabilizer)(1502) 과정을 거쳐 안정화된 영상 신호(stabilized video signal)(1503)로 출력될 수 있다. 디지털 영상 안정화(1502) 동작을 수행하기 위한 구성 요소의 예로 도 15a에서는 로컬 모션 추정부(local motion estimation unit)(1504), 글로벌 모션 검출부(global motion detection unit)(1505), 통합부(integration unit)(1506) 및 모션 보상부(motion compensation unit)(1507)를 예시하고 있으나, 그 구성 요소는 이에 한정되지 않을 수 있다.
디지털 영상 안정화(1502)는 영상의 진동을 감쇄하여 의도하지 않은 흔들림을 영상 처리로 조정하는 동작으로, 일반적인 영상 처리의 경우 영상 내의 흔들림을 제거하는 보정에 초점을 맞춘 동작이나, 본 발명의 다양한 실시 예에 따르면, 영상 처리 시 센서 데이터를 이용하여 흔들림을 보정하면서도 감상자에게 실감나는 영상을 보는 느낌을 줄 수 있도록 진동 등의 햅틱(haptic) 효과를 함께 제공할 수 있다. 이에 따라 센서 데이터의 가속도 센서값을 이용하여 흔들림을 보정할 때 화면 흔들림 정도(또는 안정화 정도)를 조절해서 표시할 수 있어, 감상자는 실감나는 영상 감상이 가능하게 된다.
도 15b를 참조하면, 영상의 흔들림을 보정하는 방법은 크게 사용자의 의도적인 동작과 의도하지 않은 동작을 구분하여 영상을 보정하는 방법으로 구분될 수 있으며, 구분된 동작에 대응하여 영상을 보정할 수 있다. 도 15b에서는 복수의 영상 프레임 시퀀스를 예시하고 있는데, 그 중에서도 제 1내지 제4 영상(1511, 1512, 1513, 1514)들은 안정화되지 않은(un-stabilized) 영상 프레임 시퀀스이며, 제1 내지 제4 영상(1516, 1517, 1518, 1519)들은 안정화된(stabilized) 영상 프레임 스퀀스를 예시하고 있다. 도 15b에 도시된 바와 같이 인접한 두 영상 프레임에서의 특징점들을 기준으로 영상을 정렬(align)하게 되면 안정화되지 않은 영상 프레임들(1511, 1512, 1513, 1514)에서의 특징점들을 잇는 선은 곡선(1515)으로 나타나게 되지만, 안정화된 영상 프레임들(1516, 1517, 1518, 1519)에서의 특징점을 잇는 선은 직선(1520)으로 나타날 수 있다.
예를 들어, 도 15b의 영상 프레임(1512, 1517) 간을 비교(1530)했을 때, 제1 영상 프레임(1511)에 비해 제2 영상 프레임(1512)의 특이점은 중앙에서 벗어난 왼쪽 아래로 이동한 상태이며 제4 영상 프레임(1514)의 특이점은 제3 영상 프레임(1513)에 비해 오른쪽 위로 이동한 상태로 나타난 경우를 예시하고 있다. 따라서 제2 영상 프레임(1512)의 특이점이 예를 들어, 중앙에 위치하도록 오른쪽 위로 이동시키는 보정을 할 수 있다. 이와 마찬가지 방식으로, 제4 영상 프레임(1514)에 대해서는 특이점이 중앙에 위치하도록 그 영상 프레임(1514) 내의 픽셀들을 왼쪽 아래로 이동시키는 보정을 할 수 있다.
각 영상 프레임 내에서 특이점을 기준으로 영상 안정화(stabilization) 처리를 하게 되면, 특이점이 중심으로 이동되어 안정화된 제1 내지 제4 영상 프레임(1516, 1517, 1518, 1519)들을 얻을 수 있다. 예를 들어, 도 15b의 제2 영상 프레임들(1512, 1517) 간을 비교(1530)했을 때, 특이점이 오른쪽 위로 중심을 향하여 이동된 상태의 제2 영상 프레임(1517)을 얻을 수 있다. 또한 제4 영상 프레임들(1514, 1519) 간을 비교(1535)했을 때, 제4 영상 프레임(1514)의 특이점을 왼쪽 아래로 이동시키는 보정을 하게 되면, 특이점이 중심에 위치한 안정화된 제4 영상 프레임(1519)을 얻을 수 있다.
상기한 바와 같이 이전 영상 프레임과 이후 영상 프레임의 특징점을 기준으로 영상을 정렬하기 위해 영상 프레임들의 변화(transformation)를 계산하는 방법을 글로벌 모션 추정(global motion estimation)이라고 하며, 그 방법은 하기 수학식 2와 같다.
Figure pat00003
상기 수학식 2에서, 각 영상 프레임의 픽셀은 χ=(x, y)로 나타낼 수 있으며, n은 현재 영상 프레임을 나타내며, n + m은 n + m번째 영상 프레임을 나타낼 수 있다. 상기 수학식 2는 n번째 영상 프레임에서 n + m번째 영상 프레임의 특징이 될 수 있는 부분을 검출한 후, m번째 픽셀로의 변환을 의미할 수 있다.
도 15b에 도시된 바와 같이 안정화지 않은 영상 프레임들 즉, 제1 내지 제4 영상 프레임들(1511, 1512, 1513, 1514)의 특징점들을 기준으로 영상을 정렬함으로써, 정렬된 영상 프레임(1516, 1517, 1518, 1519)들을 얻을 수 있다. 따라서 전자 장치는 영상 프레임들 간의 특징점들을 기반으로 영상 프레임들 간의 차이를 조정하여 표시함으로써 사용자는 어지러움증 없이 영상을 볼 수 있다. 이와 같이 영상들 간의 큰 차이 없이 사용자에게 안정적으로 보여줄 수도 있지만, 만일 전자 장치의 움직임 변화량에 따라 마치 실제로 흔들리는 영상처럼 사용자에게 보여준다면 사용자는 물리적 체감 효과처럼 느낄 수 있을 것이다.
다양한 실시 예에 따르면, 영상을 정렬하는 과정을 역이용한다면 예를 들어, 영상 프레임들 간에 정렬을 위한 가중치 값을 조정함으로써 차이가 발생하는 영상들을 표시할 수 있다. 이와 같이 차이를 조정하여 영상을 표시할 경우 사용자는 오히려 실감나는 영상을 보는 것으로 인지할 수 있다. 여기서, 영상들 간의 차이를 진동이라고 칭할 수 있으며, 차이가 있는 영상을 사용자에게 보여줌으로써 사용자는 진동감을 느낄 수 있다.
예를 들어, 영상 재생 시 HMD 장치를 착용한 감상자에게 생동감을 제공할 수 있도록 영상을 통해 진동이 제공될 수 있다. 여기서, 영상을 통한 진동은 시각적인 진동으로 화면 흔들림을 의미할 수 있다. 예를 들어, 익스트림 스포츠를 실감 있게 보려고 하는 감상자에게 영상의 진동은 생동감을 극대화하는 주요한 요소일 수 있다. 이를 위해 영상 재생 시 영상을 이용한 진동 효과를 사용자에게 제공할 수 있는데, 진동 효과는 하기 수학식 3을 통해 얻을 수 있다.
Figure pat00004
상기 수학식 3은 상기 수학식 2에 진동 효과를 나타내는 가중치 α를 적용한 경우를 나타내고 있으며, 상기 가중치α는 0 ≤α≤1인 값을 가질 수 있다. 상기 수학식 3에서 가중치 α를 조정함으로써 감상자에게 여러 가지 모드의 진동 효과를 제공할 수 있다. 가중치 α= 0은 촬영한 상태의 정보를 기반으로 한 진동을 적용한 경우를 나타내며, α= 1은 진동을 최대한 제거한 경우를 나타내며, 0 < α < 1은 진동 레벨을 영상의 변환값에 대한 가중치를 적용하여 조정하는 경우를 나타낼 수 있다.
예를 들어, 도 15c에서는 n번째 영상 프레임과 n+1번째 영상 프레임을 겹친 경우(1540)와 n번째 영상 프레임과 n+3번째 영상 프레임을 겹친 경우(1545)를 예시하고 있다. 첫 번째 경우(1540)에서 n번째 영상 프레임의 특징 부분에서의 픽셀 좌표를 (xn , yn)이라고 할 경우, n+1번째 영상 프레임의 특징 부분에서의 픽셀 좌표는 (xn+1, yn + 1)이라고 할 수 있다. 또한 두 번째 경우(1545)에서 n번째 영상 프레임의 특징 부분에서의 픽셀 좌표를 (xn , yn)이라고 할 경우, n+3번째 영상 프레임의 특징 부분에서의 픽셀 좌표는 (xn+3, yn+3)이라고 할 수 있다.
만일 첫 번째 경우(1540) 및 두 번째 경우(1545)의 두 특징 부분 즉, 차이가 발생한 부분이 서로 겹쳐지도록 즉, 차이 부분이 0이 되도록 보정을 할 수 있다. 예를 들어, n+3번째 영상 프레임의 특징 부분에서의 픽셀 좌표인 (xn +3, yn + 3)를 기준으로 (xn , yn)으로 픽셀 변환하듯이 n+3번째 영상 프레임 내의 각 픽셀들을 변환하게 되면 차이 부분이 보정될 수 있다. 만일 차이 부분이 0이 되도록 보정할 경우에는 두 영상 프레임들 간의 변화량이 없으므로 사용자는 흔들림 없는 영상을 볼 수 있다.
만일 n+1번째 영상 프레임의 특징 부분에서의 픽셀 좌표 (xn +1, yn + 1)와 n번째 영상 프레임의 픽셀 좌표 (xn , yn) 간에 일정 수준의 차이가 발생하도록 한다면 사용자는 실제로 흔들리는 영상을 볼 수 있다. 여기서, 일정 수준의 차이는 상기 수학식 3의 가중치 α값을 이용하여 조정할 수 있다. 예를 들어, n 번째 영상 프레임과 n+1번째 영상 프레임의 각 픽셀들에 대해 0보다 크고 1 보다 작은 가중치 α를 곱하게 되면, n번째 영상 프레임과 n+1번째 영상 프레임 간에 가중치 α가 적용된 진동 효과를 가지는 영상이 재생될 수 있다. 또한, n번째 영상 프레임과 n+3번째 영상 프레임의 각 픽셀들에 대해서도 0보다 크고 1 보다 작은 가중치 α를 곱하게 되면 (xn , yn)으로부터 (xn +3, yn +3) 사이에서 그 가중치만큼 픽셀들이 이동된 영상 프레임이 출력될 수 있다.
상기한 바에서는 영상 프레임에서의 흔들림에 따른 차이를 픽셀 변환으로 표현하였으나, 이외에 영상 프레임에서의 흔들림에 따른 차이(또는 거리)는 각도 변화로도 표현될 수 있다. 따라서 코디네이터(coordination)에 따라 흔들림을 나타내는 영상 프레임에서의 차이(또는 거리)는 각도 또는 좌표로 표현될 수 있다.
도 15c에서는 사용자에게 실감나는 체감을 제공하는 방법 중의 하나로 화면이 흔들리는 시각적인 진동을 각 영상 프레임에 반영함으로써 시각적인 진동 효과를 제공하는 방법을 예시하고 있으나, 각 영상 프레임별로 촉감 효과 등 다양한 형태의 햅틱 효과를 적용하는 것이 가능할 수 있다. 예를 들어, 음악, 영화, 게임 속의 충격이나 사용자나 시스템 상에서 정한 가상의 진동 등의 값에 따라 사용자가 체감할 수 있도록 충격 효과를 사용자에게 전달할 수 있다.
한편, 전술한 도 14의 그래픽 파이프라인(1415)의 동작을 구체적으로 살펴보기 위해 도 16a을 참조하여 설명하기로 한다. 도 16a는 다양한 실시예에 따른 그래픽 파이프라인 동작을 설명하기 위한 도면이다. 그래픽 파이프라인 동작은, 전자 장치(예: 전자 장치(101, 102, 410)), 전자 장치의 프로세서(예: 프로세서(120)) 또는 전자 장치의 제어부 중 적어도 하나에 의해 수행될 수 있다. 또는 전자 장치의 렌더링부(예: 렌더링부(550))에 의해 수행될 수 있다.
도 16a를 참조하면, 그래픽 파이프라인(1415)의 동작은 3D 기하 프리미티브(geometric primitives)(1600), 모델링 & 변환(modeling and transformation)(1605), 카메라 변환(camera transformation)(1610), 라이트닝(lightening)(1615), 프로젝션 변환(projection transformation)(1620), 클리핑(clipping)(1625), 스캔 컨버젼 또는 래스터화(scan conversion or rasterization)(1630) 및 텍스쳐링 & 프래그먼트 쉐이딩(texturing & fragment shading)(1635)을 포함할 수 있다.
3D 기하 프리미티브(1600) 동작은 도 6에서와 같은 구(sphere)(610) 형태의 모양을 만드는 동작이다. 도 6에서와 같은 구 형태의 3D 모델 (610)을 만들기 위해서는 중심 위치가 정해져야 하고 그 구의 반경(radius)이 정해져야 한다. 한 실시 예에 따르면, 중심 위치와 반경은 디폴트 값으로 정해질 수 있다. 예를 들어, 중심 위치는 (0, 0, 0)이며 반경은 1로 정해질 수 있다.
모델링 & 변환(modeling and transformation)(1605) 동작은 2D 평면 영상(예: 전 방향 촬영 영상)을 3D 기하 프리미티브(1600) 동작을 통해 만들어진 구 형태의 3D 모델(610)로 변환하는 동작이다.
3D 기하 프리미티브(1600) 동작 및 모델링 & 변환(1605) 동작을 구체적으로 설명하기 위해 도 16b를 참조하기로 한다. 도 16b는 다양한 실시예에 따른 2D 평면의 어안 영상을 렌더링하는 과정을 설명하기 위한 도면이다.
예를 들어, 어안 렌즈 한 쌍으로 촬영 장치(400)에서 전 방향으로 영상을 촬영하면, 도 16b에 도시된 바와 같이 2 장의 어안 영상(1645)을 얻을 수 있다. 이때, 어안 렌즈와 같은 특수 렌즈를 이용하여 촬영된 것이기 때문에 실제 촬영된 한 쌍의 어안 영상(1640)에서와 같이 왜곡된 형태를 가질 수 있다. 또한 촬영된 한 쌍의 어안 영상(1640)을 3차원 공간의 영상으로 재생하기 위해서는 3D 모델(610) 상에 그 한 쌍의 어안 영상(1640)을 텍스쳐 매핑해야 한다.
이를 위해 도 16b에서와 같이 각 어안 영상의 형태를 뒤틀림(warping), 심 파인딩(seam finding), 블렌딩(blendimg) 등의 거쳐 큐브(cube) 또는 구형(equirectangular) 형태(1655)로 만든 후, 큐브 또는 구형 형태로 만든 2개의 영상을 합할 경우 하나의 2차원 평면 영상(1650)이 만들어질 수 있다.
도 16b에서와 같이 한 쌍의 어안 영상(1640)을 2차원 평면 영상(1650)으로 만든 후 도 6에서와 같은 3D 모델(610)에 텍스쳐 매핑하는 동작을 3D 기하 프리미티브(1600) 및 모델링 & 변환(1605)이라고 할 수 있다.
카메라 변환(1610)은 사용자 시점(또는 가상 카메라)를 3D 모델의 내부(예: 원점(615))에 위치시킨 후, 3D 모델(610) 좌표로 주어진 정점을 카메라 좌표계로 변환하는 것을 의미할 수 있다.
라이트닝(1615)은 수학적인 연산을 통해 조명을 주는 동작이며, 프로젝션 변환(1620)은 원근 효과를 나타내기 위한 동작을 나타낼 수 있다.
클리핑(1625)는 도 11b에서와 같이 시점에 대응하는 뷰 영역을 오려내는 동작일 수 있다.
스캔 컨버젼 또는 래스터화(1630)는 3차원 영상을 2차원 배열 형태의 픽셀로 구성하는 동작일 수 있다. 예를 들어, 3D 모델(610)의 좌표들을 2차원의 전자 장치의 화면(예: 디스플레이(160))으로 변환하는 동작을 의미할 수 있다.
텍스쳐링 & 프래그먼트 쉐이딩(1635)은 음영을 주는 동작일 수 있다.
상기와 같은 동작들을 통해 구면에 텍스쳐로써 영상이 입혀진 상태에서 HMD 장치에서 재생하는 부분이 구의 중심점에서 HMD 장치가 바라보는 뷰 영역(FOV)으로 정해질 수 있으며, 그 뷰 영역에 해당하는 영상이 재생될 수 있다.
이하, 영상 재생 과정을 구체적으로 설명하기 위해 메인 카메라를 기준으로 한 시점, 메인 카메라의 방향으로부터 다른 시점으로의 변경 예를 들어, 촬영자가 이동하는 주 진행 방향을 기준으로 한 시점, 이벤트를 기준으로 한 시점, 외부 감상자의 시점을 기준으로 한 시점 중 어느 하나에 따라 구분하여 설명하기로 한다.
도 17a 내지 도 17d는 도 14의 영상 재생 과정을 상세하게 설명하기 위한 도면으로, 도 14의 구성부들의 적어도 일부에서 선택된 시점으로 영상을 재생하는 동작을 수행하는 것으로 도시되어 있으나, 상술한 기능을 수행하는 소프트웨어로 제공되어 메모리에 저장되는 한편, CPU(central processing unit), GPU(graphic processing unit)와 같은 프로세서(예: 프로세서(120))에 의해 로드되어 그 기능이 구동될 수도 있음은 물론이다.
먼저, 도 17a는 도 14의 구성부들 중 메인 카메라를 기준으로 한 시점으로 영상을 재생하기 위한 구성부들을 예시하고 있다.
도 17a를 참조하면, 레코딩 데이터(1400)는 디코딩(1405)을 통해 영상 데이터와 센서 데이터로 분리될 수 있다. 이때, 메인 카메라의 시점으로 재생하는 방법은 촬영한 영상에서 시점 변경에 관한 값을 적용하지 않으므로 센서 데이터를 이용하지 않아도 되므로, 영상 데이터만이 그래픽 파이프라인(1415)으로 전달될 수 있다.
또한 HDM 포즈 추정부(1455)에서는 HMD 센서 모듈(1450)로부터 전달된 센서 데이터를 기반으로 한 HMD 자세(예: HMD 각도)를 그래픽 파이프라인(1415)로 전달할 수 있다. 이에 따라 HMD 디스플레이(1455) 상에는 움직이는 HMD 장치의 자세에서 상기 HMD 장치에 의해 보여지는 360도 영상의 적어도 일부가 실시간으로 렌더링되어 표시될 수 있다.
예를 들어, 메인 카메라의 포즈를 (φ1, θ1)라고 할 경우, HMD 장치는 HMD 디스플레이(1455) 상에 메인 카메라의 포즈(φ1, θ1)로부터 HMD 장치의 포즈(φ2, θ2)만큼 변경된 각도(또는 방향)에 대응하는 부분 영상을 표시할 수 있다. 따라서 사용자는 HMD 디스플레이(1455)를 통해 360도 영상 중 메인 카메라의 시점(또는 촬영자의 시점)을 기준으로 HMD 시선 방향만큼 변경한 뷰를 볼 수 있다.
도 17b는 도 14의 구성부들 중 촬영자가 이동하는 주 진행 방향을 기준으로 한 시점으로 영상을 재생하기 위한 구성부들을 예시하고 있다.
도 17b를 참조하면, 디코딩(1405)을 통해 레코딩 데이터(1400)가 영상 데이터와 센서 데이터로 분리되면, 센서 데이터는 궤적 추정부(1440) 및 메인 카메라 방향 추정부(1435)로 전달되며, 영상 데이터는 그래픽 파이프라인(1415)로 전달될 수 있다. 센서 데이터는 카메라의 방향(또는 각도, 포즈) 및 촬영자의 진행 방향(또는 이동 방향)을 추정하는 데 이용될 수 있다. 궤적 추정부(1440)에서는 진행 방향을 제공하며, 메인 카메라 방향 추정부(1435)에서는 메인 카메라의 방향을 제공할 수 있다. 이에 따라 메인 카메라 포즈를 기준으로 한 진행 방향과의 차이값을 구할 수 있으며, HMD 장치에서 HMD 포즈에 따른 시선 각도값을 획득하게 되면, 메인 카메라 포즈와 진행 방향과의 차이값에 HMD 시선 각도값을 더하게 되면, 최종 각도가 산출되게 된다. 그래픽 파이프라인(1415)에서는 360도 영상 데이터를 스테레오스코픽 형태로 카메라가 3D 모델(예: 구)의 중심점에 위치하고 영상 데이터를 구의 표면에 그리는 형태로 영상을 렌더링할 수 있다. 이어, 그래픽 파이프라인(1415)에서 상기 렌더링된 영상에서 최종 각도 방향을 기준으로 HMD 디스플레이 버퍼만큼의 영상 데이터를 HMD 디스플레이(1420)로 제공하며, HMD 디스플레이(1420)에서는 획득된 영상 데이터를 출력할 수 있다.
예를 들어, 메인 카메라의 포즈를 (φ1, θ1)라고 할 경우, 메인 카메라의 포즈(φ1, θ1)에서 촬영자의 진행 방향으로 방향을 변경해야 하므로, 메인 카메라의 포즈(φ1, θ1)에서 촬영자의 진행 방향(φ3, θ3)을 빼면, 촬영자의 진행 방향의 시점에 해당하는 각도가 나오게 된다. 이어, 촬영자의 진행 방향의 시점을 기준으로 HMD 시선 방향만큼 변경한 뷰를 볼 수 있도록 HMD 포즈 추정부(1455)로부터 제공되는 HMD 각도 즉, HMD 시선 방향의 각도(φ2, θ2)를 반영할 수 있다. 이에 따라 HMD 장치는 HMD 디스플레이(1420) 상에 메인 카메라의 포즈(φ1, θ1) - 촬영자의 진행 방향(φ3, θ3) + HMD 각도(φ2, θ2)를 통해 산출된 최종 각도(최종 방향)에 대응하는 부분 영상을 표시할 수 있다. 따라서 사용자는 메인 카메라의 주시 방향을 기준으로 진행 방향으로 각도를 조정한 후 HDM 시선 방향을 반영한 방향에 대응하는 영상을 볼 수 있다.
도 17c는 도 14의 구성부들 중 이벤트를 기준으로 한 시점으로 영상을 재생하기 위한 구성부들을 예시하고 있다.
도 17c를 참조하면, 도 17c의 구성부의 동작은 도 17b와 동일하므로 그 구체적인 설명은 생략하기로 한다. 다만, 디코딩(1405)을 통해 영상 데이터와 센서 데이터가 분리되면, 센서 데이터는 모션 이벤트 검출부(1425)에 전달될 수 있다. 모션 이벤트 검출부(1425)에서는 영상 프레임에 연관된 센서 데이터를 기반으로 평균적인 센서 데이터의 값 범위를 벗어나는 센서값이 검출되면 이벤트가 발생했다고 판단할 수 있다. 예를 들면, 모션 이벤트 검출부(1425)는 센서값들을 머신 러닝(machine learning)의 한 방법으로 자율학습(unsupervised learning)을 이용하여 분류하면서 분류 범위를 벗어나는 경우의 센서값에 대해서는 모션 이벤트로써 결정할 수 있다. 만일 모션 이벤트 발생 시 모션 이벤트 검출부(1425)는 모션 이벤트가 발생한 영상 프레임을 시간을 기준으로 파악한 후, 해당 영상 프레임에서 모션 이벤트 방향에 대한 값을 획득하여 이벤트 방향의 각도를 산출할 수 있다.
또한 영상 분석기(1430)은 인접한 영상 프레임 예컨대, 전후 영상 프레임 간의 비교를 통해 이벤트 발생 여부를 판단할 수 있다. 영상 분석기(1430)는 영상의 인터프레임(inter-frame), 인트라프레임(intra-frame)의 분석을 통해 다른 픽셀 또는 인접 영상 프레임과 다른 형태의 특이점이 검출되면 이벤트가 발생했다고 판단할 수 있다. 따라서 영상 분석기(1430)는 이벤트가 발생한 영상 프레임을 기준으로 한 이벤트 각도를 획득할 수 있다. 이와 같이 모션 이벤트 검출부(1425) 및 영상 분석기(1430) 중 적어도 하나에서의 이벤트 발생이 검출되면, 예를 들어, 모션 이벤트의 발생 방향, 특이점 발생 방향 등 이벤트 각도를 구할 수 있다. 따라서 메인 카메라 포즈를 기준으로 이벤트 각도를 반영한 각도에 HMD 장치의 포즈에 따른 각도를 반영함으로써 이벤트를 기준으로 한 시점으로 영상을 재생할 수 있다.
예를 들어, 메인 카메라의 포즈(φ1, θ1)에서 이벤트 각도(φ4, θ4)을 빼면, 이벤트를 기준으로 한 시점에 해당하는 각도가 나오게 된다. 이어, 이벤트를 기준으로 한 시점을 기준으로 HMD 시선 방향만큼 변경한 뷰를 볼 수 있도록 HMD 포즈 추정부(1455)로부터 제공되는 HMD 각도 즉, HMD 시선 방향의 각도(φ2, θ2)를 반영할 수 있다. 이에 따라 HMD 장치는 HMD 디스플레이(1420) 상에 메인 카메라의 포즈(φ1, θ1) - 이벤트 각도(φ4, θ4) + HMD 각도(φ2, θ2)를 통해 산출된 최종 각도(최종 방향)에 대응하는 부분 영상을 표시할 수 있다. 따라서 사용자는 메인 카메라의 주시 방향을 기준으로 이벤트 발생 방향으로 각도를 조정한 후 HDM 시선 방향을 반영한 방향에 대응하는 영상을 볼 수 있다.
도 17d는 도 14의 구성부들 중 외부 감상자의 시점으로 영상을 재생하기 위한 구성부들을 예시하고 있다.
도 17d를 참조하면, 사용자가 다른 감상자와 영상을 공유한 상태에서 재생하고자 하는 경우 그래픽 파이프라인(1415)에 네트워크 인터페이스(1460)를 통해 외부 장치(예: 다른 HMD 장치)의 각도가 전달될 수 있다. 이에 따라 메인 카메라의 시점을 기준으로 외부 장치의 각도만큼 변경된 각도에 대응하는 영상이 HMD 디스플레이(1420)를 통해 재생될 수 있다. 따라서 HMD 장치에서 재생하는 부분은 구의 중심점에서 외부 장치(예: 다른 HMD 장치)가 바라보는 뷰 영역(FOV)에 해당하며, 그 뷰 영역에 해당하는 영상이 재생될 수 있다. 즉, HMD 장치의 뷰 영역(FOV)은 외부 장치의 각도를 이용하여 정해질 수 있다. 따라서 HMD 장치를 착용한 사용자는 자신의 시점이 아닌 다른 HMD 장치를 착용한 감상자의 시점으로 영상을 볼 수 있다.
도 18은 다양한 실시예에 따른 시점 선택을 위한 화면 예시도이다.
도 18(a)에 도시된 바와 같이 사용자가 시점을 선택할 수 있도록 360도 영상 재생 시 화면 하단에 시점 알림창(1800)이 표시될 수 있다. 예를 들어, 'original view'라는 알림창(1800)은 현재 재생 중인 영상의 시점을 알리는 역할을 할 수 있다. 여기서, 화면이 가려지는 것을 방지할 수 있도록 알림창의 표시 여부 및 표시 방식 등은 사용자 선택에 따라 외부 입력 예컨대, 지정된 버튼의 입력을 통해 설정될 수 있다.
또한, 도 18(a)에 도시된 바와 같이 메인 카메라의 전면 뷰가 표시되는 상태에서, 사용자의 시점 변경을 위한 입력에 대응하여 도 18(b)와 같이 변경된 시점 방향에 대응하는 영상이 표시될 수 있다. 도 18(b)에서는 촬영자의 진행 방향에 대응하는 시점으로 영상이 재생 중임을 알리는 'trajectory view' 알림창(1810)이 표시된 경우를 예시하고 있다. 또한 도 18(c)에 도시된 바와 같이 영상 재생 시 영상 분석을 통해 화면 상의 특이점(1815) 검출 등의 이벤트 발생이 감지되면, 'event view' 알림창(1820)을 통해 이벤트 발생을 알릴 수 있다. 이에 따라 사용자가 이벤트 발생 지점을 기준으로 하는 시점으로 영상을 볼 것인지를 선택할 수 있다. 또한 'event view' 알림창(1820)은 이벤트를 기반으로 한 시점으로 영상이 재생 중임을 알리는 역할을 할 수도 있다. 이와 같이 사용자는 영상 재생 중에 원하는 시점으로 뷰를 변경하여 볼 수 있는데, HMD 장치에 구비된 입력 버튼 또는 외부 컨트롤러 등을 통해 시점을 변경할 수 있으며, 시점 변경 방법은 이에 한정되지 않을 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예: 메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
다양한 실시예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 표시하는 동작; 및 상기 제1방향에 대응하는 제1부분 영상을 표시하는 동안에 제1입력이 입력되면, 제1입력에 응답하여, 상기 영상 중 상기 제1방향과 다른 제2방향에 대응하는 제2부분 영상을 표시하는 동작을 포함할 수 있다.
본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 문서에서 기재된 기술의 범위를 한정하는 것은 아니다. 따라서, 본 문서의 범위는, 본 문서의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.
101: 전자 장치, 110: 버스, 120: 프로세서, 130: 메모리, 150: 입출력 인터페이스, 160: 디스플레이, 170: 통신 인터페이스

Claims (22)

  1. 전자 장치에 있어서,
    디스플레이; 및
    상기 디스플레이에 기능적으로 연결된 프로세서를 포함하고, 상기 프로세서는,
    적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 상기 디스플레이에 표시하는 동안에, 제1 입력이 입력되면,
    상기 제1입력에 응답하여, 상기 영상 중 상기 제1 방향과 다른 제2방향에 대응하는 제2부분 영상을 상기 디스플레이에 표시하도록 설정된 전자 장치.
  2. 제1항에 있어서, 상기 제1부분 영상은 상기 촬영된 영상의 각 프레임의 제1 부분에 대응하며, 상기 제2 부분 영상은 상기 각 프레임의 제2 부분에 대응하는 전자 장치.
  3. 제1항에 있어서,
    상기 제1방향은 상기 영상을 촬영한 촬영 장치에 구비된 메인 카메라의 전면을 향하는 기준 방향이며,
    상기 제2방향은 상기 영상에 연관된 센싱 정보를 이용하여 결정되는 상기 촬영 장치의 이동 방향인 전자 장치.
  4. 제3항에 있어서,
    상기 영상에 연관된 센싱 정보는, 상기 촬영 장치의 위치, 상기 촬영 장치의 방향, 상기 촬영 장치의 움직임 정보 중 적어도 하나를 포함하는 전자 장치.
  5. 제3항에 있어서, 상기 제2방향은 시선 방향 또는 상기 전자 장치를 착용한 사용자 헤드의 움직임에 대응하는, 전자 장치.
  6. 제1항에 있어서,
    상기 전자 장치의 움직임을 감지하는 적어도 하나의 센서를 더 포함하며,
    상기 프로세서는,
    상기 제1부분 영상 표시되는 도중에 상기 센서로부터 상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제1 방향에 대응하는 제3부분 영상을 상기 디스플레이에 표시하도록 설정된 전자 장치.
  7. 제6항에 있어서, 상기 프로세서는,
    상기 제2부분 영상 표시되는 도중에 상기 센서로부터 상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제2 방향에 대응하는 제4부분 영상을 상기 디스플레이에 표시하도록 설정된 전자 장치.
  8. 제1항에 있어서, 상기 영상은, 360도 영상인 전자 장치.
  9. 제1항에 있어서,
    상기 영상에 연관된 센싱 정보를 저장하는 메모리를 포함하며,
    상기 영상에 연관된 센싱 정보는, 상기 영상의 각 프레임의 촬영 시의 상기 센싱 정보가 상기 각 프레임마다 저장된 형태인, 전자 장치.
  10. 제1항에 있어서,
    상기 영상에 연관된 센싱 정보를 저장하는 메모리를 포함하며,
    상기 영상에 연관된 센싱 정보는, 상기 영상의 각 프레임에 대한 식별 정보와 함께 상기 영상의 메타 데이터에 포함되는 전자 장치.
  11. 제3항에 있어서, 상기 프로세서는,
    상기 영상 재생 시 상기 영상에 연관된 센싱 정보 및 상기 촬영된 영상의 각 프레임 간의 비교 정보 중 적어도 하나를 기반으로 이벤트 발생을 감지하고,
    상기 영상 중 상기 이벤트 발생 방향에 대응하는 제5부분 영상을 상기 디스플레이에 표시하도록 설정된 전자 장치.
  12. 전자 장치에 의한 영상 표시 방법에 있어서,
    적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 표시하는 동작; 및
    상기 제1방향에 대응하는 제1부분 영상을 표시하는 동안에 제1입력이 입력되면, 제1입력에 응답하여, 상기 영상 중 상기 제1방향과 다른 제2방향에 대응하는 제2부분 영상을 표시하는 동작을 포함하는, 영상 표시 방법.
  13. 제12항에 있어서, 상기 제1부분 영상은 상기 촬영된 영상의 각 프레임의 제1 부분에 대응하며, 상기 제2 부분 영상은 상기 각 프레임의 제2 부분에 대응하는, 영상 표시 방법.
  14. 제12항에 있어서,
    상기 제1방향은 상기 영상을 촬영한 촬영 장치에 구비된 메인 카메라의 전면을 향하는 기준 방향이며,
    상기 제2방향은 상기 영상에 연관된 센싱 정보를 이용하여 결정되는 상기 촬영 장치의 이동 방향인, 영상 표시 방법.
  15. 제14항에 있어서, 상기 영상에 연관된 센싱 정보는,
    상기 촬영 장치의 위치, 상기 촬영 장치의 방향, 상기 촬영 장치의 움직임 정보 중 적어도 하나를 포함하는, 영상 표시 방법.
  16. 제14항에 있어서, 상기 제2방향은 시선 방향 또는 상기 전자 장치를 착용한 사용자 헤드의 움직임에 대응하는, 영상 표시 방법.
  17. 제14항에 있어서, 상기 영상에 연관된 센싱 정보는,
    상기 영상의 각 프레임의 촬영 시의 상기 센싱 정보가 상기 각 프레임마다 연관된 방식, 상기 각 프레임에 대한 식별 정보와 함께 상기 영상의 메타 데이터에 포함된 방식 중 어느 하나의 방식으로 저장된 것인, 영상 표시 방법.
  18. 제12항에 있어서,
    상기 제1부분 영상이 표시되는 도중에 상기 전자 장치의 움직임을 감지하는 동작; 및
    상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제1방향에 대응하는 제3부분 영상을 표시하는 동작을 더 포함하는, 영상 표시 방법.
  19. 제12항에 있어서,
    상기 제2부분 영상이 표시되는 도중에 상기 전자 장치의 움직임을 감지하는 동작; 및
    상기 전자 장치의 움직임이 감지됨에 따라 상기 영상 중 상기 전자 장치의 움직임에 기반한 상기 제2방향에 대응하는 제4부분 영상을 표시하는 동작을 더 포함하는, 영상 표시 방법.
  20. 제12항에 있어서, 상기 영상은, 360도 영상인, 영상 표시 방법.
  21. 제14항에 있어서,
    상기 영상 재생 시 상기 영상에 연관된 센싱 정보 및 상기 촬영된 영상의 각 프레임 간의 비교 정보 중 적어도 하나를 기반으로 이벤트 발생을 감지하는 동작; 및
    상기 영상 중 상기 이벤트 발생 방향에 대응하는 제5부분 영상을 표시하는 동작을 더 포함하는, 영상 표시 방법.
  22. 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은,
    적어도 하나의 카메라에 의해 촬영된 영상 중 제1방향에 대응하는 제1부분 영상을 표시하는 동작; 및
    상기 제1방향에 대응하는 제1부분 영상을 표시하는 동안에 제1입력이 입력되면, 제1입력에 응답하여, 상기 영상 중 상기 제1방향과 다른 제2방향에 대응하는 제2부분 영상을 표시하는 동작을 포함하는, 저장 매체.
KR1020160177058A 2016-12-22 2016-12-22 영상 표시 방법, 저장 매체 및 전자 장치 KR102697559B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160177058A KR102697559B1 (ko) 2016-12-22 2016-12-22 영상 표시 방법, 저장 매체 및 전자 장치
PCT/KR2017/014960 WO2018117574A1 (en) 2016-12-22 2017-12-18 Method for displaying image, storage medium, and electronic device
US15/845,378 US10802578B2 (en) 2016-12-22 2017-12-18 Method for displaying image, storage medium, and electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160177058A KR102697559B1 (ko) 2016-12-22 2016-12-22 영상 표시 방법, 저장 매체 및 전자 장치

Publications (2)

Publication Number Publication Date
KR20180073327A true KR20180073327A (ko) 2018-07-02
KR102697559B1 KR102697559B1 (ko) 2024-08-23

Family

ID=62626699

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160177058A KR102697559B1 (ko) 2016-12-22 2016-12-22 영상 표시 방법, 저장 매체 및 전자 장치

Country Status (3)

Country Link
US (1) US10802578B2 (ko)
KR (1) KR102697559B1 (ko)
WO (1) WO2018117574A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023196203A1 (en) * 2022-04-04 2023-10-12 Genome International Corporation Traveling in time and space continuum

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6143469B2 (ja) * 2013-01-17 2017-06-07 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
EP3514765A4 (en) * 2016-09-14 2020-04-22 Square Enix Co.,Ltd. VIDEO DISPLAY SYSTEM, VIDEO DISPLAY METHOD AND VIDEO DISPLAY PROGRAM
US20180242017A1 (en) * 2017-02-22 2018-08-23 Twitter, Inc. Transcoding video
US10440351B2 (en) 2017-03-03 2019-10-08 Fyusion, Inc. Tilts as a measure of user engagement for multiview interactive digital media representations
US10356395B2 (en) * 2017-03-03 2019-07-16 Fyusion, Inc. Tilts as a measure of user engagement for multiview digital media representations
KR102316327B1 (ko) * 2017-04-04 2021-10-22 엘지전자 주식회사 가상 공간의 캡쳐 방법 및 그 전자장치
US10580386B2 (en) * 2017-04-21 2020-03-03 Ford Global Technologies, Llc In-vehicle projected reality motion correction
EP3622487B1 (en) * 2017-05-18 2021-12-22 Samsung Electronics Co., Ltd. Method for providing 360-degree video and device for supporting the same
AU2018285543B2 (en) * 2017-06-14 2023-10-05 Hadal, Inc. Systems and methods for virtual reality motion sickness prevention
JP7000050B2 (ja) * 2017-06-29 2022-01-19 キヤノン株式会社 撮像制御装置及びその制御方法
KR101984516B1 (ko) * 2017-07-21 2019-05-31 엘지전자 주식회사 청소기 및 그 제어방법
US10609902B2 (en) 2017-07-27 2020-04-07 Command Sight, Inc. Animal wearable head mountable display system
US10630873B2 (en) 2017-07-27 2020-04-21 Command Sight, Inc. Animal-wearable first person view system
US20190079370A1 (en) * 2017-09-11 2019-03-14 Tactacam LLC Autofocus and autozoom recording system
US10462370B2 (en) 2017-10-03 2019-10-29 Google Llc Video stabilization
WO2019126951A1 (zh) * 2017-12-25 2019-07-04 歌尔科技有限公司 激光束扫描显示设备及增强现实眼镜
JP6968689B2 (ja) * 2017-12-27 2021-11-17 Dynabook株式会社 電子機器、ウェアラブル機器及び表示制御方法
JP6975309B2 (ja) * 2018-02-21 2021-12-01 株式会社ソニー・インタラクティブエンタテインメント 画像処理装置および画像処理方法
CN108574794B (zh) * 2018-03-30 2021-01-22 京东方科技集团股份有限公司 图像处理方法、装置及显示设备、计算机可读存储介质
US10171738B1 (en) 2018-05-04 2019-01-01 Google Llc Stabilizing video to reduce camera and face movement
US10713487B2 (en) 2018-06-29 2020-07-14 Pixart Imaging Inc. Object determining system and electronic apparatus applying the object determining system
CN109145732B (zh) * 2018-07-17 2022-02-15 东南大学 一种基于Gabor投影的黑烟车检测方法
DE102018121258A1 (de) 2018-08-30 2020-03-05 Vr Coaster Gmbh & Co. Kg Head Mounted Display sowie Vergnügungseinrichtung mit einem solchen Head Mounted Display
CN109282438A (zh) * 2018-09-17 2019-01-29 广东美的暖通设备有限公司 空调的控制方法、装置及系统
CN109375371B (zh) * 2018-10-18 2020-12-15 浙江道远文化发展有限公司 一种基于物联网的虚拟现实设备
CN109492571B (zh) * 2018-11-02 2020-10-09 北京地平线机器人技术研发有限公司 识别人体年龄的方法、装置及电子设备
US11321874B2 (en) * 2018-11-21 2022-05-03 Telefonaktiebolaget Lm Ericsson (Publ) Calibration of mobile electronic devices connected to headsets wearable by users
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
KR102200115B1 (ko) * 2018-12-06 2021-01-08 (주)포스트미디어 다시점 360도 vr 컨텐츠 제공 시스템
CN111354088B (zh) * 2018-12-21 2023-11-10 宏达国际电子股份有限公司 环境地图建立方法以及其系统
EP3691249A1 (en) 2019-01-29 2020-08-05 Koninklijke Philips N.V. Image signal representing a scene
US11176374B2 (en) * 2019-05-01 2021-11-16 Microsoft Technology Licensing, Llc Deriving information from images
US11265487B2 (en) 2019-06-05 2022-03-01 Mediatek Inc. Camera view synthesis on head-mounted display for virtual reality and augmented reality
US11570404B2 (en) * 2020-05-12 2023-01-31 True Meeting Inc. Predicting behavior changes of a participant of a 3D video conference
US11652959B2 (en) 2020-05-12 2023-05-16 True Meeting Inc. Generating a 3D visual representation of the 3D object using a neural network selected out of multiple neural networks
US11190689B1 (en) 2020-07-29 2021-11-30 Google Llc Multi-camera video stabilization
US10979672B1 (en) * 2020-10-20 2021-04-13 Katmai Tech Holdings LLC Web-based videoconference virtual environment with navigable avatars, and applications thereof
US11449137B2 (en) * 2021-02-12 2022-09-20 Rockwell Collins, Inc. Soldier and surface vehicle heads-up display imagery compensation system to align imagery with surroundings
CN113793243A (zh) * 2021-05-14 2021-12-14 黑蜂智造(深圳)科技有限公司 图像数据处理方法、电子设备及计算机可读存储介质
CN113407084B (zh) * 2021-06-24 2022-05-17 杭州灵伴科技有限公司 展示内容更新方法、头戴式显示设备和计算机可读介质
US11900687B2 (en) * 2021-07-06 2024-02-13 Canoo Technologies Inc. Fisheye collage transformation for road object detection or other object detection
WO2024201814A1 (ja) * 2023-03-29 2024-10-03 マクセル株式会社 映像共有システム及び映像共有方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120105201A (ko) * 2011-03-15 2012-09-25 삼성테크윈 주식회사 휴대 단말, 원격 카메라, 및 휴대 단말에 의한 원격 카메라의 팬/틸트/줌 제어 방법
KR20130115952A (ko) * 2012-04-13 2013-10-22 인포뱅크 주식회사 이미지 표시 방법 및 이를 위한 이동통신 단말기
EP3076382A1 (en) * 2015-03-31 2016-10-05 Xiaomi Inc. Method, apparatus and electronic device for display control
KR20160136646A (ko) * 2015-05-20 2016-11-30 삼성전자주식회사 화면을 표시하는 전자 장치, 그 제어 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004017730B4 (de) 2004-04-10 2006-05-24 Christian-Albrechts-Universität Zu Kiel Verfahren zur Rotationskompensation sphärischer Bilder
JP4956915B2 (ja) 2005-05-20 2012-06-20 日産自動車株式会社 映像表示装置及び映像表示方法
KR101329470B1 (ko) * 2005-11-11 2013-11-13 소니 주식회사 화상 처리 장치, 화상 처리 방법 및 그 프로그램을 기록한 기록 매체
US9910497B2 (en) * 2006-02-08 2018-03-06 Oblong Industries, Inc. Gestural control of autonomous and semi-autonomous systems
US8370383B2 (en) * 2006-02-08 2013-02-05 Oblong Industries, Inc. Multi-process interactive systems and methods
KR100790890B1 (ko) * 2006-09-27 2008-01-02 삼성전자주식회사 파노라마 영상 생성장치 및 방법
US8081186B2 (en) * 2007-11-16 2011-12-20 Microsoft Corporation Spatial exploration field of view preview mechanism
KR101387527B1 (ko) * 2007-12-06 2014-04-23 엘지전자 주식회사 단말기 및 그 메뉴 아이콘 디스플레이 방법
US8493408B2 (en) * 2008-11-19 2013-07-23 Apple Inc. Techniques for manipulating panoramas
JP5935694B2 (ja) * 2010-10-13 2016-06-15 日本電気株式会社 動画像配信システム、及び動画像配信方法
KR101780021B1 (ko) * 2010-10-18 2017-10-11 삼성전자주식회사 네트워크 인터페이스의 자동 설정에 기초해 인터넷 연결을 공유하는 방법 및 장치
JP6186775B2 (ja) * 2012-05-31 2017-08-30 株式会社リコー 通信端末、表示方法、及びプログラム
KR101773116B1 (ko) 2013-07-26 2017-08-31 삼성전자주식회사 영상 촬영 장치 및 이의 촬영 방법
KR20150025268A (ko) 2013-08-28 2015-03-10 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US9501871B2 (en) * 2014-04-30 2016-11-22 At&T Mobility Ii Llc Explorable augmented reality displays
EP3311582A4 (en) * 2015-06-17 2018-10-31 LG Electronics Inc. Display device and operating method thereof
KR20170079198A (ko) * 2015-12-30 2017-07-10 엘지전자 주식회사 이동 단말기 및 그의 동작 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120105201A (ko) * 2011-03-15 2012-09-25 삼성테크윈 주식회사 휴대 단말, 원격 카메라, 및 휴대 단말에 의한 원격 카메라의 팬/틸트/줌 제어 방법
KR20130115952A (ko) * 2012-04-13 2013-10-22 인포뱅크 주식회사 이미지 표시 방법 및 이를 위한 이동통신 단말기
EP3076382A1 (en) * 2015-03-31 2016-10-05 Xiaomi Inc. Method, apparatus and electronic device for display control
KR20160136646A (ko) * 2015-05-20 2016-11-30 삼성전자주식회사 화면을 표시하는 전자 장치, 그 제어 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023196203A1 (en) * 2022-04-04 2023-10-12 Genome International Corporation Traveling in time and space continuum

Also Published As

Publication number Publication date
US20180181196A1 (en) 2018-06-28
KR102697559B1 (ko) 2024-08-23
US10802578B2 (en) 2020-10-13
WO2018117574A1 (en) 2018-06-28

Similar Documents

Publication Publication Date Title
KR102697559B1 (ko) 영상 표시 방법, 저장 매체 및 전자 장치
CN110544280B (zh) Ar系统及方法
CN108810538B (zh) 视频编码方法、装置、终端及存储介质
KR102606976B1 (ko) 전자 장치 및 전자 장치의 이미지 데이터 송수신 방법
KR102506480B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
CN110036647B (zh) 用于管理三维内容的缩略图的电子设备
CN109471522B (zh) 用于在虚拟现实中控制指示器的方法和电子设备
KR102497683B1 (ko) 다수의 가상 캐릭터를 제어하는 방법, 기기, 장치 및 저장 매체
KR102499139B1 (ko) 이미지를 표시하는 전자 장치 및 그 제어 방법
KR102498598B1 (ko) 영상 처리 장치 및 그 영상 처리 방법
JP7026819B2 (ja) カメラの位置決め方法および装置、端末並びにコンピュータプログラム
KR20180075191A (ko) 무인 이동체를 제어하기 위한 방법 및 전자 장치
CN108462818B (zh) 电子设备及用于在该电子设备中显示360度图像的方法
KR20170136750A (ko) 전자 장치 및 그의 동작 방법
KR20180011539A (ko) 영상의 처리를 위한 전자 장치
US20230360343A1 (en) Method for observing virtual environment, device, and storage medium
EP3547702A1 (en) Image processing apparatus and image processing method therefor
KR102653336B1 (ko) 전자 장치 및 그 제어 방법
KR20180113109A (ko) 전자 장치 및 전자 장치의 화면 표시 방법
KR102122506B1 (ko) 헬멧 및 통합처리기를 포함하는 시스템 및 그 동작 방법
KR20180028796A (ko) 이미지 표시 방법, 저장 매체 및 전자 장치
KR20180091381A (ko) 다면체에 기반한 vr 이미지를 제공하는 전자 장치 및 그 이미지의 제공 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant