KR20190045934A - 제어된 관찰 포인트 및 배향 선택 시청각 콘텐츠에 대한 방법 및 장치 - Google Patents

제어된 관찰 포인트 및 배향 선택 시청각 콘텐츠에 대한 방법 및 장치 Download PDF

Info

Publication number
KR20190045934A
KR20190045934A KR1020197010000A KR20197010000A KR20190045934A KR 20190045934 A KR20190045934 A KR 20190045934A KR 1020197010000 A KR1020197010000 A KR 1020197010000A KR 20197010000 A KR20197010000 A KR 20197010000A KR 20190045934 A KR20190045934 A KR 20190045934A
Authority
KR
South Korea
Prior art keywords
audio
observation
orientation
playback
playback device
Prior art date
Application number
KR1020197010000A
Other languages
English (en)
Other versions
KR102282759B1 (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 노키아 테크놀로지스 오와이
Publication of KR20190045934A publication Critical patent/KR20190045934A/ko
Application granted granted Critical
Publication of KR102282759B1 publication Critical patent/KR102282759B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/1059End-user terminal functionalities specially adapted for real-time communication
    • H04L65/4076
    • H04L65/4084
    • H04L65/605
    • H04L65/607
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • 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/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47217End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
    • 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/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Processing Or Creating Images (AREA)
  • Stereophonic System (AREA)

Abstract

시청자에게 제시되는 콘텐츠가 시청자와 관련하여 콘텐츠의 상대적인 위치를 고려해야 하는지의 여부 및 이를 어느 정도까지 고려해야 하는지에 대한 제어를 허용하는 방식으로, 360도 가상 현실 콘텐츠와 같은 시청각 콘텐츠의 렌더링을 제공하기 위해 방법, 장치 및 컴퓨터 프로그램 제품이 제시된다. 특히, 콘텐츠의 세그먼트 또는 서브세그먼트, 시청 디바이스의 배향, 및/또는 세그먼트 또는 서브세그먼트가 재생 디바이스에 의해 액세스되는 방식과 관련된 초기 관찰 설정에 기초하여 콘텐츠의 렌더링에 대한 상황적 제어를 허용하는 구현예가 제시된다.

Description

제어된 관찰 포인트 및 배향 선택 시청각 콘텐츠에 대한 방법 및 장치
예시적인 실시예는 일반적으로 미디어 콘텐츠의 인코딩에 관한 것으로, 구체적으로는 스트리밍 가상 현실 및 기타 시청각 콘텐츠와 관련하여 미디어 콘텐츠를 인코딩하는 것에 관한 것이다.
360°비디오 및 기타 유사한 콘텐츠와 같은 가상 현실 시청각 콘텐츠는 그러한 콘텐츠에서 이용 가능한 몰입형 시청 경험을 선호하거나 다른 경우에 이를 즐기는 시청자들 및 콘텐츠 제작자들 사이에서 점점 인기를 얻고 있다. 이러한 가상 현실 콘텐츠의 인기 증가는 고품질의 시청 경험을 제공하는 스트리밍 가상 현실 콘텐츠에 대한 시청자 수요를 이끌었다.
특히 콘텐츠가 시청자에게 어떻게 제시되어야 하는지 또한 이러한 콘텐츠가 시청자의 시야 내에서 어떻게 제시되어야 하는지에 관한 창의적인 결정 및/또는 다른 방향적인 결정을 콘텐츠 제작자가 행한 경우에, 스트리밍 가상 현실 콘텐츠 환경에서 일관적인 고품질의 시청 경험을 제공할 필요성은 몇 가지 기술적 과제를 부여한다. 이 기술적 과제는 시청자가 편안한 시청 배향(orientation)의 제한된 범위에 종속되거나 또는 시청자의 배향이 콘텐츠 제작자의 의도를 벗어난 방식으로 시청자가 콘텐츠를 경험하게 되는 경우에서 악화될 수 있다.
따라서, 시청각 콘텐츠의 사용자 주도(user-driven) 선택형 렌더링을 제공하기 위해 실시예에 따라 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 이와 관련하여, 실시예의 방법, 장치 및 컴퓨터 프로그램 제품은 관찰 포인트 및 렌더링되는 시청각 콘텐츠의 배향 선택 상의 제어를 제공한다.
실시예에서, 방법은 시청각 프리젠테이션의 송신 유닛들의 세트에 대한 초기 관찰 설정과 관련된 표시(an indication)를 수신하는 단계를 포함한다. 또한, 이 실시예의 방법은 재생 디바이스의 의도된 행위(behavior)와 관련된 표시를 수신하는 단계를 포함한다. 또한, 이 실시예의 방법은 재생 디바이스의 의도된 행위를 결정하는 단계를 포함한다. 또한 이 실시예의 방법은, 재생 디바이스의 의도된 행위를 결정하는 단계에 응답하여, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호가 생성되게 하는 단계를 포함한다.
이러한 방법의 일부 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 재생 디바이스의 의도된 행위와 관련된 표시는, 재생 디바이스의 연속 재생 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시, 및 재생 디바이스의 랜덤 액세스 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시를 포함한다.
일부 구현예에서, 재생 디바이스의 의도된 행위를 결정하는 단계는 재생 디바이스의 의도된 행위와 관련된 조건이 충족되었는지를 결정하는 단계를 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 리셋 조건을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 유지 조건을 포함한다.
일부 구현예에서, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작은 시청각 프리젠테이션의 일부를 선택하는 것을 포함한다.
다른 실시예에서, 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하는 장치가 제공되되, 상기 컴퓨터 프로그램 코드는, 상기 적어도 하나의 프로세서를 갖고서, 상기 장치로 하여금 적어도, 시청각 프리젠테이션의 송신 유닛들의 세트에 대한 초기 관찰 설정과 관련된 표시를 수신하고; 재생 디바이스의 의도된 행위를 결정하고; 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호를 생성시키도록 구성된다.
일부 예시적인 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 재생 디바이스의 의도된 행위와 관련된 표시는 재생 디바이스의 연속 재생 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시, 및 재생 디바이스의 랜덤 액세스 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시를 포함한다.
일부 구현예에서, 재생 디바이스의 의도된 행위를 결정하는 것은 재생 디바이스의 의도된 행위와 관련된 조건이 충족되었는지를 결정하는 것을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 리셋 조건을 포함한다. 이러한 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 유지 조건을 포함한다.
일부 구현예에서, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작은 시청각 프리젠테이션의 일부를 선택하는 것을 포함한다.
다른 실시예에서, 컴퓨터 실행 가능 프로그램 코드 인스트럭션이 저장된 적어도 하나의 비일시적 컴퓨터 판독 가능 저장 매체를 포함하는 컴퓨터 프로그램 제품이 제공되되, 상기 컴퓨터 실행 가능 프로그램 코드 인스트럭션은, 시청각 프리젠테이션의 송신 유닛들의 세트에 대한 초기 관찰 설정과 관련된 표시를 수신하고; 재생 디바이스의 의도된 행위와 관련된 표시를 수신하고; 재생 디바이스의 의도된 행위를 결정하고; 재생 디바이스의 의도된 행위을 결정하는 것에 응답하여, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호를 생성시키도록 구성된 프로그램 코드 인스트럭션을 포함하며, 상기 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작은 시청각 프리젠테이션의 일부분을 선택하는 것을 포함한다.
일부 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 재생 디바이스의 의도된 행위와 관련된 표시는 재생 디바이스의 연속 재생 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시, 및 재생 디바이스의 랜덤 액세스 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시를 포함한다.
일부 구현예에서, 재생 디바이스의 의도된 행위를 결정하는 것은 재생 디바이스의 의도된 행위와 관련된 조건이 충족되었는지를 결정하는 것을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 리셋 조건을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 유지 조건을 포함한다.
또 다른 실시예에서, 시청각 프리젠테이션의 송신 유닛들의 세트에 대한 초기 관찰 설정과 관련된 표시를 수신하고; 재생 디바이스의 의도된 행위와 관련된 표시를 수신하고; 재생 디바이스의 의도된 행위를 결정하고; 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호를 생성시키는 수단을 포함한다.
일부 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 재생 디바이스의 의도된 행위와 관련된 표시는 재생 디바이스의 연속 재생 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시, 및 재생 디바이스의 랜덤 액세스 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시를 포함한다.
일부 구현예에서, 재생 디바이스의 의도된 행위를 결정하는 것은 재생 디바이스의 의도된 행위와 관련된 조건이 충족되었는지를 결정하는 것을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 리셋 조건을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 상기 조건은 초기 관찰 설정과 관련된 적어도 하나의 유지 조건을 포함한다.
일부 구현예에서, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작은 시청각 프리젠테이션의 일부를 선택하는 것을 포함한다.
다른 실시예에서, 시청각 프리젠테이션의 송신 유닛들의 세트와 관련된 관찰 설정을 검출하는 단계; 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 단계; 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 단계에 응답하여, 시청각 프리젠테이션의 송신 유닛들의 서브세트를 선택하는 단계; 재생 디바이스 상의 시청각 프리젠테이션의 송신 유닛들의 선택된 서브세트의 렌더링 동작과 관련된 제어 신호를 생성시키는 단계를 포함한다.
이러한 방법의 일부 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 관찰 설정은 시청각 프리젠테이션의 송신 유닛들의 세트와 관련된 가장 가능성 있는 시청 방향의 표시를 포함한다.
일부 구현예에서, 제어 신호는 재생 디바이스의 의도된 행위의 표시를 포함한다. 이러한 일부 구현예 및 다른 구현예에서, 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 단계는 재생 디바이스와 관련된 배향을 결정하는 단계를 포함한다. 일부 이러한 구현예 및 다른 구현예에서, 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 단계는 재생 디바이스가 연속 재생 모드에 있는지를 결정하는 단계를 포함한다. 일부 이러한 구현예 및 다른 구현예에서, 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 단계는 재생 디바이스가 랜덤 액세스 모드에 있는지를 결정하는 단계를 포함한다.
또 다른 실시예에서, 시청각 프리젠테이션의 송신 유닛들의 세트와 관련된 관찰 설정을 검출하고; 관찰 설정과 관련된 조건이 충족되었는지를 결정하고; 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 것에 응답하여, 시청각 프리젠테이션의 송신 유닛들의 서브세트를 선택하고; 재생 디바이스 상의 시청각 프리젠테이션의 송신 유닛들의 선택된 서브세트의 렌더링 동작과 관련된 제어 신호를 생성시키는 수단을 포함한다.
이러한 장치의 일부 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함한다. 일부 이러한 구현예 및 다른 구현예에서, 관찰 설정은 시청각 프리젠테이션의 송신 유닛들의 세트와 관련된 가장 가능성 있는 시청 방향의 표시를 포함한다.
일부 구현예에서, 제어 신호는 재생 디바이스의 의도된 행위의 표시를 포함한다. 일부 이러한 구현예 및 다른 구현예에서, 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 것은 재생 디바이스와 관련된 방향을 결정하는 것을 포함한다. 일부의 이러한 구현예 및 다른 구현예에서, 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 것은 재생 디바이스가 연속 재생 모드에 있는지를 결정하는 것을 포함한다. 일부 이러한 구현예 및 다른 구현예에서, 관찰 설정과 관련된 조건이 충족되었는지를 결정하는 것은 재생 디바이스가 랜덤 액세스 모드에 있는지를 결정하는 것을 포함한다.
따라서, 본 발명에 대한 소정의 실시예를 일반적인 용어로 설명하였으며, 반드시 축적대로 그려진 것은 아닌 첨부 도면을 이하에서 참조할 것이다.
도 1은 본 발명의 실시예에 따른 구현예가 수행될 수 있는 예시적인 시스템 환경을 도시한다.
도 2는 본 발명의 실시예에 따라 구체적으로 구성될 수 있는 장치의 블록도이다.
도 3은 본 발명의 실시예에 따라 가상 현실 비디오 프리젠테이션의 상황에서 수행되는 예시적인 구현을 도시하는 블록도이다.
도 4는 본 발명의 실시예에 따라 멀티-뷰 비디오 프리젠테이션의 상황에서 수행되는 예시적인 구현을 도시하는 블록도이다.
도 5는 본 발명의 실시예에 따라 멀티-뷰 비디오 프리젠테이션의 상황에서 수행되는 또 다른 예시적인 구현을 도시하는 블록도이다.
도 6a는 본 발명의 실시예에 따라 예를 들어 도 2의 장치에 의해 수행되는 동작들의 세트를 도시하는 흐름도이다.
도 6b는 본 발명의 실시예에 따라, 예를 들어 도 2의 장치에 의해 수행되는 동작들의 세트를 나타내는 흐름도이다.
도 7은 본 명세서에 포함된 실시예들 중 일부를 설명하는 것과 관련해서 참조된 용어들의 그래픽 표현이다.
도 8은 본 명세서에 포함된 실시예들 중 일부를 설명하는 것과 관련해서 참조된 용어들의 또 다른 그래픽 표현이다.
도 9는 본 명세서에 포함된 실시예들 중 일부를 설명하는 것과 관련해서 참조된 용어들의 또 다른 그래픽 표현이다.
도 10은 본 발명의 실시예에 따라 엔드-투-엔드 시청각 가상 현실 애플리케이션의 상황에서 수행되는 예시적인 구현을 도시한 블록도이다.
도 11은 본 발명의 실시예에 따라 이미지 또는 비디오 인코딩을 위해 가상 현실 이미지 또는 비디오 콘텐츠를 처리하는 상황에서 수행되는 예시적인 이미지 스티칭(stitching), 투영(projection), 및 맵핑 프로세스를 나타내는 블록도이다.
이제, 본 발명의 실시예들 전체는 아니지만 일부 실시예가 도시되어 있는 첨부 도면을 참조하여 일부 실시예를 이하에서 보다 완전하게 설명할 것이다. 실제로, 본 발명의 다양한 실시예는 다수의 상이한 형태로 구현될 수 있으며, 본 명세서에서 제시된 실시예들로 제한되는 것으로 해석되지 않아야 하고, 또한 이들 실시예는 적용 가능한 법적 요건을 본 발명이 충족시키도록 제공된다. 동일한 참조 번호는 전체에 걸쳐서 동일한 요소를 지칭한다. 본 명세서에서 사용되는 바와 같이, 본 발명의 실시예에 따라 송신, 수신 및/또는 저장될 수 있는 데이터를 지칭하기 위해, "데이터", "콘텐츠", "정보"라는 용어 및 유사한 용어가 상호 교환 가능하게 사용될 수 있다. 따라서, 이러한 임의의 용어들의 사용은 본 발명의 실시예의 정신 및 범위를 제한하도록 취해지지 않아야 한다.
또한, 본 명세서에서 사용되는 바와 같이, '회로'라는 용어는 (a) 하드웨어-전용 회로 구현(예를 들면, 아날로그 회로 및/또는 디지털 회로에서의 구현); (b) 장치로 하여금 본 명세서에 설명된 하나 이상의 기능을 수행하게 하도록 함께 동작하는 하나 이상의 컴퓨터 판독 가능 메모리 상에 저장된 소프트웨어 및/또는 펌웨어 인스트럭션을 포함하는 회로 및 컴퓨터 프로그램 제품(들)의 조합; 및 (c) 소프트웨어 또는 펌웨어가 물리적으로 존재하지 않더라도 구동을 위해 소프트웨어 또는 펌웨어를 필요로 하는, 예를 들어 마이크로 프로세서(들)와 또는 마이크로 프로세서(들)의 일부와 같은 회로를 가리킨다. 이러한 정의의 '회로'는 모든 청구범위를 포함해서 본 명세서에서의 이 용어의 모든 사용에 적용된다. 다른 예로서, 본 명세서에서 사용되는 바와 같이, '회로'라는 용어는 또한 하나 이상의 프로세서 및/또는 그 부분(들), 및 수반하는 소프트웨어 및/또는 펌웨어를 포함하는 구현을 포함한다. 또 다른 예로서, 본 명세서에서 사용되는 '회로'라는 용어는 또한 예를 들어 서버, 셀룰러 네트워크 디바이스, 다른 네트워크 디바이스, 및/또는 다른 컴퓨팅 디바이스에서의 이동 전화를 위한 베이스 밴드 집적 회로 또는 애플리케이션 프로세서 집적 회로 또는 유사한 집적 회로를 포함한다.
본 명세서에서 정의된 바와 같이, 비일시적인 물리적 저장 매체(예를 들면, 휘발성 또는 비휘발성 메모리 디바이스)를 지칭하는 "컴퓨터 판독 가능 저장 매체"는 전자기 신호와 관련이 있는 "컴퓨터 판독 가능 송신 매체"와 구별될 수 있다.
본 명세서에서 사용되는 바와 같이, 용어 "맵핑"은, 상황에 따라, 투영에 따른 평면 상의 이미지 데이터가 2차원 면에 맵핑되는 프로세스를 지칭하거나, 프로세스에 의해 생성된 이미지 프레임을 지칭한다.
본 명세서에서 사용된 바와 같이, "관찰 배향"이란 용어는 렌더링되는 방향을 지칭한다. 다수의 상황에서, 이는 일반적으로 콘텐츠 렌더링에 사용되는 헤드 장착형 디스플레이의 배향과 관련된 배향이다.
본 명세서에 사용되는 바와 같이, "관찰 포인트"라는 용어는 가상 현실 오디오/비디오 획득 또는 재생을 위한 3차원 공간 내의 포인트 또는 볼륨을 지칭한다. 관찰 포인트는 일반적으로 오디오 및 비디오 트랙이 위치되어 있는 3차원 공간 내의 관찰자의 머리 위치뿐만 아니라 가상 현실 오디오/비디오 획득에 사용되는 디바이스 또는 장치의 중심점과 동일하다. 일부 경우에, 관찰 포인트는 캡처링 디바이스 또는 장치의 단일의 중심점에 대응하지 않을 수 있지만, 예를 들어 원, 구역, 또는 볼륨과 같은 궤도에 대응할 수 있다. 일부 경우에, 관찰자의 머리 위치가 추적되고, 머리 회전에 부가하여 머리 움직임에 대해 렌더링이 조정되며, 그 다음에 관찰 포인트는 관찰자의 머리의 초기 위치 또는 기준 위치로 이해될 수 있다.
본 명세서에서 사용되는 바와 같이, "관찰 설정"이라는 용어는 관찰 포인트 및 관찰 배향을 지칭한다. 이용 가능한 단 하나의 관찰 포인트를 갖는 프리젠테이션의 상황에서, 관찰 포인트는 관찰 설정을 위해 명시적으로 표시되거나 결정될 필요가 없다.
본 명세서에서 사용되는 바와 같이, "투영" 또는 "VR 투영"이라는 용어는 평면 또는 큐브와 같은 기하학 구조 상에 구면 이미지가 투영되는 프로세스, 또는 그 프로세스로부터 생성된 이미지 프레임을 지칭한다. VR 투영의 예로는 등정방형 파노라마(equirectangular panorama) 및 큐브맵(cube map) 투영을 포함한다. 일부 상황에서, 투영이라는 용어는 큐브맵과 같은 3차원 기하학 구조를 하나 이상의 2차원 면 상에 맵핑하는 것을 부가적으로 포함하는 것으로 이해될 수 있다. 이러한 맵핑은 다수의 2차원 면들을 (예를 들어 하나의 2차원 면과 같은) 동일한 프레임으로 패킹하는 것을 포함할 수 있다.
본 명세서에 사용되는 바와 같이, "뷰포트(viewport)" 또는 "VR 뷰포트"라는 용어는 전방향성(omnidirectional) 시야의 서브세트를 지칭한다. "뷰포트"라는 용어는 현재 사용자에게 표시되고 있는 전방향성 시각적 콘텐츠의 서브세트 및/또는 나머지 시각적 콘텐츠와의 (예를 들어 품질 구별성 또는 분리 가능한 부분, 또는 움직임 제약형 타일 세트와 같은) 구별성을 갖고서 암호화되는 전방향성 시각적 콘텐츠의 서브세트를 지칭할 수 있다. 이들 2개의 정의 간의 구별은 한정자(a qualifier)를 통해 제공될 수 있어, 전자는 렌더링된 뷰포트로 지칭될 수 있는 반면에 후자는 암호화된 뷰포트로 지칭될 수 있다. 일부 경우에 뷰포트는 배향 및 시야로 표현될 수 있는 반면에, 다른 일부 경우에 뷰포트는 특정한 투영 포맷을 위한 2차원 좌표 시스템 내에서 사각형과 같은 영역으로 표현될 수 있다. 후자의 예는 등정방형 파노라마 이미지 내의 직사각형이다. 뷰포트는 뷰포트를 공동으로 형성하고 화질과 같은 상이한 속성을 가질 수 있는 여러 개의 구성 뷰포트를 포함할 수 있다.
본 명세서에서 사용되는 바와 같이, (예를 들어, 뷰포트의 배향과 같은) "배향"은 좌표계의 각도 좌표로 표현될 수 있다. 각도 좌표는 예를 들어, y, x 및 z와 같은 소정의 좌표 축들 둘레의 회전각을 각각 표시하는 요(yaw), 피치(pitch) 및 롤(roll)이라고 불릴 수 있다. 요, 피치, 롤은 예를 들어 뷰포트의 배향을 표시하는 데 사용될 수 있다. 일부 상황에서는, 뷰포트 배향이 제약을 받을 수 있는데, 예를 들어 롤은 0으로 제약될 수 있다. 일부 이러한 예 및 다른 예에서, 요 및 피치는 뷰포트의 중심점의 오일러 각(Euler angle)을 각도로 표시한다. 대부분의 상황에서, 요가 피치보다 앞서 적용되어, 요는 Y-축 둘레로 회전하고 피치는 X-축 둘레로 회전한다. 마찬가지로, 대부분의 상황에서, 원점에서 바라볼 때에 보여지는 바와 같이 각도가 시계 방향으로 증가한다. 도 7을 참조하면, 축들(700)은 Y-축(702) 및 X-축(704)을 포함한다. 도 7에 도시된 바와 같이, 요(706)는 Y-축(702) 중심의 회전으로서 도시되고, 피치(708)는 X-축(704) 중심의 회전으로서 도시되어 있다. 도 8을 참조하면, 축들(800)은 Y-축(804), X-축(806), 및 Z-축(808)을 통해 3차원 공간(802)을 맵핑하는 데 사용된다. 도 8에 도시된 바와 같이, 피치(810) 및 요(812)는 벡터(816)를 따라 놓여 있는 뷰포트(814)의 중심점의 오일러 각을 표시하는 데 사용될 수 있다.
일부 구현예에서, 뷰포트의 시야(FOV; field of view)는 수평 FOV(HorFov) 및 수직 FOV(VerFov)로 표현될 수 있다. 일부 상황에서, 예를 들어 HorFov가 뷰포트의 수평 시야를 각도로 표시하고, VerFov가 뷰포트의 수직 시야를 각도로 표시하도록 HorFov 및 VerFov를 정의할 수 있다. 뷰포트의 FOV를 표현하는 HorFov 및 VerFov의 사용에 대한 예시적인 도시가 도 9에 제시되어 있다. 도 9에서, 도 8과 동일한 3차원 공간(802)은 축들(800)(Y-축(804), X-축(806), 및 Z-축(808)을 포함 함)을 갖고서 맵핑된다. 뷰포트(814)는 마찬가지로 공간(802) 내에 배치된다. 뷰포트(814)의 중심점의 오일러 각을 표현하기 위해 피치 및/또는 요를 사용하는 대신에, 도 9는 뷰포트(814)의 시야를 HorFov(902) 및 VerFov(904)로서 표현할 수 있는 예를 도시하고 있다.
본 명세서에서 사용되는 바와 같이, "전역 좌표계"라는 용어는 관찰 포인트의 원점을 갖는 것으로 설명되는 3차원 좌표계를 지칭할 수 있다.
본 명세서에서 사용되는 바와 같이, "랜덤 액세스"라는 용어는 스트림의 시작 부분 이외의 포인트에서 스트림의 디코딩을 시작하고, 디코딩된 픽처의 표현 등의 정확하게 또는 대략적으로 재구성된 미디어 신호를 복구하는 디코더의 능력을 지칭할 수 있다. 랜덤 액세스 포인트 및 복구 포인트는 랜덤 액세스 동작을 특징화하는 데 사용될 수 있다. 랜덤 액세스 포인트는, 디코딩이 개시될 수 있는 경우에, 비디오 스트림 내의 액세스 유닛 또는 부호화된 픽처와 같은 미디어 스트림에서의 위치로서 정의될 수 있다. 복구 포인트는, 개개의 랜덤 액세스 포인트로부터 디코딩이 시작되었을 때에, 디코딩된 픽처들과 같은 모든 미디어가 출력 순서에 따라 복구 포인트에서 또는 복구 포인트 이후에 정확하거나 거의 정확한 콘텐츠를 갖는다는 것을 특징으로 하는 재구성된 신호 내에서 또는 미디어 스트림에서 제 1 위치로서 정의될 수 있다. 랜덤 액세스 포인트가 복구 포인트와 동일하면, 랜덤 액세스 동작은 즉각적이고, 그렇지 않을 때에는 점진적일 수 있다.
랜덤 액세스 포인트는 예를 들어 탐색 동작, 빨리 감기 재생 동작, 및 빨리 되감기 재생 동작을 미디어 스트리밍뿐만 아니라 국부적으로 저장된 미디어 스트림에서 가능하게 한다. 주문형 스트리밍을 포함하는 상황에서, 서버는 탐색 작업의 요청된 목적지에 가장 가까운(또한 많은 경우에는 이전의) 랜덤 액세스 포인트에서 시작하는 데이터를 송신함으로써 탐색 요청에 응답할 수 있고, 및/또는 디코더는 탐색 동작의 요청된 목적지에 가장 가까운(또는 많은 경우에는 이전의) 랜덤 액세스 포인트로부터 디코딩을 시작할 수 있다. 상이한 비트-레이트의 부호화된 스트림들 간의 스위칭은, 송신된 비트 레이트를 예상 네트워크 처리량과 매칭시키고 네트워크에서의 정체를 피하기 위해 유니캐스트 스트리밍에서 일반적으로 사용되는 방법이다. 또 다른 스트림으로의 스위칭이 랜덤 액세스 포인트에서 가능하다. 또한, 랜덤 액세스 포인트는 브로드캐스트 또는 멀티캐스트를 시청할 수 있게 한다. 또한, 랜덤 액세스 포인트는 소스 시퀀스에서 장면 컷(a scene cut)에 대한 응답으로서 또는 인트라 픽처 업데이트 요청에 대한 응답으로서 부호화될 수 있다.
일부 구현예는 ISO 베이스 미디어 파일 포맷(ISO/IEC 14496-12, ISOBMFF로 약칭될 수 있음), MPEG-4 파일 포맷(ISO/IEC 14496-14, MP4 포맷으로도 알려져 있음), NAL(Network Abstraction Layer) 유닛 구조화된 비디오에 대한 파일 포맷(ISO/IEC 14496-15) 및 3GPP 파일 포맷(3GPP TS 26.244, 3GP 포맷으로도 알려져 있음)을 포함하지만 이로 제한되지 않는 미디어 파일 포맷 표준들의 사용을 고려한다. ISO 베이스 미디어 파일 포맷은 상기한 모든 파일 포맷(ISO 베이스 미디어 파일 포맷 그 자체를 제외함)의 파생을 위한 기반이다.
ISOBMFF의 일부 개념, 구조, 및 사양은, 어떤 실시예가 구현될 수 있는지에 따라, 컨테이너 파일 포맷의 예로서 이하에서 설명된다. 그러나, 본 발명의 측면은 ISOBMFF에 한정되지 않고, 그보다는 본 발명이 부분적으로 또는 완전히 실현될 수 있다는 것 위에서 하나의 가능한 기준에 대해 설명이 제공된다.
ISOBMFF에서의 하나의 빌딩 블록을 박스라고 한다. 각 박스는 헤더와 페이로드를 갖을 수 있다. 박스 헤더는 박스의 타입 및 박스의 크기를 통상적으로 바이트 단위로 표시한다. 박스는 다른 박스들을 둘러쌀 수 있고, ISO 파일 포맷은 소정 타입의 박스 내에서 어떤 박스 타입이 허용되는지를 특정한다. 또한, 일부 박스의 존재는 각 파일에서 필수적일 수 있지만, 다른 박스들의 존재는 선택적일 수 있다. 또한, 일부 박스 타입에 있어서, 한 파일에 존재하는 하나의 박스보다 많은 박스를 갖도록 허용될 수 있다. 따라서, ISOBMFF는 박스의 계층적 구조를 특정하는 것으로 간주될 수 있다. ISO 베이스 미디어 파일의 각 박스는 4-문자 코드(4CC, fourCC)로 식별될 수 있다. 4-문자 코드는 (8비트값으로의 문자의 소정 변환, 소정의 비트 엔디안(endianness), 및 소정의 바이트 엔디안을 가정함으로써) 32비트 무부호 정수로 교환 가능하게 표현될 수 있다. 헤더는 박스의 타입 및 크기에 대한 정보를 제공할 수 있다.
ISOBMFF에 따르면, 파일은 별도의 박스들로 둘러싸일 수 있는 미디어 데이터 및 메타데이터를 포함할 수 있다. 실시예에서, 미디어 데이터는 미디어 데이터(mdat) 박스에 제공될 수 있고, 영화(moov) 박스는 메타데이터를 둘러싸기 위해 사용될 수 있다. 일부 경우에, 파일이 동작할 수 있도록, mdat 박스 및 moov 박스 양쪽이 존재해야 한다. 영화(moov) 박스는 하나 이상의 트랙을 포함할 수 있고, 각 트랙은 하나의 대응하는 트랙(trak) 박스에 있을 수 있다. 각 트랙은 트랙 타입을 특정하는 4-문자 코드로 식별되는 핸들러와 관련된다. 비디오, 오디오, 및 이미지 시퀀스 트랙은 집합적으로 미디어 트랙으로 불릴 수 있고, 또한 이것들은 기본 미디어 스트림을 포함한다. 다른 트랙 타입들은 힌트 트랙 및 시한(timed) 메타데이터 트랙을 포함한다. 트랙은 오디오 또는 비디오 프레임과 같은 샘플을 포함한다. 미디어 트랙은 미디어 압축 포맷(및 ISOBMFF에 대한 캡슐화)에 따라 포맷화된 샘플(미디어 샘플이라고도 지칭될 수 있음)을 지칭한다. 힌트 트랙은 표시된 통신 프로토콜을 통한 송신용 패킷을 구성하기 위한 쿡북(cookbook) 인스트럭션을 포함하는 힌트 샘플을 지칭한다. 쿡북 인스트럭션은 패킷 헤더 구성을 위한 지침을 포함할 수 있고, 패킷 페이로드 구성을 포함할 수 있다. 패킷 페이로드 구성에서, 다른 트랙들 또는 항목들에 있는 데이터가 참조될 수 있다. 이와 같이, 예를 들면, 다른 트랙들 또는 항목들에 있는 데이터는 패킷 구성 프로세스 동안에 특정 트랙 또는 항목의 어떤 데이터가 패킷으로 복사되도록 지시되는지에 대한 참조로 표시될 수 있다. 시한 메타데이터 트랙은 지칭된 미디어 및/또는 힌트 샘플을 설명하는 샘플을 가리킬 수 있다. 하나의 미디어 타입의 표현을 위해, 하나의 미디어 트랙이 선택될 수 있다.
'trak' 박스는 샘플 테이블 박스를 포함한다. 샘플 테이블 박스는 예를 들어 트랙 내 미디어 샘플의 모든 시간 및 데이터 인덱싱을 포함할 수 있다. 일반적으로, 샘플 테이블 박스는 샘플 설명 박스를 포함하도록 요구된다. 샘플 설명 박스는 일반적으로 박스에 포함된 샘플 항목들의 수를 특정하는 항목 카운트 필드도 포함한다. 대부분의 구현예에서, 샘플 설명 박스는 적어도 하나의 샘플 항목을 포함하도록 요구된다. 샘플 항목 포맷은 트랙의 핸들러 타입에 의존한다. 샘플 항목은 사용되는 부호화 타입에 대한 상세한 정보 및 그 부호화에 필요한 임의의 초기화 정보를 제공한다.
무비 프레그먼트(movie fragment) 특징은 다른 경우에 무비 박스에 있을 수도 있는 메타데이터를 다수의 조각들로 분할되게 할 수 있다. 각 조각은 트랙의 소정 기간에 대응할 수 있다. 즉, 무비 프레그먼트 특징은 파일 메타데이터 및 미디어 데이터의 인터리빙을 가능하게 할 수 있다. 따라서, 무비 박스의 크기는 제한될 수 있고, 상기한 사용 사례들이 실현될 수 있다.
일부 예에서, 무비 프레그먼트에 대한 미디어 샘플은 mdat 박스에 있을 수 있다. 그러나, 무비 프레그먼트의 메타데이터에 있어서, moof 박스가 제공될 수 있다. moof 박스는 이전에 moov 박스에 있었던 소정의 지속 기간의 재생 시간 동안의 정보를 포함할 수 있다. moov 박스는 여전히 그 자체로 유효한 무비를 표현할 수 있지만, 또한 동일한 파일에 무비 프레그먼트가 뒤따를 것임을 표시하는 mvex 박스를 포함할 수 있다. 무비 프레그먼트는 제시간에 moov 박스와 관련된 프리젠테이션을 확장할 수 있다.
무비 프레그먼트 내에는 어디서든 트랙 당 0 내지 복수 개의 트랙 프레그먼트들의 세트가 있을 수 있다. 트랙 프레그먼트들은 어디서든 0 내지 복수 개의 트랙 런들(track runs)을 차례로 포함할 수 있으며, 각 문서는 그 트랙에 대한 샘플들의 연속적인 런이다(따라서, 청크들(chunks)과 유사함). 이들 구조 내에서, 다수의 필드는 선택적이며 또한 기본값으로 설정될 수 있다. moof 박스에 포함될 수 있는 메타데이터는 moov 박스에 포함될 수 있는 메타데이터의 서브세트로 제한될 수 있고, 일부 경우에 상이하게 부호화될 수 있다. moof 박스에 포함될 수 있는 박스들에 관한 세부 사항은 ISOBMFF 사양에서 찾을 수 있다. 자립형(self-contained) 무비 프레그먼트는 파일 순서로 연속되는 moof 박스 및 mdat 박스로 구성되도록 정의될 수 있으며, 여기서 mdat 박스는 (moof 박스가 메타데이터를 제공하는) 무비 프레그먼트의 샘플들을 포함하고 임의의 다른 무비 프레그먼트(즉, 임의의 다른 moof 박스)의 샘플들을 포함하지 않는다.
ISOBMFF 및 NAL 단위 구조화된 비디오(ISO/IEC 14496-15)에 대한 파일 포맷과 같은 그 파생물에서의 샘플 그룹화는, 그룹화 기준에 기초하여, 하나의 샘플 그룹의 멤버로 되도록 트랙 내 각 샘플의 할당으로서 정의될 수 있다. 샘플 그룹화에서의 샘플 그룹은 인접한 샘플들로 제한되지 않으며 비인접한 샘플들을 포함할 수 있다. 트랙 내 샘플들에 대해 하나보다 많은 샘플 그룹화가 있을 수 있으므로, 각 샘플 그룹화는 그룹화의 타입을 표시하는 타입 필드를 갖을 수 있다. 샘플 그룹화는 2개의 링크된 데이터 구조로 표현될 수 있다: (1) SampleToGroup 박스(sbgp 박스)는 샘플 그룹에 대한 샘플의 할당을 표현하고, (2) SampleGroupDescription 박스(sgpd 박스)는 그룹의 속성을 설명하는 각 샘플 그룹에 대한 샘플 그룹 항목을 포함한다. 상이한 그룹화 기준에 기초하여, SampleToGroup 박스 및 SampleGroupDescription 박스의 다수의 인스턴스가 있을 수 있다. 이것들은 그룹화의 타입을 표시하는 데 사용되는 타입 필드로 구별될 수 있다. 'sbgp' 박스 및 'sgpd' 박스는 grouping_type의 값을 사용하여 링크될 수 있고, 박스들의 일부 버전에서는 grouping_type_parameter의 값을 사용하여 링크될 수도 있다. 'sbgp' 박스는 특정 샘플이 속해 있는 샘플 그룹 설명 항목의 인덱스를 표시한다.
Matroska 파일 포맷은 비디오, 오디오, 픽처, 또는 자막 트랙 중 임의의 것을 하나의 파일에 저장할 수 있다(그러나, 이로 제한되지는 않음). Matroska 파일 확장자는 비디오(자막 및 오디오를 갖음)에 대한 .mkv, 스테레오스코픽 비디오에 대한 mk3d, 오디오 전용 파일에 대한 .mka, 및 자막 전용에 대한 .mks를 포함한다. Matroska는 WebM과 같은 파생된 파일 포맷에 대한 기본 포맷으로서 사용될 수 있다.
Matroska는 EBML(Extensible Binary Meta Language)을 기본으로 사용한다. EBML은 XML의 원리에 의해 영향을 받은 바이너리 및 옥텟(바이트) 정렬 포맷을 특정한다. EBML 그 자체는 바이너리 마크업 기법에 대한 일반적인 설명이다. Matroska 파일은 EBML "문서"를 구성하는 요소로 이루어져 있다. 요소는 요소 ID, 요소의 크기에 대한 서술자, 및 바이너리 데이터 자체를 포함한다. 요소는 중첩될 수 있다.
Matroska의 세그먼트 요소는 다른 최상위 레벨(레벨 1) 요소에 대한 컨테이너이다. Matroska 파일은 하나의 세그먼트를 포함할 수 있다(그러나, 하나의 세그먼트로 구성되는 것으로 제한되지 않음). Matroska 파일의 멀티미디어 데이터는 클러스터들(또는 클러스터 요소들)로 구성되고, 각 클러스터는 통상 몇 초의 멀티미디어 데이터를 포함한다. 클러스터는 블록 요소를 포함하는 BlockGroup 요소로 구성된다. 큐(cues) 요소는 랜덤 액세스 또는 탐색을 지원할 수 있고, 탐색 포인트에 대한 개개의 타임 스탬프 또는 파일 포인터를 포함할 수 있는 메타데이터로 구성된다.
URI(Uniform Resource Identifier)는 리소스의 명칭을 식별하는 데 사용되는 문자 스트링으로서 정의될 수 있다. 이러한 식별은 특정 프로토콜을 사용하여 네트워크 상에서 리소스의 표현과의 상호 작용을 가능하게 한다. URI는 그 URI에 대한 구체적인 구문 및 관련 프로토콜을 특정하는 방식을 통해 정의된다. URL(Uniform Resource Locator) 및 URN(Uniform Resource Name)은 URI의 형태들이다. URL은 웹 리소스를 식별하며, 리소스의 표현을 획득하거나 그에 따라 동작하고 그 주요 액세스 메카니즘 및 네트워크 위치를 특정하는 수단을 명시하는 URI로서 정의될 수 있다. URN은 특정한 명칭 공간(namespace)의 이름에 의해 리소스를 식별하는 URI로서 정의될 수 있다. URN은 리소스의 위치 또는 리소스에 액세스하는 방법을 암시하지 않고서 리소스를 식별하기 위해 사용될 수 있다.
HTTP(Hypertext Transfer Protocol)는 비디오 스트리밍 애플리케이션에서와 같이 인터넷을 통해 실시간 멀티미디어 콘텐츠를 전달하는 데 널리 사용되어 왔다. Microsoft® Smooth Streaming, Apple® Adaptive HTTP Live Streaming 및 Adobe® Dynamic Streaming과 같은 HTTP를 통한 적응형 스트리밍을 위한 몇 가지 상용 솔루션이 출시되었을 뿐만 아니라 표준화 프로젝트가 수행되어 왔다. 적응형 HTTP 스트리밍(AHS; Adaptive HTTP streaming)은 3GPP 패킷 교환형 스트리밍(PSS) 서비스의 릴리즈 9(3GPP TS 26.234 릴리즈 9: "투명 엔드-투-엔드 패킷 교환형 스트리밍 서비스(PSS); 프로토콜 및 코덱")에서 처음 표준화되었다. MPEG는 3GPP AHS 릴리즈 9를 MPEG DASH 표준(ISO/IEC 23009-1: "HTTP을 통한 동적 적응형 스트리밍(DASH; dynamic adaptive streaming over HTTP)-Part 1: 미디어 프리젠테이션 설명 및 세그먼트 포맷")에 대한 시작점으로 취했다. MPEG DASH 및 3GP-DASH는 기술적으로 서로 비슷하기 때문에, 집합적으로 DASH라고 지칭될 수 있다. 실시예가 구현될 수 있는 비디오 스트리밍 시스템의 예로서 DASH의 일부 개념, 포맷, 및 동작을 이하에 설명한다. 본 발명의 측면은 DASH로 제한되는 것이 아니라, 발명이 부분적으로 또는 완전히 실현될 수 있다는 것 위에서 가능한 한 가지 기준을 위해 설명이 제시된다.
DASH에서, 멀티미디어 콘텐츠는 HTTP 서버에 저장될 수 있고 HTTP를 사용하여 전달될 수 있다. 콘텐츠는 2개의 부분: 가용 콘텐츠, 가용 콘텐츠의 다양한 대안들, 그것들의 URL 어드레스, 및 기타 특성들의 매니페스트(a manifest)를 설명하는 MPD(Media Presentation Description); 및 단일 또는 복수의 파일에 실제 멀티미디어 비트스트림을 청크의 형태로 포함하는 세그먼트에 있어서 서버 상에 저장될 수 있다. MPD는 클라이언트가 HTTP를 통한 동적 적응형 스트리밍을 수립하는 데 필요한 정보를 제공한다. MPD는 GET 세그먼트 요청을 행하기 위해 각 세그먼트의 HTTP-URL과 같은 미디어 프리젠테이션을 설명하는 정보를 포함한다. 콘텐츠를 재생하기 위해, DASH 클라이언트는, 예를 들어 HTTP, 이메일, 썸(thumb) 드라이브, 브로드캐스트, 또는 다른 전송 방법을 사용해서 MPD를 획득할 수 있다. MPD를 파싱함으로써, DASH 클라이언트는 프로그램 타이밍, 미디어 콘텐츠 가용성, 미디어 타입, 해상도, 최소 및 최대 대역폭, 및 멀티미디어 컴포넌트의 다수의 인코딩된 대안, 접근성 특징 및 요구되는 디지털 저작권 관리(DRM; digital rights management), 네트워크 상의 미디어 컴포넌트 위치, 및 기타 콘텐츠 특성의 존재를 인지하게 될 수 있다. 이 정보를 사용하는 경우, DASH 클라이언트는 적절한 인코딩된 대안을 선택할 수 있고, 예를 들어 HTTP GET 요청을 사용하여 세그먼트를 페치함으로써 콘텐츠 스트리밍을 시작할 수 있다. 네트워크 처리량 변화를 허용하기 위한 적절한 버퍼링 후에, 클라이언트는 후속 세그먼트를 계속해서 페치하고 또한 네트워크 대역폭 변동을 모니터링할 수 있다. 클라이언트는 적절한 버퍼를 유지하기 위해 (보다 낮거나 보다 높은 비트 레이트를 갖는) 상이한 대안의 세그먼트를 페치함으로써 가용 대역폭에 어떻게 적응할지를 결정할 수 있다.
DASH와 관련해서, 이하의 정의가 사용될 수 있다: 미디어 콘텐츠 컴포넌트 또는 미디어 컴포넌트는 미디어 스트림에 개별적으로 인코딩될 수 있는 할당형 미디어 컴포넌트 타입을 갖는 미디어 콘텐츠의 하나의 연속적인 컴포넌트로 정의될 수 있다. 미디어 콘텐츠는 하나의 미디어 콘텐츠 구간(period) 또는 미디어 콘텐츠 구간들의 인접한 시퀀스로서 정의될 수 있다. 미디어 콘텐츠 컴포넌트 타입은 오디오, 비디오, 또는 텍스트와 같은 단일 타입의 미디어 콘텐츠로서 정의될 수 있다. 미디어 스트림은 미디어 콘텐츠 컴포넌트의 인코딩된 버전으로서 정의될 수 있다.
DASH에서, 계층적 데이터 모델은 이하와 같이 미디어 프레젠테이션을 구조화하는 데 사용된다. 미디어 프리젠테이션은 하나 이상의 구간들의 시퀀스로 구성되되, 각 구간은 하나 이상의 그룹을 포함하며, 각 그룹은 하나 이상의 적응 세트(Adaptation Sets)를 포함하고, 각 적응 세트는 하나 이상의 표현(Representations)을 포함하고, 각 표현은 하나 이상의 세그먼트로 구성된다. 그룹은 동시에 제시될 것으로 예상되지 않는 적응 세트들의 집합으로서 정의될 수 있다. 적응 세트는 하나 또는 여러 개의 미디어 콘텐츠 컴포넌트의 상호 교환 가능한 인코딩된 버전의 세트로서 정의될 수 있다. 표현은 예를 들어 비트레이트, 해상도, 언어, 코덱, 등과 같은 인코딩 선택에 따라 일반적으로 달라지는 미디어 콘텐츠 또는 그 서브세트의 다른 선택들 중 하나이다. 세그먼트는 미디어 데이터의 소정의 지속 기간, 및 포함된 미디어 콘텐츠를 디코딩하여 제시하기 위한 메타데이터를 포함한다. 세그먼트는 URI에 의해 식별되고 일반적으로 HTTP GET 요청에 의해 요청될 수 있다. 세그먼트는 HTTP-URL 및 선택적으로는 MPD에 의해 특정되는 바이트 범위와 연관된 데이터의 유닛으로서 정의될 수 있다.
DASH MPD는 XML(Extensible Markup Language)을 준수하므로, XML에서 정의된 바와 같은 요소 및 속성을 통해 특정된다. MPD는 이하의 조약을 사용하여 특정될 수 있다: XML 문서의 요소는 Element와 같이 대문자의 첫 번째 문자로 식별될 수 있고 볼드체로 나타낼 수 있다. 요소 Element1이 또 다른 요소 Element2에 포함되는 것을 표현하기 위해, Element2.Element1라고 쓸 수 있다. 요소의 이름이 2개 이상의 조합된 단어로 구성되어 있으면, 예를 들어, ImportantElement와 같이 카멜 표기법(camel-casing)이 사용될 수 있다. 요소는 정확히 한 번 제시될 수 있거나, 최소 및 최대 발생이 <minOccurs> ... <maxOccurs>로 정의될 수 있다. XML 문서의 속성은 소문자의 첫 번째 문자로 식별될 수 있을 뿐만 아니라, 속성은 예를 들어, @attribute와 같이 앞에 '@'-기호가 붙여질 수 있다. 요소 Element에 포함된 특정 속성 @attribute를 가리키기 위해, Element@attribute라고 쓸 수 있다. 속성의 이름이 2개 이상의 조합된 단어로 이루어지면, 예를 들어 @veryImportantAttribute와 같이 첫 번째 단어 다음에 카멜 표기법이 사용될 수 있다. 속성은 필수(M; mandatory), 선택(O; optional), 디폴트 값을 갖는 선택(OD; optional with default value) 및 조건적 필수(CM; conditionally mandatory)와 같이 XML에서 상태를 할당할 수 있다.
DASH에서, 모든 서술자 요소가 방식을 식별하기 위해 URI를 제공하는 @schemeIdUri 속성, 및 선택적 속성 @value 및 선택적 속성 @id를 포함하고 있다는 점에서 모든 서술자 요소는 통상적으로 동일한 방식으로 구조화된다. 요소의 의미는 사용되는 방식에 대해 특정된다. 방식을 식별하는 URI는 URN 또는 URL일 수 있다. 일부 서술자가 MPEG-DASH(ISO/IEC 23009-1)에서 특정되는 반면에, 서술자는 다른 사양에서 추가적으로 또는 대안적으로 특정될 수 있다. MPEG-DASH 이외의 사양에서 특정되면, MPD는 서술자 요소를 사용하는 방법에 대한 임의의 특정 정보를 제공하지 않는다. 이는 적절한 방식 정보로 설명 요소를 예시하는 데 DASH 포맷을 채용하는 애플리케이션 또는 사양에 달려 있다. 이들 요소들 중 하나를 사용하는 애플리케이션 또는 사양은 URI의 형태로 방식 식별자를 정의하고, 그 방식 식별자가 사용될 때에 요소에 대한 값 공간(value space)을 정의한다. 방식 식별자는 @schemeIdUri 속성에서 나타난다. 열거된 값들의 단순 세트가 요구되는 경우에, 각 값에 대해 텍스트 스트링이 정의될 수 있으며, 이 스트링은 @value 속성에 포함될 수 있다. 구조화된 데이터가 요구되면, 임의의 확장 요소 또는 속성은 별도의 이름 공간에서 정의될 수 있다. @id 값은 고유한 서술자 또는 서술자 그룹을 지칭하는 데 사용될 수 있다. 후자의 경우에, 속성 @id에 대해 동일한 값을 갖는 서술자는 동의어로 되도록 요구될 수 있고, 즉 @id에 대해 동일한 값을 갖는 서술자들 중 하나의 서술자에 대한 프로세싱이면 충분하다. 요소 이름, @schemeldUri의 값 및 @value 속성의 값이 같으면, 타입 DescriptorType의 2개의 요소는 동일하다. @schemeIdUri가 URN이면, RFC2141의 5절에서 정의된 바와 같이 동등성은 어휘적 동등성(lexical equivalence)을 가리킬 수 있다. @schemeIdUri가 URL이면, RFC3986의 6.2.1절에서 정의된 바와 같이 동등성은 문자 대 문자 기준으로의 균등(equality)을 가리킬 수 있다. @value 속성이 존재하지 않으면, @schemeIdUri에 대한 동등성만으로 동등성을 결정할 수 있다. 확장 이름 공간에서의 속성 및 요소는 동등성을 결정하는 데 사용될 수 없다. @id 속성은 동등성 결정시에 무시될 수 있다.
MPEG-DASH는 서술자 EssentialProperty 및 서술자 SupplementalProperty를 특정한다. 요소 EssentialProperty의 경우, 미디어 프리젠테이션 작성자는, 요소가 또 다른 EssentialProperty 요소와 동일한 @id를 공유하지 않는 한 이러한 서술자를 포함하는 부모 요소에서 정보를 적절하게 사용하기 위해 서술자의 성공적인 프로세싱이 필수적임을 표현한다. EssentialProperty 요소가 동일한 @id를 공유하면, @id에 대해 동일한 값을 갖는 EssentialProperty 요소들 중 하나를 프로세싱하는 것으로 충분하다. 각각의 구별되는 @id 값의 적어도 하나의 EssentialProperty 요소가 프로세싱될 것으로 예상된다. EssentialProperty 서술자에 대한 값 또는 방식이 인지되지 않으면, DASH 클라이언트는 서술자를 포함하는 부모 요소를 무시할 것으로 예상된다. @id에 대해 동일한 값과 @id에 대해 상이한 값을 갖는 다수의 EssentialProperty 요소가 MPD에 존재할 수 있다.
요소 SupplementalProperty의 경우, 미디어 프리젠테이션 작성자는 최적화된 프로세싱을 위해 DASH 클라이언트에 의해 사용될 수 있는 보완 정보를 서술자가 포함하고 있음을 표현한다. SupplementalProperty 서술자에 대한 값 또는 방식이 인지되지 않으면, DASH 클라이언트는 서술자를 무시할 것으로 예상된다. 다수의 SupplementalProperty 요소가 MPD에 존재할 수 있다.
MPEG-DASH는 속성 서술자로서 포맷화된 Viewpoint 요소를 특정한다. Viewpoint 요소의 @schemeIdUri 속성은 채용되는 뷰포인트 방식을 식별하는 데 사용된다. 비동등한 Viewpoint 요소 값을 포함하는 적응 세트는 상이한 미디어 콘텐츠 컴포넌트를 포함한다. Viewpoint 요소는 비디오가 아닌 미디어 콘텐츠 유형에도 동등하게 적용될 수 있다. 동등한 Viewpoint 요소 값을 갖는 적응 세트는 함께 제시되도록 의도된다. 이러한 처리는 인지 및 미인지되는 @schemeIdUri 값에 대해서 동등하게 적용되어야 한다.
공간적 관계 설명(SRD; Spatial Relationship Description)은 MPEG-DASH의 규범적 부록 H에서 특정된다. 다음은 SRD 사양의 일부 발췌 부분을 포함한다.
SRD 방식은 미디어 프레젠테이션 설명 작성자로 하여금 공간적 객체들 간의 공간적 관계를 표현하게 한다. 공간적 객체는 적응 세트 또는 서브-표현(Sub-Representation)으로 표현된다. 일례로서, 공간적 관계는 비디오가 또 다른 풀-프레임 비디오의 공간적 부분(예를 들어, 관심 영역 또는 타일)을 표현하는 것을 나타낼 수 있다.
"urn:mpeg:dash:srd:2014"와 동일한 @schemeIdUri를 갖는 SupplementalProperty 및/또는 EssentialProperty 서술자는 공간적 객체를 포함하는 것과 연관된 공간적 관계 정보를 제공하는 데 사용된다. SRD는 이들 2개의 MPD 요소(AdaptationSet 및 SubRepresentation)에서 배타적으로 포함되어야 한다.
서브-표현 레벨 SRD는 HEVC 타일링(tiling) 스트림과 같은 하나의 표현에서 공간적 객체를 표현하는 데 사용될 수 있다. 이 경우에, SRD 서술자는 서브-표현 레벨뿐만 아니라 적응 세트에도 존재할 수 있다.
SRD 방식을 사용하는 SupplementalProperty 또는 EssentialProperty 요소의 @value는 SRD 파라미터에 대한 값들의 쉼표로 구분된 리스트이다. SRD 파라미터 source_id, object_x, object_y, object_width, 및 object_height가 존재해야 하고, SRD 파라미터 total_width, total_height, 및 spatial_set_id는 조건부로 또는 선택적으로 존재한다.
source_id는 콘텐츠의 소스에 대한 식별자를 제공하는 십진수 표현에서 음이 아닌 정수이다. source_id 파라미터는 구간 내에서 콘텐츠의 소스에 고유한 식별자를 제공한다. 이는 이러한 소스와 연관된 좌표계를 암시적으로 정의한다. 이 좌표계는 임의의 원점(0;0)을 사용하고, x-축은 왼쪽에서 오른쪽으로 향하고, y-축은 위에서 아래로 향한다. 동일한 source_id 값을 공유하는 모든 SRD는 동일한 원점 및 축 방향을 갖는다. 상이한 source_id 값을 갖는 SRD를 사용하는 공간적 객체에 대한 공간적 관계는 정의되지 않는다.
주어진 source_id 값에 있어서, 좌측 상단 코너가 좌표계의 원점에 있고 전체 소스 콘텐츠를 둘러싸고 있는 직사각형 영역에 대응하는 참조 공간이 정의된다. SRD에서의 total_width 및 total_height 값은 임의의 단위로 표현된 상기 참조 공간의 크기를 제공한다. total_width는 임의의 단위로 참조 공간의 폭을 표현하는 십진수 표현에서 음이 아닌 정수이다. total_height는 임의의 단위로 참조 공간의 높이를 표현하는 십진수 표현에서 음이 아닌 정수이다. 예를 들어 전체 소스 콘텐츠가 2개의 별도의 비디오로 표현될 때에, 콘텐츠의 전체 소스를 커버하는 MPD에 공간적 객체가 존재하지 않는 것이 허용된다.
object_x는 임의의 단위로 공간적 객체의 좌측 상단 코너의 수평 위치를 표현하는 십진수 표현에서 음이 아닌 정수이다. object_y는 임의의 단위로 공간적 객체의 좌측 상단 코너의 수직 위치를 표현하는 십진수 표현에서 음이 아닌 정수이다. object_width는 임의의 단위로 공간적 객체의 폭을 표현하는 십진수 표현에서 음이 아닌 정수이다. object_height는 임의의 단위로 공간적 객체의 높이를 표현하는 십진수 표현에서 음이 아닌 정수이다. object_x 및 object_y 파라미터(각각 object_width 및 object_height)는 소스와 연관된 좌표계에서 관련된 공간적 객체의 2D 위치(각각 2D 크기)를 표현한다. object_x, object_y, object_width 및 object_height 파라미터의 값은, 위에서 정의된 바와 같이, total_width 및 total_height 파라미터의 값에 관련되어 있다. 동일한 source_id 값을 공유하는 SRD의 위치(object_x, object_y) 및 크기(object_width, object_height)는, 참조 공간의 크기를 고려한 후에, 즉 object_x 및 object_width 값을 total_width 값으로 나누고 object_y 및 object_height 값을 그들 각각의 서술자의 total_height 값으로 나눈 후에 비교될 수 있다. 상이한 total_width 값 및 total_height 값은 동일한 참조 공간에 대해 상이한 단위로 위치 및 크기 정보를 제공하기 위해 상이한 서술자에서 사용될 수 있다.
spatial_set_id는 공간적 객체의 그룹에 대한 식별자를 제공하는 십진수 표현에서 음이 아닌 정수이다. 존재하지 않는 경우에, 이러한 서술자와 연관된 공간적 객체는 어떠한 공간적 세트에도 속하지 않고 공간적 세트 정보도 주어지지 않는다. MPD 작성자는, 주어진 source_id 내에서, 일부 공간적 객체가 특정한 공간적 관계를 갖고 있다는 것을 spatial_set_id 파라미터를 이용하여 표현할 수 있다. 예컨대, MPD 작성자는 동일한 해상도 레벨의 타일에 대응하는 모든 적응 세트를 그룹화할 수 있다. 이렇게 하여, DASH 클라이언트는 spatial_set_id 파라미터를 이용하여 공간적으로 관련된 공간적 객체를 빠르게 선택할 수 있다.
초기화 세그먼트는 미디어 세그먼트에서 캡슐화된 미디어 스트림을 제시하는 데 필요한 메타데이터를 포함하는 세그먼트로서 정의될 수 있다. ISOBMFF 기반 세그먼트 포맷에서, 초기화 세그먼트는 임의의 샘플에 대한 메타데이터를 포함하지 않는 무비 박스('moov')를 포함할 수 있으며, 즉 샘플에 대한 임의의 메타데이터가 'moof' 박스에 제공된다.
미디어 세그먼트는 정상 속도로의 재생을 위해 소정의 지속 기간의 미디어 데이터를 포함하고, 이러한 지속 기간은 미디어 세그먼트 지속 기간 또는 세그먼트 지속 기간으로 지칭된다. 콘텐츠 제작자 또는 서비스 제공자는 원하는 서비스 특성에 따라 세그먼트 지속 기간을 선택할 수 있다. 예컨대, 짧은 종단간 레이턴시를 달성하기 위해 비교적 짧은 세그먼트 지속 기간이 라이브 서비스에서 사용될 수 있다. 이는, 세그먼트가 DASH를 위한 미디어 데이터를 생성하는 개별 유닛이므로 세그먼트 지속 기간이 통상 DASH 클라이언트에 의해 인지되는 종단간 레이턴시에 대한 하한(lower bound)인 것이 이유이다. 콘텐츠 생성은 미디어 데이터의 전체 세그먼트가 서버에서 이용 가능하게 되는 방식으로 일반적으로 행해진다. 또한, 다수의 클라이언트 구현예는 GET 요청을 위한 유닛으로서 세그먼트를 사용한다. 따라서, 라이브 서비스를 위한 통상의 구성에서, 미디어 세그먼트의 전체 지속 기간이 이용 가능할 뿐만 아니라 세그먼트로 인코딩되고 캡슐화될 때에만, DASH 클라이언트에 의해 세그먼트가 요청될 수 있다. 주문형 서비스의 경우, 세그먼트 지속 기간을 선택하는 상이한 전략이 사용될 수 있다.
세그먼트는 예를 들어 세그먼트를 복수의 부분에서 다운로드하는 것을 가능하게 하기 위해 서브세그먼트로 더 분할될 수 있다. 서브세그먼트는 완전한 액세스 유닛을 포함하도록 요구될 수 있다. 서브세그먼트는 각 서브세그먼트에 대한 프리젠테이션 시간 범위 및 바이트 범위를 맵핑하기 위한 정보를 포함하는 세그먼트 인덱스 박스에 의해 인덱싱될 수 있다. 또한, 세그먼트 인덱스 박스는 그 지속 기간 및 바이트 오프셋을 시그널링함으로써 세그먼트에서 스트림 액세스 포인트 및 서브세그먼트를 설명할 수 있다. DASH 클라이언트는 세그먼트 인덱스 박스(들)로부터 획득된 정보를 사용하여, 바이트 범위 HTTP 요청을 이용하는 특정 세그먼트에 대한 HTTP GET 요청을 행할 수 있다. 비교적 긴 세그먼트 지속 기간이 사용되면, 비트레이트 적응을 위해 합리적이고 유연한 HTTP 응답의 크기를 유지하는 데 서브세그먼트가 사용될 수 있다. 세그먼트의 인덱싱 정보는 그 세그먼트의 시작 부분에서 단일 박스에 놓여지거나, 세그먼트에서의 다수의 인덱싱 박스들 사이에서 확산될 수 있다. 예를 들어 계층적, 데이지 체인, 및 하이브리드 등의 다른 확산 방법이 가능하다. 이러한 기법은 세그먼트 시작 부분에 큰 박스를 추가하지 않을 수 있기 때문에, 가능한 초기 다운로드 지연을 방지할 수 있다.
서브-표현은 정규 표현에 임베딩되고, SubRepresentation 요소에 의해 기술된다. SubRepresentation 요소는 Representation 요소에 포함된다. SubRepresentation 요소는 표현에 임베딩된 하나 또는 다수의 미디어 콘텐츠 컴포넌트의 속성을 기술한다. 이는, 예를 들어 임베딩된 오디오 컴포넌트(예를 들어, 코덱, 샘플링 레이트, 등), 임베딩된 자막(예를 들어, 코덱)의 정확한 속성을 기술할 수 있거나, 또는 일부 임베딩된 저품질 비디오 레이어(예를 들어, 일부 낮은 프레임 레이트, 등)를 기술할 수 있다. 서브-표현 및 표현은 일부 공통 속성 및 요소를 공유한다. @level 속성이 SubRepresentation 요소에 존재하는 경우, 다음 사항들이 적용된다:
- 서브-표현은 이들이 포함된 표현의 저품질 버전에 액세스할 수 있는 능력을 제공한다. 이 경우에, 서브-표현은 예를 들어 다중화된 표현에서 오디오 트랙을 추출할 수 있게 하거나, 보다 낮은 프레임 레이트로 제공되면 효율적인 빨리 감기 또는 되감기 동작을 허용할 수 있다.
- 초기화 세그먼트 및/또는 미디어 세그먼트 및/또는 인덱스 세그먼트는 HTTP 부분적 GET 요청을 통해 데이터가 쉽게 액세스될 수 있도록 충분한 정보를 제공해야 한다. 이러한 정보를 제공하는 것에 대한 세부 사항은 사용중인 미디어 포맷에 의해 정의된다.
- ISOBMFF 세그먼트가 사용되는 경우, 다음 사항들이 적용된다:
ㆍ 초기화 세그먼트는 레벨 할당 박스를 포함한다.
ㆍ 서브세그먼트 인덱스 박스('ssix')는 각 서브세그먼트에 대해 존재한다.
ㆍ 속성 @level은 기술된 서브-표현이 서브세그먼트 인덱스와 연관되는 레벨을 특정한다. 표현, 서브-표현에서의 정보 및 레벨 할당('leva') 박스에서의 정보는 미디어 데이터를 레벨에 할당하는 것에 대한 정보를 포함한다.
ㆍ 미디어 데이터는 각각의 레벨이 하위 레벨에 비해 개선점을 제공하도록 순서를 가져야 한다.
@level 속성이 없으면, 서브표현 요소는 표현에 임베딩된 미디어 스트림에 대한 보다 상세한 설명을 제공하는 데 단지 사용된다.
ISOBMFF는 파일의 서브세트를 특정하는 소위 레벨 메카니즘을 포함한다. 레벨은 의존성 레이어를 따르므로 레벨 n에 맵핑된 샘플이 레벨 m(여기서, m≤n)의 임의의 샘플에 종속될 수 있고, 레벨 p의 임의의 샘플(여기서, p>n)에는 종속되지 않는다. 예컨대, 레벨은 시간적 서브-레이어(예를 들어, HEVC의 temporalId)에 따라 특정될 수 있다. 레벨은 무비 확장('mvex') 박스에 포함된 레벨 할당('leva') 박스에서 발표될 수 있다. 레벨은 초기 무비에 대해 특정될 수 없다. 레벨 할당 박스가 존재하면, 이는 초기 무비에 후속하는 모든 무비 프레그먼트에 적용된다. 레벨 할당 박스와 관련해서, 프랙션(fraction)은 마지막 미디어 데이터 박스의 초기 부분만을 포함할 수 있는 연관된 미디어 데이터 박스 및 하나 이상의 무비 프레그먼트 박스로 구성되도록 정의된다. 프랙션 내에서, 각 레벨에 대한 데이터가 연속적으로 나타난다. 프랙션 내의 레벨에 대한 데이터는 레벨 값이 증가하는 순서로 나타난다. 프랙션에서의 모든 데이터는 레벨에 대해 할당된다. 레벨 할당 박스는 확장성(scalability) 레이어 또는 시간적 서브-레이어와 같은 특징으로부터 레벨로의 맵핑을 제공한다. 특징은 트랙, 트랙 내의 서브-트랙, 또는 트랙의 샘플 그룹화를 통해 특정될 수 있다. 예컨대, 시간적 레벨 샘플 그룹화는 HEVC 내의 시간적 서브-레이어와 동등한 시간적 레벨로 픽처를 맵핑하는 것을 표시하는 데 사용될 수 있다. 즉, 소정의 TemporalId 값의 HEVC 픽처는 시간적 레벨 샘플 그룹화를 사용하여 특정한 시간적 레벨에 맵핑될 수 있다(또한, 동일한 동작이 모든 TemporalId 값에 대해 반복될 수 있음). 그 후에, 레벨 할당 박스는 레벨로의 표시된 맵핑에서 시간적 레벨 샘플 그룹화를 참조할 수 있다.
서브세그먼트 인덱스 박스('ssix')는 (레벨 할당 박스에 의해 특정된 것과 같은) 레벨로부터 인덱싱된 서브세그먼트의 바이트 범위로의 맵핑을 제공한다. 즉, 이 박스는 부분적 서브세그먼트로의 레벨에 따라 서브세그먼트의 데이터가 정렬되는 방법을 위해 컴팩트 인덱스(a compact index)를 제공한다. 이에 의해, 서브세그먼트에서 데이터의 범위를 다운로드함으로써 부분적 서브세그먼트에 대한 데이터에 클라이언트가 쉽게 액세스할 수 있게 된다. 서브세그먼트 인덱스 박스가 존재하는 경우, 서브세그먼트의 각 바이트는 하나의 레벨에 할당된다. 범위가 레벨 할당의 임의의 정보와 연관되지 않으면, 레벨 할당에 포함되지 않은 임의의 레벨이 사용될 수 있다. 리프(leaf) 서브세그먼트만을 인덱싱하는, 즉 서브세그먼트만을 인덱싱하되 세그먼트는 인덱싱하지 않는 서브세그먼트 인덱스 박스가 세그먼트 인덱스 박스당 0 또는 1개 존재한다. 서브세그먼트 인덱스 박스는, 만약 있다면, 연관된 세그먼트 인덱스 박스 이후의 박스이다. 서브세그먼트 인덱스 박스는 바로 앞에 있는 세그먼트 인덱스 박스에 표시된 서브세그먼트를 기록한다. 각 레벨은 정확히 하나의 부분적 서브세그먼트에 할당될 수 있고, 즉 하나의 레벨에 대한 바이트 범위는 인접해 있다. 부분적 서브세그먼트의 레벨은 서브세그먼트 내에서 수를 증가시킴으로써 할당되고, 즉 부분적 서브세그먼트의 샘플은 동일한 서브세그먼트에서의 이전의 부분적 서브세그먼트의 임의의 샘플에 의존할 수 있되, 그 반대로는 의존하지 않는다. 예컨대, 각각의 부분적 서브세그먼트는 동일한 시간적 서브-레이어를 갖는 샘플을 포함하고, 부분적 서브세그먼트는 서브세그먼트 내에서 증가하는 시간적 서브-레이어 순서로 나타난다. 부분적 서브세그먼트가 이러한 방식으로 액세스될 때, 최종 미디어 데이터 박스는 불완전할 수 있는데, 즉 미디어 데이터 박스가 존재한다고 표시하는 길이 표시보다 적은 데이터가 액세스된다. 미디어 데이터 박스의 길이는 조정해야 할 수 있거나, 패딩이 사용될 수 있다. 레벨 할당 박스의 padding_flag는 이러한 누락된 데이터가 0으로 대체될 수 있는지를 표시한다. 대체될 수 없으면, 액세스되지 않은 레벨에 할당된 샘플에 대한 샘플 데이터가 존재하지 않아서, 주의해야 한다.
MPEG-DASH는 ISOBMFF 및 MPEG-2 전송 스트림 모두에 대한 세그먼트-컨테이너 포맷을 정의한다. 다른 사양은 다른 컨테이너 포맷에 기초하여 세그먼트 포맷을 특정할 수 있다. 예컨대, Matroska 컨테이너 파일 포맷을 기초로 한 세그먼트 포맷이 제안되었으며 다음과 같이 요약될 수 있다. Matroska 파일이 DASH 세그먼트 등으로서 운반될 때, DASH 유닛 및 Matroska 유닛의 연관성은 다음과 같이 특정될 수 있다. (DASH의) 서브세그먼트는 Matroska-캡슐화된 콘텐츠의 하나 이상의 연속 클러스터로서 정의될 수 있다. DASH의 초기화 세그먼트는 EBML 헤더, (Matroska의) 세그먼트 헤더, (Matroska의) 세그먼트 정보 및 트랙을 포함하도록 요구될 수 있고, 또한 다른 레벨 1 요소 및 패딩을 선택적으로 포함할 수 있다. DASH의 세그먼트 인덱스는 Matroska의 큐(Cues) 요소를 포함할 수 있다.
DASH는 다양한 네트워크 대역폭과 매칭하기 위해 적응 세트 내의 상이한 표현으로부터 미디어 세그먼트를 동적으로 요청함으로써 레이트 적응을 지원한다. DASH 클라이언트가 표현을 위/아래로 전환할 때, 표현 내의 코딩 의존성을 고려해야 한다. 표현 스위치는 H.264/AVC와 같은 비디오 코딩 기술에서 일반적으로 사용되는 랜덤 액세스 포인트(RAP)에서 일어날 수 있다. DASH에서, 표현에 액세스하고 표현들 간에서 스위칭을 하기 위한 코덱-독립형 솔루션(a codec-independent soultion)을 제공하기 위해 스트림 액세스 포인트(SAP)라고 명명된 보다 일반적인 개념이 도입된다. DASH에서, 미디어 스트림의 재생이 그 위치부터 계속 시작하는 표현 데이터에 포함된 정보만을 사용하여 시작되도록 하는 표현 내의 위치로서 SPA가 특정된다(존재한다면, 초기화 세그먼트 내의 데이터를 초기화함으로써 선행됨). 따라서, 표현 스위칭은 SAP에서 수행될 수 있다.
이하를 포함해서 SAP의 여러 타입이 특정되었다. SAP 타입 1은 일부 코딩 방식에서 "폐쇄형 GOP 랜덤 액세스 포인트"(모든 픽처가 디코딩 순서로 정확하게 디코딩되어, 갭이 없는 정확하게 디코딩된 픽처의 연속적인 시간 시퀀스를 생성함)로서 알려져 있는 것에 대응하고, 또한 디코딩 순서에서의 첫 번째 픽처는 또한 프리젠테이션 순서에서의 첫 번째 픽처이다. SAP 타입 2는 일부 코딩 방식에서 "폐쇄형 GOP 랜덤 액세스 포인트"(모든 픽처가 디코딩 순서로 정확하게 디코딩되어, 갭이 없는 정확하게 디코딩된 픽처의 연속적인 시간 시퀀스를 생성함)로서 알려져 있는 것에 대응하고, 디코딩 순서에서의 첫 번째 픽처는 프리젠테이션 순서에서의 첫 번째 픽처가 아닐 수도 있다. SAP 타입 3은 일부 코딩 방식에서 "개방형 GOP 랜덤 액세스 포인트"로서 알려져 있는 것에 대응하고, 정확하게 디코딩될 수 없고 또한 SAP와 연관된 인트라-코딩된 픽처보다 짧은 프리젠테이션 시간을 갖는 몇몇의 픽처가 디코딩 순서로 있을 수 있다.
MPEG-2와 같은 일부 비디오 코딩 표준에서, 각 인트라 픽처는 코딩된 시퀀스에서 랜덤 액세스 포인트였다. H.264/AVC 및 H.265/HEVC와 같은 일부 비디오 코딩 표준에서 인터 예측을 위해 다수의 참조 픽처를 유연하게 사용할 수 있다는 것은 인트라 픽처가 랜덤 액세스를 위해 충분하지 않을 수 있다는 결과를 가져온다. 따라서, 코딩 타입으로부터 이러한 기능을 추론하기보다는 그 랜덤 액세스 포인트 기능과 관련하여 픽처가 표시될 수 있고; 예를 들면 H.264/AVC 표준에서 특정된 바와 같은 IDR 픽처가 랜덤 액세스 포인트로서 사용될 수 있다. 폐쇄형 그룹(GOP)은 모든 픽처가 정확하게 디코딩될 수 있는 픽처들의 이러한 그룹이다. 예컨대, H.264/AVC에서, 폐쇄형 GOP는 IDR 액세스 유닛으로부터(또는 모든 이전의 참조 픽처를 사용하지 않은 것으로 표시하는 메모리 관리 제어 동작을 갖는 인트라 코딩된 픽처로부터) 시작할 수 있다.
개방형 픽처 그룹(GOP)은 출력 순서에서 초기 인트라 픽처 이전의 픽처가 정확하게 디코딩되지 않을 수 있지만, 초기 인트라 픽처 이후의 픽처는 정확하게 디코딩될 수 있는 픽처들의 이러한 그룹이다. 이러한 초기 인트라 픽처는, 예를 들어 HEVC에서 CRA NAL 유닛 타입 또는 H.264/AVC에서 복구 포인트 SEI 메시지를 사용함으로써, 비트스트림에서 표시될 수 있고 및/또는 비트스트림으로부터의 표시를 통해 결정될 수 있다. 개방형 GOP를 시작하는 초기 인트라 픽처 이전의 픽처는 선두 픽처(leading pictures)라고 할 수 있다. 선두 픽처에는 디코딩 가능 및 디코딩 불가능의 두 가지 타입이 있다. 디코딩 가능한 선두 픽처는 개방형 GOP를 시작하는 초기 인트라 픽처로부터 디코딩이 시작될 때에 정확하게 디코딩될 수 있는 것이다. 즉, 디코딩 가능한 선두 픽처는 인터 예측에서의 참조로서 디코딩 순서로 초기 인트라 픽처 또는 후속 픽처만을 사용한다. 디코딩 불가능한 선두 픽처는 개방향 GOP를 시작하는 초기 인트라 픽처로부터 디코딩이 시작될 때에 정확하게 디코딩될 수 없는 것이다.
상기한 바와 같이, 클라이언트 또는 플레이어는 확장 가능한 비디오 비트스트림의 전송된 레이어 및/또는 서브-레이어가 어떻게 결정되는지와 마찬가지로, 상이한 표현으로부터 전송되는 세그먼트 또는 서브세그먼트를 요청할 수 있다. 표현 다운-스위칭 또는 비트스트림 다운-스위칭이라는 용어는 이전에 (각각) 요청되거나 전송되었던 것보다 낮은 비트레이트 표현을 요청하거나 전송하는 것을 가리킬 수 있다. 표현 업-스위칭 또는 비트스트림 업-스위칭이라는 용어는 이전에 (각각) 요청되거나 전송되었던 것보다 높은 비트레이트 표현을 요청하거나 전송하는 것을 가리킬 수 있다. 표현 스위칭 또는 비트스트림 스위칭이라는 용어는 집합적으로 표현 또는 비트스트림의 업 및 다운 스위칭을 가리킬 수 있고, 또한 또는 이와는 달리 상이한 관점의 비트스트림 또는 표현의 스위칭을 커버할 수 있다.
MPEG-DASH와 유사한 스트리밍 시스템은, 예를 들어 IETF 인터넷 드래프트(Internet Draft) draft-pantos-http-live-streaming-19(및 동일한 인터넷 드래프트의 다른 버전)에서 특정된 HTTP 라이브 스트리밍(HLS로도 알려짐)을 포함한다. MPD에 대응하는 매니페스트 포맷으로서, HLS는 확장된 M3U 포맷을 사용한다. M3U는 오디오 파일을 위해 원래 개발된, 멀티미디어 플레이리스트를 위한 파일 포맷이다. M3U 플레이리스트는 개개의 라인으로 이루어진 텍스트 파일이고, 각각의 라인은 URI, 공백(blank)이거나, 혹은 태그 또는 코멘트를 표시하는 문자 '#'로 시작한다. URI 라인은 미디어 세그먼트 또는 플레이리스트 파일을 식별한다. 태그는 #EXT로 시작한다. HLS 사양은 키-값 쌍으로 간주될 수 있는 태그의 개수를 특정한다. 태그의 값 부분은 속성-값 쌍의 쉼표로 구분된 리스트인 속성 리스트를 포함할 수 있으며, 여기서 속성-값 쌍은 구문 AttributeName=AttributeValue을 갖는다고 간주될 수 있다. 따라서, HLS M3U8 파일의 태그는 MPD 또는 XML에서의 요소와 유사하다고 간주될 수 있고, HLS M3U8 파일의 속성은 MPD 또는 XML에서의 속성과 유사하다고 간주될 수 있다. HLS의 일부 버전에서, 미디어 세그먼트는 MPEG-2 전송 스트림에 따라 포맷화되고, 단일의 MPEG-2 프로그램을 포함한다. 각각의 미디어 세그먼트는 프로그램 연관 테이블(PA; Program Association Table) 및 프로그램 맵 테이블(PMT; Program Map Table)을 갖고서 시작하도록 권장된다. HLS의 일부 버전에서, 미디어 세그먼트는 DASH(Sub)Segments와 마찬가지로 자립형(self-containing) ISOBMFF 무비 프레그먼트이다.
종단 간 DASH 시스템은 다음과 같이 구성될 수 있다. 미디어 콘텐츠는 통상적으로 기존의 웹(HTTP) 서버인 오리진 서버(an origin server)에 의해 제공된다. 오리진 서버는 스트리밍된 콘텐츠가 전달되어 에지 서버에 저장되는 콘텐츠 전달 네트워크(CDN; Content Delivery Network)와 접속될 수 있다. MPD는 콘텐츠에 대한 다수의 베이스 URL의 시그널링을 허용하여, 상이한 에지 서버에서의 콘텐츠의 가용성을 알리는 데 사용될 수 있다. 이와 달리, 콘텐츠 서버는 인터넷에 직접 접속될 수 있다. 웹 프록시는 DASH 클라이언트와 콘텐츠가 요청되는 오리진 또는 에지 서버와의 사이에서 HTTP 트래픽을 라우팅하는 경로 상에 있을 수 있다. 웹 프록시는 HTTP 메시지를 캐싱할 수 있으므로, 캐싱된 콘텐츠를 갖고서 클라이언트의 요청을 제공할 수 있다. 그것들은 프록시로부터 오리진 또는 에지 서버를 향한 요구되는 네트워크 대역폭을 감소시키기 때문에, 네트워크 서비스 제공자에 의해 일반적으로 사용된다. 엔드 유저에 있어서, HTTP 캐싱은 보다 짧은 레이턴시를 제공한다. DASH 클라이언트는 모바일 셀룰러 네트워크와 같은 액세스 네트워크를 통해 인터넷에 접속될 수 있다.
ISO/IEC 23009-5는 서버 및 네트워크 지원된 DASH(SAND)를 특정하고, 이는 DASH 클라이언트의 성능 및 상태에 대한 정보뿐만 아니라 네트워크, 서버, 프록시, 캐시, CDN의 실시간 동작 특성에 대한 정보를 제공함으로써 스트리밍 세션의 효율성을 향상시키기 위한 목적으로 DASH 클라이언트와 네트워크 요소와의 사이에서 또는 다수의 네트워크 요소들 사이에서 메시지를 도입한다. 예컨대, AnticipatedRequests SAND 메시지에 의해 DASH 클라이언트는 관심 있는 특정 세그먼트 세트를 DASH-ware 네트워크 요소(DANE)에 알릴 수 있게 된다. 그 목적은 DASH 클라이언트가 곧 선택 및 요청할 가능성이 있다는 표현으로 세그먼트 세트를 시그널링하는 것이다. 메시지 페이로드에는 예상 요청들의 목록이 포함되고, 각 예상 요청은 요청들의 URL, 선택적으로는 요청에 대한 바이트 범위(URL에 의해 참조되는 콘텐츠의 일부만이 요청될 것으로 예상되는 경우), 및 선택적으로는 DASH 클라이언트가 URL로 식별된 리소스에 대한 요청을 발행하고자 예상하는 시간을 포함한다.
가상 현실 비디오 콘텐츠는 상이한 투영 포맷을 사용할 수 있다. "360° 비디오"라는 용어는 "가상 현실 비디오"라는 용어와 교차 가능하게 사용될 수 있다. 360도 시야를 수평적으로 커버하고 180도 시야를 수직적으로 커버하는 구형 이미지로부터 직사각형의 2차원 이미지 면으로의 특정 투영은 등정방형 투영으로 알려져 있다. 이 경우에, 수평 좌표는 경도(longitude)와 동등한 것으로 간주될 수 있고, 수직 좌표는 변환 또는 스케일링이 적용되지 않은 위도(latitude)와 동등한 것으로 간주될 수 있다. 일부 경우에는, 360도 수평 시야이지만 180도 미만의 수직 시야를 가진 파노라마 콘텐츠는 등정방형 투영의 특수한 경우로 간주될 수 있고, 여기서 구(sphere)의 극 영역(polar area)은 2차원 이미지 면에 맵핑되지 않았다. 등정방형 투영은 수직선의 일직선을 유지하지만 천저(nadir) 및 천정(zenith) 영역을 왜곡시킨다.
큐브 맵 프로젝션 포맷(큐브 맵이라고도 함)에서, 큐브의 6개의 페이스(faces)(사이드(sides)라고도 함) 상에 구형 비디오(spherical video)가 투영된다. 큐브 맵은, 예를 들어 각 큐브 페이스를 나타내는 90도 뷰 절두체(frustum)로 정의되는 뷰를 갖고서, 먼저 뷰포인트로부터 구형 장면(spherical scene)을 6번 렌더링함으로써 생성될 수 있다. 큐브 사이드들은 동일한 프레임에 프레임-패킹될 수 있거나, 각 큐브 사이드는(예를 들면, 인코딩시에) 개별적으로 처리될 수 있다. 큐브 사이드들을 프레임에 위치시키는 다수의 가능한 순서가 있을 수 있고 및/또는 큐브 사이드들은 회전되거나 미러링될 수 있다. 프레임-패킹을 위한 프레임 폭 및 높이는 예를 들어 3x2 큐브 사이드 그리드에서 큐브 사이드들을 "타이트하게(tightly)" 맞추게 하도록 선택될 수 있고, 또는 예를 들어 4x3 큐브 사이드 그리드에서 미사용된 구성 프레임들을 포함할 수 있다.
일례에서, 가상 현실 콘텐츠는 도 10에 도시된 바와 같은 예시적인 프로세스(1100)에 따라서 또는 서브세트 및/또는 그 변형에 따라 프로세스될 수 있다. 도시된 바와 같이, 도 10에서, 가상 현실 콘텐츠는 하나 이상의 가상 현실 카메라, 다른 카메라 어레이 및/또는 가상 현실 콘텐츠를 캡쳐하기에 적합한 다른 시청각 장비 등에 의해 블록(1102)에서 획득된다. 도 10에 도시된 바와 같이, 블록(1102)에서 획득된 이미지는 이미지 스티칭, 투영, 및 맵핑이 수행될 수 있는 블록(1104)으로 전달될 수 있다. 블록(1102)에서 획득된 오디오는, 일부 구현예에서, 오디오 인코딩을 위해 블록(1106)으로 전달될 수 있는 반면에, 블록(1104)으로부터 스티칭되고, 투영되고 맵핑된 이미지는 비디오 및/또는 이미지 인코딩을 위해 블록(1108) 및/또는 블록(1110)으로 전달될 수 있다. 도 10의 블록(1112)에 도시된 바와 같이, 파일 캡슐화기는 블록(1106, 1108, 1110)으로부터의 비디오, 이미지, 및 오디오를 포함하는 인코딩된 미디어 콘텐츠를 입력으로서 취하여, 그것들을 컨테이너 파일로 캡슐화한다. 또한, 파일 캡슐화기는 메타데이터를 수신하여, 디코딩 패킹된 VR 프레임을 렌더링할 때 도움이 되는 투영 및 맵핑 정보와 같은 파일에 통합할 수 있다. DASH를 포함하는 구현예에서, 도 10에 도시된 바와 같이, DASH MPD 생성기는 파일을 입력으로서 취하고, 블록(1114)에서 MPD를 생성하는데, 파일의 동등한 정보를 기반으로 생성될 수 있는 투영 및 맵핑 메타데이터와 같은 VR-특정 메타데이터를 포함할 수 있다. 블록(1114)에서의 DASH MPD 생성 후에, 블록(1116)에서 DASH 클라이언트/서버 전송이 수행된다.
도 10의 블록(1118)에 도시된 바와 같이, 파일 재생 동안, 파일 디캡슐화기는 파일 및/또는 수신된 (서브)세그먼트를 프로세스하고, 트랙으로부터 코딩된 비트스트림을 추출하여 메타데이터를 파싱한다. 오디오 정보, 비디오 정보, 및 이미지 정보는 각각 블록(1120, 1122, 1124)에서 디코딩된다. 블록(1122) 및/또는 블록(1124)에 의해 생성되는 디코딩 패킹된 VR 프레임은 블록(1130)에서 렌더링될 수 있으며, 이는 선택적으로 파일 디캡슐화기로부터 수신된 투영 및/또는 맵핑 정보의 사용을 포함한다. 블록(1132)에 도시된 바와 같이, 렌더링된 이미지는 현재 시청 배향 및 파일로부터 파싱된 투영 및 맵핑 메타데이터에 기초하여 헤드-장착형 디스플레이 또는 임의의 다른 디스플레이 디바이스의 스크린 상에 투영된다. 마찬가지로, 블록(1126)에서 렌더링된 오디오는 라우드 스피커 및/또는 헤드폰을 통해 블록(1128)에서 출력될 수 있다.
이미지 스티칭, 투영, 및 맵핑 프로세스(1200)의 예시적인 해체에 대한 도시가 도 11을 갖고서 예시되고, 다음과 같이 설명된다. VR 이미지 또는 비디오 클립은 일반적으로 다수의 카메라 또는 여러 개의 렌즈 및 센서를 구비한 카메라 디바이스를 사용하여 캡처된다. 다수의 카메라로부터의 입력 화상(1204)은 블록(1206)에서 구 또는 큐브와 같은 3차원 기하학적 구조 상에 스티칭 및 투영된다. 기하학적 구조 상의 이미지 데이터는 2차원 투영된 프레임(1208) 상에 추가로 배열되고, 그 포맷은 블록(1210)에서 VR 투영 포맷 표시기를 갖고서 표시될 수 있다. 예에서, 패킹된 VR 프레임(1212)에서 각 영역의 위치 및 크기를 표시함으로써, 맵핑은 패킹된 VR 프레임(1212) 상에 투영된 프레임의 직사각형 영역을 맵핑하는 것을 포함한다. 예에서, 맵핑은 패킹된 VR 프레임(1212) 상에 투영된 프레임의 직사각형 영역의 미러링 및 회전 중 하나 또는 양쪽을 추가로 포함하되, 여기서 상기 미러링은 수평 및 수직 미러링으로 제한될 수 있고, 상기 회전은 90도의 단계로 제한될 수 있다. 실제로, 입력 화상(들)은 도 11의 파선 직사각형(1202)에 의해 표시되는 중간 단계 없이 하나의 프로세스에서 패킹된 VR 프레임(1212)으로 변환될 수 있다. 패킹된 VR 프레임은 비디오 인코딩(1108) 및/또는 이미지 인코딩(1110)에 대한 입력으로서 제공된다. 패킹된 VR 프레임의 용어는, 투영된 프레임의 단일 직사각형 영역만이 패킹된 VR 프레임 상에 있을 때에 또는 패킹된 VR 프레임이 이와 같이 투영된 프레임을 포함할 때에 사용될 수도 있다. 패킹된 VR 프레임의 용어는 투영된 프레임의 맵핑으로부터 생성된 프레임으로서 정의될 수 있다.
투영 구조는 VR 이미지/비디오 콘텐츠가 투영되는 하나 이상의 표면(들)으로 이루어진 3차원 구조로서 정의될 수 있다. 투영된 프레임은 투영 구조의 표면(들)이 맵핑되는 2차원 프레임으로서 정의될 수 있다. 투영된 프레임은 대안적으로 또는 추가적으로 VR 투영 포맷 표시자에 의해 정의된 표현 포맷을 갖는 프레임으로서 정의될 수 있다. 예컨대, 큐브 맵 투영의 투영 구조는 큐브이며, 큐브 맵은 큐브 페이스를 펼침으로써 형성된 2차원의 투영된 프레임이다. VR 투영 포맷 표시자는 예를 들어 투영된 프레임의 표현 포맷을 표시하는 열거형일 수 있다. 예컨대, 표시자는 모노스코픽 등정방형 파노라마, 스테레오스코픽 등정방형 파노라마, 모노스코픽 큐브 맵, 및 스테레오스코픽 큐브 맵 중 하나를 표시할 수 있다. 스테레오스코픽 투영 포맷이 표시되면, 소정의 패킹 구성이 사전 정의되거나 별도로 표시될 수 있다. 예컨대, 상부-하부 패킹 구성은 사전 정의될 수 있으며, 여기서 예를 들어 좌측 뷰는 상부에서 나타나도록 정의될 수 있다.
일부 예에서, VR 비디오의 여러 버전이 인코딩되고, 각 버전은 상이한 뷰 배향에 대해 타겟화된다. 따라서, 구 또는 큐브와 같은 투영 구조의 배향은 타겟화된 뷰 배향에 따라 회전된다. 전역 좌표계를 기준으로 한 투영 구조 또는 관련된 투영 프레임의 배향을 나타내는 다른 방법이 있을 수 있다. 예컨대, 등정방형 파노라마 픽처의 중심점 또는 큐브 맵의 정면 중심점과 같은 주요 포인트가 투영 포맷을 위해 정의될 수 있다. 요 및 피치는 전역 좌표계에서 주요 포인트의 위치를 나타낼 수 있다. 투영 구조 또는 대응하는 투영 프레임의 배향은, 기준 방향에 직교하는 주요 면이 어떻게 회전하는지를 나타내는 롤에 의해 표시될 수 있다.
전역적 배향 오프셋이라는 용어는, 렌더링 시스템 또는 전역 좌표계에서 (0, 0, 0)과 동일한 (요, 피치, 롤)에 대응하는 기준 배향을 기준으로 한 요, 피치, 롤로서 정의될 수 있다. 기준 배향은, 기준 방향에 직각이며 0도의 롤 각(roll angle)을 갖는 2차원 표면의 배향으로서 정의될 수 있다. 기준 방향은 카메라 파라미터에 대한 좌표계의 z축 또는 전역 좌표계의 z축의 방향으로서 혹은 마이크로폰 설정의 제로 방위각 및 제로 고각(elevation angle)에 대한 축의 방향으로서 정의될 수 있다. 따라서, 전역적 배향 오프셋은 예를 들어 콘텐츠를 인코딩한 후에 카메라 또는 콘텐츠 배향을 수정하는 데 사용될 수 있다. 예컨대, 콘텐츠의 수평선이 정확히 수평이 아닌 경우(예를 들면, 배향이 약간 기울어진 카메라로 콘텐츠가 촬영된 경우), VR 배향 메타데이터에 의해 고정될 수 있다.
전역적 배향 오프셋은 예를 들어 이하의 방법들 중 하나 이상의 방법으로 파일에 포함될 수 있다: i) 샘플 집합에 적용하는 전역적 배향 오프셋(예를 들면, 전체 트랙에 대한)은 ISOBMFF 호환 파일의 샘플 항목에 포함될 수 있다. ii) 샘플 그룹은 전역적 배향 오프셋에 대해 정의될 수 있으며, 여기서 각 샘플 그룹 설명 항목은 요, 피치, 및 롤 값의 조합을 정의하고, SampleToGroupBox는 트랙의 샘플을 샘플 그룹 설명 항목에 맵핑하는 데 사용된다. iii) 메타데이터 트랙으로서의 VR 배향은 다음과 같이 정의된다: 존재하는 경우에, VR 배향 메타데이터 트랙은 동일한 전역적 배향 오프셋 데이터를 공유하는 각 오디오 트랙 및 각 비디오 트랙에 대해 예를 들어 'cdsc' 타입의 트랙 참조를 포함한다. 존재하는 경우에, 이 메타데이터는 전역적인 배향 오프셋을 특정한다. 이 트랙이 없으면, 전역적인 배향 오프셋의 값은 각각 요, 피치 및 롤에 대해 (0, 0, 0)이다. VR 배향 메타데이터 트랙의 샘플에서 제공되는 전역적인 배향 오프셋은 'cdsc' 타입의 트랙 참조를 사용하는 VR 배향 메타데이터 트랙과 관련된 트랙들의 모든 시간-병렬 오디오 및 비디오 샘플에 적용된다. 특정 트랙의 특정 샘플에 대한 시간-병렬 샘플은 동일한 참조 트랙의 샘플로서 정의될 수 있거나, 혹은 동일한 디코딩 시간을 갖는 샘플이 이용 불가할 때에는 특정 트랙의 특정 샘플의 디코딩 시간에 가장 근접한 이전의 디코딩 시간으로 정의될 수 있다.
전역적 배향 오프셋은 VR 오디오-비디오 프리젠테이션 전체에 걸쳐서 적용될 수 있다. 렌더링시에, (헤드 장착형 디스플레이의 초기 배향에 대한) 헤드 장착형 디스플레이의 배향은 기본적으로 디코딩된 콘텐츠로부터 추출하는 데 사용되는 배향을 선택하기 위해 그 순간에 우세한 전역적 배향 오프셋으로 요약된다. 예컨대, 요, 피치, 및 롤 각각에 대한 배향 (a, b, c)를 향한 비디오가 예를 들어 헤드 장작형 디스플레이 상에서 렌더링되고, 요, 피치, 및 롤 각각에 대한 전역적 배향 오프셋이 (i, j, k)인 경우, 배향에 대응하는 비디오 정보는 파일에서 각각 (a-i, b-j, c-k)와 동등한 요, 피치, 및 롤을 갖는다.
디코딩될 트랙 또는 표현 및/또는 디코딩된 콘텐츠로부터 추출될 데이터를 선택할 때, (전역 좌표계에 대한) 투영 구조 또는 투영된 프레임의 배향이 고려될 수 있다. 예컨대, 투영 구조가 45도의 요 각 및 0도의 피치 및 롤 각을 갖도록 표시된 큐브이고 또한 현재의 뷰 배향이 0의 요, 피치 및 롤을 갖는 경우, 디코딩된 큐브 맵으로부터의 콘텐츠는 렌더링된 콘텐츠에 대한 중심점이 Y-축을 둘레로(즉, 투영된 프레임에서 수평으로) 45도 벗어나서 렌더링되도록 선택된다.
일부 예에서, 전역적 배향 오프셋(들)은 투영 구조 또는 투영된 프레임의 배향 정보에 포함되므로, 렌더링을 위해 디코딩된 데이터를 선택할 때에 별도로 고려될 필요가 없다. 일부 예에서, 전역적 배향 오프셋은 투영 구조 또는 투영된 프레임의 배향 정보와 별개이므로, 기본적으로 이들을 적절한 부호로 합산함으로써, 렌더링을 위해 디코딩된 데이터를 선택할 때에 이것들을 공동으로 고려해야 한다.
시청각 가상 현실 콘텐츠와 같은 시각적 콘텐츠에 대한 관찰 포인트 및 배향 선택을 제어하기 위해 실시예에 따라 방법, 장치 및 컴퓨터 프로그램 제품을 제공한다. 본 명세서에서 설명되거나 다른 방식으로 고려되는 실시예들 및 구현예들의 다수는 가상 현실 콘텐츠를 포함하지만 이로 제한되지 않는 시청각 콘텐츠가 시청자에게 스트리밍되는 상황에서 발생한다. 가상 현실 콘텐츠의 개발, 전송, 및 시청과 관련된 기술적 문제점들 중 하나는 시청자가 그들의 배향, 위치, 또는 다른 것을 통해 콘텐츠의 가장 두드러진 부분이 아닐 수 있는 가상 현실 콘텐츠의 일부를 보는 경향이 있다는 것이다. 콘텐츠 작성자 또는 저자는 일반적으로 사용자의 잠재적인 시야 내에서 특히 선택된 위치에서 가장 두드러지고 관심이 있다고 간주되는 콘텐츠를 제시한다. 시청자들이 일반적으로 거기에 제시된 돌출되고 및/또는 흥미로운 콘텐츠에 더 관심을 갖는 경향이 있고, 그에 따라 시청자들이 그 콘텐츠를 쉽게 볼 수 있게 하는 방식으로 자신들 스스로를 위치시키는 경향이 있음에 따라, 이들 선택된 위치는 가장 가능성 있는 시청 방향(MPVD; most probable viewing direction)으로 간주될 수 있다. 그러나, 가상 현실 프리젠테이션 및 다른 몰입형 콘텐츠 프리젠테이션은 종종 시청자 및 그들의 헤드 장착형 시청 디바이스의 위치 설정에 기초하여 시청자가 그들의 시점 및/또는 시청 배향을 변경하도록 허용하기 때문에, 사용자가 이러한 콘텐츠를 재생하기 시작하는 경우에, 그들의 위치 설정 및/또는 배향은, 시청자가 가장 돌출되고 및/또는 흥미로운 콘텐츠와 정렬되지 않도록 콘텐츠가 렌더링되는 시나리오를 초래하여, 시청자는 MPVD와 정렬하게 되도록 덜 편안한 시청 위치로 이동하고 및/또는 이를 채택해야 한다. 예컨대, 시청자는 MPVD를 찾기 위해 그들 바로 뒤를 볼 필요가 있을 수 있다. 또 다른 예에서, 소파 또는 의자에서의 시청자의 위치 설정은 시청자가 MPVD를 갖고서 자신들을 재구성하기 위해 물리적으로 불편한 신체 위치 설정을 채택할 것을 요구할 수 있다.
일부 이러한 상황에서, VR 비디오의 스트리밍 비트 레이트를 줄이기 위한 스트리밍 프로토콜의 최근 경향은 최상의 품질/해상도로 현재의 시청 배향을 커버하는 360도 비디오 콘텐츠의 서브세트를 전송하는 반면에, 360도 비디오의 나머지 부분은 낮은 품질/해상도로 전송하는 것을 포함한다. 일부 이러한 상황, 및 본 발명의 실시예가 구현될 수 있는 다른 상황은, 가상 현실 콘텐츠를 위해 HTTP를 통한 동적 적응형 스트리밍("DASH")의 사용을 고려한다.
DASH의 일부 구현예에서, 동일한 적응 세트의 표현들 간의 자동화된 선택은, 예를 들어 폭 및 높이(각각 @width 및 @height로서 참조될 수 있음); 프레임 레이트(@frameRate로서 참조될 수 있음); 비트 레이트(@bandwidth로서 참조될 수 있음); 및/또는 표현들 간의 표시된 품질 순서(@qualityRanking으로서 참조될 수 있음)를 기초로 하여 수행될 수 있다. DASH의 일부 구현예에서, @qualityRanking이 동일한 적응 세트의 다른 표현들과 관련하여 표현의 품질 순위를 특정하도록 @qualityRanking의 의미가 특정된다. 통상, 보다 낮은 값은 보다 높은 품질의 콘텐츠를 나타낸다. DASH의 구현예에서, @qualityRanking 속성이 존재하지 않으면, 순위는 정의되지 않는다.
가상 현실 비디오 콘텐츠와 관련하여, 360도 콘텐츠의 일부 뷰포트는 보다 양호한 품질로 표현될 수 있지만 다른 뷰포트는 보다 낮은 품질로 표현될 수 있다. 그러나, 상기한 속성들 중 어떤 것도 상이한 주요 뷰포트를 위해 코딩된 360도 비디오를 구별하기에는 충분하지 않음을 알 것이다.
DASH에서 뷰포트 기반 적응을 가능하게 하기 위해, MPD는 표현의 주요 뷰포트를 나타내는 메타데이터를 포함할 수 있다. 또한, 주요 뷰포트의 화질을 기초로 하여 표현을 선택할 수 있도록, MPD는 전체적인 품질 특성과 별도로 주요 뷰포트에 대한 품질을 표시하는 수단을 포함할 수 있다. 주요 뷰포트에 대한 품질 및/또는 주요 뷰포트를 나타내기 위해 하나 이상의 속성 설명자 또는 요소를 사용할 수 있다. 이러한 예는 다음 단락에서 제공된다.
예에서, VR 비디오 설명자(VRD)는 두 가지 목적을 제공한다: 1) 어떤 뷰포트가 (서브)표현에 존재하는지를 나타낸다. 2) 뷰포트-특정 품질 순위를 나타낸다. 다음의 정보는 VR 비디오 설명자로 전달된다: 콘텐츠에 의해 표현되는 뷰포트(들), 뷰포트(들)의 투영 포맷, 뷰포트(들)에 대한 콘텐츠가 모노스코픽인지 스테레오스코픽인지에 대한 표시, 및 좌측 또는 우측 뷰 혹은 양쪽의 뷰가 존재할 때에 스테레오스코픽 콘텐츠의 경우에 뷰포트(들)에 대한 품질 순위 값. 뷰포트-특정 품질 순위 정보에 의해 클라이언트는 동일한 뷰포트(들)를 나타내지만 상이한 품질을 나타내는 표현과 서브-표현을 구별할 수 있다. VRD 방식을 사용하는 SupplementalProperty 또는 EssentialProperty 요소의 @value는 다음의 표에 특정된 VRD 파라미터에 대한 쉼표로 구분된 리스트이다.
Figure pct00001
실시예에서, (예를 들면, ISO 베이스 미디어 파일 포맷을 따르는) 파일 및/또는 MPD의 VR-특정 설명자에서의 투영 및 맵핑 메타데이터는, 다음의 것들 중 하나 이상을 포함한다: i) 투영된 프레임의 VR 투영 포맷, ii) 전역적 좌표계에서 투영된 프레임에 대응하는 기하학적 구조의 배향, iii) 지역별 맵핑 정보, iv) 지역별 품질 순위.
실시예에서, 가상 현실 비디오 설명자(VRD)는 다음과 같이 특정된다. VRD 방식은 특정한 @schemeIdUri 값을 갖는 SupplementalProperty 및/또는 EssentialProperty 설명자를 사용한다. 투영-인식 디스플레이 프로세싱 없이 기존의 2차원 디스플레이에 디코딩된 비디오 콘텐츠를 디스플레이하는 것이 바람직하지 않은 경우에 EssentialProperty 설명자가 사용되어야 한다. VR 비디오 SupplementalProperty 또는 EssentialProperty 설명자는 AdaptationSet, Representation 또는 SubRepresentation에 존재할 수 있다. VRD 방식을 사용하는 SupplementalProperty 또는 EssentialProperty 요소의 @value는 다음의 표에 특정된 VRD 파라미터에 대한 값들의 쉼표로 구분된 리스트이다.
Figure pct00002
실시예에서, SRD 설명자는 다음과 같이 확장된다: SRD 설명자는 표현 레벨에서도 허용된다. 다수의 SRD 설명자는 동일한 표현 및 서브표현 요소에서 허용된다. 동일한 컨테이너 요소 내의 다수의 SRD 설명자는, 예를 들어 투영된 프레임 내의 여러 영역들을 표시하기 위해 SRD 설명자를 사용하고, 영역들의 적어도 일부가 다른 것들에 비해 상이한 품질 순위를 갖도록 표시될 때에 유용하다. SRD 설명자의 구문 및 의미는 상기한 바와 같을 수 있다. 그러나, 존재하고 있는 값을 갖는 동일한 컨테이너 요소에 또 다른 SRD 설명자가 있으면, object_x, object_y, object_width 및 object_height는 선택적으로 정의될 수 있다. object_x, object_y, object_width 및 object_height가 없으면, 각각의 영역은 동일한 레벨의 다른 특정된 영역을 제외한 투영된 프레임으로서 정의된다. quality_ranking 파라미터는 SRD에서, 예를 들어 마지막 파라미터로서, 다음과 같이 정의될 수 있다.
Figure pct00003
본 발명의 실시예의 일부 구현예는, ISO/IEC 23009-1에서 기술되고 다른 경우에는 제시되는 것들을 포함하지만 이로 한정되지 않는, DASH 이벤트를 포함하는 환경에서 고려 및/또는 발생한다.
DASH 클라이언트 또는 애플리케이션으로 비주기적인 정보를 시그널링하기 위해 DASH 이벤트가 MPD에서 또는 표현 내에서 제공될 수 있음을 이해할 것이다. 각 이벤트가 특정 미디어 프리젠테이션 시간에서 시작되고 일반적으로 지속 기간을 갖는다는 점에서, 이벤트들은 시간이 정해진다. 이벤트들은 DASH 특정 시그널링 또는 애플리케이션-특정 이벤트들을 포함한다. 후자의 경우, 적절한 방식 식별자는 애플리케이션을 식별하여 DASH 클라이언트가 그 이벤트를 적절한 애플리케이션에게 전달할 수 있다.
일부 구현예에서, 동일한 타입의 이벤트들은 이벤트 스트림에서 클러스터링된다. 그렇게 하면 DASH 클라이언트는 관심 있는 이벤트 스트림에 가입하고, 관련성이나 관심 없는 이벤트 스트림을 무시할 수 있다. 또한, 두 가지 방식의 시그널링 이벤트가 특정되어 있음을 이해할 것이다: MPD에서 시그널링되는 이벤트 및 세그먼트의 대역 내에서 시그널링되는 이벤트. 미디어 프리젠테이션 시간에 할당된 일련의 이벤트들은 구간(Period) 레벨의 MPD에서 제공될 수 있다. 동일한 타입의 이벤트들은 구간 요소 내의 EventStream 요소에 의해 특정되는 이벤트 스트림에서 요약된다. 통상, 시작 시간이 구간 경계 이후이거나 이벤트의 지속 기간이 구간 경계를 넘어서더라도, 이벤트들은 기간 종료시에 종료된다.
대부분의 DASH 기반 상황에서, EventStream 요소는, 방식을 식별하기 위한 URI를 제공하는 @schemeIdUri 속성, 및 선택적 속성 @value을 포함한다는 점에서, DASH 속성 설명자와 비슷한 방식으로 구성된다. 요소의 의미는 채택된 방식에 대해 특정된다. 방식을 식별하는 URI는 URN 또는 URL일 수 있다.
마찬가지로, 대부분의 DASH 기반 상황에서, 구간은 @schemeIdUri 속성의 동일한 값 및 @value 속성 값을 갖는 최대 하나의 EventStream 요소를 포함한다. 예컨대, 한 가지 타입의 모든 이벤트들은 하나의 이벤트 스트림에서 클러스터링될 수 있다. 이벤트 스트림들이 시한 이벤트들을 포함함에 따라, 구간 내에서 특정 미디어 프리젠테이션 시간에 이벤트들을 할당하기 위해 시간 스케일 속성 @timescale이 제공된다는 것을 이해할 것이다. 시한 이벤트들 자체는 이벤트 요소에 의해 기술된다.
DASH를 잘 아는 이들은 이하에 제공되어 있는 EventStream 요소 내의 속성들의 특정 의미를 알 것이다.
Figure pct00004
DASH를 잘 아는 이들은 이하에 제공되어 있는 Event 요소 내의 속성들의 특정 의미를 알 것이다.
Figure pct00005
DASH를 잘 아는 이들은 세그먼트의 일부로서 이벤트 메시지를 추가함으로써 이벤트 스트림이 표현과 다중화될 수 있음을 알 것이다. 이벤트 스트림은 선택된 표현에서, 하나(또는 여러 개의) 선택된 적응 세트에서 또는 모든 표현에서 존재할 수 있다. 예컨대, 하나의 가능한 구성은 오디오 적응 세트만이 대역내 이벤트를 포함할 수 있는 것이다. 하나의 표현보다 많은 것이 동일한 @schemeIdUri 및 동일한 @value를 갖는 이벤트 스트림을 운반하는 경우, 스트림은 의미적으로 동일하므로 하나의 표현의 프로세싱이면 충분하다.
DASH 환경에서, 표현에서 존재하는 대역내 이벤트 스트림은 적응 세트 또는 표현 레벨 상의 InbandEventStream 요소에 의해 표시된다. InbandEventStream 요소의 구문 및 의미는 상기한 바와 같이 EventStream 요소의 구문 및 의미와 동일할 수 있다. 하나의 표현은 다수의 대역내 이벤트 스트림을 포함할 수 있으며, 각각의 대역내 이벤트 스트림은 별도의 InbandEventStream 요소에 의해 표시된다.
DASH에서, 이벤트 메시지 박스('emsg')는 미디어 프리젠테이션 시간과 관련된 일반적인 이벤트에 대한 시그널링을 제공한다. 위의 MPD에서 정의된 이벤트의 경우와 동일한 의미가 적용되고, 이벤트 메시지 박스의 필드에 대한 의미는 이벤트 요소의 각 속성의 의미와 유사하다. ISO 베이스 미디어 파일 포맷(ISOBMFF)으로 캡슐화되었으면 미디어 세그먼트는 하나 이상의 이벤트 메시지('emsg') 박스를 포함할 수 있다. 존재하는 경우, 임의의 'emsg' 박스가 임의의 'moof' 박스 앞에 배치된다. 이벤트 메시지 박스의 구문이 다음과 같이 특정될 수 있음을 이해할 것이다.
Figure pct00006
본 발명의 실시예가 구현되는 정확한 프로토콜 및/또는 환경에 관계없이, 시청자 및/또는 콘텐츠 생성자의 기대 및/또는 요구 사항, 및 시청자 및/또는 시청자의 디스플레이의 잠재적인 오정렬 및 시청자에게 제시된 콘텐츠의 배향을 만족시키는 품질 수준으로 콘텐츠를 제시해야 하는 필요성으로부터 여러 기술적 문제점들이 발생한다.
VR 콘텐츠에 대한 초기 관찰 배향 또는 초기 뷰포트를 시그널링하는 능력은 바람직한 특징이므로, 콘텐츠 저자의 선호도는 VR 재생 세션의 시작시에 준수된다. 초기 관찰 배향 또는 초기 뷰포트는 VR 프리젠테이션의 시작 부분뿐만 아니라 임의의 랜덤 액세스 포인트 또는 VR 프리젠테이션의 임의의 포인트에도 할당될 수 있다. 그러나, 초기 관찰 배향 또는 초기 뷰포트 시그널링의 "강도"를 나타내는 능력에 대해서 필요성이 존재한다. 예컨대, 시청자가 콘텐츠의 일부를 먼저 보고서 콘텐츠의 또 다른 부분을 보려고 탐색할 때, (1) 사용자의 머리 배향(또는 보다 일반적으로는 콘텐츠를 시청하기 위한 사용자의 이전 배향)을 사용하여 탐색 후의 콘텐츠 재생을 계속할지, 또는 (2) 시그널링된 초기 시청 배향 또는 뷰포트가 적용되어야 하는지를 콘텐츠 작성자/저자가 제어할 수 있게 하기 위한 필요성이 존재한다.
전자는, 예를 들어 실제 장면 컷이 없는 고정형 VR 카메라 또는 카메라 장치로 콘텐츠가 생성될 때에, 또는 이전 시청 위치와 탐색 위치 간에 장면 컷이 없었던 경우에 유리하게 사용될 수 있다. 후자는, 예를 들어 카메라의 위치가 변경되거나 이전 시청 위치와 탐색 위치 간에 장면이 있었던 경우에, 또는 이전에 동일한 비디오의 콘텐츠가 시청되지 않았을 때에 유리하게 사용될 수 있다. 또한, 프리젠테이션의 일부 포인트(예를 들면, 장면 컷 등)는 헤드 장착형 디스플레이의 초기 배향이 무엇이었던지에 관계없이 콘텐츠 저자가 관찰 배향을 선택하고자 하는 것으로 될 수 있다.
게다가, DASH에서, 클라이언트가 올바른 적응 세트 및 표현으로부터 (서브)세그먼트를 요청할 수 있도록 초기 관찰 설정 시그널링이 DASH 클라이언트에게 있어서 이용 가능해야 한다. 적응 세트의 각 표현이 상이한 품질의 구성 뷰포트와 동일한 뷰포트를 커버하는 경우, 시그널링은 DASH 클라이언트가 초기 관찰 배향 또는 초기 뷰포트와 정확히 또는 대략적으로 일치하는 양질의 구성 뷰포트를 갖는 표현을 선택할 수 있게 해야 한다. 적응 세트의 각 표현이 일반적으로 구성 뷰포트 없이 비교적 좁은 동일한 뷰포트를 커버하고 또한 각각이 동일한 무지향성 콘텐츠의 상이한 뷰포트를 포함하고 있는 다수의 적응 세트가 존재하는 경우에, 시그널링은 DASH 클라이언트가 초기 관찰 배향 또는 초기 뷰포트와 정확히 또는 대략적으로 일치하는 적응 세트를 선택하고 이후에 그 적응 세트로부터 양질의 표현을 선택할 수 있게 해야 한다.
현재 기술은 이러한 기술적 요구를 해결한 것으로 보이지 않는다. 예컨대, MPEG M38689(이는 참조로서 본 명세서에 통합되어 있음)는 다음과 같이 DASH MPD에서의 초기 뷰포트 시그널링을 논의한다:
초기 시점을 가지며 모든 각도 위치가 계산될 수 있는 원점 축을 정의하기 위해, 중심점이 위치된 적응 세트에 대한 새로운 보완적인 특성을 도입한다. 중심점의 위치는 그것이 위치되어 있는 격자형 셀의 상부 좌측 모서리로부터 픽셀 단위로 부여된다.
이러한 보완적인 속성은 urn(예를 들면: um:mpeg:dash:vrorigin:2016) 및 x 및 y 좌표를 픽셀 단위로 포함하는 값(예를 들면: "640,360")으로 정의된다.
이와 달리 VR 원점 보완 특성이 전체 공간적 객체와 관련된 적응 세트 상에서 설정될 수 있음을 주의한다. 이는 그럼에도 불구하고 (VR 원점과 전체 공간적 객체의 상부 좌측 모서리 간의 모든 셀의 폭 및 깊이가 합산되어야 하기 때문에) MPD 저작시에 더 많은 계산이 필요하다.
MPD 설명자가 시변적 또는 동적 엔티티가 아니라는 점에서, MPD 설명자가 정적임을 이해할 것이다. 따라서, M38689는 초기 뷰포트를 시간의 함수로서 또는 SAP마다 표시할 수 없다. 따라서, M38689는 DASH 클라이언트가 적절한 적응 세트 및/또는 표현을 선택하는 것을 돕지 않는다.
도 1은 본 발명의 실시예에 따른 구현예가 수행될 수 있는 예시적인 시스템 환경(100)을 도시한다. 환경(100)의 도시는 요소 또는 시스템의 임의의 특정 구성에 대해 본 명세서에서 설명 및 고려된 실시예를 제한하거나 다른 경우에는 국한시키도록 의도되지 않으며, 본 발명의 실시예와 관련해서 사용될 수 있는 구성 및 시스템의 세트에 대한 임의의 다른 구성 또는 시스템을 배제하도록 의도되지도 않는다. 또한, 도 1 및 여기서 개시된 환경(100)은 본 명세서에서 개시 및 고려된 방법, 장치, 및 컴퓨터 프로그램 제품의 특징, 측면, 및 용도의 일부를 가능하게 하기 위한 예시적인 근거 및 상황을 제공하기 위해 단지 제공된다. 도 1에 제시된 다수의 측면 및 컴포넌트가 구분된 별개의 요소로서 도시되어 있지만, 측면 및/또는 컴포넌트를 조합, 생략, 및/또는 추가하는 구성을 포함해서 다른 구성이 본 명세서에서 설명된 방법, 장치, 및 컴퓨터 프로그램과 관련하여 사용될 수 있음을 이해할 것이다.
도 1에 도시된 바와 같이, 시스템 환경(100)은 적어도 하나의 카메라(102)를 포함한다. 시스템 환경(100)의 다수의 구현예는, Nokia의 OZO 시스템과 같은 가상 현실 콘텐츠의 생산에 사용되는 360° 비디오 이미지를 캡처하기에 적합한 하나 이상의 카메라, 및/또는 360° 비디오 이미지 및/또는 다른 파노라마 뷰를 생성하는 데 사용될 수 있는 다른 카메라 또는 카메라 어레이의 사용을 고려한다. 또한, 도 1은 데이터베이스, 다른 디바이스 및/또는 이전에 캡처되거나 그와 달리 생성된 시청각 콘텐츠의 전송 및/또는 액세스를 허용하는 다른 시스템일 수 있는 하나 이상의 미디어 소스(104)의 존재를 고려한다.
도 1에 도시된 바와 같이, 카메라(102) 및 미디어 소스(104)는 360° 비디오 이미지와 같은 이미지 및/또는 다른 시청각 콘텐츠를 데이터 스트림으로서 전송 가능하게 할 수 있고 및/또는 전송하도록 구성될 수 있다. 이러한 전송은 카메라로부터 하나 이상의 디바이스로 이미지 데이터를 전송하기에 적합한 임의의 방안 및/또는 프로토콜에 따라 달성될 수 있다. 일부 구현예에서, 이미지 데이터의 전송은 무선으로 또는 유선 접속을 통해 실시간으로 또는 근실시간으로 비디오 이미지를 수신 및/또는 처리하도록 구성된 하나 이상의 장치로 전송된다.
본 명세서에서의 일부 구현예는, 주의를 기울여야 하는 이미지 내에서 가장 돌출되는 포인트 또는 영역으로 간주되는 돌출 포인트 또는 영역, 예를 들어 360° 이미지에서의 포인트 또는 영역을 고려한다. 본 명세서에서의 일부 구현예는 콘텐츠 제작자 및/또는 한 명 이상의 시청자가 관심을 가질 수 있는 이미지 요소로 간주되는 하나 이상의 관심 포인트 또는 관심 영역 이미지 내에서의 존재성을 고려한다. 다수의 경우에, 이미지의 돌출 포인트는 관심 포인트로 될 것이며, 이미지의 돌출 영역은 각각 관심 영역으로 될 것이다. 또한, 이미지의 돌출 포인트 또는 영역은, 시스템 또는 시스템 요소에 의해 및/또는 디렉터와 같은 외부 행위자에 의해 자동으로 변경되는 것과 같이 변화하거나 및/또는 변경될 수 있다. 일부 이러한 경우에, 돌출 포인트 또는 영역은 하나의 관심 포인트 또는 관심 영역으로부터 다른 것으로 각각 전환될 수 있다. 돌출 포인트라는 용어를 참조하여 이하에서 실시예를 설명하지만, 이러한 실시예 및 다른 실시예가 돌출 포인트 대신에 사용되는 돌출 영역을 동일하게 적용할 수 있음을 이해할 것이다.
도 1에 도시된 바와 같이, 카메라(102) 및 미디어 소스(104)는 그들 각각의 비디오 이미지 스트림을 비디오 프로세서(106)에 전송할 수 있다. 비디오 프로세서(106)는 독립형 디바이스로서 및/또는 다른 디바이스 또는 컴포넌트에 통합될 수 있는 디바이스로서 구현될 수 있는 임의의 부류의 디바이스를 나타낸다. 도 1에 도시된 바와 같이, 비디오 프로세서(106)는 카메라(102) 및 미디어 소스(104)의 각각으로부터 이미지 데이터 스트림 및 관련 정보를 수신하도록 구성된다. 일부 구현예에서, 비디오 프로세서(106)는 또한 비디오 스트림에서의 하나 이상의 돌출 포인트에 대한 선택 및/또는 식별을 허용하도록 구성된다. 일부 실시예에서, 비디오 프로세서(106)는 비디오 스트림 또는 그 비디오 스트림과 관련된 별도의 스트림(또는 미디어 프리젠테이션 설명과 같은 시그널링 구조)에 그 돌출 포인트를 나타내는 정보를 끼워 넣는다. 일부 실시예에서, 비디오 프로세서(106)는 그 돌출 포인트를 재생 디바이스의 의도된 행위와 관련된 표시로 간주하고, 재생 디바이스의 의도된 행위를 결정하고, 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호를 생성시킨다. 상기 제어 신호는 비디오 스트림에 포함되거나 비디오 스트림의 설명에 포함될 수 있다.
디렉터(108)는 비디오 프로세서(106)의 선택적인 오퍼레이터로서 도시되어 있고, 일부 구현예에서는 이미지 데이터 스트림의 생성 및/또는 스트리밍시에 하나 이상의 이미지 데이터 스트림을 모니터링 및/또는 제어할 수 있다. 일부 실시예에서, 디렉터(108)는 돌출 포인트를 나타내는 정보가 비디오 스트림의 특정 위치에 삽입되게 한다. 일부 실시예에서, 디렉터(108)는 재생 디바이스의 의도된 행위를 결정하고, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호를 생성시킨다. 상기 제어 신호는 예를 들어 비디오 스트림에 포함되거나 비디오 스트림의 설명에 포함될 수 있다. 디렉터(108)는 비디오 스트림에 제시된 콘텐츠, 및 작품 내의 주제, 배경 요소, 및 다른 대상의 관련 배열에 관한 창의적인 결정을 부가적으로 또는 대안적으로 행할 수 있다. 상기한 바와 같이, 디렉터(108)는 환경(100)에서 선택적이며, 하나 이상의 돌출 포인트가 비디오 프로세서(106)에 의해, 몇몇의 다른 디바이스의 동작에 의해, 또는 다른 경우에는 디렉터 또는 다른 엔티티의 존재 또는 이들에 의한 동작 없이 비디오 스트림에 삽입되는 경우에 구현예가 가능하다.
도 1에 도시된 바와 같이, 비디오 프로세서(106)는 네트워크(110)를 통해 시청각 콘텐츠를 전송한다. 실제 전송 장치가 비디오 프로세서 엔티티와 상이할 수 있지만, 이들 엔티티가 동작 가능하게 연결되고 그에 따라 단일 비디오 프로세서(106)로서 도시됨을 이해할 것이다. 일부 실시예에서 전송 장치는 예를 들어 HTTP 서버(예를 들어, 웹 서버, 등)일 수 있다. 네트워크(110)는 비디오 프로세서(106)와 같은 하나 이상의 디바이스로부터 가상 현실 헤드셋(114)과 같은 시청 디바이스로 직접적으로 및/또는 간접적으로 360° 비디오 및 관련 배향 정보를 전송하기에 적합한 임의의 네트워크일 수 있다. 시청 디바이스가 도 1에서 단일 디바이스로서 도시되어 있지만, 시청 디바이스가 동작 가능하게 연결된 여러 디바이스를 일반적으로 포함할 수 있음을 이해할 것이다. 예컨대, 가상 현실 헤드셋은 네트워크(110)를 통해 시청각 콘텐츠를 수신하는 컴퓨터에 연결될 수 있다. 또 다른 예에서, 가상 현실 헤드셋은 헤드셋에 연결되는 스마트폰을 그 디스플레이 디바이스로서 사용하고, 네트워크(110)를 통해 시청각 콘텐츠를 수신한다. 일부 구현예에서, 네트워크(110)는 공용 인터넷을 포함 및/또는 통합한다.
또한, 도 1은 가상 현실 헤드셋(114)과 같은 시청 디바이스와 관련된 사용자(112)를 도시한다. 일반적으로, 가상 현실 헤드셋(114)은 (대응하는 배향 정보에 따라) 하나 이상의 360° 이미지 데이터 스트림과 같은 하나 이상의 데이터 스트림들을 수신하고, 사용자(112)에게 디스플레이될 수 있는 가시적 이미지를 렌더링할 수 있다. 일부 구현예에서, 가상 현실 헤드셋(114)은 또한 사용자(112)가 자신의 머리를 돌린 각도 및/또는 정도와 같은 사용자(112)에 대한 위치 정보, 및 사용자(112) 또는 사용자(112)의 머리의 움직임에 대한 다른 정보를 확인할 수 있다. 도 1은 사용자(112)가 가상 현실 헤드셋(114)을 통해 콘텐츠를 보는 것으로 도시하고 있지만, 사용자는 사용자에게 전송된 비디오의 전부 또는 일부를 디스플레이하도록 구성된 임의의 시청 시스템을 통해 콘텐츠를 볼 수 있다. 예컨대, 사용자는 하나 이상의 모니터, 모바일 디바이스, 및/또는 다른 핸드헬드 또는 데스크탑 디스플레이를 사용하여 콘텐츠를 볼 수 있다. 디스플레이가 임의의 단일 시점에서 360° 콘텐츠의 일부를 디스플레이하도록 구성되는 경우, 사용자(112)는 콘텐츠의 어느 부분이 디스플레이되는지를 제어할 수 있다. 예컨대, 사용자(112)는 예를 들어 키보드, 조이스틱, 마우스 또는 임의의 다른 입력 주변 장치를 사용함으로써 또는 스마트폰과 같은 디스플레이 디바이스를 회전시키거나 돌림으로써 시청 방향을 제어할 수 있다.
실시예에서, VR 비디오 클립의 사용자 시청 행위에 대한 통계치가 수집된다. 예컨대, 플레이어는 시청 방향 또는 배향(예를 들면, 클립을 재생하기 시작할 때의 초기 배향에 대한 가상 현실 헤드셋(114)의 배향)을, 클립의 미디어 시간의 함수로서, 통계치를 수집하는 서버에 보고할 수 있다. 보고된 시청 방향을 수집함으로써, 가장 가능성 있는 시청 방향(MPVD)이 클립의 미디어 시간의 함수로서 형성될 수 있다. MPVD는 사용자에게 렌더링될 가능성이 통계적으로 가장 높은 방향 또는 영역을 나타내는 것으로 이해될 수 있다. MPVD는 창의적 결정을 지원하기 위한 입력으로서 디렉터(108)에 제공될 수 있다. 이와 달리, MPVD는 비디오 스트림의 특정 위치에 삽입되는 돌출 포인트로서 비디오 프로세서(106)에 의해 사용될 수 있다. 이와 달리, 비디오 프로세서(106)는 재생 디바이스의 의도된 행위와 관련된 표시로서 MPVD를 평가하고, 재생 디바이스의 의도된 행위를 결정하고, 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호가 생성되게 한다. 이 실시예는 사용자들의 초기 세트의 시청 행위가 돌출 포인트의 선택을 돕거나 결정할 수 있게 함으로써 후속 사용자들의 시청 경험을 개선할 수 있다.
시청각 콘텐츠의 일부와 관련된 초기 관찰 설정 및 그 초기 관찰 설정과 관련된 조건 세트에 적어도 부분적으로 기초하여, 시청각 콘텐츠는 시청자에게 콘텐츠를 렌더링할 때에 콘텐츠 작성자에 의해 행해진 창의적 선택 및 사용자의 위치를 고려하는 방식으로 렌더링될 수 있다. 이와 관련하여, 시청각 콘텐츠에 대한 관찰 포인트 및 배향 선택은 도 2에 도시된 바와 같은 장치(200)에 의해 제어될 수 있다. 장치는 임의의 카메라(102), 미디어 소스(104), 또는 비디오 프로세서(106)와 같이 도 1과 관련해서 논의된 다른 디바이스들 중 임의의 디바이스, 및/또는 네트워크(110)와 통합되거나 다른 경우에 네트워크(110)와 연관될 수 있는 디바이스에 의해 구현될 수 있다. 이와 달리, 장치(20)는 이러한 디바이스의 외부에 있는 또 다른 컴퓨팅 디바이스에 의해 구현될 수 있다. 예컨대, 장치는 퍼스널 컴퓨터, 컴퓨터 워크스테이션, 서버 등에 의해, 또는 예를 들어 스마트폰, 태블릿 컴퓨터, 비디오 게임 플레이어, 등의 모바일 단말과 같은 다수의 모바일 컴퓨팅 디바이스 중 임의의 디바이스에 의해 구현될 수 있다. 이와 달리, 장치는 가상 현실 헤드셋(114)과 같은 헤드 장착형 디스플레이 등의 가상 현실 시스템에 의해 구현될 수 있다.
장치(200)가 구현되는 방식에 관계없이, 실시예의 장치는 프로세서(202) 및 메모리 디바이스(204), 및 선택적으로는 사용자 인터페이스(206) 및/또는 통신 인터페이스(208)를 포함하거나 그렇지 않으면 그것들과 통신하도록 구성된다. 일부 실시예에서, 프로세서(및/또는 코-프로세서 또는 프로세서를 돕거나 그렇지 않은 경우에 그것과 관련된 임의의 다른 프로세싱 회로)는 장치의 컴포넌트들 사이에서 정보를 전달하기 위한 버스를 통해 메모리 디바이스와 통신할 수 있다. 메모리 디바이스는 비일시적일 수 있으며, 또한 예를 들어 하나 이상의 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 즉, 예를 들어, 메모리 디바이스는 머신(예를 들면, 프로세서와 같은 컴퓨팅 디바이스)에 의해 검색될 수 있는 데이터(예를 들면, 비트)를 저장하도록 구성된 게이트들을 포함하는 전자 저장 디바이스(예를 들면, 컴퓨터 판독 가능 저장 매체)일 수 있다. 메모리 디바이스는 본 발명의 실시예에 따라 장치가 다양한 기능을 수행할 수 있게 하는 정보, 데이터, 콘텐츠, 애플리케이션, 인스트럭션 등을 저장하도록 구성될 수 있다. 예컨대, 메모리 디바이스는 프로세서에 의한 프로세싱을 위해 입력 데이터를 버퍼링하도록 구성될 수 있다. 부가적으로 또는 대안적으로, 메모리 디바이스는 프로세서에 의한 실행을 위해 인스트럭션을 저장하도록 구성될 수 있다.
상기한 바와 같이, 장치(200)는 컴퓨팅 디바이스에 의해 구현될 수 있다. 그러나, 일부 실시예에서, 장치는 칩 또는 칩 세트로서 구현될 수 있다. 즉, 장치는 구조 어셈블리(예를 들면, 베이스 보드) 상에서의 재료, 컴포넌트 및/또는 와이어를 포함한 하나 이상의 물리적 패키지(예를 들면, 칩)를 포함할 수 있다. 구조적 어셈블리는 그 안에 포함된 컴포넌트 회로에 대해 물리적 강도, 크기 관리 및/또는 전기적 상호 작용의 제한을 제공할 수 있다. 따라서, 장치는 일부 경우에 단일 칩 상에서 또는 단일 "SoC(system on chip)"로서 본 발명의 실시예를 구현하도록 구성될 수 있다. 이와 같이, 일부 경우에, 칩 또는 칩셋은 본 명세서에서 설명된 기능들을 제공하기 위한 하나 이상의 동작을 수행하는 수단을 구성할 수 있다.
프로세서(202)는 다수의 상이한 방식으로 구현될 수 있다. 예컨대, 프로세서는 코-프로세서, 마이크로 프로세서, 제어기, 디지털 신호 프로세서(DSP), 부수적인 DSP를 갖거나 또는 갖지 않는 프로세싱 요소, 또는 예를 들어 ASIC, FPGA, MCU(microcontroller unit), 하드웨어 가속기, 특수 목적 컴퓨터 칩, 등과 같은 집적 회로를 포함하는 다수의 다른 프로세싱 회로와 같은 다수의 하드웨어 프로세싱 수단 중 하나 이상의 하드웨어 프로세싱 수단으로서 구현될 수 있다. 이와 같이, 일부 실시예에서, 프로세서는 독립적으로 수행하도록 구성된 하나 이상의 프로세싱 코어를 포함할 수 있다. 멀티-코어 프로세서는 단일의 물리적 패키지 내에서 멀티-프로세싱을 가능하게 할 수 있다. 부가적으로 또는 대안적으로, 프로세서는 인스트럭션, 파이프 라이닝(pipelining) 및/또는 다중 스레딩(multithreading)의 독립적인 실행을 가능하게 하기 위해 버스를 통해 나란히 구성된 하나 이상의 프로세서를 포함할 수 있다.
실시예에서, 프로세서(202)는 메모리 장치(204)에 저장되거나 그렇지 않으면 프로세서에 액세스 가능한 인스트럭션을 실행하도록 구성될 수 있다. 대안적으로 또는 부가적으로, 프로세서는 하드 코딩된 기능을 실행하도록 구성될 수 있다. 이와 같이, 하드웨어 또는 소프트웨어 방법에 의해 혹은 그 조합에 의해 구성되든지 간에, 프로세서는 구성시에 본 발명의 실시예에 따라 동작을 수행할 수 있는 엔티티(예를 들면, 물리적으로 회로로 구현됨)를 나타낼 수 있다. 따라서, 예를 들면, 프로세서가 ASIC, FPGA, 등으로 구현될 때, 프로세서는 본 명세서에서 설명되는 동작들을 수행하기 위해 특별히 구성된 하드웨어일 수 있다. 이와 달리, 또 다른 예로서, 프로세서가 소프트웨어 인스트럭션의 실행기로서 구현되는 경우, 인스트럭션은 구체적으로 인스트럭션이 실행될 때에 본 명세서에서 설명되는 알고리즘 및/또는 동작을 수행하도록 프로세서를 구성할 수 있다. 그러나, 일부 경우에, 프로세서는 본 명세서에서 설명되는 알고리즘 및 동작을 인스트럭션에 의해 수행하는 프로세서의 추가적인 구성에 의해 본 발명의 실시예를 사용하도록 구성된 특정 디바이스(예를 들면, 패스-쓰루(pass-through) 디스플레이 또는 모바일 단말)의 프로세서일 수 있다. 프로세서는 무엇보다도 프로세서의 동작을 지원하도록 구성된 클럭, ALU(arithmetic logic unit) 및 논리 게이트를 포함할 수 있다.
일부 실시예에서, 장치(200)는 사용자에게 출력을 제공하고, 일부 실시예에서는 사용자 입력의 표시를 수신하기 위해, 차례로 프로세서(202)와 통신할 수 있는 사용자 인터페이스(206)를 선택적으로 포함할 수 있다. 이와 같이, 사용자 인터페이스는 디스플레이를 포함할 수 있고, 일부 실시예에서는 키보드, 마우스, 조이스틱, 터치 스크린, 터치 영역, 소프트 키, 마이크로폰, 스피커, 또는 다른 입력/출력 메카니즘을 포함할 수도 있다. 대안적으로 또는 부가적으로, 프로세서는 디스플레이 및 일부 실시예에서는 스피커, 링거, 마이크로폰 등과 같은 하나 이상의 사용자 인터페이스 요소의 적어도 일부 기능을 제어하도록 구성된 사용자 인터페이스 회로를 포함할 수 있다. 프로세서 및/또는 그 프로세서를 포함하는 사용자 인터페이스 회로는 프로세서에 액세스 가능한 메모리(예를 들면, 메모리 디바이스(204) 등) 상에 저장된 컴퓨터 프로그램 인스트럭션(예를 들면, 소프트웨어 및/또는 펌웨어)을 통해 하나 이상의 사용자 인터페이스 요소의 하나 이상의 기능을 제어하도록 구성될 수 있다.
장치(200)는 통신 인터페이스(208)를 선택적으로 포함할 수 있다. 통신 인터페이스는, 장치와 통신하는 임의의 다른 디바이스 또는 모듈 및/또는 네트워크로부터/로 데이터를 수신 및/또는 송신하도록 구성된 하드웨어 또는 하드웨어 및 소프트웨어의 조합으로 구현된 디바이스 또는 회로와 같은 임의의 수단일 수 있다. 이와 관련하여, 통신 인터페이스는 예를 들어 안테나(또는 다수의 안테나) 및 지원용 하드웨어 및/또는 무선 통신 네트워크와의 통신을 가능하게 하는 지원용 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 부가적으로 또는 대안적으로, 통신 인터페이스는 안테나(들)를 통해 신호 전송을 발생시키거나 안테나(들)를 통해 수신된 신호의 수신을 처리하기 위해 안테나(들)와 상호 작용하는 회로를 포함할 수 있다. 일부 환경에서, 통신 인터페이스는 유선 통신을 대안적으로 또는 또한 지원할 수 있다. 이와 같이, 예를 들면, 통신 인터페이스는 케이블, 디지털 가입자 라인(DSL; digital subscriber line), 범용 직렬 버스(USB) 또는 다른 메카니즘을 통해 통신을 지원하기 위한 통신 모뎀 및/또는 다른 하드웨어/소프트웨어를 포함할 수 있다.
도 3은 본 발명의 실시예의 구현이 도시될 수 있는 비디오 프리젠테이션(300)을 나타낸다. 도 3에 도시된 바와 같이, 비디오 프리젠테이션(300)은 2개의 상이한 장면(316, 318)으로부터 시작하는 콘텐츠의 연결(a concatenation)로서 형성되는 VR 비디오 프리젠테이션이다. 한 장면 내의 픽처들은 일반적으로 유사한 콘텐츠를 갖고, 또한 통상 연속적인 방식으로 동일한 카메라에 의해 캡처된다. 2개의 상이한 장면의 픽처들은 통상 2개의 상이한 카메라에 의해 캡처되거나 또는 시간적으로 불연속적인 방식이지만 동일한 카메라에 의해 캡처된다. 도 3에 도시된 바와 같이, 비디오 프리젠테이션(300)에 장면 컷(320)이 존재한다. 또한 예시적인 비디오 프리젠테이션(300)에 도시된 바와 같이, 비록 실시예가 비세그먼트화된 파일에도 동일하게 적용되지만, 비디오 프리젠테이션(300)은 전송을 위해 (서브)세그먼트(302-314)로 분할된다. 도 3에 도시된 예에서, 각 (서브)세그먼트(302-314)가 (DASH 및 ISOBMFF에서의 SAP와 같은) 랜덤 액세스 포인트로 시작한다고 추가로 가정한다. 각 SAP에 있어서, 연속 재생시에 또한 각각의 (서브)세그먼트(302-314)로의 랜덤 액세스시에, 의도된 플레이어 행위의 표시와 함께 초기 관찰 설정이 (예를 들어, 파일 또는 전송 캡슐화기에 의해) 표시된다.
도 3에 도시된 바와 같이, 처음 4개의 (서브)세그먼트(302, 304, 306, 308)는 동일한 장면 또는 카메라로부터의 것이다. 이들 (서브)세그먼트(302-308)에 있어서, 예를 들면, 초기 관찰 설정이 랜덤 액세스시에는 조건부로 적용되고 연속 재생에서는 적용되지 않는다는 것을 표시할 수 있다. 이러한 표시는 다음의 결과를 갖는다.
(1) 다른 (서브)세그먼트가 초반에 처리되지 않았으며 4개의 (서브)세그먼트(302-308) 중 임의의 것으로부터 처리가 시작되면, 그 초기의 관찰 설정은 렌더링을 시작할 때에 사용된다. 즉, 헤드 장착형 디스플레이의 배향이 재생의 시작 부분에 있던지에 관계없이, 초기 관찰이 사용된다; (2) 관찰 설정이 리셋되어 있지지 않은 범위 내에 4개의 (서브)세그먼트(302-308)가 있음을 추가로 표시할 수 있다. 이러한 표시는 통상적으로 예를 들어 고정형 카메라로 캡처되는 콘텐츠에 적합하다. 이들 4개의 (서브)세그먼트(302-308) 중 제 1 (서브)세그먼트가 이전에 처리되었고 적어도 부분적으로 디스플레이되었으며, 이어서 제 2 (서브)세그먼트가 랜덤으로 액세스되어 표시되었으면, 제 2 (서브)세그먼트의 초기 관찰 설정은 준수되지 않고, 제 1 (서브)세그먼트의 초기 관찰 설정에 대한 헤드 장착형 디스플레이의 배향이 렌더링시에 사용된다.
도 3에 도시된 바와 같이, 제 5 (서브)세그먼트(310)는 이전의 (서브)세그먼트(302-308)와 비교해서 상이한 장면 또는 카메라로부터의 비디오 콘텐츠를 포함한다. 제 5 (서브)세그먼트(310)의 초기 관찰 설정이 연속 재생 및 랜덤 액세스의 양쪽에서 무조건 적용된다는 것을 표시할 수 있다. 즉, 제 5 (서브)세그먼트(310)가 연속 재생시(즉, 예를 들면 제 4 (서브)세그먼트(308)를 완전히 처리한 후)에 또는 랜덤 액세스 후에 액세스되었는지의 여부에 관계없이 항상 동일한 관찰 배향의 콘텐츠를 시청자에게 표시할 것이다.
도 3에 도시된 바와 같이, 제 6 및 제 7 (서브)세그먼트(312, 314)는 제 5 (서브)세그먼트(310)와 동일한 장면 또는 카메라로부터의 것이다. 제 6 및 제 7 (서브)세그먼트(312, 314)에 있어서, 예를 들면 초기 관찰 설정이 랜덤 액세스시에는 무조건 적용되고 연속 재생시에는 적용되지 않는다는 것을 표시할 수 있다. 이러한 표시는 통상 카메라가 움직이는 콘텐츠에 적합하므로, 이전의 (서브)세그먼트의 초기 관찰 설정과 관련된 관찰 배향을 유지하는 것은, 예를 들면 관심 영역이 탐색 후에 누락될 수 있기 때문에, 콘텐츠 작성자의 의견에서 바람직하지 않을 수 있다.
일부 예에서, 전역적인 배향 오프셋(들)은 초기 관찰 배향 정보에 포함되므로, 요청되는 적응 세트, 표현, 또는 서브-표현을 선택할 때에 별도로 고려될 필요가 없다. 일부 예에서, 전역적인 배향 오프셋(들)은 초기 관찰 방향 정보와 별개이므로, 요청되는 적응 세트, 표현, 또는 서브-표현을 선택할 때에 공동으로 고려될 필요가 있다.
또한, 일부 구현예는 리셋 범위 또는 유지 범위 또는 이들 모두를 고려한다. 이러한 일부 구현예에서, 콘텐츠 생성자는 사용자가 예를 들어 (1) 항상 특정 관심 영역을 보는 것, (2) 머리 움직임을 정확하게 따르는 공간적 및 시간적으로 연속적인 경험을 갖는 것을 제어하길 원할 수 있다. 일부 상황에서, 관심 영역이 있는 부분과는 완전히 반대되는 배향으로 사용자가 엿보는 경우와 같이 이들 2개의 목표는 모순될 수 있다. 양쪽의 기능을 획득하기 위해, 초기 관찰 설정은 리셋 조건 및/또는 유지 조건을 수반할 수 있다. 리셋 범위는, 현재 시청 방향이 뷰포트 세트 내에 있을 때에, 관찰 설정의 리셋을 야기하는 뷰포트 세트로서 정의될 수 있다. 유지 범위는, 현재 시청 방향이 뷰포트 세트 내에 있을 때애, 관찰 설정을 리셋하기 보다는 현재 시청 방향을 유지하는 것을 야기하는 뷰포트 세트로서 정의될 수 있다.
하나의 이러한 구현예에서, 유지 범위 및/또는 리셋 범위는 각도 폭 및 높이를 기준으로 표시되거나 파싱된다. 예컨대, 유지 조건은 예를 들어 관심 영역의 수평 및 수직 시야를 포함할 수 있다. 렌더링된 뷰포트가 (관심 영역의 수평 및 수직 FOV, 및 초기 관찰 배향으로 표시된 바와 같이) 전체 관심 영역을 포함하면, 관찰 설정은 리셋되지 않는다. 그렇지 않으면, (예를 들면, 현재의 관찰 설정과 같은) 헤드 장착형 디스플레이의 이전 배향을 고려하지 않고서 관찰 설정이 리셋된다. 또 다른 구현예에서, 유지 범위 및/또는 리셋 범위는 특정 투영 및 특정 맵핑의 2D 이미지 면 내의 2차원 영역(예를 들면, 직사각형)을 기준으로 표시되거나 파싱된다.
일부 구현예는 다수의 관찰 포인트의 상황에서 고려 및/또는 발생된다. 일부 이러한 상황에서, VR 콘텐츠는 동일한 콘텐츠에 대해 다른 관찰 포인트를 제공하는 여러 개의 카메라로 생성될 수 있다. 예컨대, 무대 위의 하나 이상의 고정형 VR 카메라, 무대 위의 카메라맨이 들고 있는 하나 이상의 VR 카메라, 및/또는 움직일 수 있는 크레인에 부착된 하나 이상의 VR 카메라로 콘서트가 캡처될 수 있다. 초기 관찰 설정은 렌더링에 사용되는 초기 관찰 포인트의 선택을 포함할 수 있다. 사용자는 콘텐츠를 시청할 때에 하나의 관찰 포인트로부터 또 다른 관찰 포인트로 전환할 수 있는 가능성을 제공받을 수 있다. 일부 경우에, 카메라 장치가 사용되었을 때에, 관찰 포인트는 서로 근접하게 있을 수 있다. 실시예에서, 관찰 포인트의 유지 범위 또는 리셋 범위는 표시되거나 파싱된다. 예컨대, 소정의 인접한 관찰 포인트들 사이에서의 전환시에 초기 관찰 설정이 적용되지 않는다는 것을 표시할 수 있다(즉, 관찰 포인트의 유지 범위가 표시됨). DASH와 관련되는 구현예에서, 관찰 포인트는 예를 들어 DASH 사양에서 이미 정의된 Viewpoint 속성 설명자를 통해 식별될 수 있다. @schemeIdUri의 특정 값은 Viewpoint 속성 설명자 또는 임의의 다른 속성 설명자와 함께 사용되는 VR 관찰 포인트 표시에 대해 정의될 수 있다. @value는 관찰 포인트의 식별자를 전달하는 데 사용될 수 있다.
또한, 일부 구현예는 재생 모드 조건을 고려한다. 재생 모드 조건은 예를 들어 표준으로 사전 정의될 수 있거나, 혹은 예를 들어 비디오 스트림에서 비디오 프로세서(106)에 의해 또는 비디오 스트림의 설명에 의해 표시될 수 있다. 재생 모드 조건은 초기 관찰 설정이 적용되는 재생 모드 및/또는 초기 관찰 설정이 적용되지 않는 재생 모드를 표시할 수 있다. 재생 모드는 연속 재생, 연속 재생을 개시하기 위한 탐색 또는 랜덤 액세스, 예를 들어 인트라-코딩된 픽처들만이 재생되는 빨리 감기 재생, 예를 들어 인트라-코딩된 픽처들만이 재생되는 빨리 되감기 재생을 포함할 수 있지만 이로 제한되지는 않는다. 재생 모드 조건은 연속 재생을 개시하기 위한 탐색시에 관찰 설정이 리셋되지만 빨리 감기 또는 되감기 재생 등을 위해 리셋되지 않음, 또는 그 반대의 경우를 콘텐츠 저자가 표시하게 할 수 있다.
또한, 일부 구현예는 부가적인 시그널링 옵션을 고려한다. 하나의 이러한 구현예에서, 사용자-주도 선택적 렌더링을 위해 의도된 시한 시청각 콘텐츠를 제공하는 방안은: 구문 구조 내에서 초기 관찰 설정을 표시하는 것; 및 랜덤 액세스시에 초기 관찰 설정이 무조건 적용되면, 구문 구조에서 표시하는 것을 특징으로 할 수 있다. 또 다른 구현예에서, 사용자-주도 선택적 렌더링을 위해 의도된 시청각 콘텐츠에 액세스하는 방안은: 구문 구조로부터 초기 관찰 설정을 파싱하는 것; 및 랜덤 액세스시에 초기 관찰 설정이 무조건 적용되면, 구문 구조로부터 파싱하는 것을 특징으로 할 수 있다. 또 다른 구현예에서, 구문 구조는 SMIL 또는 HTML5 또는 내부에 포함된 프리젠테이션 정보(예를 들면, 캐스케이드 스타일 시트)와 같은 프리젠테이션 레이어에 포함되거나 그로부터 파싱될 수 있다. 실시예에서, 구문 구조는 HTML5와 같은 마크업 언어의 요소이다. 또 다른 구현예에서, 구문 구조는 DASH MPD 또는 SDP(Session Description Protocol)와 같은 프리젠테이션 설명 또는 스트리밍 매니페스트에 포함되거나 그로부터 파싱될 수 있다.
DASH와 관련된 또 다른 구현예에서, 구문 구조는 이벤트일 수 있다. 이벤트 및 그 이벤트를 포함하는 EventStream 요소는 예를 들어 다음과 같이 사용될 수 있다:
관찰 설정 식별자는 Event@id이다.
Event@messageData는 다음 중 하나 이상을 포함한다: 연속 재생시에 초기 관찰 설정이 적용되지 않을 때, 무조건 적용될 때, 또는 조건부로 적용될 때의 표시; 랜덤 액세스시에 초기 관찰 설정이 적용되지 않을 때, 무조건 적용될 때, 또는 조건부로 적용될 때의 표시; 초기 관찰 포인트의 표시; 및/또는 초기 관찰 배향의 표시.
EventStream@schemeIdUri에서의 특정 URI는 포함된 이벤트가 초기 관찰 설정에 관한 정보를 제공한다는 것을 식별한다.
이러한 구현예에서, Eventstream@value는 포함된 이벤트가 관련된 관찰 포인트를 식별할 수 있다. 또 다른 구현예에서, Eventstream@value는 포함된 이벤트가 관련된 적응 세트, 표현 또는 서브-표현을 식별할 수 있다.
또 다른 구현예에서, 구문 구조는 컨테이너 파일, 세그먼트, 또는 서브세그먼트에 포함되거나 그로부터 파싱된다. 컨테이너 파일, 세그먼트 또는 서브세그먼트가 ISOBMFF를 따르는 경우, 다음의 실시예가 가능하다: 구문 구조는 대역내 이벤트일 수 있고; 구문 구조는 ISOBMFF의 시한 메타데이터 트랙의 샘플일 수 있고; 구문 구조는 ISOBMFF의 샘플 그룹 설명 항목일 수 있고; 및/또는 구문 구조는 샘플 항목 내의 박스일 수 있다.
또 다른 구현예에서, 구문 구조는 미디어 비트스트림에서의 대역내에 포함될 수 있다. 예컨대, 구문 구조는 비디오 비트스트림에서의 SEI 메시지이거나, 혹은 오디오 비트스트림 내의 보조 데이터 단위일 수 있다. H.264/AVC 및 H.265/HEVC와 같은 다수의 비디오 코딩 표준은 비디오 비트스트림에 SEI(Supplemental Enhancement Information)를 포함시킬 수 있다. SEI는 H.264/AVC 및 H.265/HEVC에서의 SEI 네트워크 추상화 레이어(NAL) 유닛과 같은 특정 데이터 구조로 캡슐화될 수 있다. 데이터 구조는 하나 이상의 SEI 메시지를 포함할 수 있다. SEI 메시지는 출력 픽처의 디코딩을 위해 요구되지 않지만, 픽처 출력 타이밍, 렌더링, 에러 검출, 에러 은닉, 및 리소스 예약과 같은 관련 프로세스를 도울 수 있다. 여러 개의 SEI 메시지가 H.264/AVC 및 HEVC에서 특정되고, 사용자 데이터 SEI 메시지로 인해 조직 및 회사는 SEI 메시지를 그들의 사용을 위해 특정할 수 있다. H.264/AVC와 HEVC는 특정된 SEI 메시지에 대한 구문 및 의미를 포함하지만, 수신자의 메시지를 처리하기 위한 프로세스가 정의되어 있지 않다. 따라서, 인코더는 SEI 메시지를 생성할 때 H.264/AVC 표준 또는 HEVC 표준을 따르도록 요구되며, H.264/AVC 표준 또는 HEVC 표준을 따르는 디코더는 각각 출력 순서 부합을 위해 SEI 메시지를 처리하도록 요구되지 않는다. H.264/AVC 및 HEVC에서 SEI 메시지의 구문 및 의미를 포함시키는 이유들 중 하나는, 상이한 시스템 사양들이 보완 정보를 동일하게 해석해서 상호 운용할 수 있게 하기 위한 것이다. 시스템 사양들이 인코딩 단과 디코딩 단의 양쪽에서 특정 SEI 메시지의 사용을 요구할 수 있고, 부가적으로 수신자에서 특정 SEI 메시지를 처리하기 위한 프로세스가 특정될 수 있다는 것을 의도한다.
일부 구현예는 DASH 클라이언트 동작과 관련해서 고려 및/또는 발생된다. 하나의 이러한 구현예에서, 상기한 바와 같이 시그널링이 이벤트 스트림의 방안으로 행해지지만, 설명은 다른 시그널링 옵션에 대해서도 유사하게 적용된다고 가정한다. 첫째, DASH 클라이언트는 초기 관찰 설정을 위한 이벤트 스트림이 이용 가능한 MPD로부터 파싱된다. 이러한 이벤트 스트림을 이용할 수 없으면, DASH 클라이언트는 이하의 프로세싱을 수행할 수 없다.
그 후에 DASH 클라이언트는 재생이 시작되는 제 1 (서브)세그먼트와 일치하거나 이를 커버하는 이벤트를 파싱할 수 있다. 이벤트는 (MPD가 여러 개의 관찰 포인트에 대한 콘텐츠를 발표할 때의) 초기 관찰 포인트 및 초기 관찰 배향에 대한 표시를 포함한다. 초기 관찰 포인트가 이벤트에 포함되면, 클라이언트는, 예를 들면 관찰 포인트를 표시하는 @schemeIdUri 및 이벤트에 포함된 초기 관찰 포인트 식별자와 동등한 @value를 갖는 뷰포인트 속성 설명자가 어떤 적응 세트에 포함되는지를 검사함으로써, 그 초기 관찰 포인트와 일치하는 적응 세트를 선택한다. 초기 관찰 배향이 이벤트에 포함되어 있으면, DASH 클라이언트는, 예를 들면 (본 명세서에서 참조로 포함되어 있는 MPEG M38613에서 설명된 바와 같은) VR 속성 설명자에 표시된 뷰포트(들)가 초기 관찰 배향을 커버하는지를 검사함으로써, 그 배향을 포함하는 적응 세트, 표현 또는 서브-표현을 선택한다. 적용 가능한 전역적인 배향 오프셋(들) 및 투영 구조 또는 투영 프레임의 배향은, 초기 관찰 배향과 일치하는 적응 세트, 표현 또는 서브-표현을 결정할 때에, 앞서 설명된 바와 같이 고려될 수 있다. 초기 관찰 배향을 커버하는 여러 개의 적응 세트가 존재하면, DASH 클라이언트는 예를 들어 최상의 품질로(예를 들면, VR 속성 설명자의 quality_ranking 값으로 표시됨) 초기 관찰 배향을 포함하고 및/또는 적응 세트에 의해 커버되는 뷰포트 내에서 초기 관찰 배향이 가장 중심인 적응 세트를 선택할 수 있다. 초기 관찰 배향을 커버하는 적응 세트 내에 여러 개의 표현 또는 서브-표현이 존재하면, DASH 클라이언트는 예를 들어 최상의 품질로(예를 들면, VR 속성 설명자의 quality_ranking 값으로 표시됨) 초기 관찰 배향을 커버하는 뷰포트가 존재하는 표현 또는 서브-표현을 선택할 수 있다. 해당 적응 세트로부터 적응 세트, 표현 또는 서브-표현을 선택한 후에, 클라이언트는 해당 표현 또는 서브-표현으로부터 제 1 (서브)세그먼트를 요청할 수 있다.
연속 재생시에, DASH 클라이언트는 초기 관찰 설정을 위해 이벤트 스트림에서 이벤트를 파싱할 수 있다. 연속 재생에 적용되는 이벤트의 프리젠테이션 시간이 충족되면, 클라이언트는 이벤트가 적용되는지를 결정합니다. 무조건 적용되는 Event는 현재 관찰 설정을 (이벤트에 포함된) 초기 관찰 설정과 동일하게 리셋한다. 조건부로 적용되는 이벤트의 경우, 조건이 처리되고 충족되면, 클라이언트는 현재 관찰 설정을 (이벤트에 포함된) 초기 관찰 설정과 동일하게 리셋한다. 이러한 리셋 후에, 후속 (서브)세그먼트 요청이 그에 따라 행해지고, 클라이언트는 또한 콘텐츠의 렌더링시에 초기 관찰 설정을 사용한다. 그렇지 않으면(현재의 관찰 포인트의 리셋이 발생하지 않으면), 클라이언트는 현재 관찰 포인트를 계속해서 사용한다.
DASH 클라이언트는 사용자에게 탐색 또는 랜덤 액세스 기능을 제공할 수 있다. 탐색 후에 클라이언트는 위에서 설명된 것과 유사하게 동작할 수 있지만 랜덤 액세스시에 조건부로 적용되는 초기 관찰 설정의 처리를 부가적으로 고려할 수 있다. DASH 클라이언트는 초기 관찰 설정을 적용하기 위한 표시 조건들을 처리할 수 있다. 그 목적을 위해, DASH 클라이언트는 현재 시청 배향을 예를 들어 헤드 장착형 디스플레이로부터 획득할 수 있다. 조건들이 충족되거나 초기 관찰 포인트가 랜덤 액세스시에 무조건 적용되면, 클라이언트는 현재 관찰 설정을 초기 관찰 설정과 동일하게 리셋하고 그에 따라 (서브)세그먼트를 요청한다. 또한, 클라이언트는 콘텐츠의 렌더링시에 초기 관찰 설정을 사용한다. 조건들이 충족되지 않으면, 클라이언트는 현재 관찰 설정을 계속해서 사용한다. MPD로부터(예를 들면, 상기한 하나 이상의 설명자로부터) 투영을 파싱하고 메타데이터를 맵핑함으로써, DASH 클라이언트는 어떤 적응 세트 및 표현이 현재 시청 방향을 일반적인 예상 네트워크 처리량에 의해 제공될 수 있는 비트레이트 및 최고 품질로 커버하는지를 결정한다. DASH 클라이언트는 그에 따라 (서브)세그먼트 요청을 발행한다.
예시적인 구현예에서, 클라이언트는 초기 관찰 설정과 관련된 표시들을, 이들이 적용되는 미디어 데이터에 앞서 수신 및 파싱한다. 예컨대, DASH 클라이언트는 각각의 (서브)세그먼트에 대한 요청이 발행되는 시간보다 앞서 이벤트 스트림을 수신 및 파싱할 수 있다. 클라이언트는 적어도 어떤 초기 관찰 설정 표시가 연속 재생에서 무조건 적용되는지를 파싱한다. 클라이언트는 연속 재생에서 무조건 적용되는 초기 관찰 설정 표시에 기초하여 후속적으로 어떤 (서브)세그먼트 요청이 이루어질 수 있는지를 결정한다. 또한, 클라이언트는 (서브)세그먼트 요청을 결정할 때에 디스플레이의 시야와 같은 다른 측면 및 일반적인 예상 네트워크 처리량을 고려할 수 있다.
구현예에서, 가능성 있는 후속 (서브)세그먼트 요청은 URL로서 표시되고, 일부 경우에는 바이트 범위(들)로서 표시된다. URL 및 관련 바이트 범위(들)에 대한 HTTP GET 요청은 가능성 있는 후속 (서브)세그먼트 요청에서 해결된다.
구현예에서, 상기 통지는 DASH SAND 메시지를 통해 수행된다. 실시예에서, AnticipatedRequests SAND 메시지는 상기 URL을 전달하는 데 사용되고, 일부 경우에는 바이트 범위(들)을 전달하는 데 사용된다.
실시예에서, 상기 통지는 예를 들어 GET 요청의 일부로서 포함될 수 있는 HTTP 헤더를 사용하여 수행된다. 실시예에서, HTTP 헤더는 DASH SAND의 사양을 따른다.
앞서 설명한 바와 같이, 일부 구현예에서, 비디오 프로세서(106)는 돌출 포인트를 나타내는 정보를 비디오 스트림에 또는 그 비디오 스트림과 연관된 별도의 스트림(또는 MPD와 같은 시그널링 구조)에 삽입한다.
구현예에서, 돌출 포인트를 나타내는 정보는 스트리밍을 초기화할 때 및 다수의 실시예에서 초기 관찰 설정으로서 랜덤 액세스할 때에 해석된다.
실시예에서, 돌출 포인트 정보는 시간적 및 공간적으로 정확한 것으로 이해될 수 있는 디코딩된 콘텐츠 내의 정확한 돌출 포인트가 아니라, 요청될 가능성이 있는 (서브)세그먼트를 나타낸다.
구현예에 따른 방법은:
돌출 포인트를 포함하는 (서브)세그먼트를 나타내는 정보를 수신하는 단계;
(서브)세그먼트의 요청을 나타내는 신호를 발생시키는 단계;
신호를 전송하는 단계를 포함할 수 있다.
구현예에서, 돌출 포인트 정보는 (서브)세그먼트 입도(granularity)에 대한 시간 함수로서 생성된다. 즉, 돌출 포인트 정보는, 각각의 비중첩 (서브)세그먼트 지속 기간 동안, 클라이언트에 의해 요청되는 가능성 있는 (서브)세그먼트를 나타낸다. 실시예에서, (서브)세그먼트-입도 돌출 포인트 정보는 일련의 URL들로서 표시되고, 각 URL은 클라이언트에 의해 요청될 가능성이 있는 (서브)세그먼트를 나타낸다. 실시예에서, (서브)세그먼트-입도 돌출 포인트 정보는 클라이언트에 의해 요청될 가능성이 있는 (서브)세그먼트의 URL을 획득하기 위해 URL 템플릿 및 그 URL 템플릿에 삽입되는 속성 값의 목록 및/또는 범위를 참조하여 표시된다. 실시예에서, (서브)세그먼트-입도 돌출 포인트 정보는 계층적 데이터 모델에 따라 또는 그와 마찬가지로(예를 들면, DASH에서), 사전 정의되거나 표시된 식별자 레이어에 대한 식별자 값의 범위 또는 리스트 및 MPD 또는 그와 비슷한 것을 참조하여 표시된다. 예컨대, 구간 식별자의 목록은 각 구간에 대해 표시될 수 있고, 적응 세트 식별자의 목록은 각 적응 세트에 대해 표시될 수 있고, 표현 식별자의 목록 및 제시 시간(예를 들면, 세그먼트 타임 라인에서) 또는 세그먼트 넘버링과 관련된 유효성 기간이 표시될 수 있다.
구현예에서, 가능성 있는 시청 방향 또는 배향을 예를 들어 요, 피치, 및 롤의 관점에서 표시함으로써 (서브)세그먼트-입도 돌출 포인트 정보를 나타낼 수 있다. 실시예에서, 가능성 있는 시청 방향 또는 배향은 전역 배향 오프셋(들)을 포함한다. 따라서, 클라이언트는 가능성 있는 시청 방향 또는 배향을 어떤 적응 세트, 표현 또는 서브-표현이 커버하는지를 결정하기 전에 전역 배향 오프셋(들)을 페치할 필요가 없다. 구현예에서, 가능성 있는 시청 방향 또는 배향은 전역 배향 오프셋(들)을 포함하지 않는다. 따라서, 클라이언트는 가능성 있는 시청 방향 또는 배향을 어떤 적응 세트, 표현 또는 서브-표현이 커버하는지를 결정하기 전에 전역 배향 오프셋(들)을 페치하고, 또한 가능성 있는 시청 방향 또는 배향을 어떤 적응 세트, 표현 또는 서브-표현이 커버하는지를 결정할 때에 기본적으로 전역 배향 오프셋(들)과 가능성 있는 시청 방향 또는 배향과의 합을 고려한다. 가능성 있는 시청 방향 또는 배향의 표시는, 그 가능성 있는 시청 방향 또는 배향을 커버하고 또한 가능성 있는 시청 방향에 대한 비교적 높은 품질을 나타내는 품질 순위를 갖는 적응 세트, 또는 서브-표현이 클라이언트에 의해 요청될 수 있다는 의미를 갖는 것으로 이해될 수 있다. 커버되는 시청 방향 또는 배향 및 그 품질 순위는, 예를 들어 앞서 설명한 바와 같이 가상 현실 비디오 설명자 및/또는 공간적 관계 설명자에 의해 표시될 수 있다.
구현예에서, 돌출 포인트 정보는 해당 (서브)세그먼트의 임의의 'moof' 박스 앞에 (서브)세그먼트의 시작 부분에 나타나도록 허용되는 이벤트들, 예를 들어 DashEventMessageBoxes를 사용하여 비디오 스트림에서 표시된다.
구현예에서, 돌출 포인트 정보는 이벤트 스트림 또는 MPD 또는 유사한 것에서 표시된다. 일부 실시예에서, 이벤트들의 프리젠테이션 시간(@presentationTime) 및 지속 기간(@duration)은 (서브)세그먼트 경계와 일치하도록 선택된다. 메시지 데이터(@messageData)는 클라이언트에 의해 요청될 수 있는 (서브)세그먼트를 나타내는 구조를 포함할 수 있으며, 이에 있어서 상이한 옵션들이 위에서 설명된다.
구현예에서, 클라이언트는 예를 들어 DASH MPD의 EventStream 요소 등의 상기한 수단들 중 하나를 통해 돌출 포인트 정보를 수신한다. 클라이언트는 상기한 바와 같이 돌출 포인트 정보에 기초하여 어떤 (서브)세그먼트 요청이 후속적으로 이루어질 가능성이 있는지를 결정한다. 클라이언트는 가능성 있는 후속 (서브)세그먼트 요청을 프록시 캐시와 같은 네트워크 요소에게 통지한다.
구현예에서, 클라이언트는 (서브)세그먼트-입도 돌출 포인트 정보를 수신한다.
구현예에서, 가능성 있는 후속 (서브)세그먼트 요청은 URL로서 표시되고, 일부 경우에는 바이트 범위(들)로서 표시된다. URL 및 관련 바이트 범위(들)에 대한 HTTP GET 요청은 가능성 있는 후속 (서브)세그먼트 요청에서 해결된다.
구현예에서, 상기 통지는 DASH SAND 메시지를 통해 수행된다. 실시예에서, AnticipatedRequests SAND 메시지는 상기 URL을 전달하고, 일부 경우에는 바이트 범위(들)를 전달하는 데 사용된다.
구현에서, 상기 통지는 예를 들어 GET 요청의 일부로서 포함될 수 있는 HTTP 헤더를 사용하여 수행된다. 실시예에서, HTTP 헤더는 DASH SAND의 사양을 따른다.
구현예에서, 프록시 캐시 또는 에지 서버와 같은 네트워크 요소는, 예를 들어 상기한 수단들 중 하나를 통해 돌출 포인트 정보를 수신한다. 네트워크 요소는 상기한 바와 같이 돌출 포인트 정보에 기초하여 어떤 (서브)세그먼트 요청이 후속해서 이루어질 수 있는지를 결정한다. 네트워크 요소는 (서브)세그먼트를 사전에 페치한다. 따라서, 클라이언트가 이들 (서브)세그먼트에 대한 요청을 발행하면, 네트워크 요소에서 쉽게 이용 가능하므로 요청은 보다 빠르게 응답될 수 있다.
구현예에서, 프록시 캐시 또는 에지 서버와 같은 네트워크 요소는 가능성 있는 후속 (서브)세그먼트 요청에 관한 정보를 예를 들어 클라이언트로부터 수신한다. 네트워크 요소는 (서브)세그먼트를 사전에 페치한다. 따라서, 클라이언트가 이들 (서브)세그먼트에 대한 요청을 발행하면, 네트워크 요소에서 쉽게 이용 가능하므로 요청은 보다 빠르게 응답될 수 있다.
구현예에서, 전역 배향 오프셋 정보는 (서브)세그먼트 입도의 시간 함수로서 생성된다. 전역 배향 오프셋이 (서브)세그먼트 내에서 진화할 수 있음에 따라, (서브)세그먼트-입도 전역 배향 오프셋 정보는 (서브)세그먼트 내에서의 전역 배향 오프셋의 변화를 커버하는 전역 배향 오프셋의 범위를 나타낼 수 있다. 실시예에서, (서브)세그먼트-입도 전역 배향 오프셋 정보는 대역 내 또는 MPD 내의 이벤트 스트림으로서 DASH 이벤트에 포함된다.
도 4는 가상 현실 환경에서 시청각 콘텐츠의 재배향(reorienting)과 관련된 기술적인 문제점을 해결하기 위해 본 명세서에서 설명된 해결안이 어떻게 사용될 수 있는지에 대한 또 다른 설명을 제공한다. 도 4에 도시된 바와 같이, 시청각 콘텐츠(400)는 360도 필드를 표현하는 데 사용될 수 있고, Nokia OZO 카메라 시스템 또는 다른 멀티-카메라 시스템 등에 의해 캡처된 8개의 뷰(402-416)를 포함한다. 도 4에 도시된 실시예에서, MPVD는 뷰(402-416)에 포함된 콘텐츠를 위해 언제라도 알려져 있는 것이고, 포인트(418, 420, 422, 424, 426)에서 표시되어 있다. 사용자가 MPVD와 오정렬되게 하는 방식으로(또는 MPVD와 정렬되도록 하는 물리적 움직임이 어렵고 및/또는 불편한 방식으로) 시청자를 배향 및/또는 위치 설정할 가능성을 줄이기 위해, 특정 카메라 뷰와 관련하여 가장 중심에 위치한 MPVD를 갖는 뷰(들)가 시청자 앞에 제공되도록 시청자에게 뷰(402-416)를 렌더링할 수 있다. 예컨대, 도 4에 도시된 바와 같이, MPVD 포인트(424, 426)는 그들 개개의 뷰(410, 412)의 중심에 비교적 가깝다. 루프(428)에 의해 표시된 바와 같이, 뷰(410, 412)는 시청자 앞에 제공되도록 선택 및 렌더링되고, 이는 시청자의 위치 또는 배향이 통상적으로 또 다른 뷰 또는 뷰들을 시청자의 앞에 제공하게 하더라도 시청자에게는 MPVD가 제공되는 것을 초래한다. 또한, 나머지 뷰(402, 404, 406, 408, 414, 416)는 시청자 앞에 있는 뷰(410, 412)의 움직임과 관련된 시프트를 고려한 방식으로 렌더링될 수 있다.
도 5는 가상 현실 환경에서 시청각 콘텐츠의 재배향과 관련된 기술적인 문제점을 해결하기 위해 본 명세서에서 설명된 해결안이 어떻게 사용될 수 있는지에 대한 또 다른 설명을 제공한다. 도 4의 시청각 콘텐츠(400)는 각각의 뷰(402-416) 및 MPVD 포인트(418-426)를 포함해서 도 5에 도시되어 있다. 시청자 앞에 제시하는 뷰(들)를 확인하는 데 MPVD 포인트로부터 그 개개의 뷰의 중심까지의 거리가 사용된 도 4와는 대조적으로, 도 5는 뷰들의 스케일링 가능한 코딩을 고려하는 구현예를 도시한다. 뷰의 레이어들은 뷰 내의 상이한 뷰포트를 커버할 수 있다. 도 5는 뷰의 레이어들의 뷰포트가 동일 배향을 갖지만 시야의 늘어난 커버리지를 갖는 경우를 도시한다. 그러나, 예를 들면, 부분적으로 겹치는 레이어 및 상이한 배향을 갖지만 뷰 내의 동일 시야를 갖는 구성을 포함하되 이로 제한되지 않는 다른 계층화된 코딩 구성도 가능하다. 도 5에서 레이어들은 뷰의 중심에 근접한 영역을 정의한다. 도 5에 도시된 바와 같이, 레이어(402' 및 402")는 뷰(402)에서 표시되어 있고, 대응하는 레이어들이 다른 뷰들(404-416)의 각각에서 도시되어 있음을 알 것이다. 도 5에 도시된 실시예에서, 특정 뷰의 중심으로부터 MPVD 포인트까지의 절대적인 거리를 계산할 필요가 없다. 또한, MPVD 포인트가 발견될 수 있는 특정 레이어를 기초로 하여 뷰를 정렬 및 선택할 수 있다. 도 5에 도시된 바와 같이, MPVD 포인트(424, 426)는 뷰(410, 412)에 도시된 가장 안쪽 레이어 내에 모두 위치되는 반면에, 다른 MPVD 포인트들은 그들 개개의 뷰의 바깥쪽 레이어에 적어도 부분적으로 존재하는 것으로 도시되어 있다. 따라서, 루프(428)에 의해 표시된 바와 같이, 뷰(410, 412)는 시청자 바로 앞에 제공되도록 선택 및 렌더링될 수 있다.
도 4 및 도 5에 도시된 구현예는, 시청자(또는 사용자에 의해 사용되는 시청 디바이스)의 위치 및/또는 배향에 관계없이, MPVD에 존재하는 콘텐츠가 가능한 한 자주 사용자 앞에 제공될 수 있게 하는 방식으로 렌더링되어야 하는 스테레오스코픽 뷰 및 환경과 관련하여 특히 유리할 수 있다. 도 4 및 도 5와 관련하여 본 명세서에서 논의된 예들은 특정 스트림에 존재하는 잠재적인 뷰들 중 임의의 뷰에 대한 선택을 고려하지만, 시청자에게 제시되는 뷰의 선택에 추가적인 제약이 부과될 수 있음을 이해할 것이다. 예컨대, 뷰의 선택은 콘텐츠의 시작 시간에 헤드 장착형 디스플레이의 방향에 적어도 부분적으로 의존할 수 있어서, 헤드 장착형 디스플레이가 위쪽으로 향하면, 선택되는 잠재적인 뷰들의 풀(pool)은 (세로 축의 의미에서) 위쪽 뷰로 제한될 수 있다. 마찬가지로, 디스플레이가 일반적으로 (수직 축의 의미에서) 이용 가능한 뷰의 중간을 향하는 경우, 선택되는 잠재적인 뷰들의 풀은 유사한 수직 위치를 따라 존재하는 것들로 제한될 수 있다.
이제 도 6a를 참조하면, 본 발명의 실시예에 따라 도 2의 장치(200)에 의해 수행되는 동작은 예시적인 프로세스 흐름(600)으로서 도시되어 있다. 이와 관련하여, 장치는, 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 시청각 프리젠테이션의 송신 유닛들의 세트의 초기 관찰 설정과 관련된 표시를 수신하는 수단; 재생 디바이스의 의도된 행위와 관련된 표시를 수신하는 수단; 재생 디바이스의 의도된 행위를 결정하는 수단; 및 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련된 제어 신호를 생성시키는 수단을 포함한다. 이와 같이, 장치는 일반적으로 본 명세서에서 논의되고 다른 경우에는 고려되는 시청각 콘텐츠에 대한 제어된 관찰 및 배향 선택에 영향을 줄 수 있다.
장치는, 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 시청각 프리젠테이션의 송신 유닛들의 세트의 초기 관찰 설정과 관련된 표시를 수신하는 수단을 포함한다. 도 6a를 참조하면, 프로세스 흐름(600)은 블록(602)에서 초기 관찰 설정과 관련된 표시를 수신하는 것으로 시작된다. 프로세스 흐름(600)의 일부 구현예에서, 관찰 설정은 관찰 포인트 및 관찰 배향을 포함할 수 있다. DASH 환경에서 발생하는 구현예에서, 초기 관찰 설정은 시청자에게 제시되는 시청각 콘텐츠의 각 세그먼트 및/또는 서브세그먼트에 대한 스트림 액세스 포인트(SAP)에서 표시될 수 있다.
또한, 장치는 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 재생 디바이스의 의도된 행위와 관련된 표시를 수신하는 수단을 포함한다. 도 6a를 참조하면, 프로세스 흐름(600)은 블록(604)에서 재생 디바이스의 의도된 행위와 관련된 표시를 수신하는 것으로 계속된다. 일반적으로, 다수의 구현예에서, 재생 디바이스의 의도된 행위와 관련된 표시는, 소정의 콘텐츠가 특정 방식으로 렌더링되는 콘텐츠 작성자의 선호도의 "세기"의 결정을 허용하고, 또한 (예를 들어, 사용자의 머리의 위치 또는 시청 디바이스의 다른 배향과 같은) 시청자의 위치 설정이 콘텐츠 작성자의 선호보다 더 중요할 수 있는 조건을 고려한다. 블록(604)의 일부 구현예에서, 재생 디바이스의 의도된 행위는 조건 만족시에 관찰 설정 내지 초기 관찰 설정을 셋팅하는 것을 포함한다. 블록(604)의 일부 구현예에서, 재생 디바이스의 의도된 행위와 관련된 표시는, 재생 디바이스의 연속 재생 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시, 및 재생 디바이스의 랜덤 액세스 모드 하에서의 재생 디바이스의 의도된 행위와 관련된 표시를 포함한다. 이와 같이, 블록(604)의 일부 구현예는, 콘텐츠가 연속 재생 모드시에는 하나의 방식으로 렌더링될 수 있는 반면에 콘텐츠의 세그먼트 또는 서브세그먼트가 랜덤하게 액세스될 때에는 또 다른 방식으로 콘텐츠가 렌더링될 수 있다는 점에서, 재생 디바이스의 상황에 따른 행위의 정도를 고려한다.
장치는, 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 재생 디바이스의 의도된 행위를 결정하는 수단을 포함한다. 도 6a를 참조하면, 프로세스 흐름(600)은 블록(606)에서 재생 디바이스의 의도된 행위를 결정하는 것으로 계속된다. 블록(606)의 일부 구현예에서, 재생 디바이스의 의도된 행위를 결정하는 것은 재생 디바이스의 의도된 행위와 관련된 조건이 충족되었는지를 판정하는 것을 포함한다. 일부 구현예는, 초기 관찰 설정이 (1) 적용되지 않고, (2) 조건부로 적용되고, 또는 (3) 연속 재생에서 무조건 적용된다는 표시와 관련된 시나리오를 고려한다. 마찬가지로, 일부 이러한 구현예 및 다른 구현예는, 초기 관찰 설정이 (1) 적용되지 않고, (2) 조건부로 적용되고, 또는 (3) 세그먼트 또는 서브세그먼트의 랜덤 액세스가 발생할 때에 무조건 적용된다는 표시와 관련된 시나리오를 고려한다.
일부 구현예에서, 조건은 초기 관찰 설정과 관련된 적어도 하나의 리셋 조건을 포함한다. 예컨대, 초기 관찰 설정을 적용시키는 리셋 조건이 충족될 수 있다. 이러한 구현예에서, 리셋 조건은 초기 관찰 설정을 적용시키는 관찰 포인트 및/또는 관찰 배향의 리셋 범위의 형태를 취할 수 있다. 또한, 일부 구현예에서, 리셋 조건은 현재의 관찰 설정에 적어도 부분적으로 기초할 수 있다.
일부 이러한 구현예 및 다른 구현예에서, 조건은 예를 들어 초기 관찰 설정을 적용시키지 않는 유지 조건과 같은, 초기 관찰 설정과 관련된 적어도 하나의 유지 조건을 포함한다. 이러한 구현예에서, 유지 조건은 초기 관찰 설정을 적용시키지 않는 관찰 포인트 및/또는 관찰 배향을 나타내는 유지 범위를 포함할 수 있다.
장치는, 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 제어 신호가 생성되게 하는 수단을 포함하되, 상기 제어 신호는 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작과 관련되어 있다. 도 6a를 참조하면, 프로세스 흐름(600)은 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 렌더링 동작과 관련된 제어 신호가 생성되게 하는 것을 포함하는 블록(608)으로 계속된다. 블록(608)의 일부 구현예에서, 제어 신호는 재생 디바이스의 의도된 행위를 나타낸다. 블록(608)의 예시적인 구현예에서, 재생 디바이스 상의 시청각 프리젠테이션의 렌더링 동작은 시청각 프리젠테이션의 일부를 선택하는 것을 포함한다. 본 명세서 전반에 걸쳐서 또한 도 3, 도 4, 및 도 5를 참조하여 논의된 바와 같이, 프로세스(600)의 구현예 및 본 발명의 다른 실시예는 시청자에게 제공된 콘텐츠가 렌더링되어야 하는지 여부 및 어느 정도까지 렌더링되어야 하는지를 고려하여서, 시청자에 대한 콘텐츠의 상대적인 위치 설정은 콘텐츠의 세그먼트 또는 서브세그먼트와 연관된 초기 관찰 설정, 시청 디바이스의 배향, 및/또는 세그먼트 또는 서브세그먼트가 접하게 되는 방식(예를 들어, 연속 재생 또는 랜덤 액세스)을 기초로 재정렬 및/또는 시프트된다. 블록(608)의 일부 구현예에서, (예를 들면, 초기 관찰 설정의 적용과 관련된 조건이 충족되었다는 결정에 기초하여) 재생 디바이스의 의도된 행위를 결정할 때, 제어 신호는 직접 또는 간접적으로 콘텐츠가 의도된 방식으로 렌더링되어 시청자에게 제공될 수 있게 한다.
프로세스(600)의 일부 구현예, 및 본 명세서에서 설명된 본 발명의 다른 실시예가 재생 디바이스의 의도된 행위의 반복된 결정을 고려한다는 것을 이해할 것이다. 예컨대, 일부 구현예는 시청각 콘텐츠의 제 1 송신 유닛 세트와 관련된 제 1 관찰 설정 식별자, 및 제 2 송신 유닛 세트에 대한 제 2 관찰 설정 식별자를 고려한다. 일부 이러한 구현예에서, 송신 유닛은 하나 이상의 적응 세트, 표현, 서브표현, 세그먼트 세트, 서브 세그먼트 세트, 및/또는 시간 범위에 의해 정의될 수 있다. 이들 상이한 송신 유닛은 상이한 리셋 조건 및/또는 유지 조건과 관련될 수 있어, 개별 송신 유닛들에 대한 의도된 행위들은 상이하다. 또한, 개별 송신 유닛들과 관련된 조건들이 상관되거나 다른 경우에는 링크될 수 있어, 하나의 송신 유닛과 관련된 조건들 및/또는 의도된 행위는 다른 송신 유닛과 관련된 조건들 및/또는 의도된 행위에 적어도 부분적으로 기초한다.
이제 도 6b를 참조하면, 본 발명의 실시예에 따라 도 2의 장치(200)에 의해 수행되는 또 다른 동작 세트가 예시적인 프로세스 흐름(1000)으로서 도시되어 있다. 프로세스 흐름(1000)의 일부 구현예가 예를 들어 가상 현실 헤드셋(114)과 같은 시청 디바이스 내에서 발생하고 및/또는 시청 디바이스에 의해 수행되는 실시 예에서 특히 유리할 수 있음을 알 것이다. 이와 관련하여, 장치는, 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 시청각 프리젠테이션의 송신 유닛들의 세트와 관련된 관찰 설정을 검출하는 수단을 포함한다. 도 6b를 참조하면, 프로세스 흐름(1000)은 블록(1002)에서 시청각 프리젠테이션의 송신 유닛과 관련된 관찰 설정을 검출하는 것으로 시작된다. 관찰 설정의 검출은, 관찰 설정이 수신되는 방법에 따라, 시청각 프리젠테이션 및 그 전송과 관련된 프로토콜 및 포맷에 차례로 의존할 수 있는 다수의 방안들 중 임의의 방안에 따라 수행될 수 있다. 본 명세서에서 논의되고 및/또는 고려되는 미디어 포맷 및 프로토콜 중 임의의 것이 프로세스(1000) 및 블록(1002)의 구현에서 사용될 수 있음을 알 것이다. 일부 실시예에서, 관찰 설정은 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함한다. 일부 구현예에서, 관찰 설정은 가장 가능성 있는 시청 방향의 표시를 포함할 수 있다. MPVD를 처리하는 구현예는 콘텐츠 작성자에 의한 식별을 통해 및/또는 콘텐츠의 다수의 시청 및/또는 시청자와 관련된 사용 데이터의 수집 및 처리를 통해 MPVD가 결정된 경우에 특히 유리할 수 있다.
또한, 장치는, 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 관찰 설정과 관련된 조건이 충족되는지를 결정하는 수단을 포함한다. 도 6b를 참조하면, 프로세스 흐름(1000)은 블록(1004)에서 관찰 설정과 관련된 조건이 충족되는지를 결정하는 것으로 계속된다. 본 명세서에서 논의된 바와 같이, 본 발명의 실시예들의 다수의 예시적인 구현은, (배향 설정, MPVD, 및/또는 컨텐츠에 대한 다른 정보와 같은) 콘텐츠의 측면들 및/또는 기타 요인들, 예를 들어 시청자 및/또는 시청 디바이스의 위치 설정, 사용자가 콘텐츠의 특정 세그먼트 또는 서브세그먼트와 부딪히는 상황, 및/또는 다른 요인들에 기초하여, 시청각 콘텐츠와 관련된 관찰 포인트 및 배향 선택을 제어하는 것과, 대응하여 특정 방식으로 시청자에게 콘텐츠를 디스플레이하는 것을 고려한다. 블록(1004)의 일부 구현예에서, 관찰 설정과 관련된 조건이 충족되는지를 판정하는 것은, 재생 디바이스와 관련된 배향을 결정하는 것을 포함한다. 예컨대, 가상 현실 헤드셋(114)과 같은 재생 디바이스는, 예를 들어 재생 디바이스, 사용자, 또는 양쪽의 절대적 및/또는 상대적 위치 설정(롤, 피치, 및 요 및/또는 시청각(viewing angle)을 포함하지만 이로 제한되지 않음)에 관련된 정보를 검출 및 제공하도록 구성될 수 있다. 일부 구현예에서, 재생 디바이스와 관련된 조건이 충족되는지를 판정하는 것은, 재생 디바이스가 연속 재생 모드에 있는지 및/또는 재생 디바이스가 랜덤 액세스 모드에 있는지를 결정하는 것을 포함한다. 본 명세서에서 논의된 바와 같이, 소정의 상황에서 특정 관찰 설정이 적용되는지 여부는, 시청자에게 원하는 시청 경험을 제공하기 위해, 사용자가 시청각 프리젠테이션의 특정 부분에 랜덤하게 액세스했는지 또는 이전의 부분을 계속해서 시청함으로써 그 동일한 부분을 만났는지에 대해 민감할 수 있다.
또한, 장치는 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 관찰과 관련된 조건이 충족되는지를 판정하는 것에 응답하여, 시청각 프리젠테이션의 송신 유닛들의 서브세트를 선택하는 수단을 포함한다. 도 6b를 참조하면, 프로세스 흐름(1000)은 블록(1006)에서 송신 유닛들의 서브세트를 선택하는 것으로 계속된다. 도 3, 도 4, 및 도 5와 그에 관한 설명을 참조하면, 관찰 설정을 수신하고 그 관찰 설정과 관련된 임의의 조건 또는 조건들이 충족되는지를 판정할 때, 시청각 프리젠테이션과 관련된 하나 이상의 부분들 또는 뷰들이 사용자로의 디스플레이를 위해 선택될 수 있다. 여기서 논의 및/또는 고려된 제시되는 뷰를 식별 및/또는 선택하는 방안들 중 임의의 방안은 블록(1006)의 예시적인 구현에서 사용될 수 있다.
또한, 장치는 프로세서(202), 메모리(204), 통신 인터페이스(208) 등과 같은, 제어 신호가 생성될 수 있게 하는 수단을 포함하고, 상기 제어 신호는 재생 디바이스 상의 시청각 프리젠테이션의 송신 유닛들의 선택된 서브세트의 렌더링 동작과 관련된다. 도 6b를 참조하면, 프로세스 흐름(1000)은 블록(1008)에서 송신 유닛들의 선택된 서브세트를 렌더링하는 것과 관련된 제어 신호를 생성시키는 것으로 계속된다. 블록(1008)의 일부 구현예에서, 제어 신호는 재생 디바이스의 의도된 행위의 표시를 포함한다. 예컨대, 관찰 설정과 관련된 임의의 조건이 충족되는지를 판정하고 디스플레이될 하나 이상의 뷰를 선택할 때, 장치는 가상 현실 헤드셋(114)과 같은 시청 디바이스에게 예를 들어 선택된 콘텐츠를 특정한 의도된 방식으로 렌더링할 것을 지시하고 및/또는 다른 경우에 시청 디바이스로 하여금 예를 들어 선택된 콘텐츠를 특정한 의도된 방식으로 렌더링하게 하는 제어 신호를 생성할 수 있다. 예컨대, 수신된 관찰 설정이 적용되는 상황에서, 제어 신호는 그 관찰 설정에 따라 콘텐츠를 렌더링하기 위해 렌더링 프로세스 및/또는 시청 디바이스에 의해 인지 및 프로세스될 수 있는 방식으로 생성될 수 있다. 마찬가지로, 수신된 관찰 설정이 적용되지 않는 상황에서, 시청자에게 렌더링된 뷰들이 상기 수신된 관찰 설정에 의해 영향을 받지 않아야 하는 렌더링 프로세스 및/또는 시청 디바이스를 확인하기 위해 제어 신호가 생성될 수 있다.
상기한 바와 같이, 도 6a 및 도 6b는 본 발명의 실시예에 따른 장치, 방법, 및 컴퓨터 프로그램 제품의 흐름도를 도시한다. 흐름도의 각 블록 및 흐름도의 블록들의 조합이 하드웨어, 펌웨어, 프로세서, 회로, 및/또는 하나 이상의 컴퓨터 프로그램 인스트럭션을 포함하는 소프트웨어의 실행과 관련된 기타 디바이스와 같은 다수의 수단에 의해 구현될 수 있음을 이해할 것이다. 예컨대, 상기한 하나 이상의 절차는 컴퓨터 프로그램 인스트럭션에 의해 구현될 수 있다. 이와 관련하여, 상기한 절차를 구현하는 컴퓨터 프로그램 인스트럭션은 본 발명의 실시예를 사용하는 장치의 메모리 디바이스(204)에 의해 저장되고, 장치의 프로세서(202)에 의해 실행될 수 있다. 알 수 있는 바와 같이, 임의의 이러한 컴퓨터 프로그램 인스트럭션은 머신을 생성하기 위해 컴퓨터 또는 다른 프로그래밍 가능 장치(예를 들면, 하드웨어) 상에 로딩되어, 그 결과적인 컴퓨터 또는 다른 프로그래밍 가능 장치가 흐름도 블록에서의 특정된 기능을 구현한다. 또한, 이들 컴퓨터 프로그램 인스트럭션은 컴퓨터 또는 다른 프로그래밍 가능 장치에게 특정 방식으로 기능할 것을 지시할 수 있는 컴퓨터 판독 가능 메모리에 저장될 수 있어, 컴퓨터 판독 가능 메모리에 저장된 인스트럭션은 흐름도 블록에서의 특정된 기능을 구현하는 제조품을 생산한다. 또한, 컴퓨터 프로그램 인스트럭션은 컴퓨터-구현 프로세스를 일련의 동작들이 컴퓨터 또는 다른 프로그래밍 가능 장치에서 수행될 수 있게 하도록 컴퓨터 또는 다른 프로그래밍 가능 장치 상에 로딩되어 컴퓨터-구현 프로세스를 생성할 수 있어서, 컴퓨터 또는 다른 프로그래밍 가능 장치 상에서 실행되는 인스트럭션은 흐름도 블록에서 특정된 기능을 구현하기 위한 동작을 제공한다.
따라서, 흐름도의 블록은 특정 기능을 수행하기 위한 수단들의 조합 및 특정 기능을 수행하기 동작들의 조합을 지원한다. 또한, 흐름도의 하나 이상의 블록 및 흐름도에서의 블록들의 조합이 특정 기능을 수행하는 특수 목적 하드웨어 기반 컴퓨터 시스템, 또는 특수 목적 하드웨어 및 컴퓨터 인스트럭션의 조합에 의해 구현될 수 있음을 이해할 것이다.
일부 실시예에서, 상기 동작들 중 소정의 것들은 수정되거나 또는 추가로 부연될 수 있다. 또한, 일부 실시예에서, 추가적인 선택적 동작들이 포함될 수 있다. 상기 동작들에 대한 수정, 추가, 또는 부연은 임의의 순서 및 임의의 조합으로 수행될 수 있다.
360° 비디오와 관련하여 일부 실시예가 본 명세서에서 설명되었다. 본 명세서에서 사용되는 바와 같이, 360° 비디오라는 용어는 임의의 투영 포맷을 커버하는 것으로 이해되어야 한다. 또한, 일부 구현예에서는 360° 시야가 고려되지만, 예시적인 구현은 360° 이외의 커버리지를 갖는 시야를 포함하지만 이로 제한되지 않는 다른 시야와 관련해서 사용될 수 있으며, 본 명세서에서 설명된 실시예의 범위를 벗어나지 않고서 일반적으로 그보다 작을 수 있다.
상기에서, 일부 실시예는 ISOBMFF 및/또는 ISOBMFF로부터 도출된 포맷과 관련해서 설명되었다. 그러나, 다수의 실시예는 Matroska 파일 포맷을 포함하지만 이로 한정되지 않는 세그먼트 포맷 및 다른 파일에 마찬가지로 적용된다.
상기에서, 일부 실시예는 HTTP 및/또는 HTTP GET 요청과 관련해서 설명되었다. 실시예가 HTTP의 사용에 제한되지 않지만, 웹소켓(WebSockets) 등의 다른 프로토콜이 대신에 또는 추가적으로 사용될 수 있다는 것을 이해해야 한다. 마찬가지로, HTTP/1.1 또는 HTTP/2 등의 상이한 버전의 HTTP가 사용될 수 있다. 마찬가지로, HTTPS가 사용될 수 있다. 또한, HTTP GET과 같은 요청이 클라이언트에 의해 이루어지지 않는 경우에, 예를 들어 클라이언트가 3GPP MBMS(Multimedia Broadcast/Multicast Service)에 따른 브로드캐스트 등의 브로드캐스트를 통해 데이터를 수신하는 할 때에 본 발명이 적용될 수 있다는 것을 이해해야 한다.
상기에서, 일부 실시예는 MPEG_DASH 또는 DASH와 관련해서 설명되었다. 그러나, 구현예 및 실시예는 HTTP를 통한 스트리밍의 다른 형태, 예를 들어 Apple HLS(HTTP Live Streaming) 등에도 마찬가지로 적용된다. 실시예에서의 DASH-특정 용어가 다른 스트리밍 포맷 및 시스템에서의 유사한 용어로 조정될 수 있다는 것을 이해해야 한다.
상기에서, 일부 실시예는 MPEG-DASH의 MPD와 관련해서 설명되었다. 그러나, 구현예 및 실시예는 예를 들어 HLS M3U 포맷과 같은 다른 스트리밍 매니페스트 포맷, 혹은 예를 들어 SDP와 같은 다른 스트림 매니페스트 포맷에 마찬가지로 적용된다.
상기에서, 일부 실시예는 (서브)세그먼트의 용어와 관련해서 설명되었다. 그 표현에서의 괄호는 실시예가 서브세그먼트의 용어 및 세그먼트의 용어에 동일하게 적용됨을 나타내기 위한 것이다. 또한, 구현예는 세그먼트들 또는 서브세그먼트들과 유사한 유닛들에 유사하게 적용될 수 있다. 예컨대, 실시예는 자립형 무비 프레그먼트들에 적용될 수 있다.
상기에서, 일부 실시예는 MPEG-DASH의 이벤트 및/또는 이벤트 스트림과 관련해서 설명되었다. 실시예가 이벤트 스트림과 유사한 엔티티 및 이벤트 스트림과 유사한 엔티티 스트림에 마찬가지로 적용된다는 것을 이해해야 한다. 예컨대, 일부 실시예에서 이벤트가 시한 메타데이터 트랙의 샘플에 대응하는 경우에, 실시예는 이벤트 스트림보다는 (오디오/비디오 표현과는 별개의 표현으로 전달될 수 있는) 시한 메타데이터 트랙으로 실현될 수 있다.
상기에서, 일부 실시예는 스트리밍의 용어를 참조해서 설명되었다. 그러나, 구현예 및 실시예는 예를 들어 점진적인 다운로딩, 파일 전송과 같은 비디오 전송의 다른 형태, 및 비디오 전화와 같은 대화식 비디오 통신에 마찬가지로 적용된다.
상기에서, 일부 실시예는 돌출 포인트라는 용어를 참조해서 설명되었다. 그러나, 관심 포인트와 같이 유사하거나 동일한 의미를 갖는 용어가 대신 사용될 수 있다. 또한, 단일 포인트(예를 들어 단일 픽셀로서 해석될 수 있음)보다는, 돌출 포인트 대신에 돌출 영역 또는 관심 영역을 지칭함으로써 구현예가 유사하게 실현될 수 있다.
상기에서, 방향 및 배향이라는 구절은 종종 상호 교환 가능하게 사용되었지만, 일부 경우에 방향이란 용어에는 배향이란 용어에 포함되어 있는 회전 "컴포넌트"가 결여되어 있다. 실시예가 어느 한쪽의 해석으로 구현될 수 있으며, 어느 한쪽의 용어가 사용될 수 있다는 것을 이해해야 한다.
본 명세서에서 설명된 본 발명의 다수의 변형예 및 다른 실시예는, 앞서의 설명 및 관련 도면에서 제시된 개시내용의 이점을 갖는 이들 발명이 속해 있는 기술 분야의 당업자들에게 생각날 것이다. 따라서, 개시된 특정 실시예로 본 발명이 한정되지 않으며, 첨부된 청구범위 내에 변형예 및 다른 실시예가 포함되도록 의도됨을 이해해야 한다. 또한, 앞서의 설명 및 관련 도면이 요소 및/또는 기능의 소정의 예시적인 조합과 관련하여 실시예를 설명하지만, 요소 및/또는 기능의 상이한 조합이 첨부된 청구범위에서 벗어나지 않고서 다른 실시예에 의해 제공될 수 있다는 것을 이해해야 한다. 이와 관련하여, 예컨대, 위에서 명시적으로 설명된 것들과는 상이한 요소 및/또는 기능의 조합은 첨부된 청구범위의 일부에서 제시될 수 있는 것으로 고려될 수도 있다. 본 명세서에서 특정 용어가 사용되었지만, 이들은 제한을 목적으로 하는 것이 아니라 일반적이고 설명적인 의미로만 사용된다.

Claims (23)

  1. 재생 디바이스의 의도된 행위(an intended behavior)를 결정하는 단계 - 상기 의도된 행위는 관찰 포인트 및 관찰 배향(orientation) 중 하나 또는 양쪽을 포함하는 관찰 설정을 포함하고, 상기 관찰 포인트는 오디오 및/또는 시각적 프리젠테이션의 획득 또는 재생의 포인트 또는 볼륨을 3차원 공간에서 표시하며, 상기 관찰 배향은 상기 오디오 및/또는 시각적 프리젠테이션이 렌더링되는 것에 따른 배향을 표시함 - 와,
    상기 재생 디바이스의 의도된 행위를 결정하는 단계에 응답하여, 제어 신호를 생성시키는 단계 - 상기 제어 신호는 상기 재생 디바이스 상의 상기 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작과 관련되고, 상기 제어 신호는 상기 재생 디바이스의 상기 의도된 행위를 표시함 - 를 포함하는
    방법.
  2. 제 1 항에 있어서,
    비디오 스트림에서의 재생 모드 조건과 관련된 상기 관찰 설정은 상기 의도된 행위가 상기 재생 디바이스에 의해 적용될 때의 표시를 포함하고, 조건 표시는 연속 재생 및 연속 재생을 개시하기 위한 탐색 또는 랜덤 액세스 중 하나 또는 양쪽을 포함하는 재생 모드를 표시하는
    방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 재생 디바이스 상의 상기 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작은 상기 오디오 및/또는 시각적 프리젠테이션의 일부를 선택하는 것을 포함하는
    방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 관찰 설정은 상기 재생 디바이스의 의도된 행위와 관련된 표시를 수신하는 것을 더 포함하고, 상기 표시는 가장 가능성 있는 시청 방향을 표시하는
    방법.
  5. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
    상기 관찰 설정과 관련된 조건이 충족되는지를 판정하는 것은 상기 재생 디바이스가 랜덤 액세스 모드에 있는지를 판정하는 것을 포함하는
    방법.
  6. 제어 신호를 수신하는 단계 - 상기 제어 신호는 재생 디바이스 상의 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작과 관련되고, 상기 제어 신호는 상기 재생 디바이스의 의도된 행위를 표시하며, 상기 의도된 행위는 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함하는 관찰 설정을 포함하고, 상기 관찰 포인트는 오디오 및/또는 시각적 프리젠테이션의 획득 또는 재생의 포인트 또는 볼륨을 3차원 공간에서 표시하며, 상기 관찰 배향은 상기 오디오 및/또는 시각적 프리젠테이션이 렌더링되는 것에 따른 배향을 표시함 - 와,
    상기 제어 신호에 따라 상기 오디오 및/또는 시각적 프리젠테이션을 렌더링하는 단계를 포함하는
    방법.
  7. 제 6 항에 있어서,
    비디오 스트림에서의 재생 모드 조건과 관련된 상기 관찰 설정은 상기 의도된 행위가 상기 재생 디바이스에 의해 적용될 때의 표시를 포함하고, 조건 표시는 연속 재생 및 연속 재생을 개시하기 위한 탐색 또는 랜덤 액세스 중 하나 또는 양쪽을 포함하는 재생 모드를 표시하며,
    상기 방법은 조건 표시가 적용되는지를 판정하는 단계를 더 포함하는
    방법.
  8. 제 6 항 또는 제 7 항에 있어서,
    상기 제어 신호에 따라 상기 오디오 및/또는 시각적 프리젠테이션의 송신 유닛을 요청하는 단계를 더 포함하는
    방법.
  9. 제 6 항 내지 제 8 항 중 어느 한 항에 있어서,
    연속 재생에서 무조건 적용되는 초기 관찰 설정 표시에 기초하여 후속해서 요청될 가능성이 있는 상기 오디오 및/또는 시각적 프리젠테이션의 송신 유닛을 결정하는 단계와,
    후속해서 요청될 가능성이 있는 상기 오디오 및/또는 시각적 프리젠테이션의 송신 유닛의 정보를 전송하는 단계를 더 포함하는
    방법.
  10. 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서와 함께, 상기 장치로 하여금 적어도,
    재생 디바이스의 의도된 행위를 결정 - 상기 의도된 행위는 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함하는 관찰 설정을 포함하고, 상기 관찰 포인트는 오디오 및/또는 시각적 프리젠테이션의 획득 또는 재생의 포인트 또는 볼륨을 3차원 공간에서 표시하며, 상기 관찰 배향은 상기 오디오 및/또는 시각적 프리젠테이션이 렌더링되는 것에 따른 배향을 표시함 - 하게 하고,
    상기 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 제어 신호를 생성 - 상기 제어 신호는 상기 재생 디바이스 상의 상기 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작과 관련되고, 상기 제어 신호는 상기 재생 디바이스의 상기 의도된 행위를 표시함 - 시키도록 하는
    장치.
  11. 제 10 항에 있어서,
    비디오 스트림에서의 재생 모드 조건과 관련된 상기 관찰 설정은 상기 의도된 행위가 상기 재생 디바이스에 의해 적용될 때의 표시를 포함하고, 조건 표시는 연속 재생 및 연속 재생을 개시하기 위한 탐색 또는 랜덤 액세스 중 하나 또는 양쪽을 포함하는 재생 모드를 표시하는
    장치.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 재생 디바이스 상의 상기 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작은 상기 오디오 및/또는 시각적 프리젠테이션의 일부를 선택하는 것을 포함하는
    장치.
  13. 제 10 항 내지 제 12 항 중 어느 한 항에 있어서,
    상기 관찰 설정은 상기 재생 디바이스의 의도된 행위와 관련된 표시를 수신하는 것을 더 포함하고, 상기 표시는 가장 가능성 있는 시청 방향을 표시하는
    장치.
  14. 제 10 항 내지 제 13 항 중 어느 한 항에 있어서,
    상기 관찰 설정과 관련된 조건이 충족되는지를 판정하는 것은 상기 재생 디바이스가 랜덤 액세스 모드에 있는지를 판정하는 것을 포함하는
    장치.
  15. 적어도 하나의 프로세서 및 컴퓨터 프로그램 코드를 저장하는 적어도 하나의 메모리를 포함하는 장치로서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는, 상기 프로세서와 함께, 상기 장치로 하여금 적어도,
    제어 신호를 수신 - 상기 제어 신호는 재생 디바이스 상의 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작과 관련되고, 상기 제어 신호는 상기 재생 디바이스의 의도된 행위를 표시하며, 상기 의도된 행위는 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함하는 관찰 설정을 포함하고, 상기 관찰 포인트는 오디오 및/또는 시각적 프리젠테이션의 획득 또는 재생의 포인트 또는 볼륨을 3차원 공간에서 표시하며, 상기 관찰 배향은 상기 오디오 및/또는 시각적 프리젠테이션이 렌더링되는 것에 따른 배향을 표시함 - 하게 하고,
    상기 제어 신호에 따라 상기 오디오 및/또는 시각적 프리젠테이션을 렌더링하게 하는
    장치.
  16. 제 15 항에 있어서,
    비디오 스트림에서의 재생 모드 조건과 관련된 상기 관찰 설정은 상기 의도된 행위가 상기 재생 디바이스에 의해 적용될 때의 표시를 포함하고, 조건 표시는 연속 재생 및 연속 재생을 개시하기 위한 탐색 또는 랜덤 액세스 중 하나 또는 양쪽을 포함하는 재생 모드를 표시하며,
    상기 장치는 조건 표시가 적용되는지를 판정하도록 더 구성되는
    장치.
  17. 제 15 항 또는 제 16 항에 있어서,
    상기 제어 신호에 따라 상기 오디오 및/또는 시각적 프리젠테이션의 송신 유닛을 요청하도록 더 구성되는
    장치.
  18. 제 15 항 내지 제 17 항 중 어느 한 항에 있어서,
    연속 재생에서 무조건 적용되는 초기 관찰 설정 표시에 기초하여 후속해서 요청될 가능성이 있는 상기 오디오 및/또는 시각적 프리젠테이션의 송신 유닛을 결정하고,
    후속해서 요청될 가능성이 있는 상기 오디오 및/또는 시각적 프리젠테이션의 송신 유닛의 정보를 전송하도록 더 구성되는
    장치.
  19. 컴퓨터 실행가능 프로그램 코드 인스트럭션이 저장된 적어도 하나의 비일시적 컴퓨터 판독가능 저장 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 실행가능 프로그램 코드 인스트럭션은,
    재생 디바이스의 의도된 행위를 결정 - 상기 의도된 행위는 관찰 포인트 및 관찰 배향 중 하나 또는 양쪽을 포함하는 관찰 설정을 포함하고, 상기 관찰 포인트는 오디오 및/또는 시각적 프리젠테이션의 획득 또는 재생의 포인트 또는 볼륨을 3차원 공간에서 표시하며, 상기 관찰 배향은 상기 오디오 및/또는 시각적 프리젠테이션이 렌더링되는 것에 따른 배향을 표시함 - 하고,
    상기 재생 디바이스의 의도된 행위를 결정하는 것에 응답하여, 제어 신호를 생성 - 상기 제어 신호는 상기 재생 디바이스 상의 상기 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작과 관련되고, 상기 제어 신호는 상기 재생 디바이스의 상기 의도된 행위를 표시함 - 시키도록 구성된 프로그램 코드 인스트럭션을 포함하는
    컴퓨터 프로그램 제품.
  20. 제 19 항에 있어서,
    비디오 스트림에서의 재생 모드 조건과 관련된 상기 관찰 설정은 상기 의도된 행위가 상기 재생 디바이스에 의해 적용될 때의 표시를 포함하고, 조건 표시는 연속 재생 및 연속 재생을 개시하기 위한 탐색 또는 랜덤 액세스 중 하나 또는 양쪽을 포함하는 재생 모드를 표시하는
    컴퓨터 프로그램 제품.
  21. 제 19 항 또는 제 20 항에 있어서,
    상기 재생 디바이스 상의 상기 오디오 및/또는 시각적 프리젠테이션의 렌더링 동작은 상기 오디오 및/또는 시각적 프리젠테이션의 일부를 선택하는 것을 포함하는
    컴퓨터 프로그램 제품.
  22. 제 19 항 내지 제 21 항 중 어느 한 항에 있어서,
    상기 관찰 설정은 상기 재생 디바이스의 의도된 행위와 관련된 표시를 수신하는 것을 더 포함하고, 상기 표시는 가장 가능성 있는 시청 방향을 표시하는
    컴퓨터 프로그램 제품.
  23. 제 19 항 내지 제 22 항 중 어느 한 항에 있어서,
    상기 관찰 설정과 관련된 조건이 충족되는지를 판정하는 것은 상기 재생 디바이스가 랜덤 액세스 모드에 있는지를 결정하는 것을 포함하는
    컴퓨터 프로그램 제품.
KR1020197010000A 2016-09-09 2017-09-06 제어된 관찰 포인트 및 배향 선택 시청각 콘텐츠에 대한 방법 및 장치 KR102282759B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/261,192 2016-09-09
US15/261,192 US11172005B2 (en) 2016-09-09 2016-09-09 Method and apparatus for controlled observation point and orientation selection audiovisual content
PCT/FI2017/050626 WO2018046797A1 (en) 2016-09-09 2017-09-06 Method and apparatus for controlled observation point and orientation selection audiovisual content

Publications (2)

Publication Number Publication Date
KR20190045934A true KR20190045934A (ko) 2019-05-03
KR102282759B1 KR102282759B1 (ko) 2021-07-30

Family

ID=61560634

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197010000A KR102282759B1 (ko) 2016-09-09 2017-09-06 제어된 관찰 포인트 및 배향 선택 시청각 콘텐츠에 대한 방법 및 장치

Country Status (9)

Country Link
US (1) US11172005B2 (ko)
EP (1) EP3510438B1 (ko)
JP (1) JP6735415B2 (ko)
KR (1) KR102282759B1 (ko)
CN (1) CN109691123B (ko)
PH (1) PH12019500411A1 (ko)
RU (1) RU2728904C1 (ko)
WO (1) WO2018046797A1 (ko)
ZA (1) ZA201902058B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102216956B1 (ko) * 2019-11-26 2021-02-19 서울과학기술대학교 산학협력단 다중 시점 영상의 프리로드 시스템 및 방법
KR102482741B1 (ko) * 2021-09-06 2022-12-29 엘아이지넥스원 주식회사 스트리밍 방식으로 데이터를 송신하는 신호분석 시스템 및 방법

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9781342B1 (en) 2015-10-22 2017-10-03 Gopro, Inc. System and method for identifying comment clusters for panoramic content segments
WO2018011054A1 (en) 2016-07-15 2018-01-18 Koninklijke Kpn N.V. Streaming virtual reality video
EP4084480A1 (en) 2016-09-09 2022-11-02 Vid Scale, Inc. Methods and apparatus to reduce latency for 360-degree viewport adaptive streaming
US20190362151A1 (en) * 2016-09-14 2019-11-28 Koninklijke Kpn N.V. Streaming virtual reality video
US10623635B2 (en) * 2016-09-23 2020-04-14 Mediatek Inc. System and method for specifying, signaling and using coding-independent code points in processing media contents from multiple media sources
US10115237B2 (en) * 2016-09-28 2018-10-30 Redzone Robotics, Inc. Virtual reality display of pipe inspection data
KR102531386B1 (ko) * 2016-10-04 2023-05-12 주식회사 비원영상기술연구소 영상 데이터 부호화/복호화 방법 및 장치
CN114928737B (zh) 2016-10-12 2023-10-27 弗劳恩霍夫应用研究促进协会 空间不均等流媒体化
CN106412582B (zh) * 2016-10-21 2019-01-29 北京大学深圳研究生院 全景视频感兴趣区域的描述方法和编码方法
KR102598082B1 (ko) * 2016-10-28 2023-11-03 삼성전자주식회사 영상 표시 장치, 모바일 장치 및 그 동작방법
CN108616751B (zh) * 2016-12-12 2023-05-12 上海交通大学 媒体信息的处理方法、装置及系统
WO2018122402A1 (en) * 2017-01-02 2018-07-05 Koninklijke Kpn N.V. Selectively updating a dynamic manifest file
CN110169077A (zh) * 2017-01-06 2019-08-23 索尼公司 信息处理装置和信息处理方法
WO2018131832A1 (ko) * 2017-01-10 2018-07-19 엘지전자 주식회사 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
US10560680B2 (en) * 2017-01-28 2020-02-11 Microsoft Technology Licensing, Llc Virtual reality with interactive streaming video and likelihood-based foveation
JP7159057B2 (ja) * 2017-02-10 2022-10-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 自由視点映像生成方法及び自由視点映像生成システム
US10904508B2 (en) * 2017-03-15 2021-01-26 Avago Technologies International Sales Pte. Limited 360 degree video with combined projection format
KR102334628B1 (ko) * 2017-03-17 2021-12-03 엘지전자 주식회사 360도 비디오의 영역 정보 전달 방법 및 장치
US20200112710A1 (en) * 2017-03-17 2020-04-09 Lg Electronics Inc. Method and device for transmitting and receiving 360-degree video on basis of quality
WO2018173791A1 (ja) * 2017-03-22 2018-09-27 ソニー株式会社 画像処理装置および方法、並びにプログラム
GB2560921B (en) * 2017-03-27 2020-04-08 Canon Kk Method and apparatus for encoding media data comprising generated content
US20190373245A1 (en) * 2017-03-29 2019-12-05 Lg Electronics Inc. 360 video transmission method, 360 video reception method, 360 video transmission device, and 360 video reception device
US10579898B2 (en) * 2017-04-16 2020-03-03 Facebook, Inc. Systems and methods for provisioning content using barrel projection representation
US11272160B2 (en) * 2017-06-15 2022-03-08 Lenovo (Singapore) Pte. Ltd. Tracking a point of interest in a panoramic video
US10587904B2 (en) * 2017-07-10 2020-03-10 Qualcomm Incorporated Processing media data using an omnidirectional media format
US11665219B2 (en) * 2017-07-10 2023-05-30 Qualcomm Incorporated Processing media data using a generic descriptor for file format boxes
US11025919B2 (en) * 2017-10-03 2021-06-01 Koninklijke Kpn N.V. Client-based adaptive streaming of nonlinear media
US11310540B2 (en) * 2017-11-10 2022-04-19 Qualcomm Incorporated Interfaces between dash aware application and dash client for service interactivity support
US11451838B2 (en) 2017-12-07 2022-09-20 Koninklijke Kpn N.V. Method for adaptive streaming of media
CN111869223A (zh) * 2018-03-22 2020-10-30 华为技术有限公司 沉浸式媒体的视场角度量
US11140373B2 (en) * 2018-04-05 2021-10-05 Lg Electronics Inc. Method for transmitting 360-degree video, method for receiving 360-degree video, apparatus for transmitting 360-degree video, and apparatus for receiving 360-degree video
CN110351492B (zh) * 2018-04-06 2021-11-19 中兴通讯股份有限公司 一种视频数据处理方法、装置及介质
EP3777137A4 (en) * 2018-04-06 2021-10-27 Nokia Technologies Oy METHOD AND DEVICE FOR SIGNALING THE EXTENSION OF CONSIDERATION AND THE AREA OF CONSIDERATION FOR OMNIDIRECTIONAL CONTENT
WO2019193245A1 (en) 2018-04-06 2019-10-10 Nokia Technologies Oy Method and apparatus for signaling and storage of multiple viewpoints for omnidirectional audiovisual content
EP3777220A1 (en) * 2018-04-13 2021-02-17 Huawei Technologies Co., Ltd. Immersive media metrics for virtual reality content with multiple viewpoints
US11917127B2 (en) 2018-05-25 2024-02-27 Interdigital Madison Patent Holdings, Sas Monitoring of video streaming events
FI12136U1 (fi) * 2018-06-01 2018-09-14 Pauli Kari Musiikkiesitystä jakava järjestelmä
US11587200B2 (en) * 2018-09-28 2023-02-21 Nokia Technologies Oy Method and apparatus for enabling multiple timeline support for omnidirectional content playback
US11481961B2 (en) * 2018-10-02 2022-10-25 Sony Corporation Information processing apparatus and information processing method
CN109448001B (zh) * 2018-10-26 2021-08-27 世纪开元智印互联科技集团股份有限公司 一种图片自动裁剪方法
JP2022051973A (ja) * 2019-02-08 2022-04-04 ソニーグループ株式会社 情報処理装置および情報処理方法、並びにプログラム
US10715783B1 (en) * 2019-03-01 2020-07-14 Adobe Inc. Stereo-aware panorama conversion for immersive media
US11358057B2 (en) * 2019-03-22 2022-06-14 Disney Enterprises, Inc. Systems and methods for allowing interactive broadcast streamed video from dynamic content
WO2020201632A1 (en) * 2019-04-05 2020-10-08 Nokia Technologies Oy An apparatus, a method and a computer program for omnidirectional video
US11523185B2 (en) 2019-06-19 2022-12-06 Koninklijke Kpn N.V. Rendering video stream in sub-area of visible display area
US11863839B2 (en) 2019-08-02 2024-01-02 Dolby Laboratories Licensing Corporation Personalized sensitivity measurements and playback factors for adaptive and personalized media coding and delivery
US10984513B1 (en) 2019-09-30 2021-04-20 Google Llc Automatic generation of all-in-focus images with a mobile camera
WO2021102953A1 (en) * 2019-11-29 2021-06-03 Zte Corporation Multi-view video processing method and apparatus
CN112511866B (zh) 2019-12-03 2024-02-23 中兴通讯股份有限公司 媒体资源播放方法、装置、设备和存储介质
US11190802B2 (en) * 2020-03-27 2021-11-30 Nokia Technologies Oy Apparatus, a method and a computer program for omnidirectional video
US11546406B2 (en) * 2020-04-13 2023-01-03 Tencent America LLC Media systems and methods including mixed event message tracks
EP3917104A1 (en) * 2020-05-29 2021-12-01 Atos Information Technology GmbH System and method for streaming content
US11570517B2 (en) * 2020-06-23 2023-01-31 Tencent America LLC Application intended interactive selection information for interactive playback of dash content
KR20220012658A (ko) * 2020-07-23 2022-02-04 삼성전자주식회사 3d xr 미디어 데이터를 전송하는 방법 및 장치
US11687386B2 (en) * 2020-10-07 2023-06-27 Tencent America LLC MPD validity expiration processing model
CN113141346B (zh) * 2021-03-16 2023-04-28 青岛小鸟看看科技有限公司 基于串流的vr一拖多系统及方法
GB2605965A (en) * 2021-04-16 2022-10-26 Canon Kk Methods and devices for improving storage and transmission of uncompressed data while using a standard format
CN113473235A (zh) * 2021-06-16 2021-10-01 深圳锐取信息技术股份有限公司 8k录播回放视频的生成方法、装置、存储介质及设备
US20230209032A1 (en) * 2021-12-23 2023-06-29 Meta Platforms Technologies, Llc Detection, analysis and correction of disparities in a display system utilizing disparity sensing port
GB2624904A (en) * 2022-11-30 2024-06-05 Sony Interactive Entertainment Inc Virtual reality streaming system and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150346812A1 (en) * 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for receiving content and/or playing back content
JP2016514314A (ja) * 2013-03-14 2016-05-19 クアルコム,インコーポレイテッド ヘッドマウントディスプレイ用ユーザインターフェース
US20160219325A1 (en) * 2015-01-22 2016-07-28 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
US20160260251A1 (en) * 2015-03-06 2016-09-08 Sony Computer Entertainment Inc. Tracking System for Head Mounted Display

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256046B1 (en) * 1997-04-18 2001-07-03 Compaq Computer Corporation Method and apparatus for visual sensing of humans for active public interfaces
US7630986B1 (en) * 1999-10-27 2009-12-08 Pinpoint, Incorporated Secure data interchange
US7764282B2 (en) 2002-11-05 2010-07-27 Asia Air Survey Co., Ltd. Visualizing system, visualizing method, and visualizing program
ZA200608571B (en) 2004-04-22 2008-07-30 Technicolor Context dependent multi-angle navigation technique for digital versatile discs
WO2006029681A2 (en) * 2004-09-17 2006-03-23 Accenture Global Services Gmbh Personalized marketing architecture
US8219438B1 (en) * 2008-06-30 2012-07-10 Videomining Corporation Method and system for measuring shopper response to products based on behavior and facial expression
US8386560B2 (en) 2008-09-08 2013-02-26 Microsoft Corporation Pipeline for network based server-side 3D image rendering
US8677005B2 (en) 2009-11-04 2014-03-18 Futurewei Technologies, Inc. System and method for media content streaming
KR101763887B1 (ko) * 2011-01-07 2017-08-02 삼성전자주식회사 디바이스간 동기화된 인터랙션을 제공하는 콘텐츠 동기화 장치 및 방법
US9485487B2 (en) * 2011-06-22 2016-11-01 Koninklijke Philips N.V. Method and apparatus for generating a signal for a display
KR101914079B1 (ko) * 2012-04-04 2019-01-14 삼성전자주식회사 고장 진단 시스템에서의 고장 진단 방법 및 장치
KR20130118820A (ko) * 2012-04-20 2013-10-30 삼성전자주식회사 증강현실 서비스를 위한 미디어 파일의 제공 방법 및 장치
KR20140061620A (ko) * 2012-11-13 2014-05-22 삼성전자주식회사 증강 현실을 활용한 소셜 네트워크 서비스 제공 시스템 및 방법과, 디바이스
EP2765775A1 (en) 2013-02-06 2014-08-13 Koninklijke Philips N.V. System for generating intermediate view images
US9418059B1 (en) * 2013-02-28 2016-08-16 The Boeing Company Methods and systems for processing natural language for machine learning
KR102182161B1 (ko) * 2014-02-20 2020-11-24 엘지전자 주식회사 Hmd 및 그 제어 방법
US20150324829A1 (en) * 2014-05-09 2015-11-12 Yvolver, Inc. Systems and methods for operating a loyalty platform for games and internet-connected applications
KR20150137799A (ko) * 2014-05-30 2015-12-09 엘지전자 주식회사 이동 단말기 및 그 제어 방법
US10310595B2 (en) * 2014-06-30 2019-06-04 Sony Corporation Information processing apparatus, information processing method, computer program, and image processing system
WO2016009864A1 (ja) 2014-07-18 2016-01-21 ソニー株式会社 情報処理装置、表示装置、情報処理方法、プログラム、および情報処理システム
JP6344125B2 (ja) * 2014-07-31 2018-06-20 セイコーエプソン株式会社 表示装置、表示装置の制御方法、および、プログラム
US20160150212A1 (en) 2014-11-26 2016-05-26 Sony Corporation Live selective adaptive bandwidth
US9997199B2 (en) * 2014-12-05 2018-06-12 Warner Bros. Entertainment Inc. Immersive virtual reality production and playback for storytelling content
US9692380B2 (en) * 2015-04-08 2017-06-27 Google Inc. Dynamic volume adjustment
US9130685B1 (en) * 2015-04-14 2015-09-08 Tls Corp. Optimizing parameters in deployed systems operating in delayed feedback real world environments
FI20165114A (fi) 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
KR102170550B1 (ko) 2016-05-24 2020-10-29 노키아 테크놀로지스 오와이 미디어 콘텐츠를 인코딩하는 방법, 장치 및 컴퓨터 프로그램
US20170347084A1 (en) * 2016-05-27 2017-11-30 Intel Corporation Virtual reality panoramic video system using scalable video coding layers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016514314A (ja) * 2013-03-14 2016-05-19 クアルコム,インコーポレイテッド ヘッドマウントディスプレイ用ユーザインターフェース
US20150346812A1 (en) * 2014-05-29 2015-12-03 Nextvr Inc. Methods and apparatus for receiving content and/or playing back content
US20160219325A1 (en) * 2015-01-22 2016-07-28 Microsoft Technology Licensing, Llc Predictive server-side rendering of scenes
US20160260251A1 (en) * 2015-03-06 2016-09-08 Sony Computer Entertainment Inc. Tracking System for Head Mounted Display

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102216956B1 (ko) * 2019-11-26 2021-02-19 서울과학기술대학교 산학협력단 다중 시점 영상의 프리로드 시스템 및 방법
US11375171B2 (en) 2019-11-26 2022-06-28 Fdn. for Res.&Bus., Seoul Nat. Univ. of Sci.&Tech. System and method for preloading multi-view video
KR102482741B1 (ko) * 2021-09-06 2022-12-29 엘아이지넥스원 주식회사 스트리밍 방식으로 데이터를 송신하는 신호분석 시스템 및 방법

Also Published As

Publication number Publication date
WO2018046797A1 (en) 2018-03-15
JP2019526994A (ja) 2019-09-19
EP3510438A4 (en) 2020-04-22
EP3510438A1 (en) 2019-07-17
US20180077210A1 (en) 2018-03-15
JP6735415B2 (ja) 2020-08-05
KR102282759B1 (ko) 2021-07-30
CN109691123A (zh) 2019-04-26
WO2018046797A4 (en) 2018-05-03
CN109691123B (zh) 2022-03-01
PH12019500411A1 (en) 2019-11-11
EP3510438B1 (en) 2023-04-19
US11172005B2 (en) 2021-11-09
RU2728904C1 (ru) 2020-08-03
ZA201902058B (en) 2021-02-24

Similar Documents

Publication Publication Date Title
KR102282759B1 (ko) 제어된 관찰 포인트 및 배향 선택 시청각 콘텐츠에 대한 방법 및 장치
CN109076229B (zh) 在图片中最感兴趣的区域
CN106664443B (zh) 根据hevc拼贴视频流确定感兴趣区域
US11094130B2 (en) Method, an apparatus and a computer program product for video encoding and video decoding
US11943421B2 (en) Method, an apparatus and a computer program product for virtual reality
US11805303B2 (en) Method and apparatus for storage and signaling of media segment sizes and priority ranks
WO2019193251A1 (en) Method and apparatus for signaling of viewing extents and viewing space for omnidirectional content
US20180343472A1 (en) High-level signalling for fisheye video data
CN113574900B (zh) 用于对媒体内容中的实体进行分组的方法和装置
EP4128808A1 (en) An apparatus, a method and a computer program for video coding and decoding
US20190014362A1 (en) Enhanced region-wise packing and viewport independent hevc media profile
US11722751B2 (en) Method, an apparatus and a computer program product for video encoding and video decoding
EP3777219B1 (en) Method and apparatus for signaling and storage of multiple viewpoints for omnidirectional audiovisual content

Legal Events

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