WO2018097577A1 - 영상 병렬 처리 방법 및 장치 - Google Patents
영상 병렬 처리 방법 및 장치 Download PDFInfo
- Publication number
- WO2018097577A1 WO2018097577A1 PCT/KR2017/013284 KR2017013284W WO2018097577A1 WO 2018097577 A1 WO2018097577 A1 WO 2018097577A1 KR 2017013284 W KR2017013284 W KR 2017013284W WO 2018097577 A1 WO2018097577 A1 WO 2018097577A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- perspective
- image
- decoding
- encoding
- images
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Definitions
- the present disclosure relates to a method and apparatus for encoding / decoding an image.
- the present disclosure relates to a method and apparatus for encoding / decoding a virtual reality image, and more particularly, to a method and apparatus for parallel processing of encoding / decoding of a virtual reality image.
- HD high definition
- UHD ultra high definition
- the Moving Picture Experts Group (MPEG) and the Video Coding Experts Group (VCEG) have jointly completed the standardization of High Efficiency Video Coding (HEVC), the next generation video codec.
- HEVC High Efficiency Video Coding
- the compression efficiency for the image including the UHD video shows twice the compression efficiency compared to H.264 / AVC.
- interest in realistic images such as stereoscopic images and omnidirectional (360 degree) video as well as 2D images is increasing.
- many companies are launching devices capable of playing head-mounted displays or realistic images.
- An object of the present disclosure is to provide a method and apparatus for improving the encoding / decoding efficiency of an image.
- Another technical problem of the present disclosure is to provide a method and apparatus for improving the encoding / decoding efficiency of a virtual reality image.
- Another technical problem of the present disclosure is to provide a method and apparatus for parallel processing of encoding / decoding of a virtual reality image.
- Another technical problem of the present disclosure is to provide a method and apparatus for improving the encoding / decoding speed of an image having a plurality of perspectives, such as a polyhedral 360 degree VR image.
- a method of encoding an image including a plurality of perspective images may include selecting one or more perspective images, starting encoding of the selected perspective image, and encoding the selected perspective image. Starting encoding for one or more neighboring perspectives whose dependencies have been resolved according to a degree.
- the plurality of perspective images may be N images obtained by projecting a 360-degree omnidirectional image onto an N-sided surface.
- the N-side may be a cube.
- the selected one or more perspective images may be two or more perspective images that do not neighbor each other.
- the selected one or more perspective images may be two perspective images facing each other on a cube.
- the selected one or more perspective images may be encoded without referring to another perspective.
- each of the plurality of perspective images may be encoded using wavefront parallel processing (WPP).
- WPP wavefront parallel processing
- the order of progression of the WPP for each of the plurality of perspective images may be adaptively determined according to the corresponding perspective.
- the WPP for the selected one or more perspective images may be performed in the order from the upper left to the lower right of the corresponding perspective image.
- the WPP for the neighboring perspective image may be started from a block in which dependency is resolved among blocks included in the perspective image.
- a method of decoding an image including a plurality of perspective images includes selecting at least one perspective image, starting decoding of the selected perspective image, and a degree of decoding of the selected perspective image.
- the method may include starting decoding of one or more neighbor perspectives in which the dependency is resolved.
- the plurality of perspective images may be N images obtained by projecting a 360 degree omnidirectional image onto an N-sided body.
- the N-side may be a cube.
- the selected one or more perspective images may be two or more perspective images not neighboring each other.
- the selected one or more perspective images may be two perspective images facing each other on a cube.
- the selected one or more perspective images may be decoded without referring to another perspective.
- each of the plurality of perspective images may be decoded using WPP (Wavefront Parallel Processing).
- the order of progression of the WPP for each of the plurality of perspective images may be adaptively determined according to the corresponding perspective.
- the WPP for the selected one or more perspective images may be performed in the order from the upper left to the lower right of the corresponding perspective image.
- the WPP for the neighboring perspective image may be started from a block in which dependency is resolved among blocks included in the perspective image.
- an apparatus for encoding an image including a plurality of perspective images selects one or more perspective images, starts encoding for the selected perspective images, and according to a degree of encoding of the selected perspective images. It may be configured to start encoding for one or more neighbor perspectives whose dependencies have been resolved.
- an apparatus for decoding an image including a plurality of perspective images may select one or more perspective images, start decoding the selected perspective image, and according to a decoding progress of the selected perspective image. It may be configured to start decoding for one or more neighbor perspectives for which the dependency has been resolved.
- a method of encoding an image including a plurality of perspective images may include selecting a first perspective image and a second perspective image that are not adjacent to each other, and encoding the first and second perspective images. And starting encoding for the third perspective adjacent to both the first and second perspective images.
- encoding of the third perspective may be started from two blocks whose dependencies are resolved according to encoding of the first and second perspective images.
- each position of two blocks at which encoding of the third perspective is started may be determined based on respective positions at which encoding of the first and second perspective images is started. have.
- each of the two blocks at which the encoding of the third perspective is started may be a block adjacent to each position at which the encoding of the first and second perspective images is started.
- each of the encoding progress directions of the third perspective starting with two blocks of the third perspective is defined in each of the encoding progress directions of the first and second perspective images. Can be determined based on this.
- each of the encoding progress directions of the third perspective starting with two blocks of the third perspective may include a respective encoding progress direction of the first and second perspective images. It may be in a vertical direction.
- each of the encoding progress directions of the first and second perspective images may be opposite to each other in one of vertical and horizontal directions.
- each of the encoding progress directions of the first and second perspective images may be opposite to each other in the vertical direction and the left and right directions.
- a method of decoding an image including a plurality of perspective images may include selecting a first perspective image and a second perspective image that are not adjacent to each other, and decoding the first and second perspective images. And starting decoding of a third perspective adjacent to both the first and second perspective images.
- decoding of the third perspective may be started from two blocks whose dependencies are resolved according to decoding of the first and second perspective images.
- each position of two blocks at which decoding of the third perspective is started may be determined based on respective positions at which decoding of the first and second perspective images is started. have.
- each of the two blocks at which the decoding of the third perspective is started may be a block adjacent to each position at which the decoding of the first and second perspective images is started.
- each of the decoding progress directions of the third perspective starting with two blocks of the third perspective is determined by each of the decoding progress directions of the first and second perspective images. Can be determined based on this.
- each of the decoding progress directions of the third perspective starting with two blocks of the third perspective is a direction of the decoding progress direction of the first and second perspective images. It may be in a vertical direction.
- each of the decoding progress directions of the first and second perspective images may be opposite to each other in one of vertical and horizontal directions.
- each of the decoding progress directions of the first and second perspective images may be opposite to each other in all directions of up and down directions and left and right directions.
- an apparatus for encoding an image including a plurality of perspective images selects a first perspective image and a second perspective image that are not adjacent to each other, and encodes the first and second perspective images. And start encoding for a third perspective adjacent to both the first and second perspective pictures.
- an apparatus for decoding an image including a plurality of perspective images selects a first perspective image and a second perspective image that are not adjacent to each other, and decodes the first and second perspective images. And start decoding the third perspective adjacent to both the first and second perspective images.
- a method of encoding an image including a plurality of perspective images includes: dividing a third perspective image adjacent to both a first perspective image and a second perspective image into a first region and a second region; And independently encoding the first region and the second region of the third perspective image, wherein the first perspective image and the second perspective image may not be adjacent to each other.
- the first region is adjacent to the first perspective image
- the second region is adjacent to the second perspective image
- the encoding of the second region may be started from a block in which the dependency is resolved according to the encoding of the second perspective image.
- a position of a block at which encoding of the first region is started is determined based on a position at which encoding of the first perspective image is started, and encoding of the second region is started.
- the position of a block to be determined may be determined based on a position at which encoding of the second perspective image starts.
- a block at which encoding of the first region is started is a block adjacent to a position at which encoding of the first perspective image is started, and a block at which encoding of the second region is started. And a block adjacent to a position where encoding of the second perspective image starts.
- the encoding progress direction of the first region is determined based on an encoding progress direction of the first perspective image
- the encoding progress direction of the second region is determined by the second perspective image. It may be determined based on the encoding progress direction.
- the first region and the second region may have the same size.
- the first region and the second region may have different sizes.
- encoding of the fourth perspective image starts from a block in which dependency is resolved according to encoding of the first perspective image, and encoding of the first region is performed by the fourth perspective image.
- the fourth perspective image may be adjacent to all of the first perspective image, the second perspective image, and the third perspective image.
- encoding of the fifth perspective image starts from a block in which dependence is solved according to encoding of the second perspective image, and encoding of the first region is performed by the fifth perspective image.
- the fifth perspective image may be adjacent to all of the first perspective image, the second perspective image, and the third perspective image.
- a method of decoding an image including a plurality of perspective images comprises: dividing a third perspective image adjacent to both a first perspective image and a second perspective image into a first region and a second region; And independently decoding the first region and the second region of the third perspective image, wherein the first perspective image and the second perspective image may not be adjacent to each other.
- the first region is adjacent to the first perspective image
- the second region is adjacent to the second perspective image
- decoding of the first region is performed by the first region.
- the decoding may be started from a block in which the dependency is resolved according to the decoding of one perspective image
- the decoding of the second region may start from a block in which the dependency is resolved according to the decoding of the second perspective image.
- a position of a block at which decoding of the first region is started is determined based on a position at which decoding of the first perspective image is started, and decoding of the second region is started.
- the position of a block to be determined may be determined based on a position at which decoding of the second perspective image starts.
- a block at which decoding of the first region is started is a block adjacent to a position at which decoding of the first perspective image is started, and a block at which decoding of the second region is started. And a block adjacent to a position where the decoding of the second perspective image starts.
- a decoding progress direction of the first region is determined based on a decoding progress direction of the first perspective image
- a decoding progress direction of the second region is determined by the direction of the second perspective image. It may be determined based on the decoding progress direction.
- the first area and the second area may have the same size.
- the first area and the second area may have different sizes.
- decoding of the fourth perspective image starts from a block whose dependency is resolved according to decoding of the first perspective image, and decoding of the first region is performed by the fourth perspective image.
- the fourth perspective image may be adjacent to all of the first perspective image, the second perspective image, and the third perspective image.
- decoding of the fifth perspective image starts from a block whose dependency is resolved according to decoding of the second perspective image, and decoding of the first region is performed by the fifth perspective image.
- the fifth perspective image may be adjacent to all of the first perspective image, the second perspective image, and the third perspective image.
- an apparatus for encoding an image including a plurality of perspective images divides a third perspective image adjacent to both a first perspective image and a second perspective image into a first region and a second region, and
- the first and second regions of the third perspective image may be independently encoded, and the first and second perspective images may not be adjacent to each other.
- an apparatus for decoding an image including a plurality of perspective images divides a third perspective image adjacent to both a first perspective image and a second perspective image into a first region and a second region, and
- the first and second perspective images of the third perspective image may be independently decoded, and the first and second perspective images may not be adjacent to each other.
- a method of encoding an image including a plurality of perspective images includes: identifying a processing sequence of an encoding target perspective image among the plurality of perspective images, wherein the identified processing sequence corresponds to a predetermined processing sequence; And determining whether or not they are the same, and converting the encoding target perspective image when the identified processing sequence is not the same as the predetermined processing sequence.
- the processing sequence is identified by a processing starting position and a processing progress direction, and the processing starting position of the predetermined processing sequence is the upper left position of the perspective image, and the processing progress of the predetermined processing sequence is performed.
- the direction may be clockwise.
- the transform may include at least one of a symmetric transform and a motion transform on the encoding target perspective image.
- the symmetric transformation may be performed when the processing progress direction of the identified processing sequence is different from the processing progress direction of the predetermined processing sequence.
- the symmetric transformation may be one of left and right symmetry transformation, vertical symmetry transformation, and diagonal symmetry transformation.
- the rotation transformation may be performed when the processing start position of the identified processing sequence is different from the processing start position of the predetermined processing sequence.
- the rotation transformation may be a transformation for rotating the encoding target perspective image such that the processing start position of the encoding target perspective image is the same as the processing start position of the predetermined processing sequence.
- the transforming of the target image to be encoded may be performed. First converting the encoding target perspective image, determining whether a processing order of the first transformed encoding target perspective image is the same as the predetermined processing sequence, and processing the first transformed encoding target perspective image If the order is not the same as the predetermined processing sequence, the method may include converting the first transformed encoding target perspective image.
- the first transform may be one of a symmetric transform and a shift transform
- the second transform may be the other.
- an apparatus for encoding an image including a plurality of perspective images includes a transducer, wherein the transducer identifies a processing sequence of an encoding target perspective image among the plurality of perspective images and performs the identified processing. It may be configured to determine whether the order is the same as the predetermined processing order, and convert the encoding target perspective image when the identified processing order is not the same as the predetermined processing order.
- a method of decoding an image including a plurality of perspective images includes: identifying a processing sequence of a decoding target perspective image among the plurality of perspective images, wherein the identified processing sequence is determined by a predetermined processing sequence; And determining whether or not they are the same, and converting the decoding target perspective image when the identified processing order is not the same as the predetermined processing order.
- the processing sequence is identified by a processing start position and a processing progress direction, and the processing start position of the predetermined processing sequence is the upper left position of the perspective image, and the processing progress of the predetermined processing sequence is performed.
- the direction may be clockwise.
- the transform may include at least one of a symmetric transform and a shift transform on the decoding target perspective image.
- the symmetric transformation may be performed when the processing progress direction of the identified processing order is different from the processing progress direction of the predetermined processing order.
- the symmetric transformation may be one of symmetric transformation, vertical symmetry transformation, and diagonal symmetry transformation.
- the rotation conversion may be performed when the processing start position of the identified processing sequence is different from the processing start position of the predetermined processing sequence.
- the rotation transformation may be a transformation for rotating the decoding target perspective image such that the processing start position of the decoding target perspective image is the same as the processing start position of the predetermined processing sequence.
- the step of converting the decoding target perspective image First converting the decoding target perspective image, determining whether the processing order of the first transformed decoding target perspective image is the same as the predetermined processing order, and the first transformed decoding target perspective image If the processing order is not the same as the predetermined processing order, the method may include performing a second transformation on the first transformed decoding target perspective image.
- the first transform may be one of a symmetric transform and a shift transform
- the second transform may be the other.
- an apparatus for decoding an image including a plurality of perspective images includes a transducer, wherein the transducer identifies a processing sequence of a decoding target perspective image among the plurality of perspective images, and the identified processing. It may be configured to determine whether the order is the same as a predetermined processing order, and convert the decoding target perspective image when the identified processing order is not the same as the predetermined processing order.
- a reference block referred to by a current block included in a first perspective image, which is an encoding target is included in a second perspective image adjacent to the first perspective image.
- the method may include converting image information of the reference block, and encoding the current block based on the converted image information.
- the image information may be information about prediction.
- converting the image information of the reference block may include a position difference between the first perspective image and the second perspective image and an encoding sequence. May be performed based on at least one of the transformations for matching the to a predetermined order.
- converting the image information of the reference block may include whether an intra prediction mode of the reference block is available for the current block. And determining an availability mode, and analyzing the intra prediction mode of the reference block based on the availability determination.
- the availability determination step may be performed based on whether the intra prediction mode of the reference block is included among the intra prediction modes available for the current block.
- the intra prediction mode of the reference block when the intra prediction mode of the reference block is included among the intra prediction modes available for the current block, the intra prediction mode of the reference block is available.
- the intra prediction mode of the reference block may be interpreted as an intra prediction mode of the current block having the same direction.
- the intra prediction mode of the reference block when the intra prediction mode of the reference block is not included among the intra prediction modes available for the current block, the intra prediction mode of the reference block is available. If not, the intra prediction mode of the reference block may be interpreted as an intra prediction mode of the current block having the same directionality as a mode 180 degrees symmetric to the intra prediction mode of the reference block.
- the availability determination step and the interpretation step may be repeated until all the intra prediction modes of the reference block are interpreted.
- the step of transforming the image information of the reference block is performed by referring to a lookup table, wherein the lookup table is an intra prediction mode available to the first perspective image and the second view. It may be a table representing a relationship between intra prediction modes available for a perspective image.
- a reference block referred to by a current block included in a first perspective image to be encoded is included in a second perspective image adjacent to the first perspective image.
- the image information may be configured to convert image information of the reference block and to encode the current block based on the converted image information.
- a method of decoding an image including a plurality of perspective images includes: a reference block referenced by a current block included in a first perspective image to be decoded in a second perspective image adjacent to the first perspective image; When included, converting the image information of the reference block, and decoding the current block based on the converted image information.
- the image information may be information about prediction.
- converting the image information of the reference block may include a position difference and a decoding order of the first and second perspective images. May be performed based on at least one of the transformations for matching the to a predetermined order.
- converting the image information of the reference block may include whether an intra prediction mode of the reference block is available for the current block. And determining an availability mode, and analyzing the intra prediction mode of the reference block based on the availability determination.
- the availability determination step may be performed based on whether the intra prediction mode of the reference block is included among the intra prediction modes available for the current block.
- the intra prediction mode of the reference block when the intra prediction mode of the reference block is included among the intra prediction modes available for the current block, the intra prediction mode of the reference block is available.
- the intra prediction mode of the reference block may be interpreted as an intra prediction mode of the current block having the same direction.
- the intra prediction mode of the reference block in the analyzing step, when the intra prediction mode of the reference block is not included among the intra prediction modes available for the current block, the intra prediction mode of the reference block is available. If not, the intra prediction mode of the reference block may be interpreted as an intra prediction mode of the current block having the same directionality as a mode 180 degrees symmetric to the intra prediction mode of the reference block.
- the availability determination step and the interpretation step may be repeated until all intra prediction modes of the reference block are interpreted.
- the step of converting the image information of the reference block is performed with reference to a lookup table, wherein the lookup table is available in the prediction mode and the second prediction mode for the first perspective image. It may be a table representing a relationship between intra prediction modes available for a perspective image.
- an apparatus for decoding an image including a plurality of perspective images includes a reference block referenced by a current block included in a first perspective image to be decoded in a second perspective image adjacent to the first perspective image.
- the image information may be configured to convert image information of the reference block and to decode the current block based on the converted image information.
- the computer-readable recording medium may store a bitstream generated by the method and / or apparatus for encoding an image according to the present disclosure.
- a method and apparatus for improving encoding / decoding efficiency of an image may be provided.
- a method and apparatus for improving encoding / decoding efficiency of a virtual reality image may be provided.
- a method and apparatus for parallel processing of encoding / decoding of a virtual reality image may be provided.
- a method and apparatus for improving the encoding / decoding speed of an image having a plurality of perspectives, such as a polyhedral 360 degree VR image can be provided.
- 1 illustrates various types of cameras for capturing 360 degree video.
- FIG. 2 is a diagram exemplarily illustrating an image in which a 360 degree video is projected on a 3D space.
- FIG. 3 is a diagram illustrating a structure of a video encoding apparatus according to the present disclosure.
- FIG. 4 is a diagram illustrating a structure of an image decoding apparatus according to the present disclosure.
- FIG. 5 is a diagram for exemplarily describing a divergent camera image and a converged camera image.
- 6 is an exemplary diagram for describing segmentation of an image.
- FIG. 7 is a diagram for explaining a WPP processing procedure in an image.
- FIG. 8 is a diagram for explaining tile-based parallel processing.
- FIG. 9 is a diagram illustrating a development view for encoding / decoding a 360 degree omnidirectional video.
- FIG. 10 is a diagram for explaining a developed view when a 360 degree omnidirectional image is projected onto a cube.
- FIG. 11 is a diagram for describing various methods for developing an omnidirectional image projected on a cube in two dimensions.
- FIG. 13 is a diagram for describing an end point of decoding / decoding according to a deployment method.
- FIG. 14 is a diagram for explaining a difference in image processing time according to a developed view.
- 15 is a conceptual diagram for describing image parallel processing according to the present disclosure.
- 16 is a flowchart for explaining image parallel processing according to the present disclosure.
- 17 is a diagram illustrating a processing sequence of an omnidirectional image on a cube.
- FIG. 18 is a diagram illustrating an expanded view of the omnidirectional image of FIG. 17.
- FIG. 18 is a diagram illustrating an expanded view of the omnidirectional image of FIG. 17.
- 19 is an example of a 360-degree VR image in the form of a cube exploded view.
- step 1 is a diagram for explaining a step (step 1) of encoding / decoding the video of FIG. 19 in parallel.
- step 21 is a diagram for explaining a step (step 2) of encoding / decoding the video of FIG. 19 in parallel.
- step 22 is a diagram for explaining a step (step 3) of encoding / decoding the video of FIG. 19 in parallel.
- FIG. 23 is an exemplary diagram for explaining a negative / decoding direction of a perspective.
- FIG. 24 is a diagram for describing an encoding / decoding procedure for two non-neighboring perspectives in a cube omnidirectional image.
- FIG. 25 is a diagram for describing a decoding / decoding procedure of two perspectives facing each other in a cube omnidirectional image.
- FIG. 26 is a diagram for explaining a difference according to FIGS. 25A and 25B.
- FIG. 27 is a diagram for describing encoding / decoding according to FIG. 25B.
- FIG. 28 is a diagram for describing encoding / decoding of perspectives that may refer to two or more perspectives.
- FIG. 29 is a diagram for describing a method of dividing one perspective into two regions and encoding / decoding each region.
- FIG. 30 is a diagram for explaining a coding / decoding process procedure when referring to two or more perspectives.
- FIG. 31 is an exemplary diagram for describing an encoding / decoding procedure of a cube omnidirectional image.
- FIG. 32 is a diagram illustrating a configuration of an encoding device according to the present disclosure.
- FIG 33 is a diagram illustrating a configuration of a decoding apparatus according to the present disclosure.
- 34 is an exemplary diagram for explaining a method of converting a processing order of a perspective.
- 35 is a diagram illustrating 33 spatial prediction modes.
- 36 is an exemplary diagram for describing spatial prediction of a current perspective with reference to a prediction mode of a neighbor perspective.
- 37 is a diagram for explaining a difference between prediction modes of a current block and a reference block.
- 38 is a diagram for explaining a method of analyzing a directional prediction mode of a reference block.
- FIG. 39 is a diagram illustrating eight cases of directional prediction modes according to a method of developing a perspective.
- 40 is a diagram for explaining a position of a reference sample used for spatial prediction of a cube omnidirectional image.
- FIG. 41 is a view for explaining a method of parallel processing a cube omnidirectional image utilizing continuity on a developed view.
- a component when a component is “connected”, “coupled” or “connected” with another component, it is not only a direct connection, but also an indirect connection in which another component exists in the middle. It may also include.
- a component when a component “includes” or “having” another component, it means that it may further include another component, without excluding the other component unless otherwise stated. .
- first and second are used only for the purpose of distinguishing one component from other components, and do not limit the order or importance between the components unless specifically mentioned. Accordingly, within the scope of the present disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and likewise, a second component in one embodiment may be referred to as a first component in another embodiment. It may also be called.
- components that are distinguished from each other are for clearly describing each feature, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated into one hardware or software unit, or one component may be distributed and formed into a plurality of hardware or software units. Therefore, even if not mentioned otherwise, such integrated or distributed embodiments are included in the scope of the present disclosure.
- components described in various embodiments are not necessarily required components, and some may be optional components. Therefore, an embodiment composed of a subset of components described in an embodiment is also included in the scope of the present disclosure. In addition, embodiments including other components in addition to the components described in the various embodiments are included in the scope of the present disclosure.
- the present disclosure relates to parallel processing of images. Specifically, the present disclosure relates to an apparatus for increasing processing speed by encoding / decoding an image having various viewpoints in parallel.
- the image having various viewpoints may be, for example, a 360 degree video, an omnidirectional video, a polyhedral 360 degree VR image, or the like.
- encoding / decoding of an image according to the present disclosure it may be used that reference can be made in various directions within or between images.
- a perspective may refer to a position of a camera or a direction of a camera that captures video.
- Omni-directional video or 360-degree video refers to video that the user can see at a desired point in time.
- Omni-directional video or 360-degree video can be obtained by photographing all directions of 360 degrees from a point using multiple cameras, fisheye lenses or reflectors and then projecting onto polyhedrons or spheres in three-dimensional space. In the omnidirectional video or 360 degree video, only an area corresponding to the viewpoint viewed by the user may be played.
- 1 illustrates various types of cameras for capturing 360 degree video.
- FIG. 1A illustrates a plurality of cameras
- FIG. 1B illustrates a fisheye lens
- (C) of FIG. 1 illustrates a reflector.
- FIG. 2 is a diagram exemplarily illustrating an image in which a 360 degree video is projected on a 3D space.
- 2A illustrates an example of projecting a 360 degree image onto a polyhedron in a three-dimensional space.
- 2B shows an example in which a 360 degree image is projected onto a sphere in a three-dimensional space.
- the shaded portion indicates the position of the 360-degree image. That is, the shaded portion of FIG. 2 may be an area corresponding to the viewpoint viewed by the user.
- a method and apparatus for compression encoding 2D video may be used.
- 3 and 4 illustrate the structures of an image encoding apparatus and a decoding apparatus according to the present disclosure.
- the image encoding apparatus of FIG. 3 may generate a bitstream by receiving and encoding an input image.
- the image encoding apparatus includes a reconstructed picture buffer 301, an inter prediction unit 302, an intra prediction unit 303, a switch 304, a subtractor 305, a transform unit 306, a quantization unit 307, and an encoding.
- the unit 308 may include an inverse quantization unit 309, an inverse transform unit 310, and / or an adder 311.
- the input image may be encoded in block units.
- the current block may be intra prediction or inter prediction based on an already decoded / decoded image.
- the switch 304 may be switched to the in-screen predictor 303.
- the intra prediction unit 303 may predict the current block by referring to an already encoded / decoded area within the current picture.
- the switch 304 may be switched to the inter screen predictor 302.
- the inter prediction unit 302 may predict the current block by referring to at least one picture that is already encoded / decoded and stored in the reconstructed picture buffer 301.
- the prediction block of the current block generated by the intra prediction or the inter prediction may be transmitted to the subtractor 305.
- the subtractor 305 may generate a difference block between the current block and the prediction block of the current block.
- the transform block 306 and / or the quantization block 307 may be performed on the generated difference block.
- the residual coefficients, which have been transformed and / or quantized, may be encoded by the encoder 308.
- the encoder 308 may perform, for example, entropy encoding based on a probability of occurrence of a symbol.
- Inverse quantization and / or inverse transform in the inverse transform unit 310 may be performed in the transform and / or quantized difference block.
- the inverse quantized and / or inversely transformed differential blocks may be sent to the adder 311.
- the adder 311 may reconstruct the current block by adding the received difference block to the prediction block of the current block.
- the reconstructed picture including the reconstructed block may be stored in the reconstructed picture buffer 301.
- the image decoding apparatus of FIG. 4 may generate a reconstructed image by receiving and decoding a bitstream.
- the video decoding apparatus includes a decoder 401, an inverse quantizer 402, an inverse transform unit 403, an adder 404, an inter prediction unit 405, an intra prediction unit 406, a switch 407, and / Alternatively, the reconstructed picture buffer 408 may be included.
- the decoder 401 may generate a difference block of the current block by decoding the bitstream.
- the decoder 401 may perform entropy decoding based on, for example, a probability of occurrence of a symbol.
- the difference block may include transformed and / or quantized difference coefficients.
- An inverse quantization in the inverse quantization unit 402 and / or an inverse transformation in the inverse transform unit 403 may be performed on the difference block including the transform and / or quantized difference coefficients.
- the inverse quantized and / or inversely transformed differential blocks may be sent to the adder 404.
- the adder 404 may reconstruct the current block by adding the received difference block to the prediction block of the current block.
- the reconstructed picture including the reconstructed block may be stored in the reconstructed picture buffer 408.
- the prediction block of the current block input to the adder 404 may be generated based on an image that is already decoded.
- the switch 407 may be switched to the in-screen predictor 406.
- the intra prediction unit 406 may predict the current block by referring to an already encoded / decoded area within the current picture.
- the switch 407 may be switched to the inter screen predictor 405.
- the inter prediction unit 405 may predict the current block by referring to at least one picture that is already encoded / decoded and stored in the reconstructed picture buffer 408.
- the encoding / decoding method according to the present disclosure may be applied to immersive media images in addition to omnidirectional (360 degree) video.
- the sensational media image may include a divergent camera image, a convergent camera image, and the like.
- FIG. 5 is a diagram for exemplarily describing a divergent camera image and a converged camera image.
- the divergent camera image may include images W1, W2, and W3 of various directions obtained by using a plurality of cameras C1, C2, and C3.
- the converged camera image may include images W, W2, W3, and W4 of a specific direction obtained by using the plurality of cameras C1 to C4.
- the video encoding apparatus may compress a still image or a video.
- the video encoding apparatus may perform frame-based compression, which compresses the entire image in one processing unit, or block-based compression, which divides and processes the image in specific block units.
- An image encoding / decoding apparatus that performs frame-based compression has difficulty in applying a prediction technique and requires a large amount of memory and computation. Therefore, most video encoding / decoding apparatuses perform block-based compression.
- block-based compression may be performed by dividing an image into coding tree units (CTUs), which are large block units.
- CTUs may be encoded / decoded in sequential scanning order.
- the sequential scan order may be a raster scan order or a Z scan order.
- the CTU may be divided into coding units (CUs) which are smaller block units and then encoded / decoded. This method is advantageous in terms of compression efficiency since the block size can be more precisely adjusted according to the characteristics of the image.
- 6 is an exemplary diagram for describing segmentation of an image.
- each CTU may be encoded / decoded in order of CTU A to CTU K according to a sequential scanning order.
- the block-based video compression apparatus may reduce the amount of information to be transmitted by using the correlation between neighboring blocks in the image, thereby increasing compression efficiency.
- the CTU may be divided into a plurality of CUs, where recursive partitioning may be applied.
- quad tree splitting can be used for recursive splitting.
- the CTU F may be divided into four CUs.
- the division flag indicating whether to divide the CTU F may be 1.
- Each partitioned CU may be encoded / decoded in a Z scan order.
- each CU may be further divided into four CUs. Or, each CU can be broken at the corresponding depth.
- the partition flag of each CU may indicate whether to partition the corresponding CU.
- the recursive segmentation may be stopped by reaching the segmentation flag value or the maximum allowable segmentation depth specified in the image.
- the CTU F may be divided into four CUs, and the first, second and third CUs may not be divided in the Z scan order.
- the fourth CU F1 may be further divided into four CUs.
- the first, second and third CUs may not be divided in the Z scan order among the four CUs generated by dividing the CU F1.
- the fourth CU F2 may be further divided into four CUs.
- Wavefront parallel processing (WPP) and / or tile based encoding / decoding may be used to improve the encoding / decoding speed of an image.
- Wavefront technology starts parallel processing when the dependence on pixel information is resolved.
- the CTU D completes the decoding / decoding of B, which is the CTU of the upper row
- the dependency on pixel information may be resolved. Therefore, the prediction algorithm using the information of the CTU B can be applied.
- CTU H can resolve the dependence on pixel information when the CTU E's encoding / decoding of the top row is completed. Therefore, the prediction algorithm using the information of the CTU E can be applied.
- WPP can additionally support parallel encoding / decoding for entropy coding. To this end, by generating a sub bitstream in the row unit of each CTU and transmitting the position of the corresponding sub bitstream to the slice header, parallel entropy coding is possible for each sub bitstream. In other words, entropy coding can be used independently for each row through WPP.
- the lower row acquires an entropy context model and starts encoding / decoding at the time when the second block of the upper row is completed.
- the current block and neighboring blocks are highly correlated. Therefore, it is more advantageous to increase the compression efficiency of the decoder / decoder by obtaining the updated context information from the neighboring block and initializing the context model of the current row than using the fully initialized context model in each row.
- FIG. 7 is a diagram for explaining a WPP processing procedure in an image.
- the intra-picture block of FIG. 7 means CTU.
- the number in the block means the processing order of each CTU.
- Arrows in FIG. 7 indicate that the context information of the top row is obtained to initialize the context model of the current row.
- the shaded CTU represents a CTU in which encoding and / or decoding is completed.
- unshaded CTUs represent CTUs that have not yet started encoding and / or decoding.
- FIG. 8 is a diagram for explaining tile-based parallel processing.
- one picture may be divided into several tiles (eg, six tiles) having a rectangular shape.
- Each tile may be encoded / decoded into areas independent of each other.
- CTUs included in each tile may be encoded / decoded in sequential scanning order. That is, in tile-based parallel processing, blocks located at a boundary of a tile may be encoded or decoded without using information such as pixel values or motion vectors of blocks belonging to neighboring tiles. Thus, when using tiles, similarly to slices, each tile area can be simultaneously encoded or decoded.
- the tile division information may be signaled through, for example, a picture parameter set (PPS).
- PPS picture parameter set
- the tile splitting information may include information about a starting point of each tile.
- the tile division information may include information regarding one or more vertical borders and / or one or more horizontal borders that divide the picture.
- the tile splitting information may include information about splitting the picture into tiles of equal size.
- FIG. 9 is a diagram illustrating a development view for encoding / decoding a 360 degree omnidirectional video.
- an image of a 360-degree omnidirectional video may be processed by being projected in an unfolded view of a polyhedron or in an elongated isometric form.
- the image When the image is played back, the image may be projected onto a polyhedron or sphere, and the user may play the image in the form of viewing the image from the center of the polyhedron or sphere.
- the user's viewpoint may be assumed to be in the center of a polyhedron or sphere.
- FIG. 10 is a diagram for explaining a developed view when a 360 degree omnidirectional image is projected onto a cube.
- each image of six surfaces may be reproduced by projecting onto a cube in a three-dimensional space.
- the viewer's position is at the center of the cube, and each side may be a position and / or a direction (perspective) of the eye view.
- perspective P4 is the front of the cube
- perspective P1 is the top of the cube
- perspective P2 is the back of the cube
- perspective P3 is the cube's left
- perspective P5 is the cube's right
- perspective P6 May correspond to the bottom of the cube.
- the omnidirectional image projected on the polyhedron can be expressed in various developments depending on how the polyhedron is developed.
- FIG. 11 is a diagram for describing various methods for developing an omnidirectional image projected on a cube in two dimensions.
- the developed view obtained by symmetry of the developed view shown in FIG. 11 up / down / left / right may be treated as another form of developed view.
- the developed view illustrated in FIG. 11 may have little meaning other than information about where the image is located.
- the encoding / decoding process is performed in the sequential scanning order using the continuity of the image information between perspectives, the encoding / decoding rate may be different depending on the form of the developed view.
- FIG. 12 is an exemplary diagram for explaining dependencies between CTUs belonging to adjacent perspectives.
- each of A, B, C, D, E, and F represents the positions of the perspectives that are developed on the developed view, and the thick lines represent the boundaries between the perspectives.
- Small squares inside each perspective represent blocks (eg, CTUs) that are units of image processing.
- CTU e1 of Perspective E has a dependency on CTU b1 of Perspective B and CTU d2 of Perspective D. Therefore, the CTU b1 of the Perspective B and the CTU d2 of the Perspective D must be completed to decode / decode the CTU e1 of the Perspective E. For the same reason, the CTU c1 of the Perspective C and the CTU e2 of the Perspective E must be completed to decode / decode the CTU f1 of the Perspective F.
- the omnidirectional image information may not exist at a specific position of the image according to the development view.
- the image of the perspective D shown in FIG. 12 may not exist according to the developed view.
- the encoding / decoding of the perspective E may be started after the encoding / decoding of the CTU b1 of the perspective B is completed. Therefore, the time of sub / decoding processing of the entire image is not different from that of the perspective D image.
- the encoding / decoding of the entire image may be completed.
- FIG. 13 is a diagram for describing an end point of decoding / decoding according to a deployment method.
- FIG. 13A illustrates a case where the last perspective in the sub / decoding sequence is at the D position of FIG. 12.
- FIG. 13B is a diagram illustrating a case in which the last perspective is at position E of FIG. 12.
- thick lines indicate boundaries between perspectives.
- the small squares in each perspective represent CTUs.
- the number inside each CTU indicates the encoding / decoding order of the corresponding CTU.
- the encoding / decoding process order using WPP may be determined by image information dependency. That is, the processing of the CTU can be started when two CTUs in the upper row are processed. Assuming that each CTU's encoding / decoding processing time is the same, the delay per row becomes the time to process two CTUs due to the above dependency. In addition, since the processing of the CTU can be started only when one CTU adjacent to the left is processed, the delay per column becomes the time to process one CTU.
- FIG. 14 is a diagram for explaining a difference in image processing time according to a developed view.
- each viewpoint has 5 ⁇ 5 CTUs.
- the last time point is located in the third row of the fourth row, and the last CTU is located in the 20th row and the 15th column.
- the last CTU is completed at the 53rd time. Therefore, when the processing time of one CTU is t (CTU), the time required for processing the entire image according to the development of FIG. 14A becomes 53 * t (CTU).
- FIG. 14B is a diagram illustrating another developed view of an omnidirectional image having 5 ⁇ 5 CTUs per view.
- the CTU located at the lower right of the developed view exists in two places of the 15th row, the 5th column, the 10th row, and the 20th column.
- t CTU
- each face that is, an area having different perspectives
- the processing time of the entire image may be shortened to the processing time of one perspective (eg, 25 * t (CTU) in the example of FIG. 14).
- Tile-based parallel encoding / decoding can be usefully applied to an image that a user watches at a certain distance.
- a realistic image such as a 360-degree VR image
- the user can watch a part of the image at a very close position, and thus, the user must have a much larger resolution than the existing images.
- immersion is very important, and thus high image quality is required such that pixels are not visible during image reproduction.
- each tile is processed independently, reducing the reference area available for prediction and lowering compression efficiency. Therefore, it may not be suitable to apply the tile-based technology to the 360 degree omnidirectional image which requires a great compression efficiency.
- encoding / decoding using the dependencies between perspectives is important for parallel processing of a 360 degree VR image.
- various development methods may be applied to process 360-degree VR images, and parallel processing may be performed using dependencies between adjacent perspectives on each development view.
- a developed view of a 360-degree VR image is made by unfolding three-dimensionally connected perspectives as shown in FIG. 10. Therefore, on the polyhedron, there are adjacent perspectives as many as the number of sides of the perspective. That is, the number of adjacent perspectives available on a polyhedron is greater than the number of adjacent perspectives available on a development view.
- the parallel processing of encoding / decoding may be more efficiently processed by using one or more continuities between each perspective. Can be.
- the 360 degree omnidirectional image is stored in a developed view of a polyhedron with several perspectives, such as a cube.
- the perspective P1 is adjacent to one perspective.
- each perspective is adjacent to four perspectives in the horizontal direction. This means that the encoding / decoding of the image information may be performed in a direction different from the sequential scanning direction of the existing upper left to lower right.
- there is no continuity between images between perspectives that do not neighbor in three-dimensional space there is no dependency.
- Compression / decoding parallel processing is performed by taking advantage of the fact that successive perspectives exist in multiple directions and that the decoding and decoding directions can be performed in multiple directions, and that there is one or more perspectives with no correlation between images. Speed up processing while minimizing losses.
- 15 is a conceptual diagram for describing image parallel processing according to the present disclosure.
- 16 is a flowchart for explaining image parallel processing according to the present disclosure.
- 17 is a diagram illustrating a processing sequence of an omnidirectional image on a cube.
- FIG. 18 is a diagram illustrating an expanded view of the omnidirectional image of FIG. 17.
- FIG. 18 is a diagram illustrating an expanded view of the omnidirectional image of FIG. 17.
- FIGS. 15, 17, and 18 Surfaces in which the same alphabet is written in FIGS. 15, 17, and 18 refer to points of time that do not refer to each other.
- Time points that do not refer to each other may be encoded / decoded in parallel.
- an arrow connecting a viewpoint and a viewpoint represents a reference relationship between viewpoints.
- an arrow connecting the view point A and the view point B means that the view point A refers to a time point B during decoding / decoding.
- the number of threads may be determined by the number of time points that can be encoded / decoded in parallel. For example, if the number of time points that can be encoded / decoded in parallel is N, N or more threads may be used.
- FIG. 15A first, one or more viewpoints that may be encoded / decoded simultaneously with the viewpoint A and the viewpoint A may be encoded / decoded in parallel. For example, since the viewpoint A and the viewpoint A 'are not continuous, they can be processed in parallel.
- FIG. 15B after some or all of the time points A and A ′ processed in FIG. 15A are encoded / decoded, the time points A. A ′ are referred to.
- One or more viewpoints that can be encoded / decoded simultaneously with the viewpoint B and the viewpoint B may be encoded / decoded in parallel.
- the viewpoint B and the viewpoint B ' are not continuous, and thus may be processed in parallel.
- one or more viewpoints that can be encoded / decoded simultaneously with the viewpoint C and the viewpoint C may be encoded / decoded in parallel.
- the remaining views can also be encoded / decoded by combining the points that can be encoded / decoded in parallel.
- step S1610 of FIG. 16 it is possible to start encoding / decoding of one perspective or two or more perspectives that are not neighboring.
- step S1620 encoding / decoding of the perspective in which encoding / decoding has started may proceed.
- Encoding / decoding may be performed in coding units (eg, CTU units) included in each perspective.
- step S1630 it may be determined whether encoding / decoding for all perspectives is completed. If encoding / decoding for all perspectives has been completed (Yes in step S1630), video encoding / decoding can be ended.
- step S1640 it may be determined whether there is a neighbor perspective in which the encoding / decoding is in progress or whose dependencies are resolved by the completed perspective. If there is no neighbor perspective in which the dependency is resolved (No in step S1640), in step S1620, the encoding / decoding for the perspective in which the decoding / decoding is in progress may continue.
- step S1650 encoding / decoding of the neighbor perspective can be started.
- step S1620 encoding / decoding for a plurality of perspectives in which encoding / decoding is started may proceed. Steps S1620 to S1650 may be repeated until the encoding / decoding of all the perspectives is completed.
- 19 is an example of a 360-degree VR image in the form of a cube exploded view.
- FIGS. 20 to 22 are diagrams for describing an operation of encoding / decoding a video of FIG. 19 in parallel.
- symbols representing each perspective are the same as symbols of the corresponding perspective shown in FIG. 18.
- Arrows shown in FIGS. 21 and 22 indicate reference relationships between perspectives.
- perspectives A and / or A ' which are not adjacent to each other may be negative / decoded in parallel.
- perspective B and / or B ' may be encoded / decoded in parallel with reference to perspective A and / or A'.
- Encoding / decoding of perspective B and / or B ' can be initiated once the dependencies with perspective A and / or A' are resolved. That is, the encoding / decoding of the perspectives B and / or B 'may be started when the encoding / decoding of the perspectives A and / or A' is performed in part or in whole.
- perspective B and / or B ' may be encoded / decoded with reference to perspective A and / or A'.
- Perspectives B and / or B ' may be decoded / decoded from the portion where the dependency is resolved according to the encoding / decoding of the perspectives A and / or A' at the boundary portion adjacent to the perspectives A and / or A ', respectively.
- the top boundary of Perspective B is adjacent to the left boundary of Perspective A.
- the block / decoding of the block of the first row, first column of perspective B can be started.
- the encoding / decoding of the perspective B referring to the perspective A may be performed according to the raster scan order.
- the bottom border of perspective B is adjacent to the left border of perspective A '.
- the block / decoding of the block of the last row, last column of perspective B can be started.
- the encoding / decoding of perspective B referring to perspective A ' may be performed according to an inverse raster scan order (eg, order from bottom right to top left).
- the information of the referenced block may be used as is, or after appropriate modification depending on the time point at which the current decoding / decoding is in progress. May be used.
- perspective C and / or C ' may be encoded / decoded with reference to perspectives A, A', B and / or B 'that have been partially / decoded for some or all.
- FIG. 22 a case of encoding / decoding perspective C and / or C 'with reference to perspective A and / or A' is illustrated.
- the present invention is not limited thereto, and for example, perspective C and / or C 'may be encoded / decoded with reference to perspective B and / or B'.
- perspective C and / or C ' may be encoded / decoded with reference to one or more perspectives of perspectives A, A', B and B '.
- the referenced block may be referenced after being appropriately modified according to the point in time at which encoding / decoding is currently in progress.
- encoding / decoding of a 360 degree VR image may be terminated in three steps shown in FIGS. 20 to 22.
- octahedrons or icosahedrons there may be perspectives that have not yet been decoded or decoded. Therefore, the above process can be repeated until the encoding / decoding of all perspectives is completed.
- each perspective of the omnidirectional image has a plurality of perspectives and continuity. Also, each perspective may not have continuity with at least one perspective.
- the present disclosure may use the same to encode / decode perspectives of an omnidirectional image in parallel.
- FIG. 23 is an exemplary diagram for explaining a negative / decoding direction of a perspective.
- the negative / decoding of the perspective P6 can be started more quickly.
- the dependency of the lower left CTU of the perspective P6 may be solved when only two CTUs of the perspective P2 are encoded / decoded. have.
- the WPP for the perspective P6 may be progressed from the lower left block to the upper right block.
- encoding / decoding may be performed in the order described with reference to FIG. 7.
- perspectives P2 and P4 are not adjacent to each other, so that the encoding / decoding can be started in parallel.
- the perspectives P2 and P4 may be encoded / decoded in different orders.
- FIG. 24 is a diagram for describing an encoding / decoding procedure for two non-neighboring perspectives in a cube omnidirectional image.
- Small blocks in FIGS. 24 (b) and 24 (c) refer to image blocks (eg, CTUs) constituting the perspectives P4 and P2, and the numbers in the blocks indicate the processing order of the blocks.
- the dotted arrow shows the processing direction of one row in each perspective, and each block (CTU) can update and use the entropy context of the previous column of the same row.
- perspectives P2 and P4 are not adjacent to each other and thus are not referenced to each other. Therefore, perspectives P2 and P4 can be independently encoded / decoded.
- the perspective P4 may be encoded / decoded in the order from the upper left to the lower right according to a normal raster scan order.
- the normal raster scan order can also be applied to the perspective P2.
- the encoding / decoding may be performed in the order of the upper left to the upper left for the perspective P2.
- the part / decoding of the perspectives P2 and / or P4 is performed in part or in whole, the part / decoding of neighboring perspectives in which the dependency is resolved can be started.
- the WPP processing direction of the neighbor perspective may be determined based on the WPP processing direction applied to the reference perspective. For example, in FIG. 23, when the encoding / decoding of the blocks of the first row and the second column of the perspective P4 is completed, the encoding / decoding of the blocks of the first row and the first column of the perspective P1 may be started. At this time, the negative / decoding of the perspective P1 may be performed in the order of the lower left to the upper right.
- the encoding / decoding of the blocks of the last row and the last second column of the perspective P2 when the encoding / decoding of the blocks of the last row and the last second column of the perspective P2 is completed, the encoding / decoding of the blocks of the last row and the first column of the perspective P6 may be started. At this time, the negative / decoding of the perspective P6 may proceed in the order of the lower left to the upper right.
- encoding / decoding may be started for neighboring perspectives in which the dependency on the perspective (s) in which encoding / decoding has been advanced so far has been resolved.
- the progress direction of the WPP may be determined according to a perspective in which dependency among the one or more reference perspectives is resolved more quickly. If the dependencies of two or more reference perspectives are resolved at the same time, the encoding / decoding of the current perspective can proceed simultaneously on several sides. In this case, the current perspective can be divided and processed.
- the encoding / decoding of the blocks of the last second column and the last row of the perspective P2 when the encoding / decoding of the blocks of the last second column and the last row of the perspective P2 is completed, the encoding / decoding of the blocks of the last row and the first column of the perspective P3 may be started.
- the encoding / decoding of the blocks of the first row and the first column of the perspective P4 when the encoding / decoding of the blocks of the first row and the last column of the perspective P3 is completed. That is, the encoding / decoding of the perspective P3 may proceed simultaneously on several sides with reference to the plurality of perspectives.
- the encoding / decoding order of the perspective P3 may be determined in consideration of at least one of the neighboring perspectives P1, P2, P4, and P6. At this time, the order of decoding / decoding of the perspective P3 may be determined in the direction in which the decoding / decoding can be completed as soon as possible.
- the method described with reference to FIGS. 23 and 24 may be repeated until the encoding / decoding of all time points is completed.
- the negative / decoding of the perspective P4 proceeds from the upper left to the lower right on the developed view, and the negative / decoding of the perspective P2 proceeds from the lower right to the upper left. This is to better distribute the amount of data being processed in parallel for more efficient parallelism.
- FIG. 25 is a diagram for describing a decoding / decoding procedure of two perspectives facing each other in a cube omnidirectional image.
- the order of encoding / decoding of two perspectives at positions facing each other in the three-dimensional space may be set upside down in the up, down, left, and right directions as shown in FIG. Alternatively, as shown in (b) of FIG. 25, they may be set in the same direction from side to side.
- FIG. 26 is a diagram for explaining a difference according to FIGS. 25A and 25B.
- FIG. 27 is a diagram for describing encoding / decoding according to FIG. 25B.
- the decoding / decoding may be started when the second CTU of the perspective P2 is completed / decoding.
- the WPP may proceed with respect to the perspective P6 in accordance with the direction in which the perspective P2 is processed.
- the solid arrows indicate the directions for taking and initializing the entropy context.
- the dashed arrows indicate the processing direction of the CTU in each row.
- entropy contexts can be derived from other perspectives. Reference of the entropy context may be performed via a context extractor, described below with reference to FIGS. 32 and 33.
- FIG. 28 is a diagram for describing encoding / decoding of perspectives that may refer to two or more perspectives.
- perspectives P3 and P5 may utilize information of neighboring perspectives P1, P2, P4 and / or P6.
- the solid and dashed arrows used in FIG. 28 are used in the same meaning as the solid and dashed arrows used in FIG. 27. That is, the solid arrow indicates the direction of bringing entropy information (eg, entropy context, entropy context table, etc.).
- the dotted line arrow indicates the direction of row processing through WPP in each perspective.
- the number in the CTU block in each perspective represents the encoding / decoding process order.
- the dependency may be resolved simultaneously in two or more directions according to the negative / decoding of neighboring perspectives.
- perspectives P2 and P4 begin to decode / decode before perspectives P1 and P6. Therefore, the dependencies necessary for the encoding / decoding of the perspectives P3 and P5 can first be solved by the perspectives P2 and P4.
- perspective P3 and / or P5 may select one of perspectives P2 and P4 to determine the WPP processing direction.
- perspectives P3 and / or P5 may be divided into two regions, and the WPP processing direction according to the perspectives P2 and P4 may be determined for each of the divided regions.
- the encoding / decoding of the perspective P3 may be performed after the dependency with the perspective P2 is resolved.
- the CTU 8 of the perspective P3 may be encoded / decoded based on the two CTUs 1 and 3 of the perspective P2.
- the encoding / decoding of the perspective P3 may be started in both directions.
- the encoding / decoding of two CTUs of the perspective P3 in which the dependency is resolved by the encoding / decoding of the perspectives P2 and P4 can be started in parallel.
- parallel decoding / decoding means that the perspective P3 is encoded / decoded independently of each other in both directions.
- parallel encoding / decoding may or may not be performed simultaneously.
- FIG. 29 is a diagram for describing a method of dividing one perspective into two regions and encoding / decoding each region.
- FIG. 29A shows one perspective divided into areas A and B
- FIG. 29B shows WPP processing after dividing the perspective into areas of the same size
- 29C shows that the WPP process is performed after dividing the perspective into regions having different sizes.
- the meanings of the solid and dashed arrows in FIG. 29 are the same as those described with reference to FIGS. 27 and 28.
- the region A and the region B may be represented by a first region and a second region.
- Each of the first region and the second region may be encoded / decoded based on the degree of progress of encoding / decoding of adjacent perspectives. For example, when the first region and the first perspective are adjacent to each other, the first region may be encoded / decoded from a block of the first region where the dependency is resolved by the encoding / decoding of the first perspective.
- the negative / decoding direction of the blocks included in the first region may be determined based on the negative / decoding direction with respect to the first perspective. For example, the negative / decoding directions for the first region and the first perspective may be directions perpendicular to each other.
- the method of dividing one perspective into two regions is not limited to the embodiment described with reference to FIG. 29. For example, it may be divided into shapes or sizes not shown in FIG. 29.
- a method of dividing one perspective into two regions may be signaled through a bitstream or predefined in an encoder and a decoder.
- Neighboring CTUs with continuity with perspectives P3 and / or P5 may be included in one row rather than columns in perspectives P2 and / or P6.
- a delay per row occurs by 2 * t (CTU). Since the negative / decoding delay of the reference perspective occurs by 2 * t (CTU) per row, as shown in FIG. 28 (a), even for perspective P3, 2 * t (CTU) is not 1 * t (CTU) for each column. CTU) delay.
- FIG. 30 is a diagram for explaining a coding / decoding process procedure when referring to two or more perspectives.
- encoding / decoding of the current perspective can be performed based on the degree of progression of the decoding / decoding of the two or more perspectives referenced. For example, even if the dependency is resolved by the encoding / decoding of the first perspective, after waiting until the dependency is resolved by the encoding / decoding of the second perspective, the encoding / decoding of the current perspective can be started. Compared to the case of referring to one perspective, referring to more than one perspective may cause a delay. However, since two or more blocks can be referenced, an improvement in coding efficiency can be expected.
- a delay per column occurs by 2 * t (CTU) in the encoding / decoding process of the first row of the perspective P3. Therefore, as shown in Fig. 30A, even if the decoding / decoding of the lower left CTU 4 of the perspective P3 is completed, the CTU 6 of the next row cannot be directly decoded / decoded. There is a delay of 2 * t (CTU) per column, so if you start encoding / decoding each time the dependence of each CTU in perspective P3 is resolved, the last CTU of the first row in the processing order of perspective P3 is the 11th Can be decrypted.
- the start / decoding of the first CTU of the first row of the perspective P3 is started.
- the seventh time can be determined.
- the start / decoding start time of the first CTU of the perspective P3 is delayed, the start / decoding start time of the last CTU of the first row is not changed, and thus the parallel processing time of the entire image is not affected. You may not.
- the start / decoding start time of the perspective P3 is determined based on the processing time of the right CTU (belonging to the neighbor perspective) of the last CTU of the first row. Can be.
- FIG. 30 may have a slight delay more than that of FIG. 30 (b). However, since more regions can be referred to, the encoding / decoding efficiency can be improved.
- information that can be referred to from adjacent blocks, CTUs, and / or perspectives is described as pixel information, entropy context, entropy context table, and the like.
- the present invention is not limited thereto, and reference may be made to all of the encoding / decoding information of the adjacent region.
- the information that can be referred to is not only pixel information existing in an image, but also prediction modes used for spatial prediction, motion vectors used for temporal prediction, merge index, quantization parameter information, in-loop filter information, filter coefficient information, and the like. Contains all the information generated or used in the decoding process.
- the steps described in consideration of the cube may be repeatedly performed.
- FIG. 31 is an exemplary diagram for describing an encoding / decoding procedure of a cube omnidirectional image.
- encoding / decoding may be performed in the order shown in FIG. 31.
- FIG. 31A is a diagram illustrating an encoding / decoding sequence on a developed view.
- the solid and dashed arrows used in FIG. 31A have the same meaning as the solid and dashed arrows used in FIG. 27 and the like.
- FIGS. 31B and 31C exemplarily show a procedure of encoding / decoding on a cube.
- Small blocks in FIGS. 31B and 31C denote coding unit blocks (eg, CTUs), and numbers indicate an order in which the corresponding blocks are processed.
- the shaded block refers to a block in which encoding / decoding has been completed, and the block not shaded refers to a block in which encoding / decoding has not yet started.
- the WPP processing order may vary for each perspective.
- encoding / decoding may be started in several directions at the same time for one perspective.
- separate encoding / decoding apparatuses are not considered to encode / decode all perspectives with the device of the same configuration, and to consider the directions of decoding and decoding of each perspective. There may be a problem that you must provide a separate.
- FIG. 32 is a diagram illustrating a configuration of an encoding device according to the present disclosure.
- FIG 33 is a diagram illustrating a configuration of a decoding apparatus according to the present disclosure.
- the encoding apparatus of FIG. 32 may include a transform and divider 3201, an image information converter 3202, a context information extractor 3203, and a plurality of encoders.
- the encoding apparatus of FIG. 32 may generate a bitstream by encoding an input image.
- the input image may be an omnidirectional image, and each encoder may encode one perspective of a plurality of perspectives constituting the omnidirectional image.
- Each of the encoders may include an encoding processor, a reconstruction picture buffer, and / or an entropy encoder, and may correspond to the encoding apparatus of FIG. 3.
- the decoding apparatus of FIG. 33 may include a video information converter 3301, a context information extractor 3302, a transform and integrator 3303, and a plurality of decoders.
- the decoding apparatus of FIG. 33 may output an image by decoding the bitstream.
- the output image may be an omnidirectional image, and each decoder may decode one perspective of a plurality of perspectives constituting the omnidirectional image.
- Each of the decoders includes a decoding processor, an entropy decoder, and / or a reconstruction picture buffer, and may correspond to the decoding apparatus of FIG. 4.
- the encoder according to the present disclosure may further include a transform and divider 3201 and / or an image information converter 3202.
- the decoder according to the present disclosure may further include an image information converter 3301 and / or a transform and integrator 3302.
- the transform and splitter 3201 of FIG. 32 may transmit image information of each perspective to one or more encoding processors. Before the image information is transmitted, the image information may be modified such that the processing direction of each perspective coincides with the predetermined processing direction.
- the predetermined processing direction may be, for example, a raster scan order, but is not limited thereto and may be predetermined or signaled as a processing direction commonly applied to all perspectives.
- the transform and divider 3201 can operate as follows.
- the input image is divided for each perspective (step 1).
- the omnidirectional image may be stored separately for each perspective or integrated and stored in a single exploded form.
- Each perspective may be sent to a respective encoding processor.
- step 2 when the CTU processing order in the perspective is counterclockwise, a symmetric image is generated to be clockwise (step 2).
- 34 is an exemplary diagram for explaining a method of converting a processing order of a perspective.
- Each of (a), (b) and (c) of FIG. 34 shows an embodiment in which the processing order of the perspective P6 in which the CTU processing order is counterclockwise is converted to the clockwise direction.
- the symmetric perspective of stage 2 can be generated by symmetrically the perspective P6 of stage 1 from side to side.
- the symmetric perspective of stage 2 can be created by symmetry up and down perspective P6 of stage 1.
- FIG. 34C the symmetric perspective of stage 2 can be generated by diagonally symmetrical perspective P6 of stage 1.
- FIG. in each of (a), (b) and (c) of FIG. 34 it can be seen that the processing order of the CTU of the symmetric perspective of stage 2 is converted to the clockwise direction.
- the image is rotated with respect to the center of the perspective so that the negative / decoding start position of the symmetric perspective of stage 2 is at the upper left (step 3).
- the symmetric perspective of stage 2 can be rotated 180 degrees.
- the negative / decoding start position is located at the upper left, there is no need to rotate the symmetric perspective of stage 2.
- the symmetric perspective of stage 2 can be rotated 90 degrees clockwise.
- the perspective of stage 3 can be generated by the rotation of the symmetric perspective of stage 2.
- the symmetry may not be performed, for example, only rotation may be performed.
- the order of negative / decoding processing of the perspective can be matched in a predetermined order.
- the above example described with reference to FIG. 34 is an example of a method in which the encoding / decoding of each perspective can be started at the upper left.
- the symmetry and / or rotation can be expressed in a matrix.
- the symmetry and rotation may be expressed in the form of a matrix product may be performed in one operation.
- each embodiment described with reference to FIG. 34 is part of an embodiment for matching the CTU processing order in the perspective to a predetermined order. That is, the CTU processing order may be matched by applying a method other than the embodiments described with reference to FIG. 34.
- the CTU processing order may be matched by first rotating the perspective and then symmetrically. That is, in FIG. 34A, the perspective of Stage 3 may be obtained by rotating the perspective of Stage 1 180 degrees and then symmetrically rotating the perspective from side to side.
- the perspective may be converted using mapping information between the processing order of the perspective of the stage 1 and the processing order of the perspective of the stage 3.
- the mapping information may include information for identifying a processing order of the perspective of stage 1 and transformation information about the perspective of stage 1.
- the conversion information may be information for converting the perspective of the stage 1 into the perspective of the stage 3.
- the transformation information may be information about a correspondence relationship between the CTU of stage 1 and the CTU of stage 3. The correspondence may be a position of the CTU of stage 1 and a position of the CTU of stage 3 corresponding thereto.
- the position of the CTU may be represented in an order according to a predetermined scan order.
- the predetermined scan order may be, for example, a raster scan order.
- the position of the CTU may be two-dimensional coordinates based on a predetermined corner of the perspective.
- the predetermined corner may be, for example, the upper left corner of the perspective.
- the sub / decoder when the CTU processing order of the input perspective is different from the predetermined processing order, symmetry and / or rotation are performed to transform the perspective.
- the input perspective is the same as the perspective of Fig. 34A, and the predetermined processing sequence is the raster scanning sequence
- the sub / decoder performs the encoding / decoding in the counterclockwise direction starting from the lower left CTU of the input perspective. It can also be configured to.
- the above-described mapping information between the processing order of the perspective of the stage 1 and the processing order of the perspective of the stage 3 may be used.
- the image information may be a prediction mode used for spatial prediction, a motion vector used for temporal prediction, a merge index, quantization parameter information, in-loop filter information, filter coefficient information, etc., in addition to simply pixel information existing in the image. It can contain any information generated or used during the encoding / decoding process.
- the decoder may determine a method of converting image information to be referred to based on information about the developed view used by the encoder and / or information about the transformation applied to each perspective.
- the sub / decoder may promise information in advance about the exploded view, information about the location of the perspective on the exploded view, and / or information about the transformation applied to each perspective.
- all or part of the information may be signaled explicitly or implicitly through the bitstream.
- the decoder may derive some or all of the information based on other syntax or variables regarding encoding / decoding.
- the above-described conversion of the image information may be performed by the image information converter 3202 of FIG. 32 and the image information converter 3301 of FIG. 33.
- the flag information is included in a video header such as a video parameter set (VPS) or a sequence parameter set (SPS). Signal whether or not to use.
- a video parameter set VPS
- SPS sequence parameter set
- the encoder uses one of a plurality of development diagrams or if the processing order of the perspectives processed by the transform and distribution unit 3201 is variable, the information about the type of development scheme or the processing order of the perspectives used in encoding is explicitly expressed by the decoder. May be signaled. Alternatively, when the encoder / decoder shares a lookup table for the information, the index of the lookup table may be signaled.
- the transform and integrator 3303 of FIG. 33 may reverse the process of the transform and divider 3201 of FIG. 32. More specifically, the following process can be performed.
- the image when rotation is applied to the perspective image in the encoding apparatus, the image may be rotated in the opposite direction by the angle rotated in the encoding apparatus (step 1).
- Whether rotation is applied and / or the rotation angle for the corresponding perspective image may be signaled through the bitstream. Whether the rotation is applied and / or the rotation angle can be directly negative / decoded. For example, a flag indicating whether rotation is applied and a syntax element regarding rotation angle may be encoded / decoded.
- the rotation angle may be one of 90 degrees, 180 degrees, and 270 degrees. Therefore, the syntax element regarding the rotation angle may be information indicating one of three cases.
- bit string “00” is “not rotated”
- bit string “01” is rotated 90 degrees
- bit string “10” is rotated 180 degrees
- the bit string “11” may indicate “rotated 270 degrees”.
- the bit string and its corresponding meaning may be preset in the encoder / decoder and stored, for example, in the form of a table.
- n-1 cases may refer to cases in which rotation angles are different. That is, when the perspective image is n-square, the information about the rotation transformation may be information indicating one of n cases.
- log 2 n bits of syntax elements information about whether rotation is applied and the angle of rotation can be encoded / decoded.
- the symmetry image may be generated based on the center line used in the encoding apparatus (step 2).
- Information about whether symmetry has been applied to the corresponding perspective image and / or centerline used for symmetry may be signaled through the bitstream.
- Information about whether the symmetry is applied and / or the center line may be directly encoded / decoded.
- syntax elements for flags and centerlines indicating whether symmetry is applied may be encoded / decoded.
- the number of centerlines available may be limited.
- the decoder / decoder may promise in advance the number of available centerlines.
- the number of available centerlines may be signaled.
- the information about the center line may be information indicating one of three cases.
- bit string “00” is “not symmetrical”
- bit string “01” is “symmetrical using a vertical line”
- bit string “10” is using a horizontal line.
- Symmetrical bit string“ 11 ”may indicate“ symmetrical using diagonal ”.
- the bit string and its corresponding meaning may be preset in the encoder / decoder and stored, for example, in the form of a table.
- perspective images that have passed through Step 1 and / or Step 2 may be integrated into one according to the development view.
- Steps 1 and 2 may be performed by inversely applying an operation used by the transform and divider 3201 of the encoding apparatus.
- Step 3 may be performed when the user of the decoding apparatus requests one development view that combines a plurality of perspectives.
- the pixel information can be corrected.
- the image information may mean information necessary for encoding / decoding.
- the image information may include information about prediction, information about transform, information about entropy encoding, information about filtering, information about division of blocks, and the like.
- the information about the prediction may include information indicating inter prediction or intra prediction, information about a motion vector, information about a reference image, information about prediction directions between screens, information about prediction directions within a screen, and the like. Can be.
- the information about the intra prediction direction may be intra prediction mode information.
- the intra prediction mode may mean a non-directional prediction mode and a directional prediction mode.
- the image information to be transformed may be a directional prediction mode.
- a symmetrical and / or rotational transformation is performed, similarly to a correction taking into account a transformation for matching the positional difference between the perspectives on a developed view and / or the order of sub / decoding processes in a predetermined order. Can be modified.
- modification of the spatial prediction mode may not be solved with this method. The reason for this is described later.
- adjacent pixel information of the bottom left, left, top, and top right corners of the current block may be used.
- 33 prediction modes may be used.
- more directional prediction modes may be used to support finer directionality.
- the directional prediction mode that may be referred to may be a prediction mode of a lower left, a left end, an upper end, and / or an upper right end.
- the mode number according to the direction of spatial prediction is stored.
- the mode number may not match the direction of the actual spatial prediction. Therefore, when the perspective is transformed into symmetry or rotation, the prediction information of the neighboring block cannot be used as it is.
- 36 is an exemplary diagram for describing spatial prediction of a current perspective with reference to a prediction mode of a neighbor perspective.
- 36 (a) shows the positions of block A of perspective P2 and block B of perspective P6 on the developed view of the cube omnidirectional image.
- 36B shows the positions of blocks A and B after correcting the positions of the perspective P2 and the perspective P6 in consideration of the positional difference on the developed view.
- FIG. 36C shows the positions of blocks A and B after correction for matching the negative / decoding process order of the perspective P6 from a predetermined direction, for example, from the upper left to the lower right.
- the perspective P6 of FIG. 36C may be encoded in the order from the upper left to the lower right through the transform and divider 3201 of FIG. 32. Accordingly, block B may be predicted using the intra prediction mode illustrated in FIG. 35. However, the encoded pixel information of the block A of FIG. 36C is converted so that the block B can refer to it. However, since the image information other than the pixel information is before the conversion, the block B cannot use it as it is. Therefore, it is necessary to perform a conversion process corresponding to the conversion of the pixel information with respect to other image information. In this case, the conversion of the pixel information is as described with reference to FIG. 34, for example.
- the mode number for the directionality since the mode number is used for the directionality, after the conversion process, the mode number for the directionality may not be the same or may not exist.
- 37 is a diagram for explaining a difference between prediction modes of a current block and a reference block.
- FIG. 37A illustrates the directional prediction modes available for the blocks A and B shown in FIG. 36C.
- (a) of FIG. 37 as the block A is transformed according to the conversion of the block B, it can be seen that there is no mode other than the mode number 26 for the block A that the block B can utilize for prediction.
- the prediction direction itself of block A may be useful for encoding / decoding of the prediction direction of block B. Therefore, if the mode number of the block A is interpreted to be used by the block B, the efficiency of prediction techniques such as Most Probable Mode (MPM) can be improved.
- MPM Most Probable Mode
- the interpretation of the directional prediction mode may be performed as follows.
- the directional prediction mode of the reference block is the prediction direction of the reference block.
- the directional prediction mode of the reference block A may be interpreted as '34'.
- the prediction direction of the reference block does not exist in the directional mode according to a predetermined processing order (for example, a sequential scanning order), that is, when it is in a downward direction or a right direction, the prediction is 180 degrees symmetric to the prediction direction of the reference block.
- a predetermined processing order for example, a sequential scanning order
- the prediction direction of the reference block A is the right direction
- the right direction is not included during the directional mode shown in FIG. 35. Therefore, in this case, the directional prediction mode of the reference block A may be interpreted as '10', which is a mode number assigned to the left direction that is 180 degrees symmetric to the right direction.
- FIG. 37B shows an example in which the lower directionality (solid arrow) in FIG. 37A is interpreted as the upper directionality (dashed arrow).
- Mode 2 of the directional mode of FIG. 37B is included in the existing directional mode. Therefore, it may not be interpreted symmetrically by 180 degrees.
- FIG. 37C shows an example in which the right directionality (solid line arrow) in FIG. 37A is interpreted as the left directionality (dashed arrow).
- Mode 34 of the directional mode of FIG. 37C is included in the existing directional mode. Therefore, it may not be interpreted symmetrically by 180 degrees.
- 38 is a diagram for explaining a method of analyzing a directional prediction mode of a reference block.
- image information of a reference block may be converted. Conversion of the image information of the reference block may be performed according to the current block. For example, the operation may be performed in consideration of the transformation of the current block or in consideration of the difference between the perspectives in which the current block and the reference block are included.
- operation S3820 it may be determined whether the directional prediction mode of the uninterpreted reference block is available for the current block. For example, if the directional prediction mode of the uninterpreted reference block is included among the directional prediction modes available for the current block, it may be determined that the corresponding directional prediction mode of the reference block is available for the current block.
- step S3830 a mode that is 180 degrees symmetric to the corresponding directional prediction mode of the reference block may be generated. Thereafter, in step S3840, the directional prediction mode of the reference block may be analyzed. For example, the directional prediction mode of the reference block may be interpreted as a mode of the current block having the same directionality as the directional prediction mode of the reference block generated in step S3830.
- step S3840 the directional prediction mode of the reference block is to be interpreted as the mode of the current block having the same directionality as that of the reference block. Can be.
- step S3850 it may be determined whether all the directional prediction modes of the reference block have been interpreted. If there is an uninterpreted mode among the directional prediction modes of the reference block, the process moves to step S3820 and the process can be repeated.
- the directional prediction mode of the reference block may be, for example, one of eight cases shown in FIG. 39, depending on which development of each perspective of the cube omnidirectional image is developed. Can be.
- the directional mode of the reference block can be analyzed by referring to a lookup table (interpretation table) shared by the encoding / decoding device.
- a lookup table interpretation table
- Table 1 below is an example of the directional mode analysis table.
- Table 1 is a table of 33 orientations. However, the number of directionality is not limited to this.
- FIG. 40 is a diagram for explaining a position of a reference sample used for spatial prediction of a cube omnidirectional image.
- the dotted box in FIG. 40 indicates the position of the reference sample used for spatial prediction of each CTU (blocks A, B and C).
- FIG. 40 when spatial prediction of a cube omnidirectional image is performed, there may not be a reference sample on the developed view. For example, in the case of the upper left CTU (block A) shown in FIG. 40A, the upper left reference sample X does not exist.
- the correct reference sample may not be selected.
- the sample values of the neighboring perspectives are used to determine the sample values that do not exist.
- the reference sample can be determined by deriving or transforming the neighbor perspective to fit the current perspective.
- the reference sample X of the block A of FIG. 40A can be generated by interpolating the image information of the perspectives P1 and P2.
- correct reference samples may be generated through viewpoint correction.
- FIG. 41 is a view for explaining a method of parallel processing a cube omnidirectional image utilizing continuity on a developed view.
- each perspective includes 5x5 CTUs, and the number within each CTU represents the WPP processing order.
- the processing of the encoding / decoding can be started from the hatched blocks a1 and a2 in Fig. 41A. In simple developments other than three dimensions, perspectives A and B may not refer to each other. Even when encoding / decoding is started simultaneously at the positions of blocks a1 and a2 in Fig. 41 (a), when the processing of the row to which the block a2 belongs reaches the column to which the block a1 belongs, the delay is caused by the dependency because the dependency is resolved. I never do that.
- the encoder will start encoding / decoding at two or more positions in the development view.
- the encoder may use two entropy information (eg, an entropy context table) for blocks a1 and a2.
- the decoder needs to know the method used in the encoder to perform the decoding. Therefore, entropy information used in the encoder, information on an encoding start time point, and / or an exploded view may be signaled through a bitstream. Or by referring to a lookup table. Or based on other coding parameters and / or internal variables.
- Exemplary methods of the present disclosure are represented as a series of operations for clarity of description, but are not intended to limit the order in which the steps are performed, and each step may be performed simultaneously or in a different order as necessary.
- the illustrated step may further include other steps, may include other steps except some, or may include additional other steps except some.
- various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof.
- one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field Programmable Gate Arrays (FPGAs), General Purpose It may be implemented by a general processor, a controller, a microcontroller, a microprocessor, and the like.
- scope of the disclosure include software or machine-executable instructions (eg, an operating system, an application, firmware, a program, etc.) to cause an operation in accordance with various embodiments of the method to be executed on an apparatus or a computer, and such software or Instructions, and the like, including non-transitory computer-readable media that are stored and executable on a device or computer.
- software or machine-executable instructions eg, an operating system, an application, firmware, a program, etc.
- the present invention can be used to encode / decode an image.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
본 개시는 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부/복호화 방법 및 장치에 관한 것이다. 본 개시에 따르는 부호화 방법은 하나 이상의 퍼스펙티브 영상을 선택하고, 상기 선택된 퍼스펙티브 영상에 대한 부호화를 시작하고, 상기 선택된 퍼스펙티브 영상의 부호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 부호화를 시작하는 단계를 포함할 수 있다.
Description
본 개시는 영상의 부/복호화 방법 및 장치에 관한 것이다.
구체적으로, 본 개시는 가상 현실 영상의 부/복호화 방법 및 장치에 관한 것이며, 보다 구체적으로, 가상 현실 영상의 부/복호화의 병렬 처리 방법 및 장치에 관한 것이다.
최근 HD(High Definition), UHD(Ultra High Definition) 해상도(1920x1080 혹은 3840x2160)를 가지는 방송 서비스가 국내뿐만 아니라 세계적으로 확대되고 있다. 사용자들은 고해상도, 고화질의 영상에 익숙해지고 있으며 그에 발맞춰서 많은 기관에서는 차세대 영상기기에 대한 개발에 박차를 가하고 있다.
현재 MPEG(Moving Picture Experts Group)과 VCEG(Video Coding Experts Group)는 공동으로 차세대 비디오 코덱인 HEVC(High Efficiency Video Coding)의 표준화를 완료하였다. 이에 따르면, UHD 영상을 포함한 영상에 대한 압축 효율은 H.264/AVC 대비 2배의 압축 효율을 보인다. 영상의 해상도가 높아지고 기술이 개발됨에 따라 기존에 2D영상 뿐 아니라 스테레오스코픽 영상이나 전방향(360도) 비디오와 같은 실감형 영상에 대한 관심이 높아지고 있다. 이에 따라 많은 기업에서 헤드 마운트 디스플레이나 실감형 영상을 재생할 수 있는 장치가 출시되고 있다.
본 개시의 기술적 과제는 영상의 부/복호화 효율을 향상시키는 방법 및 장치를 제공하는 것이다.
본 개시의 다른 기술적 과제는 가상 현실 영상의 부/복호화 효율을 향상시키는 방법 및 장치를 제공하는 것이다.
본 개시의 또 다른 기술적 과제는 가상 현실 영상의 부/복호화를 병렬 처리하기 위한 방법 및 장치를 제공하는 것이다.
본 개시의 또 다른 기술적 과제는 다면체 360도 VR 영상과 같이, 복수의 퍼스펙티브(perspective)를 가진 영상의 부/복호화 속도를 향상시키는 방법 및 장치를 제공하는 것이다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 방법은, 하나 이상의 퍼스펙티브 영상을 선택하는 단계, 상기 선택된 퍼스펙티브 영상에 대한 부호화를 시작하는 단계, 및 상기 선택된 퍼스펙티브 영상의 부호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 부호화를 시작하는 단계를 포함할 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 복수의 퍼스펙티브 영상은 360도 전방향 영상을 N면체에 투영시켜 획득한 N개의 영상일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 N면체는 정육면체일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상은 서로 이웃하지 않는 둘 이상의 퍼스펙티브 영상일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상은 정육면체 상에서 서로 마주보는 두 개의 퍼스펙티브 영상일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상은 다른 퍼스펙티브를 참조하지 않고 부호화될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 복수의 퍼스펙티브 영상의 각각은 WPP(Wavefront Parallel Processing)를 이용하여 부호화될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 복수의 퍼스펙티브 영상의 각각에 대한 상기 WPP의 진행 순서는 해당 퍼스펙티브에 따라 적응적으로 결정될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상의 좌상단에서 우하단의 순서로 진행될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 이웃 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상에 포함된 블록들 중, 의존성이 해결된 블록으로부터 시작될 수 있다.
본 개시에 따른 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 방법은, 하나 이상의 퍼스펙티브 영상을 선택하는 단계, 상기 선택된 퍼스펙티브 영상에 대한 복호화를 시작하는 단계, 및 상기 선택된 퍼스펙티브 영상의 복호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 복호화를 시작하는 단계를 포함할 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 복수의 퍼스펙티브 영상은 360도 전방향 영상을 N면체에 투영시켜 획득한 N개의 영상일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 N면체는 정육면체일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상은 서로 이웃하지 않는 둘 이상의 퍼스펙티브 영상일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상은 정육면체 상에서 서로 마주보는 두 개의 퍼스펙티브 영상일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상은 다른 퍼스펙티브를 참조하지 않고 복호화될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 복수의 퍼스펙티브 영상의 각각은 WPP(Wavefront Parallel Processing)를 이용하여 복호화될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 복수의 퍼스펙티브 영상의 각각에 대한 상기 WPP의 진행 순서는 해당 퍼스펙티브에 따라 적응적으로 결정될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 선택된 하나 이상의 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상의 좌상단에서 우하단의 순서로 진행될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 이웃 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상에 포함된 블록들 중, 의존성이 해결된 블록으로부터 시작될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 장치는, 하나 이상의 퍼스펙티브 영상을 선택하고, 상기 선택된 퍼스펙티브 영상에 대한 부호화를 시작하고, 상기 선택된 퍼스펙티브 영상의 부호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 부호화를 시작하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 장치는, 하나 이상의 퍼스펙티브 영상을 선택하고, 상기 선택된 퍼스펙티브 영상에 대한 복호화를 시작하고, 상기 선택된 퍼스펙티브 영상의 복호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 복호화를 시작하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 방법은, 서로 이웃하지 않는 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상을 선택하는 단계, 상기 제1 및 제2 퍼스펙티브 영상에 대한 부호화를 시작하는 단계, 및 상기 제1 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브에 대한 부호화를 시작하는 단계를 포함할 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제3 퍼스펙티브에 대한 부호화는, 상기 제1 및 제2 퍼스펙티브 영상의 부호화에 따라 의존성이 해결된 두 개의 블록으로부터 시작될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제3 퍼스펙티브의 부호화가 시작되는 두 개의 블록의 각각의 위치는, 상기 제1 및 제2 퍼스펙티브 영상의 부호화가 시작되는 각각의 위치에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제3 퍼스펙티브의 부호화가 시작되는 두 개의 블록의 각각은, 상기 제1 및 제2 퍼스펙티브 영상의 부호화가 시작되는 각각의 위치에 인접한 블록일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제3 퍼스펙티브의 두 개의 블록을 시작으로 하는 상기 제3 퍼스펙티브의 부호화 진행 방향의 각각은, 기 제1 및 제2 퍼스펙티브 영상의 부호화 진행 방향의 각각에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제3 퍼스펙티브의 두 개의 블록을 시작으로 하는 상기 제3 퍼스펙티브의 부호화 진행 방향의 각각은, 상기 제1 및 제2 퍼스펙티브 영상의 부호화 진행 방향의 각각의 수직 방향일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 및 제2 퍼스펙티브 영상의 부호화 진행 방향의 각각은 상하 방향 또는 좌우 방향 중 하나의 방향으로 서로 반대일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 및 제2 퍼스펙티브 영상의 부호화 진행 방향의 각각은 상하 방향 및 좌우 방향의 모든 방향으로 서로 반대일 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 방법은, 서로 이웃하지 않는 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상을 선택하는 단계, 상기 제1 및 제2 퍼스펙티브 영상에 대한 복호화를 시작하는 단계, 및 상기 제1 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브에 대한 복호화를 시작하는 단계를 포함할 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제3 퍼스펙티브에 대한 복호화는, 상기 제1 및 제2 퍼스펙티브 영상의 복호화에 따라 의존성이 해결된 두 개의 블록으로부터 시작될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제3 퍼스펙티브의 복호화가 시작되는 두 개의 블록의 각각의 위치는, 상기 제1 및 제2 퍼스펙티브 영상의 복호화가 시작되는 각각의 위치에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제3 퍼스펙티브의 복호화가 시작되는 두 개의 블록의 각각은, 상기 제1 및 제2 퍼스펙티브 영상의 복호화가 시작되는 각각의 위치에 인접한 블록일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제3 퍼스펙티브의 두 개의 블록을 시작으로 하는 상기 제3 퍼스펙티브의 복호화 진행 방향의 각각은, 상기 제1 및 제2 퍼스펙티브 영상의 복호화 진행 방향의 각각에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제3 퍼스펙티브의 두 개의 블록을 시작으로 하는 상기 제3 퍼스펙티브의 복호화 진행 방향의 각각은, 상기 제1 및 제2 퍼스펙티브 영상의 복호화 진행 방향의 각각의 수직 방향일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 및 제2 퍼스펙티브 영상의 복호화 진행 방향의 각각은 상하 방향 또는 좌우 방향 중 하나의 방향으로 서로 반대일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 및 제2 퍼스펙티브 영상의 복호화 진행 방향의 각각은 상하 방향 및 좌우 방향의 모든 방향으로 서로 반대일 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 장치는, 서로 이웃하지 않는 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상을 선택하고, 상기 제1 및 제2 퍼스펙티브 영상에 대한 부호화를 시작하고, 상기 제1 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브에 대한 부호화를 시작하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 장치는, 서로 이웃하지 않는 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상을 선택하고, 상기 제1 및 제2 퍼스펙티브 영상에 대한 복호화를 시작하고, 상기 제1 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브에 대한 복호화를 시작하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 방법은, 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브 영상을 제1 영역 및 제2 영역으로 분할하는 단계, 및 상기 제3 퍼스펙티브 영상의 상기 제1 영역 및 제2 영역을 독립적으로 부호화하는 단계를 포함하고, 상기 제1 퍼스펙티브 영상 및 상기 제2 퍼스펙티브 영상은 서로 인접하지 않을 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 영역은 상기 제1 퍼스펙티브 영상에 인접하고, 상기 제2 영역은 상기 제2 퍼스펙티브 영상에 인접하고, 상기 제1 영역에 대한 부호화는, 상기 제1 퍼스펙티브 영상의 부호화에 따라 의존성이 해결된 블록으로부터 시작되고, 상기 제2 영역에 대한 부호화는, 상기 제2 퍼스펙티브 영상의 부호화에 따라 의존성이 해결된 블록으로부터 시작될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 영역의 부호화가 시작되는 블록의 위치는, 상기 제1 퍼스펙티브 영상의 부호화가 시작되는 위치에 기초하여 결정되고, 상기 제2 영역의 부호화가 시작되는 블록의 위치는, 상기 제2 퍼스펙티브 영상의 부호화가 시작되는 위치에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 영역의 부호화가 시작되는 블록은, 상기 제1 퍼스펙티브 영상의 부호화가 시작되는 위치에 인접한 블록이고, 상기 제2 영역의 부호화가 시작되는 블록은, 상기 제2 퍼스펙티브 영상의 부호화가 시작되는 위치에 인접한 블록일 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 영역의 부호화 진행 방향은 상기 제1 퍼스펙티브 영상의 부호화 진행 방향에 기초하여 결정되고, 상기 제2 영역의 부호화 진행 방향은 상기 제2 퍼스펙티브 영상의 부호화 진행 방향에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 영역 및 상기 제2 영역은 동일한 크기를 가질 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 상기 제1 영역 및 상기 제2 영역은 상이한 크기를 가질 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 제4 퍼스펙티브 영상의 부호화는 상기 제1 퍼스펙티브 영상의 부호화에 따라 의존성이 해결된 블록으로부터 시작되고, 상기 제1 영역에 대한 부호화는, 상기 제4 퍼스펙티브 영상의 부호화 진행 정보에 기초하여 시작되며, 상기 제4 퍼스펙티브 영상은 상기 제1 퍼스펙티브 영상, 상기 제2 퍼스펙티브 영상 및 상기 제3 퍼스펙티브 영상과 모두 인접할 수 있다.
본 개시에 따른 영상의 부호화 방법에 있어서, 제5 퍼스펙티브 영상의 부호화는 상기 제2 퍼스펙티브 영상의 부호화에 따라 의존성이 해결된 블록으로부터 시작되고, 상기 제1 영역에 대한 부호화는, 상기 제5 퍼스펙티브 영상의 부호화 진행 정도에 기초하여 시작되며, 상기 제5 퍼스펙티브 영상은 상기 제1 퍼스펙티브 영상, 상기 제2 퍼스펙티브 영상 및 상기 제3 퍼스펙티브 영상과 모두 인접할 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 방법은, 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브 영상을 제1 영역 및 제2 영역으로 분할하는 단계, 및 상기 제3 퍼스펙티브 영상의 상기 제1 영역 및 제2 영역을 독립적으로 복호화하는 단계를 포함하고, 상기 제1 퍼스펙티브 영상 및 상기 제2 퍼스펙티브 영상은 서로 인접하지 않을 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 영역은 상기 제1 퍼스펙티브 영상에 인접하고, 상기 제2 영역은 상기 제2 퍼스펙티브 영상에 인접하고, 상기 제1 영역에 대한 복호화는, 상기 제1 퍼스펙티브 영상의 복호화에 따라 의존성이 해결된 블록으로부터 시작되고, 상기 제2 영역에 대한 복호화는, 상기 제2 퍼스펙티브 영상의 복호화에 따라 의존성이 해결된 블록으로부터 시작될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 영역의 복호화가 시작되는 블록의 위치는, 상기 제1 퍼스펙티브 영상의 복호화가 시작되는 위치에 기초하여 결정되고, 상기 제2 영역의 복호화가 시작되는 블록의 위치는, 상기 제2 퍼스펙티브 영상의 복호화가 시작되는 위치에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 영역의 복호화가 시작되는 블록은, 상기 제1 퍼스펙티브 영상의 복호화가 시작되는 위치에 인접한 블록이고, 상기 제2 영역의 복호화가 시작되는 블록은, 상기 제2 퍼스펙티브 영상의 복호화가 시작되는 위치에 인접한 블록일 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 영역의 복호화 진행 방향은 상기 제1 퍼스펙티브 영상의 복호화 진행 방향에 기초하여 결정되고, 상기 제2 영역의 복호화 진행 방향은 상기 제2 퍼스펙티브 영상의 복호화 진행 방향에 기초하여 결정될 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 영역 및 상기 제2 영역은 동일한 크기를 가질 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 상기 제1 영역 및 상기 제2 영역은 상이한 크기를 가질 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 제4 퍼스펙티브 영상의 복호화는 상기 제1 퍼스펙티브 영상의 복호화에 따라 의존성이 해결된 블록으로부터 시작되고, 상기 제1 영역에 대한 복호화는, 상기 제4 퍼스펙티브 영상의 복호화 진행 정도에 기초하여 시작되며, 상기 제4 퍼스펙티브 영상은 상기 제1 퍼스펙티브 영상, 상기 제2 퍼스펙티브 영상 및 상기 제3 퍼스펙티브 영상과 모두 인접할 수 있다.
본 개시에 따른 영상의 복호화 방법에 있어서, 제5 퍼스펙티브 영상의 복호화는 상기 제2 퍼스펙티브 영상의 복호화에 따라 의존성이 해결된 블록으로부터 시작되고, 상기 제1 영역에 대한 복호화는, 상기 제5 퍼스펙티브 영상의 복호화 진행 정도에 기초하여 시작되며, 상기 제5 퍼스펙티브 영상은 상기 제1 퍼스펙티브 영상, 상기 제2 퍼스펙티브 영상 및 상기 제3 퍼스펙티브 영상과 모두 인접할 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 장치는, 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브 영상을 제1 영역 및 제2 영역으로 분할하고, 상기 제3 퍼스펙티브 영상의 상기 제1 영역 및 제2 영역을 독립적으로 부호화하도록 구성되고, 상기 제1 퍼스펙티브 영상 및 상기 제2 퍼스펙티브 영상은 서로 인접하지 않을 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 장치는, 제1 퍼스펙티브 영상 및 제2 퍼스펙티브 영상에 모두 인접한 제3 퍼스펙티브 영상을 제1 영역 및 제2 영역으로 분할하고, 상기 제3 퍼스펙티브 영상의 상기 제1 영역 및 제2 영역을 독립적으로 복호화하도록 구성되고, 상기 제1 퍼스펙티브 영상 및 상기 제2 퍼스펙티브 영상은 서로 인접하지 않을 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 방법은, 상기 복수의 퍼스펙티브 영상 중 부호화 대상 퍼스펙티브 영상의 처리 순서를 식별하는 단계, 상기 식별된 처리 순서가 소정의 처리 순서와 동일한지 여부를 판단하는 단계, 및 상기 식별된 처리 순서가 상기 소정의 처리 순서와 동일하지 않은 경우, 상기 부호화 대상 퍼스펙티브 영상을 변환하는 단계를 포함할 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 처리 순서는 처리 시작 위치와 처리 진행 방향으로 식별되고, 상기 소정의 처리 순서의 처리 시작 위치는 상기 퍼스펙티브 영상의 좌상단 위치이고, 상기 소정의 처리 순서의 처리 진행 방향은 시계 방향일 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 변환은 상기 부호화 대상 퍼스펙티브 영상에 대한 대칭 변환 및 이동 변환 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 대칭 변환은 상기 식별된 처리 순서의 처리 진행 방향이 상기 소정의 처리 순서의 처리 진행 방향과 상이할 때 수행될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 대칭 변환은 좌우 대칭 변환, 상하 대칭 변환 및 대각 대칭 변환 중 하나일 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 회전 변환은 상기 식별된 처리 순서의 처리 시작 위치가 상기 소정의 처리 순서의 처리 시작 위치가 상이할 때 수행될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 회전 변환은 상기 부호화 대상 퍼스펙티브 영상의 처리 시작 위치가 상기 소정의 처리 순서의 처리 시작 위치가 동일해지도록 상기 부호화 대상 퍼스펙티브 영상을 회전시키는 변환일 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 부호화 대상 퍼스펙티브 영상을 변환하는 단계는. 상기 부호화 대상 퍼스펙티브 영상을 제1 변환하는 단계, 상기 제1 변환된 부호화 대상 퍼스펙티브 영상의 처리 순서가 상기 소정의 처리 순서와 동일한지 여부를 판단하는 단계 및 상기 제1 변환된 부호화 대상 퍼스펙티브 영상의 처리 순서가 상기 소정의 처리 순서와 동일하지 않은 경우, 상기 제1 변환된 부호화 대상 퍼스펙티브 영상을 제2 변환하는 단계를 포함할 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 제1 변환은 대칭 변환 및 이동 변환 중 하나이고, 상기 제2 변환은 나머지 다른 하나일 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 장치는 변환기를 포함하고, 상기 변환기는, 상기 복수의 퍼스펙티브 영상 중 부호화 대상 퍼스펙티브 영상의 처리 순서를 식별하고, 상기 식별된 처리 순서가 소정의 처리 순서와 동일한지 여부를 판단하고, 상기 식별된 처리 순서가 상기 소정의 처리 순서와 동일하지 않은 경우, 상기 부호화 대상 퍼스펙티브 영상을 변환하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 방법은, 상기 복수의 퍼스펙티브 영상 중 복호화 대상 퍼스펙티브 영상의 처리 순서를 식별하는 단계, 상기 식별된 처리 순서가 소정의 처리 순서와 동일한지 여부를 판단하는 단계, 및 상기 식별된 처리 순서가 상기 소정의 처리 순서와 동일하지 않은 경우, 상기 복호화 대상 퍼스펙티브 영상을 변환하는 단계를 포함할 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 처리 순서는 처리 시작 위치와 처리 진행 방향으로 식별되고, 상기 소정의 처리 순서의 처리 시작 위치는 상기 퍼스펙티브 영상의 좌상단 위치이고, 상기 소정의 처리 순서의 처리 진행 방향은 시계 방향일 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 변환은 상기 복호화 대상 퍼스펙티브 영상에 대한 대칭 변환 및 이동 변환 중 적어도 하나를 포함할 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 대칭 변환은 상기 식별된 처리 순서의 처리 진행 방향이 상기 소정의 처리 순서의 처리 진행 방향과 상이할 때 수행될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 대칭 변환은 좌우 대칭 변환, 상하 대칭 변환 및 대각 대칭 변환 중 하나일 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 회전 변환은 상기 식별된 처리 순서의 처리 시작 위치가 상기 소정의 처리 순서의 처리 시작 위치가 상이할 때 수행될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 회전 변환은 상기 복호화 대상 퍼스펙티브 영상의 처리 시작 위치가 상기 소정의 처리 순서의 처리 시작 위치가 동일해지도록 상기 복호화 대상 퍼스펙티브 영상을 회전시키는 변환일 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 복호화 대상 퍼스펙티브 영상을 변환하는 단계는. 상기 복호화 대상 퍼스펙티브 영상을 제1 변환하는 단계, 상기 제1 변환된 복호화 대상 퍼스펙티브 영상의 처리 순서가 상기 소정의 처리 순서와 동일한지 여부를 판단하는 단계, 및 상기 제1 변환된 복호화 대상 퍼스펙티브 영상의 처리 순서가 상기 소정의 처리 순서와 동일하지 않은 경우, 상기 제1 변환된 복호화 대상 퍼스펙티브 영상을 제2 변환하는 단계를 포함할 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 제1 변환은 대칭 변환 및 이동 변환 중 하나이고, 상기 제2 변환은 나머지 다른 하나일 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 장치는 변환기를 포함하고, 상기 변환기는, 상기 복수의 퍼스펙티브 영상 중 복호화 대상 퍼스펙티브 영상의 처리 순서를 식별하고, 상기 식별된 처리 순서가 소정의 처리 순서와 동일한지 여부를 판단하고, 상기 식별된 처리 순서가 상기 소정의 처리 순서와 동일하지 않은 경우, 상기 복호화 대상 퍼스펙티브 영상을 변환하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 방법은, 부호화 대상인 제1 퍼스펙티브 영상에 포함된 현재 블록이 참조하는 참조 블록이 상기 제1 퍼스펙티브 영상에 인접한 제2 퍼스펙티브 영상에 포함될 때, 상기 참조 블록의 영상 정보를 변환하는 단계, 및 상기 변환된 영상 정보에 기초하여 상기 현재 블록을 부호화하는 단계를 포함할 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 영상 정보는 예측에 관한 정보일 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 영상 정보가 움직임 벡터에 관한 정보인 경우, 상기 참조 블록의 영상 정보를 변환하는 단계는, 상기 제1 퍼스펙티브 영상과 상기 제2 퍼스펙티브 영상의 위치 차이 및 부호화 순서를 소정의 순서로 일치시키기 위한 변환 중 적어도 하나에 기초하여 수행될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 영상 정보가 화면 내 예측 모드에 관한 정보인 경우, 상기 참조 블록의 영상 정보를 변환하는 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 가용한지 여부를 판단하는 가용성 판단 단계, 및 상기 가용성 판단에 기초하여, 상기 참조 블록의 화면 내 예측 모드를 해석하는 단계를 포함할 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 가용성 판단 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 대해 가용한 화면 내 예측 모드 중에 포함되는지 여부에 기초하여 수행될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 해석 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 대해 가용한 화면 내 예측 모드 중에 포함될 때, 상기 참조 블록의 화면 내 예측 모드는 가용한 것으로 판단되고, 상기 참조 블록의 화면 내 예측 모드는 동일한 방향성을 갖는 상기 현재 블록의 화면 내 예측 모드로 해석될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 해석 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 대해 가용한 화면 내 예측 모드 중에 포함되지 않을 때, 상기 참조 블록의 화면 내 예측 모드는 가용하지 않은 것으로 판단되고, 상기 참조 블록의 화면 내 예측 모드는 상기 참조 블록의 화면 내 예측 모드에 180도 대칭되는 모드와 동일한 방향성을 갖는 상기 현재 블록의 화면 내 예측 모드로 해석될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 가용성 판단 단계 및 상기 해석 단계는, 상기 참조 블록의 모든 화면 내 예측 모드가 해석될 때까지 반복될 수 있다.
본 개시에 따른 부호화 방법에 있어서, 상기 참조 블록의 영상 정보를 변환하는 단계는, 룩업 테이블을 참조하여 수행되고, 상기 룩업 테이블은 상기 제1 퍼스펙티브 영상에 대해 가용한 화면 내 예측 모드 및 상기 제2 퍼스펙티브 영상에 대해 가용한 화면 내 예측 모드의 관계를 나타내는 테이블일 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 장치는, 부호화 대상인 제1 퍼스펙티브 영상에 포함된 현재 블록이 참조하는 참조 블록이 상기 제1 퍼스펙티브 영상에 인접한 제2 퍼스펙티브 영상에 포함될 때, 상기 참조 블록의 영상 정보를 변환하고, 상기 변환된 영상 정보에 기초하여 상기 현재 블록을 부호화하도록 구성될 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 방법은, 복호화 대상인 제1 퍼스펙티브 영상에 포함된 현재 블록이 참조하는 참조 블록이 상기 제1 퍼스펙티브 영상에 인접한 제2 퍼스펙티브 영상에 포함될 때, 상기 참조 블록의 영상 정보를 변환하는 단계, 및 상기 변환된 영상 정보에 기초하여 상기 현재 블록을 복호화하는 단계를 포함할 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 영상 정보는 예측에 관한 정보일 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 영상 정보가 움직임 벡터에 관한 정보인 경우, 상기 참조 블록의 영상 정보를 변환하는 단계는, 상기 제1 퍼스펙티브 영상과 상기 제2 퍼스펙티브 영상의 위치 차이 및 복호화 순서를 소정의 순서로 일치시키기 위한 변환 중 적어도 하나에 기초하여 수행될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 영상 정보가 화면 내 예측 모드에 관한 정보인 경우, 상기 참조 블록의 영상 정보를 변환하는 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 가용한지 여부를 판단하는 가용성 판단 단계, 및 상기 가용성 판단에 기초하여, 상기 참조 블록의 화면 내 예측 모드를 해석하는 단계를 포함할 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 가용성 판단 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 대해 가용한 화면 내 예측 모드 중에 포함되는지 여부에 기초하여 수행될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 해석 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 대해 가용한 화면 내 예측 모드 중에 포함될 때, 상기 참조 블록의 화면 내 예측 모드는 가용한 것으로 판단되고, 상기 참조 블록의 화면 내 예측 모드는 동일한 방향성을 갖는 상기 현재 블록의 화면 내 예측 모드로 해석될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 해석 단계는, 상기 참조 블록의 화면 내 예측 모드가 상기 현재 블록에 대해 가용한 화면 내 예측 모드 중에 포함되지 않을 때, 상기 참조 블록의 화면 내 예측 모드는 가용하지 않은 것으로 판단되고, 상기 참조 블록의 화면 내 예측 모드는 상기 참조 블록의 화면 내 예측 모드에 180도 대칭되는 모드와 동일한 방향성을 갖는 상기 현재 블록의 화면 내 예측 모드로 해석될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 가용성 판단 단계 및 상기 해석 단계는, 상기 참조 블록의 모든 화면 내 예측 모드가 해석될 때까지 반복될 수 있다.
본 개시에 따른 복호화 방법에 있어서, 상기 참조 블록의 영상 정보를 변환하는 단계는, 룩업 테이블을 참조하여 수행되고, 상기 룩업 테이블은 상기 제1 퍼스펙티브 영상에 대해 가용한 화면 내 예측 모드 및 상기 제2 퍼스펙티브 영상에 대해 가용한 화면 내 예측 모드의 관계를 나타내는 테이블일 수 있다.
본 개시에 따른, 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 장치는, 복호화 대상인 제1 퍼스펙티브 영상에 포함된 현재 블록이 참조하는 참조 블록이 상기 제1 퍼스펙티브 영상에 인접한 제2 퍼스펙티브 영상에 포함될 때, 상기 참조 블록의 영상 정보를 변환하고, 상기 변환된 영상 정보에 기초하여 상기 현재 블록을 복호화하도록 구성될 수 있다.
본 개시에 따른, 컴퓨터 판독 가능한 기록 매체는, 본 개시에 따른 영상의 부호화 방법 및/또는 장치에 의해 생성된 비트스트림을 저장할 수 있다.
본 개시에 따르면, 영상의 부/복호화 효율을 향상시키는 방법 및 장치를 제공할 수 있다.
또한, 본 개시에 따르면, 가상 현실 영상의 부/복호화 효율을 향상시키는 방법 및 장치를 제공할 수 있다.
또한, 본 개시에 따르면, 가상 현실 영상의 부/복호화를 병렬 처리하는 방법 및 장치를 제공할 수 있다.
또한, 본 개시에 따르면, 다면체 360도 VR 영상과 같이, 복수의 퍼스펙티브(perspective)를 가진 영상의 부/복호화 속도를 향상시키는 방법 및 장치를 제공할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 360도 비디오를 촬영하기 위한 다양한 종류의 카메라를 예시한 도면이다.
도 2는 360도 비디오를 3차원 공간상에 투영시킨 영상을 예시적으로 도시한 도면이다.
도 3은 본 개시에 따른 영상 부호화 장치의 구조를 예시한 도면이다.
도 4는 본 개시에 따른 영상 복호화 장치의 구조를 예시한 도면이다.
도 5는 다이버전트 카메라 영상 및 컨버전트 카메라 영상을 예시적으로 설명하기 위한 도면이다.
도 6은 영상의 분할을 설명하기 위한 예시도이다.
도 7은 영상 내에서 WPP 처리 순서를 설명하기 위한 도면이다.
도 8은 타일 기반 병렬 처리를 설명하기 위한 도면이다.
도 9는 360도 전방향 비디오를 부/복호화하기 위한 전개도를 예시한 도면이다.
도 10은 360도 전방향 영상을 정육면체에 투영한 경우의 전개도를 설명하기 위한 도면이다.
도 11은 정육면체에 투영되는 전방향 영상을 2차원으로 전개하기 위한 다양한 방식을 설명하기 위한 도면이다.
도 12는 인접한 퍼스펙티브에 속하는 CTU 사이의 의존성을 설명하기 위한 예시도이다.
도 13은 전개 방식에 따른 부/복호화 종료 시점을 설명하기 위한 도면이다.
도 14는 전개도에 따른 영상 처리 시간의 차이를 설명하기 위한 도면이다.
도 15는본 개시에 따른 영상 병렬 처리를 설명하기 위한 개념도이다.
도 16은 본 개시에 따른 영상 병렬 처리를 설명하기 위한 흐름도이다.
도 17은 정육면체 상에서의 전방향 영상의 처리 순서를 예시한 도면이다.
도 18은 도 17의 전방향 영상을 전개한 전개도를 예시한 도면이다.
도 19는 정육면체 전개도 형태의 360도 VR 영상의 일 예이다.
도 20은 도 19의 비디오를 병렬적으로 부/복호화하는 단계(스텝 1)를 설명하기 위한 도면이다.
도 21은 도 19의 비디오를 병렬적으로 부/복호화하는 단계(스텝 2)를 설명하기 위한 도면이다.
도 22는 도 19의 비디오를 병렬적으로 부/복호화하는 단계(스텝 3)를 설명하기 위한 도면이다.
도 23은 퍼스펙티브의 부/복호화 방향을 설명하기 위한 예시도이다.
도 24는 정육면체 전방향 영상에 있어서, 이웃하지 않는 두 개의 퍼스펙티브에 대한 부/복호화 순서를 설명하기 위한 도면이다.
도 25는 정육면체 전방향 영상에 있어서, 마주보는 두 개의 퍼스펙티브의 부/복호화 순서를 설명하기 위한 도면이다.
도 26은 도 25의 (a) 및 (b)에 따른 차이를 설명하기 위한 도면이다.
도 27은 도 25의 (b)에 따른 부/복호화를 설명하기 위한 도면이다.
도 28은 둘 이상의 퍼스펙티브를 참조할 수 있는 퍼스펙티브의 부/복호화를 설명하기 위한 도면이다.
도 29는 하나의 퍼스펙티브를 두 개의 영역으로 분할하고, 각각의 영역을 부/복호화하는 방법을 설명하기 위한 도면이다.
도 30은 둘 이상의 퍼스펙티브를 참조하는 경우의 부/복호화 처리 순서를 설명하기 위한 도면이다.
도 31은 정육면체 전방향 영상의 부/복호화 순서를 설명하기 위한 예시도이다.
도 32는 본 개시에 따른 부호화 장치의 구성을 예시한 도면이다.
도 33은 본 개시에 따른 복호화 장치의 구성을 예시한 도면이다.
도 34는 퍼스펙티브의 처리 순서를 변환하는 방법을 설명하기 위한 예시도이다.
도 35는 33가지 공간적 예측 모드를 예시한 도면이다.
도 36은 이웃 퍼스펙티브의 예측 모드를 참조한 현재 퍼스펙티브의 공간적 예측을 설명하기 위한 예시도이다.
도 37은 현재 블록과 참조 블록의 예측 모드의 차이를 설명하기 위한 도면이다.
도 38은 참조 블록의 방향성 예측 모드의 해석 방법을 설명하기 위한 도면이다.
도 39는 퍼스펙티브의 전개 방식에 따른 방향성 예측 모드의 8 가지 경우를 예시한 도면이다.
도 40은 정육면체 전방향 영상의 공간적 예측에 사용되는 참조 샘플의 위치를 설명하기 위한 도면이다.
도 41은 정육면체 전방향 영상을 전개도상에의 연속성을 활용하여 병렬 처리하는 방법을 설명하기 위한 도면이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 제1, 제2 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용되며, 특별히 언급되지 않는 한 구성요소들간의 순서 또는 중요도 등을 한정하지 않는다. 따라서, 본 개시의 범위 내에서 일 실시 예에서의 제1 구성요소는 다른 실시 예에서 제2 구성요소라고 칭할 수도 있고, 마찬가지로 일 실시 예에서의 제2 구성요소를 다른 실시 예에서 제1 구성요소라고 칭할 수도 있다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.
본 개시는 영상의 병렬 처리에 관한 것이다. 구체적으로, 본 개시는 다양한 시점을 가진 영상을 병렬적으로 부/복호화함으로써 처리 속도를 높이는 장치에 관한 것이다. 다양한 시점을 가진 영상은 예컨대, 360도 동영상, 전방향 비디오, 다면체 360도 VR 영상 등일 수 있다. 본 개시에 따른 영상의 부/복호화에 있어서, 영상 내 또는 영상 간의 여러 방향으로의 참조가 가능하다는 점이 이용될 수 있다. 본 개시에서, 퍼스펙티브(perspective, 또는 시점)란 비디오를 촬영하는 카메라의 위치 또는 카메라의 방향을 의미할 수 있다.
기존의 2D 비디오는 고정된 시점을 갖는다. 그러나, 전방향 비디오 또는 360도 비디오는 사용자가 원하는 시점으로 볼 수 있는 비디오를 의미한다. 전방향 비디오 또는 360도 비디오는 여러 대의 카메라, 어안 렌즈 또는 반사경을 이용하여 한 지점으로부터 360도의 모든 방향을 촬영한 뒤 3차원 공간상의 다면체 또는 구에 투영시킴으로써 획득될 수 있다. 전방향 비디오 또는 360도 비디오는 전체 영역 중 사용자가 바라보는 시점에 대응하는 영역만 재생될 수 있다.
도 1은 360도 비디오를 촬영하기 위한 다양한 종류의 카메라를 예시한 도면이다.
도 1의 (a)는 여러 대의 카메라를 예시한 것이고, 도 1의 (b)는 어안 렌즈를 예시한 것이다. 도 1의 (c)는 반사경을 예시한 것이다.
도 2는 360도 비디오를 3차원 공간상에 투영시킨 영상을 예시적으로 도시한 도면이다.
도 2의 (a)는 360도 영상을 3차원 공간의 다면체에 투영시킨 예를 나타낸다. 도 2의 (b)는 360도 영상을 3차원 공간의 구에 투영시킨 예를 나타낸다. 도 2의 예에서, 음영으로 표시된 부분은 360도 영상 중 재생되는 위치를 가리킨다. 즉, 도 2의 음영 부분은 사용자가 바라보는 시점에 대응하는 영역일 수 있다.
전방향 비디오(360도 비디오)를 압축 부호화하기 위해, 2D 비디오를 압축 부호화하기 위한 방법 및 장치가 사용될 수 있다.
도 3 및 4는 본 개시에 따른 영상 부호화 장치 및 복호화 장치의 구조를 예시한 도면이다.
도 3의 영상 부호화 장치는 입력 영상을 수신하여 부호화함으로써 비트스트림을 생성할 수 있다. 영상 부호화 장치는 복원 픽쳐 버퍼(301), 화면 간 예측부(302), 화면 내 예측부(303), 스위치(304), 감산기(305), 변환부(306), 양자화부(307), 부호화부(308), 역양자화부(309), 역변환부(310) 및/또는 가산기(311)를 포함할 수 있다.
입력 영상은 블록 단위로 부호화될 수 있다. 현재 블록은 이미 부/복호화된 영상에 기초하여 화면 내 예측 또는 화면 간 예측될 수 있다.
현재 블록이 화면 내 예측되는 경우, 스위치(304)는 화면 내 예측부(303)로 전환될 수 있다. 화면 내 예측부(303)는 현재 픽쳐 내의 이미 부/복호화된 영역을 참조하여 현재 블록을 예측할 수 있다. 현재 블록이 화면 간 예측되는 경우, 스위치(304)는 화면 간 예측부(302)로 전환될 수 있다. 화면 간 예측부(302)는 이미 부/복호화되어 복원 픽쳐 버퍼(301)에 저장된 적어도 하나의 픽쳐를 참조하여 현재 블록을 예측할 수 있다.
화면 내 예측 또는 화면 간 예측에 의해 생성된 현재 블록의 예측 블록은 감산기(305)로 전송될 수 있다. 감산기(305)는 현재 블록과 현재 블록의 예측 블록 간의 차분 블록을 생성할 수 있다. 생성된 차분 블록에 대해 변환부(306)에서의 변환 및/또는 양자화부(307)에서의 양자화가 수행될 수 있다. 변환 및/또는 양자화를 거친 차분 계수(residual coefficient)는 부호화부(308)에서 부호화될 수 있다. 부호화부(308)는 예컨대, 심볼의 발생 확률에 기초한 엔트로피 부호화를 수행할 수 있다.
변환 및/또는 양자화된 차분 블록에 대해 역양자화부(309)에서의 역양자화 및/또는 역변환부(310)에서의 역변환이 수행될 수 있다. 역양자화 및/또는 역변환된 차분 블록은 가산기(311)로 전송될 수 있다. 가산기(311)는 전송받은 차분 블록을 현재 블록의 예측 블록과 가산하여 현재 블록을 복원할 수 있다. 복원된 블록을 포함하는 복원 픽쳐는 복원 픽쳐 버퍼(301)에 저장될 수 있다.
도 4의 영상 복호화 장치는 비트스트림을 수신하여 복호화함으로써 복원 영상을 생성할 수 있다. 영상 복호화 장치는 복호화부(401), 역양자화부(402), 역변환부(403), 가산기(404), 화면 간 예측부(405), 화면 내 예측부(406), 스위치(407) 및/또는 복원 픽쳐 버퍼(408)를 포함할 수 있다.
복호화부(401)는 비트스트림을 복호화하여 현재 블록의 차분 블록을 생성할 수 있다. 복호화부(401)는 예컨대, 심볼의 발생 확률에 기초한 엔트로피 복호화를 수행할 수 있다. 차분 블록은 변환 및/또는 양자화된 차분 계수를 포함할 수 있다.
변환 및/또는 양자화된 차분 계수를 포함하는 차분 블록에 대해 역양자화부(402)에서의 역양자화 및/또는 역변환부(403)에서의 역변환이 수행될 수 있다. 역양자화 및/또는 역변환된 차분 블록은 가산기(404)로 전송될 수 있다. 가산기(404)는 전송받은 차분 블록을 현재 블록의 예측 블록과 가산하여 현재 블록을 복원할 수 있다. 복원된 블록을 포함하는 복원 픽쳐는 복원 픽쳐 버퍼(408)에 저장될 수 있다.
가산기(404)로 입력되는 현재 블록의 예측 블록은 이미 복호화된 영상에 기초하여 생성될 수 있다. 현재 블록이 화면 내 예측되는 경우, 스위치(407)는 화면 내 예측부(406)로 전환될 수 있다. 화면 내 예측부(406)는 현재 픽쳐 내의 이미 부/복호화된 영역을 참조하여 현재 블록을 예측할 수 있다. 현재 블록이 화면 간 예측되는 경우, 스위치(407)는 화면 간 예측부(405)로 전환될 수 있다. 화면 간 예측부(405)는 이미 부/복호화되어 복원 픽쳐 버퍼(408)에 저장된 적어도 하나의 픽쳐를 참조하여 현재 블록을 예측할 수 있다.
본 개시에 따른 부/복호화 방법은 전방향(360도) 비디오 외에도 실감 미디어 영상에 적용될 수 있다. 실감 미디어 영상은 다이버전트(Divergent) 카메라 영상, 컨버전트(Convergent) 카메라 영상 등을 포함할 수 있다.
도 5는 다이버전트 카메라 영상 및 컨버전트 카메라 영상을 예시적으로 설명하기 위한 도면이다.
다이버전트 카메라 영상은 여러 대의 카메라(C1, C2, C3)를 이용하여 획득한 다양한 방향의 영상(W1, W2, W3)을 포함할 수 있다. 컨버전트 카메라 영상은 여러 대의 카메라(C1 내지 C4)를 이용하여 획득한 특정 방향의 영상(W, W2, W3, W4)을 포함할 수 있다.
동영상 부호화 장치는 정지 영상 또는 동영상을 압축할 수 있다. 동영상 부호화 장치는 영상 전체를 하나의 처리 단위로 압축하는 프레임(Frame) 기반 압축 또는 영상을 특정 블록 단위로 나누어서 처리하는 블록(Block) 기반 압축 등을 수행할 수 있다. 프레임 기반 압축을 수행하는 영상 부/복호화 장치는 예측 기술을 적용하기 어렵고, 많은 메모리와 계산량을 요구하는 문제점이 있다. 따라서, 대부분의 영상 부/복호화 장치들은 블록 기반 압축을 수행하고 있다.
블록 기반 압축은 예컨대, 영상을 큰 블록 단위인 부호화 트리 유닛(Coding Tree Unit, CTU)으로 분할하여 수행할 될 수 있다. CTU들은 순차 주사 순서로 부/복호화될 수 있다. 순차 주사 순서는 래스터 스캔 순서 또는 Z 스캔 순서일 수 있다. 예컨대, CTU는 보다 작은 블록 단위인 코딩 유닛(Coding Unit, CU)로 분할된 후 부/복호화될 수 있다. 이러한 방식은 영상의 특성에 따라 블록의 크기를 보다 정밀하게 조정할 수 있으므로, 압축 효율면에서 유리하다.
도 6은 영상의 분할을 설명하기 위한 예시도이다.
도 6의 (a)는 한 영상을 CTU 단위로 나눈 모습을 나타낸다. 도 6의 (a)를 참조하면, 각각의 CTU는 순차 주사 순서에 따라, CTU A에서 CTU K의 순서로 부/복호화될 수 있다.
블록 기반 동영상 압축 장치는 영상 내의 이웃 블록 간 상관도를 이용하여 중복되는 정보를 없앰으로써, 전송할 정보의 양을 줄여, 압축 효율을 높일 수 있다. 도 6의 (a)를 참조하면, CTU F의 부/복호화가 시작되는 시점에서는 이웃 CTU인 B, C, D, E의 부/복호화가 완료되어 있다. 따라서 이웃 CTU의 정보들을 이용하여 CTU F의 압축 효율을 높일 수 있다. 이는 CTU F를 복호화하기 위해서는 CTU B, C, D, E의 복호화가 완료되어 있어야함을 의미할 수도 있다.
도 6의 (b)는 CTU를 재귀적으로 분할하는 예를 나타낸다. 전술한 바와 같이, CTU는 복수의 CU들로 분할될 수 있고, 이 때, 재귀적인 분할이 적용될 수 있다. 재귀적인 분할을 위해 예컨대, 쿼드 트리 분할이 이용될 수 있다. 도 6의 (b)에 도시된 예에서와 같이, CTU F는 4개의 CU로 분할될 수 있다. 이 때, CTU F의 분할 여부를 지시하는 분할 플래그는 1일 수 있다. 분할된 각 CU는 Z 스캔 순서로 부/복호화될 수 있다. 또한, 각 CU는 다시 4개의 CU로 분할될 수 있다. 또는 각 CU는 해당 깊이에서 분할이 중단될 수 있다. 각 CU의 분할 플래그는 해당 CU의 분할 여부를 나타낼 수 있다. 이와 같은, 재귀적 분할은 분할 플래그 값 또는 영상에서 명시된 분할 허용 최대 깊이에 이르러 중단될 수 있다. 도 6의 (b)에 도시된 바와 같이, CTU F는 4개의 CU로 분할되고 Z스캔 순으로 첫번째, 두번째 및 세번째 CU는 분할되지 않을 수 있다. 또한, 4번째 CU F1은 다시 4개의 CU로 분할될 수 있다. CU F1을 분할하여 생성된 4개의 CU 중 Z스캔 순서로 첫번째, 두번째 및 세번째 CU는 분할되지 않을 수 있다. 또한, 네번째 CU F2는 다시 4개의 CU로 분할될 수 있다. 도 6의 (b)에 예시된 분할 구조를 통해 영상 안에서 예측 블록의 크기를 조정할 수 있게 되어 예측의 효율을 향상시킬 수 있다.
영상의 부/복호화 속도를 향상시키기 위해 WPP(Wavefront Parallel Processing) 및/또는 타일(Tile) 기반 부/복호화가 이용될 수 있다. Wavefront 기술은 픽셀 정보에 대한 의존성이 해결될 경우 병렬 처리를 시작하는 기술이다. 도 6의 (a)를 참조하면, CTU D는 상단 행의 CTU인 B의 부/복호화가 완료되면 픽셀 정보 대한 의존성이 해결될 수 있다. 따라서, CTU B의 정보를 이용한 예측 알고리즘을 적용할 수 있다. 마찬가지로 CTU H는 상단 행의 CTU E의 부/복호화가 완료되면 픽셀 정보에 대한 의존성이 해결될 수 있다. 따라서, CTU E의 정보를 이용한 예측 알고리즘을 적용할 수 있다. 하지만 픽셀 정보 의존성을 고려하여 영상을 병렬적으로 부/복호화 하더라도 엔트로피 코딩은 병렬적으로 진행하지 못하고 순차 주사 순서로 실행이 된다. 따라서, 엔트로피 코딩이 부/복호화시 병렬 처리의 병목 지점이 되고 있다. 이러한 문제점은 WPP의 적용에 의해 해결될 수 있다. WPP는 추가적으로 엔트로피 코딩에 대해서도 병렬적인 부/복호화를 지원할 수 있다. 이를 위하여 각 CTU의 행 단위로 서브 비트스트림을 생성하고 해당 서브 비트스트림들의 위치를 슬라이스 헤더에 전송해 줌으로써 각 서브 비트스트림에 대해서 병렬적인 엔트로피 코딩을 가능하게 해준다. 즉 WPP를 통해 각 행마다 엔트로피 코딩을 독립적으로 사용할 수 있다.
WPP에서는 엔트로피 코딩의 부호화 효율 저하를 최소화하는 동시에 병렬 부/복호화를 지원하기 위해, 하단 행은 상단 행의 2번째 블록이 완성될 시점에서 엔트로피 문맥 모델을 획득하고 부/복호화를 시작한다. 현재 블록과 이웃 블록은 상관도가 높다. 따라서, 각 행에서 완전히 초기화된 문맥 모델을 사용하는 것보다 업데이트된 문맥 정보를 이웃 블록으로부터 획득하여, 현재 행의 문맥 모델을 초기화하는 것이 부/복호화기의 압축 효율을 높이는데 더 유리하다.
도 7은 영상 내에서 WPP 처리 순서를 설명하기 위한 도면이다.
도 7의 영상내 블록은 CTU를 의미한다. 블록 내 숫자는 각 CTU의 처리 순서를 의미한다. 도 7의 화살표는 상단 행의 문맥 정보를 획득하여 현재 행의 문맥 모델을 초기화는 것을 나타낸다.
도 7에 있어서, 음영처리된 CTU는 부호화 및/또는 복호화가 완료된 CTU를 나타낸다. 또한, 음영처리되지 않은 CTU는 아직 부호화 및/또는 복호화가 시작되지 않은 CTU를 나타낸다.
도 8은 타일 기반 병렬 처리를 설명하기 위한 도면이다.
도 8에 도시된 바와 같이, 한 픽쳐는 직사각형 모양을 갖는 여러 개의 타일(예컨대, 6개의 타일)로 분할될 수 있다. 각각의 타일은 서로 독립적인 영역으로 부/복호화될 수 있다. 각각의 타일에 포함된 CTU 들은 순차 주사 순서대로 부/복호화가 수행될 수 있다. 즉, 타일 기반 병렬 처리의 경우, 타일의 경계에 위치하는 블록들은 이웃하는 타일에 속하는 블록의 픽셀 값이나 움직임 벡터와 같은 정보를 사용하지 않고 부호화 또는 복호화될 수 있다. 따라서, 타일을 이용할 경우, 슬라이스의 경우와 유사하게, 각 타일 영역을 동시에 인코딩하거나 디코딩할 수 있다.
타일 분할 정보는 예컨대, 픽쳐 파라미터 셋(Picture Parameter Set, PPS)을 통해 시그널링될 수 있다. 타일 분할 정보는 각 타일의 시작점에 관한 정보를 포함할 수 있다. 또는 타일 분할 정보는 픽쳐를 분할하는 하나 이상의 수직 경계선 및/또는 하나 이상의 수평 경계선에 관한 정보를 포함할 수 있다. 또는 타일 분할 정보는 픽쳐를 균등한 크기의 타일로 분할할 지에 관한 정보를 포함할 수 있다.
도 9는 360도 전방향 비디오를 부/복호화하기 위한 전개도를 예시한 도면이다.
360도 전방향 비디오의 영상은 도 9에 도시된 바와 같이, 다면체의 전개도, 또는 구를 펼친 등장방형(Equirectangular) 형태로 투영되어 처리될 수 있다. 영상을 재생할 때는 해당 영상이 다면체, 또는 구에 투영되고 사용자는 다면체 또는 구의 중심에서 영상을 시청하는 형태로 재생될 수 있다. 예컨대, 도 2에 도시된 바와 같이, 사용자의 시점은 다면체 또는 구의 중심에 있는 것으로 가정할 수 있다.
도 10은 360도 전방향 영상을 정육면체에 투영한 경우의 전개도를 설명하기 위한 도면이다.
도 10에 도시된 예에서와 같이, 360도 전방향 영상이 정육면체에 투영될 경우, 영상의 정보는 6개의 면 P1, P2, P3, P4, P5 및 P6 별로 저장될 수 있다. 또한, 영상이 재생이 될 때는 도 10의 (a)에 도시된 예에서와 같이, 6개 면의 각각의 영상을 3차원 공간의 정육면체에 투영시켜 재생할 수 있다. 여기서 시청자의 위치는 정육면체의 중심에 있으며, 각 면들은 눈이 바라보는 시점의 위치 및/또는 방향(퍼스펙티브, Perspective)이 될 수 있다. 예를 들어, 도 10에 도시된 예에서, 퍼스펙티브 P4가 정육면체의 정면, 퍼스펙티브 P1이 정육면체의 위쪽이라고 한다면 퍼스펙티브 P2는 정육면체의 뒤쪽, 퍼스펙티브 P3는 정육면체의 왼쪽, 퍼스펙티브 P5는 정육면체의 오른쪽, 퍼스펙티브 P6는 정육면체의 아래쪽에 해당될 수 있다.
다면체에 투영되는 전방향 영상은 다면체를 어떻게 전개하느냐에 따라 다양한 전개도로 표현될 수 있다. 도 11은 정육면체에 투영되는 전방향 영상을 2차원으로 전개하기 위한 다양한 방식을 설명하기 위한 도면이다.
예컨대, 도 11에 도시된 예에서와 같이, 11가지 전개 방식이 존재할 수 있다. 또는 도 11에 도시된 전개도를 상/하/좌/우로 대칭시켜 얻어진 전개도를 다른 형태의 전개도로 취급할 수도 있다.
각 퍼스펙티브를 독립적으로 부/복호화하는 경우, 도 11에 도시된 전개도는 영상이 어디에 위치하는지에 대한 정보 이외에 별다른 의미가 없을 수 있다. 하지만, 퍼스펙티브간 영상 정보의 연속성을 이용하여 순차 주사 순으로 부/복호화를 처리하게 되면 전개도의 형태에 따라 부/복호화 속도에 차이가 발생할 수 있다.
이하에서, 전개도에 따른 부/복호화 속도의 차이에 대해 상세히 설명한다.
도 12는 인접한 퍼스펙티브에 속하는 CTU 사이의 의존성을 설명하기 위한 예시도이다. 도 12에서, A, B, C, D, E, F의 각각은 전개도 상에 전개되는 퍼스펙티브들의 위치를 나타내고 굵은 선은 퍼스펙티브간의 경계를 나타낸다. 각 퍼스펙티브 내부의 작은 사각형은 영상 처리의 단위가 되는 블록(예컨대, CTU)를 나타낸다.
WPP 병렬 처리를 통해서 해당 영상을 부/복호화 할 경우, 퍼스펙티브 E의 CTU e1은 퍼스펙티브 B의 CTU b1 및 퍼스펙티브 D의 CTU d2에 대해 의존성을 갖는다. 따라서, 퍼스펙티브 B의 CTU b1 및 퍼스펙티브 D의 CTU d2의 부/복호화가 완료되어야 퍼스펙티브 E의 CTU e1의 부/복호화가 가능해진다. 마찬가지 이유로 퍼스펙티브 C의 CTU c1 및 퍼스펙티브 E의 CTU e2의 부/복호화가 완료되어야 퍼스펙티브 F의 CTU f1의 부/복호화가 가능하진다.
전방향 영상의 경우 전개도에 따라서 영상의 특정 위치에 정보가 존재하지 않을 수 있다. 예를 들어, 전개도에 따라 도 12에 도시된 퍼스펙티브 D의 영상 존재하지 않을 수 있다. 하지만 기존 WPP 병렬 처리 방식으로는 퍼스펙티브 D의 영상이 존재하지 않더라도 퍼스펙티브 E의 부/복호화는 퍼스펙티브 B의 CTU b1의 부/복호화가 완료된 후 시작될 수 있다. 따라서, 전체 영상의 부/복호화 처리 시간은 퍼스펙티브 D의 영상가 존재할 때와 차이가 없다. 하지만, 전개도 상으로 퍼스펙티브 F의 영상이 없을 경우 퍼스펙티브 E의 영상의 부/복호화 처리가 끝나면 전체 영상의 부/복호화가 완료될 수 있다.
도 13은 전개 방식에 따른 부/복호화 종료 시점을 설명하기 위한 도면이다.
도 13의 (a)는 부/복호화 순서상 마지막 퍼스펙티브가 도 12의 D 위치에 있는 경우를 도시한 도면이다. 도 13의 (b)는 마지막 퍼스펙티브가 도 12의 E 위치에 있는 경우를 도시한 도면이다. 도 13의 (a) 및 (b)에 있어서, 굵은 선은 퍼스펙티브 사이의 경계를 나타낸다. 또한, 각 퍼스펙티브 내의 작은 사각형은 CTU를 나타낸다. 또한, 각 CTU 내부의 숫자는 해당 CTU의 부/복호화 순서를 나타낸다.
각 CTU의 부/복호화 처리 시간이 동일하다고 가정할 때, 도 13의 (a)의 경우 23번째 CTU를 처리할 때 전체 영상의 부/복호화가 완료됨을 알 수 있다. 또한, 도 13의 (b) 경우 28번째 CTU를 처리할 때 전체 영상의 부/복호화가 완료됨을 확인할 수 있다. 전술한 바와 같이, 좌상단에서 우하단의 순서로 부/복호화를 수행하는 WPP 방식을 이용하면, 영상에 포함된 퍼스펙티브의 개수가 동일하더라도 전체 영상의 부/복호화가 완료되는 시점이 다름을 알 수 있다. 즉, 퍼스펙티브의 위치(또는 전개 방식)가 부/복호화 처리 속도에 영향을 줄 수 있다.
WPP를 이용한 부/복호화 처리 순서는 영상 정보 의존성에 의해 결정될 수 있다. 즉, CTU의 처리는 위쪽 행의 2개의 CTU가 처리되어야 시작될 수 있다. 각 CTU의 부/복호화 처리 시간이 동일하다고 가정하면, 위와 같은 의존성으로 인해 행(row)당 지연은 2개의 CTU를 처리하는 시간이 된다. 또한, CTU의 처리는 좌측에 인접한 1개의 CTU가 처리되어야 시작될 수 있으므로, 열(column)당 지연은 1개의 CTU를 처리하는 시간이 된다.
도 14는 전개도에 따른 영상 처리 시간의 차이를 설명하기 위한 도면이다.
도 14의 (a)를 참조하면, 각 시점(퍼스펙티브)은 5×5개의 CTU를 가진다. 마지막 시점은 4번째 행 3번째 열에 위치하고, 마지막 CTU는 20번째 행, 15번째 열에 위치한다. 전술한 바와 같이, 행당 2개의 CTU, 열 당 1개의 CTU 지연이 발생한다. 따라서, 마지막 CTU는 (2 × 20(행) - 1) + (1 × 15(열) - 1)번째에 처리된다. 결국, 도 14의 (a)에서, 마지막 CTU는 53번째에 완료됨을 확인할 수 있다. 따라서, 1개의 CTU의 처리 시간을 t(CTU)라고 하면, 도 14의 (a)의 전개도에 따른 전체 영상의 처리에 소요되는 시간은 53*t(CTU)가 된다.
도 14의 (b)는 시점당 5×5개의 CTU를 가진 전방향 영상의 또 다른 전개도를 예시한 도면이다. 도 14의 (b)를 참조하면, 전개도의 오른쪽 하단에 위치한 CTU는 15번째 행, 5번째 열 및 10번째 행, 20번째 열의 2군데에 존재한다. 각각의 경우에 대해서 처리 시간을 계산해보면 15번째 행, 5번째 열의 CTU는 (2 × 15(행) - 1) + (1 × 5(열) -1) = 33번째에 처리된다. 10번째 행, 20번째 열의 CTU는 (2 × 10(행) - 1) + (1 × 20(열) -1) = 38번째에 처리된다. 따라서, 전체 영상의 처리에 소요되는 시간은 38*t(CTU)가 된다. 전술한 바와 같이, 같은 크기의 정육면체의 전개도지만 어떻게 전개되느냐에 따라서 WPP의 처리 속도에 차이가 있음을 알 수 있다.
인접한 CTU 사이의 의존성에 의해 발생하는 처리 시간의 지연은, 타일 기반 기술을 적용하여 완화시킬 수 있다. 즉, 각각의 면(즉, 서로 다른 퍼스펙티브를 갖는 영역)을 독립적 타일로 취급하여 병렬적으로 부/복호화하는 것이다. 각 퍼스펙티브를 독립적 타일로 병렬 처리하는 경우, 전체 영상의 처리 시간은 하나의 퍼스펙티브를 처리하는 시간(예컨대, 도 14의 예에서는 25*t(CTU))으로 단축될 수 있다. 타일 기반의 병렬 부/복호화는 사용자가 일정 거리를 두고 시청하게 되는 영상에 유용하게 적용될 수 있다. 하지만, 360도 VR 영상과 같은 실감형 영상의 경우, 사용자는 영상의 일부를 매우 근접한 위치에서 시청할 수 있으므로, 기존 영상들 보다 훨씬 큰 해상도를 가져야 한다. 특히, 360도 VR 영상의 경우, 몰입도가 매우 중요하므로, 영상 재생시 픽셀이 보이지 않을 정도의 고화질이 요구된다.
타일 기반 기술을 사용하면, 각 타일이 독립적으로 처리되므로, 예측에 활용할 수 있는 참조 영역이 줄어들고, 압축 효율이 낮아지게 된다. 따라서, 압축 효율이 크게 요구되는 360도 전방향 영상에는 타일 기반 기술을 그대로 적용하는 것이 적합하지 않을 수 있다.
따라서, 360도 VR 영상의 병렬 처리를 위해서는 퍼스펙티브간의 의존성을 이용한 부/복호화가 중요하다. 도 13 및 도 14를 참조하여, 360도 VR 영상의 처리를 위해 다양한 전개 방식이 적용될 수 있고, 각 전개도상에서 인접한 퍼스펙티브간 의존성을 이용하여 병렬 처리를 수행할 수 있음을 설명하였다. 그러나, 전개도상에서의 퍼스펙티브간 연속성만을 고려하게 되면, 전체 영상 처리 시간을 단축하는 것은 한계가 있다. 예컨대, 360도 VR 영상의 전개도는 도 10에 도시된 바와 같이, 3차원으로 연결된 퍼스펙티브들을 펴서 만들어진 것이다. 따라서, 다면체상에서는 퍼스펙티브의 변의 개수만큼 인접한 퍼스펙티브가 존재한다. 즉, 전개도 상에서 이용할 수 있는 인접 퍼스펙티브의 수보다 다면체 상에서 이용할 수 있는 인접 퍼스펙티브의 수가 더 많다.
이하에서는 360도 VR 영상의 특성을 고려한, 영상의 병렬 부/복호화 방법 및 장치를 설명한다. 구체적으로, 본 개시에 따르면, 360도 비디오(전방향 비디오)와 같은 복수의 퍼스펙티브를 가진 영상에서 각 퍼스펙티브간의 연속성이 하나 이상 존재함을 이용하여 부/복호화의 병렬적 처리를 보다 효율적으로 처리할 수 있다.
도 10의 (a)에 도시된 예에서와 같이, 360도 전방향 영상은 정육면체와 같은 여러 퍼스펙티브를 가진 다면체의 전개도에 저장이 된다. 전개도상에서는, 도 10의 (c)에 도시된 예에서와 같이, 퍼스펙티브 P1은하나의 퍼스펙티브와 인접하고 있다. 그러나, 실제로는 도 10의 (a)에 도시된 예에서와 같이, 각 퍼스펙티브는 좌우상하 방향으로 네 개의 퍼스펙티브와 인접하고 있다. 이는 기존의 왼쪽 상단에서 오른쪽 하단의 순차 주사 방향과 다른 방향으로 영상 정보의 부/복호화가 진행될 수 있음을 의미한다. 또한, 3차원 공간상에서 이웃하지 않는 퍼스펙티브간에는 영상간 연속성이 없기 때문에 의존성이 존재하지 않는다. 즉, 이웃하지 않는 퍼스펙티브들은 서로 참조하지 않기 때문에, 병렬적으로 부/복호화를 진행해도 예측 효율이 떨어지지 않는다. 연속되는 퍼스펙티브가 여러 방향으로 존재하여 부/복호화 방향이 여러 방향으로 가능하다는 점과, 영상간 연관성이 서로 없는 퍼스펙티브가 하나 이상 존재한다는 특성을 활용하여 부/복호화 병렬 처리를 진행함으로써, 압축 효율의 손실을 최소화 하면서 처리 속도를 높일 수 있다.
도 15는본 개시에 따른 영상 병렬 처리를 설명하기 위한 개념도이다.
도 16은 본 개시에 따른 영상 병렬 처리를 설명하기 위한 흐름도이다.
도 17은 정육면체 상에서의 전방향 영상의 처리 순서를 예시한 도면이다.
도 18은 도 17의 전방향 영상을 전개한 전개도를 예시한 도면이다.
도 15, 도 17 및 도 18에서 같은 알파벳이 기재된 면들은 서로 참조하지 않는 시점들을 의미한다. 예를 들어 A와 A'는 서로 참조하지 않는 시점들을 나타낸다. B와 B'는 A, A' 시점을 제외한 나머지 시점들 중 서로 참조하지 않는 시점들을 나타낸다. C, C'는 위의 시점들을 제외한 시점들 중 서로 참조하지 않는 시점들을 나타낸다. 서로 참조하지 않는 시점들은 병렬적으로 부/복호화될 수 있다.
도 15에서, 시점과 시점을 연결하는 화살표는 시점간 참조 관계를 나타낸다. 예를 들어 시점 A와 시점 B를 연결한 화살표는 시점 B의 부/복호화시 시점 A를 참조한다는 것을 의미한다. 스레드의 개수는 병렬적으로 부/복호화할 수 있는 시점의 개수에 의해 결정될 수 있다. 예를 들어 병렬적으로 부/복호화할 수 있는 시점의 개수가 N개라면 N개 이상의 스레드가 사용될 수 있다.
도 15를 참조하여, 본 개시에 따른 부/복호화 방법을 설명한다. 도 15의 (a)를 참조하면, 먼저 시점 A 및 시점 A와 동시에 부/복호화할 수 있는 하나 이상의 시점들을 병렬로 부/복호화할 수 있다. 예컨대, 시점 A와 시점 A'는 연속성이 없으므로, 병렬 처리될 수 있다. 도 15의 (b)를 참조하면, 도 15의 (a)에서 처리되는 시점들(A, A')의 일부 또는 전부가 부/복호화된 후, 이 시점들(A. A')을 참조하는 시점 B 및 시점 B와 동시에 부/복호화할 수 있는 하나 이상의 시점들을 병렬로 부/복호화할 수 있다. 예컨대, 시점 B와 시점 B'는 연속성이 없으므로, 병렬 처리될 수 있다. 도 15의 (c)를 참조하면, 같은 방식으로 시점 C 및 시점 C와 동시에 부/복호화할 수 있는 하나 이상의 시점들을 병렬로 부/복호화할 수 있다. 이와 같은 방식으로 나머지 시점들도 병렬로 부/복호화가 가능한 시점들끼리 묶어 부/복호화할 수 있다.
도 15를 참조하여 설명한 방법은 도 16의 흐름도로 나타낼 수 있다.
도 16의 단계 S1610에서, 하나의 퍼스펙티브 또는 이웃하지 않는 둘 이상의 퍼스펙티브에 대한 부/복호화를 시작할 수 있다.
단계 S1620에서, 부/복호화가 시작된 퍼스펙티브에 대한 부/복호화가 진행될 수 있다. 부/복호화는 각 퍼스펙티브에 포함된 부호화 단위(예컨대, CTU 단위)로 진행될 수 있다.
단계 S1630에서, 모든 퍼스펙티브에 대한 부/복호화가 완료되었는지 판단할 수 있다. 모든 퍼스펙티브에 대한 부/복호화가 완료되었으면(단계 S1630에서 Yes), 영상 부/복호화를 종료할 수 있다.
모든 퍼스펙티브에 대한 부/복호화가 완료되지 않았으면(단계 S1630에서 No), 단계 S1640에서, 부/복호화가 진행중인 또는 완료된 퍼스펙티브에 의해 의존성이 해결된 이웃 퍼스펙티브가 존재하는지 여부를 판단할 수 있다. 의존성이 해결된 이웃 퍼스펙티브가 존재하지 않는다면(단계 S1640에서, No), 단계 S1620에서, 부/복호화가 진행중인 퍼스펙티브에 대한 부/복호화를 계속 진행할 수 있다.
의존성이 해결된 이웃 퍼스펙티브가 존재한다면(단계 S1640에서, Yes), 단계 S1650에서, 상기 이웃 퍼스펙티브에 대한 부/복호화를 시작할 수 있다.
이후, 단계 S1620에서, 부/복호화가 시작된 복수의 퍼스펙티브에 대한 부/복호화가 계속 진행될 수 있다. 상기 단계 S1620 내지 S1650은 모든 퍼스펙티브들에 대한 부/복호화가 완료될 때까지 반복될 수 있다.
도 19는 정육면체 전개도 형태의 360도 VR 영상의 일 예이다.
도 20 내지 도 22는 도 19의 비디오를 병렬적으로 부/복호화하는 단계를 설명하기 위한 도면이다. 도 20 내지 도 22를 참조하는 이하의 설명에 있어서, 각 퍼스펙티브를 나타내는 기호는 도 18에 도시된 해당 퍼스펙티브의 기호와 같다. 도 21 및 도 22에 도시된 화살표는 퍼스펙티브간의 참조 관계를 나타낸다.
먼저, 도 20에 도시된 바와 같이, 서로 이웃하지 않는 퍼스펙티브 A 및/또는 A'는 병렬적으로 부/복호화될 수 있다.
그 후, 도 21에 도시된 바와 같이, 퍼스펙티브 A 및/또는 A'를 참조하여 퍼스펙티브 B 및/또는 B'를 병렬적으로 부/복호화할 수 있다. 퍼스펙티브 B 및/또는 B'의 부/복호화는 퍼스펙티브 A 및/또는 A'와의 의존성이 해결되면 시작될 수 있다. 즉, 퍼스펙티브 A 및/또는 A'의 부/복호화가 일부 또는 전부 수행되었을 때 퍼스펙티브 B 및/또는 B'의 부/복호화가 시작될 수 있다. 도 21에 도시된 바와 같이, 퍼스펙티브 B 및/또는 B'는 퍼스펙티브 A 및/또는 A'를 참조하여 부/복호화될 수 있다. 퍼스펙티브 B 및/또는 B'는 각각 퍼스펙티브 A 및/또는 A'와 인접한 경계 부분에서, 퍼스펙티브 A 및/또는 A'의 부/복호화에 따라 의존성이 해결된 부분부터 부/복호화될 수 있다.
예컨대, 퍼스펙티브 B의 상단 경계는 퍼스펙티브 A의 좌측 경계와 인접한다. 따라서, 퍼스펙티브 A의 두번째 행, 첫번째 열의 블록이 부/복호화되면, 퍼스펙티브 B의 첫번째 행, 첫번째 열의 블록에 대한 부/복호화가 시작될 수 있다. 이 경우, 퍼스펙티브 A를 참조하는 퍼스펙티브 B의 부/복호화는 래스터 스캔 순서에 따라 수행될 수 있다.
또한, 예컨대, 퍼스펙티브 B의 하단 경계는 퍼스펙티브 A'의 좌측 경계와 인접한다. 따라서, 퍼스펙티브 A'의 두번째 행, 첫번째 열의 블록이 부/복호화되면, 퍼스펙티브 B의 마지막 행, 마지막 열의 블록에 대한 부/복호화가 시작될 수 있다. 이 경우, 퍼스펙티브 A'를 참조하는 퍼스펙티브 B의 부/복호화는 역래스터 스캔 순서(예컨대, 우하단에서 좌상단의 순서)에 따라 수행될 수 있다.
퍼스펙티브 A 및/또는 A'를 참조하여 퍼스펙티브 B 및/또는 B'를 부/복호화할 경우, 참조되는 블록의 정보는 그대로 이용될 수도 있고, 현재 부/복호화가 진행중인 시점에 따라 적절한 변형을 거친 후 이용될 수도 있다.
그 후, 도 22에 도시된 바와 같이, 일부 또는 전부에 대해 부/복호화가 완료된 퍼스펙티브 A, A', B 및/또는 B'를 참조하여 퍼스펙티브 C 및/또는 C'를 부/복호화할 수 있다. 도 22에서는 퍼스펙티브 A 및/또는 A'를 참조하여 퍼스펙티브 C 및/또는 C'를 부/복호화하는 경우가 도시되었다. 그러나 이에 한정되지 않으며, 예컨대, 퍼스펙티브 B 및/또는 B'를 참조하여 퍼스펙티브 C 및/또는 C'를 부/복호화할 수도 있다. 또는 퍼스펙티브 C 및/또는 C'는 퍼스펙티브 A, A', B 및 B' 중 하나 이상의 퍼스펙티브를 참조하여 부/복호화될 수 있다. 이 경우, 참조되는 블록은 현재 부/복호화가 진행중인 시점에 따라 적절히 변형된 후 참조될 수 있다.
정육면체의 경우는 도 20 내지 도 22에 도시된 3단계로 360도 VR 영상의 부/복호화가 종료될 수 있다. 그러나, 정팔면체나 정이십면체의 경우는 아직 부/복호화가 완료되지 않은 퍼스펙티브가 존재할 수 있다. 따라서 모든 퍼스펙티브의 부/복호화가 완료될 때까지 상기 과정을 반복할 수 있다.
전술한 바와 같이, 전방향 영상의 각 퍼스펙티브는 복수의 퍼스펙티브와 연속성을 가지고 있다. 또한 각 퍼스펙티브는 적어도 하나의 퍼스펙티브와 연속성을 갖지 않을 수 있다. 본 개시는 이를 이용하여 전방향 영상의 퍼스펙티브들을 병렬적으로 부/복호화할 수 있다.
또한, 전술한 방법에 더하여, 각 퍼스펙티브마다 WPP 기반 기술을 적용하면, 높은 압축 효율을 유지하면서 병렬적으로 더욱 빠르게 처리할 수 있다. 그러나, 도 7을 참조하여 설명한 바와 같이, 각 퍼스펙티브의 왼쪽 상단 블록으로부터 오른쪽 하단 블록의 방향으로 각 행을 병렬적으로 처리하면, 각 퍼스펙티브의 왼쪽 상단 블록의 의존성이 해결될 때까지 해당 퍼스펙티브의 부/복호화는 시작될 수 없다.
도 23은 퍼스펙티브의 부/복호화 방향을 설명하기 위한 예시도이다.
도 23을 참조하면, 정육면체 전방향 영상에서 퍼스펙티브 P2와 P4를 WPP 기반 기술을 이용하여 병렬적으로 부/복호화를 진행해도 퍼스펙티브 P6의 WPP 기반 부/복호화를 시작하려면 퍼스펙티브 P4의 부/복호화가 거의 완료되야 한다. 즉, 퍼스펙티브 P4의 마지막 행의 CTU 2개가 부/복호화되어야 퍼스펙티브 P6의 부/복호화를 시작할 수 있다.
그러나, 전방향 영상에서는 각 퍼스펙티브의 모든 변이 다른 퍼스펙티브와 연결되어 있다. 따라서, 퍼스펙티브 P6의 부/복호화 순서를 조정하면, 보다 빨리 퍼스펙티브 P6의 부/복호화를 시작할 수 있다. 예컨대, 도 23에 도시된 예에서와 같이 퍼스펙티브 P2의 부/복호화를 우하단 블록에서 좌상단 블록으로 진행할 경우 퍼스펙티브 P6의 왼쪽 하단 CTU의 의존성은 퍼스펙티브 P2의 2개의 CTU 만 부/복호화되면 해결될 수 있다. 퍼스펙티브 P6의 좌하단 CTU의 의존성이 해결되면, 퍼스펙티브 P6에 대한 WPP는 좌하단 블록에서 우상단 블록으로 진행될 수 있다.
WPP 기반 부/복호화를 진행할 때, 이웃 퍼스펙티브의 픽셀 정보를 활용할 수 있고, 또한, 이웃 퍼스펙티브에서 업데이트된 엔트로피 문맥을 가져와서 엔트로피 문맥 모델을 초기화할 수도 있다. 도 23에 도시된 예에서 실선 화살표는 엔트로피 문맥을 가져와 초기화하는 방향을 나타낸다. 도 23에 도시된 바와 같이, 이웃한 퍼스펙티브 간에 정보의 참조가 가능하다.
이하에서, 도 23을 참조하여, 본 개시에 따른 부/복호화 방법을 보다 구체적으로 설명한다.
먼저, 하나의 퍼스펙티브 또는 이웃하지 않는 둘 이상의 퍼스펙티브에 대한 부/복호화를 시작할 수 있다. 각 퍼스펙티브 내에서는 도 7을 참조하여 설명한 순서로 부/복호화가 수행될 수 있다. 예컨대, 퍼스펙티브 P2 및 P4는 서로 이웃하지 않으므로, 병렬적으로 부/복호화가 시작될 수 있다. 이 때, 보다 효율적인 부/복호화를 위해, 퍼스펙티브 P2와 P4는 각각 다른 순서로 부/복호화될 수 있다.
도 24는 정육면체 전방향 영상에 있어서, 이웃하지 않는 두 개의 퍼스펙티브에 대한 부/복호화 순서를 설명하기 위한 도면이다. 도 24의 (b) 및 (c)에서 작은 블록들은 퍼스펙티브 P4와 P2를 구성하는 영상 블록(예컨대, CTU)들을 의미하며 블록안의 숫자는 해당 블록의 처리 순서를 나타낸다. 또한, 점선 화살표는 각 퍼스펙티브에서 한 행의 처리 방향을 보여주며 각 블록(CTU)은 동일 행의 이전 열의 엔트로피 컨텍스트를 업데이트하여 사용할 수 있다.
도 24의 (a)에 도시된 바와 같이, 퍼스펙티브 P2와 P4는 서로 이웃하지 않으므로, 서로 참조하지 않는다. 따라서, 퍼스펙티브 P2와 P4는 독립적으로 부/복호화될 수 있다.
도 24의 (b)에 도시된 바와 같이, 예를 들어, 퍼스펙티브 P4에 대해서는 통상의 래스터 스캔 순서에 따라 좌상단에서 우하단의 순서로 부/복호화가 진행될 수 있다. 이 때, 퍼스펙티브 P2에 대해서도 통상의 래스터 스캔 순서가 적용될 수 있다. 또는 도 24의 (c)에 도시된 바와 같이, 퍼스펙티브 P2에 대해서는 우하단에서 좌상단의 순서로 부/복호화가 진행될 수 있다.
이 후, 퍼스펙티브 P2 및/또는 P4의 부/복호화가 일부 또는 전부 수행되면, 의존성이 해결된 이웃 퍼스펙티브의 부/복호화를 시작할 수 있다. 이 때, 이웃 퍼스펙티브의 WPP 처리 방향은 참조 퍼스펙티브에 적용된 WPP 처리 방향에 기초하여 결정될 수 있다. 예컨대, 도 23에 있어서, 퍼스펙티브 P4의 첫번째 행, 두번째 열의 블록의 부/복호화가 완료되면, 퍼스펙티브 P1의 마지막 행, 첫번째 열의 블록의 부/복호화가 시작될 수 있다. 이 때, 퍼스펙티브 P1의 부/복호화는 좌하단에서 우상단의 순서로 진행될 수 있다.
또한, 퍼스펙티브 P2의 마지막 행, 마지막 두번째 열의 블록의 부/복호화가 완료되면, 퍼스펙티브 P6의 마지막 행, 첫번째 열의 블록의 부/복호화가 시작될 수 있다. 이 때, 퍼스펙티브 P6의 부/복호화는 좌하단에서 우상단의 순서로 진행될 수 있다.
계속해서, 현재까지 부/복호화가 진행된 퍼스펙티브(들)와의 의존성이 해결된 이웃 퍼스펙티브에 대한 부/복호화가 시작될 수 있다. 이 때, WPP의 진행 방향은 하나 이상의 참조 퍼스펙티브들 중 의존성이 더 빠르게 해결되는 퍼스펙티브에 맞추어 결정될 수 있다. 두 개 이상의 참조 퍼스펙티브들의 의존성이 동시에 해결되면, 현재 퍼스펙티브의 부/복호화는 여러 변에서 동시에 진행될 수 있다. 이 경우, 현재 퍼스펙티브를 분할하여 처리할 수 있다.
도 23을 참조하면, 퍼스펙티브 P2의 마지막 두번째 열, 마지막 행의 블록의 부/복호화가 완료되면, 퍼스펙티브 P3의 마지막 행, 첫번째 열의 블록의 부/복호화가 시작될 수 있다. 또한, 퍼스펙티브 P4의 두번째 행, 첫번째 열의 블록의 부/복호화가 완료되면, 퍼스펙티브 P3의 첫번째 행, 마지막 열의 블록의 부/복호화가 시작될 수 있다. 즉, 퍼스펙티브 P3의 부/복호화는 복수의 퍼스펙티브를 참조하여 여러 변에서 동시에 진행될 수 있다. 이 때, 퍼스펙티브 P3의 부/복호화 순서는 이웃 퍼스펙티브들(P1, P2, P4, P6) 중 적어도 하나를 고려하여 결정될 수 있다. 이 때, 가장 빨리 부/복호화가 완료될 수 있는 방향으로 퍼스펙티브 P3의 부/복호화 순서가 결정될 수 있다.
도 23 및 24를 참조하여 설명한 방법은 모든 시점들의 부/복호화가 완료될 때까지 반복될 수 있다.
도 24에 도시된 예에서 퍼스펙티브 P4의 부/복호화는 전개도 상에서 좌상단에서 우하단으로 진행되고, 퍼스펙티브 P2의 부/복호화는 우하단에서 좌상단으로 진행된다. 이는 보다 효율적인 병렬리를 위해 병렬 처리되는 데이터의 양을 잘 분배하기 위함이다.
도 25는 정육면체 전방향 영상에 있어서, 마주보는 두 개의 퍼스펙티브의 부/복호화 순서를 설명하기 위한 도면이다.
3차원 공간에서 서로 마주보는 위치의 두 개의 퍼스펙티브의 부/복호화 순서는 도 25의 (a)에 도시된 바와 같이, 상하좌우 모두 서로 역방향으로 설정될 수 있다. 또는 도 25의 (b)에 도시된 바와 같이, 좌우로 동일한 방향으로 설정될 수도 있다.
도 26은 도 25의 (a) 및 (b)에 따른 차이를 설명하기 위한 도면이다.
도 25의 (a)에 도시된 바와 같이 퍼스펙티브 P4와 P2의 부/복호화가 상하좌우 대칭의 위치에서 시작되면, 도 26의 (b)에 도시된 바와 같이, 퍼스펙티브 P2와 P1의 CTU 열 처리 순서는 퍼스펙티브 P2와 P1이 만나는 변에서 서로 반대 방향이 된다. 이는 퍼스펙티브 P6과 P4가 만나는 변에서도 마찬가지이다. 두 개의 퍼스펙티브가 인접하는 변에서 각 퍼스펙티브의 처리 방향이 반대가 되면, 이웃한 퍼스펙티브의 정보를 효율적으로 활용할 없다. 즉, 이웃 퍼스펙티브와의 처리 순서가 반대가 되므로, 이웃 퍼스펙티브의 참조 행에 대한 부/복호화가 완료될 때까지 지연이 발생하게 된다.
도 25의 (b)에 도시된 바와 같이 퍼스펙티브 P4와 P2의 부/복호화가 좌우로 동일한 방향으로 진행되면, 도 26의 (c)에 도시된 바와 같이, 퍼스펙티브 P2와 P1이 만나는 변에서 퍼스펙티브 P2와 P1의 CTU 열 처리 방향은 같아진다. 이는 퍼스펙티브 P6와 P4가 만나는 변에서도 마찬가지이다. 따라서, 퍼스펙티브 P1 및 P6의 마지막 행의 부/복호화가 시작되는 시점과 참조 영역으로 사용될 퍼스펙티브 P4 및 P2의 마지막 행 CTU 2개가 완료되는 시점이 서로 맞아 떨어지므로 지연이 발생하지 않게 된다. 도 27은 도 25의 (b)에 따른 부/복호화를 설명하기 위한 도면이다.
전술한 바와 같이, 퍼스펙티브 P2와 P4의 각각에서 2개의 CTU가 처리되면 이웃 퍼스펙티브의 WPP를 통한 부/복호화가 가능하다. 퍼스펙티브 P1은 퍼스펙티브 P4와 연속성을 가지고 있으므로 도 27의 (b)에 도시된 바와 같이, 퍼스펙티브 P4의 첫 행 두번째 CTU의 부/복호화가 완료되면 퍼스펙티브 P1의 첫 CTU의 의존성이 해결된다. 따라서 퍼스펙티브 P4로부터 엔트로피 컨텍스트를 가져와 초기화하여 사용할 수 있다.
마찬가지로, 퍼스펙티브 P6도 퍼스펙티브 P2의 2번째 CTU가 부/복호화 완료된 시점에서 부/복호화가 시작될 수 있다. 도 27의 (c)에 도시된 바와 같이 퍼스펙티브 P2가 처리되는 방향에 맞추어서 퍼스펙티브 P6에 대해서도 WPP가 진행될 수 있다. 도 27의 (b) 및 (c)에 있어서, 실선 화살표는 엔트로피 문맥을 가져와 초기화하는 방향을 나타낸다. 점선 화살표는 각 행에서의 CTU의 처리 방향을 나타낸다.
도 27의 (b) 및 (c)에 도시된 바와 같이, 다른 퍼스펙티브로부터 엔트로피 문맥을 가져올 수 있다. 엔트로피 문맥의 참조는 도 32 및 도 33을 참조하여 후술할 문맥추출기를 통해 수행될 수 있다.
도 28은 둘 이상의 퍼스펙티브를 참조할 수 있는 퍼스펙티브의 부/복호화를 설명하기 위한 도면이다.
도 27에 도시된 바와 같이, 퍼스펙티브 P3 및 P5의 경우 이웃하는 퍼스펙티브들이 모두 부/복호화되고 있다. 따라서 이웃 퍼스펙티브들을 모두 활용하여 병렬 처리를 수행함으로써 부/복호화 효율을 향상시킬 수 있다.
도 28에 도시된 바와 같이, 퍼스펙티브 P3 및 P5는 이웃하는 퍼스펙티브 P1, P2, P4 및/또는 P6의 정보를 활용할 수 있다. 도 28에 사용된 실선 화살표 및 점선 화살표는 도 27에 사용된 실선 화살표 및 점선 화살표와 같은 의미로 사용된다. 즉, 실선 화살표는 엔트로피 정보(예컨대, 엔트로피 문맥, 엔트로피 컨텍스트 테이블 등)를 가져오는 방향을 의미한다. 또한, 점선 화살표는 각 퍼스펙티브에서의 WPP를 통한 행단위 처리 방향을 의미한다. 각 퍼스펙티브 안의 CTU 블록 내의 숫자는 부/복호화 처리 순서를 의미한다.
도 28에 도시된 바와 같이, 퍼스펙티브 P3 또는 퍼스펙티브 P5의 경우 이웃 퍼스펙티브의 부/복호화에 따라, 둘 이상의 방향으로 동시에 의존성이 해결될 수 있다. 부/복호화 순서에 따르면, 퍼스펙티브 P2 및 P4가 퍼스펙티브 P1 및 P6보다 부/복호화가 먼저 시작된다. 따라서, 퍼스펙티브 P3 및 P5의 부/복호화에 필요한 의존성이 퍼스펙티브 P2 및 P4에 의해 먼저 해결될 수 있다. 따라서 퍼스펙티브 P3 및/또는 P5는 퍼스펙티브 P2 및 P4 중 하나를 선택하여 WPP 처리 방향을 결정할 수 있다. 또는, 두 개의 퍼스펙티브를 모두 활용하기 위하여 퍼스펙티브 P3 및/또는 P5를 두 개의 영역으로 분할하고, 분할된 각각의 영역에 대해 퍼스펙티브 P2 및 P4에 따른 WPP 처리 방향을 결정할 수 있다.
예컨대, 퍼스펙티브 P3의 부/복호화는 퍼스펙티브 P2와의 의존성이 해결된 후 수행될 수 있다. 이 경우, 퍼스펙티브 P2의 두 개의 CTU(1, 3)에 기초하여 퍼스펙티브 P3의 CTU(8)이 부/복호화될 수 있다. 또는 퍼스펙티브 P2 및 P4의 CTU가 각각 두 개씩 부/복호화된 시점에서, 퍼스펙티브 P3의 부/복호화가 양방향에서 시작될 있다. 이 경우, 퍼스펙티브 P2 및 P4의 부/복호화에 의해 의존성이 해결된 퍼스펙티브 P3의 두 개의 CTU의 부/복호화가 병렬적으로 시작될 수 있다. 병렬적으로 부/복호화한다는 의미는, 퍼스펙티브 P3가 양 방향에서 서로 독립적으로 부/복호화됨을 의미한다. 따라서, 병렬적인 부/복호화는 동시에 수행될 수도 있고 그렇지 않을 수도 있다.
도 29는 하나의 퍼스펙티브를 두 개의 영역으로 분할하고, 각각의 영역을 부/복호화하는 방법을 설명하기 위한 도면이다.
도 29의 (a)는 하나의 퍼스펙티브를 A와 B의 영역으로 나눈 것을 나타내며, 도 29의 (b)는 퍼스펙티브를 동일한 크기의 영역으로 나눈 후 WPP 처리하는 것을 나타낸다. 도 29의 (c)는 퍼스펙티브를 각각 다른 크기의 영역으로 나눈 후 WPP 처리하는 것을 나타낸다. 도 29의 실선 화살표 및 점선 화살표의 의미는 도 27 및 도 28을 참조하여 설명한 바와 동일하다.
상기 A 영역 및 B 영역은 제1 영역 및 제2 영역으로 나타낼 수 있다. 제1 영역 및 제2 영역은 각각 인접한 퍼스펙티브의 부/복호화 진행 정도에 기초하여 부/복호화될 수 있다. 예컨대, 제1 영역과 제1 퍼스펙티브가 인접한 경우, 제1 퍼스펙티브의 부/복호화에 의해 의존성이 해결된 제1 영역의 블록부터 부/복호화될 수 있다. 제1 영역에 포함된 블록들의 부/복호화 방향은 제1 퍼스펙티브에 대한 부/복호화 방향에 기초하여 결정될 수 있다. 예컨대, 제1 영역 및 제1 퍼스펙티브에 대한 부/복호화 방향은 서로 직교하는 방향일 수 있다.
하나의 퍼스펙티브를 두 개의 영역으로 분할하는 방법은 도 29를 참조하여 설명한 실시예로 한정되지 않는다. 예컨대, 도 29에 도시되지 않은 형태 또는 크기로 분할될 수도 있다. 하나의 퍼스펙티브를 두 개의 영역으로 분할하는 방법은 비트스트림을 통해 시그널링되거나 부호화기와 복호화기에서 미리 정의될 수 있다.
퍼스펙티브 P3 및/또는 P5와 연속성을 가진 이웃 CTU들은 퍼스펙티브 P2 및/또는 P6에서 열이 아닌 하나의 행에 포함될 수 있다. 전술한 바와 같이, WPP 처리할 경우 하단 행의 부/복호화는 상단 행의 CTU 2열의 부/복호화가 완료되어야 시작될 수 있으므로, 2*t(CTU)씩 행당 지연이 발생한다. 참조 퍼스펙티브의 부/복호화 지연이 행당 2*t(CTU)씩 발생하므로, 도 28의 (a)에 도시된 바와 같이, 퍼스펙티브 P3에 대해서도, 각 열당 1*t(CTU)가 아닌 2*t(CTU)의 지연이 발생한다.
도 30은 둘 이상의 퍼스펙티브를 참조하는 경우의 부/복호화 처리 순서를 설명하기 위한 도면이다.
둘 이상의 퍼스펙티브를 참조할 수 있는 경우, 참조되는 둘 이상의 퍼스펙티브의 부/복호화 진행 정도에 기초하여 현재 퍼스펙티브에 대한 부/복호화를 수행할 수 있다. 예컨대, 제1 퍼스펙티브의 부/복호화에 의해 의존성이 해결되더라도, 제2 퍼스펙티브의 부/복호화에 의해 의존성이 해결될 때까지 기다린 후, 현재 퍼스펙티브의 부/복호화를 시작할 수 있다. 하나의 퍼스펙티브를 참조하는 경우와 비교하여, 둘 이상의 퍼스펙티브를 참조하면, 지연이 발생할 수 있다. 그러나, 둘 이상의 블록을 참조할 수 있으므로, 부호화 효율의 향상을 기대할 수 있다.
전술한 바와 같이, 퍼스펙티브 P3의 첫 행의 부/복호화 처리에 열당 지연이 2*t(CTU)씩 발생한다. 따라서, 도 30의 (a)에 도시된 바와 같이, 퍼스펙티브 P3의 왼쪽 최하단 CTU(4)의 부/복호화가 완료된다 하더라도 그 다음 열의 CTU(6)를 바로 부/복호화할 수가 없다. 열당 2*t(CTU)의 지연이 발생하므로, 퍼스펙티브 P3의 각각의 CTU의 의존성이 해결될 때마다 부/복호화를 시작할 경우, 퍼스펙티브 P3의 처리 순서상 첫 행의 마지막 CTU는 11번째로 부/복호화될 수 있다.
이 경우, 도 30의 (b)에 도시된 바와 같이, 퍼스펙티브 P3의 첫 행의 마지막 CTU가 11번째로 부/복호화되는 점을 고려하여, 퍼스펙티브 P3의 첫 행의 첫 번째 CTU의 부/복호화 시작 시점을 7번째로 결정할 수 있다. 도 30의 (b)와 같이, 퍼스펙티브 P3의 첫번째 CTU의 부/복호화 시작 시점을 늦추더라도, 첫 행의 마지막 CTU의 부/복호화 시작 시점은 변경되지 않으므로, 전체 영상의 병렬 처리 시간에는 영향을 주지 않을 수 있다.
또한, 도 30의 (b)에 도시된 순서에 따라 퍼스펙티브 P3를 처리할 경우, 참조할 수 있는 이웃 CTU가 많아진다는 장점이 있다. 즉, 퍼스펙티브 P3의 첫번째 CTU의 부/복호화에 있어서, 퍼스펙티브 P6의 두번째 행의 CTU(5, 빗금친 부분)의 픽셀 정보는 물론 엔트로피 컨텍스트도 이용할 수 있게 된다.
또한, 도 30의 (c)에 도시된 바와 같이, 퍼스펙티브 P3의 부/복호화를 1*t(CTU)만큼 더 지연시키면, 이웃 퍼스펙티브 P1의 CTU(11, 빗금친 영역)도 참조할 수 있다. 이는 퍼스펙티브 P1과 P2의 CTU처리 시간이 단지 2*t(CTU)만큼 차이나기 때문이다. 따라서, 퍼스펙티브 P3의 경우, 도 30의 (c)에 도시된 예에서와 같이 퍼스펙티브 P3의 부/복호화 시작 시점을 첫 행의 마지막 CTU의 오른쪽 CTU(이웃 퍼스펙티브에 속한)의 처리 시점을 기준으로 결정할 수 있다.
도 30의 (c)는 도 30의 (b)의 경우보다 약간의 지연이 더 발생할 수 있다. 그러나, 보다 많은 영역을 참조할 수 있게 되므로, 부/복호화 효율이 향상될 수 있다.
본 개시에 있어서, 인접한 블록, CTU 및/또는 퍼스펙티브로부터 참조할 수 있는 정보는 픽셀 정보, 엔트로피 문맥, 엔트로피 컨텍스트 테이블 등으로 기재하고 있다. 그러나, 이에 한정되지 않으며, 인접한 영역의 부/복호화 정보를 모두 참조할 수 있다. 예컨대, 참조할 수 있는 정보는 단순히 영상에 존재하는 픽셀 정보 외에도 공간적 예측에 활용한 예측 모드, 시간적 예측에 활용한 움직임 벡터, 머지 인덱스, 양자화 파라미터 정보, 인루프 필터 정보, 필터 계수 정보 등 부/복호화 과정에서 생성되거나 사용되는 모든 정보를 포함한다.
정육면체가 아닌, 정팔면체나 정이십면체 영상의 경우에 대해서, 정육면체를 고려하여 설명한 상기 단계들이 반복적으로 수행될 수 있음은 전술한 바와 같다.
도 31은 정육면체 전방향 영상의 부/복호화 순서를 설명하기 위한 예시도이다.
도 23 내지 도 30을 참조하여 설명한 순서에 따라 정육면체 전방향 영상의 부/복호화를 수행하는 경우, 도 31에 도시된 순서에 따라 부/복호화가 진행될 수 있다.
도 31의 (a)는 전개도 상에서의 부/복호화 순서를 예시한 도면이다. 도 31의 (a)에 사용된 실선 및 점선 화살표는 도 27 등에 사용된 실선 및 점선 화살표와 동일한 의미를 가진다.
도 31의 (b) 및 (c)는 정육면체 상에서, 부/복호화가 진행되는 순서를 예시적으로 나타낸다. 도 31의 (b) 및 (c)의 작은 블록은 부호화 단위 블록(예컨대, CTU)을 의미하고, 숫자는 해당 블록이 처리되는 순서를 의미한다. 음영처리된 블록은 부/복호화가 완료된 블록을 의미하고, 음영처리되지 않은 블록은 아직 부/복호화가 시작되지 않은 블록을 의미한다.
전술한 바와 같이, 본 개시에 따라 전방향 영상의 부/복호화를 수행할 때, 퍼스펙티브마다 WPP 처리 순서가 달라질 수 있다. 또는 하나의 퍼스펙티브에 대해 동시에 여러 방향에서 부/복호화가 시작될 수도 있다. 하나의 전방향 영상에 포함된 복수의 퍼스펙티브의 각각의 처리 방향이 달라지면, 동일한 구성의 장치로 모든 퍼스펙티브를 부/복호화하지 못하고 각각의 퍼스펙티브의 부/복호화 방향을 고려하여, 별도의 부/복호화 장치를 따로 제공해 주어야 한다는 문제점이 발생할 수 있다.
도 32는 본 개시에 따른 부호화 장치의 구성을 예시한 도면이다.
도 33은 본 개시에 따른 복호화 장치의 구성을 예시한 도면이다.
도 32의 부호화 장치는 변환 및 분배기(3201), 영상 정보 변환기(3202), 문맥 정보 추출기(3203) 및 복수의 부호화기를 포함하여 구성될 수 있다. 도 32의 부호화 장치는 입력 영상을 부호화함으로써 비트스트림을 생성할 수 있다. 입력 영상은 전방향 영상일 수 있으며, 각각의 부호화기는 전방향 영상을 구성하는 복수의 퍼스펙티브 중 하나의 퍼스펙티브를 부호화할 수 있다. 부호화기의 각각은 부호화 처리기, 복원픽쳐 버퍼 및/또는 엔트로피 부호기를 포함하며, 도 3의 부호화 장치에 해당할 수 있다.
도 33의 복호화 장치는 영상 정보 변환기(3301), 문맥 정보 추출기(3302), 변환 및 통합기(3303) 및 복수의 복호화기를 포함하여 구성될 수 있다. 도 33의 복호화 장치는 비트스트림을 복호화함으로써 영상을 출력할 수 있다. 출력 영상은 전방향 영상일 수 있으며, 각각의 복호화기는 전방향 영상을 구성하는 복수의 퍼스펙티브 중 하나의 퍼스펙티브를 복호화할 수 있다. 복호화기의 각각은 복호화 처리기, 엔트로피 복호기 및/또는 복원픽쳐 버퍼를 포함하며, 도 4의 복호화 장치에 해당할 수 있다.
만약, 각각의 퍼스펙티브의 부/복호화 방향에 따라, 별도의 부/복호화기가 필요하다면, 도 32 및 도 33의 복수의 부호화기 및 복수의 복호화기의 각각은 서로 다른 구성을 갖게 되므로, 장치 구성의 복잡도가 증가하게 된다. 따라서, 각각의 퍼스펙티브의 처리 방향이 다르더라도 동일한 구성의 부호화기 또는 복호화기에 의해 처리될 수 있도록 추가적인 구성이 필요하다. 이를 위해, 본 개시에 따른 부호화기는 변환 및 분배기(3201) 및/또는 영상 정보 변환기(3202)를 더 포함할 수 있다. 또한, 본 개시에 따른 복호화기는 영상 정보 변환기(3301) 및/또는 변환 및 통합기(3302)를 더 포함할 수 있다.
전방향 영상을 구성하는 각각의 퍼스펙티브를 병렬 처리하기 위해서, 도 32의 변환 및 분배기(3201)는 각 퍼스펙티브의 영상 정보를 하나 이상의 부호화 처리기로 전송할 수 있다. 영상 정보의 전송 전에 각 퍼스펙티브의 처리 방향이 소정의 처리 방향과 일치하도록 영상 정보를 수정할 수 있다. 소정의 처리 방향은 예컨대, 래스터 스캔 순서일 수 있으나, 이에 한정되지 않으며, 모든 퍼스펙티브에 공통으로 적용되는 처리 방향으로서 미리 결정된 것이거나 시그널링되는 것일 수 있다.
변환 및 분배기(3201)는 아래와 같이 동작할 수 있다.
먼저, 입력 영상이 복수의 퍼스펙티브를 통합된 형태로 포함하고 있으면, 입력 영상을 각 퍼스펙티브 별로 분할한다(스텝 1). 전방향 영상은 각각의 퍼스펙티브 별로 따로 저장되거나 하나의 전개도 형태로 통합되어 저장될 수 있다. 이때, 하나의 전개도 형태로 저장되어 있을 경우 병렬 처리를 위해 퍼스펙티브 별로 분할한다. 각각의 퍼스펙티브들은 각각의 부호화 처리기로 전송될 수 있다.
다음으로, 퍼스펙티브 내의 CTU 처리 순서가 반시계 방향일 경우 시계 방향이 되도록 대칭 영상을 생성한다(스텝 2). 도 34는 퍼스펙티브의 처리 순서를 변환하는 방법을 설명하기 위한 예시도이다. 도 34의 (a), (b) 및 (c)의 각각은 CTU의 처리 순서가 반시계 방향인 퍼스펙티브 P6의 처리 순서를 시계 방향이 되도록 변환하는 실시예를 도시한다.
도 34의 (a)에서는 스테이지(stage) 1의 퍼스펙티브 P6을 좌우로 대칭하여, 스테이지 2의 대칭 퍼스펙티브를 생성할 수 있다. 도 34의 (b)에서는 스테이지 1의 퍼스펙티브 P6을 상하로 대칭시킴으로써, 스테이지 2의 대칭 퍼스펙티브를 생성할 수 있다. 또한, 도 34의 (c)에서는 스테이지 1의 퍼스펙티브 P6을 대각으로 대칭시킴으로써, 스테이지 2의 대칭 퍼스펙티브를 생성할 수 있다. 도 34의 (a), (b) 및 (c)의 각각에 있어서, 스테이지 2의 대칭 퍼스펙티브의 CTU의 처리 순서는 시계 방향으로 변환됨을 알 수 있다.
마지막으로, 스테이지 2의 대칭 퍼스펙티브의 부/복호화 시작 위치가 좌측 상단에 오도록 퍼스펙티브의 중앙을 기준으로 영상을 회전시킨다(스텝 3). 도 34의 (a)의 경우, 부/복호화 시작 위치가 우하단에 위치하므로, 스테이지 2의 대칭 퍼스펙티브를 180도 회전시킬 수 있다. 도 34의 (b)의 경우, 부/복호화 시작 위치가 좌상단에 위치하므로 스테이지 2의 대칭 퍼스펙티브를 회전시킬 필요가 없다. 도 34의 (c)의 경우, 부/복화화 시작 위치가 좌하단에 위치하므로, 스테이지 2의 대칭 퍼스펙티브를 시계방향으로 90도 회전시킬 수 있다. 스테이지 2의 대칭 퍼스펙티브의 회전에 의해 스테이지 3의 퍼스펙티브가 생성될 수 있다.
만약 스테이지 1의 퍼스펙티브 내의 CTU의 처리 순서가 시계 방향일 경우, 상기 대칭은 수행되지 않을 수 있으며, 예컨대, 회전만이 수행될 수 있다. 전술한 바와 같이, 퍼스펙티브를 대칭 및/또는 회전시킴으로써, 퍼스펙티브의 부/복호화 처리 순서를 소정의 순서로 일치시킬 수 있다. 도 34를 참조하여 설명한 위의 예시는 각 퍼스펙티브의 부/복호화가 왼쪽 상단에서 시작할 수 있도록 만든 방법의 예이다. 또한, 상기 대칭 및/또는 회전은 매트릭스로 표현될 수 있다. 또한, 상기 대칭 및 회전은 매트릭스 곱의 형태로 표현되어 한번의 연산으로 수행될 수도 있다.
도 34를 참조하여 설명한 각각의 실시예는 퍼스펙티브 내의 CTU 처리 순서를 소정의 순서에 일치시키기 위한 실시예의 일부이다. 즉, 도 34를 참조하여 설명한 실시예들 이외의 방법을 적용하여, CTU 처리 순서를 일치시킬 수 있다. 예컨대, 도 34를 참조하여 설명한 실시예와는 달리, 먼저 퍼스펙티브를 회전시킨 후 대칭시킴으로써 CTU 처리 순서를 일치시킬 수도 있다. 즉, 도 34의 (a)의 경우, 스테이지 1의 퍼스펙티브를 180도 회전시킨 후, 회전된 퍼스펙티브를 좌우로 대칭시킴으로써, 스테이지 3의 퍼스펙티브를 획득할 수 있다.
그 외에도, 회전과 대칭을 동시에 적용하는 방법도 고려될 수 있다. 또한, 회전과 대칭 이외에, 스테이지 1의 퍼스펙티브의 처리 순서와 스테이지 3의 퍼스펙티브의 처리 순서 사이에 매핑 정보를 이용하여 퍼스펙티브를 변환할 수도 있다. 예컨대, 상기 매핑 정보는 스테이지 1의 퍼스펙티브의 처리 순서를 식별하기 위한 정보와 상기 스테이지 1의 퍼스펙티브에 대한 변환 정보를 포함할 수 있다. 예컨대, 상기 변환 정보는 상기 스테이지 1의 퍼스펙티브를 스테이지 3의 퍼스펙티브로 변환하기 위한 정보일 수 있다. 예컨대, 상기 변환 정보는 스테이지 1의 CTU와 스테이지 3의 CTU 사이의 대응 관계에 관한 정보일 수 있다. 상기 대응 관계는 스테이지 1의 CTU의 위치와 이에 대응하는 스테이지 3의 CTU의 위치일 수 있다. 상기 CTU의 위치는 소정의 스캔 순서에 따른 순서로 나타낼 수 있다. 상기 소정의 스캔 순서는 예컨대, 래스터 스캔 순서일 수 있다. 또는 상기 CTU의 위치는 퍼스펙티브의 소정의 코너를 기준으로 한 2차원 좌표일 수 있다. 상기 소정의 코너는 예컨대 퍼스펙티브의 좌상단 코너일 수 있다.
도 34를 참조하여 설명한 예에서, 입력 퍼스펙티브의 CTU 처리 순서가 소정의 처리 순서와 다를 때, 대칭 및/또는 회전을 수행하여 퍼스펙티브를 변환한다. 그러나, 입력 퍼스펙티브를 변환하지 않고, 부/복호화기의 처리 순서를 변형할 수도 있다. 예컨대, 입력 퍼스펙티브가 도 34의 (a)의 퍼스펙티브와 같고, 소정의 처리 순서가 래스터 스캔 순서라고 할 때, 부/복호화기는 입력 퍼스펙티브의 좌하단 CTU부터 시작하여 반시계 방향으로 부/복호화를 수행하도록 구성할 수도 있다. 이 때, 스테이지 1의 퍼스펙티브의 처리 순서와 스테이지 3의 퍼스펙티브의 처리 순서 사이의 전술한 매핑 정보가 이용될 수 있다.
전술한 바와 같이, 퍼스펙티브에 포함된 블록을 처리할 때, 이웃 퍼스펙티브에 포함된 블록의 영상 정보를 참조할 수 있다. 여기서 영상 정보란, 전술한 바와 같이, 단순히 영상에 존재하는 픽셀 정보 외에도 공간적 예측에 활용한 예측 모드, 시간적 예측에 활용한 움직임 벡터, 머지 인덱스, 양자화 파라미터 정보, 인루프 필터 정보, 필터 계수 정보 등 부/복호화 과정에서 생성되거나 사용되는 모든 정보를 포함할 수 있다.
그러나, 3차원 공간상의 영상을 전개도상에 표현하는 과정에서 퍼스펙티브 간의 위치 및 방향에 차이가 발생한다. 따라서, 서로 다른 퍼스펙티브간 예측에 활용할 수 있는 영상 정보를 공유하기 위해서는 각 퍼스펙티브의 전개도상의 방향에 맞게 영상 정보를 변환하는 과정이 필요하다. 또한, 도 34를 참조하여 설명한 바와 같이, 퍼스펙티브의 부/복호화 처리 순서를 좌상단에서 우하단으로 일치시키기 위한 대칭 및/또는 회전 변환을 수행함에 따라 영상 정보를 변환할 필요가 있다.
복호화기는 부호화기가 사용한 전개도에 관한 정보 및/또는 각각의 퍼스펙티브에 적용된 변환에 관한 정보 등에 기초하여 참조하게 될 영상 정보의 변환 방법을 결정할 수 있다. 부/복호화기는 전개도에 관한 정보, 각 퍼스펙티브의 전개도 상에서의 위치에 관한 정보 및/또는 각 퍼스펙티브에 적용된 변환에 관한 정보를 사전에 약속할 수 있다. 또는 상기 정보의 전부 또는 일부는 비트스트림을 통해 명시적으로 또는 암묵적으로 시그널링될 수 있다. 또는 복호화기는 부/복호화에 관한 다른 신택스 또는 변수에 기초하여 상기 정보의 일부 또는 전부를 유도할 수도 있다.
전술한 영상 정보의 변환은 도 32의 영상 정보 변환기(3202) 및 도 33의 영상 정보 변환기(3301)에 의해 수행될 수 있다.
부/복호화기가 서로 약속한 한가지 방식을 사용할 수 있는 경우, 비디오 파라미터 셋(Video Parameter Set, VPS) 또는 시퀀스 파라미터 셋(Sequence Parameter Set, SPS)과 같은 영상 헤더에 플래그 정보를 포함시켜 약속한 방식의 사용 여부를 시그널링할 수 있다.
부호화기가 복수의 전개도 중 어떤 전개도를 이용할지 또는 변환 및 분배기(3201)에서 처리되는 퍼스펙티브의 처리 순서가 가변적인 경우, 부호화시 사용된 전개도의 종류 또는 퍼스펙티브의 처리 순서에 관한 정보는 복호기로 명시적으로 시그널링될 수 있다. 또는 부/복호화기가 상기 정보 등에 대한 룩업 테이블을 공유하는 경우, 룩업 테이블의 인덱스를 시그널링할 수도 있다.
도 33의 변환 및 통합기(3303)는 도 32의 변환 및 분배기(3201)의 과정을 반대로 수행할 수 있다. 보다 구체적으로 아래의 과정을 수행할 수 있다.
먼저, 부호화 장치에서 해당 퍼스펙티브 영상에 대해 회전을 적용했을 경우, 부호화 장치에서 회전된 각도만큼 영상을 반대 방향으로 회전시킬 수 있다(스텝 1).
해당 퍼스펙티브 영상에 대해 회전이 적용되었는지의 여부 및/또는 회전 각도는 비트스트림을 통해 시그널링될 수 있다. 상기 회전 적용 여부 및/또는 회전 각도는 직접적으로 부/복호화될 수 있다. 예컨대, 회전 적용 여부를 나타내는 플래그 및 회전 각도에 관한 구문 요소가 부/복호화될 수 있다.
회전 각도는 퍼스펙티브 영상의 형태에 따라 제한된 개수가 존재할 수 있다. 예컨대, 퍼스펙티브 영상이 사각형일 경우 회전 각도는 90도, 180도 및 270도 중 하나일 수 있다. 따라서, 회전 각도에 관한 구문 요소는 3가지 경우 중 한가지를 지시하는 정보일 수 있다.
또는 2 비트의 구문 요소를 이용할 경우, 예컨대, 비트열 “00”은 “회전되지 않음”, 비트열 “01”은 “90도 회전됨”, 비트열 “10”은 “180도 회전됨”, 비트열 “11”은 “270도 회전됨”을 나타낼 수도 있다. 상기 비트열과 그에 대응하는 의미는 부/복호화기에서 기설정되어, 예컨대, 테이블의 형태로 저장될 수 있다.
퍼스펙티브 영상이 n 각형일 경우, 회전이 적용되지 않는 1가지 경우와 회전이 적용되는 n-1가지의 경우가 존재할 수 있다. 상기 n-1가지의 경우는 각각 회전 각도가 상이한 경우를 의미할 수 있다. 즉, 퍼스펙티브 영상이 n 각형일 경우, 회전 변환에 관한 정보는 n가지 경우 중 한가지를 지시하는 정보일 수 있다. 따라서, log2n 비트의 구문 요소를 이용하여, 회전 적용 여부 및 회전 각도에 관한 정보가 부/복호화될 수 있다.
다음으로, 부호화 장치에서 해당 퍼스펙티브 영상에 대해 대칭을 적용했을 경우 부호화 장치에서 사용했던 중앙선을 기준으로 대칭 영상을 생성할 수 있다(스텝 2).
해당 퍼스펙티브 영상에 대해 대칭이 적용되었는지의 여부 및/또는 대칭에 사용된 중앙선에 관한 정보는 비트스트림을 통해 시그널링될 수 있다. 상기 대칭 적용 여부 및/또는 중앙선에 관한 정보는 직접적으로 부/복호화될 수 있다. 예컨대, 대칭 적용 여부를 나타내는 플래그 및 중앙선에 관한 구문 요소가 부/복호화될 수 있다.
이용 가능한 중앙선의 개수는 제한될 수 있다. 예컨대, 부/복호화기는 이용 가능한 중앙선의 개수를 미리 약속할 수 있다. 또는 이용 가능한 중앙선의 개수가 시그널링될 수도 있다.
예컨대, 중앙선이 수직선, 수평선, 대각선의 3가지 중 하나일 경우, 중앙선에 관한 정보는 3가지 경우 중 한가지를 지시하는 정보일 수 있다.
또는 2 비트의 구문 요소를 이용할 경우, 예컨대, 비트열 “00”은 “대칭되지 않음”, 비트열 “01”은 “수직선을 이용하여 대칭됨”, 비트열 “10”은 “수평선을 이용하여 대칭됨”, 비트열 “11”은 “대각선을 이용하여 대칭됨”을 나타낼 수도 있다. 상기 비트열과 그에 대응하는 의미는 부/복호화기에서 기설정되어, 예컨대, 테이블의 형태로 저장될 수 있다.
다음으로, 복수의 퍼스펙티브가 합쳐진 하나의 전개도를 생성할 경우 스텝 1 및/또는 스텝 2를 거친 퍼스펙티브 영상들을 전개도에 맞게 하나로 통합할 수 있다.
스텝 1 및 스텝 2는 부호화 장치의 변환 및 분배기(3201)가 사용한 연산을 역으로 적용함으로서 수행될 수 있다. 복호화 장치의 사용자가 복수의 퍼스펙티브를 합친 하나의 전개도를 요구할 경우 스텝 3이 수행될 수 있다.
전술한 바와 같이, 퍼스펙티브 간 예측에 활용할 수 있는 픽셀 정보를 공유하기 위해서는 3차원 공간의 영상을 전개도상에 표현하면서 발생하는 퍼스펙티브 간의 위치 차이 및/또는 퍼스펙티브의 부/복호화 처리 순서를 소정의 순서로 일치시키기 위한 변환을 고려하여, 픽셀 정보를 보정할 수 있다.
또한, 예측에 사용되는 인접 퍼스펙티브의 영상 정보를 원활히 참조하기 위해서는, 인접 퍼스펙티브의 영상 정보를 수정(modify)할 필요가 있다.
상기 영상 정보는 부호화/복호화에 필요한 정보를 의미할 수 있다. 상기 영상 정보는 예측에 관한 정보, 변환에 관한 정보, 엔트로피 부호화에 관한 정보, 필터링에 관한 정보, 블록의 분할에 관한 정보 등을 포함할 수 있다. 특히, 예측에 관한 정보는 화면 간 예측 또는 화면 내 예측을 지시하는 정보, 움직임 벡터에 관한 정보, 참조 영상에 관한 정보, 화면 간 예측 방향에 관한 정보, 화면 내 예측 방향에 관한 정보 등을 포함할 수 있다.
화면 내 예측 방향에 관한 정보는 화면 내 예측 모드 정보일 수 있다. 화면 내 예측 모드는 비방향성 예측 모드 및 방향성 예측 모드를 의미할 수 있다. 본 발명에서 변환의 대상이 되는 영상 정보는 방향성 예측 모드일 수 있다.
예컨대, 시간적 예측에 사용하는 움직임 벡터의 경우, 전개도 상에서의 퍼스펙티브 간의 위치 차이 및/또는 부/복호화 처리 순서를 소정의 순서로 일치시키지 위한 변환을 고려한 보정과 마찬가지로, 대칭 및/또는 회전 변환을 수행하여 수정될 수 있다.
그러나, 공간적 예측 모드의 수정은 상기 방법으로는 해결되지 않을 수 있다. 그 이유에 대해서는 후술한다. 화면내 예측을 수행하기 위해, 예컨대, 현재 블록의 좌하단, 좌단, 상단, 우상단의 인접 픽셀 정보를 이용할 수 있다. 또한, 방향성 예측 모드로서, 도 35에 도시된 바와 같이, 33가지의 예측 모드가 이용될 수 있다. 또는, 보다 세밀한 방향성을 지원하기 위해, 더 많은 방향성 예측 모드가 이용될 수도 있다.
영상의 부/복호화를 좌상단에서 우하단으로 진행하면, 특정 방향에만 픽셀 정보가 존재한다. 따라서, 참조할 수 있는 방향성 예측 모드는 좌하단, 좌단, 상단 및/또는 우상단의 예측 모드일 수 있다. 또한, 움직임 벡터와 다르게 공간적 예측의 방향에 따른 모드 번호가 저장이 된다. 따라서, 모드 번호가 실제 공간적 예측의 방향과 매칭이 안될 수도 있다. 따라서 퍼스펙티브가 대칭이나 회전으로 변환될 경우 이웃 블록의 예측 정보를 그대로 활용할 수 없다.
도 36은 이웃 퍼스펙티브의 예측 모드를 참조한 현재 퍼스펙티브의 공간적 예측을 설명하기 위한 예시도이다.
도 36의 (a)는 정육면체 전방향 영상의 전개도 상에서, 퍼스펙티브 P2의 블록 A, 퍼스펙티브 P6의 블록 B의 위치를 나타낸다. 도 36의 (b)는 전개도 상에서의 위치 차이를 고려하여, 퍼스펙티브 P2 및 퍼스펙티브 P6의 위치를 보정한 후의 블록 A와 B의 위치를 나타낸다. 도 36의 (c)는 퍼스펙티브 P6의 부/복호화 처리 순서를 소정의 방향, 예컨대, 좌상단에서 우하단으로 일치시키는 보정 후의 블록 A와 B의 위치를 나타낸다.
도 36의 (c)의 퍼스펙티브 P6은 도 32의 변환 및 분배기(3201)를 통해 좌상단에서 우하단의 순서로 부호화될 수 있다. 따라서, 블록 B는 도 35에 예시한 화면 내 예측 모드를 이용하여 예측될 수 있다. 하지만, 도 36의 (c)의 블록 A의 부호화 완료된 픽셀 정보는 블록 B가 참조할 수 있도록 변환된 것이다. 그러나, 픽셀 정보 외의 다른 영상 정보들은 변환 전의 것이므로, 블록 B가 그대로 이용할 수 없다. 따라서 다른 영상 정보들에 대해서도, 픽셀 정보를 변환한 것에 대응되는 변환 과정을 수행할 필요가 있다. 이때, 픽셀 정보의 변환은 예컨대, 도 34를 참조하여 설명한 바와 같다.
그러나, 화면 내 예측의 경우, 방향성에 관해 모드 번호가 사용되기 때문에 변환 과정을 거친 후에는, 방향성에 관한 모드 번호가 동일하지 않거나 존재하지 않는 경우가 발생할 수 있다.
현재 블록(예컨대, 도 36의 블록 B)과 참조 블록(예컨대, 도 36의 블록 A)에 가용한 공간적 예측의 방향성이 동일하면, 변환에 의해 변경된 모드 번호의 수정만 필요할 수 있다. 하지만, 현재 블록의 예측 모드에 대응되는 모드가 참조 블록에 대해서는 존재하지 않을 수도 있다.
도 37은 현재 블록과 참조 블록의 예측 모드의 차이를 설명하기 위한 도면이다.
도 37의 (a)는 도 36의 (c)에 도시된 블록 A 및 블록 B에 가용한 방향성 예측 모드를 예시적으로 나타낸다. 도 37의 (a)에 도시된 바와 같이, 블록 B의 변환에 따라 블록 A가 변환되면서, 모드 번호 26외에는 블록 B가 예측에 활용할 수 있는 모드가 블록 A에 대해 없음을 알 수 있다. 하지만, 블록 A의 예측 방향 자체는 블록 B의 예측 방향의 부/복호화에 유용할 수 있다. 따라서 블록 A의 모드 번호를 블록 B가 사용할 수 있도록 해석하면, Most Probable Mode(MPM)등의 예측 기술의 효율을 향상시킬 수 있다.
방향성 예측 모드의 해석은 다음과 같이 수행될 있다. 참조 블록의 예측 방향이 소정의 처리 순서(예컨대, 순차 주사 순서)에 따른 방향성 모드(예컨대, 도 35를 참조하여 설명한 방향성 모드)중에 존재하는 경우, 참조 블록의 방향성 예측 모드는 참조 블록의 예측 방향에 할당된 모드 번호로 해석할 수 있다. 예컨대, 도 37의 (a)에서, 참조 블록 A의 예측 방향이 우상단 방향인 경우, 우상단 방향은 도 35에 도시된 방향성 모드 중에 포함된다. 따라서, 이 경우, 참조 블록 A의 방향성 예측 모드는 '34'로 해석될 수 있다.
만약, 참조 블록의 예측 방향이 소정의 처리 순서(예컨대, 순차 주사 순서)에 따른 방향성 모드 중에 존재하지 않는 경우, 즉, 아래쪽 방향 또는 오른쪽 방향일 경우, 참조 블록의 예측 방향에 180도 대칭되는 예측 방향에 할당된 모드 번호로 해석할 수 있다. 예컨대, 도 37의 (a)에서, 참조 블록 A의 예측 방향이 오른쪽 방향인 경우, 오른쪽 방향은 도 35에 도시된 방향성 모드 중에 포함되지 않는다. 따라서, 이 경우, 참조 블록 A의 방향성 예측 모드는, 오른쪽 방향에 180도 대칭되는 왼쪽 방향에 할당된 모드 번호인 '10'으로 해석될 수 있다.
도 37의 (b)는 도 37의 (a)의 하단 방향성(실선 화살표)을 상단 방향성(점선 화살표)으로 해석하는 예를 나타낸다. 도 37의 (b)의 방향성 모드 중 2번 모드는 기존 방향성 모드 중에 포함된다. 따라서, 180도 대칭해서 해석되지 않을 수 있다.
도 37의 (c)는 도 37의 (a)의 오른쪽 방향성(실선 화살표)을 왼쪽 방향성(점선 화살표)으로 해석하는 예를 나타낸다. 도 37의 (c)의 방향성 모드 중 34번 모드는 기존 방향성 모드 중에 포함된다. 따라서, 180도 대칭해서 해석되지 않을 수 있다.
도 38은 참조 블록의 방향성 예측 모드의 해석 방법을 설명하기 위한 도면이다.
단계 S3810에서, 참조 블록의 영상 정보를 변환할 수 있다. 참조 블록의 영상 정보의 변환은 현재 블록에 맞추어 수행될 수 있다. 예컨대, 현재 블록의 변환을 고려하여, 또는 현재 블록과 참조 블록이 포함되는 퍼스펙티브의 차이를 고려하여 수행될 수 있다.
단계 S3820에서, 해석되지 않은 참조 블록의 방향성 예측 모드가 현재 블록에 대해 가용한지 판단할 수 있다. 예컨대, 현재 블록에 대해 가용한 방향성 예측 모드 중에 상기 해석되지 않은 참조 블록의 방향성 예측 모드가 포함되면, 참조 블록의 해당 방향성 예측 모드는 현재 블록에 대해 가용한 것으로 판단할 수 있다.
참조 블록의 방향성 예측 모드가 현재 블록에 대해 가용하지 않다면(단계 S3820에서 No), 단계 S3830에서, 참조 블록의 해당 방향성 예측 모드에 180도 대칭되는 모드를 생성할 수 있다. 이후, 단계 S3840에서, 참조 블록의 방향성 예측 모드를 해석할 수 있다. 예컨대, 참조 블록의 방향성 예측 모드는, 단계 S3830에서 생성된 참조 블록의 방향성 예측 모드와 같은 방향성을 갖는 현재 블록의 모드로 해석될 수 있다.
참조 블록의 방향성 예측 모드가 현재 블록에 대해 가용하다면(단계 S3820에서 Yes), 단계 S3840에서, 참조 블록의 방향성 예측 모드는, 참조 블록의 방향성 예측 모드와 같은 방향성을 갖는 현재 블록의 모드로 해석될 수 있다.
단계 S3850에서, 참조 블록의 모든 방향성 예측 모드가 해석되었는지 판단할 수 있다. 참조 블록의 방향성 예측 모드 중 해석되지 않은 모드가 있으면, 단계 S3820으로 이동하여 상기 과정이 반복될 수 있다.
도 35에 도시된 예측 모드를 가정하면, 정육면체 전방향 영상의 각 퍼스펙티브가 어떤 전개도를 이용하여 전개되느냐에 따라, 참조 블록의 방향성 예측 모드는 예컨대, 도 39에 도시된 8가지의 경우 중 하나일 수 있다.
도 39에 도시된 8가지 경우 중, 현재 블록과 같은 경우(예컨대, 도 39의 (a)의 경우)를 제외하고는, 참조 블록의 방향성 모드를 현재 블록에 맞춰 해석할 필요가 있다. 참조 블록의 방향성 모드의 해석은 도 37을 참조하여 설명한 바와 같이 수행될 수 있다. 또는 부/복호화 장치가 공유하는 룩업 테이블(해석 테이블)을 참조함으로써 참조 블록의 방향성 모드를 해석할 수 있다. 테이블을 참조하는 경우, 참조 블록이 도 39의 8가지 경우 중 어디에 해당하는지를 결정할 필요가 있다. 이는 비트스트림을 통해 시그널링될 수 있다. 또는 사용된 전개도에 관한 정보, 기타 부/복호화 정보에 기초하여 유도될 수도 있다.
아래의 표 1은 방향성 모드 해석 테이블의 일례이다. 표 1은 33개의 방향성에 대한 테이블이다. 그러나, 방향성의 개수는 이에 한정되지 않는다.
해석 모드(a) | (b) | (c) | (d) | (e) | (f) | (g) | (h) |
2 | 18 | 18 | 34 | * | * | 34 | 2 |
3 | 19 | 17 | 33 | 19 | 17 | 3 | 33 |
4 | 20 | 16 | 32 | 20 | 16 | 4 | 32 |
5 | 21 | 15 | 31 | 21 | 15 | 5 | 31 |
6 | 22 | 14 | 30 | 22 | 14 | 6 | 30 |
7 | 23 | 13 | 29 | 23 | 13 | 7 | 29 |
8 | 24 | 12 | 28 | 24 | 12 | 8 | 28 |
9 | 25 | 11 | 27 | 25 | 11 | 9 | 27 |
10 | 26 | 10 | 26 | 26 | 10 | 10 | 26 |
11 | 27 | 9 | 25 | 27 | 9 | 11 | 25 |
12 | 28 | 8 | 24 | 28 | 8 | 12 | 24 |
13 | 29 | 7 | 23 | 29 | 7 | 13 | 23 |
14 | 30 | 6 | 22 | 30 | 6 | 14 | 22 |
15 | 31 | 5 | 21 | 31 | 5 | 15 | 21 |
16 | 32 | 4 | 20 | 32 | 4 | 16 | 20 |
17 | 33 | 3 | 19 | 33 | 3 | 17 | 19 |
18 | 2, 34 | 2, 34 | 18 | 2, 34 | 2, 34 | 18 | 18 |
19 | 3 | 33 | 17 | 3 | 33 | 19 | 17 |
20 | 4 | 32 | 16 | 4 | 32 | 20 | 16 |
21 | 5 | 31 | 15 | 5 | 31 | 21 | 15 |
22 | 6 | 30 | 14 | 6 | 30 | 22 | 14 |
23 | 7 | 29 | 13 | 7 | 29 | 23 | 13 |
24 | 8 | 28 | 12 | 8 | 28 | 24 | 12 |
25 | 9 | 27 | 11 | 9 | 27 | 25 | 11 |
26 | 10 | 26 | 10 | 10 | 26 | 26 | 10 |
27 | 11 | 25 | 9 | 11 | 25 | 27 | 9 |
28 | 12 | 24 | 8 | 12 | 24 | 28 | 8 |
29 | 13 | 23 | 7 | 13 | 23 | 29 | 7 |
30 | 14 | 22 | 6 | 14 | 22 | 30 | 6 |
31 | 15 | 21 | 5 | 15 | 21 | 31 | 5 |
32 | 16 | 20 | 4 | 16 | 20 | 32 | 4 |
33 | 17 | 19 | 3 | 17 | 19 | 33 | 3 |
34 | * | * | 2 | * | 18 | 2 | 34 |
또한, 공간적 예측시 퍼스펙티브의 차이를 고려하여, 영상 정보를 보정할 필요가 있다. 도 40은 정육면체 전방향 영상의 공간적 예측에 사용되는 참조 샘플의 위치를 설명하기 위한 도면이다. 도 40에서 점선 박스는 각 CTU(블록 A, B 및 C)의 공간적 예측에 사용되는 참조 샘플의 위치를 나타낸다. 도 40의 (a)에 도시된 바와 같이, 정육면체 전방향 영상의 공간적 예측을 수행할 때, 전개도 상에서 참조 샘플의 존재하지 않는 경우가 있다. 예컨대, 도 40의 (a)에 도시된 좌상단 CTU(블록 A)의 경우, 좌상단 참조 샘플(X)이 존재하지 않는다. 또한, 우단 CTU(블록 B)와 하단 CTU(블록 C)의 경우, 퍼스펙티브 간의 차이에 의해, 올바른 참조 샘플이 선택되지 않을 수 있다. 전술한 바와 같이, 참조 샘플이 존재하지 않는 경우 및/또는 퍼스펙티브 간의 차이로 인해 픽셀 정보의 보정이 필요한 경우, 공간적 예측을 수행할 때, 이웃 퍼스펙티브의 샘플 값을 이용하여, 존재하지 않는 샘플 값을 유도하거나, 또는 현재 퍼스펙티브에 맞게 이웃 퍼스펙티브를 변환해서 참조 샘플을 결정할 수 있다.
예컨대, 도 40의 (a)의 블록 A의 참조 샘플(X)는 퍼스펙티브 P1과 P2의 영상 정보를 보간함으로써 생성할 수 있다. 또한, 퍼스펙티브 P3와 시점이 서로 다른 퍼스펙티브 P4 및/또는 P6의 경우, 시점 보정을 통하여 올바른 참조 샘플을 생성할 수 있다.
도 41은 정육면체 전방향 영상을 전개도상에의 연속성을 활용하여 병렬 처리하는 방법을 설명하기 위한 도면이다.
도 41에 사용된 두 개의 정육면체 전개도는 도 11의 (a) 및 (e)와 같다. 도 41에 도시된 예에서, 각 퍼스펙티브는 5x5 CTU를 포함하며, 각 CTU 내의 숫자는 WPP 처리 순서를 나타낸다. 부/복호화의 처리는 도 41의 (a)의 빗금친 블록 a1 및 a2로부터 시작될 수 있다. 3 차원이 아닌 단순 전개도상에서는 퍼스펙티브 A와 B는 서로 참조하지 않을 수 있다. 도 41의 (a)의 블록 a1 과 a2의 위치에서 동시에 부/복호화가 시작되어도, 블록 a2가 속한 행의 처리가 블록 a1이 속한 열에 다다랐을 때는 의존성이 해결된 상태이기 때문에 의존성에 의한 지연이 발생하지 않는다.
마찬가지로, 도 41의 (b)의 경우에도, 블록 b1과 b2의 위치에서 동시에 부/복호화가 시작되어도, 블록 b2가 속한 행의 처리가 블록 b1이 속한 열에 다다랐을 때는 의존성이 해결된 상태이므로, 의존성에 의한 지연이 발생하지 않는다.
도 41에 도시된 예에서는, 부호화기는 전개도상에서 둘 이상의 위치에서 부/복호화를 개시하게 된다. 따라서, 예컨대, 부호화기는 블록 a1 및 a2에 대한 두 개의 엔트로피 정보(예컨대, 엔트로피 문맥 테이블)를 사용할 수 있다. 복호화기는 부호화기에서 사용된 방식을 알아야 복호화를 수행할 수 있다. 따라서, 부호화기에서 사용한 엔트로피 정보, 부호화 개시 시점 및/또는 전개도에 관한 정보 등은 비트스트림을 통해 시그널링될 수 있다. 또는 룩업 테이블을 참조함으로써 수행될 수 있다. 또는 다른 부호화 파라미터 및/또는 내부 변수에 기초하여 유도할 수 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.
본 발명은 영상을 부호화/복호화하는데 이용될 수 있다.
Claims (22)
- 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 방법에 있어서,하나 이상의 퍼스펙티브 영상을 선택하는 단계;상기 선택된 퍼스펙티브 영상에 대한 부호화를 시작하는 단계; 및상기 선택된 퍼스펙티브 영상의 부호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 부호화를 시작하는 단계를 포함하는 영상의 부호화 방법.
- 제1항에 있어서,상기 복수의 퍼스펙티브 영상은 360도 전방향 영상을 N면체에 투영시켜 획득한 N개의 영상인 영상의 부호화 방법.
- 제2항에 있어서,상기 N면체는 정육면체인 영상의 부호화 방법.
- 제1항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상은 서로 이웃하지 않는 둘 이상의 퍼스펙티브 영상인 영상의 부호화 방법.
- 제3항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상은 정육면체 상에서 서로 마주보는 두 개의 퍼스펙티브 영상인 영상의 부호화 방법.
- 제1항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상은 다른 퍼스펙티브를 참조하지 않고 부호화되는 영상의 부호화 방법.
- 제1항에 있어서,상기 복수의 퍼스펙티브 영상의 각각은 WPP(Wavefront Parallel Processing)를 이용하여 부호화되는 영상의 부호화 방법.
- 제7항에 있어서,상기 복수의 퍼스펙티브 영상의 각각에 대한 상기 WPP의 진행 순서는 해당 퍼스펙티브에 따라 적응적으로 결정되는 영상의 부호화 방법.
- 제8항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상의 좌상단에서 우하단의 순서로 진행되는 영상의 부호화 방법.
- 제8항에 있어서,상기 이웃 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상에 포함된 블록들 중, 의존성이 해결된 블록으로부터 시작되는 영상의 부호화 방법.
- 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 방법에 있어서,하나 이상의 퍼스펙티브 영상을 선택하는 단계;상기 선택된 퍼스펙티브 영상에 대한 복호화를 시작하는 단계; 및상기 선택된 퍼스펙티브 영상의 복호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 복호화를 시작하는 단계를 포함하는 영상의 복호화 방법.
- 제11항에 있어서,상기 복수의 퍼스펙티브 영상은 360도 전방향 영상을 N면체에 투영시켜 획득한 N개의 영상인 영상의 복호화 방법.
- 제12항에 있어서,상기 N면체는 정육면체인 영상의 복호화 방법.
- 제11항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상은 서로 이웃하지 않는 둘 이상의 퍼스펙티브 영상인 영상의 복호화 방법.
- 제13항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상은 정육면체 상에서 서로 마주보는 두 개의 퍼스펙티브 영상인 영상의 복호화 방법.
- 제11항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상은 다른 퍼스펙티브를 참조하지 않고 복호화되는 영상의 복호화 방법.
- 제11항에 있어서,상기 복수의 퍼스펙티브 영상의 각각은 WPP(Wavefront Parallel Processing)를 이용하여 복호화되는 영상의 복호화 방법.
- 제17항에 있어서,상기 복수의 퍼스펙티브 영상의 각각에 대한 상기 WPP의 진행 순서는 해당 퍼스펙티브에 따라 적응적으로 결정되는 영상의 복호화 방법.
- 제18항에 있어서,상기 선택된 하나 이상의 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상의 좌상단에서 우하단의 순서로 진행되는 영상의 복호화 방법.
- 제18항에 있어서,상기 이웃 퍼스펙티브 영상에 대한 상기 WPP는 해당 퍼스펙티브 영상에 포함된 블록들 중, 의존성이 해결된 블록으로부터 시작되는 영상의 복호화 방법.
- 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 부호화 장치로서,하나 이상의 퍼스펙티브 영상을 선택하고, 상기 선택된 퍼스펙티브 영상에 대한 부호화를 시작하고, 상기 선택된 퍼스펙티브 영상의 부호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 부호화를 시작하도록 구성된 영상의 부호화 장치.
- 복수의 퍼스펙티브(perspective) 영상을 포함하는 영상의 복호화 장치로서,하나 이상의 퍼스펙티브 영상을 선택하고, 상기 선택된 퍼스펙티브 영상에 대한 복호화를 시작하고, 상기 선택된 퍼스펙티브 영상의 복호화 진행 정도에 따라 의존성이 해결된 하나 이상의 이웃 퍼스펙티브에 대한 복호화를 시작하도록 구성된 영상의 부호화 방법.
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0158621 | 2016-11-25 | ||
KR20160158621 | 2016-11-25 | ||
KR1020170083179A KR102004247B1 (ko) | 2016-11-25 | 2017-06-30 | 영상 병렬 처리 방법 및 장치 |
KR10-2017-0083179 | 2017-06-30 | ||
KR1020170103895A KR102011428B1 (ko) | 2016-11-25 | 2017-08-17 | 영상 병렬 처리 방법 및 장치 |
KR10-2017-0103895 | 2017-08-17 | ||
KR10-2017-0139101 | 2017-10-25 | ||
KR1020170139101A KR102011429B1 (ko) | 2016-11-25 | 2017-10-25 | 영상 병렬 처리 방법 및 장치 |
KR10-2017-0143426 | 2017-10-31 | ||
KR1020170143426A KR102011430B1 (ko) | 2016-11-25 | 2017-10-31 | 영상 병렬 처리 방법 및 장치 |
KR1020170147172A KR102011431B1 (ko) | 2016-11-25 | 2017-11-07 | 영상 병렬 처리 방법 및 장치 |
KR10-2017-0147172 | 2017-11-07 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2018097577A1 true WO2018097577A1 (ko) | 2018-05-31 |
Family
ID=62196005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2017/013284 WO2018097577A1 (ko) | 2016-11-25 | 2017-11-21 | 영상 병렬 처리 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2018097577A1 (ko) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120084628A (ko) * | 2011-01-20 | 2012-07-30 | 삼성전자주식회사 | 다시점 영상 부호화/복호화 장치 및 방법 |
KR20120118780A (ko) * | 2011-04-19 | 2012-10-29 | 삼성전자주식회사 | 다시점 비디오의 움직임 벡터 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
KR20130117749A (ko) * | 2010-07-16 | 2013-10-28 | 소니 주식회사 | 화상 처리 장치와 화상 처리 방법 |
KR20140035065A (ko) * | 2012-09-13 | 2014-03-21 | 전자부품연구원 | 다시점 비디오 인코딩 및 디코딩 방법 및 이를 이용한 인코딩 및 디코딩 장치 |
KR20150036169A (ko) * | 2012-06-29 | 2015-04-07 | 퀄컴 인코포레이티드 | 타일들 및 파면 병렬 프로세싱 |
KR20160058519A (ko) * | 2014-11-17 | 2016-05-25 | 삼성전자주식회사 | 복수의 영상들에 대한 영상 처리 |
-
2017
- 2017-11-21 WO PCT/KR2017/013284 patent/WO2018097577A1/ko active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130117749A (ko) * | 2010-07-16 | 2013-10-28 | 소니 주식회사 | 화상 처리 장치와 화상 처리 방법 |
KR20120084628A (ko) * | 2011-01-20 | 2012-07-30 | 삼성전자주식회사 | 다시점 영상 부호화/복호화 장치 및 방법 |
KR20120118780A (ko) * | 2011-04-19 | 2012-10-29 | 삼성전자주식회사 | 다시점 비디오의 움직임 벡터 부호화 방법 및 장치, 그 복호화 방법 및 장치 |
KR20150036169A (ko) * | 2012-06-29 | 2015-04-07 | 퀄컴 인코포레이티드 | 타일들 및 파면 병렬 프로세싱 |
KR20140035065A (ko) * | 2012-09-13 | 2014-03-21 | 전자부품연구원 | 다시점 비디오 인코딩 및 디코딩 방법 및 이를 이용한 인코딩 및 디코딩 장치 |
KR20160058519A (ko) * | 2014-11-17 | 2016-05-25 | 삼성전자주식회사 | 복수의 영상들에 대한 영상 처리 |
Non-Patent Citations (1)
Title |
---|
YU , MATT ET AL.: "A Framework to Evaluate Omnidirectional Video Coding Schemes", 201 5 IEEE INTERNATIONAL SYMPOSIUM ON MIXED AND AUGMENTED REALITY, 29 September 2015 (2015-09-29), pages 31 - 36, XP032809476 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017090988A1 (ko) | 다시점 비디오의 부호화/복호화 방법 | |
WO2020226424A1 (ko) | Mip 및 lfnst를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2018030599A1 (ko) | 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치 | |
WO2017086747A1 (ko) | 기하 변환 픽처를 이용한 영상의 부호화/복호화 방법 및 장치 | |
WO2021096172A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020055107A1 (ko) | 영상 코딩 시스템에서 어파인 mvp 후보 리스트를 사용하는 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2020050651A1 (ko) | 다중 변환 선택에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020036390A1 (ko) | 영상 신호를 처리하기 위한 방법 및 장치 | |
WO2021172912A1 (ko) | 사인 데이터 하이딩 관련 영상 디코딩 방법 및 그 장치 | |
WO2021096290A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2020013569A1 (ko) | 영상 코딩 시스템에서 어파인 움직임 예측에 기반한 영상 디코딩 방법 및 장치 | |
WO2021101205A1 (ko) | 영상 코딩 장치 및 방법 | |
WO2019194463A1 (ko) | 영상의 처리 방법 및 이를 위한 장치 | |
WO2018131830A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2018221946A1 (ko) | 비디오 신호 처리 방법 및 장치 | |
WO2021194308A1 (ko) | 랩-어라운드 움직임 보상에 기반하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체 | |
WO2020256485A1 (ko) | 크로마 블록의 적응적 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020262960A1 (ko) | 크로마 성분 부호화 블록의 최대 변환 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020262962A1 (ko) | 크로마 변환 블록의 최대 크기 제한을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020262963A1 (ko) | 크로마 블록의 최대 변환 크기 설정을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2021006700A1 (ko) | 영상 코딩 시스템에서 레지듀얼 코딩 방법에 대한 플래그를 사용하는 영상 디코딩 방법 및 그 장치 | |
WO2020256482A1 (ko) | 변환에 기반한 영상 코딩 방법 및 그 장치 | |
WO2021182802A1 (ko) | 비디오 또는 영상 코딩 시스템에서의 타일과 관련된 정보 및 슬라이스와 관련된 정보에 기반한 영상 코딩 방법 | |
WO2020256488A1 (ko) | 크로마 블록의 크기를 제한하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법 | |
WO2020256486A1 (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: 17874589 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 17874589 Country of ref document: EP Kind code of ref document: A1 |