WO2017188714A1 - 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치 - Google Patents

360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치 Download PDF

Info

Publication number
WO2017188714A1
WO2017188714A1 PCT/KR2017/004406 KR2017004406W WO2017188714A1 WO 2017188714 A1 WO2017188714 A1 WO 2017188714A1 KR 2017004406 W KR2017004406 W KR 2017004406W WO 2017188714 A1 WO2017188714 A1 WO 2017188714A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
video
region
tile
image
Prior art date
Application number
PCT/KR2017/004406
Other languages
English (en)
French (fr)
Inventor
이장원
오세진
이준우
서종열
Original Assignee
엘지전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엘지전자 주식회사 filed Critical 엘지전자 주식회사
Priority to EP17789898.8A priority Critical patent/EP3451675A4/en
Priority to US16/096,576 priority patent/US20190141311A1/en
Priority to CN201780025774.1A priority patent/CN109076255B/zh
Publication of WO2017188714A1 publication Critical patent/WO2017188714A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234345Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/44Processing 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/4402Processing 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof

Definitions

  • the present invention relates to a method of transmitting a 360 degree video, a method of receiving a 360 degree video, a 360 degree video transmitting apparatus, a 360 degree video receiving apparatus.
  • the VR (Virtual Reality) system gives the user the feeling of being in an electronically projected environment.
  • the system for providing VR can be further refined to provide higher quality images and spatial sound.
  • the VR system can enable a user to consume VR content interactively.
  • the VR system needs to be improved in order to provide the VR environment to the user more efficiently.
  • data transmission efficiency for transmitting a large amount of data such as VR content robustness between a transmission and reception network, network flexibility considering a mobile receiving device, and methods for efficient playback and signaling should be proposed.
  • the present invention proposes a method for transmitting a 360 degree video, a method for receiving a 360 degree video, a 360 degree video transmitting apparatus, a 360 degree video receiving apparatus.
  • a 360 degree video receiving apparatus is disclosed.
  • An apparatus for receiving a 360 degree video includes a receiver configured to receive a 2D image including 360 degree video data and a data signal including signaling information about the 360 degree video data, wherein the 2D image is two or more.
  • a data decoder which is divided into regions and encoded in units of individual regions or multiple regions, and decodes the 2D image included in the data signal, a signaling decoder that decodes the signaling information included in the data signal, and processes the 2D image.
  • the renderer may render the 360-degree video data in a 3D space, and the signaling information may include grouping information for grouping the two or more regions.
  • the grouping information may include first group information that provides grouping information for the individual area or the plurality of areas that can be reproduced.
  • the signaling information may further include coding dependency information between individual regions, between multiple regions, or between the individual regions and the plurality of regions.
  • the signaling information may further include projection scheme information indicating a projection scheme used to project the 360 degree video data onto the 2D image.
  • the signaling information may further include mapping information between the 2D image and the 360 degree image included in the 360 degree video data.
  • the signaling information may further include rotation information indicating a corresponding rotation angle when at least one of the individual regions of the 2D image is rotated at a predetermined angle and mapped to the 2D image.
  • the renderer may generate and output user viewpoint information including at least one area.
  • the data decoder may receive the user viewpoint information from the renderer and decode data corresponding to the at least one area included in the user viewpoint information.
  • the device further comprises a file parser for decapsulating a file format included in the data signal, the file parser receives the user viewpoint information from the renderer, and included in the user viewpoint information Data corresponding to the at least one area may be extracted.
  • the receiver may receive the user viewpoint information from the renderer, and receive data corresponding to the at least one area included in the user viewpoint information.
  • a method of transmitting 360 degree video is disclosed.
  • a method of transmitting 360-degree video may include obtaining 360-degree video data, mapping the 360-degree video data to a 2D image, dividing the 2D image into two or more regions, Encoding in units of a plurality of regions, generating signaling information for the 360 degree video data, and performing a process for transmitting the encoded 2D image and the signaling information, and transmitting the same through a broadcasting network.
  • the signaling information may include grouping information for grouping the two or more regions.
  • the grouping information may include first group information that provides grouping information for the individual area or the plurality of areas that can be reproduced.
  • the grouping information may further include second group information that provides grouping information for the individual area or the plurality of areas that are mutually switchable.
  • the signaling information may further include coding dependency information between individual regions, between multiple regions, or between the individual regions and the plurality of regions.
  • the signaling information may further include projection scheme information indicating a projection scheme used to project the 360 degree video data onto the 2D image.
  • the signaling information may further include mapping information between the 2D image and the 360 degree image included in the 360 degree video data.
  • the signaling information may further include rotation information indicating a corresponding rotation angle when at least one of the individual regions of the 2D image is rotated at a predetermined angle and mapped to the 2D image.
  • a 360 degree video transmission apparatus and a method for transmitting 360 degree video are disclosed.
  • the present invention can efficiently transmit 360-degree content in an environment supporting next generation hybrid broadcasting using a terrestrial broadcasting network and an internet network.
  • the present invention can propose a method for providing an interactive experience in the consumption of 360-degree content of the user.
  • the present invention can propose a method of signaling to accurately reflect the intention of the 360-degree content producer in the 360-degree content consumption of the user.
  • the present invention can propose a method of efficiently increasing transmission capacity and delivering necessary information in 360-degree content delivery.
  • FIG. 1 is a diagram illustrating an overall architecture for providing a 360 degree video according to the present invention.
  • FIG. 2 illustrates a 360 degree video transmission apparatus according to an aspect of the present invention.
  • FIG. 3 is a diagram illustrating a 360 degree video receiving apparatus according to another aspect of the present invention.
  • FIG. 4 is a diagram illustrating a 360-degree video transmission device / 360-degree video receiving apparatus according to another embodiment of the present invention.
  • FIG. 5 is a diagram illustrating the concept of an airplane craft axis for explaining a 3D space of the present invention.
  • FIG. 6 is a diagram illustrating projection schemes according to an embodiment of the present invention.
  • FIG. 7 is a diagram illustrating a tile according to an embodiment of the present invention.
  • FIG. 8 is a diagram illustrating metadata related to 360 degree video according to an embodiment of the present invention.
  • FIG. 9 is a diagram showing the structure of a media file according to an embodiment of the present invention.
  • FIG. 10 illustrates a hierarchical structure of boxes in an ISOBMFF according to an embodiment of the present invention.
  • FIG. 11 illustrates an overall operation of a DASH-based adaptive streaming model according to an embodiment of the present invention.
  • FIG. 12 is a diagram illustrating a 360 degree video processing method according to an embodiment of the present invention.
  • FIG. 13 illustrates a track header box according to an embodiment of the present invention.
  • FIG. 14 illustrates a track selection box according to an embodiment of the present invention.
  • FIG. 15 illustrates a track group box according to an embodiment of the present invention.
  • FIG. 16 illustrates a track reference box according to an embodiment of the present invention.
  • FIG 17 illustrates a full picture sequence according to an embodiment of the present invention.
  • 18 and 19 illustrate the structure of an ISO BMFF file for an embodiment in which a 360 degree video is composed of four tile tracks and one non-tile track and no extractor is used.
  • 20 and 21 are diagrams illustrating the structure of an ISO BMFF file for an embodiment in which a 360 degree video is composed of four tile tracks and one non-tile track and an extractor is used.
  • 22 and 23 are diagrams showing the structure of an ISO BMFF file for an embodiment in which a 360 degree video is composed of one full picture track and four tile tracks, and the full track is referenced by using an extractor in the tile track. .
  • FIG. 24 is a diagram illustrating a full picture sequence according to another embodiment of the present invention.
  • a 360-degree video includes a non-tile track, a tile region track, and a tile set track for a base layer, a non-tile track, a tile region track, and a tile set track for an enhancement layer.
  • FIGS. 27 and 28 show that a 360-degree video is composed of a non-tile track, a tile region track and a tile set track for a base layer, a non-tile track for a enhancement layer, a tile region track, and a tile set track.
  • FIG. 29 is a diagram illustrating an acquisition space and / or a user viewpoint space of a 360 degree video.
  • 30 illustrates signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to an embodiment of the present invention.
  • 31 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • 32 is a diagram illustrating how 360-degree video is mapped in a 2D frame according to an embodiment of the present invention.
  • 33 and 34 illustrate signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • FIG. 35 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • 36 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • FIG. 37 illustrates a VR video region box according to another embodiment of the present invention.
  • FIG. 38 illustrates signaling information for selecting, transmitting, and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • 39 is a diagram illustrating a relationship between a region and a tile region using a vr video region info group entry.
  • 40 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • FIG. 41 is a diagram illustrating syntax of @value for indicating a region range or a user view support range in an acquisition space of a VR video transmitted through DASH.
  • FIG. 42 illustrates a full picture frame divided into a full picture frame and a region
  • FIG. 43 illustrates an MPD including signaling information related to FIG. 42.
  • FIG. 44 is a diagram illustrating a full picture frame divided into full picture frames and regions
  • FIG. 45 is a diagram illustrating an MPD including signaling information related to FIG. 44.
  • 47 is a diagram illustrating a receiver operation according to another embodiment of the present invention.
  • FIG. 48 is a diagram illustrating a receiver operation according to another embodiment of the present invention.
  • 49 is a diagram illustrating a method of transmitting a 360 degree video according to an embodiment of the present invention.
  • 50 is a diagram illustrating a 360 degree video receiving apparatus according to an embodiment of the present invention.
  • FIG. 1 is a diagram illustrating an overall architecture for providing a 360 degree video according to the present invention.
  • the present invention proposes a method of providing 360-degree content in order to provide VR (Virtual Reality) to a user.
  • VR may refer to a technique or environment for replicating a real or virtual environment.
  • VR artificially provides the user with a sensational experience, which allows the user to experience the same as being in an electronically projected environment.
  • 360-degree content refers to the overall content for implementing and providing VR, and may include 360-degree video and / or 360-degree audio.
  • 360 degree video may refer to video or image content that is required to provide VR, and simultaneously captured or played in all directions (360 degrees).
  • the 360 degree video may refer to a video or an image displayed on various types of 3D space according to the 3D model.
  • the 360 degree video may be represented on a spherical surface.
  • 360-degree audio is also audio content for providing VR, and may mean spatial audio content, in which a sound source can be recognized as being located in a specific space in three dimensions.
  • 360 degree content may be generated, processed, and transmitted to users, and users may consume the VR experience using the 360 degree content.
  • 360 degree content / video / image / audio may be used as 360 content / video / image / audio, etc., in which units (degrees) are omitted, or VR content / video / image / audio or the like.
  • the present invention particularly proposes a method for effectively providing 360 video.
  • first 360 video may be captured through one or more cameras.
  • the captured 360 video is transmitted through a series of processes, and the receiving side can process and render the received data back into the original 360 video. Through this, 360 video may be provided to the user.
  • the entire process for providing the 360 video may include a capture process, preparation process, transmission process, processing process, rendering process, and / or feedback process.
  • the capturing process may mean a process of capturing an image or a video for each of a plurality of viewpoints through one or more cameras.
  • image / video data such as illustrated at t1010 may be generated.
  • Each plane of t1010 illustrated may mean an image / video for each viewpoint.
  • the captured plurality of images / videos may be referred to as raw data.
  • metadata related to capture may be generated.
  • Special cameras for VR can be used for this capture.
  • capture through an actual camera may not be performed.
  • the corresponding capture process may be replaced by simply generating related data.
  • the preparation process may be a process of processing the captured image / video and metadata generated during the capture process.
  • the captured image / video may undergo a stitching process, a projection process, a region-wise packing process, and / or an encoding process in this preparation process.
  • each image / video can be stitched.
  • the stitching process may be a process of connecting each captured image / video to create a panoramic image / video or a spherical image / video.
  • the stitched image / video may be subjected to a projection process.
  • the stretched image / video can be projected onto a 2D image.
  • This 2D image may be called a 2D image frame depending on the context. It can also be expressed as mapping a projection to a 2D image to a 2D image.
  • the projected image / video data may be in the form of a 2D image as shown (t1020).
  • the video data projected onto the 2D image may be subjected to region-wise packing to increase video coding efficiency and the like.
  • the region-specific packing may refer to a process of dividing the video data projected on the 2D image by region and applying the process.
  • the region may refer to a region in which 2D images projected with 360 video data are divided.
  • the regions may be divided evenly or arbitrarily divided into 2D images according to an embodiment. In some embodiments, regions may be divided according to a projection scheme.
  • the region-specific packing process is an optional process and may be omitted in the preparation process.
  • this processing may include rotating each region or rearranging on 2D images in order to increase video coding efficiency. For example, by rotating the regions so that certain sides of the regions are located close to each other, efficiency in coding can be increased.
  • the process may include increasing or decreasing a resolution for a specific region in order to differentiate the resolution for each region of the 360 video. For example, regions that correspond to regions of greater importance on 360 video may have higher resolution than other regions.
  • Video data projected on 2D images or region-packed video data may be encoded via a video codec. You can go through the process.
  • the preparation process may further include an editing process.
  • editing process editing of image / video data before and after projection may be further performed.
  • metadata about stitching / projection / encoding / editing may be generated.
  • metadata about an initial time point, or a region of interest (ROI) of video data projected on the 2D image may be generated.
  • the transmission process may be a process of processing and transmitting image / video data and metadata that have been prepared. Processing may be performed according to any transport protocol for the transmission. Data that has been processed for transmission may be delivered through a broadcast network and / or broadband. These data may be delivered to the receiving side in an on demand manner. The receiving side can receive the corresponding data through various paths.
  • the processing may refer to a process of decoding the received data and re-projecting the projected image / video data onto the 3D model.
  • image / video data projected on 2D images may be re-projected onto 3D space.
  • This process may be called mapping or projection depending on the context.
  • the mapped 3D space may have a different shape according to the 3D model.
  • the 3D model may have a sphere, a cube, a cylinder, or a pyramid.
  • the processing process may further include an editing process, an up scaling process, and the like.
  • editing process editing of image / video data before and after re-projection may be further performed.
  • the size of the sample may be increased by upscaling the samples during the upscaling process. If necessary, downscaling may be performed to reduce the size.
  • the rendering process may refer to a process of rendering and displaying re-projected image / video data in 3D space. Depending on the representation, it may be said to combine re-projection and rendering to render on a 3D model.
  • the image / video re-projected onto the 3D model (or rendered onto the 3D model) may have a shape as shown (t1030).
  • the illustrated t1030 is a case where it is re-projected onto a 3D model of a sphere.
  • the user may view some areas of the rendered image / video through the VR display. In this case, the region seen by the user may be in the form as illustrated in t1040.
  • the feedback process may mean a process of transmitting various feedback information that can be obtained in the display process to the transmitter. Through the feedback process, interactivity may be provided for 360 video consumption. According to an embodiment, in the feedback process, head orientation information, viewport information indicating an area currently viewed by the user, and the like may be transmitted to the transmitter. According to an embodiment, the user may interact with those implemented on the VR environment, in which case the information related to the interaction may be transmitted to the sender or service provider side in the feedback process. In some embodiments, the feedback process may not be performed.
  • the head orientation information may mean information about a head position, an angle, and a movement of the user. Based on this information, information about the area currently viewed by the user in the 360 video, that is, viewport information, may be calculated.
  • the viewport information may be information about an area currently viewed by the user in the 360 video. Through this, a gaze analysis may be performed to determine how the user consumes 360 video, which areas of the 360 video are viewed and how much. Gayes analysis may be performed at the receiving end and delivered to the transmitting side via a feedback channel.
  • a device such as a VR display may extract a viewport area based on a user's head position / direction, a vertical or horizontal FOV supported by the device.
  • the above-described feedback information may be consumed at the receiving side as well as being transmitted to the transmitting side. That is, the decoding, re-projection, rendering process, etc. of the receiving side may be performed using the above-described feedback information. For example, only 360 video for the area currently viewed by the user may be preferentially decoded and rendered using head orientation information and / or viewport information.
  • the viewport to the viewport area may mean an area that the user is viewing in 360 video.
  • a viewpoint is a point that a user is viewing in the 360 video and may mean a center point of the viewport area. That is, the viewport is an area centered on the viewpoint, and the size shape occupied by the area may be determined by a field of view (FOV) to be described later.
  • FOV field of view
  • 360 video data image / video data that undergoes a series of processes of capture / projection / encoding / transmission / decoding / re-projection / rendering may be referred to as 360 video data.
  • 360 video data may also be used as a concept including metadata or signaling information associated with such image / video data.
  • FIG. 2 illustrates a 360 degree video transmission apparatus according to an aspect of the present invention.
  • the present invention may be related to a 360 video transmission device.
  • the 360 video transmission apparatus according to the present invention may perform operations related to the above-described preparation process or transmission process.
  • the 360 video transmission apparatus according to the present invention includes a data input unit, a stitcher, a projection processing unit, a region-specific packing processing unit (not shown), a metadata processing unit, a (transmitting side) feedback processing unit, a data encoder, an encapsulation processing unit,
  • the transmission processing unit and / or the transmission unit may be included as internal / external elements.
  • the data input unit may receive the captured images / videos of each viewpoint. These point-in-time images / videos may be images / videos captured by one or more cameras. In addition, the data input unit may receive metadata generated during the capture process. The data input unit may transfer the input image / video for each view to the stitcher, and may transmit metadata of the capture process to the signaling processor.
  • the stitcher may perform stitching on the captured view-point images / videos.
  • the stitcher may transfer the stitched 360 video data to the projection processor. If necessary, the stitcher may receive the necessary metadata from the metadata processor and use the stitching work.
  • the stitcher may transmit metadata generated during the stitching process to the metadata processing unit.
  • the metadata of the stitching process may include information such as whether stitching is performed or a stitching type.
  • the projection processor may project the stitched 360 video data onto the 2D image.
  • the projection processor may perform projection according to various schemes, which will be described later.
  • the projection processor may perform mapping in consideration of a corresponding depth of 360 video data for each viewpoint. If necessary, the projection processing unit may receive metadata required for projection from the metadata processing unit and use the same for the projection work.
  • the projection processor may transmit the metadata generated in the projection process to the metadata processor. Metadata of the projection processing unit may include a type of projection scheme.
  • the region-specific packing processor may perform the region-specific packing process described above. That is, the region-specific packing processing unit may divide the projected 360 video data into regions, and perform processes such as rotating and rearranging the regions, changing the resolution of each region, and the like. As described above, the region-specific packing process is an optional process. If the region-specific packing is not performed, the region-packing processing unit may be omitted.
  • the region-specific packing processor may receive metadata necessary for region-packing from the metadata processor and use the region-specific packing operation if necessary.
  • the region-specific packing processor may transmit metadata generated in the region-specific packing process to the metadata processor.
  • the metadata of each region packing processing unit may include a rotation degree and a size of each region.
  • the stitcher, the projection processing unit, and / or the regional packing processing unit may be performed in one hardware component according to an embodiment.
  • the metadata processor may process metadata that may occur in a capture process, a stitching process, a projection process, a region-specific packing process, an encoding process, an encapsulation process, and / or a processing for transmission.
  • the metadata processor may generate 360 video related metadata using these metadata.
  • the metadata processor may generate 360 video related metadata in the form of a signaling table.
  • 360 video related metadata may be referred to as metadata or 360 video related signaling information.
  • the metadata processor may transfer the acquired or generated metadata to internal elements of the 360 video transmission apparatus as needed.
  • the metadata processor may transmit the 360 video related metadata to the data encoder, the encapsulation processor, and / or the transmission processor so that the 360 video related metadata may be transmitted to the receiver.
  • the data encoder may encode 360 video data projected onto the 2D image and / or region-packed 360 video data.
  • 360 video data may be encoded in various formats.
  • the encapsulation processing unit may encapsulate the encoded 360 video data and / or 360 video related metadata in the form of a file.
  • the 360 video related metadata may be received from the above-described metadata processing unit.
  • the encapsulation processing unit may encapsulate the data in a file format such as ISOBMFF, CFF, or other DASH segments.
  • the encapsulation processing unit may include 360 video-related metadata on a file format.
  • the 360 related metadata may be included, for example, in boxes at various levels in the ISOBMFF file format or as data in separate tracks within the file.
  • the encapsulation processing unit may encapsulate the 360 video related metadata itself into a file.
  • the transmission processing unit may apply processing for transmission to the encapsulated 360 video data according to the file format.
  • the transmission processor may process the 360 video data according to any transmission protocol.
  • the processing for transmission may include processing for delivery through a broadcasting network and processing for delivery through a broadband.
  • the transmission processor may receive not only 360 video data but also metadata related to 360 video from the metadata processor and apply processing for transmission thereto.
  • the transmitter may transmit the processed 360 video data and / or 360 video related metadata through a broadcast network and / or broadband.
  • the transmitter may include an element for transmission through a broadcasting network and / or an element for transmission through a broadband.
  • the 360 video transmission device may further include a data storage unit (not shown) as an internal / external element.
  • the data store may store the encoded 360 video data and / or 360 video related metadata before transmitting to the transfer processor.
  • the data is stored in the form of a file such as ISOBMFF.
  • the data storage unit may not be required.However, when delivering on demand, non real time (NRT) or broadband, the encapsulated 360 data is stored in the data storage unit for a certain period of time. May be sent.
  • the 360 video transmitting apparatus may further include a (transmitting side) feedback processing unit and / or a network interface (not shown) as internal / external elements.
  • the network interface may receive the feedback information from the 360 video receiving apparatus according to the present invention, and transmit the feedback information to the transmitter feedback processor.
  • the transmitter feedback processor may transmit the feedback information to the stitcher, the projection processor, the region-specific packing processor, the data encoder, the encapsulation processor, the metadata processor, and / or the transmission processor.
  • the feedback information may be delivered to each of the internal elements after being transmitted to the metadata processor.
  • the internal elements receiving the feedback information may reflect the feedback information in the subsequent processing of the 360 video data.
  • the region-specific packing processing unit may rotate each region to map on the 2D image.
  • the regions may be rotated at different angles and at different angles and mapped on the 2D image.
  • the rotation of the region can be performed taking into account the portion where the 360 video data was adjacent before projection on the spherical face, the stitched portion, and the like.
  • Information about the rotation of the region, that is, rotation direction, angle, etc., may be signaled by 360 video related metadata.
  • the data encoder may be different for each region. Encoding can be performed. The data encoder may encode at a high quality in one region and at a low quality in another region.
  • the transmitter feedback processor may transmit the feedback information received from the 360 video receiving apparatus to the data encoder so that the data encoder uses a region-differential encoding method.
  • the transmitter feedback processor may transmit the viewport information received from the receiver to the data encoder.
  • the data encoder may perform encoding with higher quality (UHD, etc.) than other regions for regions including the region indicated by the viewport information.
  • the transmission processing unit may perform processing for transmission differently for each region.
  • the transmission processing unit may apply different transmission parameters (modulation order, code rate, etc.) for each region to change the robustness of the data transmitted for each region.
  • the transmitting-side feedback processor may transmit the feedback information received from the 360 video receiving apparatus to the transmission processing unit so that the transmission processing unit may perform regional differential transmission processing.
  • the transmitter feedback processor may transmit the viewport information received from the receiver to the transmitter.
  • the transmission processor may perform transmission processing on regions that include an area indicated by corresponding viewport information so as to have higher robustness than other regions.
  • Inner and outer elements of the 360 video transmission apparatus may be hardware elements implemented in hardware.
  • the inner and outer elements may be changed, omitted, or replaced with other elements.
  • additional elements may be added to the 360 video transmission device.
  • FIG. 3 is a diagram illustrating a 360 degree video receiving apparatus according to another aspect of the present invention.
  • the invention may relate to a 360 video receiving device.
  • the 360 video receiving apparatus according to the present invention may perform operations related to the above-described processing and / or rendering.
  • the 360 video receiving apparatus according to the present invention may include a receiver, a receiver processor, a decapsulation processor, a data decoder, a metadata parser, a (receiver side) feedback processor, a re-projection processor, and / or a renderer as internal / external elements. have.
  • the receiver may receive 360 video data transmitted by the 360 video transmission device according to the present invention. According to the transmitted channel, the receiver may receive 360 video data through a broadcasting network or may receive 360 video data through a broadband.
  • the reception processor may perform processing according to a transmission protocol on the received 360 video data.
  • the reception processing unit may perform a reverse process of the above-described transmission processing unit so as to correspond to that the processing for transmission is performed at the transmission side.
  • the reception processor may transmit the obtained 360 video data to the decapsulation processing unit, and the obtained 360 video data may be transferred to the metadata parser.
  • the 360 video related metadata acquired by the reception processor may be in the form of a signaling table.
  • the decapsulation processor may decapsulate the 360 video data in the form of a file received from the reception processor.
  • the decapsulation processing unit may decapsulate files according to ISOBMFF or the like to obtain 360 video data to 360 video related metadata.
  • the obtained 360 video data may be transmitted to the data decoder, and the obtained 360 video related metadata may be transmitted to the metadata parser.
  • the 360 video-related metadata obtained by the decapsulation processing unit may be in the form of a box or track in the file format.
  • the decapsulation processing unit may receive metadata necessary for decapsulation from the metadata parser if necessary.
  • the data decoder may perform decoding on 360 video data.
  • the data decoder may receive metadata required for decoding from the metadata parser.
  • the 360 video-related metadata obtained in the data decoding process may be delivered to the metadata parser.
  • the metadata parser may parse / decode 360 video related metadata.
  • the metadata parser may transfer the obtained metadata to the data decapsulation processor, the data decoder, the re-projection processor, and / or the renderer.
  • the re-projection processor may perform re-projection on the decoded 360 video data.
  • the re-projection processor may re-project the 360 video data into the 3D space.
  • the 3D space may have a different shape depending on the 3D model used.
  • the re-projection processor may receive metadata required for re-projection from the metadata parser.
  • the re-projection processor may receive information about the type of the 3D model used and the details thereof from the metadata parser.
  • the re-projection processor may re-project only 360 video data corresponding to a specific area in the 3D space into the 3D space by using metadata required for the re-projection.
  • the renderer may render the re-projected 360 video data.
  • the 360 video data may be rendered in 3D space. If the two processes occur at once, the re-projection unit and the renderer may be integrated so that all processes may be performed in the renderer. According to an exemplary embodiment, the renderer may render only the portion that the user is viewing based on the viewpoint information of the user.
  • the user may view a portion of the 360 video rendered through the VR display.
  • the VR display is a device for playing 360 video, which may be included in the 360 video receiving device (tethered) or may be un-tethered as a separate device to the 360 video receiving device.
  • the 360 video receiving apparatus may further include a (receiving side) feedback processing unit and / or a network interface (not shown) as internal / external elements.
  • the receiving feedback processor may obtain and process feedback information from a renderer, a re-projection processor, a data decoder, a decapsulation processor, and / or a VR display.
  • the feedback information may include viewport information, head orientation information, gaze information, and the like.
  • the network interface may receive the feedback information from the receiver feedback processor and transmit the feedback information to the 360 video transmission apparatus.
  • the receiving side feedback processor may transmit the obtained feedback information to the internal elements of the 360 video receiving apparatus to be reflected in a rendering process.
  • the receiving feedback processor may transmit the feedback information to the renderer, the re-projection processor, the data decoder, and / or the decapsulation processor.
  • the renderer may preferentially render the area that the user is viewing by using the feedback information.
  • the decapsulation processing unit, the data decoder, and the like may preferentially decapsulate and decode the region viewed by the user or the region to be viewed.
  • Inner and outer elements of the 360 video receiving apparatus may be hardware elements implemented in hardware. In some embodiments, the inner and outer elements may be changed, omitted, or replaced with other elements. According to an embodiment, additional elements may be added to the 360 video receiving apparatus.
  • Another aspect of the invention may relate to a method of transmitting 360 video and a method of receiving 360 video.
  • the method of transmitting / receiving 360 video according to the present invention may be performed by the above-described 360 video transmitting / receiving device or embodiments of the device, respectively.
  • the above-described embodiments of the 360 video transmission / reception apparatus, the transmission / reception method, and the respective internal / external elements may be combined with each other.
  • the embodiments of the projection processing unit and the embodiments of the data encoder may be combined with each other to produce as many embodiments of the 360 video transmission device as that case. Embodiments thus combined are also included in the scope of the present invention.
  • FIG. 4 is a diagram illustrating a 360-degree video transmission device / 360-degree video receiving apparatus according to another embodiment of the present invention.
  • 360 content may be provided by an architecture as shown (a).
  • the 360 content may be provided in the form of a file or in the form of a segment-based download or streaming service such as a DASH.
  • the 360 content may be referred to as VR content.
  • 360 video data and / or 360 audio data may be acquired (Acquisition).
  • the 360 audio data may go through an audio preprocessing process and an audio encoding process.
  • audio related metadata may be generated, and the encoded audio and audio related metadata may be processed for transmission (file / segment encapsulation).
  • the 360 video data may go through the same process as described above.
  • the stitcher of the 360 video transmission device may perform stitching on the 360 video data (Visual stitching). This process may be omitted in some embodiments and may be performed at the receiving side.
  • the projection processor of the 360 video transmission apparatus may project 360 video data onto a 2D image (Projection and mapping (packing)).
  • This stitching and projection process is shown in detail in (b).
  • stitching and projection may be performed.
  • the stitched 360 video data is projected onto 3D space, and the projected 360 video data may be viewed as being arranged on a 2D image.
  • This process may be expressed herein as projecting 360 video data onto a 2D image.
  • the 3D space may be a sphere or a cube. This 3D space may be the same as the 3D space used for re-projection on the receiving side.
  • the 2D image may be called a projected frame (C).
  • Region-wise packing may optionally be further performed on this 2D image.
  • regions on a 2D image may be mapped onto a packed frame by indicating the location, shape, and size of each region. If regional packing is not performed, the projected frame may be the same as the packed frame. The region will be described later.
  • the projection process and the region-specific packing process may be expressed as each region of 360 video data being projected onto a 2D image. Depending on the design, 360 video data may be converted directly to packed frames without intermediate processing.
  • the projected 360 video data may be image encoded or video encoded. Since the same content may exist for different viewpoints, the same content may be encoded in different bit streams.
  • the encoded 360 video data may be processed in a file format such as ISOBMFF by the encapsulation processing unit described above.
  • the encapsulation processor may process the encoded 360 video data into segments. Segments can be included in separate tracks for DASH-based transmission.
  • 360 video related metadata may be generated as described above.
  • This metadata may be delivered in a video stream or file format.
  • This metadata can also be used for encoding, file format encapsulation, and processing for transfer.
  • the 360 audio / video data is processed for transmission according to the transmission protocol and then transmitted.
  • the above-described 360 video receiving apparatus may receive this through a broadcasting network or a broadband.
  • a VR service platform may correspond to an embodiment of the above-described 360 video receiving apparatus.
  • speakers / headphones, displays, and head / eye tracking components are shown to be performed by an external device or a VR application of the 360 video receiving device.
  • the 360 video receiving apparatus may include all of them.
  • the head / eye tracking component may correspond to the above-described feedback feedback processor.
  • the 360 video receiving apparatus may perform file / segment decapsulation on the 360 audio / video data.
  • the 360 audio data may be provided to the user through a speaker / headphone through an audio decoding process and an audio rendering process.
  • 360 video data may be provided to a user through a display through image decoding, video decoding, and rendering.
  • the display may be a display supporting VR or a general display.
  • the rendering process may specifically be regarded as 360 video data being re-projected onto 3D space, and the re-projected 360 video data is rendered. This may be expressed as 360 video data being rendered in 3D space.
  • the head / eye tracking component may acquire and process user head orientation information, gaze information, viewport information, and the like. This has been described above.
  • FIG. 5 is a diagram illustrating the concept of an airplane craft axis for explaining a 3D space of the present invention.
  • the plane principal axis concept may be used to represent a specific point, position, direction, spacing, area, etc. in 3D space.
  • the plane axis concept may be used to describe the 3D space before the projection or after the re-projection and to perform signaling on the 3D space.
  • a method using an X, Y, Z axis concept or a spherical coordinate system may be used.
  • the plane can rotate freely in three dimensions.
  • the three-dimensional axes are called the pitch axis, the yaw axis, and the roll axis, respectively. In the present specification, these may be reduced to express pitch, yaw, roll to pitch direction, yaw direction, and roll direction.
  • the pitch axis may mean an axis that is a reference for the direction in which the nose of the airplane rotates up and down.
  • the pitch axis may mean an axis extending from the wing of the plane to the wing.
  • the Yaw axis may mean an axis that is a reference of the direction in which the front nose of the plane rotates left and right.
  • the yaw axis can mean an axis running from top to bottom of the plane.
  • the roll axis is an axis extending from the front nose to the tail of the plane in the illustrated plane axis concept, and the rotation in the roll direction may mean a rotation about the roll axis.
  • the 3D space in the present invention can be described through the concept of pitch, yaw, and roll.
  • FIG. 6 is a diagram illustrating projection schemes according to an embodiment of the present invention.
  • the projection processing unit of the 360 video transmission apparatus may project the stitched 360 video data onto the 2D image.
  • Various projection schemes can be used in this process.
  • the projection processing unit may perform projection using a cubic projection scheme (Cubic Projection) scheme.
  • Cubic Projection cubic projection scheme
  • stitched 360 video data may be represented on a spherical face.
  • the projection processor may divide the 360 video data into cubes and project them on a 2D image.
  • 360 video data on a spherical face may correspond to each face of a cube and may be projected onto the 2D image as (a) left or (a) right.
  • the projection processing unit may perform the projection by using a cylindrical projection (Cylindrical Projection) scheme.
  • the projection processor may divide the 360 video data into a cylinder and project it on a 2D image.
  • 360 video data on a spherical surface may be projected on the 2D image as (b) left or (b) right, respectively, corresponding to the side, top and bottom of the cylinder.
  • the projection processing unit may perform projection by using a pyramid projection scheme.
  • the projection processor can view the 360 video data in a pyramid form, and divide each face to project on a 2D image.
  • 360 video data on a spherical face correspond to the front of the pyramid and the four sides of the pyramid (Left top, Left bottom, Right top, Right bottom), respectively, and (c) left or ( c) can be projected as shown on the right.
  • the projection processing unit may perform projection using an isometric square projection scheme, a panoramic projection scheme, or the like in addition to the above-described schemes.
  • the region may mean a region in which the 2D image projected with the 360 video data is divided. These regions need not coincide with the faces on the projected 2D image according to the projection scheme. However, according to an embodiment, regions may be divided so that respective surfaces on the projected 2D image correspond to regions, and region-specific packing may be performed. According to an embodiment, a plurality of faces may correspond to one region or regions may be divided such that one face corresponds to a plurality of regions. In this case, the region may vary depending on the projection scheme. For example, in (a), each side of the cube (top, bottom, front, left, right, back) may be a region, respectively. In (b), the side, top and bottom of the cylinder may each be a region. In (c), the front, left, right, and bottom of the pyramid may be regions, respectively.
  • FIG. 7 is a diagram illustrating a tile according to an embodiment of the present invention.
  • 360 video data projected onto a 2D image or 360 video data performed up to region-specific packing may be divided into one or more tiles.
  • (A) shows a form in which one 2D image is divided into 16 tiles.
  • the 2D image may be the above-described projected frame or packed frame.
  • the data encoder can encode each tile independently.
  • the region-specific packing and tiling may be distinguished.
  • the region-specific packing described above may mean processing the 360 video data projected on the 2D image into regions in order to increase coding efficiency or to adjust resolution.
  • Tiling may mean that the data encoder divides a projected frame or a packed frame into sections called tiles, and independently encodes corresponding tiles.
  • the user does not consume all parts of the 360 video at the same time.
  • Tiling may enable transmitting or consuming only the tiles corresponding to the critical part or a certain part, such as the viewport currently viewed by the user, on the limited bandwidth. Tiling allows for more efficient use of limited bandwidth and reduces the computational load on the receiving side compared to processing all 360 video data at once.
  • Regions and tiles are distinct, so the two regions do not have to be the same. However, in some embodiments, regions and tiles may refer to the same area. According to an exemplary embodiment, region-specific packing may be performed according to tiles so that regions and tiles may be the same. Further, according to an embodiment, when each side and region according to the projection scheme are the same, each side, region and tile according to the projection scheme may refer to the same region. Depending on the context, a region may be called a VR region, a tile region.
  • Region of Interest may refer to areas of interest of users, which are suggested by 360 content providers.
  • a 360 content provider produces a 360 video
  • a certain area may be considered to be of interest to users, and the 360 content provider may produce a 360 video in consideration of this.
  • the ROI may correspond to an area where important content is played on the content of the 360 video.
  • the receiving feedback processor may extract and collect the viewport information and transmit it to the transmitting feedback processor.
  • viewport information can be delivered using both network interfaces.
  • the viewport t6010 is displayed in the 2D image of (a) shown.
  • the viewport may span nine tiles on the 2D image.
  • the 360 video transmission device may further include a tiling system.
  • the tiling system may be located after the data encoder ((b)), may be included in the above-described data encoder or transmission processing unit, or may be included in the 360 video transmission apparatus as a separate internal / external element. .
  • the tiling system may receive viewport information from the feedback feedback processor.
  • the tiling system may select and transmit only the tiles including the viewport area. In the 2D image shown in (a), only nine tiles including the viewport area t6010 among the total 16 tiles may be transmitted.
  • the tiling system may transmit tiles in a unicast manner through broadband. This is because the viewport area is different for each user.
  • the transmitter-side feedback processor may transmit the viewport information to the data encoder.
  • the data encoder may perform encoding on tiles including the viewport area at higher quality than other tiles.
  • the feedback feedback processor may transmit the viewport information to the metadata processor.
  • the metadata processor may transmit metadata related to the viewport area to each internal element of the 360 video transmission apparatus or include the metadata related to 360 video.
  • Embodiments related to the viewport area described above may be applied in a similar manner to specific areas other than the viewport area.
  • the above-described gaze analysis may be used to determine areas of interest, ROI areas, and areas that are first played when the user encounters 360 video through a VR display (initial viewpoint).
  • the processes may be performed.
  • the transmission processor may perform processing for transmission differently for each tile.
  • the transmission processor may apply different transmission parameters (modulation order, code rate, etc.) for each tile to vary the robustness of the data transmitted for each tile.
  • the transmitting-side feedback processor may transmit the feedback information received from the 360 video receiving apparatus to the transmission processor so that the transmission processor performs the differential transmission process for each tile.
  • the transmitter feedback processor may transmit the viewport information received from the receiver to the transmitter.
  • the transmission processor may perform transmission processing on tiles including the corresponding viewport area to have higher robustness than other tiles.
  • FIG. 8 is a diagram illustrating metadata related to 360 degree video according to an embodiment of the present invention.
  • the above-described 360 video related metadata may include various metadata about 360 video.
  • 360 video related metadata may be referred to as 360 video related signaling information.
  • the 360 video related metadata may be transmitted in a separate signaling table, included in a DASH MPD, transmitted, or included in a box format in a file format such as ISOBMFF.
  • the file, the fragment, the track, the sample entry, the sample, and the like may be included in various levels to include metadata about the data of the corresponding level.
  • some of the metadata to be described later may be configured as a signaling table, and the other may be included in a box or track in the file format.
  • the 360 video related metadata may include basic metadata related to a projection scheme, stereoscopic related metadata, and initial view / initial viewpoint related metadata. Data, ROI related metadata, Field of View (FOV) related metadata, and / or cropped region related metadata. According to an embodiment, the 360 video related metadata may further include additional metadata in addition to the above.
  • Embodiments of 360 video related metadata according to the present invention include the above-described basic metadata, stereoscopic related metadata, initial viewpoint related metadata, ROI related metadata, FOV related metadata, cropped region related metadata and / or It may be in the form including at least one or more of the metadata that can be added later.
  • Embodiments of the 360 video related metadata according to the present invention may be variously configured according to the number of detailed metadata cases included in the 360 video. According to an embodiment, the 360 video related metadata may further include additional information in addition to the above.
  • the basic metadata may include 3D model related information and projection scheme related information.
  • Basic metadata may include a vr_geometry field, a projection_scheme field, and the like.
  • the basic metadata may further include additional information.
  • the vr_geometry field may indicate the type of 3D model supported by the corresponding 360 video data.
  • the 3D space may have a shape according to the 3D model indicated by the vr_geometry field.
  • the 3D model used during rendering may be different from the 3D model used for re-projection indicated by the vr_geometry field.
  • the basic metadata may further include a field indicating the 3D model used at the time of rendering. If the corresponding field has a value of 0, 1, 2, and 3, the 3D space may follow 3D models of sphere, cube, cylinder, and pyramid, respectively.
  • the 360 video related metadata may further include specific information about the 3D model indicated by the corresponding field.
  • the specific information about the 3D model may mean, for example, radius information of a sphere and height information of a cylinder. This field may be omitted.
  • the projection_scheme field may indicate a projection scheme used when the corresponding 360 video data is projected on the 2D image. If the field has a value of 0, 1, 2, 3, 4, 5, respectively, an isometric square projection scheme, a cubic projection scheme, a cylindrical projection scheme, and a tile-based projection scheme , Pyramid projection scheme, panoramic projection scheme may have been used. If the corresponding field has a value of 6, 360 video data may be directly projected onto the 2D image without stitching. If the field has the remaining values, it can be reserved for future use.
  • the 360 video related metadata may further include specific information about a region generated by the projection scheme specified by the corresponding field.
  • the specific information about the region may mean, for example, whether the region is rotated or radius information of the top region of the cylinder.
  • Stereoscopic related metadata may include information about 3D related attributes of 360 video data.
  • Stereoscopic related metadata may include an is_stereoscopic field and / or a stereo_mode field.
  • stereoscopic related metadata may further include additional information.
  • the is_stereoscopic field may indicate whether the corresponding 360 video data supports 3D. If the field is 1, 3D support is available. If the field is 0, 3D support is not supported. This field may be omitted.
  • the stereo_mode field may indicate a 3D layout supported by the corresponding 360 video. Only this field may indicate whether the corresponding 360 video supports 3D. In this case, the above-described is_stereoscopic field may be omitted. If this field value is 0, the 360 video may be in mono mode. That is, the projected 2D image may include only one mono view. In this case, the 360 video may not support 3D.
  • the corresponding 360 video may be based on left-right layout and top-bottom layout, respectively.
  • the left and right layouts and the top and bottom layouts may be referred to as side-by-side format and top-bottom format, respectively.
  • 2D images projected from the left image and the right image may be positioned left and right on the image frame, respectively.
  • the 2D images projected from the left image and the right image may be positioned up and down on the image frame, respectively. If the field has the remaining values, it can be reserved for future use.
  • the initial view-related metadata may include information about a view point (initial view point) when the user first plays the 360 video.
  • the initial view related metadata may include an initial_view_yaw_degree field, an initial_view_pitch_degree field, and / or an initial_view_roll_degree field.
  • the initial view-related metadata may further include additional information.
  • the initial_view_yaw_degree field, the initial_view_pitch_degree field, and the initial_view_roll_degree field may indicate an initial time point when playing the corresponding 360 video.
  • the center point of the viewport that is first seen upon playback can be represented by these three fields.
  • Each field may indicate a position (sign) and a degree (angle) at which its center point is rotated about the yaw, pitch, and roll axes.
  • the viewport that is displayed during the first playback may be determined according to the FOV. Through the FOV, the width and height of the initial viewport may be determined based on the indicated initial view. That is, using these three fields and the FOV information, the 360 video receiving apparatus may provide a user with a predetermined area of 360 video as an initial viewport.
  • the initial view point indicated by the initial view-related metadata may be changed for each scene. That is, the scene of the 360 video is changed according to the temporal flow of the 360 content.
  • the initial view point or the initial viewport that the user first sees may change.
  • the metadata regarding the initial view may indicate the initial view for each scene.
  • the initial view-related metadata may further include a scene identifier for identifying a scene to which the initial view is applied.
  • the initial view-related metadata may further include scene-specific FOV information indicating the FOV corresponding to the scene.
  • the ROI related metadata may include information related to the above-described ROI.
  • the ROI related metadata may include a 2d_roi_range_flag field and / or a 3d_roi_range_flag field.
  • Each of the two fields may indicate whether the ROI-related metadata includes fields representing the ROI based on the 2D image or fields representing the ROI based on the 3D space.
  • the ROI related metadata may further include additional information such as differential encoding information according to ROI and differential transmission processing information according to ROI.
  • ROI related metadata may include min_top_left_x field, max_top_left_x field, min_top_left_y field, max_top_left_y field, min_width field, max_width field, min_height field, max_height field, min_x Field, max_x field, min_y field and / or max_y field.
  • the min_top_left_x field, max_top_left_x field, min_top_left_y field, and max_top_left_y field may indicate minimum / maximum values of coordinates of the upper left end of the ROI. These fields may indicate the minimum x coordinate, the maximum x coordinate, the minimum y coordinate, and the maximum y coordinate of the upper left end in order.
  • the min_width field, the max_width field, the min_height field, and the max_height field may indicate minimum / maximum values of the width and height of the ROI. These fields may indicate the minimum value of the horizontal size, the maximum value of the horizontal size, the minimum value of the vertical size, and the maximum value of the vertical size in order.
  • the min_x field, max_x field, min_y field, and max_y field may indicate minimum / maximum values of coordinates in the ROI. These fields may in turn indicate the minimum x coordinate, maximum x coordinate, minimum y coordinate, and maximum y coordinate of coordinates in the ROI. These fields may be omitted.
  • the ROI related metadata may include a min_yaw field, max_yaw field, min_pitch field, max_pitch field, min_roll field, max_roll field, min_field_of_view field, and / or It may include a max_field_of_view field.
  • the min_yaw field, max_yaw field, min_pitch field, max_pitch field, min_roll field, and max_roll field may indicate the area occupied by the ROI in 3D space as the minimum / maximum values of yaw, pitch, and roll. These fields are in turn the minimum value of yaw axis rotation, maximum yaw axis rotation, minimum pitch axis rotation, pitch axis rotation, minimum roll axis rotation, roll axis rotation It can represent the maximum value of the whole quantity.
  • the min_field_of_view field and the max_field_of_view field may indicate a minimum / maximum value of the FOV of the corresponding 360 video data.
  • the FOV may refer to a field of view displayed at a time when the 360 video is played.
  • the min_field_of_view field and the max_field_of_view field may represent minimum and maximum values of the FOV, respectively. These fields may be omitted. These fields may be included in FOV related metadata to be described later.
  • the FOV related metadata may include information related to the above-described FOV.
  • the FOV related metadata may include a content_fov_flag field and / or a content_fov field.
  • the FOV related metadata may further include additional information such as the minimum / maximum value related information of the above-described FOV.
  • the content_fov_flag field may indicate whether information about an FOV intended for production is present for the corresponding 360 video. If this field value is 1, there may be a content_fov field.
  • the content_fov field may indicate information about an FOV intended for production of the corresponding 360 video.
  • an area displayed at one time from among 360 images may be determined based on a vertical or horizontal FOV of the corresponding 360 video receiving apparatus.
  • an area of 360 video displayed to the user at one time may be determined by reflecting the FOV information of the field.
  • the cropped region related metadata may include information about an region including actual 360 video data on an image frame.
  • the image frame may include an active 360 video projected active video area and an area that is not.
  • the active video region may be referred to as a cropped region or a default display region.
  • This active video area is an area shown as 360 video on the actual VR display, and the 360 video receiving apparatus or the VR display can process / display only the active video area. For example, if the aspect ratio of an image frame is 4: 3, only the regions except for the upper part and the lower part of the image frame may include 360 video data, which may be called an active video area. .
  • the cropped region related metadata may include an is_cropped_region field, a cr_region_left_top_x field, a cr_region_left_top_y field, a cr_region_width field, and / or a cr_region_height field. According to an embodiment, the cropped region related metadata may further include additional information.
  • the is_cropped_region field may be a flag indicating whether an entire region of an image frame is used by the 360 video receiving apparatus or the VR display. That is, this field may indicate whether the entire image frame is an active video area. If only a part of the image frame is an active video area, the following four fields may be added.
  • the cr_region_left_top_x field, cr_region_left_top_y field, cr_region_width field, and cr_region_height field may indicate an active video region on an image frame. These fields may indicate the x coordinate of the upper left of the active video area, the y coordinate of the upper left of the active video area, the width of the active video area, and the height of the active video area, respectively. The width and height may be expressed in pixels.
  • the 360-degree video-related signaling information or metadata may be included in an arbitrarily defined signaling table, may be included in a box format in a file format such as ISOBMFF or Common File Format, or transmitted in a DASH MPD. have.
  • 360 degree media data may be transmitted in a file format or a DASH segment.
  • FIG. 9 is a diagram showing the structure of a media file according to an embodiment of the present invention.
  • FIG. 10 illustrates a hierarchical structure of boxes in an ISOBMFF according to an embodiment of the present invention.
  • the media file may have a file format based on ISO BMFF (ISO base media file format).
  • the media file according to the present invention may include at least one box.
  • the box may be a data block or an object including media data or metadata related to the media data.
  • the boxes may form a hierarchical structure with each other, such that the data may be classified so that the media file may be in a form suitable for storage and / or transmission of a large amount of media data.
  • the media file may have an easy structure for accessing the media information, such as a user moving to a specific point of the media content.
  • the media file according to the present invention may include an ftyp box, a moov box and / or an mdat box.
  • An ftyp box can provide file type or compatibility related information for a corresponding media file.
  • the ftyp box may include configuration version information about media data of a corresponding media file.
  • the decoder can identify the media file by referring to the ftyp box.
  • the moov box may be a box including metadata about media data of a corresponding media file.
  • the moov box can act as a container for all metadata.
  • the moov box may be a box of the highest layer among metadata related boxes. According to an embodiment, only one moov box may exist in a media file.
  • the mdat box may be a box containing actual media data of the media file.
  • Media data may include audio samples and / or video samples, where the mdat box may serve as a container for storing these media samples.
  • the above-described moov box may further include a mvhd box, a trak box and / or an mvex box as a lower box.
  • the mvhd box may include media presentation related information of media data included in the media file. That is, the mvhd box may include information such as media generation time, change time, time specification, duration, etc. of the media presentation.
  • the trak box can provide information related to the track of the media data.
  • the trak box may include information such as stream related information, presentation related information, and access related information for an audio track or a video track. There may be a plurality of trak boxes according to the number of tracks.
  • the trak box may further include a tkhd box (track header box) as a lower box.
  • the tkhd box may include information about the track indicated by the trak box.
  • the tkhd box may include information such as a creation time, a change time, and a track identifier of the corresponding track.
  • the mvex box (movie extend box) may indicate that the media file may have a moof box to be described later. To know all the media samples of a particular track, moof boxes may have to be scanned.
  • the media file according to the present invention may be divided into a plurality of fragments according to an embodiment (t18010). Through this, the media file may be divided and stored or transmitted.
  • the media data (mdat box) of the media file may be divided into a plurality of fragments, and each fragment may include a mdat box and a moof box. According to an embodiment, information of the ftyp box and / or the moov box may be needed to utilize the fragments.
  • the moof box may provide metadata about media data of the fragment.
  • the moof box may be a box of the highest layer among metadata-related boxes of the fragment.
  • the mdat box may contain the actual media data as described above.
  • This mdat box may include media samples of media data corresponding to each corresponding fragment.
  • the above-described moof box may further include a mfhd box and / or a traf box as a lower box.
  • the mfhd box may include information related to an association between a plurality of fragmented fragments.
  • the mfhd box may include a sequence number to indicate how many times the media data of the corresponding fragment is divided. In addition, it may be confirmed whether there is no missing data divided using the mfhd box.
  • the traf box may include information about a corresponding track fragment.
  • the traf box may provide metadata about the divided track fragments included in the fragment.
  • the traf box may provide metadata so that media samples in the track fragment can be decoded / played back. There may be a plurality of traf boxes according to the number of track fragments.
  • the above-described traf box may further include a tfhd box and / or a trun box as a lower box.
  • the tfhd box may include header information of the corresponding track fragment.
  • the tfhd box may provide information such as a basic sample size, a duration, an offset, an identifier, and the like for media samples of the track fragment indicated by the traf box described above.
  • the trun box may include corresponding track fragment related information.
  • the trun box may include information such as duration, size, and playback time of each media sample.
  • the aforementioned media file or fragments of the media file may be processed into segments and transmitted.
  • the segment may have an initialization segment and / or a media segment.
  • the file of the illustrated embodiment t18020 may be a file including information related to initialization of the media decoder except media data. This file may correspond to the initialization segment described above, for example.
  • the initialization segment may include the ftyp box and / or moov box described above.
  • the file of the illustrated embodiment t18030 may be a file including the above-described fragment. This file may correspond to the media segment described above, for example.
  • the media segment may include the moof box and / or mdat box described above.
  • the media segment may further include a styp box and / or a sidx box.
  • the styp box may provide information for identifying the media data of the fragmented fragment.
  • the styp box may play the same role as the above-described ftyp box for the divided fragment.
  • the styp box may have the same format as the ftyp box.
  • the sidx box may provide information indicating an index for the divided fragment. Through this, it is possible to indicate how many fragments are the corresponding fragments.
  • the ssix box may be further included.
  • the ssix box (sub-segment index box) may provide information indicating an index of the sub-segment when the segment is further divided into sub-segments.
  • the boxes in the media file may include more extended information based on a box to full box form such as the illustrated embodiment t18050.
  • the size field and the largesize field may indicate the length of the corresponding box in bytes.
  • the version field may indicate the version of the box format.
  • the type field may indicate the type or identifier of the corresponding box.
  • the flags field may indicate a flag related to the box.
  • FIG. 11 illustrates an overall operation of a DASH-based adaptive streaming model according to an embodiment of the present invention.
  • the DASH-based adaptive streaming model according to the illustrated embodiment t50010 describes the operation between the HTTP server and the DASH client.
  • DASH Dynamic Adaptive Streaming over HTTP
  • AV content can be provided without interruption.
  • the DASH client can obtain the MPD.
  • MPD may be delivered from a service provider such as an HTTP server.
  • the DASH client can request the segments from the server using the access information to the segment described in the MPD. In this case, the request may be performed by reflecting the network state.
  • the DASH client may process it in the media engine and display the segment on the screen.
  • the DASH client may request and acquire a required segment by adaptively reflecting a playing time and / or a network condition (Adaptive Streaming). This allows the content to be played back seamlessly.
  • Adaptive Streaming a network condition
  • MPD Media Presentation Description
  • the DASH Client Controller may generate a command for requesting the MPD and / or the segment reflecting the network situation.
  • the controller can control the obtained information to be used in an internal block of the media engine or the like.
  • the MPD Parser may parse the acquired MPD in real time. This allows the DASH client controller to generate a command to obtain the required segment.
  • the segment parser may parse the acquired segment in real time. Internal blocks such as the media engine may perform a specific operation according to the information included in the segment.
  • the HTTP client may request the HTTP server for necessary MPDs and / or segments.
  • the HTTP client may also pass MPD and / or segments obtained from the server to the MPD parser or segment parser.
  • the media engine may display content on the screen using media data included in the segment. At this time, the information of the MPD may be utilized.
  • the DASH data model may have a high key structure t50020.
  • Media presentation can be described by the MPD.
  • MPD may describe a temporal sequence of a plurality of periods that make up a media presentation.
  • the duration may represent one section of media content.
  • the data may be included in the adaptation sets.
  • the adaptation set may be a collection of a plurality of media content components that may be exchanged with each other.
  • the adaptation may comprise a set of representations.
  • the representation may correspond to a media content component.
  • content can be divided in time into a plurality of segments. This may be for proper accessibility and delivery.
  • the URL of each segment may be provided to access each segment.
  • the MPD may provide information related to the media presentation, and the pyorium element, the adaptation set element, and the presentation element may describe the corresponding pyoride, the adaptation set, and the presentation, respectively.
  • Representation may be divided into sub-representations, the sub-representation element may describe the sub-representation.
  • Common properties / elements can be defined here, which can be applied (included) to adaptation sets, representations, subrepresentations, and so on.
  • common properties / elements there may be an essential property and / or a supplemental property.
  • the essential property may be information including elements that are considered essential in processing the media presentation related data.
  • the supplemental property may be information including elements that may be used in processing the media presentation related data.
  • signaling information to be described later may be defined and delivered in essential properties and / or supplemental properties when delivered through MPD.
  • the DASH based descriptor may include an @schemeIdUri field, an @value field, and / or an @id field.
  • the @schemeIdUri field may provide a URI for identifying the scheme of the descriptor.
  • the @value field may have values whose meaning is defined by a scheme indicated by the @schemeIdUri field. That is, the @value field may have values of descriptor elements according to the scheme, and these may be called parameters. These can be distinguished from each other by ','. @id may represent an identifier of the descriptor. In the case of having the same identifier, the same scheme ID, value, and parameter may be included.
  • Each embodiment of the 360 video related metadata may be rewritten in the form of a DASH based descriptor.
  • 360 video related metadata may be described in the form of a DASH descriptor, and may be included in an MPD and transmitted to a receiver.
  • These descriptors may be passed in the form of the aforementioned essential property descriptors and / or supplemental property descriptors.
  • These descriptors can be included in the MPD's adaptation set, representation, subrepresentation, and so on.
  • FIG. 12 is a diagram illustrating a 360 degree video processing method according to an embodiment of the present invention.
  • a 360-degree video processing method includes obtaining a 360-degree video (S120010), stitching the acquired video and mapping the same into a 2D frame (S120020), and dividing and encoding the 2D frame into separate regions ( S120030), storing data for each individual area and configuring the transmission format (S120040), selecting the formatted data according to the user's viewpoint (S120050), transmitting the selected data (S120060), and the transmitted data.
  • Decoding S120070
  • projecting the decoded data and rendering (S120080).
  • Acquiring a 360 degree video may be a step of acquiring the video in all directions (360 degrees) through one or more cameras.
  • acquiring 360 degree video (S120010) may be acquiring video within 360 degrees through one or more cameras.
  • the step (S120010) of acquiring the 360 degree video may be a step of acquiring the 360 degree video by generating data corresponding to the 360 degree video, instead of acquiring the 360 degree video using an actual camera.
  • the stitching process may stitch the 360-degree video into one 3D geometry through correction operations such as removing overlapped regions.
  • the process of mapping the stitched video into the 2D frame includes the steps of projecting the stitched video according to the projection scheme and mapping at least one two-dimensional surface generated through the projection into the 2D frame. It may include.
  • the step S120030 of dividing the 2D frame into individual regions may include dividing the 2D frame sequence generated through the 2D frame mapping process into individual regions and encoding the divided individual regions.
  • the individual regions correspond to the concept corresponding to the aforementioned regions.
  • a tile may be used in the same manner as a region, and thus, an individual region may be identical to a tile.
  • the process of dividing the 2D frame sequence into individual regions may be a process of dividing the 2D frame sequence into independently usable regions using an HEVC tile.
  • the storing of data for each individual area and configuring the transmission format may be a step of configuring the data encoded in the individual region into a storage format and / or a transmission format that can be accessed and used for each individual region.
  • Data generated through the above steps may be transmitted to the receiving side (S120060).
  • the transmitted data may be consumed at the receiving side, i.e., the receiving device, through decoding (S120070), projecting the decoded data, and rendering (S120080).
  • the receiving device may detect a user's viewpoint and perform decoding (S120070), projection, and rendering (S120080) on data corresponding to the user's viewpoint.
  • the decoding, projection, and rendering processes for data corresponding to the user's viewpoint may be repeatedly performed over time.
  • the projection on the receiving side may mean a process of restoring the data mapped to the 2D frame according to the projection scheme. That is, the projection at the receiving side may be referred to as re-projection.
  • the 360-degree data consumption process at the receiving side may be performed through an interactive operation between the receiving side and the transmitting side. That is, the 360 degree data consumption process may include a process of transmitting, by the receiving device, user viewpoint information detected by the receiving device to the transmitting side.
  • the transmitting side may select data corresponding to the viewpoint of the user using the user viewpoint information transmitted by the receiving device (S120050), and transmit the selected data to the receiving side (S120060).
  • the transmitted data may be consumed at the receiving end through the decoding step (S120070), the projecting the decoded data, and the rendering step (S120080).
  • the 360-degree data consumption process on the receiving side may be performed through a series of operations in the receiving side. That is, the 360-degree data consumption process may include a process of selecting, by the receiving device, data corresponding to the viewpoint of the user from among the received data using the user viewpoint information detected by the receiving device (S120050). The selected data may be consumed at the receiving end through decoding (S120070), projecting the decoded data, and rendering (S120080).
  • the user viewpoint information at the receiving side may be parameter information about a 3D model for rendering.
  • the data format configuration method described below may be a specific embodiment of the step (S120040) of storing data for each region and configuring the transmission format among the steps included in the 360-degree video processing method.
  • 360 degree video may be mapped and stored and transmitted in a 2D video frame.
  • video processing based on a user's viewpoint may be implemented based on a tile.
  • the entire tiles constituting one frame sequence may be stored in one track in the file, or may be stored in one track for each tile, or tile regions containing one or more tiles.
  • a tile region or a tile set may be stored as one track.
  • the tile region forms a rectangular shaped area composed of one or more tiles
  • the tile set forms a non-square rectangular area composed of one or more tiles. It may mean a set of tiles.
  • a set of tiles, such as a tile region or tile set may be referred to as multiple regions to distinguish them from individual regions.
  • one full picture in one file There may be multiple tracks for a full picture sequence. For such tracks, one of the tracks may be selectively played or streamed.
  • 360-degree video is stored in the form of multiple tracks in this manner, only tracks including the user viewpoint area can be selectively played or streamed, thereby saving resources for playing the remaining unselected tracks. Can be.
  • the altermate_group field of the track header box ('tkhd') of ISO BMFF may be used for selective playback / streaming of individual regions.
  • FIG. 13 illustrates a track header box according to an embodiment of the present invention.
  • the syntax of the track header box (tkhd) of ISO BMFF is shown.
  • version, flags, creation_time, modification_time, track_Id, layer, alternate_group, volume, matrix, width, and height are shown as specific semantics.
  • version describes the version information of the box in integer format.
  • flags can be a 24-bit integer defined by the following values:
  • creation_time is an integer that declares the creation time of the track. (In seconds since midnight (UTC time) January 1, 1904)
  • modification_time is an integer that declares the most recent time the track was modified. (In seconds since midnight (UTC time) January 1, 1904)
  • track_ID is an integer that uniquely identifies a track during the entire life-time of the presentation.
  • the track ID cannot be reused and cannot be zero.
  • duration is an integer representing the duration of the track. (Time scale displayed in the Movie Header Box) The value of this field equals the total duration of all track edits. If there is no edit list, the duration is equal to the sum of the sample durations and converted to the time scale displayed in the Movie Header Box. If the duration of this track cannot be determined, the duration is set to all ones (32 bit maxint).
  • Layers describe the video track's forward and backward order. Lower numbered tracks are closer to the viewer. 0 is normal value and -1 is located before track 0.
  • alternate_group is an integer that describes a group or set of tracks. If this field is 0, there is no information about the relationship with other tracks. If this field is not 0, it has the same value as other tracks including alternate data, and has a different value from tracks belonging to other groups. Only one track in the Alternate group must be played or streamed at any time and must be distinguished from other tracks in the group through attributes such as bit rate, codec, language, and packet size. A group may contain only one member.
  • the volume is fixed at 8.8, which describes the relative audio volume of the track.
  • the full volume is 1.0 and is a normal volume. This value is not related to the visual track. Tracks can be combined according to volume and configured using the full Movie Header Box volume setting. Or more complex audio compositions (eg MPEG-4 BIFS) may be used.
  • the matrix provides a transformation matrix for the video. (u, v, w) is limited to (0, 0, 1), hex (0, 0, 0x40000000) here.
  • width and height describe the track's visual presentation size in fixed-point 16.16. This need not be the same as the pixel dimensions of the image recorded in the sample description. All images in the sequence are scaled to this size before overall conversion to the track represented by the matrix. The pixel dimensions of the image are default values.
  • the altermate_group field may be used for selective playback / streaming of individual regions. That is, when one video frame is divided into individual regions and the divided individual regions are stored in tracks, alternate_group of tkhd corresponding to each track may be configured to have the same value, not zero. In other words, alternate_group of tkhd corresponding to tracks capable of selective playback or streaming for individual regions may be configured to have the same value other than zero. By doing so, it is possible to group tracks capable of selective playback or streaming for individual regions, and indicate that grouped tracks are selectively available. As such, alternate_group having a non-zero value may be referred to as grouping information for selective playback (or streaming).
  • FIG. 14 illustrates a track selection box according to an embodiment of the present invention.
  • the track selection box (tsel) illustrated in the drawing may represent a group that can be mutually switched among tracks grouped by alternate_groups of tkhd, that is, a switching group.
  • switch_group and attribute_list are shown at the top and bottom of the figure, respectively.
  • the switch_group may provide grouping information on tracks that can be switched to each other during playback / streaming. That is, the switch_group may provide grouping information on tracks that can be switched to each other in a similar manner to that of the aforementioned 'tkhd' alternative_group grouping tracks capable of selective playback or streaming.
  • a switch group of 'tsel' included in a track box corresponding to mutually switchable tracks may have the same switch_group value other than zero.
  • the switch group of 'tsel' having the same switch_group value other than 0 may indicate that the tracks are mutually switchable tracks.
  • the possibility of mutual switching during playback / streaming should be premised on the possibility of selective playback / streaming.
  • the switch group having a non-zero value may be referred to as grouping information for inter track switching.
  • attribute_list is a field for indicating a description or differentiation of a relationship between tracks belonging to a switch group or an alternate group. The name and description of an attribute are shown. As described above, the attribute_list according to an embodiment of the present invention may further include an attribute called 'tile'. The name of the 'tile' attribute may be 'tiling', and the 'tile' attribute may indicate a relationship between tiles included in some regions or tiles of one full picture. The tile attribute may be used repeatedly with other attributes described in attribute_list.
  • the 'tile' value of the attribute_list of the tsel box may represent that the aforementioned alternate grouping is due to region division of the video frame.
  • the above described method relates to selective regeneration and switching for individual regions, and the selective regeneration and switching may be limited to one region.
  • a method of allowing a plurality of regions (one or more regions) generated from the same source to be selected together without switching such that they can be switched to a plurality of other regions (one or more regions) during playback is described.
  • a track_group_type of 'ttgr' may be defined to simultaneously select a plurality of regions and define a track group that can switch from a plurality of regions to a plurality of regions during playback or streaming.
  • ttgr indicates that the track belongs to a tile track group. Tracks with the same value of track_group_id in the group type box whose Track_group_type is 'ttgr' originate from the same complete picture sequence (full picture sequence), and each track is a tile region or tile set of the complete picture sequence. ). Subsets in this group can always be played or streamed, and the subsets can switch between each other during playback or streaming.
  • FIG. 15 illustrates a track group box according to an embodiment of the present invention.
  • the track group box (trgr) can select and play (or stream) a plurality of areas at the same time using a track_group_type called tile track group (ttgr). Can be directed. That is, if the track box includes a track group box (trgr), the track_group_type value of the track group box is 'ttgr', and the track_group_id has a value other than 0, it may mean that the corresponding tracks belong to the tile track group.
  • One or more tracks belonging to the tile track group may be selected for playback or streaming, and switching between one or multiple tracks of playback or streaming may be possible.
  • one or more tracks belonging to a tile track group may be selected for playback / streaming.
  • whether to switch to another track during playback / streaming may be signaled through a new track_group_type.
  • the new track_group_type may be a track_group_type called tile track switch group (tsgr).
  • tsgr may represent a group of switchable tile tracks during playback / streaming of a track comprising multiple regions (one or more regions).
  • the switchable tile tracks may be tracks including a plurality of regions (one or more regions).
  • a constraint may be provided that tracks belonging to the same switch group must belong to the same alternate group.
  • tracks having the same track_group_id of tsgr as a value other than 0 must have the same track_group_id of ttgr as a non-zero value.
  • whether or not a coding dependency exists between tiles included in one picture may vary according to a picture prediction method.
  • coding dependencies between tiles included in one picture are referred to because only samples belonging to the tile are referred to. Does not exist.
  • encoding is performed using an HEVC tile, it is included in one picture since only the samples belonging to the tile are referred to according to intra prediction.
  • intra prediction There is no coding dependency between the tiled tiles.
  • inter prediction coding dependencies between tiles may be referred to because samples belonging to tiles other than the tile may be referred to. May exist.
  • coding dependencies between tiles may be signaled through a sample group description of TileRegionGroup Entry (trif) or TileSetGroupEntry (tsif).
  • the track may include not only a unit tile (one tile) but also a tile region or a tile set, and the tile regions or tile sets may include the tile.
  • a tile region or tile set included in the track has coding dependencies with the tile region or tile set included in another track. It may be.
  • coding between a tile region and a tile region, between a tile set and a tile set, or between a tile region and a tile set If there is a coding dependency, it may be said that there is a coding dependency between the tracks.
  • FIG. 16 illustrates a track reference box according to an embodiment of the present invention.
  • the track reference box (tref) illustrated in the drawing may be a reference type and may use a reference type called tile dependency (tdep).
  • tdep indicates that the tile region or tile set included in the track has coding dependencies with the tile region or tile set included in another track. This tdep can be coded between a tile region and a tile region, between a tile set and a tile set, or between a tile region and a tile set. Reference relationships between tracks according to dependencies may be signaled.
  • a tref box having a 'tdep' reference_type may provide track information referenced through track_IDs of the corresponding tdep. Accordingly, the file reader may recognize that the tile track including the tref box having the 'tdep' reference_type should play the video with reference to the track indicated through the track_IDs of the 'tdep'.
  • the above-described method is also applicable to DASH.
  • 'tdep' may be given as a Representation @ associationType value.
  • the relationship of Representations having coding dependency may be signaled as well as the relationship between tracks having coding dependency, and reference Representation may be indicated by assigning @id of Representation to be referred to through @associationId.
  • associationId may indicate that Segments of Representation indicated through associationId should also be requested.
  • Representation @ dependencyId may be used instead of Representation @ associationId.
  • FIG 17 illustrates a full picture sequence according to an embodiment of the present invention.
  • the full picture sequence consists of four tiles, and the tile region is also four. That is, each tile region consists of one tile.
  • tile region 1 includes tile 1
  • tile region 2 includes tile 2
  • tile region 3 includes tile 3
  • tile region 4 includes tile 4.
  • the configuration of the full picture sequence according to the present embodiment can be easily understood.
  • tile region 1 has a coding dependency on tile region 2.
  • the relationship between coding dependencies is represented by arrows in the figure.
  • 18 and 19 illustrate the structure of an ISO BMFF file for an embodiment in which a 360 degree video is composed of four tile tracks and one non-tile track and no extractor is used.
  • FIG. 18 shows an embodiment using the tkhd box and tsel box described above
  • FIG. 19 shows an embodiment using the ttgr box and tsgr box described above.
  • the non-tile tracks h180010 and h190010 may be included in a full picture sequence so that a file parser may deliver a bitstream compatible with the HEVC stream to the HECV decoder.
  • the track uses 'hvb1' or 'heb1' for sample description.
  • parameter set information such as VPS, SPS, and PPS is included in the HEVC Configuration Box ('hvcC'), and 'heb1'.
  • the parameter set information may be included in the 'hvcC' or in the 'mdat' box in the form of a NAL unit.
  • the VCL NAL unit corresponding to this track may not exist in the 'mdat' box, in which case the size of the individual sample may be recorded as zero.
  • Tile tracks can be referenced by including 'sabt' in the Track Reference Box, so that the VCL NAL units can be arranged in the order of each sample and the reference order of 'sabt' to form a full picture sequence stream.
  • the tile tracks h180020 and h190020 describe VCL NAL units corresponding to each tile region present in the 'mdat' box as shown as a VCL NAL unit corresponding to a tile region or a track for sample data.
  • 'Hvt1' can be used for sample description, and non-tile track can be referred to by including 'tbas' in the Track Reference Box.
  • streams corresponding to individual tiles can be constructed.
  • the second tile tracks h180022 and h190022 have a reference relationship with respect to the first tile track due to coding dependencies between tile regions, including 'tdep' described above. . 'trif' in 'sgpd' describes individual tile region information.
  • the values of alternate_group included in the tkhd box are all 1. Tracks containing alternate_group having the same value other than 0 indicate that they can be selectively played or streamed. In addition, in an embodiment using a tkhd box and a tsel box, the value of switch_group included in the tsel box is all 1. Tracks containing switch_group with the same value other than 0 indicate that switching is possible during playback or streaming.
  • the attribute_list included in the tsel box is set to tile to indicate that the corresponding track is part of a tile or a full picture.
  • all of the values of track_group_id included in the ttgr box are 1. Tracks containing track_group_id with the same value other than 0 indicate that they can be selectively played or streamed. In addition, in an embodiment using a ttgr box and a tsgr box, the values of track_group_id included in the tsgr box are all 1. Tracks including track_group_id having the same value other than 0 indicate that switching is possible during playback or streaming.
  • 20 and 21 are diagrams illustrating the structure of an ISO BMFF file for an embodiment in which a 360 degree video is composed of four tile tracks and one non-tile track and an extractor is used.
  • FIG. 20 shows an embodiment using the tkhd box and tsel box described above
  • FIG. 21 shows an embodiment using the ttgr box and tsgr box described above.
  • non-tile track the tile track, the alternate_group, the switch_group, and the 'tile' attribute list may be applied as it is described in the previous embodiment.
  • the non-tile tracks h200010 and h210010 store the configuration information of the HEVC corresponding to the full picture sequence so that the file parser can deliver a bitstream in a form compatible with the HEVC stream.
  • the track uses 'hvb2' or 'heb2' for sample description.
  • parameter set information such as VPS, SPS, and PPS is included in the HEVC Configuration Box ('hvcC') and 'heb2'.
  • the parameter set information may be included in the 'hvcC' or in the 'mdat' box in the form of a NAL unit.
  • the sample data or VCL NAL unit described by this track may not exist in the 'mdat' box, and there may be extractors for referring to individual VCL NAL units or sample data.
  • the tile track can be referenced by including 'scal' in the Track Reference Box, so that the full picture sequence stream can be composed by replacing each extractor by copying each sample data through the extractor.
  • the tile tracks h200020 and h210020 describe the VCL NAL units corresponding to the tile region or the VCL NAL units corresponding to each tile region present in the 'mdat' box as shown as tracks for the sample data.
  • the second tile tracks h200022 and h210022 have a reference relationship to the first tile track due to coding dependencies between tile regions, including 'tdep' described above. . 'trif' in 'sgpd' describes individual tile region information.
  • the values of alternate_group included in the tkhd box are all 1. Tracks containing alternate_group having the same value other than 0 indicate that they can be selectively played or streamed. In addition, in an embodiment using a tkhd box and a tsel box, the value of switch_group included in the tsel box is all 1. Tracks containing switch_group with the same value other than 0 indicate that switching is possible during playback or streaming.
  • the attribute_list included in the tsel box is set to tile to indicate that the corresponding track is part of a tile or a full picture.
  • the values of track_group_id included in the ttgr box are all 1. Tracks containing track_group_id with the same value other than 0 indicate that they can be selectively played or streamed. In addition, in an embodiment using a ttgr box and a tsgr box, the values of track_group_id included in the tsgr box are all 1. Tracks including track_group_id having the same value other than 0 indicate that switching is possible during playback or streaming.
  • 22 and 23 are diagrams showing the structure of an ISO BMFF file for an embodiment in which a 360 degree video is composed of one full picture track and four tile tracks, and the full track is referenced by using an extractor in the tile track. .
  • FIG. 22 shows an embodiment using the tkhd box and tsel box described above
  • FIG. 23 shows an embodiment using the ttgr box and tsgr box described above.
  • non-tile track the tile track, the alternate_group, the switch_group, and the 'tile' attribute list may be applied as it is described in the previous embodiment.
  • the full picture tracks h220010 and h230010 store the configuration information of the HEVC and the bitstream of the full picture in a form compatible with the HEVC stream.
  • the track uses 'hvc1' or 'hvc2' for sample description.
  • parameter set information such as VPS, SPS, and PPS is included in the HEVC Configuration Box ('hvcC') and 'hvc2'. In this case, it may be included in the 'hvcC' or in the 'mdat' box in the form of a NAL unit.
  • 'trif' in 'sgpd' describes individual tile region information.
  • Tile tracks h220020 and h230020 are tracks for one tile region, respectively, and describe VCL NAL units corresponding to each tile region existing in the 'mdat' box as shown in the figure.
  • the sample data or VCL NAL unit described by this track may not exist in the 'mdat' box, and there may be extractors for referring to individual VCL NAL units or sample data.
  • the full picture track can be indicated by referring to individual sample data through the extractor by including 'scal' in the Track Reference Box.
  • the second tile tracks h220022 and h230022 have a reference relationship with respect to the first tile track due to coding dependencies between tile regions, including 'tdep' described above. .
  • the values of alternate_group included in the tkhd box are all 1. Tracks containing alternate_group having the same value other than 0 indicate that they can be selectively played or streamed. In addition, in an embodiment using a tkhd box and a tsel box, the value of switch_group included in the tsel box is all 1. Tracks containing switch_group with the same value other than 0 indicate that switching is possible during playback or streaming.
  • the attribute_list included in the tsel box is set to tile to indicate that the corresponding track is part of a tile or a full picture.
  • the values of track_group_id included in the ttgr box are all 1. Tracks containing track_group_id with the same value other than 0 indicate that they can be selectively played or streamed. In addition, in an embodiment using a ttgr box and a tsgr box, the values of track_group_id included in the tsgr box are all 1. Tracks including track_group_id having the same value other than 0 indicate that switching is possible during playback or streaming.
  • FIG. 24 is a diagram illustrating a full picture sequence according to another embodiment of the present invention.
  • the full picture sequence consists of four tiles. Of the four tiles, tiles 1, 2, and 3 make up one tile set, and tile 4 makes up one tile region.
  • tile region 1 has a coding dependency on tile set 1.
  • the relationship between coding dependencies is represented by arrows in the figure.
  • two regions composed of a tile set and a tile region are composed of respective layers. That is, the 360 degree video according to the present embodiment is divided into a base layer and an enhancement layer, and each layer may include a tile region track and a tile set track.
  • a 360-degree video includes a non-tile track, a tile region track, and a tile set track for a base layer, a non-tile track, a tile region track, and a tile set track for an enhancement layer.
  • FIG. 25 shows an embodiment using the tkhd box and tsel box described above
  • FIG. 26 shows an embodiment using the ttgr box and tsgr box described above.
  • the configuration described with reference to FIG. 18 may be applied to the configuration of the non-tile tracks h250011 and h260011 of the base layer.
  • configuration information of LHEVC corresponding to a full picture sequence of a target operating point is stored.
  • the track uses 'lhb1' or 'leb1' for sample description.
  • parameter set information such as VPS, SPS, and PPS is included in the LHEVC Configuration Box ('lhvC'), and 'leb1'.
  • the parameter set information may be included in the 'lhvC' or in the 'mdat' box in the form of a NAL unit.
  • the VCL NAL unit corresponding to this track may not exist in the 'mdat' box, in which case the size of the individual sample may be recorded as zero.
  • the tile track can be referenced by including 'sabt' in the Track Reference Box, so that the VCL NAL units can be arranged in the order of each sample and the reference order of 'sabt' to form a full picture sequence stream.
  • a track corresponding to the base layer of the current track may be referred to by referring to the non-tile track of the base layer by including 'sbas' in the Track Reference Box.
  • 'oref' may refer to a track including 'oinf' corresponding to operating point information and may indicate that a name space, such as an ID, is shared with the track.
  • the tile tracks (h250020 and h260020) of the base layer are tracks for VCL NAL units or sample data of the base layer corresponding to one tile region or tile set, respectively.
  • 'hvt1' can be used for sample description, and non-tile track of base layer can be referred to by including 'tbas' in Track Reference Box.
  • stream corresponding to individual tile can be composed. . 'trif' in 'sgpd' describes individual tile region information, and 'tsif' describes individual tile set information.
  • the tile region track has a reference relationship to a tile set track due to coding dependencies between tile regions including 'tdep' proposed above.
  • the tile tracks h250030 and h260030 of the enhancement layer are tracks for the VCL NAL unit or sample data of the enhancement layer corresponding to one tile region or tile set, respectively.
  • 'lht1' can be used for sample description, and non-tile track of enhancement layer can be referred to by including 'tbas' in Track Reference Box.
  • stream corresponding to individual tile can be composed. . 'trif' in 'sgpd' describes individual tile region information, and 'tsif' describes individual tile set information.
  • the tile region track has a reference relationship to a tile set track due to coding dependencies between tile regions including 'tdep' proposed above.
  • the alternate_group of the 'tkhd' box has a '1' value in the tile region track and the tile set track of the base layer, indicating that the present tracks may be selectively played.
  • the 'tsel' box can exist in 'udta' below the individual 'trak' box, and the tracks can be switched during playback because the switch_group value is the same as '1' in the tile region track and tile set track of the base layer.
  • Indicate the relationship, and through the 'tile' value of the attribute_list informs that the tracks belonging to the group are some areas or tiles of one full picture sequence.
  • the tile region track and the tile set track of the enhancement layer also indicate that the tracks having the same values of '2' and '2' as alternate_group and switch_group values are selectively playable and switchable during playback.
  • the usage of the 'tile' value of attribute_list is the same as in the base layer.
  • FIGS. 27 and 28 show that a 360-degree video is composed of a non-tile track, a tile region track and a tile set track for a base layer, a non-tile track for a enhancement layer, a tile region track, and a tile set track.
  • FIG. 27 shows an embodiment using the tkhd box and tsel box described above
  • FIG. 28 shows an embodiment using the ttgr box and tsgr box described above.
  • the configuration described with reference to FIG. 20 may be applied to the configuration and related description of the non-tile tracks h270011 and h280011 of the base layer.
  • configuration information of LHEVC corresponding to the full picture sequence of the target operating point is stored.
  • the track is the same as the base layer non-tile track of FIG. 25 .
  • the sample data or VCL NAL unit described by this track may not exist in the 'mdat' box, and there may be extractors for referring to individual VCL NAL units or sample data.
  • the tile track can be referenced by including 'scal' in the Track Reference Box, so that the full picture sequence stream can be composed by replacing each extractor by copying each sample data through the extractor.
  • the usage of 'sbas' and 'oref' in the Track Reference Box and the usage of 'tdep' described above are the same as in the embodiment of FIG. 25 .
  • the tile tracks (h270020 and h280020) of the base layer are tracks for VCL NAL units or sample data of the base layer corresponding to one tile region or tile set, respectively.
  • the tile tracks h270030 and h280030 of the enhancement layer are tracks for VCL NAL units or sample data of the enhancement layer corresponding to one tile region or tile set, respectively.
  • non-tile track the tile track, the alternate_group, the switch_group, and the 'tile' attribute list may be applied as it is described in the previous embodiment.
  • the alternate_group of the 'tkhd' box has a '1' value in the tile region track and the tile set track of the base layer, this indicates that the present tracks may be selectively played.
  • the 'tsel' box can exist in 'udta' below the individual 'trak' box, and the tracks can be switched during playback because the switch_group value is the same as '1' in the tile region track and tile set track of the base layer.
  • Indicate the relationship, and through the 'tile' value of the attribute_list informs that the tracks belonging to the group are some areas or tiles of one full picture sequence.
  • the tile region track and the tile set track of the enhancement layer also indicate that the tracks having the same values of '2' and '2' as alternate_group and switch_group values are selectively playable and switchable during playback.
  • the usage of the 'tile' value of attribute_list is the same as in the base layer.
  • the same track_group_id 1, 2 set to 'ttgr' in two base tile tracks and two enhancement tile tracks, respectively, indicates that tracks with the same value can be in any combination of one or many in one or multiple combinations of playback / streaming. It can be switched.
  • the 360-degree video data selection, transmission, and playback methods according to the user's viewpoint may be provided based on parameters defined in the acquisition space or the user's viewpoint space of the 360-degree video.
  • Signaling information may be provided for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to an embodiment of the present invention.
  • Such signaling information may be referred to as signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint, and may be included in the above-described concept of 360 degree video related signaling information.
  • Such signaling information may be provided through video level or file level.
  • the signaling information for selecting, transmitting, and playing 360-degree video data according to the user's viewpoint includes information on a mapping type to which the 360-degree video is mapped, and a mapping space in which the 360-degree video is acquired, or a space in which the 360-degree video is mapped. It may include relationship information between spaces.
  • the mapping space to which the 360 degree video is mapped may be a 2D frame. That is, the acquisition space or the user view space of the three-dimensional 360 degree video may be mapped to the 2D frame.
  • the process of mapping the acquisition space or the user view space of the 360 degree video to the 2D frame may be used in the same meaning as the above-described projection process.
  • the relationship information between the acquisition space or the user view space of the 360 degree video and the mapping space to which the 360 degree video is mapped is a parameter representing the acquisition space or the user view space of the 360 degree video and the mapping to which the 360 degree video is mapped. It may be mapping information between parameters representing a space.
  • the 360 degree video acquisition space and / or user view space may be defined on a sphere. That is, the 3D model may be a sphere 3D model.
  • 360-degree video is rendered on a spherical 3D model.
  • FIG. 29 is a diagram illustrating an acquisition space and / or a user viewpoint space of a 360 degree video.
  • any point on a sphere with an arbitrary radius can be represented by theta ( ⁇ ) and phi ( ⁇ ).
  • theta may mean an angle between the y axis as the reference axis and the [ ⁇ xy, ⁇ xy] vector projecting the [ ⁇ , ⁇ ] vector onto the xy plane as the reference plane.
  • Phi may mean an angle between the [ ⁇ , ⁇ ] vector and the [ ⁇ xy, ⁇ xy] vector.
  • may have a range of 0 to 360 degrees or -180 to 180 degrees, and ⁇ may have a range of 0 to 180 degrees or -90 to 90 degrees.
  • the y-axis as the reference axis and the xy plane as the reference plane may be defined as any other axis and any plane, respectively.
  • theta and phi may correspond to a yaw and a pitch in the above-described concept of an airplane Principal Axes.
  • Providing signaling information for data selection and reproduction according to a user's viewpoint in the video coding layer may be performed through a supplemental enhancement information (SEI) message of vr_rect_region_mapping () and vr_tile_rect_region_mapping (), which will be described below.
  • SEI Supplemental Enhancement Information
  • vr_rect_region_mapping () may be used regardless of the type of video codec such as H.264 / AVC and MPEG-2.
  • the above-described tile concept may be used for vr_tile_rect_region_mapping ().
  • vr_tile_rect_region_mapping () may have the same meaning as a tile defined in HEVC.
  • 30 illustrates signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to an embodiment of the present invention.
  • (A) shows an embodiment of vr_rect_region_mapping (), (b) shows an embodiment of vr_tile_rect_region_mapping (), and the embodiment shown in the figure shows an embodiment in which signaling information is included in an SEI message. .
  • vr_rect_region_mapping () and vr_tile_rect_region_mapping () commonly include vr_mapping_type information and num_rect_regions_minus1 information.
  • the vr_mapping_type information may indicate information about a mapping type to which a 360 degree video is mapped. According to an embodiment, when the value of vr_mapping_type is 0, it indicates the mapping type of equirectangular, when the value of vr_mapping_type is 1, it indicates the mapping type of cubic, and when the value of vr_mapping_type is 2, the cylinder or panorama When the mapping type is indicated and the value of the vr_mapping_type is 3, the mapping type of the pyramid may be indicated.
  • the vr_mapping_type information indicates a projection scheme used when mapping a 360 degree video onto a 2D image (frame).
  • the value of vr_mapping_type when the value of vr_mapping_type is 0, it indicates that equirectangular projection is used, when the value of vr_mapping_type is 1, indicates that cubic projection is used, and when the value of vr_mapping_type is 2, cylinder projection or panorama
  • the projection is used and the value of vr_mapping_type is 3, it may indicate that the pyramid projection is used.
  • the relationship between the cylinder mapping and the panorama mapping, or the cylinder projection or the panorama projection may be determined by the presence or absence of the top and bottom of the cylinder. In other words, if there is no top and bottom in the cylinder, the cylinder mapping can be treated the same as the panorama mapping.
  • the num_rect_regions_minus1 information may indicate information on the number of rectangular regions included in the corresponding video stream.
  • the num_rect_regions_minus1 information may indicate the number information of the rectangular regions included in the 2D frame.
  • the num_rect_regions_minus1 information indicates the number-1 of rectangular regions included in the corresponding video stream.
  • the rectangular region may be used to mean the aforementioned region.
  • vr_rect_region_mapping contains rect_region_top_left_x_in_luma_samples [i], rect_region_top_left_y_in_luma_samples [i], rect_region_width_in_luma_samples [i], rect_region_greeight_in_luma_sample _ [_], min_thetaiin,
  • rect_region_top_left_x_in_luma_samples [i] may represent the x-coordinate of the upper left end of the i-th rectangular region in pixels.
  • rect_region_top_left_y_in_luma_samples [i] may represent the y coordinate of the upper left end of the i-th rectangular region in pixels.
  • rect_region_width_in_luma_samples [i] may indicate the width of the i-th rectangular region in pixels.
  • rect_region_height_in_luma_samples [i] may indicate the height of the i-th rectangular region in pixels.
  • rect_region_top_left_x_in_luma_samples [i] and rect_region_top_left_y_in_luma_samples [i] may indicate the position of the upper left end of the i-th rectangle in pixels, rect_region_width_in_luma_samples [i], and the size of the rect_region_width_in_luma_samples [i] have.
  • rect_region_top_left_x_in_luma_samples [i] may indicate position and size information of the i-th rectangular region included in the 2D frame.
  • min_theta_in_degree [i] may represent the minimum value of theta for the 360 degree video acquisition space area or the user view space area corresponding to the i-th rectangular area included in the 2D frame.
  • max_theta_in_degree [i] may represent the maximum value of theta for the 360-degree video acquisition space area or the user view space area corresponding to the i-th rectangular area included in the 2D frame.
  • min_phi_in_degree [i] may represent a minimum value of phi for a 360 degree video acquisition space area or a user view space area corresponding to the i-th rectangular area included in the 2D frame.
  • max_phi_in_degree [i] may indicate a maximum value of phi for a 360 degree video acquisition space area or a user view space area corresponding to an i-th rectangular area included in a 2D frame.
  • min_theta_in_degree [i] max_theta_in_degree [i] min_phi_in_degree [i] min_phi_in_degree [i] and max_phi_in_degree [i] are 360-degree video acquisition space areas or user view space areas corresponding to the i-th rectangular area included in the 2D frame. It can represent information about.
  • vr_tile_rect_region_mapping includes top_left_tile_index [i], bottom_right_tile_index [i], min_theta_in_degree [i], max_theta_in_degree [i], min_phi_in_degree [i], and max_phi_in_degree [i].
  • top_left_tile_index [i] and bottom_right_tile_index [i] included in vr_tile_rect_regeion_mapping indicate the indexes of the top left tile and bottom right tile respectively corresponding to the i-th rectangular area.
  • the index may be ranked in the order of raster scan starting from the upper left corner. That is, in the present embodiment, the position and size information of the i-th rectangular area included in the 2D frame may be expressed through an index of tiles.
  • min_theta_in_degree [i] max_theta_in_degree [i] min_phi_in_degree [i], and max_phi_in_degree [i] are the 360-degree video-acquisition space area or user view-space area corresponding to the i-th rectangular area included in the 2D frame. Information may be indicated and the details described through vr_rect_region_mapping () may be applied as it is.
  • detailed region information and coding attribute information of the tile may be transmitted through a sequence parameter set (SPS), a temporal motion constrained tile sets SEI message, or the like, and may be used in connection with the information transmitted in the SEI message.
  • SPS sequence parameter set
  • SEI message a temporal motion constrained tile sets SEI message
  • the vr_rect_region_mapping () and vr_tile_rect_region_mapping () shown in this figure may be information about the case where the vr_mapping_type is 0 or 3, that is, the mapping type is an equirectangular or pyramid type.
  • vr_mapping_type is 1 or 2, that is, when the mapping type is cubic or cylinder (or panorama) type, information other than the information shown in this figure may be needed.
  • 31 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • (a) shows another embodiment of vr_rect_region_mapping ()
  • (b) shows another embodiment of vr_tile_rect_region_mapping ()
  • the embodiment shown in the figure shows an embodiment in which signaling information is included in an SEI message. Indicates.
  • vr_mapping_type when vr_mapping_type is 0 or 3, the information described with reference to FIG. 25 may be used as it is. In contrast, when vr_mapping_type is 1 or 2, additional information as well as the information described with reference to FIG. 25 may be further provided.
  • vr_mapping_type when vr_mapping_type is 0, it indicates an equirectangular type, and when vr_mapping_type is 3, it indicates a pyramid type. In contrast, when vr_mapping_type is 1, it indicates a cubic type. When vr_mapping_type is 2, it indicates a cylinder type.
  • the signaling information may further include information indicating the degree of rotation of each rectangular region and surface information related to the mapping type indicated by each rectangular region as additional information.
  • information indicating the degree of rotation of each rectangular region is represented by roll_in_degree [i]
  • surface information related to the mapping type indicated by each rectangular region is represented by surface_type [i].
  • the signaling information may have a surface_type [i] field and surface_type [i] may indicate one surface of a cubic (cube) according to the value. For example, if surface_type [i] is 0, the corresponding rectangular area indicates the front of cubic. If surface_type [i] is 1, the corresponding rectangular area indicates the cubic right (right side), and surface_type [i ] Is 2, the rectangular area indicates the back of cubic, if surface_type [i] is 3, the rectangular area indicates the left side of cubic, and surface_type [i] is 4 The rectangular area may indicate the top of the cubic, and when surface_type [i] is 5, the rectangular area may indicate the bottom of the cubic.
  • the signaling information may have a surface_type [i] field, and surface_type [i] may indicate one side of the cylinder-type user view area according to the value. For example, if surface_type [i] is 0, the rectangular area indicates the side of the cylinder. If surface_type [i] is 1, the rectangular area indicates the top of the cylinder. Surface_type [i] If 2, the rectangular region can point to the bottom of the cylinder.
  • the viewpoint region of the user corresponding to the side is min_theta_in_degree [i] and max_theta_in_degree [i] similarly to the case of equirectangular mapping.
  • the range can be expressed through.
  • a height range of the side surface may be expressed through min_height [i] and max_height [i].
  • the cylinder mapping may be treated as a panorama mapping. In other words, when the surface_type corresponding to the top and the bottom does not exist, it can be recognized to represent the panorama mapping.
  • surface_type [i] may be provided even when vr_mapping_type is 3, that is, when it is a pyramid type.
  • the signaling information may have surface_type [i] for pyramid and surface_type [i] may indicate one side of pyramid according to the value. For example, when surface_type [i] is 0, the corresponding rectangular area may indicate the bottom of the pyramid, and when surface_type [i] is 1 to 4, the rectangular area may indicate four sides of the pyramid.
  • the related content (h260010) is shown in vr_tile_rect_region_mapping () of this figure.
  • vr_mapping_type indicates cubic mapping
  • information indicating the degree of rotation for each surface may be included in the signaling information as additional information.
  • vr_mapping_type indicates cylinder mapping and surface_type indicates top or bottom
  • information indicating the degree of rotation of the corresponding surface (top or bottom) may be included in the signaling information as additional information.
  • the degree of rotation of the top surface or the bottom surface of all surfaces in the cubic mapping or the cylinder mapping may be expressed through roll_in_degree [i].
  • 32 is a diagram illustrating how 360-degree video is mapped in a 2D frame according to an embodiment of the present invention.
  • roll_in_degree [i] focuses on the center point of each surface and rotates it clockwise relative to the vertical line connecting the upper side of the picture (2D frame) from the midpoint in an angle ranging from 0 to 360 degrees. I can express it.
  • At least two surfaces may be disposed to be in contact with each other and mapped in a 2D frame.
  • at least one of the at least two surfaces may be mapped to the 2D frame by rotating at an angle of 90 degrees.
  • the degree of rotation of the surface may be expressed through roll_in_degree [i].
  • At least two surfaces disposed to be in contact with each other maintain a boundary at the time of projection, thereby increasing compression efficiency during encoding.
  • Providing signaling information for data selection and reproduction according to a user's viewpoint at the file format level may be performed through VrVideoBox (vrvd) and VrSurface ToRectRegionMappingBox (vsrm).
  • FIG. 33 shows a definition and syntax of vrvd according to an embodiment of the present invention
  • the lower part of FIG. 33 shows a definition and syntax of vsrm according to an embodiment of the present invention
  • 34 shows definitions and syntax of vsrms according to another embodiment of the present invention.
  • the embodiment shown in the drawing represents an embodiment in which signaling information is included in a file box.
  • the vrvd is a box for delivering post-decoder requirements information for playing or rendering media, and may be present under SchemeInformationBox (schi). That is, the container of the vrvd may be schi.
  • the vrvd may include optional vr_mapping_type fields and lower boxes.
  • vr_mapping_type may indicate an individual mapping type of 360 degree video.
  • vr_mapping_type may be applied to the content described in the embodiment in which the signaling information is included in the SEI message. According to an embodiment, when the value of vr_mapping_type is 0, it indicates the mapping type of equirectangular, when the value of vr_mapping_type is 1, it indicates the mapping type of cubic, and when the value of vr_mapping_type is 2, the cylinder or panorama When the mapping type is indicated and the value of the vr_mapping_type is 3, the mapping type of the pyramid may be indicated.
  • any_box which is a lower box of vrvd
  • vsrm may exist at the position of any_box.
  • the vrsm box may contain the following information.
  • region_description_type represents a description method of a rectangular region. For example, when region_description_type is 0, the rectangular region is represented in pixel units regardless of codec. When region_description_type is 1, this indicates that the rectangular region is a region description method dependent on HEVC. At this time, each rectangular area may be expressed in the form of HEVC tile, and may include tileGroupID information.
  • the rect_region_count information may indicate information on the number of rectangular regions described by the track including the corresponding vsrm. In other words, information on the number of rectangular regions included in the 2D frame may be indicated. According to an embodiment, the rect_region_count information indicates the number of rectangular regions included in the corresponding video stream.
  • top_left_x may represent the x-coordinate of the upper left end of the rectangular area in pixels.
  • top_left_y may represent the y-coordinate of the upper left end of the rectangle in pixels.
  • width can represent the width of the rectangle in pixels.
  • the height can represent the height of the rectangle in pixels.
  • top_left_x, top_left_y, width, and height may indicate location and size information of the corresponding rectangular area included in the 2D frame.
  • the tileGroupID is a value for indicating a HEVC tile or tile region corresponding to a rectangular region and may be mapped to a groupID or tileGroupID described in NaluMapEntry, TileRegionBox, or TileSetBox.
  • the tileGroupID may be used to refer to a HEVC tile or a tile region when the rectangular region is a region description scheme dependent on HEVC.
  • min_theta may represent a minimum value of theta for a 360 degree video acquisition space area or a user view space area corresponding to the corresponding rectangular area included in the 2D frame.
  • max_theta may represent the maximum value of theta value for the 360-degree video acquisition space area or the user view space area corresponding to the corresponding rectangular area included in the 2D frame.
  • min_phi may represent a minimum value of a phi value for a 360 degree video acquisition space area or a user view space area corresponding to a corresponding rectangular area included in the 2D frame.
  • max_phi may represent a minimum value of a phi value for a 360 degree video acquisition space area or a user view space area corresponding to the corresponding rectangular area included in the 2D frame.
  • vsrm may vary the description method for the region of the 360-degree video acquisition space or the user viewpoint region according to the vr_mapping_type described by vrvd.
  • vr_mapping_type has a value of 0 or 3 to indicate equirectangular or pyramid mapping
  • min_theta max_theta
  • min_phi max_phi
  • the surface_type field may be included and the surface_type may indicate one side of the cubic type user view area according to the value. For example, if surface_type is 0, the rectangular area indicates the front of cubic. If surface_type is 1, the rectangular area indicates the cubic right (right side). If surface_type is 2, the rectangular area is cubic. If the surface_type is 3, the rectangular area indicates the cubic left. If the surface_type is 4, the rectangular area indicates the cubic top. In case of 5, the rectangular area may indicate the bottom of the cubic.
  • vr_mapping_type indicates cubic mapping as 1
  • a roll field may be further included.
  • the roll field represents rotation information about a surface, and its specific meaning is substantially the same as that of the roll_in_degree [] described above.
  • the surface_type field may be included, and the surface_type may refer to one surface of the user view area of the cylinder type according to the value. For example, if surface_type is 0, the rectangular area indicates the side of the cylinder. If surface_type is 1, the rectangular area indicates the top of the cylinder. If surface_type is 2, the rectangular area indicates the cylinder. Can indicate the bottom of.
  • the range of the viewpoint region of the user corresponding to the side is expressed through min_theta, max_theta, min_phi, and max_phi similarly to the case of equirectangular mapping. Can be.
  • the cylinder mapping may be treated as a panorama mapping. In other words, when the surface_type corresponding to the top and the bottom does not exist, it can be recognized to represent the panorama mapping.
  • vr_mapping_type indicates cylinder mapping and surface_type indicates top or bottom
  • a roll field for the corresponding surface may be further included.
  • FIG. 35 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • FIG. 35 illustrates a definition and syntax of a vrvd according to another embodiment of the present invention, and the illustrated embodiment shows an embodiment in which signaling information is included in a file box.
  • the vrvd is a box for delivering post-decoder requirements information for playing or rendering media, and may be present under SchemeInformationBox (schi). That is, the container of the vrvd may be schi.
  • the vrvd may include optional vr_mapping_type fields and lower boxes.
  • vr_mapping_type may indicate an individual mapping type of 360 degree video. According to an embodiment, when the value of vr_mapping_type is 0, it indicates the mapping type of equirectangular, when the value of vr_mapping_type is 1, it indicates the mapping type of cubic, and when the value of vr_mapping_type is 2, the cylinder or panorama It may indicate a mapping type.
  • vr_flags The definition of vr_flags is as follows:
  • 0x000001 indicates whether the pitch angle range is 180 degrees or less.
  • 0x000002 indicates whether a min_pitch field is present.
  • 0x000004 indicates whether the max_pitch field is present.
  • 0x000010 indicates whether the yaw angle range is 360 degrees or less.
  • 0x000020 indicates whether a min_yaw field exists.
  • 0x000040 indicates whether the max_yaw field exists.
  • 0x000100 indicates whether the center pixel of the 2D image in which the 360 video data is projected is equal to the midpoint on the 3D space (spherical face).
  • 0x000200 indicates whether a center_yaw field exists.
  • 0x000400 indicates whether a center_pitch field is present.
  • 0x001000 indicates whether the initial_view_yaw field exists.
  • 0x002000 indicates whether an initial_view_pitch field is present.
  • 0x004000 indicates whether the initial_view_roll field is present.
  • 0x010000 indicates whether a content_fov field exists.
  • 0x020000 indicates whether motion-yaw-only can change yaw only.
  • Whether the optional fields min_pitch, max_pitch, min_yaw, max_yaw, center_yaw, center_pitch, initial_view_yaw_degree, initial_view_pitch_degree, initial_view_roll_degree and content_fov are included in the vrvd may be determined by the vr_flags.
  • the min_pitch field, max_pitch field, min_yaw field, and max_yaw field may represent the area occupied in the 3D space as the minimum value of the pitch, the maximum value of the pitch, and the minimum value yaw of the yaw. These fields may indicate the minimum value of the pitch axis reference rotation amount, the maximum value of the pitch axis reference rotation amount, the minimum value of the yaw axis reference rotation amount, and the maximum value of the yaw axis reference rotation amount.
  • the center_yaw field and the center_pitch field may provide information related to the center pixel of the 2D image projected with the 360 video data and the center point in the 3D space.
  • the center_yaw field and the center_pitch field may indicate the degree to which the midpoint of the 3D space is rotated relative to the coordinate origin of the capture space coordinate system or the origin of the world coordinate system.
  • each field may represent the rotation degree by yaw and pitch values.
  • the initial_view_yaw_degree field, the initial_view_pitch_degree field, and the initial_view_roll_degree field may include information about a time point (initial time point) seen when the user first plays the 360 video. More specifically, the initial_view_yaw_degree field, the initial_view_pitch_degree field, and the initial_view_roll_degree field may indicate an initial time point when playing the corresponding 360 video. In other words, the center point of the viewport that is first seen upon playback can be represented by these three fields. Each field may indicate a position (sign) and a degree (angle) at which its center point is rotated about the yaw, pitch, and roll axes.
  • a viewport that is viewed upon first playback may be determined according to a field of view (FOV).
  • FOV field of view
  • the width and height of the initial viewport may be determined based on the indicated initial view. That is, using these three fields and the FOV information, the 360 video receiving apparatus may provide a user with a predetermined area of 360 video as an initial viewport.
  • the content_fov field may indicate information about a field of view (FOV) intended for production of the corresponding 360 video, and the FOV may refer to a viewing range displayed at a time when the 360 video is played.
  • FOV field of view
  • VrVideoRegion may describe information about a region of a 2D frame corresponding to 360 degree video. Such VrVideoRegion may be included in a box form (vrvr) in vrvd. That is, the container of vrvr may be vrvd.
  • VrVideoRegion may include num_vr_regions, vr_region_id, horizontal_offset, vertical_offset, vr_region_width, vr_region_height, max_region_pitch, min_region_yaw, max_region_yaw, cube_face, cube_face_rotation, cylinder_face, and cylinder_face_rotation fields.
  • num_vr_regions may indicate information about the number of regions included in the 2D frame.
  • vr_region_id may indicate identification information about each region.
  • horizontal_offset and vertical_offset may indicate horizontal and vertical offsets of a corresponding region on a 2D frame.
  • horizontal_offset and vertical_offset may represent x, y coordinates of the upper left pixel of the corresponding area.
  • vr_region_width and vr_region_height may indicate the width and height of the corresponding area, that is, the width and height in pixels.
  • the min_region_pitch and max_region_pitch may represent the minimum and maximum values of the pitch of the 360-degree video acquisition space region or the user view space region corresponding to the corresponding region.
  • pitch may mean the same as phi.
  • min_region_yaw and max_region_yaw may indicate a minimum value and a maximum value of yaw for a 360 degree video acquisition space area or a user view space area corresponding to the corresponding area.
  • yaw may have the same meaning as theta.
  • the cube_face may indicate which face of the cube corresponds to the cube when the projection scheme of the 360 degree video is cubic.
  • the face may have the same meaning as the surface described above.
  • the area when cube_face is 0, the area indicates the front of cubic, when cube_face is 1, the area indicates the right (right side) of cubic, and when the cube_face is 2, the area is cubic If the cube_face is 3, the area indicates the left side of the cubic. If the cube_face is 4, the area indicates the top of the cubic.
  • the cube_face is 5 In this case, the area may indicate the bottom of the cubic.
  • cube_face_rotation represents rotation information for each cubic face.
  • cube_face_ratation may be used as the same meaning as the roll_in_degree described above.
  • the cylinder_face may indicate which face of the cylinder corresponds to the region when the projection scheme of the 360 degree video is cylinder.
  • the face may have the same meaning as the surface described above.
  • the region indicates the side of the cylinder
  • the region indicates the top of the cylinder
  • the region indicates the top of the cylinder
  • the region Can indicate the bottom of the cylinder.
  • cylinder_face_rotation represents rotation information for each cylinder_face.
  • cube_face_ratation may be used as the same meaning as the roll_in_degree described above.
  • the cylinder_face_rotation may exist only when the cylinder_face corresponds to the top or bottom of the cylinder.
  • 36 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • FIG. 36 illustrates a definition and syntax of a vrvd according to another embodiment of the present invention, and the illustrated embodiment illustrates an embodiment in which signaling information is included in a file box.
  • the vrvd may exist under SchemeInformationBox (schi) as one of boxes for delivering post-decoder requirements information for playing or rendering media. That is, the container of the vrvd may be schi.
  • SchemeInformationBox schi
  • Such vrvd includes a Vr Video Region Box, which can provide a detailed description of how regions of coded pictures are mapped to three-dimensional space.
  • Three-dimensional space may be referred to as spherical video.
  • the three-dimensional space and the 2D frame may be mapped via a projection scheme. A detailed description of this vrvr will be provided later with reference to the accompanying drawings.
  • the vrvd may include optional vr_mapping_type fields and lower boxes.
  • vr_mapping_type may indicate an individual mapping type of 360 degree video.
  • initial_view_yaw, initial_view_pitch, and initial_view_roll may not be optional fields.
  • initial_view_yaw, initial_view_pitch, and initial_view_roll may indicate the yaw, pitch, and roll angles, respectively.
  • an angle indicated by the corresponding field may indicate a center point of an initial time point at which the coded picture is rendered.
  • center_pitch, min_pitch, max_pitch, min_yaw, max_yaw, content_fov may be optional fields.
  • the number of optional fields may be determined by the number of bits set in the lower byte of vr_flags.
  • the following default values may be applied.
  • the minimum pitch angle of the VR video has a default value of -90.
  • the maximum pitch angle of the VR video has a default value of +90.
  • the minimum yaw angle of the VR video has a default value of -180.
  • the maximum yaw angle of the VR video has a default value of +180.
  • Optional fields center-yaw-present, center-pitch-present, min-pitch-present, max-pitch-present, min-yaw-present, max-yaw-present, content-fov-present, and motion Whether or not -yaw-only is included in the vrvd may be determined by the vr_flags.
  • vr_flags The definition of vr_flags is as follows:
  • 0x000001 is a center-yaw-present and indicates whether a center_yaw field is present. Specifically, the center-yaw provides the following information.
  • vr_mapping_type is equi-rectangular, this field indicates the yaw angle with respect to the center pixel of the coded picture projected onto the spherical surface.
  • this field indicates a yaw angle with respect to the center pixel of the area corresponding to the front surface of the cube as a projected area on a spherical surface.
  • vr_mapping_type is cylinder
  • this field indicates the yaw angle with respect to the center pixel of the area corresponding to the side of the cylinder as the area projected onto the spherical surface.
  • 0x000002 is a center-pitch-present and indicates whether a center_pitch field is present. Specifically, center-pitch provides the following information.
  • this field indicates the pitch angle with respect to the center pixel of the coded picture projected onto the spherical surface.
  • this field indicates the pitch angle with respect to the center pixel of the area corresponding to the front surface of the cube as the area projected on the spherical surface.
  • vr_mapping_type is cylinder
  • this field indicates the pitch angle with respect to the center pixel of the region corresponding to the side of the cylinder as a region projected onto a spherical surface.
  • 0x000010 is a min-pitch-present and indicates whether a min_pitch field is present. Specifically, min-pitch indicates the minimum pitch angle for the points of the sphere where the coded picture was projected.
  • 0x000020 is a max-pitch-present and indicates whether the max_pitch field is present. Specifically, max-pitch indicates the maximum pitch angle with respect to the points of the sphere where the coded picture was projected.
  • 0x000040 is a min-yaw-present and indicates whether a min_yaw field is present. Specifically, min-yaw indicates the minimum yaw angle for the points of the sphere where the coded picture was projected.
  • 0x000080 is a max-yaw-present and indicates whether the max_yaw field is present. Specifically, max-yaw indicates the maximum yaw angle for the points of the sphere where the coded picture was projected.
  • 0x010000 is a content-fov-present and indicates whether a content_fov field is present. Specifically, the content-fov indicates the appropriate view field for the content intended by the content author / provider.
  • 0x020000 is motion-yaw-only, indicating whether the motion of the VR video is limited only by yaw.
  • FIG. 37 illustrates a VR video region box according to another embodiment of the present invention.
  • FIG. 37 illustrates definition and syntax of a VR video region (vrvr) box.
  • Such a VR video region box can provide a detailed description of how the region of the coded picture in the track is mapped to the spherical surface. This information can be used in the projection from 2D frames to spherical video.
  • the vrvr may include a layout_type, num_vr_region, vr_region_id, and face_rotation fields.
  • the vrvr may further include the horizontal_offset, vertical_offset, vr_region_width, vr_region_height, min_region_pitch, max_region_pitch, min_region_yaw, max_region_yaw, cube_face_id, cube_face_rotation, cylinder_face_id, and cylinder_face_rotation fields described in the above-described vrvr.
  • the layout_type may indicate the layout of the 2D frame on which the vr video is projected.
  • the layout_type may indicate a layout in which vr video is mapped to 3 * 2 in a 2D frame or may indicate a layout in which vr video is mapped to 4 * 3 in a 2D frame. More specifically, in the 3 * 2 layout, six surfaces corresponding to six regions may be mapped 1: 1 in a 2D frame composed of 3 * 2. In the case of a 4 * 3 layout, six surfaces corresponding to six regions may occupy half of a 2D frame composed of 4 * 3. That is, six surfaces corresponding to six regions may be mapped to portions corresponding to half of 2D frames divided into 12 (4 * 3), and portions corresponding to the other half may be treated as empty spaces. .
  • layout_type may indicate a layout related to the position of the side of the cylinder.
  • the sides of the cylinder may be mapped to the top, bottom or center of the 2D frame according to the layout_type.
  • the sides of the cylinder may be mapped to the left, right or center of the 2D frame, depending on the layout_type.
  • num_vr_regions may indicate information about the number of regions included in the 2D frame. Since a region included in the 2D frame corresponds 1: 1 with a face according to a projection type, num_vr_regions may be referred to as indicating information about the number of faces. Therefore, num_vr_regions may be represented by num_faces.
  • vr_region_id may indicate identification information about each region. Since each region corresponds 1: 1 with a surface according to the projection type, vr_region_id may be said to provide identification information for each face. Accordingly, vr_region_id may be represented by face_id.
  • the region_rotation may indicate an angle at which the region mapped to the 2D frame is rotated.
  • the area can be rotated at any angle, including +90, +180, -90, and -180. If the rotation angle is 0, the region may indicate that the rotation is not rotated. Since each region corresponds 1: 1 with a face according to a projection type, the region_rotation may be referred to as indicating a rotation angle of a face. Therefore, region_rotation may be expressed as face_rotation.
  • the projection type may be cubic.
  • the vr_region id may indicate a region matching the plane of the cubic.
  • the plane of cubic corresponding to the value of vr_region_id may be as follows.
  • the projection type may be cylinder.
  • the vr_region id may indicate a region matching the plane of the cylinder.
  • the plane of the cylinder corresponding to the value of vr_region_id may be as follows.
  • the location of the region mapped in the 2D frame may be specified. That is, the position of the face (face, surface) according to the projection scheme in the 2D frame can be specified. According to one embodiment, the position and rotation angle of the face may be set such that two adjacent faces coincide with the boundary at the time of projection. According to this embodiment, it is possible to increase the compression efficiency during encoding.
  • FIG. 38 illustrates signaling information for selecting, transmitting, and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • (a) shows a definition of a vr video region group box (vrrg) according to an embodiment of the present invention
  • (b) shows a vr video region info group entry according to an embodiment of the present invention
  • (C) shows a vr video region info group entry according to another embodiment of the present invention
  • (d) shows a vr video region info group entry according to another embodiment of the present invention.
  • the illustrated embodiment represents an embodiment in which signaling information is included in a file box.
  • the signaling information described in this figure may be information used to map a region of the 2D frame and an HEVC tile.
  • a region of a 2D frame may be used in the same manner as a tile, but since a region and a tile are basically distinguished, mapping information about a region and a tile may be needed.
  • Vvrg which will be described below, is a file box that provides mapping information about a region and a tile, and may include a vr video region info group entry.
  • vrrg is included in the sample group description box (sgpd).
  • the vr video region info group entry may include a tileGroupID, vr_region_count, vr_region_id, and full_region_flags.
  • the tileGroupID may indicate a tile region group ID value or may indicate a tile set groupID.
  • the tile region group ID or tile set groupID may be defined in TileRegionGroupEntry or TileSetGroupEntry, respectively.
  • tileGroupID may indicate a single tile ID.
  • vr_region_count may provide number (number) information of the vr_region associated with the tile region or tile set indicated by the tilegroupID. In one embodiment, vr_region_count may provide number (number) information of vr_region related to a single tile indicated by tilegroupID.
  • vr_region_id represents identification information of a 2D frame region corresponding to 360 degree video.
  • the vr_region_id may indicate the vr_region_id defined in the above-described vrvd. As described above, vr_region_id may be replaced with face_id indicating a face or surface according to the projection scheme.
  • the full_region_flag may indicate whether the tile region or tile set indicated by the tilegroupID completely includes the region indicated by the vr_region_id. In one embodiment, full_region_flag equal to 1 indicates that the tile region or tile set indicated by tilegroupID completely includes the region indicated by vr_region_id. In one embodiment, full_region_flag may indicate whether a single tile indicated by tilegroupID completely includes the region indicated by vr_region_id.
  • the embodiment shown in (b) is an embodiment describing a region associated with a tile region or tile set based on the tileGroupID, and the embodiment shown in (c) is based on vr_region_id.
  • num_vr_regions_in_track provides information on the number of VR video regions stored in the track.
  • num_vr_regions_in_track may provide information on the number of VR video regions stored in the track.
  • vr_region_id represents identification information of a 2D frame region corresponding to 360 degree video.
  • the vr_region_id may indicate the vr_region_id defined in the above-described vrvd.
  • full_region_flag is set to 1, it may indicate that the track includes a complete VR video region indicated by vr_region_id.
  • num_tileGroups may provide information about the number of tile regions or tile sets indicated by the tileGroupID field, related to the VR video region indicated by vr_region_id.
  • full_tileGroup_flag may indicate that the VR tile region indicated by vr_region_id includes a complete tile region or tile set indicated by tileGroupID.
  • 39 is a diagram illustrating a relationship between a region and a tile region using a vr video region info group entry.
  • FIG. 39 shows two embodiments. First, an embodiment shown in the upper part of FIG. 39 is an embodiment in which a region and a tile region correspond to each other, and an embodiment shown in the lower part of FIG. 39 is an embodiment in which the region and the tile region are different.
  • the embodiment shown at the top of the figure is projected in a cubic type and mapped to a 2D frame, and there are six regions, and each region has right, left, top, bottom, front, and back regions of the cubic prjection space. It corresponds to each side. There are six tile regions, each matching the boundaries of the regions.
  • the embodiment shown in the lower part of the figure has the same region configuration, but the configuration of the tile region is different.
  • the 2D frame is composed of four tile regions evenly divided into left, right, up and down.
  • 40 is a diagram illustrating signaling information for selecting, transmitting and playing 360 degree video data according to a user's viewpoint according to another embodiment of the present invention.
  • FIG. 40 is a view illustrating definitions and syntaxes of a FisheyeVideoInfoBox (fevi) according to an embodiment of the present invention.
  • the illustrated embodiment shows an embodiment in which signaling information is included in a file box.
  • fevi may exist below the vrvd box described above. That is, the container of fevi may be vrvd. On the other hand, fevi may be set to exist essentially when vr_mapping_type of vrvd is 2, that is, when the mapping type is cylinder.
  • the fisheye video may mean a video generated from an image acquired through each sensor in a spherical camera or a fisheye camera.
  • fevi may include num_circular_images, image_center_x, image_center_y, full_radius, frame_radius, scene_radius, image_rotation, image_flip, image_scale_axis_angle, image_scale_x, image_scale_y, field_of_view, num_compression_curve_pionts, compression_curve_x, compression_curve_y, center_yaw, center_pitch, num_deadzones, deadzone_left_horizontal_offset, deadzone_top_vertical_offset, deadzone_width and deadzone_height .
  • the number circular images may indicate the number information of the fisheye image.
  • the fisheye image may be obtained through two sensors of the spherical camera, in which case the number of fisheye images is 2 and the number circular images may be 1.
  • the image_center_x may indicate the x coordinate of the center of the fisheye image in pixels.
  • the image_center_y may indicate the y coordinate of the center of the fisheye image in pixels.
  • the center_pitch may indicate a pitch value on the spherical surface matching the image_center_x, image_center_y pixels.
  • center_yaw may indicate a yaw value on the spherical surface that matches the image_center_x, image_center_y pixels.
  • center_pitch and conter_yaw values we can infer the position on the sherical surface of the image acquired by each fisheye sensor.
  • the center_pitch and conter_yaw values can be used to infer the position on the sherical surface of the fisheye camera.
  • re-projection can be performed properly by inferring the position of the image on the sherical surface.
  • Selection and playback of transmission data according to a user's point of view in a unicast environment may be performed by adding VR video signaling information to information for delivery attribute expression.
  • additional information may be defined in the MPD.
  • EssentialProperty or SupplementalProperty may be used.
  • the EssentialProperty or SupplementalProperty may exist under AdpatationSet, Representation, Sub-Representation, etc.
  • @Value is currently VR
  • a unique string or integer value may be assigned to identify the mapping type of the video, for example, values such as “equirectangular”, “cubic”, “pyramid”, “cylinder”, and “panorama” are assigned to @value.
  • @Id may indicate that EssentialProperty or SupplementalProperty having the same @id value is closely related as an identifier of the corresponding EssentialProperty or SupplementalProperty, for example, some regions of the same VR video. Since two AdpatationSets have the same VR mapping type, instead of describing the mapping type redundantly using @value, the same @id is attached. And you can describe the mapping type without redundancy.
  • EssentialProperty or SupplementalProperty may be used to identify a region range or a user view support range in an acquisition space of a VR video transmitted through DASH.
  • the EssentialProperty or SupplementalProperty may exist under AdpatationSet, Representation, Sub-Representation, etc.
  • each parameter can be separated by a comma (,).
  • FIG. 41 is a diagram illustrating syntax of @value for indicating a region range or a user view support range in an acquisition space of a VR video transmitted through DASH.
  • (a) is the syntax of @value according to an embodiment of the present invention
  • (b) is the syntax of @value according to another embodiment of the present invention.
  • the syntax of @value according to another embodiment of the present invention shown in (b) is compared to the syntax of @value according to an embodiment of the present invention shown in (a), for information about surface type and roll The difference is that it includes more information.
  • An embodiment in which the MPD is configured by using the EssentialProperty or SupplementalProperty for the VR mapping and the VR region description described above may be as follows.
  • FIG. 42 illustrates a full picture frame divided into a full picture frame and a region
  • FIG. 43 illustrates an MPD including signaling information associated with FIG. 42.
  • the illustrated embodiment is an embodiment in which one main video and one main video are divided into four regions by spatially dividing them into an upper left, an upper right, a lower right, and a lower left.
  • a region is used in the same manner as a tile.
  • the main video supports a viewing range or user viewing range in the acquisition space of -180 to 180 degrees in the horizontal direction and -90 to 90 degrees in the vertical direction.
  • the area corresponding to the upper left supports a viewpoint range or user viewpoint in the acquisition space of -180 to 0 degrees in the horizontal direction, and a viewpoint range or user viewpoint in the acquisition space of -90 to 0 degrees in the vertical direction.
  • Support range The area corresponding to the upper right side (Tile 2) supports a viewpoint range or user viewpoint in the acquisition space of -180 to 0 degrees in the horizontal direction, and a viewpoint range or user viewpoint in the acquisition space of -90 to 0 degrees in the vertical direction. Support range.
  • the area corresponding to the lower right side supports the viewpoint range or the user viewpoint range in the acquisition space of 0 to 180 degrees in the horizontal direction, and the viewpoint range or the user viewpoint range in the acquisition space of 0 to 90 degrees in the vertical direction.
  • the area corresponding to the lower left side supports a viewpoint range or a user viewpoint range in the acquisition space of -180 to 0 degrees in the horizontal direction, and a user viewpoint of 0 to 90 degrees in the vertical direction.
  • the main video provides three quality contents corresponding to the resolution of 960 * 480, 1920 * 960, 3840 * 1920, and each area (tile 1 ⁇ 4) supports the quality corresponding to its vertical and horizontal half. do.
  • the main video frame is divided into four HEVC tiles.
  • the rectangular region corresponding to each tile and the video corresponding to the main video may be independently encoded. In this case, encoding may be performed using existing codecs such as AVC / H.264.
  • Another example of the following embodiment is a case where one main video and its overlapping are divided into four rectangular regions.
  • FIG. 44 is a diagram illustrating a full picture frame divided into full picture frames and regions
  • FIG. 45 is a diagram illustrating an MPD including signaling information related to FIG. 44.
  • the main video supports a viewing range or user viewing range in the acquisition space of -180 to 180 degrees in the horizontal direction, and a viewing range or user viewing range in the acquisition space of -90 to 90 degrees in the vertical direction.
  • the full picture frame is divided into four regions, and each region can be mapped to a pyramid or an equirectangular. In the illustrated embodiment, each region is mapped to a pyramid.
  • Pyramid 1 the first rectangular region, supports -180 ⁇ 0 degree user viewpoint in the horizontal direction and -90 ⁇ 90 degree user viewpoint in the vertical direction.
  • the second rectangular region, Pyramid 2 supports a viewing range or user viewing range in the acquisition space of -90 to 90 degrees in the horizontal direction, and supports a viewing range or user viewing range in the acquisition space of -90 to 90 degrees in the vertical direction.
  • the third rectangular region, Pyramid 3 supports the viewing range or user viewing range in the acquisition space of 0 to 180 degrees in the horizontal direction, and the viewing range or user viewing range in the acquisition space of -90 to 90 degrees in the vertical direction. .
  • the fourth rectangular region, Pyramid 4 supports a viewing range or user viewing range in the acquisition space of 90 to 180 degrees in the horizontal direction and -180 to -90 degrees, and a viewpoint in the acquisition space of -90 to 90 degrees in the vertical direction. Support range or user viewpoint.
  • two rectangular regions that are not adjacent to each other and signaling for indicating two VR user viewpoint regions are required.
  • the illustrated embodiment describes two non-contiguous regions using two srd and two vr-srd.
  • the minimum value of the horizontal viewpoint range, the maximum value of the horizontal viewpoint range, and the maximum value of the vertical viewpoint range are indicated. That is, the first srd and vr-srd can be said to provide information about the left rectangle of the fourth region (pyramid 4).
  • the information included in the right rectangle of the fourth region (pyramid 4) may be the same as the information included in the left rectangle of the first region (pyramid 1).
  • This method can also be used to describe the spatial region of the non-rectangular region and the user point of view coverage.
  • the main video provides three quality contents corresponding to the resolutions of 960 * 480, 1920 * 960 and 3840 * 1920, and each rectangular supports three resolutions of 480 * 480, 960 * 960 and 1920 * 1920.
  • This embodiment shows a case in which the main video frame is divided into four HEVC tiles, but the rectangular region corresponding to each tile and the video corresponding to the main video are independently using existing codecs such as AVC / H.264. It may be provided encoded.
  • 46 is a diagram illustrating a receiver operation according to an embodiment of the present invention.
  • VCL Video Coding Layer
  • the operation of the receiver using the data selection and reproduction method according to the user's viewpoint in the above-described VCL may be as follows.
  • VR content that is, media data including 360 degree video may be provided from a content server h360010.
  • a network client h460020 in the receiver may generate a VR content file or segments from packets received from the content server h460010.
  • files, segments may be delivered to the receiver via other storage media or the like.
  • the file parser h460030 may parse the received file and segment and deliver a video bitstream corresponding to the full picture to the video decoder h460040.
  • the video decoder decodes the video stream corresponding to the full picture or decodes the data of the region corresponding to the initial time point of the user through the proposed vr_rect_region_mapping () and vr_tile_rect_region_mapping () SEI messages. You can pass it to / Sensors (h460050).
  • the initial view may be a viewport reflecting the intention of the 360-degree content producer.
  • the initial time point is not limited to the initial starting point of the entire content, and may exist per sequence unit or scene unit. That is, the initial time point may be a time point at which the intention of the content producer is reflected, which may be distinguished from a user time point at which the user's intention is reflected.
  • the video decoder h460040 may decode data of a region corresponding to the user viewpoint (feedback user view) and deliver the data to the Projector / Renderer / Sensors h460050. have.
  • Projector / Renderer / Sensors projects the transferred full picture or region data according to the projection scheme, renders it to the 3D model, and outputs the area corresponding to the initial view or the user view through the user's display.
  • the user's viewpoint can be continuously monitored through the sensor and delivered to the video decoder (h460040).
  • the video decoder h460040 may select and decode a corresponding region using the delivered user viewpoint, and the decoded region may be projected and rendered and output to the user's display, and this process may be repeated.
  • 47 is a diagram illustrating a receiver operation according to another embodiment of the present invention.
  • 47 illustrates an operation of a receiver for selecting / reproducing transmission data according to a user viewpoint at a file format level.
  • the operation of the receiver using the data selection and reproduction method according to the user's viewpoint at the file format level described above may be as follows.
  • VR content that is, media data including 360 degree video may be provided from the content server h470010.
  • the network client h470020 in the receiver may generate a VR content file or segments from the packets received from the content server h470010.
  • files, segments may be delivered to the receiver via other storage media or the like.
  • the file parser h470030 parses the received file and segment, extracts a video bitstream, and delivers the video bitstream to the video decoder h470040.
  • the file parser (h470030) extracts the video stream corresponding to the full picture, or extracts data of the region corresponding to the initial time point of the user through the above-described 'vrvd' and 'vsrm' information to the video decoder (h470040). I can deliver it.
  • the initial view may be a viewport reflecting the intention of the 360-degree content producer.
  • the initial time point is not limited to the initial starting point of the entire content, and may exist per sequence unit or scene unit. That is, the initial time point may be a time point at which the intention of the content producer is reflected, which may be distinguished from a user time point at which the user's intention is reflected.
  • the file parser h470030 may extract data of a region corresponding to the user view (feedback user view) and transmit the data to the video decoder h470040.
  • the video decoder decodes the received video bitstream and delivers it to the Projector / Renderer / Sensors (h470050).
  • Projector / Renderer / Sensors projects the transferred full picture or region data according to the projection scheme, renders it to the 3D model, and outputs the area corresponding to the initial view or the user view through the user's display.
  • the user's viewpoint can be continuously monitored through the sensor and delivered to the file parser (h470030).
  • the file parser can extract the corresponding region using the delivered user's viewpoint, and the extracted region can be decoded by the video decoder, projected and rendered, and output to the user's display. Can be.
  • FIG. 48 is a diagram illustrating a receiver operation according to another embodiment of the present invention.
  • FIG. 48 illustrates an operation of a receiver for selecting / reproducing transmission data according to a user's viewpoint in a unicast environment.
  • the operation of the receiver using the transmission data selection / reproduction method according to the user's viewpoint in the aforementioned unicast environment may be as follows.
  • VR content that is, media data including 360 degree video may be provided from the content server h480010.
  • the network client h480020 in the receiver may generate VR content files or segments from packets received from the content server h480010.
  • files, segments may be delivered to the receiver via other storage media or the like.
  • the network client h480020 may receive data corresponding to the full picture or data of a region corresponding to the initial time point of the user.
  • the initial view may be a viewport reflecting the intention of the 360-degree content producer.
  • the initial time point is not limited to the initial starting point of the entire content, and may exist per sequence unit or scene unit. That is, the initial time point may be a time point at which the intention of the content producer is reflected, which may be distinguished from a user time point at which the user's intention is reflected.
  • the network client h480020 may receive data of a region corresponding to the user viewpoint (feedback user viewpoint).
  • the Network Client h480020 may be a DASH Client.
  • the DASH Client selects the AdaptationSet / Representation corresponding to the user's point of view using the above-described information such as vr-map, vr-srd, srd, and requests corresponding segments to the Content Server (DASH Server) to receive them. Can be.
  • the file parser h480030 parses the received file and segment, extracts a video bitstream, and delivers the video bitstream to the video decoder h480040.
  • the video decoder decodes the received video bitstream and delivers the decoded video bitstream to the Projector / Renderer / Sensors (h480050).
  • Projector / Renderer / Sensors projects the transferred full picture or region data according to the projection scheme, renders it to the 3D model, and shows the area corresponding to the user's viewpoint through the user's display.
  • the user's viewpoint can be continuously monitored through the sensor and delivered to the network client (h480020).
  • the network client (h480020) may receive data of a corresponding region using the delivered user viewpoint, the received region data is extracted by a file parser (h480030), and the extracted region data is extracted by a video decoder (h480040). It can be decoded, projected and rendered and output to the user's display, and this process can be repeated.
  • a method of transmitting 360 degree video is disclosed.
  • 49 is a diagram illustrating a method of transmitting a 360 degree video according to an embodiment of the present invention.
  • a method of transmitting 360-degree video includes: obtaining 360-degree video data (S49100), mapping the 360-degree video data to a 2D image (S49200), and converting the 2D image into 2 Dividing the data into the above areas and encoding the data into individual areas or a plurality of areas (S49300), generating signaling information for the 360-degree video data (S49400), and data including the encoded 2D image and the signaling information. It may include the step of transmitting a signal (S49500).
  • the signaling information may include grouping information for grouping the two or more areas.
  • the 360 degree video data may be obtained.
  • 360-degree video data is obtained by capturing 360-degree video using a 360-degree camera (VR camera), or generates data corresponding to 360-degree video. Can be obtained.
  • VR camera 360-degree camera
  • the mapping of the 360 degree video data to the 2D image (S49200) may be a step of mapping the 3D 360 degree video to 2D. Mapping the 360-degree video data to the 2D image (S49200) is to stitch the three-dimensional 360-degree video, as described with reference to Figures 1, 2, 4 and 12, and a predetermined projection scheme (projection scheme) Can be performed after the projection.
  • the projection scheme may have various methods. For the projection scheme, the contents described with reference to FIGS. 6, 8, 30, 31, 32, 33, 34, and 35 may be applied.
  • the step S49300 of dividing the 2D image into two or more regions and encoding the individual region or the unit of a plurality of regions may be encoding the 2D image for each region or for each set of regions.
  • the contents described above with reference to FIGS. 1, 4, 12-28, and 30-48 may be applied to the region. That is, the region may be used in the same sense as the tile or the HEVC tile according to the embodiment.
  • an individual region may mean one unit region, and a plurality of regions may mean a set of individual regions.
  • the tile set and the tile region may correspond to multiple regions.
  • Generating signaling information for the 360 degree video data may be generating signaling information required for providing 360 degree video.
  • Such signaling information may be referred to as 360 video related metadata or 360 video related signaling information as described with reference to FIG. 8.
  • Such signaling information may be generated in each process performed for providing 360 degree video, as described with reference to FIGS. 1-4.
  • the signaling information may be included in the video level, file format level, and / or system level.
  • As the video level signaling there is an embodiment in which signaling information is included in the SEI message, and in the file format level signaling, there is an embodiment in which the signaling information is included in a file box of ISO BMFF.
  • information is included in the DASH MPD, as described above.
  • Transmitting the data signal including the encoded 2D image and the signaling information (S49500) may be a step of transmitting a data signal to a receiving device.
  • the performing of the processing for the transmission may correspond to a process of configuring the transmission format described with reference to FIG. 12. That is, the method may be encapsulating a 2D image corresponding to 360 degree video data in a file format.
  • the file format may be an ISO BMFF file format.
  • the step of transmitting the data signal may be a step of transmitting the data signal through the broadcast network and / or broadband.
  • the signaling information may include grouping information for grouping the two or more areas. Signaling related to such grouping may be applied to the contents described with reference to FIGS. 12-28.
  • the grouping information may include first group information and second group information.
  • the first group information may provide grouping information on individual areas or multiple areas that can be selectively reproduced or streamed.
  • the first group information may provide grouping information on a track that can be selectively played back or streamed among a plurality of tracks when individual areas are stored in one track or multiple areas are stored in one track.
  • Specific examples of the first group information include the alternate_group field of the tkhd box and the track_group_id field of the ttgr box described with reference to FIGS. 13-15.
  • the second group information may provide grouping information for individual areas or multiple areas that can be switched to each other.
  • the second group information may provide grouping information on tracks that are mutually switchable among a plurality of tracks when individual regions are stored in one track or multiple regions are stored in one track.
  • the grouping on whether to be switchable should be premised that selective playback or streaming is possible, there may be a restriction that the group according to the second group information should be included in the group according to the first group information.
  • Specific examples of the second group information include the alternate_group field of the tsel box and the track_group_id field of the tsgr box described with reference to FIGS. 14-15.
  • the signaling information may further include coding dependency information between individual regions, between multiple regions, or between the individual regions and the plurality of regions. As described above with respect to the coding dependency information, the content described with reference to FIGS. 15-28 may be applied.
  • the signaling information may include projection scheme information indicating a projection scheme used to project the 360 degree video data onto the 2D image and / or a 360 degree image included in the 2D image and the 360 degree video data. It may further include mapping information between.
  • the projection scheme information may mean vr_mapping_type of FIGS. 24-37.
  • the mapping information may mean mapping information between the 2D frame described with reference to FIGS. 24-37 and the 360-degree video acquisition space or the user viewpoint space.
  • the signaling information may further include rotation information indicating a corresponding rotation angle when at least one of the individual regions of the 2D image is rotated at a predetermined angle and mapped to the 2D image.
  • the rotation information may mean roll_in_degree [i] described with reference to FIGS. 29-45.
  • a 360 degree video transmission apparatus is disclosed.
  • the 360-degree video transmission apparatus may include a component that performs each process of the above-described method of transmitting 360-degree video.
  • a 360-degree video transmission apparatus includes a data input unit (not shown) for mapping 360-degree video data, a mapping processor (not shown) for mapping the 360-degree video data to a 2D image, and a 2D image.
  • a data encoder (not shown) for dividing into the above areas and encoding each unit or unit of multiple areas, a signaling generator (not shown) for generating signaling information for the 360-degree video data, the encoded 2D image and the signaling information.
  • a data signal generation unit (not shown) for generating a data signal including a, and a transmission unit (not shown) for transmitting the generated data signal to the receiving device.
  • the description about the signaling information in the method for transmitting the 360-degree video described above with reference to FIG. 49 may be applied.
  • a 360 degree video receiving apparatus is disclosed.
  • 50 is a diagram illustrating a 360 degree video receiving apparatus according to an embodiment of the present invention.
  • the receiver for receiving a data signal including a 2D image containing 360-degree video data and the signaling information for the 360-degree video data, the data signal A data decoder (h50200) for decoding the 2D image included in a signal; a signaling decoder (h50300) for decoding the signaling information included in the data signal; and processing the 2D image to render the 360-degree video data into a 3D space.
  • It may include a renderer (h50400).
  • the 2D image received by the 360-degree video receiving apparatus may be divided into two or more regions and encoded in units of individual regions or a plurality of regions, and the signaling information may include grouping information for grouping the two or more regions. have.
  • the receiver h50100 may receive a 2D image including 360 degree video data and a data signal including signaling information about the 360 degree video data.
  • the receiver h50100 may receive a data signal through a broadcast network and / or broadband.
  • the receiver h50100 may transfer the received data signal to the data decoder h50200 and / or the signaling decoder h50300.
  • the 360-degree video receiving apparatus may further include a file parser (not shown), in which case, the receiver may transmit the data signal to the premature file parser.
  • the file parser may parse or decapsulate a file format included in the data signal to transmit a 2D image to the data decoder h50200 and to transmit signaling information to the signaling decoder h50200.
  • the receiver h50100 may receive feedback information from the renderer h50400 and transmit data corresponding to an area related to the feedback information to a file parser or a data decoder h50200. More specifically, the feedback information may include user viewpoint information, and the receiver h50100 receives user viewpoint information received from the renderer h50400 and corresponds to at least one area included in user viewpoint information. Data may be transferred to a file parser (not shown) or data decoder h50200. A detailed description of this embodiment is as described with reference to FIG. 48.
  • the receiver h50100 may transmit signaling information of a system level to the signaling parser h50300.
  • the 360-degree video receiving apparatus may further include a file parser (not shown).
  • the file parser may extract a 2D image and signaling information by processing a data signal received by the receiver h50100.
  • the data signal processing of the file parser may be processing data formatted in a file format.
  • the file format may be an ISO BMFF file format.
  • the file format may include signaling information for 2D image and 360 degree video.
  • the file parser may extract signaling information about 2D image and / or 360 degree video included in the file format.
  • the file parser may receive feedback information from the renderer h50400 and transmit data corresponding to an area related to the feedback information to the data decoder h50200.
  • the feedback information may include user viewpoint information
  • the file parser receives user viewpoint information received from the renderer h50400 and receives data corresponding to at least one area included in the user viewpoint information.
  • the data decoder may be transferred to the h50200. A detailed description of this embodiment is as described with reference to FIG. 47.
  • the data decoder h50200 may decode data included in a data signal received by the receiver h50100 or data extracted by the file parser.
  • the data decoder h50200 may decode a 2D image including 360 degree video data and transmit the decoded 2D image to the renderer h50400.
  • the 2D image may include video information signaling information.
  • the data decoder h50200 may transfer the signaling information to the signaling decoder h50300.
  • the data decoder h50200 may receive feedback information from the renderer h50400 and transmit data corresponding to an area related to the feedback information to the renderer h50400.
  • the feedback information may include user viewpoint information
  • the data decoder h50200 receives user viewpoint information received from the renderer h50400 and corresponds to at least one area included in the user viewpoint information. To transmit the data to the renderer h50400.
  • a detailed description of this embodiment is as described with reference to FIG. 46.
  • the signaling decoder h50300 may parse signaling information included in the data signal.
  • the signaling information may include system level signaling information, file format level signaling information, and / or video level signaling information.
  • the renderer h50400 may render 360 degree video data using the 2D image decoded by the data decoder h50200 and the signaling information decoded by the signaling decoder h50300.
  • the renderer h50400 may render a 360-degree video to a 3D model to provide an omnidirectional visual experience to the user.
  • the renderer h50400 may generate user viewpoint information.
  • the user viewpoint information may be generated by detecting a viewport of a user or may be generated by input of a user.
  • the user viewpoint information may be included in the feedback information and fed back to the data decoder h50200, the file parser (not shown), and / or the receiver h50100.
  • a detailed description of the feedback of the user view information is as described with reference to FIGS. 46-48.
  • the signaling information may be referred to as 360 video related metadata or 360 video related signaling information.
  • the signaling information may be included in the video level, file format level, and / or system level.
  • the video level signaling there is an embodiment in which signaling information is included in the SEI message
  • the file format level signaling there is an embodiment in which the signaling information is included in a file box of ISO BMFF.
  • the information is included in the DASH MPD.
  • the signaling information may include grouping information for grouping the two or more regions. Signaling related to such grouping may be applied to the contents described with reference to FIGS. 12-28.
  • the grouping information may include first group information and second group information.
  • the first group information may provide grouping information on individual areas or multiple areas that can be selectively reproduced or streamed.
  • the first group information may provide grouping information on a track that can be selectively played back or streamed among a plurality of tracks when individual areas are stored in one track or multiple areas are stored in one track.
  • Specific examples of the first group information include the alternate_group field of the tkhd box and the track_group_id field of the ttgr box described with reference to FIGS. 13-15.
  • the second group information may provide grouping information for individual areas or multiple areas that can be switched to each other.
  • the second group information may provide grouping information on tracks that are mutually switchable among a plurality of tracks when individual regions are stored in one track or multiple regions are stored in one track.
  • the grouping on whether to be switchable should be premised that selective playback or streaming is possible, there may be a restriction that the group according to the second group information should be included in the group according to the first group information.
  • Specific examples of the second group information include the alternate_group field of the tsel box and the track_group_id field of the tsgr box described with reference to FIGS. 14-15.
  • the signaling information may further include coding dependency information between individual regions, between multiple regions, or between the individual regions and the plurality of regions. As described above with respect to the coding dependency information, the content described with reference to FIGS. 15-28 may be applied.
  • the signaling information may include projection scheme information indicating a projection scheme used to project the 360 degree video data onto the 2D image and / or a 360 degree image included in the 2D image and the 360 degree video data. It may further include mapping information between.
  • the projection scheme information may refer to vr_mapping_type of FIGS. 24-45.
  • the mapping information may mean mapping information between the 2D frame described with reference to FIGS. 24-45 and the 360 degree video acquisition space or the user viewpoint space.
  • the signaling information may further include rotation information indicating a corresponding rotation angle when at least one of the individual regions of the 2D image is rotated at a predetermined angle and mapped to the 2D image.
  • the rotation information may mean roll_in_degree [i] described with reference to FIGS. 29-45.
  • a method of receiving 360 degree video is disclosed.
  • the method of receiving 360-degree video according to another aspect of the present invention may include a series of processes performed by each component of the above-described 360-degree video receiving apparatus.
  • a method of receiving 360-degree video comprises: receiving a 2D image including 360-degree video data and a data signal including signaling information about the 360-degree video data; And decoding the included signaling information, decoding the 2D image included in the data signal, and processing the 2D image to render the 360 degree video data in 3D space.
  • the 2D image received in the step of receiving the data signal may be divided into two or more areas and encoded in units of individual areas or multiple areas, and the signaling information includes grouping information for grouping the two or more areas. can do.
  • the signaling information may be applied to the method of transmitting the 360 degree video described above with reference to FIGS. 49 and 50 and the description of the signaling information in the 360 degree video receiving apparatus.
  • the internal components of the apparatus described above may be processors for executing successive procedures stored in a memory, or hardware components configured with other hardware. They can be located inside or outside the device.
  • the above-described modules may be omitted or replaced by other modules performing similar / same operations according to the embodiment.
  • Each part, module, or unit described above may be a processor or hardware part that executes successive procedures stored in a memory (or storage unit). Each of the steps described in the above embodiments may be performed by a processor or hardware parts. Each module / block / unit described in the above embodiments can operate as a hardware / processor.
  • the methods proposed by the present invention can be executed as code. This code can be written to a processor readable storage medium and thus read by a processor provided by an apparatus.
  • Apparatus and method according to the present invention is not limited to the configuration and method of the embodiments described as described above, the above-described embodiments may be selectively all or part of each embodiment so that various modifications can be made It may be configured in combination.
  • the processor-readable recording medium includes all kinds of recording devices that store data that can be read by the processor.
  • Examples of the processor-readable recording medium include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like, and may also be implemented in the form of a carrier wave such as transmission over the Internet.
  • the processor-readable recording medium can also be distributed over network coupled computer systems so that the processor-readable code is stored and executed in a distributed fashion.
  • the present invention is used in a series of VR related fields.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

본 발명의 일 측면에 따르면 360도 비디오를 전송하는 방법이 개시된다. 본 발명의 일 실시예에 따른 360도 비디오를 전송하는 방법은, 360도 비디오 데이터를 획득하는 단계; 상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 단계; 상기 2D 이미지를 2 이상의 영역으로 나누고 개별 영역 또는 다수 영역의 단위로 인코딩하는 단계; 상기 360도 비디오 데이터에 대한 시그널링 정보를 생성하는 단계; 및 상기 인코딩된 2D 이미지 및 상기 시그널링 정보를 포함하는 데이터 신호를 전송하는 단계; 를 포함하고, 상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함한다.

Description

360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치
본 발명은 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치에 관한 것이다.
VR (Virtual Reality) 시스템은 사용자에게 전자적으로 투영된 환경내에 있는 것 같은 감각을 제공한다. VR 을 제공하기 위한 시스템은 더 고화질의 이미지들과, 공간적인 음향을 제공하기 위하여 더 개선될 수 있다. VR 시스템은 사용자가 인터랙티브하게 VR 컨텐트들을 소비할 수 있도록 할 수 있다.
VR 시스템은 더 효율적으로 VR 환경을 사용자에게 제공하기 위하여, 개선될 필요가 있다. 이를 위하여 VR 컨텐츠와 같은 많은 양의 데이터 전송을 위한 데이터 전송 효율, 송수신 네트워크 간의 강건성, 모바일 수신 장치를 고려한 네트워크 유연성, 효율적인 재생 및 시그널링을 위한 방안등이 제안되어야 한다.
본 발명의 목적에 따라, 본 발명은 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치를 제안한다.
본 발명의 일 측면에 따르면, 360도 비디오 수신 장치가 개시된다.
본 발명의 일 실시예에 따른 360도 비디오 수신 장치는, 360도 비디오 데이터를 포함하는 2D 이미지 및 상기 360도 비디오 데이터에 대한 시그널링 정보를 포함하는 데이터 신호를 수신하는 수신부 - 상기 2D 이미지는 2 이상의 영역으로 나뉘어 개별 영역 또는 다수 영역의 단위로 인코딩되고, 상기 데이터 신호에 포함된 상기 2D 이미지를 디코딩하는 데이터 디코더, 상기 데이터 신호에 포함된 상기 시그널링 정보를 디코딩하는 시그널링 디코더, 및 상기 2D 이미지를 처리하여 상기 360도 비디오 데이터를 3D 공간으로 렌더링하는 렌더러 를 포함하고, 상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다.
상기 그룹핑 정보는 재생 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제1 그룹 정보를 포함할 수 있다.
또한, 상기 그룹핑 정보는 상호 스위칭이 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제2 그룹 정보를 더 포함할 수 있다.
상기 시그널링 정보는 개별 영역들 사이, 다수 영역들 사이 또는 상기 개별 영역과 상기 다수 영역 사이의 코딩 디펜던시 정보를 더 포함할 수 있다.
상기 시그널링 정보는 상기 360도 비디오 데이터가 상기 2D 이미지 상에 프로젝션되는데 사용된 프로젝션 스킴(scheme) 을 지시하는 프로젝션 스킴 정보를 더 포함할 수 있다.
상기 시그널링 정보는 상기 2D 이미지와 360도 비디오 데이터에 포함된 360도 이미지 사이의 맵핑 정보를 더 포함할 수 있다.
상기 시그널링 정보는 상기 2D 이미지의 개별 영역들 중 적어도 하나가 소정 각도로 회전하여 2D 이미지에 맵핑될 경우 해당 회전 각도를 지시하는 회전 정보를 더 포함할 수 있다.
상기 렌더러는 적어도 하나의 영역을 포함하는 사용자 시점 정보를 생성하여 출력할 수 있다.
일 실시예에서, 상기 데이터 디코더는 상기 렌더러로부터 상기 사용자 시점 정보를 입력받고, 상기 사용자 시점 정보에 포함된 상기 적어도 하나의 영역에 해당하는 데이터를 디코딩할 수 있다.
다른 실시예에서, 상기 장치는 상기 데이터 신호에 포함된 파일 포맷을 디캡슐레이션하는 파일 파서를 더 포함하고, 상기 파일 파서는 상기 렌더러로부터 상기 사용자 시점 정보를 입력받고, 상기 사용자 시점 정보에 포함된 상기 적어도 하나의 영역에 해당하는 데이터를 추출할 수 있다.
또 다른 실시예에서, 상기 수신부는 상기 렌더러로부터 상기 사용자 시점 정보를 입력받고, 상기 사용자 시점 정보에 포함된 상기 적어도 하나의 영역에 해당하는 데이터를 수신할 수 있다.
본 발명의 다른 측면에 따르면, 360도 비디오를 전송하는 방법이 개시된다.
본 발명의 일 실시예에 따른 360도 비디오를 전송하는 방법은 360도 비디오 데이터를 획득하는 단계, 상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 단계, 상기 2D 이미지를 2 이상의 영역으로 나누고 개별 영역 또는 다수 영역의 단위로 인코딩하는 단계, 상기 360도 비디오 데이터에 대한 시그널링 정보를 생성하는 단계, 및 상기 인코딩된 2D 이미지 및 상기 시그널링 정보에 전송을 위한 처리를 수행하고, 방송망을 통하여 전송하는 단계를 포함하고, 상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다.
상기 그룹핑 정보는 재생 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제1 그룹 정보를 포함할 수 있다.
상기 그룹핑 정보는 상호 스위칭이 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제2 그룹 정보를 더 포함할 수 있다.
상기 시그널링 정보는 개별 영역들 사이, 다수 영역들 사이 또는 상기 개별 영역과 상기 다수 영역 사이의 코딩 디펜던시 정보를 더 포함할 수 있다.
상기 시그널링 정보는 상기 360도 비디오 데이터가 상기 2D 이미지 상에 프로젝션되는데 사용된 프로젝션 스킴(scheme) 을 지시하는 프로젝션 스킴 정보를 더 포함할 수 있다.
상기 시그널링 정보는 상기 2D 이미지와 360도 비디오 데이터에 포함된 360도 이미지 사이의 맵핑 정보를 더 포함할 수 있다.
상기 시그널링 정보는 상기 2D 이미지의 개별 영역들 중 적어도 하나가 소정 각도로 회전하여 2D 이미지에 맵핑될 경우 해당 회전 각도를 지시하는 회전 정보를 더 포함할 수 있다.
본 발명의 또 다른 측면에 따르면, 360도 비디오 전송 장치 및 360도 비디오를 전송하는 방법이 개시된다.
본 발명은 지상파 방송망과 인터넷 망을 사용하는 차세대 하이브리드 방송을 지원하는 환경에서 360도 컨텐츠를 효율적으로 전송할 수 있다.
본 발명은 사용자의 360도 컨텐츠 소비에 있어서, 인터랙티브 경험(interactive experience) 를 제공하기 위한 방안을 제안할 수 있다.
본 발명은 사용자의 360도 컨텐츠 소비에 있어서, 360도 컨텐츠 제작자가 의도하는 바가 정확히 반영되도록 시그널링 하는 방안을 제안할 수 있다.
본 발명은 360도 컨텐츠 전달에 있어, 효율적으로 전송 캐패시티를 늘리고, 필요한 정보가 전달될 수 있도록 하는 방안을 제안할 수 있다.
도 1 은 본 발명에 따른 360도 비디오 제공을 위한 전체 아키텍처를 도시한 도면이다.
도 2 은 본 발명의 일 측면(aspect)에 따른 360도 비디오 전송 장치를 도시한 도면이다.
도 3 은 본 발명의 다른 측면에 따른 360도 비디오 수신 장치를 도시한 도면이다.
도 4 는 본 발명의 다른 실시예에 따른 360도 비디오 전송 장치/360도 비디오 수신 장치를 도시한 도면이다.
도 5 는 본 발명의 3D 공간을 설명하기 위한 비행기 주축(Aircraft Principal Axes) 개념을 도시한 도면이다.
도 6 는 본 발명의 일 실시예에 따른 프로젝션 스킴들을 도시한 도면이다.
도 7 은 본 발명의 일 실시예에 따른 타일(Tile)을 도시한 도면이다.
도 8 은 본 발명의 일 실시예에 따른 360도 비디오 관련 메타데이터를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 미디어 파일의 구조를 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 ISOBMFF 내의 박스들의 계층적 구조를 도시한 도면이다.
도 11 은 본 발명의 일 실시예에 따른 DASH 기반 적응형(Adaptive) 스트리밍 모델의 전반적인 동작을 도시한 도면이다.
도 12는 본 발명의 일 실시예에 따른 360도 비디오 처리 방법을 도시한 도면이다.
도 13은 본 발명의 일 실시예에 따른 track header box 를 도시한 도면이다.
도 14는 본 발명의 일 실시예에 따른 track selection box를 도시한 도면이다.
도 15는 본 발명의 일 실시예에 따른 track group box를 도시한 도면이다.
도 16은 본 발명의 일 실시예에 따른 track reference box를 도시한 도면이다.
도 17은 본 발명의 일 실시예에 따른 full picture sequence를 도시한 도면이다.
도 18 및 도 19는 360도 비디오가 4개의 tile 트랙과, 1개의 non-tile 트랙으로 구성되고, extractor가 사용되지 않은 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 20 및 도 21은 360도 비디오가 4개의 tile 트랙과, 1개의 non-tile 트랙으로 구성되고, extractor가 사용된 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 22 및 도 23은 360도 비디오가 1개의 full picture 트랙과, 4개의 tile 트랙으로 구성되고, tile 트랙에서 extractor를 사용하여 full picture를 참조하는 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 24는 본 발명의 다른 실시예에 따른 full picture sequence를 도시한 도면이다.
도 25 및 도 26은 360도 비디오가 base layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙과, enhancement layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙으로 구성되고, extractor가 사용되지 않은 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 27 및 도 28은 360도 비디오가 base layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙과, enhancement layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙으로 구성되고, extractor가 사용된 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 29는 360도 비디오의 획득 공간 및/또는 사용자 시점 공간을 도시한 도면이다.
도 30은 본 발명의 일 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 31은 본 발명의 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 32는 본 발명의 일 실시예에 따른 360도 비디오가 2D 프레임안에 맵핑된 모습을 도시한 도면이다.
도 33 및 도 34는 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 35는 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 36은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 37은 본 발명의 다른 실시예에 따른 VR video region box를 도시한 도면이다.
도 38은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 39는 vr video region info group entry를 이용하여 region과 tile region 사이의 관계를 나타낸 도면이다.
도 40은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 41은 DASH를 통해 전송되는 VR 비디오의 획득 공간에서의 영역 범위 또는 사용자 시점 지원 범위를 지시하기 위한 @value의 syntax를 도시한 도면이다.
도 42는 full picture frame, region으로 구획된 full picture frame을, 도 43은 도 42와 관련된 시그널링 정보를 포함하는 MPD를 도시한 도면이다.
도 44는 full picture frame, region으로 구획된 full picture frame을, 도 45는 도 44와 관련된 시그널링 정보를 포함하는 MPD를 도시한 도면이다.
도 46은 본 발명의 일 실시예에 따른 수신기 동작을 도시한 도면이다.
도 47은 본 발명의 다른 실시예에 따른 수신기 동작을 도시한 도면이다.
도 48은 본 발명의 또 다른 실시예에 따른 수신기 동작을 도시한 도면이다.
도 49는 본 발명의 일 실시예에 따른 360도 비디오를 전송하는 방법을 도시한 도면이다.
도 50은 본 발명의 일 실시예에 따른 360도 비디오 수신 장치를 도시한 도면이다.
본 발명의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 본 발명의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 본 발명의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
본 발명에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
도 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는 본 발명의 일 실시예에 따른 미디어 파일의 구조를 도시한 도면이다.
도 10은 본 발명의 일 실시예에 따른 ISOBMFF 내의 박스들의 계층적 구조를 도시한 도면이다.
오디오 또는 비디오 등의 미디어 데이터를 저장하고 전송하기 위하여, 정형화된 미디어 파일 포맷이 정의될 수 있다. 실시예에 따라 미디어 파일은 ISO BMFF (ISO base media file format) 를 기반으로한 파일 포맷을 가질 수 있다.
본 발명에 따른 미디어 파일은 적어도 하나 이상의 박스를 포함할 수 있다. 여기서 박스(box)는 미디어 데이터 또는 미디어 데이터에 관련된 메타데이터 등을 포함하는 데이터 블락 내지 오브젝트일 수 있다. 박스들은 서로 계층적 구조를 이룰 수 있으며, 이에 따라 데이터들이 분류되어 미디어 파일이 대용량 미디어 데이터의 저장 및/또는 전송에 적합한 형태를 띄게 될 수 있다. 또한 미디어 파일은, 사용자가 미디어 컨텐츠의 특정지점으로 이동하는 등, 미디어 정보에 접근하는데 있어 용이한 구조를 가질 수 있다.
본 발명에 따른 미디어 파일은 ftyp 박스, moov 박스 및/또는 mdat 박스를 포함할 수 있다.
ftyp 박스(파일 타입 박스)는 해당 미디어 파일에 대한 파일 타입 또는 호환성 관련 정보를 제공할 수 있다. ftyp 박스는 해당 미디어 파일의 미디어 데이터에 대한 구성 버전 정보를 포함할 수 있다. 복호기는 ftyp 박스를 참조하여 해당 미디어 파일을 구분할 수 있다.
moov 박스(무비 박스)는 해당 미디어 파일의 미디어 데이터에 대한 메타 데이터를 포함하는 박스일 수 있다. moov 박스는 모든 메타 데이터들을 위한 컨테이너 역할을 할 수 있다. moov 박스는 메타 데이터 관련 박스들 중 최상위 계층의 박스일 수 있다. 실시예에 따라 moov 박스는 미디어 파일 내에 하나만 존재할 수 있다.
mdat 박스(미디어 데이터 박스) 는 해당 미디어 파일의 실제 미디어 데이터들을 담는 박스일 수 있다. 미디어 데이터들은 오디오 샘플 및/또는 비디오 샘플들을 포함할 수 있는데, mdat 박스는 이러한 미디어 샘플들을 담는 컨테이너 역할을 할 수 있다.
실시예에 따라 전술한 moov 박스는 mvhd 박스, trak 박스 및/또는 mvex 박스 등을 하위 박스로서 더 포함할 수 있다.
mvhd 박스(무비 헤더 박스)는 해당 미디어 파일에 포함되는 미디어 데이터의 미디어 프리젠테이션 관련 정보를 포함할 수 있다. 즉, mvhd 박스는 해당 미디어 프리젠테이션의 미디어 생성시간, 변경시간, 시간규격, 기간 등의 정보를 포함할 수 있다.
trak 박스(트랙 박스)는 해당 미디어 데이터의 트랙에 관련된 정보를 제공할 수 있다. trak 박스는 오디오 트랙 또는 비디오 트랙에 대한 스트림 관련 정보, 프리젠테이션 관련 정보, 액세스 관련 정보 등의 정보를 포함할 수 있다. trak 박스는 트랙의 개수에 따라 복수개 존재할 수 있다.
trak 박스는 실시예에 따라 tkhd 박스(트랙 헤더 박스)를 하위 박스로서 더 포함할 수 있다. tkhd 박스는 trak 박스가 나타내는 해당 트랙에 대한 정보를 포함할 수 있다. tkhd 박스는 해당 트랙의 생성시간, 변경시간, 트랙 식별자 등의 정보를 포함할 수 있다.
mvex 박스(무비 익스텐드 박스)는 해당 미디어 파일에 후술할 moof 박스가 있을 수 있음을 지시할 수 있다. 특정 트랙의 모든 미디어 샘플들을 알기 위해서, moof 박스들이 스캔되어야할 수 있다.
본 발명에 따른 미디어 파일은, 실시예에 따라, 복수개의 프래그먼트로 나뉘어질 수 있다(t18010). 이를 통해 미디어 파일이 분할되어 저장되거나 전송될 수 있다. 미디어 파일의 미디어 데이터들(mdat 박스)은 복수개의 프래그먼트로 나뉘어지고, 각각의 프래그먼트는 moof 박스와 나뉘어진 mdat 박스를 포함할 수 있다. 실시예에 따라 프래그먼트들을 활용하기 위해서는 ftyp 박스 및/또는 moov 박스의 정보가 필요할 수 있다.
moof 박스(무비 프래그먼트 박스)는 해당 프래그먼트의 미디어 데이터에 대한 메타 데이터를 제공할 수 있다. moof 박스는 해당 프래그먼트의 메타데이터 관련 박스들 중 최상위 계층의 박스일 수 있다.
mdat 박스(미디어 데이터 박스)는 전술한 바와 같이 실제 미디어 데이터를 포함할 수 있다. 이 mdat 박스는 각각의 해당 프래그먼트에 해당하는 미디어 데이터들의 미디어 샘플들을 포함할 수 있다.
실시예에 따라 전술한 moof 박스는 mfhd 박스 및/또는 traf 박스 등을 하위 박스로서 더 포함할 수 있다.
mfhd 박스(무비 프래그먼트 헤더 박스)는 분할된 복수개의 프래그먼트들 간의 연관성과 관련한 정보들을 포함할 수 있다. mfhd 박스는 시퀀스 넘버(sequence number) 를 포함하여, 해당 프래그먼트의 미디어 데이터가 분할된 몇 번째 데이터인지를 나타낼 수 있다. 또한, mfhd 박스를 이용하여 분할된 데이터 중 누락된 것은 없는지 여부가 확인될 수 있다.
traf 박스(트랙 프래그먼트 박스)는 해당 트랙 프래그먼트에 대한 정보를 포함할 수 있다. traf 박스는 해당 프래그먼트에 포함되는 분할된 트랙 프래그먼트에 대한 메타데이터를 제공할 수 있다. traf 박스는 해당 트랙 프래그먼트 내의 미디어 샘플들이 복호화/재생될 수 있도록 메타데이터를 제공할 수 있다. traf 박스는 트랙 프래그먼트의 개수에 따라 복수개 존재할 수 있다.
실시예에 따라 전술한 traf 박스는 tfhd 박스 및/또는 trun 박스 등을 하위 박스로서 더 포함할 수 있다.
tfhd 박스(트랙 프래그먼트 헤더 박스)는 해당 트랙 프래그먼트의 헤더 정보를 포함할 수 있다. tfhd 박스는 전술한 traf 박스가 나타내는 트랙 프래그먼트의 미디어 샘플들에 대하여, 기본적인 샘플크기, 기간, 오프셋, 식별자 등의 정보를 제공할 수 있다.
trun 박스(트랙 프래그먼트 런 박스)는 해당 트랙 프래그먼트 관련 정보를 포함할 수 있다. trun 박스는 미디어 샘플별 기간, 크기, 재생시점 등과 같은 정보를 포함할 수 있다.
전술한 미디어 파일 내지 미디어 파일의 프래그먼트들은 세그먼트들로 처리되어 전송될 수 있다. 세그먼트에는 초기화 세그먼트(initialization segment) 및/또는 미디어 세그먼트(media segment) 가 있을 수 있다.
도시된 실시예(t18020)의 파일은, 미디어 데이터는 제외하고 미디어 디코더의 초기화와 관련된 정보 등을 포함하는 파일일 수 있다. 이 파일은 예를 들어 전술한 초기화 세그먼트에 해당할 수 있다. 초기화 세그먼트는 전술한 ftyp 박스 및/또는 moov 박스를 포함할 수 있다.
도시된 실시예(t18030)의 파일은, 전술한 프래그먼트를 포함하는 파일일 수 있다. 이 파일은 예를 들어 전술한 미디어 세그먼트에 해당할 수 있다. 미디어 세그먼트는 전술한 moof 박스 및/또는 mdat 박스를 포함할 수 있다. 또한, 미디어 세그먼트는 styp 박스 및/또는 sidx 박스를 더 포함할 수 있다.
styp 박스(세그먼트 타입 박스) 는 분할된 프래그먼트의 미디어 데이터를 식별하기 위한 정보를 제공할 수 있다. styp 박스는 분할된 프래그먼트에 대해, 전술한 ftyp 박스와 같은 역할을 수행할 수 있다. 실시예에 따라 styp 박스는 ftyp 박스와 동일한 포맷을 가질 수 있다.
sidx 박스(세그먼트 인덱스 박스) 는 분할된 프래그먼트에 대한 인덱스를 나타내는 정보를 제공할 수 있다. 이를 통해 해당 분할된 프래그먼트가 몇번째 프래그먼트인지가 지시될 수 있다.
실시예에 따라(t18040) ssix 박스가 더 포함될 수 있는데, ssix 박스(서브 세그먼트 인덱스 박스)는 세그먼트가 서브 세그먼트로 더 나뉘어지는 경우에 있어, 그 서브 세그먼트의 인덱스를 나타내는 정보를 제공할 수 있다.
미디어 파일 내의 박스들은, 도시된 실시예(t18050)와 같은 박스 내지 풀 박스(FullBox) 형태를 기반으로, 더 확장된 정보들을 포함할 수 있다. 이 실시예에서 size 필드, largesize 필드는 해당 박스의 길이를 바이트 단위 등으로 나타낼 수 있다. version 필드는 해당 박스 포맷의 버전을 나타낼 수 있다. type 필드는 해당 박스의 타입 내지 식별자를 나타낼 수 있다. flags 필드는 해당 박스와 관련된 플래그 등을 나타낼 수 있다.
도 11 은 본 발명의 일 실시예에 따른 DASH 기반 적응형(Adaptive) 스트리밍 모델의 전반적인 동작을 도시한 도면이다.
도시된 실시예(t50010)에 따른 DASH 기반 적응형 스트리밍 모델은, HTTP 서버와 DASH 클라이언트 간의 동작을 기술하고 있다. 여기서 DASH (Dynamic Adaptive Streaming over HTTP) 는, HTTP 기반 적응형 스트리밍을 지원하기 위한 프로토콜로서, 네트워크 상황에 따라 동적으로 스트리밍을 지원할 수 있다. 이에 따라 AV 컨텐트 재생이 끊김없이 제공될 수 있다.
먼저 DASH 클라이언트는 MPD 를 획득할 수 있다. MPD 는 HTTP 서버 등의 서비스 프로바이더로부터 전달될 수 있다. DASH 클라이언트는 MPD 에 기술된 세그먼트에의 접근 정보를 이용하여 서버로 해당 세그먼트들을 요청할 수 있다. 여기서 이 요청은 네트워크 상태를 반영하여 수행될 수 있다.
DASH 클라이언트는 해당 세그먼트를 획득한 후, 이를 미디어 엔진에서 처리하여 화면에 디스플레이할 수 있다. DASH 클라이언트는 재생 시간 및/또는 네트워크 상황 등을 실시간으로 반영하여, 필요한 세그먼트를 요청, 획득할 수 있다(Adaptive Streaming). 이를 통해 컨텐트가 끊김없이 재생될 수 있다.
MPD (Media Presentation Description) 는 DASH 클라이언트로 하여금 세그먼트를 동적으로 획득할 수 있도록 하기 위한 상세 정보를 포함하는 파일로서 XML 형태로 표현될 수 있다.
DASH 클라이언트 컨트롤러(DASH Client Controller) 는 네트워크 상황을 반영하여 MPD 및/또는 세그먼트를 요청하는 커맨드를 생성할 수 있다. 또한, 이 컨트롤러는 획득된 정보를 미디어 엔진 등등의 내부 블락에서 사용할 수 있도록 제어할 수 있다.
MPD 파서(Parser) 는 획득한 MPD 를 실시간으로 파싱할 수 있다. 이를 통해, DASH 클라이언트 컨트롤러는 필요한 세그먼트를 획득할 수 있는 커맨드를 생성할 수 있게 될 수 있다.
세그먼트 파서(Parser) 는 획득한 세그먼트를 실시간으로 파싱할 수 있다. 세그먼트에 포함된 정보들에 따라 미디어 엔진 등의 내부 블락들은 특정 동작을 수행할 수 있다.
HTTP 클라이언트는 필요한 MPD 및/또는 세그먼트 등을 HTTP 서버에 요청할 수 있다. 또한 HTTP 클라이언트는 서버로부터 획득한 MPD 및/또는 세그먼트들을 MPD 파서 또는 세그먼트 파서로 전달할 수 있다.
미디어 엔진(Media Engine) 은 세그먼트에 포함된 미디어 데이터를 이용하여 컨텐트를 화면상에 표시할 수 있다. 이 때, MPD 의 정보들이 활용될 수 있다.
DASH 데이터 모델은 하이라키 구조(t50020)를 가질 수 있다. 미디어 프리젠테이션은 MPD 에 의해 기술될 수 있다. MPD 는 미디어 프리젠테이션를 만드는 복수개의 피리오드(Period)들의 시간적인 시퀀스를 기술할 수 있다. 피리오드는 미디어 컨텐트의 한 구간을 나타낼 수 있다.
한 피리오드에서, 데이터들은 어댑테이션 셋들에 포함될 수 있다. 어댑테이션 셋은 서로 교환될 수 있는 복수개의 미디어 컨텐트 컴포넌트들의 집합일 수 있다. 어댑테이션은 레프리젠테이션들의 집합을 포함할 수 있다. 레프리젠테이션은 미디어 컨텐트 컴포넌트에 해당할 수 있다. 한 레프리젠테이션 내에서, 컨텐트는 복수개의 세그먼트들로 시간적으로 나뉘어질 수 있다. 이는 적절한 접근성과 전달(delivery)를 위함일 수 있다. 각각의 세그먼트에 접근하기 위해서 각 세그먼트의 URL 이 제공될 수 있다.
MPD 는 미디어 프리젠테이션에 관련된 정보들을 제공할 수 있고, 피리오드 엘레멘트, 어댑테이션 셋 엘레멘트, 레프리젠테이션 엘레멘트는 각각 해당 피리오드, 어댑테이션 셋, 레프리젠테이션에 대해서 기술할 수 있다. 레프리젠테이션은 서브 레프리젠테이션들로 나뉘어질 수 있는데, 서브 레프리젠테이션 엘레멘트는 해당 서브 레프리젠테이션에 대해서 기술할 수 있다.
여기서 공통(Common) 속성/엘레멘트들이 정의될 수 있는데, 이 들은 어댑테이션 셋, 레프리젠테이션, 서브 레프리젠테이션 등에 적용될 수 (포함될 수) 있다. 공통 속성/엘레멘트 중에는 에센셜 프로퍼티(EssentialProperty) 및/또는 서플멘탈 프로퍼티(SupplementalProperty) 가 있을 수 있다.
에센셜 프로퍼티는 해당 미디어 프리젠테이션 관련 데이터를 처리함에 있어서 필수적이라고 여겨지는 엘레멘트들을 포함하는 정보일 수 있다. 서플멘탈 프로퍼티는 해당 미디어 프리젠테이션 관련 데이터를 처리함에 있어서 사용될 수도 있는 엘레멘트들을 포함하는 정보일 수 있다. 실시예에 따라 후술할 시그널링 정보는, MPD 를 통해 전달되는 경우, 에센셜 프로퍼티 및/또는 서플멘탈 프로퍼티 내에 정의되어 전달될 수 있다.
DASH 기반 디스크립터는 @schemeIdUri 필드, @value 필드 및/또는 @id 필드를 포함할 수 있다. @schemeIdUri 필드는 해당 디스크립터의 스킴(scheme)을 식별하기 위한 URI 를 제공할 수 있다. @value 필드는 @schemeIdUri 필드가 지시하는 스킴에 의해 그 의미가 정의되는 값(value) 들을 가질 수 있다. 즉, @value 필드는 해당 스킴에 따른 디스크립터 엘레멘트들의 값들을 가질 수 있으며, 이들은 파라미터라고 불릴 수 있다. 이들은 서로 ',' 에 의해 구분될 수 있다. @id 는 해당 디스크립터의 식별자를 나타낼 수 있다. 동일한 식별자를 가지는 경우, 동일한 스킴 ID, 값(value), 파라미터를 포함할 수 있다.
360 비디오 관련 메타데이터의 각각의 실시예들은 DASH 기반 디스크립터 형태로 다시 쓸 수 있다. DASH 에 따라 360 비디오 데이터가 전달되는 경우, 360 비디오 관련 메타데이터들은 DASH 디스크립터 형태로 기술되어, MPD 등에 포함되어 수신측으로 전달될 수 있다. 이 디스크립터들은 전술한 에센셜 프로퍼티 디스크립터 및/또는 서플멘탈 프로퍼티 디스크립터의 형태로 전달될 수 있다. 이 디스크립터들은 MPD 의 어댑테이션 셋, 레프리젠테이션, 서브 레프리젠테이션 등에 포함되어 전달될 수 있다.
도 12는 본 발명의 일 실시예에 따른 360도 비디오 처리 방법을 도시한 도면이다.
일 실시예에 따른 360도 비디오 처리 방법은, 360도 비디오를 획득하는 단계(S120010), 획득한 비디오를 스티칭하고 2D 프레임안에 맵핑하는 단계(S120020), 2D 프레임을 개별 영역로 나누어 인코딩하는 단계(S120030), 개별 영역 별로 데이터를 저장하고, 전송 포맷으로 구성하는 단계(S120040), 사용자의 시점에 따라 포맷팅된 데이터를 선택하는 단계(S120050), 선택된 데이터를 전송하는 단계(S120060), 전송된 데이터를 디코딩하는 단계(S120070), 디코딩된 데이터를 프로젝션하는 단계 및 렌더링하는 단계(S120080)를 포함한다.
360도 비디오를 획득하는 단계(S120010)는, 하나 또는 그 이상의 카메라를 통해 전방향(360도)으로 비디오를 획득하는 단계일 수 있다. 대안적인 실시예에서, 360도 비디오를 획득하는 단계(S120010)는, 하나 또는 그 이상의 카메라를 통해 360도 이내의 비디오를 획득하는 단계일 수 있다. 다른 측면에서, 360도의 비디오를 획득하는 단계(S120010)는, 실제 카메라를 이용하여 360도 비디오를 획득하는 대신, 360도 비디오에 해당하는 데이터를 생성하여 360도 비디오를 획득하는 단계일 수 있다.
획득한 비디오를 스티칭하고, 2D 프레임안에 맵핑하는 단계(S120020)는, 360도 비디오를 획득하는 단계에서 획득한 비디오를 3차원 지오메트리(3D geometry)안에 스티칭하는 과정과, 소정의 맵핑 방법을 이용하여 2D 프레임안에 스티칭된 비디오를 매핑하는 과정을 포함할 수 있다. 여기서, 스티칭하는 과정은 중첩 영역 제거와 같은 보정 작업을 통해 360도 비디오를 하나의 3차원 지오메트리(3D geometry)안에 스티칭할 수 있다. 여기서, 2D 프레임안에 스티칭된 비디오를 매핑하는 과정은, 프로젝션 스킴에 따라 스티칭된 비디오를 프로젝션하는 과정과, 프로젝션을 통해 생성된 적어도 하나의 2차원의 면(surface)을 2D 프레임안에 매핑하는 과정을 포함할 수 있다.
2D 프레임을 개별 영역로 나누어 인코딩하는 단계(S120030)는, 2D 프레임 맵핑 과정을 통해 생성된 2D 프레임 시퀀스를 개별 영역으로 나누는 과정과, 나누어진 개별 영역을 인코딩하는 과정을 포함할 수 있다. 여기서, 개별 영역은 전술한 region에 해당하는 개념에 해당한다. 다만, tile은 region과 동일하게 사용될 수도 있으므로, 개별 영역은 tile과 동일할 수도 있다. 일 실시예에 따르면, 2D 프레임 시퀀스를 개별 영역으로 나누는 과정은 HEVC tile을 이용하여 2D 프레임 시퀀스를 독립적으로 사용 가능한 영역으로 나누는 과정일 수 있다.
개별 영역별로 데이터를 저장하고, 전송 포맷으로 구성하는 단계(S120040)는 개별 영역으로 인코딩된 데이터를 개별 영역 별로 접근 및 사용 가능한 형태의 저장 포맷 및/또는 전송 포맷으로 구성하는 단계일 수 있다.
이상의 단계를 거쳐 생성된 데이터는 수신측으로 전송될 수 있다(S120060). 전송된 데이터는, 디코딩하는 단계(S120070), 디코딩된 데이터를 프로젝션하는 단계 및 렌더링하는 단계(S120080)를 거쳐 수신측, 즉 수신 디바이스에서 소비될 수 있다. 이때, 수신 디바이스는 사용자 시점을 감지하여 사용자의 시점에 부합하는 데이터에 대해 디코딩(S120070), 프로젝션 및 렌더링(S120080)을 수행할 수 있다. 여기서, 사용자의 시점에 부합하는 데이터에 대한 디코딩, 프로젝션 및 렌더링 과정은 시간의 흐름에 따라 반복적으로 수행될 수 있다. 한편, 수신측에서의 프로젝션은, 2D 프레임에 매핑된 데이터를 해당 프로젝션 스킴에 따라 복원하는 과정을 의미할 수 있다. 즉, 수신측에서의 프로젝션은 리-프로젝션이라고 지칭될 수도 있다.
일 실시예에 따르면, 수신측에서의 360도 데이터 소비 과정은 수신측과 전송측 사이의 인터랙티브한 동작을 거쳐 수행될 수 있다. 즉, 360도 데이터 소비 과정은 수신 디바이스가 수신 디바이스에서 감지된 사용자 시점 정보를 전송측으로 전송하는 과정을 포함할 수 있다. 전송측은 수신 디바이스가 전송한 사용자 시점 정보를 이용하여 사용자의 시점에 대응하는 데이터를 선택(S120050)하고, 선택된 데이터를 수신측으로 전송(S120060)할 수 있다. 전송된 데이터는 디코딩하는 단계, (S120070) 디코딩된 데이터를 프로젝션하는 단계 및 렌더링하는 단계(S120080)를 거쳐 수신측에서 소비될 수 있다.
다른 실시예에 따르면, 수신측에서의 360도 데이터 소비 과정은 수신측 내의 일련의 동작을 거쳐 수행될 수도 있다. 즉, 360도 데이터 소비 과정은 수신 디바이스가 수신 디바이스에서 감지된 사용자 시점 정보를 이용하여 수신된 데이터 중 사용자의 시점에 대응하는 데이터를 선택하는 과정(S120050)을 포함할 수 있다. 선택된 데이터는 디코딩하는 단계(S120070), 디코딩된 데이터를 프로젝션하는 단계 및 렌더링하는 단계(S120080)를 거쳐 수신측에서 소비될 수 있다.
수신측에서의 사용자 시점 정보는 렌더링을 위한 3D 모델에 관한 파라미터 정보일 수 있다.
이하, 본 발명의 일 실시예에 따른 데이터 포맷 구성 방안에 대해 설명한다.
이하에서 설명되는 데이터 포맷 구성 방안은 전술한 360도 비디오 처리 방법에 포함된 단계 중 개별 영역별로 데이터를 저장하고 전송 포맷으로 구성하는 단계(S120040)의 구체적인 실시예일 수 있다.
360도 비디오는 2D 비디오 프레임 안에 맵핑되어 저장 및 전송될 수 있다. 이때, 사용자 시점에 기반한 비디오 프로세싱은 타일(tile)에 기반하여 구현될 수 있다.
하나의 프레임 시퀀스를 구성하는 전체 타일들이 파일 내 하나의 트랙 안에 저장될 수 있고, 또는 각 타일(tile) 별로 하나의 트랙에 각각 저장될 수도 있고, 또는 하나 이상의 타일(tile)을 포함하는 타일 리전(tile region) 또는 타일 셋(tile set)이 하나의 트랙으로 저장될 수도 있다. 여기서, 타일 리전(tile region)은 하나 또는 그 이상의 타일(tile)로 구성되는 사각형 모양의 영역을, 타일 셋(tile set)은 하나 이상의 타일(tile)로 구성되는 사각형이 아닌 모양의 영역을 이루는 타일(tile)들의 집합을 의미할 수 있다. 그리고, 타일 리전 또는 타일 셋과 같은 타일들의 집합은 개별 영역과 구별하기 위해 다수 영역이라고 지칭될 수도 있다.
일 실시예에서, 360도 비디오는 HEVC를 사용하여 2D 비디오 프레임 형태로 포맷팅될 수 있다. 이때, 사용자 시점에 기반한 비디오 프로세싱은 HEVC 타일(tile)을 통해 구현될 수 있다. HEVC 타일은, HEVC 표준에서 정의하는 타일(tile)로서, 독립적으로 프로세싱이 가능한 HEVC 프레임 내 사각형 모양의 일부 영역을 의미한다. 하나의 프레임 시퀀스를 구성하는 전체 HEVC 타일들이 파일 내 하나의 트랙 안에 저장될 수 있고, 또는 각 HEVC 타일(tile) 별로 하나의 트랙에 각각 저장될 수도 있고, 또는 하나 이상의 HEVC 타일(tile)을 포함하는 HEVC 타일 리전(tile region) 또는 HEVC 타일 셋(tile set)이 하나의 트랙으로 저장될 수도 있다.
개별 영역이 각각 하나의 트랙에 저장되거나, 하나 이상의 타일(tile)을 포함하는 타일 리전(tile region) 또는 타일 셋(tile set)이 하나의 트랙에 저장될 경우, 하나의 파일에 하나의 풀 픽쳐 시퀀스(full picture sequence)를 위한 다수의 트랙이 존재할 수 있다. 이러한 트랙들의 경우, 트랙들 중 하나의 트랙이 선택적으로 재생 또는 스트리밍될 수도 있다. 360도 비디오가 이와 같이 다수의 트랙의 형태로 저장될 경우, 사용자 시점 영역을 포함하는 트랙만이 선택적으로 재생 또는 스트리밍될 수 있으므로, 선택되지 않은 나머지 트랙들을 재생하기 위한 리소스(resource)가 절약될 수 있다.
본 발명의 일 실시예에 따르면, 개별 영역에 대한 선택적 재생/스트리밍을 위해 ISO BMFF 의 track header box('tkhd')의 altermate_group 필드가 사용될 수 있다.
도 13은 본 발명의 일 실시예에 따른 track header box 를 도시한 도면이다.
도면을 참조하면, ISO BMFF의 track header box(tkhd) 의 신택스가 도시되어 있다. 도면에는, 구체적인 semantics로서, version, flags, creation_time, modification_time, track_Id, layer, alternate_group, volume, matrix, width 및 height가 나타나 있다.
version은 박스의 버전 정보를 정수(integer) 형식으로 기술한다.
flags는 다음의 값으로 정의된 24-bit의 정수일 수 있다:
creation_time은 해당 트랙의 생성 시간을 선언하는 정수이다. (1904년 1월 1일 자정(UTC 시간)부터 초 단위)
modification_time은 트랙이 수정된 가장 최근의 시간을 선언하는 정수이다. (1904년 1월 1일 자정(UTC 시간)부터 초 단위)
track_ID 는 해당 프레젠테이션의 전체 라이프-타임 동안 트랙을 고유하게 식별하는 정수이다. 트랙 ID는 재사용될 수 없으며 0이될 수 없다.
duration은 해당 트랙의 지속 시간을 나타내는 정수이다. (Movie Header Box에 표시된 타임 스케일) 이 필드의 값은 모든 트랙 편집(edit)의 듀레이션의 총합과 같다. 편집 목록이 없는 경우, 상기 듀레이션은 샘플 듀레이션의 총합과 같고, Movie Header Box에 표시된 타임 스케일로 변환된다. 이 트랙의 듀레이션을 결정할 수 없는 경우, 듀레이션은 모두 1로 설정된다.(32 bit maxint)
Layer는 비디오 트랙의 전후 순서를 기술한다. 낮은 번호의 트랙은 뷰어에 더 가깝다. 0은 normal value이고, -1은 트랙 0 앞에 위치하게 된다.
alternate_group은 트랙의 그룹 또는 집합을 기술하는 정수이다. 이 필드가 0이면 다른 트랙과의 관계에 대한 정보가 없다. 이 필드가 0이 아닌 경우, alternate 데이터를 포함하는 다른 트랙과 동일한 값을 가지고, 다른 그룹에 속하는 트랙과는 다른 값을 가진다. Alternate group내 하나의 트랙만이 임의의 시간에 재생 또는 스트리밍되어야 하고, 비트 전송률, 코덱, 언어, 패킷 크기 등과 같은 속성을 통해 그 그룹의 다른 트랙과 구별되어야 한다. 그룹은 오직 하나의 멤버를 포함할 수도 있다.
volume은 8.8로 고정된 값으로, 트랙의 상대적인 오디오 볼륨을 기술한다. 풀 볼륨(full volume)은 1.0이고, 정상 볼륨(normal volume)이다. 이 값은 비주얼 트랙(visual track)과는 관련이 없다. 트랙은 볼륨에 따라 조합하고 전체 Movie Header Box 볼륨 설정을 이용하여 구성될 수 있다. 또는 보다 복잡한 오디오 컴포지션(예를 들어, MPEG-4 BIFS)가 사용될 수 있다.
matrix는 비디오에 대한 변환 행렬(transformation matrix)을 제공한다. (u, v, w)는 여기서 (0, 0, 1), hex(0,0, 0x40000000)으로 제한된다.
width 및 height는 트랙의 비주얼 프레젠테이션 사이즈를 고정 소수점 16.16으로 기술한다. 이것은 샘플 디스크립션에 기록된 이미지의 픽셀 치수와 같을 필요는 없다. 시퀀스의 모든 이미지는 행렬에 의해 표현된 트랙에 대한 전반적인 변환 이전에 이 사이즈로 스케일된다. 이미지의 픽셀 치수는 기본 값이다(default values).
본 발명의 일 실시예 따르면, 개별 영역에 대한 선택적 재생/스트리밍을 위해 altermate_group 필드가 이용될 수 있다. 즉, 하나의 비디오 프레임이 개별 영역들로 분할되고, 분할된 개별 영역들이 트랙들에 각각 저장된 경우, 각 트랙들에 해당하는 tkhd의 alternate_group은 0이 아닌 동일한 값을 갖도록 구성될 수 있다. 다시 말해, 개별 영역에 대한 선택적 재생 또는 스트리밍이 가능한 트랙들에 해당하는 tkhd의 alternate_group은 0이 아닌 동일한 값을 갖도록 구성될 수 있다. 이를 통해, 개별 영역에 대한 선택적 재생 또는 스트리밍이 가능한 트랙들을 그룹핑할 수 있고, 그룹핑된 트랙들이 선택적으로 사용 가능함을 나타낼 수 있다. 이와 같이, 0이 아닌 값을 갖는 alternate_group은 선택적 재생 (또는 스트리밍)을 위한 그룹핑 정보라고 지칭될 수 있다.
도 14는 본 발명의 일 실시예에 따른 track selection box를 도시한 도면이다.
도면에 도시된 track selection box(tsel) 는, tkhd의 alternate_group에 의해 그룹핑된 트랙들 중에서 상호 스위칭이 가능한 그룹, 즉 스위칭 그룹(switching group)을 나타낼 수 있다.
도면을 참조하면, switch_group 및 attribute_list가 각각 도면의 상단과 하단에 도시되어 있다.
switch_group은 재생/스트리밍 중에 상호 스위칭이 가능한 트랙들에 대한 그룹핑 정보를 제공할 수 있다. 즉, switch_group은, 전술한 ‘tkhd'의 alternative_group이 선택적 재생 또는 스트리밍이 가능한 트랙들을 그룹핑하는 것과 유사한 방법으로 상호 스위칭이 가능한 트랙들에 대한 그룹핑 정보를 제공할 수 있다. 상호 스위칭이 가능한 트랙들에 해당하는 track box가 포함하는 'tsel' 의 switch group은 0 이외의 동일한 switch_group 값을 가질 수 있다. 'tsel' 의 switch group이 0 이외의 동일한 switch_group 값을 갖는다는 것은 해당 트랙들이 상호 스위칭 가능한 트랙들이라는 것을 나타낼 수 있다. 재생/스트리밍 도중에 상호 스위칭이 가능하다는 것은 선택적인 재생/스트리밍이 가능하다는 것을 전제되어야 한다. 따라서, 동일 switch group에 속하는 트랙들은 동일 alternate group에 속해야 한다는 제약이 있을 수도 있다. 다시 말해, switch_group의 값이 동일한 트랙들은 전술한 alternate_group값이 동일해야 한다는 제약이 존재할 수도 있다. 한편, 이와 같이, 0이 아닌 값을 갖는 switch group은 트랙간 스위칭을 위한 그룹핑 정보라고 지칭될 수 있다.
attribute_list는 switch group 또는 alternate group에 속한 트랙들의 관계에 대한 서술(description), 또는 구별점(differentiation)을 나타내기 위한 필드로서, 속성(attribute)에 대한 이름(name)과 디스크립션(description)은 도시된 바와 같으며, 본 발명의 일 실시예에 따른 attribute_list는 'tile'이라는 속성을 더 포함할 수 있다. 'tile' 속성(attribute)의 이름(name)은 'tiling'이고, 'tile' 속성은 하나의 full picture의 일부 영역 내지 tile로 구성되는 tile들 간의 관계를 나타낼 수 있다. 상기 tile 속성은 attribute_list에 기술된 다른 속성들과 중복적으로 사용될 수도 있다.
한편, tsel box의 attribute_list의 'tile' 값은 전술한 alternate grouping이 비디오 프레임의 영역 분할에 의한 것임을 표현할 수 있다.
앞서 alternate group을 이용하여 선택적 재생이 가능한 개별 영역들을 그룹핑하는 방안과, switch group을 이용하여 선택적 재생이 가능한 개별 영역들 중 스위칭이 가능한 개별 영역들을 그룹핑하는 방안에 대해 설명하였다.
앞서 설명한 방안은 개별 영역에 대한 선택적 재생 및 스위칭에 관한 것으로서, 선택적 재생 및 스위칭은 하나의 영역으로 국한될 수 있다. 이하, 이러한 제약 없이 동일한 소스에서 생성된 다수의 영역(하나 이상의 영역)을 함께 선택할 수 있고, 재생 도중에 다른 다수의 영역(다른 하나 이상의 영역)으로 스위칭할 수 있도록 하는 방안을 설명한다.
일 실시예에 따르면, 'ttgr'이라는 track_group_type을 정의하여 다수 영역을 동시 선택하여 재생 또는 스트리밍, 및 재생 또는 스트리밍 중 다수 영역에서 다수 영역으로 스위칭 가능한 track group을 정의할 수 있다.
ttgr은 해당 트랙이 타일 트랙 그룹(tile track group)에 속하는 것을 지시한다. Track_group_type이 'ttgr'인 group type box 내 track_group_id의 값이 동일한 트랙들은 동일한 complete picture sequence(full picture sequence)로부터 기원한 것이고, 각 트랙은 complete picture sequence의 타일 리전(tile region) 또는 타일 셋(tile set)을 포함한다. 이 그룹 내 서브셋(subset)들은 언제나 재생 또는 스트리밍이 가능하고, 상기 서브셋들은 재생 또는 스트리밍 중에 상호 스위칭이 가능하다.
도 15는 본 발명의 일 실시예에 따른 track group box를 도시한 도면이다.
track group box(trgr)는 도시된 바와 같이, tile track group(ttgr)이라는 track_group_type을 이용하여 다수의 영역을 동시에 선택하여 재생(또는 스트리밍)할 수 있고, 다른 다수의 영역으로 스위칭이 가능한 track group을 지시할 수 있다. 즉, track box가 track group box(trgr)를 포함하며 track group box 의 track_group_type 값이 'ttgr'이고, track_group_id 가 0 이외의 값을 가지면, 해당 트랙들은 tile track group에 속함을 의미할 수 있다. tile track group에 속한 트랙들은 재생 또는 스트리밍을 위해 하나 또는 다수가 선택될 수 있으며, 재생 또는 스트리밍 중 하나 또는 다수의 트랙들간에 스위칭이 가능할 수 있다.
한편, tile track group(ttgr)에 속한 트랙들은 재생/스트리밍을 위해 하나 또는 다수가 선택될 수 있다. 그리고, 재생/스트리밍 도중에 다른 트랙으로의 스위칭 가능 여부는 새로운 track_group_type을 통해 시그널링할 수도 있다. 일 실시예에 따르면, 새로운 track_group_type은 tile track switch group(tsgr)이라는 track_group_type일 수 있다. 이러한 tsgr은 다수의 영역(하나 이상의 영역)을 포함하는 트랙을 재생/스트리밍하는 도중에 스위칭 가능한 tile 트랙들의 group을 나타낼 수 있다. 여기서, 스위칭이 가능한 tile 트랙들은 다수 영역(하나 이상의 영역)을 포함하는 트랙일 수 있다.
개별 영역에 대한 선택적 재생 및 스위칭에 있어서, 동일 switch group에 속하는 트랙들은 동일 alternate group에 속해야 한다는 제약이 마련될 수도 있다는 것은 전술한 바와 같다. 이와 마찬가지로, tsgr의 track_group_id 가 0 이외의 값으로 같은 트랙들은 ttgr의 track_group_id 또한 0 이외의 값으로로 같아야 한다는 제약이 존재할 수도 있다.
한편, 화면 예측 방법에 따라 하나의 픽처(picture)안에 포함된 타일(tile)들 사이에는 코딩 디펜던시(coding dependency)의 존재 여부가 달라질 수 있다. 화면 내 예측(intra prediction)에 따라 인코딩이 수행될 경우, 해당 타일(tile)에 속하는 샘플(sample)들만 참조하기 때문에 하나의 픽처(picture)안에 포함된 타일(tile)들 사이에는 코딩 디펜던시가 존재하지 않는다. 일 예로, HEVC tile을 사용하여 인코딩(encoding)을 수행할 경우, 화면 내 예측(intra prediction)에 따라 해당 타일(tile)에 속하는 샘플(sample)들만을 참조하기 때문에 하나의 픽처(picture) 안에 포함된 타일(tile)들 사이에는 코딩 디펜던시(coding dependency)가 존재하지 않는다. 그러나, 화면 간 예측(inter prediction)에 따라 인코딩이 수행될 경우, 해당 타일(tile) 이외의 다른 타일(tile)에 속하는 샘플들을 참조할 수 있기 때문에 타일(tile)들 사이에 코딩 디펜던시가 존재할 수 있다.
타일(tile)들 간의 코딩 디펜던시가 존재할 경우, 타일(tile)들 간의 코딩 디펜던시는 TileRegionGroup Entry(trif) 또는 TileSetGroupEntry(tsif)의 sample group description 을 통해 시그널링 될 수 있다.
한편, 트랙에는 단위 tile(하나의 tile) 뿐만 아니라 타일 리전(tile region) 또는 타일(tile set)이 포함될 수 있으며, 타일 리전(tile region)들 또는 타일 셋(tile set)들이 포함될 수 있다는 것은 전술한 바와 같다. 따라서, 해당 트랙에 포함된 타일 리전(tile region) 또는 타일 셋(tile set)은 다른 트랙에 포함되는 타일 리전(tile region) 또는 타일 셋(tile set) 과 코딩 디펜던시(coding dependency)를 가질 수도 있다. 이와 같이, 타일 리전(tile region)과 타일 리전(tile region) 사이, 타일 셋(tile set)과 타일 셋(tile set) 사이, 또는 타일 리전(tile region)과 타일 셋(tile set) 사이에 코딩 디펜던시(coding dependency)가 존재할 경우 트랙들 사이에도 코딩 디펜던시(coding dependency)가 존재한다고 할 수 있다. 따라서, 트랙들 사이에 코딩 디펜던시(coding dependency)가 존재한다는 점에 대한 시그널링 방안이 필요하다.
이하, Track Reference Box를 이용하여 트랙들 사이의 코딩 디펜던시(coding dependency)를 시그널링하는 방안에 대해 설명한다.
도 16은 본 발명의 일 실시예에 따른 track reference box를 도시한 도면이다.
도면에 도시된 track reference box(tref)는 reference type으로서, tile dependency(tdep)라는 reference type을 이용할 수 있다. tdep는 해당 트랙에 포함된 타일 리전 또는 타일 셋이 다른 트랙에 포함된 타일 리전 또는 타일 셋과 코딩 디펜던시를 갖는다는 것을 지시한다. 이러한 tdep는 타일 리전(tile region)과 타일 리전 (tile region) 사이, 타일 셋(tile set)과 타일 셋 (tile set) 사이, 또는 타일 리전(tile region)과 타일 셋(tile set) 사이의 코딩 디펜던시(coding dependency)에 따른 track들 간의 참조 관계를 시그널링할 수 있다. 또한, 'tdep' reference_type을 갖는 tref 박스는 해당 tdep의 track_IDs를 통해 참조되는 트랙 정보를 제공할 수 있다. 따라서, 파일 리더(file reader)는 'tdep' reference_type을 갖는 tref 박스를 포함하는 tile 트랙이 해당 'tdep'의 track_IDs를 통해 지시되는 트랙을 참조하여 비디오를 재생해야 한다는 것을 인지할 수 있다.
전술한 방법은 DASH에도 적용 가능하다. 일 예로, coding dependency를 갖는 트랙들이 각각 Representation으로 구성되어 MPD에 기술될 경우, Representation@associationType 값으로 'tdep'를 부여할 수 있다. 이를 통해, coding dependency를 갖는 트랙들의 관계와 마찬가지로 coding dependency를 갖는 Representation들의 관계를 시그널링할 수 있고, 참조하여야 하는 Representation의 @id를 @associationId를 통해 부여함으로써 reference Representation을 지시할 수 있다. 또한, DASH client가 associationType = 'tdep'를 갖는 Representation의 Segment들을 요청하여 재생하고자 할 때, associationId는 associationId를 통해 지시된 Representation의 Segment들도 함께 요청하여야 한다 것을 나타낼 수 있다. 실시예에 따라, Representation@associationId 대신 Representation@dependencyId가 사용될 수도 있다.
이하, 개별 영역에 대한 선택적 재생/스트리밍 및 스위칭, 다수의 영역에 대한 선택적 재생/스트리밍 및 스위칭, 및 트랙들간의 코딩 디펜던시를 시그널링하는 방안에 대한 구체적인 실시예를 설명하도록 한다.
도 17은 본 발명의 일 실시예에 따른 full picture sequence를 도시한 도면이다.
도시된 실시예에서, full picture sequence는 4개의 타일(tile)로 구성되고, 타일(tile region) 또한 4개이다. 즉, 각 타일(tile region)은 모두 하나의 타일(tile)로 구성된다. 다시 말해, tile region 1은 tile 1을 포함하고, tile region 2는 tile 2를 포함하며, tile region 3은 tile 3을 포함하고, tile region 4는 tile 4를 포함한다.
tile, tile region 및 tile set과 관련하여 전술한 설명과, 후술하는 본 발명의 다른 실시예에 따른 full picture sequence에 대한 예시를 참고하면 본 실시예에 따른 full picture sequence의 구성을 쉽게 이해할 수 있다.
한편, 본 실시예에서, tile region 1은 tile region 2에 대한 코딩 디펜던시(coding dependency)를 가지고 있다. 코딩 디펜던시(coding dependency)의 관계는 도면에서 화살표로 표현되어 있다.
이하, 본 발명의 일 실시예에 따른 full picture sequence를 참조하여 보다 구체적인 실시예에 대해 설명하도록 한다.
도 18 및 도 19는 360도 비디오가 4개의 tile 트랙과, 1개의 non-tile 트랙으로 구성되고, extractor가 사용되지 않은 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 18은 전술한 tkhd 박스 및 tsel 박스를 이용한 실시예를, 도 19는 전술한 ttgr 박스 및 tsgr 박스를 이용한 실시예를 도시한다.
여기서, non-tile 트랙(h180010, h190010)은 파일 파서(file parser)가 HEVC 스트림(HEVC stream)과 호환성 있는 형태의 비트 스트림(bitstream)을 HECV 디코더(HEVC decoder)로 전달할 수 있도록 full picture sequence에 해당하는 HEVC의 구성(configuration) 정보를 저장한다. 상기 트랙은 sample description을 위해 'hvb1' 또는 'heb1'을 사용하며, 'hvb1'일 경우 VPS, SPS, PPS 등의 파라미터 셋 정보는 HEVC Configuration Box ('hvcC')에 포함되며, 'heb1'일 경우 상기 파라미터 셋 정보는 'hvcC'에 포함되거나 NAL unit의 형태로 'mdat' 박스 내에 포함될 수 있다. 본 트랙에 해당되는 VCL NAL unit은 'mdat' 박스 내에 존재하지 않을 수 있고 이 경우 개별 sample의 size는 0으로 기록될 수 있다. Track Reference Box 내에 'sabt' 를 포함하여 타일 트랙(tile track)을 참조할 수 있어, 각 sample의 순서와 'sabt'의 참조 순서대로 VCL NAL unit들을 배열하여 full picture sequence stream을 구성할 수 있다.
또한, tile 트랙(h180020, h190020)은 tile region에 해당하는 VCL NAL unit 또는 샘플 데이터를 위한 트랙으로 도시된 바와 같이 'mdat' 박스 내에 존재하는 각각의 tile region에 해당하는 VCL NAL unit 들을 기술한다. Sample description을 위해 'hvt1' 을 사용할 수 있고, Track Reference Box 내에 'tbas' 를 포함하여 non-tile track을 참조할 수 있어, 이러한 참조를 통해 개별 tile에 해당하는 stream을 구성할 수 있다. 또한 두 번째 tile 트랙(h180022, h190022)은 앞서 설명한 'tdep'를 포함하여 타일 리전(tile region)간 코딩 디펜던시(coding dependency)에 의한 첫 번째 tile 트랙에 대한 참조 관계를 가지는 것을 확인할 수 있다. 'sgpd'에 포함되는 'trif'는 개별 tile region 정보를 기술한다.
도 18의 실시예에서, tkhd 박스에 포함된 alternate_group의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 alternate_group을 포함하는 트랙들은 선택적으로 재생 또는 스트리밍 가능하다는 것을 지시한다. 또한, tkhd 박스 및 tsel 박스를 이용한 실시예에서, tsel 박스에 포함된 switch_group의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 switch_group을 포함하는 트랙들은 재생 또는 스트리밍 중 스위칭이 가능하다는 것을 지시한다. 그리고, tsel 박스에 포함된 attribute_list는 tile로 설정되어 해당 트랙이 타일 또는 full picture의 부분이라는 것을 지시한다.
도 19의 실시예에서, ttgr 박스에 포함된 track_group_id의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 track_group_id을 포함하는 트랙들은 선택적으로 재생 또는 스트리밍 가능하다는 것을 지시한다. 또한, ttgr 박스 및 tsgr 박스를 이용한 실시예에서, tsgr 박스에 포함된 track_group_id의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 track_group_id을 포함하는 트랙들은 재생 또는 스트리밍 중 스위칭이 가능하다는 것을 지시한다.
도 20 및 도 21은 360도 비디오가 4개의 tile 트랙과, 1개의 non-tile 트랙으로 구성되고, extractor가 사용된 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 20은 전술한 tkhd 박스 및 tsel 박스를 이용한 실시예를, 도 21은 전술한 ttgr 박스 및 tsgr 박스를 이용한 실시예를 도시한다.
non-tile 트랙, tile 트랙, alternate_group, switch_group, 'tile' attribute list에 대한 설명은 이전 실시예에서 설명한 내용이 그대로 적용될 수 있으므로, 차이점이 있는 부분을 중심으로 설명한다.
non-tile 트랙(h200010, h210010)은 file parser가 HEVC stream과 호환성 있는 형태의 bitstream을 HEVC decoder로 전달할 수 있도록 full picture sequence에 해당하는 HEVC의 configuration 정보를 저장한다. 상기 트랙은 sample description을 위해 'hvb2' 또는 'heb2'을 사용하며, 'hvb2'일 경우 VPS, SPS, PPS 등의 파라미터 셋 정보는 HEVC Configuration Box ('hvcC')에 포함되며, 'heb2'일 경우 상기 파라미터 셋 정보는 'hvcC'에 포함되거나 NAL unit의 형태로 'mdat' 박스 내에 포함될 수 있다. 본 트랙이 기술하는 Sample data 또는 VCL NAL unit은 'mdat' 박스 내에 존재하지 않을 수 있고, 개별 VCL NAL unit 또는 sample data 참조를 위한 extractor들이 존재할 수 있다. Track Reference Box 내에 'scal' 를 포함하여 tile track을 참조할 수 있어, extractor를 통해 각 sample data를 copy하여 extractor를 대체함으로써 full picture sequence stream을 구성할 수 있다.
tile 트랙(h200020, h210020)은 tile region에 해당하는 VCL NAL unit 또는 샘플 데이터를 위한 트랙으로 도시된 바와 같이 'mdat' 박스 내에 존재하는 각각의 tile region에 해당하는 VCL NAL unit 들을 기술한다.
또한 두 번째 tile 트랙(h200022, h210022)은 앞서 설명한 'tdep'를 포함하여 타일 리전(tile region)간 코딩 디펜던시(coding dependency)에 의한 첫 번째 tile 트랙에 대한 참조 관계를 가지는 것을 확인할 수 있다. 'sgpd'에 포함되는 'trif'는 개별 tile region 정보를 기술한다.
도 20의 실시예에서, tkhd 박스에 포함된 alternate_group의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 alternate_group을 포함하는 트랙들은 선택적으로 재생 또는 스트리밍 가능하다는 것을 지시한다. 또한, tkhd 박스 및 tsel 박스를 이용한 실시예에서, tsel 박스에 포함된 switch_group의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 switch_group을 포함하는 트랙들은 재생 또는 스트리밍 중 스위칭이 가능하다는 것을 지시한다. 그리고, tsel 박스에 포함된 attribute_list는 tile로 설정되어 해당 트랙이 타일 또는 full picture의 부분이라는 것을 지시한다.
도 21의 실시예에서, ttgr 박스에 포함된 track_group_id의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 track_group_id을 포함하는 트랙들은 선택적으로 재생 또는 스트리밍 가능하다는 것을 지시한다. 또한, ttgr 박스 및 tsgr 박스를 이용한 실시예에서, tsgr 박스에 포함된 track_group_id의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 track_group_id을 포함하는 트랙들은 재생 또는 스트리밍 중 스위칭이 가능하다는 것을 지시한다.
도 22 및 도 23은 360도 비디오가 1개의 full picture 트랙과, 4개의 tile 트랙으로 구성되고, tile 트랙에서 extractor를 사용하여 full picture를 참조하는 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 22는 전술한 tkhd 박스 및 tsel 박스를 이용한 실시예를, 도 23은 전술한 ttgr 박스 및 tsgr 박스를 이용한 실시예를 도시한다.
non-tile 트랙, tile 트랙, alternate_group, switch_group, 'tile' attribute list에 대한 설명은 이전 실시예에서 설명한 내용이 그대로 적용될 수 있으므로, 차이점이 있는 부분을 중심으로 설명한다.
full picture 트랙(h220010, h230010)은 HEVC stream과 호환성 있는 형태로 HEVC의 configuration 정보 및 full picture의 bitstream을 저장한다. 상기 트랙은 sample description을 위해 'hvc1' 또는 'hvc2'을 사용하며, 'hvc1'일 경우 VPS, SPS, PPS 등의 파라미터 셋 정보는 HEVC Configuration Box ('hvcC')에 포함되며, 'hvc2'일 경우 'hvcC'에 포함되거나 NAL unit의 형태로 'mdat' 박스 내에 포함될 수 있다. 'sgpd'에 포함되는 'trif'는 개별 tile region 정보를 기술한다.
tile 트랙(h220020, h230020)은 각각 하나의 tile region을 위한 트랙으로 그림과 같이 'mdat' 박스 내에 존재하는 각각의 tile region에 해당하는 VCL NAL unit들을 기술한다. 본 트랙이 기술하는 Sample data 또는 VCL NAL unit은 'mdat' 박스 내에 존재하지 않을 수 있고, 개별 VCL NAL unit 또는 sample data 참조를 위한 extractor 들이 존재할 수 있다. sample description을 위해 ‘hvt1'을 사용할 수 있고, Track Reference Box 내에 'tbas' 를 포함하여 full picture track을 참조할 수 있어, 이러한 참조를 통해 개별 tile에 해당하는 stream을 구성할 수 있다. 또한 Track Reference Box 내에 'scal'을 포함하여 extractor를 통해 개별 sample data를 참조함으로써 full picture 트랙을 지시할 수 있다.
또한 두 번째 tile 트랙(h220022, h230022)은 앞서 설명한 'tdep'를 포함하여 타일 리전(tile region)간 코딩 디펜던시(coding dependency)에 의한 첫 번째 tile 트랙에 대한 참조 관계를 가지는 것을 확인할 수 있다.
도 22의 실시예에서, tkhd 박스에 포함된 alternate_group의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 alternate_group을 포함하는 트랙들은 선택적으로 재생 또는 스트리밍 가능하다는 것을 지시한다. 또한, tkhd 박스 및 tsel 박스를 이용한 실시예에서, tsel 박스에 포함된 switch_group의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 switch_group을 포함하는 트랙들은 재생 또는 스트리밍 중 스위칭이 가능하다는 것을 지시한다. 그리고, tsel 박스에 포함된 attribute_list는 tile로 설정되어 해당 트랙이 타일 또는 full picture의 부분이라는 것을 지시한다.
도 23의 실시예에서, ttgr 박스에 포함된 track_group_id의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 track_group_id을 포함하는 트랙들은 선택적으로 재생 또는 스트리밍 가능하다는 것을 지시한다. 또한, ttgr 박스 및 tsgr 박스를 이용한 실시예에서, tsgr 박스에 포함된 track_group_id의 값은 모두 1이다. 0이 아닌 동일한 값을 갖는 track_group_id을 포함하는 트랙들은 재생 또는 스트리밍 중 스위칭이 가능하다는 것을 지시한다.
도 24는 본 발명의 다른 실시예에 따른 full picture sequence를 도시한 도면이다.
도시된 실시예에서, full picture sequence는 4개의 tile로 구성된다. 4개의 tile 중 tile 1, 2, 3은 하나의 tile set을 구성하며, tile 4는 하나의 tile region을 구성한다.
tile, tile region 및 tile set과 관련하여 전술한 설명과, 전술한 본 발명의 일 실시예에 따른 full picture sequence에 대한 예시를 참고하면 본 실시예에 따른 full picture sequence의 구성을 쉽게 이해할 수 있다.
한편, 본 실시예에서, tile region 1은 tile set 1에 대한 코딩 디펜던시(coding dependency)를 가지고 있다. 코딩 디펜던시(coding dependency)의 관계는 도면에서 화살표로 표현되어 있다.
또한, 본 실시예의 경우, tile set과 tile region으로 구성된 2개의 영역이 각각의 레이어로 구성된다. 즉, 본 실시예에 따른 360도 비디오는 기본 레이어(base layer)와 부가 레이어(enhancement layer)로 나누어지며, 각 레이어는 tile region 트랙과, tile set 트랙을 포함할 수 있다.
이하, 본 발명의 일 실시예에 따른 full picture sequence를 참조하여 보다 구체적인 실시예에 대해 설명하도록 한다.
도 25 및 도 26은 360도 비디오가 base layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙과, enhancement layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙으로 구성되고, extractor가 사용되지 않은 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 25는 전술한 tkhd 박스 및 tsel 박스를 이용한 실시예를, 도 26은 전술한 ttgr 박스 및 tsgr 박스를 이용한 실시예를 도시한다.
베이스 레이어(base layer)의 non-tile 트랙(h250011, h260011)의 구성 및 관련 설명은 도 18을 참조하여 설명한 내용이 적용될 수 있다. 인핸스먼트 레이어(enhancement layer)의 non-tile 트랙(h2500112, h260011)의 경우, target operating point의 full picture sequence에 해당하는 LHEVC의 configuration 정보를 저장한다. 상기 트랙은 sample description을 위해 'lhb1' 또는 'leb1'을 사용하며, 'lhb1'일 경우 VPS, SPS, PPS 등의 파라미터 셋 정보는 LHEVC Configuration Box ('lhvC')에 포함되며, 'leb1'일 경우 파라미터 셋 정보는 'lhvC'에 포함되거나 NAL unit의 형태로 'mdat' 박스 내에 포함될 수 있다. 본 트랙에 해당되는 VCL NAL unit은 'mdat' 박스 내에 존재하지 않을 수 있고 이 경우 개별 sample의 size는 0으로 기록될 수 있다. Track Reference Box 내에 'sabt' 를 포함하여 tile track을 참조할 수 있어, 각 sample의 순서와 'sabt'의 참조 순서대로 VCL NAL unit들을 배열하여 full picture sequence stream을 구성할 수 있다. 또한 Track Reference Box 내에 'sbas'를 포함하여 base layer의 non-tile 트랙을 참조하여 현재 트랙의 base layer에 해당하는 트랙을 지칭할 수 있다. 'oref'는 operating point 정보에 해당하는 'oinf'를 포함하는 트랙을 지칭하여 사용되는 ID 등의 name space를 지칭된 트랙과 공유한다는 것을 나타낼 수 있다.
base layer의 tile 트랙(h250020, h260020)은 각각 하나의 tile region 또는 tile set에 해당하는 base layer의 VCL NAL unit 또는 sample data를 위한 트랙으로 그림과 같이 'mdat' 박스 내에 존재하는 각각의 tile region, 또는 tile set에 해당하는 base layer의 VCL NAL unit들을 기술한다. sample description을 위해 'hvt1'을 사용할 수 있고, Track Reference Box 내에 'tbas' 를 포함하여 base layer의 non-tile track을 참조할 수 있어, 이러한 참조를 통해 개별 tile에 해당하는 stream을 구성할 수 있다. 'sgpd'에 포함되는 'trif'는 개별 tile region 정보를, 'tsif'는 개별 tile set 정보를 기술한다. 또한 tile region 트랙은 앞서 제안한 'tdep'를 포함하여 타일 리전(tile region)간 코딩 디펜던시(coding dependency)에 의한 타일 셋(tile set) 트랙으로의 참조 관계를 갖는 것을 확인할 수 있다.
enhancement layer의 tile 트랙(h250030, h260030)은 각각 하나의 tile region 또는 tile set에 해당하는 enhancement layer의 VCL NAL unit 또는 sample data를 위한 트랙으로 그림과 같이 'mdat' 박스 내에 존재하는 각각의 tile region, 또는 tile set에 해당하는 enhancement layer의 VCL NAL unit들을 기술한다. sample description을 위해 'lht1'을 사용할 수 있고, Track Reference Box 내에 'tbas' 를 포함하여 enhancement layer의 non-tile track을 참조할 수 있어, 이러한 참조를 통해 개별 tile에 해당하는 stream을 구성할 수 있다. 'sgpd'에 포함되는 'trif'는 개별 tile region 정보를, 'tsif'는 개별 tile set 정보를 기술한다. 또한 tile region 트랙은 앞서 제안한 'tdep'를 포함하여 타일 리전(tile region)간 코딩 디펜던시(coding dependency)에 의한 타일 셋(tile set) 트랙으로의 참조 관계를 갖는 것을 확인할 수 있다.
도 25의 실시예에서, 'tkhd' 박스의 alternate_group은 base layer의 tile region 트랙과 tile set 트랙에서 동일하게 '1' 값을 가지므로 본 트랙들이 선택적으로 재생될 수 있는 관계임을 알려준다. 'tsel' 박스는 개별 'trak' 박스 하위의 'udta' 내에 존재할 수 있고, base layer의 tile region 트랙과 tile set 트랙에서 switch_group 값이 같은'1' 값을 가지므로 본 트랙들이 재생 중 스위칭이 가능한 관계임을 알려주며, attribute_list의 'tile' 값을 통해 상기 group에 속한 트랙들이 하나의 full picture sequence의 일부 영역 또는 tile들임을 알려준다. enhancement layer의 tile region 트랙과 tile set 트랙 또한 alternate_group과 switch_group 값으로 각각 동일하게 '2', '2' 가져 본 트랙들이 선택적 재생 가능하고 재생 중 스위칭이 가능한 관계임을 알려준다. attribute_list의 'tile' 값의 용법은 base layer에서의 경우와 동일하다.
도 26의 실시예에서, 2개의 base tile 트랙들과 2개의 enhancement tile 트랙에서 'ttgr'에 각각 설정된 동일한 track_group_id=1, 2는 같은 값을 갖는 트랙들이 하나 또는 다수의 어느 조합으로든 재생/스트리밍을 위해 선택될 수 있음을 알려준다. 2개의 base 트랙들과 2개의 enhancement 트랙들에서 'ttgr'에 각각 설정된 동일한 track_group_id=1, 2은 같은 값을 갖는 트랙들이 재생/스트리밍 중 하나 또는 다수의 어느 조합에서 하나 또는 다수의 어느 조합으로든 스위칭 될 수 있음을 알려준다.
도 27 및 도 28은 360도 비디오가 base layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙과, enhancement layer에 대한 non-tile 트랙, tile region 트랙 및 tile set 트랙으로 구성되고, extractor가 사용된 실시예에 대한 ISO BMFF 파일의 구조를 나타낸 도면이다.
도 27은 전술한 tkhd 박스 및 tsel 박스를 이용한 실시예를, 도 28은 전술한 ttgr 박스 및 tsgr 박스를 이용한 실시예를 도시한다.
base layer의 non-tile 트랙(h270011, h280011)의 구성 및 관련 설명은 도 20을 참조하여 설명한 내용이 적용될 수 있다. enhancement layer의 non-tile 트랙(h270012, h280012)의 경우, target operating point의 full picture sequence에 해당하는 LHEVC의 configuration 정보를 저장한다. 상기 트랙은 sample description 및 파라미터 셋의 저장 방법은 도 25의 base layer non-tile 트랙과 동일하다. 본 트랙이 기술하는 Sample data 또는 VCL NAL unit은 'mdat' 박스 내에 존재하지 않을 수 있고, 개별 VCL NAL unit 또는 sample data 참조를 위한 extractor 들이 존재할 수 있다. Track Reference Box 내에 'scal' 를 포함하여 tile track을 참조할 수 있어, extractor를 통해 각 sample data를 copy하여 extractor를 대체함으로써 full picture sequence stream을 구성할 수 있다. Track Reference Box 내에 'sbas', 'oref'의 용법 및 전술한 'tdep'의 용법은 도 25의 실시예와 동일하다.
base layer의 tile 트랙(h270020, h280020)은 각각 하나의 tile region 또는 tile set에 해당하는 base layer의 VCL NAL unit 또는 sample data를 위한 트랙으로 그림과 같이 'mdat' 박스 내에 존재하는 각각의 tile region, 또는 tile set에 해당하는 base layer의 VCL NAL unit들을 기술한다.
enhancement layer의 tile 트랙(h270030, h280030)은 각각 하나의 tile region 또는 tile set에 해당하는 enhancement layer의 VCL NAL unit 또는 sample data를 위한 트랙으로 그림과 같이 'mdat' 박스 내에 존재하는 각각의 tile region, 또는 tile set에 해당하는 enhancement layer의 VCL NAL unit들을 기술한다.
non-tile 트랙, tile 트랙, alternate_group, switch_group, 'tile' attribute list에 대한 설명은 이전 실시예에서 설명한 내용이 그대로 적용될 수 있으므로, 차이점이 있는 부분을 중심으로 설명한다.
도 27의 실시예에서, 'tkhd' 박스의 alternate_group은 base layer의 tile region 트랙과 tile set 트랙에서 동일하게 '1' 값을 가지므로 본 트랙들이 선택적으로 재생될 수 있는 관계임을 알려준다. 'tsel' 박스는 개별 'trak' 박스 하위의 'udta' 내에 존재할 수 있고, base layer의 tile region 트랙과 tile set 트랙에서 switch_group 값이 같은'1' 값을 가지므로 본 트랙들이 재생 중 스위칭이 가능한 관계임을 알려주며, attribute_list의 'tile' 값을 통해 상기 group에 속한 트랙들이 하나의 full picture sequence의 일부 영역 또는 tile들임을 알려준다. enhancement layer의 tile region 트랙과 tile set 트랙 또한 alternate_group과 switch_group 값으로 각각 동일하게 '2', '2' 가져 본 트랙들이 선택적 재생 가능하고 재생 중 스위칭이 가능한 관계임을 알려준다. attribute_list의 'tile' 값의 용법은 base layer에서의 경우와 동일하다.
도 28의 실시예에서, 2개의 base tile 트랙들과 2개의 enhancement tile 트랙에서 'ttgr'에 각각 설정된 동일한 track_group_id=1, 2는 같은 값을 갖는 트랙들이 하나 또는 다수의 어느 조합으로든 재생/스트리밍을 위해 선택될 수 있음을 알려준다. 2개의 base tile 트랙들과 2개의 enhancement tile 트랙에서 'ttgr'에 각각 설정된 동일한 track_group_id=1, 2은 같은 값을 갖는 트랙들이 재생/스트리밍 중 하나 또는 다수의 어느 조합에서 하나 또는 다수의 어느 조합으로든 스위칭 될 수 있음을 알려준다.
이하, 본 발명의 일 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생 방안에 대해 설명한다.
사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생 방안은 360도 비디오의 획득 공간 또는 사용자 시점 공간에서 정의되는 파라미터들에 기반하여 제공될 수 있다. 본 발명의 일 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위해 시그널링 정보가 제공될 수 있다. 이러한 시그널링 정보는, 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보라고 지칭될 수 있고, 전술한 360도 비디오 관련 시그널링 정보의 개념에 포함될 수 있다. 이러한 시그널링 정보는 비디오 레벨 또는 파일 레벨을 통해 제공될 수 있다. 한편, 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보는 360도 비디오가 맵핑되는 맵핑 타입에 대한 정보 및 360도 비디오의 획득 공간 또는 사용자 시점 공간과 360도 비디오가 맵핑된 맵핑 공간 사이의 관계 정보를 포함할 수 있다. 일 실시예에 따르면, 360도 비디오가 맵핑된 맵핑 공간은 2D 프레임일 수 있다. 즉, 3차원의 360도 비디오의 획득 공간 또는 사용자 시점 공간은 2D 프레임에 맵핑될 수 있다. 한편, 360도 비디오의 획득 공간 또는 사용자 시점 공간을 2D 프레임에 맵핑하는 과정은 전술한 프로젝션 과정과 동일한 의미로 사용될 수 있다. 그리고, 360도 비디오의 획득 공간 또는 사용자 시점 공간과, 360도 비디오가 맵핑된 맵핑 공간 사이의 관계 정보는 360도 비디오의 획득 공간 또는 사용자 시점 공간을 표현하는 파라미터와, 360도 비디오가 맵핑된 맵핑 공간을 표현하는 파라미터 사이의 맵핑 정보일 수 있다.
일 실시예에 따르면, 360도 비디오 획득 공간 및/또는 사용자 시점 공간은 구면상에 정의될 수 있다. 즉, 3D 모델은 구형(sphere)의 3D 모델일 수 있다. 이를 사용자 시점 공간의 측면에서 보면, 360도 비디오가 구형의 3D 모델상에 렌더링된 것이라고 말할 수 있다.
도 29는 360도 비디오의 획득 공간 및/또는 사용자 시점 공간을 도시한 도면이다.
임의의 반지름을 갖는 구면상의 임의의 점은 theta(θ)와 phi(φ)로 표현 가능하다. 여기서, theta는 기준축인 y축과, [θ, φ]벡터를 기준면인 xy 평면에 투영시킨 [θxy, φxy] 벡터 사이의 각도를 의미할 수 있다. 그리고, phi는 [θ, φ] 벡터와 [θxy, φxy] 벡터 사이의 각도를 의미할 수 있다. θ는 0~360도 또는 -180~180도의 범위를 가질 수 있으며, φ는 0~180도 또는 -90~90도의 범위를 가질 수 있다. 기준축인 y축과 기준면인 xy 평면은 각각 다른 임의의 축과 임의의 면으로 정의될 수도 있다. 여기서, theta와 phi는 전술한 비행기 주축(Aircraft Principal Axes) 개념에서의 야(yaw)와, 피치(pitch)에 해당할 수 있다.
VCL 레벨 시그널링
VCL(Video Coding Layer)에서 사용자 시점에 따른 데이터 선택 및 재생을 위한 시그널링 정보의 제공은 아래에서 설명할 vr_rect_region_mapping() 및 vr_tile_rect_region_mapping() 의 SEI(Supplemental enhancement information) message 를 통해 이루어질 수 있다.
여기서, vr_rect_region_mapping()은 H.264/AVC, MPEG-2 등 비디오 코덱의 종류와 상관없이 사용될 수 있다. 그리고, vr_tile_rect_region_mapping()은 전술한 tile의 개념이 사용될 수 있다. 일 실시예에 따르면, vr_tile_rect_region_mapping()은 HEVC에서 정의하는 tile과 같은 의미로 사용될 수 있다.
도 30은 본 발명의 일 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도면에서 (a)는 vr_rect_region_mapping()의 일 실시예를 도시하고, (b)는 vr_tile_rect_region_mapping()의 일 실시예을 도시하며, 도면에 도시된 실시예는 시그널링 정보가 SEI message에 포함된 실시예를 나타낸다.
먼저, vr_rect_region_mapping() 및 vr_tile_rect_region_mapping()은 공통적으로 vr_mapping_type 정보 및 num_rect_regions_minus1 정보를 포함한다.
vr_mapping_type 정보는 360도 비디오가 맵핑되는 맵핑 타입에 대한 정보를 나타낼 수 있다. 일 실시예에 따르면, vr_mapping_type의 value 가 0인 경우, equirectangular의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 1인 경우, cubic의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 2인 경우, cylinder 또는 panorama 의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 3인 경우, pyramid의 맵핑 타입을 지시할 수 있다.
다시 말해, vr_mapping_type 정보는 360도 비디오를 2D 이미지(프레임) 상에 맵핑할 때 사용한 프로젝션 스킴(projection scheme)을 지시한다고 할 수 있다. 상기 일 실시예에서, vr_mapping_type의 value 가 0인 경우, equirectangular projection이 사용되었음을 지시하고, vr_mapping_type의 value 가 1인 경우, cubic projection이 사용되었음을 지시하고, vr_mapping_type의 value 가 2인 경우, cylinder projection 또는 panorama projection이 사용되었음을 지시하고, vr_mapping_type의 value 가 3인 경우, pyramid projection이 사용되었음을 지시할 수 있다.
여기서, cylinder 매핑과 panorama 매핑, 또는 cylinder projection 또는 panorama projection의 관계는 cylinder의 top(평면)과 bottom(저면)의 존재 여부에 결정될 수 있다. 즉, cylinder에서 top(평면)과 bottom(저면)이 존재하지 않을 경우, cylinder 매핑은 panorama 매핑과 동일하게 취급될 수 있다.
num_rect_regions_minus1 정보는 해당 비디오 스트림에 포함되는 사각형 영역(region)의 개수 정보를 지시할 수 있다. 다시 말해, num_rect_regions_minus1 정보는 2D 프레임에 포함된 사각형 영역의 개수 정보를 지시할 수 있다. 일 실시예에 따르면, num_rect_regions_minus1 정보는 해당 비디오 스트림에 포함되는 사각형 영역의 개수-1 을 지시한다. 여기서, 사각형 영역은 전술한 region을 의미하는 것으로 사용될 수 있다.
vr_rect_region_mapping()은 rect_region_top_left_x_in_luma_samples[i], rect_region_top_left_y_in_luma_samples[i], rect_region_width_in_luma_samples[i], rect_region_height_in_luma_samples[i], min_theta_in_degree[i], max_theta_in_degree[i], min_phi_in_degree[i] 및 max_phi_in_degree[i]를 포함한다.
rect_region_top_left_x_in_luma_samples[i]은 i번째 사각형 영역의 좌측 상단 끝부분의 x좌표를 픽셀 단위로 나타낼 수 있다.
rect_region_top_left_y_in_luma_samples[i]은 i번째 사각형 영역의 좌측 상단 끝부분의 y 좌표를 픽셀 단위로 나타낼 수 있다.
rect_region_width_in_luma_samples[i]은 i번째 사각형 영역의 너비를 픽셀 단위로 나타낼 수 있다.
rect_region_height_in_luma_samples[i]는 i번째 사각형 영역의 높이를 픽셀 단위로 나타낼 수 있다.
즉, rect_region_top_left_x_in_luma_samples[i]과, rect_region_top_left_y_in_luma_samples[i]는 i번째 사각형의 좌측 상단 끝부분의 위치를 픽셀 단위로 나타낼 수 있고, rect_region_width_in_luma_samples[i]과, rect_region_width_in_luma_samples[i]는 i번째 사각형의 크기를 나타낼 수 있다.
따라서, rect_region_top_left_x_in_luma_samples[i], rect_region_top_left_y_in_luma_samples[i], rect_region_width_in_luma_samples[i] 및 rect_region_width_in_luma_samples[i]는 2D 프레임에 포함된 i번째 사각형 영역의 위치와 크기 정보를 나타낼 수 있다.
min_theta_in_degree[i]는 2D 프레임에 포함된 i번째 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 theta값의 최소값을 나타낼 수 있다.
max_theta_in_degree[i]는 2D 프레임에 포함된 i번째 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 theta값의 최대값을 나타낼 수 있다.
min_phi_in_degree[i]는 2D 프레임에 포함된 i번째 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 phi값의 최소값을 나타낼 수 있다.
max_phi_in_degree[i]는 2D 프레임에 포함된 i번째 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 phi값의 최대값을 나타낼 수 있다.
즉, min_theta_in_degree[i], max_theta_in_degree[i], min_phi_in_degree[i] 및 max_phi_in_degree[i]는 2D 프레임에 포함된 i번째 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역이 차지할 수 있는 범위에 대한 정보를 나타낼 수 있다.
한편, vr_tile_rect_region_mapping()은 top_left_tile_index[i], bottom_right_tile_index[i], min_theta_in_degree[i], max_theta_in_degree[i], min_phi_in_degree[i] 및 max_phi_in_degree[i]를 포함한다.
vr_tile_rect_regeion_mapping()에 포함된 top_left_tile_index[i], bottom_right_tile_index[i]는 i번째 사각형 영역에 해당하는 맨 좌측 위 tile과 맨 오른쪽 아래 tile의 index를 각각 나타낸다. 여기서, index는 좌측 위를 시작으로 raster scan 순으로 매겨질 수 있다. 즉, 본 실시예의 경우, 2D 프레임에 포함된 i번째 사각형 영역의 위치와 크기 정보는 타일(tile)의 인덱스를 통해 표현될 수 있다.
min_theta_in_degree[i], max_theta_in_degree[i], min_phi_in_degree[i] 및 max_phi_in_degree[i]은 2D 프레임에 포함된 i번째 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역이 차지할 수 있는 범위에 대한 정보를 나타낼 수 있으며, 상세한 내용은 vr_rect_region_mapping()을 통해 설명한 내용이 그대로 적용될 수 있다.
한편, 해당 tile의 세부적인 영역 정보 및 코딩 속성 정보들은 SPS (Sequence Parameter Set), Temporal motion constrained tile sets SEI message 등을 통해 전달되어 상기 SEI message에서 전달되는 정보들과 연계되어 사용될 수 있다.
본 도면에 도시된 vr_rect_region_mapping()과, vr_tile_rect_region_mapping()은 vr_mapping_type이 0 또는 3인 경우, 즉 매핑 타입이 equirectangular 또는 pyramid 타입인 경우에 대한 정보일 수 있다.
이와 달리, vr_mapping_type이 1 또는 2인 경우, 즉 매핑 타입이 cubic 또는 cylinder(또는 panorama) 타입인 경우에는 본 도면에 도시된 정보 이외의 정보가 더 필요할 수 있다.
도 31은 본 발명의 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도면에서 (a)는 vr_rect_region_mapping()의 다른 실시예를 도시하고, (b)는 vr_tile_rect_region_mapping()의 다른 실시예를 도시하며, 도면에 도시된 실시예는 시그널링 정보가 SEI message에 포함된 실시예를 나타낸다.
본 실시예에서, vr_mapping_type이 0 또는 3인 경우에는 25을 통해 설명한 정보가 그대로 사용될 수 있다. 이와 달리, vr_mapping_type이 1 또는 2인 경우에는 도 25를 통해 설명한 정보 뿐만 아니라 추가적인 정보가 더 제공될 수 있다.
보다 구체적으로 설명하면, vr_mapping_type이 0 인 경우 equirectangular 타입을 지시하고, vr_mapping_type이 3 인 경우 pyramid 타입을 지시한다. 이와 달리, vr_mapping_type이 1 인 경우 cubic 타입을 지시하고, vr_mapping_type이 2 인 경우 cylinder 타입을 지시한다.
vr_mapping_type이 cubic 타입 또는 cylinder 타입을 지시할 경우, 시그널링 정보는 추가적인 정보로서, 각 사각형 영역의 회전 정도를 나타내는 정보 및 각 사각형 영역이 지시하는 맵핑 타입과 관련된 표면 정보를 더 포함할 수 있다.
도면의 실시예에서, 각 사각형 영역의 회전 정도를 나타내는 정보는 roll_in_degree[i]로 표현되고, 각 사각형 영역이 지시하는 맵핑 타입과 관련된 표면 정보는 surface_type[i]로 표현된다.
구체적으로, vr_mapping_type이 1 로 cubic 매핑을 나타낼 경우, 시그널링 정보는 surface_type[i] 필드를 가질 수 있으며 surface_type[i]는 그 값에 따라 cubic(육면체)의 한 면(surface)을 지시할 수 있다. 일 예로, surface_type[i] 가 0 인 경우 해당 사각형 영역은 cubic의 전면(front)를 지시하고, surface_type[i] 가 1 인 경우 해당 사각형 영역은 cubic의 right(우측면)를 지시하고, surface_type[i] 가 2 인 경우 해당 사각형 영역은 cubic의 back(후면)를 지시하고, surface_type[i] 가 3 인 경우 해당 사각형 영역은 cubic의 left(좌측면)를 지시하고, surface_type[i] 가 4 인 경우 해당 사각형 영역은 cubic의 top(평면)를 지시하고, surface_type[i] 가 5 인 경우 해당 사각형 영역은 cubic의 bottom(저면)를 지시할 수 있다.
vr_mapping_type이 2 로 cylinder 또는 panorama 매핑을 나타낼 경우, 시그널링 정보는 surface_type[i] 필드를 가질 수 있으며 surface_type[i]는 그 값에 따라 cylinder형태의 사용자 시점 영역의 한 면을 지시할 수 있다. 일 예로 surface_type[i]이 0인 경우 해당 사각형 영역은 cylinder의 side(측면)을 지시하고, surface_type[i]이 1인 경우 해당 사각형 영역은 cylinder의 top(평면)을 지시하고, surface_type[i]이 2인 경우 해당 사각형 영역은 cylinder의 bottom(저면)을 지시할 수 있다.
여기서, surface_type[i]이 0인 경우, 즉 해당 사각형 영역이 cylinder의 side에 해당할 경우, 측면에 해당하는 사용자의 시점 영역은 equirectangular 매핑의 경우와 유사하게 min_theta_in_degree[i], max_theta_in_degree[i]를 통해 그 범위가 표현될 수 있다. 또한, surface_type[i]이 0인 경우, min_height[i], max_height[i]를 통해 측면의 높이 범위가 표현될 수 있다. 한편, top과 bottom에 해당하는 surface_type이 존재하지 않을 경우 cylinder 매핑은 panorama 매핑으로 취급될 수 있다. 다시 말해, top과 bottom에 해당하는 surface_type이 존재하지 않을 경우, panorama 매핑을 표현하는 것으로 인지될 수 있다.
일 실시예에서, vr_mapping_type이 3 인 경우, 즉 pyramid 타입인 경우에도 surface_type[i]이 제공될 수 있다. 이 경우, 시그널링 정보는 pyramid에 대한 surface_type[i]를 가질 수 있으며 surface_type[i]는 그 값에 따라 pyramid의 한 면을 지시할 수 있다. 일 예로 surface_type[i]이 0인 경우 해당 사각형 영역은 pyramid의 bottom(저면)을 지시하고, surface_type[i]이 1 내지 4인 경우 해당 사각형 영역은 pyramid의 네 측면을 지시할 수 있다. 이와 관련된 내용(h260010)는 본 도면의 vr_tile_rect_region_mapping()에 나타나 있다.
이하, 각 사각형 영역의 회전 정도를 나타내는 정보에 대해 보다 구체적으로 설명한다.
vr_mapping_type이 cubic 매핑을 나타낼 경우 각 surface에 대한 회전 정도를 나타내는 정보가 추가 정보로서 시그널링 정보에 포함될 수 있다. 그리고, vr_mapping_type이 cylinder 매핑를 나타내고 surface_type이 top 또는 bottom 나타낼 경우, 해당 surface(top 또는 bottom)에 대한 회전 정도를 나타내는 정보가 추가 정보로서 시그널링 정보에 포함될 수 있다.
즉, cubic 매핑에서의 모든 surface, 또는 cylinder 매핑에서 top surface 또는 bottom surface에 대한 회전 정도가 roll_in_degree[i]를 통해 표현될 수 있다.
도 32는 본 발명의 일 실시예에 따른 360도 비디오가 2D 프레임안에 맵핑된 모습을 도시한 도면이다.
도면에서, (a)는 360도 비디오가 cubic projection scheme에 의해 2D 프레임안에 맵핑된 모습을 나타내고, (b)는 360도 비디오가 cylinder projection scheme에 의해 2D 프레임안에 맵핑된 모습을 나타낸다.
도시된 실시예에서, roll_in_degree[i]는 각 surface의 중심점을 중점으로 하고, 중점으로부터 픽처(2D 프레임) 윗변을 잇는 수직 선을 기준으로 시계 방향으로 회전된 정도를 0~360도 범위의 각도로 표현할 수 있다.
cubic projection의 경우, 적어도 2개의 면(surface)는 서로 접하도록 배치되어 2D 프레임안에 매핑될 수 있다. 이때, 적어도 2개의 면(surface) 중 적어도 하나 는 90도 단위의 각도로 회전하여 2D 프레임 안에 매핑될 수 있다. 그리고, 해당 면(surface)의 회전 정도는 roll_in_degree[i]를 통해 표현될 수 있다. 서로 접하도록 배치된 적어도 2개의 면(surface)는 projection 당시의 경계면이 유지되므로 인코딩시 압축 효율을 높일 수 있다.
파일 포맷 레벨 시그널링
파일 포맷 레벨에서의 사용자 시점에 따른 데이터 선택 및 재생을 위한 시그널링 정보의 제공은 아래에서 설명할 VrVideoBox(vrvd) 및 VrSurface ToRectRegionMappingBox(vsrm)을 통해 이루어질 수 있다.
도 33 및 도 34은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도면에서, 도 33의 상단은 본 발명의 일 실시예에 따른 vrvd의 정의(definition)와 신택스(syntax)를 도시하고, 도 33의 하단는 본 발명의 일 실시예에 따른 vsrm의 정의와 신택스를 도시하며, 도 34는 본 발명의 다른 실시예에 따른 vsrm의 정의와 신택스를 도시한다. 한편, 도면에 도시된 실시예는 시그널링 정보가 파일 박스에 포함된 실시예를 나타낸다.
vrvd는 미디어의 재생 또는 렌더링을 위한 Post-decoder requirements 정보 전달을 위한 박스의 하나로 SchemeInformationBox(schi) 하위에 존재할 수 있다. 즉, vrvd의 컨테이너(container)는 schi일 수 있다.
vrvd는 도시된 바와 같이 vr_mapping_type 필드와 옵셔널(optional)한 하위 box들을 포함할 수 있다. 여기서, vr_mapping_type은 360도 비디오의 개별 맵핑 타입을 나타낼 수 있다. vr_mapping_type은 SEI message에 시그널링 정보가 포함된 실시예에서 설명한 내용이 그대로 적용될 수 있다. 일 실시예에 따르면, vr_mapping_type의 value 가 0인 경우, equirectangular의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 1인 경우, cubic의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 2인 경우, cylinder 또는 panorama 의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 3인 경우, pyramid의 맵핑 타입을 지시할 수 있다.
vrvd의 하위 box인 any_box의 위치에는 VR 비디오 프레임을 구성하는 일부 영역, 또는 전체 프레임에 해당하는 영역이 획득 영역에서의 어느 시점 범위 또는 projection 공간상의 사용자 시점의 어느 범위에 해당하는지를 나타내는 박스가 존재할 수 있다. 일 실시예에 따르면 도면에 도시된 바와 같이, any_box의 위치에는 vsrm 가 존재할 수 있다.
vrsm 박스는 다음의 정보를 포함할 수 있다.
region_description_type은 사각형 영역(region)의 기술 방식을 나타낸다. 일 예로, region_description_type이 0 일 경우, codec에 상관 없이 사각형 영역을 픽셀 단위로 나타내며, region_description_type이 1 일 경우, 사각형 영역이 HEVC에 의존적인 영역 기술(describe) 방식이라는 것을 지시한다. 이때, 각 사각형 영역은 HEVC tile 의 형태로 표현될 수 있고, tileGroupID 정보를 포함할 수 있다.
rect_region_count 정보는 해당 vsrm을 포함하는 트랙이 기술하는 사각형 영역(region)의 개수 정보를 지시할 수 있다. 다시 말해, 2D 프레임에 포함된 사각형 영역(region)의 개수 정보를 지시할 수 있다. 일 실시예에 따르면, rect_region_count 정보는 해당 비디오 스트림에 포함되는 사각형 영역의 개수를 지시한다.
top_left_x는 해당 사각형 영역의 좌측 상단 끝부분의 x좌표를 픽셀 단위로 나타낼 수 있다.
top_left_y는 해당 사각형의 좌측 상단 끝부분의 y좌표를 픽셀 단위로 나타낼 수 있다.
width는 해당 사각형의 너비를 픽셀 단위로 나타낼 수 있다.
height는 해당 사각형의 높이를 픽셀 단위로 나타낼 수 있다.
따라서,top_left_x, top_left_y, width 및 height는 2D 프레임에 포함된 해당 사각형 영역의 위치와 크기 정보를 나타낼 수 있다.
tileGroupID는 사각형 영역에 해당하는 HEVC tile 또는 tile region을 지칭하기 위한 값으로 NaluMapEntry, TileRegionBox 또는 TileSetBox에서 기술되는 groupID 또는 tileGroupID와 맵핑될 수 있다. tileGroupID는 사각형 영역이 HEVC에 의존적인 영역 기술(describe) 방식인 경우, HEVC tile 또는 또는 tile region을 지칭하는데 사용될 수 있다.
min_theta는 2D 프레임에 포함된 해당 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 theta값의 최소값을 나타낼 수 있다.
max_theta는 2D 프레임에 포함된 해당 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 theta값의 최대값을 나타낼 수 있다.
min_phi는 2D 프레임에 포함된 해당 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 phi값의 최소값을 나타낼 수 있다.
max_phi는 2D 프레임에 포함된 해당 사각형 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 phi값의 최소값을 나타낼 수 있다.
한편, 본 발명의 다른 실시예에 따른 vsrm은 vrvd이 기술하는 vr_mapping_type에 따라 360도 비디오 획득 공간의 영역 또는 사용자 시점 영역에 대한 기술 방식을 다르게 할 수도 있다.
vr_mapping_type이 0 또는 3의 값을 가져 equirectangular 또는 pyramid 매핑을 나타낼 경우, 앞서 설명한 방식과 동일하게 min_theta, max_theta, min_phi, max_phi를 이용해 획득 공간의 영역 또는 사용자 시점 영역을 나타낼 수 있다.
vr_mapping_type이 1로 cubic 매핑을 나타낼 경우, surface_type 필드가 포함될 수 있으며, surface_type은 그 값에 따라 cubic 형태의 사용자 시점 영역의 한 면을 지시할 수 있다. 일 예로 surface_type이 0 인 경우 해당 사각형 영역은 cubic의 전면(front)를 지시하고, surface_type이 1 인 경우 해당 사각형 영역은 cubic의 right(우측면)를 지시하고, surface_type이 2 인 경우 해당 사각형 영역은 cubic의 back(후면)를 지시하고, surface_type이 3 인 경우 해당 사각형 영역은 cubic의 left(좌측면)를 지시하고, surface_type이 4 인 경우 해당 사각형 영역은 cubic의 top(평면)를 지시하고, surface_type이 5 인 경우 해당 사각형 영역은 cubic의 bottom(저면)를 지시할 수 있다.
또한, vr_mapping_type이 1로 cubic 매핑을 나타낼 경우, roll 필드가 더 포함될 수 있다. roll 필드는 surface에 대한 회전 정보를 나타내며, 그 구체적인 의미는 전술한 roll_in_degree[]와 실질적으로 동일하다.
vr_mapping_type이 2로 cylinder 또는 panorama 매핑을 나타낼 경우, surface_type 필드가 포함될 수 있으며, surface_type은 그 값에 따라 cylinder형태의 사용자 시점 영역의 한 면을 지칭할 수 있다. 일 예로 surface_type이 0인 경우 해당 사각형 영역은 cylinder의 side(측면)을 지시하고, surface_type이 1인 경우 해당 사각형 영역은 cylinder의 top(평면)을 지시하고, surface_type이 2인 경우 해당 사각형 영역은 cylinder의 bottom(저면)을 지시할 수 있다.
여기서, surface_type이 0인 경우, 즉 해당 사각형 영역이 cylinder의 side에 해당할 경우, 측면에 해당하는 사용자의 시점 영역은 equirectangular 매핑의 경우와 유사하게 min_theta, max_theta, min_phi, max_phi 를 통해 그 범위가 표현될 수 있다. 한편, top과 bottom에 해당하는 surface_type이 존재하지 않을 경우 cylinder 매핑은 panorama 매핑으로 취급될 수 있다. 다시 말해, top과 bottom에 해당하는 surface_type이 존재하지 않을 경우, panorama 매핑을 표현하는 것으로 인지될 수 있다.
또한, vr_mapping_type이 cylinder 매핑를 나타내고 surface_type이 top 또는 bottom 나타낼 경우, 해당 surface(top 또는 bottom)에 대한 roll 필드가 더 포함될 수 있다.
도 35는 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
다른 측면에서, 도 35는 본 발명의 다른 실시예에 따른 vrvd의 정의(definition)와 신택스(syntax)를 도시하며, 도시된 실시예는 시그널링 정보가 파일 박스에 포함된 실시예를 나타낸다.
vrvd는 미디어의 재생 또는 렌더링을 위한 Post-decoder requirements 정보 전달을 위한 박스의 하나로 SchemeInformationBox(schi) 하위에 존재할 수 있다. 즉, vrvd의 컨테이너(container)는 schi일 수 있다.
vrvd는 도시된 바와 같이 vr_mapping_type 필드와 옵셔널(optional)한 하위 box들을 포함할 수 있다. 여기서, vr_mapping_type은 360도 비디오의 개별 맵핑 타입을 나타낼 수 있다. 일 실시예에 따르면, vr_mapping_type의 value 가 0인 경우, equirectangular의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 1인 경우, cubic의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 2인 경우, cylinder 또는 panorama 의 맵핑 타입을 지시할 수 있다.
vr_flags의 정의는 다음과 같다:
0x000001 는 pitch 의 각도 범위가 180도 이하인지 여부를 나타낸다.
0x000002 는 min_pitch 필드가 존재하는지 여부를 나타낸다.
0x000004 는 max_pitch 필드가 존재하는지 여부를 나타낸다.
0x000010 는 yaw 의 각도 범위가 360도 이하인지 여부를 나타낸다.
0x000020 는 min_yaw 필드가 존재하는지 여부를 나타낸다.
0x000040 는 max_yaw 필드가 존재하는지 여부를 나타낸다.
0x000100 는 360 비디오 데이터가 프로젝션된 2D 이미지의 중앙 픽셀이, 3D 공간(구형 면) 상의 중점과 동일한지 여부를 지시한다.
0x000200 는 center_yaw 필드가 존재하는지 여부를 나타낸다.
0x000400 는 center_pitch 필드가 존재하는지 여부를 나타낸다.
0x001000 는 initial_view_yaw 필드가 존재하는지 여부를 나타낸다.
0x002000 는 initial_view_pitch 필드가 존재하는지 여부를 나타낸다.
0x004000 는 initial_view_roll 필드가 존재하는지 여부를 나타낸다.
0x010000 는 content_fov 필드가 존재하는지 여부를 나타낸다.
0x020000 는 motion-yaw-only 는 yaw만 변경가능한지 여부를 나타낸다.
옵셔널(optional) 필드인 min_pitch, max_pitch, min_yaw, max_yaw, center_yaw, center_pitch, initial_view_yaw_degree, initial_view_pitch_degree, initial_view_roll_degree 및 content_fov가 vrvd에 포함되는지 여부는 상기 vr_flags에 의해 결정될 수 있다.
min_pitch 필드, max_pitch 필드, min_yaw 필드, max_yaw 필드는 3D 공간상에서 차지하는 영역을 pitch의 최소값, pitch의 최대값, yaw 의 최소값 yaw의 최대값으로 나타낼 수 있다. 이 필드들은 차례로 pitch 축 기준 회전량의 최소값, pitch 축 기준 회전량의 최대값 yaw 축 기준 회전량의 최소값 및 yaw 축 기준 회전량의 최대값을 나타낼 수 있다.
center_yaw 필드, center_pitch 필드는 360 비디오 데이터가 프로젝션된 2D 이미지의 중앙 픽셀 및 3D 공간 상의 중점과 관련된 정보를 제공할 수 있다. 일 실시예에서 center_yaw 필드, center_pitch 필드는 3D 공간의 중점이 캡처 스페이스 좌표계의 좌표 원점 내지 월드 좌표계의 원점에 비하여 회전된 정도를 나타낼 수 있다. 이 경우 각 필드들은 회전된 정도를 yaw, pitch 값으로 나타낼 수 있다.
initial_view_yaw_degree 필드, initial_view_pitch_degree 필드 및 initial_view_roll_degree 필드는 사용자가 360 비디오를 처음 재생했을 때 보게되는 시점(초기 시점)에 대한 정보를 포함할 수 있다. 보다 구체적으로, initial_view_yaw_degree 필드, initial_view_pitch_degree 필드 및 initial_view_roll_degree 필드는 해당 360 비디오 재생 시의 초기 시점을 나타낼 수 있다. 즉, 재생시 처음 보여지는 뷰포트의 정중앙 지점이, 이 세 필드들에 의해 나타내어질 수 있다. 각 필드는 그 정중앙 지점이 위치를 yaw, pitch, roll 축을 기준으로 회전된 방향(부호) 및 그 정도(각도)로 나타낼 수 있다. 이 때 FOV(field of view) 에 따라 처음 재생시 보여지게 되는 뷰포트(viewport)가 결정될 수 있다. FOV 를 통하여, 지시된 초기 시점을 기준으로 한, 초기 뷰포트의 가로길이 및 세로길이(width, height) 가 결정될 수 있다. 즉, 이 세 필드들 및 FOV 정보를 이용하여, 360 비디오 수신 장치는 사용자에게 360 비디오의 일정 영역을 초기 뷰포트로서 제공할 수 있다.
content_fov 필드는 해당 360 비디오에 대하여 제작시 의도한 FOV(field of view)에 대한 정보를 나타낼 수 있고, FOV 는 360 비디오의 재생시 한번에 디스플레이되는 시야범위를 의미할 수 있다.
VrVideoRegion 은 360도 비디오에 대응하는 2D 프레임의 영역(region)에 대한 정보를 기술할 수 있다. 이러한 VrVideoRegion은 vrvd 내에 박스 형태(vrvr)로 포함될 수 있다. 즉, vrvr의 컨테이너는 vrvd일 수 있다.
VrVideoRegion 은 num_vr_regions, vr_region_id, horizontal_offset, vertical_offset, vr_region_width, vr_region_height, max_region_pitch, min_region_yaw, max_region_yaw, cube_face, cube_face_rotation, cylinder_face 및 cylinder_face_rotation 필드를 포함할 수 있다.
num_vr_regions는 2D 프레임에 포함된 영역의 개수 정보를 지시할 수 있다.
vr_region_id는 각 영역에 대한 식별정보를 지시할 수 있다.
horizontal_offset 및 vertical_offset 는 2D 프레임 상에서 해당 영역의 수평, 수직 오프셋을 지시할 수 있다. 일 실시예에서, horizontal_offset 및 vertical_offset은 해당 영역의 좌측 상단 픽셀의 x,y 좌표를 나타낼 수 있다.
vr_region_width 및 vr_region_height는 해당 영역의 너비 및 높이, 즉 가로길이 및 세로길이를 픽셀 단위로 나타낼 수 있다.
min_region_pitch 및 max_region_pitch 는 해당 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 pitch의 최소값과 최대값을 나타낼 수 있다. 여기서, pitch는 phi와 동일한 의미일 수 있다.
min_region_yaw 및 max_region_yaw 는 해당 영역에 대응하는 360도 비디오 획득 공간 영역 또는 사용자 시점 공간 영역에 대한 yaw의 최소값과 최대값을 나타낼 수 있다. 여기서, yaw는 theta와 동일한 의미일 수 있다.
cube_face는 360도 비디오의 프로젝션 스킴이 cubic인 경우, 해당 영역이 육면체의 어느 면(face)에 대응하는지를 지시할 수 있다. 여기서, face는 전술한 surface와 동일한 의미일 수 있다. 일 실시예에서, cube_face 가 0 인 경우 해당 영역은 cubic의 전면(front)를 지시하고, cube_face 가 1 인 경우 해당 영역은 cubic의 right(우측면)를 지시하고, cube_face 가 2 인 경우 해당 영역은 cubic의 back(후면)를 지시하고, cube_face 가 3 인 경우 해당 영역은 cubic의 left(좌측면)를 지시하고, cube_face 가 4 인 경우 해당 영역은 cubic의 top(평면)를 지시하고, cube_face 가 5 인 경우 해당 영역은 cubic의 bottom(저면)를 지시할 수 있다.
cube_face_rotation은 각 cubic face에 대한 회전 정보를 나타낸다. 여기서 cube_face_ratation은 전술한 roll_in_degree와 동일한 의미로 사용될 수 있다.
cylinder_face는 360도 비디오의 프로젝션 스킴이 cylinder인 경우, 해당 영역이 원통의 어느 면(face)에 대응하는지를 지시할 수 있다. 여기서, face는 전술한 surface와 동일한 의미일 수 있다. 일 실시예에서, 일 예로 cylinder_face가 0인 경우 해당 영역은 cylinder의 side(측면)을 지시하고, cylinder_face가 1인 경우 해당 영역은 cylinder의 top(평면)을 지시하고, cylinder_face가 2인 경우 해당 영역은 cylinder의 bottom(저면)을 지시할 수 있다.
cylinder_face_rotation은 각 cylinder_face에 대한 회전 정보를 나타낸다. 여기서, cube_face_ratation은 전술한 roll_in_degree와 동일한 의미로 사용될 수 있다. 또한, cylinder_face_rotation은 cylinder_face가 cylinder의 top 또는 bottom에 해당하는 경우에만 존재할 수도 있다.
도 36은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
다른 측면에서, 도 36은 본 발명의 또 다른 실시예에 따른 vrvd의 정의(definition)와, 신택스(syntax)를 도시하며, 도시된 실시예는 시그널링 정보가 파일 박스에 포함된 실시예를 나타낸다.
상기 vrvd는 미디어의 재생 또는 렌더링을 위한 Post-decoder requirements 정보 전달을 위한 박스의 하나로 SchemeInformationBox(schi) 하위에 존재할 수 있다. 즉, vrvd의 컨테이너(container)는 schi일 수 있다.
이러한 vrvd는 Vr Video Region Box를 포함하며, Vr Video Region Box는 코딩된 픽쳐의 영역(region)이 어떻게 3차원 공간과 맵핑되는지에 대한 상세한 설명을 제공할 수 있다. 3차원 공간은 구형 비디오(spherical video)라고 지칭될 수 있다. 또한, 전술한 360도 비디오 획득 공간 및/또는 사용자 시점 공간에 대응될 수 있으며, 3차원 공간과 2D 프레임은 프로젝션 스킴을 매개로 맵핑될 수 있다. 이러한 vrvr에 대한 상세한 설명은 이어지는 도면을 통해 후술하도록 한다.
vrvd는 도시된 바와 같이 vr_mapping_type 필드와 옵셔널(optional)한 하위 box들을 포함할 수 있다. 여기서, vr_mapping_type은 360도 비디오의 개별 맵핑 타입을 나타낼 수 있다. 일 실시예에 따르면, vr_mapping_type의 value 가 0인 경우, equirectangular의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 1인 경우, cubic의 맵핑 타입을 지시하고, vr_mapping_type의 value 가 2인 경우, cylinder 또는 panorama 의 맵핑 타입을 지시할 수 있다.
본 실시예에 있어서, initial_view_yaw, initial_view_pitch, and initial_view_roll은 옵셔널(optional) 필드가 아닐 수 있다. initial_view_yaw, initial_view_pitch, and initial_view_roll는 각각 yaw, pitch, 및 roll 의 각도를 지시할 수 있다. 이때, 해당 필드가 지시하는 각도는 코딩된 픽처가 렌더링되는 초기시점의 중심점(center)을 지시할 수 있다.
본 실시예에서, center_pitch, min_pitch, max_pitch, min_yaw, max_yaw, content_fov는 옵셔널(optional) 필드일 수 있다.
한편, 옵셔널(optional) 필드의 수는 vr_flags의 하위 바이트에 설정된 비트 수로 결정될 수 있다. 또한, 아래의 필드들이 존재하지 않을 경우, 아래와 같은 기본값이 적용될 수 있다.
- min_pitch가 존재하지 않으면, VR 비디오의 최소 pitch 각도는 -90의 디폴트 값을 갖는다.
- max_pitch가 존재하지 않으면, VR 비디오의 최대 pitch 각도는 +90의 디폴트 값을 갖는다.
- min_yaw가 존재하지 않으면, VR 비디오의 최소 yaw 각도는 -180의 디폴트 값을 갖는다.
- max_yaw가 존재하지 않으면, VR 비디오의 최대 yaw 각도는 +180의 디폴트 값을 갖는다.
옵셔널(optional) 필드인 center-yaw-present, center-pitch-present, min-pitch-present, max-pitch-present, min-yaw-present, max-yaw-present, content-fov-present 및 motion-yaw-only가 vrvd에 포함되는지 여부는 상기 vr_flags에 의해 결정될 수 있다.
vr_flags의 정의는 다음과 같다:
0x000001 는 center-yaw-present로서, center_yaw 필드의 존재 여부를 지시한다. 구체적으로, center-yaw는 다음과 같은 정보를 제공한다.
vr_mapping_type이 equi-rectangular인 경우, 해당 필드는 구면(spherical surface)에 프로젝션된 코딩된 픽처의 중심 픽셀에 대한 yaw 각도를 지시한다.
vr_mapping_type이 cubic인 경우, 해당 필드는 구면(spherical surface)에 프로젝션된 영역으로서 cube의 정면(front surface)에 해당하는 영역의 중심 픽셀에 대한 yaw 각도를 지시한다.
vr_mapping_type이 cylinder인 경우, 해당 필드는 구면(spherical surface)에 프로젝션된 영역으로서 cylinder의 측면(side)에 해당하는 영역의 중심 픽셀에 대한 yaw 각도를 지시한다.
0x000002 는 center-pitch-present로서, center_pitch 필드의 존재 여부를 지시한다. 구체적으로, center-pitch 는 다음과 같은 정보를 제공한다.
vr_mapping_type이 equi-rectangular인 경우, 해당 필드는 구면(spherical surface)에 프로젝션된 코딩된 픽처의 중심 픽셀에 대한 pitch 각도를 지시한다.
vr_mapping_type이 cubic인 경우, 해당 필드는 구면(spherical surface)에 프로젝션된 영역으로서 cube의 정면(front surface)에 해당하는 영역의 중심 픽셀에 대한 pitch 각도를 지시한다.
vr_mapping_type이 cylinder인 경우, 해당 필드는 구면(spherical surface)에 프로젝션된 영역으로서 cylinder의 측면(side)에 해당하는 영역의 중심 픽셀에 대한 pitch 각도를 지시한다.
0x000010 는 min-pitch-present로서, min_pitch 필드의 존재 여부를 지시한다. 구체적으로, min-pitch 는 코딩된 픽처가 프로젝션된 구면의 포인트들에 대한 최소 pitch 각도를 지시한다.
0x000020 는 max-pitch-present로서, max_pitch 필드의 존재 여부를 지시한다. 구체적으로, max-pitch 는 코딩된 픽처가 프로젝션된 구면의 포인트들에 대한 최대 pitch 각도를 지시한다.
0x000040 는 min-yaw-present로서, min_yaw 필드의 존재 여부를 지시한다. 구체적으로, min-yaw 는 코딩된 픽처가 프로젝션된 구면의 포인트들에 대한 최소 yaw 각도를 지시한다.
0x000080 는 max-yaw-present로서, max_yaw 필드의 존재 여부를 지시한다. 구체적으로, max-yaw 는 코딩된 픽처가 프로젝션된 구면의 포인트들에 대한 최대 yaw 각도를 지시한다.
0x010000 는 content-fov-present로서, content_fov 필드의 존재 여부를 지시한다. 구체적으로, content-fov 는 콘텐트 제작자(author)/제공자(provider)가 의도한 콘텐트에 대한 적절한 뷰 필드를 지시한다.
0x020000 는 motion-yaw-only로서, VR 비디오의 움직임(motion)이 오직 yaw에 의해 제한되는지 여부를 지시한다.
도 37은 본 발명의 다른 실시예에 따른 VR video region box를 도시한 도면이다.
도 37은 VR video region(vrvr) 박스의 정의(definition)와 신택스(syntax)를 도시한다.
이러한 VR video region 박스는 트랙 내 코딩된 픽쳐의 영역(region)이 어떻게 구면(sphrecal surface)에 맵핑되는지에 대한 상세한 설명을 제공할 수 있다. 이러한 정보는 2D 프레임에서 구형 비디오로의 프로젝션 시 사용될 수 있다.
본 발명의 다른 실시예에 따른 vrvr은 layout_type, num_vr_region, vr_region_id 및 face_rotation 필드를 포함할 수 있다. 선택적으로, 상기 vrvr은 전술한 vrvr에서 설명된 horizontal_offset, vertical_offset, vr_region_width, vr_region_height, min_region_pitch, max_region_pitch, min_region_yaw, max_region_yaw, cube_face_id, cube_face_rotation, cylinder_face_id 및 cylinder_face_rotation 필드를 더 포함할 수 있다.
layout_type은 vr 비디오가 프로젝션되는 2D 프레임의 레이아웃을 지시할 수 있다.
먼저, 프로젝션 타입이 cubic인 경우, layout_type은, vr 비디오가 2D 프레임 내에 3*2로 매핑되는 레이아웃을 지시하거나, vr 비디오가 2D 프레임 내에 4*3으로 매핑되는 레이아웃을 지시할 수 있다. 보다 구체적으로, 3*2 레이아웃의 경우, 6개의 영역(region)에 대응하는 6개의 면(surface)은 3*2로 구성된 2D 프레임 내에 각각 1:1로 매핑될 수 있다. 4*3 레이아웃의 경우, 6개의 영역(region)에 대응하는 6개의 면(surface)은 4*3으로 구성된 2D 프레임의 절반을 차지할 수 있다. 즉, 12(4*3)개로 구획된 2D 프레임의 절반에 해당하는 부분에 6개의 영역에 대응하는 6개의 면(surface)가 맵핑되고, 나머지 절반에 해당하는 부분은 빈공간으로 처리될 수 있다.
다음으로, 프로젝션 타입이 cylinder인 경우, layout_type은 cylinder의 측면(side)의 위치와 관련하한 레이아웃을 지시할 수 있다. 예를 들면, cylinder의 측면은 layout_type에 따라 2D 프레임의 상부(top), 하부(bottom) 또는 가운데에 맵핑될 수 있다. 다른 관점에서, cylinder의 측면은 layout_type에 따라 2D 프레임의 좌측(left), 우측(right) 또는 가운데에 맵핑될 수 있다.
num_vr_regions는 2D 프레임에 포함된 영역의 개수 정보를 지시할 수 있다. 2D 프레임에 포함된 영역은 프로젝션 타입에 따른 면(face, surface)와 1:1로 대응되므로, num_vr_regions은 면(face, surface)의 개수 정보를 지시한다고 할 수도 있다. 따라서, num_vr_regions는 num_faces로 표현될 수도 있다.
vr_region_id은 각 영역에 대한 식별 정보를 지시할 수 있다. 각 영역은 프로젝션 타입에 따른 면(surface)와 1:1로 대응되므로 vr_region_id은 각 면(face, surface)에 대한 식별 정보를 제공한다고 할 수도 있다. 따라서, vr_region_id는 face_id로 표현될 수도 있다.
region_rotation은 2D 프레임에 매핑되는 영역이 회전되는 각도를 지시할 수 있다. 해당 영역은 +90, +180, -90, -180을 비롯한 어떠한 각도로도 회전 가능하다. 회전 각도가 0인 경우, 해당 영역은 회전되지 않았음을 지시할 수 있다. 각 영역은 프로젝션 타입에 따른 면(face, surface)와 1:1로 대응되므로, region_rotation은 면(face, surface)의 회전 각도를 지시한다고 할 수도 있다. 따라서, region_rotation은 face_rotation으로 표현될 수도 있다.
일 실시예에 따르면, 프로젝션 타입은 cubic일 수 있다. 프로젝션 타입이 Cubic 타입인 경우, vr_region id는 cubic의 면에 매칭되는 영역을 지시할 수 있다. 일 실시예에서, vr_region_id의 값(value)에 대응하는 cubic의 면은 다음과 같을 수 있다.
0x00 : reserved
0x01 : cube_front
0x02 : cube_top
0x03 : cube_bottom
0x04 : cube_left
0x05 : cube_right
0x06 : cube_back
0x07-0x08 : reserved
다른 실시예에서, 프로젝션 타입은 cylinder 일 수 있다. 프로젝션 타입이 cylinder 타입인 경우, vr_region id는 cylinder의 면에 매칭되는 영역을 지시할 수 있다. 일 실시예에서, vr_region_id의 값(value)에 대응하는 cylinder의 면은 다음과 같을 수 있다.
0x00 : reserved
0x01 : cylinder_top
0x02 : cylinder_side
0x03 : cylinder_bottom
0x04-0x08 : reserved
Vrvr 박스에서 제공하는 정보 중 layout_type과 vr_region_id를 이용하면, 2D 프레임 내에 매핑되는 영역의 위치가 특정될 수 있다. 즉, 2D 프레임 내에 프로젝션 스킴에 따른 면(face, surface)의 위치가 특정될 수 있다. 일 실시예에 따르면, 인접한 2개의 면이 프로젝션 당시의 경계면과 일치하도록 하는 면의 위치 및 회전 각도가 설정될 수 있다. 이러한 실시예에 따르면, 인코딩시 압축 효율을 높일 수 있다.
도 38은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도면에서, (a)는 본 발명의 일 실시예에 따른 vr video region group box(vrrg)의 정의(definition)를 도시하며, (b)는 본 발명의 일 실시예에 따른 vr video region info group entry를 도시하며, (c)는 본 발명의 다른 실시예에 따른 vr video region info group entry를 도시하며, (d)는 본 발명의 또 다른 실시예에 따른 vr video region info group entry를 도시한다. 도시된 실시예는 시그널링 정보가 파일 박스에 포함된 실시예를 나타낸다.
본 도면에서 설명되는 시그널링 정보는, 2D 프레임의 영역(region)과 HEVC 타일(tile)을 맵핑하는데 사용되는 정보일 수 있다. 전술한 바와 같이, 2D 프레임의 영역(region)은 타일(tile)과 동일하게 사용될 수도 있지만, 기본적으로 region과 tile은 구별되므로, 영역(region)과 타일(tile)에 관한 맵핑 정보가 필요할 수 있다. 이하에서 설명될 vvrg는 영역(region)과 타일(tile)에 대한 맵핑 정보를 제공하는 파일 박스로서, vr video region info group entry를 포함할 수 있다.
vrrg는 sample group description box(sgpd)에 포함된다.
vr video region info group entry는 tileGroupID, vr_region_count, vr_region_id, 및 full_region_flags를 포함할 수 있다.
tileGroupID는 tile region group ID 값을 지시하거나, tile set groupID를 지시할 수 있다. 여기서, tile region group ID 또는 tile set groupID 는 각각 TileRegionGroupEntry 또는 TileSetGroupEntry에 정의될 수 있다. 일 실시예에서, tileGroupID는 단일의 tile ID를 지시할 수도 있다.
vr_region_count는 tilegroupID에 의해 지시되는 tile region 또는 tile set과 관련된 vr_region의 넘버(개수) 정보를 제공할 수 있다. 일 실시예에서, vr_region_count는 tilegroupID에 의해 지시되는 단일의 tile와 관련된 vr_region의 넘버(개수) 정보를 제공할 수도 있다.
vr_region_id는 360도 비디오에 대응하는 2D 프레임 영역의 식별 정보를 나타낸다. vr_region_id는 전술한 vrvd에 정의된 vr_region_id를 지시할 수 있다. 전술한 바와 같이, vr_region_id는 프로젝션 스킴에 따른 면(face, surface)를 지시하는 face_id로 대체 가능하다.
full_region_flag는 tilegroupID에 의해 지시되는 tile region 또는 tile set이 vr_region_id에 의해 지시되는 영역을 완전히 포함하는지 여부를 지시할 수 있다. 일 실시예에서, full_region_flag가 1이면, tilegroupID에 의해 지시되는 tile region 또는 tile set이 vr_region_id에 의해 지시되는 영역을 완전히 포함하는 것을 나타낸다. 일 실시예에서, full_region_flag는 tilegroupID에 의해 지시되는 단일의 tile이 vr_region_id에 의해 지시되는 영역을 완전히 포함하는지 여부를 지시할 수도 있다.
본 도면에서, (b)에 도시된 실시예는, tileGroupID를 기준으로 타일 리전 또는 타일 셋과 관련된 영역(region)을 기술한 실시예이고, (c)에 도시된 실시예는, vr_region_id를 기준으로 영역(region)과 관련된 타일 리전 또는 타일 셋을 기술한 실시예이다.
본 도면에서, (d)에 도시된 실시예는, 추가적인 정보를 더 제공한다.
num_vr_regions_in_track은 해당 트랙 내에 저장되 VR 비디오 영역의 개수 정보를 제공한다.
additional_region_info_type은 부가 영역(additional region) 정보의 타입에 대한 정보를 제공한다. 일 실시예에서, additional_region_info_type의 값(value)에 대응하는 타입 정보는 다음과 같을 수 있다.
0x00 : non
0x01 : HEVC tile association information
0x02-0x08 : reserved
num_vr_regions_in_track은 해당 트랙에 저장된 VR video 영역의 개수 정보를 제공할 수 있다.
vr_region_id는 360도 비디오에 대응하는 2D 프레임 영역의 식별 정보를 나타낸다. vr_region_id는 전술한 vrvd에 정의된 vr_region_id를 지시할 수 있다.
full_region_flag는 1로 설정될 경우, 해당 트랙이 vr_region_id에 의해 지시되는 완전한 VR 비디오 영역을 포함한다는 것을 지시할 수 있다.
num_tileGroups 은 vr_region_id에 의해 지시되는 VR 비디오 리전과 관련된, tileGroupID 필드에 의해 지시되는 tile region 또는 tile set의 개수 정보를 제공할 수 있다.
full_tileGroup_flag는 1로 설정될 경우, vr_region_id에 의해 지시되는 VR tile region 이 tileGroupID에 의해 지시되는 완전한 tile region 또는 tile set을 포함한다는 것을 지시할 수 있다.
도 39는 vr video region info group entry를 이용하여 region과 tile region 사이의 관계를 나타낸 도면이다.
도 39는 두 가지 실시예를 도시한다. 먼저, 도 39의 상단에 도시된 실시예는 영역(region)과 tile region이 일치하는 실시예이고, 도 39의 하단에 도시된 실시예는, 영역(region)과 tile region이 다른 실시예이다.
도면의 상단에 도시된 실시예는 cubic type으로 프로젝션되어 2D 프레임에 매핑된 것으로서, 6개의 영역(region)들이 존재하며, 각 region들은 right, left, top, bottom, front, back로 cubic prjection 공간의 각 면에 해당한다. tile region은 모두 6개로, 각각 region들의 경계와 일치한다.
도시된 바와 같이, 각 tile region과 region의 관계를 기술하기 위해 6개의 VrVideoRegionInfoGroupEntry가 존재할 수 있다. tileGroupId와 vr_region_id는 일대일 맵핑되어 해당 region이 해당 tile region에 속함을 나타낼 수 있다. 여기서 각 tile region은 해당 vr region의 전체 영역을 포함하고 있으므로, 각 VrVideoRegionInfoGroupEntry의 full_region_flag=1로 셋팅된다.
도면의 하단에 도시된 실시예는 상단의 실시예와 비교할 때, region 구성은 동일하지만, tile region의 구성은 차이가 있다. 도시된 바와 같이, 2D 프레임은 좌우, 상하로 균등하게 분할된 4개의 tile region으로 구성된다.
각 tile region과 region의 관계를 기술하기 위해 4개의 VrVideoRegionInfoGroupEntry가 존재할 수 있다. tileGroupId=1, 2, 3, 4에 해당하는 tile region은 각각 vr_region_id=1, 3, 4, 6에 해당하는 region의 전체 영역을 포함한다. 따라서, tileGroupId=1, 2, 3, 4에 해당하는 full_region_flag=1로 설정되고, 해당 vr_region_id와 tileGroupId의 맵핑 관계가 각각의 VrVideoRegionInfoGroupEntry에 기술된다. vr_region_id=2에 해당하는 region은 tileGroupId=1, 2에 해당하는 tile region들의 일부 영역을 포함하고, vr_region_id=5에 해당하는 region은 tileGroupId=3, 4에 해당하는 tile region들의 일부 영역을 포함한다. 따라서, vr_region_id=2,5에 해당하는 full_region_flag=0로 설정되고, 해당 vr_region_id와 tileGroupId의 맵핑 관계가 각각의 VrVideoRegionInfoGroupEntry에 기술된다.
도 40은 본 발명의 또 다른 실시예에 따른 사용자 시점에 따른 360도 비디오 데이터 선택, 전송 및 재생을 위한 시그널링 정보를 도시한 도면이다.
도 40은 본 발명의 일 실시예에 따른 FisheyeVideoInfoBox (fevi)의 정의(definition)와 신택스(syntax)를 도시하며, 도시된 실시예는 시그널링 정보가 파일 박스에 포함된 실시예를 나타낸다.
fevi는 전술한 vrvd 박스 하위에 존재할 수 있다. 즉, fevi의 컨테이너(container)는 vrvd일 수 있다. 한편, fevi 는 vrvd의 vr_mapping_type이 2인 경우, 즉 매핑 타입이 cylinder인 경우 필수적으로 존재하도록 설정될 수 있다.
fevi는 트랙에 포함된 fisheye 비디오의 포맷을 지시하는데 사용될 수 있다. 이러한 포맷 정보는 fisheye 비디오를 렌더링하는데 사용될 수 있다. 여기서, fisheye 비디오는 구형 카메라(shprerical camera)또는 어안 카메라(fisheye camera)에서 각 센서를 통해 획득한 이미지로부터 생성된 비디오를 의미할 수 있다. 일 실시예에서 구형 카메라의 센서는 2개일 수 있고, 하나의 센서는 theta 및 phi의 범위가 대략 -90~90도 사이의 범위를 가질 수 있다. 즉, 2개의 센서를 통해 전체 방향의 대부분을 커버할 수 있다.
fevi는 num_circular_images, image_center_x, image_center_y, full_radius, frame_radius, scene_radius, image_rotation, image_flip, image_scale_axis_angle, image_scale_x, image_scale_y, field_of_view, num_compression_curve_pionts, compression_curve_x, compression_curve_y, center_yaw, center_pitch, num_deadzones, deadzone_left_horizontal_offset, deadzone_top_vertical_offset, deadzone_width 및 deadzone_height 를 포함할 수 있다.
number circular images는 fisheye image의 개수 정보를 지시할 수 있다. 일 실시예에서, fisheye image는 구형 카메라의 2개의 센서를 통해 획득될 수 있는데, 이러한 경우 fisheye image의 개수는 2이고, number circular images 는 1일 수 있다.
image_center_x는 해당 fisheye 이미지의 중심의 x좌표를 픽셀 단위로 지시할 수 있다.
image_center_y는 해당 fisheye 이미지의 중심의 y좌표를 픽셀 단위로 지시할 수 있다.
한편, center_pitch 는 image_center_x, image_center_y 픽셀과 매칭되는 spherical surface 상에서의 pitch 값을 지시할 수 있다.
center_yaw 는 image_center_x, image_center_y 픽셀과 매칭되는 spherical surface 상에서의 yaw 값을 지시할 수 있다.
center_pitch, conter_yaw 값을 이용하면, 각 fisheye 센서를 통해 획득되는 image 의 sherical surface 상에서의 위치를 유추할 수 있다. 또는 center_pitch, conter_yaw 값을 이용하면, fisheye camera 의 sherical surface 상에서의 위치를 유추할 수 있다. 수신기에서 re-projection을 하는 경우 해당 이미지의 image 의 sherical surface 상에서의 위치를 유추하여 적절하게 re-projection 을 수행할 수 있다.
unicast 환경에서의 시그널링
unicast 환경에서의 사용자 시점에 따른 전송 데이터의 선택 및 재생은 delivery 속성 표현을 위한 정보에 VR 비디오 시그널링 정보를 추가함으로써 이루어질 수 있다. 일 예로, DASH를 이용한 VR 비디오를 전송하기 위해 MPD에 추가 정보를 정의할 수 있다.
DASH를 통해 전송되는 VR 비디오의 맵핑 타입을 식별하기 위하여, EssentialProperty 또는 SupplementalProperty가 사용될 수 있다. 해당 EssentialProperty 또는 SupplementalProperty는 AdpatationSet, Representation, Sub-Representation 등의 하위에 존재할 수 있다. EssentialProperty 또는 SupplementalProperty가 VR 맵핑 타입을 기술하기 위해 사용된다는 것을 지시하기 위해 @schemeIdUri = "urn:mpeg:dash:vr-map:2016“와 같은 고유의 scheme 식별자가 부여될 수 있다. @value에는 현재 VR 비디오의 맵핑 타입을 식별하기 위한 고유의 string 또는 integer 값이 할당될 수 있다. 일 예로, “equirectangular”, “cubic”, “pyramid”, “cylinder”, “panorama” 등의 값이 @value에 할당되어 해당하는 맵핑 타입을 나타낼 수 있다. @id는 해당 EssentialProperty 또는 SupplementalProperty의 식별자로 동일한 @id 값을 갖는 EssentialProperty 또는 SupplementalProperty들이 밀접하게 연관됨을 나타낼 수 있다. 일 예로, 동일한 VR 비디오의 일부 영역(region)에 해당되는 두 개의 AdpatationSet은 동일한 VR 맵핑 타입을 가지므로 @value를 이용해 중복적으로 맵핑 타입을 기술하는 대신, 동일 @id를 부여하여 중복성 없이 맵핑 타입을 기술할 수 있다.
또한 DASH를 통해 전송되는 VR 비디오의 획득 공간에서의 영역 범위 또는 사용자 시점 지원 범위를 식별하기 위하여, EssentialProperty 또는 SupplementalProperty가 사용될 수 있다. 해당 EssentialProperty 또는 SupplementalProperty는 AdpatationSet, Representation, Sub-Representation 등의 하위에 존재할 수 있다. EssentialProperty 또는 SupplementalProperty가 VR 맵핑 타입을 기술하기 위해 사용된다는 것을 지시하기 위해 @schemeIdUri = "urn:mpeg:dash:vr-srd:2016“와 같은 고유의 scheme 식별자가 부여될 수 있다. @value는 도면을 통해 아래에서 설명하는 형태의 구문을 가질 수 있으며, 각각의 파라미터는 콤마(,)로 구분될 수 있다.
도 41은 DASH를 통해 전송되는 VR 비디오의 획득 공간에서의 영역 범위 또는 사용자 시점 지원 범위를 지시하기 위한 @value의 syntax를 도시한 도면이다.
도면에서, (a)는 본 발명의 일 실시예에 따른 @value의 syntax이고, (b)는 본 발명의 다른 실시예에 따른 @value의 syntax이다. (b)에 도시된 본 발명의 다른 실시예에 따른 @value의 syntax는 (a)에 도시된 본 발명의 일 실시예에 따른 @value의 syntax와 비교할 때, surface type에 대한 정보 및 roll에 대한 정보를 더 포함한다는 점에서 차이가 있다.
앞서 설명한 VR mapping 및 VR region description을 위한 EssentialProperty 또는 SupplementalProperty를 사용하여 MPD를 구성한 실시예는 다음과 같을 수 있다.
도 42는 full picture frame, region으로 구획된 full picture frame을 도 43은 도 42와 관련된 시그널링 정보를 포함하는 MPD를 도시한 도면이다.
도시된 실시예는 하나의 main 비디오와, 하나의 main 비디오를 좌측 상단, 우측 상단, 우측 하단, 좌측 하단으로 공간적으로 나누어 4개의 영역(region)으로 구성한 실시예이다. 그리고, 본 실시예에서 영역(region)은 tile과 동일하게 사용된다.
main video는 수평 방향으로 -180~180도, 수직 방향으로 -90~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다.
좌측 상단에 해당하는 영역(Tile 1)은 수평 방향으로 -180~0도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 -90~0도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다. 우측 상단에 해당하는 영역(Tile 2)은 수평 방향으로 -180~0도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 -90~0도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다. 우측 하단에 해당하는 영역(Tile 3)은 수평 방향으로 0~180도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 0~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다. 좌측 하단에 해당하는 영역(Tile 4)은 수평 방향으로 -180~0도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 0~90도의 사용자 시점을 지원한다. main video는 960*480, 1920*960, 3840*1920의 해상도에 해당하는 3가지 quality의 콘텐트를 제공하며, 각 영역들(tile 1~4)은 이것의 수직, 수평 절반에 해당하는 quality를 지원한다. 본 실시예는 main video 프레임이 4개의 HEVC tile로 나누어지는 경우를 보여주고 있으나, 각 tile에 해당하는 rectangular region 과 main video 에 해당하는 비디오가 독립적으로 인코딩될 수도 있다. 이때, 인코딩은 AVC/H.264와 같은 기존 코덱들을 사용하여 이루어질 수 있다.
다음의 또 다른 실시 예는 하나의 main 비디오와 이를 중첩을 허용하여 4개의 rectangular region으로 나누어 구성한 경우이다.
도 44는 full picture frame, region으로 구획된 full picture frame을, 도 45는 도 44와 관련된 시그널링 정보를 포함하는 MPD를 도시한 도면이다.
main video는 수평 방향으로 -180~180도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 -90~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다.
Full picture frame은 4개의 region으로 구획되고, 각 region은 pyramid 또는 equirectangular에 매핑될 수 있다. 도시된 실시예에서 각 region은 pyramid에 매핑된다.
첫 번째 rectangular region인 Pyramid 1은 수평 방향으로 -180~0도의 사용자 시점을 지원하며, 수직 방향으로 -90 ~90도의 사용자 시점을 지원한다. 두 번째 rectangular region인 Pyramid 2는 수평 방향으로 -90~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 -90~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다. 세 번째 rectangular region인 Pyramid 3은 수평 방향으로 0~180도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 -90~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다. 네 번째 rectangular region인 Pyramid 4는 수평 방향으로 90~180도, 및 -180~-90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원하며, 수직 방향으로 -90~90도의 획득 공간에서의 시점범위 또는 사용자 시점범위를 지원한다. 특히 네 번째의 경우 인접하지 않는 두 개의 rectangular region 과, 두 개의 VR 사용자 시점 영역을 지시하기 위한 시그널링이 필요하다. 이를 위해 도시된 실시예는 2개의 srd 및 2개의 vr-srd를 이용하여 인접하지 않는 영역들을 기술한다. 도시된 실시예에서, 첫번째 vr-srd의 supplementalProperty value = “0,90,-90,180,90,-180,-90,180,90”의 두번째 value부터 다섯번째 value인 90,-90, 180, 90은 순서대로 수평방향 시점범위의 최소값, 수직방향 시점범위의 최소값, 수평방향 시점범위의 최대값, 수직방향 시점범위의 최대값을 지시한다. 즉, 첫번째 srd 및 vr-srd는 네번째 region(pyramid 4)의 좌측 사각형에 대한 정보를 제공한다고 할 수 있다. 또한, vr-srd의 supplementalProperty value = “0,-180,0,0,90,-180,-90,180,90”의 두번째 value부터 다섯번째 value인 -180,0, 0, 90은 순서대로 수평방향 시점범위의 최소값, 수직방향 시점범위의 최소값, 수평방향 시점범위의 최대값, 수직방향 시점범위의 최대값을 지시한다. 즉, 첫번째 srd 및 vr-srd는 네번째 region(pyramid 4)의 우측 사각형에 대한 정보를 제공한다고 할 수 있다. 여기서, 네번째 region(pyramid 4)의 우측 사각형이 포함하는 정보는 첫번째 region(pyramid 1)의 좌측 사각형이 포함하는 정보와 같다고 할 수 있다.
이러한 방법은 사각형이 아닌 영역의 spatial region 및 사용자 시점 지원 범위를 기술하는 데에도 사용될 수 있다. main video는 960*480, 1920*960, 3840*1920의 해상도에 해당하는 3가지 quality의 콘텐트를 제공하며, 각 rectangular들은 480*480, 960*960, 1920*1920의 3가지 해상도를 지원한다. 본 실시예는 main video 프레임이 4개의 HEVC tile으로 나누어지는 경우를 보여주고 있으나, 각 tile에 해당하는 rectangular region 과 main video 에 해당하는 비디오가 독립적으로 AVC/H.264와 같은 기존 코덱들을 사용하여 인코딩되어 제공될 수도 있다.
수신기 동작
도 46은 본 발명의 일 실시예에 따른 수신기 동작을 나타낸 도면이다.
도 46은 VCL (Video Coding Layer)에서의 사용자 시점에 따른 전송 데이터 선택/재생을 위한 수신기 동작을 나타낸다.
앞서 설명한 VCL에서의 사용자 시점에 따른 데이터 선택 및 재생 방법을 이용한 수신기의 동작은 다음과 같을 수 있다.
먼저, VR content, 즉 360도 비디오를 포함하는 미디어 데이터는 콘텐트 서버(content server)(h360010)로부터 제공될 수 있다.
이어서, 수신기 안의 네트워크 클라이언트(network client)(h460020)는 content server(h460010)로부터 수신한 패킷들로부터 VR content file 또는 segment들을 생성할 수 있다. 대안적인 실시예에서, file, segment는 기타 저장 매체 등을 통해 수신기로 전달될 수도 있다.
다음으로, 파일 파서(File Parser)(h460030)는 수신된 file, segment를 해석(parsing)하여 full picture에 해당하는 video bitstream을 비디오 디코더(Video Decoder)(h460040)로 전달할 수 있다.
그 다음으로, Video Decoder(h460040)는 full picture에 해당하는 video stream을 복호화 하거나, 제안한 vr_rect_region_mapping() 및 vr_tile_rect_region_mapping() SEI message를 통해, 사용자의 초기 시점에 해당하는 region의 data를 복호화 하여 Projector/Renderer/Sensors(h460050)로 전달할 수 있다. 이때, 초기 시점은 360도 컨텐트 제작자의 의도가 반영된 viewport일 수도 있다. 그리고, 이러한 초기 시점은 전체 컨텐트의 최초 시작점에 국한되지 않으며, 시퀀스(sequence) 단위 또는 장면(scene) 단위 마다 존재할 수 있다. 즉, 초기 시점은 컨텐트 제작자의 의도가 반영된 시점일 수 있으며, 이는 user의 의도가 반영된 시점인 사용자 시점과 구별될 수 있다.
한편, 사용자 시점(user viewport)에 대한 피드백이 있을 경우, 비디오 디코더(h460040)는 해당 사용자 시점(피드백된 사용자 시점)에 해당하는 region의 데이터를 복호화하여 Projector/Renderer/Sensors(h460050)로 전달할 수 있다.
그 다음으로, Projector/Renderer/Sensors(h460050)는 전달된 full picture 또는 region data를 projection scheme에 따라 projection하고, 3D model에 rendering하여 사용자의 디스플레이를 통해 초기 시점 또는 사용자 시점에 해당하는 영역을 출력한다. 사용자의 시점은 sensor를 통해 지속적으로 모니터링 되어 Video Decoder(h460040)로 전달될 수 있다. Video Decoder(h460040)는 전달된 사용자 시점을 이용하여 해당 region을 선택 및 디코딩 할 수 있고, 디코딩된 region은 projection 및 rendering되어 사용자의 디스플레이에 출력될 수 있으며, 이러한 과정이 반복될 수 있다.
도 47은 본 발명의 다른 실시예에 따른 수신기 동작을 나타낸 도면이다.
도 47은 파일 포맷 레벨에서의 사용자 시점에 따른 전송 데이터 선택/재생을 위한 수신기 동작을 나타낸다.
앞서 설명한 파일 포맷 레벨에서의 사용자 시점에 따른 데이터 선택 및 재생 방법을 이용한 수신기의 동작은 다음과 같을 수 있다.
먼저, VR content, 즉 360도 비디오를 포함하는 미디어 데이터는 content server(h470010)로부터 제공될 수 있다.
이어서, 수신기 안의 네트워크 클라이언트(h470020)는 content server(h470010)로부터 수신한 패킷들로부터 VR content file 또는 segment들을 생성할 수 있다. 대안적인 실시예에서, file, segment는 기타 저장 매체 등을 통해 수신기로 전달될 수도 있다.
다음으로, File Parser(h470030)는 수신된 file, segment를 해석(parsing)하여 video bitstream을 추출하여 video decoder(h470040)로 전달한다. 이때 File Parser(h470030)는 full picture에 해당하는 video stream을 추출하거나, 앞서 설명한 'vrvd', 'vsrm' 정보를 통해, 사용자의 초기 시점에 해당하는 region의 data를 추출하여 Video Decoder(h470040)로 전달할 수 있다. 이때, 초기 시점은 360도 컨텐트 제작자의 의도가 반영된 viewport일 수도 있다. 그리고, 이러한 초기 시점은 전체 컨텐트의 최초 시작점에 국한되지 않으며, 시퀀스(sequence) 단위 또는 장면(scene) 단위 마다 존재할 수 있다. 즉, 초기 시점은 컨텐트 제작자의 의도가 반영된 시점일 수 있으며, 이는 user의 의도가 반영된 시점인 사용자 시점과 구별될 수 있다.
한편, 사용자 시점(user viewport)에 대한 피드백이 있을 경우, file parser(h470030)는 해당 사용자 시점(피드백된 사용자 시점)에 해당하는 region의 데이터를 추출하여 video decoder(h470040)로 전달할 수 있다.
그 다음으로, Video Decoder(h470040)는 전달받은 video bitstream을 복호하여 Projector/Renderer/Sensors(h470050)에 전달한다.
그 다음으로, Projector/Renderer/Sensors(h470050)는 전달된 full picture 또는 region data를 projection scheme에 따라 projection하고, 3D model에 rendering하여 사용자의 디스플레이를 통해 초기 시점 또는 사용자 시점에 해당하는 영역을 출력한다. 사용자의 시점은 sensor를 통해 지속적으로 모니터링 되어 file parser(h470030)로 전달될 수 있다. File parser(h470030)는 전달된 사용자 시점을 이용하여 해당 region을 추출할 수 있고, 추출된 region은 video decoder에 의해 디코딩되고, projection 및 rendering되어 사용자의 디스플레이에 출력될 수 있으며, 이러한 과정이 반복될 수 있다.
도 48은 본 발명의 또 다른 실시예에 따른 수신기 동작을 나타낸 도면이다.
도 48은 Unicast 환경에서의 사용자 시점에 따른 전송 데이터 선택/재생을 위한 수신기 동작을 나타낸다.
앞서 설명한 Unicast 환경에서의 사용자 시점에 따른 전송 데이터 선택/재생 방법을 이용한 수신기의 동작은 다음과 같을 수 있다.
먼저, VR content, 즉 360도 비디오를 포함하는 미디어 데이터는 content server(h480010)로부터 제공될 수 있다.
이어서, 수신기 안의 네트워크 클라이언트(h480020)는 content server(h480010)로부터 수신한 패킷들로부터 VR content file 또는 segment들을 생성할 수 있다. 대안적인 실시예에서, file, segment는 기타 저장 매체 등을 통해 수신기로 전달될 수도 있다. 이때 네트워크 클라이언트(h480020)는 full picture에 해당하는 data를 수신하거나, 사용자의 초기 시점에 해당하는 region의 data를 수신할 수 있다. 이때, 초기 시점은 360도 컨텐트 제작자의 의도가 반영된 viewport일 수도 있다. 그리고, 이러한 초기 시점은 전체 컨텐트의 최초 시작점에 국한되지 않으며, 시퀀스(sequence) 단위 또는 장면(scene) 단위 마다 존재할 수 있다. 즉, 초기 시점은 컨텐트 제작자의 의도가 반영된 시점일 수 있으며, 이는 user의 의도가 반영된 시점인 사용자 시점과 구별될 수 있다.
한편, 사용자 시점(user viewport)에 대한 피드백이 있을 경우, 네트워크 클라이언트(h480020)는 해당 사용자 시점(피드백된 사용자 시점)에 해당하는 region의 데이터를 수신할 수 있다.
일 실시예에서, Network Client(h480020)는 DASH Client일 수 있다. DASH Client는 앞서 설명한 vr-map, vr-srd, srd 등의 정보를 이용하여 사용자의 시점에 해당되는 AdaptationSet/Representation을 선택하고, 이에 해당되는 Segment들을 Content Server(DASH Server)에 요청하여 이를 수신할 수 있다.
다음으로, File Parser(h480030)는 수신된 file, segment를 해석(parsing)하고 video bitstream을 추출하여 video decoder(h480040)로 전달한다.
그 다음으로, Video Decoder(h480040)는 전달받은 video bitstream을 복호하여 Projector/Renderer/Sensors(h480050)에 전달한다.
그 다음으로, Projector/Renderer/Sensors(h480050)는 전달된 full picture 또는 region data를 projection scheme에 따라 projection하고, 3D model에 rendering하여 사용자의 디스플레이를 통해 사용자 시점에 해당하는 영역을 보여준다. 사용자의 시점은 sensor를 통해 지속적으로 모니터링 되어 network client(h480020)로 전달될 수 있다. Network Client(h480020)는 전달된 사용자 시점을 이용하여 해당 region의 data를 수신할 수 있고, 수신된 region data는 file parser(h480030)에 의해 추출되며, 추출된 region data는 video decoder(h480040)에 의해 디코딩되고, projection 및 rendering되어 사용자의 디스플레이에 출력될 수 있으며, 이러한 과정이 반복될 수 있다.
본 발명의 일 측면에 따르면, 360도 비디오를 전송하는 방법이 개시된다.
도 49는 본 발명의 일 실시예에 따른 360도 비디오를 전송하는 방법을 도시한 도면이다.
본 발명의 일 실시예에 따른 360도 비디오를 전송하는 방법은, 360도 비디오 데이터를 획득하는 단계(S49100), 상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 단계(S49200), 상기 2D 이미지를 2 이상의 영역으로 나누고 개별 영역 또는 다수 영역의 단위로 인코딩하는 단계(S49300), 상기 360도 비디오 데이터에 대한 시그널링 정보를 생성하는 단계(S49400), 및 상기 인코딩된 2D 이미지 및 상기 시그널링 정보를 포함하는 데이터 신호를 전송하는 단계(S49500)를 포함할 수 있다. 여기서, 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다.
상기 360도 비디오 데이터를 획득하는 단계(S49100)에서 360도 비디오 데이터가 획득될 수 있다. 도 1, 도 2, 도 4 및 도 12에서 전술한 바와 같이, 360도 비디오 데이터는 360도 카메라(VR 카메라)를 이용하여 360도 비디오를 캡쳐하여 얻어지거나, 360도 비디오에 해당하는 데이터를 생성함으로써 얻어질 수 있다.
상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 단계(S49200)는 3차원의 360도 비디오를 2차원에 맵핑하는 단계일 수 있다. 상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 단계(S49200)는 도 1, 도 2, 도 4 및 도 12 등을 통해 설명한 바와 같이 3차원의 360도 비디오를 스티칭하고, 소정 프로젝션 스킴(projection scheme)에 따라 프로젝션한 다음 수행될 수 있다. 여기서, 프로젝션 스킴은 다양한 방법이 있을 수 있다. 프로젝션 스킴에 대한 내용은, 도 6, 도 8, 도 30, 도 31, 도 32, 도 33, 도 34 및 도 35 등을 통해 설명한 내용이 적용될 수 있다.
상기 2D 이미지를 2 이상의 영역으로 나누고 개별 영역 또는 다수 영역의 단위로 인코딩하는 단계(S49300)는 2D 이미지를 각 영역 별로 인코딩하거나, 각 영역의 집합 별로 인코딩하는 단계일 수 있다. 여기서, 영역(region)에 관한 내용은 도 1, 도 4, 도 12-28, 도 30-48에서 전술한 내용이 적용될 수 있다. 즉, 영역은 실시예에 따라 tile 또는 HEVC tile 과 동일한 의미로 사용될 수도 있다. 또한, 개별 영역은 하나의 단위 영역을 의미하고, 다수 영역은 개별 영역의 집합을 의미할 수 있다. 또한, 영역과 tile이 동일한 실시예에서, tile set 과 tile region 은 다수 영역에 해당할 수 있다.
상기 360도 비디오 데이터에 대한 시그널링 정보를 생성하는 단계(S49400)는 360도 비디오를 제공하기 위한 요구되는 시그널링 정보를 생성하는 단계일 수 있다. 이러한 시그널링 정보는 도 8에서 설명한 바와 같이 360 비디오 관련 메타데이터 또는 360 비디오 관련 시그널링 정보로 지칭될 수도 있다. 이러한 시그널링 정보는 도 1-4 에서 설명된 바와 같이, 360도 비디오 제공을 위해 수행되는 각 과정에서 생성될 수 있다. 또한, 시그널링 정보는, 비디오 레벨, 파일 포맷 레벨 및/또는 시스템 레벨에 포함될 수 있다. 비디오 레벨의 시그널링으로는, 시그널링 정보가 SEI message에 포함되는 실시예가 있고, 파일 포맷 레벨의 시그널링으로는, 시그널링 정보가 ISO BMFF 의 파일 박스에 포함되는 실시예가 있으며, 시스템 레벨의 시그널링으로는, 시그널링 정보가 DASH MPD에 포함되는 실시예가 있으며, 이는 앞서 설명한 바와 같다.
상기 인코딩된 2D 이미지 및 상기 시그널링 정보를 포함하는 데이터 신호를 전송하는 단계는(S49500) 데이터 신호를 수신 디바이스로 전송하는 단계일 수 있다. 일 실시예에서, 상기 상기 인코딩된 2D 이미지 및 상기 시그널링 정보를 포함하는 데이터 신호를 전송하는 단계(S49500) 이전에 상기 인코딩된 2D 이미지 및 상기 시그널링 정보에 대해 전송을 위한 처리를 수행하는 단계가 더 수행될 수 있다. 상기 전송을 위한 처리를 수행하는 단계는 도 12를 통해 설명된 전송 포맷으로 구성하는 과정에 해당할 수 있다. 즉, 360도 비디오 데이터에 해당하는 2D 이미지를 파일 포맷으로 인캡슐레이션하는 단계일 수 있다. 그리고, 상기 파일 포맷은 ISO BMFF 파일 포맷일 수 있다. 또한, 데이터 신호를 전송하는 단계은 방송망 및/또는 브로드밴드를 통해 데이터 신호를 전송하는 단계일 수 있다.
한편, 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다. 이러한 그룹핑과 관련된 시그널링은 도 12-28에 설명된 내용이 적용될 수 있다. 구체적으로, 상기 그룹핑 정보는 제1 그룹 정보와, 제2 그룹 정보를 포함할 수 있다.
여기서, 상기 제1 그룹 정보는 선택적 재생 또는 스트리밍 가능한 개별 영역 또는 다수 영역에 대한 그룹핑 정보를 제공할 수 있다. 예를 들어, 제1 그룹 정보는 개별 영역이 하나의 트랙에 저장되거나 다수 영역이 하나의 트랙에 저장될 경우, 다수의 트랙들 중에서 선택적으로 재생 또는 스트리밍 가능한 트랙에 대한 그룹핑 정보를 제공할 수 있다. 상기 제1 그룹 정보의 구체적인 실시예로는, 도 13-15에서 설명한 tkhd 박스의 alternate_group 필드, ttgr 박스의 track_group_id 필드가 있다.
또한, 상기 제2 그룹 정보는 상호 스위칭이 가능한 개별 영역 또는 다수 영역에 대한 그룹핑 정보를 제공할 수 있다. 예를 들어, 제2 그룹 정보는 개별 영역이 하나의 트랙에 저장되거나 다수 영역이 하나의 트랙에 저장될 경우, 다수의 트랙들 중에서 상호 스위칭이 가능한 트랙에 대한 그룹핑 정보를 제공할 수 있다. 그리고, 스위칭 가능 여부에 대한 그룹핑은 선택적 재생 또는 스트리밍이 가능하다는 것이 전제되어야 하므로, 제2 그룹 정보에 따른 그룹은 제1 그룹 정보에 따른 그룹 내에 포함되어야 한다는 제약이 있을 수 있다. 상기 제2 그룹 정보의 구체적인 실시예로는, 도 14-15에서 설명한 tsel 박스의 alternate_group 필드, tsgr 박스의 track_group_id 필드가 있다.
한편, 시그널링 정보는, 개별 영역들 사이, 다수 영역들 사이 또는 상기 개별 영역과 상기 다수 영역 사이의 코딩 디펜던시 정보를 더 포함할 수 있다. 이러한 코딩 디펜던시 정보에 관한 내용은 도 15-28에서 설명한 내용이 적용될 수 있다.
한편, 상기 시그널링 정보는, 상기 360도 비디오 데이터가 상기 2D 이미지 상에 프로젝션되는데 사용된 프로젝션 스킴(scheme) 을 지시하는 프로젝션 스킴 정보 및/또는 상기 2D 이미지와 360도 비디오 데이터에 포함된 360도 이미지 사이의 맵핑 정보를 더 포함할 수 있다. 상기 프로젝션 스킴 정보는 도 24-37의 vr_mapping_type을 의미할 수 있다. 또한, 상기 맵핑 정보는 도 24-37을 통해 설명된 2D 프레임과, 360도 비디오 획득 공간 또는 사용자 시점 공간 사이의 맵핑 정보를 의미할 수 있다.
한편, 상기 시그널링 정보는, 상기 2D 이미지의 개별 영역들 중 적어도 하나가 소정 각도로 회전하여 2D 이미지에 맵핑될 경우 해당 회전 각도를 지시하는 회전 정보를 더 포함할 수 있다. 여기서, 회전 정보는 도 29-45을 통해 설명된 roll_in_degree[i]를 의미할 수 있다.
본 발명의 다른 측면에 따르면, 360도 비디오 전송 장치가 개시된다. 본 발명의 다른 측면에 따른 360도 비디오 전송 장치는 전술한 360도 비디오를 전송하는 방법의 각 과정을 수행하는 구성요소를 포함할 수 있다.
본 발명의 일 실시예에 따른 360도 비디오 전송 장치는, 360도 비디오 데이터를 데이터 입력부(미도시), 상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 맵핑 처리부(미도시), 상기 2D 이미지를 2 이상의 영역으로 나누고 개별 영역 또는 다수 영역의 단위로 인코딩하는 데이터 인코더(미도시), 상기 360도 비디오 데이터에 대한 시그널링 정보를 생성하는 시그널링 생성부(미도시) 및 상기 인코딩된 2D 이미지 및 상기 시그널링 정보를 포함하는 데이터 신호를 생성하는 데이터 신호 생성부(미도시), 생성된 데이터 신호를 수신 디바이스로 전송하는 전송부(미도시)를 포함할 수 있다. 여기서, 시그널링 정보는 도 49를 통해 전술한 360도 비디오를 전송하는 방법에서의 시그널링 정보에 관한 설명이 그대로 적용될 수 있다.
본 발명의 또 다른 측면에 따르면, 360도 비디오 수신 장치가 개시된다.
도 50은 본 발명의 일 실시예에 따른 360도 비디오 수신 장치를 도시한 도면이다.
본 발명의 일 실시예에 따른 360도 비디오 수신 장치는, 360도 비디오 데이터를 포함하는 2D 이미지 및 상기 360도 비디오 데이터에 대한 시그널링 정보를 포함하는 데이터 신호를 수신하는 수신부(h50100), 상기 데이터 신호에 포함된 상기 2D 이미지를 디코딩하는 데이터 디코더(h50200), 상기 데이터 신호에 포함된 상기 시그널링 정보를 디코딩하는 시그널링 디코더(h50300) 및 상기 2D 이미지를 처리하여 상기 360도 비디오 데이터를 3D 공간으로 렌더링하는 렌더러(h50400)를 포함할 수 있다. 여기서, 360도 비디오 수신 장치가 수신하는 상기 2D 이미지는 2 이상의 영역으로 나뉘어 개별 영역 또는 다수 영역의 단위로 인코딩된 것일 수 있고, 상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다.
상기 수신부(h50100)는 360도 비디오 데이터를 포함하는 2D 이미지 및 상기 360도 비디오 데이터에 대한 시그널링 정보를 포함하는 데이터 신호를 수신할 수 있다. 상기 수신부(h50100)는 방송망 및/또는 브로드밴드를 통해 데이터 신호를 수신할 수 있다. 상기 수신부(h50100)는 수신한 데이터 신호를 데이터 디코더(h50200) 및/또는 시그널링 디코더(h50300)로 전달할 수 있다. 일 실시예에서, 360도 비디오 수신 장치는 파일 파서(미도시)를 더 포함할 수 있는데, 이러한 경우, 상기 수신부는 데이터 신호를 상리 파일 파서로 전달할 수 있다. 그리고, 상기 파일 파서는 데이터 신호에 포함된 파일 포맷을 파싱 또는 디캡슐레이션하여, 2D 이미지를 데이터 디코더(h50200)로 전달하고, 시그널링 디코더(h50200)로 시그널링 정보를 전달할 수 있다. 일 실시예에서, 상기 수신부(h50100)는 렌더러(h50400)로부터 피드백 정보를 수신하고, 피드백 정보와 관련된 영역에 해당하는 데이터를 파일 파서 또는 데이터 디코더(h50200)로 전달할 수 있다. 보다 구체적으로, 상기 피드백 정보는 사용자 시점 정보를 포함할 수 있고, 상기 수신부(h50100)는 상기 렌더러(h50400)로부터 수신한 사용자 시점 정보를 입력받아 사용자 시점 정보에 포함된 적어도 하나의 영역에 해당하는 데이터를 파일 파서(미도시) 또는 데이터 디코더(h50200)로 전달할 수 있다. 이러한 실시예에 대한 구체적인 설명은 도 48 에서 설명한 바와 같다. 또한, 상기 수신부(h50100)는 시스템 레벨의 시그널링 정보를 시그널링 파서(h50300)로 전달할 수 있다.
전술한 일 실시예에서, 360도 비디오 수신 장치는 파일 파서(미도시)를 더 포함할 수 있다. 상기 파일 파서는 상기 수신부(h50100)가 수신한 데이터 신호를 처리하여 2D 이미지 및 시그널링 정보를 추출할 수 있다. 일 실시예에서, 상기 파일 파서의 데이터 신호 처리는 파일 포맷으로 포맷팅된 데이터를 처리하는 것일 수 있다. 그리고, 상기 파일 포맷은 ISO BMFF 파일 포맷일 수 있다. 상기 파일 포맷은 2D 이미지 및 360도 비디오에 대한 시그널링 정보를 포함할 수 있다. 상기 파일 파서는 파일 포맷에 포함된 2D 이미지 및/또는 360도 비디오에 대한 시그널링 정보를 추출해낼 수 있다. 일 실시예에서, 상기 파일 파서는 렌더러(h50400)로부터 피드백 정보를 수신하고, 피드백 정보와 관련된 영역에 해당하는 데이터를 데이터 디코더(h50200)로 전달할 수 있다. 보다 구체적으로, 상기 피드백 정보는 사용자 시점 정보를 포함할 수 있고, 상기 파일 파서는 상기 렌더러(h50400)로부터 수신한 사용자 시점 정보를 입력받아 사용자 시점 정보에 포함된 적어도 하나의 영역에 해당하는 데이터를 데이터 디코더(h50200)로 전달할 수 있다. 이러한 실시예에 대한 구체적인 설명은 도 47 에서 설명한 바와 같다.
상기 데이터 디코더(h50200)는, 상기 수신부(h50100)가 수신한 데이터 신호에 포함된 데이터 또는 상기 파일 파서가 추출한 데이터를 디코딩할 수 있다. 상기 데이터 디코더(h50200)는 360도 비디오 데이터를 포함하는 2D 이미지를 디코딩하여 렌더러(h50400)로 전달할 수 있다. 일 실시예에서, 상기 2D 이미지는 비디오 레벨의 시그널링 정보를 포함할 수 있다. 상기 데이터 디코더(h50200)는 상기 2D 이미지에 비디오 레벨의 시그널링 정보가 포함된 경우, 해당 시그널링 정보를 시그널링 디코더(h50300)로 전달할 수 있다. 일 실시예에서, 상기 데이터 디코더(h50200)는 렌더러(h50400)로부터 피드백 정보를 수신하고, 피드백 정보와 관련된 영역에 해당하는 데이터를 렌더러(h50400)로 전달할 수 있다. 보다 구체적으로, 상기 피드백 정보는 사용자 시점 정보를 포함할 수 있고, 상기 데이터 디코더(h50200)는 상기 렌더러(h50400)로부터 수신한 사용자 시점 정보를 입력받아 사용자 시점 정보에 포함된 적어도 하나의 영역에 해당하는 데이터를 렌더러(h50400)로 전달할 수 있다. 이러한 실시예에 대한 구체적인 설명은 도 46 에서 설명한 바와 같다.
상기 시그널링 디코더(h50300)는 데이터 신호에 포함된 시그널링 정보를 파싱할 수 있다. 상기 시그널링 정보는 시스템 레벨의 시그널링 정보, 파일 포맷 레벨의 시그널링 정보 및/또는 비디오 레벨의 시그널링 정보를 포함할 수 있다.
상기 렌더러(h50400)는 데이터 디코더(h50200)가 디코딩한 2D 이미지와, 시그널링 디코더(h50300)가 디코딩한 시그널링 정보를 이용하여 360도 비디오 데이터를 렌더링 할 수 있다. 상기 렌더러(h50400)는 3D 모델에 360도 비디오를 렌더링하여 사용자에게 전방향의 시각적 경험을 제공할 수 있다. 일 실시예에서, 상기 렌더러(h50400)는 사용자 시점 정보를 생성할 수 있다. 상기 사용자 시점 정보는 유저의 뷰포트를 감지하여 생성되거나, 유저의 입력에 의해 생성될 수 있다. 상기 사용자 시점 정보는 피드백 정보에 포함되어 데이터 디코더(h50200), 파일 파서(미도시) 및/또는 수신부(h50100)로 피드백 될 수 있다. 이러한 사용자 시점 정보의 피드백에 대한 구체적인 설명은 도 46-48에서 설명한 바와 같다.
전술한 바와 같이 시그널링 정보는 360 비디오 관련 메타데이터 또는 360 비디오 관련 시그널링 정보로 지칭될 수도 있다. 또한, 시그널링 정보는, 비디오 레벨, 파일 포맷 레벨 및/또는 시스템 레벨에 포함될 수 있다. 비디오 레벨의 시그널링으로는, 시그널링 정보가 SEI message에 포함되는 실시예가 있고, 파일 포맷 레벨의 시그널링으로는, 시그널링 정보가 ISO BMFF 의 파일 박스에 포함되는 실시예가 있으며, 시스템 레벨의 시그널링으로는, 시그널링 정보가 DASH MPD에 포함되는 실시예가 있을 수 있다.
또한, 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다. 이러한 그룹핑과 관련된 시그널링은 도 12-28에 설명된 내용이 적용될 수 있다. 구체적으로, 상기 그룹핑 정보는 제1 그룹 정보와, 제2 그룹 정보를 포함할 수 있다.
여기서, 상기 제1 그룹 정보는 선택적 재생 또는 스트리밍 가능한 개별 영역 또는 다수 영역에 대한 그룹핑 정보를 제공할 수 있다. 예를 들어, 제1 그룹 정보는 개별 영역이 하나의 트랙에 저장되거나 다수 영역이 하나의 트랙에 저장될 경우, 다수의 트랙들 중에서 선택적으로 재생 또는 스트리밍 가능한 트랙에 대한 그룹핑 정보를 제공할 수 있다. 상기 제1 그룹 정보의 구체적인 실시예로는, 도 13-15에서 설명한 tkhd 박스의 alternate_group 필드, ttgr 박스의 track_group_id 필드가 있다.
또한, 상기 제2 그룹 정보는 상호 스위칭이 가능한 개별 영역 또는 다수 영역에 대한 그룹핑 정보를 제공할 수 있다. 예를 들어, 제2 그룹 정보는 개별 영역이 하나의 트랙에 저장되거나 다수 영역이 하나의 트랙에 저장될 경우, 다수의 트랙들 중에서 상호 스위칭이 가능한 트랙에 대한 그룹핑 정보를 제공할 수 있다. 그리고, 스위칭 가능 여부에 대한 그룹핑은 선택적 재생 또는 스트리밍이 가능하다는 것이 전제되어야 하므로, 제2 그룹 정보에 따른 그룹은 제1 그룹 정보에 따른 그룹 내에 포함되어야 한다는 제약이 있을 수 있다. 상기 제2 그룹 정보의 구체적인 실시예로는, 도 14-15에서 설명한 tsel 박스의 alternate_group 필드, tsgr 박스의 track_group_id 필드가 있다.
한편, 시그널링 정보는, 개별 영역들 사이, 다수 영역들 사이 또는 상기 개별 영역과 상기 다수 영역 사이의 코딩 디펜던시 정보를 더 포함할 수 있다. 이러한 코딩 디펜던시 정보에 관한 내용은 도 15-28에서 설명한 내용이 적용될 수 있다.
한편, 상기 시그널링 정보는, 상기 360도 비디오 데이터가 상기 2D 이미지 상에 프로젝션되는데 사용된 프로젝션 스킴(scheme) 을 지시하는 프로젝션 스킴 정보 및/또는 상기 2D 이미지와 360도 비디오 데이터에 포함된 360도 이미지 사이의 맵핑 정보를 더 포함할 수 있다. 상기 프로젝션 스킴 정보는 도 24-45의 vr_mapping_type을 의미할 수 있다. 또한, 상기 맵핑 정보는 도 24-45을 통해 설명된 2D 프레임과, 360도 비디오 획득 공간 또는 사용자 시점 공간 사이의 맵핑 정보를 의미할 수 있다.
한편, 상기 시그널링 정보는, 상기 2D 이미지의 개별 영역들 중 적어도 하나가 소정 각도로 회전하여 2D 이미지에 맵핑될 경우 해당 회전 각도를 지시하는 회전 정보를 더 포함할 수 있다. 여기서, 회전 정보는 도 29-45을 통해 설명된 roll_in_degree[i]를 의미할 수 있다.
본 발명의 또 다른 측면에 따르면, 360도 비디오를 수신하는 방법이 개시된다. 본 발명의 또 다른 측면에 따른 360도 비디오를 수신하는 방법은 전술한 360도 비디오 수신 장치의 각 구성요소가 수행하는 일련의 과정을 포함할 수 있다.
본 발명의 일 실시예에 따른 360도 비디오를 수신하는 방법은, 360도 비디오 데이터를 포함하는 2D 이미지 및 상기 360도 비디오 데이터에 대한 시그널링 정보를 포함하는 데이터 신호를 수신하는 단계, 상기 데이터 신호에 포함된 상기 시그널링 정보를 디코딩하는 단계, 상기 데이터 신호에 포함된 상기 2D 이미지를 디코딩하는 단계 및 상기 2D 이미지를 처리하여 상기 360도 비디오 데이터를 3D 공간으로 렌더링하는 단계를 포함할 수 있다. 여기서, 상기 데이터 신호를 수신하는 단계에서 수신하는 상기 2D 이미지는 2 이상의 영역으로 나뉘어 개별 영역 또는 다수 영역의 단위로 인코딩된 것일 수 있고, 상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함할 수 있다. 여기서, 시그널링 정보는 도 49 및 50을 통해 각각 설명한 360도 비디오를 전송하는 방법 및 360도 비디오 수신 장치에서의 시그널링 정보에 관한 설명이 그대로 적용될 수 있다.
전술한 장치의 내부 컴포넌트들은 메모리에 저장된 연속된 수행과정들을 실행하는 프로세서들이거나, 그 외의 하드웨어로 구성된 하드웨어 컴포넌트들일 수 있다. 이 들은 장치 내/외부에 위치할 수 있다.
전술한 모듈들은 실시예에 따라 생략되거나, 유사/동일한 동작을 수행하는 다른 모듈에 의해 대체될 수 있다.
전술한 각각의 파트, 모듈 또는 유닛은 메모리(또는 저장 유닛)에 저장된 연속된 수행과정들을 실행하는 프로세서이거나 하드웨어 파트일 수 있다. 전술한 실시예에 기술된 각 단계들은 프로세서 또는 하드웨어 파트들에 의해 수행될 수 있다. 전술한 실시예에 기술된 각 모듈/블락/유닛들은 하드웨어/프로세서로서 동작할 수 있다. 또한, 본 발명이 제시하는 방법들은 코드로서 실행될 수 있다. 이 코드는 프로세서가 읽을 수 있는 저장매체에 쓰여질 수 있고, 따라서 장치(apparatus)가 제공하는 프로세서에 의해 읽혀질 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 본 발명의 권리범위에 속한다.
본 발명에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 발명이 제안하는 방법을 네트워크 디바이스에 구비된, 프로세서가 읽을 수 있는 기록매체에, 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 이해된다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.
본 명세서에서 장치 및 방법 발명이 모두 언급되고, 장치 및 방법 발명 모두의 설명은 서로 보완하여 적용될 수 있다.
다양한 실시예가 본 발명을 실시하기 위한 최선의 형태에서 설명되었다.
본 발명은 일련의 VR 관련 분야에서 이용된다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 자명하다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.

Claims (18)

  1. 360도 비디오 데이터를 포함하는 2D 이미지 및 상기 360도 비디오 데이터에 대한 시그널링 정보를 포함하는 데이터 신호를 수신하는 수신부,
    상기 2D 이미지는 2 이상의 영역으로 나뉘어 개별 영역 또는 다수 영역의 단위로 인코딩되고;
    상기 데이터 신호에 포함된 상기 2D 이미지를 디코딩하는 데이터 디코더;
    상기 데이터 신호에 포함된 상기 시그널링 정보를 디코딩하는 시그널링 디코더; 및
    상기 2D 이미지를 처리하여 상기 360도 비디오 데이터를 3D 공간으로 렌더링하는 렌더러; 를 포함하고,
    상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  2. 청구항 1 에 있어서,
    상기 그룹핑 정보는 재생 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제1 그룹 정보를 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  3. 청구항 2 에 있어서,
    상기 그룹핑 정보는 재생 중에 상호 스위칭이 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제2 그룹 정보를 더 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  4. 청구항 11 에 있어서,
    상기 시그널링 정보는 개별 영역들 사이, 다수 영역들 사이 또는 상기 개별 영역과 상기 다수 영역 사이의 코딩 디펜던시 정보를 더 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  5. 청구항 1 에 있어서,
    상기 시그널링 정보는 상기 360도 비디오 데이터가 상기 2D 이미지 상에 프로젝션되는데 사용된 프로젝션 스킴(scheme) 을 지시하는 프로젝션 스킴 정보를 더 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  6. 청구항 5 에 있어서,
    상기 시그널링 정보는 상기 2D 이미지와 360도 비디오 데이터에 포함된 360도 이미지 사이의 맵핑 정보를 더 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  7. 청구항 6 에 있어서,
    상기 시그널링 정보는 상기 2D 이미지의 개별 영역들 중 적어도 하나가 소정 각도로 회전하여 2D 이미지에 맵핑될 경우 해당 회전 각도를 지시하는 회전 정보를 더 포함하는 것을 특징으로 하는 360도 비디오 수신 장치.
  8. 청구항 1 에 있어서,
    상기 렌더러는 적어도 하나의 영역을 포함하는 사용자 시점 정보를 생성하여 출력하는 것을 특징으로 하는 360도 비디오 수신 장치.
  9. 청구항 8 에 있어서,
    상기 데이터 디코더는 상기 렌더러로부터 상기 사용자 시점 정보를 입력받고, 상기 사용자 시점 정보에 포함된 상기 적어도 하나의 영역에 해당하는 데이터를 디코딩하는 것을 특징으로 하는 360도 비디오 수신 장치.
  10. 청구항 8 에 있어서,
    상기 장치는 상기 데이터 신호에 포함된 파일 포맷을 디캡슐레이션하는 파일 파서를 더 포함하고,
    상기 파일 파서는 상기 렌더러로부터 상기 사용자 시점 정보를 입력받고, 상기 사용자 시점 정보에 포함된 상기 적어도 하나의 영역에 해당하는 데이터를 추출하는 것을 특징으로 하는 360도 비디오 수신 장치.
  11. 청구항 8 에 있어서,
    상기 수신부는 상기 렌더러로부터 상기 사용자 시점 정보를 입력받고, 상기 사용자 시점 정보에 포함된 상기 적어도 하나의 영역에 해당하는 데이터를 수신하는 것을 특징으로 하는 360도 비디오 수신 장치.
  12. 360도 비디오 데이터를 획득하는 단계;
    상기 360도 비디오 데이터를 2D 이미지에 맵핑하는 단계;
    상기 2D 이미지를 2 이상의 영역으로 나누고 개별 영역 또는 다수 영역의 단위로 인코딩하는 단계;
    상기 360도 비디오 데이터에 대한 시그널링 정보를 생성하는 단계; 및
    상기 인코딩된 2D 이미지 및 상기 시그널링 정보를 포함하는 데이터 신호를 전송하는 단계; 를 포함하고,
    상기 시그널링 정보는 상기 2 이상의 영역을 그룹핑하는 그룹핑 정보를 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
  13. 청구항 12 에 있어서,
    상기 그룹핑 정보는 재생 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제1 그룹 정보를 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
  14. 청구항 13 에 있어서,
    상기 그룹핑 정보는 상호 스위칭이 가능한 상기 개별 영역 또는 상기 다수 영역에 대한 그룹핑 정보를 제공하는 제2 그룹 정보를 더 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
  15. 청구항 12 에 있어서,
    상기 시그널링 정보는 개별 영역들 사이, 다수 영역들 사이 또는 상기 개별 영역과 상기 다수 영역 사이의 코딩 디펜던시 정보를 더 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
  16. 청구항 12 에 있어서,
    상기 시그널링 정보는 상기 360도 비디오 데이터가 상기 2D 이미지 상에 프로젝션되는데 사용된 프로젝션 스킴(scheme) 을 지시하는 프로젝션 스킴 정보를 더 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
  17. 청구항 16 에 있어서,
    상기 시그널링 정보는 상기 2D 이미지와 360도 비디오 데이터에 포함된 360도 이미지 사이의 맵핑 정보를 더 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
  18. 청구항 17 에 있어서,
    상기 시그널링 정보는 상기 2D 이미지의 개별 영역들 중 적어도 하나가 소정 각도로 회전하여 2D 이미지에 맵핑될 경우 해당 회전 각도를 지시하는 회전 정보를 더 포함하는 것을 특징으로 하는 360도 비디오를 전송하는 방법.
PCT/KR2017/004406 2016-04-26 2017-04-26 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치 WO2017188714A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP17789898.8A EP3451675A4 (en) 2016-04-26 2017-04-26 METHOD FOR TRANSFERRING 360 DEGREE VIDEOS, METHOD FOR RECEIVING 360 DEGREE VIDEOS, DEVICE FOR TRANSMITTING 360 DEGREE VIDEOS AND DEVICE FOR RECEIVING 360 DEGREE VIDEOS
US16/096,576 US20190141311A1 (en) 2016-04-26 2017-04-26 Method for transmitting 360-degree video, method for receiving 360-degree video, apparatus for transmitting 360-degree video, apparatus for receiving 360-degree video
CN201780025774.1A CN109076255B (zh) 2016-04-26 2017-04-26 发送、接收360度视频的方法及设备

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
US201662327450P 2016-04-26 2016-04-26
US62/327,450 2016-04-26
US201662335710P 2016-05-13 2016-05-13
US62/335,710 2016-05-13
US201662337299P 2016-05-16 2016-05-16
US62/337,299 2016-05-16
US201662340487P 2016-05-23 2016-05-23
US62/340,487 2016-05-23
US201662343148P 2016-05-31 2016-05-31
US62/343,148 2016-05-31

Publications (1)

Publication Number Publication Date
WO2017188714A1 true WO2017188714A1 (ko) 2017-11-02

Family

ID=60159911

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/004406 WO2017188714A1 (ko) 2016-04-26 2017-04-26 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치

Country Status (4)

Country Link
US (1) US20190141311A1 (ko)
EP (1) EP3451675A4 (ko)
CN (1) CN109076255B (ko)
WO (1) WO2017188714A1 (ko)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111567057A (zh) * 2018-01-12 2020-08-21 索尼公司 信息处理装置和方法
CN111656790A (zh) * 2018-01-26 2020-09-11 夏普株式会社 用于发送信号通知位置信息的系统和方法
CN112335236A (zh) * 2018-06-14 2021-02-05 瑞典爱立信有限公司 用于基于注视矢量信息提供360o沉浸式视频的系统和方法
EP3716638A4 (en) * 2018-01-12 2021-02-17 Sony Corporation DEVICE AND PROCESS FOR PROCESSING INFORMATION
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
US11284089B2 (en) 2016-09-02 2022-03-22 Vid Scale, Inc. Method and system for signaling of 360-degree video information
US11490063B2 (en) 2018-10-01 2022-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Video client optimization during pause
US11647258B2 (en) 2018-07-27 2023-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Immersive video with advertisement content
US11956295B2 (en) 2019-09-27 2024-04-09 Apple Inc. Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information
US12035019B2 (en) 2023-04-25 2024-07-09 Telefonaktiebolaget Lm Ericsson (Publ) Video session with advertisement content

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109076200B (zh) * 2016-01-12 2021-04-23 上海科技大学 全景立体视频系统的校准方法和装置
FI20165114A (fi) * 2016-02-17 2017-08-18 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodausta ja videokoodauksen purkua varten
US10979691B2 (en) * 2016-05-20 2021-04-13 Qualcomm Incorporated Circular fisheye video in virtual reality
EP3301933A1 (en) * 2016-09-30 2018-04-04 Thomson Licensing Methods, devices and stream to provide indication of mapping of omnidirectional images
GB2554877B (en) * 2016-10-10 2021-03-31 Canon Kk Methods, devices, and computer programs for improving rendering display during streaming of timed media data
EP3565244A4 (en) * 2016-12-28 2019-12-11 Sony Corporation GENERATING DEVICE, IDENTIFICATION INFORMATION GENERATING METHOD, REPRODUCING DEVICE, AND IMAGE REPRODUCTION METHOD
WO2018131813A1 (en) * 2017-01-10 2018-07-19 Samsung Electronics Co., Ltd. Method and apparatus for generating metadata for 3d images
WO2018155670A1 (ja) * 2017-02-27 2018-08-30 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 画像配信方法、画像表示方法、画像配信装置及び画像表示装置
US10839480B2 (en) * 2017-03-22 2020-11-17 Qualcomm Incorporated Sphere equator projection for efficient compression of 360-degree video
US10567734B2 (en) * 2017-08-29 2020-02-18 Qualcomm Incorporated Processing omnidirectional media with dynamic region-wise packing
US11025919B2 (en) * 2017-10-03 2021-06-01 Koninklijke Kpn N.V. Client-based adaptive streaming of nonlinear media
US11451838B2 (en) 2017-12-07 2022-09-20 Koninklijke Kpn N.V. Method for adaptive streaming of media
US10939086B2 (en) 2018-01-17 2021-03-02 Mediatek Singapore Pte. Ltd. Methods and apparatus for encoding and decoding virtual reality content
US10944977B2 (en) 2018-04-03 2021-03-09 Mediatek Singapore Pte. Ltd. Methods and apparatus for encoding and decoding overlay compositions
US10869016B2 (en) * 2018-04-12 2020-12-15 Mediatek Singapore Pte. Ltd. Methods and apparatus for encoding and decoding virtual reality content
US11012657B2 (en) * 2018-06-08 2021-05-18 Lg Electronics Inc. Method for processing overlay in 360-degree video system and apparatus for the same
KR102188270B1 (ko) * 2018-07-06 2020-12-09 엘지전자 주식회사 360 비디오 데이터의 서브픽처 기반 처리 방법 및 그 장치
WO2020186478A1 (en) * 2019-03-20 2020-09-24 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for transmitting viewpoint switching capabilities in a vr360 application
EP3734977A1 (en) 2019-04-30 2020-11-04 Nokia Technologies Oy An apparatus, a method and a computer program for volumetric video
WO2021000277A1 (en) * 2019-07-03 2021-01-07 Beijing Xiaomi Mobile Software Co., Ltd. Method and device for coding, decoding and storage medium
CN114342366A (zh) * 2019-07-22 2022-04-12 交互数字Vc控股公司 用于递送体积视频内容的方法和装置
EP4029275A1 (en) * 2019-09-13 2022-07-20 Nokia Technologies Oy An apparatus, a method and a computer program for video coding and decoding
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
US11361774B2 (en) 2020-01-17 2022-06-14 Lisnr Multi-signal detection and combination of audio-based data transmissions
US11418876B2 (en) 2020-01-17 2022-08-16 Lisnr Directional detection and acknowledgment of audio-based data transmissions
US20210226710A1 (en) * 2020-01-17 2021-07-22 Lisnr Audio transmitter/receiver array
CN113518249B (zh) * 2020-04-10 2023-03-10 华为技术有限公司 一种远端图像处理方法及装置
US20230179798A1 (en) * 2020-05-13 2023-06-08 Sony Group Corporation Delivery apparatus and delivery method
CN113949829B (zh) * 2021-10-15 2022-09-20 腾讯科技(深圳)有限公司 媒体文件封装及解封装方法、装置、设备及存储介质
DE102022115806A1 (de) * 2022-06-24 2024-01-04 Valeo Comfort And Driving Assistance Verfahren und System zum Bereitstellen eines durch eine Ausgabevorrichtung anzuzeigenden Bildes
CN116912385B (zh) * 2023-09-15 2023-11-17 深圳云天畅想信息科技有限公司 视频帧自适应渲染处理方法、计算机装置及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100924716B1 (ko) * 2007-12-24 2009-11-04 연세대학교 산학협력단 자유 시점 영상 재생을 위한 2차원/3차원 가상 시점 합성방법
KR101094118B1 (ko) * 2006-11-29 2011-12-15 에프. 포스잣 후, 엘.엘.씨. 3차원 프로젝션 디스플레이
KR20130046534A (ko) * 2011-10-28 2013-05-08 삼성전자주식회사 영상 부호화 방법 및 장치 그리고 영상 복호화 방법 및 장치
KR20140112909A (ko) * 2013-03-14 2014-09-24 삼성전자주식회사 파노라마 영상을 생성하는 전자 장치 및 방법
KR20150010752A (ko) * 2012-07-04 2015-01-28 인텔 코오퍼레이션 파노라마 기반 3d 비디오 코딩

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU4336300A (en) * 1999-04-08 2000-10-23 Internet Pictures Corporation Virtual theater
CN103763479B (zh) * 2013-12-31 2017-03-29 深圳英飞拓科技股份有限公司 实时高速高清全景视频的拼接装置及其方法
JP6002191B2 (ja) * 2014-10-06 2016-10-05 株式会社ユニモト 全周動画配信システム、全周動画配信方法、通信端末装置およびそれらの制御方法と制御プログラム
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
US10204658B2 (en) * 2014-07-14 2019-02-12 Sony Interactive Entertainment Inc. System and method for use in playing back panorama video content
CN105516569A (zh) * 2016-01-20 2016-04-20 北京疯景科技有限公司 一种获得全景图像的方法和装置
US10319071B2 (en) * 2016-03-23 2019-06-11 Qualcomm Incorporated Truncated square pyramid geometry and frame packing structure for representing virtual reality video content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101094118B1 (ko) * 2006-11-29 2011-12-15 에프. 포스잣 후, 엘.엘.씨. 3차원 프로젝션 디스플레이
KR100924716B1 (ko) * 2007-12-24 2009-11-04 연세대학교 산학협력단 자유 시점 영상 재생을 위한 2차원/3차원 가상 시점 합성방법
KR20130046534A (ko) * 2011-10-28 2013-05-08 삼성전자주식회사 영상 부호화 방법 및 장치 그리고 영상 복호화 방법 및 장치
KR20150010752A (ko) * 2012-07-04 2015-01-28 인텔 코오퍼레이션 파노라마 기반 3d 비디오 코딩
KR20140112909A (ko) * 2013-03-14 2014-09-24 삼성전자주식회사 파노라마 영상을 생성하는 전자 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3451675A4 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11284089B2 (en) 2016-09-02 2022-03-22 Vid Scale, Inc. Method and system for signaling of 360-degree video information
US11876981B2 (en) 2016-09-02 2024-01-16 Vid Scale, Inc. Method and system for signaling of 360-degree video information
US11729366B2 (en) 2018-01-12 2023-08-15 Sony Group Corporation Information processing apparatus and method
EP3734982A4 (en) * 2018-01-12 2020-11-25 Sony Corporation INFORMATION PROCESSING DEVICE AND METHOD
EP3716638A4 (en) * 2018-01-12 2021-02-17 Sony Corporation DEVICE AND PROCESS FOR PROCESSING INFORMATION
CN111567057A (zh) * 2018-01-12 2020-08-21 索尼公司 信息处理装置和方法
CN111656790A (zh) * 2018-01-26 2020-09-11 夏普株式会社 用于发送信号通知位置信息的系统和方法
EP3808077A4 (en) * 2018-06-14 2021-06-02 Telefonaktiebolaget LM Ericsson (publ) SYSTEM AND METHOD FOR PROVIDING IMMERSIVE 360 DEGREE VIDEO SIGNALS BASED ON EYE VECTOR INFORMATION
US11303874B2 (en) 2018-06-14 2022-04-12 Telefonaktiebolaget Lm Ericsson (Publ) Immersive video system and method based on gaze vector information
US11758105B2 (en) 2018-06-14 2023-09-12 Telefonaktiebolaget Lm Ericsson (Publ) Immersive video system and method based on gaze vector information
CN112335236A (zh) * 2018-06-14 2021-02-05 瑞典爱立信有限公司 用于基于注视矢量信息提供360o沉浸式视频的系统和方法
US11647258B2 (en) 2018-07-27 2023-05-09 Telefonaktiebolaget Lm Ericsson (Publ) Immersive video with advertisement content
US11490063B2 (en) 2018-10-01 2022-11-01 Telefonaktiebolaget Lm Ericsson (Publ) Video client optimization during pause
US11758103B2 (en) 2018-10-01 2023-09-12 Telefonaktiebolaget Lm Ericsson (Publ) Video client optimization during pause
US11627343B2 (en) 2018-11-29 2023-04-11 Apple Inc. Adaptive coding and streaming of multi-directional video
US10939139B2 (en) 2018-11-29 2021-03-02 Apple Inc. Adaptive coding and streaming of multi-directional video
US11956295B2 (en) 2019-09-27 2024-04-09 Apple Inc. Client-end enhanced view prediction for multi-view video streaming exploiting pre-fetched data and side information
US12035019B2 (en) 2023-04-25 2024-07-09 Telefonaktiebolaget Lm Ericsson (Publ) Video session with advertisement content
US12041217B2 (en) 2023-07-25 2024-07-16 Telefonaktiebolaget Lm Ericsson (Publ) Video optimization system and method based on gaze vector information

Also Published As

Publication number Publication date
EP3451675A1 (en) 2019-03-06
US20190141311A1 (en) 2019-05-09
CN109076255B (zh) 2021-10-08
CN109076255A (zh) 2018-12-21
EP3451675A4 (en) 2019-12-04

Similar Documents

Publication Publication Date Title
WO2017188714A1 (ko) 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 360도 비디오 수신 장치
WO2018038520A1 (ko) 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치
WO2018038523A1 (ko) 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치
WO2017142353A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2017204491A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2018174387A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2018182144A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2018131832A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2019151798A1 (ko) 무선 통신 시스템에서 이미지에 대한 메타데이터를 송수신하는 방법 및 장치
WO2019198883A1 (ko) 핫스팟 및 roi 관련 메타데이터를 이용한 360도 비디오를 송수신하는 방법 및 그 장치
WO2018169176A1 (ko) 퀄리티 기반 360도 비디오를 송수신하는 방법 및 그 장치
WO2019194573A1 (en) Method for transmitting 360-degree video, method for receiving 360-degree video, apparatus for transmitting 360-degree video, and apparatus for receiving 360-degree video
WO2019168304A1 (ko) 카메라 렌즈 정보를 포함한 360도 비디오를 송수신하는 방법 및 그 장치
WO2019066436A1 (ko) 360 비디오 시스템에서 오버레이 처리 방법 및 그 장치
WO2019194434A1 (ko) 복수의 뷰포인트들에 대한 메타데이터를 송수신하는 방법 및 장치
WO2019245302A1 (en) Method for transmitting 360-degree video, method for providing a user interface for 360-degree video, apparatus for transmitting 360-degree video, and apparatus for providing a user interface for 360-degree video
WO2018217057A1 (ko) 360 비디오 처리 방법 및 그 장치
WO2019066191A1 (ko) 스티칭 및 리프로젝션 관련 메타데이터를 이용한 6dof 비디오를 송수신하는 방법 및 그 장치
WO2019083266A1 (ko) 피쉬아이 비디오 정보를 포함한 360도 비디오를 송수신하는 방법 및 그 장치
WO2016182371A1 (ko) 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법
WO2019231269A1 (ko) 360도 컨텐츠 내 복수의 뷰포인트들에 관한 사용자 인터페이스를 제공하는 방법 및 장치
WO2019059462A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2020027349A1 (ko) 다중 뷰포인트 기반 360 비디오 처리 방법 및 그 장치
WO2020091404A1 (ko) 비디오 송신 방법, 비디오 전송 장치, 비디오 수신 방법 및 비디오 수신 장치
WO2018043905A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2017789898

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2017789898

Country of ref document: EP

Effective date: 20181126

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17789898

Country of ref document: EP

Kind code of ref document: A1