KR102000090B1 - 영상 장치 및 영상 장치의 영상 재생 방법 - Google Patents

영상 장치 및 영상 장치의 영상 재생 방법 Download PDF

Info

Publication number
KR102000090B1
KR102000090B1 KR1020170150402A KR20170150402A KR102000090B1 KR 102000090 B1 KR102000090 B1 KR 102000090B1 KR 1020170150402 A KR1020170150402 A KR 1020170150402A KR 20170150402 A KR20170150402 A KR 20170150402A KR 102000090 B1 KR102000090 B1 KR 102000090B1
Authority
KR
South Korea
Prior art keywords
content
area
image
imaging apparatus
projection surface
Prior art date
Application number
KR1020170150402A
Other languages
English (en)
Other versions
KR20190054297A (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 KR1020170150402A priority Critical patent/KR102000090B1/ko
Publication of KR20190054297A publication Critical patent/KR20190054297A/ko
Application granted granted Critical
Publication of KR102000090B1 publication Critical patent/KR102000090B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • H04N21/63345Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key by transmitting keys
    • G06T5/002
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/43615Interfacing a Home Network, e.g. for connecting the client to a plurality of peripherals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3141Constructional details thereof
    • H04N9/3147Multi-projection systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

일 실시예에 따른 영상 장치 및 영상 장치의 동작 방법은 디스플레이 장치에 연결되었는지 여부를 판단하고, 디스플레이 장치에 연결되었다는 판단에 따라, 영상 장치 및 하나 또는 그 이상의 다른 영상 장치들을 포함하는 장치 그룹에 대응하는 그룹 키를 획득하고, 그룹 키를 이용하여 서버에 접속함으로써 획득한 컨텐츠 재생을 위한 주소 정보를 장치 그룹에 포함된 다른 영상 장치들에게 제공하며, 다른 영상 장치들 각각에서 주소 정보에 기초한 컨텐츠의 로딩이 완료되었는지 여부를 기초로, 다른 영상 장치들에게 컨텐츠에 대한 재생 명령을 전송하고, 컨텐츠, 및 컨텐츠의 재생을 위한 전체 영역 중 디스플레이 장치에 대응하는 영역에 컨텐츠의 적어도 일부를 재생하기 위한 캘리브레이션 정보에 기초하여, 디스플레이 장치를 위한 영상 정보를 생성하여 제공한다.

Description

영상 장치 및 영상 장치의 영상 재생 방법{IMAGE APPARATUS AND PLAYING METHOD OF IMAGE APPARATUS}
아래 실시예들은 영상 장치 및 영상 장치의 영상 재생 방법에 관한 것이다.
영화관, 전시관 또는 박물관 등에서 멀티 스크린 장치들 또는 멀티 프로젝터들과 같이 다수의 디스플레이 장치들을 이용하여 대화면 영상을 제공할 수 있다. 이와 같이 하나의 대화면 영상을 제공하기 위해 다수의 디스플레이 장치들을 이용하는 경우, 다수의 디스플레이 장치들 각각에 의한 화면 배치, 재생할 컨텐츠의 결정, 및 컨텐츠의 재생 시간 등의 관리가 용이하지 않다. 또한, 다수의 디스플레이 장치들 각각에 의해 재생되는 컨텐츠의 영역을 설정하는 캘리브레이션(calibration), 다수 개의 디스플레이 장치들에 의해 제공되는 대화면 영상이 보다 자연스럽게 표현되도록 하기 위한 동작, 및 다수의 디스플레이 장치들에 의해 재생되는 영상들 간의 동기화를 위한 복잡한 연산 등이 요구된다.
일 측에 따른 영상 장치의 영상 재생 방법은 컨텐츠를 재생 할 공간에 대한 정보를 획득하는 단계; 상기 공간에 대한 정보에 기초하여 결정된 투사면에 상기 컨텐츠의 전체 영역 중 상기 영상 장치에 대응하는 디스플레이 장치가 재생할 적어도 일부 영역을 설정하기 위한 마스크(mask)를 생성하는 단계; 상기 디스플레이 장치의 컨텐츠 재생 시에 상기 적어도 일부 영역의 픽셀들의 좌표들에 대응하여 상기 투사면에 실제로 투사되는 영역의 픽셀들의 참조 좌표들을 포함하는 참조 텍스쳐를 결정하는 단계; 및 상기 마스크 및 상기 참조 텍스쳐를 이용하여 상기 적어도 일부 영역을 재생하는 단계를 포함한다.
상기 마스크를 생성하는 단계는 전방향 카메라 를 이용하여, 상기 컨텐츠를 재생할 공간을 감지하는 단계; 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 디스플레이 장치들 각각으로부터 투사되는 구조화 패턴을 획득하는 단계; 및 상기 공간에 대한 감지 결과 및 상기 구조화 패턴을 기초로, 상기 컨텐츠의 전체 영역 중 상기 디스플레이 장치들 각각이 재생할 적어도 일부 영역을 결정하는 단계를 포함할 수 있다.
상기 마스크를 생성하는 단계는 상기 디스플레이 장치를 이용하여 상기 투사면에 복수의 포인트들을 표시하는 단계; 사용자 입력에 기초하여 상기 복수의 포인트들 중 적어도 하나의 포인트를 이동시키는 단계; 및 상기 이동된 포인트를 포함하는 복수의 포인트들에 기초하여 상기 일부 영역을 결정하는 단계를 포함할 수 있다.
상기 컨텐츠의 전체 영역은 상기 영상 장치 및 하나 또는 그 이상의 다른 영상 장치들을 포함하는 장치 그룹에 의해 상기 투사면에 재생될 수 있다.
상기 마스크를 생성하는 단계는 사용자 입력에 의해 결정된 포인트들을 이용하여 상기 투사면에서 상기 적어도 일부 영역을 제외한 나머지 영역에 대응하는 상기 마스크를 생성하는 단계; 및 상기 마스크를 이용하여 상기 나머지 영역에 대응하는 픽셀 값을 조정 하는 단계를 포함할 수 있다.
상기 영상 장치의 영상 재생 방법은 상기 마스크 및 상기 참조 텍스쳐 중 적어도 하나를 저장하는 단계를 더 포함할 수 있다.
상기 영상 장치의 영상 재생 방법은 상기 적어도 일부 영역 중 상기 장치 그룹에 속한 다른 영상 장치에 대응하는 디스플레이 장치가 재생할 일부의 영역과 겹치는 영역(overlapped area)에 대한 픽셀 값을 조정 하는 단계를 더 포함할 수 있다.
상기 영상 장치의 영상 재생 방법은 상기 겹치는 영역에 포함된 상기 적어도 일부 영역들의 경계선들 및 상기 경계선들에 인접한 영역을 포함하는 경계 영역의 픽셀 값을 스무딩(smoothing) 하는 단계를 더 포함할 수 있다.
상기 참조 텍스쳐를 결정하는 단계는 상기 컨텐츠와 상기 컨텐츠가 상기 투사면에 실제로 투영된 투영 영상 간의 관계에 대응하는 호모그래피 매트릭스(homography matrix)를 이용하여, 상기 참조 텍스쳐를 결정하는 단계를 포함할 수 있다.
상기 컨텐츠를 재생할 공간에 대한 정보를 획득하는 단계는 사용자로부터 상기 컨텐츠를 재생할 공간에 대한 정보를 입력 받음으로써 상기 컨텐츠를 재생할 공간에 대한 정보를 획득하는 단계를 포함할 수 있다.
상기 영상 장치의 영상 재생 방법은 상기 컨텐츠를 재생할 공간에 대한 정보에 기초하여 사용자로부터 상기 컨텐츠를 재생할 투사면에 대한 선택을 입력받는 단계를 더 포함할 수 있다.
일 측에 따른 영상 장치는 컨텐츠를 재생할 공간에 대한 정보를 획득하는 통신 인터페이스; 및 상기 공간에 대한 정보에 기초하여 결정된 투사면에 상기 컨텐츠의 전체 영역 중 상기 영상 장치에 대응하는 디스플레이 장치가 재생할 적어도 일부 영역을 설정하기 위한 마스크를 생성하고, 상기 디스플레이 장치의 컨텐츠 재생 시에 상기 적어도 일부 영역의 픽셀들의 좌표들에 대응하여 상기 투사면에 실제로 투사되는 영역의 픽셀들의 참조 좌표들을 포함하는 참조 텍스쳐를 결정하며, 상기 마스크 및 상기 참조 텍스쳐를 이용하여 상기 적어도 일부 영역을 재생하는 프로세서를 포함한다.
상기 프로세서는 전방향 카메라를 이용하여, 컨텐츠를 재생할 공간을 감지하고, 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 디스플레이 장치들 각각으로부터 투사되는 구조화 패턴을 획득하며, 상기 공간에 대한 감지 결과 및 상기 구조화 패턴을 기초로, 상기 컨텐츠의 전체 영역 중 상기 디스플레이 장치들 각각이 재생할 적어도 일부 영역을 결정할 수 있다.
상기 프로세서는 상기 디스플레이 장치를 이용하여 상기 투사면에 복수의 포인트들을 표시하고, 사용자 입력에 기초하여 상기 복수의 포인트들 중 적어도 하나의 포인트를 이동시키며, 상기 이동된 포인트를 포함하는 복수의 포인트들에 기초하여 상기 일부 영역을 결정할 수 있다.
상기 프로세서는 사용자로부터 결정된 포인트들을 이용하여 상기 투사면에서 상기 적어도 일부 영역을 제외한 나머지 영역에 대응하는 상기 마스크를 생성하고, 상기 마스크를 이용하여 상기 나머지 영역에 대응하는 픽셀 값을 조정할 수 있다.
상기 영상 장치는 상기 마스크 및 상기 참조 텍스쳐 중 적어도 하나를 저장하는 메모리를 더 포함할 수 있다.
상기 프로세서는 상기 적어도 일부 영역 중 상기 장치 그룹에 속한 다른 영상 장치에 대응하는 디스플레이 장치가 재생할 일부의 영역과 겹치는 영역에 대한 픽셀 값을 조정할 수 있다.
상기 프로세서는 상기 겹치는 영역에 포함된 상기 적어도 일부 영역들의 경계선들 및 상기 경계선들에 인접한 영역을 포함하는 경계 영역의 픽셀 값을 스무딩할 수 있다.
상기 프로세서는 상기 컨텐츠와 상기 컨텐츠가 상기 투사면에 실제로 투영된 투영 영상 간의 관계에 대응하는 호모그래피 매트릭스를 이용하여, 상기 참조 텍스쳐를 결정할 수 있다.
도 1은 일 실시예에 따른 영상 장치의 동작 방법이 수행되는 시스템의 구성을 설명하기 위한 도면.
도 2는 일 실시예에 따른 영상 장치의 동작 방법을 나타낸 흐름도.
도 3은 일 실시예에 따른 영상 장치의 초기화 방법을 나타낸 흐름도.
도 4는 다른 실시예에 따른 영상 장치의 동작 방법을 나타낸 흐름도.
도 5는 일 실시예에 따른 모바일 디바이스의 동작 방법을 나타낸 흐름도.
도 6은 일 실시예에 따른 영상 장치의 영상 재생 방법을 설명하기 위한 도면.
도 7은 일 실시예에 따른 영상 장치의 영상 재생 방법을 나타낸 흐름도.
도 8은 일 실시예에 따라 마스크를 생성하는 방법을 설명하기 위한 도면.
도 9 내지 도 10은 일 실시예에 따라 참조 텍스쳐를 결정하는 방법을 설명하기 위한 도면.
도 11은 일 실시예에 따른 영상 장치의 동기화 방법을 나타낸 흐름도.
도 12는 일 실시예에 따른 어느 하나의 슬레이브 영상 장치와 마스터 영상 장치 간에 주고 받는 시간 정보를 설명하기 위한 도면.
도 13은 일 실시예에 따라 동기화 정보를 생성하는 방법을 나타낸 흐름도.
도 14는 일 실시예에 따라 아웃라이어가 필터링된 샘플링 데이터를 획득하는 방법을 나타낸 흐름도.
도 15는 일 실시예에 따라 동기화 정보를 결정하는 방법을 나타낸 흐름도.
도 16은 일 실시예에 따라 SNTP(Simple Network Time Protocol) 패킷을 통해 얻어진 시간 정보를 RANSAC 모델에 적용시키는 과정을 나타낸 수도 코드(pseudo code)를 도시한 도면.
도 17은 일 실시예에 따른 영상 장치의 블록도.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의에"와 "바로~간의에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 일 실시예에 따른 영상 장치의 동작 방법이 수행되는 시스템의 구성을 설명하기 위한 도면이다. 도 1을 참조하면, 일 실시예에 따른 시스템(100)은 서버(110), 모바일 디바이스(130), 디스플레이 장치들(151, 153, 155, 157), 및 영상 장치들(171, 173, 175, 177)을 포함할 수 있다.
서버(110)는 영상 장치들(171, 173, 175, 177)을 등록하고, 웹을 통해 관리 및/또는 제어할 수 있다. 서버(110)는 영상 장치들(171, 173, 175, 177)이 어떤 사용자의 것이고, 어떤 그룹에 속하며, 어떤 컨텐츠를 언제 어디에서 재생할 것인지 등과 같은 정보를 관리할 수 있다.
서버(110)는 웹 서버(web server)일 수 있다. 또는 서버(110)는 예를 들어, 단일의 서버 컴퓨터 또는 이와 유사한 시스템이거나, 또는 하나 이상의 서버 뱅크들(server banks) 또는 그 외 다른 배열들로 배열되는 복수의 서버들일 수 있다. 서버(110)는 단일 시설에 놓일 수도 있고, 혹은 많은 서로 다른 지리적 위치들 간에 분산된 서버 "클라우드(cloud)"일 수도 있다.
모바일 디바이스(130)는 영상 장치들(171, 173, 175, 177)과 연동하여 영상 장치들(171, 173, 175, 177)을 제어할 수 있다. 예를 들어, 모바일 디바이스(130)는 영상 장치들(171, 173, 175, 177) 중 적어도 하나의 설정을 변경하거나, 동작을 제어할 수 있다.
모바일 디바이스(130)는 예를 들어, 영상 장치들(171, 173, 175, 177)을 통해 디스플레이 장치들(151, 153, 155, 157)에서 재생할 컨텐츠 및/또는 컨텐츠를 재생할 시간 등을 사용자(135)로부터 입력받을 수 있다. 컨텐츠는 예를 들어, 멀티미디어 컨텐츠, 다면 컨텐츠, 동영상 컨텐츠, 스트리밍 컨텐츠, 게임 컨텐츠 및 텍스트 등을 포함할 수 있다.
모바일 디바이스(130)는 영상 장치들(171, 173, 175, 177)을 통해 디스플레이 장치들(151, 153, 155, 157) 각각을 제어하여 설정된 시간대에 디스플레이 장치들(151, 153, 155, 157)를 켜거나 끌 수 있다. 디스플레이 장치들(151, 153, 155, 157)은 예를 들어, 멀티 스크린 장치들 또는 멀티 프로젝터들일 수 있다.
영상 장치들(171, 173, 175, 177)은 예를 들어, 소형 스틱 디바이스의 형태로 구현될 수 있다. 영상 장치들(171, 173, 175, 177)은 예를 들어, 디스플레이 장치들(151, 153, 155, 157) 각각의 HDMI(High Definition Multimedia Interface) 포트, 또는 USB(Universal Serial Bus) 포트에 결합될 수 있다. 영상 장치들(171, 173, 175, 177) 각각은 결"W된 디스플레이 장치들(151, 153, 155, 157) 각각으로부터 전원을 공급받아 동작할 수 있다.
영상 장치들(171, 173, 175, 177)은 예를 들어, 와이파이(Wi-Fi), IEEE 802.11 무선 근거리 통신망(WLAN) 등과 같은 무선 네트워크를 통해 서로 통신하여 동기화된 컨텐츠를 재생할 수 있다.
영상 장치들(171, 173, 175, 177)은 예를 들어, 동영상 파일 뿐만 아니라, 유튜브와 같은 스트리밍 서비스를 통한 동영상 스트림, 게임 콘텐츠 역시 동기화하여 디스플레이 장치들(151, 153, 155, 157)을 통해 재생할 수 있다.
영상 장치들(171, 173, 175, 177)을 사용하려는 사용자(135)는 예를 들어, 서버(110)가 제공하는 웹(Web) 상에 자신의 계정을 만든 후, 영상 장치들(171, 173, 175, 177)을 디스플레이 장치들(151, 153, 155, 157)에 연결(또는 결합)하여 디바이스 등록 절차를 진행할 수 있다.
사용자(135)는 예를 들어, 모바일 앱에 로그인한 후 영상 장치들(171, 173, 175, 177)을 선택하여 하나의 대화면을 재생하는 장치 그룹을 생성할 수 있다.
디스플레이 장치들(151, 153, 155, 157) 각각에 영상 장치들(171, 173, 175, 177)이 연결되어 전원이 공급되면, 영상 장치(들)(171, 173, 175, 177)은 초기화가 필요한지 여부를 판단하고, 초기화가 필요하다면, 핫 스팟 호스트로 동작하여 모바일 디바이스(130)로부터 접속을 위한 정보(예를 들어, 액세스 포인트(Access Point; AP) 정보)를 획득할 수 있다.
영상 장치(들)(171, 173, 175, 177) 각각에는 장치 식별자가 부여될 수 있다. 장치 식별자는 장치 그룹 내로 UDP(User Datagram Protocol)를 통해 브로드캐스팅(broadcasting)될 수 있다. 예를 들어, 영상 장치들(171, 173, 175, 177) 각각에 포함된 HostAP 모듈이 자동으로 작동하여 해당 영상 장치들(171, 173, 175, 177) 고유의 와이파이 SSID(Service Set Identifier; 서비스 세트 식별자)를 브로드캐스팅할 수 있다. SSID는 무선 랜을 통해 전송되는 모든 패킷의 헤더에 존재하는 고유 식별자이다.
모바일 디바이스(130)는 고유의 SSID로 호스팅되는 각 영상 장치(들)(171, 173, 175, 177)에 접속할 수 있다. 모바일 디바이스(130)는 영상 장치(들)(171, 173, 175, 177)에게 접속할 액세스 포인트(AP)의 주소를 전달할 수 있다. 영상 장치(들)(171, 173, 175, 177)은 액세스 포인트에 접속하고, 모바일 디바이스(130)도 동일한 액세스 포인트에 접속할 수 있다. 사용자(135)는 모바일 디바이스(130)를 통하여, 공통 액세스 포인트에 접속한 영상 장치들의 목록을 확인할 수 있으며, 장치 그룹에 포함된 영상 장치들을 선택할 수 있다. 모바일 디바이스(130)는 설정된 장치 그룹에 관한 정보를 서버(110)에게 자동으로 전송함으로써 등록 절차가 완료될 수 있다.
또한, 사용자(135)는 웹 또는 모바일 앱 등을 통하여 컨텐츠를 관리하고, 컨텐츠의 재생 조건을 구성 및/또는 조작할 수 있다. 사용자(135)는 서버(110)를 통해 제공되는 웹 페이지 또는 모바일 디바이스(130)를 통해 영상 장치들(171, 173, 175, 177) 및/또는 디스플레이 장치들(151, 153, 155, 157)를 제어할 수 있다. 사용자(135)는 컨텐츠의 재생이 완료된 경우, 영상 장치들(171, 173, 175, 177) 및/또는 디스플레이 장치들(151, 153, 155, 157)의 전원을 차단할 수 있다. 사용자(135)가 다시 컨텐츠의 재생을 원하는 경우, 영상 장치들(171, 173, 175, 177) 및/또는 디스플레이 장치들(151, 153, 155, 157)을 원격으로 구동할 수 있다.
모바일 디바이스(130)는 영상 장치(들)(171, 173, 175, 177) 중 어느 하나를 마스터 영상 장치(예를 들어, 영상 장치(171))로 설정할 수 있다. 모바일 디바이스(130)는 장치 그룹에 대응하는 그룹 키를 생성한 후, 마스터 영상 장치(171)에게 그룹 키를 전송할 수 있다. 모바일 디바이스(130)은 장치 그룹에 포함된 영상 장치들에 대한 정보, 마스터 영상 장치(171)에 대한 정보, 및 그룹 키를 포함하는 정보를 서버(110)에게 전송할 수 있다. 이때, 장치 그룹에 포함된 영상 장치들 중 마스터 영상 장치(171)를 제외한 나머지 영상 장치(들)은 슬레이브 영상 장치들(173, 175, 177)에 해당할 수 있다.
마스터 영상 장치(171) 및 슬레이브 영상 장치들(173, 175, 177) 각각은 디스플레이 장치에 연결되는 경우, 초기화(예를 들어, 장치그룹 설정 등)가 완료되었는지 확인하고, 초기화가 완료되었다면 마스터 모드로 동작할지 혹은 슬레이브 모드로 동작할지 여부를 결정할 수 있다. 일 예로, 각 영상 장치들은 그룹 키를 저장하고 있는지 여부를 확인하고, 그룹 키를 저장하고 있다면 마스터 모드로 동작하고, 그룹 키를 저장하고 있지 않다면 슬레이브 모드로 동작할 것을 결정할 수 있다.
마스터 영상 장치(171)는 그룹 키를 이용하여 서버(110)에 로그 인을 시도하고, 서버(110)는 그룹 키를 검증(validation)할 수 있다. 그룹 키에 대한 검증이 완료되면, 서버(110)는 마스터 영상 장치(171)에 대한 로그 인 과정을 거쳐 마스터 영상 장치(171)를 제어할 수 있다. 서버(110)는 마스터 영상 장치(171)에게 컨텐츠 재생을 위한 주소 정보를 제공할 수 있다.
서버(110)로부터 컨텐츠 재생을 위한 주소 정보를 획득한 마스터 영상 장치(171)는 컨텐츠 재생을 위한 주소 정보를 슬레이브 영상 장치들(173, 175, 177)에게 제공할 수 있다. 서버(110)로부터 컨텐츠 재생을 위한 주소 정보를 수신한 슬레이브 영상 장치들(173, 175, 177)은 주소 정보에 기초하여 컨텐츠를 로딩(loading)할 수 있다. 컨텐츠의 로딩이 완료되면, 슬레이브 영상 장치들(173, 175, 177)은 마스터 영상 장치(171)에게 완료 신호를 전송할 수 있다. 마스터 영상 장치(171)는 슬레이브 영상 장치들(173, 175, 177)로부터 완료 신호를 수신함에 따라 슬레이브 영상 장치들(173, 175, 177)에게 컨텐츠 재생 명령을 전송할 수 있다.
일 실시예에 따른 마스터 영상 장치, 슬레이브 영상 장치 및 모바일 디바이스의 동작은 아래의 도 2 내지 도 5를 참조하여 보다 구체적으로 설명한다.
장치 그룹에 포함된 모든 영상 장치들(171, 173, 175, 177)에 대하여 전술한 디바이스 등록 절차가 종료되면, 영상 장치들(171, 173, 175, 177) 각각은 전체 대화면(컨텐츠의 전체 영역) 중 해당 영상 장치가 재생할 적어도 일부 영역을 설정하는 캘리브레이션을 수행할 수 있다. 이후, 마스터 영상 장치(171)로부터 재생 명령이 전송되면, 슬레이브 영상 장치들(173, 175, 177)은 각자의 캘리브레이션 정보에 따라 컨텐츠의 일부 영역을 재생할 수 있다.
일 실시예에 따른 영상 장치는 임의의 디스플레이 장치의 구성에 대해서 손쉬운 캘리브레이션 방법을 제공할 수 있다. 영상 장치는 예를 들어, 모바일 디바이스(130)의 사용자 인터페이스(User Interface; UI)와 와이파이로 서로 연동됨으로써, 사용자(135)가 모바일 디바이스(130)의 화면을 직접 보면서 디스플레이 장치(들)(151, 153, 155, 157)가 재생할 적어도 일부 영역을 설정하도록 할 수 있다.
장치 그룹에 포함된 모든 영상 장치들(171, 173, 175, 177)에서 캘리브레이션이 완료되면, 각 영상 장치들(171, 173, 175, 177)는 자신의 캘리브레이션 정보를 저장할 수 있다. 영상 장치들(171, 173, 175, 177)은 컨텐츠 재생명령을 수신하면, 저장된 캘리브레이션 정보를 이용하여 영상 정보를 생성하여 자신이 연결된 디스플레이 장치로 전달할 수 있다.
실시예에 따라, 각 캘리브레이션 정보는 서버(110)로 전송될 수 있다. 이 경우, 서버(110)는 하나의 대화면을 제공하기 위하여 각 영상 장치들(171, 173, 175, 177)과 결합된 디스플레이 장치들(151, 153, 155, 157) 각각의 기하 정보를 관리하고, 디스플레이 장치들(151, 153, 155, 157) 각각에 대한 보정을 제어할 수 있다.
영상 장치들(171, 173, 175, 177)은 캘리브레이션 정보에 기초하여 영상 장치들(171, 173, 175, 177) 각각에 대응하는 디스플레이 장치(151, 153, 155, 157)를 통해 컨텐츠의 전체 영역(예를 들어, 대화면)을 재생할 수 있다. 이때, 디스플레이 장치들(151, 153, 155, 157) 각각은 컨텐츠의 전체 영역 중 적어도 일부 영역을 재생할 수 있다.
영상 장치들(171, 173, 175, 177) 각각에 대한 캘리브레이션 정보가 결정되고 나면, 사용자(135)는 영상 장치들(171, 173, 175, 177) 각각에 대한 설정 또는 조절 과정을 반복할 필요 없이 컨텐츠 재생을 위한 작업을 모바일 디바이스(130) 또는 웹 페이지를 통해 수행할 수 있다.
사용자(135)는 서버(110)를 통해 제공되는 웹 페이지 또는 모바일 디바이스(130)를 통해 제공되는 모바일 앱을 통하여 원하는 컨텐츠를 업로드하고, 플레이리스트를 구성하여 대화면 영상을 재생할 수 있다. 이때, 업로드된 컨텐츠들은 서버(110) 또는 모바일 디바이스(130)의 컨텐츠 관리 시스템(Contents Management System; CMS)에 의해 관리될 수 있다.
예를 들어, 사용자(135)가 웹 상에서 재생 스케쥴을 생성하여 원하는 플레이리스트를 설정하면, 플레이리스트는 서버(110)에 저장될 수 있다. 서버(110)로부터 각 상영관 또는 전시관 등과 같은 상영 장소의 시작 시간에 맞추어 재생 명령이 전달되면, 영상 장치들(171, 173, 175, 177) 각각은 서버(110)와 통신하며 컨텐츠를 스트리밍(streaming)하거나, 또는 미리 캐싱(caching)한 컨텐츠를 영상 장치들(171, 173, 175, 177)마다의 캘리브레이션 정보에 따라 디스플레이 장치(151, 153, 155, 157)를 통해 재생할 수 있다. 일 실시예에 따른 영상 장치가 캘리브레이션을 수행하는 방법은 아래의 도 6 내지 도 10을 참조하여 구체적으로 설명한다.
또한, 일 실시예에 따른 영상 장치는 간단한 프로토콜을 이용하면서 컨텐츠의 재생을 위한 영상 장치들(171, 173, 175, 177) 간의 세밀한 시간 동기화를 지원할 수 있다.
예를 들어, 사용자(135)가 무선 네트워크상에서 여러 영상 장치들(171, 173, 175, 177)을 연결한 후, 영상 장치들(171, 173, 175, 177) 각각에서 비디오 및 오디오 스트림을 동기화하여 재생한다고 하자. 일 실시예에서는 타임 스탬프가 포함된 SNTP(Simple Network Time Protocol) 프로토콜을 사용하여 영상 장치들을 동기화할 수 있다. 이때, 각 영상 장치에서 타임 스탬프가 유효하기 위해서는 영상 장치들(171, 173, 175, 177) 각각의 시간 동기화가 요구된다.
일반적으로, 네트워크 상에 연결된 장치를 동기화 하기 위해 NTP(Network Time Protocol)를 사용할 수 있다. NTP는 다양한 환경에서 적용할 수 있는 강력한 프로토콜이지만 특정 상황에서 사용하기 곤란한 부분이 있다. 특히 최근 널리 사용되고 있는 IoT(Internet of Things) 디바이스나 모바일 기기에서는 개발 환경이나 OS(Operating System)와 같은 요소들 때문에 전체 NTP 기능을 이용하기 어렵다.
SNTP는 NTP에 비해 동작이 간단하여 프로그래밍이 가능한 환경이라면 어디든지 간단하게 동기화를 구현할 수 있다. 다만, 무선 네트워크로 연결되어 있는 경우에 동기화를 SNTP에 의존하게 되면 딜레이(delay)나 시간 오차가 매 시간마다 크게 변할 수 있다. 때문에 무선 네트워크 환경에서 SNTP를 이용하여 동기화를 하는 경우, 유선 LAN으로 연결되어 있을 때에 비해 동기화 된 결과의 변동폭이 커질 수 있다. 이와 같은 큰 변동폭은 비디오와 같은 콘텐츠를 장치 간에 동기화 하여 재생할 때 큰 문제로 작용할 수 있다. 예를 들어, 한 프레임 당 수십 밀리 세컨드(ms) 정도의 시간이 걸리므로 장치 간의 시간 동기화 오차가 수 밀리 세컨드(ms) 이하가 되어야 컨텐츠가 동기화 오차 없이 제대로 재생될 수 있다.
일 실시예에서는 무선 네트워크에서 SNTP 패킷 전송을 통해 얻은 타임 오프셋(time offset)을 RANSAC(Random Sample Consensus) 모델에 입력함으로써 동기화 오차를 최소화할 수 있다. RANSAC 모델은 정상 분포에 속해 있는 데이터 집합(예를 들어, 인라이어(inlier))으로 회귀 분석을 수행하는 모델에 해당할 수 있다.
일 실시예에 따른 영상 장치의 동기화 방법은 아래의 도 11 내지 도 16을 참조하여 구체적으로 설명한다.
도 2는 일 실시예에 따른 영상 장치의 동작 방법을 나타낸 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 영상 장치(예를 들어, 마스터 영상 장치)는 장치 그룹에 대응하는 그룹 키의 획득이 가능한지 여부를 판단한다(210). 예를 들어, 영상 장치는 메모리 등의 저장공간에 그룹 키가 저장되어 있는지 여부를 확인하거나, 그룹 키가 저장되어 있음을 지시하는 플래그 정보를 확인할 수 있다.
단계(210)에서 그룹 키의 획득이 가능하지 않다고 판단되면, 영상 장치는 초기화 모드 혹은 슬레이브 모드로 동작할 수 있다. 예를 들어, 영상 장치는 도 3 혹은 도 4의 흐름도에 따라 동작할 수 있다.
단계(210)에서 그룹 키의 획득이 가능하다고 판단되면, 영상 장치는 영상 장치 및 하나 또는 그 이상의 다른 영상 장치들을 포함하는 장치 그룹에 대응하는 그룹 키(group key)를 획득한다(220). 영상 장치는 예를 들어, 해당 영상 장치의 캐시 또는 메모리에 그룹 키가 저장되어 있는지를 체크하여 그룹 키를 획득할 수 있다. 이때, 그룹 키가 저장되어 있는 영상 장치는 해당 장치 그룹의 마스터 영상 장치에 해당할 수 있다. 영상 장치는 그룹 키의 획득 여부에 의해 자신(영상 장치)이 모바일 디바이스에 의해 결정된 마스터 영상 장치인지를 판단할 수 있다.
영상 장치는 부팅(booting) 시에 그룹 키를 저장하고 있는지 여부를 기초로, 그룹 키를 이용하여 서버에 대한 로그 인(log in)을 시도할 수 있다.
실시예에 따라서, 영상 장치는 메모리 등에 그룹 키를 저장하고 있는지 여부를 판단하고, 그룹 키를 저장하고 있다는 판단에 따라 자신(영상 장치)의 동작 모드를 마스터 모드로 전환할 수 있다. 또는, 그룹 키를 저장하고 있지 않다고 판단되면, 영상 장치는 자신의 동작 모드를 슬레이브 모드로 전환할 수 있다.
영상 장치는 그룹 키를 이용하여 서버에 접속함으로써 컨텐츠 재생을 위한 주소 정보를 획득한다(230). 주소 정보는 예를 들어, 컨텐츠 URL(Uniform Resource Locator)일 수 있다. 또는 주소 정보는 예를 들어, 장치 그룹에 포함된 복수의 영상 장치들에서 재생되는 컨텐츠에 대한 정보, 복수의 영상 장치들에서의 컨텐츠 재생 순서를 포함하는 플레이리스트(playlist) 등을 포함할 수 있다. 플레이리스트는 컨텐츠의 재생 순서에 따른 컨텐츠 URL들의 집합일 수 있다.
영상 장치는 주소 정보를 장치 그룹에 포함된 다른 영상 장치들에게 제공한다(240). 다른 영상 장치들은 예를 들어, 슬레이브 영상 장치들일 수 있다.
영상 장치는 다른 영상 장치들 각각에서 주소 정보에 기초한 컨텐츠의 로딩(loading)이 완료되었는지 여부를 기초로, 다른 영상 장치들에게 컨텐츠에 대한 재생 명령을 전송한다(250). 이때, 컨텐츠의 로딩이 완료되었는지 여부는 예를 들어, 컨텐츠의 로딩 완료를 위해 잔존하는 제1 시간이 컨텐츠의 재생 완료를 위해 잔존하는 제2 시간보다 적은지 여부에 기초하여 결정될 수 있다. 다시 말해, 컨텐츠의 로딩이 완료되기까지 남은 시간이 15초이고, 컨텐츠의 재생이 완료될 때까지 남은 시간이 20초라면, 영상 장치는 컨텐츠의 로딩이 완료된 것으로 결정할 수 있다. 반면, 현재 재생 중인 컨텐츠의 재생이 완료될 때까지 남은 시간이 10초라면, 영상 장치는 컨텐츠의 로딩이 완료되지 않은 것으로 결정할 수 있다.
영상 장치는 기 저장된 캘리브레이션 정보를 획득할 수 있다. 캘리브레이션 정보는 장치 그룹에 포함된 복수의 영상 장치들 중 영상 장치에 대응하는 디스플레이 장치가 컨텐츠의 재생을 위한 전체 영역 중 재생해야 하는 적어도 일부 영역을 설정하는 정보를 포함할 수 있다. 영상 장치는 컨텐츠, 및 캘리브레이션 정보에 기초하여, 디스플레이 장치를 위한 영상 정보를 생성한다(260). 영상 장치는 디스플레이 장치에 영상 정보를 제공한다(270).
도 3은 일 실시예에 따른 영상 장치의 초기화 방법을 나타낸 흐름도이다. 도 3을 참조하면, 일 실시예에 따른 영상 장치(마스터 영상 장치)는 디스플레이 장치로부터 전원이 공급(310) 됨에 따라, 초기화가 필요한지 여부를 판단할 수 있다(320).
단계(320)에서 초기화가 필요하지 않다고 판단되면, 영상 장치는 초기화 동작을 종료할 수 있다. 이때, 초기화가 필요한지 여부는 영상 장치가 접속을 위한 정보(예를 들어, AP 주소 등)를 포함하는지 여부에 기초하여 결정될 수 있다. 예를 들어, 접속을 위한 정보를 포함하는 경우, 영상 장치는 초기화가 필요하지 않다고 판단할 수 있다. 또는, 초기화가 필요한지 혹은 초기화가 완료되었는지 여부를 지시하는 별도의 플래그 정보가 이용될 수도 있다.
단계(320)에서 초기화가 필요하다고 판단되면, 영상 장치는 핫 스팟 호스트(Hot spot host)로 동작하여(330) 모바일 디바이스로부터 접속을 위한 정보를 획득할 수 있다(340).
영상 장치는 단계(340)에서 획득한 접속을 위한 정보를 이용하여 액세스 포인트에 접속하여 그룹 키를 수신할 수 있다(350).
영상 장치는 그룹 키를 캐시 또는 메모리 등에 저장할 수 있다(360).
도 4는 다른 실시예에 따른 영상 장치의 동작 방법을 나타낸 흐름도이다. 도 4를 참조하면, 일 실시예에 따른 영상 장치(예를 들어, 슬레이브 영상 장치)는 장치 그룹의 마스터 영상 장치로부터 컨텐츠 재생을 위한 주소 정보를 수신한다(410).
영상 장치는 주소 정보에 기초하여 장치 그룹을 위한 컨텐츠를 로딩한다(420).
영상 장치는 컨텐츠의 로딩이 완료되었는지 여부를 판단하고(430), 영상 장치는 단계(430)의 판단 결과(로딩 완료 여부)를 마스터 영상 장치로 전송한다(440).
영상 장치는 마스터 영상 장치로부터 컨텐츠에 대한 재생 명령을 수신한다(450).
영상 장치는 컨텐츠, 및 컨텐츠의 재생을 위한 전체 영역 중 영상 장치와 연결된 디스플레이 장치에 대응하는 영역에 컨텐츠의 적어도 일부를 재생하기 위한 캘리브레이션 정보에 기초하여, 디스플레이 장치를 위한 영상 정보를 생성한다(460).
영상 장치는 디스플레이 장치에 영상 정보를 제공한다(470).
실시예에 따라서, 영상 장치는 디스플레이 장치에 연결되었는지 여부를 판단하고, 디스플레이 장치에 연결되었다는 판단에 따라, 그룹키를 저장하고 있는지 여부를 체크할 수 있다. 영상 장치는 그룹 키를 저장하고 있지 않다는 체크되면, 영상 장치의 동작 모드를 슬레이브 모드로 전환할 수 있다.
도 5는 일 실시예에 따른 모바일 디바이스의 동작 방법을 나타낸 흐름도이다. 도 5를 참조하면, 모바일 디바이스는 영상 장치들에게 접속을 위한 정보를 전송할 수 있다(510). 모바일 디바이스는 예를 들어, 핫스팟 호스트로 동작하는 영상 장치에 접속하여, 해당 영상 장치에 AP 주소를 전송할 수 있다.
모바일 디바이스는 단계(510)에서 전송한 접속을 위한 정보를 이용하여, 영상 장치들 중 적어도 일부를 포함하는 장치 그룹을 결정할 수 있다(520). 모바일 디바이스는 예를 들어, AP에 접속하고, AP에 접속된 영상 장치들의 목록을 사용자에게 노출할 수 있다. 모바일 디바이스는 영상 장치들 중 적어도 일부를 선택하는 사용자의 입력에 반응하여, 선택된 영상 장치들을 포함하는 장치 그룹을 결정할 수 있다.
모바일 디바이스는 장치 그룹에 대응하는 그룹 키를 생성할 수 있다(530). 그룹 키는 예를 들어, UUID(Universal Unique IDentifier)와 같은 128 bit의 랜덤 숫자로 구성될 수 있다.
모바일 디바이스는 장치 그룹에 포함된 영상 장치들 중 마스터 영상 장치를 결정하고(540), 마스터 영상 장치에게 단계(530)에서 생성한 그룹 키를 전송할 수 있다(550). 모바일 디바이스는 예를 들어, 장치 그룹에 포함된 영상 장치들 중 어느 하나를 랜덤하게 선택함으로써 마스터 영상 장치를 결정할 수 있다. 마스터 영상 장치를 결정하는 방법은 통신환경이 가장 좋은 영상 장치를 마스터로 결정하는 등 미리 설정된 조건에 따라 다양하게 변형될 수 있다.
모바일 디바이스는 서버로 그룹 키를 포함하는 그룹 정보를 전송할 수 있다(560).
일 실시예에 따른 캘리브레이션 방법
도 6은 일 실시예에 따른 영상 장치의 영상 재생 방법을 설명하기 위한 도면이다. 도 6의 (a)를 참조하면, 모서리를 포함하는 투사면에 4개의 영상 장치들에 의해 컨텐츠가 재생되는 화면이 도시된다.
일 실시예에 따른 영상 장치는 평면, 곡면뿐만 아니라, 평면과 곡면이 혼합된 다양한 형태의 공간에 대한 컨텐츠를 재생할 수 있다. 예를 들어, 전시관의 모서리 공간(610, 620, 630, 640)에서 수묵 산수화를 설명하는 컨텐츠를 재생하고, 해당 공간의 중간에는 모니터(605) 등을 통해 다른 컨텐츠를 재생한다고 하자. 이때, 전시관의 모서리 공간에서 컨텐츠를 재생하기 위해서는 4개의 영상 장치들이 필요하다고 하자.
일 실시예에 따른 영상 장치들은 모바일 디바이스의 사용자 인터페이스(UI)와 와이파이로 서로 연동되어 사용자가 전체 대화면(컨텐츠의 전체 영역) 중 해당 영상 장치가 재생할 적어도 일부 영역을 설정하는 캘리브레이션을 수행할 수 있다.
마스터 영상 장치로부터 컨텐츠에 대한 재생 명령이 전송되면, 슬레이브 영상 장치들은 마스터 영상 장치와 함께 각자의 캘리브레이션 정보에 따라 대응되는 디스플레이 장치가 컨텐츠의 일부 영역을 재생하도록 할 수 있다.
사용자는 예를 들어, 모바일 앱에 로그인한 후 4개의 영상 장치들을 선택하여 하나의 대화면을 재생하는 장치 그룹을 생성할 수 있다. 이때, 4개의 영상 장치들 중 제1 영상 장치에 대응하는 제1 디스플레이 장치는 전시관의 모서리 공간의 투사면 중 제1 영역(610)에 대응하는 일부 영상을, 제2 영상 장치에 대응하는 제2 디스플레이 장치는 제2 영역(620)에 대응하는 일부 영상을, 제3 영상 장치에 대응하는 제3 디스플레이 장치는 제3 영역(630)에 대응하는 일부 영상을, 제4 영상 장치에 대응하는 제4 디스플레이 장치는 제4 영역(640)에 대응하는 일부 영상을 재생하도록 캘리브레이션 될 수 있다. 이때, 제1 영역(610) 내지 제4 영역(640)은 그 형태로 서로 상이함을 알 수 있다.
예를 들어, 각 디스플레이 장치는 전시관의 모서리 공간의 서로 다른 영역을 투사하도록 배치될 수 있다. 디스플레이 장치들이 투사하는 영역들은 서로 일정 영역씩 겹칠 수 있다. 각 디스플레이 장치를 제어하는 영상 장치는 캘리브레이션을 위하여 자신이 제어하는 디스플레이 장치의 투사 영역 내 복수의 포인트들(예를 들어, 4개의 포인트들)을 표시할 수 있다. 실시예에 따라, 각 영상 장치에 의하여 표시되는 복수의 포인트들은 다른 영상 장치에 의하여 표시되는 복수의 포인트들과 구분되도록(예를 들어, 다른 색상 혹은 다른 모양 등으로) 표시될 수 있다.
각 영상 장치의 제어를 통해 전시관의 모서리 공간의 투사면에 복수의 포인트들(예를 들어, 4개의 포인트들)이 표시되면, 사용자는 모바일 디바이스의 사용자 UI를 이용하여 투사면 상의 복수의 포인트들을 이동시켜 투사면의 각 영역의 형태에 따라 해당 영상 장치(에 대응하는 디스플레이 장치)가 재생할 일부 영역을 설정할 수 있다. 실시예에 따라, 적어도 하나의 포인트가 추가하거나 제거될 수도 있다.
제1 영역(610)부터 제4 영역(640)까지에 대한 설정이 완료되면, 각 영상 장치는 재생할 영역을 제외한 나머지 영역에 대응하는 마스크를 생성하여 나머지 영역에서는 영상이 재생되지 않도록 할 수 있다.
실시예에 따라서 영상 장치가 재생할 적어도 일부 영역을 설정하는 캘리브레이션 과정은 영상 장치에 의해 자동으로 수행될 수도 있다. 아래에서 상세히 설명하겠으나, 360도 카메라를 이용하여 투사 공간에 대한 정보를 획득하고, 각 디스플레이 장치에 의하여 서로 다른 패턴의 영상이 투사되도록 제어함으로써, 영상 처리 프로세스를 통하여 각 디스플레이 장치(혹은 각 영상 장치)를 위한 복수의 포인트들이 자동으로 설정될 수 있다.
도 6의 (b)를 참조하면, 곡면의 투사면에 3개의 영상 장치들에 의해 컨텐츠가 재생되는 화면이 도시된다. 도 6의 (b)에 도시된 투사면은 도 6의 (a)의 투사면과 달리, 동일한 원통형 형태를 가짐을 볼 수 있다.
예를 들어, 원통형으로 구성된 전시관에서 해양 영상의 컨텐츠를 재생한다고 하자.
일 실시예에 따른 영상 장치는 360도 촬영이 가능한 전방향 카메라를 이용하여, 해양 컨텐츠를 재생할 공간(180도의 원통형 공간)을 감지할 수 있다. 영상 장치는 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 디스플레이 장치들 각각으로부터 투사되는 구조화 패턴을 획득할 수 있다. 예를 들어, 해당 영상 장치(제1 영상 장치)는 수직 형태의 구조화 패턴을 투사하고, 제2 영상 장치는 수평 형태의 구조화 패턴을 투사하며, 제3 영상 장치는 지그재그 형태의 구조화 패턴을 투사한다고 하자.
영상 장치는 공간에 대한 감지 결과(180도의 원통형 공간) 및 각 영상 장치의 구조화 패턴에 기초하여, 180도의 원통형 공간에서 재생되는 해양 영상의 컨텐츠 중 영상 장치에 대응되는 디스플레이 장치들 각각이 재생할 영역을 결정할 수 있다.
예를 들어, 영상 장치는 180도의 원통형 공간 중 해당 영상 장치(제1 영상 장치)에 대응하는 디스플레이 장치가 제1 영역(650)에 대한 컨텐츠(예를 들어, 해양 영상의 컨텐츠 전체 중 1/3 영역)를 재생하고, 제2 영상 장치에 대응하는 디스플레이 장치가 제2 영역(660)에 대한 컨텐츠를 재생하며, 제3 영상 장치에 대응하는 디스플레이 장치가 제3 영역(670)에 대한 일부 컨텐츠를 재생하도록 결정할 수 있다. 이와 같이, 원통형으로 구성된 전시관에서 재생되는 해양 컨텐츠는 장치 그룹에 포함된 영상 장치들(에 대응하는 디스플레이 장치들)에 의해 투사면에 재생될 수 있다.
도 7은 일 실시예에 따른 영상 장치의 영상 재생 방법을 나타낸 흐름도이다. 도 7을 참조하면, 일 실시예에 따른 영상 장치는 컨텐츠를 재생할 공간에 대한 정보를 획득한다(710). 영상 장치는 사용자로부터 컨텐츠를 재생할 공간에 대한 정보를 입력 받음으로써 컨텐츠를 재생할 공간에 대한 정보를 획득할 수 있다. 이때, 컨텐츠를 재생할 공간에 대한 정보는 예를 들어, 재생할 공간이 평면 형태인지, 곡면 형태인지, 큐브 형태인지, 실린더 형태인지 등과 같은 공간의 형태, 및 해당 공간의 대략적인 크기를 포함할 수 있다. 또한, 영상 장치는 컨텐츠를 재생할 공간에 대한 정보에 기초하여 사용자로부터 컨텐츠를 재생할 투사면에 대한 선택을 입력받을 수도 있다. 여기서, '(컨텐츠의) 재생'은 프로젝터를 이용한 컨텐츠의 투사 혹은 스크린 장치를 이용한 컨텐츠의 상영(디스플레이)을 포함하는 의미로 이해될 수 있다.
영상 장치는 단계(710)에서 획득한 공간에 대한 정보에 기초하여 결정된 투사면에 영상 장치에 대응하는 디스플레이 장치가 재생할 적어도 일부 영역을 설정하기 위한 마스크(mask)를 생성한다(720). 예를 들어, 투사면은 복수의 디스플레이 장치들에게 분할되어 할당되고, 각 디스플레이 장치는 자신에게 할당된 영역에 화상을 투사하면 된다. 이 경우, 각 디스플레이 장치는 자신이 투사할 수 있는 전체 영역 중 일부 영역에만 화상을 투사하면 되며, 일부 영역에 대한 정보를 마스크로 저장할 수 있다.
컨텐츠의 전체 영역은 영상 장치 및 하나 또는 그 이상의 다른 영상 장치들을 포함하는 장치 그룹에 의해 투사면에 재생될 수 있다. 이때, 마스크는 예를 들어, 알파 맵 마스크(α map mask)일 수 있다.
실시예에 따라서, 디스플레이 장치는 멀티 스크린 장치들 또는 멀티 프로젝터들일 수 있다. 예를 들어, 디스플레이 장치가 멀티 프로젝터인 경우, 일 실시예에 따른 영상 장치는 다음과 같은 자동 방법을 통해 디스플레이 장치가 재생할 적어도 일부 영역을 결정할 수 있다.
영상 장치는 360도 촬영이 가능한 전방향 카메라를 이용하여, 컨텐츠를 재생할 공간을 감지할 수 있다. 영상 장치는 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 디스플레이 장치들 각각으로부터 투사되는 구조화 패턴을 획득할 수 있다. 영상 장치는 공간에 대한 감지 결과 및 구조화 패턴을 기초로, 컨텐츠의 전체 영역 중 디스플레이 장치들 각각이 재생할 적어도 일부 영역을 결정할 수 있다.
또는 실시예에 따라서, 영상 장치는 다음과 같은 수동 방법을 통해 디스플레이 장치가 재생할 적어도 일부 영역을 결정할 수 있다. 영상 장치는 디스플레이 장치를 이용하여 투사면에 복수의 포인트들을 표시할 수 있다. 영상 장치는 사용자 입력에 기초하여 복수의 포인트들 중 적어도 하나의 포인트를 이동시킬 수 있다. 영상 장치는 이동된 포인트를 포함하는 복수의 포인트들에 기초하여 일부 영역을 결정할 수 있다. 예를 들어, 일부 영역은 각 포인트들을 꼭지점으로 하는 다각형으로 결정될 수 있다.
영상 장치는 자동 결정 또는 사용자 입력에 의해 결정된 포인트들을 이용하여 투사면에서 적어도 일부 영역을 제외한 나머지 영역에 대응하는 마스크를 생성할 수 있다. 영상 장치는 마스크를 이용하여 나머지 영역에 대응하는 픽셀 값을 조정할 수 있다. 영상 장치는 예를 들어, 나머지 영역에 대응하는 마스킹 값을 '0'으로 조정함으로써 마스크에 해당하는 영역에 화상이 출력되지 않도록 할 수 있다. 마스크를 생성하는 방법에 관한 보다 구체적인 사항은 도 8을 통하여 후술한다.
영상 장치는 디스플레이 장치의 컨텐츠 재생 시에 적어도 일부 영역의 픽셀들의 좌표들에 대응하여 투사면에 실제로 투사되는 영역의 픽셀들의 참조 좌표들을 포함하는 참조 텍스쳐를 결정한다(730). 참조 좌표는 예를 들어, 평면 영상 또는 곡면 영상을 위한 UV 좌표일 수도 있고, 360도 영상을 위도 및 경도 좌표일 수도 있다. 또한, 참조 텍스쳐는 UV 좌표들의 집합에 해당하는 UV 텍스쳐거나 또는 위도 및 경도 좌표들의 집합에 해당하는 파이 맵(PHI map)일 수 있다.
영상 장치는 예를 들어, 컨텐츠와 컨텐츠가 투사면에 실제로 투영된 투영 영상 간의 관계에 대응하는 호모그래피 매트릭스(homography matrix)를 이용하여, 참조 텍스쳐를 결정할 수 있다. 이때, 컨텐츠(Px)와 컨텐츠가 투사면에 실제로 투영된 투영 영상(Px') 간에는 아래의 [수학식 1]과 같은 관계가 성립할 수 있다.
Figure 112017112218388-pat00001
여기서, H은 호모그래피 매트릭스에 해당할 수 있다.
UV 텍스쳐의 경우 특정된 영역 내 픽셀들의 좌표를 상대좌표로 표시할 수 있다. 예를 들어, 도 9를 참조하면, 전체 컨텐츠 내 각 픽셀들은 (0, 0), (1, 0), (0, 1), (1, 1) 이내의 UV 좌표를 가질 수 있다. 각 영상 장치에 대응하여 결정된 일부 영역은 투영 영상(Px') 상의 영역에 해당하고, 수학식 1을 이용하여 일부 영역 내 각 픽셀들에 매칭되는 컨텐츠 상 픽셀이 결정될 수 있다. 일 예로, 투영 영상(Px') 상의 픽셀의 UV 좌표를 결정하기 위하여, 호모그래피 매트릭스를 이용하여 투영 영상(Px') 상의 픽셀을 컨텐츠(Px) 상의 픽셀로 매칭할 수 있다. 투영 영상(Px') 상의 픽셀의 UV 좌표는 컨텐츠(Px) 상의 매칭된 픽셀의 UV 좌표로 설정될 수 있다.
영상 장치는 마스크 및 참조 텍스쳐를 이용하여 적어도 일부 영역을 재생한다(740). 영상 장치는 마스크 및 참조 텍스쳐 중 적어도 하나를 영상 장치에 대응시켜 저장하거나, 또는 영상 장치에 대응하는 디스플레이 장치에 매칭시켜 저장할 수 있다. 영상 장치는 컨텐츠를 재생할 때, 저장된 마스크 및 참조 텍스쳐를 이용하여 영상 정보를 생성하고, 생성된 영상 정보를 디스플레이 장치에 전달할 수 있다. 예를 들어, 영상 장치는 저장된 마스크를 이용하여 자신과 연결된 디스플레이 장치의 투사 가능 영역 내에서 실제로 화상을 투사해야 하는 영역을 결정할 수 있고, 참조 텍스쳐를 이용하여 결정된 실 투사 영역 내 각 픽셀들의 값을 결정할 수 있다. 전술한 것과 같이, 참조 텍스쳐는 실 투사 영역 내 각 픽셀들의 값을 결정하기 위하여 컨텐츠 내 어느 픽셀의 값을 참조해야 하는지에 대한 정보를 포함한다.
도 8은 일 실시예에 따라 마스크를 생성하는 방법을 설명하기 위한 도면이다. 도 8을 참조하면, 전체 투사면(805)에서 제1 영상 장치에 대응하는 제1 디스플레이 장치가 컨텐츠를 재생할 수 있는 부분(810) 및 제2 영상 장치에 대응하는 제2 디스플레이 장치가 컨텐츠를 재생할 수 있는 부분(850)이 도시된다. 이때, 제1 영상 장치와 제2 영상 장치는 서로 동일한 장치 그룹에 속한 영상 장치일 수 있다.
예를 들어, 모바일 디바이스로부터 컨텐츠에 대한 재생 명령이 전송되면, 제1 디스플레이 장치는 부분(810)에서 컨텐츠의 전체 영역 중 일부에 해당하는 영역(830)을 재생하고, 제2 디스플레이 장치는 부분(850)에서 컨텐츠의 전체 영역 중 일부에 해당하는 영역(860)을 재생할 수 있다.
일 실시예에서는 영상 장치와 연동되는 모바일 디바이스의 사용자 인터페이스(UI)를 통하여, 사용자는 디스플레이 장치가 재생할 영역을 설정할 수 있다.
예를 들어, 영상 장치는 디스플레이 장치를 이용하여 투사면(805)에 복수의 포인트들(예를 들어, 부분(810) 내부의 임의의 4개의 포인트들)을 표시할 수 있다. 실시예에 따라, 영상 장치는 투사면(805)의 기본 성질(예를 들어, 투사공간의 유형, 투사공간의 크기 등)에 기초하여 복수의 포인트들이 최초로 표시되는 위치를 결정할 수도 있다.
사용자는 모바일 디바이스의 사용자 인터페이스를 이용하여 4개의 포인트들을 이동시켜 영역(830)의 모서리로 이동시킬 수 있다. 영상 장치는 영역(830)의 모서리로 이동된 4개의 포인트들에 의해 제1 디스플레이 장치가 재생할 적어도 일부 영역(830)을 설정할 수 있다.
마찬가지 방식으로, 영상 장치는 투사면(805)에 복수의 포인트들을 표시하고, 사용자는 모바일 디바이스의 사용자 인터페이스를 통하여 부분(850)의 각 모서리의 위치에 대응하는 4개의 포인트들을 이동시켜 영역(860)의 모서리로 이동시킬 수 있다. 영상 장치는 영역(860)의 모서리로 이동된 4개의 포인트들에 의해 제2 디스플레이 장치가 재생할 적어도 일부 영역(860)을 설정할 수 있다.
영상 장치는 제1 디스플레이 장치를 위한 마스크 정보를 생성할 수 있다. 영상 정보는 예를 들어, 일부 영역(830)에 대응하는 마스킹 값을 '1'로 조정하고, 나머지 영역(820)에 대응하는 마스킹 값을 '0'으로 조정할 수 있다.
마찬가지로, 영상 장치는 제2 디스플레이 장치를 위한 마스크 정보를 생성할 수 있다. 영상 장치는 일부 영역(860)에 대응하는 마스킹 값을 '1'로 조정하고, 나머지 영역(870)에 대응하는 마스킹 값을 '0'으로 조정할 수 있다.
제1 영상 장치는 모바일 디바이스 또는 서버에 의해 전송된 신호에 의해, 제1 영상 장치에 대응하는 제1 디스플레이 장치가 재생하는 영역(830)이 제2 영상 장치에 대응하는 제2 디스플레이 장치가 재생하는 영역(860)과 겹치는 영역(overlapped area)(840)이 발생함을 파악할 수 있다. 이 경우, 제1 영상 장치는 겹치는 영역(840)에 대한 마스킹 값을 예를 들어, 0.5로 조정할 수 있다. 제2 영상 장치 또한 제1 영상 장치와 마찬가지로, 겹치는 영역(840)에 대한 마스킹 값을 예를 들어, 0.5로 조정할 수 있다. 이로 인하여, 복수의 디스플레이 장치들에 의하여 겹쳐서 투사되는 영역의 밝기가 단일 디스플레이 장치에 의하여 투사되는 영역의 밝기와 동일해질 수 있다.
또한, 제1 영상 장치 또는 제2 영상 장치는 겹치는 영역(840)에 포함된 일부 영역들의 경계선들(835, 865) 및 경계선들(835, 865)에 인접한 영역을 포함하는 경계 영역의 마스킹 값을 스무딩(smoothing)할 수 있다. 이로 인하여, 복수의 디스플레이 장치들에 의하여 분할되어 투사되는 영역들 사이의 경계의 시인성이 제거될 수 있다.
영상 장치는 예를 들어, 1차 미분법, 소벨 에지(sobel edge) 추출법, 프리윗 에지(prewitt dege) 추출법 등과 같은 다양한 에지 추출 알고리즘을 이용하여 경계 영역을 산출할 수 있다. 영상 장치는 예를 들어, 가우시안 스무딩(Gaussian) 알고리즘 또는 히스토그램 평활화(Histrogram Equalization) 등과 같은 다양한 스무딩 알고리즘을 이용하여 경계 영역을 스무딩할 수 있다.
도 9는 일 실시예에 따라 참조 텍스쳐를 결정하는 방법을 설명하기 위한 도면이다. 도 9를 참조하면, 참조 텍스쳐의 일 예인 UV 텍스쳐(910)가 도시된다.
UV 좌표계는 텍스쳐 이미지(UV 텍스쳐(910))를 3차원 공간에 입히는 텍스쳐 맵핑을 위해 변환 기준이 되는 2차원 좌표계에 해당할 수 있다.
UV 좌표는 최소 0부터 1까지의 값을 가질 수 있다. UV 좌표는 참조 텍스쳐(UV 텍스쳐(910))의 해상도와 관계없이 0부터 1까지의 값으로 표현될 수 있다.
도 9의 (a)는 아직 참조 텍스쳐(UV 텍스쳐(910))를 입히지 않은 두 삼각형을 나타낸다. 이때, 정점 v0, v1, v2가 하나의 삼각형을 이루고, 정점 v0, v2, v3가 다른 하나의 삼각형을 이룰 수 있다.
도 9의 (b)는 참조 텍스쳐를 이용하여 렌더링하기 위한 v0, v1, v2, v3의 UV 좌표의 범위가 (0,0) ~ (1,1)인 경우를 나타내고, 도 9의 (c)는 렌더링을 위한 UV 좌표의 범위가 (0,0) ~ (0.5, 1)인 경우를 나타낸다. 도 9의 (c)에 따르면, 참조 텍스쳐(UV 텍스쳐(910))의 왼쪽 절반만이 보여짐을 알 수 있다.
도 9의 (d)는 렌더링을 위한 UV 좌표의 범위가 (0,0) ~ (0.5, 0.5)인 경우를 나타내며, 이때는 참조 텍스쳐(UV 텍스쳐(910))의 왼쪽 절반 중 위쪽 절반만이 보여질 수 있다.
도 9의 (e)는 렌더링을 위한 UV 좌표의 범위가 (0,0) ~ (1,2)인 경우를 나타낸다. 이 경우, 참조 텍스쳐(UV 텍스쳐(910))는 위 아래로 두 번 반복해 표현될 수 있다. 도 9의 (f)와 같이 렌더링을 위한 UV 좌표의 범위가 (0,0) ~ (2,2)인 경우, 참조 텍스쳐(UV 텍스쳐(910))는 위아래로 두 번, 그리고 좌우로 두 번 반복해 표현될 수 있다. 이 외에도 렌더링을 위한 UV 좌표의 범위를 (1,0) ~ (0,1)로 하면 참조 텍스쳐(UV 텍스쳐(910))의 좌우를 뒤집어 표현할 수 있다.
영상 장치는 전술한 방식으로 디스플레이 장치의 컨텐츠 재생 시에 적어도 일부 영역의 픽셀들의 좌표들에 대응하여 투사면에 실제로 투사되는 영역의 픽셀들의 참조 좌표들을 포함하는 참조 텍스쳐를 이용할 수 있다.
도 10은 다른 실시예에 따른 참조 텍스쳐를 결정하는 방법을 설명하기 위한 도면이다. 도 10을 참조하면, 360도 영상을 위도 및 경도 좌표로 표현한 참조 좌표가 도시된다. 참조 텍스쳐는 위도 및 경도 좌표들의 집합에 해당하는 파이 맵(PHI map)일 수 있다. 파이 맵에서 위도 및 경도 좌표는 도 9를 통해 설명한 UV 좌표와 마찬가지로 기능할 수 있다.
일 실시예에 따른 동기화 방법
도 11은 일 실시예에 따른 영상 장치의 동기화 방법을 나타낸 흐름도이다. 도 11을 참조하면, 일 실시예에 따른 영상 장치(예를 들어, 슬레이브 영상 장치)는 무선 네트워크에서 장치 그룹에 포함된 마스터 영상 장치와 시간 정보를 교환한다(1110). 시간 정보는 예를 들어, SNTP 패킷을 이용하여 교환될 수 있다. 이때, 시간 정보는 제1 패킷을 제1 시간에 마스터 영상 장치에게 전송하는 영상 장치 측의 제1 타임 스탬프, 영상 장치로부터 제1 시간에 전송된 패킷을 제2 시간에 수신하는 마스터 영상 장치 측의 제2 타임 스탬프, 및 제2 패킷을 제2 시간으로부터 소정의 딜레이 이후인 제3 시간에 영상 장치로 전송하는 마스터 영상 장치 측의 제3 타임 스탬프를 포함할 수 있다. 제1 패킷은 제1 타임 스탬프를 포함하고, 제2 패킷은 제1 타임 스탬프, 제2 타임 스탬프, 및 제3 타임 스탬프를 포함할 수 있다. 일 실시예에 따른 영상 장치가 마스터 영상 장치와 시간 정보를 교환하는 구체적인 방법은 도 12를 참조하여 구체적으로 설명한다.
영상 장치는 시간 정보에 기초하여 마스터 영상 장치와 영상 장치 간의 타임 오프셋들을 산출한다(1120). 영상 장치는 단계(1110)에서 마스터 영상 장치와 교환한 시간 정보에 포함된 제1 내지 제3 타임 스탬프들, 및 마스터 영상 장치로부터 제3 시간에 전송된 제2 패킷을 제4 시간에 수신하는 영상 장치 측의 제4 타임 스탬프에 기초하여 타임 오프셋들을 산출할 수 있다. 실시예에 따라서, 영상 장치는 시간 정보에 대한 유효성을 검사하고, 유효성 검사를 통과한 시간 정보에 기초하여 타임 오프셋들을 산출할 수 있다.
영상 장치는 타임 오프셋들로부터 샘플링 데이터를 추출하기 위한 샘플링 파라미터 및 샘플링 데이터가 아웃라이어인지 여부를 판단하기 위한 필터링 파라미터에 기초하여, 동기화 정보를 생성한다(1130). 이때, 샘플링 파라미터는 아웃라이어가 필터링된 샘플링 데이터에서 샘플링 데이터가 추출될 확률 및 타임 오프셋들 중에서 아웃라이어가 필터링된 샘플링 데이터의 비율에 기초하여 결정될 수 있다. 필터링 파라미터는 아웃라이어가 필터링된 샘플링 데이터의 표준 편차에 기초하여 결정될 수 있다. 영상 자치가 동기화 정보를 생성하는 방법은 도 13을 참조하여 구체적으로 설명한다.
영상 장치는 동기화 정보를 이용하여 마스터 영상 장치에 동기화한다(1140).
도 12는 일 실시예에 따른 어느 하나의 슬레이브 영상 장치와 마스터 영상 장치 간에 주고 받는 시간 정보를 설명하기 위한 도면이다.
컴퓨터 하드웨어 기술은 소형화와 고성능이라는 키워드를 중심으로 계속 개발되어 현재는 다양한 제품들이 시장에 나오고 있다. 특히 라즈베이 파이와 같은 제품을 필두로 소형 컴퓨터가 많이 등장하였는데, 최근에는 높은 수준의 그래픽 연산까지 가능한 제품들이 속속 나오고 있어 그 사용성이 점차 늘어가고 있다. 이러한 기기들은 Full-HD 이상의 영상 복호화를 지원하고 네트워크 모듈과 다양한 운영체제도 지원함으로써 많은 창의적인 서비스들이 가능하도록 한다. 이러한 고성능 소형 컴퓨터를 복수의 디스플레이를 사용하는 영상 시스템에 이용하고자 할 때, 디스플레이 하나당 소형 컴퓨터가 한 개씩 연결되고 각각이 영상의 한 부분씩을 담당하여 재생할 수 있다.
그리고 무선 네트워크를 통해 시간 동기화를 수행하며 각각의 영상을 재생해야 하는데, 여기서 중요한 것이 바로 안정적인 동기화이다. 일반적인 상용 시스템을 위한 무선 동기화 재생 모듈의 조건은 아래의 3가지로 정리할 수 있다.
1. 프레임 동기화를 위한 수 밀리초 이내의 시간 정밀도
2. 시간 동기화를 시작한 후 목표 시간 정밀도를 달성까지의 신속함
3. 네트워크 상황이 불안정한 때를 대비 가능함
대부분의 시스템들은 시간 동기화를 위해 국제표준인 NTP(Network Time Protocol)를 사용한다. NTP는 이론적으로 국제 표준시인 UTC(Coordinated Universal Time)와 밀리 세컨드 단위로 동기화하는데, 이를 위해 원자 시계부터 계층 구조로 분산 네트워크를 이루며 여러 시계들과 패킷을 주고 받는다. 그리고 그 정보들을 후처리 알고리즘들을 통해 통계적인 방법으로 분석하고 시계를 맞추는데 사용할 수 있다. 이러한 NTP의 복잡한 구조는 신속하게 시계를 맞추기보다는 정확하게 맞추기 위한 것이므로 목표 시간 정밀도를 신속하게 맞추기 어렵다. 따라서 일 실시예에서는 위의 조건 2를 만족시키기 위해서는 무선 동기화 재생 모듈로서 SNTP를 사용한다.
SNTP는 기존의 NTP 표준에서 복잡한 후처리 알고리즘을 필요로 하지 않기 때문에 구현이 비교적 간단하고, 커스터마이징도 용이하다. 그러나 무선 네트워크를 이용하는 장치들 간에 시간 동기화를 수행하고자 할 때, SNTP는 주고받는 패킷들에 대한 필터링 과정이 생략되어 있기 때문에 안정성이 떨어진다는 문제점이 있다. 유선 연결에 비해 불안정한 무선 네트워크에 있어서 비정상적인 패킷 하나만으로도 동기화 재생의 품질을 떨어뜨릴 수 있기 때문이다.
일 실시예에서는 RANSAC 알고리즘을 이용하여 SNTP의 구동 과정에서 얻어진 시간 샘플을 처리하여 동기화를 유지함으로써 SNTP를 기반으로 신속성과 정밀도를 가진 무선 네트워크 상에서의 시간 동기화 방법을 제공할 수 있다. 이는 제한된 컴퓨팅 환경에서도 간단히 구현이 가능하고, NTP의 데이터 처리 과정 중 신뢰도 높은 샘플을 고를 수 있다. 실험 결과에 따르면, 일 실시예에 따른 동기화 방법은 5초 안에 5 밀리초 이내의 시간 정밀도를 유지하며 어떤 환경에서도 안정적으로 구동될 수 있을 정도로 적은 리소스를 사용함을 볼 수 있다.
일 실시예에서는 네트워크 상의 서버(server)-피어(peer)-클라이언트들(clients) 간에 시간 정보를 담은 패킷을 교환하면서 정보를 분석하는 방법으로 동기화를 수행할 수 있다. 이 때 패킷에 담기는 시간 정보를 타임 스탬프(time stamp)라고 할 수 있다. 타임 스탬프에 보낸 패킷과 받은 패킷에 대한 정보를 모두 기록함으로써 동시에 여러 장치들과 패킷을 교환하더라도 패킷 분실 및/또는 중복 전송에 상관없이 안전하게 동기화를 수행할 수 있다.
도 12를 참조하면, 슬레이브 영상 장치 A(1210)와 마스터 영상 장치 B(1230) 간에 제1 시간(T1)부터 제4 시간(T4)까지 패킷을 주고받는 시간 정보가 도시된다. 일 실시예에서는 제1 시간(T1)부터 제4 시간(T4)까지의 4개의 타임 스탬프와 org, rec, xmt라는 세 개의 상태 변수를 이용할 수 있다. org는 송신(슬레이브 영상 장치 A(1210)) 측의 타임 스탬프를, rec는 수신(마스터 영상 장치 B(1230)) 측의 타임 스탬프, xmt는 송신(슬레이브 영상 장치 A(1210)) 측의 타임 스탬프를 나타낼 수 있다.
4개의 타임 스탬프는 제1 패킷을 제1 시간(T1)에 마스터 영상 장치에게 전송하는 영상 장치 측의 제1 타임 스탬프, 영상 장치로부터 제1 시간(T1)에 전송된 패킷을 제2 시간(T2)에 수신하는 마스터 영상 장치 측의 제2 타임 스탬프, 제2 패킷을 제2 시간(T2)으로부터 소정의 딜레이 이후인 제3 시간(T3)에 영상 장치로 전송하는 마스터 영상 장치 측의 제3 타임 스탬프, 및 마스터 영상 장치로부터 제3 시간(T3)에 전송된 제2 패킷을 제4 시간(T4)에 수신하는 영상 장치 측의 제4 타임 스탬프를 포함할 수 있다.
제1 패킷은 슬레이브 영상 장치 A(1210)로부터 전송될 수 있다.
슬레이브 영상 장치 A(1210)가 제1 패킷을 통해 송신 측의 타임 스탬프인 T1를 전송하며, 마스터 영상 장치 B(1230)는 타임 스탬프 T1를 xmt에 복사해둘 수 있다.
마스터 영상 장치 B(1230)는 제1 패킷을 제2 시간(T2)에 받아서 받은 내용인 T1을 자신의 org에 복사하고, T2를 rec에 복사한다. 그리고 잠시 후인 제3 시간(T3)에 마스터 영상 장치 B(1230)는 제2 패킷에 T1, T2, T3를 모두 담아 슬레이브 영상 장치 A(1210)에게 전송할 수 있다. 마스터 영상 장치 B(1230)는 이때 자신이 제2 패킷을 전송한 시간인 T3 에 대한 정보 또한 xmt에 복사해둘 수 있다.
슬레이브 영상 장치 A(1210)는 제4 시간(T4)에 마스터 영상 장치 B(1230)가 전송한 제2 패킷을 수신하고, 제2 패킷에 대한 유효성 검사를 수행할 수 있다.
슬레이브 영상 장치 A(1210)는 제4 시간(T4)에 받은 제2 패킷에 포함된 T1이 xmt에 저장해 놨던 정보와 같은지를 비교하고, T3 값이 0이 아닌지를 체크함으로써 제2 패킷이 유효한 패킷인지를 검사할 수 있다.
검사 결과, 제2 패킷이 유효한 패킷으로 확정되면, 슬레이브 영상 장치 A(1210)는 지금까지 저장된 정보인 T1, T2, T3를 이용하여 타임 오프셋(θ)과 라운드 트립 딜레이(round-trip delay)(δ)를 계산할 수 있다.
타임 오프셋(θ)은 슬레이브 영상 장치 A(1210)와 마스터 영상 장치 B(1230) 간의 시간 차를 의미하며, 예를 들어, 아래의 [수학식 2]을 통해 구할 수 있다.
Figure 112017112218388-pat00002
라운드 트립 딜레이(δ)는 보낸 패킷이 돌아올 때까지 순수하게 이동하는 데에만 걸린 시간을 의미하며, 예를 들어, 제4 시간과 제1 시간 간의 차이 및 제3 시간과 제2 시간 간의 차이를 더한 값으로 결정될 수 있다.
이렇게 획득한 타임 오프셋(θ)과 라운드 트립 딜레이(δ) 정보들 중에는 네트워크 장애 등 여러 가지 원인으로 인한 노이즈가 포함될 수 있다. 일 실시예에서는 아래의 도 13의 방법에 의해 타임 오프셋에 포함된 노이즈를 제거하여 최종적으로 가장 좋은 타임 오프셋 값을 이용하여 동기화를 수행할 수 있다.
도 13은 일 실시예에 따라 동기화 정보를 생성하는 방법을 나타낸 흐름도이다. 도 13을 참조하면, 일 실시예에 따른 영상 장치는 타임 오프셋들을 RANSAC 모델에 입력함으로써, 타임 오프셋들 중 아웃라이어(outlier)가 필터링된 샘플링 데이터를 획득한다(1310). 여기서, 아웃라이어는 예를 들어, 타임 오프셋 값이 200 ms 이상 튀는 경우와 같이 통상적인 타임 오프셋 값의 범위에서 크게 벗어나는 노이즈에 해당하는 값으로 이해될 수 있다. 또한, 인라이어는 통상적인 타임 오프셋 값의 범위 내에 존재하는 값들로 이해될 수 있다.
RANSAC은 어떤 데이터에서 그것들을 표현할 수 있는 수학적 모델을 구하는 방법으로서, 무작위로 뽑은 샘플링 데이터에 대해서 가장 많은 지지를 받는 모델을 선택할 수 있다. 기본적으로 샘플링 데이터에서 아웃라이어의 비중이 추측하고자 하는 모델의 실제값에 영향이 미미할 때 잘 작동하게 된다.
RANSAC 모델을 이용할 때, 필요한 것은 샘플링 과정을 몇 번 반복할 것인지의 반복 횟수(k)와 해당 타임 오프셋을 인라이어(inlier) 리스트에 넣을지를 결정하는 기준값 (t)이다. 반복 횟수(k)는 샘플링 파라미터라고 부를 수 있다. 또한, 기준 값(t)는 필터링 파라미터라고 부를 수 있다.
RANSAC 모델이 성공하기 위해서는 샘플링 데이터를 추출하는 시도 중 적어도 한 번은 인라이어들에서만 샘플링 데이터가 뽑혀야 한다. 이러한 확률은 반복 횟수(k)를 늘릴수록 증가하지만 그와 함께 연산량도 증가하므로 아래의 [수학식 3]와 같은 확률 계산식을 이용하여 반복 횟수(k)를 결정할 수 있다.
Figure 112017112218388-pat00003
여기서, p는 인라이어들 중에서 샘플링 데이터가 추출될 확률을 나타내고, α는 입력 데이터들(타임 오프셋들) 중에서 인라이어들의 비율, 다시 말해 타임 오프셋들 중에서 아웃라이어가 필터링된 샘플링 데이터의 비율을 나타낸다. n은 한 번에 뽑는 샘플링 데이터들의 개수를 나타내고, k는 샘플링 데이터를 뽑는 반복 횟수이다.
해당 타임 오프셋을 인라이어 리스트에 넣을지를 결정하는 기준값(t)이 너무 크면 모델 간의 변별력이 없어지고, 너무 작으면 RANSAC 알고리즘 자체가 실패할 확률이 올라갈 수 있다. 일 실시예에서 인라이어들의 표준 편차를 2σ라고 할 때, 기준값(t)이 2σ 또는 3σ가 되도록 결정할 수 있다. 실시예에 따라서 타임 오프셋들의 분산을 구해서 기준값(t)를 정한 후에 RANSAC을 수행함으로써 보다 정확한 결과를 얻을 수 있다.
일 실시예에 따른 영상 장치가 아웃라이어가 필터링된 샘플링 데이터를 획득하는 방법은 도 14를 참조하여 구체적으로 설명한다.
영상 장치는 획득된 샘플링 데이터에 기초하여, 동기화 정보를 결정한다(1320). 영상 장치가 획득된 샘플링 데이터에 기초하여 동기화 정보를 결정하는 방법은 도 15를 참조하여 구체적으로 설명한다.
도 14는 일 실시예에 따라 아웃라이어가 필터링된 샘플링 데이터를 획득하는 방법을 나타낸 흐름도이다. 도 14를 참조하면, 일 실시예에 따른 영상 장치는 타임 오프셋들로부터 샘플링 데이터를 추출할 수 있다(1410). 예를 들어, 타임 오프셋들이 1000 개 있다면, 영상 장치는 1000 개의 타임 오프셋들 중 100개 또는 50개를 샘플링 데이터로 추출할 수 있다.
영상 장치는 샘플링 데이터의 통계값에 기초하여 기준 모델(criteria model) 을 결정할 수 있다(1420). 기준 모델을 예를 들어, 타임 오프셋 값의 평균값, 다시 말해 상수 모델일 수 있다. 샘플링 데이터의 통계값은 예를 들어, 평균, 또는 분산 값일 수 있다.
영상 장치는 샘플링 데이터와 기준 모델 간의 차이와 필터링 파라미터를 비교함으로써 아웃라이어를 제거할 수 있다(1430). 예를 들어, 필터링 파라미터가 0.0005 이고, 샘플링 데이터와 기준 모델 간의 차이가 0.0003 이라고 하자. 영상 장치는 샘플링 데이터와 기준 모델 간의 차이(0.0003)가 필터링 파라미터(0.0005) 보다 작으므로 해당 샘플링 데이터를 인라이어 리스트에 포함시킬 수 있다. 반면, 샘플링 데이터와 기준 모델 간의 차이가 0.0007이라면, 영상 장치는 샘플링 데이터와 기준 모델 간의 차이(0.0007)가 필터링 파라미터(0.0005) 보다 크므로 해당 샘플링 데이터를 아웃라이어로 판단하여 제거할 수 있다.
도 15는 일 실시예에 따라 동기화 정보를 결정하는 방법을 나타낸 흐름도이다. 도 15를 참조하면, 일 실시예에 따른 영상 장치는 샘플링 파라미터에 대응하여, 아웃라이어가 제거된 복수의 샘플링 데이터들을 획득할 수 있다(1510).
영상 장치는 복수의 샘플링 데이터들 중 하나의 샘플링 데이터를 선택할 수하는 있다(1520).
영상 장치는 선택된 샘플링 데이터로부터 제거된 아웃라이어의 비율이 임계치보다 낮은지 여부를 판단할 수 있다(1530). 단계(1530)에서, 선택된 샘플링 데이터로부터 제거된 아웃라이어의 비율이 임계치보다 높거나 같다고 판단되면, 영상 장치는 동작을 종료할 수 있다.
단계(1530)에서, 선택된 샘플링 데이터로부터 제거된 아웃라이어의 비율이 임계치보다 낮다고 판단되면, 영상 장치는 샘플링 데이터의 표준 편차를 산출할 수있다(1540).
영상 장치는 단계(1540)에서 산출한 샘플링 데이터의 표준 편차 중 가장 낮은 표준 편차를 가지는 샘플링 데이터를 선택할 수 있다(1550).
영상 장치는 단계(1550)에서 선택된 샘플링 데이터의 평균을 산출할 수 있다(1560).
영상 장치는 선택된 샘플링 데이터의 평균을 동기화 정보를 설정할 수 있다(1570).
도 16은 일 실시예에 따라 SNTP(Simple Network Time Protocol) 패킷을 통해 얻어진 시간 정보를 RANSAC 모델에 적용시키는 과정을 나타낸 수도 코드(pseudo code)를 도시한 도면이다.
도 16에 도시된 수도 코드는 SNTP를 통해 얻어진 시간 정보에 RANSAC 모델을 적용시키는 과정을 나타낸 것이다. 무선 네트워크 환경에서 SNTP를 통해 얻어진 시간 정보가 RANSAC의 입력으로 적절한 이유는 비정상적인 패킷이 가끔씩, 그러나 꾸준히 발생하기 때문이다.
도 16에 도시된 알고리즘에서 반복 횟수(k)는 1000회를 시행하였고, 인라이어를 판단하는 기준값(t)는 0.0005를 사용하였다. 또한, 모델은 타임 오프셋 값들의 평균값, 즉 상수 모델을 이용하였다.
일 실시예서는 전체 데이터 중에 인라이어들이 50퍼센트 이상이 포함된 모델을 기준으로 이용하며, 그 중 신뢰도가 가장 높은 모델을 찾기 위해 각각의 표준 편차를 계산하여 가장 낮은 표준 편차를 가진 인라이어 리스트의 평균값을 이용하여 동기화 정보를 결정할 수 있다. 이러한 동기화 정보를 이용하여 일 실시예에 따르면, 동기화 시작 후, 5초 이내에 5ms 이하의 타임 오프셋을 유지하도록 할 수 있다.
일 실시예에 따르면, SNTP 패킷과 RANSAC 모델을 이용하여 동기화를 수행함으로써 무선 네트워크 환경에서 간단한 구현과 적은 리소스를 사용하고도 고품질의 시간 동기화가 가능하게 된다. 뿐만 아니라, 일 실시예에 따르면, NTP가 제공되지 않거나 사용이 힘든 임베디드 시스템 및 IoT 기기등과 같은 다양한 환경에서 무선 동기화 재생이 가능하도록 함으로써 관련 기술 개발 및 응용에 도움이 될 수 있다.
일 실시예에 따른 장치 구성
도 17은 일 실시예에 따른 영상 장치의 블록도이다. 도 17을 참조하면, 일 실시예에 따른 영상 장치(1700)는 감지부(1710), 통신 인터페이스(1720), 프로세서(1730) 및 메모리(1740)를 포함할 수 있다. 감지부(1710), 통신 인터페이스(1720), 프로세서(1730) 및 메모리(1740)는 통신 버스(1705)를 통해 서로 통신할 수 있다.
감지부(1710)는 영상 장치(1700)가 디스플레이 장치에 연결되었는지 여부를 감지한다. 감지부(1710)는 예를 들어, 영상 장치(1700)가 디스플레이 장치의 HDMI 포트, 또는 USB 포트에 결합되었는지 여부 또는 전원이 공급되는지 여부에 기초하여 디스플레이 장치에 연결되었는지를 감지할 수 있다.
프로세서(1730)는 디스플레이 장치로부터 전원이 공급됨에 따라, 초기화가 필요한지 여부를 판단할 수 있다. 프로세서(1730)는 초기화가 필요하다는 판단에 따라, 핫 스팟 호스트로 동작하여 모바일 디바이스로부터 접속을 위한 정보를 획득할 수 있다. 프로세서(1730)는 접속을 위한 정보를 이용하여 액세스 포인트에 접속하여 그룹 키를 수신할 수 있다. 프로세서(1730)는 그룹 키를 메모리(1740)에 저장할 수 있다.
프로세서(1730)는 장치 그룹에 포함된 복수의 영상 장치들 중 영상 장치에 대응하는 디스플레이 장치가 컨텐츠의 재생을 위한 전체 영역 중 재생해야 하는 적어도 일부 영역을 설정하는 캘리브레이션 정보를 결정할 수 있다.
영상 장치(1700)에서 통신 인터페이스(1720)는 컨텐츠를 재생할 공간에 대한 정보를 획득한다. 프로세서(1730)는 공간에 대한 정보에 기초하여 결정된 투사면에 영상 장치에 대응하는 디스플레이 장치가 재생할 적어도 일부 영역을 설정하기 위한 마스크를 생성한다. 프로세서(1730)는 디스플레이 장치의 컨텐츠 재생 시에 적어도 일부 영역의 픽셀들의 좌표들에 대응하여 투사면에 실제로 투사되는 영역의 픽셀들의 참조 좌표들을 포함하는 참조 텍스쳐를 결정한다.
프로세서(1730)는 전방향 카메라를 이용하여, 컨텐츠를 재생할 공간을 감지할 수 있다. 프로세서(1730)는 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 디스플레이 장치들 각각으로부터 투사되는 구조화 패턴을 획득할 수 있다. 프로세서(1730)는 공간에 대한 감지 결과 및 구조화 패턴을 기초로, 컨텐츠의 전체 영역 중 디스플레이 장치들 각각이 재생할 적어도 일부 영역을 결정할 수 있다.
프로세서(1730)는 디스플레이 장치를 이용하여 투사면에 복수의 포인트들을 표시할 수 있다. 프로세서(1730)는 사용자 입력에 기초하여 복수의 포인트들 중 적어도 하나의 포인트를 이동시키며, 이동된 포인트를 포함하는 복수의 포인트들에 기초하여 일부 영역을 결정할 수 있다.
프로세서(1730)는 사용자로부터 결정된 포인트들을 이용하여 투사면에서 적어도 일부 영역을 제외한 나머지 영역에 대응하는 마스크를 생성할 수 있다. 프로세서(1730)는 마스크를 이용하여 나머지 영역에 대응하는 픽셀 값을 조정할 수 있다.
프로세서(1730)는 적어도 일부 영역 중 장치 그룹에 속한 다른 영상 장치에 대응하는 디스플레이 장치가 재생할 일부의 영역과 겹치는 영역에 대한 픽셀 값을 조정할 수 있다. 프로세서(1730)는 겹치는 영역에 포함된 적어도 일부 영역들의 경계선들 및 경계선들에 인접한 영역을 포함하는 경계 영역의 픽셀 값을 스무딩할 수 있다.
프로세서(1730)는 컨텐츠와 컨텐츠가 투사면에 실제로 투영된 투영 영상 간의 관계에 대응하는 호모그래피 매트릭스를 이용하여, 참조 텍스쳐를 결정할 수 있다. 메모리(1740)는 마스크 및 참조 텍스쳐 중 적어도 하나를 저장할 수 있다.
프로세서(1730)는 감지부(1710)가 디스플레이 장치에 연결되었다는 판단에 따라, 영상 장치 및 하나 또는 그 이상의 다른 영상 장치들을 포함하는 장치 그룹에 대응하는 그룹 키를 획득한다. 예를 들어, 프로세서(1730)는 메모리(1740)로부터 그룹 키를 획득할 수 있다.
프로세스(1730)는 그룹 키를 저장하고 있는지 여부를 기초로 영상 장치가 모바일 디바이스에 의해 결정된 마스터 영상 장치인지를 판단한다. 프로세서(1730)는 해당 영상 장치가 마스터 영상 장치라는 판단에 따라, 영상 장치의 동작 모드를 마스터 모드로 전환할 수 있다.
프로세서(1730)는 그룹 키를 이용하여 서버에 접속함으로써 컨텐츠 재생을 위한 주소 정보를 획득하고, 컨텐츠 재생을 위한 주소 정보를 장치 그룹에 포함된 다른 영상 장치들에게 제공한다. 프로세서(1730)는 다른 영상 장치들 각각에서 주소 정보에 기초한 컨텐츠의 로딩이 완료되었는지 여부를 기초로, 다른 영상 장치들에게 컨텐츠에 대한 재생 명령을 전송한다. 프로세서(1730)는 컨텐츠, 및 컨텐츠의 재생을 위한 전체 영역 중 디스플레이 장치에 대응하는 영역에 컨텐츠의 적어도 일부를 재생하기 위한 캘리브레이션 정보에 기초하여, 디스플레이 장치를 위한 영상 정보를 생성한다.
프로세서(1730)는 복수의 영상 장치들을 동기화하기 위한 동기화 정보에 기초하여 디스플레이 장치를 위한 영상 정보를 생성할 수 있다. 이때, 동기화 정보는 예를 들어, 장치 그룹에 포함된 복수의 영상 장치들 간의 타임 오프셋을 RANSAC 모델에 입력함으로써 결정된 것일 수 있다.
메모리(1740)는 프로세서(1730)가 생성한 영상 정보를 저장할 수 있다. 또한, 메모리(1740)는 컨텐츠 재생을 위한 주소 정보에 기초하여 로딩한 컨텐츠를 저장할 수 있다. 메모리(1740)는 예를 들어, DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), DDR RAM(Double data rate synchronous dynamic random access memory) 또는 다른 고속 액세스 고체 상태 메모리 장치 등과 같은 고속 랜덤 액세스 메모리(high-speed random access memory)를 포함할 수 있다. 메모리(1740)는 휘발성 메모리 및 비휘발성 메모리를 포함할 수 있다. 메모리(1740)는 프로세서(1730)로부터 원격에 위치하는 적어도 하나의 저장 장치를 선택적으로 포함할 수 있다.
통신 인터페이스(1720)는 프로세서(1730)가 생성한 영상 정보를 디스플레이 장치에 제공한다.
프로세서(1730)는 그룹 키를 저장하고 있지 않다고 체크되면, 영상 장치의 동작 모드를 슬레이브 모드로 전환할 수 있다. 영상 장치(1700)에서 통신 인터페이스(1720)는 장치 그룹의 마스터 영상 장치로부터 컨텐츠 재생을 위한 주소 정보를 수신한다. 프로세서(1730)는 주소 정보에 기초하여 장치 그룹을 위한 컨텐츠를 로딩한다. 프로세서(1730)는 컨텐츠의 로딩이 완료되었는지 여부를 판단한다. 프로세서(1730)는 컨텐츠의 로딩이 완료 되었는지의 판단 결과를 전송받은 마스터 영상 장치로부터 컨텐츠에 대한 재생 명령을 수신한다. 프로세서(1730)는 재생 명령에 따라 컨텐츠, 및 컨텐츠의 재생을 위한 전체 영역 중 영상 장치와 연결된 디스플레이 장치에 대응하는 영역에 컨텐츠의 적어도 일부를 재생하기 위한 캘리브레이션 정보에 기초하여, 디스플레이 장치를 위한 영상 정보를 생성한다.
영상 장치(1700)의 통신 인터페이스(1720)는 무선 네트워크에서 장치 그룹에 포함된 마스터 영상 장치와 시간 정보를 교환한다.
프로세서(1730)는 시간 정보에 기초하여 마스터 영상 장치와 영상 장치 간의 타임 오프셋들을 산출한다. 프로세서(1730)는 샘플링 파라미터 및 필터링 파라미터에 기초하여 동기화 정보를 생성하며, 동기화 정보를 이용하여 마스터 영상 장치에 동기화한다.
프로세서(1730)는 장치 그룹에 포함된 복수의 영상 장치들 간의 타임 오프셋을 RANSAC 모델에 입력함으로써, 마스터 영상 장치와 영상 장치를 동기화하기 위한 동기화 정보를 생성할 수 있다.
프로세서(1730)는 타임 오프셋들을 RANSAC 모델에 입력함으로써, 타임 오프셋들 중 아웃라이어가 필터링된 샘플링 데이터를 획득할 수 있다. 프로세서(1730)는 획득된 샘플링 데이터에 기초하여, 동기화 정보를 결정할 수 있다.
프로세서(1730)는 시간 정보, 및 마스터 영상 장치로부터 제3 시간에 전송된 제2 패킷을 제4 시간에 수신하는 영상 장치 측의 제4 타임 스탬프에 기초하여 타임 오프셋들을 산출할 수 있다.
프로세서(1730)는 타임 오프셋들로부터 샘플링 데이터를 추출하고, 샘플링 데이터의 통계값에 기초하여 기준 모델을 결정할 수 있다. 프로세서(1730)는 샘플링 데이터와 기준 모델 간의 차이와 필터링 파라미터를 비교함으로써 아웃라이어를 제거할 수 있다.
프로세서(1730)는 샘플링 파라미터에 대응하여, 아웃라이어가 제거된 복수의 샘플링 데이터들을 획득할 수 있다. 프로세서(1730)는 복수의 샘플링 데이터들 중 선택된 하나의 샘플링 데이터로부터 제거된 아웃라이어의 비율이 임계치보다 낮은지 여부에 기초하여, 샘플링 데이터의 표준 편차를 산출할 수 있다. 프로세서(1730)는 가장 낮은 표준 편차를 가지는 샘플링 데이터를 선택하고, 선택된 샘플링 데이터의 평균을 동기화 정보로 설정할 수 있다.
이 밖에도, 프로세서(1730)는 도 1 내지 도 16을 통해 전술한 적어도 하나의 방법 또는 적어도 하나의 방법에 대응되는 알고리즘을 수행할 수 있다. 프로세서(1730)는 프로그램을 실행하고, 영상 장치(1700)를 제어할 수 있다. 프로세서(1730)에 의하여 실행되는 프로그램 코드는 메모리(1740)에 저장될 수 있다.
전술한 동작들은 예시적인 사항에 해당하며, 실시예들은 전술한 동작으로부터 다양하게 변형될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 중앙 처리 장치(Central Processing Unit; CPU), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 주문형 집적 회로(Application Specific Integrated Circuits; ASICS), 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 장치 그룹에 포함된 영상 장치의 영상 재생 방법에 있어서,
    상기 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 복수의 프로젝터들을 이용하여 대화면용 컨텐츠를 재생할 투사면에 대한 정보를 획득하는 단계;
    상기 투사면 내에서, 상기 영상 장치에 대응하는 프로젝터의 투사 가능 영역 중 실 투사 영역을 설정하는 마스크(mask)를 생성하는 단계;
    상기 실 투사 영역 내 픽셀들의 값을 결정하기 위하여 상기 대화면용 컨텐츠 내에서 참조할 픽셀들을 지시하는 참조 좌표들을 포함하는 참조 텍스쳐를 결정하는 단계; 및
    상기 마스크 및 상기 참조 텍스쳐를 이용하여 상기 실 투사 영역을 재생하는 단계
    를 포함하는, 영상 장치의 영상 재생 방법.
  2. 제1항에 있어서,
    상기 마스크를 생성하는 단계는
    전방향 카메라를 이용하여, 상기 투사면을 감지하는 단계;
    상기 프로젝터들 각각으로부터 투사되는 구조화 패턴을 획득하는 단계; 및
    상기 투사면에 대한 감지 결과 및 상기 구조화 패턴을 기초로, 상기 투사 가능 영역 중 상기 프로젝터들 각각이 재생할 실 투사 영역을 결정하는 단계
    를 포함하는, 영상 장치의 영상 재생 방법.
  3. 제1항에 있어서,
    상기 마스크를 생성하는 단계는
    상기 프로젝터를 이용하여 상기 투사면에 복수의 포인트들을 표시하는 단계;
    사용자 입력에 기초하여 상기 복수의 포인트들 중 적어도 하나의 포인트를 이동시키는 단계; 및
    상기 이동된 포인트를 포함하는 복수의 포인트들에 기초하여 상기 실 투사 영역을 결정하는 단계
    를 포함하는, 영상 장치의 영상 재생 방법.
  4. 제1항에 있어서,
    상기 투사 가능 영역은
    상기 영상 장치 및 하나 또는 그 이상의 다른 영상 장치들을 포함하는 장치 그룹에 의해 상기 투사면에 재생되는, 영상 장치의 영상 재생 방법.
  5. 제1항에 있어서,
    상기 마스크를 생성하는 단계는
    사용자 입력에 의해 결정된 포인트들을 이용하여 상기 투사면에서 상기 실 투사 영역을 제외한 나머지 영역에 대응하는 상기 마스크를 생성하는 단계; 및
    상기 마스크를 이용하여 상기 나머지 영역에 대응하는 픽셀 값을 조정하는 단계
    를 포함하는, 영상 장치의 영상 재생 방법.
  6. 제1항에 있어서,
    상기 마스크 및 상기 참조 텍스쳐 중 적어도 하나를 저장하는 단계
    를 더 포함하는, 영상 장치의 영상 재생 방법.
  7. 제1항에 있어서,
    상기 실 투사 영역 중 상기 장치 그룹에 속한 다른 영상 장치에 대응하는 프로젝터가 재생할 일부의 영역과 겹치는 영역(overlapped area)에 대한 픽셀 값을 조정하는 단계
    를 더 포함하는, 영상 장치의 영상 재생 방법.
  8. 제7항에 있어서,
    상기 겹치는 영역에 포함된 상기 실 투사 영역들의 경계선들 및 상기 경계선들에 인접한 영역을 포함하는 경계 영역의 픽셀 값을 스무딩(smoothing)하는 단계
    를 더 포함하는, 영상 장치의 영상 재생 방법.
  9. 제1항에 있어서,
    상기 참조 텍스쳐를 결정하는 단계는
    상기 컨텐츠와 상기 컨텐츠가 상기 투사면에 실제로 투영된 투영 영상 간의 관계에 대응하는 호모그래피 매트릭스(homography matrix)를 이용하여, 상기 참조 텍스쳐를 결정하는 단계
    를 포함하는, 영상 장치의 영상 재생 방법.
  10. 제1항에 있어서,
    상기 컨텐츠를 재생할 투사면에 대한 정보를 획득하는 단계는
    사용자로부터 상기 컨텐츠를 재생할 투사면에 대한 정보를 입력 받음으로써 상기 컨텐츠를 재생할 투사면에 대한 정보를 획득하는 단계
    를 포함하는, 영상 장치의 영상 재생 방법.
  11. 제1항에 있어서,
    상기 컨텐츠를 재생할 투사면에 대한 정보에 기초하여 사용자로부터 상기 컨텐츠를 재생할 투사면에 대한 선택을 입력받는 단계
    를 더 포함하는, 영상 장치의 영상 재생 방법.
  12. 하드웨어와 결합되어 제1항 내지 제11항 중 어느 하나의 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
  13. 장치 그룹에 포함된 영상 장치에 있어서,
    상기 장치 그룹에 포함된 복수의 영상 장치들에 대응하는 복수의 프로젝터들을 이용하여 대화면용 컨텐츠를 재생할 투사면에 대한 정보를 획득하는 통신 인터페이스; 및
    상기 투사면 내에서, 상기 영상 장치에 대응하는 프로젝터의 투사 가능 영역 중 실 투사 영역을 설정하는 마스크를 생성하고, 상기 실 투사 영역 내 픽셀들의 값을 결정하기 위하여 상기 대화면용 컨텐츠 내에서 참조할 픽셀들을 지시하는 참조 좌표들을 포함하는 참조 텍스쳐를 결정하며, 상기 마스크 및 상기 참조 텍스쳐를 이용하여 상기 실투사 영역을 재생하는 프로세서
    를 포함하는, 영상 장치.
  14. 제13항에 있어서,
    상기 프로세서는
    전방향 카메라를 이용하여, 상기 투사면을 감지하고, 상기 프로젝터들 각각으로부터 투사되는 구조화 패턴을 획득하며, 상기 투사면에 대한 감지 결과 및 상기 구조화 패턴을 기초로, 상기 투사 가능 영역 중 상기 프로젝터들 각각이 재생할 실 투사 영역을 결정하는, 영상 장치.
  15. 제13항에 있어서,
    상기 프로세서는
    상기 프로젝터를 이용하여 상기 투사면에 복수의 포인트들을 표시하고, 사용자 입력에 기초하여 상기 복수의 포인트들 중 적어도 하나의 포인트를 이동시키며, 상기 이동된 포인트를 포함하는 복수의 포인트들에 기초하여 상기 실 투사 영역을 결정하는, 영상 장치.
  16. 제13항에 있어서,
    상기 프로세서는
    사용자로부터 결정된 포인트들을 이용하여 상기 투사면에서 상기 실 투사 영역을 제외한 나머지 영역에 대응하는 상기 마스크를 생성하고, 상기 마스크를 이용하여 상기 나머지 영역에 대응하는 픽셀 값을 조정하는, 영상 장치.
  17. 제13항에 있어서,
    상기 마스크 및 상기 참조 텍스쳐 중 적어도 하나를 저장하는 메모리
    를 더 포함하는, 영상 장치.
  18. 제13항에 있어서,
    상기 프로세서는
    상기 실 투사 영역 중 장치 그룹에 속한 다른 영상 장치에 대응하는 프로젝터가 재생할 일부의 영역과 겹치는 영역에 대한 픽셀 값을 조정하는, 영상 장치.
  19. 제18항에 있어서,
    상기 프로세서는
    상기 겹치는 영역에 포함된 상기 실 투사 영역들의 경계선들 및 상기 경계선들에 인접한 영역을 포함하는 경계 영역의 픽셀 값을 스무딩하는, 영상 장치.
  20. 제13항에 있어서,
    상기 프로세서는
    상기 컨텐츠와 상기 컨텐츠가 상기 투사면에 실제로 투영된 투영 영상 간의 관계에 대응하는 호모그래피 매트릭스를 이용하여, 상기 참조 텍스쳐를 결정하는, 영상 장치.
KR1020170150402A 2017-11-13 2017-11-13 영상 장치 및 영상 장치의 영상 재생 방법 KR102000090B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170150402A KR102000090B1 (ko) 2017-11-13 2017-11-13 영상 장치 및 영상 장치의 영상 재생 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170150402A KR102000090B1 (ko) 2017-11-13 2017-11-13 영상 장치 및 영상 장치의 영상 재생 방법

Publications (2)

Publication Number Publication Date
KR20190054297A KR20190054297A (ko) 2019-05-22
KR102000090B1 true KR102000090B1 (ko) 2019-10-01

Family

ID=66680605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170150402A KR102000090B1 (ko) 2017-11-13 2017-11-13 영상 장치 및 영상 장치의 영상 재생 방법

Country Status (1)

Country Link
KR (1) KR102000090B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799304B1 (ko) * 2006-08-30 2008-01-29 한국전자통신연구원 비평면 디스플레이 환경에서 고해상도 동영상 투영 시스템및 방법

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101901910B1 (ko) * 2011-12-23 2018-09-27 삼성전자주식회사 선택 영역을 변화시키는 결과 영상을 생성 또는 저장하는 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100799304B1 (ko) * 2006-08-30 2008-01-29 한국전자통신연구원 비평면 디스플레이 환경에서 고해상도 동영상 투영 시스템및 방법

Also Published As

Publication number Publication date
KR20190054297A (ko) 2019-05-22

Similar Documents

Publication Publication Date Title
US20200236278A1 (en) Panoramic virtual reality framework providing a dynamic user experience
JP6712282B2 (ja) クラウド映像共有に基づくマルチアングル映像編集
US11108972B2 (en) Virtual three dimensional video creation and management system and method
US9271025B2 (en) System and method for sharing virtual and augmented reality scenes between users and viewers
US8428342B2 (en) Apparatus and method for providing three dimensional media content
US11202051B2 (en) System and method for distributing and rendering content as spherical video and 3D asset combination
JP2022536182A (ja) データストリームを同期させるシステム及び方法
US10171785B2 (en) Color balancing based on reference points
US8842113B1 (en) Real-time view synchronization across multiple networked devices
US11347465B2 (en) Display device array
TWI644562B (zh) 一種用於流視訊內容的方法及裝置
US11282169B2 (en) Method and apparatus for processing and distributing live virtual reality content
CN107409237A (zh) 针对输出装置和网络质量的云游戏数据流动态调整
US20230245685A1 (en) Removing Visual Content Representing a Reflection of a Screen
US20240015264A1 (en) System for broadcasting volumetric videoconferences in 3d animated virtual environment with audio information, and procedure for operating said device
KR102000090B1 (ko) 영상 장치 및 영상 장치의 영상 재생 방법
KR101969081B1 (ko) 영상 장치 및 영상 장치의 동기화 방법
KR101961841B1 (ko) 영상 장치 및 영상 장치의 동작 방법
KR102561903B1 (ko) 클라우드 서버를 이용한 ai 기반의 xr 콘텐츠 서비스 방법
US11470389B2 (en) Methods and systems for context-sensitive manipulation of an object via a presentation software
KR20180128348A (ko) 디스플레이 디바이스의 특성을 결정하기 위한 방법 및 디바이스
WO2021088973A1 (zh) 直播流显示方法、装置、电子设备及可读存储介质
US20240291951A1 (en) Electronic device, method, and non-transitory computer-readable storage media for displaying other video corresponding to video displayed on external electronic device
KR102637820B1 (ko) 미디어 아트 컨텐츠 및 디바이스 원격 제어 시스템
KR102599664B1 (ko) 다시점 영상을 전송하기 위한 시스템의 동작 방법 및 이를 수행하는 시스템

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