KR102331041B1 - 3차원 이미지에 관한 데이터를 전송하기 위한 방법 - Google Patents

3차원 이미지에 관한 데이터를 전송하기 위한 방법 Download PDF

Info

Publication number
KR102331041B1
KR102331041B1 KR1020170175049A KR20170175049A KR102331041B1 KR 102331041 B1 KR102331041 B1 KR 102331041B1 KR 1020170175049 A KR1020170175049 A KR 1020170175049A KR 20170175049 A KR20170175049 A KR 20170175049A KR 102331041 B1 KR102331041 B1 KR 102331041B1
Authority
KR
South Korea
Prior art keywords
image
regions
region
information
information indicating
Prior art date
Application number
KR1020170175049A
Other languages
English (en)
Other versions
KR20180109655A (ko
Inventor
에릭 입
우지환
최병두
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to CN201880022470.4A priority Critical patent/CN110495181A/zh
Priority to US16/498,067 priority patent/US10791316B2/en
Priority to PCT/KR2018/001286 priority patent/WO2018182161A1/ko
Priority to EP18776566.4A priority patent/EP3606084A1/en
Publication of KR20180109655A publication Critical patent/KR20180109655A/ko
Application granted granted Critical
Publication of KR102331041B1 publication Critical patent/KR102331041B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

서버에 의해, 전방향(omnidirectional) 이미지에 관한 데이터를 전송하기 위한 방법이 제공된다. 상기 방법은, 단말로부터 상기 단말의 뷰포트에 관한 정보를 수신하는 과정, 상기 뷰포트에 관한 정보 및 상기 전방향 이미지와 관련된 복수의 트랙들 각각의 품질에 기초하여, 상기 복수의 트랙들 중 적어도 하나의 트랙을 선택하는 과정, 및 상기 선택된 적어도 하나의 트랙에 대한 데이터를 상기 단말로 전송하는 과정을 포함한다.

Description

3차원 이미지에 관한 데이터를 전송하기 위한 방법{METHOD AND APPARATUS FOR TRANSMITTING DATA RELATED TO 3 DIMENSIONAL IMAGE}
본 발명은 3-차원(3-dimensional, 3D) 이미지에 관한 데이터를 전송하기 위한 방법 및 장치에 관한 것이다.
가상 현실(virtual reality: VR) 또는 증강 현실(augmented reality: AR)과 관련된 기술의 발달에 따라, VR 또는 AR을 제공할 수 있는 디바이스에서 디스플레이하기 위한 3D 이미지(또는 전방향(omnidirectional) 이미지)의 프로세싱 및 전송과 관련된 기술들 또한 향상되고 있다.
VR 디바이스 착용자에게 모든 방향들의 이미지를 제공하기 위해, 모든 방향들의 이미지에 관한 데이터를 포함하는 3D 이미지에 관한 데이터의 크기는 매우 클 수 있다. 따라서, 3D 이미지에 관한 데이터를 전송하는 것은 데이터의 크기로 인하여 전송 시스템에 대한 부하(load)를 가중시킬 수 있다. 특히, 3D 이미지에 관한 데이터의 크기는 실시간으로 3D 이미지를 제공하고자 하는 데 있어 큰 제약이 될 수 있다.
3D 이미지와 관련된 데이터의 전송량을 감소시키기 위해, 서버는 3D 이미지와 관련된 상이한 정보를 포함하는 다수의 트랙들을 생성할 수 있으며, 다수의 트랙들 중 선택된 적어도 하나의 트랙에 관한 데이터만을 단말(예를 들어, VR 디바이스)로 전송할 수 있다. 이러한 경우, 3D 이미지에 관한 데이터의 전송 및 프로세싱의 효율을 향상시키기 위한, 다수의 트랙들을 구성하는 방법 및 다수의 트랙들 중 전송하기 위한 적어도 하나의 트랙을 선택하기 위한 방법이 요구된다.
또한, 3D 이미지와 관련된 데이터의 전송량을 감소시키기 위해, 3D 이미지의 모든 영역에 관한 데이터가 균일한 품질로 구성되는 것이 아니라, 상이한 품질들이 혼합되도록 구성될 수 있다. 따라서, 3D 이미지와 관련된 데이터에서 품질 정보를 설정하고 활용하기 위한 효율적인 방법이 요구된다.
이에 본 발명이 해결하고자 하는 과제는, 3D 이미지에 관한 다수의 트랙들을 구성하고, 그리고 다수의 트랙들 중 전송하기 위한 적어도 하나의 트랙을 선택하기 위한 방법 및 장치를 제공하고자 하는 것이다.
본 발명이 해결하고자 하는 다른 과제는, 3D 이미지와 관련된 데이터에서 품질 정보를 설정하고 활용하기 위한 방법 및 장치를 제공하고자 하는 것이다.
본 발명의 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 서버에 의해, 전방향(omnidirectional) 이미지에 관한 데이터를 전송하기 위한 방법은, 단말로부터 상기 단말의 뷰포트에 관한 정보를 수신하는 과정, 상기 뷰포트에 관한 정보 및 상기 전방향 이미지와 관련된 복수의 트랙들 각각의 품질에 기초하여, 상기 복수의 트랙들 중 적어도 하나의 트랙을 선택하는 과정, 및 상기 선택된 적어도 하나의 트랙에 대한 데이터를 상기 단말로 전송하는 과정을 포함한다.
본 발명의 다른 실시예에 따른 전방향(omnidirectional) 이미지에 관한 데이터를 전송하기 위한 서버는, 통신 인터페이스, 및 상기 통신 인터페이스에 연결된 프로세서를 포함하고, 상기 프로세서는, 단말로부터 상기 단말의 뷰포트에 관한 정보를 수신하고, 상기 뷰포트에 관한 정보 및 상기 전방향 이미지와 관련된 복수의 트랙들 각각의 품질에 기초하여, 상기 복수의 트랙들 중 적어도 하나의 트랙을 선택하고, 그리고 상기 선택된 적어도 하나의 트랙에 대한 데이터를 상기 단말로 전송하도록 구성된다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시예들에 의하면 적어도 다음과 같은 효과가 있다.
즉, 3D 이미지에 관한 다수의 트랙들을 구성하고, 그리고 다수의 트랙들 중 전송하기 위한 적어도 하나의 트랙을 선택하기 위한 방법 및 장치를 제공할 수 있다.
또한, 3D 이미지와 관련된 데이터에서 품질 정보를 설정하고 활용하기 위한 방법 및 장치를 제공할 수 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 3D 이미지에 관한 데이터를 전송하기 위한 송신기의 시스템을 나타낸다.
도 2는 본 발명의 일 실시예에 따른 3D 이미지를 2이미지로 프로젝션하고, 프로젝션된 2D 이미지를 패킹하는 것을 나타낸다.
도 3은 본 발명의 일 실시예에 따른 3D 이미지에 관한 데이터를 수신하기 위한 수신기의 시스템을 나타낸다.
도 4는 본 발명의 일 실시예에 따른 서버와 단말의 동작을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 복수의 트랙들을 나타낸다.
도 6은 본 발명의 다른 실시예에 따른 복수의 트랙들을 나타낸다.
도 7은 본 발명의 또 다른 실시예에 따른 복수의 트랙들을 나타낸다.
도 8은 도 7의 복수의 복수의 트랙들에 의해 표현되는 2D 이미지를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 상이한 품질 영역들을 갖는 2D 이미지를 나타낸다.
도 10은 본 발명의 일 실시예에 따른 송신기의 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
비록 제 1, 제 2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제 1 구성요소는 본 발명의 기술적 사상 내에서 제 2 구성요소일 수도 있음은 물론이다.
도 1은 본 발명의 일 실시예에 따른 3D 이미지에 관한 데이터를 전송하기 위한 송신기의 시스템을 나타낸다.
도 1은 본 발명의 일 실시예에 따른 송신기의 시스템을 도시한다. 송신기는 3D 이미지와 관련된 데이터 또는 서비스를 제공하기 위한 서버일 수 있다. 여기서 3D 이미지는 동적 이미지 및 정적 이미지 모두를 지칭할 수 있다. 송신기는 3D 이미지를 생성하거나 또는 수신할 수 있다 (110). 송신기는 여러 방향에서 촬영된 다수의 카메라들로부터의 이미지들을 이어붙여(stitching) 3D 이미지를 생성할 수 있다. 송신기는 이미 만들어진 3D 이미지에 관한 데이터를 외부로부터 수신할 수도 있다. 3D 이미지는 구(sphere), 육면체(cube), 원통, 또는 8면체(octahedron) 중 어느 하나의 형태로 렌더링될 수 있으나, 서술된 3D 이미지의 형태는 예시적인 것이 불과하며, 해당 기술분야에서 이용가능한 다양한 형태의 3D 이미지가 생성 또는 수신될 수 있다.
송신기는 3D 이미지를 2D 이미지로 프로젝션 할 수 있다 (120). 3D 이미지를 2D 이미지로 프로젝션하기 위해, ERP(equirectangular projection), OHP(octahedron projection), 실린더 프로젝션, 큐브 프로젝션 및 해당 기술분야에서 이용가능한 다양한 프로젝션 방법들 중 어느 하나가 이용될 수 있다.
송신기는 프로젝션된 2D 이미지를 패킹(packing)할 수 있다(130). 패킹은 프로젝션된 2D 이미지를 구성하는 복수의 영역들 중 적어도 일부를, 변형 및/또는 재배치하여, 새로운 2D 이미지(즉, 패킹된 2D 이미지)를 생성하는 것을 의미할 수 있다. 여기서, 영역의 변형은 영역의 리사이징(resize), 형태 변환(transforming), 회전 및/또는 재-샘플링(re-sampling)(예를 들어, 업샘플링, 다운샘플링, 영역 내의 위치에 따른 차등 샘플링)등을 의미할 수 있다. 이러한 패킹 방식은 영역별(region-wise) 패킹으로 지칭될 수 있다.
이하 도 2를 참고하여, 프로젝션(120) 및 패킹(130)에 대하여 보다 상세히 설명하도록 한다. 도 2는 본 발명의 일 실시예에 따른 3D 이미지를 2이미지로 프로젝션하고, 프로젝션된 2D 이미지를 패킹하는 것을 나타낸다. 도 2 에서 예시적인 3D 이미지(210)는 구 형상을 가질 수 있다. 3D 이미지(210)를 예시적인 ERP 방식에 의해 프로젝션하여, 프로젝션된 2D 이미지(220)가 생성될 수 있다. 프로젝션된 2D 이미지(220)는 복수의 영역들(221, 222, 223, 224)로 분할될 수 있다. 프로젝션된 2D 이미지(220)를 분할하는 방법은 실시예들에 따라 다양하게 변경될 수 있다.
프로젝션된 2D 이미지(220)로부터 패킹된 2D 이미지(230)가 생성될 수 있다. 프로젝션된 2D 이미지(220)의 복수의 영역들(221, 222, 223, 224)을 변형 및 또는 재배치하는 것에 의해 패킹된 2D 이미지(230)가 생성될 수 있다. 패킹된 2D 이미지(230)의 복수의 영역들(231, 232, 233, 234) 각각은 프로젝션된 2D 이미지(220)의 복수의 영역들(221, 222, 223, 224)에 순차적으로 대응될 수 있다. 도 2에 도시된 패킹된 2D 이미지(230)의 복수의 영역들(231, 232, 233, 234)에 대한 변형 및 재배치는 예시적인 것에 불과하며, 실시예들에 따라 다양한 변형 및 재배치가 수행될 수 있다.
타일 영역(즉, 프로젝션된 2D 이미지의 복수의 영역들)을 표현하기 위해, TileRegionGroupEntry 가 사용될 수 있다. TileRegionGroupEntry의 신택스는 다음과 같다.
class TileRegionGroupEntry() extends VisualSampleGroupEntry ('trif')
{
unsigned int(16) groupID;
unsigned int(1) tile_region_flag;
if (!tile_region_flag)
bit(7) reserved = 0;
else {
unsigned int(2) independent_idc;
unsigned int(1) full_picture;
unsigned int(1) filtering_disabled;
unsigned int(1) has_dependency_list;
bit(2) reserved = 0;
if (!full_picture) {
unsigned int(16) horizontal_offset;
unsigned int(16) vertical_offset;
bit(7) reserved = 0;
unsigned int(1) omni_fov;
if (omni_fov) {
unsigned int(16) center_pitch;
unsigned int(16) center_yaw;
unsigned int(16) hor_range;
unsigned int(16) ver_range;
}
}
unsigned int(16) region_width;
unsigned int(16) region_height;
if (has_dependency_list) {
unsigned int(16) dependency_tile_count;
for (i=1; i<= dependency_tile_count; i++)
unsigned int(16) dependencyTileGroupID;
}
}
위 신택스의 파라미터들에 대한 시맨틱스(semantics)는 다음과 같다.
groupID - 이 샘플 그룹 엔트리에 의해 기술되는 타일 영역 그룹에 대한 고유의 식별자임. 타일 영역 그룹 엔트리 내의 groupID의 값은 0보다 커야 함. 0의 값은 특별한 사용을 위해 예비됨. 타입 'nalm'의 SampleToGroupBox 및 'trif'와 동일한 grouping_type_parameter가 존재하는 경우, 타입 'trif'의 SampleGroupDescriptionBox가 존재할 것이며, 다음이 적용됨.
- 타일 영역 그룹 엔트리 내의 groupID의 값은 NALUMapEntry의 엔트리들 중 하나의 groupID와 동일해야 함.
- NALUMapEntry에 의해 groupID 0에 맵핑되는 NAL(network abstraction layer) 유닛은 NAL 유닛이 이 NAL 유닛으로서 동일한 코딩된 픽처 내의 임의의 타일 영역을 디코딩하기 위해 요구된다는 것을 의미함.
(동일한 horizontal_offset, vertical_offset, region_width 및 region_height의 값들을 갖는 다수의 타일 영역 그룹 엔트리들이 존재할 수 있으나, 다양한 의존성들(dependencies)을 기술하기 위해, 상기 다수의 타일 영역 그룹 엔트리들은 상이한 그룹 ID 값들을 가질 수 있음)
tile_region_flag - 1의 값의 tile_region_flag는 픽처 내의 NAL 유닛들에 의해 커버되고 해당 타일 영역 그룹 엔트리와 연관되는 영역이 타일 영역이며, 타일 영역의 추가적인 정보가 해당 타일 영역 그룹 엔트리 내의 후속하는 필드를에 의해 제공됨을 특정함. 0의 값은 픽처 내의 NAL 유닛들에 의해 커버되고 해당 타일 영역 그룹 엔트리와 연관되는 영역이 타일 영역이 아니며, 영역의 추가적인 정보가 해당 타일 영역 그룹 엔트리 내에서 제공되지 않음을 특정함. 멀티-계층(multi-layer) 비트스트림이 하나 이상의 트랙들에서 반송되는 경우, 비트스트림의 임의의 두 계층들 layerA 및 layerB에 대하여 다음의 제약이 적용됨. layerA의 NAL 유닛이 대응하는 tile_region_flag가 1과 동일한 groupID 값 gIdA와 연관되고, 그리고 layerB의 NAL 유닛이 대응하는 tile_region_flag가 1과 동일한 groupID 값 gIdB와 연관되는 경우, gIdA와 gIdB는 동일해서는 안됨.
independent_idc - 해당 타일 영역 그룹 엔트리와 연관되는 각각의 타일 영역과 동일한 픽처 또는 동일한 계층의 기준(reference) 픽처들 내의 다른 타일 영역들 사이의 코딩 의존성들을 특정함. 계층간(inter-layer) 의존성들은 (has_dependency_list가 1과 동일한 경우) dependencyTileGroupID의 리스트에 의해 나타내어짐. 이 필드는 다음과 값들을 가짐.
- independent_idc가 0과 동일한 경우, 이 타일 영역과 동일한 픽처 또는 동일한 계층의 기준 픽처들 내의 다른 타일 영역들 사이의 코딩 의존성들이 (has_dependency_list가 1과 동일한 경우) dependencyTileGroupID의 리스트 또는 (has_dependency_list가 0과 동일한 경우) 미지의 것(unknown) 중 어느 하나에 의해 기술됨.
- independent_idc가 1과 동일한 경우, 이 타일 영역과 동일한 계층의 임의의 기준 픽처들 내의 상이한 groupID를 갖는 타일 영역들 사이에 일시적인 의존성들이 존재하지 않으나, 이 타일 영역과 동일한 계층의 참조 픽처 내의 동일한 gruopID를 갖는 타일 영역 사이에 코딩 의존성들이 존재할 수 있음.
- independent_idc가 2와 동일한 경우, 이 타일 영역과 동일한 계층의 기준 픽처 내의 임의의 타일 영역 사이에 코딩 의존성들이 존재하지 않음.
- 3의 값은 예비됨.
full_picture - 설정되는 경우, 이 타일 영역 그룹 엔트리가 완전한 픽처임을 나타냄. , region_width 및 region_height가 완전한 픽처의 폭 및 높이로 각각 설정되어야 하며, independent_idc는 1 또는 2로 설정되어야 함.
filtering_disabled - 설정되는 경우, 이 타일 영역 그룹 엔트리와 연관되는 각각의 타일 영역에 대해, 루프 내(in-loop) 필터링 동작이 이 타일 영역에 인접한 필셀들로의 액세스를 요구하지 않음을 나타냄. 즉, 타일 영역의 비트-정확한(bit-exact) 재구성(reconstruction)이 인접 타일들을 디코딩하지 않고 가능함.
has_dependency_list - 1로 설정되는 경우, dependency_tile_count가 0을 초과하는 경우, dependency_tile_count 및 dependencyTileGroupID의 리스트가 존재한다는 것을 나타냄. 0으로 설정되는 경우, dependency_tile_count는 존재하지 않으며, 어떠한 dependencyTileGroupID도 존재하지 않음.
horizontal_offset 및 vertical_offset - 루마(luma) 샘플들에서, 기본 영역의 좌상측(top-left) 픽셀에 대한, 이 타일 영역 그룹 엔트리와 연관되는 각각의 타일 영역 내의 타일들에 의해 커버되는 사각형 영역의 좌상측 픽셀의 각각 수평 및 수직 오프셋들을 나타냄. HEVC(High Efficiency Video Coding) 및 L-HEVC 타일 트랙들에 대하여, TileRegionGroupEntry 내에서 사용되는 기본 영역은 이 타일 영역 그룹 엔트리와 연관되는 타일 영역 내의 타일들이 속하는 픽처임.
omni_fov - 설정되는 경우, 전방향 비디오에 대한 (구의 표면 상의) 특정한 FOV(field of view)에 대응하는 이 타일 영역 그룹 엔트리와 연관되는 각각의 타일 영역을 나타냄. 이 경우 OMAF(Omnidirectional Media Application Format) 에서 정의된 대로, center_pitch, center_yaw, hor_range 및 ver_range 가 특정됨.
center_pitch[i] 및 center_yaw[i] - ProjectionOreintationBox(3D 이미지의 배향을 나타냄)를 통해 특정되는 좌표계에 대하여, 0.01도의 단위로, i 번째 영역에 의해 표현되는 구 영역의 중심 점을 특정함. center_yaw는 -18000 내지 17999의 범위 내에 있고, center_pitch는 -9000 내지 9000의 범위 내에 있음.
hor_range 및 ver_range - 0.01 도의 단위로, 각각 i 번째 영역의 수직 및 수평 범위를 나타냄. hor_range 및 ver_range는 i 번째 영역의 중심 점을 통하는 범위를 특정함. hor_range는 1 내지 36000의 범위 내에 있고, ver_range는 1 내지 18000의 범위 내에 있음. center_pitch + ver_range / 2 는 9000 보다 커서는 안됨. center_pitch - ver_range ÷ 2 는 -9000보다 작아서는 안됨.
OMAF에서의 프로젝션 포맷이 직사각형 프로젝션인 경우, i 번째 사각형 영역에 의해 표현되는 구 영역은 두 개의 요우 원들 및 두 개의 피치 원들에 의해 특정되는 영역임.
region_width 및 region_height - 이 타일 영역 그룹 엔트리와 연관되는 각각의 타일 영역 내의 타일들에 의해 커버되는 직사각형 영역의 각각 폭 및 높이를 나타냄.
dependency_tile_count - 이 타일 영역 그룹 엔트리와 연관되는 각각의 타일 영역이 의존하는 타일 영역들의 수를 나타냄.
dependencyTileGroupID - 이 타일 그룹이 의존하는 (TileRegionGroupEntry에 의해 정의되는 것과 같은) 타일 영역의 groupID를 나타냄. 이 타일 그룹이 의존하는 타일 영역들은 동일한 계층 또는 기준 계층들로부터의 것들일 수 있음.
아래의 신택스(syntax)에 의해 표현되는 RectRegionPacking(i)는 프로젝션된 프레임의 소스 사각형 영역이 패킹된 프레임의 목적지 사각형 영역으로 패킹되는 방식을를 특정한다. 수평적 미러링 및 90, 180 또는 270 도의 회전이 표시될 수 있으며, 수직적 및 수평적 재샘플링(resampling)이 영역들의 폭 및 높이로부터 추론될 수 있다.
aligned(8) class RectRegionPacking(i) {
unsigned int(32) proj_reg_width[i];
unsigned int(32) proj_reg_height[i];
unsigned int(32) proj_reg_top[i];
unsigned int(32) proj_reg_left[i];
bit(7) reserved = 0;
unsigned int(1) fov_flag[i];
if(fov_flag == 1){
unsigned int(16) center_pitch[i];
unsigned int(16) center_yaw[i];
unsigned int(16) hor_range[i];
unsigned int(16) ver_range[i];
}
unsigned int(8) transform_type[i];
unsigned int(32) packed_reg_width[i];
unsigned int(32) packed_reg_height[i];
unsigned int(32) packed_reg_top[i];
unsigned int(32) packed_reg_left[i];
unsigned int (8) quality_ranking[i];
}
위의 신택스에서 사용된 파라미터들에 대한 시맨틱스(semantics)는 다음과 같다.
proj_reg_width[i] - 픽셀 단위로 프로젝션된 프레임의 i-번째 영역의 폭을 나타냄. proj_reg_width[i]는 0보다 큼.
proj_reg_height[i] - 픽셀 단위로 프로젝션된 프레임의 i-번째 영역의 높이을 나타냄. proj_reg_height[i]는 0보다 큼.
proj_reg_top[i] 및 proj_reg_left[i] - 각각 프로젝션된 2D 프레임의 i 번째 최상측 샘플 행 및 최좌측(left-most) 샘플 열을 나타냄. 상기 값들은 프로젝션된 프레임의 좌상측 모서리를 나타내는 0으로부터, 각각 proj_frame_height 및 proj_frame_width 까지의 범위를 가짐.
proj_reg_width[i] 및 proj_reg_left[i]는 proj_reg_width[i] + proj_reg_left[i]가 proj_frame_width 미만이도록 제한됨.
proj_reg_height[i] 및 proj_reg_top[i]는 proj_reg_height[i] + proj_reg_top[i]가 proj_frame_height 미만이도록 제한됨.
프로젝션된 프레임이 입체적(stereoscopic)인 경우, proj_reg_width[i], proj_reg_height[i], proj_reg_top[i] 및 proj_reg_left[i]는 프로젝션된 프레임 상의 이러한 값들에 의해 식별되는 영역이 프로젝션된 프레임의 단일의 구성요소(constituent) 프레임 내에 존재하도록 설정되어야 함.
fov_flag [i] - 1의 값의 fov_flag [i]는 FOV(field of view) 관련 파라미터들이 영역에 대하여 표시되는 것을 특정함.
center_pitch[i] 및 center_yaw[i] - ProjectionOreintationBox(3D 이미지의 배향을 나타냄)를 통해 특정되는 좌표계에 대하여, 0.01도의 단위로, i 번째 영역에 의해 표현되는 구 영역의 중심 점을 특정함. center_yaw는 -18000 내지 17999의 범위 내에 있고, center_pitch는 -9000 내지 9000의 범위 내에 있음.
hor_range 및 ver_range - 0.01 도의 단위로, 각각 i 번째 영역의 수직 및 수평 범위를 나타냄. hor_range 및 ver_range는 i 번째 영역의 중심 점을 통하는 범위를 특정함. hor_range는 1 내지 36000의 범위 내에 있고, ver_range는 1 내지 18000의 범위 내에 있음. center_pitch + ver_range / 2 는 9000 보다 커서는 안됨. center_pitch - ver_range ÷ 2 는 -9000보다 작아서는 안됨.
프로젝션 포맷이 직사각형(equirectangular) 프로젝션인 경우, i 번째 직사각형 영역에 의해 나타내어지는 구 영역은 두 개의 요우 원들과 두 개의 피치 원들에 의해 특정됨.
transform_type[i] - 패킹된 프레임으로 맵핑하기 위해 프로젝션된 프레임의 i-번째 영역에 적용된 회전 또는 미러링을 특정함. transform_type[i]가 회전 및 미러링을 모두 특정하는 경우, 미러링 이후에 회전이 적용됨. 다음과 같은 값들이 transform_type[i]에 사용될 수 있으며, 다른 값들은 예비됨(reserved).
0: 변환 없음
1: 수평적으로 미러링
2: 180 도 만큼 회전 (반시계 방향)
3: 수평적으로 미러링한 이후 180 도 만큼 회전(반시계 방향)
4: 수평적으로 미러링한 이후 900 도 만큼 회전(반시계 방향)
5: 90 도 만큼 회전 (반시계 방향)
6: 수평적으로 미러링한 이후 270 도 만큼 회전(반시계 방향)
7: 270 도 만큼 회전 (반시계 방향)
packed_reg_width[i], packed_reg_height[i], packed_reg_top[i], 및 packed_reg_left[i] - 각각 패킹된 프레임의 i-번째 영역의 폭, 높이 최상측 샘플 행, 최좌측 샘플 열을 특정함. packed_reg_width[i], packed_reg_height[i], packed_reg_top[i], 및 packed_reg_left[i]에 의해 특정되는 사각형은 packed_reg_width[j], packed_reg_height[j], packed_reg_top[j], 및 packed_reg_left[j]에 의해 특정되는 사각형과 중첩하지 않음. j는 0 부터 i-1 이하의 범위를 갖는 임의의 정수임.
quality_ranking[i] - 360 컨텐트(즉, 전체의 프로젝션된 프레임) 내의 다른 영역들에 대한 해당 영역의 품질 랭킹(즉, 품질 레벨)을 특정함. 품질 랭킹은 전달 및 렌더링 우선순위를 나타냄. 더 낮은 값들은 더 높은 품질 컨텐트를 나타냄. 1 내지 100의 값을 가짐. 0의 값의 quality_ranking은 랭킹이 정의되지 않음을 의미함.
아래의 신택스에 의해 표시되는 RegionWisePackingBox는 프로젝션된 프레임이 영역별로(region wise) 패킹되며, 렌더링하기 이전에 패킹해제(unpacking)되어야함을 나타낸다.
aligned(8) class RegionWisePackingBox extends Box('rwpk') {
RegionWisePackingStruct();
}
aligned(8) class RegionWisePackingStruct {
unsigned int(8) num_regions;
unsigned int(32) proj_frame_width;
unsigned int(32) proj_frame_height;
bit(7) reserved = 0;
unsigned int(1) fov_flag;
for (i = 0; i < num_regions; i++) {
if(fov_flag == 1){
unsigned int(16) center_pitch[i];
unsigned int(16) center_yaw[i];
unsigned int(16) hor_range[i];
unsigned int(16) ver_range[i];
}
quality_ranking [i];
bit(4) reserved = 0;
unsigned int(4) packing_type[i];
}
for (i = 0; i < num_regions; i++) {
if (packing_type[i] == 0)
RectRegionPacking(i);
else if (packing_type[i] == 1)
SphereRegionPacking(i);
}
}
상기 신택스의 파라미터들에 대한 시맨틱스는 다음과 같다.
num_regions - 패킹된 영역들의 수를 특정한다. 0의 값은 예비됨.
proj_frame_width 및 proj_frame_height - 각각 프로젝션된 프레임의 폭 및 높이를 특정함.
packing_type - 영역별 패킹의 타입을 특정한다. 0의 값의 packing_type은 사각형 영역별(rectangular region-wise) 패킹을 나타냄. 1의 값은 구 표면 영역별(sphere surface region-wise) 패킹을 나타냄.
quality_ranking[i] - 360 컨텐트(즉, 전체의 프로젝션된 프레임) 내의 다른 영역들에 대한 해당 영역의 품질 랭킹(즉, 품질 레벨)을 특정함. 품질 랭킹은 전달 및 렌더링 우선순위를 나타냄. 더 낮은 값들은 더 높은 품질 컨텐트를 나타냄. 1 내지 100의 값을 가짐. 0의 값의 quality_ranking은 랭킹이 정의되지 않음을 의미함.
fov_flag, center_pitch[i], center_yaw[i], hor_range[i], ver_range[i] - 앞서 RectRegionPacking에서의 설명과 동일함.
SphereRegionPacking - 구 표면 영역별 패킹이 사용되는 경우, 구 형상의 3D 이미지의 영역과 패킹된 2D 이미지의 영역과의 관계를 나타냄. SphereRegionPacking은 다음과 같은 신택스를 통해 표현될 수 있음.
aligned(8) class SphereRegionPacking(i) {
unsigned int(16) center_pitch[i];
unsigned int(16) center_yaw[i];
unsigned int(16) hor_range[i];
unsigned int(16) ver_range[i];
unsigned int(8) transform_type[i];
unsigned int(32) packed_reg_width[i];
unsigned int(32) packed_reg_height[i];
unsigned int(32) packed_reg_top[i];
unsigned int(32) packed_reg_left[i];
}
SphereRegionPacking의 파라미터들에 대한 시맨틱스는 다음과 같다.
center_pitch[i] 및 center_yaw[i] - ProjectionOreintationBox(3D 이미지의 배향을 나타냄)를 통해 특정되는 좌표계에 대하여, 0.01도의 단위로, i 번째 영역에 의해 표현되는 구 영역의 중심 점을 특정함. center_yaw는 -18000 내지 17999의 범위 내에 있고, center_pitch는 -9000 내지 9000의 범위 내에 있음.
hor_range 및 ver_range - 0.01 도의 단위로, 각각 i 번째 영역의 수직 및 수평 범위를 나타냄. hor_range 및 ver_range는 i 번째 영역의 중심 점을 통하는 범위를 특정함. hor_range는 1 내지 36000의 범위 내에 있고, ver_range는 1 내지 18000의 범위 내에 있음. center_pitch + ver_range / 2 는 9000 보다 커서는 안됨. center_pitch - ver_range ÷ 2 는 -9000보다 작아서는 안됨.
transform_type[i], packed_reg_width[i], packed_reg_height[i], packed_reg_top[i], 및 packed_reg_left[i] - 앞서 RectRegionPacking에서 설명한 것과 동일함
프로젝션 포맷이 직사각형(equirectangular) 프로젝션인 경우, i 번째 직사각형 영역에 의해 나타내어지는 구 영역은 두 개의 요우 원들과 두 개의 피치 원들에 의해 특정됨.
몇몇 실시예들에서, RectRegionPacking이 아니라 SphereRegionPacking이 이용되는 경우, 송신기는 3D 이미지로부터 직접적으로 패킹된 2D 이미지를 생성할 수 있다. 수신기는 패킹된 2D 이미지로부터 3D 이미지를 직접 생성할 수 있다.
사각형 영역별 패킹을 위한 샘플 위치들의 변환과 관련하여 다음의 값들이 입력된다.
- 샘플 단위들로서 표시되는 패킹된 영역 내의 샘플 위치(x, y)
- 샘플 단위들로서 표시되는 프로젝션된 프레임 내의 영역의 폭 및 높이 (projRegWidth, projRegHeight)
- 샘플 단위들로서 표시되는 패킹된 프레임 내의 영역의 폭 및 높이 (packedRegWidth, packedRegHeight)
- 변환 타입 (transformType)
사각형 영역별 패킹을 위한 샘플 위치들의 변환과 관련하여 다음의 값이 출력된다.
- 샘플 단위들로서 표시되는 프로젝션된 영역 내의 샘플 위치 (i, j)
사각형 영역별 패킹을 위한 샘플 위치들의 변환을 위해 다음과 같은 신택스가 이용될 수 있다.
if(transformType==0||transformType==1||transformType==2||transformType==3) {
horRatio = projRegWidth÷packedRegWidth
verRatio = projRegHeight÷packedRegHeight
}
else if (transformType == 4|| transformType == 5|| transformType == 6|| transformType == 7) {
horRatio = projRegWidth÷packedRegHeight
verRatio = projRegHeight÷packedRegWidth
}
if (transformType == 0) {
i = horRatio*( x+0.5)-0.5
j = verRatio*( y+0.5)-0.5
}
if (transformType == 1) {
i = horRatio*( packedRegWidth-x-0.5)-0.5
j = verRatio*( y+0.5)-0.5
}
else if (transformType == 2) {
i = horRatio*( packedRegWidth-x-0.5)-0.5
j = verRatio*( packedRegHeight-y-0.5)-0.5
}
else if (transformType == 3) {
= horRatio*(x+0.5)-0.5
j = verRatio*( packedRegHeight-y-0.5)-0.5
}
else if (transformType == 4) {
i = horRatio *( y+0.5)-0.5
j = verRatio *( x+0.5)-0.5
}
else if (transformType == 5) {
i = horRatio*( y+0.5)-0.5
j = verRatio*( packedRegWidth-x-0.5)-0.5
}
else if (transformType == 6) {
i = horRatio *( packedRegHeight-y-0.5)-0.5
j = verRatio *( packedRegWidth-x-0.5)-0.5
}
else if (transformType == 7) {
i = horRatio *( packedRegHeight-y-0.5)-0.5
j = verRatio *( x+0.5)-0.5
}
패킹된 프레임 내의 packing_type[n]이 0인(즉, 직사각형 영역별 패킹이 적용된) n-번째 영역에 속하는 각각의 루마(luma) 샘플 위치(xPackedFrame, yPackedFrame)에 대하여, 프로젝션된 프레임의 대응하는 샘플 위치(xProjFrame, yProjFrame)는 다음과 같이 유도될 수 있다.
- x는 xPackedFrame - packed_reg_left[n] 와 동일하게 설정된다.
- y는 yPackedFrame - packed_reg_top[n] 와 동일하게 설정된다.
- x, y, packed_reg_width[n], packed_reg_height[n], proj_reg_width[n], proj_reg_height[n], 및 transform_type[n]를 입력들로 하여, 위의 사각형 영역별 패킹을 위한 샘플 위치들의 변환을 위한 신택스가 적용된다. 출력은 샘플 위치 (i, j)에 할당된다.
- xProjFrame 은 proj_reg_left[n]+ i 와 동일하게 설정된다.
- xProjFrame 이 proj_frame_width 과 동일하거나 또는 더 큰 경우, xProjFrame은 xProjFrame - proj_frame_width 와 동일하게 설정된다.
- yProjFrame 은 proj_reg_top[n] + j 와 동일하게 설정된다.
크로마(chroma) 포맷 및 크로마 위치 타입 LocType 이 사용되는 경우, CenterLeftOffsetC, CenterTopOffsetC, horRatioC, 및 verRatioC의 값들은 아래의 표 1에서 특정될 수 있다.
Chroma format LocType CenterLeftOffsetC CenterTopOffsetC horRatioC verRatioC
4:2:0 0 0.125 0.25 2 2
4:2:0 1 0.25 0.25 2 2
4:2:0 2 0.125 0.125 2 2
4:2:0 3 0.25 0.125 2 2
4:2:0 4 0.125 0.375 2 2
4:2:0 5 0.25 0.375 2 2
4:2:2 - 0.125 0.5 2 1
4:4:4 - 0.5 0.5 1 1
패킹된 프레임 내의 packing_type[n]이 0인(즉, 직사각형 영역별 패킹이 적용된) n-번째 영역에 속하는 각각의 크로마 샘플 위치(xPackedFrameC, yPackedFrameC)에 대하여, 프로젝션된 프레임의 대응하는 샘플 위치(xProjFrameC, yProjFrameC)는 다음과 같이 유도될 수 있다.
- xC 는 xPackedFrameC - packed_reg_left[n]/horRatioC 와 동일하게 설정된다.
- yC 는 yPackedFrameC - packed_reg_top[n]/verRatioC 와 동일하게 설정된다.
- packedRegWidthC 는 packed_reg_width[n]/horRatioC 와 동일하게 설정된다.
- packedRegHeightC 는 packed_reg_height[n]/verRatioC 와 동일하게 설정된다.
- projRegWidthC 는 proj_reg_width[n]/horRatioC 와 동일하게 설정된다.
- projRegHeightC 는 proj_reg_height[n]/verRatioC 와 동일하게 설정된다.
- xC, yC, packedRegWidthC, packedRegHeightC, projRegWidthC, projRegHeightC, 및 transform_type[n] 를 입력들로 하여, 위의 사각형 영역별 패킹을 위한 샘플 위치들의 변환을 위한 신택스가 적용된다. 출력은 샘플 위치 (i, j)에 할당된다.
- xProjFrameC은 proj_reg_left[n]/horRatioC+i 와 동일하게 설정된다.
- xProjFrameC 이 proj_frame_width/horRatioC 과 동일하거나 또는 더 큰 경우, xProjFrameC 는 xProjFrameC - (proj_frame_width/horRatioC) 와 동일하게 설정된다.
- yProjFrameC 은 proj_reg_top[n]/verRatioC+j 와 동일하게 설정된다.
다시 도 1을 참고하면, 송신기는 패킹된 2D 이미지를 인코딩할 수 있다 (240). 패킹된 2D 이미지는 복수의 영역들로 분할될 수 있다. 패킹된 2D 이미지의 복수의 영역들에 대하여 개별적으로 인코딩이 수행될 수 있다. 몇몇 실시예들에서, 패킹된 2D 이미지의 복수의 영역들 중 전송될 하나 이상의 영역에 대하여만 인코딩이 수행될 수도 있다. 몇몇 실시예들에서, 패킹된 2D 이미지의 복수의 영역들 중 둘 이상의 영역들에 대한 그룹 이미지에 대하여 인코딩이 수행될 수 있다. 몇몇 실시예들에서, 패킹된 2D 이미지 전체에 대하여 인코딩이 수행될 수 있다. 인코딩은 기존에 알려진 2D 이미지에 대한 인코딩 방식을 이용하여 수행될 수 있다.
송신기는 인코딩된 데이터를 캡슐화(encapsulation)할 수 있다 (150). 캡슐화는 인코딩된 데이터를 분할하고, 분할물들에 헤더를 부가하는 등의 프로세싱을 통해 정해진 전송 프로토콜에 따르도록 인코딩된 데이터를 가공하는 것을 의미할 수 있다. 송신기는 캡슐화된 데이터를 전송할 수 있다. 송신기는 캡슐화된 데이터와 함께, 또는 데이터와 개별적으로 데이터와 관련된 추가적인 데이터, 데이터를 재생하기 위해 필요한 데이터(예를 들어, 메타데이터)를 전송할 수 있다.
송신기에서의 데이터의 전송은 MMT(MPEG Media Transport) 또는 DASH (Dynamic Adaptive Streaming over HTTP)를 따를 수 있으나, 반드시 이에 한정되는 것은 아니다.
도시되지는 않았으나, 송신기는 이미지에 관련된 데이터 이외에도 오디오에 관한 데이터 또한 수신기로 송신할 수 있다.
몇몇 실시예들에 의하면, 송신기는 3D 이미지에 대응하는 복수의 트랙들을 생성하고, 복수의 트랙들 중 일부 또는 전부에 대한 데이터를 수신기로 송신할 수 있다. 복수의 트랙들은 서로 상이한 영역들에 대한 데이터를 갖거나, 또는 서로 상이한 품질 등급(quality level)들을 가질 수 있다.
이하, 도 3을 참고하여 수신기에 대하여 설명하도록 한다. 도 3은 본 발명의 일 실시예에 따른 3D 이미지에 관한 데이터를 수신하기 위한 수신기의 시스템을 나타낸다. 수신기는 VR 디바이스 또는 AR 디바이스일 수 있다. 수신기는 이외에도 3D 이미지에 관한 데이터를 수신하여 이를 재생할 수 있는 모든 종류의 디바이스를 지칭할 수 있다.
수신기는 송신기로부터 전송된 3D 이미지에 관한 데이터를 수신할 수 있다. 수신기는 수신된 데이터에 대하여 캡슐화 해제(decapsulation)를 수행할 수 있다 (310). 캡슐화 해제(310)를 통하여, 도 1에서의 인코딩(140)을 통해 생성된 인코딩된 데이터가 획득될 수 있다.
수신기는 캡슐화 해제(310)된 데이터에 대하여 디코딩을 수행할 수 있다 (320). 디코딩(320)을 통해 패킹된 2D 이미지가 복원될 수 있다.
수신기는 디코딩된 데이터(즉, 패킹된 2D 이미지)에 대하여 패킹해제(unpacking)를 수행할 수 있다 (330). 패킹해제를 통해 도 1에서의 프로젝션(120)을 통해 생성된 2D 이미지가 복원될 수 있다. 패킹해제를 수행하는 것은 도 1에서의 패킹(130)에서 수행된 프로젝션된 2D 이미지의 복수의 영역에 대한 변형 및/또는 재배치의 역변환이 수행될 수 있다. 이를 위해 패킹(130)의 방법에 대하여 수신기는 알고 있을 필요가 있다. 패킹(130)의 방법은 수신기와 송신기 사이에 미리 정해져 있을 수 있다. 몇몇 실시예들에 의하면 송신기는 패킹(130)의 방법에 관한 정보를 메타데이터와 같은 별도의 메시지를 통해 수신기에 전달할 수 있다. 몇몇 실시예들에 의하면, 캡슐화(150)를 통해 생성된 전송 데이터는, 예를 들어 헤더 내부에, 패킹(130)의 방법에 관한 정보를 포함할 수도 있다.
수신기는 패킹해제된 2D 이미지를 3D 이미지로 프로젝션할 수 있다 (340). 수신기는 2D 이미지를 3D 이미지로 프로젝션하기 위해 도 1에서 2D 이미지로 프로젝션(120)하기 위해 사용된 프로젝션의 역의 프로젝션을 사용할 수 있으나, 반드시 이에 한정되는 것은 아니다. 수신기는 패킹해제된 2D 이미지를 3D 이미지로 프로젝션하여 3D 이미지를 생성할 수 있다.
수신기는 3D 이미지의 적어도 일부를 디스플레이 장치를 통해 디스플레이할 수 있다(350). 예를 들어, 수신기는 3D 이미지 중, 현재의 FOV(field of view)에 대응하는 데이터만을 추출하여 렌더링할 수 있다.
도 4는 본 발명의 일 실시예에 따른 서버와 단말의 동작을 나타내는 흐름도이다. 도 4에서 서버(410)는 도 1의 송신기에 대응될 수 있으며, 단말(420)는 도 3의 수신기에 대응될 수 있다.
단계 430에서 단말(420)은 단말의 뷰포트 정보를 서버(410)로 전송할 수 있다. 단말의 뷰포트 정보는 단말에서 디스플레이하기 위한 영역(즉, 뷰포트)를 특정하는 정보일 수 있다. 몇몇 실시예들에서, 뷰포트 정보는 뷰포트에 대응하는 3D 이미지 상의 영역을 특정하는 정보일 수 있다. 몇몇 실시예들에서, 뷰포트 정보는 3D 이미지로부터 프로젝션된 2D 이미지 상의 뷰포트에 대응하는 영역을 특정하는 정보일 수 있다.
단계(440)에서 서버(410)는 복수의 트랙들 중 뷰포트 정보에 기초하여 선택된 적어도 하나의 트랙에 대한 데이터를 단말(420)로 전송할 수 있다. 서버(410)는 단일의 3D 이미지와 관련된 복수의 트랙들을 생성 및 보유할 수 있다. 몇몇 실시예들에서, 복수의 트랙들은 3D 이미지의 상이한 영역들에 대한 데이터를 포함할 수 있다. 몇몇 실시예들에서, 복수의 트랙들은 3D 이미지 상의 동일한 영역(예를 들어, 3D 이미지 전체)에 대한 정보를 포함할 수 있으며, 복수의 트랙들 각각은 상이한 품질(quality)을 가질 수 있다. 몇몇 실시예들에서, 복수의 트랙들은 단일의 3D 이미지로부터 생성될 수 있다. 몇몇 실시예들에서, 복수의 트랙들 각각은 단일의 3D 이미지를 형성하기 위한 복수의 카메라들 각각으로부터 캡처된 이미지로부터 생성될 수 있다. 이하 도 5 내지 도 8을 참고하여, 단계(440)에 대하여 보다 상세히 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른 복수의 트랙들을 나타낸다. 복수의 트랙들(510, 520, 530, 540)은 상이한 품질을 가질 수 있다. 보다 구체적으로, 복수의 트랙들(510, 520, 530, 540) 각각의 특정 영역은 나머지 영역과는 상이한 품질 레벨을 가질 수 있다. 나머지 영역과 상이한 품질 레벨을 갖는 특정 영역의 위치는 복수의 트랙들(510, 520, 530, 540)마다 상이할 수 있다. 도 5의 실시예에서, 제 1 트랙(510) 내의 제 1 영역(515), 제 2 트랙(520) 내의 제 2 영역(525), 제 3 트랙(530) 내의 제 3 영역(535) 및 제 4 트랙(540) 내의 제 4 영역(545)은 해당 트랙 내의 나머지 부분과 상이한 품질 레벨을 갖는 특정 영역이다. 제 1 내지 제 4 영역들(515, 525, 535, 545)의 각각의 품질 레벨은 해당 트랙의 나머지 부분들보다 높은 품질 레벨을 가질 수 있다. 제 1 내지 제 4 영역들(515, 525, 535, 545)의 품질 레벨은 동일할 수 있으나 반드시 이에 한정되는 것은 아니다.
도 5의 실시예와 같이, 서버(410)가 제 1 내지 제 4 트랙들(510, 520, 530, 540)을 보유하는 경우, 서버(410)는 수신된 뷰포트 정보에 기초하여 전송할 적어도 하나의 트랙을 선택할 수 있다. 보다 구체적으로, 서버(410)는 단말(420)로부터 수신된 뷰포트 정보에 의해 나타내어지는 영역과 관련되는 높은 품질 레벨을 갖는 영역을 포함하는 적어도 하나의 트랙을 선택할 수 있다. 예를 들어, 뷰포트 정보에 의해 나타내어지는 영역이 제 1 영역(515)와 동일하거나, 제 1 영역(515)에 포함되는 경우 서버(410)는 제 1 트랙(510)을 선택할 수 있으며, 뷰포트 정보에 의해 나타내어지는 영역이 제 2 영역(525)에 포함되는 경우, 서버(410)는 제 2 트랙(520)을 선택할 수 있다. 또 다른 예를 들면, 제 1 내지 제 4 영역들(515, 525, 535, 545) 중 뷰포트 정보에 의해 나타내어지는 영역과 가장 중첩하는 영역이 많은 영역을 포함하는 트랙을 전송하기 위한 트랙으로서 선택할 수 있다. 몇몇 실시예들에서, 서버(410)는 전송하기 위한 복수의 트랙들을 선택할 수도 있다. 예를 들어, 뷰포트 정보에 의해 나타내어지는 영역이 제 1 영역(515)과 제 2 영역(525) 모두에 포함되는 경우, 서버는 제 1 트랙(510) 및 제 2 트랙(520)을 선택할 수 있다. 또 다른 예를 들면, 뷰포트 정보에 의해 나타내어지는 영역이 제 2 영역(525)에 포함되는 경우, 서버(410)는 전송할 트랙으로서, 제 2 트랙(520) 뿐만 아니라, 제 2 영역(525)과 인접한 제 1 영역(515) 및 제 3 영역(535)을 고품질 영역으로서 포함하는 제 1 트랙(510) 및 제 3 트랙(530)을 전송하기 위한 트랙들로서 선택할 수 있다.
도 5의 실시에에서 표시된 제 1 내제 제 4 트랙들(510, 520, 530, 540)은 프로젝션된 2D 이미지들이며, 제 1 내지 제 4 영역들(510, 520, 530, 540) 각각은 프로젝션된 2D 이미지 상에서 표시될 수 있다. 이와 같이 2D 이미지 상에 적어도 하나의 상이한 품질 레벨을 갖는 영역이 존재하는 경우, 2D 이미지 내의 영역들의 품질 레벨들을 나타내기 위해 다음과 같은 신택스가 이용될 수 있다.
aligned(8) class 2DRegionQualityRankingBox extends FullBox ('2dqr, 0, 0) {
unsigned int (8) num_regions;
for (i = 0; i < num_regions; i++) {
unsigned int (8) quality_ranking;
unsigned int (2) view_idc;
if (i == num_regions - 1)
unsigned int (1) remaining_area_flag;
else
bit (1) reserved_bit = 0;
bit (5) reserved = 0;
if (remaining_area_flag == 0) {
unsigned int (16) left_offset;
unsigned int (16) top_offset;
unsigned int (16) region_width;
unsigned int (16) region_height;
}
}
}
위 신택스의 파라미터들에 대한 시맨틱스는 다음과 같다.
num_regions - 품질 랭킹(즉, 품질 레벨) 정보가 주어지는 영역들의 수를 특정함.
quality_ranking - 영역의 품질 랭킹을 특정함. 0의 값의 quality_ranking은 quality_ranking이 정의되지 않음을 나타냄. 영역 A가 영역 B의 quality_ranking 값보다 작으며 0 이 아닌 quality_ranking 값을 갖는 경우, 영역 A는 영역 B보다 높은 품질을 가짐. 영역 A가 부분적 또는 전체적으로 영역 B와 중첩하는 경우, 영역 A의 quality_ranking은 영역 B의 quality_ranking과 동일해야 함.
view_idc - 0 의 값의 view_idc는 컨텐트가 모노스코픽(monoscopic)인 것을 나타냄. 1의 값의 view_idc는 영역이 스테레오스코픽(stereoscopic) 컨텐트의 좌측 뷰 상에 위치함을 나타냄. 2의 값의 view_idc는 영역이 스테레오스코픽 컨텐트의 우측 뷰 상에 위치함을 나타냄. 2의 값의 view_idc는 영역이 좌측 뷰 및 우측 뷰 모두의 상에 위치함을 나타냄.
remaining_area_flag - 0의 값의 remaining_area_flag 은 영역이 left_offset, top_offset, region_width 및 region_height에 의해 정의됨을 특정함. 1의 값의 remaining_area_flag 은 영역이 해당 박스에서 정의된 어떠한 다른 영역들에 의해서도 커버되지 않는 영역임을 특정함.
left_offset, top_offset, region_width 및 region_height - 영역의 크기 및 위치를 나타내는 정수 값들. left_offset 및 top_offset은 각각 패킹된 프레임 내의 영역의 좌상측 모서리의 루마 샘플들 내에서의 수평 및 수직 좌표들을 나타냄. region_width 및 region_height 는 각각 패킹된 프레임 내의 루마 샘플들 내에서의 영역의 폭 및 높이를 나타냄. left_offset + region_width 는 width of VisualSampleEntry (즉, 프레임의 폭)보다 적어야 함. top_offset + region_height 는 height of VisualSampleEntry (즉, 프레임의 높이) 보다 적어야 함.
이러한 신택스에 의해 표현되는 이미지(프레임 또는 트랙)의 영역들과 영역들의 각각의 품질 레벨에 관한 정보는 서버(410)에서 이미지의 영역들 및 영역들 각각의 품질 레벨을 식별하기 위해 이용되거나, 메타데이터(metadata)로서 서버(410)로부터 단말(420)로 전송될 수 있다.
몇몇 실시예들에서, 하나의 이미지(트랙, 또는 프레임) 내에 각각이 상이한 품질 레벨을 갖는 영역들이 포함될 수 있다. 예를 들어, 개별적으로 품질 레벨이 설정된 영역들을 갖는 2D 이미지를 예시하는 도 9를 참고하면, 2D 이미지(900)는 제 1 영역(910), 제 1 영역(910)을 둘러싸는 제 2 영역(920), 및 제 1 영역(910)과 제 2 영역(920)을 제외한 제 3 영역(930)을 포함할 수 있다. 제 1 영역(910), 제 2 영역(920) 및 제 3 영역(930)에 대하여 개별적으로 품질 레벨이 설정될 수 있다. 이러한 경우에도 위의 2D 이미지 내의 영역들의 품질 레벨들을 나타내기 위한 신택스를 이용하여 2D 이지미(900)의 영역들에 대한 품질 정보를 나타낼 수 있다. 제 3 영역(930)은 1의 값의 remaining_area_flag의 속성을 갖는 나머지(remaining) 영역일 수 있다.
도 6은 본 발명의 다른 실시예에 따른 복수의 트랙들을 나타낸다. 도 6에서의 제 1 내지 제 4 트랙들(610, 620, 630, 640)은 도 5에서와 마찬가지로, 해당 트랙의 나머지 부분과 상이한 품질 레벨을 갖는 특정한 영역을 포함할 수 있다. 제 1 내지 제 4 영역들(615, 625, 635, 645) 각각이 해당 트랙의 나머지 부분과 상이한 품질 레벨을 갖는 특정한 영역에 해당할 수 있다. 도 6의 실시예에서 전송할 적어도 하나의 트랙을 선택하기 위한 방법은 도 5에서의 설명과 실질적으로 동일하다.
도 6의 실시예에서, 제 1 내지 제 4 영역들(615, 625, 635, 645)은 프로젝션된 2D 이미지가 아니라 3D 이미지 상에서 표시될 수 있다. 3D 이미지의 영역들의 품질 레벨을 나타내기 위한 예시적인 신택스는 다음과 같다.
aligned (8) class SphereRegionQualityRankingBox entends FullBox ('srqr', 0, 0) {
unsigned int (8) region_definition_type;
unsigned int (8) num_regions;
for (i=0; i < num_regions; i++) {
unsigned int (8) quality_ranking;
unsigned int (2) view_idc;
if (i == num_regions -1)
unsigned int (1) remaining_area_flag;
else
bit (1) reserved_bit = 0;
if (remaining_area_flag == 0)
RegionOnSphereStruct (1);
}
}
위 신택스의 파라미터들에 대한 시맨틱스는 다음과 같다.
region_definition_type: 0 의 값을 갖는 경우 영역이 구 형상의 3D 이미지 상의 4 개의 대원(great circle)들에 의해 특정됨을 나타냄. 1 의 값을 갖는 경우 영역이 두 개의 요우 원들과 두 개의 피치 원들에 의해 특정됨을 나타냄.
num_regions - 품질 랭킹(즉, 품질 레벨) 정보가 주어지는 영역들의 수를 특정함.
quality_ranking - 영역의 품질 랭킹을 특정함. 0의 값의 quality_ranking은 quality_ranking이 정의되지 않음을 나타냄. 영역 A가 영역 B의 quality_ranking 값보다 작으며 0 이 아닌 quality_ranking 값을 갖는 경우, 영역 A는 영역 B보다 높은 품질을 가짐. 영역 A가 부분적 또는 전체적으로 영역 B와 중첩하는 경우, 영역 A의 quality_ranking은 영역 B의 quality_ranking과 동일해야 함.
view_idc - 0 의 값의 view_idc는 컨텐트가 모노스코픽(monoscopic)인 것을 나타냄. 1의 값의 view_idc는 영역이 스테레오스코픽(stereoscopic) 컨텐트의 좌측 뷰 상에 위치함을 나타냄. 2의 값의 view_idc는 영역이 스테레오스코픽 컨텐트의 우측 뷰 상에 위치함을 나타냄. 2의 값의 view_idc는 영역이 좌측 뷰 및 우측 뷰 모두의 상에 위치함을 나타냄.
remaining_area_flag - 0의 값은 영역이 RegionOnSphereSturct (1) 구조에 의해 정의됨을 특정함. 1의 값은 영역이 해당 박스에서 정의되는 다른 어떠한 영역들에 의해서도 커버되지 않는 영역임을 나타냄.
RegionOnSphereStruct (1) - 구 좌표 시스템과 관련된 영역의 구 상의 위치 및 크기를 나타냄. 영역들의 형태는 region_definition_type에 의해 정의됨. center_yaw, center_pitch, hor_range and ver_range가 구 상의 영역을 특정하기 위해 이용됨.
RegionOnSphereStruct의 신택스는 다음과 같다.
aligned(8) RegionOnSphereStruct(range_included_flag) {
signed int(16) center_yaw;
signed int(16) center_pitch;
if (range_included_flag) {
unsigned int(16) hor_range;
unsigned int(16) ver_range;
unsigned int(16) tile_entry_count;
for (j = 0; j < tile_entry_count; j++)
unsigned int(16) tile_region_groupID;
}
RegionOnSphereStruct의 파라미터들에 대한 시맨틱스는 다음과 같다.
center_yaw 및 center_pitch - 글로벌 좌표계에 대하에 대하여, 0.01도의 단위로, 이 샘플에 의해 특정되는 영역의 중심 점을 특정함. center_yaw는 -18000 내지 17999의 범위 내에 있고, center_pitch는 -9000 내지 9000의 범위 내에 있음.
hor_range 및 ver_range - 0.01 도의 단위로, 이 샘플에 의해 특정되는 영역의, 각각, 수직 및 수평 범위를 나타냄. hor_range 및 ver_range는 i 번째 영역의 중심 점을 통하는 범위를 특정함. hor_range는 1 내지 36000의 범위 내에 있고, ver_range는 1 내지 18000의 범위 내에 있음. center_pitch + ver_range / 2 는 9000 보다 커서는 안됨. center_pitch - ver_range ÷ 2 는 -9000보다 작아서는 안됨.
tile_entry_count - 존재하는 경우, 이 샘플에 의해 특정되는 영역에 대응하는 타일 그룹들의 수를 특정함.
tile_region_groupID - center_yaw, center_pitch, hor_range 및 ver_range에 의해 정의되는 영역의 전체 또는 부분을 커버하는, 이 샘플에 의해 특정되는 영역 내의 타일 영역을 식별함.
region_definition_type과 관련하여 보다 상세히 설명하면, 0의 값의 region_definition_type은 영역이 3D 이미지 상의 4 개의 대원들에 의해 특정됨을 나타낸다. 여기서 대원은 구의 표면 상에서 정의될 수 있는 가장 큰 지름을 갖는 원을 의미한다. 이러한 경우, 영역은 영역의 중심 좌표, 롤(roll) 값, 구의 중심을 기준으로 하는 영역의 수평 각 범위 및 영역의 수직 각 범위에 의해 특정될 수 있다.
1의 값의 region_definition_type은 영역이 두 개의 요우 원들과 두개의 피치 원들에 의해 특정됨을 나타낸다. 요우 원은 구의 중심을 원점으로 하는 x, y, z 좌표계에서, 구 상의 z 축을 통과하는 원을 나타내며, 피치 원은 구 상의 x-y 평면에 평행한 원을 나타낸다. 이러한 경우, 영역은 영역의 중심 좌표, 구의 중심을 기준으로 하는 영역의 수평 각 범위 및 영역의 수직 각 범위에 의해 특정될 수 있다.
도 9에서와 유사하게 3D 이미지가 품질 정보가 각각 설정된 복수의 영역들을 포함하는 경우에도, 위의 3D 이미지의 영역들의 품질 레벨을 나타내기 위한 예시적인 신택스가 이용될 수 있다.
도 7은 본 발명의 또 다른 실시예에 따른 복수의 트랙들을 나타낸다. 도 8은 도 7의 복수의 복수의 트랙들에 의해 표현되는 2D 이미지를 나타낸다. 도 7의 실시예에서, 제 1 내지 제 4 트랙들(710, 720, 730, 740)들 각각은 2D 또는 3D의 전체 이미지의 상이한 영역에 대한 데이터를 포함할 수 있다. 도 8의 프로젝션된 2D 이미지(800)는 제 1 내지 제 4 트랙들(710, 720, 730, 740)에 의해 표현되는 전체 이미지를 나타낸다. 제 1 내지 제 4 트랙들(710, 720, 730, 740)은 상이한 품질 레벨들을 가질 수 있다. 서버(410)는 단말(420)로부터 수신된 뷰포트 정보에 기초하여 전송할 트랙을 선택하기 위해, 제 1 내지 제 4 트랙들(710, 720, 730, 740) 중 뷰포트에 대응하는 영역을 포함하는 트랙을 선택할 수 있다. 몇몇 실시예들에 의하면, 제 1 내지 제 4 트랙들(710, 720, 730, 740)은 서로 중첩할 수 있다. 예를 들어, 뷰포트에 대응하는 영역이 다수의 트랙들에 동시에 존재하는 경우, 서버(410)는 다수의 트랙들 중 가장 높은 품질을 갖는 트랙을 전송할 트랙으로서 선택할 수 있다.
ProjectedOmnidirectionalVideoBox(트랙 내에 포함된 샘플들이 프로젝션된 프레임인지 아니면 패킹된 프레임인지를 나타냄) 컨테이너와 연관되는 프로젝션된 프레임에 의해 표현되는 구 표면의 영역에 대한 정보를 이용하기 위해 CoverageInformationBox가 이용될 수 있다. CoverageInformationBox의 부재(absence)는 프로젝션된 프레임이 전체 구(full sphere)의 표현(representation)임을 나타낸다. 예를 들어, 도 7 및 8의 실시예의 경우, CoverageInformationBox가 존재할 수 있다. 이 박스 내의 필드들은 ProjectionOrientationBox가 존재하는 경우, ProjectionOrientationBox의 적용 이후에 적용한다. CoverageInformationBox의 신택스는 다음과 같다.
aligned(8) class CoverageInformationBox extends FullBox('covi', version = 0, flags) {
RegionOnSphereStruct(1);
unsigned int(8) coverage_quality;
}
CoverageInformationBox의 파라미터들의 시맨틱스는 다음과 같다.
RegionOnSphereStruct(1) - 앞서 SphereRegionQualityRankingBox에서 설명한 바와 동일함.
coverage_quality - 360 컨텐트 (즉, 전체의 프로젝션된 프레임)을 형성하기 위해 합해질 수 있는 상이한 트랙들 내의 다른 커버리지 영역들에 대한, ProjectedOmnidirectionalVideoBox 컨테이너와 연관되는 커버리지 영역의 품질을 특정함. coverage_quality은 전달(delivery) 및 렌더링 우선순위를 나타내며, 높은 품질은 높은 우선순위를 가짐. 더 낮은 값들은 더 높은 품질 컨텐트를 나타냄. 1 내지 100의 범위를 가짐. 0의 값의 coverage_quality는 어떠한 랭킹(즉, 품질 레벨)도 정의되지 않음을 나타냄.
이하 도 10을 참고하여, 송신기의 구조에 대하여 설명하도록 한다. 도 10은 본 발명의 일 실시예에 따른 송신기의 블록도이다.
송신기(1000)는 메모리(1030), 통신 인터페이스(1020) 및 프로세서(1010)를 포함할 수 있다. 송신기(1000)는 앞서 실시예들을 통해 설명된 송신기(즉, 서버)의 동작들을 수행하도록 구성될 수 있다. 프로세서(1010)는 메모리(1030) 및 통신 인터페이스(1020)에 통신 가능하게, 그리고 전기적으로 연결될 수 있다. 통신 인터페이스(1020)를 통해 송신기(1000)는 이미지 데이터 및 메타데이터를 포함하는 데이터를 송신하고 그리고 수신할 수 있다. 메모리(1030)에는 송신기(1000)의 동작을 위한 정보들이 저장될 수 있다. 프로세서(1010)를 제어하기 위한 명령들 또는 코드들이 메모리(1030)에 저장될 수 있다. 추가적으로, 프로세서(1010)의 연산을 위해 필요한 일시적 또는 지속적 데이터들이 메모리(1030)에 저장될 수 있다. 프로세서(1010)는 하나의 프로세서일 수 있으며, 몇몇 실시예들에 따르면, 기능들에 따라 구분된 복수의 프로세서들의 집합을 의미할 수도 있다. 프로세서(1010)는 송신기(1000)의 동작을 제어하도록 구성될 수 있다. 앞서 설명된 송신기(1000)의 동작들은 실질적으로 프로세서(1010)에 의해 처리되고 실행될 수 있다. 비록 데이터를 송신하고 수신하는 것이 통신 인터페이스(1020)를 통해 이루어지고, 데이터 및 명령들을 저장하는 것이 메모리(1030)에 의해 수행되더라도, 통신 인터페이스(1020) 및 메모리(1030)의 동작들은 프로세서(1010)에 의해 제어될 수 있으므로, 데이터를 송신 및 수신하는 것 및 명령들을 저장하는 것 또한 프로세서(1010)에 의해 수행되는 것으로 간주될 수 있다.
수신기(예를 들어, 단말, VR 디바이스 등) 또한, 송신기(1000)와 유사하게 메모리, 통신 인터페이스 및 프로세서를 포함할 수 있다 수신기의 메모리, 통신 인터페이스 및 프로세서에 대한 설명은 송신기(1000)의 대응하는 엘리먼트들에 대한 설명과 유사하다. 수신기는 수신된 전방향 이미지를 디스플레이하기 위한 디스플레이 장치를 더 포함할 수 있다.
본 명세서에서 설명된 신택스들은 예시적인 것에 불과하다. 특정한 신택스 내에 포함된 모든 파라미터들이 해당 신택스로 형성되는 데이터(즉, 메타데이터)를 구성하기 위해 반드시 필요한 것은 아니다. 해당 기술 분야의 통상의 기술자는 기술된 파라미터들 중 일부의 파라미터들만을 이용하여 데이터가 구성될 수 있다는 것을 자명하게 이해할 수 있을 것이다. 예시된 신택스들을 통해 구성되는 데이터는 서버 내에서 사용될 수 있으며, 또한 단말로 전송되어 단말에 의해 전방향 이미지에 관한 데이터를 프로세싱하기 위해 이용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (20)

  1. 송신 디바이스에 의해, 전방향(omnidirectional) 이미지에 관한 데이터를 전송하기 위한 방법으로서,
    전방향 이미지를 평면에 프로젝팅하는 것에 기초하여 생성되는 2차원(2D) 이미지의 데이터를 식별하는 단계;
    상기 전방향 이미지와 관련된 메타데이터를 식별하는 단계; 및
    상기 2D 이미지의 데이터 및 상기 메타데이터를 전송하는 단계를 포함하고,
    상기 메타데이터는 상기 전방향 이미지의 하나 이상의 영역들 각각의 품질 랭킹(quality ranking)에 대한 정보 또는 상기 2D 이미지의 하나 이상의 영역들 각각의 품질 랭킹에 대한 정보를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 전방향 이미지의 하나 이상의 영역들 각각의 품질 랭킹에 대한 정보는:
    상기 전방향 이미지의 하나 이상의 영역들 각각이 두 개의 대원(great circle)들에 의해 정의되는지 아니면 두 개의 요우(yaw) 원들과 두 개의 피치(pitch) 원들에 의해 정의되는지 여부를 나타내는 정보;
    품질 랭킹 정보가 주어지는 상기 전방향 이미지의 하나 이상의 영역들의 수를 나타내는 정보;
    상기 전방향 이미지의 하나 이상의 영역들 각각의 품질 랭킹을 나타내는 정보;
    상기 전방향 이미지의 하나 이상의 영역들 중의 영역이 모노스코픽(monoscopic)인지, 아니면 스테레오스코픽(stereoscopic) 컨텐트의 좌측 뷰 상에 존재하는지, 아니면 상기 스테레오스코픽 컨텐트의 우측 뷰 상에 존재하는지 아니면, 상기 좌측 뷰 및 상기 우측 뷰 모두 상에 존재하는지 여부를 나타내는 정보; 및
    상기 전방향 이미지의 하나 이상의 영역들 각각의 위치 및 크기를 나타내는 정보를 포함하는,
    방법.
  3. 제 1 항에 있어서,
    상기 2D 이미지의 하나 이상의 영역들 각각의 품질 랭킹에 대한 정보는:
    품질 랭킹 정보가 주어지는 상기 2D 이미지의 하나 이상의 영역들의 수를 나타내는 정보;
    상기 2D 이미지의 하나 이상의 영역들 각각의 품질 랭킹을 나타내는 정보;
    상기 2D 이미지의 하나 이상의 영역들 중의 영역이 모노스코픽(monoscopic)인지, 아니면 스테레오스코픽(stereoscopic) 컨텐트의 좌측 뷰 상에 존재하는지, 아니면 상기 스테레오스코픽 컨텐트의 우측 뷰 상에 존재하는지 아니면, 상기 좌측 뷰 및 상기 우측 뷰 모두 상에 존재하는지 여부를 나타내는 정보; 및
    상기 2D 이미지의 하나 이상의 영역들 각각의 크기 및 위치에 대한 정보를 포함하는,
    방법.
  4. 제 1 항에 있어서,
    상기 2D 이미지가 상기 전방향 이미지로부터 프로젝팅된 프로젝팅된 2D 이미지의 복수의 영역들을 영역별 패킹(region-wise packing)하는 것에 의해 생성되는 경우, 상기 메타데이터는 상기 프로젝팅된 2D 이미지의 복수의 영역들 각각을 나타내는 정보 및 상기 프로젝팅된 2D 이미지의 복수의 영역들 각각에 대응하는 상기 2D 이미지의 패킹된 영역을 나타내는 정보를 더 포함하는,
    방법.
  5. 제 4 항에 있어서,
    상기 프로젝팅된 2D 이미지의 복수의 영역들 각각을 나타내는 정보는 상기 프로젝팅된 2D 이미지의 복수의 영역들 각각의 폭, 높이, 상부(top) 오프셋, 및 좌측(left) 오프셋을 포함하는,
    방법.
  6. 제 4 항에 있어서,
    상기 프로젝팅된 2D 이미지의 복수의 영역들 각각에 대응하는 상기 2D 이미지의 패킹된 영역을 나타내는 정보는 상기 패킹된 영역의 폭, 높이, 상부(top) 오프셋, 및 좌측(left) 오프셋을 포함하는,
    방법.
  7. 제 1 항에 있어서,
    상기 2D 이미지가 상기 프로젝팅된 2D 이미지의 복수의 영역들을 영역별 패킹(region-wise packing)하는 것에 의해 생성되는 경우, 상기 메타데이터는 상기 2D 이미지의 복수의 영역들 중 제1 영역의 변환(transform) 타입을 나타내는 정보를 더 포함하고, 상기 변환 타입은 상기 제1 영역을 상기 2D 이미지의 패킹된 영역으로 변환할 때 적용되는,
    방법.
  8. 제 7 항에 있어서,
    상기 변환 타입은, 변환 없음(no transform), 수평으로 미러링(mirroring horizontally), 180도 회전(반-시계 방향), 180도 회전(반-시계 방향)과 수평으로 미러링, 90도 회전(반-시계 방향), 270도 회전(반-시계 방향)과 수평으로 미러링, 및 270도 회전(반-시계 방향) 중 하나를 나타내는,
    방법.
  9. 제 1 항에 있어서,
    상기 메타데이터는 트랙의 컨텐트 커버리지에 대한 정보를 더 포함하고, 상기 트랙의 컨텐트 커버리지에 대한 정보는 상기 전방향 이미지의 영역을 나타내는 정보를 포함하는,
    방법.
  10. 제 9 항에 있어서,
    상기 전방향 이미지의 영역을 나타내는 정보는:
    상기 전방향 이미지의 영역의 중심을 나타내는 정보;
    상기 전방향 이미지의 영역의 수평 범위를 나타내는 정보; 및
    상기 전방향 이미지의 영역의 수직 범위를 나타내는 정보를 포함하는,
    방법.
  11. 전방향(omnidirectional) 이미지에 관한 데이터를 전송하기 위한 송신 디바이스로서,
    전방향 이미지를 평면에 프로젝팅하는 것에 기초하여 생성되는 2차원(2D) 이미지의 데이터를 식별하고, 그리고
    상기 전방향 이미지와 관련된 메타데이터를 식별하도록 구성되는
    적어도 하나의 프로세서; 및
    상기 2D 이미지의 데이터 및 상기 메타데이터를 전송하도록 구성되는 송수신기를 포함하고,
    상기 메타데이터는 상기 전방향 이미지의 하나 이상의 영역들 각각의 품질 랭킹(quality ranking)에 대한 정보 또는 상기 2D 이미지의 하나 이상의 영역들 각각의 품질 랭킹에 대한 정보를 포함하는,
    송신 디바이스.
  12. 제 11 항에 있어서,
    상기 전방향 이미지의 하나 이상의 영역들 각각의 품질 랭킹에 대한 정보는:
    상기 전방향 이미지의 하나 이상의 영역들 각각이 두 개의 대원(great circle)들에 의해 정의되는지 아니면 두 개의 요우(yaw) 원들과 두 개의 피치(pitch) 원들에 의해 정의되는지 여부를 나타내는 정보;
    품질 랭킹 정보가 주어지는 상기 전방향 이미지의 하나 이상의 영역들의 수를 나타내는 정보;
    상기 전방향 이미지의 하나 이상의 영역들 각각의 품질 랭킹을 나타내는 정보;
    상기 전방향 이미지의 하나 이상의 영역들 중의 영역이 모노스코픽(monoscopic)인지, 아니면 스테레오스코픽(stereoscopic) 컨텐트의 좌측 뷰 상에 존재하는지, 아니면 상기 스테레오스코픽 컨텐트의 우측 뷰 상에 존재하는지 아니면, 상기 좌측 뷰 및 상기 우측 뷰 모두 상에 존재하는지 여부를 나타내는 정보; 및
    상기 전방향 이미지의 하나 이상의 영역들 각각의 위치 및 크기를 나타내는 정보를 포함하는,
    송신 디바이스.
  13. 제 11 항에 있어서,
    상기 2D 이미지의 하나 이상의 영역들 각각의 품질 랭킹에 대한 정보는:
    품질 랭킹 정보가 주어지는 상기 2D 이미지의 하나 이상의 영역들의 수를 나타내는 정보;
    상기 2D 이미지의 하나 이상의 영역들 각각의 품질 랭킹을 나타내는 정보;
    상기 2D 이미지의 하나 이상의 영역들 중의 영역이 모노스코픽(monoscopic)인지, 아니면 스테레오스코픽(stereoscopic) 컨텐트의 좌측 뷰 상에 존재하는지, 아니면 상기 스테레오스코픽 컨텐트의 우측 뷰 상에 존재하는지 아니면, 상기 좌측 뷰 및 상기 우측 뷰 모두 상에 존재하는지 여부를 나타내는 정보; 및
    상기 2D 이미지의 하나 이상의 영역들 각각의 크기 및 위치에 대한 정보를 포함하는,
    송신 디바이스.
  14. 제 11 항에 있어서,
    상기 2D 이미지가 상기 전방향 이미지로부터 프로젝팅된 프로젝팅된 2D 이미지의 복수의 영역들을 영역별 패킹(region-wise packing)하는 것에 의해 생성되는 경우, 상기 메타데이터는 상기 프로젝팅된 2D 이미지의 복수의 영역들 각각을 나타내는 정보 및 상기 프로젝팅된 2D 이미지의 복수의 영역들 각각에 대응하는 상기 2D 이미지의 패킹된 영역을 나타내는 정보를 더 포함하는,
    송신 디바이스.
  15. 제 14 항에 있어서,
    상기 프로젝팅된 2D 이미지의 복수의 영역들 각각을 나타내는 정보는 상기 프로젝팅된 2D 이미지의 복수의 영역들 각각의 폭, 높이, 상부(top) 오프셋, 및 좌측(left) 오프셋을 포함하는,
    송신 디바이스.
  16. 제 14 항에 있어서,
    상기 프로젝팅된 2D 이미지의 복수의 영역들 각각에 대응하는 상기 2D 이미지의 패킹된 영역을 나타내는 정보는 상기 패킹된 영역의 폭, 높이, 상부(top) 오프셋, 및 좌측(left) 오프셋을 포함하는,
    송신 디바이스.
  17. 제 11 항에 있어서,
    상기 2D 이미지가 상기 프로젝팅된 2D 이미지의 복수의 영역들을 영역별 패킹(region-wise packing)하는 것에 의해 생성되는 경우, 상기 메타데이터는 상기 2D 이미지의 복수의 영역들 중 제1 영역의 변환(transform) 타입을 나타내는 정보를 더 포함하고, 상기 변환 타입은 상기 제1 영역을 상기 2D 이미지의 패킹된 영역으로 변환할 때 적용되는,
    송신 디바이스.
  18. 제 17 항에 있어서,
    상기 변환 타입은, 변환 없음(no transform), 수평으로 미러링(mirroring horizontally), 180도 회전(반-시계 방향), 180도 회전(반-시계 방향)과 수평으로 미러링, 90도 회전(반-시계 방향), 270도 회전(반-시계 방향)과 수평으로 미러링, 및 270도 회전(반-시계 방향) 중 하나를 나타내는,
    송신 디바이스.
  19. 제 11 항에 있어서,
    상기 메타데이터는 트랙의 컨텐트 커버리지에 대한 정보를 더 포함하고, 상기 트랙의 컨텐트 커버리지에 대한 정보는 상기 전방향 이미지의 영역을 나타내는 정보를 포함하는,
    송신 디바이스.
  20. 제 19 항에 있어서,
    상기 전방향 이미지의 영역을 나타내는 정보는:
    상기 전방향 이미지의 영역의 중심을 나타내는 정보;
    상기 전방향 이미지의 영역의 수평 범위를 나타내는 정보; 및
    상기 전방향 이미지의 영역의 수직 범위를 나타내는 정보를 포함하는,
    송신 디바이스.
KR1020170175049A 2017-03-28 2017-12-19 3차원 이미지에 관한 데이터를 전송하기 위한 방법 KR102331041B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201880022470.4A CN110495181A (zh) 2017-03-28 2018-01-30 用于发送关于三维图像的数据的方法
US16/498,067 US10791316B2 (en) 2017-03-28 2018-01-30 Method for transmitting data about three-dimensional image
PCT/KR2018/001286 WO2018182161A1 (ko) 2017-03-28 2018-01-30 3차원 이미지에 관한 데이터를 전송하기 위한 방법
EP18776566.4A EP3606084A1 (en) 2017-03-28 2018-01-30 Method for transmitting data about three-dimensional image

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR20170039641 2017-03-28
KR1020170039641 2017-03-28
US201762481274P 2017-04-04 2017-04-04
US62/481,274 2017-04-04
US201762529867P 2017-07-07 2017-07-07
US62/529,867 2017-07-07

Publications (2)

Publication Number Publication Date
KR20180109655A KR20180109655A (ko) 2018-10-08
KR102331041B1 true KR102331041B1 (ko) 2021-11-29

Family

ID=63864442

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170175049A KR102331041B1 (ko) 2017-03-28 2017-12-19 3차원 이미지에 관한 데이터를 전송하기 위한 방법

Country Status (1)

Country Link
KR (1) KR102331041B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102564729B1 (ko) 2018-04-05 2023-08-09 삼성전자주식회사 복수의 뷰포인트들을 포함하는 3차원 컨텐트에 대한 정보를 전송하기 위한 방법 및 장치
KR102130784B1 (ko) 2018-11-23 2020-07-06 (주)텔리언 다방향 뷰 영상 데이터 전송 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140341280A1 (en) 2012-12-18 2014-11-20 Liu Yang Multiple region video conference encoding
WO2016125708A1 (ja) 2015-02-03 2016-08-11 合同会社紫光技研 ガス放電装置とそれを使用した平面光源およびそれらの駆動方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022215A1 (en) * 2005-07-19 2007-01-25 Singer David W Method and apparatus for media data transmission
US10754511B2 (en) * 2013-11-20 2020-08-25 Google Llc Multi-view audio and video interactive playback

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140341280A1 (en) 2012-12-18 2014-11-20 Liu Yang Multiple region video conference encoding
WO2016125708A1 (ja) 2015-02-03 2016-08-11 合同会社紫光技研 ガス放電装置とそれを使用した平面光源およびそれらの駆動方法

Also Published As

Publication number Publication date
KR20180109655A (ko) 2018-10-08

Similar Documents

Publication Publication Date Title
US10791316B2 (en) Method for transmitting data about three-dimensional image
US20210029187A1 (en) Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus and point cloud data reception method
US11388381B2 (en) Suggested viewport indication for panoramic video
CN109478313B (zh) 处理三维图像的方法和设备
US11202086B2 (en) Apparatus, a method and a computer program for volumetric video
US11457231B2 (en) Methods and apparatus for signaling spatial relationships for point cloud multimedia data tracks
KR102262727B1 (ko) 360 비디오 처리 방법 및 그 장치
US11049323B2 (en) Method and apparatus for deriving VR projection, packing, ROI and viewport related tracks in ISOBMFF and supporting viewport roll signaling
EP3456042A1 (en) Method and apparatus of inter coding for vr video using virtual reference frames
EP4138397A1 (en) Point cloud data transmission apparatus, point cloud data transmission method, point cloud data reception apparatus, and point cloud data reception method
CN110741649B (zh) 用于轨道合成的方法及装置
US20220377327A1 (en) Point cloud data transmission device, point cloud data transmission method, point cloud data reception device, and point cloud data reception method
US10819907B2 (en) Method and apparatus for signaling spherical region information in ISOBMFF
CN116912129A (zh) 用于处理包括封装在360度虚拟现实投影布局中的至少一个投影面的基于投影的帧的方法
WO2019115866A1 (en) An apparatus, a method and a computer program for volumetric video
KR102331041B1 (ko) 3차원 이미지에 관한 데이터를 전송하기 위한 방법
CN110637463B (zh) 360度视频处理方法
US11948268B2 (en) Immersive video bitstream processing
KR102397574B1 (ko) 3차원 이미지에 관한 데이터를 전송하기 위한 방법
WO2019038433A1 (en) SIGNALING CHARACTERISTICS FOR OMNIDIRECTIONAL CONTENT

Legal Events

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