KR20230136195A - 압축된 멀티뷰 동영상을 스트리밍하는 시스템 및 방법 - Google Patents

압축된 멀티뷰 동영상을 스트리밍하는 시스템 및 방법 Download PDF

Info

Publication number
KR20230136195A
KR20230136195A KR1020237029162A KR20237029162A KR20230136195A KR 20230136195 A KR20230136195 A KR 20230136195A KR 1020237029162 A KR1020237029162 A KR 1020237029162A KR 20237029162 A KR20237029162 A KR 20237029162A KR 20230136195 A KR20230136195 A KR 20230136195A
Authority
KR
South Korea
Prior art keywords
video
views
view
tiled
client device
Prior art date
Application number
KR1020237029162A
Other languages
English (en)
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 레이아 인코포레이티드
Publication of KR20230136195A publication Critical patent/KR20230136195A/ko

Links

Classifications

    • 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
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/10Image acquisition
    • G06V10/12Details of acquisition arrangements; Constructional details thereof
    • G06V10/14Optical characteristics of the device performing the acquisition or on the illumination arrangements
    • G06V10/141Control of illumination
    • 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/349Multi-view displays for displaying three or more geometrical viewpoints without viewer tracking
    • H04N13/351Multi-view displays for displaying three or more geometrical viewpoints without viewer tracking for displaying simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/8166Monomedia components thereof involving executable data, e.g. software
    • H04N21/8173End-user applications, e.g. Web browser, game

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

시스템들 및 방법들은 송신자 시스템으로부터 수신자 시스템으로 멀티뷰 동영상을 스트리밍하는 것에 관한 것이다. 송신자 시스템은 송신자 클라이언트 장치의 멀티뷰 디스플레이 상에서 렌더링되는 멀티뷰 동영상의 인터레이싱된 프레임을 캡처할 수 있다. 인터레이싱된 프레임은 제 1 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로서 포맷될 수 있다. 송신자 시스템은 인터레이싱된 프레임의 공간 다중화된 뷰들을 별개의 뷰들로 디인터레이싱할 수 있다. 송신자 시스템은 분리된 뷰들을 연접시켜 타일링된 동영상의 타일링된 프레임을 생성할 수 있다. 송신자 시스템은 타일링된 동영상을 수신자 클라이언트 장치로 전송할 수 있으며, 여기서 타일링된 동영상은 압축된다. 수신자 시스템은 타일링된 동영상의 뷰들을 스트리밍되는 인터레이싱된 프레임들로 압축 해제 및 인터레이싱하고, 스트리밍되는 인터레이싱된 프레임들을 수신자 시스템의 멀티뷰 디스플레이 상에서 렌더링할 수 있다.

Description

압축된 멀티뷰 동영상을 스트리밍하는 시스템 및 방법
관련 출원에 대한 상호 참조
N/A
연방 후원 연구 또는 개발에 관한 진술
N/A
2차원(2D) 동영상 스트림은 일련의 프레임들을 포함하며, 각각의 프레임은 2D 이미지이다. 동영상 스트림들은 동영상 코딩 사양에 따라 압축될 수 있어 동영상 파일 크기가 감소되고 그에 따라 네트워크 대역폭이 경감될 수 있다. 동영상 스트림은 컴퓨팅 장치에 의해 다양한 소스로부터 수신될 수 있다. 동영상 스트림들은 디스플레이를 위해 그래픽스 파이프라인에 의해 디코딩되고 렌더링될 수 있다. 이러한 프레임들을 특정 프레임 속도로 렌더링하면 사용자에게 보여지도록 동영상이 디스플레이된다.
멀티뷰 디스플레이는 기존의 2D 동영상에 비해 더욱 몰입감 있는 시청 경험을 제공하는 새로운 디스플레이 기술이다. 2D 동영상을 다루는 것에 비해 멀티뷰 동영상을 렌더링, 처리 및 압축하는 데 어려움이 있을 수 있다.
본 명세서에 설명된 원리들에 따른 예들 및 실시 예들의 다양한 특징들은 동일한 도면 부호가 동일한 구조적 요소를 나타내는 첨부된 도면과 관련하여 취해진 다음의 상세한 설명을 참조하여 보다 용이하게 이해될 수 있다.
도 1은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 일 예로서 멀티뷰 이미지를 도시한다.
도 2는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 멀티뷰 디스플레이의 일 예를 도시한다.
도 3은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 일 예를 도시한다.
도 4는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 송신자 클라이언트 장치로부터 스트리밍되는 멀티뷰 동영상을 수신하는 일 예를 도시한다.
도 5는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 송신자 및 수신자 시스템들의 기능 및 아키텍처들의 일 예를 도시한다.
도 6은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 클라이언트 장치의 예시적인 실례를 묘사하는 개략적인 블록도이다.
일부 예들 및 실시 예들은 전술한 도면들에 도시된 특징들에 부가되거나 그 대신에 포함되는 다른 특징들을 갖는다. 이들 및 다른 특징들은 전술한 도면을 참조하여 이하에서 설명된다.
본 명세서에 설명된 원리들에 따른 예들 및 실시 예들은 클라이언트 장치들 사이에서 (예를 들어, 송신자(sender)로부터 하나 이상의 수신자들(receivers)로) 멀티뷰 동영상(multiview video)을 스트리밍하는 기법들을 제공한다. 예를 들어, 하나의 클라이언트 장치 상에 디스플레이되는 멀티뷰 동영상은 처리되고, 압축되고, 하나 이상의 타겟 장치들로 스트리밍될 수 있다. 이를 통해, 라이트필드(lightfield) 경험(예를 들어, 멀티뷰 컨텐츠의 표시)이 상이한 장치들에 걸쳐 실시간으로 복제될 수 있다. 동영상 스트리밍 시스템을 설계하기 위한 하나의 고려 사항은 동영상 스트림을 압축하는 능력이다. 압축은 최소한의 동영상 품질을 유지하면서 동영상 데이터의 크기(비트 관점에서)를 줄이는 프로세스를 의미한다. 압축을 이용하지 않으면, 동영상을 완전히 스트리밍하는 데 걸리는 시간이 증가하거나 네트워크 대역폭에 부담을 준다. 따라서, 동영상 압축은 감소된 동영상 스트림 데이터가 실시간 동영상 스트리밍, 더 빠른 동영상 스트리밍, 또는 입력되는 동영상 스트림의 버퍼링 감소를 지원할 수 있게끔 한다. 압축은 손실 압축일 수 있는데, 즉 입력 데이터의 압축 및 압축 해제로 인해 품질이 일부 손실될 수 있다.
실시 예들은 타겟 장치들의 멀티뷰 구성(multiview configuration)에 구애받지 않는(agnostic) 방식으로 멀티뷰 동영상을 스트리밍하는 것에 관한 것이다. 또한, 멀티뷰 컨텐츠를 재생하는 어플리케이션은, 어플리케이션의 기본 코드의 변경 없이도 타겟 장치들로의 멀티뷰 컨텐츠의 실시간 스트리밍을 수용할 수 있다.
동작들은 인터레이싱된(interlaced) 멀티뷰 동영상을 렌더링하는 것을 포함할 수 있으며, 여기서 멀티뷰 동영상의 상이한 뷰들(views)은 멀티뷰 디스플레이를 기본적으로 지원하도록 인터레이싱된다. 이러한 점에서, 인터레이싱된 동영상은 압축되지 않는다. 상이한 뷰들을 인터레이싱하면, 장치 상에서 렌더링하기에 적합한 형식으로 멀티뷰 컨텐츠를 제공할 수 있다. 멀티뷰 디스플레이는 인터레이싱된 멀티뷰 컨텐츠를 디스플레이하기 위한 특정한 멀티뷰 구성에 따라 구성될 수 있는 하드웨어이다.
실시 예들은 추가적으로 송신자 클라이언트 장치로부터 수신자 클라이언트 장치로 멀티뷰 컨텐츠를 (예를 들어, 실시간으로) 스트리밍하는 능력에 관한 것이다. 송신자 클라이언트 장치 상에서 렌더링되는 멀티뷰 컨텐츠는 캡처되고 디인터레이싱(deinterlacing)되어 각각의 뷰가 통합(consolidate)될 수 있다. 이후, 각각의 뷰는 연접(concatenated)되어, 연접된 뷰들의 타일링된(tiled) 프레임(예를 들어, 디인터레이싱된 프레임)이 생성될 수 있다. 이후, 타일링된 프레임들을 갖는 동영상 스트림은 압축되어 수신자 클라이언트 장치로 전송된다. 수신자 클라이언트 장치는 생성된 동영상을 압축 해제, 디인터레이싱 및 렌더링할 수 있다. 이를 통해, 수신자 클라이언트 장치는 실시간 재생 및 스트리밍을 위해 송신자 클라이언트 장치 상에서 렌더링되는 라이트필드 컨텐츠와 유사한 라이트필드 컨텐츠를 제공할 수 있다.
일부 실시 예들에 따르면, 송신자 클라이언트 장치와 수신자 클라이언트 장치는 상이한 멀티뷰 구성들을 가질 수 있다. 멀티뷰 구성은 멀티뷰 디스플레이에 의해 제공되는 뷰들의 개수를 의미한다. 예를 들어, 하나의 좌측 뷰 및 하나의 우측 뷰만 제공하는 멀티뷰 디스플레이는 스테레오 멀티뷰 구성을 갖는다. 4-뷰 멀티뷰 구성은 멀티뷰 디스플레이가 4개의 뷰 등을 디스플레이할 수 있음을 의미한다. 또한, 멀티뷰 구성은 뷰들의 배향을 의미할 수도 있다. 뷰들은 수평으로, 수직으로, 또는 이들 둘 다로 배향될 수 있다. 예를 들어, 4-뷰 멀티뷰 구성은 4개의 뷰들이 가로로 있는 수평 방향으로 배향될 수 있거나, 4개의 뷰들이 아래로 있는 수직 방향으로 배향될 수 있거나, 2개의 뷰들이 가로로 그리고 2개의 뷰들이 아래로 있는 사각형 배향으로 배향될 수 있다. 수신자 클라이언트 장치는 수신되는 타일링된 동영상의 뷰들의 개수를, 수신자 클라이언트 장치의 멀티뷰 디스플레이의 멀티뷰 구성과 호환되도록, 수정할 수 있다. 이러한 점에서, 타일링된 동영상 스트림은 수신자 클라이언트 장치의 멀티뷰 구성에 구애받지 않는다.
본 명세서에서 논의된 실시 예들은 복수의 이용 사례들을 지원한다. 예를 들어, 송신자 클라이언트 장치는 하나 이상의 수신자 클라이언트 장치에 멀티뷰 컨텐츠를 라이브 스트리밍(live streaming)할 수 있다. 따라서, 송신자 클라이언트 장치는, 송신자 클라이언트 장치에서 렌더링되는 라이트필드 경험을 복제할 수 있는 다른 클라이언트 장치들과 라이트필드 동영상을 공유하기 위한 화면-공유(screen-share) 기능을 제공할 수 있다. 또한, 수신자 클라이언트 장치들의 세트는 이기종일 수 있어서, 이들 각각은 상이한 멀티뷰 구성들을 가질 수 있다. 예를 들어, 동일한 멀티뷰 동영상 스트림을 수신하는 수신자 클라이언트 장치들의 세트는 멀티뷰 동영상을 그들 자신의 멀티뷰 구성으로 렌더링할 수 있다. 예를 들어, 소정의 수신자 클라이언트 장치는 수신되는 멀티뷰 동영상 스트림을 4개의 뷰들로 렌더링할 수 있고, 다른 수신자 클라이언트 장치는 이와 동일한 수신되는 멀티뷰 동영상 스트림을 8개의 뷰들로 렌더링할 수 있다.
도 1은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 일 예로서 멀티뷰 이미지를 도시한다. 멀티뷰 이미지(103)는 특정 타임스탬프(timestamp)에서 멀티뷰 동영상 스트림으로부터의 단일의, 멀티뷰 동영상 프레임일 수 있다. 멀티뷰 이미지(103)는 동영상 피드(video feed)의 일부가 아닌 정적 멀티뷰 이미지일 수도 있다. 멀티뷰 이미지(103)는 복수의 뷰들(106)(예를 들어, 뷰 이미지들(view images))을 갖는다. 뷰들(106) 각각은 상이한 주 각도 방향(principle angular direction; 109)(예를 들어, 좌측 뷰, 우측 뷰 등)에 대응된다. 뷰들(106)은 멀티뷰 디스플레이(112) 상에서 렌더링된다. 각각의 뷰(106)는 멀티뷰 이미지(103)에 의해 표현되는 장면의 상이한 시야각을 나타낸다. 따라서, 상이한 뷰들(106)은 서로에 대해 어느 정도의 시차를 갖는다. 시청자(viewer)는 자신의 우안으로 하나의 뷰(106)를 지각하면서 자신의 좌안으로 다른 뷰(106)를 지각할 수 있다. 이를 통해 시청자는 상이한 뷰들(106)을 동시에 지각할 수 있고, 그럼으로써 3차원(3D) 효과를 경험할 수 있다.
일부 실시 예들에서, 시청자가 멀티뷰 디스플레이(112)에 대해 자신의 시야각을 물리적으로 변경함에 따라, 시청자의 두 눈은 멀티뷰 이미지(103)의 상이한 뷰들(106)을 포착할 수 있다. 그 결과, 시청자는 멀티뷰 이미지(103)의 상이한 뷰들(106)을 보기 위해 멀티뷰 디스플레이(112)와 상호작용할 수 있다. 예를 들어, 시청자가 좌측으로 이동함에 따라, 시청자는 멀티뷰 이미지(103)에서 장면의 좌측을 더 많이 볼 수 있다. 멀티뷰 이미지(103)는 수평 평면을 따라 복수의 뷰들(106)을 가질 수 있고/있거나 수직 평면을 따라 복수의 뷰들(106)을 가질 수 있다. 따라서, 사용자가 상이한 뷰들(106)을 보기 위해 시야각을 변경함에 따라, 시청자는 멀티뷰 이미지(103)의 장면의 추가적인 시각적 세부 사항들을 획득할 수 있다.
전술한 바와 같이, 각각의 뷰(106)는 멀티뷰 디스플레이(112)에 의해 상이한 대응하는 주 각도 방향들(109)에서 제공된다. 디스플레이를 위해 멀티뷰 이미지(103)를 제공하는 경우, 뷰들(106)은 실제로 멀티뷰 디스플레이(112) 상에 또는 그 부근에 나타날 수 있다. 라이트필드(lightfield) 동영상을 관찰하는 특징은 상이한 뷰들을 동시에 관찰할 수 있는 능력이다. 라이트필드 동영상은 시청자에게 깊이감을 전달하기 위해 스크린의 전방뿐만 아니라 스크린의 후방에 나타날 수 있는 시각적 이미지를 포함한다.
2D 디스플레이는, 2D 디스플레이가 일반적으로 멀티뷰 이미지(103)의 상이한 뷰들(106)과는 대조적으로 단일 뷰(예를 들어, 뷰들 중 오직 하나)를 제공하도록 구성된다는 점을 제외하고는, 멀티뷰 디스플레이(112)와 실질적으로 유사할 수 있다. 본 명세서에서, '2차원 디스플레이' 또는 '2D 디스플레이'는 이미지가 보여지는 방향에 관계 없이 (즉, 2D 디스플레이의 미리 정의된 시야각 또는 시야 범위 내에서) 실질적으로 동일한 이미지의 뷰를 제공하도록 구성된 디스플레이로서 정의된다. 많은 스마트 폰들 및 컴퓨터 모니터들에서 찾아볼 수 있는 통상적인 액정 디스플레이(LCD)가 2D 디스플레이들의 예들이다. 대조적으로, 본 명세서에서, '멀티뷰 디스플레이(multiview display)'는 사용자의 관점으로부터, 동시에 상이한 뷰 방향들로 또는 상이한 뷰 방향들로부터 멀티뷰 이미지(예를 들어, 멀티뷰 프레임)의 상이한 뷰들을 제공하도록 구성된 전자 디스플레이 또는 디스플레이 시스템으로서 정의된다. 특히, 상이한 뷰들(106)은 멀티뷰 이미지(103)의 상이한 관점 뷰들(perspective views)을 나타낼 수 있다.
멀티뷰 디스플레이(112)는 상이한 이미지 뷰들이 동시에 지각되도록 상이한 이미지 뷰들의 표현을 수용하는 다양한 기술들을 이용하여 구현될 수 있다. 멀티뷰 디스플레이의 일 예는 상이한 뷰들(106)의 주 각도 방향들을 제어하기 위해 광을 산란시키는 멀티빔 소자들을 채용하는 것이다. 일부 실시 예들에 따르면, 멀티뷰 디스플레이(112)는, 상이한 뷰들에 대응되는 상이한 방향들 및 상이한 색상들의 복수의 광빔들을 제공하는 라이트필드(lightfield) 디스플레이일 수 있다. 일부 예들에서, 라이트필드 디스플레이는, 깊이를 지각하기 위한 특별한 아이웨어(eyewear)를 착용할 필요 없이, 멀티빔 소자들(예를 들어, 회절 격자들)을 이용하여 멀티뷰 이미지들의 오토스테레오스코픽(autostereoscopic) 표현들을 제공할 수 있는 소위 '안경 불필요' 3 차원(3D) 디스플레이이다.
도 2는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 멀티뷰 디스플레이의 일 예를 도시한다. 멀티뷰 디스플레이(112)는 멀티뷰 모드로 동작하는 경우 라이트필드 동영상을 생성할 수 있다. 일부 실시 예들에서, 멀티뷰 디스플레이(112)는 그 동작 모드에 따라 멀티뷰 이미지들뿐만 아니라 2D 이미지들을 렌더링한다. 예를 들어, 멀티뷰 디스플레이(112)는 상이한 모드들에서 동작하도록 복수의 백라이트들을 포함할 수 있다. 멀티뷰 디스플레이(112)는 광각 백라이트(115)를 이용하여 2D 모드 동안 광각 방출광을 제공하도록 구성될 수 있다. 또한, 멀티뷰 디스플레이(112)는 멀티빔 소자들의 어레이를 갖는 멀티뷰 백라이트(118)를 이용하여 멀티뷰 모드 동안 지향성 방출광을 제공하도록 구성될 수 있으며, 지향성 방출광은 멀티빔 소자 어레이의 각각의 멀티빔 소자에 의해 제공되는 복수의 지향성 광빔들을 포함한다. 일부 실시 예들에서, 멀티뷰 디스플레이(112)는 모드 제어기(121)를 이용하여 2D 모드 및 멀티뷰 모드를 시간 다중화하여, 2D 모드에 대응되는 제 1 순차 시간 구간 동안 광각 백라이트(115)를 그리고 멀티뷰 모드에 대응되는 제 2 순차 시간 구간 동안 멀티뷰 백라이트(118)를, 순차적으로 활성화시키도록 구성될 수 있다. 지향성 광빔의 지향성 광빔들의 방향들은 멀티뷰 이미지(103)의 상이한 뷰 방향들에 대응될 수 있다. 모드 제어기(121)는 광각 백라이트(115) 또는 멀티뷰 백라이트(118)를 활성화시키기 위해 모드 선택 신호(124)를 생성할 수 있다.
2D 모드에서, 광각 백라이트(115)는, 멀티뷰 디스플레이(112)가 2D 디스플레이처럼 동작하도록, 이미지들을 생성하는 데 이용될 수 있다. 정의에 의하면, '광각(broad-angle)' 방출광(emitted light)은 멀티뷰 이미지 또는 멀티뷰 디스플레이의 뷰의 원추각(cone angle)보다 더 큰 원추각을 갖는 광으로서 정의된다. 특히, 일부 실시 예들에서, 광각 방출광은 약 20도 초과(예를 들어, > ± 20°)의 원추각을 가질 수 있다. 다른 실시 예들에서, 광각 방출광의 원추각은 약 30도 초과(예를 들어, > ± 30°), 또는 약 40도 초과(예를 들어, > ± 40°), 또는 50도 초과(예를 들어, > ± 50°)일 수 있다. 예를 들어, 광각 방출광의 원추각은 약 60도(예를 들어, > ± 60°)일 수 있다.
멀티뷰 모드는 광각 백라이트(115) 대신 멀티뷰 백라이트(118)를 이용할 수 있다. 멀티뷰 백라이트(118)는 서로 상이한 주 각도 방향들을 갖는 복수의 지향성 광빔들로서 광을 산란시키는 멀티빔 소자들의 어레이를 상부 또는 하부 표면 상에 가질 수 있다. 예를 들어, 멀티뷰 디스플레이(112)가 4개의 뷰들을 갖는 멀티뷰 이미지를 디스플레이하기 위해 멀티뷰 모드에서 동작하는 경우, 멀티뷰 백라이트(118)는 4개의 지향성 광빔들로 광을 산란시킬 수 있으며, 각각의 지향성 광빔은 상이한 뷰에 대응된다. 모드 제어기(121)는, 멀티뷰 백라이트를 이용하여 제 1 순차 시간 구간에 멀티뷰 이미지가 디스플레이되고 광각 백라이트를 이용하여 제 2 순차 시간 구간에 2D 이미지가 디스플레이되도록, 2D 모드와 멀티뷰 모드 사이를 순차적으로 전환할 수 있다. 지향성 광빔들은 미리 결정된 각도들에 있을 수 있으며, 각각의 지향성 광빔은 멀티뷰 이미지의 상이한 뷰에 대응된다.
일부 실시 예들에서, 멀티뷰 디스플레이(112)의 각각의 백라이트는 도광체 내에서 광을 안내된 광으로서 안내하도록 구성된다. 본 명세서에서, '도광체(light guide)'는 내부 전반사(total internal reflection; TIR)를 이용하여 그 내에서 광을 안내하는 구조물로서 정의된다. 특히, 도광체는 도광체의 동작 파장(operational wavelength)에서 실질적으로 투명한 코어(core)를 포함할 수 있다. 다양한 예들에서, '도광체(light guide)'라는 용어는 일반적으로 도광체의 유전체 재료와 도광체를 둘러싸는 재료 또는 매질 사이의 경계에서 광을 안내하기 위해 내부 전반사를 이용하는 유전체 광학 도파로(dielectric optical waveguide)를 지칭한다. 정의에 의하면, 내부 전반사를 위한 조건은 도광체의 굴절률이 도광체 재료의 표면에 인접한 주변 매질의 굴절률보다 커야 한다는 것이다. 일부 실시 예들에서, 도광체는 내부 전반사를 더 용이하게 하기 위해 전술한 굴절률 차이에 부가하여 또는 그에 대신하여 코팅(coating)을 포함할 수 있다. 예를 들어, 코팅은 반사 코팅일 수 있다. 도광체는 판(plate) 또는 슬래브(slab) 가이드 및 스트립(strip) 가이드 중 하나 또는 모두를 포함하는, 그러나 이에 제한되지 않는, 다양한 도광체들 중 임의의 것일 수 있다. 도광체는 판 또는 슬래브와 같은 형태일 수 있다. 도광체는 광원(예를 들어, 광 방출 소자)에 의해 에지 릿(edge lit)될 수 있다.
일부 실시 예들에서, 멀티뷰 디스플레이(112)의 멀티뷰 백라이트(118)는 멀티빔 소자 어레이의 멀티빔 소자들을 이용하여 안내된 광의 일부를 지향성 방출광으로서 산란시키도록 구성되며, 멀티빔 소자 어레이의 각각의 멀티빔 소자는 회절 격자, 미세 굴절성 소자 및 미세 반사성 소자 중 하나 이상을 포함한다. 일부 실시 예들에서, 멀티빔 소자의 회절 격자는 복수의 개별 서브 격자들을 포함할 수 있다. 일부 실시 예들에서, 미세 반사성 소자는 안내된 광의 일부를 복수의 지향성 광빔들로서 반사적으로 커플 아웃시키거나 산란시키도록 구성된다. 미세 반사성 소자는 안내된 광이 산란되는 경로를 제어하기 위해 반사성 코팅을 가질 수 있다. 일부 실시 예들에서, 멀티빔 소자는 안내된 광의 일부를 굴절에 의해 또는 굴절을 이용하여 복수의 지향성 광빔들로서 커플 아웃시키거나 산란(즉, 안내된 광의 일부를 굴절적으로 산란)시키도록 구성된 미세 굴절성 소자를 포함한다.
멀티뷰 디스플레이(112)는 또한 백라이트들 위에 (예를 들어, 광각 백라이트(115) 위에 및 멀티뷰 백라이트(118) 위에) 위치된 광 밸브 어레이를 포함할 수 있다. 광 밸브 어레이의 광 밸브들은, 예를 들어 액정 광 밸브들, 전기 영동 광 밸브들, 전기 습윤을 기반으로 하거나 이를 채용하는 광 밸브들, 또는 이들의 임의의 조합일 수 있다. 2D 모드로 동작하는 경우, 광각 백라이트(115)는 광 밸브 어레이를 향해 광을 방출한다. 이 광은 광각으로 방출되는 확산광(diffuse light)일 수 있다. 각각의 광 밸브는, 광각 백라이트(115)에 의해 방출되는 광에 의해 조명될 때, 2D 이미지를 디스플레이하기 위해 특정 픽셀 밸브를 달성하도록 제어된다. 이러한 점에서, 각각의 광 밸브는 단일 픽셀에 대응된다. 이와 관련하여, 단일 픽셀은 단일 픽셀 셀(예를 들어, LCD 셀)을 구성하는 상이한 색상 픽셀들(예를 들어, 적색, 녹색 청색)을 포함할 수 있다.
멀티뷰 모드에서 동작하는 경우, 멀티뷰 백라이트(118)는 광 밸브 어레이를 조명하기 위해 지향성 광빔들을 방출한다. 광 밸브들은 멀티뷰 픽셀을 형성하기 위해 함께 그룹화될 수 있다. 예를 들어, 4-뷰 멀티뷰 구성에서, 멀티뷰 픽셀은4개의 상이한 픽셀들을 포함할 수 있으며, 이들 각각은 상이한 뷰에 대응된다. 멀티뷰 픽셀 내의 각각의 픽셀은 상이한 색상 픽셀들을 더 포함할 수 있다.
멀티뷰 픽셀 배열의 각각의 광 밸브는 주 각도 방향을 갖는 광빔들 중 하나에 의해 조명될 수 있다. 따라서, 멀티뷰 픽셀은 멀티뷰 이미지의 픽셀의 상이한 뷰들을 제공하는 픽셀 그룹이다. 일부 실시 예들에서, 멀티뷰 백라이트(118)의 각각의 멀티빔 소자는 광 밸브 어레이의 소정의 멀티뷰 픽셀에 전용된다.
멀티뷰 디스플레이(112)는 멀티뷰 이미지(103)를 디스플레이하기 위한 스크린을 포함한다. 스크린은, 예를 들어 전화기(예를 들어, 이동식 전화기, 스마트 폰 등), 태블릿 컴퓨터, 랩톱 컴퓨터, 데스크톱 컴퓨터의 컴퓨터 모니터, 카메라 디스플레이, 또는 실질적으로 임의의 기타의 장치의 전자 디스플레이의 디스플레이 스크린일 수 있다.
본 명세서에서 사용되는 바와 같이, 단수 표현은 특허 분야에서의 통상적인 의미, 즉 '하나 이상'의 의미를 갖는 것으로 의도된다. 예를 들어, 본 명세서에서 '프로세서'는 하나 이상의 프로세서를 의미하고, 그 자체로서 '메모리'는 '하나 이상의 메모리 컴포넌트들'을 의미한다.
도 3은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 일 예를 도시한다. 송신자 클라이언트 장치(203)는 하나 이상의 수신자에게 동영상 컨텐츠를 전송하는 것을 담당하는 클라이언트 장치이다. 클라이언트 장치의 일 예는 도 6과 관련하여 보다 상세하게 논의된다. 송신자 클라이언트 장치(203)는 송신자 클라이언트 장치(203)의 멀티뷰 디스플레이(205) 상에서 멀티뷰 컨텐츠를 렌더링하는 것을 담당하는 재생 어플리케이션(player application; 204)을 실행할 수 있다. 재생 어플리케이션(204)은 입력 동영상(206)을 수신하거나 생성하여 이를 멀티뷰 디스플레이(205) 상에서 렌더링하는 사용자 수준 어플리케이션일 수 있다. 입력 동영상(206)는, 입력 동영상(206)의 각각의 프레임이 장면의 복수의 뷰들을 포함하도록, 임의의 멀티뷰 동영상 형식으로 포맷된 멀티뷰 동영상일 수 있다. 예를 들어, 입력 동영상(206)의 각각의 렌더링된 프레임은 도 1의 멀티뷰 이미지(103)와 유사할 수 있다. 재생 어플리케이션(204)은 입력 동영상(206)을 인터레이싱된 동영상(208)로 변환할 수 있으며, 여기서 인터레이싱된 동영상(208)은 인터레이싱된 프레임들(211)로 구성된다. 인터레이싱된 동영상(208)은 보다 상세히 후술된다. 렌더링 프로세스의 일부로서, 재생 어플리케이션(204)은 인터레이싱된 동영상(208)을 버퍼(212)에 로딩할 수 있다. 버퍼(212)는 멀티뷰 디스플레이(205) 상에 디스플레이될 이미지 컨텐츠를 저장하는 주 프레임버퍼일 수 있다. 버퍼(212)는 멀티뷰 디스플레이(112) 상에서 이미지들을 렌더링하는 데 이용되는 그래픽스 메모리(graphics memory)의 일부일 수 있다.
본 개시 내용의 실시 예들은 재생 어플리케이션(204)과 병렬로 동작할 수 있는 스트리밍 어플리케이션(213)에 관한 것이다. 스트리밍 어플리케이션(213)은 재생 어플리케이션(204)에 의해 또는 기타의 사용자 입력에 의해 인보크(invoke)되는 백그라운드 서비스 또는 루틴으로서 송신자 클라이언트 장치(203)에서 실행될 수 있다. 스트리밍 어플리케이션(213)은 송신자 클라이언트 장치(203) 상에서 렌더링되는 멀티뷰 컨텐츠를 하나 이상의 수신자 클라이언트 장치와 공유하도록 구성된다.
예를 들어, 송신자 클라이언트 장치(203)의 기능(예를 들어, 송신자 클라이언트 장치(203)의 스트리밍 어플리케이션(213))은 송신자 클라이언트 장치(203)의 멀티뷰 디스플레이(205) 상에서 렌더링되는 인터레이싱된 동영상(208)의 인터레이싱된 프레임(211)을 캡처하는 것을 포함하며, 인터레이싱된 프레임(211)은 제 1 개수의 뷰들(예를 들어, 뷰 1 내지 뷰 4로 도시된 4개의 뷰들)을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된(spatially multiplexed) 뷰들로서 포맷된다. 송신자 클라이언트 장치(203)는 또한 인터레이싱된 프레임의 공간 다중화된 뷰들을 별개의 뷰들로 디인터레이싱하는 것을 포함하는 동작들을 실행할 수 있고, 별개의 뷰들은 타일링된 동영상(217)의 타일링된 프레임(214)을 생성하도록 연접된다. 송신자 클라이언트 장치(203)는 또한 타일링된 동영상(217)을 수신자 클라이언트 장치로 전송하는 것을 포함하는 동작들을 실행할 수 있고, 타일링된 동영상은 압축된 동영상(223)로서 압축된다.
멀티뷰 디스플레이(205)는 도 1 또는 도 2의 멀티뷰 디스플레이(112)와 유사할 수 있다. 예를 들어, 멀티뷰 디스플레이(205)는 광각 백라이트와 멀티뷰 백라이트를 전환하여 2D 모드와 3D 모드를 시간 다중화하도록 구성될 수 있다. 멀티뷰 디스플레이(205)는 송신자 클라이언트 장치(203)의 사용자에게 라이트필드 컨텐츠(예를 들어, 라이트필드 동영상 또는 라이트필드 정적 이미지들)를 제공할 수 있다. 예를 들어, 라이트필드 컨텐츠는 멀티뷰 컨텐츠(예를 들어, 인터레이싱된 프레임들(211)을 포함하는 인터레이싱된 동영상(208))를 의미한다. 전술한 바와 같이, 재생 어플리케이션(204) 및 그래픽스 파이프라인은 멀티뷰 디스플레이(205) 상에서 인터레이싱된 동영상(208)을 처리하고 렌더링할 수 있다. 렌더링은 멀티뷰 디스플레이(205)의 물리적 픽셀들에 맵핑될 이미지의 픽셀 값들을 생성하는 것을 포함한다. 멀티뷰 백라이트(118)가 선택되고 멀티뷰 디스플레이(205)의 광 밸브들이 제어되어, 사용자를 위한 멀티뷰 컨텐츠가 생성될 수 있다.
그래픽스 파이프라인(graphics pipeline)은 디스플레이를 위해 이미지 데이터를 렌더링하는 시스템이다. 그래픽스 파이프라인은 하나 이상의 그래픽스 처리 유닛(graphics processing unit; GPU), GPU 코어, 또는 이미지 컨텐츠를 스크린에 렌더링하는 데 최적화된 기타의 특화된 프로세싱 회로를 포함할 수 있다. 예를 들어, GPU는 병렬로 데이터의 어레이를 연산하기 위해 명령어 세트를 실행하는 벡터 프로세서들을 포함할 수 있다. 그래픽스 파이프라인은 그래픽스 카드, 그래픽스 드라이버, 또는 그래픽스를 렌더링하는 데 이용되는 기타의 하드웨어 및 소프트웨어를 포함할 수 있다. 그래픽스 파이프라인은 그래픽스 메모리로부터의 픽셀들을 디스플레이의 대응하는 위치들에 맵핑하고, 이미지를 렌더링하기 위해 광을 방출하도록 디스플레이를 제어할 수 있다. 그래픽스 파이프라인은 송신자 클라이언트 장치(203)의 중앙 처리 유닛(central processing unit; CPU)과는 별개인 서브시스템일 수 있다. 예를 들어, 그래픽스 파이프라인은 CPU와는 별개인 특화된 프로세서들(예를 들어, GPU들)을 포함할 수 있다. 일부 실시 예들에서, 그래픽스 파이프라인은 순전히 CPU에 의해 소프트웨어로서 구현된다. 예를 들어, CPU는 특화된 그래픽스 하드웨어 없이 그래픽스 파이프라인으로서 동작하는 소프트웨어 모듈들을 실행할 수 있다. 일부 실시 예들에서, 그래픽스 파이프라인의 일 부분들은 특화된 하드웨어로 구현되고, 다른 부분들은 CPU에 의해 소프트웨어 모듈들로서 구현된다.
전술한 바와 같이, 스트리밍 어플리케이션(213)에 의해 수행되는 동작들은 인터레이싱된 동영상(208)의 인터레이싱된 프레임(211)을 캡처하는 것을 포함한다. 보다 상세하게 설명하면, 그래픽스 파이프라인에서 처리되는 이미지 데이터는 함수 호출 또는 어플리케이션 프로그래밍 인터페이스(application programming interface; API) 호출을 이용하여 액세스될 수 있다. 이러한 이미지 데이터는 상이한 픽셀 좌표에서의 픽셀 값들을 포함하는 픽셀 어레이들을 포함하는 텍스처(texture)로 지칭될 수 있다. 예를 들어, 텍스처 데이터는, 예를 들어 각각의 색상 채널 또는 투명도 채널의 값들, 감마 값들, 또는 픽셀의 색상, 밝기, 세기 또는 투명도를 특징짓는 다른 값들과 같은, 픽셀의 값들을 포함할 수 있다. 송신자 클라이언트 장치(203)의 멀티뷰 디스플레이(205) 상에서 렌더링되는 인터레이싱된 동영상(208)의 각각의 인터레이싱된 프레임(211)을 캡처하도록, 그래픽스 파이프라인에게 명령어가 보내질 수 있다. 인터레이싱된 프레임들(211)은 그래픽스 메모리(예를 들어, 텍스처 메모리, 그래픽 프로세서에 액세스 가능한 메모리, 렌더링된 출력을 저장하는 메모리)에 저장될 수 있다. 인터레이싱된 프레임들(211)은 렌더링되는 프레임들(예를 들어, 렌더링되었거나 또는 렌더링될 프레임들)을 나타내는 텍스처 데이터를 복사하거나 이에 액세스함으로써 캡처될 수 있다. 인터레이싱된 프레임들(211)은 멀티뷰 디스플레이(205)에 고유한 형식으로 포맷될 수 있다. 이는 멀티뷰 디스플레이(205)의 펌웨어 또는 장치 드라이버들로 하여금, 멀티뷰 디스플레이(205)의 광 밸브들을 제어하여 인터레이싱된 동영상(208)을 멀티뷰 이미지(예를 들어, 멀티뷰 이미지(103))로서 사용자에게 제공할 수 있게끔 한다. 인터레이싱된 동영상(208)의 인터레이싱된 프레임(211)을 캡처하는 것은 어플리케이션 프로그래밍 인터페이스(API)를 이용하여 그래픽스 메모리로부터 텍스처 데이터에 액세스하는 것을 포함할 수 있다.
인터레이싱된 프레임(211)은 압축되지 않은 형식이다. 인터레이싱된 프레임(211)은 제 1 개수의 뷰들(예를 들어, 2개의 뷰들, 4개의 뷰들, 8개의 뷰들 등)을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로서 포맷될 수 있다. 일부 실시 예들에서, 멀티뷰 디스플레이(205)는 특정한 멀티뷰 구성에 따라 구성될 수 있다. 멀티뷰 구성은 멀티뷰 디스플레이(205)가 한 번에 제공할 수 있는 뷰들의 최대 개수 및 해당 뷰들의 배향을 정의하는 구성이다. 멀티뷰 구성은 멀티뷰 컨텐츠를 제공하는 방식을 정의하는 멀티뷰 디스플레이(205)의 하드웨어 제한 사항일 수 있다. 상이한 멀티뷰 디스플레이들은 (예를 들어, 이들이 제공할 수 있는 뷰들의 개수 또는 뷰들의 배향의 관점에서) 상이한 멀티뷰 구성들을 가질 수 있다.
도 3에 도시된 바와 같이, 각각의 인터레이싱된 프레임(211)은 공간 다중화된 뷰들을 갖는다. 도 3은 4개의 뷰들 중 하나에 대응되는 픽셀들을 보여주며, 여기서 픽셀들은 인터레이싱(예를 들어, 인터리빙(interleaving) 또는 공간 다중화)된다. 뷰 1에 속하는 픽셀들은 숫자 1로 표시되고, 뷰 2에 속하는 픽셀들은 숫자 2로 표시되고, 뷰 3에 속하는 픽셀들은 숫자 3으로 표시되며, 뷰 4에 속하는 픽셀들은 숫자 4로 표시된다. 뷰들은 각각의 행을 따라 수평으로 픽셀 단위로 인터레이싱된다. 인터레이싱된 프레임(211)은 대문자 A 내지 E로 표현되는 픽셀들의 행들 및 소문자 a 내지 h로 표현되는 픽셀들의 열들을 갖는다. 도 3은 E행, e열 내지 h열에서 하나의 멀티뷰 픽셀(220)의 위치를 보여준다. 멀티뷰 픽셀(220)은 4개의 뷰들 각각의 픽셀들로부터의 픽셀들의 배열이다. 즉, 멀티뷰 픽셀(220)은 4개의 뷰들 각각의 개별 픽셀들이 인터레이싱되도록 공간 다중화한 결과이다. 도 3은 상이한 뷰들의 픽셀들을 수평 방향으로 공간 다중화하는 것을 보여주지만, 상이한 뷰들의 픽셀들은 수직 방향으로 공간 다중화될 수도 있고, 수평 방향 및 수직 방향 둘 다로 공간 다중화될 수도 있다.
공간 다중화된 뷰들은 4개의 뷰들 각각으로부터의 픽셀들을 갖는 멀티뷰 픽셀(220)을 초래할 수 있다. 일부 실시 예들에서, 멀티뷰 픽셀들은 도 3에 도시된 바와 같이 특정 방향으로 엇갈리게 배치(staggered)될 수 있으며, 여기서 멀티뷰 픽셀들은 수평으로 정렬되고 수직으로 엇갈리게 배치된다. 다른 실시 예들에서, 멀티뷰 픽셀들은 수평으로 엇갈리게 배치되고 수직으로 정렬될 수 있다. 멀티뷰 픽셀들이 공간 다중화되고 엇갈리게 배치되는 특정 방식은 멀티뷰 디스플레이(205)의 설계 및 이의 멀티뷰 구성에 따라 다를 수 있다. 예를 들어, 인터레이싱된 프레임(211)은 픽셀들을 인터레이싱하고 그 픽셀들을 멀티뷰 픽셀들로 정렬하여, 이들이 멀티뷰 디스플레이(205)의 물리적 픽셀들(예를 들어, 광 밸브들)에 맵핑될 수 있게끔 할 수 있다. 즉, 인터레이싱된 프레임(211)의 픽셀 좌표는 멀티뷰 디스플레이(205)의 물리적 위치에 대응된다.
다음으로, 송신자 클라이언트 장치(203)의 스트리밍 어플리케이션(213)은 인터레이싱된 프레임(211)의 공간 다중화된 뷰들을 별개의 뷰들로 디인터레이싱할 수 있다. 디인터레이싱은 멀티뷰 픽셀의 각각의 픽셀을 분리하여, 분리된 뷰들을 형성하는 것을 포함할 수 있다. 따라서, 뷰들은 통합된다(consolidated). 인터레이싱된 프레임(211)은 픽셀들이 분리되지 않도록 이들을 혼합(mixing)하지만, 디인터레이싱은 픽셀들을 별개의 뷰들로 분리한다. 이 프로세스는 타일링된 프레임(214)(예를 들어, 디인터레이싱된 프레임)을 생성할 수 있다. 또한, 각각의 별개의 뷰는, 이들이 서로 인접하게 배치되도록, 연접될 수 있다. 따라서, 프레임은, 프레임의 각각의 타일이 상이한 디인터레이싱된 뷰를 나타내도록, 타일링된다. 뷰들은 수평 방향으로, 수직 방향으로, 또는 이들 둘 다로 나란한 배열로 위치되거나 또는 타일링될 수 있다. 타일링된 프레임(214)은 인터레이싱된 프레임(211)과 거의 동일한 개수의 픽셀들을 가질 수 있지만, 타일링된 프레임의 픽셀들은 별개의 뷰들(v1, v2, v3 및 v4로 표시됨)로 배열된다. 타일링된 프레임(214)의 픽셀 어레이는 행들(A 내지 N)에 걸쳐 있고 열들(a 내지 n)에 걸쳐 있는 것으로 도시되었다. 뷰 1에 속하는 픽셀들은 좌측 상단 사분면에, 뷰 2에 속하는 픽셀들은 좌측 하단 사분면에, 뷰 3에 속하는 픽셀들은 우측 상단 사분면에, 뷰 4에 속하는 픽셀들은 우측 하단 사분면에 위치한다. 이 예에서, 각각의 타일링된 프레임(214)은 사분면에 배열된 4개의 별개의 뷰들로서 시청자에 보이게 될 것이다. 타일링된 프레임(214)의 타일링된 형식은 전송 또는 스트리밍 목적을 위한 것이며 사용자에게의 표시를 위해서는 실제로 이용되지 않을 수 있다. 이러한 타일링된 프레임 형식은 압축에 더욱 적합하다. 또한, 타일링된 프레임 형식은, 다양한 멀티뷰 구성들을 갖는 수신자 클라이언트 장치들로 하여금 송신자 클라이언트 장치(203)로부터 스트리밍되는 멀티뷰 동영상을 렌더링할 수 있게끔 한다. 전체적으로, 타일링된 프레임들(214)은 타일링된 동영상(217)을 형성한다.
이후, 송신자 클라이언트 장치(203)는 타일링된 동영상(217)을 수신자 클라이언트 장치로 전송할 수 있으며, 타일링된 동영상은 압축된 동영상(223)으로서 압축된다. 압축된 동영상(223)은, 예를 들어 H.264 또는 임의의 기타의 코덱(Coder Decoder; CODEC) 사양과 같은 압축 사양을 따르는 동영상 인코더(예를 들어, 압축기)(예를 들어, 코덱)를 이용하여 생성될 수 있다. 압축은 일련의 프레임들을 코덱에 의해 정의된 I-프레임들, P-프레임들 및 B-프레임들로 변환하는 생성을 포함할 수 있다. 전술한 바와 같이, 압축을 위한 준비가 된 각각의 프레임은 멀티뷰 이미지의 디인터레이싱된 연접된 뷰들을 포함하는 프레임이다. 일부 실시 예들에서, 타일링된 동영상(217)을 전송하는 것은 API를 이용하여 실시간으로 타일링된 동영상(217)을 스트리밍하는 것을 포함한다. 실시간 스트리밍은, 현재 렌더링되고 있는 컨텐츠가 원격 장치들로도 스트리밍되어 원격 장치들에서도 실시간으로 컨텐츠를 볼 수 있게끔 한다. 제 3 자 서비스가 타일링된 동영상(217)을 압축하고 스트리밍하기 위한 API들을 제공할 수 있다. 일부 실시 예들에서, 송신자 클라이언트 장치(203)는, 타일링된 동영상(217)을 전송하기 이전에, 타일링된 동영상(217)을 압축하는 것을 포함하는 동작들을 수행할 수 있다. 송신자 클라이언트 장치(203)는 동영상을 압축하기 위한 하드웨어 또는 소프트웨어 동영상 인코더를 포함할 수 있다. 압축된 동영상(223)은 서버를 통해 (예를 들어, 인터넷을 통한) 클라우드 서비스를 이용하여 스트리밍될 수 있다. 압축된 동영상(223)은 또한 송신자 클라이언트 장치(203)와 하나 이상의 수신자 클라이언트 장치 간의 피어-투-피어 연결을 통해 스트리밍될 수 있다.
스트리밍 어플리케이션(213)은 임의의 개수의 재생 어플리케이션들(204)이 렌더링되는 컨텐츠를 하나 이상의 수신자 클라이언트 장치와 공유할 수 있게끔 한다. 이와 관련하여, 실시간 스트리밍을 지원하기 위해 송신자 클라이언트 장치(203)의 각각의 재생 어플리케이션(204)을 수정해야 하는 것 대신, 스트리밍 어플리케이션(213)이 멀티뷰 컨텐츠를 캡처하여 이를 압축에 적합한 형식으로 수신자 클라이언트 장치에 스트리밍한다. 이와 관련하여, 임의의 재생 어플리케이션(204)은 스트리밍 어플리케이션(213)과 협력하여 실시간 멀티뷰 동영상 스트리밍을 지원할 수 있다.
도 4는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 송신자 클라이언트 장치로부터 스트리밍되는 멀티뷰 동영상을 수신하는 일 예를 도시한다. 도 4는 압축된 동영상(223)의 스트림을 수신하는 수신자 클라이언트 장치(224)를 묘사한다. 전술한 바와 같이, 압축된 동영상(223)은 타일링된 프레임들을 포함하는 타일링된 동영상을 포함할 수 있으며, 여기서 각각의 타일링된 프레임은 멀티뷰 이미지(예를 들어, 도 1의 멀티뷰 이미지(103))의 디인터레이싱된 연접된 뷰들을 포함한다. 수신자 클라이언트 장치(224)는 송신자 클라이언트 장치(203)로부터 수신되는 타일링된 동영상(217)을 압축 해제하도록 구성될 수 있다. 예를 들어, 수신자 클라이언트 장치(224)는 압축된 동영상(223)의 수신되는 스트림을 압축 해제하는 동영상 디코더를 포함할 수 있다.
타일링된 동영상(217)이 압축 해제되면, 수신자 클라이언트 장치(224)는 타일링된 프레임(214)을 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로 인터레이싱하여, 스트리밍되는 인터레이싱된 동영상(a streamed interlaced video; 225)을 생성할 수 있다. 스트리밍되는 인터레이싱된 동영상(225)은 수신자 클라이언트 장치(224)에서의 디스플레이를 위해 렌더링되는 스트리밍되는 인터레이싱된 프레임들(226)을 포함할 수 있다. 구체적으로, 스트리밍되는 인터레이싱된 동영상(225)은 버퍼(227)(예를 들어, 수신자 클라이언트 장치(224)의 주 프레임버퍼)에 버퍼링될 수 있다. 수신자 클라이언트 장치(224)는, 예를 들어 도 1 또는 도 2의 멀티뷰 디스플레이(112)와 같은 멀티뷰 디스플레이(231)를 포함할 수 있다. 멀티뷰 디스플레이(231)는 멀티뷰 디스플레이(231)에 의해 제공될 수 있는 뷰들의 최대 개수, 뷰들의 특정 배향, 또는 이들 둘 다를 특정하는 멀티뷰 구성에 따라 구성될 수 있다.
송신자 클라이언트 장치(203)의 멀티뷰 디스플레이(205)는 제 1 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의될 수 있고, 수신자 클라이언트 장치(224)의 멀티뷰 디스플레이(231)는 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의될 수 있다. 일부 실시 예들에서, 뷰들의 제 1 개수와 뷰들의 제 2 개수는 동일할 수 있다. 예를 들어, 송신자 클라이언트 장치(203)는 4-뷰 멀티뷰 동영상을 제시하고, 그 동영상을 4-뷰 멀티뷰 동영상으로서 제시하는 수신자 클라이언트 장치(224)로 스트리밍하도록 구성될 수 있다. 다른 실시 예들에서, 뷰들의 제 1 개수는 뷰들의 제 2 개수와 상이할 수 있다. 예를 들어, 송신자 클라이언트 장치(203)는 수신자 클라이언트 장치(224)의 멀티뷰 디스플레이(231)의 멀티뷰 구성에 관계없이 동영상을 수신자 클라이언트 장치(224)로 스트리밍할 수 있다. 이와 관련하여, 송신자 클라이언트 장치(203)는 수신자 클라이언트 장치(224)의 멀티뷰 구성의 유형을 고려할 필요가 없다.
일부 실시 예들에서, 수신자 클라이언트 장치(224)는, 뷰들의 제 2 개수가 뷰들의 제 1 개수보다 더 많은 경우, 타일링된 프레임(214)에 대한 추가 뷰를 생성하도록 구성된다. 수신자 클라이언트 장치(224)는 각각의 타일링된 프레임(214)으로부터 새로운 뷰들을 합성하여 멀티뷰 디스플레이(231)의 멀티뷰 구성에 의해 지원되는 뷰들의 개수를 생성할 수 있다. 예를 들어, 각각의 타일링된 프레임(214)이 4개의 뷰들을 포함하고 수신자 클라이언트 장치(224)가 8개의 뷰들을 지원하는 경우, 수신자 클라이언트 장치(224)는 각각의 타일링된 프레임(214)에 대한 추가 뷰들을 생성하기 위해 뷰 합성 동작들을 수행할 수 있다. 따라서, 수신자 클라이언트 장치(224)에서 렌더링되는 스트리밍되는 인터레이싱된 동영상(225)은 송신자 클라이언트 장치(203)에서 렌더링되는 인터레이싱된 동영상(208)과 유사하다. 그러나, 동영상 스트리밍과 관련된 압축 및 압축 해제 동작들로 인해 품질이 일부 손실될 수 있다. 또한, 전술한 바와 같이, 수신자 클라이언트 장치(224)는 송신자 클라이언트 장치(203)와 수신자 클라이언트 장치(224) 간의 멀티뷰 구성들의 차이들을 수용하기 위해 뷰(들)를 추가하거나 제거할 수 있다.
뷰 합성은 하나 이상의 원본 뷰를 보간하거나 외삽하여 새로운 뷰를 생성하는 동작들을 포함한다. 뷰 합성은 포워드 워핑(forward warping), 깊이 테스트(depth test), 및 예를 들어 폐색되지 않은(de-occluded) 영역을 채우기 위해 인근 영역을 샘플링하는 인페인팅(in-painting) 기법 중 하나 이상을 포함할 수 있다. 포워드 워핑은 소스 이미지에 변환을 적용하는 이미지 왜곡 프로세스이다. 소스 이미지의 픽셀들은 주사선 순서로 처리될 수 있으며, 그 결과는 타겟 이미지에 투영된다. 깊이 테스트는, 셰이더(shader)에 의해 처리되거나 처리될 이미지의 조각들이, 기록되고 있는 샘플의 깊이와 관련하여 테스트되는 깊이 값들을 갖는, 프로세스이다. 테스트가 실패하는 경우 조각들은 폐기된다. 그리고, 테스트가 통과하는 경우 깊이 버퍼는 조각들의 출력 깊이로 업데이트된다. 인페인팅은 이미지의 누락되거나 알려지지 않은 영역을 채우는 것을 의미한다. 일부 기법들은 인근 픽셀들을 기반으로 픽셀 값들을 예측하거나 또는 인근 픽셀들을 알려지지 않았거나 누락된 영역에 반영하는 것을 포함한다. 이미지의 누락된 또는 알려지지 않은 영역들은, 다른 장면 객체에 의해 부분적으로 덮여 있는 장면 객체를 지칭하는 장면 탈-폐색(de-occlusion)으로부터 야기될 수 있다. 이와 관련하여, 재투영은 원래의 관점(perspective)으로부터 장면의 새로운 관점을 구성하기 위한 이미지 처리 기법들을 포함할 수 있다. 뷰들은 훈련된 신경망(neural network)을 이용하여 합성될 수 있다.
일부 실시 예들에서, 뷰들의 제 2 개수는 뷰들의 제 1 개수보다 더 적을 수 있다. 수신자 클라이언트 장치(224)는, 뷰들의 제 2 개수가 뷰들의 제 1 개수보다 더 적은 경우, 타일링된 프레임(214)의 뷰를 제거하도록 구성될 수 있다. 예를 들어, 각각의 타일링된 프레임(214)이 4개의 뷰들을 포함하고 수신자 클라이언트 장치(224)가 단지 2개의 뷰들만을 지원하는 경우, 수신자 클라이언트 장치(224)는 타일링된 프레임(214)으로부터 2개의 뷰들을 제거할 수 있다. 이는, 4-뷰 타일링된 프레임(214)을 2개의 뷰들로 변환하는 결과를 초래한다.
(새로 추가되는 뷰들 또는 새로 제거되는 뷰들을 포함할 수 있는) 타일링된 프레임(214)의 뷰들은 인터레이싱되어, 스트리밍되는 인터레이싱된 동영상(225)이 생성된다. 인터레이싱 방식은 멀티뷰 디스플레이(231)의 멀티뷰 구성에 따라 다를 수 있다. 수신자 클라이언트 장치(224)는 스트리밍되는 인터레이싱된 동영상(225)을 수신자 클라이언트 장치(224)의 멀티뷰 디스플레이(231) 상에서 렌더링하도록 구성된다. 생성된 동영상은 송신자 클라이언트 장치(203)의 멀티뷰 디스플레이(205) 상에서 렌더링되는 동영상과 유사하다. 스트리밍되는 인터레이싱된 동영상(225)은 수신자 클라이언트 장치(224)의 멀티뷰 구성에 따라 압축 해제되고 인터레이싱된다. 따라서, 송신자 클라이언트 장치(203) 상의 라이트필드 경험은, 수신자 클라이언트 장치들(224)의 멀티뷰 구성들에 무관하게 하나 이상의 수신자 클라이언트 장치(224)에 의해 실시간으로 복제될 수 있다. 예를 들어, 타일링된 동영상을 전송하는 것은 타일링된 동영상을 어플리케이션 프로그래밍 인터페이스를 이용하여 실시간으로 스트리밍하는 것을 포함한다.
도 5는 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따라 송신자 및 수신자 시스템들의 기능 및 아키텍처들의 일 예를 도시한다. 예를 들어, 도 5는 하나 이상의 수신자 시스템(239)에 동영상을 스트리밍하는 송신자 시스템(238)을 묘사한다. 송신자 시스템(238)은 하나 이상의 수신자 시스템(239)으로 라이트필드 컨텐츠를 스트리밍하기 위해 압축된 동영상을 전송하도록 구성된 송신자 클라이언트 장치(203)로서 구현될 수 있다. 수신자 시스템(239)은 수신자 클라이언트 장치(224)로서 구현될 수 있다.
송신자 시스템(238)은, 예를 들어 복수의 뷰들을 갖는 멀티뷰 구성에 따라 구성된 멀티뷰 디스플레이(예를 들어, 도 3의 멀티뷰 디스플레이(205))를 포함할 수 있다. 송신자 시스템(238)은, 예를 들어 CPU, GPU, 특화된 프로세싱 회로, 또는 이들의 임의의 조합과 같은 프로세서를 포함할 수 있다. 송신자 시스템은, 실행되는 경우 프로세서로 하여금 다양한 동영상 스트리밍 동작들을 수행하게끔 하는 복수의 명령어들을 저장하는 메모리를 포함할 수 있다. 송신자 시스템(238)은, 도 6과 관련하여 보다 상세히 후술되는 바와 같은 클라이언트 장치일 수 있거나 또는 클라이언트 장치의 일부 컴포넌트들을 포함할 수 있다.
송신자 시스템(238)과 관련하여, 동영상 스트리밍 동작들은 인터레이싱된 동영상의 인터레이싱된 프레임을 멀티뷰 디스플레이 상에서 렌더링하는 동작들을 포함한다. 송신자 시스템(238)은 그래픽스 파이프라인, 멀티뷰 디스플레이 드라이버 및 멀티뷰 디스플레이 펌웨어를 포함하여, 동영상 데이터를, 인터레이싱된 동영상을 멀티뷰 동영상으로서 시각적으로 디스플레이하는 광빔들로 변환할 수 있다. 예를 들어, 인터레이싱된 동영상(243)의 인터레이싱된 프레임들은 멀티뷰 디스플레이의 물리적 픽셀들에 맵핑되는 픽셀 어레이들로서 메모리에 저장될 수 있다. 인터레이싱된 프레임들은 송신자 시스템(238)에 고유한 압축되지 않은 형식일 수 있다. 지향성 광빔들을 방출하기 위해 멀티뷰 백라이트가 선택될 수 있고, 이후 지향성 광빔들을 변조하도록 광 밸브 어레이가 제어되어 시청자에게 멀티뷰 동영상 컨텐츠가 생성될 수 있다.
동영상 스트리밍 동작들은 메모리에서 인터레이싱된 프레임을 캡처하는 동작들을 더 포함하고, 인터레이싱된 프레임은 멀티뷰 디스플레이의 제 1 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로서 포맷된다. 송신자 시스템(238)은 화면 추출기(240)를 포함할 수 있다. 화면 추출기는 그래픽스 메모리로부터 인터레이싱된 프레임들(예를 들어, 도 3의 인터레이싱된 프레임들(211))에 액세스하는 소프트웨어 모듈일 수 있으며, 여기서 인터레이싱된 프레임들은 멀티뷰 디스플레이 상에서 렌더링되는(예를 들어, 렌더링되었거나 또는 렌더링될 예정인) 동영상 컨텐츠를 나타낸다. 인터레이싱된 프레임은, API를 이용하여 액세스 가능한 텍스처 데이터로서 포맷될 수 있다. 각각의 인터레이싱된 프레임은 인터레이싱된 또는 공간 다중화된 멀티뷰 이미지의 뷰들로서 포맷될 수 있다. 뷰들의 개수 및 멀티뷰 픽셀을 인터레이싱하고 배열하는 방식은, 멀티뷰 디스플레이의 멀티뷰 구성에 의해 제어될 수 있다. 화면 추출기(240)는 압축되지 않은 동영상인 인터레이싱된 동영상(243)의 스트림에 대한 액세스를 제공한다. 상이한 재생 어플리케이션들은 화면 추출기(240)에 의해 캡처될 인터레이싱된 동영상(243)을 렌더링할 수 있다.
동영상 스트리밍 동작들은 인터레이싱된 동영상의 공간 다중화된 뷰들을 별개의 뷰들로 디인터레이싱하는 동작들을 더 포함하고, 별개의 뷰들은 연접되어 타일링된 동영상(249)의 타일링된 프레임을 생성한다. 예를 들어, 송신자 시스템(238)은 디인터레이싱 셰이더(deinterlacing shader; 246)를 포함할 수 있다. 셰이더는 텍스처 데이터 또는 기타의 동영상 데이터를 처리하기 위해 그래픽스 파이프라인에서 실행되는 모듈 또는 프로그램일 수 있다. 디인터레이싱 셰이더(246)는 타일링된 프레임들(예를 들어, 타일링된 프레임들(214))로 구성된 타일링된 동영상(249)을 생성한다. 각각의 타일링된 프레임은 멀티뷰 프레임의 뷰들을 포함하며, 여기서 동영상은 분리되고 연접되어 타일링된 프레임의 별개의 영역들에 배열된다. 타일링된 프레임의 각각의 타일은 상이한 뷰를 나타낼 수 있다.
동영상 스트리밍 동작들은 타일링된 동영상(249)을 수신자 시스템(239)으로 전송하는 동작들을 더 포함하며, 타일링된 동영상(249)은 압축된다. 예를 들어, 송신자 시스템(238)은 타일링된 동영상(249)을 API를 이용하여 실시간으로 스트리밍함으로써 타일링된 동영상(249)을 전송할 수 있다. 멀티뷰 컨텐츠가 디스플레이를 위해 송신자 시스템(238)에 의해 렌더링됨에 따라, 송신자 시스템(238)은 그 컨텐츠의 실시간 스트림을 수신자 시스템(239)에 제공한다. 송신자 시스템(238)은 아웃바운드(outbound) 동영상 스트림을 수신자 시스템(239)으로 전송하는 스트리밍 모듈(252)을 포함할 수 있다. 스트리밍 모듈(252)은 압축된 동영상을 스트리밍하기 위해 제 3 자 API를 이용할 수 있다. 스트리밍 모듈(252)은, 타일링된 동영상(249)의 전송 이전에 타일링된 동영상(249)을 압축하는 동영상 인코더(예를 들어, 코덱)를 포함할 수 있다.
수신자 시스템(239)은, 예를 들어 복수의 뷰들을 갖는 멀티뷰 구성에 따라 구성된 멀티뷰 디스플레이(예를 들어, 멀티뷰 디스플레이(231))를 포함할 수 있다. 수신자 시스템(239)은, 예를 들어 CPU, GPU, 특화된 프로세싱 회로, 또는 이들의 임의의 조합과 같은 프로세서를 포함할 수 있다. 수신자 시스템(239)은, 실행되는 경우 프로세서로 하여금 동영상 스트림을 수신하고 렌더링하는 동작들을 수행하게끔 하는 복수의 명령어들을 저장하는 메모리를 포함할 수 있다. 수신자 시스템(239)은, 예를 들어 도 6과 관련하여 설명되는 바와 같은 클라이언트 장치일 수 있거나 또는 클라이언트 장치의 컴포넌트들을 포함할 수 있다.
수신자 시스템(239)은 송신자 시스템(238)으로부터 수신되는 타일링된 동영상(261)를 압축 해제하도록 구성될 수 있다. 수신자 시스템(239)은 송신자 시스템(238)으로부터 압축된 동영상을 수신하는 수신 모듈(255)을 포함할 수 있다. 수신 모듈(255)은 수신되는 압축된 동영상을 메모리(예를 들어, 버퍼)에 버퍼링할 수 있다. 수신 모듈(255)은 압축된 동영상을 타일링된 동영상(261)으로 압축 해제하기 위한 동영상 디코더(258)(예를 들어, 코덱)를 포함할 수 있다. 타일링된 동영상(261)은 송신자 시스템(238)에 의해 처리된 타일링된 동영상(249)과 유사할 수 있다. 그러나, 동영상 스트림의 압축 및 압축 해제로 인해 품질이 일부 손실될 수 있다. 이는, 손실 압축 알고리즘을 이용한 결과이다.
수신자 시스템(239)은 타일링된 동영상(261)의 각각의 타일링된 프레임에 대한 목표 개수의 뷰들을 생성하기 위한 뷰 합성기(264)를 포함할 수 있다. 각각의 타일링된 프레임에 대해 새로운 뷰들이 합성되거나 각각의 타일링된 프레임으로부터 뷰들이 제거될 수 있다. 뷰 합성기(264)는 수신자 시스템(239)의 멀티뷰 디스플레이의 멀티뷰 구성에 의해 특정된 목표 개수의 뷰들을 달성하도록 각각의 타일링된 프레임에 존재하는 뷰들의 개수를 변환한다. 수신자 시스템(239)은 타일링된 프레임을 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로 인터레이싱하고, 스트리밍되는 인터레이싱된 동영상(270)를 생성하도록 구성될 수 있다. 예를 들어, 수신자 시스템(239)은, (예를 들어, 새로 합성된 임의의 뷰들이 있는 또는 일부 뷰들이 제거된) 프레임의 별개의 뷰들을 수신하고 수신자 시스템(239)의 멀티뷰 구성에 따라 뷰들을 인터레이싱하여 스트리밍되는 인터레이싱된 동영상(270)를 생성하는 인터레이싱 셰이더(267)를 포함할 수 있다. 스트리밍되는 인터레이싱된 동영상(270)은 수신자 시스템(239)의 멀티뷰 디스플레이에 부합하도록 포맷될 수 있다. 이후, 수신자 시스템(239)은 스트리밍되는 인터레이싱된 동영상(270)을 수신자 시스템(239)의 멀티뷰 디스플레이 상에서 렌더링할 수 있다. 이는, 송신자 시스템(238)으로부터 수신자 시스템(239)으로 라이트필드 컨텐츠의 실시간 스트리밍을 제공한다.
따라서, 실시 예들에 따르면, 수신자 시스템(239)은, 수신자 시스템(239)이 송신자 시스템(238)으로부터 스트리밍되는 멀티뷰 동영상을 수신하는 것을 포함하는 다양한 동작들을 수행할 수 있다. 예를 들어, 수신자 시스템(239)은 송신자 시스템(238)으로부터 타일링된 동영상을 수신하는 것과 같은 동작들을 수행할 수 있다. 타일링된 동영상은 타일링된 프레임을 포함할 수 있으며, 여기서 타일링된 프레임은 연접된 별개의 뷰들을 포함한다. 타일링된 프레임의 뷰들의 개수는 송신자 시스템(238)의 뷰들의 제 1 개수를 갖는 멀티뷰 구성에 의해 정의될 수 있다. 즉, 송신자 시스템(238)은 송신자 시스템(238)에 의해 지원되는 뷰들의 개수에 따라 타일링된 동영상 스트림을 생성할 수 있다. 수신자 시스템(239)은, 예를 들어 타일링된 동영상을 압축 해제하고 타일링된 프레임을 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로 인터레이싱하여 스트리밍되는 인터레이싱된 동영상(270)를 생성하는 것과 같은 추가적인 동작들을 수행할 수 있다.
전술한 바와 같이, 송신자 시스템(238)과 수신자 시스템(239) 간의 멀티뷰 구성들은, 각각이 상이한 개수의 뷰들 또는 이들 뷰들의 상이한 배향을 지원하도록, 상이할 수 있다. 수신자 시스템(239)은, 뷰들의 제 2 개수가 뷰들의 제 1 개수보다 더 많은 경우 타일링된 프레임에 대한 추가 뷰를 생성하거나, 뷰들의 제 2 개수가 뷰들의 제 1 개수보다 더 적은 경우 타일링된 프레임의 뷰를 제거하는 동작을 수행할 수 있다. 따라서, 수신자 시스템(239)은 타일링된 프레임들로부터 뷰들을 제거하거나 추가 뷰들을 합성하여 수신자 시스템(239)에 의해 지원되는 목표 개수의 뷰들에 도달할 수 있다. 이후, 수신자 시스템(239)은 스트리밍되는 인터레이싱된 동영상(270)을 수신자 시스템(239)의 멀티뷰 디스플레이 상에서 렌더링하는 동작들을 수행할 수 있다.
도 5는 송신자 시스템(238) 및 수신자 시스템(239) 내의 다양한 컴포넌트들 또는 모듈들을 묘사한다. 소프트웨어로 구현되는 경우, 각각의 박스(예를 들어, 화면 추출기(250), 디인터레이싱 셰이더(246), 스트리밍 모듈(252), 수신 모듈(255), 뷰 합성기(264), 또는 인터레이싱 셰이더(267))는 지정된 논리 함수(들)를 구현하기 위한 명령어들을 포함하는 코드의 부분, 세그먼트 또는 모듈을 나타낼 수 있다. 명령어들은 프로그래밍 언어로 작성된 사람이 읽을 수 있는 명령문을 포함하는 소스 코드, 소스 코드로부터 컴파일된 객체 코드, 또는 컴퓨팅 장치의 프로세서와 같은 적절한 실행 시스템에 의해 인식될 수 있는 숫자 명령어들을 포함하는 기계어 코드의 형태로 구현될 수 있다. 기계어 코드는 소스 코드 등으로부터 변환될 수 있다. 하드웨어로 구현되는 경우, 각각의 블록은 지정된 논리 함수(들)를 구현하기 위한 회로 또는 복수의 상호 연결된 회로들을 나타낼 수 있다.
도 5는 특정한 실행 순서를 나타내고 있지만, 실행 순서는 묘사된 순서와는 상이할 수 있음을 이해할 수 있다. 예를 들어, 2개 이상의 박스들의 실행 순서는 도시된 순서에 대해 뒤섞일 수 있다. 또한, 도시된 2개 이상의 박스들은 동시에 또는 부분적으로 동시에 실행될 수 있다. 또한, 일부 실시 예들에서, 박스들 중 하나 이상은 스킵(skip)되거나 생략될 수 있다.
도 6은 본 명세서에 설명된 원리들에 일치되는 일 실시 예에 따른 클라이언트 장치의 예시적인 실례를 묘사하는 개략적인 블록도이다. 클라이언트 장치(1000)는 송신자 클라이언트 장치(203) 또는 수신자 클라이언트 장치(224)를 나타낼 수 있다. 또한, 클라이언트 장치(1000)의 컴포넌트들은 송신자 시스템(238) 또는 수신자 시스템(239)으로서 설명될 수 있다. 클라이언트 장치(1000)는 송신자로부터 수신자에게 멀티뷰 동영상 컨텐츠를 스트리밍하기 위한 다양한 컴퓨팅 동작들을 수행하는 컴포넌트들의 시스템을 포함할 수 있다. 클라이언트 장치(1000)는 랩톱, 태블릿, 스마트 폰, 터치 스크린 시스템, 지능형 디스플레이 시스템, 또는 기타의 클라이언트 장치일 수 있다. 클라이언트 장치(1000)는, 예를 들어 프로세서(들)(1003), 메모리(1006), 입출력(input/output; I/O) 컴포넌트(들)(1009), 디스플레이(1012) 및 잠재적인 기타의 컴포넌트들과 같은 다양한 컴포넌트들을 포함할 수 있다. 이러한 컴포넌트들은, 클라이언트 장치(1000)의 컴포넌트들이 서로 통신할 수 있도록 로컬 인터페이스로서의 역할을 하는 버스(1015)에 결합될 수 있다. 클라이언트 장치(1000)의 컴포넌트들이 클라이언트 장치(1000) 내에 포함되는 것으로 도시되지만, 컴포넌트들 중 적어도 일부는 외부 연결을 통해 클라이언트 장치(1000)에 결합될 수도 있음을 이해하여야 한다. 예를 들어, 컴포넌트들은 외부 포트들, 소켓들, 플러그들, 무선 링크들 또는 커넥터들을 통해 클라이언트 장치(1000)에 외부적으로 연결되거나 또는 다른 방식으로 연결될 수 있다.
프로세서(1003)는 중앙 처리 유닛(central processing unit; CPU), 그래픽스 처리 유닛(graphics processing unit; GPU), 컴퓨팅 처리 동작들을 수행하는 임의의 다른 집적 회로, 또는 이들의 임의의 조합일 수 있다. 프로세서(들)(1003)는 하나 이상의 프로세싱 코어들을 포함할 수 있다. 프로세서(들)(1003)는 명령어들을 실행하는 회로를 포함한다. 예를 들어, 명령어들은, 명령어들에 구현된 컴퓨팅 기능을 수행하기 위해 프로세서(들)(1003)에 의해 수신되고 실행되는 컴퓨터 코드, 프로그램들, 로직 또는 기타의 기계 판독가능 명령어들을 포함한다. 프로세서(들)(1003)는 데이터에 대해 연산하도록 명령어들을 실행할 수 있다. 예를 들어, 프로세서(들)(1003)는 입력 데이터(예를 들어, 이미지)를 수신하고, 명령어 세트에 따라 입력 데이터를 처리하고, 출력 데이터(예를 들어, 처리된 이미지)를 생성할 수 있다. 다른 예로서, 프로세서(들)(1003)는 명령어들을 수신하고 후속 실행을 위한 새로운 명령어들을 생성할 수 있다. 프로세서(1003)는 동영상 컨텐츠를 처리하고 렌더링하기 위한 그래픽스 파이프라인을 구현하기 위한 하드웨어를 포함할 수 있다. 예를 들어, 프로세서(들)(1003)는 하나 이상의 GPU 코어, 벡터 프로세서, 스케일러 프로세스, 또는 하드웨어 가속기를 포함할 수 있다.
메모리(1006)는 하나 이상의 메모리 컴포넌트들을 포함할 수 있다. 본 명세서에서, 메모리(1006)는 휘발성 메모리 및 비휘발성 메모리 중 하나 또는 둘 다를 포함하는 것으로 정의된다. 휘발성 메모리 컴포넌트들은 전력 손실 시 정보를 보유하지 않는 컴포넌트들이다. 예를 들어, 휘발성 메모리는 랜덤 액세스 메모리(random access memory; RAM), 정적(static) 랜덤 액세스 메모리(SRAM), 동적(dynamic) 랜덤 액세스 메모리(DRAM), 자기(magnetic) 랜덤 액세스 메모리(MRAM), 또는 기타의 휘발성 메모리 구조를 포함할 수 있다. 시스템 메모리(예를 들어, 메인 메모리, 캐시 등)는 휘발성 메모리를 이용하여 구현될 수 있다. 시스템 메모리는 프로세서(들)(1003)를 보조하기 위해 고속 읽기 및 쓰기 액세스를 위한 데이터 또는 명령어들을 일시적으로 저장할 수 있는 고속 메모리를 지칭한다.
비휘발성 메모리 컴포넌트들은 전력 손실 시 정보를 유지하는 컴포넌트들이다. 비휘발성 메모리는 읽기 전용 메모리(read-only memory; ROM), 하드 디스크 드라이브, 고체 상태 드라이브, USB 플래시 드라이브, 메모리 카드 판독기를 통해 액세스되는 메모리 카드, 관련 플로피 디스크 드라이브를 통해 액세스되는 플로피 디스크, 광학 디스크 드라이브를 통해 액세스되는 광학 디스크, 적절한 테이프 드라이브를 통해 액세스되는 자기 테이프를 포함한다. 예를 들어, ROM은 프로그램 가능한(programmable) 읽기 전용 메모리(PROM), 소거 가능 프로그램 가능한(erasable programmable) 읽기 전용 메모리(EPROM), 전기적 소거 가능 프로그램 가능한(electrically erasable programmable) 읽기 전용 메모리(EEPROM), 또는 기타의 유사한 메모리 장치를 포함할 수 있다. 스토리지(storage) 메모리는 데이터 및 명령어들의 지속적인 유지를 제공하기 위해 비휘발성 메모리를 이용하여 구현될 수 있다.
메모리(1006)는 명령어들뿐만 아니라 데이터를 저장하기 위해 사용되는 휘발성 메모리 및 비휘발성 메모리의 조합을 의미할 수 있다. 예를 들어, 데이터 및 명령어들은 비휘발성 메모리에 저장될 수 있으며, 프로세서(들)(1003)에 의한 처리를 위해 휘발성 메모리에 로딩될 수 있다. 예를 들어, 명령어들의 실행은, 비휘발성 메모리로부터 휘발성 메모리로 로딩된 이후 프로세서(1003)에 의해 실행될 수 있는 될 수 있는 형식의 기계 코드로 변환된 컴파일된 프로그램, 프로세서(1003)에 의한 실행을 위해 휘발성 메모리로 로딩될 수 있는 객체 코드와 같은 적절한 형식으로 변환된 소스 코드, 또는 휘발성 메모리에서 명령어들을 생성하기 위해 다른 실행 가능한 프로그램에 의해 해석되고 프로세서(1003)에 의해 실행되는 소스 코드 등을 포함할 수 있다. 명령어들은, 예를 들어 RAM, ROM, 시스템 메모리, 스토리지, 또는 이들의 임의의 조합을 포함하는 메모리(1006)의 임의의 부분 또는 컴포넌트에 저장되거나 로딩될 수 있다.
메모리(1006)가 클라이언트 장치(1000)의 다른 컴포넌트들과는 별개인 것으로 도시되지만, 메모리(1006)는 적어도 부분적으로 하나 이상의 컴포넌트들에 탑재되거나 다른 방식으로 집적될 수 있음을 이해하여야 한다. 예를 들어, 프로세서(들)(1003)는 처리 동작들을 수행하기 위해 온보드(onboard) 메모리 레지스터들 또는 캐시를 포함할 수 있다. 장치 펌웨어 또는 드라이버들은 전용 메모리 장치들에 저장된 명령어들을 포함할 수 있다.
예를 들어, I/O 컴포넌트(들)(1009)는 터치 스크린, 스피커, 마이크로폰, 버튼, 스위치, 다이얼, 카메라, 센서, 가속도계, 또는 사용자 입력을 수신하거나 사용자에게 지시되는 출력을 생성하는 기타의 컴포넌트들을 포함한다. I/O 컴포넌트(들)(1009)는 사용자 입력을 수신하여 메모리(1006)에의 저장 또는 프로세서(들)(1003)에 의한 처리를 위한 데이터로 변환할 수 있다. I/O 컴포넌트(들)(1009)는 메모리(1006) 또는 프로세서(들)(1003)에 의해 출력되는 데이터를 수신하고 이를 사용자에 의해 지각되는 형식(예를 들어, 소리, 촉각 반응, 시각 정보 등)으로 변환할 수 있다.
I/O 컴포넌트(1009)의 특정 유형은 디스플레이(1012)이다. 디스플레이(1012)는 멀티뷰 디스플레이(예를 들어, 멀티뷰 디스플레이(112, 205, 231)), 2D 디스플레이와 결합된 멀티뷰 디스플레이, 또는 이미지들을 나타내는 임의의 기타의 디스플레이를 포함할 수 있다. I/O 컴포넌트(1009)로서 기능하는 용량성 터치 스크린 계층은, 사용자가 입력을 제공함과 동시에 시각적 출력을 지각할 수 있도록, 디스플레이 내에 계층화될 수 있다. 프로세서(들)(1003)는 디스플레이(1012) 상의 표현을 위한 이미지로서 포맷된 데이터를 생성할 수 있다. 프로세서(들)(1003)는 사용자에 의한 지각을 위해 디스플레이 상에 이미지를 렌더링하기 위한 명령어들을 실행할 수 있다.
버스(1015)는 프로세서(들)(1003), 메모리(1006), I/O 컴포넌트(들)(1009), 디스플레이(1012) 및 클라이언트 장치(1000)의 임의의 다른 컴포넌트들 사이의 명령어들 및 데이터의 통신을 용이하게 한다. 버스(1015)는 데이터 및 명령어들의 통신을 허용하기 위해 어드레스 변환기들, 어드레스 디코더들, 패브릭, 전도성 트레이스들, 전도성 와이어들, 포트들, 플러그들, 소켓들 및 기타의 커넥터들을 포함할 수 있다.
메모리(1006) 내의 명령어들은 소프트웨어 스택의 적어도 일부를 구현하는 방식으로 다양한 형태로 구현될 수 있다. 예를 들어, 명령어들은 운영 체제(1031), 어플리케이션(들)(1034), 장치 드라이버(예를 들어, 디스플레이 드라이버(1037)), 펌웨어(예를 들어, 디스플레이 펌웨어(1040)), 기타의 소프트웨어 컴포넌트들, 또는 이들의 임의의 조합의 일부로서 구현될 수 있다. 운영 체제(1031)는 연산 스케줄링, I/O 컴포넌트들(1009) 제어, 하드웨어 리소스에 대한 액세스 제공, 전력 관리, 및 어플리케이션(1034) 지원과 같은, 클라이언트 장치(1000)의 기본 기능을 지원하는 소프트웨어 플랫폼이다.
어플리케이션(들)(1034)은 운영 체제(1031) 상에서 실행되고 운영 체제(1031)를 통해 클라이언트 장치(1000)의 하드웨어 리소스들에 액세스할 수 있다. 이와 관련하여, 어플리케이션(들)(1034)의 실행은 적어도 부분적으로 운영 체제(1031)에 의해 제어된다. 어플리케이션(들)(1034)은 사용자에게 높은 수준의 기능, 서비스 및 기타의 기능을 제공하는 사용자 수준의 소프트웨어 프로그램일 수 있다. 일부 실시 예들에서, 어플리케이션(1034)은 클라이언트 장치(1000) 상에서 사용자가 다운로드 가능하거나 액세스 가능한 전용 '앱(app)'일 수 있다. 사용자는 운영 체제(1031)에 의해 제공되는 사용자 인터페이스를 통해 어플리케이션(들)(1034)을 실행할 수 있다. 어플리케이션(들)(1034)은 개발자들에 의해 개발되고 다양한 소스 코드 형식들로 정의될 수 있다. 어플리케이션들(1034)은, 예를 들어, C, C++, C#, Objective C, Java®, Swift, JavaScript®, Perl, PHP, Visual Basic®, Python®, Ruby, Go, 또는 기타의 프로그래밍 언어들과 같은, 많은 프로그래밍 또는 스크립팅 언어들을 이용하여 개발될 수 있다. 어플리케이션(들)(1034)은 컴파일러에 의해 객체 코드로 컴파일되거나 프로세서(들)(1003)에 의한 실행을 위해 해석기에 의해 해석될 수 있다. 어플리케이션(1034)은, 사용자가 멀티뷰 동영상 컨텐츠 스트리밍을 위한 수신자 클라이언트 장치들을 선택할 수 있게끔 하는 어플리케이션일 수 있다. 재생 어플리케이션(204) 및 스트리밍 어플리케이션(213)은 운영 체제 상에서 실행되는 어플리케이션들(1034)의 예들이다.
예를 들어 디스플레이 드라이버(1037)와 같은 장치 드라이버들은, 운영 체제(1031)가 다양한 I/O 컴포넌트들(1009)과 통신할 수 있도록 하는, 명령어들을 포함한다. 각각의 I/O 컴포넌트(1009)는 자신의 장치 드라이버를 가질 수 있다. 장치 드라이버들은, 스토리지에 저장되고 시스템 메모리에 로딩되도록, 설치될 수 있다. 예를 들어, 설치 시에, 디스플레이 드라이버(1037)는 운영 체제(1031)로부터 수신된 높은 수준의 디스플레이 명령어를 이미지의 디스플레이를 위해 디스플레이(1012)에 의해 구현되는 낮은 수준의 명령어들로 변환한다.
예를 들어 디스플레이 펌웨어(1040)와 같은, 펌웨어는 I/O 컴포넌트(1009) 또는 디스플레이(1012)가 낮은 수준의 연산들을 수행할 수 있게끔 하는 기계 코드 또는 어셈블리 코드를 포함할 수 있다. 펌웨어는 특정 컴포넌트의 전기적 신호들을 더 높은 수준의 명령어들 또는 데이터로 변환할 수 있다. 예를 들어, 디스플레이 펌웨어(1040)는 전압 또는 전류 신호를 조절함으로써 디스플레이(1012)가 낮은 수준에서 개별 픽셀들을 활성화하는 방식을 제어할 수 있다. 펌웨어는 비휘발성 메모리에 저장되고, 비휘발성 메모리로부터 직접 실행될 수 있다. 예를 들어, 디스플레이 펌웨어(1040)는, ROM 칩이 클라이언트 장치(1000)의 다른 스토리지 및 시스템 메모리로부터 분리되도록 디스플레이(1012)에 연결된, ROM 칩에 구현될 수 있다. 디스플레이(1012)는 디스플레이 펌웨어(1040)를 실행하기 위한 프로세싱 회로를 포함할 수 있다.
운영 체제(1031), 어플리케이션(들)(1034), 드라이버들(예를 들어, 디스플레이 드라이버(1037)), 펌웨어(예를 들어, 디스플레이 펌웨어(1040)), 및 가능한 다른 명령어 세트들은, 각각, 전술한 기능 및 동작들을 수행하기 위해 프로세서(들)(1003) 또는 클라이언트 장치(1000)의 다른 프로세싱 회로에 의해 실행 가능한 명령어들을 포함한다. 비록 본 명세서에 설명된 명령어들은 전술한 바와 같이 프로세서(들)(1003)에 의해 실행되는 소프트웨어 또는 코드로 구현될 수 있지만, 대안적으로, 명령어들은 전용 하드웨어 또는 소프트웨어와 전용 하드웨어의 조합으로 구현될 수도 있다. 예를 들어, 전술한 명령어들에 의해 수행되는 기능 및 동작들은 여러 기법들 중 어느 하나 또는 이들의 조합을 채용하는 회로 또는 상태 머신으로서 구현될 수 있다. 이러한 기법들은, 하나 이상의 데이터 신호의 인가 시 다양한 로직 기능들을 구현하기 위한 로직 게이트들을 갖는 개별 로직 회로들, 적절한 로직 게이트들을 갖는 어플리케이션 특정 집적 회로(application specific integrated circuit; ASIC)들, 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA)들, 또는 기타의 컴포넌트들 등을 포함할 수 있지만, 이에 제한되지는 않는다.
일부 실시 예들에서, 전술한 기능 및 동작들을 수행하는 명령어들은 비-일시적인 컴퓨터-판독 가능한 저장 매체에 구현될 수 있다. 비-일시적인 컴퓨터-판독 가능한 저장 매체는 클라이언트 장치(1000)의 일부일 수도 있고 아닐 수도 있다. 예를 들어, 명령어들은 컴퓨터-판독 가능한 매체로부터 페치되고 프로세싱 회로(예를 들어, 프로세서(들)(1003))에 의해 실행될 수 있는 명령문들, 코드, 또는 선언들을 포함할 수 있다. 본 명세서에 정의된 "비-일시적인 컴퓨터-판독 가능한 저장 매체(non-transitory, computer-readable storage medium)"는, 예를 들어 클라이언트 장치(1000)과 같은 명령어 실행 시스템에 의해 또는 이와 함께 사용하기 위해 본 명세서에 설명된 명령어들을 포함, 저장 또는 유지할 수 있는 임의의 매체로서 정의될 수 있으며, 예를 들어 반송파를 포함하는 일시적인 매체를 배제할 수 있다.
비-일시적인 컴퓨터-판독 가능한 매체는, 예를 들어 자기, 광학 또는 반도체 매체와 같은 많은 물리적 매체들 중 임의의 것을 포함할 수 있다. 적절한 비-일시적인 컴퓨터-판독 가능한 매체의 보다 구체적인 예들에는 자기 테이프, 자기 플로피 디스켓, 자기 하드 드라이브, 메모리 카드, 고체 상태 드라이브, USB 플래시 드라이브 또는 광학 디스크가 있지만, 있지만 이에 제한되지는 않는다. 또한, 비-일시적인 컴퓨터-판독 가능한 매체는, 예를 들어 정적 랜덤 액세스 메모리(SRAM) 및 동적 랜덤 액세스 메모리(DRAM), 또는 자기 랜덤 액세스 메모리(MRAM)를 포함하는, 랜덤 액세스 메모리(RAM)일 수 있다. 또한, 비-일시적인 컴퓨터-판독 가능한 매체는 읽기 전용 메모리(ROM), 프로그램 가능한 읽기 전용 메모리(PROM), 소거 가능 프로그램 가능한 판독 전용 메모리(EPROM), 전기적 소거 가능 프로그램 가능한 판독 전용 메모리(EEPROM), 또는 기타 유형의 메모리 장치일 수 있다.
클라이언트 장치(1000)는 전술한 동작들 중 임의의 것을 수행하거나, 전술한 기능을 구현할 수 있다. 예를 들어, 전술한 프로세스 흐름들은 명령어들을 실행하고 데이터를 처리하는 클라이언트 장치(1000)에 의해 수행될 수 있다. 클라이언트 장치(1000)가 단일 장치로서 도시되어 있지만, 실시 예들이 이에 제한되는 것은 아니다. 일부 실시 예들에서, 클라이언트 장치(1000)는 분산 방식으로 명령어들의 처리를 오프로드(offload)할 수 있고, 복수의 클라이언트 장치들(1000) 또는 기타의 컴퓨팅 장치들은 분산 배열로 저장 또는 로딩될 수 있는 명령어들을 실행하기 위해 함께 동작할 수 있다. 예를 들어, 적어도 일부 명령어들 또는 데이터는 클라이언트 장치(1000)과 연동하여 동작하는 클라우드 기반 시스템에서 저장, 로딩 또는 실행될 수 있다.
이상에서는, 송신자 시스템 상에서 렌더링되는 인터레이싱된(예를 들어, 압축되지 않은) 멀티뷰 동영상 프레임들에 액세스하고, 이들 프레임들을 별개의 뷰들로 디인터레이싱하고, 분리된 뷰들을 연접시켜 타일링된 프레임들의 세트 중의 타일링된(예를 들어, 디인터레이싱된) 프레임을 생성하고, 타일링된 프레임들을 압축하는 예들 및 실시 예들이 설명되었다. 수신자 시스템은 타일링된 프레임들을 압축 해제하고 각각의 타일링된 프레임으로부터 분리된 뷰들을 추출할 수 있다. 수신자 시스템은, 수신자 시스템에 의해 지원되는 목표 개수의 뷰들을 달성하기 위해 새로운 뷰들을 합성하거나 뷰들을 제거할 수 있다. 이후, 수신자 시스템은 각각의 프레임의 뷰들을 인터레이싱하고 디스플레이를 위해 이를 렌더링할 수 있다. 전술한 예들은 단지 본 명세서에 설명된 원리들을 나타내는 많은 구체적인 예들 중 일부를 예시하는 것임을 이해하여야 한다. 명백히, 당업자는 다음의 청구 범위에 의해 정의되는 범위를 벗어나지 않고 수 많은 다른 구성들을 쉽게 고안할 수 있다.

Claims (20)

  1. 송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법으로서,
    상기 송신자 클라이언트 장치의 멀티뷰 디스플레이 상에서 렌더링되는 인터레이싱된(interlaced) 동영상의 인터레이싱된 프레임을 캡처하는 단계 - 상기 인터레이싱된 프레임은 제 1 개수의 뷰들(views)을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로서 포맷됨 -;
    상기 인터레이싱된 프레임의 공간 다중화된 뷰들을 별개의 뷰들로 디인터레이싱(deinterlacing)하는 단계 - 상기 별개의 뷰들은 연접되어(concatenated) 타일링된 동영상의 타일링된 프레임을 생성함 -; 및
    상기 타일링된 동영상을 수신자 클라이언트 장치로 전송하는 단계 - 상기 타일링된 동영상은 압축됨 -;
    를 포함하는, 송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  2. 제 1 항에 있어서,
    상기 인터레이싱된 동영상의 인터레이싱된 프레임을 캡처하는 단계는, 어플리케이션 프로그래밍 인터페이스를 이용하여 그래픽스 메모리로부터 텍스처 데이터에 액세스하는 단계를 포함하는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  3. 제 1 항에 있어서,
    상기 타일링된 동영상을 전송하는 단계는, 어플리케이션 프로그래밍 인터페이스를 이용하여 실시간으로 상기 타일링된 동영상을 스트리밍하는 단계를 포함하는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  4. 제 1 항에 있어서,
    상기 타일링된 동영상을 전송하기 이전에 상기 타일링된 동영상을 압축하는 단계;
    를 더 포함하는, 송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  5. 제 1 항에 있어서,
    상기 수신자 클라이언트 장치는:
    상기 송신자 클라이언트 장치로부터 수신되는 상기 타일링된 동영상을 압축 해제하고;
    상기 타일링된 프레임을 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로 인터레이싱하여, 스트리밍되는 인터레이싱된 동영상을 생성하고;
    상기 스트리밍되는 인터레이싱된 동영상을 상기 수신자 클라이언트 장치의 멀티뷰 디스플레이 상에서 렌더링; 하도록 구성되는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  6. 제 5 항에 있어서,
    뷰들의 상기 제 1 개수는 뷰들의 상기 제 2 개수와는 상이한,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  7. 제 6 항에 있어서,
    뷰들의 상기 제 2 개수가 뷰들의 상기 제 1 개수보다 더 많은 경우, 상기 수신자 클라이언트 장치는 상기 타일링된 프레임에 대한 추가 뷰를 생성하도록 구성되는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  8. 제 6 항에 있어서,
    뷰들의 상기 제 2 개수가 뷰들의 상기 제 1 개수보다 더 적은 경우, 상기 수신자 클라이언트 장치는 상기 타일링된 프레임의 뷰를 제거하도록 구성되는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  9. 제 1 항에 있어서,
    상기 송신자 클라이언트 장치의 멀티뷰 디스플레이는 광각 백라이트를 이용하여 2D 모드 동안 광각 방출광을 제공하도록 구성되고;
    상기 송신자 클라이언트 장치의 멀티뷰 디스플레이는 멀티빔 소자들의 어레이를 갖는 멀티뷰 백라이트를 이용하여 멀티뷰 모드 동안 지향성 방출광을 제공하도록 구성되고 - 상기 지향성 방출광은 상기 멀티빔 소자 어레이의 각각의 멀티빔 소자에 의해 제공되는 복수의 지향성 광빔들을 포함함 -;
    상기 송신자 클라이언트 장치의 멀티뷰 디스플레이는, 상기 2D 모드에 대응되는 제 1 순차 시간 구간 동안에는 상기 광각 백라이트를 그리고 상기 멀티뷰 모드에 대응되는 제 2 순차 시간 구간 동안에는 상기 멀티뷰 백라이트를 순차적으로 활성화시키기 위해, 모드 제어기를 이용하여 상기 2D 모드 및 상기 멀티뷰 모드를 시간 다중화하도록 구성되며;
    상기 지향성 광빔들의 방향들은 상기 멀티뷰 동영상의 인터레이싱된 프레임의 상이한 뷰 방향들에 대응되는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  10. 제 1 항에 있어서,
    상기 송신자 클라이언트 장치의 멀티뷰 디스플레이는 도광체 내의 광을 안내된 광으로서 안내하도록 구성되고;
    상기 송신자 클라이언트 장치의 멀티뷰 디스플레이는 멀티빔 소자 어레이의 멀티빔 소자들을 이용하여 상기 안내된 광의 일부를 지향성 방출광으로서 산란시키도록 구성되며;
    상기 멀티빔 소자 어레이의 각각의 멀티빔 소자는 회절 격자, 미세 굴절성 소자 및 미세 반사성 소자 중 하나 이상을 포함하는,
    송신자 클라이언트 장치가 멀티뷰 동영상을 스트리밍하는 방법.
  11. 송신자 시스템으로서,
    복수의 뷰들을 갖는 멀티뷰 구성에 따라 구성된 멀티뷰 디스플레이;
    프로세서; 및
    복수의 명령어들을 저장하는 메모리;
    를 포함하되,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금:
    인터레이싱된 동영상의 인터레이싱된 프레임을 상기 멀티뷰 디스플레이 상에서 렌더링하고;
    상기 메모리에서 상기 인터레이싱된 프레임을 캡처하고 - 상기 인터레이싱된 프레임은 상기 멀티뷰 디스플레이의 제 1 개수의 뷰들을 갖는 상기 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로서 포맷됨 -;
    상기 인터레이싱된 동영상의 공간 다중화된 뷰들을 별개의 뷰들로 디인터레이싱하고 - 상기 별개의 뷰들은 연접되어, 타일링된 동영상의 타일링된 프레임을 생성함 -;
    상기 타일링된 동영상을 수신자 시스템으로 전송 - 상기 타일링된 동영상은 압축됨 -; 하게끔 하는,
    송신자 시스템.
  12. 제 11 항에 있어서,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금 추가적으로:
    어플리케이션 프로그래밍 인터페이스를 이용하여 그래픽스 메모리로부터 텍스처 데이터에 액세스함으로써 상기 멀티뷰 동영상의 인터레이싱된 프레임을 캡처하게끔 하는,
    송신자 시스템.
  13. 제 11 항에 있어서,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금 추가적으로:
    어플리케이션 프로그래밍 인터페이스를 이용하여 실시간으로 상기 타일링된 동영상을 스트리밍함으로써, 상기 타일링된 동영상을 전송하게끔 하는,
    송신자 시스템.
  14. 제 11 항에 있어서,
    상기 복수의 명령어들은, 실행되는 경우, 상기 프로세서로 하여금 추가적으로:
    상기 타일링된 동영상을 전송하기 이전에 상기 타일링된 동영상을 압축하게끔 하는,
    송신자 시스템.
  15. 제 11 항에 있어서,
    상기 수신자 시스템은:
    상기 송신자 시스템으로부터 수신되는 타일링된 동영상을 압축 해제하고;
    상기 타일링된 프레임을 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로 인터레이싱하여, 스트리밍되는 인터레이싱된 동영상을;
    상기 스트리밍되는 인터레이싱된 동영상을 상기 수신자 시스템의 멀티뷰 디스플레이 상에서 렌더링; 하도록 구성되는,
    송신자 시스템.
  16. 제 15 항에 있어서,
    뷰들의 상기 제 1 개수는 뷰들의 상기 제 2 개수와는 상이한,
    송신자 시스템.
  17. 제 16 항에 있어서,
    뷰들의 상기 제 2 개수가 뷰들의 상기 제 1 개수보다 더 많은 경우, 상기 수신자 시스템은 상기 타일링된 프레임에 대한 추가 뷰를 생성하도록 구성되는,
    송신자 시스템.
  18. 수신자 시스템이 송신자 시스템으로부터 스트리밍되는 멀티뷰 동영상을 수신하는 방법으로서,
    송신자 시스템으로부터 타일링된 동영상을 수신하는 단계 - 상기 타일링된 동영상은 타일링된 프레임을 포함하고, 상기 타일링된 프레임은 연접되는 별개의 뷰들을 포함하며, 상기 타일링된 프레임의 뷰들의 개수는 상기 송신자 시스템의 제 1 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의됨 -;
    상기 타일링된 동영상을 압축 해제하는 단계;
    상기 타일링된 프레임을 제 2 개수의 뷰들을 갖는 멀티뷰 구성에 의해 정의되는 공간 다중화된 뷰들로 인터레이싱하여, 스트리밍되는 인터레이싱된 동영상을;
    상기 스트리밍되는 인터레이싱된 동영상을 상기 수신자 시스템의 멀티뷰 디스플레이 상에서 렌더링하는 단계;
    를 포함하는, 수신자 시스템이 송신자 시스템으로부터 스트리밍되는 멀티뷰 동영상을 수신하는 방법.
  19. 제 18 항에 있어서,
    뷰들의 상기 제 2 개수가 뷰들의 상기 제 1 개수보다 더 많은 경우, 상기 타일링된 프레임에 대한 추가 뷰를 생성하는 단계;
    를 더 포함하는, 송신자 시스템으로부터 타일링된 동영상을 수신하는 방법.
  20. 제 18 항에 있어서,
    뷰들의 상기 제 2 개수가 뷰들의 상기 제 1 개수보다 더 적은 경우, 상기 타일링된 프레임의 뷰를 제거하는 단계;
    를 더 포함하는, 송신자 시스템으로부터 타일링된 동영상을 수신하는 방법.
KR1020237029162A 2021-02-28 2021-02-28 압축된 멀티뷰 동영상을 스트리밍하는 시스템 및 방법 KR20230136195A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/020164 WO2022182368A1 (en) 2021-02-28 2021-02-28 System and method of streaming compressed multiview video

Publications (1)

Publication Number Publication Date
KR20230136195A true KR20230136195A (ko) 2023-09-26

Family

ID=83049335

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237029162A KR20230136195A (ko) 2021-02-28 2021-02-28 압축된 멀티뷰 동영상을 스트리밍하는 시스템 및 방법

Country Status (8)

Country Link
US (1) US20230396802A1 (ko)
EP (1) EP4298787A1 (ko)
JP (1) JP2024509787A (ko)
KR (1) KR20230136195A (ko)
CN (1) CN116888956A (ko)
CA (1) CA3210870A1 (ko)
TW (1) TWI829097B (ko)
WO (1) WO2022182368A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9032465B2 (en) * 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
ES2941888T3 (es) * 2007-04-12 2023-05-26 Dolby Int Ab Organización en mosaico en codificación y decodificación de vídeo
US10334223B2 (en) * 2015-01-30 2019-06-25 Qualcomm Incorporated System and method for multi-view video in wireless devices
KR102581465B1 (ko) * 2016-01-12 2023-09-21 삼성전자주식회사 회절형 컬러 필터를 구비하는 입체 영상 표시 장치
US10839591B2 (en) * 2017-01-04 2020-11-17 Nvidia Corporation Stereoscopic rendering using raymarching and a virtual view broadcaster for such rendering

Also Published As

Publication number Publication date
WO2022182368A1 (en) 2022-09-01
TWI829097B (zh) 2024-01-11
JP2024509787A (ja) 2024-03-05
US20230396802A1 (en) 2023-12-07
EP4298787A1 (en) 2024-01-03
CA3210870A1 (en) 2022-09-01
TW202249494A (zh) 2022-12-16
CN116888956A (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
JP5544361B2 (ja) 三次元ビデオ信号を符号化するための方法及びシステム、三次元ビデオ信号を符号化するための符号器、三次元ビデオ信号を復号するための方法及びシステム、三次元ビデオ信号を復号するための復号器、およびコンピュータ・プログラム
CN111819798A (zh) 经由实时压缩控制周边图像区域中的图像显示
CN113243112B (zh) 流式传输体积视频和非体积视频
US9253490B2 (en) Optimizing video transfer
US20240155098A1 (en) Multiview image capture system and method
US20230396802A1 (en) System and method of streaming compressed multiview video
Champel et al. The special challenges of offering high quality experience for VR video
US20230328222A1 (en) Real-time multiview video conversion method and system
CN110809147A (zh) 图像处理方法及装置、计算机存储介质、电子设备
KR20210059393A (ko) 시선 기반의 360도 영상 스트리밍
US20230396753A1 (en) System and method of detecting multiview file format
KR102209192B1 (ko) 다시점 360도 영상 처리 및 전송
WO2023129214A1 (en) Methods and system of multiview video rendering, preparing a multiview cache, and real-time multiview video conversion
TW202304199A (zh) 多視像影像創造系統和創造方法
Altinay et al. Boosting the Level of Immersion: Integrating Stereoscopic Output into Interactive Audiovisual Applications