KR102204178B1 - 관심 영역들의 시그널링의 시스템들 및 방법들 - Google Patents

관심 영역들의 시그널링의 시스템들 및 방법들 Download PDF

Info

Publication number
KR102204178B1
KR102204178B1 KR1020197016344A KR20197016344A KR102204178B1 KR 102204178 B1 KR102204178 B1 KR 102204178B1 KR 1020197016344 A KR1020197016344 A KR 1020197016344A KR 20197016344 A KR20197016344 A KR 20197016344A KR 102204178 B1 KR102204178 B1 KR 102204178B1
Authority
KR
South Korea
Prior art keywords
signaling information
video
viewport
tiles
roi
Prior art date
Application number
KR1020197016344A
Other languages
English (en)
Other versions
KR20190091275A (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 KR20190091275A publication Critical patent/KR20190091275A/ko
Application granted granted Critical
Publication of KR102204178B1 publication Critical patent/KR102204178B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/167Position within a video image, e.g. region of interest [ROI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

비디오 데이터를 프로세싱하기 위한 기법들 및 시스템들이 제공된다. 하나의 예에서, 360-도 비디오 데이터와 연관된 미디어 파일이 획득될 수 있다. 360-도 비디오 데이터는 장면의 구면 표현을 포함할 수도 있다. 미디어 파일은 구면 표현에서의 관심 영역 (ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함할 수도 있다. 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함할 수도 있다. 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타낼 수도 있고, 상기 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성된다. 상기 화상의 데이터로부터의 뷰포트 영역에 대응하는 픽셀들은 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 추출될 수 있고, 렌더링을 위해 제공될 수 있다.

Description

관심 영역들의 시그널링의 시스템들 및 방법들
이 출원은 비디오 코딩 및 압축에 관한 것이다. 보다 구체적으로, 이 출원은 관심 영역들을 시그널링하기 위한 파일들을 생성하고 프로세싱하기 위한 시스템들 및 방법들에 관한 것이다.
많은 디바이스들 및 시스템들은 비디오 데이터가 프로세싱되고 소비를 위해 출력되도록 허용한다. 디지털 비디오 데이터는 소비자들 및 비디오 제공자들의 수요들을 충족시키기 위해 대량의 데이터를 포함한다. 예를 들어, 비디오 데이터의 소비자들은 높은 충실도, 해상도들, 프레임 레이트들 등을 갖는 최고 품질의 비디오를 원한다. 결과로서, 이들 요구들을 충족시키기 위해 필요한 대량의 비디오 데이터는 그 비디오 데이터를 프로세싱하고 저장하는 통신 네트워크들 및 디바이스들에 부담을 지운다.
비디오 데이터를 압축하기 위해 다양한 비디오 코딩 기법들이 사용될 수도 있다. 비디오 코딩은 하나 이상의 비디오 코딩 표준들에 따라 수행된다. 예를 들어, 비디오 코딩 표준들은 고-효율 비디오 코딩 (HEVC), 어드밴스드 비디오 코딩 (AVC), MPEG (moving picture experts group) 코딩 등을 포함한다. 비디오 코딩은 일반적으로, 비디오 이미지들 또는 시퀀스들에서 존재하는 리던던시 (redundancy) 의 이점을 취하는 예측 방법들 (예컨대, 인터-예측 (inter-prediction), 인트라-예측 (intra-prediction) 등) 을 이용한다. 비디오 코딩 기법들의 중요한 목적은 비디오 데이터를, 비디오 데이터의 송신 및 비디오 데이터의 렌더링 (rendering) 양자를 용이하게 하는 형태로 압축하기 위한 것이다.
일부 예들에서, 360-도 비디오 콘텐츠에서 하나 이상의 관심 영역들 (ROI들) 의 시그널링 정보를 포함하도록 360-도 비디오 콘텐츠에 대한 미디어 파일들을 생성하기 위한 기법들 및 시스템들이 기술된다. 렌더링 (rendering) 을 위해 비디오 콘텐츠로부터 하나 이상의 ROI들을 추출하기 위해 미디어 파일들에 포함된 시그널링 정보를 프로세싱하기 위한 기법들 및 시스템들이 또한 기술된다. 360-도 비디오 콘텐츠는 특정 시점에서 장면을 캡처하는 이미지들의 셋트를 스티칭 (stitching) 함으로써 형성된 구면형 비디오 (spherical video) 일 수도 있다. 360-도 비디오 화상의 ROI 는 장면의 특정 부분을 캡처하는 화상의 미리결정된 영역일 수도 있다 (예컨대, 시청자의 뷰를 지시하기 위한 감독의 컷에 기초한 영역, 화상의 프리젠테이션 (presentation) 시간에서 사용자에게 통계적으로 가장 가능성 높게 렌더링될 영역, 또는 다른 미리결정된 관심 영역). ROI 는 또한, 예를 들어 뷰어의 방향에 기초하여 동적으로 결정될 수 있다. 시그널링 정보는, 다른 것들도 있지만, 360-도 비디오 적응형 스트리밍에서의 데이터 프리-페칭 (pre-fetching) 을 위해서, 360-도 비디오가 트랜스코딩될 때 트랜스코딩 최적화를 위해서, 캐시 관리를 위해서, 360-도 비디오의 렌더링을 용이하게 하기 위해서 드와 같은, 다양한 목적들을 위해 사용될 수 있다.
미디어 파일들은, 하이퍼텍스트 전송 프로토콜 (HTTP) 을 통한 동적 적응형 스트리밍 (DASH 로서 알려짐) 에 따른 적응형 비트레이트 스트리밍 미디어를 위해 사용되는 미디어 프리젠테이션 디스크립션 (media presentation description; MPD), 또는 임의의 다른 적합한 적응형 스트리밍 프로토콜에 따른 다른 적합한 파일과 같은 임의의 적합한 스트리밍 미디어 파일을 포함할 수 있다.
일부 예들에서, 비디오 데이터를 프로세싱하는 방법이 제공된다. 그 방법은, 360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 단계로서, 360-도 비디오 데이터는 장면의 구면 표현 (spherical representation) 을 포함하고, 미디어 파일은 구면 표현에서의 관심 영역 (region of interest; ROI) 에 대응하는 뷰포트 영역 (viewport region) 의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하고, 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간 (spherical space) 에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타내며, 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성되는, 상기 미디어 파일을 획득하는 단계를 포함할 수도 있다. 방법은 추가적으로, 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 화상의 데이터로부터 뷰포트 영역에 대응하는 픽셀들을 추출하는 단계, 및, 디스플레이를 위해 뷰포트 영역을 렌더링하기 위해 픽셀들을 제공하는 단계를 포함할 수도 있다.
일부 양태들에서, 제 1 시그널링 정보는 장면의 구면 표현의 구면 센터에 대한 뷰포트 영역의 센터의 제 1 각도 및 제 2 각도를 포함할 수도 있고, 제 1 각도는 제 1 평면 상에 형성되고, 제 2 각도는 제 2 평면 상에 형성되며, 제 1 평면은 제 2 평면에 대해 수직이다.
일부 양태들에서, 제 1 시그널링 정보는, 뷰포트 영역의 폭과 연관된 제 3 각도 및 뷰포트 영역의 높이와 연관된 제 4 각도를 더 포함할 수도 있다.
일부 양태들에서, 제 3 각도는 뷰포트 영역의 제 1 에지와 제 2 에지 사이에 형성될 수도 있고; 제 4 각도는 뷰포트 영역의 제 3 에지와 제 4 에지 사이에 형성된다.
일부 양태들에서, ROI 는 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의될 수도 있고; 4 개의 평면들의 각각은 구면 센터와 또한 교차한다. 일부 양태들에서, 적어도 4 개의 평면들의 구면 표현과의 교차들에 기초하여 뷰포트 영역의 형상이 결정될 수도 있다. 일부 양태들에서, 뷰포트 영역에 대응하는 픽셀들은 형상에 기초하여 추출된다.
일부 양태들에서, 화상은 복수의 타일들 (tiles) 을 포함할 수도 있다. 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 하나 이상의 타일들을 정의할 수도 있다. 일부 양태들에서, 방법은, 제 2 시그널링 정보에 기초하여 복수의 타일들로부터 하나 이상의 타일들을 획득하는 단계, 및 하나 이상의 타일들로부터 픽셀들을 추출하는 단계를 더 포함할 수도 있다.
일부 양태들에서, 제 2 시그널링 정보는 화상에서의 하나 이상의 타일들과 연관된 하나 이상의 좌표들을 포함할 수도 있다. 하나 이상의 타일들은 타일 그룹을 형성할 수도 있고, 제 2 시그널링 정보는 타일 그룹과 연관된 그룹 식별자를 포함할 수도 있다. 일부 양태들에서, 복수의 타일들은 모션-제약된 타일들이다.
일부 양태들에서, 제 2 시그널링 정보는 ROI 를 평면 상에 투영함으로써 형성된 뷰포트 영역 내의 미리결정된 로케이션 (location), 뷰포트 영역의 폭, 및 뷰포트 영역의 높이와 연관된 픽셀 좌표들을 포함할 수도 있다.
미디어 파일은 국제 표준 기구 (ISO) 베이스 미디어 파일 포맷 (International Standards Organization (ISO) base media file format; ISOBMFF) 에 기초할 수도 있다. 미디어 파일은 구면형 비디오 장면에 대응하는 비디오 샘플을 포함하는 샘플 그룹을 식별할 수도 있고; 그리고, 제 1 시그널링 정보 및 제 2 시그널링 정보는 샘플 그룹의 하나 이상의 신택스 엘리먼트들 (syntax elements) 에 포함된다.
일부 양태들에서, 미디어 파일은, 미디어 프리젠테이션 디스크립션 (MPD) 포맷에 기초할 수도 있고, 하나 이상의 적응 셋트들 (adaptation sets) 을 포함한다. 하나 이상의 적응 셋트들의 각각은 하나 이상의 표현들을 포함할 수도 있다. 제 1 시그널링 정보, 제 2 시그널링 정보, 및 화상에 대한 링크는 하나 이상의 표현들에 포함된 ROI 와 연관된 하나 이상의 엘리먼트들에 포함될 수도 있다. 일부 양태들에서, 방법은 추가적으로, 미디어 파일에 포함된 링크에 기초하여 화상을 획득하는 단계를 포함할 수도 있다.
일부 양태들에서, 하나 이상의 표현들은 타일-기반 표현들일 수도 있고, 제 2 시그널링 정보는 하나 이상의 타일-기반 표현들에 포함된 ROI 를 포함하는 타일들과 연관된 식별자들을 포함할 수도 있다.
일부 양태들에서, 장면의 구면 표현은 직선형 투영을 이용하여 평면 상으로 투영될 수도 있다.
일부 양태들에서, 방법은, 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 화상으로부터 다수의 ROI 들의 픽셀들을 추출하는 단계를 더 포함할 수도 있다.
일부 예들에서, 비디오 데이터를 프로세싱하기 위한 장치가 제공된다. 그 장치는, 360-도 비디오 데이터를 저장하도록 구성된 메모리, 및, 360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 것으로서, 360-도 비디오 데이터는 장면의 구면 표현을 포함하고, 미디어 파일은 구면 표현에서의 관심 영역 (ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하고, 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타내며, 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성되는, 상기 미디어 파일을 획득하는 것을 행하도록 구성된 프로세서를 포함할 수도 있다. 프로세서는 추가적으로, 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 화상의 뷰포트 영역에 대응하는 픽셀을 추출하며, 그리고, 디스플레이를 위해 뷰포트 영역을 렌더링하기 위해 픽셀들을 제공하도록 구성될 수도 있다.
일부 양태들에서, 프로세서는 추가적으로, 제 1 시그널링 정보로부터, 장면의 구면 표현의 구면 센터에 대한 뷰포트 영역의 센터의 제 1 각도 및 제 2 각도를 결정하도록 구성되고, 제 1 각도는 제 1 평면 상에 형성되고, 제 2 각도는 제 2 평면 상에 형성되며, 제 1 평면은 제 2 평면에 대해 수직이다.
일부 양태들에서, 프로세서는 추가적으로, 제 1 시그널링 정보로부터, 뷰포트 영역의 폭과 연관된 제 3 각도 및 뷰포트 영역의 높이와 연관된 제 4 각도를 결정하도록 구성될 수도 있다.
일부 양태들에서, 제 3 각도는 뷰포트 영역의 제 1 에지와 제 2 에지 사이에 형성되고; 제 4 각도는 뷰포트 영역의 제 3 에지와 제 4 에지 사이에 형성된다. 일부 양태들에서, ROI 는 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의되고; 4 개의 평면들의 각각은 구면 센터와 또한 교차한다.
일부 양태들에서, 프로세서는 추가적으로, 적어도 4 개의 평면들의 구면 표현과의 교차들에 기초하여 뷰포트 영역의 형상을 결정하도록 구성된다.
일부 양태들에서, 프로세서는 형상에 기초하여 뷰포트 영역에 대응하는 픽셀들은 추출하도록 구성된다.
일부 양태들에서, 화상은 복수의 타일들을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 하나 이상의 타일들을 정의할 수도 있다. 프로세서는 추가적으로, 제 2 시그널링 정보에 기초하여 복수의 타일들로부터 하나 이상의 타일들을 획득하고, 하나 이상의 타일들로부터 픽셀들을 추출하도록 구성된다.
일부 양태들에서, 프로세서는 추가적으로, 제 2 시그널링 정보로부터, 화상에서의 하나 이상의 타일들과 연관된 하나 이상의 좌표들을 결정하도록 구성된다.
일부 양태들에서, 하나 이상의 타일들은 타일 그룹을 형성한다. 프로세서는 추가적으로, 제 2 시그널링 정보로부터, 타일 그룹과 연관된 그룹 식별자를 결정하도록 구성된다. 일부 양태들에서, 복수의 타일들은 모션-제약된 타일들이다.
일부 양태들에서, 프로세서는 추가적으로, 제 2 시그널링 정보로부터, ROI 를 평면 상에 투영함으로써 형성된 뷰포트 영역 내의 미리결정된 로케이션, 뷰포트 영역의 폭, 및 뷰포트 영역의 높이와 연관된 픽셀 좌표들을 결정하도록 구성된다.
일부 양태들에서, 미디어 파일은 국제 표준 기구 (ISO) 베이스 미디어 파일 포맷 (ISOBMFF) 에 기초한다. 미디어 파일은 구면형 비디오 장면에 대응하는 비디오 샘플을 포함하는 샘플 그룹을 식별할 수도 있고; 그리고, 프로세서는 추가적으로, 샘플 그룹의 하나 이상의 신택스 엘리먼트들로부터, 제 1 시그널링 정보 및 제 2 시그널링 정보를 추출하도록 구성된다.
일부 양태들에서, 미디어 파일은, 미디어 프리젠테이션 디스크립션 (MPD) 포맷에 기초하고, 하나 이상의 적응 셋트들을 포함한다. 하나 이상의 적응 셋트들의 각각은 하나 이상의 표현들을 포함할 수도 있다. 프로세서는 추가적으로, 하나 이상의 표현들에 포함된 ROI 와 연관된 하나 이상의 엘리먼트들에 기초하여, 제 1 시그널링 정보, 제 2 시그널링 정보, 및 화상에 대한 링크를 결정하고; 그리고, 미디어 파일에 포함된 링크에 기초하여 화상을 획득하도록 구성된다.
일부 양태들에서, 하나 이상의 표현들은 타일-기반 표현들이다. 프로세서는 추가적으로, 제 2 시그널링 정보에 기초하여, 하나 이상의 타일-기반 표현들에 포함된 ROI 를 포함하는 타일들과 연관된 식별자들을 결정하도록 구성된다.
일부 양태들에서, 장면의 구면 표현은 직선형 투영을 이용하여 평면 상으로 투영된다.
일부 양태들에서, 프로세서는 추가적으로, 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 화상으로부터 다수의 ROI 들의 픽셀들을 추출하도록 구된다.
일부 양태들에서, 장치는 360-도 비디오 데이터를 캡처하기 위한 하나 이상의 카메라들을 갖는 모바일 디바이스를 포함한다. 일부 양태들에서, 장치는 뷰포트 영역을 렌더링하기 위한 디스플레이를 포함할 수도 있다.
일부 예들에서, 비-일시적 (non-transitory) 컴퓨터 판독가능 매체가 제공된다. 그 비-일시적 컴퓨터 판독가능 매체는 그것 상에 명령들을 저장했을 수도 있고, 그 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 것으로서, 360-도 비디오 데이터는 장면의 구면 표현을 포함하고, 미디어 파일은 구면 표현에서의 관심 영역 (ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하고, 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타내며, 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성되는, 상기 미디어 파일을 획득하는 것을 행하게 하고; 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 화상의 데이터로부터 뷰포트 영역에 대응하는 픽셀들을 추출하게 하며; 그리고, 디스플레이를 위해 뷰포트 영역을 렌더링하기 위해 픽셀들을 제공하게 한다.
일부 예들에서, 비디오 데이터를 프로세싱하는 방법이 제공된다. 그 방법은, 장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하는 단계; 장면의 구면 표현에서 관심 영역 (ROI) 을 결정하는 단계; ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 단계로서, 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타내며, 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성되는, 상기 미디어 파일을 생성하는 단계; 및, 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 ROI 를 포함하는 360-도 비디오 데이터의 부분의 송신을 위해 미디어 파일을 제공하는 단계를 포함할 수도 있다.
일부 예들에서, 비디오 데이터를 프로세싱하기 위한 장치가 제공된다. 그 장치는, 360-도 비디오 데이터를 저장하도록 구성된 메모리; 및, 장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하고; 장면의 구면 표현에서 관심 영역 (ROI) 을 결정하며; ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 것으로서, 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타내며, 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성되는, 상기 미디어 파일을 생성하는 것을 행하고; 그리고, 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 ROI 를 포함하는 360-도 비디오 데이터의 부분의 송신을 위해 미디어 파일을 제공하도록 구성된 프로세서를 포함할 수도 있다.
일부 예들에서, 비-일시적 컴퓨터 판독가능 매체가 제공된다. 그 비-일시적 컴퓨터 판독가능 매체는 그것 상에 명령들을 저장했을 수도 있고, 그 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 그 하나 이상의 프로세서들로 하여금, 장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하게 하고; 장면의 구면 표현에서 관심 영역 (ROI) 을 결정하게 하며; ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 것으로서, 제 1 시그널링 정보는 구면 표현과 연관된 구형 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타내며, 화상은 ROI 를 포함하는 구면 표현을 평면 상으로 투영함으로써 형성되는, 미디어 파일을 생성하는 것을 행하게 하고; 그리고, 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 ROI 를 포함하는 360-도 비디오 데이터의 부분의 송신을 위해 미디어 파일을 제공하게 한다.
이 요약은 청구된 청구물의 주요한 또는 필수적인 특징들을 식별하도록 의도되지 아니하고, 청구된 청구물의 범위를 결정하기 위해 단독으로 사용되도록 의도되지도 아니한다. 청구물은 이 특허의 전체 명세서, 임의의 또는 모든 도면들, 및 각 청구항의 적절한 부분들을 참조하여 이해되어야 한다.
전술한 바는, 다른 특징들 및 실시형태들과 함께, 이하의 명세서, 청구항들, 및 첨부 도면들을 참조하면 보다 분명하게 될 것이다.
본 발명의 예시적인 실시형태들은 이하의 도면들을 참조하여 이하에서 자세히 설명된다.
도 1 은, 일부 예들에 따른, 인코딩 디바이스 및 디코딩 디바이스의 일 예를 나타내는 블록도이다.
도 2a 및 도 2b 는, 일부 예들에 따른, 뷰의 넓은 시야를 캡처하기 위해 어안 렌즈들을 사용하는 전방향성 카메라들에 의해 캡처되는 비디오 프레임들의 예들을 나타내는 도들이다.
도 3 은, 일부 예들에 따른, 등장방형 비디오 프레임의 일 예를 나타내는 도이다.
도 4a, 도 4b, 도 4c, 도 4d, 및 도 4e 는, 비디오 프레임에서의 관심 영역 (ROI) 에 대응하는 뷰포트의 시그널링 및 등장방형 비디오 프레임의 예들을 나타내는 도들이다.
도 5a, 도 5b, 및 도 5c 는, 일부 예들에 따른, 뷰포트의 예들 및 ROI 의 정의들을 나타내는 도들이다.
도 6a 및 도 6b 는, 2-차원 비디오 프레임들의 예들 및 그 2-차원 비디오 프레임들에서 ROI 에 대한 뷰포트의 시그널링을 나타낸다.
도 7 및 도 8 은, 일부 예들에 따른, 뷰포트의 시그널링 정보를 포함하는 미디어 파이의 예들을 제공한다.
도 9 는, 일부 예들에 따른, 미디어 스트리밍 시스템을 나타내는 도이다.
도 10 은, 일부 예들에 따른, MPD 파일의 일 예의 그래픽적 표현을 제공한다.
도 11 은, 일부 예들에 따른, MPD 파일에서 ROI 에 대응하는 뷰포트의 시그널링의 일 예를 나타내는 XML 코드 표현이다.
도 12 및 도 13 은, 일부 예들에 따른, 비디오 데이터를 프로세싱하기 위한 예시적인 프로세스들을 나타내는 플로우차트들이다.
도 14 는, 일부 예들에 따른, 일 예시적인 비디오 인코딩 디바이스를 나타내는 블록도이다.
도 15 는, 일부 예들에 따른, 일 예시적인 비디오 디코딩 디바이스를 나타내는 블록도이다.
본 개시의 특정 양태들 및 실시형태들이 이하에 제공된다. 이들 양태들 및 실시형태들 중 일부는 독립적으로 적용될 수 있고 그들 중 일부는 당업자에게 자명한 바와 같이 조합하여 적용될 수도 있다. 다음의 설명에 있어서, 설명의 목적들로, 특정 상세들이 본 발명의 실시형태들의 철저한 이해를 제공하기 위해 기술된다. 하지만, 여러 실시형태들은 이들 특정 상세들없이도 실시될 수도 있음이 명백할 것이다. 도면 및 설명은 제한하려는 것이 아니다.
다음의 설명은 오직 예시적인 실시형태들을 제공할 뿐이고, 본 개시의 범위, 적용가능성, 또는 구성을 한정하지 않는다. 오히려, 예시적인 실시형태들의 다음의 설명은 예시적인 실시형태를 구현하기 위한 가능한 설명을 당업자에게 제공할 것이다. 첨부된 청구범위에 전개된 바와 같이 본 발명의 사상 및 범위를 벗어나지 않으면서 요소들의 기능 및 배열에 다양한 변경이 가해질 수 있음을 이해해야한다.
특정 상세들이 실시형태들의 철저한 이해를 제공하기 위해 다음의 설명에서 주어진다. 하지만, 실시형태들은 이들 특정 상세없이 실시될 수도 있음이 당업자에 의해 이해될 것이다. 예를 들어, 회로들, 시스템들, 네트워크들, 프로세스들, 및 다른 컴포넌트들은 그 실시형태들을 불필요한 상세로 불명료하게 하지 않기 위해 블록 다이어그램 형태의 컴포넌트들로서 도시될 수도 있다. 다른 예들에서, 공지된 회로들, 프로세스들, 알고리즘들, 구조들, 및 기술들은, 실시형태들을 불명료하게 하는 것을 회피하기 위해 불필요한 상세없이 도시될 수도 있다.
개개의 실시형태들은, 플로우차트, 플로우 다이어그램, 데이터 흐름도, 구조 다이어그램, 또는 블록 다이어그램으로서 도시된 프로세스로서 설명될 수도 있음이 주목된다. 비록 플로우차트가 동작들을 순차적인 프로세스로서 기술할 수도 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 부가적으로, 동작들의 순서가 재배열될 수도 있다. 프로세스는 그의 동작들이 완료되면 종료되지만 도면에 포함되지 않은 추가 단계들을 가질 수 있다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 경우, 그 종료는 그 함수의 호출 함수 또는 메인 함수로의 복귀에 대응할 수 있다.
용어 "컴퓨터 판독가능 매체" 는 휴대용 또는 고정식 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장, 포함, 또는 반송할 수 있는 다양한 다른 매체들을 포함하지만 이에 한정되지 않는다. 컴퓨터 판독 가능 매체는 데이터가 저장될 수 있고 캐리어 웨이브 및/또는 무선 또는 유선 연결을 통해 전파되는 일시적인 전자 신호를 포함하지 않는 비일시적인 매체를 포함할 수도 있다. 비일시적인 매체의 예는 자기 디스크 또는 테이프, 콤팩트 디스크 (CD) 또는 디지털 다용도 디스크 (DVD)와 같은 광학 저장 매체, 플래시 메모리, 메모리 또는 메모리 장치를 포함하나, 이에 한정되는 것은 아니다. 컴퓨터 판독가능 매체는 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트들의 임의의 조합을 나타낼 수도 있는 코드 및/또는 머신 실행가능 명령들을 저장할 수도 있다. 코드 세그먼트는, 정보, 데이터, 인수들 (arguments), 파라미터들, 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 인수들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 전송 등을 포함한 임의의 적합한 수단을 통해 전달, 포워딩, 또는 전송될 수도 있다.
더욱더, 실시예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어들, 또는 이들의 임의의 조합에 의해 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현될 경우, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들 (예를 들어, 컴퓨터 프로그램 제품) 은 컴퓨터 판독가능 또는 머신 판독가능 매체에 저장될 수도 있다. 프로세서(들) 은 필요한 작업들을 수행할 수도 있다.
비디오 콘텐츠는 360-도 비디오 콘텐츠 (또한 가상 현실 (virtual reality; VR) 콘텐츠로서 지칭됨) 로서 캡처되고 코딩될 수 있다. 이하에서 보다 자세히 설명되는 바와 같이, 본원에 기술된 하나 이상의 시스템들 및 방법들은 비디오 콘텐츠에서의 하나 이상의 관심 영역들 (ROI들) 의 시그널링 정보를 포함하도록 360-도 비디오 콘텐츠에 대한 미디어 파일들을 생성하는 것에 지향된다. 본원에 기술된 하나 이상의 시스템들 및 방법들은 또한, 렌더링을 위해 비디오 콘텐츠로부터 ROI 를 추출하기 위해 미디어 파일들에 포함된 시그널링 정보를 프로세싱하는 것에 지향된다. 비디오 콘텐츠는 특정 시점들에서 장면을 캡처하는 이미지들의 셋트를 스티칭함으로써 형성된 구면형 비디오일 수도 있다. 360-도 비디오 화상의 ROI 는 장면의 특정 부분을 캡처하는 화상의 미리결정된 영역일 수 있다. 일부 경우들에서, ROI 는 장면의 동적으로 결정된 부분 (사용자가 현재 보고 있는 장면의 부분) 에 대응할 수 있다. 미디어 파일은 ROI 의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함할 수도 있다. 제 1 시그널링 정보는 구면형 비디오에 대응하는 3-차원 구형 공간에서 ROI 의 치수 정보 및 ROI 의 제 1 로케이션을 포함할 수도 있다. 제 2 시그널링 정보는 구형 공간을 평면 상으로 투영시킴으로써 형성된 2-차원 공간에서의 ROI 의 제 2 로케이션을 포함할 수도 있다. 일부 예들에서, 듀얼 시그널링은 ROI 의 제 1 로케이션과 제 2 로케이션 사이의 맵핑을 제공할 수 있다. 맵핑은 구면형 비디오 데이터의 송신 및 렌더링 양자를 용이하게 할 수 있다.
360-도 비디오는 캡처된, 컴퓨터-생성된 등의 가상 현실 비디오, 증강 현실 데이터, 또는 임의의 다른 타입의 360-도 타입 비디오 콘텐츠를 포함할 수 있다. 예를 들어, 360-도 비디오는 몰입된 사용자의 움직임들에 의해 상관된 자연적 및/또는 합성의 이미지들 (및 일부 경우들에서 사운드) 의 렌더링에 의해 형성된 비-물리적 세상에서 가상적으로 표현되도록 하는 능력을 제공하여 사용자가 그 세상과 상호작용하도록 허용할 수 있다. 360-도 비디오는 보기에 실제의 또는 물리적인 방식으로 상호작용될 수 있는 3-차원 환경을 표현할 수 있다. 일부 경우들에서, 360-도 비디오 환경을 경험하는 사용자는 그 가상 환경과 상호작용하기 위해, 헤드 장착 디스플레이 (HMD), 및 선택적으로 소정 툴들 또는 의복 (예컨대, 센서들을 갖춘 장갑) 과 같은 전자 장비를 사용한다. 사용자가 현실 세계에서 움직이면, 가상 환경에서 렌더링된 이미지들도 변경되어, 가상 환경 내에서 사용자가 움직이고 있는 지각을 사용자에게 준다. 일부 경우들에서, 가상 환경은 사용자의 움직임과 상관되는 사운드를 포함하여, 사운드가 특정 방향이나 소스로부터 발생하는 인상을 사용자에게 준다. 360-도 비디오는 매우 높은 품질로 캡처 및 렌더링되며, 잠재적으로 진정 몰입형 360-도 비디오 또는 가상 현실 경험을 제공할 수 있다. 360-도 비디오 애플리케이션들은, 다른 것들도 있지만, 게이밍, 트레이닝, 교육, 스포츠 비디오, 온라인 쇼핑을 포함한다.
360-도 비디오는 360-도 환경에서의 디스플레이를 위해 비디오 캡처된다. 일부 애플리케이션들에서, 게이밍 및 가상 세상들에서 발견될 수 도 있는 등의 컴퓨터-생성된 그래픽과는 반대로, 가상 현실 환경에서의 프리젠테이션에서 실제 세상으로부터의 비디오가 사용될 수 있다. 이들 애플리케이션들에서, 사용자는, 사용자가 사용자의 현재 로케이션을 경험할 수 있는 것과 동일한 방식으로 다른 로케이션을 경험할 수 있다. 예를 들어, 사용자는 샌프란시스코에 놓인 360-도 비디오 시스템을 이용하여 베를린의 도보 여행을 경험할 수 있다.
360-도 비디오 시스템은 비디오 캡처 디바이스 및 비디오 디스플레이 디바이스를 포함할 수 있고, 가능하게는 또한 서버들, 데이터 스토리지, 및 데이터 송신 장비와 같은 다른 중간 디바이스들을 포함할 수 있다. 비디오 캡처 디바이스는 카메라 셋트를 포함할 수도 있고, 이 카메라 셋트는 각각 다른 방향으로 배향되고 상이한 뷰를 캡처하는 다수의 카메라들의 셋트를 포함할 수 있다. 하나이 예시적인 예에서, 카메라 셋트의 로케이션을 중심으로 전체 360도 뷰를 캡처하기 위해서 6 개의 카메라들이 사용될 수 있다. 일부 비디오 캡처 디바이스들은 더 적은 카메라들을 사용할 수도 있다. 예를 들어, 일부 비디오 캡처 디바이스들은 주로 측면-대-측면 뷰들을 캡처하거나 넓은 시야의 뷰를 갖는 렌즈들을 사용한다. 하나의 예시적인 예에서, 서로 등지고 포지셔닝된 2 개의 어안 렌즈들을 구비한 하나 이상의 카메라들은 360-도 시야의 뷰를 함께 제공하는 2 개의 이미지들을 캡처하기 위해 사용될 수 있다. 비디오는 일반적으로 프레임들 또는 화상들을 포함하며, 프레임 또는 화상은 장면의 전자적으로 코딩된 스틸 이미지이다. 카메라들은 초당 소정 수의 프레임을 캡처하는데, 이는 일반적으로 카메라의 프레임 레이트라고 한다.
일부 경우들에서, 심 없는 360-도 뷰를 제공하기 위해, 카메라 셋트에서의 카메라들의 각각에 의해 캡처된 비디오 프레임들 (또는 이미지들) 에 대해 이미지 스티칭이 수행될 수 있다. 360도 비디오 생성의 경우에 이미지 스티칭은 비디오 프레임들이 오버랩거나 또는 그렇지 않으면 연결되는 영역에서 인접한 카메라들 (또는 렌즈들) 로부터의 비디오 프레임들을 결합하거나 또는 병합하는 것을 수반한다. 결과는 대략 구형 프레임이고, Mercator 투영과 유사하게, 병합된 데이터는 평면 방식으로 표현될 수 있다. 예를 들어, 병합된 비디오 프레임 내의 픽셀들은 큐브 형상 또는 기타 3 차원, 평면 형상 (예를 들어, 피라미드, 팔면체, 십면체 등) 의 평면들 상으로 맵핑될 수도 있다. 비디오 캡처 및 비디오 디스플레이 디바이스들은 래스터 원리 - 비디오 프레임이 픽셀들의 그리드로 처리됨을 의미- 에서 동작할 수 있고, 이 경우에, 정사각형 평면들, 직사각형 평면들, 또는 다른 적합하게-형상화된 평면들이 구형 환경을 표현하는데 사용될 수 있다.
평면 표현으로 맵핑된 360-도 비디오 프레임들은 저장 및/또는 송신을 위해 인코딩 및/또는 압축될 수 있다. 인코딩 및/또는 압축은 비디오 코덱 (예컨대, H.265 로서 또한 알려진 고효율 비디오 코딩 (HEVC) 표준, H.264 로서 알려진 어드밴스드 비디오 코딩 표준, 또는 다른 적합한 코덱과 호환되는 코드) 을 이용하여 달성될 수 있고, 압축된 비디오 비트스트림 (또는 인코딩된 비디오 비트스트림) 또는 비트스트림들의 그룹을 초래한다. 비디오 코덱을 사용하는 비디오 데이터의 인코딩은 이하에서 더 상세하게 설명된다.
일부 구현들에서, 인코딩된 비디오 비트스트림(들)은 미디어 형식 또는 파일 형식으로 저장 및/또는 캡슐화될 수 있다. 저장된 비트스트림(들)은 디스플레이를 위해 비디오를 디코딩하고 렌더링할 수 있는 수신기 디바이스에 예를 들어 네트워크를 통해 송신될 수 있다. 그러한 수신기 디바이스는 본 명세서에서 비디오 디스플레이 디바이스로서 지칭될 수도 있다. 예를 들어, 360-도 비디오 시스템은 (예를 들어, 국제 표준 기구 (ISO) 베이스 미디어 파일 형식 및/또는 파생 파일 형식들을 사용하여) 인코딩된 비디오 데이터로부터 캡슐화된 파일들을 생성할 수 있다. 실례로, 비디오 코덱은 비디오 데이터를 인코딩할 수 있으며 캡슐화 엔진은 하나 이상의 ISO 형식 미디어 파일들에서 비디오 데이터를 캡슐화하여 미디어 파일들을 생성할 수 있다. 대안적으로 또는 부가적으로, 저장된 비트스트림(들)은 저장 매체로부터 수신기 디바이스로 직접 제공될 수 있다.
수신기 디바이스는 또한 인코딩된 비디오 비트스트림을 디코딩 및/또는 압축해제하기 위한 코덱을 구현할 수 있다. 인코딩된 비디오 비트스트림(들)이 미디어 형식 또는 파일 형식으로 저장 및/또는 캡슐화되는 경우들에서, 수신기 디바이스는 비디오 비트스트림을 파일 (또는 파일들) 로 패킹하기 위해 사용되었던 미디어 또는 파일 형식을 지원할 수 있고, 인코딩된 비디오 데이터를 생성하기 위해 그 비디오 (그리고 가능하게는 또한 오디오) 를 추출할 수 있다. 예를 들어, 수신기 디바이스는 캡슐화된 비디오 데이터를 갖는 미디어 파일을 파싱하여 인코딩된 비디오 데이터를 생성할 수 있으며, 수신기 디바이스내의 코덱은 인코딩된 비디오 데이터를 디코딩할 수 있다.
수신기 디바이스는 그 다음에, 디코딩된 비디오 신호를 렌더링 디바이스 (예를 들어, 비디오 디스플레이 디바이스, 플레이어 디바이스, 또는 다른 적합한 렌더링 디바이스) 로 전송할 수 있다. 렌더링 디바이스들은, 예를 들어, 헤드 장착 디스플레이들, 가상 현실 텔레비전들, 및 다른 180 또는 360-도 디스플레이 디바이스들을 포함한다. 일반적으로, 헤드 장착 디스플레이는 착용자의 머리의 움직임 및/또는 착용자의 눈의 움직임을 추적할 수 있다. 헤드 장착 디스플레이는 추적 정보를 사용하여 착용자가 보고 있는 방향에 대응하는 360-도 비디오의 부분을 렌더링하여, 착용자가 현실 세상을 경험하는 것과 같은 방식으로 가상 환경을 경험할 수 있도록 한다. 렌더링 디바이스는 비디오가 캡처된 것과 동일한 프레임 레이트 또는 상이한 프레임 레이트로 비디오를 렌더링할 수도 있다.
360-도 비디오 콘텐츠의 비디오 화상들은 시간적 인터 예측 (temporal inter prediction; TIP) 을 이용하여 단일-계층 비트스트림으로서 인코딩될 수 있고, 전체 코딩된 비트스트림은 서버에 저장될 수 있다. 일부 경우들에서, 360-도 비디오 콘텐츠의 화상들은 TIP 및 인터-레이어 예측 (inter-layer prediction; ILP) 을 이용하여 멀티-레이어 비트스트림으로서 인코딩될 수 있다. 필요한 경우에, 비트스트림은 수신기 측에 송신될 수 있고, 디코더에 의해 전체저으로 디코딩될 수 있으며, (예컨대, 착용자의 머리 및/또는 눈의 움직임에 기초하여 결정된) 착용자가 보고 있는 장면의 부분에 대응하는 디코딩된 화상의 영역이 착용자에게 렌더링될 수 있다.
도 1 은 인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 를 포함하는 비디오 코딩 시스템 (100) 의 일 예를 예시하는 블록도이다. 인코딩 디바이스 (104) 는 소스 디바이스의 일부일 수 있고, 디코딩 디바이스 (112)는 수신 디바이스의 일부일 수 있다. 소스 디바이스 및/또는 수신 디바이스는 모바일 또는 고정 전화 핸드셋 (예를 들어, 스마트 폰, 셀룰러 폰 등), 데스크탑 컴퓨터, 랩탑 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋톱 박스, 텔레비전, 카메라, 디스플레이 장치, 디지털 미디어 플레이어, 비디오 게임 콘솔, 비디오 스트리밍 장치, 인터넷 프로토콜 (IP) 카메라, 또는 임의의 다른 적절한 전자 장치와 같은 전자 장치를 포함할 수도 있다. 일부 예에서, 소스 디바이스 및 수신 디바이스는 무선 통신을 위한 하나 이상의 무선 송수신기를 포함할 수도 있다. 여기에 기술된 코딩 기술은 (예를 들면, 인터넷을 통한) 스트리밍 비디오 전송, 텔레비전 방송 또는 전송, 데이터 저장 매체상의 저장을 위한 디지털 비디오의 인코딩, 데이터 저장 매체상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션을 포함하는 다양한 멀티미디어 애플리케이션에서의 비디오 코딩에 적용가능하다. 일부 예들에 있어서, 시스템 (100) 은 비디오 컨퍼런싱, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 게이밍 및/또는 비디오 전화와 같은 애플리케이션들을 지원하기 위해 일방향 또는 양방향 비디오 송신을 지원할 수 있다.
인코딩 디바이스 (104) (또는 인코더) 는 비디오 코딩 표준 또는 프로토콜을 사용하여 비디오 데이터를 인코딩하여 인코딩된 비디오 비트 스트림을 생성하는 데 사용될 수 있다. 비디오 코딩 표준들의 예들은, 그 스케일러블 비디오 코딩 (SVC) 및 멀티-뷰 비디오 코딩 (MVC) 확장들, 및 고효율 비디오 코딩 (HEVC) 또는 ITU-T H.265 를 포함하여, ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼, ITU-T H.264 (ISO/IEC MPEG-4 AVC 로서도 알려짐) 를 포함한다. 범위 및 스크린 콘텐츠 코딩 확장본들, 3D 비디오 코딩(3D-HEVC) 및 멀티뷰 확장본들(MV-HEVC) 그리고 스케일러블 확장본(scalable extension, SHVC)을 포함하는, 다층 비디오 코딩을 다루는 HEVC에 대한 다양한 확장본들이 존재한다. HEVC 및 그것의 확장본들은 JCT-VC(Joint Collaboration Team on Video Coding) 뿐만 아니라 ITU-T 비디오 코딩 전문가 그룹(VCEG) 및 ISO/IEC 모션 픽처 전문가 그룹(MPEG)의 JCT-3V(Joint Collaboration Team on 3D Video Coding Extension Development)에 의해 개발되었다. MPEG 및 ITU-T VCEG는 차세대의 비디오 코딩 표준을 위한 새로운 코딩 도구들을 탐구하기 위해 JVET(joint exploration video team)을 또한 형성했다. 참조 소프트웨어는 JEM(joint exploration model)이라 지칭된다.
여기에 기술된 많은 실시형태들은 JEM 모델, HEVC 표준 및/또는 그 확장을 사용하는 예를 제공한다. 그러나, 본 명세서에서 설명되는 기법들 및 시스템들은 다른 코딩 표준들, 이를테면 AVC, MPEG, 그 확장본들, 또는 이미 이용가능하거나 아직 이용가능하지 않은 또는 개발되고 있는 다른 적합한 코딩 표준들에 또한 적용 가능할 수도 있다. 따라서, 여기에 기술된 기술들 및 시스템들은 특정 비디오 코딩 표준을 참조하여 기술될 수도 있지만, 당업자는 설명이 그러한 특정 표준에만 적용되는 것으로 해석되어서는 안됨을 이해할 것이다.
도 1 을 참조하여 보면, 비디오 소스 (102) 는 비디오 데이터를 인코딩 디바이스 (104) 에 제공할 수도 있다. 비디오 소스 (102) 는 소스 디바이스의 일부일 수도 있거나 소스 디바이스 이외의 디바이스의 일부일 수도 있다. 비디오 소스 (102) 는 비디오 캡처 디바이스 (예를 들어, 비디오 카메라, 카메라 폰, 비디오 폰 등), 저장된 비디오를 포함하는 비디오 아카이브, 비디오 데이터를 제공하는 비디오 서버 또는 콘텐츠 제공자, 비디오 서버 또는 콘텐츠 제공자로부터 비디오를 수신하는 비디오 피드 인터페이스, 컴퓨터 그래픽 비디오 데이터를 생성하기 위한 컴퓨터 그래픽 시스템, 그러한 소스들의 조합, 또는 임의의 다른 적합한 비디오 소스를 포함할 수도 있다.
비디오 소스 (102) 로부터의 비디오 데이터는 하나 이상의 입력 화상들 또는 프레임들을 포함할 수도 있다. 비디오의 화상 또는 프레임은 장면의 스틸 이미지이다. 인코딩 디바이스 (104) 의 인코더 엔진 (106) (또는 인코더) 은 인코딩된 비디오 비트 스트림을 생성하기 위해 비디오 데이터를 인코딩한다. 일부 예에서, 인코딩된 비디오 비트 스트림 (또는 "비디오 비트 스트림” 또는 "비트 스트림") 은 일련의 하나 이상의 코딩된 비디오 시퀀스들이다. 코딩된 비디오 시퀀스 (CVS) 는 특정 특성을 갖는 및 기본 계층에서의 랜덤 액세스 포인트 화상을 갖는 AU 로 시작하여 특정 특성을 갖는 및 기본 계층에서의 랜덤 액세스 포인트 화상을 갖는 다음 AU 까지의 및 다음 AU 를 포함하지 않는 일련의 액세스 유닛들 (Aus) 을 포함한다. 예를 들어, CVS 를 시작하는 랜덤 액세스 포인트 화상의 특정 속성은 1과 같은 RASL 플래그 (예: NoRaslOutputFlag) 를 포함할 수도 있다. 그렇지 않으면, (0 과 동일한 RASL 플래그를 갖는) 랜덤 액세스 포인트 화상은 CVS를 시작하지 않는다. 액세스 유닛 (AU) 은 동일한 출력 시간을 공유하는 코딩된 화상들에 대응하는 하나 이상의 코딩된 화상들 및 제어 정보를 포함한다. 화상들의 코딩된 슬라이스들은 비트 스트림 수준에서 NAL (Network Abstraction Layer) 유닛들이라고 하는 데이터 유닛들로 캡슐화된다. 예를 들어, HEVC 비디오 비트 스트림은 NAL 유닛들을 포함하는 하나 이상의 CVS 들을 포함할 수도 있다. NAL 유닛들 각각은 NAL 유닛 헤더를 갖는다. 일례에서, 헤더는 H.264/AVC (멀티-레이어 확장 제외) 에 대해 1 바이트 및 HEVC 에 대해 2 바이트이다. NAL 유닛 헤더의 신택스 엘리먼트들은 지정된 비트를 취하므로, 무엇보다도 전송 스트림, RTP (Real-time Transport) 프로토콜, 파일 형식과 같은 모든 종류의 시스템 및 전송 계층에서 볼 수 있다.
비디오 코딩 계층 (VCL) NAL 유닛들 및 비-VCL NAL 유닛들을 포함하는 2개의 클래스들의 NAL 유닛들이 HEVC 표준에 존재한다. VCL NAL 유닛은 코딩된 화상 데이터의 하나의 슬라이스 또는 슬라이스 세그먼트 (이하 설명됨) 를 포함하고, 비-VCL NAL 유닛은 하나 이상의 코딩 된 화상과 관련된 제어 정보를 포함한다. 일부 경우들에서, NAL 유닛은 패킷이라고 지칭될 수 있다. HEVC AU 는 코딩된 화상 데이터를 포함하는 VCL NAL 유닛들 및 코딩된 화상 데이터에 대응하는 비-VCL NAL 유닛들 (존재하는 경우) 을 포함한다.
NAL 유닛들은 비디오 내의 화상들의 코딩된 표현과 같은 비디오 데이터의 코딩된 표현 (예를 들어, 인코딩된 비디오 비트 스트림, 비트 스트림의 CVS 등) 을 형성하는 비트들의 시퀀스를 포함할 수도 있다. 인코더 엔진 (106) 은 각각의 화상을 다수의 슬라이스들로 파티셔닝함으로써 화상들의 코딩된 표현들을 생성한다. 슬라이스는 그 슬라이스 내의 정보가 동일한 화상 내의 다른 슬라이스들로부터의 데이터에 종속되지 않고 코딩되도록 다른 슬라이스들에 대해 독립적이다. 슬라이스는 독립 슬라이스 세그먼트를 포함하는 하나 이상의 슬라이스 세그먼트들, 및 존재하는 경우, 이전 슬라이스 세그먼트들에 의존하는 하나 이상의 종속 슬라이스 세그먼트들을 포함한다. 슬라이스들은 그 후 루마 샘플들 및 크로마 샘플들의 코딩 트리 블록들 (CTBs) 로 파티셔닝된다. 샘플들에 대한 신택스와 함께, 루마 샘플들의 CTB 와 크로마 샘플들의 하나 이상의 CTB 들은 코딩 트리 유닛 (CTU) 으로서 지칭된다. CTU 는 HEVC 인코딩을 위한 기본 프로세싱 단위이다. CTU는 다양한 크기의 다중 코딩 유닛들 (Cus) 로 분할될 수 있다. CU 는 코딩 블록들 (CBs) 이라고 지칭되는 루마 및 크로마 샘플 배열들을 포함한다.
루마 및 크로마 CB 들은 예측 블록들 (PB) 로 더 분할될 수 있다. PB 는 (이용 가능하거나 사용을 위해 인에이블될 때) 인터 예측 또는 인트라 블록 복사 예측에 대해 동일한 모션 파라미터들을 사용하는 루마 성분 또는 크로마 성분의 샘플들의 블록이다. 루마 PB 및 하나 이상의 크로마 PB 들은, 연관된 신택스와 함께, 예측 유닛 (PU) 을 형성한다. 인터 예측을 위해, 모션 파라미터들의 셋트 (예를 들어, 하나 이상의 모션 벡터들, 참조 인덱스들 등) 가 각각의 PU 에 대해 비트 스트림으로 시그널링되고, 루마 PB 및 하나 이상의 크로마 PB 들의 인터 예측을 위해 사용된다. 모션 파라미터들은 모션 정보로서도 지칭될 수 있다. CB 는 또한 하나 이상의 변환 블록들 (TB) 로 파티셔닝될 수 있다. TB 는 예측 잔차 신호를 코딩하기 위해 동일한 2 차원 변환이 적용되는 컬러 성분의 샘플들의 정사각형 블록을 나타낸다. 변환 유닛 (TU) 은 루마 및 크로마 샘플들의 TB 들 및 대응하는 신택스 엘리먼트들을 나타낸다.
CU 의 사이즈는 코딩 모드의 사이즈에 대응하고, 형상이 정사각형일 수도 있다. 예를 들어, CU 의 크기는 8 x 8 샘플, 16 x 16 샘플, 32 x 32 샘플, 64 x 64 샘플 또는 해당 CTU 의 크기까지의 임의의 다른 적절한 크기일 수도 있다. 어구 "NxN" 은 수직 및 수평 치수들의 관점에서의 비디오 블록의 픽셀 치수들 (예를 들어, 8 픽셀 x 8 픽셀) 을 지칭하기 위해 여기서 사용된다. 블록에 있어서의 픽셀들은 행 및 열로 배열될 수도 있다. 일부 실시형태들에서, 블록들은 세로 방향에서와 동일한 수의 화소들을 수평 방향에서 가지지 않을 수도 있다. CU 와 연관된 신택스 데이터는, 예를 들어, 하나 이상의 PU들로의 CU 의 파티셔닝을 설명할 수도 있다. 파티셔닝 모드들은 CU 가 인트라-예측 모드 인코딩되거나, 또는 인터-예측 모드 인코딩되는지 사이에서 상이할 수도 있다. PU들은 형상이 비-정사각형이도록 파티셔닝될 수도 있다. CU 와 연관된 신택스 데이터는 또한, 예를 들어, CTU 에 따라 하나 이상의 TU들로의 CU 의 파티셔닝을 설명할 수도 있다. TU 는 형상이 정사각형이거나 비-정사각형일 수 있다.
HEVC 표준에 따르면, 변환들은 변환 유닛들 (TUs) 을 이용하여 수행될 수도 있다. TU들은 CU들마다 다를 수 있다. TU들은 주어진 CU 내의 Pu들의 사이즈에 기초하여 사이징될 수도 있다. TU들은 통상적으로 PU들과 동일한 사이즈이거나 또는 PU들보다 더 작을 수도 있다. 일부 예들에서, CU에 대응하는 잔차 샘플들은 잔차 쿼드 트리(residual quad tree, RQT)로서 알려진 쿼드트리 구조를 사용하여 더 작은 유닛들로 세분될 수도 있다. RQT 의 리프 노드들은 TU들에 대응할 수도 있다. TU들과 연관된 픽셀 차이 값들은 변환 계수들을 생성하도록 변환될 수도 있다. 변환 계수들은 그 후 인코더 엔진 (106) 에 의해 양자화될 수 있다.
일단 비디오 데이터의 화상들이 CU 들로 파티셔닝되면, 인코더 엔진 (106) 은 예측 모드를 사용하여 각각의 PU를 예측한다. 그 후, 예측 유닛 또는 예측 블록은 잔차들 (후술 됨)를 얻기 위해 원래의 비디오 데이터로부터 감산된다. 각각의 CU 에 대해, 예측 모드는 신택스 데이터를 사용하여 비트 스트림 내부에서 시그널링될 수도 있다. 예측 모드는 인트라 예측 (또는 인트라-픽처 예측) 또는 인터-예측 (또는 인터-픽처 예측) 을 포함할 수도 있다. 인트라 예측은 화상 내에서 공간적으로 이웃하는 샘플 간의 상관을 이용한다. 예를 들어, 인트라-예측을 사용하여, 각각의 PU 는, 예를 들어, PU 에 대한 평균값을 발견하기 위한 DC 예측, PU 에 대해 평면 표면을 피팅 (fitting) 하기 위한 평면 예측, 이웃하는 데이터로부터 외삽하기 위한 방향 예측, 또는 임의의 다른 적절한 유형의 예측을 사용하여 동일한 화상 내의 이웃하는 이미지 데이터로부터 예측된다. 인터 예측은 이미지 샘플들의 블록에 대한 모션 보상된 예측을 도출하기 위해 화상들 간의 시간 상관을 사용한다. 예를 들어, 인터-예측을 사용하여, 각각의 PU 는 (출력 순서로 현재 화상의 전 또는 후의) 하나 이상의 기준 화상들에서의 이미지 데이터로부터의 모션 보상 예측을 사용하여 예측된다. 인터 화상 또는 인트라 화상 예측을 사용하여 화상 영역을 코딩할지 여부의 결정은 예를 들어 CU 레벨에서 행해질 수도 있다.
일부 예들에서, 화상의 하나 이상의 슬라이스는 슬라이스 유형이 할당된다. 슬라이스 유형에는 I 슬라이스, P 슬라이스 및 B 슬라이스가 포함된다. I 슬라이스 (인트라-프레임, 독립적으로 디코딩 가능) 는 인트라-예측에 의해서만 코딩되는 화상의 슬라이스이며, 따라서 I 슬라이스는 슬라이스의 임의의 예측 유닛 또는 예측 블록을 예측하기 위해 프레임 내의 데이터만을 필요로하기 때문에 독립적으로 디코딩 가능하다. P 슬라이스 (단방향 예측 프레임들) 는 인트라-예측 및 단방향 인터-예측으로 코딩될 수도 있는 화상의 슬라이스이다. P 슬라이스 내의 각각의 예측 유닛 또는 예측 블록은 인트라 예측 또는 인터-예측으로 코딩된다. 인터 예측이 적용될 때, 예측 유닛 또는 예측 블록은 하나의 기준 화상에 의해서만 예측되므로, 기준 샘플은 한 프레임의 하나의 기준 영역으로부터만 나온다. B 슬라이스 (양방향 예측 프레임들) 는 인트라-예측 및 인터-예측 (예를 들어, 양방향 예측 또는 단방향 예측) 으로 코딩될 수도 있는 화상의 슬라이스이다. B 슬라이스의 예측 유닛 또는 예측 블록은 2 개의 기준 화상으로부터 양방향적으로 예측될 수도 있으며, 여기서 각각의 화상은 하나의 기준 영역에 기여하고 2 개의 기준 영역들의 샘플 셋트들은 (예를 들어, 동일한 가중치 또는 상이한 가중치를 사용하여) 가중되어, 양방향 예측된 블록의 예측 신호를 생성한다. 전술한 바와 같이, 하나의 화상의 슬라이스들은 독립적으로 코딩된다. 일부 경우들에서, 화상은 단 하나의 슬라이스로서 코딩될 수 있다.
PU 는 예측 프로세스와 관련된 데이터 (예: 모션 파라미터들 또는 기타 적절한 데이터)를 포함할 수도 있다. 예를 들어, PU 가 인트라-예측을 사용하여 인코딩될 경우, PU 는 그 PU 에 대한 인트라-예측 모드를 기술하는 데이터를 포함할 수도 있다. 다른 예로서, PU 가 인터-예측을 사용하여 인코딩될 경우, PU 는 그 PU 에 대한 모션 벡터를 정의하는 데이터를 포함할 수도 있다. PU 에 대한 모션 벡터를 정의하는 데이터는 예를 들어, 모션 벡터의 수평 컴포넌트 (Δx), 모션 벡터의 수직 컴포넌트 (Δy), 모션 벡터에 대한 분해능 (예를 들어, 정수 정밀도, 1/4 픽셀 정밀도 또는 1/8 픽셀 정밀도), 모션 벡터가 포인팅하는 참조 화상, 참조 인덱스, 모션 벡터에 대한 참조 화상 리스트 (예를 들어, 리스트 0, 리스트 1, 또는 리스트 C), 또는 이들의 임의의 조합을 기술할 수도 있다.
그 다음, 인코딩 디바이스 (104) 는 변환 및 양자화를 수행할 수도 있다. 예를 들어, 예측에 후속하여, 인코더 엔진 (106) 은 PU 에 대응하는 잔차 값들을 계산할 수도 있다. 잔차 값들은 코딩되는 픽셀들의 현재 블록 (PU) 과 현재 블록을 예측하는데 사용된 예측 블록 (예를 들어, 현재 블록의 예측된 버전) 간의 픽셀 차이 값들을 포함할 수도 있다. 예를 들어, 예측 블록을 생성한 후 (예를 들어, 인터-예측 또는 인트라-예측을 발행한 후), 인코더 엔진 (106) 은 현재 블록으로부터 예측 유닛에 의해 생성 된 예측 블록을 감산함으로써 잔차 블록을 생성할 수 있다. 잔차 블록은 현재 블록의 픽셀 값과 예측 블록의 픽셀 값 사이의 차이를 정량화하는 픽셀 차이 값들의 셋트를 포함한다. 일부 예들에서, 잔차 블록은 2 차원 블록 포맷 (예를 들어, 2 차원 매트릭스 또는 어레이의 픽셀 값들) 으로 표현될 수도 있다. 이러한 예에서, 잔차 블록은 픽셀 값들의 2 차원 표현이다.
예측이 수행된 후에 남을 수 있는 임의의 잔차 데이터는 이산 코사인 변환, 이산 사인 변환, 정수 변환, 웨이브렛 변환, 다른 적절한 변환 함수 또는 이들의 임의의 조합에 기초할 수도 있는 블록 변환을 사용하여 변환된다. 일부 경우들에서, 하나 이상의 블록 변환들 (예를 들어, 크기 32 x 32, 16 x 16, 8 x 8, 4 x 4, 또는 다른 적합한 사이즈) 이 각 CU 의 잔차 데이터에 적용될 수도 있다. 일부 실시형태들에서, TU가 인코더 엔진(106)에 의해 구현되는 변환 및 양자화 프로세스들을 위해 사용될 수도 있다. 하나 이상의 PU 들을 갖는 소정의 CU 는 또한 하나 이상의 TU들을 포함할 수도 있다. 아래에 더 상세히 기술되는 바와 같이, 잔차 값들은 블록 변환을 사용하여 변환 계수로 변환될 수 있고, 그 후 TU를 사용하여 양자화되고 스캔되어 엔트로피 코딩을 위한 직렬화된 변환 계수를 생성할 수도 있다.
일부 실시형태들에서, CU 의 PU들을 이용한 인트라-예측 또는 인터-예측 코딩에 이어서, 인코더 엔진 (106) 은 CU 의 TU들을 위한 잔차 데이터를 계산할 수도 있다. PU 들은 공간 도메인 (또는 픽셀 도메인) 에서 픽셀 데이터를 포함할 수도 있다. TU 들은 블록 변환의 적용에 후속하여 변환 도메인에서의 계수들을 포함할 수도 있다. 이전에 언급된 바와 같이, 잔차 데이터는 인코딩되지 않은 화상의 픽셀들과 PU 들에 대응하는 예측 값들 간의 픽셀 차이 값들에 대응할 수도 있다. 인코더 엔진 (106) 은 CU 에 대한 잔차 데이터를 포함하는 TU들을 형성할 수도 있고, 그 후, TU들을 변환하여 CU 에 대한 변환 계수들을 생성할 수도 있다.
인코더 엔진 (106) 은 변환 계수의 양자화를 수행할 수도 있다. 양자화는 변환 계수를 양자화하여 그 계수를 나타내는 데 사용되는 데이터의 양을 줄임으로써 추가의 압축을 제공한다. 예를 들어, 양자화는 그 계수들의 일부 또는 모두와 연관되는 비트 심도를 감소시킬 수도 있다. 하나의 예에서, n 비트 값을 갖는 계수는 양자화 동안 m 비트 값으로 라운드-다운될 수도 있으며, 여기서, n 은 m 보다 크다.
일단 양자화가 수행되면, 코딩된 비디오 비트 스트림은 양자화된 변환 계수, 예측 정보 (예를 들어, 예측 모드, 모션 벡터, 블록 벡터 등), 파티셔닝 정보, 및 다른 신택스 데이터와 같은 임의의 다른 적절한 데이터를 포함한다. 코딩된 비디오 비트 스트림의 상이한 엘리먼트들은 인코더 엔진 (106) 에 의해 엔트로피 인코딩될 수도 있다. 일부 예들에 있어서, 인코더 엔진 (106) 은 양자화된 변환 계수들을 스캔하기 위한 미리정의된 스캔 순서를 이용하여, 엔트로피 인코딩될 수 있는 직렬화된 벡터를 생성할 수도 있다. 일부 예들에 있어서, 인코더 엔진 (106) 은 적응적 스캔을 수행할 수도 있다. 벡터(예컨대, 1차원 벡터)를 형성하기 위해 양자화된 변환 계수들을 스캐닝한 후, 인코더 엔진(106)은 그 벡터를 엔트로피 인코딩할 수도 있다. 예를 들어, 인코더 엔진(106)은 컨텍스트 적응 가변 길이 코딩, 컨텍스트 적응 이진 산술 코딩, 신택스 기반 컨텍스트 적응 이진 산술 코딩, 확률 간격 파티셔닝 엔트로피 코딩, 또는 다른 적합한 엔트로피 인코딩 기법을 사용할 수도 있다.
전술한 바와 같이, HEVC 비트 스트림은 VCL NAL 유닛들 및 비-VCL NAL 유닛들을 포함하는 NAL 유닛들의 그룹을 포함한다. VCL NAL 유닛들은 코딩된 비디오 비트스트림을 형성하는 코딩된 화상 데이터를 포함한다. 예를 들어, 코딩된 비디오 비트스트림을 형성하는 비트들의 시퀀스가 VCL NAL 유닛들에 존재한다. 비-VCL NAL 유닛들은 다른 정보에 더하여, 인코딩된 비디오 비트스트림에 관련한 고레벨 정보를 갖는 파라미터 셋트들을 포함할 수도 있다. 예를 들어, 파라미터 셋트가 비디오 파라미터 셋트(video parameter set, VPS), 시퀀스 파라미터 셋트(sequence parameter set, SPS), 및 화상 파라미터 셋트(picture parameter set, PPS)를 포함할 수도 있다. 파라미터 셋트들의 목표들의 예들은 비트 레이트 효율, 오류 회복성, 및 시스템들 계층 인터페이스들을 제공하는 것을 포함한다. 각각의 슬라이스는 단일 액티브 PPS, SPS, 및 VPS를 참조하여 디코딩 디바이스(112)가 슬라이스를 디코딩하는데 사용할 수도 있는 정보에 액세스한다. VPS ID, SPS ID, 및 PPS ID를 포함하여 식별자(ID)가 각각의 파라미터 셋트에 대해 코딩될 수도 있다. SPS가 SPS ID와 VPS ID를 포함한다. PPS는 PPS ID와 SPS ID를 포함한다. 각각의 슬라이스 헤더는 PPS ID를 포함한다. ID들을 사용하여, 액티브 파라미터 셋트들은 주어진 슬라이스에 대해 식별될 수 있다.
PPS는 주어진 화상의 모든 슬라이스들에 적용되는 정보를 포함한다. 이 때문에, 화상의 모든 슬라이스들은 동일한 PPS 를 참조한다. 상이한 화상들의 슬라이스들은 동일한 PPS 를 또한 참조할 수도 있다. SPS는 동일한 코딩된 비디오 시퀀스 (CVS) 또는 비트 스트림의 모든 화상들에 적용되는 정보를 포함한다. 전술한 바와 같이, 코딩된 비디오 시퀀스 (CVS) 는 특정 특성 (상술됨) 을 갖는 및 기본 계층에서의 랜덤 액세스 포인트 화상 (예를 들어, IDR (instantaneous decode reference) 화상 또는 BLA (broken link access) 화상, 또는 다른 적절한 랜덤 액세스 포인트 화상) 으로 시작하여 특정 특성을 갖는 및 기본 계층에서의 랜덤 액세스 포인트 화상을 갖는 다음 AU 까지의 및 다음 AU 를 포함하지 않는 (또는 비트스트림의 종단까지의) 일련의 액세스 유닛들 (Aus) 이다. SPS 의 정보는 코딩된 비디오 시퀀스 내에서 화상간에 변경되지 않을 수도 있다. 코딩된 비디오 시퀀스에서의 화상들은 동일한 SPS를 사용할 수도 있다. VPS 는 코딩된 비디오 시퀀스 또는 비트 스트림의 모든 계층들에 적용되는 정보를 포함한다. VPS 는 전체 코딩된 비디오 시퀀스에 적용되는 신택스 엘리먼트들을 갖는 신택스 구조를 포함한다. 일부 실시형태들에 있어서, VPS, SPS, 또는 PPS 는 인코딩된 비트스트림으로 대역내로 (in-band) 송신될 수도 있다. 일부 실시형태들에 있어서, VPS, SPS, 또는 PPS 는, 코딩된 비디오 데이터를 포함하는 NAL 유닛들과 별도의 송신에서 대역외로 (out-of-band) 송신될 수도 있다.
비디오 비트 스트림은 또한 SEI (Supplemental Enhancement Information) 메시지를 포함할 수 있다. 예를 들어, SEI NAL 유닛은 비디오 비트 스트림의 일부일 수 있다. 일부 경우들에서, SEI 메시지는 디코딩 프로세스에서 필요하지 않은 정보를 포함할 수 있다. 예를 들어, SEI 메시지 내의 정보는 디코더가 비트 스트림의 비디오 화상을 디코딩하는 데 필수적이지 않을 수 있지만, 디코더는 그 정보를 사용하여 화상 (예를 들어, 디코딩된 출력) 의 디스플레이 또는 프로세싱을 향상시킬 수 있다. SEI 메시지 내의 정보는 임베딩된 메타데이터일 수 있다. 하나의 예시적인 예에서, SEI 메시지 내의 정보는 디코더 측 엔티티에 의해 이용되어 콘텐츠의 가시성을 향상시킬 수 있다. 일부 예들에서, 특정 애플리케이션 표준은 비트 스트림 내의 이러한 SEI 메시지의 존재를 요구하여, 그 애플리케이션 표준을 준수하는 모든 디바이스들에 품질 향상을 가져올 수 있다 (예를 들어, 다수의 다른 예들에 더하여, SEI 메시지가 비디오의 모든 프레임에 대해 반송되는, 프레임-호환형 평면-입체 3DTV 비디오 포맷에 대한 프레임-팩킹 SEI 메시지의 캐리지, 복구 포인트 SEI 메시지의 핸들링, DVB에서의 팬-스캔 스캔 사각형 SEI 메시지의 사용).
인코딩 디바이스 (104) 의 출력 (110) 은 인코딩된 비디오 비트스트림 데이터를 구성하는 NAL 유닛들을 통신 링크 (120) 를 통해 수신 디바이스의 디코딩 디바이스 (112) 로 전송할 수도 있다. 디코딩 디바이스 (112) 의 입력 (114) 은 NAL 유닛들을 수신할 수도 있다. 통신 링크 (120) 는 무선 네트워크, 유선 네트워크, 또는 유선 및 무선 네트워크의 조합에 의해 제공되는 채널을 포함할 수도 있다. 무선 네트워크가 임의의 무선 인터페이스 또는 무선 인터페이스들의 조합을 포함할 수도 있고, 임의의 적합한 무선 네트워크(예컨대, 인터넷 또는 다른 광역 네트워크, 패킷 기반 네트워크, WiFiTM, 무선 주파수(RF), UWB, WiFi-Direct, 셀룰러, LTE(Long-Term Evolution), WiMaxTM 등)를 포함할 수도 있다. 유선 네트워크는 임의의 유선 인터페이스 (예컨대, 섬유, 이더넷, 전력선 이더넷, 이더넷 오버 동축 케이블, 디지털 신호 라인 (DSL) 등) 를 포함할 수도 있다. 유선 및/또는 무선 네트워크는 기지국, 라우터, 액세스 포인트, 브리지, 게이트웨이, 스위치 등과 같은 다양한 장비를 사용하여 구현될 수있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 수신 디바이스로 송신될 수도 있다.
일부 예에서, 인코딩 장치 (104) 는 인코딩된 비디오 비트스트림 데이터를 저장 장치 (108) 에 저장할 수있다. 출력 (110) 은 인코더 엔진 (106) 으로부터 또는 스토리지 (108) 로부터 인코딩된 비디오 비트스트림 데이터를 취출할 수도 있다. 스토리지 (108) 는 다양한 분산되거나 국부적으로 액세스된 데이터 스토리지 매체들 중의 임의의 것을 포함할 수도 있다. 예를 들어, 저장 장치 (108)는 하드 드라이브, 저장 디스크, 플래시 메모리, 휘발성 또는 비 휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적절한 디지털 저장 매체를 포함할 수 있다.
디코딩 디바이스 (112) 의 입력 (114) 은 인코딩된 비디오 비트 스트림 데이터를 수신하고 디코더 엔진 (116)에 의해 나중에 사용하기 위해 비디오 비트 스트림 데이터를 디코더 엔진 (116) 또는 저장 장치 (118)에 제공 할 수있다. 디코더 엔진 (116) 은 인코딩된 비디오 데이터를 구성하는 하나 이상의 코딩된 비디오 시퀀스들의 엘리먼트들을 (예컨대, 엔트로피 디코더를 이용하여) 엔트로피 디코딩하고 추출함으로써 인코딩된 비디오 비트스트림 데이터를 디코딩할 수도 있다. 그 후, 디코더 엔진 (116) 은 인코딩된 비디오 비트스트림 데이터에 대한 역변환을 리스케일링 (rescaling) 할 수도 있고 이 역변환을 수행할 수도 있다. 잔차 데이터는 그 후 디코더 엔진 (116) 의 예측 스테이지로 전달된다. 디코더 엔진 (116)은 픽셀들의 블록 (예를 들어, PU) 을 예측한다. 일부 예들에서, 그 예측은 역변환의 출력 (잔차 데이터) 에 추가된다.
디코딩 디바이스 (112) 는 디코딩된 비디오를 비디오 목적지 디바이스 (122) 에 출력할 수도 있고, 비디오 목적지 디바이스는 디코딩된 비디오 데이터를 콘텐츠의 소비자에게 디스플레이하기 위한 디스플레이 또는 다른 출력 디바이스를 포함할 수도 있다. 일부 양태들에 있어서, 비디오 목적지 디바이스 (122) 는 디코딩 디바이스 (112) 를 포함하는 수신 디바이스의 부분일 수도 있다. 일부 양태들에서, 비디오 목적지 디바이스 (122) 는 수신 디바이스 이외의 별도의 디바이스의 일부일 수있다.
일부 실시형태에서, 비디오 인코딩 디바이스 (104) 및/또는 비디오 디코딩 디바이스 (112) 는 각각 오디오 인코딩 디바이스 및 오디오 디코딩 디바이스와 통합될 수있다. 비디오 인코딩 디바이스 (104) 및/또는 비디오 디코딩 디바이스 (112) 는 또한, 하나 이상의 마이크로프로세서들, 디지털 신호 프로세서들 (DSP들), 애플리케이션 특정 집적 회로들 (ASIC들), 필드 프로그래밍가능 게이트 어레이들 (FPGA들), 이산 로직, 소프트웨어, 하드웨어, 펌웨어, 또는 그 임의의 조합들과 같은, 상기 설명된 코딩 기법들을 구현하기 위하여 필요한 다른 하드웨어 또는 소프트웨어를 포함할 수도 있다. 비디오 인코딩 디바이스 (104) 및 비디오 디코딩 디바이스 (112) 는 각각의 디바이스에서 결합된 인코더/디코더 (코덱) 의 일부로서 통합될 수있다. 인코딩 디바이스(104)의 특정 세부사항들의 예가 도 14 를 참조하여 아래에서 설명된다. 인코딩 디바이스(112)의 특정 세부사항들의 예가 도 15 를 참조하여 아래에서 설명된다.
HEVC 표준의 확장들은 MV-HEVC 라고하는 멀티뷰 비디오 코딩 확장과 SHVC 라고하는 스케일러블 비디오 코딩 확장을 포함한다. MV-HEVC 및 SHVC 확장은 계층화된 코딩의 개념을 공유하며, 인코딩된 비디오 비트 스트림에 상이한 계층들이 포함된다. 코딩된 비디오 시퀀스의 각 계층은 고유 계층 식별자 (ID) 로 어드레싱된다. 계층 ID 는 NAL 유닛이 연관되는 계층을 식별하기 위해 NAL 유닛의 헤더 내에 존재할 수도 있다. MV-HEVC 에 있어서, 상이한 계층들은 비디오 비트스트림에서 동일한 장면의 상이한 뷰들을 표현할 수 있다. SHVC 에 있어서, 상이한 공간 해상도들 (또는 픽처 해상도) 에서 또는 상이한 복원 충실도들에서 비디오 비트스트림을 표현하는 상이한 스케일러블 계층들이 제공된다. 스케일러블 계층들은 베이스 계층 (계층 ID = 0) 및 하나 이상의 향상 계층 (계층 ID = 1, 2, ... N) 을 포함할 수있다. 기본 계층은 HEVC 의 제 1 버전의 프로파일을 따르고, 비트 스트림에서 최저 이용가능 계층을 나타낸다. 향상 계층은 기본 계층에 비해 증가된 공간 해상도, 시간 해상도 또는 프레임 레이트 및/또는 재구성 충실도 (또는 품질) 를 갖는다. 향상 계층들은 계층적으로 구성되며 하위 계층들에 종속될 수도 있고 그렇지 않을 수도 있다. 일부 예에서, 상이한 계층들은 단일 표준 코덱을 사용하여 코딩될 수도 있다 (예를 들어, 모든 계층들이 HEVC, SHVC 또는 다른 코딩 표준을 사용하여 인코딩 됨). 일부 예들에서, 상이한 계층들은 다중 표준 코덱을 사용하여 코딩될 수있다. 예를 들어, 기본 계층은 AVC를 사용하여 코딩될 수 있는 반면, 하나 이상의 향상 계층은 HEVC 표준에 대한 SHVC 및/또는 MV-HEVC 확장을 사용하여 코딩될 수 있다.
일반적으로, 계층은 VCL NAL 유닛들의 셋트와, 비-VCL NAL 유닛들의 대응하는 셋트를 포함한다. NAL 유닛들은 특정 계층 ID 값을 할당받는다. 계층들은, 계층이 더 낮은 계층에 종속될 수도 있다는 의미에서 계위적일 수 있다. 계층 셋트는 자체-포함된 비트스트림 내에서 표현된 계층들의 셋트를 지칭하며, 이는 계층 셋트 내의 계층들이 디코딩 프로세스에서 계층 셋트에서의 다른 계층들에 종속될 수 있지만 디코딩을 위한 어떠한 다른 계층들에도 종속하지 않음을 의미한다. 이에 따라, 계층 셋트에서의 계층들은, 비디오 콘텐츠를 표현할 수 있는 독립적인 비트스트림을 형성할 수 있다. 계층 셋트에서의 계층들의 셋트는 서브-비트스트림 추출 프로세스의 동작에 의해 다른 비트스트림으로부터 획득될 수도 있다. 계층 셋트는, 디코더가 특정 파라미터들에 따라 동작하길 원할 때, 디코딩되어야 하는 계층들의 셋트에 대응할 수도 있다.
일부 구현들에서, 360-도 비디오를 캡처하기 위한 카메라 셋트들은 전방향성 카메라들, 카타디옵트릭 카메라들 (렌즈들 및 곡면 거울들을 사용하는 카메라), 어안 렌즈들이 장착된 카메라들, 및 / 또는 기타 적합한 카메라들을 포함 할 수 있다. 전방향성 카메라의 하나의 예는 Ricoh Theta-S 이고, 이는 반대 방향들에서 포커싱되는 2 개의 어안 렌즈들을 사용한다.
카타디옵트릭 카메라들, 어안 렌즈들이 장착된 카메라들과 같은 전방향성 카메라들은 통상적으로 심각한 양의 왜곡을 가지면서 이미지들을 캡처한다. 도 2a 및 도 2b 는 넓은 시야의 뷰를 캡처하기 위해 어안 렌즈들을 사용하는 전방향성 카메라들에 의해 캡처된 비디오 프레임들의 예들을 나타낸다. 도 2a 의 예에서, 비디오 프레임 (200) 은 원형의 어안 이미지를 포함한다. 어안 렌즈들은 280 도 이상과 같은 매우 넓은 각도들을 캡처할 수 있다. 따라서, 등을 맞대고 포지셔닝된 2 개의 어안 렌즈들을 구비한 카메라는 함께 360 도 (또는 그 이상의) 뷰를 제공하는 2 개의 이미지들을 캡처할 수 있다. 비-광-각 어안 렌즈들은 약 45 도 내지 약 90 도의 정도의 시야를 캡처한다. 시야는 대안적으로 또는 추가적으로 라디안으로 표현될 수 있다.
넓은 각도를 캡처하기 ㅜ이해서, 어안 렌르은 장면의 이미지를 왜곡한다. 도 2a 에서 예시된 바와 같이, 비디오 프레임 (200) 에서 캡처된 장면은 형상이 원형이고, 이 원형 영역의 센터로부터 외곽 에지들로 휘어진다. 카메라 센서들이 직사각형이기 때문에, 비디오 프레임 (200) 은 직사각형이고, 이미지는, 이 장면의 일부가 아닌, 여기서 점묘를 이용하여 도시된, 영역들을 포함한다. 이 영역들에서의 픽셀들은, 이들 픽셀들이 장면의 일부가 아니기 때문에, 이용가능하지 않은 것으로 고려된다.
도 2b 의 예는 풀-프레임 어안 이미지를 포함하는 비디오 프레임 (202) 을 포함한다. 이 타입의 비디오 프레임 (202) 에서, 광각 시야가 또한 원형 영역에서 캡처되었고, 장면은 원형 영역으로 휘어지고 있다. 이 예에서, 이미지는 스케일링되고 (예컨대, 더 크게 됨) 따라서 장면은 직사각형 프레임의 에지들을 채운다. 이 예시적인 비디오 프레임 (202) 은 이용가능하지 않은 영역들을 포함하지 않고, 렌즈들에 의해 캡처될 수 있는 장면의 일부 부분들은 크로핑 아웃되거나 캡처되지 않았다.
상술된 바와 같이, 다른 타입들의 카메라들이 또한 360-도 비디오를 캡처하기 위해서 사용될 수 있다. 예를 들어, 카메라 셋트는 다수의 카메라들 (예컨대, 5, 6, 7, 또는 장면의 충분한 수의 뷰들을 캡처하기 위해 필요한 다른 수의 카메라들) 의 셋트를 포함할 수 있다. 각 카메라는 상이한 방향으로 배향될 수 있고, 장면의 상이한 뷰 (view) 를 캡처할 수 있다. 심 없는 360-도 뷰를 제공하기 위해 카메라 셋트에서의 카메라들의 각각에 의해 캡처된 비디오 프레임들 (또는 이미지들) 에 대해 이미지 스티칭이 그 다음에 수행될 수 있다.
360-도 비디오는 다른 포맷들로 리맵핑될 수 있다. 이들 다른 형식들은 360-도 비디오를 저장, 송신, 및/또는 뷰잉하기 위해 사용될 수 있다. 하나의 예시적인 형식은 등장방형 (equirectangular) 포맷이다. 도 3 은 2 개의 어안 이미지들 (302A, 302B) 에 기초한 등장방형 비디오 프레임 (300) 의 일 예를 나타낸다. 이 예시적인 등장방형 비디오 프레임 (300) 에서, 2 개의 어안 이미지들 (302A, 302B) 로부터의 이용가능한 픽셀들 (예컨대, 원형 영역들 내의 픽셀들) 은 등장방형 포맷으로 맵핑되었다. 이 예에서, 각각의 어안 이미지 (302A, 302B) 는 180-도 이상의 시야를 포함하여서, 함께, 2 개의 어안 이미지들 (302A, 302B) 은 (가능하게는 일부 중첩하면서) 360-도 시야를 포함한다.
어안 이미지들 (302A, 302B) 로부터 픽셀들을 맵핑하는 것은 어안 이미지들 (302A, 302B) 에서 캡처된 장면을 휘지 않게 하고 비디오 프레임 (300) 의 에지들을 향해 픽셀들을 펴는 효과를 갖는다. 결과적인 등장방형 이미지는 비디오 프레임 (300) 의 상부와 하부에서 펴진 것으로 보일 수도 있다. 잘 알려진 등장방형 투영은 Mercator 투영이고, 여기서, 지구의 지형이 직각의 위도 및 경도 라인들로 제시된다.
다양한 구현들에서, 어안 이미지들 (302A, 302B) 은 정육면체, 원통형, 각뿔, 각뿔대, 또는 몇몇 다른 기하학적 형상에 의해 형성된 면들 상으로와 같이 다른 포맷들로 맵핑될 수 있다. 이들 경우들의 각각에서, 어안 이미지들 (302A, 302B) 에서 존재하는 왜곡은 정정될 수 있고, 이용가능하지 않은 픽셀들은 제거될 수 있다. 평면 데이터는 또한 저장 및/또는 송신을 위해 패키징될 수 있고, 360-도 비디오를 디스플레이하기 위해 사용될 수 있다.
일부 경우들에서, 예를 들어, 360-도 비디오 데이터를 저장 및/또는 송신하기 위해서, 또는 비디오 데이터를 다른 포맷으로 변환하기 위해서 중간 포맷이 유용할 수 있다. 예를 들어, 도 4a 및 도 4b 에서 예시된 바와 같이, 비디오 데이터를 디스플레이하기 위해 등장방형 표현이 구형 포맷 (예컨대, 구형 기하학) 으로 맵핑될 수 있다.
도 4a 및 도 4b 는 360-도 비디오 표현에서 사용되고 있는 등장방형 비디오 프레임 (400) 의 일 예를 나타낸다. 등장방형 비디오 프레임 (400) 은 구면 표현 (410) 을 형성하기 위해 구형 공간 상으로 맵핑될 수 있고, 결과적인 구면 표현은 헤드 장착 디스플레이 또는 몇몇 다른 360-도 비디오 디스플레이 디바이스를 이용하여 뷰어 (420) 에게 디스플레이될 수 있다. 다른 예들에서, 등장방형 비디오 프레임 (400) 은 원형, 원통형, 각뿔형, 또는 몇몇 다른 기하학적 형상으로 맵핑될 수 있고, 여기서, 기하학적 형상은 비디오를 디스플레이하기 위해 360-도 비디오 디스플레이 디바이스에 의해 사용될 수 있다.
상기 언급된 바와 같이, 등장방형 비디오 프레임 (400) 은 완전한 360-도 시야를 캡처할 수 있고, 상부 및 하부 영역들에서의 픽셀들은 신장 및/또는 압축된 것으로 보인다. 360-도 비디오 프리젠테이션에서 등장방형 비디오 프레임 (400) 을 사용하기 위해서, 등장방형 비디오 프레임 (400) 에서의 픽셀들은 구면 표현 (410) 으로 맵핑될 수 있다. 이러한 맵핑은 구면 표현의 최상부 및 최하부 (예컨대, 각각 "북극" 및 "남극") 를 향해 등장방형 비디오 프레임 (400) 의 상부 및 하부 영역들을 확장하는 효과를 가질 수 있다. 상부 및 하부 영역들을 확장하는 것은 등장방형 비디오 프레임 (400) 에서 분명한 이들 영역들에서의 왜곡을 정정할 수 있다.
등장방형 비디오 프레임 (400) 을 구면 표현 (410) 으로 맵핑하는 것은 추가적으로, 구면 표현의 센터 (예컨대, 적도) 주위의 프레임의 폭을 랩핑 (wrapping) 하는 효과를 가질 수 있다. 등장방형 비디오 프레임 (400) 의 좌측 및 우측 에지들은 서로 나란히 맵핑될 수 있어서, "심 (seam)" 이 나타나지 않는다.
일단 등장방형 비디오 프레임 (400) 이 구면 표현으로 맵핑되고 나면, 그 구면 표현이 디스플레이될 수 있다. 헤드 장착 디스플레이 또는 다른 360-도 비디오 디스플레이 디바이스를 사용하는 뷰어 (420) 는, 그 구면 표현 내로부터 구면 표현을 볼 수 있다. 대부분의 경우들에서, 뷰어 (420) 는 뷰어의 관점으로부터 "그라운드" 가 구면 표현의 최하 지점이도록 포지셔닝된다. 일부 경우들에서, 사용자의 눈들은 구의 중심에 있다고 가정될 수 있다. 다양한 구현들에서, 구면 표현은 (예컨대, 뷰어가 앉아 있거나, 서 있거나, 또는 몇몇 다른 자세로 있는 경우에) 뷰어의 높이 및/또는 포지션에 맞도록 확장 또는 수축될 수 있다.
상술된 바와 같이, 본원에 기술된 하나 이상의 시스템들 및 방법들은 비디오 콘텐츠에서의 하나 이상의 관심 영역들 (ROI들) 의 시그널링 정보를 포함하도록 360-도 비디오 콘텐츠에 대한 미디어 파일들을 생성하는 것에 지향된다. 본원에 기술된 하나 이상의 시스템들 및 방법들은 또한, 렌더링을 위해 비디오 콘텐츠로부터 ROI 를 추출하기 위해 미디어 파일들에 포함된 시그널링 정보를 프로세싱하는 것에 지향된다.
상기 언급된 바와 같이, 360-도 비디오 화상의 ROI 는 장면의 특정 부분을 캡처하는 화상의 미리결정된 영역일 수 있다. 이러한 경우들에서, ROI 는 또한 가장 관심대상인 영역으로서 지칭될 수 있다. ROI 들에 관련된 정보의 생성 및 시그널링은 서비스 또는 콘텐츠 제공자에 의한 사용자 통계에 기초하여, 사용자 제공된 입력을 이용하여 또는 다른 적합한 기법들을 이용하여 수행될 수 있다. 다양한 예들에서, 화상에 대해 결정된 ROI 는 시청자의 뷰를 지향시키는 360-도 비디오 콘텐츠 아이템의 구체적으로 선택된 부분, 통계적으로 결정된 관심 영역, 또는 장면의 다른 미리결정된 부분을 포함할 수 있다. 실례로, 콘텐츠의 생성자 (예컨대, 감독, 프로듀서, 저자 등) 는 360-도 비디오 콘텐츠 아이템에서의 가장 관심있는 영역들을 정의할 수 있다. 이러한 예에서, 360-도 비디오의 재생은, 비록 사용자가 그의 또는 그녀의 머리를 돌리지 않거나 다른 사용자 인터페이스 (UI) 를 통해 뷰포트를 변경하지 않을 때에도, 감독 또는 다른 당사자가 시청자가 집중하기를 원하는 동적으로 변화하는 뷰포트를 디스플레이할 수도 있다. 이러한 뷰포트들은 장면별로 전방향성 비디오에 있어서 제공될 수도 있다. 다른 예에서, 360-도 비디오 콘텐츠 아이템의 다양한 화상들에서의 ROI 들은, 특정 360-도 (또는 VR) 비디오 콘텐츠가 스트리밍 서비스를 통해 제공되었을 때 , 어느 영역들이 사용자들에 의해 가장 많이 요청되고/거나 보여졌는지의 통계를 이용하여 결정될수 있다. 이러한 예에서, 360-도 비디오 화상에서의 ROI 는 화상의 프리젠테이션 시간에서 통계적으로 사용자에게 가장 가능성 높게 렌더링될 영역들 중 하나를 포함할 수 있다.
ROI 들 상의 정보는 다양한 360-도 비디오 퍼포먼스-향상 목적들을 위해서 사용될 수 있다. 예를 들어, ROI 정보는 에지 서버들, 클라이언트들, 및/또는 다른 엔티티들에 의해 360-도 비디오 적응적 스트리밍에서 데이터 프리-페칭을 위해 사용될 수 있다. 다른 예에서, ROI 정보는 VR 비디오가 (예컨대, 다른 코덱으로, 상이한 투영 맵핑으로, 또는 다른 트랜스코딩 오퍼레이션으로) 트랜스코딩될 때 트랜스코딩 최적화를 위해 사용될 수 있다. 다른 예들에서, ROI 정보는 에지 서버 또는 캐시에 의한 캐시 관리, 360-도 비디오 스트리밍 서버에 의한 콘텐츠 관리, 또는 다른 목적들을 위해서 사용될 수 있다. 일부 경우들에서, ROI 들의 시그널링은, 예를 들어, 비디오 비트스트림에서의 SEI 메시지들, 미디어 파일에서의 파일 포맷 샘플 그룹, (예컨대, 샘플 그룹을 이용하여) HTTP (DASH) 미디어 프리젠테이션 디스크립션 (MPD) 엘리먼트들 또는 속성들을 통한 동적 적응형 스트리밍, 및/또는 다른 시그널링 메커니즘들을 이용함으로써 수행될 수 있다.
360-도 비디오에서의 ROI 는 적어도 2 가지 방식들로 정의될 수도 있다. 예를 들어, 360-도 비디오에서의 ROI 는 2D 화상에 대해 2D 데카르트 좌표 시스템 (Cartesian coordinate system) 에 기초하여 ROI 를 정의하는 것이다. ROI 를 정의하기 위한 다른 방식은 (예컨대, 360-도 비디오의 구형 표면 상에 영역을 정의함으로써) 구 좌표 시스템에 기초하여 정의될 수 있다.
구 좌표 시스템에 기초하여 ROI 들을 정의하기 위해 몇가지 방법들이 사용될 수 있다. 예를 들어, ROI 는, 각 세그먼트가 구형 표면 상의 2 개의 포인트들 사이에 있고, 어느 4 개의 큰 원들의 4 개의 세그먼트들에 의해 둘러싸이는, 또는, 2 개의 큰 원들 및 2 개의 작은 원들에 의해 둘러싸이는,, 구형 표면 상의 영역으로서 정의될 수 있다. 여기서, 원, 대원, 및 소원은 다음과 같이 정의된다 (그리고 이하에서 설명되는 바와 같이 도 5a 및 도 5b 에서 예시된다): 평면 및 구의 교차부는 (교차부가 점일 대를 제외하고는) 원이다. 이 원의 모든 점들은 구의 표면에 속한다. 구의, 오소드롬 (orthodrome) 또는 리만 (Riemannian) 원으로서도 알려진, 대원 (great circle) 은 구와, 그 구의 중앙 지점을 통과하는 평면의 교차부이다. 구의 센터와 대원의 센터는 항상 병치된다. 이 조건을 충족시키지 않는 구와 평면의 임의의 다른 교차부는 소원 (small circle) 을 형성할 수도 있다.
360-도 비디오가 헤드 장착 디스플레이 (HMD) 또는 비-HMD 디스플레이 (예컨대, TV, 모바일 디바이스, 웨어러블 디바이스, 또는 다른 적합한 비-HMD 디스플레이) 상에서 재생될 때, 뷰포트가 사용자에게 렌더링된다. 뷰포트는 (일 지점에서 구와 교차하는) 구에 대해 접하는 평면 상의 직사각형 영역일 수 있고, 여기서, 뷰포트 평면은 사용자의 보는 방향에 대해 직각이다. 뷰포트는 (예컨대, JVET-D1030 에서 논의된 바와 같이) 직선형 투영을 적용함으로써 생성될 수 있다. 뷰포트에 대응하는 구 상의 영역은 4 개의 대원들의 4 개의 세그먼트들에 의해 둘러싸이는 것이다.
VR 비디오에서의 ROI 들의 시그널링에 대한 기존의 설계들과 관련하여 여러가지 문제점들이 존재한다. 예를 들어, (구 상의 영역의 시그널링에 의해) 구 좌표 시스템 또는 아니면 (화상의 영역의 시그널링에 의해) 2D 데카르트 좌표 시스템에만 기초하여 시그널링하는 것으로부터 문제들이 발생할 수 있다. 구면형 비디오 데이터를 렌더링 및/또는 송신하기 위해 추가적인 프로세싱이 필요할 수도 있고, 이는 비디오 프로세싱 시스템 (예컨대, 비디오 캐시, 미디어 게이트웨이, 렌더러 등) 의 퍼포먼스에 영향을 미칠 수 있고, 비디오 콘텐츠의 송신 및/또는 렌더링에서의 지연을 야기할 수 있고, 이는 열악한 사용자 경험으로 이끌 수 있다. 예를 들어, ROI 시그널링에 기초한 구 좌표 시스템은, 사용자에게 관심 대상인 특정 구 영역 (예컨대, 장면에서의 오브젝트) 의 렌더링을 위해, 그리고 그 구 영역이 시그널링되는 경우에, 그것이 전체 구면형 비디오 장면 상에서 쉽게 식별되고 로케이팅될 수 있기 때문에, 렌더링 관점에서 유익하다. 하지만, 이러한 구 기반 시그널링이 (예컨대, DASH 와 같은 적응형 스트리밍에서의 데이터 프리페칭에서) 전달 및 디코딩의 최적화를 위해 사용될 때에는, 로컬 캐시 또는 미디어 게이트웨이는 독립적으로 코딩된 화상 영역들 중 어느 것이 시그널링된 ROI 를 커버하는 최소 셋트인지를 알 필요가 있다. 이를 행할 수 있도록, 캐시 또는 미디어 게이트웨이는, 인코딩 전에 구면형 비디오 신호의 2D 비디오 신호로의 변환에서 사용되었던 투영 및 영역별 맵핑을 수반하는 기하학적 프로세싱을 수행할 필요가 있다. 이것은 캐시들 및 미디어 게이트웨이들에 대해 무거운 프로세싱 부담일 것이다. 다른 한편, 2D 데카르트 좌표 시스템 기반 ROI 시그널링은 (예컨대, DASH 와 같은 적응형 스트리밍에서의 데이터 프리페칭에서) 전달 및 디코딩의 최적화들의 관점에서 유익하지만, 그것은, 구 상의 어느 영역이 (ROI 로서 시그널링되는) 독립적으로 코딩된 화상 영역들에 의해 커버되는지를 알 필요가 있을 때, 플레이어 또는 렌더러들이 투영 및 영역별 맵핑의 역 기하학적 프로세싱을 적용할 필요가 있음에 따라 렌더링에 대한 부담을 부과한다.
또 다른 문제점은, 구 좌표 시스템에 기초한 ROI 가 구 상의 영역으로서 시그널링될 때, 그 영역에 대응하는 뷰포트의 치수(들) (예컨대, 폭 및 높이) 을 알기 위해, 직선형 투영이 적용될 필요가 있을 수도 있다는 점이다. 하지만, 이 정보는, 치수들이 부담인지를 결정하기 위해 직선형 투영 프로세스를 적용하는 동안, 세션 협상 또는 콘텐츠 선택 동안 필요할 수도 있다.
일부 경우들에서, 2 개의 대원들 및 2 개의 소원들의 4 개의 세그먼트들에 의해 둘러싸이는 구형 표면 상의 영역이 뷰포트에 대응하지 않을 때 문제들이 발생할 수 있다. 예를 들어, 뷰포트는 2D 등장방형-투영된 화상에서의 비-직사각형 영역 (예컨대, 도 5a 에서 도시된 전체 뷰포트 (520) 에 대응할 수도 있는 한편, 2 개의 대원들 및 2 개의 소원들의 4 개의 세그먼트들에 의해 둘러싸이는 구형 표면 상의 영역은 오직 뷰포트 영역의 서브셋트에만 (예컨대, 뷰포트 (520) 의 비-직사각형 영역 내의 직사각형 영역에만) 대응할 수도 있다. 일부 경우들에서,그 직사각형 영역은 비-직사각형 영역을 포함하는 것이 또한 가능하다 (비-직사각형 영역은 직사각형 영역의 서브셋트이다). 하지만, 직사각형 영역 및 비-직사각형 영역은 서로 절대 정확하게 매칭되지 않을 수도 있다.
본원에 기술된 시스템들 및 방법들을 이용하여 360-도 비디오 콘텐츠에 대해 생성된 미디어 파일은 ROI 의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함할 수도 있다. 제 1 시그널링 정보는 구면형 비디오에 대응하는 3-차원 구형 공간에서 ROI 의 치수 정보 및 ROI 의 제 1 로케이션을 정의하는 구면형 정보를 포함할 수도 있다. 제 2 시그널링 정보는 구형 공간을 평면 상으로 투영시킴으로써 형성된 2-차원 공간에서의 ROI 의 제 2 로케이션을 정의하는 2D 정보를 포함할 수도 있다. 일부 예들에서, 듀얼 시그널링은 ROI 의 제 1 로케이션과 제 2 로케이션 사이의 맵핑을 제공할 수 있고, 이는 구면형 비디오 데이터의 송신 및 렌더링 양자를 용이하게 할 수 있다. 예를 들어, 구면형 비디오 데이터는 2-차원 비디오 프레임들의 형태로 스트리밍 애플리케이션에 의해 송신될 수 있다. 상술된 바와 같이, 2-차원 비디오 프레임들은 구면형 비디오 데이터의 2-차원 평면 상으로의 투영 (예컨대, 등장방형 투영 또는 다른 적합한 투영) 에 의해 형성될 수 있다. 예를 들어 관심대상이도록 미리결정된 (예컨대, 감독의 컷에 대한 지시, 통계적으로 결정된 영역, 또는 다른 적합한 정보) 장면의 부분에 기초하여 ROI 를 렌더링하기 위해서, ROI 에 대응하는 영역은 제 1 로케이션에 기초하여 구면형 비디오에서 식별될 수 있다. 더욱이, 제 1 로케이션과 제 2 로케이션 사이의 맵핑을 통해, 스트리밍 애플리케이션은 2-차원 비디오 프레임들의 영역들 중 어느 것이 ROI 의 렌더링을 위해 페칭될지를 결정할 수 있다. 또한, 2-차원 비디오 프레임들의 영역들을 획득한 후에, 미디어 플레이어 또는 렌더러는, 예를 들어, ROI 의 치수 정보에 기초하여 ROI 에 대응하는 영역들로부터 픽셀들을 식별할 수 있고, 추출된 픽셀들을 렌더링할 수 있다.
도 4a 는 관심 영역 (ROI) (430) 을 나타내는 도이다. ROI (430) 는 등장방형 비디오 프레임 (400) 에 포함된 픽셀들의 서브셋트를 포함할 수 있다. 상술된 바와 같이, ROI (430) 는 예를 들어 뷰어 (420) 의 현재 시야 (field of view; FOV) 로서 제시될 미리결정된 관심 영역 (ROI) 에 대응할 수도 있다. 미리결정된 ROI 는 예를 들어 장면의 뷰들의 미리결정된 셋트, 프레임의 통계적으로 결정된 영역 등을 통해 뷰어 (420) 를 가이드하기 위한 감독의 컷에 대응할 수도 있다. 일부 예들에서, ROI (430) 는 또한, 예를 들어, 뷰어 (420) 가 볼 장면의 부분을 제어할 수 있도록, 구면 표현 (410) 에 대한 뷰어 (420) 의 뷰의 방향에 대응할 수도 있다. ROI (430) 는 그 다음에, 뷰어 (420) 에 의해 사용되는 뷰잉 디바이스에 의해 렌더링될 뷰포트를 형성하도록 맵핑될 수 있다. 보통의 (비-360-도 또는 비-VR) 비디오에 비해 360-도 비디오의 구별되는 특징은, 360-도 비디오에서는, 통상적으로 (뷰잉 디바이스의 뷰포트 또는는 현재 시야 (FOV) 에 대응하는) 비디오 화상들에 의해 표현되는 전체 비디오 영역의 서브셋트만이 디스플레이되는 한편, 보통의 비디오 애플리케이션들에서는, 통상적으로 전체 비디오 영역이 디스플레이된다는 점이다. FOV 또는 뷰포트는 현재 디스플레이 디바이스에 의해 제시되고 있는 그리고 사용자 또는 관찰자가 보고 있는 영역이다.
도 4b 는 ROI (430) 에 대응하는 뷰포트 (460) 의 일 예를 나타내는 도이다. 뷰포트 (460) 는 구면 표현 (410) 을 형성하는 구형 공간에 접하는 평면 상의 영역일 수 있다. 뷰포트 (460) 는 ROI (430) 의 평면 상으로의 직선형 투영을 수행함으로써 형성될 수 있다. 도 4b 의 예에서, 뷰포트 평면은 하나의 점에서 구면 표현 (410) 의 구형 공간과 교차할 수 있고, 사용자 (420) 의 보는 방향에 대해 직교할 수 있다.
도 4c 는 구면 표현 (410) 의 구형 공간 내의 뷰포트 (460) 의 로케이션을 표현하는 일 예를 나타내는 도이다. 도 4c 의 예에서, 뷰포트 (460) 의 로케이션은 피치 (pitch) 각도 (462) 및 요 (yaw) 각도 (464) 에 의해 표현될 수 있다. 양 각도들은 구형 장면 상의 ROI 의 로케이션에 기초하여 사용자의 뷰의 방향으로부터 도출될 수 있다. 예를 들어, 뷰포트 (460) 의 뷰포트 센터 (474) 를 향해 구면 센터 (472) 에서 포지셔닝된 사용자의 뷰의 방향은 벡터 (470) 에 의해 표현될 수 있다. 벡터 (470) 는 x-z 평면 상의 투영 (476), 및 x-y 평면 상의 투영 (478) 을 형성할 수도 있다. 피치 각도 (462) 는 투영 (476) 및, y-축과 평행한 축 (480) 사이에 형성될 수 있다. 요 각도 (464) 는 투영 (478) 및 축 (480) 사이에 형성될 수 있다.
양 피치 각도 (462) 및 요 각도 (464) 는 뷰포트 (460) 의 로케이션을 사용자의 머리 및/또는 안구들의 방향과 관련시킬 수 있다. 예를 들어, 피치 각도 (462) 는 벡터 (470) 의 상승 각도를 표현할 수 있고, 이는 예를 들어, x-z 평면에 대한 사용자의 머리의 상승, x-z 평면에 대한 사용자의 안구의 회전, 또는 x-z 평면에 대한 사용자의 임의의 다른 움직임의 각도에 대응할 수 있다. 또한, 요 각도 (464) 는 벡터 (470) 의 회전 각도를 표현할 수 있고, 이는 예를 들어, 사용자의 머리의 회전, x-y 평면에 대한 사용자의 머리의 회전, x-y 평면에 대한 사용자의 안구의 회전, 또는 x-y 평면에 대한 사용자의 임의의 다른 움직임의 각도에 대응할 수 있다. 피치 각도 (462) 및 요 각도 (464) 에 기초하여 뷰포트 (460) 의 로케이션을 표현함으로써, 뷰포트 (460) 에 의해 표현되는 관심 영역 (ROI) 의 로케이션은 사용자의 머리 및/또는 안구들의 방향에 기초하여 효과적으로 결정될 수 있고, 이는 ROI 에 대응하는 구면형 비디오 콘텐츠의 부분의 효율적인 렌더링을 가능하게 한다.
뷰포트 (460) 의 센터 (474) 에 추가하여, 뷰포트 (460) 의 다른 속성ㄷ르이 또한 요 각도 (464) 및 피치 각도 (462) 에 기초하여 표현될 수 있다. 예를 들어, 도 4e 를 참조하면, 중간점들 (482, 484, 486, 및 488) 은 뷰포트 (460) 의 에지들 사이의 중간점들일 수 있다. 중간점들 (484 및 488) 사이의 거리는 예를 들어 뷰포트 (460) 의 높이를 정의할 수도 있는 반면, 중간점들 (482 및 486) 사이의 거리는 예를 들어 뷰포트 (460) 의 폭을 정의할 수도 있다. 뷰포트 (460) 의 높이는 구면 센터 (472), 중간점 (484), 및 중간점 (488) 사이에 형성된 피치 델타 각도 (490) 에 의해 표현될 수 있다. 추가로, 도 4c 및 도 4d 와는 뷰포트 (460) 의 상이한 관점을 예시하는 도 4e 를 참조하면, 뷰포트 (460) 의 폭은 또한 구면 센터 (472), 중간점 (482), 및 중간점 (486) 사이에 형성된 요 델타 각도 (492) 에 의해 표현될 수 있다. 뷰포트 (460) 의 로케이션, 높이, 및 폭은 ROI (430) 의 미리결정된 로케이션, 미리결정된 높이, 및 미리결정된 폭의, 뷰포트 (460) 에 대응하는 평면 상의 직선형 투영의 결과를 표현할 수 있다.
피치 각도 (462) 및 요 각도 (464) 와 함께, 피치 델타 각도 (490) 및 요 델타 각도 (492) 는 사용자의 머리 및/또는 안구들의 방향에 기초하여 구형 공간에서의 뷰포트 (460) (및 ROI) 의 로케이션 및 치수를 정의할 수 있다. 이하에서 보다 자세히 논의되는 바와 같이, 뷰포트 (460) 의 로케이션 및 치수 정보는 미디어 파일에 포함된 제 1 시그널링 정보의 일부일 수 있다. 미디어 파일은, 예를 들어, 구면형 비디오의 렌더링/송신을 위해 생성된 2-차원 비디오 프레임들의 셋트의 비트스트림을 캡슐화하는 ISO 기반 미디어 파일일 수도 있다. 미디어 파일은 또한, 비트스트림을 스트리밍하기 위해 사용되는 타임드 메타데이터 트랙 (timed metadata track) 을 포함할 수도 있다. 미디어 파일은 또한, ROI 를 포함하는 2-차원 비디오 프레임들의 특정 영역(들)에 대한 제 2 시그널링 정보를 포함할 수도 있다. 제 1 시그널링 정보 및 제 2 시그널링 정보는 ROI 를 시그널링하기 위해 미디어 파일에서 함께 맵핑될 수 있다. 맵핑에 기초하여, ROI 를 포함하는 2-차원 비디오 프레임의 영역들은 프리페칭되고 렌데러에 제공될 수 있다. 더욱이, 렌더러는 뷰포트 (460) 의 치수 정보에 기초하여 ROI 를 표현하는 비디오 프레임 영역들로부터 픽셀들을 추출하고, 그 픽셀들을 디스플레이를 위해 렌더링할 수 있다. 결과로서, 추가적인 프로세싱 (예컨대, 직선형 투영 또는 역 직선형 투영의 수행) 이 감소될 수 있고, 이는 비디오 프로세싱 시스템의 성능 및 사용자 경험을 향상시킬 수 있다.
비록 도 4a 내지 도 4e 는 뷰포트 (460) 가 직사각형 형상을 갖는 것으로 예시하지만, 뷰포트는 다른 형상들을 가질 수 있다. 뷰포트의 형상은 뷰포트에 대응하는 영역 (예컨대, ROI (430)) 이 어떻게 구면 표현 (410) 에서 기하학적으로 정의되는지에 기초하여 결정될 수 있다. ROI (430) 의 다른 기하학적 정의들을 나타내는 도 5a 내지 도 5c 에 대한 참조가 이제 이루어진다. 도 5a 에서, 영역 (501) 은 원들 (502, 504, 506, 및 508) 에 의해 정의될 수 있다. 원들 (502, 504, 506, 및 508) 의 각각은 "대원 (great circle)" 으로서 지칭될 수 있다. 원들 (502, 504, 506, 및 508) 의 각각은 구면 표현 (410) 의 구형 공간과, 구면 센터 (472) 를 통과하는 평면의 교차부에 의해 형성될 수 있다. 도 5b 에서, 영역 (509) 은 원들 (502 및 504) 및 원들 (516 및 518) 에 의해 정의될 수 있다. 상기 논의된 바와 같이, 원들 (502 및 504) 은 대원들로서 지칭될 수 있다. 반면에, 원들 (516 및 518) 은 "소원들 (small circles)" 로서 지칭되고, 이는 구면 표현 (410) 의 구형 공간과, 구면 센터 (472) 를 통과하지 않는 평면의 교차부에 의해 형성될 수 있다.
ROI (430) 의 기하학적 정의는 (예컨대, 4 개의 대원들에 의해 정의되든지 또는 2 개의 대원들 및 2 개의 소원들에 의해 정의되든지간에) 대응하는 뷰포트들의 형상 및 치수들을 결정할 수 있다. 뷰포트 (520) 및 직사각형 영역 (530) 사이의 비교를 나타내는 도 5c 에 대한 참조가 이제 이루어진다. 도 5c 에서 나타낸 바와 같이, 직사각형 영역 (530) 은 뷰포트 (520) 보다 더 작고 뷰포트 (520) 보다 더 적은 픽셀들을 포함한다. HMD 또는 다른 디스플레이들로부터 볼 수 있는 것에 대응하기 때문에 더 큰 뷰포트가 바람직하고, 예를 들어, 보다 많은 픽셀들이 사용자에게 디스플레이될 수 있다. 일부 구현들에서, 뷰포트에서 사용자에게 제공되는 픽셀들의 수를 최대화하기 위해, ROI 는 오직 ROI 에 대응하는 영역이 대원들에 의해서만 형성되는 경우에만 미디어 파일에서 시그널링된다. 이러한 제한은 또한 뷰포트의 렌더링에 있어서의 균일성 및 예측가능성을 향상시킬 수 있다. 예를 들어, 도 5c 를 참조하면, 렌더러는 직사각형 영역 (530) 대신에 뷰포트 (520) 의 형상에서 뷰포트를 렌더링할 수 있고, 예를 들어, 직사각형 영역 (530) 의 최상부 및 최하부 직선 에지들 사이의 높이 (h') 보다는 뷰포트 (520) 의 최상부 및 최하부 곡선 에지들 사이의 높이 (h) 를 나타내는 것으로서 (예컨대, 피치 델타 각도에 의해 표현되는) 뷰포트 높이를 해석할 수 있다.
도 6a 는 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 의 셋트를 나타낸다. 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 의 각각은 구면 표현 (410) 의 비디오 프레임에 대응한다. 각각의 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 은 예를 들어 면 표현 (410) 의 대응하는 비디오 프레임의 2-차원 평면 상으로의 직선형 투영을 수행함으로써 형성될 수 있다. 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 은 송신을 위해 비디오 비트스트림으로 인코딩될 수 있다.
2-차원 비디오 프레임들 (602a, 602b 내지 602n) 의 각각은 타일들의 셋트로 분할될 수도 있다. 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 에서의 타일들은 모션-제약된 타일들일 수 있고, 레이어에서의 모든 화상들은 동일한 타일 구조를 가질 수 있다. 이러한 경우들에서, 타일들은 비트스트림의 주어진 레이어의 모든 프레임들에 걸쳐 동일한 로케이션을 갖는다. 예를 들어, 모션-제약된 타일은 다른 화상들에서의 동일한 로케이션에서 하나 이상의 타일들을 이용하여 오직 코딩될 수 있는 화상 (또는 프레임) 에서의 특정 로케이션에서의 타일 영역이다. 실례로, 특정 타일 로케이션 내에 있는 참조 화상의 영역만이, 현재 화상에서의 그 특정 타일 로케이션에서의 타일을 인코딩 또는 디코딩하기 위해 사용될 수 있다. 오직 디스플레이 디바이스의 현재 뷰포트를 디스플레이하기 위해 필요한 화상들의 타일들만이 디스플레이를 위해 제공될 수 있다. 도 6a 에서 도시된 바와 같이, 각각의 타일은 상이한 비디오 프레임들 (602a, 602b 내지 602n) 에 걸쳐 지정된 로케이션을 갖는다. 하나의 예에서, 제 1 타일은 602a, 602b 내지 602n 중에서 (0, 0) 의 로케이션을 가지고, 제 1 타일은 그 로케이션에 기초하여 식별될 수 있다. 일부 경우들에서, 타일들은 타일 넘버들 0-23, 타일 넘버들 1-24, 또는 다른 적합한 넘버링과 같이 넘버링될 수 있다. 도 6 에서 도시된 바와 같이, 타일들은 서로 중첩하지 않는다. 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 의 각각은 또한, 구면 표현 (410) 의 대응하는 프레임으로부터 투영된 하나 이상의 ROI 들 (또는 뷰포트들) 을 포함할 수도 있다. 예를 들어, 도 6b 에서 도시된 바와 같이, 뷰포트 (520) 는 로케이션들 (1, 1), (1, 2), (2, 1), 및 (2, 2) 에서의 타일들의 그룹에서 로케이팅될 수도 있다.
상기 논의된 바와 같이, 미디어 파일은 비디오 프레임들 (602a, 602b 내지 602n) 을 인코딩함으로써 형성된 비트스트림을 캡슐화하도록 생성될 수 있다. 미디어 파일은 또한, 비트스트림을 스트리밍하기 위해 사용되는 (미디어 비트스트림을 운반하는 트랙(들)에 추가하여) 타임드 메타데이터 트랙을 포함하도록 생성될 수 있다. 미디어 파일은 ROI/뷰포트의 송신 및 렌더링을 용이하게 하기 위해 (뷰포트에 대응하는) ROI 에 대해 상기 설명된 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함할 수도 있다. 제 1 시그널링 정보는 (예컨대, 요 각도, 피치 각도, 요 델타 각도, 및 피치 델타 각도에 의해 표현되는) 구형 공간에서의 뷰포트의 로케이션 및 치수를 포함할 수도 있다. 제 2 시그널링 정보는 2-차원 비디오 프레임들에서의 뷰포트의 로케이션을 포함할 수도 있다. 2-차원 비디오 프레임들에서의 뷰포트의 로케이션은 예를 들어 뷰포트를 포함하는 타일들의 로케이션들 (또는 식별자들) 에 의해 표현될 수 있다. 도 6b 의 예에 대해, 제 2 시그널링 정보는 ROI 를 시그널링하기 위한 타일 로케이션들 (1, 1), (1, 2), (2, 1), 및 (2, 2) (또는 이들 타일들과 연관된 식별자들/넘버들) 을 포함할 수도 있다.
상기 논의된 바와 같이, 제 1 시그널링 정보 및 제 2 시그널링 정보는 ROI 를 시그널링하기 위해 미디어 파일에서 함께 맵핑될 수 있다. 그 맵핑은 사용자에 대한 뷰포트의 효율적인 송신 및 렌더링을 가능하게 한다. 예를 들어, 비디오 프로세싱 시스템은 사용자에게 구면형 비디오 (410) 에서의 미리결정된 관심 영역을 렌더링하도록 하는 명령을 수신할 수 있다. 그 명령은, 예를 들어, 특정 영역의 센터의 요 각도 및 피치 각도를 포함할 수 있다. 제 1 시그널링 정보에서의 입력 요 각도 및 피치 각도에 기초하여, 비디오 프로세싱 시스템은 예를 들어 뷰포트 (520) 를 포함하는 비디오 프레임 (602a) 에서의 픽셀들의 타일들 (또는 다른 유닛들) 의 셋트를 결정하기 위해 미디어 파일에서의 제 1 시그널링 정보 및 제 2 시그널링 정보 사이의 맵핑을 참조할 수 있다. 더욱이, 피치 각도, 요 각도, 피치 델타 각도, 요 델타 각도, 및 (예컨대, 구면형 비디오 (410) 에서의 미리결정된 영역이 4 개의 대원들에 의해 정의된다는 제한에 기초하여) 뷰포트의 특정 형상의 것의 결정에 기초하여, 렌더러는 또한, 타일들 내의 뷰포트 (520) 의 경계 및 로케이션을 결정하고, 렌더링을 위해 뷰포트 (520) 의 경계 내의 픽셀들을 추출할 수 있다. 이러한 프로세싱은 최소 기하학적 프로세싱으로 수행될 수 있고, 이는 시스템의 성능 및 사용자 경험을 향상시킬 수 있다.
ROI 의 시그널링 정보를 포함하는 ISO 베이스 미디어 파일 (700) 의 일 예를 나타내는 도 7 에 대한 참조가 이제 이루어진다. 파일 (700) 은 ISOBMFF 에 따라 포맷팅될 수 있다. ISOBMFF 는 미디어의 상호교환, 관리, 에디팅, 및 프리젠테이션을 용이하게 하는 유연한 그리고 확장가능한 포맷으로 타임드 미디어 정보를 포함하도록 설계된다. 미디어의 프리젠테이션은 프리젠테이션을 포함하는 시스템에 대해 "로컬 (local)" 일 수도 있거나, 그 프리젠테이션은 네트워크 또는 다른 스트림 전달 메커니즘을 통한 것일 수도 있다.
ISOBMFF 명세에서 정의된 바와 같은 "프리젠테이션 (presentation)" 은, 종종, 비디오 캡처 디바이스에 의해 순차적으로 캡처된 것에 의해 관련된 또는 몇몇 다른 이유로 관련된, 화상들의 시퀀스이다. 여기서, 프리젠테이션은 또한 무비 또는 비디오 프리젠테이션으로서 지칭될 수도 있다. 프리젠테이션은 오디오를 포함할 수도 있다. 단일 프리젠테이션은 하나 이상의 파일들에 포함될 수도 있고, 하나의 파일은 전체 프리젠테이션을 위한 메타데이터를 포함한다. 메타데이터는 타이밍 및 프레이밍 데이터, 디스크립터들, 포인터들, 파라미터들, 및 프리젠테이션을 기술하는 다른 정보와 같은 정보를 포함한다. 메타데이터는 비디오 및/또는 오디오 그자체는 포함하지 않는다. 메타데이터를 포함하는 파일 이외의 파일들은 ISOBMFF 에 따라 포맷팅될 필요가 없고, 오직 이들 파일들이 메타데이터에 의해 참조될 수 있도록 포맷팅될 필요만 있다.
ISO 베이스 미디어 파일의 파일 구조는 객체 지향적이고, 그 파일에서의 개별 오브젝트의 구조는 오브젝트의 타입으로부터 직접 추론될 수 있다. ISO 베이스 미디어 파일에서의 오브젝트들은 ISOBMFF 명세에 의해 "박스들 (boxes)" 로서 지칭된다. ISO 베이스 미디어 파일은, 다른 박스들을 포함할 수 있는, 박스들의 시퀀스로서 구조화된다. 박스들은 일반적으로, 박스에 대한 사이즈 및 타입을 제공하는 헤더를 포함한다. 사이즈는 헤더, 필드들, 및 박스 내에 포함된 모든 박스들을 포함하는 박스의 전체 사이즈를 기술한다. 플레이어 디바이스에 의해 인식되지 않는 타입을 갖는 박스들은 통상적으로 무시되고 스킵된다.
도 7 의 예에서 예시된 바와 같이, 파일의 최상부 레벨에서, ISO 베이스 미디어 파일 (700) 은 파일 타입 박스 (710), 무비 박스 (720), 및 하나 이상의 무비 프래그먼트 박스들 (730a, 730b ... 730n) 을 포함할 수 있다. 이 레벨에 포함될 수 있지만 이 예에서 표현되지 않는 그 외의 박스들은, 다른 것들도 있지만, 프리 스페이스 박스들, 메타데이터 박스들 및 미디어 데이터 박스들 등을 포함한다.
ISO 베이스 미디어 파일은 박스 타입 "ftyp" 에 의해 식별된 파일 타입 박스 (710) 를 포함할 수 있다. 파일 타입 박스 (710) 는 파일을 파싱 (parsing) 하기에 가장 적합한 ISOBMFF 명세를 식별한다. 이 경우에서의 "가장 (most)" 은, ISO 베이스 미디어 파일 (700) 이 특정 ISOBMFF 명세에 따라 포맷팅되었을 수도 있지만, 명세의 다른 반복들과 호환될 가능성이 큼을 의미한다. 이 가장 적합한 명세는 주요 브랜드로서 지칭된다. 플레이어 디바이스는 디바이스가 파일의 콘텐츠들을 디코딩 및 디스플레이할 수 있는지 여부를 결정하기 위해 주요 브랜드를 사용할 수 있다. 파일 타입 박스 (710) 는 또한 버전 넘버를 포함할 수 있고, 이는 ISOBMFF 명세의 버전을 나타내기 위해 사용될 수 있다. 파일 타입 박스 (710) 는 또한 호환가능한 브랜드들의 리스트를 포함할 수 있고, 이는 파일이 호환가능한 다른 브랜드들의 리스트를 포함한다. ISO 베이스 미디어 파일은 하나보다 많은 주요 브랜드와 호환가능할 수 있다.
ISO 베이스 미디어 파일은 추가로, 프리젠테이션에 대한 메타데이터를 포함하는 무비 박스 (720) 를 포함할 수 있다. 무비 박스 (720) 는 박스 타입 "moov" 에 의해 식별된다. ISO/IEC 14496-12 는 프리젠테이션이, 하나의 파일 또는 다수의 파일들에 포함되든지 간에, 오직 하나의 무비 박스 (720) 를 포함할 수 있는 것을 규정한다. 빈번하게, 무비 박스 (720) 는 ISO 베이스 미디어 파일의 시작부 부근에 있다. 무비 박스 (720) 는 무비 헤더 박스 (722) 를 포함하고, 하나 이상의 트랙 박스들 (724) 뿐만 아니라 다른 박스들을 포함할 수 있다.
박스 타입 “mvhd" 에 의해 식별되는 무비 헤더 박스 (722) 는 미디어-독립적이고 전체적으로 프리젠테이션에 관련된 정보를 포함할 수 있다. 예를 들어, 무비 헤더 박스 (722) 는, 다른 것들도 있지만, 생성 시간, 수정 시간, 타임스케일, 및/또는 프리젠테이션을 위한 지속기간과 같은 정보를 포함할 수 있다. 무비 헤더 박스 (722) 는 또한, 프리젠테이션에서 다음 트랙을 식별하는 식별자를 포함할 수 있다. 예를 들어, 식별자는 예시된 예에서 무비 박스 (720) 에 의해 포함된 트랙 박스 (724) 에 포인팅할 수 있다.
박스 타입 "“trak” 에 의해 식별되는 트랙 박스 (724) 는 프리젠테이션을 위한 트랙에 대한 정보를 포함할 수 있다. 프리젠테이션은 하나 이상의 트랙들을 포함할 수 있고, 여기서, 각각의 트랙은 프리젠테이션에서 다른 트랙들에 독립적이다. 각 트랙은 트랙에서의 콘텐츠에 특정적인 시간 및 공간 정보를 포함할 수 있고, 각 트랙은 미디어 박스와 연관될 수 있다. 트랙에서의 데이터는 미디어 데이터일 수 있고, 이 경우에, 트랜은 미디어 트랙이고, 또는, 데이터는 스트리밍 프로토콜들을 위한 패킷화 정보일 수 있고, 이 경우에 트랙은 힌트 트랙이다. 미디어 데이터는 예를 들어 비디오 및 오디오 데이터를 포함한다. 도시된 예에서, 예시적인 트랙 박스 (724) 는 트랙 헤더 박스 (724a) 및 미디어 박스 (724b) 를 포함한다. 트랙 박스는 트랙 참조 박스, 트랙 그룹 박스, 에디트 박스, 사용자 데이터 박스, 메타 박스, 및 기타와 같은 다른 박스들을 포함할 수 있다. 이하에서 상세하게 논의되는 바와 같이, 미디어 박스 (724b) 는 하나 이상의 ROI 들의 시그널링 정보를 포함할 수도 있다.
박스 타입 "tkhd" 에 의해 식별되는 트랙 헤더 박스 (724a) 는 트랙 박스 (724) 에 포함된 트랙의 특성들을 명시할 수 있다. 예를 들어, 트랙 헤더 박스 (724a) 는, 다른 것들도 있지만, 생성 시간, 수정 시간, 지속기간, 트랙 식별자, 레이어 식별자, 그룹 식별자, 트랙의 볼륨, 폭, 및/또는 높이를 포함할 수 있다. 미디어 트랙에 대해, 트랙 헤더 박스 (724a) 는 추가적으로, 다른 것들도 있지만, 트랙이 인에이블되는지 여부, 트랙이 프리젠테이션의 일부로서 플레이되어야 하는지 여부, 또는 트랙이 프리젠테이션을 프리뷰하기 위해 사용될 수 있는지 여부를 식별할 수 있다. 트랙의 프리젠테이션은 일반적으로 프리젠테이션의 시작부에 있는 것으로 가정된다. 트랙 박스 (724) 는 명시적 타임라인 맵을 포함할 수 있는, 여기서 나타내지 않은, 에디트 리스트 박스를 포함할 수 있다. 타임라인은, 다른 것들도 있지만, 트랙에 대한 오프셋 타임을 명시할 수 있고, 여기서, 오프셋은 트랙에 대한, 프리젠테이션의 개시 후의, 시작 시간을 나타낸다.
나타낸 예에서, 트랙 박스 (724) 는 또한, 박스 타입 "mdia" 에 의해 식별된 미디어 박스 (724b) 를 포함한다. 미디어 박스 (724b) 는 트랙 내에서 미디어 데이터에 관한 정보 및 오브젝트들을 포함할 수 있다. 예를 들어, 미디어 박스 (724b) 는 핸들러 참조 박스를 포함할 수 있고, 이 핸들러 참조 박스는 트랙의 미디어 타입, 및 트랙에서의 미디어가 프리젠팅되는 프로세스를 식별할 수 있다. 다른 예로서, 미디어 박스 (724b) 는 트랙에서의 미디어의 특성들을 명시할 수 있는 미디어 정보 박스를 포함할 수 있다. 미디어 정보 박스는 샘플들의 테이블을 추가로 포함할 수 있고, 여기서, 각 샘플은 예를 들어 그 샘플에 대한 데이터의 로케이션을 포함하는 미디어 데이터 (예컨대, 비디오 또는 오디오 데이터) 의 청크 (chunk) 를 기술한다. 샘플에 대한 데이터는 이하에서 추가로 논의되는 미디어 데이터 박스에 저장된다. 대부분의 다른 박스들과 같이, 미디어 박스 (724b) 는 미디어 헤더 박스를 또한 포함할 수 있다.
도시된 예에서, 예시적인 ISO 베이스 미디어 파일 (700) 은 또한 프리젠테이션의 다수의 프래그먼트들 (730a, 730b, ...730n) 을 포함한다. 프래그먼트들 (730a, 730b, ...730n) 은 ISOBMFF 박스들이 아니고, 그보다는, 무비 프래그먼트 박스 (732) 및 그 무비 프래그먼트 박스 (732) 에 의해 참조되는 하나 이상의 미디어 데이터 박스들 (738) 을 포함하는 박스들의 조합을 기술한다. 무비 프래그먼트 박스 (732) 및 미디어 데이터 박스들 (738) 은 최상위-레벨 박스들이지만, 여기서 무비 프래그먼트 박스 (732) 와 미디어 데이터 박스 (738) 사이의 관계를 나타내기 위해 그룹핑된다.
박스 타입 "mfhd" 에 의해 식별되는 무비 프래그먼트 박스 (732) 는 시퀀스 넘버를 포함할 수 있다. 플레이어 디바이스는 프래그먼트 (730a) 가 프리젠테이션을 위한 데이터의 다음 피스 (piece) 를 포함하는 것을 확인하기 위해 시퀀스 넘버를 사용할 수 있다. 일부 경우들에서, 프리젠테이션을 위한 파일 또는 파일들의 콘텐츠들은 순서 외로 플레이어 디바이스에 제공될 수 있다. 예를 들어, 네트워크 패킷들은 패킷들이 원래 송신되었던 순서와는 다른 순서로 빈번하게 도달할 수 있다. 이들 경우들에서, 시퀀스 넘버는 프래그먼트들에 대한 정확한 순서를 결정함에 있어서 플레이어 디바이스를 도울 수 있다.
무비 프래그먼트 박스 (732) 는 또한, 박스 타입 "traf" 에 의해 식별되는 하나 이상의 트랙 프래그먼트 박스들 (736) 을 포함할 수 있다. 무비 프래그먼트 박스 (732) 는 트랙 당 제로 또는 그보다 많은 트랙 프래그먼트들의 셋트를 포함할 수 있다. 트랙 프래그먼트들은, 제로 또는 그보다 많은 트랙 런들 (runs) 을 포함할 수 있고, 이 트랙 런들의 각각은 트랙에 대한 샘플들의 인접한 런을 기술한다. 트랙 프래그먼트들은 트랙에 샘플들을 부가하는 것에 추가하여 트랙에 엠프티 타임 (empty time) 을 부가하기 위해 사용될 수 있다.
박스 타입 "mdat" 에 의해 식별되는 미디어 데이터 박스 (738) 는 미디어 데이터를 포함한다. 비디오 트랙들에서, 미디어 데이터 박스 (738) 는 비디오 프레임들을 포함할 것이다. 미디어 데이터 박스는 대안적으로 또는 추가적으로 오디오 데이터를 포함할 수 있다. 프리젠테이션은 하나 이상의 개별 파일들에 포함된 하나 이상의 미디어 데이터 박스들을 포함할 수 있다. 미디어 데이터는 메타데이터에 의해 기술된다. 도시된 예에서, 미디어 데이터 박스 (738) 에서의 미디어 데이터는 트랙 프래그먼트 박스 (736) 에 포함된 메타데이터에 의해 기술될 수 있다. 다른 예들에서, 미디어 데이터 박스에서의 미디어 데이터는 무비 박스 (720) 에서의 메타데이터에 의해 기술될 수 있다. 메타데이터는 파일 (700) 내의 절대 오프셋에 의한 특정 미디어 데이터를 가리킬 수 있어서, 미디어 데이터 박스 (738) 내의 미디어 데이터 헤더 및/또는 자유 공간은 스킵될 수 있다.
ISO 베이스 미디어 파일 (700) 에서의 다른 프래그먼트들 (730b, 730c, 730n) 은 제 1 프래그먼트 (730a) 에 대해 예시된 것들과 유사한 박스들을 포함할 수 있고, 및/또는, 다른 박스들을 포함할 수 있다.
도 8 은 ISO 베이스 미디어 파일에 포함될 수 있는 미디어 박스 (840) 의 일 예를 나타낸다. 상기 논의된 바와 같이, 미디어 박스는 트랙 박스에 포함될 수 있고, 트랙에서의 미디어 데이터를 기술하는 정보 및 오브젝트들을 포함할 수 있다. 도시된 예에서, 미디어 박스 (840) 는 미디어 정보 박스 (842) 를 포함한다. 미디어 박스 (840) 는 또한, 본 명세서에서 예시되지 않은 다른 박스들을 포함할 수 있다.
미디어 정보 박스 (842) 는 트랙에서의 미디어에 관한 특성 정보를 기술하는 오브젝트들을 포함할 수도 있다. 예를 들어, 미디어 정보 박스 (842) 는 트랙에서의 미디어 정보의 로케이션을 기술하는 데이터 정보 박스를 포함할 수 있다. 다른 예로서, 미디어 정보 박스 (842) 는 트랙이 비디오 데이터를 포함할 때 비디오 미디어 헤더를 포함할 수 있다. 비디어 미디어 헤더는 비디오 미디어의 코딩과 독립적인 일반적인 프리젠테이션 정보를 포함할 수 있다. 미디어 정보 박스 (842) 는 트랙이 오디오 데이터를 포함할 때 오디오 미디어 헤더를 또한 포함할 수 있다.
미디어 정보 박스 (842) 는 또한, 도시된 예에서 제공된 바와 같이 샘플 테이블 박스 (844) 를 포함할 수 있다. 박스 타입 "stbl" 에 의해 식별되는 샘플 테이블 박스 (844) 는 트랙에서의 미디어 샘플들에 대한 로케이션들 (예컨대, 파일과의 로케이션들), 및 샘플들에 대한 시간 정보를 제공할 수 있다. 샘플 테이블 박스 (844) 에 의해 제공된 정보를 이용하여, 플레이어 디바이스는, 다른 것들도 있지만, 샘플들을 정확한 시간 순서로 로케이팅시키고, 샘플의 타입을 결정하며, 및/또는, 컨테이너 내의 샘플의 사이즈, 컨테이너, 및 오프셋을 결정할 수 있다.
샘플 테이블 박스 (844) 는 박스 타입 "stsd" 에 의해 식별되는 샘플 디스크립션 박스 (846) 를 포함할 수 있다. 샘플 디스크립션 박스 (846) 는 예를 들어 샘플에 대해 사용되는 코딩 타입에 관한 상세한 정보, 및 그 코딩 타입에 대해 필요한 임의의 초기화 정보를 제공할 수 있다. 샘플 디스크립션 박스에 저장된 정보는 샘플들을 포함하는 트랙의 타입에 대해 특정적일 수 있다. 예를 들어, 트랙이 비디오 트랙일 때 샘플 디스크립션을 위해 하나의 포맷이 사용될 수도 있고, 트랙이 힌트 트랙일 때 다른 포맷이 사용될 수도 있다. 추가적인 예로서, 샘플 디스크립션에 대한 포맷은 또한 힌트 트랙의 포맷에 의존하여 변화할 수도 있다.
샘플 디스크립션 박스 (846) 는 샘플 엔트리 박스들 (848a ...848n) 을 포함할 수 있다. 샘플 엔트리는 추상적 클래스이고, 따라서 통상적으로, 샘플 디스크립션 박스는, 다른 예들도 있지만, 비디오 데이터에 대한 시각적 샘플 엔트리 또는 오디오 샘플들에 대한 오디오 샘플 엔트리와 같은 특정 샘플 엔트리 박스를 포함한다. 비디오 데이터에 대한 각각의 시각적 샘플 엔트리는 하나 이상의 비디오 프레임들을 포함할 수도 있다. 비디오 프레임들은 예를 들어 구면 표현 (410) 으로부터 생성된 2-차원 비디오 프레임들 (602a, 602b 내지 602n) 일 수 있다. 샘플 엔트리 박스는 특정 샘플에 대한 파라미터들을 저장할 수 있다. 예를 들어, 비디오 샘플에 대해, 샘플 엔트리 박스는, 다른 것들도 있지만, 비디오 샘플에 대한 폭, 높이, 수평 해상도, 수직 해상도, 프레임 카운트, 및/또는 심도를 포함할 수 있다. 다른 예로서, 오디오 샘플에 대해, 샘플 엔트리는, 다른 것들도 있지만, 채널 카운트, 채널 레이아웃, 및/또는 샘플 레이트를 포함할 수 있다.
샘플 엔트리 박스들에 추가하여, 샘플 디스크립션 (846) 은 샘플 그룹 디스크립션 박스 (860) (샘플 그룹 디스크립션 박스 타입 "sgpd"에 의해 식별됨) 그리고 샘플 대 그룹 박스 (862) ("sbgp" 에 의해 식별됨) 를 더 포함할 수도 있다. 양 샘플 그룹 디스크립션 박스 (860) 및 샘플 대 그룹 박스 (862) 는, 샘플 엔트리드의 셋트가 하나 이상의 ROI 들을 포함하는 것을 시그널링하기 위해, 그리고, 샘플 엔트리드의 셋트에서의 하나 이상의 ROI 들의 로케이션들 및 치수들을 시그널링하기 위해, 샘플 그룹핑 메커니즘의 일부일 수 있다. 도 8 의 예에서, 샘플 그룹 디스크립션 박스 (860) 는 샘플 그룹 타입 엔트리 (861) 를 포함할 수도 있다. 샘플 그룹 타입 엔트리 (861) 는 타입 엔트리가 ROI 정보를 포함하는 것을 시그널링하기 위해서 그룹 타입 "ROI" 를 포함할 수도 있다. 샘플 그룹 타입 엔트리 (861) 는 2-차원 비디오 프레임에서의 ROI 의 픽셀 좌표들 뿐만 아니라, 구형 고안에서의 ROI 의 요 각도, 피치 각도, 요 델타 각도, 및 피치 델타 각도를 나타내는 신택스 엘리먼트들을 추가로 포함할 수도 있다. 샘플 대 그룹 박스 (862) 는 추가적으로, 샘플 그룹 타입 엔트리 (861) 에서의 ROI 정보가 샘플 디스크립션 (846) 에서의 특정 샘플 엔트리들에 적용되어야 하는 것을 나타낸다. 이 정보로, ROI 를 포함하는 비디오 샘플들은 보다 효율적으로 식별되고 렌더링을 위해 렌더러에 제공될 수 있다.
일부 비디오 시스템들은, 미디어의 로컬 재생에 추가하여, 네트워크를 통한 미디어 데이터 스트리밍을 지원한다. 예를 들어, 하나 이상의 ISO 베이스 미디어 파일 포맷 파일들 (예컨대, ISOBMFF). 미디어 파일은 무비 프리젠테이션을 포함할 수 있고, 힌트 트랙들을 포함할 수 있으며, 이 힌트 트랙들은 패킷들로서 파일 또는 파일들을 형성 및 송신함에 있어서 스트리밍 서버를 보조할 수 있는 명령들을 포함한다. 이들 명령들은, 예를 들어, 서버가 전송할 데이터 (예컨대, 헤더 정보) 또는 미디어 데이터의 세그먼트들에 대한 레퍼런스들을 포함할 수 있다. 파일은 상이한 스트리밍 프로토콜들에 대해 별개의 힌트 트랙들을 포함할 수 있다. 힌트 트랙들은 또한, 파일을 재포맷팅할 필요 없이 파일에 부가될 수 있다.
이제 도 9 를 참조하며, 이는 스트리밍을 위한 예시적인 시스템 (900) 을 나타낸다. 시스템 (900) 은 네트워킹 프로토콜에 기초하여 네트워크 (906) 를 통해 서로 통신가능하게 커플링된 서버 (902) 및 클라이언트 디바이스 (904) 를 포함한다. 예를 들어, 서버 (902) 는 종래의 HTTP 웹 서버를 포함할 수 있고, 클라이언트 디바이스 (904)는 종래의 HTTP 클라이언트를 포함할 수 있다. HTTP 통신 채널이 확립될 수 있고, 여기서, 클라이언트 디바이스 (904) 는 하나 이상의 네트워크 리소스들을 요청하기 위한 HTTP 요청을 서버 (902) 로 송신할 수 있다. 서버 (902) 는, 요청된 네트워크 리소스(들)를 포함하는 HTTP 응답을 클라이언트 디바이스 (904) 로 다시 역으로 송신할 수 있다. 서버 (902) 에 의해 호스팅되는 네트워크 리소스의 하나의 예는 미디어 세그먼트들로 분할될 수 있는 미디어 콘텐츠일 수 있다. 미디어 세그먼트는 비디오 프레임들의 시퀀스를 포함할 수 있다. 클라이언트 디바이스 (904) 는 네트워크 (906) 를 통해 서버 (902) 와 스트리밍 세션을 확립하기 위해 스트리밍 애플리케이션 (908) 을 포함할 수도 있다. 스트리밍 세션 동안, 스트리밍 애플리케이션 (908) 은 하나 이상의 미디어 세그먼트들에 대한 요청을 네트워크 (906) 를 통해 서버 (902) 의 요청 프로세서 (910) 에 송신할 수 있다. 스트리밍 애플리케이션 (908) 은 요청된 하나 이상의 미디어 세그먼트들을 수신할 수 있고, 다른 미디어 세그먼트들에 대한 후속 요청을 송신하기 전에 클라이언트 디바이스 (904) 상에 수신된 미디어 세그먼트들의 일부 또는 전부를 렌더링할 수 있다. 이러한 HTTP 스트리밍을 사용하여, 스트리밍 애플리케이션 (908) 은 클라이언트 디바이스 (904) 에서 미디어 콘텐츠를 렌더링하기 전에 전체 미디어 콘텐츠가 완전히 다운로딩될 때까지 기다릴 필요가 없어, 네트워크 리소스들의 이용을 더 용이하게 하고 사용자 경험을 향상시킬 수 있다.
종래의 HTTP 웹 서버를 사용하여 고품질의 미디어 콘텐츠 스트리밍을 가능하게 하기 위해 적응형 비트레이트 스트리밍이 사용될 수 있다. 적응형 비트레이트 스트리밍으로, 각각의 미디어 세그먼트에 대해, 클라이언트 디바이스 (904) 는 대안적인 세그먼트 파일들 (920 및 940) 의 셋트에 관한 정보를 제공받을 수 있다. 여기서, 미디어 세그먼트는 특정 플레잉 타임스탬프 및 지속기간과 연관된 미디어 비트스트림의 부분을 참조할 수도있다. 대안적인 세그먼트 파일들 (920 및 940) 의 각각의 셋트는 (예를 들어, 특정 플레잉 타임스탬프 및 지속기간과 연관된) 미디어 세그먼트의 특정 표현에 대응할 수 있다. 표현은, 상이한 품질들을 갖는 (예컨대, 상이한 비트레이트, 프레임 레이트 등을 갖는) 특정 미디어 콘텐츠를 인코딩하는 특정 결과를 참조할 수도 있다. 미디어 세그먼트 파일들의 각각의 셋트 중에서, 각각의 미디어 세그먼트 파일은 예를 들어, 특정 비트레이트, 프레임 레이트, 해상도, 오디오 언어 등을 포함하는 특성들의 셋트와 연관될 수 있다. 로컬 정보 (예를 들어, 네트워크 (906) 의 대역폭, 클라이언트 디바이스 (904) 의 디코딩/디스플레이 능력들, 사용자 선호도, 또는 다른 정보) 에 기초하여, 스트리밍 애플리케이션 (908) 은 각각의 표현에 대해 셋트로부터 특정 미디어 세그먼트 파일을 선택할 수 있다. 예시적인 예로서, 클라이언트 디바이스 (904) 는 미디어 세그먼트 파일들 (920) 로부터 제 1 해상도와 연관된 미디어 세그먼트 파일에 대한 요청을 송신할 수 있다. 후속하여, 네트워크 (906)의 대역폭의 변화로 인해, 클라이언트 디바이스 (904) 는 제 2 해상도와 연관된 미디어 세그먼트 파일에 대한 다른 요청을 송신할 수 있다.
대안적인 세그먼트 파일들 (920 및 940) 의 셋트에 관한 정보는 서버 (902) 에 의해 유지되는 디스크립션 파일 (960) (또는 매니페스트 파일) 의 일부일 수 있다. 클라이언트 디바이스 (904) 는 서버 (902) 로부터 디스크립션 파일 (960) 을 획득할 수 있고, 디스크립션 파일 (960) 에 기초하여 미디어 세그먼트 파일에 대한 요청을 송신할 수 있다. 디스크립션 파일 (960) 은 예를 들어 미디어 콘텐츠의 각각의 표현에 대한 대안의 미디어 세그먼트 파일들의 셋트의 리스트, 및, 각각의 대안의 미디어 세그먼트 파일과 연관된 특성들 (예를 들어, 비트레이트, 프레임 레이트, 해상도, 오디오 언어 등) 을 포함할 수 있다. 디스크립션 파일 (960) 은 또한 대안의 미디어 세그먼트 파일들의 저장 로케이션들과 연관된 로케이션 식별자들 (예를 들어, URL (Uniform Resource Locator), URI (Uniform Resource Indicator) 등) 을 포함할 수 있다.
적응형 비트레이트 스트리밍을 위해 다양한 프로토콜들이 존재한다. 한 가지 예는 HTTP (HyperText Transfer Protocol) 또는 DASH (ISO/IEC 23009-1 : 2014 에서 정의됨) 를 통한 동적 적응형 스트리밍이다. DASH 는 MPEG-DASH 로서도 알려져 있다. DASH 하에서, 디스크립션 파일 (960) 은 미디어 프리젠테이션 디스크립션 (MPD) 을 포함할 수 있다. 도 10 은 MPD (1001) 의 일 예를 예시한 다이어그램이다. 일부 경우들에서, MPD (1001) 는 XML (Extensible Markup Language) 로 표현될 수 있다. MPD (1001) 는 적응 셋트 (1002) 를 정의하는 엘리먼트들의 셋트를 포함할 수 있다. 적응 셋트 (1002) 는 대안적인 표현들 (1003 및 1004) 의 셋트를 포함할 수 있다. 당업자는, 적응 셋트 (1002) 가 표현들 (1003 및 1004) 에 추가하여 추가적인 표현들을 포함할 수 있음을 이해할 것이다. 각각의 대안적인 표현 (1003 및 1004) 은 특정 비트레이트, 해상도, 또는 다른 품질과 연관될 수 있고, 미디어 세그먼트들의 셋트를 포함할 수 있다. 예를 들어, 표현 (1003) 은 미디어 세그먼트들 (1007 및 1009) 을, 또한 헤더 정보 (1005) 를 포함한다. 표현 (1004) 은 미디어 세그먼트들 (1008 및 1010) 을, 또한 헤더 정보 (1006) 를 포함한다. 헤더 정보 (1005 및 1006) 는 예를 들어 "표현 (Representation)" 엘리먼트 (예컨대, 식별자, 대역폭, 폭 및 높이 속성들 등을 포함) 를 포함할 수도 있다. 미디어 세그먼트들 (1007 및 1009) 의 각각은, 엘리먼트 "SegmentURL" 로서 표시될 수 있는, 미디어 세그먼트 파일의 URL 과 MPD (1001) 에서 연관될 수도 있다. MPD (1001) 에서의 엘리먼트들의 셋트의 각각은, 예를 들어, 적응 셋트 (1002), 표현들 (1003 및/또는 1004), 또는 다른 정보의 특성들을 정의하는 속성들의 셋트와 연관될 수도 있다.
하기는 MPD 의 일부의 예이다:
<AdaptationSet mimeType="video/mp2t">
<Representation id="720p" bandwidth="3200000" width="1280" height="720">
...
<SegmentURL media="segment-1.DASH"/>
<SegmentURL media="segment-2.DASH"/>
...
상기 나타낸 예시적인 MPD 에서 "Period", "AdaptationSet", "Representation", "SegmentURL" 등과 같은 텍스트들은 엘리먼트들인 반면, "mimeType", "id", "bandwidth" "width"와 "height", "media” 등은 속성들이다. 이 예에서, 적응 셋트는 특정 대역폭 및 프레임 사이즈와 연관된 하나의 표현을 포함하고, 그것들의 URL 들에 의해 표현되는 미디어 세그먼트들의 셋트를 포함한다.
MPD 파일은 ROI 에 대한 시그널링 정보를 포함할 수도 있다. MPD (1100) 의 일 예를 나타내는 XML 코드 표현을 예시하는 도 11 에 대한 참조가 이제 이루어진다. MPD (1100) 는 적어도 하나의 적응 셋트의 리스팅을 포함할 수도 있다. MPD (1100) 에서, 적응 셋트는 상이한 비트레이트들, 해상도들, 또는 다른 품질들과 연관된 다수의 대안적인 표현들을 정의하기 위한 엘리먼트들을 포함할 수도 있다. 각각의 표현은 화상 파일과 연관될 수도 있고, MPD (1100) 는 표현 엘리먼트들의 각각에 대해 화상 파일을 로케이팅하기 위한 링크 (예컨대, URL (universal resource locator), URI (universal resource indicator), 또는 임의의 다른 적합한 정보) 를 포함할 수도 있다. 표현과 연관된 화상 파일이 ROI 를 포함하는 경우에, 표현 엘리먼트들은 추가로, 그 ROI 와 연관된 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함할 수도 있다.
나타낸 바와 같이, 적응 셋트는 1 과 동일한 표현 ID 를 갖는 표현 및 2 와 동일한 표현 ID 를 갖는 표현을 포함하는 다수의 표현들을 포함하도록 정의된다. MPD (1100) 는, 2 의 표현 ID 를 갖는 표현이, 다른 특성들도 있지만, 3840 픽셀들의 폭, 1920 픽셀들의 높이, 60 의 프레임 레이트를 갖는 것을 나타낸다. MPD (1100) 는 추가적으로, 표현에 대한 비디오 파일 “video1.mp4” 에 대한 URL 을 포함한다. EssentialProperty 엘리먼트 (1102) 는 2 의 표현 ID 를 갖는 표현에 대해 제공된다. EssentialProperty 엘리먼트 (1102) 는 투영 타입들, FOV 방향들, 영역별 맵핑, 및/또는 다른 정보에 관한 정보를 기술할 수 있다. 예를 들어, 이 정보는 EssentialProperty 를 사용하여 MPD (1100) 에 포함될 수 있고, 이 경우에, 각각의 정보 타입에 대해 상이한 schemeIdUri 가 정의될 수 있다. 하나의 예시적인 예에서, schemeIdUri “urn:mpeg:dash:360VideoProjection:2017” 가 투영 타입과 연관되고 “CMP” 가 큐브맵 투영을 의미하는 경우에, EssentialProperty 엘리먼트에서의 큐브맵 투영 타입에 관한 정보를 다음과 같이 정의할 수 있다: <EssentialProperty schemeIdUri=“urn:mpeg:dash:360VideoProjection:2017” value=”CMP”/>.
더욱이, SupplementalProperty 엘리먼트 (1104) 는 ROI 의 시그널링 정보를 포함할 수도 있다. 예를 들어, schemeIdUri “urn:mpeg:dash:ROIpixelrep:2017” 는 2-차원 프레임에서의 ROI 의 치수 및 센터 로케이션을 시그널링하기 위한 값들의 셋트와 연관될 수도 있다. 로케이션 및 치수는 픽셀 좌표들로 표현될 수 있다. 도 11 의 예에서, ROI 의 센터 로케이션은 (1300, 500) 일 수 있고, 이는, 센터 로케이션의 좌측 오프셋이 1300 픽셀들이고, 센터 로케이션의 최상부 오프셋이 500 픽셀들인 것을 나타낸다. 더욱이, ROI 는 100 픽셀들의 폭 및 200 픽셀들의 높이에 확장된다. 비록 도 11 의 예에서는 로케이션 및 치수가 픽셀 좌표들로 표현되지만, 로케이션 및 치수는 타일들과 같은 다른 형태들로 표현될 수 있음이 이해된다. 예를 들어, 로케이션 및 치수는, ROI 를 포함하는 타일들, 또는 ROI 를 포함하는 타일들의 그룹과 연관된 그룹 식별자를 리스팅함으로써 시그널링될 수 있다.
추가로, schemeIdUri “urn:mpeg:dash:ROIsphererep:2017” 는 구형 공간에서의 ROI 의 치수 및 센터 로케이션을 시그널링하기 위한 값들의 셋트와 연관될 수도 있다. 도 11 의 예에서, ROI 의 요 각도는 20 라디안일 수 있고, ROI 의 피치 각도는 30 라디안일 수 있으며, ROI 의 피치 델타 각도는 10 라디안일 수 있는 반면에, ROI 의 요 델타 각도는 10 라디안일 수 있다.
MPD (1100) 로, 시스템은 비디오 파일 “video1.mp4” 을 페치할 수 있고, ROI 가 비디오 파일에 포함된다는 표시에 기초하여 파일을 디코딩할 수 있다. 시스템은 또한, 시그널링 정보에 따라 디코딩된 파일로부터 픽셀들을 추출하고, 추출된 픽셀들을 렌더링을 위해 렌더러에 제공할 수 있다.
도 12 는 미디어 파일을 생성하기 위한 프로세스 (1200) 의 일 예를 나타내는 플로우차트이다. 이 프로세스는, 예를 들어, 인코딩된 데이터를 ISO 베이스 미디어 파일 (예를 들어, ISOBMFF 파일) 에서 캡슐화하는, 스트리밍 서버 (예를 들어,도 9 의 서버 (902)), 호스팅 서버와 수신기 디바이스 사이의 중간 네트워크 디바이스 등에 의해 수행될 수 있다.
1202 에서, 프로세스 (1200) 는 장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하는 것을 포함한다. 360-도 비디오 데이터는 카메라 셋트 (예컨대, 전방향성 카메라들) 에 의해 생성될 수 있다. 구면 표현은, 예를 들어, 특정 시점에서 카메라 셋트에 의해 캡처된 이미지들의 셋트를 스티칭함으로써 형성될 수 있다.
1204 에서, 프로세스 (1200) 는 장면의 구면 표현에서 관심 영역 (ROI) 을 결정하는 것을 포함한다. 그 결정은, 예를 들어, (예컨대, 감독의 컷의 일부로서) 사용자에게 장면의 특정 부분을 출력하도록 하는 명령, 사용자의 보는 방향에, 또는 다른 적합한 정보에 기초할 수 있다. 일부 예들에서, ROI 는 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의될 수 있고, 여기서, 4 개의 평면들의 각각은 또한 구면 센터와 교차하여 대원을 형성한다. 예를 들어, 도 5a 를 다시 참조하면, ROI 는 4 개의 대원들 (502, 504, 506, 및 508) 에 의해 정의될 수 있다.
1206 에서, 프로세스 (1200) 는, ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 것을 포함하고, 제 1 시그널링 정보는 구면 표현과 연관된 구면 공간에서 측정된 뷰포트 영역의 치수 및 센터 포지션을 포함하고, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 영역을 나타낸다. 화상은 상기 ROI 를 포함하는 구면 표현을 직선형 투영을 이용하여 평면 상으로 투영함으로써 형성될 수 있고, 비디오 프레임일 수 있다. 뷰포트는 디스플레이에서 렌더링되게 된다. 일부 예들에서, 제 1 시그널링 정보 및 제 2 시그널링 정보는 또한, 다수의 ROI 들에 대응하는 다수의 뷰포트 영역들을 정의할 수도 있고, 다수의 뷰포트 영역들의 하나는 디스플레이에서의 렌더링을 위해 선택될 수 있다.
일부 예들에서, 미디어 파일은 ISO (International Standards Organization) 베이스 미디어 파일 포맷 (ISOBMFF) 에 기초한다. 일부 예들에서, 미디어 파일은 구면형 비디오 장면에 대응하는 비디오 샘플을 포함하는 샘플 그룹을 식별할 수도 있고; 그리고, 제 1 시그널링 정보 및 제 2 시그널링 정보는 샘플 그룹의 하나 이상의 신택스 엘리먼트들에 포함된다.
일부 예들에서, 미디어 파일은, 미디어 프리젠테이션 디스크립션 (MPD) 포맷에 기초하고, 하나 이상의 적응 셋트들의 리스트를 포함한다. 하나 이상의 적응 셋트들의 각각은 하나 이상의 표현들을 포함할 수도 있다. 제 1 시그널링 정보, 제 2 시그널링 정보, 및 화상에 대한 링크는 하나 이상의 표현들에 포함된 ROI 와 연관된 하나 이상의 엘리먼트들에 포함된다. 일부 예들에서, 하나 이상의 표현들은 타일-기반 표현들이고, 제 2 시그널링 정보는 하나 이상의 -기반 표현들에 포함된 ROI 를 포함하는 타일들과 연관된 식별자들을 포함한다.
일부 예들에서, 제 1 시그널링 정보는 장면의 구면 표현의 구면 센터에 대한 뷰포트 영역의 센터의 제 1 각도 및 제 2 각도를 포함할 수 있고, 제 1 각도는 제 1 평면 상에 형성되고, 제 2 각도는 제 2 평면 상에 형성되며, 제 1 평면은 제 2 평면에 대해 수직이다. 제 1 시그널링 정보는, 뷰포트 영역의 폭과 연관된 제 3 각도 및 뷰포트 영역의 높이와 연관된 제 4 각도를 더 포함할 수도 있다. 제 3 각도는 뷰포트 영역의 제 1 에지와 제 2 에지 사이에 형성될 수도 있고; 제 4 각도는 뷰포트 영역의 제 3 에지와 제 4 에지 사이에 형성된다. 예를 들어, 제 1 각도는 요 각도일 수 있고, 제 2 각도는 피치 각도일 수 있는 반면, 제 3 각도 및 제 4 각도는, 각각, 도 4c, 도 4d, 및 도 4e 에서 기술된 바와 같이 요 델타 각도 및 피치 델타 각도일 수 있다.
일부 예들에서, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 하나 이상의 타일들을 정의할 수도 있다. 하나 이상의 타일들은 화상에 포함된 복수의 타일들의 일부일 수도 있다. 일부 예들에서, 제 2 시그널링 정보는, 화상에서의 하나 이상의 타일들과 연관된 하나 이상의 좌표들을 더 포함할 수도 있다. 일부 예들에서, 하나 이상의 타일들은 타일 그룹을 형성하고, 제 2 시그널링 정보는 타일 그룹과 연관된 그룹 식별자를 포함할 수도 있다. 그들 타일들은, 예를 들어, 모션-제약된 타일들일 수도 있다.
일부 예들에서, 제 2 시그널링 정보는 ROI 를 평면 상에 투영함으로써 형성된 뷰포트 영역 내의 미리결정된 로케이션, 뷰포트 영역의 폭, 및 뷰포트 영역의 높이와 연관된 픽셀 좌표들을 포함할 수도 있다.
1208 에서, 프로세스 (1200) 는, 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 상기 ROI 를 포함하는 상기 360-도 비디오 데이터의 부분의 송신을 위해 미디어 파일을 제공하는 것을 더 포함한다. 렌더링은, 예를 들어, 제 2 시그널링 정보에 기초하여 화상으로부터 타일들의 셋트를 획드하는 것, 제 1 시그널링 정보에 기초하여 타일들의 셋트 내에서 뷰포트의 로케이션 및 경계를 결정하는 것, 및 뷰포트를 렌더링하기 위해 결정된 로케이션 및 경계에 기초하여 뷰포트에 대응하는 픽셀들을 추출하는 것을 포함할 수도 있다. 경계는 또한, 뷰포트의 미리결정된 형상에 기초하여 결정될 수 있다. 뷰포트의 형상은, 예를 들어, ROI 가 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의된다는 결정에 기초하여 미리결정될 수 있고, 여기서, 4 개의 평면들의 각각은 구면 표현의 구면 센터와 또한 교차하며, 각각 대원을 형성한다. 예를 들어, 상기 논의된 바와 같이, ROI 는 4 개의 대원들 (502, 504, 506, 및 508) 에 의해 정의될 수 있고, 뷰포트는 도 5c 의 뷰포트 (520) 와 동일 형상의 것일 수 있다. 더욱이, 360-도 비디오 데이터의 부분의 송신은, 예를 들어, ROI 를 포함하는 화상에서의 타일들의 셋트를 결정하는 것, 및, ROI 의 렌더링을 위해 렌더러에 타일들의 셋트에 대응하는 비디오 데이터를 송신하는 것을 포함할 수도 있다.
도 13 은 미디어 파일을 프로세싱하기 위한 프로세스 (1300) 의 일 예를 나타내는 플로우차트이다. 프로세스는 예를 들어 호스팅 서버와 수신기 디바이스 사이의 중간 네트워크 디바이스, 수신기 디바이스 등에 의해 수행될 수 있다.
1302 에서, 프로세스 (1300) 는, 360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 것을 포함한다. 360-도 비디오 데이터는 카메라 셋트 (예컨대, 전방향성 카메라들) 에 의해 생성될 수도 있다. 구면 표현은, 예를 들어, 특정 시점에서 카메라 셋트에 의해 캡처된 이미지들의 셋트를 스티칭함으로써 형성될 수 있다. 미디어 파일은 구면 표현에서의 관심 영역 (ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함할 수도 있다.
일부 예들에서, ROI 는 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의될 수 있고; 여기서, 4 개의 평면들의 각각은 또한 구면 센터와 교차하여 대원을 형성한다. 예를 들어, 도 5a 를 다시 참조하면, ROI 는 4 개의 대원들 (502, 504, 506, 및 508) 에 의해 정의될 수 있다.
1304 에서, 프로세스 (1300) 는, 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 화상의 데이터로부터 뷰포트 영역에 대응하는 픽셀들을 추출하는 것을 포함한다.
일부 예들에서, 미디어 파일은 ISO (International Standards Organization) 베이스 미디어 파일 포맷 (ISOBMFF) 에 기초한다. 일부 예들에서, 미디어 파일은 구면형 비디오 장면에 대응하는 비디오 샘플을 포함하는 샘플 그룹을 식별할 수도 있고; 그리고, 제 1 시그널링 정보 및 제 2 시그널링 정보는 샘플 그룹의 하나 이상의 신택스 엘리먼트들에 포함된다.
일부 예들에서, 미디어 파일은, 미디어 프리젠테이션 디스크립션 (MPD) 포맷에 기초하고, 하나 이상의 적응 셋트들의 리스트를 포함한다. 하나 이상의 적응 셋트들의 각각은 하나 이상의 표현들을 포함할 수도 있다. 제 1 시그널링 정보, 제 2 시그널링 정보, 및 화상에 대한 링크는 하나 이상의 표현들에 포함된 ROI 와 연관된 하나 이상의 엘리먼트들에 포함된다. 일부 예들에서, 하나 이상의 표현들은 타일-기반 표현들이고, 제 2 시그널링 정보는 하나 이상의 -기반 표현들에 포함된 ROI 를 포함하는 타일들과 연관된 식별자들을 포함한다.
일부 예들에서, 제 1 시그널링 정보는 장면의 구면 표현의 구면 센터에 대한 뷰포트 영역의 센터의 제 1 각도 및 제 2 각도를 포함할 수 있고, 제 1 각도는 제 1 평면 상에 형성되고, 제 2 각도는 제 2 평면 상에 형성되며, 제 1 평면은 제 2 평면에 대해 수직이다. 제 1 시그널링 정보는, 뷰포트 영역의 폭과 연관된 제 3 각도 및 뷰포트 영역의 높이와 연관된 제 4 각도를 더 포함할 수도 있다. 제 3 각도는 뷰포트 영역의 제 1 에지와 제 2 에지 사이에 형성될 수도 있고; 제 4 각도는 뷰포트 영역의 제 3 에지와 제 4 에지 사이에 형성된다. 예를 들어, 제 1 각도는 요 각도일 수 있고, 제 2 각도는 피치 각도일 수 있는 반면, 제 3 각도 및 제 4 각도는, 각각, 도 4c, 도 4d, 및 도 4e 에서 기술된 바와 같이 요 델타 각도 및 피치 델타 각도일 수 있다.
일부 예들에서, 제 2 시그널링 정보는 뷰포트 영역을 포함하는 화상의 하나 이상의 타일들을 정의할 수도 있다. 하나 이상의 타일들은 화상에 포함된 복수의 타일들의 일부일 수도 있다. 일부 예들에서, 제 2 시그널링 정보는, 화상에서의 하나 이상의 타일들과 연관된 하나 이상의 좌표들을 더 포함할 수도 있다. 일부 예들에서, 하나 이상의 타일들은 타일 그룹을 형성하고, 제 2 시그널링 정보는 타일 그룹과 연관된 그룹 식별자를 포함할 수도 있다. 그들 타일들은, 예를 들어, 모션-제약된 타일들일 수도 있다.
일부 예들에서, 제 2 시그널링 정보는 ROI 를 평면 상에 투영함으로써 형성된 뷰포트 영역 내의 미리결정된 로케이션, 뷰포트 영역의 폭, 및 뷰포트 영역의 높이와 연관된 픽셀 좌표들을 포함할 수도 있다.
일부 예들에서, 픽셀들의 추출은 뷰포트 영역을 포함하는 화상에서의 타일들의 셋트를 식별하는 것, 및 타일들의 셋트로부터 픽셀들을 추출하는 것을 포함할 수도 있다. 픽셀들의 추출은, 타일들의 셋트에서의 뷰포트의 로케이션 및 경계를 결정하는 것을 더 포함할 수도 있다. 로케이션은, 뷰포트 영역의 센터 포지션을 나타내는 요 각도 및 피치 각도에 기초하여 결정될 수 있는 반면, 경계는 각각 요 델타 각도 및 피치 델타 각도에 의해 표시되는 폭 및 높이에 기초하여 결정될 수 있다. 경계는 또한, 뷰포트 영역의 미리결정된 형상에 기초하여 결정될 수 있다. 그 형상은, ROI 가 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의되는 것에 기초하여 결정될 수 있고, 여기서, 4 개의 평면들의 각각은 구면 표현의 구면 센터와 또한 교차하며, 대원을 형성한다. 예를 들어, 뷰포트의 형상은 도 5c 의 뷰포트 (520) 와 동일할 수도 있다. 픽셀들의 추출은 뷰포트 영역의 로케이션 및 경계에 기초할 수 있다.
1306 에서, 프로세스 (1300) 는, 추출된 픽셀들을 디스플레이에서 뷰포트 영역을 렌더링하도록 제공하는 것을 더 포함한다.
일부 예들에서, 프로세스들 (1200 및 1300) 은 도 1 에 도시된 시스템 (100) 과 같은 컴퓨팅 디바이스 또는 장치에 의해 수행될 수도 있다. 일부 예들에서, 프로세스들 (1200 및 1300) 은, 파일 생성 디바이스, 파일 파싱 또는 프로세싱 디바이스, 도 1 및 도 14 에서 도시된 인코딩 디바이스 (104) 에 의해, 다른 비디오 송신-측 디바이스 또는 비디오 송신 디바이스에 의해, 도 1 및 도 15 에 도시된 디코딩 디바이스 (112) 에 의해, 및/또는, 플레이어 디바이스, 디스플레이, 또는 임의의 다른 클라이언트-측 디바이스와 같은 다른 클라이언트-측 디바이스에 의해 수행될 수 있다. 하나의 예에서, 프로세스 (1200) 는 파일 생성 디바이스, 도 1 및 도 14 에서 도시된 인코딩 디바이스 (104) 에 의해, 및/또는, 다른 송신-측 디바이스 또는 비디오 송신 디바이스에 의해 수행될 수 있다. 다른 예에서, 프로세스 (1300) 는 파일 파싱 또는 프로세싱 디바이스, 도 1 및 도 15 에 도시된 디코딩 디바이스 (112) 에 의해, 및/또는, 플레이어 디바이스, 디스플레이, 또는 임의의 다른 클라이언트-측 디바이스에 의해 수행될 수 있다. 일부 경우들에서, 컴퓨팅 디바이스 또는 장치는 프로세스들 (1200 및 1300) 의 단계들을 수행하도록 구성되는 디바이스의 프로세서, 마이크로프로세서, 마이크로컴퓨터, 또는 다른 컴포넌트를 포함할 수도 있다. 일부 예에서, 컴퓨팅 디바이스 또는 장치는 비디오 프레임들을 포함하는 비디오 데이터 (예를 들어, 비디오 시퀀스) 를 캡처하도록 구성된 카메라를 포함할 수도 있다. 일부 예들에서, 비디오 데이터를 캡처하는 카메라 또는 다른 캡처 디바이스는 컴퓨팅 디바이스로부터 분리되어 있으며, 이 경우 컴퓨팅 디바이스는 캡처된 비디오 데이터를 수신 또는 획득한다. 컴퓨팅 디바이스는 비디오 데이터를 통신하도록 구성된 네트워크 인터페이스를 더 포함할 수도 있다. 네트워크 인터페이스는 인터넷 프로토콜 (IP) 기반 데이터 또는 다른 타입의 데이터를 통신하도록 구성될 수도 있다. 일부 예들에서, 컴퓨팅 디바이스 또는 장치는 비디오 비트스트림의 픽처들의 샘플들과 같은 출력 비디오 콘텐츠를 디스플레이하기 위한 디스플레이를 포함할 수도 있다.
프로세스들 (1200 및 1300) 은 논리 플로우 다이어그램들로서 예시되고, 그 동작은 하드웨어, 컴퓨터 명령들, 또는 이들의 조합으로 구현될 수 있는 동작들의 시퀀스를 표현한다. 컴퓨터 명령들의 맥락에서, 그 동작들은, 하나 이상의 프로세서들에 의해 실행될 때, 열거된 동작들을 수행하는 하나 이상의 컴퓨터 판독가능 저장 매체들 상에 저장된 컴퓨터 실행가능 명령들을 표현한다. 일반적으로, 컴퓨터 실행가능 명령들은 특정의 기능들을 수행하거나 또는 특정의 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 동작들이 설명되는 순서는 제한으로서 해석되도록 의도되지 않으며, 임의의 수의 설명된 동작들은 프로세스들을 구현하기 위해 임의의 순서로 및/또는 병렬로 결합될 수 있다.
추가적으로, 프로세스들 (1200 및 1300) 은 실행가능 명령들로 구성된 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있고, 집합적으로 하나 이상의 프로세서 상에서 실행하는 코드 (예를 들어, 실행가능 명령들, 하나 이상의 컴퓨터 프로그램들, 또는 하나 이상의 애플리케이션들) 로서, 하드웨어에 의해, 또는 이들의 조합으로 구현될 수도 있다. 상기 언급된 바와 같이, 코드는 컴퓨터 판독가능 또는 머신 판독가능 저장 매체 상에, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령들을 포함하는 컴퓨터 프로그램의 형태로 저장될 수도 있다. 컴퓨터 판독가능 또는 머신 판독가능 저장 매체는 비일시적일 수도 있다.
본 명세서에서 논의된 코딩 기법들은 일 예의 비디오 인코딩 및 디코딩 시스템 (예를 들어, 시스템 (100)) 에서 구현될 수도 있다. 일부 예들에서, 시스템은, 목적지 디바이스에 의해 나중에 디코딩될 인코딩된 비디오 데이터를 제공하는 소스 디바이스를 포함한다. 특히, 소스 디바이스는 비디오 데이터를, 컴퓨터 판독가능 매체를 통해 목적지 디바이스에 제공한다. 소스 디바이스 및 목적지 디바이스는, 데스크탑 컴퓨터들, 노트북 (즉, 랩탑) 컴퓨터들, 태블릿 컴퓨터들, 셋톱 박스들, 전화기 핸드셋 이를 테면 소위 "스마트" 폰들, 소위 "스마트" 패드들, 텔레비전들, 카메라들, 디스플레이 디바이스들, 디지털 미디어 플레이어들, 비디오 게이밍 콘솔들, 비디오 스트리밍 디바이스 등을 포함한, 광범위한 디바이스들 중 임의의 것을 포함할 수도 있다. 일부 경우들에서, 소스 디바이스 및 목적지 디바이스는 무선 통신을 위해 장비될 수도 있다.
목적지 디바이스는 디코딩될 인코딩된 비디오 데이터를 컴퓨터 판독가능 매체를 통해 수신할 수도 있다. 컴퓨터 판독가능 매체는 소스 디바이스로부터 목적지 디바이스로 인코딩된 비디오 데이터를 이동시킬 수 있는 임의의 유형의 매체 또는 디바이스를 포함할 수도 있다. 일 예에서, 컴퓨터 판독가능 매체는, 소스 디바이스로 하여금 실시간으로 직접 목적지 디바이스로 직접, 인코딩된 비디오 데이터를 송신할 수 있게 하기 위한 통신 매체를 포함할 수도 있다. 인코딩된 비디오 데이터는 무선 통신 프로토콜과 같은 통신 표준에 따라 변조되고, 목적지 디바이스로 송신될 수도 있다. 통신 매체는 무선 주파수 (RF) 스펙트럼 또는 하나 이상의 물리적 송신 라인들과 같은 임의의 무선 또는 유선 통신 매체를 포함할 수도 있다. 통신 매체는 로컬 영역 네트워크, 광역 네트워크, 또는 인터넷과 같은 글로벌 네트워크와 같은 패킷 기반 네트워크의 부분을 형성할 수도 있다. 통신 매체는 라우터들, 스위치들, 기지국들, 또는 소스 디바이스로부터 목적지 디바이스로의 통신을 용이하게 하는데 유용할 수도 있는 임의의 다른 장비를 포함할 수도 있다.
일부 예들에서, 인코딩된 데이터는 출력 인터페이스로부터 저장 디바이스로 출력될 수도 있다. 유사하게, 인코딩된 데이터는 입력 인터페이스에 의해 저장 디바이스로부터 액세스될 수도 있다. 저장 디바이스는 하드 드라이브, 블루-레이 디스크들, DVD들, CD-ROM들, 플래시 메모리, 휘발성 또는 비휘발성 메모리, 또는 인코딩된 비디오 데이터를 저장하기 위한 임의의 다른 적합한 디지털 저장 매체들과 같은 다양한 분산된 또는 로컬로 액세스되는 데이터 저장 매체들 중 임의의 데이터 저장 매체를 포함할 수도 있다. 추가의 예에서, 저장 디바이스는, 소스 디바이스에 의해 생성되는 인코딩된 비디오를 저장할 수도 있는, 파일 서버 또는 다른 중간 저장 디바이스에 대응할 수도 있다. 목적지 디바이스는 저장 디바이스로부터의 저장된 비디오 데이터에 스트리밍 또는 다운로드를 통해 액세스할 수도 있다. 파일 서버는, 인코딩된 비디오 데이터를 저장하고 그 인코딩된 비디오 데이터를 목적지 디바이스로 송신할 수 있는 임의의 유형의 서버일 수도 있다. 예시적인 파일 서버들은 웹 서버 (예를 들어, 웹 사이트용), FTP 서버, 네트워크 접속형 저장 (NAS) 디바이스들, 또는 로컬 디스크 드라이브를 포함한다. 목적지 디바이스는 인코딩된 비디오 데이터에, 인터넷 커넥션을 포함한 임의의 표준 데이터 커넥션을 통해 액세스할 수도 있다. 이는 파일 서버 상에 저장되는 인코딩된 비디오 데이터에 액세스하기에 적합한 무선 채널 (예를 들어, Wi-Fi 커넥션), 유선 커넥션 (예를 들어, DSL, 케이블 모뎀 등), 또는 이들 양자의 조합을 포함할 수도 있다. 저장 디바이스로부터의 인코딩된 비디오 데이터의 송신은 스트리밍 송신, 다운로드 송신, 또는 이들의 조합일 수도 있다.
본 개시의 기법들은 무선 애플리케이션들 또는 세팅들에 반드시 제한되는 것은 아니다. 기법들은, 공중 경유 (over-the-air) 텔레비전 브로드캐스트들, 케이블 텔레비전 송신들, 위성 텔레비전 송신들, HTTP 상으로의 동적 적응적 스트리밍 (DASH) 과 같은 인터넷 스트리밍 비디오 송신들, 데이터 저장 매체 상으로 인코딩되는 디지털 비디오, 데이터 저장 매체 상에 저장된 디지털 비디오의 디코딩, 또는 다른 애플리케이션들과 같은 다양한 멀티미디어 애플리케이션들 중 임의의 것을 지원하여 비디오 코딩에 적용될 수도 있다. 일부 예들에서, 시스템들은 비디오 스트리밍, 비디오 재생, 비디오 브로드캐스팅, 및/또는 화상 통화 (video telephony) 와 같은 애플리케이션들을 지원하기 위하여 일방향 (one-way) 또는 양방향 (two-way) 비디오 송신을 지원하도록 구성될 수도 있다.
하나의 예에서, 소스 디바이스는 비디오 소스, 비디오 인코더, 및 출력 인터페이스를 포함한다. 목적지 디바이스는 입력 인터페이스, 비디오 디코더, 및 디스플레이 디바이스를 포함한다. 소스 디바이스의 비디오 인코더는 여기에 개시된 기술들을 적용하도록 구성 될 수도 있다. 다른 예들에서, 소스 디바이스 및 목적지 디바이스는 다른 컴포넌트들 또는 배열 (arrangement) 들을 포함할 수도 있다. 예를 들어, 소스 디바이스는 외부 카메라와 같은 외부 비디오 소스로부터 비디오 데이터를 수신할 수도 있다. 마찬가지로, 목적지 디바이스는 통합된 디스플레이 디바이스를 포함하기 보다는, 외부 디스플레이 디바이스와 인터페이스할 수도 있다.
상기 예의 시스템은 하나의 예일 뿐이다. 병렬로 비디오 데이터를 프로세싱하기 위한 기법들은 임의의 디지털 비디오 인코딩 및/또는 디코딩 디바이스에 의해 수행될 수도 있다. 일반적으로 본 개시의 기법들은 비디오 인코딩 디바이스에 의해 수행되지만, 그 기법들은 또한, "코덱 (CODEC)" 으로 통상적으로 지칭되는, 비디오 인코더/디코더에 의해 수행될 수도 있다. 더욱이, 본 개시의 기법들은 또한 비디오 프리프로세서에 의해 수행될 수도 있다. 소스 디바이스 및 목적지 디바이스는, 소스 디바이스가 목적지 디바이스로의 송신을 위해 코딩된 비디오 데이터를 생성하는 그러한 코딩 디바이스들의 예들일 뿐이다. 일부 예들에서, 소스 및 목적지 디바이스들은, 디바이스들의 각각이 비디오 인코딩 및 디코딩 컴포넌트들을 포함하도록 실질적으로 대칭적인 방식으로 동작할 수도 있다. 이런 이유로, 예의 시스템들은 예를 들면, 비디오 스트리밍, 비디오 플레이백, 비디오 브로드캐스팅, 또는 비디오 텔레포니를 위해, 비디오 디바이스들 간의 일방향 또는 양방향 비디오 송신을 지원할 수도 있다.
비디오 소스는 비디오 캡처 디바이스, 이를 테면 비디오 카메라, 이전에 캡처된 비디오를 포함하는 비디오 아카이브, 및/또는 비디오 콘텐츠 제공자로부터 비디오를 수신하기 위한 비디오 피드 인터페이스를 포함할 수도 있다. 추가의 대안으로서, 비디오 소스는 소스 비디오, 또는 라이브 비디오, 아카이브된 비디오, 및 컴퓨터 생성된 비디오의 조합으로서 컴퓨터 그래픽스-기반 데이터를 생성할 수도 있다. 일부 경우들에서, 비디오 소스가 비디오 카메라이면, 소스 디바이스 및 목적지 디바이스는 소위 카메라 폰들 또는 비디오 폰들을 형성할 수도 있다. 그러나, 상기 언급된 바와 같이, 본 개시에서 설명된 기법들은 일반적으로 비디오 코딩에 적용가능할 수도 있고, 무선 및/또는 유선 애플리케이션들에 적용될 수도 있다. 각각의 경우에, 캡처된, 미리캡처된, 또는 컴퓨터-생성된 비디오는 비디오 인코더에 의해 인코딩될 수도 있다. 인코딩된 비디오 정보는 그 후 컴퓨터 판독가능 매체 상으로 출력 인터페이스에 의해 출력될 수도 있다.
언급된 바와 같이, 컴퓨터 판독가능 매체는 무선 브로드캐스트 또는 유선 네트워크 송신과 같은 일시적 매체들, 또는 하드 디스크, 플래시 드라이브, 콤팩트 디스크, 디지털 비디오 디스크, 블루-레이 디스크, 또는 다른 컴퓨터 판독가능 매체들과 같은 저장 매체들 (즉, 비일시적 저장 매체들) 을 포함할 수도 있다. 일부 예들에서, 네트워크 서버 (미도시) 는 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를, 예를 들어, 네트워크 송신을 통해 목적지 디바이스에 제공할 수도 있다. 유사하게, 디스크 스탬핑 설비와 같은 매체 생산 설비의 컴퓨팅 디바이스는, 소스 디바이스로부터 인코딩된 비디오 데이터를 수신하고 그 인코딩된 비디오 데이터를 포함하는 디스크를 생산할 수도 있다. 따라서, 컴퓨터 판독가능 매체는, 다양한 예들에서, 다양한 형태들의 하나 이상의 컴퓨터 판독가능 매체를 포함하는 것으로 이해될 수도 있다.
목적지 디바이스의 입력 인터페이스는 컴퓨터 판독가능 매체로부터 정보를 수신한다. 컴퓨터 판독가능 매체의 정보는 비디오 인코더에 의해 정의되고 또한 비디오 디코더에 의해 이용되는 신택스 정보를 포함할 수도 있으며, 이 신택스 정보는 블록들 및 다른 코딩된 유닛들, 예를 들어, 화상들의 그룹 (GOP) 의 특성들 및/또는 프로세싱을 기술하는 신택스 엘리먼트들을 포함한다. 디스플레이 디바이스는 디코딩된 비디오 데이터를 사용자에게 디스플레이하고, 음극선관 (CRT), 액정 디스플레이 (LCD), 플라즈마 디스플레이, 유기 발광 다이오드 (OLED) 디스플레이, 또는 다른 타입의 디스플레이 디바이스와 같은 다양한 디스플레이 디바이스들 중 어느 것을 포함할 수도 있다. 본 발명의 다양한 실시형태들이 설명되었다.
인코딩 디바이스 (104) 및 디코딩 디바이스 (112) 의 구체적인 세부사항들이 각각 도 14 및 도 15에 도시된다. 도 14 는 본 개시에 기재된 기법들 중 하나 이상을 구현할 수도 있는 예시적인 인코딩 디바이스 (104) 를 나타내는 블록도이다. 인코딩 디바이스 (104) 는 예를 들어, 본 명세서에서 설명된 신택스 구조들 (예를 들어, VPS, SPS, PPS 또는 다른 신택스 엘리먼트들의 신택스 구조들) 을 생성할 수도 있다. 인코딩 디바이스 (104) 는, 비디오 슬라이스들 내의 비디오 블록들의 인트라-예측 및 인터-예측 코딩을 수행할 수도 있다. 이전에 설명된 바와 같이, 인트라-코딩은, 주어진 비디오 프레임 또는 화상 내에서 공간 리던던시를 감소 또는 제거하기 위해 공간 예측에 적어도 부분적으로 의존한다. 인터-코딩은, 비디오 시퀀스의 인접한 또는 주위의 프레임들 내에서 시간 리던던시를 감소 또는 제거하기 위해 시간 예측에 적어도 부분적으로 의존한다. 인트라-모드 (I 모드) 는 수개의 공간 기반 압축 모드들 중 임의의 것을 지칭할 수도 있다. 단방향 예측 (P 모드) 또는 양방향 예측 (B 모드) 과 같은 인터-모드들은 수개의 시간 기반 압축 모드들 중 임의의 모드를 지칭할 수도 있다.
인코딩 디바이스 (104) 는 파티셔닝 유닛 (35), 예측 프로세싱 유닛 (41), 필터 유닛 (63), 화상 메모리 (64), 합산기 (50), 변환 프로세싱 유닛 (52), 양자화 유닛 (54), 및 엔트로피 인코딩 유닛 (56) 을 포함한다. 예측 프로세싱 유닛 (41) 은 모션 추정 유닛 (42), 모션 보상 유닛 (44) 및 인트라 예측 프로세싱 유닛 (46) 을 포함한다. 비디오 블록 재구성을 위해, 인코딩 디바이스 (104) 는 또한 역양자화 유닛 (58), 역변환 프로세싱 유닛 (60), 및 합산기 (62) 를 포함한다. 필터 유닛 (63) 은 디블록킹 (deblocking) 필터, 적응 루프 필터 (ALF), 및 샘플 적응 오프셋 (SAO) 필터와 같은 하나 이상의 루프 필터들을 나타내도록 의도된다. 필터 유닛 (63) 이 인루프 필터인 것으로서 도 14에 도시되어 있지만, 다른 구성들에서, 필터 유닛 (63) 은 포스트 루프 필터로서 구현될 수도 있다. 포스트 프로세싱 디바이스(57)가 인코딩 디바이스(104)에 의해 생성되는 인코딩된 비디오 데이터에 대해 추가적인 프로세싱을 수행할 수도 있다. 본 개시물의 기법들은 일부 경우들에서 인코딩 디바이스(104)에 의해 구현될 수도 있다. 그러나, 다른 경우들에서, 본 개시물의 기법들 중 하나 이상은 포스트 프로세싱 디바이스(57)에 의해 구현될 수도 있다.
도 14 에 도시된 바처럼, 인코딩 디바이스 (104) 는 비디오 데이터를 수신하고 파티셔닝 유닛 (35) 은 데이터를 비디오 블록들로 파티셔닝한다. 파티셔닝은 슬라이스들, 슬라이스 세그먼트들, 타일들, 또는 다른 더 큰 유닛들로의 파티셔닝, 뿐만 아니라, 예컨대 LCU들 및 CU들의 쿼드트리 구조에 따른, 비디오 블록 파티셔닝을 또한 포함할 수도 있다. 인코딩 디바이스(104) 는 인코딩될 비디오 슬라이스 내의 비디오 블록들을 인코딩하는 컴포넌트들을 일반적으로 예시한다. 슬라이스는 다수의 비디오 블록들로 (그리고 아마도 타일들이라고 지칭되는 비디오 블록들의 셋트들로) 나누어질 수도 있다. 예측 프로세싱 유닛(41)은 복수의 가능한 코딩 모드들 중 하나, 이를테면 복수의 인트라 코딩 모드들 중 하나 또는 복수의 인터 예측 코딩 모드들 중 하나를 에러 결과들(예컨대, 코딩 레이트와 왜곡 레벨 등)에 기초하여 현재 비디오 블록에 대해 선택할 수도 있다. 예측 프로세싱 유닛(41)은 결과적인 인트라 또는 인터 코딩된 블록을 잔차 블록 데이터를 생성하는 합산기(50) 및 참조 픽처로서 사용하기 위해 인코딩된 블록을 복원하는 합산기(62)에 제공할 수도 있다.
예측 프로세싱 유닛 (41) 내의 인트라 예측 프로세싱 유닛 (46) 은 공간 압축을 제공하기 위해, 코딩될 현재 블록과 동일한 프레임 또는 슬라이스에서의 하나 이상의 이웃 블록들에 관해 현재 비디오 블록의 인트라-예측 코딩을 수행할 수도 있다. 예측 프로세싱 유닛 (41) 내의 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 시간 압축을 제공하기 위해 하나 이상의 레퍼런스 픽처들에서의 하나 이상의 예측 블록들에 관해 현재 비디오 블록의 인터-예측 코딩을 수행한다.
모션 추정 유닛 (42) 은 비디오 시퀀스에 대한 미리결정된 패턴에 따라 비디오 슬라이스에 대한 인터-예측 모드를 결정하도록 구성될 수도 있다. 미리결정된 패턴은 시퀀스에서의 비디오 슬라이스들을, P 슬라이스들, B 슬라이스들 또는 GPB 슬라이스들로서 지정할 수도 있다. 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 은 고도로 통합될 수도 있지만, 개념적인 목적을 위해 별도로 도시된다. 모션 추정 유닛 (42) 에 의해 수행된 모션 추정은 비디오 블록들을 위한 모션을 추정하는 모션 벡터들을 생성하는 프로세스이다. 모션 벡터는, 예를 들어, 참조 화상 내의 예측 블록에 관한 현재 비디오 프레임 또는 화상 내의 비디오 블록의 예측 유닛 (PU) 의 변위를 표시할 수도 있다.
예측 블록은 픽셀 차이의 관점에서 코딩될 비디오 블록의 PU 와 밀접하게 매칭하도록 발견되는 블록이며, 이 픽셀 차이는 절대 차이의 합 (SAD), 제곱 차이의 합 (SSD), 또는 다른 상이한 메트릭들에 의해 결정될 수도 있다. 일부 예들에 있어서, 인코딩 디바이스 (104) 는 화상 메모리 (64) 에 저장된 참조 화상들의 서브-정수 픽셀 포지션들에 대한 값들을 계산할 수도 있다. 예를 들어, 인코딩 디바이스 (104) 는 참조 화상의 1/4 픽셀 포지션들, 1/8 픽셀 포지션들, 또는 다른 분수 픽셀 포지션들의 값들을 보간할 수도 있다. 따라서, 모션 추정 유닛 (42) 은 풀 픽셀 포지션들 및 분수 픽셀 포지션들에 관한 모션 탐색을 수행하고, 분수 픽셀 정밀도로 모션 벡터를 출력할 수도 있다.
모션 추정 유닛 (42) 은 인터-코딩된 슬라이스에서의 비디오 블록의 PU 에 대한 모션 벡터를, 그 PU 의 포지션을 참조 픽처의 예측 블록의 포지션과 비교함으로써 계산한다. 레퍼런스 픽처는 제 1 레퍼런스 픽처 리스트 (List 0) 또는 제 2 레퍼런스 픽처 리스트 (List 1) 로부터 선택될 수도 있고, 이들의 각각은 픽처 메모리 (64) 내에 저장된 하나 이상의 레퍼런스 픽처들을 식별한다. 모션 추정 유닛 (42) 은 계산된 모션 벡터를 엔트로피 인코딩 유닛 (56) 및 모션 보상 유닛 (44) 으로 전송한다.
모션 보상 유닛 (44) 에 의해 수행된 모션 보상은, 모션 추정에 의해 결정된 모션 벡터에 기초하여 예측 블록을 페칭 또는 생성하는 것을, 가능하게는 서브-픽셀 정밀도에 대한 보간들을 수행하는 것을 수반할 수도 있다. 현재 비디오 블록의 PU 에 대한 모션 벡터를 수신할 시, 모션 보상 유닛 (44) 은, 모션 벡터가 참조 화상 리스트에서 포인팅하는 예측 블록을 로케이팅할 수도 있다. 인코딩 디바이스 (104) 는, 코딩되고 있는 현재 비디오 블록의 픽셀 값들로부터 예측 블록의 픽셀 값들을 감산하여 픽셀 차이 값들을 형성함으로써 잔차 비디오 블록을 형성한다. 픽셀 차이 값들은 블록에 대한 잔차 데이터를 형성하고, 루마 및 크로마 차이 컴포넌트들 양자를 포함할 수도 있다. 합산기 (50) 는 이러한 감산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 모션 보상 유닛(44)은 비디오 슬라이스의 비디오 블록들을 디코딩함에 있어서 디코딩 디바이스(112)에 의한 사용을 위해 비디오 블록들 및 비디오 슬라이스에 연관된 신택스 엘리먼트들을 또한 생성할 수도 있다.
인트라-예측 프로세싱 유닛 (46) 은 현재 블록을, 상기 설명된 바와 같은 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 수행된 인터-예측에 대한 대안으로서 인트라-예측할 수도 있다. 특히, 인트라-예측 프로세싱 유닛 (46) 은 현재 블록을 인코딩하는데 이용하기 위한 인트라-예측 모드를 결정할 수도 있다. 일부 예들에서, 인트라 예측 프로세싱 유닛(46)은 예컨대, 개별 인코딩 과정들 동안 다양한 인트라 예측 모드들을 사용하여 현재 블록을 인코딩할 수도 있고, 인트라 예측 프로세싱 유닛(46)은 테스트된 모드들로부터 사용할 적절한 인트라 예측 모드를 선택할 수도 있다. 예를 들어, 인트라 예측 프로세싱 유닛(46)은 다양한 테스트된 인트라 예측 모드들에 대한 레이트 왜곡 분석을 사용하여 레이트 왜곡 값들을 산출하고, 테스트된 모드들 중에서 최상의 레이트 왜곡 특성들을 갖는 인트라 예측 모드를 선택할 수도 있다. 레이트-왜곡 분석은 일반적으로, 인코딩된 블록과 그 인코딩된 블록을 생성하도록 인코딩되었던 원래의 인코딩되지 않은 블록 간의 왜곡 (또는 에러) 의 양뿐 아니라 인코딩된 블록을 생성하는데 사용된 비트 레이트 (즉, 비트들의 수) 를 결정한다. 인트라 예측 프로세싱 유닛(46)은 어떤 인트라 예측 모드가 그 블록에 대한 최상의 레이트 왜곡 값을 나타내는지를 결정하기 위해 다양한 인코딩된 블록들에 대한 왜곡들 및 레이트들로부터 비율들을 산출할 수도 있다.
어떤 경우든, 블록에 대한 인트라-예측 모드를 선택한 이후, 인트라-예측 프로세싱 유닛 (46) 은 블록에 대한 선택된 인트라-예측 모드를 표시하는 정보를 엔트로피 인코딩 유닛 (56) 에 제공할 수도 있다. 엔트로피 인코딩 유닛 (56) 은 선택된 인트라-예측 모드를 표시한 정보를 인코딩할 수도 있다. 인코딩 디바이스 (104) 는 다양한 블록들에 대한 인코딩 컨텍스트들의 정의들 뿐아니라 그 컨텍스트들 각각에 대해 사용할 가장 가능성있는 인트라-예측 모드, 인트라-예측 모드 인덱스 테이블 및 변형된 인트라-예측 모드 인덱스 테이블의 표시들을 전송된 비트 스트림 구성 데이터에 포함할 수있다. 비트 스트림 구성 데이터는 복수의 인트라 예측 모드 인덱스 테이블 및 복수의 변형된 인트라 예측 모드 인덱스 테이블 (코드워드 맵핑 테이블이라고도 함) 을 포함 할 수있다.
예측 프로세싱 유닛 (41) 이 인터-예측 또는 인트라-예측 중 어느 하나를 통해 현재 비디오 블록에 대한 예측 블록을 생성한 후, 인코딩 디바이스 (104) 는 현재 비디오 블록으로부터 예측 블록을 감산함으로써 잔차 비디오 블록을 형성한다. 잔차 블록에서의 잔차 비디오 데이터는 하나 이상의 TU들에 포함되고 변환 프로세싱 유닛 (52) 에 적용될 수도 있다. 변환 프로세싱 유닛 (52) 은 이산 코사인 변환 (discrete cosine transform; DCT) 또는 개념적으로 유사한 변환과 같은 변환을 이용하여 잔차 비디오 데이터를 잔차 변환 계수들로 변환한다. 변환 프로세싱 유닛 (52) 은 잔차 비디오 데이터를 픽셀 도메인으로부터, 주파수 도메인과 같은 변환 도메인으로 변환할 수도 있다.
변환 프로세싱 유닛 (52) 은 결과적인 변환 계수들을 양자화 유닛 (54) 으로 전송할 수도 있다. 양자화 유닛 (54) 은 비트레이트를 추가로 감소시키기 위해 변환 계수들을 양자화한다. 양자화 프로세스는 계수들의 일부 또는 전부와 연관된 비트 심도를 감소시킬 수도 있다. 양자화도는 양자화 파라미터를 조절함으로써 수정될 수도 있다. 일부 예들에 있어서, 양자화 유닛 (54) 은 그 다음에, 양자화된 변환 계수들을 포함하는 매트릭스의 스캔을 수행할 수도 있다. 대안적으로, 엔트로피 인코딩 유닛(56)이 그 스캔을 수행할 수도 있다.
양자화 이후, 엔트로피 인코딩 유닛 (56) 은 양자화된 변환 계수들을 엔트로피 인코딩한다. 예를 들어, 엔트로피 인코딩 유닛 (56) 은 컨텍스트 적응적 가변 길이 코딩 (CAVLC), 컨텍스트 적응적 바이너리 산술 코딩 (CABAC), 신택스 기반 컨텍스트 적응적 바이너리 산술 코딩 (SBAC), 확률 간격 파티셔닝 엔트로피 (PIPE) 코딩, 또는 다른 엔트로피 인코딩 기술을 수행할 수도 있다. 엔트로피 인코딩 유닛 (56) 에 의한 엔트로피 인코딩 이후, 인코딩된 비트스트림은 디코딩 디바이스 (112) 로 송신되거나, 또는 디코딩 디바이스 (112) 에 의한 나중의 송신 또는 취출을 위해 아카이브될 수도 있다. 엔트로피 인코딩 유닛 (56) 은 또한, 코딩되고 있는 현재 비디오 슬라이스에 대한 모션 벡터들 및 다른 신택스 엘리먼트들을 엔트로피 인코딩할 수도 있다.
역양자화 유닛 (58) 및 역변환 프로세싱 유닛 (60) 은, 각각, 역양자화 및 역변환을 적용하여, 레퍼런스 픽처의 레퍼런스 블록으로서의 더 나중 사용을 위해 픽셀 도메인에서 잔차 블록을 재구성한다. 모션 보상 유닛 (44) 은, 레퍼런스 픽처 리스트 내 하나의 레퍼런스 픽처의 예측 블록에 잔차 블록을 가산함으로써 레퍼런스 블록을 계산할 수도 있다. 모션 보상 유닛 (44) 은 또한, 하나 이상의 보간 필터들을 복원된 잔차 블록에 적용하여, 모션 추정에서의 사용을 위한 서브-정수 픽셀 값들을 계산할 수도 있다. 합산기 (62) 는 복원된 잔차 블록을, 모션 보상 유닛 (44) 에 의해 생성된 모션 보상된 예측 블록에 부가하여, 참조 화상 메모리 (64) 로의 저장을 위한 참조 블록을 생성한다. 참조 블록은, 후속 비디오 프레임 또는 화상에서의 블록을 인터-예측하기 위해 참조 블록으로서 모션 추정 유닛 (42) 및 모션 보상 유닛 (44) 에 의해 사용될 수도 있다.
이러한 방식으로, 도 14 의 인코딩 디바이스 (104) 는, LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 결정하며, 및/또는, 가중치들을 적응적으로 선택하도록 구성된 비디오 인코더의 일 예를 나타낸다. 인코딩 디바이스 (104) 는, 예를 들어, 상술된 바와 같이, LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 결정하며, 및/또는, 가중치들을 적응적으로 선택할 수도 있다. 실례로, 인코딩 디바이스(104) 는 도 12 및 도 13 과 관련하여 상기 설명된 프로세스들을 포함하는 본 명세서에서 설명되는 기법들 중 임의의 것을 수행할 수도 있다. 일부 경우들에서, 본 개시의 기법들 중 일부는 포스트 프로세싱 디바이스 (57) 에 의해 또한 구현될 수도 있다.
도 15 는 예시적 디코딩 디바이스 (112) 를 나타내는 블록도이다. 디코딩 디바이스 (112) 는 엔트로피 디코딩 유닛 (80), 예측 프로세싱 유닛 (81), 역양자화 유닛 (86), 역변환 프로세싱 유닛 (88), 합산기 (90), 필터 유닛 (91), 및 화상 메모리 (92) 를 포함한다. 예측 프로세싱 유닛 (81) 은 모션 보상 유닛 (82) 및 인트라 예측 프로세싱 유닛 (84) 을 포함한다. 디코딩 디바이스 (112) 는, 일부 예들에서, 도 14 로부터의 인코딩 디바이스 (104) 에 대해 설명된 인코딩 패스에 일반적으로 상반되는 디코딩 패스를 수행할 수도 있다.
디코딩 프로세스 동안, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 에 의해 전송된 인코딩된 비디오 슬라이스의 비디오 블록들 및 관련 신택스 엘리먼트들을 나타내는 인코딩된 비디오 비트스트림을 수신한다. 일부 실시형태들에서, 디코딩 디바이스 (112) 는 인코딩 디바이스 (104) 로부터 인코딩된 비디오 비트 스트림을 수신할 수있다. 일부 실시형태들서, 디코딩 디바이스 (112) 는 서버, 미디어 인식 네트워크 엘리먼트 (MANE), 비디오 편집자/스플라이서 (splicer), 또는 상술된 기술들 중 하나 이상을 구현하도록 구성된 다른 그러한 디바이스와 같은 네트워크 엔티티 (79) 로부터 인코딩된 비디오 비트스트림을 수신할 수도 있다. 네트워크 엔티티 (79) 는 인코딩 디바이스 (104) 를 포함할 수도 있거나 포함하지 않을 수도 있다. 본 개시에 설명된 기법들 중 일부는 네트워크 엔티티 (79) 가 인코딩된 비디오 비트스트림을 디코딩 디바이스 (112) 로 송신하는 것 이전에 네트워크 엔티티 (79) 에 의해 구현될 수도 있다. 일부 비디오 디코딩 시스템들에 있어서, 네트워크 엔티티 (79) 및 디코딩 디바이스 (112) 는 별개의 디바이스들의 부분들일 수도 있지만, 다른 예들에 있어서, 네트워크 엔티티 (79) 에 대하여 설명된 기능은 디코딩 디바이스 (112) 를 포함하는 동일한 디바이스에 의해 수행될 수도 있다.
디코딩 디바이스 (112) 의 엔트로피 디코딩 유닛 (80) 은 비트스트림을 엔트로피 디코딩하여, 양자화된 계수들, 모션 벡터들, 및 다른 신택스 엘리먼트들을 생성한다. 엔트로피 디코딩 유닛 (80) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 예측 프로세싱 유닛 (81) 으로 포워딩한다. 디코딩 디바이스 (112) 는 신택스 엘리먼트들을 비디오 슬라이스 레벨 및/또는 비디오 블록 레벨로 수신할 수도 있다. 엔트로피 디코딩 유닛 (80)은 VPS, SPS 및 PPS와 같은 하나 이상의 파라미터 셋트에서 고정 길이 신택스 엘리먼트들 및 가변 길이 신택스 엘리먼트들을 처리 및 파싱할 수있다.
비디오 슬라이스가 인트라-코딩된 (I) 슬라이스로서 코딩된 경우, 예측 프로세싱 유닛 (81) 의 인트라 예측 프로세싱 유닛 (84) 은 현재 프레임 또는 화상의 이전에 디코딩된 블록들로부터의 데이터 및 시그널링된 인트라 예측 모드에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 데이터를 생성할 수도 있다. 비디오 프레임이 인터-코딩된 (즉, B, P 또는 GPB) 슬라이스로서 코딩된 경우, 예측 프로세싱 유닛 (81) 의 모션 보상 유닛 (82) 은 엔트로피 디코딩 유닛 (80) 으로부터 수신된 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 슬라이스의 비디오 블록에 대한 예측 블록들을 생성한다. 예측 블록들은 참조 화상 리스트 내의 참조 화상들 중 하나로부터 생성될 수도 있다. 디코딩 디바이스 (112) 는 화상 메모리 (92) 에 저장된 참조 화상들에 기초한 디폴트 구성 기법들을 이용하여 참조 프레임 리스트들, 즉, 리스트 0 및 리스트 1 을 구성할 수도 있다.
모션 보상 유닛 (82) 은 모션 벡터들 및 다른 신택스 엘리먼트들을 파싱함으로써 현재 비디오 슬라이스의 비디오 블록에 대한 예측 정보를 결정하고, 그 예측 정보를 사용하여, 디코딩되고 있는 현재 비디오 블록에 대한 예측 블록들을 생성한다. 예를 들어, 모션 보상 유닛 (82) 은 파라미터 셋트 내의 하나 이상의 신택스 엘리먼트들을 사용하여, 비디오 슬라이스의 비디오 블록들을 코딩하는데 사용되는 예측 모드 (예를 들어, 인트라-예측 또는 인터-예측), 인터-예측 슬라이스 타입 (예를 들어, B 슬라이스, P 슬라이스, 또는 GPB 슬라이스), 슬라이스에 대한 하나 이상의 참조 화상 리스트들에 대한 구성 정보, 슬라이스의 각각의 인터-인코딩된 비디오 블록에 대한 모션 벡터들, 슬라이스의 각각의 인터-코딩된 비디오 블록에 대한 인터-예측 상태, 및 현재 비디오 슬라이스에서의 비디오 블록들을 디코딩하기 위한 다른 정보를 결정할 수도 있다.
모션 보상 유닛 (82) 은 또한, 보간 필터들에 기초하여 보간을 수행할 수도 있다. 모션 보상 유닛 (82) 은 비디오 블록들의 인코딩 동안 인코딩 디바이스 (104) 에 의해 사용된 바와 같은 보간 필터들을 이용하여, 참조 블록들의 서브-정수 픽셀들에 대한 보간된 값들을 계산할 수도 있다. 이 경우, 모션 보상 유닛 (82) 은 수신된 신택스 엘리먼트들로부터 인코딩 디바이스 (104) 에 의해 사용된 보간 필터들을 결정할 수도 있고, 보간 필터들을 이용하여 예측 블록들을 생성할 수도 있다.
역양자화 유닛 (86) 은 비트스트림에서 제공되고 엔트로피 디코딩 유닛 (80) 에 의해 디코딩되는 양자화된 변환 계수들을 역양자화, 또는 탈양자화한다. 역양자화 프로세스는 적용되어야 하는 양자화의 정도 및 유사하게 역양자화의 정도를 결정하기 위해 비디오 슬라이스에서의 각각의 비디오 블록에 대해 인코딩 디바이스 (104) 에 의해 계산된 양자화 파라미터의 사용을 포함할 수도 있다. 역변환 프로세싱 유닛 (88) 은 픽셀 도메인에서 잔차 블록들을 생성하기 위해, 역변환, (예를 들어, 역 DCT, 또는 다른 적합한 역변환), 역 정수 변환, 또는 개념적으로 유사한 역변환 프로세스를 변환 계수들에 적용한다.
모션 보상 유닛 (82) 이 모션 벡터들 및 다른 신택스 엘리먼트들에 기초하여 현재 비디오 블록에 대한 예측 블록을 생성한 후, 디코딩 디바이스 (112) 는 역변환 프로세싱 유닛 (88) 으로부터의 잔차 블록들을 모션 보상 유닛 (82) 에 의해 생성된 대응하는 예측 블록들과 합산함으로써 디코딩된 비디오 블록을 형성한다. 합산기 (90) 는 이러한 합산 연산을 수행하는 컴포넌트 또는 컴포넌트들을 나타낸다. 요구된다면, (코딩 루프에 있어서 또는 코딩 루프 이후에) 루프 필터들이 또한 픽셀 천이들을 평활하게 하거나 그렇지 않으면 비디오 품질을 개선하기 위해 이용될 수도 있다. 필터 유닛(91)은 블록화제거 필터, 적응적 루프 필터(ALF), 및 샘플 적응 오프셋(SAO) 필터와 같은 하나 이상의 루프 필터들을 표현하도록 의도된다. 필터 유닛 (91) 이 인루프 필터인 것으로서 도 15에 도시되어 있지만, 다른 구성들에서, 필터 유닛 (91) 은 포스트 루프 필터로서 구현될 수도 있다. 다음으로, 정해진 프레임 또는 화상에서 디코딩된 비디오 블록들은 화상 메모리 (92) 에 저장되고, 이는 후속 모션 보상을 위해 사용된 레퍼런스 화상들을 저장한다. 화상 메모리 (92) 는 또한, 도 1에 도시된 비디오 목적지 디바이스 (122) 와 같은 디스플레이 디바이스 상에 나중에 표출하기 위해 디코딩된 비디오를 저장한다.
이러한 방식으로, 도 15 의 디코딩 디바이스 (112) 는, LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 결정하며, 및/또는, 가중치들을 적응적으로 선택하도록 구성된 비디오 디코더의 일 예를 나타낸다. 디코딩 디바이스 (112) 는, 예를 들어, 상술된 바와 같이, LIC 파라미터들을 도출하고, 템플릿들의 사이즈들을 결정하며, 및/또는, 가중치들을 적응적으로 선택할 수도 있다. 실례로, 디코딩 디바이스(112) 는 도 12 및 도 13 과 관련하여 상기 설명된 프로세스들을 포함하는 본 명세서에서 설명되는 기법들 중 임의의 것을 수행할 수도 있다.
전술한 설명에서, 본 출원의 양태는 특정 실시형태를 참조하여 기재되었지만, 당업자는 본 발명이 이에 제한되지 않는다는 것을 인식 할 것이다. 따라서, 본 출원의 예시적인 실시형태들이 본원에 상세히 설명되었지만, 본 발명의 개념은 달리 다양하게 구체화되고 채택 될 수 있으며, 첨부된 청구 범위는 선행 기술에 의해 제한되는 것을 제외하고는 그러한 변형을 포함하는 것으로 해석되도록 의도된다. 전술한 본 발명의 다양한 특징 및 양태는 개별적으로 또는 공동으로 사용될 수있다. 또한, 실시형태들은 본 명세서의 더 넓은 사상 및 범위를 벗어나지 않으면서 본 명세서에 기재된 것 이외의 임의의 수의 환경 및 애플리케이션에서 이용 될 수 있다. 이에 따라, 명세서 및 도면들은 한정적 의미보다는 예시적 의미로 간주되어야 한다. 예시의 목적 상, 방법은 특정 순서로 기술되었다. 대안적인 실시예에서, 상기 방법은 설명된 것과 다른 순서로 수행될 수 있다는 것을 이해해야 한다.
컴포넌트들이 특정 동작을 수행 "하도록 구성" 되는 것으로 기술되는 경우, 그러한 구성은 예를 들어, 전자 회로 또는 다른 하드웨어를 동작을 수행하도록 설계함으로써, 프로그래밍 가능한 전자 회로 (예를 들어, 마이크로 프로세서 또는 다른 적절한 전자 회로) 를 동작을 수행하도록 프로그래밍함으로써, 또는 이들의 임의의 조합으로써 달성될 수 있다.
본 명세서에 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 조합들로서 구현될 수도 있다. 하드웨어와 소프트웨어의 이러한 상호대체 가능성을 분명히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능의 관점에서 상기 설명되었다. 그러한 기능이 하드웨어로서 구현될지 또는 소프트웨어로서 구현될지는 전체 시스템에 부과된 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자는 설명된 기능을 각각의 특정 애플리케이션에 대하여 다양한 방식들로 구현할 수도 있지만, 그러한 구현의 결정들이 본 발명의 범위로부터의 일탈을 야기하는 것으로서 해석되지는 않아야 한다.
본 명세서에서 설명된 기술들은 또한 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수도 있다. 그러한 기술들은 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 애플리케이션을 포함하여 다중의 이용들을 갖는 집적 회로 디바이스들과 같은 임의의 다양한 디바이스들에서 구현될 수도 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 특징들은 집적된 로직 디바이스에서 함께 또는 별개지만 상호운용가능한 로직 디바이스들로서 별도로 구현될 수도 있다. 소프트웨어에서 구현되면, 그 기법들은, 실행될 경우 상기 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독가능 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수도 있다. 컴퓨터 판독가능 데이터 저장 매체는 컴퓨터 프로그램 제품의 부분을 형성할 수도 있으며, 이는 패키징 재료들을 포함할 수도 있다. 컴퓨터 판독가능 매체는 동기식 동적 랜덤 액세스 메모리 (SDRAM) 와 같은 랜덤 액세스 메모리 (RAM), 판독 전용 메모리 (ROM), 비휘발성 랜덤 액세스 메모리 (NVRAM), 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리 (EEPROM), 플래시 메모리, 자기 또는 광학 데이터 저장 매체들 등과 같은 메모리 또는 데이터 저장 매체들을 포함할 수도 있다. 그 기법들은, 부가적으로 또는 대안적으로, 전파된 신호들 또는 파동들과 같이, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 수록하거나 통신하고 그리고 컴퓨터에 의해 액세스, 판독 및/또는 실행될 수 있는 컴퓨터 판독가능 통신 매체에 의해 적어도 부분적으로 실현될 수도 있다.
프로그램 코드는, 하나 이상의 디지털 신호 프로세서들 (DSP들), 범용 마이크로 프로세서들, 주문형 집적 회로들 (ASIC들), 필드 프로그래밍가능 로직 어레이들 (FPGA들), 또는 다른 균등한 집적된 또는 별개의 로직 회로부와 같은 하나 이상의 프로세서들을 포함할 수도 있는 프로세서에 의해 실행될 수도 있다. 그러한 프로세서는 본 개시에서 설명된 기법들 중 임의의 기법을 수행하도록 구성될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 그 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로 제어기, 또는 상태 머신일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합 ,예를 들어, DSP 와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 그러한 다른 구성물 으로서 구현될 수도 있다. 이에 따라, 본 명세서에서 사용된 바와 같은 용어 "프로세서" 는 전술한 구조, 전술한 구조의 임의의 조합, 또는 본 명세서에서 설명된 기법들의 구현에 적합한 임의의 다른 구조 또는 장치 중 임의의 것을 지칭할 수도 있다. 부가적으로, 일부 양태들에 있어서, 본 명세서에서 설명된 기능은, 인코딩 및 디코딩을 위해 구성된 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에서 제공되거나, 또는 결합된 비디오 인코더-디코더 (CODEC) 에 통합될 수도 있다.

Claims (42)

  1. 비디오 데이터를 프로세싱하는 방법으로서,
    상기 방법은,
    360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 단계로서, 상기 360-도 비디오 데이터는 장면의 구면 표현을 포함하고, 상기 미디어 파일은 상기 구면 표현에서의 관심 영역 (region of interest; ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하고, 상기 제 1 시그널링 정보는 상기 구면 표현과 연관된 구면 공간에서 측정된 상기 뷰포트 영역의 센터 포지션 및 치수를 포함하고, 상기 제 2 시그널링 정보는 상기 ROI 를 포함하는 상기 구면 표현을 평면 상으로 투영함으로써 형성되는 화상의, 상기 뷰포트 영역을 포함하는 영역을 나타내며, 상기 화상은 복수의 타일들을 포함하는, 상기 미디어 파일을 획득하는 단계;
    상기 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 상기 화상의 데이터로부터 상기 뷰포트 영역에 대응하는 픽셀들을 추출하는 단계; 및
    디스플레이를 위해 상기 뷰포트 영역을 렌더링하기 위해 상기 픽셀들을 제공하는 단계를 포함하고,
    상기 제 2 시그널링 정보는 상기 복수의 타일들 중 타일들의, 상기 뷰포트 영역을 포함하는, 최소 셋트를 식별하고, 그리고
    상기 최소 셋트는 상기 복수의 타일들 중, 상기 뷰포트 영역에 대응하는 상기 픽셀들의 전부를 포함하는 타일들의 가장 적은 셋트인, 비디오 데이터를 프로세싱하는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 시그널링 정보는 상기 장면의 상기 구면 표현의 구면 센터에 대한 상기 뷰포트 영역의 센터의 제 1 각도 및 제 2 각도를 포함하고, 상기 제 1 각도는 제 1 평면 상에 형성되고, 상기 제 2 각도는 제 2 평면 상에 형성되며, 상기 제 1 평면은 상기 제 2 평면에 대해 수직인, 비디오 데이터를 프로세싱하는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 시그널링 정보는, 상기 뷰포트 영역의 폭과 연관된 제 3 각도 및 상기 뷰포트 영역의 높이와 연관된 제 4 각도를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  4. 제 3 항에 있어서,
    상기 제 3 각도는 상기 뷰포트 영역의 제 1 에지와 제 2 에지 사이에 형성되고; 상기 제 4 각도는 상기 뷰포트 영역의 제 3 에지와 제 4 에지 사이에 형성되는, 비디오 데이터를 프로세싱하는 방법.
  5. 제 2 항에 있어서,
    상기 ROI 는 상기 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의되고; 상기 4 개의 평면들의 각각은 상기 구면 센터와 또한 교차하는, 비디오 데이터를 프로세싱하는 방법.
  6. 제 5 항에 있어서,
    상기 적어도 4 개의 평면들의 상기 구면 표현과의 교차에 기초하여 상기 뷰포트 영역의 형상을 결정하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  7. 제 6 항에 있어서,
    상기 뷰포트 영역에 대응하는 상기 픽셀들은 상기 형상에 기초하여 추출되는, 비디오 데이터를 프로세싱하는 방법.
  8. 제 1 항에 있어서,
    상기 추출하는 단계는, 식별된 상기 최소 셋트 내에서 상기 뷰포트의 경계를 결정하기 위해 상기 제 1 시그널링 정보를 이용하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  9. 제 1 항에 있어서,
    상기 제 2 시그널링 정보는 상기 화상에서의 하나 이상의 상기 타일들과 연관된 하나 이상의 좌표들을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  10. 제 1 항에 있어서,
    하나 이상의 상기 타일들은 타일 그룹을 형성하고, 상기 제 2 시그널링 정보는 상기 타일 그룹과 연관된 그룹 식별자를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  11. 제 1 항에 있어서,
    상기 복수의 타일들은 모션-제약된 타일들인, 비디오 데이터를 프로세싱하는 방법.
  12. 제 1 항에 있어서,
    상기 제 2 시그널링 정보는 상기 ROI 를 평면 상에 투영함으로써 형성된 뷰포트 영역 내의 미리결정된 로케이션, 상기 뷰포트 영역의 폭, 및 상기 뷰포트 영역의 높이와 연관된 픽셀 좌표들을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  13. 제 1 항에 있어서,
    상기 미디어 파일은 국제 표준 기구 (ISO) 베이스 미디어 파일 포맷 (ISOBMFF) 에 기초하는, 비디오 데이터를 프로세싱하는 방법.
  14. 제 13 항에 있어서,
    상기 미디어 파일은 상기 장면의 상기 구면 표현에 대응하는 비디오 샘플을 포함하는 샘플 그룹을 식별하고; 그리고
    상기 제 1 시그널링 정보 및 상기 제 2 시그널링 정보는 상기 샘플 그룹의 하나 이상의 신택스 엘리먼트들에 포함되는, 비디오 데이터를 프로세싱하는 방법.
  15. 제 1 항에 있어서,
    상기 미디어 파일은, 미디어 프리젠테이션 디스크립션 (MPD) 포맷에 기초하고, 하나 이상의 적응 셋트들을 포함하고;
    상기 하나 이상의 적응 셋트들의 각각은 하나 이상의 표현들을 포함하며; 그리고
    상기 제 1 시그널링 정보, 상기 제 2 시그널링 정보, 및 상기 화상에 대한 링크는 상기 하나 이상의 표현들에 포함된 상기 ROI 와 연관된 하나 이상의 엘리먼트들에 포함되고,
    상기 방법은, 상기 미디어 파일에 포함된 상기 링크에 기초하여 상기 화상을 획득하는 단계를 포함하는, 비디오 데이터를 프로세싱하는 방법.
  16. 제 15 항에 있어서,
    상기 하나 이상의 표현들은 타일-기반 표현들이고, 상기 제 2 시그널링 정보는 상기 타일-기반 표현들에 포함된 상기 ROI 를 포함하는 타일들과 연관된 식별자들을 포함하는, 비디오 데이터를 프로세싱하는 방법.
  17. 제 1 항에 있어서,
    상기 장면의 상기 구면 표현은 직선형 투영을 이용하여 상기 평면 상으로 투영되는, 비디오 데이터를 프로세싱하는 방법.
  18. 제 1 항에 있어서,
    상기 제 1 시그널링 정보 및 상기 제 2 시그널링 정보에 기초하여 상기 화상으로부터 다수의 ROI 들의 픽셀들을 추출하는 단계를 더 포함하는, 비디오 데이터를 프로세싱하는 방법.
  19. 비디오 데이터를 프로세싱하기 위한 장치로서,
    360-도 비디오 데이터를 저장하도록 구성된 메모리; 및
    360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 것으로서, 상기 360-도 비디오 데이터는 장면의 구면 표현을 포함하고, 상기 미디어 파일은 상기 구면 표현에서의 관심 영역 (region of interest; ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하고, 상기 제 1 시그널링 정보는 상기 구면 표현과 연관된 구면 공간에서 측정된 상기 뷰포트 영역의 센터 포지션 및 치수를 포함하고, 상기 제 2 시그널링 정보는 상기 ROI 를 포함하는 상기 구면 표현을 평면 상으로 투영함으로써 형성되는 화상의, 상기 뷰포트 영역을 포함하는 영역을 나타내며, 상기 화상은 복수의 타일들을 포함하는, 상기 미디어 파일을 획득하는 것을 행하고;
    상기 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 상기 화상의 데이터로부터 상기 뷰포트 영역에 대응하는 픽셀들을 추출하며; 그리고
    디스플레이를 위해 상기 뷰포트 영역을 렌더링하기 위해 상기 픽셀들을 제공하도록
    구성된 프로세서를 포함하고,
    상기 제 2 시그널링 정보는 상기 복수의 타일들 중 타일들의, 상기 뷰포트 영역을 포함하는, 최소 셋트를 식별하고, 그리고
    상기 최소 셋트는 상기 복수의 타일들 중, 상기 뷰포트 영역에 대응하는 상기 픽셀들의 전부를 포함하는 타일들의 가장 적은 셋트인, 비디오 데이터를 프로세싱하기 위한 장치.
  20. 제 19 항에 있어서,
    상기 프로세서는 추가적으로, 상기 제 1 시그널링 정보로부터, 상기 장면의 상기 구면 표현의 구면 센터에 대한 상기 뷰포트 영역의 센터의 제 1 각도 및 제 2 각도를 결정하도록 구성되고, 상기 제 1 각도는 제 1 평면 상에 형성되고, 상기 제 2 각도는 제 2 평면 상에 형성되며, 상기 제 1 평면은 상기 제 2 평면에 대해 수직인, 비디오 데이터를 프로세싱하기 위한 장치.
  21. 제 19 항에 있어서,
    상기 프로세서는 추가적으로, 상기 제 1 시그널링 정보로부터, 상기 뷰포트 영역의 폭과 연관된 제 3 각도 및 상기 뷰포트 영역의 높이와 연관된 제 4 각도를 결정하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  22. 제 20 항에 있어서,
    상기 제 3 각도는 상기 뷰포트 영역의 제 1 에지와 제 2 에지 사이에 형성되고; 상기 제 4 각도는 상기 뷰포트 영역의 제 3 에지와 제 4 에지 사이에 형성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  23. 제 19 항에 있어서,
    상기 ROI 는 상기 구면 표현과 교차하는 적어도 4 개의 평면들에 의해 정의되고; 상기 4 개의 평면들의 각각은 상기 구면 센터와 또한 교차하는, 비디오 데이터를 프로세싱하기 위한 장치.
  24. 제 23 항에 있어서,
    상기 프로세서는 추가적으로, 상기 적어도 4 개의 평면들의 상기 구면 표현과의 교차에 기초하여 상기 뷰포트 영역의 형상을 결정하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  25. 제 24 항에 있어서,
    상기 프로세서는 상기 형상에 기초하여 상기 뷰포트 영역에 대응하는 상기 픽셀들을 추출하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  26. 제 19 항에 있어서,
    상기 픽셀들을 추출하도록 구성된 상기 프로세서는, 식별된 상기 최소 셋트 내에서 상기 뷰포트의 경계를 결정하기 위해 상기 제 1 시그널링 정보를 이용하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  27. 제 19 항에 있어서,
    상기 프로세서는 추가적으로, 상기 제 2 시그널링 정보로부터, 상기 화상에서의 하나 이상의 상기 타일들과 연관된 하나 이상의 좌표들을 결정하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  28. 제 19 항에 있어서,
    하나 이상의 상기 타일들은 타일 그룹을 형성하고,
    상기 프로세서는 추가적으로, 상기 제 2 시그널링 정보로부터, 상기 타일 그룹과 연관된 그룹 식별자를 결정하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  29. 제 19 항에 있어서,
    상기 복수의 타일들은 모션-제약된 타일들인, 비디오 데이터를 프로세싱하기 위한 장치.
  30. 제 19 항에 있어서,
    상기 프로세서는 추가적으로, 상기 제 2 시그널링 정보로부터, 상기 ROI 를 평면 상에 투영함으로써 형성된 뷰포트 영역 내의 미리결정된 로케이션, 상기 뷰포트 영역의 폭, 및 상기 뷰포트 영역의 높이와 연관된 픽셀 좌표들을 결정하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  31. 제 19 항에 있어서,
    상기 미디어 파일은 국제 표준 기구 (ISO) 베이스 미디어 파일 포맷 (ISOBMFF) 에 기초하는, 비디오 데이터를 프로세싱하기 위한 장치.
  32. 제 31 항에 있어서,
    상기 미디어 파일은 상기 장면의 상기 구면 표현에 대응하는 비디오 샘플을 포함하는 샘플 그룹을 식별하고; 그리고
    상기 프로세서는 추가적으로, 상기 샘플 그룹의 하나 이상의 신택스 엘리먼트들로부터, 상기 제 1 시그널링 정보 및 상기 제 2 시그널링 정보를 추출하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  33. 제 19 항에 있어서,
    상기 미디어 파일은, 미디어 프리젠테이션 디스크립션 (MPD) 포맷에 기초하고, 하나 이상의 적응 셋트들을 포함하고;
    상기 하나 이상의 적응 셋트들의 각각은 하나 이상의 표현들을 포함하며; 그리고
    상기 프로세서는 추가적으로,
    상기 하나 이상의 표현들에 포함된 상기 ROI 와 연관된 하나 이상의 엘리먼트들에 기초하여, 상기 제 1 시그널링 정보, 상기 제 2 시그널링 정보, 및 상기 화상에 대한 링크를 결정하고; 그리고
    상기 미디어 파일에 포함된 상기 링크에 기초하여 상기 화상을 획득하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  34. 제 33 항에 있어서,
    상기 하나 이상의 표현들은 타일-기반 표현들이고,
    상기 프로세서는, 상기 제 2 시그널링 정보에 기초하여, 상기 타일-기반 표현들에 포함된 상기 ROI 를 포함하는 타일들과 연관된 식별자들을 결정하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  35. 제 19 항에 있어서,
    상기 장면의 상기 구면 표현은 직선형 투영을 이용하여 상기 평면 상으로 투영되는, 비디오 데이터를 프로세싱하기 위한 장치.
  36. 제 19 항에 있어서,
    상기 프로세서는 추가적으로, 상기 제 1 시그널링 정보 및 상기 제 2 시그널링 정보에 기초하여 상기 화상으로부터 다수의 ROI 들의 픽셀들을 추출하도록 구성되는, 비디오 데이터를 프로세싱하기 위한 장치.
  37. 제 19 항에 있어서,
    상기 장치는 상기 360-도 비디오 데이터를 캡처하기 위한 하나 이상의 카메라들을 갖는 모바일 디바이스를 포함하는, 비디오 데이터를 프로세싱하기 위한 장치.
  38. 제 19 항에 있어서,
    상기 장치는 상기 뷰포트 영역을 렌더링하기 위한 디스플레이를 포함하는, 비디오 데이터를 프로세싱하기 위한 장치.
  39. 명령들을 저장한 비-일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    360-도 비디오 데이터와 연관된 미디어 파일을 획득하는 것으로서, 상기 360-도 비디오 데이터는 장면의 구면 표현을 포함하고, 상기 미디어 파일은 상기 구면 표현에서의 관심 영역 (region of interest; ROI) 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하고, 상기 제 1 시그널링 정보는 상기 구면 표현과 연관된 구면 공간에서 측정된 상기 뷰포트 영역의 센터 포지션 및 치수를 포함하고, 상기 제 2 시그널링 정보는 상기 ROI 를 포함하는 상기 구면 표현을 평면 상으로 투영함으로써 형성되는 화상의, 상기 뷰포트 영역을 포함하는 영역을 나타내며, 상기 화상은 복수의 타일들을 포함하는, 상기 미디어 파일을 획득하는 것을 행하게 하고;
    상기 제 1 시그널링 정보 및 제 2 시그널링 정보에 기초하여 상기 화상의 데이터로부터 상기 뷰포트 영역에 대응하는 픽셀들을 추출하게 하며; 그리고
    디스플레이를 위해 상기 뷰포트 영역을 렌더링하기 위해 상기 픽셀들을 제공하게 하며,
    상기 제 2 시그널링 정보는 상기 복수의 타일들 중 타일들의, 상기 뷰포트 영역을 포함하는, 최소 셋트를 식별하고, 그리고
    상기 최소 셋트는 상기 복수의 타일들 중, 상기 뷰포트 영역에 대응하는 상기 픽셀들의 전부를 포함하는 타일들의 가장 적은 셋트인, 비-일시적 컴퓨터 판독가능 저장 매체.
  40. 비디오 데이터를 프로세싱하는 방법으로서,
    상기 방법은,
    장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하는 단계;
    상기 장면의 상기 구면 표현에서 관심 영역 (region of interest; ROI) 을 결정하는 단계;
    상기 ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 단계로서, 상기 제 1 시그널링 정보는 상기 구면 표현과 연관된 구면 공간에서 측정된 상기 뷰포트 영역의 센터 포지션 및 치수를 포함하고, 상기 제 2 시그널링 정보는 상기 ROI 를 포함하는 상기 구면 표현을 평면 상으로 투영함으로써 형성되는 화상의, 상기 뷰포트 영역을 포함하는 영역을 나타내며, 상기 화상은 복수의 타일들을 포함하는, 상기 미디어 파일을 생성하는 단계; 및
    상기 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 상기 ROI 를 포함하는 상기 360-도 비디오 데이터의 부분의 송신을 위해 상기 미디어 파일을 제공하는 단계를 포함하고,
    상기 제 2 시그널링 정보는 상기 복수의 타일들 중 타일들의, 상기 뷰포트 영역을 포함하는, 최소 셋트를 식별하고, 그리고
    상기 최소 셋트는 상기 복수의 타일들 중, 상기 뷰포트 영역에 대응하는 픽셀들의 전부를 포함하는 타일들의 가장 적은 셋트인, 비디오 데이터를 프로세싱하는 방법.
  41. 비디오 데이터를 프로세싱하기 위한 장치로서,
    360-도 비디오 데이터를 저장하도록 구성된 메모리; 및
    장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하고;
    상기 장면의 상기 구면 표현에서 관심 영역 (region of interest; ROI) 을 결정하며;
    상기 ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 것으로서, 상기 제 1 시그널링 정보는 상기 구면 표현과 연관된 구면 공간에서 측정된 상기 뷰포트 영역의 센터 포지션 및 치수를 포함하고, 상기 제 2 시그널링 정보는 상기 ROI 를 포함하는 상기 구면 표현을 평면 상으로 투영함으로써 형성되는 화상의, 상기 뷰포트 영역을 포함하는 영역을 나타내며, 상기 화상은 복수의 타일들을 포함하는, 상기 미디어 파일을 생성하는 것을 행하고; 그리고
    상기 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 상기 ROI 를 포함하는 상기 360-도 비디오 데이터의 부분의 송신을 위해 상기 미디어 파일을 제공하도록
    구성된 프로세서를 포함하고,
    상기 제 2 시그널링 정보는 상기 복수의 타일들 중 타일들의, 상기 뷰포트 영역을 포함하는, 최소 셋트를 식별하고, 그리고
    상기 최소 셋트는 상기 복수의 타일들 중, 상기 뷰포트 영역에 대응하는 픽셀들의 전부를 포함하는 타일들의 가장 적은 셋트인, 비디오 데이터를 프로세싱하기 위한 장치.
  42. 명령들을 저장한 비-일시적 컴퓨터 판독가능 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    장면의 구면 표현을 포함하는 360-도 비디오 데이터를 획득하게 하고;
    상기 장면의 상기 구면 표현에서 관심 영역 (region of interest; ROI) 을 결정하게 하며;
    상기 ROI 에 대응하는 뷰포트 영역의 제 1 시그널링 정보 및 제 2 시그널링 정보를 포함하는 미디어 파일을 생성하는 것으로서, 상기 제 1 시그널링 정보는 상기 구면 표현과 연관된 구면 공간에서 측정된 상기 뷰포트 영역의 센터 포지션 및 치수를 포함하고, 상기 제 2 시그널링 정보는 상기 ROI 를 포함하는 상기 구면 표현을 평면 상으로 투영함으로써 형성되는 화상의, 상기 뷰포트 영역을 포함하는 영역을 나타내며, 상기 화상은 복수의 타일들을 포함하는, 상기 미디어 파일을 생성하는 것을 행하게 하고; 그리고
    상기 360-도 비디오 데이터를 렌더링하기 위해 또는 적어도 상기 ROI 를 포함하는 상기 360-도 비디오 데이터의 부분의 송신을 위해 상기 미디어 파일을 제공하게 하며,
    상기 제 2 시그널링 정보는 상기 복수의 타일들 중 타일들의, 상기 뷰포트 영역을 포함하는, 최소 셋트를 식별하고, 그리고
    상기 최소 셋트는 상기 복수의 타일들 중, 상기 뷰포트 영역에 대응하는 픽셀들의 전부를 포함하는 타일들의 가장 적은 셋트인, 비-일시적 컴퓨터 판독가능 저장 매체.
KR1020197016344A 2016-12-07 2017-12-01 관심 영역들의 시그널링의 시스템들 및 방법들 KR102204178B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662431375P 2016-12-07 2016-12-07
US62/431,375 2016-12-07
US15/828,281 US10652553B2 (en) 2016-12-07 2017-11-30 Systems and methods of signaling of regions of interest
US15/828,281 2017-11-30
PCT/US2017/064349 WO2018106548A1 (en) 2016-12-07 2017-12-01 Systems and methods of signaling of regions of interest

Publications (2)

Publication Number Publication Date
KR20190091275A KR20190091275A (ko) 2019-08-05
KR102204178B1 true KR102204178B1 (ko) 2021-01-15

Family

ID=62243662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197016344A KR102204178B1 (ko) 2016-12-07 2017-12-01 관심 영역들의 시그널링의 시스템들 및 방법들

Country Status (8)

Country Link
US (1) US10652553B2 (ko)
EP (1) EP3552394A1 (ko)
JP (1) JP6799159B2 (ko)
KR (1) KR102204178B1 (ko)
CN (1) CN110024400B (ko)
BR (1) BR112019010875A2 (ko)
TW (1) TWI712313B (ko)
WO (1) WO2018106548A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017036953A1 (en) * 2015-09-02 2017-03-09 Thomson Licensing Method, apparatus and system for facilitating navigation in an extended scene
US10560660B2 (en) * 2017-01-04 2020-02-11 Intel Corporation Rectilinear viewport extraction from a region of a wide field of view using messaging in video transmission
US10742999B2 (en) * 2017-01-06 2020-08-11 Mediatek Inc. Methods and apparatus for signaling viewports and regions of interest
WO2018131813A1 (en) * 2017-01-10 2018-07-19 Samsung Electronics Co., Ltd. Method and apparatus for generating metadata for 3d images
US10560680B2 (en) * 2017-01-28 2020-02-11 Microsoft Technology Licensing, Llc Virtual reality with interactive streaming video and likelihood-based foveation
US11277635B2 (en) * 2017-03-17 2022-03-15 Vid Scale, Inc. Predictive coding for 360-degree video based on geometry padding
CN110651476B (zh) 2017-03-17 2023-12-01 Vid拓展公司 基于几何图形填充的用于360度视频的预测编码
US10643301B2 (en) * 2017-03-20 2020-05-05 Qualcomm Incorporated Adaptive perturbed cube map projection
KR102277267B1 (ko) * 2017-03-29 2021-07-14 엘지전자 주식회사 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
US10506255B2 (en) * 2017-04-01 2019-12-10 Intel Corporation MV/mode prediction, ROI-based transmit, metadata capture, and format detection for 360 video
WO2019006336A1 (en) * 2017-06-30 2019-01-03 Vid Scale, Inc. SPHEREALLY UNIFORM WEIGHTED PSNR FOR 360-DEGREE VIDEO QUALITY ASSESSMENT USING PROJECTIONS BASED ON CUBIC MAPPING
WO2019007477A1 (en) * 2017-07-03 2019-01-10 Telefonaktiebolaget Lm Ericsson (Publ) 360-DEGREE PERSONALIZED VIDEO DISTRIBUTION METHODS
US10217488B1 (en) 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
US20190385372A1 (en) * 2018-06-15 2019-12-19 Microsoft Technology Licensing, Llc Positioning a virtual reality passthrough region at a known distance
US11032590B2 (en) 2018-08-31 2021-06-08 At&T Intellectual Property I, L.P. Methods, devices, and systems for providing panoramic video content to a mobile device from an edge server
US10826964B2 (en) 2018-09-05 2020-11-03 At&T Intellectual Property I, L.P. Priority-based tile transmission system and method for panoramic video streaming
US10779014B2 (en) 2018-10-18 2020-09-15 At&T Intellectual Property I, L.P. Tile scheduler for viewport-adaptive panoramic video streaming
US11184461B2 (en) 2018-10-23 2021-11-23 At&T Intellectual Property I, L.P. VR video transmission with layered video by re-using existing network infrastructures
CN113966600A (zh) * 2019-05-20 2022-01-21 弗劳恩霍夫应用研究促进协会 沉浸式媒体内容呈现和交互式360°视频通信
US11190786B2 (en) * 2019-09-24 2021-11-30 At&T Intellectual Property I, L.P. Transcoding ultra-high-definition panoramic videos
CN110618398B (zh) 2019-09-24 2020-09-29 深圳市拜洛克科技有限公司 基于uwb定位技术控制粉丝棒发光的方法
CN112511866B (zh) * 2019-12-03 2024-02-23 中兴通讯股份有限公司 媒体资源播放方法、装置、设备和存储介质
US11816757B1 (en) * 2019-12-11 2023-11-14 Meta Platforms Technologies, Llc Device-side capture of data representative of an artificial reality environment
US11991376B2 (en) * 2020-04-09 2024-05-21 Intel Corporation Switchable scalable and multiple description immersive video codec
KR102412410B1 (ko) * 2020-07-14 2022-06-23 성균관대학교산학협력단 타일 기반 360도 영상 전송 방법 및 장치
CN112163990B (zh) * 2020-09-08 2022-10-25 上海交通大学 360度图像的显著性预测方法及***
CN112055263B (zh) * 2020-09-08 2021-08-13 西安交通大学 基于显著性检测的360°视频流传输***
CN112511896A (zh) * 2020-11-05 2021-03-16 浙江大华技术股份有限公司 一种视频渲染方法及装置
EP4064691A1 (en) * 2021-03-23 2022-09-28 Ricoh Company, Ltd. Communication management device, image communication system, communication management method, and carrier means
US20230019723A1 (en) * 2021-07-14 2023-01-19 Rovi Guides, Inc. Interactive supplemental content system
CN113470127B (zh) * 2021-09-06 2021-11-26 成都国星宇航科技有限公司 基于星载云检测的光学图像有效压缩方法
JPWO2023058258A1 (ko) * 2021-10-05 2023-04-13
US11893699B2 (en) 2022-03-15 2024-02-06 Zeality Inc Method and processing unit for providing content in a bandwidth constrained environment

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003141562A (ja) * 2001-10-29 2003-05-16 Sony Corp 非平面画像の画像処理装置及び画像処理方法、記憶媒体、並びにコンピュータ・プログラム
US7103212B2 (en) * 2002-11-22 2006-09-05 Strider Labs, Inc. Acquisition of three-dimensional images by an active stereo technique using locally unique patterns
US9344612B2 (en) * 2006-02-15 2016-05-17 Kenneth Ira Ritchey Non-interference field-of-view support apparatus for a panoramic facial sensor
US9025933B2 (en) * 2010-02-12 2015-05-05 Sony Corporation Information processing device, information processing method, playback device, playback method, program and recording medium
CN103096014B (zh) * 2011-10-28 2016-03-30 华为技术有限公司 一种视频呈现方法和***
KR102107270B1 (ko) * 2013-07-15 2020-05-06 소니 주식회사 상호작용성을 위한 모션-구속된 타일 세트들 sei 메시지의 확장들
CN106233745B (zh) * 2013-07-29 2021-01-15 皇家Kpn公司 向客户端提供瓦片视频流
US9497358B2 (en) * 2013-12-19 2016-11-15 Sony Interactive Entertainment America Llc Video latency reduction
US10694192B2 (en) * 2014-06-27 2020-06-23 Koninklijke Kpn N.V. HEVC-tiled video streaming
KR101953679B1 (ko) * 2014-06-27 2019-03-04 코닌클리즈케 케이피엔 엔.브이. Hevc-타일드 비디오 스트림을 기초로 한 관심영역 결정
US10291561B2 (en) * 2015-02-09 2019-05-14 Nokia Technologies Oy Apparatus, a method and a computer program for image coding and decoding
JP6566698B2 (ja) * 2015-04-13 2019-08-28 キヤノン株式会社 表示制御装置および表示制御方法
US10977764B2 (en) * 2015-12-29 2021-04-13 Dolby Laboratories Licensing Corporation Viewport independent image coding and rendering
WO2017203098A1 (en) * 2016-05-24 2017-11-30 Nokia Technologies Oy Method and an apparatus and a computer program for encoding media content
US10360721B2 (en) * 2016-05-26 2019-07-23 Mediatek Inc. Method and apparatus for signaling region of interests
WO2018068213A1 (zh) * 2016-10-10 2018-04-19 华为技术有限公司 一种视频数据的处理方法及装置
US10917564B2 (en) * 2016-10-12 2021-02-09 Qualcomm Incorporated Systems and methods of generating and processing files for partial decoding and most interested regions

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Emmanuel Thomas et al, "Projection-independent ROI signalling for spherical content", 116 MPEG meeting, 2016.10.17. - 2016.10.21., Chengdu, CN, m39424*
Miska M. Hannuksela,"Technologies under Consideration for ISOBMFF", 116 MPEG meeting, 2016.10.17. - 2016.10.21., Chengdu, CN, m39565*
Ye-Kui Wang et al, "Viewport dependent processing in VR: partial video decoding", 115 MPEG meeting, 2016.05.30. - 2016.06.03., Geneva, CH, m38559*

Also Published As

Publication number Publication date
JP6799159B2 (ja) 2020-12-09
TW201824865A (zh) 2018-07-01
US10652553B2 (en) 2020-05-12
KR20190091275A (ko) 2019-08-05
WO2018106548A1 (en) 2018-06-14
CN110024400A (zh) 2019-07-16
CN110024400B (zh) 2021-08-24
US20180160123A1 (en) 2018-06-07
BR112019010875A2 (pt) 2019-10-01
JP2020501436A (ja) 2020-01-16
TWI712313B (zh) 2020-12-01
EP3552394A1 (en) 2019-10-16

Similar Documents

Publication Publication Date Title
KR102204178B1 (ko) 관심 영역들의 시그널링의 시스템들 및 방법들
US10917564B2 (en) Systems and methods of generating and processing files for partial decoding and most interested regions
US11062738B2 (en) Signalling of video content including sub-picture bitstreams for video coding
US10620441B2 (en) Viewport-aware quality metric for 360-degree video
KR102185811B1 (ko) 컨테이너 파일들 및 비디오 비트스트림들의 관심 영역들의 강화된 시그널링
KR102503598B1 (ko) 가상 현실에서의 원형 어안 비디오
US11532128B2 (en) Advanced signaling of regions of interest in omnidirectional visual media
JP6676771B2 (ja) メディアファイルにおけるバーチャルリアリティビデオの記憶

Legal Events

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