WO2020050577A1 - 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치 - Google Patents

비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치 Download PDF

Info

Publication number
WO2020050577A1
WO2020050577A1 PCT/KR2019/011294 KR2019011294W WO2020050577A1 WO 2020050577 A1 WO2020050577 A1 WO 2020050577A1 KR 2019011294 W KR2019011294 W KR 2019011294W WO 2020050577 A1 WO2020050577 A1 WO 2020050577A1
Authority
WO
WIPO (PCT)
Prior art keywords
picture
error
region
video
prediction
Prior art date
Application number
PCT/KR2019/011294
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 US17/270,768 priority Critical patent/US11528509B2/en
Publication of WO2020050577A1 publication Critical patent/WO2020050577A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • H04N13/117Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation the virtual viewpoint locations being selected by the viewers or determined by viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/139Format conversion, e.g. of frame-rate or size
    • 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
    • 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/172Processing image signals image signals comprising non-image signal components, e.g. headers or format information
    • H04N13/178Metadata, e.g. disparity information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/89Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
    • 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
    • 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/106Processing image signals
    • H04N13/156Mixing image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • H04N13/383Image reproducers using viewer tracking for tracking with gaze detection, i.e. detecting the lines of sight of the viewer's eyes

Definitions

  • the present invention relates to a video transmission method, a video transmission device, a video reception method, and a video reception device.
  • the VR (Virtual Reality) system gives the user a sense of being in an electronically projected environment.
  • the system for providing VR can be further improved to provide higher quality images and spatial sound.
  • the VR system can allow users to interactively consume VR content.
  • 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 transmission / reception networks such as network flexibility considering a mobile reception device, and methods for efficient reproduction and signaling should be proposed.
  • the present invention proposes a video transmission method, a video transmission device, a video reception method and a video reception device.
  • the video transmission apparatus is a target view prediction controller that predicts a picture for a target viewing position based on a target viewing position information from a texture picture or a depth picture of an anchor viewing position. ;
  • a prediction error controller for processing a prediction error for the predicted picture based on a source picture of the target viewing position, an error-pron region map based on the predicted picture and the source picture Generated;
  • a patch packing controller patch patching the prediction error processed picture based on the error-front region map;
  • an encoder that encodes the packed patch based on a texture picture or a depth picture of the anchor viewing position. It includes.
  • a video transmission method includes: predicting a picture for a target viewing position based on a target viewing position information from a texture picture or a depth picture of an anchor viewing position (Target view perdiction); Processing a prediction error for the predicted picture based on the source picture of the target viewing position (Prediction error), an error-prone region map is generated based on the predicted picture and the source picture; Patch packing the prediction error processed picture based on the error-front region map; And encoding the packed patch based on a texture picture or a depth picture of the anchor viewing position. It includes.
  • the video transmitting apparatus and the video receiving apparatus can efficiently transmit only 3 pieces of valid information excluding overlapping information between images in the process of transmitting and receiving 3 DoF + images.
  • the video transmitting apparatus and the video receiving apparatus according to embodiments of the present invention have an effect of efficiently transmitting images by reducing the number of images.
  • the video transmitting apparatus and the video receiving apparatus according to the embodiments of the present invention can provide an image estimation method with high accuracy.
  • the video transmitting apparatus and the video receiving apparatus can provide an image estimation method having high error robustness by finding information that may cause an error.
  • the video transmitting apparatus and the video receiving apparatus can estimate image information and detect a portion and an error in accuracy.
  • the video transmitting apparatus and the video receiving apparatus may constitute a patch having low complexity.
  • the video transmitting apparatus and the video receiving apparatus can provide a encoding and decoding method with less burden.
  • the video transmitting apparatus and the video receiving apparatus can efficiently transmit information on an area that cannot be estimated.
  • the video transmitting apparatus and the video receiving apparatus have an effect of reducing the amount of data by reducing the number of images to be delivered.
  • the video transmitting apparatus and the video receiving apparatus may provide signaling information for the above-described effect.
  • the video transmitting apparatus and the video receiving apparatus may provide a video transmission / reception system reflecting real-time motion.
  • the video transmitting apparatus and the video receiving apparatus according to embodiments of the present invention can reduce the receiver burden and eliminate latency.
  • FIG. 1 is a diagram showing an overall architecture for providing 360-degree video according to the present invention.
  • FIG. 2 is a diagram illustrating 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 transmitting device / 360-degree video receiving device according to another embodiment of the present invention.
  • FIG. 5 is a view showing the concept of an aircraft main axis (Aircraft Principal Axes) for explaining the 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 shows a view point and a viewing position that are additionally defined in a 3DoF + VR system.
  • FIG. 10 shows a method of implementing a 360-degree video signal processing based on a 3DoF + system and a related transmission / reception device.
  • FIG. 11 shows the structure of a 3DoF + end-to-end system.
  • FLUS Framework for Live Uplink Streaming
  • 16 shows the type of media according to the user's movement.
  • 17 shows the overall architecture for providing 6DoF video.
  • FIG. 18 shows a configuration of a transmission device for providing a 6DoF video service.
  • Figure 21 shows the 6 DoF space.
  • FIG. 22 shows the structure of a pre-encoder according to embodiments of the present invention.
  • FIG. 23 shows a target view prediction process according to embodiments of the present invention.
  • 25 illustrates prediction error processing according to embodiments of the present invention.
  • 26 illustrates patch packing processing according to embodiments of the present invention.
  • FIG. 27 shows the architecture of an encoder of a video transmission apparatus and a decoder of a video reception apparatus according to embodiments of the present invention.
  • 29 shows a specific architecture of a decoder according to embodiments of the present invention.
  • FIG 30 illustrates metadata related to prediction error processing and target view prediction processing according to embodiments of the present invention.
  • 31 and 32 show metadata related to patch packing according to embodiments of the present invention.
  • 35 shows a video transmission method according to embodiments of the present invention.
  • FIG. 1 is a diagram showing an overall architecture for providing 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 technology or environment for replicating a real or virtual environment.
  • VR artificially provides the user with a sensuous experience, which allows the user to experience the same experience as being in an electronically projected environment.
  • the 360-degree content refers to overall content for implementing and providing VR, and may include 360-degree video and / or 360-degree audio.
  • the 360-degree video may refer to video or image content necessary to provide VR, and simultaneously captured or played in all directions (360-degree).
  • the 360-degree video may mean a video or image displayed on various forms of 3D space according to a 3D model, and for example, the 360-degree video may be displayed on a spherical surface.
  • 360-degree audio is also audio content for providing VR, and may mean spatial audio content, which can be recognized as being located in a specific space in 3D.
  • 360-degree content can be generated, processed, and transmitted to users, and users can consume the VR experience using the 360-degree content.
  • 360-degree content / video / image / audio, etc. may be used as 360 content / video / image / audio, etc. in which the unit (degree) is omitted, or may be used as VR content / video / image / audio.
  • the present invention proposes a method for effectively providing 360 video.
  • the 360 video can be captured through one or more cameras first.
  • the captured 360 video is transmitted through a series of processes, and the receiving side can process the received data back to the original 360 video and render it.
  • 360 videos may be provided to the user.
  • the entire process for providing 360 video may include a capture process, a preparation process, a transmission process, a processing process, a rendering process, and / or a feedback process.
  • the capturing process may refer to a process of capturing an image or video for each of a plurality of viewpoints through one or more cameras.
  • Image / video data such as (t1010) shown by the capture process may be generated.
  • Each plane of (t1010) illustrated may mean an image / video for each viewpoint.
  • the plurality of captured images / videos may be referred to as raw data.
  • metadata related to capture may be generated.
  • a special camera for VR can be used for this capture.
  • capture through a real camera may not be performed.
  • the capturing process may be replaced by simply generating the relevant data.
  • the preparation process may be a process of processing the captured image / video and metadata generated in 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 the preparation process.
  • each image / video may go through a stitching process.
  • the stitching process may be a process of making a panoramic image / video or a spherical image / video by connecting each captured 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 referred to as a 2D image frame depending on the context. Projecting with a 2D image can also be expressed as mapping to a 2D image.
  • the projected image / video data may be in the form of a 2D image as illustrated (t1020).
  • Video data projected on a 2D image may be subjected to a region-wise packing to increase video coding efficiency and the like.
  • Packing by region may mean a process of dividing and processing video data projected on a 2D image for each region.
  • the region may mean an area in which a 2D image in which 360 video data is projected is divided.
  • these regions may be divided into equally divided 2D images or arbitrarily divided.
  • regions may be classified 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 a 2D image to increase video coding efficiency. For example, by rotating regions so that specific sides of regions are positioned close to each other, efficiency in coding can be increased.
  • the process may include increasing or decreasing the resolution for a specific region in order to differentiate resolution for each region on the 360 video. For example, regions corresponding to a region that is relatively more important on 360 video may have higher resolution than other regions.
  • Video data projected on a 2D image or packed video data by region is encoded through 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, etc. may be generated.
  • metadata regarding an initial viewpoint of a video data projected on a 2D image or a Region of Interest (ROI) may be generated.
  • the transmission process may be a process of processing and transmitting image / video data and metadata that have undergone a preparation process. For transmission, processing according to any transmission protocol may be performed. Data that has been processed for transmission may be transmitted 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 process may mean a process of decoding the received data and re-projecting the projected image / video data onto a 3D model.
  • image / video data projected on 2D images may be re-projected onto 3D space.
  • this process can also be called mapping and projection.
  • the 3D space to be mapped may have a different shape according to the 3D model.
  • a 3D model may have a sphere, cube, cylinder, or 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 may be enlarged through upscaling of samples in the upscaling process. If necessary, the operation of reducing the size through downscaling may be performed.
  • the rendering process may refer to a process of rendering and displaying re-projected image / video data in 3D space.
  • re-projection and rendering can be combined 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 the 3D model of a sphere is re-projected.
  • the user can view some areas of the rendered image / video through a VR display or the like. At this time, the area viewed by the user may be in the form of (t1040) shown.
  • the feedback process may refer to a process of transmitting various feedback information that can be obtained in the display process to the transmitting side. Through the feedback process, interactivity in 360 video consumption may be provided. According to an embodiment, in the feedback process, head orientation information, viewport information indicating an area currently viewed by a user, and the like may be transmitted to the transmitting side. Depending on the embodiment, the user may interact with those implemented on the VR environment, in which case information related to the interaction may be delivered to the sending side or the service provider side in the feedback process. Depending on the embodiment, the feedback process may not be performed.
  • the head orientation information may mean information about a user's head position, angle, and movement. Based on this information, information about an area that a user is currently viewing within a 360 video, that is, viewport information may be calculated.
  • the viewport information may be information about an area currently viewed by a user in 360 video. Through this, gaze analysis may be performed to check how the user consumes 360 video, which area of the 360 video, and how much gaze. Gaze analysis may be performed at the receiving side and transmitted to the transmitting side through a feedback channel.
  • a device such as a VR display can extract a viewport area based on the user's head position / orientation, and a vertical or horizontal FOV supported by the device.
  • the feedback information described above may not only be transmitted to the transmitting side, but may be consumed at the receiving side. That is, the decoding, re-projection, and rendering processes of the receiver may be performed using the feedback information described above. For example, only 360 videos for an area currently viewed by a user may be preferentially decoded and rendered using head orientation information and / or viewport information.
  • a viewport or a viewport area may mean an area that a user is viewing in 360 video.
  • a viewpoint is a point that a user is viewing in 360 video, and may mean a center point of the viewport area. That is, the viewport is an area centered on a viewpoint, and a size shape occupied by the area may be determined by a field of view (FOV), which will be described later.
  • FOV field of view
  • 360 video data image / video data that undergoes a series of processes of capture / projection / encoding / transfer / decoding / re-projection / rendering may be referred to as 360 video data.
  • the term 360 video data may also be used as a concept including metadata or signaling information related to these image / video data.
  • FIG. 2 is a diagram illustrating a 360-degree video transmission apparatus according to an aspect of the present invention.
  • the present invention may relate 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 (transmission-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 captured images / videos for each viewpoint.
  • the viewpoint-specific images / videos may be images / videos captured by one or more cameras.
  • the data input unit may receive metadata generated during the capture process.
  • the data input unit may transmit the input image / video for each view point to the stitcher, and transmit metadata of the capture process to the signaling processing unit.
  • the stitcher may perform stitching on captured images / videos by viewpoint.
  • the stitcher may deliver the stitched 360 video data to the projection processing unit. If necessary, the stitcher can receive necessary metadata from the metadata processing unit and use it for stitching.
  • the stitcher may transmit metadata generated in the stitching process to the metadata processing unit. In the metadata of the stitching process, there may be information such as whether stitching has been performed, stitching type, and the like.
  • the projection processing unit may project stitched 360 video data onto a 2D image.
  • the projection processing unit may perform projection according to various schemes, which will be described later.
  • the projection processing unit 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 it for projection work.
  • the projection processing unit may transmit metadata generated in the projection process to the metadata processing unit.
  • the metadata of the projection processing unit may include a type of projection scheme and the like.
  • the region-specific packing processing unit may perform the aforementioned region-specific packing process. That is, the region-specific packing processing unit may perform processing such as dividing the projected 360 video data into regions, rotating and rearranging each region, or changing the resolution of each region. As described above, the packing process for each region is an optional process. When the packing for each region is not performed, the packing process for each region may be omitted. If necessary, the region-specific packing processing unit may receive metadata required for region-specific packing from the metadata processing unit and use the region-specific packing operation. The region-specific packing processing unit may transmit metadata generated in the region-specific packing process to the metadata processing unit.
  • the region-specific packing processing unit metadata may include a rotation degree and a size of each region.
  • the above-described stitcher, projection processing unit and / or region-specific packing processing unit may be performed in one hardware component according to an embodiment.
  • the metadata processing unit may process metadata that may occur in the capture process, stitching process, projection process, region-specific packing process, encoding process, encapsulation process, and / or transmission process.
  • the metadata processing unit may generate 360 video-related metadata using these metadata.
  • the metadata processing unit 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 processing unit may transmit the acquired or generated metadata to internal elements of the 360 video transmission device as needed.
  • the metadata processing unit may transmit the 360 video-related metadata to the data encoder, the encapsulation processing unit, and / or the transmission processing unit so that the metadata can be transmitted to the receiver.
  • the data encoder can encode 360 video data projected on a 2D image and / or packed regional video. 360 video data can be encoded in a variety of formats.
  • the encapsulation processing unit may encapsulate 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 metadata processing unit described above.
  • 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 various levels of boxes on the ISOBMFF file format, or as data in separate tracks in 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 a file format.
  • the transmission processing unit may process 360 video data according to any transmission protocol.
  • the processing for transmission may include processing for delivery through a broadcast network, and processing for delivery through a broadband.
  • the transmission processing unit may receive not only 360 video data, but also 360 video related metadata from the metadata processing unit, and may apply processing for transmission to the 360 video data.
  • the transmitting unit may transmit the processed 360 video data and / or metadata related to 360 video through a broadcast network and / or broadband.
  • the transmission unit may include an element for transmission over a broadcast network and / or an element for transmission over broadband.
  • the 360 video transmission device may further include a data storage unit (not shown) as an internal / external element.
  • the data storage unit may store the encoded 360 video data and / or 360 video-related metadata before transmitting it to the transmission processing unit.
  • the format in which these data are stored may be a file format such as ISOBMFF.
  • a data storage unit may not be required, but when transmitting through on-demand, NRT (Non Real Time), broadband, etc., encapsulated 360 data is stored in the data storage for a certain period of time. It can also be transmitted.
  • the 360 video transmission apparatus may further include a (transmission side) feedback processing unit and / or a network interface (not shown) as internal / external elements.
  • the network interface may receive feedback information from the 360 video receiving apparatus according to the present invention, and transmit it to the transmitting-side feedback processing unit.
  • the transmitting-side feedback processing unit may transmit feedback information to the stitcher, projection processing unit, region-specific packing processing unit, data encoder, encapsulation processing unit, metadata processing unit, and / or transmission processing unit.
  • the feedback information may be transmitted once to the metadata processing unit, and then to each internal element again. Internal elements that receive feedback information may reflect the feedback information in subsequent processing of 360 video data.
  • the region-specific packing processing unit may rotate each region to map on a 2D image. At this time, each region may be rotated at different directions and at different angles and mapped on the 2D image.
  • the rotation of the region can be performed by taking into account the portion where the 360 video data was contiguous before projection on the spherical surface, the stitched portion, and the like.
  • Information about the rotation of the region, that is, the rotation direction, angle, etc., may be signaled by metadata related to 360 video.
  • the data encoder is different for each region. Encoding can be performed.
  • the data encoder may perform encoding in a specific region with high quality and in other regions with low quality.
  • the transmitting-side feedback processing unit may transmit the feedback information received from the 360 video receiving device to the data encoder, so that the data encoder uses a region-specific differential encoding method.
  • the feedback processing unit of the transmitting side may transmit the viewport information received from the receiving side to the data encoder.
  • the data encoder may perform encoding for regions including an area indicated by viewport information with higher quality (UHD, etc.) than other regions.
  • 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, so that the robustness of data transmitted for each region may be different.
  • the transmission-side feedback processing unit may transmit the feedback information received from the 360 video receiving device to the transmission processing unit, so that the transmission processing unit performs differential transmission processing for each region.
  • the transmission-side feedback processing unit may transmit viewport information received from the reception side to the transmission processing unit.
  • the transmission processing unit may perform transmission processing for regions including a region indicated by the corresponding viewport information to have higher robustness than other regions.
  • the inner / outer elements of the 360 video transmission apparatus may be hardware elements implemented in hardware. Depending on the embodiment, internal / external elements may be changed, omitted, or replaced with other elements. Depending on the embodiment, 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 present 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 process and / or rendering process.
  • the 360 video receiving apparatus according to the present invention may include a receiving unit, a receiving processing unit, a decapsulation processing unit, a data decoder, a metadata parser, a (receiving side) feedback processing unit, a re-projection processing unit and / or a renderer as internal / external elements. have.
  • the reception unit may receive 360 video data transmitted by the 360 video transmission apparatus according to the present invention. Depending on the channel being transmitted, the receiver may receive 360 video data through a broadcast network or 360 video data through a broadband.
  • the reception processing unit may perform processing according to a transmission protocol on the received 360 video data.
  • the reception processing unit may perform the reverse process of the above-described transmission processing unit so that the transmission side corresponds to the processing for transmission.
  • the receiving processing unit may deliver the obtained 360 video data to the decapsulation processing unit, and transmit the obtained 360 video-related metadata to the metadata parser.
  • the 360 video-related metadata obtained by the reception processing unit may be in the form of a signaling table.
  • the decapsulation processing unit may decapsulate 360 video data in a file format received from the reception processing unit.
  • 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 a data decoder, and the obtained 360 video related metadata may be transmitted to a metadata parser.
  • the metadata related to 360 video acquired by the decapsulation processor may be in the form of a box or track in a file format. If necessary, the decapsulation processing unit may receive metadata required for decapsulation from a metadata parser.
  • the data decoder may decode 360 video data.
  • the data decoder may receive metadata required for decoding from the metadata parser.
  • the metadata related to 360 video obtained in the data decoding process may be transmitted to a metadata parser.
  • the metadata parser may perform parsing / decoding of 360 video-related metadata.
  • the metadata parser may transfer the obtained metadata to a data decapsulation processing unit, a data decoder, a re-projection processing unit, and / or a renderer.
  • the re-projection processor may perform re-projection on the decoded 360 video data.
  • the re-projection processor may re-project 360 video data into 3D space.
  • the 3D space may have a different shape depending on the 3D model used.
  • the re-projection processing unit may receive metadata required for re-projection from the metadata parser.
  • the re-projection processing unit may receive information on the type of the 3D model used and its detailed information from a metadata parser.
  • the re-projection processing unit may re-project only 360 video data corresponding to a specific area in 3D space into 3D space using metadata required for re-projection.
  • the renderer can render the re-projected 360 video data. As described above, it may be expressed that 360 video data is rendered in 3D space. In this case, when both processes occur at once, the re-projection processing unit and the renderer are integrated, so that all of these processes can be performed in the renderer. According to an embodiment, the renderer may render only the part the user is viewing according to the user's viewpoint information.
  • the user can view a partial area of the rendered 360 video through a VR display or the like.
  • the VR display is a device that plays 360 video, may be included in a 360 video receiving device (tethered), or may be connected to a 360 video receiving device as a separate device (un-tethered).
  • the 360 video receiving apparatus may further include a (receiving side) feedback processor and / or a network interface (not shown) as internal / external elements.
  • the receiver feedback processing unit may obtain and process feedback information from a renderer, a re-projection processing unit, a data decoder, a decapsulation processing unit, 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 feedback information from the feedback processing unit on the receiving side and transmit it to a 360 video transmission device.
  • the receiving-side feedback processing unit may transmit the obtained feedback information to internal elements of the 360-video receiving device, so that it can be reflected in a process such as rendering.
  • the receiving-side feedback processing unit may transmit feedback information to a renderer, a re-projection processing unit, a data decoder and / or a decapsulation processing unit.
  • the renderer may preferentially render an area viewed by a user using feedback information.
  • the decapsulation processing unit, the data decoder, etc. may preferentially decapsulate and decode the area viewed by the user or the area to be viewed.
  • the inner / outer elements of the 360 video receiving apparatus may be hardware elements implemented in hardware. Depending on the embodiment, internal / external elements may be changed, omitted, or replaced with other elements. Depending on the embodiment, additional elements may be added to the 360 video receiving device.
  • Another aspect of the invention may relate to a method of transmitting 360 video and a method of receiving 360 video.
  • the method for transmitting / receiving 360 video according to the present invention may be performed by the above-described 360 video transmitting / receiving device according to the present invention or embodiments of the device.
  • each embodiment of the above-described 360 video transmission / reception device according to the present invention, transmission / reception method, and respective embodiments of its internal / external elements may be combined with each other.
  • the embodiments of the projection processing unit and the embodiments of the data encoder can be combined with each other to produce as many embodiments of the 360 video transmission device as the number of cases. Such combined embodiments are also included in the scope of the present invention.
  • FIG. 4 is a diagram illustrating a 360-degree video transmitting device / 360-degree video receiving device according to another embodiment of the present invention.
  • 360 content may be provided by an architecture as shown in (a).
  • the 360 content may be provided in the form of a file, or may be provided in the form of a segment-based download or streaming service such as 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 pre-processing process and an audio encoding process.
  • audio-related metadata may be generated, and 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 360 video data (Visual stitching). This process may be omitted according to an embodiment and may be performed at the receiving side.
  • the projection processing unit of the 360 video transmission device may project 360 video data on a 2D image (Projection and mapping (packing)).
  • This stitching and projection process is specifically shown in (b).
  • stitching and projection may be performed thereon.
  • stitched 360 video data may be projected onto a 3D space, and the projected 360 video data may be viewed as being arranged on a 2D image.
  • this process may be expressed 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 at the receiving side.
  • the 2D image may also be called a projected frame (C).
  • Region-wise packing may be selectively performed on this 2D image.
  • regions on a 2D image may be mapped onto a packed frame (D) by indicating the location, shape, and size of each region.
  • 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 on a 2D image. Depending on the design, 360 video data may be directly converted into packed frames without intermediate processing.
  • the projected 360 video data may be image encoded to 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 may be included in individual tracks for DASH based transmission.
  • 360 video related metadata can be generated as described above.
  • This metadata can be delivered as part of a video stream or file format.
  • This metadata can also be used in processes such as encoding, file format encapsulation, and processing for transmission.
  • the 360 audio / video data is processed for transmission according to a transmission protocol, and then transmitted.
  • the above-described 360 video receiving device may receive it through a broadcast network or broadband.
  • the VR service platform may correspond to one embodiment of the above-described 360 video receiving device.
  • loudspeakers / headphones, displays, and head / eye tracking components are shown to be performed by external devices or VR applications 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 aforementioned feedback processing unit.
  • the 360 video receiving apparatus may perform processing (File / segment decapsulation) for receiving 360 audio / video data.
  • the 360 audio data may be provided to a user through a speaker / headphone through audio decoding and audio rendering processes.
  • the 360 video data may be provided to a user through a display through an image decoding, video decoding, and rendering process.
  • the display may be a display supporting VR or a general display.
  • the rendering process may be specifically viewed as 360 video data being re-projected onto the 3D space, and the re-projected 360 video data being rendered. It can also be expressed that 360 video data is rendered in 3D space.
  • the head / eye tracking component may acquire and process a user's head orientation information, gaze information, viewport information, and the like. This was described above.
  • the receiving side there may be a VR application communicating with the above-described receiving-side processes.
  • FIG. 5 is a view showing the concept of an aircraft main axis (Aircraft Principal Axes) for explaining the 3D space of the present invention.
  • the concept of the main axis of the airplane can be used to express a specific point, position, direction, spacing, area, and the like in 3D space.
  • the concept of 3D space before or after projection is described, and an airplane headstock concept may be used to perform signaling thereon.
  • the X, Y, Z axis concept or a method using a spherical coordinate system may be used.
  • the plane can rotate freely in three dimensions.
  • the three-dimensional axes are called a pitch axis, a yaw axis, and a roll axis, respectively.
  • pitch axis a pitch axis
  • yaw axis a yaw axis
  • roll axis a yaw axis
  • the pitch axis may mean an axis that is a reference for a direction in which the front nose of the airplane rotates up / down.
  • the pitch axis may mean an axis extending from the wing of the airplane to the wing.
  • the yaw axis may mean an axis that serves as a reference for a direction in which the front nose of the airplane rotates left / right.
  • the yaw axis may mean an axis extending from the top to the bottom of the airplane.
  • the roll axis is an axis from the nose of the airplane to the tail in the concept of the main axis of the airplane, and rotation in the roll direction may mean rotation based on 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 stitched 360 video data onto a 2D image.
  • Various projection schemes can be used in this process.
  • the projection processing unit may perform projection using a Cubic Projection scheme.
  • stitched 360 video data may be displayed on a spherical surface.
  • the projection processing unit may divide the 360 video data into cubes (cubes) to project on a 2D image.
  • 360 video data on a spherical face corresponds to each face of the cube, and can be projected on the 2D image as (a) left or (a) right.
  • the projection processing unit may perform projection using a cylindrical projection scheme.
  • the projection processing unit may divide the 360 video data into a cylinder shape and project the 2D image.
  • the 360 video data on the spherical surface corresponds to the side, top, and bottom of the cylinder, respectively, and can be projected on the 2D image as (b) left or (b) right.
  • the projection processing unit may perform projection using a pyramid projection scheme.
  • the projection processing unit can view the 360 video data in a pyramid shape and divide each surface to project on a 2D image.
  • the 360 video data on the spherical face corresponds to the front side of the pyramid and the four sides of the pyramid (Left top, Left bottom, Right top, Right bottom), respectively. c) It can be projected as shown on the right.
  • the projection processing unit may perform projection using an equirectangular projection scheme, a panoramic projection scheme, or the like, in addition to the above-described schemes.
  • a region may mean an area in which 2D images projected with 360 video data are divided. These regions do not have to match each face on the projected 2D image according to the projection scheme. However, according to an embodiment, regions are divided so that each surface on the projected 2D image corresponds to a region, and region-specific packing may be performed. Depending on the embodiment, a plurality of faces may correspond to one region, or regions may be divided so 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 face of the cube (top, bottom, front, left, right, and back) may be a region. In (b), the side, top, and bottom of the cylinder may each be regions. In (c), the pyramid's front and four-way sides (Left top, Left bottom, Right top, Right bottom) may each be a region.
  • FIG. 7 is a diagram illustrating a tile according to an embodiment of the present invention.
  • 360 video data projected on a 2D image or 360 video data performed up to region-specific packing may be divided into one or more tiles.
  • the illustrated (a) shows a form in which one 2D image is divided into 16 tiles.
  • the 2D image may be the aforementioned projected frame or packed frame.
  • the data encoder can independently encode each tile.
  • the above-mentioned region-specific packing and tiling may be divided.
  • the above-mentioned region-specific packing may mean processing 360 video data projected on a 2D image into regions to improve coding efficiency or to adjust resolution.
  • the tiling may mean that the data encoder divides the projected frame or the packed frame into sections called tiles, and performs encoding independently for each tile.
  • 360 video is provided, the user does not consume all parts of the 360 video simultaneously.
  • the tiling can make it possible to transmit or consume only tiles corresponding to an important part or a certain part, such as a viewport currently viewed by a user, on a limited bandwidth. Through tiling, the limited bandwidth can be utilized more efficiently, and the receiving side can also reduce the computational load compared to processing all 360 video data at once.
  • Regions and tiles are distinct, so the two areas need not be the same. However, depending on the embodiment, the region and the tile may refer to the same area. Depending on the embodiment, packing by region is performed according to a tile, so that the region and the tile may be the same. Also, according to an embodiment, when each surface and region according to the projection scheme are the same, each surface, 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, or a tile region.
  • ROI may mean an area of interest of users, as suggested by the 360 content provider.
  • a 360 content provider may view a certain area as users' interest, and may take into account this and produce a 360 video.
  • the ROI may correspond to an area in which important content is reproduced on the content of the 360 video.
  • the reception-side feedback processing unit may extract and collect viewport information and transmit it to the transmission-side feedback processing unit.
  • viewport information can be transferred using both network interfaces.
  • a viewport t6010 is displayed.
  • the viewport can span 9 tiles on a 2D image.
  • the 360 video transmission device may further include a tiling system.
  • the tiling system may be located after the data encoder ((b) shown), may be included in the above-described data encoder or transmission processing unit, or may be included in the 360 video transmission device as a separate internal / external element. .
  • the tiling system may receive viewport information from the feedback processing unit of the transmitting side.
  • the tiling system may select and transmit only the tile including the viewport area. Of the total of 16 tiles in the 2D image of (a) shown, only 9 tiles including the viewport area t6010 may be transmitted.
  • the tiling system may transmit tiles in a unicast manner over broadband. This is because the viewport area is different for each user.
  • the transmitting-side feedback processing unit may transmit viewport information to the data encoder.
  • the data encoder may perform encoding on tiles including the viewport area with higher quality than other tiles.
  • the transmission-side feedback processing unit may transmit viewport information to the metadata processing unit.
  • the metadata processing unit may transmit metadata related to the viewport area to each internal element of the 360 video transmission device, or may include it in the 360 video related metadata.
  • the above-described embodiments related to the viewport area may be applied in a similar manner to specific areas other than the viewport area. For example, through the above-mentioned gaze analysis, it is also determined that the area that users are mainly interested in, the ROI area, the area that is played first when the user touches 360 video through the VR display (initial view point, Initial Viewpoint), etc. , In the same manner as the viewport area described above, the processes may be performed.
  • the transmission processing unit may perform processing for transmission differently for each tile.
  • the transmission processing unit may apply different transmission parameters (modulation order, code rate, etc.) for each tile, so that the robustness of data transmitted for each tile may be different.
  • the feedback processing unit on the transmission side may transmit the feedback information received from the 360 video receiving device to the transmission processing unit, so that the transmission processing unit performs differential transmission processing for each tile.
  • the transmission-side feedback processing unit may transmit viewport information received from the reception side to the transmission processing unit.
  • the transmission processing unit may perform transmission processing on tiles including the corresponding viewport region 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 aforementioned 360 video-related metadata may include various metadata for 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, may be included in a DASH MPD, and may be transmitted in a file format such as ISOBMFF.
  • files, fragments, tracks, sample entries, samples, etc. may be included in various levels to include metadata for the corresponding level of data.
  • a part of the metadata to be described later is configured and delivered as a signaling table, and the other part may be included in a file format in a box or track form.
  • the 360 video related metadata includes basic metadata related to a projection scheme, stereoscopic related metadata, and initial view (Initial View / Initial Viewpoint) related metadata. Data, ROI-related metadata, FOV (Field of View) -related metadata, and / or cropped region-related metadata.
  • the 360 video-related metadata may further include additional metadata in addition to the above.
  • Embodiments of the 360 video-related metadata according to the present invention include the above-described basic metadata, stereoscopic-related metadata, initial view-related metadata, ROI-related metadata, FOV-related metadata, cropped area-related metadata and / or It may be a form including at least one or more of 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 cases of detailed metadata each included.
  • the metadata related to 360 video may further include additional information in addition to the above.
  • the basic metadata may include 3D model-related information, projection scheme-related information, and the like.
  • 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 for 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 a 3D model used in rendering.
  • the corresponding field has a value of 0, 1, 2, 3, the 3D space may follow a 3D model of a sphere, a cube, a cylinder, and a pyramid, respectively.
  • the 360 video-related metadata may further include specific information on the 3D model indicated by the corresponding field.
  • the detailed information on the 3D model may mean, for example, spherical radius information, cylinder height information, and the like. This field can be omitted.
  • the projection_scheme field may indicate a projection scheme used when the corresponding 360 video data is projected on a 2D image. If the corresponding field has values of 0, 1, 2, 3, 4, 5, respectively, the equirectangular projection scheme, the cubic projection scheme, the cylindrical projection scheme, and the tile-based projection scheme , Pyramid projection scheme, Panoramic projection scheme may have been used. If the corresponding field has a value of 6, it may be a case where 360 video data is directly projected on a 2D image without stitching. If the corresponding field has the remaining value, it can be reserved for future use (Reserved for Future Use). According to an embodiment, the 360 video-related metadata may further include specific information about a region generated by a projection scheme specified by a corresponding field. Here, the specific information about the region may mean, for example, whether the region is rotated, radius information of a top region of the cylinder, and the like.
  • the stereoscopic related metadata may include information about 3D related properties of 360 video data.
  • the stereoscopic related metadata may include an is_stereoscopic field and / or a stereo_mode field. According to an embodiment, the stereoscopic related metadata may further include additional information.
  • the is_stereoscopic field may indicate whether the corresponding 360 video data supports 3D. If the corresponding field is 1, it means 3D support, and if it is 0, it may mean 3D support. This field can be omitted.
  • the stereo_mode field may indicate a 3D layout supported by the corresponding 360 video. It is also possible to indicate whether the corresponding 360 video supports 3D only with this field. In this case, the above-described is_stereoscopic field may be omitted. When the value of this field is 0, the corresponding 360 video may be in a mono mode. That is, the projected 2D image may include only one mono view. In this case, the corresponding 360 video may not support 3D.
  • the corresponding 360 video may follow a left-right layout and a top-bottom layout, respectively.
  • the left and right layouts and the top and bottom layouts may also be called side-by-side and top-bottom formats, respectively.
  • 2D images in which the left image / right image is projected may be positioned left and right respectively on the image frame.
  • the 2D images in which the left / right images are projected may be positioned up / down on the image frame, respectively. If the corresponding field has the remaining value, it can be reserved for future use (Reserved for Future Use).
  • the initial view-related metadata may include information about a view point (initial view point) that the user sees when the 360 video is first played.
  • 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 metadata related to the initial view 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 viewpoint when playing the corresponding 360 video. That is, the center point of the viewport, which is initially displayed during playback, may be indicated by these three fields. Each field can indicate the position of the center point in the direction rotated around the yaw, pitch, and roll axis (sign) and the degree (angle).
  • the viewport that is displayed during the first playback may be determined according to the FOV. Through the FOV, the horizontal and vertical lengths (width and height) of the initial viewport based on the indicated initial viewpoint may be determined. That is, using these three fields and FOV information, the 360 video receiving apparatus may provide a user with a predetermined area of 360 video as an initial viewport.
  • the initial time point indicated by the metadata related to the initial time point may be changed for each scene. That is, the scene of the 360 video changes according to the temporal flow of the 360 content, and the initial view or initial viewport that the user first sees may be changed for each scene of the 360 video.
  • metadata related to the initial viewpoint may indicate an initial viewpoint for each scene.
  • the metadata related to the initial view may further include a scene identifier that identifies a scene to which the corresponding initial view is applied.
  • the metadata related to the initial view may further include FOV information for each scene indicating the FOV corresponding to the scene.
  • the ROI-related metadata may include information related to the ROI described above.
  • 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 ROI-related metadata includes fields representing an ROI based on a 2D image or fields representing an ROI based on 3D space.
  • the ROI-related metadata may further include additional information such as differential encoding information according to the ROI and differential transmission processing information according to the ROI.
  • the ROI-related metadata includes fields representing an ROI based on a 2D image
  • the ROI-related metadata includes a 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 the minimum / maximum value of the coordinates of the upper left end of the ROI. These fields in turn may indicate the minimum x-coordinate, maximum x-coordinate, minimum y-coordinate, and maximum y-coordinate at the top left corner.
  • the min_width field, the max_width field, the min_height field, and the max_height field may indicate minimum / maximum values of the ROI's horizontal size and vertical height. These fields in turn 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.
  • the min_x field, the max_x field, the min_y field, and the max_y field may indicate minimum / maximum values of coordinates in the ROI. These fields in turn may indicate the minimum x coordinate, maximum x coordinate, minimum y coordinate, and maximum y coordinate of the coordinates in the ROI. These fields can be omitted.
  • the ROI-related metadata includes fields that represent an ROI based on coordinates in the 3D rendering space
  • the ROI-related metadata include 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 The max_field_of_view field may be included.
  • the min_yaw field, the max_yaw field, the min_pitch field, the max_pitch field, the min_roll field, and the max_roll field may represent 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 amount, the maximum yaw axis rotation amount, the pitch axis rotation amount, the maximum pitch axis rotation amount, the roll axis rotation amount, and the 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 the minimum / maximum value of the FOV of the corresponding 360 video data.
  • the FOV may mean 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 indicate minimum and maximum values of the FOV, respectively. These fields can be omitted. These fields may be included in FOV-related metadata, which will be described later.
  • the FOV-related metadata may include information related to the FOV described above.
  • 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 information related to minimum / maximum values of the FOV described above.
  • the content_fov_flag field may indicate whether information about an intended FOV at the time of production for the corresponding 360 video exists. When this field value is 1, a content_fov field may be present.
  • the content_fov field may indicate information about an intended FOV in production for a corresponding 360 video.
  • an area displayed to the user at one time among 360 images may be determined.
  • an area of 360 video displayed at a time to a user may be determined by reflecting FOV information of this field.
  • the cropped region-related metadata may include information on a region including actual 360 video data on an image frame.
  • the image frame may include an active video area that is actually projected with 360 video data and an area that is not.
  • the active video area may be referred to as a cropped area or a default display area.
  • This active video area is an area shown as 360 video on an actual VR display, and the 360 video receiving device or VR display can process / display only the active video area. For example, if the aspect ratio of the image frame is 4: 3, only the area excluding the upper part and the lower part of the image frame may include 360 video data, which can be referred to as an active video area. .
  • the cropped region-related metadata may include is_cropped_region field, cr_region_left_top_x field, cr_region_left_top_y field, cr_region_width field, and / or 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 the entire region of the image frame is used by the 360 video receiving device or the VR display. That is, this field may indicate whether the entire image frame is an active video area. If only part of the image frame is an active video area, the following 4 fields may be further 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.
  • Each of 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.
  • the horizontal length and vertical length may be expressed in units of pixels.
  • 360-degree video-related signaling information or metadata may be included in an arbitrarily defined signaling table, or may be included in a file format such as ISOBMFF or Common File Format in a box form, and may be included in DASH MPD and transmitted. have.
  • 360-degree media data may be transmitted in such a file format or DASH segment.
  • FIG 9 shows a view point and a viewing position that are additionally defined in a 3DoF + VR system.
  • the 360 video-based VR system can provide a visual / aural experience for different viewing directions based on the user's location with respect to the 360 video based on the above-described 360 video processing process.
  • This method can be called 3 degree of freedom (DoDoF) plus.
  • a VR system that provides a start / audible experience for different directions in a user's fixed position for 360 video may be referred to as a 3DoF based VR system.
  • a VR system capable of providing an extended visual / aural experience for different directions at the same time zone and different directions at different viewing positions may be referred to as a 3DoF + or 3DoF plus based VR system. You can.
  • FIG. 10 shows a method of implementing a 360-degree video signal processing based on a 3DoF + system and a related transmission / reception device.
  • FIG. 10 is an example of a 3DoF + end-to-end system flow diagram including 3DoF + image acquisition, preprocessing, transmission, (post) processing, rendering, and feedback processes.
  • the image information may include depth information (depth) as well as visual information (texture).
  • depth depth
  • texture texture
  • Composition Synthesis to include not only information obtained through a video / audio input device, but also video (video / image, etc.), voice (audio / effect sound, etc.) and text (subtitles, etc.) through external media in the user experience. You can define a way to do it.
  • Pre-processing As a preparation (pre-processing) process for transmission / delivery of the obtained 360 video, it may include stitching, projection, packing process by region, and / or encoding process. That is, this process may include a pre-processing process and an encoding process for changing / supplementing video / audio / text information according to the manufacturer's intention. For example, in the pre-processing process of the image, the acquired visual information is mapped onto a 360 sphere (stitching), the area boundary is removed, the color / brightness difference is reduced, or the editing operation that gives the visual effect of the image is edited.
  • the process of separating the images (view segmentation), the projection process of mapping an image on a 360 sphere into a 2D image, the process of rearranging images according to regions (region-wise packing), and the encoding process of compressing image information Can be included.
  • a plurality of projection images of different viewing positions according to different viewing positions may be generated.
  • Delivery may refer to a process of processing and transmitting video / audio data and metadata that have undergone a preparation process (pre-processing process).
  • pre-processing process As a method of transmitting a plurality of video / audio data and related metadata of different viewing positions according to different viewing positions, a broadcasting network, a communication network, or a one-way transmission method may be used as described above. You can.
  • Post-processing & composition Decode received / stored video / audio / text data and may refer to a post-processing process for final playback.
  • the post-processing process may include an unpacking to unpack the packed image and a re-projection process to restore a 2D projected image to a 3D spherical image as described above.
  • Rendering It can mean the process of rendering and displaying re-projected image / video data in 3D space.
  • the video / audio signal can be reconstructed into a form for final output.
  • the orientation, viewing position / head position, and viewpoint of the user's region of interest can be tracked, and only necessary video / audio / text information can be selectively used according to this information.
  • different viewpoints such as c may be selected according to a user's region of interest, and finally, an image in a specific direction at a specific viewpoint at a specific position as d may be output.
  • Feedback It may mean a process of transmitting various feedback information that can be obtained in the display process to the transmitting side.
  • the viewing direction, the viewing position, and the viewing point of the user's region of interest may be estimated, and feedback may be transmitted to reproduce a video / audio based on this.
  • FIG. 11 shows the structure of a 3DoF + end-to-end system.
  • 3DoF + 360 content may be provided as described above by the architecture of FIG. 11.
  • the 360 video transmission device is largely composed of a 360 video (image) / audio data acquisition part (acquisition unit), a part that processes the acquired data (video / audio pre-processor), and a composition generation unit for synthesizing additional information. ), Text, audio and a projected 360-degree video encoding unit (encoding unit) and encapsulated encoded data (encapsulation unit).
  • the encoded data may be output in the form of a bitstream, and the encoded data may be encapsulated in a file format such as ISOBMFF or CFF, or processed in the form of other DASH segments.
  • the encoded data may be delivered to a 360 video receiving device through a digital storage medium, or although not explicitly shown, undergoes processing for transmission through a transmission processing unit as described above, and then broadcasts a network or broadband. It can be transmitted through.
  • sensor orientation sensor orientation, viewing orientation for images
  • sensor information acquisition point sensor position, viewing position for images
  • sensor information acquisition location viewpoint for images
  • texture and depth information can be respectively obtained, and different video pre-processing is possible according to characteristics of each component.
  • texture information 360 omnidirectional images may be configured using images of different viewing orientations at the same viewing position obtained at the same location using image sensor location information.
  • an image stitching process may be performed.
  • projection and / or region-specific packing for changing to a format for encoding an image may be performed.
  • depth image an image can generally be acquired through a depth camera, and in this case, a depth image may be created in the form of a texture.
  • depth data may be generated based on separately measured data.
  • a sub-picture generation may be performed by additionally packing into a video format for efficient compression or dividing it into parts that are actually required.
  • Information about the video composition used in the video pre-processing stage is transmitted as video metadata.
  • the composition generation unit synthesizes externally generated media data (video / image for video, audio / effect sound for voice, subtitle for text, etc.) based on the creator's intention in the final playback stage. Information is generated, and this information is transmitted as composition metadata.
  • the video / audio / text information after each processing is compressed using each encoder and encapsulated in units of files or segments depending on the application. At this time, only necessary information can be extracted according to the video, file, or segment configuration method.
  • information for reconstructing each data in the receiver is transmitted at a codec or file format / system level, in which information for video / audio reconstruction (video / audio metadata), composition metadata for overlay, video / It includes audio playable position (viewpoint) and viewing position information (viewing position and viewpoint metadata) for each position.
  • the processing of such information may be generated through a separate metadata processing unit.
  • the bitstream generated through decapsulation can be divided into video / audio / text, etc., and decoded separately in a playable form according to the type of data.
  • the location of the user's region of interest (viewpoint), the viewing position (viewing position), and the viewing orientation (viewing orientation) information are generated based on the sensor and user input information.
  • This information may be used for selection or extraction of a region of interest in each module of the 360 video receiving device, or may be used for a post-processing process for emphasizing information of the region of interest.
  • it when delivered to a 360 video transmission device, it can be used for file extraction or sub-picture selection for efficient bandwidth use, and various image reconstruction methods based on a region of interest (viewport / viewing position / viewpoint dependent processing).
  • the decoded video signal may be processed according to various processing methods according to a video configuration method.
  • a process of reconstructing an image based on information transmitted through metadata is required.
  • video metadata generated by the 360 video transmission device may be used.
  • the location, viewpoint, and direction of the user's region of interest generated through tracking Information matching the information can be selected and processed.
  • the viewing position and viewpoint metadata generated by the transmitting end can be used.
  • a rendering process according to each may be included.
  • the video data (texture, depth, overlay) that has undergone a separate rendering process undergoes a composition process, and at this time, composition metadata generated by the transmitting end may be used.
  • information for playback in the viewport can be generated according to the user's region of interest.
  • the decoded text signal is transmitted to an overlay renderer and processed as text-based overlay information such as subtitles. If necessary, a separate text post-processing process may be included.
  • FLUS Framework for Live Uplink Streaming
  • the detailed blocks of the transmitting end and the receiving end described above can be classified into the functions of the source and the sink in FLUS (Framework for Live Uplink Streaming), and in this case, implement the function of the source in the information acquisition device as follows, and sink on the network. You can implement the function of, or source / sink in a network node.
  • the network node may include user equipment (UE).
  • the UE may include the above-described 360 video transmission device or 360 video reception device.
  • the process of transmitting and receiving based on the architecture described above can be represented as follows.
  • the following transmit / receive processing process is described based on the video signal processing process, and when processing other signals such as voice or text, the part marked with italic is omitted or changed to suit the voice or text processing process. You can.
  • the transmitting end may perform stitching for constructing a sphere image for each location / viewpoint / component.
  • a sphere image for each position / viewpoint / component is constructed, projection can be performed as a 2D image for coding.
  • a plurality of images can be created as packings to make an integrated image or as sub-pictures that are divided into images in a detailed area.
  • the packing process for each region may not be performed as an optional process, and in this case, the packing processing unit may be omitted.
  • the input data is video / audio / text supplementary information, it can tell how to add the additional information to the central image and display it, and also transmit the additional data.
  • the encapsulation process of converting the generated image and the added data into a file format for transmission or storage may be performed through an encoding process of compressing and generating a bit stream.
  • a process of extracting a file required by the receiver may be processed according to an application or a system request.
  • the generated bitstream can be transmitted after being converted into a transmission format through a transmission processing unit.
  • the transmitting side feedback processing unit may process the location / viewpoint / direction information and necessary metadata based on the information transmitted from the receiving end, and transmit it to be processed by the related transmitting unit.
  • the receiving end may extract a necessary file after receiving the bitstream delivered by the transmitting end.
  • the video stream in the generated file format is selected using position / viewpoint / direction information and video metadata delivered from the feedback processor, and the selected bitstream can be reconstructed into video information through a decoder.
  • unpacking may be performed based on packing information transmitted through metadata. If the packing process is omitted at the transmitting end, unpacking at the receiving end may also be omitted.
  • an image suitable for a position / viewpoint / direction transmitted from the feedback processing unit and a required component may be performed.
  • a rendering process of reconstructing an image texture, depth, and overlay information into a format suitable for reproduction may be performed.
  • a composition process of integrating information of different layers may be performed, and an image suitable for a display viewport may be generated and reproduced.
  • the file format for the 3DoF service has a structure in which, for example, as shown in FIG. 15, the location of rendering, information of a file to be transmitted, decoding information, etc. may vary according to a head / eye tracking module.
  • this method is not suitable for 6DoF media file transmission, where rendering information / transmission content and decoding information vary depending on the user's location or position.
  • 16 shows the type of media according to the user's movement.
  • the present invention proposes a method of providing 6DoF contents to provide a user with an immersive media / Immersive media experience.
  • Immersive media / realistic media is an expanded concept in the virtual environment provided by the existing 360 contents, and the user's position position is fixed in the form of (a) of the existing 360 contents.
  • the type media / sensational media provides the environment or contents that can provide more various sensory experiences such as movement / rotation of the user in the virtual space by giving the concept of movement when experiencing the content to the user as shown in (b) or (c). Can mean
  • (a) represents the media experience when the user's view is rotated while the user's position is fixed.
  • (b) shows the media experience when the user's head can move further while the user's position is fixed.
  • (c) represents the media experience when the user's position can move.
  • the sensational media content may include 6DoF video and 6DoF audio to provide the content, and the 6DoF video is a video or image captured or played as a newly formed 3DoF or 360 video for each movement required to provide the sensational media content.
  • 6DoF content may mean a video or image displayed on a 3D space. If the movement is fixed within the content, the content can be represented in various forms of 3D space, such as the existing 360 video. For example, it may be represented on a spherical surface. If the movement is free within the content, a three-dimensional space is newly formed around the user on the movement path each time, and the user can experience the content at the corresponding location.
  • 6DoF audio is audio content for providing content that enables users to experience sensational media, and may mean content for newly forming and consuming spatial audio as the location of sound consumption moves.
  • 17 shows the overall architecture for providing 6DoF video.
  • an HDCA High Density Camera Array
  • Lenslet microlens
  • a new device designed for capture As for the acquired image, several image / video data sets generated according to the position of the captured camera can be generated as shown in Fig. 3a.
  • metadata such as internal / external setting values of the camera may be generated.
  • the capture process may be altered.
  • the pre-processing process of the acquired image may be a process of processing captured images / videos and metadata transmitted in the capture process.
  • the stitching process, color correction process, projection process, and view segmenation process are separated into a primary view and a secondary view to improve coding efficiency.
  • Any type of pre-processing step of processing content before transmission, such as an encoding process, may be applicable.
  • the stitching process may be a process of creating an image / video connecting images captured in the 360 direction from the position of each camera in a panorama or spherical shape centered on each camera position.
  • Projection means the process of projecting the image of each stitching result into a 2D image as shown in Fig3b, and can be expressed as mapping to a 2D image. Images mapped from each camera position can be separated into a main view and a sub view to apply different resolutions for each view to increase video coding efficiency. Efficiency can be improved when coding.
  • the secondary view may not exist depending on the capture environment.
  • the secondary view means an image / video that needs to be reproduced in a moving process when the user moves from the main view to another main view, and may have a lower resolution than the main view, but may have the same resolution as needed. In some cases, the secondary view may be newly generated as virtual information in the receiver.
  • a pre-processing process may further include an editing process.
  • editing of image / video data before and after projection may be further performed, and metadata may be generated in the pre-processing process.
  • metadata may be generated in the pre-processing process.
  • metadata regarding an initial viewpoint, an initial location of a user, and a region of interest (ROI) may be generated.
  • the media transmission step may be a process of processing and transmitting image / video data and metadata obtained in the pre-processing process.
  • processing according to any transmission protocol may be performed, and pre-processed data may be transmitted through a broadcast network and / or broadband, and these data may be delivered to a receiver in an on demand manner.
  • the processing process includes decoding the received image / video data and metadata, mapping it into a 3D model, or re-projecting it can also be called projection, and creating and synthesizing virtual views. All steps before generating an image for reproduction may be included in the processing step.
  • the 3D model or projection map to be mapped may have a sphere, cube, cylinder, or pyramid like the existing 360 video, and a modified form of the projection map of the existing 360 video. It can be, and in some cases, can be a freeform projection map.
  • the process of generating and synthesizing a virtual view may refer to a process of generating and synthesizing image / video data to be reproduced when the user moves between the main view and the sub view or between the main view and the main view.
  • a process of processing the metadata transferred in the capture and pre-processing process may be required, and in some cases, only a part of the 360 images / videos in the virtual viewpoint may be generated / composited.
  • the processing process may further include an editing process, an up scaling, a down scaling process, and the like.
  • an additional editing process required before playback may be applied after the processing process. If necessary, upscaling or downscaling of the transmitted image / video may be performed.
  • the rendering process may refer to a process of rendering to display a reprojected image / video transmitted or generated. Sometimes the rendering and reprojection process is collectively referred to as rendering. Therefore, a reprojection process may be included in the rendering process.
  • the re-projection can be a result of a large number of re-projections in the form of a user-centered 360 video / image and a 360 video / image that is formed around a position where the user moves according to the movement direction. have.
  • the user can view some areas of the 360 video / image, where the area the user sees can be shaped like fig.3d, and when the user moves, the entire 360 video / image is rendered. Instead, only the image corresponding to the location the user is viewing can be rendered.
  • it is possible to predict the motion in advance by receiving metadata about the user's location and the moving direction, and additionally render a video / image of the moving position.
  • the feedback process may refer to a process of transmitting various feedback information that can be obtained in the display process to the transmitting side.
  • interactivity between the 6DoF content and the user may occur, and according to an embodiment, the user's head and position position information (head / position orientation) and the area the user is currently viewing in the feedback process Information about, etc. may be delivered.
  • the information may be transmitted to the transmitting side or the service provider in the feedback process, and depending on the embodiment, the feedback process may not be performed.
  • the user's location information may mean information about the user's head position, angle, movement, and movement distance, and the viewport information viewed by the user may be calculated based on the information.
  • FIG. 18 shows a configuration of a transmission device for providing a 6DoF video service.
  • the present invention at the transmitting side may relate to a 6DoF video transmission device.
  • the 6DoF video transmission apparatus according to the present invention can perform the above-described preparation process and operations.
  • the 6DoF video / image transmission apparatus according to the present invention includes a data input unit, a depth information processing unit (not shown), a stitcher, a projection processing unit, a viewpoint separation processing unit, a packing processing unit for each viewpoint, a metadata processing unit, a feedback processing unit, and data
  • An encoder, an encapsulation processing unit, a transmission processing unit, and / or a transmission unit may be included as internal / external components.
  • the data input unit may receive image / video / depth information / audio data for each viewpoint captured by one or more cameras at one or more locations.
  • the data input unit may receive metadata generated in the capture process together with video / image / depth information / audio data.
  • the data input unit may transmit the input video / image data for each viewpoint to the stitcher, and transfer the metadata generated in the capture process to the metadata processing unit.
  • the stitcher may perform stitching operations on captured images / videos for each viewpoint / position.
  • the stitcher may deliver the stitched 360 video data to the projection processing unit. If necessary, the stitcher can be stitched by receiving it from the metadata processing unit.
  • the stitcher can transfer the metadata generated during the stitching process to the metadata processing unit.
  • the stitcher can make the video / image stitching position different by using the position value received from the depth information processing unit (not shown).
  • the stitcher can transfer the metadata generated in the stitching process to the processing unit.
  • the transmitted metadata may include whether or not stitching is performed, the stitching type, the ID of the primary view and the secondary view, and location information of the corresponding view.
  • the projection processing unit may project stitched 6DoF video data into a 2D image frame. Depending on the scheme, the projection processing unit may obtain different types of results. The scheme may be similar to the existing 360 video projection scheme, or the newly proposed scheme for 6DoF may be applied. Also, different schemes can be applied for each viewpoint.
  • the depth information processing unit may transmit depth information to the projection processing unit to change the mapping result value. If necessary, the projection processing unit may receive metadata required for projection from the metadata processing unit and use it for projection, and the projection processing unit may transmit metadata generated in the projection process to the metadata processing unit.
  • the metadata may include the type of scheme, whether or not projection is performed, ID of a 2D frame after projection at a main view point and a secondary view point, and location information for each view point.
  • the packing processing unit for each time point is divided into a main time point and a secondary time point, and may perform a packing process for each region within each time point. That is, the packing processing unit for each view classifies the projected 6DoF video data for each view / location into main view and sub view, so that the main view and sub view can have different resolutions or rotate the video data of each view to improve coding efficiency. In other words, you can rearrange them, and you can have different regional resolutions divided within each time point.
  • the process of classifying the main view and the sub view may be omitted, it may be an optional process, and different resolutions for different regions or different arrangements may be selectively performed.
  • the packing may be performed by using the information received from the metadata processing unit, and the metadata generated in the packing process may be transmitted to the metadata processing unit.
  • the metadata defined in the packing process for each viewpoint may be an ID of each viewpoint to classify a major viewpoint and a secondary viewpoint, a size applied to each region within the viewpoint, and a position value for each region of rotation.
  • the above-described stitcher, projection processing unit, and / or packing processing unit for each view may occur in one or more hardware components or an ingest server in a streaming / download service.
  • the metadata processing unit may process metadata that may occur in a capture process, a stitching process, a projection process, a packing process for each viewpoint, an encoding process, an encapsulation process, and / or a processing process for transmission.
  • the metadata processing unit may generate new metadata for a 6DOF video service by using the metadata received from each process.
  • the metadata processing unit may generate the newly generated metadata in the form of a signaling table.
  • the metadata processing unit may transfer the received metadata or newly created / processed metadata from the metadata processing unit to other elements.
  • the metadata processing unit may transmit the generated or received metadata to the data encoder, the encapsulation processing unit, and / or the transmission processing unit to be transmitted to the receiving side.
  • the data encoder may encode 6DoF video data projected on 2D image frames and / or packed video data by view / region. Encoding can be performed in various formats, and if it is classified by view, the encoding result value for each view can be transmitted separately.
  • the encapsulation processing unit may encapsulate the encoded 6DoF video data and / or related metadata in the form of a file.
  • the related metadata can be received from the aforementioned metadata processing unit.
  • the encapsulation processing unit may encapsulate the data in a file format such as ISOBMFF or OMAF, or in the form of a DASH segment, or may be processed in a new format.
  • Metadata can be included in boxes that exist at various levels in the file format, included as data in separate tracks, or only metadata can be encapsulated as files. Separate encapsulation processing for each view may be possible, or necessary metadata for each view and corresponding video information may be encapsulated together.
  • the transmission processing unit may apply additional processing for transmission to the encapsulated video data according to the format.
  • the processing can be performed by using the metadata received from the metadata processing unit.
  • the transmission unit may transmit data and / or metadata received from the transmission processing unit through a broadcast network and / or broadband.
  • the transmission unit may include components necessary for transmission through a broadcasting network and / or broadband.
  • the feedback processing unit may further include and / or a network interface (not shown).
  • the network interface may receive feedback information from a receiving device described later in the present invention and deliver it to a feedback processing unit (transmission side).
  • the feedback processing unit may transmit information received from the receiving side to the stitching, projection, point-by-point packing, encoder, encapsulation processing unit and / or transmission processing unit. It can be delivered to the field or the new metadata can be created / processed by the metadata processing unit.
  • the feedback processing unit transmits the location / viewpoint information received from the network interface to the metadata processing unit
  • the metadata processing unit is a projection, a packing processing unit for each viewpoint, an encapsulation processing unit, and / or data Coding efficiency can be improved by transmitting the corresponding location / viewpoint information to the encoder to transmit only the information and surrounding information that fits the current user's viewpoint / location.
  • the above-described components of the 6DoF video transmission device may be hardware components implemented in hardware. Depending on the embodiment, each component may be changed, omitted, or a new component may be added or replaced with another component.
  • the invention may relate to a receiving device.
  • the 6DoF video receiving device has a receiving unit, a receiving processing unit, a decapsulation processing unit, a metadata parser, a feedback processing unit, a data decoder, a re-projection processing unit, a virtual view generation / synthesis unit and / or a renderer as components. You can.
  • the receiving unit may receive video data from the above-described 6DoF transmission device. Depending on the channel through which the video data is transmitted, the receiver may receive through a broadcast network or broadband.
  • the reception processing unit may perform processing according to a transmission protocol on the received 6DoF video data.
  • the reception processing unit acquires data obtained in the previous step of the transmission processing unit by performing the procedure in the reverse order of the process performed by the transmission processing unit or through a process according to a protocol processing method.
  • the reception processing unit may transmit the obtained data to the decapsulation processing unit, and may transmit metadata received from the reception unit to the metadata parser.
  • the decapsulation processing unit may decapsulate 6 DoF video data in a file format received from the reception processing unit.
  • the decapsulation processing unit may decapsulate files according to a corresponding file format to obtain 6 DoF video and / or metadata.
  • the obtained 6DoF video data can be sent to a data decoder, and the 6DoF metadata can be delivered to a metadata parser.
  • the decapsulation processing unit may receive metametries necessary for decapsulation from a metameta parser, if necessary.
  • the data decoder can decode 6DoF video data.
  • the data decoder can receive metadata required for decoding from the metadata parser. Metadata obtained in the data decoding process may be transmitted to a metameta parser and processed.
  • the metameta parser can perform parsing / decoding for 6DoF video-related metameta.
  • the metameta-parser may transfer the obtained meta-metadata to a decapsulation processing unit, a data decoder, a re-projection processing unit, a virtual view generation / synthesis unit, and / or a renderer.
  • the re-projection processing unit may perform re-projection on the decoded 6DoF video data.
  • the re-projection processing unit may re-project 6 DoF data for each viewpoint / position into a 3D space.
  • the 3D space may have a different shape depending on the 3D model used, or may be re-projected into a 3D model of the same shape through a transformation process.
  • the re-projection processing unit may receive necessary metadata from the metadata parser. Metameta defined in the re-projection process can also be transferred to the metameta parser.
  • a 3D model of 6DoF video data for each viewpoint / location can be delivered to a metameter parser, and the 3D model of video data for each viewpoint / location is different, and the video data for all viewpoints is the same 3D model.
  • a meta area required for re-projection may be used to re-project only a specific area in a three-dimensional space, and one or more specific areas may be re-projected.
  • the virtual viewpoint generation / composite unit generates video data using the given data in the virtual viewpoint area that is not included in the 6 DoF video data received in the transmitted and re-projected 3D space, but focuses on the virtual viewpoint A process of synthesizing video data at a new viewpoint / position may be performed.
  • data of a depth information processing unit (not shown) may be used.
  • the virtual viewpoint generation / composite unit can only generate / compose a specific area received from the metameta parser and a part of the surrounding virtual viewpoint area not received.
  • the virtual viewpoint generation / synthesis unit may be selectively performed, and is performed when there is no video information corresponding to a required viewpoint and location.
  • the renderer can render 6DoF video data delivered from a re-projection or virtual view generation / composite unit. As described above, all processes occurring in the re-projection or virtual view generation / synthesis unit in the 3D space are integrated with the renderer and these processes can be performed within the renderer. Depending on the user's viewpoint / location information, only the part the user is viewing and the part on the expected path may be rendered.
  • a feedback processing unit (receiving side) and / or a network interface (not shown) may be included as additional components.
  • the receiving feedback processing unit may obtain and process feedback information from a renderer, a virtual view generation / synthesis unit, a re-projection processing unit, a data decoder, decapsulation, and / or a VR display.
  • the feedback information may include user viewport information, head and position orientation information, gaze information, gesture information, and the like.
  • the network interface may receive feedback information from the feedback processing unit, transmit it to the transmission device, or consume it in each component of the receiving side.
  • the decapsulation processing unit receives the location / viewpoint information of the user from the feedback processing unit, and if there is information of the corresponding location in the received 6DoF video, only the location information is decapsulated, decoded, re-projected, and rendered. can do. If there is no information of the location, it is possible to go through the process of decapsulation, decoding, re-projection, virtual view creation / compositing, and rendering of all 6DoF videos located around the location.
  • the above-described components of the 6DoF video receiving device may be hardware components implemented in hardware. Depending on the embodiment, each component may be changed, omitted, or a new component may be added or replaced with another component.
  • the 6DoF content may be provided in the form of a file or a segment-based download or streaming service such as DASH, and a new file format or a streaming / download service method may be used instead.
  • 6DoF content may be referred to as immersive media content, light field content, or point cloud content.
  • Audio Encoding 6DoF audio data may be subjected to an audio pre-processing and encoding process.
  • metadata may be generated, and the related metadata may be subjected to an encapsulation / encoding process for transmission.
  • 6DoF video data may undergo editing, stitching, and projection processes of images acquired at various locations. Depending on the embodiment, this process may be partially performed, or the entire process may be omitted and performed at the receiver side.
  • View segmentation / packing As described above, the view separation / packing processing unit separates and packs the main view required at the receiver side and the image at the primary view (PV) position based on the stitched image, and packs it separately. After it is processed, a pre-processing process of packing the remaining images into secondary views and secondary views (SV) may be performed. In the packing process, the size and resolution of the main view and the sub view can be adjusted to increase coding efficiency. Even within the viewpoint of the same personality, it can have resolution under different conditions for each region, or be rotated and rearranged depending on the region.
  • Depth sensing and / or estimation To perform the process of extracting a depth map from two or more acquired images when a depth capture camera does not exist, and where to acquire the image if there is a depth capture camera
  • a process for storing location information may be performed to determine the depth of each object included in the image.
  • Point Cloud Fusion / extraction You can perform the process of transforming the pre-obtained depth map into encodeable data. For example, by transforming to a point cloud data type, a pre-processing process for allocating the position value of each object in 3D may be performed. Instead of the pointer cloud data type, a data type capable of expressing 3D spatial information may be applied instead. You can.
  • PV encoding / SV encoding / light field / point cloud encoding pre-packed for each viewpoint or depth information and / or location information may be image-encoded or video-encoded, respectively. Even the same content at the same time may be encoded in different bit streams for each region. It can be a new codec to be defined in MPEG-I and media formats such as HEVC-3D and OMAF ++.
  • 6DoF video data encoded as described above can be processed in a file format such as ISOBMFF by File-encapsulation, an encapsulation processing unit. Or, the encoded 6DoF video data can be processed into segments.
  • Metadata (including depth information): Transfers metadata generated during the process of acquisition, stitching, projection, separation / packing, encoding, and encapsulation by 6DoF video data to the metadata processing unit or generated by the metadata processing unit Metadata can be delivered to each process.
  • the metadata generated by the transmitting side can be generated as one track or file in the encapsulation process and delivered to the receiving side.
  • the receiving side may receive a metadata stored as a separate file or a track in the file through a broadcast network or broadband.
  • Files and / or segments can be included in individual tracks for delivery based on DASH or a new model with similar functionality.
  • MPEG DASH, MMT and / or new standards may be applied for transmission.
  • the receiving device may perform processing for receiving 6DoF video / audio data.
  • Audio deconding / Audio rendering / Loudspeakers / headphones 6DoF audio data can be provided to users through speakers and headphones after audio decoding and rendering.
  • 6DoF video data can be image to video decoding.
  • a codec applied to decoding a newly proposed codec for 6DoF in HEVC-3D, OMAF ++, and MPEG can be applied.
  • the main view point (PV) and the sub view point (SV) are separated, so that the video or image can be decoded within each view packing, and the video or image can be decoded regardless of the view classification.
  • feedback of head, position, and eye tracking can be delivered first, and images or videos from the periphery of the user's location can be separated and decoded.
  • Head / eye / position tracking As described above, a user's head, position, gaze, and viewport information can be acquired and processed.
  • Point Cloud rendering When re-projecting the captured video / image data onto a 3D space, the 3D spatial position is set, and the received video / image data is not secured, but the virtual view is a location that the user can move. The process of creating a 3D space is performed.
  • Virtual view synthesis As described above, when there is no 6DoF video data in the space where the user is located, a process of generating and synthesizing video data of a new viewpoint is performed using 6DoF video data already secured around the user's location / viewpoint. Depending on the embodiment, the process of generating and / or synthesizing the virtual viewpoint may be omitted.
  • Image composition, and rendering As described above, this is a process for rendering an image centered on the user's location. It uses video data decoded according to the user's location and gaze, or creates a virtual view / composite video around the user and The image can be rendered.
  • Figure 21 shows the 6 DoF space.
  • a concept as shown in FIG. 21 may be used to describe and perform signaling for a 6 DoF space before or after projection.
  • 6DoF space is a 360 video or 3DoF space that can be described as yaw, pitch, and roll, and the direction of movement can be divided into two types: rational and translation.
  • the rational movement can be described as a yaw, pitch, or roll, as described for the direction of the existing 3DoF as a, and may also be called an orientation movement.
  • the translation movement it can be called a movement of the position as b. It can tell where the axis has moved in the left / right (Left / Right), forward / backward, and up / down directions.Describes the value of one or more axes to describe the movement of the central axis. can do.
  • the features of the present invention can be utilized in the invention for future 6DoF related metadata and signaling extension by proposing an architecture for 6DoF video service and streaming, and proposing basic metadata for a signaling and file storage method.
  • Metadata generated for each process can be extended.
  • -6DoF video metadata can be stored and signaled through SEI or VUI of 6DoF video stream by adding / modifying / extending based on the proposed metadata.
  • Region may refer to a region where 360 video data projected on a 2D image is located in a packed frame through region-wise packing. .
  • the region may mean a region used in packing by region according to context. As described above, regions may be divided evenly by dividing the 2D image, or may be arbitrarily divided by a projection scheme or the like.
  • Region (general meaning, region): Unlike the region in the region-specific packing described above, the term region may be used as a dictionary meaning. In this case, the region may have a dictionary meaning of 'area', 'area', 'partial', and the like. For example, when referring to a region of a face to be described later, an expression such as “a region of the corresponding face” may be used. In this case, the region has a meaning different from the region in the above-described region-specific packing, and both may indicate different regions, which are independent of each other.
  • Picture may refer to the entire 2D image in which 360 video data is projected. Depending on the embodiment, a projected frame or a packed frame may be a picture.
  • the sub-picture may mean a part of the above-described picture.
  • a picture may be divided into several sub-pictures to perform tiling or the like.
  • each sub-picture may be a tile.
  • an operation of reconstructing tiles or MCTS into a picture form compatible with existing HEVC may be referred to as MCTS extraction.
  • the result of this MCTS extraction may be an original tile or a sub-picture of a picture to which MCTS belongs.
  • a sub-picture may be used as a tile for tiling. That is, in tiling, the sub-picture and the tile may have the same concept.
  • the Bondi tile may be a tool for enabling parallel decoding, or may be a tool for independent decoding in VR.
  • a tile may mean a Motion Constrained Tile Set (MCTS) that limits the range of temporal inter prediction to the current tile inner range.
  • MCTS Motion Constrained Tile Set
  • the Spherical region or the Sphere region is a region on a spherical surface when 360 video data is rendered on a 3D space (for example, a spherical surface) at the receiving side.
  • the superior region is independent of the region in packing by region. That is, it is not necessary for the Superior Region to mean the same region as the Region defined in Regional Packaging.
  • the Superior Region is a term used to mean a portion of a spherical surface to be rendered, where “Region” may mean “region” as a dictionary meaning. Depending on the context, the Superior Region may simply be called the Region.
  • Face may be a term that refers to each face according to a projection scheme. For example, when cubemap projection is used, the front, back, sides, top, bottom, etc. may be called a face.
  • FIG. 22 shows the structure of a pre-encoder according to embodiments of the present invention.
  • the pre-encoder includes a Pruning (22001), a patch packing processor (22004), and / or an encoder (Encoder, 22005). Further, pruning (22001) includes a target view prediction processor (22002) and / or a prediction error processor (22003). In this specification, the pre-encoder may be referred to as a video transmission device.
  • Pruning (22001) is a source picture of a texture picture or depth picture, target viewing position information and / or viewing positions of an anchor viewing position. (Source pictures of viewing positions).
  • the target viewing position information and source pictures of viewing positions can be received through metadata or signaling information.
  • Pruning 22001 includes a target view prediction processor (22002) and a prediction error processor (22003).
  • the pruning 22001 may pack and transmit only the effective information area, excluding overlapping information between the images.
  • pruning 22001 provides an effect that enables efficient transmission by reducing the number of images.
  • the target view prediction processor (22002) estimates the image of the target viewing position using information related to the target target viewing position from the encoding-based image.
  • an image may be called data or a picture.
  • the base image may be an anchor view (center view).
  • the target view prediction processor 22002 receives an image (texture picture or depth picture) of the anchor viewing position and estimates the image based on the target target viewing position and / or depth information. . In addition, the target view prediction processor (22002) performs image estimation according to depth information.
  • the target viewing position may be a position related to camera location information.
  • the target view prediction processor 22002 may know the overall disparity through the target viewing position. Also, different disparities may be calculated according to objects through depth (depth) information. In addition, the target view prediction processor 22002 may use / generate additional information to increase the accuracy of image estimation.
  • the prediction error processor (22003) calculates the difference between the source pictures (or original image) of the predicted picture (s) and viewing positions.
  • the prediction error processor 22003 finds a location where an error may occur, and provides information about an error-prone region (error-prone region map) through a difference between the estimated image and the original image.
  • the purpose of the prediction error processor 22003 is to regard information that can be estimated through the base image as redundant information, and to transmit other information. Due to this, the receiver has an effect of efficiently reproducing images at each time point by receiving only necessary information.
  • the prediction error processor 22003 may generate information that can replace information of a location where an error may occur in the receiver. In addition, only information that cannot be estimated by the receiver or information in which errors are significantly generated may be transmitted to the receiver.
  • the prediction error processor 22003 detects a hole in a picture or a prediction error in a picture, thereby increasing the data transmission efficiency of the transmitting end.
  • the patch packing processor (22004) performs patch packing on an error-prone region picture based on an error-prone region map.
  • the patch packing processor 22004 reconstructs a compact image using information that cannot be estimated by a receiver or information that causes errors.
  • a patch for each viewing position can be collected to make each image, or a patch corresponding to several viewing positions can be collected as one.
  • the encoder (Encoder, 22005) encodes packed patches and outputs them as a bitstream. Encoder 22005 may encode the packed patches based on the texture or depth of the anchor viewing position.
  • Anchor view means an image that is the basis for pre-encoding.
  • the anchor view 22006 may be a center view.
  • the video transmission apparatus according to embodiments of the present invention generates an estimated image based on a target viewing position based on the anchor view 22006, estimates an error based on the original image for the viewing positions, and is required by the receiver To deliver only the information, the patches are packed, encoded, and transmitted.
  • Predicted pictures represent an image generated by the target view prediction processor (Target view prediction processor, 22002). Predicted pictures 22007 may include holes.
  • the predicted pictures 22007 may be composed of 24 views.
  • the number of views can be adjusted according to embodiments of the present invention.
  • An example of performing prediction with 24 views will be described.
  • the target view prediction processor 22002 may estimate 24 views (v0 to v23) for the target viewing position from the image or picture (s) for the anchor view. Also, holes may be generated according to image estimation.
  • Prediction error processed pictures indicate a difference between the original image and the estimated image.
  • the prediction error processor 22003 calculates the difference (error) between source pictures of viewing positions, for example, 24 original views and predicted pictures (24 estimated views), as described above, and subtracked pictures. Field 22008.
  • a patched picture (22009) is a picture showing subtracted pictures 22008 in units of patches.
  • a meaningful region included in the subtracted pictures 22008 for 24 views may be distinguished in units of patches.
  • Packed patches (22010) are patches in which a patch packing processor 22004 packs a patched picture. Packed patches can be created for 24 views.
  • a packed patch (packed patch, all in one, 22011) is a patch in which a patch packing processor 22004 packs a patched picture, and may be packed in all in one, not patches for each of 24 views. .
  • a target view prediction processor (22002), a prediction error processor (22003), and a patch packing processor (22004) are target view prediction, respectively. It can be referred to as a controller, prediction error controller, patch packing controller, or the like.
  • a video transmission apparatus that predicts a picture for a target viewing position based on a target viewing position information from a texture picture or a depth picture of an anchor viewing position );
  • An error-prone region map is generated based on a prediction error controller, a predicted picture and a source picture, which handles prediction errors for the predicted picture based on the source picture of the target viewing position;
  • a patch packing controller for patch packing a prediction error processed picture based on an error-front region map;
  • an encoder that encodes the packed patch based on a texture picture or a depth picture in an anchor viewing position. It includes.
  • FIG. 23 shows a target view prediction process according to embodiments of the present invention.
  • the target view prediction processing includes target view depth layering (23000), background disparity prediction (23001), depth layer object disparity prediction (23002), and / Or Predicted picture generation (23003).
  • the target view prediction processing classifies the texture layer of the anchor viewing position or the depth layer of the depth picture based on at least one of the target viewing position information, the depth of the anchor viewing position, or the depth of the target viewing position (Target view depth layering), Prediction is performed based on the depth of the anchor viewing position and the depth of the target viewing position, and the prediction depth picture for the target viewing position is generated by integrating the predicted depth layer (Picture generation).
  • Target view prediction processing includes anchor view picture including texture and / or depth, source view picture including texture and / or depth, and / or target viewing position information. position information).
  • the target view prediction processing may generate a prediction picture by predicting a picture for a target viewing position based on the received data, and generate disparity adjustment metadata by adjusting disparity. .
  • the specific process is as follows.
  • Target view depth layering receives a picture 23004 for an anchor viewing position.
  • the picture for the anchor viewing position includes texture and / or depth.
  • the picture 23004 for the anchor viewing position may refer to a stitched picture as shown in FIG. 10.
  • the target view depth layering 23000 receives the target viewing position information, the anchor viewing position depth, and the target viewing position depth.
  • the target view depth layering 23000 separates a picture according to depth using an anchor view depth and a target view depth. Objects for a picture may be separated according to depth. Depending on the depth, a background of a picture and objects of different depth layers may be classified. Furthermore, the depth layer may be further subdivided to distinguish the correct layer.
  • the target view depth layering 23000 may classify (or create) n depth layer objects including a background.
  • information on the depth layer may be generated in the form of metadata.
  • the predictions 23001 and 23002 include a background disparity prediction (23001) and / or n-th depth layer object disparity prediction (23002).
  • the predictions 23001 and 23002 perform prediction for a picture using a separated depth layer.
  • the predictions 23001 and 23002 estimate the object disparity of each depth layer using the generated depth layer using the target viewing position information, the original picture of the target viewing position, the depth of the anchor viewing position, and the depth of the target viewing position. Diction).
  • the predictions 23001 and 23002 are performed based on depth information of an anchor view and / or position information of a target view. By comparing the original view's original texture and depth with the anchor view's texture and depth, if correction of the anchor view's texture and depth is required, disparity adjustment metadata or depth layer metadata is used. Can be created.
  • the background disparity prediction 23001 estimates (predicts) the background based on viewing orientation and / or location information.
  • the n-th depth layer object disparity prediction 23002 estimates (prediction) the object disparity with respect to the generated n-th depth layer.
  • the -th depth layer object disparity prediction 23002 may predict the disparity using depth map and / or local MV information.
  • the predicted picture generation 23003 combines predicted data according to different depth layers to generate a final prediction picture (or image). If the area obscured on the anchor view is the area visible in the target view, a hole is created.
  • Anchor view 23004 represents a picture (or image) for the anchor view.
  • Anchor view 23004 may include texture and / or depth.
  • the anchor view 23004 is input to the target view depth layering 23000.
  • Prediction picture 23005 represents data generated by prediction picture generation 23003.
  • Prediction picture 23005 may include a plurality of pictures.
  • the prediction picture 23005 may be composed of 24 views.
  • the prediction picture 23005 may include a hole due to a difference in area between the anchor view and the target view.
  • the target view prediction processing generates a prediction picture 23005 for the target viewing position.
  • disparity adjustment metadata and depth layer metadata may be generated.
  • the disparity prediction process if the correction between the target viewing position and the anchor viewing position is needed, the metadata needs to be corrected, the depth, the XY correction value, and when there are multiple depth layers, the depth of each depth layer corresponding to the depth, the total depth. It may include the number of layers.
  • the receiver according to embodiments of the present invention may perform a target view prediction process using such metadata in a decoder post-processing process. Since the operation of the receiver according to the embodiments of the present invention follows the reverse process of the transmitter according to the embodiments of the present invention, the target view prediction process performed by the encoder pre-processing of the transmitter is received. The transmitter transmits signaling information to the receiver so that it can be implemented.
  • the target view prediction controller of the video transmission apparatus may be based on at least one of a target viewing position information, an anchor viewing position depth, or a target viewing position depth texture picture or depth picture of the anchor viewing position.
  • Target depth layering (Target view depth layering)
  • the depth layer is separated (Prediction)
  • the prediction depth layer is integrated to target the target viewing position Create a prediction picture for (Picture generation).
  • Prediction error processing prediction error detection (24000), Estimation error detection (estimation error detection, 24001), occlusion error detection (occlusion error detection, 24002), error-prone region detection (error-prone) region detection, 24003), error-prone region map post-processing (24004), and / or error-prone region picture generation (24005).
  • Prediction error detection receives an estimated (prediction) picture for a viewing position.
  • the viewing position may be a target viewing position.
  • Prediction error detection 24000 receives the original picture of the viewing position.
  • the original picture of the viewing position may be a source picture of the viewing position.
  • the prediction error detection 24000 subtracts the original picture and the prediction picture to obtain a prediction error for a viewing position. Prediction errors may be referred to as subtracted pictures.
  • Estimation error detection (24001) receives prediction errors (subtracted pictures). Estimation error detection 24001 obtains an estimation error from the prediction error. The estimation error detection 24001 acquires an estimation error using a threadhole method. Estimation error detection 24001 generates an emulation error map representing the emulation error.
  • the occlusion error detection (24002) receives prediction errors (subtracted pictures).
  • the occlusion error detection 24002 obtains an occlusion error based on the prediction error. For example, information in the original picture and not in the prediction picture may be detected as an occlusion error.
  • the occlusion error detection 24002 generates an occlusion error map representing the occlusion error.
  • the error-prone region detection (24003) detects an error-prone region based on an emulation error map and / or an occlusion error map. For example, the error-front region detection 24003 merges the inherent data picture through the error-front region detection or merges or blacks an empty pixel. Can do The error-front region detection 24003 can generate an error-front region map representing the error-front region.
  • Error-prone region map post-processing (24004) receives an error-prone region map.
  • the error-front region map post-processing performs post-processing to enhance the error-front region map. For example, it is possible to add a guard band to the error-front region map.
  • the error-front region map post-processing 24004 can generate an error-front region map and generate supplementary error-front region metadata.
  • Error-prone region picture generation (24005) receives an enhanced error-prone region map.
  • the error-front region picture generation 24005 receives the original picture in the viewing position.
  • the error-front region picture generation generates an error-front region picture based on the post-processed error-front region map and / or the original picture.
  • the predicted picture 24006 represents a picture (image or data) input to the prediction error detection 24000.
  • Prediction picture 24006 includes a hole.
  • the hole means a hole created due to prediction.
  • the predicted picture 24006 may include 24 views from v0 to v23.
  • the subtracted picture 24007 represents an error picture generated by prediction error detection 24000. For example, it is an error picture generated by subtracting a predicted picture from a source picture (original picture).
  • Prediction error processing processes an unpredictable region from an anchor view picture through target view prediction.
  • the input data of the prediction error processing includes a predicted picture (texture, depth) including texture and / or depth and / or a source view picture including texture and / or depth. (texture, depth)).
  • the output data of prediction error processing may include error-prone region picture, error-prone region map and / or supplemental error-prone region metadata. error-prone region metadata).
  • Prediction error detection estimates an error caused by target view prediction. For example, an error (error picture) is estimated by subtracting a predicted picture from the original picture.
  • the error picture of the n-th viewing position is estimated as follows.
  • the estimated picture of the n-th viewing position is subtracted from the source view picture of the n-th viewing position.
  • Estimation error detection (24001) can estimate information through an anchor view picture, but detects a part with poor accuracy.
  • a prediction error may be detected through a threshold.
  • the minimum threshold is intended to include errors of a certain degree or more as prediction errors.
  • the maximum threshold is intended to distinguish occlusion errors.
  • the prediction error map serves as an indicator having a value only for a location with a prediction error.
  • the occlusion error detection (24002) detects a portion in which information cannot be estimated through an anchor view picture.
  • the occlusion error map acts as an indicator having a value only for the location where it is determined that an occlusion error has occurred.
  • the error-prone region detection (24003) can be classified into an error of an error and an occlusion error of each type of error.
  • the estimation error carries residual data
  • the occlusion error is substitutable data that can fill the hole with the original data. Can deliver.
  • compression efficiency may be reduced due to different characteristics of residual data composed of high-frequency components and occlusion data mainly composed of relatively low-frequency components.
  • embodiments of the present invention use a method of selecting a large error error, and transmitting a replaceable information such as an occlusion error.
  • Compression codec By reflecting the characteristics of, you can compose an image with real data, 2) reduce the complexity of patch configuration, and 3) reduce the number of codecs. In addition, there is an effect that a codec for residual data is not required.
  • the part having a value of 0 indicates that there is no error, and indicates that information estimated through target view prediction can be used, and a part other than 0 (such as 1 or max) This indicates that it is an area where errors can occur (prediction error, occlusion error, etc.), and it may indicate that information estimated through target view prediction is not used or additional processing is required.
  • an extended pixel width is transmitted through dilation, or guard band position and size information, and an error ) May be delivered (eg, an error of estimation or an error of occlusion).
  • Error-prone region map post-processing (24004) improves the accuracy of the error-prone region or prevents additional errors that may occur during compression.
  • -Post-processing for error-prone region maps For example, it can be processed to add a guard band to the periphery of the error-prone region, and the error-prone region can be fixed in the same way as dilation. I can expand it.
  • the added area information may be transmitted through a post-processing process (e.g., pixel width) or may be transmitted without a separate indicator.
  • the error-prone region picture generation (24005) is an original image that replaces a region in which unpredictable or estimated error is large based on the previously generated error-prone region map (eg For example, an image may be configured with original picture or source view picture information.
  • the error-prone region map may be transmitted directly to the receiver, or may be generated by analogy through an error-prone region picture.
  • Prediction error controller of prediction error processing detects a prediction error based on a source picture (Prediction error detection), and the prediction error is a source It is estimated by subtracting a prediction picture from a picture, and obtaining an estimation error based on a threshold value from an error picture corresponding to the prediction error (Estimation error detection), and for the estimation error.
  • an estimation error map including location information obtain an occlusion error based on a hole from a prediction error (Occlusion error detection), and include location information for the occlusion error Create an occlusion error map, and write down either the Estimation Error Map or the Occlusion Error Map Based on one, an error-prone region related to a prediction for a target viewing position is detected, and an error-prone region map including location information for an error-occurring region is generated, Adds a guard band to the error-prone region map, or post-processing to extend the error-prone region map (error-prone region map post-processing), based on the error-prone region map and the source picture to the error-prone region. Generate related pictures (Error-region picture generation) ,.
  • the prediction error controller of the video transmission apparatus detects a prediction error based on the source picture, and the prediction error is the source picture. It is estimated by subtracting the prediction picture from, and obtaining an estimation error based on a threshold value from an error picture corresponding to the prediction error (Estimation error detection), Create an estimation error map including location information, obtain an occlusion error based on a hole from a prediction error (Occlusion error detection), and include location information for the occlusion error To generate an occlusion error map.
  • 25 illustrates prediction error processing according to embodiments of the present invention.
  • Prediction error processing includes estimation error detection (25000), occlusion error detection (25001), data classification (25002), and estimation region detection (estimation region detection). 25003), Estimation error substitution (25004), error-prone region map processing (25005) and / or error-prone region picture generation (error-prone region picture generation, 25006).
  • Estimation error detection (25000) receives a predicted picture of a target viewing position (predicted picture) and a source picture of the target viewing position (original picture of target viewing position or original picture).
  • Estimation error detection 25000 detects a prediction error between the estimated picture and the original picture.
  • Estimation error detection 25000 generates a subtracted picture of the target viewing position.
  • a specific method for detecting an error of estimation is as described above with reference to FIG. 24. For example, a subtracted picture for a viewing position may be generated through a difference between an original picture and a prediction picture.
  • the occlusion error detection (25001) detects an occlusion error from a predicted picture.
  • the occlusion error detection 25001 generates an occlusion region map indicating location information of the occlusion error.
  • the specific occlusion error detection 25001 is as described above in FIG. 24.
  • Data classification (25002) receives a subtracted picture of a target viewing position.
  • the data recipe 25002 receives the occlusion region map.
  • the data classification 25002 classifies inherent data (original picture or source picture) and estimation error based on the occlusion region map and the subtracted picture.
  • the data classification 25002 generates a classified estimation error picture (or estimation error picture).
  • the data classification 25002 classifies types of errors by combining prediction errors and occlusion errors.
  • the data classification 25002 generates an inherent data picture of the occlusion region for the classified occlusion error (original picture or source picture).
  • the estimation region detection (25003) receives an estimation error picture (estimation error picture).
  • the stratum error region detection 25003 detects a region of stratum error. A method of detecting a specific region of the estimation error is as described above in FIG. 24. For example, through threshold or thresholding, it is possible to indicate a region in which an emulation error has occurred.
  • Estimation error region detection 25003 generates an error-prone region map indicating information about a region in which an error may occur.
  • Estimation error substitution (25004) receives an error-front region map. For example, if the error error substation 25004 has a large error value, the large error is replaced with the inherent data. Estimation error substition 25004 creates an inherited data picture of the error-prone region.
  • Error-prone region map processing (25005) receives the occlusion region map.
  • Error-front region map processing 25005 receives an error-front region map.
  • Error-front region map processing 25005 increases the accuracy of the error-front region.
  • the error-front region map processing 25005 prevents additional errors that may occur during encoding or compression.
  • a specific error-front region map processing method is as described above in the error-front region map post-processing of FIG.
  • the error-prone region picture generation (25006) receives an inherent data picture of the occlusion region.
  • the error-front region picture generation 25006 receives an error-front region's inherent data picture and / or an error-front region map.
  • the error-front region picture generation 25006 generates an error-front region picture.
  • a specific error-front region picture generation method is as described above in FIG.
  • Prediction error processing is a process for processing an unpredictable region from an anchor view picture through a target view prediction process.
  • the input data of prediction error processing is a predicted picture (texture, depth) including texture and / or depth, and a source view picture including texture and / or depth.
  • the outputs of prediction error processing are error-front region pictures, error-front region maps, and / or supplemental error-front region metadata.
  • the prediction error detection 25000 of FIG. 25, the occlusion error detection 25001, the error-front region detection 25003, the error-front region picture generation 25006, and the error-front region map processing 25005 are shown in FIG. It may correspond to the content described in.
  • the data classification 25002 synthesizes prediction errors and occlusion errors, and classifies data related to errors according to types of errors.
  • the substation 25004 may transmit a difference value for a prediction error in the video transmission apparatus according to embodiments of the present invention. Furthermore, in order to reduce the type of image data, the video transmission apparatus according to embodiments of the present invention may transmit original image information on prediction errors. For example, if the prediction error is too large, and it is more inefficient to transmit the difference value, the video transmission apparatus according to embodiments of the present invention may replace the information by transmitting the original image information.
  • the prediction error controller of prediction error processing detects a prediction error based on a source picture of a target viewing position and a prediction picture of a target viewing position (estimation error). detection), generating a subtracted picture of the target viewing position, detecting an occlusion error from the predicted picture, generating an occlusion region map indicating the occlusion error, and subtracting the picture and Based on the occlusion region map, classify the types of errors including prediction errors and occlusion errors (data classification), and detect the region of prediction errors for the prediction pictures based on the pictures for the prediction errors. And generate an error-front region map that indicates the region of prediction error.
  • 26 illustrates patch packing processing according to embodiments of the present invention.
  • Patch packing processing includes region clustering (26000), patch generation (26001), patch generation post-processing (26002), and / or patch packing (26003). do.
  • Region clustering (26000) receives an error-prone region picture.
  • Region clustering 26000 receives an error-prone region map.
  • the region clustering 26000 groups (or clusters) regions (regions) of the error-front region picture based on the error-front region map.
  • Region clustering 26000 groups regions (regions) of error-front region pictures to generate a clustering map. For example, region clustering may be performed through a manual mode, or neighbor search included in the error-front region picture may be clustered.
  • the patch generation 26001 receives an error-prone region picture.
  • the patch generation 26001 receives the original picture of the target viewing position.
  • the patch generation 26001 receives a clustering map.
  • the patch generation 26001 generates patch (s) of the original picture for the error-front region based on the error-front region picture, the original picture, and the clustering map.
  • the shape of the patch may be a shape such as a rectangular or vertex.
  • the shape of the patch according to embodiments of the present invention can be variously set.
  • Patch generation post-processing (26002) receives patch (s) (patches of original picture for the error-prone region).
  • Patch generation post-processing 26002 receives the original picture of the target viewing position.
  • Patch generation post-processing 26002 receives the clustering map.
  • Patch generation post-processing 26002 creates patch (s) with a guard region based on the patch, original picture and / or clustering map (patches with guard region). For example, patch generation post-processing 26002 fills in the empty spaces in the rectangular patch with pixels of the original picture.
  • the patch generation post-processing 26002 may generate a guard band (X pixel width from the patch boundary) corresponding to a certain patch width from the patch boundary.
  • the patch generation post-processing 26002 may be optionally performed.
  • Patch packing (26003) receives patches of the original picture for the error-prone region or patches with a guard region To receive.
  • the patch packing 2603 creates a packed picture of patches with a guard region based on the received patch.
  • patch packing No. 26003 creates a packed picture of patches.
  • the patch packing 2603 generates packing metadata including signaling information related to patch packing.
  • the data of the patch packing processing according to the embodiments of the present invention are as follows.
  • the error-prone region picture (26004) is input data of patch packing processing. For example, data for a total of 24 views (v0 to v23) may be input.
  • the error-front region picture 2604 corresponds to the subtracted picture described above.
  • the error-front region picture 26604 is a picture generated due to a difference between an original picture and a predicted picture.
  • Patches (26005) are patches generated by patch generation 2605. For example, when there are data for a total of 24 views (v0 to v23), patches including regions (regions) containing meaningful data for each data for each view may be generated. The shaded area included in the error-front region picture is meaningless data, and the region containing the meaningful data is included in the patch.
  • Packed patches (26006) are packed patches created by patch packing 2603. For example, the patches generated for data (v0 to v23) for a total of 24 views are packed. Packed patches may include a guard region created by patch generation post-processing 26060. A guard region between each packed patch can be included.
  • a packed patch (all in one), 26007, is a packed patch created by patch packing 26003.
  • one patch can be packed by gathering the patches generated for data (v0 to v23) for a total of 24 views into one (all in one).
  • the packing process is a process for efficiently transmitting information in an unpredictable area. Since this process removes the information-free area of the entire image, the size of the image to be delivered is reduced, or the total number of images to be delivered is reduced, thereby reducing the amount of data to be delivered.
  • Region clustering is a process of grouping regions to be transmitted among error-prone region pictures generated through prediction error processing.
  • each pixel that is indicated in the error-prone region map can be delivered, but in this case, each pixel is indicated ( indication), the efficiency of data transmission decreases because the maximum amount of information increases. Therefore, a grouping process is required to bundle and transmit related information.
  • the user may directly create a group, and when the adjacent pixels in space are effective pixels, a method of grouping the groups may be used.
  • pixels belonging to a plurality of groups are displayed through a region clustering map, and all effective pixels in an error-prone region are groups of a region clustering map. Should be included in either.
  • the patch generation (26001) selects an area to be transmitted among error-prone region pictures generated through prediction error processing and configures each as a patch It is a process.
  • the gray portion is an area without data, and is included as a rectangular area including a portion with an effective pixel.
  • the reason for using the rectangular region is to inform the receiver of the location of the packed patch and to efficiently use the required patch in the receiver.
  • it is compact by using a patch of arbitrary shape or by using a patch region of various shapes promised in advance. You can also configure patches.
  • Patch generation post-processing (26002) is a post-processing process for the generated patch. For example, by filling empty spaces in a patch with original picture data, operations required for prediction at the receiver can be reduced, and / or patch packing and encoding / In order to prevent errors that may occur due to decoding (encoding / decoding), it is possible to perform a task of generating a guard band of a patch.
  • Patch packing is a process of constructing one or more images of a previously generated patch and generating information about each patch.
  • image only patches for each viewing position can be collected to form each image, or patches for multiple viewing positions can be collected to form one image. You may.
  • Packing metadata includes information needed for unpacking, the size, location, and adjusted information of the patch (resize, rotation, flip, etc.), original Position, size, guard band information, and type of error (estimation error / occlusion error) in the image may be transmitted.
  • a pruning process including target view prediction processing 22002 and prediction error processing 22001 may be an optional mode.
  • the patch packing controller of the video transmission apparatus clusters regions that distinguish error-prone region pictures of prediction error-processed pictures based on error-provision maps. Region clustering, generating a clustering map representing a region, and generating a patch from the error-front region picture based on a source picture and a clustering map (patch generation), and using the patch one or one Create the above picture (patch packing).
  • FIG. 27 shows the architecture of an encoder of a video transmission apparatus and a decoder of a video reception apparatus according to embodiments of the present invention.
  • the encoder of the video transmission apparatus performs rotation / projection (27000), preprocessing (27001), and / or encoding (27002).
  • Rotation / projection 27000 receives multiple spherical video / images (texture / depth) including textures and / or depths. Rotation / projection 27000 rotates and / or projects multiple special video / images to produce a projected picture that includes texture and / or depth. The rotation / projection 27000 generates projection parameters including signaling information related to the projection process.
  • the preprocessing 27001 receives the projected picture.
  • preprocessing 27001 includes inter-view redundancy removal, and / or packing.
  • the inter-view redundancy remover removes redundancy between adjacent pictures among multiple projected pictures. Packing packs multiple projected pictures into pictures.
  • the preprocessing 27001 generates preprocessing metadata including signaling information related to preprocessing.
  • Encoding 27002 receives a packed picture. Encoding 27002 receives preprocessing metadata. Encoding 27002 receives projection parameters. Encoding 27002 encodes a packed picture based on preprocessing metadata and / or projection parameters. The encoded data is transmitted to the video receiving apparatus through a server in the form of a bitstream.
  • the encoder of Figure 27 corresponds to the pre-encoder of Figure 22 and can be combined.
  • the decoder of the video receiving device performs decoding (27003), view reconstruction (27004), view synthesis (27005), and rendering / viewport generation (27006).
  • Decoding 27003 receives a bitstream from a video transmission device through a server. Decoding 27003 receives the viewing position and / or viewport information. Viewing position and / or viewport information may be transmitted in a bitstream. The viewing position and / or viewport information may be received as feedback information at the receiving end separately from the bitstream. Decoding 27003 decodes the data included in the bitstream to generate a packed picture. Decoding 27003 decodes data included in the bitstream to generate reconstruction parameters. Decoding 27003 decodes data included in the bitstream to generate view synthesis parameters.
  • the view reconstruction 27004 receives the packed picture.
  • the view reconstruction 27004 generates (reconstructs) a picture including texture and / or depth from a packed picture based on the reconstruction parameter.
  • View reconstruction 27004 receives the viewing position and / or viewport information.
  • Viewing position and / or viewport information may be transmitted in a bitstream.
  • the viewing position and / or viewport information may be received as feedback information at the receiving end separately from the bitstream.
  • the view reconstruction 27004 may reconstruct the picture based on the viewing position and / or viewport information.
  • View synthesis 27005 receives a picture including texture and / or depth. View synthesis 27005 receives view synthesis parameters. The view synthesis 27005 generates a picture for the target viewing position based on the view synthesis parameter from the received picture. The picture for the target viewing position includes a texture. View synthesis 27005 receives viewing position and / or viewport information. Viewing position and / or viewport information may be transmitted in a bitstream. The viewing position and / or viewport information may be received as feedback information at the receiving end separately from the bitstream. The view synthesis 27005 may newly resize a picture (texture) for the target viewing position based on the viewing position and / or viewport information.
  • Rendering / viewport generation 27006 receives a picture (texture) for the target viewing position.
  • the render / viewport generation 27006 receives the viewing position and / or viewport information. Viewing position and / or viewport information may be transmitted in a bitstream. The viewing position and / or viewport information may be received as feedback information at the receiving end separately from the bitstream.
  • the render / viewport generation 27006 renders a picture (texture) for the target viewing position, and creates a picture (texture) for the target viewport.
  • Rendering / viewport generation 27006 generates a picture (texture) for the target viewport based on the viewing position and / or viewport information. The picture (texture) for the target viewport is displayed.
  • the video transmission apparatus (encoder) according to the embodiments of the present invention may perform the following operations.
  • Viewing volume generation (28000) acquires 360 video data for an arbitrary multi-view from a target scene.
  • the viewing volume generation can receive the information of the god in the form of a CG graphic, and generate a viewing volume in consideration of the 3D space for the god.
  • multiple spherical videos including texture and depth are generated.
  • a scene refers to an image obtained from a camera
  • CG refers to an image obtained through pre-processing such as computer graphics.
  • the viewing volume generation creates viewing space parameters related to the viewing volume.
  • the viewing volume refers to a space supporting 3DoF +. It shows the process of synthesizing a virtual view image in a 3D space and processing the synthesized image into a 3DoF + image through processing such as computer graphics rather than using the image captured by the camera.
  • Virtual camera capturing (28001) may perform virtual camera capturing in order to generate a multi-sphere for each viewing position. Virtual camera capture information may be generated based on the viewing volume. Virtual camera capturing can be selectively performed.
  • Projected texture / depth generation for each viewing position (28002) generates a projected picture that includes texture / depth for each viewing position, and views synthesis parameters for synthesizing the projected picture. To create.
  • Inter-view redundancy removal (28003) removes inter-view redundancy for a projected picture to generate a picture including texture and depth.
  • the inter-view redundancy remover generates an optimal picture in consideration of a patch and a residual for a texture, and generates a reconstruction parameter for reconstructing the picture.
  • Packing (Packing, 28004) generates a packed picture by packing a plurality of pictures, and generates packing metadata related to the packing of the picture.
  • Encoding (28005) encodes a packed picture.
  • the encoding encodes data included in the picture based on the viewing space parameters, view synthesis parameters, reconstruction parameters, and / or packing metadata generated in the above-described operation.
  • Data encoded through a server is transmitted from a video transmission device (encoder) to a video reception device (decoder) in the form of a bitstream.
  • a video transmission device encoder
  • a video reception device decoder
  • viewing position information and / or viewport information may be transmitted together.
  • Each operation of the video transmission device described above may be performed by a viewing volume generator, a virtual camera capturer, a projector, an inter-view redundancy remover, a packing unit, an encoder, and the like included in the video transmission device.
  • the video transmission apparatus may perform the following operations.
  • Virtual camera capturing (28006) receives computer generated graphic data to generate multi-spherical data for each viewing position. Virtual camera capturing generates multiple spherical videos including texture and depth, and a viewing space parameter related to the multiple spherical video.
  • Rotation / projection (28007) generates projected pictures by rotating and / or projecting a plurality of spherical videos including dexterity and depth. Also, view synthesis parameters for view synthesis of pictures are generated.
  • Inter-view redundancy removal (28008) removes redundancy between views for a projected picture.
  • the inter-view redundancy remover generates a picture in which redundancy between views optimized for patch / residual (texture) is removed, and reconstruction parameters for reconstructing the picture.
  • Packing 28009 packs a plurality of pictures to generate an optimal picture. Packing generates packing metadata to indicate a packed picture.
  • Encoding (28010) encodes a packed picture.
  • the encoding encodes data included in the packed picture based on the viewing space parameter, view synthesis parameter, reconstruction parameter, and / or packing metadata generated in the above-described operation.
  • Data encoded through a server is transmitted from a video transmission device (encoder) to a video reception device (decoder) in the form of a bitstream.
  • a video transmission device encoder
  • a video reception device decoder
  • viewing position information and / or viewport information may be transmitted together.
  • Each operation of the video transmission apparatus described above may be performed by a virtual camera capturer, a rotator / projector, an inter-view redundancy remover, a packing unit, an encoder, and the like.
  • 29 shows a specific architecture of a decoder according to embodiments of the present invention.
  • the video receiving apparatus (decoder) according to the embodiments of the present invention may perform the following operations.
  • the video receiving device may receive data from the video transmitting device.
  • Decoding decodes data included in the bitstream. Decoding decodes data to generate a packed picture, and unpacking metadata for unpacking a packed picture from data contained in a bitstream, reconstruction parameters for reconstructing a picture, and synthesizing views for pictures For creating view synthesis parameters.
  • Unpacking (29001) generates a plurality of pictures by unpacking one or more packed pictures.
  • the unpacked pictures are pictures including texture and depth, and are optimized pictures in terms of patch / residual (texture). Unpacking unpacks a packed picture based on unpacking metadata.
  • View generation creates a view for unpacked pictures. View generation creates a view from the picture based on the reconstruction parameters.
  • View synthesis (29003) receives pictures including the generated view, and generates a picture for a texture based on a target viewing position. View Synthesis creates (composites) a picture based on view synthesis parameters.
  • Rendering / viewport generation (29004) generates a viewport for a synthesized view, and renders a picture for a texture based on a target viewport.
  • the display displays a picture for the target viewport.
  • Each operation of the video receiving apparatus described above may additionally use viewing position information and / or viewport information received from an encoder and / or feedback information received from a display unit.
  • Each operation of the video receiving apparatus described above may be performed by a decoder, an unpacking unit, a view generator, a view synthesizer, a rendering / viewport generator, or the like.
  • the video transmission apparatus and the video reception apparatus provide a 3DoF + video transmission and reception system reflecting real-time motion.
  • the video transmission method and the video reception method according to embodiments of the present invention can reduce the burden on the receiver and reduce the latency of the receiver.
  • the view estimation and reconstruction process removes redundancy between viewpoints.
  • 3D prediction & patch and 2D prediction & patch can be used.
  • pictures having different textures, depths, and patches of multiple viewing positions may be packed to generate a picture having an optimal or minimum size with high coding efficiency.
  • a layered patch can be used, which provides the effect of simultaneously processing view generation and view synthesis.
  • an image for changing the viewpoint of the low delay may be generated.
  • MCTS can be used to group and process the same viewing direction.
  • the video transmission method and the video reception method may generate a multi-view 3DoF + image.
  • the view synthesizer is robust to the view generation error, so that the performance of the view synthesizer can be improved.
  • the view synthesizer is viewport dependent and can be integrated with a renderer to optimize the performance of the view synthesizer.
  • the video transmitting apparatus and the video receiving apparatus may generate and use the following metadata.
  • Un-packing metadata includes configuration information about decoding.
  • Decoding generates configuration information about the configuration of the decoded picture as unpacking metadata while decoding the data.
  • the unpacking metadata includes attribute information related to the dexture, patch, residual, depth, and overlay included in the picture.
  • Unpacking metadata includes attribute information for each part of the packed picture, information about which viewing position each part of the packed picture corresponds to, and to which position each part of the packed picture corresponds to the projected picture. Contains information about.
  • the unpacking metadata may include spatial scaling, transformation, brightness scaling information, and the like for the decoded picture.
  • a reconstruction parameter may be used.
  • View generation creates a texture or a picture including a texture by combining textures, patches, and residuals after unpacking.
  • the reconstruction parameter includes information related to a combination of texture, patch, and residual for view synthesis of pictures.
  • the reconstruction parameter includes information related to view emulation.
  • the reconstruction parameter includes information related to which viewing position (s) texture and depth are used for prediction, and information indicating a method of view emulation (for example, view synthesizer method, 3D prediction) , Type information such as 2D prediction).
  • 3D prediction refers to a method of reprojecting a picture in 3D space.
  • 2D prediction refers to a method of performing motion estimation of a picture on a projection format.
  • the reconstruction parameter may include information indicating a method of processing a patch / residual.
  • View synthesis synthesizes a view using a signal (or information) for each viewing position of a picture including texture and depth, so a view synthesis parameter is required.
  • the view synthesis parameter may include information indicating the texture and depth of the video, and information about the current video.
  • information about the current video may mean a viewpoint and a viewing position.
  • the view synthesis parameter may include information about a moveable video. For example, it may mean available viewpoints and viewing space information.
  • the view synthesis parameters include information indicating the position of the source viewing position, information indicating the existence of the depth, information indicating the range of the near / far of the depth, and the presence of the reconstructed view. It may include information for view synthesis, such as information indicating whether or not, information indicating quality, information indicating resolution, and information indicating camera parameters.
  • the above-described metadata may be variously named as signaling information, first signaling information, and first information in this specification.
  • An encoder (transmitter) may signal the following metadata.
  • prediction error processing and target view prediction processing may be signaled through a target depth regeneration information SEI message.
  • metadata related to a method of generating a patch and / or residual may be signaled.
  • signaling information indicating which prediction is performed by using texture / depth of the viewing position (s) (viewing position (s)), and how to view Whether to perform view estimation e.g., view synthesizer method
  • 3D prediction reprojection in 3D space (eg warping to viewing position B)
  • 2D prediction motion estimation in projection format (eg, object / viewing direction-based motion estimation)).
  • patch packing may be signaled through a multiview region-wise packing SEI message.
  • signaling information indicating how a patched picture is constructed, and what attributes each part is (for example, texture, patch, residual, depth, overlay, etc. (texture, patch, residual, depth) , overlay)), signaling information indicating to which viewing position each part belongs, signaling information indicating where each part is in an encoded picture, spatial scaling
  • signaling information indicating (spatial scaling), transformation (transformation), brightness scaling (scaling), and the like.
  • information about the entire image may be signaled through a viewing position information SEI message or a head motion information SEI message.
  • video texture signaling information indicating depth
  • signaling information indicating information about a current video viewpoint, viewing position
  • signaling indicating information about movable video available viewpoints, viewing space
  • signaling information indicating view synthesis parameters source viewing position position, depth existence, depth near / far range, reconstruced view, quality, resolution, camera parameter
  • view synthesis There may be signaling information indicating specialized information.
  • FIG 30 illustrates metadata related to prediction error processing and target view prediction processing according to embodiments of the present invention.
  • Metadata related to prediction error processing and target view prediction processing may be signaled through a texture depth regeneration information SEI message semantics.
  • the texture depth regeneration information provides information enabling regeneration of textures and depth pictures for viewing positions derived from pictures from a viewing area or partial area and other viewing positions
  • the texture depth regeneration information SEI message provides information to enable regeneration of the texture and depth pictures for a viewing positions derived from pictures from other viewing positions and partial region or information from the viewing position.
  • texture_depth_regeneration_info_id contains an identifying number used to identify the purpose of view regeneration.
  • the value of the Texture Depth Regeneration Info ID can be used to indicate different use cases of this SEI message to support the abilities of other receivers (contains an identifying number that may be used to identify the purpose of view regeneration.
  • the value of texture_depth_regeneration_info_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, etc.).
  • this view regeneration information SEI message indicates that the information is represented by other values of the view regeneration info ID when it has one or more values of the view regeneration info ID. It is also alternative information that is provided for different purposes, different components, such as textures, depths, or is a continuation of the correction.
  • view_regeneration_info_id When more than one view regeneration information SEI message is present with the same value of view_regeneration_info_id, the content of these view regeneration information SEI messages shall be the same.
  • view regeneration information SEI messages are present that have more than one value of view_regeneration_info_id, this may indicate that the information indicated by the different values of view_regeneration_info_id are alternatives that are provided for different purposes, for different component (such as texture, depth, etc) or that a cascading of correction.
  • the value of view_regeneration_info_id shall be in the range of 0 to 2 ⁇ 12-1, inclusive.).
  • texture_depth_regeneration_info_cancel_flag 1
  • Texture_depth_regeneration_info_cancel_flag 0 indicates that texture depth regeneration information follows.
  • texture_depth_regeneration_info_persistence_flag specifies the persistence of the texture depth regeneration information SEI message for the current layer. (Specifies the persistence of the texture depth regeneration information SEI message for the current layer.).
  • texture depth view regeneration info persistence flag 0 indicates that the texture depth regeneration information applies only to current decoded pictures (texture_depth_view_regeneration_info_persistence_flag equal to 0 specifies that the texture depth regeneration information applies to the current decoded picture only).
  • the texture depth regeneration info persistence flag is 1, the texture depth regeneration information SEI message continues for the current layer as an output order until the next conditions become true.
  • PicOrderCnt (picB) is greater than PicOrderCnt (picA).
  • PicOrderCnt (picB) and PicOrderCnt (picA) are the PicOrderCntVal values of Picture A and Picture B, respectively, and immediately after the information of the decoding process for picture order count of Picture B (Let picA be the current picture.
  • Texture_depth_regeneration_info_persistence_flag 1 specifies that the texture depth regeneration information SEI message persists for the current layer in output order until any of the following conditions are true:
  • num_texture_depth_regeneration_minus1 is signaling information indicating the number of pictures regenerated by the SEI message (plus 1 specifies the number of pictures which are to be regenerated by the SEI message.)
  • regenerated_view_id is signaling information indicating the number of head positions or viewing positions in the regeneration process. This value should be one of pre-defined information identifying the number of viewing positions of 3DoF + described in the same SEI message or another SEI message (specifies the i-th identifying number of the viewing position or head position of the regeneration process. be one of the pre-defined identifying number of a viewing positions of a 3DoF + video specified in the same or in the other SEI message, such as mrwp_view_id specified in the multiview region-wise packing SEI message.)
  • view_location_x [i], view_location_y [i] and view_location_z [i] indicate the location of the viewing position in minus 16th millimeter units of 2, respectively.
  • the range of view location X [i], view location y [i], and view location z [i] ranges from -32 768 * 2 ⁇ 16-1 (ie, -2 147 483 647) to 32 768 * 2 ⁇ 16 (ie, 2 147 483 648).
  • view_location_x [i], view_location_y [i] and view_location_z [i ] shall be in the range of -32 768 * 2 ⁇ 16-1 (ie, -2 147 483 647) to 32 768 * 2 ⁇ 16 (ie, 2 147 483 648), inclusive.)
  • view_rotation_yaw [i], view_rotation_pitch [i], and view_rotation_roll [i] denote yaw, pitch, and mid-roll rotation angles, respectively.
  • This information is applied to the spear unit of the viewing position head position related to view_location_x [i], view_location_y [i] and view_location_z [i] in minus 16th powers of 2 to convert the local coordinate axis to the global coordinate axis.
  • view_rotation_yaw [i] shall be in the range of -180 * 2 ⁇ 16 (ie, -11 796 480) to 180 * 2 ⁇ 16-1 (ie , 11 796 479), inclusive
  • the value of view_rotation_pitch [i] shall be in the range of -90 * 2 ⁇ 16 (ie, -5 898 240) to 90 * 2 ⁇ 16 (ie, 5 898 240), inclusive
  • the value of view_rotation_roll [i] shall be in the range of -180 * 2 ⁇ 16 (ie, -11 796 480) to 180 * 2 ⁇ 16-1 (ie
  • num_components [i] specifies the number of the components that are related to the i-th view.
  • regenerated_component_id [i] [j] specifies the identifying number of the j-th component of the i-th viewing position or head position of the regeneration process.This value should be one of the pre-defined identifying number of a component that belongs to a viewing positions of a 3DoF + video specified in the same or in the other SEI message, such as mrwp_component_id specified in the multiview region-wise packing SEI message.
  • picture_width [i] [j] and picture_height [i] [j] indicate the width and height of each picture regenerated corresponding to the j-th component of the head position or the i-th viewing position for the picture sample unit (specify The width of height, respectively, of the picture that is to be regenerated that is corresponding to the j-th component of the i-th viewing position or head position, in relative projected picture sample units.
  • the values of picture_width and picture_height shall both be greater than 0.
  • projection_type [i] [j] represents the type of projection used to generate a projected picture from a 360 sphere (specifies the type of the projection used in generating the projected picture from a 360 sphere.) If this value has 0 , Indicates that the projection type is unspecified. When this value is 1, it represents an equirectangular projection. If this value is 2, it represents the cube map projection. If this value is 3 to 15, it represents the future use.
  • jection_type [i] [j] 0 indicates the type of the projection is unspecified.
  • projection_type [i] [j] 1 indicates the equirectangular projection.
  • projection_type [ i] [j] 2 indicates the cube map projection.projection_type [i] [j] from 3 to 15, inclusive, are reserved for future use.
  • component_type [i] [j] specifies the type of the i-th component. If this value has 0, the type of this component is unspecified. If this value is 1, it represents a video or texture component. If this value has 2, it represents the depth map. If this value has 3, it represents the alpha channel. If the pixel value is 1, the texture picture value is not transparent at the corresponding pixel location. If the pixel value is 0, the texture picture value is transparent at the corresponding pixel location. If this value has 4, it indicates an indication map for userability indication. If the pixel value is 1, the value of the texture or depth picture at the corresponding pixel location is used for the occlusion enhancement process.
  • the value of the pixel is 1, the value of the texture or depth picture in the corresponding pixel location is not used for the occlusion enhancement process. If this value has 5, it indicates overlay. If this value has 6 to 15, it indicates the future use (component_type [i] [j] equal to 0 indicates the type of the component is unspecified.
  • Component_type [i] [j] 1 indicates the component is a video or texture component component_type [i] [j] equal to 2 indicates the component is a depth map.component_type [i] [j] equal to 3 indicates the component is an alpha channel.When the value of a pixel equals to 1, the value in component_type [i] [j] equal to 4 indicates the component is a texture picture at the corresponding pixel location is not transparent.When the value of a pixel equals to 0, the value in a texture picture at the corresponding pixel location is transparent.
  • An indication map for usability indication when the value of a pixel equals to 1, the value in a texture or depth picture at the corresponding pixel location is used for occlusion enhancement process.When the value of a pixel equals to 1, the value in a texture or depth picture at the corresponding pixel location is not used for occlusion enhancement process.
  • component_type [i] [j] equal to 5 indicates the component is a overlay.
  • component_type [i] [j] from 6 to 15, inclusive, are reserved for future use. )
  • depth_near [i] and depth_far [i] respectively specify the minimum and maximum distances for objects of the i component from the image plane in minus 16-degree units of 2 (specifies the minimum and maximum distances from the image plane to objects of the i-th component, in units of 2 ⁇ -16 degrees, respectively.)
  • texture_depth_regeneration_info_flag [i] When texture_depth_regeneration_info_flag [i] is 1, it indicates information for the texture depth regeneration process of the i-th component. If this value is 0, it indicates that information for the texture depth regeneration process of the i-th component is not provided (equal to 1 indicate that the information for texture depth regeneration process of the i-th component. Texture_depth_regeneration_flag [i] equal to 0 indicate that the information for texture depth regeneration process of the i-th picture is not provided.)
  • reserved_zero_7bits [i] is 0 and other values for reserved zero 7bit [i] are used for future use. Decoders shall ignore the value of reserved_zero_7bits [i]. Decoders shall ignore the value of this field (shall be equal to 0 and other values for reserved_zero_7bits [i] are reserved for future use.)
  • merging_flag [i] is 1, it indicates that information for the merging module in the texture depth generation process of the i-th component is in this SEI message. If the merging flag is 0, it indicates that information for the merging module in the texture depth generation process of the i-th component is not present in this SEI message (equal to 1 indicate the information for the merging module in the texture depth generation process of the i-th component is present in this SEI message.merging_flag [i] equal to 0 indicate the information for the merging module in the texture depth generation process of the i-th component is not present in this SEI message.)
  • hole_filling_flag [i] has a value of 1, it indicates that information for the hole filling module in the text depth generation process of the i-th component is present in this SEI message. If this field has a value of 0, it indicates that information for the hole filling module in the text depth generation process of the second component is not present in this SEI message (equal to 1 indicate the information for the hole filling module in the texture depth generation process of the i-th component is present in this SEI message.merging_flag [i] equal to 0 indicate the information for the hole filling module in the texture depth generation process of the i-th component is not present in this SEI message. )
  • crack_removal_flag [i] When crack_removal_flag [i] has a value of 1, it indicates that information for the crack removal module in the texture depth generation process of the i-th component is present in this SEI message. If the value of this field is 0, it indicates that information for the crack remover module in the texture depth generation process of the second component is not present in this SEI message (equal to 1 indicate the information for the crack removal module in the texture depth generation process of the i-th component is present in this SEI message.crack_removal_flag [i] equal to 0 indicate the information for the crack removal module in the texture depth generation process of the i-th component is not present in this SEI message.)
  • occlusion_enh_flag [i] When occlusion_enh_flag [i] has a value of 1, it indicates that information for the occlusion enhancement module in the texture depth generation process of the i-th component is present in the SEI message. If the value of this field is 0, it indicates that information for the occlusion enhancement module in the texture depth generation process of the second component is not present in the SEI message (equal to 1 indicate the information for the occlusion enhancement module in the texture depth generation process of the i-th component is present in this SEI message.
  • occlusion_enh_flag [i] equal to 0 indicate the information for the occlusion enhancement module in the texture depth generation process of the i-th component is not present in this SEI message.
  • reserved_zero_4bits [i] is 0, and other values for reserved_zero_4bits [i] can be used for the future user. Decoders shall ignore the value of reserved_zero_4bits [i]. Decoders shall ignore the value of reserved_zero_4bits [i].
  • num_ref_views_minus1 [i] plus 1 indicates the number of reference views used for the texture depth regeneration process (plus 1 specifies the number of reference views that are used for texture depth regeneration process.)
  • ref_view_id [i] [j] Indicates the number of viewing positions of the j-th reference picture used to emulate the i-th component (regeneration, reconstruction, or prediction). This value is one of the pre-defined identification numbers for the viewing position of my described 3DoF + video, such as mrwp_view_id described in the same or different SEI message, multiview region-wise packing SEI message.
  • ref_component_id [i] [j] Specifies the number of jth components in the reference viewing position or head position used to estimate, regenerate, reconstruct, or predict the i th component.
  • This component should be one of the pre-defined identifying number of a component that belongs to a viewing positions of a 3DoF + video specified in the same or in the other SEI message, such as mrwp_component_id specified in the multiview region-wise packing SEI message.
  • hor_min_fov [i] [j] hor_max_fov [i] [j]
  • ver_min_fov [i] [j] and ver_max_fov [i] [j]
  • global_offset_x_axis [i] [j] global_offset_y_axis [i] [j]
  • global_offset_z_axis [i] [j] are the negative 16th power units of 2, in the x, y, z axis direction, i th of the view to be regenerated Specify the offset between the location of the j-th component of a reference view from the i-th component of a view to be regenerated, in the direction of the x , y, z-axis, in the units of 2 ⁇ -16 meters.
  • num_depth_levels_minus1 [i] [j] plus 1 specifies the number of depth levels in the j-th component of the reference view for regeneration of the i-th view (plus 1 specifies the number of depth levels in the j-th component of the reference view for the regeneration of the i-th view.)
  • num_angular_levels_minus1 [i] [j] [k] plus 1 represents the number of angular levels to provide ankular of the kth depth level of the jth component of the reference view for the regeneration of the ith view (plus 1 specifies the number of anglular levels to provide angular of the k-th depth level of the j-th component of the reference view for the regeneration of the i-th view.)
  • weight_depth_level [i] [j] [k] [l] The lth angular region of the kth depth level of the reference picture used to estimate (regeneration, reconstruction, or prediction) the jth reference view of the ith component It represents the weight factor of
  • the pixel values of the target region are weighted min of the pixel values corresponding to the pixel location in regions of the reference pictures. Is calculated by Here, the weighting value for the k-th reference picture is given by weight_depth_level [i] [j] [k].
  • the weight is assumed to be the same as the circle (specifies the weight factor of the l-th algular region of k-th depth level of a reference picture that is used to estimate (to regenerate, to reconstruct, or to predict) the j-th reference view for the i-th component.
  • the value of num_depth_levels_minus1 [i] [j] and num_angular_levels_minus1 [i] [j] [k] are greater than zero, the pixel values of the target region is calculated by the weighted mean of the pixel values in the corresponding pixel location in the regions of the reference pictures, where the weighting value for the k-th reference picture is given by weight_depth_level [i] [j] [k] .
  • hole_filling_process_type [i] specifies the type of hole filling filter used for the texture depth regeneration process.
  • num_coeffs_minus1 [i] specifies the number of coefficients of the hole filling process (specifies the number of coefficients of the hole filling process.)
  • hole_filling_coeff [i] [j] represents the value of the filter copeant in minus 16 powers of 2.
  • the value of this field ranges from -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 2 ⁇ 16 (ie, 2147483648) (specifies the value of the filter coefficient in the units of 2 ⁇ - 16.
  • the value of hole_filling_coeff [i] [j] shall be in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • crack_removal_process_type [i] specifies the type of crack removal process used for the texture depth regeneration process.
  • num_coeffs_minus1 [i] Specifies the number of coefficients of the crack removal process.
  • crack_removal_process_coeff [i] [j] represents the value of the filter copeant in minus 16 powers of 2. The value of this field ranges from -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648) (includes) (specifies the value of the filter coefficient in the units of 2 ⁇ -16.
  • the value of crack_removal_process_coeff [i] [j] shall be in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • num_patched_blocks [i] specifies the number of patches which are to be used for the view regeneration of the i-th component.
  • regenerated_picture_top_left_index_x [i] [j] is the jth component of the i-th block of the regenerated picture.
  • (xy) pixel location of the bottom-right corner in luma samples is the jth component of the i-th block of the regenerated picture.
  • regenerated_picture_top_left_index_x [i] [j] regenerated_picture_top_left_index_y [i] [j]
  • regenerated_picture_bottom_right_index_x [i] [j] regenerated_picture_bottom_right_index_y [i] [j]
  • regenerated_picture_bottom_right_index_y [i] [j] shall be in the range of 0 to 65 535, inclusive.
  • patch_view_id Indicates the head position of the regeneration process or the i-th identification number of the viewing pony.
  • This value is one of the pre-define identification numbers of the viewing positions of the 3DoF + video described in the same or different SEI message.
  • mrwp_view_id described in a multiview region-wise packing SEI message
  • This value should be one of the pre-defined identifying number of a viewing positions of a 3DoF + video specified in the same or in the other SEI message, such as mrwp_view_id specified in the multiview region-wise packing SEI message.
  • patch_component_id represents the i-th identification number of the component in the head position or viewing position of the regeneration process.
  • This value is one of the pre-defined identification numbers of the components belonging to the viewing positions of the 3DoF + video described in the same or different SEI message, such as mrwp_component_id described in the multiview region-wise packing SEI message (specifies the i-th Identifying number of a component of a viewing position or head position of the regeneration process.
  • This value should be one of the pre-defined identifying number of a component that belongs to a viewing positions of a 3DoF + video specified in the same or in the other SEI message, such as mrwp_component_id specified in the multiview region-wise packing SEI message.
  • patch_top_left_index_x [i] [j] patch_top_left_index_y [i] [j] [j]
  • patch_bottom_right_index_x [i] [j] patch_bottom_right_index_y [i] [j] are the top of the j-th patch block for the i-th component in units of luma samples- Represents the (x, y) pixel location of the left and bottom-right corners.
  • the values of patch_top_left_index_x [i] [j], patch_top_left_index_y [ i] [j], patch_bottom_right_index_x [i] [j], and patch_bottom_right_index_y [i] [j] shall be in the range of 0 to 65 535, inclusive.
  • 31 and 32 show metadata related to patch packing according to embodiments of the present invention.
  • Metadata related to patch packing may be included, for example, in a multiview region-wise packing SEI message.
  • the multiview region-wise packing SEI message provides information about the size and location of the guard bands, as well as information enabling remapping of color samples of cropped and decoded pictures on projected pictures (The multiview region- wise packing SEI message provides information to enable remapping of the color samples of the cropped decoded pictures onto projected pictures as well as information on the location and size of the guard bands, if any.)
  • multiview_regionwise_packing_id contains the identification number used to identify the purpose of multiview region-wise packing.
  • the value of multiview_regionwise_packing_id indicates different uses of this SEI message to support different receiver capabilities or to indicate sub-pictures that can be used to construct a panoramic image, a multiview image, or a multi-viewpoint image, spear image, etc.
  • the value of multiview_regionwise_packing_id may be used to indicate the different use cases of this SEI message, to support different receiver, which can be used to identify cases (contains an identifying number that may be used to identify the purpose of the multiview region-wise packing. capabilities, or to indicate sub-pictures which could be used to construct sphere image, panoramic image, multiview image, or multi-viewpoint image, etc.)
  • multiview region-wise packing SEI message exists with the same value as multiview_regionwise_packing_id, the content of this multiview regionwise packing SEI message is the same.
  • the multiview regionwise packing SEI message has one or more values of multiview_regionwise_packing_id, it is possible that information indicated by different values in multiview_regionwise_packing_id is a sequential order in which the cascade of the projection or projection is sequential order (depending on the application, the order can be described) ), Or alternatives used for other purposes.
  • multiview region-wise packing SEI message When more than one multiview region-wise packing SEI message is present with the same value of multiview_regionwise_packing_id, the content of these multiview regionwise packing SEI messages shall be the same.
  • multiview regionwise packing SEI messages are present that have more than one value of multiview_regionwise_packing_id, this may indicate that the information indicated by the different values of multiview_regionwise_packing_id are alternatives that are provided for different purposes or that a cascading of correction or projection is to be applied in a sequential order (an order might be specified depending on the application) .
  • the value of multiview_regionwise_packing_id shall be in the range of 0 to 2 ⁇ 12-1, inclusive.
  • multiview_regionwise_packing_cancel_flag has a value of 1, it indicates that the multiview region-wise packing SEI message cancels the persistence of the previous multiview region-wise packing SEI message in the output order applied to the current layer. Equal to 1 indicates that the multiview region-wise packing SEI message cancels the persistence of any previous multiview region-wise packing SEI message in output order that applies to the multiview_regionwise_packing_cancel_flag is 0 current layer.Multiview_regionwise_packing_cancel_flag equal to 0 indicates that multiview region-wise packing information follows.)
  • multiview_regionwise_packing_persistence_flag indicates the persistence of a multiview region-wise packing SEI message for the current layer. If multiview_regionwise_packing_persistence_flag is 0, it indicates that the Carrera lens information is applied only to the current decoded picture.
  • constituent_picture_matching_flag 1
  • the projected region information, packed region information, and guard band region information in this SEI message are applied to each constitutive picture respectively, and the packed picture and the left picture of the project are frame packing arrangement SEI message It has the same stereoscopic frame packing format as indicated by. If constituent_picture_matching_flag is 0, the projected region information, packed region information, and guard band region information in this SEI message are applied to the projected picture.
  • packing_format_matching_between_views_flag 1
  • packing_format_matching_between_views_flag 0 specifies that the different projection format is used for each viewing position.
  • num_view_minus1 plus 1 indicates the number of view or head positions concierged in the SEI message (plus 1 specifies the number of view or head position considered in the SEI message.)
  • mrwp_view_id Contains the identification number used to identify the view or head position.
  • the value of mrwp_view_id [i] can be used to indicate the i-th view or head position.
  • mrwp_view_id [i] can be used to indicate one or multiple regions for a specific purpose. For example, indications of sub-pictures corresponding to the head location according to the head motion parallax, indications of a sub-picture pair supporting the binaural disparity of the head location, etc.
  • mrwp_view_id [i] may be used to indicate the i-th view or head position.
  • mrwp_view_id [i] could be used to indicate one or multiple regions for specific purposes, eg, indication of sub-pictures corresponding to a head location that causes head motion parallax, or indication of sub-picture pair supporting binocular disparity of a head location, etc.
  • mrwp_anchor_view_flag 1
  • 1 indicate that the i-th view or head position with the i-th mrwp_view_id is the anchor (or center or representative) view or head position.
  • mrwp_anchor_view_flag 0 indicate that the i-th view or head position is periperal view or head position.
  • mrwp_view_independent_rotation_flag 1
  • mrwp_view_independent_rotation_flag 0
  • mrwp_view_independent_rotation_flag equal to 0 indicate that the rotation of the i-th view or head position is identical to the rotation of the center or anchor view or head position.
  • mrwp_all_components_in_one_packedregion_flag 1
  • mrwp_exclusive_packing_flag 0
  • mrwp_exclusive_packing_flag 0 indicate that the packed regions that corresponds to the i-th view or head position are not packed within a rectangular region.
  • mrwp_reserved_zero_5bits is 0, and other values for mrwp_reserved_zero_5bits [i] are reserved for future use. Decoders shall ignore the value of mrwp_reserved_zero_5bits [i].)
  • mrwp_location_anchor_view_x [i] indicates the location of the head position related to mrwp_view_id [i] in 2 minus 16th millimeter units.
  • the range of mrwp_location_anchor_view_x [i], mrwp_location_anchor_view_y [i] and mrwp_location_anchor_view_z [i] exists in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648) (included) (indicate the location of head position related to mrwp_view_id [i] in the units of 2 ⁇ -16 millimeters.
  • the range of mrwp_location_anchor_view_x [i], mrwp_location_anchor_view_y [i] and mrwp_location_anchor_view_z [i] shall be in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • mrwp_rotation_anchor_view_yaw [i] mrwp_rotation_anchor_view_pitch [i]
  • mrwp_rotation_anchor_view_roll [i] represent yaw, pitch, and roll rotation angles, respectively. This is applied to convert the local coordinate axis to the global coordinate axis in units of minus 16 powers of 2 in the unit sphere of the head positions related to mrwp_view_id [i], mrwp_location_anchor_view_x [i], mrwp_location_anchor_view_y [i], and mrwp_location_anchor_view_y [i]. .
  • mrwp_rotation_anchor_view_yaw [i] corresponds to -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479) (included).
  • the value of mrwp_rotation_anchor_view_pitch [i] ranges from -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240) (included).
  • mrwp_rotation_anchor_view_roll [i] ranges from -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479) (included).
  • mrwp_rotation_anchor_view_yaw [i] can be used to indicate azimuth, elevation, and tilt (indicate the yaw, pitch, and roll rotation angles, respectively, that is applied to the unit sphere of head position related to mrwp_view_id [i], mrwp_location_anchor_view_x [i], mrwp_location_anchor_view_y [i], and mrwp_location_anchor_view_z [i] to convert the local coordinate axes to the global coordinate axes, in units of 2 ⁇ -16 degrees.
  • mrwp_rotation_anchor_view_yaw [i] shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive
  • the value of mrwp_rotation_anchor_view_pitch [i] shall be in the range of -90 * 2 ⁇ 16 (ie, -5898240) to 90 * 2 ⁇ 16 (ie, 5898240), inclusive
  • the value of mrwp_rotation_anchor_view_roll [i] shall be in the range of -180 * 2 ⁇ 16 ( ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), in clusive.mrwp_rotation_anchor_view_yaw [i], mrwp_rotation_anchor_view_pitch [i], and mrwp_rotation_anchor_view _roll [
  • mrwp_location_diff_x [i] denotes the location of the i-th view or head position relative to the view of the anchor view or the location of the head position in minus 16th millimeters.
  • the (x, y, z) location of the i-th view is calculated by adding mrwp_location_anchor_view_x [i], mrwp_location_anchor_view_y [i], mrwp_location_diff_y [i], and mrwp_location_anchor_view_z [i] and mrwp_location_anchor_view_z [i] and mrwp_location_diff_z [] respectively have.
  • the range of mrwp_location_diff_x [i], mrwp_location_diff_y [i] and mrwp_location_diff_z [i] is in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648) (included) (indicate the location of the i-th view or head position relative to the location of the view or head position of the anchor view in the units of 2 ⁇ -16 millimeters.
  • the (x, y, z) location of the i- th view could be calculated by adding mrwp_location_anchor_view_x [i] and mrwp_location_diff_x [i], mrwp_location_anchor_view_y [i] and mrwp_location_diff_y [i], and mrwp_location_anchor_view_z [i] and
  • mrwp_rotation_diff_yaw [i] denote the yaw, pitch, and roll rotation angles of the i-th view in relation to the anchor view in units of minus 16 powers of 2 degrees, respectively.
  • the yaw, pitch, and roll rotation angles of the i-th view are mrwp_rotation_diff_yaw [i] and mrwp_rotation_anchor_view_yaw [i], mrwp_rotation_diff_pitch [i] and mrwp_rotation_anchor_view_pitch [i], and mrwp_rotation_roll_roll_roll_diff respectively It can be calculated by adding.
  • the yaw, pitch, and roll rotation angles of the i-th view relative to the global coordinate could be calculated by adding mrwp_rotation_diff_yaw [i] and mrwp_rotation_anchor_view_yaw [i], mrwp_rotation_diff_pitch [i] and mrwp_rotation_anchor_view_pitch [i], and mrwp_rotation_diff_roll
  • mrwp_rotation_diff_yaw [i] ranges from -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479) (included).
  • the value of camera_rotation_diff_pitch [i] ranges from -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240) (included).
  • mrwp_rotation_diff_roll [i] has a range of -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479) (included).
  • mrwp_rotation_diff_yaw [i] can be used to indicate azimuth, elevation, and tilt respectively
  • the value of mrwp_rotation_diff_yaw [i] shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive
  • the value of camera_rotation_diff_pitch [i] shall be in the range of -90 * 2 ⁇ 16 (ie, -5898240) to 90 * 2 ⁇ 16 (ie, 5898240), inclusive
  • the value of mrwp_rotation_diff_roll [i] shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479 ), inclusive.mr
  • num_component_minus1 [i] plus 1 indicates the number of components in the i-th view considered in the SEI message (plus 1 specifies the number of components in the i-th view considered in the SEI message.)
  • mrwp_component_id [i] [j] specifies an identifying number that may be used to identify the j-th component of the i-th view.
  • mrwp_component_type [i] [j] specifies the type of the j-th component of the i-th view (specified the type of the j-th component of the i-th view.) If mrwp_component_type [i] [j] is 0, the component type Is unspecified. If mrwp_component_type [i] [j] is 1, the component type is video component. If mrwp_component_type [i] [j] is 2, the type of component is depth map. If mrwp_component_type [i] [j] is 3, the component type is alpha channel.
  • mrwp_component_type [i] [j] 4
  • the component type is the video component of left-eye-view. If mrwp_component_type [i] [j] is 5, it is a video component of right-eye-view. If mrwp_component_type [i] [j] is 6, the component type is the video component of both-eye-view. If mrwp_component_type [i] [j] is 7, the component type is the residual video component of left-eye-view. If mrwp_component_type [i] [j] is 8, the component type is the residual video component of right-eye-view.
  • mrwp_component_type [i] [j] 9
  • the component type is the residual video component of both-eye-view. If mrwp_component_type [i] [j] is 10 to 15, the type of component is future use (mrwp_component_type [i] [j] equal to 0 indicates the type of the component is unspecified.
  • mrwp_component_type [i] [j] 1 indicates the component is a video component mrwp_component_type [i] [j] equal to 2 indicates the component is a depth map.mrwp_component_type [i] [j] equal to 3 indicates the component is an alpha channel.mrwp_component_type [i] [j] equal to 4 indicates the component is a video component of the left-eye-view.mrwp_component_type [i] [j] equal to 5 indicates the component is a video component of the right-eye-view.mrwp_component_type [i] [j] equal to 6 indicates the component is a video component of both-eye-view.mrwp_component_type [i] [j] equal to 7 indicates the component is a residual video component of the left-eye-view.mrwp_component_type [i] [j] equal to 8 indicates the component is a residual video component of the rig ht-eye-
  • mrwp_projection_type [i] [j] represents the type of projection used in the process of generating a picture projected from a 360 sphere. If mrwp_projection_type [i] [j] is 0, the projection type is unspecified. If mrwp_projection_type [i] [j] is 1, the projection type is equirectangular projection. If mrwp_projection_type [i] [j] is 2, the projection type is cube map projection.
  • mrwp_projection_type [i] [j] is 3 to 15 (inclusive), specifies the type of the projection used in generating the projected picture from a 360 sphere.
  • mrwp_projection_type [i] [j] 0 indicates the type of the projection is unspecified.
  • mrwp_projection_type [i] [j] is 1 indicates the equirectangular projection.
  • mrwp_projection_type [i] [j] equal to 2 indicates the cube map projection.mrwp_projection_type [i] [j] from 3 to 15 , inclusive, are reserved for future use.
  • mrwp_proj_picture_width [i] [j] and mrwp_proj_picture_height [i] [j] Represent the width and height of the jth component of the i-th projected picture for the projected picture sample units, respectively.
  • the values of mrwp_proj_picture_width and mrwp_proj_picture_height shall both be greater than greater than (specify the width and height, respectively, of the j-th component of the i-th projected picture, in relative projected picture sample units. 0.)
  • mrwp_coverage_horizontal [i] [j] and mrwp_coverage_vertical [i] [j] Specifies the horizontal and vertical range of coverage of the j-th component of the i-th view or the coverage of the head position in minus 16-degree units of 2 (specifies the horizontal and vertical ranges of the coverage of the j-th component of the i-th view or head position, in units of 2 ⁇ -16 degrees, respectively.)
  • depth_near [i] [j] and depth_far [i] [j] respectively indicate the minimum and maximum distance between the head position from the image plane in the unit of 2 minus 16th power and the object of the jth component of the i-th view in the image plane (specifies the minimum and maximum distances from the image plane to objects of the j-th component of the i-th view or head position, in units of 2 ⁇ -16 degrees, respectively.)
  • mrwp_rotation_component_diff_yaw [i] [j] are the minus 16th degree units of 2, respectively, and the j th component of the i th view for the reference rotation angle of the i th view Yaw, pitch, and roll rotation angle difference.
  • the yaw, pitch, and roll rotation angle of the jth component of the i-th view for the global coordinate can be calculated by adding each difference value to the reference rotation angles (indicate the yaw, pitch, and roll rotation angle difference) of the j-th component of the i-th view relative to the reference rotation angle of the i-th view in units of 2 ⁇ -16 degrees, respectively.
  • the yaw, pitch, and roll rotation angles of the j-th component of the i-th view relative to the global coordinate could be calculated by adding each difference values and the reference rotation angles, respectively.
  • the value of mrwp_rotation_component_diff_yaw [i] is -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479) (inclusive).
  • camera_rotation_component_diff_pitch [i] ranges from -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240) (included).
  • mrwp_rotation_component_diff_roll [i] ranges from -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479) (included).
  • mrwp_rotation_component_diff_yaw [i] mrwp_rotation_component_diff_pitch [i]
  • mrwp_rotation_component_diff_roll [i] can be used to indicate azimuth, elevation, and tilt, respectively
  • the value of mrwp_rotation_component_diff_yaw [i] shall be the range of 180 * 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive
  • the value of camera_rotation_component_diff_pitch [i] shall be in the range of -90 * 2 ⁇ 16 (ie, -5898240) to 90 * 2 ⁇ 16 (ie, 5898240), inclusive
  • the value of mrwp_rotation_component_diff_roll [i] shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2
  • num_packed_regions indicates the number of packed regions when constituent_picture_matching_flag is 0. The value of num_packed_regions is greater than zero. When constituent_picture_matching_flag is 1, the total number of packed regions is equal to num_packed_regions * 2. And the information in each entry of the loop entries of num_packed_regions is applied to each of the projected and packed pictures of the contiguous picture (specifies the number of packed regions when constituent_picture_matching_flag is equal to 0.
  • constituent_picture_matching_flag is equal to 1
  • the total number of packed regions is equal to num_packed_regions * 2
  • the information in each entry of the loop of num_packed_regions entries applies to each constituent picture of the projected picture and the packed picture.
  • packed_picture_width and packed_picture_height Indicates each width and height of a packed picture for packed picture sample units.
  • the values of packed_picture_width and packed_picture_height are greater than zero.
  • packed_picture_width and packed_picture_height are the requirements of the bitstream performance having values where packed_picture_width is an integer multiple of cropPicWidth and packed_picture_height is an integer multiple of cropPicHeight.
  • cropPicWidth and cropPicHeight are respectively the width and height of the cropped decoded picture (specify the width and height, respectively, of the packed picture, in relative packed picture sample units.
  • the values of packed_picture_width and packed_picture_height shall both be greater than 0. It is a requirement of bitstream conformance that packed_picture_width and packed_picture_height shall have such values that packed_picture_width is an integer multiple of cropPicWidth and packed_picture_height is an integer multiple of cropPicHeight, where cropPicWidth and cropPicHeight are the width and height, respectively, of the cropped decoded picture. )
  • num_view_id_minus1 [i] plus 1 indicates the number of view indicators that drive the i-th packed regions. num_view_id_minus1 [i] greater than 1 could represent that the i-th packed region is shared with the different views.)
  • view_idx [i] [j] Represents the j-th view indicator that describes the Pew information about the i-th packed region and the projected picture information.
  • the value of view_idx [i] [j] can match one of the values of mrwp_view_id defined in the current SEI message (specifies the j-th view indicator which describes the view information and projected picture information with regard to the i-th packed region.
  • the value of view_idx [i] [j] shall be match with one of the values of mrwp_view_id defined in the current SEI messege.
  • num_component_id_minus1 [i] [j] plus 1 represents the number of component view indicators describing the i-th packed region.
  • num_component_id_minus1 [i] [j] is greater than 1, indicating that the i-th packed region can be shared with components of the j-th view (plus 1 specifies the number of the component view indicators describing the i-th packed region.
  • num_component_id_minus1 [i] [j] greater than 1 could represent that the i-th packed region is shared amog the components of the j-th view.
  • component_idx [i] [j] [k] Represents the k-th component indicator of the j-th view that describes the projected picture's size, projection type, and component type for the i-th packed region.
  • the value of component_idx [i] [j] [k] can match one of the values of mrwp_component_id defined in the current SEI message (specifies the k-th component indicator of the j-th view which describes the component type, projection type and the size of the projected picture with regard to the i-th packed region.
  • the value of component_idx [i] [j] [k] shall be match with one of the values of mrwp_component_id defined in the current SEI messege.
  • proj_region_width [i] [j] [k] proj_region_height [i] [j] [k]
  • the projected picture represents the projected picture of the component in the viewing position indicated by component_idx and view_idx.
  • proj_region_width [i] [j] [k] proj_region_height [i] [j] [k]
  • proj_region_top [i] [j] [k] proj_region_top [i] [j] [k]
  • proj_region_left [i] [j] [k] are projected picture sample units (Specify the width, height, top sample row, and the left-most sample column, respectively, of the i-th projected region, either within the projected picture (when constituent_picture_matching_flag is equal to 0) or within the constituent picture of the projected picture (when constituent_picture_matching_flag is equal to 1) .
  • the projected picture represents the projected picture of the component of the viewing position indicated by component_idx and view_idx.proj_region_width [i] [j] [k] , proj_region_height [i] [j] [k], proj_region_top [i] [j] [k], and proj_region_left [
  • rwp_reserved_zero_4bits [i] may be 0 in the bitstream according to the version of this document.
  • Other values of rwp_reserved_zero_4bits [i] are ITU-T
  • rwp_transform_type [i] represents rotation and mirroring to be applied to the i-th packed region to remap the i-th projected region.
  • rwp_transform_type [i] indicates rotation and mirroring, and rotation is applied before mirroring.
  • the values of rwp_transform_type [i] are as follows. If rwp_transform_type [i] is 0, it indicates that there is no transformation used for the i-th packed region. If rwp_transform_type [i] is 1, it indicates horizontal mirroring for the i-th packed region. If rwp_transform_type [i] is 2, it indicates rotation by 180 degrees (anticlockwise) for the i-th packed region.
  • rwp_transform_type [i] 3
  • rwp_transform_type [i] 4
  • rwp_transform_type [i] 5
  • rwp_transform_type [i] 6
  • rwp_guard_band_flag [i] 0 indicates that the i-th packed region has no guard band.
  • rwp_guard_band_flag [i] 1 specifies that the i -th packed region has a guard band.
  • packed_region_width [i], packed_region_height [i], packed_region_top [i], and packed_region_left [i] are within region-wise packed pictures (if constituent_picture_matching_flag is 0) or within each contiguous picture of region-wise packed pictures ( constituent_picture_matching_flag is 1) indicates the width, height, tom luma sample row, and left-most luma sample column of the packed region, respectively.
  • packed_region_width [i], packed_region_height [i], packed_region_top [i], and packed_region_left [i] are identified for region-wise packed picture sample units.
  • packed_region_width [i], packed_region_height [i], packed_region_top [i], and packed_region_left [i] indicate the integer horizontal and vertical coordinates of the luma sample units in the cropped decoded picture (specify the width, height, the top luma sample row, and the left-most luma sample column, respectively, of the packed region, either within the region-wise packed picture (when constituent_picture_matching_flag is equal to 0) or within each constituent picture of the region-wise packed picture (when constituent_picture_matching_flag is equal to 1) .
  • packed_region_width [i], packed_region_height [i], packed_region_top [i], and packed_region_left [i] are indicated in relative region-wise packed picture sample units.packed_region_width [i], packed_region_height [i], packed_region_top [i], and packed_region_left [i] shall represent integer horizontal and vertical coordinates of luma sample units within the cropped decoded pictures
  • rwp_left_guard_band_width [i] represents the width of the guard band on the left side of the i-th packed region with respect to region-wise packed picture sample units.
  • chroma_format_idc is equal to 1 (4: 2: 0 chroma format) or 2 (4: 2: 2 chroma format)
  • rwp_left_guard_band_width [i] may correspond to the even number of luma samples in the cropped decoded picture ( Specifies the width of the guard band on the left side of the i-th packed region in relative region-wise packed picture sample units.
  • chroma_format_idc is equal to 1 (4: 2: 0 chroma format) or 2 (4: 2: 2 chroma format
  • rwp_left_guard_band_width [i] shall correspond to an even number of luma samples within the cropped decoded picture.
  • rwp_right_guard_band_width [i] Indicates the width of the guard band on the site of the site of the i-th packed region for region-wise packed picture sample units. If chroma_format_idc is 1 (4: 2: 0 chroma format) or 2 (4: 2: 2 chroma format), rwp_right_guard_band_width [i] may specify the even number of luma samples in the cropped decoded picture (specify the width When chroma_format_idc is equal to 1 (4: 2: 0 chroma format) or 2 (4: 2: 2 chroma format) of the guard band on the right side of the i-th packed region in relative region-wise packed picture sample units. ), rwp_right_guard_band_width [i] shall correspond to an even number of luma samples within the cropped decoded picture.)
  • rwp_top_guard_band_height [i] indicates the height of the guard band on the i-th packed region with respect to region-wise packed picture sample units. If chroma_format_idc is 1 (4: 2: 0 chroma format), rwp_top_guard_band_height [i] specifies the height of the guard band above the i-th packed region in relative region-wise packed picture sample units.When chroma_format_idc is equal to 1 (4: 2: 0 chroma format), rwp_top_guard_band_height [i] shall correspond to an even number of luma samples within the cropped decoded picture.)
  • rwp_bottom_guard_band_height [i] Indicates the height of the guard band below the i-th packed picture for region-wise packed picture sample units. If chroma_format_idc is 1 (4: 2: 0 chroma format), rwp_bottom_guard_band_height [i] specifies the height of the guard band below the i-th packed region in relative region-wise packed picture sample units.When chroma_format_idc is equal to 1 (4: 2: 0 chroma format), rwp_bottom_guard_band_height [i] shall correspond to an even number of luma samples within the cropped decoded picture.) rwp_guard_band_flag [i] is 1 If this is, rwp_left_guard_band_width [i], rwp_right_guard_band_width [i], rwp_top_guard_band_height [i], or rwp_bottom_guard_band_he
  • the i-th packed region described by the SEI message does not overlap with other packed regions described by the same SEI message or guard bands described by the same SEI message (The i-th packed region as specified by this SEI message shall not overlap with any other packed region specified by the same SEI message or any guard band specified by the same SEI message.)
  • the guard band associated with the i-th packed region described by the SEI message does not overlap with the guard region described by the same SEI message or the packed region described by the same SEI message (The guard bands associated with the i-th) packed region, if any, as specified by this SEI message shall not overlap with any packed region specified by the same SEI message or any other guard bands specified by the same SEI message.)
  • rwp_guard_band_not_used_for_pred_flag [i] it indicates that guardbands are used or not used in the inter prediction process.
  • 0 specifies that the guard bands may or may not be used in the inter prediction process.
  • rwp_guard_band_not_used_for_pred_flag [i] 1 specifies that the sample values of the guard bands are not used in the inter prediction process.
  • the contents of a packed region can be extended to a guard band with decoded and re-projected samples of a different packed region (NOTE 3 When rwp_guard_band_not_used_for_pred_flag [i] is equal to 1, within the sample values)
  • Guard bands in cropped decoded pictures can be rewritten even if the cropped decoded pictures were used as references for inter prediction of subsequent pictures to be decoded.
  • the content of a packed region can be seamlessly expanded to its guard band with decoded and re -projected samples of another packed region.
  • rwp_guard_band_type [i] [j] indicates the type of guard bands for the i-th packed region. If j is 0, 1, 2, 3, these semantics below apply to the left, white, top, or bottom edge of the packed region, respectively. If rwp_guard_band_type [i] [j] is 0, the content of guard bands related to the contents of packed regions is unspecified. If rwp_guard_band_not_used_for_pred_flag [i] is 0, rwp_guard_band_type [i] [j] is not 0.
  • rwp_guard_band_type [i] [j] the content of the guard bands is sufficient for interpolation of sample values in sub-pearl sample fractional locations less than the sample outside of the packed region and the boundary of the packed region. Note 4- If rwp_guard_band_type [i] [j] is 1, it can be used when the boundary samples of the packed region horizontally or vertically copied to the guard band are horizontally or vertically copied to the guard band. .
  • rwp_guard_band_type [i] [j] is 2
  • the contents of the guard bands are spatially adjacent to the content in the packed region, and gradually change from the picture quality of the packed region to that of the spatially adjacent packed region. It represents the actual picture content on the surface of the region packed in quality.
  • rwp_guard_band_type [i] [j] 3 indicates the type of the guard bands for the i-th packed region as follows, with j equal to 0, 1, 2, or 3 indicating that the semantics below apply to the left, right, top, or bottom edge, respectively, of the packed region: rwp_guard_band_type [i] [j] equal to 0 indicates that the content of the guard bands in relation to the content of the packed regions is unspecified.
  • rwp_guard_band_not_used_for_pred_flag [i] is equal to 0, rwp_guard_band_type [i] [j ] shall not be equal to 0.
  • rwp_guard_band_type [i] [j] 1 indicates that the content of the guard bands suffices for interpolation of sample values at sub-pel sample fractional locations within the packed region and less than one sample out side of the boundary of the packed region.NOTE 4 rwp_guard_band_type [i] [j] equal to 1 can be used when the boundary samples of a packed region have been copied horizontally or vertically to the guard band.
  • rwp_guard_band_type [i] [j] 2 indicates that the content of the guard bands represents actual picture content that is spherically adjacent to the content in the packed region and is on the surface of the packed region at a quality that gradually changes from the picture quality of the packed region to that of the spherically adjacent packed region.
  • rwp_guard_band_type [i] [j] 3 indicates that the content of the guard bands represents actual picture content that is spherically adjacent to the content in the packed region and is on the surface of the packed region at a similar picture quality as within the packed region.
  • rwp_guard_band_type [i] [j] is greater than 3
  • Decoders treat the value of rwp_guard_band_type [i] [j] as equal to 0 if it is greater than 3. (rwp_guard_band_type [i] [j] values greater than 3 are reserved for future use by ITU-T
  • rwp_guard_band_reserved_zero_3bits [i] is equal to 0 in the bitstream according to this version of this document.
  • Other values of rwp_guard_band_reserved_zero_3bits [i] are ITU-T
  • PackedRegionLeft [n] is equal to packed_region_left [n].
  • PackedRegionTop [n] is equal to packed_region_top [n].
  • PackedRegionWidth [n] is equal to packed_region_width [n].
  • PackedRegionHeight [n] is equal to packed_region_height [n].
  • o ProjRegionLeft [n] is set equal to proj_region_left [n].
  • ProjRegionTop [n] is the same as proj_region_top [n].
  • ProjRegionWidth [n] is the same as proj_region_width [n].
  • ProjRegionHeight [n] is the same as proj_region_height [n].
  • TransformType [n] is the same as rwp_transform_type [n]. (For n in the range of 0 to num_packed_regions-1, inclusive, the following applies: PackedRegionLeft [n] is set equal to packed_region_left [n] .PackedRegionTop [n] is set equal to packed_region_top [n] .PackedRegionWidth [n] is Set equal to packed_region_width [n] .PackedRegionHeight [n] is set equal to packed_region_height [n] .ProjRegionLeft [n] is set equal to proj_region_left [n] .ProjRegionTop [n] is set equal to proj_region_top [n] .ProjRegionWidth [n ] is set equal to proj_region_width [n] .Pro
  • constituent_picture_matching_flag If constituent_picture_matching_flag is 0, the following applies. (If constituent_picture_matching_flag is equal to 0, the following applies: NumPackedRegions is set equal to num_packed_regions.)
  • nIdx becomes n-NumPackedRegions / 2.
  • PackedRegionLeft [n] becomes packed_region_left [nIdx] + packedLeftOffset.
  • PackedRegionTop [n] becomes packed_region_top [nIdx] + packedTopOffset.
  • PackedRegionWidth [n] becomes packed_region_width [nIdx].
  • PackedRegionHeight [n] becomes packed_region_height [nIdx].
  • ProjRegionLeft [n] becomes proj_region_left [nIdx] + projLeftOffset.
  • ProjRegionTop [n] becomes proj_region_top [nIdx] + projTopOffset.
  • ProjRegionWidth [n] becomes proj_region_width [nIdx].
  • ProjRegionHeight [n] becomes proj_region_height [nIdx].
  • PackedRegionLeft [n] is set equal to packed_region_left [nIdx] + packedLeftOffset.
  • PackedRegionTop [n] is set equal to packed_region_top [nIdx] + packedTopOffset.
  • PackedRegionWid th [n] is set equal to packed_region_width [nIdx].
  • PackedRegionHeight [n] is set equal to packed_region_height [nIdx].
  • ProjRegionLeft [n] is set equal to proj_region_left [nIdx] + projLeftOffset.
  • ProjRegionTop [n] is set equal to proj_region_top [nIdx] + projTopOffset.
  • ProjRegionWidth [n] is set equal to proj_region_width [nIdx].
  • ProjRegionHeight [n] is set equal to proj_region_height [nIdx].
  • TransformType [n] is set equal to rwp_transform_type [nIdx].)
  • ProjRegionWidth [n] 1 to proj_picture_width, the range of inclusion.
  • ProjRegionHeight [n] is a range of 1 to proj_picture_height, inclusive.
  • ProjRegionLeft [n] is a range of 0 to proj_picture_width-1, inclusive.
  • ProjRegionTop [n] is 0 to proj_picture_height-1, the range of inclusion.
  • ProjRegionTop [n] is less than proj_picture_height / VerDiv1
  • the sum of ProjRegionTop [n] and ProjRegionHeight [n] is less than or equal to proj_picture_height / VerDiv1.
  • ProjRegionTop [n] and ProjRegionHeight [n] are less than or equal to proj_picture_height / VerDiv1 * 2 (For each value of n in the range of 0 to NumPackedRegions-1, inclusive, the values of ProjRegionWidth [n], ProjRegionHeight [n , ProjRegionTop [n], and ProjRegionLeft [n] are constrained as follows: ProjRegionWidth [n] shall be in the range of 1 to proj_picture_width, inclusive.ProjRegionHeight [n] shall be in the range of 1 to proj_picture_height, inclusive.
  • ProjRegionTop [n] shall be in the range of 0 to proj_picture_width-1, inclusive.
  • ProjRegionTop [n] shall be in the range of 0 to proj_picture_height-1, inclusive. If ProjRegionTop [n] is less than proj_picture_height / VerDiv1, the sum of ProjRegionTop [n] and ProjRegionHeight [n] shall be less than or equal to proj_picture_height / VerDiv1.Otherwise, the sum of ProjRegionTop [n] and ProjRegionHeight [n] shall be less than or equal to proj_picture_height / VerDiv1 * 2.
  • PackedRegionWidth [n] is 1 to packed_picture_width, the range of inclusion.
  • ProjRegionHeight [n] is a range of 1 to packed_picture_height, inclusive.
  • PackedRegionLeft [n] is a range of 0 to packed_picture_width-1, inclusive.
  • PackedRegionTop [n] ranges from 0 to packed_picture_height-1, inclusive.
  • PackedRegionLeft [n] is less than packed_picture_width / HorDiv1, the sum of PackedRegionLeft [n] and PackedRegionWidth [n] is less than or equal to packed_picture_width / HorDiv1.
  • the sum of PackedRegionLeft [n] and PackedRegionWidth [n] is less than or equal to packed_picture_width / HorDiv1 * 2.
  • PackedRegionTop [n] is less than packed_picture_height / VerDiv1
  • the sum of PackedRegionTop [n] and PackedRegionHeight [n] is less than or equal to packed_picture_height / VerDiv1.
  • PackedRegionTop [n] and PackedRegionHeight [n] are less than or equal to packed_picture_height / VerDiv1 * 2. If chroma_format_idc is 1 (4: 2: 0 chroma format) or 2 (4: 2: 2 chroma format), PackedRegionLeft [n] corresponds to the even horizontal coordinate value of the luma sample units, and PackedRegionWidth [n] is In the decoded picture, it corresponds to the even number of luma samples.
  • PackedRegionTop [n] corresponds to the even vertical coordinate value of luma sample units.
  • ProjRegionHeight [n] corresponds to the even number of luma samples in the decoded picture (For each value of n in the range of 0 to NumPackedRegions-1, inclusive, the values of PackedRegionWidth [n], PackedRegionHeight [n], PackedRegionTop [ n], and PackedRegionLeft [n] are constrained as follows: PackedRegionWidth [n] shall be in the range of 1 to packed_picture_width, inclusive.ProjRegionHeight [n] shall be in the range of 1 to packed_picture_height, inclusive.
  • PackedRegionTop [n] shall be in the range of 0 to packed_picture_width-1, inclusive.
  • PackedRegionTop [n] shall be in the range of 0 to packed_picture_height-1, inclusive. If PackedRegionLeft [n] is less than packed_picture_width / HorDiv1, the sum of PackedRegionLeft [n] and PackedRegionWidth [n] shall be less than or equal to packed_picture_width / HorDiv1.Otherwise, the sum of PackedRegionLeft [n] and PackedRegionWidth [n] shall be less than or equal to packed_picture_width / HorDiv1 * 2. If Pack edRegionTop [n] is less than packed_picture_height / VerDiv1, the sum of PackedRegionTop [n] and PackedRegionHeight [n] shall be less than or equal to packed_picture_height / VerDiv
  • PackedRegionTop [n] and PackedRegionHeight [n] shall be less than or equal to packed_picture_height / VerDiv1 * 2.
  • chroma_format_idc is equal to 1 (4: 2: 0 chroma format) or 2 (4: 2: 2 chroma format)
  • PackedRegionLeft [n] shall correspond to an even horizontal coordinate value of luma sample units
  • PackedRegionWidth [n] shall correspond to an even number of luma samples, both within the decoded picture.
  • PackedRegionTop [n] shall correspond to an even vertical coordinate value of luma sample units
  • ProjRegionHeight [n] shall correspond to an even number of luma samples, both within the decoded picture.
  • Metadata for the entire image may be included in, for example, a viewing position information SEI message or a head motion information SEI message.
  • the following is a description of the viewing position information SEI message.
  • the Viewing position information SEI message provides information of the viewing position and / or corresponding adjacent viewing positions of the current video corresponding to a viewpoint.
  • viewing_position_info_id includes an identification number that identifies the purpose of viewing position information.
  • the value of viewing_position_info_id can be used to indicate different use cases of this SEI message, such as to support different receiver capabilities, or to indicate different points or different levels of information contained in this SEI message. number that may be used to identify the purpose of the viewing position information.
  • the value of viewing_position_info_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, or to indicate different level of information contained in the SEI message, or different viewpoint, etc.
  • One or more viewing position information SEI messages exist with the same value of viewing_posidion_info_id.
  • the content of this viewing position information SEI message is the same. If the viewing position information SEI message has one or more values of viewing_position_info_id and exists, this is the cascading of the correction in which the information indicated by different values of viewing_posidion_info_id is applied to other purposes or sequential order (this application It may indicate the alternative provided for the order).
  • the value of viewing_posidion_info_id has a range of 0 to 2 ⁇ 12-1, inclusive (When more than one viewing position information SEI message is present with the same value of viewing_posidion_info_id, the content of these viewing position information SEI messages shall be the same.
  • viewing_posidion_info_id When viewing position information SEI messages are present that have more than one value of viewing_position_info_id, this may indicate that the information indicated by the different values of viewing_posidion_info_id are alternatives that are provided for different purposes or that a cascading of correction to be applied in a sequential order (an order might be specified depending on the application) .
  • the value of viewing_posidion_info_id shall be in the range of 0 to 2 ⁇ 12-1, inclusive.
  • viewing_position_info_cancel_flag When viewing_position_info_cancel_flag is 1, it indicates that the viewing position information SEI message cancels the persistence of the previous viewing position information SEI message in the order applied to the output current layer. equaling 1 indicates that the viewing position information SEI message cancels the persistence of any previous viewing position information SEI message in output order that applies to the current layer. viewing_position_info_cancel_flag equal to 0 indicates that viewing position information follows.
  • viewing_position_info_persistence_flag specifies the persistence of the viewing position information SEI message for the current layer.
  • viewing_position_info_persistence_flag 0 specifies that the viewing position information applies to the current decoded picture only.
  • viewing_position_info_persistence_flag 1
  • the viewing position information SEI message persists for the current layer in the output order until the following conditions are true: the new CLVS of the current layer starts. Bitstream is over.
  • PicOrderCnt PicB
  • PicOrderCnt PicB
  • PicOrderCnt PicA
  • PicOrderCnt PicB
  • PicOrderCnt PicA
  • Viewing_position_info_persistence_flag to 1 specifies A bit pic ends in A current picB in the current layer in an access unit containing a viewing position information SEI message that is applicable to the current layer is output for which PicOrderCnt (picB) is greater than PicOrderCnt (picA), where PicOrderCnt (picB) and PicOrderCnt (picA) are the PicOrderCntVal values of picB and picA, respectively, immediately after the invocation of the decoding process for the picture order count of picB.)
  • anchor_viewing_position_flag If anchor_viewing_position_flag is 1, the corresponding decoded picture can be (0,0,0) in the XYZ coordinate, or is an anchor (or center or representative) viewing position explicitly given by anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z.
  • anchor_viewing_position_flag the corresponding decoded picture is a peripheral or side or non-anchor viewing position and location, orientation, and coverage information of the anchor viewing position is given by anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z (equal to 1 indicate) that the corresponding decoded picture is the anchor (or center or representative) viewing position which could be assumed (0,0,0) in XYZ coordinate or explicitely given by anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z.
  • anchor_viewing_position_flag 0 indicate that the corresponding decoded picture is periperal or side or non-anchor viewing position and the location, orientation, and coverage information of the anchor viewing position is given by anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z)
  • the viewing_position_x, viewing_position_y, and viewing_position_z respectively indicate the (x, y, z) location of the viewing position corresponding to the decoded picture in units of 2 minus 16th millimeters.
  • the range of viewing_position_x, viewing_position_y and viewing_position_z is in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), including (indicate the (x, y, z) location of viewing position corresponding to the decoded picture in the units of 2 ⁇ -16 millimeters, respectively
  • the range of viewing_position_x, viewing_position_y and viewing_position_z shall be in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • viewing_position_x, viewing_position_y and viewing_position_z could be reprsented by absolute position in the XYZ coordinate or relateive position corresponding to the anchor location.
  • the viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll indicate yaw, pitch, and roll orientation angles in units of 2 minus 16 powers, respectively.
  • the value of viewing_orientation_yaw has a range of -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479), inclusive ,.
  • the value of viewing_orientation_pitch has a range of -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240).
  • the value of viewing_orientation_roll of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), has an inclusive range (indicate the yaw, pitch, and roll orientation angles in units of 2 ⁇ -16 degrees, repectively.
  • the value of viewing_orientation_yaw shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive
  • the value of viewing_orientation_pitch shall be in the range of -90 * 2 ⁇ 16 (ie, -5898240) to 90 * 2 ⁇ 16 (ie, 5898240), inclusive
  • the value of viewing_orientation_roll shall be in the range of -180 * 2 ⁇ 16 ( ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive.)
  • viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll can be used to indicate each of azimuth, elevation, and tilt.
  • viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll can express rotation applied to the unit sphere of the head position corresponding to the decoded picture in order to convert the local coordinate axis to the global coordinate axis, respectively (Depending on the applications, viewing_orientation_yaw, viewing_orientation_pitch , and viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll could represent the rotation that is applied to the unit sphere of head position corresponding to the decoded picture to convert the local coordinate axes to the global coordinate axes, respectively.)
  • coverage_horizontal and coverage_vertical specify the horizontal and vertical ranges of the coverage of the viewing position corresponding to the decoded, respectively. picture, in units of 2 ⁇ -16 degrees, respectively.
  • anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z respectively indicate the (XYZ) location of the anchoring viewing position of the viewing position set corresponding to the decoded picture, in units of 2 minus 16th millimeters.
  • the range of anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z has a range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), including (indicate the (x, y, z) location of anchor viewing position of a viewing position set corresponding to the decoded picture, in the units of 2 ⁇ -16 millimeters, respectively
  • the range of anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z shall be in the range of -32768 * 2 ⁇ 16-1 (ie , -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z can be assumed to be (0, 0, 0) so that the location of different viewing positions in the same viewing position set can be expressed as positions for anchor viewing positions (In some cases , anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z could be assumed to be (0, 0, 0) so that the location of other viewing positions in the same viewing position set could be represented as the position relative to the anchor viewing position.)
  • anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z can be used to indicate the viewpoint (In some applications, anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z could be used to indicate the viewpoint.)
  • anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll represent the yaw, pitch, and roll orientation angles of the spear representing the anchor viewing position, respectively, in units of 2 minus 16 powers.
  • the values of anchor_viewing_orientation_yaw range from -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479), inclusive.
  • the values of anchor_viewing_orientation_pitch range from -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240), inclusive.
  • the value of anchor_viewing_orientation_roll has a range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), including (indicate the yaw, pitch, and roll orientation angles of the sphere representing anchor viewing position in units of 2 ⁇ -16 degrees, respectively.
  • the value of anchor_viewing_orientation_yaw shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive
  • the value of anchor_viewing_orientation_pitch shall be in the range of -90 * 2 ⁇ 16 (ie, -5898240) to 90 * 2 ⁇ 16 (ie, 5898240), inclusive
  • the value of anchor_viewing_orientation_roll shall be in the range of- 180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 117964
  • anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll can be used to indicate azimuth, elevation, and tilt respectively.
  • anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll can indicate the rotation applied to the unit sphere of the anchor viewing position to convert the local coordinate axis to the global coordinate axis, respectively.
  • anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll could represent the rotation that is applied to the unit sphere of the anchor viewing position to convert the local coordinate axes to the global coordinate axes, respectively.
  • anchor_coverage_horizontal and anchor_coverage_vertical specifies the horizontal and vertical ranges of the coverage of the anchor viewing position, in units of 2 ⁇ -16 degrees, respectively. , respectively.
  • num_viewing_positions specifies the number of viewing positions related to the current viewing position.
  • set_viewing_position_x, set_viewing_position_y and set_viewing_position_z respectively indicate the i-th XYZ coordinate location of all viewing positions in the viewing position set corresponding to adjacent or decoded pictures, in units of 2 minus 16th millimeters.
  • the range of set_viewing_position_x, set_viewing_position_y and set_viewing_position_z ranges from -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), including (indicate the i-th XYZ coordinate location of the Adjacent or all viewing positions in the viewing position set corresponding to the decoded picture, in the units of 2 ⁇ -16 millimeters, respectively.
  • the range of set_viewing_position_x, set_viewing_position_y and set_viewing_position_z shall be in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • set_viewing_position_x, set_viewing_position_y and set_viewing_position_z may be expressed by a relativity position corresponding to an anchor location aligned with an expression of viewing_position_x, viewing_position_y and viewing_position_z or an absolute position in XYZ coordinates (The value of set_viewing_position_view_view_view_view_view_set_view_view_view_view_view_position_view reprsented by absolute position in the XYZ coordinate or relateive position corresponding to the anchor location, which shall be aligned with the representation of viewing_position_x, viewing_position_y and viewing_position_z.)
  • set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll denote each yaw, pitch, and roll orientation angles of the i-th viewing position in the viewing position set corresponding to the decoded picture in 2 minus 16 powers.
  • the value of set_viewing_orientation_yaw has a range of -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479).
  • the value of set_viewing_orientation_pitch has a range of -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240), inclusive.
  • the value of set_viewing_orientation_roll has a range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), including (indicate the yaw, pitch, and roll orientation angles, respectively, of the i-th viewing position in a viewing position set corresponding to the decoded picture, in units of 2 ⁇ -16 degrees.
  • the value of set_viewing_orientation_yaw shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), inclusive
  • the value of set_viewing_orientation_pitch shall be in the range of -90 * 2 ⁇ 16 (ie, -5898240) to 90 * 2 ⁇ 16 (ie, 5898240), inclusive
  • the value of set_viewing_orientation_roll shall be in the range of -180 * 2 ⁇ 16 (ie, -11796
  • set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll can be used to indicate azimuth, elevation, and tilt respectively.
  • set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll indicate the rotation applied to the unit sphere of the i-th viewing position in the viewing position set corresponding to the decoded picture to convert the local coordinate axis to the global coordinate axis (Depending on the applications, set_viewingaworation)
  • set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll could represent the rotation that is applied to the unit sphere of the i-th viewing position corresponding to the decoded picture to convert the local coordinate axes to the global coordinate axes, respectively.
  • set_coverage_horizontal and set_coverage_vertical respectively indicate the horizontal and vertical ranges of coverage of the i-th viewing position in the viewing position set corresponding to the decoded picture, in units of 2 minus 16 powers of the degree of coverage (specified the horizontal and vertical ranges of the coverage of the coverage).
  • the i-th viewing position in a viewing position set corresponding to the decoded picture in units of 2 ⁇ -16 degrees, respectively.
  • the head motion information SEI message is as follows.
  • the head motion information SEI message provides information on the head motion boundary of the current video corresponding to the viewpoint.
  • the head motion boundary or viewing space represents a 3D space of viewing positions where rendering of a view image and video is enabled and VR experience is possible.
  • the viewport can be generated by either a viewing position for an intermediate viewing position or a decoded picture of a synthesized / reconstructed picture.
  • the Head motion information SEI message provides information of the head motion Boundary of the current video corresponding to a viewpoint, where head motion boundary or viewing space represent the 3D space of viewing positions within which rendering of image and video is enabled and VR experience is valid.
  • a viewport could be generated by a decoded picture of a viewing position or a synthesized / reconstructed picture for an intermediate viewing position.
  • head_motion_info_id Represents an identification number used to identify the purpose of viewing position information.
  • the value of head_motion_info_id can be used to indicate different use cases of this SEI message to support different receiver capabilities or to indicate different view points or different levels of information contained in this SEI message (contains an identifying number that may be used to identify the purpose of the viewing position information.
  • the value of head_motion_info_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, or to indicate different level of information contained in the SEI message, or different viewpoint, etc.
  • head motion information SEI messages When one or more head motion information SEI messages exist with the same value of head_motion_info_id, the content of the head motion information SEI message is the same. If there is a head position information SEI message with a value of one or more head_motion_info_id, information indicated by different values of head_motion_info_id is provided for different purposes or a sequential order (order can be described according to this application Yes) indicates that it is an alternative that is the cascading of the collection applied to me. When the value of head_position_info_id has a range of 0 to 2 ⁇ 12-1, inclusion (When more than one head motion information SEI message is present with the same value of head_motion_info_id, the content of these head motion information SEI messages shall be the same.
  • head_position_info_id When head position information SEI messages are present that have more than one value of head_motion_info_id, this may indicate that the information indicated by the different values of head_motion_info_id are alternatives that are provided for different purposes or that a cascading of correction to be applied in a sequential order (an order might be specified depending on the application) .
  • the value of head_position_info_id shall be in the range of 0 to 2 ⁇ 12-1, inclusive.
  • head_motion_info_cancel_flag When head_motion_info_cancel_flag is 1, it indicates that the head motion information SEI message cancels the persistence of the previous head position information SEI message in the output order applied to the current layer. equal to 1 indicates that the head motion information SEI message cancels the persistence of any previous head position information SEI message in output order that applies to the current layer.head_motion_info_cancel_flag equal to 0 indicates that head motion information follows.
  • head_motion_info_persistence_flag specifies the persistence of the head motion information SEI message for the current layer (specifies the persistence of the head motion information SEI message for the current layer.) (head_motion_info_persistence_flag equal to 0 specifies that the head motion information applies to the current decoded picture only.)
  • head_motion_info_persistence_flag If picture A is a current picture, and head_motion_info_persistence_flag is 1, the head motion information SEI message is persisted for the current layer in the output order until the following conditions are true:
  • Picture B in the current layer in the access unit including the head motion information SEI message applicable to the current layer is an output for PicOrderCnt (picB) larger than PicOrderCnt (picA).
  • PicOrderCnt (picB) and PicOrderCnt (picA) are each of PicOrderCntVal values for Picture A and Picture B (after invoking of the decoding process for picture order count of Picture B)
  • Let picA be the current picture.head_motion_info_persistence_flag to 1 specifies The bitstream ends.
  • a picture picB in the current layer in an access unit containing a a that is the head motion information SEI message persists for the current layer in output order until any of the following conditions are true: head motion information SEI message that is applicable to the current layer is output for which PicOrderCnt (picB) is greater than PicOrderCnt (picA), where PicOrderCnt (picB) and PicOrderCnt (picA) are the PicOrderCntVal values of picB and picA, respectively, immediately after the invocation of the decoding process for the picture order count of picB.)
  • num_nested_boundaries_minus1 represents the number of nesting shapes of the head motion boundary.
  • the head motion boundaries are indented within the desending order of the ranges (i.e., outermost boundary to innermost boundary)
  • num_nested_boundaries_minus1 is greater than 1 , the head motion boundaries shall be informed in the descending order of the ranges, ie, from the outermost boundary to the innermost boundary.
  • head_motion_boundary_center_present_flag When head_motion_boundary_center_present_flag is 1, it indicates that the center location of the i-th head motion boundary exists in the SEI message. When head_motion_boundary_center_present_flag is 0, it indicates that the center location of the i-th head motion boundary does not exist in the SEI message. Depending on the applications, if head_motion_boundary_center_present_flag is 0, it indicates that the i-th head motion boundary center is the same as the center of the (0,0,0) or anchor viewing position in the XYZ coordinate.
  • head_motion_boundary_center_present_flag is 0, indicating that the center of the i-th head motion boundary is the same as the center of the outermost boundary (ie, the center of the 0th head motion boundary).
  • head_motion_boundary_rotation_flag is 1, it indicates that the yaw, pitch, and roll rotation of the i-th head motion boundary are present in the SEI message.
  • head_motion_boundary_rotation_flag it indicates that the yaw, pitch, and roll rotation of the i-th head motion boundary is equal to the location of the rotation of (0,0,0) or the anchor viewing position (equal to 1 indicate that the center location of the i-th head motion boundary is present in the SEI message.
  • head_motion_boundary_center_present_flag 0 indicate that the center location of the i-th head motion boundary is not present in the SEI message.
  • head_motion_boundary_center_present_flag equal to 0 could indicate that the center of the i-th head motion boundary is identical to the center of the anchor viewing postion or (0,0,0) in XYZ coordinate.
  • head_motion_boundary_center_present_flag 0 could indicate that the center of the i-th head motion boundary is identical to the center of the outermost boundary, i.e., the center of the 0-th head motion boundary.
  • head_motion_boundary_rotation_flag 1 indicate that the yaw, pitch, and roll rotation of the i-th head motion boundary is present in the SEI message.
  • head_motion_boundary_rotation_flag 0 indicate that the yaw, pitch, and roll rotation of the i-th head motion boundary is not present in the SEI message.
  • head_motion_boundary_rotation_flag 0 could indicate that the yaw, pitch, and roll roation of the i-th head motion boundary is (0, 0, 0) or identical to the rotation of the rotation of anchor viewing position.
  • the yaw, pitch, and roll rotation of the i-th head motion boundary is the yaw, pitch, and roll of the outermost boundary (i.e., the yaw, pitch, and roll of the 0th head motion boundary, respectively).
  • head_motion_boundary_rotation_flag 0 could indicate that the yaw, pitch, and roll roation of the i-th head motion boundary is identical to the yaw, pitch, and roll of the outermost boundary, ie, the yaw, pitch, and roll of the 0-th head motion boundary, respectively.
  • head_motion_boundary_asymmetric_flag Indicates that the shape of the i-th head motion boundary is not cemented to the center. If head_motion_boundary_asymmetric_flag is 0, equal to 1 indicate that the shape of the i-th head motion boundary is not symmetric in terms of the center.head_motion_boundary_asymmetric_flag equal to 0 indicate that the shape of the i-th head motion boundary is symmetric in terms of the center.)
  • head_motion_boundary_type Indicates the shape type of the head motion boundary. If head_motion_boundary_type is 0, it is unfinished. If head_motion_boundary_type is 1, it is a spear. If head_motion_boundary_type is 2, it is a paraboloid shape. If head_motion_boundary_type is 3, it is a cube. If head_motion_boundary_type is 4, it is a rectengular prism. If head_motion_boundary_type is 5, it is a spheroid. If head_motion_boundary_type is 6, it is a triaxial ellipsoid. If head_motion_boundary_type is 15, it is a shape defined by vertices.
  • head_motion_boundary_type 0
  • undefined head_motion_boundary_type 1
  • the sphere.head_motion_boundary_type 2
  • head_motion_boundary_type 3
  • the cube.head_motion_boundary_type 4
  • head_motion_boundary_type 5
  • head_motion_boundary_type 6
  • the tri-axial ellipsoid.head_motion_boundary_type 15 indicate a shape defined by vertexes.Other values of head_motion_boundary_type is preserved for future use.
  • head_motion_boundary_radius_min and head_motion_boundary_radius_max denote the minimum and maximum laces of the head motion boundary from the center of the boundary.
  • head_motion_boudnary_type not equal to 1, head_motion_boundary_radius_bound_motion_boundary_minus and head_motion_boundus )
  • head_motion_boundary_center_x, head_motion_boundary_center_y and head_motion_boundary_center_z The (x, y, z) location of the center of the i-th head motion boundary of the viewing position corresponding to the decoded picture is represented by 2 minus 16th power millimeters.
  • head_motion_boundary_x, head_motion_boundary_y and head_motion_boundary_z have a range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), including (indicate the (x, y, z) location of center of the i-th head motion boundary of the viewing position corresponding to the decoded picture in the units of 2 ⁇ -16 millimeters, respectively.
  • the head_motion_boundary_x, head_motion_boundary_y and head_motion_boundary_z shall be in the range of -32768 * 2 ⁇ 16-1 ( ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.)
  • head_motion_boundary_rotation_yaw head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll
  • the yaw, pitch, and roll rotation angles of the i-th head motion boundary shape are expressed in units of 2 minus 16-degree units, respectively.
  • the value of head_motion_boundary_rotation_yaw has a range of -180 * 2 ⁇ 16 (i.e., -11796480) to 180 * 2 ⁇ 16-1 (i.e., 11796479).
  • the value of head_motion_boundary_rotation_pitch has a range of -90 * 2 ⁇ 16 (i.e., -5898240) to 90 * 2 ⁇ 16 (i.e., 5898240).
  • the value of head_motion_boundary_rotation_roll has a range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479), including (indicate the yaw, pitch, and roll rotation angles of the i- th head motion boundary shape in units of 2 ⁇ -16 degrees, repectively.
  • the value of head_motion_boundary_rotation_yaw shall be in the range of -180 * 2 ⁇ 16 (ie, -11796480) to 180 * 2 ⁇ 16-1 (ie, 11796479 ), inclusive, the value of head_motion_boundary_rotation_pitch shall be in the range of -90 * 2 ⁇ 16 (ie, -58
  • head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll can be used to represent azimuth, elevation, and tilt, respectively.
  • head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll may represent the orientation (Depending on the applications, head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll could be used to indicate azimuth, elevation, and tilt, respectively.
  • head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll could represent the orientation.
  • head_motion_boundary_radius Indicates the radius of the i-th head motion boundary. Radius represents the distance of the outermost boundary from the center. The range of head_motion_boundary_radius is 0 to 65 536 * 2 ⁇ 16-1 (ie, 4 294 967 295), which is the range of inclusion. outermost boundary. The range of head_motion_boundary_radius shall be in the range of 0 to to 65 536 * 2 ⁇ 16-1 (ie, 4 294 967 295), inclusive.)
  • head_motion_boundary_param_alpha, head_motion_boundary_param_beta, and head_motion_boundary_z_max specify the parameter values of paraboloid shape of the i-th head motion boundary.
  • the ranges of head_motion_boundary_param_alpha, head_motion_boundary_param_beta, and head_motion_boundary_z_max shall be in the range of 0 to to 65 536 * 2 ⁇ 16-1 (i.e., 4 294 967 295), inclusive.
  • head_motion_boundary_positive_x_axis head_motion_boundary_negative_x_axis
  • head_motion_boundary_negative_y_axis head_motion_boundary_negative_y_axis
  • head_motion_boundary_positive_z_axis head_motion_boundary_negative_z_axis
  • head_motion_boundary_negative_z_axis head_motion_boundary_negative_z_axis, respectively.
  • the xyz axes are the local coordinates rotated for head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll for yaw, pitch, and roll respectively.
  • head_motion_boundary_positive_x_axis head_motion_boundary_negative_x_axis, head_motion_boundary_negative_y_axis, head_motion_boundary_negative_y_axis, head_motion_boundary_positive_z_axis, and head_motion_boundary_positive_z_axis
  • the value of the head_motion_boundary_negative_z_axis ranges from 0 to 65 94 directions of x, y, and z axis of positive and negative directions in the units of 2 ⁇ -16 millimeters, respectively, where the XYZ axises are local coordinated rotated in the amout of head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll for yaw, pitch, and roll, respectively. (i.e., 4 294 967 295), inclusive.)
  • head_motion_boundary_param_a, head_motion_boundary_param_b, and head_motion_boundary_param_c are 0 to 65 536 * 2 ⁇ 16-1 (ie, 4 294 967 295), specifying the parameter values of the i-th head motion boundary of spheroid or tri-axis ellipsoid shape.
  • the ranges of head_motion_boundary_param_a, head_motion_boundary_param_b, and head_motion_boundary_param_c shall be in the range of 0 to to 65 536 * 2 ⁇ 16-1 (ie, 4 294 967 295), inclusive.)
  • head_motion_boundary_symmetry_axis When the center is (0, 0, 0), it represents the spheroid cementitious axis.
  • head_motion_boundary_symmetry_axis When head_motion_boundary_symmetry_axis is 0, the cementary axis is indicated as the x-axis with the center (0, 0, 0).
  • head_motion_boundary_symmetry_axis When head_motion_boundary_symmetry_axis is 1, the cementary axis is indicated by the y-axis with the center (0,0,0).
  • head_motion_boundary_symmetry_axis When head_motion_boundary_symmetry_axis is 2, the cementary axis is indicated by the z-axis with center (0,0,0).
  • the symmetry axis is indicated as x axis when the center is (0, 0.0) .
  • the symmetry axis is indicated as z axis when the center is ( 0,0,0) .
  • the other values of head_motion_boundary_symmetry_axis are reserved.
  • num_boundary_vertex_minus4 plus 4 specifies the number of vertices describing the head motion boundary (plus 4 specifies the number of vertexes that describes the head motion boundary.)
  • boundary_vertex_x, boundary_vertex_y, and boundary_vertex_z represent the vertex location that describes the head motion boundary in xyz coordinates in units of 2 minus 16th millimeters.
  • boundary_vertex_x, boundary_vertex_y, and boundary_vertex_z have a range of -32768 * 2 ⁇ 16-1 (i.e., -2147483647) to 32768 * 2 ⁇ 16 (i.e., 2147483648), inclusive.
  • vertices can be a subset of the viewing positions belonging to the viewpoint (specifies the location of a vertex that describes the head motion boundary in XYZ coordinate in the units of 2 ⁇ -16 millimeters, respectively.
  • the boundary_vertex_x, boundary_vertex_y , and boundary_vertex_z shall be in the range of -32768 * 2 ⁇ 16-1 (ie, -2147483647) to 32768 * 2 ⁇ 16 (ie, 2147483648), inclusive.
  • the vertexes could be a subset of the viewing positions belongs to a viewpoint.
  • 35 shows a video transmission method according to embodiments of the present invention.
  • the video transmission method comprises: predicting a picture for a target viewing position based on a target viewing position information from a texture picture or a depth picture of the anchor viewing position S35001, to a source picture of the target viewing position S35002 Processing a prediction error for a prediction based picture, patch packing an S35003 prediction error processed picture based on an error-front region map, and / or texture of the S35004 packed patch in an anchor viewing position And encoding based on the picture or the depth picture.
  • a video transmission apparatus for example, a target view prediction processor or a target view prediction controller is based on a target viewing position information from a texture picture or a depth picture of an anchor viewing position. Predict the picture for the target viewing position.
  • the specific procedure is as described above in FIG. 22.
  • the target view prediction can be additionally performed as described in FIG. 23.
  • a video transmission apparatus may include, for example, a prediction error processor or a prediction error controller for prediction errors for a picture that is predicted based on a source picture in a target viewing position.
  • a prediction error processor or a prediction error controller for prediction errors for a picture that is predicted based on a source picture in a target viewing position.
  • prediction error processing may be additionally performed as described with reference to Figs.
  • a patch packing processor or a patch packing controller patches packing a prediction error processed picture based on an error-front region map.
  • the specific procedure is as described above in FIG. 22. Further, patch packing processing may be additionally performed as described in FIG.
  • the video transmission apparatus encodes, for example, a packed patch based on a texture picture or a depth picture of an anchor viewing position.
  • the specific procedure is as described in FIG. 22.
  • Each of the above-described parts, modules, or units may be software, processors, and hardware parts that execute successive processes stored in a memory (or storage unit). Each of the steps described in the above-described embodiment may be performed by processor, software, and hardware parts. Each module / block / unit described in the above-described embodiment may operate as a processor, software, or hardware.
  • the methods proposed by the present invention can be executed as code. This code can be written to a storage medium that can be read by a processor, and thus can be read by a processor provided by an apparatus.
  • the apparatus and method according to the present invention are not limited to the configuration and method of the embodiments described as described above, and the above-described embodiments may be selectively modified in whole or in part so that various modifications can be made. It may be configured in combination.
  • the processor-readable recording medium includes all types of recording devices in which data that can be read by the processor are stored. 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 may be distributed over a networked computer system so that the processor-readable code is stored and executed in a distributed manner.
  • a / B is interpreted as A and / or B
  • A, B is interpreted as A and / or B
  • a / B / C means at least one of A, B and / or C.
  • A, B, and C also mean at least one of A, B, and / or C.
  • a or B may mean 1) only A, 2) only B, or 3) A and B. In other words, or in this document may mean additionally or alternatively.
  • the present invention is used in VR-related fields.

Abstract

본 발명의 실시예들에 따른 비디오 송신 장치는 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 타겟 뷰 프레딕션 컨트롤러(Target view prediction controller); 상기 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 프레딕션 에러 컨트롤러(Prediction error controller), 상기 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨; 상기 프레딕션 에러 프로세싱된 픽쳐를 상기 에러-프론 리젼 맵에 기초하여 패치 패킹하는 패치 패킹 컨트롤러(Patch packing controller); 및 상기 패킹된 패치를 상기 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 인코더(Encoder); 를 포함한다. 본 발명의 실시예들에 따른 비디오 송신 방법은 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 단계(Target view perdiction); 상기 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 단계(Prediction error), 상기 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨; 상기 프레딕션 에러 프로세싱된 픽쳐를 상기 에러-프론 리젼 맵에 기초하여 패치 패킹하는 단계(Patch packing); 및 상기 패킹된 패치를 상기 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 단계(Encoding); 를 포함한다.

Description

비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치
본 발명은 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치에 관한 것이다.
VR (Virtual Reality) 시스템은 사용자에게 전자적으로 투영된 환경내에 있는 것 같은 감각을 제공한다. VR 을 제공하기 위한 시스템은 더 고화질의 이미지들과, 공간적인 음향을 제공하기 위하여 더 개선될 수 있다. VR 시스템은 사용자가 인터랙티브하게 VR 컨텐트들을 소비할 수 있도록 할 수 있다.
VR 시스템은 더 효율적으로 VR 환경을 사용자에게 제공하기 위하여, 개선될 필요가 있다. 이를 위하여 VR 컨텐츠와 같은 많은 양의 데이터 전송을 위한 데이터 전송 효율, 송수신 네트워크 간의 강건성, 모바일 수신 장치를 고려한 네트워크 유연성, 효율적인 재생 및 시그널링을 위한 방안등이 제안되어야 한다.
또한 일반적인 TTML (Timed Text Markup Language) 기반의 자막(subtitle) 이나 비트맵 기반의 자막은 360 비디오를 고려하여 제작되지 않았기 때문에, 360 비디오에 적합한 자막을 제공하기 위해서는 VR 서비스의 유즈 케이스(use case) 에 적합하도록 자막 관련 특징 및 자막 관련 시그널링 정보 등이 더 확장될 필요가 있다.
본 발명의 목적에 따라서, 본 발명은 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치를 제안한다.
본 발명의 실시예들에 따른 비디오 송신 장치는 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 타겟 뷰 프레딕션 컨트롤러(Target view prediction controller); 상기 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 프레딕션 에러 컨트롤러(Prediction error controller), 상기 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨; 상기 프레딕션 에러 프로세싱된 픽쳐를 상기 에러-프론 리젼 맵에 기초하여 패치 패킹하는 패치 패킹 컨트롤러(Patch packing controller); 및 상기 패킹된 패치를 상기 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 인코더(Encoder); 를 포함한다.
본 발명의 실시예들에 따른 비디오 송신 방법은 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 단계(Target view perdiction); 상기 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 단계(Prediction error), 상기 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨; 상기 프레딕션 에러 프로세싱된 픽쳐를 상기 에러-프론 리젼 맵에 기초하여 패치 패킹하는 단계(Patch packing); 및 상기 패킹된 패치를 상기 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 단계(Encoding); 를 포함한다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 3DoF+ 영상을 전송하고 수신하는 과정에서 영상 간 중첩되는 정보를 제외하고 유효 정보만을 패킹해서 효율적으로 전달할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 영상의 수를 줄임으로써 효율적으로 영상을 전송할 수 있는 효과가 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 정확도가 높은 영상 추정 방법을 제공할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 오류가 발생할 수 있는 정보를 찾아서 에러 강건성이 높은 영상 추정 방법을 제공할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 영상 정보를 추정하고 정확도가 떨어지는 부분 및 에러를 감지할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 복잡도가 낮은 패치를 구성할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 부담이 적은 인코딩 및 디코딩 방법을 제공할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 추정이 불가능한 영역에 대한 정보를 효율적으로 전달할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 전달해야 하는 영상의 개수를 줄임으로써 데이터량을 줄이는 효과가 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 상술한 효과를 위한 시그널링 정보를 제공할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 실시간 움직임을 반영한 비디오 송수신 시스템을 제공할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 수신기 부담을 줄이고 레이턴시를 제거할 수 있다.
도 1 은 본 발명에 따른 360도 비디오 제공을 위한 전체 아키텍처를 도시한 도면이다.
도 2 은 본 발명의 일 측면(aspect)에 따른 360도 비디오 전송 장치를 도시한 도면이다.
도 3 은 본 발명의 다른 측면에 따른 360도 비디오 수신 장치를 도시한 도면이다.
도 4 는 본 발명의 다른 실시예에 따른 360도 비디오 전송 장치/360도 비디오 수신 장치를 도시한 도면이다.
도 5 는 본 발명의 3D 공간을 설명하기 위한 비행기 주축(Aircraft Principal Axes) 개념을 도시한 도면이다.
도 6 는 본 발명의 일 실시예에 따른 프로젝션 스킴들을 도시한 도면이다.
도 7 은 본 발명의 일 실시예에 따른 타일(Tile)을 도시한 도면이다.
도 8 은 본 발명의 일 실시예에 따른 360도 비디오 관련 메타데이터를 도시한 도면이다.
도9는 3DoF+ VR 시스템에서 추가적으로 정의되는 위치(viewpoint)와 시점(viewing position)를 나타낸다.
도10은 3DoF+ 시스템에 기반한 360도 비디오 신호처리 및 관련 전송장치/수신장치 구현 방법에 대해서 도시한다.
도11은 3DoF+ end-to-end 시스템의 구조를 나타낸다.
도12는 FLUS (Framework for Live Uplink Streaming)의 구조를 나타낸다.
도13은 3DoF+ 송신단의 구성을 나타낸다.
도14는 3DoF+ 수신단의 구성을 나타낸다.
도 15는 OMAF 구조를 나타낸다.
도16은 사용자의 이동에 따른 미디어의 종류를 나타낸다.
도 17은 6DoF 비디오 제공을 위한 전체 아키텍처를 나타낸다.
도18은 6DoF 비디오 서비스 제공을 위한 전송 장치의 구성을 나타낸다.
도19는 6DoF 비디오 수신 장치의 구성을 나타낸다.
도20은 6 DoF 비디오 전송/수신 장치의 구성을 나타낸다.
도21은 6DoF 공간을 나타낸다.
도22는 본 발명의 실시예들에 따른 프리-인코더(Pre-encoder)의 구조를 나타낸다.
도23은 본 발명의 실시예들에 따른 타겟 뷰 프레딕션 프로세스(Target view prediction process)를 나타낸다.
도24는 본 발명의 실시예들에 따른 프레딕션 에러 프로세싱(prediction error processing)을 나타낸다.
도25는 본 발명의 실시예들에 따른 프레딕션 에러 프로세싱(prediction error processing)을 나타낸다.
도26은 본 발명의 실시예들에 따른 패치 패킹 프로세싱을 나타낸다.
도27은 본 발명의 실시예들에 따른 비디오 송신 장치의 인코더 및 비디오 수신 장치의 디코더의 아키텍쳐를 나타낸다.
도28은 본 발명의 실시예들에 따른 인코더의 구체적인 아키텍쳐를 나타낸다.
도29는 본 발명의 실시예들에 따른 디코터의 구체적인 아키텍쳐를 나타낸다.
도30은 본 발명의 실시예들에 따른 프레딕션 에러 프로세싱, 타겟 뷰 프레딕션 프로세싱에 관련된 메타데이터를 나타낸다.
도31 및 도32은 본 발명의 실시예들에 따른 패치 패킹에 관련된 메타데이터를 나타낸다.
도33은 본 발명의 실시예들에 따른 전체 영상에 대한 메타데이터를 나타낸다.
도34는 본 발명의 실시예들에 따른 전체 영상에 대한 메타데이터를 나타낸다.
도35는 본 발명의 실시예들에 따른 비디오 송신 방법을 나타낸다.
본 발명의 바람직한 실시예에 대해 구체적으로 설명하며, 그 예는 첨부된 도면에 나타낸다. 첨부된 도면을 참조한 아래의 상세한 설명은 본 발명의 실시예에 따라 구현될 수 있는 실시예만을 나타내기보다는 본 발명의 바람직한 실시예를 설명하기 위한 것이다. 다음의 상세한 설명은 본 발명에 대한 철저한 이해를 제공하기 위해 세부 사항을 포함한다. 그러나 본 발명이 이러한 세부 사항 없이 실행될 수 있다는 것은 당업자에게 자명하다.
본 발명에서 사용되는 대부분의 용어는 해당 분야에서 널리 사용되는 일반적인 것들에서 선택되지만, 일부 용어는 출원인에 의해 임의로 선택되며 그 의미는 필요에 따라 다음 설명에서 자세히 서술한다. 따라서 본 발명은 용어의 단순한 명칭이나 의미가 아닌 용어의 의도된 의미에 근거하여 이해되어야 한다.
도 1 은 본 발명에 따른 360도 비디오 제공을 위한 전체 아키텍처를 도시한 도면이다.
본 발명은 사용자에게 VR (Virtual Reality, 가상현실) 을 제공하기 위하여, 360도 컨텐츠를 제공하는 방안을 제안한다. VR 이란 실제 또는 가상의 환경을 복제(replicates) 하기 위한 기술 내지는 그 환경을 의미할 수 있다. VR 은 인공적으로 사용자에게 감각적 경험을 제공하며, 이를 통해 사용자는 전자적으로 프로젝션된 환경에 있는 것과 같은 경험을 할 수 있다.
360도 컨텐츠는 VR 을 구현, 제공하기 위한 컨텐츠 전반을 의미하며, 360도 비디오 및/또는 360도 오디오를 포함할 수 있다. 360도 비디오는 VR 을 제공하기 위해 필요한, 동시에 모든 방향(360도) 으로 캡쳐되거나 재생되는 비디오 내지 이미지 컨텐츠를 의미할 수 있다. 360도 비디오는 3D 모델에 따라 다양한 형태의 3D 공간 상에 나타내어지는 비디오 내지 이미지를 의미할 수 있으며, 예를 들어 360도 비디오는 구형(Spherical)면 상에 나타내어질 수 있다. 360도 오디오 역시 VR 을 제공하기 위한 오디오 컨텐츠로서, 음향 발생지가 3차원의 특정 공간상에 위치하는 것으로 인지될 수 있는, 공간적(Spatial) 오디오 컨텐츠를 의미할 수 있다. 360도 컨텐츠는 생성, 처리되어 사용자들로 전송될 수 있으며, 사용자들은 360도 컨텐츠를 이용하여 VR 경험을 소비할 수 있다. 이하, 360도 콘텐트/비디오/이미지/오디오 등은 단위(도, degree)가 생략된 360 콘텐트/비디오/이미지/오디오 등으로 사용될 수도 있고 VR 콘텐트/비디오/이미지/오디오 등으로 사용될 수도 있다.
본 발명은 특히 360 비디오를 효과적으로 제공하는 방안을 제안한다. 360 비디오를 제공하기 위하여, 먼저 하나 이상의 카메라를 통해 360 비디오가 캡쳐될 수 있다. 캡쳐된 360 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터를 다시 원래의 360 비디오로 가공하여 렌더링할 수 있다. 이를 통해 360 비디오가 사용자에게 제공될 수 있다.
구체적으로 360 비디오 제공을 위한 전체의 과정은 캡처 과정(process), 준비 과정, 전송 과정, 프로세싱 과정, 렌더링 과정 및/또는 피드백 과정을 포함할 수 있다.
캡처 과정은 하나 이상의 카메라를 통하여 복수개의 시점 각각에 대한 이미지 또는 비디오를 캡쳐하는 과정을 의미할 수 있다. 캡처 과정에 의해 도시된 (t1010) 과 같은 이미지/비디오 데이터가 생성될 수 있다. 도시된 (t1010) 의 각 평면은 각 시점에 대한 이미지/비디오를 의미할 수 있다. 이 캡쳐된 복수개의 이미지/비디오를 로(raw) 데이터라 할 수도 있다. 캡쳐 과정에서 캡쳐와 관련된 메타데이터가 생성될 수 있다.
이 캡처를 위하여 VR 을 위한 특수한 카메라가 사용될 수 있다. 실시예에 따라 컴퓨터로 생성된 가상의 공간에 대한 360 비디오를 제공하고자 하는 경우, 실제 카메라를 통한 캡처가 수행되지 않을 수 있다. 이 경우 단순히 관련 데이터가 생성되는 과정으로 해당 캡처 과정이 갈음될 수 있다.
준비 과정은 캡처된 이미지/비디오 및 캡쳐 과정에서 발생한 메타데이터를 처리하는 과정일 수 있다. 캡처된 이미지/비디오는 이 준비 과정에서, 스티칭 과정, 프로젝션 과정, 리전별 패킹 과정(Region-wise Packing) 및/또는 인코딩 과정 등을 거칠 수 있다.
먼저 각각의 이미지/비디오가 스티칭(Stitching) 과정을 거칠 수 있다. 스티칭 과정은 각각의 캡처된 이미지/비디오들을 연결하여 하나의 파노라마 이미지/비디오 또는 구형의 이미지/비디오를 만드는 과정일 수 있다.
이 후, 스티칭된 이미지/비디오는 프로젝션(Projection) 과정을 거칠 수 있다. 프로젝션 과정에서, 스트칭된 이미지/비디오는 2D 이미지 상에 프로젝션될 수 있다. 이 2D 이미지는 문맥에 따라 2D 이미지 프레임으로 불릴 수도 있다. 2D 이미지로 프로젝션하는 것을 2D 이미지로 매핑한다고 표현할 수도 있다. 프로젝션된 이미지/비디오 데이터는 도시된 (t1020) 과 같은 2D 이미지의 형태가 될 수 있다.
2D 이미지 상에 프로젝션된 비디오 데이터는 비디오 코딩 효율 등을 높이기 위하여 리전별 패킹 과정(Region-wise Packing)을 거칠 수 있다. 리전별 패킹이란, 2D 이미지 상에 프로젝션된 비디오 데이터를 리전(Region) 별로 나누어 처리를 가하는 과정을 의미할 수 있다. 여기서 리전(Region)이란, 360 비디오 데이터가 프로젝션된 2D 이미지가 나누어진 영역을 의미할 수 있다. 이 리전들은, 실시예에 따라, 2D 이미지를 균등하게 나누어 구분되거나, 임의로 나누어져 구분될 수 있다. 또한 실시예에 따라 리전들은, 프로젝션 스킴에 따라 구분되어질 수도 있다. 리전별 패킹 과정은 선택적(optional) 과정으로써, 준비 과정에서 생략될 수 있다.
실시예에 따라 이 처리 과정은, 비디오 코딩 효율을 높이기 위해, 각 리전을 회전한다거나 2D 이미지 상에서 재배열하는 과정을 포함할 수 있다. 예를 들어, 리전들을 회전하여 리전들의 특정 변들이 서로 근접하여 위치되도록 함으로써, 코딩 시의 효율이 높아지게 할 수 있다.
실시예에 따라 이 처리 과정은, 360 비디오상의 영역별로 레졸루션(resolution) 을 차등화하기 위하여, 특정 리전에 대한 레졸루션을 높인다거나, 낮추는 과정을 포함할 수 있다. 예를 들어, 360 비디오 상에서 상대적으로 더 중요한 영역에 해당하는 리전들은, 다른 리전들보다 레졸루션을 높게할 수 있다.2D 이미지 상에 프로젝션된 비디오 데이터 또는 리전별 패킹된 비디오 데이터는 비디오 코덱을 통한 인코딩 과정을 거칠 수 있다.
실시예에 따라 준비 과정은 부가적으로 에디팅(editing) 과정 등을 더 포함할 수 있다. 이 에디팅 과정에서 프로젝션 전후의 이미지/비디오 데이터들에 대한 편집 등이 더 수행될 수 있다. 준비 과정에서도 마찬가지로, 스티칭/프로젝션/인코딩/에디팅 등에 대한 메타데이터가 생성될 수 있다. 또한 2D 이미지 상에 프로젝션된 비디오 데이터들의 초기 시점, 혹은 ROI (Region of Interest) 등에 관한 메타데이터가 생성될 수 있다.
전송 과정은 준비 과정을 거친 이미지/비디오 데이터 및 메타데이터들을 처리하여 전송하는 과정일 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있다. 전송을 위한 처리를 마친 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있다. 이 데이터들은 온 디맨드(On Demand) 방식으로 수신측으로 전달될 수도 있다. 수신측에서는 다양한 경로를 통해 해당 데이터를 수신할 수 있다.
프로세싱 과정은 수신한 데이터를 디코딩하고, 프로젝션되어 있는 이미지/비디오 데이터를 3D 모델 상에 리-프로젝션(Re-projection) 하는 과정을 의미할 수 있다. 이 과정에서 2D 이미지들 상에 프로젝션되어 있는 이미지/비디오 데이터가 3D 공간 상으로 리-프로젝션될 수 있다. 이 과정을 문맥에 따라 매핑, 프로젝션이라고 부를 수도 있다. 이 때 매핑되는 3D 공간은 3D 모델에 따라 다른 형태를 가질 수 있다. 예를 들어 3D 모델에는 구형(Sphere), 큐브(Cube), 실린더(Cylinder) 또는 피라미드(Pyramid) 가 있을 수 있다.
실시예에 따라 프로세싱 과정은 부가적으로 에디팅(editing) 과정, 업 스케일링(up scaling) 과정 등을 더 포함할 수 있다. 이 에디팅 과정에서 리-프로젝션 전후의 이미지/비디오 데이터에 대한 편집 등이 더 수행될 수 있다. 이미지/비디오 데이터가 축소되어 있는 경우 업 스케일링 과정에서 샘플들의 업 스케일링을 통해 그 크기를 확대할 수 있다. 필요한 경우 다운 스케일링을 통해 사이즈를 축소하는 작업이 수행될 수도 있다.
렌더링 과정은 3D 공간상에 리-프로젝션된 이미지/비디오 데이터를 렌더링하고 디스플레이하는 과정을 의미할 수 있다. 표현에 따라 리-프로젝션과 렌더링을 합쳐 3D 모델 상에 렌더링한다 라고 표현할 수도 있다. 3D 모델 상에 리-프로젝션된 (또는 3D 모델 상으로 렌더링된) 이미지/비디오는 도시된 (t1030) 과 같은 형태를 가질 수 있다. 도시된 (t1030) 은 구형(Sphere) 의 3D 모델에 리-프로젝션된 경우이다. 사용자는 VR 디스플레이 등을 통하여 렌더링된 이미지/비디오의 일부 영역을 볼 수 있다. 이 때 사용자가 보게되는 영역은 도시된 (t1040) 과 같은 형태일 수 있다.
피드백 과정은 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하는 과정을 의미할 수 있다. 피드백 과정을 통해 360 비디오 소비에 있어 인터랙티비티(Interactivity) 가 제공될 수 있다. 실시예에 따라, 피드백 과정에서 헤드 오리엔테이션(Head Orientation) 정보, 사용자가 현재 보고 있는 영역을 나타내는 뷰포트(Viewport) 정보 등이 송신측으로 전달될 수 있다. 실시예에 따라, 사용자는 VR 환경 상에 구현된 것들과 상호작용할 수도 있는데, 이 경우 그 상호작용과 관련된 정보가 피드백 과정에서 송신측 내지 서비스 프로바이더 측으로 전달될 수도 있다. 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
헤드 오리엔테이션 정보는 사용자의 머리 위치, 각도, 움직임 등에 대한 정보를 의미할 수 있다. 이 정보를 기반으로 사용자가 현재 360 비디오 내에서 보고 있는 영역에 대한 정보, 즉 뷰포트 정보가 계산될 수 있다.
뷰포트 정보는 현재 사용자가 360 비디오에서 보고 있는 영역에 대한 정보일 수 있다. 이를 통해 게이즈 분석(Gaze Analysis) 이 수행되어, 사용자가 어떠한 방식으로 360 비디오를 소비하는지, 360 비디오의 어느 영역을 얼마나 응시하는지 등을 확인할 수도 있다. 게이즈 분석은 수신측에서 수행되어 송신측으로 피드백 채널을 통해 전달될 수도 있다. VR 디스플레이 등의 장치는 사용자의 머리 위치/방향, 장치가 지원하는 수직(vertical) 혹은 수평(horizontal) FOV 등에 근거하여 뷰포트 영역을 추출할 수 있다.
실시예에 따라, 전술한 피드백 정보는 송신측으로 전달되는 것 뿐아니라, 수신측에서 소비될 수도 있다. 즉, 전술한 피드백 정보를 이용하여 수신측의 디코딩, 리-프로젝션, 렌더링 과정 등이 수행될 수 있다. 예를 들어, 헤드 오리엔테이션 정보 및/또는 뷰포트 정보를 이용하여 현재 사용자가 보고 있는 영역에 대한 360 비디오만 우선적으로 디코딩 및 렌더링될 수도 있다.
여기서 뷰포트(viewport) 내지 뷰포트 영역이란, 사용자가 360 비디오에서 보고 있는 영역을 의미할 수 있다. 시점(viewpoint) 는 사용자가 360 비디오에서 보고 있는 지점으로서, 뷰포트 영역의 정중앙 지점을 의미할 수 있다. 즉, 뷰포트는 시점을 중심으로 한 영역인데, 그 영역이 차지하는 크기 형태 등은 후술할 FOV(Field Of View) 에 의해 결정될 수 있다.
전술한 360 비디오 제공을 위한 전체 아키텍처 내에서, 캡쳐/프로젝션/인코딩/전송/디코딩/리-프로젝션/렌더링의 일련의 과정을 거치게 되는 이미지/비디오 데이터들을 360 비디오 데이터라 부를 수 있다. 360 비디오 데이터라는 용어는 또한 이러한 이미지/비디오 데이터들과 관련되는 메타데이터 내지 시그널링 정보를 포함하는 개념으로 쓰일 수도 있다.
도 2 은 본 발명의 일 측면(aspect)에 따른 360도 비디오 전송 장치를 도시한 도면이다.
일 측면에 따르면 본 발명은 360 비디오 전송 장치와 관련될 수 있다. 본 발명에 따른 360 비디오 전송 장치는 전술한 준비 과정 내지 전송 과정에 관련된 동작들을 수행할 수 있다. 본 발명에 따른 360 비디오 전송 장치는 데이터 입력부, 스티처(Stitcher), 프로젝션 처리부, 리전별 패킹 처리부(도시되지 않음), 메타데이터 처리부, (송신측) 피드백 처리부, 데이터 인코더, 인캡슐레이션 처리부, 전송 처리부 및/또는 전송부를 내/외부 엘레멘트로서 포함할 수 있다.
데이터 입력부는 캡쳐된 각 시점별 이미지/비디오 들을 입력받을 수 있다. 이 시점별 이미지/비디오 들은 하나 이상의 카메라들에 의해 캡쳐된 이미지/비디오들일 수 있다. 또한 데이터 입력부는 캡쳐 과정에서 발생된 메타데이터를 입력받을 수 있다. 데이터 입력부는 입력된 시점별 이미지/비디오들을 스티처로 전달하고, 캡쳐 과정의 메타데이터를 시그널링 처리부로 전달할 수 있다.
스티처는 캡쳐된 시점별 이미지/비디오들에 대한 스티칭 작업을 수행할 수 있다. 스티처는 스티칭된 360 비디오 데이터를 프로젝션 처리부로 전달할 수 있다. 스티처는 필요한 경우 메타데이터 처리부로부터 필요한 메타데이터를 전달받아 스티칭 작업에 이용할 수 있다. 스티처는 스티칭 과정에서 발생된 메타데이터를 메타데이터 처리부로 전달할 수 있다. 스티칭 과정의 메타데이터에는 스티칭이 수행되었는지 여부, 스티칭 타입 등의 정보들이 있을 수 있다.
프로젝션 처리부는 스티칭된 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다. 프로젝션 처리부는 다양한 스킴(scheme)에 따라 프로젝션을 수행할 수 있는데, 이에 대해서는 후술한다. 프로젝션 처리부는 각 시점별 360 비디오 데이터의 해당 뎁스(depth)를 고려하여 매핑을 수행할 수 있다. 프로젝션 처리부는 필요한 경우 메타데이터 처리부로부터 프로젝션에 필요한 메타데이터를 전달받아 프로젝션 작업에 이용할 수 있다. 프로젝션 처리부는 프로젝션 과정에서 발생된 메타데이터를 메타데이터 처리부로 전달할 수 있다. 프로젝션 처리부의 메타데이터에는 프로젝션 스킴의 종류 등이 있을 수 있다.
리전별 패킹 처리부(도시되지 않음)는 전술한 리전별 패킹 과정을 수행할 수 있다. 즉, 리전별 패킹 처리부는 프로젝션된 360 비디오 데이터를 리전별로 나누고, 각 리전들을 회전, 재배열하거나, 각 리전의 레졸루션을 변경하는 등의 처리를 수행할 수 있다. 전술한 바와 같이 리전별 패킹 과정은 선택적(optional) 과정이며, 리전별 패킹이 수행되지 않는 경우, 리전별 패킹 처리부는 생략될 수 있다. 리전별 패킹 처리부는 필요한 경우 메타데이터 처리부로부터 리전별 패킹에 필요한 메타데이터를 전달받아 리전별 패킹 작업에 이용할 수 있다. 리전별 패킹 처리부는 리전별 패킹 과정에서 발생된 메타데이터를 메타데이터 처리부로 전달할 수 있다. 리전별 패킹 처리부의 메타데이터에는 각 리전의 회전 정도, 사이즈 등이 있을 수 있다.
전술한 스티처, 프로젝션 처리부 및/또는 리전별 패킹 처리부는 실시예에 따라 하나의 하드웨어 컴포넌트에서 수행될 수도 있다.
메타데이터 처리부는 캡처 과정, 스티칭 과정, 프로젝션 과정, 리전별 패킹 과정, 인코딩 과정, 인캡슐레이션 과정 및/또는 전송을 위한 처리 과정에서 발생할 수 있는 메타데이터들을 처리할 수 있다. 메타데이터 처리부는 이러한 메타데이터들을 이용하여 360 비디오 관련 메타데이터를 생성할 수 있다. 실시예에 따라 메타데이터 처리부는 360 비디오 관련 메타데이터를 시그널링 테이블의 형태로 생성할 수도 있다. 문맥에 따라 360 비디오 관련 메타데이터는 메타데이터 또는 360 비디오 관련 시그널링 정보라 불릴 수도 있다. 또한 메타데이터 처리부는 획득하거나 생성한 메타데이터들을 필요에 따라 360 비디오 전송 장치의 내부 엘레멘트들에 전달할 수 있다. 메타데이터 처리부는 360 비디오 관련 메타데이터가 수신측으로 전송될 수 있도록 데이터 인코더, 인캡슐레이션 처리부 및/또는 전송 처리부에 전달할 수 있다.
데이터 인코더는 2D 이미지 상에 프로젝션된 360 비디오 데이터 및/또는 리전별 패킹된 360 비디오 데이터를 인코딩할 수 있다. 360 비디오 데이터는 다양한 포맷으로 인코딩될 수 있다.
인캡슐레이션 처리부는 인코딩된 360 비디오 데이터 및/또는 360 비디오 관련 메타데이터를 파일 등의 형태로 인캡슐레이션할 수 있다. 여기서 360 비디오 관련 메타데이터는 전술한 메타데이터 처리부로부터 전달받은 것일 수 있다. 인캡슐레이션 처리부는 해당 데이터들을 ISOBMFF, CFF 등의 파일 포맷으로 인캡슐레이션하거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인캡슐레이션 처리부는 실시예에 따라 360 비디오 관련 메타데이터를 파일 포맷 상에 포함시킬 수 있다. 360 관련 메타데이터는 예를 들어 ISOBMFF 파일 포맷 상의 다양한 레벨의 박스(box)에 포함되거나 파일 내에서 별도의 트랙내의 데이터로 포함될 수 있다. 실시예에 따라, 인캡슐레이션 처리부는 360 비디오 관련 메타데이터 자체를 파일로 인캡슐레이션할 수 있다.전송 처리부는 파일 포맷에 따라 인캡슐레이션된 360 비디오 데이터에 전송을 위한 처리를 가할 수 있다. 전송 처리부는 임의의 전송 프로토콜에 따라 360 비디오 데이터를 처리할 수 있다. 전송을 위한 처리에는 방송망을 통한 전달을 위한 처리, 브로드밴드를 통한 전달을 위한 처리를 포함할 수 있다. 실시예에 따라 전송 처리부는 360 비디오 데이터 뿐 아니라, 메타데이터 처리부로부터 360 비디오 관련 메타데이터를 전달받아, 이 것에 전송을 위한 처리를 가할 수도 있다.
전송부는 전송 처리된 360 비디오 데이터 및/또는 360 비디오 관련 메타데이터를 방송망 및/또는 브로드밴드를 통해 전송할 수 있다. 전송부는 방송망을 통한 전송을 위한 엘레멘트 및/또는 브로드밴드를 통한 전송을 위한 엘레멘트를 포함할 수 있다.
본 발명에 따른 360 비디오 전송 장치의 일 실시예에 의하면, 360 비디오 전송 장치는 데이터 저장부(도시되지 않음)를 내/외부 엘레멘트로서 더 포함할 수 있다. 데이터 저장부는 인코딩된 360 비디오 데이터 및/또는 360 비디오 관련 메타데이터를 전송 처리부로 전달하기 전에 저장하고 있을 수 있다. 이 데이터들이 저장되는 형태는 ISOBMFF 등의 파일 형태일 수 있다. 실시간으로 360 비디오를 전송하는 경우에는 데이터 저장부가 필요하지 않을 수 있으나, 온 디맨드, NRT (Non Real Time), 브로드밴드 등을 통해 전달하는 경우에는 인캡슐레이션된 360 데이터가 데이터 저장부에 일정 기간 저장되었다가 전송될 수도 있다.
본 발명에 따른 360 비디오 전송 장치의 다른 실시예에 의하면, 360 비디오 전송 장치는 (송신측) 피드백 처리부 및/또는 네트워크 인터페이스(도시되지 않음)를 내/외부 엘레멘트로서 더 포함할 수 있다. 네트워크 인터페이스는 본 발명에 따른 360 비디오 수신 장치로부터 피드백 정보를 전달받고, 이를 송신측 피드백 처리부로 전달할 수 있다. 송신측 피드백 처리부는 피드백 정보를 스티처, 프로젝션 처리부, 리전별 패킹 처리부, 데이터 인코더, 인캡슐레이션 처리부, 메타데이터 처리부 및/또는 전송 처리부로 전달할 수 있다. 실시예에 따라 피드백 정보는 메타데이터 처리부에 일단 전달된 후, 다시 각 내부 엘레멘트들로 전달될 수 있다. 피드백 정보를 전달받은 내부 엘레먼트들은 이 후의 360 비디오 데이터의 처리에 피드백 정보를 반영할 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 리전별 패킹 처리부는 각 리전을 회전하여 2D 이미지 상에 매핑할 수 있다. 이 때 각 리전들은 서로 다른 방향, 서로 다른 각도로 회전되어 2D 이미지 상에 매핑될 수 있다. 리전의 회전은 360 비디오 데이터가 구형의 면 상에서 프로젝션 전에 인접했던 부분, 스티칭된 부분 등을 고려하여 수행될 수 있다. 리전의 회전에 관한 정보들, 즉 회전 방향, 각도 등은 360 비디오 관련 메타데이터에 의해 시그널링될 수 있다.본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 데이터 인코더는 각 리전 별로 다르게 인코딩을 수행할 수 있다. 데이터 인코더는 특정 리전은 높은 퀄리티로, 다른 리전은 낮은 퀄리티로 인코딩을 수행할 수 있다. 송신측 피드백 처리부는 360 비디오 수신 장치로부터 전달받은 피드백 정보를 데이터 인코더로 전달하여, 데이터 인코더가 리전별 차등화된 인코딩 방법을 사용하도록 할 수 있다. 예를 들어 송신측 피드백 처리부는 수신측으로부터 전달받은 뷰포트 정보를 데이터 인코더로 전달할 수 있다. 데이터 인코더는 뷰포트 정보가 지시하는 영역을 포함하는 리전들에 대해 다른 리전들보다 더 높은 퀄리티(UHD 등) 로 인코딩을 수행할 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 전송 처리부는 각 리전 별로 다르게 전송을 위한 처리를 수행할 수 있다. 전송 처리부는 리전 별로 다른 전송 파라미터(모듈레이션 오더, 코드 레이트 등)를 적용하여, 각 리전 별로 전달되는 데이터의 강건성(robustenss) 을 다르게 할 수 있다.
이 때, 송신측 피드백 처리부는 360 비디오 수신 장치로부터 전달받은 피드백 정보를 전송 처리부로 전달하여, 전송 처리부가 리전별 차등화된 전송 처리를 수행하도록 할 수 있다. 예를 들어 송신측 피드백 처리부는 수신측으로부터 전달받은 뷰포트 정보를 전송 처리부로 전달할 수 있다. 전송 처리부는 해당 뷰포트 정보가 지시하는 영역을 포함하는 리전들에 대해 다른 리전들보다 더 높은 강건성을 가지도록 전송 처리를 수행할 수 있다.
전술한 본 발명에 따른 360 비디오 전송 장치의 내/외부 엘레멘트들은 하드웨어로 구현되는 하드웨어 엘레멘트들일 수 있다. 실시예에 따라 내/외부 엘레멘트들은 변경, 생략되거나 다른 엘레멘트로 대체, 통합될 수 있다. 실시예에 따라 부가 엘레멘트들이 360 비디오 전송 장치에 추가될 수도 있다.
도 3 은 본 발명의 다른 측면에 따른 360도 비디오 수신 장치를 도시한 도면이다.
다른 측면에 따르면 본 발명은 360 비디오 수신 장치와 관련될 수 있다. 본 발명에 따른 360 비디오 수신 장치는 전술한 프로세싱 과정 및/또는 렌더링 과정에 관련된 동작들을 수행할 수 있다. 본 발명에 따른 360 비디오 수신 장치는 수신부, 수신 처리부, 디캡슐레이션 처리부, 데이터 디코더, 메타데이터 파서, (수신측) 피드백 처리부, 리-프로젝션 처리부 및/또는 렌더러를 내/외부 엘레멘트로서 포함할 수 있다.
수신부는 본 발명에 따른 360 비디오 전송 장치가 전송한 360 비디오 데이터를 수신할 수 있다. 전송되는 채널에 따라 수신부는 방송망을 통하여 360 비디오 데이터를 수신할 수도 있고, 브로드밴드를 통하여 360 비디오 데이터를 수신할 수도 있다.
수신 처리부는 수신된 360 비디오 데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 전송측에서 전송을 위한 처리가 수행된 것에 대응되도록, 수신 처리부는 전술한 전송 처리부의 역과정을 수행할 수 있다. 수신 처리부는 획득한 360 비디오 데이터는 디캡슐레이션 처리부로 전달하고, 획득한 360 비디오 관련 메타데이터는 메타데이터 파서로 전달할 수 있다. 수신 처리부가 획득하는 360 비디오 관련 메타데이터는 시그널링 테이블의 형태일 수 있다.
디캡슐레이션 처리부는 수신 처리부로부터 전달받은 파일 형태의 360 비디오 데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 ISOBMFF 등에 따른 파일들을 디캡슐레이션하여, 360 비디오 데이터 내지 360 비디오 관련 메타데이터를 획득할 수 있다. 획득된 360 비디오 데이터는 데이터 디코더로, 획득된 360 비디오 관련 메타데이터는 메타데이터 파서로 전달할 수 있다. 디캡슐레이션 처리부가 획득하는 360 비디오 관련 메타데이터는 파일 포맷 내의 박스 혹은 트랙 형태일 수 있다. 디캡슐레이션 처리부는 필요한 경우 메타데이터 파서로부터 디캡슐레이션에 필요한 메타데이터를 전달받을 수도 있다.
데이터 디코더는 360 비디오 데이터에 대한 디코딩을 수행할 수 있다. 데이터 디코더는 메타데이터 파서로부터 디코딩에 필요한 메타데이터를 전달받을 수도 있다. 데이터 디코딩 과정에서 획득된 360 비디오 관련 메타데이터는 메타데이터 파서로 전달될 수도 있다.
메타데이터 파서는 360 비디오 관련 메타데이터에 대한 파싱/디코딩을 수행할 수 있다. 메타데이터 파서는 획득한 메타데이터를 데이터 디캡슐레이션 처리부, 데이터 디코더, 리-프로젝션 처리부 및/또는 렌더러로 전달할 수 있다.
리-프로젝션 처리부는 디코딩된 360 비디오 데이터에 대하여 리-프로젝션을 수행할 수 있다. 리-프로젝션 처리부는 360 비디오 데이터를 3D 공간으로 리-프로젝션할 수 있다. 3D 공간은 사용되는 3D 모델에 따라 다른 형태를 가질 수 있다. 리-프로젝션 처리부는 메타데이터 파서로부터 리-프로젝션에 필요한 메타데이터를 전달받을 수도 있다. 예를 들어 리-프로젝션 처리부는 사용되는 3D 모델의 타입 및 그 세부 정보에 대한 정보를 메타데이터 파서로부터 전달받을 수 있다. 실시예에 따라 리-프로젝션 처리부는 리-프로젝션에 필요한 메타데이터를 이용하여, 3D 공간 상의 특정 영역에 해당하는 360 비디오 데이터만을 3D 공간으로 리-프로젝션할 수도 있다.
렌더러는 리-프로젝션된 360 비디오 데이터를 렌더링할 수 있다. 전술한 바와 같이 360 비디오 데이터가 3D 공간상에 렌더링된다고 표현할 수도 있는데, 이처럼 두 과정이 한번에 일어나는 경우 리-프로젝션 처리부와 렌더러는 통합되어, 렌더러에서 이 과정들이 모두 진행될 수 있다. 실시예에 따라 렌더러는 사용자의 시점 정보에 따라 사용자가 보고 있는 부분만을 렌더링할 수도 있다.
사용자는 VR 디스플레이 등을 통하여 렌더링된 360 비디오의 일부 영역을 볼 수 있다. VR 디스플레이는 360 비디오를 재생하는 장치로서, 360 비디오 수신 장치에 포함될 수도 있고(tethered), 별도의 장치로서 360 비디오 수신 장치에 연결될 수도 있다(un-tethered).
본 발명에 따른 360 비디오 수신 장치의 일 실시예에 의하면, 360 비디오 수신 장치는 (수신측) 피드백 처리부 및/또는 네트워크 인터페이스(도시되지 않음)를 내/외부 엘레멘트로서 더 포함할 수 있다. 수신측 피드백 처리부는 렌더러, 리-프로젝션 처리부, 데이터 디코더, 디캡슐레이션 처리부 및/또는 VR 디스플레이로부터 피드백 정보를 획득하여 처리할 수 있다. 피드백 정보는 뷰포트 정보, 헤드 오리엔테이션 정보, 게이즈(Gaze) 정보 등을 포함할 수 있다. 네트워크 인터페이스는 피드백 정보를 수신측 피드백 처리부로부터 전달받고, 이를 360 비디오 전송 장치로 전송할 수 있다.
전술한 바와 같이, 피드백 정보는 송신측으로 전달되는 것 뿐아니라, 수신측에서 소비될 수도 있다. 수신측 피드백 처리부는 획득한 피드백 정보를 360 비디오 수신 장치의 내부 엘레멘트들로 전달하여, 렌더링 등의 과정에 반영되게 할 수 있다. 수신측 피드백 처리부는 피드백 정보를 렌더러, 리-프로젝션 처리부, 데이터 디코더 및/또는 디캡슐레이션 처리부로 전달할 수 있다. 예를 들어, 렌더러는 피드백 정보를 활용하여 사용자가 보고 있는 영역을 우선적으로 렌더링할 수 있다. 또한 디캡슐레이션 처리부, 데이터 디코더 등은 사용자가 보고 있는 영역 내지 보게될 영역을 우선적으로 디캡슐레이션, 디코딩할 수 있다.
전술한 본 발명에 따른 360 비디오 수신 장치의 내/외부 엘레멘트들은 하드웨어로 구현되는 하드웨어 엘레멘트들일 수 있다. 실시예에 따라 내/외부 엘레멘트들은 변경, 생략되거나 다른 엘레멘트로 대체, 통합될 수 있다. 실시예에 따라 부가 엘레멘트들이 360 비디오 수신 장치에 추가될 수도 있다.
본 발명의 또 다른 측면은 360 비디오를 전송하는 방법 및 360 비디오를 수신하는 방법과 관련될 수 있다. 본 발명에 따른 360 비디오를 전송/수신하는 방법은, 각각 전술한 본 발명에 따른 360 비디오 전송/수신 장치 또는 그 장치의 실시예들에 의해 수행될 수 있다.
전술한 본 발명에 따른 360 비디오 전송/수신 장치, 전송/수신 방법의 각각의 실시예 및 그 내/외부 엘리멘트 각각의 실시예들을 서로 조합될 수 있다. 예를 들어 프로젝션 처리부의 실시예들과, 데이터 인코더의 실시예들은 서로 조합되어, 그 경우의 수만큼의 360 비디오 전송 장치의 실시예들을 만들어 낼 수 있다. 이렇게 조합된 실시예들 역시 본 발명의 범위에 포함된다.
도 4 는 본 발명의 다른 실시예에 따른 360도 비디오 전송 장치/360도 비디오 수신 장치를 도시한 도면이다.
전술한 바와 같이, 도시된 (a) 와 같은 아키텍처에 의하여 360 컨텐츠가 제공될 수 있다. 360 컨텐츠는 파일 형태로 제공되거나, DASH 등과 같이 세그먼트(segment) 기반 다운로드 또는 스트리밍 서비스의 형태로 제공될 수 있다. 여기서 360 컨텐츠는 VR 컨텐츠로 불릴 수 있다.
전술한 바와 같이 360 비디오 데이터 및/또는 360 오디오 데이터가 획득될 수 있다(Acquisition).
360 오디오 데이터는 오디오 프리-프로세싱 과정(Audio Preprocessing), 오디오 인코딩 과정(Audio encoding)을 거칠 수 있다. 이 과정에서 오디오 관련 메타데이터가 생성될 수 있으며, 인코딩된 오디오와 오디오 관련 메타데이터는 전송을 위한 처리(file/segment encapsulation)를 거칠 수 있다.
360 비디오 데이터는 전술한 것과 같은 과정을 거칠 수 있다. 360 비디오 전송 장치의 스티처는 360 비디오 데이터에 스티칭을 수행할 수 있다(Visual stitching). 이 과정은 실시예에 따라 생략되고 수신측에서 수행될 수도 있다. 360 비디오 전송 장치의 프로젝션 처리부는 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다(Projection and mapping(packing)).
이 스티칭 및 프로젝션 과정은 (b) 에 구체적으로 도시되었다. 도시된 (b) 에서, 360 비디오 데이터(Input Images) 를 전달받으면, 이에 스티칭 및 프로젝션이 수행될 수 있다. 프로젝션 과정은 구체적으로 스티칭된 360 비디오 데이터를 3D 공간 상으로 프로젝션하고, 프로젝션된 360 비디오 데이터가 2D 이미지 상으로 배열되는 것으로 볼 수 있다. 본 명세서에서 이 과정을 360 비디오 데이터를 2D 이미지 상으로 프로젝션한다고 표현할 수도 있다. 여기서 3D 공간은 구(sphere) 또는 큐브(cube) 등일 수 있다. 이 3D 공간은 수신측에서 리-프로젝션에 사용되는 3D 공간과 같을 수도 있다.
2D 이미지는 프로젝티드 프레임(C, Projected frame) 이라 불릴 수도 있다. 이 2D 이미지에 리전별 패킹(Region-wise packing) 이 선택적으로 더 수행될 수도 있다. 리전별 패킹이 수행되는 경우, 각 리전(Region)의 위치, 형태, 크기를 지시함으로써, 2D 이미지 상의 리전들이 팩드 프레임(D, packed frame) 상으로 매핑될 수 있다. 리전별 패킹이 수행되지 않는 경우, 프로젝티드 프레임은 팩드 프레임과 같을 수 있다. 리전에 대해서는 후술한다. 프로젝션 과정 및 리전별 패킹 과정을, 360 비디오 데이터의 각 리전들이 2D 이미지 상에 프로젝션된다고 표현할 수도 있다. 설계에 따라, 360 비디오 데이터는 중간 과정 없이 팩드 프레임으로 바로 변환될 수도 있다.
도시된 (a) 에서, 프로젝션된 360 비디오 데이터는 이미지 인코딩 내지 비디오 인코딩될 수 있다. 같은 컨텐트라도 다른 시점(viewpoints)별로 존재할 수 있으므로, 같은 컨텐트가 서로 다른 비트 스트림으로 인코딩될 수도 있다. 인코딩된 360 비디오 데이터는 전술한 인캡슐레이션 처리부에 의해 ISOBMFF 등의 파일 포맷으로 처리될 수 있다. 또는 인캡슐레이션 처리부는 인코딩된 360 비디오 데이터를 세그먼트들로 처리할 수 있다. 세그먼트들은 DASH 에 기반한 전송을 위한 개별 트랙에 포함될 수 있다.
360 비디오 데이터의 처리와 함께, 전술한 것과 같이 360 비디오 관련 메타데이터가 생성될 수 있다. 이 메타데이터는 비디오 스트림 혹은 파일 포맷에 포함되어 전달될 수 있다. 이 메타데이터는 인코딩 과정이나 파일 포맷 인캡슐레이션, 전송을 위한 처리 등과 같은 과정에도 쓰일 수 있다.
360 오디오/비디오 데이터는 전송 프로토콜에 따라 전송을 위한 처리를 거치고, 이후 전송될 수 있다. 전술한 360 비디오 수신 장치는 이를 방송망 또는 브로드밴드를 통해 수신할 수 있다.
도시된 (a) 에서 VR 서비스 플랫폼(VR service platform) 은 전술한 360 비디오 수신 장치의 일 실시예에 해당할 수 있다. 도시된 (a) 에서 스피커/헤드폰(Loudspeakers/headphones), 디스플레이(Display), 헤드/아이 트랙킹 컴포넌트(Head/eye tracking) 는 360 비디오 수신 장치의 외부 장치 내지 VR 어플리케이션에 의해 수행되는 것으로 도시되었는데, 실시예에 따라 360 비디오 수신 장치는 이 들을 모두 포함할 수도 있다. 실시예에 따라 헤드/아이 트랙킹 컴포넌트는 전술한 수신측 피드백 처리부에 해당할 수 있다.
360 비디오 수신 장치는 360 오디오/비디오 데이터에 수신을 위한 처리(File/segment decapsulation)를 수행할 수 있다. 360 오디오 데이터는 오디오 디코딩(Audio decoding), 오디오 렌더링(Audio rendering) 과정을 거쳐 스피커/헤드폰을 통해 사용자에게 제공될 수 있다.
360 비디오 데이터는 이미지 디코딩 내지 비디오 디코딩, 렌더링(Visual rendering) 과정을 거쳐 디스플레이를 통해 사용자에게 제공될 수 있다. 여기서 디스플레이는 VR 을 지원하는 디스플레이거나 일반 디스플레이일 수 있다.
전술한 바와 같이 렌더링 과정은 구체적으로, 360 비디오 데이터가 3D 공간 상에 리-프로젝션되고, 리-프로젝션된 360 비디오 데이터가 렌더링되는 것으로 볼 수 있다. 이를 360 비디오 데이터가 3D 공간 상에 렌더링된다고 표현할 수도 있다.
헤드/아이 트랙킹 컴포넌트는 사용자의 헤드 오리엔테이션 정보, 게이즈 정보, 뷰포트(Viewport) 정보 등을 획득, 처리할 수 있다. 이에 대해서는 전술하였다.
수신측에서는 전술한 수신측 과정들과 통신하는 VR 어플리케이션이 존재할 수 있다.
도 5 는 본 발명의 3D 공간을 설명하기 위한 비행기 주축(Aircraft Principal Axes) 개념을 도시한 도면이다.
본 발명에서, 3D 공간에서의 특정 지점, 위치, 방향, 간격, 영역 등을 표현하기 위하여 비행기 주축 개념이 사용될 수 있다.
즉, 본 발명에서 프로젝션 전 또는 리-프로젝션 후의 3D 공간에 대해 기술하고, 그에 대한 시그널링을 수행하기 위하여 비행기 주축 개념이 사용될 수 있다. 실시예에 따라 X, Y, Z 축 개념 또는 구 좌표계를 이용한 방법이 사용될 수도 있다.
비행기는 3 차원으로 자유롭게 회전할 수 있다. 3차원을 이루는 축을 각각 피치(pitch) 축, 야(yaw) 축 및 롤(roll) 축이라고 한다. 본 명세서에서 이 들을 줄여서 pitch, yaw, roll 내지 pitch 방향, yaw 방향, roll 방향이라고 표현할 수도 있다.
Pitch 축은 비행기의 앞코가 위/아래로 회전하는 방향의 기준이 되는 축을 의미할 수 있다. 도시된 비행기 주축 개념에서 pitch 축은 비행기의 날개에서 날개로 이어지는 축을 의미할 수 있다.
Yaw 축은 비행기의 앞코가 좌/우로 회전하는 방향의 기준이 되는 축을 의미할 수 있다. 도시된 비행기 주축 개념에서 yaw 축은 비행기의 위에서 아래로 이어지는 축을 의미할 수 있다.
Roll 축은 도시된 비행기 주축 개념에서 비행기의 앞코에서 꼬리로 이어지는 축으로서, roll 방향의 회전이란 roll 축을 기준으로 한 회전을 의미할 수 있다.
전술한 바와 같이, pitch, yaw, roll 개념을 통해 본 발명에서의 3D 공간이 기술될 수 있다.
도 6 는 본 발명의 일 실시예에 따른 프로젝션 스킴들을 도시한 도면이다.
전술한 바와 같이 본 발명에 따른 360 비디오 전송 장치의 프로젝션 처리부는 스티칭된 360 비디오 데이터를 2D 이미지 상에 프로젝션할 수 있다. 이 과정에서 다양한 프로젝션 스킴들이 활용될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 프로젝션 처리부는 큐빅 프로젝션(Cubic Projection) 스킴을 이용하여 프로젝션을 수행할 수 있다. 예를 들어 스티칭된 360 비디오 데이터는 구형의 면 상에 나타내어질 수 있다. 프로젝션 처리부는 이러한 360 비디오 데이터를 큐브(Cube, 정육면체) 형태로 나누어 2D 이미지 상에 프로젝션할 수 있다. 구형의 면 상의 360 비디오 데이터는 큐브의 각 면에 대응되어, 2D 이미지 상에 (a) 좌측 또는 (a) 우측과 같이 프로젝션될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 프로젝션 처리부는 실린더형 프로젝션(Cylindrical Projection) 스킴을 이용하여 프로젝션을 수행할 수 있다. 마찬가지로 스티칭된 360 비디오 데이터가 구형의 면 상에 나타내어질 수 있다고 가정할 때, 프로젝션 처리부는 이러한 360 비디오 데이터를 실린더(Cylinder) 형태로 나누어 2D 이미지 상에 프로젝션할 수 있다. 구형의 면 상의 360 비디오 데이터는 실린더의 옆면(side)과 윗면(top), 바닥면(bottom) 에 각각 대응되어, 2D 이미지 상에 (b) 좌측 또는 (b) 우측과 같이 프로젝션될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 프로젝션 처리부는 피라미드 프로젝션(Pyramid Projection) 스킴을 이용하여 프로젝션을 수행할 수 있다. 마찬가지로 스티칭된 360 비디오 데이터가 구형의 면 상에 나타내어질 수 있다고 가정할 때, 프로젝션 처리부는 이러한 360 비디오 데이터를 피라미드 형태로 보고, 각 면을 나누어 2D 이미지 상에 프로젝션할 수 있다. 구형의 면 상의 360 비디오 데이터는 피라미드의 바닥면(front), 피라미드의 4방향의 옆면(Left top, Left bottom, Right top, Right bottom) 에 각각 대응되어, 2D 이미지 상에 (c) 좌측 또는 (c) 우측과 같이 프로젝션될 수 있다.
실시예에 따라 프로젝션 처리부는 전술한 스킴들 외에 등정방형 프로젝션(Equirectangular Projection) 스킴, 파노라믹 프로젝션(Panoramic Projection) 스킴 등을 이용하여 프로젝션을 수행할 수도 있다.
전술한 바와 같이 리전(Region) 이란, 360 비디오 데이터가 프로젝션된 2D 이미지가 나누어진 영역을 의미할 수 있다. 이 리전들은 프로젝션 스킴에 따라 프로젝션된 2D 이미지 상의 각 면들과 일치할 필요는 없다. 그러나 실시예에 따라, 프로젝션된 2D 이미지 상의 각 면들이 리전과 대응되도록 리전이 구분되어, 리전별 패킹이 수행될 수도 있다. 실시예에 따라 복수개의 면들이 하나의 리전에 대응될 수도 있고, 하나의 면이 복수개의 리전에 대응되게 리전이 구분될 수도 있다. 이 경우, 리전은 프로젝션 스킴에 따라 달라질 수 있다. 예를 들어 (a) 에서 정육면체의 각 면들(top, bottom, front, left, right, back) 은 각각 리전일 수 있다. (b) 에서 실린더의 옆면(side), 윗면(top), 바닥면(bottom) 은 각각 리전일 수 있다. (c) 에서 피라미드의 바닥면(front), 4방향 옆면(Left top, Left bottom, Right top, Right bottom) 들은 각각 리전일 수 있다.
도 7 은 본 발명의 일 실시예에 따른 타일(Tile)을 도시한 도면이다.
2D 이미지에 프로젝션된 360 비디오 데이터 또는 리전별 패킹까지 수행된 360 비디오 데이터는 하나 이상의 타일로 구분될 수 있다. 도시된 (a) 는 하나의 2D 이미지가 16 개의 타일로 나뉘어진 형태를 도시하고 있다. 여기서 2D 이미지란 전술한 프로젝티드 프레임 내지는 팩드 프레임일 수 있다. 본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 데이터 인코더는 각각의 타일을 독립적으로 인코딩할 수 있다.
전술한 리전별 패킹과 타일링(Tiling)은 구분될 수 있다. 전술한 리전별 패킹은 코딩 효율을 높이기 위해 또는 레졸루션을 조정하기 위하여 2D 이미지상에 프로젝션된 360 비디오 데이터를 리전으로 구분하여 처리하는 것을 의미할 수 있다. 타일링은 데이터 인코더가 프로젝티드 프레임 내지는 팩드 프레임을 타일이라는 구획별로 나누고, 해당 타일들 별로 독립적으로 인코딩을 수행하는 것을 의미할 수 있다. 360 비디오가 제공될 때, 사용자는 360 비디오의 모든 부분을 동시에 소비하지 않는다. 타일링은 제한된 밴드위스(bandwidth)상에서 사용자가 현재 보는 뷰포트 등 중요 부분 내지 일정 부분에 해당하는 타일만을 수신측으로 전송 혹은 소비하는 것을 가능케할 수 있다. 타일링을 통해 제한된 밴드위스가 더 효율적으로 활용될 수 있고, 수신측에서도 모든 360 비디오 데이터를 한번에 다 처리하는 것에 비하여 연산 부하를 줄일 수 있다.
리전과 타일은 구분되므로, 두 영역이 같을 필요는 없다. 그러나 실시예에 따라 리전과 타일은 같은 영역을 지칭할 수도 있다. 실시예에 따라 타일에 맞추어 리전별 패킹이 수행되어 리전과 타일이 같아질 수 있다. 또한 실시예에 따라, 프로젝션 스킴에 따른 각 면과 리전이 같은 경우, 프로젝션 스킴에 따른 각 면, 리전, 타일이 같은 영역을 지칭할 수도 있다. 문맥에 따라 리전은 VR 리전, 타일을 타일 리전으로 불릴 수도 있다.
ROI (Region of Interest) 는 360 컨텐츠 제공자가 제안하는, 사용자들의 관심 영역을 의미할 수 있다. 360 컨텐츠 제공자는 360 비디오를 제작할 때, 어느 특정 영역을 사용자들이 관심있어 할 것으로 보고, 이를 고려하여 360 비디오를 제작할 수 있다. 실시예에 따라 ROI 는 360 비디오의 컨텐츠 상, 중요한 내용이 재생되는 영역에 해당할 수 있다.
본 발명에 따른 360 비디오 전송/수신 장치의 또 다른 실시예에 의하면, 수신측 피드백 처리부는 뷰포트 정보를 추출, 수집하여 이를 송신측 피드백 처리부로 전달할 수 있다. 이 과정에서 뷰포트 정보는 양 측의 네트워크 인터페이스를 이용해 전달될 수 있다. 도시된 (a) 의 2D 이미지에서 뷰포트 (t6010) 가 표시되었다. 여기서 뷰포트 는 2D 이미지 상의 9 개의 타일에 걸쳐 있을 수 있다.
이 경우 360 비디오 전송 장치는 타일링 시스템을 더 포함할 수 있다. 실시예에 따라 타일링 시스템은 데이터 인코더 다음에 위치할 수도 있고(도시된 (b)), 전술한 데이터 인코더 내지 전송 처리부 내에 포함될 수도 있고, 별개의 내/외부 엘리먼트로서 360 비디오 전송 장치에 포함될 수 있다.
타일링 시스템은 송신측 피드백 처리부로부터 뷰포트 정보를 전달받을 수 있다. 타일링 시스템은 뷰포트 영역이 포함되는 타일만을 선별하여 전송할 수 있다. 도시된 (a) 의 2D 이미지에서 총 16 개의 타일 중 뷰포트 영역(t6010) 을 포함하는 9 개의 타일들만이 전송될 수 있다. 여기서 타일링 시스템은 브로드밴드를 통한 유니캐스트 방식으로 타일들을 전송할 수 있다. 사용자에 따라 뷰포트 영역이 다르기 때문이다.
또한 이 경우 송신측 피드백 처리부는 뷰포트 정보를 데이터 인코더로 전달할 수 있다. 데이터 인코더는 뷰포트 영역을 포함하는 타일들에 대해 다른 타일들보다 더 높은 퀄리티로 인코딩을 수행할 수 있다.
또한 이 경우 송신측 피드백 처리부는 뷰포트 정보를 메타데이터 처리부로 전달할 수 있다. 메타데이터 처리부는 뷰포트 영역과 관련된 메타데이터 를 360 비디오 전송 장치의 각 내부 엘레먼트로 전달해주거나, 360 비디오 관련 메타데이터에 포함시킬 수 있다.
이러한 타일링 방식을 통하여, 전송 밴드위스(bandwidth)가 절약될 수 있으며, 타일 별로 차등화된 처리를 수행하여 효율적 데이터 처리/전송이 가능해질 수 있다.
전술한 뷰포트 영역과 관련된 실시예들은 뷰포트 영역이 아닌 다른 특정 영역들에 대해서도 유사한 방식으로 적용될 수 있다. 예를 들어, 전술한 게이즈 분석을 통해 사용자들이 주로 관심있어 하는 것으로 판단된 영역, ROI 영역, 사용자가 VR 디스플레이를 통해 360 비디오를 접할 때 처음으로 재생되는 영역(초기 시점, Initial Viewpoint) 등에 대해서도, 전술한 뷰포트 영역과 같은 방식의 처리들이 수행될 수 있다.
본 발명에 따른 360 비디오 전송 장치의 또 다른 실시예에 의하면, 전송 처리부는 각 타일 별로 다르게 전송을 위한 처리를 수행할 수 있다. 전송 처리부는 타일 별로 다른 전송 파라미터(모듈레이션 오더, 코드 레이트 등)를 적용하여, 각 타일 별로 전달되는 데이터의 강건성(robustenss)을 다르게 할 수 있다.
이 때, 송신측 피드백 처리부는 360 비디오 수신 장치로부터 전달받은 피드백 정보를 전송 처리부로 전달하여, 전송 처리부가 타일별 차등화된 전송 처리를 수행하도록 할 수 있다. 예를 들어 송신측 피드백 처리부는 수신측으로부터 전달받은 뷰포트 정보를 전송 처리부로 전달할 수 있다. 전송 처리부는 해당 뷰포트 영역을 포함하는 타일들에 대해 다른 타일들보다 더 높은 강건성을 가지도록 전송 처리를 수행할 수 있다.
도 8 은 본 발명의 일 실시예에 따른 360도 비디오 관련 메타데이터를 도시한 도면이다.
전술한 360 비디오 관련 메타데이터는 360 비디오에 대한 다양한 메타데이터를 포함할 수 있다. 문맥에 따라, 360 비디오 관련 메타데이터는 360 비디오 관련 시그널링 정보라고 불릴 수도 있다. 360 비디오 관련 메타데이터는 별도의 시그널링 테이블에 포함되어 전송될 수도 있고, DASH MPD 내에 포함되어 전송될 수도 있고, ISOBMFF 등의 파일 포맷에 box 형태로 포함되어 전달될 수도 있다. 360 비디오 관련 메타데이터가 box 형태로 포함되는 경우 파일, 프래그먼트, 트랙, 샘플 엔트리, 샘플 등등 다양한 레벨에 포함되어 해당되는 레벨의 데이터에 대한 메타데이터를 포함할 수 있다.
실시예에 따라, 후술하는 메타데이터의 일부는 시그널링 테이블로 구성되어 전달되고, 나머지 일부는 파일 포맷 내에 box 혹은 트랙 형태로 포함될 수도 있다.
본 발명에 따른 360 비디오 관련 메타데이터의 일 실시예에 의하면, 360 비디오 관련 메타데이터는 프로젝션 스킴 등에 관한 기본 메타데이터, 스테레오스코픽(stereoscopic) 관련 메타데이터, 초기 시점(Initial View/Initial Viewpoint) 관련 메타데이터, ROI 관련 메타데이터, FOV (Field of View) 관련 메타데이터 및/또는 크롭된 영역(cropped region) 관련 메타데이터를 포함할 수 있다. 실시예에 따라 360 비디오 관련 메타데이터는 전술한 것 외에 추가적인 메타데이터를 더 포함할 수 있다.
본 발명에 따른 360 비디오 관련 메타데이터의 실시예들은 전술한 기본 메타데이터, 스테레오스코픽 관련 메타데이터, 초기 시점 관련 메타데이터, ROI 관련 메타데이터, FOV 관련 메타데이터, 크롭된 영역 관련 메타데이터 및/또는 이후 추가될 수 있는 메타데이터들 중 적어도 하나 이상을 포함하는 형태일 수 있다. 본 발명에 따른 360 비디오 관련 메타데이터의 실시예들은, 각각 포함하는 세부 메타데이터들의 경우의 수에 따라 다양하게 구성될 수 있다. 실시예에 따라 360 비디오 관련 메타데이터는 전술한 것 외에 추가적인 정보들을 더 포함할 수도 있다.
기본 메타데이터에는 3D 모델 관련 정보, 프로젝션 스킴 관련 정보 등이 포함될 수 있다. 기본 메타데이터에는 vr_geometry 필드, projection_scheme 필드 등이 포함될 수 있다. 실시예에 따라 기본 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
vr_geometry 필드는 해당 360 비디오 데이터가 지원하는 3D 모델의 타입을 지시할 수 있다. 전술한 바와 같이 360 비디오 데이터가 3D 공간 상에 리-프로젝션되는 경우, 해당 3D 공간은 vr_geometry 필드가 지시하는 3D 모델에 따른 형태를 가질 수 있다. 실시예에 따라, 렌더링시에 사용되는 3D 모델은 vr_geometry 필드가 지시하는 리-프로젝션에 사용되는 3D 모델과 다를 수도 있다. 이 경우, 기본 메타데이터는 렌더링시에 사용되는 3D 모델을 지시하는 필드를 더 포함할 수도 있다. 해당 필드가 0, 1, 2, 3 의 값을 가지는 경우 3D 공간은 각각 구형(Sphere), 큐브(Cube), 실린더(Cylinder), 피라미드(Pyramid)의 3D 모델을 따를 수 있다. 해당 필드가 나머지 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(Reserved for Future Use). 실시예에 따라 360 비디오 관련 메타데이터는 해당 필드에 의해 지시되는 3D 모델에 대한 구체적인 정보를 더 포함할 수 있다. 여기서 3D 모델에 대한 구체적인 정보란 예를 들어 구형의 반지름 정보, 실린더의 높이 정보 등을 의미할 수 있다. 본 필드는 생략될 수 있다.
projection_scheme 필드는 해당 360 비디오 데이터가 2D 이미지 상에 프로젝션될 때 사용된 프로젝션 스킴을 지시할 수 있다. 해당 필드가 0, 1, 2, 3, 4, 5 의 값을 가지는 경우, 각각 등정방형 프로젝션(Equirectangular Projection) 스킴, 큐빅 프로젝션 스킴, 실린더형 프로젝션 스킴, 타일-베이스드(Tile-based) 프로젝션 스킴, 피라미드 프로젝션 스킴, 파노라믹 프로젝션 스킴이 사용되었을 수 있다. 해당 필드가 6 의 값을 가지는 경우는, 360 비디오 데이터가 스티칭 없이 바로 2D 이미지 상에 프로젝션된 경우일 수 있다. 해당 필드가 나머지 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(Reserved for Future Use). 실시예에 따라 360 비디오 관련 메타데이터는 해당 필드에 의해 특정되는 프로젝션 스킴에 의해 발생한 리전(Region)에 대한 구체적인 정보를 더 포함할 수 있다. 여기서 리전에 대한 구체적인 정보란 예를 들어 리전의 회전 여부, 실린더의 윗면(top) 리전의 반지름 정보 등을 의미할 수 있다.
스테레오스코픽 관련 메타데이터는 360 비디오 데이터의 3D 관련 속성들에 대한 정보들을 포함할 수 있다. 스테레오스코픽 관련 메타데이터는 is_stereoscopic 필드 및/또는 stereo_mode 필드를 포함할 수 있다. 실시예에 따라 스테레오스코픽 관련 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
is_stereoscopic 필드는 해당 360 비디오 데이터가 3D 를 지원하는지 여부를 지시할 수 있다. 해당 필드가 1 이면 3D 지원, 0 이면 3D 미지원을 의미할 수 있다. 본 필드는 생략될 수 있다.
stereo_mode 필드는 해당 360 비디오가 지원하는 3D 레이아웃을 지시할 수 있다. 본 필드만으로 해당 360 비디오가 3D 를 지원하는지 여부를 지시할 수도 있는데, 이 경우 전술한 is_stereoscopic 필드는 생략될 수 있다. 본 필드 값이 0 인 경우, 해당 360 비디오는 모노(mono) 모드일 수 있다. 즉 프로젝션된 2D 이미지는 하나의 모노 뷰(mono view) 만을 포함할 수 있다. 이 경우 해당 360 비디오는 3D 를 지원하지 않을 수 있다.
본 필드 값이 1, 2 인 경우, 해당 360 비디오는 각각 좌우(Left-Right) 레이아웃, 상하(Top-Bottom) 레이아웃에 따를 수 있다. 좌우 레이아웃, 상하 레이아웃은 각각 사이드-바이-사이드 포맷, 탑-바텀 포맷으로 불릴 수도 있다. 좌우 레이아웃의 경우, 좌영상/우영상이 프로젝션된 2D 이미지들은 이미지 프레임 상에서 각각 좌/우로 위치할 수 있다. 상하 레이아웃의 경우, 좌영상/우영상이 프로젝션된 2D 이미지들은 이미지 프레임 상에서 각각 위/아래로 위치할 수 있다. 해당 필드가 나머지 값을 가지는 경우는 향후 사용을 위해 남겨둘 수 있다(Reserved for Future Use).
초기 시점 관련 메타데이터는 사용자가 360 비디오를 처음 재생했을 때 보게되는 시점(초기 시점)에 대한 정보를 포함할 수 있다. 초기 시점 관련 메타데이터는 initial_view_yaw_degree 필드, initial_view_pitch_degree 필드 및/또는 initial_view_roll_degree 필드를 포함할 수 있다. 실시예에 따라 초기 시점 관련 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
initial_view_yaw_degree 필드, initial_view_pitch_degree 필드, initial_view_roll_degree 필드는 해당 360 비디오 재생 시의 초기 시점을 나타낼 수 있다. 즉, 재생시 처음 보여지는 뷰포트의 정중앙 지점이, 이 세 필드들에 의해 나타내어질 수 있다. 각 필드는 그 정중앙 지점이 위치를 yaw, pitch, roll 축을 기준으로 회전된 방향(부호) 및 그 정도(각도)로 나타낼 수 있다. 이 때 FOV 에 따라 처음 재생시 보여지게 되는 뷰포트가 결정될 수 있다. FOV 를 통하여, 지시된 초기 시점을 기준으로 한, 초기 뷰포트의 가로길이 및 세로길이(width, height) 가 결정될 수 있다. 즉, 이 세 필드들 및 FOV 정보를 이용하여, 360 비디오 수신 장치는 사용자에게 360 비디오의 일정 영역을 초기 뷰포트로서 제공할 수 있다.
실시예에 따라, 초기 시점 관련 메타데이터가 지시하는 초기 시점은, 장면(scene) 별로 변경될 수 있다. 즉, 360 컨텐츠의 시간적 흐름에 따라 360 비디오의 장면이 바뀌게 되는데, 해당 360 비디오의 장면마다 사용자가 처음 보게되는 초기 시점 내지 초기 뷰포트가 변경될 수 있다. 이 경우, 초기 시점 관련 메타데이터는 각 장면별로의 초기 시점을 지시할 수 있다. 이를 위해 초기 시점 관련 메타데이터는, 해당 초기 시점이 적용되는 장면을 식별하는 장면(scene) 식별자를 더 포함할 수도 있다. 또한 360 비디오의 장면별로 FOV 가 변할 수도 있으므로, 초기 시점 관련 메타데이터는 해당 장면에 해당하는 FOV 를 나타내는 장면별 FOV 정보를 더 포함할 수도 있다.
ROI 관련 메타데이터는 전술한 ROI 에 관련된 정보들을 포함할 수 있다. ROI 관련 메타데이터는, 2d_roi_range_flag 필드 및/또는 3d_roi_range_flag 필드를 포함할 수 있다. 두 필드는 각각 ROI 관련 메타데이터가 2D 이미지를 기준으로 ROI 를 표현하는 필드들을 포함하는지, 3D 공간을 기준으로 ROI 를 표현하는 필드들을 포함하는지 여부를 지시할 수 있다. 실시예에 따라 ROI 관련 메타데이터는, ROI 에 따른 차등 인코딩 정보, ROI 에 따른 차등 전송처리 정보 등 추가적인 정보들을 더 포함할 수도 있다.
ROI 관련 메타데이터가 2D 이미지를 기준으로 ROI 를 표현하는 필드들을 포함하는 경우, ROI 관련 메타데이터는 min_top_left_x 필드, max_top_left_x 필드, min_top_left_y 필드, max_top_left_y 필드, min_width 필드, max_width 필드, min_height 필드, max_height 필드, min_x 필드, max_x 필드, min_y 필드 및/또는 max_y 필드를 포함할 수 있다.
min_top_left_x 필드, max_top_left_x 필드, min_top_left_y 필드, max_top_left_y 필드는 ROI 의 좌측 상단 끝의 좌표의 최소/최대값을 나타낼 수 있다. 이 필드들은 차례로 좌상단 끝의 최소 x 좌표, 최대 x 좌표, 최소 y 좌표, 최대 y 좌표 를 나타낼 수 있다.
min_width 필드, max_width 필드, min_height 필드, max_height 필드는 ROI 의 가로 크기(width), 세로 크기(height)의 최소/최대값을 나타낼 수 있다. 이 필드들은 차례로 가로 크기의 최소값, 가로 크기의 최대값, 세로 크기의 최소값, 세로 크기의 최대값을 나타낼 수 있다.
min_x 필드, max_x 필드, min_y 필드, max_y 필드는 ROI 내의 좌표들의 최소/최대값을 나타낼 수 있다. 이 필드들은 차례로 ROI 내 좌표들의 최소 x 좌표, 최대 x 좌표, 최소 y 좌표, 최대 y 좌표 를 나타낼 수 있다. 이 필드들은 생략될 수 있다.
ROI 관련 메타데이터가 3D 랜더링 공간 상의 좌표 기준으로 ROI 를 표현하는 필드들을 포함하는 경우, ROI 관련 메타데이터는 min_yaw 필드, max_yaw 필드, min_pitch 필드, max_pitch 필드, min_roll 필드, max_roll 필드, min_field_of_view 필드 및/또는 max_field_of_view 필드를 포함할 수 있다.
min_yaw 필드, max_yaw 필드, min_pitch 필드, max_pitch 필드, min_roll 필드, max_roll 필드는 ROI 가 3D 공간상에서 차지하는 영역을 yaw, pitch, roll 의 최소/최대값으로 나타낼 수 있다. 이 필드들은 차례로 yaw 축 기준 회전량의 최소값, yaw 축 기준 회전량의 최대값, pitch 축 기준 회전량의 최소값, pitch 축 기준 회전량의 최대값, roll 축 기준 회전량의 최소값, roll 축 기준 회전량의 최대값을 나타낼 수 있다.
min_field_of_view 필드, max_field_of_view 필드는 해당 360 비디오 데이터의 FOV 의 최소/최대값을 나타낼 수 있다. FOV 는 360 비디오의 재생시 한번에 디스플레이되는 시야범위를 의미할 수 있다. min_field_of_view 필드, max_field_of_view 필드는 각각 FOV 의 최소값, 최대값을 나타낼 수 있다. 이 필드들은 생략될 수 있다. 이 필드들은 후술할 FOV 관련 메타데이터에 포함될 수도 있다.
FOV 관련 메타데이터는 전술한 FOV 에 관련한 정보들을 포함할 수 있다. FOV 관련 메타데이터는 content_fov_flag 필드 및/또는 content_fov 필드를 포함할 수 있다. 실시예에 따라 FOV 관련 메타데이터는 전술한 FOV 의 최소/최대값 관련 정보 등 추가적인 정보들을 더 포함할 수도 있다.
content_fov_flag 필드는 해당 360 비디오에 대하여 제작시 의도한 FOV 에 대한 정보가 존재하는지 여부를 지시할 수 있다. 본 필드값이 1인 경우, content_fov 필드가 존재할 수 있다.
content_fov 필드는 해당 360 비디오에 대하여 제작시 의도한 FOV 에 대한 정보를 나타낼 수 있다. 실시예에 따라 해당 360 비디오 수신 장치의 수직(vertical) 혹은 수평(horizontal) FOV 에 따라, 360 영상 중에서 사용자에게 한번에 디스플레이되는 영역이 결정될 수 있다. 혹은 실시예에 따라 본 필드의 FOV 정보를 반영하여 사용자에게 한번에 디스플레이되는 360 비디오의 영역이 결정될 수도 있다.
크롭된 영역 관련 메타데이터는 이미지 프레임 상에서 실제 360 비디오 데이터를 포함하는 영역에 대한 정보를 포함할 수 있다. 이미지 프레임은 실제 360 비디오 데이터 프로젝션된 액티브 비디오 영역(Active Video Area)과 그렇지 않은 영역을 포함할 수 있다. 이 때 액티브 비디오 영역은 크롭된 영역 또는 디폴트 디스플레이 영역이라고 칭할 수 있다. 이 액티브 비디오 영역은 실제 VR 디스플레이 상에서 360 비디오로서 보여지는 영역으로서, 360 비디오 수신 장치 또는 VR 디스플레이는 액티브 비디오 영역만을 처리/디스플레이할 수 있다. 예를 들어 이미지 프레임의 종횡비(aspect ratio) 가 4:3 인 경우 이미지 프레임의 윗 부분 일부와 아랫부분 일부를 제외한 영역만 360 비디오 데이터를 포함할 수 있는데, 이 부분을 액티브 비디오 영역이라고 할 수 있다.
크롭된 영역 관련 메타데이터는 is_cropped_region 필드, cr_region_left_top_x 필드, cr_region_left_top_y 필드, cr_region_width 필드 및/또는 cr_region_height 필드를 포함할 수 있다. 실시예에 따라 크롭된 영역 관련 메타데이터는 추가적인 정보들을 더 포함할 수도 있다.
is_cropped_region 필드는 이미지 프레임의 전체 영역이 360 비디오 수신 장치 내지 VR 디스플레이에 의해 사용되는지 여부를 나타내는 플래그일 수 있다. 즉, 본 필드는 이미지 프레임 전체가 액티브 비디오 영역인지 여부를 지시할 수 있다. 이미지 프레임의 일부만이 액티브 비디오 영역인 경우, 하기의 4 필드가 더 추가될 수 있다.
cr_region_left_top_x 필드, cr_region_left_top_y 필드, cr_region_width 필드, cr_region_height 필드는 이미지 프레임 상에서 액티브 비디오 영역을 나타낼 수 있다. 이 필드들은 각각 액티브 비디오 영역의 좌상단의 x 좌표, 액티브 비디오 영역의 좌상단의 y 좌표, 액티브 비디오 영역의 가로 길이(width), 액티브 비디오 영역의 세로 길이(height) 를 나타낼 수 있다. 가로 길이와 세로 길이는 픽셀을 단위로 나타내어질 수 있다.
전술한 바와 같이, 360도 비디오 관련 시그널링 정보 또는 메타데이터는 임의로 정의된 시그널링 테이블에 포함될 수 있고, ISOBMFF 또는 Common File Format 등의 파일 포맷에 box형태로 포함될 수도 있으며, DASH MPD 내에 포함되어 전송될 수도 있다. 또한, 360도 미디어 데이터는 이러한 파일 포맷 또는 DASH segment에 포함되어 전송될 수도 있다.
이하, ISOBMFF 및 DASH MPD에 대해 순차적으로 설명한다.
도9는 3DoF+ VR 시스템에서 추가적으로 정의되는 위치(viewpoint)와 시점(viewing position)를 나타낸다.
본 발명은360 비디오 기반 VR 시스템은 전술한 360 비디오 처리 과정을 기반으로 360 비디오에 대하여 사용자의 위치를 기준으로 서로 다른 방향(viewing orientation)에 대한 시각적/청각적 경험을 제공할 수 있다. 이러한 방법을 3DoF (three degree of freedom) plus라고 명명할 수 있다. 구체적으로, 360 비디오에 대하여 사용자의 고정 위치에서의 서로 다른 방향에 대한 시작적/청각적 경험을 제공하는 VR 시스템은 3DoF 기반 VR 시스템이라고 불릴 수 있다.
한편, 동일 시간대에서 서로 다른 위치 (viewpoint), 서로 다른 시점(viewing position)에서의 서로 다른 방향에 대한 확장된 시각적/청각적 경험을 제공할 수 있는 VR 시스템은 3DoF+ 또는 3DoF plus 기반 VR 시스템라고 불릴 수 있다.
1) (a)와 같은 공간(공연장의 예)을 가정했을 때, 서로 다른 위치(붉은색 동그라미로 표시된 공연장의 위치의 예)를 각각의 viewpoint로 고려할 수 있다. 이 때, 예제와 같이 동일 공간에 존재하는 각 viewpoint에서 제공되는 영상/음성은 동일한 시간 흐름을 가질 수 있다.
2) 이 경우 특정 위치에서 사용자의 시점 변화(head motion)에 따라 서로 다른 시각적/청각적 경험 제공할 수 있다. 즉, 특정 viewpoint에 대해 (b)에 도시된 바와 같은 다양한 viewing position의 sphere를 가정할 수 있으며, 각 시점의 상대적인 위치를 반영한 영상/음성/텍스트 정보를 제공할 수 있다.
3) 한편, (c)에 도시된 바와 같이 특정 위치의 특정 시점에서는 기존의 3DoF와 같이 다양한 방향의 시각적/청각적 정보를 전달할 수 있다. 이 때, main source(영상/음성/텍스트) 뿐만 아니라 추가적인 다양한 소스를 통합하여 제공할 수 있으며, 이는 사용자의 시청 방향 (viewing orientation)과 연계되거나 독립적으로 정보를 전달할 수 있다.
도10은 3DoF+ 시스템에 기반한 360도 비디오 신호처리 및 관련 전송장치/수신장치 구현 방법에 대해서 도시한다.
도 10은 3DoF+ 의 영상획득, 전처리, 전송, (후)처리, 렌더링 및 피드백 과정을 포함한 3DoF+ end-to-end system 흐름도에 대한 예시이다.
1) Acquisition: 360 비디오의 캡쳐, 합성 또는 생성 과정 등을 통한 360 비디오를 획득하는 과정을 의미할 수 있다. 이 과정을 통하여 다수의 위치에 대해 head motion에 따른 다수의 영상/음성 정보를 획득할 수 있다. 이 때, 영상 정보는 시각적 정보(texture) 뿐 아니라 깊이 정보(depth)를 포함할 수 있다. 이 때 a의 영상 정보 예시와 같이 서로 다른 촬영 위치(viewpoint)에 따른 서로 다른 시점(viewing position)의 복수의 정보를 각각 획득할 수 있다.
2) Composition: 영상/음성 입력 장치를 통해 획득한 정보 뿐 아니라 외부 미디어를 통한 영상(비디오/이미지 등), 음성(오디오/효과음향 등), 텍스트(자막 등)을 사용자 경험에 포함하기 위해 합성하기 위한 방법을 정의할 수 있다.
3) Pre-processing: 획득된 360 비디오의 전송/전달을 위한 준비(전처리) 과정으로서, 스티칭, 프로젝션, 리전별 패킹 과정 및/또는 인코딩 과정 등을 포함할 수 있다. 즉, 이 과정은 영상/음성/텍스트 정보를 제작자의 의도에 따라 데이터를 변경/보완 하기위한 전처리 과정 및 인코딩 과정이 포함될 수 있다. 예를 들어 영상의 전처리 과정에서는 획득된 시각 정보를 360 sphere 상에 매핑하는 작업(stitching), 영역 경계를 없애거나 색상/밝기 차이를 줄이거나 영상의 시각적 효과를 주는 보정 작업(editing), 시점에 따른 영상을 분리하는 과정(view segmentation), 360 sphere 상의 영상을 2D 영상으로 매핑하는 프로젝션 과정(projection), 영역에 따라 영상을 재배치 하는 과정 (region-wise packing), 영상 정보를 압축하는 인코딩 과정이 포함될 수 있다. B의 비디오 측면의 예시와 같이 서로 다른 촬영 위치(viewpoint)에 따른 서로 다른 시점(viewing position)의 복수의 프로젝션 영상이 생성될 수 있다.
4) Delivery: 준비 과정(전처리 과정)을 거친 영상/음성 데이터 및 메타데이터들을 처리하여 전송하는 과정을 의미할 수 있다. 서로 다른 촬영 위치(viewpoint)에 따른 서로 다른 시점(viewing position)의 복수의 영상/음성 데이터 및 관련 메타데이터를 전달하는 방법으로써 전술한 바와 같이 방송망, 통신망을 이용하거나, 단방향 전달 등의 방법을 사용할 수 있다.
5) Post-processing & composition: 수신된/저장된 비디오/오디오/텍스트 데이터를 디코딩하고 최종 재생을 위한 후처리 과정을 의미할 수 있다. 예를 들어 후처리 과정은 전술한 바와 같이 패킹 된 영상을 풀어주는 언패킹 및 2D 프로젝션 된 영상을 3D 구형 영상으로복원하는 리-프로젝션 과정 등이 포함될 수 있다.
6) Rendering: 3D 공간상에 리-프로젝션된 이미지/비디오 데이터를 렌더링하고 디스플레이하는 과정을 의미할 수 있다. 이 과정에서 영상/음성 신호를 최종적으로 출력하기 위한 형태로 재구성할 수 있다. 사용자의 관심영역이 존재하는 방향(viewing orientation), 시점(viewing position/head position), 위치(viewpoint)를 추적할 수 있으며, 이 정보에 따라 필요한 영상/음성/텍스트 정보만을 선택적으로 사용할 수 있다. 이 때, 영상 신호의 경우 사용자의 관심영역에 따라 c와 같이 서로 다른 시점을 선택할 수 있으며, 최종적으로 d와 같이 특정 위치에서의 특정 시점의 특정 방향의 영상을 출력할 수 있다.
7) Feedback: 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신측으로 전달하는 과정을 의미할 수 있다. 본 실시예의 경우 사용자 관심영역의 방향(viewing orientation), 시점(viewing position), 위치(viewpoint)를 추정하고, 이를 기반으로 영상/음성을 재생할 수 있도록 피드백을 전달할 수 있다.
도11은 3DoF+ end-to-end 시스템의 구조를 나타낸다.
도11은 3DoF+ end-to-end 시스템 아키텍쳐의 예시이다. 도 11의 아키텍처에 의하여 전술된 바와 같이 3DoF+ 360 컨텐츠가 제공될 수 있다.
360 비디오 전송 장치는 크게 360 비디오(이미지)/오디오 데이터 획득이 이루어지는 부분 (acquisition unit), 획득된 데이터를 처리하는 부분 (video/audio pre-processor), 추가 정보를 합성하기 위한 부분(composition generation unit), 텍스트, 오디오 및 프로젝션된 360도 비디오를 인코딩하는 부분(encoding unit) 및 인코딩된 데이터를 인캡슐레이션하는 부분(encapsulation unit)으로 구성될 수 있다. 전술한 바와 같이 인코딩된 데이터는 비트스트림(bitstream) 형태로 출력될 수 있으며, 인코딩된 데이터는 ISOBMFF, CFF 등의 파일 포맷으로 인캡슐레이션되거나, 기타 DASH 세그먼트 등의 형태로 처리할 수 있다. 인코딩된 데이터는 디지털 저장 매체를 통하여 360 비디오 수신 장치로 전달될 수 있으며, 또는 비록 명시적으로 도시되지는 않았으나, 전술한 바와 같이 전송 처리부를 통하여 전송을 위한 처리를 거치고, 이후 방송망 또는 브로드밴드 등을 통하여 전송될 수 있다.
데이터 획득 부분에서는 센서의 방향(sensor orientation, 영상의 경우 viewing orientation), 센서의 정보 획득 시점(sensor position, 영상의 경우 viewing position), 센서의 정보 획득 위치(영상의 경우 viewpoint)에 따라 서로 다른 정보를 동시에 혹은 연속적으로 획득할 수 있으며, 이 때 비디오, 이미지, 오디오, 위치 정보 등을 획득할 수 있다.
영상 데이터의 경우 텍스처 (texture) 및 깊이 정보(depth)를 각각 획득할 수 있으며, 각 컴포넌트의 특성에 따라 서로 다른 전처리 (video pre-processing)가 가능하다. 예를 들어 텍스처 정보의 경우 이미지 센서 위치 정보를 이용하여 동일 위치 (viewpoint)에서 획득한 동일 시점 (viewing position)의 서로 다른 방향 (viewing orientation)의 영상들을 이용하여 360 전방위 영상을 구성할 수 있으며, 이를 위해 영상 스티칭 (stitching) 과정을 수행할 수 있다. 또한 영상을 인코딩하기 위한 포맷으로 변경하기 위한 프로젝션(projection) 및/또는 리전별 팩킹을 수행할 수 있다. 깊이 영상의 경우 일반적으로 뎁스 카메라를 통해 영상을 획득할 수 있으며, 이 경우 텍스쳐와 같은 형태로 깊이 영상을 만들 수 있다. 혹은, 별도로 측정된 데이터를 바탕으로 깊이 데이터를 생성할 수도 있다. 컴포넌트 별 영상이 생성된 후 효율적인 압축을 위한 비디오 포맷으로의 추가 변환 (packing)을 하거나 실제 필요한 부분으로 나누어 재 구성하는 과정 (sub-picture generation)이 수행될 수 있다. Video pre-processing 단에서 사용된 영상 구성에 대한 정보는 video metadata로 전달된다.
획득된 데이터 (혹은 주요하게 서비스 하기 위한 데이터) 이외에 추가적으로 주어지는 영상/음성/텍스트 정보를 함께 서비스 하는 경우, 이들 정보를 최종 재생 시 합성하기 위한 정보를 제공할 필요가 있다. 컴포지션 생성부(Composition generation unit)에서는 제작자의 의도를 바탕으로 외부에서 생성된 미디어 데이터 (영상의 경우 비디오/이미지, 음성의 경우 오디오/효과 음향, 텍스트의 경우 자막 등)를 최종 재생 단에서 합성하기 위한 정보를 생성하며, 이 정보는 composition metadata로 전달된다.
각각의 처리를 거친 영상/음성/텍스트 정보는 각각의 인코더를 이용해 압축되고, 어플리케이션에 따라 파일 혹은 세그먼트 단위로 인캡슐레이션 된다. 이 때, 비디오, 파일 혹은 세그먼트 구성 방법에 따라 필요한 정보만을 추출(file extractor)이 가능하다.
또한 각 데이터를 수신기에서 재구성하기 위한 정보가 코덱 혹은 파일 포멧/시스템 레벨에서 전달되는데, 여기에서는 비디오/오디오 재구성을 위한 정보 (video/audio metadata), 오버레이를 위한 합성 정보 (composition metadata), 비디오/오디오 재생 가능 위치 (viewpoint) 및 각 위치에 따른 시점 (viewing position) 정보 (viewing position and viewpoint metadata) 등이 포함된다. 이와 같은 정보의 처리는 별도의 메타데이터 처리부를 통한 생성도 가능하다.
360 비디오 수신 장치는 크게 수신된 파일 혹은 세그먼트를 디캡슐레이션하는 부분 (file/segment decapsulation unit), 비트스트림으로부터 영상/음성/텍스트 정보를 생성하는 부분 (decoding unit), 영상/음성/텍스트를 재생하기 위한 형태로 재구성하는 부분 (post-processor), 사용자의 관심영역을 추적하는 부분 (tracking unit) 및 재생 장치인 디스플레이로 구성될 수 있다.
디캡슐레이션을 통해 생성된 비트스트림은 데이터의 종류에 따라 영상/음성/텍스트 등으로 나뉘어 재생 가능한 형태로 개별적으로 디코딩될 수 있다.
tracking 부분에서는 센서 및 사용자의 입력 정보 등을 바탕으로 사용자의 관심 영역 (Region of interest)의 위치 (viewpoint), 해당 위치에서의 시점 (viewing position), 해당 시점에서의 방향 (viewing orientation) 정보를 생성하게 되며, 이 정보는 360 비디오 수신 장치의 각 모듈에서 관심 영역 선택 혹은 추출 등에 사용되거나, 관심 영역의 정보를 강조하기 위한 후처리 과정 등에 사용될 수 있다. 또한 360 비디오 전송 장치 에 전달되는 경우 효율적인 대역폭 사용을 위한 파일 선택 (file extractor) 혹은 서브 픽처 선택, 관심영역에 기반한 다양한 영상 재구성 방법 (viewport/viewing position / viewpoint dependent processing) 등에 사용될 수 있다.
디코딩 된 영상 신호는 영상 구성 방법에 따라 다양한 처리 방법에 따라 처리될 수 있다. 360 비디오 전송 장치에서 영상 패킹이 이루어 진 경우 메타데이터를 통해 전달된 정보를 바탕으로 영상을 재구성 하는 과정이 필요하다. 이 경우 360 비디오 전송 장치에서 생성한 video metadata를 이용할 수 있다. 또한 디코딩 된 영상 내에 복수의 시청 위치 (viewpoint), 혹은 복수의 시점 (viewing position), 혹은 다양한 방향 (viewing orientation)의 영상이 포함된 경우 tracking 을 통해 생성된 사용자의 관심 영역의 위치, 시점, 방향 정보와 매칭되는 정보를 선택하여 처리할 수 있다. 이 때, 송신단에서 생성한 viewing position and viewpoint metadata가 사용될 수 있다. 또한 특정 위치, 시점, 방향에 대해 복수의 컴포넌트가 전달되거나, 오버레이를 위한 비디오 정보가 별도로 전달되는 경우 각각에 따른 렌더링 과정이 포함될 수 있다. 별도의 렌더링 과정을 거친 비디오 데이터(텍스처, 뎁스, 오버레이)는 합성 과정 (composition)을 거치게 되며, 이 때, 송신단에서 생성한 composition metadata가 사용될 수 있다. 최종적으로 사용자의 관심 영역에 따라 viewport에 재생하기 위한 정보를 생성할 수 있다.
디코딩 된 음성 신호는 오디오 렌더러 그리고/혹은 후처리 과정을 통해 재생 가능한 음성 신호를 생성하게 되며, 이 때 사용자의 관심 영역에 대한 정보 및 360 비디오 수신 장치에 전달된 메타데이터를 바탕으로 사용자의 요구에 맞는 정보를 생성할 수 있다.
디코딩 된 텍스트 신호는 오버레이 렌더러에 전달되어 서브타이틀 등의 텍스트 기반의 오버레이 정보로써 처리된다. 필요한 경우 별도의 텍스트 후처리 과정이 포함될 수 있다.
도12는 FLUS (Framework for Live Uplink Streaming)의 구조를 나타낸다.
위에서 기술한 송신단 및 수신단의 세부 블록은 FLUS (Framework for Live Uplink Streaming)에서의 source 와 sink의 기능으로 각각 분류할 수 있으며, 이 경우 아래와 같이 정보 획득 장치에서 source의 기능을 구현하고, 네트워크 상에서 sink의 기능을 구현하거나, 혹은 네트워크 노드 내에서 source / sink를 각각 구현할 수 있다. 네트워크 노드는 UE(user equipment)를 포함할 수 있다. UE는 상술한 360 비디오 전송 장치 또는 360 비디오 수신 장치를 포함할 수 있다.
위에서 기술한 아키텍처를 기반으로 한 송수신 처리 과정을 아래와 같이 나타낼 수 있다. 아래의 송수신 처리 과정은 영상 신호 처리 과정을 기준으로 기술하며, 음성 혹은 텍스트와 같은 다른 신호를 처리하는 경우 기울임(italic)으로 표시된 부분은 생략하거나, 음성 혹은 텍스트 처리 과정에 맞도록 변경하여 처리할 수 있다.
도13은 3DoF+ 송신단의 구성을 나타낸다.
송신단(360 비디오 전송 장치)에서는 입력된 데이터가 카메라 출력 영상인 경우 sphere 영상 구성을 위한 스티칭을 위치/시점/컴포넌트 별로 진행할 수 있다. 위치/시점/컴포넌트 별 sphere 영상이 구성되면 코딩을 위해 2D 영상으로 프로젝션을 수행할 수 있다. 어플리케이션에 따라 복수의 영상을 통합 영상으로 만들기 위한 패킹 혹은 세부 영역의 영상으로 나누는 서브 픽처로 생성할 수 있다. 전술한 바와 같이 리전별 패킹 과정은 선택적(optional) 과정으로서 수행되지 않을 수 있으며, 이 경우 패킹 처리부는 생략될 수 있다. 입력된 데이터가 영상/음성/텍스트 추가 정보인 경우 추가 정보를 중심 영상에 추가하여 디스플레이 하는 방법을 알려줄 수 있으며, 추가 데이터도 함께 전송할 수 있다. 생성된 영상 및 추가된 데이터를 압축하여 비트 스트림으로 생성하는 인코딩 과정을 거쳐 전송 혹은 저장을 위한 파일 포맷으로 변환하는 인캡슐레이션 과정을 거칠 수 있다. 이 때 어플리케이션 혹은 시스템의 요구에 따라 수신부에서 필요로하는 파일을 추출하는 과정이 처리될 수 있다. 생성된 비트스트림은 전송처리부를 통해 전송 포맷으로 변환된 후 전송될 수 있다. 이 때, 송신측 피드백 처리부에서는 수신단에서 전달된 정보를 바탕으로 위치/시점/방향 정보와 필요한 메타데이터를 처리하여 관련된 송신부에서 처리하도록 전달할 수 있다.
도14는 3DoF+ 수신단의 구성을 나타낸다.
수신단(360 비디오 수신 장치)에서는 송신단에서 전달한 비트스트림을 수신한 후 필요한 파일을 추출할 수 있다. 생성된 파일 포맷 내의 영상 스트림을 피드백 처리부에서 전달하는 위치/시점/방향 정보 및 비디오 메타데이터를 이용하여 선별하며, 선별된 비트스트림을 디코더를 통해 영상 정보로 재구성할 수 있다. 패킹된 영상의 경우 메타데이터를 통해 전달된 패킹 정보를 바탕으로 언패킹을 수행할 수 있다. 송신단에서 패킹 과정이 생략된 경우, 수신단의 언패킹 또한 생략될 수 있다. 또한 필요에 따라 피드백 처리부에서 전달된 위치/시점/방향에 적합한 영상 및 필요한 컴포넌트를 선택하는 과정을 수행할 수 있다. 영상의 텍스처, 뎁스, 오버레이 정보 등을 재생하기 적합한 포맷으로 재구성하는 렌더링 과정을 수행할 수 있다. 최종 영상을 생성하기에 앞서 서로 다른 레이어의 정보를 통합하는 컴포지션 과정을 거칠 수 있으며, 디스플레이 뷰포트(viewport)에 적합한 영상을 생성하여 재생할 수 있다.
도 15는 OMAF 구조를 나타낸다.
360 비디오 기반 VR 시스템은 360 비디오 처리 과정을 기반으로 360 비디오에 대하여 사용자의 위치를 기준으로 서로 다른 방향(viewing orientation)에 대한 시각적/청각적 경험을 제공할 수 있다. 360 비디오에 대하여 사용자의 고정 위치에서의 서로 다른 방향에 대한 시작적/청각적 경험을 제공하는 서비스를 3DoF 기반 서비스라고 불릴 수 있다. 한편, 동일 시간대에서 임의의 위치 및 시점(viewing position)에서의 서로 다른 방향에 대한 확장된 시각적/청각적 경험을 제공할 수 있는 서비스는 6DoF (six degree of freedom) 기반 서비스라고 불릴 수 있다.
3DoF service를 위한 File format은 예를 들면 도15에 도시된 바와 같이 Head/eye tracking 모듈에 따라 rendering의 위치, 전송할 file의 정보, decoding 정보 등이 달라질 수 있는 구조를 가지고 있다. 그러나, 이러한 방식은 사용자의 위치 혹은 position에 따라 rendering의 정보/전송 내용, decoding의 정보가 달라지는 6DoF의 media file 전송에는 적합하지 않기에 수정이 필요하다.
도16은 사용자의 이동에 따른 미디어의 종류를 나타낸다.
본 발명은 사용자에게 몰입형 미디어/실감미디어(Immersive media)의 경험을 제공하기 위해, 6DoF contents를 제공하는 방안을 제안한다. 몰입형 미디어/실감미디어는 기존의 360 콘텐츠가 제공하는 가상의 환경에서 확대된 개념으로 기존의 360 콘텐츠가 (a)와 같은 형태로 사용자의 position 위치는 고정되어 있고, 회전에 대한 개념만 있었다면 몰입형 미디어/실감미디어는 (b) 혹은 (c) 와 같이 사용자에게 콘텐츠를 경험할 때 이동의 개념을 부여함으로써 가상의 공간에서 사용자의 이동/회전 등 더 다양한 감각적 경험을 제공할 수 있는 환경 혹은 콘텐츠를 의미할 수 있다.
(a)는 사용자의 포지션이 고정된 상태에서 사용자의 뷰가 회전하는 경우의 미디어 경험을 나타낸다.
(b) 는 사용자의 포지션이 고정된 상태에서 나아가 사용자의 머리가 추가적으로 움직일 수 있는 경우의 미디어 경험을 나타낸다.
(c) 는 사용자의 포지션이 움직일 수 있는 경우의 미디어 경험을 나타낸다.
실감 미디어 콘텐츠는 해당 콘텐츠를 제공하기 위한 6DoF비디오 및 6DoF오디오를 포함할 수 있으며, 6DoF 비디오는 실감미디어 콘텐츠 제공에 필요한 매 이동 때마다 새롭게 형성되는 3DoF 혹은 360비디오로 캡쳐되거나 재생되는 비디오 혹은 이미지를 의미 할 수 있다. 6DoF 콘텐츠는 3차원 공간 상에 나타내어지는 비디오 내지 이미지를 의미할 수 있다. 콘텐츠 내에서 이동이 고정된 상태라면 해당 콘텐츠는 기존의 360비디오와 같이 다양한 형태의 3차원 공간에서 나타내어질 수 있다. 예를 들어 구형 (Spherical)면 상에 나타내어질 수 있다. 콘텐츠 내에서 이동이 자유로운 상태라면 이동 경로 상에 사용자를 중심으로 3차원 공간이 매번 새롭게 형성되고 해당 위치의 콘텐츠를 사용자가 경험할 수 있다. 예를 들어 사용자가 처음 보는 위치에서의 구형(spherical)면 상에 나타내어진 영상을 경험하고, 3차원 공간에서 실제 사용자가 이동을 하였다면 이동한 위치를 중심으로 새로운 구형(spherical)면의 영상이 형성되고 해당 콘텐츠를 소비할 수 있다. 6DoF 오디오도 마찬가지로 실감형 미디어를 경험할 수 있도록 하는 콘텐츠를 제공하기 위한 오디오 콘텐츠로, 음향의 소비하는 위치가 이동함에 따른 공간적(spatial)오디오를 새롭게 형성하고 소비하기 위한 콘텐츠를 의미할 수 있다.
본 발명은 특히 6DoF 비디오를 효과적으로 제공하는 방안을 제안한다. 6DoF 비디오는 서로 다른 위치에서 두 개 이상의 카메라로 캡처 될 수 있다. 캡처된 비디오는 일련의 과정을 거쳐 전송되고, 수신측에서는 수신된 데이터 중 일부를 사용자의 초기 위치를 원점으로 하는 360비디오로 가공하여 렌더링 할 수 있으며 사용자의 위치가 이동하면 이동한 위치를 중심으로 새로운 360 비디오를 가공하여 렌더링 함으로써 6DoF비디오가 사용자에게 제공될 수 있다.
이하에서, 6DoF 비디오 서비스 제공을 위한 송신 방법 및 수신 방법을 설명한다.
도 17은 6DoF 비디오 제공을 위한 전체 아키텍처를 나타낸다.
앞서 정리한 일련의 과정들을 도17을 바탕으로 구체적으로 설명하자면 먼저 획득(Acquisition)단계로 6DoF contents 를 캡처를 위해 HDCA(High Density Camera Array), Lenslet (microlens) camera 등이 사용될 수 있으며, 6DoF 비디오 캡처를 위해 디자인 된 새로운 디바이스로 획득 될 수 있다. 획득된 영상은 Fig.3a와 같이 캡처한 카메라의 위치에 따라 생성된 이미지/비디오 데이터 집합이 여러 개 생성될 수 있다. 이 때 캡처 과정에서 카메라의 내부/외부 설정 값 등의 메타메이타가 생성될 수 있다. 카메라가 아닌 컴퓨터로 생성된 영상의 경우 캡처 과정이 갈음될 수 있다. 획득된 영상의 전처리(pre-processing)과정은 캡처된 이미지/비디오 및 캡처 과정에서 전달된 메타데이타(metadata)를 처리하는 과정일 수 있다. 이 준비 과정에서는 스티칭(Stitching) 과정, 색보정(color correction)과정, 프로젝션 과정, 코딩 효율을 높이기 위해 주요 시점 (primary view)와 부차 시점(secondary view)로 분리 하는 시점 분리(view segmenation)과정 및 인코딩 과정 등 전송 전 콘텐츠를 처리하는 모든 형태의 전처리 단계가 해당될 수 있다.
스티칭 과정은 각 카메라의 위치에서 360 방향으로 캡처된 영상을 각각의 카메라 위치를 중심으로 하는 파노라마 혹은 구형의 형태로 영상을 잇는 이미지/비디오를 만드는 과정일 수 있다. 프로젝션은 각각의 스티칭 결과 영상을 Fig3b와 같이 2D 이미지로 투영 시키는 과정을 의미하며, 2D 이미지로 맵핑한다고 표현할 수 있다. 각 카메라 위치에서 맵핑한 영상은 주요시점과 부차 시점으로 분리 하여 비디오 코딩 효율을 높이기 위해 시점별 다른 해상도(resolution)를 적용할 수 있으며, 주요 시점 내에서도 맵핑 영상의 배치나 해상도(resolution)를 달리 함으로써 코딩 시 효율을 높일 수 있다. 부차 시점은 캡처 환경에 따라 없을 수도 있다. 부차 시점은 주요 시점에서 또 다른 주요 시점으로 사용자가 이동할 경우 이동 과정에서 재생되어야 하는 이미지/비디오를 의미하며 주요 시점에 비해 낮은 해상도를 가질 수도 있으나 필요에 따라 동일한 해상도를 가질 수도 있다. 때에 따라서는 부차 시점은 수신기에서 가상의 정보로 새롭게 생성 될 수 있다.
실시예에 따라 전처리 과정으로 에디팅(editing)과정 등을 더 포함할 수 있다. 이 과정에서 프로젝션 전 후의 이미지/비디오 데이터들에 대한 편집 등이 더 수행될 수 있으며, 전처리 과정에서도 메타메이타가 생성될 수 있다. 또한 이미지/비디오 제공시 가장 처음 재생해야 하는 초기 시점, 사용자의 초기 위치 및 ROI(Region of Interest)등에 관한 메타메이타가 생성될 수 있다.
미디어 전송 단계는 전처리 과정에서 얻어진 이미지/비디오 데이터 및 메타메이타들을 처리하여 전송하는 과정일 수 있다. 전송을 위해 임의의 전송 프로토콜에 따른 처리가 수행될 수 있으며, 전처리 된 데이터들은 방송망 및/또는 브로드밴드를 통해 전달될 수 있으며, 이 데이터들은 온디맨드(on demand) 방식으로 수신측으로 전달될 수 있다.
프로세싱 과정은 수신된 이미지/비디오 데이터 및 메타메이타를 디코딩, 3차원 모델로 맵핑 혹은 프로젝션이라고도 불릴 수 있는 리-프로젝션(re-projection) 하는 과정, 가상 시점의 생성 및 합성 과정 등 이미지/비디오를 재생하기 위한 이미지 생성 전 모든 단계가 프로세싱(processing) 단계에 포함될 수 있다. 맵핑 되는 3차원 모델 혹은 프로젝션 맵은 기존의 360비디오와 같이 구형(sphere), 큐브(cube), 실린더(cylinder), 또는 피라미드(pyramid)가 있을 수 있으며 기존의 360 비디오의 프로젝션 맵의 변형된 형태가 될 수 있으며, 경우에 따라 자유형 형태의 프로젝션 맵이 될 수 있다.
가상 시점의 생성 및 합성 과정은 주요 시점과 부차 시점 사이에 혹은 주요 시점과 주요 시점 사이에 사용자가 이동할 경우 재생되어야 하는 이미지/비디오 데이터를 생성하고 합성하는 과정을 의미할 수 있다. 가상 시점 생성을 위해 캡쳐 및 전처리 과정에서 전달된 메타메이타를 처리하는 과정이 필요할 수 있고, 경우에 따라서는 가상 시점에서 360 이미지/비디오 전체가 아닌 일부만 생성/합성할 수도 있다.
실시예에 따라 프로세싱 과정은 부가적으로 에디팅(editing)과정, 업스케일링(up scaling), 다운 스케일링(down scaling) 과정 등이 더 포함될 수도 있다. 에디팅 과정에서 프로세싱 과정 후에 재생 전 필요한 추가 편집 과정이 적용될 수 있다. 필요에 따라서는 전송 받은 이미지/비디오를 업스케일링 혹은 다운 스케일링 하는 작업이 수행될 수도 있다.
렌더링 과정은 전송 혹은 생성되어 리프로젝션 된 이미지/비디오를 디스플레이 할 수 있도록 렌더링 하는 과정을 의미할 수 있다. 때에 따라서는 렌더링과 리프로젝션 과정을 렌더링이라고 통칭하기도 한다. 따라서 렌더링 과정 중에 리프로젝션 과정이 포함될 수 있다. 리프로젝션은 fig.3c와 같은 형태로 사용자 중심의 360 비디오/이미지와 사용자가 이동 방향에 따라 각 이동한 위치를 중심으로 형성되는 360 비디오/이미지가 형성되는 형태로 다수의 리프로젝션 결과물이 있을 수 있다. 사용자는 디스플레이 할 디바이스에 따라 360 비디오/이미지의 일부 영역을 볼 수 있으며, 이 때 사용자가 보게 되는 영역은 fig.3d와 같은 형태가 될 수 있으며, 사용자가 이동하는 경우 전체 360 비디오/이미지가 렌더링 되는 것이 아니라 사용자가 보고 있는 위치에 해당되는 영상만 렌더링 될 수 있다. 또한 사용자의 위치와 이동 방향에 관한 메타메이타를 전달 받아 미리 움직임을 예측하고 이동할 위치의 비디오/이미지를 추가로 렌더링할 수 있다.
피드백 과정은 디스플레이 과정에서 획득될 수 있는 다양한 피드백 정보들을 송신 측으로 전달하는 과정을 의미할 수 있다. 피드백 과정을 통해 6DoF콘텐츠와 사용자간의 인터렉티비티 (interactivity)가 일어날 수 있으며, 실시예에 따라 피드백 과정에서 사용자의 머리와 포지션 위치 정보 (head/position orientation) 및 사용자가 현재 보고 있는 영역(viewport)에 대한 정보 등이 전달 될 수도 있다. 해당 정보는 피드백 과정에서 송신측 혹은 서비스 제공자 측에 전달 될 수 있으며, 실시예에 따라 피드백 과정은 수행되지 않을 수도 있다.
사용자의 위치 정보는 사용자의 머리 위치, 각도, 움직임 및 이동 거리 등에 대한 정보를 의미할 수 있으며, 해당 정보를 바탕으로 사용자가 보고 있는 위치(viewport) 정보가 계산 될 수 있다.
도18은 6DoF 비디오 서비스 제공을 위한 전송 장치의 구성을 나타낸다.
송신측에서의 본 발명은 6DoF 비디오 전송 장치와 관련 될 수 있다. 본 발명에 따른 6DoF 비디오 전송 장치는 전술한 준비 과정 및 동작들을 수행할 수 있다. 본 발명에 따른 6DoF 비디오/이미지 전송 장치는 데이터 입력부, 깊이 정보 처리부 (도시되지 않음), 스티처(Stitcher), 프로젝션 처리부, 시점 분리 처리부, 시점별 패킹 처리부, 메타메이타 처리부, 피드백 처리부, 데이터 인코더, 인캡슐레이션 처리부, 전송 처리부 및/또는 전송부를 내/외부 구성 요소로 포함할 수 있다.
데이터 입력부는 한 군데 이상의 위치에서 한 개 이상의 카메라로 캡쳐된 각 시점별 이미지/비디오/깊이정보/오디오 데이터를 입력 받을 수 있다. 데이터 입력부는 캡처 과정에서 발생된 메타메이타를 비디오/이미지/깊이정보/오디오 데이터와 함께 입력 받을 수 있다. 데이터 입력부는 입력된 각 시점별 비디오/이미지 데이터를 스티처로 전달하고, 캡쳐 과정에서 발생된 메타메이타를 메타메이타 처리부로 전달 할 수 있다.
스티처는 캡쳐된 시점별/위치별 이미지/비디오들에 대한 스티칭 작업을 수행할 수 있다. 스티처는 스티칭된 360 비디오 데이터를 프로젝션 처리부로 전달할 수 있다. 스티처는 필요한 경우 메타메이타 처리부로부터 전달받아 스티칭을 할 수 있다. 스티처는 스티칭 과정에서 발생한 메타메이타를 메타메이타 처리부로 전달 할 수 있다. 스티처는 깊이(depth)정보 처리부 (도식되지 않음) 에서 전달 받은 위치값을 활용하여 비디오/이미지 스티칭 위치를 다르게 할 수 있다. 스티처는 스티칭 과정에서 발생된 메타메이타를 처리부로 전달할 수 있다. 전달 되는 메타메이타는 스티칭 수행 여부, 스티칭 타입, 주요 시점(primary view)과 부차 시점(secondary view)의 ID 및 해당 시점의 위치 정보 등이 있을 수 있다.
프로젝션 처리부는 스티칭된 6DoF 비디오 데이터를 2D 이미지 프레임에 프로젝션할 수 있다. 프로젝션 처리부는 스킴(scheme)에 따라 다른 형태의 결과물을 얻을 수 있는데, 해당 스킴은 기존의 360비디오의 프로젝션 스킴과 유사할 수도 있고, 6DoF를 위해 새롭게 제안된 스킴이 적용 될수도 있다. 또한 각 시점별 서로 다른 스킴을 적용할 수 있다. 깊이 정보 처리부는 깊이 정보를 프로젝션 처리부로 전달하여 맵핑 결과 값을 다르게 할 수 있다. 프로젝션 처리부는 필요한 경우 메타메이타 처리부로부터 프로젝션에 필요한 메타메이타를 전달받아 프로젝션 작업에 이용할 수 있으며, 프로젝션 처리부는 프로젝션 과정에서 발생된 메타메이타를 메타메이타 처리부로 전달 할 수 있다. 해당 메타메이타는 스킴의 종류, 프로젝션 수행 여부, 주요시점과 부차 시점의 프로젝션 후의 2D 프레임의 ID 및 시점별 위치 정보 등이 있을 수 있다.
시점별 패킹 처리부는 전술한 바와 같이 주요 시점과 부차 시점으로 나누고, 각 시점 내 리전별 패킹 과정을 수행할 수 있다. 즉 시점별 패킹 처리부는 각 시점/위치별 프로젝션된 6DoF 비디오 데이터를 주요 시점과 부차 시점으로 분류하여 코딩 효율을 높이기 위해 주요 시점과 부차 시점을 다른 해상도를 가질 수 있도록 하거나 각 시점의 비디오 데이터를 회전, 재배열 달리하고 각 시점 안에서 나누어진 리전별 해상도를 다르게 할 수도 있다. 주요 시점과 부차 시점을 분류하는 과정은 생략될 수 있으며, 선택적인 과정일 수 있으며, 리전별 다른 해상도를 가지거나 배치를 다르게 하는 것도 선택적으로 수행될 수 있다. 시점별 패킹 처리부가 수행될 경우에 패킹은 메타메이타 처리부로부터 전달 받은 정보를 활용하여 수행 될 수 있으며, 패킹 과정에서 발생한 메타메이타를 메타메이타 처리부로 전달 할 수도 있다. 시점별 패킹 처리 과정에서 정의되는 메타메이타는 주요 시점과 부차 시점을 분류하기 위한 각 시점의 ID와 시점 내 리전별 적용되는 사이즈, 회전 각 리전별 위치 값 등이 될 수 있다.
전술한 스티처, 프로젝션 처리부 및/또는 시점별 패킹 처리부는 실시예에 따라 하나 이상의 하드웨어 컴포넌트 혹은 스트리밍/다운로드 서비스 내의 인제스트 서버(Ingest server)에서 일어날 수도 있다.
메타메이타 처리부는 캡쳐 과정, 스티칭 과정, 프로젝션 과정, 시점별 패킹 과정, 인코딩 과정, 인캡슐레이션 과정 및/또는 전송을 위한 처리 과정에서 발생할 수 있는 메타메이타들을 처리할 수 있다. 메타메이타 처리부는 각 프로세스에서 전달 받은 메타메이타를 활용하여 6DOF 비디오 서비스를 위한 새로운 메타메이타를 생성할 수 있다. 실시예에 따라 메타메이타 처리부는 새롭게 생성된 메타메이타를 시그널링 테이블의 형태로 생성할 수도 있다. 메타메이타 처리부는 전달받거나 메타메이타 처리부에서 새롭게 생성/가공된 메타메이타를 다른 요소들에 전달 할 수 있다. 메타메이타 처리부는 생성되거나 전달 받은 메타메이타를 수신측으로 전송될 수 있도록 데이터 인코더, 인캡슐레이션 처리부 및/또는 전송 처리부에 전달 할 수 있다.
데이터 인코더는 2D 이미지 프레임 상에 프로젝션 된 6DoF 비디오 데이터 및/또는 시점별/리전별 패킹된 비디오 데이터를 인코딩 할 수 있다. 인코딩은 다양한 포맷으로 수행 될 수 있으며, 시점별 분류가 되었다면, 시점별 인코딩 결과 값을 분리하여 전달 할 수도 있다.
인캡슐레이션 처리부는 인코딩된 6DoF 비디오 데이터 및/또는 관련 메타메이타를 파일 등의 형태로 인캡슐레이션 할 수 있다. 관련 메타메이타는 전술한 메타메이타 처리부로부터 전달 받을 수 있다. 인캡슐레이션 처리부는 해당 데이터를 ISOBMFF, OMAF 등의 파일 포맷으로 인캡슐레이션 하거나 DASH 세그먼트 등의 형태로 처리할 수 있으며, 새로운 형태의 파일 포맷으로 처리될 수도 있다. 메타메이타는 파일 포맷 내 다양한 레벨에 존재하는 박스(box)에 포함되거나 별로의 트랙내의 데이터로 포함하거나 메타메이타만 파일로 인캡슐레이션 할 수 있다. 시점별 별도의 인캡슐레이션 처리가 가능할 수도 있고, 시점별 필요한 메타메이타와 해당 비디오 정보를 함께 인캡슐레이션 할 수도 있다.
전송 처리부는 포맷에 따라 인캡슐레이션된 비디오 데이터에 전송을 위한 추가 처리를 가할 수 있다. 해당 처리는 메타메이타 처리부에서 전달 받은 메타메이타를 활용하여 작동할 수 있다. 전송부는 전송 처리부로부터 전달 받은 데이터 및/또는 메타메이타를 방송망 및/또는 브로드밴드를 통해 전송될 수 있다. 전송부는 방송망및/또는 브로드밴드를 통한 전송 시 필요한 구성 요소가 포함될 수 있다.
피드백 처리부(송신측)는 및/또는 네트워크 인터페이스(도시되지 않음)를 추가로 더 포함할 수 있다. 네트워크 인터페이스는 본 발명에서 후술 되는 수신 장치로부터 피드백 정보를 전달 받고 피드백 처리부(송신측) 으로 전달 할 수 있다. 피드백 처리부는 수신측에서 전달받은 정보를 스티칭, 프로젝션, 시점별 패킹, 인코터, 인캡슐레이션 처리부 및/또는 전송 처리부로 전달 할 수 있으며, 메타메이타 처리부로 전달하여 메타메이타 처리부가 다른 요소들에 전달하거나 메타메이타 처리부에서 새로운 메타메이타를 생성/가공하여 전달 할 수 있다. 본 발명의 또 다른 실시예에 따르면 피드백 처리부가 네트워크 인터페이스로부터 전달 받은 위치/시점 정보를 메타메이타 처리부로 전달하며, 메타메이타 처리부는 프로젝션, 시점별 패킹 처리부, 인캡슐레이션 처리부 및/또는 데이터 인코더로 해당 위치/시점 정보를 전달하여 현재 사용자의 시점/위치에 맞는 정보와 주변 정보만을 전송하여 코딩 효율을 높일 수 있다.
전술한 6DoF비디오 전송 장치의 구성 요소들은 하드웨어로 구현되는 하드웨어 구성 요소 일 수 있다. 실시예에 따라 각 구성요소들은 변경, 생략 되거나 새로운 구성요소를 추가 혹은 다른 구성요소로 대체, 통합될 수 있다.
도19는 6DoF 비디오 수신 장치의 구성을 나타낸다.
본 발명은 수신 장치와 관련될 수 있다. 본 발명에 따르면 6DoF 비디오 수신 장치는 수신부, 수신 처리부, 디캡슐레이션 처리부, 메타메이타 파서, 피드백 처리부, 데이터 디코더, 리-프로젝션 처리부, 가상시점 생성/합성부 및/또는 렌더러를 구성요소로 가질 수 있다.
수신부는 전술한 6DoF송신 장치로부터 비디오 데이터를 수신할 수 있다. 비디오 데이터가 전송되는 채널에 따라 수신부는 방송망 또는 브로드밴드를 통해 수신할 수도 있다.
수신 처리부는 수신된 6DoF 비디오 데이터에 대해 전송 프로토콜에 따른 처리를 수행할 수 있다. 수신 처리부는 전송 처리부에서 수행된 과정의 역순으로 수행하거나 프로토콜 처리 방법에 따른 과정을 거쳐 전송 처리부 이전 단계에서 얻은 데이터를 획득한다. 수신 처리부는 획득한 데이터를 디캡슐레이션 처리부로 전달하고, 수신부로 부터 받은 메타메이타 정보를 메타메이타 파서로 전달할 수 있다.
디캡슐레이션 처리부는 수신 처리부로부터 전달받은 파일 형태의 6DoF 비디오 데이터를 디캡슐레이션할 수 있다. 디캡슐레이션 처리부는 해당 파일 포맷에 맞추어 파일들을 디캡슐레이션하여, 6DoF 비디오 및/또는 메타메이타를 획득할 수 있다. 획득된 6DoF 비디오 데이터는 데이터 디코더로 보낼 수 있고, 6DoF 메타메이타는 메타메이타 파서로 전달할 수 있다. 디캡슐레이션 처리부는 필요에 따라 메타메이타 파서로부터 디캡슐레이션에 필요한 메타메이타를 전달받을 수도 있다.
데이터 디코더는 6DoF 비디오 데이터에 대한 디코딩을 수행할 수 있다. 데이터 디코더는 메타메이타 파서로부터 디코딩에 필요한 메타메이타를 전달 받을 수 있다. 데이터 디코딩 과정에서 획득 된 메타메이타는 메타메이타 파서로 전달되어 처리될 수 있다.
메타메이타 파서는 6DoF 비디오 관련 메타메이타에 대한 파싱/디코딩을 수행할 수 있다. 메타메이타 파서는 획득한 메타메이타를 디캡슐레이션 처리부, 데이터 디코더, 리-프로젝션 처리부, 가상 시점 생성/합성부 및/또는 렌더러로 전달 할 수도 있다.
리-프로젝션 처리부는 디코딩된 6DoF 비디오 데이터에 대하여 리-프로젝션을 수행할 수 있다. 리-프로젝션 처리부는 각 시점/위치별 6DoF 데이터를 각각 3차원 공간으로 리-프로젝션할 수 있다. 3차원 공간은 사용되는 3차원 모델에 따라 다른 형태를 가질 수도 있고, 변환 과정을 거처 동일한 형태의 3차원 모델로 리-프로젝션 될 수도있다. 리-프로젝션 처리부는 메타메이타 파서로부터 필요한 메타메이타를 전달 받을 수 있다. 리-프로젝션 과정에서 정의된 메타메이타를 메타메이타 파서로 전달할 수도 있다. 예를 들어 각 시점/위치 별 6DoF 비디오 데이터의 3차원 모델을 메타메이타 파서로 전달 받을 수 있고, 각 시점/위치별 비디오 데이터의 3차원 모델이 다르고 모든 시점의 비디오 데이터를 동일한 3차원 모델로 리-프로젝션 되었을 경우 어떤 모델이 적용 되었는지 메타메이타 파서로 전달할 수 있다. 때에 따라서는 리-프로젝션에 필요한 메타메이타를 이용하여, 3차원 공간 내에 특정 영역만 리-프로젝션 할 수 있으며, 한 개 이상의 특정 영역을 리-프로젝션 할 수도 있다.
가상 시점 생성/합성부는 전송되어 리-프로젝션 된 3차원 공간상에서 수신된 6DoF 비디오 데이터에 포함되어 있지 않으나 재생이 필요한 가상의 시점 영역에서 비디오 데이터를 주어진 데이터를 활용하여 생성하고, 가상 시점을 중심으로 새로운 시점/위치에서의 비디오 데이터를 합성하는 과정을 수행할 수 있다. 새로운 시점의 비디오 데이터를 생성할 때 깊이(depth)정보 처리부 (도시하지 않음)의 데이터를 활용할 수 있다. 가상 시점 생성/합성부는 메타메이타 파서로부터 전달 받은 특정 영역과 수신 되지 않은 주변 가상 시점 영역의 일부만 생성/합성 할 수 있다. 가상 시점 생성/합성부는 선택적으로 수행될 수 있으며, 필요한 시점 및 위치에 해당하는 비디오 정보가 없을 때 수행된다.
렌더러는 리-프로젝션 혹은 가상 시점 생성/합성부에서 전달된 6DoF 비디오 데이터를 렌더링 할 수 있다. 전술 한 바와 같이 3차원 공간상에서 리-프로젝션 혹은 가상 시점 생성/합성부에서 일어나는 모든 과정은 렌더러와 통합되어 렌더러 내에서 이 과정들이 진행될 수 있다. 실시예에 따라 사용자의 시점/위치 정보에 따라 사용자가 보고 있는 부분 및 예상 경로 상의 일부만 렌더링 할 수도 있다.
본 발명에서 피드백 처리부(수신측) 및/또는 네트워크 인터페이스(도시되지 않음)을 추가적인 구성요소로 포함할 수 있다. 수신측 피드백 처리부는 렌더러, 가상 시점 생성/합성부, 리-프로젝션 처리부, 데이터 디코더, 디캡슐레이션 및/또는 VR 디스플레이로부터 피드백 정보를 획득하여 처리할 수 있다. 피드백 정보는 사용자의 뷰포트 정보, 헤드 및 포지션 오리엔테이션 정보, 게이즈(gaze) 정보, 제스처(gesture) 정보 등을 포함할 수 있다. 네트워크 인터페이스는 피드백 정보를 피드백 처리부로부터 전달 받고, 전송 장치로 전송할 수 있으며, 수신측의 각 구성요소에서 소비될 수도 있다. 예를 들면, 디캡슐레이션 처리부에서는 피드백 처리부로 부터 사용자의 위치/시점 정보를 전달 받아 수신된 6DoF 비디오 중에 해당 위치의 정보가 있을 경우 해당 위치 정보만 디캡슐레이션, 디코딩, 리-프로젝션, 렌더링을 할 수 있다. 만약 해당 위치의 정보가 없을 경우 해당 위치 주변에 위치한 6DoF 비디오를 모두 디캡슐레이션, 디코딩, 리-프로젝션, 가상 시점 생성/합성, 렌더링의 과정을 거칠 수 있도록 할 수 있다.
전술한 6DoF비디오 수신 장치의 구성 요소들은 하드웨어로 구현되는 하드웨어 구성 요소 일 수 있다. 실시예에 따라 각 구성요소들은 변경, 생략 되거나 새로운 구성요소를 추가 혹은 다른 구성요소로 대체, 통합될 수 있다.
도20은 6 DoF 비디오 전송/수신 장치의 구성을 나타낸다.
6DoF 콘텐츠는 파일 형태로 제공되거나 DASH 등과 같이 세그먼트(segment) 기반 다운로드 또는 스트리밍 서비스의 형태로 제공될 수 있으며, 새로운 파일 포맷 혹은 스트리밍/다운로드 서비스 방법이 대신 쓰일 수도 있다. 여기서 6DoF 콘텐츠는 실감미디어(immersive media) 콘텐츠 혹은 라이트필드(light field) 콘텐츠, 혹은 포인트 클라우드(point cloud) 콘텐츠로 불릴 수 있다.
전술한 바와 같이 해당 파일 제공 및 스트리밍/다운로드 서비스를 위한 각 과정은 아래와 같이 상세하게 설명될 수 있다.
Acquisition : multi view/stereo/depth image를 획득하기 위한 camera 로 부터 capture 후 얻어지는 output 이며, 2개 이상의 video/image및 오디오 데이터가 얻어지게 되고, depth camera가 있는 경우 각 scene에서의 depth map도 획득(acquisition) 될 수 있다.
Audio Encoding : 6DoF 오디오 데이터는 오디오 전처리 과정, 인코딩 과정을 거칠 수 있다. 이 과정에서 메타메이타가 생성될 수 있으며, 관련 메타메이타는 전송을 위해 인캡슐레이션/인코딩 과정을 거칠 수 있다.
Stitching, Projection, mapping, and correction : 6DoF 비디오 데이터는 전술한 바와 같이 다양한 위치에서 획득된 영상의 에디팅, 스티칭, 프로젝션 과정을 거칠 수 있다. 이 과정은 실시예에 따라 일부만 수행되기도 하고, 전체가 생략되어 수신기측에서 수행 될 수도 있다.
View segmentation/packing : 전술한 바와 같이 시점 분리/패킹 처리부는 스티칭 된 영상을 바탕으로 수신기 측에서 요구 되는 주요 시점,Primary View(PV) 위치의 영상을 분리해 내어 패킹 하고, 주요 시점으로 분리되어 패킹 된 후 나머지 영상을 부차 시점, Secondary View(SV)로 패킹하는 전처리 과정을 거칠 수 있다. 패킹하는 과정에서 코딩 효율을 높이기 위해 주요 시점과 부차 시점의 사이즈, 해상도 등이 조정될 수 있다. 동일한 성격의 시점 내에서도 리전별 다른 조건으로 해상도를 가지거나 리전에 따라 회전, 재배치 될 수 있다.
Depth sensing and/or estimation: 깊이 캡처 카메라 (depth camera)가 존재하지 않는 경우 획득된 2개 이상의 영상에서 깊이 맵을 추출해 내는 과정을 수행하기 위함이며 깊이 캡처 카메라 (depth camera)가 있는 경우 영상 획득 위치에서 영상 내 포함된 각 오브젝트(object)의 깊이가 얼만큼 되는지 위치 정보를 저장하기 위한 과정을 수행할 수 있다.
Point Cloud Fusion/extraction 미리 획득 된 깊이 맵을 인코딩 가능한 형태의 데이터로 변형하는 과정을 수행할 수 있다. 예를 들어 포인트 클라우드 데이터 타입으로 변형하여 3차원에서 영상의 각 오브젝트의 위치 값을 할당하는 전처리 과정을 수행할 수 있으며, 포인터 클라우드 데이터 타입이 아닌 3차원 공간 정보를 표현할 수 있는 데이터 타입이 대신 적용될 수 있다.
PV encoding/SV encoding/light field/point cloud encoding : 시점별로 미리 패킹되거나 깊이 정보 및/또는 위치 정보는 각각 이미지 인코딩 내지 비디오 인코딩 될 수 있다. 동일한 시점의 같은 콘텐츠라도 리전별로 다른 비트 스트림으로 인코딩될 수도 있다. MPEG-I에서 정의될 새로운 codec 및 HEVC-3D, OMAF++ 등 media format이 될 수 있다.
File encapsulation : 전술한 대로 인코딩된 6DoF 비디오 데이터는 인캡슐레이션 처리부인 File-encapsulation에 의해 ISOBMFF 등의 파일 포맷으로 처리될 수 있다. 또는 인코딩 된 6DoF 비디오 데이터는 세그먼트들로 처리할 수 있다.
Metadata(including depth information) : 6DoF 비디오 데이터 처리와 같이 획득, 스티칭, 프로젝션, 시점별 분리/패킹, 인코딩, 인캡슐레이션 과정중에 발생한 메타메이타를 메타메이타 처리부로 전달하거나 메타메이타 처리부에서 생성된 메타메이타를 각 과정으로 전달 할 수 있다. 또한 송신측에서 생성된 메타메이타는 인캡슐레이션 과정에서 하나의 트랙 혹은 파일로 생성하여 수신측으로 전달 할 수 있다. 수신측에서는 방송망이나 브로드밴드를 통해 별도의 파일 혹은 파일 내 트랙으로 저장되어 있는 메타메이타를 수신할 수 있다.
Delivery : 파일 및/또는 세그먼트들은 DASH 혹은 유사한 기능을 가진 새로운 모델을 기반으로 전송을 위한 개별 트랙에 포함될 수 있다. 이때 전송을 위해 MPEG DASH, MMT및/또는 새로운 표준이 적용될 수 있다.
File decapsulation : 수신 장치는 6DoF 비디오/오디오 데이터 수신을 위한 처리를 수행할 수 있다.
Audio deconding/Audio rendering/Loudspeakers/headphones : 6DoF 오디오 데이터는 오디오 디코딩, 렌더링 과정을 거쳐 스피커, 헤드폰을 통해 사용자에게 제공될 수 있다.
PV/SV/light field/point cloud decoding : 6DoF 비디오 데이터는 이미지 내지 비디오 디코딩 할 수 있다. 디코딩에 적용되는 코덱은 HEVC-3D, OMAF++ 및 MPEG에서 6DoF를 위해 새롭게 제안되는 코덱이 적용될 수 있다. 이 때 주요 시점(PV)와 부차 시점(SV)이 분리되어 각 시점 패킹 내에서 비디오 내지 이미지가 각각 디코딩 될 수 있고, 시점 분류와 상관없이 비디오 내지 이미지 디코딩이 될 수 있다. 또한 위치, 깊이 정보를 가지고 있는 라이트필드와 포인트 클라우드 디코딩이 먼저 이루어지고나서 헤드, 포지션, 시선 트래킹의 피드백을 먼저 전달하고 사용자가 위치한 주변부 시점의 이미지 내지 비디오만 분리해 내어 디코딩 될 수도 있다.
Head/eye/position tracking : 전술한 바와 같이 사용자의 헤드, 포지션, 게이즈, 뷰포트 정보 등을 획득, 처리할 수 있다.
Point Cloud rendering : 캡쳐한 비디오/이미지 데이터를 3차원 공간상에 리-프로젝션 할 때 3차원의 공간 위치를 설정하고, 수신한 비디오/이미지 데이터에서 확보하지 못하였으나 사용자가 이동 가능한 위치인 가상 시점의 3차원 공간을 생성하는 과정을 수행한다.
Virtual view synthesis : 전술한 바와 같이 사용자가 위치한 공간에 6DoF 비디오 데이터가 없을 경우 사용자 위치/시점 주변에 이미 확보된 6DoF 비디오 데이터를 활용하여 새로운 시점의 비디오 데이터를 생성하고 합성하는 과정을 수행한다. 실시예에 따라 가상 시점 생성 및/또는 합성 과정은 생략될 수 있다.
Image composition, and rendering : 전술한 바와 같이 사용자의 위치를 중심으로 한 영상을 렌더링 하기 위한 과정으로 사용자의 위치 및 시선에 따라 디코딩 된 비디오 데이터를 이용하거나 가상 시점 생성/합성으로 만들어진 사용자 주변의 비디오 및 이미지를 렌더링 할 수 있다.
도21은 6DoF 공간을 나타낸다.
본 발명에서 프로젝션 전 또는 리-프로젝션 후의 6DoF 공간에 대해 기술하고 그에 대한 시그널링을 수행하기 위하여 도 21과 같은 개념을 사용할 수 있다.
6DoF 공간은 360비디오 혹은 3DoF 공간이 야(Yaw), 피치(Pitch), 롤(Roll)로 설명할 수 있는 것과 달리 이동의 방향을 레이셔널(rational)과 트렌스레이션(translation) 두 종류로 나뉠 수 있다. 레이셔널 이동은 a와 같이 기존의 3DoF 의 방향을 설명한 것과 마찬가지로 야, 피치, 롤 로 설명할 수 있으며 방향의 이동(orientation movement)으로 불릴 수도 있다. 반면 트렌스레이션 이동의 경우는 b와 같이 포지션의 이동으로 불릴 수 있다. 왼쪽/오른쪽(Left/Right), 앞/뒤(Forward/Backward), 위/아래(Up/down) 방향 중 축이 어디로 이동했는지 알려 줄 수 있는 것으로 한 축 이상의 값을 정의하여 중심축의 이동을 설명할 수 있다.
본 발명의 특징은 6DoF 비디오 서비스 및 스트리밍을 위한 아키텍쳐를 제안하고 시그널링 및 파일 저장 방법의 기본 메타데이터를 제안하여 향후 6DoF 관련 메타데이터 및 시그널링 확장을 위한 발명에 활용될 수 있다.
- 제안한 6DoF 송,수신기 아키텍처를 바탕으로 각 과정마다 발생하는 메타데이터를 확장할 수 있다.
- 제안한 아키텍처의 과정간에 발생하는 메타데이터를 제안할 수 있다.
- 제안한 메타데이터를 바탕으로 추후 추가/수정/확장하여 6DoF 비디오 서비스를 제공하는 콘텐츠의 6DoF 비디오 관련 파라미터를 ISOBMFF 등 파일에 저장 및 시그널링 할 수 있다.
- 제안한 메타데이터를 바탕으로 추후 추가/수정/확장하여 6DoF 비디오 스트림의 SEI 혹은 VUI를 통해 6DoF 비디오 메타데이터 저장 및 시그널링을 할 수 있다.
리전(리전별 패킹에서의 의미, Region) : 리전(Region) 은 2D 이미지에 프로젝션된 360 비디오 데이터가 리전별 패킹(region-wise packing) 을 통해 팩드 프레임 내에서 위치하게 되는 영역을 의미할 수 있다. 여기서의 리전은 문맥에 따라 리전별 패킹에서 사용되는 리전을 의미할 수 있다. 전술한 바와 같이 리전들을 2D 이미지를 균등하게 나누어 구분되거나, 프로젝션 스킴 등에 따라 임의로 나누어져 구분될 수도 있다.
리전(일반적 의미, region) : 전술한 리전별 패킹에서의 리전과 달리, 사전적 의미로서 리전(region) 이라는 용어가 사용될 수도 있다. 이 경우 리전이란 사전적 의미인 ‘영역’, ‘구역’, ‘일부분’ 등의 의미를 가질 수 있다. 예를 들어 후술할 페이스(face) 의 일 영역을 의미할 때, ‘해당 페이스의 한 리전’ 등과 같은 표현이 사용될 수 있다. 이 경우 리전은 전술한 리전별 패킹에서의 리전과는 구분되는 의미로서, 양자는 서로 무관한, 다른 영역을 지시할 수 있다.
픽쳐 : 픽쳐는 360 비디오 데이터가 프로젝션된 2D 이미지 전체를 의미할 수 있다. 실시예에 따라 프로젝티드 프레임 내지는 팩드 프레임이 픽쳐가 될 수 있다.
서브-픽쳐 : 서브 픽쳐는 전술한 픽쳐의 일부분을 의미할 수 있다. 예를 들어 타일링 등을 수행하기 위해 픽쳐가 여러 서브-픽쳐로 나누어질 수 있다. 이 때 각 서브 픽쳐가 타일이 될 수 있다. 구체적으로, 타일 내지 MCTS 를 기존의 HEVC 와 호환되는 픽쳐 형태로 재구성하는 동작을 MCTS 추출(extraction) 이라고 할 수 있다. 이 MCTS 추출의 결과물은 원래의 타일 내지 MCTS 가 속하는 픽쳐의 서브-픽쳐일 수 있다.
타일 : 서브 픽처의 하위 개념으로서, 서브 픽처가 타일링을 위한 타일로 쓰일 수 있다. 즉, 타일링에 있어서는 서브 픽처와 타일은 동일한 개념일 수 있다. 구체적으로, 본디 타일은 병렬 디코딩을 가능케 하기 위한 툴이나, VR 에 있어서는 독립 디코딩을 위한 툴일 수 있다. VR 에 있어서 타일은, 템포럴 인터 프리딕션(temporal inter prediction) 의 범위를 현재의 타일 내부 범위로 제한한 MCTS (Motion Constrained Tile Set) 을 의미할 수 있다. 이에 이 문서에서 타일은 MCTS 로도 불릴 수 있다.
슈페리컬 리전(Spherical region) : 슈페리컬 리전 내지 슈피어 리전(Sphere region) 은, 360 비디오 데이터가 수신측에서 3D 공간(예를 들어 구면) 상에 렌더링될 때, 그 구면 상의 일 영역을 의미할 수 있다. 여기서 슈페리컬 리전은, 리전별 패킹에서의 리전과는 무관하다. 즉, 슈페리컬 리전이 리전별 패킹에서 정의되었던 리전과 같은 영역을 의미할 필요는 없다. 슈페리컬 리전은 렌더링되는 구면 상의 일 부분을 의미하는 데 사용되는 용어로서, 여기서의 ‘리전’ 은 사전적 의미로서의 ‘영역’을 뜻할 수 있다. 문맥에 따라 슈페리컬 리전이 단순히 리전이라고 불릴 수도 있다.
페이스(face) : 페이스는 프로젝션 스킴에 따라 각 면을 부르는 용어일 수 있다. 예를 들어 큐브맵 프로젝션이 사용되는 경우, 앞면, 뒷면, 양 옆면, 윗면, 아랫면 등은 페이스라고 불릴 수 있다.
도22는 본 발명의 실시예들에 따른 프리-인코더(Pre-encoder)의 구조를 나타낸다.
본 발명의 실시예들에 따른 프리-인코더는 프루닝(Pruning, 22001), 패치 패킹 프로세서(Patch packing processor, 22004), 및/또는 인코더(Encoder, 22005)를 포함한다. 또한, 프루닝(Pruning, 22001)은 타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002) 및/또는 프레딕션 에러 프로세서(Prediction error processor, 22003)을 포함한다. 본 명세서에서 프리-인코더는 비디오 송신 장치로 호칭될 수 있다.
프루닝(Pruning, 22001)는 앵커 뷰잉 포지션(Anchor viewing position)의 텍스쳐 픽쳐(Texture picture) 또는 뎁스 픽쳐(Depth picture), 타겟 뷰잉 포지션 인포메이션(Target viewing position information) 및/또는 뷰잉 포지션들의 소스 픽쳐들(Source pictures of viewing positions)을 수신한다. 타겟 뷰잉 포지션 인포메이션 및 뷰잉 포지션들의 소스 픽쳐들은 메타데이터 또는 시그널링 인포메이션을 통해 수신될 수 있다.
프루닝(22001)은 타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002) 및 프레딕션 에러 프로세서(Prediction error processor, 22003)을 포함한다.
프루닝(22001)은3DOF+ 영상의 전송 시 영상 간 중첩되는 정보를 제외하고 유효 정보 영역만을 패킹해서 전달할 수 있다.
따라서, 프루닝(22001)은 영상의 수를 줄임으로써 효율적인 전송을 가능하게 하는 효과를 제공한다.
타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002)는 인코딩의 기반이 되는 영상으로부터 목표가 되는 타겟 뷰잉 포지션에 관련된 정보를 사용하여 타겟 뷰잉 포지션의 영상을 추정한다. 본 명세서에서 영상은 데이터 또는 픽쳐 등으로 호칭될 수 있다. 본 명세서에서 기반 영상은 앵커 뷰(anchor view 혹은 center view)가 될 수 있다.
구체적으로, 타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002)는 앵커 뷰잉 포지션의 영상(텍스쳐 픽쳐 또는 뎁스 픽쳐)를 수신하고, 목표가 되는 타겟 뷰잉 포지션 및/또는 뎁스 정보에 기초하여 영상을 추정한다. 또한, 타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002)는 뎁스 정보에 따라서 영상 추정을 한다.
예들 들어, 타겟 뷰잉 포지션은 카메리 위치 정보에 관련된 포지션일 수 있다. 타겟 뷰 프레딕션 프로세서(22002)는 타겟 뷰잉 포지션을 통해 전반적인 디스패리티(disparity)를 알 수 있다. 또한, 뎁스(깊이) 정보를 통해 물체에 따라 서로 다른 디스패리티를 계산할 수 있다. 또한, 타겟 뷰 프레딕션 프로세서(22002)는 영상 추정의 정확도를 높이기 위해 추가 정보를 사용/생성 할 수 있다.
프레딕션 에러 프로세서(Prediction error processor, 22003)는 프레딕션된 픽쳐(들) 및 뷰잉 포지션들의 소스 픽쳐들(또는 원본 영상) 간 차이를 계산한다. 프레딕션 에러 프로세서(22003)은 추정 영상 및 원본 영상 간의 차이를 통해, 오류가 발생할 수 있는 위치를 찾고, 오류가 발생할 수 있는 위치(Error-prone region)에 관한 정보(Error-prone region map)를 수신기에 전달한다. 프레딕션 에러 프로세서(22003)의 목적은 기반 영상을 통해 추정할 수 있는 정보는 중복된 정보로 여기고, 그 이외의 정보를 송신하는데 있다. 이로 인하여, 수신기는 필요한 정보만 수신하여 각 시점의 영상을 효율적으로 재현할 수 있는 효과가 있다. 프레딕션 에러 프로세서(22003)는 수신기에서 에러가 발생할 수 있는 위치의 정보를 대체할 수 있는 정보를 생성할 수 있다. 또한, 수신기에서 추정할 수 없는 정보 또는 에러가 크게 발생하는 정보만을 수신기에 전달할 수 있다. 프레딕션 에러 프로세서(22003)는 픽쳐의 홀(hole) 또는 픽쳐의 프레딕션 에러(prediction error)를 감지하여 송신단의 데이터 전송 효율성을 증가시킨다.
패치 패킹 프로세서(Patch packing processor, 22004)는 프레딕션 에러 프로세싱된 픽쳐(Error-prone region picture)를 에러-프론 리젼 맵(error-prone region map)에 기초하여 패치 패킹한다. 패치 패킹 프로세서(22004)는 수신기에서 추정할 수 없는 정보 또는 에러가 크게 발생하는 정보를 이용하여 컴팩트한 영상으로 재구성한다. 패치의 경우 각각의 뷰잉 포지션(viewing position)에 대한 패치를 모아서 각각의 영상으로 만들수도 있고, 여러 개의 뷰잉 포지션(viewing position)에 해당하는 패치를 하나로 모을 수 있다.
인코더(Encoder, 22005)는 패킹된 패치들(packed patches)을 인코딩하여 비트스트림으로 출력한다. 인코더(22005)는 앵커 뷰잉 포지션의 텍스쳐 또는 뎁스에 기초하여 패킹된 패치들을 인코딩할 수 있다.
앵커 뷰(Anchor view, 22006)는 프리 인코딩을 위한 기반이 되는 영상을 의미한다. 예를 들어, 본 발명의 실시예들에 따라서 앵커 뷰(22006)는 센터 뷰(center view)가 될 수 있다. 본 발명의 실시예들에 따른 비디오 송신 장치는 앵커 뷰(22006)를 기반으로 타겟 뷰잉 포지션에 기반하여 추정 영상을 생성하고, 뷰잉 포지션들에 대한 원본 영상을 기반으로 에러 추정을 하고, 수신기에서 필요로 하는 정보만을 전달하기 위해 패치들을 패킹하여 인코딩하고 전송한다.
프레딕션된 픽쳐들(predicted picutres, 22007)은 타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002)에서 생성된 영상을 나타낸다. 프레딕션된 픽쳐들(22007)은 홀(hole)을 포함할 수 있다.
예를 들어, 프레딕션된 픽쳐들(22007)은 24개의 뷰들로 구성될 수 있다. 뷰의 개수는 본 발명의 실시예들에 따라 조절될 수 있다. 24개의 뷰들로 프레딕션을 수행하는 예를 설명한다. 타겟 뷰 프레딕션 프로세서(22002)는 앵커 뷰에 대한 영상 또는 픽쳐(들)로부터 타겟 뷰잉 포지션에 대한 24개의 뷰(v0 내지 v23)를 추정할 수 있다. 또한, 영상 추정에 따른 홀이 생성될 수 있다.
프레딕션 에러 프로세싱된 픽쳐들(또는 Subtracted pictures, 22008)은 원본 영상 및 추정 영상 간의 차이를 나타낸다. 프레딕션 에러 프로세서(22003)은 상술한 바와 같이 뷰잉 포지션들의 소스 픽쳐들, 예를 들어 24개의 원본 뷰들 및 프리딕션된 픽쳐들(24개의 추정 뷰들) 간의 차이(에러)를 계산하여 서브트랙된 픽쳐들(22008)을 생성한다.
패치된 픽쳐(patched picture, 22009)는 서브트랙티드 픽쳐들(22008)을 패치 단위로 나타낸 픽쳐이다. 24개의 뷰들에 대하여 서브트랙티드 픽쳐들(22008)에 포함된 의미 있는 영역이 패치 단위로 구별될 수 있다.
패킹된 패치들(packed patches, 22010)은 패치 패킹 프로세서(22004)가 패치된 픽쳐를 패킹한 패치들이다. 24개의 뷰들에 대하여 패킹된 패치들이 생성될 수 있다.
패킹된 패치(packed patch, all in one, 22011)은 패치 패킹 프로세서(22004)가 패치된 픽쳐를 패킹한 패치들로서, 24개의 뷰 각각에 대한 패치들이 아닌 올인원(all in one)으로 패킹될 수 있다.
본 발명의 실시예들에 따른 타겟 뷰 프레딕션 프로세서(Target view prediction processor, 22002), 프레딕션 에러 프로세서(Prediction error processor, 22003) 및 패치 패킹 프로세서(Patch packing processor, 22004)는 각각 타겟 뷰 프레딕션 컨트롤러, 프레딕션 에러 컨트롤러, 패치 패킹 컨트롤러 등으로 호칭될 수 있다.
본 발명의 실시예들에 따른 프리-인코더의 각 동작은 이하에서 각 도면에 기초하여 구체적으로 설명한다.
본 발명의 실시예들에 따른 비디오 송신 장치는, 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 타겟 뷰 프레딕션 컨트롤러(Target view prediction controller); 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 프레딕션 에러 컨트롤러(Prediction error controller), 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨; 프레딕션 에러 프로세싱된 픽쳐를 에러-프론 리젼 맵에 기초하여 패치 패킹하는 패치 패킹 컨트롤러(Patch packing controller); 및 패킹된 패치를 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 인코더(Encoder); 를 포함한다.
도23은 본 발명의 실시예들에 따른 타겟 뷰 프레딕션 프로세스(Target view prediction process)를 나타낸다.
타겟 뷰 프레딕션 프로세싱은 타겟 뷰 뎁스 레이어링(Target view depth layering, 23000), 백그라운드 디스패리티 프레딕션(Background disparity prediction, 23001), 뎁스 레이어 오브젝트 디스패리티 프레딕션(depth layer object disparity prediction, 23002), 및/또는 프레딕션된 픽쳐 제너레이션(predicted picture generation, 23003)을 포함한다.
타겟 뷰 프레딕션 프로세싱은 타겟 뷰잉 포지션 인포메이션, 앵커 뷰잉 포지션의 뎁스 또는 타겟 뷰잉 포지션의 뎁스 중 적어도 하나에 기초하여 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐의 뎁스 레이어를 구분하고(Target view depth layering), 앵커 뷰잉 포지션의 뎁스 및 타겟 뷰잉 포지션의 뎁스에 기초하여 구분된 뎁스 레이어를 프레딕션(Prediction)하고, 프레딕션된 뎁스 레이어를 통합하여 타겟 뷰잉 포지션에 대한 프레딕션 픽쳐를 생성(Picture generation)한다.
타겟 뷰 프레딕션 프로세싱은 텍스쳐 및/또는 뎁스를 포함하는 앵커 뷰 픽쳐(anchor view picture), 텍스쳐 및/또는 뎁스를 포함하는 소스 뷰 픽쳐(source view picture), 및/또는 타겟 뷰잉 포지션 인포메이션(target viewing position information)를 수신한다. 타겟 뷰 프레딕션 프로세싱은 수신한 데이터에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하여 프레딕션 픽쳐를 생성하고, 디스페리티를 조정하여 디스패리티 조정 메타데이터(disparity adjustment metadata)를 생성할 수 있다. 구체적인 과정은 다음과 같다.
타겟 뷰 뎁스 레이어링(Target view depth layering, 23000) 앵커 뷰잉 포지션(anchor viewing position)에 대한 픽쳐(23004)를 수신한다. 앵커 뷰잉 포지션(anchor viewing position)에 대한 픽쳐는 텍스쳐 및/또는 뎁스를 포함한다. 앵커 뷰잉 포지션(anchor viewing position)에 대한 픽쳐(23004)는 도10과 같이 스티칭(Stitching)된 픽쳐를 의미할 수 있다. 타겟 뷰 뎁스 레이어링(23000)은 타겟 뷰잉 포지션 인포메이션, 앵커 뷰잉 포지션의 뎁스, 타겟 뷰잉 포지션의 뎁스를 수신한다. 타겟 뷰 뎁스 레이어링(23000)은 앵커 뷰 뎁스 및 타겟 뷰 뎁스를 이용하여 픽쳐를 뎁스에 따라 분리한다. 뎁스에 따라서 픽쳐에 대한 오브젝트(object)가 분리될 수 있다. 뎁스에 따라서 픽쳐의 백그라운드(background) 및 서로 다른 뎁스 레이어의 오브젝트가 분류될 수 있다. 나아가, 정확한 레이어를 구분하기 위해서 뎁스 레이어가 더 세분화될 수 있다.
예를 들어, 타겟 뷰 뎁스 레이어링(23000)은 백그라운드를 포함한 n개의 뎁스 레이어 오브젝트를 분류(또는 생성)할 수 있다. 또한, 뎁스 레이어가 상세하게 구분된 경우, 뎁스 레이어에 대한 정보를 메타데이터 형태로 생성할 수 있다.
프레딕션(23001, 23002)은 백그라운드 디스패리티 프레딕션(Background disparity prediction, 23001) 및/또는 n-th뎁스 레이어 오브젝트 디스패리티 프레딕션(n-th depth layer object disparity prediction, 23002)을 포함한다. 프레딕션(23001, 23002)은 구분된 뎁스 레이어를 이용하여 픽쳐에 대한 프레딕션을 수행한다. 프레딕션(23001, 23002)은 생성된 뎁스 레이어를 타겟 뷰잉 포지션 인포메이션, 타겟 뷰잉 포지션의 오리지널 픽쳐, 앵커 뷰잉 포지션의 뎁스, 타겟 뷰잉 포지션의 뎁스를 이용하여 각 뎁스 레이어의 오브젝트 디스패리티를 추정(프레딕션)한다. 프레딕션(23001, 23002)은 앵커 뷰의 뎁스 정보 및/또는 타겟 뷰의 포지션 정보에 기초하여 수행된다. 타겟 뷰의 오리지널 텍스쳐 및 뎁스와 앵커 뷰의 텍스쳐 및 뎁스를 비교하여, 앵커 뷰의 텍스쳐 및 뎁스의 보정이 필요한 경우 디스패리티 조정 메타데이터(disparity adjustment metadata) 또는 뎁스 레이어 메타데이터(depth layer metadata)를 생성할 수 있다.
백그라운드 디스패리티 프레딕션(23001)은 뷰잉 오리엔테이션(viewing orientation) 및/또는 로케이션(location) 정보를 기반으로 백그라운드를 추정(프레딕션)한다.
n-th 뎁스 레이어 오브젝트 디스패리티 프레딕션(23002)은 생성된 n번째 뎁스 레이어에 대한 오브젝트의 디스패리티를 추정(프레딕션)한다. -th 뎁스 레이어 오브젝트 디스패리티 프레딕션(23002)은 뎁스 맵(depth map) 및/또는 로컬 MV(local MV) 정보를 이용하여 디스패리티를 프레딕션할 수 있다.
프레딕션된 픽쳐 제너레이션(23003)은 서로 다른 뎁스 레이어에 따른 프레딕션된 데이터를 통합하여 최종 프레딕션 픽쳐(또는 영상)을 생성한다. 앵커 뷰 상 가려졌던 영역이 타겟 뷰에서 보이는 영역이면, 홀(hole)이 생성된다.
앵커 뷰(23004)는 앵커 뷰에 대한 픽쳐(또는 영상)을 나타낸다. 앵커 뷰(23004)는 텍스쳐 및/또는 뎁스를 포함할 수 있다. 앵커 뷰(23004)는 타겟 뷰 뎁스 레이어링(23000)에 입력된다.
프레딕션 픽쳐(23005)는 프레딕션된 픽쳐 제너레이션(23003)에 의해 생성된 데이터를 나타낸다. 프레딕션 픽쳐(23005)는 복수 개의 픽쳐를 포함할 수 있다. 예를 들어, 프레딕션 픽쳐(23005)는 24개의 뷰로 구성될 수 있다. 프레딕션 픽쳐(23005)는 앵커 뷰 및 타겟 뷰 간 영역의 차이로 인하여 홀(hole)을 포함할 수 있다.
타겟 뷰 프레딕션 프로세싱은 타겟 뷰잉 포지션에 대한 프레딕션 픽쳐(23005)를 생성한다. 또한, 디스패리티 조정 메타데이터 및 뎁스 레이어 메타데이터를 생성할 수 있다. 이러한 메타데이터는 디스패리티 프레딕션 과정에서 타겟 뷰잉 포지션 및 앵커 뷰잉 포지션 간 보정이 필요한 경우 보정이 필요한 위치, 뎁스, XY 보정 값, 뎁스 레이어가 복수 개인 경우 각 뎁스 레이어에 해당하는 뎁스 갑사, 전체 뎁스 레이어의 개수 등을 포함할 수 있다. 본 발명의 실시예들에 따른 수신기는 디코더 포스트-프로세싱(decoder post-processing) 과정에서 이러한 메타데이터를 이용하여 타겟 뷰 프레딕션 프로세스를 수행할 수 있다. 본 발명의 실시예들에 따른 수신기의 동작은 본 발명의 실시예들에 따른 송신기의 역과정을 따르므로, 송신기의 인코더 프리-프로세싱(encoder pre-processing)이 수행하는 타겟 뷰 프레딕션 프로세스를 수신기가 구현할 수 있도록 시그널링 정보를 송신기가 수신기로 전송한다.
본 발명의 실시예들에 따른 비디오 송신 장치의 타겟 뷰 프레딕션 컨트롤러는, 타겟 뷰잉 포지션 인포메이션, 앵커 뷰잉 포지션의 뎁스 또는 타겟 뷰잉 포지션의 뎁스 중 적어도 하나에 기초하여 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐의 뎁스 레이어를 구분하고(Target view depth layering), 앵커 뷰잉 포지션의 뎁스 및 타겟 뷰잉 포지션의 뎁스에 기초하여 구분된 뎁스 레이어를 프레딕션(Prediction)하고, 프레딕션된 뎁스 레이어를 통합하여 타겟 뷰잉 포지션에 대한 프레딕션 픽쳐를 생성(Picture generation)한다.
도24는 본 발명의 실시예들에 따른 프레딕션 에러 프로세싱(prediction error processing)을 나타낸다.
프레딕션 에러 프로세싱은 프레딕션 에러 디텍션(prediction error detection, 24000), 에스티메이션 에러 디텍션(estimation error detection, 24001), 오클루션 에러 디텍션(occlusion error detection, 24002), 에러-프론 리젼 디텍션(error-prone region detection, 24003), 에러-프론 리젼 맵 포스트-프로세싱(error-prone region map post-processing, 24004), 및/또는 에러-프론 리젼 픽쳐 제너레이션(error-prone region picture generation, 24005)을 포함한다.
프레딕션 에러 디텍션(prediction error detection, 24000)은, 뷰잉 포지션에 대해 추정(프레딕션)된 픽쳐를 수신한다. 여기서 뷰잉 포지션은 타겟 뷰잉 포지션일 수 있다. 프레딕션 에러 디텍션(24000)은 뷰잉 포지션의 오리지널 픽쳐를 수신한다. 여기서 뷰잉 포지션의 오리지널 픽쳐는 뷰잉 포지션의 소스 픽쳐일 수 있다. 프레딕션 에러 디텍션(24000)은 오리지널 픽쳐 및 프레딕션 픽쳐를 서브트랙션(subtraction)하여 뷰잉 포지션에 대한 프레딕션 에러를 획득한다. 프레딕션 에러는 서브트랙션된 픽쳐 등으로 호칭될 수 있다.
에스티메이션 에러 디텍션(estimation error detection, 24001)은, 프레딕션 에러(서브트랙션된 픽쳐)를 수신한다. 에스티메이션 에러 디텍션(24001)은 프레딕션 에러로부터 에스티메이션 에러(estimation error)를 획득한다. 에스티메이션 에러 디텍션(24001)는 쓰레드홀(threshold) 방식을 사용하여 에스티메이션 에러를 획득한다. 에스티메이션 에러 디텍션(24001)는 에스티메이션 에러를 나타내는 에스티메이션 에러 맵을 생성한다.
오클루션 에러 디텍션(occlusion error detection, 24002)은, 프레딕션 에러(서브트랙션된 픽쳐)를 수신한다. 오클루션 에러 디텍션(24002)은 프레딕션 에러에 기반하여 오클루션 에러(occlusion error)를 획득한다. 예를 들어, 오리지널 픽쳐에 있고, 프레딕션 픽쳐에 없는 정보를 오클루션 에러로 감지할 수 있다. 오클루션 에러 디텍션(24002)은 오클루션 에러를 나타내는 오클루션 에러 맵을 생성한다.
에러-프론 리젼 디텍션(error-prone region detection, 24003)은, 에스티메이션 에러 맵 및/또는 오클루션 에러 맵에 기반하여 에러가 발생할 수 있는 영역(error-prone region)을 디텍션한다. 예를 들어, 에러-프론 리젼 디텍션(24003)은 에러-프론 리젼 디텍션을 통해 내재하는 데이터 픽쳐(inherent data picture)를 합치거나(merge) 또는 비어있는 픽셀(empty pixel)에 대한 블랙(black) 처리를 할 수 있다. 에러-프론 리젼 디텍션(24003)는 에러-프론 리젼을 나타내는 에러-프론 리젼 맵을 생성할 수 있다.
에러-프론 리젼 맵 포스트-프로세싱(error-prone region map post-processing, 24004)은, 에러-프론 리젼 맵을 수신한다. 에러-프론 리젼 맵 포스트-프로세싱은 에러-프론 리젼 맵을 강화(enhance)하기 위한 포스트-프로세싱을 한다. 예를 들어, 에러-프론 리젼 맵에 대해 딜레이션(dilation)하거나, 가드 밴드(guard band)를 추가할 수 있다. 에러-프론 리젼 맵 포스트-프로세싱(24004)는 에러-프론 리젼 맵을 생성하고, 서플리멘탈 에러-프론 리젼 메타데이터를 생성할 수 있다.
에러-프론 리젼 픽쳐 제너레이션(error-prone region picture generation, 24005)은, 인핸스된 에러-프론 리젼 맵을 수신한다. 에러-프론 리젼 픽쳐 제너레이션(24005)은 뷰잉 포지션의 오리지널 픽쳐를 수신한다. 에러-프론 리젼 픽쳐 제너레이션은 포스트-프로세싱된 에러-프론 리젼 맵 및/또는 오리지널 픽쳐에 기반하여 에러-프론 리젼 픽쳐를 생성한다.
프레딕션된 픽쳐(24006)는 프레딕션 에러 디텍션(24000)에 입력되는 픽쳐(영상 또는 데이터)를 나타낸다. 프레딕션 픽쳐(24006)는 홀(hole)을 포함한다. 홀은 프레딕션으로 인하여 생성된 홀을 의미한다. 예를 들어, 프레딕션된 픽쳐(24006)는 v0부터 v23까지 24개의 뷰를 포함할 수 있다.
서브트랙션된 픽쳐(24007)는 프레딕션 에러 디텍션(24000)에 의해 생성된 에러 픽쳐를 나타낸다. 예를 들어, 소스 픽쳐(오리지날 픽쳐)로부터 프레딕션된 픽쳐를 서브트랙팅하여 생성된 에러 픽쳐이다.
본 발명의 실시예들에 따른 프레딕션 에러 프로세싱의 각 과정을 구체적으로 설명한다.
프레딕션 에러 프로세싱(prediction error processing)는 타겟 뷰 프레딕션(target view prediction)을 통해 앵커 뷰 픽쳐(anchor view picture)로부터 예측할 수 없는 영역을 처리한다.
프레딕션 에러 프로세싱의 인풋(input) 데이터는 텍스쳐 및/또는 뎁스를 포함하는 프레딕션된 픽쳐(predicted picture (texture, depth)) 및/또는 텍스쳐 및/또는 뎁스를 포함하는 소스 뷰 픽쳐(source view picture (texture, depth))이다.
프레딕션 에러 프로세싱의 아웃풋(output) 데이터는 에러-프론 리젼 픽쳐(error-prone region picture), 에러-프론 리젼 맵(error-prone region map) 및/또는 서플리멘탈 에러-프론 리젼 메타데이터(supplemental error-prone region metadata)이다.
프레딕션 에러 디텍션(prediction error detection, 24000)는 타겟 뷰 프레딕션(target view prediction)으로 인하여 발생한 에러(error)를 추정한다. 예를 들어, 오리지널 픽쳐(original picture)로부터 추정된 픽쳐(predicted picture)를 서브트랙션(subtraction)하여 에러(에러 픽쳐)를 추정한다.
예를 들어, n번째 뷰잉 포지션의 에러 픽쳐는 다음과 같이 추정된다. n번째 뷰잉 포지션의 소스 뷰 픽쳐에서 n번째 뷰잉 포지션의 추정된 픽쳐를 서브트랙션한다. 또한, 다음 수식과 같이 에러를 획득할 수 있다(수식: e.g., error picture (of the n-th viewing position) = (source view picture (of the n-th viewing position) - predicted picture (of the n-th viewing position))/2 + 512).
에스티메이션 에러 디텍션(estimation error detection, 24001)는 앵커 뷰 픽쳐(anchor view picture)를 통해 정보를 추정할 수 있지만 정확도가 떨어지는 부분을 감지한다. 예를 들어, 쓰레스홀드( threshold)를 통해 프레딕션 에러(prediction error)를 감지할 수 있다. 본 발명의 실시예들에 따른 에스티메이션 에러(estimation error)는 다음의 수식과 같이 획득된다(e.g., estimation error (x.y pixel location) = minimum threshold < error picture (x, y) < maximum threshold). 여기서 미니멈 쓰레스홀드(minimum threshold)는 일정 정도 이상의 오류만을 프레딕션 에러(prediction error)로 포함하기 위한 목적이다. 맥시멈 쓰레스홀드(maximum threshold)는 오클루션 에러(occlusion error)를 구분하기 위한 목적이다. 프레딕션 에러 맵(prediction error map)은 프레딕션 에러(prediction error)가 있는 위치에 대해서만 값을 갖는 인디케이터(indicator) 역할을 한다.
오클루션 에러 디텍션(occlusion error detection, 24002)는 앵커 뷰 픽쳐(anchor view picture)를 통해 정보를 추정할 수 없는 부분을 감지한다. 프레딕션(prediction) 후 생기는 홀(hole, 정보가 없는 영역)을 통해 추정할 수 없는 부분을 추정 할 수 있다. 예를 들어, 다음과 같이 프레딕션 에러(prediction error)가 원본 픽셀값과 거의 유사하고 원본 픽셀의 값이 0이 아닌 경우 오클루션(occlusion) 으로 인해 발생하는 홀(hole)로 고려할 수 있다(e.g., occlusion error (x.y) = abs((error (x, y) - 512) * 2) - source view picture (x, y)) < threshold && source view picture (x, y) > threshold). 오클루션 맵(occlusion error map)은 오클루션 에러(occlusion error)가 발생했다고 판단되는 위치에 대해서만 값을 갖는 인디케이터(indicator) 역할을 한다.
에러-프론 리젼 디텍션(error-prone region detection, 24003)는 에러(error)의 종류를 에스티메이션 에러(estimation error)와 오클루션 에러(occlusion error)로 나누어 각각 서로 다른 형태로 처리 할 수 있다. 이 경우 에스티메이션 에러(estimation error)는 레지듀얼 데이터(residual data)를 전달하고, 오클루션 에러(occlusion error)는 원본 데이터로 홀(hole)을 채울 수 있는 서브스티튜터블 데이터(substitutable data)를 전달할 수 있다. 하지만 이 경우 고주파 성분으로 구성된 레지듀얼 데이터(residual data)와 상대적으로 저주파 성분이 주를 이루는 오클루션 데이터(occlusion data)의 서로 다른 특성으로 인해 압축 효율이 떨어질 수 있으며, 데이터 종류에 따라서 다른 코덱을 사용하거나 다른 영상으로 구성하는 경우 필요한 코덱의 수가 증가하여 송수신기에 부담이 될 수 있다. 이를 해결하기 위한 방법으로써 본 발명의 실시예들은 오류가 큰 에스티메이션 에러(estimation error)를 선별하여 오클루션 에러(occlusion error)와 같이 대체할 수 있는 정보를 전달하는 방법을 사용함으로써 1) 압축 코덱의 특성을 반영하여 실제 데이터로 영상을 구성할 수 있고, 2) patch 구성의 복잡도를 줄이며, 3) 코덱의 수를 줄인다. 또한, 레지듀얼 데이터(residual data)을 위한 코덱이 필요 없는 효과가 있다.
예를 들어, 프레딕션 에러 맵(prediction error map) 혹은 오클루션 에러 맵(occlusion error map) 중 하나라도 활성화(on) 되어있는 픽셀(pixel)의 경우 에러-프론 리젼(error-prone region) 임을 나타낼 수 있다. 이 때, 0 값을 갖는 부분은 에러(error)가 없음을 나타내며, 타겟 뷰 프레딕션(target view prediction)을 통해 추정한 정보를 사용할 수 있음을 나타내며, 0이 아닌 부분 (1 혹은 max 등)에 대해서는 error가 발생할 수 있는 영역 (prediction error, occlusion error 등) 임을 나타내고 target view prediction 을 통해 추정한 정보를 사용하지 않거나 혹은 추가적인 처리가 필요함을 나타낼 수 있다.
서플리멘탈 에러-프론 리젼 메타데이터(supplemental error-prone region metadata)에는 확장(dilation) 등을 통해 확장된 픽셀 너비(pixel width)를 전달하거나 가드 밴드(guard band) 위치 및 크기 정보, 에러(error)의 종류 (예를 들어, 에스티메이션 에러(estimation error) 또는 오클루션 에러(occlusion error)) 등이 전달될 수 있다.
에러-프론 리젼 맵 포스트-프로세싱(error-prone region map post-processing, 24004)는 에러-프론 리젼(error-prone region)의 정확도를 높이거나, 압축 과정에서 발생할 수 있는 추가적인 오류를 방지하기 위한 에러-프론 리젼 맵(error-prone region map)에 대한 후처리 과정이다. 예를 들어 에러-프론 리젼(error-prone region)의 주변부에 가드 밴드(guard band)를 추가하도록 처리할 수 있으며, 확장(dilation)과 같은 방법으로 에러-프론 리젼(error-prone region) 을 일정 정도 확장할 수 있다. 이 때, 후처리 과정으로 추가된 영역 정보를 전달할 수도 있고 (e.g., pixel width), 별도의 인디케이터(indication) 없이 전달할 수도 있다.
에러-프론 리젼 픽쳐 제너레이션(error-prone region picture generation, 24005)는 앞서 생성한 에러-프론 리젼 맵(error-prone region map)을 기반으로 추정 불가능 혹은 추정 오류가 큰 영역을 대체할 원본 영상 (예를 들어, 오리지널 픽쳐(original picture) 또는 소스 뷰 픽쳐(source view picture)) 정보로 영상을 구성할 수 있다.
에러-프론 리젼 맵(error-prone region map)은 수신기에 직접 전달될 수도 있고, 전달하는 에러-프론 리젼 픽쳐(error-prone region picture)를 통해 유추하여 생성할 수도 있다.
본 발명의 실시예들에 따른 프레딕션 에러 프로세싱의 프레딕션 에러 컨트롤러(Prediction error controller)는 프레딕션된 픽쳐를 소스 픽쳐에 기반하여 프레딕션 에러를 감지하고(Prediction error detection), 프레딕션 에러는 소스 픽쳐로부터 프레딕션 픽쳐를 서브트랙션(subtraction)하여 추정되고, 프레딕션 에러에 대응하는 에러 픽쳐로부터 쓰레드홀(threshold) 값에 기반하여 에스티메이션 에러를 획득하고(Estimation error detection), 에스티메이션 에러에 대한 위치 정보를 포함하는 에스티메이션 에러 맵(estimation error map)을 생성하고, 프레딕션 에러로부터 홀(hole)에 기반하여 오클루션 에러를 획득하고(Occlusion error detection), 오클루션 에러에 대한 위치 정보를 포함하는 오클루션 에러 맵(occlusion error map)을 생성하고, 에스티메이션 에러 맵 또는 오클루션 에러 맵 중 적어도 하나에 기반하여 타겟 뷰잉 포지션에 대한 프레딕션에 관련된 에러 발생 영역(error-prone region)을 감지하고, 에러 발생 영역에 대한 위치 정보를 포함하는 에러 발생 영역 맵(error-prone region map)을 생성하고, 에러 발생 영역 맵에 가드 밴드를 추가하거나 또는 에러 발생 영역 맵을 확장하는 포스트-프로세싱을 하고(error-prone region map post-processing), 에러 발생 영역 맵 및 소스 픽쳐에 기반하여 에러 발생의 영역에 관련된 픽쳐를 생성한다(Error-region picture generation),.
본 발명의 실시예들에 따른 비디오 송신 장치의 프레딕션 에러 컨트롤러(Prediction error controller)는 프레딕션된 픽쳐를 소스 픽쳐에 기반하여 프레딕션 에러를 감지하고(Prediction error detection), 프레딕션 에러는 소스 픽쳐로부터 상기 프레딕션 픽쳐를 서브트랙션(subtraction)하여 추정되고, 프레딕션 에러에 대응하는 에러 픽쳐로부터 쓰레드홀(threshold) 값에 기반하여 에스티메이션 에러를 획득하고(Estimation error detection), 에스티메이션 에러에 대한 위치 정보를 포함하는 에스티메이션 에러 맵(estimation error map)을 생성하고, 프레딕션 에러로부터 홀(hole)에 기반하여 오클루션 에러를 획득하고(Occlusion error detection), 오클루션 에러에 대한 위치 정보를 포함하는 오클루션 에러 맵(occlusion error map)을 생성한다.
도25는 본 발명의 실시예들에 따른 프레딕션 에러 프로세싱(prediction error processing)을 나타낸다.
프레딕션 에러 프로세싱은 에스티메이션 에러 디텍션(estimation error detection, 25000), 오클루션 에러 디텍션(occlusion error detection, 25001), 데이터 클래시피케이션(data classification, 25002), 에스티메이션 에러 리젼 디텍션(estimation region detection, 25003), 에스티메이션 에러 서브스티튜션(estimation error substitution, 25004), 에러-프론 리젼 맵 프로세싱(error-prone region map processing, 25005) 및/또는 에러-프론 리젼 픽쳐 제너레이션(error-prone region picture generation, 25006)를 포함한다.
에스티메이션 에러 디텍션(estimation error detection, 25000)은 타겟 뷰잉 포지션의 프레딕션된 픽쳐(predicted picture of target viewing position) 및 타겟 뷰잉 포지션의 소스 픽쳐(original picture of target viewing position또는 오리지널 픽쳐)를 수신한다. 에스티메이션 에러 디텍션(25000)는 추정된 픽쳐 및 오리지널 픽쳐 간 프레딕션 에러를 감지한다. 에스티메이션 에러 디텍션(25000)은 타겟 뷰잉 포지션에 대한 서브트랙트된 픽쳐(subtracted picture of target viewing position)를 생성한다. 구체적인 에스티메이션 에러 디텍션 방법은 도24에서 상술한 바와 같다. 예를 들어, 오리지널 픽쳐 및 프레딕션 픽쳐 간의 차이를 통해 뷰잉 포지션에 대한 서브트랙트된 픽쳐를 생성할 수 있다.
오클루션 에러 디텍션(occlusion error detection, 25001)은 프레딕션된 픽쳐로부터 오클루션 에러를 감지한다. 오클루션 에러 디텍션(25001)은 오클루션 에러의 위치 정보를 나타내는 오클루션 리젼 맵(occlusion region map)을 생성한다. 구체적인 오클루션 에러 디텍션(25001)는 도24에서 상술한 바와 같다.
데이터 클래시피케이션(data classification, 25002)은 타겟 뷰잉 포지션의 서브트랙트된 픽쳐를 수신한다. 데이터 클래시피케이션(25002)는 오클루션 리젼 맵을 수신한다. 데이터 클래시피케이션(25002)는 오클루션 리젼 맵 및 서브트랙트된 픽쳐에 기반하여 인히런트 데이터(inherent data 또는 오리지널 픽쳐 또는 소스 픽쳐) 및 에스티메이션 에러를 분류한다. 데이터 클래시피케이션(25002)는 분류된 에스티메이션 에러(estimation error picture또는 에스티메이션 에러 픽쳐)를 생성한다. 데이터 클래시피케이션(25002)는 프레딕션 에러 및 오클루션 에러를 종합하여 에러의 종류를 분류한다. 데이터 클래시피케이션(25002)는 분류된 오클루션 에러에 대한 오클루션 리젼의 인히런트 데이터 픽쳐(inherent data picture of occlusion region, 오리지널 픽쳐 또는 소스 픽쳐)를 생성한다.
에스티메이션 에러 리젼 디텍션(estimation region detection, 25003)은 에스티메이션 에러 픽쳐(estimation error picture또는 에스티메이션 에러)를 수신한다. 에스티메이션 에러 리젼 디텍션(25003)은 에스티메이션 에러의 리젼을 감지한다. 구체적인 에스티메이션 에러의 리젼을 감지하는 방법은 도24에서 상술한 바와 같다. 예를 들어, 쓰레스홀드(threshold or thresholding)를 통해 에스티메이션 에러가 발생한 리젼을 나타낼 수 있다. 에스티메이션 에러 리젼 디텍션(25003)는 에러가 발생할 수 있는 영역에 관한 정보를 나타내는 에러-프론 리젼 맵(error-prone region map)을 생성한다.
에스티메이션 에러 서브스티튜션(estimation error substitution, 25004)은 에러-프론 리젼 맵을 수신한다. 예를 들어, 에스티메이션 에러 서브스티튜션(25004)은 에러의 값이 큰 경우, 큰 에러를 인히런트 데이터로 대체한다. 에스티메이션 에러 서브스티튜션(25004)은 에러-프론 리젼의 인히런트 데이터 픽쳐(inherent data picture of the error-prone region)를 생성한다.
에러-프론 리젼 맵 프로세싱(error-prone region map processing, 25005)은 오클루션 리젼 맵을 수신한다. 에러-프론 리젼 맵 프로세싱(25005)는 에러-프론 리젼 맵을 수신한다. 에러-프론 리젼 맵 프로세싱(25005)는 에러-프론 리젼의 정확도를 증가시킨다. 에러-프론 리젼 맵 프로세싱(25005)는 인코딩 또는 압축과정에서 발생할 수 있는 추가적인 오류를 방지한다. 구체적인 에러-프론 리젼 맵 프로세싱 방법은 도24의 에러-프론 리젼 맵 포스트-프로세싱에서 상술한 바와 같다.
에러-프론 리젼 픽쳐 제너레이션(error-prone region picture generation, 25006)은 오클루션 리젼의 인히런트 데이터 픽쳐를 수신한다. 에러-프론 리젼 픽쳐 제너레이션(25006)는 에러-프론 리젼의 인히런트 데이터 픽쳐 및/또는 에러-프론 리젼 맵을 수신한다. 에러-프론 리젼 픽쳐 제너레이션(25006)는 에러-프론 리젼 픽쳐를 생성한다. 구체적인 에러-프론 리젼 픽쳐 제너레이션 방법은 도24에서 상술한 바와 같다.
프레딕션 에러 프로세싱(prediction error processing)는 타겟 뷰 프레딕션(target view prediction) 과정을 통해 앵커 뷰 픽쳐(anchor view picture)로부터 예측할 수 없는 영역을 처리하기 위한 과정이다. 프레딕션 에러 프로세싱의 인풋 데이터(inputs)는 텍스쳐 및/또는 뎁스를 포함하는 프레딕션된 픽쳐( predicted picture (texture, depth)), 텍스쳐 및/또는 뎁스를 포함하는 소스 뷰 픽쳐이다. 프레딕션 에러 프로세싱의 아웃풋 데이터(outputs)는 에러-프론 리젼 픽쳐, 에러-프론 리젼 맵, 및/또는 서플리멘탈 에러-프론 리젼 메타데이터이다.
도25의 프레딕션 에러 디텍션(25000), 오클루션 에러 디텍션(25001), 에러-프론 리젼 디텍션(25003), 에러-프론 리젼 픽쳐 제너레이션(25006), 에러-프론 리젼 맵 프로세싱(25005)은 도24에서 설명한 내용에 대응될 수 있다.
데이터 클래시피케이션(25002)는 프레딕션 에러 및 오클루션 에러를 종합하여 에러의 종류에 따라서, 에러에 관련된 데이터를 분류한다.
에스티메니션 에러 서브스티튜션(25004)은 에스티메이션 에러의 경우, 본 발명의 실시예들에 따른 비디오 송신 장치는 예측 오류에 대한 차분값을 전달할 수 있다. 나아가, 영상 데이터의 종류를 줄이기 위해서, 예측 오류에 대한 원본 영상 정보를 본 발명의 실시예들에 따른 비디오 송신 장치가 전달할 수 있다. 예를 들어, 예측 오류가 너무 큰 경우, 차분값을 전달하는 것이 더 비효율적인 경우, 본 발명의 실시예들에 따른 비디오 송신 장치는 원본 영상 정보를 전달하여 정보를 대체할 수 있다.
본 발명의 실시예들에 따른 프레딕션 에러 프로세싱의 프레딕션 에러 컨트롤러(Prediction error controller)는 타겟 뷰잉 포지션의 프레딕션된 픽쳐를 타겟 뷰잉 포지션의 소스 픽쳐에 기반하여 에스티메이션 에러를 감지하고(estimation error detection), 타겟 뷰잉 포지션의 서브트랙트된 픽쳐를 생성하고, 프레딕션된 픽쳐로부터 오클루션 에러를 감지하고(occlusion error detection), 오클루션 에러를 나타내는 오클루션 리젼 맵을 생성하고, 서브트랙트된 픽쳐 및 오클루션 리젼 맵에 기반하여 프레딕션 에러 및 오클루션 에러를 포함하는 에러의 종류를 분류하고(data classification), 프레딕션 에러에 대한 픽쳐에 기반하여 프레딕션된 픽쳐에 대한 프레딕션 에러의 리젼을 감지하고(estimation error region detection), 프레딕션 에러의 리젼을 나타내는 에러-프론 리젼 맵을 생성하고, 프레딕션 에러의 값이 일정값보다 큰 경우, 프레딕션 에러를 소스 픽쳐로 대체하고(estimation error substitution), 오클루션 리젼 맵 및 에러-프론 리젼 맵에 기반하여 에러 발생 영역을 나타내는 에러-프론 리젼 맵을 생성하고, 대체된 소스 픽쳐 및 오클루션 리젼의 소스 픽쳐에 기반하여 에러-프론 리젼 픽쳐를 생성한다(error-prone region picture generation).
도26은 본 발명의 실시예들에 따른 패치 패킹 프로세싱을 나타낸다.
패치 패킹 프로세싱은 리젼 클러스터링(region clustering, 26000), 패치 제너레이션(patch generation, 26001), 패치 제너레이션 포스트-프로세싱(patch generation post-processing, 26002), 및/또는 패치 패킹(patch packing, 26003)을 포함한다.
리젼 클러스터링(region clustering, 26000)은 에러-프론 리젼 픽쳐(error-prone region picture)를 수신한다. 리젼 클러스터링(26000)는 에러-프론 리젼 맵(error-prone region map)을 수신한다. 리젼 클러스터링(26000)은 에러-프론 리젼 맵에 기반하여 에러-프론 리젼 픽쳐의 리젼(영역)을 그룹핑(또는 클러스터링)한다. 리젼 클러스터링(26000)는 에러-프론 리젼 픽쳐의 리젼(영역)을 그룹핑하여 클러스터링 맵(clustering map)을 생성한다. 예를 들어, 매뉴얼 모드(manual mode)를 통해 리젼 클러스터링이 수행되거나 에러-프론 리젼 픽쳐에 포함된 인접한 픽셀들(neighborhood search)이 클러스터링될 수 있다.
패치 제너레이션(patch generation, 26001)은 에러-프론 리젼 픽쳐(error-prone region picture)를 수신한다. 패치 제너레이션(26001)은 타겟 뷰잉 포지션의 오리지널 픽쳐(original picture of target viewing position)를 수신한다. 패치 제너레이션(26001)는 클러스터링 맵(clustering map)을 수신한다. 패치 제너레이션(26001)은 에러-프론 리젼 픽쳐, 오리지널 픽쳐, 클러스터링 맵에 기반하여 에러-프론 리젼을 위한 오리지널 픽쳐의 패치(들)을 생성한다. 예를 들어, 패치의 모양은 렉텡큘러(rectangular), 버텍스(vertex) 등의 모양일 수 있다. 본 발명의 실시예들에 따른 패치의 모양은 다양하게 설정될 수 있다.
패치 제너레이션 포스트-프로세싱(patch generation post-processing, 26002)은 패치(들)을 수신한다(patches of original picture for the error-prone region). 패치 제너레이션 포스트-프로세싱(26002)은 타겟 뷰잉 포지션의 오리지널 픽쳐를 수신한다. 패치 제너레이션 포스트-프로세싱(26002)은 클러스터링 맵을 수신한다. 패치 제너레이션 포스트-프로세싱(26002)은 패치, 오리지널 픽쳐 및/또는 클러스터링 맵에 기반하여 가드 리젼(guard region)을 갖는 패치(들)을 생성한다(patches with guard region). 예를 들어, 패치 제너레이션 포스트-프로세싱(26002)은 렉텡큘러 모양의 패치 내의 빈 공간들을 오리지널 픽쳐의 픽셀로 채운다(fill-in the rectangular). 또한, 패치 제너레이션 포스트-프로세싱(26002)은 패치 바운더리로부터 일정한 패치 너비에 해당하는 가드 밴드(X pixel width from the patch boundary)를 생성할 수 있다. 본 발명의 실시예들에 따른 패치 제너레이션 포스트-프로세싱(26002)은 옵셔널(optional)하게 수행될 수 있다.
패치 패킹(patch packing, 26003)은 에러-프론 리젼을 위한 오리지널 픽쳐의 패치(들)(patches of original picture for the error-prone region)을 수신하거나 또는 가드 리젼을 갖는 패치들(patches with guard region)을 수신한다. 패치 패킹(26003)은 수신된 패치에 기반하여 가드 리젼을 갖는 패치들의 패킹된 픽쳐(packed picture of the patches with guard region)를 생성한다. 또는 패치 패킹(번26003호)는 패치들의 패킹된 픽쳐를 생성한다. 패치 패킹(26003)은 패치 패킹에 관련된 시그널링 정보를 포함하는 패킹 메타데이터(packing metadata)를 생성한다.
본 발명의 실시예들에 따른 패치 패킹 프로세싱의 데이터는 다음과 같다.
에러-프론 리젼 픽쳐(error-prone region picture, 26004)는 패치 패킹 프로세싱의 인풋 데이터이다. 예를 들어, 총 24개의 뷰에 대한 데이터(v0 부터 v23)가 입력될 수 있다. 에러-프론 리젼 픽쳐(26004)는 상술한 서브트랙션된 픽쳐에 대응된다. 예를 들어, 에러-프론 리젼 픽쳐(26004)는 오리지널 픽쳐 및 프레딕션된 픽쳐 간의 차이로 인해 생성된 픽쳐이다.
패치들(patches, 26005)은 패치 제너레이션(26005)에 의해 생성된 패치들이다. 예를 들어, 총 24개의 뷰에 대한 데이터(v0 부터 v23)가 있는 경우, 각 뷰에 대한 데이터마다 의미 있는 데이터를 포함하는 리젼(영역)을 포함하는 패치들이 생성될 수 있다. 에러-프론 리젼 픽쳐에 포함된 음영 처리된 영역은 의미 없는 데이터이고, 의미 있는 데이터를 포함하는 리젼이 패치에 포함된다.
패킹된 패치들(packed patches, 26006)은 패치 패킹(26003)에 의해 생성된 패킹된 패치들이다. 예를 들어, 총 24개의 뷰에 대한 데이터(v0 부터 v23)에 대해 생성된 패치들이 패킹된다. 패킹된 패치들은 패치 제너레이션 포스트-프로세싱(26006)의 의해 생성된 가드 리젼을 포함할 수 있다. 각 패킹된 패치 간 가드 리젼이 포함될 수 있다.
패킹된 패치(packed patch(all in one), 26007)는 패치 패킹(26003)에 의해 생성된 패킹된 패치이다. 예를 들어, 총 24개의 뷰에 대한 데이터(v0 부터 v23)에 대해 생성된 패치들을 하나로 모아서(all in one) 하나의 패치가 패킹될 수 있다.
본 발명의 실시예들에 따른 패킹 프로세싱의 구체적인 동작은 다음과 같다.
패킹 프로세스(packing process)은 추정 불가능한 영역의 정보를 효율적으로 전달하기 위한 과정이다. 이 과정을 통해 전체 영상 중 정보가 없는 영역을 제거하기 때문에 전달해야 하는 영상의 크기가 줄거나, 전달해야하는 영상의 전체 개수를 줄임으로써 전달해야하는 데이터량을 줄이는 효과가 있다.
리젼 클러스터링(region clustering, 26000)은 프레딕션 에러 프로세싱(prediction error processing)을 통해 생성된 에러-프론 리젼 픽쳐(error-prone region picture) 중 전달해야 하는 영역의 그룹을 짓는 과정이다. 가장 스파스(sparse) 하게는 에러-프론 리젼 맵(error-prone region map)에서 인디케이팅(indication) 된 픽셀(pixel)을 각각 전달할 수 있겠지만, 이 경우 각 픽셀(pixel)을 인디케이팅(indication)하는 정보량이 최대로 늘어나기 때문에 데이터(data) 전달의 효율성이 떨어진다. 따라서 연관된 정보를 묶어서 전달하기 위한 그룸핑(grouping) 과정이 필요하다. 이 때, 사용자가 직접 그룹(group)을 지어줄 도 있고, 공간상으로 인접한 픽셀(pixel)이 유효 픽셀(pixel)인 경우 그룹(group)으로 묶어주는 방법을 사용할 수 있다. 그 결과 리젼 클러스터링 맵(region clustering map)을 통해 복수의 그룹에 속한 픽셀(pixel)들이 표시되며, 에러-프론 리젼(error-prone region) 내의 모든 유효 픽셀은 리젼 클러스터링 맵(region clustering map)의 그룹 중 하나에 포함되어야 한다.
패치 제너레이션(patch generation, 26001)은 프레딕션 에러 프로세싱(prediction error processing)을 통해 생성된 에러-프론 리젼 픽쳐(error-prone region picture) 중 전달해야 하는 영역을 선별하고 각각을 패치(patch)로 구성하는 과정이다. 도면을 참조하면 회색으로 표현된 부분이 데이터(data)가 없는 영역인데, 유효 픽셀(pixel)이 있는 부분을 포함하는 렉텡큘러(rectangular) 영역으로 포함하도록 하였다. 렉텡큘러(rectangular) 영역을 사용한 이유는 패킹(packing) 된 패치(patch)의 위치를 수신기에 알려주고 수신기에서 필요한 패치(patch)를 효율적으로 사용하기 위해서 이다. 하지만 렉텡큘러 패치 리젼(rectangular patch region) 내에 불필요한 부분이 다수 포함되기 때문에 임의의 모양의 패치(patch)를 사용함으로써 혹은 미리 약속된 다양한 모양의 패치 리젼(patch region)을 사용함으로써 컴팩트(compact)하게 패치(patch)를 구성할 수도 있다.
패치 제너레이션 포스트-프로세싱(patch generation post-processing, 26002)은 생성된 패치(patch)에 대한 후처리 과정이다. 예를 들어 패치(patch) 내의 빈 공간들을 오리지널 픽쳐 데이터(original picture data)로 채움으로써 수신기에서 프레딕션(prediction)을 위해 필요한 연산을 줄일 수 있으며, 그리고/혹은 패치 패킹(patch packing) 및 인코딩/디코딩(encoding/decoding) 으로 인해 발생할 수 있는 오류를 방지하기 위해 패치(patch)의 가드 밴드(guard band)를 생성하는 작업을 수행할 수 있다.
패치 패킹(patch packing)은 앞서 생성된 패치(patch)를 하나 혹은 복수의 영상으로 구성하고, 각 패치(patch)에 대한 정보를 생성하는 과정이다. 영상으로 구성할 때 각 뷰잉 포지션(viewing position)에 대한 패치(patch)만을 모아서 각각의 영상으로 구성할 수도 있고, 복수의 뷰잉 포지션(viewing position)에 대한 패치(patch)를 모아서 하나의 영상으로 구성할 수 도 있다. 이 때, 필요한 경우 패치(patch)의 크기 조정, 로테이션(rotation), 플립(flip) 등을 통해 효율적으로 패킹(packing) 할 수 있다. 패킹 메타데이터(packing metadata)에는 언패킹(unpacking)을 위해 필요한 정보가 포함되며, 패치(patch)의 크기, 위치, 조정된 정보 (크기조정, 로테이션(rotation), 플립(flip) 등), 원본 영상에서의 위치, 크기, 가드 밴드(guard band) 정보, 에러(error)의 종류 (estimation error / occlusion error) 등이 전달될 수 있다.
본 발명의 실시예들에 따라, 프루닝(pruning) 과정 없이 패킹(packing)만이 사용되는 경우가 있다. 예를 들어, 도22와 같이 타겟 뷰 프레딕션 프로세싱(22002) 및 프레딕션 에러 프로세싱(22001)를 포함하는 프루닝 과정이 옵셔널한 모드가 있을 수 있다. 이 경우 모든 뷰(view) 혹은 일부의 뷰(view)에 대해 풀 픽쳐(full picture)를 대상으로 패킹(packing) 할 수 있으며, 영역의 중요도 (예를 들어 사용자의 뷰잉 다이렉션(viewing direction) / 뷰잉 포지션(viewing position), 혹은 퀄리티(quality))에 따라 서로 다른 가중치를 두어 패킹(packing) 할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치의 패치 패킹 컨트롤러는, 에러-프로 리젼 맵에 기반하여 프레딕션 에러 프로세싱된 픽쳐의 에러-프론 리젼 픽쳐(error-prone region picture)를 구분하는 리젼을 클러스터링하고(region clustering), 리젼을 나타내는 클러스터링 맵(clustering map)을 생성하고, 소스 픽쳐 및 클러스터링 맵에 기반하여 상기 에러-프론 리젼 픽쳐로부터 패치를 생성하고(patch generation), 패치를 이용하여 하나 또는 하나 이상의 픽쳐를 생성(patch packing)한다.
도27은 본 발명의 실시예들에 따른 비디오 송신 장치의 인코더 및 비디오 수신 장치의 디코더의 아키텍쳐를 나타낸다.
비디오 송신 장치의 인코더는 로테이션/프로젝션(rotation/projection, 27000), 프리프로세싱(preprocessing, 27001), 및/또는 인코딩(encoding, 27002)을 수행한다.
로테이션/프로젝션(27000)은 텍스쳐 및/또는 뎁스를 포함하는 멀티플 스페리컬 비디오 및/또는 이미지(multiple spherical video/image(texture/depth))를 수신한다. 로테이션/프로젝션(27000)은 멀티플 스페리얼 비디오/이미지를 로테이션 및/또는 프로젝션하여 텍스쳐 및/또는 뎁스를 포함하는 프로젝션된 픽쳐를 생성한다. 로테이션/프로젝션(27000)은 프로젝션 과정에 관련된 시그널링 정보를 포함하는 프로젝션 파라미터(projection parameters)를 생성한다.
프리프로세싱(27001)은 프로젝션된 픽쳐를 수신한다. 예를 들어, 프리프로세싱(27001)은 인터-뷰 리던던시 리무벌(inter-view redundancy removal), 및/또는 패킹(packing)을 포함한다. 인터-뷰 리던던시 리무벌은 멀티플 프로젝션된 픽쳐 중 인접한 픽쳐 간의 리던던시를 리무브한다. 패킹은 멀티플 프로젝션된 픽쳐를 픽쳐로 패킹한다. 프리프로세싱(27001)은 프리프로세싱에 관련된 시그널링 정보를 포함하는 프리프로세싱 메타데이터(preprocessing metadata)를 생성한다.
인코딩(27002)은 패킹된 픽쳐를 수신한다. 인코딩(27002)은 프리프로세싱 메타데이터를 수신한다. 인코딩(27002)은 프로젝션 파라미터를 수신한다. 인코딩(27002)은 프리프로세싱 메타데이터 및/또는 프로젝션 파라미터에 기반하여 패킹된 픽쳐를 인코딩한다. 인코딩된 데이터는 비트스트림의 형태로 서버를 통해 비디오 수신 장치로 전송된다.
도27의 인코더는 도22의 프리-인코더에 대응되고, 결합될 수 있다.
비디오 수신 장치의 디코더는 디코딩(decoding, 27003), 뷰 리컨스트럭션(view reconstruction, 27004), 뷰 신테시스(view synthesis, 27005), 렌더링/뷰포트 제너레이션(rendering/viewport generation, 27006)을 수행한다.
디코딩(27003)은 비디오 송신 장치로부터 서버를 통해 비트스트림을 수신한다. 디코딩(27003)은 뷰잉 포지션 및/또는 뷰포트 인포메이션을 수신한다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림에 포함되어 전송될 수 있다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림과 별도로 수신단에서 피드백 정보로 수신될 수 있다. 디코딩(27003)은 비트스트림에 포함된 데이터를 디코딩하여 패킹된 픽쳐를 생성한다. 디코딩(27003)은 비트스트림에 포함된 데이터를 디코딩하여 리컨스트럭션 파라미터(reconstruction parameters)를 생성한다. 디코딩(27003)은 비트스트림에 포함된 데이터를 디코딩하여 뷰 신테시스 파라미터(view synthesis parameters)를 생성한다.
뷰 리컨스트럭션(27004)은 패킹된 픽쳐를 수신한다. 뷰 리컨스트럭션(27004)은 리컨스트럭션 파라미터에 기반하여 패킹된 픽쳐로부터 텍스쳐 및/또는 뎁스를 포함하는 픽쳐를 생성(리컨스트럭션)한다. 뷰 리컨스트럭션(27004)는 뷰잉 포지션 및/또는 뷰포트 인포메이션을 수신한다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림에 포함되어 전송될 수 있다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림과 별도로 수신단에서 피드백 정보로 수신될 수 있다. 뷰 리컨스트럭션(27004)는 뷰잉 포지션 및/또는 뷰포트 인포메이션에 기반하여 픽쳐를 리컨스럭션할 수 있다.
뷰 신테시스(27005)는 텍스쳐 및/또는 뎁스를 포함하는 픽쳐를 수신한다. 뷰 신테시스(27005)는 뷰 신테시스 파라미터를 수신한다. 뷰 신테시스(27005)는 수신한 픽쳐로부터 뷰 신테시스 파라미터에 기반하여 타겟 뷰잉 포지션에 대한 픽쳐를 생성한다. 타겟 뷰잉 포지션에 대한 픽쳐는 텍스쳐를 포함한다. 뷰 신테시스(27005)는 뷰잉 포지션 및/또는 뷰포트 인포메이션을 수신한다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림에 포함되어 전송될 수 있다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림과 별도로 수신단에서 피드백 정보로 수신될 수 있다. 뷰 신테시스(27005)는 뷰잉 포지션 및/또는 뷰포트 인포메이션에 기반하여 타겟 뷰잉 포지션에 대한 픽쳐(텍스쳐)를 신테사이즈할 수 있다.
렌더링/뷰포트 제너레이션(27006)은 타겟 뷰잉 포지션에 대한 픽쳐(텍스쳐)를 수신한다. 렌더이/뷰포트 제너레이션(27006)은 뷰잉 포지션 및/또는 뷰포트 인포메이션을 수신한다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림에 포함되어 전송될 수 있다. 뷰잉 포지션 및/또는 뷰포트 인포메이션은 비트스트림과 별도로 수신단에서 피드백 정보로 수신될 수 있다. 렌더이/뷰포트 제너레이션(27006)은 타겟 뷰잉 포지션에 대한 픽쳐(텍스쳐)를 렌더링하고, 타겟 뷰포트에 대한 픽쳐(텍스쳐)를 생성한다. 렌더링/뷰포트 제너레이션(27006)은 뷰잉 포지션 및/또는 뷰포트 인포메이션에 기반하여 타겟 뷰포트에 대한 픽쳐(텍스쳐)를 생성한다. 타겟 뷰포트에 대한 픽쳐(텍스쳐)는 디스플레이된다.
도28은 본 발명의 실시예들에 따른 인코더의 구체적인 아키텍쳐를 나타낸다.
본 발명의 실시예들에 따른 비디오 송신 장치(인코더)는 이하의 동작을 수행할 수 있다.
뷰잉 볼륨 제너레이션(Viewing volume generation, 28000)은 임의의 다시점에 대한 360 비디오 데이터를 대상이 되는 신(Scene)으로부터 획득한다. 뷰잉 볼륨 제너레이션은 신의 정보를 CG 그래픽의 형태로 수신할 수 있고, 신에 대한 3D 공간을 고려하여 뷰잉의 볼륨을 생성할 수 있다. 그 결과, 텍스쳐 및 뎁스를 포함하는 멀티 스페리컬 비디오(multiple spherical videos)가 생성된다.
여기서 신(scene)은 카메라로부터 획득된 영상을 의미하고, CG는 컴퓨터 그래픽스 등의 사전 처리를 통해 획득된 영상을 의미한다.
뷰잉 볼륨 제너레이션은 뷰잉 볼륨에 관련된 뷰잉 스페이스 파라미터를 생성한다. 뷰잉 볼륨(viewing volume)은 3DoF+를 지원하는 공간을 의미한다. 카메라가 촬영한 영상을 그대로 사용하기 보다는 컴퓨터 그래픽스 등의 처리를 통해서 3차원 공간 상에서 가상 시점(virtual view)의 영상을 합성하고 합성된 영상을 3DoF+영상으로 만드는 과정을 나타낸다.
버츄얼 카메라 캡쳐링(Virtual camera capturing, 28001)은 각 뷰잉 포지션에 대한 멀티-스피어(mulita-sphere)를 생성하기 위해서 가상의 카메라 캡쳐링을 수행할 수 있다. 뷰잉 볼륨에 기반하여 가상의 카메라 캡쳐 정보를 생성할 수 있다. 버츄얼 카메라 캡쳐링은 선택적으로 수행될 수 있다.
프로젝션된 텍스쳐/뎁스 제너레이션(Projected texture/depth generation for each viewing position, 28002)은 각 뷰잉 포지션에 대한 텍스쳐/뎁스를 포함하는 프로젝션된 픽쳐를 생성하고, 프로젝션된 픽쳐를 합성하기 위한 뷰 신테시스 파라미터를 생성한다.
인터-뷰 리던던시 리무벌(inter-view redundancy removal, 28003)은 프로젝션된 픽쳐에 대한 뷰 간 리던던시를 제거하여 텍스쳐 및 뎁스를 포함하는 픽쳐를 생성한다. 인터-뷰 리던던시 리무벌 은 텍스쳐에 대한 패치 및 레지듀얼을 고려한 최적의 픽쳐를 생성하고, 픽쳐를 리컨스트럭션하기 위한 리컨스트럭션 파라미터를 생성한다.
패킹(Packing, 28004)은 복수의 픽쳐들을 패킹하여 패킹된 픽쳐를 생성하고, 픽쳐의 패킹에 관련된 패킹 메타데이터를 생성한다.
인코딩(Encoding, 28005)은 패킹된 픽쳐를 인코딩한다. 인코딩은 상술한 동작에서 생성된 뷰잉 스페이스 파라미터, 뷰 신테시스 파라미터, 리컨스트럭션 파라미터, 및/또는 패킹 메타데이터에 기반하여 픽쳐에 포함된 데이터를 인코딩한다.
서버(server)를 통해 인코딩된 데이터를 비트스트림의 형태로 비디오 송신 장치(인코더)에서 비디오 수신 장치(디코더)로 전송한다. 여기서 뷰잉 포지션 정보 및/또는 뷰포트 정보가 함께 전송될 수 있다.
상술한 비디오 송신 장치의 각 동작은 비디오 송신 장치에 포함된 뷰잉 볼륨 제너레이터, 버츄얼 카메라 캡쳐러, 프로젝터, 인터-뷰 리던던시 리무버, 패킹 유닛, 인코더 등에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치는 이하의 동작을 수행할 수 있다.
버츄얼 카메라 캡쳐링(Virtual camera capturing, 28006)은 컴퓨터로 생성된 그래픽 데이터를 수신하여 각 뷰잉 포지션에 대한 멀티-스페리컬 데이터를 생성한다. 버츄얼 카메라 캡쳐링은 텍스쳐 및 뎁스를 포함하는 멀티플 스페리컬 비디오들을 생성하고, 멀티플 스페리컬 비디오에 관련된 뷰잉 스페이스 파라미터를 생성한다.
로테이션/프로젝션(Rotation/projection, 28007)은 덱스쳐 및 뎁스를 포함하는 복수의 스페리컬 비디오들을 로테이션 및/또는 프로젝션하여 프로젝션된 픽쳐들을 생성한다. 또한, 픽쳐를 뷰 합성하기 위한 뷰 신테시스 파라미터를 생성한다.
인터-뷰 리던던시 리무벌(inter-view redundancy removal, 28008)은 프로젝션된 픽쳐에 대한 뷰 간에 리던던시를 제거한다. 인터-뷰 리던던시 리무벌은 패치/레지듀얼(텍스쳐)에 대해 최적화된 뷰 간 리던던시가 제거된 픽쳐를 생성하고, 픽쳐를 리컨스트럭션하기 위한 리컨스트럭션 파라미터를 생성한다.
패킹(Packing, 28009)은 복수의 픽쳐들을 패킹하여 최적의 픽쳐를 생성한다. 패킹은 패킹된 픽쳐를 나타내기 위한 패킹 메타데이터를 생성한다.
인코딩(Encoding, 28010)은 패킹된 픽쳐를 인코딩한다. 인코딩은 상술한 동작에서 생성된 뷰잉 스페이스 파라미터, 뷰 신테시스 파라미터, 리컨스트럭션 파라미너, 및/또는 패킹 메타데이터에 기반하여 패킹된 픽쳐에 포함된 데이터를 인코딩한다.
서버(server)를 통해 인코딩된 데이터를 비트스트림의 형태로 비디오 송신 장치(인코더)에서 비디오 수신 장치(디코더)로 전송한다. 여기서 뷰잉 포지션 정보 및/또는 뷰포트 정보가 함께 전송될 수 있다.
상술한 비디오 송신 장치의 각 동작은 버츄얼 카메라 캡쳐러, 로테이터/프로젝터, 인터-뷰 리던던시 리무버, 패킹 유닛, 인코더 등에 의해 수행될 수 있다.
도29는 본 발명의 실시예들에 따른 디코터의 구체적인 아키텍쳐를 나타낸다.
본 발명의 실시예들에 따른 비디오 수신 장치(디코더)는 이하의 동작을 수행할 수 있다.
서버(Server)를 통해 비디오 수신 장치는 데이터를 비디오 송신 장치로부터 수신할 수 있다.
디코딩(Decoding, 29000)은 비트스트림에 포함된 데이터를 디코딩한다. 디코딩은 데이터를 디코딩하여 패킹된 픽쳐를 생성하고, 비트스트림에 포함된 데이터로부터 패킹된 픽쳐를 언패킹하기 위한 언패킹 메타데이터, 픽쳐를 리컨스트럭션하기 위한 리컨스트럭션 파라미터, 픽쳐에 대한 뷰를 합성하기 위한 뷰 합성 파라미터 등을 생성할 수 있다.
언패킹(Unpacking, 29001)은 하나 또는 하나 이상의 패킹된 픽쳐를 언패킹하여 복수의 픽쳐들을 생성한다. 언패킹된 픽쳐는 텍스쳐 및 뎁스를 포함하는 픽쳐들이고, 패치/레지듀얼(텍스쳐) 관점에서 최적화된 픽쳐들이다. 언패킹은 언패킹 메타데이터에 기반하여 패킹된 픽쳐를 언패킹한다.
뷰 제너레이션(View generation, 29002)은 언패킹된 픽쳐들에 대한 뷰를 생성한다. 뷰 제너레이션은 리컨스트럭션 파라미터들에 기반하여 픽쳐로부터 뷰를 생성한다.
뷰 신테시스(View synthesis, 29003)는 생성된 뷰를 포함하는 픽쳐들을 수신하여, 타겟 뷰잉 포지션에 기반한 텍스쳐에 대한 픽쳐를 생성한다. 뷰 신테시스는 뷰 신테시스 파라미터들에 기반하여 픽쳐를 생성(합성)한다.
렌더링/뷰포트 제너레이션(rendering/viewport generation, 29004)은 합성된 뷰에 대한 뷰포트를 생성하고, 타겟 뷰포트에 기반한 텍스쳐에 대한 픽쳐를 렌더링한다.
디스플레이(Display)는 타겟 뷰포트에 대한 픽쳐를 디스플레이한다.
상술한 비디오 수신 장치의 각 동작은 인코더로부터 수신한 뷰잉 포지션 정보 및/또는 뷰포트 정보 및/또는 디스플레이 유닛으로부터 수신한 피드백 정보를 추가적으로 사용할 수 있다.
상술한 비디오 수신 장치의 각 동작은 디코더, 언패킹 유닛, 뷰 제너레이터, 뷰 신테사이저, 렌더링/뷰포트 제너레이터 등에 의해 수행될 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 실시간 움직임을 반영한 3DoF+ 비디오 송수신 시스템을 제공한다.
본 발명의 실시예들에 따른 비디오 송신 방법 및 비디오 수신 방법은 수신기의 부담을 줄이고, 수신기의 레이턴시(latency)를 줄일 수 있다. 구체적으로, 뷰 에스티메이션 및 리컨스트럭션(View estimation and reconstruction) 과정은 시점 간의 리던던시를 제거한다. 예를 들어, 3D 프레딕션 및 패치(3D prediction & patch) 및 2D 프레딕션 및 패치(2D prediction & patch)이 사용될 수 있다. 또한, 멀티플 뷰잉 포지션들의 텍스쳐, 뎁스, 패치 등이 다른 픽쳐들을 패킹하여 높은 코딩 효율을 가진 최적 또는 최소의 사이즈를 갖는 픽쳐를 생성할 수 있다. 또한, 수신기에 최적화된 영상을 생성할 수 있다. 예를 들어, 레이어드 패치(layerd patch)가 사용될 수 있고, 이는 뷰 제너레이션 및 뷰 신테시스(view generation & view synthesis)를 동시에 처리할 수 있는 효과를 제공한다. 또한, 로우 딜레이의 시점 변화를 위한 영상을 생성할 수 있다. 예를 들어, MCTS를 이용해서 동일한 뷰잉 디렉션(view direction)을 묶어서 처리할 수 있다.
추가적으로, 본 발명의 실시예들에 따른 비디오 송신 방법 및 비디오 수신 방법은 다시점 3DoF+영상을 생성할 수 있다. 구체적으로, 뷰 신테사이저는 뷰 제너레이션 에러에 강인하여, 뷰 신테사이저의 성능을 개선할 수 있다. 또한, 뷰 신테사이저는 뷰포트 디펜던트하고, 렌더러와 통합되어 뷰 신테사이저의 성능을 최적화할 수 있다.
본 발명의 실시예들에 따른 비디오 송신 장치 및 비디오 수신 장치는 이하의 메타데이터를 생성하고 사용할 수 있다.
언패킹 메타데이터(Un-packing metadata)는 디코딩에 관한 구성 정보를 포함한다. 디코딩은 데이터를 디코딩하면서 디코딩된 픽쳐의 구성에 관한 구성 정보를 언패킹 메타데이터로써 생성한다. 언패킹 메타데이터는 픽쳐에 포함된 덱스쳐, 패치, 레지듀얼, 뎁스, 오버레이 등에 관한 속성 정보를 포함한다. 언패킹 메타데이터는 패킹된 픽쳐의 각 부분에 대한 속성 정보, 패킹된 픽쳐의 각 부분이 어느 뷰잉 포지션에 대응하는지에 관한 정보, 패킹된 픽쳐의 각 부분이 프로젝션된 픽쳐 상에서 어느 위치에 해당하는지에 관한 정보를 포함한다. 또한, 언패킹 메타데이터는 디코딩된 픽쳐를 위한 스파셜 스케일링(spatial scaling), 트랜스포메이션(transformation), 밝기 스케일링 정보 등을 포함할 수 있다.
뷰 제너레이션 파라미터로써 리컨스트럭션 파라티터(reconstruction parameter)가 사용될 수 있다. 뷰 제너레이션은 언패킹 이후 텍스쳐, 패치, 레지듀얼을 조합하여 텍스쳐 또는 텍스쳐를 포함하는 픽쳐를 생성한다. 따라서, 리컨스트럭션 파라미터는 픽쳐들을 뷰 합성하기 위한 텍스쳐, 패치, 레지듀얼의 조합에 관련된 정보를 포함한다. 또한, 뷰 제너레이션은 뷰 에스티메이션을 추가로 수행할 수 있으므로, 리컨스트럭션 파라미터는 뷰 에스티메이션에 관련된 정보를 포함한다. 구체적으로, 리컨스트럭션 파라미터는 어느 뷰잉 포지션(들)의 텍스쳐 및 뎁스를 이용해서 프레딕션을 하는지에 관련된 정보, 뷰 에스티메이션의 방법을 나타내는 정보(예를 들어, 뷰 신테사이저 방법, 3D 프레딕션, 2D 프레딕션 등의 타입 정보) 등을 포함할 수 있다. 여기서 3D 프레딕션은 픽쳐를 3D 공간 상에서 리프로젝션(reprojection)을 하는 방법을 의미한다. 예를 들어, 뷰잉 포지션 B에 랩핑(wraping)하는 방법을 의미한다. 또한, 2D 프레딕션은 픽쳐를 프로젝션 포맷 상에서 모션 에스티메이션을 하는 방법을 의미한다. 예를 들어, 오브젝트/뷰잉 디렉션 기반의 모션 에스티메이션(object/viewing direction-based motion estimation)을 의미한다. 리컨스트럭션 파라미터는 패치/레지듀얼을 처리하는 방법을 나타내는 정보를 포함할 수 있다.
뷰 신테시스는 텍스쳐 및 뎁스를 포함하는 픽쳐를 각 뷰잉 포지션에 대한 신호(또는 정보)를 사용하여 뷰를 합성하므로, 뷰 신테시스 파라미터(view synthesis parameter)가 필요하다. 구체적으로, 뷰 신테시스 파라미터는 비디오의 텍스쳐 및 뎁스를 나타내는 정보, 현재 비디오에 대한 정보를 포함할 수 있다. 예를 들어, 현재 비디오에 대한 정보는 뷰포인트 및 뷰잉 포지션 등을 의미할 수 있다. 뷰 신테시스 파라미터는 이동 가능한 비디오에 대한 정보를 포함할 수 있다. 예를 들어, 이용 가능한 뷰포인트들 및 뷰잉 스페이스 정보 등을 의미할 수 있다. 뷰 신테시스 파라미터는 소스 뷰잉 포지션의 위치를 나타내는 정보, 뎁스의 존재 여부를 나타내는 정보, 뎁스의 니어(near)/파(far)의 범위를 나타내는 정보, 리컨스럭티드 뷰(reconstructed view)의 존재 여부를 나타내는 정보, 퀄리티(quality)를 나타내는 정보, 레졸루션(resolution)을 나타내는 정보, 카메라 파라미터를 나타내는 정보 등 뷰 신테시스를 위한 정보를 포함할 수 있다.
상술한 메타데이터는 본 명세서에서 시그널링 정보, 제1시그널링 정보, 제1정보 등으로 다양하게 명명될 수 있다.
본 발명의 실시예들에 따른 인코더(송신기)는 다음의 메타데이터를 시그널링할 수 있다.
예를 들어, 프레딕션 에러 프로세싱(prediction error processing) 및 타겟 뷰 프레딕션 프로세싱(target view prediction processing)은 타겟 뎁스 리제너레이션 인포메이션 SEI 메시지(Texture depth regeneration information SEI message)를 통해 시그널링될 수 있다. 이를 통하여, 패치 및/또는 레지듀얼을 생성하는 방법과 관련된 메타데이터를 시그널링할 수 있다. 또한, 뷰 에스티메이션(view estimation) 관련하여, 어느 뷰잉 포지션(들)(viewing position(s))의 텍스쳐/뎁스(texture/depth)를 이용해 프레딕션(prediction) 하는지를 나타내는 시그널링 정보, 어떤 방법으로 뷰 에스티메이션(view estimation)을 하는지(예를 들어, 뷰 신테사이즈 메소드(view synthesizer method), 3D prediction(3D 공간 상에서 reprojection (e.g. warping to viewing position B), 2D prediction: projection format 상에서 motion estimation (e.g., object/viewing direction-based motion estimation))를 나타내는 시그널링 정보 등이 있을 수 있다.
예를 들어, 패치 패킹(patch packing)은 멀티뷰 리젼=와이즈 패킹 SEI 메시지(Multiview Region-wise Packing SEI message)를 통해 시그널링될 수 있다. 구체적으로, 패치된 픽쳐(patched picture)가 어떻게 구성되어있는지를 나타내는 시그널링 정보, 각 부분이 어떤 속성인지(예를 들어, 텍스쳐, 패치, 레지듀얼, 뎁스, 오버레이 등(texture, patch, residual, depth, overlay))를 나타내는 시그널링 정보, 각 부분이 어느 뷰잉 포지션(viewing position)에 속해있는지를 나타내는 시그널링 정보, 각 부분이 인코딩된 픽쳐(encoded picture) 내에서 어느 위치인지를 나타내는 시그널링 정보, 스파셜 스케일링(spatial scaling), 트랜스포메이션(transformation), 밝기 스케일링(scaling) 등을 나타내는 시그널링 정보 등이 있을 수 있다.
예를 들어, 전체 영상에 대한 정보는 뷰잉 포지션 인포메이션 SEI 메시지(Viewing position information SEI message) 또는 헤드 모션 인포메이션 SEI 메시지(Head motion information SEI message)을 통해 시그널링될 수 있다. 구체적으로, 비디오 텍스쳐(texture), 뎁스(depth)를 나타내는 시그널링 정보, 현재 비디오에 대한 정보 (viewpoint, viewing position)를 나타내는 시그널링 정보, 이동 가능 비디오에 대한 정보 (available viewpoints, viewing space)를 나타내는 시그널링 정보, 뷰 신테사이즈 파라미터(view synthesis parameter (source viewing position 위치, depth 존재 여부, depth near/far 범위, reconstruced view 여부, quality, resolution, camera parameter)를 나타내는 시그널링 정보, 뷰 신테사이즈(view synthesize)에 특화된 정보를 나타내는 시그널링 정보가 있을 수 있다.
도30은 본 발명의 실시예들에 따른 프레딕션 에러 프로세싱, 타겟 뷰 프레딕션 프로세싱에 관련된 메타데이터를 나타낸다.
텍스쳐 뎁스 리제너레이션 인포메이션 SEI 메시지(Texture depth regeneration information SEI message semantics)를 통해 프레딕션 에러 프로세싱 및 타겟 뷰 프레딕션 프로세싱에 관련된 메타데이터가 시그널링될 수 있다.
텍스쳐 뎁스 리제너레이션 인포케이션은 뷰잉 포지션으로부터의 정보 또는 부분 영역 및 다른 뷰잉 포지션들의 픽쳐들로부터 유도된 뷰잉 포지션들을 위한 텍스쳐 및 뎁스 픽쳐들의 리제너레이션을 가능하게 하는 정보를 제공한다(The texture depth regeneration information SEI message provides information to enable regeneration of the texture and depth pictures for a viewing positions derived from pictures from other viewing positions and partial region or information from the viewing position.).
texture_depth_regeneration_info_id 는 뷰 리제너레이션의 목적을 식별하는데 사용되는 식별하는 넘버를 포함한다. 텍스쳐 뎁스 리제너레이션 인포 아이디의 값은 다른 수신기의 캐버빌리티 등을 서포트하기 위해서 이 SEI 메시지의 다른 유스 케이스를 나타내는데 사용될 수 있다(contains an identifying number that may be used to identify the purpose of view regeneration. The value of texture_depth_regeneration_info_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, etc.).
하나 이상의 뷰 리제너레이션 인포메이션 SEI 메시지가 뷰 리제너레이션 인포 아이디의 같은 값과 함게 존재하는 경우, 이 뷰 리제너레이션 인포메이션 SEI 메시지의 컨텐츠는 같다. 뷰 리제너레이션 인포메이션 SEI 메시지가 존재하는 경우, 이때 뷰 리제너레이션 인포 아이디의 하나 이상의 값을 갖을 때 이 정보는 뷰 리제너레이션 인포 아이디의 다른 값들에 의해 나타내지는 정보임을 나타낸다. 또한, 다른 목적들, 다른 컴포넌트들, 예를 들어 텍스쳐, 뎁스 등을 위해서 제공되거나 또는 코렉션의 연속인 대안정보이다. 뷰 리제너레이션 인포 아이디의 값의 범위는 0부터 2의12승 마이너스 1 (포함)일 수 있다(When more than one view regeneration information SEI message is present with the same value of view_regeneration_info_id, the content of these view regeneration information SEI messages shall be the same. When view regeneration information SEI messages are present that have more than one value of view_regeneration_info_id, this may indicate that the information indicated by the different values of view_regeneration_info_id are alternatives that are provided for different purposes, for different component (such as texture, depth, etc) or that a cascading of correction. The value of view_regeneration_info_id shall be in the range of 0 to 2^12 - 1, inclusive. ).
texture_depth_regeneration_info_cancel_flag 이 1의 값인 경우 텍스쳐 뎁스 리제너레이션 인포메이션 SEI 메시지가 커런트 레이어에 적용하는 아웃풋 오더 내 이전 텍스쳐 뎁스 리제너레이션 인포메이션 SEI 메시지의 퍼시스턴스를 캔슬하는 것을 나타낸다. 이 값이 0을 갖는 경우 텍스쳐 뎁스 리제너레이션 인포메이션이 팔로우함을 나타낸다(equal to 1 indicates that the texture depth regeneration information SEI message cancels the persistence of any previous texture depth regeneration information SEI message in output order that applies to the current layer. texture_depth_regeneration_info_cancel_flag equal to 0 indicates that texture depth regeneration information follows.).
texture_depth_regeneration_info_persistence_flag 는 커런트 레이어를 위한 텍스쳐 뎁스 리제너레이션 인포메이션 SEI 메시지의 퍼시스턴스를 설명한다.(specifies the persistence of the texture depth regeneration information SEI message for the current layer.).
텍스쳐 뎁스 뷰 리제너레이션 인포 퍼시스턴스 플래그가 0이면, 이는 텍스쳐 뎁스 리제너레이션 인포메이션이 커런트 디코딩된 픽쳐에만 적용됨을 나타낸다(texture_depth_view_regeneration_info_persistence_flag equal to 0 specifies that the texture depth regeneration information applies to the current decoded picture only).
픽쳐A가 커런트 픽쳐인 경우를 예로 설명하면 다음과 같다. 텍스쳐 뎁스 리제너레이션 인포 퍼시스턴스 플래그가 1이면, 텍스쳐 뎁스 리제너레이션 인포메이션 SEI 메시지는 다음 컨디션들이 트루가 될때까지 아웃풋 오더로 커런트 레이어를 위해 계속된다.
- 커런트 레이어의 뉴 CLVS가 시작
- 비트스트림이 끝
- 커런트 레이어에 적용 가능한 텍스쳐 뎁스 리제너레이션 인포메이션 SEI 메시지를 포함하는 어세스 유닛의 커런트 레이어 내 픽쳐B가 출력되는데 PicOrderCnt( picB )가 PicOrderCnt( picA )보다 큰 경우. 여기서 PicOrderCnt( picB ) 및 PicOrderCnt( picA )는 각각 픽쳐A 및 픽쳐B의 PicOrderCntVal 값들이고, 픽쳐B의 픽쳐 오더 카운트를 위한 디코딩 프로세스의 인포케이션 이후 바로이다 (Let picA be the current picture. texture_depth_regeneration_info_persistence_flag to 1 specifies that the texture depth regeneration information SEI message persists for the current layer in output order until any of the following conditions are true:
- A new CLVS of the current layer begins.
- The bitstream ends.
- A picture picB in the current layer in an access unit containing a texture depth regeneration information SEI message that is applicable to the current layer is output for which PicOrderCnt( picB ) is greater than PicOrderCnt( picA ), where PicOrderCnt( picB ) and PicOrderCnt( picA ) are the PicOrderCntVal values of picB and picA, respectively, immediately after the invocation of the decoding process for the picture order count of picB.)
num_texture_depth_regeneration_minus1 는 SEI 메시지에 의해 리제너레이트되는 픽쳐들의 개수를 나타내는 시그널링 정보이다(plus 1 specifies the number of pictures which are to be regenerated by the SEI message. )
regenerated_view_id 는 리제너레이션 프로세스의 헤드 포지션 또는 뷰잉 포지션의 개수를 나타내는 시그널링 정보이다. 같은 SEI 메시지 또는 다른 SEI 메시지에서 설명되는 3DoF+의 뷰잉 포지션들의 개수를 식별하는 프리-디파인드된 정보 중의 하나이다(specifies the i-th identifying number of the viewing position or head position of the regeneration process. This value should be one of the pre-defined identifying number of a viewing positions of a 3DoF+ video specified in the same or in the other SEI message, such as mrwp_view_id specified in the multiview region-wise packing SEI message. )
view_location_x[ i ], view_location_y[ i ] and view_location_z[ i ] 는 2의 마이너스16승 밀리미터 단위의 뷰잉 포지션의 로케이션을 각각 나타낸다. 뷰 로케이션 X[i], 뷰 로케이션 y[i], 뷰 로케이션 z[i]의 범위는 -32 768 * 2^16 - 1 (i.e., -2 147 483 647)의 범위 내지 32 768 * 2^16 (i.e., 2 147 483 648)의 범위에 포함된다.(indicate the location of a viewing position in the units of 2^-16 millimeters, respectively. The range of view_location_x[ i ], view_location_y[ i ] and view_location_z[ i ] shall be in the range of -32 768 * 2^16 - 1 (i.e., -2 147 483 647) to 32 768 * 2^16 (i.e., 2 147 483 648), inclusive. )
view_rotation_yaw[ i ], view_rotation_pitch[ i ], and view_rotation_roll[ i ] 는 요, 피치, 밋 롤 로테이션 앵글을 각각 나타낸다. 이 정보는 로컬 코디네이트 축을 글로벌 코디네이트 축으로 컨버트하기 위해서 2의 마이너스16승 단위로, view_location_x[ i ], view_location_y[ i ] and view_location_z[ i ]에 관련된 뷰잉 포지션 헤드 포시젼의 스피어 유닛에 적용한다.(indicate the yaw, pitch, and roll rotation angles, respectively, that is applied to the unit sphere of a viewing posotion head position related to view_location_x[ i ], view_location_y[ i ] and view_location_z[ i ] to convert the local coordinate axes to the global coordinate axes, in units of 2^-16 degrees. The value of view_rotation_yaw[ i ] shall be in the range of -180 * 2^16 (i.e., -11 796 480) to 180 * 2^16 - 1 (i.e., 11 796 479), inclusive, the value of view_rotation_pitch[ i ] shall be in the range of -90 * 2^16 (i.e., -5 898 240) to 90 * 2^16 (i.e., 5 898 240), inclusive, and the value of view_rotation_roll[ i ] shall be in the range of -180 * 2^16 (i.e., -11 796 480) to 180 * 2^16 - 1 (i.e., 11 796 479), inclusive. view_rotation_yaw[ i ], view_rotation_pitch[ i ], and view_rotation_roll[ i ] could be used to indicate azimuth, elevation, and tilt, respectively. )
num_components[ i ] 는 i번째 뷰에 관련된 컴포넌트들의 개수를 나타낸다(specifies the number of the components that are related to the i-th view. )
regenerated_component_id[ i ][ j ] 는 리제너레이션 프로세스의 i번째 뷰잉 포지션의 j번재 컴포넌트 또는 헤드 포지션의 개수를 나타낸다(specifies the identifying number of the j-th component of the i-th viewing position or head position of the regeneration process. This value should be one of the pre-defined identifying number of a component that belongs to a viewing positions of a 3DoF+ video specified in the same or in the other SEI message, such as mrwp_component_id specified in the multiview region-wise packing SEI message.)
picture_width[ i ][ j ] and picture_height[ i ][ j ] 는 픽쳐 샘플 유닛에 대하여, 헤드 포지션 또는 i번째 뷰잉 포지션의 j번째 컴포넌트에 대응하여 리제너레이트된 픽쳐의 각 너비 및 높이를 나타낸다(specify the width and height, respectively, of the picture that is to be regenerated that is corresponding to the j-th component of the i-th viewing position or head position, in relative projected picture sample units. The values of picture_width and picture_height shall both be greater than 0.
projection_type[ i ][ j ] 는 360 스피어로부터 프로젝트된 픽쳐를 제너레이팅하는데 사용되는 프로젝션의 타입을 나타낸다( specifies the type of the projection used in generating the projected picture from a 360 sphere. ) 이 값이 0을 가지면, 프로젝션 타입이 언스페시파이드함을 나타낸다. 이 값이 1을 가지면 equirectangular projection 을 나타낸다. 이 값이 2를 가지면 cube map projection을 나타낸다. 이 값이 3 내지 15를 가지면 퓨쳐 유즈를 나타낸다.( projection_type[ i ][ j ] equal to 0 indicates the type of the projection is unspecified. projection_type[ i ][ j ] equal to 1 indicates the equirectangular projection. projection_type[ i ][ j ] equal to 2 indicates the cube map projection. projection_type[ i ][ j ] from 3 to 15, inclusive, are reserved for future use. )
component_type[ i ][ j ] 는 i번째 컴포넌트의 타입을 나타낸다(specifies the type of the i-th component. ) 이 값이 0을 가지면, 이 컴포넌트의 타입은 unspecified 이다. 이 값이 1을 가지면 a video or texture component 을 나타낸다. 이 값이 2를 가지면 depth map 을 나타낸다. 이 값이 3을 가지면, alpha channel 을 나타낸다. 픽셀의 값이 1이면, 대응하는 픽셀 로케이션에서 텍스쳐 픽쳐의 값이 트랜스패런트하지 않다. 픽셀의 값이 0 이면, 대응하는 픽셀 로케이션에서 텍스쳐 픽쳐의 값이 트랜스패런트하다. 이 값이 4를 가지면, 유저빌리티 인디케이션을 위한 인디케이션 맵을 나타낸다. 픽셀의 값이 1이면, 대응하는 픽셀 로케이션에서 텍스쳐 또는 뎁스 픽쳐의 값이 오클루션 인핸스먼트 프로세스를 위해 사용된다. 픽셀의 값이 1이면, 대응하는 픽셀 로케이션에서 텍스쳐 또는 뎁스 픽쳐의 값이 오클루션 인핸스먼트 프로세스를 위해 사용되지 않는다. 이 값이 5를 가지면, overlay 를 나타낸다. 이 값이 6 내지 15를 가지면 퓨처 유즈를 나타낸다( component_type[ i ][ j ] equal to 0 indicates the type of the component is unspecified. component_type[ i ][ j ] equal to 1 indicates the component is a video or texture component component_type[ i ][ j ] equal to 2 indicates the component is a depth map. component_type[ i ][ j ] equal to 3 indicates the component is an alpha channel. When the value of a pixel equals to 1, the value in a texture picture at the corresponding pixel location is not transparent. When the value of a pixel equals to 0, the value in a texture picture at the corresponding pixel location is transparent. component_type[ i ][ j ] equal to 4 indicates the component is an indication map for usability indication. When the value of a pixel equals to 1, the value in a texture or depth picture at the corresponding pixel location is used for occlusion enhancement process. When the value of a pixel equals to 1, the value in a texture or depth picture at the corresponding pixel location is not used for occlusion enhancement process. component_type[ i ][ j ] equal to 5 indicates the component is a overlay. component_type[ i ][ j ] from 6 to 15, inclusive, are reserved for future use. )
depth_near[ i ] and depth_far[ i ] 는 이미지 플레인으로부터 i번재 컴포넌트의 오브젝트에 대한 미니멈 및 맥시멈 디스턴스를 2의 마이너스16승 디그리 단위로 각각 나타낸다(specifies the minimum and maximum distances from the image plane to objects of the i-th component, in units of 2^-16 degrees, respectively.)
texture_depth_regeneration_info_flag[ i ] 이 1이면, i번째 컴포넌트의 텍스쳐 뎁스 리제너레이션 프로세스를 위한 정보를 나타낸다. 이 값이 0이면 i번째 컴포넌트의 텍스쳐 뎁스 리제너레이션 프로세스를 위한 정보가 제공되지 않음을 나타낸다(equal to 1 indicate that the information for texture depth regeneration process of the i-th component. texture_depth_regeneration_flag[ i ] equal to 0 indicate that the information for texture depth regeneration process of the i-th picture is not provided. )
reserved_zero_7bits[ i ] 이 0이고 리저브드 제로 7비트[i]를 위한 다른 값들이 퓨처 유즈를 위해 사용된다. 디코더들은 이 필드의 값을 무시할 수 있다(shall be equal to 0 and other values for reserved_zero_7bits[ i ] are reserved for future use. Decoders shall ignore the value of reserved_zero_7bits[ i ].)
merging_flag[ i ] 이 1이면 i번째 컴포넌트의 텍스쳐 뎁스 제너레이션 프로세스 내 머징 모듈을 위한 정보가 이 SEI메시지에 있음을 나타낸다. 머징 플래그가 0이면 i번째 컴포넌트의 텍스쳐 뎁스 제너레이션 프로세스 내 머징 모듈을 위한 정보가 이 SEI메시지에 없음을 나타낸다.(equal to 1 indicate the information for the merging module in the texture depth generation process of the i-th component is present in this SEI message. merging_flag[ i ] equal to 0 indicate the information for the merging module in the texture depth generation process of the i-th component is not present in this SEI message. )
hole_filling_flag[ i ] 이 1의 값을 가지는 경우, i번째 컴포넌트의 텍스트 뎁스 제너레이션 프로세스 내 홀 필링 모듈을 위한 정보가 이 SEI 메시지에 존재함을 나타낸다. 이 필드가 0의 값을 가지는 경우, 번째 컴포넌트의 텍스트 뎁스 제너레이션 프로세스 내 홀 필링 모듈을 위한 정보가 이 SEI 메시지에 존재하지 않음을 나타낸다(equal to 1 indicate the information for the hole filling module in the texture depth generation process of the i-th component is present in this SEI message. merging_flag[ i ] equal to 0 indicate the information for the hole filling module in the texture depth generation process of the i-th component is not present in this SEI message. )
crack_removal_flag[ i ] 이 1의 값을 가지는 경우, i번째 컴포넌트의 텍스쳐 뎁스 제너레이션 프로세스 내 크랙 리무벌 모듈을 위한 정보가 이 SEI 메시지에 존재함을 나타낸다. 이 필드의 값이 0이면, 번째 컴포넌트의 텍스쳐 뎁스 제너레이션 프로세스 내 크랙 리무벌 모듈을 위한 정보가 이 SEI 메시지에 존재하지 않음을 나타낸다(equal to 1 indicate the information for the crack removal module in the texture depth generation process of the i-th component is present in this SEI message. crack_removal_flag[ i ] equal to 0 indicate the information for the crack removal module in the texture depth generation process of the i-th component is not present in this SEI message. )
occlusion_enh_flag[ i ] 이 1의 값을 가지는 경우, i번째 컴포넌트의 텍스쳐 뎁스 제너레이션 프로세스 내 오클루션 인핸스먼트 모듈을 위한 정보가 SEI 메시지에 존재함을 나타낸다. 이 필드의 값이 0이면, 번째 컴포넌트의 텍스쳐 뎁스 제너레이션 프로세스 내 오클루션 인핸스먼트 모듈을 위한 정보가 SEI 메시지에 존재하지 않음을 나타낸다(equal to 1 indicate the information for the occlusion enhancement module in the texture depth generation process of the i-th component is present in this SEI message. occlusion_enh_flag[ i ] equal to 0 indicate the information for the occlusion enhancement module in the texture depth generation process of the i-th component is not present in this SEI message. )
reserved_zero_4bits[ i ] 이 0이고, reserved_zero_4bits[ i ] 를 위한 다른 값들이 퓨처 유저를 위해 사용될 수 있다. 디코더들은 reserved_zero_4bits[ i ] 의 값을 무시할 수 있다(shall be equal to 0 and other values for reserved_zero_4bits[ i ] are reserved for future use. Decoders shall ignore the value of reserved_zero_4bits[ i ].)
num_ref_views_minus1[ i ] 플러스 1은 텍스쳐 뎁스 리제너레이션 프로세스를 위해 사용되는 레퍼런스 뷰들의 개수를 나타낸다(plus 1 specifies the number of reference views that are used for texture depth regeneration process. )
ref_view_id[ i ][ j ] i번째 컴포넌트을 에스티메이션하기 위해 (리제너레이션, 리컨스트럭션, 또는 프레딕션) 사용되는 j번째 레퍼런스 픽쳐의 뷰잉 포지션의 개수를 나타낸다. 이 값은 같은 또는 다른 SEI 메시지, 멀티뷰 리젼-와이즈 패킹 SEI 메시지에서 기술되는 mrwp_view_id 와 같은, 내 기술되는 3DoF+ 비디오의 뷰잉 포지션에 대한 프리-디파인된 식별 넘버 중 하나이다(specifies the identifying number of the viewing position of the j-th reference picture that is used to estimate (to regenerate, to reconstruct, or to predict) the i-th component. This value should be one of the pre-defined identifying number of a viewing positions of a 3DoF+ video specified in the same or in the other SEI message, such as mrwp_view_id specified in the multiview region-wise packing SEI message. )
ref_component_id[ i ][ j ] i번째 컴포넌트를 에스티메이션, 리제너레이트, 리컨스트럭션, 또는 프레딕션하는데 사용되는 레퍼런스 뷰잉 포지션 또는 헤드 포지션의 j번째 컴포넌트의 개수를 나타낸다(specifies the identifying number of the j-th component of a reference viewing position or head position that is used to estimate (to regenerate, to reconstruct, or to predict) the i-th component. This value should be one of the pre-defined identifying number of a component that belongs to a viewing positions of a 3DoF+ video specified in the same or in the other SEI message, such as mrwp_component_id specified in the multiview region-wise packing SEI message.)
hor_min_fov[ i ][ j ], hor_max_fov[ i ][ j ], ver_min_fov[ i ][ j ], and ver_max_fov[ i ][ j ] 는 2의 마이너스16승 디그리 단위로 i번째 컴포넌트를 에스티메이션(리제너레이트, 리컨스트럭션, 또는 프레딕션) 하는데 사용되는헤드 포지션 또는 레퍼런스 뷰잉 포지션의 j번째 컴포넌트의 호리젠탈 및 버티컬 FoV의 미니멈 및 맥시멈 범위를 각각 나타낸다(specifies the minimum and maximum ranges of the horizontal and vertical FoV of the j-th component of a reference viewing position or head position that is used to estimate (to regenerate, to reconstruct, or to predict) the i-th component, respectively, in the units of 2^-16 degrees. )
global_offset_x_axis[ i ][ j ], global_offset_y_axis[ i ][ j ], and global_offset_z_axis[ i ][ j ] 는 2의 마이너스16승 미터 단위로, x, y, z 축 방향으로, 리제너레이션될 뷰의 i번째 컴포넌트로부터 레퍼런스 뷰의 j번째 컴포넌트의 로케이션 간 오프셋을 나타낸다(specify the offset between the location of the j-th component of a reference view from the i-th component of a view to be regenerated, in the direction of the x, y, z-axis, in the units of 2^-16 meters. )
num_depth_levels_minus1[ i ][ j ] 플러스 1은 i번째 뷰의 리제너레이션을 위한 레퍼런스 뷰의 j번째 컴포텉느 내 뎁스 레벨의 개수를 나타낸다(plus 1 specifies the number of depth levels in the j-th component of the reference view for the regeneration of the i-th view. )
num_angular_levels_minus1[ i ][ j ][ k ] 플러스 1은 i번째 뷰의 리제너레이션을 위한 레퍼런스 뷰의 j번째 컴포넌트의 k번째 뎁스 레벨의 앵큘러를 제공하기 위한 앵귤러 레벨의 개수를 나타낸다(plus 1 specifies the number of anglular levels to provide angular of the k-th depth level of the j-th component of the reference view for the regeneration of the i-th view. )
weight_depth_level[ i ][ j ][ k ][ l ] i번째 컴포넌트의 j번째 레퍼런스 뷰를 에스티메이션(리제너레이션, 리컨스트럭션, 또는 프레딕션) 하는데 사용되는 레퍼런스 픽쳐의 k번째 뎁스 레벨의 l번째 앵귤러 리젼의 웨이트 팩터를 나타낸다. _depth_levels_minus1[ i ][ j ] and num_angular_levels_minus1[ i ][ j ][ k ] 의 값이 제로보다 큰 경우, 타겟 리젼의 픽셀 값들은 레퍼런스 픽쳐들의 리젼들 내 픽셀 로케이션에 대응하는 픽셀 값들의 웨이트된 민에 의해 계산된다. 여기서 k번재 레퍼런스 픽쳐를 위한 웨이트닝 값은 weight_depth_level [ i ][ j ][ k ]에 의해 주어진다. num_depth_levels_minus1[ i ][ j ] and num_angular_levels_minus1[ i ][ j ][ k ]의 값들이 0인 경우, 웨이트는 원과 같은 것으로 가정된다(specifies the weight factor of the l-th algular region of k-th depth level of a reference picture that is used to estimate (to regenerate, to reconstruct, or to predict) the j-th reference view for the i-th component. When the value of num_depth_levels_minus1[ i ][ j ] and num_angular_levels_minus1[ i ][ j ][ k ] are greater than zero, the pixel values of the target region is calculated by the weighted mean of the pixel values in the corresponding pixel location in the regions of the reference pictures, where the weighting value for the k-th reference picture is given by weight_depth_level [ i ][ j ][ k ]. When the values of num_depth_levels_minus1[ i ][ j ] and num_angular_levels_minus1[ i ][ j ][ k ] are equal to zero, the weight is assumed to be equal to one.)
hole_filling_process_type[ i ] 텍스쳐 뎁스 리제너레이션 프로세스를 위해 사용되는 홀 필링 필터의 타입을 나타낸다(specifies the type of hole filling filter used for the texture depth regeneration process. )
num_coeffs_minus1[ i ] 는 홀 필링 프로세스의 코이피션트들의 개수를 나타낸다(specifies the number of coefficients of the hole filling process. )
hole_filling_coeff[ i ][ j ] 는 2의 마이너스16승 단위로 필터 코이피션트의 값을 나타낸다. 이 필드의 값의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) 내지 2^16 (i.e., 2147483648) 내이다(포함)(specifies the value of the filter coefficient in the units of 2^-16. The value of hole_filling_coeff[ i ][ j ] shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive.)
crack_removal_process_type[ i ] 텍스쳐 뎁스 리제너레이션 프로세스를 위해 사용되는 크랙 리무벌의 타입을 나타낸다(specifies the type of crack removal process used for the texture depth regeneration process. )
num_coeffs_minus1[ i ] 크랙 리무벌 프로세스의 코이피션트들의 개수를 나타낸다(specifies the number of coefficients of the crack removal process. )
crack_removal_process_coeff[ i ][ j ] 는 2의 마이너스16승 단위로 필터 코이피션트의 값을 나타낸다. 이 필드의 값의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) 내지 32768 * 2^16 (i.e., 2147483648) (포함)이다(specifies the value of the filter coefficient in the units of 2^-16. The value of crack_removal_process_coeff[ i ][ j ] shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive.)
num_patched_blocks[ i ] i번째 컴포넌트의 뷰 리제너레이션을 위해 사용되는 패치들의 개수를 나타낸다(specifies the number of patches which are to be used for the view regeneration of the i-th component. )
regenerated_picture_top_left_index_x[ i ][ j ], regenerated_picture_top_left_index_y[ i ][ j ], regenerated_picture_bottom_right_index_x[ i ][ j ], and regenerated_picture_bottom_right_index_y[ i ][ j ] 는 리제너레이트된 픽쳐의 i번째 컴포넌트의 j번째 블록의 탑-레프트 및 보틈-롸이트 코너의 (x.y) 픽셀 로케이션을 루마 샘플들 단위로 나타낸다. regenerated_picture_top_left_index_x[ i ][ j ], regenerated_picture_top_left_index_y[ i ][ j ], regenerated_picture_bottom_right_index_x[ i ][ j ], and regenerated_picture_bottom_right_index_y[ i ][ j ] 의 값들은 0 내지 65 535(포함)의 범위를 가진다(specifies the (x, y) pixel location of the top-left and bottom-right corner of the j-th block of the i-th component of regenerated picture, in the units of luma samples. The values of regenerated_picture_top_left_index_x[ i ][ j ], regenerated_picture_top_left_index_y[ i ][ j ], regenerated_picture_bottom_right_index_x[ i ][ j ], and regenerated_picture_bottom_right_index_y[ i ][ j ] shall be in the range of 0 to 65 535, inclusive.)
patch_view_id 리제너레이션 프로세스의 헤드 포지션 또는 뷰잉 포니션의 i번째 식별 넘버를 나타낸다. 이 값은 같은 또는 다른 SEI 메시지 내 기술되는 3DoF+ 비디오의 뷰잉 포지션들의 프리-디파인된 식별 넘버 중 하나이다. (예를 들어, 멀티뷰 리젼-와이즈 패킹 SEI 메시지 내 기술되는 mrwp_view_id )(specifies the i-th identifying number of the viewing position or head position of the regeneration process. This value should be one of the pre-defined identifying number of a viewing positions of a 3DoF+ video specified in the same or in the other SEI message, such as mrwp_view_id specified in the multiview region-wise packing SEI message. )
patch_component_id 는 리제너레이션 프로세스의 헤드 포지션 또는 뷰잉 포지션의 컴포넌트의 i번째 식별 넘버를 나타낸다. 이 값은 멀티뷰 리젼-와이즈 패킹 SEI 메시지에 기술되는 mrwp_component_id 와 같이, 같은 또는 다른 SEI 메시지에 기술되는 3DoF+ 비디오의 뷰잉 포지션들에 속하는 컴포넌트의 프리-디파인된 식별 넘버 중 하나이다(specifies the i-th identifying number of a component of a viewing position or head position of the regeneration process. This value should be one of the pre-defined identifying number of a component that belongs to a viewing positions of a 3DoF+ video specified in the same or in the other SEI message, such as mrwp_component_id specified in the multiview region-wise packing SEI message.)
patch_top_left_index_x[ i ][ j ], patch_top_left_index_y[ i ][ j ], patch_bottom_right_index_x[ i ][ j ], and patch_bottom_right_index_y[ i ][ j ] 는 루마 샘플들 단위로 i번째 컴포넌트를 위한 j번째 패치 블록의 탑-레프트 및 보틈-롸이트 코너의 (x,y) 픽셀 로케이션을 나타낸다. patch_top_left_index_x[ i ][ j ], patch_top_left_index_y[ i ][ j ], patch_bottom_right_index_x[ i ][ j ], and patch_bottom_right_index_y[ i ][ j ] 의 값은 0 to 65 535의 범위(포함)를 갖는다(specifies the (x, y) pixel location of the top-left and bottom-right corner of the j-th patch block for the i-th component, in the units of luma samples. The values of patch_top_left_index_x[ i ][ j ], patch_top_left_index_y[ i ][ j ], patch_bottom_right_index_x[ i ][ j ], and patch_bottom_right_index_y[ i ][ j ] shall be in the range of 0 to 65 535, inclusive.)
도31 및 도32은 본 발명의 실시예들에 따른 패치 패킹에 관련된 메타데이터를 나타낸다.
패치 패킹에 관련된 메타데이터는, 예를 들어, 멀티뷰 리젼-와이즈 패킹 SEI 메시지에 포함될 수 있다.
멀티뷰 리젼-와이즈 패킹 SEI 메시지는 가드 밴드들의 사이즈 및 로케이션에 대한 정보뿐만 아니라, 프로젝트된 픽쳐들 상 크랍되고 디코딩된 픽쳐들의 컬러 샘플들의 리맴핑을 가능하게 하는 정보를 제공한다(The multiview region-wise packing SEI message provides information to enable remapping of the colour samples of the cropped decoded pictures onto projected pictures as well as information on the location and size of the guard bands, if any.)
multiview_regionwise_packing_id 는 멀티뷰 리젼-와이즈 패킹의 목적을 식별하는데 사용되는 식별 넘버를 포함한다. multiview_regionwise_packing_id 의 값은 다른 리시버 캐퍼빌리티를 서포트하기 위해서 또는 파노라마 이미지, 멀티뷰 이미지, 또는 멀티-뷰포인트 이미지, 스피어 이미지 등을 컨스트럭션하는데 사용될 수 있는 서브-픽쳐들을 나타내기 위해서, 이 SEI 메시지의 다른 유즈 케이스들을 식별하는데 사용될 수 있다(contains an identifying number that may be used to identify the purpose of the multiview region-wise packing. The value of multiview_regionwise_packing_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, or to indicate sub-pictures which could be used to construct sphere image, panoramic image, multiview image, or multi-viewpoint image, etc.)
하나 이상의 멀티뷰 리젼-와이즈 패킹 SEI 메시지가 multiview_regionwise_packing_id 와 같은 값을 가지고 존재하는 경우, 이 멀티뷰 리젼와이즈 패킹 SEI 메시지의 컨텐츠는 같다. 멀티뷰 리젼와이즈 패킹 SEI 메시지가 multiview_regionwise_packing_id의 값을 하나 이상 갖는 경우, 이는 multiview_regionwise_packing_id 에 다른 값들에 의해 나타내지는 정보가 코렉션 또는 프로젝션의 케스케이딩이 시퀀셜 오더 순(어플리케이션에 따라서 오더는 기술될 수 있음)으로 적용되거나 다른 목적들을 위해 사용되는 얼터니브들임을 나타낸다. multiview_regionwise_packing_id 의 값의 범위는 0 내지 2의 12승 마이너스 1(포함)를 가진다(When more than one multiview region-wise packing SEI message is present with the same value of multiview_regionwise_packing_id, the content of these multiview regionwise packing SEI messages shall be the same. When multiview regionwise packing SEI messages are present that have more than one value of multiview_regionwise_packing_id, this may indicate that the information indicated by the different values of multiview_regionwise_packing_id are alternatives that are provided for different purposes or that a cascading of correction or projection is to be applied in a sequential order (an order might be specified depending on the application). The value of multiview_regionwise_packing_id shall be in the range of 0 to 2^12 - 1, inclusive. )
multiview_regionwise_packing_cancel_flag 이 1의 값을 가지면, 멀티뷰 리젼-와이즈 패킹 SEI 메시지가 커런트 레이어에 적용되는 아웃풋 오더 내 이전 멀티뷰 리젼-와이즈 패킹 SEI 메시지의 퍼시스턴스를 캔슬하는 것을 나타낸다. Multiview_regionwise_packing_cancel_flag 가 0이면 멀티뷰 리젼-와이즈 패킹 정보가 팔로우함을 나타낸다(equal to 1 indicates that the multiview region-wise packing SEI message cancels the persistence of any previous multiview region-wise packing SEI message in output order that applies to the current layer. Multiview_regionwise_packing_cancel_flag equal to 0 indicates that multiview region-wise packing information follows. )
multiview_regionwise_packing_persistence_flag 는 커런트 레이어를 위한 멀티뷰 리젼-와이즈 패킹 SEI 메시지의 퍼시스턴스를 나타낸다. multiview_regionwise_packing_persistence_flag 가 0이면 카레라 렌즈 인포메이션이 커런트 디코딩된 픽쳐에만 적용되는 것을 나타낸다. 픽쳐A가 커런트 픽쳐인 경우를 가정하면, multiview_regionwise_packing_persistence_flag 가 1이면, 멀티뷰 리젼-와이즈 패킹 SEI 메시지가 다음 조건들이 트루일 때까지 아웃풋 오더 순으로 커런트 레이어를 위해 퍼시스트한다: 커런트 레이어의 뉴 CLVS가 시작하는 경우, 비트스트림이 종료된 경우, 커런트 레이어에 적용가능한 어세스 유닛 내에서 멀티뷰 리젼-와이즈 패킹 SEI 메시지를 포함하는 어세스 유닛 내 커런트 레이어 내 픽쳐B가 PicOrderCnt( picB ) 가 PicOrderCnt( picA )보다 크게 아웃풋되는 경우, 여기서 PicOrderCnt( picB ) and PicOrderCnt( picA )는 픽쳐A 및 픽쳐B의 각 PicOrderCntVal 값이다(픽쳐B의 픽쳐 오더 카운트를 위한 디코딩 프로세스의 인포케이션 이후 즉시)((specifies the persistence of the multiview region-wise packing SEI message for the current layer. multiview_regionwise_packing_persistence_flag equal to 0 specifies that the camera lens information applies to the current decoded picture only. Let picA be the current picture. multiview_regionwise_packing_persistence_flag to 1 specifies that the multiview region-wise packing SEI message persists for the current layer in output order until any of the following conditions are true: A new CLVS of the current layer begins. The bitstream ends. A picture picB in the current layer in an access unit containing a multiview region-wise packing SEI message that is applicable to the current layer is output for which PicOrderCnt( picB ) is greater than PicOrderCnt( picA ), where PicOrderCnt( picB ) and PicOrderCnt( picA ) are the PicOrderCntVal values of picB and picA, respectively, immediately after the invocation of the decoding process for the picture order count of picB.)
constituent_picture_matching_flag 이 1이면, 이 SEI 메시지 내 프로젝트된 리젼 인포메이션, 패킹된 리젼 인포케이션, 및 가드 밴드 리젼 인포메이션이 각각 각 컨스티튜언트 픽쳐에 적용되고, 패킹된 픽쳐 및 프로젝트왼 픽쳐는 frame packing arrangement SEI message 에 의해 인디케이팅되는 같은 스테레오스코픽 프레임 패킹 포맷을 가진다. constituent_picture_matching_flag 이 0이면, 이 SEI 메시지 내 프로젝트된 리젼 인포메이션, 패킹된 리젼 인포메이션, 및 가드 밴드 리젼 인포메이션은 프로젝트된 픽쳐에 적용된다. StereoFlag이 0이거나 또는 1이고 및 frame_packing_arrangement_type이 5이면, constituent_picture_matching_flag의 값은 0이다(equal to 1 specifies that the projected region information, packed region information, and guard band region information in this SEI message apply individually to each constituent picture and that the packed picture and the projected picture have the same stereoscopic frame packing format indicated by the frame packing arrangement SEI message. constituent_picture_matching_flag equal to 0 specifies that the projected region information, packed region information, and guard band region information in this SEI message apply to the projected picture. When StereoFlag is equal to 0, or StereoFlag is equal to 1 and frame_packing_arrangement_type is equal to 5, the value of constituent_picture_matching_flag shall be equal to 0.)
packing_format_matching_between_views_flag 이 1이면, 프로젝션 포맷이 mrwp_projection_type에 의해 인디케이팅되는 헤드 포지션 또는 뷰잉 포지션 마다 같은 패밍 포맷을 패킹된 픽쳐가 가지는 것을 나타낸다. packing_format_matching_between_views_flag이 0이면 다른 프로젝션 타입이 각 뷰잉 포지션에 대해 사용되는 것을 나타낸다(equal to 1 specifies that the packed picture have the same packing format per viewing position or head position where the projection format is indicated by mrwp_projection_type. packing_format_matching_between_views_flag equal to 0 specifies that the different projection format is used for each viewing position. )
num_view_minus1 플러스 1은 SEI 메시지 내 컨시더되는 뷰 또는 헤드 포지션의 개수를 나타낸다(plus 1 specifies the number of view or head position considered in the SEI message. )
mrwp_view_id 뷰 또는 헤드 포지션을 식별하는데 사용되는 식별 넘버를 포함한다. mrwp_view_id[ i ]의 값은 i번째 뷰 또는 헤드 포지션을 인디케이팅하는데 사용될 수 있다. mrwp_view_id[ i ]는 특정 목적을 위한 하나 또는 멀티플 리젼들을 인디케이팅하는데 사용될 수 있다. 예를 들어, 헤드 모션 패럴렉스에 따른 헤드 로케이션에 대응하는 서브-픽쳐들의 인디케이션, 헤드 로케이션의 바이노큘러 디스패리티를 서포팅하는 서브-픽쳐 페어의 인디케이션 등을 나타낼 수 있다(contains an identifying number that may be used to identify the view or head position. The value of mrwp_view_id[ i ] may be used to indicate the i-th view or head position. mrwp_view_id[ i ] could be used to indicate one or multiple regions for specific purposes, e.g., indication of sub-pictures corresponding to a head location that causes head motion parallax, or indication of sub-picture pair supporting binocular disparity of a head location, etc.)
mrwp_anchor_view_flag 이 1이면, i번째 뷰 또는 i번재 mrwp_view_id 를 갖는 헤드 포지션이 앵커(또는 센터 또는 레프리젠테이티브) 뷰 또는 헤드 포지션임을 나타낸다. mrwp_anchor_view_flag이 0이면 i번째 뷰 또는 헤드 포지션이 퍼리퍼럴 뷰 또는 헤드 포지션임을 나타낸다(equal to 1 indicate that the i-th view or head position with the i-th mrwp_view_id is the anchor (or center or representative) view or head position. mrwp_anchor_view_flag equal to 0 indicate that the i-th view or head position is periperal view or head position. )
mrwp_view_independent_rotation_flag 이 1이면 i번째 뷰 또는 헤드 포지션의 로테이션이 센터 또는 앵커 뷰 또는 헤드 포지션의 로테이션과 다름을 나타낸다. mrwp_view_independent_rotation_flag 이 0이면, i번째 뷰 또는 헤드 포지션의 로테이션이 센터 또는 앵커 뷰 또는 헤드 포지션의 로테이션과 같음을 나타낸다(equal to 1 indicate that the rotation of the i-th view or head position is different from the rotation of the center or anchor view or head position. mrwp_view_independent_rotation_flag equal to 0 indicate that the rotation of the i-th view or head position is identical to the rotation of the center or anchor view or head position. )
mrwp_all_components_in_one_packedregion_flag 이 1이면 i번째 뷰 또는 헤드 포지션에 대응하는 프로젝트된 픽쳐가 렉탱귤러 리젼 내 익스클루시브하게 패킹되는 것을 나타낸다. mrwp_exclusive_packing_flag이 0이면, i번째 뷰 또는 헤드 포지션에 대응하는 패킹된 픽쳐가 렉탱귤러 리젼 내 패킹되지 않음을 나타낸다(equal to 1 indicate that the packed regions that consist the projected picture corresponds to the i-th view or head position are packed exclusively in a rectangular region. mrwp_exclusive_packing_flag equal to 0 indicate that the packed regions that corresponds to the i-th view or head position are not packed within a rectangular region. )
mrwp_reserved_zero_5bits 이 0이고, mrwp_reserved_zero_5bits[ i ]를 위한 다른 값들이 퓨처 유즈를 위해 예약된다. 디코더들은 mrwp_reserved_zero_5bits[ i ]의 값을 무시할 수 있다(shall be equal to 0 and other values for mrwp_reserved_zero_5bits[ i ] are reserved for future use. Decoders shall ignore the value of mrwp_reserved_zero_5bits[ i ].)
mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ] and mrwp_location_anchor_view_z[ i ] 는 mrwp_view_id[ i ]에 관련된 헤드 포지션의 로케이션을 2의 마이너스16승 밀리미터들 단위로 나타낸다. mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ] and mrwp_location_anchor_view_z[ i ]의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) 내지32768 * 2^16 (i.e., 2147483648)(포함)의 범위에 존재한다(indicate the location of head position related to mrwp_view_id[ i ] in the units of 2^-16 millimeters. The range of mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ] and mrwp_location_anchor_view_z[ i ] shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive.)
mrwp_rotation_anchor_view_yaw[ i ], mrwp_rotation_anchor_view_pitch[ i ], and mrwp_rotation_anchor_view_roll[ i ] 는 요, 피치, 및 롤 로테이션 앵글들을 각각 나타낸다. 이는mrwp_view_id[ i ], mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ], and mrwp_location_anchor_view_z[ i ]에 관련된 헤드 포지션의 유닛 스피어에 로컬 코디네이트 축을 글로벌 코디네이트 축으로 2의 마이너스16승 디그리들 단위로 컨버트하기 위해서 적용된다. mrwp_rotation_anchor_view_yaw[ i ]의 범위는 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479)(포함)에 해당한다. mrwp_rotation_anchor_view_pitch[ i ]의 값은 -90 * 2^16 (i.e., -5898240) 내지90 * 2^16 (i.e., 5898240)(포함)의 범위를 가진다. mrwp_rotation_anchor_view_roll[ i ]의 값은 -180 * 2^16 (i.e., -11796480) 내지 180 * 2^16 - 1 (i.e., 11796479)(포함)의 범위를 가진다. mrwp_rotation_anchor_view_yaw[ i ], mrwp_rotation_anchor_view_pitch[ i ], and mrwp_rotation_anchor_view _roll[ i ]는 아지무스, 엘리베이션, 및 틸트를 각 인티케이션하는데 사용될 수 있다(indicate the yaw, pitch, and roll rotation angles, respectively, that is applied to the unit sphere of head position related to mrwp_view_id[ i ], mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ], and mrwp_location_anchor_view_z[ i ] to convert the local coordinate axes to the global coordinate axes, in units of 2^-16 degrees. The value of mrwp_rotation_anchor_view_yaw[ i ] shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of mrwp_rotation_anchor_view_pitch[ i ] shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of mrwp_rotation_anchor_view_roll[ i ] shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. mrwp_rotation_anchor_view_yaw[ i ], mrwp_rotation_anchor_view_pitch[ i ], and mrwp_rotation_anchor_view _roll[ i ] could be used to indicate azimuth, elevation, and tilt, respectively. )
mrwp_location_diff_x[ i ], mrwp_location_diff_y[ i ] and mrwp_location_diff_z[ i ] 는 2의 마이너스16승 밀리미터들 단위로 앵커 뷰의 뷰 또는 헤드 포지션의 로케이션에 관련된 i번째 뷰 또는 헤드 포지션의 로케이션을 나타낸다. i번째 뷰의 (x,y,z) 로케이션은 mrwp_location_anchor_view_x[ i ] and mrwp_location_diff_x[ i ], mrwp_location_anchor_view_y[ i ] and mrwp_location_diff_y[ i ], and mrwp_location_anchor_view_z[ i ] and mrwp_location_diff_z[ i ]을 각각 애딩함으로써 계산될 수 있다. mrwp_location_diff_x[ i ], mrwp_location_diff_y[ i ] and mrwp_location_diff_z[ i ]의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648)(포함)의 범위에 해당한다(indicate the location of the i-th view or head position relative to the location of the view or head position of the anchor view in the units of 2^-16 millimeters. The (x,y,z) location of the i-th view could be calculated by adding mrwp_location_anchor_view_x[ i ] and mrwp_location_diff_x[ i ], mrwp_location_anchor_view_y[ i ] and mrwp_location_diff_y[ i ], and mrwp_location_anchor_view_z[ i ] and mrwp_location_diff_z[ i ], respectively. The range of mrwp_location_diff_x[ i ], mrwp_location_diff_y[ i ] and mrwp_location_diff_z[ i ] shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive.)
mrwp_rotation_diff_yaw[ i ], mrwp_rotation_diff_pitch[ i ], and mrwp_rotation_diff_roll[ i ] 는 2의 마이너스16승 디그리들의 단위로 앵커 뷰에 관련하여 i번째 뷰의 요, 피치, 및 롤 로테이션 앵글을 각각 나타낸다. 글로벌 코디네이트에 관련하여 i번재 뷰의 요, 피치, 및 롤 로테이션 앵글들은 mrwp_rotation_diff_yaw[ i ] and mrwp_rotation_anchor_view_yaw[ i ] , mrwp_rotation_diff_pitch[ i ] and mrwp_rotation_anchor_view_pitch[ i ], and mrwp_rotation_diff_roll[ i ] and mrwp_rotation_anchor_view_roll[ i ]을 각각 애딩함으로써 계산될 수 있다. 이는 mrwp_view_id[ i ], mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ], and mrwp_location_anchor_view_z[ i ]에 관련된 헤드 포지션의 유닛 스피어에 로컬 코디네이트 축을 글로벌 코디네이트 축으로 컨버트하기 위해서 적용될 수 있다(indicate the yaw, pitch, and roll rotation angle of the i-th view relative to the anchor view in units of 2^-16 degrees, respectively. The yaw, pitch, and roll rotation angles of the i-th view relative to the global coordinate could be calculated by adding mrwp_rotation_diff_yaw[ i ] and mrwp_rotation_anchor_view_yaw[ i ] , mrwp_rotation_diff_pitch[ i ] and mrwp_rotation_anchor_view_pitch[ i ], and mrwp_rotation_diff_roll[ i ] and mrwp_rotation_anchor_view_roll[ i ], respectively. They are applied to the unit sphere of head position related to mrwp_view_id[ i ], mrwp_location_anchor_view_x[ i ], mrwp_location_anchor_view_y[ i ], and mrwp_location_anchor_view_z[ i ] to convert the local coordinate axes to the global coordinate axes. )
mrwp_rotation_diff_yaw[ i ]의 값은 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479)(포함)의 범위를 가진다. camera_rotation_diff_pitch[ i ]의 값은 -90 * 2^16 (i.e., -5898240) 내지 90 * 2^16 (i.e., 5898240)(포함)의 범위를 가진다. mrwp_rotation_diff_roll[ i ]의 값은 -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479)(포함)의 범위를 가진다. mrwp_rotation_diff_yaw[ i ], mrwp_rotation_diff_pitch[ i ], and mrwp_rotation_diff_roll[ i ]은 아지무스, 엘리베이션, 및 틸트 각각을 인디케이션하는데 사용될 수 있다(The value of mrwp_rotation_diff_yaw[ i ] shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of camera_rotation_diff_pitch[ i ] shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of mrwp_rotation_diff_roll[ i ] shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. mrwp_rotation_diff_yaw[ i ], mrwp_rotation_diff_pitch[ i ], and mrwp_rotation_diff_roll[ i ] could be used to indicate azimuth, elevation, and tilt, respectively. )
num_component_minus1[ i ] 플러스 1은 SEI 메시지 내 고려되는 i번째 뷰 내 컴포넌트들의 개수를 나타낸다(plus 1 specifies the number of components in the i-th view considered in the SEI message. )
mrwp_component_id[ i ][ j ] 는 i번째 뷰의 j번째 컴포넌트를 식별하는 사용되는 식별 넘버를 나타낸다(specifies an identifying number that may be used to identify the j-th component of the i-th view. )
mrwp_component_type[ i ][ j ] 는 i번째 뷰의 j번째 컴포넌트의 타입을 나타낸다(specifies the type of the j-th component of the i-th view. ) mrwp_component_type[ i ][ j ]이 0이면 컴포넌트의 타입은 unspecified이다. mrwp_component_type[ i ][ j ]이 1이면 컴포넌트의 타입은 video component이다. mrwp_component_type[ i ][ j ]이 2이면 컴포넌트의 타입은 depth map이다. mrwp_component_type[ i ][ j ]이 3이면 컴포넌트의 타입은 alpha channel이다. mrwp_component_type[ i ][ j ]이 4이면 컴포넌트의 타입은 left-eye-view 의 video component 이다. mrwp_component_type[ i ][ j ]이 5이면 right-eye-view의 video component 이다. mrwp_component_type[ i ][ j ]이 6이면 컴포넌트의 타입은 both-eye-view의 video component 이다. mrwp_component_type[ i ][ j ]이 7이면 컴포넌트의 타입은 left-eye-view 의 residual video component 이다. mrwp_component_type[ i ][ j ]이8이면 컴포넌트의 타입은 right-eye-view의 residual video component 이다. mrwp_component_type[ i ][ j ]이 9이면 컴포넌트의 타입은 both-eye-view의 residual video component 이다. mrwp_component_type[ i ][ j ]이 10 내지 15이면 컴포넌트의 타입은 퓨처 유스이다( mrwp_component_type[ i ][ j ] equal to 0 indicates the type of the component is unspecified. mrwp_component_type[ i ][ j ] equal to 1 indicates the component is a video component mrwp_component_type[ i ][ j ] equal to 2 indicates the component is a depth map. mrwp_component_type[ i ][ j ] equal to 3 indicates the component is an alpha channel. mrwp_component_type[ i ][ j ] equal to 4 indicates the component is a video component of the left-eye-view. mrwp_component_type[ i ][ j ] equal to 5 indicates the component is a video component of the right-eye-view. mrwp_component_type[ i ][ j ] equal to 6 indicates the component is a video component of both-eye-view. mrwp_component_type[ i ][ j ] equal to 7 indicates the component is a residual video component of the left-eye-view. mrwp_component_type[ i ][ j ] equal to 8 indicates the component is a residual video component of the right-eye-view. mrwp_component_type[ i ][ j ] equal to 9 indicates the component is a residual video component of both-eye-view. mrwp_component_type[ i ][ j ] from 10 to 15, inclusive, are reserved for future use. )
mrwp_projection_type[ i ][ j ] 는 360 스피어로부터 프로젝트된 픽쳐를 제너레이팅하는 과정에 사용되는 프로젝션의 타입을 나타낸다. mrwp_projection_type[ i ][ j ]이 0이면 프로젝션 타입은 unspecified 이다. mrwp_projection_type[ i ][ j ]이 1이면 프로젝션 타입은 equirectangular projection 이다. mrwp_projection_type[ i ][ j ]이 2이면 프로젝션 타입은 cube map projection 이다. mrwp_projection_type[ i ][ j ]이 3내지 15(포함)이면 프로젝션 타입은 퓨처 유즈이다(specifies the type of the projection used in generating the projected picture from a 360 sphere. mrwp_projection_type[ i ][ j ] equal to 0 indicates the type of the projection is unspecified. mrwp_projection_type[ i ][ j ] equal to 1 indicates the equirectangular projection. mrwp_projection_type[ i ][ j ] equal to 2 indicates the cube map projection. mrwp_projection_type[ i ][ j ] from 3 to 15, inclusive, are reserved for future use. )
mrwp_proj_picture_width[ i ][ j ] and mrwp_proj_picture_height[ i ][ j ] 프로젝트된 픽쳐 샘플 유닛들에 대한 i번재 프로젝트된 픽쳐의 j번째 컴포넌트의 너비 및 높이를 각각 나타낸다. mrwp_proj_picture_width and mrwp_proj_picture_height의 값은 0보다 크다(specify the width and height, respectively, of the j-th component of the i-th projected picture, in relative projected picture sample units. The values of mrwp_proj_picture_width and mrwp_proj_picture_height shall both be greater than 0.)
mrwp_coverage_horizontal[ i ][ j ] and mrwp_coverage_vertical[ i ][ j ] 2의 마이너스16승 디그리 단위로, i번째 뷰의 j번째 컴포넌트 또는 헤드 포지션의 커버리지의 호리즌탈 및 버티칼 범위를 나타낸다(specifies the horizontal and vertical ranges of the coverage of the j-th component of the i-th view or head position, in units of 2^-16 degrees, respectively. )
depth_near[ i ][ j ] and depth_far[ i ][ j ] 은 각각 2의 마이너스16승 디그리 단위로 이미지 플레인 로부터 헤드 포지션 또는 i번째 뷰의 j번째 컴포넌트의 오프젝트 간 미니멈 및 맥시멈 디스턴스를 나타낸다(specifies the minimum and maximum distances from the image plane to objects of the j-th component of the i-th view or head position, in units of 2^-16 degrees, respectively.)
mrwp_rotation_component_diff_yaw[ i ][ j ], mrwp_rotation_component_diff_pitch[ i ][ j ], mrwp_rotation_component_diff_roll[ i ][ j ] 은 각각 2의 마이너스16승 디그리 단위로 i번째 뷰의 레퍼런스 로테이션 앵글에 대한 i번째 뷰의 j번째 컴포넌트의 요, 피치, 및 롤 로테이션 앵글 디퍼런스를 나타낸다. 글로벌 코디네이트에 대한 i번재 뷰의 j번째 컴포넌트의 요, 피치, 및 롤 로테이션 앵글은 각 디퍼런스 값들을 레퍼런스 로테이션 앵글들에 각각 애딩함으로써 계산될 수 있다(indicate the yaw, pitch, and roll rotation angle difference of the j-th component of the i-th view relative to the reference rotation angle of the i-th view in units of 2^-16 degrees, respectively. The yaw, pitch, and roll rotation angles of the j-th component of the i-th view relative to the global coordinate could be calculated by adding each difference values and the reference rotation angles, respectively. ) mrwp_rotation_component_diff_yaw[ i ] 의 값은 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479)(포함)의 범위를 가진다. camera_rotation_component_diff_pitch[ i ]의 값은 -90 * 2^16 (i.e., -5898240) 내지 90 * 2^16 (i.e., 5898240)(포함)의 범위를 가진다. mrwp_rotation_component_diff_roll[ i ]의 값은 -180 * 2^16 (i.e., -11796480) 내지 180 * 2^16 - 1 (i.e., 11796479)(포함)의 범위를 가진다. mrwp_rotation_component_diff_yaw[ i ], mrwp_rotation_component_diff_pitch[ i ], and mrwp_rotation_component_diff_roll[ i ]은 각각 아지무스, 엘리베이션, 틸트를 인디케이팅하는데 사용될 수 있다(The value of mrwp_rotation_component_diff_yaw[ i ] shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of camera_rotation_component_diff_pitch[ i ] shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of mrwp_rotation_component_diff_roll[ i ] shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. mrwp_rotation_component_diff_yaw[ i ], mrwp_rotation_component_diff_pitch[ i ], and mrwp_rotation_component_diff_roll[ i ] could be used to indicate azimuth, elevation, and tilt, respectively. )
mrwp_packed_region_width[ i ][ j ], mrwp_packed_region_height[ i ][ j ], mrwp_packed_region_top[ i ][ j ] and mrwp_packed_region_left[ i ][ j ]
은 각각 패킹된 픽쳐 내( constituent_picture_matching_flag이 0일 때) 또는 패킹된 픽쳐의 컨스티튜언트 픽쳐 내(constituent_picture_matching_flag이 1일 때) 패킹된 픽쳐 샘플 유닛들에 대한 i번재 프로젝트된 리젼의 j번째 컴포넌트의 너비, 높이, 탐 샘플 로우, 및 레프트-모스트 샘플 컬럼을 나타낸다( specify the width, height, top sample row, and the left-most sample column, respectively, of the j-th component of the i-th projected region in relative packed picture sample units., either within the packed picture (when constituent_picture_matching_flag is equal to 0) or within the constituent picture of the packed picture (when constituent_picture_matching_flag is equal to 1).)
num_packed_regions 는 constituent_picture_matching_flag이 0인 경우 패킹된 리젼들의 개수를 나타낸다. num_packed_regions의 값은 0보다 크다. constituent_picture_matching_flag이 1인 경우, 패킹된 리젼들의 토탈 개수는 num_packed_regions *2와 같다. 그리고 num_packed_regions의 루프 엔트리들의 각 엔트리 내 정보는 프로젝트된 픽쳐 및 패킹된 픽쳐의 각 컨스티튜언트 픽쳐에 적용된다(specifies the number of packed regions when constituent_picture_matching_flag is equal to 0. The value of num_packed_regions shall be greater than 0. When constituent_picture_matching_flag is equal to 1, the total number of packed regions is equal to num_packed_regions * 2, and the information in each entry of the loop of num_packed_regions entries applies to each constituent picture of the projected picture and the packed picture.)
packed_picture_width and packed_picture_height 패킹된 픽쳐 샘플 유닛들 대한 패킹된 픽쳐의 각 너비 및 높이를 나타낸다. packed_picture_width 및packed_picture_height의 값은 0보다 크다. packed_picture_width 및packed_picture_height는 packed_picture_width이 cropPicWidth의 인티저 멀티플이고, packed_picture_height이 cropPicHeight의 인티저 멀티플인 값들은 갖는 비트스트림 컴포먼스의 요구사항이다. 여기서, cropPicWidth 및cropPicHeight은 각각 크롭 디코딩된 픽쳐의 너비 및 높이이다(specify the width and height, respectively, of the packed picture, in relative packed picture sample units. The values of packed_picture_width and packed_picture_height shall both be greater than 0. It is a requirement of bitstream conformance that packed_picture_width and packed_picture_height shall have such values that packed_picture_width is an integer multiple of cropPicWidth and packed_picture_height is an integer multiple of cropPicHeight, where cropPicWidth and cropPicHeight are the width and height, respectively, of the cropped decoded picture.)
num_view_id_minus1[ i ] 플러스 1은 i번째 패킹된 리젼들을 디스크라이빙하는 뷰 인디케이터들의 개수를 나타낸다. num_view_id_minus1[ i ]은 1보다 크고, i번째 패킹된 리젼이 다른 뷰들과 공유되는 것을 나타낸다(plus 1 specifies the number of view indicators describing the i-th packed region. num_view_id_minus1[ i ] greater than 1 could represent that the i-th packed region is shared with the different views. )
view_idx[ i ][ j ] i번째 패킹된 리젼에 관한 퓨 인포메이션 및 프로젝트된 픽쳐 인포메이션을 기술하는 j번재 뷰 인디케이터를 나타낸다. view_idx[ i ][ j ]의 값은 커런트 SEI메시지에 정의된 mrwp_view_id의 값들 중 하나와 매치될 수 있다(specifies the j-th view indicator which describes the view information and projected picture information with regard to the i-th packed region. The value of view_idx[ i ][ j ] shall be match with one of the values of mrwp_view_id defined in the current SEI messege. )
num_component_id_minus1[ i ][ j ] 플러스1은 i번째 패킹된 리젼을 기술하는 컴포넌트 뷰 인디케이터들의 개수를 나타낸다. num_component_id_minus1[ i ][ j ]은 1보다 크고, i번째 패킹된 리젼이 j번째 뷰의 컴포넌트들과 공유될 수 있음을 나타낸다(plus 1 specifies the number of the component view indicators describing the i-th packed region. num_component_id_minus1[ i ][ j ] greater than 1 could represent that the i-th packed region is shared amog the components of the j-th view. )
component_idx[ i ][ j ][ k ] i번째 패킹된 리젼에 관한 프로젝트된 픽쳐의 사이즈 및 프로젝션 타입, 컴포넌트 타입을 기술하는 j번째 뷰의 k번째 컴포넌트 인디케이터를 나타낸다. component_idx[ i ][ j ][ k ]의 값은 커런트 SEI메시지에 정의된 mrwp_component_id의 값들 중 하나와 매치될 수 있다(specifies the k-th component indicator of the j-th view which describes the component type, projection type and the size of the projected picture with regard to the i-th packed region. The value of component_idx[ i ][ j ][ k ] shall be match with one of the values of mrwp_component_id defined in the current SEI messege.)
proj_region_width[ i ][ j ][ k ], proj_region_height[ i ][ j ][ k ], proj_region_top[ i ][ j ][ k ] and proj_region_left[ i ][ j ][ k ] 프로젝트된 픽쳐 내 (constituent_picture_matching_flag이 0이면) 또는 프로젝트된 픽쳐의 컨스티튜언트 픽쳐 내 (constituent_picture_matching_flag이 1이면) i번째 프로젝트된 리젼의 각 너비, 높이, 탑 샘플 로우, 및 레프트-모스트 샘플 컬럼을 나타낸다. 확장으로, 프로젝트된 픽쳐는 component_idx 및view_idx 에 의해 인디케이팅되는 뷰잉 포지션의 컴포넌트의 프로젝트된 픽쳐를 나타낸다. proj_region_width[ i ][ j ][ k ], proj_region_height[ i ][ j ][ k ], proj_region_top[ i ][ j ][ k ], and proj_region_left[ i ][ j ][ k ]은 프로젝트된 픽쳐 샘플 유닛들에 대해 인디케이트된다(specify the width, height, top sample row, and the left-most sample column, respectively, of the i-th projected region, either within the projected picture (when constituent_picture_matching_flag is equal to 0) or within the constituent picture of the projected picture (when constituent_picture_matching_flag is equal to 1). For this extension, the projected picture represents the projected picture of the component of the viewing position indicated by component_idx and view_idx. proj_region_width[ i ][ j ][ k ], proj_region_height[ i ][ j ][ k ], proj_region_top[ i ][ j ][ k ], and proj_region_left[ i ][ j ][ k ] are indicated in relative projected picture sample units.)
노트1- 두 개의 프로젝트된 리젼들은 부분적 또는 전체적으로 서로 오버랩될 수 있다(NOTE 1 Two projected regions may partially or entirely overlap with each other.)
rwp_reserved_zero_4bits[ i ] 은 이 문서의 버전에 따른 비트스트림 내에서 0일 수 있다. rwp_reserved_zero_4bits[ i ]의 다른 값들은 ITU-T | ISO/IEC 에 의해 사용되는 퓨처 유즈를 위해 예약된다. 디코더들은 rwp_reserved_zero_4bits[ i ]의 값을 무시할 수 있다(shall be equal to 0 in bitstreams conforming to this version of this Specification. Other values for rwp_reserved_zero_4bits[ i ] are reserved for future use by ITU-T | ISO/IEC. Decoders shall ignore the value of rwp_reserved_zero_4bits[ i ].)
rwp_transform_type[ i ] 은 i번째 프로젝트된 리젼을 리맵하기 위한 i번째 패킹된 리젼에 적용되기 위한 로테이션 및 미러링을 나타낸다. rwp_transform_type[ i ]이 로테이션, 미러링을 나타내고, 미러링 이전에 로테이션이 적용된다. rwp_transform_type[ i ]의 값들은 다음과 같다. rwp_transform_type[ i ]이 0이면 i번째 패킹된 리젼을 위해 사용되는 트랜스포메이션이 없음을 나타낸다. rwp_transform_type[ i ]이1이면, i번째 패킹된 리젼을 위한 호리즌탈 미러링을 나타낸다. rwp_transform_type[ i ]이 2이면, i번째 패킹된 리젼을 위한 180 디그리들(안티클럭와이즈)에 의한 로테이션을 나타낸다. rwp_transform_type[ i ]이 3이면 i번째 패킹된 리젼을 위한 호리즌탈 미러링 이후 180 디그리들(안티클럭와이즈)에 의한 로테이션을 나타낸다. rwp_transform_type[ i ]이 4이면, i번째 패킹된 리젼을 위한 호리즌탈 미러링 이전에 90디그리들(안티클럭와이즈)에 의한 로테이션을 나타낸다. rwp_transform_type[ i ]이 5이면, i번째 패킹된 리젼을 위한 90디그리들(안티클럭와이즈)에 의한 로테이션을 나타낸다. rwp_transform_type[ i ]이 6이면, i번째 패킹된 리젼을 위한 호리즌탈 미러링 이전에 270 디그리들(안티클럭와이즈)에 의한 로테이션을 나타낸다. rwp_transform_type[ i ]이 7이면, i번째 패킹된 리젼을 위한 270디그리들(안티클럭와이즈)에 의한 로테이션을 나타낸다(specifies the rotation and mirroring to be applied to the i-th packed region to remap to the i-th projected region. When rwp_transform_type[ i ] specifies both rotation and mirroring, rotation applies before mirroring. The values of rwp_transform_type[ i ] are specified as follows. rwp_transform_type[ i ] equal to 0 indicates that no transformation is used for the i-th packed region rwp_transform_type[ i ] equal to 1 indicates mirroring horizontally for the i-th packed region rwp_transform_type[ i ] equal to 2 indicates rotation by 180 degrees (anticlockwise) for the i-th packed region rwp_transform_type[ i ] equal to 3 indicates rotation by 180 degrees (anticlockwise) after mirroring horizontally for the i-th packed region rwp_transform_type[ i ] equal to 4 indicates rotation by 90 degrees (anticlockwise) before mirroring horizontally for the i-th packed region rwp_transform_type[ i ] equal to 5 indicates rotation by 90 degrees (anticlockwise) for the i-th packed region rwp_transform_type[ i ] equal to 6 indicates rotation by 270 degrees (anticlockwise) before mirroring horizontally for the i-th packed region rwp_transform_type[ i ] equal to 7 indicates rotation by 270 degrees (anticlockwise) for the i-th packed region)
rwp_guard_band_flag[ i ] 이 0이면, i번째 패킹된 리젼이 가드 밴드를 가지지 않음을 나타낸다. rwp_guard_band_flag[ i ]이 1이면, i번째 패킹된 리젼이 가드 밴드를 가짐을 나타낸다(equal to 0 specifies that the i-th packed region does not have a guard band. rwp_guard_band_flag[ i ] equal to 1 specifies that the i-th packed region has a guard band.)
packed_region_width[ i ], packed_region_height[ i ], packed_region_top[ i ], and packed_region_left[ i ] 은 리젼-와이즈 패킹된 픽쳐 내 (constituent_picture_matching_flag이 0이면) 또는 리젼-와이즈 패킹된 픽쳐의 각 컨스티튜언트 픽쳐 내(constituent_picture_matching_flag이 1이면) 패킹된 리젼의 너비, 높이, 탐 루마 샘플 로우, 및 레프트-모스트 루마 샘프 컬럼을 각각 나타낸다. packed_region_width[ i ], packed_region_height[ i ], packed_region_top[ i ], and packed_region_left[ i ]은 리젼-와이즈 패킹된 픽쳐 샘플 유닛들에 대해 식별된다. packed_region_width[ i ], packed_region_height[ i ], packed_region_top[ i ], and packed_region_left[ i ]은 크롭된 디코딩된 픽쳐 내 루마 샘플 유닛들의 인티저 호리즌탈 및 버티칼 코디네이트들을 나타낸다(specify the width, height, the top luma sample row, and the left-most luma sample column, respectively, of the packed region, either within the region-wise packed picture (when constituent_picture_matching_flag is equal to 0) or within each constituent picture of the region-wise packed picture (when constituent_picture_matching_flag is equal to 1). packed_region_width[ i ], packed_region_height[ i ], packed_region_top[ i ], and packed_region_left[ i ] are indicated in relative region-wise packed picture sample units. packed_region_width[ i ], packed_region_height[ i ], packed_region_top[ i ], and packed_region_left[ i ] shall represent integer horizontal and vertical coordinates of luma sample units within the cropped decoded pictures.)
노트 2- 두 개의 패킹된 리젼들은 서로 부분적 또는 전체적으로 오버래될 수 있다(NOTE 2 Two packed regions may partially or entirely overlap with each other.)
rwp_left_guard_band_width[ i ] 는 리젼-와이즈 패킹된 픽쳐 샘플 유닛들에 관한 i번째 패킹된 리젼의 레프트 사이드 상 가드 밴드의 너비를 나타낸다. chroma_format_idc이 1과 같은 경우 (4:2:0 chroma format) 또는 2인 경우 (4:2:2 chroma format), rwp_left_guard_band_width[ i ]은 크롭된 디코딩된 픽쳐 내 루마 샘플들의 짝수 넘버에 대응할 수 있다(specifies the width of the guard band on the left side of the i-th packed region in relative region-wise packed picture sample units. When chroma_format_idc is equal to 1 (4:2:0 chroma format) or 2 (4:2:2 chroma format), rwp_left_guard_band_width[ i ] shall correspond to an even number of luma samples within the cropped decoded picture.)
rwp_right_guard_band_width[ i ] 리젼-와이즈 패킹된 픽쳐 샘플 유닛들에 관핸 i번째 패킹된 리젼의 롸이트 사이트 상 가드 밴드의 너비를 나타낸다. chroma_format_idc이 1이면(4:2:0 chroma format) 또는 2이면 (4:2:2 chroma format), rwp_right_guard_band_width[ i ]는 크롭된 디코딩된 픽쳐 내 루마 샘플들의 짝수 넘버에 대응할 수 있다(specifies the width of the guard band on the right side of the i-th packed region in relative region-wise packed picture sample units. When chroma_format_idc is equal to 1 (4:2:0 chroma format) or 2 (4:2:2 chroma format), rwp_right_guard_band_width[ i ] shall correspond to an even number of luma samples within the cropped decoded picture.)
rwp_top_guard_band_height[ i ] 는 리젼-와이즈 패킹된 픽쳐 샘플 유닛들에 관해 i번째 패킹된 리젼 상 가드 밴드의 높이를 나타낸다. chroma_format_idc이 1이면(4:2:0 chroma format), rwp_top_guard_band_height[ i ]은 크롭된 디코딩된 픽쳐 내 루마 샘플들의 짝수 넘버에 대응한다(specifies the height of the guard band above the i-th packed region in relative region-wise packed picture sample units. When chroma_format_idc is equal to 1 (4:2:0 chroma format), rwp_top_guard_band_height[ i ] shall correspond to an even number of luma samples within the cropped decoded picture.)
rwp_bottom_guard_band_height[ i ] 리젼-와이즈 패킹된 픽쳐 샘플 유닛들에 관핸 i번째 패킹된 픽쳐 아래 가드 밴드의 높이를 나타낸다. chroma_format_idc이 1이면(4:2:0 chroma format), rwp_bottom_guard_band_height[ i ]은 크롭된 디코딩된 픽쳐 내 루마 샘플들의 짝수 넘버에 대응한다(specifies the height of the guard band below the i-th packed region in relative region-wise packed picture sample units. When chroma_format_idc is equal to 1 (4:2:0 chroma format), rwp_bottom_guard_band_height[ i ] shall correspond to an even number of luma samples within the cropped decoded picture.) rwp_guard_band_flag[ i ]이 1이면, rwp_left_guard_band_width[ i ], rwp_right_guard_band_width[ i ], rwp_top_guard_band_height[ i ], or rwp_bottom_guard_band_height[ i ]은 0보다 크다(When rwp_guard_band_flag[ i ] is equal to 1, rwp_left_guard_band_width[ i ], rwp_right_guard_band_width[ i ], rwp_top_guard_band_height[ i ], or rwp_bottom_guard_band_height[ i ] shall be greater than 0.). SEI 메시지에 의해 기술되는 i번째 패킹된 픽쳐는 같은 SEI메시지에 의해 기술되는 다른 패킹된 리젼 또는 같은 SEI메시지에 의해 기술되는 가드 밴드와 오버랩되지 않는다(The i-th packed region as specified by this SEI message shall not overlap with any other packed region specified by the same SEI message or any guard band specified by the same SEI message.)
SEI메시지에 의해 기술되는 i번째 패킹된 리젼과 연관된 가드 밴드는 같은 SEI메시지에 의해 기술되는 패킹된 리젼 또는 같은 SEI 메시지에 의해 기술되는 가드밴드와 오버랩되지 않는다(The guard bands associated with the i-th packed region, if any, as specified by this SEI message shall not overlap with any packed region specified by the same SEI message or any other guard bands specified by the same SEI message.)
rwp_guard_band_not_used_for_pred_flag[ i ] 이 0이면, 가드밴드들이 인터 프레딕션 프로세스 내 사용되거나 사용되지 않음을 나타낸다. rwp_guard_band_not_used_for_pred_flag[ i ]이 1이면, 가드 밴드들의 샘플 값들이 인터 프레딕션 프로세스에 사용되지 않음을 나타낸다(equal to 0 specifies that the guard bands may or may not be used in the inter prediction process. rwp_guard_band_not_used_for_pred_flag[ i ] equal to 1 specifies that the sample values of the guard bands are not used in the inter prediction process.)
노트3- rwp_guard_band_not_used_for_pred_flag[ i ] 이 1이면, 크롭된 디코딩된 픽쳐들 내 가드 밴드들 내 샘플 값들은 크롭된 디코딩된 픽쳐들이 디코딩되는 서브스퀀트 픽쳐들의 인터 프레딕션을 위한 레퍼런스들로 사용되더라도 재작성될 수 있다. 예를 들어, 패킹된 리젼의 컨텐트는 심리스하게 다른 패킹된 리젼의 디코딩되고 리-프로젝트된 샘플들 갖는 가드 밴드로 확장될 수 있다(NOTE 3 When rwp_guard_band_not_used_for_pred_flag[ i ] is equal to 1, the sample values within guard bands in cropped decoded pictures can be rewritten even if the cropped decoded pictures were used as references for inter prediction of subsequent pictures to be decoded. For example, the content of a packed region can be seamlessly expanded to its guard band with decoded and re-projected samples of another packed region.)
rwp_guard_band_type[ i ][ j ] 는 i번째 패킹된 리젼을 위한 가드 밴드들의 타입을 나타낸다. j가 0, 1, 2, 3이면, 이 아래 시맨틱들은 패킹된 리젼의 레프트, 롸이트, 탑, 또는 보틈 엣지에 각각 적용된다. rwp_guard_band_type[ i ][ j ]이 0이면, 패킹된 리젼들의 컨텐트에 관련된 가드 밴드들의 컨텐트는 unspecified하다. rwp_guard_band_not_used_for_pred_flag[ i ]이 0이면 rwp_guard_band_type[ i ][ j ]은 0이 아니다. rwp_guard_band_type[ i ][ j ]이 1이면, 가드 밴드들의 컨텐트는 패킹된 리젼 및 패킹된 리젼의 바운더리의 샘플 아웃사이드보다 적은 서브-펄 샘플 프랙션널 로케이션들에서 샘플 값들의 인터폴레이션을 위해 충분하다. 노트 4- rwp_guard_band_type[ i ][ j ]이 1이면, 가드 밴드에 대해 호리즌탈 또는 버티컬하게 카피된 패킹된 리젼의 바운더리 샘플들이 가드 밴드에 대해 호리즌탈 또는 버티컬하게 카피된 경우에 사용될 수 있다.
rwp_guard_band_type[ i ][ j ]이 2이면, 가드 밴드들의 컨텐트는 패킹된 리젼 내 컨텐트에 스페리컬하게 인접하고, 패킹된 리젼의 픽쳐 퀄리티로부터 스페리컬하게 인접한 패킹된 리젼의 그것으로까지 점진적으로 변화하는 퀄리티에서 패킹된 리젼의 서페이스 상에 있는 실제 픽쳐 컨텐트를 나타낸다.
rwp_guard_band_type[ i ][ j ]이 3이면, 가드 밴드들의 컨텐트는 패킹된 리젼의 컨텐트에 스페리컬하게 인접하고, 패킹된 리젼 내 유사한 픽쳐 퀄리티레 피킹된 리젼의 서페이스 상에 있는 실제 픽쳐 컨텐트를 나타낸다(indicates the type of the guard bands for the i-th packed region as follows, with j equal to 0, 1, 2, or 3 indicating that the semantics below apply to the left, right, top, or bottom edge, respectively, of the packed region: rwp_guard_band_type[ i ][ j ] equal to 0 indicates that the content of the guard bands in relation to the content of the packed regions is unspecified. When rwp_guard_band_not_used_for_pred_flag[ i ] is equal to 0, rwp_guard_band_type[ i ][ j ] shall not be equal to 0. rwp_guard_band_type[ i ][ j ] equal to 1 indicates that the content of the guard bands suffices for interpolation of sample values at sub-pel sample fractional locations within the packed region and less than one sample outside of the boundary of the packed region. NOTE 4 rwp_guard_band_type[ i ][ j ] equal to 1 can be used when the boundary samples of a packed region have been copied horizontally or vertically to the guard band. rwp_guard_band_type[ i ][ j ] equal to 2 indicates that the content of the guard bands represents actual picture content that is spherically adjacent to the content in the packed region and is on the surface of the packed region at a quality that gradually changes from the picture quality of the packed region to that of the spherically adjacent packed region. rwp_guard_band_type[ i ][ j ] equal to 3 indicates that the content of the guard bands represents actual picture content that is spherically adjacent to the content in the packed region and is on the surface of the packed region at a similar picture quality as within the packed region.)
rwp_guard_band_type[ i ][ j ]이 3보다 크면, ITU-T | ISO/IEC에 의해 사용되는 퓨처 유즈를 위해 리저브된다. 디코더들은 rwp_guard_band_type[ i ][ j ]의 값을 3보다 큰 경우 0과 같은 값으로 취급한다. ( rwp_guard_band_type[ i ][ j ] values greater than 3 are reserved for future use by ITU-T | ISO/IEC. Decoders shall treat the value of rwp_guard_band_type[ i ][ j ] when the value is greater than 3 as equivalent to the value 0.)
rwp_guard_band_reserved_zero_3bits[ i ] 은 이 문서의 이 버전에 따른 비트스트림 내 0과 같다. rwp_guard_band_reserved_zero_3bits[ i ]의 다른 값들은 ITU-T | ISO/IEC에 의해 사용되는 퓨처 유즈를 위해 예약된다. 디코더들은 rwp_guard_band_reserved_zero_3bits[ i ]의 값을 무시한다(shall be equal to 0 in bitstreams conforming to this version of this Specification. Other values for rwp_guard_band_reserved_zero_3bits[ i ] are reserved for future use by ITU-T | ISO/IEC. Decoders shall ignore the value of rwp_guard_band_reserved_zero_3bits[ i ].)
변수 NumPackedRegions, PackedRegionLeft[ n ], PackedRegionTop[ n ], PackedRegionWidth[ n ], PackedRegionHeight[ n ], ProjRegionLeft[ n ], ProjRegionTop[ n ], ProjRegionWidth[ n ], ProjRegionHeight[ n ], and TransformType[ n ]는 다음과 같다(The variables NumPackedRegions, PackedRegionLeft[ n ], PackedRegionTop[ n ], PackedRegionWidth[ n ], PackedRegionHeight[ n ], ProjRegionLeft[ n ], ProjRegionTop[ n ], ProjRegionWidth[ n ], ProjRegionHeight[ n ], and TransformType[ n ] are derived as follows)
0 내지 num_packed_regions - 1, (포함)의 범위 내의n에 대하여 다음이 적용된다: PackedRegionLeft[ n ]은 packed_region_left[ n ]와 같다. PackedRegionTop[ n ]은 packed_region_top[ n ]와 같다. PackedRegionWidth[ n ]은 to packed_region_width[ n ]와 같다. PackedRegionHeight[ n ] 은 packed_region_height[ n ]와 같다. o ProjRegionLeft[ n ] is set equal to proj_region_left[ n ]. ProjRegionTop[ n ] 은 proj_region_top[ n ] 와 같다. ProjRegionWidth[ n ] 은 proj_region_width[ n ] 와 같다. ProjRegionHeight[ n ] 은 proj_region_height[ n ]와 같다. TransformType[ n ] 은 rwp_transform_type[ n ]와 같다. (For n in the range of 0 to num_packed_regions - 1, inclusive, the following applies: PackedRegionLeft[ n ] is set equal to packed_region_left[ n ]. PackedRegionTop[ n ] is set equal to packed_region_top[ n ]. PackedRegionWidth[ n ] is set equal to packed_region_width[ n ]. PackedRegionHeight[ n ] is set equal to packed_region_height[ n ]. ProjRegionLeft[ n ] is set equal to proj_region_left[ n ]. ProjRegionTop[ n ] is set equal to proj_region_top[ n ]. ProjRegionWidth[ n ] is set equal to proj_region_width[ n ]. ProjRegionHeight[ n ] is set equal to proj_region_height[ n ]. TransformType[ n ] is set equal to rwp_transform_type[ n ].)
constituent_picture_matching_flag가 0이면 다음이 적용된다. NumPackedRegions이 num_packed_regions과 같다(If constituent_picture_matching_flag is equal to 0, the following applies: NumPackedRegions is set equal to num_packed_regions.)
반면에(constituent_picture_matching_flag이 1이면) 다음이 적용된다: NumPackedRegions 이 2 * num_packed_regions가 된다. TopBottomFlag이 1이면, 다음이 적용된다: projLeftOffset and packedLeftOffset은 0이 된다. projTopOffset은 proj_picture_height / 2가 되고, packedTopOffset은 packed_picture_height / 2이 된다. SideBySideFlag이 1이면, 다음이 적용된다: projLeftOffset은 proj_picture_width / 2이 되고, packedLeftOffset은 packed_picture_width / 2이 된다. projTopOffset and packedTopOffset은 0이 된다. NumPackedRegions / 2 내지 NumPackedRegions - 1(포함) 범위 내 n에 대해, 다음이 적용된다: nIdx은 n - NumPackedRegions / 2이 된다. PackedRegionLeft[ n ]은 packed_region_left[ nIdx ] + packedLeftOffset이 된다. PackedRegionTop[ n ]은 packed_region_top[ nIdx ] + packedTopOffset이 된다. PackedRegionWidth[ n ]은 packed_region_width[ nIdx ]이 된다. PackedRegionHeight[ n ]은 packed_region_height[ nIdx ]이 된다. ProjRegionLeft[ n ]은 proj_region_left[ nIdx ] + projLeftOffset이 된다. ProjRegionTop[ n ]은 proj_region_top[ nIdx ] + projTopOffset이 된다. ProjRegionWidth[ n ]은 proj_region_width[ nIdx ]이 된다. ProjRegionHeight[ n ]은 proj_region_height[ nIdx ]이 된다. TransformType[ n ]은 rwp_transform_type[ nIdx ]이 된다(Otherwise (constituent_picture_matching_flag is equal to 1), the following applies: NumPackedRegions is set equal to 2 * num_packed_regions. When TopBottomFlag is equal to 1, the following applies: projLeftOffset and packedLeftOffset are both set equal to 0. projTopOffset is set equal to proj_picture_height / 2 and packedTopOffset is set equal to packed_picture_height / 2. When SideBySideFlag is equal to 1, the following applies: projLeftOffset is set equal to proj_picture_width / 2 and packedLeftOffset is set equal to packed_picture_width / 2. projTopOffset and packedTopOffset are both set equal to 0. For n in the range of NumPackedRegions / 2 to NumPackedRegions - 1, inclusive, the following applies: nIdx is set equal to n - NumPackedRegions / 2. PackedRegionLeft[ n ] is set equal to packed_region_left[ nIdx ] + packedLeftOffset. PackedRegionTop[ n ] is set equal to packed_region_top[ nIdx ] + packedTopOffset. PackedRegionWidth[ n ] is set equal to packed_region_width[ nIdx ]. PackedRegionHeight[ n ] is set equal to packed_region_height[ nIdx ]. ProjRegionLeft[ n ] is set equal to proj_region_left[ nIdx ] + projLeftOffset. ProjRegionTop[ n ] is set equal to proj_region_top[ nIdx ] + projTopOffset. ProjRegionWidth[ n ] is set equal to proj_region_width[ nIdx ]. ProjRegionHeight[ n ] is set equal to proj_region_height[ nIdx ]. TransformType[ n ] is set equal to rwp_transform_type[ nIdx ].)
0 내지NumPackedRegions - 1, (포함) 범위의 n의 각 값에 대하여, ProjRegionWidth[ n ], ProjRegionHeight[ n ], ProjRegionTop[ n ], and ProjRegionLeft[ n ]의 값은 다음을 따른다: ProjRegionWidth[ n ]은 1 내지proj_picture_width, 포함의 범위이다. ProjRegionHeight[ n ]은 1 내지proj_picture_height, 포함의 범위이다. ProjRegionLeft[ n ]은 0 내지proj_picture_width - 1, 포함의 범위이다. ProjRegionTop[ n ]은 0 내지proj_picture_height - 1, 포함의 범위이다. ProjRegionTop[ n ]이 proj_picture_height / VerDiv1보다 적은 경우, ProjRegionTop[ n ] and ProjRegionHeight[ n ]의 합은 proj_picture_height / VerDiv1보다 작거나 같다. ProjRegionTop[ n ] and ProjRegionHeight[ n ]의 합은 proj_picture_height / VerDiv1 * 2보다 작거나 같다(For each value of n in the range of 0 to NumPackedRegions - 1, inclusive, the values of ProjRegionWidth[ n ], ProjRegionHeight[ n ], ProjRegionTop[ n ], and ProjRegionLeft[ n ] are constrained as follows: ProjRegionWidth[ n ] shall be in the range of 1 to proj_picture_width, inclusive. ProjRegionHeight[ n ] shall be in the range of 1 to proj_picture_height, inclusive. ProjRegionLeft[ n ] shall be in the range of 0 to proj_picture_width - 1, inclusive. ProjRegionTop[ n ] shall be in the range of 0 to proj_picture_height - 1, inclusive. If ProjRegionTop[ n ] is less than proj_picture_height / VerDiv1, the sum of ProjRegionTop[ n ] and ProjRegionHeight[ n ] shall be less than or equal to proj_picture_height / VerDiv1. Otherwise, the sum of ProjRegionTop[ n ] and ProjRegionHeight[ n ] shall be less than or equal to proj_picture_height / VerDiv1 * 2.)
0 내지NumPackedRegions - 1, 포함의 범위 내 각 n값에 대하여, PackedRegionWidth[ n ], PackedRegionHeight[ n ], PackedRegionTop[ n ], and PackedRegionLeft[ n ]의 값들은 다음과 같다: PackedRegionWidth[ n ]은 1 내지packed_picture_width, 포함의 범위이다. ProjRegionHeight[ n ]은 1 내지packed_picture_height, 포함의 범위이다. PackedRegionLeft[ n ]은 0 내지packed_picture_width - 1, 포함의 범위이다. PackedRegionTop[ n ]은 0 내지packed_picture_height - 1, 포함의 범위이다. PackedRegionLeft[ n ]이 packed_picture_width / HorDiv1보다 작은 경우, PackedRegionLeft[ n ] and PackedRegionWidth[ n ]의 합은 packed_picture_width / HorDiv1보다 작거나 같다. 반면에, PackedRegionLeft[ n ] and PackedRegionWidth[ n ]의 합은 packed_picture_width / HorDiv1 * 2보다 작거나 같다. PackedRegionTop[ n ]이 packed_picture_height / VerDiv1보다 작은 경우, PackedRegionTop[ n ] and PackedRegionHeight[ n ]의 합은 packed_picture_height / VerDiv1보다 작거나 같다. 반면에, PackedRegionTop[ n ] and PackedRegionHeight[ n ]의 합은 packed_picture_height / VerDiv1 * 2보다 작거나 같다. chroma_format_idc이 1이면 (4:2:0 chroma format) 또는 2이면(4:2:2 chroma format), PackedRegionLeft[ n ]은 루마 샘플 유닛들의 짝수 호리즌탈 코디네이트 값에 대응하고, PackedRegionWidth[ n ]은 디코딩된 픽쳐 내, 루마 샘플들의 짝수 넘버에 대응한다. chroma_format_idc이 1이면 (4:2:0 chroma format), PackedRegionTop[ n ]은 루마 샘플 유닛들의 이븐 버티컬 코디네이트 값에 대응한다. ProjRegionHeight[ n ]은 디코딩된 픽쳐 내 루마 샘플들의 이븐 넘버에 대응한다(For each value of n in the range of 0 to NumPackedRegions - 1, inclusive, the values of PackedRegionWidth[ n ], PackedRegionHeight[ n ], PackedRegionTop[ n ], and PackedRegionLeft[ n ] are constrained as follows: PackedRegionWidth[ n ] shall be in the range of 1 to packed_picture_width, inclusive. ProjRegionHeight[ n ] shall be in the range of 1 to packed_picture_height, inclusive. PackedRegionLeft[ n ] shall be in the range of 0 to packed_picture_width - 1, inclusive. PackedRegionTop[ n ] shall be in the range of 0 to packed_picture_height - 1, inclusive. If PackedRegionLeft[ n ] is less than packed_picture_width / HorDiv1, the sum of PackedRegionLeft[ n ] and PackedRegionWidth[ n ] shall be less than or equal to packed_picture_width / HorDiv1. Otherwise, the sum of PackedRegionLeft[ n ] and PackedRegionWidth[ n ] shall be less than or equal to packed_picture_width / HorDiv1 * 2. If PackedRegionTop[ n ] is less than packed_picture_height / VerDiv1, the sum of PackedRegionTop[ n ] and PackedRegionHeight[ n ] shall be less than or equal to packed_picture_height / VerDiv1. Otherwise, the sum of PackedRegionTop[ n ] and PackedRegionHeight[ n ] shall be less than or equal to packed_picture_height / VerDiv1 * 2. When chroma_format_idc is equal to 1 (4:2:0 chroma format) or 2 (4:2:2 chroma format), PackedRegionLeft[ n ] shall correspond to an even horizontal coordinate value of luma sample units, and PackedRegionWidth[ n ] shall correspond to an even number of luma samples, both within the decoded picture. When the chroma_format_idc is equal to 1 (4:2:0 chroma format) , PackedRegionTop[ n ] shall correspond to an even vertical coordinate value of luma sample units, and ProjRegionHeight[ n ] shall correspond to an even number of luma samples, both within the decoded picture.)
도33은 본 발명의 실시예들에 따른 전체 영상에 대한 메타데이터를 나타낸다.
전체 영상에 대한 메타데이터는, 예를 들어, 뷰잉 포지션 인포메이션 SEI 메시지 또는 헤드 모션 인포메이션 SEI 메시지에 포함될 수 있다.
뷰잉 포지션 인포메이션 SEI 메시지를 설명하면 다음과 같다.
뷰잉 포지션 인포메이션 SEI 메시지는 뷰잉 포지션 및/또는 뷰포인트에 대응하는 커런트 비디오의 대응하는 인접한 뷰잉 포지션들의 정보를 제공한다(The Viewing position information SEI message provides information of the viewing position and/or corresponding adjacent viewing positions of the current video corresponding to a viewpoint. )
viewing_position_info_id 는 뷰잉 포지션 인포메이션의 목적을 식별하는 식별번호를 포함한다. viewing_position_info_id 의 값은 다른 리시버 캐퍼빌리티를 서포트하기 위해서, 또는 다른 포인트 또는 이 SEI 메시지에 포함된 정보의 다른 레벨을 인디케이팅하기 위해서 등 이 SEI 메시지의 다른 유즈 케이스를 나타내는데 사용될 수 있다(contains an identifying number that may be used to identify the purpose of the viewing position information. The value of viewing_position_info_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, or to indicate different level of information contained in the SEI message, or different viewpoint, etc. )
하나 또는 하나 이상의 뷰잉 포지션 인포메이션 SEI 메시지는 viewing_posidion_info_id의 같은 값을 갖고 존재한다. 이러한 뷰잉 포지션 인포메이션 SEI 메시지의 컨텐트는 같다. 뷰잉 포지션 인포메이션 SEI 메시지가 viewing_position_info_id 의 값을 하나 또는 하나 이상 가지며 존재하는 경우, 이는 viewing_posidion_info_id의 다른 값들에 의해 인디케이팅되는 인포메이션이 다른 목적들 또는 시퀀셜 오더로 적용되는 코렉션의 케스케이딩(이 애플리케이션에 따라 기술되는 오더)에 대해 제공되는 얼터니티브함을 나타낼 수 있다. viewing_posidion_info_id 의 값은 0 내지2^12 - 1, 포함의 범위를 가진다(When more than one viewing position information SEI message is present with the same value of viewing_posidion_info_id, the content of these viewing position information SEI messages shall be the same. When viewing position information SEI messages are present that have more than one value of viewing_position_info_id, this may indicate that the information indicated by the different values of viewing_posidion_info_id are alternatives that are provided for different purposes or that a cascading of correction to be applied in a sequential order (an order might be specified depending on the application). The value of viewing_posidion_info_id shall be in the range of 0 to 2^12 - 1, inclusive. )
viewing_position_info_cancel_flag 이 1이면, 뷰잉 포지션 인포메이션 SEI 메시지는 아웃풋 커런트 레이어에 적용되는 오더 내 이전 뷰잉 포지션 인포메이션 SEI 메시지의 퍼시스턴스를 캔슬함을 나타낸다. viewing_position_info_cancel_flag이 0이면, 뷰잉 포지션 인포메이션이 팔로우함을 나타낸다(equal to 1 indicates that the viewing position information SEI message cancels the persistence of any previous viewing position information SEI message in output order that applies to the current layer. viewing_position_info_cancel_flag equal to 0 indicates that viewing position information follows. )
viewing_position_info_persistence_flag 은 커런트 레이어를 위한 뷰잉 포지션 인포메이션 SEI 메시지의 퍼시스턴스를 나타낸다(specifies the persistence of the viewing position information SEI message for the current layer.) viewing_position_info_persistence_flag이 0이면, 뷰잉 포지션 인포메이션이 커런트 디코딩된 픽쳐에만 적용됨을 나타낸다(viewing_position_info_persistence_flag equal to 0 specifies that the viewing position information applies to the current decoded picture only.)
픽쳐A가 커런트 픽쳐라고 가정하면, viewing_position_info_persistence_flag은 1이고, 이는 뷰잉 포지션 인포메이션 SEI 메시지가 다음 조건들이 트루일때까지 아웃풋 오더 내 커런트 레이어를 위해 퍼시스트한다: 커런트 레이어의 새 CLVS가 시작함. 비트스트림이 끝남. 커런트 레이어에 적용 가능한 뷰잉 포지션 인포메이션 SEI 메시지를 포함하는 엑세스 유닛 내 커런트 레이어 내 픽쳐 B가 PicOrderCnt( picB )가 PicOrderCnt( picA )보다 큰 경우에 대한 아웃풋이다. 여기서 PicOrderCnt( picB ) and PicOrderCnt( picA )은 각각 픽쳐A 및 픽쳐 B의 PicOrderCntVal 값들이다(픽쳐B의 픽쳐 오더 카운트를 위한 디코딩 프로세스의 인보케이션 이후 즉시)(Let picA be the current picture. viewing_position_info_persistence_flag to 1 specifies that the viewing position information SEI message persists for the current layer in output order until any of the following conditions are true: A new CLVS of the current layer begins. The bitstream ends. A picture picB in the current layer in an access unit containing a viewing position information SEI message that is applicable to the current layer is output for which PicOrderCnt( picB ) is greater than PicOrderCnt( picA ), where PicOrderCnt( picB ) and PicOrderCnt( picA ) are the PicOrderCntVal values of picB and picA, respectively, immediately after the invocation of the decoding process for the picture order count of picB.)
anchor_viewing_position_flag 이 1이면, 대응하는 디코딩된 픽쳐가 XYZ코디네이트 내 (0,0,0) 이 될 수 있는 또는 anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z 에 의해 명확하게 주어지는 앵커(또는 센터 또는 레프리젠테이티브) 뷰잉 포지션이다. anchor_viewing_position_flag이 0이면, 대응하는 디코딩된 픽쳐가 퍼리퍼럴 또는 사이드 또는 논-앵커 뷰잉 포지션 및 로케이션, 오리엔테이션이고, 및 앵커 뷰잉 포지션의 커버러지 인포메이션은 anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z에 의해 주어진다(equal to 1 indicate that the corresponding decoded picture is the anchor (or center or representative) viewing position which could be assumed (0,0,0) in XYZ coordinate or explicitely given by anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z. anchor_viewing_position_flag equal to 0 indicate that the corresponding decoded picture is periperal or side or non-anchor viewing position and the location, orientation, and coverage information of the anchor viewing position is given by anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z)
viewing_position_x, viewing_position_y, and viewing_position_z 는 2의 마이너스16승 밀리미터들 단위로 디코딩된 픽쳐에 대응하는 뷰잉 포지션의 (x,y,z) 로케이션을 각각 나타낸다. viewing_position_x, viewing_position_y and viewing_position_z의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) 내지 32768 * 2^16 (i.e., 2147483648), 포함의 범위 내에 있다(indicate the (x,y,z) location of viewing position corresponding to the decoded picture in the units of 2^-16 millimeters, respectively The range of viewing_position_x, viewing_position_y and viewing_position_z shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive. )
viewing_position_x, viewing_position_y and viewing_position_z의 값은 XYZ 코디네이트 내 앱솔루트 포지션 또는 앵커 로케이션에 대응하는 릴레티브 포지션에 의해 표현된다(The value of viewing_position_x, viewing_position_y and viewing_position_z could be reprsented by absolute position in the XYZ coordinate or relateive position corresponding to the anchor location. )
viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll 는 요, 피치, 및 롤 오리엔테이션 앵글들을 각각 2의 마이너스16승 디그리 단위로 나타낸다. viewing_orientation_yaw의 값은 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479), 포함,의 범위를 가진다. viewing_orientation_pitch의 값은 -90 * 2^16 (i.e., -5898240) 내지90 * 2^16 (i.e., 5898240), 포함의 범위를 가진다. viewing_orientation_roll의 값은 of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다(indicate the yaw, pitch, and roll orientation angles in units of 2^-16 degrees, repectively. The value of viewing_orientation_yaw shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of viewing_orientation_pitch shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of viewing_orientation_roll shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. )
애플리케이션들에 따라서, viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll은 아지무스, 엘리베이션, 및 틸트 각각을 인디케이팅하는데 사용될 수 있다. 또한, viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll은 로컬 코디네이트 축을 글로벌 코디에니트 축으로 각각 컨버팅하기 위해서 디코딩된 픽쳐에 대응하는 헤드 포지션의 유닛 스피어에 적용되는 로테이션을 표현할 수 있다(Depending on the applications, viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll could be used to indicate azimuth, elevation, and tilt, respectively. Also, viewing_orientation_yaw, viewing_orientation_pitch, and viewing_orientation_roll could represent the rotation that is applied to the unit sphere of head position corresponding to the decoded picture to convert the local coordinate axes to the global coordinate axes, respectively. )
coverage_horizontal and coverage_vertical 는 디코딩된 픽쳐에 대응하는 뷰잉 포지션의 커버리지의 호리즌탈 및 버티컬 범위들을 2의 마이너스16승 디그리 단위로 각각 나타낸다(specifies the horizontal and vertical ranges of the coverage of the viewing position corresponding to the decoded picture, in units of 2^-16 degrees, respectively. )
anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z 는 디코딩된 픽쳐에 대응하는 뷰잉 포지션 세트의 앵커 뷰잉 포지션의 (XYZ) 로케이션을 2의 마이너스16승 밀리미터들 단위로 각각 나타낸다. anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) 내지 32768 * 2^16 (i.e., 2147483648), 포함의 범위를 가진다(indicate the (x,y,z) location of anchor viewing position of a viewing position set corresponding to the decoded picture, in the units of 2^-16 millimeters, respectively The range of anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive. )
여러 케이스들에 대해서, anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z는 같은 뷰잉 포지션 세트 내 다른 뷰잉 포지션의 로케이션이 앵커 뷰잉 포지션에 대한 포지션으로서 표현될 수 있도록 (0, 0, 0)으로 가정될 수 있다(In some cases, anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z could be assumed to be (0, 0, 0) so that the location of other viewing positions in the same viewing position set could be represented as the position relative to the anchor viewing position. )
여러 애플리케이션들에 대해, anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z은 뷰포인트를 인디케이팅하는데 사용될 수 있다(In some applications, anchor_viewing_position_x, anchor_viewing_position_y and anchor_viewing_position_z could be used to indicate the viewpoint. )
anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll 은 앵커 뷰잉 포지션을 나타내는 스피어의 요, 피치, 및 롤 오리엔테이션 앵글들을 2의 마이너스16승 디그리들 단위로 각각 나타낸다. anchor_viewing_orientation_yaw의 값은 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다. anchor_viewing_orientation_pitch의 값은 -90 * 2^16 (i.e., -5898240) 내지90 * 2^16 (i.e., 5898240), 포함의 범위를 가진다. anchor_viewing_orientation_roll의 값은 -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다(indicate the yaw, pitch, and roll orientation angles of the sphere representing anchor viewing position in units of 2^-16 degrees, respectively. The value of anchor_viewing_orientation_yaw shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of anchor_viewing_orientation_pitch shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of anchor_viewing_orientation_roll shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. )
어플리케이션들에 따라서, anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll은 아지무스, 엘리베이션, 틸트를 각각 인디케이팅하는데 사용될 수 있다. 또한, anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll은 로컬 코디네이트 축을 글로벌 코디네이트 축으로 각각 변환시키기 위해서 앵커 뷰잉 포지션의 유닛 스피어에 적용되는 로테이션을 나타낼 수 있다(Depending on the applications, anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll could be used to indicate azimuth, elevation, and tilt, respectively. Also, anchor_viewing_orientation_yaw, anchor_viewing_orientation_pitch, and anchor_viewing_orientation_roll could represent the rotation that is applied to the unit sphere of the anchor viewing position to convert the local coordinate axes to the global coordinate axes, respectively. )
anchor_coverage_horizontal and anchor_coverage_vertical 는 앵커 뷰잉 포지션의 커버리지의 호리즌탈 및 버티칼 범위를 2의 마이너스16승 단위로 각각 나타낸다(specifies the horizontal and vertical ranges of the coverage of the anchor viewing position, in units of 2^-16 degrees, respectively. )
num_viewing_positions 는 커런트 뷰잉 포지션에 관련된 뷰잉 포지션들의 개수를 나타낸다(specifies the number of viewing positions related to the current viewing position. )
set_viewing_position_x, set_viewing_position_y and set_viewing_position_z 는 인접하거나 디코딩된 픽쳐에 대응하는 뷰잉 포지션 세트 내 모든 뷰잉 포지션들의 i번째 XYZ 코디네이트 로케이션을 2의 마이너스16승 밀리미터들 단위로 각각 나타낸다. set_viewing_position_x, set_viewing_position_y and set_viewing_position_z 의 범위는 -32768 * 2^16 - 1 (i.e., -2147483647) 내지32768 * 2^16 (i.e., 2147483648), 포함의 범위를 가진다(indicate the i-th XYZ coordinate location of the adjacent or all viewing positions in the viewing position set corresponding to the decoded picture, in the units of 2^-16 millimeters, respectively. The range of set_viewing_position_x, set_viewing_position_y and set_viewing_position_z shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive.)
set_viewing_position_x, set_viewing_position_y and set_viewing_position_z의 값은 viewing_position_x, viewing_position_y and viewing_position_z의 표현으로 얼라인되는 앵커 로케이션에 대응하는 릴레티브 포지션 또는 XYZ 코디네이트 내 앱솔루트 포지션에 의해 표현될 수 있다(The value of set_viewing_position_x, set_viewing_position_y and set_viewing_position_z could be reprsented by absolute position in the XYZ coordinate or relateive position corresponding to the anchor location, which shall be aligned with the representation of viewing_position_x, viewing_position_y and viewing_position_z. )
set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll 은 디코딩된 픽쳐에 대응하는 뷰잉 포지션 세트 내 i번째 뷰잉 포지션의 각 요, 피치, 롤 오리엔테이션 앵글들을 2의 마이너스16승 디그리 단위들로 나타낸다. set_viewing_orientation_yaw의 값은 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다. set_viewing_orientation_pitch의 값은 -90 * 2^16 (i.e., -5898240) 내지90 * 2^16 (i.e., 5898240), 포함의 범위를 가진다. set_viewing_orientation_roll의 값은 -180 * 2^16 (i.e., -11796480) 내지180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다(indicate the yaw, pitch, and roll orientation angles, respectively, of the i-th viewing position in a viewing position set corresponding to the decoded picture, in units of 2^-16 degrees. The value of set_viewing_orientation_yaw shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of set_viewing_orientation_pitch shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of set_viewing_orientation_roll shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. )
어플리케이션들에 따라서, set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll은 아지무스, 엘리베이션, 및 틸트 각각을 인디케이팅하는데 사용될 수 있다. 또한, set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll은 로컬 코디네이트 축을 글로벌 코디네이트 축으로 각각 변환하기 위해서 디코딩된 픽쳐에 대응하는 뷰잉 포지션 세트 내 i번째 뷰잉 포지션의 유닛 스피어에 적용되는 로테이션을 나타낸다(Depending on the applications, set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll could be used to indicate azimuth, elevation, and tilt, respectively. Also, set_viewing_orientation_yaw, set_viewing_orientation_pitch, and set_viewing_orientation_roll could represent the rotation that is applied to the unit sphere of the i-th viewing position in a viewing position set corresponding to the decoded picture to convert the local coordinate axes to the global coordinate axes, respectively. )
set_coverage_horizontal and set_coverage_vertical 은 디코딩된 픽쳐에 대응하는 뷰잉 포지션 세트 내 i번째 뷰잉 포지션의 커버리지의 호리즌탈 및 버티칼 범위를 2의 마이너스16승 디그리들 단위로 각각 나타낸다(specifies the horizontal and vertical ranges of the coverage of the i-th viewing position in a viewing position set corresponding to the decoded picture, in units of 2^-16 degrees, respectively. )
도34는 본 발명의 실시예들에 따른 전체 영상에 대한 메타데이터를 나타낸다.
헤드 모션 인포메이션 SEI메시지를 설명하면 다음과 같다.
헤드 모션 인포메이션 SEI메시지는 뷰포인트에 대응하는 커런트 비디오의 헤드 모션 바운더리의 정보를 제공한다. 여기서, 헤드 모션 바운더리 또는 뷰잉 스페이스는 뷰이미지 및 비디오의 렌더링이 이네이블되고, VR 경험이 가능한 뷰잉 포지션들의 3D스페이스를 나타낸다. 수신기에서, 뷰포트는 인터미디에이트 뷰잉 포지션을 위한 뷰잉 포지션 또는 신테사이즈된/리컨스트럭트된 픽쳐의 의 디코딩된 픽쳐에 의해 생성될 수 있다.(The Head motion information SEI message provides information of the head motion boundary of the current video corresponding to a viewpoint, where head motion boundary or viewing space represent the 3D space of viewing positions within which rendering of image and video is enabled and VR experience is valid. In the receiver, a viewport could be generated by a decoded picture of a viewing position or a synthesized/reconstructed picture for an intermediate viewing position. )
캡쳐의 컨디션들에 따른 인터미디에이트 뷰들의 범위를 정의하는 것 및 인터미디에이트 뷰들 범위를 정의하는 것은 의미있다(It is meaningful to define the range of the intermediate views according to the conditions of capture, and typically to define the intermediate views range.)
head_motion_info_id 뷰잉 포지션 인포메이션의 목적을 식별하는데 사용되는 식별 번호를 나타낸다. head_motion_info_id의 값은 다른 리시버 캐퍼빌리티들을 서포트하고 또는 다른 뷰 포인트 또는 이 SEI메시지에 포함된 정보의 다른 레벨을 나타내기 위한 이 SEI메시지의 다른 유즈케이스들을 나타내기 위해서 사용될 수 있다(contains an identifying number that may be used to identify the purpose of the viewing position information. The value of head_motion_info_id may be used to indicate the different use cases of this SEI message, to support different receiver capabilities, or to indicate different level of information contained in the SEI message, or different viewpoint, etc. )
하나 또는 하나 이상의 헤드 모션 인포메이션 SEI메시지는 head_motion_info_id의 같은 값을 가지고 존재하는 경우, 헤드 모션 인포메이션 SEI메시지의 컨텐트는 같다. 하나 또는 하나 이상의 head_motion_info_id의 값을 갖는 헤드 포지션 인포케이션 SEI메시지가 존재하는 경우, head_motion_info_id의 다른 값들에 의해 인디케이팅되는 정보들이 다른 목적들을 위해 제공되거나 시퀀셜 오더(오더는 이 애플리케이션에 따라 기술될 수 있다) 내 적용되는 코렉션의 케스케이딩인 얼터네이티브임을 나타낸다. head_position_info_id의 값은 0 to 2^12 - 1, 포함의 범위를 가진다(When more than one head motion information SEI message is present with the same value of head_motion_info_id, the content of these head motion information SEI messages shall be the same. When head position information SEI messages are present that have more than one value of head_motion_info_id, this may indicate that the information indicated by the different values of head_motion_info_id are alternatives that are provided for different purposes or that a cascading of correction to be applied in a sequential order (an order might be specified depending on the application). The value of head_position_info_id shall be in the range of 0 to 2^12 - 1, inclusive. )
head_motion_info_cancel_flag 이 1이면, 헤드 모션 인포메이션 SEI 메시지가 커런트 레이어에 적용되는 아웃풋 오더 내 이전의 헤드 포지션 인포메이션 SEI 메시지의 퍼시스턴스를 캔슬함을 나타낸다. head_motion_info_cancel_flag 이 0이면, 헤드 모션 인포메이션이 팔로우함을 나타낸다(equal to 1 indicates that the head motion information SEI message cancels the persistence of any previous head position information SEI message in output order that applies to the current layer. head_motion_info_cancel_flag equal to 0 indicates that head motion information follows. )
head_motion_info_persistence_flag 커런트 레이어를 위한 헤드 모션 인포메이션 SEI메시지의 퍼시스턴스를 기술한다(specifies the persistence of the head motion information SEI message for the current layer.) head_motion_info_persistence_flag 이 0이면, 커런트 디코딩된 픽쳐에만 헤드 모션 인포메이션이 적용되는 것을 나타낸다(head_motion_info_persistence_flag equal to 0 specifies that the head motion information applies to the current decoded picture only.)
픽쳐A가 커런트 픽쳐라고 하면, head_motion_info_persistence_flag 이 1이면, 헤드 모션 인포메이션 SEI 메시지가 다음 조건들이 트루가 될때까지 아웃풋 오더 내 커런트 레이어를 위해 퍼시스트한다:
커런트 레이어의 새로운 CLVS가 시작함. 비트스트림이 끝남. 커런트 레이어에 적용 가능한 헤드 모션 인포메이션 SEI메시지를 포함하는 엑세스 유닛 내 커런트 레이어 내 픽쳐B가 PicOrderCnt( picA )보다 큰 PicOrderCnt( picB )를 위한 아웃풋이다. 여기서 PicOrderCnt( picB ) and PicOrderCnt( picA )는 픽쳐A 및 픽쳐B를 위한 PicOrderCntVal 값들 각각이다(픽쳐B의 픽쳐 오더 카운트를 위한 디코딩 프로세스의 인보케이션 이후) (Let picA be the current picture. head_motion_info_persistence_flag to 1 specifies that the head motion information SEI message persists for the current layer in output order until any of the following conditions are true: A new CLVS of the current layer begins. The bitstream ends. A picture picB in the current layer in an access unit containing a head motion information SEI message that is applicable to the current layer is output for which PicOrderCnt( picB ) is greater than PicOrderCnt( picA ), where PicOrderCnt( picB ) and PicOrderCnt( picA ) are the PicOrderCntVal values of picB and picA, respectively, immediately after the invocation of the decoding process for the picture order count of picB.)
num_nested_boundaries_minus1 은 헤드 모션 바운더리의 네스팅 쉐입들의 개수를 나타낸다. num_nested_boundaries_minus1 이 1보다 큰 경우, 헤드 모션 바운더리들은 범위들(즉, 아우터모스트 바운더리로부터 인너모스트 바운더리)의 디센딩 오더 내 인폼된다((indicate the number of nesting shapes of head motion boundary. When num_nested_boundaries_minus1 is greater than 1, the head motion boundaries shall be informed in the descending order of the ranges, i.e., from the outermost boundary to the innermost boundary. )
head_motion_boundary_center_present_flag 이 1이면, i번째 헤드 모션 바운더리의 센터 로케이션이 SEI 메시지 내 존재함을 나타낸다. head_motion_boundary_center_present_flag이 0이면, i번째 헤드 모션 바운더리의 센터 로케이션이 SEI메시지에 존재하지 않음을 나타낸다. 애플리케이션들에 따라서, head_motion_boundary_center_present_flag 이 0이면, i번째 헤드 모션 바운더리으 센터가 XYZ 코디네이트 내 (0,0,0) 또는 앵커 뷰잉 포지션의 센터와 동일함을 나타낸다. num_nested_boundaries_minus1 이 1보다 크면, head_motion_boundary_center_present_flag 은 0이고, 이는 i번재 헤드 모션 바운더리의 센터가 아우터모스트 바운더리의 센터(즉, 0번째 헤드 모션 바운더리의 센터)와 동일함을 나타낸다. head_motion_boundary_rotation_flag 이 1이면 i번재 헤드 모션 바운더리의 요, 피치, 및 롤 로테이션이 SEI메시지에 존재함을 나타낸다. head_motion_boundary_rotation_flag 이 0이면 i번째 헤드 모션 바운더리의 요, 피치, 및 롤 로테이션이 (0,0,0) 또는 앵커 뷰잉 포지션의 로테이션의 로케이션과 동일함을 나타낸다((equal to 1 indicate that the center location of the i-th head motion boundary is present in the SEI message. head_motion_boundary_center_present_flag equal to 0 indicate that the center location of the i-th head motion boundary is not present in the SEI message. Depending on the applications, head_motion_boundary_center_present_flag equal to 0 could indicate that the center of the i-th head motion boundary is identical to the center of the anchor viewing postion or (0,0,0) in XYZ coordinate.
When num_nested_boundaries_minus1 is greater than 1, head_motion_boundary_center_present_flag equal to 0 could indicate that the center of the i-th head motion boundary is identical to the center of the outermost boundary, i.e., the center of the 0-th head motion boundary. head_motion_boundary_rotation_flag equal to 1 indicate that the yaw, pitch, and roll rotation of the i-th head motion boundary is present in the SEI message. head_motion_boundary_rotation_flag equal to 0 indicate that the yaw, pitch, and roll rotation of the i-th head motion boundary is not present in the SEI message. Depending on the applications, head_motion_boundary_rotation_flag equal to 0 could indicate that the yaw, pitch, and roll roation of the i-th head motion boundary is (0, 0, 0) or identical to the rotation of the rotation of anchor viewing position. )
num_nested_boundaries_minus1이 1보다 크고 head_motion_boundary_rotation_flag 이 0이면, i번째 헤드 모션 바운더리의 요, 피치, 롤 로테이션이 아우터모스트 바운더리(즉, 0번째 헤드 모션 바운더리의 요, 피치, 및 롤 각각)의 요, 피치, 및 롤과 동일함을 나타낸다(When num_nested_boundaries_minus1 is greater than 1, head_motion_boundary_rotation_flag equal equal to 0 could indicate that the yaw, pitch, and roll roation of the i-th head motion boundary is identical to the yaw, pitch, and roll of the outermost boundary, i.e., the yaw, pitch, and roll of the 0-th head motion boundary, respectively. )
head_motion_boundary_asymmetric_flag i번째 헤드 모션 바운더리의 쉐이프가 센터에 관핸 시멘트리하지 않음ㅇ르 나타낸다. head_motion_boundary_asymmetric_flag 이 0이면, i번째 헤드 모션 바운더리의 쉐이프가 센터에 관해 시멘트릭함을 나타낸다(equal to 1 indicate that the shape of the i-th head motion boundary is not symmetric in terms of the center. head_motion_boundary_asymmetric_flag equal to 0 indicate that the shape of the i-th head motion boundary is symmetric in terms of the center. )
head_motion_boundary_type 헤드 모션 바운더리의 쉐이프 타입을 나타낸다. head_motion_boundary_type이 0이면, 언디파인드이다. head_motion_boundary_type 이 1이면 스피어이다. head_motion_boundary_type 이 2이면 파라볼로이드 쉐이프이다. head_motion_boundary_type 이 3이면 큐브이다. head_motion_boundary_type 이 4이면 렉텡귤러 프리즘이다. head_motion_boundary_type 이 5이면 스페로이드이다. head_motion_boundary_type 이 6이면 트리액시얼 엘립소이드이다. head_motion_boundary_type 이 15이면 버텍스들에 의해 정의되는 쉐이프이다. head_motion_boundary_type 의 다른 값들은 퓨처 유즈를 위해 프리저브된다(specifies the shape type of the head motion boundary. head_motion_boundary_type equal to 0 indicate undefined head_motion_boundary_type equal to 1 indicate the sphere. head_motion_boundary_type equal to 2 indicate the paraboloid shape. head_motion_boundary_type equal to 3 indicate the cube. head_motion_boundary_type equal to 4 indicate the rectangular prism. head_motion_boundary_type equal to 5 indicate the spheroid. head_motion_boundary_type equal to 6 indicate the tri-axial ellipsoid. head_motion_boundary_type equal to 15 indicate a shape defined by vertexes. Other values of head_motion_boundary_type is preserved for future use. )
head_motion_boundary_radius_min and head_motion_boundary_radius_max 은 바운더리의 센터로부터 헤드 모션 바운더리의 미니멈 및 맥시멈 레이우스를 나타낸다. head_motion_boudnary_type 이 1이 아니면, head_motion_boundary_radius_min and head_motion_boundary_radius_max 은 근사치의 바운더리일 수 있다(indicate the minimum and maximum radius of the head motion boundary from the center of the boundary. When head_motion_boudnary_type not equal to 1, head_motion_boundary_radius_min and head_motion_boundary_radius_max could provide approximated boundary.)
head_motion_boundary_center_x, head_motion_boundary_center_y and head_motion_boundary_center_z 디코딩된 픽쳐에 대응하는 뷰잉 포지션의 i번째 헤드 모션 바운더리의 센터의 (x, y, z) 로케이션을 2의 마이너스16승 밀리미터들 단위로 나타낸다. head_motion_boundary_x, head_motion_boundary_y and head_motion_boundary_z 은 -32768 * 2^16 - 1 (i.e., -2147483647) 내지 32768 * 2^16 (i.e., 2147483648), 포함의 범위를 가진다(indicate the (x,y,z) location of center of the i-th head motion boundary of the viewing position corresponding to the decoded picture in the units of 2^-16 millimeters, respectively. The head_motion_boundary_x, head_motion_boundary_y and head_motion_boundary_z shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive.)
head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll i번째 헤드 모션 바운더리 쉐이프의 요, 피치, 및 롤 로테이션 앵글들을 2의 마이너스16승 디그리들 단위로 각각 나타낸다. head_motion_boundary_rotation_yaw 의 값은 -180 * 2^16 (i.e., -11796480) 내지 180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다. head_motion_boundary_rotation_pitch 의 값은 -90 * 2^16 (i.e., -5898240) 내지 90 * 2^16 (i.e., 5898240), 포함의 범위를 가진다. head_motion_boundary_rotation_roll 의 값은 -180 * 2^16 (i.e., -11796480) 내지 180 * 2^16 - 1 (i.e., 11796479), 포함의 범위를 가진다(indicate the yaw, pitch, and roll rotation angles of the i-th head motion boundary shape in units of 2^-16 degrees, repectively. The value of head_motion_boundary_rotation_yaw shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive, the value of head_motion_boundary_rotation_pitch shall be in the range of -90 * 2^16 (i.e., -5898240) to 90 * 2^16 (i.e., 5898240), inclusive, and the value of head_motion_boundary_rotation_roll shall be in the range of -180 * 2^16 (i.e., -11796480) to 180 * 2^16 - 1 (i.e., 11796479), inclusive. )
애플리케이션들에 따라서, head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll 은 각각 아지무스, 엘리베이션, 및 틸트를 나타내는데 사용될 수 있다. 또한, head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll 은 오리엔테이션을 나타낼 수 있다(Depending on the applications, head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll could be used to indicate azimuth, elevation, and tilt, respectively. Also, head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll could represent the orientation. )
head_motion_boundary_radius i번째 헤드 모션 바운더리의 래디우스를 나타낸다. 래디우스는 센터로부터 아우터모스트 바운더리의 디스턴스를 나타낸다. head_motion_boundary_radius 의 범위는 0 내지65 536 * 2^16 - 1(i.e., 4 294 967 295), 포함의 범위이다(indicate the radius of the i-th head motion boundary. The radius indicate the distance from the center to the outermost boundary. The range of head_motion_boundary_radius shall be in the range of 0 to to 65 536 * 2^16 - 1(i.e., 4 294 967 295), inclusive.)
head_motion_boundary_param_alpha, head_motion_boundary_param_beta, and head_motion_boundary_z_max specify the parameter values of paraboloid shape of the i-th head motion boundary. The ranges of head_motion_boundary_param_alpha, head_motion_boundary_param_beta, and head_motion_boundary_z_max shall be in the range of 0 to to 65 536 * 2^16 - 1(i.e., 4 294 967 295), inclusive.
head_motion_boundary_positive_x_axis, head_motion_boundary_negative_x_axis, head_motion_boundary_positive_y_axis, head_motion_boundary_negative_y_axis, head_motion_boundary_positive_z_axis, and head_motion_boundary_negative_z_axis 포지티브 및 네거티트 방향들의 x, y, z 축 방향의 헤드 모션 바운더리의 범위를 2의 마이너스16승 밀리미터들 단위로 각각 나타낸다. 여기서 xyz 축들은 head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll for yaw, pitch, and roll 각각 로테이트된 로컬 코디네이트이다. head_motion_boundary_positive_x_axis, head_motion_boundary_negative_x_axis, head_motion_boundary_positive_y_axis, head_motion_boundary_negative_y_axis, head_motion_boundary_positive_z_axis, and head_motion_boundary_negative_z_axis의 값은 0 내지 65 536 * 2^16 - 1(i.e., 4 294 967 295), 포함의 범위를 가진다(indicate the range of the head motion boundary in the directions of x, y, and z axis of positive and negative directions in the units of 2^-16 millimeters, respectively, where the XYZ axises are local coordinated rotated in the amout of head_motion_boundary_rotation_yaw, head_motion_boundary_rotation_pitch, and head_motion_boundary_rotation_roll for yaw, pitch, and roll, respectively. The value of head_motion_boundary_positive_x_axis, head_motion_boundary_negative_x_axis, head_motion_boundary_positive_y_axis, head_motion_boundary_negative_y_axis, head_motion_boundary_positive_z_axis, and head_motion_boundary_negative_z_axis shall be in the range of 0 to 65 536 * 2^16 - 1(i.e., 4 294 967 295), inclusive.)
head_motion_boundary_param_a, head_motion_boundary_param_b, and head_motion_boundary_param_c 스페로이드 또는 트리-엑시스 엘립소이드 쉐이프의 i번째 헤드 모션 바운더리의 파라미터 값들을 나타낸다. head_motion_boundary_param_a, head_motion_boundary_param_b, and head_motion_boundary_param_c 은 0 내지 65 536 * 2^16 - 1(i.e., 4 294 967 295), 포함의 범위를 가진다(specify the parameter values of the i-th head motion boundary of spheroid or tri-axis ellipsoid shape. The ranges of head_motion_boundary_param_a, head_motion_boundary_param_b, and head_motion_boundary_param_c shall be in the range of 0 to to 65 536 * 2^16 - 1(i.e., 4 294 967 295), inclusive.)
head_motion_boundary_symmetry_axis 센터가 (0, 0, 0) 인 경우 스페로이드 시멘트리한 축을 나타낸다. head_motion_boundary_symmetry_axis 이 0인 경우, 시멘트리 축은 센터가 (0, 0, 0)인 x축으로서 인디케이팅된다. head_motion_boundary_symmetry_axis 이 1인 경우, 시멘트리 축은 센터가 (0,0,0)인 y축으로 인디케이팅된다. head_motion_boundary_symmetry_axis 가 2인 경우 시멘트리 축은 센터가 (0,0,0)인 z축으로 인디케이팅된다. head_motion_boundary_symmetry_axis 의 다른 값들은 리저브드된다(specify the axis that the spheroid is symmetric when the center is (0,0,0). When head_motion_boundary_symmetry_axis equal to 0, the symmetry axis is indicated as x axis when the center is (0,0,0). When head_motion_boundary_symmetry_axis equal to 1, the symmetry axis is indicated as y axis when the center is (0,0,0). When head_motion_boundary_symmetry_axis equal to 2, the symmetry axis is indicated as z axis when the center is (0,0,0). The other values of head_motion_boundary_symmetry_axis are reserved. )
num_boundary_vertex_minus4 플러스 4는 헤드 모션 바운더리를 기술하는 버텍스들의 개수를 나타낸다(plus 4 specifies the number of vertexes that describes the head motion boundary. )
boundary_vertex_x, boundary_vertex_y, and boundary_vertex_z 은ㅇ xyz코디네이트 내 헤드 모션 바운더리를 2의 마이너스16승 밀리미터들 단위로 기술하는 버텍스의 로케이션을 나타낸다. boundary_vertex_x, boundary_vertex_y, and boundary_vertex_z 은 -32768 * 2^16 - 1 (i.e., -2147483647) 내지 32768 * 2^16 (i.e., 2147483648), 포함의 범위를 가진다. 애플리케이션들에서, 버텍스들은 뷰포인트에 속하는 뷰잉 포지션들의 서브셋이 될 수 있다(specifies the location of a vertex that describes the head motion boundary in XYZ coordinate in the units of 2^-16 millimeters, respectively. The boundary_vertex_x, boundary_vertex_y, and boundary_vertex_z shall be in the range of -32768 * 2^16 - 1 (i.e., -2147483647) to 32768 * 2^16 (i.e., 2147483648), inclusive. In some applications, the vertexes could be a subset of the viewing positions belongs to a viewpoint. )
도35는 본 발명의 실시예들에 따른 비디오 송신 방법을 나타낸다.
본 발명의 실시예들에 따른 비디오 송신 방법은 S35001 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 단계, S35002 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 단계, S35003 프레딕션 에러 프로세싱된 픽쳐를 에러-프론 리젼 맵에 기초하여 패치 패킹하는 단계, 및/또는S35004 패킹된 패치를 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 단계를 포함한다.
방법S35001 관련하여, 본 발명의 실시예들에 따른 비디오 송신 장치는, 예를 들어, 타겟 뷰 프레딕션 프로세서 또는 타겟 뷰 프레딕션 컨트롤러는 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션한다. 구체적인 절차는 도22에서 상술한 바와 같다. 또한, 타겟 뷰 프레딕션은 도23에서 설명한 바와 같이 추가적으로 수행될 수 있다.
방법S35002 관련하여, 본 발명의 실시예들에 따른 비디오 송신 장치는, 예를 들어, 프레딕션 에러 프로세서 또는 프레딕션 에러 컨트롤러는 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리한다. 구체적인 절차는 도22에서 상술한 바와 같다. 또한, 프레딕션 에러 프로세싱은 도24 내지 도25에서 설명한 바와 같이 추가적으로 수행될 수 있다.
방법S35003 관련하여, 본 발명의 실시예들에 따른 비디오 송신 장치에 의해서, 예를 들어, 패치 패킹 프로세서 또는 패치 패킹 컨트롤러는 프레딕션 에러 프로세싱된 픽쳐를 에러-프론 리젼 맵에 기초하여 패치 패킹한다. 구체적인 절차는 도22에서 상술한 바와 같다. 또한, 패치 패킹 프로세싱은 도26에서 설명한 바와 같이 추가적으로 수행될 수 있다.
방법S35004 관련하여, 본 발명의 실시예들에 따른 비디오 송신 장치는, 예를 들어, 인코더는 패킹된 패치를 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩한다. 구체적인 절차는 도22에서 설명한 바와 같다.
본 발명의 실시예들에 따른 비디오 수신 방법은 본 발명의 실시예들에 따른 비디오 송신 방법의 역과정을 따를 수 있다.
전술한 각각의 파트, 모듈 또는 유닛은 메모리(또는 저장 유닛)에 저장된 연속된 수행과정들을 실행하는 소프트웨어, 프로세서, 하드웨어 파트일 수 있다. 전술한 실시예에 기술된 각 단계들은 프로세서, 소프트웨어, 하드웨어 파트들에 의해 수행될 수 있다. 전술한 실시예에 기술된 각 모듈/블락/유닛들은 프로세서, 소프트웨어, 하드웨어로서 동작할 수 있다. 또한, 본 발명이 제시하는 방법들은 코드로서 실행될 수 있다. 이 코드는 프로세서가 읽을 수 있는 저장매체에 쓰여질 수 있고, 따라서 장치(apparatus)가 제공하는 프로세서에 의해 읽혀질 수 있다.
설명의 편의를 위하여 각 도면을 나누어 설명하였으나, 각 도면에 서술되어 있는 실시 예들을 병합하여 새로운 실시 예를 구현하도록 설계하는 것도 가능하다. 그리고, 통상의 기술자의 필요에 따라, 이전에 설명된 실시 예들을 실행하기 위한 프로그램이 기록되어 있는 컴퓨터에서 판독 가능한 기록 매체를 설계하는 것도 본 발명의 권리범위에 속한다.
본 발명에 따른 장치 및 방법은 상술한 바와 같이 설명된 실시 예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상술한 실시 예들은 다양한 변형이 이루어질 수 있도록 각 실시 예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
한편, 본 발명이 제안하는 방법을 네트워크 디바이스에 구비된, 프로세서가 읽을 수 있는 기록매체에, 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한, 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한, 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해돼서는 안 될 것이다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 이해된다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.
본 명세서에서 장치 및 방법 발명이 모두 언급되고, 장치 및 방법 발명 모두의 설명은 서로 보완하여 적용될 수 있다.
이 문서에서 /와 ,는 및/또는으로 해석된다. 예를 들어, A/B는 A 및/또는 B로 해석되고, A, B는 A 및/또는 B로 해석된다. 추가적으로, A/B/C는 A, B 및/또는 C 중 적어도 하나를 의미한다. 또한, A, B, C도 A, B 및/또는 C 중 적어도 하나를 의미한다. (In this document, the term / and , should be interpreted to indicate and/or. For instance, the expression A/B may mean A and/or B. Further, A, B may mean A and/or B. Further, A/B/C may mean at least one of A, B, and/or C. Also, A/B/C may mean at least one of A, B, and/or C.)
추가적으로, 이 문서에서 또는는 및/또는으로 해석된다. 예를 들어, A 또는 B은, 1) A 만을 의미하고, 2) B만을 의미하거나, 3) A 및 B를 의미할 수 있다. 달리 표현하면, 본 문서의 또는은 추가적으로 또는 대체적으로(additionally or alternatively)를 의미할 수 있다. (Further, in the document, the term or should be interpreted to indicate and/or. For instance, the expression A or B may comprise 1) only A, 2) only B, and/or 3) both A and B. In other words, the term or in this document should be interpreted to indicate additionally or alternatively.)
다양한 실시예가 본 발명을 실시하기 위한 최선의 형태에서 설명되었다.
본 발명은 VR 관련 분야에서 이용된다.
본 발명의 사상이나 범위를 벗어나지 않고 본 발명에서 다양한 변경 및 변형이 가능함은 당업자에게 자명하다. 따라서, 본 발명은 첨부된 청구항 및 그 동등 범위 내에서 제공되는 본 발명의 변경 및 변형을 포함하는 것으로 의도된다.

Claims (14)

  1. 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 타겟 뷰 프레딕션 컨트롤러(Target view prediction controller);
    상기 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 프레딕션 에러 컨트롤러(Prediction error controller), 상기 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨;
    상기 프레딕션 에러 프로세싱된 픽쳐를 상기 에러-프론 리젼 맵에 기초하여 패치 패킹하는 패치 패킹 컨트롤러(Patch packing controller); 및
    상기 패킹된 패치를 상기 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 인코더(Encoder); 를 포함하는,
    비디오 송신 장치.
  2. 제1항에 있어서,
    상기 타겟 뷰 프레딕션 컨트롤러는,
    상기 타겟 뷰잉 포지션 인포메이션, 상기 앵커 뷰잉 포지션의 뎁스 또는 상기 타겟 뷰잉 포지션의 뎁스 중 적어도 하나에 기초하여 상기 앵커 뷰잉 포지션의 상기 텍스쳐 픽쳐 또는 상기 뎁스 픽쳐의 뎁스 레이어를 구분하고(Target view depth layering),
    상기 앵커 뷰잉 포지션의 뎁스 및 상기 타겟 뷰잉 포지션의 뎁스에 기초하여 상기 구분된 뎁스 레이어를 프레딕션(Prediction)하고,
    상기 프레딕션된 뎁스 레이어를 통합하여 상기 타겟 뷰잉 포지션에 대한 프레딕션 픽쳐를 생성(Picture generation)하는,
    비디오 송신 장치.
  3. 제1항에 있어서,
    상기 프레딕션 에러 컨트롤러(Prediction error controller)는
    상기 프레딕션된 픽쳐를 상기 소스 픽쳐에 기반하여 프레딕션 에러를 감지하고(Prediction error detection), 상기 프레딕션 에러는 상기 소스 픽쳐로부터 상기 프레딕션 픽쳐를 서브트랙션(subtraction)하여 추정되고,
    상기 프레딕션 에러에 대응하는 에러 픽쳐로부터 쓰레드홀(threshold) 값에 기반하여 에스티메이션 에러를 획득하고(Estimation error detection), 상기 에스티메이션 에러에 대한 위치 정보를 포함하는 에스티메이션 에러 맵(estimation error map)을 생성하고,
    상기 프레딕션 에러로부터 홀(hole)에 기반하여 오클루션 에러를 획득하고(Occlusion error detection), 상기 오클루션 에러에 대한 위치 정보를 포함하는 오클루션 에러 맵(occlusion error map)을 생성하는,
    비디오 송신 장치.
  4. 제3항에 있어서,
    상기 에스티메이션 에러 맵 또는 상기 오클루션 에러 맵 중 적어도 하나에 기반하여 상기 타겟 뷰잉 포지션에 대한 프레딕션에 관련된 에러 발생 영역(error-prone region)을 감지하고, 상기 에러 발생 영역에 대한 위치 정보를 포함하는 에러 발생 영역 맵(error-prone region map)을 생성하고,
    상기 에러 발생 영역 맵에 가드 밴드를 추가하거나 또는 상기 에러 발생 영역 맵을 확장하는 포스트-프로세싱을 하고(error-prone region map post-processing),
    상기 에러 발생 영역 맵 및 상기 소스 픽쳐에 기반하여 에러 발생의 영역에 관련된 픽쳐를 생성하는(Error-region picture generation),
    비디오 송신 장치.
  5. 제1항에 있어서,
    상기 프레딕션 에러 컨트롤러(Prediction error controller)는
    상기 타겟 뷰잉 포지션의 상기 프레딕션된 픽쳐를 상기 타겟 뷰잉 포지션의 상기 소스 픽쳐에 기반하여 에스티메이션 에러를 감지하고(estimation error detection), 상기 타겟 뷰잉 포지션의 서브트랙트된 픽쳐를 생성하고,
    상기 프레딕션된 픽쳐로부터 오클루션 에러를 감지하고(occlusion error detection), 상기 오클루션 에러를 나타내는 오클루션 리젼 맵을 생성하고,
    상기 서브트랙트된 픽쳐 및 상기 오클루션 리젼 맵에 기반하여 프레딕션 에러 및 오클루션 에러를 포함하는 에러의 종류를 분류하고(data classification),
    상기 프레딕션 에러에 대한 픽쳐에 기반하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러의 리젼을 감지하고(estimation error region detection), 상기 프레딕션 에러의 리젼을 나타내는 에러-프론 리젼 맵을 생성하고,
    상기 프레딕션 에러의 값이 일정값보다 큰 경우, 상기 프레딕션 에러를 상기 소스 픽쳐로 대체하고(estimation error substitution),
    상기 오클루션 리젼 맵 및 상기 에러-프론 리젼 맵에 기반하여 에러 발생 영역을 나타내는 에러-프론 리젼 맵을 생성하고,
    상기 대체된 소스 픽쳐 및 오클루션 리젼의 소스 픽쳐에 기반하여 에러-프론 리젼 픽쳐를 생성하는(error-prone region picture generation),
    비디오 송신 장치.
  6. 제1항에 있어서,
    상기 패치 패킹 컨트롤러는,
    상기 에러-프로 리젼 맵에 기반하여 상기 프레딕션 에러 프로세싱된 픽쳐의 에러-프론 리젼 픽쳐(error-prone region picture)를 구분하는 리젼을 클러스터링하고(region clustering), 상기 리젼을 나타내는 클러스터링 맵(clustering map)을 생성하고,
    상기 소스 픽쳐 및 상기 클러스터링 맵에 기반하여 상기 에러-프론 리젼 픽쳐로부터 패치를 생성하고(patch generation),
    상기 패치를 이용하여 하나 또는 하나 이상의 픽쳐를 생성하는(patch packing),
    비디오 송신 장치.
  7. 제1항에 있어서,
    상기 패치 패킹 컨트롤러는,
    상기 패치에 포함된 빈 공간을 상기 소스 픽쳐에 대한 데이터로 채우거나, 또는
    상기 패치에 가드 밴드(guard band)를 추가하는 처리를 하는(patch generation post-processing),
    비디오 송신 장치.
  8. 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐로부터 타겟 뷰잉 포지션 인포메이션에 기초하여 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 단계(Target view perdiction);
    상기 타겟 뷰잉 포지션의 소스 픽쳐에 기초하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러를 처리하는 단계(Prediction error), 상기 프레딕션된 픽쳐 및 소스 픽쳐에 기초하여 에러-프론 리젼 맵이 생성됨;
    상기 프레딕션 에러 프로세싱된 픽쳐를 상기 에러-프론 리젼 맵에 기초하여 패치 패킹하는 단계(Patch packing); 및
    상기 패킹된 패치를 상기 앵커 뷰잉 포지션의 텍스쳐 픽쳐 또는 뎁스 픽쳐에 기초하여 인코딩하는 단계(Encoding); 를 포함하는,
    비디오 송신 장치.
  9. 제8항에 있어서,
    상기 타겟 뷰잉 포지션에 대한 픽쳐를 프레딕션하는 단계는,
    상기 타겟 뷰잉 포지션 인포메이션, 상기 앵커 뷰잉 포지션의 뎁스 또는 상기 타겟 뷰잉 포지션의 뎁스 중 적어도 하나에 기초하여 상기 앵커 뷰잉 포지션의 상기 텍스쳐 픽쳐 또는 상기 뎁스 픽쳐의 뎁스 레이어를 구분하고(Target view depth layering),
    상기 앵커 뷰잉 포지션의 뎁스 및 상기 타겟 뷰잉 포지션의 뎁스에 기초하여 상기 구분된 뎁스 레이어를 프레딕션(Prediction)하고,
    상기 프레딕션된 뎁스 레이어를 통합하여 상기 타겟 뷰잉 포지션에 대한 프레딕션 픽쳐를 생성(Picture generation)하는,
    비디오 송신 방법.
  10. 제8항에 있어서,
    상기 프레딕션 에러를 처리하는 단계는,
    상기 프레딕션된 픽쳐를 상기 소스 픽쳐에 기반하여 프레딕션 에러를 감지하고(Prediction error detection), 상기 프레딕션 에러는 상기 소스 픽쳐로부터 상기 프레딕션 픽쳐를 서브트랙션(subtraction)하여 추정되고,
    상기 프레딕션 에러에 대응하는 에러 픽쳐로부터 쓰레드홀(threshold) 값에 기반하여 에스티메이션 에러를 획득하고(Estimation error detection), 상기 에스티메이션 에러에 대한 위치 정보를 포함하는 에스티메이션 에러 맵(estimation error map)을 생성하고,
    상기 프레딕션 에러로부터 홀(hole)에 기반하여 오클루션 에러를 획득하고(Occlusion error detection), 상기 오클루션 에러에 대한 위치 정보를 포함하는 오클루션 에러 맵(occlusion error map)을 생성하는,
    비디오 송신 방법.
  11. 제10항에 있어서,
    상기 에스티메이션 에러 맵 또는 상기 오클루션 에러 맵 중 적어도 하나에 기반하여 상기 타겟 뷰잉 포지션에 대한 프레딕션에 관련된 에러 발생 영역(error-prone region)을 감지하고, 상기 에러 발생 영역에 대한 위치 정보를 포함하는 에러 발생 영역 맵(error-prone region map)을 생성하고,
    상기 에러 발생 영역 맵에 가드 밴드를 추가하거나 또는 상기 에러 발생 영역 맵을 확장하는 포스트-프로세싱을 하고(error-prone region map post-processing),
    상기 에러 발생 영역 맵 및 상기 소스 픽쳐에 기반하여 에러 발생의 영역에 관련된 픽쳐를 생성하는(Error-region picture generation),
    비디오 송신 방법.
  12. 제8항에 있어서,
    상기 프레딕션 에러를 처리하는 단계는
    상기 타겟 뷰잉 포지션의 상기 프레딕션된 픽쳐를 상기 타겟 뷰잉 포지션의 상기 소스 픽쳐에 기반하여 에스티메이션 에러를 감지하고(estimation error detection), 상기 타겟 뷰잉 포지션의 서브트랙트된 픽쳐를 생성하고,
    상기 프레딕션된 픽쳐로부터 오클루션 에러를 감지하고(occlusion error detection), 상기 오클루션 에러를 나타내는 오클루션 리젼 맵을 생성하고,
    상기 서브트랙트된 픽쳐 및 상기 오클루션 리젼 맵에 기반하여 프레딕션 에러 및 오클루션 에러를 포함하는 에러의 종류를 분류하고(data classification),
    상기 프레딕션 에러에 대한 픽쳐에 기반하여 상기 프레딕션된 픽쳐에 대한 프레딕션 에러의 리젼을 감지하고(estimation error region detection), 상기 프레딕션 에러의 리젼을 나타내는 에러-프론 리젼 맵을 생성하고,
    상기 프레딕션 에러의 값이 일정값보다 큰 경우, 상기 프레딕션 에러를 상기 소스 픽쳐로 대체하고(estimation error substitution),
    상기 오클루션 리젼 맵 및 상기 에러-프론 리젼 맵에 기반하여 에러 발생 영역을 나타내는 에러-프론 리젼 맵을 생성하고,
    상기 대체된 소스 픽쳐 및 오클루션 리젼의 소스 픽쳐에 기반하여 에러-프론 리젼 픽쳐를 생성하는(error-prone region picture generation),
    비디오 송신 방법.
  13. 제8항에 있어서,
    상기 패치 패킹하는 단계는,
    상기 에러-프로 리젼 맵에 기반하여 상기 프레딕션 에러 프로세싱된 픽쳐의 에러-프론 리젼 픽쳐(error-prone region picture)를 구분하는 리젼을 클러스터링하고(region clustering), 상기 리젼을 나타내는 클러스터링 맵(clustering map)을 생성하고,
    상기 소스 픽쳐 및 상기 클러스터링 맵에 기반하여 상기 에러-프론 리젼 픽쳐로부터 패치를 생성하고(patch generation),
    상기 패치를 이용하여 하나 또는 하나 이상의 픽쳐를 생성하는(patch packing),
    비디오 송신 방법.
  14. 제8항에 있어서,
    상기 패치 패킹하는 단계는,
    상기 패치에 포함된 빈 공간을 상기 소스 픽쳐에 대한 데이터로 채우거나, 또는
    상기 패치에 가드 밴드(guard band)를 추가하는 처리를 하는(patch generation post-processing),
    비디오 송신 방법.
PCT/KR2019/011294 2018-09-07 2019-09-03 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치 WO2020050577A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/270,768 US11528509B2 (en) 2018-09-07 2019-09-03 Video transmission method, video transmission device, video receiving method and video receiving device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180106781 2018-09-07
KR10-2018-0106781 2018-09-07

Publications (1)

Publication Number Publication Date
WO2020050577A1 true WO2020050577A1 (ko) 2020-03-12

Family

ID=69721535

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/011294 WO2020050577A1 (ko) 2018-09-07 2019-09-03 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치

Country Status (2)

Country Link
US (1) US11528509B2 (ko)
WO (1) WO2020050577A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022166968A1 (zh) * 2021-02-08 2022-08-11 荣耀终端有限公司 基于二维规则化平面投影的点云编解码方法及装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3734982A4 (en) * 2018-01-12 2020-11-25 Sony Corporation INFORMATION PROCESSING DEVICE AND METHOD
US11575935B2 (en) * 2019-06-14 2023-02-07 Electronics And Telecommunications Research Institute Video encoding method and video decoding method
CN113923459A (zh) * 2019-07-03 2022-01-11 北京小米移动软件有限公司 视频的编码、解码的方法及装置、存储介质
CN112423108B (zh) * 2019-08-20 2023-06-30 中兴通讯股份有限公司 码流的处理方法、装置、第一终端、第二终端及存储介质
US11418769B1 (en) * 2020-09-25 2022-08-16 Apple Inc. Viewport adaptive volumetric content streaming and/or rendering
US20230097425A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for signaling multiview view positions in sei message

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
US20150245061A1 (en) * 2012-07-02 2015-08-27 Qualcomm Incorporated Intra-coding of depth maps for 3d video coding
KR20160045121A (ko) * 2013-10-17 2016-04-26 니폰 덴신 덴와 가부시끼가이샤 영상 부호화 장치 및 방법, 및 영상 복호 장치 및 방법
US20160134874A1 (en) * 2013-07-19 2016-05-12 Huawei Technologies Co., Ltd. Method and Apparatus for Encoding and Decoding a Texture Block Using Depth Based Block Partitioning
KR20170056595A (ko) * 2014-10-07 2017-05-23 삼성전자주식회사 인터-레이어 예측을 이용한 멀티 레이어 영상 부호화 또는 복호화 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104813669B (zh) * 2012-09-21 2018-05-22 诺基亚技术有限公司 用于视频编码的方法和装置
EP3496388A1 (en) * 2017-12-05 2019-06-12 Thomson Licensing A method and apparatus for encoding a point cloud representing three-dimensional objects

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130287093A1 (en) * 2012-04-25 2013-10-31 Nokia Corporation Method and apparatus for video coding
US20150245061A1 (en) * 2012-07-02 2015-08-27 Qualcomm Incorporated Intra-coding of depth maps for 3d video coding
US20160134874A1 (en) * 2013-07-19 2016-05-12 Huawei Technologies Co., Ltd. Method and Apparatus for Encoding and Decoding a Texture Block Using Depth Based Block Partitioning
KR20160045121A (ko) * 2013-10-17 2016-04-26 니폰 덴신 덴와 가부시끼가이샤 영상 부호화 장치 및 방법, 및 영상 복호 장치 및 방법
KR20170056595A (ko) * 2014-10-07 2017-05-23 삼성전자주식회사 인터-레이어 예측을 이용한 멀티 레이어 영상 부호화 또는 복호화 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022166968A1 (zh) * 2021-02-08 2022-08-11 荣耀终端有限公司 基于二维规则化平面投影的点云编解码方法及装置

Also Published As

Publication number Publication date
US20210337243A1 (en) 2021-10-28
US11528509B2 (en) 2022-12-13

Similar Documents

Publication Publication Date Title
WO2020071703A1 (ko) 포인트 클라우드 데이터 전송 장치, 포인트 클라우드 데이터 전송 방법, 포인트 클라우드 데이터 수신 장치 및/또는 포인트 클라우드 데이터 수신 방법
WO2020050577A1 (ko) 비디오 송신 방법, 비디오 송신 장치, 비디오 수신 방법 및 비디오 수신 장치
WO2021002730A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020190114A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2019066436A1 (ko) 360 비디오 시스템에서 오버레이 처리 방법 및 그 장치
WO2018182144A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2018174387A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2018038523A1 (ko) 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치
WO2019066191A1 (ko) 스티칭 및 리프로젝션 관련 메타데이터를 이용한 6dof 비디오를 송수신하는 방법 및 그 장치
WO2018038520A1 (ko) 전방향 비디오를 전송하는 방법, 전방향 비디오를 수신하는 방법, 전방향 비디오 전송 장치, 전방향 비디오 수신 장치
WO2020091404A1 (ko) 비디오 송신 방법, 비디오 전송 장치, 비디오 수신 방법 및 비디오 수신 장치
WO2021187737A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2017188714A1 (ko) 360도 비디오를 전송하는 방법, 360도 비디오를 수신하는 방법, 360도 비디오 전송 장치, 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
WO2020189895A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2019198883A1 (ko) 핫스팟 및 roi 관련 메타데이터를 이용한 360도 비디오를 송수신하는 방법 및 그 장치
WO2020242023A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2018131832A1 (ko) 360 비디오를 전송하는 방법, 360 비디오를 수신하는 방법, 360 비디오 전송 장치, 360 비디오 수신 장치
WO2020036384A1 (en) An apparatus for transmitting a video, a method for transmitting a video, an apparatus for receiving a video, and a method for receiving a video
WO2019168304A1 (ko) 카메라 렌즈 정보를 포함한 360도 비디오를 송수신하는 방법 및 그 장치
WO2020071738A1 (en) Method for transmitting video, apparatus for transmitting video, method for receiving video, and apparatus for receiving video
WO2021210763A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2020027349A1 (ko) 다중 뷰포인트 기반 360 비디오 처리 방법 및 그 장치
WO2019245303A1 (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
WO2020189903A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법

Legal Events

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

Ref document number: 19857723

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19857723

Country of ref document: EP

Kind code of ref document: A1