WO2015060508A1 - Video encoding/decoding method and apparatus - Google Patents
Video encoding/decoding method and apparatus Download PDFInfo
- Publication number
- WO2015060508A1 WO2015060508A1 PCT/KR2014/003517 KR2014003517W WO2015060508A1 WO 2015060508 A1 WO2015060508 A1 WO 2015060508A1 KR 2014003517 W KR2014003517 W KR 2014003517W WO 2015060508 A1 WO2015060508 A1 WO 2015060508A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- merge motion
- motion candidate
- candidate
- merge
- list
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
Definitions
- the present invention relates to a video encoding / decoding method and apparatus, and more particularly, to a method and apparatus for constructing a merge motion candidate list for 3D video coding.
- 3D video vividly provides a user with a three-dimensional effect as seen and felt in the real world through a three-dimensional display device.
- Related work includes three-dimensional work in The Joint Collaborative Team on 3D Video Coding Extension Development (JCT-3V), a joint standardization group of ISO / IEC's Moving Picture Experts Group (MPEG) and ITU-T's Video Coding Experts Group (VCEG).
- JCT-3V Joint Collaborative Team on 3D Video Coding Extension Development
- MPEG Moving Picture Experts Group
- VCEG ITU-T's Video Coding Experts Group
- the video standard is in progress.
- the 3D video standard uses an advanced data format that can support the playback of autostereoscopic images as well as stereoscopic images using a texture view and its depth map. Contains standards for technology.
- the present invention provides an image encoding / decoding method and apparatus capable of improving image encoding / decoding efficiency.
- the present invention provides a 3D video encoding / decoding method and apparatus capable of improving encoding / decoding efficiency.
- the present invention provides a method and apparatus for constructing a merge motion candidate list in 3D video encoding / decoding.
- a video decoding method including a plurality of views may include constructing a merge motion candidate list by deriving a basic merge motion candidate for a current prediction unit (PU), and when the current PU is a depth map or a dependent view, extended merging for the current PU Deriving a motion candidate and adding the extended merge motion candidate to the merge motion candidate list.
- PU current prediction unit
- the extended merge motion candidate when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, the extended merge motion candidate may be added to the merge motion candidate list. .
- a video decoding apparatus including a plurality of views.
- the video decoding apparatus derives a basic merge motion list constructing module for deriving a basic merge motion candidate for a current prediction unit (PU) and configures a merge motion candidate list, and when the current PU is a depth map or a dependent view, the current
- An additional merge motion list construction module for deriving an extended merge motion candidate for a PU and adding the extended merge motion candidate to the merge motion candidate list.
- the additional merge motion list construction module may add the extended merge motion candidate to the merge motion candidate list when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list.
- a video encoding method including a plurality of views may include constructing a merge motion candidate list by deriving a basic merge motion candidate for a current prediction unit (PU), and when the current PU is a depth map or a dependent view, extended merge for the current PU Deriving a motion candidate and adding the extended merge motion candidate to the merge motion candidate list.
- PU current prediction unit
- the extended merge motion candidate when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, the extended merge motion candidate may be added to the merge motion candidate list. .
- a video encoding apparatus including a plurality of views.
- the video encoding apparatus derives a basic merge motion list constructing module for deriving a basic merge motion candidate for a current prediction unit (PU) and configures a merge motion candidate list, and when the current PU is a depth map or a dependent view, the current
- An additional merge motion list construction module for deriving an extended merge motion candidate for a PU and adding the extended merge motion candidate to the merge motion candidate list.
- the additional merge motion list construction module may add the extended merge motion candidate to the merge motion candidate list when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list.
- Modules used for encoding normal images for independent views (view 0) that provide backward compatibility are dependent views (view 1) and view 2 (view 2).
- Implementation complexity can be reduced by applying the same to the general image and the depth maps for the C).
- the coding efficiency may be improved by additionally applying the partial encoder to the general image and the depth maps of the dependent view (View 1 and View 2).
- 1 is an example schematically showing the basic structure and data format of a 3D video system.
- FIG. 2 is a diagram illustrating an example of an actual image and a depth map image of a “balloons” image.
- 3 is an example illustrating the structure of inter view prediction in a 3D video codec.
- FIG. 4 illustrates an example of a process of encoding / decoding a texture view and a depth view in a 3D video encoder / decoder.
- FIG. 5 shows an example of a prediction structure of a 3D video codec.
- FIG. 6 is a schematic structural diagram of an encoder of a 3D video codec.
- FIG. 7 is a diagram illustrating a merge motion method used in an HEVC-based 3D video codec (3D-HEVC).
- FIG. 8 shows an example of neighboring blocks used to construct a merge motion list for a current block.
- FIG. 9 is a diagram illustrating an example of a hardware implementation of a method of constructing a merge motion candidate list.
- FIG. 10 is a diagram schematically illustrating a 3D video codec according to an embodiment of the present invention.
- FIG. 11 is a conceptual diagram schematically illustrating a merge motion method according to an embodiment of the present invention.
- FIG. 12 is a diagram illustrating an example of hardware implementation of the merge motion method of FIG. 11 according to an embodiment of the present invention.
- FIG. 13 is a conceptual diagram illustrating a method of constructing a merge motion candidate list of FIGS. 11 and 12 according to an embodiment of the present invention.
- FIG. 14 illustrates a method of constructing an extended merge motion candidate list according to an embodiment of the present invention.
- 15 is a diagram for describing a method of constructing an extended merge motion candidate list according to another embodiment of the present invention.
- 16 is a flowchart schematically illustrating a method of constructing a merge motion candidate list according to an embodiment of the present invention.
- 17A to 17F are flowcharts illustrating a method of adding an extended merge motion candidate to a merge motion candidate list according to an embodiment of the present invention.
- FIG. 18 is a flowchart schematically illustrating a method of constructing a merge motion candidate list in video encoding / decoding including a plurality of viewpoints according to an embodiment of the present invention.
- first and second may be used to describe various configurations, but the configurations are not limited by the terms. The terms are used to distinguish one configuration from another.
- first configuration may be referred to as the second configuration, and similarly, the second configuration may also be referred to as the first configuration.
- each component shown in the embodiments of the present invention are independently shown to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit.
- each component is listed as a component for convenience of description, and at least two of the components may form one component, or one component may be divided into a plurality of components to perform a function.
- the integrated and separated embodiments of each component are also included in the scope of the present invention without departing from the spirit of the present invention.
- the components may not be essential components for performing essential functions in the present invention, but may be optional components for improving performance.
- the present invention can be implemented including only the components essential for implementing the essentials of the present invention except for the components used for improving performance, and the structure including only the essential components except for the optional components used for improving performance. Also included in the scope of the present invention.
- FIG. 1 is an example schematically showing the basic structure and data format of a 3D video system.
- the 3D video system of FIG. 1 may be a basic 3D video system under consideration in the 3D video standard.
- a 3D video (3D video) system decodes a video content received from a sender and a transmitter that generates a multi-view video content, and thus generates a multiview video. It may include a receiver for providing a.
- the transmitter may generate video information using a stereo camera and a multiview camera, and generate a depth map or a depth view using the depth camera.
- the transmitter may convert a 2D image into a 3D image using a converter.
- the transmitter may generate image content of an N (N ⁇ 2) view using the generated video information, the depth map, and the like.
- the image content of the N view may include video information of the N view, depth-map information thereof, and additional information related to a camera.
- the video content of N views may be compressed using a multiview video encoding method in a 3D video encoder, and the compressed video content (bitstream) may be transmitted to a terminal on the receiving side through a network.
- the receiving side may decode the received bitstream by using a multiview video decoding method in a video decoder (eg, a 3D video decoder, a stereo video decoder, a 2D video decoder, etc.) to restore an image of N views.
- a video decoder eg, a 3D video decoder, a stereo video decoder, a 2D video decoder, etc.
- the reconstructed N-view image may be generated as virtual view images of N or more views through a depth-image-based rendering (DIBR) process.
- DIBR depth-image-based rendering
- the generated virtual viewpoint images of the N viewpoints or more are reproduced for various stereoscopic display devices (for example, N-view displays, stereo displays, 2D displays, etc.) to provide a user with a three-dimensional image.
- FIG. 2 is a diagram illustrating an example of an actual image and a depth map image of a “balloons” image.
- the depth map is used to generate a virtual viewpoint image, and represents the distance between the camera and the real object (depth information corresponding to each pixel at the same resolution as the actual image) in a certain number of bits in the real world. .
- FIG. 2 (a) shows “balloons” images being used in the 3D video coding standard of MPEG, which is an international standardization organization.
- FIG. 2B illustrates a depth map image of the “balloons” image shown in FIG. 2A.
- the depth map image illustrated in FIG. 2B expresses depth information displayed on the screen at 8 bits per pixel.
- a method of encoding a real image and its depth map may be, for example, using H.264 / AVC (MPEG-4 Part 10 Advanced Video Coding), or moving picture experts group (MPEG) and video coding experts group (VCEG). You can also use the HEVC (High Efficiency Video Coding) international video standard jointly standardized by H.264 / AVC (MPEG-4 Part 10 Advanced Video Coding), or moving picture experts group (MPEG) and video coding experts group (VCEG). You can also use the HEVC (High Efficiency Video Coding) international video standard jointly standardized by H.264 / AVC (MPEG-4 Part 10 Advanced Video Coding), or moving picture experts group (MPEG) and video coding experts group (VCEG). You can also use the HEVC (High Efficiency Video Coding) international video standard jointly standardized by H.264 / AVC (MPEG-4 Part 10 Advanced Video Coding), or moving picture experts group (MPEG) and video coding experts group (VCEG). You can also use the HEVC (High Efficiency Video Coding) international video standard jointly
- the real image and its depth map may be images obtained from not only one camera but also several cameras. Images obtained from multiple cameras may be encoded independently and may be encoded using a general two-dimensional video encoding codec. In addition, since images obtained from multiple cameras have correlations between viewpoints, images obtained from multiple cameras may be encoded using different inter-view predictions to increase encoding efficiency.
- 3 is an example illustrating the structure of inter view prediction in a 3D video codec.
- View 1 is an image obtained from a camera located on the left side with respect to View 0, and View 2 is on the right side with respect to View 0. Image obtained from the camera located.
- view 1 and view 2 perform inter-view prediction using view 0 as a reference image, and the encoding order is view 1 and view 2.
- View 0 should be coded before.
- view 0 is called an independent view because it may be independently encoded regardless of other views.
- view 1 and view 2 are referred to as dependent views because they are encoded using view 0 as a reference image.
- Independent viewpoint images may be encoded using a general two-dimensional video codec.
- the dependent view image since the dependent view image needs to perform inter-view prediction, it may be encoded using a 3D video codec including an inter-view prediction process.
- the view 1 and the view 2 may be encoded using the depth map.
- the real image and the depth map thereof when the real image and the depth map thereof are encoded, the real image and the depth map may be encoded / decoded independently of each other.
- the real image and the depth map when the real image and the depth map are encoded, the real image and the depth map may be encoded / decoded depending on each other as shown in FIG. 4.
- FIG. 4 illustrates an example of a process of encoding / decoding a texture view and a depth view in a 3D video encoder / decoder.
- the 3D video encoder may include a real image encoder for encoding a texture view and a depth map encoder for encoding a depth view. .
- the real image encoder may encode the real image using a depth map that is already encoded by the depth map encoder.
- the depth map encoder may encode the depth map by using the real image that is already encoded by the real image encoder.
- the 3D video decoder may include a real image decoder for decoding an actual image and a depth map decoder for decoding a depth map.
- the real image decoder may decode the real image using the depth map already decoded by the depth map decoder.
- the depth map decoder may decode the depth map using the real image that is already decoded by the real image decoder.
- FIG. 5 shows an example of a prediction structure of a 3D video codec.
- FIG. 5 is a diagram illustrating an encoding prediction structure for encoding a real image obtained from three cameras and a depth map of the real image for convenience of description.
- T0, T1, and T2 three real images acquired by three cameras are represented by T0, T1, and T2 according to viewpoints
- three depth maps of the same position as the actual image are represented by D0, D1, and D2 according to viewpoints.
- T0 and D0 are images acquired at View
- T1 and D1 are images acquired at View 1
- T2 and D2 are images acquired at View 2.
- Each picture is divided into an I picture (Intra Picture), a P picture (Uni-prediction Picture), and a B picture (Bi-prediction Picture) according to an encoding type, and may be encoded according to an encoding type of each picture.
- the I picture encodes the image itself without inter-picture prediction
- the P picture predicts and encodes the picture using the reference picture only in the forward direction
- the B picture encodes the picture inter prediction using the reference picture in both the forward and reverse directions.
- Arrows in FIG. 5 indicate prediction directions. That is, the real image and its depth map may be encoded / decoded depending on the prediction direction.
- Temporal prediction is a prediction method using temporal correlation within the same viewpoint
- inter-view prediction is a prediction method using inter-view correlation at adjacent viewpoints. Such temporal prediction and inter-view prediction may be mixed with each other in a picture.
- the current block refers to a block in which the current prediction is performed in the real image.
- the motion information may mean only a motion vector or may mean a motion vector, a reference picture number, unidirectional prediction, bidirectional prediction, inter-view prediction, temporal prediction, or another prediction.
- FIG. 6 is a schematic structural diagram of an encoder of a 3D video codec.
- the 3D video codec 600 receives and encodes different viewpoint images (eg, view 0, view 1, and view 2) as inputs.
- the encoded integrated bitstream may be output.
- the images may include not only a texture view but also a depth view.
- the 3D video codec 600 may encode input images by different encoders according to view information (View ID information).
- the image of view 0 may be encoded by the existing 2D video codec for backward compatibility, and thus may be encoded by the base layer encoder 610.
- Images of View 1 and View 2 must be encoded with a 3D video codec that includes an inter-view prediction algorithm and an algorithm using the correlation between the general image and the depth map, and thus an enhancement layer. It may be encoded by the encoder 620 (view 1 or view 2 encoder).
- the encoded information may be encoded by using the encoded information of the general image, it may be encoded by the enhancement layer encoder 620. Therefore, a more complicated encoder is required when encoding the images of the view 1 and the view 2 than the encoding of the view 0 and the view of the base layer. More complex encoders are required when encoding depth maps than when encoding normal images.
- a merge or merge motion method is used as one of encoding methods of motion information used for inter prediction during image encoding / decoding.
- the enhancement layer uses an improved merge motion method by modifying the merge motion method in the base layer.
- FIG. 7 is a diagram illustrating a merge motion method used in an HEVC-based 3D video codec (3D-HEVC).
- a method 710 of merging motion configuration for view 0 and other remaining views may be used.
- the merge motion configuration method 720 is performed separately from each other.
- the 3D-HEVC 700 determines whether the input image is a normal image or depth information. Based on the information (Texture / Depth information) whether it is a map image and the view information (ViewID information) of the input image, the merging motion configuration method 710 for the view 0 (View 0) and the other views (view 1 One of the method 720 for configuring merge motion for View 1) and View 2) may be selected.
- the 3D-HEVC 700 may output a merge motion candidate list for the current PU using the selected merge motion configuration method.
- the current PU refers to a current block in which prediction within the current image is performed to encode / decode the current image.
- the general image for view 0 constructs a merge motion candidate list using a merge motion configuration method for the base layer for backward compatibility.
- the general image and the depth map of the view 1 and the view 2 constitute a merge motion candidate list using the merge motion configuration method for the enhancement layer.
- the merge motion construction method for the enhancement layer is performed by adding a new candidate or modifying the candidate list order to the merge motion construction method for the base layer. That is, as shown in FIG. 7, the merge motion configuration method for the enhancement layer (the other views (view 1 and view 2) and the depth map) includes the merge motion for the base layer. Configuration methods are included.
- the merge motion configuration method for the enhancement layer is more complicated than the merge motion configuration for the base layer, and the computational complexity is large.
- FIG. 8 shows an example of neighboring blocks used to construct a merge motion list for a current block.
- the merge motion method refers to a method of using motion information of a neighboring block of the current block as motion information (for example, a motion vector, a reference picture list, a reference picture index, etc.) of the current block (current PU).
- motion information for example, a motion vector, a reference picture list, a reference picture index, etc.
- a merge motion candidate list for the current block is constructed based on the motion information of the block.
- the neighboring blocks correspond to neighboring blocks A, B, C, D, and E, which are spatially adjacent to the current block, and temporally with the current block.
- a candidate block at the same position refers to a block at the same position in a co-located picture corresponding to the current picture including the current block in time. If the H block in the picture at the same position is available, the H block is determined as a candidate block at the same position. If the H block is not available, the M block in the picture at the same position is determined as the candidate block at the same position.
- motion information of a candidate block (H or M) at the same position as neighboring blocks A, B, C, D, and E constitutes a merge motion candidate list of the current block. It is determined whether it can be used as a merge candidate, and the motion information of the next available block is determined as a merge motion candidate.
- the merge motion candidate may be added to the merge motion candidate list.
- FIG. 9 is a diagram illustrating an example of a hardware implementation of a method of constructing a merge motion candidate list.
- input parameters for constructing a merge motion list used in a general image for view 0, and general image and depth information for views 1 and 2 The input parameters for constructing the merge motion list used in the map are the same. The only difference is the input parameters (“Additional Motion F” and “Additional Motion G”) for constructing the merged motion list used in the normal image and depth maps for View 1 and View 2. Is added.
- the parts constituting the merge motion candidate list are changed due to the added motion information. That is, in order to include the added motion information in the merge motion candidate list (in order to increase the encoding efficiency), the merge motion list for the general image and the depth map for the view 1 and the view 2
- the new configuration module must be implemented. This can increase the implementation complexity of the hardware.
- the implementation complexity and calculation of the encoding algorithm and the video codec for the enhancement layer (for example, the general image and the depth map of the view 1 and the view 2)
- the "merge motion candidate list construction" module for the base layer (general image for view 0), which is already implemented in the form of a hardware chip, is reused as it is, and thus an enhancement layer (for example, view 1
- an enhancement layer for example, view 1
- a consumer having an encoder / decoder (specifically, a "merged motion candidate list construction” module) module for a base layer used for two-dimensional video service wants to receive three-dimensional video service, only an additional module ( Specifically, attaching only a "merged motion candidate list construction" module for the enhancement layer enables easy 3D video service.
- an encoder / decoder specifically, a "merged motion candidate list construction” module
- FIG. 10 is a diagram schematically illustrating a 3D video codec according to an embodiment of the present invention.
- the 3D video codec 1000 receives and encodes different viewpoint images (eg, view 0, view 1, and view 2) as inputs.
- different viewpoint images eg, view 0, view 1, and view 2
- one encoded bitstream may be output.
- the images may include not only a texture view but also a depth view.
- the images may include an image of an independent view that may be independently encoded regardless of another viewpoint, and an image of a dependent view that is encoded using an image of an independent viewpoint as a reference image.
- view 0 may be an independent view
- view 1 and view 2 may be dependent views encoded with reference to view 0.
- FIG. 1
- the 3D video codec 1000 may include an encoder 1010 capable of encoding a general image and a depth map for all views (eg, view 0, view 1, and view 2).
- the encoder 1010 capable of encoding a general image and a depth map for all viewpoints is MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, H.264 / AVC, VC-1, AVS, KTA. , HEVC (H.265 / HEVC), and the like.
- the 3D video codec 1000 may include a partial encoder 1020 to increase encoding efficiency with respect to the general image and the depth map for the dependent view instead of the independent view.
- the partial encoder 1020 may encode a general image and a depth map of views 1 and 2, or may encode depth maps of all views.
- the 3D video codec 1000 may include a multiplexer 1030 for multiplexing the images encoded by the encoders 1010 and 1020.
- the multiplexer 1030 may generate a bitstream of a general image of view 0 and a bitstream of general image and depth maps of other views (view 1 and view 2). Multiplexing may be performed to output one bitstream.
- the 3D video codec 1000 is a module used for encoding a general image with respect to an independent viewpoint (eg, View 0) providing backward compatibility ( 1010 may be applied to the general image and the depth maps of the dependent view (eg, View 1 and View 2) as it is, thereby reducing implementation complexity.
- the 3D video codec 1000 according to an exemplary embodiment of the present invention may perform partial encoders on general image and depth maps of dependent viewpoints (eg, View 1 and View 2). By further applying 1020, it is possible to improve coding efficiency.
- the 3D video codec described with reference to FIG. 10 may be applied to the entire encoding / decoding process, and may be applied to each step of encoding / decoding.
- FIG. 11 is a conceptual diagram schematically illustrating a merge motion method according to an embodiment of the present invention.
- the merge motion method illustrated in FIG. 11 may be performed by an HEVC-based 3D video codec (3D-HEVC), and 3D-HEVC may be implemented based on the 3D video codec of FIG. 10 described above.
- 3D-HEVC 3D-based 3D video codec
- the merge motion method derives a spatial merge motion candidate and a temporal merge motion candidate for the current PU, and information about the current PU (eg, the current PU). Additional merge motion candidates may be additionally derived based on the view information of the UE, image type information of the current PU, etc.), and a merge candidate list for the current PU may be configured based on the derived merge motion candidates. have.
- an input includes information on whether current PU information (or current image information), a current PU image is a normal image, or a depth map image. / Depth information), view information of the current PU (ViewID information), and an output is a merge motion candidate list for the current PU.
- a step of “constructing a basic merge motion list” 1110 is basically performed on the current PU to output a “basic merge motion candidate list”.
- the “basic merge motion list construction” 1110 may use the merge motion candidate list construction method in HEVC as it is.
- “additional merge motion” is performed.
- List construction ”1120 may be additionally performed.
- an input is a “default merge motion candidate list” output in step “constituting a basic merge motion list” 1110, and an output is an extended merge motion candidate list.
- the “additional merge motion list construction” step 1120 may be performed on the general image and the depth maps for the dependent viewpoints (eg, View 1 and View 2).
- FIG. 12 is a diagram illustrating an example of hardware implementation of the merge motion method of FIG. 11 according to an embodiment of the present invention.
- an apparatus (hereinafter, referred to as a merge movement apparatus) 1200 that performs a merge movement method according to an embodiment of the present invention may include a basic merge movement list construction module 1210 and an additional merge movement list construction module 1220. ).
- Inputs of the merge motion device 1200 are spatial merge motion candidates, temporal merge motion candidates, and additional merge motion candidates.
- the output of the merge motion device 1200 is a basic merge motion candidate list in the case of a normal image for an independent view, and an extended merge motion candidate list in the case of a normal image and a depth map for a dependent view.
- the independent view refers to a view that can be encoded independently regardless of other views, and may be a base view.
- the dependent view refers to a view that is encoded by referring to an independent view.
- the independent view may be a view 0, and the dependent view is described as including a view 1 and a view 2.
- the basic merge motion list construction module 1210 may construct a basic merge motion candidate list by deriving a spatial merge motion candidate and a temporal merge motion candidate for the current PU.
- the spatial merge motion candidate may be derived from neighboring blocks A, B, C, D, E spatially adjacent to the current PU, as shown in FIG.
- the basic merge motion list constructing module 1210 determines whether neighboring blocks A, B, C, D, and E are available, and uses the motion information of the available neighboring blocks for the spatial merge motion candidate for the current PU. Can be determined. At this time, when determining whether the neighboring blocks (A, B, C, D, E) are available, whether or not the availability of the neighboring blocks (A, B, C, D, E) in a predetermined order or in any order You can judge. For example, it may proceed in the order of A, B, C, D, and E.
- the temporal merge motion candidate is a co-located block (col block) (H, M) in a co-located picture (col picture) with respect to the current PU.
- the block H of the same position may be a PU block located at the bottom right based on the block X ′ of the position corresponding to the current PU in the picture of the same position.
- the block M of the same position may be a PU block located at the center of the X ′ block based on the block X ′ of the position corresponding to the current PU in the picture of the same position.
- the basic merge motion list construction module 1210 may determine whether the blocks H and M at the same location are available and determine the motion information of the blocks at the same location as the temporal merge motion candidate for the current PU. In this case, the order of determining availability of the blocks H and M in the same position may be in the order of H blocks, M blocks, or vice versa.
- the additional merge motion list construction module 1220 may determine whether the current PU image is a normal image or a depth map image (Texture / Depth information), and a current PU based on view information (ViewID information) of the current PU. Additional merge motion candidates may be derived to construct an extended merge motion candidate list.
- the additional merge motion list construction module 1220 additionally relies on the current PU.
- a process of constructing a merge motion candidate list for the general image and the depth map for the in-view may be performed.
- the inputs of the additional merge motion list constructing module 1220 are the basic merge motion candidate list configured by the basic merge motion list constructing module 1210 and the additional merge motion candidates F and G.
- the output of the additional merge motion list construction module 1220 is an extended merge motion candidate list.
- the merge motion device can reduce the implementation complexity of the hardware by implementing only additional partial modules without implementing new modules. That is, the "merge motion candidate list construction" module for the base layer (for example, the general image of the view 0), which has already been implemented in the form of a hardware chip, is reused as it is and the enhancement layer (for example, the view 1 (View 1). ) And the complexity of hardware implementation can be reduced.
- FIG. 13 is a conceptual diagram illustrating a method of constructing a merge motion candidate list of FIGS. 11 and 12 according to an embodiment of the present invention.
- the method of constructing the merge motion candidate list of FIG. 13 may be performed by the 3D video codec of FIG. 10 or the merge motion apparatus of FIG. 12.
- an input includes current PU information and information on whether a current PU image is a normal image or a depth map image (Texture / Depth information). It is view information (ViewID information) for the current PU, and the output is a merge motion candidate list for the current PU.
- a basic merge motion candidate list 1310 is configured for the current PU.
- the basic merge motion candidate list may use the merge motion candidate list construction method in HEVC as it is, and may be configured based on the spatial merge motion candidate and the temporal merge motion candidate for the current PU as described above.
- an extended merge motion candidate list 1320 is configured based on information on whether the current PU image is a normal image or a depth map image (Texture / Depth information) and view information on the current PU image (ViewID information).
- the extended merge motion candidate list may be configured for general image and depth maps for dependent viewpoints (eg, view 1 and view 2).
- the additional merge motion candidate list may be configured. Candidates may be added.
- a basic merge motion candidate list may be output. Otherwise, when the current PU is a general image and depth maps for a dependent view (eg, view 1 and view 2), an extended merge motion candidate list may be output.
- the number of candidates in the extended merge motion candidate list may be larger than the number of candidates in the basic merge motion candidate list.
- FIG. 14 illustrates a method of constructing an extended merge motion candidate list according to an embodiment of the present invention.
- an extended merge motion candidate list may include an additional merge motion candidate (eg, motion information F), which is additional motion information, in a first index (or arbitrary) of the extended merge motion candidate list. Can be inserted into the item corresponding to the position of.
- additional merge motion candidate eg, motion information F
- the additional merge motion candidate (eg, motion information F) and the first merge motion candidate (eg, motion information A) of the basic merge motion candidate list are compared with each other, and the two candidates are not the same. If not, an additional merge motion candidate (eg, motion information F) may be inserted into the first item of the extended merge motion candidate list, and vice versa. For example, when comparing motion information of two candidates (eg, motion information F and A), if the difference between the motion vectors of the two candidates is within an arbitrary threshold, an additional merged motion candidate (eg, motion information F) is selected. It may not be inserted into the extended merge motion candidate list, and vice versa. Alternatively, when the reference images of the two candidates are not the same, an additional merge motion candidate (eg, motion information F) may be inserted into the extended merge motion candidate list, and vice versa.
- 15 is a diagram for describing a method of constructing an extended merge motion candidate list according to another embodiment of the present invention.
- the extended merge motion candidate list inserts additional merge motion candidate (eg, motion information F), which is additional motion information, into a first item of the extended merge motion candidate list, and another An additional merge motion candidate (eg, motion information G), which is additional motion information, may be inserted into a third item (or an item corresponding to an arbitrary position) of the extended merge motion candidate list.
- additional merge motion candidate eg, motion information F
- motion information G additional motion candidate
- the original items (first item and third item) in the basic merge motion candidate list and the additional merge motion candidates are compared with each other, and the two candidates (eg, If motion information A and F or motion information C and G) are not the same, additional merge motion candidates may be inserted into the first and third items of the extended merge motion candidate list, and vice versa.
- additional merge motion candidates may be inserted into the extended merge motion candidate list, and vice versa.
- the basic encoder (or basic module) is applied to the general image and depth maps for view 1 and view 2 as well as the general image for view 0. can do.
- the base encoder may be applied only to small blocks of high complexity (eg, 8x8 units or arbitrary block sizes).
- the data is encoded using a basic encoder (or a basic module) below the small block size and larger than the small block size.
- a basic encoder or base module
- a partial encoder or extension module.
- the basic encoder or basic module
- the partial encoder or the extension module may configure the “additional merge motion list” in FIGS. 11 and 13. Step can be performed.
- FIG. 16 is a flowchart schematically illustrating a method of constructing a merge motion candidate list according to an embodiment of the present invention.
- the method of FIG. 16 may be performed by the apparatus shown in FIGS. 10 and 12 described above, or may be performed by applying to 3D-HEVC.
- the method of FIG. 16 is described as being performed by the merge motion device.
- the merge motion apparatus adds basic merge motion candidates to the merge motion candidate list for the current PU (S1600).
- the basic merge motion candidates may include a spatial merge motion candidate and a temporal merge motion candidate for the current PU as described above, and may be candidates for a general image of an independent view.
- the merge motion device determines whether the current picture including the current PU is a depth map or a dependent view (S1610).
- the merge motion device adds an extended merge motion candidate to the merge motion candidate list (S1620).
- the extended merge motion candidates may be candidates for a depth map or an image (normal image and depth map) of a dependent view.
- Tables 1-6 are Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16, currently being standardized jointly by the Moving Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG). WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11).
- Table 1 shows an example of the input and output of the process including the addition of the existing extended merge motion candidate
- Table 2 shows an example of the input and output of the process including the addition of the extended merge motion candidate according to an embodiment of the present invention Indicates.
- a merge motion candidate list (mergCandList) and a flag (availableFlagN) indicating whether a default merge motion candidate has been added are used as additional inputs. .
- N is A0, A1, B0, B1, B2, meaning that it is a candidate for left, above, above-right, bottom-left, above-left positions.
- B merge motion candidate list
- basic merge motion candidates are stored in an arbitrary order according to a conventional method. For example, the left candidate, the top candidate, the top right candidate, the bottom left candidate, the top left candidate, the temporal (prediction) candidate, the combined bi-predictive candidate, and the candidate with zero motion may be stored.
- the output is a merge motion candidate list in which additional work on extended merge motion candidates is completed.
- Table 3 shows an existing extended merge motion candidate addition process
- Table 4 shows an extended merge motion candidate addition process according to an embodiment of the present invention.
- Table 4 processes the list to which the basic merge motion candidates are already added, and thus processes only the processes for the extended merge motion candidates. Therefore, in the existing 3D-HEVC, it can be omitted so that the processing for the merge motion candidates used in the HEVC is not repeatedly implemented.
- 17A, 17B, 17C, 17D, 17E, and 17F are flowcharts illustrating a method of adding an extended merge motion candidate to a merge motion candidate list according to an embodiment of the present invention.
- 17A to 17F are constructed based on the process of adding the extended merge motion candidate of Table 4 described above.
- the method of FIGS. 17A to 17F may be performed by the apparatus shown in FIGS. 10 and 12 described above, or may be applied to 3D-HEVC.
- the flag iv_mv_pred_flag [nuh_layer_id] means whether the current PU can attempt inter view prediction. If the flag iv_mv_pred_flag [nuh_layer_id] is 1, an inter-view merge candidate (IvMC), an inter-view disparity merge candidate (IvDC), and a shifted inter-view merge candidate (shifted inter-view merge)
- IvMCShift an inter-view merge candidate
- the flag view_synthesis_pred_flag [nuh_layer_id] indicates whether the current PU can try view synthesis prediction. If the flag view_synthesis_pred_flag [nuh_layer_id] is 1, whether or not the inter-view synthesis merge candidate is available is stored in the flag availableFlagVSP, and if available, the motion information is derived.
- the flag mpi_flag [nuh_layer_id] indicates whether the current PU is a depth map and can attempt motion prediction from a texture block. If the flag mpi_flag [nuh_layer_id] is 1, whether the texture merge candidate is available or not is stored in the flag availableFlagT, and if available, the motion information is derived.
- merge motion candidate list consisting of only basic merge motion candidates and the inter-view prediction flag (mergeCandIsVspFlag) for each candidate are reconstructed as follows.
- numMergeCand is the total number of merge motion candidates
- numA1B1B0 is the number of candidates corresponding to the left, upper, and right-right positions among the default merge motion candidates
- numA0B2 is the bottom left of the default merge motion candidates.
- -left the number of candidates corresponding to the above-left position.
- VSP View Synthesis Prediction
- c It is determined whether the award candidate B1 is available. If phase candidates are available, numA1B1B0 is increased by one. In addition, it stores as a flag whether the prize candidate used the VSP.
- d It is determined whether the idol candidate B0 is available. If the idol candidate is available, numA1B1B0 is increased by one. In addition, it stores as a flag whether the idol candidate used the VSP.
- f It is determined whether the upper left candidate B2 is available. If the top left candidate is available, numA0B2 is increased by one. It also stores as a flag whether the upper left candidate used the VSP.
- pruneFlagA1 is set to 1.
- pruneFlagB1 is set to one.
- pruneFlagA1 and pruneFlagB1 are both 0, it creates a new space at numMergeCand position in the list. In this case, creating a new space means moving all values from the numMergeCand position in the list one space to the right.
- pruneFlagA1 is set to 1.
- pruneFlagB1 is set to one.
- pruneFlagT is set to 1.
- pruneFlagA1, pruneFlagB1, and pruneFlagT are all zeros, a new space is created at the numMergeCand position in the list, and addIvMC is set to one.
- addIvMC is 1, set the first value in the list as a texture candidate and increment numMergeCand by one.
- the motion information of the disparity merging candidate (IvDC) is compared with the available left and top candidates. As a result, if the motion information of the left candidate and the top candidate is different from each other, a new space is created at the numMergeCand position of the merge list and then a parallax merge candidate (IvDC) is added.
- numMergeCand is less than 5 + the number of additional merge candidates (NumExtraMergeCand), then the start synthesis merge candidates are added to the list. Add and increase numMergeCand3DV, numMergeCand by 1.
- inter-view merge candidate (IvMC) If the inter-view merge candidate (IvMC) is available, compare the inter-view merge candidate with the moved inter-view merge candidate (IvMCShift), and if they are different, create a new space at the numMergeCand position in the list, and then move the inter-view merge candidate. Add
- the complexity when comparing the inter-view merge candidate and the disparity merge candidate with existing candidates in the list, the complexity may be reduced by using a method of comparing the candidates with some of them without comparing them with all the candidates in the list. For example, only the left candidate and the top candidate may be used for comparison.
- Table 5 shows an example of a process of deriving an existing mixed bidirectional prediction candidate
- Table 6 shows an example of reusing a process of deriving a HEVC mixed bidirectional prediction candidate in 3D-HEVC according to an embodiment of the present invention.
- Table 7 shows the results of the coding efficiency and coding time comparison between the existing method (method of Table 5) and the method proposed in the present invention (method of Table 6).
- the comparison result shows that the bitrate increase is less than 0.1% compared to the conventional method. It shows coding efficiency.
- the above-described method may use High Efficiency Video Coding (HEVC), which is currently being jointly standardized by a Moving Picture Experts Group (MPEG) and a Video Coding Experts Group (VCEG). Therefore, the above-described method may vary the application range according to the block size, the coding unit depth (CU) depth, or the transform unit (TU) depth, as shown in the example of Table 8.
- the variable that determines the coverage i.e., size or depth information
- Method A) Applies only to a depth above a given depth
- Method B) Applies only to a given depth below
- Method C) Applies only to a given depth There may be a way.
- the methods of the present invention may be represented by using an arbitrary flag, or may be represented by signaling a value greater than one of the maximum value of the CU depth as a CU depth value indicating an application range. have.
- whether the above-described methods of the present invention are applied may be included in the bitstream and signaled.
- the information on whether the above-described methods of the present invention are applied may be signaled by being included in a syntax of a sequence parameter set (SPS), a picture parameter set (PPS), and a slice header.
- SPS sequence parameter set
- PPS picture parameter set
- slice header a syntax of a slice header
- Table 9 shows an example of a method of signaling using SPS whether or not the above-described methods of the present invention are applied.
- Table 10 shows an example of a method of signaling using PPS whether or not the above-described methods of the present invention are applied.
- Table 11 shows an example of a method of signaling using a slice header whether or not the above-described methods of the present invention are applied.
- Table 12 shows another example of a method of signaling using a slice header whether or not the above-described methods of the present invention are applied.
- “reuse_enabled_flag” indicates whether or not the above-described methods of the present invention are applied.
- “reuse_enabled_flag” becomes “1” when the above-described methods of the present invention are applied, and “reuse_enabled_flag” becomes “0” when the above-described methods of the present invention are not applied. The reverse is also possible.
- Reuse_disabled_info is a syntax that is activated when the above-described methods of the present invention are applied (or “reuse_enabled_flag” is true). This is the depth of a CU (or the size of a CU or the size or sub-block of a CU). Whether or not the above-described methods of the present invention are applied according to the size of the macro block or the size of the block).
- the method of the present specification may be applied only to a P picture (or a frame), and the method of the present specification may be applied only to a B picture (or a frame).
- the above-described methods of the present invention can be applied not only to the 3D video codec but also to the scalable video codec.
- the encoding / decoding module used in the base layer of the scalable video codec may be applied to the enhancement layer as it is, and then the enhancement layer may be encoded / decoded using the partial encoding / decoding module.
- apply the basic merge motion list module used in the base layer of the scalable video codec to the enhancement layer and then construct the basic merge motion candidate list, and then additionally use the additional merge motion list module.
- an "extended merge motion candidate list" for the enhancement layer can be constructed.
- FIG. 18 is a flowchart schematically illustrating a method of constructing a merge motion candidate list in video encoding / decoding including a plurality of viewpoints according to an embodiment of the present invention.
- the method of FIG. 18 may be performed by the apparatus shown in FIGS. 10 and 12 described above, or may be applied to 3D-HEVC. For convenience of explanation, the method of FIG. 18 is described as being performed by the merge motion device.
- the merge motion apparatus derives a basic merge motion candidate for the current PU and constructs a merge motion candidate list based on the derived basic merge motion candidate (S1800).
- the basic merge motion candidate may include a spatial merge motion candidate and a temporal merge motion candidate for the current PU.
- the merge motion device includes a left block, an above block, an right-right block, a bottom-left block, and located spatially adjacent to a current PU;
- a spatial merge motion candidate may be derived from at least one of the above-left blocks.
- the merge motion device then merges temporally from a co-located block (eg, bottom right block, center block) in a co-located picture for the current PU.
- the motion candidate can be derived.
- the merge motion apparatus may configure the merge motion candidate list based on availability of the spatial merge motion candidate and the temporal merge motion candidate.
- the merge motion device derives an extended merge motion candidate for the current PU (S1810).
- the extended merge motion candidate refers to a merge motion candidate used for prediction of the dependent view image or the depth map image.
- the extended merge motion candidate may include at least one of an inter-view merge candidate (IvMC), a view synthesis prediction merge candidate, and a texture merge candidate.
- IvMC inter-view merge candidate
- view synthesis prediction merge candidate a texture merge candidate.
- an inter-view disparity merge candidate (IvDC) and a shifted inter-view merge candidate (IvMCShift) depending on whether the current PU performs inter-view prediction.
- a shifted inter-view disparity merge candidate (IvDCShift) may be derived.
- a view synthesis merging candidate may be derived according to whether the current PU performs view synthesis prediction.
- a texture merge candidate may be derived according to whether the depth map of the current PU performs motion prediction from the texture block.
- the merge motion apparatus may finally reconstruct the merge motion candidate list by adding the derived extended merge motion candidate to the merge motion candidate list (S1820).
- the merge motion device adds the extended merge motion candidate to the merge motion candidate list.
- the extended merge motion candidate may be added at any position in the merge motion candidate list (eg, the first item in the list).
- the merge motion device adds the extended merge motion candidate to the merge motion candidate list. Add.
- a texture merge candidate may be derived.
- the texture merge candidate may be added to the first item in the merge motion list.
- an inter-view merge candidate may be derived.
- the inter-view merge candidate may be added to the first item in the merge motion list.
- a view synthesis merge candidate may be derived.
- the value of the number of extended merge motion candidates added to the merge motion candidate list and the number of basic merge motion candidates is smaller than the maximum candidate number of the merge motion candidate list, the derived view synthesis merge candidate is added to the merge motion candidate list. Can be.
- the motion information on the current PU may be obtained based on the merge motion candidate list described above, and the prediction sample value of the current PU may be obtained by performing prediction on the current PU using the motion information.
- the encoder may obtain a residual sample value of the current PU based on the predicted sample value of the current PU, transform, quantize, and entropy encode the residual sample value and transmit the same to the decoder.
- the decoder may obtain a reconstructed sample value of the current PU based on the predicted sample value of the current PU and the residual sample value of the current PU transmitted by the encoder.
- the methods are described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and certain steps may occur in a different order or at the same time than other steps described above. Can be. Also, one of ordinary skill in the art appreciates that the steps shown in the flowcharts are not exclusive, that other steps may be included, or that one or more steps in the flowcharts may be deleted without affecting the scope of the present invention. I can understand.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Disclosed are a video encoding/decoding method and apparatus including a plurality of views. The video decoding method including the plurality of views comprises the steps of: inducing basic combination motion candidates for a current Prediction Unit (PU) to configure a combination motion candidate list; inducing expanded combination motion candidates for the current PU when the current PU corresponds to a depth information map or a dependent view; and adding the expanded combination motion candidates to the combination motion candidate list.
Description
본 발명은 비디오 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 3차원 비디오(3D video) 코딩을 위한 병합 움직임 후보 리스트(merge motion candidate list)를 구성하는 방법 및 장치에 관한 것이다. The present invention relates to a video encoding / decoding method and apparatus, and more particularly, to a method and apparatus for constructing a merge motion candidate list for 3D video coding.
3차원 비디오는 3차원 입체 디스플레이 장치를 통해 사용자에게 실세계에서 보고 느끼는 것과 같은 입체감을 생생하게 제공한다. 이와 관련된 연구로써 ISO/IEC의 MPEG(Moving Picture Experts Group)과 ITU-T의 VCEG(Video Coding Experts Group)의 공동 표준화 그룹인 JCT-3V(The Joint Collaborative Team on 3D Video Coding Extension Development)에서 3차원 비디오 표준이 진행 중이다. 3차원 비디오 표준은 실제 영상(texture view)과 그것의 깊이정보 맵(depth map; depth view)을 이용하여 스테레오스코픽 영상뿐만 아니라 오토스테레오스코픽 영상의 재생 등을 지원할 수 있는 진보된 데이터 형식과 그에 관련된 기술에 대한 표준을 포함하고 있다.3D video vividly provides a user with a three-dimensional effect as seen and felt in the real world through a three-dimensional display device. Related work includes three-dimensional work in The Joint Collaborative Team on 3D Video Coding Extension Development (JCT-3V), a joint standardization group of ISO / IEC's Moving Picture Experts Group (MPEG) and ITU-T's Video Coding Experts Group (VCEG). The video standard is in progress. The 3D video standard uses an advanced data format that can support the playback of autostereoscopic images as well as stereoscopic images using a texture view and its depth map. Contains standards for technology.
본 발명은 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화/복호화 방법 및 장치를 제공한다.The present invention provides an image encoding / decoding method and apparatus capable of improving image encoding / decoding efficiency.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 3차원 비디오 부호화/복호화 방법 및 장치를 제공한다. The present invention provides a 3D video encoding / decoding method and apparatus capable of improving encoding / decoding efficiency.
본 발명은 3차원 비디오 부호화/복호화 시 병합 움직임 후보 리스트를 구성하는 방법 및 장치를 제공한다. The present invention provides a method and apparatus for constructing a merge motion candidate list in 3D video encoding / decoding.
본 발명의 일 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 복호화 방법이 제공된다. 상기 비디오 복호화 방법은 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계, 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계 및 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함한다. According to an embodiment of the present invention, a video decoding method including a plurality of views is provided. The video decoding method may include constructing a merge motion candidate list by deriving a basic merge motion candidate for a current prediction unit (PU), and when the current PU is a depth map or a dependent view, extended merging for the current PU Deriving a motion candidate and adding the extended merge motion candidate to the merge motion candidate list.
상기 확장 병합 움직임 후보를 추가하는 단계에서는, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다. In the adding of the extended merge motion candidate, when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, the extended merge motion candidate may be added to the merge motion candidate list. .
본 발명의 다른 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 복호화 장치가 제공된다. 상기 비디오 복호화 장치는 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈 및 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함한다. According to another embodiment of the present invention, a video decoding apparatus including a plurality of views is provided. The video decoding apparatus derives a basic merge motion list constructing module for deriving a basic merge motion candidate for a current prediction unit (PU) and configures a merge motion candidate list, and when the current PU is a depth map or a dependent view, the current An additional merge motion list construction module for deriving an extended merge motion candidate for a PU and adding the extended merge motion candidate to the merge motion candidate list.
상기 추가 병합 움직임 리스트 구성 모듈은, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다. The additional merge motion list construction module may add the extended merge motion candidate to the merge motion candidate list when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list.
본 발명의 또 다른 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 부호화 방법이 제공된다. 상기 비디오 부호화 방법은 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계, 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계 및 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함한다. According to another embodiment of the present invention, a video encoding method including a plurality of views is provided. The video encoding method may include constructing a merge motion candidate list by deriving a basic merge motion candidate for a current prediction unit (PU), and when the current PU is a depth map or a dependent view, extended merge for the current PU Deriving a motion candidate and adding the extended merge motion candidate to the merge motion candidate list.
상기 확장 병합 움직임 후보를 추가하는 단계에서는, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다. In the adding of the extended merge motion candidate, when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, the extended merge motion candidate may be added to the merge motion candidate list. .
본 발명의 또 다른 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 부호화 장치가 제공된다. 상기 비디오 부호화 장치는 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈 및 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함한다. According to another embodiment of the present invention, a video encoding apparatus including a plurality of views is provided. The video encoding apparatus derives a basic merge motion list constructing module for deriving a basic merge motion candidate for a current prediction unit (PU) and configures a merge motion candidate list, and when the current PU is a depth map or a dependent view, the current An additional merge motion list construction module for deriving an extended merge motion candidate for a PU and adding the extended merge motion candidate to the merge motion candidate list.
상기 추가 병합 움직임 리스트 구성 모듈은, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다. The additional merge motion list construction module may add the extended merge motion candidate to the merge motion candidate list when the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list.
역방향 호환성을 제공하는 독립적인 시점(Independent View; 시점 0(View 0))에 대한 일반 영상의 부호화에 사용되는 모듈을 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 그대로 적용하여 구현 복잡도를 감소시킬 수 있다. Modules used for encoding normal images for independent views (view 0) that provide backward compatibility are dependent views (view 1) and view 2 (view 2). Implementation complexity can be reduced by applying the same to the general image and the depth maps for the C).
또한, 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 부분 인코더를 추가적으로 적용함으로써 부호화 효율을 향상시킬 수 있다.In addition, the coding efficiency may be improved by additionally applying the partial encoder to the general image and the depth maps of the dependent view (View 1 and View 2).
도 1은 3차원 비디오 시스템의 기본 구조와 데이터 형식을 개략적으로 나타내는 일예이다.1 is an example schematically showing the basic structure and data format of a 3D video system.
도 2는 “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일예를 나타내는 도면이다. 2 is a diagram illustrating an example of an actual image and a depth map image of a “balloons” image.
도 3은 3D 비디오 코덱(codec)에서 시점간 예측(inter view prediction)의 구조를 나타내는 일예이다. 3 is an example illustrating the structure of inter view prediction in a 3D video codec.
도 4는 3D 비디오 인코더/디코더에서 실제 영상(texture view)과 깊이정보 맵(depth view)을 부호화/복호화하는 과정을 나타낸 일예이다. FIG. 4 illustrates an example of a process of encoding / decoding a texture view and a depth view in a 3D video encoder / decoder.
도 5는 3D 비디오 코덱의 예측 구조의 일예를 나타낸다. 5 shows an example of a prediction structure of a 3D video codec.
도 6은 3차원 비디오 코덱(3D Video Codec)의 인코더를 개략적으로 나타낸 구조도이다.6 is a schematic structural diagram of an encoder of a 3D video codec.
도 7은 HEVC 기반 3차원 비디오 코덱(3D-HEVC)에서 사용되는 병합 움직임 방법을 설명하기 위해 도시된 도면이다. FIG. 7 is a diagram illustrating a merge motion method used in an HEVC-based 3D video codec (3D-HEVC).
도 8은 현재 블록에 대한 병합 움직임 리스트를 구성하는데 사용되는 주변 블록들을 나타낸 일예이다. 8 shows an example of neighboring blocks used to construct a merge motion list for a current block.
도 9는 병합 움직임 후보 리스트를 구성하는 방법을 하드웨어로 구현한 일예를 나타내는 도면이다. 9 is a diagram illustrating an example of a hardware implementation of a method of constructing a merge motion candidate list.
도 10은 본 발명의 일 실시예에 따른 3차원 비디오 코덱을 개략적으로 나타내는 도면이다.10 is a diagram schematically illustrating a 3D video codec according to an embodiment of the present invention.
도 11은 본 발명의 일 실시예에 따른 병합 움직임 방법을 개략적으로 설명하기 위한 개념도이다.11 is a conceptual diagram schematically illustrating a merge motion method according to an embodiment of the present invention.
도 12는 본 발명의 일 실시예에 따른 도 11의 병합 움직임 방법을 하드웨어로 구현한 일예를 나타내는 도면이다. 12 is a diagram illustrating an example of hardware implementation of the merge motion method of FIG. 11 according to an embodiment of the present invention.
도 13은 본 발명의 일 실시예에 따라 도 11 및 도 12의 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 개념도이다.13 is a conceptual diagram illustrating a method of constructing a merge motion candidate list of FIGS. 11 and 12 according to an embodiment of the present invention.
도 14는 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다. 14 illustrates a method of constructing an extended merge motion candidate list according to an embodiment of the present invention.
도 15는 본 발명의 다른 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다. 15 is a diagram for describing a method of constructing an extended merge motion candidate list according to another embodiment of the present invention.
도 16은 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다.16 is a flowchart schematically illustrating a method of constructing a merge motion candidate list according to an embodiment of the present invention.
도 17a 내지 도 17f는 본 발명의 일 실시예에 따른 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가하는 방법을 나타내는 순서도이다.17A to 17F are flowcharts illustrating a method of adding an extended merge motion candidate to a merge motion candidate list according to an embodiment of the present invention.
도 18은 본 발명의 일 실시예에 따라 복수의 시점을 포함하는 비디오 부호화/복호화 시 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다.18 is a flowchart schematically illustrating a method of constructing a merge motion candidate list in video encoding / decoding including a plurality of viewpoints according to an embodiment of the present invention.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.EMBODIMENT OF THE INVENTION Hereinafter, embodiment of this invention is described concretely with reference to drawings. In describing the embodiments of the present specification, when it is determined that a detailed description of a related well-known configuration or function may obscure the gist of the present specification, the description may be omitted.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.When a component is referred to herein as being “connected” or “connected” to another component, it may mean that it is directly connected to or connected to that other component, or another component in between. It may also mean that an element exists. In addition, the description "includes" a specific configuration in this specification does not exclude a configuration other than the configuration, it means that additional configuration may be included in the scope of the technical spirit of the present invention or the present invention.
제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.Terms such as first and second may be used to describe various configurations, but the configurations are not limited by the terms. The terms are used to distinguish one configuration from another. For example, without departing from the scope of the present invention, the first configuration may be referred to as the second configuration, and similarly, the second configuration may also be referred to as the first configuration.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, the components shown in the embodiments of the present invention are independently shown to represent different characteristic functions, and do not mean that each component is made of separate hardware or one software component unit. In other words, each component is listed as a component for convenience of description, and at least two of the components may form one component, or one component may be divided into a plurality of components to perform a function. The integrated and separated embodiments of each component are also included in the scope of the present invention without departing from the spirit of the present invention.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.In addition, some of the components may not be essential components for performing essential functions in the present invention, but may be optional components for improving performance. The present invention can be implemented including only the components essential for implementing the essentials of the present invention except for the components used for improving performance, and the structure including only the essential components except for the optional components used for improving performance. Also included in the scope of the present invention.
도 1은 3차원 비디오 시스템의 기본 구조와 데이터 형식을 개략적으로 나타내는 일예이다. 도 1의 3차원 비디오 시스템은 3차원 비디오 표준에서 고려하고 있는 기본적인 3차원 비디오 시스템일 수 있다. 1 is an example schematically showing the basic structure and data format of a 3D video system. The 3D video system of FIG. 1 may be a basic 3D video system under consideration in the 3D video standard.
도 1을 참조하면, 3차원 비디오(3D video; 3DV) 시스템은 다시점(multi-view)의 영상 콘텐츠를 생성하는 송신측(sender)과 송신측으로부터 수신된 영상 콘텐츠를 복호화하여 다시점의 영상을 제공하는 수신측(receiver)을 포함할 수 있다. Referring to FIG. 1, a 3D video (3D video) system decodes a video content received from a sender and a transmitter that generates a multi-view video content, and thus generates a multiview video. It may include a receiver for providing a.
송신측에서는 스테레오 카메라 및 다시점 카메라를 이용하여 비디오 정보를 생성하고, 깊이정보 카메라를 이용하여 깊이정보 맵(depth map, 또는 depth view)을 생성할 수 있다. 또한, 송신측에서는 변환기를 이용하여 2차원 영상을 3차원 영상으로 변환할 수 있다. 송신측에서는 상기 생성된 비디오 정보와 깊이정보 맵 등을 이용하여 N(N≥2) 시점(view)의 영상 콘텐츠를 생성할 수 있다. The transmitter may generate video information using a stereo camera and a multiview camera, and generate a depth map or a depth view using the depth camera. In addition, the transmitter may convert a 2D image into a 3D image using a converter. The transmitter may generate image content of an N (N≥2) view using the generated video information, the depth map, and the like.
N 시점의 영상 콘텐츠에는 N 시점의 비디오 정보와 그것의 깊이정보 맵(Depth-map) 정보 그리고 카메라 관련 부가정보 등이 포함될 수 있다. N 시점의 영상 콘텐츠는 3D 비디오 인코더에서 다시점 비디오 부호화 방법을 사용하여 압축될 수 있으며, 압축된 영상 콘텐츠(비트스트림)는 네트워크를 통해 수신측의 단말로 전송될 수 있다.The image content of the N view may include video information of the N view, depth-map information thereof, and additional information related to a camera. The video content of N views may be compressed using a multiview video encoding method in a 3D video encoder, and the compressed video content (bitstream) may be transmitted to a terminal on the receiving side through a network.
수신측에서는 전송 받은 비트스트림을 비디오 디코더(예를 들어, 3D 비디오 디코더, 스테레오 비디오 디코더, 2D 비디오 디코더 등)에서 다시점 비디오 복호화 방법을 사용하여 복호화하여 N 시점의 영상을 복원할 수 있다. The receiving side may decode the received bitstream by using a multiview video decoding method in a video decoder (eg, a 3D video decoder, a stereo video decoder, a 2D video decoder, etc.) to restore an image of N views.
복원된 N 시점의 영상은 깊이정보 맵 기반 랜더링(DIBR; Depth-Image-Based Rendering) 과정에 의해 N 시점 이상의 가상시점 영상들로 생성될 수 있다. 생성된 N 시점 이상의 가상시점 영상들은 다양한 입체 디스플레이 장치(예를 들어, N-시점 디스플레이, 스테레오 디스플레이, 2D 디스플레이 등)에 맞게 재생되어 사용자에게 입체감이 있는 영상을 제공하게 된다.The reconstructed N-view image may be generated as virtual view images of N or more views through a depth-image-based rendering (DIBR) process. The generated virtual viewpoint images of the N viewpoints or more are reproduced for various stereoscopic display devices (for example, N-view displays, stereo displays, 2D displays, etc.) to provide a user with a three-dimensional image.
도 2는 “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일예를 나타내는 도면이다. 2 is a diagram illustrating an example of an actual image and a depth map image of a “balloons” image.
깊이정보 맵(depth map)은 가상시점 영상을 생성하는데 사용되며, 실세계에서 카메라와 실제 사물(object) 간의 거리(실사 영상과 동일한 해상도로 각 화소에 해당하는 깊이정보)를 일정한 비트수로 표현한 것이다. The depth map is used to generate a virtual viewpoint image, and represents the distance between the camera and the real object (depth information corresponding to each pixel at the same resolution as the actual image) in a certain number of bits in the real world. .
도 2의 (a)는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상을 나타낸 것이다. 도 2의 (b)는 도 2의 (a)에 도시된 “balloons” 영상에 대한 깊이정보 맵 영상을 나타낸 것이다. 도 2의 (b)에 도시된 깊이정보 맵 영상은 화면에 보이는 깊이 정보를 화소당 8비트로 표현한 것이다. FIG. 2 (a) shows “balloons” images being used in the 3D video coding standard of MPEG, which is an international standardization organization. FIG. 2B illustrates a depth map image of the “balloons” image shown in FIG. 2A. The depth map image illustrated in FIG. 2B expresses depth information displayed on the screen at 8 bits per pixel.
실제 영상과 그것의 깊이정보 맵을 부호화하는 방법은, 예컨대 H.264/AVC(MPEG-4 Part 10 Advanced Video Coding)를 이용할 수 있으며, 또는 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행한 HEVC(High Efficiency Video Coding) 국제 동영상 표준을 사용할 수도 있다. A method of encoding a real image and its depth map may be, for example, using H.264 / AVC (MPEG-4 Part 10 Advanced Video Coding), or moving picture experts group (MPEG) and video coding experts group (VCEG). You can also use the HEVC (High Efficiency Video Coding) international video standard jointly standardized by
실제 영상과 그것의 깊이정보 맵은 하나의 카메라뿐만 아니라 여러 개의 카메라에서 획득된 영상일 수 있다. 여러 개의 카메라에서 획득된 영상은 독립적으로 부호화될 수 있으며, 일반적인 2차원 비디오 부호화 코덱을 사용하여 부호화될 수 있다. 또한, 여러 개의 카메라에서 획득된 영상은 시점 간의 상관성이 존재하므로, 여러 개의 카메라에서 획득된 영상은 부호화 효율을 높이기 위하여 서로 다른 시점간 예측을 사용하여 부호화될 수 있다. The real image and its depth map may be images obtained from not only one camera but also several cameras. Images obtained from multiple cameras may be encoded independently and may be encoded using a general two-dimensional video encoding codec. In addition, since images obtained from multiple cameras have correlations between viewpoints, images obtained from multiple cameras may be encoded using different inter-view predictions to increase encoding efficiency.
도 3은 3D 비디오 코덱(codec)에서 시점간 예측(inter view prediction)의 구조를 나타내는 일예이다. 3 is an example illustrating the structure of inter view prediction in a 3D video codec.
도 3을 참조하면, 시점 1(View 1)은 시점 0(View 0)을 기준으로 왼쪽에 위치한 카메라에서 획득한 영상이고, 시점 2(View 2)는 시점 0(View 0)을 기준으로 오른쪽에 위치한 카메라에서 획득한 영상이다. Referring to FIG. 3, View 1 is an image obtained from a camera located on the left side with respect to View 0, and View 2 is on the right side with respect to View 0. Image obtained from the camera located.
또한, 시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 시점간 예측을 수행하며, 부호화 순서는 시점 1(View 1)과 시점 2(View 2)보다 시점 0(View 0)이 먼저 부호화되어야 한다. Also, view 1 and view 2 perform inter-view prediction using view 0 as a reference image, and the encoding order is view 1 and view 2. View 0 should be coded before.
이때, 시점 0(View 0)은 다른 시점과 상관없이 독립적으로 부호화될 수 있으므로 독립적인 시점(Independent View)이라고 한다. 반면, 시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 부호화되므로 의존적인 시점(Dependent View)라고 한다. 독립적인 시점 영상은 일반적인 2차원 비디오 코덱을 사용하여 부호화 될 수 있다. 반면, 의존적인 시점 영상은 시점간 예측을 수행하여야 하므로, 시점간 예측 과정이 포함된 3차원 비디오 코덱을 사용하여 부호화될 수 있다.In this case, view 0 is called an independent view because it may be independently encoded regardless of other views. On the other hand, view 1 and view 2 are referred to as dependent views because they are encoded using view 0 as a reference image. Independent viewpoint images may be encoded using a general two-dimensional video codec. On the other hand, since the dependent view image needs to perform inter-view prediction, it may be encoded using a 3D video codec including an inter-view prediction process.
또한, 시점 1(View 1)과 시점 2(View 2)의 부호화 효율을 증가시키기 위하여 시점 1(View 1)과 시점 2(View 2)는 깊이정보 맵을 이용하여 부호화될 수 있다. 예를 들어, 실제 영상과 그것의 깊이정보 맵을 부호화할 때, 실제 영상과 깊이정보 맵은 서로 독립적으로 부호화/복호화될 수 있다. 또는 실제 영상과 깊이정보 맵을 부호화할 때, 실제 영상과 깊이정보 맵은 도 4와 같이 서로 의존적으로 부호화/복호화될 수 있다. In addition, in order to increase the encoding efficiency of the view 1 and the view 2, the view 1 and the view 2 may be encoded using the depth map. For example, when the real image and the depth map thereof are encoded, the real image and the depth map may be encoded / decoded independently of each other. Alternatively, when the real image and the depth map are encoded, the real image and the depth map may be encoded / decoded depending on each other as shown in FIG. 4.
도 4는 3D 비디오 인코더/디코더에서 실제 영상(texture view)과 깊이정보 맵(depth view)을 부호화/복호화하는 과정을 나타낸 일예이다. FIG. 4 illustrates an example of a process of encoding / decoding a texture view and a depth view in a 3D video encoder / decoder.
도 4를 참조하면, 3D 비디오 인코더는 실제 영상(texture view)을 부호화하는 실제 영상 인코더(texture encoder)와 깊이정보 맵(depth view)을 부호화하는 깊이정보 맵 인코더(depth encoder)를 포함할 수 있다. Referring to FIG. 4, the 3D video encoder may include a real image encoder for encoding a texture view and a depth map encoder for encoding a depth view. .
예를 들어, 실제 영상 인코더는 깊이정보 맵 인코더에 의해 이미 부호화된 깊이정보 맵을 이용하여 실제 영상을 부호화할 수 있다. 반대로, 깊이정보 맵 인코더는 실제 영상 인코더에 의해 이미 부호화된 실제 영상을 이용하여 깊이정보 맵을 부호화할 수 있다. For example, the real image encoder may encode the real image using a depth map that is already encoded by the depth map encoder. In contrast, the depth map encoder may encode the depth map by using the real image that is already encoded by the real image encoder.
3D 비디오 디코더는 실제 영상을 복호화하는 실제 영상 디코더(texture decoder)와 깊이정보 맵을 복호화하는 깊이정보 맵 디코더(depth decoder)를 포함할 수 있다. The 3D video decoder may include a real image decoder for decoding an actual image and a depth map decoder for decoding a depth map.
예를 들어, 실제 영상 디코더는 깊이정보 맵 디코더에 의해 이미 복호화된 깊이정보 맵을 이용하여 실제 영상을 복호화할 수 있다. 반대로, 깊이정보 맵 디코더는 실제 영상 디코더에 의해 이미 복호화된 실제 영상을 이용하여 깊이정보 맵을 복호화할 수 있다. For example, the real image decoder may decode the real image using the depth map already decoded by the depth map decoder. On the contrary, the depth map decoder may decode the depth map using the real image that is already decoded by the real image decoder.
도 5는 3D 비디오 코덱의 예측 구조의 일예를 나타낸다. 5 shows an example of a prediction structure of a 3D video codec.
도 5는, 설명의 편의 상, 3대의 카메라에서 획득한 실제 영상과 상기 실제 영상에 대한 깊이정보 맵을 부호화하기 위한 부호화 예측 구조를 나타낸 것이다. 5 is a diagram illustrating an encoding prediction structure for encoding a real image obtained from three cameras and a depth map of the real image for convenience of description.
도 5를 참조하면, 3대의 카메라에서 획득된 3개의 실제 영상은 시점에 따라 T0, T1, T2로 나타내었고, 실제 영상과 동일한 위치의 3개의 깊이정보 맵은 시점에 따라 D0, D1, D2로 나타내었다. 여기서, T0와 D0는 시점 0(View 0)에서 획득한 영상이며, T1와 D1는 시점 1(View 1)에서 획득한 영상이며, T2와 D2는 시점 2(View 2)에서 획득한 영상이다. Referring to FIG. 5, three real images acquired by three cameras are represented by T0, T1, and T2 according to viewpoints, and three depth maps of the same position as the actual image are represented by D0, D1, and D2 according to viewpoints. Indicated. Here, T0 and D0 are images acquired at View 0, T1 and D1 are images acquired at View 1, and T2 and D2 are images acquired at View 2.
도 5에 도시된 사각형은 영상(픽처)를 나타낸다. 5 shows an image (picture).
각 영상(픽처)는 부호화 타입에 따라 I 픽처(Intra Picture), P 픽처(Uni-prediction Picture), B 픽처(Bi-prediction Picture)로 나뉘어지며, 각 픽처의 부호화 타입에 따라 부호화될 수 있다. I 픽처는 픽처간 예측 없이 영상 자체를 부호화하고, P 픽처는 순방향으로만 참조 영상을 이용하여 픽처간 예측 부호화하고, B 픽처는 순방향과 역방향 양측으로 참조 영상을 이용하여 픽처간 예측 부호화한다. Each picture (picture) is divided into an I picture (Intra Picture), a P picture (Uni-prediction Picture), and a B picture (Bi-prediction Picture) according to an encoding type, and may be encoded according to an encoding type of each picture. The I picture encodes the image itself without inter-picture prediction, the P picture predicts and encodes the picture using the reference picture only in the forward direction, and the B picture encodes the picture inter prediction using the reference picture in both the forward and reverse directions.
도 5에서 화살표는 예측 방향을 나타낸다. 즉, 예측 방향에 따라 실제 영상과 그것의 깊이정보 맵은 서로 의존적으로 부호화/복호화될 수 있다.Arrows in FIG. 5 indicate prediction directions. That is, the real image and its depth map may be encoded / decoded depending on the prediction direction.
실제 영상에서 현재 블록을 예측하기 위해서, 현재 블록의 움직임 정보를 유추하기 위한 방법은 크게 시간적 예측(temporal prediction)과 시점간 예측(inter view prediction)으로 나뉜다. 시간적 예측은 동일한 시점 내에서 시간적 상관성을 이용한 예측 방법이고, 시점간 예측은 인접한 시점에서 시점간 상관성을 이용한 예측 방법이다. 이러한 시간적 예측과 시점간 예측은 한 픽처에서 서로 혼용되어 사용될 수 있다.In order to predict the current block in the real image, a method for inferring motion information of the current block is largely divided into temporal prediction and inter view prediction. Temporal prediction is a prediction method using temporal correlation within the same viewpoint, and inter-view prediction is a prediction method using inter-view correlation at adjacent viewpoints. Such temporal prediction and inter-view prediction may be mixed with each other in a picture.
여기서, 현재 블록은 실제 영상 내에서 현재 예측이 수행되는 블록을 말한다. 움직임 정보는 움직임 벡터만을 의미할 수 있으며, 혹은 움직임 벡터, 참조 영상 번호, 단방향 예측인지 양방향 예측인지, 시점간 예측인지 시간적 예측인지, 또 다른 예측인지를 의미할 수도 있다.Here, the current block refers to a block in which the current prediction is performed in the real image. The motion information may mean only a motion vector or may mean a motion vector, a reference picture number, unidirectional prediction, bidirectional prediction, inter-view prediction, temporal prediction, or another prediction.
한편, 대용량의 3차원 영상 콘텐츠는 비트스트림의 양을 감소시키기 위하여 효율적으로 압축되어야 한다. 부호화 효율을 증가시키기 위하여 서로 다른 시점간 상관성을 이용할 수 있으며, 일반 영상(Texture View)과 깊이정보 맵(Depth View, 혹은 Depth Map) 간의 상관성을 이용할 수 있다. 하지만 이로 인해, 2차원 영상을 부호화할 때보다 더 많은 부호화 알고리즘이 요구되며, 이를 구현하기 위한 하드웨어 및 소프트웨어의 구현 복잡도가 증가되고 계산 복잡도가 증가되는 문제점이 존재한다.On the other hand, a large amount of three-dimensional image content should be efficiently compressed in order to reduce the amount of bitstream. Correlation between different viewpoints may be used to increase encoding efficiency, and correlation between a texture view and a depth view or depth map may be used. However, due to this, more coding algorithms are required than when encoding two-dimensional images, and there is a problem in that implementation complexity of hardware and software for implementing the same increases and computational complexity increases.
도 6은 3차원 비디오 코덱(3D Video Codec)의 인코더를 개략적으로 나타낸 구조도이다. 6 is a schematic structural diagram of an encoder of a 3D video codec.
도 6을 참조하면, 3차원 비디오 코덱(600)은 서로 다른 시점 영상들(예를 들어, 시점 0(view 0), 시점 1(view 1), 시점 2(view 2))을 입력으로 받아 부호화하고, 부호화된 통합된 하나의 비트스트림을 출력할 수 있다. Referring to FIG. 6, the 3D video codec 600 receives and encodes different viewpoint images (eg, view 0, view 1, and view 2) as inputs. In addition, the encoded integrated bitstream may be output.
이때, 영상들에는 일반 영상(Texture View)뿐만 아니라 깊이정보 맵(Depth View)도 포함될 수 있다.In this case, the images may include not only a texture view but also a depth view.
3차원 비디오 코덱(600)은 시점 정보(View ID 정보)에 따라 서로 다른 인코더에서 입력 영상들을 부호화할 수 있다. The 3D video codec 600 may encode input images by different encoders according to view information (View ID information).
예를 들어, 시점 0(View 0)의 영상은 역방향 호환성(Backward compatibility)를 위하여 기존 2차원 비디오 코덱으로 부호화되어야 하므로, 기본 계층 인코더(610, 시점 0 인코더)로 부호화될 수 있다. 시점 1(View 1)과 시점 2(View 2)의 영상들은 시점간 예측 알고리즘과 일반 영상과 깊이정보 맵 간의 상관성을 이용한 알고리즘이 포함된 3차원 비디오 코덱으로 부호화되어야 하므로, 향상 계층(enhancement layer) 인코더(620, 시점 1 혹은 시점 2 인코더)로 부호화될 수 있다. For example, the image of view 0 may be encoded by the existing 2D video codec for backward compatibility, and thus may be encoded by the base layer encoder 610. Images of View 1 and View 2 must be encoded with a 3D video codec that includes an inter-view prediction algorithm and an algorithm using the correlation between the general image and the depth map, and thus an enhancement layer. It may be encoded by the encoder 620 (view 1 or view 2 encoder).
또한, 일반 영상이 아닌 깊이정보 맵의 경우, 일반 영상의 부호화된 정보를 활용하여 부호화될 수 있으므로, 향상 계층 인코더(620)로 부호화될 수 있다. 따라서, 시점 0(View 0)의 영상을 부호화할 때에 비해, 시점 1(View 1)과 시점 2(View 2)의 영상을 부호화할 때 더욱 복잡한 인코더가 요구되며, 또한 기본 계층(base layer)의 일반 영상을 부호화할 때에 비해 깊이정보 맵을 부호화할 때 더욱 복잡한 인코더가 요구된다.In addition, in the case of the depth map other than the normal image, since the encoded information may be encoded by using the encoded information of the general image, it may be encoded by the enhancement layer encoder 620. Therefore, a more complicated encoder is required when encoding the images of the view 1 and the view 2 than the encoding of the view 0 and the view of the base layer. More complex encoders are required when encoding depth maps than when encoding normal images.
한편, HEVC에서는 영상 부호화/복호화 시 인터 예측(inter prediction)에 사용되는 움직임 정보의 부호화 방법 중 하나로 병합 움직임(merge, 혹은 merge motion) 방법을 이용한다. 여기서, 향상 계층(enhancement layer)에서의 부호화 효율을 증가시키기 위해서, 향상 계층에서는 기본 계층(base layer)에서의 병합 움직임 방법을 수정하여 향상된 병합 움직임 방법을 사용한다.Meanwhile, in HEVC, a merge or merge motion method is used as one of encoding methods of motion information used for inter prediction during image encoding / decoding. Here, in order to increase the coding efficiency in the enhancement layer, the enhancement layer uses an improved merge motion method by modifying the merge motion method in the base layer.
도 7은 HEVC 기반 3차원 비디오 코덱(3D-HEVC)에서 사용되는 병합 움직임 방법을 설명하기 위해 도시된 도면이다. FIG. 7 is a diagram illustrating a merge motion method used in an HEVC-based 3D video codec (3D-HEVC).
도 7을 참조하면, 3D-HEVC(700)에서는 시점 0(View 0)에 대한 병합 움직임 구성 방법(710)과 나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))에 대한 병합 움직임 구성 방법(720)으로 서로 구분되어 수행된다. Referring to FIG. 7, in the 3D-HEVC 700, a method 710 of merging motion configuration for view 0 and other remaining views (view 1 and view 2) may be used. The merge motion configuration method 720 is performed separately from each other.
현재 PU(Prediction Unit, 혹은 PB(Prediction Block), 혹은 임의 크기의 블록)를 포함하는 영상이 3D-HEVC(700)에 입력되면, 3D-HEVC(700)는 입력 영상이 일반 영상인지 혹은 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와 입력 영상의 시점 정보(ViewID 정보)를 기반으로, 시점 0(View 0)에 대한 병합 움직임 구성 방법(710)과 나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))에 대한 병합 움직임 구성 방법(720) 중 하나를 선택할 수 있다. 그리고 3D-HEVC(700)는 선택된 병합 움직임 구성 방법을 이용하여 현재 PU에 대한 병합 움직임 후보 리스트(merge candidate list)를 출력할 수 있다. When an image including a current PU (Prediction Unit, PB (Prediction Block), or any size block) is input to the 3D-HEVC 700, the 3D-HEVC 700 determines whether the input image is a normal image or depth information. Based on the information (Texture / Depth information) whether it is a map image and the view information (ViewID information) of the input image, the merging motion configuration method 710 for the view 0 (View 0) and the other views (view 1 One of the method 720 for configuring merge motion for View 1) and View 2) may be selected. The 3D-HEVC 700 may output a merge motion candidate list for the current PU using the selected merge motion configuration method.
여기서, 현재 PU는 현재 영상의 부호화/복호화을 위해 현재 영상 내 예측이 수행되는 현재 블록을 말한다. Here, the current PU refers to a current block in which prediction within the current image is performed to encode / decode the current image.
시점 0(View 0)에 대한 일반 영상은 역방향 호환성을 위해 기본 계층을 위한 병합 움직임 구성 방법을 이용하여 병합 움직임 후보 리스트를 구성한다. 반면, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵은 향상 계층을 위한 병합 움직임 구성 방법을 이용하여 병합 움직임 후보 리스트를 구성한다.The general image for view 0 constructs a merge motion candidate list using a merge motion configuration method for the base layer for backward compatibility. On the other hand, the general image and the depth map of the view 1 and the view 2 constitute a merge motion candidate list using the merge motion configuration method for the enhancement layer.
향상 계층을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성 방법에 새로운 후보를 추가하거나 후보 리스트 순서를 수정하는 방법으로 수행된다. 즉, 도 7에 도시된 바와 같이, 향상 계층(나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))과 깊이정보 맵)을 위한 병합 움직임 구성 방법에는 기본 계층을 위한 병합 움직임 구성 방법이 포함되어 있다. The merge motion construction method for the enhancement layer is performed by adding a new candidate or modifying the candidate list order to the merge motion construction method for the base layer. That is, as shown in FIG. 7, the merge motion configuration method for the enhancement layer (the other views (view 1 and view 2) and the depth map) includes the merge motion for the base layer. Configuration methods are included.
따라서, 향상 계층을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성보다 복잡하게 구성되어 있으며, 계산 복잡도가 크다는 것을 알 수 있다. 또한, 하드웨어 혹은 소프트웨어의 구현 측면에서도 기본 계층을 위한 병합 움직임 구성 방법과 향상 계층을 위한 병합 움직임 구성 방법을 모두 구현해주어야 하므로, 구현 복잡도가 2배 이상 증가하는 것을 알 수 있다.Therefore, it can be seen that the merge motion configuration method for the enhancement layer is more complicated than the merge motion configuration for the base layer, and the computational complexity is large. In addition, in terms of hardware or software implementation, it is necessary to implement both the merge motion configuration method for the base layer and the merge motion configuration method for the enhancement layer.
도 8은 현재 블록에 대한 병합 움직임 리스트를 구성하는데 사용되는 주변 블록들을 나타낸 일예이다. 8 shows an example of neighboring blocks used to construct a merge motion list for a current block.
병합 움직임 방법(merge mode)은 현재 블록(현재 PU)의 움직임 정보(예를 들어, 움직임 벡터, 참조 픽처 리스트, 참조 픽처 인덱스 등)로서 현재 블록의 주변 블록의 움직임 정보를 이용하는 방법을 말하며, 주변 블록의 움직임 정보를 기반으로 현재 블록에 대한 병합 움직임 후보 리스트를 구성한다. The merge motion method refers to a method of using motion information of a neighboring block of the current block as motion information (for example, a motion vector, a reference picture list, a reference picture index, etc.) of the current block (current PU). A merge motion candidate list for the current block is constructed based on the motion information of the block.
주변 블록은 도 8에 도시된 바와 같이, 현재 블록과 공간적(spatial)으로 인접하여 위치한 주변 블록(neighboring block)(A, B, C, D, E)과, 현재 블록과 시간적(temporal)으로 대응하는 동일 위치의 후보 블록(co-located block)(H 혹은 M)을 포함할 수 있다. 동일 위치의 후보 블록은 현재 블록을 포함하는 현재 픽처와 시간적으로 대응하는 동일 위치의 픽처(co-located picture) 내 동일 위치의 블록을 말한다. 동일 위치의 픽처 내 H 블록이 가용하면 H 블록을 동일 위치의 후보 블록으로 결정하고, H 블록이 가용하지 않으면 동일 위치의 픽처 내 M 블록을 동일 위치의 후보 블록으로 결정한다. As shown in FIG. 8, the neighboring blocks correspond to neighboring blocks A, B, C, D, and E, which are spatially adjacent to the current block, and temporally with the current block. May include a co-located block (H or M) in the same position. A candidate block at the same position refers to a block at the same position in a co-located picture corresponding to the current picture including the current block in time. If the H block in the picture at the same position is available, the H block is determined as a candidate block at the same position. If the H block is not available, the M block in the picture at the same position is determined as the candidate block at the same position.
병합 움직임 후보 리스트를 구성하기 위해서, 먼저 주변 블록(A, B, C, D, E)과 동일 위치의 후보 블록(H 혹은 M)의 움직임 정보가 현재 블록의 병합 움직임 후보 리스트를 구성하는 병합 움직임 후보(merge candidate)로 이용될 수 있는지를 판단하고, 다음으로 이용 가능한 블록의 움직임 정보를 병합 움직임 후보로 결정한다. 그리고 병합 움직임 후보를 병합 움직임 후보 리스트에 추가할 수 있다. In order to construct a merge motion candidate list, first, motion information of a candidate block (H or M) at the same position as neighboring blocks A, B, C, D, and E constitutes a merge motion candidate list of the current block. It is determined whether it can be used as a merge candidate, and the motion information of the next available block is determined as a merge motion candidate. The merge motion candidate may be added to the merge motion candidate list.
도 9는 병합 움직임 후보 리스트를 구성하는 방법을 하드웨어로 구현한 일예를 나타내는 도면이다. 9 is a diagram illustrating an example of a hardware implementation of a method of constructing a merge motion candidate list.
도 9를 참조하면, 시점 0(View 0)에 대한 일반 영상에서 사용되는 병합 움직임 리스트를 구성하기 위한 입력 파라미터와, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵에서 사용되는 병합 움직임 리스트를 구성하기 위한 입력 파라미터는 동일하다. 단지 다른 점은 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵에서 사용되는 병합 움직임 리스트를 구성하기 위한 입력 파라미터(“추가 움직임 F”와 “추가 움직임 G”)가 추가된다는 점이다. Referring to FIG. 9, input parameters for constructing a merge motion list used in a general image for view 0, and general image and depth information for views 1 and 2 The input parameters for constructing the merge motion list used in the map are the same. The only difference is the input parameters (“Additional Motion F” and “Additional Motion G”) for constructing the merged motion list used in the normal image and depth maps for View 1 and View 2. Is added.
따라서, 추가된 움직임 정보들로 인해 병합 움직임 후보 리스트를 구성하는 부분이 변경된다. 즉, 추가된 움직임 정보들을 병합 움직임 후보 리스트에 포함시키기 위해서(부호화 효율을 증가시키기 위해서), 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵을 위한 병합 움직임 리스트 구성 모듈을 새로 구현하여야 한다. 이는 하드웨어의 구현 복잡도를 증가시킬 수 있다.Therefore, the parts constituting the merge motion candidate list are changed due to the added motion information. That is, in order to include the added motion information in the merge motion candidate list (in order to increase the encoding efficiency), the merge motion list for the general image and the depth map for the view 1 and the view 2 The new configuration module must be implemented. This can increase the implementation complexity of the hardware.
이러한 문제점들을 해결하기 위해서, 본 발명에서는 향상 계층(실시 예로, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵)을 위한 부호화 알고리즘 및 비디오 코덱의 구현 복잡도 및 계산 복잡도를 감소시키는 방법을 제안한다. 일예로, 본 발명에서는 이미 하드웨어 칩 형태로 구현이 완료된 기본 계층(시점0(View 0)에 대한 일반 영상)을 위한 “병합 움직임 후보 리스트 구성” 모듈을 그대로 재사용하여 향상 계층(실시 예로, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵)에 적용함으로써, 하드웨어 구현 복잡도를 감소시킬 수 있다. 본 발명에 따르면, 2차원 영상 서비스에 사용되는 기본 계층을 위한 부호화기/복화화기(구체적으로, “병합 움직임 후보 리스트 구성” 모듈)를 가지고 있는 소비자가 3차원 영상 서비스를 받고자 한다면, 단지 추가적인 모듈(구체적으로, 향상 계층을 위한 “병합 움직임 후보 리스트 구성” 모듈)만 부착하면 손쉽게 3차원 영상 서비스를 받을 수 있게 된다.In order to solve these problems, in the present invention, the implementation complexity and calculation of the encoding algorithm and the video codec for the enhancement layer (for example, the general image and the depth map of the view 1 and the view 2) We propose a method for reducing complexity. For example, in the present invention, the "merge motion candidate list construction" module for the base layer (general image for view 0), which is already implemented in the form of a hardware chip, is reused as it is, and thus an enhancement layer (for example, view 1 By applying to the general image and the depth map of (View 1) and View (2), hardware implementation complexity can be reduced. According to the present invention, if a consumer having an encoder / decoder (specifically, a "merged motion candidate list construction" module) module for a base layer used for two-dimensional video service wants to receive three-dimensional video service, only an additional module ( Specifically, attaching only a "merged motion candidate list construction" module for the enhancement layer enables easy 3D video service.
이하, 본 발명에서는 비디오 코덱의 구현 복잡도 및 계산 복잡도를 감소시켜서 데이터 처리량을 향상시키는 방법에 대해 설명한다. Hereinafter, a method of improving data throughput by reducing implementation complexity and computational complexity of a video codec will be described.
[기본 방법][Default method]
도 10은 본 발명의 일 실시예에 따른 3차원 비디오 코덱을 개략적으로 나타내는 도면이다.10 is a diagram schematically illustrating a 3D video codec according to an embodiment of the present invention.
도 10을 참조하면, 3차원 비디오 코덱(1000)은 서로 다른 시점 영상들(예를 들어, 시점 0(view 0), 시점 1(view 1), 시점 2(view 2))을 입력으로 받아 부호화하고, 부호화된 하나의 비트스트림을 출력할 수 있다. Referring to FIG. 10, the 3D video codec 1000 receives and encodes different viewpoint images (eg, view 0, view 1, and view 2) as inputs. In addition, one encoded bitstream may be output.
이때, 영상들에는 일반 영상(Texture View)뿐만 아니라 깊이정보 맵(Depth View)도 포함될 수 있다. 영상들에는 다른 시점과 상관없이 독립적으로 부호화될 수 있는 독립적인 시점(Independent View)의 영상과, 독립적인 시점의 영상을 참조 영상으로 사용하여 부호화되는 의존적인 시점(Dependent View)의 영상을 포함할 수 있다. 예를 들어, 시점 0(View 0)은 독립적인 시점일 수 있으며, 시점 1(view 1)과 시점 2(view 2)는 시점 0(View 0)을 참조하여 부호화되는 의존적인 시점일 수 있다. In this case, the images may include not only a texture view but also a depth view. The images may include an image of an independent view that may be independently encoded regardless of another viewpoint, and an image of a dependent view that is encoded using an image of an independent viewpoint as a reference image. Can be. For example, view 0 may be an independent view, and view 1 and view 2 may be dependent views encoded with reference to view 0. FIG.
3차원 비디오 코덱(1000)은 모든 시점(예를 들어, 시점 0, 시점 1 및 시점2)에 대한 일반 영상 및 깊이정보 맵을 부호화할 수 있는 인코더(부호화기)(1010)를 포함할 수 있다. 예컨대, 모든 시점에 대한 일반 영상 및 깊이정보 맵을 부호화할 수 있는 인코더(1010)는 MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, H.264/AVC, VC-1, AVS, KTA, HEVC(H.265/HEVC) 등이 될 수 있다. The 3D video codec 1000 may include an encoder 1010 capable of encoding a general image and a depth map for all views (eg, view 0, view 1, and view 2). For example, the encoder 1010 capable of encoding a general image and a depth map for all viewpoints is MPEG-1, MPEG-2, MPEG-4 Part 2 Visual, H.264 / AVC, VC-1, AVS, KTA. , HEVC (H.265 / HEVC), and the like.
3차원 비디오 코덱(1000)은 독립적인 시점이 아닌 의존적인 시점에 대한 일반 영상 및 깊이정보 맵에 대하여, 부호화 효율을 증가시키기 위하여, 부분 인코더(1020)를 포함할 수 있다. 예컨대, 부분 인코더(1020)는 시점 1(view 1)과 시점 2(view 2)에 대한 일반 영상 및 깊이정보 맵을 부호화할 수 있으며, 또는 모든 시점에 대한 깊이정보 맵을 부호화할 수 있다. The 3D video codec 1000 may include a partial encoder 1020 to increase encoding efficiency with respect to the general image and the depth map for the dependent view instead of the independent view. For example, the partial encoder 1020 may encode a general image and a depth map of views 1 and 2, or may encode depth maps of all views.
3차원 비디오 코덱(1000)은 각 인코더(1010, 1020)에 의해 부호화된 영상들을 다중화하는 다중화기(1030)를 포함할 수 있다. 다중화기(1030)는 시점 0(View 0)의 일반 영상에 대한 비트스트림과, 다른 시점(시점 1(View 1)과 시점 2(View 2))들의 일반 영상 및 깊이정보 맵들에 대한 비트스트림을 다중화하여 하나의 비트스트림으로 출력할 수 있다. The 3D video codec 1000 may include a multiplexer 1030 for multiplexing the images encoded by the encoders 1010 and 1020. The multiplexer 1030 may generate a bitstream of a general image of view 0 and a bitstream of general image and depth maps of other views (view 1 and view 2). Multiplexing may be performed to output one bitstream.
상술한 바와 같이, 본 발명의 일 실시예에 따른 3차원 비디오 코덱(1000)은 역방향 호환성을 제공하는 독립적인 시점(예컨대, 시점 0(View 0))에 대한 일반 영상의 부호화에 사용되는 모듈(1010)을 의존적인 시점(예컨대, 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 그대로 적용함으로써, 구현 복잡도를 감소시킬 수 있다. 그리고, 본 발명의 일 실시예에 따른 3차원 비디오 코덱(1000)은 의존적인 시점(예컨대, 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 부분 인코더(1020)를 추가적으로 적용함으로써, 부호화 효율을 향상시킬 수 있다. As described above, the 3D video codec 1000 according to an embodiment of the present invention is a module used for encoding a general image with respect to an independent viewpoint (eg, View 0) providing backward compatibility ( 1010 may be applied to the general image and the depth maps of the dependent view (eg, View 1 and View 2) as it is, thereby reducing implementation complexity. In addition, the 3D video codec 1000 according to an exemplary embodiment of the present invention may perform partial encoders on general image and depth maps of dependent viewpoints (eg, View 1 and View 2). By further applying 1020, it is possible to improve coding efficiency.
도 10에서 상술한 3차원 비디오 코덱은 부호화/복호화 전체 과정에 대하여 적용할 수 있으며, 부호화/복호화의 각 단계마다 각각 적용할 수도 있다. The 3D video codec described with reference to FIG. 10 may be applied to the entire encoding / decoding process, and may be applied to each step of encoding / decoding.
[세부 방법][Detailed method]
도 11은 본 발명의 일 실시예에 따른 병합 움직임 방법을 개략적으로 설명하기 위한 개념도이다. 도 11에 도시된 병합 움직임 방법은 HEVC 기반 3차원 비디오 코덱(3D-HEVC)에 의해 수행될 수 있으며, 3D-HEVC은 상술한 도 10의 3차원 비디오 코덱을 기반으로 구현될 수 있다. 11 is a conceptual diagram schematically illustrating a merge motion method according to an embodiment of the present invention. The merge motion method illustrated in FIG. 11 may be performed by an HEVC-based 3D video codec (3D-HEVC), and 3D-HEVC may be implemented based on the 3D video codec of FIG. 10 described above.
본 발명의 일 실시예에 따른 병합 움직임 방법은 현재 PU에 대한 공간적 병합 움직임 후보(spatial merge candidate)와 시간적 병합 움직임 후보(temporal merge candidate)를 유도하고, 그리고 현재 PU에 대한 정보(예컨대, 현재 PU의 시점 정보, 현재 PU의 영상 타입 정보 등)를 기반으로 추가 병합 움직임 후보를 추가적으로 유도하고, 상기 유도된 병합 움직임 후보들을 기반으로 현재 PU에 대한 병합 움직임 후보 리스트(merge candidate list)를 구성할 수 있다. The merge motion method according to an embodiment of the present invention derives a spatial merge motion candidate and a temporal merge motion candidate for the current PU, and information about the current PU (eg, the current PU). Additional merge motion candidates may be additionally derived based on the view information of the UE, image type information of the current PU, etc.), and a merge candidate list for the current PU may be configured based on the derived merge motion candidates. have.
도 11을 참조하면, 본 발명의 일 실시예에 따른 병합 움직임 방법에서, 입력은 현재 PU 정보(혹은 현재 영상 정보), 현재 PU의 영상이 일반 영상인지 혹은 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보), 현재 PU의 시점 정보(ViewID 정보)이며, 출력은 현재 PU에 대한 병합 움직임 후보 리스트이다. Referring to FIG. 11, in the merge motion method according to an embodiment of the present invention, an input includes information on whether current PU information (or current image information), a current PU image is a normal image, or a depth map image. / Depth information), view information of the current PU (ViewID information), and an output is a merge motion candidate list for the current PU.
본 발명의 병합 움직임 방법은 현재 PU에 대하여 “기본 병합 움직임 리스트 구성”(1110) 단계가 기본적으로 수행되어 “기본 병합 움직임 후보 리스트”를 출력할 수 있다. 일예로, “기본 병합 움직임 리스트 구성”(1110)은 HEVC에서의 병합 움직임 후보 리스트 구성 방법을 그대로 사용할 수 있다. In the merge motion method of the present invention, a step of “constructing a basic merge motion list” 1110 is basically performed on the current PU to output a “basic merge motion candidate list”. For example, the “basic merge motion list construction” 1110 may use the merge motion candidate list construction method in HEVC as it is.
다음으로, 본 발명의 병합 움직임 방법은 현재 PU의 영상이 일반 영상인지 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와, 현재 PU에 대한 시점 정보(ViewID 정보)에 따라 “추가 병합 움직임 리스트 구성”(1120) 단계가 추가적으로 수행될 수 있다. 이때, “추가 병합 움직임 리스트 구성”(1120) 단계에서, 입력은 “기본 병합 움직임 리스트 구성”(1110) 단계에서 출력된 “기본 병합 움직임 후보 리스트”이며, 출력은 “확장 병합 움직임 후보 리스트”이다. “추가 병합 움직임 리스트 구성”(1120) 단계는 의존적인 시점(예컨대, 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 대해 수행될 수 있다. Next, in the merge motion method of the present invention, according to the information (Texture / Depth information) on whether the current PU image is a normal image or a depth map image, and the view information (ViewID information) of the current PU, “additional merge motion” is performed. List construction ”1120 may be additionally performed. In this case, in step 1120 of configuring an additional merge motion list, an input is a “default merge motion candidate list” output in step “constituting a basic merge motion list” 1110, and an output is an extended merge motion candidate list. . The “additional merge motion list construction” step 1120 may be performed on the general image and the depth maps for the dependent viewpoints (eg, View 1 and View 2).
본 발명에 따른 병합 움직임 방법에 대한 보다 구체적인 내용은 후술하도록 한다. More details on the merge motion method according to the present invention will be described later.
도 12는 본 발명의 일 실시예에 따른 도 11의 병합 움직임 방법을 하드웨어로 구현한 일예를 나타내는 도면이다. 12 is a diagram illustrating an example of hardware implementation of the merge motion method of FIG. 11 according to an embodiment of the present invention.
도 12를 참조하면, 본 발명의 일 실시예에 따른 병합 움직임 방법을 수행하는 장치(이하, 병합 움직임 장치)(1200)는 기본 병합 움직임 리스트 구성 모듈(1210)과 추가 병합 움직임 리스트 구성 모듈(1220)을 포함한다. Referring to FIG. 12, an apparatus (hereinafter, referred to as a merge movement apparatus) 1200 that performs a merge movement method according to an embodiment of the present invention may include a basic merge movement list construction module 1210 and an additional merge movement list construction module 1220. ).
병합 움직임 장치(1200)의 입력은 공간적 병합 움직임 후보, 시간적 병합 움직임 후보, 추가 병합 움직임 후보이다. 병합 움직임 장치(1200)의 출력은 독립적인 시점에 대한 일반 영상의 경우에는 기본 병합 움직임 후보 리스트이고, 의존적인 시점에 대한 일반 영상과 깊이정보 맵의 경우에는 확장 병합 움직임 후보 리스트이다. Inputs of the merge motion device 1200 are spatial merge motion candidates, temporal merge motion candidates, and additional merge motion candidates. The output of the merge motion device 1200 is a basic merge motion candidate list in the case of a normal image for an independent view, and an extended merge motion candidate list in the case of a normal image and a depth map for a dependent view.
상술한 바와 같이, 독립적인 시점은 다른 시점과 상관없이 독립적으로 부호화될 수 있는 시점을 말하며, 기본 시점(base view)일 수 있다. 의존적인 시점은 독립적인 시점을 참조하여 부호화되는 시점을 말한다. 본 명세서에서는 설명의 편의를 위하여, 예컨대, 독립적인 시점은 시점 0(View 0)일 수 있으며, 의존적인 시점은 시점 1(view 1)과 시점 2(view 2)를 포함하는 것으로 기술하였다. As described above, the independent view refers to a view that can be encoded independently regardless of other views, and may be a base view. The dependent view refers to a view that is encoded by referring to an independent view. For convenience of description, for example, the independent view may be a view 0, and the dependent view is described as including a view 1 and a view 2.
기본 병합 움직임 리스트 구성 모듈(1210)은 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 유도하여 기본 병합 움직임 후보 리스트를 구성할 수 있다. The basic merge motion list construction module 1210 may construct a basic merge motion candidate list by deriving a spatial merge motion candidate and a temporal merge motion candidate for the current PU.
공간적 병합 움직임 후보는, 도 8에 도시된 바와 같이, 현재 PU와 공간적으로 인접한 주변 블록(A, B, C, D, E)으로부터 유도될 수 있다. The spatial merge motion candidate may be derived from neighboring blocks A, B, C, D, E spatially adjacent to the current PU, as shown in FIG.
기본 병합 움직임 리스트 구성 모듈(1210)은 주변 블록(A, B, C, D, E)이 가용한지(available) 여부를 판단하고, 가용한 주변 블록의 움직임 정보를 현재 PU에 대한 공간적 병합 움직임 후보로 결정할 수 있다. 이때, 주변 블록(A, B, C, D, E)이 가용한지 여부를 판단할 때, 미리 정해진 순서 혹은 임의의 순서에 따라 주변 블록(A, B, C, D, E)의 가용성 여부를 판단할 수 있다. 예컨대, A, B, C, D, E 순으로 진행될 수 있다.The basic merge motion list constructing module 1210 determines whether neighboring blocks A, B, C, D, and E are available, and uses the motion information of the available neighboring blocks for the spatial merge motion candidate for the current PU. Can be determined. At this time, when determining whether the neighboring blocks (A, B, C, D, E) are available, whether or not the availability of the neighboring blocks (A, B, C, D, E) in a predetermined order or in any order You can judge. For example, it may proceed in the order of A, B, C, D, and E.
시간적 병합 움직임 후보는, 도 8에 도시된 바와 같이, 현재 PU에 대한 동일 위치의 픽처(co-located picture; col picture) 내 동일 위치의 블록(co-located block; col block)(H, M)으로부터 유도될 수 있다. 동일 위치의 블록 H는 동일 위치의 픽처 내 현재 PU와 대응하는 위치의 블록(X’)을 기준으로 하단 우측(bottom right)에 위치하는 PU 블록일 수 있다. 동일 위치의 블록 M은 동일 위치의 픽처 내 현재 PU와 대응하는 위치의 블록(X’)을 기준으로 X’ 블록의 중앙에 위치하는 PU 블록일 수 있다. As shown in FIG. 8, the temporal merge motion candidate is a co-located block (col block) (H, M) in a co-located picture (col picture) with respect to the current PU. Can be derived from. The block H of the same position may be a PU block located at the bottom right based on the block X ′ of the position corresponding to the current PU in the picture of the same position. The block M of the same position may be a PU block located at the center of the X ′ block based on the block X ′ of the position corresponding to the current PU in the picture of the same position.
기본 병합 움직임 리스트 구성 모듈(1210)은 동일 위치의 블록(H, M)이 가용한지 여부를 판단하고, 가용한 동일 위치의 블록의 움직임 정보를 현재 PU에 대한 시간적 병합 움직임 후보로 결정할 수 있다. 이때, 동일 위치의 블록(H, M)의 가용성 여부를 판단하는 순서는 H 블록, M 블록 순일 수 있고, 또는 그 반대 순서일 수도 있다.The basic merge motion list construction module 1210 may determine whether the blocks H and M at the same location are available and determine the motion information of the blocks at the same location as the temporal merge motion candidate for the current PU. In this case, the order of determining availability of the blocks H and M in the same position may be in the order of H blocks, M blocks, or vice versa.
추가 병합 움직임 리스트 구성 모듈(1220)은 현재 PU의 영상이 일반 영상인지 혹은 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보), 현재 PU에 대한 시점 정보(ViewID 정보)를 기반으로 현재 PU에 대한 추가 병합 움직임 후보를 유도하여 확장 병합 움직임 후보 리스트를 구성할 수 있다. The additional merge motion list construction module 1220 may determine whether the current PU image is a normal image or a depth map image (Texture / Depth information), and a current PU based on view information (ViewID information) of the current PU. Additional merge motion candidates may be derived to construct an extended merge motion candidate list.
현재 PU의 영상이 의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵일 경우, 추가 병합 움직임 리스트 구성 모듈(1220)은 추가적으로 현재 PU의 의존적인 시점에 대한 일반 영상과 깊이정보 맵을 위한 병합 움직임 후보 리스트를 구성하는 과정을 수행할 수 있다. If the image of the current PU is a normal image and a depth map for the dependent view (eg, view 1 and view 2), the additional merge motion list construction module 1220 additionally relies on the current PU. A process of constructing a merge motion candidate list for the general image and the depth map for the in-view may be performed.
이때, 추가 병합 움직임 리스트 구성 모듈(1220)의 입력은, 기본 병합 움직임 리스트 구성 모듈(1210)에 의해 구성된 기본 병합 움직임 후보 리스트와 추가 병합 움직임 후보(F, G)이다. 추가 병합 움직임 리스트 구성 모듈(1220)의 출력은 확장 병합 움직임 후보 리스트이다. In this case, the inputs of the additional merge motion list constructing module 1220 are the basic merge motion candidate list configured by the basic merge motion list constructing module 1210 and the additional merge motion candidates F and G. The output of the additional merge motion list construction module 1220 is an extended merge motion candidate list.
의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵을 위한 병합 움직임 후보 리스트를 구성하기 위해서, 상술한 바와 같이 본 발명의 실시예에 따른 병합 움직임 장치는, 새로운 모듈을 구현하지 않고 단지 추가적인 부분 모듈만 구현함으로써 하드웨어의 구현 복잡도를 감소시킬 수 있다. 즉, 이미 하드웨어 칩 형태로 구현이 완료된 기본 계층(예컨대, 시점0(View 0)에 대한 일반 영상)을 위한 “병합 움직임 후보 리스트 구성” 모듈을 그대로 재사용하여 향상 계층(예컨대, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵)에 적용함으로써, 하드웨어 구현 복잡도를 감소시킬 수 있다.In order to construct a merge motion candidate list for a general image and a depth map for a dependent view (eg, view 1 and view 2), as described above, according to an embodiment of the present invention The merge motion device can reduce the implementation complexity of the hardware by implementing only additional partial modules without implementing new modules. That is, the "merge motion candidate list construction" module for the base layer (for example, the general image of the view 0), which has already been implemented in the form of a hardware chip, is reused as it is and the enhancement layer (for example, the view 1 (View 1). ) And the complexity of hardware implementation can be reduced.
도 13은 본 발명의 일 실시예에 따라 도 11 및 도 12의 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 개념도이다. 도 13의 병합 움직임 후보 리스트 구성 방법은 상술한 도 10의 3차원 비디오 코덱 혹은 도 12의 병합 움직임 장치에서 수행될 수 있다. 13 is a conceptual diagram illustrating a method of constructing a merge motion candidate list of FIGS. 11 and 12 according to an embodiment of the present invention. The method of constructing the merge motion candidate list of FIG. 13 may be performed by the 3D video codec of FIG. 10 or the merge motion apparatus of FIG. 12.
도 13을 참조하면, 본 발명의 실시예에 따른 병합 움직임 후보 리스트를 구성하기 위해서, 입력은 현재 PU 정보, 현재 PU의 영상이 일반 영상인지 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보), 현재 PU에 대한 시점 정보(ViewID 정보)이며, 출력은 현재 PU에 대한 병합 움직임 후보 리스트이다. Referring to FIG. 13, in order to construct a merge motion candidate list according to an embodiment of the present invention, an input includes current PU information and information on whether a current PU image is a normal image or a depth map image (Texture / Depth information). It is view information (ViewID information) for the current PU, and the output is a merge motion candidate list for the current PU.
우선, 현재 PU에 대하여 기본 병합 움직임 후보 리스트(1310)가 구성된다. 예를 들어, 기본 병합 움직임 후보 리스트는 HEVC에서의 병합 움직임 후보 리스트 구성 방법을 그대로 사용할 수 있으며, 상술한 바와 같이 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 기반으로 구성될 수 있다. First, a basic merge motion candidate list 1310 is configured for the current PU. For example, the basic merge motion candidate list may use the merge motion candidate list construction method in HEVC as it is, and may be configured based on the spatial merge motion candidate and the temporal merge motion candidate for the current PU as described above.
다음으로, 현재 PU 영상이 일반 영상인지 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보) 및 현재 PU 영상에 대한 시점 정보(ViewID 정보)를 기반으로 확장 병합 움직임 후보 리스트(1320)가 구성된다. 이때, 확장 병합 움직임 후보 리스트는 의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵들에 대하여 구성될 수 있으며, 상술한 바와 같이 추가 병합 움직임 후보가 추가될 수 있다. Next, an extended merge motion candidate list 1320 is configured based on information on whether the current PU image is a normal image or a depth map image (Texture / Depth information) and view information on the current PU image (ViewID information). . In this case, the extended merge motion candidate list may be configured for general image and depth maps for dependent viewpoints (eg, view 1 and view 2). As described above, the additional merge motion candidate list may be configured. Candidates may be added.
만일, 현재 PU가 독립적인 시점(예컨대, 시점0(View 0))의 일반 영상일 경우, 기본 병합 움직임 후보 리스트가 출력될 수 있다. 그렇지 않고, 현재 PU가 의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵들일 경우, 확장 병합 움직임 후보 리스트가 출력될 수 있다. If the current PU is a general image of an independent view (eg, View 0), a basic merge motion candidate list may be output. Otherwise, when the current PU is a general image and depth maps for a dependent view (eg, view 1 and view 2), an extended merge motion candidate list may be output.
이때, 확장 병합 움직임 후보 리스트의 후보 개수는 기본 병합 움직임 후보 리스트의 후보 개수보다 많을 수 있다. In this case, the number of candidates in the extended merge motion candidate list may be larger than the number of candidates in the basic merge motion candidate list.
도 14는 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다. 14 illustrates a method of constructing an extended merge motion candidate list according to an embodiment of the present invention.
도 14를 참조하면, 본 발명의 실시예에 따른 확장 병합 움직임 후보 리스트는, 추가적인 움직임 정보인 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트의 첫번째 항목(index)(혹은 임의의 위치에 해당하는 항목)에 삽입할 수 있다. Referring to FIG. 14, an extended merge motion candidate list according to an embodiment of the present invention may include an additional merge motion candidate (eg, motion information F), which is additional motion information, in a first index (or arbitrary) of the extended merge motion candidate list. Can be inserted into the item corresponding to the position of.
이때, 추가 병합 움직임 후보를 삽입하기 전에, 추가 병합 움직임 후보(예컨대, 움직임 정보 F)와 기본 병합 움직임 후보 리스트의 첫번째 병합 움직임 후보(예컨대, 움직임 정보 A)를 서로 비교하고, 두 후보가 동일하지 않을 경우에 확장 병합 움직임 후보 리스트의 첫번째 항목에 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 삽입할 수 있으며, 그 역도 가능하다. 예를 들어, 두 후보(예컨대, 움직임 정보 F와 A)의 움직임 정보를 비교할 때, 두 후보의 움직임 벡터의 차이가 임의의 임계값 이내일 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트에 삽입하지 않을 수 있으며, 그 역도 가능하다. 또는, 두 후보의 참조 영상이 동일하지 않을 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트에 삽입할 수 있으며, 그 역도 가능하다. At this time, before inserting the additional merge motion candidate, the additional merge motion candidate (eg, motion information F) and the first merge motion candidate (eg, motion information A) of the basic merge motion candidate list are compared with each other, and the two candidates are not the same. If not, an additional merge motion candidate (eg, motion information F) may be inserted into the first item of the extended merge motion candidate list, and vice versa. For example, when comparing motion information of two candidates (eg, motion information F and A), if the difference between the motion vectors of the two candidates is within an arbitrary threshold, an additional merged motion candidate (eg, motion information F) is selected. It may not be inserted into the extended merge motion candidate list, and vice versa. Alternatively, when the reference images of the two candidates are not the same, an additional merge motion candidate (eg, motion information F) may be inserted into the extended merge motion candidate list, and vice versa.
도 15는 본 발명의 다른 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다. 15 is a diagram for describing a method of constructing an extended merge motion candidate list according to another embodiment of the present invention.
도 15를 참조하면, 본 발명의 실시예에 따른 확장 병합 움직임 후보 리스트는, 추가적인 움직임 정보인 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트의 첫번째 항목에 삽입하고, 또 다른 추가적인 움직임 정보인 추가 병합 움직임 후보(예컨대, 움직임 정보 G)를 확장 병합 움직임 후보 리스트의 세번째 항목(혹은 임의의 위치에 해당하는 항목)에 삽입할 수 있다. Referring to FIG. 15, the extended merge motion candidate list according to an embodiment of the present invention inserts additional merge motion candidate (eg, motion information F), which is additional motion information, into a first item of the extended merge motion candidate list, and another An additional merge motion candidate (eg, motion information G), which is additional motion information, may be inserted into a third item (or an item corresponding to an arbitrary position) of the extended merge motion candidate list.
이때, 추가 병합 움직임 후보를 삽입하기 전에, 기본 병합 움직임 후보 리스트 내의 원래 항목(첫번째 항목 및 세번째 항목)과 추가 병합 움직임 후보(예컨대, 움직임 정보 F와 G)를 서로 비교하고, 두 후보(예컨대, 움직임 정보 A와 F, 혹은 움직임 정보 C와 G)가 동일하지 않을 경우에 확장 병합 움직임 후보 리스트의 첫번째 항목과 세번째 항목에 추가 병합 움직임 후보를 삽입할 수 있으며, 그 역도 가능하다. 예를 들어, 두 후보(예컨대, 움직임 정보 A와 F, 혹은 움직임 정보 C와 G)의 움직임 정보를 비교할 때, 두 후보의 움직임 벡터의 차이가 임의의 임계값 이내일 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F 혹은 G)를 확장 병합 움직임 후보 리스트에 삽입하지 않을 수 있으며, 그 역도 가능하다. 또는, 두 후보의 참조 영상이 동일하지 않을 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F 혹은 G)를 확장 병합 움직임 후보 리스트에 삽입할 수 있으며, 그 역도 가능하다. At this time, before inserting the additional merge motion candidate, the original items (first item and third item) in the basic merge motion candidate list and the additional merge motion candidates (eg, motion information F and G) are compared with each other, and the two candidates (eg, If motion information A and F or motion information C and G) are not the same, additional merge motion candidates may be inserted into the first and third items of the extended merge motion candidate list, and vice versa. For example, when comparing motion information of two candidates (eg, motion information A and F, or motion information C and G), if the difference between the motion vectors of the two candidates is within a certain threshold, the additional merge motion candidate ( For example, the motion information F or G) may not be inserted into the extended merge motion candidate list, and vice versa. Alternatively, when the reference images of the two candidates are not the same, additional merge motion candidates (eg, motion information F or G) may be inserted into the extended merge motion candidate list, and vice versa.
[추가 방법들][Additional Methods]
상술한 도 10 내지 도 13의 방법들은 다음과 같이 다양하게 적용될 수 있다. 10 to 13 may be variously applied as follows.
1. 일 실시예로, 기본 인코더(혹은 기본 모듈)를 시점 0(View 0)에 대한 일반 영상뿐만 아니라 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵들에 적용할 수 있다.1. In one embodiment, the basic encoder (or basic module) is applied to the general image and depth maps for view 1 and view 2 as well as the general image for view 0. can do.
2. 다른 실시예로, 기본 인코더(혹은 기본 모듈)를 복잡도가 높은 작은 블록단위(일예로, 8x8 단위 혹은 임의의 블록 크기)에만 적용할 수 있다. 이때, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵들에 대하여, 작은 블록 크기 이하에서는 기본 인코더(혹은 기본 모듈)를 사용하여 부호화되고, 작은 블록 크기보다 클 경우에는 기본 인코더(혹은 기본 모듈)와 부분 인코더(혹은 확장 모듈)를 사용하여 부호화될 수 있다. 여기서, 기본 인코더(혹은 기본 모듈)은 도 11과 도 13에서 “기본 병합 움직임 리스트 구성” 단계를 수행할 수 있으며, 부분 인코더(혹은 확장 모듈)은 도 11과 도 13에서 “추가 병합 움직임 리스트 구성” 단계를 수행할 수 있다. 2. In another embodiment, the base encoder (or base module) may be applied only to small blocks of high complexity (eg, 8x8 units or arbitrary block sizes). In this case, for the general image and the depth maps of the view 1 and the view 2, the data is encoded using a basic encoder (or a basic module) below the small block size and larger than the small block size. Can be encoded using a basic encoder (or base module) and a partial encoder (or extension module). Here, the basic encoder (or basic module) may perform the step of “constituting the basic merge motion list” in FIGS. 11 and 13, and the partial encoder (or the extension module) may configure the “additional merge motion list” in FIGS. 11 and 13. Step can be performed.
도 16은 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다. 도 16의 방법은 상술한 도 10 및 도 12에서 도시된 장치에 의해 수행될 수 있으며, 또는 3D-HEVC에 적용하여 수행될 수도 있다. 설명의 편의 상, 도 16의 방법은 병합 움직임 장치에 의해 수행되는 것으로 설명한다. 16 is a flowchart schematically illustrating a method of constructing a merge motion candidate list according to an embodiment of the present invention. The method of FIG. 16 may be performed by the apparatus shown in FIGS. 10 and 12 described above, or may be performed by applying to 3D-HEVC. For convenience of explanation, the method of FIG. 16 is described as being performed by the merge motion device.
도 16을 참조하면, 병합 움직임 장치는 현재 PU를 위한 병합 움직임 후보 리스트에 기본 병합 움직임 후보들을 추가한다(S1600). Referring to FIG. 16, the merge motion apparatus adds basic merge motion candidates to the merge motion candidate list for the current PU (S1600).
여기서, 기본 병합 움직임 후보들은, 상술한 바와 같이 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 포함할 수 있으며, 독립적인 시점의 일반 영상에 대한 후보들일 수 있다. Here, the basic merge motion candidates may include a spatial merge motion candidate and a temporal merge motion candidate for the current PU as described above, and may be candidates for a general image of an independent view.
병합 움직임 장치는 현재 PU를 포함하는 현재 픽처가 깊이정보 맵인지 또는 의존적인 시점인지를 판단한다(S1610). The merge motion device determines whether the current picture including the current PU is a depth map or a dependent view (S1610).
만일, 현재 PU를 포함하는 현재 픽처가 깊이정보 맵 또는 의존적인 시점이라면, 병합 움직임 장치는 병합 움직임 후보 리스트에 확장 병합 움직임 후보를 추가한다(S1620). If the current picture including the current PU is a depth map or a dependent view, the merge motion device adds an extended merge motion candidate to the merge motion candidate list (S1620).
여기서, 확장 병합 움직임 후보는 깊이정보 맵 또는 의존적인 시점의 영상(일반 영상 및 깊이정보 맵)에 대한 후보들일 수 있다. Here, the extended merge motion candidates may be candidates for a depth map or an image (normal image and depth map) of a dependent view.
표 1 내지 표 6의 기술 형식은 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 JCT-3V(Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11)의 기술 형식이다.The technical formats of Tables 1-6 are Joint Collaborative Team on 3D Video Coding Extensions of ITU-T SG 16, currently being standardized jointly by the Moving Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG). WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11).
표 1은 기존 확장 병합 움직임 후보를 추가하는 과정을 포함하는 프로세스의 입출력의 일예를 나타내고, 표 2는 본 발명의 실시예에 따른 확장 병합 움직임 후보를 추가하는 과정을 포함하는 프로세스의 입출력의 일예를 나타낸다. Table 1 shows an example of the input and output of the process including the addition of the existing extended merge motion candidate, Table 2 shows an example of the input and output of the process including the addition of the extended merge motion candidate according to an embodiment of the present invention Indicates.
표 2에 도시된 본 발명의 실시예에 따른 확장 병합 움직임 후보를 추가하는 과정은 추가적인 입력으로서, 병합 움직임 후보 리스트(mergCandList), 기본 병합 움직임 후보가 추가 되었는지를 지시하는 플래그(availableFlagN)가 사용 된다.In the process of adding an extended merge motion candidate according to an embodiment of the present invention shown in Table 2, a merge motion candidate list (mergCandList) and a flag (availableFlagN) indicating whether a default merge motion candidate has been added are used as additional inputs. .
표 2에서 N은 좌(left), 상(above), 우상(above-right), 좌하(bottom-left), 좌상(above-left) 위치의 후보임을 의미하는 A0, A1, B0, B1, B2로 대체될 수 있다. 입력 받은 병합 움직임 후보 리스트(mergCandList)에는 기존 방법에 의하여 기본 병합 움직임 후보들이 임의의 우선 순위대로 저장되어 있다. 일 예로, 좌 후보, 상 후보, 우상 후보, 좌하 후보, 좌상 후보, 시간적 (예측) 후보, 합성 양방향 예측 후보(combined bi-predictive candidate), 움직임이 0인 후보 순서로 저장 되어 있을 수 있다. 출력은 확장 병합 움직임 후보들에 대한 추가 작업이 완료된 병합 움직임 후보 리스트이다.In Table 2, N is A0, A1, B0, B1, B2, meaning that it is a candidate for left, above, above-right, bottom-left, above-left positions. Can be replaced with In the received merge motion candidate list (mergCandList), basic merge motion candidates are stored in an arbitrary order according to a conventional method. For example, the left candidate, the top candidate, the top right candidate, the bottom left candidate, the top left candidate, the temporal (prediction) candidate, the combined bi-predictive candidate, and the candidate with zero motion may be stored. The output is a merge motion candidate list in which additional work on extended merge motion candidates is completed.
표 3은 기존 확장 병합 움직임 후보 추가 과정을 나타낸 것이고, 표 4는 본 발명의 실시예에 따른 확장 병합 움직임 후보 추가 과정을 나타낸 것이다. Table 3 shows an existing extended merge motion candidate addition process, and Table 4 shows an extended merge motion candidate addition process according to an embodiment of the present invention.
표 4에서는 기본 병합 움직임 후보들이 이미 추가되어 있는 리스트를 처리하므로, 확장 병합 움직임 후보들에 대한 과정들만을 처리하게 된다. 따라서, 기존 3D-HEVC에서, HEVC에서 사용하던 병합 움직임 후보들에 대한 처리가 중복 구현되지 않도록 생략할 수 있다. Table 4 processes the list to which the basic merge motion candidates are already added, and thus processes only the processes for the extended merge motion candidates. Therefore, in the existing 3D-HEVC, it can be omitted so that the processing for the merge motion candidates used in the HEVC is not repeatedly implemented.
표 4에 기술된 본 발명의 실시예에 따른 확장 병합 움직임 후보 추가 과정에서는 혼합 양방향 예측 후보(combined bi-predictive candidate)를 유도할 시, 확장 움직임 병합 후보들을 추가로 이용하는 기존 방법을 사용하지 않고, HEVC 표준에서 사용하는 기본 움직임 병합 후보들만을 혼합하여 유도하는 방법을 사용하여 기존 방법보다 연산을 줄이면서 거의 동일한 부호화 효율을 얻을 수 있다.In the process of adding extended merge motion candidates according to an embodiment of the present invention described in Table 4, when deriving a combined bi-predictive candidate, the existing method using additional extended motion merge candidates is not used. By using a method of mixing only the basic motion merging candidates used in the HEVC standard, the same coding efficiency can be obtained while reducing the operation compared to the conventional method.
표 4에 기술된 본 발명의 실시예에 따른 확장 병합 움직임 후보 추가 과정은 도 17a 내지 도 17f을 참조하여 구체적으로 설명하도록 한다. An extended merge motion candidate addition process according to an embodiment of the present invention described in Table 4 will be described in detail with reference to FIGS. 17A to 17F.
도 17a, 도 17b, 도 17c, 도 17d, 도 17e 및 도 17f은 본 발명의 일 실시예에 따른 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가하는 방법을 나타내는 순서도이다. 17A, 17B, 17C, 17D, 17E, and 17F are flowcharts illustrating a method of adding an extended merge motion candidate to a merge motion candidate list according to an embodiment of the present invention.
도 17a 내지 도 17f의 방법은 상술한 표 4의 확장 병합 움직임 후보 추가 과정을 기반으로 구성된 것이다. 도 17a 내지 도 17f의 방법은 상술한 도 10 및 도 12에서 도시된 장치에 의해 수행될 수 있으며, 또는 3D-HEVC에 적용하여 수행될 수도 있다. 17A to 17F are constructed based on the process of adding the extended merge motion candidate of Table 4 described above. The method of FIGS. 17A to 17F may be performed by the apparatus shown in FIGS. 10 and 12 described above, or may be applied to 3D-HEVC.
1. 플래그 iv_mv_pred_flag[nuh_layer_id]는 현재 PU가 시점 간 예측(inter view prediction)을 시도 할 수 있는가를 의미한다. 상기 플래그 iv_mv_pred_flag[nuh_layer_id]가 1이라면, 시점 간 병합 후보(inter-view merge candidate: IvMC), 시차 병합 후보(inter-view disparity merge candidate; IvDC), 이동된 시점 간 병합 후보(shifted inter-view merge candidate: IvMCShift)의 사용 가능 여부를 확인하여 각각 플래그 availableFlagIvMC, availableIvMCShift, availableFlagIvDC에 저장하고, 사용 가능한 후보들의 움직임 정보를 유도한다.1. The flag iv_mv_pred_flag [nuh_layer_id] means whether the current PU can attempt inter view prediction. If the flag iv_mv_pred_flag [nuh_layer_id] is 1, an inter-view merge candidate (IvMC), an inter-view disparity merge candidate (IvDC), and a shifted inter-view merge candidate (shifted inter-view merge) The availability of candidate (IvMCShift) is checked and stored in the flags availableFlagIvMC, availableIvMCShift, and availableFlagIvDC, respectively, to derive motion information of available candidates.
2. 플래그 view_synthesis_pred_flag[nuh_layer_id]는 현재 PU가 시점 합성 예측(view synthesis prediction)을 시도 할 수 있는가를 의미한다. 상기 플래그 view_synthesis_pred_flag[nuh_layer_id]가 1이라면, 시점 간 합성 병합 후보의 사용 가능 여부를 플래그 availableFlagVSP에 저장하고, 사용 가능하다면 움직임 정보를 유도한다.2. The flag view_synthesis_pred_flag [nuh_layer_id] indicates whether the current PU can try view synthesis prediction. If the flag view_synthesis_pred_flag [nuh_layer_id] is 1, whether or not the inter-view synthesis merge candidate is available is stored in the flag availableFlagVSP, and if available, the motion information is derived.
3. 플래그 mpi_flag[nuh_layer_id]는 현재 PU가 깊이정보 맵이며, 텍스처 블록으로부터 움직임 예측을 시도 할 수 있는가를 의미한다. 상기 플래그 mpi_flag[nuh_layer_id]가 1이면, 텍스처 병합 후보의 사용 가능 여부를 플래그 availableFlagT에 저장하고, 사용 가능하다면 움직임 정보를 유도한다.3. The flag mpi_flag [nuh_layer_id] indicates whether the current PU is a depth map and can attempt motion prediction from a texture block. If the flag mpi_flag [nuh_layer_id] is 1, whether the texture merge candidate is available or not is stored in the flag availableFlagT, and if available, the motion information is derived.
4. 현재까지 기본 병합 움직임 후보들로만 구성된 병합 움직임 후보 리스트(mergeCandList)와 각 후보에 대한 시점 간 예측 플래그(mergeCandIsVspFlag)는 다음과 같은 과정으로 재구성 된다.4. To date, a merge motion candidate list (mergeCandList) consisting of only basic merge motion candidates and the inter-view prediction flag (mergeCandIsVspFlag) for each candidate are reconstructed as follows.
a. numMergeCand은 병합 움직임 후보의 총 개수, numA1B1B0는 기본 병합 움직임 후보 중 좌(left), 상(above), 우상(above-right) 위치에 해당하는 후보들의 개수, numA0B2는 기본 병합 움직임 후보 중 좌하(bottom-left), 좌상(above-left)의 위치에 해당하는 후보들의 개수이다. numMergeCand, numA1B1B0, numA0B2을 0으로 초기화 한다.a. numMergeCand is the total number of merge motion candidates, numA1B1B0 is the number of candidates corresponding to the left, upper, and right-right positions among the default merge motion candidates, and numA0B2 is the bottom left of the default merge motion candidates. -left), the number of candidates corresponding to the above-left position. Initialize numMergeCand, numA1B1B0, numA0B2 to 0.
b. 좌 후보(A1)가 사용 가능한지 판단한다. 좌 후보가 사용 가능하다면, numA1B1B0을 1 증가시킨다. 또한, 좌 후보가 시점 간 합성 예측(View Synthesis Prediction, 이하 VSP)을 사용하였는지를 플래그로 저장한다.b. It is determined whether the left candidate A1 is available. If left candidates are available, numA1B1B0 is increased by one. In addition, it stores as a flag whether the left candidate uses View Synthesis Prediction (VSP).
c. 상 후보(B1)가 사용 가능한지 판단한다. 상 후보가 사용 가능하다면, numA1B1B0을 1 증가시킨다. 또한, 상 후보가 VSP를 사용하였는지를 플래그로 저장한다.c. It is determined whether the award candidate B1 is available. If phase candidates are available, numA1B1B0 is increased by one. In addition, it stores as a flag whether the prize candidate used the VSP.
d. 우상 후보(B0)가 사용 가능한지 판단한다. 우상 후보가 사용 가능하다면, numA1B1B0을 1 증가시킨다. 또한, 우상 후보가 VSP를 사용하였는지를 플래그로 저장한다.d. It is determined whether the idol candidate B0 is available. If the idol candidate is available, numA1B1B0 is increased by one. In addition, it stores as a flag whether the idol candidate used the VSP.
e. 좌하 후보(A0)가 사용 가능한지 판단한다. 좌하 후보가 사용 가능하다면, numA0B2을 1 증가시킨다. 또한, 좌하 후보가 VSP 사용하였는지를 플래그로 저장한다.e. It is determined whether the lower left candidate A0 is available. If left lower candidate is available, numA0B2 is increased by one. It also stores as a flag whether the lower left candidate has used VSP.
f. 좌상 후보(B2)가 사용 가능한지 판단한다. 좌상 후보가 사용 가능하다면, numA0B2을 1 증가시킨다. 또한, 좌상 후보가 VSP을 사용하였는지를 플래그로 저장한다.f. It is determined whether the upper left candidate B2 is available. If the top left candidate is available, numA0B2 is increased by one. It also stores as a flag whether the upper left candidate used the VSP.
g. 플래그 availableFlagT가 1이면 다음 과정을 수행한다.g. If the flag availableFlagT is 1, the following process is performed.
- pruneFlagA1, pruneFlagB1을 0으로 설정한다.Set pruneFlagA1 and pruneFlagB1 to 0.
- 좌 후보가 사용 가능하고, 텍스처 후보의 움직임 정보가 좌 후보와 같다면 pruneFlagA1을 1로 설정한다.If the left candidate is available and the motion information of the texture candidate is the same as the left candidate, pruneFlagA1 is set to 1.
- 상 후보가 사용 가능하고, 텍스처 후보의 움직임 정보가 상 후보와 같다면 pruneFlagB1을 1로 설정한다.If the prize candidate is available and the motion information of the texture candidate is the same as the prize candidate, pruneFlagB1 is set to one.
- 만일 pruneFlagA1과 pruneFlagB1이 모두 0이면, 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든다. 이 때, 새로운 공간을 하나 만든다는 것은 리스트 내의 numMergeCand 위치에서부터의 모든 값들을 오른쪽 값으로 한 칸씩 이동 시킨다는 것을 의미한다.If pruneFlagA1 and pruneFlagB1 are both 0, it creates a new space at numMergeCand position in the list. In this case, creating a new space means moving all values from the numMergeCand position in the list one space to the right.
- 그 밖의 경우, 다음 과정을 수행한다.-In other cases, carry out the following procedure.
numA1B1B0를 1 감소시킨다. Decreases numA1B1B0 by 1
좌, 상 후보가 모두 사용 가능하고 pruneFlagA1이 0이라면 리스트의 두 번째 값을 첫 번째 값으로 설정한다. If both left and top candidates are available and pruneFlagA1 is 0, the second value in the list is set as the first value.
- 리스트의 첫 번째 값을 텍스처 후보로 설정하고 numMergeCand을 1 증가시킨다.Set the first value in the list as a texture candidate and increment numMergeCand by one.
h. 플래그 availableFlagIvMC가 1이면 다음 과정을 수행한다.h. If the flag availableFlagIvMC is 1, the following process is performed.
- pruneFlagA1, pruneFlagB1, pruneFlagT, addIvMC를 0으로 설정한다.Set pruneFlagA1, pruneFlagB1, pruneFlagT, and addIvMC to 0.
- 현재 픽처가 텍스처이면(DepthFlag=1), 다음 과정을 수행한다.If the current picture is a texture (DepthFlag = 1), the following process is performed.
좌 후보가 사용 가능하고, 시점 간 후보의 움직임 정보가 좌 후보와 같다면 pruneFlagA1을 1로 설정한다. If the left candidate is available and the motion information of the inter-view candidate is equal to the left candidate, pruneFlagA1 is set to 1.
상 후보가 사용 가능하고, 시점 간 후보의 움직임 정보가 상 후보와 같다면 pruneFlagB1을 1로 설정한다. If the prize candidate is available and the motion information of the inter-view candidate is the same as the prize candidate, pruneFlagB1 is set to one.
- 현재 픽처가 깊이맵이고(DepthFlag=0), 텍스처 후보가 사용 가능하고, 시점 간 후보의 움직임 정보가 텍스처 후보와 같다면 pruneFlagT을 1로 설정한다.If the current picture is a depth map (DepthFlag = 0), a texture candidate is available, and the motion information of the inter-view candidate is the same as the texture candidate, pruneFlagT is set to 1.
- 만일 pruneFlagA1, pruneFlagB1, pruneFlagT가 모두 0이면, 리스트의 numMergeCand 위치에 새로운 공간을 하나 만들고, addIvMC를 1로 설정한다.If pruneFlagA1, pruneFlagB1, and pruneFlagT are all zeros, a new space is created at the numMergeCand position in the list, and addIvMC is set to one.
- 그렇지 않고, 현재 픽처가 텍스처이며(DepthFlag=0) 시점 간 후보의 움직임 정보가 좌 후보 또는 상 후보와 같다면, 다음 과정을 수행한다.Otherwise, if the current picture is a texture (DepthFlag = 0) and the motion information of the inter-view candidate is equal to the left candidate or the top candidate, the following process is performed.
numA1B1B0를 1 감소시킨다. Decreases numA1B1B0 by 1
addIvMC를 1로 설정한다. Set addIvMC to 1.
좌, 상 후보가 모두 사용 가능하고 pruneFlagA1이 0이라면 리스트의 두 번째 값을 첫 번째 값으로 설정한다. If both left and top candidates are available and pruneFlagA1 is 0, the second value in the list is set as the first value.
- addIvMC가 1이라면, 리스트의 첫 번째 값을 텍스처 후보로 설정하고 numMergeCand을 1 증가시킨다.If addIvMC is 1, set the first value in the list as a texture candidate and increment numMergeCand by one.
i. numMergeCand에 numA1B1B0을 더한다.i. Add numA1B1B0 to numMergeCand.
j. 플래그 availableFlagIvDC가 1이면 다음 과정을 수행한다.j. If the flag availableFlagIvDC is 1, the following process is performed.
- 시차 병합 후보(IvDC)의 움직임 정보와 사용 가능한 좌 후보 및 상 후보를 비교한다. 그 결과, 좌 후보 및 상 후보의 움직임 정보와 모두 다르다면 병합 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든 후 시차 병합 후보(IvDC)를 추가한다. The motion information of the disparity merging candidate (IvDC) is compared with the available left and top candidates. As a result, if the motion information of the left candidate and the top candidate is different from each other, a new space is created at the numMergeCand position of the merge list and then a parallax merge candidate (IvDC) is added.
- numMergeCand을 1 증가시킨다.-increase numMergeCand by 1
k. 플래그 availableFlagVSP가 1이고, 밝기보상 프래그(ic_flag)가 0이고, 잔여 오차 신호 예측 계수(iv_res_pred_weight_idx)가 0이고, numMergeCand가 5 + 추가 병합후보 개수(NumExtraMergeCand)보다 작으면 시점 합성 병합 후보를 리스트에 추가하고 numMergeCand3DV, numMergeCand를 1 증가시킨다.k. If the flag availableFlagVSP is 1, the brightness compensation flag (ic_flag) is 0, the residual error signal prediction coefficient (iv_res_pred_weight_idx) is 0, and numMergeCand is less than 5 + the number of additional merge candidates (NumExtraMergeCand), then the start synthesis merge candidates are added to the list. Add and increase numMergeCand3DV, numMergeCand by 1.
l. numMergeCand에 numA0B2를 더한다.l. Add numA0B2 to numMergeCand.
m. 플래그 availableFlagIvMCShift가 1이고 numMergeCand가 리스트의 최대 길이(일예로 6)보다 작으면, 다음 과정을 수행한다.m. If the flag availableFlagIvMCShift is 1 and numMergeCand is smaller than the maximum length of the list (for example, 6), the following process is performed.
- 시점 간 병합 후보(IvMC)가 사용 가능하다면, 시점 간 병합 후보와 이동된 시점 간 병합 후보(IvMCShift)를 비교하여 서로 다르다면 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든 후 이동 된 시점 간 병합 후보를 추가한다.If the inter-view merge candidate (IvMC) is available, compare the inter-view merge candidate with the moved inter-view merge candidate (IvMCShift), and if they are different, create a new space at the numMergeCand position in the list, and then move the inter-view merge candidate. Add
- numMergeCand을 1 증가시킨다.-increase numMergeCand by 1
n. 플래그 availableFlagIvMCShift가 0이고, 현재 PU가 깊이정보 맵 상에 위치하지 않고, numMergeCand가 리스트의 최대 길이(일예로 6)보다 작으면, 다음 과정을 수행한다.n. If the flag availableFlagIvMCShift is 0, the current PU is not located on the depth map, and numMergeCand is smaller than the maximum length (for example, 6) of the list, the following process is performed.
- 이동된 시차 예측 후보(IvDCShift)가 사용 가능하다면, 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든 후 이동 된 시점 간 병합 후보를 추가한다.If a moved parallax prediction candidate (IvDCShift) is available, a new space is created at the numMergeCand position of the list, and then the merged inter-view merge candidate is added.
- numMergeCand을 1 증가시킨다.-increase numMergeCand by 1
상기 과정 h, j에서 시점 간 병합 후보와 시차 병합 후보를 리스트의 기존 후보들과 비교 시, 리스트 내의 모든 후보들과 비교하지 않고 그 중 일부와 비교하는 방법을 사용하여 복잡도를 낮출 수 있다. 일 예로 좌 후보와 상 후보만을 비교에 사용할 수 있다.In the processes h and j, when comparing the inter-view merge candidate and the disparity merge candidate with existing candidates in the list, the complexity may be reduced by using a method of comparing the candidates with some of them without comparing them with all the candidates in the list. For example, only the left candidate and the top candidate may be used for comparison.
표 5는 기존 혼합 양방향 예측 후보를 유도하는 과정의 일예를 나타낸 것이고, 표 6은 본 발명의 실시예에 따른 3D-HEVC에서 HEVC 혼합 양방향 예측 후보 유도 과정을 재사용하는 일예를 나타낸 것이다. Table 5 shows an example of a process of deriving an existing mixed bidirectional prediction candidate, and Table 6 shows an example of reusing a process of deriving a HEVC mixed bidirectional prediction candidate in 3D-HEVC according to an embodiment of the present invention.
표 6에 기술된 본 발명의 실시예에 따른 혼합 양방향 예측 후보 유도 과정에서는 표 5에서처럼 의존적인 시점이나 깊이정보 맵만을 위한 새로운 모듈을 제작하지 않고, 기존 HEVC의 과정을 그대로 사용한다. 따라서 표 6의 방법에서는 표 5의 과정이 모두 제거 된다.In the process of deriving the mixed bi-prediction candidate according to the embodiment of the present invention described in Table 6, the existing HEVC process is used as it is, without creating a new module only for the dependent view or depth map as shown in Table 5. Therefore, in the method of Table 6, all the procedures in Table 5 are removed.
표 6에 기술된 본 발명의 실시예에 따른 혼합 양방향 예측 후보 유도 과정을 구현하면 표 7과 같은 결과를 얻을 수 있다. 실험에 사용 된 비디오 시퀀스들은 JCT-3V 표준화에서 공식적으로 사용하는 테스트용 비디오 시퀀스들이다.When the mixed bidirectional prediction candidate derivation process according to the embodiment of the present invention described in Table 6 is implemented, the result shown in Table 7 may be obtained. The video sequences used in the experiments are test video sequences officially used in the JCT-3V standardization.
표 7은 기존 방법(표 5의 방법)과 본 발명에서 제안하는 방법(표 6의 방법)의 부호화 효율 및 부호화 시간 비교 실험 결과를 나타낸다. Table 7 shows the results of the coding efficiency and coding time comparison between the existing method (method of Table 5) and the method proposed in the present invention (method of Table 6).
표 7에 도시된 바와 같이, 본 발명의 실시예에 따른 3D-HEVC에서 HEVC 혼합 양방향 예측 후보 유도 과정을 재사용하였음에도 비교 결과, 기존 방법에 비하여 PSNR 대비 비트율(bitrate) 증가가 0.1% 미만으로 거의 동일한 부호화 효율을 보인다.As shown in Table 7, even though the HEVC mixed bidirectional prediction candidate derivation process is reused in 3D-HEVC according to an embodiment of the present invention, the comparison result shows that the bitrate increase is less than 0.1% compared to the conventional method. It shows coding efficiency.
상술한 방법은 현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)에서 공동으로 표준화를 진행 중인 HEVC(High Efficiency Video Coding)를 사용할 수 있다. 따라서 상술한 방법은 표 8의 예와 같이 블록 크기 혹은 CU(Coding Uint) 깊이 혹은 TU(Transform Unit) 깊이 등에 따라 적용 범위를 달리할 수 있다. 이렇게 적용 범위를 결정하는 변수(즉, 크기 혹은 깊이 정보)는 부호화기 및 복호화기가 미리 정해진 값을 사용하도록 설정할 수도 있고, 프로파일 또는 레벨에 따라 정해진 값을 사용하도록 할 수도 있고, 부호화기가 변수 값을 비트스트림에 기재하면 복호화기는 비트스트림으로부터 이 값을 구하여 사용할 수도 있다. CU 깊이에 따라 적용 범위를 달리하는 할 때는 표 8에 예시한 바와 같이, 방법A) 주어진 깊이 이상의 깊이에만 적용하는 방식, 방법B) 주어진 깊이 이하에만 적용하는 방식, 방법C) 주어진 깊이에만 적용하는 방식이 있을 수 있다.The above-described method may use High Efficiency Video Coding (HEVC), which is currently being jointly standardized by a Moving Picture Experts Group (MPEG) and a Video Coding Experts Group (VCEG). Therefore, the above-described method may vary the application range according to the block size, the coding unit depth (CU) depth, or the transform unit (TU) depth, as shown in the example of Table 8. The variable that determines the coverage (i.e., size or depth information) may be set so that the encoder and decoder use a predetermined value, or may cause the encoder to use a predetermined value according to a profile or level, and the encoder may bite the variable value. If described in the stream, the decoder may obtain this value from the bitstream and use it. When varying the application range according to the CU depth, as shown in Table 8, Method A) Applies only to a depth above a given depth, Method B) Applies only to a given depth below, Method C) Applies only to a given depth There may be a way.
표 8에 따르면, 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 방법들을 적용할 수 있다. 표 8에서 O 표시는 해당 깊이에 적용함을 나타내고 X 표시는 해당 깊이에 적용하지 않음을 나타낸다. According to Table 8, when a given CU (or TU) depth is 2, the methods of the present invention can be applied. In Table 8, the O marks apply to that depth and the X marks do not apply to that depth.
모든 깊이에 대하여 본 발명의 방법들을 적용하지 않는 경우는 임의의 지시자(flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값을 적용범위를 나타내는 CU 깊이 값으로 시그널링 함으로써 표현할 수도 있다.When the methods of the present invention are not applied to all depths, they may be represented by using an arbitrary flag, or may be represented by signaling a value greater than one of the maximum value of the CU depth as a CU depth value indicating an application range. have.
본 발명의 추가적인 특징으로, 상술한 본 발명의 방법들의 적용 여부는 비트스트림에 포함되어 시그널링될 수 있다. 예컨대, 상술한 본 발명의 방법들의 적용 여부에 대한 정보는 SPS(Sequence Parameter Set), PPS(Picture Parameter Set), 슬라이스 헤더(Slice Header)의 신택스(Syntax)에 포함되어 시그널링될 수 있다. As an additional feature of the present invention, whether the above-described methods of the present invention are applied may be included in the bitstream and signaled. For example, the information on whether the above-described methods of the present invention are applied may be signaled by being included in a syntax of a sequence parameter set (SPS), a picture parameter set (PPS), and a slice header.
표 9는 상술한 본 발명의 방법들의 적용 여부를 SPS를 이용하여 시그널링하는 방법의 일예를 나타낸다. Table 9 shows an example of a method of signaling using SPS whether or not the above-described methods of the present invention are applied.
표 10은 상술한 본 발명의 방법들의 적용 여부를 PPS를 이용하여 시그널링하는 방법의 일예를 나타낸다. Table 10 shows an example of a method of signaling using PPS whether or not the above-described methods of the present invention are applied.
표 11은 상술한 본 발명의 방법들의 적용 여부를 슬라이스 헤더를 이용하여 시그널링하는 방법의 일예를 나타낸다. Table 11 shows an example of a method of signaling using a slice header whether or not the above-described methods of the present invention are applied.
표 12는 상술한 본 발명의 방법들의 적용 여부를 슬라이스 헤더를 이용하여 시그널링하는 방법의 다른 예를 나타낸다. Table 12 shows another example of a method of signaling using a slice header whether or not the above-described methods of the present invention are applied.
표 9 내지 표 12에서, “reuse_enabled_flag”는 상술한 본 발명의 방법들의 적용 여부를 알려준다. 여기서, 상술한 본 발명의 방법들이 적용되었을 경우 “reuse_enabled_flag”가 ‘1’이 되며, 상술한 본 발명의 방법들이 적용되지 않았을 경우 “reuse_enabled_flag”가 ‘0’이 된다. 그 반대도 가능하다.In Tables 9 to 12, “reuse_enabled_flag” indicates whether or not the above-described methods of the present invention are applied. Here, "reuse_enabled_flag" becomes "1" when the above-described methods of the present invention are applied, and "reuse_enabled_flag" becomes "0" when the above-described methods of the present invention are not applied. The reverse is also possible.
“reuse_disabled_info”는 상술한 본 발명의 방법들이 적용되었을 경우(혹은 “reuse_enabled_flag”이 참일 경우) 활성화되는 syntax로써, 이는 CU의 깊이(depth) (혹은 CU의 크기(size) 혹은 매크로 블록의 크기 혹은 서브 매크로 블록의 크기 혹은 블록의 크기)에 따라 상술한 본 발명의 방법들의 적용 여부를 알려준다. "Reuse_disabled_info" is a syntax that is activated when the above-described methods of the present invention are applied (or "reuse_enabled_flag" is true). This is the depth of a CU (or the size of a CU or the size or sub-block of a CU). Whether or not the above-described methods of the present invention are applied according to the size of the macro block or the size of the block).
일예로, “reuse_disabled_info”가 ‘0’일 경우에는 상술한 본 발명의 방법들이 모든 블록 크기에 적용될 수 있다. “reuse_disabled_info”가 ‘1’일 경우에는 상술한 본 발명의 방법들이 4x4 블록 크기보다 큰 단위에만 적용할 수 있다. For example, when "reuse_disabled_info" is "0", the above-described methods may be applied to all block sizes. When "reuse_disabled_info" is "1", the above-described methods may be applied only to a unit larger than a 4x4 block size.
다른 예로, “reuse_disabled_ info”가 ‘2’일 경우에는 상술한 본 발명의 방법들이 8x8 블록 크기보다 큰 단위에만 적용할 수 있다. 혹은 그 역도 가능하다. 예를 들어 “reuse_disabled_info”가 ‘1’일 경우에는 상술한 본 발명의 방법들이 4x4 블록 크기보다 작은 단위에만 적용할 수 있다. 이러한 “reuse_disabled_info” 신택스(syntax)의 사용 방법은 다양하게 적용할 수 있다.As another example, when "reuse_disabled_info" is "2", the above-described methods may be applied only to a unit larger than 8x8 block size. Or vice versa. For example, when "reuse_disabled_info" is "1", the above-described methods may be applied only to a unit smaller than a 4x4 block size. The usage of the “reuse_disabled_info” syntax can be variously applied.
위의 방법을 이용하여 픽처(혹은 프레임) 단위로 적용 여부를 결정할 수 있다. 또한 P 픽처(혹은 프레임)에만 본 명세서의 방법이 적용될 수 있으며, B 픽처(혹은 프레임)에만 본 명세서의 방법이 적용될 수 있다.Using the above method, it is possible to determine whether to apply in units of pictures (or frames). In addition, the method of the present specification may be applied only to a P picture (or a frame), and the method of the present specification may be applied only to a B picture (or a frame).
상술한 본 발명의 방법들은 3차원 비디오 코덱뿐만 아니라 스케일러블 비디오 코덱에도 적용할 수 있다. 일예로, 스케일러블 비디오 코덱의 기본 계층에서 사용하는 부호화/복호화 모듈을 그대로 향상 계층에 적용한 후, 추가적으로 부분 부호화/복호화 모듈을 이용하여 향상 계층을 부호화/복호화할 수 있다. 다른 예로, 스케일러블 비디오 코덱의 기본 계층에서 사용하는 “기본 병합 움직임 리스트 구성“ 모듈을 그대로 향상 계층에 적용하여 “기본 병합 움직임 후보 리스트”를 구성한 후, 추가적으로 “추가 병합 움직임 리스트 구성” 모듈을 이용하여 “기본 병합 움직임 후보 리스트”를 재설정(변경)하여 향상 계층을 위한 “확장 병합 움직임 후보 리스트”를 구성할 수 있다.The above-described methods of the present invention can be applied not only to the 3D video codec but also to the scalable video codec. For example, the encoding / decoding module used in the base layer of the scalable video codec may be applied to the enhancement layer as it is, and then the enhancement layer may be encoded / decoded using the partial encoding / decoding module. As another example, apply the basic merge motion list module used in the base layer of the scalable video codec to the enhancement layer, and then construct the basic merge motion candidate list, and then additionally use the additional merge motion list module. By reconfiguring (changing) the "basic merge motion candidate list", an "extended merge motion candidate list" for the enhancement layer can be constructed.
도 18은 본 발명의 일 실시예에 따라 복수의 시점을 포함하는 비디오 부호화/복호화 시 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다. 18 is a flowchart schematically illustrating a method of constructing a merge motion candidate list in video encoding / decoding including a plurality of viewpoints according to an embodiment of the present invention.
도 18의 방법은 상술한 도 10 및 도 12에서 도시된 장치에 의해 수행될 수 있으며, 또는 3D-HEVC에 적용하여 수행될 수도 있다. 설명의 편의 상, 도 18의 방법은 병합 움직임 장치에 의해 수행되는 것으로 설명한다. The method of FIG. 18 may be performed by the apparatus shown in FIGS. 10 and 12 described above, or may be applied to 3D-HEVC. For convenience of explanation, the method of FIG. 18 is described as being performed by the merge motion device.
도 18을 참조하면, 병합 움직임 장치는 현재 PU에 대한 기본 병합 움직임 후보를 유도하고, 유도된 기본 병합 움직임 후보를 기반으로 병합 움직임 후보 리스트를 구성한다(S1800).Referring to FIG. 18, the merge motion apparatus derives a basic merge motion candidate for the current PU and constructs a merge motion candidate list based on the derived basic merge motion candidate (S1800).
기본 병합 움직임 후보는, 상술한 바와 같이, 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 포함할 수 있다. As described above, the basic merge motion candidate may include a spatial merge motion candidate and a temporal merge motion candidate for the current PU.
예컨대, 도 8에 도시된 바와 같이, 병합 움직임 장치는 현재 PU에 공간적으로 인접하여 위치한 좌(left) 블록, 상(above) 블록, 우상(above-right) 블록, 좌하(bottom-left) 블록 및 좌상(above-left) 블록 중 적어도 하나의 블록으로부터 공간적 병합 움직임 후보를 유도할 수 있다. 그리고 병합 움직임 장치는 현재 PU에 대한 동일 위치 픽처(co-located picture) 내 동일 위치 블록(co-located block)(예를 들어, 하단 우측(bottom right) 블록, 중앙(center) 블록)으로부터 시간적 병합 움직임 후보를 유도할 수 있다. For example, as shown in FIG. 8, the merge motion device includes a left block, an above block, an right-right block, a bottom-left block, and located spatially adjacent to a current PU; A spatial merge motion candidate may be derived from at least one of the above-left blocks. The merge motion device then merges temporally from a co-located block (eg, bottom right block, center block) in a co-located picture for the current PU. The motion candidate can be derived.
병합 움직임 장치는, 상술한 바와 같이, 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보의 가용성 여부를 기반으로 병합 움직임 후보 리스트를 구성할 수 있다. As described above, the merge motion apparatus may configure the merge motion candidate list based on availability of the spatial merge motion candidate and the temporal merge motion candidate.
현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 병합 움직임 장치는 현재 PU에 대한 확장 병합 움직임 후보를 유도한다(S1810).If the current PU is a depth map or a dependent view, the merge motion device derives an extended merge motion candidate for the current PU (S1810).
확장 병합 움직임 후보는, 의존적인 시점의 영상 또는 깊이정보 맵 영상에 대한 예측을 위해 사용되는 병합 움직임 후보를 말한다. 확장 병합 움직임 후보는 시점 간 병합 후보(inter-view merge candidate: IvMC), 시점 합성 병합 후보(view synthesis prediction merge candidate) 및 텍스처 병합 후보(texture merge candidate) 중 적어도 하나를 포함할 수 있다. The extended merge motion candidate refers to a merge motion candidate used for prediction of the dependent view image or the depth map image. The extended merge motion candidate may include at least one of an inter-view merge candidate (IvMC), a view synthesis prediction merge candidate, and a texture merge candidate.
예를 들어, 현재 PU가 시점 간 예측을 수행하는지 여부에 따라 시점 간 병합 후보, 시차 병합 후보(inter-view disparity merge candidate; IvDC), 이동된 시점 간 병합 후보(shifted inter-view merge candidate: IvMCShift), 이동된 시차 병합 후보(shifted inter-view disparity merge candidate; IvDCShift)를 유도할 수 있다. 현재 PU가 시점 합성 예측을 수행하는지 여부에 따라 시점 합성 병합 후보를 유도할 수 있다. 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는지 여부에 따라 텍스처 병합 후보를 유도할 수 있다. For example, an inter-view disparity merge candidate (IvDC) and a shifted inter-view merge candidate (IvMCShift) depending on whether the current PU performs inter-view prediction. ), A shifted inter-view disparity merge candidate (IvDCShift) may be derived. A view synthesis merging candidate may be derived according to whether the current PU performs view synthesis prediction. A texture merge candidate may be derived according to whether the depth map of the current PU performs motion prediction from the texture block.
병합 움직임 장치는 상기 유도된 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가함으로써, 최종적으로 병합 움직임 후보 리스트를 재구성할 수 있다(S1820). The merge motion apparatus may finally reconstruct the merge motion candidate list by adding the derived extended merge motion candidate to the merge motion candidate list (S1820).
이때, 추가할 확장 병합 움직임 후보가 병합 움직임 리스트 내 기본 병합 움직임 후보와 동일하지 않은 경우, 병합 움직임 장치는 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가한다. 확장 병합 움직임 후보는 병합 움직임 후보 리스트 내 임의의 위치(예컨대, 리스트의 첫번째 항목)에 추가될 수 있다. If the extended merge motion candidate to be added is not the same as the default merge motion candidate in the merge motion list, the merge motion device adds the extended merge motion candidate to the merge motion candidate list. The extended merge motion candidate may be added at any position in the merge motion candidate list (eg, the first item in the list).
또한, 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 기본 병합 움직임 후보 개수를 더한 값이 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 병합 움직임 장치는 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가한다.In addition, when the combined number of extended merge motion candidates added to the merge motion candidate list and the number of basic merge motion candidates is smaller than the maximum candidate number of the merge motion candidate list, the merge motion device adds the extended merge motion candidate to the merge motion candidate list. Add.
예를 들어, 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는 경우, 텍스처 병합 후보가 유도될 수 있다. 이때, 유도된 텍스처 병합 후보가 병합 움직임 리스트 내 기본 병합 움직임 후보와 동일하지 않은 경우, 텍스처 병합 후보를 병합 움직임 리스트 내 첫번째 항목에 추가할 수 있다. For example, when the depth map of the current PU performs motion prediction from a texture block, a texture merge candidate may be derived. In this case, when the derived texture merge candidate is not the same as the default merge motion candidate in the merge motion list, the texture merge candidate may be added to the first item in the merge motion list.
현재 PU가 시점 간 예측을 수행하는 경우, 시점 간 병합 후보가 유도될 수 있다. 이때, 유도된 시점 간 병합 후보가 병합 움직임 리스트 내 기본 병합 움직임 후보와 동일하지 않은 경우, 시점 간 병합 후보를 병합 움직임 리스트 내 첫번째 항목에 추가할 수 있다. If the current PU performs inter-view prediction, an inter-view merge candidate may be derived. In this case, when the derived inter-view merge candidate is not the same as the default merge motion candidate in the merge motion list, the inter-view merge candidate may be added to the first item in the merge motion list.
현재 PU가 시점 합성 예측을 수행하는 경우, 시점 합성 병합 후보가 유도될 수 있다. 이때, 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 기본 병합 움직임 후보 개수를 더한 값이 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 유도된 시점 합성 병합 후보가 병합 움직임 후보 리스트에 추가될 수 있다. When the current PU performs view synthesis prediction, a view synthesis merge candidate may be derived. In this case, when the value of the number of extended merge motion candidates added to the merge motion candidate list and the number of basic merge motion candidates is smaller than the maximum candidate number of the merge motion candidate list, the derived view synthesis merge candidate is added to the merge motion candidate list. Can be.
확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가하는 구체적인 과정은 본 명세서의 실시예들에서 상세히 설명한 바 있으므로, 본 실시예에서는 구체적인 설명을 생략한다. Since the detailed process of adding the extended merge motion candidate to the merge motion candidate list has been described in detail in the embodiments of the present specification, a detailed description thereof will be omitted.
상술한 병합 움직임 후보 리스트를 기반으로 현재 PU에 대한 움직임 정보를 획득할 수 있으며, 상기 움직임 정보를 이용하여 현재 PU에 대한 예측을 수행함으로써 현재 PU의 예측 샘플 값을 획득할 수 있다. The motion information on the current PU may be obtained based on the merge motion candidate list described above, and the prediction sample value of the current PU may be obtained by performing prediction on the current PU using the motion information.
따라서, 부호화기에서는 현재 PU의 예측 샘플 값을 기반으로 현재 PU의 잔차(residual) 샘플 값을 획득하고, 잔차 샘플 값을 변환/양자화 및 엔트로피 부호화하여 복호화기로 전송할 수 있다. 복호화기에서는 현재 PU의 예측 샘플 값과 부호화기에 의해 전송된 현재 PU의 잔차 샘플 값을 기반으로 현재 PU의 복원 샘플 값을 얻을 수 있다. Accordingly, the encoder may obtain a residual sample value of the current PU based on the predicted sample value of the current PU, transform, quantize, and entropy encode the residual sample value and transmit the same to the decoder. The decoder may obtain a reconstructed sample value of the current PU based on the predicted sample value of the current PU and the residual sample value of the current PU transmitted by the encoder.
상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above embodiments, the methods are described based on a flowchart as a series of steps or blocks, but the present invention is not limited to the order of steps, and certain steps may occur in a different order or at the same time than other steps described above. Can be. Also, one of ordinary skill in the art appreciates that the steps shown in the flowcharts are not exclusive, that other steps may be included, or that one or more steps in the flowcharts may be deleted without affecting the scope of the present invention. I can understand.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 특허청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다. The above description is merely illustrative of the technical idea of the present invention, and those skilled in the art to which the present invention pertains may make various modifications and changes without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are not intended to limit the technical idea of the present invention but to describe the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the present invention.
Claims (15)
- 복수의 시점(view)을 포함하는 비디오 복호화 방법에 있어서, In a video decoding method comprising a plurality of views,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계; Constructing a merge motion candidate list by deriving a default merge motion candidate for a current prediction unit (PU);상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계; 및Deriving an extended merge motion candidate for the current PU when the current PU is a depth map or a dependent view; And상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함하며, Adding the extended merge motion candidate to the merge motion candidate list,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 방법.And if the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, adding the extended merge motion candidate to the merge motion candidate list.
- 제1항에 있어서,The method of claim 1,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트 내 임의의 위치에 추가하는 것을 특징으로 하는 비디오 복호화 방법.And adding the extended merge motion candidate to an arbitrary position in the merge motion candidate list.
- 제1항에 있어서,The method of claim 1,상기 기본 병합 움직임 후보는,The default merge motion candidate is상기 현재 PU의 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보 중 적어도 하나를 포함하며,At least one of a spatial merge motion candidate and a temporal merge motion candidate of the current PU,상기 공간적 병합 움직임 후보는, The spatial merge motion candidate,상기 현재 PU에 공간적으로 인접하여 위치한 좌(left) 블록, 상(above) 블록, 우상(above-right) 블록, 좌하(bottom-left) 블록 및 좌상(above-left) 블록 중 적어도 하나의 블록을 포함하며, At least one of a left block, an above block, an above-right block, a bottom-left block, and an above-left block located spatially adjacent to the current PU Include,상기 시간적 병합 움직임 후보는,The temporal merge motion candidate is상기 현재 PU에 대한 동일 위치 픽처(co-located picture) 내 동일 위치 블록(co-located block)을 포함하는 것을 특징으로 하는 비디오 복호화 방법.And a co-located block in a co-located picture for the current PU.
- 제1항에 있어서,The method of claim 1,상기 확장 병합 움직임 후보는,The extended merge motion candidate is시점 간 병합 후보(inter-view merge candidate: IvMC), 시점 합성 병합 후보(view synthesis prediction merge candidate) 및 텍스처 병합 후보(texture merge candidate) 중 적어도 하나를 포함하는 것을 특징으로 하는 비디오 복호화 방법.A video decoding method comprising at least one of an inter-view merge candidate (IvMC), a view synthesis prediction merge candidate, and a texture merge candidate.
- 제4항에 있어서,The method of claim 4, wherein상기 확장 병합 움직임 후보를 유도하는 단계에서는, In the step of deriving the extended merge motion candidate,상기 현재 PU가 시점 간 예측을 수행하는지 여부에 따라 상기 시점 간 병합 후보를 유도하는 것을 특징으로 하는 비디오 복호화 방법.And deriving the inter-view merging candidate according to whether the current PU performs inter-view prediction.
- 제4항에 있어서,The method of claim 4, wherein상기 확장 병합 움직임 후보를 유도하는 단계에서는,In the step of deriving the extended merge motion candidate,상기 현재 PU가 시점 합성 예측을 수행하는지 여부에 따라 상기 시점 합성 병합 후보를 유도하는 것을 특징으로 하는 비디오 복호화 방법.And deriving the view synthesis merging candidate according to whether the current PU performs view synthesis prediction.
- 제4항에 있어서,The method of claim 4, wherein상기 확장 병합 움직임 후보를 유도하는 단계에서는,In the step of deriving the extended merge motion candidate,상기 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는지 여부에 따라 상기 텍스처 병합 후보를 유도하는 것을 특징으로 하는 비디오 복호화 방법.And deriving the texture merge candidate according to whether the depth map of the current PU performs motion prediction from a texture block.
- 제2항에 있어서,The method of claim 2,상기 임의의 위치는 상기 병합 움직임 후보 리스트 내 첫번째 항목(index)인 것을 특징으로 하는 비디오 복호화 방법.And wherein the arbitrary position is a first index in the merge motion candidate list.
- 제1항에 있어서,The method of claim 1,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 상기 기본 병합 움직임 후보 개수를 더한 값이 상기 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 방법.If the sum of the number of extended merge motion candidates added to the merge motion candidate list and the number of basic merge motion candidates is smaller than the maximum number of candidates in the merge motion candidate list, the extended merge motion candidate is added to the merge motion candidate list. And a video decoding method.
- 제7항에 있어서,The method of claim 7, wherein상기 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는 경우, When the depth map of the current PU performs motion prediction from a texture block,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 텍스처 병합 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 텍스처 병합 후보를 상기 병합 움직임 후보 리스트 내 첫번째 항목에 추가하는 것을 특징으로 하는 비디오 복호화 방법.And when the texture merge candidate is not the same as the basic merge motion candidate in the merge motion candidate list, adding the texture merge candidate to a first item in the merge motion candidate list.
- 제5항에 있어서,The method of claim 5,상기 현재 PU가 시점 간 예측을 수행하는 경우, If the current PU performs inter-view prediction,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 시점 간 병합 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 시점 간 병합 후보를 상기 병합 움직임 후보 리스트 내 첫번째 항목에 추가하는 것을 특징으로 하는 비디오 복호화 방법.And when the inter-view merge candidate is not the same as the basic merge motion candidate in the merge motion candidate list, adding the inter-view merge candidate to a first item in the merge motion candidate list.
- 제6항에 있어서,The method of claim 6,상기 현재 PU가 시점 합성 예측을 수행하는 경우, If the current PU performs view synthesis prediction,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 상기 기본 병합 움직임 후보 개수를 더한 값이 상기 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 상기 시점 합성 병합 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 방법.If the value obtained by adding the number of extended merge motion candidates added to the merge motion candidate list and the number of basic merge motion candidates is smaller than the maximum candidate number of the merge motion candidate list, add the view synthesis merge candidate to the merge motion candidate list. And a video decoding method.
- 복수의 시점(view)을 포함하는 비디오 복호화 장치에 있어서, In a video decoding apparatus including a plurality of views,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈; 및A basic merge motion list constructing module for constructing a merge motion candidate list by deriving a default merge motion candidate for a current PU; And상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함하며, An additional merge motion list constructing module for deriving an extended merge motion candidate for the current PU and adding the extended merge motion candidate to the merge motion candidate list when the current PU is a depth map or a dependent view point; ,상기 추가 병합 움직임 리스트 구성 모듈은,The additional merge motion list configuration module,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 장치.And if the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, adding the extended merge motion candidate to the merge motion candidate list.
- 복수의 시점(view)을 포함하는 비디오 부호화 방법에 있어서, In a video encoding method comprising a plurality of views,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계; Constructing a merge motion candidate list by deriving a default merge motion candidate for a current prediction unit (PU);상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계; 및Deriving an extended merge motion candidate for the current PU when the current PU is a depth map or a dependent view; And상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함하며, Adding the extended merge motion candidate to the merge motion candidate list,상기 확장 병합 움직임 후보를 추가하는 단계에서는,In the step of adding the extended merge motion candidate,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 부호화 방법.And if the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, adding the extended merge motion candidate to the merge motion candidate list.
- 복수의 시점(view)을 포함하는 비디오 부호화 장치에 있어서, In a video encoding apparatus including a plurality of views,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈; 및A basic merge motion list constructing module for constructing a merge motion candidate list by deriving a default merge motion candidate for a current PU; And상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함하며, An additional merge motion list constructing module for deriving an extended merge motion candidate for the current PU and adding the extended merge motion candidate to the merge motion candidate list when the current PU is a depth map or a dependent view point; ,상기 추가 병합 움직임 리스트 구성 모듈은,The additional merge motion list configuration module,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 부호화 장치.And if the extended merge motion candidate is not the same as the basic merge motion candidate in the merge motion candidate list, adding the extended merge motion candidate to the merge motion candidate list.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/903,117 US10080029B2 (en) | 2013-10-24 | 2014-04-22 | Video encoding/decoding method and apparatus |
EP14855443.9A EP3062518A4 (en) | 2013-10-24 | 2014-04-22 | Video encoding/decoding method and apparatus |
US16/103,042 US10412403B2 (en) | 2013-10-24 | 2018-08-14 | Video encoding/decoding method and apparatus |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0126852 | 2013-10-24 | ||
KR20130126852 | 2013-10-24 | ||
KR10-2013-0146600 | 2013-11-28 | ||
KR20130146600 | 2013-11-28 | ||
KR10-2014-0048066 | 2014-04-22 | ||
KR1020140048066A KR102227279B1 (en) | 2013-10-24 | 2014-04-22 | Method and apparatus for video encoding/decoding |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/903,117 A-371-Of-International US10080029B2 (en) | 2013-10-24 | 2014-04-22 | Video encoding/decoding method and apparatus |
US16/103,042 Continuation US10412403B2 (en) | 2013-10-24 | 2018-08-14 | Video encoding/decoding method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015060508A1 true WO2015060508A1 (en) | 2015-04-30 |
Family
ID=52993076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2014/003517 WO2015060508A1 (en) | 2013-10-24 | 2014-04-22 | Video encoding/decoding method and apparatus |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015060508A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120080122A (en) * | 2011-01-06 | 2012-07-16 | 삼성전자주식회사 | Apparatus and method for encoding and decoding multi-view video based competition |
WO2012171442A1 (en) * | 2011-06-15 | 2012-12-20 | Mediatek Inc. | Method and apparatus of motion and disparity vector prediction and compensation for 3d video coding |
JP2013034187A (en) * | 2011-06-30 | 2013-02-14 | Jvc Kenwood Corp | Image decoder, image decoding method and image decoding program |
KR20130048122A (en) * | 2011-10-26 | 2013-05-09 | 경희대학교 산학협력단 | Method and apparatus for scalable video coding using inter prediction mode |
KR20130085382A (en) * | 2012-01-19 | 2013-07-29 | 한국전자통신연구원 | Method and apparatus for picture encoding/decoding |
-
2014
- 2014-04-22 WO PCT/KR2014/003517 patent/WO2015060508A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120080122A (en) * | 2011-01-06 | 2012-07-16 | 삼성전자주식회사 | Apparatus and method for encoding and decoding multi-view video based competition |
WO2012171442A1 (en) * | 2011-06-15 | 2012-12-20 | Mediatek Inc. | Method and apparatus of motion and disparity vector prediction and compensation for 3d video coding |
JP2013034187A (en) * | 2011-06-30 | 2013-02-14 | Jvc Kenwood Corp | Image decoder, image decoding method and image decoding program |
KR20130048122A (en) * | 2011-10-26 | 2013-05-09 | 경희대학교 산학협력단 | Method and apparatus for scalable video coding using inter prediction mode |
KR20130085382A (en) * | 2012-01-19 | 2013-07-29 | 한국전자통신연구원 | Method and apparatus for picture encoding/decoding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020166897A1 (en) | Dmvr-based inter-prediction method and device | |
WO2017034089A1 (en) | Inter prediction mode-based image processing method and apparatus therefor | |
WO2017090988A1 (en) | Multi-viewpoint video encoding/decoding method | |
WO2020180155A1 (en) | Method and apparatus for processing video signal | |
WO2015002460A1 (en) | Method for encoding and decoding video including plurality of layers | |
WO2020004990A1 (en) | Method for processing image on basis of inter-prediction mode and device therefor | |
WO2014058216A1 (en) | Video data decoding method and video data decoding apparatus | |
WO2019194514A1 (en) | Image processing method based on inter prediction mode, and device therefor | |
WO2020180129A1 (en) | Method and device for processing video signal for inter-prediction | |
WO2019216714A1 (en) | Method for processing image on basis of inter-prediction mode and apparatus therefor | |
WO2018105759A1 (en) | Image encoding/decoding method and apparatus therefor | |
WO2019235822A1 (en) | Method and device for processing video signal by using affine motion prediction | |
WO2021194307A1 (en) | Image encoding/decoding method and apparatus based on wrap-around motion compensation, and recording medium storing bitstream | |
WO2014014276A1 (en) | In-loop filtering method and apparatus using same | |
WO2016056779A1 (en) | Method and device for processing camera parameter in 3d video coding | |
WO2021015512A1 (en) | Image encoding/decoding method and apparatus using ibc, and method for transmitting bitstream | |
WO2021006579A1 (en) | Video encoding/decoding method and device for deriving weight index for bidirectional prediction of merge candidate, and method for transmitting bitstream | |
WO2021194308A1 (en) | Image encoding/decoding method and device on basis of wrap-around motion compensation, and recording medium storing bitstream | |
WO2020009447A1 (en) | Inter-prediction mode-based image processing method and device therefor | |
WO2021112633A1 (en) | Method and apparatus for encoding/decoding image on basis of picture header including information relating to co-located picture, and method for transmitting bitstream | |
WO2021141477A1 (en) | Image encoding/decoding method and apparatus, and method of transmitting bitstream using sequence parameter set including information on maximum number of merge candidates | |
WO2020256485A1 (en) | Image encoding/decoding method and device using adaptive size limiting of chroma block and bitstream transmission method | |
WO2020184953A1 (en) | Video or image coding for inducing weight index information for bi-prediction | |
WO2019216736A1 (en) | Inter prediction mode-based image processing method and apparatus therefor | |
WO2020180153A1 (en) | Method and apparatus for processing video signal for inter prediction |
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: 14855443 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 14903117 Country of ref document: US |
|
REEP | Request for entry into the european phase |
Ref document number: 2014855443 Country of ref document: EP |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2014855443 Country of ref document: EP |
|
NENP | Non-entry into the national phase |
Ref country code: DE |