KR102499139B1 - 이미지를 표시하는 전자 장치 및 그 제어 방법 - Google Patents

이미지를 표시하는 전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR102499139B1
KR102499139B1 KR1020160120821A KR20160120821A KR102499139B1 KR 102499139 B1 KR102499139 B1 KR 102499139B1 KR 1020160120821 A KR1020160120821 A KR 1020160120821A KR 20160120821 A KR20160120821 A KR 20160120821A KR 102499139 B1 KR102499139 B1 KR 102499139B1
Authority
KR
South Korea
Prior art keywords
user
frame
electronic device
gaze
decoding
Prior art date
Application number
KR1020160120821A
Other languages
English (en)
Other versions
KR20180032089A (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 KR1020160120821A priority Critical patent/KR102499139B1/ko
Priority to US15/668,367 priority patent/US10823958B2/en
Publication of KR20180032089A publication Critical patent/KR20180032089A/ko
Application granted granted Critical
Publication of KR102499139B1 publication Critical patent/KR102499139B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • 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
    • 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
    • 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/013Eye tracking input arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • H04N19/895Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder in combination with error concealment
    • 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/0179Display position adjusting means not related to the information to be displayed
    • G02B2027/0187Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

전자 장치의 제어 방법은, 동영상을 획득하는 동작, 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하는 동작, 상기 디코딩 대상 부분을 디코딩하는 동작 및 상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 표시하는 동작을 포함할 수 있다.

Description

이미지를 표시하는 전자 장치 및 그 제어 방법{ELECTRONIC DEVICE FOR DISPLAYING IMAGE AND METHOD FOR CONTROLLING THEREOF}
본 발명은 이미지를 표시하는 전자 장치 및 그 제어 방법에 관한 것이다.
전자 장치들 중에는 신체에 착용할 수 있는 형태로 제공되는 전자 장치들이 있다. 이러한 전자 장치들은 통상적으로 웨어러블 디바이스(wearable device)라고 할 수 있다. 신체에 착용할 수 있는 전자 장치들의 형태들 중에 HMD(head mounted display)와 같은 헤드 장착형 전자 장치가 포함될 수도 있다.
헤드 장착형 디스플레이 장치는 사용자의 신체 일부(예를 들면, 사용자의 머리)에 착용되어 사용자에게 가상 현실(Virtual Reality) 환경 또는 증강 현실(augmented reality) 환경을 제공할 수 있다. 가상 현실 환경의 제공은 예를 들어, 가상 현실을 구현할 수 있는 화면의 디스플레이 및 상기 가상 현실을 구현할 수 있는 다양한 사용자 인터페이스의 제공 등을 포함할 수 있다.
종래의 HMD는 가속도, 각가속도 또는 기울어진 방향을 센싱하고, 센싱된 정보에 대응하여 화면을 표시할 수 있다. 이에 따라, HMD는 사용자의 움직임에 대응하여 화면을 변경하여 표시할 수 있으며, 사용자는 변경되는 화면을 시청함으로써 실제 현실과 같은 서비스를 제공받을 수 있다.
종래의 전자 장치는 다양한 시선을 반영한 광각 이미지를 저장하고, 현재의 사용자 시선에 대응하는 부분을 표시할 수 있다. 종래의 전자 장치는, 현재의 사용자 시선에 대응하는 일부분의 표시를 위하여 광각 이미지 전체를 디코딩(decoding)한다. 광각 이미지는, 예를 들어 3차원에서의 360도 방향에 대한 정보를 포함하고 있으므로, 일반 2차원 이미지에 비하여 상대적으로 고용량일 수 있다. 특히, 실제와 극히 유사한 가상 현실 환경을 표시하기 위하여서는, 광각 이미지가 고화질을 가질 수 있다. 이에 따라, 전자 장치는 광각 이미지 전체를 디코딩하는 경우에, 소모되는 시간이 상대적으로 길 수 있으며, 상대적으로 큰 리소스(resource)를 요구할 수 있다.
본 발명의 다양한 실시예는, 전체 이미지 중 일부만을 디코딩할 수 있는 전자 장치 및 그 제어 방법을 제공할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치의 제어 방법은, 동영상을 획득하는 동작; 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하는 동작; 상기 디코딩 대상 부분을 디코딩하는 동작; 및 상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 표시하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치는, 디스플레이; 및 프로세서를 포함하고, 상기 프로세서는, 동영상을 획득하고, 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하고, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하고, 상기 디코딩 대상 부분을 디코딩하고, 상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를, 상기 디스플레이 상에, 표시하도록 제어할 수 있다.
본 발명의 다양한 실시예에서, 인코딩을 수행하는 전자 장치의 제어 방법은, 가상 현실 서비스의 제공을 위한 광각 이미지로 구성된 동영상을 획득하는 동작; 디코딩을 수행하는 전자 장치로부터 현재의 사용자 시선에 대한 정보 및 미래의 사용자 시선에 대한 정보를 수신하는 동작; 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 인코딩(encoding) 대상 부분을 결정하는 동작; 상기 인코딩 대상 부분을 인코딩하는 동작; 및 인코딩된 데이터를 상기 디코딩을 수행하는 전자 장치로 송신하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에 의하여, 전체 이미지 중 일부의 부분만을 디코딩할 수 있는 전자 장치 및 그 제어 방법이 제공될 수 있다. 이에 따라, 동일한 리소스의 전자 장치로, 상대적으로 더 큰 용량의 광각 이미지를 처리할 수 있다. 아울러, 전체 이미지 중 일부의 부분만이 인코딩될 수 있으며, 이에 따라 상대적으로 작은 크기의 동영상 파일을 수신함으로써 안정적인 스트리밍(streaming)이 수행될 수 있다. 아울러, 동영상 재생 또는 스트리밍에 이용되는 전력의 소모 또한 감소할 수도 있다.
도 1은 본 발명의 다양한 실시예에 따른 전자 장치 및 네트워크의 블록도를 도시한다.
도 2는 다양한 실시예에 따른 전자 장치의 블록도이다.
도 3은 다양한 실시예에 따른 프로그램 모듈의 블록도이다.
도 4a는 본 발명의 일 실시예에 따른 전자 장치를 예시하는 사시도이다.
도 4b는 일 실시 예에 의한 전자 장치의 표시를 도시한다.
도 4c는 사용자가 관찰하는 화면의 개념도를 도시한다.
도 5a는 사용자의 HMD 착용을 설명하기 위한 사시도이다.
도 5b 내지 5e는 본 발명의 다양한 실시예에 따른 전자 장치의 화면 변경의 개념도를 도시한다.
도 6a 및 6b는 본 발명의 다양한 실시예에 의한 전자 장치의 동작을 설명하기 위한 개념도들이다.
도 7은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 8a는 본 발명의 다양한 실시예에 의한 동영상을 구성하는 프레임의 개념도를 도시한다.
도 8b는 본 발명의 다양한 실시예에 의한 전체 이미지 중의 디코딩 대상 부분을 설명하기 위한 개념도를 도시한다.
도 9는 본 발명의 다양한 실시예에 따른 미래 사용자 시선을 예측하는 방법을 설명하기 위한 흐름도를 도시한다.
도 10은 본 발명의 다양한 실시예에 따른 미래 사용자 시선의 예측 과정을 설명하기 위한 개념도를 도시한다.
도 11은 본 발명의 다양한 실시예에 따른 미래 사용자 시선을 예측하는 방법을 설명하기 위한 흐름도를 도시한다.
도 12는 본 발명의 다양한 실시예에 따른 미래 사용자 시선의 예측 과정을 설명하기 위한 개념도를 도시한다.
도 13은 본 발명의 다양한 실시예에 따른 인트라 예측 방법을 설명하기 위한 흐름도를 도시한다.
도 14는 본 발명의 다양한 실시예에 따른 인트라 예측 과정을 설명하기 위한 개념도를 도시한다.
도 15는 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 16은 본 발명의 다양한 실시예에 따른 인코딩을 수행하는 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 17은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 18은 본 발명의 다양한 실시예에 따른 미래 사용자 시선에 대한 신뢰도에 따른 디코딩 대상 부분을 설명하기 위한 개념도를 도시한다.
도 19는 디코딩 오버헤드(decoding overhead)를 설명하기 위한 개념도를 도시한다.
도 20은 본 발명의 다양한 실시예에 따른 블록 사이즈의 가변적인 설정을 설명하기 위한 개념도를 도시한다.
도 21은 본 발명의 다양한 실시예에 의한 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 22는 본 발명의 다양한 실시예에 따른 인코더 및 재생기의 동작을 설명하기 위한 흐름도를 도시한다.
도 23은 본 발명의 다양한 실시예에 따른 블록에 대한 리소스 부여를 설명하기 위한 개념도를 도시한다.
도 24는 본 발명의 다양한 실시예에 의한 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 25는 본 발명의 다양한 실시에에 의한 블록의 에러 정정 과정을 설명하기 위한 개념도를 도시한다.
도 26은 본 발명의 다양한 실시예에 따른 에러 정정 과정을 설명하기 위한 개념도를 도시한다.
도 27은 본 발명의 다양한 실시예에 따른 에러 정정을 설명하기 위한 흐름도를 도시한다.
도 28은 본 발명의 다양한 실시예에 따른 에러 정정을 설명하기 위한 흐름도를 도시한다.
도 29는 본 발명의 다양한 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
도 30은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
도 31은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
이하, 본 문서의 다양한 실시예들이 첨부된 도면을 참조하여 기재된다. 실시예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "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)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 동영상을 획득하고, 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하고, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하고, 상기 디코딩 대상 부분을 디코딩하고, 상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를, 상기 디스플레이(160) 상에, 표시하도록 제어할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측하고, 상기 제 1 프레임에서, 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 판단하고, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 포함하는 상기 디코딩 대상 부분을 결정할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분과 함께 상기 디코딩 대상 부분으로서 결정할 수 있다. 상기 기설정된 개수는, 상기 미래의 사용자 시선의 신뢰도에 따라 가변적일 수도 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 동영상의 제 2 프레임에서의 사용자 시선에 대응하는 부분을 판단하고, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하고, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 상기 디스플레이(160) 상에 표시하도록 제어할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분의 적어도 하나의 블록을, 상기 제 1 프레임에서의 디코딩 대상 부분의 적어도 하나의 블록으로부터 예측할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 제 2 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 상기 제 2 프레임에서의 디코딩 대상 영역을 결정하고, 상기 제 2 프레임에서의 디코딩 대상 영역을 디코딩할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 2 프레임에서의 디코딩 대상 영역 중 적어도 하나의 블록이 디코딩이 불가능하다고 판단되면, 상기 디코딩이 불가능한 적어도 하나의 블록을 에러 정정할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 전자 장치(101)의 센서(미도시)로부터의 센싱 데이터, 상기 전자 장치(101)의 사용자의 행동 습관 및 상기 동영상의 컨텐츠와 연관된 정보 중 적어도 하나에 기초하여 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 디코딩 대상 부분의 제 1 블록을 단독으로 디코딩하고, 상기 디코딩 대상 부분의 제 2 블록을 상기 제 1 블록을 참조하여 예측하며, 상기 제 1 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함되지 않으며, 상기 제 2 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함될 수 있다.
한편, 본 발명의 다양한 실시예에서, 전자 장치(101)는 인코딩을 수행할 수 있다. 이 경우, 프로세서(120)는 가상 현실 서비스의 제공을 위한 광각 이미지로 구성된 동영상을 획득하고, 디코딩을 수행하는 전자 장치로부터 현재의 사용자 시선에 대한 정보를 수신하고, 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하고, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 인코딩(encoding) 대상 부분을 결정하고, 상기 인코딩 대상 부분을 인코딩하고, 인코딩된 데이터를 상기 디코딩을 수행하는 전자 장치로 송신하도록 제어할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 포함하는 상기 인코딩 대상 부분을 결정할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 미래의 사용자 시선에 대응하는 부분과 함께 상기 인코딩 대상 부분으로서 결정할 수 있다. 상기 인코딩 대상 부분은, 복수 개의 블록을 포함하며, 상기 복수 개의 블록의 크기는 상이하거나 또는 동일할 수 있다.
본 발명의 다양한 실시예에서, 상기 프로세서(120)는, 상기 인코딩을 수행하는 시간과 상기 디코딩을 수행하는 전자 장치에서 표시를 수행하는 시간 사이의 딜레이를 고려하여 상기 인코딩 대상 부분을 결정할 수도 있다.
도 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))와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈(220)은, 예를 들면, 셀룰러 모듈(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 에 도시된 입출력 인터페이스(145)에 포함될 수 있다. 오디오 모듈(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)), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. "모듈"은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있으며, 예를 들면, 어떤 동작들을 수행하는, 알려졌거나 앞으로 개발될, ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays), 또는 프로그램 가능 논리 장치를 포함할 수 있다. 다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는 프로그램 모듈의 형태로 컴퓨터로 판독 가능한 저장 매체(예:메모리(130))에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(예: 자기테이프), 광기록 매체(예: CD-ROM, DVD, 자기-광 매체 (예: 플롭티컬 디스크), 내장 메모리 등을 포함할 수 있다. 명령어는 컴파일러에 의해 만들어지는 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른, 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
도 4a는 본 발명의 일 실시예에 따른 전자 장치(101) 및 전자 장치(102)를 예시하는 사시도이다.
전자 장치(101)는 디스플레이를 포함할 수 있다. 전자 장치(101)는 가상 현실 어플리케이션을 저장할 수 있다. 가상 현실 어플리케이션은 사용자에게 실제 현실과 유사한 디스플레이를 제공할 수 있는 어플리케이션일 수 있다. 하나의 실시 예에서, 가상 현실 어플리케이션은 스테레오 방식에 기초하여 사용자의 양안 각각에 대응하는 좌안용 이미지 및 우안용 이미지를 표시할 수 있다.
전자 장치(102)는 HMD일 수 있다. HMD는 사용자의 머리에 착용되어, 사용자가 움직이더라도 사용자의 머리에 고정될 수 있다. 전자 장치(101)는 전자 장치(102)와 결합할 수 있다. 이에 따라, 사용자는 전자 장치(101)가 결합한 전자 장치(102)를 착용함에 따라, 전자 장치(101)의 디스플레이에 표시되는 좌안용 이미지 및 우안용 이미지를 관찰할 수 있다.
한 실시 예에 따른 전자 장치(102)는 사용자의 머리에 착용되도록 마련된 하우징(450)과, 상기 하우징에 고정되며 상기 사용자의 눈의 위치에 대응되는 영역에 마련되는 암전부(430)와, 상기 하우징(150)의 일 영역에 구비되는 적어도 하나의 입력 버튼(421)을 포함할 수 있다. 전자 장치(102)는 사용자로부터의 스와이프(swipe) 입력을 수신할 수 있는 입력 패드(425)를 포함할 수 있다.
사용자는 암전부(430)에 양안을 밀착시킬 수 있으며, 이에 따라 외광의 간섭 없이 전자 장치(101)로부터 제공되는 가상 현실 어플리케이션에 의한 이미지를 관찰할 수 있다.
전자 장치(101)는 전자 장치(102)에 결합될 수 있다. 전자 장치(101)는 전자 장치(102)와 유/무선으로 연결될 수 있다. 예를 들어, 전자 장치(101)는 전자 장치(102)와 USB에 근거하여 연결될 수 있으나, 이는 단순히 예시적인 것으로 양 장치(101,102) 사이의 데이터 송수신이 가능한 연결이면 제한이 없음을 당업자는 용이하게 이해할 것이다. 또 다른 실시 예에서는, 전자 장치(101)는 단순히 전자 장치(102)에 물리적으로 결합할 수도 있다.
도 4b는 일 실시 예에 의한 전자 장치의 표시를 도시한다.
도 4b와 같이, 전자 장치(101)는 디스플레이(160)에 좌안용 이미지(461) 및 우안용 이미지(462)를 표시할 수 있다. 좌안용 이미지(461)는 제 1 오브젝트(463)를 포함하며, 우안용 이미지(462)는 제 2 오브젝트(464)를 포함할 수 있다. 여기에서, 제 1 오브젝트(463)는 좌안(701)에 대응하며, 제 2 오브젝트(464)는 우안(702)에 대응될 수 있다. 도 4b에서, 좌안(701) 및 우안(702) 사이의 거리인 IPD(Interpupillary distance)는 D일 수 있다. 좌안용 이미지(461) 및 우안용 이미지(462) 각각은 사용자의 양안에 대응될 수 있으며, 사용자로 하여금 깊이감을 느끼면서 상을 관찰하도록 하는 영상일 수 있다. 본 발명의 다양한 실시예에서, 좌안용 이미지(461) 및 우안용 이미지(462)는 가상 현실 서비스를 위한 이미지일 수 있으며, 가상 현실 서비스를 위한 전체 화면 중 일부를 입체감이 느껴질 수 있도록 구성한 이미지일 수 있다. 예를 들어, 좌안용 이미지(461) 및 우안용 이미지(462)는 깊이감을 가지도록 상이하게 제작될 수 있으며, 사용자는 양안 각각에서 상이한 이미지를 관찰함에 따라 깊이감을 느낄 수 있다.
전자 장치(101)는, 제 1 오브젝트(463) 및 제 2 오브젝트(464)를 소정의 거리로 이격시켜 표시할 수 있다. 사용자는 좌안(701) 및 제 1 오브젝트(463)를 통과하는 직선과, 우안(702) 및 제 2 오브젝트(464)를 통과하는 직선의 교차점에 오브젝트 상(像)(467)이 존재하는 것으로 관찰할 수 있다. 예를 들어, 사용자는 사용자로부터 L1 떨어진 지점에 오브젝트 상이 존재하는 것으로 관찰할 수 있다.
한 실시 예에서, 전자 장치(101)는 고리(loop) 형태의 제 1 오브젝트(463) 및 제 2 오브젝트(464)를 표시할 수 있다.
도 4c는 사용자가 관찰하는 화면의 개념도를 도시한다. 도 4c에 도시된 바와 같이, 사용자는 고리 형태의 상(471)을 포함하는 화면을 관찰할 수 있다.
한편, 도 4a 내지 4c에서는 전자 장치(101)가 사용자 착용을 위한 전자 장치(102)와 분리되어 있는 것과 같이 도시되어 있지만, 이는 단순히 예시적인 것으로 전자 장치(101)는 전자 장치(102)와 일체형으로 구현될 수도 있다.
도 5a는 사용자의 HMD 착용을 설명하기 위한 사시도이다.
사용자는 하우징을 머리에 착용할 수 있다. 아울러, 전자 장치(101)는 전자 장치(102)와 결합할 수 있으며, 사용자는 전자 장치(101)의 디스플레이에 표시되는 이미지를 시청할 수 있다.
전자 장치(101)는 디스플레이의 좌우 부분 각각에 좌안용 이미지 및 우안용 이미지를 표시할 수 있다. 사용자의 좌안에는 좌안용 이미지가 입사될 수 있으며, 사용자의 우안에는 우안용 이미지가 입사될 수 있다. 예를 들어, 사용자의 양안 각각의 시야 전체에는 좌안용 이미지 및 우안용 이미지가 입사될 수 있다. 사용자는 양안에 입사되는 이미지를 관찰함으로써 가상 현실 서비스를 제공받을 수 있다. 한편, 본 발명의 또 다른 실시예에서는, 하나의 장치에서 좌안용 이미지 및 우안용 이미지가 모두 표시되지 않고, 두 개 이상의 디스플레이 각각에서 좌안용 이미지 및 우안용 이미지 각각을 표시할 수도 있다. 또는, 전자 장치는 좌안용 이미지 및 우안용 이미지가 아닌 하나의 이미지를 표시할 수도 있다.
전자 장치(101)에서 실행되는 가상 현실 어플리케이션은, 디스플레이에 양안용 이미지를 표시하도록 할 수 있다. 아울러, 가상 현실 어플리케이션은 사용자 또는 전자 장치(102)의 움직임(yaw, pitch, roll)에 따라 양안용 이미지를 변경 표시할 수 있다.
또는, 전자 장치(101)는 조이스틱, 마우스, 키보드, 핸들 모양의 입력 장치, 얼굴 방향 추적 장치 등의 다양한 입력 장치에 의하여 획득된 명령에 기초하여 양안용 이미지를 변경할 수도 있다. 이 경우의 사용자의 시선은, 실제 사용자 시선이라기 보다는 다양한 입력 장치에 의하여 지시(indicate)되는 방향일 수 있다.
전자 장치(102)는 사용자로부터 입력 버튼(421) 및 입력 패드(425) 중 적어도 하나로부터 명령을 입력받을 수 있다. 예를 들어, 전자 장치(101)는 전자 장치(102)로부터 초점 조정 명령 또는 조작 명령을 획득할 수 있다. 또 다른 실시 예에서, 사용자는 전자 장치(101)에 직접 초점 조정 명령 또는 조작 명령를 입력할 수도 있다.
예를 들어, 사용자가 입력 패드(425)의 제 1 방향으로의 스와이프 제스처를 입력하면, 전자 장치(101)는 이에 대응하는 조작 명령을 수행할 수 있다.
도 5b 내지 5e는 본 발명의 다양한 실시예에 따른 전자 장치의 화면 변경의 개념도를 도시한다.
도 5b에 도시된 바와 같이, 사용자는 전자 장치(101)를 착용한 상태에서 제 1 방향(511)을 응시할 수 있다. 전자 장치(101)는 사용자가 제 1 가상 화면(521)을 볼 수 있도록, 제 1 가상 화면(521)을 위한 좌안용 이미지 및 우안용 이미지를 표시할 수 있다. 제 1 가상 화면(521)은 가상 현실 서비스에서 설정된 전체 화면의 일부에 대응하는 화면일 수 있다. 한편, 사용자는 우측 방향(501)으로 고개를 돌릴 수 있으며, 전자 장치(101)는 우측 방향으로의 회전(501)을 센싱할 수 있다. 도 5c 내지 5e에 개시된 바와 같이, 사용자는 제 1 방향(511)으로부터, 제 2 방향(512), 제 3 방향(513) 및 제 4 방향(514)으로 고개를 회전시킬 수 있다. 전자 장치(101)는 제 1 방향(511)으로부터 제 4 방향(514)으로의 회전(501)을 센싱할 수 있다. 전자 장치(101)는 회전(510)에 대응하여 제 1 가상 화면(521)을 변경하여 표시할 수 있다. 예를 들어, 전자 장치(101)는 제 2 방향(512)에 대응하여 제 2 가상 화면(522)을 표시하고, 제 3 방향(513)에 대응하여 제 3 가상 화면(523)을 표시하고, 제 4 방향(514)에 대응하여 제 4 가상 화면(524)을 표시할 수 있다. 더욱 상세하게는, 전자 장치(101)는 각각의 가상 화면을 표시하기 위한 좌안용 이미지 및 우안용 이미지를 표시할 수 있다. 제 1 가상 화면(521) 내지 제 4 가상 화면(524) 각각은 가상 현실 서비스를 구성하는 전체 화면의 일부 화면일 수 있다. 도 5b 내지 5e에 도시된 바와 같이, 제 2 가상 화면(522)은 제 1 가상 화면(521)의 상대적으로 우측에 배치된 전경에 대한 화면일 수 있으며, 제 3 가상 화면(523)은 제 2 가상 화면(522)의 상대적으로 우측에 배치된 전경에 대한 화면일 수 있으며, 제 4 가상 화면(524)은 제 3 가상 화면(523)의 상대적으로 우측에 배치된 전경에 대한 화면일 수 있다. 이에 따라, 사용자는 우측으로 고개를 회전시킴에 따라, 상대적으로 우측의 전경을 순차적으로 볼 수 있다.
도 6a 및 6b는 본 발명의 다양한 실시예에 의한 전자 장치의 동작을 설명하기 위한 개념도들이다.
도 6a에 도시된 바와 같이, 전자 장치(101)는 파노라마(panorama)와 같은 전체 이미지(620), 즉 광각 이미지 중 제 1 부분(621)을 디스플레이에 표시할 수 있다. 예를 들어, 도 6b와 같이, 전자 장치(101)는 일부인 제 1 부분(621)에 대응하는 좌안용 이미지(631)를 디스플레이의 좌측 절반의 적어도 일부 상에 표시할 수 있으며, 제 1 부분(621)에 대응하는 우안용 이미지(632)를 디스플레이의 우측 절반의 적어도 일부 상에 표시할 수 있다. 이에 따라, 사용자는 제 1 부분(621)을 깊이감 있게 관찰할 수 있다.
사용자는 제 1 부분(621)을 시청하고 있는 도중에, 좌측 방향으로 고개를 회전할 수 있다. 이에 따라, 전자 장치(101)는 좌측 방향으로의 회전(612)을 센싱할 수 있다. 전자 장치(101)는 센싱된 좌측 방향으로의 회전(612)에 대응하여, 전체 이미지(620) 중 상대적으로 좌측 방향의 제 2 부분(622)에 대응하는 좌안용 이미지(641) 및 우안용 이미지(642)를 표시할 수 있다. 이에 따라, 사용자는 고개를 돌림에 따라서, 변경된 시선에 대응하는 부분을 관찰할 수 있어, 실제 현실과 같은 서비스를 제공받을 수 있다.
도 6a의 실시예에서는, 전자 장치(101)가 스틸(still) 이미지를 표시하는 것과 같이 도시되어 있지만, 이는 단순히 예시적인 것이다. 본 발명의 다양한 실시예에 의한 전자 장치(101)는 동영상 이미지를 표시할 수 있다. 전자 장치(101)는 동영상을 구성하는 복수 개의 프레임 각각에서, 사용자의 시선에 대응하는 부분들을 표시할 수 있다. 즉, 전자 장치(101)는 광각 이미지로 구성된 동영상을 저장 또는 스트리밍할 수 있으며, 동영상은 복수 개의 광각 이미지를 프레임으로서 포함할 수 있다.
한편, 전자 장치(101)가 회전(612)에 대응하여 신속하게 화면을 전환하기 위하여 전체 이미지(620) 모두를 디코딩하기 위하여서는, 상대적으로 큰 리소스가 요구된다. 이에 따라, 본 발명의 다양한 실시에에 의한 전자 장치(101)는 전체 이미지(620) 중 일부 부분만을 디코딩할 수 있다.
도 7은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다. 도 7의 실시예는 도 8a 및 8b를 참조하여 더욱 상세하게 설명하도록 한다. 도 8a는 본 발명의 다양한 실시예에 의한 동영상을 구성하는 프레임의 개념도를 도시한다. 도 8b는 본 발명의 다양한 실시예에 의한 전체 이미지 중의 디코딩 대상 부분을 설명하기 위한 개념도를 도시한다.
710 동작에서, 도 8a에서와 같이, 전자 장치(101)는 제 1 프레임(810)에서, 제 1 시간(t1)에서의 사용자 시선에 대응하는 제 1 부분(820)을 판단할 수 있다. 이하에서, 전자 장치(101)가 특정 동작을 수행할 수 있다는 것은, 전자 장치(101)의 프로세서(120)가 특정 동작을 수행하거나 또는 프로세서(120)가 다른 하드웨어로 하여금 특정 동작을 수행하도록 제어하는 것을 의미할 수도 있다. 여기에서, 제 1 프레임(810)의 "제1"의 서수는 동영상을 구성하는 복수 개의 프레임들을 구분하기 위한 숫자를 의미할 수 있다. 이하에서 기재되는 프레임 이전에 기재되는 서수들 또한 프레임들을 지칭하기 위한 것이다.
예를 들어, 전자 장치(101)는, 도 8a에서와 같이, 제 1 프레임(810) 및 제 2 프레임(850)을 미리 저장하거나 스트리밍(streaming)할 수 있다. 본 발명의 다양한 실시예에서, 제 1 프레임(810)은 I-프레임(infra frame)일 수 있으며, 제 2 프레임(850)은 P-프레임(previous frame 또는 predicted frame)일 수 있다. 여기에서, P-프레임은 이전 프레임 또는 이후 프레임을 이용하여 예측(predict)됨으로써 디코딩되는 프레임을 의미할 수 있다. 제 1 프레임(810)은 제 1 블록(811) 및 제 2 블록(812)을 포함할 수 있다. 제 2 프레임(850)은 제 3 블록(851) 및 제 4 블록(852)을 포함할 수 있다. 제 3 블록(851)은 예를 들어 제 1 프레임(810)의 제 1 블록(811)을 참조하여 예측될 수 있다. 아울러, 제 4 블록(852)은 예를 들어 제 1 프레임(810)의 제 2 블록(812)을 참조하여 예측될 수 있다.
전자 장치(101)는 현재 시간에서의 사용자의 시선을 판단할 수 있다. 예를 들어, 전자 장치(101)는 포함된 자이로 센서 또는 지자계 센서에서 센싱된 데이터를 이용하여 전자 장치(101)가 기울어진 방향에 대한 정보를 판단할 수 있다. 전자 장치(101)는 전자 장치(101)가 기울어진 방향에 대한 정보를 이용하여 사용자 시선을 판단할 수 있다. 이에 따라, 전자 장치(101)는 사용자의 시선에 대응하는 제 1 부분(820)을 판단할 수 있다. 전자 장치(101)는 사용자의 시선을 나타내기 위한 정량적인 수치(예를 들어, 전자 장치(101)가 기울어진 방향에 대한 수치 또는 센싱 데이터)와 표시 대상 부분과의 연관 정보를 미리 저장할 수 있다. 전자 장치(101)는 미리 저장한 연관 정보와 센싱 데이터를 비교함으로써, 사용자의 시선에 대응하는 제 1 부분(820)을 판단할 수 있다. 또 다른 실시예에서, 전자 장치(101)는 특정 어플리케이션이 실행되면, 디폴트(default)된 부분을 표시하도록 설정될 수도 있다. 즉, 전자 장치(101)는, 최초 전자 장치(101)가 기울어진 방향과는 무관하게, 제작자에 의하여 설정된 부분을 표시할 수도 있다.
한편, 사용자는 전자 장치(101)를 착용한 채로 우측 하방(801)을 응시하도록 고개를 돌릴 수 있다. 이에 따라, 전자 장치(101)가 기울어진 방향이 변경될 수 있으며, 전자 장치(101)는 변경된 기울어진 방향에 기초하여 제 2 프레임(850)에서 사용자 시선에 대응하는 제 3 부분(860)을 판단할 수 있다. 또는, 전자 장치(101)는 전자 장치(101)의 움직임 정보(예를 들어, 각가속도, 각속도, 선형가속도, 선형속도 등)를 이용하여 제 2 프레임(850)에서 사용자 시선에 대응하는 제 3 부분(860)을 판단할 수 있다. 또는, 전자 장치(101)는 외부 경관을 촬영할 수도 있으며, 촬영 결과를 이용하여 전자 장치(101)의 움직임 정보를 판단할 수도 있다.
이 경우, 전자 장치(101)가 제 3 부분(860)을 표시하기 위하여서는, 제 3 부분(860)에 포함되는 제 4 블록(852)을 예측하여야 한다. 이에 따라, 전자 장치(101)가 제 4 블록(852)을 예측하기 위한 참조 블록인 제 2 블록(812)을 미리 디코딩하는 것이 선행될 것이 요구된다. 만약, 전자 장치(101)가 사용자의 시선에 대응하는 제 1 부분(820)만을 디코딩하는 경우에는, 전자 장치(101)가 제 2 프레임(850)에서의 제 4 블록(852)을 예측하기 위한 참조 블록이 존재하지 않아, 제 4 블록(852)에 대한 정확한 디코딩이 수행될 수 없다. 아울러, 전자 장치(101)가 제 1 부분(820)보다 큰 부분(870)을 디코딩한다 하더라도 제 4 블록(852)을 예측할 수 없다. 이에 따라, 전자 장치(101)는 현재의 사용자 시선에 대응하는 제 1 부분(820)보다 더 크거나 같은 부분, 즉 도 8b에서의 제 2 부분(830)을 디코딩함으로써, 이후의 프레임에서의 사용자 시선에 대응하는 부분에서의 예측을 수행할 수 있다. 본 발명의 다양한 실시예에서, 전자 장치(101)는 HEVC(High Efficiency Video Codec) 타일 구조와 같은 비디오 코덱을 이용하여 전체 이미지가 아닌 제 2 부분(830), 즉 디코딩 대상 부분만을 디코딩할 수 있다. 예를 들어, 전자 장치(101)는 제 1 시간에서 우측 하방으로의 가속도를 검출할 수 있으며, 이에 따라 제 2 시간, 제 3 시간, 제 4 시간에서도 사용자 시선이 점차 우측 하방으로 변경될 것을 예측할 수 있다. 이에 따라, 전자 장치(101)는 미래 사용자 시선에 대응하는 부분들(821,822,823,824,825)을 현재 사용자 시선에 대응하는 제 1 부분(820)의 상대적인 우측 하방의 영역들로 판단할 수 있다. 미래 사용자 시선은, 제 1 프레임(810) 이후의 프레임들에 대응하는 사용자 시선을 의미할 수 있다.
상술한 바와 같이, 720 동작에서, 전자 장치(101)는 제 1 부분(820)을 포함하는, 제 1 부분(820)보다 크거나 같은 제 2 부분(830)을 디코딩할 수 있다. 제 2 부분(830)은 제 2 블록(812)을 포함할 수 있다. 예를 들어, 전자 장치(101)는 도 8b에서와 같이, 현재의 사용자 시선에 대응하는 제 1 부분(820)을 포함하는 제 2 부분(830)을 디코딩할 수 있다. 본 발명의 다양한 실시예에서, 전자 장치(101)는, 미래의 사용자 시선을 예측하고, 이를 이용하여 디코딩 대상 부분인 제 2 부분(830)을 결정할 수 있다. 여기에서, 미래의 사용자 시선은, 현재 시간(t1)을 기준으로 이후의 프레임들에 대한 시간에서의 표시될 부분에 대응될 수 있다. 예를 들어, 제 2 시간(t2)에서의 제 3 부분(860)에 대응하는 시선 방향을 미래의 사용자 시선이라 명명할 수 있으며, 전자 장치(101)는 미래의 사용자 시선, 또는 미래의 사용자 시선에 대응하는 부분, 즉 제 3 부분(860)을 다양한 방법으로 예측할 수 있다. 즉, 본 문서에서의 현재 또는 미래의 용어는, 프레임 순서에 기반하여 이용될 수 있다.
예를 들어, 도 8b에서와 같이, 전자 장치(101)는, 현재의 사용자 시선에 대응하는 부분(820)과 미래의 사용자 시선에 대응하는 부분들(821 내지 825)을 포함하는 제 2 부분(830)을 디코딩 대상 부분으로 결정할 수 있다. 더욱 상세하게, 전자 장치(101)는, 현재 시간에서 측정된 전자 장치(101)의 움직임 정보를 기초로 미래의 전자 장치(101)의 기울어진 상태를 예측할 수 있다. 전자 장치(101)는, 예를 들어, 제 2 시간, 제 3 시간, 제 4 시간 등등 각각에서의 전자 장치(101)의 기울어진 상태들 각각을 예측할 수 있으며, 기울어진 상태들 각각에 대응하는 부분을 미래의 사용자 시선에 대응하는 부분들(821 내지 825)로서 결정할 수 있다.
또는, 전자 장치(101)는, 사용자의 행동 습관 등과 같은 사용자 정보를 이용하여 디코딩 대상 부분을 결정할 수도 있다. 예를 들어, 전자 자치(101)는 사용자가 아래쪽을 자주 응시한다는 사용자 행동 습관을 미리 저장할 수도 있으며, 이에 따라 현재 사용자 시선을 기준으로 아래쪽 부분을 미래 사용자 시선으로 예측할 수도 있다. 아울러, 전자 장치(101)는, 컨텐츠의 메타 데이터와 같은 컨텐츠의 내용과 연관된 정보를 이용하여 디코딩 대상 부분을 결정할 수도 있다. 미래의 사용자 시선을 예측하는 다양한 방법에 대하여서는 더욱 상세하게 후술하도록 한다. 730 동작에서, 전자 장치(101)는 제 1 부분(820)을 표시할 수 있다. 뿐만 아니라, 전자 장치(101)는 사용자 시선의 높이, 사용자 시선의 방향, 사용자 시선 방향의 변화 속도, 사용자 시선 방향의 변화 가속도, 사용자 움직임의 속도, 사용자 움직임의 가속도, 사용자 움직임의 방향 중 적어도 하나를 이용하여 디코딩 대상 부분을 결정할 수도 있다. 아울러, 전자 장치(101)는, 영상의 중요도, 영상 내 객체의 중요도, 스트리밍 시의 데이터 대역폭, 복호화 복잡도, 전력 소모량, 출력 영상의 품질, 사용자 상태 정보, 이전 복호화 영상의 시선 범위 예측 오차 중 적어도 하나에 기초하여 디코딩 대상 부분을 결정할 수도 있다. 예를 들어, 사용자 상태 정보는, 전자 장치(101)내의 각종 센서로부터 얻어진 데이터가 누적되어 획득된 정보일 수 있으며, 하나의 실시예에서는 사용자 시선 정보만으로 구성될 수도 있으며, 또 다른 실시예에서는 사용자 시선 정보 이외의 다른 정보도 추가적으로 포함될 수도 있다.
본 발명의 다양한 실시예에서, 전자 장치(101)는 디코딩이 수행되는 시간과 디코딩된 이미지가 실제로 표시되는 시간 사이의 딜레이에 기초하여 디코딩 대상 부분을 결정할 수 있다. 예를 들어, 전자 장치(101)는 디코딩된 이미지가 표시되는 시간에서의 사용자의 시선을, 미래 사용자 시선으로서 예측할 수 있으며, 미래 사용자 시선에 대응하는 디코딩 대상 부분을 결정할 수 있다. 아울러, 전자 장치(101)는 추가적으로 움직임 센서로부터 센싱 데이터가 수신되는 딜레이를 이용하여 디코딩 대상 부분을 결정할 수도 있다.
740 동작에서, 전자 장치(101)는 제 2 프레임(850)에서, 제 2 시간(t2)에서의 사용자 시선에 대응하는 제 3 부분(860)을 판단할 수 있다. 750 동작에서, 전자 장치(101)는 제 2 부분(830) 중 적어도 하나의 블록을 이용하여, 제 3 부분(860)을 포함하는 제 3 부분(860)보다 크거나 같은 제 4 부분(미도시)을 디코딩할 수 있다. 이때, 전자 장치(101)는 제 3 부분(860)의 제 4 블록(852)을 제 1 프레임(810)의 제 2 블록(812)을 이용하여 예측할 수 있다. 전자 장치(101)는 인터 예측(inter-prediction)을 수행할 수 있다. 제 2 블록(812)은 제 1 프레임(810)의 디코딩 대상 부분인 제 2 부분(830)에 포함되어 미리 디코딩될 수 있다. 이에 따라, 전자 장치(101)는 디코딩된 제 2 블록(812)을 이용함으로써 제 4 블록(852)을 예측할 수 있다. 한편, 전자 장치(101)는 제 2 프레임(850) 이후의 I-프레임을 함께 참조하여 예측을 수행할 수도 있다. 본 발명의 다양한 실시예에서, 전자 장치(101)는, 추가적으로 예측에 이용되지 않는 비참조 프레임에 대하여서는, 사용자의 시선에 대응하는 제 3 부분(860)만을 디코딩할 수도 있다.
760 동작에서, 전자 장치(101)는 제 3 부분(860)을 표시할 수 있다. 이에 따라, 전자 장치(101)는 전체 이미지 중 일부 부분만을 디코딩함으로써, 전체 이미지의 모든 블록을 디코딩하는 것에 비하여 적은 리소스로 디코딩을 수행할 수 있다. 아울러, 전자 장치(101)가 미래의 사용자 시선을 예측하여 디코딩 대상 부분을 결정함에 따라서, 예측을 위한 참조 블록(예를 들어, 제 1 프레임(810)의 제 2 블록(812))이 디코딩에서 제외되지 않을 수 있다.
본 발명의 다양한 실시예에 따른 전자 장치(101)는 사용자의 시선에 대응하여 이미지를 표시하는 동작과 실시간으로 부분 디코딩을 수행할 수 있다. 또는, 전자 장치(101)는 동영상의 프레임들에 대하여 미리 부분 디코딩을 수행하여 저장할 수 있으며, 추후에 사용자의 시선에 대응하는 화면을 표시할 수도 있다.
전자 장치(101)는 제 2 프레임(850)의 이후의 프레임에 대하여서도 부분 디코딩을 수행할 수 있다. 이 경우, 전자 장치(101)는 제 2 프레임(850)에서의 사용자의 시선에 대응하는 부분(860)을 기준으로 미래의 사용자 시선에 대응하는 부분을 예측하여, 부분 디코딩을 수행할 수 있다. 한편, 전자 장치(101)는 프레임 중 IDR(independent decoding refresh) 픽처가 등장하면, 기존의 사용자 시선의 예측 정보를 폐기하고, 새롭게 사용자 시선의 예측을 시작할 수 있다.
한편, 도 8의 실시예에서는, P 픽처에 대한 예측에 대하여 설명하였지만, 이는 단순히 예시적인 것으로, 다양한 실시예에 의한 전자 장치(101)는 B 픽처에 대하여서도 예측을 수행할 수도 있다. 한편, 도 8의 실시예에서, I 픽처, P 픽처, B 픽처는 단순히 설명의 예시를 위한 것일 뿐이며, 특정 프레임을 디코딩하는데, 이전 프레임이 참조될 수 있는 기술이라면 제한이 없음을 당업자는 용이하게 이해할 수 있을 것이다. 또한, 상술한 실시예에서는, 제 2 프레임(850)이 이전의 하나의 제 1 프레임(810)을 참조하여 특정 블록이 예측되는 것과 같이 도시되어 있지만, 이는 하나의 예시이며, 다양한 실시예에 의한 전자 장치(101)는 제 2 프레임(850)의 참조를 위하여 제 1 프레임(810)과, 제 1 프레임(810) 이전의 프레임, 즉 복수 개의 참조 프레임을 이용하여 제 2 프레임(850)의 블록을 예측할 수도 있다.
도 9는 본 발명의 다양한 실시예에 따른 미래 사용자 시선을 예측하는 방법을 설명하기 위한 흐름도를 도시한다. 도 9의 실시예는 도 10을 참조하여 더욱 상세하게 설명하도록 한다. 도 10은 본 발명의 다양한 실시예에 따른 미래 사용자 시선의 예측 과정을 설명하기 위한 개념도를 도시한다.
910 동작에서, 전자 장치(101)는 현재 사용자 시선에 대응하는 표시 부분을 판단할 수 있다. 예를 들어, 도 10을 참조하면, 전자 장치(101)는, 제 1 시간(t1)에서 제 1 방향(1001)(θ1,φ1)을 향할 수 있다. 전자 장치(101)는, 예를 들어 자이로 센서의 센싱 데이터, 지자계 센서의 센싱 데이터 등을 이용하여 전자 장치(101)의 기울어짐 정보를 판단할 수 있으며, 이에 따라, 전자 장치(101)가 향하는 방향의 각도 정보(θ1,φ1)를 판단할 수 있다. 전자 장치(101)는 판단한 각도 정보(θ1,φ1)에 대응하는 표시 부분을 판단할 수 있다. 또는, 전자 장치(101)는 특정 어플리케이션 시작 시에, 디폴트된 화면을 표시할 수도 있다.
920 동작에서, 전자 장치(101)는 모션 센서로부터 센싱 데이터를 획득할 수 있다. 예를 들어, 사용자는 전자 장치(101)를 머리에 착용한 채 고개를 돌릴 수 있으며, 이에 따라 전자 장치(101)가 제 2 시간(t2)에서 제 2 방향(1002)(θ2,φ2)을 향할 수 있다. 전자 장치(101)는 센싱 데이터를 이용하여 기울어짐 정보, 예를 들어 전자 장치(101)가 향하는 방향의 각도 정보(θ2,φ2)를 판단할 수 있다. 930 동작에서, 전자 장치(101)는 획득된 센싱 데이터를 이용하여 미래 사용자 시선을 예측할 수 있다. 예를 들어, 전자 장치(101)는 제 1 방향(1001) 및 제 2 방향(1002) 사이의 차이에 기초하여, 제 3 시간에서의 사용자 시선을 판단할 수 있다. 아울러, 전자 장치(101)는 이후의 시간에서의 사용자 시선 또한 판단할 수 있다. 본 발명의 다양한 실시에에서, 전자 장치(101)는 측정된 시간 동안의 데이터를 내삽 또는 외삽함으로써, 측정되지 않은 미래 시간에서의 사용자 시선을 판단할 수 있다. 전자 장치(101)는 다양한 인터폴레이션(interpolation) 방법을 적용함으로써, 측정된 데이터를 기초로한 미래 시간에서의 사용자 시선을 판단할 수 있다. 또는, 전자 장치(101)는 센서에서 포함된 선형 센서 또는 자이로 센서에서 측정된 가속도, 각가속도, 속도, 또는 각속도 정보에 기초하여 미래 사용자 시선을 예측할 수도 있다.
940 동작에서, 전자 장치(101)는 현재 사용자 시선을 기준으로, 미래 사용자 시선에 대응하는 디코딩 대상 부분을 결정할 수 있다. 950 동작에서, 전자 장치(101)는 디코딩 대상 부분을 디코딩할 수 있다. 한편, 전자 장치(101)는 미래 사용자 시선에 대응하는 부분뿐만 아니라 미래 사용자 시선을 포함하는 더 크거나 같은 부분을 디코딩 대상 부분으로 판단할 수 있다. 예를 들어, 도 8b에서와 같이, 전자 장치(101)는 미래 사용자 시선에 대응하는 부분(821 내지 825)를 포함하는 더 크거나 같은 부분(830)을 디코딩 대상 부분으로 판단할 수 있다. 전자 장치(101)는 미래 사용자 시선에 대응하는 부분(821 내지 825)의 경계선을 기준으로 기설정된 픽셀만큼을 더 포함하는 부분을 디코딩 대상 부분으로 판단할 수 있다. 추가 픽셀의 개수는 기설정된 개수를 가지거나 또는 미래 사용자 시선에 대한 신뢰도에 따라 가변적일 수도 있으며, 이에 대하여서는 더욱 상세하게 후술하도록 한다. 한편, 전자 장치(101)는 결정된 디코딩 대상의 블록 중 적어도 하나를 제외시키거나, 블록을 추가할 수도 있다.
도 11은 본 발명의 다양한 실시예에 따른 미래 사용자 시선을 예측하는 방법을 설명하기 위한 흐름도를 도시한다. 도 11의 실시예는 도 12를 참조하여 더욱 상세하게 설명하도록 한다. 도 12는 본 발명의 다양한 실시예에 따른 미래 사용자 시선의 예측 과정을 설명하기 위한 개념도를 도시한다.
1110 동작에서, 전자 장치(101)는 현재 사용자 시선에 대응하는 표시 부분을 판단할 수 있다. 예를 들어, 도 12와 같이, 동영상은 제 1 프레임(1210) 및 제 2 프레임(1220)을 포함할 수 있고, 제 1 프레임(1210)은 제 1 블록(1211), 제 2 블록(1212) 및 제 3 블록(1213)을 포함하고, 제 2 프레임(1220)은 제 4 블록(1221), 제 5 블록(1222) 및 제 6 블록(1223)을 포함할 수 있다. 전자 장치(101)는 제 1 프레임(1210)에서의 제 1 블록(1211)을 포함하는 제 1 부분(1240)을 현재 사용자 시선에 대응하는 표시 부분을 판단할 수 있다. 상술한 바와 같이, 전자 장치(101)는 제 2 프레임(1220)의 블록을 제 1 프레임(1210)의 블록을 이용하여 예측할 수 있다. 예를 들어, 제 5 블록(1222)은 제 2 블록(1212)을 참조하여 예측될 수 있으며, 제 6 블록(1223)은 제 3 블록(1213)을 참조하여 예측될 수 있다.
1120 동작에서, 전자 장치(101)는 컨텐츠 내용과 관련된 정보에 기초하여 미래 사용자 시선을 예측할 수 있다. 예를 들어, 제 2 프레임(1220)의 제 2 블록(1222)에 신규 오브젝트가 포함될 수 있다. 또는, 동영상은 제 2 프레임(1220)의 제 3 블록(1213)에 대응하는 위치에서 특정 사운드가 재생되도록 제작될 수 있다. 본 발명의 다양한 실시예에 의한 동영상은 사운드가 특정 방향에서부터 들리게 하도록 제작될 수 있다. 이에 따라, 사용자가 제 2 프레임(1220)이 재생되는 시점에서 신규 오브젝트가 배치된 부분을 응시하거나 또는 특정 사운드가 들리는 방향을 응시할 가능성이 높다. 전자 장치(101)는 사용자가 응시할 가능성이 높은 제 2 블록(1212)에 대응되는 부분(1241)과 제 3 블록(1213)에 대응되는 부분(1243)을 미래 사용자 시선에 대응하는 부분으로 예측할 수 있다. 본 발명의 다양한 실시예에서, 동영상은 상술한 바와 같은 사용자의 시선 변화가 예상되는 프레임 및 위치 정보를 메타 정보로서 포함할 수 있다. 전자 장치(101)는 메타 정보를 이용하여 미래 사용자 시선을 예측할 수 있다.
1130 동작에서, 전자 장치(101) 현재 사용자 시선에 대응하는 부분을 기준으로, 미래 사용자 시선에 대응하는 디코딩 대상 부분을 결정할 수 있다. 예를 들어, 전자 장치(101)는 도 12에서와 같이, 현재 시선에 대응하는 부분(1240), 미래 사용자 시선에 대응하는 부분(1241,1242)을 포함하는 부분(1250)을 디코딩 대상 부분으로 결정할 수 있다. 1140 동작에서, 전자 장치(101)는 디코딩 대상 부분을 디코딩할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치(101)는 도 9에서와 같은 모션 센서로부터의 센싱 데이터 및 도 11에서와 같은 컨텐츠의 내용과 관련된 정보를 함께 이용하여 미래 사용자 시선을 예측할 수도 있다.
도 13은 본 발명의 다양한 실시예에 따른 인트라 예측 방법을 설명하기 위한 흐름도를 도시한다. 도 13의 실시예는 도 14를 참조하여 더욱 상세하게 설명하도록 한다. 도 14는 본 발명의 다양한 실시예에 따른 인트라 예측 과정을 설명하기 위한 개념도를 도시한다.
1310 동작에서, 도 14에서와 같이, 전자 장치(101)는 제 1 프레임(1410)에서, 사용자 시선에 대응하는 제 1 부분(1420)을 판단할 수 있다. 1320 동작에서, 전자 장치(101)는 제 1 부분(1420)을 포함하는, 제 1 부분보다 크거나 같은 제 2 부분(1430)의 제 1 블록(1415)을 디코딩할 수 있다.
1330 동작에서, 전자 장치(101)는 제 1 부분(1420)의 블록(1411,1412,1413,1414)을 단독으로 디코딩하거나 또는 제 2 부분(1430)의 제 1 블록(1415)에 기초한 예측을 수행하여 디코딩할 수 있다. 예를 들어, 전자 장치(101)는 제 1 부분(1420)의 블록(1411,1412,1413)을 단독으로 디코딩할 수 있다. 아울어 전자 장치(101)는 제 1 부분(1420)의 블록(1414)을 제 1 부분(1420)의 블록(1413) 또는 제 2 부분(1430)의 블록(1415)을 이용해서 예측할 수 있다. 다양한 실시예에 의한 전자 장치(101)는 디코딩 대상 블록의 인접 샘플 값으로부터 예측을 수행할 뿐만 아니라, SCC(screen content coding) 확장(SSC extension)과 같은 인트라 블록 카피(intra block copy), 또는 VP9 등에 포함된 콤바인드 예측(Combined Prediction), 즉 둘 이상의 예측을 가중치를 두어 결합하는 방식으로도 예측을 수행할 수도 있다.
만약, 전자 장치(101)가 사용자의 시선에 대응하는 제 1 부분(1420)만을 디코딩한다면, 디코딩 과정에서 블록(1414)을 예측하기 위한 참조 블록인 블록(1415)이 미리 디코딩되어 있지 않음에 따라, 블록(1414)의 예측이 불가능할 수 있다. 본 발명의 다양한 실시예에 의한 전자 장치(101)는 사용자 시선에 대응하는 부분보다 더 크거나 같은 부분에 대하여 디코딩을 수행함에 따라서, 사용자 시선에 대응하는 부분(1420) 내의 블록들에 대한 정확한 디코딩이 가능할 수 있다.
1340 동작에서, 전자 장치(101)는 제 2 부분의 모든 블록이 디코딩되는지 판단할 수 있으며, 모든 블록이 디코딩되면, 1350 동작에서, 전자 장치(101)는 디코딩된 데이터를 저장할 수 있다.
상술한 바에 따라서, 본 발명의 다양한 실시예에 의한 전자 장치(101)는, 사용자 시선에 대응하는 부분보다 더 크거나 같은 부분을 디코딩함에 따라서, 인트라 예측을 수행하는 경우에도 정확한 디코딩을 수행할 수 있다.
도 15는 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
1510 동작에서, 전자 장치(101)는 제 1 프레임에서, 사용자 시선에 대응하는 제 1 부분을 판단할 수 있다. 1520 동작에서, 전자 장치(101)는 제 1 부분을 포함하는, 제 1 부분보다 크거나 같은 제 2 부분에 대하여, 인트라 예측 방식을 이용하여 제 2 부분을 디코딩할 수 있다. 예를 들어, 전자 장치(101)는 도 13에서와 같은 과정을 이용하여 하나의 프레임 내에서의 인트라 예측에 기초한 부분 디코딩을 수행할 수 있다.
1530 동작에서, 전자 장치(101)는 제 2 프레임에서, 사용자 시선에 대응하는 제 3 부분을 판단할 수 있다. 1540 동작에서, 전자 장치(101)는 제 2 부분을 이용하여, 제 2 프레임에서 제 3 부분을 포함하는, 제 3 부분보다 크거나 같은 제 4 부분에 대하여 인터 예측 방식을 이용하여 제 4 부분을 디코딩할 수 있다. 예를 들어, 전자 장치(101)는 도 7에서와 같은 인터 예측에 기초한 부분 디코딩을 수행할 수 있다. 1550 동작에서, 전자 장치(101)는 디코딩 데이터를 저장할 수 있으며, 사용자 시선의 변경에 대응하여 디코딩 데이터를 표시할 수 있다. 즉, 전자 장치(101)는 인터 예측 및 인트라 예측을 모두 이용하여 부분 디코딩을 수행할 수도 있다. 본 발명의 다양한 실시예에서, 전자 장치(101)는 인트라 예측의 rate-distortion의 비용(cost)을 최소화하도록 화면 내 예측 모드를 결정하고, 이를 이용하여 인트라 예측을 수행할 수 있다. 또는, 전자 장치(101)는 주변 블록의 움직임 벡터를 이용하여 현재 블록의 움직임 벡터를 결정하고, 이를 이용하여 인터 예측을 수행할 수도 있다.
도 16은 본 발명의 다양한 실시예에 따른 인코딩을 수행하는 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다. 도 16에서의 제 1 전자 장치(1601)는 인코딩을 수행할 수 있으며, 제 2 전자 장치(1602)는 디코딩을 수행할 수 있다.
1610 동작에서, 제 2 전자 장치(1602)는 미래 사용자 시선을 예측할 수 있다. 1620 동작에서, 제 2 전자 장치(1602)는 미래 사용자 시선을 제 1 전자 장치(1601)로 송신할 수 있다. 본 발명의 다양한 실시예에서, 제 2 전자 장치(1602)는 모션 센서에서 센싱된 센싱 데이터를 제 1 전자 장치(1601)로 송신할 수도 있으며, 이 경우에는 제 1 전자 장치(1601)가 수신한 센싱 데이터를 이용하여 미래 사용자 시선을 예측할 수도 있다.
1630 동작에서, 제 1 전자 장치(1601)는 복수 개의 프레임 각각을 부분 인코딩할 수 있다. 제 1 전자 장치(1601)는 미래 사용자 시선에 대응하는 부분보다 더 크거나 같은 부분을 인코딩 대상 부분으로 판단할 수 있으며, 부분 인코딩을 수행할 수 있다. 제 1 전자 장치(1601)는 상술한 디코딩 대상 부분을 판단하는 과정을 이용하여 인코딩 대상 부분을 결정할 수 있다. 1640 동작에서, 제 1 전자 장치(1601) 부분 인코딩된 데이터를 송신할 수 있다. 1650 동작에서, 제 2 전자 장치(1602)는 수신된 인코딩된 데이터를 디코딩할 수 있다. 제 2 전자 장치(1602)는 수신된 인코딩된 데이터 전체를 디코딩하거나 또는 수신된 인코딩된 데이터의 일부만을 디코딩할 수도 있다. 1660 동작에서, 제 2 전자 장치(1602)는 사용자 시선에 대응하여 이미지 표시할 수 있다.
도 17은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다. 도 17의 실시예는 도 18을 참조하여 더욱 상세하게 설명하도록 한다. 도 18은 본 발명의 다양한 실시예에 따른 미래 사용자 시선에 대한 신뢰도에 따른 디코딩 대상 부분을 설명하기 위한 개념도를 도시한다.
1710 동작에서, 전자 장치(101)는 미래 사용자 시선을 예측할 수 있다. 1720 동작에서, 전자 장치(101)는 미래 사용자 시선에 대한 신뢰도를 판단할 수 있다. 전자 장치(101)는 센싱된 데이터에 기초한 예측된 미래 사용자 시선에 대하여, 다양한 종래에 존재하는 신뢰도 계산 알고리즘을 적용할 수 있다. 예를 들어, 전자 장치(101)는 예측된 사용자 시선에 대한 정보와, 실제의 사용자 시선의 정보를 비교함으로써 신뢰도를 연산할 수 있다. 또는, 전자 장치(101)는 예측된 사용자 시선에 대한 정보를 이용하여 신뢰도를 연산할 수도 있다. 전자 장치(101)는 알고리즘 적용 결과에 기초하여 미래 사용자 시선에 대한 신뢰도를 판단할 수 있다.
1730 동작에서, 전자 장치(101)는 판단된 신뢰도에 기초하여 디코딩 대상 부분을 결정할 수 있다. 예를 들어, 전자 장치(101)는 도 18에서와 같이, 현재 사용자 시점에 대응하는 부분(1811)을 기준으로 하는 미래 사용자 시점에 대응하는 부분(1812 내지 1814)을 예측할 수 있다. 미래 사용자 시선에 대한 신뢰도가 상대적으로 높은 것으로 판단되면, 전자 장치(101)는 미래 사용자 시점에 대응하는 부분(1812 내지 1814)보다 상대적으로 작은 부분을 더한 부분(1820)을 디코딩 대상 부분으로 결정할 수 있다. 또는, 미래 사용자 시선에 대한 신뢰도가 상대적으로 낮은 것으로 판단되면, 전자 장치(101)는 미래 사용자 시점에 대응하는 부분(1812 내지 1814)보다 상대적으로 크거나 같은 부분을 더한 부분(1830)을 디코딩 대상 부분으로 결정할 수 있다. 전자 장치(101)는 미래 사용자 시선에 대한 신뢰도와 디코딩 대상 부분으로서 추가할 부분의 크기 및 방향 중 적어도 하나의 연관 정보를 저장할 수 있다. 전자 장치(101)는 판단된 미래 사용자 시선에 대한 신뢰도와 연관 정보를 비교함으로써, 추가 부분을 결정할 수 있고, 미래 사용자 시선에 대응하는 부분과 추가 부분을 이용하여 디코딩 대상 부분을 판단할 수 있다.
도 19는 디코딩 오버헤드(decoding overhead)를 설명하기 위한 개념도를 도시한다. 도 19에 도시된 바와 같이, 전자 장치(101)는, 예를 들어 미래 사용자 시선을 이용하여 디코딩 대상 부분(1910)을 결정할 수 있다. 한편, 전자 장치(101)가 블록 사이즈를 2 × 2 크기로 설정한 경우에는, 디코딩 대상 부분(1910)을 초과하는 오버헤드 부분(1901,1902)에 대하여서도 디코딩을 수행하여야 한다. 본 발명의 다양한 실시예에 의한 전자 장치(101)는 디코딩의 블록 사이즈를 가변적으로 설정함으로써, 디코딩 오버헤드의 발생을 억제할 수 있다.
도 20은 본 발명의 다양한 실시예에 따른 블록 사이즈의 가변적인 설정을 설명하기 위한 개념도를 도시한다. 도 20을 참조하면, 전자 장치(101)는 디코딩을 수행할 제 1 크기의 블록(2001,2005,2006), 제 2 크기의 블록(2002) 및 제 3 크기의 블록(2003,2004,2007,2008,2009)의 크기를 상이하게 설정할 수도 있다. 전자 장치(101)는 디코딩 대상 부분을 크기가 상이한 정방형 블록으로 분할할 수 있으며, 이에 따라 디코딩 오버헤드의 발생이 억제될 수 있다. 또는, 전자 장치(101)는 인코딩 수행시에 블록의 크기를 상이하게 설정할 수도 있다.
본 발명의 다양한 실시예에서, 전자 장치(101)는 미래 사용자 시선에 대한 정확도에 기초하여 블록의 크기를 상이하게 설정할 수도 있다. 예를 들어, 전자 장치(101)는 상대적으로 높은 신뢰도를 가지는 미래 사용자 시선에 대응하는 부분에 대하여서는 더 크거나 같은 크기의 블록을 설정할 수 있으며, 상대적으로 낮은 신뢰도를 가지는 미래 사용자 시선에 대응하는 부분에 대하여서는 더 작은 크기의 블록을 설정할 수 있다. 예를 들어, 전자 장치(101)는 미래 사용자 시선이 서로 겹치는 부분에 대하여서는 상대적으로 크거나 같은 크기의 블록을 설정할 수 있으며, 미래 사용자 시선이 겹치지 않는 부분에 대하여서는 상대적으로 작은 크기의 블록을 설정할 수 있다.
도 21은 본 발명의 다양한 실시예에 의한 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다. 도 21의 실시예에서는, 디코더(2101) 및 재생기(2102)가 독립적으로 동작할 수 있다. 여기에서, 디코더(2101) 및 재생기(2102)는 하드웨어적으로 분리될 수 있으며, 이 경우에는, 디코더(2101) 및 재생기(2102) 사이에서 유선 또는 무선을 통한 통신이 수행될 수 있다. 또 다른 실시에에서, 디코더(2101) 및 재생기(2102)는 하나의 전자 장치에 포함될 수도 있다.
2111 동작에서, 재생기(2102)는 센서 정보를 획득할 수 있다. 2113 동작에서, 재생기(2102)는 현재의 사용자의 시선 방향을 결정할 수 있다. 재생기(2102)는, 2115 동작에서, 센서 정보를 이용하여 사용자 상태를 예측할 수 있다. 사용자 상태 정보는, 미래의 사용자의 시선 방향과 연관된 정보로, 예를 들어 사용자의 움직임에 대한 정보일 수 있다. 사용자 상태 정보는, 누적된 센서 정보에 기초하여 획득될 수 있으며, 사용자 시선 방향만으로 구성될 수도 있으며, 또는 다른 정보를 더 포함하도록 구현될 수도 있다. 2119 동작에서, 재생기(2102)는 현재의 사용자 시선을 기준으로, 사용자 상태 정보에 기초하여 미래의 사용자 시선을 예측할 수 있으며, 2121 동작에서, 재생기(2102)는, 미래의 사용자 시선에 기초하여 시선 범위, 즉 전체 이미지에서의 미래의 사용자 시선에 대응되는 부분을 결정할 수 있다. 한편, 본 발명의 다양한 실시예에서, 디코더(2101)가 미래의 사용자 시선을 현재의 사용자 시선을 기준으로 예측하고 시선 범위를 결정할 수도 있다.
2123 동작에서, 디코더(2101)는 부분 디코딩을 수행할지 여부를 판단할 수 있다. 부분 디코딩이 수행되지 않는 것으로 판단되면, 2127 동작에서, 디코더(2101)는 이미지내 모든 블록을 디코딩할 수 있다. 한편, 부분 디코딩이 수행되는 것으로 판단되면, 2125 동작에서 디코더(2101)는 시선 범위를 이용하여 디코딩 부분을 결정할 수 있다. 2127 동작에서, 디코더(2101)는 결정된 디코딩 부분에 대하여 디코딩을 수행할 수 있다. 2131 동작에서, 디코더(2101)는 디코딩된 이미지를 저장할 수 있다. 디코더(2101)는 이미 저장된 디코딩된 이미지를 참조하여 부분 디코딩을 수행할 수도 있다. 2133 동작에서, 디코더(2101)는 출력 이미지를 결정할 수 있으며, 2137 동작에서 디코더(2101)는 출력 이미지를 재생기(2102)를 송신할 수 있다. 재생기(2102)는, 2135 동작에서 출력 영역을 결정할 수 있으며, 2139 동작에서 이미지를 출력할 수 있다.
도 22는 본 발명의 다양한 실시예에 따른 인코더 및 재생기의 동작을 설명하기 위한 흐름도를 도시한다. 도 22의 동작 중, 도 21에서 설명이 된 동작들에 대한 상세한 설명은 생략하도록 한다.
도 22의 실시예에서는, 인코더(2201) 및 재생기(2102)가 독립적으로 동작할 수 있다. 여기에서, 인코더(2201) 및 재생기(2102)는 하드웨어적으로 분리될 수 있으며, 이 경우에는, 인코더(2201) 및 재생기(2102) 사이에서 유선 또는 무선을 통한 통신이 수행될 수 있다. 또 다른 실시에에서, 인코더(2201) 및 재생기(2102)는 하나의 전자 장치에 포함될 수도 있다.
재생기(2102) 또는 인코더(2201)는 센서 정보를 이용하여, 2215 동작에서 사용자 상태를 예측할 수 있다. 2217 동작에서, 재생기(2102) 또는 인코더(2201)는 미래 사용자 시선을 예측할 수 있다. 2219 동작에서, 재생기(2102) 또는 인코더(2201)는 시선 범위를 결정할 수 있다. 인코더(2201)는 2233 동작에서 부분 인코딩을 수행할지 여부를 판단할 수 있다. 부분 인코딩이 수행되지 않는 것으로 판단되면, 2241 동작에서 인코더(2201)는 전체 블록을 대상으로 인코딩을 수행할 수 있다. 부분 인코딩이 수행되는 것으로 판단되면, 2235 동작에서 인코더(2201)는, 예를 들어 미래 사용자 시선에 의한 시선 범위를 이용하여 인코딩 부분을 결정할 수 있다. 예를 들어, 인코더(2201)는 디코딩 대상 부분을 판단하는 방법으로 결정된 디코딩 대상 부분을 인코딩 대상 부분으로서 결정할 수 있다. 또는, 인코더(2201)는 디코딩 대상 부분을 포함하는 디코딩 대상 부분보다 크거나 같은 부분을 인코딩 대상 부분으로 결정할 수도 있다. 더욱 상세하게, 인코더(2201)는 재생기(2102)에서 디코딩된 영상이 표시되는 시점과, 인코딩을 수행하는 시점 사이의 딜레이를 고려하여, 디코딩 장치 또는 전자 장치에서 판단된 사용자의 시선으로부터, 인코딩을 수행할 프레임에서의 사용자의 시선을 딜레이를 이용하여 결정할 수 있다. 예를 들어, 인코더(2201)는 사용자의 현재 사용자 시선에 대한 정보를 획득할 수 있으며, 현재 사용자 시선을 이용하여 제 1 프레임에서의 사용자 시선을 획득할 수 있다. 인코더(2201)는 직접 표시가 수행되는 시간과 인코딩이 수행되는 시간 사이의 딜레이를 고려하여 제 1 프레임에서의 사용자 시선을 획득할 수 있다. 또한, 인코더(2201)는 미래의 사용자 시선에 대한 정보를 예측하여, 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선을 판단할 수도 있으며, 이 경우에도 인코딩과 표시되는 시간 사이의 딜레이를 고려하여 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선을 판단할 수도 있다. 즉, 인코더(2201)는, 디코딩된 영상이 실제로 표시되는 시간과 인코딩이 수행되는 시간 사이의 딜레이에 기초하여 인코딩 대상 부분을 결정할 수 있다. 더욱 상세하게, 인코더(2201)는, 센서로부터 움직임 정보가 수신되는데 걸리는 딜레이, 인코딩된 이미지가 표시 장치(또는, 디코딩 장치)로 스트리밍에서 소요되는 딜레이, 디코딩된 이미지가 실제로 표시되는 시간까지 소요되는 딜레이 및 프레임에 대한 인코딩 순서에 따라 변경되는 시간 정보 중 적어도 하나를 고려하여 인코딩 대상 부분을 결정할 수 있다. 인코더(2201)는 인코딩 대상 부분을 디코딩 대상 부분보다 보다 넓게 설정할 수도 있다.
2237 동작에서, 인코더(2201)은 인코더 영역의 구조를 최적화할 지 여부를 판단한다. 예를 들어, 인코더(2201)는 디코딩 오버헤드를 고려하여, 2239 동작에서 가변적인 블록 사이즈를 결정함으로써, 인코딩 영역의 구조를 최적화할 수 있다. 예를 들어, 인코더(2201)는 화질-비트율 최적화 방법으로 블록 사이즈를 결정할 수 있다. 2241 동작에서, 인코더(2201)는 인코딩을 수행할 수 있다. 2243 동작에서, 인코더(2201)는 인코딩 이미지를 저장할 수 있다.
도 23은 본 발명의 다양한 실시예에 따른 블록에 대한 리소스 부여를 설명하기 위한 개념도를 도시한다. 도 23을 참조하면, 전자 장치(101)는 현재 사용자 시선에 대응하는 부분(2301)을 기준으로 하는 미래 사용자 시선에 대응하는 부분(2302 내지 2305)을 결정할 수 있다. 전자 장치(101)는 사용자 시선에 대응하는 부분이 겹치는 영역(2311)을 ROI(region of interest)로 판단할 수 있다. 전자 장치(101)는 ROI에는, 상대적으로 높은 리소스를 부여할 수 있다. 한편, 전자 장치(101)는 사용자 시선에 대응하는 부분이 겹치지 않는 영역(2313)에는 상대적으로 낮은 리소스를 부여할 수 있다. 또는, 전자 장치(101)는 보다 영상의 중요도 또는 영상 내의 객체의 중요도에 기초하여 리소스를 부여할 수도 있다. 전자 장치(101)가 인코딩을 수행하는 경우에는, 사용자 시선에 대응하는 부분이 겹치는 영역(2311)에 더 높은 리소스를 부여하여 인코딩을 수행할 수도 있다.
도 24는 본 발명의 다양한 실시예에 의한 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
2410 동작에서, 전자 장치(101)는 제 1 프레임의 제 1 부분을 부분 디코딩할 수 있다. 전자 장치(101)는, 상술한 바와 같이, 사용자의 시선에 대응하는 부분을 포함하는 사용자의 시선에 대응하는 부분보다 더 크거나 같은 부분을 부분 디코딩할 수 있다. 2420 동작에서, 전자 장치(101)는 제 2 프레임의 제 2 부분의 제 1 블록을 디코딩할 수 있다. 제 2 부분 또한 제 2 프레임에서의 사용자의 시선에 대응하는 부분보다 더 크거나 같은 부분일 수 있다.
2430 동작에서, 전자 장치(101)는 제 2 부분의 모든 블록들이 디코딩되는지 여부를 판단할 수 있다. 모든 블록들이 디코딩되지 않은 경우에, 2440 동작에서, 전자 장치(101)는 해당 블록의 디코딩이 불가능한지 여부를 판단할 수 있다. 예를 들어, 전자 장치(101)는 사용자의 시선에 대응하는 부분보다 크거나 같은 부분을 디코딩 대상 영역으로 결정하였음에도 불구하고, 제 1 프레임에서 참조 대상 블록이 디코딩되지 않을 수 있다. 이 경우, 전자 장치(101)는 현재 디코딩을 수행, 예를 들어 인터 예측을 수행하는 블록을 디코딩이 불가능한 블록으로 판단할 수 있다. 디코딩이 불가능한 것으로 판단되면, 2450 동작에서 전자 장치(101)는 해당 블록을 에러 정정할 수 있다. 디코딩이 가능한 것으로 판단되면, 2460 동작에서 전자 장치(101)는 해당 블록을 디코딩할 수 있다. 2470 동작에서, 전자 장치(101)는 다음 블록으로 디코딩을 진행할 수 있다. 모든 블록이 디코딩된 것으로 판단되면, 2480 동작에서, 전자 장치(101)는 디코딩 데이터를 저장할 수 있다. 하나의 실시예에서, 전자 장치(101)는 사전에 결정된 상수값, 복호화 단위(예를 들어, 블록)의 샘플 값 중 선택된 값, 복호화 단위(예를 들어, 블록) 주변 샘플값의 평균 값 중 적어도 하나를 이용하여 에러 정정을 수행할 수 있다. 또는, 전자 장치(101)는 부가 정보로 포함된 다운-샘플된 영상을 이용하여 에러 정정을 수행할 수 있다. 또는, 전자 장치(101)는 부호화 단위(예를 들어, 블록) 주변에 대항 다양한 예측 방법에 기초하여 에러 정정을 수행할 수도 있다.
도 25는 본 발명의 다양한 실시에에 의한 블록의 에러 정정 과정을 설명하기 위한 개념도를 도시한다. 전자 장치(101)는 전체 이미지에서 현재의 사용자 시선에 대응하는 부분(2510)을 판단할 수 있다. 현재의 사용자 시선에 대응하는 부분의 표시를 위하여, 전자 장치(101)는 제 1 영역(2530)을 디코딩하여야 한다. 한편, 제 1 영역(2530) 중 일부의 블록(2530)은 디코딩이 불가능할 수 있다. 예를 들어, 이전 프레임에서 일부의 블록(2530)의 인터 예측을 위한 참조 블록이 디코딩되어 있지 않거나, 또는 전체 이미지에서 일부의 블록(2530)의 인트라 예측을 위한 참조 블록이 디코딩되어 있지 않을 수 있다. 전자 장치(101)는 디코딩이 불가능한 블록에 대하여 에러 정정을 수행할 수 있다. 예를 들어, 전자 장치(101)는 디코딩이 불가능한 블록(2530)에 인접한 블록(2520)의 픽셀 정보를 참조하여, 디코딩이 불가능한 블록(2530)의 픽셀 정보를 결정할 수 있다. 또는, 전자 장치(101)는 디코딩이 불가능한 블록(2530)의 픽셀 정보를 미리 정해진 값으로 설정할 수도 있다. 에러 정정에 의하여 블록 단위 인코딩-디코딩 과정에서 발생할 수도 있는 블록 단위 아티팩트(blocky artifact)의 발생이 억제될 수 있다. 한편, 에러 정정 과정은 선택적으로 적용될 수도 있으며, HEVC의 SAO(Sample Adaptive Offset)와 Deblocking filter의 경우 플래그(flag)로 온/오프 설정이 가능하도록 신택스(sytax)가 정의되어 있다. 이에 따라, 다양한 실시예에 의한 전자 장치(101)는 플래그의 온/오프 제어를 통하여 에러 정정 과정을 선택적으로 수행할 수 있다. 한편, 전자 장치(101)는 Inloop filtering의 에러 정정을 수행할 수도 있다. 또는, 전자 장치(101)는 홀 필링(hole filling)의 방법으로 에러 정정을 수행할 수도 있다. 도 25의 과정에서는, 전자 장치(101)는 주변 픽셀의 방향성을 이용하여 인트라 예측 방향을 추정하고, 인트라 예측을 적용하는 것과 같이 에러 정정을 수행할 수 있다. 전자 장치(101)는 상술한 코덱 내부의 기능을 이용하는 방법으로 에러 정정을 수행할 수 있거나 또는 이미지-기반 렌더링(image-based rendering)과 같은 컴퓨터 비젼(computer vision) 분야에서 정의되는 홀-필링 방법을 이용할 수도 있다.
도 26은 본 발명의 다양한 실시예에 따른 에러 정정 과정을 설명하기 위한 개념도를 도시한다. 본 발명의 다양한 실시예에서, 전자 장치(101)는 이전 프레임의 이전의 사용자 시선에 대응하는 부분(2610)과 대응하는 디코딩된 부분(2620)의 블록을 이용하여 현재의 사용자 시선에 대응하는 부분(2630)에 대응하는 부분(2640)을 디코딩의 수행을 시도할 수 있다. 한편, 디코딩 대상 부분(2640)에는 디코딩이 불가능한 블록(2650)이 포함될 수 있다. 이 경우, 전자 장치(101)는 에러 정정 관련 정보를 이용하여 디코딩이 불가능한 블록(2650)에 대한 에러 정정을 수행할 수도 있다. 에러 정정 관련 정보는, 인코딩 파일에 미리 저장될 수 있으며, 예를 들어 다운-샘플된 픽쳐(down-sampled picture) 또는 메타 데이터를 포함할 수 있다. 메타 데이터는, 예를 들어, 픽셀에 대한 그레디언트(gradient) 정보, IDB-레이어 인트라 예측 방향(IDB-layer prediction direction) 또는 다운-샘플링된(down-sampled) 픽셀 정보 등을 포함할 수 있다. 메타 데이터가 그레디언트 정보를 포함하는 경우에는, 전자 장치(101)는 saliency map을 이용하여 에러 정정을 수행할 수도 있다.
도 27은 본 발명의 다양한 실시예에 따른 에러 정정을 설명하기 위한 흐름도를 도시한다.
2701 동작에서, 전자 장치(101)는 예측 정보를 획득할 수 있다. 전자 장치(101)는 특정 블록을 디코딩하기 위한 예측 정보를 획득할 수 있다. 예측 정보는, 예를 들어 이전 프레임에서의 인터 예측을 위한 참조 블록의 위치에 대한 정보 또는 현재 프레임에서의 인트라 예측을 위한 참조 블록의 위치에 대한 정보 등을 포함할 수 있다.
2703 동작에서, 전자 장치(101)는 참조 영상이 이용이 가능한지 여부를 판단할 수 있다. 예를 들어, 전자 장치(101)는 참조 영상의 위치에 대응하는 블록이 미리 디코딩이 되어 있는지 여부를 판단할 수 있다. 참조 영상이 이용이 가능한 것으로 판단되면, 2705 동작에서 전자 장치(101)는 참조 영상을 이용하여 현재 디코딩 대상 블록을 예측하여 디코딩을 수행할 수 있다.
2707 동작에서, 전자 장치(101)는 에러를 정정할지 여부를 판단할 수 있다. 에러를 정정하지 않을 것으로 판단되면, 2709 동작에서, 전자 장치(101)는 전자 장치(101)는 기본값으로 참조 영상을 설정할 수 있다. 기본값은 상수값일 수 있으며, 예를 들어 검은색일 수 있다.
에러를 정정할 것으로 판단되면, 2711 동작에서, 전자 장치(101)는 부가 정보가 있는지를 판단할 수 있다. 부가 정보는, 에러를 정정하기 위한 정보일 수 있다. 부가 정보가 없는 것으로 판단되면, 2715 동작에서, 전자 장치(101)는 부가 정보를 이용하지 않고 기본 에러 정정 방법에 기초하여 참조 영상을 추정할 수 있다.
부가 정보가 있는 것으로 판단되면, 2713 동작에서, 전자 장치(101)는 에러 정정 부가 정보를 획득할 수 있다. 2715 동작에서, 전자 장치(101)는 부가 정보를 이용하여 참조 영상을 추정할 수 있다. 2717 동작에서, 전자 장치(101)는 참조 영상을 생성할 수 있다. 2705 동작에서, 전자 장치(101)는 참조 영상을 이용하여 예측 영상을 획득할 수 있으며, 이를 이용하여 부분 디코딩을 수행할 수 있다.
도 28은 본 발명의 다양한 실시예에 따른 에러 정정을 설명하기 위한 흐름도를 도시한다. 도 28의 실시예 중 도 27의 실시예에서 설명한 과정에 대한 설명은 생략하도록 한다. 도 27에 의한 실시예가 부가 정보가 하나의 종류인 것과 대조적으로, 도 28의 실시에에서는 부가 정보가 복수 개일 수 있다.
2711 동작에서, 부가 정보가 있는 것으로 판단되면, 2813 동작에서, 전자 장치(101)는 에러 정정 부가 정보를 획득할 수 있다. 2815 동작에서, 전자 장치(101)는 에러 정정 부가 정보에 대한 복원 비용을 추정할 수 있다. 상술한 바와 같이, 부가 정보가 복수 개일 수 있으며, 전자 장치(101)는 부가 정보 각각에 대한 비용을 추정할 수 있다. 부가 정보에 대한 비용은, 부가 정보를 이용하여 에러 정정을 수행하는 데 소요되는 리소스와 관련된 정보 또는 부가 정보를 이용하여 에러 정정을 수행한 경우의 정확도와 관련된 정보 등을 포함할 수 있다.
2817 동작에서, 전자 장치(101)는 최적의 에러 정정 방법을 결정할 수 있다. 전자 장치(101)는 추정된 비용에 기초하여, 최적의 에러 정정 부가 정보를 결정할 수 있다. 예를 들어, 전자 장치(101)는 처리에 요구되는 리소스가 가장 적은 부가 정보를 최적의 에러 정정 부가 정보로 결정할 수 있다. 또는, 전자 장치(101)는 정확도가 가장 높은 부가 정보를 최적의 에러 정정 부가 정보로 결정할 수도 있다. 또는, 전자 장치(101)는 현재 이용 가능한 리소스를 고려하여, 최적의 에러 정정 부가 정보를 결정할 수도 있다. 2821 동작에서, 전자 장치(101)는 결정한 최적의 에러 정정 방법에 기초하여 참조 영상을 추정할 수 있다. 2819 동작에서, 부가 정보가 없는 경우에는, 전자 장치(101)는 기본 에러 정정 방법 기반 참조 영상 복원 비용을 추정할 수 있으며, 2817 동작에서 최적의 에러 정정 방법을 결정할 수도 있다.
도 29는 본 발명의 다양한 실시예에 따른 전자 장치의 동작을 설명하기 위한 흐름도를 도시한다.
전자 장치(101), 예를 들어 센서(2901)는, 2903 동작에서 움직임 정보를 센싱할 수 있다. 2905 동작에서, 전자 장치(101)는 움직임 정보를 이용하여 현재의 사용자의 시선(view point)을 결정할 수 있다. 서버는, 사용자의 시선을 수신할 수 있으며, 2907 동작에서, 수신한 사용자의 시선 관리할 수 있다. 서버는, 예를 들어 현재 시점의 사용자 시선 정보와 사용자 상태 정보를 관리할 수 있으며, 상술한 바와 같이 사용자 상태 정보는 시선 정보 또는 다른 정보에 대한 누적 데이터를 포함할 수도 있다. 서버가 전자 장치와 동기화된 경우에는, 사용자의 시선을 별도로 관리하지 않을 수도 있다. 2909 동작에서, 서버는 미래의 사용자의 시선을 예측할 수 있다. 2911 동작에서, 서버는 미래의 사용자 시선을 이용하여 인코딩 대상 블록을 결정할 수 있다. 2913 동작에서, 서버는, 결정된 인코딩 대상 블록을 부분 인코딩할 수 있으며, 2915에서 서버는 이를 저장하거나 또는 전자 장치(101)로 송신할 수 있다. 한편, 서버는, 결정된 인코딩 대상 블록을 가변적인 블록 크기로 인코딩할 수도 있다.
2917 동작에서, 전자 장치(101)는 수신된 비트스트림을 파싱(parsing)할 수 있다. 전자 장치(101)는 파싱 결과로 에러 정정을 위한 부가 정보를 획득할 수도 있다. 2921 동작에서, 전자 장치(101)는 사용자 시선에 대한 정보를 관리할 수 있다. 2923 동작에서, 전자 장치(101)는 미래의 사용자 시선을 예측할 수 있다. 2925 동작에서, 전자 장치(101)는 미래의 사용자 시선에 기초하여 디코딩 대상 블록을 결정할 수 있다. 2927 동작에서, 전자 장치(101)는 수신된 비트스트림에서 파싱된 프레임 각각에 대하여 부분 디코딩을 수행할 수 있다. 2941 동작에서, 전자 장치(101)는 참조 픽처를 관리할 수도 있으며, 전자 장치(101)는 참조 픽처를 이용하여 부분 디코딩을 수행할 수도 있다. 2943 동작에서, 전자 장치(101)는 파싱 결과 획득한 부가 정보를 관리할 수도 있다. 2929 동작에서, 전자 장치(101)는 부가 정보를 이용하거나 또는 부가 정보를 이용하지 않고, 에러 정정을 수행할 수 있다. 2931 동작에서, 전자 장치(101)는 현재 사용자 시선에 대한 이미지를 생성할 수 있으며, 2933 동작에서 생성한 이미지를 표시할 수 있다.
도 30은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다. 도 30의 과정들 중, 도 29에서 설명된 과정들에 대한 상세한 설명은 생략하도록 한다.
3001 동작에서, 서버는 스트리밍 블록을 선택할 수 있다. 상술한 바와 같이, 서버는, 현재의 사용자 시선에 대응하는 부분과 미래의 사용자 시선에 대응하는 부분에 기초하여 부분 인코딩을 수행할 부분을 선택할 수 있으며, 부분 인코딩을 수행할 부분을 송신할 블록, 즉 스트리밍 블록으로 선택할 수 있다. 3003 동작에서, 서버는 부분 인코딩을 수행하여, 인코딩된 부분만을 스트리밍할 수 있다. 서버는, 범위 설정 과정에서 rate-distortion 최적화를 수행할 수도 있다.
도 31은 본 발명의 다양한 실시예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도를 도시한다.
전자 장치(101), 예를 들어 센서(3101)는, 3103 동작에서 움직임 정보를 센싱할 수 있다. 3105 동작에서, 전자 장치(101)는 움직임 정보를 이용하여 현재의 사용자의 시선(view point)을 결정할 수 있다. 3107 동작에서, 전자 장치(101)는 수신한 사용자의 시선을 관리할 수 있다. 3109 동작에서, 전자 장치(101)는 미래의 사용자의 시선을 예측할 수 있다. 3111 동작에서, 전자 장치(101)는 미래의 사용자 시선을 이용하여 디코딩 대상 블록을 결정할 수 있다. 3121 동작에서, 전자 장치(101)는 미리 저장된 비트스트림을 독출하거나 또는 통신 모듈을 통하여 비트스트림을 수신할 수 있다. 3123 동작에서, 전자 장치(101)는 비트스트림을 파싱할 수 있으며, 예를 들어 3129 동작에서 에러 정정을 위한 부가 정보를 획득할 수 있다. 3125 동작에서, 전자 장치(101)는 부분 디코딩을 수행할 수 있다. 예를 들어, 전자 장치(101)는 3127 동작에서, 참조 픽처를 관리할 수도 있으며, 부분 디코딩 과정에서 참조 픽처를 이용할 수도 있다. 3131 동작에서, 전자 장치(101)는 에러 정정을 수행할 수 있다. 3133 동작에서, 전자 장치(101)는 사용자 시선 및 에러 정정된 데이터를 이용하여 현재 사용자 시선에 대응하는 이미지를 생성할 수 있다. 3141 동작에서, 전자 장치(101)는 이미지를 표시할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치의 제어 방법은, 동영상을 획득하는 동작; 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하는 동작; 상기 디코딩 대상 부분을 디코딩하는 동작; 및 상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 표시하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 디코딩 대상 부분을 결정하는 동작은, 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측하는 동작; 상기 제 1 프레임에서, 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 및 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 포함하는 상기 디코딩 대상 부분을 결정하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 디코딩 대상 부분을 결정하는 동작은, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분과 함께 상기 디코딩 대상 부분으로서 결정할 수 있다. 상기 기설정된 개수는, 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선의 신뢰도에 따라 가변적일 수 있다.
본 발명의 다양한 실시예에서, 전자 장치의 제어 방법은, 상기 동영상의 제 2 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하는 동작; 및 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 표시하는 동작을 더 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하는 동작은, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분의 적어도 하나의 블록을, 상기 제 1 프레임에서의 디코딩 대상 부분의 적어도 하나의 블록으로부터 예측할 수 있다.
본 발명의 다양한 실시예에서, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하는 동작은, 상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 제 2 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 상기 제 2 프레임에서의 디코딩 대상 영역을 결정하는 동작; 및 상기 제 2 프레임에서의 디코딩 대상 영역을 디코딩하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치의 제어 방법은, 상기 제 2 프레임에서의 디코딩 대상 영역 중 적어도 하나의 블록이 디코딩이 불가능하다고 판단되면, 상기 디코딩이 불가능한 적어도 하나의 블록을 에러 정정하는 동작을 더 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측하는 동작은, 상기 전자 장치의 센서로부터의 센싱 데이터, 상기 전자 장치의 사용자의 행동 습관 및 상기 동영상의 컨텐츠와 연관된 정보 중 적어도 하나에 기초하여 상기 미래의 사용자 시선을 예측할 수 있다.
본 발명의 다양한 실시예에서, 상기 디코딩 대상 부분을 디코딩하는 동작은, 상기 디코딩 대상 부분의 제 1 블록을 단독으로 디코딩하는 동작; 및 상기 디코딩 대상 부분의 제 2 블록을 상기 제 1 블록을 참조하여 예측하는 동작을 포함하며, 상기 제 1 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함되지 않으며, 상기 제 2 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함될 수 있다.
본 발명의 다양한 실시예에서, 인코딩을 수행하는 전자 장치의 제어 방법은, 가상 현실 서비스의 제공을 위한 광각 이미지로 구성된 동영상을 획득하는 동작; 디코딩을 수행하는 전자 장치로부터 현재의 사용자 시선에 대한 정보를 수신하는 동작; 상기 동영상의 제 1 프레임에서, 현재의 사용자 시선을 이용하여 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 인코딩(encoding) 대상 부분을 결정하는 동작; 상기 인코딩 대상 부분을 인코딩하는 동작; 및 인코딩된 데이터를 상기 디코딩을 수행하는 전자 장치로 송신하는 동작을 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 인코딩 대상 부분을 결정하는 동작은, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 포함하는 상기 인코딩 대상 부분을 결정할 수 있다.
본 발명의 다양한 실시예에서, 상기 인코딩 대상 부분을 결정하는 동작은, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 미래의 사용자 시선에 대응하는 부분과 함께 상기 인코딩 대상 부분으로서 결정할 수 있다. 상기 인코딩 대상 부분은, 복수 개의 블록을 포함하며, 상기 복수 개의 블록의 크기는 상이하거나 또는 동일할 수 있다.
본 발명의 다양한 실시예에서, 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작은, 상기 인코딩을 수행하는 시간과 상기 디코딩을 수행하는 전자 장치에서 표시를 수행하는 시간 사이의 딜레이를 고려하여 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단할 수 있다.
본 문서에서 사용된 용어 “모듈”은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. “모듈”은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. “모듈”은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. “모듈”은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. “모듈”은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면,“모듈”은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 프로세서(예: 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리(130)가 될 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digital versatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
본 발명의 다양한 실시예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 가상 현실 서비스의 제공을 위한 광각 이미지로 구성된 동영상을 획득하는 동작; 상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하는 동작; 상기 디코딩 대상 부분을 디코딩하는 동작; 및 상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분의 좌안용 이미지 및 우안용 이미지를 표시하는 동작을 포함할 수 있다.
그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 개시의 범위를 한정하는 것은 아니다. 따라서, 본 개시의 범위는, 본 개시의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.

Claims (21)

  1. 전자 장치의 제어 방법에 있어서,
    동영상을 획득하는 동작;
    상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작;
    상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하는 동작;
    상기 디코딩 대상 부분을 디코딩하는 동작; 및
    상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 표시하는 동작을 포함하고,
    상기 디코딩 대상 부분을 결정하는 동작은,
    상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측하는 동작;
    상기 제 1 프레임에서, 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작; 및
    상기 제 1 프레임에서의 사용자 시선에 대응하는 부분, 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분, 및 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을 포함하는 상기 디코딩 대상 부분을 결정하는 동작을 포함하는 전자 장치의 제어 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 동영상의 제 2 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작;
    상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하는 동작; 및
    상기 제 2 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를 표시하는 동작
    을 더 포함하는 전자 장치의 제어 방법.
  6. 제 5 항에 있어서,
    상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하는 동작은,
    상기 제 2 프레임에서의 사용자 시선에 대응하는 부분의 적어도 하나의 블록을, 상기 제 1 프레임에서의 디코딩 대상 부분의 적어도 하나의 블록으로부터 예측하는 전자 장치의 제어 방법.
  7. 제 5 항에 있어서,
    상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 디코딩하는 동작은,
    상기 제 2 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 제 2 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 상기 제 2 프레임에서의 디코딩 대상 영역을 결정하는 동작; 및
    상기 제 2 프레임에서의 디코딩 대상 영역을 디코딩하는 동작
    을 포함하는 전자 장치의 제어 방법.
  8. 삭제
  9. 삭제
  10. 제 1 항에 있어서,
    상기 디코딩 대상 부분을 디코딩하는 동작은,
    상기 디코딩 대상 부분의 제 1 블록을 단독으로 디코딩하는 동작; 및
    상기 디코딩 대상 부분의 제 2 블록을 상기 제 1 블록을 참조하여 예측하는 동작
    을 포함하며,
    상기 제 1 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함되지 않으며, 상기 제 2 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함되는 전자 장치의 제어 방법.
  11. 삭제
  12. 전자 장치에 있어서,
    디스플레이; 및
    프로세서
    를 포함하고,
    상기 프로세서는,
    동영상을 획득하고,
    상기 동영상의 제 1 프레임에서, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하고,
    상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 디코딩(decoding) 대상 부분을 결정하고,
    상기 디코딩 대상 부분을 디코딩하고,
    상기 디코딩 대상 부분 중 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 대한 이미지를, 상기 디스플레이 상에, 표시하도록 제어하고,
    상기 프로세서는,
    상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측하고,
    상기 제 1 프레임에서, 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분을 판단하고,
    상기 제 1 프레임에서의 사용자 시선에 대응하는 부분, 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분, 및 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을 포함하는 상기 디코딩 대상 부분을 결정하는 전자 장치.
  13. 삭제
  14. 삭제
  15. 제 12 항에 있어서,
    상기 프로세서는, 상기 전자 장치의 센서로부터의 센싱 데이터, 상기 전자 장치의 사용자의 행동 습관 및 상기 동영상의 컨텐츠와 연관된 정보 중 적어도 하나에 기초하여 상기 제 1 프레임의 이후의 적어도 하나의 프레임에서의 사용자 시선을 예측하는 전자 장치.
  16. 제 12 항에 있어서,
    상기 프로세서는,
    상기 디코딩 대상 부분의 제 1 블록을 단독으로 디코딩하고,
    상기 디코딩 대상 부분의 제 2 블록을 상기 제 1 블록을 참조하여 예측하고,
    상기 제 1 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함되지 않으며, 상기 제 2 블록은 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분에 포함되는 전자 장치.
  17. 인코딩을 수행하는 전자 장치의 제어 방법에 있어서,
    가상 현실 서비스의 제공을 위한 광각 이미지로 구성된 동영상을 획득하는 동작;
    디코딩을 수행하는 전자 장치로부터 현재의 사용자 시선에 대한 정보를 수신하는 동작;
    상기 동영상의 제 1 프레임에서, 상기 현재의 사용자 시선을 이용하여 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작;
    상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 포함하는, 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분보다 크거나 같은 크기의 인코딩(encoding) 대상 부분을 결정하는 동작;
    상기 인코딩 대상 부분을 인코딩하는 동작; 및
    인코딩된 데이터를 상기 디코딩을 수행하는 전자 장치로 송신하는 동작을 포함하고,
    상기 인코딩 대상 부분을 결정하는 동작은,
    상기 제 1 프레임에서의 사용자 시선에 대응하는 부분, 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분, 및 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분 및 상기 제 1 프레임 이후의 적어도 하나의 프레임에서의 사용자 시선에 대응하는 부분의 경계로부터 기설정된 개수의 픽셀을 포함하는 추가 부분을 포함하는 상기 인코딩 대상 부분을 결정하는 동작을 포함하는 전자 장치의 제어 방법.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제 17 항에 있어서,
    제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 동작은, 상기 인코딩을 수행하는 시간과 상기 디코딩을 수행하는 전자 장치에서 표시를 수행하는 시간 사이의 딜레이를 고려하여 상기 제 1 프레임에서의 사용자 시선에 대응하는 부분을 판단하는 전자 장치의 제어 방법.
KR1020160120821A 2016-09-21 2016-09-21 이미지를 표시하는 전자 장치 및 그 제어 방법 KR102499139B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160120821A KR102499139B1 (ko) 2016-09-21 2016-09-21 이미지를 표시하는 전자 장치 및 그 제어 방법
US15/668,367 US10823958B2 (en) 2016-09-21 2017-08-03 Electronic device for encoding or decoding frames of video and method for controlling thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160120821A KR102499139B1 (ko) 2016-09-21 2016-09-21 이미지를 표시하는 전자 장치 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20180032089A KR20180032089A (ko) 2018-03-29
KR102499139B1 true KR102499139B1 (ko) 2023-02-13

Family

ID=61620959

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160120821A KR102499139B1 (ko) 2016-09-21 2016-09-21 이미지를 표시하는 전자 장치 및 그 제어 방법

Country Status (2)

Country Link
US (1) US10823958B2 (ko)
KR (1) KR102499139B1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6553418B2 (ja) * 2015-06-12 2019-07-31 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 表示制御方法、表示制御装置及び制御プログラム
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
US11054886B2 (en) * 2017-04-01 2021-07-06 Intel Corporation Supporting multiple refresh rates in different regions of panel display
US10812769B2 (en) * 2017-08-21 2020-10-20 International Business Machines Corporation Visualizing focus objects from video data on electronic maps
CN111052042B (zh) 2017-09-29 2022-06-07 苹果公司 基于注视的用户交互
US11314396B2 (en) 2018-05-09 2022-04-26 Apple Inc. Selecting a text input field using eye gaze
US11314281B2 (en) 2018-09-10 2022-04-26 Apple Inc. Display system
US11310516B2 (en) * 2018-12-21 2022-04-19 Hulu, LLC Adaptive bitrate algorithm with cross-user based viewport prediction for 360-degree video streaming
CN113411598B (zh) * 2019-06-21 2022-05-31 杭州海康威视数字技术股份有限公司 一种编解码方法、装置及其设备
KR102315899B1 (ko) * 2019-10-17 2021-10-21 에스케이텔레콤 주식회사 영상을 처리하기 위한 전자 장치, 방법, 컴퓨터 판독 가능한 기록 매체 및 컴퓨터 프로그램
KR102330781B1 (ko) * 2020-01-17 2021-11-24 주식회사 와이젯 무선 환경 영상처리 방법
KR20220005274A (ko) * 2020-07-06 2022-01-13 삼성전자주식회사 전자 장치에서 무선 통신 효율을 개선하기 위한 방법 및 그 장치
JP2023087412A (ja) * 2021-12-13 2023-06-23 キヤノン株式会社 電子装置、電子装置の制御方法、および、プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100613752B1 (ko) * 2004-03-11 2006-08-22 경북대학교 산학협력단 파노라마 영상의 스트리밍 방법
KR101396754B1 (ko) * 2010-11-08 2014-05-28 한국전자통신연구원 템플릿 매칭 및 방향 예측을 사용한 비디오 압축 방법 및 장치
KR101282955B1 (ko) * 2011-08-31 2013-07-17 한국과학기술연구원 실시간 고해상도 파노라마 영상 스트리밍 시스템 및 방법
JP5779483B2 (ja) 2011-11-15 2015-09-16 株式会社ソシオネクスト 画像処理装置、及び画像処理方法
US9075453B2 (en) * 2011-12-29 2015-07-07 Khalifa University of Science, Technology & Research (KUSTAR) Human eye controlled computer mouse interface
US9063330B2 (en) 2013-05-30 2015-06-23 Oculus Vr, Llc Perception based predictive tracking for head mounted displays
US9699437B2 (en) 2014-03-03 2017-07-04 Nextvr Inc. Methods and apparatus for streaming content
US10432988B2 (en) * 2016-04-15 2019-10-01 Ati Technologies Ulc Low latency wireless virtual reality systems and methods
US10341650B2 (en) * 2016-04-15 2019-07-02 Ati Technologies Ulc Efficient streaming of virtual reality content

Also Published As

Publication number Publication date
KR20180032089A (ko) 2018-03-29
US20180081171A1 (en) 2018-03-22
US10823958B2 (en) 2020-11-03

Similar Documents

Publication Publication Date Title
KR102499139B1 (ko) 이미지를 표시하는 전자 장치 및 그 제어 방법
EP3504585B1 (en) Method and device for managing thumbnail of three-dimensional contents
CN107807732B (zh) 用于显示图像的方法、存储介质和电子装置
KR102606976B1 (ko) 전자 장치 및 전자 장치의 이미지 데이터 송수신 방법
KR102341301B1 (ko) 전자 장치 및 전자 장치의 화면 공유 방법
US20160063767A1 (en) Method for providing visual reality service and apparatus for the same
US20160142703A1 (en) Display method and electronic device
KR20180011539A (ko) 영상의 처리를 위한 전자 장치
CN108462818B (zh) 电子设备及用于在该电子设备中显示360度图像的方法
KR20170060485A (ko) 표시 모드에 따른 콘텐트를 표시하기 위한 전자 장치 및 방법
US10916049B2 (en) Device and method for rendering image
US20180176536A1 (en) Electronic device and method for controlling the same
US20200286276A1 (en) Electronic device and method for displaying and generating panoramic image
EP3358531A1 (en) Electronic device for providing vr image based on polyhedron and image providing method thereof
EP3547702A1 (en) Image processing apparatus and image processing method therefor
KR20170062376A (ko) 전자 장치 및 파노라마 영상 표시와 생성 방법
EP3092613B1 (en) Image processing method and electronic device implementing the same
KR20170052984A (ko) 사용자의 위치를 결정하는 전자 장치 및 그 제어 방법
KR20170019595A (ko) 영상을 제공하는 방법 및 이를 지원하는 전자 장치
KR102164686B1 (ko) 타일 영상의 영상 처리 방법 및 장치
KR102656425B1 (ko) 영상을 표시하는 전자 장치 및 방법
KR102544779B1 (ko) 움직임 정보 생성 방법 및 이를 지원하는 전자 장치
US11210828B2 (en) Method and electronic device for outputting guide
KR102405385B1 (ko) 3d 컨텐츠를 위한 여러 오브젝트를 생성하는 방법 및 시스템
KR102114466B1 (ko) 영상 컨텐츠 내 관심 영역 정보를 이용한 영상 디스플레이 방법 및 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant