WO2018174591A1 - 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 - Google Patents

영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 Download PDF

Info

Publication number
WO2018174591A1
WO2018174591A1 PCT/KR2018/003350 KR2018003350W WO2018174591A1 WO 2018174591 A1 WO2018174591 A1 WO 2018174591A1 KR 2018003350 W KR2018003350 W KR 2018003350W WO 2018174591 A1 WO2018174591 A1 WO 2018174591A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
image
band
pixel
range
Prior art date
Application number
PCT/KR2018/003350
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 US16/496,239 priority Critical patent/US20200036978A1/en
Priority to KR1020197027157A priority patent/KR20190123745A/ko
Priority to KR1020237033058A priority patent/KR20230143626A/ko
Publication of WO2018174591A1 publication Critical patent/WO2018174591A1/ko
Priority to US17/199,741 priority patent/US11509895B2/en
Priority to US17/957,132 priority patent/US11949865B2/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/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
    • 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
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/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/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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression

Definitions

  • the present invention relates to an image encoding / decoding method using a range of pixel values constituting an image, and more particularly to a pixel constituting an actual image instead of a bit depth by using a point having a range of different pixel values for each image.
  • the present invention relates to an encoding and decoding method using a range of values.
  • a pixel value range is determined according to a preset bit depth, and pixel values out of the determined pixel value range are adjusted through clipping to perform image compression according to bit depth. do.
  • An object of the present invention for solving the above problems is to provide an image encoding method using a pixel value range constituting an image.
  • Another object of the present invention for solving the above problems is to provide an image decoding method using a pixel value range constituting an image.
  • Another object of the present invention for solving the above problems is to provide an image encoding method using two or more bit depths.
  • One aspect of the present invention for achieving the above object, there is provided an image encoding method using a pixel value range constituting an image.
  • the image encoding method using the pixel value range constituting the image may include obtaining an input image to be encoded, acquiring a range of pixel values constituting a first unit image included in the obtained input image; The method may include encoding a range of pixel values constituting the first unit image and generating a bitstream including the encoded pixel value range.
  • the first unit image may be an image made of one unit of a picture, a slice, a tile, and a block.
  • the encoding may include encoding a difference value between a maximum value of a pixel value constituting the first unit image and a maximum pixel value based on a bit depth.
  • the encoding may include generating band information indicating a band to which a maximum or minimum value of the pixel value constituting the first unit image belongs.
  • the method may include generating band position information indicating a position in a band to which a maximum or minimum value of a pixel value constituting the first unit image belongs.
  • the generating of the band position information may be performed when a representative value for a band to which the maximum value or the minimum value belongs is not set in advance.
  • the representative value may be one of a maximum pixel value, a minimum pixel value, and an intermediate value in a band to which the maximum value or the minimum value belongs.
  • the generating of the band information may include generating band information of a band to which one of the maximum value and the minimum value belongs, and generating band information of a band to which the other one belongs, using the generated band information as a prediction value. can do.
  • the encoding may include obtaining a pixel value range constituting another unit image in which encoding is completed, and a pixel value constituting the first unit image using a range of pixel values constituting the other unit image as a prediction value. Encoding the range.
  • the encoding of the range of pixel values constituting the first unit image may include determining whether the range of pixel values constituting the other unit image and the band to which the range of pixel values constituting the first unit image belong are the same. Generating syntax information indicating.
  • Another aspect of the present invention for achieving the above object provides an image decoding method using a pixel value range constituting an image.
  • the image decoding method using the pixel value range constituting the image may include receiving a bitstream, acquiring range information of pixel values constituting the first unit image included in the received bitstream, and obtaining the obtained pixel value.
  • the decoding may be performed on the first unit image based on the range information.
  • the first unit image may be an image made of one unit of a picture, a slice, a tile, and a block.
  • the obtaining of the range information of the pixel value constituting the first unit image may include obtaining a maximum value of the pixel value constituting the first unit image from the bitstream and a maximum pixel value based on a bit depth. And obtaining a maximum value of pixel values constituting the first unit image based on the difference value.
  • Acquiring range information of pixel values constituting the first unit image may include obtaining band information indicating a band to which a maximum or minimum value of the pixel values constituting the first unit image belongs. It may include.
  • the method may include obtaining band position information indicating a position in a band to which the maximum or minimum value of the pixel value constituting the first unit image belongs.
  • the obtaining of the band position information may be performed when a representative value for the band to which the maximum value or the minimum value belongs is not set in advance.
  • the representative value may be one of a maximum pixel value, a minimum pixel value, and an intermediate value in a band to which the maximum value or the minimum value belongs.
  • the acquiring of the band information may include obtaining band information of a band to which one of the maximum value and the minimum value belongs and band information of a band to which the other one belongs, using the obtained band information as a prediction value. It may include the step of obtaining.
  • the acquiring of the band information may include obtaining a pixel value range constituting another decoded unit image and configuring the first unit image by using a range of pixel values constituting the other unit image as a prediction value. And obtaining a range of pixel values.
  • Another aspect of the present invention for achieving the above object provides an image encoding method using two or more bit depths.
  • the image encoding method using two or more bit depths may include obtaining an input image to be encoded, performing primary encoding on the obtained input image based on an internal bit depth, and input image on which the primary encoding is performed. Converting to an external bit depth and performing a second encoding on the input image converted to the external bit depth to generate a bitstream.
  • the inner bit depth may have a larger value than the outer bit depth.
  • the bit depth having a wider pixel value range is separately used in the encoding and decoding process, the pixel value discarded by the pixel value adjustment can be reduced.
  • FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
  • FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • FIG. 4 is a conceptual diagram illustrating a bit depth according to an embodiment of the present invention.
  • FIG. 5 is an exemplary diagram of an adaptive pixel value adjusting method according to an embodiment of the present invention.
  • 6 is an example source code for generating syntax information for an adaptive pixel value adjusting method according to an embodiment of the present invention.
  • FIG. 7 is an exemplary diagram illustrating a method of generating range information of pixel values constituting an actual image.
  • FIG. 8 is an exemplary diagram for describing a method of obtaining range information of pixel values constituting a current image using at least one image that has been encoded / decoded.
  • FIG. 9 is an exemplary diagram for describing a target block for intra prediction and its neighboring block.
  • FIG. 10 is a flowchart illustrating an image encoding method using a pixel value range constituting an image according to an embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating an image decoding method using a pixel value range constituting an image according to an embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating an image encoding method using two or more bit depths according to an embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating an image decoding method using two or more bit depths 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.
  • an image may be composed of a series of still images, and the still images may be classified into a group of pictures (GOP), and each still image is referred to as a picture or a frame. can do.
  • 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.
  • I picture and P picture can be used as reference picture
  • 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.
  • the minimum unit of 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 different 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.
  • 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.
  • 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.
  • FIG. 1 is a conceptual diagram of an image encoding and decoding system according to an embodiment of the present invention.
  • the video encoding apparatus 105 and the decoding apparatus 100 may include a personal computer (PC), a notebook computer, a personal digital assistant (PDA), and a portable multimedia player (PMP). Player), PlayStation Portable (PSP: PlayStation Portable), wireless communication terminal (Wireless Communication Terminal), smart phone (Smart Phone), such as a user terminal such as a TV, or a server terminal such as an application server and a service server, etc.
  • PC personal computer
  • PDA personal digital assistant
  • PMP portable multimedia player
  • Player Portable
  • PSP PlayStation Portable
  • wireless communication terminal Wireless Communication Terminal
  • smart phone Smart Phone
  • a user terminal such as a TV
  • server terminal such as an application server and a service server, etc.
  • a communication device such as a communication modem for communicating with a wired / wireless communication network, a memory (memory 120, 125) for storing various programs and data for inter or intra prediction for encoding or decoding an image, and an operation by executing a program And various devices including processors (processors 110 and 115) for controlling.
  • the image coded by the video encoding apparatus 105 into a bitstream is real-time or non-real-time through a wired or wireless network such as the Internet, a local area wireless communication network, a wireless LAN network, a WiBro network, a mobile communication network, or the like.
  • the image decoding apparatus 100 may be transmitted to the image decoding apparatus 100 through various communication interfaces such as a universal serial bus (USB), and may be decoded by the image decoding apparatus 100 to restore and reproduce the image. Also, an image encoded in the bitstream by the image encoding apparatus 105 may be transferred from the image encoding apparatus 105 to the image decoding apparatus 100 through a computer-readable recording medium.
  • USB universal serial bus
  • FIG. 2 is a block diagram of an image encoding apparatus according to an embodiment of the present invention.
  • the prediction unit 200 the subtraction unit 205, the transformation unit 210, the quantization unit 215, and the inverse quantization unit 220.
  • An inverse transform unit 225 an adder 230, a filter 235, an encoded picture buffer 240, and an entropy encoder 245.
  • the prediction unit 200 may include an intra prediction unit performing intra prediction and an inter prediction unit performing inter prediction.
  • Intra-prediction may configure an intra-prediction mode by configuring pixels of adjacent blocks of the current block as reference pixels, and generate a predictive block using the intra-prediction mode.
  • the prediction block may be generated by determining motion information of the current block using the motion information, and performing motion compensation using the motion information. Determine whether to use either intra-picture prediction or inter-screen prediction for the current block (coding unit or prediction unit), and determine specific information (eg, intra-picture prediction mode, motion vector, reference) for each prediction method. Video, etc.).
  • the processing unit for which the prediction is performed, the processing method for which the prediction method and the details are determined may be determined according to the encoding / decoding setting. For example, a prediction method, a prediction mode, and the like are determined in a prediction unit (or coding unit), and the prediction is performed in a prediction block unit (or coding unit, transformation unit).
  • the subtraction unit 205 subtracts the prediction block from the current block to generate a residual block. That is, the subtractor 205 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 by the predictor to generate a residual block that is a residual signal in the form of a block. .
  • the converter 210 converts the residual block into the frequency domain to convert each pixel value of the residual block into a frequency coefficient.
  • the transform unit 210 is a Hadamard transform, a discrete cosine transform based transform (DCT Based Transform), a discrete sine transform based transform (DST Based Transform), the Karunen Rube transform based transform (KLT Based)
  • the residual signal can be transformed into the frequency domain by using various transformation techniques for transforming an image signal of a spatial axis into a frequency axis such as a transform, and the residual signal transformed into the frequency domain becomes a frequency coefficient.
  • the quantization unit 215 quantizes the residual block having the frequency coefficient transformed by the transformer 210 into the frequency domain.
  • the quantization unit 215 may quantize the transformed residual block using dead zone uniform threshold quantization, a quantization weighted matrix, or an improved quantization technique. This may include one or more quantization techniques as candidates and may be determined by coding mode, prediction mode information, and the like.
  • the entropy encoder 245 scans the generated quantized frequency coefficient sequence according to various scan methods to generate quantized coefficient sequences, and various binarization methods for encoding information generated during the encoding process (fixed length binariation, Syntax elements are generated by unary binarization, rice binarization, k-th order exp-golomb, etc., and various entropy coding techniques (Context Adaptive Binary Arithmetic Coding (CABAC), Context Adaptive Variable Length) Coding (CAVLC) or the like is used for coding.
  • CABAC Context Adaptive Binary Arithmetic Coding
  • CAVLC Context Adaptive Variable Length Coding
  • the scan pattern may be set to one of various patterns such as zigzag, diagonal lines, and rasters.
  • the inverse quantization unit 220 inverse quantizes the residual block quantized by the quantization unit 215. That is, the quantization unit 220 inversely quantizes the quantized frequency coefficient sequence to generate a residual block having the frequency coefficient.
  • the inverse transform unit 225 inversely transforms the residual block inversely quantized by the inverse quantization unit 220. That is, the inverse transformer 225 inversely transforms frequency coefficients of the inversely quantized residual block to generate a residual block having a pixel value, that is, a reconstructed residual block.
  • the inverse transform unit 225 may perform inverse transform by using the transformed method used in the transform unit 210 as the inverse.
  • the adder 230 reconstructs the current block by adding the prediction block predicted by the predictor 200 and the residual block reconstructed by the inverse transform unit 225.
  • the reconstructed current block may be stored as a reference picture (or a reference block) in the decoded picture buffer 240 and may be referred to when encoding another block or picture.
  • the filter unit 235 may include one or more post-processing filter processes such as a deblocking filter, a sample adaptive offset (SAO), an adaptive loop filter (ALF), and the like.
  • the deblocking filter may remove block distortion generated at the boundary between blocks in the reconstructed picture.
  • the ALF may perform filtering based on a value obtained by comparing the reconstructed image with the original image after the block is filtered through the deblocking filter.
  • the SAO restores the offset difference from the original image in units of pixels with respect to the residual block to which the deblocking filter is applied, and may be applied in the form of a band offset or an edge offset.
  • Such a post-processing filter may be applied to the reconstructed picture or block.
  • the encoded picture buffer 240 may store a block or a picture reconstructed by the filter unit 235.
  • the reconstructed block or picture stored in the decoded picture buffer 240 may be provided to the predictor 200 that performs intra prediction or inter prediction.
  • a divider may be further included, and may be divided into coding units having various sizes through the divider.
  • the coding unit may be configured of a plurality of coding blocks (eg, one luminance coding block, two color difference coding blocks, etc.) according to a color format. For convenience of explanation, it is assumed that one color component unit is used.
  • the coding block may have a variable size such as M ⁇ M (eg, M is 4, 8, 16, 32, 64, 128, etc.).
  • the coding block may be M ⁇ N (eg, M and N may be 4, 8, 16, 32, 64, etc.) according to a division scheme (eg, tree-based division, quad tree division, binary tree division, etc.). 128, etc.).
  • the coding block may be a unit that is the basis of intra prediction, inter prediction, transformation, quantization, entropy encoding, and the like.
  • an asymmetric subblock for example, 4M ⁇ 4N is 3M ⁇ 4N / M ⁇ 4N or It may also be possible to apply to the case having 4M ⁇ 3N / 4M ⁇ N or the like).
  • the asymmetric subblock may be supported by the information that is additionally determined according to the encoding / decoding setting to the partitioning scheme for obtaining the symmetric subblock.
  • the division of the coding block M ⁇ N may have a recursive tree-based structure.
  • whether to split may be indicated by a split flag (eg, quad tree split flag, binary split flag).
  • a split flag eg, quad tree split flag, binary split flag.
  • encoding of the coding block is performed in a coded block having a split depth k, and a split flag of a coding block having a split depth k is 1.
  • encoding of a coding block is performed in four sub-coding blocks (quad tree partitioning) or two sub-coding blocks (binary tree partitioning) having a partition depth of k + 1 according to a partitioning scheme.
  • the size of the block is (M >> 1) ⁇ (N >> 1) for four coded blocks, and (M >> 1) ⁇ N or M ⁇ (N >> 1) for two coded blocks.
  • the sub coded block may be set again to a coded block k + 1 and divided into sub coded blocks k + 2 through the above process.
  • one quadrature flag for example, a split flag
  • at least one flag for example, two or more
  • the split direction flag horizontal or vertical, may be omitted in some cases depending on the preceding higher or previous split result)).
  • Block division may start from the largest coding block and proceed to the smallest coding block. Alternatively, it may start from the minimum division depth 0 and proceed to the maximum division depth. That is, partitioning may be performed recursively until the block size reaches the minimum coding block size or the splitting depth reaches the maximum splitting depth.
  • the maximum coding block according to the sub / decoding setting for example, image ⁇ slice, tile> type ⁇ I / P / B>, encoding mode ⁇ Intra / Inter>, color difference component ⁇ Y / Cb / Cr>, etc.
  • the size of, the size of the minimum coding block, and the maximum division depth may be adaptively set.
  • quad tree splitting may be performed in the range of 8 ⁇ 8 to 128 ⁇ 128, and binary tree splitting is in the range of 4 ⁇ 4 to 32 ⁇ 32 and the maximum split depth is 3 Case may be performed.
  • quad tree splitting may be performed in a range of 8 ⁇ 8 to 128 ⁇ 128, and binary tree splitting may be performed in a range of 4 ⁇ 4 to 128 ⁇ 128 and a maximum split depth of 3.
  • the setting may be an I image type (for example, a slice) and in the latter case, a P or B image type.
  • division settings such as a maximum coding block size, a minimum coding block size, a maximum division depth, and the like may be commonly or separately supported according to a division scheme and the aforementioned sub / decoding settings.
  • partitioning is performed within a block support range of each partitioning scheme, and when a block support range of each partitioning scheme overlaps, a priority of partitioning schemes may exist. For example, quad tree split may precede binary tree split.
  • it may be determined whether to perform a subsequent division according to the result of the preceding division. For example, when the result of the preceding division indicates that the division is performed, the subsequent division may not be performed, and the sub-coding block divided according to the preceding division may be set as the encoding block and division may be performed.
  • the division when the result of the preceding division indicates that the division is not performed, the division may be performed according to the result of the subsequent division.
  • the divided sub-coding block when the result of the subsequent division indicates that the division is to be performed, the divided sub-coding block may be set as the encoding block again to perform division, and when the result of the subsequent division indicates that the division does not perform further division Does not perform.
  • the subsequent division result indicates that the division is performed and the divided sub-coding block is set as the encoding block again, when a plurality of division schemes are supported (for example, the block support range of each division scheme overlaps). In this case, only the following partition can be supported without performing the preceding partition. That is, when a plurality of division schemes are supported, when the result of the preceding division indicates that the division is not performed, it means that the previous division is not performed any more.
  • the M ⁇ N coded block may first check the quad tree split flag when quad tree splitting and binary tree split are possible, and when the split flag is 1, (M >> 1) ⁇ (N >> 1
  • the sub-coding block may be divided into four sub-coding blocks having a size) and the sub-coding block may be set as a coding block to perform partitioning (quad tree partitioning or binary tree partitioning). If the split flag is 0, the binary tree split flag can be checked, and if the split flag is 1, the binary tree split flag is divided into two sub-coded blocks having a size of (M >> 1) ⁇ N or M ⁇ (N >> 1).
  • the sub-coded block may be set as a coded block again to perform partitioning (binary tree partitioning). If the division flag is 0, the division process is terminated and encoding is performed.
  • a division scheme such as quad tree / binary tree / quad tree + binary tree may be used.
  • the basic partitioning method may be set as a quad tree method
  • an additional partitioning method may be set as a binary tree method, and information on whether to support the additional partitioning method is implicitly determined, or explicitly, a unit such as a sequence, a picture, a slice, a tile, or the like. Can be included.
  • information related to the division such as the size information of the coding block, the support range of the coding block, the maximum division depth, and the like, may be included in an unit of a sequence, a picture, a slice, a tile, or the like.
  • the allowable block range may be determined by the size of the largest coding block, the supported block range, the maximum division depth, and the like.
  • the coding block obtained by performing the division through the above process may be set to a maximum size of intra prediction or inter prediction. That is, the coded block after block division may be the start size of the partitioning of the prediction block for intra prediction or inter prediction.
  • the prediction block may have sizes of 2M ⁇ 2N and M ⁇ N smaller than or equal to that.
  • the size may be 2M ⁇ 2N, 2M ⁇ N, M ⁇ 2N, or M ⁇ N. Or, it may have a size of 2M ⁇ 2N with the same size as the coding block.
  • the coding block and the prediction block have the same size may mean that the prediction is performed by the size obtained through the partitioning of the coding block without partitioning the prediction block. In other words, it means that split information for the prediction block is not generated.
  • Such a setting may also be applied to a transform block, and the transform may be performed in units of split coding blocks.
  • At least one prediction block and at least one transform block may be obtained based on the coding block (after the encoding block is determined).
  • one prediction block having the same size as the coding block may be obtained, and at least one transform block may be obtained based on the coding block.
  • one prediction block and one transform block having the same size as the coding block may be obtained.
  • partition information of each block may be generated (generated). When one block is obtained, partition information of each block does not occur.
  • Square or rectangular blocks of various sizes obtained according to the result may be blocks used for intra prediction, inter prediction, or may be blocks used for transforming and quantizing residual components.
  • FIG. 3 is a block diagram of an image decoding apparatus according to an embodiment of the present invention.
  • the image decoding apparatus 30 may include an entropy decoder 305, a predictor 310, an inverse quantizer 315, an inverse transformer 320, an adder and subtractor 325, and a filter 330. And a decoded picture buffer 335.
  • the prediction unit 310 may be configured to include an intra prediction module and an inter prediction module.
  • the entropy decoder 305 may receive a quantization coefficient sequence, a transform coefficient sequence, a signal sequence, or the like from the bitstream transmitted from the image encoding apparatus 20 and decode the entropy decoding technique (CABAC, CAVLC, etc.).
  • CABAC entropy decoding technique
  • CAVLC CAVLC
  • the prediction unit 310 may generate a prediction block based on the data transferred from the entropy decoding unit 305.
  • the predictor 310 performs the same process as the predictor 200 of the image encoding apparatus 20 described above.
  • the inverse quantizer 315 may inverse quantize the quantized transform coefficients provided in the bitstream and decoded by the entropy decoder 305.
  • the inverse transform unit 320 may generate a residual block by applying inverse transform techniques of inverse DCT, inverse integer transform, or the like to a transform coefficient.
  • the inverse quantization unit 315 and the inverse transform unit 320 perform the processes performed by the transform unit 210 and the quantization unit 215 of the image encoding apparatus 20 described above, and may be implemented in various ways. have.
  • the same process and inverse transform shared with the transform unit 210 and the quantization unit 215 may be used, and information about the transform and quantization process from the image encoding apparatus 20 (for example, transform size and transform). Shape, quantization type, etc.) may be used to reverse the transform and quantization processes.
  • the residual block that has undergone inverse quantization and inverse transformation may be added to the prediction block derived by the prediction unit 310 to generate an image block reconstructed. This addition can be made by the adder and subtractor 325.
  • the filter 330 may apply a deblocking filter to the reconstructed image block to remove blocking if necessary, and may further add other loop filters to improve video quality before and after the decoding process. Can also be used.
  • the reconstructed and filtered image block may be stored in the decoded picture buffer 335.
  • the image decoding apparatus 30 may further include a divider.
  • the divider may include a picture divider and a block divider.
  • the division part may be easily understood by a person skilled in the art in the same or corresponding configuration as that of the video encoding apparatus of FIG. 2, and thus a detailed description thereof will be omitted.
  • FIG. 4 is a conceptual diagram illustrating a bit depth according to an embodiment of the present invention.
  • the bit depth is a unit indicating the number of pixel values representing one pixel and may represent 2 n pixel values when the bit depth is n bits. Therefore, the range of pixel values is determined according to the bit depth, and as the bit depth increases, the pixels that can be represented become more diversified to increase the sharpness.
  • a plurality of bit depths may be supported according to color components.
  • the plurality of bit depths may be classified into an external bit depth (or first bit depth) and an internal bit depth (or second bit depth).
  • the external bit depth may be a bit depth determined in setting (or generating) sub / decoding information
  • the internal bit depth may be a depth used in the process of performing sub / decoding separately from the external bit depth.
  • the outer bit depth may have the same value as the inner bit depth and may be set as the default bit depth, but the present invention may additionally use an inner bit depth that is distinguished from the outer bit depth.
  • an internal bit depth having a value different from the external bit depth is supported.
  • the internal bit depth may be set as the default bit depth to perform encoding / decoding.
  • the external bit depth may be set as the basic bit depth to perform encoding / decoding.
  • Whether to allow the use of the inner bit depth and whether to use the inner bit depth may be recorded and transmitted in the bitstream in units of a sequence, a picture, a slice, a tile, and the like, and the decoding apparatus parses the stored information to determine the inner bit depth. You can restore information about whether to use or allow it.
  • the inner bit depth when using an inner bit depth that is distinguished from an outer bit depth, the inner bit depth may have a difference of at least 1 bit from the outer bit depth, and more preferably, the inner bit depth may be set to a larger value than the outer bit depth. . That is, by using an internal bit depth representing a wider range of pixel values separately from the external bit depth, it is possible to reduce a rounding error occurring during the process of performing sub / decoding, thereby improving the encoding / decoding performance.
  • the input image to be encoded by the image encoding apparatus may be an image configured based on a predetermined bit depth.
  • the image encoding apparatus converts the input image configured with the external bit depth to an internal bit depth distinguished from the external bit depth (especially having a larger bit value). (40) can be.
  • the input image converted to the internal bit depth is encoded (41) based on the internal bit depth, and the bitstream is generated by converting the image data obtained by encoding according to the internal bit depth to the external bit depth (42). can do.
  • the image decoding apparatus converts the image data constituting the received bit stream into an internal bit depth (43) and performs decoding based on the internal bit depth. May be performed 44.
  • the decoded image data according to the internal bit depth may be converted to the external bit depth 45 to obtain a finally decoded image.
  • the conversion 41 from the outer bit depth to the inner bit depth may be performed through a shift operation from n bits to m bits when the outer bit depth is n bits and the inner bit depth is referred to as m bits.
  • the inverse transformation 42 from the inner bit depth to the outer bit depth may be performed through a round operation from m bits to n bits. In addition, it may be performed through other pre-processing / post-processing processes other than the calculation process.
  • the internal bit depth may be applied in at least one of an image encoding / decoding process such as an intra-picture or inter-screen prediction process, a transformation and quantization process, an inverse quantization and inverse transformation process, an in-loop filtering process, and an entropy encoding / decoding process. Accordingly, the conversion between the outer bit depth and the inner bit depth is performed by the prediction unit, the transform unit and the quantizer, the inverse quantizer and the inverse transform unit, the in-loop filter unit (or filter unit), and the entropy unit / It may be performed before or after the decoding unit.
  • an image encoding / decoding process such as an intra-picture or inter-screen prediction process, a transformation and quantization process, an inverse quantization and inverse transformation process, an in-loop filtering process, and an entropy encoding / decoding process. Accordingly, the conversion between the outer bit depth and the inner bit depth is performed by the prediction unit, the transform unit and the quantizer, the
  • the external bit depth may be converted into the internal bit depth, and the internal bit depth may be converted into the external bit depth before being output to the output image.
  • the reconstructed image when the reconstructed image is stored in the memory, it may be converted from the internal bit depth to the external bit depth, and when the reconstructed image is referred to the prediction unit in the memory, it may be converted from the external bit depth to the internal bit depth.
  • the difference block obtained by the subtractor is converted by the transform unit 210 of FIG. 2
  • the difference block may be converted from the outer bit depth to the inner bit depth, and after the transform block 210 is converted into the inner bit depth, Can be converted to an external bit depth.
  • the inverse transform unit 225 of FIG. 2 may convert from the outer bit depth to the inner bit depth before being inversely transformed, and may be converted from the inner bit depth to the outer bit depth after the inverse transform unit 225.
  • one or more internal bit depths may be used according to an embodiment of the present invention.
  • some of the processes of performing encoding / decoding may apply the first internal bit depth, and others may apply the second internal bit depth.
  • the external bit depth and the internal bit depth may be information that is explicitly determined according to the setting of the encoder / decoder.
  • the outer bit depth may be explicit and the inner bit depth may be information that is determined implicitly.
  • 'explicit' means that the encoding apparatus and the decoding apparatus transmit and receive corresponding information
  • 'implicit' means that the decoding apparatus and the encoding apparatus use a preset value without transmitting and receiving the corresponding information. Can be.
  • a bit value for the outer bit depth may be used, or a difference value between a bit value of the outer bit depth and a preset value may be used.
  • a bit value for the inner bit depth may be used, or a difference value between a bit value of the inner bit depth and a preset value may be used.
  • a difference value between the inner bit depth and the outer bit depth may be used as information representing the inner bit depth.
  • the information representing the syntax element may be encoded / decoded by various binarization methods (fixed length binarization>, unary binariation>, rice binarization ⁇ truncated rice>, k-th order exp-golomb, etc.). have.
  • Bit values of the outer bit depth and the inner bit depth may have various ranges.
  • the range of the bit value of the inner bit depth may be equal to or wider than the range of the bit value of the outer bit depth, and in a range having a bit value larger than the bit value of the range of the bit value of the outer bit depth.
  • the bit value of the outer bit depth can be selected between 8 and 16 bits
  • the bit value of the inner bit depth is selected between 8 and 16 bits (the same range as the outer bit depth), or 10 bits. And between 16 bits or between 10 and 18 bits (a range with bit values greater than the outer bit depth).
  • the setting with dependency / independence according to the hierarchy can be determined under the setting of encoding / decoding.
  • the base layer and the enhancement layer may have different sub / decoding configurations according to the setting of the sub / decoder, and thus the changed configuration of the example may be understood.
  • This may be a description applied to the present invention as a whole including the adaptive pixel value adjustment process described below as well as the bit depth described above.
  • the external bit depth has the same value as the internal bit depth and will be described based on the case where the default bit depth is set.
  • bit_depth The range of pixel values supported according to bit depth (bit_depth) can range from 0 to 2 bit_depth -1 depending on each color format, component, etc., or can range from -2 bit_depth-1 to 2 bit_depth-1-1 It can have Hereinafter, a description will be given with reference to a range from 0 to 2 bit_depth -1.
  • the range of the pixel value may mean a range in the spatial region.
  • FIG. 5 is an exemplary diagram of an adaptive pixel value adjusting method according to an embodiment of the present invention.
  • an input pixel value may be different from an output pixel value.
  • the pixel value adjustment may occur outside the range of acceptable pixel values.
  • a pixel value adjustment process may be performed.
  • the pixel value adjusting method is a process of adjusting a pixel value exceeding a range of pixel values within a range of pixel values, and may be referred to as clipping.
  • Table 1 above is an example code for a clipping function Clip_x in which pixel value adjustment is performed.
  • the input pixel value pixel_val and the minimum value min I and the maximum value max I of the allowable pixel value range may be input as parameters of the clipping function Clip_x.
  • the minimum value min I may be 0
  • the maximum value max I may be 2 bit_depth ⁇ 1.
  • the clipping function Clip_x is performed, the input pixel value (pixel_val, parameter A) smaller than the minimum value (min I, parameter B) is changed to the minimum value (min I ), and the input larger than the maximum value (max I, parameter C).
  • the pixel value may be changed to the maximum value max I. Therefore, when an output value (output) in which pixel value adjustment is completed is returned, the output value (output) may be stored as an output pixel value pixel_val 'in which pixel value adjustment is completed.
  • the range of the pixel value is determined according to the bit depth, but the pixel values constituting the actual image (which may have units such as picture, slice, tile, block, etc.) have different types and characteristics of images, so all pixels must be It does not occur within the value range.
  • some images may include pixels having high pixel values, and some images may include pixels having even pixel values in a wide range. Therefore, according to an exemplary embodiment of the present invention, the range of pixel values constituting the actual image may be used in the image encoding / decoding process.
  • the minimum value min I of the clipping function may be used as the smallest value among the pixel values constituting the actual image, and the maximum value of the clipping function max I is The largest value among the pixel values constituting the image may be used. Therefore, assuming that the pixel value constituting the actual image is between 0 and 2 bit_depth -1 based on the bit depth (bit_depth), the minimum value of the clipping function may be equal to or greater than 0, and the maximum value of the clipping function is 2 bit_depth -may be equal to or less than 1.
  • a pixel value adjusting method includes a pixel value adjusting method 52 based on a bit depth and / or a pixel value adjusting method 54 based on a pixel value range constituting an actual image. It may include.
  • the pixel value adjusting method 52 based on the bit depth may be a method using a maximum value and a minimum value of the pixel value range determined according to the bit depth for the purpose of preventing distortion of the pixel value.
  • the pixel value adjusting method 52 based on the bit depth when the basic bit depth is 8 bits, the pixel value according to the bit depth has a value between 0 and 255. 0, if larger than 255, can be adjusted to 255.
  • the pixel value adjusting method 54 based on the range of pixel values constituting the actual image may be a method using a maximum value and a minimum value of pixel values constituting the actual image for the purpose of improving sub-decoding performance.
  • the pixel value adjusting method 54 based on the range of pixel values constituting the actual image may be divided into a lossless pixel value adjusting method 54a and a lossy pixel value adjusting method 54b.
  • the lossless pixel value adjusting method 54a may be a method using the maximum and minimum values of pixel values constituting the actual image as they are. For example, in the lossless pixel value adjusting method 54a, when the basic bit depth is 8 bits and the pixel value constituting the actual image has a value between 0 and 200, the input pixel value is zero when the input pixel value is less than zero. If it is greater than 200, it can be adjusted to 200.
  • the lossy pixel value adjusting method 54b may be a method using values close to the maximum and minimum values of pixel values constituting the actual image.
  • the range of pixel values may be divided into a plurality of bands having a constant pixel value interval, and at this time, a variable k that may define the plurality of bands as 2 k may be set.
  • k is set to 3 and the range of pixel values is divided into 2 3 bands with respect to the pixel value range (between 0 and 255) when the basic bit depth is 8, one band is a pixel value of 2 5 . It can have a gap.
  • lossy pixel value adjustment may be performed using information indicating which band the maximum and minimum values of the pixel values constituting the actual image belong to. That is, if the minimum value of the pixel values constituting the actual image is 33 and the maximum value is 220, the representative value of the band to which 33 belongs (eg 32) is used as the minimum value for adjusting the pixel value, and the maximum value belongs. A representative value (eg, 224) of the existing band may be used as the maximum value for adjusting the pixel value. In this case, the representative value may be set in advance for each band.
  • the variable k designating the number of bands dividing the range of pixel values may be explicitly generated in the encoding process and transmitted to the decoding apparatus.
  • the pixel value intervals constituting one band may be equal or non-uniform.
  • At least one pixel value adjusting method 52, 54, 54a, 54b according to FIG. 5 may be supported according to a negative / decoding setting. Accordingly, at least one method may be adaptively selected among the pixel value adjusting methods according to FIG. 5 according to performance of an actual video, an encoding device, and a decoding device, and may be applied in an encoding and / or decoding process. Whether the adaptive pixel value adjustment process is supported and the pixel value adjustment process selection information may be stored in the bitstream in units of a sequence, a picture, a slice, a tile, a block, and transmitted to the decoding device, and the decoding device may You can restore the information.
  • the adaptive pixel value adjustment process may be implicitly determined according to the setting of the sub / decoder. For example, when the quantization parameter is 0 (lossless coding in this example, i.e. when no transform, quantization, its inverse, in-loop filter section, etc.) is performed, adaptive pixel value adjustment is not supported and the bit depth Based on the pixel value adjustment process may be implicitly selected to perform the encoding / decoding.
  • whether to support the pixel value adjusting process and at least one pixel value adjusting process selection information may be generated, and at least one pixel value range information applied to the pixel value adjusting process may be generated.
  • related information may be generated in an upper unit (eg, sequence, picture, etc.).
  • first sub-unit eg, picture, tile, slice, etc., that is, the first of the at least one sub-unit within one higher unit.
  • related information may be generated in an upper unit.
  • two or more pixel value range information related information may be generated in two or more lower units.
  • the adaptive pixel value adjustment process may be applied to the encoding / decoding process of the prediction unit, the transform unit, the quantizer, the inverse quantizer, the inverse transform unit, the in-loop filter unit, and the memory.
  • the input pixel in the pixel value adjusting method may be a reference sample or a prediction pixel in a prediction process, and a reconstructed sample in a transform, quantization, inverse transform, and inverse quantization process. May be).
  • the pixel may be a reconstructed pixel in the in-loop filter process, or may be a storage pixel in the memory.
  • the reconstructed pixel in the transformation, quantization, and vice versa may refer to the reconstructed pixel before the in-loop filter is applied.
  • the reconstructed pixel in the in-loop filter may mean a reconstructed pixel after applying the in-loop filter.
  • the reconstructed pixel in the deblocking filter process may mean a reconstructed pixel after the deblocking filter is applied.
  • the reconstructed pixel in the SAO process may mean a reconstructed pixel after applying the SAO.
  • the reconstructed pixel in the ALF process may mean a reconstructed pixel after applying the ALF. Examples of the various cases as described above have been described, but the present invention is not limited thereto and may be applied in the input, middle, and output stages of all the sub / decoding processes in which the pixel value adjusting process is called.
  • the external bit depth is 8 bits
  • the internal bit depth is 12 bits
  • an adjustment method based on bit depth (52, based on the minimum value of 0 and the maximum value of 255. 8 bits) is selected
  • the external bit depth is the default bit depth.
  • the reconstructed pixel generated during the deblocking filter applied as may be adjusted to 0 when smaller than 0 and to 255 when larger than 255.
  • the external bit depth is 10 bits
  • the internal bit depth is 12 bits (based on the minimum value of 0 and the maximum value of 4095. 12 bits in this example), and the method of adjusting pixel values based on the bit depth (52, minimum value of 0 and maximum in this example). If the value 1023. 10-bit reference) is selected, the reconstructed pixel generated in the SAO process in which the internal bit depth is applied as the default bit depth can be adjusted to 0 when smaller than 0 and 4095 when larger than 4095.
  • an external bit depth is 8 bits
  • an internal bit depth is 10 bits
  • a pixel value adjustment process 54a (based on a minimum value of 0 and a maximum value of 255. 8 bits) based on a pixel value range constituting an actual image is selected.
  • the reconstructed pixel generated in the ALF process in which the external bit depth is applied as the basic bit depth may be adjusted to 0 when smaller than 0 and 255 when larger than 255.
  • the external bit depth is 8 bits
  • the internal bit depth is 12 bits
  • the pixel value adjusting method (based on the pixel value range 54a, the minimum value of 20 and the maximum value of 220. 8 bits) is selected based on the pixel value range constituting the actual image.
  • the reconstructed pixel generated during the prediction, transform, quantization, inverse quantization, inverse transform, and in-loop filter applied with an internal bit depth as the default bit depth is 320 when the pixel is smaller than 320 (20 ⁇ 4), and 3520 (220 ⁇ 4). Greater than), you can adjust to 3520.
  • the present invention is not limited thereto, and some or all of the above examples may be the same or different, and may be modified and expanded in various cases.
  • 6 is exemplary source code for generating syntax elements for an adaptive pixel value adjusting method according to an embodiment of the present invention.
  • sps_adaptive_sample_range may be a syntax element indicating whether to support an adaptive pixel value adjusting process in sps
  • pps_adaptive_sample_range may be a syntax element of a picture unit indicating whether to support an adaptive pixel value adjusting process in pps.
  • syntax elements of whether to support an adaptive pixel value adjusting process may be defined.
  • At least one in sequence unit (or picture) when a syntax element indicating whether to support the adaptive pixel value adjustment process is activated (eg, a syntax element of 1 means to support the adaptive pixel value adjustment process).
  • the encoding / decoding process may be performed by supporting a pixel value adjusting process of the pixel value, and a syntax element (adaptive_sample_range_flag) for selecting which of the pixel value adjusting methods according to FIG. 5 may be additionally generated.
  • syntax element indicating whether to support the adaptive pixel value adjusting process is deactivated (assuming 0 in this example)
  • encoding / decoding including one pixel value adjusting process preset in sequence units (or pictures) is performed. Can be.
  • syntax elements of whether to support the adaptive pixel value adjustment process according to the color component may be defined in each unit.
  • the syntax element may not be generated according to the encoding / decoding setting (QP in this example).
  • adaptive_sample_range_flag may be a syntax element for selecting which method of pixel value adjustment to be applied in pps, and syntax elements for selecting the pixel value adjustment method may be defined in other units (sequence, slice, tile, block, etc.). Can be.
  • the syntax element may be defined in at least one unit (picture, slice, tile, block, etc. in this example) or may be defined in only one unit (selection of picture, slice, tile, block, etc. in this example).
  • the syntax element (adaptive_sample_range_flag) for selecting which method of pixel value adjustment method is to be applied may be selected from two candidate groups for two or more pixel value adjustment processes. If the pixel value adjustment method 52 based on the bit depth according to FIG. 5 is selected with reference to the syntax element (adaptive_sample_range_flag), the minimum value and the maximum value of the luminance component determined according to the bit depth in the image (picture unit in this example) The minimum value and the maximum value of the color difference component may be set as the pixel value range information.
  • luma_lower_bound and luma_upper_bound are used as the pixel value range information in the image (picture unit).
  • syntax elements i in this example, i is the index value of the chrominance component
  • chroma_lower_bound [i] chroma_upper_bound [i]
  • the minimum, maximum, and chrominance components May be set as the pixel value range information.
  • syntax elements for pixel value range information may be defined, and syntax elements defined according to color format may be partially changed and applied. .
  • range information of pixel values constituting an actual image may be generated, and the pixel value range of the upper unit may include the pixel value range of the lower unit.
  • pixel value range information is generated in two or more units (picture, slice in this example), and the minimum and maximum values of the upper unit (picture in this example) are minH, maxH, and lower units (slice in this example). If min and max are minL and maxL, minH may be less than or equal to minL and maxH may be greater than or equal to maxL.
  • the minimum and maximum values of the upper unit are minH, maxH, and the first lower unit (slice in this example). If the minimum and maximum values of minL1, maxL1, and the minimum and maximum values of the second subunit (slice in this example) are minL2 and maxL2, minH can be less than or equal to minH1 or minH2, and maxH can be greater than maxH1 or maxH2. It can be greater than or equal to.
  • the higher value pixel value range information may be generated based on the pixel value range information determined by the bit depth, and the lower value pixel value range information may be generated based on the higher value pixel value range information. Additional syntax elements other than the minimum and maximum values may be defined with respect to the pixel value range information.
  • the information indicating the pixel value range constituting the actual image may include a minimum value and a maximum value of the pixel value range.
  • the pixel value range information may generate information related to an original value (minimum value and maximum value itself) without prediction.
  • the prediction may generate information related to the difference value (difference value, the difference between the predicted value determined by the prediction about the minimum value and the maximum value and the actual minimum value or the maximum value), and the prediction value used for the prediction. Relevant information may also be generated, and the above-mentioned information may be represented by a mixture of one or more factors.
  • the original value related information may be classified into a lossless original value and a lossy original value, and in the case of a lossless original value, the original value may be represented as it is for the pixel value range information of the image.
  • the lost original value may be a value having an error range allowed by the negative / decoding setting for the pixel value range information of the image.
  • the error range information can be implicitly or explicitly processed. In case of implicit, error range information can be generated according to a predetermined condition without generating a related syntax element. Through the error range information can be generated.
  • the difference value related information is obtained between the pixel value range information (for example, the maximum value and the minimum value) constituting the actual image and the pixel value range information (for example, the predicted value for the maximum value and the predicted value for the minimum value) obtained through prediction. It may be a difference value or a pixel value generated based on pixel value range information obtained through prediction.
  • the difference value may be divided into a signed difference value or an unsigned difference value, and syntax element settings (such as a binarization method in this example) may be determined according to the difference value characteristic.
  • the prediction value related information may be information that is expected to be similar to all or some components (eg, a maximum value, a minimum value, etc.) constituting a range of pixel values constituting an actual image of the image.
  • the prediction value-related information may include a pixel value range of at least one sub-decoded image, another pixel value range previously sub-decoded, a pixel value range of another color component, a predicted value preset in the sub-decoder, and the like. Can be.
  • the preset prediction value may vary depending on the bit depth.
  • Information used for prediction may be implicitly or explicitly processed according to the encoding / decryption setting.
  • prediction-related information may be generated according to a predetermined condition without generating a related syntax element. Through the prediction-related information can be generated, the original value information can be predicted through the information.
  • Context-based adaptive binary arithmetic can be applied to the difference-related information and the predicted value-related information through various binarization methods (binary and other binaries mentioned in the present invention) according to the encoding / decoding.
  • context modeling may be performed based on various pieces of information (considered in this example as context information) mentioned in the above description.
  • FIG. 7 is an exemplary diagram illustrating a method of generating range information of pixel values constituting an actual image.
  • range information of pixel values constituting an actual image may be generated according to an original value without prediction.
  • the minimum value (minc) and the maximum value (maxc) of the pixel values constituting the current image are expressed in n bits through fixed-length binarization according to the bit depth (defined by n bits), and the maximum and minimum values expressed in n bits. May be set as range information of pixel values constituting an actual image.
  • a value indicating the minimum value minc and the maximum value maxc in the range information of the pixel value according to the first embodiment may be expressed differently from the minimum value and the maximum value of the pixel value of the actual image.
  • the minimum value minc and the maximum value maxc of the pixel values constituting the actual image are 10 and 240
  • the minimum value minc of the pixel values constituting the actual image may be expressed as 10
  • the actual image may be expressed as it is.
  • the maximum value (maxc) of the pixel values constituting the difference is the difference value (255 and 240) between the maximum value (255 bits of the 8-bit reference 255) of the pixel value that can be represented by the bit depth and the maximum value (maxc) of the pixel value constituting the actual image.
  • the maximum value may be expressed in ascending order in the entire range (0 to 255) obtained based on the bit depth, and the maximum value may be expressed in descending order.
  • the information expressed as described above may be recorded in the bitstream and transmitted to the decoding apparatus, and the decoding apparatus may parse the received information to restore the range information of the pixel value according to the first embodiment.
  • the maximum value of the pixel value constituting the actual image is represented by the difference value (15 in this case) described above, the difference value (here 15 is restored) is restored from the maximum value (255 bits of 8-bit reference value) that can be represented with the bit depth again. ), A maximum value (here 240) of pixel values constituting an actual image can be obtained.
  • the range information of pixel values constituting the actual image may be expressed as band information to which the maximum value maxc and the minimum value minc belong to the pixel values constituting the actual image.
  • band information to which the maximum value maxc and the minimum value minc belong to the pixel values constituting the actual image.
  • the encoding device may generate information indicating the k value and transmit the information to the decoding device). divided into 2 k gaera home) in the example, and may generate information indicative of a band belonging to a maximum value (maxc) and the minimum value (minc).
  • a range of pixel values represented by bit depths may be divided into two bands.
  • the maximum value and the minimum value of the actual pixel value constituting the current image may be band 4 and band 2 k -3 in FIG. 7.
  • the number indicating the band to which the maximum value maxc or the minimum value minc belongs may be set from 0 or may be set from 1 as shown in FIG. 7.
  • the information indicating the band to which the minimum value belongs may be determined as the fourth band as shown in FIG.
  • the information indicating the band to which the maximum value belongs is not only determined as the band 2 k- 3 as shown in FIG. 7, It can also be determined as the difference value (here 3) between the total number of bands (2 k ) and the band to which the maximum value belongs (2 k -3).
  • the decoding apparatus when the encoding apparatus transmits information indicating a band to which the maximum value maxc and the minimum value minc belong, the decoding apparatus knows the band to which the maximum value maxc and the minimum value minc belong based on the received information. Can be. In this case, the encoding apparatus may additionally generate and transmit information indicating a position of the maximum value maxc or the minimum value minc in the band to which the maximum value maxc or the minimum value minc belongs, or transmit additional additional information. It may not be created.
  • the decoding device is a representative value representing the band to which the maximum value (maxc) or the minimum value (minc) belongs.
  • the value and minimum value can be determined.
  • the representative value may be an implicitly set value for each band, or may be a predetermined distance from a maximum value or minimum value constituting the corresponding band, a maximum value or minimum value constituting the corresponding band.
  • the representative value of the band to which the minimum value minc belongs is the lowest pixel value constituting the band, and the representative value of the band to which the maximum value maxc belongs is set to the highest pixel value constituting the band.
  • the decoding device When the encoding device generates additional additional information (location information in band) (lossless original value), the decoding device utilizes minimum or maximum in-band position information to accurately specify in-band pixel values without loss. can do.
  • the additional additional information (location information in the band) may be set to the remaining value obtained by dividing the maximum value or the minimum value by the width (interval) of the band. Specifically, for example, when the maximum value is 50 and the width of the band to which the maximum value 50 belongs is 14, 8, which is a remainder obtained by dividing 50 by 14, may be generated as additional information.
  • the pixel value range information including the additional additional information (lossless original value in this example. Minc, maxc) is converted into the pixel value range information that does not generate the additional information described above according to the lost original value setting. Can be.
  • the remaining pixel value range information may be generated based on the pixel value range information of which the sub / decoding is completed among the pixel value range information according to the first embodiment.
  • the maximum value maxc of the pixel values constituting the current image may be determined as a prediction value for the minimum value minc of the pixel values constituting the current image. Therefore, although the encoding apparatus encodes the maximum value as it is, the minimum value can be encoded and transmitted to the decoding apparatus by encoding a difference value with the maximum value. The decoding apparatus decodes the maximum value first, and then decodes the decoded maximum value and the received information. By adding the difference values obtained by parsing, it is possible to obtain the decoded minimum value. On the contrary, the minimum value of the pixel value constituting the current image may be determined as a prediction value for the maximum value of the pixel value constituting the current image, and may be negatively and decoded in a manner corresponding to the above.
  • bit length representing the difference value (maxc-minc) between the maximum value (maxc) and the minimum value (minc) constituting the current video is expressed by the minimum value (or maximum value) and bit depth that have been encoded / decoded.
  • Variable length binarization may be performed based on the difference between the maximum value (or minimum value). Specifically, when the difference (diff) between the minimum value (or maximum value) for which encoding / decoding is completed and the maximum value (or minimum value) expressed by the bit depth satisfies Equation 1 below, Equation 1 below The binarization may be performed using a k value satisfying S as a bit length.
  • , 78 in this example) between the maximum value and the minimum value of the pixel values constituting the current image is determined based on the difference value between minc and the maximum value expressed by the bit depth. Bit (01001110 in this example), and maxc can be restored by adding
  • , 110 in this example) of the pixel value range can be generated as 7 bits (1101110 in this example) determined based on the difference between maxc and the minimum value expressed by the bit depth.
  • minc can be restored by subtracting
  • the binarization in this example is just an example, and other binarization methods may also be applied.
  • the pixel value range information of the current image may be generated based on the pixel value range information of which encoding / decoding is completed according to the second embodiment.
  • band information to which the maximum value constituting the current image belongs may be used as a prediction value for band information to which the minimum value constituting the current image belongs.
  • the band information to which the minimum value constituting the current image belongs may be used as a prediction value for the band information to which the maximum value constituting the current image belongs.
  • the bit length representing the difference value between the derived band information and the prediction value for the band information is the band information to which the maximum value (or minimum value) belongs and the band indicating the divided band as shown in FIG. 7 (for example, Can be determined by variable length binarization based on the difference between the minimum (or maximum) value of 1 to 2 k ).
  • the pixel value range information of the current image may be generated by using the pixel value range information of at least one image that has been encoded / decoded as a prediction value.
  • the pixel value constituting the current image using the minimum value minp and the maximum value maxp of the pixel values constituting the at least one other predictor that has been encoded / decoded are predicted.
  • the minimum value minc and the maximum value maxc can be derived.
  • the pixel value range information of the first color component (in this example, the luma component ⁇ or chroma component>) is determined by the pixel value range information of the second color component (in this example, chroma component ⁇ or luma component or other chroma component>). Can be used for prediction.
  • the difference value information may be performed under a condition not to deviate from a preset range.
  • the band information to which the minimum value minc and the maximum value maxc of the current image belongs is included in the minimum value minp and the maximum value maxp of at least one other predictor that has been encoded / decoded.
  • the band information can be derived using the prediction value.
  • the band information to which the maximum value and the minimum value of at least one other image belong and the band information to which the maximum value and the minimum value of the current image belong are the same, indicating a band to which the maximum value and the minimum value of pixel values constituting the current image belong. Band information does not need to be transmitted separately.
  • the decoding apparatus may obtain band information indicating a band to which the maximum value and the minimum value of pixel values constituting the current image belong from at least one other image that has been encoded / decoded. Accordingly, the encoding apparatus may generate only the position information of the maximum value or the minimum value in the band and exclude the band information and transmit the generated location information to the decoding apparatus.
  • information about whether to perform pixel value range information prediction from the encoded / decoded image may be additionally generated.
  • the encoding apparatus may include a flag indicating that the band information to which the maximum value and the minimum value of the current image belong are the same as the band information to which the maximum value and the minimum value of the other image belong (or indicating to be predictable). Syntax elements).
  • the decoding apparatus receives the flag additionally generated by the encoding apparatus, and if the received flag is activated (for example, 1), the range information (maximum value and minimum value of the pixel value constituting the decoded / decoded image belongs).
  • the band information of the current image may be obtained by performing prediction using the information on the band and the in-band position information), and the in-band position information of the current image may be obtained separately from the encoding apparatus.
  • the band to which the maximum and minimum values of the current image belong ie, band information
  • the encoding apparatus may determine the position of the 1-bit value indicating that the prediction is possible through the band information of another image, and the position information in the band to which the maximum / minimum value of the current image belongs to determine the position information in the band. In this example, 4 bits) can be generated.
  • the location information in the band may be determined as a remainder obtained by dividing the maximum value or the minimum value of the current image by the number of bands.
  • k the pixel is 4 are 24 can be divided into the band (where a band gap was 24).
  • the minimum pixel value minc and the maximum pixel value maxc of the current image are included in the band 4 and the band 14 at 55 and 211, and the minp and maxp acquired from the other image are the band 4 and the band 14 at 49 and 221. (I.e., when band information of another video and band information of the current video are the same).
  • the band to which minc and maxc belongs is determined in band 4 and band 14 to which minp and maxp belong. Can be.
  • minc, maxc (8 bits as 00110111 and 11010011 when sending 55 and 211 by itself) of the current image except band information (0011xxxx and 1101xxxx in this example, the upper 4 bits of the 8 bits correspond to the band information). It can be represented only by location information in the band (in this example, xxxx0111 and xxxx0011, the lower 4 bits of 8 bits).
  • the minc and maxc of the current video are 8 and 136, which are included in band 1 and band 9, and minp and maxp are 29 In this case, it is assumed to be included in band 2 and band 9 as 140. If the pixel value range information of the current image is predicted from another image and is predicted for each component, minc occurs in a band different from the band to which minp belongs, and thus no prediction is performed, and maxc belongs to the same band as the band to which maxp belongs. Prediction can be performed.
  • minc generates the pixel value range information in the original value (00001000, 8 in this example) or in another way, and maxc occurs in band 9 to which maxp belongs, so in-band position information ⁇ in this example, 8 (maximum value)
  • xxxx1000 ⁇ can generate pixel value range information. That is, the minimum value (minc) of the pixel values constituting the current image is 0 (1 bit, 0 is unpredictable) which is a flag (applied for each component) indicating a prediction, and the minimum value (minc) is the original value 00001000 (8 bits). Information indicating may be generated.
  • the maximum value maxc of the pixel values constituting the current image may be 1 (1 bit, 1 is predictable) and 1 (1 bit, 1 is predictable), which is a prediction flag, and 1000 (expressed as 4 bits, as 8 bits) of in-band position information. have.
  • a band to which the minimum value of the pixel value constituting the current image belongs and a band to which the minimum value of the pixel value constituting another image which has been encoded / decoded are different are different.
  • the minimum value of the current image and the minimum value of the other image belong to the same band (band 2) as shown in the reference numeral 76. You can check it. Therefore, by changing (or lowering) the number of bands to be divided, prediction using band information of another image is possible. That is, the encoding apparatus may generate information by additionally including information indicating to reduce the value of the variable k that determines the number of bands to be divided by 1 into a flag indicating whether it is predictable.
  • minc is generated in a band different from the band to which minp belongs and is immediately predicted (k in this example). Is not 4) and maxc belongs to the same band as the band to which maxp belongs, so prediction may be performed.
  • maxc occurs in band 9 to which maxp belongs and the rest of it (8 (136% 16) in this example).
  • minc is included in band 1 (when k is 3) through k-adjustment (adjust k from 4 to 3 in this example), and minp is band 1 (k Is 3). Since minc belongs to the same band as the band to which minp belongs, prediction is performed, and pixel value range information can be generated with position information in the band ⁇ 8 (8% 32), xxx01000 ⁇ in this example. That is, the prediction flag of minc may generate 01 (2 bits) and the remaining value 01000 (5 bits), and the prediction flag of maxc may generate 1 (1 bit) and the remaining value 1000 (4 bits).
  • an additional bit prediction flag may occur in a specific situation (in this example, when k is not predicted to the initial value or when updated k is not predicted. 0), which is a preset boundary value ⁇
  • a specific situation in this example, when k is not predicted to the initial value or when updated k is not predicted. 0
  • a preset boundary value ⁇
  • Possible prediction flags may occur up to 1 (predictable when k is 4), 01 (predictable when k is 3), 001 (predictable when k is 2), 000 (not predicted) ⁇ .
  • the setting of k value, k value adjusting process, boundary value of k value, etc. in the above embodiment may be determined according to the sub / decoding setting, and related information may be stored in the bitstream and transmitted.
  • FIG. 8 is an exemplary diagram for describing a method of obtaining range information of pixel values constituting a current image using at least one image that has been encoded / decoded.
  • T-2 and T-1 denote images of which decoding / decoding has been completed before the current image (here, the picture is described), and T + 1 and T + 2 denote encoding of the decoding / decoding after the current image. This is a completed video.
  • R_Info may refer to range information of pixel values constituting the corresponding image.
  • the pixel value range information of the current picture may be referenced in at least one image (T-1, T-2 in this example) in which sub / decoding is completed before the current picture, At least one image that has been encoded / decoded after the picture (in this example, T + 1, T + 2) and has been encoded / decoded before or after the current picture (this example).
  • the images referred to the information prediction for the pixel value range may be images included in the reference picture lists L0 and L1 of the inter prediction, may be images located in the same GOP as the current image, and a temporal layer of the current image. Images may be equal to or lower than TemporalID).
  • the referenced image may be at least one image, which may be defined according to the setting of the sub / decoder.
  • the reference image may be referred to in the preset image or after the candidate group is composed of one or more images, the referenced image may be determined, and selection information may be generated accordingly.
  • the first image of the GOP the image for random access (in this example, an intra randam access point (IRAP) picture), and the like may correspond thereto.
  • IRAP intra randam access point
  • R_Info (A) represents one image pixel value range information and may generate prediction values for the minimum and maximum values of the current image, including information on the minimum and maximum values of the image A.
  • R_Info (A, B, ...) represents information on the range of two or more (A, B, etc.) image pixel values and includes prediction information about the minimum and maximum values of the current image, including information about the representative minimum value and the representative maximum value.
  • Representative minimum and maximum values may be generated using methods such as average, weighted sum, and median of the minimum and maximum values.
  • the prediction value of the minimum value and the maximum value may be derived by estimating the gradient information or the change amount of the pixel value range information of successive images.
  • the pixel value range information may be obtained from pixel values before sub / decoding of each image is performed.
  • Whether to perform the prediction may be determined based on the pixel value range information in the encoded / decoded image. For example, whether to predict the pixel value range information of the current image from two or more images, the similarity of the pixel value range information of the images, that is, the minimum value of the image A, the maximum value of the image B, and the maximum value of the image B It may be determined according to a similarity checking process (in this example, comparison based on band information).
  • the minimum value minA and the maximum value maxA of the pixel values constituting the image A are included in bands 3 and 13 when 40 and 200.
  • the minimum value (minB) and the maximum value (maxB) of the pixel values constituting (B) are included in the band 3 and the band 13 at 35 and 206, and it is determined that there is a similarity to the pixel value range of the images. It may be determined that similarity exists in the image, and thus prediction of the pixel value range information (all of the pixel value range information in this example, applied to the components together) may be performed.
  • the minimum value minA and the maximum value maxA of the pixel values constituting the image A are included in the band 3 and the band 13 when the value is 40 and 200.
  • the minimum value (minB) and the maximum value (maxB) of the pixel values constituting the (B) are partially included in the band 4 and the band 13 when the values 50 and 205 are similar.
  • the minimum value minA and the maximum value maxA of the pixel values constituting the image A are included in the band 2 and the band 7 when the value is 40 and 200.
  • the minimum value minB and the maximum value maxB of the pixel values constituting (B) are included in the band 1 and the band 8 at 10 and 255, it is determined that there is no similarity in the pixel value range of the images. It may be determined that similarity does not exist in the pixel value range in the current image, and thus prediction of the pixel value range information may not be performed.
  • the band information comparison is taken as an example of the similarity checking process for the prediction of the pixel value range information, and the like may be used to determine whether the prediction is performed by various methods and processes.
  • the pixel value adjustment 52 based on the bit depth or the pixel value adjustment 54 based on the range of the pixel values constituting the actual image is performed.
  • the range may be changed (determined or defined), and additional pixel value range information may also be changed (determined or defined).
  • the maximum and minimum values of the pixel values constituting the actual image may be changed, and the median value of the pixel values constituting the actual image may also be changed.
  • minI may mean a minimum pixel value of an image
  • maxI may mean a maximum pixel value of an image
  • I may mean a color component
  • medianI may mean a center pixel value of an image.
  • minI may be 0
  • maxI may be (1 ⁇ bit_depth) -1
  • medianI may be 1 ⁇ (bit_depth-1)
  • median may be obtained in other forms including the above example according to a negative / decoding setting.
  • the median value is only one term for explanation in the present invention and may be one piece of information indicating pixel value range information that may be changed (determined or defined) according to the pixel value adjustment process in the image encoding / decoding process.
  • minI is the actual minimum pixel value (or approximation) of the image
  • maxI is the actual maximum pixel value (or approximation) of the image.
  • medianI may be an actual center pixel value (or an approximation) of an image.
  • the medianI may be an average of actual pixel values of the image, a value located at the center when aligning pixels of the image, and a value obtained according to pixel value range information of the image.
  • At least one minI, maxI medianI can be derived. That is, medianI may be one pixel value existing within the pixel value range of the image.
  • medianI is the pixel value range of the image, such as (minI + maxI) / 2 or (minI + maxI) >> 1, (minI + maxI + 1) / 2, (minI + maxI + 1) >> 1, etc. It may be a value obtained according to information (minI, maxI in this example), and median may be obtained in other forms including the above example according to a negative / decoding setting.
  • medianI may generate / decode explicit information such as minI and maxI, including the case of generating implicit information in the above example.
  • luma_median_value and chroma_median_value [i] are pixel value range information in a picture unit, and syntax elements for the median value of the luminance component and the median value of the chrominance component may be defined. i], and syntax elements may be defined in other units (slice, tile, etc.).
  • the process and setting of the pixel value range information described in the embodiments related to the pixel value range information may be similarly or similarly applied to the medianI.
  • the current block position is located in the upper left of the image (picture in this example). Since the neighboring block (or the reference block. In this example, left, bottom left, top left, top, and top right) that has been completed / decoded does not exist, the reference pixel has a median ⁇ 1 ⁇ (bit_depth-1) in this example. 512 ⁇ .
  • An intra prediction process may be performed using the reference pixel according to a prediction mode (in this example, directional prediction mode. Diagonal down left).
  • the basic bit depth is 8 bits and the pixel value adjusting process based on the range of pixel values constituting the actual image (54a of FIG. 5, the minimum value 10 in this example, the maximum value 190.
  • the setting is derived from the minimum value and the maximum value ( Median 100. 8-bit reference ⁇ is selected, and if the current block position is the first block in the image (slice in this example), then the neighboring blocks (left, bottom left, top left, Since the upper and upper right sides do not exist, the reference pixel may be filled with a median value (100 in this example).
  • the intra-prediction process may be performed using the reference pixel according to a prediction mode (in this example, non-directional prediction mode DC).
  • the basic bit depth is 10 bits and the pixel value adjusting process (54b in FIG. 5, the median 600 in this example, the relevant syntax element is present) is selected based on the range of pixel values constituting the actual image, and the position of the current block is selected. Is the first block in the image (tile in this example), the neighboring blocks to be used for sub / decoding (left, bottom left, top left, top, top right) do not exist, so the reference pixel is the median (in this example).
  • the reference pixel may be used to perform an intra prediction process according to a prediction mode (directional prediction mode. Vertical in this example).
  • the basic bit depth is 10 bits and the pixel value adjustment process (54a in FIG. 5, the median 112 in this example has a relevant syntax element present) is selected based on the range of pixel values constituting the actual image.
  • the setting that determines whether or not it is available according to the encoding mode ⁇ in-picture prediction / inter-picture prediction> of the block is activated. If the setting is deactivated, it can be used as a reference pixel of the current block regardless of the coding mode of the block.If the current block is located on the left side of the image, it is encoded / decoded.
  • Neighbor blocks left, bottom left, top left in this example
  • neighbor blocks up, top right in this example
  • the reference pixel can be filled with a median (112 in this example). That is, since there is no reference pixel available, it may be filled with the median value of the image pixel value range.
  • An intra prediction process may be performed using the reference pixel according to a prediction mode (in this example, non-directional prediction mode. Planar).
  • the pixel value adjustment process is performed according to the boundary characteristics of the current block and the neighboring block, the position of the current block, whether the neighboring block is decoded or decoded, the encoding mode of the neighboring block, the reference pixel use setting according to the encoding mode of the block, and the like.
  • An example is shown.
  • an example of whether to use the pixel value range information according to the pixel value adjusting process according to the reference pixel configuration result in the reference pixel configuration unit (or configuration step) in the intra prediction unit (the reference pixels available in the above example exist. Otherwise, the reference pixel is filled with the median of the image and the state is changed to the usable reference pixel.
  • the pixel value adjustment may be performed according to the pixel value range information (min and max in this example) in the prediction pixel generation process, and the pixel according to the pixel value range information (median in this example) in the reference pixel generation process.
  • An example in which value adjustment may be performed is shown.
  • the prediction unit has shown various cases related to the median value, but this may be included in another configuration of video encoding / decoding.
  • the present invention is not limited only to the above embodiments and may be modified and expanded in various cases.
  • FIG. 9 is an exemplary diagram for describing a target block for intra prediction and its neighboring block.
  • the intra prediction may include a reference pixel construction step, a reference pixel filtering step, a prediction block generation step, a prediction mode determination step, and / or a prediction mode encoding step.
  • the apparatus for encoding an image may include a reference pixel constructing unit, a reference pixel filtering unit, a prediction block generating unit, and / or a reference pixel constructing step, a reference pixel filtering step, a predictive block generating step, a prediction mode determining step, a prediction mode encoding step. It may be configured to include a prediction mode encoder.
  • the reference pixel configuration part belongs to neighboring blocks A, B, C, D, and E around a current block Curr (block size of M ⁇ N) and is adjacent to the current block Curr. May be configured as a reference pixel for intra prediction.
  • the reference pixel may be managed through a temporary memory (for example, primary or secondary array), and is generated and removed for each intra-prediction process of the block, and the size of the temporary memory may be referred to as the size of the current block. It may be determined according to the configuration of the pixel.
  • the reference pixel configuration checks whether reference pixels (or neighboring blocks) are available for the reference pixel configuration. If some of the reference pixels (or at least one block of A to E) are not available, use the available reference pixels (e.g., extrapolation in both directions if the available reference pixels exist in only one direction). If present, it may be possible to extrapolate in a clockwise / counterclockwise direction, such as extrapolation or interpolation, to produce a reference pixel that is not available. If all of the reference pixels (or all blocks of A to E) are not available, the reference pixels may be filled with the median described above, or else, the reference pixels may be generated using various methods mentioned in the present invention.
  • the availability of the neighboring block includes whether the corresponding block is encoded, whether it is outside the picture boundary, whether it belongs to a slice / tile different from the current block, and limited intra prediction setting (for example, constrained_intra_pred_flag. Determines whether to use the reference pixel according to the mode, if '1', can be used when the coding mode of the neighboring block is intra prediction, not if it is inter prediction. Can be used).
  • the neighboring block may be available when the encoding mode means intra prediction when the neighboring block is encoded, is present in the picture, belongs to the same slice / tile as the current block, and constrained_intra_pred_flag is '1'.
  • the reference pixel configuration unit may configure the reference pixel through Equation 2 below.
  • ref_sample () means a function constituting the reference pixel (extrapolation, copying, intermediate value generation, etc.)
  • blk_size (or blk_size_w, blk_size_h) may be M or N as the block size (or length)
  • color_idx Means the color difference component.
  • the reference pixel filtering unit may perform filtering on the reference pixel in order to reduce deterioration remaining through the encoding process.
  • the filter used is a 3-tap filter [1/4, 1/2, 1/4], 5-tap filter [2/16, 3/16, 6/16, 3/16, 2/16], etc. It may be the same low-pass filter. Whether or not filtering is applied may be determined according to an encoding setting (for example, setting information is determined by a block size, shape, prediction mode, etc.), and when filtering is applied, fixed filtering or adaptive filtering may be applied. .
  • the reference pixel filtering unit may obtain a filtered reference pixel through Equation 3 below.
  • p "[i] [j] means the filtered reference pixel
  • pred_mode means the prediction mode of the current block
  • ref_filter () denotes the reference pixel as the 3-tap filter or 5 described above. means a function of filtering using a -tap filter, etc.
  • p * [i] [j] means a reference pixel configured according to Equation 2 above.
  • 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 according to a prediction mode, and may be used in a method such as interpolation, averaging, or copying.
  • the prediction mode candidate group may be composed of 33 directional modes and two non-directional modes (DC, Planar), such as HEVC, and the like, and are not limited thereto. Mode candidate group configuration, etc.).
  • the prediction block generator may obtain a prediction block through Equation 4 below.
  • p f [x] [y] is a prediction pixel of the current block (in this example, x and y may have a range from 0 to blk_size-1, or depending on the shape of the current block, respectively) 0 to blk_size_w or blk_size_h), and pred_sample () refers to a function of generating a prediction block according to an intra prediction mode using a reference pixel.
  • the prediction mode determiner performs a process for selecting an optimal mode among a plurality of prediction mode candidate groups.
  • rate-distortion which considers the distortion of a block (for example, Distortion of the current block and the reconstructed block, SAD ⁇ Sum of Absolute Difference>, SSD ⁇ Sum of Square Difference>, etc.) and the amount of bits generated according to the corresponding mode.
  • -Distortion can be used to determine the best mode in terms of coding cost.
  • 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 prediction mode may be predicted to encode information about the prediction mode (prediction flag and remaining mode information according to the prediction result).
  • a block used for prediction of the prediction mode may be a left, top, top left, top right, or bottom left block with respect to the current block, and the prediction mode of the corresponding block may be used as a prediction value of the prediction mode encoding of the current block.
  • the intra prediction may include a prediction mode decoding step, a reference pixel configuration step, a reference pixel filtering step, and / or a prediction block generation step.
  • the image decoding apparatus may also include a prediction mode decoding unit that implements a prediction mode decoding step, a reference pixel construction step, a reference pixel filtering step, and a prediction block generation step, a reference pixel configuration unit, a reference pixel filtering unit, and / or a prediction block generation unit.
  • a prediction mode decoding unit that implements a prediction mode decoding step, a reference pixel construction step, a reference pixel filtering step, and a prediction block generation step, a reference pixel configuration unit, a reference pixel filtering unit, and / or a prediction block generation unit.
  • the prediction mode decoding unit reverses the method used by the prediction mode encoding unit. It can be performed using.
  • the pixel value adjustment eg, clipping according to min, max, median input according to median, etc.
  • pixel value range information is performed. May be included.
  • FIG. 10 is a flowchart illustrating an image encoding method using a pixel value range constituting an image according to an embodiment of the present invention.
  • the first unit image may be an image made of one unit of a picture, a slice, a tile, and a block.
  • the encoding step S120 may include encoding a difference value between a maximum value of pixel values constituting the first unit image and a maximum pixel value based on a bit depth.
  • the step of encoding (S120) may include generating band information indicating a band to which a maximum or minimum value of a pixel value constituting the first unit image belongs.
  • the method may include generating band position information indicating a position in a band to which a maximum or minimum value of a pixel value constituting the first unit image belongs.
  • the generating of the band position information may be performed when a representative value for a band to which the maximum value or the minimum value belongs is not set in advance.
  • the representative value may be one of a maximum pixel value, a minimum pixel value, and an intermediate value in a band to which the maximum value or the minimum value belongs.
  • the generating of the band information may include generating band information of a band to which one of the maximum value and the minimum value belongs, and generating band information of a band to which the other one belongs, using the generated band information as a prediction value. can do.
  • the method may include obtaining a pixel value range constituting another unit image in which encoding is completed and configuring the first unit image by using a range of pixel values constituting the other unit image as a prediction value.
  • the method may include encoding a range of pixel values.
  • a band to which a range of pixel values constituting the other unit image and a range of pixel values constituting the first unit image is included And generating a syntax element indicating whether or not it is the same.
  • FIG. 11 is a flowchart illustrating an image decoding method using a pixel value range constituting an image according to an embodiment of the present invention.
  • the first unit image may be an image made of one unit of a picture, a slice, a tile, and a block.
  • the maximum value of the pixel value constituting the first unit image from the bitstream and the maximum pixel value based on a bit depth may be obtained.
  • Acquiring range information of pixel values constituting the first unit image (S210), obtaining band information indicating a band to which a maximum or minimum value of a pixel value constituting the first unit image belongs. It may include the step.
  • the method may include obtaining band position information indicating a position in a band to which the maximum or minimum value of the pixel value constituting the first unit image belongs.
  • the obtaining of the band position information may be performed when a representative value for the band to which the maximum value or the minimum value belongs is not set in advance.
  • the representative value may be one of a maximum pixel value, a minimum pixel value, and an intermediate value in a band to which the maximum value or the minimum value belongs.
  • the acquiring of the band information may include obtaining band information of a band to which one of the maximum value and the minimum value belongs and band information of a band to which the other one belongs, using the obtained band information as a prediction value. It may include the step of obtaining.
  • the acquiring of the band information may include obtaining a pixel value range constituting another decoded unit image and configuring the first unit image by using a range of pixel values constituting the other unit image as a prediction value. And obtaining a range of pixel values.
  • FIG. 12 is a flowchart illustrating an image encoding method using two or more bit depths according to an embodiment of the present invention.
  • obtaining an input image to be encoded (S300) and performing primary encoding on the obtained input image based on an internal bit depth (S310).
  • Converting the input image on which the primary encoding is performed to an external bit depth (S320) and generating a bitstream by performing secondary encoding on the input image converted to the external bit depth (S330). can do.
  • the inner bit depth may have a larger value than the outer bit depth.
  • FIG. 13 is a flowchart illustrating an image decoding method using two or more bit depths according to an embodiment of the present invention.
  • the method may include converting the acquired image data into the internal bit depth (S420) and obtaining a decoded image by performing secondary decoding on the image data converted into the internal bit depth (S430).
  • 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

영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법이 개시된다. 여기서 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계 및 획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계를 포함한다. 따라서, 영상 부호화 및 복호화 과정에서 압축 효율을 향상시킬 수 있다.

Description

영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
본 발명은 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법에 관한 것으로, 더욱 상세하게는 영상마다 서로 다른 화소값의 범위를 갖고 있는 점을 이용하여 비트 심도 대신에 실제 영상을 구성하는 화소값의 범위를 이용한 부호화 및 복호화 방법에 관한 것이다.
ISO/ISE MPEG (Moving Picture Experts Group)과 ITU-T VCEG (Video Coding Experts Group)으로 불리는 각 기관은 JCV-VC (Joint Collaborative Team on Video Coding)를 조직하여 2013 년 1 월 ISO/IEC MPEG-H HEVC (High Efficiency Video Coding)/ITU-T H.265 인 비디오 압축 표준 기술을 제정하였다. 또한, 현재 급속한 정보통신기술의 발전에 따른 고화질 영상이 대중화되는 추세에 부응하기 위해, ISO/ISE MPEG과 ITU-T VCEG 은 제 22 차 JCT-VC 제네바 회의에서 JVET (Joint Video Exploration Team)을 조직하여 HD (High Definition) 화질보다 선명한 UHD 화질(Ultra High Definition)의 영상 압축을 위한 차세대 영상 압축 기술 표준을 제정하고자 활발히 노력하고 있다.
한편, 기존의 비디오 압축 표준 기술에 따르면, 미리 설정한 비트 심도에 따라 화소값 범위를 결정하고, 결정된 화소값 범위를 벗어나는 화소값은 클리핑(clipping)을 통해 조정함으로써 비트 심도에 따른 영상 압축을 수행한다.
그런데, 실제 영상을 구성하는 화소값의 범위는 비트 심도에 따라 결정되는 화소값 범위와는 차이가 있기 때문에 보다 실제 영상에 맞는 영상 부호화/복호화 방법이 필요한 실정이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 다른 목적은, 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법을 제공하는 데 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 또 다른 목적은, 두 개 이상의 비트 심도를 이용한 영상 부호화 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명의 일 측면은, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법을 제공한다.
여기서 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계, 획득한 입력 영상에 포함된 제1 단위영상을 구성하는 화소값(pixel)의 범위를 획득하는 단계, 상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계 및 부호화된 화소값 범위를 포함하는 비트스트림을 생성하는 단계를 포함할 수 있다.
여기서 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 부호화하는 단계는, 상기 제1 단위영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 부호화하는 단계를 포함할 수 있다.
여기서 상기 부호화하는 단계는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 생성하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 생성하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서 상기 대역 정보를 생성하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계 및 생성된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 생성할 수 있다.
여기서 상기 부호화하는 단계는, 부호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계를 포함할 수 있다.
여기서 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계는, 상기 다른 단위 영상을 구성하는 화소값의 범위와 상기 제1 단위 영상을 구성하는 화소값의 범위가 속하는 대역이 같은지 여부를 지시하는 구문정보를 생성하는 단계를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법을 제공한다.
여기서 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계, 수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계 및 획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계를 포함할 수 있다.
여기서, 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는, 상기 비트스트림으로부터 상기 제1 단위 영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 획득하는 단계 및 상기 차분값에 기초하여 상기 제1 단위 영상을 구성하는 화소값의 최대값을 획득하는 단계를 포함할 수 있다.
상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서, 상기 대역 정보를 획득하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 획득하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서, 상기 대역 정보를 획득하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계 및 획득된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 획득하는 단계는, 복호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 획득하는 단계를 포함할 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 측면은, 두 개 이상의 비트 심도를 사용한 영상 부호화 방법을 제공한다.
여기서 두 개 이상의 비트 심도를 사용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계, 획득한 입력 영상을 내부 비트 심도에 기초하여 1차 부호화를 수행하는 단계, 상기 1 차 부호화가 수행된 입력 영상을 외부 비트 심도로 변환하는 단계 및 외부 비트 심도로 변환된 입력 영상에 대하여 2 차 부호화를 수행하여 비트스트림을 생성하는 단계를 포함할 수 있다.
여기서 상기 내부 비트 심도는 상기 외부 비트 심도보다 더 큰 값을 가질 수 있다.
상기와 같은 본 발명에 따른 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법을 이용할 경우에는 실제 영상의 특성에 따른 부호화 및 복호화를 수행할 수 있다.
또한, 부호화 및 복호화 과정에서 더 넓은 화소값 범위를 갖는 비트 심도를 별도로 사용하므로, 화소값 조정으로 버려지는 화소값을 줄일 수 있다.
따라서, 영상 부호화 및 복호화 효율이 향상될 수 있는 장점이 있다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 4는 본 발명의 일 실시예에 따른 비트 심도를 설명하기 위한 개념도이다.
도 5는 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 구문 정보를 생성하는 예시 소스 코드이다.
도 7은 실제 영상을 구성하는 화소값의 범위 정보를 생성하는 방법에 대한 예시도이다.
도 8은 부/복호화가 완료된 적어도 하나의 영상을 이용하여 현재 영상을 구성하는 화소값의 범위 정보를 획득하는 방법을 설명하기 위한 예시도이다.
도 9는 화면 내 예측을 위한 대상 블록과 그 이웃 블록을 설명하기 위한 예시도이다.
도 10은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법에 대한 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법에 대한 흐름도이다.
도 12는 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 부호화 방법에 대한 흐름도이다.
도 13은 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 복호화 방법에 대한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
통상적으로 영상은 일련의 정지 영상(Still Image)으로 구성될 수 있으며, 이 정지 영상들은 GOP(Group of Pictures) 단위로 구분될 수 있고, 각 정지 영상을 픽쳐(Picture) 또는 프레임(Frame)이라 지칭할 수 있다. 상위 개념으로는 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)의 계수값, 부호화/복호화 과정 중에 생성, 결정되는 다양한 부호화/복호화 정보일 수 있다.
영상을 이루는 최소 단위는 화소일 수 있으며, 하나의 화소를 표현하는데 사용되는 비트수를 비트 심도라고 한다. 일반적으로 비트 심도는 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)하여 부호화기에서 전송된 설정 정보를 복원하여 영상 복호화 과정에 사용할 수 있다. 각 파라미터 세트는 고유의 아이디값을 갖고 있으며, 하위 파라미터 세트에서는 참조할 상위 파라미터 세트의 아이디값을 가질 수 있다. 예를 들어, 하위 파라미터 세트에서 하나 이상의 상위 파라미터 세트 중 일치하는 아이디값을 갖는 상위 파라미터 세트의 정보를 참조할 수 있다. 위에서 언급된 다양한 단위의 예 중 어떤 하나의 단위가 하나 이상의 다른 단위를 포함하는 경우에 해당하는 단위는 상위 단위, 포함되는 단위는 하위 단위라 칭할 수 있다.
상기 단위에서 발생하는 설정 정보의 경우 해당 단위마다 독립적인 설정에 대한 내용을 포함하거나 이전, 이후 또는 상위 단위 등에 의존적인 설정에 대한 내용을 포함할 수 있다. 여기서 의존적인 설정이란 이전, 이후, 상위 단위의 설정을 따른다는 플래그 정보(예를 들어, 1 비트 플래그로 1이면 따름. 0이면 따르지 않음)로 해당 단위의 설정 정보를 나타내는 것이라 이해될 수 있다. 본 발명에서의 설정 정보는 독립적인 설정에 대한 예를 중심으로 설명을 할 것이나, 현재 단위의 이전, 이후의 단위 또는 상위 단위의 설정 정보에 의존적인 관계에 대한 내용으로의 추가 또는 대체되는 예 또한 포함될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 실시예에 따른 영상 부호화 및 복호화 시스템에 대한 개념도이다.
도 1을 참조하면, 영상 부호화 장치(105) 및 복호화 장치(100)는 개인용 컴퓨터(PC:Personal Computer), 노트북 컴퓨터, 개인 휴대 단말기(PDA: Personal Digital Assistant), 휴대형 멀티미디어 플레이어(PMP: Portable Multimedia Player), 플레이스테이션 포터블(PSP: PlayStation Portable), 무선 통신 단말기(Wireless Communication Terminal), 스마트폰(Smart Phone), TV 등과 같은 사용자 단말기이거나 응용 서버와 서비스 서버 등 서버 단말기일 수 있으며, 각종 기기 또는 유무선 통신망과 통신을 수행하기 위한 통신 모뎀 등의 통신 장치, 영상을 부호화 또는 복호화를 위해 인터 또는 인트라 예측하기 위한 각종 프로그램과 데이터를 저장하기 위한 메모리(memory, 120, 125), 프로그램을 실행하여 연산 및 제어하기 위한 프로세서(processor, 110, 115) 등을 구비하는 다양한 장치를 포함할 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 실시간 또는 비실시간으로 인터넷, 근거리 무선 통신망, 무선랜망, 와이브로망, 이동통신망 등의 유무선 통신망(Network) 등을 통하거나 케이블, 범용 직렬 버스(USB: Universal Serial Bus) 등과 같은 다양한 통신 인터페이스를 통해 영상 복호화 장치(100)로 전송되어 영상 복호화 장치(100)에서 복호화되어 영상으로 복원되고 재생될 수 있다. 또한, 영상 부호화 장치(105)에 의해 비트스트림으로 부호화된 영상은 컴퓨터 판독 가능한 기록 매체를 통하여 영상 부호화 장치(105)에서 영상 복호화 장치(100)로 전달될 수 있다.
도 2는 본 발명의 일 실시예에 따른 영상 부호화 장치에 대한 블록도이다.
본 실시예에 따른 영상 부호화 장치(20)는, 도 2에 나타낸 바와 같이, 예측부(200), 감산부(205), 변환부(210), 양자화부(215), 역양자화부(220), 역변환부(225), 가산부(230), 필터부(235), 부호화 픽쳐 버퍼(240) 및 엔트로피 부호화부(245)를 포함할 수 있다.
예측부(200)는 화면내 예측을 수행하는 화면내 예측부와 화면간 예측을 수행하는 화면간 예측부를 포함할 수 있다. 화면내 예측은 현재 블록의 인접한 블록의 화소를 참조 화소로 구성하여 화면내 예측 모드를 결정하고, 상기 화면내 예측 모드를 사용하여 예측 블록을 생성할 수 있고, 화면간 예측은 하나 이상의 참조 영상을 이용하여 현재 블록의 움직임 정보를 결정하고, 상기 움직임 정보를 사용하여 움직임 보상을 수행함으로써 예측 블록을 생성할 수 있다. 현재 블록(부호화 단위 또는 예측 단위)에 대해 화면내 예측 또는 화면간 예측 중 어떤 방식을 사용할 지에 대한 것을 결정하고, 각 예측 방법에 따른 구체적인 정보(예를 들어, 화면내 예측 모드, 움직임 벡터, 참조 영상 등)를 결정할 수 있다. 이때, 예측이 수행되는 처리 단위와 예측 방법 및 구체적인 내용이 정해지는 처리 단위는 부/복호화 설정에 따라 정해질 수 있다. 예를 들어, 예측 방법, 예측 모드 등은 예측 단위(또는 부호화 단위)로 결정되고, 예측의 수행은 예측 블록 단위(또는 부호화 단위, 변환 단위)로 수행된다.
감산부(205)는 현재 블록에서 예측 블록을 감산하여 잔차 블록을 생성한다. 즉, 감산부(205)는 부호화하고자 하는 현재 블록의 각 화소의 화소값과 예측부를 통해 생성된 예측 블록의 각 화소의 예측 화소값의 차이를 계산하여 블록 형태의 잔차 신호인 잔차 블록을 생성한다.
변환부(210)는 잔차 블록을 주파수 영역으로 변환하여 잔차 블록의 각 화소값을 주파수 계수로 변환한다. 여기서, 변환부(210)는 하다마드 변환(Hadamard Transform), 이산 코사인 변환 기반의 변환(DCT Based Transform), 이산 사인 변환 기반의 변환(DST Based Transform), 카루넨 루베 변환 기반의 변환(KLT Based Transform) 등과 같은 공간축의 화상 신호를 주파수축으로 변환하는 다양한 변환 기법을 이용하여 잔차 신호를 주파수 영역으로 변환할 수 있는데, 주파수 영역으로 변환된 잔차 신호가 주파수 계수가 된다.
양자화부(215)는 변환부(210)에 의해 주파수 영역으로 변환된 주파수 계수를 갖는 잔차 블록을 양자화한다. 여기서, 양자화부(215)는 변환된 잔차 블록을 데드존 균일 경계 양자화(Dead Zone Uniform Threshold Quantization), 양자화 가중치 매트릭스(Quantization Weighted Matrix) 또는 이를 개량한 양자화 기법 등을 사용하여 양자화할 수 있다. 이는1개 이상의 양자화 기법을 후보로 둘 수 있으며 부호화 모드, 예측 모드 정보 등에 의해 결정될 수 있다.
엔트로피 부호화부(245)는 생성된 양자화 주파수 계수열을 다양한 스캔 방식에 따라 스캔하여 양자화 계수열을 생성하고, 부호화 과정 중에 생성되는 부호화 정보에 관한 다양한 이진화 방법(고정 길이 이진화<fixed length binariation>, 단항 이진화<unary binarization>, Rice 이진화<truncated rice>, k-th order exp-golomb 등)에 의해 구문 요소를 생성하며, 이를 다양한 엔트로피 부호화 기법{Context Adaptive Binary Arithmetic Coding(CABAC), Context Adaptive Variable Length Coding(CAVLC) 등}을 이용하여 부호화 함으로써 출력한다. 스캔 패턴은 지그재그, 대각선, 래스터(raster) 등 다양한 패턴들 중 하나로 설정할 수 있다.
역양자화부(220)는 양자화부(215)에 의해 양자화된 잔차 블록을 역 양자화한다. 즉, 양자화부(220)는 양자화 주파수 계수열을 역양자화하여 주파수 계수를 갖는 잔차 블록을 생성한다.
역변환부(225)는 역양자화부(220)에 의해 역양자화된 잔차 블록을 역변환한다. 즉, 역변환부(225)는 역양자화된 잔차 블록의 주파수 계수들을 역변환하여 화소값을 갖는 잔차 블록, 즉 복원된 잔차 블록을 생성한다. 여기서, 역변환부(225)는 변환부(210)에서 사용한 변환한 방식을 역으로 사용하여 역변환을 수행할 수 있다.
가산부(230)는 예측부(200)에서 예측된 예측 블록과 역변환부(225)에 의해 복원된 잔차 블록을 가산하여 현재 블록을 복원한다. 복원된 현재 블록은 복호화 픽쳐 버퍼(240)에 참조 픽쳐(또는 참조 블록)로서 저장되어 다른 블록, 픽쳐의 부호화시에 참조될 수 있다.
필터부(235)는 디블록킹 필터, SAO(Sample Adaptive Offset), ALF(Adaptive Loop Filter) 등의 하나 이상의 후처리 필터 과정을 포함할 수 있다. 디블록킹 필터는 복원된 픽쳐에서 블록 간의 경계에 생긴 블록 왜곡을 제거할 수 있다. ALF는 디블록킹 필터를 통해 블록이 필터링된 후 복원된 영상과 원래의 영상을 비교한 값을 기초로 필터링을 수행할 수 있다. SAO는 디블록킹 필터가 적용된 잔차 블록에 대하여, 화소 단위로 원본 영상과의 오프셋 차이를 복원하며, 밴드 오프셋(Band offset), 에지 오프셋 등의 형태로 적용될 수 있다. 이와 같은 후처리 필터는 복원된 픽쳐 또는 블록에 적용될 수 있다.
부호화 픽쳐 버퍼(240)는 필터부(235)를 통해 복원된 블록 또는 픽쳐를 저장할 수 있다. 복호화 픽쳐 버퍼(240)에 저장된 복원 블록 또는 픽쳐는 화면내 예측 또는 화면간 예측을 수행하는 예측부(200)에 제공될 수 있다.
도면에 도시 하지 않았지만 분할부가 더 포함될 수 있으며, 분할부를 통해 다양한 크기의 부호화 단위로 분할할 수 있다. 이때, 부호화 단위는 컬러 포맷에 따라 복수개의 부호화 블록으로 구성(예를 들어, 하나의 휘도 부호화 블록, 둘의 색차 부호화 블록 등)될 수 있다. 설명의 편의를 위해 하나의 컬러 성분 단위를 가정하여 설명한다. 부호화 블록은 M×M(예를 들어, M은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 또는, 분할 방식(예를 들어, 트리 기반의 분할. 쿼드 트리 분할, 바이너리 트리 분할 등)에 따라 부호화 블록은 M×N(예를 들어, M과 N은 4, 8, 16, 32, 64, 128 등)과 같은 가변 크기를 가질 수 있다. 이때, 부호화 블록은 화면내 예측, 화면간 예측, 변환, 양자화, 엔트로피 부호화 등의 기초가 되는 단위일 수 있다.
본 발명에서는 분할 방식에 따라 동일한 크기 및 형태를 갖는 복수 개의 서브 블록이 획득되는 가정 하에 설명하지만, 비대칭적인 서브 블록(예를 들어, 바이너리 트리의 경우 4M × 4N은 3M × 4N/M × 4N 또는 4M × 3N/4M × N 등으로 분할)을 갖는 경우로의 적용 또한 가능할 수 있다. 이때, 비대칭적인 서브 블록은 대칭적인 서브 블록을 획득하는 분할 방식에 부/복호화 설정에 따라 추가적으로 지원 여부가 결정되는 정보에 의해 지원될 수 있다.
부호화 블록(M×N)의 분할은 재귀적인 트리 기반의 구조를 가질 수 있다. 이때, 분할 여부는 분할 플래그(예를 들어, 쿼드 트리 분할 플래그, 바이너리 분할 플래그)를 통해 나타낼 수 있다. 예를 들어, 분할 깊이(Depth)가 k인 부호화 블록의 분할 플래그가 0인 경우 부호화 블록의 부호화는 분할 깊이가 k인 부호화 블록에서 수행되며, 분할 깊이가 k인 부호화 블록의 분할 플래그가 1인 경우 부호화 블록의 부호화는 분할 방식에 따라 분할 깊이가 k+1인 4개의 서브 부호화 블록(쿼드 트리 분할) 또는 2개의 서브 부호화 블록(바이너리 트리 분할)에서 수행된다. 이때, 블록의 크기는 4개의 부호화 블록의 경우 (M >> 1) × (N >> 1)이고, 2개의 부호화 블록의 경우 (M >> 1) × N 또는 M × (N >>1)일 수 있다. 상기 서브 부호화 블록은 다시 부호화 블록(k+1)으로 설정되어 상기 과정을 거쳐 서브 부호화 블록(k+2)으로 분할될 수 있다. 이때, 쿼드 트리 분할의 경우 하나의 분할 플래그(예를 들어, 분할 여부 플래그)가 지원될 수 있고, 바이너리 트리 분할의 경우 적어도 하나(2개 이상도 가능)의 플래그(예를 들어, 분할 여부 플래그에 추가적으로 분할 방향 플래그<가로 또는 세로. 선행하는 상위 또는 이전 분할 결과에 따라 일부 경우에 생략가능>)가 지원될 수 있다.
블록 분할은 최대 부호화 블록에서 시작하여 최소 부호화 블록까지 진행할 수 있다. 또는, 최소 분할 깊이(0)에서 시작하여 최대 분할 깊이까지 진행할 수 있다. 즉, 블록의 크기가 최소 부호화 블록 크기에 도달하거나 분할 깊이가 최대 분할 깊이에 도달할 때까지 재귀적으로 분할을 수행할 수 있다. 이때, 부/복호화 설정(예를 들어, 영상<슬라이스, 타일> 타입<I/P/B>, 부호화 모드<Intra/Inter>, 색차 성분<Y/Cb/Cr> 등)에 따라 최대 부호화 블록의 크기와 최소 부호화 블록의 크기, 최대 분할 깊이가 적응적으로 설정될 수 있다.
예를 들어, 최대 부호화 블록은 128×128일 때, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 32×32범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 또는, 쿼드 트리 분할은 8×8 ~ 128×128 범위에서 수행될 수 있고, 바이너리 트리 분할은 4×4 ~ 128×128 범위와 최대 분할 깊이 3인 경우에 수행될 수 있다. 전자의 경우 I 영상 타입(예를 들어, 슬라이스), 후자의 경우 P나 B 영상 타입에서의 설정일 수 있다. 상기 예에서 설명된 것과 같이 최대 부호화 블록의 크기, 최소 부호화 블록의 크기, 최대 분할 깊이 등과 같은 분할 설정은 분할 방식과 전술한 부/복호화 설정에 따라 공통되거나 또는 개별적으로 지원될 수 있다.
복수의 분할 방식이 지원되는 경우 각 분할 방식의 블록 지원 범위 내에서 분할이 수행되며, 각 분할 방식의 블록 지원 범위가 겹치는 경우에는 분할 방식의 우선 순위가 존재할 수 있다. 예를 들어, 쿼드 트리 분할이 바이너리 트리 분할을 선행할 수 있다. 또한, 복수의 분할 방식이 지원되는 경우 선행하는 분할의 결과에 따라 후행하는 분할의 수행 여부가 결정될 수 있다. 예를 들어, 선행하는 분할의 결과가 분할을 수행함을 나타낼 경우 후행하는 분할은 수행하지 않고 선행한 분할에 따라 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있다.
또는, 선행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 후행하는 분할의 결과에 따라 분할을 수행할 수 있다. 이때, 후행하는 분할의 결과가 분할을 수행함을 나타낼 경우 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되어 분할을 수행할 수 있고, 후행하는 분할의 결과가 분할을 수행하지 않음을 나타낼 경우 더 이상의 분할은 수행하지 않는다. 이때, 후행하는 분할 결과가 분할을 수행함을 나타내고 분할된 서브 부호화 블록이 다시 부호화 블록으로 설정되었을 때의 상황도 복수의 분할 방식이 지원되는 경우(예를 들어, 각 분할 방식의 블록 지원 범위가 겹치는 경우)일 때, 선행하는 분할은 수행하지 않고 후행하는 분할만 지원할 수 있다. 즉, 복수의 분할 방식이 지원되는 경우에 선행하는 분할의 결과가 분할이 수행되지 않음을 나타낼 경우 더 이상 선행의 분할은 수행하지 않음을 의미한다.
예를 들어, M × N부호화 블록은 쿼드 트리 분할과 바이너리 트리 분할이 가능할 경우 우선 쿼드 트리 분할 플래그를 확인할 수 있고, 상기 분할 플래그가 1인 경우에는 (M >> 1) × (N >> 1) 크기의 4개의 서브 부호화 블록으로 분할이 수행이 되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(쿼드 트리 분할 또는 바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 바이너리 트리 분할 플래그를 확인할 수 있고, 해당 플래그가 1인 경우에는 (M >> 1) × N 또는 M × (N >> 1) 크기의 2 개의 서브 부호화 블록으로 분할이 수행되고 상기 서브 부호화 블록은 다시 부호화 블록으로 설정되어 분할(바이너리 트리 분할)을 수행할 수 있다. 상기 분할 플래그가 0인 경우에는 분할 과정을 종료하고 부호화를 진행한다.
상기 예를 통해 복수의 분할 방식이 수행되는 경우를 설명하였지만, 이에 한정되지 않고 다양한 분할 방식의 지원 조합이 가능할 수 있다. 예를 들어, 쿼드 트리/바이너리 트리/쿼드 트리 + 바이너리 트리 등의 분할 방식이 사용될 수 있다. 이때, 기본의 분할 방식은 쿼드 트리 방식, 추가적인 분할 방식은 바이너리 트리 방식으로 설정할 수 있고, 추가적인 분할 방식의 지원 여부에 대한 정보가 묵시적으로 결정되거나 명시적으로 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함될 수 있다.
상기 예에서 부호화 블록의 크기 정보, 부호화 블록의 지원 범위, 최대 분할 깊이 등 분할에 관련된 정보는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위에 포함되거나 묵시적으로 결정될 수 있다. 정리하면, 최대 부호화 블록의 크기, 지원되는 블록의 범위, 최대 분할 깊이 등에 의해 허용 가능한 블록의 범위가 정해질 수 있다.
상기 과정을 통해 분할이 수행되어 획득되는 부호화 블록은 화면내 예측 또는 화면간 예측의 최대 크기로 설정될 수 있다. 즉, 블록 분할이 끝난 부호화 블록은 화면내 예측 또는 화면간 예측을 위해 예측 블록의 분할의 시작 크기일 수 있다. 예를 들어, 부호화 블록이 2M×2N일 경우 예측 블록은 그보다 같거나 작은 2M×2N, M×N의 크기를 가질 수 있다. 또는, 2M×2N, 2M×N, M×2N, M×N의 크기를 가질 수 있다. 또는, 부호화 블록와 동일한 크기로 2M×2N의 크기를 가질 수 있다. 이때, 부호화 블록과 예측 블록이 동일한 크기를 갖는다는 것은 예측 블록의 분할을 수행하지 않고 부호화 블록의 분할을 통해 획득된 크기로 예측을 수행한다는 것을 의미할 수 있다. 즉, 예측 블록을 위한 분할 정보는 생성되지 않는다는 것을 의미한다. 이와 같은 설정은 변환 블록에도 적용될 수 있으며 분할된 부호화 블록 단위로 변환을 수행할 수도 있다.
다음과 같은 부/복호화 설정에 따라 다양한 구성이 가능할 수 있다. 예를 들어, (부호화 블록이 결정된 후) 부호화 블록에 기반하여 적어도 하나의 예측 블록과 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록을 획득할 수 있고, 부호화 블록에 기반하여 적어도 하나의 변환 블록을 획득할 수 있다. 또는, 부호화 블록과 동일한 크기의 하나의 예측 블록과 하나의 변환 블록을 획득할 수 있다. 상기 예에서 적어도 하나의 블록이 획득되는 경우는 각 블록의 분할 정보가 발생(생성)할 수 있고, 하나의 블록이 획득되는 경우는 각 블록의 분할 정보는 발생하지 않는다.
상기 결과에 따라 획득되는 다양한 크기의 정사각 또는 직사각 형태의 블록이 화면내 예측, 화면간 예측에 사용되는 블록일 수 있고, 잔차 성분에 대한 변환, 양자화에 사용되는 블록일 수 있다.
도 3은 본 발명의 일 실시예에 따른 영상 복호화 장치에 대한 구성도이다.
도 3을 참조하면, 영상 복호화 장치(30)는, 엔트로피 복호화부(305), 예측부(310), 역양자화부(315), 역변환부(320), 가감산기(325), 필터(330), 복호화 픽쳐 버퍼(335)를 포함하여 구성될 수 있다.
또한, 예측부(310)는 다시 화면내 예측 모듈 및 화면간 예측 모듈을 포함하여 구성될 수 있다.
엔트로피 복호화부(305)는 영상 부호화 장치(20)로부터 전달된 비트스트림으로부터 양자화 계수열, 변환 계수열, 또는 신호열 등을 수신하고 이를 엔트로피 복호화 기법(CABAC, CAVLC 등)을 이용하여 복호화할 수 있고, 복호화 정보에 관한 구문 요소를 수신하여 획득된 데이터는 예측부(310)로 전달할 수 있다.
예측부(310)는 엔트로피 복호화부(305)로부터 전달된 데이터들에 기초하여 예측 블록을 생성할 수 있다. 예측부(310)은 앞서 설명한 영상 부호화 장치(20)의 예측부(200)과 동일한 과정을 수행한다.
역양자화부(315)는 비트스트림으로 제공되어 엔트로피 복호화부(305)에 의해 복호화된 양자화된 변환 계수들을 역양자화할 수 있다.
역변환부(320)는 역 DCT, 역 정수 변환 또는 그와 유사한 개념의 역변환 기법들을 변환 계수에 적용하여 잔차 블록을 생성할 수 있다.
이때, 역양자화부(315), 역변환부(320)는 앞서 설명한 영상 부호화 장치(20)의 변환부(210) 및 양자화부(215)에서 수행한 과정을 역으로 수행하며 다양한 방법으로 구현될 수 있다. 예를 들어, 변환부(210) 및 양자화부(215)와 공유하는 동일한 과정 및 역변환을 사용할 수도 있고, 영상 부호화 장치(20)로부터 변환 및 양자화 과정에 관한 정보(예를 들면, 변환 크기, 변환 모양, 양자화 타입 등)를 이용하여 변환 및 양자화 과정을 역으로 수행할 수 있다.
역양자화 및 역변환 과정을 거친 잔차 블록은 예측부(310)에 의해 도출된 예측 블록과 가산되어 복원된 영상 블록이 생성될 수 있다. 이러한 가산은 가감산기(325)에 의해 이루어 질 수 있다.
필터(330)는 복원된 영상 블록에 대하여, 필요에 따라 블로킹(blocking) 현상을 제거하기 위하여 디블로킹 필터를 적용할 수도 있고, 상기 복호화 과정 전 후에 다른 루프 필터들을 비디오 품질을 향상시키기 위해 추가로 사용할 수도 있다.
복원 및 필터를 거친 영상 블록은 복호화 픽쳐 버퍼(335)에 저장될 수 있다.
영상 복호화 장치(30)는 도면에는 도시하지 않았으나 분할부를 더 포함할 수 있으며, 이때 분할부는 픽쳐 분할부와 블록 분할부로 구성될 수 있다. 분할부에 대해서는 도 2에 따른 영상 부호화 장치에서와 동일 또는 상응하는 구성으로 통상의 기술자가 용이하게 이해할 수 있으므로 구체적인 설명은 생략한다.
도 4는 본 발명의 일 실시예에 따른 비트 심도를 설명하기 위한 개념도이다.
비트 심도는 하나의 화소를 표현하는 화소값(pixel value)이 가질 수 있는 갯수를 나타내는 단위로서, 비트 심도가 n비트(bit)인 경우 2n 개의 화소값을 표현할 수 있다. 따라서, 화소값의 범위는 비트 심도에 따라 정해지며 비트 심도가 커질수록 표현할 수 있는 화소는 더 다양해져 선명도를 높일 수 있다.
본 발명에서의 비트 심도는 컬러 성분에 따라 복수의 비트 심도가 지원될 수 있다. 여기서 복수의 비트 심도는 외부 비트 심도(External Bit Depth. 또는 제 1 비트 심도)와 내부 비트 심도(Internal Bit Depth. 또는, 제 2 비트 심도)로 구분될 수 있다.
여기서 외부 비트 심도는, 부/복호화 정보를 설정(또는 생성)하는 단계에서 결정되는 비트 심도일 수 있고, 내부 비트 심도는 외부 비트 심도와는 별도로 부/복호화를 수행하는 과정에서 사용되는 심도일 수 있다. 일반적으로 외부 비트 심도는 내부 비트 심도와 동일한 값을 가지며 기본 비트 심도로 설정될 수 있으나, 본 발명에서는 외부 비트 심도와 구별되는 내부 비트 심도를 추가로 사용할 수 있다.
외부 비트 심도와 다른 값을 갖는 내부 비트 심도가 지원이 되며 내부 비트 심도의 사용이 결정될 경우 내부 비트 심도를 기본 비트 심도로 설정하여 부/복호화를 수행할 수 있다. 또는, 외부 비트 심도의 사용만 결정될 경우 외부 비트 심도를 기본 비트 심도로 설정하여 부/복호화를 수행할 수 있다. 내부 비트 심도의 사용에 대한 허용 여부 및 내부 비트 심도의 사용 여부는 시퀀스, 픽쳐, 슬라이스, 타일 등의 단위로 비트스트림에 수록되어 전송될 수 있으며, 복호화 장치는 수록된 정보를 파싱하여 내부 비트 심도의 사용 여부, 허용 여부에 관한 정보를 복원할 수 있다.
한편, 외부 비트 심도와 구별되는 내부 비트 심도를 사용할 경우, 내부 비트 심도는 외부 비트 심도와 적어도 1 bit의 차이를 가질 수 있으며, 더 바람직하게 내부 비트 심도는 외부 비트 심도보다 큰 값으로 설정할 수 있다. 즉, 외부 비트 심도와 별도로 더 넓은 범위의 화소값을 표현하는 내부 비트 심도를 사용하면, 부/복호화를 수행하는 과정에서 발생하는 라운딩 에러를 줄일 수 있어 부/복호화 성능을 향상시킬 수 있다.
따라서, 도 4를 참조하여 내부 비트 심도의 활용례를 설명하면, 영상 부호화 장치가 부호화할 입력 영상은 소정의 비트 심도에 기반하여 구성된 영상일 수 있다. 이때, 입력 영상이 구성된 비트 심도를 앞에서 설명한 외부 비트 심도로 지칭하면, 영상 부호화 장치는 외부 비트 심도로 구성된 입력 영상을 외부 비트 심도와 구별되는(특히 더 큰 비트 값을 갖는) 내부 비트 심도로 변환(40)할 수 있다. 다음으로, 내부 비트 심도로 변환된 입력 영상을 내부 비트 심도에 기초하여 부호화(41)하고, 내부 비트 심도에 따라 부호화하여 획득된 영상 데이터를 다시 외부 비트 심도로 변환하여 비트 스트림을 생성(42)할 수 있다.
본 발명의 일 실시예에 따른 영상 복호화 장치는 영상 부호화 장치로부터 비트 스트림이 수신되면, 수신된 비트 스트림을 구성하는 영상 데이터를 내부 비트 심도로 변환하고(43), 내부 비트 심도에 기초하여 복호화를 수행(44)할 수 있다. 다음으로, 내부 비트 심도에 따라 복호화된 영상 데이터를 다시 외부 비트 심도로 변환(45)하여 최종적으로 복호화된 영상을 획득할 수 있다.
여기서 외부 비트 심도에서 내부 비트 심도로의 변환(41)은 외부 비트 심도가 n 비트이고 내부 비트 심도를 m 비트로 지칭할 때, n비트에서 m비트로 쉬프트(Shift) 연산을 통해 수행될 수 있다. 또한, 내부 비트 심도에서 외부 비트 심도로의 역변환(42)은 m비트에서 n비트로 라운드(Round) 연산을 통해 수행될 수 있다. 또한, 상기 연산 과정 외의 다른 전처리/후처리 과정을 통해 수행될 수 있다.
내부 비트 심도는, 화면내 또는 화면간 예측 과정, 변환 및 양자화 과정, 역양자화 및 역변환 과정, 인루프 필터링 과정, 엔트로피 부/복호화 과정 등의 영상 부/복호화 과정 중 적어도 하나에서 적용될 수 있다. 따라서, 외부 비트 심도와 내부 비트 심도 상호간의 변환은, 도 2 또는 도 3에 따른 예측부, 변환부 및 양자화부, 역양자화부 및 역변환부, 인루프 필터부(또는 필터부), 엔트로피 부/복호화부의 전 또는 후 단계에서 수행될 수 있다. 구체적으로 예를 들면, 입력 영상이 감산부로 입력 되기 전에 외부 비트 심도에서 내부 비트 심도로 변환될 수 있고, 출력 영상으로 출력 되기 전에 내부 비트 심도에서 외부 비트 심도로의 변환이 수행될 수 있다. 또한, 복원 영상이 메모리에 저장될 때 내부 비트 심도에서 외부 비트 심도로 변환될 수 있고, 복원 영상이 메모리에서 예측부에 참조될 때 외부 비트 심도에서 내부 비트 심도로 변환될 수 있다. 또는, 감산부에서 획득된 차분 블록이 도 2의 변환부(210)에서 변환되기 전에, 외부 비트 심도에서 내부 비트 심도로 변환될 수 있고, 변환부(210)에서 변환된 후, 내부 비트 심도에서 외부 비트 심도로 변환될 수 있다. 또는, 도 2의 역변환부(225)에서 역변환되기 전에 외부 비트 심도에서 내부 비트 심도로 변환될 수 있고, 역변환부(225)에서 역변환된 후에 내부 비트 심도에서 외부 비트 심도로 변환될 수 있다.
또한, 본 발명의 일 실시예에 따른 내부 비트 심도는 하나 이상 사용될 수 있다. 예를 들어, 부/복호화를 수행하는 과정 중 일부는 제1 내부 비트 심도가 적용될 수 있고, 나머지는 제 2 내부 비트 심도가 적용될 수 있다.
부/복호화기의 설정에 따라 외부 비트 심도와 내부 비트 심도는 명시적으로 정해지는 정보일 수 있다. 또한, 외부 비트 심도는 명시적(Explicit)으로, 내부 비트 심도는 묵시적(Implicit)으로 정해지는 정보일 수 있다. 이때, '명시적'이라는 의미는 부호화 장치와 복호화 장치가 해당 정보를 서로 송수신하는 것을 의미하고, '묵시적'이라는 의미는 복호화 장치와 부호화 장치가 해당 정보를 송수신하지 않고 미리 설정된 값을 사용한다는 의미일 수 있다.
외부 비트 심도를 나타내는 정보(또는 구문 요소)는, 외부 비트 심도에 대한 비트 값이 사용되거나, 외부 비트 심도의 비트 값과 미리 설정된 값 사이의 차분값이 사용될 수 있다.
내부 비트 심도를 나타내는 정보(또는 구문 요소)는, 내부 비트 심도에 대한 비트 값이 사용되거나, 내부 비트 심도의 비트 값과 미리 설정된 값 사이의 차분값이 사용될 수 있다. 또한, 내부 비트 심도와 외부 비트 심도 사이의 차분값이 내부 비트 심도를 나타내는 정보로 사용될 수 있다.
여기서 상기 구문 요소를 나타내는 정보는 다양한 이진화 방법(고정 길이 이진화<fixed length binarization>, 단항 이진화<unary binariation>, Rice 이진화<truncated rice>, k-th order exp-golomb 등)으로 부/복호화될 수 있다.
외부 비트 심도와 내부 비트 심도의 비트 값은 다양한 범위를 가질 수 있다. 이때, 내부 비트 심도의 비트 값이 갖는 범위는 외부 비트 심도의 비트 값이 갖는 범위와 같거나 더 넓을 수 있으며, 외부 비트 심도의 비트 값이 갖는 범위의 비트값보다 더 큰 비트 값을 갖는 범위에서 선택될 수 있다. 예를 들어, 외부 비트 심도의 비트 값이 8 비트와 16 비트 사이에서 선택될 수 있다면, 내부 비트 심도의 비트 값은 8비트와 16비트 사이(외부 비트 심도와 동일한 범위)에서 선택되거나, 10비트와 16 비트 사이 또는 10비트와 18비트 사이(외부 비트 심도보다 더 큰 비트값을 갖는 범위)에서 선택될 수 있다.
여기서는 하나의 컬러 성분에 적용되는 것을 전제로 설명하였으나, 컬러 성분에 따라 상기 예의 일부 또는 전부가 동일하거나 다른 설정이 적용될 수 있고, 다양하게 변형 및 확장될 수 있다. 또한, 공간적, 시간적, 화질적 확장성/호환성 등을 위한 계층적 부/복호화 방식(HDR/WCG, Scalable Video Coding 등)을 기준으로 할때, 계층 식별자에 의해 구분되는 기본 계층(Base Layer)에 속하는 영상과 향상 계층(Enhancement layer)에 속하는 영상 중 기본 계층에 속하는 영상에 적용되는 것을 전제로 설명하였으나, 상기 예의 일부 또는 전부가 동일하거나 다른 설정이 가능하며 다양하게 변형 및 확장될 수 있다. 또한, 계층에 따라 의존성/독립성을 갖는 설정은 부/복호화의 설정 하에 결정될 수 있다. 상기 기본 계층과 향상 계층은 부/복호화기의 설정에 따라 별도의 부/복호화 구성이 차이가 있을 수 있으며, 그에 따른 상기 예의 변경되는 구성 또한 이해될 수 있다. 이는 전술한 비트 심도뿐만 아니라 후술하는 적응적 화소값 조정 과정을 포함하여 본 발명에 전체적으로 적용되는 설명일 수 있다. 후술하는 예에서는 설명의 편의를 위해, 외부 비트 심도는 내부 비트 심도와 동일한 값을 가지며 기본 비트 심도로 설정되는 경우를 중심으로 설명한다.
비트 심도(bit_depth)에 따라 지원되는 화소값의 범위는 각 컬러 포맷, 성분 등에 따라 0부터 2bit_depth - 1까지의 범위를 가질 수 있거나, -2bit_depth-1부터 2bit_depth-1 - 1까지의 범위를 가질 수 있다. 이하에서는 0부터 2bit_depth - 1까지의 범위를 갖는 것을 기준으로 설명한다. 또한, 화소값의 범위는 공간 영역에서의 범위를 의미할 수 있다.
도 5는 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 예시도이다.
영상 부/복호화 과정에서는 입력되는 화소값이 출력되는 화소값과 다른 경우가 발생할 수 있다. 때로는 허용되는 화소값의 범위를 벗어나는 경우가 발생하기도 하는데 이러한 연산상의 오류로 인한 왜곡을 방지하기 위해 화소값 조정 과정(Adjustment)이 수행될 수 있다. 화소값 조정 방법은 화소값의 범위를 넘는 화소값을 화소값의 범위 내로 조절하는 과정으로서, 클리핑(Clipping)으로 지칭할 수도 있다.
Figure PCTKR2018003350-appb-T000001
상기 표 1은 화소값 조정이 수행되는 클리핑 함수(Clip_x)에 대한 예시 코드이다. 표1을 참조하면, 입력 화소값(pixel_val)과 허용되는 화소값 범위의 최소값(minI)과 최대값(maxI)이 클리핑 함수(Clip_x)의 파라미터로 입력될 수 있다. 이때, 비트 심도(bit_depth)를 기준으로 설명하면, 최소값(minI)은 0으로, 최대값(maxI)은 2bit_depth - 1일 수 있다. 클리핑 함수(Clip_x)가 수행되면, 최소값(minI, 파라미터 B)보다 작은 입력 화소값(pixel_val, 파라미터 A)은 최소값(minI)으로 변경되고, 최대값(maxI, 파라미터 C)보다 큰 입력 화소값은 최대값(maxI)으로 변경될 수 있다. 따라서, 화소값 조정이 완료된 출력값(output)이 반환되면, 출력값(output)은 화소값 조정이 완료된 출력 화소값(pixel_val')으로 저장될 수 있다.
이때, 화소값이 갖는 범위는 비트 심도에 따라 결정되지만, 실제 영상(픽쳐, 슬라이스, 타일, 블록 등의 단위를 가질 수 있다)을 구성하는 화소값은 영상의 종류와 특성이 다르므로 반드시 모든 화소값 범위 내에서 발생하는 것이 아니다. 예를 들어, 일부 영상에서는 높은 화소값을 갖는 화소들로 구성될 수도 있고, 일부 영상에서는 넓은 범위에 고른 화소값을 갖는 화소들로 구성될 수도 있다. 따라서, 본 발명의 일 실시예에 따르면, 실제 영상을 구성하는 화소값의 범위를 참조하여 영상 부/복호화 과정에서 활용할 수 있다.
예를 들어, 상기 표 1에 따른 화소값 조정 방법에서도 클리핑 함수의 최소값(minI)을 실제 영상을 구성하는 화소값 중 가장 작은 값으로 사용할 수 있고, 클리핑 함수의 최대값(maxI)은 실제 영상을 구성하는 화소값 중 가장 큰 값을 사용할 수 있다. 따라서, 실제 영상을 구성하는 화소값이 비트 심도(bit_depth)를 기준으로 0과 2bit_depth - 1 사이에 있다고 전제하면, 클리핑 함수의 최소값은 0과 같거나 큰 값일 수 있고, 클리핑 함수의 최대값은 2bit_depth - 1와 같거나 작은 값일 수 있다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 화소값 조정 방법은 비트 심도에 기초한 화소값 조정 방법(52) 및/또는 실제 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법(54)을 포함할 수 있다.
여기서, 비트 심도에 기초한 화소값 조정 방법(52)은 화소값의 왜곡을 방지하기 위한 목적으로, 비트 심도에 따라 결정되는 화소값 범위의 최대값과 최소값을 이용한 방법일 수 있다. 비트 심도에 기초한 화소값 조정 방법(52)의 예를 들면, 기본 비트 심도가 8비트인 경우, 비트 심도에 따른 화소값은 0과 255 사이의 값을 가지므로, 입력 화소값이 0보다 작을 때는 0으로, 255보다 클 때는 255로 조정될 수 있다.
여기서, 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 방법(54)은 부/복호화 성능 향상을 위한 목적으로, 실제 영상을 구성하는 화소값의 최대값과 최소값을 이용한 방법일 수 있다. 또한, 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 방법(54)은 손실 없는 화소값 조정 방법(54a)과 손실 있는 화소값 조정 방법(54b)으로 구분될 수 있다.
이때, 손실 없는 화소값 조정 방법(54a)은 실제 영상을 구성하는 화소값의 최대값과 최소값을 그대로 사용한 방법일 수 있다. 손실 없는 화소값 조정 방법(54a)의 예를 들면, 기본 비트 심도가 8비트이고, 실제 영상을 구성하는 화소값이 0과 200 사이의 값을 갖는 경우, 입력 화소값이 0보다 작을 때는 0으로, 200보다 클 때는 200으로 조정될 수 있다.
손실 있는 화소값 조정 방법(54b)은 실제 영상을 구성하는 화소값의 최대값 및 최소값에 근사한 값들을 사용한 방법일 수 있다. 구체적으로, 화소값의 범위는 일정한 화소값 간격을 갖는 복수의 대역으로 분리할 수 있고, 이때, 복수의 대역을 2k 개로 정의할 수 있는 변수 k를 설정할 수 있다. 이때, k를 3으로 설정하고, 기본 비트 심도가 8일 때의 화소값 범위(0~255 사이)에 대해 23개의 대역으로 화소값의 범위를 분리하면, 하나의 대역은 25 의 화소값 간격을 가질 수 있다. 이러한 상태를 전제로 하여 실제 영상을 구성하는 화소값의 최대값과 최소값이 어느 대역에 속해있는지 지시하는 정보를 이용하여 손실 있는 화소값 조정이 수행될 수 있다. 즉, 실제 영상을 구성하는 화소값의 최소값이 33이고, 최대값이 220이면, 33이 속해있는 대역의 대표값(예를 들면 32)을 화소값 조정을 위한 최소값으로 사용하고, 최대값이 속해있는 대역의 대표값(예를 들면 224)을 화소값 조정을 위한 최대값으로 사용할 수 있다. 이때, 대표값은 각 대역마다 미리 설정될 수 있다. 또한, 여기서 화소값의 범위를 나누는 대역의 개수를 지정하는 변수 k는 부호화 과정에서 명시적으로 생성하여 복호화 장치로 전송될 수 있다. 또한, 하나의 대역을 구성하는 화소값 간격은 균등할 수도 있으나 비균등하게 구성할 수도 있다.
따라서, 도 5에 따른 화소값 조정 방법들(52, 54, 54a, 54b)은 부/복호화 설정에 따라 적어도 하나 이상 지원될 수 있다. 따라서, 도 5에 따른 화소값 조정 방법들 중에서 실제 영상이나 부호화 장치 및 복호화 장치의 성능 등에 따라 적어도 하나의 방법이 적응적으로 선택되어 부호화 및/또는 복호화 과정에서 적용될 수 있다. 적응적인 화소값 조정 과정 지원 여부 및 화소값 조정 과정 선택 정보는 시퀀스, 픽쳐, 슬라이스, 타일, 블록 등의 단위로 비트스트림에 수록되어 복호화 장치로 전송될 수 있으며, 복호화 장치는 수신된 비트스트림에서 해당 정보를 복원할 수 있다.
또한, 적응적인 화소값 조정 과정은 부/복호화기의 설정에 따라 지원 여부가 묵시적으로 결정될 수 있다. 예를 들어, 양자화 파라미터가 0일 때(본 예에서 무손실 부호화. 즉, 변환, 양자화, 그 역과정, 인루프 필터부 등이 수행되지 않을 때) 적응적인 화소값 조정은 지원되지 않으며 비트 심도에 기초한 화소값 조정 과정이 묵시적으로 선택되어 부/복호화가 진행될 수 있다.
영상(본 예에서 픽쳐 단위)에서는 화소값 조정 과정 지원 여부 및 적어도 하나의 화소값 조정 과정 선택 정보를 생성할 수 있으며, 화소값 조정 과정에 적용되는 적어도 하나의 화소값 범위 정보를 생성할 수 있다. 예를 들어, 하나의 화소값 범위 정보를 생성할 경우 상위 단위(예를 들어, 시퀀스, 픽쳐 등)에서 관련 정보를 생성할 수 있다. 또는, 하나의 화소값 범위 정보를 생성할 경우 첫번째 하위 단위(예를 들어, 픽쳐, 타일, 슬라이스 등. 즉, 하나의 상위 단위 내에 적어도 하나의 하위 단위가 존재할 경우 그 중 첫번째)에서 관련 정보를 생성할 수 있다. 둘 이상의 화소값 범위 정보를 생성할 경우 상위 단위에서 관련 정보를 생성할 수 있다. 또는, 둘 이상의 화소값 범위 정보를 생성할 경우 둘 이상의 하위 단위에서 관련 정보를 생성할 수 있다.
본 발명의 일 실시예에 따른 적응적 화소값 조정 과정은 예측부, 변환부, 양자화부, 역양자화부, 역변환부, 인루프 필터부, 메모리 등의 부/복호화 과정에 적용될 수 있다. 예를 들어, 화소값 조정 방법에서의 입력 화소는 예측 과정에서의 참조 화소(Reference Sample) 또는 예측 화소(Prediction Sample)일 수 있고, 변환, 양자화, 역변환, 역양자화 과정에서의 복원 화소(Reconstructed Sample)일 수 있다. 또한, 인루프 필터 과정에서의 복원 화소일 수 있고, 메모리에서의 저장 화소(Storage Sample)일 수 있다. 이때, 변환과 양자화, 그 역 과정에서의 복원 화소는 인루프 필터 적용 전의 복원 화소를 의미할 수 있다. 인루프 필터에서의 복원 화소는 인루프 필터 적용 후의 복원 화소를 의미할 수 있다. 디블록킹 필터 과정에서의 복원 화소는 디블록킹 필터 적용 후의 복원 화소를 의미할 수 있다. SAO 과정에서의 복원 화소는 SAO 적용 후의 복원 화소를 의미할 수 있다. ALF 과정에서의 복원 화소는 ALF 적용 후의 복원 화소를 의미할 수 있다. 위와 같이 다양한 경우에 대한 예시를 설명하였으나, 이에 한정되지 않고 화소값 조정 과정이 호출되는 모든 부/복호화 과정의 입력, 중간, 출력 단계에서 적용될 수 있다.
추가로 도 4에 따른 외부 비트 심도와 내부 비트 심도를 사용할 경우에 대하여 적응적 화소값 조정에 대한 예를 들면 다음과 같다.
일 예로, 외부 비트 심도는 8비트, 내부 비트 심도는 12비트이며 비트 심도에 기초한 조정 방법(52, 본 예에서 최소값 0, 최대값 255. 8비트 기준)이 선택된 경우 외부 비트 심도가 기본 비트 심도로 적용된 디블록킹 필터 과정에서 생성된 복원 화소는 0보다 작을 때는 0으로, 255보다 클 때는 255로 조정할 수 있다.
일 예로, 외부 비트 심도는 10비트, 내부 비트 심도는 12비트(본 예에서 최소값 0, 최대값 4095. 12비트 기준)이며 비트 심도에 기초한 화소값 조정 방법(52, 본 예에서는 최소값 0, 최대값 1023. 10비트 기준)이 선택된 경우 내부 비트 심도가 기본 비트 심도로 적용되는 SAO 과정에서 생성된 복원 화소는 0보다 작을 때는 0으로, 4095보다 클 때는 4095로 조정할 수 있다.
일 예로, 외부 비트 심도는 8비트, 내부 비트 심도는 10비트이며 실제 영상을 구성하는 화소값 범위에 기초한 화소값 조정 과정(54a, 본 예에서는 최소값 0, 최대값 255. 8비트 기준)이 선택된 경우 외부 비트 심도가 기본 비트 심도로 적용이 되는 ALF 과정에서 생성된 복원 화소는 0보다 작을 때는 0으로, 255보다 클 때는 255으로 조정할 수 있다.
일 예로, 외부 비트 심도는 8비트, 내부 비트 심도는 12비트이며 실제 영상을 구성하는 화소값 범위에 기초한 화소값 조정 방법(54a, 본 예에서는 최소값 20, 최대값 220. 8비트 기준)이 선택되었으며 내부 비트 심도가 기본 비트 심도로 적용된 예측, 변환, 양자화, 역양자화, 역변환, 인루프 필터 과정에서 생성된 복원 화소는 320(20 << 4)보다 작을 때는 320으로, 3520(220 << 4)보다 클 때는 3520으로 조정할 수 있다.
화소값 조정 방법과 관련한 일부 실시예를 중심으로 설명하였으나, 이에 한정하지 않고 상기 예의 일부 또는 전부가 동일하거나 다른 설정이 가능하며 다양한 경우로 변형 및 확장이 가능할 수 있다.
도 6은 본 발명의 일 실시예에 따른 적응적 화소값 조정 방법에 대한 구문 요소를 생성하는 예시 소스 코드이다.
도 6을 참조하면, sps_adaptive_sample_range는 sps에서 적응적인 화소값 조정 과정 지원 여부를 지시하는 구문 요소일 수 있고, pps_adaptive_sample_range는 pps에서 적응적인 화소값 조정 과정 지원 여부를 지시하는 픽쳐 단위의 구문 요소일 수 있으며, 이 외의 단위(슬라이스, 타일, 블록 등)에서도 적응적인 화소값 조정 과정 지원 여부에 대한 구문 요소가 정의될 수 있다.
적응적인 화소값 조정 과정 지원 여부를 지시하는 구문 요소가 활성화된 경우(예를 들면, 구문 요소가 1이면, 적응적인 화소값 조정 과정을 지원하는 것을 의미)에는 시퀀스 단위(또는 픽쳐)에서 적어도 하나의 화소값 조정 과정을 지원하여 부/복호화를 수행할 수 있고, 도 5에 따른 화소값 조정 방법 중 어느 방법을 적용할 것인지를 선택하는 구문 요소(adaptive_sample_range_flag)를 추가로 생성할 수 있다.
적응적인 화소값 조정 과정 지원 여부를 지시하는 구문 요소가 비활성화된 경우(본 예에서 0이라 가정)에는 시퀀스 단위(또는 픽쳐)에서 미리 설정된 하나의 화소값 조정 과정을 포함하는 부/복호화를 수행할 수 있다. 또한, 컬러 성분에 따라 적응적인 화소값 조정 과정 지원 여부에 대한 구문 요소가 각 단위에서 정의될 수 있다. 또한, 부/복호화 설정(본 예에서 QP 등)에 따라 구문 요소가 생성되지 않을 수 있다.
adaptive_sample_range_flag는 pps에서 화소값 조정 방법 중 어느 방법을 적용할 것인지를 선택하는 구문 요소일 수 있으며, 이 외의 단위(시퀀스, 슬라이스, 타일, 블록 등)에서도 화소값 조정 방법을 선택하는 구문 요소가 정의될 수 있다. 상기 구문 요소는 적어도 하나의 단위(본 예에서 픽쳐, 슬라이스, 타일, 블록 등)에서 정의될 수 있거나 하나의 단위(본 예에서 픽쳐, 슬라이스, 타일, 블록 등 중 선택)에서만 정의될 수 있다.
화소값 조정 방법 중 어느 방법을 적용할 것인지를 선택하는 구문 요소(adaptive_sample_range_flag)는 둘 이상의 화소값 조정 과정에 대한 후보군을 두어 그 중 선택할 수 있다. 상기 구문 요소(adaptive_sample_range_flag)를 참조하여 도 5에 따른 비트 심도에 기초한 화소값 조정 방법(52)이 선택되면, 영상(본 예에서 픽쳐 단위)에서 비트 심도에 따라 결정되는 휘도 성분의 최소값, 최대값, 색차 성분의 최소값, 최대값 등이 화소값 범위 정보로 설정될 수 있다.
또한, 상기 구문 요소(adaptive_sample_range_flag)를 참조하여 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 방법(54)이 선택되면 영상(본 예에서 픽쳐 단위)에서 상기 화소값 범위 정보로 luma_lower_bound, luma_upper_bound, chroma_lower_bound[i], chroma_upper_bound[i]에 대한 구문 요소(본 예에서 i는 색차 성분의 인덱스 값)가 정의될 수 있으며, 이와 같이 정의된 구문 요소에 의해 휘도 성분의 최소값, 최대값, 색차 성분의 최소값, 최대값 등이 화소값 범위 정보로 설정될 수 있다. 상기 외의 단위(슬라이스, 타일, 블록 등)에서도 화소값 범위 정보(본 예에서는 최소값, 최대값 등)에 대한 구문 요소가 정의될 수 있으며, 컬러 포맷 등에 따라 정의되는 구문 요소가 일부 변경 적용될 수 있다.
하나 이상의 단위(본 예에서 픽쳐, 슬라이스, 타일, 블록 등)에서 실제 영상을 구성하는 화소값의 범위 정보가 생성될 수 있으며, 상위 단위의 화소값 범위는 하위 단위의 화소값 범위를 포함할 수 있다. 예를 들어, 둘 이상의 단위(본 예에서 픽쳐, 슬라이스)에서 화소값 범위 정보가 생성되고 상위 단위(본 예에서 픽쳐)의 최소값과 최대값을 minH, maxH, 하위 단위(본 예에서 슬라이스)의 최소값과 최대값을 minL, maxL라 할 경우, minH는 minL보다 작거나 같을 수 있고 maxH는 maxL보다 크거나 같을 수 있다. 상위 단위(본 예에서는 픽쳐)는 둘 이상의 하위 단위(본 예에서는 픽쳐 내 2개의 슬라이스)를 포함할 경우, 상위 단위의 최소값과 최대값을 minH, maxH, 제 1 하위 단위(본 예에서 슬라이스)의 최소값과 최대값을 minL1, maxL1, 제 2 하위 단위(본 예에서 슬라이스)의 최소값과 최대값을 minL2, maxL2라 할 경우, minH는 minH1 또는 minH2보다 작거나 같을 수 있고 maxH는 maxH1 또는 maxH2보다 크거나 같을 수 있다. 상위 단위의 화소값 범위 정보는 비트 심도에 의해 정해지는 화소값 범위 정보에 기반하여 생성될 수 있으며, 하위 단위의 화소값 범위 정보는 상위 단위의 화소값 범위 정보에 기반하여 생성될 수 있다. 화소값 범위 정보 관련하여 최소값, 최대값 외의 추가적인 구문 요소가 정의될 수 있다.
한편, 실제 영상을 구성하는 화소값 범위를 지시하는 정보는 화소값 범위에 대한 최소값과 최대값을 포함할 수 있다. 이때, 화소값 범위 정보는 예측 없이 원본값(Original Value, 최소값과 최대값 자체) 관련 정보를 생성할 수 있다. 또는, 예측을 통해 그 차이값(Difference Value, 최소값과 최대값에 대하여 예측을 통해 결정된 예측값과 실제 최소값 또는 최대값 상호간의 차분값) 관련 정보를 생성할 수 있고, 예측에 사용되는 예측값(Prediction Value) 관련 정보 또한 생성할 수 있으며, 상기 언급된 정보는 하나 이상의 요인이 혼합 구성되어 표현될 수 있다.
원본값 관련 정보는 손실없는 원본값(Lossless Original Value)과 손실있는 원본값(Lossy Original Value)으로 구분될 수 있으며, 손실없는 원본값의 경우 영상의 화소값 범위 정보에 대해 그대로 나타낸 값일 수 있고, 손실있는 원본값의 경우 영상의 화소값 범위 정보에 대해 부/복호화 설정에 의해 허용되는 오차 범위를 갖는 값일 수 있다. 손실있는 원본값의 경우 상기 오차 범위 정보를 묵시적 또는 명시적인 처리를 할 수 있으며, 묵시적인 경우 관련 구문 요소 생성없이 기설정된 조건에 따라 오차 범위 정보를 생성할 수 있고, 명시적인 경우 관련 구문 요소 생성을 통해 오차 범위 정보를 생성할 수 있다.
차이값 관련 정보는 실제 영상을 구성하는 화소값 범위 정보(예를 들면 최대값, 최소값)와 예측을 통해 획득되는 화소값 범위 정보(예를 들면 최대값에 대한 예측값, 최소값에 대한 예측값) 사이의 차분값일 수 있거나, 예측을 통해 획득되는 화소값 범위 정보에 기반하여 생성되는 화소값일 수 있다. 차분값은 부호 있는 차이값 또는 부호 없는 차분값으로 구분될 수 있으며, 차분값 특성에 따라 구문 요소 설정(본 예에서 이진화 방법 등)이 정해질 수 있다.
예측값 관련 정보는 영상의 실제 영상을 구성하는 화소값의 범위를 구성하는 전체 또는 일부 성분(예를 들어, 최대값, 최소값 등)과 유사할 것으로 예상되는 정보일 수 있다. 따라서, 부/복호화가 완료된 적어도 하나의 영상의 화소값 범위, 앞서 부/복호화가 완료된 다른 화소값 범위, 다른 컬러 성분의 화소값 범위, 부/복호화기에서 기설정된 예측값 등이 예측값 관련 정보가 될 수 있다. 이때 기설정된 예측값의 경우 비트 심도에 따라 가변적일 수 있다.
예측에 사용되는 정보는 부/복호화 설정에 따라 묵시적 또는 명시적인 처리를 할 수 있으며, 묵시적인 경우 관련 구문 요소 생성없이 기설정된 조건에 따라 예측 관련 정보가 생성될 수 있으며, 명시적인 경우 관련 구문 요소 생성을 통해 예측 관련 정보를 생성할 수 있으며, 상기 정보를 통해 원본값 정보를 예측할 수 있다.
차이값 관련 정보와 예측값 관련 정보는 부/복호화 설정에 따라 다양한 이진화 방법(본 발명에서 언급된 이진화 방법과 그 외의 방법 등)을 통해 문맥 기반의 적응적인 이진 산술 방법(CABAC)을 적용할 수 있으며, 상기 설명에서 언급된 다양한 정보(본 예에서 문맥 정보로 고려)를 기반으로 문맥 모델링(Context Modeling)을 수행할 수 있다.
도 7은 실제 영상을 구성하는 화소값의 범위 정보를 생성하는 방법에 대한 예시도이다.
제1 실시예로서, 실제 영상을 구성하는 화소값의 범위 정보는 예측 없이 원본값에 따라 생성될 수 있다. 예를 들어, 현재 영상을 구성하는 화소값의 최소값(minc)과 최대값(maxc)을 비트 심도(n 비트로 정의)에 따라 고정 길이 이진화를 통해 n비트로 표현하고, n비트로 표현된 최대값과 최소값을 실제 영상을 구성하는 화소값의 범위 정보로 설정할 수 있다.
다만, 제1 실시예에 따른 화소값의 범위 정보에서 최소값(minc)과 최대값(maxc)을 지시하는 값은 실제 영상의 화소값의 최소값과 최대값과는 달리 표현될 수 있다. 예를 들어, 실제 영상을 구성하는 화소값의 최소값(minc) 및 최대값(maxc)이 10, 240일 때, 실제 영상을 구성하는 화소값의 최소값(minc)은 10 그대로 표현할 수도 있지만, 실제 영상을 구성하는 화소값의 최대값(maxc)은 비트 심도로 표현 가능한 화소값의 최대값(8비트 기준 255)과 실제 영상을 구성하는 화소값의 최대값(maxc) 사이의 차분값(255와 240 사이의 차분값인 15)으로 표현할 수 있다. 정리하면, 비트 심도에 기반하여 획득되는 전체 범위(0부터 255)에서 오름 차순으로 획득되는 값, 상기 최대값의 경우 내림 차순으로 획득되는 값으로 표현할 수 있다. 이와 같이 표현된 정보는 비트스트림에 수록하여 복호화 장치로 전송될 수 있고, 복호화 장치는 수신된 정보를 파싱하여 제1 실시예에 따른 화소값의 범위 정보를 복원할 수 있다. 이때, 실제 영상을 구성하는 화소값의 최대값이 앞에서 설명한 차분값(여기서는 15)으로 표현되었다면, 다시 비트 심도로 표현 가능한 화소값의 최대값(8비트 기준 255)에서 복원된 차분값(여기서는 15)을 뺌으로써 실제 영상을 구성하는 화소값의 최대값(여기서는 240)을 획득할 수 있다.
제2 실시예로, 실제 영상을 구성하는 화소값의 범위 정보는 실제 영상을 구성하는 화소값의 최대값(maxc)과 최소값(minc)이 속하는 대역 정보로 표현할 수 있다. 구체적으로, 비트 심도로 표현되는 화소값의 범위를 k값(미리 설정되거나 명시적으로 부호화 장치가 k값을 지시하는 정보를 생성하여 복호화 장치에 전송할 수도 있음)에 따라 결정되는 복수의 대역(본 예에서 2k개라 가정)으로 분할하고, 최대값(maxc)과 최소값(minc)이 속하는 대역을 지시하는 정보를 생성할 수 있다.
도 7을 참조하면, 미리 설정된 k값이 1이면, 비트 심도로 표현되는 화소값의 범위를 두개의 대역으로 분할할 수 있다. 같은 방법으로, k값이 2이면 4개, k값이 4이면 16개와 같이 2k개의 대역으로 화소값의 범위를 분할할 수 있다. 이때, 현재 영상(Current)을 구성하는 실제 화소값의 최대값과 최소값은 도 7에서 4번 대역과, 2k-3번 대역일 수 있다. 다만 최대값(maxc) 또는 최소값(minc)이 속하는 대역을 지시하는 번호는 0부터 설정할 수도 있으며 도 7과 같이 1부터 설정할 수도 있다. 또한, 최소값이 속하는 대역을 지시하는 정보는 도 7과 같이 4번 대역으로 결정할 수 있으나, 최대값이 속하는 대역을 지시하는 정보는 도 7과 같이 2k-3번 대역으로 결정하는 것뿐만 아니라, 대역의 총 개수(2k)와 최대값이 속하는 대역(2k-3번) 사이의 차분값(여기서는 3)으로 결정할 수도 있다.
따라서, 최대값(maxc)과 최소값(minc)이 속하는 대역을 지시하는 정보를 부호화 장치가 전송하면, 복호화 장치는 수신된 정보를 기초로 최대값(maxc) 과 최소값(minc)이 속하는 대역을 알 수 있다. 이때, 부호화 장치가 최대값(maxc) 또는 최소값(minc)이 속하는 대역 내에서 최대값(maxc) 또는 최소값(minc)의 위치를 지시하는 정보를 추가로 생성하여 전송할 수도 있고, 별도의 추가 정보를 생성하지 않을 수도 있다.
부호화 장치가 별도의 추가 정보(대역 내에서의 위치 정보)를 생성하지 않는 경우(손실있는 원본값), 복호화 장치는 최대값(maxc) 또는 최소값(minc)이 속하는 대역을 대표하는 대표값으로 최대값과 최소값을 결정할 수 있다. 이때, 대표값은 묵시적으로 미리 대역마다 설정된 값일 수 있고, 해당 대역을 이루는 최대값 또는 최소값에서부터 미리 설정된 거리, 해당 대역을 이루는 최대값이나 최소값일 수도 있다. 또한, 최소값(minc)이 속한 대역의 대표값은 대역을 이루는 가장 낮은 화소값으로, 최대값(maxc)이 속한 대역의 대표값은 대역을 이루는 가장 높은 화소값으로 설정될 수 있다.
부호화 장치가 별도의 추가 정보(대역 내에서의 위치 정보)를 생성하는 경우(손실없는 원본값), 복호화 장치는 최소값 또는 최대값의 대역 내 위치 정보를 활용하여 손실없이 정확히 대역 내 화소값을 특정할 수 있다. 여기서 별도의 추가 정보(대역 내에서의 위치 정보)는 최대값 또는 최소값을 대역의 폭(간격)으로 나눈 나머지값으로 설정할 수 있다. 구체적으로 예를 들면, 최대값이 50이고, 최대값 50이 속하는 대역의 폭이 14일 경우, 50을 14로 나눈 나머지값인 8을 추가 정보로 생성할 수 있다. 이때, 별도의 추가 정보를 포함하는 화소값 범위 정보(본 예에서 손실없는 원본값. minc, maxc)는 손실있는 원본값 설정에 따라 앞에서 설명한 별도의 추가 정보를 생성하지 않는 화소값 범위 정보로 변환될 수 있다.
제3 실시예로, 제1 실시예에 따른 화소값 범위 정보 중에서 부/복호화가 완료된 화소값 범위 정보에 기반하여 나머지 화소값 범위 정보를 생성할 수 있다. 예를 들어, 현재 영상을 구성하는 화소값의 최대값(maxc)을 현재 영상을 구성하는 화소값의 최소값(minc)에 대한 예측값으로 결정할 수 있다. 따라서, 부호화 장치는 최대값은 그대로 부호화하더라도, 최소값은 최대값과의 차분값을 부호화하여 복호화 장치로 전송할 수 있고, 복호화 장치는 최대값을 먼저 복호화한 후, 복호화된 최대값과 수신된 정보를 파싱하여 획득된 차분값을 더함으로써, 복호화된 최소값을 획득할 수 있다. 반대로, 현재 영상을 구성하는 화소값의 최소값을 현재 영상을 구성하는 화소값의 최대값에 대한 예측값으로 결정할 수도 있으며, 위와 상응하는 방식으로 부, 복호화될 수 있다.
한편, 현재 영상을 구성하는 최대값(maxc)과 최소값(minc) 사이의 차분값(maxc-minc)을 표현하는 비트 길이는, 부호화/복호화가 완료된 최소값(또는 최대값)과 비트 심도에 의해 표현되는 최대값(또는 최소값) 사이의 차분값(diff)을 기반으로 가변 길이 이진화가 수행되어 결정할 수 있다. 구체적으로, 부호화/복호화가 완료된 최소값(또는 최대값)과 비트 심도에 의해 표현되는 최대값(또는 최소값) 사이의 차분값(diff)이 아래의 수학식 1을 만족하는 경우, 아래의 수학식 1을 만족하는 k값을 비트 길이로 하여 이진화가 수행될 수 있다.
Figure PCTKR2018003350-appb-M000001
예를 들면, 비트 심도가 8비트인 경우 minc가 122(본 예에서 maxc는 200) 일 경우 비트 심도에 의해 표현되는 최대값(본 예에서 255)과의 차이값은 133이고, 수식에서 이를 만족하는 k는 8이다. 따라서, 현재 영상을 구성하는 화소값의 최대값과 최소값 사이의 차분값(|maxc - minc|, 본 예에서 78)은 minc와 비트 심도에 의해 표현되는 최대값과의 차이값 기반으로 결정되는 8비트(본 예에서 01001110)로 생성할 수 있으며, 앞서 부/복호화가 완료된 minc에 |maxc - minc|를 가산하여 maxc를 복원할 수 있다. 다른 예로, maxc가 120(본 예에서 minc는 10) 일 경우 비트 심도에 의해 표현되는 최소값(본 예에서 0)과의 차분값은 120이고, 수식에서 이를 만족하는 k는 7이다. 따라서, 화소값 범위의 차분값(|maxc - minc|, 본 예에서 110)은 maxc와 비트 심도에 의해 표현되는 최소값과의 차이값 기반으로 결정되는 7비트(본 예에서 1101110)로 생성할 수 있으며, 앞서 부/복호화가 완료된 maxc에 |maxc - minc|를 감산하여 minc를 복원할 수 있다. 본 예에서의 이진화는 일 예일 뿐 다른 이진화 방법 또한 적용이 가능하다.
제4 실시예로, 제2 실시예에 따라 부/복호화가 완료된 화소값 범위 정보에 기반하여 현재 영상의 화소값 범위 정보를 생성할 수 있다. 예를 들면, 제2 실시예에 따라 현재 영상을 구성하는 최대값이 속하는 대역 정보를 현재 영상을 구성하는 최소값이 속하는 대역 정보에 대한 예측값으로 사용할 수 있다. 반대로, 현재 영상을 구성하는 최소값이 속하는 대역 정보를 현재 영상을 구성하는 최대값이 속하는 대역 정보에 대한 예측값으로 사용할 수도 있다. 이때, 도출된 대역 정보와 대역 정보에 대한 예측값 사이의 차분값을 표현하는 비트 길이는, 최대값(또는 최소값)이 속하는 대역 정보 및 도 7과 같이 분할한 대역을 지시하는 대역(예를 들면, 1부터 2k) 중 최소값(또는 최대값) 사이의 차분값에 기반한 가변 길이 이진화에 의해 결정될 수 있다.
제5 실시예로, 부/복호화가 완료된 적어도 하나의 영상의 화소값 범위 정보를 예측값으로 두어 현재 영상의 화소값 범위 정보를 생성할 수 있다. 다시 도 7을 참조하면, 부/복호화가 완료된 적어도 하나의 다른 영상(predictor)을 구성하는 화소값의 최소값(minp) 및 최대값(maxp)을 예측값으로 하여 현재 영상(current)을 구성하는 화소값의 최소값(minc) 및 최대값(maxc)을 도출할 수 있다.
또한, 제 1 컬러 성분(본 예에서 루마 성분<또는 크로마 성분>)의 화소값 범위 정보가 제 2 컬러 성분(본 예에서 크로마 성분<또는 루마 성분 또는 다른 크로마 성분>)의 화소값 범위 정보의 예측에 사용될 수 있다. 상기 차이값 정보는 기설정된 범위를 벗어나지 않는 조건 하에 수행될 수 있다.
또한, 도 7과 같이 현재 영상의 최소값(minc) 및 최대값(maxc)이 속한 대역 정보는 부/복호화가 완료된 적어도 하나의 다른 영상(predictor)의 최소값(minp), 최대값(maxp)이 속한 대역 정보를 예측값으로 하여 도출할 수 있다. 특히, 적어도 하나의 다른 영상의 최대값과 최소값이 속한 대역 정보와 현재 영상의 최대값과 최소값이 속한 대역 정보가 동일하다면, 현재 영상을 구성하는 화소값의 최대값 및 최소값이 속하는 대역을 지시하는 대역 정보는 별도로 전송될 필요가 없다. 이러한 경우 복호화 장치는 부/복호화가 완료된 적어도 하나의 다른 영상으로부터 현재 영상을 구성하는 화소값의 최대값 및 최소값이 속하는 대역을 지시하는 대역 정보를 획득할 수 있다. 따라서, 부호화 장치는 대역 정보를 제외하고, 대역 내에서 최대값 또는 최소값의 위치 정보만 생성하여 복호화 장치로 전송할 수 있다.
또한, 부/복호화가 완료된 영상으로부터 화소값 범위 정보의 예측을 수행할 지에 대한 정보가 추가적으로 생성될 수 있다. 예를 들어, 부호화 장치는 현재 영상의 최대값 및 최소값이 속하는 대역 정보가 다른 영상의 최대값 및 최소값이 속하는 대역 정보와 동일하다면, 동일하다는 점을 지시(또는 예측가능하다고 지시)하는 플래그(또는 구문 요소)를 추가로 생성할 수 있다. 복호화 장치는 부호화 장치에서 추가로 생성된 상기 플래그를 수신하고 수신된 플래그가 활성화(예를 들면 1)되어 있다면, 부/복호화가 완료된 영상을 구성하는 화소값의 범위 정보(최대값과 최소값이 속하는 대역에 대한 정보 및 대역 내 위치 정보)를 이용하여 예측을 수행하여 현재 영상의 대역 정보를 획득하고, 현재 영상의 대역 내 위치 정보는 부호화 장치로부터 별도로 수신함으로써 획득할 수 있다.
도 7을 참조하면, 비트 심도가 8비트일 때 설정되는 전체 화소값 범위(0부터 255)에 대하여 2k개의 대역으로 분할할 수 있고, 이때, 분할된 대역 중 하나에 현재 영상(Current)과 부/복호화가 완료된 다른 영상(Predictor)의 최대값과 최소값이 속할 수 있다. 도 7의 도면기호 70을 참조하면, 현재 영상을 구성하는 화소의 최소값(minc)이 4번 대역에 속하고, 다른 영상을 구성하는 화소의 최소값(minp)이 4번 대역에 속하는 것을 확인할 수 있다. 도 7의 도면기호 72를 참조하면, 현재 영상을 구성하는 화소의 최대값(maxc)이 2k-3번 대역에 속하고, 다른 영상을 구성하는 화소의 최소값(maxp)이 2k-3번 대역에 속하는 것을 확인할 수 있다. 이처럼 현재 영상을 구성하는 화소의 최대/최소값이 다른 영상을 구성하는 화소의 최대/최소값과 같은 대역에 속해있는 경우, 현재 영상의 최대값과 최소값이 속하는 대역(즉, 대역 정보)은 다른 영상의 최대값 및 최소값이 속하는 대역을 통해 알 수 있다(또는 예측할 수 있다). 따라서, 부호화 장치는 다른 영상의 대역 정보를 통해 예측이 가능하다는 것을 지시하는 1비트의 값과, 대역 내에서의 위치 정보를 파악하기 위해 현재 영상의 최대/최소값이 속하는 대역 내에서의 위치 정보(본 예에서4비트)를 생성할 수 있다. 여기서 대역 내에서의 위치 정보는 현재 영상의 최대값 또는 최소값을 대역의 개수로 나눈 나머지값으로 결정할 수 있다.
더 구체적인 사례를 들면, k가 4일 때 화소들은 24개(여기서 대역 하나의 간격은 24)의 대역으로 분류할 수 있다. 현재 영상의 최소 화소값(minc), 최대 화소값(maxc)은 55, 211일 때 대역 4, 대역 14에 포함되며, 다른 영상으로부터 획득된 minp, maxp는 49, 221일 때 대역 4, 대역 14에 포함된다고 전제(즉, 다른 영상의 대역 정보와 현재 영상의 대역 정보가 동일한 경우)한다. 이러한 가정 하에서, 현재 영상의 최대값 및 최소값이 속하는 대역 정보가 다른 영상의 최대값 및 최소값이 속하는 대역 정보부터 예측되므로, minc, maxc가 속한 대역은 minp, maxp가 속한 대역 4, 대역 14에서 확인할 수 있다. 따라서, 현재 영상의 minc, maxc(55와 211을 그 자체로 보내면 00110111 과 11010011로 8비트)는 대역 정보(본 예에서 0011xxxx와 1101xxxx, 8비트 중 상위 4비트가 대역 정보에 해당)를 제외하고, 대역 내에서의 위치 정보(본 예에서 xxxx0111과 xxxx0011, 8비트 중 하위 4비트)만으로 표현될 수 있다.
또 다른 사례로, 비트 심도가 8비트이고 k가 4(본 예에서 16개 대역)일 때, 현재 영상의 minc, maxc는 8, 136으로 대역 1, 대역 9에 포함되며, minp, maxp는 29, 140으로 대역 2, 대역 9에 포함된다고 전제한다. 현재 영상의 화소값 범위 정보가 다른 영상으로부터 예측이 되며 각 구성요소별로 예측될 경우, minc는 minp가 속한 대역과 다른 대역에서 발생하여 예측이 수행되지 않고 maxc는 maxp가 속한 대역과 동일한 대역에 속하므로 예측이 수행될 수 있다. 이 때, minc는 원본값(본 예에서 00001000, 8) 또는 다른 방식으로 화소값 범위 정보를 생성하고, maxc는 maxp가 속한 대역 9에서 발생하므로, 대역 내 위치 정보{본 예에서 8(최대값 136을 대역의 개수인 16으로 나눈 나머지값이 대역 내 위치 정보가 됨). xxxx1000}로 화소값 범위 정보를 생성할 수 있다. 즉, 현재 영상을 구성하는 화소값의 최소값(minc)은 예측을 지시하는 플래그(구성요소별로 적용)인 0(1비트, 0이면 예측불가) 및 원본값 00001000(8비트)으로 최소값(minc)을 지시하는 정보를 생성할 수 있다. 현재 영상을 구성하는 화소값의 최대값(maxc)은 예측 플래그(구성요소별로 적용)인 1(1비트, 1이면 예측가능) 및 대역 내 위치 정보인 1000(8이므로 4비트로 표현)가 발생할 수 있다.
한편, 현재 영상을 구성하는 화소값의 최대값 및/또는 최소값이 속하는 대역이 부호화/복호화가 완료된 다른 영상을 구성하는 화소값의 최대값 및/또는 최소값이 속하는 대역과 동일하지 않은 경우에도, 대역 분할을 변경함으로써 예측을 통한 대역 정보 도출이 가능할 수 있다. 도 7의 도면기호 74를 참조하면, 대역 분할의 개수가 16인 경우(24,k=4)에서 현재 영상을 구성하는 화소값의 최소값이 속하는 대역이 3번이고, 부/복호화가 완료된 다른 영상을 구성하는 화소값의 최소값이 속하는 대역이 4번에 속하는 것을 확인할 수 있다. 즉, 도면기호 74에서 현재 영상을 구성하는 화소값의 최소값이 속하는 대역과 부/복호화가 완료된 다른 영상을 구성하는 화소값의 최소값이 속하는 대역은 상이하다. 다만, 이때 대역 분할의 개수를 23개(8개, k=3)로 변경한다면, 도면 기호 76과 같이, 현재 영상의 최소값과 다른 영상의 최소값이 같은 대역(2번 대역)에 속하게 되는 것을 확인할 수 있다. 따라서, 분할되는 대역의 개수를 변경(또는 낮춤)함으로써, 다른 영상의 대역 정보를 이용한 예측이 가능하다. 즉, 부호화 장치는 분할되는 대역의 개수를 결정하는 변수 k의 값을 1만큼 줄이도록 지시하는 정보를 예측 가능 여부를 지시하는 플래그에 추가로 포함하여 생성할 수 있다.
구체적인 예시로, 비트 심도가 8비트이고 k가 4(16개 대역)일 때, 상기 예에서의 minc, maxc, minp, maxp와 동일한 화소값과 대역을 가진다고 가정하자. 현재 영상의 화소값 범위 정보가 다른 영상으로부터 예측이 되며 각 구성요소별로 예측이 되고 대역 조정 과정을 통해 예측이 될 경우, minc는 minp가 속한 대역과 다른 대역에서 발생하여 바로 예측(본 예에서 k가 4일 때)이 수행될 수 없고, maxc는 maxp가 속한 대역과 동일한 대역에 속하므로 예측이 수행될 수 있다. maxc는 maxp가 속한 대역 9에서 발생하며 이에 대한 나머지 정보{본 예에서 8(136%16). xxxx1000}로 화소값 범위를 생성하며, minc는 k값의 조정 과정(본 예에서 k를 4에서 3으로 조정)을 거쳐 대역 1(k가 3일 때)에 포함되며, minp는 대역 1(k가 3일 때)에 포함된다. minc는 minp가 속한 대역과 동일한 대역에 속하므로 예측이 수행되며, 대역 내에서의 위치 정보{본 예에서 8(8%32), xxx01000}로 화소값 범위 정보를 생성할 수 있다. 즉, minc의 예측 플래그는 01(2비트), 나머지값 01000(5비트)가 발생할 수 있고, maxc의 예측 플래그는 1(1비트), 나머지값 1000(4비트)가 발생할 수 있다. 이 때, 추가적인 비트 단위의 예측 플래그는 특정 상황(본 예에서 k가 최초 값으로 예측이 되지 않을 경우 또는 업데이트된 k가 예측이 되지 않을 경우. 0)에서 발생할 수 있으며, 이는 기설정된 경계값{본 예에서 최초 k는 4이고 경계값은 2라고 가정. 이 때 가능한 예측 플래그는 1(k가 4일 때 예측가능), 01(k가 3일 때 예측가능), 001(k가 2일 때 예측가능), 000(예측하지 않음)}까지 발생할 수 있다. 상기 실시예에서의 k값, k값 조정 과정, k값의 경계값 등의 설정은 부/복호화 설정에 따라 결정될 수 있으며 관련 정보가 비트스트림에 수록되어 전송될 수 있다.
도 8은 부/복호화가 완료된 적어도 하나의 영상을 이용하여 현재 영상을 구성하는 화소값의 범위 정보를 획득하는 방법을 설명하기 위한 예시도이다.
도 8을 참조하면, T-2, T-1은 현재 영상(여기서는 픽쳐를 대상으로 설명) 이전에 부/복호화가 완료된 영상이며, T+1, T+2는 현재 영상 이후에 부/복호화가 완료된 영상이다. 또한, R_Info는 해당 영상을 구성하는 화소값의 범위 정보를 의미할 수 있다.
본 발명의 일 실시예에 따르면, 현재 픽쳐의 화소값 범위 정보는 현재 픽쳐 이전에 부/복호화가 완료된 적어도 하나의 영상(본 예에서, T-1, T-2)에서 참조될 수 있고, 현재 픽쳐 이후에 부/복호화가 완료된 적어도 하나의 영상(본 예에서, T+1, T+2)에서 참조될 수 있고, 현재 픽쳐의 이전, 이후에 부/복호화가 완료된 적어도 하나의 영상(본 예에서, T-2, T-1, T+1, T+2)에서 참조될 수 있다. 화소값 범위에 대한 정보 예측에 참조되는 영상들은 화면간 예측의 참조 픽쳐 리스트(L0, L1)에 포함된 영상일 수 있고, 현재 영상과 동일한 GOP 안에 위치한 영상들일 수 있고, 현재 영상의 시간적 계층(TemporalID)과 같거나 낮은 영상들일 수 있다. 참조되는 영상은 적어도 하나의 영상일 수 있으며, 이는 부/복호화기의 설정에 따라 정의될 수 있다. 기설정된 영상에서 참조될 수 있고 또는 하나 이상의 영상들로 후보군을 구성한 후 참조되는 영상을 결정하고 그에 따른 선택 정보를 생성할 수 있다.
또한, 화소값 범위 정보 예측에 참조를 할 수 없는 경우에는 다른 영상으로부터 화소값 범위 정보를 예측하지 않는 다른 방법(이전 실시예를 따르거나 추가적인 방법)을 사용할 수 있다. 예를 들어, GOP의 첫번째 영상, 임의 접근을 위한 영상{본 예에서는 IRAP(Intra Randam Access Point) 픽쳐} 등이 그에 해당할 수 있다.
R_Info(A)는 하나의 영상 화소값 범위 정보를 나타내며, 영상(A)의 최소값과 최대값에 대한 정보를 포함하여 현재 영상의 최소값과 최대값에 대한 예측값을 생성할 수 있다. R_Info(A,B,...)는 둘 이상(A, B 등)의 영상 화소값 범위 정보를 나타내며 대표 최소값과 대표 최대값에 대한 정보를 포함하여 현재 영상의 최소값과 최대값에 대한 예측값을 생성할 수 있으며, 대표 최소값과 최대값은 각 최소값과 최대값들의 평균(Average), 가중치 합(Weighted Sum), 중앙값(Median) 등의 방법을 사용하여 유도될 수 있다. 또는, 연속하는 영상들의 화소값 범위 정보의 기울기 정보나 변화량에 따른 추정을 통해 최소값과 최대값의 예측값을 유도할 수 있다. 화소값 범위 정보는 각 영상의 부/복호화가 수행되기 전의 화소값에서 획득될 수 있다.
예측을 수행할 지 여부는 부/복호화가 완료된 영상에서의 화소값 범위 정보에 기반하여 결정될 수 있다. 예를 들어, 둘 이상의 영상으로부터 현재 영상의 화소값 범위 정보 예측을 수행할 지는 영상들의 화소값 범위 정보의 유사성, 즉 영상(A)의 최소값, 최대값과 영상(B)의 최소값, 최대값의 유사성 확인 과정(본 예에서는 대역 정보에 기반한 비교)에 따라 결정될 수 있다.
일 예로, 비트 심도가 8비트이고 k는 4일 때 영상(A)을 구성하는 화소값의 최소값(minA), 최대값(maxA)는 40, 200일 때 대역 3, 대역 13에 포함되며, 영상(B)를 구성하는 화소값의 최소값(minB), 최대값(maxB)은 35, 206일 때 대역 3, 대역 13에 포함될 경우, 영상들의 화소값 범위에 대한 유사성이 존재하는 것으로 판단하고, 현재 영상에도 비슷한 유사성이 존재할 것으로 판단하여 화소값 범위 정보의 예측(본 예에서 화소값 범위 정보의 전부. 구성요소들에 함께 적용)을 수행할 수 있다.
일 예로, 비트 심도가 8비트이고 k는 4일 때 영상(A)을 구성하는 화소값의 최소값(minA), 최대값(maxA)은 40, 200일 때 대역 3, 대역 13에 포함되며, 영상(B)를 구성하는 화소값의 최소값(minB), 최대값(maxB)은 50, 205일 때 대역 4, 대역 13에 포함될 경우, 영상들의 화소값 범위에 대한 유사성이 일부 존재(max)하는 것으로 판단하고, 현재 영상에서 일부 화소값 범위에 유사성이 존재할 것으로 판단하여 화소값 범위 정보의 예측(본 예에서는 화소값 범위 정보의 일부. 구성요소별로 적용)을 수행할 수 있다.
일 예로, 비트 심도가 8비트이고 k는 3일 때 영상(A)을 구성하는 화소값의 최소값(minA), 최대값(maxA)는 40, 200일 때 대역 2, 대역 7에 포함되며, 영상(B)를 구성하는 화소값의 최소값(minB), 최대값(maxB)은 10, 255일 때 대역 1, 대역 8에 포함될 경우, 영상들의 화소값 범위에 대한 유사성이 존재하지 않는 것으로 판단하고, 현재 영상에서 화소값 범위에 유사성이 존재하지 않을 것으로 판단하여 화소값 범위 정보의 예측을 수행하지 않을 수 있다.
상기 실시예에서는 화소값 범위 정보 예측을 위해 유사성 확인 과정에 대한 예로 대역 정보 비교를 예로 들었지만 이를 포함하여 다양한 방법 및 과정에 의해 예측 수행 여부에 대한 판단을 할 수 있다.
한편, 도 5에서와 같이 비트 심도에 기초한 화소값 조정(52) 또는 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정(54)을 통해 화소값의 최소값과 최대값을 포함하는 화소값의 범위가 변경(결정 또는 정의)될 수 있으며, 추가적인 화소값 범위 정보 또한 변경(결정 또는 정의)될 수 있다. 예를 들면, 실제 영상을 구성하는 화소값의 최대값과 최소값이 변경될 수 있으며, 실제 영상을 구성하는 화소값의 중앙값 또한 변경될 수 있다.
도 5에서 비트 심도에 따른 화소값 조정 과정(52)에서 minI은 영상의 최소 화소값, maxI는 영상의 최대 화소값, I는 컬러 성분을 의미할 수 있고, medianI는 영상의 중앙 화소값을 의미할 수 있다. minI는 0, maxI은 (1 << bit_depth) - 1, medianI은 1 << (bit_depth - 1)일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다. 중앙값은 본 발명에서의 설명을 위한 하나의 용어일 뿐 영상의 부/복호화 과정에서 상기 화소값 조정 과정에 따라 변경(결정 또는 정의)될 수 있는 화소값 범위 정보를 나타내는 하나의 정보일 수 있다.
도 5에서 영상을 구성하는 실제 화소값의 범위에 따른 화소값 조정 과정(54a, 54b)에서 minI는 영상의 실제 최소 화소값(또는 근사한 값), maxI은 영상의 실제 최대 화소값(또는 근사한 값), medianI은 영상의 실제 중앙 화소값(또는 근사한 값)일 수 있다. medianI은 영상의 실제 화소값들의 평균일 수 있고, 영상의 화소를 정렬할 때 가운데 위치한 값일 수 있고, 영상의 화소값 범위 정보에 따라 획득되는 값일 수 있다. 적어도 하나의 minI, maxI에서 medianI은 유도될 수 있다. 즉, medianI는 영상의 화소값 범위 내에 존재하는 하나의 화소값일 수 있다.
예를 들어, medianI은 (minI + maxI) / 2 또는 (minI + maxI) >> 1, (minI + maxI + 1) / 2, (minI + maxI + 1) >> 1 등과 같이 영상의 화소값 범위 정보(본 예에서 minI, maxI)에 따라 획득되는 값일 수 있으며, median은 부/복호화 설정에 따라 상기 예를 포함하여 다른 형태로 획득될 수 있다.
medianI은 상기 예에서의 묵시적인 정보를 생성하는 경우를 포함하여 minI, maxI와 같이 명시적인 정보를 생성하여 부/복호화할 수 있다. 예를 들어, luma_median_value, chroma_median_value[i]는 픽쳐 단위에서 화소값 범위 정보로 휘도 성분의 중앙값, 색차 성분의 중앙값에 대한 구문 요소가 정의될 수 있으며, 이는 luma_lower_bound, luma_upper_bound, chroma_lower_bound[i], chroma_upper_bound[i]와 같이 정의될 수 있으며, 이 외의 단위(슬라이스, 타일 등)에서도 구문 요소가 정의될 수 있다. 화소값 범위 정보 관련 실시예들에서 설명되었던 화소값 범위 정보의 과정 및 설정 등은 medianI에도 동일하거나 비슷하게 적용이 가능할 수 있다.
이하에서는 중앙값(median)과 관련한 실시예를 설명한다.
일 예로, 기본 비트 심도는 8비트이고 비트 심도에 기초한 화소값 조정 과정(본 예에서 중앙값 128. 8비트 기준)이 선택되며 현재 블록의 위치는 영상(본 예에서 픽쳐)의 왼쪽 위에 위치할 경우, 부/복호화가 완료된 이웃 블록(또는 참조 블록. 본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값{본 예에서 1 << (bit_depth - 1). 512}으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 방향성 예측 모드. Diagonal down left)에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 8비트이고 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정{도 5의 54a, 본 예에서 최소값 10, 최대값 190. 최소값과 최대값으로부터 유도된다는 설정(평균) 하에 중앙값 100. 8비트 기준}이 선택되며 현재 블록의 위치는 영상(본 예에서 슬라이스) 내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(본 예에서 100)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 비방향성 예측 모드. DC)에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트이고 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(도 5의 54b, 본 예에서 중앙값 600. 관련 구문 요소가 존재}이 선택되며 현재 블록의 위치는 영상(본 예에서 타일)내의 첫번째 블록일 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위, 위쪽, 오른쪽 위)은 존재하지 않으므로 참조 화소는 중앙값(본 예에서 600)으로 채워질 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 방향성 예측 모드. Vertical)에 따라 화면내 예측 과정을 수행할 수 있다.
일 예로, 기본 비트 심도는 10비트이고 실제 영상을 구성하는 화소값의 범위에 기초한 화소값 조정 과정(도 5의 54a, 본 예에서 중앙값 112. 관련 구문 요소가 존재)이 선택되며 부/복호화가 완료되었으나 블록의 부호화 모드<화면내 예측/화면간 예측> 등에 따라 이용가능 여부 등이 결정되는 설정이 활성화(본 예에서 해당 블록의 부호화 모드가 화면내 예측인 경우 현재 블록의 참조 화소로 사용가능, 화면간 예측인 경우 사용불가. 본 설정이 비활성화되는 경우에는 해당 블록의 부호화 모드와 상관 없이 현재 블록의 참조 화소로 사용가능)되며 현재 블록의 위치는 영상의 왼쪽에 위치할 경우, 부/복호화에 사용될 이웃 블록(본 예에서 왼쪽, 왼쪽 아래, 왼쪽 위)은 존재하지 않으며 부/복호화에 사용될 이웃 블록(본 예에서 위쪽, 오른쪽 위)은 존재하지만 부호화 모드가 화면간 예측이라 상기 설정에 의해 사용이 금지되므로 참조 화소는 중앙값(본 예에서 112)으로 채워질 수 있다. 즉, 사용가능한 참조 화소가 존재하지 않아 영상 화소값 범위의 중앙값으로 채울 수 있다. 상기 참조 화소를 사용하여 예측 모드(본 예에서 비방향성 예측 모드. Planar)에 따라 화면내 예측 과정을 수행할 수 있다.
상기 실시예에서는 현재 블록과 이웃 블록의 경계 특성, 현재 블록의 위치, 이웃 블록의 부/복호화 여부, 이웃 블록의 부호화 모드, 블록의 부호화 모드에 따른 참조 화소 사용 설정 등에 따라 화소값 조정 과정이 수행되는 예를 나타낸다. 상세하게는, 화면내 예측부에서 참조 화소 구성부(또는 구성 단계)에서 참조 화소 구성결과에 따라 화소값 조정 과정에 따른 화소값 범위 정보를 사용할 지에 대한 예(상기 예에서 사용가능한 참조 화소가 존재하지 않는 경우 해당 참조 화소를 영상의 중앙값으로 채우고 사용가능한 참조 화소로 상태 변경)를 나타낸다. 상세하게는, 예측 화소 생성 과정에서는 화소값 범위 정보(본 예에서는 min, max)에 따라 화소값 조정이 수행될 수 있고, 참조 화소 생성 과정에서는 화소값 범위 정보(본 예에서 median)에 따라 화소값 조정이 수행될 수 있는 예를 나타낸다. 상기 실시예에서는 예측부에서 상기 중앙값 관련한 다양한 경우를 나타내었지만, 이는 영상 부/복호화의 다른 구성에 포함되어 구성될 수도 있다. 또한, 상기 실시예만으로 한정되지 않고 다양한 경우로 변형 및 확장이 가능할 수 있다.
도 9는 화면내 예측을 위한 대상 블록과 그 이웃 블록을 설명하기 위한 예시도이다.
본 발명의 일 실시예에 따른 영상 부호화 방법 및 장치에서 화면내 예측은 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 결정 단계 및/또는 예측 모드 부호화 단계를 포함할 수 있다. 또한, 영상 부호화 장치는 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계, 예측 모드 결정 단계, 예측 모드 부호화 단계를 구현하는 참조 화소 구성부, 참조 화소 필터링부, 예측 블록 생성부 및/또는 예측 모드 부호화부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
도 9를 참조하면, 참조 화소 구성부는 현재 블록(Curr, M×N의 블록 크기)을 중심으로 이웃한 블록(A, B, C, D, E)에 속하고 현재 블록(Curr)과 인접한 화소를 화면내 예측을 위한 참조 화소로 구성할 수 있다. 이때, 참조 화소는 임시 메모리(예를 들어, 1차 또는 2차 배열 등)를 통해 관리될 수 있으며, 블록의 화면내 예측 과정 마다 생성 및 제거되고, 임시 메모리의 크기는 현재 블록의 크기 및 참조 화소의 구성에 따라 결정될 수 있다.
참조 화소 구성부는 참조 화소 구성을 위해 참조 화소들(또는 이웃 블록)이 이용가능한지 여부를 확인한다. 만약 참조 화소의 일부(또는 A 내지 E 중 적어도 하나의 블록)가 이용가능하지 않을 경우 이용가능한 참조 화소를 사용(예를 들어, 이용가능한 참조 화소가 한 쪽 방향에만 존재하면 외삽, 양 쪽 방향에 존재하면 시계 방향/시계 반대 방향으로 외삽 또는 내삽 등의 방법)하여 이용가능하지 않는 참조 화소를 생성할 수 있다. 참조 화소의 전부(또는 A 내지 E의 모든 블록)가 이용가능하지 않을 경우 앞에서 설명한 중앙값으로 참조화소를 채워넣거나, 그 밖에 본 발명에서 언급된 다양한 방법을 사용하여 참조 화소를 생성할 수 있다.
이때, 이웃 블록의 이용가능성은 해당 블록의 부호화 여부, 픽쳐 경계 바깥에 존재 여부, 현재 블록과 다른 슬라이스/타일 등에 속하는지 여부, 제한적인 화면내 예측 설정(예를 들어, constrained_intra_pred_flag. 이웃 블록의 부호화 모드에 따라 참조 화소로 사용 여부를 결정. '1'이면 이웃 블록의 부호화 모드가 화면내 예측일 경우에는 사용 가능, 화면간 예측일 경우에는 사용 불가. '0'이면 이웃 블록의 부호화 모드에 상관없이 사용 가능) 수행 여부 등에 따라 결정될 수 있다. 예를 들어, 이웃 블록이 부호화가 완료되었으며, 픽쳐 내부에 존재하고, 현재 블록과 동일한 슬라이스/타일에 속하며, constrained_intra_pred_flag가 '1'일 때 부호화 모드가 화면내 예측을 의미하면 이용가능할 수 있다.
참조 화소 구성부는 다음의 수학식 2를 통해 참조 화소를 구성할 수 있다.
Figure PCTKR2018003350-appb-M000002
수학식 2를 참조하면, p[i][j]는 현재 블록의 인접한 블록의 참조 화소(본 예에서 i와 j 는 i = -1, j = -1 ~ 2*blk_size(또는 blk_size_h) - 1와 i = 0 ~ 2*blk_size(또는 blk_size_w) - 1, j = -1의 범위를 가진다고 가정)를 의미하고, p*[i][j]는 참조 화소 구성 과정 후의 참조 화소를 의미한다. ref_sample()은 참조 화소를 구성하는 함수(외삽, 복사, 중간값 생성 등을 수행)를 의미하고, blk_size(또는 blk_size_w, blk_size_h)는 블록의 크기(또는 길이)로 M 또는 N 일 수 있고, color_idx는 색차 성분을 의미한다.
참조 화소 필터링부에서는 부호화 과정을 통해 남아있는 열화를 줄여주기 위한 목적으로 참조 화소에 필터링을 수행할 수 있다. 이때, 사용되는 필터는 3-tap 필터 [1/4, 1/2, 1/4], 5-tap 필터 [2/16, 3/16, 6/16, 3/16, 2/16] 등과 같은 저역 통과 필터(Low-pass Filter)일 수 있다. 부호화 설정(예를 들어, 블록의 크기, 형태, 예측 모드 등에 의해 설정 정보가 결정)에 따라 필터링의 적용 유무가 결정될 수 있고, 필터링이 적용되는 경우에는 고정적인 필터링 또는 적응적인 필터링이 적용될 수 있다.
참조 화소 필터링부는 다음의 수학식 3을 통해 필터링된 참조 화소를 획득할 수 있다.
Figure PCTKR2018003350-appb-M000003
수학식 3을 참조하면, p"[i][j]는 필터링된 참조 화소를 의미하고, pred_mode는 현재 블록의 예측 모드를 의미하며, ref_filter()는 참조 화소를 전술한 3-tap 필터 또는 5-tap 필터 등을 이용하여 필터링하는 함수를 의미한다. p*[i][j]는 앞에서 수학식 2에 따라 구성된 참조 화소를 의미한다.
예측 블록 생성부에서는 적어도 하나의 예측 모드에 따라 예측 블록을 생성할 수 있으며, 예측 모드에 기반하여 참조 화소를 사용할 수 있다. 이때, 참조 화소는 예측 모드에 따라 외삽(Extrapolation) 등의 방법에 사용될 수 있고, 내삽(Interpolation) 또는 평균(DC) 또는 복사(Copy) 등의 방법에 사용될 수 있다. 이때, 예측 모드 후보군은 HEVC와 같이 33개의 방향성 모드(Angular Mode)와 2개의 비방향성 모드(DC, Planar)로 구성될 수 있으며, 이에 한정되지 않고 다양한 구성(예를 들어, 예측 모드 개수, 예측 모드 후보군 구성 등)을 가질 수 있다.
구체적으로 예측 블록 생성부는 다음의 수학식 4를 통해 예측 블록을 획득할 수 있다.
Figure PCTKR2018003350-appb-M000004
수학식 4를 참조하면, pf[x][y]는 현재 블록의 예측 화소(본 예에서 x와 y 는 0부터 blk_size - 1의 범위를 가질 수 있음. 또는, 현재 블록의 형태에 따라 각각 0부터 blk_size_w 또는 blk_size_h의 범위를 가질 수 있음)를 의미하고, pred_sample()은 참조 화소를 이용하여 화면 내 예측 모드에 따라 예측 블록을 생성하는 함수를 의미한다.
예측 모드 결정부에서는 복수의 예측 모드 후보군 중 최적의 모드를 선정하기 위한 과정이 수행된다. 일반적으로 블록의 왜곡(예를 들어, 현재 블록과 복원 블록의 Distortion. SAD<Sum of Absolute Difference>, SSD<Sum of Square Difference> 등)과 해당 모드에 따른 발생 비트량이 고려되는 율-왜곡(Rate-Distortion) 기법을 이용하여 부호화 비용 측면에서 최적인 모드를 결정할 수 있다. 상기 과정을 통해 결정되는 예측 모드에 기반하여 생성되는 예측 블록을 감산부와 가산부로 송신할 수 있다.
예측 모드 부호화부에서는 예측 모드 결정부를 통해 선정된 예측 모드를 부호화할 수 있다. 예측 모드 후보군에서 상기 예측 모드에 대응하는 인덱스 정보를 부호화할 수 있거나 또는 상기 예측 모드를 예측하여 그에 관한 정보(예측 플래그, 예측 결과에 따른 나머지 모드 정보)를 부호화할 수 있다. 이때, 상기 예측 모드의 예측에 사용되는 블록은 현재 블록을 중심으로 좌, 상, 좌상, 우상, 좌하 블록일 수 있으며, 해당 블록의 예측 모드가 현재 블록의 예측 모드 부호화의 예측값으로 사용될 수 있다.
또한, 본 발명의 일 실시예에 따른 영상 복호화 방법 및 장치에서 화면내 예측은 예측 모드 복호화 단계, 참조 화소 구성 단계, 참조 화소 필터링 단계 및/또는 예측 블록 생성 단계를 포함할 수 있다. 또한, 영상 복호화 장치는 예측 모드 복호화 단계, 참조 화소 구성 단계, 참조 화소 필터링 단계, 예측 블록 생성 단계를 구현하는 예측 모드 복호화부, 참조 화소 구성부, 참조 화소 필터링부 및/또는 예측 블록 생성부를 포함하도록 구성할 수 있다. 전술한 과정의 일부는 생략될 수 있거나 다른 과정이 추가될 수 있고, 상기 기재된 순서가 아닌 다른 순서로 변경될 수 있다.
영상 복호화 장치의 참조 화소 구성부, 참조 화소 필터링부, 예측 블록 생성부는 영상 부호화 장치의 대응되는 구성과 동일한 역할을 수행하므로 상세한 설명은 생략하며, 예측 모드 복호화부는 예측 모드 부호화부에서 사용한 방식을 역으로 사용하여 수행될 수 있다.
전술한 화면내 예측부의 다양한 과정(예를 들어, 수학식 2 내지 4)에서 화소값 범위 정보에 따른 화소값 조정(예를 들어, min, max에 따른 클리핑, median에 따른 중앙값 입력 등) 과정이 포함될 수 있다.
도 10은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법에 대한 흐름도이다.
도 10을 참조하면, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계(S100), 획득한 입력 영상에 포함된 제1 단위영상을 구성하는 화소값의 범위를 획득하는 단계(S110), 상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계(S120) 및 부호화된 화소값 범위를 포함하는 비트스트림을 생성하는 단계(S130)를 포함할 수 있다.
여기서 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 부호화하는 단계(S120)는, 상기 제1 단위영상을 구성하는 화소값의 최대값과 비트 심도에 기초한 최대 화소값 사이의 차분값을 부호화하는 단계를 포함할 수 있다.
여기서 상기 부호화하는 단계(S120)는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 생성하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 생성하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 생성하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서 상기 대역 정보를 생성하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계 및 생성된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 생성할 수 있다.
여기서 상기 부호화하는 단계(S120)는, 부호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계를 포함할 수 있다.
여기서 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계(S120)는, 상기 다른 단위 영상을 구성하는 화소값의 범위와 상기 제1 단위 영상을 구성하는 화소값의 범위가 속하는 대역이 같은지 여부를 지시하는 구문 요소를 생성하는 단계를 포함할 수 있다.
도 11은 본 발명의 일 실시예에 따른 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법에 대한 흐름도이다.
도 11을 참조하면, 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법은, 비트스트림을 수신하는 단계(S200), 수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계(S210) 및 획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계(S220)를 포함할 수 있다.
여기서, 상기 제1 단위영상은, 픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상일 수 있다.
여기서 상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계(S210)는, 상기 비트스트림으로부터 상기 제1 단위 영상을 구성하는 화소값의 최대값과 비트 심도에 기초한 최대 화소값 사이의 차분값을 획득하는 단계 및 상기 차분값에 기초하여 상기 제1 단위 영상을 구성하는 화소값의 최대값을 획득하는 단계를 포함할 수 있다.
상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계(S210)는, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서, 상기 대역 정보를 획득하는 단계 이후에, 상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 위치 정보를 획득하는 단계는, 상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행될 수 있다.
여기서 상기 대표값은, 상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나일 수 있다.
여기서, 상기 대역 정보를 획득하는 단계는, 상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계 및 획득된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계를 포함할 수 있다.
여기서 상기 대역 정보를 획득하는 단계는, 복호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계 및 상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 획득하는 단계를 포함할 수 있다.
도 12는 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 부호화 방법에 대한 흐름도이다.
도 12를 참조하면, 두 개 이상의 비트 심도를 사용한 영상 부호화 방법은, 부호화할 입력 영상을 획득하는 단계(S300), 획득한 입력 영상을 내부 비트 심도에 기초하여 1차 부호화를 수행하는 단계(S310), 상기 1 차 부호화가 수행된 입력 영상을 외부 비트 심도로 변환하는 단계(S320) 및 외부 비트 심도로 변환된 입력 영상에 대하여 2 차 부호화를 수행하여 비트스트림을 생성하는 단계(S330)를 포함할 수 있다.
여기서 상기 내부 비트 심도는 상기 외부 비트 심도보다 더 큰 값을 가질 수 있다.
도 13은 본 발명의 일 실시예에 따른 두 개 이상의 비트 심도를 사용한 영상 복호화 방법에 대한 흐름도이다.
도 13을 참조하면, 두 개 이상의 비트 심도를 사용한 영상 복호화 방법은, 비트스트림을 수신하는 단계(S400), 수신된 비트스트림을 1차 복호화하여 외부 비트 심도로 구성된 영상 데이터를 획득하는 단계(S410), 획득한 영상 데이터를 내부 비트 심도로 변환하는 단계(S420) 및 내부 비트 심도로 변환된 영상 데이터를 2차 복호화하여 복호화된 영상을 획득하는 단계(S430)를 포함할 수 있다.
본 발명에 따른 방법들은 다양한 컴퓨터 수단을 통해 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위해 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 매체의 예에는 롬(ROM), 램(RAM), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함될 수 있다. 프로그램 명령의 예에는 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 적어도 하나의 소프트웨어 모듈로 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
또한, 상술한 방법 또는 장치는 그 구성이나 기능의 전부 또는 일부가 결합되어 구현되거나, 분리되어 구현될 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 영상 부호화 장치에서 수행되는, 영상을 구성하는 화소값 범위를 이용한 영상 부호화 방법으로,
    부호화할 입력 영상을 획득하는 단계;
    획득한 입력 영상에 포함된 제1 단위영상을 구성하는 화소값(pixel)의 범위를 획득하는 단계;
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계; 및
    부호화된 화소값 범위를 포함하는 비트스트림을 생성하는 단계를 포함하는, 영상 부호화 방법.
  2. 청구항 1에서,
    상기 제1 단위영상은,
    픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상인, 영상 부호화 방법.
  3. 청구항 1에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 제1 단위영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 부호화하는 단계를 포함하는, 영상 부호화 방법.
  4. 청구항 1에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 생성하는 단계를 포함하는, 영상 부호화 방법.
  5. 청구항 4에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 대역 정보를 생성하는 단계 이후에,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 생성하는 단계를 더 포함하는, 영상 부호화 방법.
  6. 청구항 5에서,
    상기 대역 위치 정보를 생성하는 단계는,
    상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행되는, 영상 부호화 방법.
  7. 청구항 6에서,
    상기 대표값은,
    상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나인, 영상 부호화 방법.
  8. 청구항 4에서,
    상기 대역 정보를 생성하는 단계는,
    상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계; 및
    생성된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 생성하는 단계를 포함하는, 영상 부호화 방법.
  9. 청구항 1에서,
    상기 제1 단위영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    부호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계; 및
    상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계를 포함하는, 영상 부호화 방법.
  10. 청구항 9에서,
    상기 제1 단위 영상을 구성하는 화소값의 범위를 부호화하는 단계는,
    상기 다른 단위 영상을 구성하는 화소값의 범위와 상기 제1 단위 영상을 구성하는 화소값의 범위가 속하는 대역이 같은지 여부를 지시하는 구문정보를 생성하는 단계를 포함하는, 영상 부호화 방법.
  11. 영상 복호화 장치에서 수행되는 영상을 구성하는 화소값 범위를 이용한 영상 복호화 방법으로,
    비트스트림을 수신하는 단계;
    수신된 비트스트림에 포함된 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계; 및
    획득한 화소값의 범위 정보를 기초로 상기 제1 단위영상에 대한 복호화를 수행하는 단계를 포함하는, 영상 복호화 방법.
  12. 청구항 11에서,
    상기 제1 단위영상은,
    픽쳐, 슬라이스, 타일, 블록 중 하나의 단위로 이루어진 영상인, 영상 복호화 방법.
  13. 청구항 11에서,
    상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는,
    상기 비트스트림으로부터 상기 제1 단위 영상을 구성하는 화소값의 최대값과 비트 심도(bit depth)에 기초한 최대 화소값 사이의 차분값을 획득하는 단계; 및
    상기 차분값에 기초하여 상기 제1 단위 영상을 구성하는 화소값의 최대값을 획득하는 단계를 포함하는, 영상 복호화 방법.
  14. 청구항 11에서,
    상기 제1 단위영상을 구성하는 화소값의 범위 정보를 획득하는 단계는,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역(band)을 지시하는 대역 정보를 획득하는 단계를 포함하는, 영상 복호화 방법.
  15. 청구항 14에서,
    상기 대역 정보를 획득하는 단계 이후에,
    상기 제1 단위영상을 구성하는 화소값의 최대값 또는 최소값이 속하는 대역 내에서의 위치를 지시하는 대역 위치 정보를 획득하는 단계를 포함하는, 영상 복호화 방법.
  16. 청구항 15에서,
    상기 대역 위치 정보를 획득하는 단계는,
    상기 최대값 또는 상기 최소값이 속하는 대역에 대한 대표값이 미리 설정되지 않은 경우에 수행되는, 영상 복호화 방법.
  17. 청구항 16에서,
    상기 대표값은,
    상기 최대값 또는 상기 최소값이 속하는 대역에서의 최대 화소값, 최소 화소값 및 중간값 중 하나인, 영상 복호화 방법.
  18. 청구항 14에서,
    상기 대역 정보를 획득하는 단계는,
    상기 최대값 및 상기 최소값 중 어느 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계; 및
    획득된 대역 정보를 예측값으로 하여 나머지 하나가 속하는 대역에 대한 대역 정보를 획득하는 단계를 포함하는, 영상 복호화 방법.
  19. 청구항 11에서,
    상기 대역 정보를 획득하는 단계는,
    복호화가 완료된 다른 단위 영상을 구성하는 화소값 범위를 획득하는 단계; 및
    상기 다른 단위 영상을 구성하는 화소값의 범위를 예측값으로 하여 상기 제1 단위 영상을 구성하는 화소값의 범위를 획득하는 단계를 포함하는, 영상 복호화 방법.
  20. 두 개 이상의 비트 심도를 사용한 영상 부호화 방법으로,
    부호화할 입력 영상을 획득하는 단계;
    획득한 입력 영상을 내부 비트 심도에 기초하여 1차 부호화를 수행하는 단계;
    상기 1 차 부호화가 수행된 입력 영상을 외부 비트 심도로 변환하는 단계; 및
    외부 비트 심도로 변환된 입력 영상에 대하여 2 차 부호화를 수행하여 비트스트림을 생성하는 단계를 포함하고,
    상기 내부 비트 심도는 상기 외부 비트 심도보다 더 큰 값을 갖는, 영상 부호화 방법.
PCT/KR2018/003350 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법 WO2018174591A1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US16/496,239 US20200036978A1 (en) 2017-03-22 2018-03-22 Image encoding/decoding method using pixel value range constituting image
KR1020197027157A KR20190123745A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
KR1020237033058A KR20230143626A (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법
US17/199,741 US11509895B2 (en) 2017-03-22 2021-03-12 Image encoding/decoding method using pixel value range constituting image
US17/957,132 US11949865B2 (en) 2017-03-22 2022-09-30 Image encoding/decoding method using pixel value range constituting image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0036369 2017-03-22
KR20170036369 2017-03-22

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US16/496,239 A-371-Of-International US20200036978A1 (en) 2017-03-22 2018-03-22 Image encoding/decoding method using pixel value range constituting image
US17/199,741 Continuation US11509895B2 (en) 2017-03-22 2021-03-12 Image encoding/decoding method using pixel value range constituting image

Publications (1)

Publication Number Publication Date
WO2018174591A1 true WO2018174591A1 (ko) 2018-09-27

Family

ID=63585611

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/003350 WO2018174591A1 (ko) 2017-03-22 2018-03-22 영상을 구성하는 화소값 범위를 이용한 영상 부호화/복호화 방법

Country Status (3)

Country Link
US (3) US20200036978A1 (ko)
KR (2) KR20230143626A (ko)
WO (1) WO2018174591A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110114803B (zh) * 2016-12-28 2023-06-27 松下电器(美国)知识产权公司 三维模型分发方法、三维模型接收方法、三维模型分发装置以及三维模型接收装置
CN112788338B (zh) * 2020-12-31 2022-08-26 展讯通信(天津)有限公司 图像压缩及解压缩方法、设备、装置和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004229261A (ja) * 2002-11-27 2004-08-12 Canon Inc 画像圧縮方法、画像圧縮装置及びプログラム並びに記録媒体
KR20150133825A (ko) * 2013-09-09 2015-11-30 닛본 덴끼 가부시끼가이샤 영상 부호화 장치, 영상 부호화 방법 및 프로그램
KR20160086978A (ko) * 2011-06-09 2016-07-20 퀄컴 인코포레이티드 비디오 코딩에서의 내부 비트 깊이 증가
KR20160132869A (ko) * 2014-03-14 2016-11-21 퀄컴 인코포레이티드 컬러-공간 변환 코딩에서의 비트 심도들의 수정
KR101710623B1 (ko) * 2010-04-05 2017-03-09 삼성전자주식회사 컨텐트에 기반한 다이나믹 레인지 변환을 이용하는 비디오 부호화 방법과 그 장치, 및 컨텐트에 기반한 다이나믹 레인지 변환을 이용하는 비디오 복호화 방법과 그 장치

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4003483B2 (ja) 2002-02-28 2007-11-07 株式会社デンソーウェーブ 情報コード読取装置
EP1355484B1 (en) 2002-04-17 2017-03-01 Canon Kabushiki Kaisha Image compression method and apparatus, and image coding method and apparatus
TWI323129B (en) * 2006-05-17 2010-04-01 Novatek Microelectronics Corp Block truncation coding (btc) method and apparatus
US8345763B2 (en) * 2007-11-27 2013-01-01 Mediatek Inc. Motion compensation method and integrated circuit utilizing the same
US9386304B2 (en) * 2008-11-11 2016-07-05 Cisco Technology, Inc. Digital video compression system, method and computer readable medium
US8902985B2 (en) * 2009-06-22 2014-12-02 Panasonic Intellectual Property Corporation Of America Image coding method and image coding apparatus for determining coding conditions based on spatial-activity value
US9100661B2 (en) 2010-04-05 2015-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
KR101885258B1 (ko) 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
CN108347620B (zh) 2010-09-27 2022-08-30 Lg 电子株式会社 用于分割块的方法和解码设备
JP5281623B2 (ja) 2010-09-29 2013-09-04 日本電信電話株式会社 画像符号化方法,画像復号方法,画像符号化装置,画像復号装置およびそれらのプログラム
CN107071491B (zh) * 2010-11-04 2020-11-03 Ge视频压缩有限责任公司 支持区块合并和跳过模式的图像编码
RS56675B1 (sr) * 2012-06-11 2018-03-30 Samsung Electronics Co Ltd Postupak kodiranja video zapisa koji dele sao parametar prema komponenti boje
TWI595776B (zh) * 2012-06-27 2017-08-11 Sony Corp Image processing device and method
CN107852492A (zh) 2015-05-12 2018-03-27 三星电子株式会社 用于对图像进行编码和解码的方法和设备
US20180359494A1 (en) * 2015-12-31 2018-12-13 Mediatek Inc. Method and apparatus of prediction binary tree structure for video and image coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004229261A (ja) * 2002-11-27 2004-08-12 Canon Inc 画像圧縮方法、画像圧縮装置及びプログラム並びに記録媒体
KR101710623B1 (ko) * 2010-04-05 2017-03-09 삼성전자주식회사 컨텐트에 기반한 다이나믹 레인지 변환을 이용하는 비디오 부호화 방법과 그 장치, 및 컨텐트에 기반한 다이나믹 레인지 변환을 이용하는 비디오 복호화 방법과 그 장치
KR20160086978A (ko) * 2011-06-09 2016-07-20 퀄컴 인코포레이티드 비디오 코딩에서의 내부 비트 깊이 증가
KR20150133825A (ko) * 2013-09-09 2015-11-30 닛본 덴끼 가부시끼가이샤 영상 부호화 장치, 영상 부호화 방법 및 프로그램
KR20160132869A (ko) * 2014-03-14 2016-11-21 퀄컴 인코포레이티드 컬러-공간 변환 코딩에서의 비트 심도들의 수정

Also Published As

Publication number Publication date
US20200036978A1 (en) 2020-01-30
US11949865B2 (en) 2024-04-02
US20230043566A1 (en) 2023-02-09
US20210203935A1 (en) 2021-07-01
KR20230143626A (ko) 2023-10-12
KR20190123745A (ko) 2019-11-01
US11509895B2 (en) 2022-11-22

Similar Documents

Publication Publication Date Title
WO2018174593A1 (ko) 적응적인 화소 분류 기준에 따른 인루프 필터링 방법
WO2017222325A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018212577A1 (ko) 비디오 신호 처리 방법 및 장치
WO2018070790A1 (ko) 영상의 부호화/복호화 방법 및 장치
WO2017209328A1 (ko) 영상 코딩 시스템에서 인트라 예측 방법 및 장치
WO2018080122A1 (ko) 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2014171713A1 (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치
WO2020009419A1 (ko) 병합 후보를 사용하는 비디오 코딩 방법 및 장치
WO2018236028A1 (ko) 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
WO2020162737A1 (ko) 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
WO2018044089A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016159610A1 (ko) 비디오 신호 처리 방법 및 장치
WO2017082443A1 (ko) 영상 코딩 시스템에서 임계값을 이용한 적응적 영상 예측 방법 및 장치
WO2020004979A1 (ko) 영상 부호화/복호화 방법 및 장치
WO2016048092A1 (ko) 비디오 신호 처리 방법 및 장치
WO2019194568A1 (ko) 어파인 모델 기반의 영상 부호화/복호화 방법 및 장치
WO2013109123A1 (ko) 인트라 예측 처리 속도 향상을 위한 비디오의 부호화 방법 및 장치, 비디오의 복호화 방법 및 장치
WO2018056701A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020050702A1 (ko) 다중 변환 커널을 사용하는 비디오 신호 처리 방법 및 장치
WO2016114583A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016064123A1 (ko) 비디오 신호 처리 방법 및 장치
WO2016122251A1 (ko) 비디오 신호 처리 방법 및 장치
WO2020130600A1 (ko) 예측 모드를 시그널링하는 비디오 신호 처리 방법 및 장치
WO2018182184A1 (ko) 부호화 트리 유닛 및 부호화 유닛의 처리를 수행하는 영상 처리 방법, 그를 이용한 영상 복호화, 부호화 방법 및 그 장치
WO2016122253A1 (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: 18770859

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 20197027157

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18770859

Country of ref document: EP

Kind code of ref document: A1