KR102640664B1 - Vr 디바이스 및 vr 디바이스 제어 방법 - Google Patents
Vr 디바이스 및 vr 디바이스 제어 방법 Download PDFInfo
- Publication number
- KR102640664B1 KR102640664B1 KR1020190100315A KR20190100315A KR102640664B1 KR 102640664 B1 KR102640664 B1 KR 102640664B1 KR 1020190100315 A KR1020190100315 A KR 1020190100315A KR 20190100315 A KR20190100315 A KR 20190100315A KR 102640664 B1 KR102640664 B1 KR 102640664B1
- Authority
- KR
- South Korea
- Prior art keywords
- video
- roi
- bitstream
- information
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 388
- 230000011664 signaling Effects 0.000 claims abstract description 84
- 238000012856 packing Methods 0.000 claims description 131
- 230000033001 locomotion Effects 0.000 claims description 33
- 239000010410 layer Substances 0.000 claims description 31
- 239000000284 extract Substances 0.000 claims description 21
- 230000003044 adaptive effect Effects 0.000 claims description 15
- 239000011229 interlayer Substances 0.000 claims description 7
- 230000002123 temporal effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 296
- 238000012545 processing Methods 0.000 description 272
- 230000005540 biological transmission Effects 0.000 description 157
- 238000009877 rendering Methods 0.000 description 41
- 238000005538 encapsulation Methods 0.000 description 33
- 238000007781 pre-processing Methods 0.000 description 20
- 238000000605 extraction Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 239000000203 mixture Substances 0.000 description 16
- 230000000007 visual effect Effects 0.000 description 15
- 238000002360 preparation method Methods 0.000 description 13
- 238000013507 mapping Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 230000015572 biosynthetic process Effects 0.000 description 9
- 238000003786 synthesis reaction Methods 0.000 description 9
- 230000008859 change Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000001965 increasing effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012805 post-processing Methods 0.000 description 6
- 230000002829 reductive effect Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000010365 information processing Effects 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 101150114515 CTBS gene Proteins 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007654 immersion Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- -1 track Substances 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/4728—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/194—Transmission of image signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/156—Mixing image signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/172—Processing image signals image signals comprising non-image signal components, e.g. headers or format information
- H04N13/178—Metadata, e.g. disparity information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/167—Position within a video image, e.g. region of interest [ROI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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
- H04N19/174—Methods 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 the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing 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 by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234345—Processing 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 the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
- H04N21/4316—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
- H04N21/4343—Extraction or processing of packetized elementary streams [PES]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440227—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/81—Monomedia components thereof
- H04N21/816—Monomedia components thereof involving special video data, e.g 3D video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8549—Creating video summaries, e.g. movie trailer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0102—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving the resampling of the incoming video signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/025—Systems for the transmission of digital non-picture data, e.g. of text during the active part of a television frame
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/08—Systems for the simultaneous or sequential transmission of more than one television signal, e.g. additional information signals, the signals occupying wholly or partially the same frequency band, e.g. by time division
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Architecture (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Library & Information Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
본 발명의 일 측면에 따르면, VR 디바이스 제어 방법이 개시된다. 본 발명의 일 실시예에 따른 VR 디바이스 제어 방법은, 360 비디오 비트스트림을 수신하는 단계; 상기 360 비디오 비트스트림내에 포함된 서브-비트스트림을 추출하는 단계, 상기 서브-비트스트림은 상기 360 비디오 비트스트림에 대한 ROI(Region of Interest)를 포함함; 상기 서브-비트스트림으로부터 상기 ROI에 대한 복원 데이터를 생성하는 단계; 및 시그널링 정보에 기초하여 상기 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하는 단계; 를 포함할 수 있다.
Description
본 발명은 VR 디바이스에 관한 것이다.
VR (Virtual Reality) 시스템은 사용자에게 전자적으로 투영된 환경내에 있는 것 같은 감각을 제공한다. VR 을 제공하기 위한 시스템은 더 고화질의 이미지들과, 공간적인 음향을 제공하기 위하여 더 개선될 수 있다. VR 시스템은 사용자가 인터랙티브하게 VR 컨텐트들을 소비할 수 있도록 할 수 있다.
VR 시스템은 더 효율적으로 VR 환경을 사용자에게 제공하기 위하여, 개선될 필요가 있다. 이를 위하여 VR 컨텐츠와 같은 많은 양의 데이터 전송을 위한 데이터 전송 효율, 송수신 네트워크 간의 강건성, 모바일 수신 장치를 고려한 네트워크 유연성, 효율적인 재생 및 시그널링을 위한 방안등이 제안되어야 한다.
특히, VR 디바이스는 8K, 60fps 이상의 해상도로 인코딩된 VR 컨텐츠를 처리하고 디패킹(de-packing) 과정을 수행하기 때문에, VR 디바이스는 VR 360 영상의 썸네일을 빠르게 추출하는데 있어서 많은 메모리와 지연시간이 불가피하다.
따라서 본 발명의 일 목적은 VR 360 영상의 썸네일을 추출하는데 있어서 필요한 메모리, 전송 대역폭 및 VR 360 영상을 처리하는데 필요한 시간을 크게 감소할 수 있는 VR 디바이스 및 VR 디바이스 제어 방법을 제공하는 것이다.
또한, 본 발명의 일 목적은 시청자의 빠른 시점 이동에 대한 즉각적인 반응을 처리할 수 있는 VR 디바이스 및 VR 디바이스 제어 방법을 제공하는 것이다.
또한, 본 발명의 일 목적은 시청자의 영상 끊김 현상이 없는 VR 디바이스 및 VR 디바이스 제어 방법을 제공하는 것이다.
본 발명의 목적에 따라, 본 발명은 VR 디바이스 및 VR 디바이스를 제어하는 방법을 제안한다.
본 발명의 일 측면에 따르면, VR 디바이스가 개시된다.
본 발명의 일 실시예에 따른 VR 디바이스는, 360 비디오 비트스트림을 수신하는 수신부; 상기 360 비디오 비트스트림내에 포함된 서브-비트스트림을 추출하는 비트스트림 추출부(bitstream extractor), 상기 서브-비트스트림은 상기 360 비디오 비트스트림에 대한 ROI(Region of Interest)을 포함함; 상기 서브-비트스트림으로부터 상기 ROI에 대한 복원 데이터를 생성하는 썸네일 제너레이터(thumbnail generator); 및 시그널링 정보에 기초하여 상기 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하는 리매퍼(remapper); 를 포함할 수 있다.
여기서, 상기 시그널링 정보가 상기 360 비디오 비트스트림 내에 포함된 경우, 상기 시그널링 정보는 상기 360 비디오 비트스트림에 대한 언패킹(unpacking)과 관련된 정보를 포함할 수 있다.
여기서, 상기 시그널링 정보가 상기 360 비디오 비트스트림과 별도로 수신되는 경우, 상기 VR 디바이스는 상기 별도로 수신된 시그널링 정보를 파싱하는 파서(parser)를 더 포함하고, 상기 시그널링 정보는 상기 360 비디오 비트스트림으로부터 상기 ROI에 대한 상기 서브-비트스트림을 추출하기 위한 나타내는 제 1 정보 및 상기 ROI에 대한 복원 데이터로부터 썸네일 데이터를 추출하기 위한 제 2 정보를 포함할 수 있다.
여기서, 상기 360 비디오 비트스트림이 상기 ROI에 대한 상기 서브-비트스트림만을 포함하는 경우, 상기 서브-비트스트림을 추출하는 단계 없이 상기 ROI에 대한 상기 복원 데이터를 리매핑하여 썸네일 데이터를 생성할 수 있다.
여기서, 상기 360 비디오 비트스트림은 상기 ROI는 상기 ROI가 아닌 영역보다 적게 다운샘플링(downsampling)된 영역 또는 다운샘플링이 수행되지 않은 영역이고, 상기 시그널링 정보는 상기 다운샘플링과 관련된 정보를 나타내는 리전-와이즈 패킹 파라미터(region-wise packing parameter)를 포함하고, 상기 ROI에 대한 상기 복원 데이터는 상기 리전-와이즈 패킹 파라미터에 기초하여 생성될 수 있다.
여기서, 상기 360 비디오 비트스트림에 오버레이 영역이 포함된 경우, 상기 오버레이 영역이 상기 ROI로 사용될 수 있다.
여기서, 상기 360 비디오 비트스트림은 제 1 타일 및 제 2 타일로 구분되고, 상기 제 1 타일에 대한 비트들의 수가 상기 제 2 타일에 대한 비트들의 수보다 큰 경우, 상기 제 1 타일이 상기 ROI로 사용될 수 있다.
여기서, 상기 360 비디오 비트스트림이 DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜에 기반하여 수신되는 경우, 상기 DASH 프로토콜에 의해 전달되는 MPD(Media Presentation Description)는 상기 ROI에 대한 정보를 포함하고, 상기 MPD에 포함된 상기 ROI에 대한 정보에 기초하여 상기 ROI를 결정할 수 있다.
여기서, 상기 360 비디오 비트스트림이 스케일러블 코딩 스킴에 기초하여 수신되는 경우, 상기 360 비디오 비트스트림은 제 1 해상도의 데이터를 포함하는 기본 계층(base layer) 및 제 2 해상도의 데이터를 포함하는 인핸스먼트 계층(enhancement layer)을 포함하고, 상기 제 1 해상도는 상기 제 2 해상도보다 낮고, 상기 ROI는 상기 기본 계층에 기초하여 결정될 수 있다.
여기서, 상기 360 비디오 비트스트림은 MP4 파일 포멧, MKV 파일 포멧 및 TS 파일 포멧 중 하나의 파일 포멧을 기반으로 저장된 데이터일 수 있다.
본 발명의 일 측면에 따르면, VR 디바이스 제어 방법이 개시된다.
본 발명의 일 실시예에 따른 VR 디바이스 제어 방법은, 360 비디오 비트스트림을 수신하는 단계; 상기 360 비디오 비트스트림내에 포함된 서브-비트스트림을 추출하는 단계, 상기 서브-비트스트림은 상기 360 비디오 비트스트림에 대한 ROI(Region of Interest)를 포함함; 상기 서브-비트스트림으로부터 상기 ROI에 대한 복원 데이터를 생성하는 단계; 및 시그널링 정보에 기초하여 상기 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하는 단계; 를 포함할 수 있다.
여기서, 상기 시그널링 정보가 상기 360 비디오 비트스트림 내에 포함된 경우, 상기 시그널링 정보는 상기 360 비디오 비트스트림에 대한 언패킹(unpacking)과 관련된 정보를 포함할 수 있다.
여기서, 상기 시그널링 정보가 상기 360 비디오 비트스트림과 별도로 수신되는 경우, 상기 VR 디바이스 제어 방법은, 상기 별도로 수신된 시그널링 정보를 파싱하는 단계를 더 포함하고, 상기 시그널링 정보는 상기 360 비디오 비트스트림으로부터 상기 ROI에 대한 상기 서브-비트스트림을 추출하기 위한 제 1 정보 및 상기 ROI에 대한 복원 데이터로부터 썸네일 데이터를 추출하기 위한 제 2 정보를 포함할 수 있다.
여기서, 상기 360 비디오 비트스트림이 상기 ROI에 대한 상기 서브-비트스트림만을 포함하는 경우, 상기 서브-비트스트림을 추출하는 단계 없이 상기 ROI에 대한 상기 복원 데이터를 리매핑하여 썸네일 데이터를 생성할 수 있다.
여기서, 상기 360 비디오 비트스트림은 상기 ROI는 상기 ROI가 아닌 영역보다 적게 다운샘플링(downsampling)된 또는 다운샘플링이 수행되지 않은 영역이고, 상기 시그널링 정보는 상기 다운샘플링과 관련된 정보를 나타내는 리전-와이즈 패킹 파라미터(region-wise packing parameter)를 포함하고, 상기 ROI에 대한 상기 복원 데이터는 상기 리전-와이즈 패킹 파라미터에 기초하여 생성될 수 있다.
여기서, 상기 360 비디오 비트스트림에 오버레이 영역이 포함된 경우, 상기 오버레이 영역이 상기 ROI로 사용될 수 있다.
여기서, 상기 360 비디오 비트스트림은 제 1 타일 및 제 2 타일로 구분되고, 상기 제 1 타일에 대한 비트들의 수가 상기 제 2 타일에 대한 비트들의 수보다 큰 경우, 상기 제 1 타일이 상기 ROI로 사용될 수 있다.
여기서, 상기 360 비디오 비트스트림이 DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜에 기반하여 수신되는 경우, 상기 DASH 프로토콜에 의해 전달되는 MPD(Media Presentation Description)는 상기 ROI에 대한 정보를 포함하고, 상기 MPD에 포함된 상기 ROI에 대한 정보에 기초하여 상기 ROI를 결정할 수 있다.
여기서, 상기 360 비디오 비트스트림이 스케일러블 코딩 스킴에 기초하여 수신되는 경우, 상기 360 비디오 비트스트림은 제 1 해상도의 데이터를 포함하는 기본 계층(base layer) 및 제 2 해상도의 데이터를 포함하는 인핸스먼트 계층(enhancement layer)을 포함하고, 상기 제 1 해상도는 상기 제 2 해상도보다 낮고, 상기 ROI는 상기 기본 계층에 기초하여 결정될 수 있다.
여기서, 상기 360 비디오 비트스트림은 MP4 파일 포멧, MKV 파일 포멧 및 TS 파일 포멧 중 하나의 파일 포멧을 기반으로 저장된 데이터일 수 있다.
본 발명은 지상파 방송망과 인터넷 망을 사용하는 차세대 하이브리드 방송을 지원하는 환경에서 360도 컨텐츠를 효율적으로 전송할 수 있다.
본 발명은 사용자의 360도 컨텐츠 소비에 있어서, 인터랙티브 경험(interactive experience) 를 제공하기 위한 방안을 제안할 수 있다.
본 발명은 사용자의 360도 컨텐츠 소비에 있어서, 360도 컨텐츠 제작자가 의도하는 바가 정확히 반영되도록 시그널링 하는 방안을 제안할 수 있다.
본 발명은 360도 컨텐츠 전달에 있어, 효율적으로 전송 캐패시티를 늘리고, 필요한 정보가 전달될 수 있도록 하는 방안을 제안할 수 있다.
본 발명은 복수의 360도 컨텐츠를 제공할 수 있다. 보다 구체적으로, 본 발명은 360도 비디오 내에서 복수의 360도 컨텐츠를 제공할 수 있으며, 이러한 360도 비디오를 제공하는 차세대 미디어 서비스를 제공할 수 있다. 또한, 본 발명은 360도 비디오 내에서 복수의 360도 컨텐츠가 제공되는 경우, 비디오 데이터를 효율적으로 프로세싱하는 방안을 제공할 수 있다.
본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
본 발명의 실시예들에 따른 VR 디바이스가 유의미한 썸네일을 추출하는데 걸리는 시간을 크게 감소시킬 수 있다.
본 발명의 실시예들에 따른 VR 디바이스는 영상 전체에 대한 비트스트림을 보내는 것 대비 전송 대역폭을 효과적으로 운용할 수 있는 효과를 제공한다.
본 발명의 실시예들에 따른 VR 디바이스는 시청자의 빠른 시점 이동에 대한 즉각적인 반응을 처리할 수 있다.
본 발명의 실시예들에 따른 VR 디바이스는 오프라인 상태에서도 VR 360 영상을 시청할 수 있다.
본 발명의 실시예들에 따른 VR 디바이스는 사용자에게 영상 끊김 현상이 없는 서비스를 제공할 수 있다.
도 1 은 본 발명에 따른 360도 비디오 제공을 위한 전체 아키텍처를 도시한 도면이다.
도 2 은 본 발명의 일 측면(aspect)에 따른 360도 비디오 전송 장치를 도시한 도면이다.
도 3 은 본 발명의 다른 측면에 따른 360도 비디오 수신 장치를 도시한 도면이다.
도 4 는 본 발명의 다른 실시예에 따른 360도 비디오 전송 장치/360도 비디오 수신 장치를 도시한 도면이다.
도 5 는 본 발명의 3D 공간을 설명하기 위한 비행기 주축(Aircraft Principal Axes) 개념을 도시한 도면이다.
도 6 는 본 발명의 일 실시예에 따른 프로젝션 스킴들을 도시한 도면이다.
도 7 은 본 발명의 일 실시예에 따른 타일(Tile)을 도시한 도면이다.
도 8 은 본 발명의 일 실시예에 따른 360도 비디오 관련 메타데이터를 도시한 도면이다.
도9는 3DoF+ VR 시스템에서 추가적으로 정의되는 위치(viewpoint)와 시점(viewing position)를 나타낸다.
도10은 3DoF+ 시스템에 기반한 360도 비디오 신호처리 및 관련 전송장치/수신장치 구현 방법에 대해서 도시한다.
도 11은 3DoF+ end-to-end 시스템의 구조를 나타낸다.
도 12는 FLUS (Framework for Live Uplink Streaming)의 구조를 나타낸다.
도 13은 3DoF+ 송신단의 구성을 나타낸다.
도 14는 3DoF+ 수신단의 구성을 나타낸다.
도 15는 OMAF 구조를 나타낸다.
도 16은 사용자의 이동에 따른 미디어의 종류를 나타낸다.
도 17은 6DoF 비디오 제공을 위한 전체 아키텍처를 나타낸다.
도 18은 6DoF 비디오 서비스 제공을 위한 전송 장치의 구성을 나타낸다.
도 19는 6DoF 비디오 수신 장치의 구성을 나타낸다.
도 20은 6 DoF 비디오 전송/수신 장치의 구성을 나타낸다.
도 21은 6DoF 공간을 나타낸다.
도 22는 본 발명의 실시예들에 따른 스티칭(stitching) 처리된 VR 360 영상의 일 실시예를 나타낸다.
도 23은 본 발명의 실시예들에 따른 VR 디바이스 시스템의 일 실시예를 나타낸다.
도 24는 본 발명의 실시예들에 따른 VR 360 영상의 포맷으로, 프로젝션 스킴들의 일 실시예를 나타낸다.
도 25는 본 발명의 실시예들에 따른 리전-와이즈 패킹(region-wise packing) 방법에 대하여 설명한다.
도 26은 본 발명의 실시예들에 따른 타일(Tile) 단위 인코딩 시 썸네일(Thumbnail)로 사용될 ROI의 일 실시예를 나타낸다.
도 27은 본 발명의 실시예들에 따른 VR 디바이스를 나타낸다.
도 28(a)는 본 발명의 실시예들에 따른 VR 디바이스가 타일 기반으로 인코딩한 VR 360 비디오 데이터를 전송, 저장하는 일 실시예를 나타낸다.
도 28(b)는 본 발명의 실시예들에 따른 VR 디바이스가 타일 기반으로 인코딩한 VR 360 비디오 데이터를 전송, 저장 및 디코딩하는 일 실시예를 나타낸다.
도 29는 본 발명의 실시예들에 따른 VR 디바이스가 썸네일을 추출하기 위한 ROI의 일 실시예를 나타낸다.
도 30은 본 발명의 일 실시예들에 따른 VR 디바이스의 스케일러블 코딩 스킴을 나타낸다.
도 31은 본 발명의 실시예들에 따른 VR 디바이스가 MP4 표준을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 포멧의 일 실시예를 나타낸다.
도 32는 본 발명의 실시예들에 따른 VR 디바이스가 Matroska 형식을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 포멧의 일 실시예를 나타낸다.
도 33은 MPEG-TS 형식을 사용하여 ROI 정보에 대한 저장 및 시그널링의 일 예를 나타낸다.
도 34는 본 발명의 실시예들에 따른 VR 디바이스의 또 다른 일 실시예를 나타낸다.
도 35는 본 발명의 실시예들에 따른 VR 디바이스의 제어 방법의 일 실시예를 나타내는 순서도이다.
도 2 은 본 발명의 일 측면(aspect)에 따른 360도 비디오 전송 장치를 도시한 도면이다.
도 3 은 본 발명의 다른 측면에 따른 360도 비디오 수신 장치를 도시한 도면이다.
도 4 는 본 발명의 다른 실시예에 따른 360도 비디오 전송 장치/360도 비디오 수신 장치를 도시한 도면이다.
도 5 는 본 발명의 3D 공간을 설명하기 위한 비행기 주축(Aircraft Principal Axes) 개념을 도시한 도면이다.
도 6 는 본 발명의 일 실시예에 따른 프로젝션 스킴들을 도시한 도면이다.
도 7 은 본 발명의 일 실시예에 따른 타일(Tile)을 도시한 도면이다.
도 8 은 본 발명의 일 실시예에 따른 360도 비디오 관련 메타데이터를 도시한 도면이다.
도9는 3DoF+ VR 시스템에서 추가적으로 정의되는 위치(viewpoint)와 시점(viewing position)를 나타낸다.
도10은 3DoF+ 시스템에 기반한 360도 비디오 신호처리 및 관련 전송장치/수신장치 구현 방법에 대해서 도시한다.
도 11은 3DoF+ end-to-end 시스템의 구조를 나타낸다.
도 12는 FLUS (Framework for Live Uplink Streaming)의 구조를 나타낸다.
도 13은 3DoF+ 송신단의 구성을 나타낸다.
도 14는 3DoF+ 수신단의 구성을 나타낸다.
도 15는 OMAF 구조를 나타낸다.
도 16은 사용자의 이동에 따른 미디어의 종류를 나타낸다.
도 17은 6DoF 비디오 제공을 위한 전체 아키텍처를 나타낸다.
도 18은 6DoF 비디오 서비스 제공을 위한 전송 장치의 구성을 나타낸다.
도 19는 6DoF 비디오 수신 장치의 구성을 나타낸다.
도 20은 6 DoF 비디오 전송/수신 장치의 구성을 나타낸다.
도 21은 6DoF 공간을 나타낸다.
도 22는 본 발명의 실시예들에 따른 스티칭(stitching) 처리된 VR 360 영상의 일 실시예를 나타낸다.
도 23은 본 발명의 실시예들에 따른 VR 디바이스 시스템의 일 실시예를 나타낸다.
도 24는 본 발명의 실시예들에 따른 VR 360 영상의 포맷으로, 프로젝션 스킴들의 일 실시예를 나타낸다.
도 25는 본 발명의 실시예들에 따른 리전-와이즈 패킹(region-wise packing) 방법에 대하여 설명한다.
도 26은 본 발명의 실시예들에 따른 타일(Tile) 단위 인코딩 시 썸네일(Thumbnail)로 사용될 ROI의 일 실시예를 나타낸다.
도 27은 본 발명의 실시예들에 따른 VR 디바이스를 나타낸다.
도 28(a)는 본 발명의 실시예들에 따른 VR 디바이스가 타일 기반으로 인코딩한 VR 360 비디오 데이터를 전송, 저장하는 일 실시예를 나타낸다.
도 28(b)는 본 발명의 실시예들에 따른 VR 디바이스가 타일 기반으로 인코딩한 VR 360 비디오 데이터를 전송, 저장 및 디코딩하는 일 실시예를 나타낸다.
도 29는 본 발명의 실시예들에 따른 VR 디바이스가 썸네일을 추출하기 위한 ROI의 일 실시예를 나타낸다.
도 30은 본 발명의 일 실시예들에 따른 VR 디바이스의 스케일러블 코딩 스킴을 나타낸다.
도 31은 본 발명의 실시예들에 따른 VR 디바이스가 MP4 표준을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 포멧의 일 실시예를 나타낸다.
도 32는 본 발명의 실시예들에 따른 VR 디바이스가 Matroska 형식을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 포멧의 일 실시예를 나타낸다.
도 33은 MPEG-TS 형식을 사용하여 ROI 정보에 대한 저장 및 시그널링의 일 예를 나타낸다.
도 34는 본 발명의 실시예들에 따른 VR 디바이스의 또 다른 일 실시예를 나타낸다.
도 35는 본 발명의 실시예들에 따른 VR 디바이스의 제어 방법의 일 실시예를 나타내는 순서도이다.
본 발명의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 본 발명의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 본 발명의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
본 발명에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
도 1 은 본 발명에 따른 360도 비디오 제공을 위한 전체 아키텍처를 도시한 도면이다.
본 발명은 사용자에게 VR (Virtual Reality, 가상현실) 을 제공하기 위하여, 360도 컨텐츠를 제공하는 방안을 제안한다. VR 이란 실제 또는 가상의 환경을 복제(replicates) 하기 위한 기술 내지는 그 환경을 의미할 수 있다. VR 은 인공적으로 사용자에게 감각적 경험을 제공하며, 이를 통해 사용자는 전자적으로 프로젝션된 환경에 있는 것과 같은 경험을 할 수 있다.
360도 컨텐츠는 VR 을 구현, 제공하기 위한 컨텐츠 전반을 의미하며, 360도 비디오 및/또는 360도 오디오를 포함할 수 있다. 360도 비디오는 VR 을 제공하기 위해 필요한, 동시에 모든 방향(360도) 으로 캡쳐되거나 재생되는 비디오 내지 이미지 컨텐츠를 의미할 수 있다. 360도 비디오는 3D 모델에 따라 다양한 형태의 3D 공간 상에 나타내어지는 비디오 내지 이미지를 의미할 수 있으며, 예를 들어 360도 비디오는 구형(Spherical)면 상에 나타내어질 수 있다. 360도 오디오 역시 VR 을 제공하기 위한 오디오 컨텐츠로서, 음향 발생지가 3차원의 특정 공간상에 위치하는 것으로 인지될 수 있는, 공간적(Spatial) 오디오 컨텐츠를 의미할 수 있다. 360도 컨텐츠는 생성, 처리되어 사용자들로 전송될 수 있으며, 사용자들은 360도 컨텐츠를 이용하여 VR 경험을 소비할 수 있다. 이하, 360도 콘텐트/비디오/이미지/오디오 등은 단위(도, degree)가 생략된 360 콘텐트/비디오/이미지/오디오 등으로 사용될 수도 있고 VR 콘텐트/비디오/이미지/오디오 등으로 사용될 수도 있다.
본 발명은 특히 360 비디오를 효과적으로 제공하는 방안을 제안한다. 360 비디오를 제공하기 위하여, 먼저 하나 이상의 카메라를 통해 360 비디오가 캡쳐될 수 있다. 캡쳐된 360 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터를 다시 원래의 360 비디오로 가공하여 렌더링할 수 있다. 이를 통해 360 비디오가 사용자에게 제공될 수 있다.
구체적으로 360 비디오 제공을 위한 전체의 과정은 캡처 과정(process), 준비 과정, 전송 과정, 프로세싱 과정, 렌더링 과정 및/또는 피드백 과정을 포함할 수 있다.
캡처 과정은 하나 이상의 카메라를 통하여 복수개의 시점 각각에 대한 이미지 또는 비디오를 캡쳐하는 과정을 의미할 수 있다. 캡처 과정에 의해 도시된 (t1010) 과 같은 이미지/비디오 데이터가 생성될 수 있다. 도시된 (t1010) 의 각 평면은 각 시점에 대한 이미지/비디오를 의미할 수 있다. 이 캡쳐된 복수개의 이미지/비디오를 로(raw) 데이터라 할 수도 있다. 캡쳐 과정에서 캡쳐와 관련된 메타데이터가 생성될 수 있다.
이 캡처를 위하여 VR 을 위한 특수한 카메라가 사용될 수 있다. 실시예에 따라 컴퓨터로 생성된 가상의 공간에 대한 360 비디오를 제공하고자 하는 경우, 실제 카메라를 통한 캡처가 수행되지 않을 수 있다. 이 경우 단순히 관련 데이터가 생성되는 과정으로 해당 캡처 과정이 갈음될 수 있다.
준비 과정은 캡처된 이미지/비디오 및 캡쳐 과정에서 발생한 메타데이터를 처리하는 과정일 수 있다. 캡처된 이미지/비디오는 이 준비 과정에서, 스티칭 과정, 프로젝션 과정, 리전별 패킹 과정(Region-wise Packing) 및/또는 인코딩 과정 등을 거칠 수 있다.
먼저 각각의 이미지/비디오가 스티칭(Stitching) 과정을 거칠 수 있다. 스티칭 과정은 각각의 캡처된 이미지/비디오들을 연결하여 하나의 파노라마 이미지/비디오 또는 구형의 이미지/비디오를 만드는 과정일 수 있다.
이 후, 스티칭된 이미지/비디오는 프로젝션(Projection) 과정을 거칠 수 있다. 프로젝션 과정에서, 스트칭된 이미지/비디오는 2D 이미지 상에 프로젝션될 수 있다. 이 2D 이미지는 문맥에 따라 2D 이미지 프레임으로 불릴 수도 있다. 2D 이미지로 프로젝션하는 것을 2D 이미지로 매핑한다고 표현할 수도 있다. 프로젝션된 이미지/비디오 데이터는 도시된 (t1020) 과 같은 2D 이미지의 형태가 될 수 있다.
2D 이미지 상에 프로젝션된 비디오 데이터는 비디오 코딩 효율 등을 높이기 위하여 리전별 패킹 과정(Region-wise Packing)을 거칠 수 있다. 리전별 패킹이란, 2D 이미지 상에 프로젝션된 비디오 데이터를 리전(Region) 별로 나누어 처리를 가하는 과정을 의미할 수 있다. 여기서 리전(Region)이란, 360 비디오 데이터가 프로젝션된 2D 이미지가 나누어진 영역을 의미할 수 있다. 이 리전들은, 실시예에 따라, 2D 이미지를 균등하게 나누어 구분되거나, 임의로 나누어져 구분될 수 있다. 또한 실시예에 따라 리전들은, 프로젝션 스킴에 따라 구분되어질 수도 있다. 리전별 패킹 과정은 선택적(optional) 과정으로써, 준비 과정에서 생략될 수 있다.
실시예에 따라 이 처리 과정은, 비디오 코딩 효율을 높이기 위해, 각 리전을 회전한다거나 2D 이미지 상에서 재배열하는 과정을 포함할 수 있다. 예를 들어, 리전들을 회전하여 리전들의 특정 변들이 서로 근접하여 위치되도록 함으로써, 코딩 시의 효율이 높아지게 할 수 있다.
실시예에 따라 이 처리 과정은, 360 비디오상의 영역별로 레졸루션(resolution) 을 차등화하기 위하여, 특정 리전에 대한 레졸루션을 높인다거나, 낮추는 과정을 포함할 수 있다. 예를 들어, 360 비디오 상에서 상대적으로 더 중요한 영역에 해당하는 리전들은, 다른 리전들보다 레졸루션을 높게할 수 있다.2D 이미지 상에 프로젝션된 비디오 데이터 또는 리전별 패킹된 비디오 데이터는 비디오 코덱을 통한 인코딩 과정을 거칠 수 있다.
실시예에 따라 준비 과정은 부가적으로 에디팅(editing) 과정 등을 더 포함할 수 있다. 이 에디팅 과정에서 프로젝션 전후의 이미지/비디오 데이터들에 대한 편집 등이 더 수행될 수 있다. 준비 과정에서도 마찬가지로, 스티칭/프로젝션/인코딩/에디팅 등에 대한 메타데이터가 생성될 수 있다. 또한 2D 이미지 상에 프로젝션된 비디오 데이터들의 초기 시점, 혹은 ROI (Region of Interest) 등에 관한 메타데이터가 생성될 수 있다.
전송 과정은 준비 과정을 거친 이미지/비디오 데이터 및 메타데이터들을 처리하여 전송하는 과정일 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있다. 전송을 위한 처리를 마친 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있다. 이 데이터들은 온 디맨드(On Demand) 방식으로 수신측으로 전달될 수도 있다. 수신측에서는 다양한 경로를 통해 해당 데이터를 수신할 수 있다.
프로세싱 과정은 수신한 데이터를 디코딩하고, 프로젝션되어 있는 이미지/비디오 데이터를 3D 모델 상에 리-프로젝션(Re-projection) 하는 과정을 의미할 수 있다. 이 과정에서 2D 이미지들 상에 프로젝션되어 있는 이미지/비디오 데이터가 3D 공간 상으로 리-프로젝션될 수 있다. 이 과정을 문맥에 따라 매핑, 프로젝션이라고 부를 수도 있다. 이 때 매핑되는 3D 공간은 3D 모델에 따라 다른 형태를 가질 수 있다. 예를 들어 3D 모델에는 구형(Sphere), 큐브(Cube), 실린더(Cylinder) 또는 피라미드(Pyramid) 가 있을 수 있다.
실시예에 따라 프로세싱 과정은 부가적으로 에디팅(editing) 과정, 업 스케일링(up scaling) 과정 등을 더 포함할 수 있다. 이 에디팅 과정에서 리-프로젝션 전후의 이미지/비디오 데이터에 대한 편집 등이 더 수행될 수 있다. 이미지/비디오 데이터가 축소되어 있는 경우 업 스케일링 과정에서 샘플들의 업 스케일링을 통해 그 크기를 확대할 수 있다. 필요한 경우 다운 스케일링을 통해 사이즈를 축소하는 작업이 수행될 수도 있다.
렌더링 과정은 3D 공간상에 리-프로젝션된 이미지/비디오 데이터를 렌더링하고 디스플레이하는 과정을 의미할 수 있다. 표현에 따라 리-프로젝션과 렌더링을 합쳐 3D 모델 상에 렌더링한다 라고 표현할 수도 있다. 3D 모델 상에 리-프로젝션된 (또는 3D 모델 상으로 렌더링된) 이미지/비디오는 도시된 (t1030) 과 같은 형태를 가질 수 있다. 도시된 (t1030) 은 구형(Sphere) 의 3D 모델에 리-프로젝션된 경우이다. 사용자는 VR 디스플레이 등을 통하여 렌더링된 이미지/비디오의 일부 영역을 볼 수 있다. 이 때 사용자가 보게되는 영역은 도시된 (t1040) 과 같은 형태일 수 있다.
피드백 과정은 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하는 과정을 의미할 수 있다. 피드백 과정을 통해 360 비디오 소비에 있어 인터랙티비티(Interactivity) 가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션(Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트(Viewport) 정보 등이 송신측으로 전달될 수 있다. 실시예에 따라, 사용자는 VR 환경 상에 구현된 것들과 상호작용할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
헤드 오리엔테이션 정보는 사용자의 머리 위치, 각도, 움직임 등에 대한 정보를 의미할 수 있다. 이 정보를 기반으로 사용자가 현재 360 비디오 내에서 보고 있는 영역에 대한 정보, 즉 뷰포트 정보가 계산될 수 있다.
뷰포트 정보는 현재 사용자가 360 비디오에서 보고 있는 영역에 대한 정보일 수 있다. 이를 통해 게이즈 분석(Gaze Analysis) 이 수행되어, 사용자가 어떠한 방식으로 360 비디오를 소비하는지, 360 비디오의 어느 영역을 얼마나 응시하는지 등을 확인할 수도 있다. 게이즈 분석은 수신측에서 수행되어 송신측으로 피드백 채널을 통해 전달될 수도 있다. VR 디스플레이 등의 장치는 사용자의 머리 위치/방향, 장치가 지원하는 수직(vertical) 혹은 수평(horizontal) FOV 등에 근거하여 뷰포트 영역을 추출할 수 있다.
실시예에 따라, 전술한 피드백 정보는 송신측으로 전달되는 것 뿐아니라, 수신측에서 소비될 수도 있다. 즉, 전술한 피드백 정보를 이용하여 수신측의 디코딩, 리-프로젝션, 렌더링 과정 등이 수행될 수 있다. 예를 들어, 헤드 오리엔테이션 정보 및/또는 뷰포트 정보를 이용하여 현재 사용자가 보고 있는 영역에 대한 360 비디오만 우선적으로 디코딩 및 렌더링될 수도 있다.
여기서 뷰포트(viewport) 내지 뷰포트 영역이란, 사용자가 360 비디오에서 보고 있는 영역을 의미할 수 있다. 시점(viewpoint) 는 사용자가 360 비디오에서 보고 있는 지점으로서, 뷰포트 영역의 정중앙 지점을 의미할 수 있다. 즉, 뷰포트는 시점을 중심으로 한 영역인데, 그 영역이 차지하는 크기 형태 등은 후술할 FOV(Field Of View) 에 의해 결정될 수 있다.
전술한 360 비디오 제공을 위한 전체 아키텍처 내에서, 캡쳐/프로젝션/인코딩/전송/디코딩/리-프로젝션/렌더링의 일련의 과정을 거치게 되는 이미지/비디오 데이터들을 360 비디오 데이터라 부를 수 있다. 360 비디오 데이터라는 용어는 또한 이러한 이미지/비디오 데이터들과 관련되는 메타데이터 내지 시그널링 정보를 포함하는 개념으로 쓰일 수도 있다.
도 2 은 본 발명의 일 측면(aspect)에 따른 360도 비디오 전송 장치를 도시한 도면이다.
일 측면에 따르면 본 발명은 360 비디오 전송 장치와 관련될 수 있다. 본 발명에 따른 360 비디오 전송 장치는 전술한 준비 과정 내지 전송 과정에 관련된 동작들을 수행할 수 있다. 본 발명에 따른 360 비디오 전송 장치는 데이터 입력부, 스티처(Stitcher), 프로젝션 처리부, 리전별 패킹 처리부(도시되지 않음), 메타데이터 처리부, (송신측) 피드백 처리부, 데이터 인코더, 인캡슐레이션 처리부, 전송 처리부 및/또는 전송부를 내/외부 엘레멘트로서 포함할 수 있다.
데이터 입력부는 캡쳐된 각 시점별 이미지/비디오 들을 입력받을 수 있다. 이 시점별 이미지/비디오 들은 하나 이상의 카메라들에 의해 캡쳐된 이미지/비디오들일 수 있다. 또한 데이터 입력부는 캡쳐 과정에서 발생된 메타데이터를 입력받을 수 있다. 데이터 입력부는 입력된 시점별 이미지/비디오들을 스티처로 전달하고, 캡쳐 과정의 메타데이터를 시그널링 처리부로 전달할 수 있다.
스티처는 캡쳐된 시점별 이미지/비디오들에 대한 스티칭 작업을 수행할 수 있다. 스티처는 스티칭된 360 비디오 데이터를 프로젝션 처리부로 전달할 수 있다. 스티처는 필요한 경우 메타데이터 처리부로부터 필요한 메타데이터를 전달받아 스티칭 작업에 이용할 수 있다. 스티처는 스티칭 과정에서 발생된 메타데이터를 메타데이터 처리부로 전달할 수 있다. 스티칭 과정의 메타데이터에는 스티칭이 수행되었는지 여부, 스티칭 타입 등의 정보들이 있을 수 있다.
프로젝션 처리부는 스티칭된 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다. 프로젝션 처리부는 다양한 스킴(scheme)에 따라 프로젝션을 수행할 수 있는데, 이에 대해서는 후술한다. 프로젝션 처리부는 각 시점별 360 비디오 데이터의 해당 뎁스(depth)를 고려하여 매핑을 수행할 수 있다. 프로젝션 처리부는 필요한 경우 메타데이터 처리부로부터 프로젝션에 필요한 메타데이터를 전달받아 프로젝션 작업에 이용할 수 있다. 프로젝션 처리부는 프로젝션 과정에서 발생된 메타데이터를 메타데이터 처리부로 전달할 수 있다. 프로젝션 처리부의 메타데이터에는 프로젝션 스킴의 종류 등이 있을 수 있다.
리전별 패킹 처리부(도시되지 않음)는 전술한 리전별 패킹 과정을 수행할 수 있다. 즉, 리전별 패킹 처리부는 프로젝션된 360 비디오 데이터를 리전별로 나누고, 각 리전들을 회전, 재배열하거나, 각 리전의 레졸루션을 변경하는 등의 처리를 수행할 수 있다. 전술한 바와 같이 리전별 패킹 과정은 선택적(optional) 과정이며, 리전별 패킹이 수행되지 않는 경우, 리전별 패킹 처리부는 생략될 수 있다. 리전별 패킹 처리부는 필요한 경우 메타데이터 처리부로부터 리전별 패킹에 필요한 메타데이터를 전달받아 리전별 패킹 작업에 이용할 수 있다. 리전별 패킹 처리부는 리전별 패킹 과정에서 발생된 메타데이터를 메타데이터 처리부로 전달할 수 있다. 리전별 패킹 처리부의 메타데이터에는 각 리전의 회전 정도, 사이즈 등이 있을 수 있다.
전술한 스티처, 프로젝션 처리부 및/또는 리전별 패킹 처리부는 실시예에 따라 하나의 하드웨어 컴포넌트에서 수행될 수도 있다.
메타데이터 처리부는 캡처 과정, 스티칭 과정, 프로젝션 과정, 리전별 패킹 과정, 인코딩 과정, 인캡슐레이션 과정 및/또는 전송을 위한 처리 과정에서 발생할 수 있는 메타데이터들을 처리할 수 있다. 메타데이터 처리부는 이러한 메타데이터들을 이용하여 360 비디오 관련 메타데이터를 생성할 수 있다. 실시예에 따라 메타데이터 처리부는 360 비디오 관련 메타데이터를 시그널링 테이블의 형태로 생성할 수도 있다. 문맥에 따라 360 비디오 관련 메타데이터는 메타데이터 또는 360 비디오 관련 시그널링 정보라 불릴 수도 있다. 또한 메타데이터 처리부는 획득하거나 생성한 메타데이터들을 필요에 따라 360 비디오 전송 장치의 내부 엘레멘트들에 전달할 수 있다. 메타데이터 처리부는 360 비디오 관련 메타데이터가 수신측으로 전송될 수 있도록 데이터 인코더, 인캡슐레이션 처리부 및/또는 전송 처리부에 전달할 수 있다.
데이터 인코더는 2D 이미지 상에 프로젝션된 360 비디오 데이터 및/또는 리전별 패킹된 360 비디오 데이터를 인코딩할 수 있다. 360 비디오 데이터는 다양한 포맷으로 인코딩될 수 있다.
인캡슐레이션 처리부는 인코딩된 360 비디오 데이터 및/또는 360 비디오 관련 메타데이터를 파일 등의 형태로 인캡슐레이션할 수 있다. 여기서 360 비디오 관련 메타데이터는 전술한 메타데이터 처리부로부터 전달받은 것일 수 있다. 인캡슐레이션 처리부는 해당 데이터들을 ISOBMFF, CFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인캡슐레이션 처리부는 실시예에 따라 360 비디오 관련 메타데이터를 파일 포맷 상에 포함시킬 수 있다. 360 관련 메타데이터는 예를 들어 ISOBMFF 파일 포맷 상의 다양한 레벨의 박스(box)에 포함되거나 파일 내에서 별도의 트랙내의 데이터로 포함될 수 있다. 실시예에 따라, 인캡슐레이션 처리부는 360 비디오 관련 메타데이터 자체를 파일로 인캡슐레이션할 수 있다.전송 처리부는 파일 포맷에 따라 인캡슐레이션된 360 비디오 데이터에 전송을 위한 처리를 가할 수 있다. 전송 처리부는 임의의 전송 프로토콜에 따라 360 비디오 데이터를 처리할 수 있다. 전송을 위한 처리에는 방송망을 통한 전달을 위한 처리, 브로드밴드를 통한 전달을 위한 처리를 포함할 수 있다. 실시예에 따라 전송 처리부는 360 비디오 데이터 뿐 아니라, 메타데이터 처리부로부터 360 비디오 관련 메타데이터를 전달받아, 이 것에 전송을 위한 처리를 가할 수도 있다.
전송부는 전송 처리된 360 비디오 데이터 및/또는 360 비디오 관련 메타데이터를 방송망 및/또는 브로드밴드를 통해 전송할 수 있다. 전송부는 방송망을 통한 전송을 위한 엘레멘트 및/또는 브로드밴드를 통한 전송을 위한 엘레멘트를 포함할 수 있다.
본 발명에 따른 360 비디오 전송 장치의 일 실시예에 의하면, 360 비디오 전송 장치는 데이터 저장부(도시되지 않음)를 내/외부 엘레멘트로서 더 포함할 수 있다. 데이터 저장부는 인코딩된 360 비디오 데이터 및/또는 360 비디오 관련 메타데이터를 전송 처리부로 전달하기 전에 저장하고 있을 수 있다. 이 데이터들이 저장되는 형태는 ISOBMFF 등의 파일 형태일 수 있다. 실시간으로 360 비디오를 전송하는 경우에는 데이터 저장부가 필요하지 않을 수 있으나, 온 디맨드, NRT (Non Real Time), 브로드밴드 등을 통해 전달하는 경우에는 인캡슐레이션된 360 데이터가 데이터 저장부에 일정 기간 저장되었다가 전송될 수도 있다.
본 발명에 따른 360 비디오 전송 장치의 다른 실시예에 의하면, 360 비디오 전송 장치는 (송신측) 피드백 처리부 및/또는 네트워크 인터페이스(도시되지 않음)를 내/외부 엘레멘트로서 더 포함할 수 있다. 네트워크 인터페이스는 본 발명에 따른 360 비디오 수신 장치로부터 피드백 정보를 전달받고, 이를 송신측 피드백 처리부로 전달할 수 있다. 송신측 피드백 처리부는 피드백 정보를 스티처, 프로젝션 처리부, 리전별 패킹 처리부, 데이터 인코더, 인캡슐레이션 처리부, 메타데이터 처리부 및/또는 전송 처리부로 전달할 수 있다. 실시예에 따라 피드백 정보는 메타데이터 처리부에 일단 전달된 후, 다시 각 내부 엘레멘트들로 전달될 수 있다. 피드백 정보를 전달받은 내부 엘레먼트들은 이 후의 360 비디오 데이터의 처리에 피드백 정보를 반영할 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 리전별 패킹 처리부는 각 리전을 회전하여 2D 이미지 상에 매핑할 수 있다. 이 때 각 리전들은 서로 다른 방향, 서로 다른 각도로 회전되어 2D 이미지 상에 매핑될 수 있다. 리전의 회전은 360 비디오 데이터가 구형의 면 상에서 프로젝션 전에 인접했던 부분, 스티칭된 부분 등을 고려하여 수행될 수 있다. 리전의 회전에 관한 정보들, 즉 회전 방향, 각도 등은 360 비디오 관련 메타데이터에 의해 시그널링될 수 있다.본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 데이터 인코더는 각 리전 별로 다르게 인코딩을 수행할 수 있다. 데이터 인코더는 특정 리전은 높은 퀄리티로, 다른 리전은 낮은 퀄리티로 인코딩을 수행할 수 있다. 송신측 피드백 처리부는 360 비디오 수신 장치로부터 전달받은 피드백 정보를 데이터 인코더로 전달하여, 데이터 인코더가 리전별 차등화된 인코딩 방법을 사용하도록 할 수 있다. 예를 들어 송신측 피드백 처리부는 수신측으로부터 전달받은 뷰포트 정보를 데이터 인코더로 전달할 수 있다. 데이터 인코더는 뷰포트 정보가 지시하는 영역을 포함하는 리전들에 대해 다른 리전들보다 더 높은 퀄리티(UHD 등) 로 인코딩을 수행할 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 전송 처리부는 각 리전 별로 다르게 전송을 위한 처리를 수행할 수 있다. 전송 처리부는 리전 별로 다른 전송 파라미터(모듈레이션 오더, 코드 레이트 등)를 적용하여, 각 리전 별로 전달되는 데이터의 강건성(robustenss) 을 다르게 할 수 있다.
이 때, 송신측 피드백 처리부는 360 비디오 수신 장치로부터 전달받은 피드백 정보를 전송 처리부로 전달하여, 전송 처리부가 리전별 차등화된 전송 처리를 수행하도록 할 수 있다. 예를 들어 송신측 피드백 처리부는 수신측으로부터 전달받은 뷰포트 정보를 전송 처리부로 전달할 수 있다. 전송 처리부는 해당 뷰포트 정보가 지시하는 영역을 포함하는 리전들에 대해 다른 리전들보다 더 높은 강건성을 가지도록 전송 처리를 수행할 수 있다.
전술한 본 발명에 따른 360 비디오 전송 장치의 내/외부 엘레멘트들은 하드웨어로 구현되는 하드웨어 엘레멘트들일 수 있다. 실시예에 따라 내/외부 엘레멘트들은 변경, 생략되거나 다른 엘레멘트로 대체, 통합될 수 있다. 실시예에 따라 부가 엘레멘트들이 360 비디오 전송 장치에 추가될 수도 있다.
도 3 은 본 발명의 다른 측면에 따른 360도 비디오 수신 장치를 도시한 도면이다.
다른 측면에 따르면 본 발명은 360 비디오 수신 장치와 관련될 수 있다. 본 발명에 따른 360 비디오 수신 장치는 전술한 프로세싱 과정 및/또는 렌더링 과정에 관련된 동작들을 수행할 수 있다. 본 발명에 따른 360 비디오 수신 장치는 수신부, 수신 처리부, 디캡슐레이션 처리부, 데이터 디코더, 메타데이터 파서, (수신측) 피드백 처리부, 리-프로젝션 처리부 및/또는 렌더러를 내/외부 엘레멘트로서 포함할 수 있다.
수신부는 본 발명에 따른 360 비디오 전송 장치가 전송한 360 비디오 데이터를 수신할 수 있다. 전송되는 채널에 따라 수신부는 방송망을 통하여 360 비디오 데이터를 수신할 수도 있고, 브로드밴드를 통하여 360 비디오 데이터를 수신할 수도 있다.
수신 처리부는 수신된 360 비디오 데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 전송측에서 전송을 위한 처리가 수행된 것에 대응되도록, 수신 처리부는 전술한 전송 처리부의 역과정을 수행할 수 있다. 수신 처리부는 획득한 360 비디오 데이터는 디캡슐레이션 처리부로 전달하고, 획득한 360 비디오 관련 메타데이터는 메타데이터 파서로 전달할 수 있다. 수신 처리부가 획득하는 360 비디오 관련 메타데이터는 시그널링 테이블의 형태일 수 있다.
디캡슐레이션 처리부는 수신 처리부로부터 전달받은 파일 형태의 360 비디오 데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 ISOBMFF 등에 따른 파일들을 디캡슐레이션하여, 360 비디오 데이터 내지 360 비디오 관련 메타데이터를 획득할 수 있다. 획득된 360 비디오 데이터는 데이터 디코더로, 획득된 360 비디오 관련 메타데이터는 메타데이터 파서로 전달할 수 있다. 디캡슐레이션 처리부가 획득하는 360 비디오 관련 메타데이터는 파일 포맷 내의 박스 혹은 트랙 형태일 수 있다. 디캡슐레이션 처리부는 필요한 경우 메타데이터 파서로부터 디캡슐레이션에 필요한 메타데이터를 전달받을 수도 있다.
데이터 디코더는 360 비디오 데이터에 대한 디코딩을 수행할 수 있다. 데이터 디코더는 메타데이터 파서로부터 디코딩에 필요한 메타데이터를 전달받을 수도 있다. 데이터 디코딩 과정에서 획득된 360 비디오 관련 메타데이터는 메타데이터 파서로 전달될 수도 있다.
메타데이터 파서는 360 비디오 관련 메타데이터에 대한 파싱/디코딩을 수행할 수 있다. 메타데이터 파서는 획득한 메타데이터를 데이터 디캡슐레이션 처리부, 데이터 디코더, 리-프로젝션 처리부 및/또는 렌더러로 전달할 수 있다.
리-프로젝션 처리부는 디코딩된 360 비디오 데이터에 대하여 리-프로젝션을 수행할 수 있다. 리-프로젝션 처리부는 360 비디오 데이터를 3D 공간으로 리-프로젝션할 수 있다. 3D 공간은 사용되는 3D 모델에 따라 다른 형태를 가질 수 있다. 리-프로젝션 처리부는 메타데이터 파서로부터 리-프로젝션에 필요한 메타데이터를 전달받을 수도 있다. 예를 들어 리-프로젝션 처리부는 사용되는 3D 모델의 타입 및 그 세부 정보에 대한 정보를 메타데이터 파서로부터 전달받을 수 있다. 실시예에 따라 리-프로젝션 처리부는 리-프로젝션에 필요한 메타데이터를 이용하여, 3D 공간 상의 특정 영역에 해당하는 360 비디오 데이터만을 3D 공간으로 리-프로젝션할 수도 있다.
렌더러는 리-프로젝션된 360 비디오 데이터를 렌더링할 수 있다. 전술한 바와 같이 360 비디오 데이터가 3D 공간상에 렌더링된다고 표현할 수도 있는데, 이처럼 두 과정이 한번에 일어나는 경우 리-프로젝션 처리부와 렌더러는 통합되어, 렌더러에서 이 과정들이 모두 진행될 수 있다. 실시예에 따라 렌더러는 사용자의 시점 정보에 따라 사용자가 보고 있는 부분만을 렌더링할 수도 있다.
사용자는 VR 디스플레이 등을 통하여 렌더링된 360 비디오의 일부 영역을 볼 수 있다. VR 디스플레이는 360 비디오를 재생하는 장치로서, 360 비디오 수신 장치에 포함될 수도 있고(tethered), 별도의 장치로서 360 비디오 수신 장치에 연결될 수도 있다(un-tethered).
본 발명에 따른 360 비디오 수신 장치의 일 실시예에 의하면, 360 비디오 수신 장치는 (수신측) 피드백 처리부 및/또는 네트워크 인터페이스(도시되지 않음)를 내/외부 엘레멘트로서 더 포함할 수 있다. 수신측 피드백 처리부는 렌더러, 리-프로젝션 처리부, 데이터 디코더, 디캡슐레이션 처리부 및/또는 VR 디스플레이로부터 피드백 정보를 획득하여 처리할 수 있다. 피드백 정보는 뷰포트 정보, 헤드 오리엔테이션 정보, 게이즈(Gaze) 정보 등을 포함할 수 있다. 네트워크 인터페이스는 피드백 정보를 수신측 피드백 처리부로부터 전달받고, 이를 360 비디오 전송 장치로 전송할 수 있다.
전술한 바와 같이, 피드백 정보는 송신측으로 전달되는 것 뿐아니라, 수신측에서 소비될 수도 있다. 수신측 피드백 처리부는 획득한 피드백 정보를 360 비디오 수신 장치의 내부 엘레멘트들로 전달하여, 렌더링 등의 과정에 반영되게 할 수 있다. 수신측 피드백 처리부는 피드백 정보를 렌더러, 리-프로젝션 처리부, 데이터 디코더 및/또는 디캡슐레이션 처리부로 전달할 수 있다. 예를 들어, 렌더러는 피드백 정보를 활용하여 사용자가 보고 있는 영역을 우선적으로 렌더링할 수 있다. 또한 디캡슐레이션 처리부, 데이터 디코더 등은 사용자가 보고 있는 영역 내지 보게될 영역을 우선적으로 디캡슐레이션, 디코딩할 수 있다.
전술한 본 발명에 따른 360 비디오 수신 장치의 내/외부 엘레멘트들은 하드웨어로 구현되는 하드웨어 엘레멘트들일 수 있다. 실시예에 따라 내/외부 엘레멘트들은 변경, 생략되거나 다른 엘레멘트로 대체, 통합될 수 있다. 실시예에 따라 부가 엘레멘트들이 360 비디오 수신 장치에 추가될 수도 있다.
본 발명의 또 다른 측면은 360 비디오를 전송하는 방법 및 360 비디오를 수신하는 방법과 관련될 수 있다. 본 발명에 따른 360 비디오를 전송/수신하는 방법은, 각각 전술한 본 발명에 따른 360 비디오 전송/수신 장치 또는 그 장치의 실시예들에 의해 수행될 수 있다.
전술한 본 발명에 따른 360 비디오 전송/수신 장치, 전송/수신 방법의 각각의 실시예 및 그 내/외부 엘리멘트 각각의 실시예들을 서로 조합될 수 있다. 예를 들어 프로젝션 처리부의 실시예들과, 데이터 인코더의 실시예들은 서로 조합되어, 그 경우의 수만큼의 360 비디오 전송 장치의 실시예들을 만들어 낼 수 있다. 이렇게 조합된 실시예들 역시 본 발명의 범위에 포함된다.
도 4 는 본 발명의 다른 실시예에 따른 360도 비디오 전송 장치/360도 비디오 수신 장치를 도시한 도면이다.
전술한 바와 같이, 도시된 (a) 와 같은 아키텍처에 의하여 360 컨텐츠가 제공될 수 있다. 360 컨텐츠는 파일 형태로 제공되거나, DASH 등과 같이 세그먼트(segment) 기반 다운로드 또는 스트리밍 서비스의 형태로 제공될 수 있다. 여기서 360 컨텐츠는 VR 컨텐츠로 불릴 수 있다.
전술한 바와 같이 360 비디오 데이터 및/또는 360 오디오 데이터가 획득될 수 있다(Acquisition).
360 오디오 데이터는 오디오 프리-프로세싱 과정(Audio Preprocessing), 오디오 인코딩 과정(Audio encoding)을 거칠 수 있다. 이 과정에서 오디오 관련 메타데이터가 생성될 수 있으며, 인코딩된 오디오와 오디오 관련 메타데이터는 전송을 위한 처리(file/segment encapsulation)를 거칠 수 있다.
360 비디오 데이터는 전술한 것과 같은 과정을 거칠 수 있다. 360 비디오 전송 장치의 스티처는 360 비디오 데이터에 스티칭을 수행할 수 있다(Visual stitching). 이 과정은 실시예에 따라 생략되고 수신측에서 수행될 수도 있다. 360 비디오 전송 장치의 프로젝션 처리부는 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다(Projection and mapping(packing)).
이 스티칭 및 프로젝션 과정은 (b) 에 구체적으로 도시되었다. 도시된 (b) 에서, 360 비디오 데이터(Input Images) 를 전달받으면, 이에 스티칭 및 프로젝션이 수행될 수 있다. 프로젝션 과정은 구체적으로 스티칭된 360 비디오 데이터를 3D 공간 상으로 프로젝션하고, 프로젝션된 360 비디오 데이터가 2D 이미지 상으로 배열되는 것으로 볼 수 있다. 본 명세서에서 이 과정을 360 비디오 데이터를 2D 이미지 상으로 프로젝션한다고 표현할 수도 있다. 여기서 3D 공간은 구(sphere) 또는 큐브(cube) 등일 수 있다. 이 3D 공간은 수신측에서 리-프로젝션에 사용되는 3D 공간과 같을 수도 있다.
2D 이미지는 프로젝티드 프레임(C, Projected frame) 이라 불릴 수도 있다. 이 2D 이미지에 리전별 패킹(Region-wise packing) 이 선택적으로 더 수행될 수도 있다. 리전별 패킹이 수행되는 경우, 각 리전(Region)의 위치, 형태, 크기를 지시함으로써, 2D 이미지 상의 리전들이 팩드 프레임(D, packed frame) 상으로 매핑될 수 있다. 리전별 패킹이 수행되지 않는 경우, 프로젝티드 프레임은 팩드 프레임과 같을 수 있다. 리전에 대해서는 후술한다. 프로젝션 과정 및 리전별 패킹 과정을, 360 비디오 데이터의 각 리전들이 2D 이미지 상에 프로젝션된다고 표현할 수도 있다. 설계에 따라, 360 비디오 데이터는 중간 과정 없이 팩드 프레임으로 바로 변환될 수도 있다.
도시된 (a) 에서, 프로젝션된 360 비디오 데이터는 이미지 인코딩 내지 비디오 인코딩될 수 있다. 같은 컨텐트라도 다른 시점(viewpoints)별로 존재할 수 있으므로, 같은 컨텐트가 서로 다른 비트 스트림으로 인코딩될 수도 있다. 인코딩된 360 비디오 데이터는 전술한 인캡슐레이션 처리부에 의해 ISOBMFF 등의 파일 포맷으로 처리될 수 있다. 또는 인캡슐레이션 처리부는 인코딩된 360 비디오 데이터를 세그먼트들로 처리할 수 있다. 세그먼트들은 DASH 에 기반한 전송을 위한 개별 트랙에 포함될 수 있다.
360 비디오 데이터의 처리와 함께, 전술한 것과 같이 360 비디오 관련 메타데이터가 생성될 수 있다. 이 메타데이터는 비디오 스트림 혹은 파일 포맷에 포함되어 전달될 수 있다. 이 메타데이터는 인코딩 과정이나 파일 포맷 인캡슐레이션, 전송을 위한 처리 등과 같은 과정에도 쓰일 수 있다.
360 오디오/비디오 데이터는 전송 프로토콜에 따라 전송을 위한 처리를 거치고, 이후 전송될 수 있다. 전술한 360 비디오 수신 장치는 이를 방송망 또는 브로드밴드를 통해 수신할 수 있다.
도시된 (a) 에서 VR 서비스 플랫폼(VR service platform) 은 전술한 360 비디오 수신 장치의 일 실시예에 해당할 수 있다. 도시된 (a) 에서 스피커/헤드폰(Loudspeakers/headphones), 디스플레이(Display), 헤드/아이 트랙킹 컴포넌트(Head/eye tracking) 는 360 비디오 수신 장치의 외부 장치 내지 VR 어플리케이션에 의해 수행되는 것으로 도시되었는데, 실시예에 따라 360 비디오 수신 장치는 이 들을 모두 포함할 수도 있다. 실시예에 따라 헤드/아이 트랙킹 컴포넌트는 전술한 수신측 피드백 처리부에 해당할 수 있다.
360 비디오 수신 장치는 360 오디오/비디오 데이터에 수신을 위한 처리(File/segment decapsulation)를 수행할 수 있다. 360 오디오 데이터는 오디오 디코딩(Audio decoding), 오디오 렌더링(Audio rendering) 과정을 거쳐 스피커/헤드폰을 통해 사용자에게 제공될 수 있다.
360 비디오 데이터는 이미지 디코딩 내지 비디오 디코딩, 렌더링(Visual rendering) 과정을 거쳐 디스플레이를 통해 사용자에게 제공될 수 있다. 여기서 디스플레이는 VR 을 지원하는 디스플레이거나 일반 디스플레이일 수 있다.
전술한 바와 같이 렌더링 과정은 구체적으로, 360 비디오 데이터가 3D 공간 상에 리-프로젝션되고, 리-프로젝션된 360 비디오 데이터가 렌더링되는 것으로 볼 수 있다. 이를 360 비디오 데이터가 3D 공간 상에 렌더링된다고 표현할 수도 있다.
헤드/아이 트랙킹 컴포넌트는 사용자의 헤드 오리엔테이션 정보, 게이즈 정보, 뷰포트(Viewport) 정보 등을 획득, 처리할 수 있다. 이에 대해서는 전술하였다.
수신측에서는 전술한 수신측 과정들과 통신하는 VR 어플리케이션이 존재할 수 있다.
도 5 는 본 발명의 3D 공간을 설명하기 위한 비행기 주축(Aircraft Principal Axes) 개념을 도시한 도면이다.
본 발명에서, 3D 공간에서의 특정 지점, 위치, 방향, 간격, 영역 등을 표현하기 위하여 비행기 주축 개념이 사용될 수 있다.
즉, 본 발명에서 프로젝션 전 또는 리-프로젝션 후의 3D 공간에 대해 기술하고, 그에 대한 시그널링을 수행하기 위하여 비행기 주축 개념이 사용될 수 있다. 실시예에 따라 X, Y, Z 축 개념 또는 구 좌표계를 이용한 방법이 사용될 수도 있다.
비행기는 3 차원으로 자유롭게 회전할 수 있다. 3차원을 이루는 축을 각각 피치(pitch) 축, 야(yaw) 축 및 롤(roll) 축이라고 한다. 본 명세서에서 이 들을 줄여서 pitch, yaw, roll 내지 pitch 방향, yaw 방향, roll 방향이라고 표현할 수도 있다.
Pitch 축은 비행기의 앞코가 위/아래로 회전하는 방향의 기준이 되는 축을 의미할 수 있다. 도시된 비행기 주축 개념에서 pitch 축은 비행기의 날개에서 날개로 이어지는 축을 의미할 수 있다.
Yaw 축은 비행기의 앞코가 좌/우로 회전하는 방향의 기준이 되는 축을 의미할 수 있다. 도시된 비행기 주축 개념에서 yaw 축은 비행기의 위에서 아래로 이어지는 축을 의미할 수 있다.
Roll 축은 도시된 비행기 주축 개념에서 비행기의 앞코에서 꼬리로 이어지는 축으로서, roll 방향의 회전이란 roll 축을 기준으로 한 회전을 의미할 수 있다.
전술한 바와 같이, pitch, yaw, roll 개념을 통해 본 발명에서의 3D 공간이 기술될 수 있다.
도 6 는 본 발명의 일 실시예에 따른 프로젝션 스킴들을 도시한 도면이다.
전술한 바와 같이 본 발명에 따른 360 비디오 전송 장치의 프로젝션 처리부는 스티칭된 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다. 이 과정에서 다양한 프로젝션 스킴들이 활용될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 프로젝션 처리부는 큐빅 프로젝션(Cubic Projection) 스킴을 이용하여 프로젝션을 수행할 수 있다. 예를 들어 스티칭된 360 비디오 데이터는 구형의 면 상에 나타내어질 수 있다. 프로젝션 처리부는 이러한 360 비디오 데이터를 큐브(Cube, 정육면체) 형태로 나누어 2D 이미지 상에 프로젝션할 수 있다. 구형의 면 상의 360 비디오 데이터는 큐브의 각 면에 대응되어, 2D 이미지 상에 (a) 좌측 또는 (a) 우측과 같이 프로젝션될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 프로젝션 처리부는 실린더형 프로젝션(Cylindrical Projection) 스킴을 이용하여 프로젝션을 수행할 수 있다. 마찬가지로 스티칭된 360 비디오 데이터가 구형의 면 상에 나타내어질 수 있다고 가정할 때, 프로젝션 처리부는 이러한 360 비디오 데이터를 실린더(Cylinder) 형태로 나누어 2D 이미지 상에 프로젝션할 수 있다. 구형의 면 상의 360 비디오 데이터는 실린더의 옆면(side)과 윗면(top), 바닥면(bottom) 에 각각 대응되어, 2D 이미지 상에 (b) 좌측 또는 (b) 우측과 같이 프로젝션될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 프로젝션 처리부는 피라미드 프로젝션(Pyramid Projection) 스킴을 이용하여 프로젝션을 수행할 수 있다. 마찬가지로 스티칭된 360 비디오 데이터가 구형의 면 상에 나타내어질 수 있다고 가정할 때, 프로젝션 처리부는 이러한 360 비디오 데이터를 피라미드 형태로 보고, 각 면을 나누어 2D 이미지 상에 프로젝션할 수 있다. 구형의 면 상의 360 비디오 데이터는 피라미드의 바닥면(front), 피라미드의 4방향의 옆면(Left top, Left bottom, Right top, Right bottom) 에 각각 대응되어, 2D 이미지 상에 (c) 좌측 또는 (c) 우측과 같이 프로젝션될 수 있다.
실시예에 따라 프로젝션 처리부는 전술한 스킴들 외에 등정방형 프로젝션(Equirectangular Projection) 스킴, 파노라믹 프로젝션(Panoramic Projection) 스킴 등을 이용하여 프로젝션을 수행할 수도 있다.
전술한 바와 같이 리전(Region) 이란, 360 비디오 데이터가 프로젝션된 2D 이미지가 나누어진 영역을 의미할 수 있다. 이 리전들은 프로젝션 스킴에 따라 프로젝션된 2D 이미지 상의 각 면들과 일치할 필요는 없다. 그러나 실시예에 따라, 프로젝션된 2D 이미지 상의 각 면들이 리전과 대응되도록 리전이 구분되어, 리전별 패킹이 수행될 수도 있다. 실시예에 따라 복수개의 면들이 하나의 리전에 대응될 수도 있고, 하나의 면이 복수개의 리전에 대응되게 리전이 구분될 수도 있다. 이 경우, 리전은 프로젝션 스킴에 따라 달라질 수 있다. 예를 들어 (a) 에서 정육면체의 각 면들(top, bottom, front, left, right, back) 은 각각 리전일 수 있다. (b) 에서 실린더의 옆면(side), 윗면(top), 바닥면(bottom) 은 각각 리전일 수 있다. (c) 에서 피라미드의 바닥면(front), 4방향 옆면(Left top, Left bottom, Right top, Right bottom) 들은 각각 리전일 수 있다.
도 7 은 본 발명의 일 실시예에 따른 타일(Tile)을 도시한 도면이다.
2D 이미지에 프로젝션된 360 비디오 데이터 또는 리전별 패킹까지 수행된 360 비디오 데이터는 하나 이상의 타일로 구분될 수 있다. 도시된 (a) 는 하나의 2D 이미지가 16 개의 타일로 나뉘어진 형태를 도시하고 있다. 여기서 2D 이미지란 전술한 프로젝티드 프레임 내지는 팩드 프레임일 수 있다. 본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 데이터 인코더는 각각의 타일을 독립적으로 인코딩할 수 있다.
전술한 리전별 패킹과 타일링(Tiling)은 구분될 수 있다. 전술한 리전별 패킹은 코딩 효율을 높이기 위해 또는 레졸루션을 조정하기 위하여 2D 이미지상에 프로젝션된 360 비디오 데이터를 리전으로 구분하여 처리하는 것을 의미할 수 있다. 타일링은 데이터 인코더가 프로젝티드 프레임 내지는 팩드 프레임을 타일이라는 구획별로 나누고, 해당 타일들 별로 독립적으로 인코딩을 수행하는 것을 의미할 수 있다. 360 비디오가 제공될 때, 사용자는 360 비디오의 모든 부분을 동시에 소비하지 않는다. 타일링은 제한된 밴드위스(bandwidth)상에서 사용자가 현재 보는 뷰포트 등 중요 부분 내지 일정 부분에 해당하는 타일만을 수신측으로 전송 혹은 소비하는 것을 가능케할 수 있다. 타일링을 통해 제한된 밴드위스가 더 효율적으로 활용될 수 있고, 수신측에서도 모든 360 비디오 데이터를 한번에 다 처리하는 것에 비하여 연산 부하를 줄일 수 있다.
리전과 타일은 구분되므로, 두 영역이 같을 필요는 없다. 그러나 실시예에 따라 리전과 타일은 같은 영역을 지칭할 수도 있다. 실시예에 따라 타일에 맞추어 리전별 패킹이 수행되어 리전과 타일이 같아질 수 있다. 또한 실시예에 따라, 프로젝션 스킴에 따른 각 면과 리전이 같은 경우, 프로젝션 스킴에 따른 각 면, 리전, 타일이 같은 영역을 지칭할 수도 있다. 문맥에 따라 리전은 VR 리전, 타일을 타일 리전으로 불릴 수도 있다.
ROI (Region of Interest) 는 360 컨텐츠 제공자가 제안하는, 사용자들의 관심 영역을 의미할 수 있다. 360 컨텐츠 제공자는 360 비디오를 제작할 때, 어느 특정 영역을 사용자들이 관심있어 할 것으로 보고, 이를 고려하여 360 비디오를 제작할 수 있다. 실시예에 따라 ROI 는 360 비디오의 컨텐츠 상, 중요한 내용이 재생되는 영역에 해당할 수 있다.
본 발명에 따른 360 비디오 전송/수신 장치의 또 다른 실시예에 의하면, 수신측 피드백 처리부는 뷰포트 정보를 추출, 수집하여 이를 송신측 피드백 처리부로 전달할 수 있다. 이 과정에서 뷰포트 정보는 양 측의 네트워크 인터페이스를 이용해 전달될 수 있다. 도시된 (a) 의 2D 이미지에서 뷰포트 (t6010) 가 표시되었다. 여기서 뷰포트 는 2D 이미지 상의 9 개의 타일에 걸쳐 있을 수 있다.
이 경우 360 비디오 전송 장치는 타일링 시스템을 더 포함할 수 있다. 실시예에 따라 타일링 시스템은 데이터 인코더 다음에 위치할 수도 있고(도시된 (b)), 전술한 데이터 인코더 내지 전송 처리부 내에 포함될 수도 있고, 별개의 내/외부 엘리먼트로서 360 비디오 전송 장치에 포함될 수 있다.
타일링 시스템은 송신측 피드백 처리부로부터 뷰포트 정보를 전달받을 수 있다. 타일링 시스템은 뷰포트 영역이 포함되는 타일만을 선별하여 전송할 수 있다. 도시된 (a) 의 2D 이미지에서 총 16 개의 타일 중 뷰포트 영역(t6010) 을 포함하는 9 개의 타일들만이 전송될 수 있다. 여기서 타일링 시스템은 브로드밴드를 통한 유니캐스트 방식으로 타일들을 전송할 수 있다. 사용자에 따라 뷰포트 영역이 다르기 때문이다.
또한 이 경우 송신측 피드백 처리부는 뷰포트 정보를 데이터 인코더로 전달할 수 있다. 데이터 인코더는 뷰포트 영역을 포함하는 타일들에 대해 다른 타일들보다 더 높은 퀄리티로 인코딩을 수행할 수 있다.
또한 이 경우 송신측 피드백 처리부는 뷰포트 정보를 메타데이터 처리부로 전달할 수 있다. 메타데이터 처리부는 뷰포트 영역과 관련된 메타데이터 를 360 비디오 전송 장치의 각 내부 엘레먼트로 전달해주거나, 360 비디오 관련 메타데이터에 포함시킬 수 있다.
이러한 타일링 방식을 통하여, 전송 밴드위스(bandwidth)가 절약될 수 있으며, 타일 별로 차등화된 처리를 수행하여 효율적 데이터 처리/전송이 가능해질 수 있다.
전술한 뷰포트 영역과 관련된 실시예들은 뷰포트 영역이 아닌 다른 특정 영역들에 대해서도 유사한 방식으로 적용될 수 있다. 예를 들어, 전술한 게이즈 분석을 통해 사용자들이 주로 관심있어 하는 것으로 판단된 영역, ROI 영역, 사용자가 VR 디스플레이를 통해 360 비디오를 접할 때 처음으로 재생되는 영역(초기 시점, Initial Viewpoint) 등에 대해서도, 전술한 뷰포트 영역과 같은 방식의 처리들이 수행될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 전송 처리부는 각 타일 별로 다르게 전송을 위한 처리를 수행할 수 있다. 전송 처리부는 타일 별로 다른 전송 파라미터(모듈레이션 오더, 코드 레이트 등)를 적용하여, 각 타일 별로 전달되는 데이터의 강건성(robustenss)을 다르게 할 수 있다.
이 때, 송신측 피드백 처리부는 360 비디오 수신 장치로부터 전달받은 피드백 정보를 전송 처리부로 전달하여, 전송 처리부가 타일별 차등화된 전송 처리를 수행하도록 할 수 있다. 예를 들어 송신측 피드백 처리부는 수신측으로부터 전달받은 뷰포트 정보를 전송 처리부로 전달할 수 있다. 전송 처리부는 해당 뷰포트 영역을 포함하는 타일들에 대해 다른 타일들보다 더 높은 강건성을 가지도록 전송 처리를 수행할 수 있다.
도 8 은 본 발명의 일 실시예에 따른 360도 비디오 관련 메타데이터를 도시한 도면이다.
전술한 360 비디오 관련 메타데이터는 360 비디오에 대한 다양한 메타데이터를 포함할 수 있다. 문맥에 따라, 360 비디오 관련 메타데이터는 360 비디오 관련 시그널링 정보라고 불릴 수도 있다. 360 비디오 관련 메타데이터는 별도의 시그널링 테이블에 포함되어 전송될 수도 있고, DASH MPD 내에 포함되어 전송될 수도 있고, ISOBMFF 등의 파일 포맷에 box 형태로 포함되어 전달될 수도 있다. 360 비디오 관련 메타데이터가 box 형태로 포함되는 경우 파일, 프래그먼트, 트랙, 샘플 엔트리, 샘플 등등 다양한 레벨에 포함되어 해당되는 레벨의 데이터에 대한 메타데이터를 포함할 수 있다.
실시예에 따라, 후술하는 메타데이터의 일부는 시그널링 테이블로 구성되어 전달되고, 나머지 일부는 파일 포맷 내에 box 혹은 트랙 형태로 포함될 수도 있다.
본 발명에 따른 360 비디오 관련 메타데이터의 일 실시예에 의하면, 360 비디오 관련 메타데이터는 프로젝션 스킴 등에 관한 기본 메타데이터, 스테레오스코픽(stereoscopic) 관련 메타데이터, 초기 시점(Initial View/Initial Viewpoint) 관련 메타데이터, ROI 관련 메타데이터, FOV (Field of View) 관련 메타데이터 및/또는 크롭된 영역(cropped region) 관련 메타데이터를 포함할 수 있다. 실시예에 따라 360 비디오 관련 메타데이터는 전술한 것 외에 추가적인 메타데이터를 더 포함할 수 있다.
본 발명에 따른 360 비디오 관련 메타데이터의 실시예들은 전술한 기본 메타데이터, 스테레오스코픽 관련 메타데이터, 초기 시점 관련 메타데이터, ROI 관련 메타데이터, FOV 관련 메타데이터, 크롭된 영역 관련 메타데이터 및/또는 이후 추가될 수 있는 메타데이터들 중 적어도 하나 이상을 포함하는 형태일 수 있다. 본 발명에 따른 360 비디오 관련 메타데이터의 실시예들은, 각각 포함하는 세부 메타데이터들의 경우의 수에 따라 다양하게 구성될 수 있다. 실시예에 따라 360 비디오 관련 메타데이터는 전술한 것 외에 추가적인 정보들을 더 포함할 수도 있다.
기본 메타데이터에는 3D 모델 관련 정보, 프로젝션 스킴 관련 정보 등이 포함될 수 있다. 기본 메타데이터에는 vr_geometry 필드, projection_scheme 필드 등이 포함될 수 있다. 실시예에 따라 기본 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
vr_geometry 필드는 해당 360 비디오 데이터가 지원하는 3D 모델의 타입을 지시할 수 있다. 전술한 바와 같이 360 비디오 데이터가 3D 공간 상에 리-프로젝션되는 경우, 해당 3D 공간은 vr_geometry 필드가 지시하는 3D 모델에 따른 형태를 가질 수 있다. 실시예에 따라, 렌더링시에 사용되는 3D 모델은 vr_geometry 필드가 지시하는 리-프로젝션에 사용되는 3D 모델과 다를 수도 있다. 이 경우, 기본 메타데이터는 렌더링시에 사용되는 3D 모델을 지시하는 필드를 더 포함할 수도 있다. 해당 필드가 0, 1, 2, 3 의 값을 가지는 경우 3D 공간은 각각 구형(Sphere), 큐브(Cube), 실린더(Cylinder), 피라미드(Pyramid)의 3D 모델을 따를 수 있다. 해당 필드가 나머지 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(Reserved for Future Use). 실시예에 따라 360 비디오 관련 메타데이터는 해당 필드에 의해 지시되는 3D 모델에 대한 구체적인 정보를 더 포함할 수 있다. 여기서 3D 모델에 대한 구체적인 정보란 예를 들어 구형의 반지름 정보, 실린더의 높이 정보 등을 의미할 수 있다. 본 필드는 생략될 수 있다.
projection_scheme 필드는 해당 360 비디오 데이터가 2D 이미지 상에 프로젝션될 때 사용된 프로젝션 스킴을 지시할 수 있다. 해당 필드가 0, 1, 2, 3, 4, 5 의 값을 가지는 경우, 각각 등정방형 프로젝션(Equirectangular Projection) 스킴, 큐빅 프로젝션 스킴, 실린더형 프로젝션 스킴, 타일-베이스드(Tile-based) 프로젝션 스킴, 피라미드 프로젝션 스킴, 파노라믹 프로젝션 스킴이 사용되었을 수 있다. 해당 필드가 6 의 값을 가지는 경우는, 360 비디오 데이터가 스티칭 없이 바로 2D 이미지 상에 프로젝션된 경우일 수 있다. 해당 필드가 나머지 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(Reserved for Future Use). 실시예에 따라 360 비디오 관련 메타데이터는 해당 필드에 의해 특정되는 프로젝션 스킴에 의해 발생한 리전(Region)에 대한 구체적인 정보를 더 포함할 수 있다. 여기서 리전에 대한 구체적인 정보란 예를 들어 리전의 회전 여부, 실린더의 윗면(top) 리전의 반지름 정보 등을 의미할 수 있다.
스테레오스코픽 관련 메타데이터는 360 비디오 데이터의 3D 관련 속성들에 대한 정보들을 포함할 수 있다. 스테레오스코픽 관련 메타데이터는 is_stereoscopic 필드 및/또는 stereo_mode 필드를 포함할 수 있다. 실시예에 따라 스테레오스코픽 관련 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
is_stereoscopic 필드는 해당 360 비디오 데이터가 3D 를 지원하는지 여부를 지시할 수 있다. 해당 필드가 1 이면 3D 지원, 0 이면 3D 미지원을 의미할 수 있다. 본 필드는 생략될 수 있다.
stereo_mode 필드는 해당 360 비디오가 지원하는 3D 레이아웃을 지시할 수 있다. 본 필드만으로 해당 360 비디오가 3D 를 지원하는지 여부를 지시할 수도 있는데, 이 경우 전술한 is_stereoscopic 필드는 생략될 수 있다. 본 필드 값이 0 인 경우, 해당 360 비디오는 모노(mono) 모드일 수 있다. 즉 프로젝션된 2D 이미지는 하나의 모노 뷰(mono view) 만을 포함할 수 있다. 이 경우 해당 360 비디오는 3D 를 지원하지 않을 수 있다.
본 필드 값이 1, 2 인 경우, 해당 360 비디오는 각각 좌우(Left-Right) 레이아웃, 상하(Top-Bottom) 레이아웃에 따를 수 있다. 좌우 레이아웃, 상하 레이아웃은 각각 사이드-바이-사이드 포맷, 탑-바텀 포맷으로 불릴 수도 있다. 좌우 레이아웃의 경우, 좌영상/우영상이 프로젝션된 2D 이미지들은 이미지 프레임 상에서 각각 좌/우로 위치할 수 있다. 상하 레이아웃의 경우, 좌영상/우영상이 프로젝션된 2D 이미지들은 이미지 프레임 상에서 각각 위/아래로 위치할 수 있다. 해당 필드가 나머지 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(Reserved for Future Use).
초기 시점 관련 메타데이터는 사용자가 360 비디오를 처음 재생했을 때 보게되는 시점(초기 시점)에 대한 정보를 포함할 수 있다. 초기 시점 관련 메타데이터는 initial_view_yaw_degree 필드, initial_view_pitch_degree 필드 및/또는 initial_view_roll_degree 필드를 포함할 수 있다. 실시예에 따라 초기 시점 관련 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
initial_view_yaw_degree 필드, initial_view_pitch_degree 필드, initial_view_roll_degree 필드는 해당 360 비디오 재생 시의 초기 시점을 나타낼 수 있다. 즉, 재생시 처음 보여지는 뷰포트의 정중앙 지점이, 이 세 필드들에 의해 나타내어질 수 있다. 각 필드는 그 정중앙 지점이 위치를 yaw, pitch, roll 축을 기준으로 회전된 방향(부호) 및 그 정도(각도)로 나타낼 수 있다. 이 때 FOV 에 따라 처음 재생시 보여지게 되는 뷰포트가 결정될 수 있다. FOV 를 통하여, 지시된 초기 시점을 기준으로 한, 초기 뷰포트의 가로길이 및 세로길이(width, height) 가 결정될 수 있다. 즉, 이 세 필드들 및 FOV 정보를 이용하여, 360 비디오 수신 장치는 사용자에게 360 비디오의 일정 영역을 초기 뷰포트로서 제공할 수 있다.
실시예에 따라, 초기 시점 관련 메타데이터가 지시하는 초기 시점은, 장면(scene) 별로 변경될 수 있다. 즉, 360 컨텐츠의 시간적 흐름에 따라 360 비디오의 장면이 바뀌게 되는데, 해당 360 비디오의 장면마다 사용자가 처음 보게되는 초기 시점 내지 초기 뷰포트가 변경될 수 있다. 이 경우, 초기 시점 관련 메타데이터는 각 장면별로의 초기 시점을 지시할 수 있다. 이를 위해 초기 시점 관련 메타데이터는, 해당 초기 시점이 적용되는 장면을 식별하는 장면(scene) 식별자를 더 포함할 수도 있다. 또한 360 비디오의 장면별로 FOV 가 변할 수도 있으므로, 초기 시점 관련 메타데이터는 해당 장면에 해당하는 FOV 를 나타내는 장면별 FOV 정보를 더 포함할 수도 있다.
ROI 관련 메타데이터는 전술한 ROI 에 관련된 정보들을 포함할 수 있다. ROI 관련 메타데이터는, 2d_roi_range_flag 필드 및/또는 3d_roi_range_flag 필드를 포함할 수 있다. 두 필드는 각각 ROI 관련 메타데이터가 2D 이미지를 기준으로 ROI 를 표현하는 필드들을 포함하는지, 3D 공간을 기준으로 ROI 를 표현하는 필드들을 포함하는지 여부를 지시할 수 있다. 실시예에 따라 ROI 관련 메타데이터는, ROI 에 따른 차등 인코딩 정보, ROI 에 따른 차등 전송처리 정보 등 추가적인 정보들을 더 포함할 수도 있다.
ROI 관련 메타데이터가 2D 이미지를 기준으로 ROI 를 표현하는 필드들을 포함하는 경우, ROI 관련 메타데이터는 min_top_left_x 필드, max_top_left_x 필드, min_top_left_y 필드, max_top_left_y 필드, min_width 필드, max_width 필드, min_height 필드, max_height 필드, min_x 필드, max_x 필드, min_y 필드 및/또는 max_y 필드를 포함할 수 있다.
min_top_left_x 필드, max_top_left_x 필드, min_top_left_y 필드, max_top_left_y 필드는 ROI 의 좌측 상단 끝의 좌표의 최소/최대값을 나타낼 수 있다. 이 필드들은 차례로 좌상단 끝의 최소 x 좌표, 최대 x 좌표, 최소 y 좌표, 최대 y 좌표 를 나타낼 수 있다.
min_width 필드, max_width 필드, min_height 필드, max_height 필드는 ROI 의 가로 크기(width), 세로 크기(height)의 최소/최대값을 나타낼 수 있다. 이 필드들은 차례로 가로 크기의 최소값, 가로 크기의 최대값, 세로 크기의 최소값, 세로 크기의 최대값을 나타낼 수 있다.
min_x 필드, max_x 필드, min_y 필드, max_y 필드는 ROI 내의 좌표들의 최소/최대값을 나타낼 수 있다. 이 필드들은 차례로 ROI 내 좌표들의 최소 x 좌표, 최대 x 좌표, 최소 y 좌표, 최대 y 좌표 를 나타낼 수 있다. 이 필드들은 생략될 수 있다.
ROI 관련 메타데이터가 3D 랜더링 공간 상의 좌표 기준으로 ROI 를 표현하는 필드들을 포함하는 경우, ROI 관련 메타데이터는 min_yaw 필드, max_yaw 필드, min_pitch 필드, max_pitch 필드, min_roll 필드, max_roll 필드, min_field_of_view 필드 및/또는 max_field_of_view 필드를 포함할 수 있다.
min_yaw 필드, max_yaw 필드, min_pitch 필드, max_pitch 필드, min_roll 필드, max_roll 필드는 ROI 가 3D 공간상에서 차지하는 영역을 yaw, pitch, roll 의 최소/최대값으로 나타낼 수 있다. 이 필드들은 차례로 yaw 축 기준 회전량의 최소값, yaw 축 기준 회전량의 최대값, pitch 축 기준 회전량의 최소값, pitch 축 기준 회전량의 최대값, roll 축 기준 회전량의 최소값, roll 축 기준 회전량의 최대값을 나타낼 수 있다.
min_field_of_view 필드, max_field_of_view 필드는 해당 360 비디오 데이터의 FOV 의 최소/최대값을 나타낼 수 있다. FOV 는 360 비디오의 재생시 한번에 디스플레이되는 시야범위를 의미할 수 있다. min_field_of_view 필드, max_field_of_view 필드는 각각 FOV 의 최소값, 최대값을 나타낼 수 있다. 이 필드들은 생략될 수 있다. 이 필드들은 후술할 FOV 관련 메타데이터에 포함될 수도 있다.
FOV 관련 메타데이터는 전술한 FOV 에 관련한 정보들을 포함할 수 있다. FOV 관련 메타데이터는 content_fov_flag 필드 및/또는 content_fov 필드를 포함할 수 있다. 실시예에 따라 FOV 관련 메타데이터는 전술한 FOV 의 최소/최대값 관련 정보 등 추가적인 정보들을 더 포함할 수도 있다.
content_fov_flag 필드는 해당 360 비디오에 대하여 제작시 의도한 FOV 에 대한 정보가 존재하는지 여부를 지시할 수 있다. 본 필드값이 1인 경우, content_fov 필드가 존재할 수 있다.
content_fov 필드는 해당 360 비디오에 대하여 제작시 의도한 FOV 에 대한 정보를 나타낼 수 있다. 실시예에 따라 해당 360 비디오 수신 장치의 수직(vertical) 혹은 수평(horizontal) FOV 에 따라, 360 영상 중에서 사용자에게 한번에 디스플레이되는 영역이 결정될 수 있다. 혹은 실시예에 따라 본 필드의 FOV 정보를 반영하여 사용자에게 한번에 디스플레이되는 360 비디오의 영역이 결정될 수도 있다.
크롭된 영역 관련 메타데이터는 이미지 프레임 상에서 실제 360 비디오 데이터를 포함하는 영역에 대한 정보를 포함할 수 있다. 이미지 프레임은 실제 360 비디오 데이터 프로젝션된 액티브 비디오 영역(Active Video Area)과 그렇지 않은 영역을 포함할 수 있다. 이 때 액티브 비디오 영역은 크롭된 영역 또는 디폴트 디스플레이 영역이라고 칭할 수 있다. 이 액티브 비디오 영역은 실제 VR 디스플레이 상에서 360 비디오로서 보여지는 영역으로서, 360 비디오 수신 장치 또는 VR 디스플레이는 액티브 비디오 영역만을 처리/디스플레이할 수 있다. 예를 들어 이미지 프레임의 종횡비(aspect ratio) 가 4:3 인 경우 이미지 프레임의 윗 부분 일부와 아랫부분 일부를 제외한 영역만 360 비디오 데이터를 포함할 수 있는데, 이 부분을 액티브 비디오 영역이라고 할 수 있다.
크롭된 영역 관련 메타데이터는 is_cropped_region 필드, cr_region_left_top_x 필드, cr_region_left_top_y 필드, cr_region_width 필드 및/또는 cr_region_height 필드를 포함할 수 있다. 실시예에 따라 크롭된 영역 관련 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
is_cropped_region 필드는 이미지 프레임의 전체 영역이 360 비디오 수신 장치 내지 VR 디스플레이에 의해 사용되는지 여부를 나타내는 플래그일 수 있다. 즉, 본 필드는 이미지 프레임 전체가 액티브 비디오 영역인지 여부를 지시할 수 있다. 이미지 프레임의 일부만이 액티브 비디오 영역인 경우, 하기의 4 필드가 더 추가될 수 있다.
cr_region_left_top_x 필드, cr_region_left_top_y 필드, cr_region_width 필드, cr_region_height 필드는 이미지 프레임 상에서 액티브 비디오 영역을 나타낼 수 있다. 이 필드들은 각각 액티브 비디오 영역의 좌상단의 x 좌표, 액티브 비디오 영역의 좌상단의 y 좌표, 액티브 비디오 영역의 가로 길이(width), 액티브 비디오 영역의 세로 길이(height) 를 나타낼 수 있다. 가로 길이와 세로 길이는 픽셀을 단위로 나타내어질 수 있다.
전술한 바와 같이, 360도 비디오 관련 시그널링 정보 또는 메타데이터는 임의로 정의된 시그널링 테이블에 포함될 수 있고, ISOBMFF 또는 Common File Format 등의 파일 포맷에 box형태로 포함될 수도 있으며, DASH MPD 내에 포함되어 전송될 수도 있다. 또한, 360도 미디어 데이터는 이러한 파일 포맷 또는 DASH segment에 포함되어 전송될 수도 있다.
이하, ISOBMFF 및 DASH MPD에 대해 순차적으로 설명한다.
도9는 3DoF+ VR 시스템에서 추가적으로 정의되는 위치(viewpoint)와 시점(viewing position)를 나타낸다.
본 발명은360 비디오 기반 VR 시스템은 전술한 360 비디오 처리 과정을 기반으로 360 비디오에 대하여 사용자의 위치를 기준으로 서로 다른 방향(viewing orientation)에 대한 시각적/청각적 경험을 제공할 수 있다. 이러한 방법을 3DoF (three degree of freedom) plus라고 명명할 수 있다. 구체적으로, 360 비디오에 대하여 사용자의 고정 위치에서의 서로 다른 방향에 대한 시작적/청각적 경험을 제공하는 VR 시스템은 3DoF 기반 VR 시스템이라고 불릴 수 있다.
한편, 동일 시간대에서 서로 다른 위치 (viewpoint), 서로 다른 시점(viewing position)에서의 서로 다른 방향에 대한 확장된 시각적/청각적 경험을 제공할 수 있는 VR 시스템은 3DoF+ 또는 3DoF plus 기반 VR 시스템라고 불릴 수 있다.
1) (a)와 같은 공간(공연장의 예)을 가정했을 때, 서로 다른 위치(붉은색 동그라미로 표시된 공연장의 위치의 예)를 각각의 viewpoint로 고려할 수 있다. 이 때, 예제와 같이 동일 공간에 존재하는 각 viewpoint에서 제공되는 영상/음성은 동일한 시간 흐름을 가질 수 있다.
2) 이 경우 특정 위치에서 사용자의 시점 변화(head motion)에 따라 서로 다른 시각적/청각적 경험 제공할 수 있다. 즉, 특정 viewpoint에 대해 (b)에 도시된 바와 같은 다양한 viewing position의 sphere를 가정할 수 있으며, 각 시점의 상대적인 위치를 반영한 영상/음성/텍스트 정보를 제공할 수 있다.
3) 한편, (c)에 도시된 바와 같이 특정 위치의 특정 시점에서는 기존의 3DoF와 같이 다양한 방향의 시각적/청각적 정보를 전달할 수 있다. 이 때, main source(영상/음성/텍스트) 뿐만 아니라 추가적인 다양한 소스를 통합하여 제공할 수 있으며, 이는 사용자의 시청 방향 (viewing orientation)과 연계되거나 독립적으로 정보를 전달할 수 있다.
도10은 3DoF+ 시스템에 기반한 360도 비디오 신호처리 및 관련 전송장치/수신장치 구현 방법에 대해서 도시한다.
도 10은 3DoF+ 의 영상획득, 전처리, 전송, (후)처리, 렌더링 및 피드백 과정을 포함한 3DoF+ end-to-end system 흐름도에 대한 예시이다.
1) Acquisition: 360 비디오의 캡쳐, 합성 또는 생성 과정 등을 통한 360 비디오를 획득하는 과정을 의미할 수 있다. 이 과정을 통하여 다수의 위치에 대해 head motion에 따른 다수의 영상/음성 정보를 획득할 수 있다. 이 때, 영상 정보는 시각적 정보(texture) 뿐 아니라 깊이 정보(depth)를 포함할 수 있다. 이 때 a의 영상 정보 예시와 같이 서로 다른 촬영 위치(viewpoint)에 따른 서로 다른 시점(viewing position)의 복수의 정보를 각각 획득할 수 있다.
2) Composition: 영상/음성 입력 장치를 통해 획득한 정보 뿐 아니라 외부 미디어를 통한 영상(비디오/이미지 등), 음성(오디오/효과음향 등), 텍스트(자막 등)을 사용자 경험에 포함하기 위해 합성하기 위한 방법을 정의할 수 있다.
3) Pre-processing: 획득된 360 비디오의 전송/전달을 위한 준비(전처리) 과정으로서, 스티칭, 프로젝션, 리전별 패킹 과정 및/또는 인코딩 과정 등을 포함할 수 있다. 즉, 이 과정은 영상/음성/텍스트 정보를 제작자의 의도에 따라 데이터를 변경/보완 하기위한 전처리 과정 및 인코딩 과정이 포함될 수 있다. 예를 들어 영상의 전처리 과정에서는 획득된 시각 정보를 360 sphere 상에 매핑하는 작업(stitching), 영역 경계를 없애거나 색상/밝기 차이를 줄이거나 영상의 시각적 효과를 주는 보정 작업(editing), 시점에 따른 영상을 분리하는 과정(view segmentation), 360 sphere 상의 영상을 2D 영상으로 매핑하는 프로젝션 과정(projection), 영역에 따라 영상을 재배치 하는 과정 (region-wise packing), 영상 정보를 압축하는 인코딩 과정이 포함될 수 있다. B의 비디오 측면의 예시와 같이 서로 다른 촬영 위치(viewpoint)에 따른 서로 다른 시점(viewing position)의 복수의 프로젝션 영상이 생성될 수 있다.
4) Delivery: 준비 과정(전처리 과정)을 거친 영상/음성 데이터 및 메타데이터들을 처리하여 전송하는 과정을 의미할 수 있다. 서로 다른 촬영 위치(viewpoint)에 따른 서로 다른 시점(viewing position)의 복수의 영상/음성 데이터 및 관련 메타데이터를 전달하는 방법으로써 전술한 바와 같이 방송망, 통신망을 이용하거나, 단방향 전달 등의 방법을 사용할 수 있다.
5) Post-processing & composition: 수신된/저장된 비디오/오디오/텍스트 데이터를 디코딩하고 최종 재생을 위한 후처리 과정을 의미할 수 있다. 예를 들어 후처리 과정은 전술한 바와 같이 패킹 된 영상을 풀어주는 언패킹 및 2D 프로젝션 된 영상을 3D 구형 영상으로복원하는 리-프로젝션 과정 등이 포함될 수 있다.
6) Rendering: 3D 공간상에 리-프로젝션된 이미지/비디오 데이터를 렌더링하고 디스플레이하는 과정을 의미할 수 있다. 이 과정에서 영상/음성 신호를 최종적으로 출력하기 위한 형태로 재구성할 수 있다. 사용자의 관심영역이 존재하는 방향(viewing orientation), 시점(viewing position/head position), 위치(viewpoint)를 추적할 수 있으며, 이 정보에 따라 필요한 영상/음성/텍스트 정보만을 선택적으로 사용할 수 있다. 이 때, 영상 신호의 경우 사용자의 관심영역에 따라 c와 같이 서로 다른 시점을 선택할 수 있으며, 최종적으로 d와 같이 특정 위치에서의 특정 시점의 특정 방향의 영상을 출력할 수 있다.
7) Feedback: 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하는 과정을 의미할 수 있다. 본 실시예의 경우 사용자 관심영역의 방향(viewing orientation), 시점(viewing position), 위치(viewpoint)를 추정하고, 이를 기반으로 영상/음성을 재생할 수 있도록 피드백을 전달할 수 있다.
도11은 3DoF+ end-to-end 시스템의 구조를 나타낸다.
도11은 3DoF+ end-to-end 시스템 아키텍쳐의 예시이다. 도 11의 아키텍처에 의하여 전술된 바와 같이 3DoF+ 360 컨텐츠가 제공될 수 있다.
360 비디오 전송 장치는 크게 360 비디오(이미지)/오디오 데이터 획득이 이루어지는 부분 (acquisition unit), 획득된 데이터를 처리하는 부분 (video/audio pre-processor), 추가 정보를 합성하기 위한 부분(composition generation unit), 텍스트, 오디오 및 프로젝션된 360도 비디오를 인코딩하는 부분(encoding unit) 및 인코딩된 데이터를 인캡슐레이션하는 부분(encapsulation unit)으로 구성될 수 있다. 전술한 바와 같이 인코딩된 데이터는 비트스트림(bitstream) 형태로 출력될 수 있으며, 인코딩된 데이터는 ISOBMFF, CFF 등의 파일 포맷으로 인캡슐레이션되거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인코딩된 데이터는 디지털 저장 매체를 통하여 360 비디오 수신 장치로 전달될 수 있으며, 또는 비록 명시적으로 도시되지는 않았으나, 전술한 바와 같이 전송 처리부를 통하여 전송을 위한 처리를 거치고, 이후 방송망 또는 브로드밴드 등을 통하여 전송될 수 있다.
데이터 획득 부분에서는 센서의 방향(sensor orientation, 영상의 경우 viewing orientation), 센서의 정보 획득 시점(sensor position, 영상의 경우 viewing position), 센서의 정보 획득 위치(영상의 경우 viewpoint)에 따라 서로 다른 정보를 동시에 혹은 연속적으로 획득할 수 있으며, 이 때 비디오, 이미지, 오디오, 위치 정보 등을 획득할 수 있다.
영상 데이터의 경우 텍스처 (texture) 및 깊이 정보(depth)를 각각 획득할 수 있으며, 각 컴포넌트의 특성에 따라 서로 다른 전처리 (video pre-processing)가 가능하다. 예를 들어 텍스처 정보의 경우 이미지 센서 위치 정보를 이용하여 동일 위치 (viewpoint)에서 획득한 동일 시점 (viewing position)의 서로 다른 방향 (viewing orientation)의 영상들을 이용하여 360 전방위 영상을 구성할 수 있으며, 이를 위해 영상 스티칭 (stitching) 과정을 수행할 수 있다. 또한 영상을 인코딩하기 위한 포맷으로 변경하기 위한 프로젝션(projection) 및/또는 리전별 팩킹을 수행할 수 있다. 깊이 영상의 경우 일반적으로 뎁스 카메라를 통해 영상을 획득할 수 있으며, 이 경우 텍스쳐와 같은 형태로 깊이 영상을 만들 수 있다. 혹은, 별도로 측정된 데이터를 바탕으로 깊이 데이터를 생성할 수도 있다. 컴포넌트 별 영상이 생성된 후 효율적인 압축을 위한 비디오 포맷으로의 추가 변환 (packing)을 하거나 실제 필요한 부분으로 나누어 재 구성하는 과정 (sub-picture generation)이 수행될 수 있다. Video pre-processing 단에서 사용된 영상 구성에 대한 정보는 video metadata로 전달된다.
획득된 데이터 (혹은 주요하게 서비스 하기 위한 데이터) 이외에 추가적으로 주어지는 영상/음성/텍스트 정보를 함께 서비스 하는 경우, 이들 정보를 최종 재생 시 합성하기 위한 정보를 제공할 필요가 있다. 컴포지션 생성부(Composition generation unit)에서는 제작자의 의도를 바탕으로 외부에서 생성된 미디어 데이터 (영상의 경우 비디오/이미지, 음성의 경우 오디오/효과 음향, 텍스트의 경우 자막 등)를 최종 재생 단에서 합성하기 위한 정보를 생성하며, 이 정보는 composition metadata로 전달된다.
각각의 처리를 거친 영상/음성/텍스트 정보는 각각의 인코더를 이용해 압축되고, 어플리케이션에 따라 파일 혹은 세그먼트 단위로 인캡슐레이션 된다. 이 때, 비디오, 파일 혹은 세그먼트 구성 방법에 따라 필요한 정보만을 추출(file extractor)이 가능하다.
또한 각 데이터를 수신기에서 재구성하기 위한 정보가 코덱 혹은 파일 포멧/시스템 레벨에서 전달되는데, 여기에서는 비디오/오디오 재구성을 위한 정보 (video/audio metadata), 오버레이를 위한 합성 정보 (composition metadata), 비디오/오디오 재생 가능 위치 (viewpoint) 및 각 위치에 따른 시점 (viewing position) 정보 (viewing position and viewpoint metadata) 등이 포함된다. 이와 같은 정보의 처리는 별도의 메타데이터 처리부를 통한 생성도 가능하다.
360 비디오 수신 장치는 크게 수신된 파일 혹은 세그먼트를 디캡슐레이션하는 부분 (file/segment decapsulation unit), 비트스트림으로부터 영상/음성/텍스트 정보를 생성하는 부분 (decoding unit), 영상/음성/텍스트를 재생하기 위한 형태로 재구성하는 부분 (post-processor), 사용자의 관심영역을 추적하는 부분 (tracking unit) 및 재생 장치인 디스플레이로 구성될 수 있다.
디캡슐레이션을 통해 생성된 비트스트림은 데이터의 종류에 따라 영상/음성/텍스트 등으로 나뉘어 재생 가능한 형태로 개별적으로 디코딩될 수 있다.
tracking 부분에서는 센서 및 사용자의 입력 정보 등을 바탕으로 사용자의 관심 영역 (Region of interest)의 위치 (viewpoint), 해당 위치에서의 시점 (viewing position), 해당 시점에서의 방향 (viewing orientation) 정보를 생성하게 되며, 이 정보는 360 비디오 수신 장치의 각 모듈에서 관심 영역 선택 혹은 추출 등에 사용되거나, 관심 영역의 정보를 강조하기 위한 후처리 과정 등에 사용될 수 있다. 또한 360 비디오 전송 장치 에 전달되는 경우 효율적인 대역폭 사용을 위한 파일 선택 (file extractor) 혹은 서브 픽처 선택, 관심영역에 기반한 다양한 영상 재구성 방법 (viewport/viewing position / viewpoint dependent processing) 등에 사용될 수 있다.
디코딩 된 영상 신호는 영상 구성 방법에 따라 다양한 처리 방법에 따라 처리될 수 있다. 360 비디오 전송 장치에서 영상 패킹이 이루어 진 경우 메타데이터를 통해 전달된 정보를 바탕으로 영상을 재구성 하는 과정이 필요하다. 이 경우 360 비디오 전송 장치에서 생성한 video metadata를 이용할 수 있다. 또한 디코딩 된 영상 내에 복수의 시청 위치 (viewpoint), 혹은 복수의 시점 (viewing position), 혹은 다양한 방향 (viewing orientation)의 영상이 포함된 경우 tracking 을 통해 생성된 사용자의 관심 영역의 위치, 시점, 방향 정보와 매칭되는 정보를 선택하여 처리할 수 있다. 이 때, 송신단에서 생성한 viewing position and viewpoint metadata가 사용될 수 있다. 또한 특정 위치, 시점, 방향에 대해 복수의 컴포넌트가 전달되거나, 오버레이를 위한 비디오 정보가 별도로 전달되는 경우 각각에 따른 렌더링 과정이 포함될 수 있다. 별도의 렌더링 과정을 거친 비디오 데이터(텍스처, 뎁스, 오버레이)는 합성 과정 (composition)을 거치게 되며, 이 때, 송신단에서 생성한 composition metadata가 사용될 수 있다. 최종적으로 사용자의 관심 영역에 따라 viewport에 재생하기 위한 정보를 생성할 수 있다.
디코딩 된 음성 신호는 오디오 렌더러 그리고/혹은 후처리 과정을 통해 재생 가능한 음성 신호를 생성하게 되며, 이 때 사용자의 관심 영역에 대한 정보 및 360 비디오 수신 장치에 전달된 메타데이터를 바탕으로 사용자의 요구에 맞는 정보를 생성할 수 있다.
디코딩 된 텍스트 신호는 오버레이 렌더러에 전달되어 서브타이틀 등의 텍스트 기반의 오버레이 정보로써 처리된다. 필요한 경우 별도의 텍스트 후처리 과정이 포함될 수 있다.
도12는 FLUS (Framework for Live Uplink Streaming)의 구조를 나타낸다.
위에서 기술한 송신단 및 수신단의 세부 블록은 FLUS (Framework for Live Uplink Streaming)에서의 source 와 sink의 기능으로 각각 분류할 수 있으며, 이 경우 아래와 같이 정보 획득 장치에서 source의 기능을 구현하고, 네트워크 상에서 sink의 기능을 구현하거나, 혹은 네트워크 노드 내에서 source / sink를 각각 구현할 수 있다. 네트워크 노드는 UE(user equipment)를 포함할 수 있다. UE는 상술한 360 비디오 전송 장치 또는 360 비디오 수신 장치를 포함할 수 있다.
위에서 기술한 아키텍처를 기반으로 한 송수신 처리 과정을 아래와 같이 나타낼 수 있다. 아래의 송수신 처리 과정은 영상 신호 처리 과정을 기준으로 기술하며, 음성 혹은 텍스트와 같은 다른 신호를 처리하는 경우 기울임(italic)으로 표시된 부분은 생략하거나, 음성 혹은 텍스트 처리 과정에 맞도록 변경하여 처리할 수 있다.
도13은 3DoF+ 송신단의 구성을 나타낸다.
송신단(360 비디오 전송 장치)에서는 입력된 데이터가 카메라 출력 영상인 경우 sphere 영상 구성을 위한 스티칭을 위치/시점/컴포넌트 별로 진행할 수 있다. 위치/시점/컴포넌트 별 sphere 영상이 구성되면 코딩을 위해 2D 영상으로 프로젝션을 수행할 수 있다. 어플리케이션에 따라 복수의 영상을 통합 영상으로 만들기 위한 패킹 혹은 세부 영역의 영상으로 나누는 서브 픽처로 생성할 수 있다. 전술한 바와 같이 리전별 패킹 과정은 선택적(optional) 과정으로서 수행되지 않을 수 있으며, 이 경우 패킹 처리부는 생략될 수 있다. 입력된 데이터가 영상/음성/텍스트 추가 정보인 경우 추가 정보를 중심 영상에 추가하여 디스플레이 하는 방법을 알려줄 수 있으며, 추가 데이터도 함께 전송할 수 있다. 생성된 영상 및 추가된 데이터를 압축하여 비트 스트림으로 생성하는 인코딩 과정을 거쳐 전송 혹은 저장을 위한 파일 포맷으로 변환하는 인캡슐레이션 과정을 거칠 수 있다. 이 때 어플리케이션 혹은 시스템의 요구에 따라 수신부에서 필요로하는 파일을 추출하는 과정이 처리될 수 있다. 생성된 비트스트림은 전송처리부를 통해 전송 포맷으로 변환된 후 전송될 수 있다. 이 때, 송신측 피드백 처리부에서는 수신단에서 전달된 정보를 바탕으로 위치/시점/방향 정보와 필요한 메타데이터를 처리하여 관련된 송신부에서 처리하도록 전달할 수 있다.
도14는 3DoF+ 수신단의 구성을 나타낸다.
수신단(360 비디오 수신 장치)에서는 송신단에서 전달한 비트스트림을 수신한 후 필요한 파일을 추출할 수 있다. 생성된 파일 포맷 내의 영상 스트림을 피드백 처리부에서 전달하는 위치/시점/방향 정보 및 비디오 메타데이터를 이용하여 선별하며, 선별된 비트스트림을 디코더를 통해 영상 정보로 재구성할 수 있다. 패킹된 영상의 경우 메타데이터를 통해 전달된 패킹 정보를 바탕으로 언패킹을 수행할 수 있다. 송신단에서 패킹 과정이 생략된 경우, 수신단의 언패킹 또한 생략될 수 있다. 또한 필요에 따라 피드백 처리부에서 전달된 위치/시점/방향에 적합한 영상 및 필요한 컴포넌트를 선택하는 과정을 수행할 수 있다. 영상의 텍스처, 뎁스, 오버레이 정보 등을 재생하기 적합한 포맷으로 재구성하는 렌더링 과정을 수행할 수 있다. 최종 영상을 생성하기에 앞서 서로 다른 레이어의 정보를 통합하는 컴포지션 과정을 거칠 수 있으며, 디스플레이 뷰포트(viewport)에 적합한 영상을 생성하여 재생할 수 있다.
도 15는 OMAF 구조를 나타낸다.
360 비디오 기반 VR 시스템은 360 비디오 처리 과정을 기반으로 360 비디오에 대하여 사용자의 위치를 기준으로 서로 다른 방향(viewing orientation)에 대한 시각적/청각적 경험을 제공할 수 있다. 360 비디오에 대하여 사용자의 고정 위치에서의 서로 다른 방향에 대한 시작적/청각적 경험을 제공하는 서비스를 3DoF 기반 서비스라고 불릴 수 있다. 한편, 동일 시간대에서 임의의 위치 및 시점(viewing position)에서의 서로 다른 방향에 대한 확장된 시각적/청각적 경험을 제공할 수 있는 서비스는 6DoF (six degree of freedom) 기반 서비스라고 불릴 수 있다.
3DoF service를 위한 File format은 예를 들면 도15에 도시된 바와 같이 Head/eye tracking 모듈에 따라 rendering의 위치, 전송할 file의 정보, decoding 정보 등이 달라질 수 있는 구조를 가지고 있다. 그러나, 이러한 방식은 사용자의 위치 혹은 position에 따라 rendering의 정보/전송 내용, decoding의 정보가 달라지는 6DoF의 media file 전송에는 적합하지 않기에 수정이 필요하다.
도16은 사용자의 이동에 따른 미디어의 종류를 나타낸다.
본 발명은 사용자에게 몰입형 미디어/실감미디어(Immersive media)의 경험을 제공하기 위해, 6DoF contents를 제공하는 방안을 제안한다. 몰입형 미디어/실감미디어는 기존의 360 콘텐츠가 제공하는 가상의 환경에서 확대된 개념으로 기존의 360 콘텐츠가 (a)와 같은 형태로 사용자의 position 위치는 고정되어 있고, 회전에 대한 개념만 있었다면 몰입형 미디어/실감미디어는 (b) 혹은 (c) 와 같이 사용자에게 콘텐츠를 경험할 때 이동의 개념을 부여함으로써 가상의 공간에서 사용자의 이동/회전 등 더 다양한 감각적 경험을 제공할 수 있는 환경 혹은 콘텐츠를 의미할 수 있다.
(a)는 사용자의 포지션이 고정된 상태에서 사용자의 뷰가 회전하는 경우의 미디어 경험을 나타낸다.
(b) 는 사용자의 포지션이 고정된 상태에서 나아가 사용자의 머리가 추가적으로 움직일 수 있는 경우의 미디어 경험을 나타낸다.
(c) 는 사용자의 포지션이 움직일 수 있는 경우의 미디어 경험을 나타낸다.
실감 미디어 콘텐츠는 해당 콘텐츠를 제공하기 위한 6DoF비디오 및 6DoF오디오를 포함할 수 있으며, 6DoF 비디오는 실감미디어 콘텐츠 제공에 필요한 매 이동 때마다 새롭게 형성되는 3DoF 혹은 360비디오로 캡쳐되거나 재생되는 비디오 혹은 이미지를 의미 할 수 있다. 6DoF 콘텐츠는 3차원 공간 상에 나타내어지는 비디오 내지 이미지를 의미할 수 있다. 콘텐츠 내에서 이동이 고정된 상태라면 해당 콘텐츠는 기존의 360비디오와 같이 다양한 형태의 3차원 공간에서 나타내어질 수 있다. 예를 들어 구형 (Spherical)면 상에 나타내어질 수 있다. 콘텐츠 내에서 이동이 자유로운 상태라면 이동 경로 상에 사용자를 중심으로 3차원 공간이 매번 새롭게 형성되고 해당 위치의 콘텐츠를 사용자가 경험할 수 있다. 예를 들어 사용자가 처음 보는 위치에서의 구형(spherical)면 상에 나타내어진 영상을 경험하고, 3차원 공간에서 실제 사용자가 이동을 하였다면 이동한 위치를 중심으로 새로운 구형(spherical)면의 영상이 형성되고 해당 콘텐츠를 소비할 수 있다. 6DoF 오디오도 마찬가지로 실감형 미디어를 경험할 수 있도록 하는 콘텐츠를 제공하기 위한 오디오 콘텐츠로, 음향의 소비하는 위치가 이동함에 따른 공간적(spatial)오디오를 새롭게 형성하고 소비하기 위한 콘텐츠를 의미할 수 있다.
본 발명은 특히 6DoF 비디오를 효과적으로 제공하는 방안을 제안한다. 6DoF 비디오는 서로 다른 위치에서 두 개 이상의 카메라로 캡처 될 수 있다. 캡처된 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터 중 일부를 사용자의 초기 위치를 원점으로 하는 360비디오로 가공하여 렌더링 할 수 있으며 사용자의 위치가 이동하면 이동한 위치를 중심으로 새로운 360 비디오를 가공하여 렌더링 함으로써 6DoF비디오가 사용자에게 제공될 수 있다.
이하에서, 6DoF 비디오 서비스 제공을 위한 송신 방법 및 수신 방법을 설명한다.
도 17은 6DoF 비디오 제공을 위한 전체 아키텍처를 나타낸다.
앞서 정리한 일련의 과정들을 도17을 바탕으로 구체적으로 설명하자면 먼저 획득(Acquisition)단계로 6DoF contents 를 캡처를 위해 HDCA(High Density Camera Array), Lenslet (microlens) camera 등이 사용될 수 있으며, 6DoF 비디오 캡처를 위해 디자인 된 새로운 디바이스로 획득 될 수 있다. 획득된 영상은 Fig.3a와 같이 캡처한 카메라의 위치에 따라 생성된 이미지/비디오 데이터 집합이 여러 개 생성될 수 있다. 이 때 캡처 과정에서 카메라의 내부/외부 설정 값 등의 메타메이타가 생성될 수 있다. 카메라가 아닌 컴퓨터로 생성된 영상의 경우 캡처 과정이 갈음될 수 있다. 획득된 영상의 전처리(pre-processing)과정은 캡처된 이미지/비디오 및 캡처 과정에서 전달된 메타데이타(metadata)를 처리하는 과정일 수 있다. 이 준비 과정에서는 스티칭(Stitching) 과정, 색보정(color correction)과정, 프로젝션 과정, 코딩 효율을 높이기 위해 주요 시점 (primary view)와 부차 시점(secondary view)로 분리 하는 시점 분리(view segmenation)과정 및 인코딩 과정 등 전송 전 콘텐츠를 처리하는 모든 형태의 전처리 단계가 해당될 수 있다.
스티칭 과정은 각 카메라의 위치에서 360 방향으로 캡처된 영상을 각각의 카메라 위치를 중심으로 하는 파노라마 혹은 구형의 형태로 영상을 잇는 이미지/비디오를 만드는 과정일 수 있다. 프로젝션은 각각의 스티칭 결과 영상을 Fig3b와 같이 2D 이미지로 투영 시키는 과정을 의미하며, 2D 이미지로 맵핑한다고 표현할 수 있다. 각 카메라 위치에서 맵핑한 영상은 주요시점과 부차 시점으로 분리 하여 비디오 코딩 효율을 높이기 위해 시점별 다른 해상도(resolution)를 적용할 수 있으며, 주요 시점 내에서도 맵핑 영상의 배치나 해상도(resolution)를 달리 함으로써 코딩 시 효율을 높일 수 있다. 부차 시점은 캡처 환경에 따라 없을 수도 있다. 부차 시점은 주요 시점에서 또 다른 주요 시점으로 사용자가 이동할 경우 이동 과정에서 재생되어야 하는 이미지/비디오를 의미하며 주요 시점에 비해 낮은 해상도를 가질 수도 있으나 필요에 따라 동일한 해상도를 가질 수도 있다. 때에 따라서는 부차 시점은 수신기에서 가상의 정보로 새롭게 생성 될 수 있다.
실시예에 따라 전처리 과정으로 에디팅(editing)과정 등을 더 포함할 수 있다. 이 과정에서 프로젝션 전 후의 이미지/비디오 데이터들에 대한 편집 등이 더 수행될 수 있으며, 전처리 과정에서도 메타메이타가 생성될 수 있다. 또한 이미지/비디오 제공시 가장 처음 재생해야 하는 초기 시점, 사용자의 초기 위치 및 ROI(Region of Interest)등에 관한 메타메이타가 생성될 수 있다.
미디어 전송 단계는 전처리 과정에서 얻어진 이미지/비디오 데이터 및 메타메이타들을 처리하여 전송하는 과정일 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있으며, 전처리 된 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있으며, 이 데이터들은 온디맨드(on demand) 방식으로 수신측으로 전달될 수 있다.
프로세싱 과정은 수신된 이미지/비디오 데이터 및 메타메이타를 디코딩, 3차원 모델로 맵핑 혹은 프로젝션이라고도 불릴 수 있는 리-프로젝션(re-projection) 하는 과정, 가상 시점의 생성 및 합성 과정 등 이미지/비디오를 재생하기 위한 이미지 생성 전 모든 단계가 프로세싱(processing) 단계에 포함될 수 있다. 맵핑 되는 3차원 모델 혹은 프로젝션 맵은 기존의 360비디오와 같이 구형(sphere), 큐브(cube), 실린더(cylinder), 또는 피라미드(pyramid)가 있을 수 있으며 기존의 360 비디오의 프로젝션 맵의 변형된 형태가 될 수 있으며, 경우에 따라 자유형 형태의 프로젝션 맵이 될 수 있다.
가상 시점의 생성 및 합성 과정은 주요 시점과 부차 시점 사이에 혹은 주요 시점과 주요 시점 사이에 사용자가 이동할 경우 재생되어야 하는 이미지/비디오 데이터를 생성하고 합성하는 과정을 의미할 수 있다. 가상 시점 생성을 위해 캡쳐 및 전처리 과정에서 전달된 메타메이타를 처리하는 과정이 필요할 수 있고, 경우에 따라서는 가상 시점에서 360 이미지/비디오 전체가 아닌 일부만 생성/합성할 수도 있다.
실시예에 따라 프로세싱 과정은 부가적으로 에디팅(editing)과정, 업스케일링(up scaling), 다운 스케일링(down scaling) 과정 등이 더 포함될 수도 있다. 에디팅 과정에서 프로세싱 과정 후에 재생 전 필요한 추가 편집 과정이 적용될 수 있다. 필요에 따라서는 전송 받은 이미지/비디오를 업스케일링 혹은 다운 스케일링 하는 작업이 수행될 수도 있다.
렌더링 과정은 전송 혹은 생성되어 리프로젝션 된 이미지/비디오를 디스플레이 할 수 있도록 렌더링 하는 과정을 의미할 수 있다. 때에 따라서는 렌더링과 리프로젝션 과정을 렌더링이라고 통칭하기도 한다. 따라서 렌더링 과정 중에 리프로젝션 과정이 포함될 수 있다. 리프로젝션은 fig.3c와 같은 형태로 사용자 중심의 360 비디오/이미지와 사용자가 이동 방향에 따라 각 이동한 위치를 중심으로 형성되는 360 비디오/이미지가 형성되는 형태로 다수의 리프로젝션 결과물이 있을 수 있다. 사용자는 디스플레이 할 디바이스에 따라 360 비디오/이미지의 일부 영역을 볼 수 있으며, 이 때 사용자가 보게 되는 영역은 fig.3d와 같은 형태가 될 수 있으며, 사용자가 이동하는 경우 전체 360 비디오/이미지가 렌더링 되는 것이 아니라 사용자가 보고 있는 위치에 해당되는 영상만 렌더링 될 수 있다. 또한 사용자의 위치와 이동 방향에 관한 메타메이타를 전달 받아 미리 움직임을 예측하고 이동할 위치의 비디오/이미지를 추가로 렌더링할 수 있다.
피드백 과정은 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신 측으로 전달하는 과정을 의미할 수 있다. 피드백 과정을 통해 6DoF콘텐츠와 사용자간의 인터렉티비티 (interactivity)가 일어날 수 있으며, 실시예에 따라 피드백 과정에서 사용자의 머리와 포지션 위치 정보 (head/position orientation) 및 사용자가 현재 보고 있는 영역(viewport)에 대한 정보 등이 전달 될 수도 있다. 해당 정보는 피드백 과정에서 송신측 혹은 서비스 제공자 측에 전달 될 수 있으며, 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
사용자의 위치 정보는 사용자의 머리 위치, 각도, 움직임 및 이동 거리 등에 대한 정보를 의미할 수 있으며, 해당 정보를 바탕으로 사용자가 보고 있는 위치(viewport) 정보가 계산 될 수 있다.
도18은 6DoF 비디오 서비스 제공을 위한 전송 장치의 구성을 나타낸다.
송신측에서의 본 발명은 6DoF 비디오 전송 장치와 관련 될 수 있다. 본 발명에 따른 6DoF 비디오 전송 장치는 전술한 준비 과정 및 동작들을 수행할 수 있다. 본 발명에 따른 6DoF 비디오/이미지 전송 장치는 데이터 입력부, 깊이 정보 처리부 (도시되지 않음), 스티처(Stitcher), 프로젝션 처리부, 시점 분리 처리부, 시점별 패킹 처리부, 메타메이타 처리부, 피드백 처리부, 데이터 인코더, 인캡슐레이션 처리부, 전송 처리부 및/또는 전송부를 내/외부 구성 요소로 포함할 수 있다.
데이터 입력부는 한 군데 이상의 위치에서 한 개 이상의 카메라로 캡쳐된 각 시점별 이미지/비디오/깊이정보/오디오 데이터를 입력 받을 수 있다. 데이터 입력부는 캡처 과정에서 발생된 메타메이타를 비디오/이미지/깊이정보/오디오 데이터와 함께 입력 받을 수 있다. 데이터 입력부는 입력된 각 시점별 비디오/이미지 데이터를 스티처로 전달하고, 캡쳐 과정에서 발생된 메타메이타를 메타메이타 처리부로 전달 할 수 있다.
스티처는 캡쳐된 시점별/위치별 이미지/비디오들에 대한 스티칭 작업을 수행할 수 있다. 스티처는 스티칭된 360 비디오 데이터를 프로젝션 처리부로 전달할 수 있다. 스티처는 필요한 경우 메타메이타 처리부로부터 전달받아 스티칭을 할 수 있다. 스티처는 스티칭 과정에서 발생한 메타메이타를 메타메이타 처리부로 전달 할 수 있다. 스티처는 깊이(depth)정보 처리부 (도식되지 않음) 에서 전달 받은 위치값을 활용하여 비디오/이미지 스티칭 위치를 다르게 할 수 있다. 스티처는 스티칭 과정에서 발생된 메타메이타를 처리부로 전달할 수 있다. 전달 되는 메타메이타는 스티칭 수행 여부, 스티칭 타입, 주요 시점(primary view)과 부차 시점(secondary view)의 ID 및 해당 시점의 위치 정보 등이 있을 수 있다.
프로젝션 처리부는 스티칭된 6DoF 비디오 데이터를 2D 이미지 프레임에 프로젝션할 수 있다. 프로젝션 처리부는 스킴(scheme)에 따라 다른 형태의 결과물을 얻을 수 있는데, 해당 스킴은 기존의 360비디오의 프로젝션 스킴과 유사할 수도 있고, 6DoF를 위해 새롭게 제안된 스킴이 적용 될수도 있다. 또한 각 시점별 서로 다른 스킴을 적용할 수 있다. 깊이 정보 처리부는 깊이 정보를 프로젝션 처리부로 전달하여 맵핑 결과 값을 다르게 할 수 있다. 프로젝션 처리부는 필요한 경우 메타메이타 처리부로부터 프로젝션에 필요한 메타메이타를 전달받아 프로젝션 작업에 이용할 수 있으며, 프로젝션 처리부는 프로젝션 과정에서 발생된 메타메이타를 메타메이타 처리부로 전달 할 수 있다. 해당 메타메이타는 스킴의 종류, 프로젝션 수행 여부, 주요시점과 부차 시점의 프로젝션 후의 2D 프레임의 ID 및 시점별 위치 정보 등이 있을 수 있다.
시점별 패킹 처리부는 전술한 바와 같이 주요 시점과 부차 시점으로 나누고, 각 시점 내 리전별 패킹 과정을 수행할 수 있다. 즉 시점별 패킹 처리부는 각 시점/위치별 프로젝션된 6DoF 비디오 데이터를 주요 시점과 부차 시점으로 분류하여 코딩 효율을 높이기 위해 주요 시점과 부차 시점을 다른 해상도를 가질 수 있도록 하거나 각 시점의 비디오 데이터를 회전, 재배열 달리하고 각 시점 안에서 나누어진 리전별 해상도를 다르게 할 수도 있다. 주요 시점과 부차 시점을 분류하는 과정은 생략될 수 있으며, 선택적인 과정일 수 있으며, 리전별 다른 해상도를 가지거나 배치를 다르게 하는 것도 선택적으로 수행될 수 있다. 시점별 패킹 처리부가 수행될 경우에 패킹은 메타메이타 처리부로부터 전달 받은 정보를 활용하여 수행 될 수 있으며, 패킹 과정에서 발생한 메타메이타를 메타메이타 처리부로 전달 할 수도 있다. 시점별 패킹 처리 과정에서 정의되는 메타메이타는 주요 시점과 부차 시점을 분류하기 위한 각 시점의 ID와 시점 내 리전별 적용되는 사이즈, 회전 각 리전별 위치 값 등이 될 수 있다.
전술한 스티처, 프로젝션 처리부 및/또는 시점별 패킹 처리부는 실시예에 따라 하나 이상의 하드웨어 컴포넌트 혹은 스트리밍/다운로드 서비스 내의 인제스트 서버(Ingest server)에서 일어날 수도 있다.
메타메이타 처리부는 캡쳐 과정, 스티칭 과정, 프로젝션 과정, 시점별 패킹 과정, 인코딩 과정, 인캡슐레이션 과정 및/또는 전송을 위한 처리 과정에서 발생할 수 있는 메타메이타들을 처리할 수 있다. 메타메이타 처리부는 각 프로세스에서 전달 받은 메타메이타를 활용하여 6DOF 비디오 서비스를 위한 새로운 메타메이타를 생성할 수 있다. 실시예에 따라 메타메이타 처리부는 새롭게 생성된 메타메이타를 시그널링 테이블의 형태로 생성할 수도 있다. 메타메이타 처리부는 전달받거나 메타메이타 처리부에서 새롭게 생성/가공된 메타메이타를 다른 요소들에 전달 할 수 있다. 메타메이타 처리부는 생성되거나 전달 받은 메타메이타를 수신측으로 전송될 수 있도록 데이터 인코더, 인캡슐레이션 처리부 및/또는 전송 처리부에 전달 할 수 있다.
데이터 인코더는 2D 이미지 프레임 상에 프로젝션 된 6DoF 비디오 데이터 및/또는 시점별/리전별 패킹된 비디오 데이터를 인코딩 할 수 있다. 인코딩은 다양한 포맷으로 수행 될 수 있으며, 시점별 분류가 되었다면, 시점별 인코딩 결과 값을 분리하여 전달 할 수도 있다.
인캡슐레이션 처리부는 인코딩된 6DoF 비디오 데이터 및/또는 관련 메타메이타를 파일 등의 형태로 인캡슐레이션 할 수 있다. 관련 메타메이타는 전술한 메타메이타 처리부로부터 전달 받을 수 있다. 인캡슐레이션 처리부는 해당 데이터를 ISOBMFF, OMAF 등의 파일 포맷으로 인캡슐레이션 하거나 DASH 세그먼트 등의 형태로 처리할 수 있으며, 새로운 형태의 파일 포맷으로 처리될 수도 있다. 메타메이타는 파일 포맷 내 다양한 레벨에 존재하는 박스(box)에 포함되거나 별로의 트랙내의 데이터로 포함하거나 메타메이타만 파일로 인캡슐레이션 할 수 있다. 시점별 별도의 인캡슐레이션 처리가 가능할 수도 있고, 시점별 필요한 메타메이타와 해당 비디오 정보를 함께 인캡슐레이션 할 수도 있다.
전송 처리부는 포맷에 따라 인캡슐레이션된 비디오 데이터에 전송을 위한 추가 처리를 가할 수 있다. 해당 처리는 메타메이타 처리부에서 전달 받은 메타메이타를 활용하여 작동할 수 있다. 전송부는 전송 처리부로부터 전달 받은 데이터 및/또는 메타메이타를 방송망 및/또는 브로드밴드를 통해 전송될 수 있다. 전송부는 방송망및/또는 브로드밴드를 통한 전송 시 필요한 구성 요소가 포함될 수 있다.
피드백 처리부(송신측)는 및/또는 네트워크 인터페이스(도시되지 않음)를 추가로 더 포함할 수 있다. 네트워크 인터페이스는 본 발명에서 후술 되는 수신 장치로부터 피드백 정보를 전달 받고 피드백 처리부(송신측) 으로 전달 할 수 있다. 피드백 처리부는 수신측에서 전달받은 정보를 스티칭, 프로젝션, 시점별 패킹, 인코터, 인캡슐레이션 처리부 및/또는 전송 처리부로 전달 할 수 있으며, 메타메이타 처리부로 전달하여 메타메이타 처리부가 다른 요소들에 전달하거나 메타메이타 처리부에서 새로운 메타메이타를 생성/가공하여 전달 할 수 있다. 본 발명의 또 다른 실시예에 따르면 피드백 처리부가 네트워크 인터페이스로부터 전달 받은 위치/시점 정보를 메타메이타 처리부로 전달하며, 메타메이타 처리부는 프로젝션, 시점별 패킹 처리부, 인캡슐레이션 처리부 및/또는 데이터 인코더로 해당 위치/시점 정보를 전달하여 현재 사용자의 시점/위치에 맞는 정보와 주변 정보만을 전송하여 코딩 효율을 높일 수 있다.
전술한 6DoF비디오 전송 장치의 구성 요소들은 하드웨어로 구현되는 하드웨어 구성 요소 일 수 있다. 실시예에 따라 각 구성요소들은 변경, 생략 되거나 새로운 구성요소를 추가 혹은 다른 구성요소로 대체, 통합될 수 있다.
도19는 6DoF 비디오 수신 장치의 구성을 나타낸다.
본 발명은 수신 장치와 관련될 수 있다. 본 발명에 따르면 6DoF 비디오 수신 장치는 수신부, 수신 처리부, 디캡슐레이션 처리부, 메타메이타 파서, 피드백 처리부, 데이터 디코더, 리-프로젝션 처리부, 가상시점 생성/합성부 및/또는 렌더러를 구성요소로 가질 수 있다.
수신부는 전술한 6DoF송신 장치로부터 비디오 데이터를 수신할 수 있다. 비디오 데이터가 전송되는 채널에 따라 수신부는 방송망 또는 브로드밴드를 통해 수신할 수도 있다.
수신 처리부는 수신된 6DoF 비디오 데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 수신 처리부는 전송 처리부에서 수행된 과정의 역순으로 수행하거나 프로토콜 처리 방법에 따른 과정을 거쳐 전송 처리부 이전 단계에서 얻은 데이터를 획득한다. 수신 처리부는 획득한 데이터를 디캡슐레이션 처리부로 전달하고, 수신부로 부터 받은 메타메이타 정보를 메타메이타 파서로 전달할 수 있다.
디캡슐레이션 처리부는 수신 처리부로부터 전달받은 파일 형태의 6DoF 비디오 데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 해당 파일 포맷에 맞추어 파일들을 디캡슐레이션하여, 6DoF 비디오 및/또는 메타메이타를 획득할 수 있다. 획득된 6DoF 비디오 데이터는 데이터 디코더로 보낼 수 있고, 6DoF 메타메이타는 메타메이타 파서로 전달할 수 있다. 디캡슐레이션 처리부는 필요에 따라 메타메이타 파서로부터 디캡슐레이션에 필요한 메타메이타를 전달받을 수도 있다.
데이터 디코더는 6DoF 비디오 데이터에 대한 디코딩을 수행할 수 있다. 데이터 디코더는 메타메이타 파서로부터 디코딩에 필요한 메타메이타를 전달 받을 수 있다. 데이터 디코딩 과정에서 획득 된 메타메이타는 메타메이타 파서로 전달되어 처리될 수 있다.
메타메이타 파서는 6DoF 비디오 관련 메타메이타에 대한 파싱/디코딩을 수행할 수 있다. 메타메이타 파서는 획득한 메타메이타를 디캡슐레이션 처리부, 데이터 디코더, 리-프로젝션 처리부, 가상 시점 생성/합성부 및/또는 렌더러로 전달 할 수도 있다.
리-프로젝션 처리부는 디코딩된 6DoF 비디오 데이터에 대하여 리-프로젝션을 수행할 수 있다. 리-프로젝션 처리부는 각 시점/위치별 6DoF 데이터를 각각 3차원 공간으로 리-프로젝션할 수 있다. 3차원 공간은 사용되는 3차원 모델에 따라 다른 형태를 가질 수도 있고, 변환 과정을 거처 동일한 형태의 3차원 모델로 리-프로젝션 될 수도있다. 리-프로젝션 처리부는 메타메이타 파서로부터 필요한 메타메이타를 전달 받을 수 있다. 리-프로젝션 과정에서 정의된 메타메이타를 메타메이타 파서로 전달할 수도 있다. 예를 들어 각 시점/위치 별 6DoF 비디오 데이터의 3차원 모델을 메타메이타 파서로 전달 받을 수 있고, 각 시점/위치별 비디오 데이터의 3차원 모델이 다르고 모든 시점의 비디오 데이터를 동일한 3차원 모델로 리-프로젝션 되었을 경우 어떤 모델이 적용 되었는지 메타메이타 파서로 전달할 수 있다. 때에 따라서는 리-프로젝션에 필요한 메타메이타를 이용하여, 3차원 공간 내에 특정 영역만 리-프로젝션 할 수 있으며, 한 개 이상의 특정 영역을 리-프로젝션 할 수도 있다.
가상 시점 생성/합성부는 전송되어 리-프로젝션 된 3차원 공간상에서 수신된 6DoF 비디오 데이터에 포함되어 있지 않으나 재생이 필요한 가상의 시점 영역에서 비디오 데이터를 주어진 데이터를 활용하여 생성하고, 가상 시점을 중심으로 새로운 시점/위치에서의 비디오 데이터를 합성하는 과정을 수행할 수 있다. 새로운 시점의 비디오 데이터를 생성할 때 깊이(depth)정보 처리부 (도시하지 않음)의 데이터를 활용할 수 있다. 가상 시점 생성/합성부는 메타메이타 파서로부터 전달 받은 특정 영역과 수신 되지 않은 주변 가상 시점 영역의 일부만 생성/합성 할 수 있다. 가상 시점 생성/합성부는 선택적으로 수행될 수 있으며, 필요한 시점 및 위치에 해당하는 비디오 정보가 없을 때 수행된다.
렌더러는 리-프로젝션 혹은 가상 시점 생성/합성부에서 전달된 6DoF 비디오 데이터를 렌더링 할 수 있다. 전술 한 바와 같이 3차원 공간상에서 리-프로젝션 혹은 가상 시점 생성/합성부에서 일어나는 모든 과정은 렌더러와 통합되어 렌더러 내에서 이 과정들이 진행될 수 있다. 실시예에 따라 사용자의 시점/위치 정보에 따라 사용자가 보고 있는 부분 및 예상 경로 상의 일부만 렌더링 할 수도 있다.
본 발명에서 피드백 처리부(수신측) 및/또는 네트워크 인터페이스(도시되지 않음)을 추가적인 구성요소로 포함할 수 있다. 수신측 피드백 처리부는 렌더러, 가상 시점 생성/합성부, 리-프로젝션 처리부, 데이터 디코더, 디캡슐레이션 및/또는 VR 디스플레이로부터 피드백 정보를 획득하여 처리할 수 있다. 피드백 정보는 사용자의 뷰포트 정보, 헤드 및 포지션 오리엔테이션 정보, 게이즈(gaze) 정보, 제스처(gesture) 정보 등을 포함할 수 있다. 네트워크 인터페이스는 피드백 정보를 피드백 처리부로부터 전달 받고, 전송 장치로 전송할 수 있으며, 수신측의 각 구성요소에서 소비될 수도 있다. 예를 들면, 디캡슐레이션 처리부에서는 피드백 처리부로 부터 사용자의 위치/시점 정보를 전달 받아 수신된 6DoF 비디오 중에 해당 위치의 정보가 있을 경우 해당 위치 정보만 디캡슐레이션, 디코딩, 리-프로젝션, 렌더링을 할 수 있다. 만약 해당 위치의 정보가 없을 경우 해당 위치 주변에 위치한 6DoF 비디오를 모두 디캡슐레이션, 디코딩, 리-프로젝션, 가상 시점 생성/합성, 렌더링의 과정을 거칠 수 있도록 할 수 있다.
전술한 6DoF비디오 수신 장치의 구성 요소들은 하드웨어로 구현되는 하드웨어 구성 요소 일 수 있다. 실시예에 따라 각 구성요소들은 변경, 생략 되거나 새로운 구성요소를 추가 혹은 다른 구성요소로 대체, 통합될 수 있다.
도20은 6 DoF 비디오 전송/수신 장치의 구성을 나타낸다.
6DoF 콘텐츠는 파일 형태로 제공되거나 DASH 등과 같이 세그먼트(segment) 기반 다운로드 또는 스트리밍 서비스의 형태로 제공될 수 있으며, 새로운 파일 포맷 혹은 스트리밍/다운로드 서비스 방법이 대신 쓰일 수도 있다. 여기서 6DoF 콘텐츠는 실감미디어(immersive media) 콘텐츠 혹은 라이트필드(light field) 콘텐츠, 혹은 포인트 클라우드(point cloud) 콘텐츠로 불릴 수 있다.
전술한 바와 같이 해당 파일 제공 및 스트리밍/다운로드 서비스를 위한 각 과정은 아래와 같이 상세하게 설명될 수 있다.
Acquisition : multi view/stereo/depth image를 획득하기 위한 camera 로 부터 capture 후 얻어지는 output 이며, 2개 이상의 video/image및 오디오 데이터가 얻어지게 되고, depth camera가 있는 경우 각 scene에서의 depth map도 획득(acquisition) 될 수 있다.
Audio Encoding : 6DoF 오디오 데이터는 오디오 전처리 과정, 인코딩 과정을 거칠 수 있다. 이 과정에서 메타메이타가 생성될 수 있으며, 관련 메타메이타는 전송을 위해 인캡슐레이션/인코딩 과정을 거칠 수 있다.
Stitching, Projection, mapping, and correction : 6DoF 비디오 데이터는 전술한 바와 같이 다양한 위치에서 획득된 영상의 에디팅, 스티칭, 프로젝션 과정을 거칠 수 있다. 이 과정은 실시예에 따라 일부만 수행되기도 하고, 전체가 생략되어 수신기측에서 수행 될 수도 있다.
View segmentation/packing : 전술한 바와 같이 시점 분리/패킹 처리부는 스티칭 된 영상을 바탕으로 수신기 측에서 요구 되는 주요 시점,Primary View(PV) 위치의 영상을 분리해 내어 패킹 하고, 주요 시점으로 분리되어 패킹 된 후 나머지 영상을 부차 시점, Secondary View(SV)로 패킹하는 전처리 과정을 거칠 수 있다. 패킹하는 과정에서 코딩 효율을 높이기 위해 주요 시점과 부차 시점의 사이즈, 해상도 등이 조정될 수 있다. 동일한 성격의 시점 내에서도 리전별 다른 조건으로 해상도를 가지거나 리전에 따라 회전, 재배치 될 수 있다.
Depth sensing and/or estimation: 깊이 캡처 카메라 (depth camera)가 존재하지 않는 경우 획득된 2개 이상의 영상에서 깊이 맵을 추출해 내는 과정을 수행하기 위함이며 깊이 캡처 카메라 (depth camera)가 있는 경우 영상 획득 위치에서 영상 내 포함된 각 오브젝트(object)의 깊이가 얼만큼 되는지 위치 정보를 저장하기 위한 과정을 수행할 수 있다.
Point Cloud Fusion/extraction 미리 획득 된 깊이 맵을 인코딩 가능한 형태의 데이터로 변형하는 과정을 수행할 수 있다. 예를 들어 포인트 클라우드 데이터 타입으로 변형하여 3차원에서 영상의 각 오브젝트의 위치 값을 할당하는 전처리 과정을 수행할 수 있으며, 포인터 클라우드 데이터 타입이 아닌 3차원 공간 정보를 표현할 수 있는 데이터 타입이 대신 적용될 수 있다.
PV encoding/SV encoding/light field/point cloud encoding : 시점별로 미리 패킹되거나 깊이 정보 및/또는 위치 정보는 각각 이미지 인코딩 내지 비디오 인코딩 될 수 있다. 동일한 시점의 같은 콘텐츠라도 리전별로 다른 비트 스트림으로 인코딩될 수도 있다. MPEG-I에서 정의될 새로운 codec 및 HEVC-3D, OMAF++ 등 media format이 될 수 있다.
File encapsulation : 전술한 대로 인코딩된 6DoF 비디오 데이터는 인캡슐레이션 처리부인 File-encapsulation에 의해 ISOBMFF 등의 파일 포맷으로 처리될 수 있다. 또는 인코딩 된 6DoF 비디오 데이터는 세그먼트들로 처리할 수 있다.
Metadata(including depth information) : 6DoF 비디오 데이터 처리와 같이 획득, 스티칭, 프로젝션, 시점별 분리/패킹, 인코딩, 인캡슐레이션 과정중에 발생한 메타메이타를 메타메이타 처리부로 전달하거나 메타메이타 처리부에서 생성된 메타메이타를 각 과정으로 전달 할 수 있다. 또한 송신측에서 생성된 메타메이타는 인캡슐레이션 과정에서 하나의 트랙 혹은 파일로 생성하여 수신측으로 전달 할 수 있다. 수신측에서는 방송망이나 브로드밴드를 통해 별도의 파일 혹은 파일 내 트랙으로 저장되어 있는 메타메이타를 수신할 수 있다.
Delivery : 파일 및/또는 세그먼트들은 DASH 혹은 유사한 기능을 가진 새로운 모델을 기반으로 전송을 위한 개별 트랙에 포함될 수 있다. 이때 전송을 위해 MPEG DASH, MMT및/또는 새로운 표준이 적용될 수 있다.
File decapsulation : 수신 장치는 6DoF 비디오/오디오 데이터 수신을 위한 처리를 수행할 수 있다.
Audio deconding/Audio rendering/Loudspeakers/headphones : 6DoF 오디오 데이터는 오디오 디코딩, 렌더링 과정을 거쳐 스피커, 헤드폰을 통해 사용자에게 제공될 수 있다.
PV/SV/light field/point cloud decoding : 6DoF 비디오 데이터는 이미지 내지 비디오 디코딩 할 수 있다. 디코딩에 적용되는 코덱은 HEVC-3D, OMAF++ 및 MPEG에서 6DoF를 위해 새롭게 제안되는 코덱이 적용될 수 있다. 이 때 주요 시점(PV)와 부차 시점(SV)이 분리되어 각 시점 패킹 내에서 비디오 내지 이미지가 각각 디코딩 될 수 있고, 시점 분류와 상관없이 비디오 내지 이미지 디코딩이 될 수 있다. 또한 위치, 깊이 정보를 가지고 있는 라이트필드와 포인트 클라우드 디코딩이 먼저 이루어지고나서 헤드, 포지션, 시선 트래킹의 피드백을 먼저 전달하고 사용자가 위치한 주변부 시점의 이미지 내지 비디오만 분리해 내어 디코딩 될 수도 있다.
Head/eye/position tracking : 전술한 바와 같이 사용자의 헤드, 포지션, 게이즈, 뷰포트 정보 등을 획득, 처리할 수 있다.
Point Cloud rendering : 캡쳐한 비디오/이미지 데이터를 3차원 공간상에 리-프로젝션 할 때 3차원의 공간 위치를 설정하고, 수신한 비디오/이미지 데이터에서 확보하지 못하였으나 사용자가 이동 가능한 위치인 가상 시점의 3차원 공간을 생성하는 과정을 수행한다.
Virtual view synthesis : 전술한 바와 같이 사용자가 위치한 공간에 6DoF 비디오 데이터가 없을 경우 사용자 위치/시점 주변에 이미 확보된 6DoF 비디오 데이터를 활용하여 새로운 시점의 비디오 데이터를 생성하고 합성하는 과정을 수행한다. 실시예에 따라 가상 시점 생성 및/또는 합성 과정은 생략될 수 있다.
Image composition, and rendering : 전술한 바와 같이 사용자의 위치를 중심으로 한 영상을 렌더링 하기 위한 과정으로 사용자의 위치 및 시선에 따라 디코딩 된 비디오 데이터를 이용하거나 가상 시점 생성/합성으로 만들어진 사용자 주변의 비디오 및 이미지를 렌더링 할 수 있다.
도21은 6DoF 공간을 나타낸다.
본 발명에서 프로젝션 전 또는 리-프로젝션 후의 6DoF 공간에 대해 기술하고 그에 대한 시그널링을 수행하기 위하여 도 21과 같은 개념을 사용할 수 있다.
6DoF 공간은 360비디오 혹은 3DoF 공간이 야(Yaw), 피치(Pitch), 롤(Roll)로 설명할 수 있는 것과 달리 이동의 방향을 레이셔널(rational)과 트렌스레이션(translation) 두 종류로 나뉠 수 있다. 레이셔널 이동은 a와 같이 기존의 3DoF 의 방향을 설명한 것과 마찬가지로 야, 피치, 롤 로 설명할 수 있으며 방향의 이동(orientation movement)으로 불릴 수도 있다. 반면 트렌스레이션 이동의 경우는 b와 같이 포지션의 이동으로 불릴 수 있다. 왼쪽/오른쪽(Left/Right), 앞/뒤(Forward/Backward), 위/아래(Up/down) 방향 중 축이 어디로 이동했는지 알려 줄 수 있는 것으로 한 축 이상의 값을 정의하여 중심축의 이동을 설명할 수 있다.
본 발명의 특징은 6DoF 비디오 서비스 및 스트리밍을 위한 아키텍쳐를 제안하고 시그널링 및 파일 저장 방법의 기본 메타데이터를 제안하여 향후 6DoF 관련 메타데이터 및 시그널링 확장을 위한 발명에 활용될 수 있다.
- 제안한 6DoF 송,수신기 아키텍처를 바탕으로 각 과정마다 발생하는 메타데이터를 확장할 수 있다.
- 제안한 아키텍처의 과정간에 발생하는 메타데이터를 제안할 수 있다.
- 제안한 메타데이터를 바탕으로 추후 추가/수정/확장하여 6DoF 비디오 서비스를 제공하는 콘텐츠의 6DoF 비디오 관련 파라미터를 ISOBMFF 등 파일에 저장 및 시그널링 할 수 있다.
- 제안한 메타데이터를 바탕으로 추후 추가/수정/확장하여 6DoF 비디오 스트림의 SEI 혹은 VUI를 통해 6DoF 비디오 메타데이터 저장 및 시그널링을 할 수 있다.
리전(리전별 패킹에서의 의미, Region) : 리전(Region) 은 2D 이미지에 프로젝션된 360 비디오 데이터가 리전별 패킹(region-wise packing) 을 통해 팩드 프레임 내에서 위치하게 되는 영역을 의미할 수 있다. 여기서의 리전은 문맥에 따라 리전별 패킹에서 사용되는 리전을 의미할 수 있다. 전술한 바와 같이 리전들을 2D 이미지를 균등하게 나누어 구분되거나, 프로젝션 스킴 등에 따라 임의로 나누어져 구분될 수도 있다.
리전(일반적 의미, region) : 전술한 리전별 패킹에서의 리전과 달리, 사전적 의미로서 리전(region) 이라는 용어가 사용될 수도 있다. 이 경우 리전이란 사전적 의미인 '영역', '구역', '일부분' 등의 의미를 가질 수 있다. 예를 들어 후술할 페이스(face) 의 일 영역을 의미할 때, '해당 페이스의 한 리전' 등과 같은 표현이 사용될 수 있다. 이 경우 리전은 전술한 리전별 패킹에서의 리전과는 구분되는 의미로서, 양자는 서로 무관한, 다른 영역을 지시할 수 있다.
픽쳐 : 픽쳐는 360 비디오 데이터가 프로젝션된 2D 이미지 전체를 의미할 수 있다. 실시예에 따라 프로젝티드 프레임 내지는 팩드 프레임이 픽쳐가 될 수 있다.
서브-픽쳐 : 서브 픽쳐는 전술한 픽쳐의 일부분을 의미할 수 있다. 예를 들어 타일링 등을 수행하기 위해 픽쳐가 여러 서브-픽쳐로 나누어질 수 있다. 이 때 각 서브 픽쳐가 타일이 될 수 있다. 구체적으로, 타일 내지 MCTS 를 기존의 HEVC 와 호환되는 픽쳐 형태로 재구성하는 동작을 MCTS 추출(extraction) 이라고 할 수 있다. 이 MCTS 추출의 결과물은 원래의 타일 내지 MCTS 가 속하는 픽쳐의 서브-픽쳐일 수 있다.
타일 : 서브 픽처의 하위 개념으로서, 서브 픽처가 타일링을 위한 타일로 쓰일 수 있다. 즉, 타일링에 있어서는 서브 픽처와 타일은 동일한 개념일 수 있다. 구체적으로, 본디 타일은 병렬 디코딩을 가능케 하기 위한 툴이나, VR 에 있어서는 독립 디코딩을 위한 툴일 수 있다. VR 에 있어서 타일은, 템포럴 인터 프리딕션(temporal inter prediction, TIP) 의 범위를 현재의 타일 내부 범위로 제한한 MCTS (Motion Constrained Tile Set) 을 의미할 수 있다. 이에 이 문서에서 타일은 MCTS 로도 불릴 수 있다.
슈페리컬 리전(Spherical region) : 슈페리컬 리전 내지 슈피어 리전(Sphere region) 은, 360 비디오 데이터가 수신측에서 3D 공간(예를 들어 구면) 상에 렌더링될 때, 그 구면 상의 일 영역을 의미할 수 있다. 여기서 슈페리컬 리전은, 리전별 패킹에서의 리전과는 무관하다. 즉, 슈페리컬 리전이 리전별 패킹에서 정의되었던 리전과 같은 영역을 의미할 필요는 없다. 슈페리컬 리전은 렌더링되는 구면 상의 일 부분을 의미하는 데 사용되는 용어로서, 여기서의 '리전' 은 사전적 의미로서의 '영역'을 뜻할 수 있다. 문맥에 따라 슈페리컬 리전이 단순히 리전이라고 불릴 수도 있다.
페이스(face) : 페이스는 프로젝션 스킴에 따라 각 면을 부르는 용어일 수 있다. 예를 들어 큐브맵 프로젝션이 사용되는 경우, 앞면, 뒷면, 양 옆면, 윗면, 아랫면 등은 페이스라고 불릴 수 있다.
VR(Virtual Reality)은 사용자에게 높은 몰입감과 현장감을 제공하는 차세대 미디어이다. VR 360 영상은 전방위 시점의 영상을 촬영할 수 있는 카메라로부터 획득되며, 촬영된 영상은 스티칭(stitching) 작업을 통해 하나의 파노라마 영상으로 제작된다.
이하에서는 360 영상에 대한 ROI 기반 썸네일 추출하는 본 발명의 실시예들에 따른 VR 디바이스의 구조 및 VR 디바이스 제어 방법의 동작에 대하여 구체적으로 설명한다. 이하 명세서에서 설명하는 360 영상은 상술한 360 비디오 데이터에 대응하는 영상 또는 360 비디오 데이터를 의미할 수 있다. 또한, 이하 명세서에서 설명하는 360 영상은 360 비디오 비트스트림, VR 360 영상, VR 360 비디오 비트스트림 등으로 호칭할 수 있다.
도 22는 본 발명의 실시예들에 따른 스티칭(stitching) 처리된 VR 360 영상의 일 실시예를 나타낸다.
VR 360 카메라로 촬영한 후 스티칭(stitching) 처리된 영상의 일 예를 나타낸다. 시청자는 VR 360 전체 영상 중에서 특정 시점에 대한 일부 영역(빨간박스)을 볼 수 있으며, 시청자와 컨텐츠 간의 상호 작용을 통해 원하는 시점을 자유롭게 이동해가면서 시청할 수 있다.
다시 말해, 도 22의 스티칭된 영상(2200)은 본 발명의 실시예들에 따른 스티칭 과정이 수행된 이미지/비디오 또는 본 발명의 실시예들에 따른 프로젝션이 수행된 이미지 데이터 또는 비디오 데이터를 나타낸다.
시청 영역(2201)은 시청자가 본 발명의 실시예들에 따른 VR 디바이스로 시청하는 영역을 의미할 수 있다. 일 실시예로, 도 22에서 도시된 빨간 박스의 내부 영역이 시청 영역일 수 있다. 시청자는 시청 영역(2201)을 자유롭게 이동하면서 스티칭 또는 프로젝션된 이미지/비디오 데이터(2200)를 시청할 수 있다.
이러한 VR 360영상이 높은 현장감을 제공한다는 장점이 있지만, 실제 시청자에게 보여지는 영상의 화질 및 해상도가 낮을 수 있다. VR 영상 시청 시, 작은 해상도와 낮은 프레임율로 인한 어지러움 증상은 VR 산업 활성화를 늦추는 주된 요인이 되고 있다. 8K 영상은 FHD 영상의 16배(4K 영상의 4배) 해상도를 가지므로, 원활한 8K 영상 서비스를 제공하기 위해서는 8K 영상 전송 기술, 영상 압축 기술, 실시간 디코딩 및 랜더링 기술 등이 필요하다. 하지만 대역폭이 제한적이기 때문에 8K 영상에 대한 스트리밍 서비스에는 한계가 존재한다.
따라서, 본 명세서는 위 한계점을 극복하고 최적의 VR 경험을 제공하기 위하여 8K, 60fps 이상의 해상도로 인코딩된 VR 컨텐츠를 처리하는 본 발명의 실시예들에 따른 VR 디바이스 및 VR 디바이스 제어 방법을 제안한다. 구체적으로, 본 명세서는 대역폭 한계를 극복하기 위한 방법으로, Tile 기반 인코딩 방안을 포함한 ISO/IEC 23090-2 Omnidirectional Media Application Format (MPEG-I Part 2 OMAF)등을 설명하도록 한다.
도 23은 본 발명의 실시예들에 따른 VR 디바이스 시스템의 일 실시예를 나타낸다.
360도를 촬영할 수 있는 카메라를 이용하여 촬영한 영상에 스티칭(stitching), rotation, projection 중에서 최소 하나 이상의 변환 과정을 수행하여 하나의 360 파노라마 영상을 생성한다. 360 파노라마 영상에 대한 부호화 효율을 증가시키기 위해서, 360 파노라마 영상 중에서 상대적으로 중요도가 낮은 영역에 다운샘플링을 적용한 후, region-wise packing을 수행한다. 이러한 전처리 과정에 대한 정보는 메타데이터로써 부호화되어 전송되며, 메타데이터에는 스티칭(stitching), rotation, projection, packing 과 관련된 정보들이 포함될 수 있다. Packing된 영상 및 메타데이터는 인코딩되어 네트워크를 통해 OMAF player로 전송된다.
도 23의 OMAF player에서는 1) 전송된 비트스트림을 디코딩하여 메타데이터 및 packing 영상을 복원하고, 2) 복원된 메타 데이터 및 packing 영상을 이용하여 사용자의 display 장치에 맞게 VR 360 영상으로 랜더링하는 과정이 수행된다.
OMAF 시스템에서 region-wise packing (RWP) 과정은 VR 360 영상 내에서 중요도에 따라 영상 정보량의 비율을 다르게 설정함으로써 부호화 효율을 향상 시키기 위한 과정이다. 이러한 region-wise packing 방법은 VR 360 카메라의 종류 및 packing 방법에 따라 다양하게 분류된다.
다시 말해, 본 발명의 실시예들에 따른 VR 디바이스 및 VR 디바이스 제어 방법은 OMAF(Omnidirectional Media Application Format) 시스템에 기초하여 동작 및 제어될 수 있다. 본 발명의 실시예들에 따른 OMAF 시스템은 도 4에서 전술한 바와 같이 수행될 수 있다.
먼저, 360 컨텐츠가 제공될 수 있다. 360 컨텐츠는 파일 형태로 제공되거나, DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜에 기반한 DASH 세그먼트(segment) 기반 다운로드 또는 스트리밍 서비스의 형태로 제공될 수 있다. 여기서 360 컨텐츠는 360 영상, 360 비디오 비트스트림, VR 360 영상, VR 360 비디오 비트스트림 등으로 호칭할 수 있다.
애퀴지션(Acquisition)은 전술한 바와 같이 360 비디오 데이터 및/또는 360 오디오 데이터를 획득하는 과정을 의미한다. 360 비디오 데이터 및/또는 360 오디오 데이터는 일 실시예로 리얼-월드 씬(Real-world scene)을 의미할 수 있다(A).
이미지 스티칭, 로테이션, 프로젝션 및 리전-와이즈 패킹(Image stitching, rotation, projection and region-wise packing)은 획득한 360 비디오/이미지 데이터에 대하여 상술한 본 발명의 실시예들에 따른 스티칭(stitching), 로테이션(rotation), 프로젝션(projection) 및 리전-와이즈 패킹(region-wise packing)을 수행할 수 있다. 이 때, 스티칭(stitching), 로테이션(rotation), 프로젝션(projection) 및 리전-와이즈 패킹(region-wise packing) 각각의 동작과 관련된 메타데이터(metadata)가 생성될 수 있다. 이 때, 획득한 360 비디오/이미지 데이터는 멀티플 센서들에 의해 포착된 비디오 또는 오디오(multiple-sensors-captured video or audio, B, Ba, Bi)를 의미할 수 있다.
오디오 인코딩(Audio encoding)은 획득된 360 오디오 데이터에 대하여 인코딩을 수행할 수 있다. 오디오 인코딩은 상술한 오디오 프리 프로세싱(Audio pre-processing)을 포함할 수 있다.
비디오 인코딩(Video encoding)은 이미지 스티칭, 로테이션, 프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터에 대하여 상술한 비디오 인코딩을 수행할 수 있다.
이미지 인코딩(Video encoding)은 이미지 스티칭, 로테이션, 프로젝션 및 리전-와이즈 패킹이 수행된 360 이미지 데이터에 대하여 상술한 이미지 인코딩을 수행할 수 있다.
이 때, 이미지 스티칭, 로테이션, 프로젝션 및 리전-와이즈 패킹이 수행된 360 이미지/비디오 데이터는 일 실시예로 프로젝티드/패킹된 비디오(Projected/packed video, D/D')를 의미할 수 있다. 또한, 비디오 인코딩, 오디오 인코딩 및 이미지 인코딩이 수행된 데이터는 코디드 비디오 또는 오디오 비트스트림(Coded video or audio bitstream, E/E')일 수 있다.
파일/세그먼트 인켑슐레이션(File/segment encapsulation)은 인코딩된 360 비디오 데이터, 360 오디오 데이터 또는 360 이미지 데이터를 ISOBMFF 등의 파일 포맷으로 처리될 수 있다. 파일/세그먼트 인켑슐레이션은 전술한 본 발명의 실시예들에 따른 인캡슐레이션 처리부에 의해 수행될 수 있다. 또한, 인캡슐레이션 처리부는 인코딩된 360 비디오 데이터, 360 이미지 데이터를 세그먼트들로 처리할 수 있다. 세그먼트들은 상술한 DASH 에 기반한 전송을 위한 개별 트랙에 포함될 수 있다. 이 때, 파일/세그먼트 인켑슐레이션(File/segment encapsulation)은 전술한 스티칭(stitching), 로테이션(rotation), 프로젝션(projection) 및 리전-와이즈 패킹(region-wise packing) 각각의 동작과 관련된 메타데이터(metadata)에 기초하여 수행될 수 있다.
360 오디오/비디오 데이터(360 비디오 비트스트림)은 전송 프로토콜에 따라 전송을 위한 처리를 거치고, 이후 ISOBMFF 파일/세그먼트(ISOBMFF file/segment, F/F') 형태로 전송될 수 있다. 또한, 파일 플레이백(File playback) 형태도 전송될 수 있다. 이 때, 파일/세그먼트 인켑슐레이션(File/segment encapsulation)된 360 비디오 비트스트림의 전부 또는 일부(또는 시그널링 정보)는 별도의 전달(delivery)개체를 통해 전송될 수 있다. 전술한 360 비디오 수신 장치는 이를 방송망 또는 브로드밴드를 통해 수신할 수 있다.
OMAF 플레이어(OMAF player)는 360 비디오 수신 장치의 일 실시예에 해당할 수 있다. OMAF 플레이어는 전술한 본 발명의 실시예들에 따른 VR 서비스 플랫폼(VR service platform)을 의미할 수 있다. 본 발명의 실시예들에 따른 VR 디바이스는 OMAF 플레이어일 수 있다.
파일/세그먼트 디켑슐레이션(File/segment decapsulation)은 360 오디오/이미지/비디오 데이터의 수신을 위한 처리를 수행할 수 있다. 이 때, 360 오디오 데이터, 360 이미지 데이터 또는 360 비디오 데이터는 비트스트림 형태일 수 있고, 360 비디오 비트스트림으로 호칭할 수 있다.
오디오 디코딩(Audio decoding)은 상술한 바에 따라 360 오디오 데이터를 디코딩할 수 있다. 이미지 디코딩(Image decoding)은 상술한 바에 따라 360 이미지 데이터를 디코딩할 수 있다. 비디오 디코딩(Video decoding)은 상술한 바에 따라 360 비디오 데이터를 디코딩할 수 있다.
이미지 렌더링(Image rendering)은 디스플레이(Display)를 통해 디코딩된 360 비디오 데이터 및/또는 360 이미지 데이터를 사용자에게 제공한다. 여기서 디스플레이는 VR 을 지원하는 디스플레이거나 일반 디스플레이일 수 있다.
본 발명의 실시예들에 따른 VR 디바이스 또는 수신기에서는 전술한 수신측 과정들과 통신하는 VR 어플리케이션이 존재할 수 있다. 또한, 라우드스피커/헤드폰(Loudspeakers/headphones), 디스플레이(Display), 헤드/아이 트랙킹 컴포넌트(Head/eye tracking)는 VR 디바이스의 외부 장치 내지 VR 어플리케이션에 의해 수행되는 것일 수 있다. 상술한 바와 같이, 헤드/아이 트래킹 컴포넌트는 오리엔테이션/뷰포트 메타데이터(orientation/viewport metadata)를 생성하여 본 발명의 실시예들에 따른 디코딩(decoding), 파일/세그먼트 디켑슐레이션 동작에 있어서 시그널링 정보를 제공할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 24는 본 발명의 실시예들에 따른 VR 360 영상의 포맷으로, 프로젝션 스킴들의 일 실시예를 나타낸다.
즉, 도 24는 본 발명의 실시예들에 따른 VR 360 영상 포맷(format)의 일 실시예를 나타낸다. 구체적으로, 도 24는 VR 360 영상에서 주로 사용되는 포맷으로 각각 equi-rectangular, cubic, icosahedron을 나타낸다.
상기 equi-rectangular, cubic, icosahedron 영상은 도 24와 같이 다양한 region-wise packing 방법을 사용하여 packing 된 후 인코딩이 수행될 수 있다. 이때, 인코더의 부호화 효율을 향상시키기 위해서, 중요도가 낮은 영역은 다운 샘플링하여 영상의 크기를 줄이고, packing하는 과정에서는 공간적으로 픽셀 간의 유사성이 높은 부분이 인접해지도록 회전 및 순서재배치 등의 방법을 사용하여 영상을 변환한다.
다시 말해, 도 24는 VR 360 영상에서 주로 사용되는 포맷(format)으로, 상술한 프로젝션 스킴이 적용된 VR 360 이미지 또는 VR 360 영상을 나타낸 것이다. 전술한 바와 같이 본 발명에 따른 360 비디오 전송 장치의 프로젝션 처리부는 스티칭된 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다. 이 과정에서 다양한 프로젝션 스킴들이 활용될 수 있다. 상술된 바와 같이 프로젝션 스킴은 일 실시예로 projection_scheme 필드에 기초하여 결정될 수 있다.
등정방형(Equirectangular)는 상술한 프로젝션 스킴(또는 포멧)의 일 실시예이다. 즉, 스티칭된 360 비디오 데이터에 있어서, 구형 좌표계(spherical coordinates)를 평면 좌표계(planar coordinates)로 변환함으로써 프로젝션할 수 있다. VR 360 영상의 포멧의 일 실시예는 등정방형(Equirectangular) 프로젝션 스킴이 적용된 영상일 수 있다. 즉 본 발명의 실시예들에 따른 프로젝션 처리부는 등정방형 프로젝션 스킴을 이용하여 프로젝션을 수행할 수 있다
큐빅(Cubic)은 상술한 프로젝션 스킴(또는 포멧)의 다른 실시예이다. 즉, 스티칭된 360 비디오 데이터는 구형의 면 상에 나타내어질 수 있다. 프로젝션 처리부는 이러한 360 비디오 데이터를 큐브(Cube, 정육면체) 형태로 나누어 2D 이미지 상에 프로젝션할 수 있다. VR 360 영상의 포멧의 일 실시예는 큐빅(Cubic) 프로젝션 스킴이 적용된 영상일 수 있다. 즉 본 발명의 실시예들에 따른 프로젝션 처리부는 큐빅 프로젝션 스킴을 이용하여 프로젝션을 수행할 수 있다.
이십면체(Icosahedron)은 상술한 프로젝션 스킴(또는 포멧)의 다른 실시예이다. 즉, 스티칭된 360 비디오 데이터는 이십면체 상에 나타내어질 수 있다. VR 360 영상의 포멧의 일 실시예는 이십면체(Icosahedron) 프로젝션 스킴이 적용된 영상일 수 있다. 즉 본 발명의 실시예들에 따른 프로젝션 처리부는 이십면체 프로젝션 스킴을 이용하여 프로젝션을 수행할 수 있다
VR 360 영상의 포멧은 그 외에도 상술한 프로젝션 스킴에 따라 다양하게 프로젝션될 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 25는 본 발명의 실시예들에 따른 리전-와이즈 패킹(region-wise packing) 방법에 대하여 설명한다.
리전-와이즈 패킹(region-wise packing, RWP) 과정은 VR 360 영상 내에서 중요도에 따라 영상 정보량의 비율을 다르게 설정함으로써 부호화 효율을 향상 시키기 위한 과정이다. 이러한 region-wise packing 방법은 VR 360 카메라의 종류 및 packing 방법에 따라 다양하게 분류된다.
다시 말해, 2D 이미지 상에 프로젝션된 비디오 데이터는 비디오 코딩 효율 등을 높이기 위하여 리전-와이즈 패킹 과정(Region-wise Packing)을 거칠 수 있다. 리전-와이즈 패킹이란, 2D 이미지 상에 프로젝션된 비디오 데이터를 리전(Region) 별로 나누어 처리를 가하는 과정을 의미할 수 있다. 실시예에 따라 리전들은, 프로젝션 스킴에 따라 구분되어질 수도 있다. 리전별 패킹 과정은 선택적(optional) 과정으로써, 준비 과정에서 생략될 수 있다. 실시예에 따라 이 처리 과정은, 비디오 코딩 효율을 높이기 위해, 각 리전을 회전한다거나 2D 이미지 상에서 재배열하는 과정을 포함할 수 있다.
구체적으로, 도 25에서는 본 발명의 실시예들에 따른 리전-와이즈 패킹의 세 가지 실시예를 제시한다.
도 25(a)와 같이, 본 발명의 실시예들에 따른 리전-와이즈 패킹은 프로젝션이 수행된 VR 360 영상(projected picture)을 세 영역으로(2501a, 2502a, 2503a) 나누어 각각의 중요도에 따라 패킹(packing)을 수행하여 패킹된 영상(packed picture)을 생성할 수 있다. 일 실시예로, 1번 영역(2501a)과 같이 하늘을 나타내는 단조로운 영상/이미지와 3번 영역(2503a)과 같이 바닥을 나타내는 단조로운 영상/이미지는 중요하지 않은 부분일 수 있으므로 2번 영역보다 크기를 작게 하여 패킹을 수행할 수 있다(2501).
마찬가지로 도 25(b)와 같이, 본 발명의 실시예들에 따른 리전-와이즈 패킹은 프로젝션이 수행된 VR 360 영상을 세 영역으로(2501b, 2502b, 2503b) 나누어 각각의 중요도에 따라 패킹(packing)을 수행할 수 있다. 일 실시예로, 1번 영역(2501b)과 3번 영역(2503b)과 같이 정보량이 적거나 서로 유사한 점이 많은 영상/이미지는 중요하지 않은 부분일 수 있으므로 2번 영역보다 크기를 작게 하여 패킹을 수행할 수 있다(2502).
또한, 본 발명의 실시예들에 따른 리전-와이즈 패킹은 도 25(c)와 같이 영역을 동일한 크기로 나눌 수도 있고(2501c, 2502c, 2503c, 2504c, 2505c, 2506c), 각 나눈 영역을 회전하여 재배치할 수도 있다(2504c, 2505c, 2506c). 또한 위 영역들을 패킹하는 경우 상대적으로 중요한 부분(2502c)은 큰 이미지로, 나머지 상대적으로 중요하지 않은 부분들은 작은 이미지로 패킹을 수행할 수 있다(2503).
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 26은 본 발명의 실시예들에 따른 타일(Tile) 단위 인코딩 시 썸네일(Thumbnail)로 사용될 ROI의 일 실시예를 나타낸다.
VR 360 영상에서 ROI는 시간에 따라 변경될 수 있으며, 썸네일 추출 ROI와 관련된 정보가 프레임 단위마다 전달될 수 있다. 이러한 썸네일 추출 ROI과 관련된 정보는 SEI message를 사용하여 비디오 비트스트림에 포함되어 디코더로 전달될 수 있다. 이러한 ROI 관련 정보는 Tile단위 혹은 Tile group 단위로 설정되어 SEI message에 포함될 수 있다. 디코더는 해당 SEI message 정보를 디코딩하여 ROI에 해당하는 영역만을 추출하여 디코딩할 수 있다.
ROI 기반 디코딩이 수행되기 위하여, 컨텐츠는 Tile 기반으로 인코딩된 컨텐츠일 수 있다. 또한, ROI 정보는 비트스트림에 포함되어 전송될 수 있다.
OMAF 표준을 사용하여 packing된 영상은 도 26에 나타낸 바와 같이 Tile 혹은 Tile group(A, B, C, D) 단위로 분리되어 인코딩이 수행될 수 있다. Tile의 가로 세로 크기는 임의로 지정된 값이 될 수 있으며, 각 Tile의 가로 세로 크기는 모든 Tile이 동일할 수 있다. 혹은 각 Tile의 가로 세로 크기는 서로 다를 수 있으며, 각 Tile의 가로 세로 크기가 비트스트림 내에 포함될 수 있다. 하나의 Tile은 하나 이상의 CTB(Coding Tree Block, 2603)들로 분할되어 부호화될 수 있다.
각 타일(Tile)은 이웃하는 타일과의 의존성이 없으므로, 서로 독립적으로 인코딩 혹은 디코딩이 가능하므로, 각각의 타일은 병렬적으로 디코딩될 수 있다는 장점이 있다. 전체 VR 360 영상 중에서 썸네일로 사용될 중요한 일부 영역(일 예로, ROI, viewport)을 포함하는 Tile에 대한 특정 정보가 메타 데이터와 함께 전송된다면, 썸네일 추출기는 해당 일부 영역만을 디코딩하면 되므로 썸네일 추출에 필요한 메모리 및 복잡도를 감소시킬 수 있다.
즉, 도 26에서 나타낸 바와 같이 타일 단위로 분할된 영상에서 강조된 타일 영역(타일 그룹 B에서 (0,6), (1,6) 타일들과 타일 그룹 D에서 (2,3), (2,4), (2,5), (3,3), (3,4), (3,5) 타일들)이 썸네일 추출에 사용될 영상이 될 수 있다. 이러한 썸네일 추출 ROI(일예로, viewport)와 관련된 정보는 비트스트림에 포함될 수 있다.
다시 말해, 도 26에서 의미하는 타일은 도 7에서 의미하는 타일일 수 있다. 즉, 2D 이미지에 프로젝션된 360 비디오 데이터 또는 리전-와이즈 패킹까지 수행된 360 비디오 데이터는 하나 이상의 타일 또는 타일 그룹으로 구분될 수 있다. 타일 그룹이란 하나 또는 그 이상의 타일들을 의미할 수 있다.
즉, 360 비디오 데이터(또는 360 비디오 비트스트림)는 하나 또는 그 이상의 타일로 구분될 수 있다. 각 타일은 독립적으로 인코딩 혹은 디코딩될 수 있다.
360 비디오 데이터에 포함된 타일이 본 발명의 실시예들에 따라 인코딩되는 경우, 해당 360 비디오 데이터(또는 360 영상) 내 복잡도에 따라 각 타일의 부호화된 비트량이 달라질 수 있다. 일 예로, 하늘과 같이 단조로운 영상 특성을 지니는 부분은 영상 복잡도가 낮기 때문에 부호화된 비트량이 작을 수 있다.
프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터(2601)는 본 발명의 실시예들에 따른 프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터를 나타낸다.
복수의 타일로 분할된 프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터(2602)는 2602는 본 발명의 실시예들에 따른 프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터(2601)를 타일 또는 타일의 그룹 단위로 인코딩 또는 디코딩을 수행하기 위하여 타일 또는 타일 그룹 단위로 분할한 것이다.
일 실시예로, 프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터(2601)에 대하여 복수 개의 타일 또는 타일의 그룹 단위로 인코딩 또는 디코딩이 수행될 수 있다. 일 실시예로 360 비디오 데이터는 4개의 행 및 6개의 열로 나누어 타일을 구성할 수 있다. 각 타일은 본 발명의 실시예들에 따른 프로젝션 및 리전-와이즈 패킹이 수행된 360 비디오 데이터(2601)의 타일을 세분화하여 분할된 타일을 의미할 수 있다. 다시 말해, 일 실시예로 각 타일은 크기가 모두 동일할 수 있지만, 크기가 모두 동일하지 않을 수 있다. 또한, 각 타일 또는 타일의 그룹은 더 세분화되어 분할될 수도 있다. 또한, 하나 또는 그 이상의 타일로 이루어진 타일 그룹 단위로 인코딩 또는 디코딩을 수행할 수 있다.
CTB(Coding Tree Block, 2603)는 각 타일이 인코딩되는 경우 인코딩되는 영역의 단위를 의미할 수 있다. 즉, 하나의 타일은 복수의 CTB로 분할되어 각각에 대하여 인코딩을 수행할 수 있다.
여기서, 본 발명의 실시예들에 따른 썸네일(thumbnail)로 사용될 ROI는 타일 단위로 결정할 수 있다. 일 실시예로, 본 발명의 실시예들에 따른 썸네일(thumbnail)로 사용될 ROI는 도면에서 강조되는 타일 그룹 B에서 (0,6), (1,6) 타일들과 타일 그룹 D에서 (2,3), (2,4), (2,5), (3,3), (3,4), (3,5) 타일들로 결정할 수 있다.
그러나, VR 360 영상에서 썸네일을 추출하기 위해서는 복잡한 형태로 패킹(packing)된 영상 포맷(일 예로, 도 25)으로 인해 디패킹(de-packing)된 후의 최종 VR 360 영상에서만 유의미한 썸네일 추출이 가능하다. 하지만, VR 360 영상이 8K 해상도로 처리되고 디패킹(de-packing) 과정도 요구되므로, 여러 개의 VR 360 영상에 대한 썸네일을 빠르게 추출하는데 있어서 많은 메모리와 추출 시간 증가 문제가 존재할 수 있다. 따라서 본 명세서는 이러한 문제점에 착안하여, 본 발명의 실시예들에 따른 VR 360 썸네일 추출에 있어서 효율적으로 VR 360 영상에 대한 썸네일을 추출하는 방법을 제안한다.
추가로, ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역은 시간에 따라 변경될 수 있으며, 이 경우 썸네일 추출 ROI와 관련된 정보가 프레임 단위마다 전달될 수 있다. 이 때, 결정되는 썸네일은 복수의 이미지를 구성하거나 비디오 영상으로 구성될 수 있다. 복수의 이미지를 구성하거나 비디오 영상으로 구성되는 썸네일은 모션 썸네일로 호칭할 수 있다. 본 명세서에서 설명하는 썸네일은 모션 썸네일을 포함하는 것으로 해석할 수 있다.
VR 360 영상에 대한 썸네일은 VR 360 전체 영상 중에서 중요한 일부 영역만 화면에 표시해도 충분할 수 있다. 이 때, 일부 영역은 사용자들의 관심 영역을 의미하는 ROI(Region of Interest)일 수 있다. 즉, 이미 ROI영역을 알고 있거나 혹은 다른 파라미터를 통해 유도할 수 있다면 썸네일을 추출하는데 걸리는 시간을 크게 감소시킬 수 있다.
따라서, 이하에서는 ROI를 유도하는 방안의 일 실시예들에 대하여 구체적으로 제안한다. ROI에 대한 정보는 아래와 같은 방법을 포함한 다양한 방법을 통해 유도될 수 있다.
첫째, ROI에 대한 정보는 RWP 파라미터를 통해 유도될 수 있다. 예를 들어, RWP 과정을 통해 다운 샘플링되지 않은 영역은 중요한 영상을 포함할 수 있으므로, RWP되는 과정에서 크기가 작아지지 않은 영역(혹은 크기 변경이 없는 영역, 혹은 다른 영역에 비해 상대적으로 크기 변경이 작은 영역)을 ROI로 설정할 수 있다. 일 실시예로, ISO/IEC 14496-10 H.264/AVC 혹은 ISO/IEC 23008-2 HEVC 표준에서 Region-wise packing SEI message내의 proj_picutre_width, proj_picture_height 보다 packed_picture_width, packed_picture_height 값이 같거나 클 경우, 중요한 영역이므로 ROI로 설정될 수 있다.
다시 말해, 본 발명의 실시예들에 따른 썸네일로 사용되거나 사용되는데 기초가 되는 ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역은 본 발명의 실시예들에 따른 리전-와이즈 패킹(Region-wise packing) 과정에서 다운샘플링이 수행되지 않거나 적게 다운샘플링된 영역을 의미할 수 있다. 즉, 리전-와이즈 패킹 과정에서 크기가 작아지지 않는 여역을 의미할 수 있다. 본 발명의 실시예들에 따른 VR 디바이스는 리전-와이즈 패킹과 관련된 파라미터에 기초하여 영역별로 다운샘플링의 수행 유무 또는 다운샘플링의 수행 형태를 판단할 수 있다.
둘째, ISO/IEC 23008-2 HEVC 표준의 MCTS sub-bitstream extraction process에 따라 추출된 서브 비트스트림 중에서 임의의 MCTS(Motion-constrained tile sets) 서브 비트스트림을 ROI 영역 또는 썸네일로 사용되는데 기초가 되는 영상의 영역으로 설정할 수 있다.
셋째, DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜을 통해 VR 360 영상 서비스를 제공할 때, ROI에 대한 정보는 MPD(Media Presentation Description) 내에 포함될 수 있으며, 그 MPD의 정보를 통해 ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역을 설정할 수 있다.
넷째, ROI에 대한 정보는 스트리밍 서비스를 통해 전달 받은 영상의 전체를 ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역으로 설정할 수 있다. 또한, 상기 전체 영상 중에서 일부분을 ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역으로 설정할 수 있다.
다섯째, 오버레이가 포함된 VR 360 영상의 경우, 오버레이되는 영역은 광고 등에 사용되므로 중요한 부분일 수 있다. 따라서, 오버레이되는 영역을 ROI로 설정할 수 있다.
다시 말해, 본 발명의 실시예들에 따른 360 비디오 비트스트림은 오버레이 영역을 포함할 수 있다. 360 비디오 비트스트림이 하나 또는 그 이상의 오버레이 영역을 포함하는 경우, 해당 하나 또는 그 이상의 오버레이 영역의 일부 또는 전부가 ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역으로 사용될 수 있다. 오버레이(overlay)란, 비주얼 미디어의 일부 또는 전부로서, 무지향성 비디오 또는 이미지 아이템 또는 뷰포트(viewport)에 렌더링되는 것을 의미할 수 있다(piece of visual media rendered over omnidirectional video or image item or over a viewport). 일 실시예로, 오버레이는 VR 360 영상 내에서 광고 또는 추가 영상 등을 삽입하는 경우 해당 광고 또는 영상을 의미할 수 있다. 오버레이 영역이란, 상술한 오버레이(overlay)가 삽입되는(또는 렌더링되는) 영역을 의미할 수 있다. 즉, 본 발명의 실시예들에 따른 VR 디바이스가 VR 360 영상을 디코딩한 후, 상술한 오버레이 영역에 이미지 또는 비디오 영상(광고 등)을 삽입할 수 있다.
여섯째, 도 25와 같이 Tile단위로 분할되어 부호화된 컨텐츠에서, 영상 내 복잡도에 따라 각 Tile의 부호화된 비트량이 달라질 수 있다. 일 예로, 하늘과 같이 단조로운 영상 특성을 지니는 부분은 영상 복잡도가 낮기 때문에 부호화된 비트량이 작을 수 있다. ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역으로 영상의 복잡도가 큰 부분일 수 있으므로, Tile들 중에서 다른 tile에 비해 부호화된 비트량이 큰 부분을 ROI영역으로 설정할 수 있다.
다시 말해, 상술한 프로젝션된 또는 리전-와이즈 패킹이 수행된 360 비디오 데이터가 복수의 타일들 또는 타일의 그룹들 단위로 분할되어 인코딩 및 디코딩되는 경우, 해당 타일들 또는 타일의 그룹들 중 부호화된 비트량이 큰 하나 또는 그 이상의 타일들 또는 타일의 그룹들이 ROI 또는 썸네일로 사용되는데 기초가 되는 영상의 영역으로 결정될 수 있다.
반대로, 본 발명의 실시예들에 따른 VR 디바이스가 복수의 타일들 또는 타일의 그룹들에 대응하는 360 비디오 비트스트림을 수신하는 경우, 부호화된 비트량이 큰 하나 또는 그 이상의 타일들 또는 타일의 그룹들이 ROI로 결정될 수 있다. 일 실시예로, VR 디바이스는 ROI로 결정하기 위한 최소 부호화된 비트량을 기설정하고, 수신한 360 비디오 비트스트림에 포함된 복수의 타일들 중 기설정된 최소 부호화된 비트량보다 비트량이 많은 타일을 ROI로 설정할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다. 또한, 이러한 구성은 본 발명의 실시예들에 따른 VR 디바이스가 유의미한 썸네일을 추출하는데 걸리는 시간을 크게 감소시킬 수 있다.
도 27은 본 발명의 실시예들에 따른 VR 디바이스를 나타낸다.
도 27은 360 비디오 데이터(또는 360 비디오 비트스트림)에서 썸네일(thumbnail)을 추출하는 본 발명의 실시예들에 따른 VR 디바이스의 구조도를 나타낸다. 도 27에서 비트스트림 추출부(bitstream extractor)는 360 비디오 비트스트림(360 video bitstream)을 입력 받아서 ROI에 해당하는 부분의 서브 비트스트림(sub-bitstream)을 출력한다. 실시 일 예로, 비트스트림 추출부(bitstream extractor)는 360 비디오 비트스트림에서 ROI에 해당하는 부분이 어느 위치인지를 알려주는 SEI message를 파싱하여, ROI에 해당하는 타일들에 대한 서브 비트스트림을 출력할 수 있다. 또 다른 실시 일예로, 비트스트림 추출부는 ISO/IEC 23008-2 HEVC 표준의 MCTS sub-bitstream extraction process에 따라 임의의 MCTS(Motion-constrained tile sets) 서브 비트스트림을 출력할 수 있다. 썸네일 제너레이터(Thumbnail generator)는 서브 비트스트림을 입력받아서 디코딩한 후 ROI에 대한 복원 영상(또는 ROI에 대한 복원 데이터)을 출력한다. 리매핑(remapping)에서는 비트스트림 추출부로부터 받은 언패킹(unpacking)정보를 이용하여 복원 영상을 회전/업샘플링/순서재배치하여 유의미한 썸네일 영상 또는 썸네일(thumbnail)으로 출력한다.
또한, VR 360 영상 내에 오버레이 이미지가 블렌딩(blending)되어 출력되는 경우도 존재할 수 있다. 이 경우, 오버레이 이미지는 광고, 위치 기반 서비스등 다양한 VR 어플리케이션에서 활용될 수 있다. 오버레이가 포함된 VR 360 영상에 대한 썸네일 추출 시, 빠른 썸네일 추출을 위해 오버레이 이미지는 썸네일 추출에 사용되지 않을 수 있다. 혹은 오버레이 이미지와 썸네일 이미지가 함께 블렌딩(blending)되어 최종 썸네일 이미지로 출력될 수 있다.
다시 말해, 본 발명의 실시예들에 따른 VR 디바이스는 360 비디오 비트스트림을 수신하는 수신부, 360 비디오 비트스트림 내에 포한된 서브-비트스트림을 추출하는 비트스트림 추출부(bitstream extractor), 해당 서브-비트스트림으로부터 상기 ROI에 대한 복원 데이터를 생성하는 썸네일 제너레이터(thumbnail generator) 및 시그널링 정보에 기초하여 상기 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하는 리매핑 블록(remapping block)을 포함할 수 있다. 이 때, 도 27에 따른 리매핑 블록(remapping block)은 리매퍼(remapper)로 호칭할 수 있다.
VR 디바이스는 상술한 OMAF 플레이어를 의미할 수도 있고, VR 서비스 플랫폼(VR service platform)를 의미할 수도 있다.
수신부는 360 비디오 비트스트림을 수신할 수 있다(2701). 수신부는 수신된 360 비디오 비트스트림을 비트스트림 추출부(bitstream extractor, 2702)로 전달할 수 있다. 이하 명세서에서 설명하는 360 비디오 비트스트림은 상술한 360 영상에 대응하는 데이터 또는 상술한 360 비디오 데이터를 의미할 수 있다. 또한, 이하 명세서에서 설명하는 360 비디오 비트스트림은 VR 360 영상, VR 360 비디오 비트스트림, VR 360 영상 등으로 호칭할 수 있다.
비트스트림 추출부(bitstream extractor, 2702)는 수신부가 수신한 360 비디오 비트스트림을 전달받아 360 비디오 비트스트림 내에 포함된 서브-비트스트림을 추출할 수 있다. 여기서 서브-비트스트림은 360 비디오 비트스트림(또는 360 비디오 데이터, VR 360 영상 등)에 대한 ROI(Region of Interest)에 대응하는 비트스트림을 의미할 수 있다. 즉, 비트스트림 추출부(2702)는 수신한 360 비디오 비트스트림으로부터 ROI에 대응하는 비트스트림을 나타내는 서브-비트스트림을 추출한다. 즉, 서브-비트스트림은 ROI를 포함한다.
또한, 360 비디오 비트스트림은 ROI를 추출하기 위한 정보 또는 ROI를 복원하기 위한 시그널링 정보를 포함할 수 있다. 본 발명의 실시예들에 따른 비트스트림 추출부(2702)는 360 비디오 비트스트림에 포함된 시그널링 정보를 더 추출할 수 있다. 즉, 360 비디오 비트스트림은 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하기 위한 시그널링 정보를 포함할 수 있다. 일 실시예로, 상술한 시그널링 정보로는 360 비디오 비트스트림에 대하여 언패킹(unpacking)을 수행하기 위한 관련 정보를 포함할 수 있다.
일 실시예로, 상술한 360 비디오 비트스트림이 타일(Tile) 단위 인코딩된 360 비디오 데이터인 경우에는, 본 발명의 실시예들에 따른 비트스트림 추출부(2702)는 VR 360 영상의 전체 비트스트림(즉, 360 비디오 비트스트림)에서 ROI에 해당하는 타일에 대응하는 서브-비트스트림만을 추출할 수 있다. 이 때, ROI에 해당하는 Tile에 대한 정보는 매 프레임(픽쳐)마다 전달될 수 있으며, 360 비디오 비트스트림에 포함된 SEI message를 통해 전달될 수 있다
썸네일 제너레이터(thumbnail generator, 2703)은 비트스트림 추출부(2702)로부터 추출된 서브-비트스트림을 수신하여 ROI에 대한 복원 데이터(restoration data for ROI)를 생성할 수 있다. 썸네일 제너레이터는 상술한 서브-비트스트림에 대하여 본 발명의 실시예들에 따른 디코딩(decoding) 또는 비디오 디코딩을 수행할 수 있다. 즉, 썸네일 제너레이터(2703)는 ROI를 포함하는 서브-비트스트림을 디코딩하여 ROI에 대한 복원 데이터를 추출할 수 있다. 여기서, ROI에 대한 복원 데이터는 썸네일로 활용하기 위한 ROI가 언패킹(unpacking)되기 이전의 데이터를 의미할 수 있다.
리매핑(remapping, 2704)은 썸네일 제너레이터(2703)으로부터 출력된 ROI에 대한 복원 데이터를 수신하여 ROI에 대한 복원 영상을 언패킹(unpacking) 및/또는 회전/업샘플링/순서재배치를 수행할 수 있다. 이 때, 리매핑은 상술한 시그널링 정보인 360 비디오 비트스트림에 대하여 언패킹(unpacking)을 수행하기 위한 관련 정보에 기초하여 수행될 수 있다. 본 발명의 실시예들에 따른 리매핑(2704)은 ROI에 대한 복원 영상에 대하여 언패킹(unpacking) 및/또는 회전/업샘플링/순서재배치를 수행하여 유의미한 썸네일(thumbnail, 2705)을 추출할 수 있다. 본 발명의 실시예들에 따른 리매핑(2704)은 리매퍼(remapper)에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 리매핑(remapping, 2704)은 상술한 본 발명의 실시예들에 따른 언패킹(unpacking) 과정, 에디팅(editing)과정, 업스케일링(upscaling) 과정, 다운 스케일링(down scaling), 컴포지션(composition) 과정 또는 렌더링 과정을 포함할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
이하에서는, VR 360 영상을 제공하는 다양한 VR 360 서비스 시스템에서의 썸네일 추출 방법에 대하여 설명한다.
도 28(a)는 본 발명의 실시예들에 따른 VR 디바이스가 타일 기반으로 인코딩한 VR 360 비디오 데이터를 전송, 저장하는 일 실시예를 나타낸다.
즉, 도 28(a)는 Tile기반 VR360 영상의 인코딩 및 저장의 일 예를 나타낸다. 도 28(a)에서는 점선으로 타일을 구분하였으며, 시간 순서대로 인코딩되는 것으로 보여준다. 저장된 Tile 기반 VR 360 전체 비트스트림(즉, 360 비디오 비트스트림)에서 ROI에 해당하는 타일에 대한 서브-비트스트림을 추출하여 디코딩한 후 썸네일을 출력할 수 있다. 여기서, ROI에 해당하는 타일에 대한 정보는 매 프레임(픽쳐)마다 전달될 수 있으며, 외부 전달매체 혹은 SEI message를 통해 전달될 수 있다. 외부 전달매체를 통한 ROI 정보의 전달은 후술할 도 31, 도 32, 도 33의 방법을 사용하여 전달될 수 있다. 마지막으로, 리매핑(remapping)과정은 패킹(packing)된 형태에 따라 선택적으로 적용할 수 있다.
다시 말해, VR 360 영상이 복수 개의 타일(Tile) 기반으로 구성되는 경우, 본 발명의 실시예들에 따른 송신부 또는 VR 디바이스는 각 타일 또는 타일의 그룹들 각각에 대하여 본 발명의 실시예들에 따른 인코딩(encoding)이 수행될 수 있다.
반대로, 360 비디오 비트스트림이 복수 개의 타일(Tile) 기반으로 구성된 VR 360 영상의 비트스트림인 경우, 각 타일 또는 타일의 그룹들 각각에 대하여 본 발명의 실시예들에 따른 디코딩(decoding)이 수행될 수 있다. 본 발명의 실시예들에 따른 수신부 또는 VR 디바이스는 각 타일 또는 타일의 그룹에 대한 시그널링 정보는 매 프레임마다 전달될 수 있다. 이 때, 시그널링 정보는 360 비디오 비트스트림에 포함된 SEI message를 통해 전송될 수 있고, 후술할 방법에 기초하여 전달될 수 있다.
도 28(b)는 본 발명의 실시예들에 따른 VR 디바이스가 타일 기반으로 인코딩한 VR 360 비디오 데이터를 전송, 저장 및 디코딩하는 일 실시예를 나타낸다.
즉, 도 28(b)는 Tile 기반으로 인코딩한 VR 360 영상의 전송 및 디코딩의 일 실시예를 나타낸다. 도 28(b)에서는 Tile 기반으로 인코딩된 VR360 비트스트림 중에서 ROI에 해당하는 부분만을 전송하여 디코딩하는 전송 시스템을 보여준다. 이러한 시스템에서는 ROI에 해당하는 Tile에 대한 비트스트림만 전송되었으므로, bitstream extractor를 거치지 않고, 해당 영역을 디코딩한 후 remapping 과정을 선택적으로 적용하여 썸네일을 출력할 수 있다.
다시 말해, VR 360 영상이 복수 개의 타일(Tile) 기반으로 구성되는 경우, 본 발명의 실시예들에 따른 송신부 또는 VR 디바이스는 각 타일 또는 타일의 그룹들 각각에 대하여 본 발명의 실시예들에 따른 인코딩(encoding)이 수행될 수 있다. 반대로, 본 발명의 실시예들에 따른 수신부 또는 VR 디바이스는 360 비디오 비트스트림이 복수 개의 타일(Tile) 기반으로 구성된 VR 360 영상의 비트스트림인 경우, 각 타일 또는 타일의 그룹들 각각에 대하여 본 발명의 실시예들에 따른 디코딩(decoding)이 수행될 수 있다.
이 때, 본 발명의 실시예들에 따른 송신부 또는 VR 디바이스는 인코딩된 복수 개의 타일들 또는 타일의 그룹들에 대응하는 비트스트림 중에서 ROI에 해당하는 비트스트림만 전송할 수 있다. 즉, 360 비디오 비트스트림은 ROI에 해당하는 비트스트림인 서브-비트스트림만 포함할 수도 있다.
반대로, 본 발명의 실시예들에 따른 수신부 또는 VR 디바이스는 ROI에 대응하는 비트스트림 및/또는 시그널링 정보만 포함하는 360 비디오 비트스트림을 수신할 수 있다. 따라서, 본 발명의 실시예들에 따른 수신부 또는 VR 디바이스는 ROI에 대응하는 비트스트림 및/또는 시그널링 정보만 포함하는 360 비디오 비트스트림에 대하여만 디코딩을 수행할 수 있다. 이 경우에는, 본 발명의 실시예들에 따른 비트스트림 추출부(Bitstream extractor)는 생략될 수 있다. 이 경우에는, 본 발명의 실시예들에 따른 VR 디바이스는 본 발명의 실시예들에 따른 썸네일 제너레이터(thumbnail generator)의 동작 및 리매핑(remapping)의 동작만 수행할 수 있다.
이러한 구성은 ROI에 대한 비트스트림만 네트워크를 통해 전송되므로, 영상 전체에 대한 비트스트림을 보내는 것 대비 전송 대역폭을 효과적으로 운용할 수 있는 효과를 제공한다. 즉, 낮은 대역폭으로 VR360 영상 서비스가 가능해질 수 있다.
도 29는 본 발명의 실시예들에 따른 VR 디바이스가 썸네일을 추출하기 위한 ROI의 일 실시예를 나타낸다.
도 29에서 실선은 네트워크를 통해 보내지는 영역을 나타내고, 점선은 실제 시청자에게 표시되는 ROI를 나타내며, 네트워크를 통해 보내지는 타일의 개수는 ROI에 대한 타일의 개수보다 같거나 많을 수 있다. 이 경우, 전체 영역은 아니지만, 시청자 시점보다 넓은 영역이 이미 디코딩되어 있으므로, 부분적으로 즉각적인 반응에 대한 처리가 가능하다. 이러한 시스템에서 썸네일 추출은 비트스트림 추출부(bitstream extractor)를 통해 ROI(혹은 ROI의 내부 영역)에 대한 Tile 비트스트림을 서브 비트스트림으로 출력한 후, 상기 서브 비트스트림을 디코딩한 후 리매핑(remapping) 과정을 선택적으로 적용하여 썸네일을 출력할 수 있다.
다시 말해, 스티칭된 영상(2900)을 나타낸다. 도 29에서 설명하는 스티칭된 영상(2900)은 도 22의 스티칭된 영상(2200)을 의미할 수 있다. 즉, 스티칭된 영상(2900)은 본 발명의 실시예들에 따른 스티칭 과정이 수행된 이미지/비디오 또는 본 발명의 실시예들에 따른 프로젝션이 수행된 이미지 데이터 또는 비디오 데이터를 나타낸다.
수신 영역(2901)은 네트워크를 통해 보내지는 360 비디오 비트스트림에 대응하는 VR 360 영상의 영역(즉, 도 29의 실선 영역)을 의미할 수 있다. 즉, 본 발명의 실시예들에 따른 VR 디바이스는 빨간색 실선 내의 영역에 해당하는 데이터의 비트스트림을 포함한 360 비디오 비트스트림을 수신할 수 있다.
시청 영역(2902)는 일 실시예에 따른 ROI로서 사용자가 시청하는 영역을 나타낸다. 네트워크를 통해 보내지는 360 비디오 비트스트림은 ROI에 대응하는 비트스트림인 서브-비트스트림을 포함할 수 있다.
여기서, 네트워크를 통해 보내지는 360 비디오 비트스트림 또는 360 비디오 비트스트림에 포함된 서브-비트스트림은 ROI보다 넓은 영역에 대한 영상을 포함할 수 있다. 즉, 도 29에서 점선 영역(2902)이 썸네일로 활용하기 위한 ROI라고 한다면, 서브-비트스트림은 점선 영역(2902)에 대응하는 비트스트림을 의미할 수 있고, 네트워크를 통해 보내지는 360 비트스트림은 점선으로 표시된 부분보다 넓은 영역인 실선 영역(2901)에 대응하는 비트스트림을 의미할 수 있다.
VR 360 영상이 타일(Tile) 기반으로 구성되는 경우 네트워크를 통해 보내지는 360 비디오 비트스트림 또는 서브-비트스트림에 포함된 타일의 개수는 ROI에 대응하는 타일의 개수보다 같거나 많을 수 있다.
이러한 구성을 통해, 본 발명의 실시예들에 따른 VR 디바이스는 시청자의 빠른 시점 이동에 대한 즉각적인 반응을 처리할 수 있다.
도 30은 본 발명의 일 실시예들에 따른 VR 디바이스의 스케일러블 코딩 스킴을 나타낸다.
즉, 도 30은 스케일러블 코딩 방법을 이용한 VR 360의 서비스를 나타낸다. 도 30에서는 저해상도의 VR360 전체 영상을 전송해 줌으로써 본 발명의 실시예들에 따른 VR 디바이스는 시청자의 빠른 시점 이동에 대한 즉각적인 반응을 제공할 수 있다. 시청자의 빠른 시점 이동에 대해서, 우선 낮은 해상도의 영상을 서비스한 후, 추후 높은 해상도의 영상으로 업데이트되도록 서비스한다. 낮은 해상도의 영상을 기본 계층(Base layer) 영상으로, 높은 해상도의 영상을 향상 계층(Enhancement layer)이라고 말할 수 있으며, 향상 계층의 개수는 해상도의 개수에 따라 최소 1개 이상이 될 수 있다.
이러한 시스템에서의 썸네일 추출은 저해상도 VR360 영상만을 통해 추출될 수 있다. 즉, 출력되는 썸네일의 크기는 실제 영상의 크기보다 작으므로, 저해상도의 VR360 전체 영상에서 ROI에 해당하는 부분에 대한 서브 비트스트림을 추출하고, 상기 서브 비트스트림을 디코딩한 후 remapping 과정을 선택적으로 적용하여 썸네일을 출력할 수 있다.
도 30 시스템에서 고해상도의 VR360 영상은 저해상도의 VR360영상을 참조하여 복원될 수 있다. 고해상도의 VR360 영상을 출력하기 위해서 저해상도의 VR360 영상을 미리 복원할 수 있다.
정리하면, 본 발명의 실시예들에 따른 송신부 또는 VR 디바이스는 360 비디오 데이터를 스케일러블(Scalable) 코딩 스킴에 기초하여 인코딩할 수 있다. 상술한 스케일러블 비디오 코딩 방법 또는 스케일러블 비디오 코딩 스킴은 H.264/MPEG-4 AVC 의 비디오 압축 표준에 따른 스케일러블 비디오 코딩 방법을 의미할 수 있다.
도30(a)는 본 발명의 실시예들에 따른 인코딩되지 않은 VR 360 영상이 스케일러블 코딩 스킴에 따라 인코딩되는 과정을 나타낸다. 인코딩된 360 비디오 비트스트림은 저해상도(low-resolution)의 VR 360 영상 데이터를 포함하는 기본 계층(base layer) 및/또는 고해상도(high-resolution)의 VR 360 영상 데이터를 포함하는 인핸스먼트 계층(또는 향상 계층, enhancement layer)을 포함할 수 있다. 이 때, 인핸스먼트 계층(또는 향상 계층)은 해상도의 개수에 따라 하나 또는 그 이상일 수 있다.
도30(b)는 본 발명의 실시예들에 따른 VR 디바이스가 360 비디오 비트스트림을 수신하여 스케일러블 코딩 스킴에 대응하여 디코딩하는 과정을 나타낸다. 본 발명의 실시예들에 따른 VR 디바이스는 상술한 기본 계층에 포함된 저해상도 VR 360 영상에 대하여 인터-레이어 프리딕션(inter-layer prediction, ILP)을 수행할 수 있다. 인터-레이어 프리딕션(inter-layer prediction)은 낮은 해상도(lower spatial resolution) 또는 퀄리티 신호(quility signal)에 의해 높은 해상도(higher spatial resolution) 또는 퀄리티 신호(quality signal)를 예측(prediction)하는 것을 의미할 수 있다.
본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 블록(block)들에 대하여 인터-프리딕션(inter-prediction)을 수행할 수 있다. 인터-프리딕션은 현재 디코딩된 픽쳐와 다른 레퍼런스 픽쳐들(reference pictures)의 디코딩된 샘플들로부터 예측(prediction)을 수행하는 것을 의미할 수 있다. 인터-프리딕션(inter-prediction)은 다이렉트 프리딕션(direct prediction)으로 상술한 템포럴 인터-프리딕션(temporal inter prediction, TIP)을 의미할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다. 또, 이러한 구성을 통해, 본 발명의 실시예들에 따른 VR 디바이스는 시청자의 빠른 시점 이동에 대한 즉각적인 반응을 처리할 수 있다.
이하에서는, 적응적 스트리밍 서비스(Adaptive Streaming Service)를 통해 제공되는 타일 기반 VR 360 영상의 트랜스코딩(transcoding) 방안에 대하여 설명한다.
Tile기반 VR 360 영상은 적응적 스트리밍 서비스를 통해 시청자에게 제공될 수 있다. 이 경우, 썸네일은 서버로부터 각 디바이스에 전달되어 시청자에게 표시될 수 있다. 적응적 스트리밍 서비스의 일 예에는 DASH(Dynamic Adaptive Streaming over HTTP), Apple의 HLS(HTTP Live Streaming), Adobe의 HDS(HTTP Dynamic Streaming) 등을 포함할 수 있다.
적응적 스트리밍 서비스를 통해 제공된 Tile 기반 VR 360 영상은 디바이스 내에 저장 파일 형태로 변환되어 저장될 수 있으며, 오프라인 상태에서 시청이 가능하게 할 수 있다. 이때 MP4 혹은 MKV(WebM), TS 파일 형식을 사용하여 변환되어 저장될 수 있으며, ROI에 대한 정보를 더 포함하여 저장될 수 있다. ROI에 대한 정보는 스트리밍 서비스를 통해 전달 받은 영상의 전체를 ROI로 설정할 수 있으며, 상기 전체 영상 중에서 일부분을 ROI로 설정할 수 있다. 이때 ROI에 대한 저장 방안은 도 31, 도 32, 도 33의 방법을 사용하여 저장될 수 있다. 이하에서 구체적으로 설명한다.
적응적 스트리밍 서비스를 통해 제공된 타일 기반의 VR 360영상에서 ROI에 대한 정보는 서버서부터 전달될 수 있다. 일 예로, DASH 프로토콜을 통해 VR 360 영상 서비스를 제공할 때, ROI에 대한 정보는 MPD(Media Presentation Description) 내에 포함할 수 있다. MPD는 미디어의 정보 구성에 대한 정보를 포함하고 있는 메타 파일(meta file) 혹은 매니페스트 파일(manifest file)이다. MPD에는 비디오 및 오디오의 개수, 해상도, 코덱, 비트레이트 등의 정보를 포함할 수 있다.
다시 말해, 본 발명의 실시예들에 따른 360 비디오 비트스트림이 DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜에 기반하여 수신되는 경우, DASH 프로토콜에 의해 전달되는 MPD(Media Presentation Description)는 ROI에 대한 정보를 포함할 수 있다.
적응적 스트리밍 서비스에서는 네트워크 상황에 맞는 미디어 데이터가 서버로부터 전달되므로, 시청자는 버퍼링(영상 끊김) 없는 영상을 서비스 받을 수 있다는 효과를 제공할 수 있다.
또한, 적응적 스트리밍 서비스를 통해 제공되는 360 비디오 비트스트림은, 저장될 수 있는 파일 포멧 형식일 수 있다. 일 실시예로, 360 비디오 비트스트림은 MP4 파일 포멧, MKV 파일 포멧 및 TS 파일 포멧 중 하나의 파일 포멧을 기반으로 저장된 데이터일 수 있고, 각 파일 포멧 내에 ROI에 대한 정보를 더 포함할 수 있다.
이러한 저장 파일 형태로 변환되어 저장됨으로써 본 발명의 실시예들에 따른 VR 디바이스는 오프라인 상태에서도 VR 360 영상을 시청할 수 있다.
따라서, 본 발명의 실시예들에 따른 VR 디바이스 또는 송/수신기에서, 타일 기반의 VR 360 영상에서 ROI 정보를 저장하는 방안 및 저장 파일 형태로 변환되어 저장되는 실시예들을 자세히 후술하겠다.
도 31은 본 발명의 실시예들에 따른 VR 디바이스가 MP4 표준을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 포멧의 일 실시예를 나타낸다.
Tile 기반 VR 360 영상은 ISOBMFF 표준을 사용하여 MP4 파일로 저장될 수 있다. 모든 Tile이 하나의 'trak' box에 저장될 수 있다. 혹은 여러 개의 Tile들을 하나의 Tile 그룹으로 만들어서, 하나의 Tile 그룹이 하나의 'trak' box에 저장될 수 있으며, Tile그룹의 개수에 따라 여러 개의 'trak' box가 생성될 수 있다. 혹은 각각의 tile이 각각의 'trak' box에 저장될 수 있으며, Tile의 개수에 따라 여러 개의 'trak' box가 생성될 수 있다.
이때 ROI에 대한 정보는 Tile 단위로 지정될 수 있다.
일 실시예로, 도 31은 'vwpt' box를 사용하여 ROI 정보의 저장 및 시그널링하는 예를 나타낸다. 먼저, 전체 영상에서 가로 및 세로로 분리된 Tile들의 전체 개수가 전달될 수 있다. 'have_tile_information'값은 초기에 '0'으로 설정되며, 전체 tile의 개수가 설정될 경우에 '1'로 재설정된다. 'num_tile_columns'는 tile의 가로 개수를 나타낸다. 'num_tile_rows'는 tile의 세로 개수를 나타낸다. 'viewport_tile'은 각 tile이 ROI에 해당하는지에 대한 정보를 나타낸다. 일 예로, 도 25의 아래 그림에서 ROI는 viewport_tile[i][j]에서 (i,j)의 값이 (0,6), (1,6), (2,3), (2,4), (2,5), (3,3), (3,4), (3,5) 일 때에 '1'로 설정하여 나타낼 수 있다. Tile기반 ROI를 나타내는 방법은 이외에도 다양하게 변경되어 적용될 수 있다. 만일 각 Tile들이 Tile group 형태로 시그널링되는 경우, ROI가 어떤 Tile group에 포함되었는지에 대한 정보가 더 포함되어 전달될 수 있다.
상기 ROI에 대한 정보는 파일 내에서 어떠한 'trak' box들 보다도 먼저 위치할 수 있으며, 'trak' box 와 동일한 계층에 위치하거나 혹은 'trak' box를 하위 계층으로 포함하고 있는 container 계층과 동일한 계층에 위치할 수 있다. 일 예로, 'moov' box 혹은 'moof' box와 동일한 계층에 위치할 수 있으며, 'moov' box 혹은 'moof' box보다 먼저 위치할 수 있다. ROI에 대한 정보가 먼저 파싱될 경우, 특정 trak에 대한 비트스트림만 추출하면 되므로, 파싱에 대한 복잡도를 감소시킬 수 있다. 상기 ROI 정보는 매 프레임(영상, 픽쳐)마다 전달될 수 있으며, 일정한 시간 간격마다 전달될 수 있다. 즉, 'vwpt' box 내의 'num_tile_columns', 'num_tile_rows', 'viewport_tile' 값이 프레임의 개수에 따라 하나 이상 존재할 수 있다.
정리하면, ‘have_tile_information'은 초기에 '0'으로 설정되고, 전체 타일의 개수가 설정될 경우 '1'로 재설정된다.
‘num_tile_columns'는 VR 360 영상에서 나누어진 타일들의 열(column)의 수를 의미할 수 있다.
‘num_tile_rows'는 VR 360 영상에서 나누어진 타일들의 행(row)의 수를 의미할 수 있다.
‘viewport_tile'은 VR 360 영상에서 나누어진 타일들이 각각 ROI에 해당하는지 여부에 대한 정보를 나타낸다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 32는 본 발명의 실시예들에 따른 VR 디바이스가 Matroska 형식을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 포멧의 일 실시예를 나타낸다.
즉, 도 32는 Matroska 형식을 사용하여 ROI 정보 및 시그널링 정보를 저장하는 일 실시예를 나타낸다.
Tile 기반 VR 360 영상은 Matroska 형식을 사용하여 MKV 혹은 WEBM 파일 로 저장될 수 있다. 모든 Tile이 하나의 'TrackEntry' 엘레멘트(element)에 저장될 수 있다. 혹은 여러 개의 Tile들을 하나의 Tile 그룹으로 만들어서, 하나의 Tile 그룹이 하나의 'TrackEntry' 엘레멘트에 저장될 수 있으며, Tile그룹의 개수에 따라 여러 개의 'TrackEntry' 엘레멘트가 생성될 수 있다. 혹은 각각의 tile이 각각의 'TrackEntry' 엘레멘트에 저장될 수 있으며, Tile의 개수에 따라 여러 개의 'TrackEntry' 엘레멘트가 생성될 수 있다.
이때 ROI에 대한 정보는 Tile 단위로 지정될 수 있다.
일 실시예로, 도 32는 'viewport', 'numTileColumns', 'numTileRows', 'TileViewport' Element를 사용하여 ROI 정보의 저장 및 시그널링하는 예를 나타낸다. 해당 컨텐츠가 Tile기반으로 인코딩되었다면, Tile에 대한 ROI 정보가 viewport 엘리먼트에 저장되어 시그널링될 수 있다. Viewport 엘리먼트는 Element type이 'm'(master element)으로써, 하위-엘리먼트를 가질 수 있으며, 일예로, 'numTileColumns', 'numTileRows', 'TileViewport' 하위-엘리먼트를 가질 수 있다. Viewport 엘리먼트는 고유한 EBML ID값을 가질 수 있으며, 일예로 [88][D0]값을 가질 수 있다. Viewport 엘리먼트가 존재할 경우, 하위 엘리먼트를 추가적으로 더 파싱할 수 있다. numTileColumns 엘리먼트는 다른 엘리먼트와 구별될 수 있도록 고유한 EBML ID값을 가질 수 있으며, 일예로 [88][D1]값을 가질 수 있다. numTileColumns 엘리먼트는 tile의 가로 개수를 나타내며, '0'이상의 값을 가질 수 있다. numTileRows 엘리먼트는 고유한 EBML ID값을 가질 수 있으며, 일예로 [88][D2]값을 가질 수 있다. numTileRows 엘리먼트는 tile의 세로 개수를 나타내며, '0'이상의 값을 가질 수 있다. TileViewport 엘리먼트는 고유한 EBML ID값을 가질 수 있으며, 일예로 [88][D3]값을 가질 수 있다. TileViewport 엘리먼트는 tile개수만큼 여러 개가 존재할 수 있으며, 각 tile이 ROI에 해당하는지에 대한 정보를 raster 순서(왼쪽에서 오른쪽으로, 위에서 아래로)로 저장될 수 있다. TileViewport 엘리먼트는 0 혹은 1 값을 가질 수 있다. 만일 각 Tile들이 Tile group 형태로 시그널링되는 경우, ROI가 어떤 Tile group에 포함되었는지에 대한 정보가 더 포함되어 전달될 수 있다.
상기 ROI에 대한 정보는 파일 내에서 어떠한 TrackEntry 엘리먼트들 보다도 먼저 위치할 수 있으며, TrackEntry 엘리먼트와 동일한 레벨에 위치하거나 혹은 TrackEntry 엘리먼트를 하위 레벨로 포함하고 있는 엘리먼트 레벨과 동일한 레벨에 위치할 수 있다. 일 예로, Tracks 엘리먼트와 동일한 레벨에 위치할 수 있으며, Tracks 엘리먼트보다 먼저 위치할 수 있다. ROI에 대한 정보가 먼저 파싱될 경우, 특정 trak에 대한 비트스트림만 추출하면 되므로, 파싱에 대한 복잡도를 감소시킬 수 있다. 상기 ROI 정보는 매 프레임마다 전달될 수 있으며, 일정한 시간 간격마다 전달될 수 있다. 즉, Viewport 엘리먼트내의 'numTileColumns', 'numTileRows', 'TileViewport' 값이 프레임의 개수에 따라 하나 이상 존재할 수 있다.
정리하면, VR 360 영상에 포함된 하나 또는 그 이상의 타일들이 하나의 'TrackEntry' 엘레멘트(element)에 저장될 수 있으며, 하나 또는 그 이상의 타일들로 이루어진 타일 그룹이 하나의 'TrackEntry' 엘레멘트에 저장될 수 있으며, 타일 그룹의 개수에 따라 여러 개의 'TrackEntry' 엘레멘트가 생성될 수 있다.
세그먼트(Segment) 엘리먼트는 다른 모든 최상위 엘리먼트(레벨 1에서만 정의된 요소)를 포함하는 루트(root) 엘리먼트를 의미할 수 있다. Matroska 파일은 하나의 세그먼트 엘리먼트로 구성될 수 있다..
트랙스(Tracks) 엘리먼트는 Matroska 형식에 따른 복수의 트랙들을 설명하는 정보의 최상위 엘리먼트를 의미할 수 있다.
뷰포트(viewport) 엘리먼트는 트랙 엔트리(TrackEntry) 엘리먼트에 대응하는 하나 또는 그 이상의 타일(또는 타일의 그룹)에 대한 ROI 정보를 의미하는 파라미터일 수 있다. 구체적으로, 'TrackEntry' 엘리먼트에 대응하는 타일들의 ROI 정보는 'viewport' 엘리먼트에 대한 하위-엘리먼트로 시그널링될 수 있으며, 하위-엘리먼트의 일 실시예로 'numTileColumns' , 'numTileRows', 'TileViewport' 를 포함할 수 있다.
타일_열_수(numTileColumns) 엘리먼트는 트랙_엔트리(TrackEntry) 엘리먼트에 대응하는 타일들의 열(column)의 수를 의미할 수 있다.
타일_행_수(numTileRows) 엘리먼트는 트랙_엔트리(TrackEntry) 엘리먼트에 대응하는 타일들의 행(row)의 수를 의미할 수 있다.
타일_뷰포트(TileViewport) 엘리먼트는 트랙_엔트리(TrackEntry) 엘리먼트에 대응하는 타일들의 각 타일이 ROI에 해당하는지에 대한 정보를 래스터(raster) 순서(즉, 왼쪽에서 오른쪽으로, 위에서 아래로)로 저장된 파라미터를 의미할 수 있다.
트랙_엔트리(TrackEntry) 엘리먼트는 하나의 트랙에 대한 하위의 모든 엘리먼트가있는 하나의 트랙을 설명하는 엘리먼트일 수 있다.
트랙_넘버(TrackNumber) 엘리먼트는 블록 헤더(Block Header) 내에서 사용되는 트랙의 번호를 의미할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 33은 MPEG-TS 형식을 사용하여 ROI 정보에 대한 저장 및 시그널링의 일 예를 나타낸다.
Tile 기반 VR 360 영상은 MPEG-TS 표준을 사용하여 TS 파일로 저장될 수 있다. 각 Tile에 대한 비트스트림은 바이트스트림(bytestream)형태로 변환되어 TS파일에 포함될 수 있다. ROI에 대한 정보는 특정 디스크립터(descriptor)를 사용하여 TS파일에 저장되어 시그널링될 수 있다.
일 예로, 도 33은 viewport_descriptor()를 사용하여 ROI 정보의 저장 및 시그널링하는 예를 나타낸다. Descriptor_tag값은 다른 descriptor_tag값과 구별되도록 고유한 값을 가질 수 있으며, 일예로, '0xE0'값을 가질 수 있다. Descriptor_length값은 Descriptor_length 이후에 뒤따르는 정보에 대한 byte 수를 나타낸다. 'num_tile_columns'는 tile의 가로 개수를 나타낸다. 'num_tile_rows'는 tile의 세로 개수를 나타낸다. 'viewport_tile'은 각 tile이 ROI에 해당하는지에 대한 정보를 나타낸다.
일 실시예로, 도 26 에서 ROI는 viewport_tile[i][j]에서 (i,j)의 값이 (0,6), (1,6), (2,3), (2,4), (2,5), (3,3), (3,4), (3,5) 일 때에 '1'로 설정하여 나타낼 수 있다. Tile기반 ROI를 나타내는 방법은 이외에도 다양하게 변경되어 적용될 수 있다. 여기서, 'uimsbf'는 unsigned integer이고 MSB(Most Significant Bit)가 먼저 위치하는 형태를 나타낸다. 'bslbf'는 bit string이며, 왼쪽 bit가 먼저 위치하는 형태를 나타낸다. 만일 각 Tile들이 Tile group 형태로 시그널링되는 경우, ROI이 어떤 Tile group에 포함되었는지에 대한 정보가 더 포함되어 전달될 수 있다. 상기 ROI에 대한 정보는 파일 내에서 PMT(Program Map Table) 내에 위치할 수 있다. 상기 ROI 정보는 매 프레임마다 전달될 수 있으며, 일정한 시간 간격마다 전달될 수 있다. 즉, 'vwpt' box viewport_descriptor() 내의 'num_tile_columns', 'num_tile_rows', 'viewport_tile' 값이 프레임의 개수에 따라 하나 이상 존재할 수 있다.
정리하면, 본 발명의 실시예들에 따른 ROI는 MPEG-TS 표준을 사용하여 저장된 TS 파일 내의 ‘vwpt' box viewport_descriptor() 내의 'num_tile_columns', 'num_tile_rows', 'viewport_tile' 값에 따라 시그널링될 수 있다. 'vwpt' box viewport_descriptor() 내의 'num_tile_columns', 'num_tile_rows', 'viewport_tile' 값 은 프레임의 개수에 따라 하나 이상 존재할 수 있다. 'vwpt' box viewport_descriptor() 내의 각 파라미터는 아래와 같이 정의될 수 있다.
Descriptor_tag 값은 다른 descriptor_tag값과 구별되도록 고유한 값을 의미할 수 있다.
Descriptor_length 값은 Descriptor_length 이후에 뒤따르는 정보에 대한 byte 수를 나타낸다.
‘num_tile_columns'는 타일들의 열(column)의 수를 의미할 수 있다.
‘num_tile_rows'는 타일들의 행(row)의 수를 의미할 수 있다.
‘viewport_tile'은 각 타일들이 ROI에 해당하는지에 대한 정보를 의미할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 34는 본 발명의 실시예들에 따른 VR 디바이스의 또 다른 일 실시예를 나타낸다.
도 34는 360 video에 대한 썸네일(thumbnail) 추출 구조도의 또 다른 일 실시예를 나타낸다. 도 34에서 메타데이터(metadata, 3401b)는 360 비디오 비트스트림이 아닌 외부 전달개체를 통해 입력될 수 있다. 외부 전달개체의 일 예로, 메타데이터(metadata)는 ISOBMFF와 같은 파일 포맷 내에 특정 box형태(일예로, 도 31의 'vwpt' box)로 저장되어 전달될 수 있다. 또 다른 실시 일 예로 도 32, 도 33의 방법을 사용하여 전달될 수 있다.
도 34에서 parser는 외부 전달개체를 통해 입력된 metadata의 내용을 읽어서 ROI에 해당하는 Tile에 대한 정보 혹은 packing/rotation 정보등을 출력한다. bitstream extractor는 360 video bitstream과 ROI에 해당하는 Tile에 대한 정보를 입력 받아서 ROI에 해당하는 Tile들에 대한 서브 비트스트림을 출력한다. Thumbnail generator에서는 서브 비트스트림을 입력받아서 디코딩한 후 ROI에 대한 복원 영상을 출력한다. remapping에서는 parser로부터 받은 packing/rotation 정보등을 이용하여 복원 영상을 회전/업샘플링/순서재배치하여 유의미한 썸네일 영상으로 출력한다.
다시 말해, 본 발명의 실시예들에 따른 VR 디바이스는 상술한 본 발명의 실시예들에 따른 수신부(3401a, 3401b), 비트스트림 추출부(bitstream extractor, 3402), 썸네일 제너레이터(thumbnail generator, 3403), 리매핑(remapping, 3404) 블록 및/또는 파서(parser, 3405)를 포함할 수 있다. 이 때, 리매핑 블록(remapping block)은 리매퍼(remapper)로 호칭할 수 있다. 본 발명의 실시예들에 따른 VR 디바이스는 상술한 OMAF 플레이어를 의미할 수도 있고, VR 서비스 플랫폼(VR service platform)를 의미할 수도 있다.
도 34에 제시된 일 실시예에 따른 VR 디바이스에서, 메타데이터(또는 시그널링 정보)의 전부 또는 일부는 360 비디오 비트스트림 내에 포함되어 수신되지 않고 외부 전달개체를 통해 수신될 수 있다. 즉, 도 34에서 수신부(3401a, 3401b)는 360 비디오 비트스트림을 수신하는 제 1 수신부(3401a), 별도의 전달개체를 통해 수신되는 메타데이터(또는 시그널링 정보)를 수신하기 위한 제 2 수신부(3401b)를 포함할 수 있다.
제 1 수신부는 수신된 360 비디오 비트스트림을 본 발명의 실시예들에 따른 비트스트림 추출부(bitstream extractor, 2702)로 전달할 수 있다. 제 2 수신부는 수신된 메타데이터(또는 시그널링 정보)를 본 발명의 실시예들에 따른 파서(parser, 3405)로 전달할 수 있다.
비트스트림 추출부(bitstream extractor, 3402)는 제 1 수신부가 수신한 360 비디오 비트스트림을 전달받아 360 비디오 비트스트림 내에 포함된 서브-비트스트림을 추출할 수 있다. 이 때, 본 발명의 실시예들에 따른 비트스트림 추출부는 상술한 썸네일 리젼 인포메이션에 기초하여 서브-비트스트림을 추출할 수도 있다.
또한, 본 발명의 실시예들에 따른 수신부 또는 VR 디바이스는 ROI에 대응하는 비트스트림 및/또는 시그널링 정보만 포함하는 360 비디오 비트스트림을 수신할 수 있다. 따라서, 본 발명의 실시예들에 따른 수신부 또는 VR 디바이스는 ROI에 대응하는 비트스트림 및/또는 시그널링 정보만 포함하는 360 비디오 비트스트림에 대하여만 디코딩을 수행할 수 있다. 이 경우에는, 본 발명의 실시예들에 따른 비트스트림 추출부(Bitstream extractor, 3402)는 생략될 수 있다.
또한 일 실시예로, 상술한 360 비디오 비트스트림이 타일(Tile) 단위 인코딩된 360 비디오 데이터인 경우에는, 본 발명의 실시예들에 따른 비트스트림 추출부(3402)는 360 비디오 비트스트림에서 ROI에 해당하는 타일에 대응하는 서브-비트스트림만을 추출할 수 있다.
썸네일 제너레이터(thumbnail generator, 3403)은 비트스트림 추출부(3402)로부터 추출된 서브-비트스트림을 수신하여 ROI에 대한 복원 데이터(restoration data for ROI)를 생성할 수 있다. 썸네일 제너레이터는 상술한 서브-비트스트림에 대하여 본 발명의 실시예들에 따른 디코딩(decoding) 또는 비디오 디코딩을 수행할 수 있다. 즉, 썸네일 제너레이터(3403)는 ROI를 포함하는 서브-비트스트림을 디코딩하여 ROI에 대한 복원 데이터를 추출할 수 있다.
리매핑(remapping, 3404)은 썸네일 제너레이터(3403)으로부터 출력된 ROI에 대한 복원 데이터를 수신하여 ROI에 대한 복원 영상을 언패킹(unpacking) 및/또는 회전/업샘플링/순서재배치를 수행할 수 있다. 이 때, 리매핑은 상술한 시그널링 정보인 360 비디오 비트스트림에 대하여 언패킹(unpacking)을 수행하기 위한 관련 정보에 기초하여 수행될 수 있다. 본 발명의 실시예들에 따른 리매핑(3404)은 ROI에 대한 복원 영상에 대하여 언패킹(unpacking) 및/또는 회전/업샘플링/순서재배치를 수행하여 유의미한 썸네일(thumbnail, 3406)을 추출할 수 있다. 본 발명의 실시예들에 따른 리매핑(3404)은 리매퍼(remapper)에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 리매핑(remapping, 3404)은 상술한 본 발명의 실시예들에 따른 언패킹(unpacking) 과정, 에디팅(editing)과정, 업스케일링(upscaling) 과정, 다운 스케일링(down scaling), 컴포지션(composition) 과정 또는 렌더링 과정을 포함할 수 있다.
파서(parset, 3405)는 본 발명의 실시예들에 따른 제 2 수신부로부터 수신한 메타데이터를 파싱(parsing)할 수 있다. 본 발명의 실시예들에 따른 파서는 제 2 수신부로부터 수신한 메타데이터를 파싱하여, 추출된 메타데이터의 전부 또는 일부를 본 발명의 실시예들에 따른 비트스트림 추출부(bitstream extractor) 및/또는 리매핑(remapping) 블록으로 전달할 수 있다. 이 때, 메타데이터는 360 비디오 비트스트림에 대한 언패킹(unpacking)과 관련된 정보, 제 1 수신부가 수신한 360 비디오 비트스트림으로부터 ROI에 대한 서브-비트스트림을 추출하기 위한 정보인 썸네일 리젼 인포메이션(thumbnail region information), ROI에 대한 복원 데이터로부터 썸네일 데이터를 추출하기 위한 정보를 나타내는 패킹/로테이션 정보(packing/rotation information) 등을 포함할 수 있다.
이러한 동작을 사용함으로써, 본 발명의 실시예들에 따른 VR 디바이스는 VR 360 영상에 대한 썸네일 추출 시, 필요한 메모리 및 복잡도를 감소시킬 수 있다.
도 35는 본 발명의 실시예들에 따른 VR 디바이스의 제어 방법의 일 실시예를 나타내는 순서도이다.
본 발명의 실시예들에 따른 VR 디바이스 제어 방법은, 360 비디오 비트스트림을 수신할 수 있다(S3500). 위에서 자세히 상술한 바와 같이, 360 비디오 비트스트림은 ROI를 나타내는 서브-비트스트림을 포함할 수 있다. 또한, 360 비디오 비트스트림은 상술한 시그널링 정보를 포함할 수 있다. 또한, 시그널링 정보는 360 비디오 비트스트림과 별도의 전달개체를 통해, 메타데이터(또는 시그널링 정보)로 수신할 수 있다. S3500 단계는 본 발명의 실시예들에 따른 수신부에 의해 수행될 수 있다. 구체적으로, 도 34에서 상술한 제 1 수신부(3401a)에 의해 360 비디오 비트스트림을 수신할 수 있고, 제 2 수신부(3401b)에 의해 별도의 전달개체를 통해 수신되는 메타데이터(또는 시그널링 정보)를 수신할 수 있다.
본 발명의 실시예들에 따른 VR 디바이스 제어 방법은, 360 비디오 비트스트림내에 포함된 서브-비트스트림을 추출할 수 있다(S3501). 위에서 자세히 상술한 바와 같이, 서브-비트스트림은 360 비디오 비트스트림에 대한 ROI(Region of Interest)를 포함할 수 있다. 이 때, ROI에 대응하는 서브-비트스트림 또는 ROI는 도 26에서 상술한 바와 같이 다양한 방법에 의하여 결정될 수 있다. 또한, 상술한 바와 같이 360 비디오 비트스트림이 VR 영상에 대한 데이터만을 포함하는 경우(즉, ROI에 대한 상기 서브-비트스트림만을 포함하는 경우), 본 단계는 선택적으로 수행될 수 있고 경우에 따라서 생략될 수도 있다. S3501 단계는 본 발명의 실시예들에 따른 비트스트림 추출부에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 VR 디바이스 제어 방법은, 서브-비트스트림으로부터 ROI(Region of Interest)에 대한 복원 데이터를 생성할 수 있다(S3502). 위에서 상술한 바와 같이, 본 단계에서는 서브-비트스트림에 대하여 비디오 디코딩을 수행하여 ROI에 대한 복원 데이터를 생성할 수 있다. S3502 단계는 본 발명의 실시예들에 따른 비디오 디코더 또는 썸네일 제너레이터에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 VR 디바이스 제어 방법은, ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성할 수 있다(S3503). 본 발명의 실시예들에 따른 리매핑은 시그널링 정보에 기초아혀 수행될 수 있다. 상술한 바와 같이, 시그널링 정보는 360 비디오 비트스트림 내에 포함된 정보일 수도 있고, 별도의 전달개체를 통해 수신되는 시그널링 정보(또는 메타데이터)일 수 있다. 시그널링 정보는 360 비디오 비트스트림에 대한 언패킹(unpacking)과 관련된 정보, 360 비디오 비트스트림으로부터 상기 ROI에 대한 상기 서브-비트스트림을 추출하기 위한 썸네일 리전 정보(thumbnail region information) 및/또는 상기 ROI에 대한 복원 데이터로부터 썸네일 데이터를 추출하기 위한 패킹/로테이션 정보(packing/rotation information) 등을 포함할 수 있다. S3503 단계는 본 발명의 실시예들에 따른 리매핑(또는 리매핑 블록 또는 리매퍼)에 의해 수행될 수 있다.
메타데이터(또는 시그널링 정보)가 별도의 전달개체를 통해 수신되는 경우, 본 발명의 실시예들에 따른 VR 디바이스 제어 방법은 본 발명의 실시예들에 따른 파서(parser)에 의하여 별도의 전달개체를 통해 수신한 메타데이터(시그널링 정보)를 파싱할 수 있다.
본 명세서에서 “/”및 “”는 “및/또는”으로 해석할 수 있다. 예를 들어, “”의 표현은 “A 및/또는 B”를 의미할 수 있다. 나아가, “B”는 “A 및/또는 B”를 의미할 수 있다. 더 나아가, “”는 “A, B 및/또는 C 중 적어도 하나의”를 의미할 수 있다.
나아가 본 명세서에서 “또는”은 “및/또는”으로 해석할 수도 있다. 예를 들어 “A 또는 B”는 1)A만 나타내는 경우, 2)B만 나타내는 경우 및/또는 3)A 그리고 B를 나타내는 경우를 의미할 수 있다. 다시 말하면, 본 명세서에서 “또는”은 “부가적으로 또는 대안적으로(additionally or alternativelty)”를 의미할 수 있다.
본 발명의 실시예들에 따른 XR 디바이스 또는 XR 디바이스의 제어 방법 및/또는 그 내부에 존재하는 모듈들/블록들은 상술한 바에 대응하는 기능을 수행할 수 있다.
도 1 내지 도 35에서 설명한 본 발명의 실시예들에 따른 XR 디바이스의 구성요소들은 각각 별도의 하드웨어(예를 들면 칩, 하드웨어 회로, 통신 가능한 디바이스 등)으로 구성될 수도 있고 하나의 하드웨어로 구성될 수도 있다. 또한 본 발명의 실시예들에 따른 XR 컨텐츠 제공 디바이스의 구성요소들 중 적어도 하나 이상은 프로그램을 실행 할 수 있는 하나 또는 그 이상의 프로세서들로 구성될 수 있다.
또한, 명세서는 각각의 첨부된 도면을 참조하여 설명되었지만, 첨부 된 도면에 도시된 실시 예들을 서로 병합함으로써 새로운 실시예를 설계하는 것도 가능하다. 또한, 전술한 실시예를 실행하기 위한 프로그램이 기록된 컴퓨터에 의해 판독 가능한 기록매체가 당업자의 필요에 따라 설계되는 경우, 이는 본 명세서에서 청구하고자 하는 권리범위 및 그 등가물의 범위에 속한다.
즉, 본 명세서에서는 첨부된 도면을 참조하여 설명하였으나, 이는 실시예일뿐 특정 실시예에 한정되지 아니하며, 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 변형실시가 가능한 다양한 내용도 청구범위에 따른 권리범위에 속한다. 또한, 그러한 변형 실시들이 본 발명의 기술 사상으로부터 개별적으로 이해되어서는 안 된다.
본 발명의 실시예들에 따른 XR 디바이스 또는 XR 디바이스의 제어 방법을 수행하기 위한 실행 가능한 인스트럭션들은 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적이지 않은 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있거나, 하나 또는 그 이상의 프로세서들에 의해 실행되기 위해 구성된 일시적인 CRM 또는 다른 컴퓨터 프로그램 제품들에 저장될 수 있다. 또한 본 발명의 실시예들에 따른 메모리는 휘발성 메모리(예를 들면 RAM 등)뿐 만 아니라 비휘발성 메모리, 플래쉬 메모리, PROM등을 전부 포함하는 개념으로 사용될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
그리고, 당해 명세서에서는 물건 발명과 방법 발명이 모두 설명되고 있으며, 필요에 따라 양 발명의 설명은 보충적으로 적용될 수가 있다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 이해된다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.
본 명세서에서 장치 및 방법 발명이 모두 언급되고, 장치 및 방법 발명 모두의 설명은 서로 보완하여 적용될 수 있다.
Claims (20)
- VR(Virtual Reality) 디바이스 제어 방법에 있어서,
360 비디오 비트스트림을 수신하는 단계;
상기 360 비디오 비트스트림내에 포함된 서브-비트스트림을 추출하는 단계,상기 서브-비트스트림은 상기 360 비디오 비트스트림에 대한 ROI(Region of Interest)를 포함함;
상기 360 비디오 비트스트림을 스케일러블 코딩 스킴에 대응하여 디코딩하는 단계;
상기 360 비디오 비트스트림에 대해 인터-레이어 프리딕션(ILP)을 수행하는 단계;
상기 360 비디오 비트스트림의 블록에 대해 인터-프리딕션(IP)을 수행하는 단계;
상기 서브-비트스트림으로부터 상기 ROI에 대한 복원 데이터를 생성하는 단계; 및
시그널링 정보에 기초하여 상기 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하는 단계; 를 포함하는,
상기 ROI는 다운샘플링(downsampling)이 수행되지 않은 영역 또는 리전-와이즈 패킹 중 다운샘플링이 덜 이루어진 영역이고,
상기 시그널링 정보는 상기 다운샘플링과 관련된 정보를 나타내는 리전-와이즈 패킹 파라미터(region-wise packing parameter)를 포함하고,
상기 ROI에 대한 상기 복원 데이터는 상기 리전-와이즈 패킹 파라미터에 기초하여 생성되고,
상기 리전-와이즈 패킹 파라미터는 상기 ROI의 우선순위가 높은 부분을 더 큰 이미지로 패킹하고 상기 ROI의 나머지 부분을 더 작은 이미지로 패킹하고,
상기 인터-레이어 프리딕션은 낮은 해상도 또는 퀄리티 신호에 의해 더 높은 해상도 또는 퀄리티 신호의 예측을 나타내고,
상기 인터-프리딕션은 현재 디코딩된 픽처 및 참조 픽처의 디코딩된 샘플로부터의 예측을 나타내고,
상기 인터-프리딕션은 템포럴 인터-프리딕션을 포함하고,
MCTS(Motion Constrained Tile Set)는 상기 템포럴 인터-프리딕션의 범위를 현재 타일 내부 범위로 제한하는
VR 디바이스 제어 방법.
- 제 1 항에 있어서,
상기 시그널링 정보가 상기 360 비디오 비트스트림 내에 포함된 경우, 상기 시그널링 정보는 상기 360 비디오 비트스트림에 대한 언패킹(unpacking)과 관련된 정보를 포함하고,
VR 디바이스 제어 방법.
- 제 1항에 있어서, 상기 시그널링 정보가 상기 360 비디오 비트스트림과 별도로 수신되는 경우,
상기 VR 디바이스 제어 방법은,
상기 별도로 수신된 시그널링 정보를 파싱하는 단계를 더 포함하고,
상기 시그널링 정보는 상기 360 비디오 비트스트림으로부터 상기 ROI에 대한 상기 서브-비트스트림을 추출하기 위한 제 1 정보 및 상기 ROI에 대한 복원 데이터로부터 썸네일 데이터를 추출하기 위한 제 2 정보를 포함하고,
VR 디바이스 제어 방법.
- 제 1항에 있어서,
상기 360 비디오 비트스트림이 상기 ROI에 대한 상기 서브-비트스트림만을 포함하는 경우,
상기 서브-비트스트림을 추출하는 단계 없이 상기 ROI에 대한 상기 복원 데이터를 리매핑하여 썸네일 데이터를 생성하는,
VR 디바이스 제어 방법.
- 삭제
- 제 1항에 있어서,
상기 360 비디오 비트스트림에 오버레이 영역이 포함된 경우, 상기 오버레이 영역이 상기 ROI로 사용되는,
VR 디바이스 제어 방법.
- 제 1 항에 있어서,
상기 360 비디오 비트스트림은 제 1 타일 및 제 2 타일로 구분되고,
상기 제 1 타일에 대한 비트들의 수가 상기 제 2 타일에 대한 비트들의 수보다 큰 경우, 상기 제 1 타일이 상기 ROI로 사용되는,
VR 디바이스 제어 방법.
- 제 1 항에 있어서,
상기 360 비디오 비트스트림이 DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜에 기반하여 수신되는 경우,
상기 DASH 프로토콜에 의해 전달되는 MPD(Media Presentation Description)는 상기 ROI에 대한 정보를 포함하고,
상기 MPD에 포함된 상기 ROI에 대한 정보에 기초하여 상기 ROI를 결정하는,
VR 디바이스 제어 방법.
- 제 1 항에 있어서,
상기 360 비디오 비트스트림이 스케일러블 코딩 스킴에 기초하여 수신되는 경우,
상기 360 비디오 비트스트림은 제 1 해상도의 데이터를 포함하는 기본 계층(base layer) 및 제 2 해상도의 데이터를 포함하는 인핸스먼트 계층(enhancement layer)을 포함하고,
상기 제 1 해상도는 상기 제 2 해상도보다 낮고,
상기 ROI는 상기 기본 계층에 기초하여 결정되는,
VR 디바이스 제어 방법.
- 제 1 항에 있어서,
상기 360 비디오 비트스트림은 MP4 파일 포멧, MKV 파일 포멧 및 TS 파일 포멧 중 하나의 파일 포멧을 기반으로 저장된 데이터인,
VR 디바이스 제어 방법.
- VR(Virtual Reality) 디바이스에 있어서,
360 비디오 비트스트림을 수신하는 수신부;
상기 360 비디오 비트스트림내에 포함된 서브-비트스트림을 추출하는 비트스트림 추출부(bitstream extractor),
상기 서브-비트스트림은 상기 360 비디오 비트스트림에 대한 ROI(Region of Interest)을 포함함;
상기 360 비디오 비트스트림을 스케일러블 코딩 스킴에 대응하여 디코딩하는 디코더;
상기 360 비디오 비트스트림에 대해 인터-레이어 프리딕션(ILP)을 수행하는 인터 레이어 프리딕션;
상기 360 비디오 비트스트림의 블록에 대해 인터-프리딕션(IP)을 수행하는 인터-프리딕션;
상기 서브-비트스트림으로부터 상기 ROI에 대한 복원 데이터를 생성하는 썸네일 제너레이터(thumbnail generator); 및
시그널링 정보에 기초하여 상기 ROI에 대한 복원 데이터를 리매핑(remapping)하여 썸네일 데이터를 생성하는 리매퍼(remapper); 를 포함하고,
상기 ROI는 다운샘플링(downsampling)이 수행되지 않은 영역 또는 리전-와이즈 패킹 중 다운샘플링이 덜 이루어진 영역이고,
상기 시그널링 정보는 상기 다운샘플링과 관련된 정보를 나타내는 리전-와이즈 패킹 파라미터(region-wise packing parameter)를 포함하고,
상기 ROI에 대한 상기 복원 데이터는 상기 리전-와이즈 패킹 파라미터에 기초하여 생성되고,
상기 리전-와이즈 패킹 파라미터는 상기 ROI의 우선순위가 높은 부분을 더 큰 이미지로 패킹하고 상기 ROI의 나머지 부분을 더 작은 이미지로 패킹하고,
상기 인터-레이어 프리딕션은 낮은 해상도 또는 퀄리티 신호에 의해 더 높은 해상도 또는 퀄리티 신호의 예측을 나타내고,
상기 인터-프리딕션은 현재 디코딩된 픽처 및 참조 픽처의 디코딩된 샘플로부터의 예측을 나타내고,
상기 인터-프리딕션은 템포럴 인터-프리딕션을 포함하고,
MCTS(Motion Constrained Tile Set)는 상기 템포럴 인터-프리딕션의 범위를 현재 타일 내부 범위로 제한하는
VR 디바이스.
- 제 11항에 있어서,
상기 시그널링 정보가 상기 360 비디오 비트스트림 내에 포함된 경우, 상기 시그널링 정보는 상기 360 비디오 비트스트림에 대한 언패킹(unpacking)과 관련된 정보를 포함하고,
VR 디바이스.
- 제 11항에 있어서, 상기 시그널링 정보가 상기 360 비디오 비트스트림과 별도로 수신되는 경우,
상기 VR 디바이스는 상기 별도로 수신된 시그널링 정보를 파싱하는 파서(parser)를 더 포함하고,
상기 시그널링 정보는 상기 360 비디오 비트스트림으로부터 상기 ROI에 대한 상기 서브-비트스트림을 추출하기 위한 나타내는 제 1 정보 및 상기 ROI에 대한 복원 데이터로부터 썸네일 데이터를 추출하기 위한 제 2 정보를 포함하고,
VR 디바이스.
- 제 11항에 있어서,
상기 360 비디오 비트스트림이 상기 ROI에 대한 상기 서브-비트스트림만을 포함하는 경우,
상기 서브-비트스트림을 추출하는 단계 없이 상기 ROI에 대한 상기 복원 데이터를 리매핑하여 썸네일 데이터를 생성하는,
VR 디바이스.
- 삭제
- 제 11항에 있어서,
상기 360 비디오 비트스트림에 오버레이 영역이 포함된 경우, 상기 오버레이 영역이 상기 ROI로 사용되는,
VR 디바이스.
- 제 11항에 있어서,
상기 360 비디오 비트스트림은 제 1 타일 및 제 2 타일로 구분되고,
상기 제 1 타일에 대한 비트들의 수가 상기 제 2 타일에 대한 비트들의 수보다 큰 경우, 상기 제 1 타일이 상기 ROI로 사용되는,
VR 디바이스.
- 제 11항에 있어서,
상기 360 비디오 비트스트림이 DASH(Dynamic Adaptive Streaming over HTTP) 프로토콜에 기반하여 수신되는 경우,
상기 DASH 프로토콜에 의해 전달되는 MPD(Media Presentation Description)는 상기 ROI에 대한 정보를 포함하고,
상기 MPD에 포함된 상기 ROI에 대한 정보에 기초하여 상기 ROI를 결정하는,
VR 디바이스.
- 제 11 항에 있어서,
상기 360 비디오 비트스트림이 스케일러블 코딩 스킴에 기초하여 수신되는 경우,
상기 360 비디오 비트스트림은 제 1 해상도의 데이터를 포함하는 기본 계층(base layer) 및 제 2 해상도의 데이터를 포함하는 인핸스먼트 계층(enhancement layer)을 포함하고,
상기 제 1 해상도는 상기 제 2 해상도보다 낮고,
상기 ROI는 상기 기본 계층에 기초하여 결정되는,
VR 디바이스.
- 제 11 항에 있어서,
상기 360 비디오 비트스트림은 MP4 파일 포멧, MKV 파일 포멧 및 TS 파일 포멧 중 하나의 파일 포멧을 기반으로 저장된 데이터인,
VR 디바이스.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190100315A KR102640664B1 (ko) | 2019-08-16 | 2019-08-16 | Vr 디바이스 및 vr 디바이스 제어 방법 |
US16/550,759 US10873737B1 (en) | 2019-08-16 | 2019-08-26 | VR device and control method for the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190100315A KR102640664B1 (ko) | 2019-08-16 | 2019-08-16 | Vr 디바이스 및 vr 디바이스 제어 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190103102A KR20190103102A (ko) | 2019-09-04 |
KR102640664B1 true KR102640664B1 (ko) | 2024-02-26 |
Family
ID=67950126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190100315A KR102640664B1 (ko) | 2019-08-16 | 2019-08-16 | Vr 디바이스 및 vr 디바이스 제어 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10873737B1 (ko) |
KR (1) | KR102640664B1 (ko) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3633628B1 (en) * | 2017-05-30 | 2021-04-07 | Sony Corporation | Image processing device and method, file generation device and method, and program |
EP4044603A4 (en) * | 2019-10-07 | 2023-11-29 | LG Electronics Inc. | POINT CLOUD DATA TRANSMITTING APPARATUS, POINT CLOUD DATA TRANSMITTING METHOD, POINT CLOUD DATA RECEIVING APPARATUS AND POINT CLOUD DATA RECEIVING METHOD |
US11164339B2 (en) * | 2019-11-12 | 2021-11-02 | Sony Interactive Entertainment Inc. | Fast region of interest coding using multi-segment temporal resampling |
EP4140124A4 (en) * | 2020-07-20 | 2023-10-04 | Samsung Electronics Co., Ltd. | METHOD AND DEVICE FOR DIRECT ACCESS TO 3D (AR) MEDIA |
KR102356037B1 (ko) * | 2020-10-14 | 2022-02-07 | 성균관대학교산학협력단 | 다시점 360도 영상 스트리밍 방법 및 장치 |
CN113163185B (zh) * | 2021-03-26 | 2023-03-07 | 复旦大学 | 基于异构计算的vr实时自适应传输系统及方法 |
CN114268835B (zh) * | 2021-11-23 | 2022-11-01 | 北京航空航天大学 | 一种低传输流量的vr全景视频时空切片方法 |
US20240331661A1 (en) * | 2023-03-30 | 2024-10-03 | Apple Inc. | Content Based Foveation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180249163A1 (en) * | 2017-02-28 | 2018-08-30 | Nokia Technologies Oy | Method and apparatus for improving the visual quality of viewport-based omnidirectional video streaming |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102001415B1 (ko) * | 2012-06-01 | 2019-07-18 | 삼성전자주식회사 | 다계층 비디오 코딩을 위한 레이트 제어 방법, 이를 이용한 비디오 인코딩 장치 및 비디오 신호 처리 시스템 |
US10397666B2 (en) * | 2014-06-27 | 2019-08-27 | Koninklijke Kpn N.V. | Determining a region of interest on the basis of a HEVC-tiled video stream |
KR20180112708A (ko) * | 2017-04-03 | 2018-10-12 | 한국전자통신연구원 | 고화질 360도 vr 영상 처리 장치 및 방법 |
-
2019
- 2019-08-16 KR KR1020190100315A patent/KR102640664B1/ko active IP Right Grant
- 2019-08-26 US US16/550,759 patent/US10873737B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180249163A1 (en) * | 2017-02-28 | 2018-08-30 | Nokia Technologies Oy | Method and apparatus for improving the visual quality of viewport-based omnidirectional video streaming |
Also Published As
Publication number | Publication date |
---|---|
US10873737B1 (en) | 2020-12-22 |
KR20190103102A (ko) | 2019-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102208129B1 (ko) | 360 비디오 시스템에서 오버레이 처리 방법 및 그 장치 | |
KR102241082B1 (ko) | 복수의 뷰포인트들에 대한 메타데이터를 송수신하는 방법 및 장치 | |
KR102640664B1 (ko) | Vr 디바이스 및 vr 디바이스 제어 방법 | |
US11856181B2 (en) | Method and device for transmitting or receiving 6DoF video using stitching and re-projection related metadata | |
KR102258448B1 (ko) | 핫스팟 및 roi 관련 메타데이터를 이용한 360도 비디오를 송수신하는 방법 및 그 장치 | |
KR102157658B1 (ko) | 복수의 뷰포인트들에 대한 메타데이터를 송수신하는 방법 및 장치 | |
US11509879B2 (en) | Method for transmitting video, apparatus for transmitting video, method for receiving video, and apparatus for receiving video | |
KR102278848B1 (ko) | 다중 뷰포인트 기반 360 비디오 처리 방법 및 그 장치 | |
US11979544B2 (en) | 360 video transmission method, 360 video reception method, 360 video transmission apparatus, and 360 video reception apparatus | |
KR102214085B1 (ko) | 복수의 뷰포인트들에 대한 메타데이터를 송수신하는 방법 및 장치 | |
US11677922B2 (en) | Apparatus for transmitting a video, a method for transmitting a video, an apparatus for receiving a video, and a method for receiving a video | |
US20220217314A1 (en) | Method for transmitting 360 video, method for receiving 360 video, 360 video transmitting device, and 360 video receiving device | |
US20210329214A1 (en) | An apparatus for transmitting a video, a method for transmitting a video, an apparatus for receiving a video, and a method for receiving a video | |
JP6993430B2 (ja) | 領域(region)ベースの360度ビデオを送信する方法、領域ベースの360度ビデオを受信する方法、領域ベースの360度ビデオ送信装置、領域ベースの360度ビデオ受信装置 | |
KR20190116928A (ko) | 360도 비디오를 송수신하는 방법 및 그 장치 | |
US11463671B2 (en) | Video transmitting method, video transmitting device, video receiving method and video receiving device | |
US11558597B2 (en) | Method for transmitting video, apparatus for transmitting video, method for receiving video, and apparatus for receiving video |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |