WO2018066980A1 - 영상 데이터 부호화/복호화 방법 및 장치 - Google Patents

영상 데이터 부호화/복호화 방법 및 장치 Download PDF

Info

Publication number
WO2018066980A1
WO2018066980A1 PCT/KR2017/011138 KR2017011138W WO2018066980A1 WO 2018066980 A1 WO2018066980 A1 WO 2018066980A1 KR 2017011138 W KR2017011138 W KR 2017011138W WO 2018066980 A1 WO2018066980 A1 WO 2018066980A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
information
resizing
encoding
decoding
Prior art date
Application number
PCT/KR2017/011138
Other languages
English (en)
French (fr)
Inventor
김기백
Original Assignee
김기백
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김기백 filed Critical 김기백
Priority to KR1020237015505A priority Critical patent/KR20230070062A/ko
Priority to KR1020237015644A priority patent/KR20230070327A/ko
Priority to KR1020207014806A priority patent/KR102531386B1/ko
Priority to KR1020197011757A priority patent/KR20190052128A/ko
Publication of WO2018066980A1 publication Critical patent/WO2018066980A1/ko
Priority to US16/372,287 priority patent/US20190253624A1/en
Priority to US17/027,154 priority patent/US11483476B2/en
Priority to US17/579,225 priority patent/US11696035B2/en
Priority to US18/298,728 priority patent/US11838640B2/en
Priority to US18/298,718 priority patent/US11792523B2/en
Priority to US18/298,712 priority patent/US11792522B2/en
Priority to US18/299,195 priority patent/US11778332B2/en
Priority to US18/133,847 priority patent/US11778331B2/en
Priority to US18/133,830 priority patent/US11838639B2/en
Priority to US18/299,809 priority patent/US20230388644A1/en
Priority to US18/299,840 priority patent/US11812155B2/en
Priority to US18/299,836 priority patent/US11792524B2/en
Priority to US18/314,965 priority patent/US11902668B2/en
Priority to US18/499,152 priority patent/US20240064410A1/en
Priority to US18/498,561 priority patent/US11956548B2/en
Priority to US18/498,533 priority patent/US11949994B2/en
Priority to US18/498,575 priority patent/US11956549B2/en
Priority to US18/525,795 priority patent/US20240107170A1/en
Priority to US18/525,793 priority patent/US20240098373A1/en
Priority to US18/524,452 priority patent/US20240098372A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/698Control of cameras or camera modules for achieving an enlarged field of view, e.g. panoramic image capture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/563Motion estimation with padding, i.e. with filling of non-object values in an arbitrarily shaped picture block or region for estimation purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the present invention relates to video data encoding and decoding technology, and more particularly, to a method and apparatus for processing encoding and decoding of 360 degree video for an immersive media service.
  • An object of the present invention for solving the above problems is to provide a method for improving the image setting process in the initial stage of encoding and decoding. More specifically, the present invention provides an encoding and decoding method and apparatus for improving an image setting process considering a 360 degree image characteristic.
  • One aspect of the present invention for achieving the above object provides a decoding method of a 360-degree image.
  • the method of decoding a 360-degree image receiving a bitstream encoded with a 360-degree image, generating a predictive image by referring to syntax information obtained from the received bitstream, the bit of the generated prediction image
  • the method may include obtaining a decoded image by combining the stream with a residual image obtained by inverse quantization and inverse transform, and reconstructing the decoded image into a 360 degree image according to a projection format.
  • the syntax information may include projection format information about the 360 degree image.
  • the projection format information may include an ERP (Equi-Rectangular Projection) format in which the 360-degree image is projected in a two-dimensional plane, a CMP (CubeMap Projection) format in which the 360-degree image is projected into a cube, and the 360-degree octahedron It may be information indicating at least one of an OHta (OctaHedron Projection) format projected on the screen and an IcoSahedral Projection (ISP) format on which the 360 degree image is projected on a polyhedron.
  • ERP Equi-Rectangular Projection
  • CMP CubeMap Projection
  • ISP IcoSahedral Projection
  • the reconstructing may include obtaining placement information based on regional packing by referring to the syntax information, and rearranging each block of the decoded image according to the placement information. have.
  • the generating of the prediction image may include performing image expansion on a reference picture obtained by reconstructing the bitstream, and generating a prediction image by referring to the reference image on which the image expansion is performed. It may include.
  • the performing of the image expansion may include performing an image expansion based on a division unit of the reference image.
  • the extended region may be individually generated for each division unit by using the boundary pixels of the division unit.
  • the extended area may be generated using a boundary pixel of a division unit that is spatially adjacent to the division unit to be extended or a division pixel of a division unit having a continuity of the image and the division unit to be extended.
  • the extended image may be generated with respect to the combined region by using boundary pixels of a region in which two or more spatially adjacent division units are combined among the division units. Can be.
  • the extended region may be generated between the adjacent division units by using all the adjacent pixel information of the spatially adjacent division units among the division units.
  • the extended area may be generated using an average value of adjacent pixels of each of the spatially adjacent division units.
  • the generating of the prediction image may include performing image expansion on a reference picture obtained by reconstructing the bitstream and referring to the reference image on which the image expansion has been performed. It may include the step of generating.
  • the generating of the predictive image according to the intra prediction may include identifying a reference possibility of a reference block adjacent to a current block to be reconstructed in the reference image, by referring to a reference pixel determined according to the reference possibility.
  • the method may include generating a prediction block by performing intra prediction on the current block.
  • the position adjacent to the current block may include the upper left, upper, right upper and left positions of the current block.
  • the method may include determining whether one region exists within the reference image.
  • the method may include performing an intra prediction on the current block by referring to a pixel of the first area as a reference pixel after determining whether the region in which the encoding / decoding is completed exists in the reference image. have.
  • the generating of the prediction image may include: verifying prediction mode precision of the current block to be decoded from the syntax information, and confirming the prediction mode precision and the MPM mode information obtained from the syntax information correspond to each other. And reconstructing the MPM mode information according to the prediction mode precision for the current block.
  • the MPM mode information may indicate an intra prediction mode for at least one block among blocks adjacent to the current block.
  • the generating of the prediction image may further include performing intra prediction according to an intra prediction mode of a block adjacent to the current block by referring to the reconstructed information of the MPM mode information.
  • the performing of the intra prediction according to the intra prediction mode of the block adjacent to the current block may include configuring a reference pixel belonging to the adjacent block and performing the intra prediction using the reference pixel. Generating a predictive block for.
  • the reference pixel of the unavailable block may be configured by using boundary pixels of another block having image correlation with the current block.
  • compression performance can be improved.
  • the 360-degree image can improve the compression performance.
  • FIG. 1 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • 3 is an exemplary diagram of image information divided by layers in order to compress an image.
  • FIG. 4 is a conceptual diagram illustrating various examples of image segmentation according to an embodiment of the present invention.
  • FIG. 5 is another exemplary diagram of an image segmentation method according to an exemplary embodiment.
  • FIG. 6 is an exemplary diagram for a method of adjusting a size of a general image.
  • FIG. 7 is an exemplary view of image resizing according to an embodiment of the present invention.
  • FIG. 8 is an exemplary view illustrating a method of configuring an extended area in an image resizing method according to an embodiment of the present invention.
  • FIG. 9 is an exemplary view illustrating a method of configuring an area to be deleted and an area to be reduced and generated in an image resizing method according to an embodiment of the present invention.
  • FIG. 10 is an exemplary view of image reconstruction according to an embodiment of the present invention.
  • FIG. 11 is an exemplary diagram illustrating an image before and after an image setting process according to an embodiment of the present invention.
  • FIG. 12 illustrates an example of size adjustment for each segmentation unit in an image according to an exemplary embodiment.
  • FIG. 13 is an exemplary diagram of a size adjustment or setting set of a division unit in an image.
  • FIG. 14 is an exemplary diagram illustrating an image scaling process and a scaling process of segmentation units in an image.
  • 15 is an exemplary diagram illustrating a three-dimensional space and a two-dimensional planar space representing a three-dimensional image.
  • 16A to 16D are conceptual views illustrating a projection format according to an embodiment of the present invention.
  • FIG. 17 is a conceptual view of implementing a projection format included in a rectangular image according to an embodiment of the present invention.
  • FIG. 18 is a conceptual diagram of a method of converting a projection format into a rectangular shape according to an embodiment of the present invention, and repositioning the surface to exclude a meaningless area.
  • FIG. 19 is a conceptual view illustrating a wrapping process for each region in a rectangular image of a CMP projection format according to an embodiment of the present invention.
  • 20 is a conceptual diagram for 360-degree image segmentation according to an embodiment of the present invention.
  • 21 is an exemplary diagram of 360 degree image segmentation and image reconstruction according to an embodiment of the present invention.
  • FIG. 22 illustrates an example of dividing an image projected by CMP or a packaged image into tiles.
  • FIG. 23 is a conceptual diagram illustrating an example of adjusting the size of a 360 degree image according to an embodiment of the present invention.
  • 24 is a conceptual diagram illustrating continuity between surfaces in a projection format (eg, CMP, OHP, ISP) according to an embodiment of the present invention.
  • a projection format eg, CMP, OHP, ISP
  • FIG. 25 is a conceptual diagram illustrating the continuity of the surface of FIG. 21C, which is an image obtained through an image reconstruction process or a region-based wrapping process in a CMP projection format.
  • FIG. 26 is an exemplary diagram for explaining an image size adjustment in a CMP projection format according to an embodiment of the present invention.
  • FIG. 27 is an exemplary diagram for explaining a size adjustment for a packaged image converted to a CMP projection format according to an embodiment of the present invention.
  • FIG. 28 is an exemplary diagram for describing a data processing method in resizing a 360 degree image according to an embodiment of the present invention.
  • 29 is an exemplary diagram illustrating a tree-based block form.
  • FIG. 30 shows an example of a type based block shape.
  • FIG. 31 is an exemplary view illustrating various block types that may be acquired by a block divider of the present invention.
  • FIG. 31 is an exemplary view illustrating various block types that may be acquired by a block divider of the present invention.
  • 32 is an exemplary diagram for describing tree based partitioning according to an embodiment of the present invention.
  • 33 is an exemplary diagram for explaining tree-based partitioning according to an embodiment of the present invention.
  • 34 is an exemplary diagram for describing a configuration of a reference pixel used for intra prediction.
  • 35 is an exemplary diagram for describing a reference pixel range used for intra prediction.
  • FIG. 36 shows an example of an intra prediction mode of HEVC.
  • 37A to 37D are exemplary views for explaining various cases of an intra prediction mode candidate group.
  • 38 is an exemplary diagram for describing prediction mode precision according to an embodiment of the present invention.
  • 39 is an exemplary diagram for changing the precision of a prediction mode according to an embodiment of the present invention.
  • FIG. 40 is a block diagram illustrating an intra prediction configuration of a video encoding apparatus according to an embodiment of the present invention.
  • FIG. 41 is a block diagram illustrating an intra prediction configuration of a video decoding apparatus according to an embodiment of the present invention.
  • first, second, A, and B may be used to describe various components, but the components should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another.
  • the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component.
  • the video encoding device and the decoding device include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), a portable multimedia player (PMP), and a PlayStation Portable (PSP).
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • PSP PlayStation Portable
  • Wireless Communication Terminal Smart Phone, TV, Virtual Reality (VR), Augmented Reality (AR), Mixed Reality (MR), Head It may be a user terminal such as a head mounted display (HMD) or smart glasses, or a server terminal such as an application server and a service server, and a communication device such as a communication modem for communicating with various devices or wired / wireless communication networks.
  • HMD head mounted display
  • server terminal such as an application server and a service server
  • a communication device such as a communication modem for communicating with various devices or wired / wireless communication networks.
  • Program to encode or decode an image, or to predict an intra-screen or inter-screen for encoding or decoding It may include various devices including a memory for storing RAM and data, and a processor for executing and controlling a program by executing a program.
  • the image encoded in the bitstream by the video encoding apparatus is real-time or non-real-time through the wired or wireless communication network (Network), such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network, etc. It may be transmitted to an image decoding apparatus through various communication interfaces such as a universal serial bus (USB), and the like, may be decoded by the image decoding apparatus, reconstructed, and played back.
  • Network such as the Internet, local area wireless communication network, wireless LAN network, WiBro network, mobile communication network, etc.
  • USB universal serial bus
  • an image encoded in a bitstream by the image encoding apparatus may be transferred from the encoding apparatus to the decoding apparatus through a computer-readable recording medium.
  • the above-described image encoding apparatus and the image decoding apparatus may be separate apparatuses, but may be made of one image encoding / decoding apparatus according to implementation.
  • some components of the image encoding apparatus may be implemented to include at least the same structure or to perform at least the same function as substantially the same technical elements as some components of the image decoding apparatus.
  • the image decoding apparatus corresponds to a computing device applying the image encoding method performed by the image encoding apparatus to the decoding, the following description will focus on the image encoding apparatus.
  • the computing device may include a memory for storing a program or software module for implementing an image encoding method and / or an image decoding method, and a processor connected to the memory and executing a program.
  • the image encoding apparatus may be referred to as an encoder, and the image decoding apparatus may be referred to as a decoder.
  • an image may be configured as a series of still images, and the still images may be classified into a group of pictures (GOP), and each still image may be referred to as a picture.
  • the picture may represent one of a frame and a field in a progressive signal and an interlace signal, and when the encoding / decoding is performed in units of frames, the image may be a 'frame', a field. When executed in units, it can be represented as a 'field'.
  • the present invention assumes and describes a progressive signal, it may be applicable to an interlaced signal.
  • a unit such as a GOP or a sequence may exist, and each picture may be divided into predetermined regions such as slices, tiles, blocks, and the like.
  • one GOP may include units such as an I picture, a P picture, and a B picture.
  • An I picture may refer to a picture that is encoded / decoded by itself without using a reference picture, and a P picture and a B picture use a reference picture to perform a process such as motion estimation and motion compensation. This may mean a picture to be encoded / decoded by performing.
  • I picture and P picture can be used as reference picture
  • B picture I picture and P picture can be used as reference picture, but the above definition is also changed by the setting of encoding / decoding. Can be.
  • the picture referred to for encoding / decoding is referred to as a reference picture, and the referred block or pixel is referred to as a reference block and a reference pixel.
  • the reference data may be not only pixel values of a spatial domain but also coefficient values of a frequency domain and various encoding / decoding information generated and determined during an encoding / decoding process.
  • intra prediction prediction information or motion related information in the prediction unit, transform related information in the transform unit / inverse transform unit, quantization information in the quantization unit / dequantizer, and encoding / decoding related information in the encoder / decoder ( Context information), the filter related information, etc. may correspond to the in-loop filter unit.
  • the minimum unit constituting the image may be a pixel, and the number of bits used to represent one pixel is called a bit depth.
  • the bit depth may be 8 bits and may support more bit depths according to encoding settings.
  • the bit depth may support at least one bit depth according to a color space.
  • at least one color space may be configured according to a color format of an image. It may consist of one or more pictures with a certain size or one or more pictures with other sizes, depending on the color format. For example, in the case of YCbCr 4: 2: 0, it may be composed of one luminance component (Y in this example) and two chrominance components (Cb / Cr in this example).
  • the composition ratio may have a length of 1: 2.
  • 4: 4: 4 may have the same ratio of width and length.
  • the setting independent of each color space may mean having a setting of the corresponding color space irrespective of the composition ratio of each component or independently. In the present invention, depending on the encoder / decoder, some components may have independent settings or dependent settings.
  • Configuration information or syntax elements required in the video encoding process may be determined at the unit level of a video, sequence, picture, slice, tile, block, and the like. These include VPS (Video Parameter Set), SPS (Sequence Parameter Set), Setting information transmitted from the encoder by parsing in the same level unit in the bit stream in units such as Picture Parameter Set (PPS), Slice Header, Tile Header, Block Header, etc. It can be used to reconstruct the image decoding process. In addition, related information may be transmitted in a bitstream, parsed, and used in the form of Supplementary Enhancement Information (SEI) or Metadata. Each parameter set has a unique ID value, and a lower parameter set may have an ID value of a higher parameter set to be referred to.
  • SEI Supplementary Enhancement Information
  • the lower parameter set may refer to information of an upper parameter set having a matching ID value among one or more higher parameter sets.
  • a unit corresponding to a case in which any one of the examples of the various units mentioned above includes one or more other units may be referred to as an upper unit, and the included unit may be referred to as a lower unit.
  • each of the units may include the contents of the independent settings or the contents of the settings depending on the previous, subsequent or higher units.
  • the dependent setting may be understood to indicate setting information of a corresponding unit as flag information (for example, 1 if a bit is 1 and 0 if not) according to a setting of a higher unit before and after.
  • the setting information in the present invention will be described mainly on the example of the independent setting, but the example of adding or replacing the content of the relationship depending on the setting information of the previous or subsequent units or higher units of the current unit May be included.
  • 1 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • 2 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • the image encoding apparatus may include a predictor, a subtractor, a transformer, a quantizer, an inverse quantizer, an inverse transformer, an adder, an in-loop filter, a memory, and / or an encoder.
  • the image decoding apparatus may include a decoder, a predictor, an inverse quantizer, an inverse transform unit, an adder, an in-loop filter unit, and / or a memory, and some of the above components are necessarily included. Not all of them may be included, optionally, some or all of them may be included, and some additional components not shown may be included.
  • the image encoding apparatus and the image decoding apparatus may be separate apparatuses, but may be made of one image encoding / decoding apparatus according to implementation.
  • some components of the image encoding apparatus may be implemented to include at least the same structure or to perform at least the same function as substantially the same technical elements as some components of the image decoding apparatus. Therefore, detailed descriptions of the corresponding technical elements and their operating principles will be omitted.
  • the image decoding apparatus corresponds to a computing device applying the image encoding method performed by the image encoding apparatus to the decoding, the following description will focus on the image encoding apparatus.
  • the image encoding apparatus may be referred to as an encoder, and the image decoding apparatus may be referred to as a decoder.
  • the prediction unit may be implemented using a prediction module, which is a software module, and may generate a prediction block by using an intra prediction method or an inter prediction method for a block to be encoded.
  • the predictor generates a prediction block by predicting a current block to be currently encoded in the image. That is, the prediction unit includes a prediction block having a predicted pixel value of each pixel generated by predicting a pixel value of each pixel of the current block to be encoded in the image according to intra prediction or inter prediction.
  • the prediction unit may transmit information necessary for generating the prediction block to the encoder to encode information on the prediction mode, and store the information according to the bitstream and transmit the information to the decoder, and the decoder of the decoder After parsing the information, the information about the prediction mode can be restored and used for intra prediction or inter prediction.
  • the subtraction unit subtracts the prediction block from the current block to generate a residual block. That is, the subtractor calculates a difference between the pixel value of each pixel of the current block to be encoded and the predicted pixel value of each pixel of the prediction block generated through the predictor to generate a residual block that is a residual signal in the form of a block. .
  • the transform unit may convert a signal belonging to a spatial domain into a signal belonging to a frequency domain, and a signal obtained through a transformation process is called a transformed coefficient.
  • a transform block having a transform coefficient may be obtained by transforming the residual block having the residual signal received from the subtractor, but the input signal is determined according to an encoding setting, which is not limited to the residual signal.
  • the transform unit can transform the residual block using transformation techniques such as a Hadamard transform, a Discrete Sine Transform (DST Based-Transform), or a Discrete Cosine Transform (DCT Based-Transform).
  • transformation techniques such as a Hadamard transform, a Discrete Sine Transform (DST Based-Transform), or a Discrete Cosine Transform (DCT Based-Transform).
  • DST Based-Transform a Discrete Sine Transform
  • DCT Based-Transform Discrete Cosine Transform
  • At least one of the transform schemes may be supported, and at least one detailed transform scheme may be supported in each transform scheme.
  • the at least one detailed transformation technique may be a transformation technique in which a part of the basis vector is configured differently in each transformation technique.
  • DST-based and DCT-based transformations can be supported as a conversion technique.
  • DST, DST-I, DST-II, DST-III, DST-V, DST-VI, DST-VII, DST Detailed conversion techniques such as -VIII can be supported, and detailed conversion techniques such as DCT-I, DCT-II, DCT-III, DCT-V, DCT-VI, DCT-VII, and DCT-VIII are supported for DCT. Can be.
  • One of the transforms may be set as a basic transform technique, and an additional transform technique (for example, multiple transform schemes) Conversion techniques).
  • additional transform techniques for example, multiple transform schemes
  • Whether to support additional transform schemes may be determined in units of sequence, picture, slice, tile, etc. so that related information may be generated in the above units, and when support for additional transform schemes is supported, transform scheme selection information is determined in units such as blocks. Related information may be generated.
  • the conversion can be performed in the horizontal / vertical direction.
  • a pixel value of a spatial domain may be transformed into a frequency domain by performing a one-dimensional transformation in a horizontal direction using a basis vector in the transformation and a total two-dimensional transformation by performing a one-dimensional transformation in a vertical direction.
  • the conversion in the horizontal / vertical direction can be performed adaptively.
  • whether to perform adaptive operation may be determined according to at least one encoding setting.
  • DCT-I may be applied in the horizontal direction and DST-I in the vertical direction when the prediction mode is the horizontal mode
  • DCT-VI can be applied in the vertical direction, DCT-II in the horizontal direction, DCT-V in the vertical direction, and in the horizontal direction in the case of Diagonal down left.
  • DST-I, DST-VI may be applied in the vertical direction.
  • the size and shape of each transform block may be determined according to the encoding cost for each candidate of the size and shape of the transform block, and information such as image data of the determined transform block and the size and shape of the determined transform block may be encoded.
  • a square transform among the transform forms may be set as a basic transform form, and an additional transform form (for example, a rectangular form) may be supported.
  • an additional transform form for example, a rectangular form
  • Whether to support the additional transform type may be determined in units of a sequence, a picture, a slice, a tile, and the like, and related information may be generated in the unit, and the transform type selection information may be determined in a unit such as a block to generate related information.
  • support in the form of transform blocks may be determined according to encoding information.
  • the encoding information may correspond to a slice type, an encoding mode, a size and shape of a block, a block division scheme, and the like. That is, one transform type may be supported according to at least one encoded information, and a plurality of transform types may be supported according to at least one encoded information.
  • the former may be an implicit situation, and the latter may be an explicit situation.
  • adaptive selection information indicating an optimal candidate group among a plurality of candidate groups may be generated and recorded in the bitstream.
  • the encoded information when the encoded information is explicitly generated, it may be understood that the information is stored in the bitstream in various units, and the decoder parses the related information in various units and restores the decoded information. have.
  • the encoder and the decoder are processed by the same process and rule.
  • the rectangular support may be determined based on the slice type.
  • the supported transformation may be a square transformation
  • the transformation may be a square or rectangular transformation.
  • a rectangular transform support may be determined according to an encoding mode.
  • the supported conversion form may be a square form
  • the supported transformation form may be a square form or a rectangular form.
  • the rectangular support may be determined based on the size and shape of the block.
  • the transform type supported in blocks of a predetermined size or more may be a square type transform, and the transform type supported in a block smaller than a predetermined size may be a square or rectangular type of transform.
  • the rectangular support may be determined based on the block division scheme.
  • the supported transform type may be a square type transform, or a block obtained through a binary tree splitting method.
  • the type of transform supported may be a square or rectangular type of transform.
  • the above example is an example of transform type support according to one piece of encoding information, and a plurality of pieces of information may be combined to participate in additional transform type support setting.
  • the above example is not limited to the above, but is an example of additional transform type support according to various encoding settings, and various modification examples may be possible.
  • the conversion process may be omitted depending on the encoding setting or the characteristics of the image.
  • a conversion process (including an inverse process) may be omitted according to an encoding setting (assuming lossless compression environment in this example).
  • the conversion process may be omitted when the compression performance through the conversion is not performed according to the characteristics of the image.
  • the omitted transform may be an entire unit, or one of horizontal and vertical units may be omitted, and it may be determined whether such omission is supported according to the size and shape of the block.
  • the conversion skip flag when the conversion skip flag is 1, the conversion is not performed in the horizontal and vertical directions, and when 0, the conversion may be performed in the horizontal and vertical directions.
  • the first conversion skip flag when the first conversion skip flag is 1, the conversion is not performed in the horizontal direction, and when 0 is converted, the conversion is performed in the horizontal direction, and the second conversion skip flag is performed. If 1, no transformation is performed in the vertical direction. If 0, the transformation is performed in the vertical direction.
  • the conversion omission may be supported.
  • the conversion omission may not be supported.
  • M (m) and N (n) may be the same or different.
  • the transformation related setting may be determined in units of a sequence, a picture, a slice, and the like.
  • the transformation scheme setting may be determined according to at least one encoding information.
  • the encoding information may correspond to a slice type, an encoding mode, a size and shape of a block, a prediction mode, and the like.
  • support of a transformation scheme may be determined according to an encoding mode.
  • the conversion technique supported may be DCT-I, DCT-III, DCT-VI, DST-II, DST-III.
  • the conversion technique supported is DCT-II, DCT-III, DST. -III.
  • support of the conversion scheme may be determined according to the slice type.
  • the conversion schemes supported may be DCT-I, DCT-II, or DCT-III
  • the transformation schemes may be DCT-V, DST-V, or DST-VI.
  • the conversion scheme supported may be DCT-I, DCT-II, or DST-III.
  • support of a transformation scheme may be determined according to a prediction mode.
  • the conversion scheme supported in prediction mode A may be DCT-I, DCT-II
  • the conversion scheme supported in prediction mode B may be DCT-I, DST-I
  • the conversion scheme supported in prediction mode C is DCT. May be -I.
  • the prediction modes A and B may be a directional mode and the prediction mode C may be a non-directional mode.
  • support of the conversion scheme may be determined according to the size and shape of the block.
  • Conversion schemes supported on blocks of a certain size may be DCT-II
  • transformation schemes supported on blocks of a certain size may be DCT-II, DST-V, and supported on blocks above and below a certain size.
  • the conversion technique may be DCT-I, DCT-II, or DST-I.
  • the conversion scheme supported in the square form may be DCT-I, DCT-II
  • the transformation scheme supported in the rectangular form may be DCT-I, DST-I.
  • the above example is an example of supporting a transformation scheme according to one piece of encoding information, and a plurality of pieces of information may be combined to participate in additional transformation scheme support setting. It is not limited only to the above examples, but modifications to other examples may be possible.
  • the transformer may transmit information necessary to generate a transform block to the encoder to encode the information, and store the information in the bitstream and transmit the information to the decoder, and the decoder of the decoder parses the information and inversely transforms the information. Can be used for the process.
  • the quantization unit may quantize the input signal, and the signal obtained through the quantization process is called a quantized coefficient.
  • a quantization block having a quantization coefficient may be obtained by quantizing a residual block having a residual transform coefficient received from a transform unit.
  • the received signal is determined according to an encoding setting, which is not limited to the residual transform coefficient.
  • the quantization unit may quantize the transformed residual block using a quantization technique such as dead zone uniform threshold quantization, quantization weighted matrix, and the like, but is not limited thereto. Quantization techniques can be used. Whether to support the additional quantization scheme is determined in units of sequence, picture, slice, tile, etc. so that the related information can be generated in the unit, and when the support for additional quantization scheme is supported, the quantization scheme selection information is determined in units such as blocks. Related information may be generated.
  • a quantization technique such as dead zone uniform threshold quantization, quantization weighted matrix, and the like, but is not limited thereto. Quantization techniques can be used. Whether to support the additional quantization scheme is determined in units of sequence, picture, slice, tile, etc. so that the related information can be generated in the unit, and when the support for additional quantization scheme is supported, the quantization scheme selection information is determined in units such as blocks. Related information may be generated.
  • the quantization scheme configuration may be determined according to at least one encoding information.
  • the encoding information may correspond to a slice type, an encoding mode, a size and shape of a block, a prediction mode, and the like.
  • the quantization unit may set a quantization weight matrix according to an encoding mode to a weight matrix applied according to inter prediction / intra prediction.
  • the weight matrix applied according to the intra prediction mode may be different.
  • the quantization weight matrix may be a quantization matrix in which some of the quantization components are configured differently, when it is assumed that the size of the block is equal to the size of the quantization block.
  • the quantization process may be omitted according to the encoding setting or the characteristics of the image.
  • the quantization process (including the inverse process) may be omitted according to the encoding setting (assuming lossless compression environment in this example).
  • the quantization process may be omitted when the compression performance through quantization is not exhibited according to the characteristics of the image.
  • the omitted region may be an entire region or a partial region may be omitted, and it may be determined whether such omission is supported according to the size and shape of the block.
  • Information about a quantization parameter may be generated in units of a sequence, a picture, a slice, a tile, a block, and the like.
  • a basic QP may be set in an upper unit where QP information is first generated ⁇ 1>, and a QP may be set to a value that is the same as or different from the QP set in the upper unit as the lower unit ⁇ 2>.
  • the QP may be finally determined.
  • a unit such as a sequence or a picture may be an example corresponding to ⁇ 1>
  • a unit such as a slice, a tile, a block, etc. may be a ⁇ 2>
  • a unit such as a block may be an example corresponding to ⁇ 3>.
  • Information on the QP may be generated based on the QP in each unit.
  • the preset QP may be set as a prediction value to generate difference information with the QP in each unit.
  • the difference information with the QP in the current unit may be generated by setting a QP obtained based on at least one of the QP set in the higher unit, the QP set in the previous same unit, or the QP set in the neighboring unit as a prediction value.
  • the difference information between the QP in the current unit may be generated by setting the QP obtained based on the QP set in the higher unit and the at least one encoded information as a prediction value.
  • the same previous unit may be a unit that may be defined according to the coding order of each unit, and neighboring units may be spatially adjacent units, and encoding information may include a slice type, an encoding mode, a prediction mode, and position information of the corresponding unit. And so on.
  • the QP of the current unit may generate difference information by setting the QP of the upper unit as a prediction value.
  • the difference information between the QP set in the slice and the QP set in the picture may be generated or the difference information between the QP set in the tile and the QP set in the picture may be generated.
  • the difference information between the QP set in the block and the QP set in the slice or tile may be generated.
  • the difference information between the QP set in the sub-block and the QP set in the block can be generated.
  • the QP of the current unit may generate difference information by setting a QP obtained based on a QP of at least one neighboring unit or a QP obtained based on a QP of at least one previous unit as a prediction value. Based on the QPs of neighboring blocks such as the left, upper left, lower left, upper and upper right of the current block, difference information with the obtained QP may be generated. Alternatively, difference information with the QP of the encoded picture before the current picture may be generated.
  • the QP of the current unit may generate difference information by setting a QP obtained based on the higher unit QP and at least one piece of encoding information as a prediction value.
  • the difference information between the QP of the current block and the QP of the slice corrected according to the slice type (I / P / B) may be generated.
  • the difference information between the QP of the current block and the QP of the tile corrected according to the encoding mode (Intra / Inter) may be generated.
  • the difference information between the QP of the current block and the QP of the picture corrected according to the prediction mode (directional / non-directional) may be generated.
  • difference information between the QP of the current block and the QP of the picture corrected according to the position information (x / y) may be generated.
  • the correction may mean adding or subtracting to the higher unit QP used for prediction in an offset form.
  • at least one offset information may be supported according to an encoding setting, and implicitly processed or explicitly related information may be generated according to a preset process. It is not limited only to the above examples, but modifications to other examples may be possible.
  • the example may be a possible example when a signal indicating QP variation is provided or activated.
  • difference information is not generated and the predicted QP may be determined as a QP of each unit.
  • difference information is generated and when the value is 0, the predicted QP may also be determined as a QP of each unit.
  • the quantization unit may transmit information necessary for generating a quantization block to the encoding unit and encode the information.
  • the quantization unit stores the information in a bitstream and transmits the information to the decoder, and the decoder of the decoder parses the information and dequantizes it. Can be used for the process.
  • the residual block may be transformed from the residual signal to generate a residual block having transform coefficients, and the quantization process may not be performed. Not only may the quantization process be performed without converting the residual signal into transform coefficients, but neither the transformation nor the quantization process may be performed. This may be determined according to the encoder setting.
  • the encoder scans the generated quantization coefficients, transform coefficients, or residual signals according to at least one scan order (eg, zigzag scan, vertical scan, horizontal scan, etc.), and then encodes the quantization coefficients, transform coefficients, Alternatively, the signal sequence may be generated and encoded by using at least one entropy coding technique.
  • the information about the scan order may be determined according to an encoding setting (eg, an encoding mode, a prediction mode, etc.), and may implicitly or explicitly generate related information. For example, one of a plurality of scanning orders may be selected according to the intra prediction mode.
  • encoded data including encoded information transmitted from each component may be generated and output as a bitstream, which may be implemented by a multiplexer (MUX).
  • MUX multiplexer
  • the coding scheme uses exponential Golomb, Context Adaptive Variable Length Coding (CAVLC), and Context Adaptive Binary Arithmetic Coding (CABAC).
  • CABAC Context Adaptive Binary Arithmetic Coding
  • the entropy encoding apparatus When performing entropy encoding (assuming CABAC in this example) for syntax elements such as the residual block data and information generated during the encoding / decoding process, the entropy encoding apparatus is a binarizer or a context modeler. It may include a binary arithmetic coder. In this case, the binary arithmetic coding unit may include a regular coding unit and a bypass coding unit.
  • the binarization unit may output a bin string composed of 0 or 1 by binarizing the syntax elements.
  • the bin represents a bit composed of 0 or 1 and may be encoded through a binary arithmetic encoder.
  • one of the regular coding unit and the bypass coding unit may be selected based on the probability of occurrence of 0 and 1, which may be determined according to the encoding / decoding setting. If the syntax element is data having the same frequency of 0 and 1, the bypass coding unit may be used, otherwise the regular coding unit may be used.
  • binarization process for the syntax element occurring in the present invention may be performed including not only the binarization mentioned in the above example but also other additional binarization methods.
  • the inverse quantization unit and the inverse transform unit may be implemented by inversely performing the processes of the transform unit and the quantization unit.
  • the inverse quantization unit may inverse quantize the quantized transform coefficients generated by the quantization unit, and the inverse transform unit may inverse transform the inverse quantized transform coefficients to generate a reconstructed residual block.
  • the adder reconstructs the current block by adding the prediction block and the reconstructed residual block.
  • the reconstructed block can be stored in memory and used as reference data (prediction section, filter section, etc.).
  • the in-loop filter unit may include at least one post-processing filter process such as a deblocking filter, a pixel adaptive offset (SAO), an adaptive loop filter (ALF), and the like.
  • the deblocking filter may remove block distortion occurring at boundaries between blocks in the reconstructed image.
  • the ALF may perform filtering based on a value obtained by comparing the restored image with the input image. In detail, after the block is filtered through the deblocking filter, the filtering may be performed based on a value obtained by comparing the reconstructed image with the input image. Alternatively, filtering may be performed based on a value obtained by comparing the restored image with the input image after the block is filtered through SAO.
  • the SAO restores the offset difference based on a value obtained by comparing the reconstructed image with the input image, and may be applied in the form of a band offset (BO) and an edge offset (EO).
  • the SAO adds an offset from the original image in units of at least one pixel to the reconstructed image to which the deblocking filter is applied, and may be applied in the form of BO, EO, and the like.
  • an offset with respect to an original image is added to the image reconstructed after the block is filtered through the ALF, and may be applied in the form of BO, EO, and the like.
  • setting information on whether each post-processing filter is supported may be generated in units of a sequence, a picture, a slice, a tile, and the like.
  • setting information on whether each post-processing filter is performed may be generated in units of a picture, a slice, a tile, and a block.
  • the range to which the filter is applied may be divided into the inside of the image and the boundary of the image, and setting information considering the same may be generated.
  • information related to the filtering operation may be generated in units of a picture, a slice, a tile, a block, and the like.
  • the information may be implicitly or explicitly processed, and the filtering may be performed by an independent filtering process or a dependent filtering process according to color components, which may be determined according to an encoding setting.
  • the in-loop filter may transmit the filtering related information to an encoder to encode the information.
  • the in-loop filter stores the information in a bitstream and transmits the information to the decoder, and the decoder of the decoder parses the information about the in-loop filter. Applicable to
  • the memory may store the restored block or picture.
  • the reconstructed block or picture stored in the memory may be provided to a prediction unit that performs intra prediction or inter prediction.
  • the encoder may process a storage space in the form of a queue of a compressed bitstream as a coded picture buffer (CPB), and decode the space for storing the decoded image in picture units. It can be processed by placing it in a decoded picture buffer (DPB).
  • CPB coded picture buffer
  • decoding units are stored according to decoding order, and the decoding unit can be emulated in the encoder, and the compressed bitstream can be stored in the emulation process, and the bitstream output from the CPB is restored through the decoding process.
  • the image is stored in the DPB, and the pictures stored in the DPB can be referenced later during the image encoding and decoding process.
  • the decoder may be implemented by inversely performing the process of the encoder. For example, a quantization coefficient sequence, a transform coefficient sequence, or a signal sequence may be received from the bitstream and decoded.
  • the decoded data including the decoding information may be parsed and transmitted to each component.
  • an image setting process applied to an image encoding / decoding apparatus will be described. This may be an example applied to the step before performing the encoding / decoding (image initial setting), but some processes may be applied at other stages (eg, after the encoding / decoding is performed or the encoding / decoding internal stage, etc.). This may be an example.
  • the image setting process may be performed in consideration of a network and a user environment such as characteristics of multimedia content, bandwidth, performance and accessibility of a user terminal, and the like. For example, image segmentation, image size adjustment, image reconstruction, etc. may be performed according to the encoding / decoding.
  • the image setting process to be described later will be described based on the rectangular image, but the present invention is not limited thereto and may be applicable to the polygonal image.
  • the same image setting or different image settings may be applied, which may be determined according to the encoding / decoding setting. For example, after confirming the information on the shape of the image (for example, rectangular or non-rectangular), the information on the image setting may be configured accordingly.
  • an independent setting may include an example of separately setting a decoding / decoding setting in each color space, and an example that is applied to another color space even when one color space is described (for example, , When generating M from the luminance component generates N from the chrominance component).
  • M in the luminance component may include M / 2) in the chrominance component, and it may be derived by assuming that the example is applied to each color space without special description. This is not limited only to the above examples and may be a description commonly applied to the present invention.
  • Some components in the following example may be content that can be applied to various encoding techniques, such as encoding in the spatial domain, encoding in the frequency domain, block-based encoding, object-based encoding, and the like.
  • partitioning may be performed for error robustness in order to prevent damage due to packet damage during transmission.
  • segmentation may be performed for the purpose of classifying regions having different properties in the same image according to characteristics, types, and the like of the image.
  • a segmentation process may be performed and an inverse process may be performed.
  • an inverse process may be performed.
  • a description will be given based on the division process, but the contents of the division inversion process may be reversed in the division process.
  • 3 is an exemplary diagram of image information divided by layers in order to compress an image.
  • 3a is an exemplary diagram in which a sequence of images is composed of a plurality of GOPs.
  • One GOP may include an I picture, a P picture, and a B picture as in 3b.
  • One picture may be composed of a slice, a tile, or the like as in 3c.
  • a slice, a tile, etc. may be composed of a plurality of basic coding units as in 3d, and the basic coding unit may be configured as at least one lower coding unit as shown in FIG. 3e.
  • the image setting process according to the present invention will be described based on an example applied to units of a picture, a slice, a tile, and the like, such as 3b and 3c.
  • FIG. 4 is a conceptual diagram illustrating various examples of image segmentation according to an embodiment of the present invention.
  • each block may be a basic coding unit (or a maximum coding unit) obtained through the picture divider, or may be a basic unit applied in a division unit described later.
  • the 4b is a conceptual diagram of dividing an image into at least one of a horizontal direction and a vertical direction.
  • the divided regions T 0 to T 3 may be referred to as tiles, and each region may perform encoding / decoding independent or dependent on other regions.
  • the 4c is a conceptual diagram of dividing an image into a bundle of consecutive blocks.
  • the divided regions S 0 and S 1 may be referred to as slices, and each region may be a region that performs encoding / decoding independent or dependent on other regions.
  • the bundle of contiguous blocks may be defined according to the scan order, and generally, the raster scan order is not limited thereto but may be determined according to the encoding / decoding setting.
  • the 4d is a conceptual diagram of dividing an image into a bundle of blocks with arbitrary settings according to user definition.
  • the divided regions A 0 to A 2 may be referred to as arbitrary partitions, and each region may be an area that performs encoding / decoding independent or dependent on other regions.
  • Independent encoding / decoding may mean that data of other units cannot be referred to when performing encoding / decoding of some units (or regions).
  • the information used or generated in the texture encoding and the entropy encoding of some units are independently encoded without being referred to each other, and the parser and the reconstruction information of the other units are used for decoding and entropy decoding of the units of the decoder. May not be referenced to each other.
  • whether data of another unit (or region) can be referred to may be limited in a spatial region (for example, regions within one image), but may be temporal region (for example, depending on the encoding / decoding setting). Limited settings can also be made in consecutive images or frames). For example, some units of the current image and some units of another image may be referred to when there is a continuity or a condition having the same encoding environment, otherwise the reference may be limited.
  • dependent encoding / decoding may mean that other units of data may be referenced when performing encoding / decoding of some units.
  • the information used or generated in the texture encoding and the entropy encoding of some units are reliably encoded by referring to each other.
  • the parsing information and the reconstruction information of other units may be used for the texture decoding and the entropy decoding of some units.
  • the setting may be the same as or similar to that of general encoding / decoding.
  • the image may be divided for the purpose of identifying a region (a surface ⁇ Face>, etc. generated according to the projection format in this example) according to a characteristic, a type, etc. (eg, a 360 degree image) of the image.
  • Some units (slices, tiles, etc.) in the above example may have independent sub / decoding settings (e.g., independent slice segments), and some units depend on sub / decoding settings (e.g., dependent slice segments). ), And the present invention will be described based on independent encoding / decoding.
  • the basic coding units obtained through the picture splitter may be divided into basic coding blocks according to color spaces, and sizes and shapes may be determined according to characteristics and resolutions of an image.
  • Supported block sizes or shapes are N ⁇ N square shapes (2 n x 2 n . 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, etc.) whose length and width are represented by an exponential power of 2 (2 n ).
  • n may be an integer between 3 and 8), or may be an M x N rectangular shape (2 m x 2 n ).
  • the input video can be divided into sizes such as 128x128 for 8k UHD video, 64x64 for 1080p HD video, and 16x16 for WVGA video, and 256x256 for 360-degree video, depending on the video type.
  • the input image can be divided by the size of.
  • the basic coding unit may be divided and encoded / decoded into lower coding units, and information about the basic coding unit may be transmitted in a bitstream in units of a sequence, a picture, a slice, a tile, and the like, which is parsed by a decoder. Related information can be restored.
  • An image encoding method and a decoding method may include the following image segmentation step.
  • the image segmentation process may include an image segmentation indicating step, an image segmentation type identification step, and an image segmentation performing step.
  • the video encoding apparatus and the decoding apparatus may be configured to include an image segmentation indicating step, an image segmentation type identifying step, an image segmentation indicating unit implementing an image segmentation performing step, an image segmentation type identifying unit, and an image segmentation performing unit.
  • an associated syntax element may be generated, and in the case of decoding, an associated syntax element may be parsed.
  • the image segmentation indicator may be omitted, and the image segmentation type identification unit may be a process of confirming information regarding the size and shape of the block.
  • the division may be performed by the basic coding unit.
  • a block it may be a unit in which division is always performed, while in other division units (tile, slice, etc.), whether or not to divide may be determined according to a sub / decoding setting.
  • the picture division unit may be configured to perform division of another unit after division of a block unit as a default setting. In this case, block division may be performed based on the size of the picture.
  • block division may be performed based on the size of the division unit. This can be determined through explicit or implicit processing, depending on the encoding / decryption settings. In the following example, the former case is assumed, and description will be made based on units other than the block.
  • the image segmentation instructing step it may be determined whether to perform image segmentation. For example, when the signal indicating the image segmentation (for example, tiles_enabled_flag) is confirmed, the segmentation may be performed. If the signal indicating the image segmentation is not confirmed, the segmentation may not be performed or other encoding / decoding information. You can perform division by checking.
  • the signal indicating the image segmentation for example, tiles_enabled_flag
  • the signal indicating the image segmentation is not confirmed, it may mean that the segmentation is not performed or the segmentation is performed in at least one unit. , first_slice_segment_in_pic_flag).
  • the signal is a signal for indicating whether to divide the image into a plurality of units, and according to the signal, it may be determined whether the image is divided. For example, when tiles_enabled_flag is a signal indicating whether to split an image, when tiles_enabled_flag is 1, it may mean that the tile_enabled_flag is split into a plurality of tiles, and when it is 0, it may mean that it is not split.
  • first_slice_segment_in_pic_flag is not a signal indicating whether the image is divided, but a signal indicating whether the image is the first slice segment in the image, but through this, whether the data is divided into two or more units (for example, when the flag is 0, It means that it is divided into slices).
  • a signal indicating image segmentation in a tile may not be provided, and a signal indicating image segmentation in a slice may be provided.
  • a signal indicating image segmentation may be provided based on the type, characteristic, etc. of the image.
  • the image segmentation type may be identified.
  • the image segmentation type may be defined by a method of performing segmentation, segmentation information, and the like.
  • the tiles may be defined in units obtained by dividing in the horizontal and vertical directions. In detail, it may be defined as a bundle of adjacent blocks in a rectangular space partitioned by at least one horizontal or vertical dividing line crossing the image.
  • the splitting information about the tiles may include boundary position information of the columns and columns, tile number information of the columns and columns, and tile size information.
  • the information on the number of tiles may include the number of rows of tiles (for example, num_tile_columns) and the number of columns (for example, num_tile_rows), and through this, the number of tiles may be divided into (number of rows ⁇ number of columns). Can be.
  • the size information of the tile may be obtained based on the number of tiles.
  • the size of the tiles may be equal or unequal, which may be determined implicitly or explicitly under related rules (eg, uniform_spacing_flag) may be generated.
  • the size information of the tile may include the size information of each column and the column of the tile (for example, column_width_tile [i], row_height_tile [i]) or may include the horizontal and vertical size information of each tile.
  • the size information may be additional information that may be additionally generated according to whether the tile sizes are equal (for example, when uniform_spacing_flag is 0, which means non-uniform division).
  • a slice may be defined as a bundle unit of consecutive blocks. In detail, it may be defined as a bundle of consecutive blocks based on a preset scan order (raster scan in this example).
  • the split information about the slice may include the number information of the slice, location information (eg, slice_segment_address) of the slice, and the like.
  • the position information of the slice may be position information of a predetermined block (for example, the first order in the scan order in the slice), and the position information may be scan order information of the block.
  • any divided region can have various division settings.
  • a division unit may be defined as a bundle of spatially adjacent blocks, and the division information about the partition unit may include size, shape, location information, and the like of the division unit. This is some examples of any divided region, and various divided forms may be possible as shown in FIG. 5.
  • FIG. 5 is another exemplary diagram of an image segmentation method according to an exemplary embodiment.
  • the image may be divided into a plurality of areas at least one block interval in the horizontal or vertical direction, and the division may be performed based on the block position information.
  • 5a shows an example in which division is performed based on column information of each block in the horizontal direction (A 0 , A 1 )
  • 5b indicates division based on column and column information of each block in the horizontal and vertical directions.
  • Example (B 0 ⁇ B 3 ) is shown.
  • the splitting information may include the number of splitting units, block interval information, splitting direction, and the like, and when some of the splitting information is implicitly included according to a preset rule, some splitting information may not be generated.
  • an image may be divided into a bundle of consecutive blocks based on a scan order.
  • An additional scan order other than the raster scan order of the existing slice may be applied to the image segmentation.
  • 5c shows an example (C 0 , C 1 ) in which the scan is performed clockwise or counterclockwise about the starting block (C 0 , C 1 ), and 5d shows the scanning in the vertical direction about the starting block (Vertical).
  • An example (D 0 , D 1 ) is shown.
  • the partitioning information may include partition unit count information, position information of the partition unit (for example, the first order in the scan order within the partition unit), information about the scan order, and the like, and implicitly according to a preset rule. If included, some partitioning information may not be generated.
  • the image may be divided into horizontal and vertical dividing lines.
  • Existing tiles may be divided by horizontal or vertical dividing lines and accordingly have a quadrangular dividing form, but it may be impossible to divide an image across the image by dividing lines.
  • segmentation eg, a segmentation line forming a right boundary of E1, E3, and E4 and a left boundary of E5
  • a partial division of the image may be possible.
  • An example of segmentation that crosses an image along a line (for example, a segmentation line forming a lower boundary of E2 and E3 and an upper boundary of E4) may not be possible.
  • division may be performed on a block-by-block basis (eg, division after block division is performed first) or division may be performed by the horizontal or vertical division line or the like (eg, division regardless of block division). Division by a line), whereby each division unit may not be composed of an integer multiple of the block.
  • partition information different from the existing tile may be generated, and the partition information may include the number information of the partition unit, the location information of the partition unit, the size information of the partition unit, and the like.
  • the position information of the division unit may be generated based on a preset position (eg, the upper left of the image), and the position information (eg, measured in pixel units or block units).
  • the size information may generate horizontal and vertical size information (for example, measured in pixel units or block units) of each division unit.
  • the division having any setting according to the user definition may be performed by applying a new division method, or may be performed by changing some configurations of the existing division. That is, it may be supported as a partitioning form that replaces or adds to the existing partitioning method, and some settings are changed in the existing partitioning method (slice, tile, etc.) (for example, follow a different scanning order, or have a rectangular shape. Other partitioning methods, and accordingly, different partitioning information generation, dependent encoding / decoding features, etc.).
  • settings for configuring additional division units may be supported, and additional division unit types (eg, rectangular spaces).
  • an image segmentation method may be supported based on the type, characteristic, etc. of an image. For example, some segmentation methods (eg, a surface of a 360 degree image) may be supported according to the type, characteristic, etc. of an image, and segmentation information may be generated based on the segmentation method.
  • the image may be segmented based on the identified segmentation type information. That is, partitioning may be performed in a plurality of partitioning units based on the identified partition type, and encoding / decoding may be performed based on the obtained partitioning unit.
  • the division unit may be determined whether the division unit has a sub / decoding setting according to the division type. That is, setting information necessary for the encoding / decoding process of each division unit may be allocated in an upper unit (eg, a picture) or may have independent encoding / decoding settings of a division unit.
  • slices can have independent sub / decoding settings of division units (eg, slice headers), and tiles can not have independent sub / decoding settings of subdivision units and pictures / decoding settings ( For example, it may have a setting dependent on PPS).
  • the information generated in relation to the tile may be split information, which may be included in the encoding / decoding setting of the picture.
  • the present invention is not limited only to the above cases, and other modifications may be possible.
  • the encoding / decoding setting information for the tile may be generated in units of a video, a sequence, a picture, and the like, and at least one encoding / decoding setting information may be generated in an upper unit to refer to one of them.
  • independent encoding / decoding setting information (for example, a tile header) may be generated in units of tiles. This is different from following one encoding / decoding setting determined in the upper unit in that the encoding / decoding is performed by setting at least one encoding / decoding setting in units of tiles. That is, one sub / decoding setting may be followed in all tiles, or at least one tile may perform sub / decoding along different sub / decoding settings from other tiles.
  • partition information may be generated in a higher unit and sub / decoding may be performed according to one sub / decoding configuration of a higher unit.
  • partition information may be generated in an upper unit, and an independent sub / decoding setting for each partition unit may be generated in an upper unit, and the sub / decoding may be performed accordingly.
  • partition information may be generated in an upper unit, a plurality of sub / decoding setting information may be supported in an upper unit, and encoding / decoding may be performed according to the sub / decoding setting referenced in each partition unit.
  • partition information may be generated in a higher unit, independent sub / decoding settings may be generated in a corresponding partition unit, and encoding / decoding may be performed accordingly.
  • an independent encoding / decoding configuration including division information may be generated in a corresponding division unit, and encoding / decoding may be performed accordingly.
  • the sub / decoding setting information includes information about tile type, reference picture list information, quantization parameter information, inter prediction prediction information, in-loop filtering setting information, in-loop filtering control information, scan order, and whether to perform sub / decoding. It may include information necessary for encoding / decoding of tiles.
  • the encoding / decoding setting information may explicitly generate related information, or the encoding / decoding setting may be implicitly determined according to the format, characteristics, etc. of the image determined in the higher unit. In addition, related information may be explicitly generated based on the information obtained through the setting.
  • the following is an example of performing image segmentation in the encoding / decoding apparatus according to an embodiment of the present invention.
  • a segmentation process may be performed on the input image before encoding starts. After segmentation is performed using segmentation information (eg, image segmentation information, segmentation unit setting information, etc.), an image may be encoded in segmentation units. After encoding is completed, the data may be stored in a memory, and the image encoded data may be stored in a bitstream and transmitted.
  • segmentation information eg, image segmentation information, segmentation unit setting information, etc.
  • the partitioning process may be performed before the decoding starts. After segmentation is performed using segmentation information (eg, image segmentation information, segmentation unit setting information, and the like), image decoding data may be parsed and decoded in segmentation units. After decoding, the data may be stored in a memory, and a plurality of division units may be merged into one to output an image.
  • segmentation information eg, image segmentation information, segmentation unit setting information, and the like
  • image decoding data may be parsed and decoded in segmentation units. After decoding, the data may be stored in a memory, and a plurality of division units may be merged into one to output an image.
  • division may be performed on an image, and division may be performed on a division unit of an image, and the division may be the same division process (for example, slice / slice, tile / tile, etc.) or another division process ( For example, slice / tile, tile / slice, tile / surface, surface / tile, slice / surface, surface / slice, etc.).
  • the subsequent partitioning process may be performed based on the preceding partitioning result, and the partitioning information generated in the subsequent partitioning process may occur based on the preceding partitioning result.
  • dividing processes A may be performed, and the dividing process may be another dividing process (eg, a slice / surface, a tile / surface, etc.).
  • the subsequent partitioning process may be performed based on the preceding partitioning result, or the partitioning process may be performed independently of the preceding partitioning result, and the partitioning information generated in the subsequent partitioning process may be performed by the preceding partitioning result. Can occur based on or occur independently.
  • the multi-segmentation process of the image may be determined according to the encoding / decoding setting, and various modification examples may be possible without being limited to the above examples.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream. That is, it may be stored in one unit and may be recorded in a plurality of units.
  • a syntax element for whether some information is supported or a syntax element for activation or the like may be generated in some units (eg, an upper unit), and in some units (eg, a lower unit). The same or similar information as the case may be generated. That is, even when the related information is supported and set in the upper unit, it may have individual settings in the lower unit. This is not limited only to the above examples and may be a description commonly applied in the present invention. It may also be included in the bitstream in the form of SEI or metadata.
  • image scaling such as overall expansion and reduction of an image may be performed.
  • image size adjustment such as partial expansion and reduction of an image may be performed.
  • Image scaling may be performed by various examples, which may be performed for adaptability to an encoding environment, may be performed for encoding uniformity, may be performed for encoding efficiency, or may be performed for image quality improvement.
  • the image may be performed according to the type, characteristic, or the like of the image.
  • a resizing process may be performed in a process (for example, hierarchical coding, 360 degree video coding, etc.) that is performed according to characteristics, types, and the like of an image.
  • a process for example, hierarchical coding, 360 degree video coding, etc.
  • the resizing process may be performed in the initial stage of encoding / decoding.
  • the resizing process may be performed before performing the encoding / decoding, and may encode / decode the image to be resized.
  • a resizing process may be performed before a prediction step (intra-prediction or inter-screen prediction) or prediction.
  • image information in a prediction step for example, pixel information referred to in intra prediction, information related to intra prediction mode, reference image information used for inter prediction, information related to inter prediction mode, etc.can be used.
  • the resizing process may be performed before performing the filtering step or the filtering.
  • image information in the filtering step for example, pixel information applied to the deblocking filter, pixel information applied to the SAO, SAO filtering related information, pixel information applied to the ALF, ALF filtering related information, etc.can be used.
  • the image may or may not be changed to the pre-sizing image (the size perspective of the image) through the resizing process, which may be changed by the sub / decoding setting (e.g., And the nature of the work performed).
  • the resizing reverse process may be reduction
  • the resizing reverse process may be expansion.
  • the resizing process may be performed in a subsequent step to acquire an image before resizing.
  • the reversing process may not be performed in a subsequent step.
  • the image resizing process may be performed alone or inversely.
  • the following example will be described based on the resizing process.
  • the description of the resizing reverse process may be omitted in order to prevent duplicate explanation, but the person skilled in the art may recognize the same as that described in the literary manner. It is obvious.
  • FIG. 6 is an exemplary diagram for a method of adjusting a size of a general image.
  • an extended image P 0 + P 1 may be obtained by additionally including a partial region P 1 in the initial image (or the image before resizing. P 0. Thick solid line).
  • a reduced image S 0 may be obtained from the initial image S 0 + S 1 except for a partial region S 1 .
  • a partial area (T 1) to a further comprise and sizing to exclude some regions (T 2) image (T 0 + T 1) in the have to obtain an initial image (T 0 + T 2) a partial area (T 1) to a further comprise and sizing to exclude some regions (T 2) image (T 0 + T 1) in the have.
  • FIG. 7 is an exemplary view of image resizing according to an embodiment of the present invention.
  • a method of expanding an image during the resizing process may be described, and referring to 7b, a method of reducing an image may be described.
  • the image before scaling is S0
  • the image after scaling is S1
  • the image before scaling is T0
  • the image after scaling is T1.
  • the image When the image is expanded as shown in 7a, it can be expanded in the up, down, left, and right directions (ET, EL, EB, ER). RT, RL, RB, RR).
  • the up, down, left, and right directions in the expansion may correspond to the down, up, right, and left directions in the reduction, respectively. It should be understood that this includes.
  • the RC and BC regions may be obtained while the BR region may be obtained according to the encoding / decoding. That is, the case where the TL, TR, BL, and BR regions are acquired may or may not be possible.
  • the edge regions TL, TR, BL, and BR regions
  • An image resizing process may be performed in at least one direction. For example, it may be performed in all up, down, left, and right directions, and two or more selected directions of up, down, left, and right directions (left + right, up + down, up + left, up + right, down). + Left, down + right, up + left + right, down + left + right, up + down + left, up + down + right, etc., one of the up, down, left, right direction Only may be performed.
  • the size of the image may be adjusted in left + right, up + down, left + right, left + right, and right + left directions, which may be symmetrically extended at both ends based on the center of the image. It may be possible to adjust the size in the upper left + upper right, the lower left + right direction, the horizontal + symmetrical expansion of the image may be possible to adjust the size in the upper + lower, upper left + left, upper right + lower direction, and other sizes may be possible.
  • the image before resizing (S0, T0) is P_Width (width) ⁇ P_Height (height)
  • the image size after resizing (S1, T1) is P'_Width (width) ⁇ P'_Height (height)
  • the image size after scaling is (P_Width + Var_L + Var_R) ⁇ (P_Height + Var_T + Var_B).
  • Var_L, Var_R, Var_T, and Var_B which are scaling values in the left, right, up, and down directions, may be Exp_L, Exp_R, Exp_T, and Exp_B (Exp_x in this example is positive) in the image expansion (FIG.
  • -Rec_L, -Rec_R, -Rec_T, and -Rec_B if Rec_L, Rec_R, Rec_T, Rec_B is defined as a positive number, it may be represented as a negative number according to the image reduction).
  • the coordinates of the upper left, upper right, lower left and lower right of the image before resizing are (0,0), (P_Width-1,0), (0, P_Height-1), (P_Width-1, P_Height-1),
  • the coordinates of the image after scaling can be expressed as (0,0), (P'_Width-1,0), (0, P'_Height-1), (P'_Width-1, P'_Height-1) have.
  • the size of the area that is changed (or acquired, removed) by resizing (in this example, TL to BR.i is the index that distinguishes TL to BR) can be M [i] ⁇ N [i], which is Var_X ⁇ Var_Y (In this example, X is L or R, Y is T or B). M and N can have various values and can be the same or independent settings for i regardless of i. Various cases thereof will be described later.
  • S1 may be configured to include all or a portion of TL to BR (upper left to lower right) generated through expansion along various directions in S0.
  • T1 may be configured to exclude all or a portion of TL to BR that are removed through reduction in various directions.
  • the image when the expansion is performed in the up, down, left, and right directions of the existing image S0, the image may be configured to include the TC, BC, LC, and RC regions obtained according to each scaling process. It may additionally include TL, TR, BL, BR regions.
  • the image when performing the expansion in the upward (ET) direction, the image may be configured to include the TC region in the existing image S0, and may be TL or TR according to the expansion (EL or ER) in at least one other direction. It can include an area.
  • the image when the expansion is performed in the lower (EB) direction, the image may be configured to include the BC region in the existing image S0, and may be BL or BR according to the expansion (EL or ER) in at least one other direction. It can include an area.
  • the image when the expansion is performed in the left (EL) direction, the image may be configured to include the LC region in the existing image S0, and may be TL or BL according to the expansion (ET or EB) in at least one other direction. It can include an area.
  • the image when the expansion is performed in the right (ER) direction, the image may be configured to include the RC region in the existing image S0 and may be TR or BR according to the expansion (ET or EB) in at least one other direction. It can include an area.
  • there may be a setting for example, spa_ref_enabled_flag or tem_ref_enabled_flag
  • a setting for example, spa_ref_enabled_flag or tem_ref_enabled_flag
  • Encoding / decoding of the pre-scaling image S0 and T1 and the region (TC, BC, LC, RC, TL, TR, BL, BR region) added or deleted at the time of resizing may be performed as follows. .
  • the data of the image before resizing and the data of the region to be added or deleted (the data to be encoded / decoded. Pixel value or prediction related information, etc.) ) Can be referenced to each other spatially or temporally.
  • the data before the resizing and data of the region to be added or deleted may be spatially referenced, while the data of the image before the resizing may be temporally referred to, and the data of the region to be added or deleted may be temporally referred to. Can't.
  • a setting may be set to limit the referability of the region to be added or deleted.
  • the setting information on the referability of the region to be added or deleted may be explicitly created or implicitly determined.
  • An image scaling process may include an image scaling instruction step, an image scaling type identification step, and / or an image scaling step.
  • the image encoding apparatus and the decoding apparatus may include an image scaling instruction step, an image scaling type identification step, an image scaling instruction unit for implementing the image scaling step, an image scaling type identification unit, and an image scaling unit. have.
  • an associated syntax element may be generated, and in the case of decoding, an associated syntax element may be parsed.
  • resizing may be performed when a signal indicative of image resizing (eg, img_resizing_enabled_flag) is checked, and resizing is not performed when a signal indicative of image resizing is not confirmed or another
  • the resizing can be performed by checking the encoding / decoding information.
  • a signal indicating the scaling may be implicitly activated or deactivated according to a sub / decoding setting (for example, characteristics and types of the image).
  • the size related information may be generated or the size related information may be implicitly determined.
  • the signal is a signal indicating whether to scale the image, and it is possible to check whether the image is scaled according to the signal.
  • a signal indicating image scaling eg, img_resizing_enabled_flag
  • image scaling can be performed, and the signal is disabled.
  • img_resizing_enabled_flag 0
  • this may mean that image resizing is not performed.
  • the resizing may not be performed or the resizing of the corresponding image may be determined by another signal.
  • the image when dividing an input image into blocks, the image is resized according to whether the size of the image (e.g., width or height) is an integer multiple of the size of the block (e.g., width or length).
  • the size adjustment may be performed when the width of the image is not an integer multiple of the width of the block or when the length of the image is not an integer multiple of the length of the block.
  • the scaling information eg, scaling direction, scaling value, etc.
  • the sub / decoding information eg, the size of the image, the size of the block, etc.
  • the image may be resized according to characteristics, types (eg, 360 degree images) of the image, and the resizing information may be explicitly generated or assigned to a preset value.
  • characteristics e.g, 360 degree images
  • the resizing information may be explicitly generated or assigned to a preset value.
  • the image scaling type may be identified.
  • the image scaling type may be defined by a method of performing scaling, size adjustment information, and the like. For example, scaling through a scale factor and scaling through an offset factor may be performed. It is also possible to apply a mixture of the above manner is not limited to this. For convenience of explanation, the following description will focus on scaling through a scale factor and an offset factor.
  • scaling may be performed by multiplying or dividing based on the size of an image.
  • Information about the operation of scaling may be explicitly generated, and the expansion or contraction process may be performed according to the information.
  • the resizing process may be performed by a predetermined operation (for example, one of expansion or reduction) according to the encoding / decoding, and in this case, information on the operation of resizing may be omitted.
  • the resizing of the image may be performed by a preset operation.
  • the scaling direction may be at least one direction selected from up, down, left, and right directions. At least one scale factor may be needed according to the scaling direction. That is, one scale factor (unidirectional, in this example) may be required in each direction, and one scale factor (two-way, in this example) may be needed in the horizontal or vertical direction, one in the overall direction of the image. A scale factor of (in this example, omni-directional) may be required.
  • the resizing direction is not limited to the above example but may be modified in other examples.
  • the scale factor may have a positive value and different range information may be set according to a negative / decoding setting.
  • the scale factor when information is generated by mixing a scaling operation and a scale factor, the scale factor may be used as a value to be multiplied. If greater than 0 or less than 1, it may mean a reduction operation. If greater than 1, it may mean an expansion operation, and if it is 1, it may mean that no scaling is performed.
  • the scale factor information is generated separately from the scaling operation, the scale factor may be used as a multiplied value in the case of the extension operation, and the scale factor may be used as a divided value in the case of the reduction operation.
  • the scaling direction is ER, EB (or RR, RB), and the scaling value is Var_L (Exp_L or Rec_L) and Var_T (Exp_T or Rec_T) are 0, and Var_R (Exp_R or Rec_R) and Var_B (Exp_B or Rec_B) can be expressed as P_Width ⁇ (sc-1), P_Height ⁇ (sc-1). have. Therefore, the image after the resizing may be (P_Width ⁇ sc) ⁇ (P_Height ⁇ sc).
  • each scale factor (sc_w, sc_h in this example) is used according to the horizontal or vertical direction of the image, and the resizing direction is left + right and up + down directions (up + down + left + right when both are operated).
  • the scaling direction is ET, EB, EL, ER, and the scaling values Var_T and Var_B are P_Height ⁇ (sc_h-1) / 2, and Var_L and Var_R are P_Width ⁇ (sc_w-1) / 2 days. have. Therefore, the image after the resizing may be (P_Width ⁇ sc_w) ⁇ (P_Height ⁇ sc_h).
  • the scaling may be performed by adding or subtracting based on the size of the image.
  • the scaling may be performed by adding or subtracting based on the encoding / decoding information of the image.
  • the scaling may be performed by adding or subtracting independently. That is, the resizing process may be dependent or independent setting.
  • Information about the resizing operation may be explicitly generated, and the expansion or contraction process may be performed according to the corresponding information.
  • the resizing operation may be performed by a predetermined operation (for example, one of expansion or reduction) according to the encoding / decoding, and in this case, information on the resizing operation may be omitted.
  • the resizing of the image may be performed by a preset operation.
  • the scaling direction may be at least one of up, down, left, and right directions. At least one offset factor may be needed according to the scaling direction. That is, one offset factor (in this example, unidirectional) may be needed in each direction, and one offset factor (in this example, symmetrical bidirectional) may be needed, depending on the horizontal or vertical direction, and the partial Depending on the combination, one offset factor (in this example, asymmetric bidirectional) may be needed, and one offset factor (in this example, omni) in accordance with the overall direction of the image.
  • the resizing direction is not limited to the above example but may be modified in other examples.
  • the offset factor may have a positive value or may have a positive value and a negative value, and may have different range information according to a negative / decoding setting. For example, when information is generated by mixing a scaling operation and an offset factor (assuming positive and negative values in this example), the offset factor may be used as a value that is added or subtracted according to the sign information of the offset factor. . If the offset factor is greater than zero, it may mean an extension operation. If the offset factor is larger than zero, it may mean a reduction operation. If the offset factor is greater than zero, it may mean that no scaling is performed.
  • the offset factor when generating offset factor information separately from the resizing operation (assuming a positive value in this example), the offset factor may be used as a value added or subtracted according to the resizing operation. If it is greater than zero, the expansion or contraction operation may be performed according to the resizing operation, and if it is 0, this may mean that the resizing is not performed.
  • the scaling direction is ET, EB, EL, ER (or RT). , RB, RL, RR), and the scale values Var_T, Var_B, Var_L, and Var_R may be os.
  • the image size after resizing may be (P_Width + os) ⁇ (P_Height + os).
  • each offset factor (os_w, os_h) is used according to the horizontal or vertical direction of the image, and the resizing direction is left + right, up + down direction (up + down + left + right when both are operated)
  • the scaling directions are ET, EB, EL, and ER (or RT, RB, RL, RR), and the scaling values Var_T and Var_B are os_h, and Var_L and Var_R may be os_w.
  • the image size after resizing may be ⁇ P_Width + (os_w ⁇ 2) ⁇ ⁇ ⁇ P_Height + (os_h ⁇ 2) ⁇ .
  • the resizing direction is down and right directions (bottom + right when working together) and each offset factor (os_b, os_r) is used according to the resizing direction
  • the resizing direction is EB, ER (or RB, RR)
  • the scale value Var_B may be os_b
  • Var_R may be os_r.
  • the image size may be (P_Width + os_r) ⁇ (P_Height + os_b).
  • each offset factor (os_t, os_b, os_l, os_r) is used according to each direction of the image, and the resizing directions are up, down, left, and right directions (up + down + left + right when all operate).
  • the scaling direction is ET, EB, EL, ER (or RT, RB, RL, RR), and the scaling values Var_T may be os_t, Var_B is os_b, Var_L is os_l, and Var_R may be os_r.
  • the image size may be (P_Width + os_l + os_r) ⁇ (P_Height + os_t + os_b).
  • the offset factor refers to a case in which the offset factor is used as it is, and may be an example of scaling performed independently.
  • an offset factor may be used as an input variable of the scaling value.
  • an offset factor may be assigned as an input variable and a scaling value may be obtained through a series of processes according to a sub / decoding setting, which may be preset information (for example, image size, sub / decoding information, etc.). It may be an example of the scaling performed based on) or an example of the scaling performed depending on.
  • the offset factor may be a multiple of a preset value (an integer in this example) (e.g., 1, 2, 4, 6, 8, 16, etc.) or an exponent (e.g., 1, 2, 4, 8). Exponent of 2, such as, 16, 32, 64, 128, 256, etc.).
  • it may be a multiple or an index of a value obtained based on a negative / decoding setting (for example, a value set based on a motion search range of inter-screen prediction).
  • it may be a multiple or an index of a unit obtained from the picture division unit (assuming A ⁇ B in this example).
  • it may be a multiple of a unit obtained from the picture division unit (assuming E ⁇ F because it is the same as a tile in this example).
  • the value may be a value smaller than or equal to the width and length of the unit obtained from the picture divider.
  • the multiples or exponents of the above examples may also include cases where the value is 1, and the present invention is not limited to the above examples and modifications to other examples may also be possible.
  • Var_x may be 2 ⁇ n or 2 n .
  • individual offset factors may be supported according to color components, and offset factors for some color components may be supported to derive offset factor information for other color components. For example, if an offset factor A is explicitly generated for the luminance component (assuming that the ratio of the luminance component and the chrominance component is 2: 1 in this example), then the offset factor A / 2 for the chrominance component is Can be obtained implicitly. Alternatively, when the offset factor A for the chrominance component is explicitly generated, the offset factor 2A for the luminance component can be obtained implicitly.
  • Information about the scaling direction and the scaling value may be explicitly generated, and the scaling process may be performed according to the corresponding information. In addition, it may be implicitly determined according to the encoding / decoding setting, and accordingly, a resizing process may be performed. At least one preset direction or adjustment value may be allocated, in which case the related information may be omitted. In this case, the encoding / decoding setting may be determined based on the characteristic, type, encoding information, and the like of the image. For example, at least one scaling direction according to at least one scaling operation may be predetermined, at least one scaling value according to at least one scaling operation may be predetermined, and at least one scaling direction At least one scaling value according to may be predetermined.
  • the scaling direction and the scale value in the reverse scale process may be derived from the scale direction and the scale value applied in the scale process.
  • the size adjustment value implicitly determined may be one of the above-described examples (examples in which various size adjustment values are obtained).
  • the case of multiplication or division has been described, but may be implemented as a shift operation according to the implementation of the encoder / decoder.
  • the left shift operation may be performed, and in the case of division, the right shift operation may be implemented. This is not limited only to the above examples and may be a description commonly applied in the present invention.
  • image scaling may be performed based on the identified scaling information. That is, the image may be resized based on information such as a resizing type, a resizing operation, a resizing direction, and a resized value, and encoding / decoding may be performed based on the acquired image after resizing. .
  • the resizing may be performed using at least one data processing method.
  • the resizing may be performed using at least one data processing method in an area to be resized according to the resizing type and the resizing operation. For example, depending on the type of scaling, one can determine how to populate the data when scaling is extended, or how to remove data when scaling is shrinking.
  • image scaling may be performed based on the scaling information identified in the image scaling step.
  • the image resizing may be performed based on the resizing information and the data processing method in the image resizing step.
  • the difference between the two cases may be to adjust only the size of the image to be encoded / decoded or to consider data processing of the size and the region to be resized.
  • Whether to perform the image resizing including the data processing method may be determined according to the application stage, the position, and the like of the resizing process. In the following example, a description will be given of an example of performing size adjustment based on a data processing method, but the present invention is not limited thereto.
  • scaling can be done using various methods for scaling up and down.
  • the resizing may be performed using at least one data filling method, and in the case of reduction, the resizing may be performed using the method of removing at least one data.
  • new data or data of an existing image may be directly or deformed to be filled in the resizing area (extension), and the resize area (reduction) may be simply removed or removed through a series of processes. Can be applied and removed.
  • scaling can be done by applying upsampling, and scaling is done by applying downsampling to scale.
  • upsampling filter can be used for expansion
  • at least one downsampling filter can be used for reduction
  • the filters applied to horizontal and vertical can be the same, and applied to horizontal and vertical.
  • the filter may be different.
  • new data may not be created or removed in the resizing area, but may be rearranged using an interpolation method such as interpolation. It may be divided into filters used for the sampling.
  • expansion can be scaled using at least one data padding method, and reduction can be scaled using at least one data removal method. Can be performed.
  • a description will be given focusing on a data processing method in the case of performing scaling through an offset factor.
  • one preset data processing method may be used for the resized area, but at least one data processing method may be used for the resized area as in the following example, and selection information on the data processing method may be generated.
  • the resizing may be performed through a fixed data processing method and the latter in an adaptive data processing method.
  • some units of an area added or deleted upon resizing eg, TL, TC, TR, ..., BR in FIGS. 7A and 7B
  • the data processing method may be applied to each of a combination of TL to BR of FIG. 7A and FIG. 7B or a part thereof.
  • FIG. 8 is an exemplary view illustrating a method of configuring an extended area in an image resizing method according to an embodiment of the present invention.
  • the images may be classified into TL, TC, TR, LC, C, RC, BL, BC, and BR regions for convenience of explanation, and the upper left, upper, right upper, left, center, right, lower, It can correspond to the lower right position.
  • TL TL
  • TR TR
  • LC LC
  • C C
  • RC RC
  • BL BC
  • BR BR
  • the area added according to the expansion of the image may be configured in various ways.
  • the region may be filled with an arbitrary value or filled with reference to some data of the image.
  • regions A0 and A2 extending to arbitrary pixel values may be filled.
  • Arbitrary pixel values can be determined using various methods.
  • an arbitrary pixel value may be one pixel belonging to a pixel value range (for example, 0 to 1 ⁇ (bit_depth) ⁇ 1) that can be expressed as a bit depth.
  • bit_depth a pixel value range
  • it may be a minimum value, a maximum value, a median value of the pixel value range (for example, 1 ⁇ (bit_depth ⁇ 1), etc.) and the like (where bit_depth is a bit depth).
  • the arbitrary pixel value is a pixel value range (eg, min P to max P of pixels belonging to an image).
  • min P , max P are the minimum and maximum pixels among the pixels belonging to the image.
  • min P may be greater than or equal to 0 and max P may be one pixel belonging to 1 ⁇ less than or equal to (bit_depth) ⁇ 1 ⁇ .
  • bit_depth bit_depth
  • any pixel value may be a minimum value, a maximum value, a median value, an average (at least two pixels), a sum of weights, and the like of the pixel value range.
  • an arbitrary pixel value may be a value determined in a pixel value range belonging to a partial region belonging to an image.
  • some areas may be TR + RC + BR.
  • some areas may have 3 ⁇ 9 of TR, RC, and BR as corresponding areas, or 1 ⁇ 9 ⁇ assuming rightmost line> as corresponding areas, which may be subject to encoding / decoding.
  • the partial region may be a unit divided from the picture divider.
  • any pixel value may be a minimum value, a maximum value, a median value, an average (at least two pixels), a weighted sum, and the like, of the pixel value range.
  • the area A1 added according to the image expansion is pattern information generated using a plurality of pixel values (for example, it is assumed that a pattern uses a plurality of pixels. It is not necessary to follow a predetermined rule. Can be filled using).
  • the pattern information may be defined according to the encoding / decoding setting, or may generate related information, and may fill an extended area using at least one pattern information.
  • an area added according to image expansion may be configured by referring to pixels of some regions belonging to an image.
  • the area to be added can be configured by copying or padding the pixels (hereinafter referred to as reference pixels) in the area adjacent to the area to be added.
  • the pixel in the region adjacent to the added region may be a pixel before encoding or a pixel after encoding (or decoding).
  • the reference pixel may mean a pixel of the input image, and when the resizing is performed in the intra prediction screen generation step, the reference image generation step, and the filtering step, etc.
  • the reference pixel may mean a pixel of the reconstructed image. In this example, it is assumed that the pixel closest to the region to be added is used, but the present invention is not limited thereto.
  • the area A0 extending in the left or right direction related to the horizontal resizing of the image may be configured by padding (Z0) the outer pixels adjacent to the area A0 in the horizontal direction and related to vertical resizing of the image.
  • the region A1 extending in the up or down direction may be configured by padding Z1 the outer pixel adjacent to the region A1 extending in the vertical direction.
  • the area A2 extending in the lower right direction may be configured by padding Z2 the outer pixel adjacent to the area A2 extending in the diagonal direction.
  • an extended area B'0 to B'2 may be configured by referring to data B0 to B2 of a partial area belonging to an image.
  • 8d unlike 8c, it may be distinguished in that it can refer to an extended region and a region which is not adjacent to each other.
  • the expanded region may be filled with reference to the pixel of the highly correlated region.
  • location information, area size information, and the like of a highly correlated region may be generated.
  • a region of high correlation exists through encoding / decoding information such as characteristics and types of the image, and implicitly confirms location information and size information of a region of high correlation (for example, in a 360-degree image). If you can, you can populate the area with data from that area. In this case, location information, area size information, etc. of the corresponding area may be omitted.
  • the pixel of the area B2 opposite to the expanded area in the left or right direction related to the horizontal scaling is referred to.
  • To fill in the expanded area in the case of the area B'2 extending in the left or right direction related to the horizontal scaling of an image, the pixel of the area B2 opposite to the expanded area in the left or right direction related to the horizontal scaling is referred to.
  • the pixel of the area B1 opposite to the extended area in the up or right direction related to the vertical resizing is referred to.
  • the pixel of the area B1 opposite to the extended area in the up or right direction related to the vertical resizing is referred to.
  • the image is extended with reference to the pixels in the areas B0 and TL opposite to the expanded area. You can fill the area to be.
  • the data of the corresponding area may be copied and filled as it is, or the data of the area may be filled after performing a conversion process based on the characteristics and types of the image.
  • copying as it is it may mean that the pixel value of the corresponding area is used as it is, and when it is converted, it may mean that the pixel value of the corresponding area is not used as it is. That is, a change may be made in at least one pixel value of the corresponding region through the conversion process, and may be filled in the expanded region, or at least one acquisition position of some pixels may be different.
  • the data of CxD may be used instead of the data of AxB of the corresponding area to fill AxB which is an extended area.
  • at least one motion vector applied to the pixel to be filled may be different.
  • the above example may be an example that occurs when a plurality of surfaces are formed according to a projection format in a 360-degree image when filling in an area that is expanded using data of another surface.
  • the data processing method for filling the region extended by the size adjustment of the image is not limited to the above example and may be improved and changed or an additional data processing method may be used.
  • Candidate groups for a plurality of data processing methods may be supported according to encoding / decoding, and data processing method selection information among a plurality of candidate groups may be generated and recorded in a bitstream.
  • one data processing method may be selected from a method of filling using a preset pixel value, a method of copying and filling an outer pixel, a method of copying and filling a portion of an image, and a method of converting and filling a portion of an image.
  • selection information may be generated.
  • an implicit data processing method may be determined.
  • the data processing method applied to the entire area (in this example, TL to BR of FIG. 7A) extended by the resizing of an image may be filled using a preset pixel value, a method of copying and filling an outer pixel, The method may be one of a method of copying and filling a partial region of the image, a method of converting and filling a partial region of the image, and other methods, and selection information may be generated.
  • one preset data processing method applied to the entire area may be determined.
  • the data processing method applied to the region may be filled using a preset pixel value.
  • the method may be one of a method, a method of copying and filling an outer pixel, a method of copying and filling a partial region of an image, a method of converting and filling a partial region of an image, and other methods, and selection information may be generated.
  • one preset data processing method applied to at least one area may be determined.
  • FIG. 9 is an exemplary view illustrating a method of configuring a region to be deleted and a region to be generated according to image size reduction in an image size adjusting method according to an embodiment of the present invention.
  • the area to be deleted in the image reduction process may not only be removed but also removed after a series of utilization processes.
  • the image A may be subdivided and referred to as TL to BR as in FIG. 8A.
  • the partial regions A0 to A2 may be removed, and may be used as reference information when encoding / decoding the image A.
  • FIG. For example, some areas A0 to A2 deleted in the restoration process or the correction process of the partial area of the reduced image A generated may be utilized.
  • a weighted sum, an average, and the like of two regions may be used.
  • the restoration or correction process may be a process that can be applied when the two regions have a high correlation.
  • the area B′2 deleted as the image is reduced in the left or right direction related to the horizontal resizing of the image may be formed on the opposite side (B2, LC) of the region reduced in the left or right direction related to the horizontal resizing.
  • the area can be removed from memory after it has been used to restore or correct the pixels.
  • the area B'1 deleted in the up or down direction related to the vertical resizing of the image may be a negative / neutral portion of the areas B1 and TR opposite to the reduced area in the up or down direction related to the vertical resizing.
  • the area can be removed from memory.
  • an area B'0 that is reduced by adjusting some size of the image may be a negative / decoding process (restore) of the areas B0 and TL opposite to the area that is reduced.
  • the area can be removed from memory after the calibration process.
  • the continuity exists at both edges of the image, and thus the case of using the data for restoring or correcting the data in the symmetrical position with the resizing direction is not limited thereto. It can also be removed from memory after it is used for data restoration or correction.
  • the data processing method for eliminating the reduced region of the present invention is not limited to the above examples, and may be improved and changed or additional data processing methods may be used.
  • candidate groups for a plurality of data processing methods may be supported, and selection information about the plurality of data processing methods may be generated and recorded in the bitstream. For example, one data processing method may be selected from a method of simply removing a size to be resized, a method of removing and then using the size to be resized in a series of processes, and generating selection information.
  • an implicit data processing method may be determined.
  • the data processing method applied to the entire area (in this example, TL to BR in FIG. 7B of FIG. 7) that is deleted as the image is reduced due to the resizing of the image is a simple removal method, and used after a series of processes.
  • the method may be one of other methods, and selection information may be generated.
  • an implicit data processing method may be determined.
  • the data processing method applied to an individual region (in this example, each of TL to BR in FIG. 7B) reduced by resizing of an image may be a simple removal method, a method of removing the image after using it in a series of procedures, and other methods. One may be selected, and selection information may be generated. In addition, an implicit data processing method may be determined.
  • a method of filling a region to be enlarged by using some data of the image is selected, and a method of removing and then removing the region to be reduced in the reverse process thereof is used to restore or correct some data of the image.
  • a method of filling a region to be enlarged using a copy of an outer pixel is selected, and a method of simply removing a region to be reduced in the reverse process is selected. That is, the data processing method in the reverse process may be determined based on the data processing method selected in the image resizing process.
  • an image resizing process and an inverse process data processing method may have an independent relationship. That is, the data processing method in the reverse process may be selected regardless of the data processing method selected in the image scaling process. For example, a method of filling a region to be enlarged using some data of an image may be selected, and a method of simply removing a region to be reduced in the reverse process may be selected.
  • the data processing method in the image resizing process may be implicitly determined according to the encoding / decoding setting, and the data processing method in the reverse process may be implicitly determined according to the encoding / decoding setting.
  • the data processing method in the image resizing process may be explicitly generated, and the data processing method in the reverse process may be explicitly generated.
  • the data processing method in the image resizing process may be explicitly generated, and the data processing method in the reverse process may be implicitly determined based on the data processing method.
  • the resizing process is expanded, and the resizing process is reduced.
  • the difference between “image before resizing” and “image after resizing” may refer to the size of the image, and the size related information may be explicitly generated or some information may be generated depending on the encoding / decoding setting. Information can be implicit.
  • the scaling related information may include information about the scaling process and the scaling reverse process.
  • a size adjustment process may be performed on an input image before encoding starts.
  • Image after resizing using resizing information e.g. resizing behavior, resizing direction, resizing value, data processing method, etc.
  • the data processing method is used in the resizing process
  • the data may be stored in the memory, and the image encoded data (in this example, the image after the resizing) may be stored in the bitstream and transmitted.
  • the resizing process may be performed before the decoding starts. After the resizing is performed using the resizing information (for example, resizing operation, resizing direction, resizing value, etc.), the decoded image data may be parsed and decoded after resizing. After the decoding is completed, it can be stored in the memory, and the output image can be changed to the image before resizing by performing a scaling inverse process (in this example, a data processing method, which is used in the scaling inverse process).
  • a scaling inverse process in this example, a data processing method, which is used in the scaling inverse process.
  • a resizing process may be performed on a reference image before encoding starts.
  • Image after resizing using resizing information e.g. resizing behavior, resizing direction, resizing value, data processing method, etc.
  • the data processing method is used in the resizing process
  • the reference image after resizing in this example can be stored in the memory, and the image can be encoded using this.
  • the image encoded data meaning the encoding using the reference image in this example
  • a resizing process may be performed as described above.
  • the resizing process may be performed on the reference picture before decoding starts.
  • Image after resizing using resizing information e.g. resizing behavior, resizing direction, resizing value, data processing method, etc.
  • the data processing method is used in the resizing process
  • the reference image may be stored in a memory, and the image decoded data (the same as that encoded by using the reference image in the encoder in this example) may be parsed and decoded.
  • an output image may be generated, and when the decoded image is included as a reference image and stored in a memory, the resizing process may be performed as described above.
  • the encoding is completed except for the filtering process.
  • the image resizing process may be performed before the filtering of the image (assuming a deblocking filter in this example) starts.
  • Image after resizing using resizing information e.g. resizing behavior, resizing direction, resizing value, data processing method, etc.
  • the data processing method is used in the resizing process
  • the resizing process can be performed to change the image before resizing.
  • the decoding is completed except for the filtering process.
  • the resizing process may be performed on the image before the filtering of the image is started.
  • Image after resizing using resizing information e.g. resizing behavior, resizing direction, resizing value, data processing method, etc.
  • the data processing method is used in the resizing process
  • the resizing process can be performed to change the image before resizing.
  • the scaling process and the scaling inverse process may be performed, and in other cases (second example), only the scaling process may be performed.
  • the scaling process in the encoder and the decoder may be the same, and in other cases (the first example), the scaling process in the encoder and the decoder is the same or May not be the same.
  • the difference in the resizing process in the encoder / decoder may be a resizing step.
  • the resizing step may include a resizing step that takes into account the scaling of the image and data processing of the region to be resized, and in some cases (decoder in this example) It may include the step of performing the scaling to consider the scaling.
  • the former data processing may correspond to the data processing of the latter resizing process.
  • the resizing process may be a process applied only to the corresponding step, and the resizing area may not be stored in the memory.
  • the filter can be stored in temporary memory for use in the filtering process, and the region can be removed by resizing. In this case, there is no change in the size of the image due to resizing. Can be. It is not limited to the above examples but modifications to other examples may be possible.
  • the size of the image may be changed through the resizing process, and thus the coordinates of some pixels of the image may be changed through the resizing process, which may affect the operation of the picture divider.
  • the block-based division may be performed based on the image before the resizing or the block-based division may be performed based on the image after the resizing.
  • division of some units for example, tiles, slices, etc.
  • division of some units may be performed based on the image before resizing
  • division of some units may be performed based on the image after resizing, which may be encoded / decoded. It can be determined according to the setting.
  • the picture division unit operates based on the image after the resizing (for example, the image dividing process after the resizing process) will be described. However, other modifications are also possible. The case for the example will be explained.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream. It may also be included in the bitstream in the form of SEI or metadata.
  • image reconstruction may be performed for the purpose of improving encoding efficiency of the image
  • image reconstruction may be performed for the purpose of considering the network and user environment
  • image reconstruction may be performed according to the type and characteristics of the image. can do.
  • the image reconstruction process may be performed by the reconstruction process alone or may be performed in reverse.
  • the reconstruction process will be described.
  • the reconstruction process may be reversed in the reconstruction process.
  • FIG. 10 is an exemplary view of image reconstruction according to an embodiment of the present invention.
  • 10a to 10d may include a rotation including zero degrees in the image (for example, a candidate group generated by sampling 360 degrees into k intervals. K is 2 or 4). , 8, etc., and in the present example, it is an exemplary diagram in which 4 is applied and 10e to 10h are exemplary diagrams in which inversion (or symmetry) is applied based on 10a or 10b to 10d. .
  • the starting position or the scanning order of the image may be changed, or the preset starting position and the scanning order may be followed regardless of whether or not to reconstruct the image, which may be determined according to the encoding / decoding setting.
  • the case corresponds to a preset start position (eg, the upper left position of the image) and a scanning order (eg, raster scan) regardless of whether the image is reconstructed or not.
  • the image encoding method and the decoding method may include the following image reconstruction step.
  • the image reconstruction process may include an image reconstruction instruction step, an image reconstruction type identification step, and an image reconstruction step.
  • the image encoding apparatus and the decoding apparatus may be configured to include an image reconstruction instruction step, an image reconstruction type identification step, an image reconstruction instructor implementing an image reconstruction operation step, an image reconstruction type identification unit, and an image reconstruction execution unit.
  • an associated syntax element may be generated, and in the case of decoding, an associated syntax element may be parsed.
  • the image reconstruction instruction step it may be determined whether to perform image reconstruction. For example, reconstruction may be performed when a signal indicating image reconstruction (for example, convert_enabled_flag) is confirmed, and reconstruction is not performed when a signal indicating image reconstruction is not confirmed, or other encoding / decoding information. You can check the reconstruction. In addition, even if a signal for instructing image reconstruction is not provided, a signal for instructing reconstruction may be implicitly activated or deactivated according to a sub / decoding setting (for example, characteristics, types, etc. of an image). If so, the reconfiguration related information may be generated or the reconfiguration related information may be implicitly determined.
  • a signal indicating image reconstruction for example, convert_enabled_flag
  • a signal indicating image reconstruction e.g. convert_enabled_flag
  • convert_enabled_flag 1
  • reconstruction is not performed or whether the reconstruction of the corresponding image is reconstructed by another signal.
  • reconstruction may be performed according to the characteristics, types, and the like (eg, 360 degree images) of the image, and the reconstruction information may be explicitly generated or assigned to a preset value.
  • the present invention is not limited only to the above example, and modifications to other examples may be possible.
  • the image reconstruction type may be identified.
  • the image reconstruction type may be defined by a method of performing reconstruction, reconstruction mode information, or the like.
  • the method of performing the reconstruction (eg, convert_type_flag) may include rotation, inversion, and the like.
  • the reconstruction mode information may include a mode (eg, convert_mode) in the method of performing the reconstruction.
  • the reconfiguration related information may include a method of performing reconfiguration and mode information. That is, it may be composed of at least one syntax element. In this case, the number of candidate groups of mode information according to the method of performing each reconstruction may be the same or different.
  • it may include candidates having a constant interval difference (90 degrees in this example), such as 10a to 10d.
  • 10a to 10d When 10a is 0 degrees rotation, 10b to 10d is 90 degrees, 180 degrees, An example of applying a 270 degree rotation (in this example, measuring an angle clockwise).
  • the inversion may include candidates such as 10a, 10e, and 10f.
  • 10e and 10f may be examples of applying left and right inversion and up and down inversion respectively.
  • the above example describes the case of the setting for the rotation with a certain interval and the setting for the partial inversion, but is not limited to the above example only for the image reconstruction and may include examples such as different interval difference, different inversion operation, etc. This may be determined according to the negative / decryption setting.
  • the method may include integrated information (eg, convert_com_flag) generated by mixing a method of performing reconstruction and mode information according thereto.
  • the reconfiguration-related information may be composed of information in which a method of performing reconstruction and mode information are mixed.
  • the integrated information may include candidates such as 10a to 10f, which are examples of applying 0 degree rotation, 90 degree rotation, 180 degree rotation, 270 degree rotation, left and right reverse, and up and down inversion based on 10a. have.
  • the integrated information may include candidates such as 10a to 10h, which are 0 degrees rotation, 90 degrees rotation, 180 degrees rotation, 270 degrees rotation, left and right reverse, upside down, 90 degrees rotation based on 10a.
  • This can be an example of applying reverse (or 90 degree rotation after left and right reverse), up and down reverse (or 90 degree rotation after upside down), or 0 degree rotation, 90 degree rotation, 180 degree rotation, 270 degree rotation, left and right reverse.
  • It may be an example of applying left and right inversion after rotating 180 degrees (rotating 180 degrees after inverting left and right), right and left inversion after rotating 90 degrees (90 degrees after turning left and right), and inverting left and right after turning 270 degrees (rotating 270 degrees after inverting left and right).
  • the candidate group may include a mode in which rotation is applied and a mode in which rotation and inversion are mixed in a mode in which rotation is applied.
  • the mixed configured mode may simply include mode information in a method of performing reconstruction, and may include a mode generated by mixing mode information in each method.
  • the method may include a mode generated by mixing at least one mode of some methods (eg, rotation) and at least one mode of some methods (eg, inversion), and the example may include one of some methods.
  • a plurality of modes of some methods are generated mixed (in this example, 90 degrees rotation + a plurality of inversion / left and right inversion + a plurality of rotations).
  • the mixed information may be configured to include the case where the reconstruction is not applied (10a in this example) as a candidate group, and the case where the reconstruction is not applied as the first candidate group (for example, assigning 0 as an index). It may include.
  • the reconfiguration related information may be composed of mode information according to a method of performing a preset reconfiguration. That is, the information on how to perform the reconstruction may be omitted, and may be composed of one syntax element related to the mode information.
  • it can be configured to include candidates such as 10a-10d regarding rotation.
  • it may be configured to include candidates such as 10a, 10e, and 10f regarding inversion.
  • the size of the image before and after the image reconstruction process may be the same or at least one length may be different, and this may be determined according to the encoding / decoding setting.
  • the reconstruction of the image may be a process of relocating pixels in the image (in this example, in the reconstruction inverse of the image, a pixel relocation inverse may be performed. This may be reversed in the pixel repositioning process). The location can be changed.
  • the pixel relocation may be performed according to a rule based on image reconstruction type information.
  • the rearrangement process of the pixels may be affected by the size and shape of the image (for example, square or rectangular).
  • the horizontal and vertical lengths of the image before the reconstruction process and the horizontal and vertical lengths of the image after the reconstruction process may serve as variables in the rearrangement process of the pixels.
  • the ratio between the width of the image before the reconstruction and the image width after the reconstruction, the ratio of the width of the image before the reconstruction and the length of the image after the reconstruction, and the length and reconstruction of the image before the reconstruction At least one ratio information (e.g., the former / the latter or the latter / the former, etc.) of the ratio between the horizontal length of the image after the process, the vertical length of the image before the reconstruction process, and the vertical length of the image after the reconstructing process is performed. Can act as a variable in the relocation process.
  • the ratio between the horizontal length and the vertical length of the image may act as a variable in the pixel rearrangement process.
  • the ratio between the image length before the image reconstruction process and the image length after the reconstruction process may serve as a variable in the pixel rearrangement process.
  • image reconstruction may be performed based on the identified reconstruction information. That is, the reconstruction of the image may be performed based on information such as the reconstruction type, the reconstruction mode, and the encoding / decoding may be performed based on the obtained reconstructed image.
  • the following is an example of performing image reconstruction in the encoding / decoding apparatus according to an embodiment of the present invention.
  • a reconstruction process may be performed on the input image before encoding starts.
  • the reconstructed image may be encoded after reconstruction using the reconstruction information (eg, image reconstruction type, reconstruction mode, etc.).
  • the data may be stored in a memory, and the image encoded data may be stored in a bitstream and transmitted.
  • the reconstruction process may be performed before the decoding starts. After the reconstruction is performed using the reconstruction information (for example, image reconstruction type, reconstruction mode, etc.), the image decoded data may be parsed and decoded. After decoding, the data may be stored in the memory, and the image may be output after changing to the image before reconstruction by performing the reconstruction process.
  • the reconstruction information for example, image reconstruction type, reconstruction mode, etc.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream. It may also be included in the bitstream in the form of SEI or metadata.
  • Table 1 shows an example of syntax elements related to segmentation during image setting.
  • the description will focus on additional syntax elements.
  • the syntax elements of the example described below are not limited to any specific unit and may be syntax elements supported in various units such as a sequence, a picture, a slice, a tile, and the like. Alternatively, it may be a syntax element included in SEI, metadata, and the like.
  • the types of syntax elements, syntax element order, and conditions supported in the following examples are limited only to the present example and may be changed and determined according to encoding / decoding settings.
  • not performing encoding means not generating encoded data in a corresponding tile (assuming that the region is processed according to a predetermined rule, etc. in this example). It is applicable to a meaningless region in some projection formats of a 360 degree image. May mean.
  • Not performing decryption means that the decrypted data in the tile is no longer parsed (in this example, the region is assumed to be processed according to a predetermined rule).
  • not parsing the decoded data any more may mean that the encoded data does not exist in the unit and no longer parses the encoded data, but may also mean that the encoded data is not parsed any more by the flag. .
  • Header information of a tile unit may be supported according to whether tiles are decoded or decoded.
  • tile division setting is not limited to the above case, and modifications to other examples may also be possible.
  • Table 2 shows examples of syntax elements related to reconstruction during image setup.
  • convert_type_flag means mixed information about a reconstruction method and mode information. It may be determined as one of a plurality of candidate groups regarding a method of applying rotation, a method of applying inversion, and a method of applying rotation and inversion.
  • Table 3 shows an example of syntax elements related to scaling during image setting.
  • pic_width_in_samples and pic_height_in_samples mean syntax elements related to the horizontal and vertical lengths of an image, and the size of the image may be confirmed by the syntax elements.
  • img_resizing_enabled_flag means a syntax element for resizing the image.
  • resizing_mov_flag means a syntax element for the resizing operation. For example, it can be determined as one of expansion or contraction.
  • width_scale and height_scale refer to scale factors related to horizontal scaling and vertical scaling in scaling through scale factors.
  • top_height_offset and bottom_height_offset are the up and down offset factors related to horizontal scaling during scaling with the offset factor
  • left_width_offset and right_width_offset are the left and right directions associated with vertical scaling during scaling through the offset factor.
  • the offset factor is the offset factor.
  • the size of the image may be updated after the scaling through the scaling related information and the image size information.
  • resizing_type_flag means a syntax element for a data processing method of a size to be resized. Depending on the resizing method and the resizing operation, the number of candidate groups for the data processing method may be the same or different.
  • the image setting process applied to the above-described image encoding / decoding apparatus may be performed individually or a plurality of image setting processes may be mixed. In the following example, a case where a plurality of image setting processes are mixed and performed will be described.
  • 11 is an exemplary diagram illustrating an image before and after an image setting process according to an embodiment of the present invention.
  • 11a is an example before performing image reconstruction on the divided image (eg, an image projected by 360 degree image encoding)
  • 11b is an example after performing image reconstruction on the divided image (eg, , Packed video in 360-degree video encoding). That is, 11a may be understood as an exemplary view after performing the image setting process and 11b before performing the image setting process.
  • the image reconstruction is performed after the image segmentation is performed.
  • the image segmentation may be performed after the image reconstruction is performed according to the encoding / decoding, and may be modified in other cases. Can be.
  • the above-described image reconstruction process (including an inverse process) may be applicable to the same or similar to the reconstruction process of the division unit in the image in the present embodiment.
  • the reconstruction of the image may or may not be performed on every division unit in the image, or may be performed on some division units.
  • the division unit before reconstruction eg, some of P0 through P5
  • the division unit after reconstruction eg some of S0 through S5
  • a case of performing various image reconstruction will be described with an example to be described later.
  • it is assumed that a unit of an image is a picture, a unit of a split image is a tile, and a division unit is a square.
  • some units eg, sps_con
  • whether to perform reconstruction of a division unit in an image may be determined according to a signal (eg, pps_convert_enabled_flag) indicating the reconstruction of the image.
  • whether to perform reconstruction of all division units in an image may be determined according to the signal.
  • a signal may be generated to indicate reconstruction of one image in the image.
  • whether to perform reconstruction of a division unit in an image may be determined according to a signal (eg, tile_convert_flag [i]) indicating a reconstruction of the image.
  • a signal indicating the reconstruction of at least one image (eg, generated by the number of division units) may be generated.
  • whether to perform the reconstruction of the image may be determined according to a signal (for example, pps_convert_enabled_flag) indicating the reconstruction of the image, and the image according to the signal (for example, tile_convert_flag [i]) indicating the reconstruction of the image.
  • Whether or not to perform reconstruction of the subdivision unit may be determined.
  • some signals for example, tile_convert_flag [i]
  • a signal for instructing reconstruction of the plurality of images may be generated.
  • image reconstruction related information may occur.
  • image reconstruction related information a case related to various image reconstruction information will be described.
  • reconstruction information applied to an image may occur.
  • one reconstruction information may be used as reconstruction information of all division units in an image.
  • reconstruction information applied to a division unit in an image may occur.
  • at least one reconstruction information may be used as reconstruction information of some division units in an image. That is, one reconstruction information may be used as reconstruction information of one division unit or one reconstruction information may be used as reconstruction information of a plurality of division units.
  • a signal eg, pps_convert_enabled_flag
  • reconstruction information commonly applied to the division unit in the image
  • a signal eg, pps_convert_enabled_flag
  • reconstruction information that is individually applied to the division unit in the image
  • a signal eg, tile_convert_flag [i]
  • reconstruction information that is individually applied to the division unit in the image may occur.
  • a signal eg, tile_convert_flag [i]
  • reconstruction information commonly applied to the division unit in the image may occur.
  • reconstruction information implicit or explicit processing may be performed according to the encoding / decoding.
  • reconstruction information may be allocated to a preset value according to characteristics, types, etc. of an image.
  • P0 to P5 of 11a may correspond to S0 to S5 of 11b and a reconstruction process may be performed on a divided unit. For example, you can assign to SO without performing reconstruction on P0, assign it to S1 by applying a 90-degree rotation to P1, assign it to S2 by applying a 180-degree rotation to P2, and assign it to P3. It may be assigned to S3 by applying left and right inversion, and may be assigned to S4 by applying left and right inversion after P90 rotation to P4, and may be assigned to S5 by applying left and right inversion after P180 rotation to P5.
  • At least one reconstruction method may be performed without reconstructing the division unit of the image, reconstruction applying rotation, reconstruction applying rotation, and reconstruction applying rotation and inversion.
  • an additional reconstruction process such as rearrangement of the division unit may be performed.
  • the image reconstruction process of the present invention may be configured to include rearrangement of the image in division units in addition to rearrangement of pixels in the image, and may include some syntax elements as shown in Table 4 (eg, part_top, part_left, part_width). , part_height, etc.). This means that image segmentation and image reconstruction may be mixed and understood.
  • Table 4 eg, part_top, part_left, part_width).
  • P0 to P5 of 11a may correspond to S0 to S5 of 11b, and a reconstruction process may be performed on a divided unit. For example, you can assign it to S0 without performing a reconstruction on P0, assign it to S2 without performing a reconstruction on P1, assign it to S1 by applying a 90-degree rotation to P2, and right and left on P3. It can be assigned to S4 by applying inversion, can be assigned to S5 by applying left and right reversal after P90 rotation to P4, and can be assigned to S3 by applying 180 degree rotation after inverting to P5, but not limited to this. Examples of various modifications may also be possible.
  • P_Width and P_Height of FIG. 7 may correspond to P_Width and P_Height of FIG. 11, and P'_Width and P'_Height of FIG. 7 may correspond to P'_Width and P'_Height of FIG. 11.
  • the image size after resizing may be expressed as P'_Width ⁇ P'_Height, (P_Width + Exp_L + Exp_R) ⁇ (P_Height + Exp_T + Exp_B), and in FIG.
  • the image size after resizing is P'_Width ⁇ P'_Height, (P_Width + Var0_L + Var1_L + Var2_L + Var0_R + Var1_R + Var2_R) ⁇ (P_Height + Var0_T + Var1_T + Var0_B + Var1_B) or (Sub_P0_Width + Sub_P1_Width + Var_P__2 + Var_P2_V2_2) Var1_R + Var2_R) ⁇ (Sub_P0_Height + Sub_P1_Height + Var0_T + Var1_T + Var0_B + Var1_B).
  • the image reconstruction may perform rearrangement of pixels in the division unit of the image, perform rearrangement of the division unit in the image, and perform rearrangement of the division unit in the image as well as rearrangement of the pixel in the division unit of the image.
  • the pixel rearrangement of the division unit may be performed, and then the rearrangement of the division unit may be performed, or the rearrangement of the division unit pixel may be performed.
  • Relocation of the division unit in the image may be determined according to a signal indicating reconstruction of the image.
  • a signal may be generated for relocation of division units in an image.
  • the signal may occur when a signal indicating reconstruction of the image is activated.
  • implicit or explicit processing may be performed depending on the encoding / decoding. The implied case may be determined according to the characteristics, types, and the like of the image.
  • the information on the relocation of the segmentation unit in the image may be implicitly or explicitly processed according to the encoding / decoding, and may be determined according to the characteristics, types, etc. of the image. That is, each division unit may be arranged according to the arrangement information of the preset division unit.
  • the following is an example of performing reconstruction of a segmentation unit in an image in an encoding / decoding apparatus according to an embodiment of the present invention.
  • a segmentation process may be performed using segmentation information on an input image before encoding starts.
  • the reconstruction process may be performed using the reconstruction information in the division unit, and the image reconstructed in the division unit may be encoded.
  • the data After encoding is completed, the data may be stored in a memory, and the image encoded data may be stored in a bitstream and transmitted.
  • the partitioning information may be used to perform the partitioning process.
  • the reconstruction process may be performed using the reconstruction information in the division unit, and the image decoded data may be parsed and decoded in the division unit in which the reconstruction is performed.
  • the data may be stored in a memory, and after performing a reconstruction process of the division units, the division units may be merged into one to output an image.
  • P0 to P5 of FIG. 12 correspond to P0 to P5 of FIG. 11, and S0 to S5 of FIG. 12 correspond to S0 to S5 of FIG. 11.
  • the image resizing is performed after the image segmentation is performed.
  • the image segmentation may be performed after the image resizing is performed according to the sub / decoding setting. Modifications may also be possible.
  • the above-described image resizing process (including the reverse process) may be the same as or similar to the resizing process of the division unit in the image in the present embodiment.
  • TL to BR of FIG. 7 may correspond to TL to BR of the division units SX (S0 to S5) of FIG. 12, and S0 and S1 of FIG. 7 may correspond to PX and SX of FIG. 12.
  • P_Width and P_Height of FIG. 7 may correspond to Sub_PX_Width and Sub_PX_Height of FIG. 12
  • P'_Width and P'_Height of FIG. 7 may correspond to Sub_SX_Width and Sub_SX_Height of FIG. 12
  • Exp_L and Exp_R of FIG. Exp_T and Exp_B may correspond to VarX_L, VarX_R, VarX_T, and VarX_B of FIG. 12, and other factors may also correspond.
  • the resizing of the image may or may not be performed on every division unit in the image, or may be performed on some division units.
  • a case of adjusting various image sizes will be described with an example to be described later.
  • the scaling operation is expanded and scaled in such a manner that the offset factor, the scaling direction is set in the up, down, left and right directions, and the scaling direction is operated by the scaling information. It is assumed that a unit of picture is a picture and a unit of a split image is a tile.
  • whether to perform image resizing may be determined in some units (eg, sps_img_resizing_enabled_flag. Or SEI or metadata).
  • whether to perform the resizing of the image may be determined in some units (for example, tile_resizing_flag [i] .i is a split unit index), which is first generated in the unit (tile in this example) or in higher units. It may be possible if activated.
  • whether to adjust the size of the partial image may be implicitly determined according to the encoding / decoding setting, and thus related information may be omitted.
  • whether or not to adjust the size of the division unit in the image may be determined according to a signal (eg, pps_img_resizing_enabled_flag) indicating the size of the image.
  • a signal indicating size adjustment of one image may occur.
  • whether or not to adjust the size of the division unit in the image may be determined according to a signal (eg, tile_resizing_flag [i]) indicating the size of the image.
  • a signal eg, tile_resizing_flag [i]
  • it may be determined whether to adjust the size of some division units in the image according to the signal.
  • a signal eg, generated as many as the number of division units
  • size adjustment of at least one image may be generated.
  • whether or not to perform the resizing of the image may be determined according to a signal indicating the resizing of the image (for example, pps_img_resizing_enabled_flag), and a signal indicating the resizing of the image (for example, tile_resizing_flag [i]).
  • a signal indicating the resizing of the image for example, pps_img_resizing_enabled_flag
  • tile_resizing_flag [i] indicating the resizing of the image.
  • resizing information applied to an image may occur.
  • one scaling information or a set of scaling information may be used as scaling information of all division units in an image.
  • one scaling information commonly applied to the up, down, left, and right directions of a division unit in an image or a scaling value applied to all of the scaling directions supported or allowed in the division unit.
  • 1 information or one set of resizing information or, as many as the number of resizing directions supported or allowed in a division unit. Up to four pieces of information in this example) are applied to the up, down, left, and right directions, respectively. May occur.
  • resizing information applied to a division unit in an image may occur.
  • at least one of the scaling information or the scaling information set may be used as the scaling information of some division unit in the image. That is, one scale information or a set of scale information may be used as scale information of one division unit or may be used as scale information of a plurality of division units.
  • one scaling information commonly applied to the up, down, left, and right directions of one division unit in an image, or one scaling information set respectively applied to the up, down, left, and right directions may occur.
  • one size adjustment information commonly applied to the up, down, left, and right directions of the plurality of division units in the image or one set of the adjustment information respectively applied to the up, down, left, and right directions may occur.
  • the configuration of the scale set means scale value information for at least one scale direction.
  • resizing information that is commonly applied to division units in an image may occur.
  • resizing information may be separately applied to division units in an image.
  • An example to be described below may be described through a combination with an example of performing image resizing.
  • scaling information commonly applied to a division unit in the image may occur.
  • a signal (eg, pps_img_resizing_enabled_flag) indicating size adjustment of the image is activated
  • scaling information applied to a division unit in the image may be generated.
  • a signal (eg, tile_resizing_flag [i]) indicating size adjustment of the image is activated
  • resizing information applied to a division unit in the image may be generated.
  • scaling information commonly applied to a division unit in the image may occur.
  • the image resizing direction and the resizing information may be implicitly or explicitly processed according to the encoding / decoding.
  • the resizing information may be allocated to a preset value according to the characteristics, types, etc. of the image.
  • the resizing direction in the resizing process of the present invention described above is at least one of up, down, left, and right directions, and the resizing direction and the resizing information can be explained explicitly or implicitly. That is, some directions may implicitly be pre-determined with a scale value (including zero, ie no adjustment) and some directions may be explicitly assigned a scale value (with zero, ie no adjustment).
  • the scaling direction and the scaling information may be set to be implicitly or explicitly processed, and may be applied to the division unit in the image.
  • a setting may be applied to one division unit in the image (occurring by division units in this example) or a setting may be applied to a plurality of division units in the image or may be applied to all division units in the image. May be generated (one setting in this example), and at least one setting may be generated in the image (for example, one setting may be generated by the number of division units).
  • One setting set may be defined by collecting setting information applied to the division unit in the image.
  • FIG. 13 is an exemplary diagram of a size adjustment or setting set of a division unit in an image.
  • P0 is up and left directions a2 and a0
  • P1 is up direction a2
  • P2 is up and right directions a2 and a1
  • P3 is down and left directions a3 and a0
  • P4 may be adjusted in the downward direction a3
  • P5 may be adjusted in the downward direction and the right directions a3 and a1, and may not be adjustable in other directions.
  • some directions of the division unit can be explicitly processed for resizing, and some directions of the division unit (left and right in this example) are boundary of the image. If it matches, then explicit processing (bold solid lines in this example) and implicit processing if it does not match (thin solid lines in this example) can be done.
  • P0 is up, down, left direction (b2, b3, b0)
  • P1 is up, down direction (b2, b3)
  • P2 is up, down, right direction (b2, b3, b1)
  • P3 is Up, down, left direction (b3, b4, b0)
  • P4 can be adjusted in the up, down, right direction (b3, b4, b1), up, down (b3, b4), P5,
  • the other direction may not be resizable.
  • some directions of the division unit may perform explicit processing of resizing, and some directions of the division unit (up and down in this example) may be defined as boundaries of the image. If it matches (thick solid line in this example), explicit processing can be done, and if it does not match (thin line in this example), implicit processing can be performed.
  • P0 is the up, left, and right directions (c4, c0, c1)
  • P1 is the up, left, and right directions (c4, c1, c2)
  • P2 is the up, left, and right directions (c4, c2, c3).
  • P3 is in the down, left and right directions (c5, c0, c1)
  • P4 is in the down, left and right directions (c5, c1, c2)
  • P5 is in the down, left and right directions (c5, c2, c3). Resizing may be possible and other directions may be impossible.
  • the setting related to the scaling of an image may have various cases.
  • a plurality of setting sets may be supported to explicitly generate setting set selection information, or a preset setting set may be implicitly determined according to a sub / decoding setting (for example, characteristics, types, etc. of an image).
  • FIG. 14 is an exemplary diagram illustrating an image scaling process and a scaling process of segmentation units in an image.
  • an image resizing process and a reverse process may be performed with e and f, and a size reversal process and reverse process may be performed with d and g. That is, the resizing process may be performed on the image, the resizing of the division unit in the image may be performed, and the order of the resizing process may not be fixed. This means that multiple scaling processes may be possible.
  • the image resizing process can be classified into image resizing (or resizing before splitting) and segmentation unit (or resizing after splitting) in the image. Both of the divisions in the image may not be resized, either one of them, or both, depending on the sub / decoding settings (e.g., characteristics, type, etc. of the image). Can be determined accordingly.
  • the resizing of the image may be performed in at least one of the up, down, left, and right directions of the image, and at least one of the division units in the image.
  • the size adjustment of the division unit may be performed, and in this case, the size adjustment may be performed in at least one of the up, down, left, and right directions of the division unit to which the adjustment is performed.
  • the size of the image A before resizing is P_Width ⁇ P_Height
  • the size of the image after the first resizing (or before the second resizing, B) is P'_Width ⁇ P'_Height, second.
  • the size of the image after resizing (or the image after final resizing, C) may be defined as P '' _ Width ⁇ P '' _ Height.
  • the image before resizing refers to an image on which no scaling is performed
  • the image after first resizing refers to an image on which some resizing has been performed
  • the image after second resizing Means an image on which all the resizing is performed.
  • the image B after the primary size adjustment refers to an image in which the size of the division unit in the image is adjusted as shown in FIGS. 13A to 13C
  • the image C after the second size adjustment is shown in FIG. 7A.
  • it may mean an image on which the resizing is performed on the entire first-sized image B, and vice versa.
  • Various modifications may be possible without being limited to the above examples.
  • P'_Width may be obtained through at least one scaling value in a left or right direction that is horizontally resizable with P_Width, and P'_Height is resized vertically with P_Height. It can be obtained through at least one scaling value in the adjustable up or down direction.
  • the scaled value may be a scaled value generated in a division unit.
  • P '' _ Width may be obtained through P'_Width and at least one scaling value in the left or right direction that is horizontally resizable, and P '' _ Height is P '_Height and at least one scaling value of the vertical or vertical direction can be obtained.
  • the scale value may be a scale value generated in the image.
  • the size of the image after the scaling may be obtained through the size of the image before the scaling and at least one scaling value.
  • Information about a data processing method may occur in an area in which an image is resized.
  • a case of various data processing methods will be described through an example to be described later.
  • the data processing method generated in the resizing process may be the same as or similar to that of the resizing process.
  • the data processing method in the process may be described through various combinations in the following case.
  • a data processing method applied to an image may occur.
  • one data processing method or a set of data processing methods may be used as a data processing method of all division units in the image (assuming that all division units are scaled in this example).
  • one data processing method that is commonly applied to the up, down, left, and right directions of a division unit in an image (or a data processing method that is applied to all the resize directions supported or allowed in a division unit, etc.) 1 information) or one set of data processing methods (or, as many as the number of resizing directions supported or allowed in the division unit. Up to four pieces of information in this example) are applied to the up, down, left, and right directions, respectively. May occur.
  • a data processing method applied to a division unit in an image may occur.
  • at least one data processing method or a set of data processing methods may be used as a data processing method of some division units (assuming a division unit to be scaled in this example) in an image. That is, one data processing method or a set of data processing methods may be used as a data processing method of one division unit or may be used as a data processing method of a plurality of division units.
  • one data processing method commonly applied to the up, down, left, and right directions of one division unit in an image, or one set of data processing methods respectively applied to the up, down, left, and right directions may occur. have.
  • one data processing method commonly applied to the up, down, left, and right directions of a plurality of division units in an image, or one data processing method information set respectively applied to the up, down, left, and right directions may occur.
  • the configuration of the data processing method set means a data processing method for at least one scaling direction.
  • a data processing method commonly applied to division units in an image may be used.
  • a data processing method that is individually applied to the division unit in the image may be used.
  • the data processing method may use a preset method.
  • the preset data processing method may include at least one method, which corresponds to an implicit case, and may explicitly generate selection information about the data processing method, which may include encoding / decoding settings (eg, characteristics of an image, Type, etc.).
  • a data processing method commonly applied to the division unit in the image may be used, and a preset method or one of a plurality of data processing methods may be selected.
  • a data processing method that is individually applied to a division unit in an image may be used, and a preset method may be used or one of a plurality of data processing methods may be selected according to the division unit.
  • Some areas TL to BR of some units may store data of some areas tl to br of some units (P0 to P5 of FIGS. 12A to 12F). Can be used to perform resizing.
  • the some units may be the same (for example, S0 and P0) or regions that are not the same (for example, S0 and P1). That is, the area to be resized (TL to BR) can be filled using some data (tl to br) of the corresponding partitioning unit, and the area to be resized can be filled using some data of a partitioning unit different from the partitioning unit. have.
  • the area TL to BR of the current division unit may be resized using tl to br data of the current division unit.
  • S0 TL is P0 tl data
  • S1 RC is P1 tr + rc + br data
  • S2 BL + BC is P2 bl + bc + br data
  • S3 TL + LC + BL can be filled using the data of tl + lc + bl of P3.
  • the area TL to BR of the current division unit may be resized using tl ⁇ br data of the division unit spatially adjacent to the current division unit.
  • TL + TC + TR of S4 gives bl + bc + br data of P1 in the upward direction
  • BL + BC of S2 gives tl + tc + tr data of P5 in the downward direction
  • LC + BL of S2 The tl + rc + bl data of P1 in the left direction, the tl + lc + bl data of P4 in the right direction, and the tl + lc + bl data in P in the left direction can be filled using tl + rc + bl data in the left direction.
  • the area TL to BR of the current division unit may be resized using tl ⁇ br data of the division unit that is not spatially adjacent to the current division unit.
  • data of both boundary regions (eg, left, right, up and down) of an image may be acquired.
  • S3 LC is obtained using S5 tr + rc + br data
  • S2 RC uses S0 tl + lc data
  • S4 BC uses S1 tc + tr data
  • S1 TC uses S4 bc data can do.
  • BC of S1 can be obtained using tl + lc + bl data of S3, RC of S3 and tl + tc data of S1, and RC of S5 using bc data of S0.
  • Some areas TL to BR of some units may be used to restore or correct some areas tl to br of some units P0 to P5.
  • the some units may be the same (for example, S0 and P0) or regions that are not the same (for example, S0 and P2). That is, the resized area may be used and removed for restoring some data of the divided unit, and the resized area may be used and removed for restoring some data of another partitioned unit.
  • the detailed example is omitted since it can be derived inversely from the expansion process.
  • the above example may be applied when there is highly correlated data in a region to be resized, and information about a position referred to the resizing may be explicitly generated or may be obtained implicitly according to a preset rule. You can mix this to see related information. This may be an example applied when data is acquired from another region where continuity exists in encoding of a 360 degree image.
  • the following is an example of adjusting the size of a division unit in an image in an encoding / decoding apparatus according to an embodiment of the present invention.
  • a segmentation process may be performed on the input image before encoding starts.
  • the resizing process may be performed using the resizing information for each division unit, and the image may be encoded after the resizing unit is resized.
  • the data may be stored in a memory, and the image encoded data may be stored in a bitstream and transmitted.
  • the partitioning information may be used to perform the partitioning process.
  • the resizing process may be performed using the resizing information in the division unit, and the image decoded data may be parsed and decoded in the division unit in which the resizing is performed.
  • the data may be stored in the memory, and after performing the reverse process of resizing the division units, the division units may be merged into one to output an image.
  • Image reconstruction may be performed after image resizing is performed or image resizing may be performed after image reconstruction is performed.
  • image segmentation, image reconstruction, and image resizing may be possible.
  • image resizing and image reconstruction may be performed, and the order of image setting is not fixed but may be changed, which may be determined according to the encoding / decoding setting.
  • the image setting process will be described for the case in which image reconstruction is performed after image segmentation is performed and image size adjustment is performed.
  • other procedures may be possible and may be changed in other cases according to the encoding / decoding setting.
  • Combinations with image settings may also be possible.
  • the image setting process may be performed sequentially, but all or part of the setting process may be simultaneously performed.
  • a plurality of processes may be performed in some image setting processes according to encoding / decoding settings (for example, characteristics and types of images). The following is an example of various combinations of the image setting process.
  • P0 to P5 of FIG. 11A may correspond to S0 to S5 of FIG. 11B, and the reconstruction process (relocation of pixels in this example) and the resizing process (same size adjustment to the division unit in this example) may be performed in each division unit. Can be performed.
  • scaling may be applied to S0 to S5 by applying a scaling through an offset to P0 to P5.
  • S0 without reconstruction at P0
  • S1 by applying a 90 degree rotation to P1
  • S2 by applying a 180 degree rotation to P2
  • S3 can be assigned to S4 by applying left and right inversion to P4
  • S5 by applying up and down reversal to P5.
  • P0 to P5 of FIG. 11A may correspond to the same or different positions S0 to S5 of FIG. 11B, and reconstruct the division unit (relocation of the pixel and the division unit in this example), and the scaling process (in this example). The same scaling may be performed for each division unit.
  • scaling through scale may be applied to P0 to P5 and allocated to S0 to S5. It can also be assigned to S0 without reconstruction at P0, to S2 without reconstruction at P1, to S1 by applying a 90 degree rotation to P2, and to left and right inversion at P3. It can be assigned to S4 by applying the left and right inversion after P90 rotation to P4 can be assigned to S5, and can be assigned to S3 by applying a 180-degree rotation after P90 to the P5.
  • P0 to P5 of FIG. 11A may correspond to E0 to E5 of FIG. 5E, and the reconstruction process (relocation of pixels and division units in this example) and the resizing process (not identical to the division units in this example). Unscaling) may be performed. For example, you can assign to P0 without scaling and reconstruction at P0, scale with P1 at scale, assign to E1 without reconstruction, and resize at P2. Can be assigned to E2 by performing a reconstruction without performing resizing on P3 and assigning to E4 without performing a reconstruction, and performing a reconstruction without performing resizing on P4 and assigning to E5. Can be scaled through the offset to P5 and reconstructed to assign to E3.
  • the absolute position or the relative position in the image of the division unit before and after the image setting process may be maintained or changed, which may be determined according to the sub / decoding setting (for example, characteristics, types, etc. of the image).
  • the sub / decoding setting for example, characteristics, types, etc. of the image.
  • a combination of various image setting processes may be possible, and modifications to various examples may be possible without being limited to the above examples.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream. It may also be included in the bitstream in the form of SEI or metadata.
  • syntax elements related to a plurality of image settings The following shows an example of syntax elements related to a plurality of image settings.
  • the description will focus on additional syntax elements.
  • the syntax elements of the example described below are not limited to any specific unit and may be syntax elements supported in various units such as a sequence, a picture, a slice, a tile, and the like. Alternatively, it may be a syntax element included in SEI, metadata, and the like.
  • parts_enabled_flag means a syntax element for splitting some units.
  • num_partitions means a syntax element for the number of partition units, and a value of 1 plus the number of partition units.
  • part_top [i] and part_left [i] mean syntax elements for position information of a division unit, and mean a horizontal and vertical start position of the division unit (eg, an upper left position of the division unit).
  • part_width [i] and part_height [i] mean syntax elements for the size information of the partition unit, and indicate the width and length of the partition unit.
  • the start position and the size information may be set in a pixel unit or a block unit.
  • the syntax element may be a syntax element that may occur in the image reconstruction process or may be a syntax element that may occur when the image segmentation process and the image reconstruction process are mixed.
  • part_header_enabled_flag means a syntax element of whether to support the part / decryption setting in the partition unit.
  • the above example is not limited thereto as an example of syntax elements related to size adjustment and reconstruction in the division unit of the image setting to be described later, and other division units and settings of the present invention may be changed and applied.
  • This example is described under the assumption that the resizing and reconstruction is performed after the division is performed, but the present invention is not limited thereto and may be changed and applied according to another image setting order.
  • the types of syntax elements, syntax element order, and conditions supported in the following examples are limited only to the present example and may be changed and determined according to encoding / decoding settings.
  • Table 5 shows an example of syntax elements related to reconstruction in division units during image setting.
  • part_convert_flag [i] means a syntax element for reconstructing the partition unit.
  • convert_type_flag [i] means mode information on reconstruction of the division unit and may be information on relocation of pixels.
  • syntax elements may occur for additional reconstructions such as split unit relocation.
  • relocation of the partition unit may be performed through part_top and part_left, which are syntax elements related to the above-described image segmentation, or syntax elements (for example, index information, etc.) related to partition unit relocation may occur.
  • Table 6 shows an example of syntax elements related to size adjustment in division units during image setting.
  • part_resizing_flag [i] means a syntax element for adjusting image size in division units.
  • width_scale [i] and height_scale [i] mean scale factors related to horizontal scaling and vertical scaling in scaling through scale factors in subdivision units.
  • top_height_offset [i] and bottom_height_offset [i] are the top and bottom offset factors associated with scaling in the offset unit through the offset factor
  • left_width_offset [i] and right_width_offset [i] are the offset factor in the division unit.
  • resizing_type_flag [i] [j] means a syntax element for a data processing method of a region to be resized in a division unit.
  • the syntax element refers to a method of processing data that is individual in the direction of resizing.
  • syntax elements may be generated for individual data processing methods in areas that are scaled in the up, down, left, and right directions. This may be generated based on the resizing information (e.g., can only occur when resized in some direction).
  • the above-described process of image setting may be a process applied according to characteristics, types, and the like of the image.
  • the above-described image setting process may be applied in the same manner or may be changed.
  • the description will be mainly focused on the case where additional or change is applied in the above example.
  • a video generated through a 360 degree camera has a different characteristic from that obtained through a general camera. Has a different encoding environment.
  • a 360-degree image has no boundary portion having discontinuous characteristics and data of all regions may have continuity.
  • an image may be reproduced in front of an eye through a lens to request a high quality image, and when the image is acquired through a stereoscopic camera, processed image data may increase.
  • various image setting processes considering a 360 degree image may be performed.
  • the 360 degree camera may be a camera having a plurality of cameras or a plurality of lenses and sensors, and the camera or lens may cover all directions around the arbitrary center point captured by the camera.
  • the 360 degree image may be encoded using various methods. For example, encoding may be performed using various image processing algorithms in three-dimensional space, or encoding may be performed using various image processing algorithms by converting to two-dimensional space. In the present invention, a method of performing encoding / decoding by converting a 360 degree image into a two-dimensional space will be described.
  • 360 degree image encoding apparatus may be configured to include all or part of the configuration according to Figure 1, pre-processing for performing the pre-processing (Stitching, Projection, Region-wise Packing) for the input image It may further comprise a wealth.
  • the 360-degree image decoding apparatus may include all or part of the configuration according to Figure 2, the post-processing unit for performing the post-processing (Rendering) before being decoded and reproduced as the output image It may further include.
  • encoding may be performed to transmit a bitstream.
  • the parser parses the bitstream transmitted from the decoder to perform decoding.
  • the output image can be generated.
  • the bitstream may include information generated during the preprocessing process and information generated during the encoding process, and may be transmitted.
  • the decoder may parse and use the decoder in the decoding process and the postprocessing process.
  • the input image may be stitched and projected to a three-dimensional projection structure in a sphere unit, and the image data on the three-dimensional projection structure is converted into a two-dimensional image through the above process. Can be projected.
  • the projected image may include all or a part of 360 degree contents according to the encoding setting.
  • the position information of the region (or the pixel) to be disposed in the center of the projected image may be generated by an implicitly preset value or may be explicitly generated.
  • the range and position information of the included region may be generated.
  • range information eg, width and length
  • location information eg, measured based on an upper left side of the image
  • ROI region of interest
  • the 360-degree image can view all contents in the up, down, left, and right directions, but the user's gaze may be limited to a part of the image, and may be set as the ROI in consideration of this.
  • the region of interest may be set to have good quality and resolution, and other regions may be set to have lower quality and resolution than the region of interest.
  • the single stream transmission method (Single Stream) of the 360-degree image transmission method may transmit the entire image or viewport image as a separate single bitstream for the user.
  • the entire video having different video quality is transmitted as a multi-bit stream so that the video quality can be selected according to the user environment and the communication situation.
  • a tile may be selected according to a user environment and a communication situation by transmitting a partially encoded partial image of a tile unit in a multiple bit stream.
  • the 360 degree image encoder generates and transmits a bitstream having two or more qualities
  • the 360 degree image decoder may set a region of interest according to the user's gaze and selectively decode according to the region of interest. That is, the head tracking or eye tracking system may set the place where the user's gaze stays as the region of interest and render only the necessary parts.
  • the projected image may be converted into a packed image by performing a region-wise packing process.
  • the regional pavement process may include dividing the projected image into a plurality of regions, wherein each divided region may be disposed (or rearranged) in the packaged image according to the regional pavement setting.
  • the regional packaging may be performed for the purpose of increasing spatial continuity when converting a 360 degree image into a 2D image (or a projected image), and may reduce the size of the image through the regional packaging. In addition, it may be performed for the purpose of reducing image quality deterioration occurring during rendering, enabling viewport-based projection, and providing other types of projection formats.
  • Regional packing may or may not be performed according to encoding settings, and may be performed based on a signal indicating whether or not to be performed (for example, regionwise_packing_flag, and in the following example, region-specific packing information may occur only when regionwise_packing_flag is activated). Can be determined.
  • setting information or mapping information or the like in which some regions of the projected image are allocated (or arranged) to some regions of the wrapped image may be displayed (or generated).
  • the projected image and the packaged image may be the same image.
  • stitching, projection, and regional wrapping were defined as individual processes, but some (eg, stitching + projection, projection + regional wrapping) or all (eg stitching + projection + regional wrapping) It can be defined as the process of.
  • At least one packaged image may be generated with respect to the same input image according to the setting of the stitching, the projection, and the wrapping process for each region.
  • at least one encoded data of the same projected image may be generated according to the setting of the packing process for each region.
  • the packed image may be divided by performing a tiling process.
  • tiling is a process of dividing and transmitting an image into a plurality of regions, which may be an example of the 360 degree image transmission method.
  • tiling may be performed for the purpose of partial decoding in consideration of a user environment and the like, and may be performed for the efficient processing of massive data of a 360 degree image.
  • all of the images may be decoded for decoding the ROI.
  • it may be efficient to decode only the ROI.
  • the division may be divided into tiles, which are division units according to an existing coding scheme, or may be divided into various division units (square division, block, etc.) described in the present invention.
  • the division unit may be a unit that performs independent encoding / decoding. Tiling may be performed based on the projected image or the packed image or may be performed independently. That is, the screen may be divided based on the surface boundary of the projected image, the surface boundary of the packaged image, the pavement setting, and the like, and may be divided independently for each division unit. This may affect the generation of the partition information during the tiling process.
  • the projected image or the packed image may be encoded.
  • the encoded data and the information generated during the preprocessing may be included in the bitstream and transmitted to the 360 degree image decoder.
  • Information generated during the preprocessing may be included in the bitstream in the form of SEI or metadata.
  • the bitstream may include at least one piece of encoded data and at least one preprocessing information different from one part of the encoding process or some part of the preprocessing.
  • This may be an object for constructing a decoded image by mixing a plurality of encoded data (encoded data + preprocessing information) according to a user environment in a decoder.
  • a decoded video can be constructed by selectively combining a plurality of encoded data.
  • the process can be performed in two separate for application in the binocular system, the process can be performed for an additional depth image.
  • 15 is an exemplary diagram illustrating a three-dimensional space and a two-dimensional planar space representing a three-dimensional image.
  • 3DoF Degree of Freedom
  • 3DoF Degree of Freedom
  • 3DoF means the degree of freedom in space
  • 3DoF means the degree of freedom including rotation around the X, Y, and Z axes, such as 15a
  • 6DoF permits 3DoF additional movement along the X, Y, and Z axes. It means freedom.
  • the video encoding apparatus and the decoding apparatus of the present invention will be mainly described with respect to the case of 3DoF, and in the case of supporting 3DoF or more (3DoF +), it may be combined or changed with an additional process or apparatus not shown in the present invention.
  • Yaw ranges from - ⁇ (-180 degrees) to ⁇ (180 degrees)
  • Pitch ranges from - ⁇ / 2 rad (or -90 degrees) to ⁇ / 2 rad (or 90 degrees).
  • the Roll can range from - ⁇ / 2 rad (or -90 degrees) to ⁇ / 2 rad (or 90 degrees).
  • is the longitude and latitude in the map representation of the earth
  • (x, y, z) in the three-dimensional space is the ( , ⁇ ).
  • the coordinates of the three-dimensional space can be derived from the two-dimensional space coordinates according to the conversion equation of).
  • ( , ⁇ ) can be converted to (x, y, z).
  • x, y, z tan -1 (-Z / X)
  • sin - 1 (Y / (X 2 + Y 2 + Z 2 ) 1/2 ) to derive two-dimensional space coordinates from three-dimensional space coordinates have.
  • the pixels of the 3D space When the pixels of the 3D space are correctly converted to the 2D space (for example, integer unit pixels of the 2D space), the pixels of the 3D space may be mapped to the pixels of the 2D space.
  • the 2D pixels When the pixels of the 3D space are not correctly converted to the 2D space (for example, the decimal unit pixels of the 2D space), the 2D pixels may be mapped to the pixels obtained by performing interpolation.
  • the used interpolation may include Nearest neighbor interpolation, Bi-linear interpolation, B-spline interpolation, Bi-cubic interpolation, or the like.
  • the relevant information may be explicitly generated by selecting one of the plurality of interpolation candidates, or an interpolation method may be implicitly determined according to a preset rule.
  • an interpolation filter preset according to a 3D model, a projection format, a color format, and a slice / tile type may be used.
  • information about filter information eg, filter coefficients
  • ( ,) may be sampled (i, j) based on the size of the image (horizontal length, vertical length), i may range from 0 to P_Width-1, and j may range from 0 to P_Height-1.
  • the center point can be set in three-dimensional space, and the position information on the center point can be explicitly created or set to an implicitly preset value. For example, center position information in Yaw, center position information in Pitch, center position information in Roll, and the like can be generated. If a value for the information is not specified separately, each value may be assumed to be zero.
  • a partial region of the 360-degree image may be targeted, and position information (eg, Some locations belonging to this location (in this example, location information on the center point), range information, and the like may be explicitly generated or implicitly pre-set location and range information may be followed.
  • position information eg, Some locations belonging to this location (in this example, location information on the center point), range information, and the like may be explicitly generated or implicitly pre-set location and range information may be followed.
  • center position information in Yaw, center position information in Pitch, center position information in Roll, range information in Yaw, range information in Pitch, range information in Roll, etc. can be generated.
  • an area it may be at least one area, and accordingly, location information and range information of a plurality of areas may be processed. If a value for the information is not specified, it may be assumed to be the entire 360 degree image.
  • H0 to H6 and W0 to W5 in 15a each represent some latitude and longitude at 15b, and the coordinates of 15b can be expressed as (C, j), (i, C) (C is the longitude or latitude component). ).
  • C the longitude or latitude component.
  • the position information (for example, the x, y component or a range defined by x and y) is used to determine the sub / decoding information. It may be included as an example.
  • the image acquired by the 360 degree camera may be converted into a two-dimensional space.
  • a 360-degree image may be mapped using the 3D model, and various 3D models such as a sphere, a cube, a cylinder, a pyramid, and a polyhedron may be used.
  • a projection process according to the projection format based on the model may be performed.
  • 16A to 16D are conceptual views illustrating a projection format according to an embodiment of the present invention.
  • 16A illustrates an ERP (Equi-Rectangular Projection) format in which a 360 degree image is projected onto a two-dimensional plane.
  • 16B illustrates a CMP (CubeMap Projection) format in which a 360 degree image is projected onto a cube.
  • FIG. 16C illustrates an OHP (OctaHedron Projection) format in which a 360 degree image is projected on an octahedron.
  • 16D illustrates an ISP (IcoSahedral Projection) format in which a 360 degree image is projected on a polyhedron.
  • the present invention is not limited thereto, and various projection formats may be used. The left side of FIGS.
  • 16A to 16D shows an example of a 3D model, and the right side converts to a 2D space through a projection process.
  • the projection format it may have various sizes and shapes, and each shape may be formed of faces or faces, and the surfaces may be represented by circles, triangles, squares, and the like.
  • the projection format may be defined by the three-dimensional model, the setting of the surface (for example, the number of surfaces, the shape of the surface, the configuration of the shape of the surface, etc.), the setting of the projection process, and the like. If at least one of the above definitions is different, it can be viewed in a different projection format.
  • ERP consists of a sphere model (three-dimensional model), one surface (number of surfaces), and a rectangular surface (surface shape), but some of the settings in the projection process (for example, three-dimensional space). Equations used when converting from to two-dimensional space, etc.
  • the remaining projection settings are the same, and elements that make the difference in at least one pixel of the projected image during the projection process are different and are classified into different formats such as ERP1 and EPR2.
  • CMP consists of a cube model, six surfaces, and a rectangular surface, but CMP1, if some of the settings in the projection process (for example, the sampling method when converting from three-dimensional space to two-dimensional) are different. Can be classified into other formats such as CMP2.
  • projection format identification information (or projection format information) may be explicitly generated.
  • the projection format identification information may be configured through various methods.
  • the projection format may be identified by assigning index information (for example, proj_format_flag) to the plurality of projection formats. For example, 0 for ERP, 1 for CMP, 2 for OHP, 3 for ISP, 4 for ERP1, 5 for CMP1, 6 for OHP1, 7 for ISP1, 8 for CMP compact, You can assign 9 times for OHP compact, 10 times for ISP compact, and 11 times for other formats.
  • index information for example, proj_format_flag
  • the projection format may be identified by at least one element information constituting the projection format.
  • the element information constituting the projection format may include three-dimensional model information (for example, 3d_model_flag. 0 is a sphere, 1 is a cube, 2 is a cylinder, 3 is a pyramid, 4 is a polyhedron 1, 5 is a polyhedron 2), Information about the number of surfaces (for example, starting from num_face_flag. 1 and increasing in increments of 1 or by assigning the number of surfaces generated in the projection format as index information, 0 is 1, 1 is 3, 2 is 6, 3 is 8, 4 is 20, etc., surface shape information (e.g. shape_face_flag.
  • projection Process setting information (eg, 3d_2d_convert_idx, etc.) may be included.
  • the projection format may be identified by projection format index information and element information constituting the projection format.
  • projection format index information can be assigned 0 for ERP, 1 for CMP, 2 for OHP, 3 for ISP, and 4 for other formats.
  • the projection format eg, ERP, ERP1, CMP, CMP1, OHP, OHP1, ISP, ISP1, etc.
  • the projection format may be identified together with the projection process setting information.
  • the projection format for example, ERP, CMP, CMP compact, OHP, OHP compact, ISP, ISP compact, etc.
  • the element information constituting the projection format may be identified together with the element information constituting the projection format (whether by region or not).
  • the projection format may be identified by projection format index information, may be identified by at least one projection format element information, and may be identified by projection format index information and at least one projection format element information.
  • This may be defined according to the encoding / decoding setting, and the present invention will be described on the assumption that it is identified by the projection format index.
  • a description will be given of a case of a projection format represented by surfaces having the same size and shape, but a configuration in which the size and shape of each surface is not the same may be possible.
  • the configuration of each surface may be the same as or different from those of Figs. 16A to 16D, and the number of each surface is used as a symbol for identifying each surface and is not limited to a specific order.
  • ERP is one surface + rectangle
  • CMP is six surfaces + rectangle
  • OHP is eight surfaces + triangle
  • ISP is 20 surfaces + triangle.
  • the projection format may be divided into one surface (eg, ERP) or a plurality of surfaces (eg, CMP, OHP, ISP, etc.).
  • each surface may be divided into a square and a triangle.
  • the division may be an example of the type, characteristics, and the like of the image in the present invention, which may be applied when the encoding / decoding setting according to the projection format is different.
  • the type of image may be a 360 degree image
  • the characteristic of the image may be one of the above-described divisions (for example, each projection format, a projection format of one surface or a plurality of surfaces, a projection format in which the surface is rectangular or not), and the like. Can be.
  • the two-dimensional plane coordinate system (for example, (i, j)) may be defined on each surface of the two-dimensional projection image, and the characteristics of the coordinate system may vary depending on the projection format and the position of each surface.
  • one two-dimensional plane coordinate system, and other projection formats may have a plurality of two-dimensional plane coordinate systems according to the number of surfaces.
  • the coordinate system may be represented by (k, i, j), where k may be index information of each surface.
  • FIG. 17 is a conceptual view of implementing a projection format included in a rectangular image according to an embodiment of the present invention.
  • 17a to 17c may be understood to implement the projection format of FIGS. 16b to 16d as a rectangular image.
  • each image format may be configured in a rectangular form for encoding / decoding of a 360 degree image.
  • one coordinate system may be used as it is, but in the case of other projection formats, the coordinate system of each surface may be integrated into one coordinate system, and a detailed description thereof will be omitted.
  • an area filled with meaningless data such as a blank or a background occurs in the process of constructing a rectangular image. That is, it may be composed of an area including actual data (surface in this example, an active area) and an insignificant area (in this example, an inactive area) filled to form a rectangular image. This may be degraded due to an increase in the amount of encoded data due to the increase in the size of the image due to the meaningless region as well as the encoding / decoding of the actual image data.
  • a process for constituting an image with an area including real data without excluding a meaningless area may be additionally performed.
  • FIG. 18 is a conceptual diagram of a method of converting a projection format into a rectangular shape according to an embodiment of the present invention, and repositioning the surface to exclude a meaningless area.
  • this process may be defined as a regional packaging process (CMP compact, OHP compact, ISP compact, etc.).
  • CMP compact, OHP compact, ISP compact, etc. may be divided and rearranged (OHP compact, ISP compact, etc.).
  • This may be performed for the purpose of improving encoding performance through not only removing meaningless regions but also efficient placement of surfaces. For example, when the arrangement of images is continuous between surfaces (for example, B2-B3-B1, B5-B0-B4, etc. in 18a), encoding performance may be improved by improving prediction accuracy at the time of encoding.
  • the regional packaging according to the projection format is only an example in the present invention and is not limited thereto.
  • FIG. 19 is a conceptual view illustrating a wrapping process for each region in a rectangular image of a CMP projection format according to an embodiment of the present invention.
  • the CMP projection format may be arranged as 6 ⁇ 1, 3 ⁇ 2, 2 ⁇ 3, 1 ⁇ 6.
  • it may be arranged as 19d to 19e.
  • CMP is taken as an example, but may be applied to other projection formats without being limited to CMP.
  • the surface layout of the image acquired through the regional packaging may conform to a predetermined rule according to the projection format or explicitly generate information about the layout.
  • the 360-degree image encoding / decoding apparatus may include all or a part of the image encoding / decoding apparatus according to FIGS. 1 and 2, and in particular, a format conversion unit for converting and inversely converting a projection format. And a format inverse transform unit may be further included in the image encoding apparatus and the image decoding apparatus, respectively. That is, in the image encoding apparatus of FIG. 1, the input image may be encoded through a format converter, and after the bitstream is decoded in the image decoding apparatus of FIG. 2, an output image may be generated through the inverse format converter.
  • the input image will be described on the premise that the input image is the same image as the two-dimensional projection image or the package image obtained by performing the preprocessing process in the 360-degree encoding apparatus. That is, the input image may be an image obtained by performing a projection process or a region-specific packaging process according to some projection formats.
  • the projection format previously applied to the input image may be one of various projection formats, may be regarded as a common format, and may be referred to as a first format.
  • the format conversion unit may perform conversion to a projection format other than the first format.
  • a format to be converted may be referred to as a second format.
  • ERP may be set to a first format and conversion may be performed to a second format (eg, ERP2, CMP, OHP, ISP, etc.).
  • the ERP2 may have the same three-dimensional model, the configuration of the surface, etc., but may have a different EPR format with some settings.
  • some of the image setting processes described below may be applied.
  • the first format and the second format may be one of various projection formats, and the present invention is not limited to the above example and may be changed to another case.
  • interpolation may be performed because pixels (integer pixels) of the converted image may be obtained not only from integer units but also from decimal units in the converted image due to different coordinate system characteristics between projection formats.
  • the interpolation filter used may use the same or similar filters as described above.
  • the interpolation filter may select one of the plurality of interpolation filter candidates to explicitly generate related information, or may be implicitly determined according to a preset rule. For example, a preset interpolation filter may be used according to a projection format, a color format, a slice / tile type, and the like.
  • information on filter information eg, filter coefficients
  • the projection format may be defined including a region-specific package. That is, the projection process and the regional packaging process may be performed in the format conversion process. Alternatively, after the format conversion unit, a process such as packing by region may be performed before encoding.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream. It may also be included in the bitstream in the form of SEI or metadata.
  • the image setting process according to the present invention may be applied to a preprocessing process, a postprocessing process, a format conversion process, a format inverse conversion process, and the like in a 360 degree image encoding / decoding device as well as a general encoding / decoding process.
  • the image setting process to be described later will be described based on the 360 degree image encoding apparatus, and can be described including the contents of the image setting described above. Duplicate explanations in the above-described image setting process will be omitted.
  • an example to be described later will be described based on an image setting process, and an image setting reverse process may be induced in the image setting process in reverse, and in some cases, it may be confirmed through various embodiments of the present invention described above.
  • the image setting process in the present invention may be performed in the projection step of the 360-degree image, may be performed in the region-specific packaging step, may be performed in the format conversion step, may be performed in other steps.
  • FIG. 20 is a conceptual diagram for 360-degree image segmentation according to an embodiment of the present invention.
  • FIG. 20 a case of an image projected by ERP will be described.
  • 20a represents an image projected by the ERP, and division may be performed using various methods.
  • the description will be focused on slices and tiles, and it is assumed that W0 to W2, H0, and H1 are divided boundary lines of slices or tiles and follow raster scan order.
  • An example to be described below will be described based on slices and tiles.
  • the present invention is not limited thereto and other division methods may be applied.
  • division may be performed in units of slices and may have division boundaries of H0 and H1.
  • division may be performed in units of tiles, and may have division boundaries of W0 to W2 and H0 and H1.
  • FIG. 20b shows an example of dividing the image projected by the ERP into tiles (assuming the same tile segmentation boundary (W0 to W2, H0, and H1 are all active) as shown in FIG. 20A).
  • the P area is the entire image
  • the V area is the area or viewport where the user's eyes stay
  • various methods may exist to provide an image corresponding to the viewport.
  • an area corresponding to the viewport may be obtained by decoding the entire image (for example, tiles a to l).
  • the entire image may be decoded, and when partitioned, tiles a to l (in this example, A + B region) may be decoded.
  • an area corresponding to the viewport may be obtained by decoding the area belonging to the viewport.
  • the tiles f, g, j, and k may be decoded to obtain an area corresponding to the viewport in the reconstructed image.
  • the former may be referred to as full decoding (or Viewport Independent Coding), and the latter may be referred to as partial decoding (or Viewport Dependent Coding).
  • the latter case may be an example that may occur in a 360-degree image having a large amount of data, and a tile-based segmentation method may be frequently used rather than a slice-based segment in that a segmentation region may be flexibly obtained.
  • the referenceability of the partition unit may be limited spatially or temporally (implicitly in this example), and encoding / decoding may be performed to take this into account.
  • An example to be described later will be described with reference to the case of full decoding, but for the purpose of preparing for the case of partial decoding, a 360-degree image division will be described based on a tile (or a rectangular division method of the present invention). The contents of the example may be the same or changed to other division units.
  • FIG. 21 is an exemplary diagram of 360 degree image segmentation and image reconstruction according to an embodiment of the present invention.
  • FIG. 21 a case of an image projected by CMP will be described.
  • 21a represents an image projected by CMP, and division may be performed using various methods. Assume that W0 to W2, H0, and H1 are the dividing boundaries of the surface, slice, and tile and follow the raster scan order.
  • division may be performed in units of slices and may have division boundaries of H0 and H1.
  • division may be performed in units of tiles, and may have division boundaries of W0 to W2 and H0 and H1.
  • the division may be performed by the surface unit, and may have a division boundary of W0 to W2 and H0 and H1. In this example, it is assumed that the surface is part of the division unit.
  • the surface is used to classify or classify regions having different properties (for example, planar coordinate systems of each surface) in the same image according to the characteristics, types (360-degree image, projection format, etc.) of the image. It may be a division unit performed (dependent sub / decoding in this example), and a slice or tile may be a division unit (independent example / decoding in this example) performed for the purpose of segmenting an image according to a user definition. .
  • the surface may be a unit divided by a predetermined definition (or derived from the projection format information) in the projection process according to the projection format, the slice, the tile explicitly generates the segmentation information according to the user definition and the divided unit Can be.
  • the surface may have a partitioned shape in a polygonal shape including a quadrangle depending on the projection format
  • the slice may have any partitioned shape that cannot be defined as a rectangle or a polygon
  • the tile may have a partitioned shape of a rectangle.
  • Setting of the division unit may be limited and defined for the purpose of explanation of the present example.
  • the surface has been described as a division unit classified for the purpose of area division, but may be a unit for performing independent sub / decoding to at least one surface unit according to the sub / decoding setting, or in combination with a tile or a slice. It can have a setting to perform independent encoding / decoding.
  • explicit information about the tile and the slice may be generated when the tile and the slice are combined, or an implicit case where the tile and the slice are combined based on the surface information may occur.
  • explicit information about tiles and slices may be generated based on surface information.
  • image segmentation process (surface in this example) is performed, and image segmentation may implicitly omit segmentation information (obtaining segmentation information from projection format information).
  • image segmentation may implicitly omit segmentation information (obtaining segmentation information from projection format information).
  • This example is an example of a dependent encoding / decoding setup, and may be an example in which referenceability between surface units is not limited.
  • one image segmentation process (surface in this example) is performed, and the image segmentation may explicitly generate segmentation information.
  • This example is an example of a dependent encoding / decoding setup, and may be an example in which referenceability between surface units is not limited.
  • a plurality of image segmentation processes are performed, and some image segmentation (surfaces in this example) may implicitly omit or explicitly generate segmentation information, and partially segment the images. (Tile in this example) may explicitly generate split information.
  • some image segmentation process surface in this example precedes some image segmentation process (tile in this example).
  • a plurality of image segmentation processes are performed, and some image segmentation (surfaces in this example) may implicitly omit or explicitly generate segmentation information, and some image segmentation (tiles in this example) may be partially Segmentation information can be explicitly generated based on image segmentation (surface in this example).
  • some image segmentation process surface in this example
  • some image segmentation process precedes some image segmentation process (tile in this example).
  • the split information is explicitly generated, but there may be a difference in the split information configuration.
  • a plurality of image segmentation processes are performed, and some image segmentation (surface in this example) may implicitly omit segmentation information, and some image segmentation (tile in this example) is part of image segmentation (this example).
  • Splitting information can be omitted implicitly, based on the For example, individual surface units can be set in tile units, or multiple surface units (in this example, tied if neighboring surfaces are continuous, otherwise unbundled. B2-B3-B1 and B4 at 18a) -B0-B5) may be set in units of tiles. It is possible to set the surface unit to tile unit according to the preset rule.
  • This example is an example of independent encoding / decoding, and may be an example in which referenceability between surface units is limited. That is, in some cases (assuming the case of the first example), the split information is implicitly processed, but there may be a difference in encoding / decoding settings.
  • the above example may be a description of a case in which a segmentation process may be performed in a projection step, a regional packaging step, and an initial stage of encoding / decoding, and may be an image segmentation process occurring in other encoding / decoding machines.
  • a rectangular image may be formed by including the region B including the data in the region A including the data.
  • the position, size, shape, number, etc. of the A and B areas are information that can be checked by the projection format or the like, or when the information about the projected image is explicitly generated.
  • Information, image reconstruction information, etc. may be represented as related information. For example, as shown in Tables 4 and 5, information about some areas of the projected image (for example, part_top, part_left, part_width, part_height, part_convert_flag, etc.) may be indicated, and is not limited to this example. For example, it may be an example applicable to different projection formats, different projection settings, and the like.
  • the region B may be configured as one image together with the region A to perform encoding / decoding.
  • the division may be performed in consideration of the characteristics of each region to set different encoding / decoding settings.
  • the encoding / decoding for the B region may not be performed through information on whether to perform encoding / decoding (for example, tile_coded_flag when the division unit is a tile).
  • the corresponding area may be restored to predetermined data (any pixel value in this example) according to a preset rule.
  • the region B and the decoding / decoding setting in the above-described image segmentation process may be different from the region A.
  • the area can be removed by performing a regional packaging process.
  • the packaged image may be an image of a surface relocation process or a region-based packaging process, and may be an image obtained by performing image segmentation and image reconstruction.
  • a rectangular shape may be formed by including an area including data.
  • the location, size, shape, number, etc. of each region is information that can be checked by a preset setting or information that can be checked when explicitly generating information about a packaged image.
  • the relevant information may be indicated as information, image reconstruction information, and the like. For example, as shown in Table 4 and Table 5, information (eg, part_top, part_left, part_width, part_height, part_convert_flag, etc.) of some areas of the wrapped image may be indicated.
  • the packed image may be segmented using various segmentation methods. For example, partitioning may be performed in units of slices and may have a partition boundary of H0. Alternatively, division may be performed in units of tiles, and may have division boundaries of W0, W1, and H0. Alternatively, the division may be performed by the surface unit, and may have a division boundary of W0, W1, and H0.
  • the image segmentation and image reconstruction processes of the present invention may be performed on the projected image.
  • the reconstruction process may rearrange not only the pixels in the surface but also the surface in the image. This may be an example where the image is divided or configured into a plurality of surfaces. An example to be described later will be described based on the case where the tile is divided based on the surface unit.
  • SX, Y (S0,0 ⁇ S3,2) of 21a is S'U, V (S'0,0 ⁇ S'2,1) of 21b.
  • X, Y may be the same as or different from U, V.
  • the reconstruction process may be performed on the surface unit.
  • S2,1, S3,1, S0,1, S1,2, S1,1, S1,0 are S'0,0, S'1,0, S'2,0, S'0, 1, S'1,1, S'2,1 can be assigned (or surface rearrangement).
  • S2,1, S3,1, S0,1 does not perform reconstruction (or pixel rearrangement), and S1,2, S1,1, S1,0 may perform reconstruction by applying a 90 degree rotation. This may be represented as shown in FIG. 21C.
  • the symbols S1, 0, S1, 1, S1, and 2 displayed side by side in FIG. 21C may be images lying sideways in accordance with the symbols in order to maintain continuity of the images.
  • Surface reconstruction can be either implicit or explicit, depending on the encoding / decoding settings.
  • the implicit case may be performed according to a preset rule in consideration of the type of image (360 degree image in this example) and the characteristics (projection format in this example).
  • 21c S'0,0 and S'1,0, S'1,0 and S'2,0, S'0,1 and S'1,1, S'1,1 and S ' 2, 1 is an image continuity (or correlation) between the two surfaces based on the surface boundary
  • 21c may be an example configured to have a continuity between the top three surfaces and the bottom three surfaces.
  • reconstruction may be performed for the purpose of increasing image continuity between surfaces in order to efficiently reconstruct the surface in the process of packaging by region. Reconstruction of such surfaces can be preset and processed.
  • the reconstruction process may be performed through explicit processing and reconfiguration information may be generated.
  • a regional packaging process might lead to M ⁇ N configurations (e.g., 6 ⁇ 1, 3 ⁇ 2, 2 ⁇ 3, 1 ⁇ 6, etc. for the CMP compact, assuming a 3 ⁇ 2 configuration in this example).
  • information about the information e.g, implicitly acquired information or explicitly generated information
  • information about the surface may be generated after the surface reconstruction according to the M ⁇ N configuration.
  • index information or position information in an image
  • mode information for reconstruction may be allocated in the case of pixel relocation in the surface.
  • Index information may be defined as shown in 18a to 18c of Figure 18, S21, 21A to 21C in SX, Y or S'U, V is the position information indicating the horizontal and vertical on each surface (for example, S [i] [j]) or a piece of position information (eg, the assumption that the position information is allocated in the raster scan order from the upper left surface of the image. S [i]) and an index of each surface may be assigned thereto.
  • S'0,0 is surface 2
  • S'1,0 is surface 3
  • S'2,0 is 1
  • S'0,1 is assigned to surface 5
  • S'1,1 is assigned to surface 0,
  • S'2,1 is assigned to surface index 4.
  • S [0] is surface 2
  • S [1] is surface 3
  • S [2] is surface 1
  • S [3] is surface 5
  • S [4] assigns surface 0
  • S [5] assigns surface index 4.
  • S'0,0 to S'2,1 are referred to as a to f.
  • the image may be represented by position information representing horizontal and vertical units of pixels or blocks based on the upper left end of the image.
  • the scanning order of the surfaces may or may not be the same in the image according to the reconstruction setting.
  • one scan order eg, raster scan
  • the scan order of a, b, and c may be the same, and the scan order of d, e, and f may not be the same.
  • the scan order may follow the order of (1,0)-> (1,1)-> (0,0)-> (0,1). This may be determined according to the reconstruction setting of the image, and may have the same setting in other projection formats.
  • the image segmentation process may set individual surface units as tiles.
  • the surfaces a to f may be set in tile units, respectively.
  • a plurality of surface units may be set as tiles.
  • surfaces a to c may be set to one tile, and d to f may be set to one tile.
  • the configuration may be determined based on surface properties (eg, continuity between surfaces, etc.) and tile settings of surfaces different from the above example may be possible.
  • the following is an example of split information according to a plurality of video segmentation processes.
  • the partitioning information on the surface is omitted, the unit outside the surface is tile, and the partitioning information is processed in various ways.
  • image segmentation information may be obtained based on surface information and may be implicitly omitted.
  • individual surfaces may be set as tiles or a plurality of surfaces may be set as tiles.
  • it may be determined according to a predetermined rule based on surface information (for example, continuity or correlation).
  • image segmentation information may be explicitly generated regardless of surface information.
  • the split information may be generated by the above-described method of image segmentation.
  • the number of columns and the number of columns of tiles can range from 0 to the width of the image / width of the block (in this example, the unit obtained from the picture divider), from 0 to the length of the image. Can be up to the vertical length of the block.
  • additional partitioning information eg, uniform_spacing_flag, etc.
  • the boundary of the surface and the boundary of the division unit may or may not coincide according to the division setting.
  • image segmentation information may be explicitly generated based on surface information.
  • the surface information in this example, the range of number of columns is 0-2, the range of number of columns is 0, 1.
  • Partitioning information can be generated based on the configuration of the inner surface 3x2). For example, the range of the number of columns and the number of columns of the tile may range from 0 to 2 and from 0 to 1.
  • additional splitting information eg, uniform_spacing_flag, etc.
  • syntax element setting for example, binarization setting, etc.
  • Ranges are limited and other binarizations may be used for smaller ranges.
  • FIG. 22 illustrates an example of dividing an image projected by CMP or a packaged image into tiles.
  • FIG. 23 is a conceptual diagram illustrating an example of adjusting the size of a 360 degree image according to an embodiment of the present invention. In this case, it is assumed that the image projected by ERP. In addition, the example mentioned later demonstrates focusing on the case of expansion.
  • the projected image can be scaled by the scale factor and scaled by the offset factor according to the image scaling type.
  • the image before scaling is P_Width ⁇ P_Height and the image after scaling is P'_Width ⁇ P'_Height Can be.
  • the horizontal length (P_Width ⁇ a) and the vertical length (P_Height ⁇ b) of the image can be obtained after the scale factor (horizontal a, vertical b in this example) is adjusted to the horizontal and vertical lengths of the image. have.
  • the image's width (P_Width + L + R) and the height (P_Height + T + B) can be obtained.
  • the resizing may be performed using a preset method, or the resizing may be performed by selecting one of a plurality of methods.
  • a data processing method may include a method of filling using a preset pixel value, a method of copying and filling an outer pixel, a method of copying and filling a portion of an image, and a method of converting and filling a portion of an image. have.
  • the size may be adjusted in consideration of a characteristic in which continuity exists at the boundary of the image.
  • the outer boundary does not exist in three-dimensional space, but when transformed into two-dimensional space through the projection process, the outer boundary region may exist. This means that the data of the boundary area has continuity data outside the boundary, but may have a boundary due to spatial characteristics. Considering these characteristics, the scaling can be performed. At this time, the continuity can be confirmed according to the projection format.
  • the ERP may be an image having characteristics in which both edges are continuous stones. In this example, it is assumed that the left and right borders of the image are continuous and the upper and lower borders are continuous.
  • the data processing method is a method of copying and filling a part of an image and a method of converting and filling a part of an image. Explain the center.
  • the area to be scaled (LC or TL + LC + BL in this example) is the area of the right side of the image (tr + rc + br in this example) where continuity exists. Can be populated using data.
  • the area to be resized (RC or TR + RC + BR in this example) is the data of the left region (tl + lc + bl in this example) with continuity to the right.
  • the area to be resized (TC or TL + TC + TR in this example) is the data of the lower region of the image (bl + bc + br in this example) where continuity exists.
  • data may be filled using data of an area to be scaled (BC or BL + BC + BR in this example).
  • the area to be resized is (-m, y) to (-1, y) with the coordinate reference of the image before resizing (in this example, x is 0 to P_Width-1). ) Or (P_Width, y) to (P_Width + m-1, y) in the range (resize to the left).
  • x refers to the coordinates of the area to be scaled based on the image coordinates before resizing
  • x ' refers to the coordinates of the area referenced to the area to be scaled based on the image coordinates before resizing. For example, if you scale to the left and m is 4 and the width of the image is 16, (-4, y) is (12, y) and (-3, y) is (13, y). In this case, (-2, y) may obtain corresponding data from (14, y) and (-1, y) from (15, y).
  • the size to be resized is (x, -n) to (x, -1 in the coordinates of the image before resizing (in this example, y is 0 to P_Height-1). ) Or (x, P_Height) to (x, P_Height + n-1).
  • y refers to the coordinates of the area to be scaled based on the image coordinates before resizing
  • y ' refers to the coordinates of the area to be referred to the area to be scaled based on the image coordinates before resizing. For example, if the image is scaled upward and n is 4 and the vertical length of the image is 16, (x, -4) is at (x, 12) and (x, -3) is at (x, 13). , (x, -2) may obtain corresponding data from (x, 14) and (x, -1) from (x, 15).
  • the image may be adjusted based on the image coordinate reference (in this example, x is 0 to P'_Width-1 and y is 0 to P'_Height-1).
  • the example may be an example that may be applied to a coordinate system of latitude and longitude.
  • the size may be adjusted by m to the left of the image.
  • the size may be adjusted by n to the right of the image.
  • the image may be resized by o toward the upper side of the image.
  • the size may be adjusted by p toward the lower side of the image.
  • the image may be resized by m to the left and n to the right.
  • the image may be resized by o toward the top of the image and p by the bottom of the image.
  • the size of the image may be adjusted by m to the left, n to the right, and o by the upper side.
  • the image may be resized by m to the left of the image, n to the right of the image, and p by the lower side of the image.
  • the image may be resized by m to the left of the image, by o to the top, and by p to the bottom.
  • the image may be resized by n to the right of the image, o by the upper side, and p by the lower side.
  • the image may be resized by m to the left, n to the right, o by the top, and p by the bottom.
  • At least one resizing may be performed as in the above example, and the resizing of the image may be performed implicitly according to the encoding / decoding setting, or the resizing of the image may be explicitly generated based on the resizing information. Can be performed. That is, m, n, o, and p in the above example may be set to a preset value, or may be explicitly generated by the resizing information, some may be set to a predetermined value, and some may be explicitly created.
  • the above example has been described focusing on the case of acquiring data from a partial region of an image, but other methods are also applicable.
  • the data may be pixels before encoding or pixels after encoding, and may be determined according to characteristics of an image or a step in which scaling is performed.
  • the data refers to input pixels such as a projection image and a packaging image, and includes a post-processing step, an intra prediction screen pixel generation step, a reference image generation step,
  • the data may mean a reconstructed pixel.
  • the resizing may be performed by using a data processing method individually for each sized area.
  • 24 is a conceptual diagram illustrating continuity between surfaces in a projection format (eg, CMP, OHP, ISP) according to an embodiment of the present invention.
  • a projection format eg, CMP, OHP, ISP
  • FIGS. 24A to 24C are spatially adjacent when there is a continuity when converted to two-dimensional space through a projection process (A), and spatially adjacent And if there is no continuity (B), there is no spatially adjacent and there is continuity (C), there is no spatially adjacent and there is no continuity (D).
  • the general image has a difference from being classified as being spatially adjacent and having continuity (A), and not being spatially adjacent and having no continuity (D). In this case, when the continuity is present, some examples (A or C) are applicable.
  • a case in which there is a spatially adjacent and continuity may appear as b0 to b4, and a case in which there is no spatially adjacent and there is continuity is B0.
  • B6 it means a case of adjacent regions in a three-dimensional space, and coding performance can be improved by using the properties of continuity between b0 to b4 and B0 to B6 in the encoding process.
  • FIG. 25 is a conceptual diagram illustrating the continuity of the surface of FIG. 21C, which is an image obtained through an image reconstruction process or a region-based wrapping process in a CMP projection format.
  • 21c of FIG. 21 is a rearrangement of 21a in which a 360-degree image is unfolded in a cube shape, the continuity of the surface of FIG. 21a is maintained. That is, as in 25a, the surfaces S2,1 are continuous with each other S1,1 and S3,1 from side to side, and with the S1,0 surface rotated 90 degrees up and down and with the S1,2 surface rotated -90 degrees have.
  • the continuity between the surfaces may be defined according to the projection format setting or the like, and examples of other modifications may be possible without being limited to the above examples. Examples to be described later will be described under the assumption that continuity as shown in FIGS. 24 and 25 exists.
  • FIG. 26 is an exemplary diagram for explaining an image size adjustment in a CMP projection format according to an embodiment of the present invention.
  • 26a is an example of resizing an image
  • 26b is an example of resizing in surface units (or divided units)
  • 26c is an example of resizing (or multiple resizing) units in an image and a surface unit. Indicates.
  • the projected image can be scaled by the scale factor and scaled by the offset factor according to the image scaling type.
  • the image before scaling is P_Width ⁇ P_Height and the image after scaling is P'_Width ⁇ P'_Height
  • the size of the surface may be F_Width ⁇ F_Height.
  • the size may be the same or different depending on the surface, and the horizontal and vertical lengths of the surface may be the same or different. However, in the present example, all surfaces in the image have the same size and have a square shape for convenience of description. In addition, it demonstrates on the assumption that the magnitude adjustment values (WX, HY in this example) are the same.
  • the data processing method in the following example will be described based on the case of the offset factor, and the data processing method will be described based on a method of copying and filling a partial region of an image and a method of converting and filling a partial region of an image.
  • the above setting may be equally applied to FIG. 27.
  • the boundary of the surface may have continuity with the boundary of the other surface.
  • it may be classified into a case where the continuity of the image exists spatially adjacent to the 2D plane (the first example) and a case where the continuity of the image exists while the continuity of the image exists (the second example) in the 2D plane.
  • the upper, left, right, and lower regions of S1, 1 are S1,0, S0,1, S2,1, S1,2, lower, right, left
  • the image may be continuous (in the case of the first example) while being spatially adjacent to the upper region.
  • the left and right regions of S1,0 are not spatially adjacent to the upper regions of S0,1 and S2,1, but images of each other may be continuous (when the second example).
  • the left region of S0,1 and the right region of S3,1 are not spatially adjacent to each other, the images of each other may be continuous (in the case of the second example).
  • the left region and the right region of S1, 2 may be continuous with each other (if the second example) with the lower region of S0,1 and S2,1. This may be a limiting example in this example, and may be a different configuration from the above depending on the projection format definition and setting.
  • S0,0 to S3,2 of FIG. 26A are referred to as a to l.
  • 26a may be an example of filling by using data of an area in which continuity exists in an external boundary direction of an image.
  • the area to be resized from the area A where no data exists (in this example, a0 to a2, c0, d0 to d2, i0 to i2, k0, l0 to l2) can be filled with a predetermined value or outer pixel padding.
  • the area (B0, e0, h0, j0) that is resized from the B area including the actual data may be filled using data of an area (or surface) in which the continuity of the image exists.
  • b0 can be filled using data on the upper side of the surface h, e0 on the right side of the surface h, h0 on the left side of the surface e, and j0 on the lower side of the surface h.
  • b0 may be an example of filling the data of the lower side of the surface obtained by applying a 180 degree rotation to the surface h
  • j0 may be an example of filling using the upper data of the surface obtained by applying the 180 degree rotation to the surface h.
  • an adjustment process eg, rotation, etc.
  • 26b may be an example of filling by using data of an area in which continuity exists in an inner boundary direction of an image.
  • the scaling operation performed according to the surface may be different.
  • Region A may perform a reduction process and region B may perform an expansion process.
  • scaling reduction in this example
  • region B may perform an expansion process.
  • scaling reduction in this example
  • w0 the case of surface a
  • scaling expansion in this example
  • h0 the case of surface a
  • scaling (expansion in this example) may be performed upward by h0.
  • the area to be resized (in this example, b0, e0, be, b1, bg, g0, h0, e1, ej, j0, gi, g1, j1, h1) shows the point of reduction from the area A where no data exists. In consideration, it may be simply removed, or may be newly filled with data of an area in which continuity exists in consideration of an extension from the B area including actual data.
  • b0 is the upper side of surface e
  • e0 is the left side of surface b
  • be is the left side of surface b or the upper side of surface e or the left side of surface b and the upper side of surface e
  • b1 is the upper side of surface g
  • bg is the left side of surface b or the upper side of surface g or the right side of surface b and the upper side of surface g
  • g0 is the right side of surface b
  • h0 is the upper side of surface b
  • e1 is the left side of surface j
  • ej is surface e
  • j0 is the lower side of the surface e
  • gj is the lower side of the surface g or the lower side of the surface j or the lower side of the surface j
  • the data of the area may be copied and filled, or data obtained after the process of converting the data of the area based on the characteristics and types of the image may be obtained.
  • a coordinate system eg, a two-dimensional plane coordinate system
  • each surface is converted to (x, y, C) or (x, C, z) or (C, y, z) in (x, y, z) in three-dimensional space.
  • the above example shows a case where data of a surface different from that of a surface is acquired in an area to be scaled of some surface. That is, there is a possibility that the continuity may be distorted based on the scaling boundary when the data of the other surface having different coordinate system characteristics is copied and filled as it is to adjust the size of the current surface.
  • the data of another surface acquired according to the coordinate system characteristics of the current surface may be converted and filled in an area to be resized. In the case of conversion is also an example of a data processing method is not limited thereto.
  • the distorted continuity (or radically changing continuity) is included in the boundary area between the resized area e and the resized area e0. can do.
  • a continuous feature is changed based on a boundary, and the edges have a straight shape as if the edges were bent based on the boundary.
  • the region to be resized When transforming and filling data of a partial region of an image into a region to be resized, it may include a continuity that gradually changes in a boundary region between the region to be resized and the region to be resized.
  • the data processing method of the present invention fills an area to be resized with data obtained by performing a conversion process based on the characteristics, types, etc. of an image in a resizing process (expansion in this example). It may be an example.
  • 26c may be an example of filling by using data of an area in which continuity exists in the direction of the boundary (inner boundary and outer boundary) of the image by combining the image resizing process according to 26a and 26b.
  • the resizing process of this example can be derived from 26a and 26b, so a detailed description thereof will be omitted.
  • 26a may be an example of adjusting the size of the image
  • 26b may be an example of adjusting the size of the division unit in the image
  • 26c may be an example of a plurality of resizing processes in which the resizing process of the image and the resizing of the division unit in the image are performed.
  • a resizing may be performed on an image (first format in this example) obtained through a projection process, and an image (second format in this example) acquired through a format conversion process. ), You can perform the resizing (area D in this example).
  • the image is adjusted in size (in this example, the entire image) on the image projected by ERP, and the size adjustment (surface unit in this example) is performed after acquiring the image projected in CMP through the format converter.
  • the above example is an example of performing a plurality of size adjustments, but is not limited thereto and may be modified in other cases.
  • FIG. 27 is an exemplary diagram for explaining a size adjustment for a packaged image converted to a CMP projection format according to an embodiment of the present invention.
  • the boundary of the surface may have continuity with the boundary of another surface.
  • the offset factors W0 to W5 and H0 to H3 may have various values. For example, it may be derived from a preset value, a motion search range of inter-screen prediction, a unit obtained from a picture splitter, or the like, or else.
  • the unit obtained from the picture divider may include a surface. That is, the size adjustment value may be determined based on F_Width and F_Height.
  • 27a is an example of filling by using data of a region where continuity exists in each region to be extended by performing a sizing (in this example, the up, down, left, and right directions of each surface) for each surface.
  • a sizing in this example, the up, down, left, and right directions of each surface
  • continuous data may be filled in a0 to a6 outside of the surface a
  • continuous data may be filled in b0 through b6 outside of the surface b.
  • 27b is an example of filling by using data of a region where continuity exists in a region that is extended by performing size adjustment (up, down, left, and right directions of the plurality of surfaces in this example). For example, it can extend to a0-a4, b0-b1, and c0-c4 about the outer surface with respect to the surface a, b, and c.
  • 27c may be an example of filling by using data of a region in which continuity exists in an extended region by adjusting the size of the entire image (up, down, left, and right directions of the entire image in this example). For example, it is possible to extend a0 to a2, b0, c0 to c2, d0 to d2, e0 and f0 to f2 with respect to the entire outline of the image including the surfaces a to f.
  • the size adjustment may be performed by one surface unit, the size adjustment may be performed by a plurality of surface units having continuity, and the size adjustment may be performed by the whole surface unit.
  • the region to be scaled in the above example may be filled using data of the region (or surface) where continuity exists as shown in FIG. 24A. That is, the data to be sized can be filled using the data on the upper, lower, left and right sides of the surfaces a to f.
  • FIG. 28 is an exemplary diagram for describing a data processing method in resizing a 360 degree image according to an embodiment of the present invention.
  • the area B to be resized (a0 to a2, ad0, b0, c0 to c2, cf1, d0 to d2, e0, f0 to f2) has continuity among pixel data belonging to a to f. You can fill it with data from an existing area.
  • the C region (ad1, be, cf0), which is another sized region, may be mixed with data of the region to be scaled and data of the region that is spatially adjacent but does not have continuity.
  • the region C may be sized between two selected regions a to f (for example, a and d, b and e, c and f), and thus data of the two regions may be mixed and filled.
  • surface b and surface e may have a relationship that is spatially adjacent but without continuity. Resizing can be performed using the data of surface b and the data of surface e in the region be to be scaled between surface b and surface e.
  • the be region may be filled with a value obtained by averaging the data of the surface b and the data of the surface e, or may be filled with a value obtained through a weighted sum based on a distance.
  • the pixels used for data to be filled in the areas to be adjusted in the surface b and the surface e may be boundary pixels of each surface, but may also be internal pixels of the surface.
  • an area to be adjusted between division units of an image may be filled with data generated by mixing data of both units.
  • the data processing method may be a method supported in some situations (when resizing is performed in a plurality of areas in this example).
  • FIG. 27A and 27B separately configure regions in which size adjustment is performed between division units for each division unit separately (for example, a6 and d1 are configured for a and d, respectively, in FIG. 27A), but divisions are made in FIG. 28. Regions in which the size adjustment is performed between the units may be configured one by one for adjacent division units (one ad1 for a and d).
  • the method may be included as a candidate group of the data processing method in FIGS. 27A to 27C, and size adjustment may be performed using a data processing method different from the above example in FIG. 28.
  • an implicitly preset data processing method may be used for the area to be scaled, or one of a plurality of data processing methods may be used to explicitly generate related information.
  • the preset data processing method includes a method of filling using an arbitrary pixel value, a method of copying and filling an outer pixel, a method of copying and filling a portion of an image, a method of converting and filling a portion of an image, and a plurality of regions of an image. It may be one of data processing methods such as a method of filling derived data. For example, if a region to be resized is located inside the image (e.g. a packed image) and both regions (e.g.
  • a data processing method of filling the derived data may be applied to fill an area to be resized.
  • size adjustment may be performed by selecting one of the plurality of data processing methods, and selection information thereof may be explicitly generated. This may be an example that may be applied to a general image as well as a 360 degree image.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream. It may also be included in the bitstream in the form of SEI or metadata.
  • SEI Session Initiation Protocol
  • the process of segmentation, reconstruction, and resizing in a 360 degree image has been described based on some projection formats such as ERP and CMP, but the present invention is not limited thereto and may be applied to other projection formats in the same manner or in a different manner.
  • the image setting process applied to the 360-degree image encoding / decoding apparatus described above can be applied not only to the encoding / decoding process but also to a preprocessing process, a post-processing process, a format conversion process, and a format inverse conversion process.
  • the projection process may include an image setting process.
  • at least one image setting process may be included and the projection process may be performed.
  • the division may be performed on an area (or surface) basis based on the projected image. Depending on the projection format, division may be performed into one region or a plurality of regions. Partition information according to the partition may be generated.
  • scaling of the projected image may be performed or scaling of the projected area may be performed. In this case, the size may be adjusted to at least one area. Size adjustment information according to the size adjustment may be generated.
  • reconstruction (or surface placement) of the projected image may be performed or reconstruction of the projected area may be performed. At this time, the reconstruction may be performed on at least one region. Reconstruction information according to the reconstruction may be generated.
  • the regional packaging process may include an image setting process.
  • at least one image setting process may be included and a region-specific packaging process may be performed.
  • the segmentation process may be performed in units of regions (or surfaces) based on the packed image.
  • the division may be performed in one region or a plurality of regions according to the regional packaging setting.
  • Partition information according to the partition may be generated.
  • scaling of the wrapped image may be performed or scaling of the wrapped area may be performed. In this case, the size may be adjusted to at least one area. Size adjustment information according to the size adjustment may be generated.
  • reconstruction of the packed image may be performed or reconstruction of the packed area may be performed. At this time, the reconstruction may be performed on at least one region. Reconstruction information according to the reconstruction may be generated.
  • the projection process may be all or part of the image setting process, and may include image setting information. This may be setting information of the projected image. In detail, it may be setting information of regions in the projected image.
  • the packaging process for each region may be all or part of the image setting process and may include image setting information.
  • This may be setting information of the packaged image.
  • it may be setting information of regions in the packaged image.
  • it may be mapping information of the projected image and the wrapped image (for example, refer to description related to FIG. 11.
  • P0 to P1 may be understood as projected images and S0 to S5 may be understood to be packed images).
  • the information may be mapping information of a partial region in the projected image and a partial region in the packaged image. That is, the setting information may be set to be allocated to some areas of the wrapped image from some areas of the projected image.
  • the information may be represented as information obtained through the aforementioned various embodiments in the image setting process of the present invention.
  • the setting information of the projected image is pic_width_in_samples, pic_height_in_samples, part_top [i], part_left [i], part_width [i], part_height [i] and the like
  • the setting information of the wrapped image is pic_width_in_samples, pic_height_in_samples, part_top [i], part_left [i], part_width [i], part_height [i], convert_type_flag [i], part_resizing_flag [i ], top_height_offset [i], bottom_height_offset [i], left_width_offset [i], right_width_offset [i], resizing_type_flag [i], and the like.
  • the above example may be an example of explicitly
  • a part of the image setting process may be included in the projection process according to the projection format or the packaging process by region as a predetermined operation.
  • the size is adjusted by converting and filling the data of the region to be adjusted in the regions extended by m, n, o, and p in the up, down, left, and right directions, respectively, and the region in which the continuity exists.
  • the process of making adjustments may be implicitly included.
  • the projection format of the above example may be an example of replacing an existing projection format or may be an example of an additional projection format (for example, ERP1, CMP1) in addition to the existing projection format, and is not limited to the above example and various image setting procedures of the present invention. May be alternatively combined, and similar applications may be possible for other formats.
  • ERP1, CMP1 additional projection format
  • a block divider may be further included.
  • Information about a basic coding unit may be obtained from a picture splitter, and the basic coding unit may mean a basic (or start) unit for prediction, transformation, quantization, etc. in an image encoding / decoding process.
  • the coding unit may include one luminance coding block and two color difference coding blocks according to a color format (YCbCr in this example), and the size of each block may be determined according to the color format.
  • the description will be made based on the block (luminance component in this example). In this case, it is assumed that the block is a unit that can be obtained after each unit is determined, and it will be described on the assumption that similar settings are applicable to other types of blocks.
  • the block divider may be set in relation to each component of the image encoding apparatus and the decoding apparatus, and the size and shape of the block may be determined through this process.
  • the set block may be defined differently according to the configuration unit, and the prediction block in the prediction unit, the transform block in the transform unit, and the quantization block in the quantization unit may correspond thereto.
  • block units according to other components may be further defined.
  • the size and shape of the block may be defined by the width and length of the block.
  • a block may be expressed as M ⁇ N, and a maximum value and a minimum value of each block may be obtained within a range.
  • the block type supports squares, and if the maximum value of the block is 256 ⁇ 256 and the minimum value is 8 ⁇ 8, a block of size 2 m ⁇ 2 m (in this example, m is an integer from 3 to 8).
  • 8 ⁇ 8, 16 ⁇ 16, 32 ⁇ 32, 64 ⁇ 64, 128 ⁇ 128, 256 ⁇ 256, or a block of size 2m ⁇ 2m (in this example, m is an integer from 4 to 128) or A block of size m ⁇ m (in this example, m is an integer from 8 to 256) can be obtained.
  • the block shape is square and rectangular, and has the same range as the above example, a block of size 2 m ⁇ 2 n (m and n are integers from 3 to 8 in this example.
  • a block obtainable may be determined according to a sub / decoding setting (for example, a type of a block, a division scheme, a division setting, etc.).
  • a coding block may obtain a 2 m ⁇ 2 n block
  • a prediction block may be a 2 m ⁇ 2 n or m ⁇ n size block
  • a transform block may have a 2 m ⁇ 2 n size block.
  • information such as a block size and a range (for example, information related to an index and a multiple) may be generated.
  • the above range (in this example, the maximum value and the minimum value) may be determined.
  • range information of blocks may be explicitly generated, and in some blocks, range information of blocks may be implicitly determined.
  • related information may be explicitly generated in an encoding and transform block, and related information may be implicitly processed in a prediction block.
  • At least one range information may be generated.
  • information on a range may generate information on a maximum value and a minimum value.
  • the method may be generated based on a difference between the maximum value and a predetermined minimum value (eg, 8) (eg, generated based on the setting.
  • the difference value information of the exponent of the maximum value and the minimum value may be generated.
  • range information may be obtained based on a sub / decoding setting (for example, a type of a block, a division method, a division setting, etc.).
  • a sub / decoding setting for example, a type of a block, a division method, a division setting, etc.
  • the splitting setting of the prediction block in the coding block (the maximum size M ⁇ N of the coding block in this example, the minimum size m ⁇ n in this example) (quad tree split + split depth 0 in this example)
  • the maximum value and the minimum value information can be obtained with a candidate group obtainable as (M ⁇ N and m / 2 ⁇ n / 2 in this example).
  • the size and shape of the initial (or starting) block of the block division may be determined from higher units.
  • a basic coding block obtained from a picture splitter may be an initial block
  • a coding block in the case of a prediction block, a coding block may be an initial block
  • a transform block in the case of a transform block
  • a coding block or a prediction block may be an initial block. It can be determined according to the negative / decryption setting.
  • the prediction block may be an upper unit of the transform block
  • Inter the prediction block may be a unit independent of the transform block.
  • the initial block may be divided into blocks of small size as a start unit of the partition.
  • the block may be determined as an initial block of lower units.
  • the former case may be a coding block
  • the latter case (subunit) may be a prediction block or a transform block.
  • a partitioning process for searching for a block having an optimal size and shape like the upper unit may be performed.
  • the block division unit may divide the basic coding unit (or the largest coding unit) into at least one coding unit (or the lower coding unit).
  • the coding unit may perform division in at least one prediction unit and may perform division in at least one transformation unit.
  • the coding unit may perform splitting into at least one coding block, the coding block may perform splitting into at least one prediction block, and may split into at least one transform block.
  • the prediction unit may perform division into at least one prediction block, and the transform unit may perform division into at least one transform block.
  • mode information for example, partition information
  • the mode information may be transmitted in the bitstream together with information (for example, prediction related information and transformation related information) generated in the component to which the block belongs, and transmitted to the decoder. Can be used in the video decoding process.
  • the block divider may support various split schemes. For example, it may support tree-based partitioning or type-based partitioning, and other methods may be applied. In the case of tree-based partitioning, partition information may be generated using a partition flag, and in the case of type-based partitioning, partition information may be generated using index information for a block type included in a preset candidate group.
  • 29 is an exemplary diagram illustrating a tree-based block form.
  • 29a is one 2N ⁇ 2N without splitting
  • 29b is some splitting flag (horizontal splitting of the binary tree in this example)
  • two 2N ⁇ N, 29c is some splitting flag (vertical splitting in the binary tree in this example).
  • Two N ⁇ 2N and 29d represent an example in which four N ⁇ Ns are obtained through some splitting flags (four divisions of a quad tree or horizontal and vertical divisions of a binary tree in this example).
  • the shape of the block to be obtained may be determined according to the tree type used for splitting. For example, when quad tree splitting is performed, candidate blocks obtainable may be 29a or 29d.
  • candidate blocks obtainable may be 29a, 29b, 29c, and 29d.
  • one splitting flag is supported, and when the corresponding flag is '0', 29a and 29d may be obtained.
  • a plurality of splitting flags are supported, one of which may be a flag indicating whether to split, one of which may be a flag indicating whether to split horizontally or vertically, and one of which is a splitting of horizontal / vertical splitting. It may be a flag indicating whether to allow duplication.
  • the candidate blocks obtainable when overlapping is allowed may be 29a, 29b, 29c, and 29d, and the candidate blocks obtainable when duplication is not allowed may be 29a, 29b, or 29c.
  • the quad tree may be a basic tree-based partitioning scheme.
  • a tree splitting scheme (a binary tree in this example) may be included in the tree-based partitioning scheme.
  • a flag allowing additional tree splitting is activated implicitly or explicitly, a plurality of tree splitting may be performed.
  • Tree-based partitioning may be a method in which recursive partitioning is possible. That is, the partitioned block may be set as an initial block again and tree-based partitioning may be performed, which may be determined according to partitioning settings such as a partition range and a partitioning allowable depth. This may be an example of a hierarchical partitioning scheme.
  • FIG. 30 shows an example of a type based block shape.
  • the block is divided into 1 division (30a in this example), 2 divisions (30b, 30c, 30d, 30e, 30f, and 30g in this example), and 4 divided forms (30h in this example).
  • Candidate groups can be configured through various configurations.
  • the candidate group may be configured with a, b, c, n or a, b to g, n or a, n, q, and the like of FIG. 31, and the present disclosure is not limited thereto.
  • An example may be possible.
  • the blocks supported when the flag allowing the symmetric partition is activated may be FIGS.
  • Type-based partitioning may be a method of supporting one partitioning. Compared with tree-based partitioning, blocks obtained through type-based partitioning may not be able to further partition further. This may be an example where the splitting allowance depth is zero (eg, single layer splitting).
  • FIG. 31 is an exemplary view illustrating various block types that may be acquired by a block divider of the present invention.
  • FIG. 31 is an exemplary view illustrating various block types that may be acquired by a block divider of the present invention.
  • blocks 31a to 31s may be obtained according to a partitioning setting and a partitioning scheme, and an additional block type not shown may be possible.
  • asymmetric partitioning may be allowed for tree-based partitioning.
  • a block such as those shown in FIGS. 31B and 31C (in this example, may be divided into a plurality of blocks) may be possible, or a block such as FIGS. 31B to 31G (in this example, divided into a plurality of blocks). May be possible.
  • the candidate blocks obtainable may be 31b or 31c (this example assumes not allowing horizontal and vertical overlapping splitting) and is asymmetric.
  • the candidate blocks obtainable when the flag allowing division is activated may be 31b, 31d, 31e (horizontal division in this example) or 31c, 31f, 31g (vertical division in this example).
  • This example may correspond to a case in which a division direction is determined by a horizontal or vertical division flag and a block shape is determined according to an asymmetric allowable flag.
  • the present invention is not limited thereto and may be modified in other examples.
  • additional tree splitting may be allowed for tree-based splitting.
  • it may be possible to divide a triple tree, a quad type tree, an octa tree, and the like, thereby obtaining n partition blocks (3, 4, 8. n are integers in this example).
  • the supported block when divided into a plurality of blocks in this example
  • the supported block may be 31h to 31m
  • the supported block may be 31n to 31p
  • the supported block May be 31q.
  • Whether to support the tree-based partitioning may be implicitly determined or explicitly related information may be generated according to the encoding / decoding.
  • a binary tree blocks such as FIGS. 31B and 31C may be possible, and when a binary tree and a triple tree are mixed (this example partially overlaps the use range of the binary tree and the use range of the triple tree).
  • a block such as 31b, 31c, 31i, and 31l may be possible.
  • the candidate blocks obtainable may be 31b or 31c, and if enabled, the candidate blocks obtainable are 31b, 31i or 31b, 31h, 31i, 31j (horizontal division in this example) or 31c, 31l or 31c, 31k, 31l, 31m (vertical division in this example).
  • This example may correspond to a case in which a division direction is determined by a horizontal or vertical division flag and a block shape is determined according to a flag that allows additional division.
  • the present invention is not limited thereto and may be modified in other examples.
  • a non-rectangular partition may be allowed for a type-based block.
  • partitioning such as 31r and 31s may be possible.
  • blocks of 31a, 31b, 31c, 31h, 31r, 31s, or 31a to 31h, 31r, 31s may be supported.
  • a block supporting n divisions such as 31h to 31m (for example, n is an integer. In this example, 3 except 1, 2, and 4) may be included in the candidate group.
  • the division method may be determined according to the negative / decoding settings.
  • the partitioning scheme may be determined according to the type of block.
  • coding blocks and transform blocks may use tree-based partitioning
  • prediction blocks may use type-based partitioning.
  • a combination of two types of splitting schemes may be used.
  • the prediction block may use a partitioning scheme that mixes tree-based partitioning and type-based partitioning, and the partitioning scheme applied to at least one range of the block may be different.
  • the partitioning scheme may be determined according to the size of the block. For example, some ranges (e.g., axb to cxd. If the latter is larger) between the maximum and minimum values of the block include tree-based partitioning, and some ranges (e.g. e X f to g x h) may be divided based on type. In this case, range information according to the division scheme may be explicitly generated or may be determined implicitly.
  • a partitioning scheme may be determined according to the shape of a block (or a block before partitioning). For example, if the block shape is square, tree-based partitioning and type-based partitioning may be possible. Alternatively, tree-based partitioning may be possible when the block is rectangular.
  • the division setting may be determined according to the encoding / decoding setting.
  • the division setting may be determined according to the type of the block.
  • a coding tree and a prediction block may use quad tree, and a transform block may use binary tree partition.
  • the partitioning allowable depth may be m
  • the partitioning allowable depth is n
  • the partitioning allowable depth may be set to o, and m, n, and o may or may not be the same.
  • the division setting may be determined according to the size of the block.
  • some ranges of blocks e.g., axb to cxd
  • some ranges e.g. exf to gxh.
  • Cxd in this example is g Binary tree splitting may be possible
  • the range may include all ranges between the maximum value and the minimum value of the block, and the range may have settings that do not overlap each other or may have settings that overlap.
  • the minimum value of some ranges may be equal to the maximum value of some ranges, or the minimum value of some ranges may be less than the maximum value of some ranges.
  • a partitioning scheme having a higher maximum value may have priority. That is, whether or not to perform the partitioning method having a lower priority may be determined according to the partitioning result in the partitioning method having the priority. In this case, range information according to the tree type may be explicitly generated or may be determined implicitly.
  • Type-based partitioning with some candidate groups in some ranges may be possible.
  • the range may include all ranges between the maximum value and the minimum value of the block, and the range may have a setting that does not overlap each other.
  • the division setting may be determined according to the shape of the block. For example, quadtree splitting may be possible when a block has a square shape. Alternatively, binary tree splitting may be possible when a block is rectangular.
  • the division setting may be determined according to sub / decoding information (eg, slice type, color component, encoding mode, etc.). For example, if the slice type is I, quad tree (or binary tree) splitting may be for some ranges (e.g. axb to cxd), and for P some ranges (e.g. exf to g). Xh), in the case of B, it may be possible in some range (eg, i ⁇ j to k ⁇ l).
  • the partitioning allowable depth m of the quad tree (or binary tree) partitioning may be set to n, the partitioning allowable depth n for P, and the partitioning allowable depth o for B, and m and n and o may be the same. May not be the same.
  • Some slice types may have the same configuration as other slices (eg, P and B slices).
  • the quadtree (or binary tree) division allowable depth may be set to m, and in the case of a chrominance component, m and n may or may not be the same.
  • the range of quad tree (or binary tree) splitting e.g., axb to cxd
  • e x f to g x h may or may not be the same.
  • the quadtree (or binary tree) splitting depth may be m, n may be n (assuming n is greater than m in this example), and m and n may or may not be the same. Can be.
  • the range of quad tree (or binary tree) splitting and the encoding mode when Inter is the range of quad tree (or binary tree) splitting may or may not be the same.
  • information on whether to support adaptive segmentation candidate group configuration based on encoding / decoding information may be explicitly generated or implicitly determined.
  • the division method and the division setting are determined according to the encoding / decoding setting.
  • the above example shows some cases according to each element, and variations to other cases may also be possible.
  • the division method and the division setting may be determined according to the combination by a plurality of elements.
  • the division scheme and the division setting may be determined based on the type, size, shape, sub / decoding information, and the like of the block.
  • elements involved in the partitioning scheme, setting, etc. may be determined implicitly or explicitly to generate information to determine whether to allow the adaptive case as in the above example.
  • the splitting depth of the splitting setup means the number of times of spatial division based on the initial block (in this example, the splitting depth of the initial block is 0), and the splitting depth may be divided into smaller blocks as the splitting depth increases. This may vary the depth related setting according to the division method. For example, among tree-based partitioning methods, one common depth may be used for the quadtree splitting depth and the binary tree splitting depth, and individual depths according to the tree types may be used.
  • the split depth when the individual split depth is used according to the type of the tree, the split depth may be set to 0 at the split start position of the tree (the block before performing the split in this example).
  • the split depth can be calculated around the start of splitting, not based on the split range of each tree (maximum value in this example).
  • 32 is an exemplary diagram for describing tree based partitioning according to an embodiment of the present invention.
  • 32a shows an example of quad tree and binary tree splitting. Specifically, the upper left block of 32a shows a quad tree split, the upper right block and the lower left block show a quad tree and a binary tree split, and the lower right block shows a binary tree split.
  • the solid line (Quad1 in this example) represents the boundary line divided into quad trees
  • the dotted line (Binary1 in this example) represents the boundary line divided into binary trees
  • the thick solid line (Binary2 in this example) represents the boundary line divided into binary trees. it means.
  • the difference between the dashed line and the thick solid line is the difference in the division method.
  • the upper left block has a quadtree splitting depth of 3.
  • the current block is N ⁇ N
  • splitting is performed until either horizontal or vertical reaches (N >> 3), but the splitting information is (N> Generate split information up to> 2), which is common to the examples described below: assume that the maximum and minimum values of the quad tree are N ⁇ N and (N >> 3) ⁇ (N >> 3).
  • the tree split may be divided into four blocks each having a length of 1/2 of a length and a length.
  • the partition flag may have a value of '1' when partitioning is activated and '0' when partitioning is inactive. According to the setting, the division flag of the upper left block may occur like the upper left block of 32b.
  • the upper right block has a quadtree splitting allowance depth of 0.
  • the binary tree splitting allowance depth is 4.
  • the maximum and minimum values of quadtree splitting are N ⁇ N, (N >> 2) ⁇ (N >> 2).
  • the maximum and minimum values of the binary tree are (N >> 1) ⁇ (N >> 1), (N >> 3) ⁇ (N >> 3)).
  • the idol block performs quad tree splitting on the initial block.
  • the block may be divided into four blocks each having a length of 1/2 of a length and a length.
  • the size of the partitioned block is (N >> 1) ⁇ (N >> 1), which means that binary tree splitting (in this example is larger than the minimum value of the quadtree splitting, but the limiting splitting depth is limited), depends on the settings in this example.
  • this example may be an example in which overlapping of quad tree partitioning and binary tree partitioning is impossible.
  • the partition information of the binary tree of this example may be composed of a plurality of partition flags. Some flags can be horizontal split flags (corresponding to x of x / y in this example), and some flags can be vertical split flags (corresponding to x / y in y in this example). It may have a similar setting (eg whether it is active or not). In this example, the two flags may be activated in duplicate.
  • flag information is generated with '-' in the figure, '-' may be an implicit processing of flags that may occur when additional splitting is not possible due to conditions such as maximum, minimum, and splitting depths according to tree splitting. have. According to the setting, the division flag of the upper right block may occur like the upper right block of 32b.
  • the lower left block has a quadtree splitting allowance depth 3.
  • the binary tree splitting allowance depth is 2.
  • the maximum and minimum values of quadtree splitting are N ⁇ N, (N >> 3) ⁇ (N >> 3).
  • the maximum and minimum values of binary tree partitions are (N >> 2) ⁇ (N >> 2), (N >> 4) ⁇ (N >> 4) .
  • the partition priority is given to quad tree partitions.
  • the quadtree splitting is performed on the initial block, the lower left block may be divided into four blocks each having a length of 1/2 of the horizontal and vertical lengths.
  • the size of the divided block is (N >> 1) ⁇ (N >> 1), which may be quad tree splitting and binary tree splitting according to the configuration of the present example.
  • this example may be an example in which overlapping of quad tree partitioning and binary tree partitioning is possible.
  • whether or not to perform binary tree partitioning may be determined according to the quad tree partitioning result given priority.
  • the quad tree split is performed, the binary tree split is not performed.
  • the binary tree split may be performed. If the quad tree split is not performed, even if the split is possible under the above configuration, the quad tree split may not be possible further.
  • the partition information of the binary tree of this example may be composed of a plurality of partition flags.
  • Some flags may be split flags (corresponding to x in x / y in this example) and some flags may be split-direction flags (corresponding to y in x / y in this example, where x may determine whether to generate y information).
  • the split flag may have a setting similar to quad tree split. In this example, the horizontal division and the vertical division do not overlap each other.
  • '-' may have a setting similar to the above example. According to the setting, the division flag of the lower left block may be generated like the lower left block of 32b.
  • the lower right block assumes that the binary tree partitioning allowed depth is 5.
  • the maximum and minimum values of the binary tree split are N ⁇ N, (N >> 2) ⁇ (N >> 3)).
  • it may be split into two blocks having a length of 1/2 of a horizontal or vertical length.
  • the division flag setting of this example may be the same as the lower left block.
  • '-' may have a setting similar to the above example.
  • This example shows a case where the minimum horizontal and vertical values of the binary tree are set differently.
  • the partition flag of the lower right block may occur like the lower right block of 32b.
  • the division method and the division setting according to the division can be determined, and the division process can be performed accordingly. Can be.
  • 33 is an exemplary diagram for explaining tree-based partitioning according to an embodiment of the present invention.
  • the thick solid line L0 denotes the largest coding block
  • the block partitioned by the thick solid line and the other lines L1 to L5 means the divided coding block
  • the number inside the block is divided.
  • the position of the sub block (following the Raster Scan order in this example), and the number of '-' may mean the division depth of the block
  • the number of boundary lines between the blocks may mean the number of divisions. For example, if it is divided into four (quad tree in this example), then in the order of UL (0) -UR (1) -DL (2) -DR (3), if it is divided into two (binary tree in this example) L Or U (0) -R or D (1), which can be defined at each division depth.
  • An example to be described later illustrates a case where the obtainable coding block is limited.
  • the maximum coding block of 33a is 64 ⁇ 64
  • the minimum coding block is 16 ⁇ 16
  • quad tree partitioning is used.
  • 2-3-0, 2-3-1, 2-3-2 because 2-0, 2-1, 2-2 blocks (16 ⁇ 16 size in this example) are equal to the minimum coding block size.
  • block division information is not generated in blocks 2-0, 2-1, 2-2, and 2-3 because the obtainable block has 16 ⁇ 16 blocks, that is, one candidate group.
  • the maximum coding block of 33b is 64 ⁇ 64
  • the minimum coding block is 8 horizontally or vertically
  • the allowable splitting depth is 3.
  • the 1-0-1-1 (16 ⁇ 16 size in this example, division depth is 3) block satisfies the minimum coding block condition, it may be divided into smaller blocks.
  • it since it is equal to the allowable dividing depth, it may not be divided into higher dividing depth blocks (1-0-1-0-0, 1-0-1-0-1 blocks in this example).
  • the block partitioning information is not generated because the obtainable block has 16x8 blocks, that is, one candidate group.
  • quad tree partitioning or binary tree partitioning may be supported depending on the encoding / decoding.
  • quad tree splitting and binary tree splitting may be supported.
  • one of the above schemes or a mixture thereof may be supported depending on the block size, the partition depth, and the like.
  • the block belongs to the first block range a quad tree may be supported, and if the block belongs to the second block range, binary tree partitioning may be supported.
  • the plurality of division schemes may have at least one setting such as a maximum coding block size, a minimum coding block size, an allowable division depth, and the like.
  • the range may or may not be set by overlapping the ranges of each other.
  • a setting in which one range includes another range may also be possible. Settings for this may be determined according to individual or mixed factors such as a slice type, an encoding mode, and a color component.
  • the division setting may be determined according to the slice type.
  • the partition configuration supported may include partitioning in the range of 128 ⁇ 128 to 32 ⁇ 32 for a quad tree and partitioning in the range of 32 ⁇ 32 to 8 ⁇ 8 for a binary tree.
  • the block division setting supported may support partitioning in the range of 128 ⁇ 128 to 32 ⁇ 32 for quad trees and partitioning in the range of 64 ⁇ 64 to 8 ⁇ 8 for binary trees.
  • the division setting may be determined according to an encoding mode.
  • the partition setting supported may support two partitions in the 64 ⁇ 64 to 8 ⁇ 8 range and an allowable partition depth in the binary tree.
  • the supported partition configuration can support 3 in the range of 32 ⁇ 32 to 8 ⁇ 8 and allowable partition depth in the binary tree.
  • the division setting may be determined according to the color component.
  • the luminance component a division in the range of 256 ⁇ 256 to 64 ⁇ 64 in the case of the quad tree and a division in the range of 64 ⁇ 64 to 16 ⁇ 16 in the case of the binary tree can be supported.
  • the same setting as the luminance component in the quad tree in this example, the length of each block is proportional to the color difference format
  • the binary tree in the range of 64 ⁇ 64 to 4 ⁇ 4
  • the range in the same luminance component may support division in 128 ⁇ 128 to 8 ⁇ 8.4: 2: 0).
  • some blocks may be combined with other blocks to perform one partitioning process.
  • a partitioning process is performed to obtain an optimal block size and shape, which is optimized for the transform block as well as the optimal size and shape of the coding block. Size and shape.
  • the coding block and the transform block may be combined in one unit, the prediction block and the transform block may be combined in one unit, the coding block, the prediction block and the transform block may be combined in one unit, Combination of other blocks may be possible.
  • the generated information will be recorded in the bitstream in at least one unit of a sequence, a picture, a slice, a tile, etc. in the encoder, and the decoder will parse related information from the bitstream.
  • the prediction unit may be classified into intra prediction and inter prediction, and intra prediction and inter prediction may be defined as follows.
  • the intra prediction may be a technique of generating a prediction value from an area where sub / decoding of the current image (eg, a picture, a slice, a tile, etc.) is completed, and the inter screen prediction may include at least one sub / decoding before the current image. It may be a technique of generating a prediction value from a completed image (eg, a picture, a slice, a tile, etc.).
  • the intra prediction may be a technique of generating a prediction value from an area where the encoding / decoding of the current image is completed, but some prediction methods (for example, a method of generating the prediction value from the reference image).
  • Block Matching, Template Matching, etc. ⁇ may be a prediction that excludes
  • the inter prediction may be a technique of generating a prediction value from at least one sub / decoded image.
  • the completed image may be configured to include the current image.
  • the intra prediction may be configured as follows.
  • the intra prediction of the prediction unit may include a reference pixel construction step, a prediction block generation step, a prediction mode determination step, and a prediction mode encoding step.
  • the image encoding apparatus may be configured to include a reference pixel constructing unit, a predictive block generating unit, and a prediction mode encoding unit for implementing a reference pixel constructing step, a predictive block generating step, a prediction mode determining step, and a prediction mode encoding step.
  • FIG. 34 is an exemplary diagram for describing a configuration of a reference pixel used for intra prediction.
  • the size and shape (M ⁇ N) of the current block on which prediction is performed may be obtained from the block splitter, and will be described under the assumption that it is supported in the range of 4 ⁇ 4 to 128 ⁇ 128 for intra prediction.
  • Intra prediction may be generally performed in units of prediction blocks, but may be performed in units of coding blocks, transform blocks, or the like according to the setting of the block partitioner.
  • the reference pixel configuration unit may configure a reference pixel used for prediction of the current block.
  • the reference pixel may be managed through a temporary memory (for example, an array ⁇ Array>, a primary or a secondary array, etc.), generated and removed for each intra-prediction process of the block, and the size of the temporary memory is referred to. It may be determined according to the configuration of the pixel.
  • a temporary memory for example, an array ⁇ Array>, a primary or a secondary array, etc.
  • left, top, top left, top right, and bottom left blocks are used for prediction of the current block with respect to the current block.
  • block candidate groups having other configurations may be used for prediction of the current block.
  • the candidate group of neighboring blocks for the reference pixel may be an example when following a raster or Z scan, and some of the candidate groups may be removed according to the scanning order, or other block candidate groups (eg, right , Lower, lower right block, etc. may be configured).
  • the same coordinate or color component composition ratio in a block (eg, in each color space) that corresponds to the current block in another color space (eg, if the current block belongs to Cr, the other color space corresponds to Y or Cb).
  • the current block may be used for prediction of the current block.
  • the example is composed of one block in the predetermined position (left, upper, upper left, upper right, lower left), but at least one block may exist at the corresponding position. That is, a plurality of blocks according to block division of the corresponding block may exist at the preset position.
  • the reference pixels used for prediction of the current block may include adjacent pixels (Ref_L, Ref_T, Ref_TL, Ref_TR, and Ref_BL in FIG. 34) of the left, top, left, top, and bottom blocks.
  • the reference pixel is generally composed of pixels (FIG. 34 a) of the neighboring block closest to the current block, but may also be configured of other pixels (pixels of the outer line of FIG. 34 b). .
  • a description will be given based on a case in which a reference pixel is composed of pixels of the nearest neighbor block.
  • the pixels of the current block may be located in a range of p (0,0) to p (M-1, N-1), and p (0, -1) to p (2M-1, upwards. -1) (Ref_T + Ref_TR), to the left of p (-1,0) to p (-1,2N-1) (Ref_L + Ref_BL), to the upper left of p (-1, -1) (Ref_TL) It may be located, which may mean the maximum range in which the presence of the reference pixel is possible.
  • the range of the reference pixel may be determined according to the size, shape of the block, the configuration of the prediction mode, and the like. For example, if the directional mode is supported in the range of - ⁇ / 2 rad (or -135 degrees) to + ⁇ / 4 rad (or 45 degrees) with respect to the y axis, the pixel at the bottom right of the current block ⁇ p (M-1, N-1) ⁇ can determine the range of the reference pixel.
  • the reference pixel range may be identified through the pixels used in the upper sides Ref_T and Ref_TR and the left blocks Ref_L and Ref_BL to predict the lower right pixel.
  • the reference pixels are p (0, -1) to p (M + N-1, -1), p (-1,0) to p (-1, N + M-1), p (-1 , -1) may be present.
  • the reference pixel range is determined according to the size, shape of the block, the configuration of the prediction mode (angle information of the prediction mode in this example), and the like.
  • the position indicated by the arrow in FIG. 35 means a pixel used for prediction.
  • A, A ', B, B', and C pixels mean pixels at the lower right side of 8 ⁇ 2, 2 ⁇ 8, 8 ⁇ 4, 4 ⁇ 8, and 8 ⁇ 8 blocks.
  • the reference pixel range of each block may be identified through the pixels AT, AL, BT, BL, CT, and CL used in the upper and left blocks.
  • p (0, -1) to p (9, -1), p (-1,0) to p (-1,9), p (- 1 (-1), p (0, -1) to p (11, -1), p (-1,0) to p (-1,11) for B and B 'pixels (rectangular blocks) ), p (0, -1) to p (15, -1), p (-1,0) to p (-1 in the range of p (-1, -1) 15 may be located in the range of p (-1, -1).
  • FIG. 36 shows an example of an intra prediction mode of HEVC.
  • 35 prediction modes are shown and may be classified into 33 directional modes and 2 non-directional modes (DC, Planar).
  • the directional mode may be identified by inclination (for example, dy / dx) or angle information.
  • the above example may mean a prediction mode candidate group for a luminance component or a chrominance component.
  • some prediction modes eg, DC, planar, vertical, horizontal, diagonal modes, etc.
  • the corresponding mode may be included as the prediction mode of the chrominance component or a mode derived from the corresponding mode may be included as the prediction mode.
  • a reconstruction block of another color space in which encoding / decoding is completed may be used for prediction of the current block by using correlation between color spaces, and may include a prediction mode supporting the same.
  • a reconstructed block of luminance components corresponding to the current block may be generated as a prediction block of the current block.
  • a reconstructed block of some color difference components Cb corresponding to the current block of some color difference components Cr may be generated as a prediction block.
  • a reconstructed block of another color space may be generated as a prediction block as it is.
  • the reconstructed block may be generated as a prediction block in consideration of the correlation between color spaces.
  • Correlation information between color spaces may be explicitly generated or related information may be implicitly identified through reference pixels of each color space.
  • At least one parameter may be generated based on the correlation information, and may be used as a value that is multiplied or added to a reconstructed block of another color space.
  • the parameter information may be derived from the restored pixels of the adjacent area of the current block and the restored pixels of another color space corresponding thereto.
  • related information eg, information about whether to support or not, parameter information, etc.
  • related information may be included in units of a sequence, a picture, a slice, a tile, and the like.
  • the prediction mode candidate group may be adaptively determined according to the negative / decoding setting.
  • the number of candidate groups can be increased for the purpose of increasing the accuracy of prediction, and the number of candidate groups can be reduced for the purpose of reducing the amount of bits according to the prediction mode.
  • a candidate group (67. 65 directional modes and 2 non-directional modes), B candidate group (35. 33 directional modes and 2 non-directional modes), C candidate group (18. 17 directional modes) And one non-directional mode).
  • a candidate group (67. 65 directional modes and 2 non-directional modes)
  • B candidate group (35. 33 directional modes and 2 non-directional modes)
  • C candidate group (18. 17 directional modes) And one non-directional mode).
  • the prediction block generator may generate a prediction block according to at least one prediction mode, and use a reference pixel based on the prediction mode.
  • the reference pixel may be used in a method such as extrapolation (directional mode) according to a prediction mode, and may be used in a method such as interpolation or average (DC) or copy (non-directional mode). have.
  • the mode between horizontal and some diagonal modes (Diagonal up right; horizontal but not diagonal) is left + left block, horizontal mode is left block, and horizontal and vertical mode is left + The upper left + upper block, the vertical mode is the upper block, and the mode between the vertical and some diagonal modes (Diagonal down left.
  • reference pixels of a left, an upper block, or a lower left, left, upper left, upper, and upper right blocks may be used.
  • a reconstructed block of another color space may be used as the reference pixel.
  • the intra prediction method can be classified into a directional prediction and a non-directional prediction, and a directional prediction can be classified into a linear prediction and a curved prediction.
  • prediction pixels may be generated using extrapolation of reference pixels lying on the prediction direction line.
  • prediction pixels may be extrapolated using reference pixels lying on the prediction direction line in consideration of the block direction.
  • Partial prediction direction variation in pixels, rows, or columns (for example, allows a difference in directional prediction mode spacing.
  • A is the difference when sequentially assigning indexes to the prediction mode, where 0
  • An integer such as 1, -1, 2, -2, etc., that is, an adjacent mode of the prediction mode, where a is determined according to the size and shape of the block, the position of the prediction pixel, the prediction mode, and the like. It may mean.
  • the edge direction is changed from a straight line to a curved line because it is converted from 3D space to 2D space.
  • the prediction mode candidate group may be configured by including the curved prediction mode in the directional mode.
  • curved prediction mode selection information e.g., curved prediction mode selection information, partial prediction direction variation information, etc.
  • the information may be generated from a sequence, a picture, a slice, a tile, a block. It may be explicitly generated in units such as or may be implicitly determined according to the type, characteristic, etc. of the image (eg, 360 degree image + some format).
  • the curved prediction may be supported for all prediction blocks or for some prediction blocks, and whether or not the curved prediction is applied may be determined according to the size, shape, image type, prediction mode, etc. of the block.
  • the directional mode may include a prediction mode candidate group including a linear prediction mode and a curved prediction mode.
  • the linear prediction mode among the directional modes is fixedly included in the intra prediction of the 360 degree image sub / decoding
  • the curved mode includes the sub / decoding setting (for example, according to the projection format, the block position in the image, and the block size).
  • the prediction mode candidate group may be adaptively included according to the range, the type information of the image, and the like. In the present invention, the prediction in the directional direction will be described based on the prediction in the linear direction.
  • the prediction mode determiner performs a process for selecting an optimal mode among a plurality of prediction mode candidate groups.
  • block distortion eg, Distortion of current and reconstructed blocks.
  • a mode that is optimal in terms of coding cost may be determined using a sum-of-absolute difference (SAD), a sum of square difference (SSD), etc., and a rate-distortion technique that takes into account the amount of bits generated according to a corresponding mode.
  • the prediction block generated based on the prediction mode determined through the above process may be transmitted to the subtractor and the adder.
  • the prediction mode encoder may encode the prediction mode selected by the prediction mode determiner.
  • index information corresponding to the prediction mode may be encoded, or the information about the prediction mode may be predicted. That is, the former means a method of encoding the prediction mode as it is without prediction, and the latter means a method of encoding the mode prediction information and the information obtained based on the prediction mode.
  • the former is an example that can be applied to the chrominance component, the latter in the luminance component, it is not limited to this may also be possible in other cases.
  • the prediction value (or prediction information) of the prediction mode may be referred to as Most Probable Mode (MPM).
  • MPM Most Probable Mode
  • a prediction mode of a preset prediction mode eg, DC, planar, vertical, horizontal, diagonal mode, etc.
  • spatially adjacent blocks eg, left, top, left top, right top, bottom left block, etc.
  • the diagonal mode may mean Diagonal up right, Diagonal down right, Diagonal down left, and may correspond to modes 2, 18, and 34 of FIG. 36.
  • a mode derived from a mode previously included in the MPM candidate group may be configured as the MPM candidate group.
  • a mode in which the mode interval has a difference of a for example, a is a nonzero integer such as 1, -1, 2, -2, etc. FIG. 36.
  • the mode corresponding to the mode 9, 11, 8, 12, etc. are derived may be newly (or additionally) included in the MPM candidate group.
  • the above example may correspond to a case in which the MPM candidate group is composed of a plurality of modes, and the MPM candidate group (or the number of MPM candidate groups) may be set to a sub / decoding setting (eg, prediction mode candidate group, image type, block size, block type, etc.). It is determined according to) and may include at least one mode.
  • the MPM candidate group may consist of 1 to 5 modes.
  • one prediction mode candidate group is 10 or less, two or more than 10 and 20 or less, and more than 20 or more 40 MPM candidate groups can be configured in three modes below, and five modes in excess of 40.
  • the order of prediction modes included in the MPM candidate group may be determined according to the priority, and when the number of MPM candidate groups is filled according to the priority, the MPM candidate group may be completed.
  • priorities may be determined in order of a prediction mode of a spatially adjacent block, a preset prediction mode, and a mode derived from a prediction mode first included in the MPM candidate group, but other modifications are also possible.
  • information eg, most_probable_mode_flag
  • MPM index information (eg, mpm_idx) may be additionally generated according to the configuration of the MPM. For example, when the MPM is configured with one prediction mode, no additional MPM index information is generated. When the MPM is configured with a plurality of prediction modes, the MPM candidate group may generate index information corresponding to the prediction mode of the current block. have.
  • the non-MPM index information corresponding to the prediction mode of the current block in the prediction mode candidate group (or non-MPM candidate group) except for the MPM candidate group in the prediction mode candidate group may be generated, which may be an example of the case where the non-MPM is configured as one group.
  • a non-MPM consists of groups A and B (where A is m, B is n, and non-MPM is m + n prediction modes, assuming that n is greater than m.
  • the non-MPM may be configured with at least one prediction mode candidate group (or group), and the non-MPM configuration may be determined according to the prediction mode candidate group. For example, when the prediction mode candidate group is 35 or less, it may be one, or in other cases, two or more.
  • the non-MPM When the non-MPM is composed of a plurality of groups as in the above example, it may be supported for the purpose of reducing the mode bit amount when the number of prediction modes is large and the prediction mode is not predicted by the MPM.
  • a binarization table applied to each prediction mode candidate group (eg, the MPM candidate group, the non-MPM candidate group, etc.) may be generated separately.
  • the binarization method applied to each candidate group may be applied individually.
  • the prediction related information generated by the prediction mode encoder may be transmitted to the encoder and may be included in the bitstream.
  • the intra prediction may be configured as follows.
  • the intra prediction of the prediction unit may include a prediction mode decoding step, a reference pixel construction step, and a prediction block generation step.
  • the image decoding apparatus may be configured to include a prediction mode decoding unit, a reference pixel construction unit, and a prediction block generation unit that implement the prediction mode decoding step, the reference pixel construction step, and the prediction block generation step.
  • the prediction mode decoder may receive the prediction mode from the decoder to restore the prediction mode of the current block.
  • the prediction mode may be restored from index information corresponding to the prediction mode candidate group or prediction related information of the prediction mode. That is, the former means a method of decoding the prediction mode as it is without prediction, and the latter means a method of decoding the prediction mode and the information obtained based on the prediction mode by performing prediction.
  • the MPM index information may be additionally checked according to the configuration of the MPM. For example, when the MPM is configured with one prediction mode, the additional MPM index information is not checked. When the MPM is configured with a plurality of prediction modes, the MPM candidate group may identify index information corresponding to the prediction mode of the current block. .
  • the non-MPM index information corresponding to the prediction mode of the current block may be checked in the prediction mode candidate group except for the MPM candidate group in the prediction mode candidate group, in which case the non-MPM consists of one group. This may be an example.
  • the non-MPM candidate group is composed of a plurality of groups
  • information on which group the prediction mode of the current block belongs to can be checked.
  • the non-MPM is composed of groups A and B, and when the prediction mode of the current block matches the prediction mode of the group A, index information corresponding to the prediction mode of the current block can be checked in the group A candidate. If it does not match, index information corresponding to the prediction mode of the current block may be checked in the remaining prediction mode candidate group except the A group.
  • the reference pixel component may configure the reference pixel in the same manner as the reference pixel component of the encoder, and a detailed description thereof will be omitted.
  • the prediction block generator may generate the prediction block in the same manner as the prediction block generator of the encoder, and a detailed description thereof will be omitted.
  • the prediction block generated through this process may be transmitted to the adder.
  • FIG. 37 is an exemplary diagram for describing various cases of an intra prediction mode candidate group.
  • the directional mode will be described, and angle or index information may be used to identify the prediction mode.
  • Angle can be measured based on some diagonal mode (Diagonal down right. 0 degree), and index can be assigned starting from some diagonal mode (Diagonal up right. 0).
  • the above example will be described based on the case where there is an equal interval (angle reference) between modes, but the present invention is not limited thereto, and other modification examples may be possible.
  • each of the prediction modes may have intervals of ⁇ / 4, ⁇ / 8, ⁇ / 16, and ⁇ / 32, and the intervals of the other prediction mode candidate groups (not shown) ( ⁇ / 64. 65 directionalities). Mode) may also be supported.
  • the prediction mode candidate group is small as in 37a, the mode information may be represented by a few bits, but since the edge information of the image may not be well reflected, the prediction accuracy may be low.
  • the accuracy of the prediction may be increased in the opposite of the above example, but many bits may be used to express the mode information.
  • the local characteristics of the image may not be well reflected, which may result in deterioration of encoding performance.
  • the amount of mode bits due to many prediction mode candidate groups may increase, and in the case of complex regions (or when the edge directions occur a lot), Incorrect prediction blocks may be generated as prediction mode candidate groups.
  • the prediction mode candidate group it may be necessary to adaptively support the prediction mode candidate group.
  • various cases of adaptively supporting the prediction mode candidate group will be described with examples described below.
  • the other modes except for the directional mode are assumed to be fixed (for example, DC and Planar are always included).
  • the encoding setting for example, block size, shape, image type, etc.
  • Whether the non-directional mode is also adaptively included in the prediction mode candidate group may be determined.
  • a signal (eg, adaptive_intra_precision_flag) for adaptively supporting the prediction mode candidate group may be included in units of a sequence, a picture, a slice, a tile, and the like.
  • prediction mode candidate group selection information eg, intra_precision_idx_flag. Or prediction mode precision information
  • prediction mode precision for example, prediction mode candidate groups 37a to 37d are referred to as M0 to M3 precision, and the precision is increased as the number is increased) to identify the prediction mode candidate group.
  • the prediction mode precision information may be included in units of a picture, slice, tile, block, etc.
  • the prediction mode precision information may be determined according to the size, type, or type, type, characteristic, color space, etc. of the block. Can be decided.
  • M1 for 32x32 and above blocks
  • M2 for less than 16x16 and 8x8 and above blocks
  • M3 for less than 8x8 blocks.
  • the prediction mode precision of M1 may be supported when M3 and P are M3 and P when the image type is I.
  • the above example may be an example in which the prediction mode precision is implicitly determined.
  • explicit and implicit cases may be mixed to support adaptive prediction mode precision.
  • M3 is supported for blocks larger than 32 ⁇ 32 and M2 is supported for blocks smaller than 32 ⁇ 32 to 16 ⁇ 16 and larger, and selection information for prediction mode precision may be generated in blocks smaller than 16 ⁇ 16. .
  • selection information on prediction mode precision may be generated when M3, P, or B.
  • one preset prediction mode precision (or fixed prediction mode precision) may be used according to an encoding setting, or one of a plurality of prediction mode precision candidate groups (or adaptive prediction mode precision) may be selected.
  • FIG. 38 is an exemplary diagram for describing prediction mode precision according to an embodiment of the present invention. Referring to FIG. 38, it is possible to check supported prediction modes, indexes of prediction modes, and angle information according to prediction mode precision.
  • the number of candidate groups for prediction mode precision is four, but the present invention is not limited thereto and various combinations may be possible.
  • the settings of a prediction mode determiner, a prediction mode encoder, etc. change according to prediction mode precision.
  • the prediction mode precision is M0 and M1
  • one MPM candidate group may be configured
  • M2 and M3 are two MPM candidate groups
  • M3 are two MPM candidate groups
  • three MPM candidate groups may be configured.
  • the MPM index information is encoded using variable length binarization
  • the non-MPM index information is encoded using fixed length binarization.
  • the priority for configuring the MPM candidate group may be equally applied or may not be the same according to the number of MPM candidate groups, and may be determined according to an encoding setting.
  • blocks A to C are supported in 35 modes (M3 precision, consisting of 33 directional modes and 2 non-directional modes), and prediction modes of blocks A to C are 21, 22, and 24 modes in FIG. 38, respectively.
  • A may be a mode supported by the precision of M3, and may be a mode not supported by the other precisions M0 to M2.
  • Bits generated due to the prediction mode at the precision of M3 may be 2-3 bits or 6 bits. In the former case, it corresponds to the MPM, and in the latter case, it means the amount of bits generated when the MPM does not match.
  • B may be a mode supported by the precision of M2 and M3, and may be a mode not supported by the other precisions M0 and M1.
  • the bits generated due to the prediction mode at the precision of M2 may be 2 bits or 5 bits.
  • C may be a mode supported by the precision of M0 to M3.
  • Bits generated due to the prediction mode at the precision of M1 may be 1 bit or 3 bits, and may be 1 bit or 2 bits at the precision of M0.
  • the candidate group of the prediction mode precision is M0 to M3 and the prediction mode precision selection information is composed of binary bits of 00, 01, 10, and 11, respectively, two bits may be generated in the adaptive prediction mode precision information.
  • the prediction mode precision candidate groups are M0 and M3 and the prediction mode precision selection information is configured with binary bits of 0 and 1, respectively, one bit may be generated for the adaptive prediction mode precision information.
  • the configuration of the prediction mode precision candidate group may be determined according to the encoding setting and may have at least one configuration. That is, the image may have one candidate group configuration (for example, M0 to M3) or may have a plurality of candidate group configurations (for example, M0 to M3, M0 to M2, M3 and M3, etc.).
  • the index assigned to each mode in 37a to 37d may be the same as the actual mode or may be an example defined in this example.
  • 0 and 1 are the planar and DC modes
  • 2 to 34 are the directional modes.
  • 2 is the DC mode and the other is the directional mode.
  • a temporary mode can be assigned in the real mode (or index) as in this example, and a series of processes related to adaptive prediction mode precision (e.g., prediction After the mode determination process, the prediction mode encoding process, etc.), the original mode may be restored.
  • modes 2 to 34 are allocated 0 to 32 temporary indices, respectively, and 2 to 3 after a series of processes related to adaptive prediction mode precision. Can be restored to mode 34.
  • the prediction mode encoding setting may also be adaptively determined.
  • mode indexes 1, 2, 4, and 8 are respectively obtained when the prediction mode precision is M0 to M3. Can have.
  • the index information corresponding to the prediction mode of the current block may be encoded in the prediction mode candidate group.
  • MPM related information information on whether or not the MPM candidate group is configured to match the MPM and additional information (for example, MPM index and non-MPM) Indexes, etc.) can be encoded.
  • the prediction mode of the spatially adjacent blocks among the MPM candidate groups may be configured as candidate groups.
  • the prediction mode of the block when the adjacent block has the same prediction mode precision as the current block, the prediction mode of the block may be configured as the MPM candidate group.
  • the mode of the block is the MPM candidate group. Problems may occur in the configuration (for example, when different indexes such as 1 to 8 are allocated to the same mode in M0 to M3).
  • the prediction mode precision changing process may be performed in the prediction mode encoding process.
  • a process of changing the prediction mode of the corresponding block according to the prediction mode precision of the current block may be performed.
  • 39 is an exemplary diagram for changing the precision of a prediction mode according to an embodiment of the present invention.
  • FIG. 39 a prediction mode and precision information of a block adjacent to the current block are shown, and an example of changing a prediction mode precision from left to right is shown.
  • prediction modes of left, top, top left, top right, and bottom left blocks are included as MPM candidate groups.
  • the classification criteria for acquiring the prediction mode (x) of the MPM candidate group are checked (A).
  • the classification criterion check (A) when the corresponding mode (x) is obtained from an adjacent block, it is determined whether the prediction mode precision of the block belonging to the corresponding mode (x) is the same as the prediction mode precision of the current block (B). Alternatively, when the classification criterion check result A is obtained in a preset mode, the MPM candidate group configuration of the corresponding mode (x) is completed.
  • the MPM candidate group configuration of the mode (x) is completed. Or, if the determination result is false (B-No), after performing the process of changing the mode (x) in accordance with the prediction mode precision of the current block, the MPM candidate group configuration is completed.
  • the process of changing the prediction mode precision of the above example may be derived by the following equation.
  • X and Y mean the prediction mode precision before and after the change
  • p_mode and n_mode means the prediction mode before and after the change.
  • the above example is only an example of the process of changing the prediction mode precision, and is not limited to the above example, and may be changed to another equation.
  • the prediction mode precision of the upper block is the same as the prediction mode precision of the current block, and the prediction mode precision of the left, upper left, and lower left blocks is not the same as the prediction mode precision of the current block.
  • the prediction modes of the left, top left, and bottom left blocks may be changed to match the prediction mode precision of the current block. 38 and 39, the prediction modes of the left, top, and bottom left blocks may be changed to modes 2, 7, and 3 according to the prediction mode precision M1 of the current block, and included as MPM candidate groups. can do.
  • the prediction mode of the upper right block is DC which is a non-directional mode, which may perform a process of changing the prediction mode precision different from the above example.
  • the prediction mode candidate group determined according to the changed prediction mode precision may be changed into an index corresponding to the DC mode.
  • the DC mode when the DC mode is assigned to the lowest index (No. 0) in each prediction mode candidate group (for example, 9, 17, 35, etc.), the DC mode may be fixed regardless of the prediction mode precision, and the highest If the index is assigned to the indexes 8, 16, and 34, it may be changed according to the prediction mode precision. That is, in the non-directional mode, a change process different from the above-described prediction mode precision change process (obtained through the equation in the above example) may be performed.
  • the prediction mode precision changing process may be performed.
  • the configuration for the intra prediction mode encoding process may include an intra prediction setting confirmation unit, a prediction mode candidate group setting unit, an MPM candidate group derivation unit, an MPM candidate group reconstruction unit, a prediction mode determination unit, and a prediction mode encoding unit. It can be configured to include.
  • the intra prediction setting check unit may check the intra prediction setting of the current block. For example, the prediction mode precision information of the current block may be checked.
  • the prediction mode candidate group setting unit may configure a prediction mode candidate group for generating a prediction block of the current block. For example, when the adaptive prediction mode precision is supported, the prediction mode candidate group may be configured according to the prediction mode precision. When the adaptive prediction mode precision is not supported, one preset prediction mode candidate group may be used.
  • the MPM candidate group derivation unit may derive a prediction mode used as a prediction value of the prediction mode of the current block.
  • the MPM candidate may be derived using a preset prediction mode, a prediction mode of an adjacent block, a prediction mode previously included in the MPM candidate group, and the like.
  • the MPM candidate group reconstruction unit may reconfigure modes included in the MPM candidate group. For example, in case of supporting adaptive prediction mode precision, if the mode of the MPM candidate group is different from the prediction mode precision of the current block, it can be changed (or reconstructed) according to the prediction mode precision of the current block, and the adaptive prediction mode precision If it does not support MPM candidates can be completed.
  • the prediction mode determiner may determine the prediction mode of the current block.
  • the candidate group of the prediction mode evaluated in the prediction mode determination process may be determined according to the prediction mode precision.
  • the prediction mode encoder may encode the prediction mode of the current block.
  • the prediction mode may be encoded by using the prediction mode of the current block and the reconstructed MPM candidate group obtained through the prediction mode determiner. This example may correspond to a case where prediction mode information is encoded using a prediction value of the prediction mode.
  • the prediction mode information generated through the above process may be included in the bitstream and transmitted to the decoder.
  • FIG. 41 is a block diagram illustrating an intra prediction configuration of a video decoding apparatus according to an embodiment of the present invention.
  • the configuration for the intra prediction mode decoding process may include all or a part of the intra prediction setting confirmation unit, the prediction mode candidate group setting unit, the MPM candidate group derivation unit, the MPM candidate group reconstruction unit, and the prediction mode decoding unit.
  • an image boundary may be generated during the conversion to a two-dimensional space, which may be a characteristic of an image that does not exist in the three-dimensional space. Coding performance may be improved by performing intra prediction based on 360 degree image characteristics.
  • This example may be an example of a case in which the resizing process is performed before the prediction step or the prediction execution of the above-described resizing process.
  • the size to be adjusted is an area temporarily used for intra prediction, and may be understood in consideration of the fact that the actual size is not performed.
  • Some resizing settings may be subject to preset conditions, and examples of data processing and mode information of the area to be resized are described in the following examples. I will explain it centrally. In addition, the description will be made based on the case of the 360-degree image, and overlapping descriptions will be omitted, but may be understood through various embodiments and descriptions described above, and may be included or combined with the aforementioned elements.
  • the reference region for the current block may include a first reference region (for example, an existing usable region), a second reference region (for example, an unavailable region),
  • the third reference region (for example, the region obtained from the region where correlation exists in the image in consideration of the characteristic of the 360 degree image) may be mixed.
  • the third reference region may be an available region or an unusable region.
  • the reference region (or block) may include a reference pixel, a prediction mode, and the like used for intra prediction (eg, a reference pixel configuration unit, a prediction block generator, a prediction mode encoder, etc.) of the current block.
  • FIG. 42 is an exemplary view of intra prediction of a 360 degree image according to an embodiment of the present invention.
  • the intra prediction in the CMP projection format will be described, and the present invention may be applied to a general 360 degree image (or other projection format) without being limited thereto.
  • a to h correspond to a 'to h', and represent a case of acquiring a-h'-encoded data.
  • a to f represent positions of blocks in which intra prediction is performed.
  • the number of reference block positions in 42b may be one of 1 to 3, which means the first reference region to the third reference region.
  • the blocks located around the a to f blocks are a0 to a4, b0 to b4, c0 to c4, d0 to d4, e0 to e4, f0, respectively, in the order of upper left, upper, right upper, left and lower left. To f4.
  • encoding is performed in a maximum coding unit (M ⁇ M), and reference blocks are upper left, upper, upper right, left, and lower left blocks (index allocation from 0 to 3 in the order of the listed blocks), and prediction blocks and reference blocks.
  • M ⁇ M maximum coding unit
  • reference blocks are upper left, upper, upper right, left, and lower left blocks (index allocation from 0 to 3 in the order of the listed blocks), and prediction blocks and reference blocks.
  • M ⁇ M maximum coding unit
  • reference blocks are upper left, upper, upper right, left, and lower left blocks (index allocation from 0 to 3 in the order of the listed blocks), and prediction blocks and reference blocks.
  • M ⁇ M maximum coding unit
  • reference blocks are upper left, upper, upper right, left, and lower left blocks (index allocation from 0 to 3 in the order of the listed blocks), and prediction blocks and reference blocks.
  • the former means a general intra prediction and the latter means an intra prediction (or a 360 degree intra prediction) in consideration of a 360 degree image characteristic.
  • the general intra prediction and the 360 degree video intra prediction are the same.
  • a3 and a4 can be used, and a0 to a2 cannot be used. Alternatively, a0 to a4 cannot be used. In the case of a3 and a4, because they are located in an insignificant area, the state can be changed to unavailable (first reference area-> second reference area).
  • B of 42b can use b1, b2, and cannot use b0, b3, b4.
  • b1 and b2 it may be obtained from a region having high correlation, which is located in a meaningless region but has been encoded in the image (first reference region-> third reference region).
  • C of 42b can use c1, c2, and cannot use c0, c3, c4.
  • c0 to c2 may be used and c3 and c4 may not be used.
  • c0 it may be obtained from a region having a high correlation, which is located outside the image but has been encoded (second reference region-> third reference region).
  • E of 42b can use e0, e1, e3, e4, and cannot use e2.
  • e0 to e4 can be used.
  • e2 it may be obtained from a region having a high correlation, which is located outside the image boundary but has been encoded (second reference region-> third reference region).
  • the f of 42b can use f0, f1, f3, and cannot use f2 and f4.
  • f0 to f4 is possible.
  • encoding may be obtained from a region in which encoding in the image is not performed, but in the case of f4, it may be acquired from a correlated region located outside the image boundary but complete in encoding (2nd reference region-> third). Reference area).
  • the reference pixel of the first reference area may be included in the reference pixel memory, and the reference pixel of the second reference area is located in an unusable area, so that any pixel A pixel value may be generated from the available block in which the value or the encoding is completed and included in the reference pixel memory.
  • the reference pixel of the third reference region may be obtained from a region having high correlation where the intra-picture encoding is completed and included in the reference pixel memory.
  • the reference pixel memory of the current block is generated according to the reference pixel range. If a block belonging to the reference pixel range is available, the reference pixel of the block is included in the memory as it is. If not, the reference pixel of the block is stored. Create or acquire and store in memory.
  • the prediction mode included in the MPM candidate group for intra prediction When the prediction mode included in the MPM candidate group for intra prediction is acquired in the reference region, the prediction mode of the first reference region may be included in the MPM candidate group, and the prediction mode of the second reference region may be included in the MPM candidate group. none.
  • the prediction mode of the third reference region may be obtained from a region of high correlation with which intra-picture encoding is completed and included in the MPM candidate group.
  • the MPM candidate group of the current block may include a prediction mode of a block at a preset position. If the block of the position is available, the MPM candidate group includes the prediction mode of the block in the MPM candidate group. Can not.
  • the data of the region for example, pixel values, prediction mode information, etc.
  • the image characteristic for example, Can be used in consideration of characteristics of coordinate systems between surfaces.
  • the data of the corresponding region obtained by performing a pixel value conversion process or a prediction mode conversion process may be used in consideration of the coordinate system property of the surface to which the region having a high correlation with the surface of the current block belongs.
  • each surface belongs to a different coordinate system (for example, a two-dimensional plane) in three-dimensional space according to the projection format, it means that it performs a conversion process of other surface data obtained according to the coordinate system characteristics of the current surface. do.
  • reference data may be obtained in consideration of the characteristic of the coordinate system to which the current block belongs according to the characteristics between surfaces. That is, data of an image obtained by performing a reference pixel conversion process and a prediction mode conversion process may be used. This may be determined according to an encoding setting, implicitly determined or explicitly related information may be generated, and a description thereof may be derived during image resizing.
  • a method of decoding a 360 degree image comprises: receiving a bitstream encoded with a 360 degree image, generating a predictive image by referring to syntax information obtained from the received bitstream; Combining the generated prediction image with a residual image obtained by inverse quantization and inverse transformation of the bitstream to obtain a decoded image, and reconstructing the decoded image into a 360 degree image according to a projection format.
  • the syntax information may include projection format information about the 360 degree image.
  • the projection format information may include an ERP (Equi-Rectangular Projection) format in which the 360-degree image is projected in a two-dimensional plane, a CMP (CubeMap Projection) format in which the 360-degree image is projected into a cube, and the 360-degree octahedron It may be information indicating at least one of an OHta (OctaHedron Projection) format projected on the screen and an IcoSahedral Projection (ISP) format on which the 360 degree image is projected on a polyhedron.
  • ERP Equi-Rectangular Projection
  • CMP CubeMap Projection
  • ISP IcoSahedral Projection
  • the reconstructing may include obtaining placement information based on regional packing by referring to the syntax information, and rearranging each block of the decoded image according to the placement information. have.
  • the generating of the prediction image may include performing image expansion on a reference picture obtained by reconstructing the bitstream, and generating a prediction image by referring to the reference image on which the image expansion is performed. It may include.
  • the performing of the image expansion may include performing an image expansion based on a division unit of the reference image.
  • the extended region may be individually generated for each division unit by using the boundary pixels of the division unit.
  • the extended area may be generated using a boundary pixel of a division unit that is spatially adjacent to the division unit to be extended or a division pixel of a division unit having a continuity of the image and the division unit to be extended.
  • the extended image may be generated with respect to the combined region by using boundary pixels of a region in which two or more spatially adjacent division units are combined among the division units. Can be.
  • the extended region may be generated between the adjacent division units by using all the adjacent pixel information of the spatially adjacent division units among the division units.
  • the extended area may be generated using an average value of adjacent pixels of each of the spatially adjacent division units.
  • the generating of the prediction image may include performing image expansion on a reference picture obtained by reconstructing the bitstream and referring to the reference image on which the image expansion has been performed. It may include the step of generating.
  • the generating of the predictive image according to the intra prediction may include identifying a reference possibility of a reference block adjacent to a current block to be reconstructed in the reference image, by referring to a reference pixel determined according to the reference possibility.
  • the method may include generating a prediction block by performing intra prediction on the current block.
  • the position adjacent to the current block may include the upper left, upper, right upper and left positions of the current block.
  • the method may include determining whether one region exists within the reference image.
  • the method may include performing an intra prediction on the current block by referring to a pixel of the first area as a reference pixel after determining whether the region in which the encoding / decoding is completed exists in the reference image. have.
  • the generating of the prediction image may include: verifying prediction mode precision of the current block to be decoded from the syntax information, and confirming the prediction mode precision and the MPM mode information obtained from the syntax information correspond to each other. And reconstructing the MPM mode information according to the prediction mode precision for the current block.
  • the MPM mode information may indicate an intra prediction mode for at least one block among blocks adjacent to the current block.
  • the generating of the prediction image may further include performing intra prediction according to an intra prediction mode of a block adjacent to the current block by referring to the reconstructed information of the MPM mode information.
  • the performing of the intra prediction according to the intra prediction mode of the block adjacent to the current block may include configuring a reference pixel belonging to the adjacent block and performing the intra prediction using the reference pixel. Generating a predictive block for.
  • the reference pixel of the unavailable block may be configured by using boundary pixels of another block having image correlation with the current block.
  • the methods according to the invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • Computer-readable media may include, alone or in combination with the program instructions, data files, data structures, and the like.
  • the program instructions recorded on the computer readable medium may be those specially designed and constructed for the present invention, or may be known and available to those skilled in computer software.
  • Examples of computer readable media may include hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter, as well as machine code such as produced by a compiler.
  • the hardware device described above may be configured to operate with at least one software module to perform the operations of the present invention, and vice versa.
  • the above-described method or apparatus may be implemented by combining all or part of the configuration or function, or may be implemented separately.

Abstract

영상 데이터 부호화/복호화 방법 및 장치가 개시된다. 360도 영상의 복호화 방법은, 360도 영상이 부호화된 비트스트림을 수신하는 단계, 수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계, 상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계 및 상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함한다. 여기서 상기 예측 영상을 생성하는 단계는, 상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계, 확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계 및 상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함한다.

Description

영상 데이터 부호화/복호화 방법 및 장치
본 발명은 영상 데이터 부호화 및 복호화 기술에 관한 것으로, 더욱 상세하게는, 실감형 미디어 서비스를 위한 360도 영상의 부호화 및 복호화를 처리하는 방법 및 장치에 관한 것이다.
인터넷과 휴대 단말의 보급과 정보 통신 기술의 발전에 따라 멀티미디어 데이터에 대한 이용이 급증하고 있다. 최근 HD(High Definition) 영상 및 UHD(Ultra High Definition) 영상과 같은 고해상도 영상 및 고품질의 영상에 대한 수요가 다양한 분야에서 발생하고 있으며, 가상 현실, 증강 현실과 같은 실감형 미디어 서비스에 대한 수요는 급증하고 있다. 특히, 가상 현실, 증강 현실을 위한 360도 영상의 경우 복수의 카메라로 촬영된 멀티뷰 영상을 처리하기 때문에 그로 인해 발생하는 데이터량은 방대하게 증가하지만, 이를 처리하기 위한 영상 처리 시스템 성능이 미흡한 실정이다.
이와 같이, 종래 기술의 영상 부호화/복호화 방법 및 장치에서는 영상 처리, 특히 영상 부호화/ 복호화에 대한 성능 개선이 요구되는 상황이다.
상기와 같은 과제를 해결하기 위한 본 발명의 목적은, 부호화 및 복호화 초기 단계에서의 영상 설정 과정을 개선하는 방법을 제공하는데 있다. 더욱 상세하게는, 360도 영상 특성을 고려하는 영상 설정 과정을 개선하는 부호화 및 복호화 방법 및 장치를 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은 360도 영상의 복호화 방법을 제공한다.
여기서 360도 영상의 복호화 방법은, 360도 영상이 부호화된 비트스트림을 수신하는 단계, 수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계, 상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계 및 상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함할 수 있다.
여기서 구문 정보는, 상기 360도 영상에 대한 투영 포맷 정보를 포함할 수 있다.
여기서 상기 투영 포맷 정보는, 상기 360도 영상을 2차원 평면으로 투영시킨 ERP(Equi-Rectangular Projection) 포맷, 상기 360도 영상을 정육면체로 투영시킨 CMP(CubeMap Projection) 포맷, 상기 360도 영상을 8면체로 투영시킨 OHP(OctaHedron Projection) 포맷, 상기 360도 영상을 다면체로 투영시킨 ISP(IcoSahedral Projection) 포맷 중 적어도 하나를 지시하는 정보일 수 있다.
여기서 상기 재구성하는 단계는, 상기 구문 정보를 참조하여, 지역별 포장(regional packing)에 따른 배치 정보를 획득하는 단계 및 상기 배치 정보에 따라, 상기 복호화된 영상의 각 블록을 재배치하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 영상 확장을 수행하는 단계는, 상기 참조 영상의 분할 단위를 기초로 영상 확장하는 수행하는 단계를 포함할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위의 경계 화소를 이용하여, 상기 분할 단위마다 개별적으로 확장된 영역을 생성할 수 있다.
여기서 상기 확장된 영역은, 확장할 분할 단위와 공간적으로 인접한 분할 단위의 경계 화소 또는 확장할 분할 단위와 영상의 연속성이 있는 분할 단위의 경계 화소를 이용하여 생성될 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 두 개 이상의 분할 단위가 결합된 영역의 경계 화소를 이용하여, 상기 결합된 영역에 대하여 확장된 영상을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 분할 단위들의 인접 화소 정보를 모두 이용하여, 상기 인접한 분할 단위들 사이에 확장된 영역을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 공간적으로 인접한 분할 단위들 각각의 인접 화소들의 평균값을 이용하여 상기 확장된 영역을 생성할 수 있다.
여기서 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 화면 내 예측에 따른 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 화면 내 예측에 따른 예측 영상을 생성하는 단계는, 상기 참조 영상에서, 복원할 현재 블록과 인접한 위치에 있는 참조 블록의 참조 가능성을 확인하는 단계, 참조 가능성에 따라 결정된 참조 화소를 참조하여 상기 현재 블록에 대한 화면 내 예측을 수행하여 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 현재 블록과 인접한 위치는, 상기 현재 블록의 좌상, 상, 우상, 좌측 위치를 포함할 수 있다.
여기서 상기 참조 가능성을 확인하는 단계 이후에, 360도 영상의 데이터 연속성을 기초로, 상기 현재 블록과 인접하지 않은 위치에 속하고, 상기 현재 블록과 영상 데이터의 상관성이 높으며, 부/복호화가 완료된 제1 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계를 포함할 수 있다.
여기서 상기 부/복호화가 완료된 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계 이후에, 상기 제1 영역의 화소를 참조 화소로서 참조하여, 상기 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계, 확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계 및 상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함할 수 있다.
여기서 상기 MPM 모드 정보는, 상기 현재 블록과 인접한 블록들 중 적어도 하나의 블록에 대한 화면 내 예측 모드를 지시할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 MPM 모드 정보를 재구성한 정보를 참조하여, 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계를 더 포함할 수 있다.
여기서 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계는, 상기 인접한 블록에 속한 참조 화소를 구성하는 단계 및 상기 참조 화소를 이용하여 화면 내 예측을 수행함으로써 상기 현재 블록에 대한 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 참조 화소를 구성하는 단계는, 상기 현재 블록과 인접한 블록이 사용 불가능한 경우, 상기 현재 블록과 영상 상관성을 가진 다른 블록의 경계 화소를 이용하여, 사용 불가능한 블록의 참조 화소를 구성할 수 있다.
상술한 바와 같은 본 발명의 실시예에 따른 영상 부호화/복호화 방법 및 장치를 이용할 경우에는, 압축 성능을 향상시킬 수 있다. 특히, 360도 영상의 경우 압축 성능을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치의 블록도이다.
도 3은 영상을 압축하기 위하여 영상 정보를 계층별로 나눈 예시도이다.
도 4는 본 발명의 일 실시예에 따른 영상 분할의 여러 예시를 나타낸 개념도이다.
도 5는 본 발명의 일 실시예에 따른 영상 분할 방법의 다른 예시도이다.
도 6은 일반적인 영상의 크기 조정 방법에 대한 예시도이다.
도 7은 본 발명의 일 실시예에 따른 영상 크기 조정에 대한 예시도이다.
도 8은 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 확장되는 영역을 구성하는 방법에 대한 예시도이다.
도 9는 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 삭제되는 영역 및 축소되어 생성되는 영역을 구성하는 방법에 대한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 영상 재구성에 대한 예시도이다.
도 11은 본 발명의 일 실시예에 따른 영상 설정 과정의 전과 후의 영상을 나타낸 예시도이다.
도 12는 본 발명의 일 실시예에 따른 영상 내 분할 단위 각각을 대상으로 한 크기 조정의 예시도이다.
도 13은 영상 내 분할 단위의 크기 조정 또는 설정 세트에 대한 예시도이다.
도 14는 영상 크기 조정 과정과 영상 내 분할 단위의 크기 조정 과정을 함께 표현한 예시도이다.
도 15는 3차원 영상을 나타내는 3차원 공간 및 2차원 평면 공간을 나타낸 예시도이다.
도 16a 내지 도 16d는 본 발명의 일 실시예에 따른 투영 포맷을 설명하기 위한 개념도이다.
도 17은 본 발명의 일 실시예에 따른 투영 포맷을 직사각형의 영상 내에 포함되는 것으로 구현한 개념도이다.
도 18은 본 발명의 일 실시예에 따른 투영 포맷을 직사각 형태의 형상으로 변환하는 방법으로서, 무의미한 영역을 배제하도록 표면을 재배치하는 방법에 대한 개념도이다.
도 19는 본 발명의 일 실시예에 따른 CMP 투영 포맷을 직사각 형태의 영상으로 지역별 포장 과정을 수행한 개념도이다.
도 20은 본 발명의 일 실시예에 따른 360도 영상 분할에 대한 개념도이다.
도 21은 본 발명의 실시예에 따른 360도 영상 분할과 영상 재구성의 예시도이다.
도 22는 CMP로 투영된 영상 또는 포장된 영상을 타일로 분할한 예시도이다.
도 23은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정의 예를 설명하기 위한 개념도이다.
도 24는 본 발명의 일 실시예에 따른 투영 포맷(예를 들어, CMP, OHP, ISP)에서 표면 간의 연속성을 설명하기 위한 개념도이다.
도 25는 CMP 투영 포맷에서의 영상 재구성 과정 또는 지역별 포장 과정을 통해 획득된 영상인 도 21c의 표면의 연속성을 설명하기 위한 개념도이다.
도 26은 본 발명의 일 실시예에 따른 CMP 투영 포맷에서의 영상의 크기 조정을 설명하기 위한 예시도이다.
도 27은 본 발명의 일 실시예에 따른 CMP 투영 포맷으로 변환되고, 포장된 영상을 대상으로 한 크기 조정을 설명하기 위한 예시도이다.
도 28은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정에서 데이터 처리 방법을 설명하기 위한 예시도이다.
도 29는 트리 기반의 블록 형태를 나타낸 예시도이다.
도 30은 타입 기반의 블록 형태를 나타낸 예시도이다.
도 31은 본 발명의 블록 분할부에서 획득할 수 있는 다양한 블록의 형태를 나타낸 예시도이다.
도 32는 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
도 33은 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
도 34는 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다.
도 35는 화면내 예측에 사용되는 참조 화소 범위를 설명하기 위한 예시도이다.
도 36은 HEVC의 화면내 예측 모드를 나타낸 예시도이다.
도 37a 내지 도 37d는 화면내 예측 모드 후보군의 다양한 경우를 설명하기 위한 예시도이다.
도 38은 본 발명의 일 실시예에 따른 예측 모드 정밀도를 설명하기 위한 예시도이다.
도 39는 본 발명의 일 실시예에 따른 예측 모드의 정밀도 변경에 대한 예시도이다.
도 40은 본 발명의 일 실시예에 따른 영상 부호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다.
도 41은 본 발명의 일 실시예에 따른 영상 복호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다.
도 42는 본 발명의 일 실시예에 따른 360도 영상의 화면내 예측에 대한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 것을 의미한다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
영상 부호화 장치 및 복호화 장치는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV, 가상 현실 디바이스(Virtual Reality. VR), 증강 현실 디바이스(Augmented Reality. AR), 혼합 현실 디바이스(Mixed Reality. MR), 머리 착용 디바이스(Head Mounted Display. HMD), 스마트 안경(Smart Glasses) 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화하거나 복호화하거나 부호화 또는 복호화를 위해 화면내 또는 화면간 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(Memory), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(Processor) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치로 전송되어 영상 복호화 장치에서 복호화되어 영상으로 복원되고 재생될 수 있다.
또한, 영상 부호화 장치에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 부호화 장치에서 복호화 장치로 전달될 수도 있다.
전술한 영상 부호화 장치와 영상 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화/복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치의 일부 구성은 영상 복호화 장치의 일부 구성과 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다.
따라서 이하의 기술요소들과 이들의 작동 원리 등에 대한 상세 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다.
그리고 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다.
컴퓨팅 장치는 영상 부호화 방법 및/또는 영상 복호화 방법을 구현하는 프로그램이나 소프트웨어 모듈을 저장하는 메모리와 메모리에 연결되어 프로그램을 수행하는 프로세서를 포함할 수 있다. 그리고 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture)라고 지칭할 수 있다. 이때, 픽쳐는 프로그레시브(Progressive) 신호, 인터레이스(Interlace) 신호에서의 프레임(Frame), 필드(Field) 중 하나를 나타낼 수 있고, 부호화/복호화가 프레임 단위로 수행될 경우 영상은 '프레임', 필드 단위로 수행될 경우 '필드'로 나타낼 수 있다. 본 발명에서는 프로그레시브 신호를 가정하고 설명하지만, 인터레이스 신호에도 적용 가능할 수 있다. 상위 개념으로는 GOP, 시퀀스(Sequence)등의 단위가 존재할 수 있으며, 또한, 각 픽쳐는 슬라이스, 타일, 블록 등과 같은 소정의 영역으로 분할될 수 있다. 또한, 하나의 GOP에는 I 픽쳐, P 픽쳐, B 픽쳐 등의 단위가 포함될 수 있다. I 픽쳐는 참조 픽쳐를 사용하지 않고 자체적으로 부호화/복호화되는 픽쳐를 의미할 수 있으며, P 픽쳐와 B 픽쳐는 참조 픽쳐를 사용하여 움직임 추정(Motion Estimation) 및 움직임 보상(Motion Compensation) 등의 과정을 수행하여 부호화/복호화 하는 픽쳐를 의미할 수 있다. 일반적으로 P 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐로써 이용할 수 있으며, B 픽쳐의 경우 I 픽쳐와 P 픽쳐를 참조 픽쳐를 이용할 수 있으나, 이는 부호화/복호화의 설정에 의해 위의 정의 또한 변경될 수 있다.
여기서 부호화/복호화하는데 참조되는 픽쳐를 참조 픽쳐(Reference Picture)라고 하며, 참조되는 블록 또는 화소를 참조 블록(Reference Block), 참조 화소(Reference Pixel)라고 한다. 또한, 참조되는 데이터(Reference Data)는 공간 영역(Spatial Domain)의 화소값 뿐만 아니라 주파수 영역(Frequency Domain)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다. 예를 들어, 예측부에서 화면내 예측 관련 정보 또는 움직임 관련 정보, 변환부/역변환부에서 변환 관련 정보, 양자화부/역양자화부에서 양자화 관련 정보, 부호화부/복호화부에서는 부호화/복호화 관련 정보(문맥 정보), 인루프 필터부에서는 필터 관련 정보 등이 해당될 수 있다.
영상을 이루는 최소 단위는 화소(Pixel)일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도(Bit Depth)라고 한다. 일반적으로 비트 심도는 8비트일 수 있으며 부호화 설정에 따라 그 이상의 비트 심도를 지원할 수 있다. 비트 심도는 컬러 공간(Color Space)에 따라 적어도 하나의 비트 심도가 지원될 수 있다. 또한, 영상의 컬러 포맷(Color Format)에 따라 적어도 하나의 컬러 공간으로 구성될 수 있다. 컬러 포맷에 따라 일정 크기를 갖는 1개 이상의 픽쳐 또는 다른 크기를 갖는 1개 이상의 픽쳐로 구성될 수 있다. 예를 들어, YCbCr 4:2:0인 경우 1개의 휘도 성분(본 예에서, Y)과 2개의 색차 성분(본 예에서, Cb/Cr)으로 구성될 수 있으며, 이때 색차 성분과 휘도 성분의 구성 비는 가로, 세로 1:2를 가질 수 있다. 다른 예로, 4:4:4인 경우 가로, 세로 동일한 구성 비를 가질 수 있다. 상기 예처럼 하나 이상의 컬러 공간으로 구성이 되는 경우 픽쳐는 각 컬러 공간으로의 분할을 수행할 수 있다.
본 발명에서는 일부 컬러 포맷(본 예에서, YCbCr)의 일부 컬러 공간(본 예에서, Y)을 기준으로 설명할 것이며, 컬러 포맷에 따른 다른 컬러 공간(본 예에서, Cb, Cr)에도 동일하거나 비슷한 적용(특정 컬러 공간에 의존적인 설정)을 할 수 있다. 그러나 각 컬러 공간에 부분적인 차이(특정 컬러 공간에 독립적인 설정)를 두는 것 또한 가능할 수 있다. 즉, 각 컬러 공간에 의존적인 설정은 각 성분의 구성 비(예를 들어, 4:2:0, 4:2:2, 4:4:4 등에 따라 결정)에 비례하거나 의존적인 설정을 갖는 것으로 의미할 수 있고, 각 컬러 공간에 독립적인 설정은 각 성분의 구성 비에 관계없거나 독립적으로 해당 컬러 공간만의 설정을 갖는 것으로 의미할 수 있다. 본 발명에서는 부/복호화기에 따라 일부 구성에 대해서는 독립적인 설정을 갖거나 의존적인 설정을 가질 수 있다.
영상 부호화 과정에서 필요한 설정 정보 또는 구문 요소(Syntax Element)는 비디오, 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위 수준에서 정해질 수 있으며 이는 VPS(Video Parameter Set), SPS(Sequence Parameter Set), PPS(Picture Parameter Set), Slice Header, Tile Header, Block Header 등과 같은 단위로 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서는 동일 수준의 단위에서 파싱(Parsing)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 또한, SEI(Supplement Enhancement Information) 또는 메타 데이터(Metadata) 등의 형태로 관련 정보를 비트스트림으로 전송하고 파싱하여 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
도 1은 본 발명의 일 실시예에 따른 영상 부호화 장치의 블록도이다. 도 2는 본 발명의 일 실시예에 따른 영상 복호화 장치의 블록도이다.
도 1을 참조하면, 영상 부호화 장치는 예측부, 감산부, 변환부, 양자화부, 역양자화부, 역변환부, 가산부, 인루프 필터부, 메모리 및/또는 부호화부를 포함하여 구성될 수 있으며, 위의 구성 중 일부는 반드시 포함되지 않을 수 있으며, 구현에 따라 일부 또는 전부가 선택적으로 포함될 수 있으며, 도시되지 않은 추가적인 일부 구성이 포함될 수 있다.
도 2를 참조하면, 영상 복호화 장치는 복호화부, 예측부, 역양자화부, 역변환부, 가산부, 인루프 필터부 및/또는 메모리를 포함하여 구성될 수 있으며, 위의 구성 중 일부는 반드시 포함되지 않을 수 있으며, 구현에 따라 일부 또는 전부가 선택적으로 포함될 수 있으며, 도시되지 않은 추가적인 일부 구성이 포함될 수 있다.
영상 부호화 장치와 영상 복호화 장치는 각각 별도의 장치들일 수 있으나, 구현에 따라서 하나의 영상 부호화/복호화 장치로 만들어질 수 있다. 그 경우, 영상 부호화 장치의 일부 구성은 영상 복호화 장치의 일부 구성과 실질적으로 동일한 기술요소로서 적어도 동일한 구조를 포함하거나 적어도 동일한 기능을 수행하도록 구현될 수 있다. 따라서 이하의 기술요소들과 이들의 작동 원리 등에 상세한 설명에서는 대응 기술요소들의 중복되는 설명을 생략하기로 한다. 영상 복호화 장치는 영상 부호화 장치에서 수행되는 영상 부호화 방법을 복호화에 적용하는 컴퓨팅 장치에 대응하므로, 이하의 설명에서는 영상 부호화 장치를 중심으로 설명하기로 한다. 영상 부호화 장치는 부호화기로, 영상 복호화 장치는 복호화기로 각각 지칭될 수 있다.
예측부는 소프트웨어 모듈인 예측 모듈(Prediction Module)을 이용하여 구현될 수 있고, 부호화할 블록에 대하여 화면내 예측(Intra Prediction) 방식이나 화면간 예측(Inter Prediction) 방식으로 예측 블록을 생성할 수 있다. 예측부는 영상에서 현재 부호화하고자 하는 현재 블록을 예측하여 예측 블록을 생성한다. 즉, 예측부는 영상에서 부호화하고자 하는 현재 블록의 각 화소의 화소값(Pixel Value)을 화면내 예측 또는 화면간 예측에 따라 예측하여 생성된 각 화소의 예측 화소값(Predicted Pixel Value)을 갖는 예측 블록을 생성한다. 또한, 예측부는 예측 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 예측 모드에 대한 정보를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기로 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 예측 모드에 대한 정보를 복원한 후 이를 화면내 예측 또는 화면간 예측에 사용할 수 있다.
감산부는 현재 블록에서 예측 블록을 감산하여 잔차 블록(Residual Block)을 생성한다. 즉, 감산부는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호(Residual Signal)인 잔차 블록을 생성한다.
변환부는 공간 영역에 속하는 신호를 주파수 영역에 속하는 신호로 변환할 수 있으며, 이때 변환 과정을 거쳐 획득되는 신호를 변환 계수(Transformed Coefficient)라고 한다. 예를 들어, 감산부로부터 전달받은 잔차 신호를 갖는 잔차 블록을 변환하여 변환 계수를 갖는 변환 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 신호에 한정되지 않는다.
변환부는 잔차 블록을 하다마드 변환(Hadamard Transform), 이산 사인 변환(DST Based-Transform: Discrete Sine Transform), 이산 코사인 변환(DCT Based-Transform: Discrete Cosine Transform) 등과 같은 변환 기법을 사용하여 변환할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 변환 기법이 사용될 수 있다.
예를 들어, 상기 변환 중 적어도 하나의 변환 기법이 지원될 수 있으며, 각 변환 기법에서 적어도 하나의 세부 변환 기법이 지원될 수 있다. 이때, 적어도 하나의 세부 변환 기법은 각 변환 기법에서 기저 벡터의 일부가 달리 구성되는 변환 기법일 수 있다. 예를 들어, 변환 기법으로 DST 기반의 변환과 DCT 기반의 변환이 지원될 수 있으며, DST의 경우 DST-I, DST-II, DST-III, DST-V, DST-VI, DST-VII, DST-VIII 등의 세부 변환 기법이 지원될 수 있고, DCT의 경우 DCT-I, DCT-II, DCT-III, DCT-V, DCT-VI, DCT-VII, DCT-VIII 등의 세부 변환 기법이 지원될 수 있다.
상기 변환 중 하나의 변환(예를 들어, 하나의 변환 기법 && 하나의 세부 변환 기법)이 기본 변환 기법으로 설정될 수 있으며, 이에 추가적인 변환 기법(예를 들어, 복수의 변환 기법 || 복수의 세부 변환 기법)을 지원할 수 있다. 추가적인 변환 기법 지원 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 결정되어 상기 단위로 관련 정보가 생성될 수 있고, 추가적인 변환 기법 지원이 지원될 경우에 변환 기법 선택 정보는 블록 등의 단위로 결정되어 관련 정보가 생성될 수 있다.
변환은 수평/수직 방향으로 수행될 수 있다. 예를 들어, 변환에서의 기저 벡터를 이용하여 수평 방향으로 1차원 변환을 수행하고 수직 방향으로 1차원 변환을 수행하여 총 2차원 변환을 수행함으로써 공간 영역의 화소값을 주파수 영역으로 변환할 수 있다.
또한, 수평/수직 방향으로 변환이 적응적으로 수행될 수 있다. 상세하게는, 적어도 하나의 부호화 설정에 따라 적응적인 수행 여부가 결정될 수 있다. 예를 들어, 화면내 예측의 경우에서 예측 모드가 수평 모드일 경우에는 수평 방향으로는 DCT-I가, 수직 방향으로는 DST-I가 적용될 수 있고, 수직 모드일 경우에는 수평 방향으로는 DST-VI가, 수직 방향으로는 DCT-VI가 적용될 수 있고, Diagonal down left일 경우에는 수평 방향으로는 DCT-II, 수직 방향으로는 DCT-V가 적용될 수 있고, Diagonal down right일 경우에는 수평 방향으로는 DST-I, 수직 방향으로는 DST-VI가 적용될 수 있다.
변환 블록의 크기 및 형태의 후보별 부호화 비용에 따라 각 변환 블록의 크기 및 형태가 결정되고, 결정된 각 변환 블록의 영상 데이터 및 결정된 각 변환 블록의 크기 및 형태 등의 정보를 부호화할 수 있다.
상기 변환 형태 중 정사각 형태의 변환이 기본 변환 형태로 설정될 수 있으며, 이에 대한 추가적인 변환 형태(예를 들어, 직사각 형태)를 지원할 수 있다. 추가적인 변환 형태 지원 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 결정되며 상기 단위로 관련 정보가 생성될 수 있고, 변환 형태 선택 정보는 블록 등의 단위로 결정되어 관련 정보가 생성될 수 있다.
또한, 변환 블록 형태의 지원은 부호화 정보에 따라 결정될 수 있다. 이때, 부호화 정보는 슬라이스 타입, 부호화 모드, 블록의 크기 및 형태, 블록 분할 방식 등이 해당될 수 있다. 즉, 적어도 하나의 부호화 정보에 따라 하나의 변환 형태가 지원될 수 있으며, 적어도 하나의 부호화 정보에 따라 복수의 변환 형태가 지원될 수 있다. 전자의 경우 묵시적(Implicit)인 상황일 수 있으며, 후자의 경우 명시적(Explicit)인 상황일 수 있다. 명시적인 경우는 복수의 후보군 중 최적의 후보군을 가리키는 적응적인 선택 정보를 생성하여 이를 비트스트림에 수록할 수 있다. 본 예를 포함하여 본 발명에서는 명시적으로 부호화 정보를 생성하는 경우에는 해당 정보를 다양한 단위로 비트스트림에 수록하고, 복호화기에서 다양한 단위로 관련 정보를 파싱하여 복호화 정보로 복원하는 것으로 이해될 수 있다. 또한, 묵시적으로 부/복호화 정보를 처리하는 경우에는 부호화기와 복호화기에서 동일한 과정, 규칙 등으로 처리되는 것으로 이해될 수 있다.
일 예로, 슬라이스 타입에 따라 직사각 형태의 변환 지원이 결정될 수 있다. I 슬라이스일 경우에 지원되는 변환 형태는 정사각 형태의 변환일 수 있으며, P/B 슬라이스일 경우 정사각 형태 또는 직사각 형태의 변환일 수 있다.
일 예로, 부호화 모드에 따라 직사각 형태의 변환 지원이 결정될 수 있다. Intra일 경우에 지원되는 변환 형태는 정사각 형태의 변환일 수 있으며, Inter일 경우에 지원되는 변환 형태는 정사각 형태와 또는 직사각 형태의 변환일 수 있다.
일 예로, 블록의 크기 및 형태에 따라 직사각 형태의 변환 지원이 결정될 수 있다. 일정 크기 이상의 블록에서 지원되는 변환 형태는 정사각 형태의 변환일 수 있으며, 일정 크기 미만의 블록에서 지원되는 변환 형태는 정사각 형태 또는 직사각 형태의 변환일 수 있다.
일 예로, 블록 분할 방식에 따라 직사각 형태의 변환 지원이 결정될 수 있다. 변환이 수행되는 블록이 쿼드 트리(Quad Tree) 분할 방식을 통해 획득된 블록일 경우 지원되는 변환의 형태는 정사각 형태의 변환일 수 있고, 바이너리 트리(Binary Tree) 분할 방식을 통해 획득된 블록일 경우 지원되는 변환의 형태는 정사각 형태 또는 직사각 형태의 변환일 수 있다.
상기 예는 하나의 부호화 정보에 따른 변환 형태 지원에 대한 예이며, 복수의 정보가 조합되어 추가적인 변환 형태 지원 설정에 관여할 수도 있다. 상기 예는 다양한 부호화 설정에 따라 추가적인 변환 형태 지원에 대한 일 예일 뿐 위에 한정되지 않으며 다양한 변형의 예가 가능할 수 있다.
부호화 설정 또는 영상의 특성에 따라 변환 과정은 생략할 수 있다. 예를 들어, 부호화 설정(본 예에서, 무손실 압축 환경이라 가정)에 따라 변환 과정(역과정도 포함)을 생략할 수 있다. 다른 예로, 영상의 특성에 따라 변환을 통한 압축 성능이 발휘되지 않는 경우에 변환 과정을 생략할 수 있다. 이때 생략하는 변환은 전체 단위일 수 있거나, 수평, 수직 단위 중 하나의 단위가 생략될 수 있으며, 이는 블록의 크기 및 형태 등에 따라 이와 같은 생략의 지원 여부가 결정될 수 있다.
예를 들어, 수평과 수직의 변환의 생략이 묶이는 설정에서는 변환 생략 플래그가 1일 경우에는 수평, 수직 방향으로 변환이 수행되지 않고, 0일 때는 수평, 수직 방향으로 변환이 수행될 수 있다. 수평과 수직의 변환의 생략이 독립적으로 동작하는 설정에서는 제 1 변환 생략 플래그가 1일 경우에는 수평 방향으로 변환이 수행되지 않고, 0일 경우에는 수평 방향으로 변환이 수행되며, 제 2 변환 생략 플래그 가 1일 경우에는 수직 방향으로 변환이 수행되지 않고, 0일 경우에는 수직 방향으로 변환이 수행된다.
블록의 크기가 범위 A에 해당되는 경우에는 변환 생략이 지원될 수 있고, 범위 B에 해당되는 경우에는 변환 생략이 지원될 수 없다. 예를 들어, 블록의 가로 길이가 M보다 크거나 블록의 세로 길이가 N보다 큰 경우에는 상기 변환 생략 플래그는 지원될 수 없고, 블록의 가로 길이가 m보다 작거나 블록의 세로 길이가 n보다 작은 경우에는 상기 변환 생략 플래그가 지원될 수 있다. M(m)과 N(n)은 같거나 다를 수 있다. 상기 변환 관련 설정은 시퀀스, 픽쳐, 슬라이스 등의 단위에서 결정될 수 있다.
추가적인 변환 기법이 지원될 경우, 변환 기법 설정은 적어도 하나의 부호화 정보에 따라 결정될 수 있다. 이때, 부호화 정보는 슬라이스 타입, 부호화 모드, 블록의 크기 및 형태, 예측 모드 등이 해당될 수 있다.
일 예로, 부호화 모드에 따라 변환 기법의 지원이 결정될 수 있다. Intra일 경우에 지원되는 변환 기법은 DCT-I, DCT-III, DCT-VI, DST-II, DST-III 일 수 있으며, Inter일 경우에 지원되는 변환 기법은 DCT-II, DCT-III, DST-III 일 수 있다.
일 예로, 슬라이스 타입에 따라 변환 기법의 지원이 결정될 수 있다. I 슬라이스일 경우에 지원되는 변환 기법은 DCT-I, DCT-II, DCT-III 일 수 있으며, P 슬라이스일 경우에 지원되는 변환 기법은 DCT-V, DST-V, DST-VI 일 수 있으며, B 슬라이스일 경우에 지원되는 변환 기법은 DCT-I, DCT-II, DST-III일 수 있다.
일 예로, 예측 모드에 따라 변환 기법의 지원이 결정될 수 있다. 예측 모드 A에서 지원되는 변환 기법은 DCT-I, DCT-II 일 수 있고, 예측 모드 B에서 지원되는 변환 기법은 DCT-I, DST-I 일 수 있고, 예측 모드 C에서 지원되는 변환 기법은 DCT-I 일 수 있다. 이때, 예측 모드 A, B는 방향성 모드(Directional Mode), 예측 모드 C는 비방향성 모드(Non-Directional Mode)일 수 있다.
일 예로, 블록의 크기 및 형태에 따라 변환 기법의 지원이 결정될 수 있다. 일정 크기 이상의 블록에서 지원되는 변환 기법은 DCT-II 일 수 있으며, 일정 크기 미만의 블록에서 지원되는 변환 기법은 DCT-II, DST-V 일 수 있으며, 일정 크기 이상과 일정 크기 미만의 블록에서 지원되는 변환 기법은 DCT-I, DCT-II, DST-I 일 수 있다. 또한, 정사각 형태에서 지원되는 변환 기법은 DCT-I, DCT-II 일 수 있고, 직사각 형태에서 지원되는 변환 기법은 DCT-I, DST-I 일 수 있다.
상기 예는 하나의 부호화 정보에 따른 변환 기법 지원에 대한 예이며, 복수의 정보가 조합되어 추가적인 변환 기법 지원 설정에 관여할 수도 있다. 상기 예의 경우에만 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다. 또한, 변환부는 변환 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 역변환 과정에 사용할 수 있다.
양자화부는 입력 받은 신호를 양자화할 수 있으며, 이때 양자화 과정을 거쳐 획득되는 신호를 양자화 계수(Quantized Coefficient)라고 한다. 예를 들어, 변환부로부터 전달받은 잔차 변환 계수를 갖는 잔차 블록을 양자화하여 양자화 계수를 갖는 양자화 블록을 획득할 수 있는데, 입력 받은 신호는 부호화 설정에 따라 결정되며 이는 잔차 변환 계수에 한정되지 않는다.
양자화부는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 등과 같은 양자화 기법을 사용하여 양자화할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 양자화 기법이 사용될 수 있다. 추가적인 양자화 기법 지원 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 결정되어 상기 단위로 관련 정보가 생성될 수 있고, 추가적인 양자화 기법 지원이 지원될 경우에는 양자화 기법 선택 정보는 블록 등의 단위로 결정되어 관련 정보가 생성될 수 있다.
추가적인 양자화 기법이 지원될 경우, 양자화 기법 설정은 적어도 하나의 부호화 정보에 따라 결정될 수 있다. 이때, 부호화 정보는 슬라이스 타입, 부호화 모드, 블록의 크기 및 형태, 예측 모드 등이 해당될 수 있다.
예를 들어, 양자화부는 부호화 모드에 따라 양자화 가중치 매트릭스를 화면간 예측/화면내 예측에 따라 적용되는 가중치 매트릭스를 다르게 둘 수 있다. 또한, 화면내 예측 모드에 따라 적용되는 가중치 매트릭스를 다르게 둘 수 있다. 이때, 양자화 가중치 매트릭스는 M×N의 크기로 블록의 크기가 양자화 블록 크기와 같다고 가정할 때, 양자화 성분 일부가 달리 구성되는 양자화 매트릭스일 수 있다.
부호화 설정 또는 영상의 특성에 따라 양자화 과정은 생략할 수 있다. 예를 들어, 부호화 설정(본 예에서, 무손실 압축 환경이라 가정)에 따라 양자화 과정(역과정도 포함)을 생략할 수 있다. 다른 예로, 영상의 특성에 따라 양자화를 통한 압축 성능이 발휘되지 않는 경우에 양자화 과정을 생략할 수 있다. 이때, 생략하는 영역은 전체 영역일 수 있거나, 일부 영역이 생략될 수 있으며, 이는 블록의 크기 및 형태 등에 따라 이와 같은 생략의 지원 여부가 결정될 수 있다.
양자화 파라미터(Quantization Parameter, QP)에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 생성이 될 수 있다. 예를 들어, 최초로 QP 정보가 생성되는 상위 단위에서 기본 QP를 설정할 수 있고<1>, 하위 단위로 갈수록 상위 단위에서 설정된 QP와 동일하거나 다른 값으로 QP를 설정할 수 있다<2>. 이와 같은 과정을 거쳐 일부 단위에서 수행되는 양자화 과정에서 QP는 최종 결정될 수 있다<3>. 이때, 시퀀스, 픽쳐 등의 단위는 <1>에, 슬라이스, 타일, 블록 등의 단위는 <2>에, 블록 등의 단위는 <3>에 해당되는 예일 수 있다.
QP에 대한 정보는 각 단위에서의 QP를 기반으로 생성할 수 있다. 또는, 기 설정된 QP를 예측값으로 설정하여 각 단위에서의 QP와의 차분치 정보를 생성할 수 있다. 또는, 상위 단위에서 설정된 QP 또는 이전 동일 단위에서 설정된 QP 또는 이웃한 단위에서 설정된 QP 중 적어도 하나에 기반하여 획득되는 QP를 예측값으로 설정하여 현재 단위에서의 QP와의 차분치 정보를 생성할 수 있다. 또는, 상위 단위에서 설정된 QP와 적어도 하나의 부호화 정보에 기반하여 획득되는 QP를 예측값으로 설정하여 현재 단위에서의 QP와의 차분치 정보를 생성할 수 있다. 이때, 이전 동일 단위는 각 단위의 부호화 순서에 따라 정의될 수 있는 단위일 수 있고 이웃한 단위는 공간적으로 인접한 단위일 수 있으며, 부호화 정보는 해당 단위의 슬라이스 타입, 부호화 모드, 예측 모드, 위치 정보 등 일 수 있다.
일 예로, 현재 단위의 QP는 상위 단위의 QP를 예측값으로 설정하여 차분치 정보를 생성할 수 있다. 슬라이스에서 설정된 QP와 픽쳐에서 설정된 QP와의 차분치 정보를 생성하거나 타일에서 설정된 QP와 픽쳐에서 설정된 QP와의 차분치 정보를 생성할 수 있다. 또한, 블록에서 설정된 QP와 슬라이스 또는 타일에서 설정된 QP와의 차분치 정보를 생성할 수 있다. 또한, 서브 블록에서 설정된 QP와 블록에서 설정된 QP와의 차분치 정보를 생성할 수 있다.
일 예로, 현재 단위의 QP는 적어도 하나의 이웃한 단위의 QP에 기반하여 획득되는 QP 또는 적어도 하나의 이전 단위의 QP에 기반하여 획득되는 QP를 예측값으로 설정하여 차분치 정보를 생성할 수 있다. 현재 블록의 왼쪽, 왼쪽 위, 왼쪽 아래, 위쪽, 오른쪽 위 등의 이웃 블록의 QP에 기반하여 획득된 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 픽쳐 이전의 부호화된 픽쳐의 QP와의 차분치 정보를 생성할 수 있다.
일 예로, 현재 단위의 QP는 상위 단위의 QP와 적어도 하나의 부호화 정보에 기반하여 획득되는 QP를 예측값으로 설정하여 차분치 정보를 생성할 수 있다. 현재 블록의 QP와 슬라이스 타입(I/P/B)에 따라 보정되는 슬라이스의 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 블록의 QP와 부호화 모드(Intra/Inter)에 따라 보정되는 타일의 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 블록의 QP와 예측 모드(방향성/비방향성)에 따라 보정되는 픽쳐의 QP와의 차분치 정보를 생성할 수 있다. 또는, 현재 블록의 QP와 위치 정보(x/y)에 따라 보정되는 픽쳐의 QP와의 차분치 정보를 생성할 수 있다. 이때, 상기 보정의 의미는 예측에 사용되는 상위 단위의 QP에 오프셋 형태로 가산 또는 감산되는 것을 의미할 수 있다. 이때, 부호화 설정에 따라 적어도 하나의 오프셋 정보가 지원될 수 있으며, 기 설정된 과정에 따라 묵시적으로 처리되거나 명시적으로 관련 정보가 생성될 수 있다. 상기 예의 경우에만 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다.
상기 예는 QP 변동을 지시하는 신호가 제공되거나 활성화되는 경우에 가능한 예일 수 있다. 예를 들어, QP 변동을 지시하는 신호가 제공되지 않거나 비활성화되는 경우, 차분치 정보는 생성되지 않으며 상기 예측된 QP는 각 단위의 QP로 결정될 수 있다. 다른 예로, QP 변동을 지시하는 신호가 제공되거나 활성화되는 경우, 차분치 정보는 생성되며 그 값이 0일 때 역시 상기 예측된 QP는 각 단위의 QP로 결정될 수 있다.
양자화부는 양자화 블록을 생성하는데 필요한 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 이를 역양자화 과정에 사용할 수 있다.
상기 예에서는 변환부와 양자화부를 통해 잔차 블록을 변환하고 양자화하는 가정 하에 설명하였지만, 잔차 블록을 잔차 신호를 변환하여 변환 계수를 갖는 잔차 블록을 생성하고 양자화 과정을 수행하지 않을 수 있으며, 잔차 블록의 잔차 신호를 변환 계수로 변환하지 않고 양자화 과정만을 수행할 수 있을 뿐만 아니라, 변환과 양자화 과정 모두 수행하지 않을 수 있다. 이는 부호화기 설정에 따라 결정될 수 있다.
부호화부는 생성된 잔차 블록의 양자화 계수, 변환 계수, 또는 잔차 신호 등을 적어도 하나의 스캔 순서(예를 들어, 지그재그 스캔, 수직 스캔, 수평 스캔 등)에 따라 스캔하여 양자화 계수열, 변환 계수열, 또는 신호열을 생성하고 적어도 하나의 엔트로피 부호화(Entropy Coding) 기법을 이용하여 부호화할 수 있다. 이때, 상기 스캔 순서에 대한 정보는 부호화 설정(예를 들어, 부호화 모드, 예측 모드 등)에 따라 정해질 수 있으며, 묵시적으로 정하거나 명시적으로 관련 정보를 생성할 수 있다. 예를 들어, 화면내 예측 모드에 따라 복수의 스캔 순서 중 하나를 선택할 수 있다.
또한, 각 구성부로부터 전달되는 부호화 정보를 포함하는 부호화 데이터를 생성하여 비트스트림으로 출력할 수 있으며, 이는 멀티플렉서(MUX: Multiplexer)로 구현될 수 있다. 이때, 부호화 기법으로 지수 골룸(Exponential Golomb), 문맥 적응형 가변장 길이 부호화(CAVLC, Context Adaptive Variable Length Coding), 문맥 적응형 이진 산술 부호화(CABAC, Context Adaptive Binary Arithmetic Coding) 등과 같은 방법을 사용하여 부호화할 수 있으며, 이에 한정되지 않고 이를 개량 및 변형한 다양한 부호화 기법이 사용될 수 있다.
상기 잔차 블록 데이터와 부/복호화 과정에 생성되는 정보 등의 구문 요소에 대한 엔트로피 부호화(본 예에서는 CABAC이라 가정)을 수행할 때, 엔트로피 부호화 장치는 이진화부(Binarizer), 문맥 모델러(Context Modeler), 이진 산술 부호화부(Binary Arithmetic Coder)를 포함할 수 있다. 이때, 이진 산술 부호화부는 레귤러 코딩부(Regular Coding Engine)와 바이패스 코딩부(Bypass Coding Engine)를 포함할 수 있다.
상기 엔트로피 부호화 장치로 입력되는 구문 요소는 이진값이 아닐 수 있기 때문에, 구문 요소들이 이진값이 아닌 경우 이진화부는 구문 요소들을 이진화하여 0 또는 1로 구성된 빈 스트링(Bin String)을 출력할 수 있다. 이때, 빈은 0 또는 1로 구성된 비트를 나타내는 것으로 이진 산술 부호화부를 통해 부호화될 수 있다. 이때, 0과 1의 발생확률에 기반하여 레귤러 코딩부 또는 바이패스 코딩부 중 하나가 선택될 수 있으며 이는 부/복호화 설정에 따라 결정될 수 있다. 구문 요소가 0과 1의 빈도가 동일한 데이터라면 바이패스 코딩부를 사용할 수 있고, 그렇지 않을 경우에는 레귤러 코딩부를 사용할 수 있다.
상기 구문 요소에 대한 이진화를 수행할 때 다양한 방법이 사용될 수 있다. 예를 들어, 고정 길이 이진화(Fixed Length Binarization), 단항 이진화(Unary Binarization), Rice 이진화(Truncated Rice Binarization), K-th Exp-Golomb 이진화 등이 사용될 수 있다. 또한, 구문 요소가 갖는 값의 범위에 따라 부호가 있는 이진화 또는 부호가 없는 이진화가 수행될 수 있다. 본 발명에서 발생하는 구문 요소에 대한 이진화 과정은 상기 예에서 언급된 이진화뿐만 아니라 그 외 추가적인 이진화 방법을 포함하여 수행될 수 있다.
역양자화부 및 역변환부는 상기 변환부 및 양자화부에서의 과정을 역으로 수행하여 구현될 수 있다. 예를 들어, 역양자화부는 양자화부에서 생성된 양자화된 변환 계수를 역양자화할 수 있고, 역변환부는 역양자화된 변환 계수를 역변환하여 복원된 잔차 블록을 생성할 수 있다.
가산부는 예측 블록과 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 블록은 메모리에 저장되어 참조 데이터(예측부 및 필터부 등)로서 사용될 수 있다.
인루프 필터부는 디블록킹 필터, 화소 적응적 오프셋(Sample Adaptive Offset, SAO), 적응적 루프 필터(Adaptive Loop Filter, ALF) 등의 적어도 하나의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 영상에서 블록 간의 경계에 발생한 블록 왜곡을 제거할 수 있다. ALF는 복원된 영상과 입력 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 상세하게는, 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 입력 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. 또는, SAO를 통해 블록이 필터링된 후 복원된 영상과 입력 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 복원된 영상을 입력 영상과 비교한 값을 기초로 오프셋 차이를 복원하며, 밴드 오프셋(Band Offset, BO), 에지 오프셋(Edge Offset, EO) 등의 형태로 적용될 수 있다. 상세하게는, SAO는 디블록킹 필터가 적용된 복원 영상에 대하여, 적어도 하나의 화소 단위로 원본 영상과의 오프셋을 더해주며, BO, EO 등의 형태로 적용될 수 있다. 상세하게는, ALF를 통해 블록이 필터링된 후 복원된 영상에 대하여, 화소 단위로 원본 영상과의 오프셋을 더해주며, BO, EO 등의 형태로 적용될 수 있다.
필터링 관련 정보로 각 후처리 필터의 지원 여부에 대한 설정 정보가 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 생성될 수 있다. 또한, 각 후처리 필터의 수행 여부에 대한 설정 정보가 픽쳐, 슬라이스, 타일, 블록 등의 단위로 생성될 수 있다. 상기 필터의 수행이 적용되는 범위는 영상의 내부와 영상의 경계로 구분될 수 있으며 이를 고려한 설정 정보가 생성될 수 있다. 또한, 필터링 동작에 관련된 정보가 픽쳐, 슬라이스, 타일, 블록 등의 단위로 생성될 수 있다. 상기 정보는 묵시적이거나 명시적인 처리를 할 수 있으며, 상기 필터링은 컬러 성분에 따라 독립적인 필터링 과정 또는 의존적인 필터링 과정이 적용될 수 있으며, 이는 부호화 설정에 따라 결정될 수 있다. 인루프 필터부는 상기 필터링 관련 정보를 부호화부로 전달하여 이를 부호화하도록 할 수 있고, 그에 따른 정보를 비트스트림에 수록하여 이를 복호화기에 전송하고, 복호화기의 복호화부는 이에 대한 정보를 파싱하여 인루프 필터부에 적용할 수 있다.
메모리는 복원된 블록 또는 픽쳐를 저장할 수 있다. 메모리에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부에 제공될 수 있다. 상세하게는, 부호화기에서 압축된 비트스트림의 큐(Queue) 형태의 저장 공간을 부호화된 픽쳐 버퍼(Coded Picture Buffer, CPB)로 두어 처리할 수 있으며, 복호화된 영상을 픽쳐 단위로 저장하는 공간을 복호화된 픽쳐 버퍼(Decoded Picture Buffer, DPB)로 두어 처리할 수 있다. CPB의 경우 복호화 단위들이 복호화 순서에 따라 저장되며 부호화기 내에서 복호화 동작을 에뮬레이션(Emulation)하며 에뮬레이션 과정에서 압축된 비트스트림을 저장할 수 있고, CPB로부터 출력된 비트스트림은 복호화 과정을 거쳐 복원되며 복원된 영상은 DPB로 저장되며 DPB에 저장된 픽쳐들은 이후 영상 부호화, 복호화 과정에서 참조될 수 있다.
복호화부는 상기 부호화부에서의 과정을 역으로 수행하여 구현될 수 있다. 예를 들어, 비트스트림으로부터 양자화 계수열, 변환 계수열, 또는 신호열을 수신하고 이를 복호화할 수 있고, 복호화 정보를 포함하는 복호화 데이터를 파싱하여 각 구성부로 전달할 수 있다.
다음은 본 발명의 일 실시예에 따른 영상 부/복호화 장치에 적용되는 영상 설정 과정에 대해 설명한다. 이는 부/복호화 수행하기 전 단계에 적용되는 예(영상 초기 설정)일 수 있으나, 일부의 과정은 그 외의 단계(예를 들어, 부/복호화 수행된 후 단계 또는 부/복호화 내부 단계 등)에서 적용될 수 있는 예일 수도 있다. 상기 영상 설정 과정은 멀티미디어 콘텐츠의 특성, 대역폭, 사용자 단말의 성능 및 접근성 등의 네트워크 및 사용자 환경을 고려하여 수행될 수 있다. 예를 들어, 부/복호화 설정에 따라 영상의 분할, 영상의 크기 조정, 영상의 재구성 등을 수행할 수 있다. 후술하는 영상 설정 과정은 직사각 형태의 영상을 중심으로 설명하지만, 이에 한정되지 않고 다각형 형태의 영상에도 적용 가능할 수 있다. 영상의 형태와 관계없이 동일한 영상 설정을 적용하거나 다른 영상 설정을 적용할 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 영상의 형태에 대한 정보(예를 들어, 직사각 형태 또는 비직사각 형태)를 확인한 후에 그에 따른 영상 설정에 대한 정보를 구성할 수 있다.
후술하는 예에서는 컬러 공간에 의존적인 설정을 두는 것을 가정하여 설명할 것이나 컬러 공간에 독립적인 설정을 두는 것 또한 가능하다. 또한, 후술하는 예에서 독립적인 설정의 경우 각 컬러 공간에서 독립적으로 부/복호화 설정을 두는 예를 포함할 수 있으며, 하나의 컬러 공간에 대해서 설명을 하더라도 다른 컬러 공간에 적용되는 예(예를 들어, 휘도 성분에서 M을 생성하면 색차 성분에서 N을 생성)를 포함하는 것을 가정하며 이를 유도할 수 있다. 또한, 의존적인 설정의 경우 컬러 포맷의 구성비(예를 들어, 4:4:4, 4:2:2, 4:2:0 등)에 따라 비례하는 설정을 두는 예(예를 들어, 4:2:0인 경우 휘도 성분에서 M이면 색차 성분에서 M/2)를 포함할 수 있으며, 특별한 설명이 없어도 각 컬러 공간에 적용되는 예를 포함하는 것을 가정하며 이를 유도할 수 있다. 이는 상기 예에만 한정되지 않으며 본 발명에 공통 적용되는 설명일 수 있다.
후술하는 예에서의 일부 구성은 공간 영역에서의 부호화, 주파수 영역에서의 부호화, 블록 기반의 부호화, 객체 기반의 부호화 등 다양한 부호화 기법에 적용될 수 있는 내용일 수 있다.
입력된 영상 그대로 부/복호화를 수행하는 것이 일반적일 수 있으나, 영상을 분할하여 부/복호화를 수행하는 경우도 발생할 수 있다. 예를 들어, 전송하는 과정에 패킷 손상 등으로 인한 피해를 막기 위한 목적으로 에러 강인성 등을 위해 분할을 수행할 수 있다. 또는, 영상의 특성, 종류 등에 따라 동일 영상 내에 다른 성질을 갖는 영역을 분류하고자 하는 목적으로 분할을 수행할 수 있다.
본 발명에서 영상 분할 과정은 분할 과정이 수행될 수 있고 그에 대한 역과정을 수행할 수 있다. 후술하는 예에서는 분할 과정을 중심으로 설명을 하지만, 분할 역과정에 대한 내용은 분할 과정에서 역으로 유도할 수 있다.
도 3은 영상을 압축하기 위하여 영상 정보를 계층별로 나눈 예시도이다.
3a는 영상의 시퀀스를 다수의 GOP로 구성한 예시도이다. 하나의 GOP에는 3b와 같이 I 픽쳐, P 픽쳐, B 픽쳐로 구성될 수 있다. 하나의 픽쳐는 3c와 같이 슬라이스, 타일 등으로 구성될 수 있다. 슬라이스, 타일 등은 3d와 같이 다수의 기본 부호화 단위로 구성되며, 기본 부호화 단위는 도 3e와 같이 적어도 하나의 하위 부호화 단위로 구성될 수 있다. 본 발명에서의 영상 설정 과정은 3b, 3c와 같이 픽쳐, 슬라이스, 타일 등의 단위에 적용되는 예를 기준으로 설명할 것이다.
도 4는 본 발명의 일 실시예에 따른 영상 분할의 여러 예시를 나타낸 개념도이다.
4a는 영상(예를 들어, 픽쳐)을 가로 방향과 세로 방향으로 일정한 길이 간격으로 분할한 개념도이다. 분할된 영역은 블록(Block)으로 지칭할 수 있으며, 각 블록은 픽쳐 분할부를 통해 획득되는 기본 부호화 단위(또는 최대 부호화 단위)일 수 있으며, 후술하는 분할 단위에서 적용되는 기본 단위일 수도 있다.
4b는 영상을 가로 방향과 세로 방향 중 적어도 한 방향으로 분할한 개념도이다. 분할된 영역(T0 ~ T3)은 타일(Tile)로 지칭할 수 있으며 각각의 영역은 다른 영역과 독립적이거나 의존적인 부/복호화를 수행할 수 있다.
4c는 영상을 연속하는 블록들의 묶음으로 분할한 개념도이다. 분할된 영역(S0, S1)은 슬라이스(Slice)로 지칭할 수 있으며, 각 영역은 다른 영역과 독립적이거나 의존적인 부/복호화를 수행하는 영역일 수 있다. 연속하는 블록들의 묶음은 스캔 순서에 따라 정의될 수 있으며, 일반적으로 래스터 스캔(Raster Scan) 순서를 따르나 이에 한정되지 않으며 부/복호화 설정에 따라 결정될 수 있다.
4d는 영상을 사용자 정의에 따른 임의의 설정으로 블록들의 묶음으로 분할한 개념도이다. 분할된 영역(A0 ~ A2)은 임의 분할 영역(Arbitrary Partition)으로 지칭할 수 있으며 각 영역은 다른 영역과 독립적이거나 의존적인 부/복호화를 수행하는 영역일 수 있다.
독립적인 부/복호화는 일부 단위(또는 영역)의 부/복호화를 수행할 때 다른 단위의 데이터를 참조할 수 없다는 것을 의미할 수 있다. 상세하게는, 일부 단위의 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가 서로 참조되지 않고 독립적으로 부호화되며, 복호화기에서도 일부 단위의 텍스쳐 복호화 및 엔트로피 복호화를 위해 다른 단위의 파싱 정보 및 복원 정보는 서로 참조되지 않을 수 있다. 이때, 다른 단위(또는 영역)의 데이터를 참조할 수 있는지 여부는 공간적인 영역(예를 들어 하나의 영상 내에서의 영역 상호간)에서 제한적일 수 있으나 부/복호화 설정에 따라 시간적인 영역(예를 들어 연속된 영상 또는 프레임 상호간)에서도 제한적인 설정을 둘 수 있다. 예를 들어, 현재 영상의 일부 단위와 다른 영상의 일부 단위가 연속성이 존재하거나 동일한 부호화 환경을 갖는 조건일 경우에는 참조 가능할 수 있고, 그렇지 않을 경우에는 참조가 제한될 수 있다.
또한, 의존적인 부/복호화는 일부 단위의 부/복호화를 수행할 때 다른 단위의 데이터를 참조할 수 있다는 것을 의미할 수 있다. 상세하게는, 일부 단위의 텍스쳐 부호화 및 엔트로피 부호화에서 이용되거나 생성되는 정보가 서로 참조되어 의존적으로 부호화되며, 복호화기에서도 마찬가지로 일부 단위의 텍스쳐 복호화 및 엔트로피 복호화를 위해 다른 단위의 파싱 정보 및 복원 정보는 서로 참조될 수 있다. 즉, 일반적인 부/복호화와 동일하거나 비슷한 설정일 수 있다. 이 경우 영상의 특성, 종류 등(예를 들어, 360도 영상)에 따라 영역(본 예에서 투영 포맷에 따라 생성되는 표면<Face> 등)을 식별하고자 하는 목적으로 분할된 경우일 수 있다.
상기 예에서의 일부 단위(슬라이스, 타일 등)에 독립적인 부/복호화 설정(예를 들어, 독립적 슬라이스 세그먼트)를 둘 수 있고, 일부 단위에 의존적인 부/복호화 설정(예를 들어, 종속적 슬라이스 세그먼트)를 둘 수 있으며, 본 발명에서는 독립적인 부/복호화 설정을 중심으로 설명한다.
4a와 같이 픽쳐 분할부를 통해 획득되는 기본 부호화 단위는 컬러 공간에 따라 기본 부호화 블록으로 나뉠 수 있으며 영상의 특성 및 해상도 등에 따라 크기 및 형태가 결정될 수 있다. 지원되는 블록의 크기 또는 형태는 가로, 세로의 길이가 2의 지수승(2n)으로 표현되는 N × N 정사각 형태(2nx2n. 256x256, 128x128, 64x64, 32x32, 16x16, 8x8, 등. n은 3~8 사이의 정수)이거나, M × N 직사각 형태(2mx2n)일 수 있다. 예를 들어, 해상도에 따라 8k UHD급 영상의 경우 128x128, 1080p HD급 영상의 경우 64x64, WVGA급 영상의 경우 16x16 등 크기로 입력 영상을 분할할 수 있고, 영상 종류에 따라 360도 영상의 경우 256x256의 크기로 입력 영상을 분할할 수 있다. 기본 부호화 단위는 하위 부호화 단위로 분할되어 부/복호화될 수 있으며, 기본 부호화 단위에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 비트스트림에 수록되어 전송될 수 있으며, 이는 복호화기에서 파싱하여 관련 정보를 복원할 수 있다.
본 발명의 일 실시예에 따른 영상 부호화 방법 및 복호화 방법에서 다음과 같은 영상 분할 단계를 포함할 수 있다. 이때, 영상 분할 과정은 영상 분할 지시 단계, 영상 분할 타입 식별 단계, 영상 분할 수행 단계를 포함할 수 있다. 또한, 영상 부호화 장치 및 복호화 장치는 영상 분할 지시 단계, 영상 분할 타입 식별 단계, 영상 분할 수행 단계를 구현하는 영상 분할 지시부, 영상 분할 타입 식별부, 영상 분할 수행부를 포함하도록 구성될 수 있다. 부호화의 경우 관련된 구문 요소를 생성할 수 있고, 복호화의 경우 관련된 구문 요소를 파싱할 수 있다.
4a의 각 블록 분할 과정에서, 상기 영상 분할 지시부는 생략 가능할 수 있고, 영상 분할 타입 식별부는 블록의 크기 및 형태에 관한 정보를 확인하는 과정일 수 있으며, 식별된 분할 타입 정보를 통해 영상 분할부에서 기본 부호화 단위로 분할을 수행할 수 있다.
블록의 경우 항상 분할이 수행되는 단위일 수 있는 반면, 다른 분할 단위(타일, 슬라이스 등)는 부/복호화 설정에 따라 분할 여부가 결정될 수 있다. 픽쳐 분할부는 블록 단위의 분할을 수행한 후에 다른 단위의 분할을 수행하는 것을 기본 설정으로 둘 수 있다. 이때, 픽쳐의 크기에 기반하여 블록 분할이 수행될 수 있다.
또한, 다른 단위(타일, 슬라이스 등)로 분할된 후에 블록 단위로 분할할 수도 있다. 즉, 분할 단위의 크기에 기반하여 블록 분할이 수행될 수 있다. 이는 부/복호화 설정에 따라 명시적 또는 묵시적인 처리를 통해 정해질 수 있다. 후술하는 예에서는 전자의 경우를 가정하고 블록 외의 단위를 중심으로 설명한다.
영상 분할 지시 단계에서는 영상 분할 수행 여부를 결정할 수 있다. 예를 들어, 영상 분할을 지시하는 신호(예를 들어, tiles_enabled_flag)가 확인될 경우 분할을 수행할 수 있고, 영상 분할을 지시하는 신호가 확인되지 않을 경우 분할을 수행하지 않거나 또는 다른 부/복호화 정보를 확인하여 분할을 수행할 수 있다.
상세하게는, 영상 분할을 지시하는 신호(예를 들어, tiles_enabled_flag)가 확인되고 해당 신호가 활성화된 경우(예를 들어, tiles_enabled_flag = 1) 복수의 단위로 분할을 수행할 수 있고, 해당 신호가 비활성화된 경우(예를 들어, tiles_enabled_flag = 0) 분할을 수행하지 않을 수 있다. 또는, 영상 분할을 지시하는 신호가 확인되지 않을 경우 분할을 수행하지 않거나 또는 적어도 하나의 단위로 분할을 수행하는 것을 의미할 수 있으며, 복수의 단위로 분할을 수행하는지 여부는 다른 신호(예를 들어, first_slice_segment_in_pic_flag)를 통해 확인할 수 있다.
정리하면, 영상 분할을 지시하는 신호가 제공되는 경우에 해당 신호는 복수의 단위로 분할할 지 여부를 나타내기 위한 신호이며, 상기 신호에 따라 해당 영상의 분할 여부를 확인할 수 있다. 예를 들어, tiles_enabled_flag는 영상 분할 여부를 나타내는 신호일 때 tiles_enabled_flag가 1일 경우에는 복수의 타일로 분할되는 것을 의미할 수 있고, 0일 경우에는 분할되지 않는 것을 의미할 수 있다.
정리하면, 영상 분할을 지시하는 신호가 제공되지 않는 경우에 분할을 수행하지 않거나 또는 해당 영상의 분할 여부는 다른 신호에 의해 분할 여부를 확인할 수 있다. 예를 들어, first_slice_segment_in_pic_flag는 영상 분할 여부를 나타내는 신호가 아니라 영상 내 첫 번째 슬라이스 세그먼트인지 여부를 나타내는 신호지만, 이를 통해 둘 이상 단위로의 분할 여부(예를 들어, 상기 플래그가 0일 경우에는 복수의 슬라이스로 분할되었다는 것을 의미)를 확인할 수 있다.
상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다. 예를 들어, 타일에서 영상 분할을 지시하는 신호가 제공되지 않을 수 있으며, 슬라이스에서 영상 분할을 지시하는 신호가 제공될 수 있다. 또는, 영상의 종류, 특성 등에 기반하여 영상 분할을 지시하는 신호가 제공될 수 있다.
영상 분할 타입 식별 단계에서는 영상 분할 타입을 식별할 수 있다. 영상 분할 타입은 분할을 수행하는 방법, 분할 정보 등에 의해 정의될 수 있다.
4b에서, 타일은 가로 방향과 세로 방향으로 분할하여 획득되는 단위로 정의할 수 있다. 상세하게는, 영상을 가로지르는 적어도 하나의 가로 또는 세로 분할선에 의해 구획되는 사각형 공간 안에 인접한 블록의 묶음으로 정의할 수 있다.
타일에 대한 분할 정보는 가로열과 세로열의 경계 위치 정보, 가로열과 세로열의 타일 개수 정보, 타일의 크기 정보 등을 포함할 수 있다. 타일의 개수 정보는 타일의 가로열의 개수(예를 들어, num_tile_columns)와 세로열의 개수(예를 들어, num_tile_rows)를 포함할 수 있으며, 이를 통해 (가로열의 개수 × 세로열의 개수)의 타일로 분할할 수 있다. 타일의 크기 정보는 타일 개수 정보에 기반하여 획득될 수 있는데 타일의 가로 또는 세로의 크기가 균등하거나 비균등할 수 있으며, 이는 기 설정된 규칙 하에 묵시적으로 결정되거나 또는 명시적으로 관련 정보(예를 들어, uniform_spacing_flag)를 생성할 수 있다. 또한, 타일의 크기 정보는 타일의 각 가로열과 세로열의 크기 정보(예를 들어, column_width_tile[i], row_height_tile[i])를 포함할 수 있거나 또는 각 타일의 가로와 세로 크기 정보를 포함할 수 있다. 또한, 상기 크기 정보는 타일 크기의 균등 여부(예를 들어, uniform_spacing_flag가 0이라 비균등 분할을 의미할 때)에 따라 추가적으로 생성될 수 있는 정보일 수도 있다.
4c에서, 슬라이스는 연속하는 블록의 묶음 단위로 정의할 수 있다. 상세하게는, 기 설정된 스캔 순서(본 예에서 래스터 스캔) 기준으로 연속하는 블록의 묶음으로 정의할 수 있다.
슬라이스에 대한 분할 정보는 슬라이스의 개수 정보, 슬라이스의 위치 정보(예를 들어, slice_segment_address) 등을 포함할 수 있다. 이때, 슬라이스의 위치 정보는 기 설정된(예를 들어, 슬라이스 내의 스캔 순서 상 첫 번째 순서) 블록의 위치 정보일 수 있으며, 이때 위치 정보는 블록의 스캔 순서 정보일 수 있다.
4d에서, 임의의 분할 영역은 다양한 분할 설정이 가능하다.
4d에서 분할 단위는 공간적으로 인접한 블록의 묶음으로 정의될 수 있으며, 이에 대한 분할 정보는 분할 단위의 크기, 형태, 위치 정보 등을 포함할 수 있다. 이는 임의의 분할 영역에 대한 일부 예이며, 도 5와 같이 다양한 분할 형태가 가능할 수 있다.
도 5는 본 발명의 일 실시예에 따른 영상 분할 방법의 다른 예시도이다.
5a, 5b의 경우 가로 또는 세로 방향에 적어도 하나의 블록 간격으로 영상을 복수의 영역으로 분할할 수 있으며, 분할은 블록 위치 정보에 기반하여 수행될 수 있다. 5a는 가로 방향으로 각 블록의 세로열 정보에 기반하여 분할이 수행된 예(A0, A1)를 나타내며, 5b는 가로, 세로 방향으로 각 블록의 가로열과 세로열 정보에 기반하여 분할이 수행된 예(B0 ~ B3)를 나타낸다. 이에 대한 분할 정보는 분할 단위 개수, 블록 간격 정보, 분할 방향 등을 포함할 수 있으며, 이를 기 설정된 규칙에 따라 묵시적으로 포함하는 경우 일부 분할 정보는 생성되지 않을 수 있다.
5c, 5d의 경우 스캔 순서 기준으로 연속하는 블록의 묶음으로 영상을 분할할 수 있다. 기존의 슬라이스의 래스터 스캔 순서 외의 추가적인 스캔 순서가 영상 분할에 적용될 수 있다. 5c는 시작 블록을 중심으로 시계 방향 또는 시계 반대 방향으로 스캔(Box-Out)이 진행되는 예(C0, C1)를 나타내며, 5d는 시작 블록을 중심으로 수직 방향으로 스캔(Vertical)이 진행되는 예(D0, D1)를 나타낸다. 이에 대한 분할 정보는 분할 단위 개수 정보, 분할 단위의 위치 정보(예를 들어, 분할 단위 내의 스캔 순서 상 첫 번째 순서), 스캔 순서에 대한 정보 등을 포함할 수 있으며, 이를 기 설정된 규칙에 따라 묵시적으로 포함하는 경우 일부 분할 정보는 생성되지 않을 수 있다.
5e의 경우 가로 방향과 세로 방향의 분할선으로 영상을 분할할 수 있다. 기존의 타일은 가로 또는 세로 분할선에 의해 분할을 수행하고 그에 따라 사각형 공간의 분할 형태를 가질 수 있지만, 분할선에 의해 영상을 가로지르는 분할이 불가능할 수 있다. 예를 들어, 영상의 일부 분할선에 따라 영상을 가로지르는 분할의 예(예를 들어, E1, E3, E4의 우 경계와 E5의 좌 경계를 이루는 분할선)가 가능할 수 있고, 영상의 일부 분할선에 따라 영상을 가로지르는 분할의 예(예를 들어, E2와 E3의 하 경계와 E4의 상 경계를 이루는 분할선)가 불가능할 수 있다. 또한, 블록 단위 기반으로 분할(예를 들어, 블록 분할이 우선 수행된 후 분할)을 수행할 수 있거나 또는 상기 가로 또는 세로 분할선 등에 의해 분할을 수행(예를 들어, 블록 분할과 상관없이 상기 분할선에 의해 분할)할 수 있으며, 이에 따라 각 분할 단위는 블록의 정수배로 구성되지 않을 수도 있다. 이에 기존의 타일과 다른 분할 정보가 생성될 수 있으며, 이에 대한 분할 정보는 분할 단위의 개수 정보, 분할 단위의 위치 정보, 분할 단위의 크기 정보 등을 포함할 수 있다. 예를 들어, 분할 단위의 위치 정보는 기 설정된 위치(예를 들어, 영상의 좌측 상단)를 기준으로 위치 정보(예를 들어, 화소 단위 또는 블록 단위로 측정)가 생성될 수 있으며, 분할 단위의 크기 정보는 각 분할 단위의 가로와 세로 크기 정보(예를 들어, 화소 단위 또는 블록 단위로 측정)를 생성할 수 있다.
상기 예와 같이 사용자 정의에 따른 임의의 설정을 갖는 분할은 새로운 분할 방법을 적용하여 수행될 수 있거나 또는 기존의 분할의 일부 구성이 변경 적용되어 수행될 수 있다. 즉, 기존의 분할 방법을 대체하거나 또는 추가되는 분할 형태로 지원될 수도 있고, 기존의 분할 방법(슬라이스, 타일 등)에서 일부 설정이 변경 적용된 형태(예를 들어, 다른 스캔 순서를 따르거나, 사각형 형태의 다른 분할 방법과 그에 따른 다른 분할 정보 생성, 의존적인 부/복호화 특성 등)로 지원될 수도 있다. 또한, 추가적인 분할 단위를 구성하는 설정(예를 들어, 스캔 순서에 따라 분할하거나 일정 간격 차이에 따라 분할하는 것 외의 설정)이 지원될 수 있고, 추가적인 분할 단위 형태(예를 들어, 사각형 형태의 공간으로 분할하는 것 외 삼각형 등 다각형 형태)가 지원될 수도 있다. 또한, 영상의 종류, 특성 등에 기반하여 영상 분할 방법이 지원될 수도 있다. 예를 들어, 영상의 종류, 특성 등에 따라 일부 분할 방법(예를 들어, 360도 영상의 표면)이 지원될 수 있고, 이에 기반하여 분할 정보가 생성될 수 있다.
영상 분할 수행 단계에서는 식별된 분할 타입 정보에 기반하여 영상을 분할할 수 있다. 즉, 상기 식별된 분할 타입에 기반하여 복수의 분할 단위로 분할을 수행할 수 있으며, 획득된 분할 단위 기반으로 부/복호화를 수행할 수 있다.
이때, 분할 타입에 따라 분할 단위에 부/복호화 설정을 갖는지 여부를 결정할 수 있다. 즉, 각 분할 단위의 부/복호화 과정에 필요한 설정 정보는 상위 단위(예를 들어, 픽쳐)에서 할당받을 수 있거나 또는 분할 단위의 독립적인 부/복호화 설정을 가질 수 있다.
일반적으로 슬라이스의 경우 분할 단위의 독립적인 부/복호화 설정(예를 들어, 슬라이스 헤더)을 가질 수 있으며, 타일의 경우 분할 단위의 독립적인 부/복호화 설정을 가질 수 없고 픽쳐의 부/복호화 설정(예를 들어, PPS)에 의존적인 설정을 가질 수 있다. 이때, 타일에 관련되어 생성되는 정보는 분할 정보일 수 있으며, 이는 픽쳐의 부/복호화 설정에 포함될 수 있다. 본 발명에서는 위와 같은 경우에만 한정되지 않으며 다른 변형의 예가 가능할 수 있다.
타일에 대한 부/복호화 설정 정보를 비디오, 시퀀스, 픽쳐 등의 단위로 생성할 수 있으며, 상위 단위에서 적어도 하나의 부/복호화 설정 정보를 생성하여 이 중 하나를 참조할 수 있다. 또는, 타일 단위로 독립적인 부/복호화 설정 정보(예를 들어, 타일 헤더)를 생성할 수 있다. 이는 타일 단위로 적어도 하나의 부/복호화 설정을 두어 부/복호화를 수행한다는 점에서 상위 단위에서 결정된 하나의 부/복호화 설정을 따르는 것과 차이점이 존재한다. 즉, 모든 타일에서 하나의 부/복호화 설정을 따를 수 있거나 또는 적어도 하나의 타일에서 다른 타일과 다른 부/복호화 설정을 따라 부/복호화를 수행할 수 있다.
상기 예를 통해 타일에서의 다양한 부/복호화 설정을 중심으로 설명하였으나, 이에 한정되지 않고 그 외의 분할 타입에도 비슷하거나 동일한 설정을 둘 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 상위 단위의 하나의 부/복호화 설정에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 상위 단위에서 각 분할 단위에 대한 독립적인 부/복호화 설정을 생성하고 그에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 상위 단위에서 복수의 부/복호화 설정 정보를 지원하며 각 분할 단위에서 참조하는 부/복호화 설정에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 상위 단위에서 분할 정보를 생성하고 해당 분할 단위에서 독립적인 부/복호화 설정을 생성하고 그에 따라 부/복호화를 수행할 수 있다.
일 예로, 일부 분할 타입에는 해당 분할 단위에서 분할 정보를 포함한 독립적인 부/복호화 설정을 생성하고 그에 따라 부/복호화를 수행할 수 있다.
부/복호화 설정 정보는 타일의 타입, 참조하는 픽쳐 리스트에 관한 정보, 양자화 파라미터 정보, 화면간 예측 설정 정보, 인루프 필터링 설정 정보, 인루프 필터링 컨트롤 정보, 스캔 순서, 부/복호화 수행 여부 등의 타일의 부/복호화에 필요한 정보를 포함할 수 있다. 부/복호화 설정 정보들은 명시적으로 관련 정보를 생성할 수 있거나 상위 단위에서 결정된 영상의 포맷, 특성 등에 따라 묵시적으로 부/복호화에 대한 설정이 결정될 수도 있다. 또한, 상기 설정으로 획득한 정보 기반으로 명시적으로 관련 정보를 생성할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 분할을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대한 분할 과정을 수행할 수 있다. 분할 정보(예를 들어, 영상 분할 정보, 분할 단위 설정 정보 등)를 사용하여 분할을 수행한 후 분할 단위로 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 분할 과정을 수행할 수 있다. 분할 정보(예를 들어, 영상 분할 정보, 분할 단위 설정 정보 등)를 사용하여 분할을 수행한 후 분할 단위로 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후에 메모리에 저장할 수 있고, 복수의 분할 단위를 하나로 병합하여 영상을 출력할 수 있다.
상기 예를 통해 영상의 분할 과정에 대해 설명하였다. 또한, 본 발명에서는 복수의 분할 과정이 수행될 수 있다.
예를 들어, 영상에 분할을 수행할 수 있고, 영상의 분할 단위에 분할을 수행할 수 있으며, 상기 분할은 동일한 분할 과정(예를 들어, 슬라이스/슬라이스, 타일/타일 등)이거나 다른 분할 과정(예를 들어, 슬라이스/타일, 타일/슬라이스, 타일/표면, 표면/타일, 슬라이스/표면, 표면/슬라이스 등)일 수 있다. 이때, 선행하는 분할 결과에 기반하여 후행하는 분할 과정이 수행될 수 있으며, 후행하는 분할 과정에서 발생하는 분할 정보는 선행하는 분할 결과에 기반하여 발생할 수 있다.
또한, 복수의 분할 과정(A)을 수행할 수 있고, 상기 분할 과정은 다른 분할 과정(예를 들어, 슬라이스/표면, 타일/표면 등)일 수 있다. 이때, 선행하는 분할 결과에 기반하여 후행하는 분할 과정이 수행될 수 있거나 또는 선행하는 분할 결과와 무관하게 독립적으로 분할 과정이 수행될 수 있으며, 후행하는 분할 과정에서 발생하는 분할 정보는 선행하는 분할 결과에 기반하여 발생하거나 또는 독립적으로 발생할 수 있다.
영상의 복수 분할 과정은 부/복호화 설정에 따라 정해질 수 있으며 상기 예에 한정되지 않고 다양한 변형의 예 또한 가능할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 즉, 하나의 단위에 수록될 수 있고, 복수의 단위에 중복되어 수록될 수 있다. 예를 들어, 일부 정보의 지원 여부에 대한 구문 요소 또는 활성화 여부에 대한 구문 요소 등이 일부 단위(예를 들어, 상위 단위)에서 생성될 수 있고, 일부 단위(예를 들어, 하위 단위)에서 상기 경우와 동일하거나 비슷한 정보가 생성될 수 있다. 즉, 상위 단위에서 관련 정보가 지원 및 설정된 경우에도 하위 단위에서의 개별적인 설정을 가질 수 있다. 이는 상기 예에만 한정되지 않으며 본 발명에서 공통 적용되는 설명일 수 있다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
한편, 입력된 영상 그대로 부/복호화를 수행하는 것이 일반적일 수 있으나, 영상 크기를 조정(확장 또는 축소. 해상도 조정)한 후 부/복호화를 수행하는 경우도 발생할 수 있다. 예를 들어, 공간적, 시간적, 화질적 확장성(Scalability)를 지원하기 위한 계층적 부호화 방식(Scalability Video Coding)에서 영상의 전체적인 확장, 축소와 같은 영상 크기 조정을 수행할 수 있다. 또는, 영상의 부분적인 확장, 축소와 같은 영상 크기 조정을 수행할 수도 있다. 영상 크기 조정은 다양한 예로 가능한데, 부호화 환경에 적응성을 위한 목적으로 수행될 수 있고, 부호화 통일성을 위한 목적으로 수행될 수 있고, 부호화 효율성을 위한 목적으로 수행될 수도 있으며, 화질 개선의 목적으로 수행될 수도 있고, 영상의 종류, 특성 등에 따라 수행될 수도 있다.
제1 예시로서, 영상의 특성, 종류 등에 따라 진행되는 과정(예를 들어, 계층적 부호화, 360도 영상 부호화 등)에서 크기 조정 과정이 수행될 수 있다.
제2 예시로서, 부/복호화 초기 단계에서 크기 조정 과정이 수행될 수 있다. 부/복호화를 수행하기 전에 크기 조정 과정이 수행될 수 있으며, 크기 조정되는 영상을 부/복호화할 수 있다.
제3 예시로서, 예측 단계(화면 내 예측 또는 화면 간 예측) 또는 예측 수행 전에 크기 조정 과정이 수행될 수 있다. 크기 조정 과정에서, 예측 단계에서의 영상 정보(예를 들어, 화면내 예측에 참조되는 화소 정보, 화면내 예측 모드 관련 정보, 화면간 예측에 사용되는 참조 영상 정보, 화면간 예측 모드 관련 정보 등)를 사용할 수 있다.
제4 예시로서, 필터링 단계 또는 필터링을 수행하는 전에 크기 조정 과정이 수행될 수 있다. 크기 조정 과정에서, 필터링 단계에서의 영상 정보(예를 들어, 디블록킹 필터에 적용되는 화소 정보, SAO에 적용되는 화소 정보, SAO 필터링 관련 정보, ALF에 적용되는 화소 정보, ALF 필터링 관련 정보 등)를 사용할 수 있다.
또한, 크기 조정 과정이 진행된 후 영상은 크기 조정 역과정을 거쳐 크기 조정 전 영상(영상의 크기 관점)으로 변경될 수 있거나 또는 변경되지 않을 수 있으며 이는 부/복호화 설정(예를 들어, 크기 조정이 수행되는 성격 등)에 따라 결정될 수 있다. 이때, 크기 조정 과정이 확장일 경우 크기 조정 역과정은 축소일 수 있고, 크기 조정 과정이 축소일 경우 크기 조정 역과정은 확장일 수 있다.
제1 내지 제4 예시에 따른 크기 조정 과정이 수행된 경우, 그 이후 단계에서 크기 조정 역과정을 수행하여 크기 조정 전 영상을 획득할 수 있다.
계층적 부호화 또는 제3 예시에 따른 크기 조정 과정이 수행된 경우(또는 화면 간 예측에서 참조 영상의 크기를 조정한 경우), 그 이후 단계에서 크기 조정 역과정을 수행하지 않을 수 있다.
본 발명의 일 실시예에서 영상 크기 조정 과정이 단독으로 수행되거나 그에 대한 역과정을 수행할 수 있으며, 후술하는 예에서는 크기 조정 과정을 중심으로 설명한다. 이때, 크기 조정 역과정은 크기 조정 과정의 반대 과정이므로, 중복 설명을 방지하기 위하여 크기 조정 역과정에 대한 설명은 생략될 수 있으나, 통상의 기술자가 문언적으로 기재된 것과 동일하게 인식할 수 있음이 명백하다.
도 6은 일반적인 영상의 크기 조정 방법에 대한 예시도이다.
6a를 참조하면, 초기 영상(또는 크기 조정 전 영상. P0. 굵은 실선)에서 일부 영역(P1)을 추가로 포함하여 확장된 영상(P0+P1)을 획득할 수 있다.
6b를 참조하면, 초기 영상(S0+S1)에서 일부 영역(S1)을 제외하여 축소된 영상(S0)을 획득할 수 있다.
6c를 참조하면, 초기 영상(T0+T2)에서 일부 영역(T1)를 추가로 포함하고 일부 영역(T2)를 제외하여 크기 조정된 영상(T0+T1)을 획득할 수 있다.
이하에서, 본 발명에서는 확장에 따른 크기 조정 과정, 축소에 따른 크기 조정 과정을 중심으로 설명할 것이나, 이에 한정되지 않고 6c와 같이 크기 확장과 축소가 혼합하여 적용되는 경우도 포함되는 것으로 이해되어야 한다.
도 7은 본 발명의 일 실시예에 따른 영상 크기 조정에 대한 예시도이다.
7a를 참조하면, 크기 조정 과정 중 영상의 확장 방법을 설명할 수 있고, 7b를 참조하면, 영상의 축소 방법을 설명할 수 있다.
7a에서 크기 조정 전 영상은 S0이고, 크기 조정 후 영상은 S1이며, 도 7b에서 크기 조정 전 영상은 T0이고, 크기 조정 후 영상은 T1이다.
7a와 같이 영상을 확장할 경우, 상, 하, 좌, 우 방향(ET, EL, EB, ER)으로 확장할 수 있고, 7b와 같이 영상을 축소할 경우, 상, 하, 좌, 우 방향(RT, RL, RB, RR)으로 축소할 수 있다.
영상 확장과 축소를 비교하면, 확장에서의 상, 하, 좌, 우 방향은 축소에서 각각 하, 상, 우, 좌 방향에 대응할 수 있으므로 이하에서는 영상 확장을 기준으로 설명하나, 영상 축소에 대한 설명이 포함되는 것으로 이해되어야 한다.
또한, 이하에서 상, 하, 좌, 우 방향으로의 영상 확장 또는 축소를 설명하지만, 좌상, 우상, 좌하, 우하 방향으로 크기 조정이 수행될 수 있는 것으로 이해되어야 한다.
이때, 우하 방향으로 확장을 수행할 경우 RC, BC 영역이 획득되는 반면 부/복호화 설정에 따라 BR 영역이 획득되는 경우가 가능하거나 가능하지 않을 수 있다. 즉, TL, TR, BL, BR 영역이 획득되는 경우가 가능하거나 가능하지 않을 수 있으나, 이하에서는 설명의 편의상 모서리 영역(TL, TR, BL, BR 영역)이 획득 가능한 것으로 설명한다.
본 발명의 일 실시예에 따른 영상의 크기 조정 과정은 적어도 하나의 방향으로 수행될 수 있다. 예를 들어, 모든 상, 하, 좌, 우 방향으로 수행될 수 있으며, 상, 하, 좌, 우 방향 중 둘 이상 선택된 방향(좌+우, 상+하, 상+좌, 상+우, 하+좌, 하+우, 상+좌+우, 하+좌+우, 상+하+좌, 상+하+우 등)으로 수행될 수 있고, 상, 하, 좌, 우 방향 중 하나의 방향만 수행될 수도 있다.
예를 들어, 영상의 중심을 기준으로 양 끝으로 대칭 확장 가능한 좌+우, 상+하, 좌상+우하, 좌하+우상 방향으로 크기 조정이 가능할 수 있고, 영상의 세로 대칭 확장 가능한 좌+우, 좌상+우상, 좌하+우하 방향으로 크기 조정이 가능할 수 있고, 영상의 가로 대칭 확장 가능한 상+하, 좌상+좌하, 우상+우하 방향으로 크기 조정이 가능할 수 있고 그 외의 크기 조정도 가능할 수 있다.
7a 및 7b에서, 크기 조정 전의 영상(S0, T0) 크기는 P_Width(폭) × P_Height(높이), 크기 조정 후의 영상 크기(S1, T1)는 P'_Width(폭) × P'_Height(높이)로 정의하였다. 여기서, 좌, 우, 상, 하 방향의 크기 조정값을 Var_L, Var_R, Var_T, Var_B(또는 총칭하여 Var_x로 지칭)로 정의하면, 크기 조정 후의 영상 크기는 (P_Width + Var_L + Var_R) × (P_Height + Var_T + Var_B)로 표현할 수 있다. 이때, 좌, 우, 상, 하 방향의 크기 조정값인 Var_L, Var_R, Var_T, Var_B는 영상 확장(도 7a)에서 Exp_L, Exp_R, Exp_T, Exp_B(본 예에서 Exp_x는 양수)일 수 있고, 영상 축소에서 -Rec_L, -Rec_R, -Rec_T, -Rec_B(Rec_L, Rec_R, Rec_T, Rec_B를 양수로 정의할 경우 영상 축소에 따라 음수로 표현)일 수 있다. 또한, 크기 조정 전 영상의 좌상, 우상, 좌하, 우하의 좌표는 (0,0), (P_Width-1,0), (0,P_Height-1), (P_Width-1,P_Height-1)이며, 크기 조정 후의 영상의 상기 좌표는 (0,0), (P'_Width-1,0), (0,P'_Height-1), (P'_Width-1,P'_Height-1)로 표현할 수 있다. 크기 조정으로 변경(또는 획득, 제거)되는 영역(본 예에서 TL ~ BR. i는 TL ~ BR을 구분하는 인덱스)의 크기는 M[i] × N[i]일 수 있으며, 이는 Var_X × Var_Y (본 예에서 X는 L 또는 R, Y는 T 또는 B라 가정)로 표현될 수 있다. M 과 N은 다양한 값을 가질 수 있으며, i와 무관하게 동일하거나 i에 따라 개별적인 설정을 가질 수 있다. 이에 대한 다양한 경우는 후술한다.
7a를 참조하면, S1은 S0에 여러 방향에 따른 확장을 통해 생성되는 TL ~ BR(좌상 ~ 우하)의 전체 또는 부분을 포함하여 구성할 수 있다. 7b를 참조하면, T1은 T0에 여러 방향에 따른 축소를 통해 제거되는 TL ~ BR의 전체 또는 부분을 제외하여 구성할 수 있다.
7a에서, 기존의 영상(S0)에 상, 하, 좌, 우 방향으로 확장을 수행할 경우 각 크기 조정 과정에 따라 획득되는 TC, BC, LC, RC 영역을 포함하여 영상을 구성할 수 있고, 추가적으로 TL, TR, BL, BR 영역을 포함할 수도 있다.
일 예로, 상(ET) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 TC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(EL 또는 ER)에 따라 TL 또는 TR 영역을 포함할 수 있다.
일 예로, 하(EB) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 BC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(EL 또는 ER)에 따라 BL 또는 BR 영역을 포함할 수 있다.
일 예로, 좌(EL) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 LC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(ET 또는 EB)에 따라 TL 또는 BL 영역을 포함할 수 있다.
일 예로, 우(ER) 방향으로 확장을 수행하는 경우 기존의 영상(S0)에 RC 영역을 포함하여 영상을 구성할 수 있고, 적어도 하나의 다른 방향의 확장(ET 또는 EB)에 따라 TR 또는 BR 영역을 포함할 수 있다.
본 발명의 일 실시예에 따르면, 크기 조정되는 영역(본 예에서 확장이라 가정)의 참조 가능성을 공간적 또는 시간적으로 제한할 수 있는 설정(예를 들어, spa_ref_enabled_flag 또는 tem_ref_enabled_flag)을 둘 수 있다.
즉, 부/복호화 설정에 따라 공간적 또는 시간적으로 크기 조정되는 영역의 데이터를 참조하거나(예를 들어, spa_ref_enabled_flag = 1 또는 tem_ref_enabled_flag = 1) 참조를 제한(예를 들어, spa_ref_enabled_flag = 0 또는 tem_ref_enabled_flag = 0)할 수 있다.
크기 조정 전 영상(S0, T1) 및, 크기 조정시에 추가 또는 삭제되는 영역(TC, BC, LC, RC, TL, TR, BL, BR 영역)의 부/복호화는 다음과 같이 수행될 수 있다.
예를 들어, 크기 조정 전 영상과 추가 또는 삭제 되는 영역의 부/복호화에서, 크기 조정 전 영상의 데이터 및, 추가 또는 삭제되는 영역의 데이터 (부/복호화가 완료된 데이터. 화소값 또는 예측 관련 정보 등)를 공간적 또는 시간적으로 서로 참조할 수 있다.
또는, 크기 조정 전 영상 및, 추가 또는 삭제되는 영역의 데이터를 공간적으로 참조할 수 있는 반면, 크기 조정 전 영상의 데이터를 시간적으로 참조할 수 있고, 추가 또는 삭제되는 영역의 데이터를 시간적으로 참조할 수 없다.
즉, 추가 또는 삭제되는 영역의 참조 가능성을 제한하는 설정을 둘 수 있다. 추가 또는 삭제되는 영역의 참조 가능성에 대한 설정 정보는 명시적으로 생성하거나 묵시적으로 결정할 수 있다.
본 발명의 일 실시예에 따른 영상 크기 조정 과정은 영상 크기 조정 지시 단계, 영상 크기 조정 타입 식별 단계 및/또는 영상 크기 조정 수행 단계를 포함할 수 있다. 또한, 영상 부호화 장치 및 복호화 장치는 영상 크기 조정 지시 단계, 영상 크기 조정 타입 식별 단계, 영상 크기 조정 수행 단계를 구현하는 영상 크기 조정 지시부, 영상 크기 조정 타입 식별부, 영상 크기 조정 수행부를 포함할 수 있다. 부호화의 경우 관련된 구문 요소를 생성할 수 있고, 복호화의 경우 관련된 구문 요소를 파싱할 수 있다.
영상 크기 조정 지시 단계에서는 영상 크기 조정 수행 여부를 결정할 수 있다. 예를 들어, 영상 크기 조정을 지시하는 신호(예를 들어, img_resizing_enabled_flag)가 확인될 경우 크기 조정을 수행할 수 있고, 영상 크기 조정을 지시하는 신호가 확인되지 않을 경우 크기 조정을 수행하지 않거나 또는 다른 부/복호화 정보를 확인하여 크기 조정을 수행할 수 있다. 또한, 영상 크기 조정을 지시하는 신호가 제공되지 않더라도 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 크기 조정을 지시하는 신호가 묵시적으로 활성화될 수 있고 비활성화될 수도 있으며, 크기 조정을 수행할 경우 그에 따른 크기 조정 관련 정보를 생성할 수 있고 또는 크기 조정 관련 정보가 묵시적으로 결정될 수도 있다.
영상 크기 조정을 지시하는 신호가 제공되는 경우에 해당 신호는 영상의 크기 조정을 할지 여부를 나타내기 위한 신호이며, 상기 신호에 따라 해당 영상의 크기 조정 여부를 확인할 수 있다.
예를 들어, 영상 크기 조정을 지시하는 신호(예를 들어, img_resizing_enabled_flag)가 확인되고 해당 신호가 활성화된 경우(예를 들어, img_resizing_enabled_flag = 1) 영상 크기 조정을 수행할 수 있고, 해당 신호가 비활성화된 경우(예를 들어, img_resizing_enabled_flag = 0) 영상 크기 조정을 수행하지 않는 것을 의미할 수 있다.
또한, 영상 크기 조정을 지시하는 신호가 제공되지 않는 경우에 크기 조정을 수행하지 않거나 또는 해당 영상의 크기 조정 여부는 다른 신호에 의해 크기 조정 여부를 확인할 수 있다.
예를 들어, 입력 영상을 블록 단위로 분할을 수행할 경우 영상의 크기(예를 들어, 가로 또는 세로 길이)가 블록의 크기(예를 들어, 가로 또는 세로 길이)의 정수배인지 여부에 따라 크기 조정(본 예에서 확장의 경우. 정수배가 아닐 때 크기 조정 과정을 수행하는 가정)을 수행할 수 있다. 즉, 영상의 가로 길이가 블록의 가로 길이의 정수배가 아닌 경우 또는 영상의 세로 길이가 블록의 세로 길이의 정수배가 아닌 경우에 크기 조정을 수행할 수 있다. 이때, 크기 조정 정보(예를 들어, 크기 조정 방향, 크기 조정값 등)는 상기 부/복호화 정보(예를 들어, 영상의 크기, 블록의 크기 등)에 따라 결정될 수 있다. 또는, 영상의 특성, 종류(예를 들어, 360도 영상) 등에 따라 크기 조정을 수행할 수 있으며 크기 조정 정보는 명시적으로 생성하거나 기 설정된 값으로 할당할 수 있다. 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
영상 크기 조정 타입 식별 단계에서는 영상 크기 조정 타입을 식별할 수 있다. 영상 크기 조정 타입은 크기 조정을 수행하는 방법, 크기 조정 정보 등에 의해 정의될 수 있다. 예를 들어, 스케일 팩터(Scale Factor)를 통한 크기 조정, 오프셋 팩터(Offset Factor)를 통한 크기 조정 등을 수행할 수 있다. 이에 한정되지 않고 상기 방식의 혼합 적용되는 경우 또한 가능할 수 있다. 설명의 편의를 위해 스케일 팩터와 오프셋 팩터를 통한 크기 조정을 중심으로 설명할 것이다.
스케일 팩터의 경우 영상의 크기에 기반하여 곱해지거나 나눠지는 방식으로 크기 조정을 수행할 수 있다. 크기 조정의 동작(예를 들어, 확장 또는 축소)에 대한 정보는 명시적으로 생성될 수 있으며, 해당 정보에 따라 확장 또는 축소 과정을 진행할 수 있다. 또한, 부/복호화 설정에 따라 기 설정된 동작(예를 들어, 확장 또는 축소 중 하나)으로 크기 조정 과정을 진행할 수 있으며, 이 경우에는 크기 조정 동작에 대한 정보는 생략될 수 있다. 예를 들어, 영상 크기 조정 지시 단계에서 영상 크기 조정이 활성화된 경우, 영상의 크기 조정은 기 설정된 동작으로 수행될 수 있다.
크기 조정 방향은 상, 하, 좌, 우 방향 중에서 선택된 적어도 하나 이상의 방향일 수 있다. 상기 크기 조정 방향에 따라 적어도 하나의 스케일 팩터가 필요할 수 있다. 즉, 각 방향에 하나의 스케일 팩터(본 예에서, 단방향)가 필요할 수 있고, 가로 또는 세로 방향에 따라 하나의 스케일 팩터(본 예에서, 양방향)가 필요할 수 있고, 영상의 전체 방향에 따라 하나의 스케일 팩터(본 예에서, 전방향)가 필요할 수 있다. 또한, 크기 조정 방향은 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
스케일 팩터는 양의 값을 가질 수 있으며, 부/복호화 설정에 따라 범위 정보를 달리 둘 수 있다. 예를 들어, 크기 조정 동작과 스케일 팩터를 혼합하여 정보를 생성할 경우, 스케일 팩터는 곱해지는 값으로 사용될 수 있다. 0보다 크거나 1보다 작은 경우에는 축소 동작을 의미할 수 있으며, 1보다 큰 경우에는 확장 동작을 의미할 수 있고, 1일 경우에는 크기 조정을 수행하지 않는 것을 의미할 수 있다. 다른 예로, 크기 조정 동작과 별도로 스케일 팩터 정보를 생성할 경우, 확장 동작의 경우 스케일 팩터는 곱해지는 값으로 사용될 수 있고 축소 동작의 경우 스케일 팩터는 나눠지는 값으로 사용될 수 있다.
도 7의 7a 및 7b를 다시 참조하여, 스케일 팩터를 이용하여 크기 조정 전의 영상(S0, T0)에서 크기 조정 후의 영상(본 예에서 S1, T1)으로 변경하는 과정을 설명할 수 있다.
일 예로, 영상의 전체 방향에 따라 하나의 스케일 팩터(sc로 지칭)를 사용하고 크기 조정 방향은 하+우 방향인 경우, 크기 조정 방향은 ER, EB(또는 RR, RB)이며, 크기 조정값인 Var_L(Exp_L 또는 Rec_L) 및 Var_T(Exp_T 또는 Rec_T)는 0이고, Var_R(Exp_R 또는 Rec_R) 및 Var_B(Exp_B 또는 Rec_B)는 P_Width×(sc - 1), P_Height×(sc - 1)으로 표현할 수 있다. 따라서, 크기 조정 후의 영상은 (P_Width×sc) × (P_Height×sc)가 될 수 있다.
일 예로, 영상의 가로 또는 세로 방향에 따라 각각의 스케일 팩터(본 예에서 sc_w, sc_h)를 사용하고 크기 조정 방향은 좌+우, 상+하 방향(둘이 동작하면 상+하+좌+우)인 경우, 크기 조정 방향은 ET, EB, EL, ER 이고, 크기 조정값인 Var_T 및 Var_B는 P_Height×(sc_h - 1)/2 이며, Var_L 및 Var_R은 P_Width×(sc_w - 1)/2 일 수 있다. 따라서, 크기 조정 후의 영상은 (P_Width×sc_w) × (P_Height×sc_h)가 될 수 있다.
오프셋 팩터의 경우 영상의 크기에 기반하여 가산하거나 감산하는 방식으로 크기 조정을 수행할 수 있다. 또는, 영상의 부/복호화 정보에 기반하여 가산하거나 감산하는 방식으로 크기 조정을 수행할 수 있다. 또는, 독립적으로 가산하거나 감산하는 방식으로 크기 조정을 수행할 수 있다. 즉, 크기 조정 과정은 의존적 또는 독립적인 설정이 가능할 수 있다.
크기 조정 동작(예를 들어, 확장 또는 축소)에 대한 정보는 명시적으로 생성될 수 있으며, 해당 정보에 따라 확장 또는 축소 과정을 진행할 수 있다. 또한, 부/복호화 설정에 따라 기 설정된 동작(예를 들어, 확장 또는 축소 중 하나)으로 크기 조정 동작을 수행할 수 있으며, 이 경우 크기 조정 동작에 대한 정보는 생략될 수 있다. 예를 들어, 영상 크기 조정 지시 단계에서 영상 크기 조정이 활성화된 경우, 영상의 크기 조정은 기 설정된 동작으로 수행될 수 있다.
크기 조정 방향은 상, 하, 좌, 우 방향 중 적어도 하나의 방향일 수 있다. 상기 크기 조정 방향에 따라 적어도 하나의 오프셋 팩터가 필요할 수 있다. 즉, 각 방향에 하나의 오프셋 팩터(본 예에서, 단방향)가 필요할 수 있고, 가로 또는 세로 방향에 따라 하나의 오프셋 팩터(본 예에서, 대칭적 양방향)가 필요할 수 있고, 각 방향의 부분적인 조합에 따라 하나의 오프셋 팩터(본 예에서, 비대칭적 양방향)가 필요할 수 있고, 영상의 전체 방향에 따라 하나의 오프셋 팩터(본 예에서, 전방향)가 필요할 수 있다. 또한, 크기 조정 방향은 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
오프셋 팩터는 양의 값을 가질 수 있거나 또는 양과 음의 값을 가질 수 있으며, 부/복호화 설정에 따라 범위 정보를 달리 둘 수 있다. 예를 들어, 크기 조정 동작과 오프셋 팩터를 혼합하여 정보를 생성할 경우(본 예에서 양과 음의 값을 가진다고 가정), 오프셋 팩터는 오프셋 팩터의 부호 정보에 따라 가산하거나 감산하는 값으로 사용될 수 있다. 오프셋 팩터가 0보다 큰 경우에는 확장 동작을 의미할 수 있고, 0보다 작은 경우에는 축소 동작을 의미할 수 있으며, 0일 경우에는 크기 조정을 수행하지 않는 것을 의미할 수 있다. 다른 예로, 크기 조정 동작과 별도로 오프셋 팩터 정보를 생성할 경우(본 예에서 양의 값을 가진다고 가정), 오프셋 팩터는 크기 조정 동작에 따라 가산하거나 감산하는 값으로 사용될 수 있다. 0보다 큰 경우에는 크기 조정 동작에 따라 확장 또는 축소 동작을 수행할 수 있고 0일 경우에는 크기 조정을 수행하지 않는 것을 의미할 수 있다.
다시 도 7의 7a 및 도 7b를 참조하면, 오프셋 팩터를 이용하여 크기 조정 전의 영상(S0, T0)에서 크기 조정 후의 영상(S1, T1)으로 변경하는 방법을 설명할 수 있다.
일 예로, 영상의 전체 방향에 따라 하나의 오프셋 팩터(os로 지칭)를 사용하고 크기 조정 방향은 상+하+좌+우 방향인 경우, 크기 조정 방향은 ET, EB, EL, ER(또는 RT, RB, RL, RR) 이고, 크기 조정값인 Var_T, Var_B, Var_L, Var_R은 os 일 수 있다. 크기 조정 후의 영상 크기는 (P_Width+os)×(P_Height+os)가 될 수 있다.
일 예로, 영상의 가로 또는 세로 방향에 따라 각각의 오프셋 팩터(os_w, os_h)를 사용하고 크기 조정 방향은 좌+우, 상+하 방향(둘이 동작하면 상+하+좌+우)인 경우, 크기 조정 방향은 ET, EB, EL, ER(또는 RT, RB, RL, RR) 이고, 크기 조정값인 Var_T, Var_B는 os_h 이며, Var_L, Var_R은 os_w 일 수 있다. 크기 조정 후 영상 크기는 {P_Width+(os_w×2)}×{P_Height+(os_h×2)}가 될 수 있다.
일 예로, 크기 조정 방향이 하, 우 방향(함께 동작하면 하+우)이고, 크기 조정 방향에 따라 각각의 오프셋 팩터(os_b, os_r)를 사용한 경우, 크기 조정 방향은 EB, ER(또는 RB, RR) 이고, 크기 조정값인 Var_B는 os_b 이며, Var_R은 os_r 일 수 있다. 크기 조정 후 영상 크기는 (P_Width + os_r) × (P_Height + os_b)가 될 수 있다.
일 예로, 영상의 각 방향에 따라 각각의 오프셋 팩터(os_t, os_b, os_l, os_r)를 사용하고 크기 조정 방향은 상, 하, 좌, 우 방향(모두 동작하면 상+하+좌+우)인 경우, 크기 조정 방향은 ET, EB, EL, ER(또는 RT, RB, RL, RR) 이고, 크기 조정값인 Var_T은 os_t, Var_B는 os_b, Var_L은 os_l, Var_R은 os_r 일 수 있다. 크기 조정 후 영상 크기는 (P_Width + os_l + os_r) × (P_Height + os_t + os_b)가 될 수 있다.
상기 예는 오프셋 팩터가 크기 조정 과정에 크기 조정값(Var_T, Var_B, Var_L, Var_R)으로 사용되는 경우를 나타낸다. 즉, 오프셋 팩터는 크기 조정값으로 그대로 사용되는 경우를 의미하며, 이는 독립적으로 수행되는 크기 조정의 일 예일 수 있다. 또는, 오프셋 팩터가 크기 조정값의 입력 변수로 사용될 수도 있다. 상세하게는, 오프셋 팩터를 입력 변수로 할당하고 부/복호화 설정에 따라 일련의 과정을 거쳐 크기 조정값을 획득할 수 있으며, 이는 기 설정된 정보(예를 들어, 영상의 크기, 부/복호화 정보 등)에 기반하여 수행되는 크기 조정의 일 예 또는 의존적으로 수행되는 크기 조정의 일 예일 수 있다.
예를 들어, 오프셋 팩터는 기 설정된 값(본 예에서 정수)의 배수(예를 들어, 1, 2, 4, 6, 8, 16 등) 또는 지수(예를 들어, 1, 2, 4, 8, 16, 32, 64, 128, 256 등과 같이 2의 지수승)일 수 있다. 또는, 부/복호화 설정에 기반하여 획득되는 값(예를 들면, 화면간 예측의 움직임 탐색 범위에 기반하여 설정되는 값)의 배수 또는 지수일 수 있다. 또는, 픽쳐 분할부로부터 획득되는 단위(본 예에서 A×B라고 가정)의 배수 또는 지수일 수 있다. 또는, 픽쳐 분할부로부터 획득되는 단위(본 예에서 타일과 같은 경우라 E×F라고 가정)의 배수일 수 있다.
또는, 픽쳐 분할부로부터 획득되는 단위의 가로, 세로보다 작거나 같은 범위의 값일 수 있다. 상기 예의 배수 또는 지수는 값이 1인 경우 또한 포함할 수 있으며, 상기 예에 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다. 예를 들어, 오프셋 팩터가 n일 경우, Var_x는 2 × n이거나 또는 2n일 수 있다.
또한, 컬러 성분에 따라 개별적인 오프셋 팩터를 지원할 수 있고, 일부 컬러 성분에 대한 오프셋 팩터를 지원하여 다른 컬러 성분에 대한 오프셋 팩터 정보를 유도할 수 있다. 예를 들어, 휘도 성분(본 예에서 휘도 성분과 색차 성분의 구성비가 2:1이라 가정)에 대한 오프셋 팩터(A)가 명시적으로 생성될 경우 색차 성분에 대한 오프셋 팩터(A/2)는 묵시적으로 획득될 수 있다. 또는, 색차 성분에 대한 오프셋 팩터(A)가 명시적으로 생성될 경우 휘도 성분에 대한 오프셋 팩터(2A)는 묵시적으로 획득될 수 있다.
크기 조정 방향과 크기 조정값에 대한 정보는 명시적으로 생성될 수 있으며, 해당 정보에 따라 크기 조정 과정을 수행할 수 있다. 또한, 부/복호화 설정에 따라 묵시적으로 정해질 수 있으며 이에 따라 크기 조정 과정을 수행할 수 있다. 적어도 하나의 기 설정된 방향 또는 조정값을 할당할 수 있으며, 이 경우 관련 정보는 생략될 수 있다. 이때, 부/복호화 설정은 영상의 특성, 종류, 부호화 정보 등에 기반하여 정해질 수 있다. 예를 들어, 적어도 하나의 크기 조정 동작에 따른 적어도 하나의 크기 조정 방향이 미리 결정될 수 있고, 적어도 하나의 크기 조정 동작에 따른 적어도 하나의 크기 조정값이 미리 결정될 수 있고, 적어도 하나의 크기 조정 방향에 따른 적어도 하나의 크기 조정값이 미리 결정될 수 있다. 또한, 크기 조정 역과정에서의 크기 조정 방향과 크기 조정값 등은 크기 조정 과정에서 적용되는 크기 조정 방향과 크기 조정값 등으로부터 유도할 수 있다. 이때, 묵시적으로 결정되는 크기 조정값은 전술한 예(다양하게 크기 조정값이 획득되는 예)의 하나일 수 있다.
또한, 상기 예에서 곱하거나 나눠지는 경우에 대한 설명을 하였지만, 부/복호화기의 구현에 따라 쉬프트 연산(Shift Operation)으로 구현될 수 있다. 곱하는 경우는 왼쪽 쉬프트 연산을, 나누는 경우는 오른쪽 쉬프트 연산을 통해 구현될 수 있다. 이는 상기 예에만 한정되지 않으며 본 발명에서 공통 적용되는 설명일 수 있다.
영상 크기 조정 수행 단계에서는 식별된 크기 조정 정보에 기반하여 영상 크기 조정을 수행할 수 있다. 즉, 크기 조정 타입, 크기 조정 동작, 크기 조정 방향, 크기 조정값 등의 정보에 기반하여 영상의 크기 조정을 수행할 수 있고, 획득된 크기 조정 후 영상을 기반으로 부/복호화를 수행할 수 있다.
또한, 영상 크기 조정 수행 단계에서는 적어도 하나의 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다. 상세하게는, 크기 조정 타입과 크기 조정 동작에 따라 크기 조정되는 영역에 적어도 하나의 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다. 예를 들어, 크기 조정 타입에 따라 크기 조정이 확장인 경우에 데이터를 어떻게 채울지를 결정할 수 있거나 또는 크기 조정 과정이 축소인 경우에 데이터를 어떻게 제거할 수 있는지를 결정할 수 있다.
정리하면, 영상 크기 조정 수행 단계에서 식별된 크기 조정 정보에 기반하여 영상 크기 조정을 수행할 수 있다. 또는, 영상 크기 조정 수행 단계에서 상기 크기 조정 정보와 데이터 처리 방법에 기반하여 영상 크기 조정을 수행할 수 있다. 상기 두 경우의 차이는 부/복호화를 수행하는 영상의 크기만 조정하는 것에 있거나, 영상의 크기와 크기 조정되는 영역의 데이터 처리까지 고려하는 것일 수 있다. 영상 크기 조정 수행 단계에서 데이터 처리 방법을 포함하여 수행할 지 여부는 크기 조정 과정의 적용 단계, 위치 등에 따라 결정될 수 있다. 후술하는 예에서는 데이터 처리 방법에 기반하여 크기 조정을 수행하는 예를 중심으로 설명할 것이나 이에 한정되지 않는다.
오프셋 팩터를 통한 크기 조정을 수행할 때, 확장 및 축소의 경우 다양한 방법을 사용하여 크기 조정을 진행할 수 있다. 확장의 경우 적어도 하나의 데이터 채우는 방법을 사용하여 크기 조정을 수행할 수 있고, 축소의 경우 적어도 하나의 데이터 제거하는 방법을 사용하여 크기 조정을 수행할 수 있다. 이때, 오프셋 팩터를 통한 크기 조정의 경우 크기 조정 영역(확장)에 새로운 데이터 또는 기존 영상의 데이터가 직접 또는 변형되어 채워질 수 있고, 크기 조정 영역(축소)에 단순 제거 또는 일련의 과정을 통한 제거 등이 적용되어 제거될 수 있다.
스케일 팩터를 통한 크기 조정을 수행할 때, 일부의 경우(예를 들어, 계층적 부호화 등)에 확장은 업샘플링을 적용하여 크기 조정을 수행할 수 있고, 축소는 다운샘플링을 적용하여 크기 조정을 수행할 수 있다. 예를 들어, 확장의 경우 적어도 하나의 업샘플링 필터를 사용할 수 있고, 축소의 경우 적어도 하나의 다운샘플링 필터를 사용할 수 있으며, 수평, 수직에 적용되는 필터가 같을 수 있고, 수평, 수직에 적용되는 필터가 다를 수 있다. 이때, 스케일 팩터를 통한 크기 조정의 경우 크기 조정 영역에 새로운 데이터가 생성되거나 제거되는 것이 아닌 기존 영상의 데이터를 보간 등의 방법을 사용하여 재배치하는 것일 수 있으며, 크기 조정 수행과 관련한 데이터 처리 방법은 상기 샘플링에 사용되는 필터로 구분될 수 있다. 또한, 일부의 경우(예를 들어, 오프셋 팩터와 비슷한 경우)에 확장은 적어도 하나의 데이터 채우는 방법을 사용하여 크기 조정을 수행할 수 있고, 축소는 적어도 하나의 데이터 제거하는 방법을 사용하여 크기 조정을 수행할 수 있다. 본 발명에서는 오프셋 팩터를 통한 크기 조정을 수행할 경우의 데이터 처리 방법을 중심으로 설명할 것이다.
일반적으로 크기 조정되는 영역에 기 설정된 하나의 데이터 처리 방법을 사용할 수 있으나 후술하는 예와 같이 크기 조정되는 영역에 적어도 하나의 데이터 처리 방법을 사용할 수도 있으며, 데이터 처리 방법에 대한 선택 정보를 생성할 수 있다. 전자의 경우 고정적인 데이터 처리 방법, 후자의 경우 적응적인 데이터 처리 방법을 통해 크기 조정을 수행하는 것을 의미할 수 있다.
또한, 크기 조정시 추가 또는 삭제되는 영역(도 7a 및 도 7b의 TL, TC, TR, …, BR) 전체에 공통되는 데이터 처리 방법을 적용하거나 크기 조정시 추가 또는 삭제되는 영역의 일부 단위(예를 들어, 도 7a 및 도 7b의 TL ~ BR 각각이나 그 일부의 조합)로 데이터 처리 방법을 적용할 수도 있다.
도 8은 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 확장되는 영역을 구성하는 방법에 대한 예시도이다.
8a를 참조하면, 영상은 설명의 편의상 TL, TC, TR, LC, C, RC, BL, BC, BR 영역으로 구분할 수 있으며, 각각 영상의 좌상, 상, 우상, 좌, 중앙, 우, 좌하, 하, 우하 위치에 대응될 수 있다. 이하에서, 하+우 방향으로 영상이 확장되는 경우에 대하여 설명하지만 다른 방향에도 동일하게 적용될 수 있는 것으로 이해되어야 한다.
영상의 확장에 따라 추가되는 영역은 다양한 방법으로 구성할 수 있는데, 예를 들면, 임의의 값으로 채우거나 영상의 일부 데이터를 참조하여 채울 수 있다.
8b를 참조하면, 임의의 화소값으로 확장되는 영역(A0, A2)을 채울 수 있다. 임의의 화소값은 다양한 방법을 사용하여 정할 수 있다.
일 예로, 임의의 화소값은 비트 심도로 표현될 수 있는 화소값 범위{예를 들어, 0부터 1 << (bit_depth) -1까지}에 속하는 하나의 화소일 수 있다. 예를 들어, 상기 화소값 범위의 최소값, 최대값, 중앙값{예를 들어, 1 << (bit_depth - 1) 등} 등일 수 있다(여기서, bit_depth는 비트 심도).
일 예로, 임의의 화소값은 영상에 속하는 화소들의 화소값 범위{예를 들어, minP부터 maxP까지. minP, maxP는 영상에 속하는 화소 중 최소값, 최대값. minP는 0보다 크거나 같고 maxP는 1 << (bit_depth) - 1보다 작거나 같음}에 속하는 하나의 화소일 수 있다. 예를 들어, 임의의 화소값은 상기 화소값 범위의 최소값, 최대값, 중앙값, (적어도 두 화소의) 평균, 가중치 합 등일 수 있다.
일 예로, 임의의 화소값은 영상에 속하는 일부 영역에 속하는 화소값 범위에서 결정된 값일 수 있다. 예를 들어, A0를 구성할 경우 일부 영역은 TR+RC+BR이 될 수 있다. 또한, 일부 영역은 TR, RC, BR의 3 × 9를 해당하는 영역으로 둘 수 있거나 1 × 9<가장 오른쪽 라인이라 가정>를 해당하는 영역으로 둘 수도 있으며 이는 부/복호화 설정에 따를 수 있다. 이때, 일부 영역은 픽쳐 분할부로부터 분할되는 단위일 수도 있다. 구체적으로, 임의의 화소값은 상기 화소값 범위의 최소값, 최대값, 중앙값, (적어도 두 화소의) 평균, 가중치 합 등일 수 있다.
8b를 다시 참조하면, 영상 확장에 따라 추가되는 영역 A1는 복수의 화소값을 사용하여 생성되는 패턴 정보(예를 들어, 복수의 화소를 사용하는 것을 패턴이라 가정. 꼭 일정 규칙을 따른 필요는 없음)를 사용하여 채울 수 있다. 이때, 패턴 정보는 부/복호화 설정에 따라 정의될 수 있거나 관련 정보를 생성할 수 있으며, 적어도 하나의 패턴 정보를 사용하여 확장되는 영역을 채울 수 있다.
8c를 참조하면, 영상 확장에 따라 추가되는 영역은 영상에 속하는 일부 영역의 화소를 참조하여 구성할 수 있다. 상세하게는, 추가되는 영역에 인접한 영역의 화소(이하, 참조 화소)를 복사 또는 패딩함으로써 추가되는 영역을 구성할 수 있다. 이때, 추가되는 영역과 인접한 영역의 화소는 부호화 전의 화소이거나, 부호화(또는 복호화) 후의 화소일 수 있다. 예를 들어, 부호화 전 단계에서 크기 조정을 수행할 때 참조 화소는 입력 영상의 화소를 의미할 수 있으며, 화면내 예측 참조 화소 생성 단계, 참조 영상 생성 단계, 필터링 단계 등에서 크기 조정을 수행할 때의 참조 화소는 복원된 영상의 화소를 의미할 수 있다. 본 예에서는 추가되는 영역에 최인접한 화소를 사용하는 경우를 가정하지만, 이에 한정하지 않는다.
영상의 가로 크기 조정과 관련된 좌 또는 우 방향으로 확장되는 영역(A0)은 확장되는 영역(A0)과 인접한 외곽 화소를 수평 방향으로 패딩(Z0)하여 구성할 수 있고, 영상의 세로 크기 조정과 관련된 상 또는 하 방향으로 확장되는 영역(A1)은 확장되는 영역(A1)과 인접한 외곽 화소를 수직 방향으로 패딩(Z1)하여 구성할 수 있다. 또한, 우하방향으로 확장되는 영역(A2)은 확장되는 영역(A2)과 인접한 외곽 화소를 대각선 방향으로 패딩(Z2)하여 구성할 수 있다.
8d를 참조하면, 영상에 속하는 일부 영역의 데이터(B0 ~ B2)를 참조하여 확장되는 영역(B'0 ~ B'2)을 구성할 수 있다. 8d에서는 8c와 달리, 확장되는 영역과 인접하지 않은 영역을 참조할 수 있는 점에서 구별될 수 있다.
예를 들어, 영상 내에 확장되는 영역과 상관성이 높은 영역이 존재한다면, 상관성이 높은 영역의 화소를 참조하여 확장되는 영역을 채울 수 있다. 이때, 상관성이 높은 영역의 위치 정보, 영역 크기 정보 등을 생성할 수 있다. 또는, 영상의 특성, 종류 등의 부/복호화 정보를 통해 상관성이 높은 영역이 존재하며, 상관성이 높은 영역의 위치 정보, 크기 정보 등을 묵시적으로 확인(예를 들어, 360도 영상 등의 경우)할 수 있다면, 해당 영역의 데이터를 확장되는 영역에 채울 수 있다. 이때, 해당 영역의 위치 정보, 영역 크기 정보 등을 생략할 수 있다.
일 예로, 영상의 가로 크기 조정과 관련된 좌 또는 우 방향으로 확장되는 영역(B'2)의 경우, 가로 크기 조정과 관련된 좌 또는 우 방향 중 상기 확장되는 영역의 반대쪽 영역(B2)의 화소를 참조하여 확장되는 영역을 채울 수 있다.
일 예로, 영상의 세로 크기 조정과 관련된 상 또는 하 방향으로 확장되는 영역(B'1)의 경우, 세로 크기 조정과 관련된 상 또는 우 방향 중 상기 확장되는 영역의 반대쪽 영역(B1)의 화소를 참조하여 확장되는 영역을 채울 수 있다.
일 예로, 영상의 일부 크기 조정(본 예에서 영상 중심을 기준으로 대각선 방향)으로 확장되는 영역(B'0)의 경우, 상기 확장되는 영역의 반대쪽 영역(B0, TL)의 화소를 참조하여 확장되는 영역을 채울 수 있다.
상기 예에서 영상의 양 끝 경계에 연속성이 존재하여 크기 조정 방향과 대칭 위치에 있는 영역의 데이터를 획득하는 경우에 대한 설명을 하였지만, 이에 한정되지 않으며 다른 영역(TL ~ BR)의 데이터로부터 획득되는 경우 또한 가능할 수 있다.
확장되는 영역에 영상의 일부 영역의 데이터를 채울 때 해당 영역의 데이터를 그대로 복사하여 채울 수 있거나 또는 해당 영역의 데이터를 영상의 특성, 종류 등에 기반한 변환 과정을 수행한 후 채울 수 있다. 이때, 그대로 복사하는 경우에는 해당 영역의 화소값을 그대로 사용한다는 것을 의미할 수 있고, 변환 과정을 거치는 경우에는 해당 영역의 화소값을 그대로 사용하지 않는다는 것을 의미할 수 있다. 즉, 변환 과정을 통해 해당 영역의 적어도 하나의 화소값의 변화가 발생하여 확장되는 영역에 채워지거나 또는 일부 화소의 획득 위치가 적어도 하나가 다를 수 있다. 즉, 확장되는 영역인 A×B를 채우기 위해 해당 영역의 A×B의 데이터가 사용되는 것이 아닌 C×D의 데이터가 사용될 수 있다. 다시 말해, 채워지는 화소에 적용되는 움직임 벡터가 적어도 하나가 다를 수 있다. 상기 예는 360도 영상에서 투영 포맷에 따라 복수의 표면으로 구성된 경우, 다른 표면의 데이터를 사용하여 확장하는 영역에 채울 때 발생하는 예일 수 있다. 영상의 크기 조정으로 확장되는 영역을 채우는 데이터 처리 방법은 상기 예에 한정되지 않고 이를 개량 및 변경하거나 추가적인 데이터 처리 방법이 사용될 수 있다.
부/복호화 설정에 따라 복수의 데이터 처리 방법에 대한 후보군이 지원될 수 있으며, 복수의 후보군 중 데이터 처리 방법 선택 정보를 생성하여 비트스트림에 수록할 수 있다. 예를 들어, 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법 등에서 하나의 데이터 처리 방법을 선택할 수 있으며, 이에 대한 선택 정보를 생성할 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
예를 들어, 영상의 크기 조정으로 확장되는 전체 영역(본 예에서, 도 7a의 TL ~ BR)에 적용되는 데이터 처리 방법은 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 전체 영역에 적용되는 기 설정된 하나의 데이터 처리 방법이 정해질 수 있다.
또는, 영상의 크기 조정으로 확장되는 영역(본 예에서, 도 7의 7a에서의 TL ~ BR 각각의 영역이나 또는 그 중에서 둘 이상의 영역)에 적용되는 데이터 처리 방법은 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 적어도 하나의 영역에 적용되는 기 설정된 하나의 데이터 처리 방법이 정해질 수 있다.
도 9는 본 발명의 일 실시예에 따른 영상 크기 조정 방법에서, 영상 크기 축소에 따라 삭제되는 영역 및 생성되는 영역을 구성하는 방법에 대한 예시도이다.
영상 축소 과정에서 삭제되는 영역은, 단순히 제거되는 것뿐만 아니라 일련의 활용 과정을 거친 후에 제거될 수 있다.
9a를 참조하면, 영상 축소 과정에서 일부 영역(A0, A1, A2)을 추가적인 활용 과정 없이 단순 제거할 수 있다. 이때, 영상(A)은 세분화하여 도 8a와 마찬가지로 TL~BR와 같이 지칭될 수 있다.
9b를 참조하면, 일부 영역(A0 ~ A2)을 제거하되, 영상(A)의 부호화/복호화시 참조 정보로서 활용할 수 있다. 예를 들어, 축소되어 생성된 영상(A)의 일부 영역의 복원 과정 또는 보정 과정에 삭제되는 일부 영역(A0~A2)이 활용될 수 있다. 상기 복원 또는 보정 과정에는 두 영역(삭제되는 영역과 생성된 영역)의 가중치 합, 평균 등이 사용될 수 있다. 또한, 상기 복원 또는 보정 과정은 두 영역이 상관성이 높은 경우에 적용될 수 있는 과정일 수 있다.
일 예로, 영상의 가로 크기 조정과 관련된 좌 또는 우 방향으로 축소됨에 따라 삭제되는 영역(B'2)은, 가로 크기 조정과 관련된 좌 또는 우 방향 중 축소되는 영역의 반대쪽 영역(B2, LC)의 화소를 복원 또는 보정하는 데에 사용한 후 해당 영역을 메모리에서 제거할 수 있다.
일 예로, 영상의 세로 크기 조정과 관련된 상 또는 하 방향으로 삭제되는 영역(B'1)은, 세로 크기 조정과 관련된 상 또는 하 방향 중 상기 축소되는 영역의 반대쪽 영역(B1, TR)의 부/복호화 과정(복원 또는 보정 과정)에 사용한 후 해당 영역을 메모리에서 제거할 수 있다.
일 예로, 영상의 일부 크기 조정(본 예에서 영상 중심을 기준으로 대각선 방향)으로 축소되는 영역(B'0)은, 상기 축소되는 영역의 반대쪽 영역(B0, TL)의 부/복호화 과정(복원 또는 보정 과정 등)에 사용한 후 해당 영역을 메모리에서 제거할 수 있다.
상기 예에서 영상의 양 끝 경계에 연속성이 존재하여 크기 조정 방향과 대칭 위치에 있는 영역의 데이터 복원 또는 보정에 사용하는 경우에 대한 설명을 하였지만, 이에 한정되지 않으며 대칭 위치 이외의 다른 영역(TL ~ BR)의 데이터 복원 또는 보정에 사용한 후에 메모리에서 제거할 수도 있다.
본 발명의 축소되는 영역을 제거하는 데이터 처리 방법은 상기 예에 한정되지 않고 이를 개량 및 변경하거나 추가적인 데이터 처리 방법이 사용될 수 있다.
부/복호화 설정에 따라 복수의 데이터 처리 방법에 대한 후보군이 지원될 수 있으며, 이에 대한 선택 정보를 생성하여 비트스트림에 수록할 수 있다. 예를 들어, 크기 조정되는 영역을 단순 제거하는 방법, 크기 조정되는 영역을 일련의 과정에 사용한 후 제거하는 방법 등에서 하나의 데이터 처리 방법을 선택할 수 있으며, 이에 대한 선택 정보를 생성할 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
예를 들어, 영상의 크기 조정으로 축소됨에 따라 삭제되는 전체 영역(본 예에서, 도 7의 7b에서의 TL ~ BR)에 적용되는 데이터 처리 방법은 단순 제거하는 방법, 일련의 과정에 사용한 후 제거하는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
또는, 영상의 크기 조정으로 축소되는 개별 영역(본 예에서, 도 7b의 TL ~ BR 각각)에 적용되는 데이터 처리 방법은 단순 제거하는 방법, 일련의 과정에 사용한 후 제거하는 방법, 그 외의 방법 중 하나일 수 있으며, 이에 대한 선택 정보가 생성될 수 있다. 또한, 묵시적으로 데이터 처리 방법이 정해질 수 있다.
상기 예에서 크기 조정 동작(확장, 축소)에 따른 크기 조정 수행에 대한 경우를 설명하였으나, 일부 경우는 크기 조정 동작(본 예에서 확장)을 수행한 후 그에 대한 역과정인 크기 조정 동작(본 예에서 축소)을 수행하는 경우에 적용될 수 있는 예일 수 있다.
예를 들어, 확장되는 영역에 영상의 일부 데이터를 사용하여 채우는 방법이 선택되고, 그에 대한 역과정에서 축소되는 영역을 영상의 일부 데이터 복원 또는 보정 과정에 사용한 후 제거하는 방법이 선택되는 경우이다. 또는, 확장되는 영역에 외곽 화소의 복사를 사용하여 채우는 방법이 선택되고, 그에 대한 역과정에서 축소되는 영역을 단순 제거하는 방법이 선택된 경우이다. 즉, 영상 크기 조정 과정에서 선택되는 데이터 처리 방법에 기반하여 역과정에서의 데이터 처리 방법이 결정될 수 있다.
상기 예와 달리 영상 크기 조정 과정과 그에 대한 역과정의 데이터 처리 방법은 독립적인 관계를 가질 수도 있다. 즉, 영상 크기 조정 과정에서 선택되는 데이터 처리 방법과 무관하게 역과정에서의 데이터 처리 방법을 선택할 수 있다. 예를 들어, 확장되는 영역에 영상의 일부 데이터를 사용하여 채우는 방법이 선택되고, 그에 대한 역과정에서 축소되는 영역을 단순 제거하는 방법이 선택될 수 있다.
본 발명에서는 영상 크기 조정 과정에서의 데이터 처리 방법을 부/복호화 설정에 따라 묵시적으로 결정하고, 역과정에서의 데이터 처리 방법을 부/복호화 설정에 따라 묵시적으로 결정할 수 있다. 또는, 영상 크기 조정 과정에서의 데이터 처리 방법을 명시적으로 생성하고, 역과정에서의 데이터 처리 방법을 명시적으로 생성할 수 있다. 또는, 영상 크기 조정 과정에서의 데이터 처리 방법을 명시적으로 생성하고, 역과정에서의 데이터 처리 방법은 상기 데이터 처리 방법에 기반하여 묵시적으로 결정할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 크기 조정을 수행하는 예를 나타낸다. 후술하는 예에서 크기 조정 과정은 확장, 크기 조정 역과정은 축소의 경우를 예로 들 것이다. 또한, “크기 조정 전 영상”과 “크기 조정 후 영상”의 차이는 영상의 크기를 의미할 수 있고, 크기 조정 관련 정보는 부/복호화 설정에 따라 일부 정보는 명시적으로 생성될 수 있거나 또는 일부 정보는 묵시적으로 정해질 수 있다. 또한, 크기 조정 관련 정보는 크기 조정 과정과 크기 조정 역과정에 대한 정보를 포함할 수 있다.
제1 예시로, 부호화 시작 전에 입력 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상을 부호화할 수 있다. 부호화 완료 후에 메모리에 저장할 수 있고, 영상 부호화 데이터(본 예에서 크기 조정 후 영상을 의미)를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값 등)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후에 메모리에 저장할 수 있고, 크기 조정 역과정(본 예에서 데이터 처리 방법 등을 사용. 이는 크기 조정 역과정에서 사용되는 것)을 수행하여 출력 영상을 크기 조정 전 영상으로 변경할 수 있다.
제2 예시로, 부호화 시작 전에 참조 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상(본 예에서 크기 조정 후 참조 영상)을 메모리에 저장할 수 있고, 이를 사용하여 영상을 부호화할 수 있다. 부호화 완료 후에 영상 부호화 데이터(본 예에서 상기 참조 영상을 사용하여 부호화한 것을 의미)를 비트스트림에 수록하여 전송할 수 있다. 또한, 상기 부호화된 영상은 참조 영상으로 메모리에 저장되는 경우 위의 과정과 같이 크기 조정 과정을 수행할 수 있다.
복호화 시작 전에 참조 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정 후 영상(본 예에서 크기 조정 후 참조 영상)을 메모리에 저장할 수 있고, 영상 복호화 데이터(본 예에서 부호화기에서 상기 참조 영상을 사용하여 부호화된 것과 동일)를 파싱하여 복호화할 수 있다. 복호화 완료 후에 출력 영상으로 생성할 수 있고, 상기 복호화된 영상이 참조 영상으로 포함되어 메모리에 저장되는 경우 위의 과정과 같이 크기 조정 과정을 수행할 수 있다.
제3 예시로, (상세하게는, 필터링 과정을 제외한 부호화 완료를 의미) 부호화 완료 후에 영상의 필터링(본 예에서 디블록킹 필터라 가정) 시작 전에 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상을 생성할 수 있고, 크기 조정 후 영상에 필터링을 적용할 수 있다. 필터링 완료 후에 크기 조정 역과정을 수행하여 크기 조정 전 영상으로 변경할 수 있다.
(상세하게는, 필터 과정을 제외한 복호화 완료를 의미)복호화 완료 후에 영상의 필터링 시작 전에 영상에 대한 크기 조정 과정을 수행할 수 있다. 크기 조정 정보(예를 들어, 크기 조정 동작, 크기 조정 방향, 크기 조정값, 데이터 처리 방법 등. 데이터 처리 방법은 크기 조정 과정에서 사용되는 것)를 사용하여 크기 조정을 수행한 후 크기 조정 후 영상을 생성할 수 있고, 크기 조정 후 영상에 필터링을 적용할 수 있다. 필터링 완료 후에 크기 조정 역과정을 수행하여 크기 조정 전 영상으로 변경할 수 있다.
상기 예에서 일부 경우(제1 예시 및 제3 예시)는 크기 조정 과정과 크기 조정 역과정이 수행될 수 있고, 다른 일부 경우(제2 예시) 는 크기 조정 과정만 수행될 수 있다.
또한, 일부 경우(제2 예시 및 제3 예시)는 부호화기와 복호화기에서의 크기 조정 과정이 동일할 수 있고, 다른 일부 경우(제1 예시)는 부호화기와 복호화기에서의 크기 조정 과정이 동일하거나 동일하지 않을 수 있다. 이때, 부/복호화기에서의 크기 조정 과정의 차이는 크기 조정 수행 단계일 수 있다. 예를 들어, 일부 경우(본 예에서 부호화기)에는 영상의 크기 조정과 크기 조정되는 영역의 데이터 처리를 고려하는 크기 조정 수행 단계를 포함할 수 있고, 일부 경우(본 예에서 복호화기)에는 영상의 크기 조정을 고려하는 크기 조정 수행 단계를 포함할 수 있다. 이때, 전자의 데이터 처리는 후자의 크기 조정 역과정의 데이터 처리와 대응될 수 있다.
또한, 일부 경우(제3 예시)에서 크기 조정 과정은 해당 단계에서만 적용되는 과정일 수 있으며, 크기 조정 영역을 메모리에 저장하지 않을 수 있다. 예를 들어, 필터링 과정에서 사용하기 위한 목적으로 임시의 메모리에 저장하여 필터링을 수행하고 크기 조정 역과정을 통해 해당 영역을 제거할 수 있으며, 이 경우는 크기 조정으로 인한 영상의 크기 변화는 없다고 할 수 있다. 상기의 예에 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다.
상기 크기 조정 과정을 통해 영상의 크기는 변경될 수 있고 이에 따라 영상의 일부 화소의 좌표가 크기 조정 과정을 통해 변경될 수 있으며, 이는 픽쳐 분할부의 동작에 영향을 줄 수 있다. 본 발명에서는 상기 과정을 통해 크기 조정 전의 영상을 기반으로 블록 단위의 분할을 수행할 수 있거나 또는 크기 조정 후의 영상을 기반으로 블록 단위의 분할을 수행할 수 있다. 또한, 크기 조정 전의 영상을 기반으로 일부 단위(예를 들어, 타일, 슬라이스 등)의 분할을 수행할 수 있거나 또는 크기 조정 후의 영상을 기반으로 일부 단위의 분할을 수행할 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 본 발명에서는 크기 조정 후의 영상을 기반으로 픽쳐 분할부가 동작하는 경우(예를 들어, 크기 조정 과정 후 영상 분할 과정)를 중심으로 설명할 것이나 그 외의 변형 또한 가능하며 이는 후술하는 복수의 영상 설정에서 상기 예에 대한 경우를 설명할 것이다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
입력된 영상 그대로 부/복호화를 수행하는 것이 일반적일 수 있으나, 영상을 재구성하여 부/복호화를 수행하는 경우도 발생할 수 있다. 예를 들어, 영상의 부호화 효율성을 높이기 위한 목적으로 영상 재구성을 수행할 수 있고, 네트워크 및 사용자 환경을 고려하기 위한 목적으로 영상 재구성을 수행할 수 있고, 영상의 종류, 특성에 따라 영상 재구성을 수행할 수 있다.
본 발명에서 영상 재구성 과정은 재구성 과정이 단독으로 수행될 수 있거나 또는 그에 대한 역과정을 수행할 수 있다. 후술하는 예에서는 재구성 과정을 중심으로 설명을 하지만, 재구성 역과정에 대한 내용은 재구성 과정에서 역으로 유도할 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상 재구성에 대한 예시도이다.
10a가 입력된 최초의 영상이라고 할 때, 10a 내지 10d는 영상에 0도를 포함한 회전(예를 들어, 360도를 k개의 구간으로 샘플링하여 생성된 후보군을 구성할 수 있음. k는 2, 4, 8 등의 값을 가질 수 있으며 본 예에서는 4를 가정하여 설명)을 적용한 예시도이며, 10e 내지 10h는 10a를 기준으로 또는 10b 내지 10d를 기준으로 반전(또는 대칭)을 적용한 예시도를 나타낸다.
영상의 재구성에 따라 영상의 시작 위치 또는 스캔 순서가 변경될 수 있거나 또는 재구성 여부와 상관없이 기 설정된 시작 위치 및 스캔 순서를 따를 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 후술하는 실시예에서는 영상의 재구성 여부와 관계없이 기 설정된 시작 위치(예를 들어, 영상의 좌상 위치)와 스캔 순서(예를 들어, 래스터 스캔)에 따르는 경우를 가정하여 설명한다.
본 발명의 일 실시예에 따른 영상 부호화 방법 및 복호화 방법에서는 다음과 같은 영상 재구성 단계를 포함할 수 있다. 이때, 영상 재구성 과정은 영상 재구성 지시 단계, 영상 재구성 타입 식별 단계, 영상 재구성 수행 단계를 포함할 수 있다. 또한, 영상 부호화 장치 및 복호화 장치는 영상 재구성 지시 단계, 영상 재구성 타입 식별 단계, 영상 재구성 수행 단계를 구현하는 영상 재구성 지시부, 영상 재구성 타입 식별부, 영상 재구성 수행부를 포함하도록 구성될 수 있다. 부호화의 경우 관련된 구문 요소를 생성할 수 있고, 복호화의 경우 관련된 구문 요소를 파싱할 수 있다.
영상 재구성 지시 단계에서는 영상 재구성 수행 여부를 결정할 수 있다. 예를 들어, 영상 재구성을 지시하는 신호(예를 들어, convert_enabled_flag)가 확인될 경우 재구성을 수행할 수 있고, 영상 재구성을 지시하는 신호가 확인되지 않을 경우 재구성을 수행하지 않거나 또는 다른 부/복호화 정보를 확인하여 재구성을 수행할 수 있다. 또한, 영상 재구성을 지시하는 신호가 제공되지 않더라도 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 재구성을 지시하는 신호가 묵시적으로 활성화될 수 있고 비활성화될 수 있으며, 재구성을 수행할 경우 그에 따른 재구성 관련 정보를 생성할 수 있고 또는 재구성 관련 정보가 묵시적으로 결정될 수 있다.
영상 재구성을 지시하는 신호가 제공되는 경우에 해당 신호는 영상의 재구성을 수행할지 여부를 나타내기 위한 신호이며, 상기 신호에 따라 해당 영상의 재구성 여부를 확인할 수 있다. 예를 들어, 영상 재구성을 지시하는 신호(예를 들어, convert_enabled_flag)가 확인되고 해당 신호가 활성화된 경우(예를 들어, convert_enabled_flag = 1) 재구성을 수행할 수 있고, 해당 신호가 비활성화된 경우(예를 들어, convert_enabled_flag = 0) 재구성을 수행하지 않을 수 있다.
또한, 영상 재구성을 지시하는 신호가 제공되지 않을 경우에 재구성을 수행하지 않거나 또는 해당 영상의 재구성 여부는 다른 신호에 의해 재구성 여부를 확인할 수 있다. 예를 들어, 영상의 특성, 종류 등(예를 들어, 360도 영상)에 따라 재구성을 수행할 수 있으며 재구성 정보는 명시적으로 생성하거나 기 설정된 값으로 할당할 수 있다. 상기 예의 경우에만 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
영상 재구성 타입 식별 단계에서는 영상 재구성 타입을 식별할 수 있다. 영상 재구성 타입은 재구성을 수행하는 방법, 재구성 모드 정보 등에 의해 정의될 수 있다. 재구성을 수행하는 방법(예를 들어, convert_type_flag)으로는 회전, 반전 등을 포함할 수 있으며, 재구성 모드 정보는 재구성을 수행하는 방법에서의 모드(예를 들어, convert_mode)를 포함할 수 있다. 이 경우, 재구성 관련 정보는 재구성을 수행하는 방법과 모드 정보로 구성될 수 있다. 즉, 적어도 하나의 구문 요소로 구성될 수 있다. 이때, 각 재구성을 수행하는 방법에 따른 모드 정보의 후보군의 개수는 동일하거나 다를 수 있다.
일 예로, 회전의 경우 10a ~ 10d와 같이 일정한 간격 차이(본 예에서 90도)를 갖는 후보를 포함할 수 있으며, 10a를 0도 회전으로 할 때, 10b 내지 10d는 각각 90도, 180도, 270도 회전을 적용한 예(본 예에서 시계 방향으로 각도를 측정)일 수 있다.
일 예로, 반전의 경우 10a, 10e, 10f와 같은 후보를 포함할 수 있으며, 10a를 반전없음으로 할때, 10e 및 10f는 각각 좌우 반전 및 상하 반전을 적용한 예일 수 있다.
상기 예는 일정 간격을 갖는 회전에 대한 설정과 일부 반전에 대한 설정의 경우를 설명하지만, 영상 재구성에 대한 일 예일 뿐 상기의 경우에 한정되지 않으며 다른 간격 차이, 다른 반전 동작 등과 같은 예를 포함할 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다.
또는, 재구성을 수행하는 방법과 그에 따른 모드 정보를 혼합하여 생성되는 통합 정보(예를 들어, convert_com_flag)를 포함할 수 있다. 이 경우, 재구성 관련 정보는 재구성을 수행하는 방법과 모드 정보가 혼합 구성된 정보로 구성될 수 있다.
예를 들어, 상기 통합 정보는 10a ~ 10f와 같은 후보를 포함할 수 있으며, 이는 10a를 기준으로 0도 회전, 90도 회전, 180도 회전, 270도 회전, 좌우 반전, 상하 반전을 적용한 예일 수 있다.
또는, 상기 통합 정보는 10a ~ 10h와 같은 후보를 포함할 수 있으며, 이는 10a를 기준으로 0도 회전, 90도 회전, 180도 회전, 270도 회전, 좌우 반전, 상하 반전, 90도 회전 후 좌우 반전(또는 좌우 반전 후 90도 회전), 90도 회전 후 상하 반전(또는 상하 반전 후 90도 회전)을 적용한 예일 수 있거나 또는 0도 회전, 90도 회전, 180도 회전, 270도 회전, 좌우 반전, 180도 회전 후 좌우 반전(좌우 반전 후 180도 회전), 90도 회전 후 좌우 반전(좌우 반전 후 90도 회전), 270도 회전 후 좌우 반전(좌우 반전 후 270도 회전)을 적용한 예일 수 있다.
상기 후보군은 회전이 적용된 모드, 반전이 적용된 모드에 회전과 반전이 혼합 적용된 모드를 포함하여 구성될 수 있다. 상기 혼합 구성된 모드는 재구성을 수행하는 방법에서의 모드 정보를 단순 포함하는 것일 수 있고, 각 방법에서의 모드 정보를 혼용하여 생성되는 모드를 포함할 수 있다. 이때, 일부 방법(예를 들어, 회전)의 적어도 하나의 모드와 일부 방법(예를 들어, 반전)의 적어도 하나의 모드를 혼용하여 생성되는 모드를 포함할 수 있으며, 상기 예는 일부 방법의 하나의 모드와 일부 방법의 복수의 모드가 혼용하여 생성되는 경우(본 예에서, 90도 회전 + 복수의 반전/좌우 반전 + 복수의 회전)를 포함한다. 상기 혼합 구성된 정보는 재구성이 적용되지 않는 경우{본 예에서 10a}를 후보군으로 포함하여 구성될 수 있으며, 재구성이 적용되지 않는 경우를 첫 번째 후보군(예를 들어, 0번을 인덱스로 할당)으로 포함할 수 있다.
또는, 기 설정된 재구성을 수행하는 방법에 따른 모드 정보를 포함할 수 있다. 이 경우, 재구성 관련 정보는 기 설정된 재구성을 수행하는 방법에 따른 모드 정보로 구성될 수 있다. 즉, 재구성을 수행하는 방법에 대한 정보는 생략할 수 있으며, 모드 정보에 관련된 하나의 구문 요소로 구성될 수 있다.
예를 들어, 회전에 관한 10a ~ 10d와 같은 후보를 포함하여 구성될 수 있다. 또는, 반전에 관한 10a, 10e, 10f와 같은 후보를 포함하여 구성될 수 있다.
영상의 재구성 과정 전과 후의 영상의 크기는 동일하거나 또는 적어도 하나의 길이가 다를 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 영상의 재구성 과정은 영상 내 화소의 재배치를 수행하는 과정(본 예에서 영상의 재구성 역과정에서는 화소 재배치 역과정을 수행. 이는 화소 재배치 과정에서 역으로 유도가능)일 수 있으며, 적어도 하나의 화소의 위치가 변경될 수 있다. 상기 화소의 재배치는 영상 재구성 타입 정보에 기반한 규칙에 따라 수행될 수 있다.
이때, 화소의 재배치 과정은 영상의 크기 및 형태(예를 들어, 정사각 또는 직사각)등에 영향을 받을 수 있다. 상세하게는, 재구성 과정 전의 영상의 가로, 세로 길이와 재구성 과정 후의 영상의 가로, 세로 길이가 화소의 재배치 과정에 변수로 작용할 수 있다.
예를 들어, 재구성 과정 전의 영상의 가로 길이와 재구성 과정 후의 영상 가로 길이와의 비율, 재구성 과정 전의 영상의 가로 길이와 재구성 과정 후의 영상의 세로 길이와의 비율, 재구성 과정 전의 영상의 세로 길이와 재구성 과정 후의 영상의 가로 길이와의 비율, 재구성 과정 전의 영상의 세로 길이와 재구성 과정 후의 영상의 세로 길이와의 비율 중 적어도 하나의 비율 정보(예를 들어, 전자/후자 또는 후자/전자 등)가 화소의 재배치 과정에 변수로 작용할 수 있다.
상기 예에서 재구성 과정 전과 후의 영상의 크기가 동일할 경우에는 영상의 가로 길이와 세로 길이와의 비율이 화소 재배치 과정에 변수로 작용할 수 있다. 또한, 영상의 형태가 정사각 일 경우에는 영상의 재구성 과정 전의 영상 길이와 재구성 과정 후의 영상 길이와의 비율이 화소 재배치 과정에 변수로 작용할 수 있다.
영상 재구성 수행 단계에서는 식별된 재구성 정보에 기반하여 영상 재구성을 수행할 수 있다. 즉, 재구성 타입, 재구성 모드 등의 정보에 기반하여 영상의 재구성을 수행할 수 있고, 획득된 재구성된 영상을 기반으로 부/복호화를 수행할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 재구성을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대한 재구성 과정을 수행할 수 있다. 재구성 정보(예를 들어, 영상 재구성 타입, 재구성 모드 등)를 사용하여 재구성을 수행한 후 재구성된 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 재구성 과정을 수행할 수 있다. 재구성 정보(예를 들어, 영상 재구성 타입, 재구성 모드 등)를 사용하여 재구성을 수행한 후 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후에 메모리에 저장할 수 있고, 재구성 역과정을 수행하여 재구성 전 영상으로 변경한 후 영상을 출력할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
Figure PCTKR2017011138-appb-T000001
표 1은 영상 설정 중 분할에 관련된 구문 요소들에 대한 예를 나타낸다. 후술하는 예에서는 추가되는 구문 요소를 중심으로 설명할 것이다. 또한, 후술하는 예의 구문 요소는 어느 특정 단위에 한정되는 것은 아니며 시퀀스, 픽쳐, 슬라이스, 타일 등의 다양한 단위에서 지원되는 구문 요소일 수 있다. 또는, SEI, 메타 데이터 등에 포함되는 구문 요소일 수 있다. 또한, 후술하는 예에서 지원되는 구문 요소의 종류, 구문 요소의 순서, 조건 등은 본 예에서만 한정될 뿐 부/복호화 설정에 따라 변경되고 정해질 수 있다.
표 1에서, tile_header_enabled_flag는 타일에 부/복호화 설정 지원 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(tile_header_enabled_flag = 1)에는 타일 단위의 부/복호화 설정을 가질 수 있으며, 비활성화되는 경우(tile_header_enabled_flag = 0)에는 타일 단위의 부/복호화 설정을 가질 수 없고 상위 단위의 부/복호화 설정을 할당받을 수 있다.
tile_coded_flag는 타일의 부/복호화 여부를 나타내는 구문 요소를 의미하며, 활성화되는 경우(tile_coded_flag = 1)에는 해당 타일의 부/복호화를 수행할 수 있고, 비활성화되는 경우(tile_coded_flag = 0)에는 부/복호화를 수행할 수 없다. 여기서, 부호화를 수행하지 않는다는 것은 해당 타일에서의 부호화 데이터를 생성하지 않는다는 것(본 예에서 해당 영역은 기 설정된 규칙 등에 의해 처리하는 것이라 가정. 360도 영상의 일부 투영 포맷에서의 무의미한 영역에서 적용 가능)을 의미할 수 있다. 복호화를 수행하지 않는 것은 해당 타일에서의 복호화 데이터를 더 이상 파싱하지 않는다(본 예에서 해당 영역은 기 설정된 규칙 등에 의해 처리하는 것이라 가정)는 것을 의미한다. 또한, 복호화 데이터를 더 이상 파싱하지 않는다는 것은 해당 단위에 부호화 데이터가 존재하지 않아서 더 이상 파싱하지 않는다는 것을 의미할 수 있지만, 부호화 데이터가 존재하더라도 상기 플래그에 의해 더 이상 파싱하지 않는다는 것을 의미할 수도 있다. 타일의 부/복호화 수행 여부에 따라 타일 단위의 헤더 정보가 지원될 수 있다.
상기 예는 타일을 중심으로 설명하였지만 타일에 한정되는 예는 아니며, 본 발명에서의 다른 분할 단위에 변경 적용 가능한 예일 수 있다. 또한, 타일의 분할 설정의 일 예로 상기 경우에 한정되지 않으며 다른 예로의 변형 또한 가능할 수 있다.
Figure PCTKR2017011138-appb-T000002
표 2는 영상 설정 중 재구성에 관련된 구문 요소들에 대한 예를 나타낸다.
표 2를 참조하면, convert_enabled_flag는 재구성 수행 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(convert_enabled_flag = 1)에는 재구성된 영상을 부/복호화하는 것을 의미하며 추가적인 재구성 관련 정보를 확인할 수 있다. 비활성화되는 경우(convert_enabled_flag = 0)에는 기존 영상을 부/복호화하는 것을 의미한다.
convert_type_flag는 재구성 수행하는 방법과 모드 정보에 관한 혼합 정보를 의미한다. 회전을 적용한 방법, 반전을 적용한 방법, 회전과 반전을 혼합 적용한 방법에 관한 복수의 후보군 중 하나로 결정될 수 있다.
Figure PCTKR2017011138-appb-T000003
표 3은 영상 설정 중 크기 조정에 관련된 구문 요소들에 대한 예를 나타낸다.
표 3을 참조하면, pic_width_in_samples, pic_height_in_samples는 영상의 가로, 세로 길이에 관한 구문 요소를 의미하며, 상기 구문 요소로 영상의 크기를 확인할 수 있다.
img_resizing_enabled_flag는 영상 크기 조정 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(img_resizing_enabled_flag = 1)에는 크기 조정 후 영상을 부/복호화하는 것을 의미하며 추가적인 크기 조정 관련 정보를 확인할 수 있다. 비활성화되는 경우(img_resizing_enabled_flag = 0)에는 기존 영상을 부/복호화하는 것을 의미한다. 또한, 화면내 예측을 위한 크기 조정을 의미하는 구문 요소일 수 있다.
resizing_met_flag은 크기 조정 방법에 대한 구문 요소를 의미한다. 스케일 팩터를 통한 크기 조정을 수행하는 경우(resizing_met_flag = 0), 오프셋 팩터를 통한 크기 조정을 수행하는 경우(resizing_met_flag = 1), 그 외의 크기 조정 방법 등의 후보군 중 하나로 결정될 수 있다.
resizing_mov_flag는 크기 조정 동작에 대한 구문 요소를 의미한다. 예를 들어, 확장 또는 축소 중에 하나로 결정될 수 있다.
width_scale과 height_scale은 스케일 팩터를 통한 크기 조정에서 가로 크기 조정, 세로 크기 조정과 관련된 스케일 팩터를 의미한다.
top_height_offset과 bottom_height_offset은 오프셋 팩터를 통한 크기 조정 중 가로 크기 조정과 관련된 상 방향, 하 방향의 오프셋 팩터를 의미하고, left_width_offset과 right_width_offset은 오프셋 팩터를 통한 크기 조정 중 세로 크기 조정과 관련된 좌 방향, 우 방향의 오프셋 팩터를 의미한다.
상기 크기 조정 관련 정보와 영상 크기 정보를 통해 크기 조정 후 영상의 크기가 업데이트될 수 있다.
resizing_type_flag는 크기 조정되는 영역의 데이터 처리 방법에 대한 구문 요소를 의미한다. 크기 조정 방법, 크기 조정 동작에 따라 데이터 처리 방법에 대한 후보군의 개수는 같거나 다를 수 있다.
전술하는 영상 부/복호화 장치에 적용되는 영상 설정 과정은 개별적으로 수행될 수 있거나 또는 복수의 영상 설정 과정이 혼합되어 수행될 수 있다. 후술하는 예에서는 복수의 영상 설정 과정이 혼합되어 수행되는 경우에 대한 설명을 할 것이다.
도 11은 본 발명의 일 실시예에 따른 영상 설정 과정의 전과 후의 영상을 나타낸 예시도이다. 상세하게는, 11a는 분할된 영상에 영상 재구성을 수행하기 전의 예(예를 들어, 360도 영상 부호화에서 투영된 영상)이며, 11b는 분할된 영상에 영상 재구성을 수행한 후의 예(예를 들어, 360도 영상 부호화에서 포장된 영상)를 나타낸다. 즉, 11a는 영상 설정 과정을 수행하기 전, 11b는 영상 설정 과정을 수행한 후의 예시도로 이해할 수 있다.
본 예에서 영상 설정 과정은 영상 분할(본 예에서 타일이라 가정)과 영상 재구성에 대한 경우를 설명할 것이다.
후술하는 예에서 영상 분할이 수행된 후에 영상 재구성이 수행되는 경우에 대한 설명을 하지만, 부/복호화 설정에 따라 영상 재구성이 수행된 후에 영상 분할이 수행되는 경우도 가능하며 다른 경우로의 변형 또한 가능할 수 있다. 또한, 전술한 영상 재구성 과정(역과정 포함)은 본 실시예에서의 영상 내 분할 단위의 재구성 과정과 동일하거나 비슷한 적용이 가능할 수 있다.
영상의 재구성은 영상 내 모든 분할 단위에 수행될 수 있거나 수행되지 않을 수 있고, 일부 분할 단위에 수행될 수 있다. 따라서, 재구성 전의 분할 단위(예를 들어, P0 내지 P5 중 일부)는 재구성 후의 분할 단위(예를 들어, S0 내지 S5 중 일부)와 동일하거나 또는 동일하지 않을 수 있다. 후술하는 예를 통해 다양한 영상 재구성 수행에 관한 경우를 설명한다. 또한, 설명의 편의를 위해 영상의 단위는 픽쳐, 분할 영상의 단위는 타일, 분할 단위는 정사각 형태라 가정하여 설명한다.
일 예로, 영상의 재구성 수행 여부는 일부 단위(예를 들어, sps_convert_enabled_flag 또는 SEI나 메타 데이터 등)에서 정해질 수 있다. 또는, 영상의 재구성 수행 여부는 일부 단위(예를 들어, pps_convert_enabled_flag)에서 정해질 수 있고, 이는 해당 단위(본 예에서 픽쳐)에서 처음 발생하거나 또는 상위 단위에서 활성화(예를 들어, sps_convert_enabled_flag = 1)된 경우에 가능할 수 있다. 또는, 영상의 재구성 수행 여부는 일부 단위(예를 들어, tile_convert_flag[i]. i는 분할 단위 인덱스)에서 정해질 수 있고, 이는 해당 단위(본 예에서 타일)에서 처음 발생하거나 또는 상위 단위에서 활성화(예를 들어, pps_convert_enabled_flag = 1) 된 경우에 가능할 수 있다. 또한, 상기 일부 영상의 재구성 수행 여부는 부/복호화 설정에 따라 묵시적으로 정해질 수 있으며, 그에 따라 관련 정보는 생략될 수 있다.
일 예로, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)에 따라 영상 내 분할 단위의 재구성 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 모든 분할 단위의 재구성 수행 여부가 정해질 수 있다. 이때, 영상에 하나의 영상의 재구성을 지시하는 신호가 발생할 수 있다.
일 예로, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])에 따라 영상 내 분할 단위의 재구성 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 일부 분할 단위의 재구성 수행 여부가 정해질 수 있다. 이때, 적어도 하나의 영상의 재구성을 지시하는 신호(예를 들어, 분할 단위의 개수만큼 발생)가 발생할 수 있다.
일 예로, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)에 따라 영상의 재구성 수행 여부가 정해질 수 있고, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])에 따라 영상 내 분할 단위의 재구성 수행 여부가 정해질 수 있다. 상세하게는, 일부 신호가 활성화된 경우(예를 들어, pps_convert_enabled_flag = 1)에 추가로 일부 신호(예를 들어, tile_convert_flag[i])를 확인할 수 있으며, 상기 신호(본 예에서 tile_convert_flag[i])에 따라 영상 내 일부 분할 단위의 재구성 수행 여부가 정해질 수 있다. 이때, 복수의 영상의 재구성을 지시하는 신호가 발생할 수 있다.
영상의 재구성을 지시하는 신호가 활성화될 경우 영상 재구성 관련 정보가 발생할 수 있다. 후술하는 예에서 다양한 영상 재구성 관련 정보에 관한 경우를 설명한다.
일 예로, 영상에 적용되는 재구성 정보가 발생할 수 있다. 상세하게는, 하나의 재구성 정보가 영상 내 모든 분할 단위의 재구성 정보로 사용될 수 있다.
일 예로, 영상 내 분할 단위에 적용되는 재구성 정보가 발생할 수 있다. 상세하게는, 적어도 하나의 재구성 정보가 영상 내 일부 분할 단위의 재구성 정보로 사용될 수 있다. 즉, 하나의 재구성 정보가 하나의 분할 단위의 재구성 정보로 사용될 수 있거나 또는 하나의 재구성 정보가 복수의 분할 단위의 재구성 정보로 사용될 수 있다.
후술하는 예는 영상 재구성을 수행하는 예와의 조합을 통해 설명될 수 있다.
예를 들어, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 재구성 정보가 발생할 수 있다. 또는, 영상의 재구성을 지시하는 신호(예를 들어, pps_convert_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 재구성 정보가 발생할 수 있다. 또는, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 재구성 정보가 발생할 수 있다. 또는, 영상의 재구성을 지시하는 신호(예를 들어, tile_convert_flag[i])가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 재구성 정보가 발생할 수 있다.
상기 재구성 정보의 경우 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 특성, 종류 등에 따라 기 설정된 값으로 재구성 정보를 할당할 수 있다.
11a의 P0 내지 P5는 11b의 S0 내지 S5에 대응될 수 있고 분할 단위에 재구성 과정이 수행될 수 있다. 예를 들어, P0에 재구성을 수행하지 않고 SO에 할당할 수 있고, P1에 90도 회전을 적용하여 S1에 할당할 수 있고, P2에 180도 회전을 적용하여 S2에 할당할 수 있고, P3에 좌우 반전을 적용하여 S3에 할당할 수 있고, P4에 90도 회전 후 좌우 반전을 적용하여 S4에 할당할 수 있고, P5에 180도 회전 후 좌우 반전을 적용하여 S5에 할당할 수 있다.
다만, 앞선 예시에 한정되지 않고 다양한 변형의 예 또한 가능할 수 있다. 상기 예와 같이 영상의 분할 단위에 재구성을 수행하지 않거나 또는 회전을 적용한 재구성, 반전을 적용한 재구성, 회전과 반전을 혼합 적용한 재구성 중 적어도 하나의 재구성 방법을 수행할 수 있다.
영상의 재구성이 분할 단위에 적용되는 경우 분할 단위 재배치와 같은 추가적인 재구성 과정이 수행될 수 있다. 즉, 본 발명의 영상 재구성 과정은 영상 내 화소의 재배치를 수행하는 것 외에 분할 단위의 영상 내 재배치를 포함하여 구성될 수 있으며, 표 4와 같은 일부 구문 요소(예를 들어, part_top, part_left, part_width, part_height 등)로 표현될 수 있다. 이는 영상 분할과 영상 재구성 과정이 혼합되어 이해될 수 있음을 의미한다. 위의 설명은 영상이 복수의 단위로 분할되는 경우에 가능한 예일 수 있다.
11a의 P0 내지 P5는 11b의 S0 내지 S5에 대응될 수 있고, 분할 단위에 재구성 과정이 수행될 수 있다. 예를 들어, P0에 재구성을 수행하지 않고 S0에 할당할 수 있고, P1에 재구성을 수행하지 않고 S2에 할당할 수 있고, P2에 90도 회전을 적용하여 S1에 할당할 수 있고, P3에 좌우 반전을 적용하여 S4에 할당할 수 있고, P4에 90도 회전 후 좌우 반전을 적용하여 S5에 할당할 수 있고, P5에 좌우 반전 후 180도 회전을 적용하여 S3에 할당할 수 있으며, 이에 한정되지 않고 다양한 변형의 예 또한 가능할 수 있다.
또한, 도 7의 P_Width와 P_Height는 도 11의 P_Width와 P_Height와 대응될 수 있고, 도 7의 P'_Width와 P'_Height는 도 11의 P'_Width와 P'_Height와 대응될 수 있다. 도 7에서 크기 조정 후의 영상 크기는 P'_Width × P'_Height로, (P_Width + Exp_L + Exp_R) × (P_Height + Exp_T + Exp_B)로 표현할 수 있고, 도 11에서 크기 조정 후 영상 크기는 P'_Width × P'_Height로, (P_Width + Var0_L + Var1_L + Var2_L + Var0_R + Var1_R + Var2_R) × (P_Height + Var0_T + Var1_T + Var0_B + Var1_B)이거나 또는 (Sub_P0_Width + Sub_P1_Width + Sub_P2_Width + Var0_L + Var1_L + Var2_L + Var0_R + Var1_R + Var2_R) × (Sub_P0_Height + Sub_P1_Height + Var0_T + Var1_T + Var0_B + Var1_B)로 표현할 수 있다.
상기 예와 같이 영상 재구성은 영상의 분할 단위 내의 화소의 재배치를 수행할 수 있고, 영상 내의 분할 단위의 재배치를 수행할 수 있고, 영상의 분할 단위 내의 화소 재배치뿐만 아니라 영상 내의 분할 단위 재배치를 수행할 수 있다. 이때, 분할 단위의 화소 재배치를 수행한 후 분할 단위의 영상 내 재배치를 수행할 수 있거나 또는 분할 단위의 영상 내 재배치를 수행한 후에 분할 단위의 화소 재배치를 수행할 수 있다.
영상 내 분할 단위의 재배치는 영상의 재구성을 지시하는 신호에 따라 수행 여부가 정해질 수 있다. 또는, 영상 내 분할 단위의 재배치에 대한 신호가 발생할 수 있다. 상세하게는, 영상의 재구성을 지시하는 신호가 활성화된 경우에 상기 신호가 발생할 수 있다. 또는, 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 특성, 종류 등에 따라 정해질 수 있다.
또한, 영상 내 분할 단위의 재배치에 대한 정보는 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있으며, 영상의 특성, 종류 등에 따라 정해질 수 있다. 즉, 기 설정된 분할 단위의 배치 정보에 따라 각 분할 단위를 배치할 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 내 분할 단위의 재구성을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대해 분할 정보를 사용하여 분할 과정을 수행할 수 있다. 분할 단위에 재구성 정보를 사용하여 재구성 과정을 수행할 수 있으며, 분할 단위에 재구성된 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 분할 정보를 사용하여 분할 과정을 수행할 수 있다. 분할 단위에 재구성 정보를 사용하여 재구성 과정을 수행하고, 재구성이 수행된 분할 단위로 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후 메모리에 저장할 수 있고, 분할 단위의 재구성 역과정을 수행한 후 분할 단위를 하나로 병합하여 영상을 출력할 수 있다.
도 12는 본 발명의 일 실시예에 따른 영상 내 분할 단위 각각을 대상으로 한 크기 조정의 예시도이다. 도 12의 P0 내지 P5는 도 11의 P0 내지 P5에 대응되고, 도 12의 S0 내지 S5는 도 11의 S0 내지 S5에 대응된다.
후술하는 예에서 영상 분할을 수행한 후에 영상 크기 조정을 수행하는 경우를 중심으로 설명을 하지만, 부/복호화 설정에 따라 영상 크기 조정을 수행한 후에 영상 분할을 수행하는 경우도 가능하며 다른 경우로의 변형 또한 가능할 수 있다. 또한, 전술한 영상 크기 조정 과정(역과정 포함)은 본 실시예에서의 영상 내 분할 단위의 크기 조정 과정과 동일하거나 비슷한 적용이 가능할 수 있다.
예를 들어, 도 7의 TL ~ BR은 도 12의 분할 단위 SX(S0 ~ S5)의 TL ~ BR에 대응될 수 있고, 도 7의 S0와 S1은 도 12의 PX와 SX에 대응될 수 있고, 도 7의 P_Width와 P_Height는 도 12의 Sub_PX_Width와 Sub_PX_Height와 대응될 수 있고, 도 7의 P'_Width와 P'_Height는 도 12의 Sub_SX_Width와 Sub_SX_Height와 대응될 수 있고, 도 7의 Exp_L, Exp_R, Exp_T, Exp_B는 도 12의 VarX_L, VarX_R, VarX_T, VarX_B와 대응될 수 있으며, 그 밖의 요인들도 대응될 수 있다.
12a 내지 12f의 영상 내 분할 단위의 크기 조정 과정에서는 분할 단위의 개수에 비례하여 영상 크기 확대 또는 축소에 관한 설정이 존재할 수 있는 점에서 도 7의 7a 및 도 7b에서의 영상 크기 확대 또는 축소와 구별될 수 있다. 또한, 영상 내 분할 단위에 공통으로 적용되는 설정을 갖거나 또는 영상 내 분할 단위에 개별적으로 적용되는 설정을 갖는 차이점이 존재할 수 있다. 후술하는 예에서 다양한 경우의 크기 조정에 대한 경우를 설명할 것이며, 상기 사항을 고려하여 크기 조정 과정이 수행될 수 있다.
본 발명에서 영상의 크기 조정은 영상 내 모든 분할 단위에 수행될 수 있거나 수행되지 않을 수 있고, 일부 분할 단위에 수행될 수 있다. 후술하는 예를 통해 다양한 영상 크기 조정에 관한 경우를 설명한다. 또한, 설명의 편의를 위해 크기 조정 동작은 확장, 크기 조정을 수행하는 방법으로 오프셋 팩터, 크기 조정 방향은 상, 하, 좌, 우 방향, 크기 조정 방향은 크기 조정 정보에 의해 동작하는 설정, 영상의 단위는 픽쳐, 분할 영상의 단위는 타일이라 가정하여 설명한다.
일 예로, 영상의 크기 조정 수행 여부는 일부 단위(예를 들어, sps_img_resizing_enabled_flag. 또는, SEI나 메타 데이터 등)에서 정해질 수 있다. 또는, 영상의 크기 조정 수행 여부는 일부 단위(예를 들어, pps_img_resizing_enabled_flag)에서 정해질 수 있고, 이는 해당 단위(본 예에서 픽쳐)에서 처음 발생하거나 또는 상위 단위에서 활성화(예를 들어, sps_img_resizing_enabled_flag = 1)된 경우에 가능할 수 있다. 또는, 영상의 크기 조정 수행 여부는 일부 단위(예를 들어, tile_resizing_flag[i]. i는 분할 단위 인덱스)에서 정해질 수 있고, 이는 해당 단위(본 예에서 타일)에서 처음 발생하거나 또는 상위 단위에서 활성화된 경우에 가능할 수 있다. 또한, 상기 일부 영상의 크기 조정 여부는 부/복호화 설정에 따라 묵시적으로 정해질 수 있으며, 그에 따라 관련 정보는 생략될 수 있다.
일 예로, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)에 따라 영상 내 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 모든 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 이때, 하나의 영상의 크기 조정을 지시하는 신호가 발생할 수 있다.
일 예로, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])에 따라 영상 내 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 상세하게는, 상기 신호에 따라 영상 내 일부 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 이때, 적어도 하나의 영상의 크기 조정을 지시하는 신호(예를 들어, 분할 단위의 개수만큼 발생)가 발생할 수 있다.
일 예로, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)에 따라 영상의 크기 조정 수행 여부가 정해질 수 있고, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])에 따라 영상 내 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 상세하게는, 일부 신호가 활성화된 경우(예를 들어, pps_img_resizing_enabled_flag = 1)에 추가로 일부 신호(예를 들어, tile_resizing_flag[i])를 확인할 수 있으며, 상기 신호(본 예에서 tile_resizing_flag[i])에 따라 영상 내 일부 분할 단위의 크기 조정 수행 여부가 정해질 수 있다. 이때, 복수의 영상의 크기 조정을 지시하는 신호가 발생할 수 있다.
영상의 크기 조정을 지시하는 신호가 활성화될 경우 영상 크기 조정 관련 정보가 발생할 수 있다. 후술하는 예에서 다양한 영상 크기 조정 관련 정보에 관한 경우를 설명한다.
일 예로, 영상에 적용되는 크기 조정 정보가 발생할 수 있다. 상세하게는, 하나의 크기 조정 정보 또는 크기 조정 정보 세트가 영상 내 모든 분할 단위의 크기 조정 정보로 사용될 수 있다. 예를 들어, 영상 내 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 크기 조정 정보(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향에 모두 적용되는 크기 조정값 등. 본 예에서 1개의 정보) 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 크기 조정 정보 세트(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향의 개수만큼. 본 예에서 최대 4개의 정보)가 발생할 수 있다.
일 예로, 영상 내 분할 단위에 적용되는 크기 조정 정보가 발생할 수 있다. 상세하게는, 적어도 하나의 크기 조정 정보 또는 크기 조정 정보 세트가 영상 내 일부 분할 단위의 크기 조정 정보로 사용될 수 있다. 즉, 하나의 크기 조정 정보 또는 크기 조정 정보 세트가 하나의 분할 단위의 크기 조정 정보로 사용될 수 있거나 또는 복수의 분할 단위의 크기 조정 정보로 사용될 수 있다. 예를 들어, 영상 내 하나의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 크기 조정 정보 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 크기 조정 정보 세트가 발생할 수 있다. 또는, 영상 내 복수의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 크기 조정 정보 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 크기 조정 정보 세트가 발생할 수 있다. 크기 조정 세트의 구성은 적어도 하나의 크기 조정 방향에 대한 크기 조정값 정보를 의미한다.
정리하면, 영상 내 분할 단위에 공통 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상 내 분할 단위에 개별 적용되는 크기 조정 정보가 발생할 수 있다. 후술하는 예는 영상 크기 조정을 수행하는 예와의 조합을 통해 설명될 수 있다.
예를 들어, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상의 크기 조정을 지시하는 신호(예를 들어, pps_img_resizing_enabled_flag)가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])가 활성화될 경우 영상 내 분할 단위에 개별 적용되는 크기 조정 정보가 발생할 수 있다. 또는, 영상의 크기 조정을 지시하는 신호(예를 들어, tile_resizing_flag[i])가 활성화될 경우 영상 내 분할 단위에 공통 적용되는 크기 조정 정보가 발생할 수 있다.
영상의 크기 조정 방향, 크기 조정 정보 등은 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 특성, 종류 등에 따라 기 설정된 값으로 크기 조정 정보를 할당할 수 있다.
전술한 본 발명의 크기 조정 과정에서의 크기 조정 방향은 상, 하, 좌, 우 방향 중 적어도 하나의 방향이며, 크기 조정 방향과 크기 조정 정보는 명시적 또는 묵시적인 처리가 가능하다는 설명을 하였다. 즉, 일부 방향은 묵시적으로 크기 조정값(0 포함. 즉, 조정 없음)이 미리 결정되고 일부 방향은 명시적으로 크기 조정값(0 포함. 즉, 조정 없음)이 할당될 수 있다.
영상 내 분할 단위에서도 크기 조정 방향과 크기 조정 정보는 묵시적 또는 명시적인 처리가 가능한 설정을 둘 수 있으며, 이는 영상 내 분할 단위에 적용될 수 있다. 예를 들어, 영상 내 하나의 분할 단위에 적용되는 설정(본 예에서 분할 단위만큼 발생)이 발생할 수 있거나 또는 영상 내 복수의 분할 단위에 적용되는 설정이 발생할 수 있거나 또는 영상 내 모든 분할 단위에 적용되는 설정(본 예에서 하나의 설정이 발생)이 발생할 수 있으며, 영상에 적어도 하나의 설정이 발생할 수 있다(예를 들어, 하나의 설정부터 분할 단위 개수만큼의 설정이 발생가능). 상기 영상 내 분할 단위에 적용되는 설정 정보를 모아 하나의 설정 세트가 정의될 수 있다.
도 13은 영상 내 분할 단위의 크기 조정 또는 설정 세트에 대한 예시도이다.
상세하게는, 영상 내 분할 단위의 크기 조정 방향과 크기 조정 정보의 묵시적 또는 명시적인 처리의 다양한 예를 나타낸다. 후술하는 예에서 설명의 편의를 위해 묵시적인 처리는 일부 크기 조정 방향의 크기 조정값이 0인 경우라 가정하여 설명한다.
13a와 같이 분할 단위의 경계가 영상의 경계와 일치하는 경우(본 예에서 굵은 실선)에 크기 조정의 명시적인 처리를, 일치하지 않은 경우(얇은 실선)에는 묵시적인 처리를 할 수 있다. 예를 들어, P0는 상 방향 및 좌 방향(a2, a0), P1은 상 방향(a2), P2는 상 방향 및 우 방향(a2, a1), P3는 하 방향 및 좌 방향(a3, a0), P4는 하 방향(a3), P5는 하 방향 및 우 방향(a3, a1)으로 크기 조정이 가능할 수 있고, 그 외의 방향으로 크기 조정이 불가능할 수 있다.
13b와 같이 분할 단위의 일부 방향(본 예에서 상, 하)은 크기 조정의 명시적인 처리를 할 수 있고, 분할 단위의 일부 방향(본 예에서 좌, 우)은 분할 단위의 경계가 영상의 경계와 일치하는 경우에 명시적인 처리(본 예에서 굵은 실선)를, 일치하지 않는 경우(본 예에서 얇은 실선)에는 묵시적인 처리를 할 수 있다. 예를 들어, P0는 상, 하, 좌 방향(b2, b3, b0), P1은 상, 하 방향(b2, b3), P2는 상, 하, 우 방향(b2, b3, b1), P3는 상, 하, 좌 방향(b3, b4, b0), P4는 상, 하 방향(b3, b4), P5는 상, 하, 우 방향(b3, b4, b1)으로 크기 조정이 가능할 수 있고, 그 외의 방향은 크기 조정이 불가능할 수 있다.
13c와 같이 분할 단위의 일부 방향(본 예에서 좌, 우)은 크기 조정의 명시적인 처리를 할 수 있고, 분할 단위의 일부 방향(본 예에서 상, 하)은 분할 단위의 경계가 영상의 경계와 일치하는 경우(본 예에서 굵은 실선)에 명시적인 처리를, 일치하지 않는 경우(본 예에서 얇은 실선)에는 묵시적인 처리를 할 수 있다. 예를 들어, P0는 상, 좌, 우 방향(c4, c0, c1), P1은 상, 좌, 우 방향(c4, c1, c2), P2는 상, 좌, 우 방향(c4, c2, c3), P3는 하, 좌, 우 방향(c5, c0, c1), P4는 하, 좌, 우 방향(c5, c1, c2), P5는 하, 좌, 우 방향(c5, c2, c3)으로 크기 조정이 가능할 수 있고, 그 외의 방향은 크기 조정이 불가능할 수 있다.
상기 예와 같이 영상의 크기 조정 관련된 설정은 다양한 경우를 가질 수 있다. 복수의 설정 세트가 지원되어 명시적으로 설정 세트 선택 정보가 발생할 수 있거나 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 기 설정된 설정 세트가 묵시적으로 결정될 수 있다.
도 14는 영상 크기 조정 과정과 영상 내 분할 단위의 크기 조정 과정을 함께 표현한 예시도이다.
도 14를 참조하면, 영상 크기 조정 과정 및 역과정은 e와 f로 진행될 수 있으며, 영상 내 분할 단위의 크기 조정 과정 및 역과정은 d 및 g로 진행될 수 있다. 즉, 영상에 크기 조정 과정을 수행할 수 있고, 영상 내 분할 단위의 크기 조정을 수행할 수 있으며, 크기 조정 과정의 순서는 고정적이지 않을 수 있다. 이는 복수의 크기 조정 과정이 가능할 수 있다는 것을 의미한다.
정리하면, 영상의 크기 조정 과정은 영상의 크기 조정(또는 분할 전 영상의 크기 조정)과 영상 내 분할 단위의 크기 조정(또는 분할 후 영상의 크기 조정)으로 분류할 수 있으며, 영상의 크기 조정과 영상 내 분할 단위의 크기 조정을 둘 다 수행하지 않을 수 있고, 둘 중 하나를 수행할 수 있고, 둘 다 수행할 수 있으며, 이는 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 결정될 수 있다.
상기 예에서 복수 개의 크기 조정 과정을 수행하는 경우, 영상의 크기 조정은 영상의 상, 하, 좌, 우 방향 중 적어도 하나의 방향으로 크기 조정을 수행할 수 있고, 영상 내 분할 단위 중 적어도 하나의 분할 단위의 크기 조정을 수행할 수 있으며, 이때 크기 조정을 수행하는 분할 단위의 상, 하, 좌, 우 방향 중 적어도 하나의 방향으로 크기 조정을 수행할 수 있다.
도 14를 참조하면, 크기 조정 전 영상(A)의 크기는 P_Width × P_Height, 1차 크기 조정 후 영상(또는 2차 크기 조정 전 영상, B)의 크기는 P'_Width × P'_Height, 2차 크기 조정 후 영상(또는 최종 크기 조정 후 영상, C)의 크기는 P''_Width × P''_Height라고 정의할 수 있다. 크기 조정 전 영상(A)은 어떤 크기 조정도 수행되지 않는 영상을 의미하며, 1차 크기 조정 후 영상(B)은 일부 크기 조정이 수행된 영상을 의미하며, 2차 크기 조정 후 영상(C)은 모든 크기 조정이 수행된 영상을 의미한다. 예를 들어, 1차 크기 조정 후 영상(B)은 도 13a 내지 도 13c에서와 같이 영상 내 분할 단위의 크기 조정이 수행된 영상을 의미하며, 2차 크기 조정 후 영상(C)은 도 7a에서와 같이 1차 크기 조정된 영상(B) 전체에 대하여 크기 조정이 수행된 영상을 의미할 수 있고, 그 반대의 경우 또한 가능하다. 상기 예에 한정되지 않고 다양한 변형의 예가 가능할 수 있다.
1차 크기 조정 후 영상(B)의 크기에서 P'_Width는 P_Width와 가로로 크기 조정 가능한 좌 또는 우 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있고, P'_Height는 P_Height와 세로로 크기 조정 가능한 상 또는 하 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있다. 이때, 상기 크기 조정값은 분할 단위에서 발생하는 크기 조정값일 수 있다.
2차 크기 조정 후 영상(C)의 크기에서 P''_Width는 P'_Width와 가로로 크기 조정 가능한 좌 또는 우 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있고, P''_Height는 P'_Height와 세로로 크기 조정 가능한 상 또는 하 방향의 적어도 하나의 크기 조정값을 통해 획득될 수 있다. 이때, 상기 크기 조정값은 영상에서 발생하는 크기 조정값일 수 있다.
정리하면, 크기 조정 후 영상의 크기는 크기 조정 전 영상의 크기와 적어도 하나의 크기 조정값을 통해 획득될 수 있다.
영상의 크기 조정되는 영역에 데이터 처리 방법에 관한 정보가 발생할 수 있다. 후술하는 예를 통해 다양한 데이터 처리 방법에 관한 경우를 설명하며, 크기 조정 역과정에서 발생하는 데이터 처리 방법의 경우도 크기 조정 과정의 경우와 동일하거나 비슷한 적용이 가능하며, 크기 조정 과정과 크기 조정 역과정에서의 데이터 처리 방법이 후술하는 경우의 다양한 조합을 통해 설명될 수 있다.
일 예로, 영상에 적용되는 데이터 처리 방법이 발생할 수 있다. 상세하게는, 하나의 데이터 처리 방법 또는 데이터 처리 방법 세트가 영상 내 모든 분할 단위(본 예에서 모든 분할 단위가 크기 조정되는 경우라 가정)의 데이터 처리 방법으로 사용될 수 있다. 예를 들어, 영상 내 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 데이터 처리 방법(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향에 모두 적용되는 데이터 처리 방법 등. 본 예에서 1개의 정보) 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 데이터 처리 방법 세트(또는, 분할 단위에서 지원되거나 허용되는 크기 조정 방향의 개수만큼. 본 예에서 최대 4개의 정보)가 발생할 수 있다.
일 예로, 영상 내 분할 단위에 적용되는 데이터 처리 방법이 발생할 수 있다. 상세하게는, 적어도 하나의 데이터 처리 방법 또는 데이터 처리 방법 세트가 영상 내 일부 분할 단위(본 예에서 크기 조정되는 분할 단위라 가정)의 데이터 처리 방법으로 사용될 수 있다. 즉, 하나의 데이터 처리 방법 또는 데이터 처리 방법 세트가 하나의 분할 단위의 데이터 처리 방법으로 사용될 수 있거나 또는 복수의 분할 단위의 데이터 처리 방법으로 사용될 수 있다. 예를 들어, 영상 내 하나의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 데이터 처리 방법 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 데이터 처리 방법 세트가 발생할 수 있다. 또는, 영상 내 복수의 분할 단위의 상, 하, 좌, 우 방향에 공통 적용되는 하나의 데이터 처리 방법 또는 상, 하, 좌, 우 방향에 각각 적용되는 하나의 데이터 처리 방법 정보 세트가 발생할 수 있다. 데이터 처리 방법 세트의 구성은 적어도 하나의 크기 조정 방향에 대한 데이터 처리 방법을 의미한다.
정리하면, 영상 내 분할 단위에 공통 적용되는 데이터 처리 방법을 사용할 수 있다. 또는, 영상 내 분할 단위에 개별 적용되는 데이터 처리 방법을 사용할 수 있다. 상기 데이터 처리 방법은 기 설정된 방법을 사용할 수 있다. 기 설정된 데이터 처리 방법은 적어도 하나의 방법을 둘 수 있으며, 이는 묵시적인 경우에 해당하며 명시적으로 데이터 처리 방법에 대한 선택 정보가 발생할 수 있고, 이는 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 정해질 수 있다.
즉, 영상 내 분할 단위에 공통 적용되는 데이터 처리 방법을 사용할 수 있으며, 기 설정된 방법을 사용하거나 또는 복수의 데이터 처리 방법 중 하나를 선택할 수 있다. 또는, 영상 내 분할 단위에 개별 적용되는 데이터 처리 방법을 사용할 수 있으며, 분할 단위에 따라 기 설정된 방법을 사용하거나 또는 복수의 데이터 처리 방법 중 하나를 선택할 수 있다.
후술하는 예는 영상 내 분할 단위의 크기 조정(본 예에서 확장이라 가정)에 관한 일부 경우(본 예에서 영상의 일부 데이터를 사용하여 크기 조정 영역을 채움)를 설명한다.
일부 단위(예를 들어, 도 12a 내지 도 12f의 S0 내지 S5)의 일부 영역(TL ~ BR)은 일부 단위(도 12a 내지 도 12f의 P0 내지 P5)의 일부 영역(tl ~ br)의 데이터를 사용하여 크기 조정을 수행할 수 있다. 이때, 상기 일부 단위는 동일하거나(예를 들면 S0과 P0) 동일하지 않는 영역(예를 들면 S0 과 P1)일 수 있다. 즉, 크기 조정되는 영역(TL 내지 BR)은 해당 분할 단위의 일부 데이터(tl 내지 br)를 사용하여 채울 수 있고, 크기 조정되는 영역은 해당 분할 단위와 다른 분할 단위의 일부 데이터를 사용하여 채울 수 있다.
일 예로, 현재 분할 단위의 크기 조정되는 영역(TL ~ BR)은 현재 분할 단위의 tl ~ br 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, S0의 TL은 P0의 tl 데이터를, S1의 RC는 P1의 tr + rc + br 데이터를, S2의 BL + BC는 P2의 bl + bc + br 데이터를, S3의 TL + LC + BL은 P3의 tl + lc + bl의 데이터를 사용하여 채울 수 있다.
일 예로, 현재 분할 단위의 크기 조정되는 영역(TL ~ BR)은 현재 분할 단위에 공간적으로 인접한 분할 단위의 tl ~ br 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, S4의 TL + TC + TR은 상 방향의 P1의 bl + bc + br 데이터를, S2의 BL + BC는 하 방향의 P5의 tl + tc + tr 데이터를, S2의 LC + BL은 좌 방향의 P1의 tl + rc + bl 데이터를, S3의 RC는 우 방향의 P4의 tl + lc + bl 데이터를, S0의 BR은 좌하 방향의 P4의 tl 데이터를 사용하여 채울 수 있다.
일 예로, 현재 분할 단위의 크기 조정되는 영역(TL ~ BR)은 현재 분할 단위에 공간적으로 인접하지 않은 분할 단위의 tl ~ br 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, 영상의 양 끝 경계(예를 들어, 좌우, 상하 등) 영역의 데이터를 획득할 수 있다. S3의 LC는 S5의 tr + rc + br 데이터를, S2의 RC는 S0의 tl + lc 데이터를, S4의 BC는 S1의 tc + tr 데이터를, S1의 TC는 S4의 bc 데이터를 사용하여 획득할 수 있다.
또는, 영상의 일부 영역 데이터(공간적으로 인접하지 않지만 크기 조정되는 영역과 상관성이 높다고 판단되는 영역)를 획득할 수 있다. S1의 BC는 S3의 tl + lc + bl 데이터를, S3의 RC는 S1의 tl + tc 데이터를, S5의 RC는 S0의 bc 데이터를 사용하여 획득할 수 있다.
또한, 영상 내 분할 단위의 크기 조정(본 예에서 축소라 가정)에 관한 일부 경우(본 예에서 영상의 일부 데이터를 사용하여 복원 또는 보정하여 제거)는 다음과 같다.
일부 단위(예를 들어, 도 12a 내지 도 12f의 S0 내지 S5)의 일부 영역(TL ~ BR)은 일부 단위(P0 내지 P5)의 일부 영역(tl ~ br)의 복원 또는 보정 과정에 사용될 수 있다. 이때, 상기 일부 단위는 동일하거나(예를 들면 S0과 P0) 동일하지 않는 영역(예를 들면 S0와 P2)일 수 있다. 즉, 크기 조정되는 영역은 해당 분할 단위의 일부 데이터 복원에 사용되고 제거될 수 있고, 크기 조정되는 영역은 해당 분할 단위와 다른 분할 단위의 일부 데이터 복원에 사용되고 제거될 수 있다. 상세한 예는 확장 과정으로부터 역으로 유도 가능하므로 생략한다.
상기 예는 크기 조정되는 영역에 상관성이 높은 데이터가 존재할 경우에 적용되는 예일 수 있으며, 크기 조정에 참조되는 위치에 대한 정보는 명시적으로 생성될 수 있거나 묵시적으로 기 설정된 규칙에 따라 획득될 수 있거나 이를 혼합하여 관련 정보를 확인할 수 있다. 이는 360도 영상의 부호화에서 연속성이 존재하는 다른 영역으로부터 데이터를 획득하는 경우에 적용되는 예일 수 있다.
다음은 본 발명의 일 실시예에 따른 부/복호화 장치에서 영상 내 분할 단위의 크기 조정을 수행하는 예를 나타낸다.
부호화 시작 전에 입력 영상에 대한 분할 과정을 수행할 수 있다. 분할 단위에 크기 조정 정보를 사용하여 크기 조정 과정을 수행할 수 있으며, 분할 단위의 크기 조정 후 영상을 부호화할 수 있다. 부호화 완료 후 메모리에 저장할 수 있고, 영상 부호화 데이터를 비트스트림에 수록하여 전송할 수 있다.
복호화 시작 전에 분할 정보를 사용하여 분할 과정을 수행할 수 있다. 분할 단위에 크기 조정 정보를 사용하여 크기 조정 과정을 수행하고, 크기 조정이 수행된 분할 단위로 영상 복호화 데이터를 파싱하여 복호화할 수 있다. 복호화 완료 후 메모리에 저장할 수 있고, 분할 단위의 크기 조정 역과정을 수행한 후 분할 단위를 하나로 병합하여 영상을 출력할 수 있다.
전술한 영상 크기 조정 과정에서의 다른 경우도 상기 예와 같이 변경 적용될 수 있으며, 이에 한정되지 않고 다른 예로의 변경 또한 가능할 수 있다.
상기 영상 설정 과정에서 영상 크기 조정과 영상 재구성의 조합이 가능할 수 있다. 영상 크기 조정이 수행된 후에 영상 재구성이 수행될 수 있거나 영상 재구성이 수행된 후에 영상 크기 조정이 수행될 수 있다. 또한, 영상 분할과 영상 재구성, 영상 크기 조정의 조합이 가능할 수 있다. 영상 분할이 수행된 후에 영상 크기 조정과 영상 재구성이 수행될 수 있으며, 영상 설정의 순서는 고정적이지 않고 변경 가능하며 이는 부/복호화 설정에 따라 정해질 수 있다. 본 예에서 영상 설정 과정은 영상 분할이 수행된 후에 영상 재구성이 수행되고 영상 크기 조정이 수행되는 경우에 대한 설명을 하지만, 부/복호화 설정에 따라 다른 순서도 가능하고 다른 경우로 변경 또한 가능할 수 있다.
예를 들어, 분할 -> 재구성, 재구성 -> 분할, 분할 -> 크기 조정, 크기 조정 -> 분할, 크기 조정 -> 재구성, 재구성 -> 크기 조정, 분할 -> 재구성 -> 크기 조정, 분할 -> 크기 조정 -> 재구성, 크기 조정 -> 분할 -> 재구성, 크기 조정 -> 재구성 -> 분할, 재구성 -> 분할 -> 크기 조정, 재구성 -> 크기 조정 -> 분할 등과 같은 순서로 진행될 수도 있으며, 추가적인 영상 설정과의 조합 또한 가능할 수 있다. 전술한 것과 같이 영상 설정 과정이 순차적으로 진행될 수도 있지만, 전부 또는 일부 설정 과정은 동시에 진행하는 것 또한 가능할 수 있다. 또한, 일부 영상 설정 과정은 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 복수의 과정이 수행될 수 있다. 다음은 영상 설정 과정의 다양한 조합의 경우 예를 나타낸다.
일 예로, 도 11a의 P0 ~ P5는 도 11b의 S0 ~ S5에 대응될 수 있고 분할 단위에 재구성 과정(본 예에서 화소의 재배치), 크기 조정 과정(본 예에서 분할 단위에 동일한 크기 조정)이 수행될 수 있다. 예를 들어, P0 내지 P5에 오프셋을 통한 크기 조정을 적용하여 S0 내지 S5에 할당할 수 있다. 또한, P0에 재구성을 수행하지 않고 S0에 할당할 수 있고, P1에 90도 회전을 적용하여 S1에 할당할 수 있고, P2에 180도 회전을 적용하여 S2에 할당할 수 있고, P3에 270도 회전을 적용하여 S3에 할당할 수 있고, P4에 좌우 반전을 적용하여 S4에 할당할 수 있고, P5에 상하 반전을 적용하여 S5에 할당할 수 있다.
일 예로, 도 11a의 P0 ~ P5는 도 11b의 S0 ~ S5에 같거나 상이한 위치끼리 대응될 수 있고 분할 단위에 재구성 과정(본 예에서 화소와 분할 단위의 재배치), 크기 조정 과정(본 예에서 분할 단위에 동일한 크기 조정)이 수행될 수 있다. 예를 들어, P0 내지 P5에 스케일을 통한 크기 조정을 적용하여 S0 내지 S5에 할당할 수 있다. 또한, P0에 재구성을 수행하지 않고 S0에 할당할 수 있고, P1에 재구성을 수행하지 않고 S2에 할당할 수 있고, P2에 90도 회전을 적용하여 S1에 할당할 수 있고, P3에 좌우 반전을 적용하여 S4에 할당할 수 있고, P4에 90도 회전 후 좌우 반전을 적용하여 S5에 할당할 수 있고, P5에 좌우 반전 후 180도 회전을 적용하여 S3에 할당할 수 있다.
일 예로, 도 11a의 P0 ~ P5는 도 5e의 E0 ~ E5에 대응될 수 있고 분할 단위에 재구성 과정(본 예에서 화소와 분할 단위의 재배치), 크기 조정 과정(본 예에서 분할 단위에 동일하지 않은 크기 조정)이 수행될 수 있다. 예를 들어, P0에 크기 조정과 재구성은 수행하지 않고 E0에 할당할 수 있고, P1에 스케일을 통한 크기 조정을 수행하고 재구성은 수행하지 않고 E1에 할당할 수 있고, P2에 크기 조정은 수행하지 않고 재구성은 수행하여 E2에 할당할 수 있고, P3에 오프셋을 통한 크기 조정을 수행하고 재구성은 수행하지 않고 E4에 할당할 수 있고, P4에 크기 조정은 수행하지 않고 재구성은 수행하여 E5에 할당할 수 있고, P5에 오프셋을 통한 크기 조정을 수행하고 재구성은 수행하여 E3에 할당할 수 있다.
상기 예와 같이 영상 설정 과정 전과 후의 분할 단위의 영상 내 절대적인 위치 또는 상대적인 위치가 유지될 수 있거나 변경될 수도 있으며, 이는 부/복호화 설정(예를 들어, 영상의 특성, 종류 등)에 따라 결정될 수 있다. 또한, 다양한 영상 설정 과정의 조합이 가능할 수 있으며, 상기 예에 한정되지 않고 다양한 예로의 변형 또한 가능할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
Figure PCTKR2017011138-appb-T000004
다음은 복수의 영상 설정에 관련된 구문 요소들에 대한 예를 나타낸다. 후술하는 예에서는 추가되는 구문 요소를 중심으로 설명할 것이다. 또한, 후술하는 예의 구문 요소는 어느 특정 단위에 한정되는 것은 아니며 시퀀스, 픽쳐, 슬라이스, 타일 등의 다양한 단위에서 지원되는 구문 요소일 수 있다. 또는, SEI, 메타 데이터 등에 포함되는 구문 요소일 수 있다.
표 4를 참조하면, parts_enabled_flag는 일부 단위의 분할 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(parts_enabled_flag = 1)에는 복수의 단위로 분할하여 부/복호화를 수행하는 것을 의미하며 추가적인 분할 정보를 확인할 수 있다. 비활성화되는 경우(parts_enabled_flag = 0)에는 기존 영상을 부/복호화하는 것을 의미한다. 본 예는 타일과 같은 직사각 형태의 분할 단위를 중심으로 설명할 것이며, 기존의 타일과 분할 정보에 대한 다른 설정을 가질 수 있다.
num_partitions은 분할 단위 개수에 대한 구문 요소를 의미하며, 1을 더한 값은 분할 단위의 개수를 의미한다.
part_top[i]와 part_left[i]는 분할 단위의 위치 정보에 대한 구문 요소를 의미하며, 분할 단위의 가로, 세로 시작 위치(예를 들어, 분할 단위의 좌측 상단 위치)를 의미한다. part_width[i]와 part_height[i]는 분할 단위의 크기 정보에 대한 구문 요소를 의미하며, 분할 단위의 가로, 세로 길이를 의미한다. 이때, 시작 위치와 크기 정보는 화소 단위 또는 블록 단위로 설정될 수 있다. 또한, 상기 구문 요소는 영상 재구성 과정에서 발생 가능한 구문 요소일 수 있거나 또는 영상 분할 과정과 영상 재구성 과정이 혼합 구성되는 경우에 발생 가능한 구문 요소일 수 있다.
part_header_enabled_flag는 분할 단위에 부/복호화 설정 지원 여부에 대한 구문 요소를 의미한다. 활성화되는 경우(part_header_enabled_flag = 1)에는 분할 단위의 부/복호화 설정을 가질 수 있으며, 비활성화되는 경우(part_header_enabled_flag = 0)에는 부/복호화 설정을 가질 수 없고 상위 단위의 부/복호화 설정을 할당받을 수 있다.
상기 예는 후술하는 영상 설정 중 분할 단위에서 크기 조정과 재구성에 관련된 구문 요소들에 대한 일 예로 이에 한정되지 않으며, 본 발명의 다른 분할 단위 및 설정 등의 변경 적용이 가능할 수 있다. 본 예는 분할이 수행된 후 크기 조정과 재구성을 수행한다는 가정 하에 설명되지만 이에 한정되지 않으며, 다른 영상 설정 순서 등에 따라 변경 적용 가능할 수 있다. 또한, 후술하는 예에서 지원되는 구문 요소의 종류, 구문 요소의 순서, 조건 등은 본 예에서만 한정될 뿐 부/복호화 설정에 따라 변경되고 정해질 수 있다.
Figure PCTKR2017011138-appb-T000005
표 5는 영상 설정 중 분할 단위에서 재구성에 관련된 구문 요소들에 대한 예를 나타낸다.
표 5를 참조하면, part_convert_flag[i]는 분할 단위의 재구성 여부에 대한 구문 요소를 의미한다. 상기 구문 요소는 분할 단위마다 발생할 수 있으며, 활성화되는 경우(part_convert_flag[i] = 1)에는 재구성된 분할 단위를 부/복호화하는 것을 의미하며 추가적인 재구성 관련 정보를 확인할 수 있다. 비활성화되는 경우(part_convert_flag[i] = 0)에는 기존의 분할 단위를 부/복호화하는 것을 의미한다. convert_type_flag[i]는 분할 단위의 재구성에 관한 모드 정보를 의미하며, 화소의 재배치에 관한 정보일 수 있다.
또한, 분할 단위 재배치와 같은 추가적인 재구성에 대한 구문 요소가 발생할 수 있다. 본 예에서는 전술한 영상 분할에 관한 구문 요소인 part_top과 part_left를 통해 분할 단위의 재배치를 수행할 수도 있고, 또는 분할 단위 재배치에 관련된 구문 요소(예를 들어, 인덱스 정보 등)가 발생할 수도 있다.
Figure PCTKR2017011138-appb-T000006
표 6은 영상 설정 중 분할 단위에서 크기 조정에 관련된 구문 요소들에 대한 예를 나타낸다.
표 6을 참조하면, part_resizing_flag[i]는 분할 단위의 영상 크기 조정 여부에 대한 구문 요소를 의미한다. 상기 구문 요소는 분할 단위마다 발생할 수 있으며, 활성화되는 경우(part_resizing_flag[i] = 1)에는 크기 조정 후 분할 단위를 부/복호화하는 것을 의미하며 추가적인 크기 관련 정보를 확인할 수 있다. 비활성화되는 경우(part_resiznig_flag[i] = 0)에는 기존의 분할 단위를 부/복호화하는 것을 의미한다.
width_scale[i]과 height_scale[i]은 분할 단위에서 스케일 팩터를 통한 크기 조정에서 가로 크기 조정, 세로 크기 조정과 관련된 스케일 팩터를 의미한다.
top_height_offset[i]와 bottom_height_offset[i]는 분할 단위에서 오프셋 팩터를 통한 크기 조정과 관련된 상 방향, 하 방향의 오프셋 팩터를 의미하고, left_width_offset[i]와 right_width_offset[i]는 분할 단위에서 오프셋 팩터를 통한 크기 조정과 관련된 좌 방향, 우 방향의 오프셋 팩터를 의미한다.
resizing_type_flag[i][j]는 분할 단위에서 크기 조정되는 영역의 데이터 처리 방법에 대한 구문 요소를 의미한다. 상기 구문 요소는 크기 조정되는 방향에 개별적인 데이터 처리 방법을 의미한다. 예를 들어, 상, 하, 좌, 우 방향으로 크기 조정되는 영역의 개별적인 데이터 처리 방법에 대한 구문 요소가 발생할 수 있다. 이는 크기 조정 정보(예를 들어, 일부 방향으로 크기 조정되는 경우에만 발생가능)에 기반하여 생성될 수도 있다.
전술하는 영상 설정의 과정은 영상의 특성, 종류 등에 따라 적용되는 과정일 수 있다. 후술하는 예에서는 특별한 언급이 없더라도 전술한 영상 설정 과정을 동일하게 적용할 수 있거나 변경된 적용이 가능할 수 있다. 후술하는 예에서는 전술한 예에서 추가적이거나 변경 적용되는 경우를 중심으로 설명을 할 것이다.
예를 들어, 360도 카메라를 통해 생성되는 영상{360도 영상(360-degree Video) 또는 전방위 영상(Omnidirectional Video)}의 경우 일반 카메라를 통해 획득되는 영상과 다른 특성을 가지며, 일반적인 영상의 압축과는 다른 부호화 환경을 갖는다.
일반적인 영상과 달리 360도 영상은 불연속적인 특성을 갖는 경계 부분은 존재하지 않고 모든 영역의 데이터는 연속성을 가질 수 있다. 또한, HMD와 같은 장치에서는 렌즈를 통해 눈 앞에서 영상이 재생되어 고화질의 영상을 요구할 수 있고, 양안식(Stereoscopic) 카메라를 통해 영상이 획득되는 경우 처리되는 영상 데이터는 증가할 수 있다. 상기 예를 포함하여 효율적인 부호화 환경을 제공하기 위한 목적으로 360도 영상을 고려한 다양한 영상 설정 과정이 수행될 수 있다.
상기 360도 카메라는 복수의 카메라 또는 복수의 렌즈와 센서를 갖는 카메라일 수 있으며, 상기 카메라 또는 렌즈는 카메라에서 캡쳐하는 임의의 중앙점을 중심으로 주위의 모든 방향을 다룰 수 있다.
360도 영상은 다양한 방법을 사용하여 부호화를 수행할 수 있다. 예를 들어, 3차원 공간에서의 다양한 영상 처리 알고리즘을 사용하여 부호화를 수행할 수 있고, 2차원 공간으로 변환하여 다양한 영상 처리 알고리즘을 사용하여 부호화를 수행할 수도 있다. 본 발명에서는 360도 영상을 2차원 공간으로 변환하여 부/복호화를 수행하는 방법을 중심으로 설명할 것이다.
본 발명의 일 실시예에 따른 360도 영상 부호화 장치는 도 1에 따른 구성 중 전부 또는 일부를 포함하여 구성될 수 있으며, 입력 영상에 대하여 전처리 (Stitching, Projection, Region-wise Packing)를 수행하는 전처리부를 추가로 포함할 수 있다. 한편, 본 발명의 일 실시예에 따른 360도 영상 복호화 장치는 도 2에 따른 구성의 전부 또는 일부를 포함할 수 있고, 복호화되어 출력 영상으로 재생되기 이전에 후처리(Rendering)를 수행하는 후처리부를 더 포함할 수 있다.
다시 설명하면, 부호화기에서 입력 영상에 대한 전처리 과정(Pre-processing)을 거친 후에 부호화를 수행하여 이에 대한 비트스트림을 전송할 수 있고, 복호화기에서 전송된 비트스트림을 파싱하여 복호화를 수행하고 후처리 과정(Post-processing)을 거친 후에 출력 영상을 생성할 수 있다. 이때, 비트스트림에는 전처리 과정에서 발생하는 정보와 부호화 과정에서 발생하는 정보가 수록되어 전송될 수 있고, 복호화기에서 이를 파싱하여 복호화 과정과 후처리 과정에서 사용할 수 있다.
다음은 360도 영상 부호화기의 동작 방법에 대하여 더 상세히 설명하고, 360도 영상 복호화기의 동작 방법은 360도 영상 부호화기의 반대 동작이므로 통상의 기술자가 용이하게 도출할 수 있어 자세한 설명은 생략한다.
입력 영상은 구(Sphere) 단위의 3차원 투영 구조(Projection Structure)에 스티칭(Stitching) 및 투영(Projection) 과정이 수행될 수 있고, 상기 과정을 통해 3차원 투영 구조 상의 영상 데이터는 2차원 영상으로 투영될 수 있다.
투영된 영상(Projected Image)은 부호화 설정에 따라 360도 콘텐츠의 전부 또는 일부를 포함하여 구성될 수 있다. 이때, 투영된 영상의 중앙에 배치될 영역(또는 화소)의 위치 정보를 묵시적으로 기 설정된 값으로 생성하거나 또는 명시적으로 위치 정보를 생성할 수 있다. 또한, 360도 콘텐츠 중 일부 영역을 포함하여 투영된 영상을 구성할 경우, 포함되는 영역의 범위, 위치 정보를 생성할 수 있다. 또한, 투영 영상에서 관심 영역(Region of Interest. ROI)에 대한 범위 정보(예를 들어, 가로, 세로 길이), 위치 정보(예를 들어, 영상의 좌측 상단을 기준으로 측정)를 생성할 수 있다. 이때, 360도 콘텐츠 중 높은 중요도를 갖는 일부 영역을 관심 영역으로 설정할 수 있다. 360도 영상은 상, 하, 좌, 우 방향의 모든 콘텐츠를 볼 수 있지만, 사용자의 시선은 영상의 일부분에 한정될 수 있으며, 이를 고려하여 관심 영역으로 설정할 수 있다. 효율적인 부호화를 위해 관심 영역에는 좋은 품질, 해상도를 갖게 설정할 수 있고, 그 외 영역은 관심 영역보다는 낮은 품질, 해상도를 갖게 설정할 수 있다.
360도 영상 전송 방식 중 단일 스트림 전송 방식(Single Stream)은 사용자에 대한 개별 단일 비트스트림으로 전체 영상 또는 뷰포트(Viewport) 영상을 전송할 수 있다. 다중 스트림 전송 방식(Multi Stream)은 영상의 품질이 다른 여러 개의 전체 영상을 다중 비트스트림으로 전송함으로써 사용자 환경, 통신 상황에 따라 영상 품질을 선택할 수 있다. 타일 스트림(Tiled Stream) 전송 방식은 개별적으로 부호화된 타일 단위의 부분 영상을 다중 비트스트림으로 전송함으로써 사용자 환경, 통신 상황에 따라 타일을 선택할 수 있다. 따라서, 360도 영상 부호화기는 둘 이상의 품질을 갖는 비트스트림을 생성하여 전송하고, 360도 영상 복호화기는 사용자의 시선에 따라 관심 영역을 설정하고 관심 영역에 따라 선택적으로 복호화할 수 있다. 즉, 머리 추적(Head Tracking) 또는 안구 추적(Eye Tracking) 시스템을 통해 사용자의 시선이 머무는 곳을 관심 영역으로 설정하고, 필요한 부분만 렌더링(Rendering)을 진행할 수 있다.
투영된 영상은 지역별 포장(Region-wise Packing) 과정을 수행하여 포장된 영상(Packed Image)으로 변환될 수 있다. 지역별 포장 과정은 투영된 영상을 복수의 지역으로 분할하는 단계를 포함할 수 있고, 이때 분할된 각 지역은 지역별 포장 설정에 따라 포장된 영상에 배치(또는 재배치)될 수 있다. 지역별 포장은 360도 영상을 2차원 영상(또는 투영된 영상)으로 변환할 때 공간적인 연속성을 높이기 위한 목적으로 수행될 수 있고, 지역별 포장을 통해 영상의 크기를 줄일 수 있다. 또한, 렌더링시 발생하는 화질 열화를 줄일 수 있고, 뷰포트 기반의 투영이 가능하게 하며, 다른 타입의 투영 포맷을 제공하기 위한 목적으로 수행될 수 있다. 지역별 포장은 부호화 설정에 따라 수행되거나 또는 수행되지 않을 수 있으며, 수행 여부를 지시하는 신호(예를 들어, regionwise_packing_flag, 후술하는 예에서 지역별 포장 관련 정보는 regionwise_packing_flag가 활성화되는 경우에만 발생 가능)에 기반하여 결정될 수 있다.
지역별 포장이 수행될 경우에는 투영된 영상의 일부 영역이 포장된 영상의 일부 영역으로 할당(또는 배치)되는 설정 정보(또는 매핑 정보) 등을 표시(또는 생성) 할 수 있다. 지역별 포장이 수행되지 않는 경우에는 투영된 영상과 포장된 영상은 동일한 영상일 수 있다.
앞에서는 스티칭, 투영, 지역별 포장 과정을 개별적인 과정으로 정의하였으나, 상기 과정 중 일부(예를 들어, 스티칭+투영, 투영+지역별 포장) 또는 전부(예를 들어, 스티칭+투영+지역별 포장)가 하나의 과정으로 정의될 수 있다.
상기 스티칭, 투영, 지역별 포장 과정 등의 설정에 따라 동일한 입력 영상에 대하여 적어도 하나의 포장된 영상을 생성할 수 있다. 또한, 지역별 포장 과정의 설정에 따라 동일한 투영된 영상에 대한 적어도 하나의 부호화 데이터를 생성할 수 있다.
타일링(Tiling) 과정을 수행하여 포장된 영상을 분할할 수 있다. 이때, 타일링은 영상을 복수의 영역으로 분할, 전송하는 과정으로 상기 360도 영상 전송 방식의 일 예일 수 있다. 타일링은 전술한 것과 같이 사용자 환경 등을 고려하여 부분적인 복호화(Partial Decoding)을 위한 목적으로 수행할 수 있고, 360도 영상의 방대한 데이터의 효율적인 처리를 위한 목적으로 수행할 수 있다. 예를 들어, 영상이 하나의 단위로 구성될 경우 관심 영역에 대한 복호화를 위해 영상 모두를 복호화할 수 있지만, 영상이 복수의 단위 영역으로 구성될 경우 관심 영역만을 복호화하는 것이 효율적일 수 있다. 이때, 상기 분할은 기존의 부호화 방식에 따른 분할 단위인 타일로 분할되거나, 본 발명에서 설명하는 각종 분할 단위들(사각형 형태의 분할, 블록 등)로 분할될 수 있다. 또한, 상기 분할 단위는 독립적인 부/복호화를 수행하는 단위일 수 있다. 타일링은 투영된 영상 또는 포장된 영상에 기반하여 수행되거나 독립적으로 수행될 수 있다. 즉, 투영된 영상의 표면 경계, 포장된 영상의 표면 경계, 포장 설정 등에 기반하여 분할할 수 있고, 각 분할 단위마다 독립적으로 분할할 수 있다. 이는 타일링 과정에서 분할 정보 생성에 영향을 줄 수 있다.
다음으로, 투영된 영상 또는 포장된 영상을 부호화할 수 있다. 부호화 데이터와 전처리 과정에서 발생하는 정보를 포함하여 비트스트림에 수록하고 이를 360도 영상 복호화기에 전송할 수 있다. 전처리 과정에서 발생하는 정보는 SEI나 메타 데이터 형식으로 비트스트림에 수록될 수도 있다. 이때, 비트스트림에는 부호화 과정의 일부 설정 또는 전처리 과정의 일부 설정을 달리하는 적어도 하나의 부호화 데이터와 적어도 하나의 전처리 정보를 포함하여 비트스트림에 수록할 수 있다. 이는 복호화기에서 사용자 환경에 따라 복수의 부호화 데이터(부호화 데이터+전처리 정보)를 혼합하여 복호화 영상을 구성하기 위한 목적일 수 있다. 상세하게는, 복수의 부호화 데이터를 선택적으로 조합하여 복호화 영상을 구성할 수 있다. 또한, 양안식 시스템에서의 적용을 위해 두 개로 분리하여 상기 과정이 수행될 수 있고, 추가적인 깊이 영상에 대해 상기 과정이 수행될 수 있다.
도 15는 3차원 영상을 나타내는 3차원 공간 및 2차원 평면 공간을 나타낸 예시도이다.
일반적으로 360도 3차원 가상 공간을 위해서는 3DoF(Degree of Freedom)가 필요하며, X(Pitch), Y(Yaw), Z(Roll) 축을 중심으로 3개의 회전을 지원할 수 있다. DoF는 공간에서의 자유도를 의미하며 3DoF는 15a와 같이 X, Y, Z 축을 중심으로한 회전을 포함하는 자유도를 의미하며, 6DoF는 3DoF에 X, Y, Z 축에 따른 이동 움직임을 추가로 허용하는 자유도를 의미한다. 본 발명의 영상 부호화 장치 및 복호화 장치는 3DoF에 대한 경우를 중심으로 설명하며, 3DoF 이상(3DoF +)을 지원하는 경우 본 발명에서 도시되지 않은 추가적인 과정 또는 장치 등과 결합되거나 변경 적용될 수 있다.
15a를 참조하면, Yaw는 -π(-180도)에서 π(180도)까지의 범위를, Pitch는 -π/2 rad (또는 -90도)에서 π/2 rad (또는 90도)까지의 범위를, Roll은 -π/2 rad (또는 -90도)에서 π/2 rad (또는 90도)까지의 범위를 가질 수 있다. 이때,
Figure PCTKR2017011138-appb-I000001
, θ는 지구의 지도 표현에서의 경도(Longitude)와 위도(Latitude)로 가정하면, 3차원 공간의 (x, y, z)는 2차원 공간의 (
Figure PCTKR2017011138-appb-I000002
, θ)로부터 변환될 수 있다. 예를 들면, x = cos(θ) cos(
Figure PCTKR2017011138-appb-I000003
), y = sin(θ), z = -cos(θ) sin(
Figure PCTKR2017011138-appb-I000004
) 의 변환식에 따라 3차원 공간의 좌표가 2차원 공간 좌표로부터 유도될 수 있다.
또한, (
Figure PCTKR2017011138-appb-I000005
, θ)는 (x, y, z)로 변환될 수 있다. 예를 들면,
Figure PCTKR2017011138-appb-I000006
= tan-1(-Z/X), θ = sin- 1(Y/(X2+Y2+Z2)1/2) 의 변환식에 따라 3차원 공간 좌표에서 2차원 공간 좌표를 유도할 수 있다.
3차원 공간의 화소가 2차원 공간으로 정확하게 변환되는 경우(예를 들어, 2차원 공간의 정수 단위 화소)에는 3차원 공간의 화소가 2차원 공간의 화소에 매핑될 수 있다. 3차원 공간의 화소가 2차원 공간으로 정확하게 변환되지 않는 경우(예를 들어, 2차원 공간의 소수 단위 화소)에는 보간(Interpolation)을 수행하여 획득된 화소로 2차원 화소를 매핑할 수 있다. 이때, 사용되는 보간은 Nearest neighbor 보간법, Bi-linear 보간법, B-spline 보간법, Bi-cubic 보간법 등이 사용될 수 있다. 이때, 복수의 보간 후보 중 하나를 선택하여 관련 정보가 명시적으로 생성될 수 있거나 또는 기 설정된 규칙에 따라 묵시적으로 보간 방법이 정해질 수 있다. 예를 들어, 3차원 모델, 투영 포맷, 컬러 포맷, 슬라이스/타일 타입 등에 따라 기 설정된 보간 필터를 사용할 수 있다. 또한, 명시적으로 보간 정보를 생성할 경우 필터 정보(예를 들어, 필터 계수 등)에 대한 정보도 포함될 수 있다.
15b는 3차원 공간에서 2차원 공간(2차원 평면 좌표계)으로 변환된 예를 나타낸다. (
Figure PCTKR2017011138-appb-I000007
,θ)는 영상의 크기(가로 길이, 세로 길이)에 기반하여 샘플링(i,j)될 수 있으며, i는 0부터 P_Width - 1, j는 0부터 P_Height - 1의 범위를 가질 수 있다.
(
Figure PCTKR2017011138-appb-I000008
,θ) 는 투영된 영상의 중심으로 360도 영상의 배치를 위한 중앙점{또는 기준점, 도 15의 C로 표기된 지점, 좌표로는 (
Figure PCTKR2017011138-appb-I000009
,θ)=(0,0)}일 수 있다. 중앙점에 대한 설정은 3차원 공간에서 지정할 수 있으며, 중앙점에 대한 위치 정보는 명시적으로 생성하거나 묵시적으로 기 설정된 값으로 정할 수 있다. 예를 들어, Yaw에서의 중앙 위치 정보, Pitch에서의 중앙 위치 정보, Roll에서의 중앙 위치 정보 등을 생성할 수 있다. 상기 정보에 대한 값이 따로 명시되지 않는 경우에는 각 값을 0으로 가정할 수 있다.
상기 예에서는 360도 영상의 전체를 3차원 공간에서 2차원 공간으로 변환시키는 예를 설명하였지만, 360도 영상의 일부 영역을 대상으로 할 수 있으며, 일부 영역에 대한 위치 정보(예를 들어, 영역에 속하는 일부 위치. 본 예에서 중앙점에 대한 위치 정보), 범위 정보 등을 명시적으로 생성하거나 묵시적으로 기 설정된 위치, 범위 정보를 따를 수 있다. 예를 들어, Yaw에서의 중앙 위치 정보, Pitch에서의 중앙 위치 정보, Roll에서의 중앙 위치 정보, Yaw에서의 범위 정보, Pitch에서의 범위 정보, Roll에서의 범위 정보 등을 생성할 수 있으며, 일부 영역의 경우 적어도 하나의 영역일 수 있고 이에 따라 복수 영역의 위치 정보, 범위 정보 등이 처리될 수 있다. 상기 정보에 대한 값이 따로 명시되지 않은 경우에는 360도 영상 전체로 가정할 수 있다.
15a에서의 H0 내지 H6과 W0 내지 W5는 각각 15b에서의 일부 위도와 경도를 나타내고 있으며, 15b의 좌표로는 (C, j), (i, C)로 표현할 수 있다(C는 경도 또는 위도 성분). 일반적인 영상과 달리 360도 영상의 경우 2차원 공간으로 전환되는 경우 왜곡이 발생하거나 영상 내 콘텐츠의 휘어짐 등이 발생할 수 있다. 이는 영상의 영역에 따라 달리 발생할 수 있으며, 상기 영상의 위치 또는 상기 위치에 따라 구획되는 영역에 부/복호화 설정을 달리 둘 수 있다. 본 발명에서의 부/복호화 정보에 기반하여 부/복호화 설정을 적응적으로 두는 경우에서 상기 위치 정보(예를 들어, x, y 성분 또는 x와 y로 정의되는 범위 등)가 부/복호화 정보의 일 예로 포함될 수 있다.
상기 3차원과 2차원 공간에서의 설명은 본 발명에서 실시예의 설명을 돕기 위해 정의된 내용이며, 이에 한정되지 않고 세부 내용의 변형 또는 다른 경우의 적용이 가능하다.
전술한 것과 같이 360도 카메라로 획득된 영상은 2차원 공간으로 변환될 수 있다. 이때, 3차원 모델을 사용하여 360도 영상을 매핑시킬 수 있으며, 구, 정육면체(Cube), 원기둥(Cylinder), 피라미드(Pyramid), 다면체(Polyhedron) 등의 다양한 3차원 모델이 사용될 수 있다. 상기 모델에 기반하여 매핑된 360도 영상을 2차원 공간으로 변환할 때 상기 모델에 기반한 투영 포맷(Projection Format)에 따른 투영 과정을 수행할 수 있다.
도 16a 내지 도 16d는 본 발명의 일 실시예에 따른 투영 포맷을 설명하기 위한 개념도이다.
도 16a는 360도 영상을 2차원 평면으로 투영시킨 ERP(Equi-Rectangular Projection) 포맷을 나타낸다. 도 16b는 360도 영상을 정육면체로 투영시킨 CMP(CubeMap Projection) 포맷을 나타낸다. 도 16c는 360도 영상을 8면체로 투영시킨 OHP(OctaHedron Projection) 포맷을 나타낸다. 도 16d는 360도 영상을 다면체로 투영시킨 ISP(IcoSahedral Projection) 포맷을 나타낸다. 다만, 이에 한정되지 않고 다양한 투영 포맷이 사용될 수 있다. 도 16a 내지 도 16d의 왼쪽은 3차원 모델을, 오른쪽은 투영 과정을 통해 2차원 공간으로 변환된 예를 나타낸다. 투영 포맷에 따라 다양한 크기, 형태를 갖고, 각 형태는 면 또는 표면(Face)들로 구성될 수 있으며, 표면은 원, 삼각형, 사각형 등으로 표현될 수 있다.
본 발명에서 투영 포맷은 3차원 모델, 표면의 설정(예를 들어, 표면의 개수, 표면의 형태, 표면의 형태 구성 등), 투영 과정의 설정 등에 의해 정의될 수 있다. 상기 정의 중 적어도 하나의 요소가 다를 경우 다른 투영 포맷으로 볼 수 있다. 예를 들어, ERP의 경우 구 모델(3차원 모델), 하나의 표면(표면의 갯수), 사각형 표면(표면의 모양)으로 구성되어 있지만 투영 과정에서의 설정 중 일부(예를 들어, 3차원 공간에서 2차원 공간으로 변환할 때 사용되는 수식 등. 즉, 나머지 투영 설정은 동일하며 투영 과정에서 투영 영상의 적어도 하나의 화소의 차이를 만드는 요소)가 다를 경우 ERP1, EPR2와 같은 다른 포맷으로 분류될 수 있다. 다른 예로, CMP의 경우 정육면체 모델, 6개의 표면, 사각형 표면으로 구성되어 있지만 투영 과정에서의 설정 중 일부(예를 들어, 3차원 공간에서 2차원으로 변환할 때 샘플링 방법 등)가 다를 경우 CMP1, CMP2와 같은 다른 포맷으로 분류될 수 있다.
기 설정된 하나의 투영 포맷이 아닌 복수의 투영 포맷을 사용하는 경우에는 명시적으로 투영 포맷 식별 정보(또는 투영 포맷 정보)를 생성할 수 있다. 투영 포맷 식별 정보는 다양한 방법을 통해 구성될 수 있다.
일 예로, 복수의 투영 포맷에 인덱스 정보(예를 들어, proj_format_flag)를 할당하여 투영 포맷을 식별할 수 있다. 예를 들어, ERP에는 0번, CMP에는 1번, OHP에는 2번, ISP에는 3번, ERP1에는 4번, CMP1에는 5번, OHP1에는 6번, ISP1에는 7번, CMP compact에는 8번, OHP compact에는 9번, ISP compact에는 10번, 그 외의 포맷에는 11번 이상을 할당할 수 있다.
일 예로, 투영 포맷을 구성하는 적어도 하나의 요소 정보로 투영 포맷을 식별할 수 있다. 이때, 투영 포맷을 구성하는 요소 정보로는 3차원 모델 정보(예를 들어, 3d_model_flag. 0번은 구, 1번은 정육면체, 2번은 원기둥, 3번은 피라미드, 4번은 다면체1, 5번은 다면체2 등), 표면의 개수 정보(예를 들어, num_face_flag. 1부터 시작하여 1씩 증가하는 방식 또는 투영 포맷에서 발생하는 표면의 개수를 인덱스 정보로 할당하여 0번은 1개, 1번은 3개, 2번은 6개, 3번은 8개, 4번은 20개 등), 표면의 형태 정보(예를 들어, shape_face_flag. 0번은 사각형, 1번은 원, 2번은 삼각형, 3번은 사각형+원, 4번은 사각형+삼각형 등), 투영 과정 설정 정보(예를 들어, 3d_2d_convert_idx 등) 등이 포함될 수 있다.
일 예로, 투영 포맷 인덱스 정보와 투영 포맷을 구성하는 요소 정보로 투영 포맷을 식별할 수 있다. 예를 들어, 투영 포맷 인덱스 정보는 ERP에는 0번, CMP에는 1번, OHP에는 2번, ISP에는 3번, 그 외의 포맷에는 4번 이상을 할당할 수 있으며, 투영 포맷을 구성하는 요소 정보(본 예에서 투영 과정 설정 정보)와 함께 투영 포맷(예를 들어, ERP, ERP1, CMP, CMP1, OHP, OHP1, ISP, ISP1 등)을 식별할 수 있다. 또는, 투영 포맷을 구성하는 요소 정보(본 예에서 지역별 포장 여부)와 함께 투영 포맷(예를 들어, ERP, CMP, CMP compact, OHP, OHP compact, ISP, ISP compact 등)을 식별할 수 있다.
정리하면, 투영 포맷은 투영 포맷 인덱스 정보로 식별할 수 있고, 적어도 하나의 투영 포맷 요소 정보로 식별할 수 있고, 투영 포맷 인덱스 정보와 적어도 하나의 투영 포맷 요소 정보로 식별할 수 있다. 이는 부/복호화 설정에 따라 정의될 수 있으며, 본 발명에서는 투영 포맷 인덱스로 식별되는 경우를 가정하여 설명할 것이다. 또한, 본 예에서는 동일한 크기와 형태를 갖는 표면들로 표현되는 투영 포맷에 대한 경우를 중심으로 설명하지만, 각 표면의 크기와 형태가 동일하지 않는 구성 또한 가능할 수 있다. 또한, 각 표면의 구성은 도 16a 내지 도 16d와 동일하거나 다를 수 있으며, 각 표면의 숫자는 각 표면을 식별하는 기호로 사용되었으며 특정 순서로 한정되지 않는다. 설명의 편의를 위해 후술하는 예에서 투영 영상 기준으로 ERP는 하나의 표면 + 사각형, CMP는 6개의 표면 + 사각형, OHP는 8개의 표면 + 삼각형, ISP는 20개의 표면 + 삼각형인 투영 포맷이고 표면이 동일한 크기 및 형태를 갖는 경우를 가정하여 설명을 할 것이나 다른 설정에도 동일하거나 비슷한 적용이 가능할 수 있다.
도 16a 내지 도 16d와 같이 투영 포맷은 하나의 표면(예를 들어, ERP) 또는 복수의 표면(예를 들어, CMP, OHP, ISP 등)으로 구분될 수 있다. 또한, 각 표면이 사각형과 삼각형 등의 형태로 구분될 수 있다. 상기 구분은 투영 포맷에 따른 부/복호화 설정을 달리 두는 경우에 적용될 수 있는 본 발명에서의 영상의 종류, 특성 등의 일 예일 수 있다. 예를 들어, 영상의 종류는 360도 영상, 영상의 특성은 상기 구분(예를 들어, 각 투영 포맷, 하나의 표면 또는 복수의 표면인 투영 포맷, 표면이 사각형 또는 아닌 투영 포맷 등) 중 하나일 수 있다.
2차원 평면 좌표계{예를 들어, (i,j)}는 2차원 투영 영상의 각 표면에 정의 될 수 있으며, 좌표계의 특성은 투영 포맷, 각 표면의 위치 등에 따라 다를 수 있다. ERP와 같은 경우 하나의 2차원 평면 좌표계, 그 외의 투영 포맷은 표면의 개수에 따라 복수의 2차원 평면 좌표계를 가질 수 있다. 이때, 좌표계는 (k,i,j)로 표현될 수 있는데, k는 각 표면의 인덱스 정보일 수 있다.
도 17은 본 발명의 일 실시예에 따른 투영 포맷을 직사각형의 영상 내에 포함되는 것으로 구현한 개념도이다.
즉, 17a 내지 17c는 도 16b 내지 도 16d의 투영 포맷을 직사각 형태의 영상으로 구현한 것으로 이해될 수 있다.
17a 내지 17c를 참조하면, 360도 영상의 부/복호화를 위해 각 영상 포맷을 직사각 형태로 구성할 수 있다. ERP의 경우 하나의 좌표계로 그대로 사용할 수 있으나, 다른 투영 포맷의 경우 각 표면의 좌표계를 하나의 좌표계로 통합할 수 있으며, 이에 대한 상세한 설명은 생략한다.
17a 내지 17c를 참조하면, 직사각 형태의 영상을 구성하는 과정에서, 공백 또는 배경 등과 같이 무의미한 데이터로 채워지는 영역이 발생하는 것을 확인할 수 있다. 즉, 실제 데이터를 포함하는 영역(본 예에서 표면. Active Area)과 직사각 형태의 영상을 구성하기 위해 채워진 무의미한 영역(본 예에서 임의의 화소값으로 채워진다 가정. Inactive Area)으로 구성될 수 있다. 이는 실제 영상 데이터의 부/복호화뿐만 아니라 상기 무의미한 영역으로 인한 영상의 크기 증가로 부호화 데이터량 증가로 성능이 저하될 수 있다.
따라서, 무의미한 영역을 배제하고 실제 데이터를 포함하는 영역으로 영상을 구성하기 위한 과정이 추가로 수행될 수 있다.
도 18은 본 발명의 일 실시예에 따른 투영 포맷을 직사각 형태의 형상으로 변환하는 방법으로서, 무의미한 영역을 배제하도록 표면을 재배치하는 방법에 대한 개념도이다.
18a 내지 18c를 참조하면, 17a 내지 17c를 재배치한 일 예시를 확인할 수 있고, 이러한 과정을 지역별 포장 과정(CMP compact, OHP compact, ISP compact 등)으로 정의할 수 있다. 이때, 표면 자체의 재배치뿐만 아니라 표면이 분할되어 재배치(OHP compact, ISP compact 등)될 수도 있다. 이는 무의미한 영역을 제거하는 것뿐만 아니라 표면의 효율적인 배치를 통해 부호화 성능을 향상시키기 위한 목적으로 수행될 수 있다. 예를 들어, 표면 간에 영상이 연속성이 있는 배치(예를 들어, 18a에서 B2-B3-B1, B5-B0-B4 등)를 할 경우 부호화시의 예측 정확도가 향상됨으로써 부호화 성능이 향상될 수 있다. 여기서, 투영 포맷에 따른 지역별 포장은 본 발명에서의 일 예일 뿐 이에 한정되지 않는다.
도 19는 본 발명의 일 실시예에 따른 CMP 투영 포맷을 직사각 형태의 영상으로 지역별 포장 과정을 수행한 개념도이다.
19a 내지 19c를 참조하면, CMP 투영 포맷을 6×1, 3×2, 2×3, 1×6과 같이 배치할 수 있다. 또한, 일부 표면에 크기 조정이 수행되면, 19d 내지 19e와 같이 배치할 수 있다. 19a 내지 19e에서는 CMP를 예로 들었으나, CMP에 한정되지 않고 다른 투영 포맷으로의 적용이 가능할 수 있다. 상기 지역별 포장을 통해 획득되는 영상의 표면 배치는 투영 포맷에 따른 기 설정된 규칙에 따르거나 또는 명시적으로 배치에 관한 정보를 생성할 수 있다.
본 발명의 일 실시예에 따른 360도 영상 부/복호화 장치는 도 1 및 2에 따른 영상 부/복호화 장치의 전부 또는 일부를 포함하여 구성할 수 있으며, 특히 투영 포맷을 변환 및 역변환하는 포맷 변환부 및 포맷 역변환부가 각각 영상 부호화 장치와 영상 복호화 장치에 더 포함될 수 있다. 즉, 도 1의 영상 부호화 장치에서 입력 영상에 대해 포맷 변환부를 거쳐 부호화될 수 있고, 도 2의 영상 복호화 장치에서 비트스트림의 복호화된 후에 포맷 역변환부를 거쳐 출력 영상이 생성될 수 있다. 이하에서는 상기 과정에 대한 부호화기(본 예에서 '입력 영상' ~ '부호화')를 중심으로 설명할 것이며, 복호화기에서의 과정은 부호화기에서 역으로 유도할 수 있다. 또한, 전술한 내용과 중복되는 설명은 생략한다.
이하에서 입력 영상은 전술한 360도 부호화 장치에서 전처리 과정을 수행하여 획득된 2차원 투영 영상 또는 포장 영상과 동일한 영상으로 전제하고 설명한다. 즉, 입력 영상은 일부 투영 포맷에 따른 투영 과정 또는 지역별 포장 과정을 수행하여 획득된 영상일 수 있다. 입력 영상에 기 적용된 투영 포맷은 다양한 투영 포맷 중 하나일 수 있으며, 공통 포맷으로 간주될 수 있고, 제 1 포맷으로 지칭할 수 있다.
포맷 변환부는 제 1 포맷 외의 다른 투영 포맷으로의 변환을 수행할 수 있다. 이때, 변환을 수행하고자 하는 포맷을 제 2 포맷이라 지칭할 수 있다. 예를 들어, ERP를 제 1 포맷으로 설정하고 제 2 포맷(예를 들어, ERP2, CMP, OHP, ISP 등)으로 변환을 수행할 수 있다. 이때, ERP2는 동일한 3차원 모델, 표면의 구성 등의 조건을 갖지만 일부 설정이 다른 EPR 포맷일 수 있다. 또는, 투영 포맷의 설정이 같은 동일한 포맷(예를 들어, ERP = ERP2)일 수 있으며 영상의 크기 또는 해상도가 다른 경우일 수 있다. 또는, 후술하는 영상 설정 과정 중 일부가 적용되는 경우일 수 있다. 설명의 편의를 위해 위와 같은 예를 들었지만, 제 1 포맷, 제 2 포맷은 다양한 투영 포맷 중에 하나일 수 있으며, 상기 예에 한정되지 않고 다른 경우로의 변경 또한 가능하다.
포맷 간의 변환 과정에서 투영 포맷 간의 다른 좌표계 특성으로 인해 변환 후 영상의 화소(정수 화소)는 변환 전 영상에서의 정수 단위 화소 뿐만 아니라 소수 단위 화소로부터 획득되는 경우가 발생하기 때문에 보간을 수행할 수 있다. 이때, 사용되는 보간 필터는 전술한 것과 동일하거나 비슷한 필터를 사용할 수 있다. 보간 필터는 복수의 보간 필터 후보 중 하나를 선택하여 관련 정보가 명시적으로 생성될 수 있거나 또는 기 설정된 규칙에 따라 묵시적으로 정해질 수 있다. 예를 들어, 투영 포맷, 컬러 포맷, 슬라이스/타일 타입 등에 따라 기 설정된 보간 필터를 사용할 수 있다. 또한, 명시적으로 보간 필터를 보낼 경우 필터 정보(예를 들어, 필터 계수 등)에 대한 정보도 포함될 수 있다.
포맷 변환부에서 투영 포맷은 지역별 포장 등이 포함되어 정의될 수도 있다. 즉, 포맷 변환 과정에 투영, 지역별 포장 과정이 수행될 수 있다. 또는, 포맷 변환부 후, 부호화를 수행하기 전에 지역별 포장 등의 과정이 수행될 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다.
다음은 본 발명의 일 실시예에 따른 360도 영상 부/복호화 장치에 적용되는 영상 설정 과정에 대해 설명한다. 본 발명에서의 영상 설정 과정은 일반적인 부/복호화 과정뿐만 아니라 360도 영상 부/복호화 장치에서의 전처리 과정, 후처리 과정, 포맷 변환 과정, 포맷 역변환 과정 등에 적용될 수 있다. 후술하는 영상 설정 과정은 360도 영상 부호화 장치를 중심으로 설명할 것이며, 전술한 영상 설정에서의 내용을 포함하여 설명될 수 있다. 전술한 영상 설정 과정에서의 중복되는 설명은 생략한다. 또한, 후술하는 예는 영상 설정 과정을 중심으로 설명할 것이며, 영상 설정 역과정은 영상 설정 과정에서 역으로 유도될 수 있으며, 일부 경우는 전술한 본 발명의 다양한 실시예를 통해 확인할 수 있다.
본 발명에서의 영상 설정 과정은 360도 영상의 투영 단계에서 수행될 수 있고, 지역별 포장 단계에서 수행될 수 있고, 포맷 변환 단계에서 수행될 수 있으며, 그 외의 단계에서 수행될 수 있다.
도 20은 본 발명의 일 실시예에 따른 360도 영상 분할에 대한 개념도이다. 도 20에서는 ERP로 투영된 영상의 경우를 가정하여 설명한다.
20a는 ERP로 투영된 영상을 나타내며, 다양한 방법을 사용하여 분할을 수행할 수 있다. 본 예에서는 슬라이스, 타일을 중심으로 설명하며, W0 ~ W2와 H0, H1은 슬라이스 또는 타일의 분할 경계선이라 가정하고 래스터 스캔 순서를 따른다고 가정한다. 후술하는 예는 슬라이스와 타일을 중심으로 설명하지만, 이에 한정되지 않고 다른 분할 방법이 적용될 수 있다.
예를 들어, 슬라이스 단위로 분할을 수행할 수 있으며, H0, H1의 분할 경계를 가질 수 있다. 또는, 타일 단위로 분할을 수행할 수 있으며, W0 ~ W2와 H0, H1의 분할 경계를 가질 수 있다.
20b는 ERP로 투영된 영상을 타일로 분할한 예{도 20a와 동일한 타일 분할 경계(W0 ~ W2, H0, H1이 모두 활성화)를 갖는다 가정}를 나타낸다. P 영역은 전체 영상, V 영역은 사용자 시선이 머무는 영역 또는 뷰포트라고 가정할 때, 뷰포트에 해당하는 영상을 제공하기 위해서는 다양한 방법이 존재할 수 있다. 예를 들어, 전체 영상(예를 들어, 타일 a ~ l)의 복호화를 수행하여 뷰포트에 해당하는 영역을 획득할 수 있다. 이때, 전체 영상을 복호화할 수 있으며, 분할되어 있는 경우 타일 a ~ l(본 예에서 A + B 영역)을 복호화할 수 있다. 또는, 뷰포트에 속하는 영역의 복호화를 수행하여 뷰포트에 해당하는 영역을 획득할 수 있다. 이때, 분할되어 있는 경우 타일 f, g, j, k(본 예에서 B 영역)를 복호화하여 복원된 영상에서 뷰포트에 해당하는 영역을 획득할 수 있다. 전자의 경우 전체 복호화(또는 Viewport Independent Coding), 후자의 경우 부분 복호화(또는 Viewport Dependent Coding)라 지칭할 수 있다. 후자의 경우는 데이터량이 많은 360도 영상에서 발생 가능한 예일 수 있으며, 유연하게 분할 영역을 획득할 수 있다는 측면에서 슬라이스 단위의 분할보다 타일 단위의 분할 방법이 자주 사용될 수 있다. 부분 복호화의 경우 뷰포트가 어디에서 발생할 지 알 수 없기 때문에 분할 단위의 참조 가능성이 공간적 또는 시간적으로 제한(본 예에서 묵시적으로 처리)될 수 있으며, 이를 고려하는 부/복호화가 수행될 수 있다. 후술하는 예는 전체 복호화의 경우를 중심으로 설명을 하되 부분 복호화의 경우를 대비하기 위한 목적으로 타일(또는 본 발명의 사각 형태의 분할 방법)을 중심으로 360도 영상 분할에 대한 설명을 하지만, 후술하는 예의 내용은 다른 분할 단위에 동일하거나 또는 변경 적용될 수 있다.
도 21은 본 발명의 실시예에 따른 360도 영상 분할과 영상 재구성의 예시도이다. 도 21에서는 CMP로 투영된 영상의 경우를 가정하여 설명한다.
21a는 CMP로 투영된 영상을 나타내며, 다양한 방법을 사용하여 분할을 수행할 수 있다. W0 ~ W2와 H0, H1은 표면, 슬라이스, 타일의 분할 경계선이라 가정하고 래스터 스캔 순서를 따른다고 가정한다.
예를 들어, 슬라이스 단위로 분할을 수행할 수 있으며, H0, H1의 분할 경계를 가질 수 있다. 또는, 타일 단위로 분할을 수행할 수 있으며, W0 ~ W2와 H0, H1의 분할 경계를 가질 수 있다. 또는, 표면 단위로 분할을 수행할 수 있으며, W0 ~ W2와 H0, H1의 분할 경계를 가질 수 있다. 본 예에서 표면은 분할 단위의 일부라고 가정하여 설명한다.
이때, 표면은 영상의 특성, 종류(본 예에서 360도 영상, 투영 포맷) 등에 따라 동일 영상 내 다른 성질(예를 들어, 각 표면의 평면 좌표계 등)을 갖는 영역을 분류 또는 구분하고자 하는 목적으로 수행된 분할 단위(본 예에서 의존적인 부/복호화)일 수 있고, 슬라이스, 타일은 사용자 정의에 따라 영상을 분할하고자 하는 목적으로 수행된 분할 단위(본 예에서 독립적인 부/복호화)일 수 있다. 또한, 표면은 투영 포맷에 따른 투영 과정에서 기 설정된 정의(또는 투영 포맷 정보로부터 유도)에 의해 분할된 단위일 수 있고, 슬라이스, 타일은 사용자 정의에 따라 명시적으로 분할 정보를 생성하고 분할된 단위일 수 있다. 또한, 표면은 투영 포맷에 따라 사각형을 포함한 다각형 형태로 분할 형태를 가질 수 있고, 슬라이스는 사각형 또는 다각형으로 정의할 수 없는 임의의 분할 형태를 가질 수 있고, 타일은 사각형의 분할 형태를 가질 수 있다. 상기 분할 단위의 설정은 본 예의 설명을 위해 한정되어 정의된 내용일 수 있다.
상기 예에서 표면은 영역 구분을 위한 목적으로 분류된 분할 단위라 설명하였지만, 부/복호화 설정에 따라 적어도 하나의 표면 단위로 독립적인 부/복호화를 수행하는 단위일 수 있거나 또는 타일, 슬라이스 등과 결합하여 독립적인 부/복호화를 수행하는 설정을 가질 수 있다. 이때, 타일, 슬라이스 등과의 결합에서 타일, 슬라이스의 명시적인 정보가 생성되는 경우가 발생할 수 있거나 또는 표면 정보에 기반하여 타일, 슬라이스가 결합되는 묵시적인 경우가 발생할 수 있다. 또는, 표면 정보에 기반하여 타일, 슬라이스의 명시적인 정보가 생성되는 경우가 발생할 수 있다.
제1 예시로서, 하나의 영상 분할 과정(본 예에서 표면)이 수행되고, 영상 분할은 묵시적으로 분할 정보(투영 포맷 정보로부터 분할 정보를 획득)를 생략할 수 있다. 본 예는 의존적인 부/복호화 설정에 대한 예로, 표면 단위 간의 참조 가능성은 제한되지 않는 경우에 해당되는 예일 수 있다.
제2 예시로서, 하나의 영상 분할 과정(본 예에서 표면)이 수행되고, 영상 분할은 명시적으로 분할 정보를 생성할 수 있다. 본 예는 의존적인 부/복호화 설정에 대한 예로, 표면 단위 간의 참조 가능성은 제한되지 않는 경우에 해당되는 예일 수 있다.
제3 예시로서, 복수의 영상 분할 과정(본 예에서 표면, 타일)이 수행되고, 일부 영상 분할(본 예에서 표면)은 분할 정보를 묵시적으로 생략하거나 명시적으로 생성할 수 있고, 일부 영상 분할(본 예에서 타일)은 명시적으로 분할 정보를 생성할 수 있다. 본 예는 일부 영상 분할 과정(본 예에서 표면)이 일부 영상 분할 과정(본 예에서 타일)에 선행한다.
제4 예시로서, 복수의 영상 분할 과정이 수행되고, 일부 영상 분할(본 예에서 표면)은 분할 정보를 묵시적으로 생략하거나 명시적으로 생성할 수 있고, 일부 영상 분할(본 예에서 타일)은 일부 영상 분할(본 예에서 표면)에 기반하여 명시적으로 분할 정보를 생성할 수 있다. 본 예는 일부 영상 분할 과정(본 예에서 표면)이 일부 영상 분할 과정(본 예에서 타일)에 선행한다. 본 예는 일부 경우{제 2 예시의 경우라 가정}에 분할 정보가 명시적으로 생성되는 것은 동일하나 분할 정보 구성의 차이가 존재할 수 있다.
제5 예시로서, 복수의 영상 분할 과정이 수행되고, 일부 영상 분할(본 예에서 표면)은 묵시적으로 분할 정보를 생략할 수 있고, 일부 영상 분할(본 예에서 타일)은 일부 영상 분할(본 예에서 표면)에 기반하여 묵시적으로 분할 정보를 생략할 수 있다. 예를 들어, 개별 표면 단위가 타일 단위로 설정이 가능하거나 또는 복수의 표면 단위(본 예에서 이웃 표면이 연속적인 표면일 경우에는 묶이고 그렇지 않은 경우에는 묶이지 않음. 18a에서 B2-B3-B1과 B4-B0-B5)가 타일 단위로 설정이 가능할 수 있다. 기 설정된 규칙에 따라 표면 단위의 타일 단위로의 설정이 가능하다. 본 예는 독립적인 부/복호화 설정에 대한 예로, 표면 단위 간의 참조 가능성은 제한되는 경우에 해당되는 예일 수 있다. 즉, 일부 경우{제1 예시의 경우라 가정}에 분할 정보가 묵시적인 처리되는 것은 동일하나 부/복호화 설정의 차이가 존재할 수 있다.
상기 예는 투영 단계, 지역별 포장 단계, 부/복호화 초기 단계 등에서 분할 과정이 수행될 수 있는 경우에 대한 설명일 수 있으며, 이 외의 부/복호화기 내에서 발생하는 영상 분할 과정일 수 있다.
21a에서 데이터를 포함한 영역(A)에 데이터를 포함하지 않은 영역(B)을 포함하여 직사각 형태의 영상을 구성할 수 있다. 이때, A와 B 영역의 위치, 크기, 형태, 개수 등은 투영 포맷 등에 의해 확인할 수 있는 정보이거나 또는 투영된 영상에 대한 정보를 명시적으로 생성할 경우에 확인할 수 있는 정보이며, 전술한 영상 분할 정보, 영상 재구성 정보 등으로 관련 정보로 나타낼 수 있다. 예를 들어, 표 4, 표 5와 같이 투영된 영상의 일부 영역에 대한 정보(예를 들어, part_top, part_left, part_width, part_height, part_convert_flag 등)를 나타낼 수 있으며, 본 예에 한정되지 않고 다른 경우(예를 들어, 다른 투영 포맷, 다른 투영 설정 등)에 적용 가능한 예일 수 있다.
B 영역을 A 영역과 함께 하나의 영상으로 구성하여 부/복호화를 수행할 수 있다. 또는, 영역별 특성을 고려하여 분할을 수행하여 다른 부/복호화 설정을 둘 수 있다. 예를 들어, 부/복호화 수행 여부에 대한 정보(예를 들어, 분할 단위가 타일이라 가정할 경우 tile_coded_flag)를 통해 B 영역에 대한 부/복호화를 수행하지 않을 수 있다. 이때, 해당 영역은 기 설정된 규칙에 따라 일정 데이터(본 예에서 임의의 화소값)로 복원될 수 있다. 또는, 전술한 영상 분할 과정에서의 부/복호화 설정을 B 영역은 A 영역과 다르게 둘 수 있다. 또는, 지역별 포장 과정을 수행하여 해당 영역을 제거할 수 있다.
21b는 CMP로 포장된 영상을 타일, 슬라이스, 표면으로 분할한 예를 나타낸다. 이때, 포장된 영상은 표면의 재배치 과정 또는 지역별 포장 과정이 수행된 영상이며, 본 발명의 영상 분할, 영상 재구성을 수행하여 획득된 영상일 수 있다.
21b에서 데이터를 포함한 영역을 포함하여 직사각 형태를 구성할 수 있다. 이 때, 각 영역의 위치, 크기, 형태, 개수 등은 기 설정된 설정에 의해 확인할 수 있는 정보이거나 또는 포장된 영상에 대한 정보를 명시적으로 생성할 경우에 확인할 수 있는 정보이며, 전술한 영상 분할 정보, 영상 재구성 정보 등으로 관련 정보를 나타낼 수 있다. 예를 들어, 표 4, 표 5와 같이 포장된 영상의 일부 영역에 대한 정보(예를 들어, part_top, part_left, part_width, part_height, part_convert_flag 등)를 나타낼 수 있다.
포장된 영상은 다양한 분할 방법을 사용하여 분할을 수행할 수 있다. 예를 들어, 슬라이스 단위로 분할을 수행할 수 있으며, H0의 분할 경계를 가질 수 있다. 또는, 타일 단위로 분할을 수행할 수 있으며, W0, W1과 H0의 분할 경계를 가질 수 있다. 또는, 표면 단위로 분할을 수행할 수 있으며, W0, W1과 H0의 분할 경계를 가질 수 있다.
본 발명의 영상 분할, 영상 재구성 과정은 투영된 영상에 수행될 수 있다. 이때, 재구성 과정은 표면 내의 화소뿐만 아니라 영상 내 표면을 재배치할 수 있다. 이는 영상이 복수의 표면으로 분할 또는 구성되는 경우에 가능한 예일 수 있다. 후술하는 예는 표면 단위에 기반하여 타일로 분할되는 경우를 중심으로 설명한다.
21a의 SX,Y(S0,0 ~ S3,2)는 21b의 S'U,V(S'0,0 ~ S'2,1. 본 예에서 X, Y는 U, V와 같거나 다를 수 있음)와 대응될 수 있고, 표면 단위에 재구성 과정이 수행될 수 있다. 예를 들어, S2,1, S3,1, S0,1, S1,2, S1,1, S1,0은 S'0,0, S'1,0, S'2,0, S'0,1, S'1,1, S'2,1에 할당(또는 표면 재배치)될 수 있다. 또한, S2,1, S3,1, S0,1은 재구성(또는 화소 재배치)을 수행하지 않고, S1,2, S1,1, S1,0은 90도 회전을 적용하여 재구성을 수행할 수 있으며, 이를 도 21c와 같이 나타낼 수 있다. 21c에서 옆으로 표시된 기호(S1,0, S1,1, S1,2)는 영상의 연속성을 유지하기 위해 기호에 맞게 옆으로 눕힌 영상일 수 있다.
표면의 재구성은 부/복호화 설정에 따라 묵시적이거나 명시적인 처리를 할 수 있다. 묵시적인 경우는 영상의 종류(본 예에서 360도 영상), 특성(본 예에서 투영 포맷 등)을 고려하여 기 설정된 규칙에 따라 수행될 수 있다.
예를 들어, 21c에서 S'0,0와 S'1,0, S'1,0과 S'2,0, S'0,1과 S'1,1, S'1,1과 S'2,1은 표면 경계를 기준으로 양 표면 간의 영상 연속성(또는 상관성)이 존재하며, 21c는 상단 3개의 표면과 하단 3개의 표면 간에는 연속성이 존재하게 구성된 예일 수 있다. 3차원 공간에서 2차원 공간으로의 투영 과정을 통해 복수의 표면으로 나뉘고 이를 지역별 포장을 거치는 과정에서 효율적인 표면들의 재구성을 위해 표면 간의 영상 연속성을 높이기 위한 목적으로 재구성이 수행될 수 있다. 이와 같은 표면들의 재구성은 기 설정되어 처리될 수 있다.
또는, 명시적인 처리를 통해 재구성 과정을 수행하고 이에 대한 재구성 정보를 생성할 수 있다.
예를 들어, 지역별 포장 과정을 통해 M×N 구성(예를 들어, CMP compact의 경우 6×1, 3×2, 2×3, 1×6 등. 본 예에서 3×2 구성이라 가정)에 대한 정보(예를 들어, 묵시적인 획득되는 정보 또는 명시적으로 생성되는 정보 중 하나)를 확인할 경우, M×N 구성에 맞춰 표면 재구성을 수행한 후 그에 대한 정보를 생성할 수 있다. 예를 들어, 표면의 영상 내 재배치의 경우 각 표면에 인덱스 정보(또는 영상 내 위치 정보)를, 표면 내 화소 재배치의 경우 재구성에 대한 모드 정보를 할당할 수 있다.
인덱스 정보는 도 18의 18a 내지 18c와 같이 기 정의될 수 있으며, 21a 내지 21c에서 SX,Y 또는 S'U,V는 각 표면을 가로, 세로를 나타낸 위치 정보(예를 들어, S[i][j]) 또는 하나의 위치 정보(예를 들어, 위치 정보는 영상의 좌상단 표면부터 래스터 스캔 순서로 할당된다는 가정. S[i])로 표현할 수 있고 이에 각 표면의 인덱스를 할당할 수 있다.
예를 들어, 가로, 세로를 나타낸 위치 정보로 인덱스를 할당할 때, 도 21c의 경우 S'0,0은 2번 표면, S'1,0은 3번 표면, S'2,0은 1번 표면, S'0,1은 5번 표면, S'1,1은 0번 표면, S'2,1은 4번 표면 인덱스를 할당할 수 있다. 또는, 하나의 위치 정보로 인덱스를 할당할 때, S[0]은 2번 표면, S[1]은 3번 표면, S[2]는 1번 표면, S[3]은 5번 표면, S[4]는 0번 표면, S[5]는 4번 표면 인덱스를 할당할 수 있다. 설명의 편의를 위해 후술하는 예에서 S'0,0 ~ S'2,1은 a 내지 f라 지칭한다. 또는, 영상의 좌상단을 기준으로 화소 또는 블록 단위의 가로, 세로를 나타낸 위치 정보로 표현할 수도 있다.
영상의 재구성 과정(또는 지역별 포장 과정)을 통해 획득된 포장된 영상의 경우 재구성 설정에 따라 표면의 스캔 순서가 영상에서 동일하거나 동일하지 않을 수 있다. 예를 들어, 21a에 하나의 스캔 순서(예를 들어, 래스터 스캔)가 적용될 경우, a, b, c의 스캔 순서는 동일할 수 있고 d, e, f의 스캔 순서는 동일하지 않을 수 있다. 예를 들어, 21a나 a, b, c의 경우 스캔 순서는 (0,0) -> (1,0) -> (0,1) -> (1,1)의 순서를 따를 때, d, e, f의 경우 스캔 순서는 (1,0) -> (1,1) -> (0,0) -> (0,1)의 순서를 따를 수 있다. 이는 영상의 재구성 설정에 따라 정해질 수 있으며, 다른 투영 포맷에도 이와 같은 설정을 가질 수 있다.
21b에서 영상 분할 과정은 개별 표면 단위를 타일로 설정할 수 있다. 예를 들어, 표면 a ~ f는 각각 타일 단위로 설정될 수 있다. 또는, 복수의 표면 단위를 타일로 설정할 수 있다. 예를 들어, 표면 a ~ c는 하나의 타일, d ~ f는 하나의 타일로 설정될 수 있다. 상기 구성은 표면 특성(예를 들어, 표면 간의 연속성 등)에 기반하여 정해질 수 있으며, 상기 예와 다른 표면의 타일 설정이 가능할 수 있다.
다음은 복수의 영상 분할 과정에 따른 분할 정보에 대한 예를 나타낸다. 본 예에서는 표면에 대한 분할 정보는 생략되고 표면 외의 단위는 타일, 그리고 분할 정보는 다양하게 처리되는 경우를 가정하여 설명한다.
제1 예시로서, 영상 분할 정보는 표면 정보에 기반하여 획득되어 묵시적으로 생략할 수 있다. 예를 들어, 개별 표면이 타일로 설정되거나 복수의 표면이 타일로 설정될 수 있다. 이때, 적어도 하나의 표면이 타일로 설정되는 경우는 표면 정보(예를 들어, 연속성 또는 상관성 등)에 기반하여 기 설정된 규칙에 따라 정해질 수 있다.
제2 예시로서, 영상 분할 정보는 표면 정보와 무관하게 명시적으로 생성할 수 있다. 예를 들어, 타일의 가로열 개수(본 예에서 num_tile_columns)와 세로열 개수(본 예에서 num_tile_rows)로 분할 정보를 생성할 경우, 전술한 영상 분할 과정에서의 방법으로 분할 정보를 생성할 수 있다. 예를 들어, 타일의 가로열 개수와 세로열 개수가 가질 수 있는 범위는 0부터 영상의 가로 길이/블록의 가로 길이(본 예에서 픽쳐 분할부로부터 획득되는 단위)까지, 0부터 영상의 세로 길이/블록의 세로 길이까지 일 수 있다. 또한, 추가적인 분할 정보(예를 들어, uniform_spacing_flag 등)이 생성될 수 있다. 이때, 상기 분할 설정에 따라 표면의 경계와 분할 단위의 경계가 일치하거나 일치하지 않는 경우가 발생할 수도 있다.
제3 예시로서, 영상 분할 정보는 표면 정보에 기반하여 명시적으로 생성할 수 있다. 예를 들어, 타일의 가로열 개수와 세로열 개수로 분할 정보를 생성할 경우, 표면 정보(본 예에서는 가로열 개수가 갖는 범위는 0 ~ 2, 세로열 개수가 갖는 범위는 0, 1. 영상 내 표면의 구성이 3x2 이므로)에 기반하여 분할 정보를 생성할 수 있다. 예를 들어, 타일의 가로열 개수와 세로열 개수가 가질 수 있는 범위는 0부터 2까지, 0부터 1까지 일 수 있다. 또한, 추가적인 분할 정보(예를 들어, uniform_spacing_flag 등)이 생성되지 않을 수 있다. 이때, 표면의 경계와 분할 단위의 경계가 일치할 수 있다.
일부 경우{제2 예시와 제3 예시의 경우라 가정}에 분할 정보의 구문 요소가 다르게 정의되거나 또는 동일한 구문 요소를 사용하더라도 구문 요소 설정(예를 들어, 이진화 설정 등. 구문 요소가 갖는 후보군의 범위가 한정되고 적은 범위의 경우 다른 이진화를 사용할 수 있음 등)을 다르게 둘 수 있다. 상기 예는 분할 정보의 다양한 구성 중 일 부분에 대해 설명을 하였지만 이에 한정되는 것은 아니며, 표면 정보에 기반하여 분할 정보가 생성되는 것인지 여부에 따라 다른 설정이 가능한 예로 이해될 수 있다.
도 22는 CMP로 투영된 영상 또는 포장된 영상을 타일로 분할한 예시도이다.
이때, 도 21의 21a와 동일한 타일 분할 경계(W0 ~ W2, H0, H1이 모두 활성화)를 갖는다고 가정하며, 도 21의 21b와 동일한 타일 분할 경계(W0, W1, H0가 모두 활성화)를 갖는다 가정한다. P 영역은 전체 영상, V 영역은 뷰포트로 가정할 때, 전체 복호화 또는 부분 복호화를 수행할 수 있다. 본 예는 부분 복호화를 중심으로 설명한다. 22a에서 CMP(좌측)의 경우 타일 e, f, g를, CMP compact(우측)의 경우 타일 a, c, e를 복호화하여 뷰포트에 해당하는 영역을 획득할 수 있다. 22b에서 CMP의 경우 타일 b, f, i를, CMP compact의 경우 타일 d, e, f를 복호화하여 뷰포트에 해당하는 영역을 획득할 수 있다.
상기 예에서는 표면 단위(또는 표면 경계)에 기반하여 슬라이스, 타일 등의 분할을 수행하는 경우를 설명하였지만, 도 20의 20a와 같이 표면 내부(예를 들어, ERP는 영상이 하나의 표면으로 구성. 다른 투영 포맷은 복수의 표면으로 구성)에서 분할을 수행하는 경우 또는 표면 경계를 포함하여 분할을 수행하는 경우도 가능할 수 있다.
도 23은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정의 예를 설명하기 위한 개념도이다. 이때, ERP로 투영된 영상의 경우를 가정하여 설명한다. 또한, 후술하는 예에서는 확장의 경우를 중심으로 설명한다.
투영된 영상은 영상 크기 조정 타입에 따라 스케일 팩터를 통한 크기 조정, 오프셋 팩터를 통한 크기 조정을 수행할 수 있으며, 크기 조정 전 영상은 P_Width × P_Height이고 크기 조정 후 영상은 P'_Width × P'_Height일 수 있다.
스케일 팩터의 경우 영상의 가로 길이와 세로 길이에 스케일 팩터(본 예에서 가로 a, 세로 b)를 통한 크기 조정 후 영상의 가로 길이(P_Width × a)와 세로 길이(P_Height × b)를 획득할 수 있다. 오프셋 팩터의 경우 영상의 가로 길이와 세로 길이에 오프셋 팩터(본 예에서 가로 L, R, 세로 T, B)를 통한 크기 조정 후 영상의 가로 길이(P_Width + L + R)와 세로 길이(P_Height + T + B)를 획득할 수 있다. 기 설정된 방법을 사용하여 크기 조정을 수행할 수 있거나 또는 복수의 방법 중 하나를 선택하여 크기 조정을 수행할 수 있다.
후술하는 예에서의 데이터 처리 방법은 오프셋 팩터의 경우를 중심을 설명한다. 오프셋 팩터의 경우 데이터 처리 방법으로는 기 설정된 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법 등이 존재할 수 있다.
360도 영상의 경우 영상의 경계에 연속성이 존재하는 특성을 고려하여 크기 조정을 수행할 수 있다. ERP의 경우 3차원 공간에서는 외곽 경계가 존재하지 않지만 투영 과정을 통해 2차원 공간으로 변환할 경우 외곽 경계 영역이 존재할 수 있다. 이는 경계 영역의 데이터는 경계 바깥으로 연속성이 있는 데이터가 존재하지만 공간 특성상 경계를 가질 수 있다. 이러한 특성을 고려하여 크기 조정을 수행할 수 있다. 이때, 연속성은 투영 포맷 등에 따라 확인할 수 있다. 예를 들어, ERP의 경우 양 끝 경계가 서로 연속석인 특성을 갖는 영상일 수 있다. 본 예에서는 영상의 좌, 우 경계가 연속적인 경우와 상, 하 경계가 연속적인 경우를 가정하여 설명하며 데이터 처리 방법은 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법을 중심으로 설명한다.
영상의 좌측으로 크기 조정을 수행할 경우 크기 조정되는 영역(본 예에서 LC 또는 TL + LC + BL)은 영상의 좌측과 연속성이 존재하는 영상의 우측 영역(본 예에서 tr + rc + br)의 데이터를 사용하여 채울 수 있다. 영상의 우측으로 크기 조정을 수행하는 경우 크기 조정되는 영역(본 예에서 RC 또는 TR + RC + BR)은 우측과 연속성이 존재하는 영상의 좌측 영역(본 예에서 tl + lc + bl)의 데이터를 사용하여 채울 수 있다. 영상의 상측으로 크기 조정을 수행하는 경우 크기 조정되는 영역(본 예에서 TC 또는 TL + TC + TR)은 상측과 연속성이 존재하는 영상의 하측 영역(본 예에서 bl + bc + br)의 데이터를 사용하여 채울 수 있다. 영상의 하측으로 크기 조정을 수행하는 경우 크기 조정되는 영역(본 예에서 BC 또는 BL + BC + BR)의 데이터를 사용하여 채울 수 있다.
크기 조정되는 영역의 크기 또는 길이가 m일 경우, 크기 조정되는 영역은 크기 조정 전 영상의 좌표 기준(본 예에서 x는 0 ~ P_Width - 1)으로 (-m,y) ~ (-1,y)의 범위(좌측으로 크기 조정) 또는 (P_Width, y) ~ (P_Width + m - 1,y)의 범위(우측으로 크기 조정)를 가질 수 있다. 크기 조정되는 영역의 데이터를 획득하기 위한 영역의 위치(x')는 x' = (x + P_Width) % P_Width에 따른 수식으로 도출될 수 있다. 이때, x는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역의 좌표를 의미하고, x'는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역에 참조되는 영역의 좌표를 의미한다. 예를 들어, 좌측으로 크기 조정을 수행하며 m이 4이고 영상의 가로 길이가 16일 경우, (-4,y)는 (12,y)에서, (-3,y)는 (13,y)에서, (-2,y)는 (14,y)에서, (-1,y)는 (15,y)에서 해당 데이터를 획득할 수 있다. 또는, 우측으로 크기 조정을 수행하며 m이 4이고 영상의 가로 길이가 16일 경우, (16,y)는 (0,y)에서, (17,y)는 (1,y)에서, (18,y)는 (2,y)에서, (19,y)는 (3,y)에서 해당 데이터를 획득할 수 있다.
크기 조정되는 영역의 크기 또는 길이가 n일 경우, 크기 조정되는 영역은 크기 조정 전 영상의 좌표 기준(본 예에서 y는 0 ~ P_Height - 1)으로 (x,-n) ~ (x,-1)의 범위(상측으로 크기 조정) 또는 (x,P_Height) ~ (x,P_Height + n - 1)의 범위(하측으로 크기 조정)를 가질 수 있다. 크기 조정되는 영역의 데이터를 획득하기 위한 영역의 위치(y')는 y' = (y + P_Height) % P_Height과 같은 수식으로 도출될 수 있다. 이때, y는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역의 좌표를 의미하고, y'는 크기 조정 전 영상 좌표 기준으로 크기 조정되는 영역에 참조되는 영역의 좌표를 의미한다. 예를 들어, 상측으로 크기 조정을 수행하며 n이 4이고 영상의 세로 길이가 16일 경우 (x,-4)는 (x,12)에서, (x,-3)은 (x,13)에서, (x,-2)는 (x,14)에서, (x,-1)은 (x,15)에서 해당 데이터를 획득할 수 있다. 또는, 하측으로 크기 조정을 수행하며 n이 4이고 영상의 세로 길이가 16일 경우, (x,16)은 (x,0)에서, (x,17)은 (x,1)에서, (x,18)은 (x,2)에서, (x,19)는 (x,3)에서 해당 데이터를 획득할 수 있다.
크기 조정 영역의 데이터를 채운 후에 크기 조정 후 영상 좌표 기준(본 예에서 x는 0 ~ P'_Width - 1, y는 0 ~ P'_Height - 1)으로 조정될 수 있다. 상기 예는 위도, 경도의 좌표계에 적용될 수 있는 예일 수 있다.
다음과 같은 다양한 크기 조정의 조합을 가질 수 있다.
일 예로, 영상의 좌측으로 m만큼 크기 조정이 될 수 있다. 또는, 영상의 우측으로 n만큼 크기 조정이 될 수 있다. 또는, 영상의 상측으로 o만큼 크기 조정이 될 수 있다. 또는, 영상의 하측으로 p만큼 크기 조정이 될 수 있다.
일 예로, 영상의 좌측으로 m만큼, 우측으로 n만큼 크기 조정이 될 수 있다. 또는, 영상의 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다.
일 예로, 영상의 좌측으로 m만큼, 우측으로 n만큼, 상측으로 o만큼 크기 조정이 될 수 있다. 또는, 영상의 좌측으로 m만큼, 우측으로 n만큼, 하측으로 p만큼 크기 조정이 될 수 있다. 또는, 영상의 좌측으로 m만큼, 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다. 또는, 영상의 우측으로 n만큼, 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다.
일 예로, 영상의 좌측으로 m만큼, 우측으로 n만큼, 상측으로 o만큼, 하측으로 p만큼 크기 조정이 될 수 있다.
상기 예와 같이 적어도 하나의 크기 조정이 수행될 수 있고, 부/복호화 설정에 따라 묵시적으로 영상의 크기 조정이 수행될 수 있거나 또는 명시적으로 크기 조정 정보를 생성하고 그에 기반하여 영상의 크기 조정이 수행될 수 있다. 즉, 상기 예의 m, n, o, p는 기 설정된 값으로 정해질 수 있거나 명시적으로 크기 조정 정보로 생성될 수 있거나 일부는 기 설정된 값을 정해지고 일부는 명시적으로 생성될 수 있다.
상기 예는 영상의 일부 영역으로부터 데이터를 획득하는 경우를 중심으로 설명하였지만, 그 외의 방법 또한 적용 가능하다. 상기 데이터는 부호화 전의 화소일 수 있거나 또는 부호화 후의 화소일 수 있으며, 크기 조정이 수행되는 영상 또는 단계의 특성에 따라 결정될 수 있다. 예를 들어, 전처리 과정, 부호화 전 단계에서 크기 조정을 수행할 때 상기 데이터는 투영 영상, 포장 영상 등의 입력 화소를 의미하고, 후처리 과정, 화면내 예측 참조 화소 생성 단계, 참조 영상 생성 단계, 필터 단계 등에서 크기 조정을 수행할 때 상기 데이터는 복원 화소를 의미할 수 있다. 또한, 각 크기 조정되는 영역에 개별적으로 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다.
도 24는 본 발명의 일 실시예에 따른 투영 포맷(예를 들어, CMP, OHP, ISP)에서 표면 간의 연속성을 설명하기 위한 개념도이다.
상세하게는, 복수의 표면으로 구성된 영상에 대한 예일 수 있다. 연속성은 3차원 공간에서의 인접한 영역에서 발생하는 특성일 수 있으며, 도 24a 내지 도 24c는 투영 과정을 통해 2차원 공간으로 변환되었을 때 공간적으로 인접하며 연속성이 존재하는 경우(A), 공간적으로 인접하며 연속성이 존재하지 않는 경우(B), 공간적으로 인접하지 않으며 연속성이 존재하는 경우(C), 공간적으로 인접하지 않으며 연속성이 존재하지 않는 경우(D)로 구분할 수 있다. 일반적인 영상은 공간적으로 인접하며 연속성이 존재하는 경우(A), 공간적으로 인접하지 않으며 연속성이 존재하지 않는 경우(D)로 구분되는 것과 차이점이 존재한다. 이때, 연속성이 존재하는 경우는 상기 일부 예(A 또는 C)가 해당된다.
즉, 24a 내지 24c를 참조하면, 공간적으로 인접하며 연속성이 존재하는 경우(본 예에서 24a를 기준으로 설명)가 b0 내지 b4와 같이 나타날 수 있으며, 공간적으로 인접하지 않으며 연속성이 존재하는 경우가 B0 내지 B6과 같이 나타날 수 있다. 즉, 3차원 공간에서 인접한 영역에 대한 경우를 의미하며, b0 내지 b4와 B0 내지 B6가 연속성을 갖는 특성을 활용하여 부호화 과정에 사용함으로써 부호화 성능을 향상시킬 수 있다.
도 25는 CMP 투영 포맷에서의 영상 재구성 과정 또는 지역별 포장 과정을 통해 획득된 영상인 도 21c의 표면의 연속성을 설명하기 위한 개념도이다.
여기서, 도 21의 21c는 360도 영상을 큐브 형태로 펼친 21a를 재배치한 것이므로, 이때에도 도 21의 21a에서 갖는 표면의 연속성이 유지된다. 즉, 25a에서와 같이 표면 S2,1은 좌우로 S1,1 및 S3,1 과 서로 연속되며, 상하로는 90도 회전한 S1,0 및 -90도 회전한 S1,2 표면과 서로 연속될 수 있다.
같은 방법으로, 표면 S3,1, 표면 S0,1, 표면 S1,2, 표면 S1,1, 표면 S1,0에 대한 연속성을 25b 내지 25f에서 확인할 수 있다.
표면 간의 연속성은 투영 포맷 설정 등에 따라 정의될 수 있으며, 상기 예에 한정되지 않고 다른 변형의 예가 가능할 수 있다. 후술하는 예는 도 24, 도 25와 같은 연속성이 존재한다는 가정 하에 설명한다.
도 26은 본 발명의 일 실시예에 따른 CMP 투영 포맷에서의 영상의 크기 조정을 설명하기 위한 예시도이다.
26a는 영상의 크기 조정을 수행하는 예를, 26b는 표면 단위(또는 분할 단위)로 크기 조정을 수행하는 예를, 26c는 영상과 표면 단위로 크기 조정(또는 복수의 크기 조정)을 수행하는 예를 나타낸다.
투영된 영상은 영상 크기 조정 타입에 따라 스케일 팩터를 통한 크기 조정, 오프셋 팩터를 통한 크기 조정을 수행할 수 있으며, 크기 조정 전 영상은 P_Width × P_Height이고 크기 조정 후 영상은 P'_Width × P'_Height이며, 표면의 크기는 F_Width × F_Height일 수 있다. 표면에 따라 크기가 같거나 다를 수 있고, 표면의 가로와 세로 길이는 같거나 다를 수 있으나 본 예에서는 설명의 편의를 위해 영상 내 모든 표면의 크기는 동일하며 정사각 형태를 갖는다는 가정 하에 설명한다. 또한, 크기 조정값(본 예에서 WX, HY)는 동일하다는 가정 하에 설명한다. 후술하는 예에서의 데이터 처리 방법은 오프셋 팩터의 경우를 중심으로 설명하며, 데이터 처리 방법은 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법을 중심으로 설명한다. 상기 설정은 도 27에도 동일하게 적용될 수 있다.
26a 내지 26c의 경우 표면의 경계(본 예에서 도 24의 24a에 따른 연속성을 가진다고 가정)는 다른 표면의 경계와 연속성을 가질 수 있다. 이때, 2차원 평면에서 공간적으로 인접하며 영상의 연속성이 존재하는 경우(제1 예시)와 2차원 평면에서 공간적으로 인접하지 않으며 영상의 연속성이 존재하는 경우(제2 예시)로 구분될 수 있다.
예를 들어, 도 24의 24a의 연속성을 전제로 하면, S1,1의 상측, 좌측, 우측, 하측 영역은 S1,0, S0,1, S2,1, S1,2의 하측, 우측, 좌측, 상측 영역과 공간적으로 인접함과 동시에 영상도 연속적(제1 예시인 경우)일 수 있다.
또는, S1,0의 좌측과 우측 영역은 S0,1과 S2,1의 상측 영역과 공간적으로 인접하지는 않으나, 서로의 영상이 연속적(제2 예시인 경우)일 수 있다. 또한, S0,1의 좌측 영역과 S3,1의 우측 영역이 공간적으로 인접하지는 않으나, 서로의 영상이 연속적(제2 예시인 경우)일 수 있다. 또한, S1,2의 좌측 영역과 우측 영역이 S0,1와 S2,1의 하측 영역과 서로 연속적(제2 예시인 경우)일 수 있다. 이는 본 예에서 한정적인 예일 수 있으며, 투영 포맷 정의 및 설정에 따라 위와 다른 구성일 수 있다. 설명의 편의를 위해 도 26a의 S0,0 ~ S3,2는 a ~ l라 지칭한다.
26a는 영상의 외부 경계 방향으로 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 데이터가 존재하지 않는 A 영역으로부터 크기 조정되는 영역(본 예에서 a0 ~ a2, c0, d0 ~ d2, i0 ~ i2, k0, l0 ~ l2)은 기 설정된 임의의 값 또는 외곽 화소 패딩을 통해 채울 수 있고, 실제 데이터를 포함하는 B 영역으로부터 크기 조정되는 영역(본 예에서 b0, e0, h0, j0)은 영상의 연속성이 존재하는 영역(또는 표면)의 데이터를 사용하여 채울 수 있다. 예를 들어, b0는 표면 h의 상측, e0는 표면 h의 우측, h0는 표면 e의 좌측, j0는 표면 h의 하측의 데이터를 사용하여 채울 수 있다.
상세하게는, b0는 표면 h에 180도 회전을 적용하여 획득된 표면의 하측의 데이터를, j0는 표면 h에 180도 회전을 적용하여 획득된 표면의 상측 데이터를 사용하여 채우는 예일 수 있으나 본 예(또는 후술하는 예 포함)에서는 참조되는 표면의 위치만을 나타낼 것이며, 크기 조정되는 영역에 획득되는 데이터는 도 24, 도 25와 같이 표면 간의 연속성을 고려한 조정 과정(예를 들어, 회전 등)을 거친 후에 획득될 수 있다.
26b는 영상의 내부 경계 방향으로 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 본 예에서는 표면에 따라 수행되는 크기 조정 동작이 다를 수 있다. A 영역은 축소 과정을, B 영역은 확장 과정을 수행할 수 있다. 예를 들어, 표면 a의 경우 우측으로 w0만큼 크기 조정(본 예에서 축소)이 수행될 수 있고, 표면 b의 경우 좌측으로 w0만큼 크기 조정(본 예에서 확장)이 수행될 수 있다. 또는, 표면 a의 경우 하측으로 h0만큼 크기 조정(본 예에서 축소)이 수행될 수 있고, 표면 e의 경우 상측으로 h0만큼 크기 조정(본 예에서 확장)이 수행될 수 있다. 본 예에서 표면 a, b, c, d로 영상의 가로 길이 변화를 볼 때, 표면 a에서 w0만큼 축소되고, 표면 b에서 w0와 w1만큼 확장되고, 표면 c에서 w1만큼 축소되기 때문에 크기 조정 전 영상의 가로 길이와 크기 조정 후 영상의 가로 길이는 동일하다. 표면 a, e, i로 영상의 세로 길이 변화를 볼 때, 표면 a에서 h0만큼 축소되고, 표면 e에서 h0와 h1만큼 확장되고, 표면 i에서 h1만큼 축소되기 때문에 크기 조정 전 영상의 세로 길이와 크기 조정 후 영상의 세로 길이는 동일하다.
크기 조정되는 영역(본 예에서 b0, e0, be, b1, bg, g0, h0, e1, ej, j0, gi, g1, j1, h1)은, 데이터가 존재하지 않는 A 영역으로부터 축소되는 점을 고려하여, 단순 제거될 수도 있고, 실제 데이터를 포함하는 B 영역으로부터 확장되는 점을 고려하여 연속성이 존재하는 영역의 데이터로 새롭게 채울 수 있다.
예를 들어, b0는 표면 e의 상측, e0는 표면 b의 좌측, be는 표면 b의 좌측 또는 표면 e의 상측 또는 표면 b의 좌측과 표면 e의 상측의 가중치 합, b1은 표면 g의 상측, bg는 표면 b의 좌측 또는 표면 g의 상측 또는 표면 b의 우측과 표면 g의 상측의 가중치 합, g0는 표면 b의 우측, h0는 표면 b의 상측, e1은 표면 j의 좌측, ej는 표면 e의 하측 또는 표면 j의 좌측 또는 표면 e의 하측과 표면 j의 좌측의 가중치 합, j0는 표면 e의 하측, gj는 표면 g의 하측 또는 표면 j의 좌측 또는 표면 g의 하측과 표면 j의 우측의 가중치 합, g1은 표면 j의 우측, j1은 표면 g의 하측, h1은 표면 j의 하측의 데이터를 사용하여 채울 수 있다.
상기 예에서 크기 조정되는 영역에 영상의 일부 영역의 데이터를 사용하여 채울 때 해당 영역의 데이터를 복사하여 채울 수 있거나 해당 영역의 데이터를 영상의 특성, 종류 등에 기반하여 변환 과정을 거친 후에 획득되는 데이터를 채울 수 있다. 예를 들어, 360도 영상이 2차원 공간으로 투영 포맷에 따라 변환할 때, 각 표면의 좌표계(예를 들어, 2차원 평면 좌표계)가 정의될 수 있다. 설명의 편의를 위해 3차원 공간의 (x,y,z)에서 각 표면에 (x,y,C) 또는 (x,C,z) 또는 (C,y,z)로 변환되었다고 가정하자. 상기 예는 일부 표면의 크기 조정되는 영역에 해당 표면과 다른 표면의 데이터를 획득하는 경우를 나타낸다. 즉, 현재 표면을 중심으로 크기 조정을 하는데 다른 좌표계 특성을 갖는 다른 표면의 데이터를 그대로 복사하여 채울 경우 크기 조정 경계를 기준으로 연속성이 왜곡될 가능성이 존재한다. 이를 위해 현재 표면의 좌표계 특성에 맞춰 획득되는 다른 표면의 데이터를 변환하여 크기 조정되는 영역에 채울 수도 있다. 변환하는 경우 또한 데이터 처리 방법의 일 예일뿐 이에 한정되지 않는다.
크기 조정되는 영역에 영상의 일부 영역의 데이터를 복사하여 채울 때, 크기 조정하는 영역(e)과 크기 조정되는 영역(e0)의 경계 영역에 왜곡된 연속성(또는, 급진적으로 변화하는 연속성)을 포함할 수 있다. 예를 들어, 경계를 기준으로 연속적인 특징이 바뀌는 경우가 발생할 수 있으며, 에지가 직선 형태를 갖던 것이 경계를 기준으로 꺽인 형태가 되는 것과 같다.
크기 조정되는 영역에 영상의 일부 영역의 데이터를 변환하여 채울 때, 크기 조정하는 영역과 크기 조정되는 영역의 경계 영역에 점진적으로 변화하는 연속성을 포함할 수 있다.
상기 예는 크기 조정 과정(본 예에서 확장)에서 영상의 일부 영역의 데이터를 영상의 특성, 종류 등에 기반하여 변환 과정을 수행하여 획득된 데이터를 크기 조정되는 영역에 채우는 본 발명의 데이터 처리 방법의 일 예일 수 있다.
26c는 26a와 26b에 따른 영상 크기 조정 과정을 결합하여 영상의 경계(내부 경계 및 외부 경계) 방향으로 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 본 예의 크기 조정 과정은 26a와 26b로부터 유도될 수 있으므로 상세한 설명은 생략한다.
26a는 영상의 크기 조정 과정, 26b는 영상 내 분할 단위의 크기 조정 과정의 일 예일 수 있다. 26c는 영상의 크기 조정 과정과 영상 내 분할 단위의 크기 조정이 수행되는 복수의 크기 조정 과정의 일 예일 수 있다.
예를 들어, 투영 과정을 통해 획득한 영상(본 예에서 제 1 포맷)에 크기 조정(본 예에서 C 영역)을 수행할 수 있고, 포맷 변환 과정을 통해 획득한 영상(본 예에서 제 2 포맷)에 크기 조정(본 예에서 D 영역)을 수행할 수 있다. 본 예에서는 ERP로 투영된 영상에 크기 조정(본 예에서 영상 전체)을 수행하고, 이를 포맷 변환부를 통해 CMP로 투영된 영상을 획득한 후에 크기 조정(본 예에서 표면 단위)을 수행한 예일 수 있다. 상기 예는 복수의 크기 조정을 수행하는 일 예이며, 이에 한정되지 않고 다른 경우로의 변형 또한 가능할 수 있다.
도 27은 본 발명의 일 실시예에 따른 CMP 투영 포맷으로 변환되고, 포장된 영상을 대상으로 한 크기 조정을 설명하기 위한 예시도이다. 도 27에서도 도 25에 따른 표면간 연속성을 전제로 설명하므로, 표면의 경계는 다른 표면의 경계와 연속성을 가질 수 있다.
본 예에서 W0 내지 W5와 H0 내지 H3의 오프셋 팩터(본 예에서 오프셋 팩터가 크기 조정값으로 그대로 사용되는 경우라 가정)는 다양한 값을 가질 수 있다. 예를 들어, 기 설정된 값, 화면간 예측의 움직임 탐색 범위, 픽쳐 분할부로부터 획득되는 단위 등으로부터 유도될 수 있으며, 그 밖의 경우 또한 가능하다. 이때, 상기 픽쳐 분할부로부터 획득되는 단위는 표면을 포함할 수 있다. 즉, F_Width, F_Height에 기반하여 크기 조정값이 정해질 수 있다.
27a는 하나의 표면 각각에 대하여 크기 조정(본 예에서 각 표면의 상, 하, 좌, 우 방향)을 수행하여 확장되는 각각의 영역에 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예시이다. 예를 들면, 표면 a에 대하여 그 외곽인 a0 내지 a6에 연속적인 데이터를 채울 수 있으며, 표면 b의 외곽인 b0 내지 b6에 연속적인 데이터를 채울 수 있다.
27b는 복수의 표면에 대하여 크기 조정(본 예에서 복수의 표면의 상, 하, 좌, 우 방향)을 수행하여 확장되는 영역에 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예시이다. 예를 들면, 표면 a, b 및 c를 기준으로 그 외곽에 대하여, a0~a4, b0~b1, c0~c4로 확장할 수 있다.
27c는 영상 전체에 대한 크기 조정(본 예에서 전체 영상의 상, 하, 좌, 우 방향)을 수행하여 확장되는 영역에 연속성이 존재하는 영역의 데이터를 사용하여 채우는 예일 수 있다. 예를 들면, 표면 a 내지 f로 이루어진 영상 전체의 외곽에 대하여 a0 내지 a2, b0, c0~c2, d0~d2, e0, f0~f2 로 확장할 수 있다.
즉, 하나의 표면 단위로 크기 조정을 수행할 수 있고, 연속성이 존재하는 복수의 표면 단위로 크기 조정을 수행할 수 있고, 전체 표면 단위로 크기 조정을 수행할 수 있다.
상기 예의 크기 조정되는 영역(본 예에서 a0 ~ f7)은 도 24a와 같이 연속성이 존재하는 영역(또는 표면)의 데이터를 사용하여 채울 수 있다. 즉, 표면 a ~ f의 상측, 하측, 좌측, 우측의 데이터를 사용하여 크기 조정되는 영역에 채울 수 있다.
도 28은 본 발명의 일 실시예에 따른 360도 영상의 크기 조정에서 데이터 처리 방법을 설명하기 위한 예시도이다.
도 28을 참조하면, 크기 조정되는 영역으로 B영역(a0 ~ a2, ad0, b0, c0 ~ c2, cf1, d0 ~ d2, e0, f0 ~ f2)은 a 내지 f에 속하는 화소 데이터 중에서, 연속성이 존재하는 영역의 데이터로 채울 수 있다. 또한, 또 다른 크기 조정되는 영역인 C 영역(ad1, be, cf0)은 크기 조정을 수행하는 영역의 데이터와 공간적으로 인접하지만 연속성이 존재하지 않는 영역의 데이터를 혼합하여 채울 수 있다. 또는, C 영역은, a 내지 f 중 선택된 두 영역(예를 들면, a와 d, b와 e, c와 f) 사이에 크기 조정을 수행하므로, 상기 두 영역의 데이터를 혼합하여 채울 수 있다. 예를 들어, 표면 b와 표면 e는 공간적으로 인접하지만 연속성이 존재하지 않는 관계를 가질 수 있을 수 있다. 표면 b와 표면 e 사이의 크기 조정되는 영역(be)에 표면 b의 데이터와 표면 e의 데이터를 사용하여 크기 조정을 수행할 수 있다. 예를 들어, be 영역에 표면 b의 데이터와 표면 e의 데이터를 평균하여 획득된 값으로 채우거나, 거리에 따른 가중치 합을 통해 획득된 값으로 채울 수 있다. 이때, 표면 b와 표면 e에서 크기 조정되는 영역에 채울 데이터를 위해 사용되는 화소는 각 표면의 경계 화소일 수 있으나, 표면의 내부 화소일 수도 있다.
정리하면, 영상의 분할 단위 사이에 크기 조정되는 영역은 양쪽 단위의 데이터를 혼합 사용하여 생성된 데이터로 채울 수 있다.
상기 데이터 처리 방법은 일부 상황(본 예에서 복수의 영역에서 크기 조정을 수행하는 경우)에서 지원되는 방법일 수 있다.
도 27a, 27b는 분할 단위 사이에 서로 크기 조정이 수행되는 영역을 각각의 분할 단위마다 개별적으로 구성(도 27a를 예로 들면, a와 d에 대하여 각각 a6와 d1이 구성됨)하였으나, 도 28에서는 분할 단위 사이에 서로 크기 조정이 수행되는 영역은 인접한 분할 단위들에 대하여 하나씩(a와 d에 대하여 ad1 하나) 구성할 수 있다. 물론 도 27a 내지 27c에서도 데이터 처리 방법의 후보군으로 상기 방법을 포함할 수 있고, 도 28에서도 상기 예와 다른 데이터 처리 방법을 사용하여 크기 조정을 수행할 수 있다.
본 발명의 영상의 크기 조정 과정에서 크기 조정되는 영역에 묵시적으로 기 설정된 데이터 처리 방법을 사용할 수 있거나 또는 복수의 데이터 처리 방법 중 하나를 사용하며 명시적으로 관련 정보를 생성할 수 있다. 기 설정된 데이터 처리 방법은 임의의 화소값을 사용하여 채우는 방법, 외곽 화소를 복사하여 채우는 방법, 영상의 일부 영역을 복사하여 채우는 방법, 영상의 일부 영역을 변환하여 채우는 방법, 영상의 복수의 영역으로부터 유도된 데이터를 채우는 방법 등의 데이터 처리 방법 중 하나일 수 있다. 예를 들어, 크기 조정되는 영역이 영상 내부(예를 들어, 포장된 영상)에 위치하며 양 쪽의 영역(예를 들어, 표면)이 공간적으로 인접하지만 연속성이 존재하지 않는 경우에 복수의 영역으로부터 유도된 데이터를 채우는 데이터 처리 방법이 적용되어 크기 조정되는 영역을 채울 수 있다. 또한, 상기 복수의 데이터 처리 방법 중 하나를 선택하여 크기 조정을 수행할 수 있으며 이에 대한 선택 정보는 명시적으로 생성될 수 있다. 이는 360도 영상뿐만 아니라 일반적인 영상에도 적용될 수 있는 예일 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다. 또한, SEI 또는 메타 데이터 형태로 비트스트림에 포함될 수 있다. 360도 영상에서의 분할, 재구성, 크기 조정 과정을 ERP, CMP와 같은 일부 투영 포맷을 중심으로 설명하였으나, 이에 한정되지 않고 다른 투영 포맷에도 상기 내용과 동일하거나 변경되어 적용될 수 있다.
전술하는 360도 영상 부/복호화 장치에 적용되는 영상 설정 과정은 부/복호화 과정뿐 만 아니라 전처리 과정, 후처리 과정, 포맷 변환 과정, 포맷 역변환 과정 등에 적용될 수 있다는 설명을 하였다.
정리하면, 투영 과정은 영상 설정 과정이 포함되어 구성될 수 있다. 상세하게는, 적어도 하나의 영상 설정 과정이 포함되어 투영 과정이 수행될 수 있다. 투영된 영상에 기반하여 영역(또는 표면) 단위로 분할을 수행할 수 있다. 투영 포맷에 따라 하나의 영역 또는 복수의 영역으로 분할을 수행할 수 있다. 상기 분할에 따른 분할 정보가 생성될 수 있다. 또한, 투영된 영상의 크기 조정을 수행할 수 있거나 또는 투영된 영역의 크기 조정을 수행할 수 있다. 이때, 적어도 하나의 영역으로 크기 조정을 수행할 수 있다. 상기 크기 조정에 따른 크기 조정 정보가 생성될 수 있다. 또한, 투영된 영상의 재구성(또는 표면 배치)을 수행할 수 있거나 또는 투영된 영역의 재구성을 수행할 수 있다. 이때, 적어도 하나의 영역으로 재구성을 수행할 수 있다. 상기 재구성에 따른 재구성 정보가 생성될 수 있다.
정리하면, 지역별 포장 과정은 영상 설정 과정이 포함되어 구성될 수 있다. 상세하게는, 적어도 하나의 영상 설정 과정이 포함되어 지역별 포장 과정이 수행될 수 있다. 포장된 영상에 기반하여 영역(또는 표면) 단위로 분할 과정을 수행할 수 있다. 지역별 포장 설정에 따라 하나의 영역 또는 복수의 영역으로 분할을 수행할 수 있다. 상기 분할에 따른 분할 정보가 생성될 수 있다. 또한, 포장된 영상의 크기 조정을 수행할 수 있거나 또는 포장된 영역의 크기 조정을 수행할 수 있다. 이때, 적어도 하나의 영역으로 크기 조정을 수행할 수 있다. 상기 크기 조정에 따른 크기 조정 정보가 생성될 수 있다. 또한, 포장된 영상의 재구성을 수행할 수 있거나 또는 포장된 영역의 재구성을 수행할 수 있다. 이때, 적어도 하나의 영역으로 재구성을 수행할 수 있다. 상기 재구성에 따른 재구성 정보가 생성될 수 있다.
상기 투영 과정은 영상 설정 과정의 전부 또는 일부가 수행될 수 있으며, 영상 설정 정보를 포함할 수 있다. 이는 투영된 영상의 설정 정보일 수 있다. 상세하게는, 투영된 영상 내 영역들의 설정 정보일 수 있다.
상기 지역별 포장 과정은 영상 설정 과정의 전부 또는 일부가 수행될 수 있으며, 영상 설정 정보를 포함할 수 있다. 이는 포장된 영상의 설정 정보일 수 있다. 상세하게는, 포장된 영상 내 영역들의 설정 정보일 수 있다. 또는, 투영된 영상과 포장된 영상의 매핑 정보(예를 들어, 도 11과 관련된 설명 참조. P0 내지 P1는 투영된 영상, S0 내지 S5는 포장된 영상으로 가정하여 이해될 수 있음)일 수 있다. 상세하게는, 투영된 영상 내 일부 영역과 포장된 영상 내 일부 영역의 매핑 정보일 수 있다. 즉, 투영된 영상 내 일부 영역에서 포장된 영상 내 일부 영역으로 할당되는 설정 정보일 수 있다.
상기 정보는 본 발명의 영상 설정 과정에서 전술한 다양한 실시예를 통해 획득되는 정보로 나타낼 수 있다. 예를 들어, 표 1 내지 표 6에서 적어도 하나의 구문 요소를 사용하여 관련 정보를 나타낼 경우, 투영된 영상의 설정 정보는 pic_width_in_samples, pic_height_in_samples, part_top[i], part_left[i], part_width[i], part_height[i] 등을 포함할 수 있고, 포장된 영상의 설정 정보는 pic_width_in_samples, pic_height_in_samples, part_top[i], part_left[i], part_width[i], part_height[i], convert_type_flag[i], part_resizing_flag[i], top_height_offset[i], bottom_height_offset[i], left_width_offset[i], right_width_offset[i], resizing_type_flag[i] 등을 포함할 수 있다. 상기 예는 표면에 대한 정보(예를 들어, 투영된 영상의 설정 정보 중 part_top[i], part_left[i], part_width[i], part_height[i])를 명시적으로 생성하는 일 예일 수 있다.
영상 설정 과정의 일부는 기 설정된 동작으로 투영 포맷에 따른 투영 과정 또는 지역별 포장 과정에 포함될 수 있다.
예를 들어, ERP의 경우 좌, 우 방향으로 각각 m, n만큼 확장된 영역에 영상의 크기 조정 방향의 반대 방향(본 예에서 우, 좌 방향)의 영역의 데이터를 복사하여 채우는 방법을 사용하여 크기 조정을 수행하는 과정이 묵시적으로 포함될 수 있다. 또는, CMP의 경우 상, 하, 좌, 우 방향으로 각각 m, n, o, p만큼 확장된 영역에 크기 조정을 수행하는 영역과 연속성이 존재하는 영역의 데이터를 변환하여 채우는 방법을 사용하여 크기 조정을 수행하는 과정이 묵시적으로 포함될 수 있다.
상기 예의 투영 포맷은 기존의 투영 포맷을 대체하는 예일 수 있거나 또는 기존 투영 포맷에 추가적인 투영 포맷(예를 들어, ERP1, CMP1)의 예일 수 있으며, 상기 예에 한정되지 않고 본 발명의 다양한 영상 설정 과정의 예들이 대체 조합될 수 있으며, 다른 포맷의 경우도 이와 비슷한 적용이 가능할 수 있다.
한편, 도 1 및 도 2의 영상 부호화 장치 및 영상 복호화 장치에 도시하지 않았지만 블록 분할부가 더 포함될 수 있다. 픽쳐 분할부로부터 기본 부호화 단위에 대한 정보를 획득할 수 있으며, 기본 부호화 단위는 영상 부/복호화 과정에서 예측, 변환, 양자화 등에 대한 기본(또는 시작) 단위를 의미할 수 있다. 이때, 부호화 단위는 컬러 포맷(본 예에서 YCbCr)에 따라 하나의 휘도 부호화 블록과 두 개의 색차 부호화 블록으로 구성될 수 있으며, 컬러 포맷에 따라 각 블록의 크기가 정해질 수 있다. 후술하는 예에서는 블록(본 예에서 휘도 성분)을 기준으로 설명할 것이다. 이때, 블록은 각 단위가 결정된 후에 획득될 수 있는 단위임을 전제하고, 다른 종류의 블록에 비슷한 설정이 적용 가능함을 가정하여 설명한다.
블록 분할부는 영상 부호화 장치 및 복호화 장치의 각 구성부에 관계되어 설정될 수 있으며, 이 과정을 통해 블록의 크기와 형태가 정해질 수 있다. 이때, 설정되는 블록은 구성부에 따라 달리 정의될 수 있으며, 예측부의 경우 예측 블록, 변환부의 경우 변환 블록, 양자화부의 경우 양자화 블록 등이 이에 해당할 수 있다. 이에 한정되지 않고 다른 구성부에 따른 블록 단위가 추가로 정의될 수 있다. 블록의 크기 및 형태는 블록이 갖는 가로, 세로 길이에 의해 정의될 수 있다.
블록 분할부에서 블록은 M × N으로 표현될 수 있으며, 각 블록의 최대값과 최소값이 범위 내에서 획득될 수 있다. 예를 들어, 블록의 형태는 정사각을 지원하며 블록의 최대값을 256×256, 최소값을 8×8로 정할 경우, 2m×2m 크기의 블록(본 예에서 m은 3부터 8까지의 정수. 예를 들어, 8×8, 16×16, 32×32, 64×64, 128×128, 256×256) 또는 2m × 2m 크기의 블록(본 예에서 m은 4부터 128까지의 정수) 또는 m × m 크기의 블록(본 예에서 m은 8부터 256까지의 정수)을 획득할 수 있다. 또는, 블록의 형태는 정사각과 직사각을 지원하며 상기 예와 동일한 범위를 가질 경우, 2m × 2n 크기의 블록(본 예에서 m과 n은 3부터 8까지의 정수. 가로와 세로 비율이 최대 2:1인 경우를 가정하여 예를 들면, 8×8, 8×16, 16×8, 16×16, 16×32, 32×16, 32×32, 32×64, 64×32, 64×64, 64×128, 128×64, 128×128, 128×256, 256×128, 256×256. 부/복호화 설정에 따라 가로와 세로의 비율에 대한 제한이 없거나 비율의 최대값이 존재할 수 있음)을 획득할 수 있다. 또는, 2m × 2n 크기의 블록(본 예에서 m과 n은 4부터 128까지의 정수)을 획득할 수 있다. 또는, m × n 크기의 블록(본 예에서 m과 n은 8부터 256까지의 정수)을 획득할 수 있다.
부/복호화 설정(예를 들어, 블록의 종류, 분할 방식, 분할 설정 등)에 따라 획득 가능한 블록이 정해질 수 있다. 예를 들어, 부호화 블록은 2m × 2n 크기의 블록, 예측 블록은 2m × 2n 또는 m × n 크기의 블록, 변환 블록은 2m × 2n 크기의 블록을 획득할 수 있다. 상기 설정에 기반하여 블록 크기, 범위 등의 정보(예를 들어, 지수, 배수 관련 정보 등)가 생성될 수 있다.
블록의 종류에 따라 상기 범위(본 예에서 최대값과 최소값으로 정해짐)가 정해질 수 있다. 또한, 일부 블록은 블록의 범위 정보가 명시적으로 생성될 수 있고, 일부 블록은 블록의 범위 정보가 묵시적으로 정해질 수 있다. 예를 들어, 부호화, 변환 블록은 명시적으로 관련 정보가 생성될 수 있고, 예측 블록은 묵시적으로 관련 정보가 처리될 수 있다.
명시적인 경우에는 적어도 하나의 범위 정보가 생성될 수 있다. 예를 들어, 부호화 블록의 경우 범위에 대한 정보는 최대값과 최소값에 대한 정보를 생성할 수 있다. 또는, 최대값과 기 설정된 최소값(예를 들어, 8)의 차이(예를 들어, 상기 설정에 기반하여 생성. 최대값과 최소값의 지수의 차이값 정보 등)에 기반하여 생성될 수 있다. 또한, 직사각 형태의 블록의 가로, 세로 길이를 위한 복수의 범위에 대한 정보가 생성될 수 있다.
묵시적인 경우에는 부/복호화 설정(예를 들어, 블록의 종류, 분할 방식, 분할 설정 등)에 기반하여 범위 정보가 획득될 수 있다. 예를 들어, 예측 블록의 경우 상위 단위인 부호화 블록(본 예에서 부호화 블록의 최대 크기 M × N. 최소 크기 m × n)에서 예측 블록의 분할 설정(본 예에서 쿼드 트리 분할 + 분할 깊이 0)으로 획득 가능한 후보군(본 예에서 M × N과 m/2 × n/2)으로 최대값과 최소값 정보를 획득할 수 있다.
블록 분할부의 초기(또는 시작) 블록의 크기 및 형태는 상위 단위로부터 정해질 수 있다. 부호화 블록의 경우 픽쳐 분할부로부터 획득된 기본 부호화 블록이 초기 블록일 수 있고, 예측 블록의 경우 부호화 블록이 초기 블록일 수 있고, 변환 블록의 경우 부호화 블록 또는 예측 블록이 초기 블록일 수 있으며, 이는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 부호화 모드가 Intra일 경우에는 예측 블록은 변환 블록의 상위 단위일 수 있고, Inter일 경우에는 예측 블록은 변환 블록에 독립적인 단위일 수 있다. 초기 블록은 분할의 시작 단위로 작은 크기의 블록으로 분할할 수 있다. 각 블록의 분할에 따른 최적의 크기 및 형태가 정해지면 그 블록은 하위 단위의 초기 블록으로 정해질 수 있다. 예를 들어, 전자의 경우는 부호화 블록, 후자의 경우(하위 단위)는 예측 블록 또는 변환 블록일 수 있다. 상기 예와 같이 하위 단위의 초기 블록이 정해지면 상위 단위와 같이 최적의 크기 및 형태의 블록을 찾기 위한 분할 과정이 수행될 수 있다.
정리하면, 블록 분할부는 기본 부호화 단위(또는 최대 부호화 단위)를 적어도 하나의 부호화 단위(또는 하위 부호화 단위)로 분할을 수행할 수 있다. 또한, 부호화 단위는 적어도 하나의 예측 단위로 분할을 수행할 수 있고, 적어도 하나의 변환 단위로 분할을 수행할 수 있다. 부호화 단위는 적어도 하나의 부호화 블록으로 분할을 수행할 수 있고, 부호화 블록은 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 적어도 하나의 변환 블록으로 분할을 수행할 수 있다. 예측 단위는 적어도 하나의 예측 블록으로 분할을 수행할 수 있고, 변환 단위는 적어도 하나의 변환 블록으로 분할을 수행할 수 있다.
상기 예와 같이 모드 결정 과정을 통해 최적의 크기 및 형태의 블록을 찾을 경우, 이에 대한 모드 정보(예를 들어, 분할 정보 등)가 생성될 수 있다. 모드 정보는 블록이 속하는 구성부에서 발생하는 정보(예를 들어, 예측 관련 정보, 변환 관련 정보 등)과 함께 비트스트림에 수록되어 복호화기로 전송될 수 있고, 복호화기에서 동일 수준의 단위에서 파싱하여 영상 복호화 과정에서 사용할 수 있다.
후술하는 예는 분할 방식에 대한 설명을 할 것이며 초기 블록이 정사각 형태인 것을 가정하여 설명하지만, 직사각 형태인 경우 동일하거나 비슷한 적용이 가능할 수 있다.
블록 분할부는 다양한 분할 방식을 지원할 수 있다. 예를 들어, 트리 기반의 분할 또는 타입 기반의 분할을 지원할 수 있고, 그 외의 방법이 적용될 수 있다. 트리 기반의 분할의 경우 분할 플래그로 분할 정보를 생성할 수 있고, 타입 기반의 분할의 경우 기 설정된 후보군에 포함된 블록 형태에 대한 인덱스 정보로 분할 정보를 생성할 수 있다.
도 29는 트리 기반의 블록 형태를 나타낸 예시도이다.
29a는 분할이 수행되지 않은 하나의 2N × 2N, 29b는 일부 분할 플래그(본 예에서 바이너리 트리의 가로 분할)를 통해 두 개의 2N × N, 29c는 일부 분할 플래그(본 예에서 바이너리 트리의 세로 분할)를 통해 두 개의 N × 2N, 29d는 일부 분할 플래그(본 예에서 쿼드 트리의 4분할 또는 바이너리 트리의 가로와 세로 분할)를 통해 4개의 N × N 이 획득되는 예를 나타낸다. 분할에 사용되는 트리 종류에 따라 획득되는 블록의 형태가 정해질 수 있다. 예를 들어, 쿼드 트리 분할을 수행할 경우 획득 가능한 후보 블록은 29a, 29d일 수 있다. 바이너리 트리 분할을 수행할 경우 획득 가능한 후보 블록은 29a, 29b, 29c, 29d일 수 있다. 쿼드 트리의 경우 하나의 분할 플래그를 지원하며, 해당 플래그가 '0'인 경우 29a, '1'인 경우 29d를 획득할 수 있다. 바이너리 트리의 경우 복수의 분할 플래그를 지원하며, 그 중 하나는 분할 여부를 나타내는 플래그일 수 있고, 그 중 하나는 가로/세로 분할 여부를 나타내는 플래그일 수 있고, 그 중 하나는 가로/세로 분할의 중복 허용 여부를 나타내는 플래그일 수 있다. 중복이 허용되는 경우에 획득 가능한 후보 블록은 29a, 29b, 29c, 29d일 수 있고, 중복이 허용되지 않는 경우에 획득 가능한 후보 블록은 29a, 29b, 29c일 수 있다. 쿼드 트리의 경우 기본적인 트리 기반의 분할 방식일 수 있으며, 이에 추가적으로 트리 분할 방식(본 예에서 바이너리 트리)가 트리 기반의 분할 방식에 포함될 수 있다. 추가적인 트리 분할을 허용하는 플래그가 묵시적으로 또는 명시적으로 활성화되는 경우 복수의 트리 분할을 수행할 수 있다. 트리 기반의 분할은 재귀적인 분할(Recursive Partition)이 가능한 방식일 수 있다. 즉, 분할된 블록이 다시 초기 블록으로 설정되어 트리 기반의 분할이 수행될 수 있으며, 이는 분할 범위, 분할 허용 깊이 등의 분할 설정에 따라 정해질 수 있다. 이는 계층적 분할 방식의 일 예일 수 있다.
도 30은 타입 기반의 블록 형태를 나타낸 예시도이다.
도 30을 참조하면, 타입에 따라 분할 후 블록은 1 분할(본 예에서 30a), 2 분할(본 예에서 30b, 30c, 30d, 30e, 30f, 30g), 4 분할된 형태(본 예에서 30h)를 가질 수 있다. 다양한 구성을 통해 후보군을 구성할 수 있다. 예를 들어, 도 31의 a, b, c, n 또는 a, b ~ g, n 또는 a, n, q 등으로 후보군을 구성할 수 있으며, 이에 한정되지 않고 후술하는 예를 포함하여 다양한 변형의 예가 가능할 수 있다. 대칭 분할(Symmetric Partition)을 허용하는 플래그가 활성화될 경우에 지원되는 블록은 도 30a, 30b, 30c, 30h일 수 있고, 비대칭 분할(Asymmetric Partition)을 허용하는 플래그가 활성화될 경우에 지원되는 블록은 도 30a ~ 30h 모두일 수 있다. 전자의 경우 관련 정보(본 예에서 대칭 분할을 허용하는 플래그)가 묵시적으로 활성화될 수 있고, 후자의 경우 명시적으로 관련 정보(본 예에서 비대칭 분할을 허용하는 플래그)가 생성될 수 있다. 타입 기반의 분할은 한 번의 분할을 지원하는 방식일 수 있다. 트리 기반의 분할과 비교하면 타입 기반의 분할을 통해 획득된 블록은 더 이상의 추가 분할은 불가능할 수 있다. 이는 분할 허용 깊이가 0인 예(예를 들어, 단일 계층 분할)일 수 있다.
도 31은 본 발명의 블록 분할부에서 획득할 수 있는 다양한 블록의 형태를 나타낸 예시도이다.
도 31을 참조하면, 분할 설정, 분할 방식에 따라 31a 내지 31s의 블록을 획득할 수 있으며, 도시되지 않은 추가적인 블록 형태 또한 가능할 수 있다.
일 예로, 트리 기반의 분할에 비대칭 분할을 허용할 수 있다. 예를 들어, 바이너리 트리의 경우 도 31b, 31c와 같은 블록(본 예에서 복수의 블록으로 분할된 경우)이 가능할 수 있거나 또는 도 31b ~ 31g와 같은 블록(본 예에서 복수의 블록으로 분할된 경우)이 가능할 수 있다. 비대칭 분할을 허용하는 플래그가 부/복호화 설정에 따라 명시적 또는 묵시적으로 비활성화될 경우 획득 가능한 후보 블록은 31b 또는 31c(본 예는 가로와 세로의 중복 분할을 허용하지 않는 가정)일 수 있고, 비대칭 분할을 허용하는 플래그가 활성화될 경우 획득 가능한 후보 블록은 31b, 31d, 31e(본 예에서 가로 분할)일 수 있거나 31c, 31f, 31g(본 예에서 세로 분할)일 수 있다. 본 예는 가로 또는 세로 분할 플래그에 의해 분할 방향이 결정되고 비대칭 허용 플래그에 따라 블록 형태가 결정되는 경우에 해당할 수 있으며, 이에 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
일 예로, 트리 기반의 분할에 추가적인 트리 분할을 허용할 수 있다. 예를 들어, 트리플 트리, 쿼드 타입 트리, 옥타 트리 등의 분할이 가능할 수 있으며, 이를 통해 n개의 분할 블록(본 예에서 3, 4, 8. n은 정수)을 획득할 수 있다. 트리플 트리의 경우 지원되는 블록(본 예에서 복수의 블록으로 분할된 경우)은 31h ~ 31m일 수 있고, 쿼드 타입 트리의 경우 지원되는 블록은 31n ~ 31p일 수 있고, 옥타 트리의 경우 지원되는 블록은 31q일 수 있다. 상기 트리 기반의 분할의 지원 여부는 부/복호화 설정에 따라 묵시적으로 정해지거나 또는 명시적으로 관련 정보가 생성될 수 있다. 또한, 부/복호화 설정에 따라 단독으로 사용되거나 또는 바이너리 트리, 쿼드 트리 분할이 혼합 사용될 수 있다. 예를 들어, 바이너리 트리의 경우 도 31b, 31c와 같은 블록이 가능할 수 있고, 바이너리 트리와 트리플 트리가 혼합 사용되는 경우(본 예는 바이너리 트리의 사용 범위와 트리플 트리의 사용 범위가 일부 중복되는 경우라 가정) 31b, 31c, 31i, 31l와 같은 블록이 가능할 수 있다. 기존 트리 외의 추가 분할을 허용하는 플래그가 부/복호화 설정에 따라 명시적 또는 묵시적으로 비활성화될 경우 획득 가능한 후보 블록은 31b 또는 31c일 수 있고, 활성화될 경우 획득 가능한 후보 블록은 31b, 31i 또는 31b, 31h, 31i, 31j(본 예에서 가로 분할)일 수 있거나 31c, 31l 또는 31c, 31k, 31l, 31m(본 예에서 세로 분할)일 수 있다. 본 예는 가로 또는 세로 분할 플래그에 의해 분할 방향이 결정되고 추가 분할을 허용하는 플래그에 따라 블록 형태가 결정되는 경우에 해당할 수 있으며, 이에 한정되지 않고 다른 예로의 변형 또한 가능할 수 있다.
일 예로, 타입 기반의 블록에 비사각 분할(Non-Rectangular Partition)을 허용할 수 있다. 예를 들어, 31r, 31s와 같은 형태의 분할이 가능할 수 있다. 전술한 타입 기반의 블록 후보군과 결합할 경우 31a, 31b, 31c, 31h, 31r, 31s 또는 31a ~ 31h, 31r, 31s의 블록이 지원되는 블록일 수 있다. 또한, 31h ~ 31m와 같은 n개의 분할(예를 들어, n은 정수. 본 예는 1, 2, 4를 제외한 3)을 지원하는 블록이 후보군에 포함될 수 있다.
부/복호화 설정에 따라 분할 방식이 정해질 수 있다.
일 예로, 블록의 종류에 따라 분할 방식이 정해질 수 있다. 예를 들어, 부호화 블록과 변환 블록은 트리 기반의 분할을, 예측 블록은 타입 기반의 분할 방식을 사용할 수 있다. 또는, 두 방식의 조합된 형태의 분할 방식을 사용할 수 있다. 예를 들어, 예측 블록은 트리 기반의 분할과 타입 기반의 분할을 혼합하는 분할 방식을 사용할 수 있으며, 블록의 적어도 하나의 범위에 따라 적용되는 분할 방식이 다를 수 있다.
일 예로, 블록의 크기에 따라 분할 방식이 정해질 수 있다. 예를 들어, 블록의 최대값과 최소값 사이에서 일부 범위(예를 들어, a×b ~ c×d. 후자가 더 큰 크기인 경우)에는 트리 기반의 분할을, 일부 범위(예를 들어, e×f ~ g×h)에는 타입 기반의 분할이 가능할 수 있다. 이 경우, 분할 방식에 따른 범위 정보가 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있다.
일 예로, 블록(또는 분할 전 블록)의 형태에 따라 분할 방식이 정해질 수 있다. 예를 들어, 블록의 형태가 정사각일 경우 트리 기반의 분할과 타입 기반의 분할이 가능할 수 있다. 또는, 블록의 형태가 직사각일 경우에 트리 기반의 분할이 가능할 수 있다.
부/복호화 설정에 따라 분할 설정이 정해질 수 있다.
일 예로, 블록의 종류에 따라 분할 설정이 정해질 수 있다. 예를 들어, 트리 기반의 분할에서 부호화 블록과 예측 블록은 쿼드 트리, 변환 블록은 바이너리 트리 분할을 사용할 수 있다. 또는, 부호화 블록의 경우 분할 허용 깊이는 m, 예측 블록의 경우 분할 허용 깊이는 n, 변환 블록의 경우 분할 허용 깊이는 o로 설정할 수 있으며, m과 n과 o는 동일하거나 동일하지 않을 수 있다.
일 예로, 블록의 크기에 따라 분할 설정이 정해질 수 있다. 예를 들어, 블록의 일부 범위(예를 들어, a×b ~ c×d)에는 쿼드 트리 분할을, 일부 범위(예를 들어, e×f ~ g×h. 본 예에서 c×d는 g×h보다 크다고 가정)에는 바이너리 트리 분할이 가능할 수 있다. 이때, 상기 범위로 블록의 최대값과 최소값 사이의 모든 범위를 포함할 수 있고, 상기 범위는 서로 중첩되지 않은 설정을 갖거나 중첩되는 설정을 가질 수 있다. 예를 들어, 일부 범위의 최소값은 일부 범위의 최대값과 동일하거나 또는 일부 범위의 최소값은 일부 범위의 최대값보다 작을 수 있다. 중첩되는 범위를 가질 경우 더 높은 최대값을 갖는 분할 방식이 우선 순위를 가질 수 있다. 즉, 우선 순위를 갖는 분할 방식에서 분할 결과에 따라 후순위를 갖는 분할 방식의 수행 여부가 정해질 수 있다. 이 경우, 트리 종류에 따른 범위 정보가 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있다.
다른 예로, 블록의 일부 범위(상기 예와 동일)에는 일부 후보군을 갖는 타입 기반의 분할을, 일부 범위(상기 예와 동일)에는 일부 후보군(본 예에서 전자의 후보군과 적어도 하나의 구성이 다름)을 갖는 타입 기반의 분할이 가능할 수 있다. 이때, 상기 범위로 블록의 최대값과 최소값 사이의 모든 범위를 포함할 수 있고, 상기 범위는 서로 중첩되지 않는 설정을 가질 수 있다.
일 예로, 블록의 형태에 따라 분할 설정이 정해질 수 있다. 예를 들어, 블록의 형태가 정사각일 경우 쿼드 트리 분할이 가능할 수 있다. 또는, 블록의 형태가 직사각일 경우에 바이너리 트리 분할이 가능할 수 있다.
일 예로, 부/복호화 정보(예를 들어, 슬라이스 타입, 컬러 성분, 부호화 모드 등)에 따라 분할 설정이 정해질 수 있다. 예를 들어, 슬라이스 타입이 I일 경우 쿼드 트리(또는 바이너리 트리) 분할은 일부 범위(예를 들어, a×b ~ c×d), P일 경우 일부 범위(예를 들어, e×f ~ g×h), B일 경우 일부 범위(예를 들어, i×j ~ k×l)에서 가능할 수 있다. 또한, 슬라이스 타입이 I일 경우 쿼드 트리(또는 바이너리 트리) 분할의 분할 허용 깊이 m, P일 경우 분할 허용 깊이 n, B일 경우 분할 허용 깊이 o으로 설정할 수 있으며, m과 n과 o는 동일하거나 동일하지 않을 수 있다. 일부 슬라이스 타입의 경우 다른 슬라이스(예를 들어, P와 B 슬라이스)와 동일한 설정을 가질 수 있다.
다른 예로, 컬러 성분이 휘도 성분일 경우 쿼드 트리(또는 바이너리 트리) 분할 허용 깊이를 m, 색차 성분일 경우 n으로 설정할 수 있으며, m과 n은 동일하거나 동일하지 않을 수 있다. 또한, 컬러 성분이 휘도 성분일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위(예를 들어, a×b ~ c×d)와 색차 성분일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위(예를 들어, e×f ~ g×h)는 동일하거나 동일하지 않을 수 있다.
다른 예로, 부호화 모드가 Intra일 경우 쿼드 트리(또는 바이너리 트리) 분할 허용 깊이가 m, Inter일 경우 n(본 예에서 n은 m보다 크다고 가정)일 수 있으며, m과 n은 동일하거나 동일하지 않을 수 있다. 또한, 부호화 모드가 Intra일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위와 부호화 모드가 Inter일 경우 쿼드 트리(또는 바이너리 트리) 분할의 범위는 동일하거나 동일하지 않을 수 있다.
상기 예의 경우 부/복호화 정보에 따른 적응적인 분할 후보군 구성 지원 여부에 대한 정보가 명시적으로 생성될 수 있거나 묵시적으로 정해질 수 있다.
상기 예를 통해 부/복호화 설정에 따라 분할 방식과 분할 설정이 정해지는 경우를 설명하였다. 상기 예는 각 요소에 따른 일부 경우를 나타내며, 다른 경우로의 변형 또한 가능할 수 있다. 또한, 복수의 요소에 의한 조합에 따라 분할 방식과 분할 설정이 정해질 수도 있다. 예를 들어, 블록의 종류, 크기, 형태, 부/복호화 정보 등에 의해 분할 방식과 분할 설정이 정해질 수 있다.
또한, 상기 예에서 분할 방식, 설정 등에 관여하는 요소들은 묵시적으로 정해지거나 또는 명시적으로 정보를 생성하여 상기 예와 같은 적응적인 경우의 허용 여부를 정할 수 있다.
상기 분할 설정 중 분할 깊이는 초기 블록을 기준으로 공간적으로 분할한 횟수(본 예에서 초기 블록의 분할 깊이는 0)를 의미하며, 분할 깊이가 증가할수록 더 작은 블록으로 분할될 수 있다. 이는 분할 방식에 따라 깊이 관련 설정을 달리할 수 있다. 예를 들어, 트리 기반의 분할을 수행하는 방식 중 쿼드 트리의 분할 깊이와 바이너리 트리의 분할 깊이는 공통되는 하나의 깊이를 사용할 수 있고, 트리의 종류에 따른 개별적인 깊이를 사용할 수 있다.
상기 예에서 트리의 종류에 따라 개별적인 분할 깊이를 사용하는 경우 트리의 분할 시작 위치(본 예에서 분할을 수행하기 전 블록)에서 분할 깊이 0으로 설정할 수 있다. 각 트리의 분할 범위(본 예에서 최대값)에 기반하지 않고 분할이 시작되는 위치를 중심으로 분할 깊이가 계산될 수 있다.
도 32는 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
32a는 쿼드 트리와 바이너리 트리 분할 예를 나타낸다. 상세하게는, 32a의 좌상 블록은 쿼드 트리 분할, 우상 블록과 좌하 블록은 쿼드 트리와 바이너리 트리 분할, 우하 블록은 바이너리 트리 분할 예를 나타낸다. 그림에서 실선(본 예에서 Quad1)은 쿼드 트리로 분할된 경계선을, 점선(본 예에서 Binary1)은 바이너리 트리로 분할된 경계선을, 굵은 실선(본 예에서 Binary2)은 바이너리 트리로 분할된 경계선을 의미한다. 점선과 굵은 실선의 차이는 분할 방법의 차이에 있다.
일 예로, (좌상 블록은 쿼드 트리 분할 허용 깊이가 3. 현재 블록이 N × N인 경우 가로 또는 세로 중 하나가 (N >> 3)에 도달할 때까지 분할을 수행하되 분할 정보는 (N >> 2)까지의 분할 정보를 생성. 이는 후술하는 예에 공통 적용. 쿼드 트리의 최대값과 최소값은 N × N, (N >> 3) × (N >> 3)이라 가정) 좌상 블록은 쿼드 트리 분할이 수행되는 경우 가로, 세로 길이의 1/2씩의 길이를 갖는 4개의 블록으로 분할될 수 있다. 분할 플래그의 경우 분할이 활성화된 경우 '1', 분할이 비활성화된 경우 '0'의 값을 가질 수 있다. 상기 설정에 따라 좌상 블록의 분할 플래그는 32b의 좌상 블록과 같이 발생할 수 있다.
일 예로, (우상 블록은 쿼드 트리 분할 허용 깊이가 0. 바이너리 트리 분할 허용 깊이가 4. 쿼드 트리 분할의 최대값과 최소값은 N × N, (N >> 2) × (N >> 2). 바이너리 트리의 최대값과 최소값은 (N >> 1) × (N >> 1), (N >> 3) × (N >> 3) 라 가정) 우상 블록은 초기 블록에서 쿼드 트리 분할을 수행하는 경우 가로, 세로 길이의 1/2씩의 길이를 갖는 4개의 블록으로 분할될 수 있다. 분할된 블록의 크기는 (N >> 1) × (N >> 1)이며, 이는 본 예의 설정에 따라 바이너리 트리 분할(본 예에서 쿼드 트리 분할의 최소값보다 크나 분할 허용 깊이가 제한되는 경우)이 가능할 수 있다. 즉, 본 예는 쿼드 트리 분할과 바이너리 트리 분할의 중첩 사용이 불가능한 예일 수 있다. 본 예의 바이너리 트리의 분할 정보는 복수의 분할 플래그로 구성될 수 있다. 일부 플래그는 가로 분할 플래그(본 예에서 x/y의 x에 해당), 일부 플래그는 세로 분할 플래그(본 예에서 x/y에서 y에 해당)일 수 있으며, 분할 플래그의 구성은 쿼드 트리 분할과 비슷한 설정(예를 들어, 활성화 여부)을 가질 수 있다. 본 예에서는 상기 두 플래그는 중복해서 활성화될 수 있다. 그림에서 '-'로 플래그 정보가 생성된 경우 '-'는 트리 분할에 따른 최대값, 최소값, 분할 허용 깊이 등의 조건에 따라 추가적으로 분할이 불가능한 경우에 발생할 수 있는 플래그의 묵시적인 처리에 해당할 수 있다. 상기 설정에 따라 우상 블록의 분할 플래그는 32b의 우상 블록과 같이 발생할 수 있다.
일 예로, (좌하 블록은 쿼드 트리 분할 허용 깊이가 3. 바이너리 트리 분할 허용 깊이가 2. 쿼드 트리 분할의 최대값과 최소값은 N × N, (N >> 3) × (N >> 3). 바이너리 트리 분할의 최대값과 최소값은 (N >> 2) × (N >> 2), (N >> 4) × (N >> 4). 중첩되는 범위에서 분할 우선 순위는 쿼드 트리 분할에 주어진다 가정) 좌하 블록은 초기 블록에서 쿼드 트리 분할을 수행하는 경우 가로, 세로 길이의 1/2씩의 길이를 갖는 4개의 블록으로 분할될 수 있다. 분할된 블록의 크기는 (N >> 1) × (N >> 1)이며, 이는 본 예의 설정에 따라 쿼드 트리 분할과 바이너리 트리 분할이 가능할 수 있다. 즉, 본 예는 쿼드 트리 분할과 바이너리 트리 분할의 중첩 사용이 가능한 예일 수 있다. 이 경우 우선 순위가 주어지는 쿼드 트리 분할 결과에 따라 바이너리 트리 분할의 수행 여부가 결정될 수 있다. 쿼드 트리 분할이 수행되는 경우 바이너리 트리 분할은 수행되지 않고, 쿼드 트리 분할이 수행되지 않는 경우 바이너리 트리 분할이 수행될 수 있다. 쿼드 트리 분할이 수행되지 않는 경우 상기 설정에 따라 분할이 가능한 조건이더라도 더 이상의 쿼드 트리 분할은 불가능할 수 있다. 본 예의 바이너리 트리의 분할 정보는 복수의 분할 플래그로 구성될 수 있다. 일부 플래그는 분할 플래그(본 예에서 x/y에서 x에 해당), 일부 플래그는 분할 방향 플래그(본 예에서 x/y에서 y에 해당. x에 따라 y 정보 생성 여부가 결정될 수 있음)일 수 있으며, 분할 플래그는 쿼드 트리 분할과 비슷한 설정을 가질 수 있다. 본 예에서는 가로 분할과 세로 분할이 중복되어 활성화될 수 없다. 그림에서 '-'로 플래그 정보가 생성된 경우 '-'은 상기 예와 비슷한 설정을 가질 수 있다. 상기 설정에 따라 좌하 블록의 분할 플래그는 32b의 좌하 블록과 같이 발생할 수 있다.
일 예로, (우하 블록은 바이너리 트리 분할 허용 깊이가 5. 바이너리 트리 분할의 최대값과 최소값은 N × N, (N >> 2) × (N >> 3)이라 가정) 우하 블록은 초기 블록에서 바이너리 트리 분할을 수행하는 경우 가로 또는 세로 길이의 1/2의 길이를 갖는 2개의 블록으로 분할될 수 있다. 본 예의 분할 플래그 설정은 좌하 블록과 동일할 수 있다. 그림에서 '-'로 플래그 정보가 생성된 경우 '-'은 상기 예와 비슷한 설정을 가질 수 있다. 본 예는 바이너리 트리의 가로, 세로의 최소값이 다르게 설정되는 경우를 나타낸다. 상기 설정에 따라 우하 블록의 분할 플래그는 32b의 우하 블록과 같이 발생할 수 있다.
상기 예와 같이 블록 정보(예를 들어, 블록의 종류, 크기, 형태, 위치, 슬라이스 타입, 컬러 성분 등)를 확인한 후 그에 따른 분할 방식과 분할 설정을 정할 수 있으며, 그에 따른 분할 과정을 수행할 수 있다.
도 33은 본 발명의 일 실시예에 따른 트리 기반의 분할을 설명하기 위한 예시도이다.
33a와 33b의 블록을 참조하면, 굵은 실선(L0)은 최대 부호화 블록을, 굵은 실선과 다른 선(L1~L5)으로 구획된 블록은 분할된 부호화 블록을 의미하며, 블록 내부의 숫자는 분할된 서브 블록의 위치(본 예에서 Raster Scan 순서를 따름)를 의미하며 '-’의 개수는 해당 블록이 갖는 분할 깊이를 의미하고, 블록 간의 경계선의 숫자는 분할된 횟수를 의미할 수 있다. 예를 들어, 4분할된 경우(본 예에서 쿼드 트리) UL(0)-UR(1)-DL(2)-DR(3)의 순서로, 2분할된 경우(본 예에서 바이너리 트리) L 또는 U(0) - R 또는 D(1)의 순서를 가질 수 있으며, 이는 각 분할 깊이에서 정의될 수 있다. 후술하는 예는 획득 가능한 부호화 블록이 제한적인 경우를 나타낸다.
일 예로, 33a의 최대 부호화 블록이 64×64이고, 최소 부호화 블록은 16×16이며 쿼드 트리 분할을 사용한다고 가정한다. 이 경우, 2-0, 2-1, 2-2 블록(본 예에서 16×16 크기)이 최소 부호화 블록 크기와 같기 때문에, 2-3-0, 2-3-1, 2-3-2. 2-3-3 블록(본 예에서 8×8크기)과 같은 더 작은 블록으로 분할되지 않을 수 있다. 이 경우 2-0, 2-1, 2-2, 2-3 블록에서는 획득 가능한 블록은 16×16 블록, 즉 하나의 후보군을 갖기 때문에 블록 분할 정보가 생성되지 않는다.
일 예로 33b의 최대 부호화 블록이 64×64이고, 최소 부호화 블록은 가로 또는 세로 길이로 8, 허용 가능한 분할 깊이는 3이라고 가정한다. 이 경우, 1-0-1-1(본 예에서 16×16 크기. 분할 깊이는 3) 블록이 최소 부호화 블록 조건을 만족하기 때문에 더 작은 블록으로 분할될 수 있다. 그러나 허용 가능한 분할 깊이와 같기 때문에 더 높은 분할 깊이의 블록(본 예에서 1-0-1-0-0, 1-0-1-0-1 블록)으로 분할되지 않을 수 있다. 이 경우 1-0-1-0, 1-0-1-1 블록에서는 획득 가능한 블록은 16×8 블록, 즉 하나의 후보군을 갖기 때문에 블록 분할 정보가 생성되지 않는다.
상기 예와 같이 부/복호화 설정에 따라 쿼드 트리 분할을 지원하거나 바이너리 트리 분할을 지원할 수 있다. 또는, 쿼드 트리 분할과 바이너리 트리 분할을 혼합하여 지원할 수도 있다. 예를 들어, 블록 크기, 분할 깊이 등에 따라 상기 방식 중 하나 또는 그들을 혼합하여 지원할 수 있다. 블록이 제 1 블록 범위에 속할 경우에는 쿼드 트리, 제 2 블록 범위에 속할 경우에는 바이너리 트리 분할을 지원할 수 있다. 복수의 분할 방식이 지원될 경우 각 방식에 따른 최대 부호화 블록 크기, 최소 부호화 블록 크기, 허용 가능한 분할 깊이 등의 적어도 하나의 설정을 가질 수 있다. 상기 범위는 서로의 범위가 중첩되어 설정될 수도 있고, 그렇지 않을 수도 있다. 또는, 어느 하나의 범위가 다른 범위를 포함하는 설정 또한 가능할 수 있다. 이에 대한 설정은 슬라이스 타입, 부호화 모드, 컬러 성분 등의 개별적이거나 혼합적인 요소에 따라 정해질 수 있다.
일 예로, 슬라이스 타입에 따라 분할 설정이 정해질 수 있다. I 슬라이스일 경우에 지원되는 분할 설정은 쿼드 트리의 경우 128×128 ~ 32×32 범위에서의 분할을, 바이너리 트리의 경우 32×32 ~ 8×8 범위에서의 분할을 지원할 수 있다. P/B 슬라이스일 경우에 지원되는 블록 분할 설정은 쿼드 트리의 경우 128×128 ~ 32×32 범위에서의 분할을, 바이너리 트리의 경우 64×64 ~ 8×8 범위에서의 분할을 지원할 수 있다.
일 예로, 부호화 모드에 따라 분할 설정이 정해질 수 있다. 부호화 모드가 Intra일 경우에 지원되는 분할 설정은 바이너리 트리의 경우 64×64 ~ 8×8 범위에서의 분할과 허용 가능한 분할 깊이를 2를 지원할 수 있다. Inter일 경우에 지원되는 분할 설정은 바이너리 트리의 경우 32×32 ~ 8×8 범위에서의 분할과 허용 가능한 분할 깊이를 3을 지원할 수 있다.
일 예로, 컬러 성분에 따라 분할 설정이 정해질 수 있다. 휘도 성분일 경우에 쿼드 트리의 경우 256×256 ~ 64×64 범위에서의 분할을, 바이너리 트리의 경우 64×64 ~ 16×16 범위에서의 분할을 지원할 수 있다. 색차 성분일 경우에 쿼드 트리의 경우 휘도 성분과 동일한 설정(본 예에서 색차 포맷에 따라 각 블록의 길이가 비례하는 설정)을, 바이너리 트리의 경우 64×64 ~ 4×4 범위(본 예에서 이에 동일한 휘도 성분에서의 범위는 128×128 ~ 8×8. 4:2:0에서의 가정)에서의 분할을 지원할 수 있다.
상기 예는 블록의 종류에 따라 분할 설정을 달리 두는 경우를 설명하였다. 또한, 일부 블록의 경우 다른 블록과 결합되어 하나의 분할 과정을 수행할 수 있다. 예를 들어, 부호화 블록과 변환 블록이 하나의 단위로 결합할 경우 최적의 블록의 크기 및 형태를 획득하기 위한 분할 과정이 수행되며, 이는 부호화 블록의 최적의 크기 및 형태뿐만 아니라 변환 블록의 최적의 크기 및 형태일 수 있다. 또는, 부호화 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 부호화 블록과 예측 블록과 변환 블록이 하나의 단위로 결합할 수 있고, 그 외의 블록들의 결합이 가능할 수 있다.
본 발명에서 각 블록에 개별적인 분할 설정을 두는 경우를 중심으로 설명하였지만, 복수의 단위가 하나로 결합되어 하나의 분할 설정을 갖는 경우 또한 가능할 수 있다.
위의 과정에는 발생하는 정보를 부호화기에서 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위 중 적어도 하나의 단위로 비트스트림에 수록할 것이고, 복호화기에서는 관련 정보를 비트스트림으로부터 파싱할 것이다.
본 발명에서 예측부는 화면내 예측과 화면간 예측으로 분류될 수 있으며, 화면내 예측과 화면간 예측은 다음과 같이 정의할 수 있다.
화면내 예측은 현재 영상(예를 들어, 픽쳐, 슬라이스, 타일 등)의 부/복호화가 완료된 영역으로부터 예측값을 생성하는 기술일 수 있고, 화면간 예측은 현재 영상 이전에 적어도 하나의 부/복호화가 완료된 영상(예를 들어, 픽쳐, 슬라이스, 타일 등)으로부터 예측값을 생성하는 기술일 수 있다.
또는, 화면내 예측은 현재 영상의 부/복호화가 완료된 영역으로부터 예측값을 생성하는 기술일 수 있으나 일부 예측 방법{예를 들어, 참조 영상으로부터 예측값을 생성하는 방법. 블록 매칭(Block Matching), 템플릿 매칭(Template Matching) 등}은 제외하는 예측일 수 있고, 화면간 예측은 적어도 하나의 부/복호화가 완료된 영상으로부터 예측값을 생성하는 기술일 수 있으며, 상기 부/복호화가 완료된 영상은 현재 영상을 포함하여 구성될 수 있다.
부/복호화 설정에 따라 상기 정의 중 하나를 따를 수 있으며, 후술하는 예에서는 첫 번째 정의를 따르는 것을 가정하여 설명한다. 또한, 예측값은 공간 영역에서 예측을 통해 획득되는 값이라는 가정 하에 설명하지만 이에 한정되지 않는다.
다음은 본 발명에서 예측부의 화면내 예측에 대한 설명을 할 것이다.
본 발명의 일 실시예에 따른 영상 부호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 예측 블록 생성부, 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
도 34는 화면내 예측에 사용되는 참조 화소 구성을 설명하기 위한 예시도이다. 예측이 수행되는 현재 블록의 크기 및 형태(M × N)는 블록 분할부로부터 획득될 수 있으며, 화면내 예측을 위해 4×4 내지 128×128 범위에서 지원되는 가정 하에 설명한다. 화면내 예측은 예측 블록 단위로 수행되는 것이 일반적일 수 있으나 블록 분할부의 설정에 따라 부호화 블록, 변환 블록 등의 단위로 수행될 수 있다. 블록 정보를 확인한 후 참조 화소 구성부에서는 현재 블록의 예측에 사용되는 참조 화소를 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 배열<Array>. 1차, 2차 배열 등)를 통해 관리될 수 있으며, 블록의 화면내 예측 과정마다 생성 및 제거되고, 임시 메모리의 크기는 참조 화소의 구성에 따라 결정될 수 있다.
본 예에서는 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록이 현재 블록의 예측에 사용되는 경우를 가정하여 설명하지만, 이에 한정되지 않고 다른 구성의 블록 후보군이 현재 블록의 예측에 사용될 수도 있다. 예를 들어, 상기 참조 화소를 위한 이웃 블록의 후보군은 래스터 또는 Z 스캔을 따르는 경우의 일 예일 수 있으며, 스캔 순서에 따라 상기 후보군 중 일부를 제거할 수 있거나 또는 다른 블록 후보군(예를 들어, 우, 하, 우하 블록 등이 추가 구성)을 포함하여 구성될 수 있다. 또는, 다른 컬러 공간(예를 들어, 현재 블록이 Cr에 속할 경우 다른 컬러 공간은 Y 또는 Cb가 해당)에서 현재 블록과 대응되는 블록(예를 들어, 각 컬러 공간에서 동일 좌표 또는 컬러 성분 구성 비율에 따라 대응되는 좌표를 갖는 경우)이 현재 블록의 예측에 사용될 수 있다. 또한, 설명의 편의를 위해 상기 기 설정된 위치(좌, 상, 좌상, 우상, 좌하)에 하나의 블록으로 구성된 예를 가정하여 설명하지만, 해당 위치에는 적어도 하나의 블록이 존재할 수 있다. 즉, 상기 기 설정된 위치에는 해당 블록의 블록 분할에 따른 복수의 블록이 존재할 수 있다.
도 34와 같이 현재 블록의 예측에 사용되는 참조 화소는 좌, 상, 좌상, 우상, 좌하 블록의 인접한 화소(도 34의 Ref_L, Ref_T, Ref_TL, Ref_TR, Ref_BL)로 구성할 수 있다. 이때, 참조 화소는 현재 블록과 가장 인접한 이웃 블록의 화소들(도 34 a)로 구성하는 것이 일반적이나 그 외의 화소들(도 34 b와 그 외의 바깥 라인의 화소들)로 구성하는 것도 가능할 수 있다. 본 예에서는 가장 인접한 이웃 블록의 화소들로 참조 화소가 구성되는 경우를 중심으로 설명한다.
도 34와 같이 현재 블록의 화소는 p(0,0)에서 p(M-1,N-1)의 범위에 위치할 수 있고, 상측으로 p(0,-1) ~ p(2M-1,-1) (Ref_T + Ref_TR), 좌측으로 p(-1,0) ~ p(-1,2N-1) (Ref_L + Ref_BL), 좌상측으로 p(-1,-1) (Ref_TL)의 범위에 위치할 수 있으며, 이는 참조 화소의 존재가 가능한 최대 범위를 의미할 수 있다.
상세하게는, 블록의 크기, 형태, 예측 모드의 구성 등에 따라 참조 화소의 범위가 결정될 수 있다. 예를 들어, 방향성 모드가 y축을 기준으로 -π/2 rad (또는 -135도)에서 +π/4 rad (또는 45도)사이의 범위에서 지원될 경우, 현재 블록의 우측 하단의 화소{p(M-1,N-1)}를 기준으로 참조 화소의 범위를 확인할 수 있다.
정리하면, 우측 하단의 화소를 예측하기 위해 상측(Ref_T, Ref_TR)과 좌측 블록(Ref_L, Ref_BL)에서 사용되는 화소를 통해 참조 화소 범위를 확인할 수 있다. 본 예에서 참조 화소는 p(0,-1) ~ p(M+N-1,-1), p(-1,0) ~ p(-1,N+M-1), p(-1,-1)의 범위 내에 존재할 수 있다.
도 35는 화면내 예측에 사용되는 참조 화소 범위를 설명하기 위한 예시도이다. 상세하게는, 블록의 크기, 형태, 예측 모드의 구성(본 예에서 예측 모드의 각도 정보) 등에 따라 결정되는 참조 화소 범위를 나타낸다. 도 35에서 화살표가 가리키는 위치는 예측에 사용되는 화소를 의미한다.
도 35를 참조하면, A, A', B, B', C 화소는 8×2, 2×8, 8×4, 4×8, 8×8 블록의 우측 하단의 화소를 의미하며, 해당 화소의 예측을 위해 상측과 좌측 블록에서 사용되는 화소(AT, AL, BT, BL, CT, CL)를 통해 각 블록의 참조 화소 범위를 확인할 수 있다.
예를 들어, A와 A'화소(직사각 블록)의 경우 p(0,-1) ~ p(9,-1), p(-1,0) ~ p(-1,9), p(-1,-1)의 범위에, B와 B'화소(직사각 블록)의 경우 p(0,-1) ~ p(11,-1), p(-1,0) ~ p(-1,11), p(-1,-1)의 범위에, C 화소(정사각 블록)의 경우 p(0,-1) ~ p(15,-1), p(-1,0) ~ p(-1,15), p(-1,-1)의 범위에 참조 화소가 위치할 수 있다.
도 36은 HEVC의 화면내 예측 모드를 나타낸 예시도이다.
도 36을 참조하면, 35개의 예측 모드를 나타내고 있으며, 33개의 방향성 모드와 2개의 비방향성 모드(DC, Planar)로 분류할 수 있다. 이때, 방향성 모드는 기울기(예를 들어, dy/dx) 또는 각도 정보로 식별할 수 있다. 상기 예는 휘도 성분 또는 색차 성분에 대한 예측 모드 후보군을 의미할 수 있다. 또는, 색차 성분은 일부 예측 모드(예를 들어, DC, Planar, 수직, 수평, 대각선 모드 등)가 지원될 수 있다. 또한, 휘도 성분의 예측 모드가 결정되면 해당 모드를 색차 성분의 예측 모드로 포함하거나 해당 모드로부터 유도되는 모드를 예측 모드로 포함할 수 있다.
또한, 컬러 공간 간의 상관성을 이용하여 부/복호화가 완료된 다른 컬러 공간의 복원 블록을 현재 블록의 예측에 사용할 수 있고, 이를 지원하는 예측 모드를 포함할 수 있다. 예를 들어, 색차 성분의 경우 현재 블록과 대응되는 휘도 성분의 복원된 블록을 현재 블록의 예측 블록으로 생성할 수 있다. 또는, 일부 색차 성분(Cr)의 현재 블록과 대응되는 일부 색차 성분(Cb)의 복원된 블록을 예측 블록으로 생성할 수 있다. 이때, 다른 컬러 공간의 복원된 블록을 그대로 예측 블록으로 생성할 수 있다. 또는, 컬러 공간 간의 상관성을 고려하여 복원된 블록을 예측 블록으로 생성할 수 있다.
컬러 공간 간의 상관성 정보는 명시적으로 관련 정보가 생성될 수 있거나 또는 묵시적으로 각 컬러 공간의 참조 화소를 통해 확인할 수 있다. 상관성 정보에 기반하여 적어도 하나의 파라미터가 생성될 수 있으며, 다른 컬러 공간의 복원된 블록에 곱해지거나 더해지는 값으로 사용될 수 있다. 묵시적인 경우에는 현재 블록의 인접한 영역의 복원된 화소와 이에 대응되는 다른 컬러 공간의 복원된 화소로부터 상기 파라미터 정보를 유도할 수 있다.
상기 예를 통해 전술한 예측 모드의 경우 관련 정보(예를 들어, 지원 여부에 대한 정보, 파라미터 정보 등)가 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 포함될 수 있다.
부/복호화 설정에 따라 예측 모드 후보군을 적응적으로 결정할 수 있다. 예측의 정확도를 높이기 위한 목적으로 후보군의 수를 늘릴 수 있고, 예측 모드에 따른 비트량을 줄이기 위한 목적으로 후보군의 수를 줄일 수 있다.
예를 들어, A 후보군(67개. 65개 방향성 모드와 2개의 비방향성 모드), B 후보군(35개. 33개의 방향성 모드와 2개의 비방향성 모드), C 후보군(18개. 17개의 방향성 모드와 1개의 비방향성 모드) 등의 후보군 중 하나를 선택할 수 있다. 본 발명에서 특별한 언급이 없을 때, 기 설정된 하나의 예측 모드 후보군(A 후보군)으로 화면내 예측을 수행하는 경우를 가정하여 설명한다.
예측 블록 생성부에서 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 상기 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법(방향성 모드)에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법(비방향성 모드)에 사용될 수 있다.
예를 들어, 방향성 모드의 경우 수평과 일부 대각선 모드(Diagonal up right. 수평은 제외되고 대각선은 포함) 사이의 모드는 좌하+좌 블록, 수평 모드는 좌 블록, 수평과 수직 사이의 모드는 좌+좌상+상 블록, 수직 모드는 상 블록, 수직과 일부 대각선 모드(Diagonal down left. 수직은 제외되고 대각선은 포함) 사이의 모드는 상+우상 블록의 참조 화소를 사용할 수 있다. 또는, 비방향성 모드의 경우 좌, 상 블록 또는 좌하, 좌, 좌상, 상, 우상 블록의 참조 화소를 사용할 수 있다. 또는, 컬러 공간의 상관성을 이용하는 모드의 경우 다른 컬러 공간의 복원된 블록을 참조 화소로 사용할 수 있다.
화면내 예측 방법은 방향성을 갖는 예측과 비방향성을 갖는 예측으로 분류가 가능하며, 방향성을 갖는 예측의 경우 직선형 예측과 곡선형 예측으로 분류할 수 있다.
직선형 예측에서 예측 화소는 외삽을 통해 예측 방향 선상에 놓인 참조 화소를 사용하여 생성될 수 있고, 곡선형 예측에서 예측 화소는 외삽을 통해 예측 방향 선상에 놓인 참조 화소를 사용하되 블록의 방향성을 고려하여 화소 단위, 행 또는 열 단위의 부분적인 예측 방향의 변동(예를 들어, 방향성을 갖는 예측 모드 간격의 a 차이를 허용. a는 예측 모드를 순차적으로 인덱스를 할당했을 때의 차이를 의미하며 0이 아닌 1, -1, 2, -2 등의 정수. 즉, 상기 예측 모드의 인접 모드를 의미. 이때, a는 블록의 크기 및 형태, 예측 화소의 위치, 예측 모드 등에 따라 결정됨)을 허용하는 방식을 의미할 수 있다.
360도 영상의 경우 3차원 공간에서 2차원 공간으로의 변환되기 때문에 에지 방향이 직선형에서 곡선형으로 변경되는 경우가 발생할 수 있다. 일반적인 직선형 예측의 경우 곡선형 에지를 포함하는 영역에 대한 예측이 어렵기 때문에, 작은 블록 단위로의 분할이 요구될 수 있으며, 이는 부호화 성능을 저하시킬 수 있다. 이를 위해 방향성 모드에 곡선형 예측 모드를 포함하여 예측 모드 후보군을 구성할 수 있다.
곡선형 예측의 지원 여부를 포함하는 관련 정보(예를 들어, 곡선형 예측 모드 선택 정보, 부분적인 예측 방향 변동 정보 등)가 생성될 수 있으며, 이에 대한 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위에서 명시적으로 생성될 수 있거나 영상의 종류, 특성 등(예를 들어, 360도 영상 + 일부 포맷)에 따라 묵시적으로 정해질 수 있다. 또한, 곡선형 예측은 모든 예측 블록에 지원될 수 있거나 일부 예측 블록에 지원될 수 있으며, 이는 블록의 크기, 형태, 영상 타입, 예측 모드 등에 따라 곡선형 예측의 적용 여부가 결정될 수 있다.
예를 들어, 360도 영상 부/복호화의 화면내 예측에 방향성 모드는 직선형 예측 모드와 곡선형 예측 모드를 포함하여 예측 모드 후보군을 구성할 수 있다. 또는, 360도 영상 부/복호화의 화면내 예측에 방향성 모드 중 직선형 예측 모드는 고정적으로 포함하고, 곡선형 모드는 부/복호화 설정(예를 들어, 투영 포맷, 영상 내 블록 위치, 블록 크기에 따른 범위, 영상의 타입 정보 등)에 따라 적응적으로 포함하여 예측 모드 후보군을 구성할 수 있다. 본 발명에서는 방향성을 갖는 예측의 경우 직선형 방향의 예측을 중심으로 설명한다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡{예를 들어, 현재 블록과 복원 블록의 Distortion. SAD(Sum of Absolute Difference), SSD(Sum of Square Difference 등}과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보를 부호화할 수 있다. 즉, 전자의 경우는 예측 모드를 예측 없이 그대로 부호화하는 방법을, 후자의 경우는 예측 모드의 예측을 수행하여 모드 예측 정보와 그에 기반하여 획득되는 정보를 부호화하는 방법을 의미한다. 또한, 전자의 경우는 색차 성분, 후자의 경우 휘도 성분에 적용될 수 있는 예이며, 이에 한정되지 않고 그 외의 경우 또한 가능할 수 있다.
예측 모드를 예측하여 부호화하는 경우에 예측 모드의 예측값(또는 예측 정보)을 MPM(Most Probable Mode)으로 지칭할 수 있다. 이때, 기 설정된 예측 모드(예를 들어, DC, Planar, 수직, 수평, 대각선 모드 등) 또는 공간적으로 인접한 블록(예를 들어, 좌, 상, 좌상, 우상, 좌하 블록 등)의 예측 모드 등을 MPM으로 구성할 수 있다. 본 예에서 대각선 모드는 Diagonal up right, Diagonal down right, Diagonal down left를 의미하고, 도 36의 2번, 18번, 34번 모드에 대응되는 모드일 수 있다.
또한, MPM 후보군에 기 포함된 모드로부터 유도되는 모드를 MPM 후보군으로 구성할 수 있다. 예를 들어, MPM 후보군에 포함된 모드 중 방향성 모드의 경우, 모드 간격이 a의 차이를 갖는 모드(예를 들어, a는 1, -1, 2, -2 등과 같은 0이 아닌 정수. 도 36에서 10번 모드가 기 포함된 모드인 경우 9번, 11번, 8번, 12번 모드 등이 유도되는 모드에 해당)를 새롭게(또는 추가적으로) MPM 후보군에 포함할 수 있다.
상기 예는 MPM 후보군이 복수 개의 모드로 구성되는 경우에 해당할 수 있으며, MPM 후보군(또는 MPM 후보군 개수)은 부/복호화 설정(예를 들어, 예측 모드 후보군, 영상 타입, 블록 크기, 블록 형태 등)에 따라 정해지며 적어도 하나의 모드를 포함하여 구성될 수 있다. 본 예에서 MPM 후보군은 1 내지 5개의 모드로 구성될 수 있다.
예를 들어, 예측 모드 후보군(또는 전체 모드의 개수)에 따라 MPM 후보군이 결정되는 가정 하에, 예측 모드 후보군이 10개 이하인 경우 1개, 10개 초과 20개 이하인 경우 2개, 20개 초과 40개 이하인 경우 3개, 40개 초과인 경우 5개의 모드로 MPM 후보군을 구성할 수 있다.
MPM 후보군 구성을 위한 예측 모드의 우선 순위가 존재할 수 있다. 상기 우선 순위에 따라 MPM 후보군에 포함되는 예측 모드 순서가 정해질 수 있으며, 상기 우선 순위에 따라 MPM 후보군의 개수만큼 채워지면 MPM 후보군 구성을 완료할 수 있다. 이때, 공간적으로 인접한 블록의 예측 모드, 기 설정된 예측 모드, MPM 후보군에 먼저 포함된 예측 모드로부터 유도되는 모드 순서로 우선 순위가 정해질 수 있으나, 그 외의 변형 또한 가능하다.
MPM을 사용하여 현재 블록의 예측 모드 부호화를 수행하는 경우 예측 모드가 MPM과 일치하는지 여부에 대한 정보(예를 들어, most_probable_mode_flag)를 생성할 수 있다.
MPM과 일치하는 경우(예를 들어, most_probable_mode_flag = 1)에는 MPM의 구성에 따라 MPM 인덱스 정보(예를 들어, mpm_idx)를 추가로 생성할 수 있다. 예를 들어, MPM이 하나의 예측 모드로 구성되는 경우에는 추가적인 MPM 인덱스 정보는 생성하지 않으며, 복수의 예측 모드로 구성되는 경우에는 MPM 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있다.
MPM과 일치하지 않는 경우(예를 들어, most_probable_mode_flag = 0)에는 예측 모드 후보군에서 MPM 후보군을 제외한 나머지 예측 모드 후보군(또는 non-MPM 후보군)에서 현재 블록의 예측 모드에 대응하는 non-MPM 인덱스 정보(예를 들어, non_mpm_idx)를 생성할 수 있으며, 이는 non-MPM이 하나의 그룹으로 구성되는 경우에 해당하는 예일 수 있다.
non-MPM 후보군이 복수의 그룹으로 구성되는 경우에 현재 블록의 예측 모드가 어떤 그룹에 속하는지에 대한 정보를 생성할 수 있다. 예를 들어, non-MPM은 A와 B 그룹(A는 m개, B는 n개, non-MPM은 m+n개의 예측 모드로 구성되며 m보다 n이 크다고 가정. A의 모드는 방향성 모드로 균등한 간격을 갖고 B의 모드는 방향성 모드로 균등한 간격을 갖지 않는다고 가정)으로 구성되며 현재 블록의 예측 모드가 A 그룹의 예측 모드와 일치하는 경우(예를 들어, non_mpm_A_flag = 1)에는 A 그룹 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있으며, 일치하지 않는 경우(예를 들어, non_mpm_A_flag = 0)에는 나머지 예측 모드 후보군(또는 B 그룹 후보군)에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 생성할 수 있다. 상기 예와 같이 non-MPM은 적어도 하나의 예측 모드 후보군(또는 그룹)으로 구성이 될 수 있으며, 예측 모드 후보군에 따라 non-MPM 구성이 정해질 수 있다. 예를 들어, 예측 모드 후보군이 35개 이하일 경우에는 1개, 그 이외의 경우에는 2개 이상일 수 있다.
상기 예와 같이 non-MPM이 복수의 그룹으로 구성되는 경우는 예측 모드의 개수가 많고 예측 모드가 MPM으로 예측되지 않을 경우에 모드 비트량을 줄이고자 하는 목적으로 지원될 수 있다.
MPM을 사용하여 현재 블록의 예측 모드 부호화(또는 예측 모드 복호화)를 수행하는 경우 각 예측 모드 후보군(예를 들어, MPM 후보군, non-MPM 후보군 등)에 적용되는 이진화 테이블은 개별적으로 생성될 수 있으며, 각 후보군에 따라 적용되는 이진화 방법 또한 개별적으로 적용될 수 있다.
예측 모드 부호화부를 통해 생성되는 예측 관련 정보는 부호화부로 전송되어 비트스트림에 수록될 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 방법에서 화면내 예측은 다음과 같이 구성될 수 있다. 예측부의 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다. 또한, 부호화기와 중복되는 설명은 생략한다.
예측 모드 복호화부에서는 복호화부로부터 예측 모드를 수신하여 현재 블록의 예측 모드를 복원할 수 있다. 상기 예측 모드는 예측 모드 후보군에 대응하는 인덱스 정보 또는 예측 모드의 예측 관련 정보로부터 복원될 수 있다. 즉, 전자의 경우는 예측 모드를 예측 없이 그대로 복호화하는 방법을, 후자의 경우는 예측 모드를 예측을 수행하여 모드 예측 정보와 그에 기반하여 획득되는 정보를 복호화하는 방법을 의미한다.
MPM을 사용하여 현재 블록의 예측 모드 복호화를 수행하는 경우 현재 블록의 예측 모드가 MPM과 일치하는지 여부에 대한 정보를 확인할 수 있다.
MPM과 일치하는 경우에는 MPM의 구성에 따라 MPM 인덱스 정보를 추가로 확인할 수 있다. 예를 들어, MPM이 하나의 예측 모드로 구성되는 경우에는 추가적인 MPM 인덱스 정보는 확인하지 않으며, 복수의 예측 모드로 구성되는 경우에는 MPM 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 확인할 수 있다.
MPM과 일치하지 않는 경우에는 예측 모드 후보군에서 MPM 후보군을 제외한 나머지 예측 모드 후보군에서 현재 블록의 예측 모드에 대응하는 non-MPM 인덱스 정보를 확인할 수 있으며, 이는 non-MPM이 하나의 그룹으로 구성되는 경우에 해당하는 예일 수 있다.
non-MPM 후보군이 복수의 그룹으로 구성되는 경우에는 현재 블록의 예측 모드가 어떤 그룹에 속하는지에 대한 정보를 확인할 수 있다. 예를 들어, non-MPM은 A와 B 그룹으로 구성되며 현재 블록의 예측 모드가 A 그룹의 예측 모드와 일치하는 경우에는 A 그룹 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 확인할 수 있으며, 일치하지 않는 경우에는 A 그룹을 제외한 나머지 예측 모드 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 확인할 수 있다.
참조 화소 구성부는 부호화기의 참조 화소 구성부와 동일한 방법으로 참조 화소를 구성할 수 있으며, 이에 대한 상세한 설명은 생략한다.
예측 블록 생성부는 부호기의 예측 블록 생성부와 동일한 방법으로 예측 블록을 생성할 수 있으며, 이에 대한 상세한 설명은 생략한다. 본 과정을 통해 생성되는 예측 블록을 가산부로 송신할 수 있다.
이하에서, 본 발명의 일 실시예에 따른 화면내 예측에 대해 상세하게 설명한다. 후술하는 예는 부호화기를 중심으로 설명하며, 복호화기는 부호화기의 설명으로부터 유도될 수 있다.
도 37은 화면내 예측 모드 후보군의 다양한 경우를 설명하기 위한 예시도이다. 본 예에서는 방향성 모드를 중심으로 설명할 것이며, 예측 모드의 식별을 위해 각도 또는 인덱스 정보를 사용할 수 있다. 각도의 경우 일부 대각선 모드(Diagonal down right. 0도)를 기준으로 측정될 수 있고, 인덱스의 경우 일부 대각선 모드(Diagonal up right. 0번)를 시작으로 할당될 수 있다. 또한, 상기 예는 모드 간에 균등 간격(각도 기준)을 갖는 경우를 중심으로 설명하지만, 이에 한정되지 않고 다른 변형의 예 또한 가능할 수 있다.
37a 내지 37d를 참조하면, 각각 예측 모드 간에 π/4, π/8, π/16, π/32의 간격을 가질 수 있으며, 도시되지 않는 다른 예측 모드 후보군의 간격(π/64. 65개의 방향성 모드인 경우) 또한 지원될 수 있다. 37a와 같이 예측 모드 후보군이 적은 경우에는 적은 비트로 모드 정보를 표현할 수 있지만, 영상의 에지 등을 잘 반영하지 못하기 때문에 그에 따른 예측의 정확도가 낮을 수 있다. 반면, 37d와 같이 예측 모드 후보군이 많은 경우에는 상기 예와 반대의 경우로 예측의 정확도를 높일 수 있지만, 모드 정보를 표현하기 위해 많은 비트를 사용할 수 있다.
기 설정된 하나의 예측 모드 후보군을 지원하는 경우에는 영상의 지역적 특성을 잘 반영할 수 없기 때문에 부호화 성능의 저하를 가져올 수 있다. 예를 들어, 단조로운 영역의 경우(또는 영상의 에지 방향이 제한적인 경우)에는 많은 예측 모드 후보군으로 인한 모드 비트량이 증가할 수 있고, 복잡한 영역의 경우(또는 에지 방향이 많이 발생하는 경우)에는 적은 예측 모드 후보군으로 부정확한 예측 블록을 생성할 수 있다.
상기 예의 문제점을 해결하기 위해서는 적응적으로 예측 모드 후보군을 지원하는 것이 필요할 수 있다. 후술하는 예를 통해 적응적으로 예측 모드 후보군을 지원하는 다양한 경우를 설명한다. 본 예에서는 방향성 모드를 제외한 나머지 모드는 고정적인 경우(예를 들어, DC, Planar는 항상 포함)를 가정하여 설명하지만, 부호화 설정(예를 들어, 블록의 크기, 형태, 영상 타입 등)에 따라 비방향성 모드 또한 적응적으로 예측 모드 후보군에 포함 여부가 결정될 수 있다.
적응적으로 예측 모드 후보군을 지원하는지 여부에 대한 신호(예를 들어, adaptive_intra_precision_flag)를 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 포함할 수 있다. 적응적으로 예측 모드 후보군을 지원하는 신호가 확인되고 해당 신호가 활성화되는 경우(예를 들어, adaptive_intra_precision_flag = 1)에는 적응적인 예측 모드 후보군을 지원할 수 있고, 해당 신호가 비활성화되는 경우(예를 들어, adaptive_intra_precision_flag = 0)에는 고정적인 예측 모드 후보군을 지원할 수 있다.
상기 신호가 활성화되는 경우에는 부호화 설정에 따라 예측 모드 후보군 선택 정보(예를 들어, intra_precision_idx_flag. 또는, 예측 모드 정밀도 정보)는 묵시적으로 정해지거나 또는 명시적으로 선택 정보가 생성될 수 있다. 설명의 편의를 위해 후술하는 예에서는 예측 모드 후보군을 식별하기 위해 예측 모드 정밀도(예를 들어, 37a 내지 37d의 예측 모드 후보군을 M0 내지 M3 정밀도로 지칭. 숫자가 커질수록 정밀도가 증가한다고 표현)를 사용하여 설명한다.
명시적인 경우에 예측 모드 정밀도 정보는 픽쳐, 슬라이스, 타일, 블록 등의 단위로 포함될 수 있고, 묵시적인 경우에 예측 모드 정밀도 정보는 블록의 크기, 형태 또는 영상의 타입, 종류, 특성, 컬러 공간 등에 따라 정해질 수 있다.
예를 들어, 32×32 이상 블록에는 M0, 32×32 미만 ~ 16×16 이상 블록에는 M1, 16×16 미만 ~ 8×8 이상 블록에는 M2, 8×8 미만 블록에는 M3의 예측 모드 정밀도가 지원될 수 있다. 또는, 영상 타입이 I인 경우에 M3, P인 경우에 M2, B인 경우에 M1의 예측 모드 정밀도가 지원될 수 있다. 상기 예는 묵시적으로 예측 모드 정밀도가 정해지는 예일 수 있다.
또한, 명시적인 경우와 묵시적인 경우가 혼합되어 적응적인 예측 모드 정밀도를 지원할 수 있다.
예를 들어, 32×32 이상 블록에는 M3, 32×32 미만 ~ 16×16 이상 블록에는 M2의 예측 모드 정밀도가 지원되고, 16×16 미만 블록에는 예측 모드 정밀도에 대한 선택 정보가 생성될 수 있다. 또는, 영상 타입이 I인 경우에 M3, P 또는 B인 경우 예측 모드 정밀도에 대한 선택 정보가 생성될 수 있다.
상기 예는 적응적인 예측 모드 정밀도에 대한 일 예일 뿐, 상기 예에 한정되지 않고 다른 변형의 예 또한 가능할 수 있다.
정리하면, 부호화 설정에 따라 기 설정된 하나의 예측 모드 정밀도(또는 고정적인 예측 모드 정밀도)를 사용하거나 복수의 예측 모드 정밀도 후보군 중 하나(또는 적응적인 예측 모드 정밀도)를 선택할 수 있다.
도 38은 본 발명의 일 실시예에 따른 예측 모드 정밀도를 설명하기 위한 예시도이다. 도 38을 참조하면, 예측 모드 정밀도에 따라 지원되는 예측 모드와 예측 모드의 인덱스, 각도 정보를 확인할 수 있다.
본 예에서는 예측 모드 정밀도에 대한 후보군의 개수가 4개인 경우를 가정하여 설명하지만, 이에 한정되지 않고 다양한 조합의 경우가 가능할 수 있다. 또한, 예측 모드 정밀도에 따라 예측 모드 결정부, 예측 모드 부호화부 등의 설정이 변경되는 가정 하에 설명한다. 예를 들어, 예측 모드 정밀도가 M0와 M1인 경우에는 MPM 후보군은 1개, M2와 M3인 경우에는 MPM 후보군은 2개, M3 초과인 경우에는 MPM 후보군이 3개로 구성될 수 있다. 또한, 예측 모드가 MPM과 일치하는 경우에는 MPM 인덱스 정보를 가변 길이 이진화, 일치하지 않는 경우에는 non-MPM 인덱스 정보를 고정 길이 이진화를 사용하여 부호화한다고 가정한다. 본 예에서 MPM 후보군의 개수에 따라 MPM 후보군의 구성을 위한 우선 순위가 동일하게 적용될 수 있거나 또는 동일하지 않을 수 있으며, 부호화 설정에 따라 정해질 수 있다.
본 예에서 A 내지 C 블록은 35개의 모드(M3 정밀도. 방향성 모드 33개와 비방향성 모드 2개로 구성)가 지원되며 A 내지 C 블록의 예측 모드는 도 38에서 각각 21번, 22번, 24번 모드라 가정한다.
A의 경우 M3의 정밀도에서 지원되는 모드일 수 있고, 그 외의 정밀도(M0 ~ M2)에서 지원되지 않는 모드일 수 있다. M3의 정밀도에서 예측 모드로 인해 발생하는 비트는 2 ~ 3 비트 또는 6 비트일 수 있다. 전자의 경우 MPM과 일치하는 경우, 후자의 경우 MPM과 일치하지 않는 경우에 발생하는 비트량을 의미한다.
B의 경우 M2와 M3의 정밀도에서 지원되는 모드일 수 있고, 그 외의 정밀도(M0, M1)에서 지원되지 않는 모드일 수 있다. M2의 정밀도에서 예측 모드로 인해 발생하는 비트는 2 비트 또는 5 비트일 수 있다.
C의 경우 M0 내지 M3의 정밀도에서 지원되는 모드일 수 있다. M1의 정밀도에서 예측 모드로 인해 발생하는 비트는 1 비트 또는 3 비트일 수 있고, M0의 정밀도에서는 1 비트 또는 2 비트일 수 있다.
상기 예에서 C의 경우 예측 모드 정밀도에 따라 최소 1 ~ 2 비트가 발생할 수 있고, 최대 2 ~ 6 비트가 발생할 수 있다. 즉, 적응적인 예측 모드 정밀도가 적용되는 경우에는 더 적은 모드 비트를 사용하여 부호화할 수 있다.
예를 들어, 예측 모드 정밀도의 후보군은 M0 내지 M3이며 예측 모드 정밀도 선택 정보는 각각 00, 01, 10, 11의 이진 비트로 구성되는 경우, 적응적인 예측 모드 정밀도 정보는 2 비트가 발생할 수 있다.
또는, 예측 모드 정밀도 후보군은 M0와 M3이며 예측 모드 정밀도 선택 정보는 각각 0, 1의 이진 비트로 구성되는 경우, 적응적인 예측 모드 정밀도 정보는 1 비트가 발생할 수 있다.
예측 모드 정밀도 후보군의 구성은 부호화 설정에 따라 정해질 수 있고 적어도 하나의 구성을 가질 수 있다. 즉, 영상에 하나의 후보군 구성(예를 들어, M0 내지 M3)를 가질 수 있거나 또는 복수의 후보군 구성(예를 들어, M0 내지 M3, M0 내지 M2, M3과 M3 등)을 가질 수 있다.
37a 내지 37d에서 각 모드에 할당된 인덱스는 실제 모드와 동일할 수 있거나 또는 본 예에서 한정되는 예일 수 있다. 예를 들어, HEVC의 경우 0번과 1번은 Planar와 DC 모드, 2번 내지 34번은 방향성 모드를 의미하며, AVC의 경우 2번은 DC 모드이고 나머지는 방향성 모드로 순차적이지 않은 인덱스가 할당된다. 적응적인 예측 모드 정밀도를 적용하기 위한 목적으로 실제 모드(또는 인덱스)에서 본 예와 같이 임시 모드(또는 인덱스)를 할당할 수 있고, 적응적인 예측 모드 정밀도와 관련된 일련의 과정(예를 들어, 예측 모드 결정 과정, 예측 모드 부호화 과정 등) 후에 다시 원래의 모드로 복구할 수 있다.
예를 들어, HEVC의 경우 비방향성 모드는 제외하고 방향성 모드의 경우 2번 내지 34번 모드는 각각 0번 내지 32번의 임시 인덱스가 할당되고, 적응적인 예측 모드 정밀도에 관련된 일련의 과정 후 2번 내지 34번 모드로 복구될 수 있다.
적응적으로 예측 모드 후보군이 지원되는 경우 예측 모드 부호화 설정 또한 적응적으로 결정될 수 있다.
예를 들어, 예측 모드 결정부를 통해 수평 모드가 최적의 모드로 결정된 경우, 예측 모드 정밀도가 M0 내지 M3일 때 각각 1번, 2번, 4번, 8번 모드 인덱스(도 37 내지 도 40)를 가질 수 있다.
예측 모드를 그대로 부호화하는 경우, 예측 모드 후보군에서 현재 블록의 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있다. 또는, 예측 모드의 예측을 수행하여 관련 정보(MPM 관련 정보)를 부호화하는 경우, MPM 후보군을 구성하여 MPM과 일치하는지 여부에 대한 정보와 그에 따른 추가적인 정보(예를 들어, MPM 인덱스, non-MPM 인덱스 등)을 부호화할 수 있다.
상기 MPM 후보군 중 공간적으로 인접한 블록의 예측 모드를 후보군으로 구성할 수 있다. 이때, 인접한 블록이 현재 블록과 동일한 예측 모드 정밀도를 가진 경우에는 해당 블록의 예측 모드를 MPM 후보군으로 구성할 수 있으나, 현재 블록과 동일하지 않는 예측 모드 정밀도를 가진 경우에는 해당 블록의 모드를 MPM 후보군으로 구성하는데 문제점(예를 들어, M0 내지 M3에서 동일 모드에 1 ~ 8번과 같은 다른 인덱스가 할당되는 경우)이 발생할 수 있다.
상기 문제점을 해결하기 위한 목적으로 예측 모드 부호화 과정에서 예측 모드 정밀도 변경 과정이 수행될 수 있다. 상세하게는, MPM 후보군 구성을 위해 현재 블록과 다른 예측 모드 정밀도를 가진 블록의 경우 해당 블록의 예측 모드를 현재 블록의 예측 모드 정밀도에 맞춰 변경하는 과정을 수행할 수 있다.
도 39는 본 발명의 일 실시예에 따른 예측 모드의 정밀도 변경에 대한 예시도이다.
도 39를 참조하면, 현재 블록과 인접한 블록의 예측 모드와 정밀도 정보를 나타내고 있으며, 왼쪽에서 오른쪽으로 예측 모드 정밀도 변경 과정이 수행되는 예를 나타낸다. 본 예에서는 좌, 상, 좌상, 우상, 좌하 블록의 예측 모드가 MPM 후보군으로 포함된다고 가정한다.
다음은 본 발명의 일 실시예에 따른 예측 모드의 정밀도 변경에 대한 순서를 설명한다.
우선 MPM 후보군의 예측 모드(x)가 획득되는 분류 기준을 확인한다(A).
상기 분류 기준 확인 결과(A) 해당 모드(x)가 인접한 블록에서 획득된 경우, 해당 모드(x)에 속한 블록의 예측 모드 정밀도가 현재 블록의 예측 모드 정밀도와 동일한지 판단한다(B). 또는, 상기 분류 기준 확인 결과(A)가 기 설정된 모드에서 획득된 경우, 해당 모드(x)의 MPM 후보군 구성을 완료한다.
상기 판단 결과가 참(B-Yes)인 경우, 해당 모드(x)의 MPM 후보군 구성을 완료한다. 또는, 상기 판단 결과가 거짓(B-No)인 경우, 해당 모드(x)를 현재 블록의 예측 모드 정밀도에 맞춰 변경하는 과정을 수행한 후 MPM 후보군 구성은 완료한다.
상기 예의 예측 모드 정밀도 변경 과정은 다음의 수식으로 도출될 수 있다. 이때, X와 Y는 변경 전과 변경 후의 예측 모드 정밀도를 의미하고, p_mode와 n_mode는 변경 전과 변경 후의 예측 모드를 의미한다.
예를 들어, X가 Y보다 작을 경우(즉, 정밀도 증가) n_mode = p_mode << (Y-X)에 따른 수식을 통해 변경 후 예측 모드를 획득할 수 있다. 또는, X가 Y보다 큰 경우(즉, 정밀도 감소) n_mode = p_mode >> (X-Y)에 따른 수식을 통해 변경 후 예측 모드를 획득할 수 있다. 상기 예는 예측 모드 정밀도 변경 과정의 일 예일 뿐, 상기 예에 한정되지 않으며 다른 수식으로의 변경 또한 가능하다.
도 39를 참조하면, 상 블록의 예측 모드 정밀도는 현재 블록의 예측 모드 정밀도와 동일하고, 좌, 좌상, 좌하 블록의 예측 모드 정밀도는 현재 블록의 예측 모드 정밀도와 동일하지 않다. 이때, 좌, 좌상, 좌하 블록의 예측 모드는 현재 블록의 예측 모드 정밀도에 맞춰 변경될 수 있다. 도 38과 도 39를 참조하면, 좌, 좌상, 좌하 블록의 예측 모드는 현재 블록의 예측 모드 정밀도(M1)에 맞춰 2번, 7번, 3번 모드로 변경될 수 있으며, 이를 MPM 후보군으로 포함할 수 있다.
우상 블록의 예측 모드는 비방향성 모드인 DC이며, 이는 상기 예와 다른 예측 모드 정밀도 변경 과정을 수행할 수 있다. 예를 들어, 변경되는 예측 모드 정밀도에 따라 결정되는 예측 모드 후보군에서 DC 모드에 해당하는 인덱스로 변경할 수 있다. 이때, DC 모드가 각 예측 모드 후보군(예를 들어, 9개, 17개, 35개 등)에서 가장 낮은 인덱스(0번)로 할당되는 경우에는 예측 모드 정밀도에 관계없이 고정될 수 있고, 가장 높은 인덱스(8번, 16번, 34번)로 할당되는 경우에는 예측 모드 정밀도에 따라 변경될 수 있다. 즉, 비방향성 모드의 경우 전술한 예측 모드 정밀도 변경 과정(상기 예에서 수식을 통해 획득하는 과정)과 다른 변경 과정을 수행할 수 있다.
정리하면, 현재 블록과 동일한 예측 모드 정밀도를 가진 경우에는 어떤 동작도 수행하지 않고, 현재 블록과 다른 예측 모드 정밀도를 가진 경우에는 예측 모드 정밀도 변경 과정을 수행할 수 있다.
도 40은 본 발명의 일 실시예에 따른 영상 부호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다. 상세하게는, 화면내 예측 모드 부호화 과정을 위한 구성으로, 화면내 예측 설정 확인부, 예측 모드 후보군 설정부, MPM 후보군 도출부, MPM 후보군 재구성부, 예측 모드 결정부, 예측 모드 부호화부의 전부 또는 일부를 포함하여 구성할 수 있다.
화면내 예측 설정 확인부는 현재 블록의 화면내 예측 설정을 확인할 수 있다. 예를 들어, 현재 블록의 예측 모드 정밀도 정보를 확인할 수 있다.
예측 모드 후보군 설정부는 현재 블록의 예측 블록 생성을 위한 예측 모드 후보군을 구성할 수 있다. 예를 들어, 적응적인 예측 모드 정밀도를 지원하는 경우 예측 모드 정밀도에 따라 예측 모드 후보군을 구성할 수 있고, 적응적인 예측 모드 정밀도를 지원하지 않는 경우 기 설정된 하나의 예측 모드 후보군을 사용할 수 있다.
MPM 후보군 도출부는 현재 블록의 예측 모드의 예측값으로 사용되는 예측 모드를 도출할 수 있다. 예를 들어, 기 설정된 예측 모드, 인접한 블록의 예측 모드, MPM 후보군에 기 포함된 예측 모드 등으로 MPM 후보를 도출할 수 있다.
MPM 후보군 재구성부는 MPM 후보군에 포함된 모드를 재구성할 수 있다. 예를 들어, 적응적인 예측 모드 정밀도를 지원하는 경우에 MPM 후보군의 모드가 현재 블록의 예측 모드 정밀도와 다르다면 현재 블록의 예측 모드 정밀도에 따라 변경(또는 재구성)할 수 있고, 적응적인 예측 모드 정밀도를 지원하지 않는 경우에 MPM 후보군 구성을 마무리할 수 있다.
예측 모드 결정부는 현재 블록의 예측 모드를 결정할 수 있다. 이때, 예측 모드 결정 과정에 평가되는 예측 모드의 후보군은 상기 예측 모드 정밀도에 따라 정해질 수 있다.
예측 모드 부호화부는 현재 블록의 예측 모드를 부호화할 수 있다. 예를 들어, 예측 모드 결정부를 통해 획득되는 현재 블록의 예측 모드와 재구성된 MPM 후보군을 사용하여 예측 모드를 부호화할 수 있다. 본 예는 예측 모드의 예측값을 사용하여 예측 모드 정보를 부호화하는 경우에 해당하는 예일 수 있다.
상기 과정을 통해 생성되는 예측 모드 정보는 비트스트림에 수록되어 복호화기에 전송할 수 있다.
도 41은 본 발명의 일 실시예에 따른 영상 복호화 장치의 화면내 예측 구성을 나타낸 블록 구성도이다. 상세하게는, 화면내 예측 모드 복호화 과정을 위한 구성으로, 화면내 예측 설정 확인부, 예측 모드 후보군 설정부, MPM 후보군 도출부, MPM 후보군 재구성부, 예측 모드 복호화부의 전부 또는 일부를 포함하여 구성할 수 있다. 복호화기의 동작은 부호화기의 설명에서 유도할 수 있으므로 상세한 설명은 생략한다.
360도 영상의 경우 2차원 공간으로의 변환 과정에서 영상 경계가 생성될 수 있으며, 이는 3차원 공간에서는 존재하지 않는 영상의 특성일 수 있다. 360도 영상 특성을 고려하여 화면내 예측을 수행함으로써 부호화 성능을 향상시킬 수 있다.
본 예는 전술한 크기 조정 과정 중 예측 단계 또는 예측 수행 전에 크기 조정 과정이 수행되는 경우의 일 예일 수 있다. 이때, 크기 조정되는 영역은 화면내 예측을 위해 임시로 사용되는 영역이며, 실제적인 크기 조정이 수행되는 것이 아닌 점을 고려하여 이해할 수 있다.
일부 크기 조정 설정(예를 들어, 확장 동작, 오프셋을 통한 크기 조정, 크기 조정 방향 등)은 기 설정된 조건에 따를 수 있으며, 후술하는 예를 통해 데이터 처리 방법과 크기 조정되는 영역의 모드 정보 등을 중심으로 설명할 것이다. 또한, 360도 영상인 경우를 중심으로 설명하며 중복되는 설명은 생략하지만, 전술한 다양한 실시예와 설명을 통해 이해될 수 있고 전술한 요소들에 포함 또는 결합되어 구성될 수 있다.
본 발명의 일 실시예에 따른 화면내 예측에서 현재 블록을 위한 참조 영역은 제 1 참조 영역(예를 들어, 기존의 사용 가능한 영역), 제 2 참조 영역(예를 들어, 사용 불가한 영역), 제 3 참조 영역(예를 들어, 360도 영상의 특성을 고려하여 영상 내 상관성이 존재하는 영역으로부터 획득되는 영역)이 혼합되어 구성될 수 있다. 이때, 제 3 참조 영역은 사용 가능한 영역일 수 있거나 사용 불가한 영역일 수 있다. 참조 영역(또는 블록)은 현재 블록의 화면내 예측(예를 들어, 참조 화소 구성부, 예측 블록 생성부, 예측 모드 부호화부 등)에 사용되는 참조 화소, 예측 모드 등을 포함할 수 있다.
도 42는 본 발명의 일 실시예에 따른 360도 영상의 화면내 예측에 대한 예시도이다. 상세하게는, CMP 투영 포맷에서의 화면내 예측을 설명할 것이며, 이에 한정되지 않고 일반적인 360도 영상(또는 다른 투영 포맷)에서의 적용이 가능할 수 있다.
42a에서 a 내지 h는 a' 내지 h'에 대응되며, a 내지 h의 부호화가 완료된 데이터를 a' 내지 h'로 획득하는 경우를 나타낸다. 42b에서 a 내지 f는 화면내 예측이 수행되는 블록의 위치를 나타낸다. 42b에서 참조 블록 위치의 숫자는 1 내지 3 중 하나일 수 있고, 이는 제 1 참조 영역 내지 제 3 참조 영역을 의미한다. 또한, 42b에서, a 내지 f 블록 주변에 위치한 블록은 좌상, 상, 우상, 좌, 좌하에 위치한 순서대로, 각각 a0 내지 a4, b0 내지 b4, c0 내지 c4, d0 내지 d4, e0 내지 e4, f0 내지 f4로 지칭할 수 있다.
본 예에서 부호화는 최대 부호화 단위(M×M)로 진행되고, 참조 블록은 좌상, 상, 우상, 좌, 좌하 블록(나열된 블록 순서로 0부터 3까지의 인덱스 할당)이며, 예측 블록과 참조 블록의 크기 및 형태가 동일한 경우(본 예에서 M/2×M/2)를 가정하여 설명한다. 또한, 크기 조정되는 영역의 크기(또는 크기 조정값)은 예측 블록의 크기(예를 들어, M/2×M/2)라고 가정하지만, 이에 한정되지 않고 다른 블록의 종류 및 크기 또한 가능할 수 있다.
후술하는 예의 설명에서 전자의 경우는 일반적인 화면내 예측을, 후자의 경우는 360도 영상 특성을 고려한 화면내 예측(또는 360도 영상 화면내 예측)을 의미하며, 전자와 후자의 구분없이 하나의 화면내 예측 설정을 설명한 경우는 일반적인 화면내 예측과 360도 영상 화면내 예측이 동일한 것을 의미한다.
42b의 a는 a3, a4의 사용이 가능하고, a0 ~ a2의 사용이 불가하다. 또는, a0 ~ a4의 사용이 불가하다. a3과 a4의 경우 무의미한 영역에 위치하기 때문에 사용 불가로 상태를 변경할 수 있다(제 1참조 영역 -> 제 2 참조 영역).
42b의 b는 b1, b2의 사용이 가능하고, b0, b3, b4의 사용이 불가하다. b1과 b2의 경우 무의미한 영역에 위치하지만 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득될 수 있다(제 1 참조 영역 -> 제 3 참조 영역).
42b의 c는 c1, c2의 사용이 가능하고, c0, c3, c4의 사용이 불가하다. 또는, c0 ~ c2의 사용이 가능하고 c3와 c4의 사용이 불가하다. c0의 경우 영상의 바깥에 위치하지만 부호화가 완료된 상관성이 높은 영역으로부터 획득될 수 있다(제 2 참조 영역 -> 제 3 참조 영역).
42b의 e는 e0, e1, e3, e4의 사용이 가능하고, e2의 사용이 불가하다. 또는, e0 ~ e4의 사용이 가능하다. e2의 경우 영상 경계 바깥에 위치하지만 부호화가 완료된 상관성이 높은 영역으로부터 획득될 수 있다(제 2 참조 영역 -> 제 3 참조 영역).
42b의 f는 f0, f1, f3의 사용이 가능하고, f2와 f4의 사용이 불가하다. 또는, f0 ~ f4의 사용이 가능하다. f2의 경우 아직 부호화가 진행되지 않았지만 영상 내 부호화가 완료된 영역으로부터 획득될 수 있고, f4의 경우 영상 경계 바깥에 위치하지만 부호화가 완료된 상관성 있는 영역으로부터 획득될 수 있다(제 2 참조 영역 -> 제 3 참조 영역).
화면내 예측을 위한 참조 화소를 상기 참조 영역에서 획득하는 경우 제 1 참조 영역의 참조 화소는 참조 화소 메모리에 포함할 수 있고, 제 2 참조 영역의 참조 화소는 사용 불가한 영역에 위치하므로 임의의 화소값 또는 부호화가 완료된 사용 가능한 블록으로부터 화소값을 생성하여 참조 화소 메모리에 포함할 수 있다. 제 3 참조 영역의 참조 화소는 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득하여 참조 화소 메모리에 포함할 수 있다.
정리하면, 현재 블록의 참조 화소 메모리는 참조 화소 범위에 맞춰 생성이 되며, 참조 화소 범위에 속하는 블록이 사용 가능하면 해당 블록의 참조 화소를 그대로 메모리에 포함하고, 사용 불가하면 해당 블록의 참조 화소를 생성 또는 획득하여 메모리에 포함한다.
화면내 예측을 위한 MPM 후보군에 포함되는 예측 모드를 상기 참조 영역에서 획득하는 경우 제 1 참조 영역의 예측 모드는 MPM 후보군에 포함할 수 있고, 제 2 참조 영역의 예측 모드는 MPM 후보군에 포함할 수 없다. 제 3 참조 영역의 예측 모드는 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득하여 MPM 후보군에 포함할 수 있다.
정리하면, 현재 블록의 MPM 후보군은 기 설정된 위치의 블록의 예측 모드를 포함할 수 있으며, 해당 위치의 블록이 사용 가능하면 해당 블록의 예측 모드를 MPM 후보군에 포함하고, 사용 불가하면 MPM 후보군에 포함할 수 없다.
상기 예에서 영상 내 부호화가 완료된 상관성이 높은 영역으로부터 획득하는 경우 해당 영역의 데이터(예를 들어, 화소값, 예측 모드 정보 등)를 그대로 사용할 수 있거나 또는 현재 블록이 속한 영상 특성(예를 들어, 표면 간의 좌표계 특성 등)을 고려하여 사용할 수 있다.
예를 들어, 현재 블록이 속한 표면의 좌표계 특성과 상관성이 높은 영역이 속한 표면의 좌표계 특성을 고려하여 화소값 변환 과정 또는 예측 모드 변환 과정을 수행하여 획득된 해당 영역의 데이터를 사용할 수 있다.
즉, 투영 포맷에 따라 3차원 공간 상에서 각 표면은 다른 좌표계(예를 들어, 2차원 평면)에 속하기 때문에, 이를 현재 표면의 좌표계 특성에 맞춰 획득되는 다른 표면 데이터의 변환 과정을 수행한다는 것을 의미한다.
상기 예와 비슷한 경우로 참조 영역이 사용 가능하며 현재 블록과 상관성이 존재하지만 표면 간의 특성으로 인한 왜곡이 포함된 경우, 해당 영역의 데이터를 재구성(또는 변환)할 수 있다.
도 42의 d는 d0 ~ d4의 사용이 가능하고, d1과 d2는 현재 블록과 동일한 표면(도 42의 F2)에 위치하고 d0, d3, d4는 다른 표면(도 42의 F3)에 위치한다. d0, d3, d4의 경우 표면 간의 특성에 따라 현재 블록이 속한 좌표계 특성을 고려하여 참조 데이터를 획득할 수 있다. 즉, 참조 화소 변환 과정, 예측 모드 변환 과정을 수행하여 획득된 영상의 데이터를 사용할 수 있다. 이는 부호화 설정에 따라 결정될 수 있으며, 묵시적으로 정해지거나 또는 명시적으로 관련 정보가 생성될 수 있으며, 이에 대한 설명은 영상 크기 조정 과정에서 유도될 수 있다.
본 발명의 일 실시예에 따른 360도 영상의 복호화 방법은, 360도 영상이 부호화된 비트스트림을 수신하는 단계, 수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계, 상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계 및 상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함할 수 있다.
여기서 구문 정보는, 상기 360도 영상에 대한 투영 포맷 정보를 포함할 수 있다.
여기서 상기 투영 포맷 정보는, 상기 360도 영상을 2차원 평면으로 투영시킨 ERP(Equi-Rectangular Projection) 포맷, 상기 360도 영상을 정육면체로 투영시킨 CMP(CubeMap Projection) 포맷, 상기 360도 영상을 8면체로 투영시킨 OHP(OctaHedron Projection) 포맷, 상기 360도 영상을 다면체로 투영시킨 ISP(IcoSahedral Projection) 포맷 중 적어도 하나를 지시하는 정보일 수 있다.
여기서 상기 재구성하는 단계는, 상기 구문 정보를 참조하여, 지역별 포장(regional packing)에 따른 배치 정보를 획득하는 단계 및 상기 배치 정보에 따라, 상기 복호화된 영상의 각 블록을 재배치하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 영상 확장을 수행하는 단계는, 상기 참조 영상의 분할 단위를 기초로 영상 확장하는 수행하는 단계를 포함할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위의 경계 화소를 이용하여, 상기 분할 단위마다 개별적으로 확장된 영역을 생성할 수 있다.
여기서 상기 확장된 영역은, 확장할 분할 단위와 공간적으로 인접한 분할 단위의 경계 화소 또는 확장할 분할 단위와 영상의 연속성이 있는 분할 단위의 경계 화소를 이용하여 생성될 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 두 개 이상의 분할 단위가 결합된 영역의 경계 화소를 이용하여, 상기 결합된 영역에 대하여 확장된 영상을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 분할 단위 중에서 공간적으로 인접한 분할 단위들의 인접 화소 정보를 모두 이용하여, 상기 인접한 분할 단위들 사이에 확장된 영역을 생성할 수 있다.
여기서 상기 분할 단위를 기초로 영상 확장을 수행하는 단계는, 상기 공간적으로 인접한 분할 단위들 각각의 인접 화소들의 평균값을 이용하여 상기 확장된 영역을 생성할 수 있다.
여기서 예측 영상을 생성하는 단계는, 상기 비트스트림을 복원하여 획득한 참조 영상(reference picture)에 대하여 영상 확장을 수행하는 단계 및 영상 확장이 수행된 참조 영상을 참조하여, 화면 내 예측에 따른 예측 영상을 생성하는 단계를 포함할 수 있다.
여기서 상기 화면 내 예측에 따른 예측 영상을 생성하는 단계는, 상기 참조 영상에서, 복원할 현재 블록과 인접한 위치에 있는 참조 블록의 참조 가능성을 확인하는 단계, 참조 가능성에 따라 결정된 참조 화소를 참조하여 상기 현재 블록에 대한 화면 내 예측을 수행하여 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 현재 블록과 인접한 위치는, 상기 현재 블록의 좌상, 상, 우상, 좌측 위치를 포함할 수 있다.
여기서 상기 참조 가능성을 확인하는 단계 이후에, 360도 영상의 데이터 연속성을 기초로, 상기 현재 블록과 인접하지 않은 위치에 속하고, 상기 현재 블록과 영상 데이터의 상관성이 높으며, 부/복호화가 완료된 제1 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계를 포함할 수 있다.
여기서 상기 부/복호화가 완료된 영역이 상기 참조 영상 내에 존재하는지 확인하는 단계 이후에, 상기 제1 영역의 화소를 참조 화소로서 참조하여, 상기 현재 블록에 대한 화면 내 예측을 수행하는 단계를 포함할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계, 확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계 및 상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함할 수 있다.
여기서 상기 MPM 모드 정보는, 상기 현재 블록과 인접한 블록들 중 적어도 하나의 블록에 대한 화면 내 예측 모드를 지시할 수 있다.
여기서 상기 예측 영상을 생성하는 단계는, 상기 MPM 모드 정보를 재구성한 정보를 참조하여, 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계를 더 포함할 수 있다.
여기서 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계는, 상기 인접한 블록에 속한 참조 화소를 구성하는 단계 및 상기 참조 화소를 이용하여 화면 내 예측을 수행함으로써 상기 현재 블록에 대한 예측 블록을 생성하는 단계를 포함할 수 있다.
여기서 상기 참조 화소를 구성하는 단계는, 상기 현재 블록과 인접한 블록이 사용 불가능한 경우, 상기 현재 블록과 영상 상관성을 가진 다른 블록의 경계 화소를 이용하여, 사용 불가능한 블록의 참조 화소를 구성할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (5)

  1. 360도 영상의 복호화 방법에서,
    360도 영상이 부호화된 비트스트림을 수신하는 단계;
    수신된 비트스트림에서 획득한 구문 정보를 참조하여, 예측 영상을 생성하는 단계;
    상기 생성된 예측 영상을 상기 비트스트림을 역양자화 및 역변환하여 획득한 잔차 영상과 결합하여 복호화된 영상을 획득하는 단계; 및
    상기 복호화된 영상을 투영 포맷에 따른 360도 영상으로 재구성하는 단계를 포함하고,
    상기 예측 영상을 생성하는 단계는,
    상기 구문 정보에서, 복호화할 현재 블록에 대한 예측 모드 정밀도를 확인하는 단계;
    확인한 예측 모드 정밀도와 상기 구문 정보에서 획득한 MPM (Most Probable Mode) 모드 정보가 상응하는지 판단하는 단계; 및
    상응하지 않는 경우, 상기 MPM 모드 정보를 상기 현재 블록에 대한 예측 모드 정밀도에 따라 재구성하는 단계를 포함하는, 360도 영상의 복호화 방법.
  2. 청구항 1에서,
    상기 MPM 모드 정보는,
    상기 현재 블록과 인접한 블록들 중 적어도 하나의 블록에 대한 화면 내 예측 모드를 지시하는, 360도 영상의 복호화 방법.
  3. 청구항 2에서,
    상기 예측 영상을 생성하는 단계는,
    상기 MPM 모드 정보를 재구성한 정보를 참조하여, 상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계를 더 포함하는, 360도 영상의 복호화 방법.
  4. 청구항 3에서,
    상기 현재 블록과 인접한 블록의 화면 내 예측 모드에 따른 화면 내 예측을 수행하는 단계는,
    상기 인접한 블록에 속한 참조 화소를 구성하는 단계; 및
    상기 참조 화소를 이용하여 화면 내 예측을 수행함으로써 상기 현재 블록에 대한 예측 블록을 생성하는 단계를 포함하는, 360도 영상의 복호화 방법.
  5. 청구항 4에서,
    상기 참조 화소를 구성하는 단계는,
    상기 현재 블록과 인접한 블록이 사용 불가능한 경우, 상기 현재 블록과 영상 상관성을 가진 다른 블록의 경계 화소를 이용하여, 사용 불가능한 블록의 참조 화소를 구성하는, 360도 영상의 복호화 방법.
PCT/KR2017/011138 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치 WO2018066980A1 (ko)

Priority Applications (24)

Application Number Priority Date Filing Date Title
KR1020237015505A KR20230070062A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
KR1020237015644A KR20230070327A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
KR1020207014806A KR102531386B1 (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
KR1020197011757A KR20190052128A (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치
US16/372,287 US20190253624A1 (en) 2017-07-17 2019-04-01 Image data encoding/decoding method and apparatus
US17/027,154 US11483476B2 (en) 2016-10-04 2020-09-21 Image data encoding/decoding method and apparatus
US17/579,225 US11696035B2 (en) 2016-10-04 2022-01-19 Image data encoding/decoding method and apparatus
US18/298,728 US11838640B2 (en) 2016-10-04 2023-04-11 Image data encoding/decoding method and apparatus
US18/298,718 US11792523B2 (en) 2016-10-04 2023-04-11 Image data encoding/decoding method and apparatus
US18/298,712 US11792522B2 (en) 2016-10-04 2023-04-11 Image data encoding/decoding method and apparatus
US18/133,830 US11838639B2 (en) 2016-10-04 2023-04-12 Image data encoding/decoding method and apparatus
US18/299,195 US11778332B2 (en) 2016-10-04 2023-04-12 Image data encoding/decoding method and apparatus
US18/133,847 US11778331B2 (en) 2016-10-04 2023-04-12 Image data encoding/decoding method and apparatus
US18/299,809 US20230388644A1 (en) 2016-10-04 2023-04-13 Image data encoding/decoding method and apparatus
US18/299,840 US11812155B2 (en) 2016-10-04 2023-04-13 Image data encoding/decoding method and apparatus
US18/299,836 US11792524B2 (en) 2016-10-04 2023-04-13 Image data encoding/decoding method and apparatus
US18/314,965 US11902668B2 (en) 2016-10-04 2023-05-10 Image data encoding/decoding method and apparatus
US18/498,575 US11956549B2 (en) 2016-10-04 2023-10-31 Image data encoding/decoding method and apparatus
US18/499,152 US20240064410A1 (en) 2016-10-04 2023-10-31 Image data encoding/decoding method and apparatus
US18/498,561 US11956548B2 (en) 2016-10-04 2023-10-31 Image data encoding/decoding method and apparatus
US18/498,533 US11949994B2 (en) 2016-10-04 2023-10-31 Image data encoding/decoding method and apparatus
US18/525,795 US20240107170A1 (en) 2016-10-04 2023-11-30 Image data encoding/decoding method and apparatus
US18/525,793 US20240098373A1 (en) 2016-10-04 2023-11-30 Image data encoding/decoding method and apparatus
US18/524,452 US20240098372A1 (en) 2016-10-04 2023-11-30 Image data encoding/decoding method and apparatus

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2016-0127887 2016-10-04
KR20160127887 2016-10-04
KR20160129386 2016-10-06
KR10-2016-0129386 2016-10-06
KR10-2017-0090616 2017-07-17
KR20170090616 2017-07-17

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/372,287 Continuation US20190253624A1 (en) 2016-10-04 2019-04-01 Image data encoding/decoding method and apparatus

Publications (1)

Publication Number Publication Date
WO2018066980A1 true WO2018066980A1 (ko) 2018-04-12

Family

ID=61831101

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2017/011138 WO2018066980A1 (ko) 2016-10-04 2017-10-10 영상 데이터 부호화/복호화 방법 및 장치

Country Status (3)

Country Link
US (18) US11696035B2 (ko)
KR (3) KR102531386B1 (ko)
WO (1) WO2018066980A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021025416A1 (ko) * 2019-08-04 2021-02-11 엘지전자 주식회사 신택스 결합을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR102255598B1 (ko) * 2020-07-08 2021-05-25 국민대학교산학협력단 비대면 온라인 평가 시스템 및 운용 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060050350A (ko) * 2004-08-13 2006-05-19 경희대학교 산학협력단 파노라마 영상의 움직임 추정 및 보상
KR20070103347A (ko) * 2007-10-03 2007-10-23 이제성 360도 파노라마 카메라의 영상컨텐츠를 이용한 고해상도광시야각 대형 디스플레이 방법
KR20140008503A (ko) * 2012-07-10 2014-01-21 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20150068299A (ko) * 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템
KR20160032909A (ko) * 2014-09-17 2016-03-25 한화테크윈 주식회사 멀티 영상 전처리 장치 및 방법

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448297A (en) 1993-06-16 1995-09-05 Intel Corporation Method and system for encoding images using skip blocks
US5440346A (en) 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images
EP0818930B1 (en) 1996-07-08 2002-05-22 Hyundai Curitel, Inc. Video coding method
US6618117B2 (en) * 1997-07-12 2003-09-09 Silverbrook Research Pty Ltd Image sensing apparatus including a microcontroller
US7605940B2 (en) * 1999-09-17 2009-10-20 Silverbrook Research Pty Ltd Sensing device for coded data
DE60141961D1 (de) * 2001-09-10 2010-06-10 Texas Instruments Inc Verfahren und Vorrichtung zur Bewegungsvektorenabschätzung
GB0224449D0 (en) * 2002-10-21 2002-11-27 Canon Europa Nv Apparatus and method for generating texture maps for use in 3D computer graphics
CN1939067B (zh) * 2004-04-02 2011-07-20 汤姆森许可贸易公司 用于复杂度可伸缩视频编码器的方法和设备
US7623682B2 (en) * 2004-08-13 2009-11-24 Samsung Electronics Co., Ltd. Method and device for motion estimation and compensation for panorama image
US8942283B2 (en) * 2005-03-31 2015-01-27 Euclid Discoveries, Llc Feature-based hybrid video codec comparing compression efficiency of encodings
JP4680112B2 (ja) 2006-03-30 2011-05-11 三菱電機株式会社 画像符号化装置
JP4656003B2 (ja) 2006-06-01 2011-03-23 沖電気工業株式会社 画像符号化装置及び画像符号化方法
DE102006041033B4 (de) * 2006-09-01 2017-01-19 Siemens Healthcare Gmbh Verfahren zur Rekonstruktion eines dreidimensionalen Bildvolumens
US9123422B2 (en) * 2012-07-02 2015-09-01 Super Talent Technology, Corp. Endurance and retention flash controller with programmable binary-levels-per-cell bits identifying pages or blocks as having triple, multi, or single-level flash-memory cells
WO2010119012A1 (en) * 2009-04-13 2010-10-21 1072 Technology Limited Phototherapy apparatus
KR101479129B1 (ko) * 2009-10-01 2015-01-06 에스케이텔레콤 주식회사 가변 크기의 매크로블록을 이용한 영상 부호화/복호화 방법 및 장치
CN104683809B (zh) * 2009-10-01 2018-04-10 Sk电信有限公司 视频解码装置和方法
KR101484280B1 (ko) * 2009-12-08 2015-01-20 삼성전자주식회사 임의적인 파티션을 이용한 움직임 예측에 따른 비디오 부호화 방법 및 장치, 임의적인 파티션을 이용한 움직임 보상에 따른 비디오 복호화 방법 및 장치
CN102098519B (zh) 2009-12-09 2013-04-17 浙江大学 视频编码方法、解码方法、编码及解码装置
US20120019613A1 (en) * 2009-12-11 2012-01-26 Tessera Technologies Ireland Limited Dynamically Variable Stereo Base for (3D) Panorama Creation on Handheld Device
US20110141224A1 (en) * 2009-12-11 2011-06-16 Fotonation Ireland Limited Panorama Imaging Using Lo-Res Images
KR20110069740A (ko) * 2009-12-17 2011-06-23 에스케이 텔레콤주식회사 영상 부호화/복호화 방법 및 장치
DK2897365T3 (da) 2010-07-09 2017-02-13 Samsung Electronics Co Ltd Apparat til at afkode video ved at anvende bloksammenlægning
CN107197257B (zh) * 2010-12-08 2020-09-08 Lg 电子株式会社 由编码装置和解码装置执行的内预测方法
KR102086145B1 (ko) * 2010-12-13 2020-03-09 한국전자통신연구원 인트라 예측 방법 및 그 장치
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8600194B2 (en) * 2011-05-17 2013-12-03 Apple Inc. Positional sensor-assisted image registration for panoramic photography
EP3678373A1 (en) * 2011-06-20 2020-07-08 HFI Innovation Inc. Method and apparatus of directional intra prediction
US8804816B2 (en) 2011-08-30 2014-08-12 Microsoft Corporation Video encoding enhancements
CN102957907B (zh) 2011-08-31 2016-06-29 华为技术有限公司 一种变换块位置信息的获取方法和模块
KR20130027975A (ko) * 2011-09-08 2013-03-18 주식회사 케이티 인트라 예측 모드 부호화/복호화 방법 및 장치
PL3139596T3 (pl) 2011-09-13 2020-03-31 Hfi Innovation Inc. Sposób i urządzenie do kodowania wewnątrzklatkowego w HEVC
US9495012B2 (en) * 2011-09-27 2016-11-15 Z124 Secondary single screen mode activation through user interface activation
CN104170379B (zh) 2011-10-24 2016-01-20 英孚布瑞智有限私人贸易公司 用于图像解码的方法和装置
KR20130049526A (ko) 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
CN110868588B (zh) * 2012-01-18 2023-09-15 韩国电子通信研究院 视频解码装置、视频编码装置和计算机可读记录介质
KR101620619B1 (ko) * 2012-01-30 2016-05-12 한국전자통신연구원 인트라 예측 모드 부호화/복호화 방법 및 장치
US8842806B2 (en) * 2012-04-03 2014-09-23 Carestream Health, Inc. Apparatus and method for breast imaging
EP2859724B1 (en) * 2012-06-22 2019-09-04 MediaTek Inc. Method and apparatus of adaptive intra prediction for inter-layer coding
JP6080405B2 (ja) * 2012-06-29 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
WO2014008817A1 (en) * 2012-07-09 2014-01-16 Mediatek Inc. Method and apparatus of inter-view sub-partition prediction in 3d video coding
KR20150036261A (ko) 2012-07-13 2015-04-07 후아웨이 테크놀러지 컴퍼니 리미티드 3차원 비디오를 표현하는 비트 스트림을 코딩하는 장치
US9973784B2 (en) 2012-09-20 2018-05-15 Sony Corporation Image processing device and method
JP6415016B2 (ja) 2012-11-12 2018-10-31 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム
US9438926B2 (en) 2012-12-21 2016-09-06 Qualcomm Incorporated Constraints on neighboring block based disparity vector (NBDV) techniques for 3D video
US20150326866A1 (en) * 2012-12-28 2015-11-12 Sharp Kabushiki Kaisha Image decoding device and data structure
CN104904209B (zh) * 2013-01-07 2018-07-24 Lg 电子株式会社 视频信号处理方法
US20140198855A1 (en) * 2013-01-14 2014-07-17 Qualcomm Incorporated Square block prediction
AU2013202653A1 (en) * 2013-04-05 2014-10-23 Canon Kabushiki Kaisha Method, apparatus and system for generating intra-predicted samples
KR102112048B1 (ko) * 2013-08-27 2020-05-18 삼성전자주식회사 악기 연주 기능을 지원하는 전자 장치 및 그의 제어 방법
WO2015062002A1 (en) 2013-10-31 2015-05-07 Mediatek Singapore Pte. Ltd. Methods for sub-pu level prediction
CN104754361B (zh) * 2013-12-28 2018-01-23 同济大学 图像编码、解码方法及装置
US9707799B2 (en) * 2014-03-19 2017-07-18 The Procter & Gamble Company Process for printing and securing three-dimensional pattern on non-fibrous substrates and article comprising non-fibrous surface having three-dimensional pattern thereon
KR102120843B1 (ko) * 2014-04-22 2020-06-09 삼성전자주식회사 디스플레이 장치 및 그의 멀티 뷰 디스플레이 방법
US9900617B2 (en) * 2014-06-20 2018-02-20 Qualcomm Incorporated Single color palette mode in video coding
RU2571616C1 (ru) * 2014-08-12 2015-12-20 Общество с ограниченной ответственностью "Аби Девелопмент" Способ и система оптического распознавания символов, которые сокращают время обработки изображений, потенциально не содержащих символы
CN107005710B (zh) 2014-10-07 2020-03-31 三星电子株式会社 多视点图像编码/解码方法和装置
CN107113425A (zh) 2014-11-06 2017-08-29 三星电子株式会社 视频编码方法和设备以及视频解码方法和设备
US10237548B2 (en) 2015-01-22 2019-03-19 Huddly As Video transmission based on independently encoded background updates
US9871967B2 (en) 2015-01-22 2018-01-16 Huddly As Video transmission based on independently encoded background updates
US10075692B2 (en) * 2015-01-28 2018-09-11 Hfi Innovation Inc. Method of simple intra mode for video coding
US10212434B2 (en) * 2015-01-30 2019-02-19 Qualcomm Incorporated Palette entries coding in video coding
US10115031B1 (en) * 2015-02-27 2018-10-30 Evernote Corporation Detecting rectangular page and content boundaries from smartphone video stream
JP6687015B2 (ja) * 2015-03-05 2020-04-22 ソニー株式会社 画像処理装置および画像処理方法
JP6052319B2 (ja) * 2015-03-25 2016-12-27 Nttエレクトロニクス株式会社 動画像符号化装置
WO2016159631A1 (ko) * 2015-03-29 2016-10-06 엘지전자(주) 비디오 신호의 인코딩/디코딩 방법 및 장치
WO2016154963A1 (en) * 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec
US9930315B2 (en) 2015-04-29 2018-03-27 Lucid VR, Inc. Stereoscopic 3D camera for virtual reality experience
WO2016178880A1 (en) * 2015-05-06 2016-11-10 NGCodec Inc. Intra prediction processor with reduced cost block partitioning and refined intra mode selection
US10448058B2 (en) * 2015-05-21 2019-10-15 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
EP4221202A1 (en) 2015-06-05 2023-08-02 Dolby Laboratories Licensing Corporation Image encoding and decoding method and image decoding device
CN115134593A (zh) 2015-06-05 2022-09-30 杜比实验室特许公司 用于执行帧间预测的图像编解码方法、比特流存储方法
WO2016204478A1 (ko) 2015-06-15 2016-12-22 엘지전자(주) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10148977B2 (en) * 2015-06-16 2018-12-04 Futurewei Technologies, Inc. Advanced coding techniques for high efficiency video coding (HEVC) screen content coding (SCC) extensions
WO2017008263A1 (en) * 2015-07-15 2017-01-19 Mediatek Singapore Pte. Ltd. Conditional binary tree block partitioning structure
US10602138B2 (en) * 2015-08-27 2020-03-24 Lg Electronics Inc. Method and device for chroma sample intra prediction in video coding system
ES2844525B1 (es) * 2015-09-11 2022-07-05 Kt Corp Metodo para decodificar un video
US10356432B2 (en) * 2015-09-14 2019-07-16 Qualcomm Incorporated Palette predictor initialization and merge for video coding
US10217189B2 (en) 2015-09-16 2019-02-26 Google Llc General spherical capture methods
KR102267922B1 (ko) * 2015-09-23 2021-06-22 노키아 테크놀로지스 오와이 360도 파노라마 비디오를 코딩하는 방법, 장치 및 컴퓨터 프로그램 제품
US20170118475A1 (en) * 2015-10-22 2017-04-27 Mediatek Inc. Method and Apparatus of Video Compression for Non-stitched Panoramic Contents
US10212444B2 (en) 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
US9992502B2 (en) * 2016-01-29 2018-06-05 Gopro, Inc. Apparatus and methods for video compression using multi-resolution scalable coding
US20170230668A1 (en) 2016-02-05 2017-08-10 Mediatek Inc. Method and Apparatus of Mode Information Reference for 360-Degree VR Video
US10319071B2 (en) 2016-03-23 2019-06-11 Qualcomm Incorporated Truncated square pyramid geometry and frame packing structure for representing virtual reality video content
FI20165256A (fi) 2016-03-24 2017-09-25 Nokia Technologies Oy Laitteisto, menetelmä ja tietokoneohjelma videokoodaukseen ja -dekoodaukseen
US9721393B1 (en) 2016-04-29 2017-08-01 Immersive Enterprises, LLC Method for processing and delivering virtual reality content to a user
KR102254162B1 (ko) * 2016-05-12 2021-05-20 엘지전자 주식회사 비디오 코딩 시스템에서 인트라 예측 방법 및 장치
US20170347094A1 (en) * 2016-05-31 2017-11-30 Google Inc. Block size adaptive directional intra prediction
KR20180000279A (ko) * 2016-06-21 2018-01-02 주식회사 픽스트리 부호화 장치 및 방법, 복호화 장치 및 방법
TWI775760B (zh) * 2016-07-08 2022-09-01 美商Vid衡器股份有限公司 使用幾何投影360度視訊編碼
US10375371B2 (en) * 2016-07-15 2019-08-06 Mediatek Inc. Method and apparatus for filtering 360-degree video boundaries
EP3490438A4 (en) 2016-07-27 2020-03-18 The Trustees of Columbia University in the City of New York METHODS AND SYSTEMS FOR MODULATING PERIPHERAL NERVES USING FOCUSED ULTRASOUND
US10609423B2 (en) * 2016-09-07 2020-03-31 Qualcomm Incorporated Tree-type coding for video coding
US11172005B2 (en) * 2016-09-09 2021-11-09 Nokia Technologies Oy Method and apparatus for controlled observation point and orientation selection audiovisual content
EP3301914A1 (en) 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for encoding and decoding a large field of view video
EP3301915A1 (en) 2016-09-30 2018-04-04 Thomson Licensing Method and apparatus for omnidirectional video coding with adaptive intra most probable modes
US20190238888A1 (en) * 2017-07-17 2019-08-01 Ki Baek Kim Image data encoding/decoding method and apparatus
CN109996072B (zh) * 2018-01-03 2021-10-15 华为技术有限公司 视频图像的处理方法及装置
US10986371B2 (en) * 2018-03-22 2021-04-20 Mediatek Inc. Sample adaptive offset filtering method for reconstructed projection-based frame that employs projection layout of 360-degree virtual reality projection
US20200007872A1 (en) 2018-06-29 2020-01-02 Industrial Technology Research Institute Video decoding method, video decoder, video encoding method and video encoder

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060050350A (ko) * 2004-08-13 2006-05-19 경희대학교 산학협력단 파노라마 영상의 움직임 추정 및 보상
KR20070103347A (ko) * 2007-10-03 2007-10-23 이제성 360도 파노라마 카메라의 영상컨텐츠를 이용한 고해상도광시야각 대형 디스플레이 방법
KR20140008503A (ko) * 2012-07-10 2014-01-21 한국전자통신연구원 영상 부호화/복호화 방법 및 장치
KR20150068299A (ko) * 2013-12-09 2015-06-19 씨제이씨지브이 주식회사 다면 영상 생성 방법 및 시스템
KR20160032909A (ko) * 2014-09-17 2016-03-25 한화테크윈 주식회사 멀티 영상 전처리 장치 및 방법

Also Published As

Publication number Publication date
US20220217274A1 (en) 2022-07-07
US11956549B2 (en) 2024-04-09
US20230247301A1 (en) 2023-08-03
US20230276132A1 (en) 2023-08-31
US20240073533A1 (en) 2024-02-29
US20230254585A1 (en) 2023-08-10
US11792524B2 (en) 2023-10-17
US11902668B2 (en) 2024-02-13
US20240098373A1 (en) 2024-03-21
US11838639B2 (en) 2023-12-05
US20240098372A1 (en) 2024-03-21
US20230247299A1 (en) 2023-08-03
US11949994B2 (en) 2024-04-02
US11792522B2 (en) 2023-10-17
US11778331B2 (en) 2023-10-03
KR20200060545A (ko) 2020-05-29
US20240064408A1 (en) 2024-02-22
US20230247302A1 (en) 2023-08-03
US11838640B2 (en) 2023-12-05
KR102531386B1 (ko) 2023-05-12
US11696035B2 (en) 2023-07-04
US20230254583A1 (en) 2023-08-10
US11778332B2 (en) 2023-10-03
US20240064409A1 (en) 2024-02-22
KR20190052128A (ko) 2019-05-15
US20240064410A1 (en) 2024-02-22
US20230254584A1 (en) 2023-08-10
US11812155B2 (en) 2023-11-07
US11956548B2 (en) 2024-04-09
KR20230070062A (ko) 2023-05-19
US20230254582A1 (en) 2023-08-10
US11792523B2 (en) 2023-10-17
US20230388644A1 (en) 2023-11-30
US20230247300A1 (en) 2023-08-03
US20240107170A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
WO2018066988A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2018066983A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2018066982A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2020190075A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2018066991A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2019235797A1 (ko) 축소된 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2018048078A1 (ko) 공간적 구조 정보를 이용한 동기화된 다시점 영상의 부호화/복호화 방법 및 그 장치
WO2020009434A1 (ko) 이차 변환을 기반으로 비디오 신호를 처리하는 방법 및 장치
WO2020189943A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법
WO2019235887A1 (ko) 인트라 예측 모드에 기초하여 변환 인덱스 코딩을 수행하는 방법 및 이를 위한 장치
WO2020222617A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2019017651A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2020256442A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020213963A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2021066598A1 (ko) 변환에 기반한 영상 코딩 방법 및 그 장치
WO2019009590A1 (ko) 추가 영역을 포함하는 분할 단위를 이용한 영상 복호화 방법 및 장치
WO2021002558A1 (ko) 포인트 클라우드 데이터 송신 장치, 포인트 클라우드 데이터 송신 방법, 포인트 클라우드 데이터 수신 장치 및 포인트 클라우드 데이터 수신 방법.
WO2021040321A1 (ko) 영상 신호 부호화/복호화 방법 및 이를 위한 장치
WO2020005046A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2019190140A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2018066986A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2018066990A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2019009667A1 (ko) 동기화된 영상의 처리 방법 및 그 장치
WO2018066980A1 (ko) 영상 데이터 부호화/복호화 방법 및 장치
WO2018066987A1 (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: 17858774

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20197011757

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 17858774

Country of ref document: EP

Kind code of ref document: A1