WO2015060508A1 - 비디오 부호화/복호화 방법 및 장치 - Google Patents
비디오 부호화/복호화 방법 및 장치 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
복수의 시점(view)을 포함하는 비디오 부호화/복호화 방법 및 장치가 개시된다. 상기 복수의 시점을 포함하는 비디오 복호화 방법은 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계, 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계 및 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함한다.
Description
본 발명은 비디오 부호화/복호화 방법 및 장치에 관한 것으로, 보다 상세하게는 3차원 비디오(3D video) 코딩을 위한 병합 움직임 후보 리스트(merge motion candidate list)를 구성하는 방법 및 장치에 관한 것이다.
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)을 이용하여 스테레오스코픽 영상뿐만 아니라 오토스테레오스코픽 영상의 재생 등을 지원할 수 있는 진보된 데이터 형식과 그에 관련된 기술에 대한 표준을 포함하고 있다.
본 발명은 영상 부호화/복호화 효율을 향상시킬 수 있는 영상 부호화/복호화 방법 및 장치를 제공한다.
본 발명은 부호화/복호화 효율을 향상시킬 수 있는 3차원 비디오 부호화/복호화 방법 및 장치를 제공한다.
본 발명은 3차원 비디오 부호화/복호화 시 병합 움직임 후보 리스트를 구성하는 방법 및 장치를 제공한다.
본 발명의 일 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 복호화 방법이 제공된다. 상기 비디오 복호화 방법은 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계, 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계 및 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함한다.
상기 확장 병합 움직임 후보를 추가하는 단계에서는, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다.
본 발명의 다른 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 복호화 장치가 제공된다. 상기 비디오 복호화 장치는 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈 및 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함한다.
상기 추가 병합 움직임 리스트 구성 모듈은, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다.
본 발명의 또 다른 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 부호화 방법이 제공된다. 상기 비디오 부호화 방법은 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계, 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계 및 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함한다.
상기 확장 병합 움직임 후보를 추가하는 단계에서는, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다.
본 발명의 또 다른 실시예에 따르면, 복수의 시점(view)을 포함하는 비디오 부호화 장치가 제공된다. 상기 비디오 부호화 장치는 현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈 및 상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함한다.
상기 추가 병합 움직임 리스트 구성 모듈은, 상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가할 수 있다.
역방향 호환성을 제공하는 독립적인 시점(Independent View; 시점 0(View 0))에 대한 일반 영상의 부호화에 사용되는 모듈을 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 그대로 적용하여 구현 복잡도를 감소시킬 수 있다.
또한, 의존적인 시점(dependent view; 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 부분 인코더를 추가적으로 적용함으로써 부호화 효율을 향상시킬 수 있다.
도 1은 3차원 비디오 시스템의 기본 구조와 데이터 형식을 개략적으로 나타내는 일예이다.
도 2는 “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일예를 나타내는 도면이다.
도 3은 3D 비디오 코덱(codec)에서 시점간 예측(inter view prediction)의 구조를 나타내는 일예이다.
도 4는 3D 비디오 인코더/디코더에서 실제 영상(texture view)과 깊이정보 맵(depth view)을 부호화/복호화하는 과정을 나타낸 일예이다.
도 5는 3D 비디오 코덱의 예측 구조의 일예를 나타낸다.
도 6은 3차원 비디오 코덱(3D Video Codec)의 인코더를 개략적으로 나타낸 구조도이다.
도 7은 HEVC 기반 3차원 비디오 코덱(3D-HEVC)에서 사용되는 병합 움직임 방법을 설명하기 위해 도시된 도면이다.
도 8은 현재 블록에 대한 병합 움직임 리스트를 구성하는데 사용되는 주변 블록들을 나타낸 일예이다.
도 9는 병합 움직임 후보 리스트를 구성하는 방법을 하드웨어로 구현한 일예를 나타내는 도면이다.
도 10은 본 발명의 일 실시예에 따른 3차원 비디오 코덱을 개략적으로 나타내는 도면이다.
도 11은 본 발명의 일 실시예에 따른 병합 움직임 방법을 개략적으로 설명하기 위한 개념도이다.
도 12는 본 발명의 일 실시예에 따른 도 11의 병합 움직임 방법을 하드웨어로 구현한 일예를 나타내는 도면이다.
도 13은 본 발명의 일 실시예에 따라 도 11 및 도 12의 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 개념도이다.
도 14는 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다.
도 15는 본 발명의 다른 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다.
도 16은 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다.
도 17a 내지 도 17f는 본 발명의 일 실시예에 따른 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가하는 방법을 나타내는 순서도이다.
도 18은 본 발명의 일 실시예에 따라 복수의 시점을 포함하는 비디오 부호화/복호화 시 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다.
이하, 도면을 참조하여 본 발명의 실시 형태에 대하여 구체적으로 설명한다. 본 명세서의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 명세서의 요지를 흐릴 수 있다고 판단되는 경우에는 해당 설명을 생략할 수도 있다.
본 명세서에서 어떤 구성 요소가 다른 구성 요소에 “연결되어” 있다거나 “접속되어” 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있는 것을 의미할 수도 있고, 중간에 다른 구성 요소가 존재하는 것을 의미할 수도 있다. 아울러, 본 명세서에서 특정 구성을 “포함”한다고 기술하는 내용은 해당 구성 이외의 구성을 배제하는 것이 아니며, 추가적인 구성이 본 발명의 실시 또는 본 발명의 기술적 사상의 범위에 포함될 수 있음을 의미한다.
제1, 제2 등의 용어는 다양한 구성들을 설명하는데 사용될 수 있지만, 상기 구성들은 상기 용어에 의해 한정되지 않는다. 상기 용어들은 하나의 구성을 다른 구성으로부터 구별하는 목적으로 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성은 제2 구성으로 명명될 수 있고, 유사하게 제2 구성도 제1 구성으로 명명될 수 있다.
또한 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성 단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 포함한 것으로 각 구성부 중 적어도 두 개의 구성부가 하나의 구성부를 이루거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 일부의 구성 요소는 본 발명에서 본질적인 기능을 수행하는 필수적인 구성 요소는 아니고 단지 성능을 향상시키기 위한 선택적 구성 요소일 수 있다. 본 발명은 단지 성능 향상을 위해 사용되는 구성 요소를 제외한 본 발명의 본질을 구현하는데 필수적인 구성부만을 포함하여 구현될 수 있고, 단지 성능 향상을 위해 사용되는 선택적 구성 요소를 제외한 필수 구성 요소만을 포함한 구조도 본 발명의 권리범위에 포함된다.
도 1은 3차원 비디오 시스템의 기본 구조와 데이터 형식을 개략적으로 나타내는 일예이다. 도 1의 3차원 비디오 시스템은 3차원 비디오 표준에서 고려하고 있는 기본적인 3차원 비디오 시스템일 수 있다.
도 1을 참조하면, 3차원 비디오(3D video; 3DV) 시스템은 다시점(multi-view)의 영상 콘텐츠를 생성하는 송신측(sender)과 송신측으로부터 수신된 영상 콘텐츠를 복호화하여 다시점의 영상을 제공하는 수신측(receiver)을 포함할 수 있다.
송신측에서는 스테레오 카메라 및 다시점 카메라를 이용하여 비디오 정보를 생성하고, 깊이정보 카메라를 이용하여 깊이정보 맵(depth map, 또는 depth view)을 생성할 수 있다. 또한, 송신측에서는 변환기를 이용하여 2차원 영상을 3차원 영상으로 변환할 수 있다. 송신측에서는 상기 생성된 비디오 정보와 깊이정보 맵 등을 이용하여 N(N≥2) 시점(view)의 영상 콘텐츠를 생성할 수 있다.
N 시점의 영상 콘텐츠에는 N 시점의 비디오 정보와 그것의 깊이정보 맵(Depth-map) 정보 그리고 카메라 관련 부가정보 등이 포함될 수 있다. N 시점의 영상 콘텐츠는 3D 비디오 인코더에서 다시점 비디오 부호화 방법을 사용하여 압축될 수 있으며, 압축된 영상 콘텐츠(비트스트림)는 네트워크를 통해 수신측의 단말로 전송될 수 있다.
수신측에서는 전송 받은 비트스트림을 비디오 디코더(예를 들어, 3D 비디오 디코더, 스테레오 비디오 디코더, 2D 비디오 디코더 등)에서 다시점 비디오 복호화 방법을 사용하여 복호화하여 N 시점의 영상을 복원할 수 있다.
복원된 N 시점의 영상은 깊이정보 맵 기반 랜더링(DIBR; Depth-Image-Based Rendering) 과정에 의해 N 시점 이상의 가상시점 영상들로 생성될 수 있다. 생성된 N 시점 이상의 가상시점 영상들은 다양한 입체 디스플레이 장치(예를 들어, N-시점 디스플레이, 스테레오 디스플레이, 2D 디스플레이 등)에 맞게 재생되어 사용자에게 입체감이 있는 영상을 제공하게 된다.
도 2는 “balloons” 영상의 실제 영상과 깊이정보 맵 영상의 일예를 나타내는 도면이다.
깊이정보 맵(depth map)은 가상시점 영상을 생성하는데 사용되며, 실세계에서 카메라와 실제 사물(object) 간의 거리(실사 영상과 동일한 해상도로 각 화소에 해당하는 깊이정보)를 일정한 비트수로 표현한 것이다.
도 2의 (a)는 국제 표준화 기구인 MPEG의 3차원 비디오 부호화 표준에서 사용 중인 “balloons” 영상을 나타낸 것이다. 도 2의 (b)는 도 2의 (a)에 도시된 “balloons” 영상에 대한 깊이정보 맵 영상을 나타낸 것이다. 도 2의 (b)에 도시된 깊이정보 맵 영상은 화면에 보이는 깊이 정보를 화소당 8비트로 표현한 것이다.
실제 영상과 그것의 깊이정보 맵을 부호화하는 방법은, 예컨대 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) 국제 동영상 표준을 사용할 수도 있다.
실제 영상과 그것의 깊이정보 맵은 하나의 카메라뿐만 아니라 여러 개의 카메라에서 획득된 영상일 수 있다. 여러 개의 카메라에서 획득된 영상은 독립적으로 부호화될 수 있으며, 일반적인 2차원 비디오 부호화 코덱을 사용하여 부호화될 수 있다. 또한, 여러 개의 카메라에서 획득된 영상은 시점 간의 상관성이 존재하므로, 여러 개의 카메라에서 획득된 영상은 부호화 효율을 높이기 위하여 서로 다른 시점간 예측을 사용하여 부호화될 수 있다.
도 3은 3D 비디오 코덱(codec)에서 시점간 예측(inter view prediction)의 구조를 나타내는 일예이다.
도 3을 참조하면, 시점 1(View 1)은 시점 0(View 0)을 기준으로 왼쪽에 위치한 카메라에서 획득한 영상이고, 시점 2(View 2)는 시점 0(View 0)을 기준으로 오른쪽에 위치한 카메라에서 획득한 영상이다.
또한, 시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 시점간 예측을 수행하며, 부호화 순서는 시점 1(View 1)과 시점 2(View 2)보다 시점 0(View 0)이 먼저 부호화되어야 한다.
이때, 시점 0(View 0)은 다른 시점과 상관없이 독립적으로 부호화될 수 있으므로 독립적인 시점(Independent View)이라고 한다. 반면, 시점 1(View 1)과 시점 2(View 2)는 시점 0(View 0)을 참조 영상으로 사용하여 부호화되므로 의존적인 시점(Dependent View)라고 한다. 독립적인 시점 영상은 일반적인 2차원 비디오 코덱을 사용하여 부호화 될 수 있다. 반면, 의존적인 시점 영상은 시점간 예측을 수행하여야 하므로, 시점간 예측 과정이 포함된 3차원 비디오 코덱을 사용하여 부호화될 수 있다.
또한, 시점 1(View 1)과 시점 2(View 2)의 부호화 효율을 증가시키기 위하여 시점 1(View 1)과 시점 2(View 2)는 깊이정보 맵을 이용하여 부호화될 수 있다. 예를 들어, 실제 영상과 그것의 깊이정보 맵을 부호화할 때, 실제 영상과 깊이정보 맵은 서로 독립적으로 부호화/복호화될 수 있다. 또는 실제 영상과 깊이정보 맵을 부호화할 때, 실제 영상과 깊이정보 맵은 도 4와 같이 서로 의존적으로 부호화/복호화될 수 있다.
도 4는 3D 비디오 인코더/디코더에서 실제 영상(texture view)과 깊이정보 맵(depth view)을 부호화/복호화하는 과정을 나타낸 일예이다.
도 4를 참조하면, 3D 비디오 인코더는 실제 영상(texture view)을 부호화하는 실제 영상 인코더(texture encoder)와 깊이정보 맵(depth view)을 부호화하는 깊이정보 맵 인코더(depth encoder)를 포함할 수 있다.
예를 들어, 실제 영상 인코더는 깊이정보 맵 인코더에 의해 이미 부호화된 깊이정보 맵을 이용하여 실제 영상을 부호화할 수 있다. 반대로, 깊이정보 맵 인코더는 실제 영상 인코더에 의해 이미 부호화된 실제 영상을 이용하여 깊이정보 맵을 부호화할 수 있다.
3D 비디오 디코더는 실제 영상을 복호화하는 실제 영상 디코더(texture decoder)와 깊이정보 맵을 복호화하는 깊이정보 맵 디코더(depth decoder)를 포함할 수 있다.
예를 들어, 실제 영상 디코더는 깊이정보 맵 디코더에 의해 이미 복호화된 깊이정보 맵을 이용하여 실제 영상을 복호화할 수 있다. 반대로, 깊이정보 맵 디코더는 실제 영상 디코더에 의해 이미 복호화된 실제 영상을 이용하여 깊이정보 맵을 복호화할 수 있다.
도 5는 3D 비디오 코덱의 예측 구조의 일예를 나타낸다.
도 5는, 설명의 편의 상, 3대의 카메라에서 획득한 실제 영상과 상기 실제 영상에 대한 깊이정보 맵을 부호화하기 위한 부호화 예측 구조를 나타낸 것이다.
도 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)에서 획득한 영상이다.
도 5에 도시된 사각형은 영상(픽처)를 나타낸다.
각 영상(픽처)는 부호화 타입에 따라 I 픽처(Intra Picture), P 픽처(Uni-prediction Picture), B 픽처(Bi-prediction Picture)로 나뉘어지며, 각 픽처의 부호화 타입에 따라 부호화될 수 있다. I 픽처는 픽처간 예측 없이 영상 자체를 부호화하고, P 픽처는 순방향으로만 참조 영상을 이용하여 픽처간 예측 부호화하고, B 픽처는 순방향과 역방향 양측으로 참조 영상을 이용하여 픽처간 예측 부호화한다.
도 5에서 화살표는 예측 방향을 나타낸다. 즉, 예측 방향에 따라 실제 영상과 그것의 깊이정보 맵은 서로 의존적으로 부호화/복호화될 수 있다.
실제 영상에서 현재 블록을 예측하기 위해서, 현재 블록의 움직임 정보를 유추하기 위한 방법은 크게 시간적 예측(temporal prediction)과 시점간 예측(inter view prediction)으로 나뉜다. 시간적 예측은 동일한 시점 내에서 시간적 상관성을 이용한 예측 방법이고, 시점간 예측은 인접한 시점에서 시점간 상관성을 이용한 예측 방법이다. 이러한 시간적 예측과 시점간 예측은 한 픽처에서 서로 혼용되어 사용될 수 있다.
여기서, 현재 블록은 실제 영상 내에서 현재 예측이 수행되는 블록을 말한다. 움직임 정보는 움직임 벡터만을 의미할 수 있으며, 혹은 움직임 벡터, 참조 영상 번호, 단방향 예측인지 양방향 예측인지, 시점간 예측인지 시간적 예측인지, 또 다른 예측인지를 의미할 수도 있다.
한편, 대용량의 3차원 영상 콘텐츠는 비트스트림의 양을 감소시키기 위하여 효율적으로 압축되어야 한다. 부호화 효율을 증가시키기 위하여 서로 다른 시점간 상관성을 이용할 수 있으며, 일반 영상(Texture View)과 깊이정보 맵(Depth View, 혹은 Depth Map) 간의 상관성을 이용할 수 있다. 하지만 이로 인해, 2차원 영상을 부호화할 때보다 더 많은 부호화 알고리즘이 요구되며, 이를 구현하기 위한 하드웨어 및 소프트웨어의 구현 복잡도가 증가되고 계산 복잡도가 증가되는 문제점이 존재한다.
도 6은 3차원 비디오 코덱(3D Video Codec)의 인코더를 개략적으로 나타낸 구조도이다.
도 6을 참조하면, 3차원 비디오 코덱(600)은 서로 다른 시점 영상들(예를 들어, 시점 0(view 0), 시점 1(view 1), 시점 2(view 2))을 입력으로 받아 부호화하고, 부호화된 통합된 하나의 비트스트림을 출력할 수 있다.
이때, 영상들에는 일반 영상(Texture View)뿐만 아니라 깊이정보 맵(Depth View)도 포함될 수 있다.
3차원 비디오 코덱(600)은 시점 정보(View ID 정보)에 따라 서로 다른 인코더에서 입력 영상들을 부호화할 수 있다.
예를 들어, 시점 0(View 0)의 영상은 역방향 호환성(Backward compatibility)를 위하여 기존 2차원 비디오 코덱으로 부호화되어야 하므로, 기본 계층 인코더(610, 시점 0 인코더)로 부호화될 수 있다. 시점 1(View 1)과 시점 2(View 2)의 영상들은 시점간 예측 알고리즘과 일반 영상과 깊이정보 맵 간의 상관성을 이용한 알고리즘이 포함된 3차원 비디오 코덱으로 부호화되어야 하므로, 향상 계층(enhancement layer) 인코더(620, 시점 1 혹은 시점 2 인코더)로 부호화될 수 있다.
또한, 일반 영상이 아닌 깊이정보 맵의 경우, 일반 영상의 부호화된 정보를 활용하여 부호화될 수 있으므로, 향상 계층 인코더(620)로 부호화될 수 있다. 따라서, 시점 0(View 0)의 영상을 부호화할 때에 비해, 시점 1(View 1)과 시점 2(View 2)의 영상을 부호화할 때 더욱 복잡한 인코더가 요구되며, 또한 기본 계층(base layer)의 일반 영상을 부호화할 때에 비해 깊이정보 맵을 부호화할 때 더욱 복잡한 인코더가 요구된다.
한편, HEVC에서는 영상 부호화/복호화 시 인터 예측(inter prediction)에 사용되는 움직임 정보의 부호화 방법 중 하나로 병합 움직임(merge, 혹은 merge motion) 방법을 이용한다. 여기서, 향상 계층(enhancement layer)에서의 부호화 효율을 증가시키기 위해서, 향상 계층에서는 기본 계층(base layer)에서의 병합 움직임 방법을 수정하여 향상된 병합 움직임 방법을 사용한다.
도 7은 HEVC 기반 3차원 비디오 코덱(3D-HEVC)에서 사용되는 병합 움직임 방법을 설명하기 위해 도시된 도면이다.
도 7을 참조하면, 3D-HEVC(700)에서는 시점 0(View 0)에 대한 병합 움직임 구성 방법(710)과 나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))에 대한 병합 움직임 구성 방법(720)으로 서로 구분되어 수행된다.
현재 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)를 출력할 수 있다.
여기서, 현재 PU는 현재 영상의 부호화/복호화을 위해 현재 영상 내 예측이 수행되는 현재 블록을 말한다.
시점 0(View 0)에 대한 일반 영상은 역방향 호환성을 위해 기본 계층을 위한 병합 움직임 구성 방법을 이용하여 병합 움직임 후보 리스트를 구성한다. 반면, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵은 향상 계층을 위한 병합 움직임 구성 방법을 이용하여 병합 움직임 후보 리스트를 구성한다.
향상 계층을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성 방법에 새로운 후보를 추가하거나 후보 리스트 순서를 수정하는 방법으로 수행된다. 즉, 도 7에 도시된 바와 같이, 향상 계층(나머지 다른 시점들(시점 1(View 1)과 시점 2(View 2))과 깊이정보 맵)을 위한 병합 움직임 구성 방법에는 기본 계층을 위한 병합 움직임 구성 방법이 포함되어 있다.
따라서, 향상 계층을 위한 병합 움직임 구성 방법은 기본 계층을 위한 병합 움직임 구성보다 복잡하게 구성되어 있으며, 계산 복잡도가 크다는 것을 알 수 있다. 또한, 하드웨어 혹은 소프트웨어의 구현 측면에서도 기본 계층을 위한 병합 움직임 구성 방법과 향상 계층을 위한 병합 움직임 구성 방법을 모두 구현해주어야 하므로, 구현 복잡도가 2배 이상 증가하는 것을 알 수 있다.
도 8은 현재 블록에 대한 병합 움직임 리스트를 구성하는데 사용되는 주변 블록들을 나타낸 일예이다.
병합 움직임 방법(merge mode)은 현재 블록(현재 PU)의 움직임 정보(예를 들어, 움직임 벡터, 참조 픽처 리스트, 참조 픽처 인덱스 등)로서 현재 블록의 주변 블록의 움직임 정보를 이용하는 방법을 말하며, 주변 블록의 움직임 정보를 기반으로 현재 블록에 대한 병합 움직임 후보 리스트를 구성한다.
주변 블록은 도 8에 도시된 바와 같이, 현재 블록과 공간적(spatial)으로 인접하여 위치한 주변 블록(neighboring block)(A, B, C, D, E)과, 현재 블록과 시간적(temporal)으로 대응하는 동일 위치의 후보 블록(co-located block)(H 혹은 M)을 포함할 수 있다. 동일 위치의 후보 블록은 현재 블록을 포함하는 현재 픽처와 시간적으로 대응하는 동일 위치의 픽처(co-located picture) 내 동일 위치의 블록을 말한다. 동일 위치의 픽처 내 H 블록이 가용하면 H 블록을 동일 위치의 후보 블록으로 결정하고, H 블록이 가용하지 않으면 동일 위치의 픽처 내 M 블록을 동일 위치의 후보 블록으로 결정한다.
병합 움직임 후보 리스트를 구성하기 위해서, 먼저 주변 블록(A, B, C, D, E)과 동일 위치의 후보 블록(H 혹은 M)의 움직임 정보가 현재 블록의 병합 움직임 후보 리스트를 구성하는 병합 움직임 후보(merge candidate)로 이용될 수 있는지를 판단하고, 다음으로 이용 가능한 블록의 움직임 정보를 병합 움직임 후보로 결정한다. 그리고 병합 움직임 후보를 병합 움직임 후보 리스트에 추가할 수 있다.
도 9는 병합 움직임 후보 리스트를 구성하는 방법을 하드웨어로 구현한 일예를 나타내는 도면이다.
도 9를 참조하면, 시점 0(View 0)에 대한 일반 영상에서 사용되는 병합 움직임 리스트를 구성하기 위한 입력 파라미터와, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵에서 사용되는 병합 움직임 리스트를 구성하기 위한 입력 파라미터는 동일하다. 단지 다른 점은 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵에서 사용되는 병합 움직임 리스트를 구성하기 위한 입력 파라미터(“추가 움직임 F”와 “추가 움직임 G”)가 추가된다는 점이다.
따라서, 추가된 움직임 정보들로 인해 병합 움직임 후보 리스트를 구성하는 부분이 변경된다. 즉, 추가된 움직임 정보들을 병합 움직임 후보 리스트에 포함시키기 위해서(부호화 효율을 증가시키기 위해서), 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵을 위한 병합 움직임 리스트 구성 모듈을 새로 구현하여야 한다. 이는 하드웨어의 구현 복잡도를 증가시킬 수 있다.
이러한 문제점들을 해결하기 위해서, 본 발명에서는 향상 계층(실시 예로, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵)을 위한 부호화 알고리즘 및 비디오 코덱의 구현 복잡도 및 계산 복잡도를 감소시키는 방법을 제안한다. 일예로, 본 발명에서는 이미 하드웨어 칩 형태로 구현이 완료된 기본 계층(시점0(View 0)에 대한 일반 영상)을 위한 “병합 움직임 후보 리스트 구성” 모듈을 그대로 재사용하여 향상 계층(실시 예로, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵)에 적용함으로써, 하드웨어 구현 복잡도를 감소시킬 수 있다. 본 발명에 따르면, 2차원 영상 서비스에 사용되는 기본 계층을 위한 부호화기/복화화기(구체적으로, “병합 움직임 후보 리스트 구성” 모듈)를 가지고 있는 소비자가 3차원 영상 서비스를 받고자 한다면, 단지 추가적인 모듈(구체적으로, 향상 계층을 위한 “병합 움직임 후보 리스트 구성” 모듈)만 부착하면 손쉽게 3차원 영상 서비스를 받을 수 있게 된다.
이하, 본 발명에서는 비디오 코덱의 구현 복잡도 및 계산 복잡도를 감소시켜서 데이터 처리량을 향상시키는 방법에 대해 설명한다.
[기본 방법]
도 10은 본 발명의 일 실시예에 따른 3차원 비디오 코덱을 개략적으로 나타내는 도면이다.
도 10을 참조하면, 3차원 비디오 코덱(1000)은 서로 다른 시점 영상들(예를 들어, 시점 0(view 0), 시점 1(view 1), 시점 2(view 2))을 입력으로 받아 부호화하고, 부호화된 하나의 비트스트림을 출력할 수 있다.
이때, 영상들에는 일반 영상(Texture View)뿐만 아니라 깊이정보 맵(Depth View)도 포함될 수 있다. 영상들에는 다른 시점과 상관없이 독립적으로 부호화될 수 있는 독립적인 시점(Independent View)의 영상과, 독립적인 시점의 영상을 참조 영상으로 사용하여 부호화되는 의존적인 시점(Dependent View)의 영상을 포함할 수 있다. 예를 들어, 시점 0(View 0)은 독립적인 시점일 수 있으며, 시점 1(view 1)과 시점 2(view 2)는 시점 0(View 0)을 참조하여 부호화되는 의존적인 시점일 수 있다.
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) 등이 될 수 있다.
3차원 비디오 코덱(1000)은 독립적인 시점이 아닌 의존적인 시점에 대한 일반 영상 및 깊이정보 맵에 대하여, 부호화 효율을 증가시키기 위하여, 부분 인코더(1020)를 포함할 수 있다. 예컨대, 부분 인코더(1020)는 시점 1(view 1)과 시점 2(view 2)에 대한 일반 영상 및 깊이정보 맵을 부호화할 수 있으며, 또는 모든 시점에 대한 깊이정보 맵을 부호화할 수 있다.
3차원 비디오 코덱(1000)은 각 인코더(1010, 1020)에 의해 부호화된 영상들을 다중화하는 다중화기(1030)를 포함할 수 있다. 다중화기(1030)는 시점 0(View 0)의 일반 영상에 대한 비트스트림과, 다른 시점(시점 1(View 1)과 시점 2(View 2))들의 일반 영상 및 깊이정보 맵들에 대한 비트스트림을 다중화하여 하나의 비트스트림으로 출력할 수 있다.
상술한 바와 같이, 본 발명의 일 실시예에 따른 3차원 비디오 코덱(1000)은 역방향 호환성을 제공하는 독립적인 시점(예컨대, 시점 0(View 0))에 대한 일반 영상의 부호화에 사용되는 모듈(1010)을 의존적인 시점(예컨대, 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 그대로 적용함으로써, 구현 복잡도를 감소시킬 수 있다. 그리고, 본 발명의 일 실시예에 따른 3차원 비디오 코덱(1000)은 의존적인 시점(예컨대, 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 부분 인코더(1020)를 추가적으로 적용함으로써, 부호화 효율을 향상시킬 수 있다.
도 10에서 상술한 3차원 비디오 코덱은 부호화/복호화 전체 과정에 대하여 적용할 수 있으며, 부호화/복호화의 각 단계마다 각각 적용할 수도 있다.
[세부 방법]
도 11은 본 발명의 일 실시예에 따른 병합 움직임 방법을 개략적으로 설명하기 위한 개념도이다. 도 11에 도시된 병합 움직임 방법은 HEVC 기반 3차원 비디오 코덱(3D-HEVC)에 의해 수행될 수 있으며, 3D-HEVC은 상술한 도 10의 3차원 비디오 코덱을 기반으로 구현될 수 있다.
본 발명의 일 실시예에 따른 병합 움직임 방법은 현재 PU에 대한 공간적 병합 움직임 후보(spatial merge candidate)와 시간적 병합 움직임 후보(temporal merge candidate)를 유도하고, 그리고 현재 PU에 대한 정보(예컨대, 현재 PU의 시점 정보, 현재 PU의 영상 타입 정보 등)를 기반으로 추가 병합 움직임 후보를 추가적으로 유도하고, 상기 유도된 병합 움직임 후보들을 기반으로 현재 PU에 대한 병합 움직임 후보 리스트(merge candidate list)를 구성할 수 있다.
도 11을 참조하면, 본 발명의 일 실시예에 따른 병합 움직임 방법에서, 입력은 현재 PU 정보(혹은 현재 영상 정보), 현재 PU의 영상이 일반 영상인지 혹은 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보), 현재 PU의 시점 정보(ViewID 정보)이며, 출력은 현재 PU에 대한 병합 움직임 후보 리스트이다.
본 발명의 병합 움직임 방법은 현재 PU에 대하여 “기본 병합 움직임 리스트 구성”(1110) 단계가 기본적으로 수행되어 “기본 병합 움직임 후보 리스트”를 출력할 수 있다. 일예로, “기본 병합 움직임 리스트 구성”(1110)은 HEVC에서의 병합 움직임 후보 리스트 구성 방법을 그대로 사용할 수 있다.
다음으로, 본 발명의 병합 움직임 방법은 현재 PU의 영상이 일반 영상인지 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보)와, 현재 PU에 대한 시점 정보(ViewID 정보)에 따라 “추가 병합 움직임 리스트 구성”(1120) 단계가 추가적으로 수행될 수 있다. 이때, “추가 병합 움직임 리스트 구성”(1120) 단계에서, 입력은 “기본 병합 움직임 리스트 구성”(1110) 단계에서 출력된 “기본 병합 움직임 후보 리스트”이며, 출력은 “확장 병합 움직임 후보 리스트”이다. “추가 병합 움직임 리스트 구성”(1120) 단계는 의존적인 시점(예컨대, 시점 1(View 1)과 시점 2(View 2))에 대한 일반 영상과 깊이정보 맵들에 대해 수행될 수 있다.
본 발명에 따른 병합 움직임 방법에 대한 보다 구체적인 내용은 후술하도록 한다.
도 12는 본 발명의 일 실시예에 따른 도 11의 병합 움직임 방법을 하드웨어로 구현한 일예를 나타내는 도면이다.
도 12를 참조하면, 본 발명의 일 실시예에 따른 병합 움직임 방법을 수행하는 장치(이하, 병합 움직임 장치)(1200)는 기본 병합 움직임 리스트 구성 모듈(1210)과 추가 병합 움직임 리스트 구성 모듈(1220)을 포함한다.
병합 움직임 장치(1200)의 입력은 공간적 병합 움직임 후보, 시간적 병합 움직임 후보, 추가 병합 움직임 후보이다. 병합 움직임 장치(1200)의 출력은 독립적인 시점에 대한 일반 영상의 경우에는 기본 병합 움직임 후보 리스트이고, 의존적인 시점에 대한 일반 영상과 깊이정보 맵의 경우에는 확장 병합 움직임 후보 리스트이다.
상술한 바와 같이, 독립적인 시점은 다른 시점과 상관없이 독립적으로 부호화될 수 있는 시점을 말하며, 기본 시점(base view)일 수 있다. 의존적인 시점은 독립적인 시점을 참조하여 부호화되는 시점을 말한다. 본 명세서에서는 설명의 편의를 위하여, 예컨대, 독립적인 시점은 시점 0(View 0)일 수 있으며, 의존적인 시점은 시점 1(view 1)과 시점 2(view 2)를 포함하는 것으로 기술하였다.
기본 병합 움직임 리스트 구성 모듈(1210)은 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 유도하여 기본 병합 움직임 후보 리스트를 구성할 수 있다.
공간적 병합 움직임 후보는, 도 8에 도시된 바와 같이, 현재 PU와 공간적으로 인접한 주변 블록(A, B, C, D, E)으로부터 유도될 수 있다.
기본 병합 움직임 리스트 구성 모듈(1210)은 주변 블록(A, B, C, D, E)이 가용한지(available) 여부를 판단하고, 가용한 주변 블록의 움직임 정보를 현재 PU에 대한 공간적 병합 움직임 후보로 결정할 수 있다. 이때, 주변 블록(A, B, C, D, E)이 가용한지 여부를 판단할 때, 미리 정해진 순서 혹은 임의의 순서에 따라 주변 블록(A, B, C, D, E)의 가용성 여부를 판단할 수 있다. 예컨대, A, B, C, D, 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 블록일 수 있다.
기본 병합 움직임 리스트 구성 모듈(1210)은 동일 위치의 블록(H, M)이 가용한지 여부를 판단하고, 가용한 동일 위치의 블록의 움직임 정보를 현재 PU에 대한 시간적 병합 움직임 후보로 결정할 수 있다. 이때, 동일 위치의 블록(H, M)의 가용성 여부를 판단하는 순서는 H 블록, M 블록 순일 수 있고, 또는 그 반대 순서일 수도 있다.
추가 병합 움직임 리스트 구성 모듈(1220)은 현재 PU의 영상이 일반 영상인지 혹은 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보), 현재 PU에 대한 시점 정보(ViewID 정보)를 기반으로 현재 PU에 대한 추가 병합 움직임 후보를 유도하여 확장 병합 움직임 후보 리스트를 구성할 수 있다.
현재 PU의 영상이 의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵일 경우, 추가 병합 움직임 리스트 구성 모듈(1220)은 추가적으로 현재 PU의 의존적인 시점에 대한 일반 영상과 깊이정보 맵을 위한 병합 움직임 후보 리스트를 구성하는 과정을 수행할 수 있다.
이때, 추가 병합 움직임 리스트 구성 모듈(1220)의 입력은, 기본 병합 움직임 리스트 구성 모듈(1210)에 의해 구성된 기본 병합 움직임 후보 리스트와 추가 병합 움직임 후보(F, G)이다. 추가 병합 움직임 리스트 구성 모듈(1220)의 출력은 확장 병합 움직임 후보 리스트이다.
의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵을 위한 병합 움직임 후보 리스트를 구성하기 위해서, 상술한 바와 같이 본 발명의 실시예에 따른 병합 움직임 장치는, 새로운 모듈을 구현하지 않고 단지 추가적인 부분 모듈만 구현함으로써 하드웨어의 구현 복잡도를 감소시킬 수 있다. 즉, 이미 하드웨어 칩 형태로 구현이 완료된 기본 계층(예컨대, 시점0(View 0)에 대한 일반 영상)을 위한 “병합 움직임 후보 리스트 구성” 모듈을 그대로 재사용하여 향상 계층(예컨대, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵)에 적용함으로써, 하드웨어 구현 복잡도를 감소시킬 수 있다.
도 13은 본 발명의 일 실시예에 따라 도 11 및 도 12의 병합 움직임 후보 리스트 구성 방법을 설명하기 위한 개념도이다. 도 13의 병합 움직임 후보 리스트 구성 방법은 상술한 도 10의 3차원 비디오 코덱 혹은 도 12의 병합 움직임 장치에서 수행될 수 있다.
도 13을 참조하면, 본 발명의 실시예에 따른 병합 움직임 후보 리스트를 구성하기 위해서, 입력은 현재 PU 정보, 현재 PU의 영상이 일반 영상인지 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보), 현재 PU에 대한 시점 정보(ViewID 정보)이며, 출력은 현재 PU에 대한 병합 움직임 후보 리스트이다.
우선, 현재 PU에 대하여 기본 병합 움직임 후보 리스트(1310)가 구성된다. 예를 들어, 기본 병합 움직임 후보 리스트는 HEVC에서의 병합 움직임 후보 리스트 구성 방법을 그대로 사용할 수 있으며, 상술한 바와 같이 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 기반으로 구성될 수 있다.
다음으로, 현재 PU 영상이 일반 영상인지 깊이정보 맵 영상인지에 대한 정보(Texture/Depth 정보) 및 현재 PU 영상에 대한 시점 정보(ViewID 정보)를 기반으로 확장 병합 움직임 후보 리스트(1320)가 구성된다. 이때, 확장 병합 움직임 후보 리스트는 의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵들에 대하여 구성될 수 있으며, 상술한 바와 같이 추가 병합 움직임 후보가 추가될 수 있다.
만일, 현재 PU가 독립적인 시점(예컨대, 시점0(View 0))의 일반 영상일 경우, 기본 병합 움직임 후보 리스트가 출력될 수 있다. 그렇지 않고, 현재 PU가 의존적인 시점(예컨대, 시점 1(view 1)과 시점 2(view 2))에 대한 일반 영상과 깊이정보 맵들일 경우, 확장 병합 움직임 후보 리스트가 출력될 수 있다.
이때, 확장 병합 움직임 후보 리스트의 후보 개수는 기본 병합 움직임 후보 리스트의 후보 개수보다 많을 수 있다.
도 14는 본 발명의 일 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다.
도 14를 참조하면, 본 발명의 실시예에 따른 확장 병합 움직임 후보 리스트는, 추가적인 움직임 정보인 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트의 첫번째 항목(index)(혹은 임의의 위치에 해당하는 항목)에 삽입할 수 있다.
이때, 추가 병합 움직임 후보를 삽입하기 전에, 추가 병합 움직임 후보(예컨대, 움직임 정보 F)와 기본 병합 움직임 후보 리스트의 첫번째 병합 움직임 후보(예컨대, 움직임 정보 A)를 서로 비교하고, 두 후보가 동일하지 않을 경우에 확장 병합 움직임 후보 리스트의 첫번째 항목에 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 삽입할 수 있으며, 그 역도 가능하다. 예를 들어, 두 후보(예컨대, 움직임 정보 F와 A)의 움직임 정보를 비교할 때, 두 후보의 움직임 벡터의 차이가 임의의 임계값 이내일 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트에 삽입하지 않을 수 있으며, 그 역도 가능하다. 또는, 두 후보의 참조 영상이 동일하지 않을 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트에 삽입할 수 있으며, 그 역도 가능하다.
도 15는 본 발명의 다른 실시예에 따른 확장 병합 움직임 후보 리스트를 구성하는 방법을 설명하기 위한 도면이다.
도 15를 참조하면, 본 발명의 실시예에 따른 확장 병합 움직임 후보 리스트는, 추가적인 움직임 정보인 추가 병합 움직임 후보(예컨대, 움직임 정보 F)를 확장 병합 움직임 후보 리스트의 첫번째 항목에 삽입하고, 또 다른 추가적인 움직임 정보인 추가 병합 움직임 후보(예컨대, 움직임 정보 G)를 확장 병합 움직임 후보 리스트의 세번째 항목(혹은 임의의 위치에 해당하는 항목)에 삽입할 수 있다.
이때, 추가 병합 움직임 후보를 삽입하기 전에, 기본 병합 움직임 후보 리스트 내의 원래 항목(첫번째 항목 및 세번째 항목)과 추가 병합 움직임 후보(예컨대, 움직임 정보 F와 G)를 서로 비교하고, 두 후보(예컨대, 움직임 정보 A와 F, 혹은 움직임 정보 C와 G)가 동일하지 않을 경우에 확장 병합 움직임 후보 리스트의 첫번째 항목과 세번째 항목에 추가 병합 움직임 후보를 삽입할 수 있으며, 그 역도 가능하다. 예를 들어, 두 후보(예컨대, 움직임 정보 A와 F, 혹은 움직임 정보 C와 G)의 움직임 정보를 비교할 때, 두 후보의 움직임 벡터의 차이가 임의의 임계값 이내일 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F 혹은 G)를 확장 병합 움직임 후보 리스트에 삽입하지 않을 수 있으며, 그 역도 가능하다. 또는, 두 후보의 참조 영상이 동일하지 않을 경우에는 추가 병합 움직임 후보(예컨대, 움직임 정보 F 혹은 G)를 확장 병합 움직임 후보 리스트에 삽입할 수 있으며, 그 역도 가능하다.
[추가 방법들]
상술한 도 10 내지 도 13의 방법들은 다음과 같이 다양하게 적용될 수 있다.
1. 일 실시예로, 기본 인코더(혹은 기본 모듈)를 시점 0(View 0)에 대한 일반 영상뿐만 아니라 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵들에 적용할 수 있다.
2. 다른 실시예로, 기본 인코더(혹은 기본 모듈)를 복잡도가 높은 작은 블록단위(일예로, 8x8 단위 혹은 임의의 블록 크기)에만 적용할 수 있다. 이때, 시점 1(View 1)과 시점 2(View 2)에 대한 일반 영상과 깊이정보 맵들에 대하여, 작은 블록 크기 이하에서는 기본 인코더(혹은 기본 모듈)를 사용하여 부호화되고, 작은 블록 크기보다 클 경우에는 기본 인코더(혹은 기본 모듈)와 부분 인코더(혹은 확장 모듈)를 사용하여 부호화될 수 있다. 여기서, 기본 인코더(혹은 기본 모듈)은 도 11과 도 13에서 “기본 병합 움직임 리스트 구성” 단계를 수행할 수 있으며, 부분 인코더(혹은 확장 모듈)은 도 11과 도 13에서 “추가 병합 움직임 리스트 구성” 단계를 수행할 수 있다.
도 16은 본 발명의 일 실시예에 따른 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다. 도 16의 방법은 상술한 도 10 및 도 12에서 도시된 장치에 의해 수행될 수 있으며, 또는 3D-HEVC에 적용하여 수행될 수도 있다. 설명의 편의 상, 도 16의 방법은 병합 움직임 장치에 의해 수행되는 것으로 설명한다.
도 16을 참조하면, 병합 움직임 장치는 현재 PU를 위한 병합 움직임 후보 리스트에 기본 병합 움직임 후보들을 추가한다(S1600).
여기서, 기본 병합 움직임 후보들은, 상술한 바와 같이 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 포함할 수 있으며, 독립적인 시점의 일반 영상에 대한 후보들일 수 있다.
병합 움직임 장치는 현재 PU를 포함하는 현재 픽처가 깊이정보 맵인지 또는 의존적인 시점인지를 판단한다(S1610).
만일, 현재 PU를 포함하는 현재 픽처가 깊이정보 맵 또는 의존적인 시점이라면, 병합 움직임 장치는 병합 움직임 후보 리스트에 확장 병합 움직임 후보를 추가한다(S1620).
여기서, 확장 병합 움직임 후보는 깊이정보 맵 또는 의존적인 시점의 영상(일반 영상 및 깊이정보 맵)에 대한 후보들일 수 있다.
표 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)의 기술 형식이다.
표 1은 기존 확장 병합 움직임 후보를 추가하는 과정을 포함하는 프로세스의 입출력의 일예를 나타내고, 표 2는 본 발명의 실시예에 따른 확장 병합 움직임 후보를 추가하는 과정을 포함하는 프로세스의 입출력의 일예를 나타낸다.
표 2에 도시된 본 발명의 실시예에 따른 확장 병합 움직임 후보를 추가하는 과정은 추가적인 입력으로서, 병합 움직임 후보 리스트(mergCandList), 기본 병합 움직임 후보가 추가 되었는지를 지시하는 플래그(availableFlagN)가 사용 된다.
표 2에서 N은 좌(left), 상(above), 우상(above-right), 좌하(bottom-left), 좌상(above-left) 위치의 후보임을 의미하는 A0, A1, B0, B1, B2로 대체될 수 있다. 입력 받은 병합 움직임 후보 리스트(mergCandList)에는 기존 방법에 의하여 기본 병합 움직임 후보들이 임의의 우선 순위대로 저장되어 있다. 일 예로, 좌 후보, 상 후보, 우상 후보, 좌하 후보, 좌상 후보, 시간적 (예측) 후보, 합성 양방향 예측 후보(combined bi-predictive candidate), 움직임이 0인 후보 순서로 저장 되어 있을 수 있다. 출력은 확장 병합 움직임 후보들에 대한 추가 작업이 완료된 병합 움직임 후보 리스트이다.
표 3은 기존 확장 병합 움직임 후보 추가 과정을 나타낸 것이고, 표 4는 본 발명의 실시예에 따른 확장 병합 움직임 후보 추가 과정을 나타낸 것이다.
표 4에서는 기본 병합 움직임 후보들이 이미 추가되어 있는 리스트를 처리하므로, 확장 병합 움직임 후보들에 대한 과정들만을 처리하게 된다. 따라서, 기존 3D-HEVC에서, HEVC에서 사용하던 병합 움직임 후보들에 대한 처리가 중복 구현되지 않도록 생략할 수 있다.
표 4에 기술된 본 발명의 실시예에 따른 확장 병합 움직임 후보 추가 과정에서는 혼합 양방향 예측 후보(combined bi-predictive candidate)를 유도할 시, 확장 움직임 병합 후보들을 추가로 이용하는 기존 방법을 사용하지 않고, HEVC 표준에서 사용하는 기본 움직임 병합 후보들만을 혼합하여 유도하는 방법을 사용하여 기존 방법보다 연산을 줄이면서 거의 동일한 부호화 효율을 얻을 수 있다.
표 4에 기술된 본 발명의 실시예에 따른 확장 병합 움직임 후보 추가 과정은 도 17a 내지 도 17f을 참조하여 구체적으로 설명하도록 한다.
도 17a, 도 17b, 도 17c, 도 17d, 도 17e 및 도 17f은 본 발명의 일 실시예에 따른 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가하는 방법을 나타내는 순서도이다.
도 17a 내지 도 17f의 방법은 상술한 표 4의 확장 병합 움직임 후보 추가 과정을 기반으로 구성된 것이다. 도 17a 내지 도 17f의 방법은 상술한 도 10 및 도 12에서 도시된 장치에 의해 수행될 수 있으며, 또는 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에 저장하고, 사용 가능한 후보들의 움직임 정보를 유도한다.
2. 플래그 view_synthesis_pred_flag[nuh_layer_id]는 현재 PU가 시점 합성 예측(view synthesis prediction)을 시도 할 수 있는가를 의미한다. 상기 플래그 view_synthesis_pred_flag[nuh_layer_id]가 1이라면, 시점 간 합성 병합 후보의 사용 가능 여부를 플래그 availableFlagVSP에 저장하고, 사용 가능하다면 움직임 정보를 유도한다.
3. 플래그 mpi_flag[nuh_layer_id]는 현재 PU가 깊이정보 맵이며, 텍스처 블록으로부터 움직임 예측을 시도 할 수 있는가를 의미한다. 상기 플래그 mpi_flag[nuh_layer_id]가 1이면, 텍스처 병합 후보의 사용 가능 여부를 플래그 availableFlagT에 저장하고, 사용 가능하다면 움직임 정보를 유도한다.
4. 현재까지 기본 병합 움직임 후보들로만 구성된 병합 움직임 후보 리스트(mergeCandList)와 각 후보에 대한 시점 간 예측 플래그(mergeCandIsVspFlag)는 다음과 같은 과정으로 재구성 된다.
a. numMergeCand은 병합 움직임 후보의 총 개수, numA1B1B0는 기본 병합 움직임 후보 중 좌(left), 상(above), 우상(above-right) 위치에 해당하는 후보들의 개수, numA0B2는 기본 병합 움직임 후보 중 좌하(bottom-left), 좌상(above-left)의 위치에 해당하는 후보들의 개수이다. numMergeCand, numA1B1B0, numA0B2을 0으로 초기화 한다.
b. 좌 후보(A1)가 사용 가능한지 판단한다. 좌 후보가 사용 가능하다면, numA1B1B0을 1 증가시킨다. 또한, 좌 후보가 시점 간 합성 예측(View Synthesis Prediction, 이하 VSP)을 사용하였는지를 플래그로 저장한다.
c. 상 후보(B1)가 사용 가능한지 판단한다. 상 후보가 사용 가능하다면, numA1B1B0을 1 증가시킨다. 또한, 상 후보가 VSP를 사용하였는지를 플래그로 저장한다.
d. 우상 후보(B0)가 사용 가능한지 판단한다. 우상 후보가 사용 가능하다면, numA1B1B0을 1 증가시킨다. 또한, 우상 후보가 VSP를 사용하였는지를 플래그로 저장한다.
e. 좌하 후보(A0)가 사용 가능한지 판단한다. 좌하 후보가 사용 가능하다면, numA0B2을 1 증가시킨다. 또한, 좌하 후보가 VSP 사용하였는지를 플래그로 저장한다.
f. 좌상 후보(B2)가 사용 가능한지 판단한다. 좌상 후보가 사용 가능하다면, numA0B2을 1 증가시킨다. 또한, 좌상 후보가 VSP을 사용하였는지를 플래그로 저장한다.
g. 플래그 availableFlagT가 1이면 다음 과정을 수행한다.
- pruneFlagA1, pruneFlagB1을 0으로 설정한다.
- 좌 후보가 사용 가능하고, 텍스처 후보의 움직임 정보가 좌 후보와 같다면 pruneFlagA1을 1로 설정한다.
- 상 후보가 사용 가능하고, 텍스처 후보의 움직임 정보가 상 후보와 같다면 pruneFlagB1을 1로 설정한다.
- 만일 pruneFlagA1과 pruneFlagB1이 모두 0이면, 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든다. 이 때, 새로운 공간을 하나 만든다는 것은 리스트 내의 numMergeCand 위치에서부터의 모든 값들을 오른쪽 값으로 한 칸씩 이동 시킨다는 것을 의미한다.
- 그 밖의 경우, 다음 과정을 수행한다.
numA1B1B0를 1 감소시킨다.
좌, 상 후보가 모두 사용 가능하고 pruneFlagA1이 0이라면 리스트의 두 번째 값을 첫 번째 값으로 설정한다.
- 리스트의 첫 번째 값을 텍스처 후보로 설정하고 numMergeCand을 1 증가시킨다.
h. 플래그 availableFlagIvMC가 1이면 다음 과정을 수행한다.
- pruneFlagA1, pruneFlagB1, pruneFlagT, addIvMC를 0으로 설정한다.
- 현재 픽처가 텍스처이면(DepthFlag=1), 다음 과정을 수행한다.
좌 후보가 사용 가능하고, 시점 간 후보의 움직임 정보가 좌 후보와 같다면 pruneFlagA1을 1로 설정한다.
상 후보가 사용 가능하고, 시점 간 후보의 움직임 정보가 상 후보와 같다면 pruneFlagB1을 1로 설정한다.
- 현재 픽처가 깊이맵이고(DepthFlag=0), 텍스처 후보가 사용 가능하고, 시점 간 후보의 움직임 정보가 텍스처 후보와 같다면 pruneFlagT을 1로 설정한다.
- 만일 pruneFlagA1, pruneFlagB1, pruneFlagT가 모두 0이면, 리스트의 numMergeCand 위치에 새로운 공간을 하나 만들고, addIvMC를 1로 설정한다.
- 그렇지 않고, 현재 픽처가 텍스처이며(DepthFlag=0) 시점 간 후보의 움직임 정보가 좌 후보 또는 상 후보와 같다면, 다음 과정을 수행한다.
numA1B1B0를 1 감소시킨다.
addIvMC를 1로 설정한다.
좌, 상 후보가 모두 사용 가능하고 pruneFlagA1이 0이라면 리스트의 두 번째 값을 첫 번째 값으로 설정한다.
- addIvMC가 1이라면, 리스트의 첫 번째 값을 텍스처 후보로 설정하고 numMergeCand을 1 증가시킨다.
i. numMergeCand에 numA1B1B0을 더한다.
j. 플래그 availableFlagIvDC가 1이면 다음 과정을 수행한다.
- 시차 병합 후보(IvDC)의 움직임 정보와 사용 가능한 좌 후보 및 상 후보를 비교한다. 그 결과, 좌 후보 및 상 후보의 움직임 정보와 모두 다르다면 병합 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든 후 시차 병합 후보(IvDC)를 추가한다.
- numMergeCand을 1 증가시킨다.
k. 플래그 availableFlagVSP가 1이고, 밝기보상 프래그(ic_flag)가 0이고, 잔여 오차 신호 예측 계수(iv_res_pred_weight_idx)가 0이고, numMergeCand가 5 + 추가 병합후보 개수(NumExtraMergeCand)보다 작으면 시점 합성 병합 후보를 리스트에 추가하고 numMergeCand3DV, numMergeCand를 1 증가시킨다.
l. numMergeCand에 numA0B2를 더한다.
m. 플래그 availableFlagIvMCShift가 1이고 numMergeCand가 리스트의 최대 길이(일예로 6)보다 작으면, 다음 과정을 수행한다.
- 시점 간 병합 후보(IvMC)가 사용 가능하다면, 시점 간 병합 후보와 이동된 시점 간 병합 후보(IvMCShift)를 비교하여 서로 다르다면 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든 후 이동 된 시점 간 병합 후보를 추가한다.
- numMergeCand을 1 증가시킨다.
n. 플래그 availableFlagIvMCShift가 0이고, 현재 PU가 깊이정보 맵 상에 위치하지 않고, numMergeCand가 리스트의 최대 길이(일예로 6)보다 작으면, 다음 과정을 수행한다.
- 이동된 시차 예측 후보(IvDCShift)가 사용 가능하다면, 리스트의 numMergeCand 위치에 새로운 공간을 하나 만든 후 이동 된 시점 간 병합 후보를 추가한다.
- numMergeCand을 1 증가시킨다.
상기 과정 h, j에서 시점 간 병합 후보와 시차 병합 후보를 리스트의 기존 후보들과 비교 시, 리스트 내의 모든 후보들과 비교하지 않고 그 중 일부와 비교하는 방법을 사용하여 복잡도를 낮출 수 있다. 일 예로 좌 후보와 상 후보만을 비교에 사용할 수 있다.
표 5는 기존 혼합 양방향 예측 후보를 유도하는 과정의 일예를 나타낸 것이고, 표 6은 본 발명의 실시예에 따른 3D-HEVC에서 HEVC 혼합 양방향 예측 후보 유도 과정을 재사용하는 일예를 나타낸 것이다.
표 6에 기술된 본 발명의 실시예에 따른 혼합 양방향 예측 후보 유도 과정에서는 표 5에서처럼 의존적인 시점이나 깊이정보 맵만을 위한 새로운 모듈을 제작하지 않고, 기존 HEVC의 과정을 그대로 사용한다. 따라서 표 6의 방법에서는 표 5의 과정이 모두 제거 된다.
표 6에 기술된 본 발명의 실시예에 따른 혼합 양방향 예측 후보 유도 과정을 구현하면 표 7과 같은 결과를 얻을 수 있다. 실험에 사용 된 비디오 시퀀스들은 JCT-3V 표준화에서 공식적으로 사용하는 테스트용 비디오 시퀀스들이다.
표 7은 기존 방법(표 5의 방법)과 본 발명에서 제안하는 방법(표 6의 방법)의 부호화 효율 및 부호화 시간 비교 실험 결과를 나타낸다.
표 7에 도시된 바와 같이, 본 발명의 실시예에 따른 3D-HEVC에서 HEVC 혼합 양방향 예측 후보 유도 과정을 재사용하였음에도 비교 결과, 기존 방법에 비하여 PSNR 대비 비트율(bitrate) 증가가 0.1% 미만으로 거의 동일한 부호화 효율을 보인다.
상술한 방법은 현재 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) 주어진 깊이에만 적용하는 방식이 있을 수 있다.
표 8에 따르면, 주어진 CU(혹은 TU) 깊이가 2인 경우, 본 발명의 방법들을 적용할 수 있다. 표 8에서 O 표시는 해당 깊이에 적용함을 나타내고 X 표시는 해당 깊이에 적용하지 않음을 나타낸다.
모든 깊이에 대하여 본 발명의 방법들을 적용하지 않는 경우는 임의의 지시자(flag)를 사용하여 나타낼 수도 있고, CU 깊이의 최대값보다 하나 더 큰 값을 적용범위를 나타내는 CU 깊이 값으로 시그널링 함으로써 표현할 수도 있다.
본 발명의 추가적인 특징으로, 상술한 본 발명의 방법들의 적용 여부는 비트스트림에 포함되어 시그널링될 수 있다. 예컨대, 상술한 본 발명의 방법들의 적용 여부에 대한 정보는 SPS(Sequence Parameter Set), PPS(Picture Parameter Set), 슬라이스 헤더(Slice Header)의 신택스(Syntax)에 포함되어 시그널링될 수 있다.
표 9는 상술한 본 발명의 방법들의 적용 여부를 SPS를 이용하여 시그널링하는 방법의 일예를 나타낸다.
표 10은 상술한 본 발명의 방법들의 적용 여부를 PPS를 이용하여 시그널링하는 방법의 일예를 나타낸다.
표 11은 상술한 본 발명의 방법들의 적용 여부를 슬라이스 헤더를 이용하여 시그널링하는 방법의 일예를 나타낸다.
표 12는 상술한 본 발명의 방법들의 적용 여부를 슬라이스 헤더를 이용하여 시그널링하는 방법의 다른 예를 나타낸다.
표 9 내지 표 12에서, “reuse_enabled_flag”는 상술한 본 발명의 방법들의 적용 여부를 알려준다. 여기서, 상술한 본 발명의 방법들이 적용되었을 경우 “reuse_enabled_flag”가 ‘1’이 되며, 상술한 본 발명의 방법들이 적용되지 않았을 경우 “reuse_enabled_flag”가 ‘0’이 된다. 그 반대도 가능하다.
“reuse_disabled_info”는 상술한 본 발명의 방법들이 적용되었을 경우(혹은 “reuse_enabled_flag”이 참일 경우) 활성화되는 syntax로써, 이는 CU의 깊이(depth) (혹은 CU의 크기(size) 혹은 매크로 블록의 크기 혹은 서브 매크로 블록의 크기 혹은 블록의 크기)에 따라 상술한 본 발명의 방법들의 적용 여부를 알려준다.
일예로, “reuse_disabled_info”가 ‘0’일 경우에는 상술한 본 발명의 방법들이 모든 블록 크기에 적용될 수 있다. “reuse_disabled_info”가 ‘1’일 경우에는 상술한 본 발명의 방법들이 4x4 블록 크기보다 큰 단위에만 적용할 수 있다.
다른 예로, “reuse_disabled_ info”가 ‘2’일 경우에는 상술한 본 발명의 방법들이 8x8 블록 크기보다 큰 단위에만 적용할 수 있다. 혹은 그 역도 가능하다. 예를 들어 “reuse_disabled_info”가 ‘1’일 경우에는 상술한 본 발명의 방법들이 4x4 블록 크기보다 작은 단위에만 적용할 수 있다. 이러한 “reuse_disabled_info” 신택스(syntax)의 사용 방법은 다양하게 적용할 수 있다.
위의 방법을 이용하여 픽처(혹은 프레임) 단위로 적용 여부를 결정할 수 있다. 또한 P 픽처(혹은 프레임)에만 본 명세서의 방법이 적용될 수 있으며, B 픽처(혹은 프레임)에만 본 명세서의 방법이 적용될 수 있다.
상술한 본 발명의 방법들은 3차원 비디오 코덱뿐만 아니라 스케일러블 비디오 코덱에도 적용할 수 있다. 일예로, 스케일러블 비디오 코덱의 기본 계층에서 사용하는 부호화/복호화 모듈을 그대로 향상 계층에 적용한 후, 추가적으로 부분 부호화/복호화 모듈을 이용하여 향상 계층을 부호화/복호화할 수 있다. 다른 예로, 스케일러블 비디오 코덱의 기본 계층에서 사용하는 “기본 병합 움직임 리스트 구성“ 모듈을 그대로 향상 계층에 적용하여 “기본 병합 움직임 후보 리스트”를 구성한 후, 추가적으로 “추가 병합 움직임 리스트 구성” 모듈을 이용하여 “기본 병합 움직임 후보 리스트”를 재설정(변경)하여 향상 계층을 위한 “확장 병합 움직임 후보 리스트”를 구성할 수 있다.
도 18은 본 발명의 일 실시예에 따라 복수의 시점을 포함하는 비디오 부호화/복호화 시 병합 움직임 후보 리스트를 구성하는 방법을 개략적으로 나타내는 순서도이다.
도 18의 방법은 상술한 도 10 및 도 12에서 도시된 장치에 의해 수행될 수 있으며, 또는 3D-HEVC에 적용하여 수행될 수도 있다. 설명의 편의 상, 도 18의 방법은 병합 움직임 장치에 의해 수행되는 것으로 설명한다.
도 18을 참조하면, 병합 움직임 장치는 현재 PU에 대한 기본 병합 움직임 후보를 유도하고, 유도된 기본 병합 움직임 후보를 기반으로 병합 움직임 후보 리스트를 구성한다(S1800).
기본 병합 움직임 후보는, 상술한 바와 같이, 현재 PU에 대한 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보를 포함할 수 있다.
예컨대, 도 8에 도시된 바와 같이, 병합 움직임 장치는 현재 PU에 공간적으로 인접하여 위치한 좌(left) 블록, 상(above) 블록, 우상(above-right) 블록, 좌하(bottom-left) 블록 및 좌상(above-left) 블록 중 적어도 하나의 블록으로부터 공간적 병합 움직임 후보를 유도할 수 있다. 그리고 병합 움직임 장치는 현재 PU에 대한 동일 위치 픽처(co-located picture) 내 동일 위치 블록(co-located block)(예를 들어, 하단 우측(bottom right) 블록, 중앙(center) 블록)으로부터 시간적 병합 움직임 후보를 유도할 수 있다.
병합 움직임 장치는, 상술한 바와 같이, 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보의 가용성 여부를 기반으로 병합 움직임 후보 리스트를 구성할 수 있다.
현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 병합 움직임 장치는 현재 PU에 대한 확장 병합 움직임 후보를 유도한다(S1810).
확장 병합 움직임 후보는, 의존적인 시점의 영상 또는 깊이정보 맵 영상에 대한 예측을 위해 사용되는 병합 움직임 후보를 말한다. 확장 병합 움직임 후보는 시점 간 병합 후보(inter-view merge candidate: IvMC), 시점 합성 병합 후보(view synthesis prediction merge candidate) 및 텍스처 병합 후보(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의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는지 여부에 따라 텍스처 병합 후보를 유도할 수 있다.
병합 움직임 장치는 상기 유도된 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가함으로써, 최종적으로 병합 움직임 후보 리스트를 재구성할 수 있다(S1820).
이때, 추가할 확장 병합 움직임 후보가 병합 움직임 리스트 내 기본 병합 움직임 후보와 동일하지 않은 경우, 병합 움직임 장치는 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가한다. 확장 병합 움직임 후보는 병합 움직임 후보 리스트 내 임의의 위치(예컨대, 리스트의 첫번째 항목)에 추가될 수 있다.
또한, 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 기본 병합 움직임 후보 개수를 더한 값이 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 병합 움직임 장치는 확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가한다.
예를 들어, 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는 경우, 텍스처 병합 후보가 유도될 수 있다. 이때, 유도된 텍스처 병합 후보가 병합 움직임 리스트 내 기본 병합 움직임 후보와 동일하지 않은 경우, 텍스처 병합 후보를 병합 움직임 리스트 내 첫번째 항목에 추가할 수 있다.
현재 PU가 시점 간 예측을 수행하는 경우, 시점 간 병합 후보가 유도될 수 있다. 이때, 유도된 시점 간 병합 후보가 병합 움직임 리스트 내 기본 병합 움직임 후보와 동일하지 않은 경우, 시점 간 병합 후보를 병합 움직임 리스트 내 첫번째 항목에 추가할 수 있다.
현재 PU가 시점 합성 예측을 수행하는 경우, 시점 합성 병합 후보가 유도될 수 있다. 이때, 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 기본 병합 움직임 후보 개수를 더한 값이 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 유도된 시점 합성 병합 후보가 병합 움직임 후보 리스트에 추가될 수 있다.
확장 병합 움직임 후보를 병합 움직임 후보 리스트에 추가하는 구체적인 과정은 본 명세서의 실시예들에서 상세히 설명한 바 있으므로, 본 실시예에서는 구체적인 설명을 생략한다.
상술한 병합 움직임 후보 리스트를 기반으로 현재 PU에 대한 움직임 정보를 획득할 수 있으며, 상기 움직임 정보를 이용하여 현재 PU에 대한 예측을 수행함으로써 현재 PU의 예측 샘플 값을 획득할 수 있다.
따라서, 부호화기에서는 현재 PU의 예측 샘플 값을 기반으로 현재 PU의 잔차(residual) 샘플 값을 획득하고, 잔차 샘플 값을 변환/양자화 및 엔트로피 부호화하여 복호화기로 전송할 수 있다. 복호화기에서는 현재 PU의 예측 샘플 값과 부호화기에 의해 전송된 현재 PU의 잔차 샘플 값을 기반으로 현재 PU의 복원 샘플 값을 얻을 수 있다.
상술한 실시예들에서, 방법들은 일련의 단계 또는 블록으로서 순서도를 기초로 설명되고 있으나, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당해 기술 분야에서 통상의 지식을 가진 자라면 순서도에 나타난 단계들이 배타적이지 않고, 다른 단계가 포함되거나, 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호범위는 특허청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Claims (15)
- 복수의 시점(view)을 포함하는 비디오 복호화 방법에 있어서,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계;상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계; 및상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함하며,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트 내 임의의 위치에 추가하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 기본 병합 움직임 후보는,상기 현재 PU의 공간적 병합 움직임 후보 및 시간적 병합 움직임 후보 중 적어도 하나를 포함하며,상기 공간적 병합 움직임 후보는,상기 현재 PU에 공간적으로 인접하여 위치한 좌(left) 블록, 상(above) 블록, 우상(above-right) 블록, 좌하(bottom-left) 블록 및 좌상(above-left) 블록 중 적어도 하나의 블록을 포함하며,상기 시간적 병합 움직임 후보는,상기 현재 PU에 대한 동일 위치 픽처(co-located picture) 내 동일 위치 블록(co-located block)을 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 확장 병합 움직임 후보는,시점 간 병합 후보(inter-view merge candidate: IvMC), 시점 합성 병합 후보(view synthesis prediction merge candidate) 및 텍스처 병합 후보(texture merge candidate) 중 적어도 하나를 포함하는 것을 특징으로 하는 비디오 복호화 방법.
- 제4항에 있어서,상기 확장 병합 움직임 후보를 유도하는 단계에서는,상기 현재 PU가 시점 간 예측을 수행하는지 여부에 따라 상기 시점 간 병합 후보를 유도하는 것을 특징으로 하는 비디오 복호화 방법.
- 제4항에 있어서,상기 확장 병합 움직임 후보를 유도하는 단계에서는,상기 현재 PU가 시점 합성 예측을 수행하는지 여부에 따라 상기 시점 합성 병합 후보를 유도하는 것을 특징으로 하는 비디오 복호화 방법.
- 제4항에 있어서,상기 확장 병합 움직임 후보를 유도하는 단계에서는,상기 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는지 여부에 따라 상기 텍스처 병합 후보를 유도하는 것을 특징으로 하는 비디오 복호화 방법.
- 제2항에 있어서,상기 임의의 위치는 상기 병합 움직임 후보 리스트 내 첫번째 항목(index)인 것을 특징으로 하는 비디오 복호화 방법.
- 제1항에 있어서,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 상기 기본 병합 움직임 후보 개수를 더한 값이 상기 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 방법.
- 제7항에 있어서,상기 현재 PU의 깊이정보 맵이 텍스처 블록으로부터 움직임 예측을 수행하는 경우,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 텍스처 병합 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 텍스처 병합 후보를 상기 병합 움직임 후보 리스트 내 첫번째 항목에 추가하는 것을 특징으로 하는 비디오 복호화 방법.
- 제5항에 있어서,상기 현재 PU가 시점 간 예측을 수행하는 경우,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 시점 간 병합 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 시점 간 병합 후보를 상기 병합 움직임 후보 리스트 내 첫번째 항목에 추가하는 것을 특징으로 하는 비디오 복호화 방법.
- 제6항에 있어서,상기 현재 PU가 시점 합성 예측을 수행하는 경우,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 병합 움직임 후보 리스트에 추가된 확장 병합 움직임 후보 개수와 상기 기본 병합 움직임 후보 개수를 더한 값이 상기 병합 움직임 후보 리스트의 최대 후보 개수보다 작은 경우, 상기 시점 합성 병합 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 방법.
- 복수의 시점(view)을 포함하는 비디오 복호화 장치에 있어서,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈; 및상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함하며,상기 추가 병합 움직임 리스트 구성 모듈은,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 복호화 장치.
- 복수의 시점(view)을 포함하는 비디오 부호화 방법에 있어서,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 단계;상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하는 단계; 및상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 단계를 포함하며,상기 확장 병합 움직임 후보를 추가하는 단계에서는,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 부호화 방법.
- 복수의 시점(view)을 포함하는 비디오 부호화 장치에 있어서,현재 PU(Precidtion Unit)에 대한 기본 병합 움직임 후보를 유도하여 병합 움직임 후보 리스트를 구성하는 기본 병합 움직임 리스트 구성 모듈; 및상기 현재 PU가 깊이정보 맵 또는 의존적인 시점인 경우, 상기 현재 PU에 대한 확장 병합 움직임 후보를 유도하고, 상기 병합 움직임 후보 리스트에 상기 확장 병합 움직임 후보를 추가하는 추가 병합 움직임 리스트 구성 모듈을 포함하며,상기 추가 병합 움직임 리스트 구성 모듈은,상기 확장 병합 움직임 후보가 상기 병합 움직임 후보 리스트 내 상기 기본 병합 움직임 후보와 동일하지 않을 경우, 상기 확장 병합 움직임 후보를 상기 병합 움직임 후보 리스트에 추가하는 것을 특징으로 하는 비디오 부호화 장치.
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 (ko) | 2013-10-24 | 2014-04-22 | 비디오 부호화/복호화 방법 및 장치 |
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 (ko) | 2015-04-30 |
Family
ID=52993076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2014/003517 WO2015060508A1 (ko) | 2013-10-24 | 2014-04-22 | 비디오 부호화/복호화 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015060508A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120080122A (ko) * | 2011-01-06 | 2012-07-16 | 삼성전자주식회사 | 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법 |
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 (ja) * | 2011-06-30 | 2013-02-14 | Jvc Kenwood Corp | 画像復号装置、画像復号方法および画像復号プログラム |
KR20130048122A (ko) * | 2011-10-26 | 2013-05-09 | 경희대학교 산학협력단 | 움직임 후보 리스트 생성 방법 및 그를 이용한 부호화 장치 |
KR20130085382A (ko) * | 2012-01-19 | 2013-07-29 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
-
2014
- 2014-04-22 WO PCT/KR2014/003517 patent/WO2015060508A1/ko active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120080122A (ko) * | 2011-01-06 | 2012-07-16 | 삼성전자주식회사 | 경쟁 기반의 다시점 비디오 부호화/복호화 장치 및 방법 |
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 (ja) * | 2011-06-30 | 2013-02-14 | Jvc Kenwood Corp | 画像復号装置、画像復号方法および画像復号プログラム |
KR20130048122A (ko) * | 2011-10-26 | 2013-05-09 | 경희대학교 산학협력단 | 움직임 후보 리스트 생성 방법 및 그를 이용한 부호화 장치 |
KR20130085382A (ko) * | 2012-01-19 | 2013-07-29 | 한국전자통신연구원 | 영상 부호화/복호화 방법 및 장치 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020166897A1 (ko) | Dmvr 기반의 인터 예측 방법 및 장치 | |
WO2017034089A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2017090988A1 (ko) | 다시점 비디오의 부호화/복호화 방법 | |
WO2020180155A1 (ko) | 비디오 신호를 처리하기 위한 방법 및 장치 | |
WO2015002460A1 (ko) | 복수의 레이어를 포함하는 영상의 부호화 및 복호화 방법 | |
WO2020004990A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2014058216A1 (ko) | 비디오 데이터 디코딩 방법 및 비디오 데이터 디코딩 장치 | |
WO2019194514A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2020180129A1 (ko) | 인터 예측을 위한 비디오 신호의 처리 방법 및 장치 | |
WO2019216714A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2018105759A1 (ko) | 영상 부호화/복호화 방법 및 이를 위한 장치 | |
WO2019235822A1 (ko) | 어파인 움직임 예측을 이용하여 비디오 신호를 처리하는 방법 및 장치 | |
WO2021194307A1 (ko) | 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2014014276A1 (ko) | 인루프 필터링 방법 및 이를 이용하는 장치 | |
WO2016056779A1 (ko) | 3d 비디오 코딩에서 카메라 파라미터 처리 방법 및 장치 | |
WO2021015512A1 (ko) | Ibc를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021006579A1 (ko) | 머지 후보의 양방향 예측을 위한 가중치 인덱스를 유도하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021194308A1 (ko) | 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020009447A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2021112633A1 (ko) | 동일 위치 픽처에 관한 정보를 포함하는 픽처 헤더에 기반한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021141477A1 (ko) | 머지 후보들의 최대 개수 정보를 포함하는 시퀀스 파라미터 세트를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020256485A1 (ko) | 크로마 블록의 적응적 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020184953A1 (ko) | 쌍 예측을 위한 가중치 인덱스 정보를 유도하는 비디오 또는 영상 코딩 | |
WO2019216736A1 (ko) | 인터 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2020180153A1 (ko) | 인터 예측을 위한 비디오 신호의 처리 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 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 |