WO2019059736A1 - Image encoding device, image decoding device, image encoding method, and image decoding method - Google Patents

Image encoding device, image decoding device, image encoding method, and image decoding method Download PDF

Info

Publication number
WO2019059736A1
WO2019059736A1 PCT/KR2018/011330 KR2018011330W WO2019059736A1 WO 2019059736 A1 WO2019059736 A1 WO 2019059736A1 KR 2018011330 W KR2018011330 W KR 2018011330W WO 2019059736 A1 WO2019059736 A1 WO 2019059736A1
Authority
WO
WIPO (PCT)
Prior art keywords
slice
data
sub
image
slices
Prior art date
Application number
PCT/KR2018/011330
Other languages
French (fr)
Korean (ko)
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 삼성전자주식회사
Publication of WO2019059736A1 publication Critical patent/WO2019059736A1/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/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/66Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving data partitioning, i.e. separation of data into packets or partitions according to importance
    • 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/124Quantisation
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/65Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
    • H04N19/68Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience involving the insertion of resynchronisation markers into the bitstream

Definitions

  • An image encoding apparatus and an image encoding method for encoding image data, an image decoding apparatus and an image decoding method for decoding encoded data are provided.
  • the image data may be encoded according to a predetermined data compression standard, and the encoded image data may be transmitted in the form of a bit stream.
  • an error may occur in data transmission depending on the transmission environment. If an error occurs in the data transmission, a request for retransmission of the image data to the transmitting end may cause a time delay. In order to prevent such a time delay, errors can be restored at the receiving end, and there is a difference in the image quality of the image output to the display device according to the restoring method.
  • the entropy encoding is performed in units of sub slices, and the rest of the processing is performed in units of slices, thereby improving the average image quality of the image.
  • data is initialized and restored in units of sub slices, An image decoding apparatus, an image encoding method, and an image decoding method, which can be performed by the image decoding apparatus.
  • a video encoding apparatus includes: a slice distributor for dividing an input image into a plurality of slices; A sub slice divider dividing the plurality of slices into a plurality of sub slices; And processing the data of the input image by the slice unit to determine a predicted value for the data of the input image, generating a symbol using the predicted value, and performing entropy encoding on the symbol for the sub- And an encoding module for outputting a bit stream for the input image.
  • the image encoding apparatus includes a marker generator for generating a division marker for identifying the plurality of sub slices and inserting the division marker for each position where data for the plurality of sub slices starts in the output bit stream .
  • the encoding module may determine the predicted value of the current block by referring to information of at least one neighboring block included in the same slice as the current block to be predicted.
  • the encoding module generates a transform coefficient by performing frequency conversion on the residual data generated by subtracting the data of the current block from the determined predicted value and quantizes the transform coefficient to generate the quantized coefficient type symbol can do.
  • the encoding module may perform inverse quantization and dequantization on the symbol to recover residual data, and generate restored data using the residual data and the predicted value.
  • a memory for storing the restored data wherein when the predicted value of the data of the current block is determined, restoration data of the neighboring block among the restored data stored in the memory can be referred to.
  • the encoding module may refer to information of at least one neighboring block included in the same sub-slice as the current block when entropy encoding is performed on the current block.
  • the sub slice distributor may divide the plurality of slices based on a parameter relating to the number of the plurality of sub slices.
  • An apparatus for decoding an image includes a slice separator for detecting a slice start code in an input bitstream to separate a plurality of slices; A sub slice separator for separating a plurality of sub slices by detecting a division marker in the input bit stream; An error detector for checking an error for the input bit stream and for initializing data of the sub slice in which the error is detected; A decoding module for decoding a bitstream in which the error is not detected to generate a reconstructed image; And an image restorer for recovering data of the sub slice in which the error is detected to generate a restored image.
  • the plurality of slices may each include a plurality of sub-slices.
  • the image restorer can recover data of a block located at a boundary between the sub slice in which the error is detected and a sub slice in which the error is detected among a plurality of blocks included in a neighboring slice adjacent thereto.
  • the decoding module may perform entropy decoding on the bit stream in which the error is not detected for each sub-slice to generate a quantized coefficient type symbol.
  • the decoding module may perform inverse quantization and inverse transform on the symbol to recover the residual signal, and may generate a restored block by summing the residual value and the predicted value determined by the prediction performed on a slice-by-slice basis.
  • an image encoding method includes: dividing an input image into a plurality of slices; Dividing the plurality of slices into a plurality of sub slices; Processing the data of the input image by the slice unit to determine a predicted value for the data of the input image; Generate a symbol using the predicted value; And performing entropy encoding on the sub-slice basis for the symbol to output a bit stream for the input image.
  • the image encoding method comprises: generating a division marker for identifying the plurality of sub slices; And inserting the segmentation marker at a position where data for the plurality of sub slices is started in the bit stream for the input image.
  • the determination of the predicted value may refer to information of at least one neighboring block included in the same slice as the current block when determining a predicted value for data of the current block.
  • Generating the symbol comprises generating residual data by subtracting the data of the current block from the determined predicted value; Performing frequency conversion on the residual data to generate a transform coefficient; And performing quantization on the transform coefficients to generate the symbols of the form of quantized coefficients.
  • the image encoding method may include performing inverse quantization and inverse quantization on the symbols to recover residual data; And generating reconstruction data using the reconstructed residual data and the predicted values.
  • the image encoding method further comprising storing the restored data, wherein the step of determining the predicted value comprises: when determining a predicted value for data of a current block, Or < / RTI >
  • Performing the entropy encoding may include referring to information of at least one neighboring block included in the same sub-slice as the current block when entropy encoding is performed on the current block.
  • an image decoding method comprising: detecting a slice start code in an input bitstream to divide a plurality of slices; Detecting a division marker in the input bit stream to separate a plurality of sub slices; Checking an error for the input bitstream; Initializing data of the sub slice in which the error is detected; Generating a reconstructed image by decoding a bitstream in which the error is not detected; And recovering the data of the sub slice in which the error is detected to generate a restored image.
  • the generation of the reconstructed image may include entropy decoding on the sub-slice basis for a bit stream in which the error is not detected to generate a quantized coefficient type symbol.
  • Generating the reconstructed image comprises performing inverse quantization and inverse transform on the symbol to reconstruct the residual signal; And generating a reconstruction block by summing the predicted value determined by the prediction performed in the slice unit and the residual signal.
  • the entropy encoding is performed in units of sub slices and the remaining processing is performed in units of slices, , And when an error occurs, initialization and restoration of data in units of sub slices can minimize the deterioration of image quality due to an error occurrence.
  • FIG. 1 is a diagram illustrating an example in which a transmitting apparatus and a receiving apparatus exchange image data.
  • FIG. 2 is a diagram showing a unit that is independently processed at the time of encoding or decoding an image.
  • 3 is a diagram showing a range of an influence of an error when an error occurs in a specific slice.
  • FIG. 4 is a control block diagram of a video encoding apparatus according to an embodiment.
  • 5 and 6 are views showing examples of slices that are divided by the image encoding apparatus according to an embodiment.
  • FIG. 7 is a control block diagram illustrating a configuration of an encoding module in a video encoding apparatus according to an exemplary embodiment.
  • FIG. 8 is a diagram illustrating an example of an operation in which the video encoding apparatus according to the embodiment performs encoding on a block basis.
  • FIG. 9 is a diagram illustrating an example of bitstream data generated by a video encoding apparatus according to an exemplary embodiment.
  • FIG. 10 is a control block diagram of an image decoding apparatus according to an embodiment.
  • FIG. 11 is a control block diagram illustrating a decoding module of an image decoding apparatus according to a single-shot type.
  • FIGS. 12 and 13 are views illustrating an example of a method of decoding an error by an image decoding apparatus according to an embodiment.
  • FIG. 14 is a diagram showing an error influence range when error is recovered on a slice-by-slice basis.
  • 15 is a flowchart of a video encoding method according to an embodiment.
  • 16 is a flowchart of an image decoding method according to an embodiment.
  • &quot module, module " may be embodied in software or hardware, and may be embodied as a single component or as a plurality of subsystems, modules, It is also possible for 'part, module, member' to include a plurality of components.
  • connection when a part is referred to as being "connected" to another part, it includes not only the case directly connected but also the case where the connection is indirectly connected, and the indirect connection includes connection through the wireless communication network do.
  • the identification code is used to identify each step and does not describe the order of the steps, and each step may be performed differently from the order specified unless the context clearly states a particular order.
  • FIG. 1 is a diagram illustrating an example of transmitting and receiving image data between a transmitting apparatus and a receiving apparatus
  • FIG. 2 is a diagram illustrating a unit that is independently processed at the time of encoding or decoding an image
  • FIG. Fig. 9 is a diagram showing the range of the influence of errors in the case of Fig.
  • the transmitting apparatus 10 compresses image data according to a certain compression standard for transmitting image data in a wireless transmission environment, and transmits the compressed image data to the receiving apparatus 20 in the form of a bit stream.
  • the receiving apparatus 20 decodes the received image data and outputs the image to the display apparatus 30.
  • a packet loss packet loss
  • packet deformation packet deformation
  • an error may occur in data transmission.
  • images can be hierarchically defined and processed independently according to defined hierarchy.
  • the video may include both moving images and still images, and the moving image and the still image may be frames.
  • one frame may be divided into smaller units defined by slices. That is, one frame may be composed of a plurality of slices. A plurality of slices constituting one frame may be divided in various ways according to an image compression standard.
  • Each slice can be processed independently.
  • being independent may mean not referring to information included in another slice in encoding and decoding for a single slice. Therefore, the slice # 1, the slice # 2, the slice # 4, ..., and the slice #N are independently processed, and the information contained in the other slice can not be used during encoding and decoding.
  • the minimum processing unit of an image in which encoding and decoding are performed may be referred to as a block.
  • a single slice may include at least one block.
  • the block may be a Coding Tree Unit, a Prediction Unit, or a Transform Unit.
  • a block may be defined by a plurality of pixel sets, such as 8x8 pixels, 16x16 pixels, etc., but this corresponds to an example, and in the embodiment of the video encoding apparatus 100, no.
  • Image compression is to reduce the amount of data to transmit the image.
  • surrounding block information can be used in encoding and decoding the image in units of blocks. Therefore, the surrounding block must be decoded to enable encoding or decoding of the current block to be processed.
  • each slice is processed independently, only information of neighboring blocks in the same slice can be used. Therefore, the smaller the number of slices constituting one frame, the wider the range of the peripheral blocks to be used, and the higher the average image quality is.
  • the receiving apparatus 20 can detect the generated error and discard or initialize the data of the slice # 2.
  • each slice is processed independently, the remaining slices except the slice # 2 are decoded normally, and the slice # 2 in which an error occurs can be restored by using the neighboring slice information or the neighboring frame information.
  • the image encoding apparatus and the image decoding apparatus divide a single slice into sub-slices of a smaller unit and apply different steps of processing in units of slices and steps of processing in units of sub slices, And degradation of image quality in the event of an error can be minimized.
  • FIG. 4 is a control block diagram of a video encoding apparatus according to an embodiment
  • FIGS. 5 and 6 are views illustrating an example of a slice divided by a video encoding apparatus according to an exemplary embodiment.
  • an apparatus 100 for encoding an image includes an encoding module 110 for encoding an input image, a slice distributor 120 for dividing an input image into a plurality of slices, And a marker generator 140 for inserting a division marker for separating a sub-slice into a bit stream output from the encoding module 110 and a sub-slice distributor 130 for distributing to a slice.
  • the slice distributor 120, the sub-slice distributor 130 and the marker generator 140 are physically divided into physical components such as physical It is not necessarily separated.
  • the encoding module 110, the slice distributor 120, the sub-slice distributor 130, and the marker generator 140 may be implemented by a single processor and a single memory, and may be implemented as a single chip As shown in FIG. In the latter case, each component can share memory with the processor.
  • the slice distributor 120 may divide the input image into a plurality of slices according to the slice setting parameters.
  • the slice configuration parameter may include information such as the number or shape of slices.
  • the slice setting parameter may be set by a designer or a user, may be set by information input from the outside, or may be set by the video encoding apparatus 100.
  • the sub slice distributor 130 may divide the input image into a plurality of sub slices based on the sub slice setting parameters, and the sub slice setting parameters may include information such as the number or shape of the sub slices.
  • the sub-slice is a unit smaller than the slice.
  • the size of a single slice may be an integer multiple of the size of a single sub-slice. That is, the sub slice distributor 130 may divide each slice into sub slice units.
  • the encoding module 110 may perform entropy encoding to convert the image data into a bit stream format.
  • the encoding module 110 performs entropy encoding on a sub slice basis, and a process for generating symbols such as prediction, conversion, and quantization before entropy encoding can be performed on a slice basis.
  • a process for generating symbols such as prediction, conversion, and quantization before entropy encoding can be performed on a slice basis.
  • the operation of the encoding module 110 in units of sub slice units / slices will be described in detail.
  • the slice distributor 120 divides one frame into N slices (where N is an integer of 1 or more), and the sub slice distributor 130 divides each of the slices into n (n is 1 Slices of sub-slices).
  • the slice distributor 120 and the sub-slice distributor 130 may perform slice division and sub-slice division on a plurality of frames constituting an input image.
  • the encoding module 110 can perform operations other than entropy encoding in slice units. Therefore, the N slices can be independently processed, and the blocks included in the same slice can be referred to each other.
  • the sub slice is not necessarily divided into one dimension along the longitudinal direction of the frame, but it may be divided two-dimensionally as in the example of Fig.
  • the sub-slice division method is determined by the sub-slice setting parameters.
  • the arrangement and the number shape are not limited.
  • FIG. 7 is a control block diagram illustrating a configuration of an encoding module in an image encoding apparatus according to an exemplary embodiment.
  • FIG. 8 is a diagram illustrating an example of an operation in which an image encoding apparatus according to an embodiment performs encoding on a block basis
  • FIG. 9 is a diagram illustrating an example of bitstream data generated by a video encoding apparatus according to an exemplary embodiment.
  • the encoding module 110 processes the data of the input image in units of slice to determine a predicted value for the data of the input image, generates a symbol using the predicted value, and performs entropy encoding on the symbol in units of the sub-slice And outputs a bitstream of the input image.
  • the encoding module 110 includes a predictor 111, a subtractor 112, a transformer 113, a quantizer 114, an entropy encoder 115, an inverse quantizer 116, an inverse transformer 117 ), An adder 118, a filter 119, and a memory 119a.
  • the predictor 111 performs prediction on the input image based on the slice unit divided by the slice distributor 120. [ That is, prediction can be performed independently for each slice.
  • the video encoding apparatus 100 may encode an image using an Intraframe method or an Interframe method.
  • intra frame method compression is performed frame by frame
  • interframe method compression is performed using information of the previous frame.
  • the predictor 111 performs intra frame prediction.
  • the predictor 111 performs interframe prediction. That is, the current frame is predicted from neighboring temporally adjacent frames such as a previous frame or a subsequent frame.
  • the case of applying the intra frame method is referred to as an intra mode
  • the case of applying the interframe method is referred to as an inter mode.
  • the predictor 111 can generate a prediction block by referring to information of neighboring blocks spatially adjacent to the current block to be processed.
  • the reference block may be referred to as a reference block.
  • the predictor 111 may determine a predicted value for the samples of the current block by referring to the pixel values of the restored block around the current block.
  • the prediction block means a block composed of prediction values. Therefore, generating a prediction block may mean that a prediction value for the block is determined.
  • a sample means data to be processed as data assigned to a sampling position of an image.
  • pixel values and transform coefficients on a transform domain may correspond to samples.
  • the slice distributor 120 divides a frame as in the example of FIG. 5 described above will be described as an example.
  • the sub slices # 1 (SS 11 ) and # 2 (SS 12 ) included in the same slice S 1 may be composed of a plurality of blocks.
  • the current block is B 43
  • the neighboring blocks (B 32, B 33, B 34, B 42, B 44, B 52, B 53, B 54) already using the pixel value of the restored block of the The predicted value can be determined.
  • the available neighboring blocks may vary depending on the image compression method or order, and Fig. 8 is merely an example.
  • the predicted value determining step in the sub-slices are the determination of the predicted value for the current block B 43 because it can cross-reference is not treated as independent
  • the information of the blocks included in the sub slice # 1 can also be referred to. Therefore, the average image quality of the image can be improved as compared with the case of processing in units of sub slices.
  • the predictor 111 can predict a motion by searching a region (reference block) having the best match with the current block in the previous frame that has already undergone the encoding process and obtaining a motion vector.
  • the motion vector may be a two-dimensional vector and may represent an offset between the current block and the reference block.
  • the predictor 111 can determine a predicted value and generate a predicted block by performing motion compensation using a motion vector.
  • the subtracter 112 may generate a residual block by subtracting the current block from the prediction block. That is, the residual data can be generated by differentiating the data of the current block and the data of the prediction block.
  • the converter 113 converts the generated residual block or residual data from the spatial domain to the frequency domain.
  • the converter 113 may use a technique of converting a video signal in a spatial domain into a frequency domain such as Discrete Sine Transform, Discrete Cosine Transform, Hadamard Transform, and the like.
  • the converter 113 may perform the above-described frequency conversion to output the conversion coefficient.
  • the quantizer 114 quantizes the transform coefficient output from the transformer 113 according to a quantization parameter to output a symbol of a quantized coefficient type.
  • the symbols output from the quantizer 114 may be input to the dequantizer 116 as well as to the entropy encoder 115.
  • the inverse quantizer 116 may inverse quantize the quantized coefficients to recover the frequency coefficients. At this time, inverse quantization can be performed based on the quantization parameters used by the quantizer 114.
  • the inverse transformer 117 may inversely transform the recovered frequency coefficient from the frequency domain into the spatial domain to recover the residual block.
  • the inverse transformer 117 may perform an inverse transform on the frequency transform technique performed by the transformer 113.
  • the adder 118 may generate a reconstruction block for the input image by adding the prediction block generated by the predictor 111 to the reconstructed residual block.
  • the generated restoration block may be stored in the memory 119a and used as a reference block of the predictor 111.
  • the generated restoration block may be stored in the memory 119a after being filtered by the filter 119.
  • the filter 119 includes a deblocking filter for eliminating block distortion at the boundary between blocks, a sample adaptive offset filter for adding a proper offset value to a pixel value to compensate for coding error, And an adaptive loop filter that performs filtering based on a value obtained by comparing an original image with an original image.
  • the entropy encoder 115 may perform entropy encoding on the quantized coefficients output from the quantizer 114 to output a bitstream.
  • Entropy encoding is a technique for receiving symbols having various values and expressing them as a decodable bit stream while eliminating statistical redundancy.
  • the symbol means a syntax element to be encoded / decoded, a coding parameter, a value of a residual signal, and the like.
  • the encoding parameter is a parameter necessary for encoding and decoding, and may include information that can be inferred in an encoding or decoding process as well as information encoded in the encoding device and transmitted to the decoding device, such as a syntax element, It means the information that is needed when doing.
  • the encoding parameters include values or statistics such as, for example, intra / inter modes, motion vectors, reference picture indexes, coding block patterns, residual signal presence, transform coefficients, quantized transform coefficients, quantization parameters, block sizes, can do.
  • the entropy encoder 115 may perform entropy encoding by applying a technique such as Context-Adaptive Variable Length Coding (CAVLC), Context-Adaptive Binary Arithmetic Coding (CABAC), or Exponential Golomb to the quantized coefficients. It is also possible to entropy encode quantized coefficients as well as additional information necessary for decoding the image.
  • CAVLC Context-Adaptive Variable Length Coding
  • CABAC Context-Adaptive Binary Arithmetic Coding
  • Exponential Golomb Exponential Golomb
  • a table for performing entropy encoding such as a variable length coding / code (VLC) table may be stored in the entropy encoder 115.
  • the entropy encoder 115 may perform entropy encoding using a stored variable length coding (VLC) table.
  • the entropy encoder 115 derives a binarization method of the object symbol and a probability model of a target symbol or bin and then performs entropy encoding using the derived binarization method or probability model You may.
  • a small number of bits may be allocated to a symbol having a high probability of occurrence, and a symbol may be represented by allocating a large number of bits to a symbol having a low probability of occurrence.
  • the size of the bit stream for the symbols to be encoded can be reduced and the compression performance of the image encoding can be enhanced.
  • the entropy encoder 115 when the entropy encoder 115 applies the CABAC scheme, the non-binarized symbol is binarized and converted into a bin, and encoding information of a neighboring block and a current block or information of a symbol or bin encoded in a previous step is used To determine the context model.
  • the entropy encoder 115 may generate a bitstream by performing arithmetic encoding of the bin by predicting the probability of occurrence of the bean according to the determined context model.
  • the context model can be updated using the information of the encoded symbol / bean for the context model of the next symbol or bean.
  • the entropy encoder 115 may perform entropy encoding on the basis of the sub-slice unit divided by the sub-slice distributor 130. Thus, a sub-slice may be referred to as an entropy slice.
  • the entropy encoder 115 can perform entropy encoding by independently processing each sub slice without referring to information of other sub slices. Therefore, when performing the entropy encoding, only the information of the neighboring blocks included in the same sub-slice can be referred to, and even if they belong to the same slice, the blocks included in different sub-slices can be independently processed without referring to each other.
  • the marker generator 140 may generate and insert a division marker for identifying a sub slice in the bit stream generated by the entropy encoder 115. [ Specifically, the marker generator 140 may insert a division marker for each position where data for a plurality of sub slices is started in the bitstream. As an example, the division markers may include a column of feature binary numbers.
  • the bit stream generated by the video encoding apparatus 100 includes information on each of the slices S 1 , S 2 , S, and S N , and the bit stream for a single slice includes information on a slice start code Slice header information, a division marker for dividing a sub-slice, and data for blocks constituting a sub-slice.
  • a bitstream (BS 7 ) for slice # 7 includes a slice start code (BSC 7 ), slice header information (BSH 7 ), a division marker 1 (BSM 71 ) of sub slice # 1, Slice # 2, and encoding data for the blocks constituting the encoding data (BSS 71 ), the division marker 2 of the sub slice # 2, and the sub-slice # 2 for the constituent blocks, and the division markers n (BSM 7n ), and encoding data for the blocks constituting the sub-slice #n.
  • BSC 7 slice start code
  • BSH 7 slice header information
  • BSM 71 division marker 1
  • BSM 7n division marker 1
  • the encoding module 110 may include a memory for storing a program for performing the above-mentioned operations, and a processor for executing the stored program. Each of the components included in the encoding module 110 need not be physically separated or separated, but they can share the processor with the memory.
  • a program for performing the operations of the encoding module 110 described above may be stored in a single memory, and a single processor may execute the stored program to perform the operations of the encoding module 110 described above.
  • the video encoding apparatus 100 may be included in the transmission apparatus 10. [ The bit stream of the input image generated by the video encoding apparatus 100 is transmitted from the transmission apparatus 10 to the reception apparatus 20. [ The receiving apparatus 20 may include an image decoding apparatus for decoding the transmitted bit stream.
  • FIG. 10 is a control block diagram of an image decoding apparatus according to an embodiment
  • FIG. 11 is a control block diagram in which a decoding module of an image decoding apparatus according to a single thread type is embodied.
  • the image decoding apparatus 200 includes a slice separator 210, a sub-slice separator 220, an error detector 250, a decoding module 230, and an image restorer 240 ).
  • the respective components included in the video decoding apparatus 200 need not be physically separated or separated, but they can share the processor with the memory.
  • a program for performing an operation described later may be stored in a single memory, and a single processor may execute a stored program to perform an operation of each of the video decoding apparatuses 200.
  • the slice separator 210 separates a plurality of slices constituting a frame by detecting a slice start code from the input bit stream, and the sub slice separator 220 detects a division marker from a bit stream for a single slice A plurality of sub slices constituting a single slice can be distinguished from each other.
  • the error detector 250 checks the error of the input bitstream. As described above, an error may occur in the process of transmitting the bitstream from the video encoding apparatus 100 to the video decoding apparatus 200 according to the transmission environment.
  • the types of errors that occur are a single-bit error in which only one bit of data is changed, and a burst error in which two or more consecutive bits are changed.
  • the error detector 250 includes a parity check for adding a redundant bit called a parity bit to a data unit, a parity check for collecting even parities of all the bytes, Error checking can be performed by applying a method such as checking, cyclic redundancy check using binary division (CRC), check sum used in upper layer protocol, and the like.
  • a parity check for adding a redundant bit called a parity bit to a data unit
  • a parity check for collecting even parities of all the bytes
  • Error checking can be performed by applying a method such as checking, cyclic redundancy check using binary division (CRC), check sum used in upper layer protocol, and the like.
  • CRC binary division
  • the error detector 250 may check the error for each sub-slice.
  • the error detector 250 may discard or initialize the bitstream data for the sub-slice in which the error was detected.
  • the data for the sub-slice in which an error is detected can be recovered in the image restorer 240. That is, the image restorer 240 can generate a restoration image for the sub-slice in which an error is detected.
  • the error detector 250 inspects errors in units of sub-slices and initializes the data, it is possible to reduce image quality deterioration that occurs when an error occurs, as compared with a case where errors are detected in units of slices and data is initialized. The related operation will be described later.
  • the decoding module 230 may decode the input bit stream to restore the image. Hereinafter, this will be described in detail with reference to FIG.
  • the decoding module 230 includes an entropy decoder 231, an inverse quantizer 232, an inverse transformer 233, an adder 234, a filter 235, a memory 236 and a predictor 37, . ≪ / RTI >
  • the entropy decoder 231 may entropy-decode the input bitstream according to a probability distribution to generate symbols including symbols of a quantized coefficient type. Entropy decoding is a method of generating each symbol by receiving a binary sequence.
  • VLC Variable Length Coding
  • CAVLC Variable Length Coding
  • the entropy decoder 231 may also perform entropy decoding using CABAC in correspondence thereto.
  • the entropy decoder 231 receives the bean corresponding to each syntax element in the bitstream, and decodes the decoding target syntax element information, the decoding information of the neighboring block and the decoding target block
  • the context model can be determined using the information of the decoded symbol or bin.
  • the arithmetic decoding of the bean can be performed by predicting the occurrence probability of the bean according to the determined context model, and a symbol corresponding to the value of each syntax element can be generated.
  • the context model can be updated using the information of the decoded symbol or bean for the context model of the next symbol or bean.
  • the operation of processing the quantized coefficients output from the entropy decoder 231 is similar to the operation in which the encoding module 110 performs dequantization, inverse transform, addition, and the like on the quantized coefficients again to generate a reconstruction block.
  • the quantized coefficients output from the entropy decoder 231 are input to the inverse quantizer 232 and are inverse-quantized.
  • the inverse-quantized frequency coefficients are input to the inverse transformer 233 and can be inversely transformed from the frequency domain to the spatial domain. In this way, the inverse transformer 233 can generate the reconstructed residual block or reconstructed residual data.
  • the inverse quantizer 232 may perform inverse quantization based on the quantization parameter provided by the image encoding apparatus 100 and the inverse transformer 233 may perform inverse quantization using the inverse quantization performed by the inverse quantizer 232, Can be performed.
  • the entropy decoder 231 may transmit information for generating a prediction block among the decoded information to the predictor 237.
  • the predictor 237 can generate a prediction block based on the information related to the prediction block generation provided from the entropy decoder 231 and the already reconstructed block or frame information provided from the memory 236.
  • the predictor 237 can generate the prediction block by referring to the pixel information of the neighboring block in the current frame.
  • the predictor 237 can generate the prediction block by referring to the pixel information included in the neighboring frame (the previous frame or a subsequent frame) of the current frame. At this time, the predictor 237 can perform inter-frame prediction using motion information (e.g., motion vector, reference frame index, etc.) necessary for inter-frame prediction of the current block provided in the video encoding apparatus 100.
  • motion information e.g., motion vector, reference frame index, etc.
  • the slice unit may be used as a reference.
  • the blocks included in the same slice can be cross-referenced when generating a prediction block for each block. Therefore, even when blocks belonging to different sub slices belong to the same slice, they can be cross-referenced.
  • the adder 234 may add the residual block output from the inverse transformer 233 and the predictive block output from the predictor 237 to generate a reconstructed block.
  • the filter 235 may apply deblocking filtering, adaptive offset filtering, or adaptive loop filtering to filter the restored blocks, and the filtered restored blocks may be stored in the memory 236 and used to generate the predicted blocks.
  • FIGS. 12 and 13 are views showing an example of a method of decoding an error by an image decoding apparatus according to an embodiment
  • FIG. 14 is a diagram showing an error influence range when an error is recovered in slice units.
  • the image restorer 240 can recover the image of the sub-slice # 1 (SS 11 ) using the neighboring frame information, the neighboring sub-slice information, and the like.
  • the image restorer 240 can recover the image of the sub slice by applying at least one of various techniques for recovering errors generated in the compressed image data.
  • Restoration of the image or image restoration performed by the image restorer 240 may mean restoring the initialized data due to an error using other information or supplementing data affected by the error using other information have.
  • the bit stream for the remaining sub-slices in which no error is detected may be decoded by the decoding module 230 and output as a reconstructed image.
  • the bit stream for the sub slice # 2 (SS 12 ) Lt; / RTI >
  • the image restorer 240 decodes decoded data for the sub-slice # 2 (SS 12 ), surrounding sub-slice information, It is also possible to recover the image of the sub slice # 2 (SS 12 ).
  • the data to be restored may be the data of the block located at the boundary with the sub slice # 1 (SS 11 ) among the blocks included in the sub slice # 2 (SS 12 ).
  • the image decoding apparatus 200 according to the embodiment, only a partial region of the sub slice # 1 (SS 11 ) in which an error is detected and the adjacent sub slice # 2 (SS 12 ) Since the remaining sub-slices are independently processed and are not affected by errors, degradation in image quality due to errors can be minimized.
  • An error occurrence environment and a high extrusion rate transmission environment are respectively generated.
  • a bitstream of an image is transmitted from the image encoding apparatus 100 to the image decoding apparatus 200,
  • the compression efficiency of an image can be increased. Accordingly, when the image decoding apparatus 200 decodes the bit stream encoded by the image encoding apparatus 100 using an image of a specific pattern having a high entropy coding efficiency as an input image and outputs the decoded image to the display apparatus 30, Can be confirmed.
  • the image encoding apparatus 100 according to the above-described embodiment may be applied to the image encoding method according to an embodiment, and the image decoding apparatus 200 according to the above-described embodiment may be applied to the image decoding method. Therefore, the contents of FIGS. 1 to 14 described above can also be applied to the image encoding method and the image decoding method according to the embodiment.
  • 15 is a flowchart of a video encoding method according to an embodiment.
  • the input image is divided into a plurality of slices as shown in FIG. 15 (310).
  • the input image may be a moving image or a still image. In either case, the input image may be composed of frames.
  • the slice distributor 120 may divide the input image into slice units according to the slice setting parameters.
  • the slice configuration parameter may include information such as the number or shape of slices.
  • the slice setting parameter may be set by a designer or a user, may be set by information input from the outside, or may be set by the video encoding apparatus 100.
  • the sub-slice distributor 30 may divide the input image into a plurality of sub-slices (311).
  • the sub slice distributor 130 may divide the input image into sub slice units based on the sub slice setting parameters, and the sub slice setting parameters may include information such as the number or shape of the sub slices.
  • the sub-slice is a unit smaller than the slice. For example, the size of a single slice may be an integer multiple of the size of a single sub-slice.
  • the slice distributor 120 divides one frame into N (N is an integer of 1 or more) slices, and the sub slice distributor 130 divides each slice into n (n is an integer of 1 or more) It can be divided into slices (see Fig. 5).
  • the predictor 111 performs prediction on the input image to generate a predicted block (312).
  • the predictor 111 can generate a prediction block by referring to the information of neighboring blocks spatially adjacent to the current processing target block.
  • the predictor 111 performs prediction independently for each slice. Therefore, the information of the blocks belonging to the slice other than the current block can not be referred to, but the information of the blocks belonging to the same slice can be referred to even if they belong to different sub slices.
  • the subtracter 112 generates a residual block by subtracting the current block from the prediction block (313).
  • the transformer 113 performs a frequency transform to transform the residual block from the spatial domain to the frequency domain (314).
  • the converter 113 may perform frequency conversion and output a transform coefficient.
  • the quantizer 315 quantizes the output transform coefficient according to the quantization parameter and outputs the quantized coefficient (315).
  • the quantized coefficients output from the quantizer 315 are input to the entropy encoder 115 and the inverse quantizer 318a.
  • the dequantizer 116 may dequantize the quantized coefficients (319a) and recover the frequency coefficients. At this time, inverse quantization can be performed based on the quantization parameters used by the quantizer 114.
  • the inverse transformer 117 may invert the reconstructed frequency coefficient from the frequency domain to the spatial domain (319b) to recover the residual block.
  • the inverse transformer 117 may perform an inverse transform on the frequency transform technique performed by the transformer 113.
  • the adder 118 adds the prediction block generated by the predictor 111 to the reconstructed residual block to generate a reconstruction block for the input image (319c).
  • the generated restoration block may be stored in the memory 119a and used as a reference block of the predictor 111.
  • the filter 119 may apply deblocking filtering, sample adaptive offset filtering, or adaptive loop filtering to filter the restoration block.
  • the entropy encoder 115 performs entropy encoding on the quantized coefficients output from the quantizer 114 (316).
  • the entropy encoder 115 may perform entropy encoding on the basis of a sub-slice unit. Therefore, the entropy encoder 115 can perform entropy encoding by independently processing each sub-slice without referring to information of other sub-slices.
  • the marker generator 140 generates and inserts a division marker for identifying a sub slice in the bit stream generated by the entropy encoder 115 (317).
  • the division markers may include a column of feature binary numbers.
  • the video encoding apparatus 100 outputs a bitstream in which a division marker is inserted for each sub slice (318).
  • the output bitstream may have a structure as shown in FIG.
  • the output bit stream may be transmitted to the receiving apparatus 20 via the transmitting apparatus 10.
  • independent processing is performed in units of slices, not in units of sub slices, so that peripheral information that can be referred to increases, and thus the average image quality of the image can be improved.
  • 16 is a flowchart of an image decoding method according to an embodiment.
  • the slice separator 210 detects a slice start code from the inputted bit stream and forms a frame A plurality of slices are divided (330), and a sub-slice separator 220 detects a division marker from a bit stream of a single slice to separate a plurality of sub-slices constituting a single slice (331).
  • the error detector 250 detects an error in the input bitstream (332).
  • the error detector 250 can detect an error for each sub-slice.
  • the error detector 250 may discard or initialize the bitstream data for the sub-slice in which the error was detected.
  • the image restorer 240 may recover the sub-slice image in which the error is detected (338).
  • the bit stream for the sub-slice in which no error is detected is input to the entropy decoder 231.
  • the entropy decoder 231 can entropy-decode the input bitstream according to the probability distribution (333).
  • the entropy decoder 231 may perform entropy decoding to generate symbols including symbols of a quantized coefficient type.
  • the inverse quantizer 232 performs inverse quantization on the quantized coefficients based on the quantization parameters provided in the video encoding apparatus 100 (334).
  • the frequency coefficients can be output through inverse quantization.
  • the inverse transformer 233 performs an inverse transform on the frequency transform performed by the transformer 113 of the image encoding apparatus 100 with respect to the frequency coefficient (335).
  • a residual block may be generated through an inverse transform (336).
  • the adder 234 generates a reconstruction block using the residual block and the prediction block output from the predictor 237 (337).
  • the predictor 237 may generate a prediction block based on the information related to the prediction block generation provided from the entropy decoder 231 and the already reconstructed block or frame information provided from the memory 236.
  • the image decoding apparatus 200 outputs reconstructed images including reconstructed blocks for the sub-slices in which no error is detected and reconstructed sub-slice images (339).
  • a sub-slice in which an error is detected using the decoded data of a sub-slice in which an error is detected, neighboring sub-slice information, or neighboring frame information It is also possible to further include restoring.
  • the video decoding apparatus the video decoding apparatus, the video encoding method, and the video decoding method according to the above-described embodiments, only the entropy encoding is performed in units of sub slices and the remaining processing is performed in units of slices, , And when an error occurs, initialization and restoration of data in units of sub slices can minimize the deterioration of image quality due to an error occurrence.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An image encoding device according to an embodiment comprises: a slice partitioner for partitioning an input image into multiple slices; a sub-slice partitioner for partitioning each of the multiple slices into multiple sub-slices; and an encoding module for determining a predicted value for data of the input image by processing the data of the input image in units of the slices, generating symbols by using the predicted value, and outputting a bitstream for the input image by performing entropy encoding of the symbols in units of the sub-slices.

Description

영상 인코딩 장치, 영상 디코딩 장치, 영상 인코딩 방법 및 영상 디코딩 방법Video encoding device, video decoding device, video encoding method and video decoding method
영상 데이터를 인코딩하는 영상 인코딩 장치 및 영상 인코딩 방법과, 인코딩된 데이터를 디코딩하는 영상 디코딩 장치 및 영상 디코딩 방법에 관한 것이다.An image encoding apparatus and an image encoding method for encoding image data, an image decoding apparatus and an image decoding method for decoding encoded data.
영상의 압축 기술이 발전함에 따라 대용량 고화질의 영상을 다양한 기기에서 시청할 수 있게 되었다. 영상 데이터는 소정의 데이터 압축 표준에 따라 인코딩될 수 있고, 인코딩된 영상 데이터는 비트스트림 형태로 전송될 수 있다.As the image compression technology develops, it becomes possible to view large-capacity high-definition images on various devices. The image data may be encoded according to a predetermined data compression standard, and the encoded image data may be transmitted in the form of a bit stream.
영상 데이터를 무선으로 전송하는 경우에는, 전송 환경에 따라 데이터 전송에 에러가 발생할 수 있다. 데이터 전송에 에러가 발생한 경우 송신단에 영상 데이터의 재전송을 요청하게 되면, 시간 지연이 발생할 수 있다. 이러한 시간 지연을 방지하기 위해 수신단에서 에러를 복원할 수 있는바, 복원하는 방식에 따라 디스플레이 장치에 출력되는 영상의 화질에 차이가 생긴다. In the case of transmitting video data wirelessly, an error may occur in data transmission depending on the transmission environment. If an error occurs in the data transmission, a request for retransmission of the image data to the transmitting end may cause a time delay. In order to prevent such a time delay, errors can be restored at the receiving end, and there is a difference in the image quality of the image output to the display device according to the restoring method.
따라서, 전송된 영상 데이터에 에러가 발생한 경우 이를 효과적으로 복원할 수 있는 방법에 관한 연구가 필요하다.Therefore, it is necessary to study a method for effectively recovering an error in transmitted image data.
엔트로피 인코딩은 서브 슬라이스 단위로 수행하고 나머지 처리는 슬라이스 단위로 수행함으로써 영상의 평균 화질을 향상시킬 수 있고, 에러가 발생한 경우에는 서브 슬라이스 단위로 데이터를 초기화 및 복구함으로써 에러 발생으로 인한 화질 저하를 최소화할 수 있는 인코딩 장치, 영상 디코딩 장치, 영상 인코딩 방법 및 영상 디코딩 방법을 제공한다.The entropy encoding is performed in units of sub slices, and the rest of the processing is performed in units of slices, thereby improving the average image quality of the image. When an error occurs, data is initialized and restored in units of sub slices, An image decoding apparatus, an image encoding method, and an image decoding method, which can be performed by the image decoding apparatus.
일 실시예에 따른 영상 인코딩 장치는, 입력 영상을 복수의 슬라이스로 분할하는 슬라이스 분배기; 상기 복수의 슬라이스를 각각 복수의 서브 슬라이스로 분할하는 서브 슬라이스 분배기; 및 상기 입력 영상의 데이터를 상기 슬라이스 단위로 처리하여 상기 입력 영상의 데이터에 대한 예측값을 결정하고, 상기 예측값을 이용하여 심볼을 생성하고, 상기 심볼에 대해 상기 서브 슬라이스 단위로 엔트로피 인코딩을 수행하여 상기 입력 영상에 대한 비트스트림을 출력하는 인코딩 모듈;을 포함한다.According to an embodiment of the present invention, a video encoding apparatus includes: a slice distributor for dividing an input image into a plurality of slices; A sub slice divider dividing the plurality of slices into a plurality of sub slices; And processing the data of the input image by the slice unit to determine a predicted value for the data of the input image, generating a symbol using the predicted value, and performing entropy encoding on the symbol for the sub- And an encoding module for outputting a bit stream for the input image.
상기 영상 인코딩 장치는, 상기 복수의 서브 슬라이스를 구분하기 위한 구분 마커를 생성하고, 상기 출력된 비트스트림에서 상기 복수의 서브 슬라이스에 대한 데이터가 시작되는 위치마다 상기 구분 마커를 삽입하는 마커 생성기;를 더 포함할 수 있다.The image encoding apparatus includes a marker generator for generating a division marker for identifying the plurality of sub slices and inserting the division marker for each position where data for the plurality of sub slices starts in the output bit stream .
상기 인코딩 모듈은, 상기 예측값의 결정 대상인 현재 블록과 동일한 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조하여 상기 현재 블록의 예측값을 결정할 수 있다.The encoding module may determine the predicted value of the current block by referring to information of at least one neighboring block included in the same slice as the current block to be predicted.
상기 인코딩 모듈은, 상기 현재 블록의 데이터와 상기 결정된 예측값을 차분하여 생성된 잔차 데이터에 주파수 변환을 수행하여 변환 계수를 생성하고, 상기 변환 계수에 양자화를 수행하여 양자화된 계수 형태의 상기 심볼을 생성할 수 있다.Wherein the encoding module generates a transform coefficient by performing frequency conversion on the residual data generated by subtracting the data of the current block from the determined predicted value and quantizes the transform coefficient to generate the quantized coefficient type symbol can do.
상기 인코딩 모듈은, 상기 심볼에 역양자화 및 역양자화를 수행하여 잔차 데이터를 복원하고, 상기 잔차 데이터와 상기 예측값을 이용하여 복원 데이터를 생성할 수 있다.The encoding module may perform inverse quantization and dequantization on the symbol to recover residual data, and generate restored data using the residual data and the predicted value.
상기 복원 데이터를 저장하는 메모리;를 더 포함하고, 상기 인코딩 모듈은, 현재 블록의 데이터에 대한 예측값을 결정할 때, 상기 메모리에 저장된 복원 데이터 중 주변 블록에 대한 복원 데이터를 참조할 수 있다.And a memory for storing the restored data, wherein when the predicted value of the data of the current block is determined, restoration data of the neighboring block among the restored data stored in the memory can be referred to.
상기 인코딩 모듈은, 현재 블록에 대해 엔트로피 인코딩을 수행할 때 상기 현재 블록과 동일한 서브 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조할 수 있다.The encoding module may refer to information of at least one neighboring block included in the same sub-slice as the current block when entropy encoding is performed on the current block.
상기 서브 슬라이스 분배기는, 상기 복수의 서브 슬라이스의 개수에 관한 파라미터에 기초하여 상기 복수의 슬라이스를 분할할 수 있다.The sub slice distributor may divide the plurality of slices based on a parameter relating to the number of the plurality of sub slices.
일 실시예에 따른 영상 디코딩 장치는, 입력된 비트스트림에서 슬라이스 시작 코드를 검출하여 복수의 슬라이스를 구분하는 슬라이스 구분기; 상기 입력된 비트스트림에서 구분 마커를 검출하여 복수의 서브 슬라이스를 구분하는 서브 슬라이스 구분기; 상기 입력된 비트스트림에 대해 에러를 검사하고, 상기 에러가 검출된 서브 슬라이스의 데이터를 초기화하는 에러 검출기; 상기 에러가 검출되지 않은 비트스트림을 디코딩하여 복원 영상을 생성하는 디코딩 모듈; 및 상기 에러가 검출된 서브 슬라이스의 데이터를 복구하여 복구 영상을 생성하는 영상 복구기;를 포함한다.An apparatus for decoding an image according to an exemplary embodiment includes a slice separator for detecting a slice start code in an input bitstream to separate a plurality of slices; A sub slice separator for separating a plurality of sub slices by detecting a division marker in the input bit stream; An error detector for checking an error for the input bit stream and for initializing data of the sub slice in which the error is detected; A decoding module for decoding a bitstream in which the error is not detected to generate a reconstructed image; And an image restorer for recovering data of the sub slice in which the error is detected to generate a restored image.
상기 복수의 슬라이스는 각각 복수의 서브 슬라이스를 포함할 수 있다.The plurality of slices may each include a plurality of sub-slices.
상기 영상 복구기는, 상기 에러가 검출된 서브 슬라이스와 인접한 주변 슬라이스에 포함되는 복수의 블록 중 상기 에러가 검출된 서브 슬라이스와의 경계에 위치하는 블록의 데이터를 복구할 수 있다.The image restorer can recover data of a block located at a boundary between the sub slice in which the error is detected and a sub slice in which the error is detected among a plurality of blocks included in a neighboring slice adjacent thereto.
상기 디코딩 모듈은, 상기 에러가 검출되지 않은 비트스트림에 대해 상기 서브 슬라이스 단위로 엔트로피 디코딩을 수행하여 양자화된 계수 형태의 심볼을 생성할 수 있다.The decoding module may perform entropy decoding on the bit stream in which the error is not detected for each sub-slice to generate a quantized coefficient type symbol.
상기 디코딩 모듈은, 상기 심볼에 대해 역양자화 및 역변환을 수행하여 잔차 신호를 복원하고, 상기 슬라이스 단위로 수행된 예측에 의해 결정된 예측값과 상기 잔차 신호를 합산하여 복원 블록을 생성할 수 있다.The decoding module may perform inverse quantization and inverse transform on the symbol to recover the residual signal, and may generate a restored block by summing the residual value and the predicted value determined by the prediction performed on a slice-by-slice basis.
일 실시예에 따른 영상 인코딩 방법은, 입력 영상을 복수의 슬라이스로 분할하고; 상기 복수의 슬라이스를 각각 복수의 서브 슬라이스로 분할하고; 상기 입력 영상의 데이터를 상기 슬라이스 단위로 처리하여 상기 입력 영상의 데이터에 대한 예측값을 결정하고; 상기 예측값을 이용하여 심볼을 생성하고; 상기 심볼에 대해 상기 서브 슬라이스 단위로 엔트로피 인코딩을 수행하여 상기 입력 영상에 대한 비트스트림을 출력하는 것;을 포함한다.According to an embodiment, an image encoding method includes: dividing an input image into a plurality of slices; Dividing the plurality of slices into a plurality of sub slices; Processing the data of the input image by the slice unit to determine a predicted value for the data of the input image; Generate a symbol using the predicted value; And performing entropy encoding on the sub-slice basis for the symbol to output a bit stream for the input image.
상기 영상 인코딩 방법은, 상기 복수의 서브 슬라이스를 구분하기 위한 구분 마커를 생성하고; 상기 입력 영상에 대한 비트스트림에서 상기 복수의 서브 슬라이스에 대한 데이터가 시작되는 위치마다 상기 구분 마커를 삽입하는 것;을 더 포함할 수 있다.Wherein the image encoding method comprises: generating a division marker for identifying the plurality of sub slices; And inserting the segmentation marker at a position where data for the plurality of sub slices is started in the bit stream for the input image.
상기 예측값을 결정하는 것은, 현재 블록의 데이터에 대한 예측값을 결정할 때, 상기 현재 블록과 동일한 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조할 수 있다.The determination of the predicted value may refer to information of at least one neighboring block included in the same slice as the current block when determining a predicted value for data of the current block.
상기 심볼을 생성하는 것은, 상기 현재 블록의 데이터와 상기 결정된 예측값을 차분하여 잔차 데이터를 생성하고; 상기 잔차 데이터에 주파수 변환을 수행하여 변환 계수를 생성하고; 상기 변환 계수에 양자화를 수행하여 양자화된 계수 형태의 상기 심볼을 생성하는 것;을 포함할 수 있다.Generating the symbol comprises generating residual data by subtracting the data of the current block from the determined predicted value; Performing frequency conversion on the residual data to generate a transform coefficient; And performing quantization on the transform coefficients to generate the symbols of the form of quantized coefficients.
상기 영상 인코딩 방법은, 상기 심볼에 역양자화 및 역양자화를 수행하여 잔차 데이터를 복원하고; 상기 복원된 잔차 데이터와 상기 예측값을 이용하여 복원 데이터를 생성하는 것;을 더 포함할 수 있다.The image encoding method may include performing inverse quantization and inverse quantization on the symbols to recover residual data; And generating reconstruction data using the reconstructed residual data and the predicted values.
상기 영상 인코딩 방법은, 상기 복원 데이터를 저장하는 것;을 더 포함하고, 상기 예측값을 결정하는 것은, 현재 블록의 데이터에 대한 예측값을 결정할 때, 상기 저장된 복원 데이터 중 주변 블록에 대한 복원 데이터를 참조하는 것;을 포함할 수 있다.The image encoding method according to claim 1, further comprising storing the restored data, wherein the step of determining the predicted value comprises: when determining a predicted value for data of a current block, Or < / RTI >
상기 엔트로피 인코딩을 수행하는 것은, 현재 블록에 대해 엔트로피 인코딩을 수행할 때 현재 블록과 동일한 서브 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조하는 것;을 포함할 수 있다.Performing the entropy encoding may include referring to information of at least one neighboring block included in the same sub-slice as the current block when entropy encoding is performed on the current block.
일 실시예에 따른 영상 디코딩 방법은, 입력된 비트스트림에서 슬라이스 시작 코드를 검출하여 복수의 슬라이스를 구분하고; 상기 입력된 비트스트림에서 구분 마커를 검출하여 복수의 서브 슬라이스를 구분하고; 상기 입력된 비트스트림에 대해 에러를 검사하고; 상기 에러가 검출된 서브 슬라이스의 데이터를 초기화하고; 상기 에러가 검출되지 않은 비트스트림을 디코딩하여 복원 영상을 생성하고; 상기 에러가 검출된 서브 슬라이스의 데이터를 복구하여 복구 영상을 생성하는 것;을 포함한다.According to an embodiment of the present invention, there is provided an image decoding method comprising: detecting a slice start code in an input bitstream to divide a plurality of slices; Detecting a division marker in the input bit stream to separate a plurality of sub slices; Checking an error for the input bitstream; Initializing data of the sub slice in which the error is detected; Generating a reconstructed image by decoding a bitstream in which the error is not detected; And recovering the data of the sub slice in which the error is detected to generate a restored image.
상기 에러가 검출된 서브 슬라이스와 인접한 주변 슬라이스에 포함되는 복수의 블록 중 상기 에러가 검출된 서브 슬라이스와의 경계에 위치하는 블록의 데이터를 복구하는 것;을 더 포함할 수 있다.And restoring data of a block located at a boundary between the sub-slice in which the error is detected and the sub-slice in which the error is detected, among a plurality of blocks included in the neighboring slice adjacent to the sub-slice.
상기 복원 영상을 생성하는 것은, 상기 에러가 검출되지 않은 비트스트림에 대해 상기 서브 슬라이스 단위로 엔트로피 디코딩을 수행하여 양자화된 계수 형태의 심볼을 생성하는 것;을 포함할 수 있다.The generation of the reconstructed image may include entropy decoding on the sub-slice basis for a bit stream in which the error is not detected to generate a quantized coefficient type symbol.
상기 복원 영상을 생성하는 것은, 상기 심볼에 대해 역양자화 및 역변환을 수행하여 잔차 신호를 복원하고; 상기 슬라이스 단위로 수행된 예측에 의해 결정된 예측값과 상기 잔차 신호를 합산하여 복원 블록을 생성하는 것;을 포함할 수 있다.Generating the reconstructed image comprises performing inverse quantization and inverse transform on the symbol to reconstruct the residual signal; And generating a reconstruction block by summing the predicted value determined by the prediction performed in the slice unit and the residual signal.
전술한 실시예에 따른 영상 인코딩 장치, 영상 디코딩 장치, 영상 인코딩 방법 및 영상 디코딩 방법에 의하면, 엔트로피 인코딩은 서브 슬라이스 단위로 수행하고 나머지 처리는 슬라이스 단위로 수행함으로써 영상의 평균 화질을 향상시킬 수 있고, 에러가 발생한 경우에는 서브 슬라이스 단위로 데이터를 초기화 및 복구함으로써 에러 발생으로 인한 화질 저하를 최소화할 수 있다.According to the video encoding apparatus, the video decoding apparatus, the video encoding method, and the video decoding method according to the above-described embodiments, the entropy encoding is performed in units of sub slices and the remaining processing is performed in units of slices, , And when an error occurs, initialization and restoration of data in units of sub slices can minimize the deterioration of image quality due to an error occurrence.
도 1은 송신 장치와 수신 장치가 영상 데이터를 주고 받는 예시를 나타낸 도면이다.1 is a diagram illustrating an example in which a transmitting apparatus and a receiving apparatus exchange image data.
도 2는 영상의 인코딩 또는 디코딩 시에 독립적으로 처리되는 단위를 나타낸 도면이다.FIG. 2 is a diagram showing a unit that is independently processed at the time of encoding or decoding an image.
도 3은 특정 슬라이스에 에러가 발생한 경우에 에러의 영향 범위를 나타낸 도면이다.3 is a diagram showing a range of an influence of an error when an error occurs in a specific slice.
도 4는 일 실시예에 따른 영상 인코딩 장치의 제어 블록도이다.4 is a control block diagram of a video encoding apparatus according to an embodiment.
도 5 및 도 6은 일 실시예에 따른 영상 인코딩 장치에 의해 분할되는 슬라이스 예시를 나타내는 도면이다. 5 and 6 are views showing examples of slices that are divided by the image encoding apparatus according to an embodiment.
도 7은 일 실시예에 따른 영상 인코딩 장치에 있어서 인코딩 모듈의 구성이 구체화된 제어 블록도이다.FIG. 7 is a control block diagram illustrating a configuration of an encoding module in a video encoding apparatus according to an exemplary embodiment.
도 8은 일 실시예에 따른 영상 인코딩 장치가 블록 단위로 인코딩을 수행하는 동작의 예시를 나타내는 도면이다.8 is a diagram illustrating an example of an operation in which the video encoding apparatus according to the embodiment performs encoding on a block basis.
도 9는 일 실시예에 따른 영상 인코딩 장치에서 생성하는 비트스트림 데이터의 예시를 나타낸 도면이다.9 is a diagram illustrating an example of bitstream data generated by a video encoding apparatus according to an exemplary embodiment.
도 10은 일 실시예에 따른 영상 디코딩 장치의 제어 블록도이다.10 is a control block diagram of an image decoding apparatus according to an embodiment.
도 11은 일 실싱예에 따른 영상 디코딩 장치의 디코딩 모듈이 구체화된 제어 블록도이다.FIG. 11 is a control block diagram illustrating a decoding module of an image decoding apparatus according to a single-shot type.
도 12 및 도 13은 일 실시예에 따른 영상 디코딩 장치가 에러를 복원하는 방법의 예시를 나타낸 도면이다.12 and 13 are views illustrating an example of a method of decoding an error by an image decoding apparatus according to an embodiment.
도 14는 슬라이스 단위로 에러를 복구하는 경우의 에러 영향 범위를 나타낸 도면이다. FIG. 14 is a diagram showing an error influence range when error is recovered on a slice-by-slice basis.
도 15는 일 실시예에 따른 영상 인코딩 방법에 대한 순서도이다.15 is a flowchart of a video encoding method according to an embodiment.
도 16은 일 실시예에 따른 영상 디코딩 방법에 대한 순서도이다.16 is a flowchart of an image decoding method according to an embodiment.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다. 본 명세서가 실시예들의 모든 요소들을 설명하는 것은 아니며, 본 발명이 속하는 기술분야에서 일반적인 내용 또는 실시예들 간에 중복되는 내용은 생략한다. 명세서에서 사용되는 '부, 모듈, 부재'라는 용어는 소프트웨어 또는 하드웨어로 구현될 수 있으며, 실시예들에 따라 복수의 '부, 모듈, 부재, 블록'이 하나의 구성요소로 구현되거나, 하나의 '부, 모듈, 부재'가 복수의 구성요소들을 포함하는 것도 가능하다. Like reference numerals refer to like elements throughout the specification. The present specification does not describe all elements of the embodiments, and redundant description between general contents or embodiments in the technical field of the present invention will be omitted. As used herein, the term " module, module " may be embodied in software or hardware, and may be embodied as a single component or as a plurality of subsystems, modules, It is also possible for 'part, module, member' to include a plurality of components.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 간접적으로 연결되어 있는 경우를 포함하고, 간접적인 연결은 무선 통신망을 통해 연결되는 것을 포함한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only the case directly connected but also the case where the connection is indirectly connected, and the indirect connection includes connection through the wireless communication network do.
또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Also, when an element is referred to as " comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.
단수의 표현은 문맥상 명백하게 예외가 있지 않는 한, 복수의 표현을 포함한다.The singular forms " a " include plural referents unless the context clearly dictates otherwise.
각 단계들에 있어 식별부호는 각 단계들을 식별하기 위해 사용되는 것으로 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 실시될 수 있다. In each step, the identification code is used to identify each step and does not describe the order of the steps, and each step may be performed differently from the order specified unless the context clearly states a particular order.
이하, 첨부된 도면을 참조하여 일 측면에 따른 영상 인코딩 장치, 영상 디코딩 장치, 영상 인코딩 방법 및 영상 디코딩 방법에 관한 실시예를 상세하게 설명한다. Hereinafter, embodiments of an image encoding apparatus, an image decoding apparatus, an image encoding method, and an image decoding method according to one aspect will be described in detail with reference to the accompanying drawings.
도 1은 송신 장치와 수신 장치가 영상 데이터를 주고 받는 예시를 나타낸 도면이고, 도 2는 영상의 인코딩 또는 디코딩 시에 독립적으로 처리되는 단위를 나타낸 도면이고, 도 3은 특정 슬라이스에 에러가 발생한 경우에 에러의 영향 범위를 나타낸 도면이다.FIG. 1 is a diagram illustrating an example of transmitting and receiving image data between a transmitting apparatus and a receiving apparatus, FIG. 2 is a diagram illustrating a unit that is independently processed at the time of encoding or decoding an image, and FIG. Fig. 9 is a diagram showing the range of the influence of errors in the case of Fig.
도 1을 참조하면, 송신 장치(10)는 무선 전송 환경에서 영상 데이터를 전송하기 위해 일정 압축 표준에 따라 영상 데이터를 압축하고, 비트스트림 형태로 수신 장치(20)에 전송할 수 있다. 수신 장치(20)는 수신된 영상 데이터를 디코딩하여 디스플레이 장치(30)에 영상을 출력한다.Referring to FIG. 1, the transmitting apparatus 10 compresses image data according to a certain compression standard for transmitting image data in a wireless transmission environment, and transmits the compressed image data to the receiving apparatus 20 in the form of a bit stream. The receiving apparatus 20 decodes the received image data and outputs the image to the display apparatus 30.
이러한 무선 전송 환경에서는 송신 장치(10)와 수신 장치(20) 사이에 존재하는 장애물, 무선 통신 네트워크 상황의 변화 등 다양한 변수로 인해 패킷 손실(Packet Loss), 패킷 변형(Packet Corruption) 등이 발생하여 데이터 전송에 에러가 발생할 수 있다. In such a wireless transmission environment, a packet loss (packet loss), packet deformation (packet corruption), or the like occurs due to various variables such as an obstacle existing between the transmission apparatus 10 and the reception apparatus 20, An error may occur in data transmission.
수신 장치(20)에서 에러를 검출하고 에러가 검출된 데이터를 복구할 수 있다. 그러나, 출력 영상에서 데이터가 복구된 영역은 에러가 발생하지 않은 영역에 비해 화질이 떨어지게 된다.It is possible to detect an error in the receiving apparatus 20 and recover the data in which the error is detected. However, the area where the data is recovered from the output image is lower in image quality than the area where no error occurs.
영상 압축 기술에서는, 영상을 계층적으로 정의하고 정의된 계층에 따라 독립적으로 처리할 수 있다. 후술하는 실시예에서 영상은 동영상과 정지 영상을 모두 포함할 수 있고, 동영상과 정지 영상은 프레임으로 구성될 수 있다. In image compression technology, images can be hierarchically defined and processed independently according to defined hierarchy. In the embodiments described below, the video may include both moving images and still images, and the moving image and the still image may be frames.
도 2를 참조하면, 하나의 프레임은 슬라이스로 정의되는 더 작은 단위로 분할될 수 있다. 즉, 하나의 프레임은 복수의 슬라이스로 구성될 수 있다. 하나의 플레임을 구성하는 복수의 슬라이스는 영상 압축 표준에 따라 다양한 방식으로 분할될 수 있다. Referring to FIG. 2, one frame may be divided into smaller units defined by slices. That is, one frame may be composed of a plurality of slices. A plurality of slices constituting one frame may be divided in various ways according to an image compression standard.
각각의 슬라이스는 독립적으로 처리될 수 있다. 여기서, 독립적으로 된다는 것은, 단일 슬라이스에 대한 인코딩 및 디코딩 시에 다른 슬라이스에 포함된 정보를 참조하지 않는 것을 의미할 수 있다. 따라서, 슬라이스 #1, 슬라이스 #2, 슬라이스 #4, ..., 슬라이스 #N은 각각 독립적으로 처리되고, 인코딩 및 디코딩 시에 다른 슬라이스에 포함된 정보를 이용할 수 없다. Each slice can be processed independently. Here, being independent may mean not referring to information included in another slice in encoding and decoding for a single slice. Therefore, the slice # 1, the slice # 2, the slice # 4, ..., and the slice #N are independently processed, and the information contained in the other slice can not be used during encoding and decoding.
인코딩 및 디코딩이 수행되는 영상의 최소 처리 단위는 블록(Block)이라 할 수 있다. 단일 슬라이스는 적어도 하나의 블록을 포함할 수 있다. 예를 들어, 블록은 코딩 트리 유닛(Coding Tree Unit), 예측 유닛(Prediction Unit), 변환 유닛(Transform Unit) 일 수 있다. The minimum processing unit of an image in which encoding and decoding are performed may be referred to as a block. A single slice may include at least one block. For example, the block may be a Coding Tree Unit, a Prediction Unit, or a Transform Unit.
일 예로, 블록은 8x8 픽셀, 16x16 픽셀 등과 같이 복수의 픽셀 집합으로 정의될 수 있으나, 이는 예시에 해당할 뿐 영상 인코딩 장치(100)의 실시예에서 블록이 반드시 2차원 픽셀 배열로 구성되어야 하는 것은 아니다. For example, a block may be defined by a plurality of pixel sets, such as 8x8 pixels, 16x16 pixels, etc., but this corresponds to an example, and in the embodiment of the video encoding apparatus 100, no.
영상 압축은 영상을 전송하기 위해 그 데이터량을 줄이는 것이다. 이를 위해, 영상을 블록 단위로 인코딩 및 디코딩함에 있어서, 주변 블록 정보를 이용할 수 있다. 따라서, 주변 블록이 디코딩 되어야 현재 처리 대상인 블록에 대한 인코딩 또는 디코딩이 가능하게 된다. 전술한 바와 같이, 각각의 슬라이스는 독립적으로 처리되므로, 같은 슬라이스내에 있는 주변 블록의 정보만 이용할 수 있다. 따라서, 하나의 프레임을 구성하는 슬라이스의 수가 적을수록 이용할 주변 블록의 범위가 넓어져 평균 화질이 향상된다. Image compression is to reduce the amount of data to transmit the image. For this purpose, surrounding block information can be used in encoding and decoding the image in units of blocks. Therefore, the surrounding block must be decoded to enable encoding or decoding of the current block to be processed. As described above, since each slice is processed independently, only information of neighboring blocks in the same slice can be used. Therefore, the smaller the number of slices constituting one frame, the wider the range of the peripheral blocks to be used, and the higher the average image quality is.
도 3의 예시와 같이, 슬라이스 #2에 에러가 발생한 경우, 수신 장치(20)는 발생된 에러를 검출하고, 슬라이스 #2의 데이터는 폐기 또는 초기화할 수 있다. As shown in the example of FIG. 3, when an error occurs in the slice # 2, the receiving apparatus 20 can detect the generated error and discard or initialize the data of the slice # 2.
각각의 슬라이스는 독립적으로 처리되므로, 슬라이스 #2를 제외한 나머지 슬라이스는 정상적으로 디코딩되고, 에러가 발생한 슬라이스 #2는 주변 슬라이스 정보 또는 주변 프레임 정보를 이용하여 복원할 수 있다. Since each slice is processed independently, the remaining slices except the slice # 2 are decoded normally, and the slice # 2 in which an error occurs can be restored by using the neighboring slice information or the neighboring frame information.
단일 슬라이스 내의 일부 블록에만 에러가 발생한 경우라도, 슬라이스 단위로 처리가 되기 때문에 해당 슬라이스의 전체 데이터가 폐기된다. 따라서, 하나의 프레임을 구성하는 슬라이스의 수가 많을수록 단일 슬라이스의 크기가 작아져 에러 발생으로 인한 화질 저하가 좁은 영역에서 나타날 수 있다.Even if an error occurs only in some blocks in a single slice, since the processing is performed on a slice-by-slice basis, the entire data of the slice is discarded. Therefore, the larger the number of slices constituting one frame, the smaller the size of the single slice, and the degradation in image quality due to the occurrence of errors can be seen in a narrow region.
일 실시예에 따른 영상 인코딩 장치 및 영상 디코딩 장치는, 단일 슬라이스를 더 작은 단위의 서브 슬라이스로 분할하고, 슬라이스 단위로 처리되는 단계와 서브 슬라이스 단위로 처리되는 단계를 다르게 적용함으로써 영상의 평균 화질은 향상시키고 에러 발생 시의 화질 저하는 최소화시킬 수 있다.The image encoding apparatus and the image decoding apparatus according to an embodiment divide a single slice into sub-slices of a smaller unit and apply different steps of processing in units of slices and steps of processing in units of sub slices, And degradation of image quality in the event of an error can be minimized.
도 4는 일 실시예에 따른 영상 인코딩 장치의 제어 블록도이고, 도 5 및 도 6은 일 실시예에 따른 영상 인코딩 장치에 의해 분할되는 슬라이스 예시를 나타내는 도면이다. FIG. 4 is a control block diagram of a video encoding apparatus according to an embodiment, and FIGS. 5 and 6 are views illustrating an example of a slice divided by a video encoding apparatus according to an exemplary embodiment.
도 4를 참조하면, 일 실시예에 따른 영상 인코딩 장치(100)는 입력된 영상을 인코딩하는 인코딩 모듈(110), 입력된 영상을 복수의 슬라이스로 분할하는 슬라이스 분배기(120), 단일 슬라이스를 서브 슬라이스로 분배하는 서브 슬라이스 분배기(130) 및 인코딩 모듈(110)로부터 출력되는 비트스트림에 서브 슬라이스를 구분하는 구분 마커를 삽입하는 마커 생성기(140)를 포함한다. 4, an apparatus 100 for encoding an image according to an exemplary embodiment of the present invention includes an encoding module 110 for encoding an input image, a slice distributor 120 for dividing an input image into a plurality of slices, And a marker generator 140 for inserting a division marker for separating a sub-slice into a bit stream output from the encoding module 110 and a sub-slice distributor 130 for distributing to a slice.
영상 인코딩 장치(100)의 동작을 명확히 설명하기 위해, 구성요소를 인코딩 모듈(110), 슬라이스 분배기(120), 서브 슬라이스 분배기(130) 및 마커 생성기(140)로 구분하였으나, 이들 구성요소들이 물리적으로 반드시 분리되는 것은 아니다. 인코딩 모듈(110), 슬라이스 분배기(120), 서브 슬라이스 분배기(130) 및 마커 생성기(140)는 단일 프로세서와 단일 메모리에 의해 구현되는 것도 가능하고, 복수의 프로세서와 복수의 메모리가 집적된 단일 칩에 의해 구현되는 것도 가능하다. 후자의 경우, 각각의 구성요소가 프로세서와 메모리를 공유할 수 있다.The slice distributor 120, the sub-slice distributor 130 and the marker generator 140. However, when the components are physically divided into physical components such as physical It is not necessarily separated. The encoding module 110, the slice distributor 120, the sub-slice distributor 130, and the marker generator 140 may be implemented by a single processor and a single memory, and may be implemented as a single chip As shown in FIG. In the latter case, each component can share memory with the processor.
슬라이스 분배기(120)는 슬라이스 설정 파라미터에 따라 입력 영상을 복수의 슬라이스로 분할할 수 있다. 슬라이스 설정 파라미터는 슬라이스의 개수 또는 모양과 같은 정보를 포함할 수 있다. 슬라이스 설정 파라미터는 설계자 또는 사용자에 의해 설정될 수도 있고, 외부로부터 입력되는 정보에 의해 설정될 수도 있으며, 영상 인코딩 장치(100)가 설정하는 것도 가능하다. The slice distributor 120 may divide the input image into a plurality of slices according to the slice setting parameters. The slice configuration parameter may include information such as the number or shape of slices. The slice setting parameter may be set by a designer or a user, may be set by information input from the outside, or may be set by the video encoding apparatus 100.
서브 슬라이스 분배기(130)도 마찬가지로 서브 슬라이스 설정 파라미터에 기초하여 입력 영상을 복수의 서브 슬라이스로 분할할 수 있고, 서브 슬라이스 설정 파라미터는 서브 슬라이스의 개수 또는 모양과 같은 정보를 포함할 수 있다. 서브 슬라이스는 슬라이스보다 작은 단위이며, 일 예로, 단일 슬라이스의 크기는 단일 서브 슬라이스의 크기의 정수배일 수 있다. 즉, 서브 슬라이스 분배기(130)는 각각의 슬라이스를 서브 슬라이스 단위로 분할할 수 있다. Similarly, the sub slice distributor 130 may divide the input image into a plurality of sub slices based on the sub slice setting parameters, and the sub slice setting parameters may include information such as the number or shape of the sub slices. The sub-slice is a unit smaller than the slice. For example, the size of a single slice may be an integer multiple of the size of a single sub-slice. That is, the sub slice distributor 130 may divide each slice into sub slice units.
인코딩 모듈(110)은 엔트로피 인코딩을 수행하여 영상 데이터를 비트스트림 형태로 변환할 수 있다. 인코딩 모듈(110)은 서브 슬라이스 단위로 엔트로피 인코딩을 수행하고, 엔트로피 인코딩 이전의 예측, 변환, 양자화 등의 심볼을 생성하기 위한 과정은 슬라이스 단위로 수행할 수 있다. 이하, 인코딩 모듈(110)이 서브 슬라이스 단위/슬라이스 단위로 처리하는 동작을 구체적으로 설명한다. The encoding module 110 may perform entropy encoding to convert the image data into a bit stream format. The encoding module 110 performs entropy encoding on a sub slice basis, and a process for generating symbols such as prediction, conversion, and quantization before entropy encoding can be performed on a slice basis. Hereinafter, the operation of the encoding module 110 in units of sub slice units / slices will be described in detail.
도 5의 예시를 참조하면, 슬라이스 분배기(120)는 하나의 프레임을 N개(N은 1 이상의 정수)의 슬라이스로 분할하고, 서브 슬라이스 분배기(130)는 각각의 슬라이스를 n개(n은 1 이상의 정수)의 서브 슬라이스로 분할할 수 있다. 슬라이스 분배기(120)와 서브 슬라이스 분배기(130)는 입력 영상을 구성하는 복수의 프레임에 대해 슬라이스 분할 및 서브 슬라이스 분할을 수행할 수 있다.5, the slice distributor 120 divides one frame into N slices (where N is an integer of 1 or more), and the sub slice distributor 130 divides each of the slices into n (n is 1 Slices of sub-slices). The slice distributor 120 and the sub-slice distributor 130 may perform slice division and sub-slice division on a plurality of frames constituting an input image.
전술한 바와 같이, 인코딩 모듈(110)은 엔트로피 인코딩 이외의 동작은 슬라이스 단위로 수행할 수 있다. 따라서, N개의 슬라이스를 각각 독립적으로 처리할 수 있고, 동일 슬라이스에 포함되는 블록들은 서로 참조 대상이 될 수 있다. As described above, the encoding module 110 can perform operations other than entropy encoding in slice units. Therefore, the N slices can be independently processed, and the blocks included in the same slice can be referred to each other.
서브 슬라이스가 반드시 프레임의 세로 방향을 따라 1차원으로 분할되어야 하는 것은 아니고, 도 6의 예시와 같이, 2차원적으로 분할되는 것도 가능하다. 서브 슬라이스의 분할 방식은 서브 슬라이스 설정 파라미터에 의해 결정되며, 영상 인코딩 장치(100)의 실시예에서는 그 배열, 개수 모양 등에 제한을 두지 않는다.The sub slice is not necessarily divided into one dimension along the longitudinal direction of the frame, but it may be divided two-dimensionally as in the example of Fig. The sub-slice division method is determined by the sub-slice setting parameters. In the embodiment of the video encoding apparatus 100, the arrangement and the number shape are not limited.
도 7은 일 실시예에 따른 영상 인코딩 장치에 있어서 인코딩 모듈의 구성이 구체화된 제어 블록도이며, 도 8은 일 실시예에 따른 영상 인코딩 장치가 블록 단위로 인코딩을 수행하는 동작의 예시를 나타내는 도면이고, 도 9는 일 실시예에 따른 영상 인코딩 장치에서 생성하는 비트스트림 데이터의 예시를 나타낸 도면이다.FIG. 7 is a control block diagram illustrating a configuration of an encoding module in an image encoding apparatus according to an exemplary embodiment. FIG. 8 is a diagram illustrating an example of an operation in which an image encoding apparatus according to an embodiment performs encoding on a block basis And FIG. 9 is a diagram illustrating an example of bitstream data generated by a video encoding apparatus according to an exemplary embodiment.
인코딩 모듈(110)은 입력 영상의 데이터를 상기 슬라이스 단위로 처리하여 상기 입력 영상의 데이터에 대한 예측값을 결정하고, 예측값을 이용하여 심볼을 생성하고, 심볼에 대해 상기 서브 슬라이스 단위로 엔트로피 인코딩을 수행하여 입력 영상에 대한 비트스트림을 출력한다.The encoding module 110 processes the data of the input image in units of slice to determine a predicted value for the data of the input image, generates a symbol using the predicted value, and performs entropy encoding on the symbol in units of the sub-slice And outputs a bitstream of the input image.
도 7을 참조하면, 인코딩 모듈(110)은 예측기(111), 감산기(112), 변환기(113), 양자화기(114), 엔트로피 인코더(115), 역양자화기(116), 역변환기(117), 가산기(118), 필터(119) 및 메모리(119a)를 포함할 수 있다.Referring to FIG. 7, the encoding module 110 includes a predictor 111, a subtractor 112, a transformer 113, a quantizer 114, an entropy encoder 115, an inverse quantizer 116, an inverse transformer 117 ), An adder 118, a filter 119, and a memory 119a.
예측기(111)는 슬라이스 분배기(120)에 의해 분할된 슬라이스 단위를 기준으로, 입력 영상에 대한 예측을 수행한다. 즉, 각각의 슬라이스마다 독립적으로 예측을 수행할 수 있다. The predictor 111 performs prediction on the input image based on the slice unit divided by the slice distributor 120. [ That is, prediction can be performed independently for each slice.
일 실시예에 따른 영상 인코딩 장치(100)는 인트라프레임(Intraframe) 방식 또는 인터프레임(Interframe) 방식으로 영상을 인코딩할 수 있다. 인트라프레임 방식에서는 프레임 단위로 압축을 수행하고, 인터프레임 방식에서는 이전 프레임의 정보를 이용하여 압축을 수행한다. The video encoding apparatus 100 according to an exemplary embodiment may encode an image using an Intraframe method or an Interframe method. In the intra frame method, compression is performed frame by frame, and in the interframe method, compression is performed using information of the previous frame.
따라서, 인트라프레임 방식을 적용하는 경우, 예측기(111)는 프레임 내 예측을 수행한다. 인터프레임 방식을 적용하는 경우, 예측기(111)는 프레임 간 예측을 수행한다. 즉, 이전 프레임 또는 이후 프레임과 같이 시간적으로 인접한 주변 프레임으로부터 현재의 프레임을 예측한다. 후술하는 실시예에서는 인트라프레임 방식을 적용하는 경우를 인트라 모드라 하기로 하고, 인터프레임 방식을 적용하는 경우를 인터 모드라 하기로 한다.Therefore, when the intra frame method is applied, the predictor 111 performs intra frame prediction. When the interframe method is applied, the predictor 111 performs interframe prediction. That is, the current frame is predicted from neighboring temporally adjacent frames such as a previous frame or a subsequent frame. In the following embodiments, the case of applying the intra frame method is referred to as an intra mode, and the case of applying the interframe method is referred to as an inter mode.
인트라 모드인 경우, 예측기(111)는 현재 처리 대상인 블록과 공간적으로 인접한 주변 블록의 정보를 참조하여 예측 블록을 생성할 수 있다. 참조 대상이 되는 블록을 참조 블록이라 할 수 있다. In the intra mode, the predictor 111 can generate a prediction block by referring to information of neighboring blocks spatially adjacent to the current block to be processed. The reference block may be referred to as a reference block.
구체적으로, 예측기(111)는 현재 블록의 주변에 이미 복원된 블록의 픽셀값을 참조하여 현재 블록의 샘플들에 대한 예측값을 결정할 수 있다. 예측 블록은 예측값들로 구성된 블록을 의미한다. 따라서, 예측 블록을 생성한다는 것은 해당 블록에 대한 예측값을 결정한다는 것을 의미할 수 있다.Specifically, the predictor 111 may determine a predicted value for the samples of the current block by referring to the pixel values of the restored block around the current block. The prediction block means a block composed of prediction values. Therefore, generating a prediction block may mean that a prediction value for the block is determined.
당해 실시예에서, 샘플은 영상의 샘플링 위치에 할당된 데이터로서 처리 대상이 되는 데이터를 의미한다. 예를 들어, 공간 영역의 영상에서 픽셀값, 변환 영역 상의 변환 계수들이 샘플에 해당할 수 있다.In this embodiment, a sample means data to be processed as data assigned to a sampling position of an image. For example, in an image in a spatial domain, pixel values and transform coefficients on a transform domain may correspond to samples.
슬라이스 분배기(120)가 전술한 도 5의 예시와 같이 프레임을 분할한 경우를 예로 들어 설명한다. 도 8을 참조하면, 동일 슬라이스(S1)에 포함되는 서브 슬라이스 #1(SS11)과 서브 슬라이스 #2(SS12)는 각각 복수의 블록으로 구성될 수 있다. 예를 들어, 현재 블록이 B43인 경우, 그 주변 블록(B32, B33, B34, B42, B44, B52, B53, B54) 중 이미 복원된 블록의 픽셀값을 이용하여 예측값을 결정할 수 있다. 여기서, 이용 가능한 주변 블록은 영상 압축 방식 또는 순서에 따라 달라질 수 있고, 도 8은 일 예시에 불과하다. The case where the slice distributor 120 divides a frame as in the example of FIG. 5 described above will be described as an example. Referring to FIG. 8, the sub slices # 1 (SS 11 ) and # 2 (SS 12 ) included in the same slice S 1 may be composed of a plurality of blocks. For example, if the current block is B 43, the neighboring blocks (B 32, B 33, B 34, B 42, B 44, B 52, B 53, B 54) already using the pixel value of the restored block of the The predicted value can be determined. Here, the available neighboring blocks may vary depending on the image compression method or order, and Fig. 8 is merely an example.
주변 블록 중 B32, B33, B34는 현재 블록 B43와 다른 서브 슬라이스에 속하지만, 예측값 결정 단계에서는 서브 슬라이스들이 독립적으로 처리되지 않고 상호 참조 가능하기 때문에 현재 블록 B43에 대한 예측값 결정 시에 서브 슬라이스 #1에 포함되는 블록들의 정보도 참조할 수 있다. 따라서, 서브 슬라이스 단위로 처리하는 경우에 비해 영상의 평균 화질이 향상될 수 있다. In the surrounding block of B 32, B 33, B 34 is the current block B 43 and the other sub-slices, but the predicted value determining step in the sub-slices are the determination of the predicted value for the current block B 43 because it can cross-reference is not treated as independent The information of the blocks included in the sub slice # 1 can also be referred to. Therefore, the average image quality of the image can be improved as compared with the case of processing in units of sub slices.
인터 모드인 경우, 예측기(111)는 이미 인코딩 과정을 거치고 다시 복원된 이전 프레임에서 현재 블록과 가장 매치가 잘 되는 영역(참조 블록)을 찾아 움직임 벡터를 구함으로써 움직임을 예측할 수 있다. 여기서, 움직임 벡터는 2차원 벡터일 수 있고, 현재 블록과 참조 블록 사이의 오프셋을 나타낼 수 있다. 예측기(111)는 움직임 벡터를 이용하여 움직임 보상을 수행함으로써 예측값을 결정하고 예측 블록을 생성할 수 있다. In the inter mode, the predictor 111 can predict a motion by searching a region (reference block) having the best match with the current block in the previous frame that has already undergone the encoding process and obtaining a motion vector. Here, the motion vector may be a two-dimensional vector and may represent an offset between the current block and the reference block. The predictor 111 can determine a predicted value and generate a predicted block by performing motion compensation using a motion vector.
감산기(112)는 현재 블록과 예측 블록을 차분하여 잔차 블록(residual block)을 생성할 수 있다. 즉, 현재 블록의 데이터와 예측 블록의 데이터를 차분하여 잔차 데이터를 생성할 수 있다. The subtracter 112 may generate a residual block by subtracting the current block from the prediction block. That is, the residual data can be generated by differentiating the data of the current block and the data of the prediction block.
변환기(113)는 생성된 잔차 블록 또는 잔차 데이터를 공간 영역에서 주파수 영역으로 변환한다. 변환기(113)는 이산 사인 변환(Discrete Sine Transform), 이산 코사인 변환(Discrete Cosine Transform), 하다마드 변환(Hadamard Transform) 등과 같이 공간 영역의 영상 신호를 주파수 영역으로 변환하는 기법을 사용할 수 있다.The converter 113 converts the generated residual block or residual data from the spatial domain to the frequency domain. The converter 113 may use a technique of converting a video signal in a spatial domain into a frequency domain such as Discrete Sine Transform, Discrete Cosine Transform, Hadamard Transform, and the like.
변환기(113)는 전술한 주파수 변환을 수행하여 변환 계수를 출력할 수 있다. The converter 113 may perform the above-described frequency conversion to output the conversion coefficient.
양자화기(114)는 변환기(113)로부터 출력된 변환 계수를 양자화 파라미터(Quantization paremeter)에 따라 양자화하여 양자화된 계수(Quantized coefficient) 형태의 심볼(Symbol)을 출력할 수 있다. The quantizer 114 quantizes the transform coefficient output from the transformer 113 according to a quantization parameter to output a symbol of a quantized coefficient type.
양자화기(114)로부터 출력된 심볼은 엔트로피 인코더(115)뿐만 아니라 역양자화기(116)에도 입력될 수 있다. The symbols output from the quantizer 114 may be input to the dequantizer 116 as well as to the entropy encoder 115. [
역양자화기(116)는 양자화된 계수를 역 양자화(Inverse Quantization)하여 주파수 계수를 복원할 수 있다. 이 때, 양자화기(114)가 사용한 양자화 파라미터에 기초하여 역 양자화를 수행할 수 있다.The inverse quantizer 116 may inverse quantize the quantized coefficients to recover the frequency coefficients. At this time, inverse quantization can be performed based on the quantization parameters used by the quantizer 114.
역변환기(117)는 복원된 주파수 계수를 주파수 영역에서 공간 영역으로 역변환(Inverse Transform)하여 잔차 블록을 복원할 수 있다. 역변환기(117)는 변환기(113)가 수행한 주파수 변환 기법에 대한 역변환을 수행할 수 있다. The inverse transformer 117 may inversely transform the recovered frequency coefficient from the frequency domain into the spatial domain to recover the residual block. The inverse transformer 117 may perform an inverse transform on the frequency transform technique performed by the transformer 113. [
가산기(118)는 복원된 잔차 블록에 예측기(111)에서 생성한 예측 블록을 가산하여 입력 영상에 대한 복원 블록을 생성할 수 있다. 생성된 복원 블록은 메모리(119a)에 저장되어 예측기(111)의 참조 블록으로 사용될 수 있다. The adder 118 may generate a reconstruction block for the input image by adding the prediction block generated by the predictor 111 to the reconstructed residual block. The generated restoration block may be stored in the memory 119a and used as a reference block of the predictor 111. [
생성된 복원 블록은 필터(119)에서 필터링된 후에 메모리(119a)에 저장될 수 있다. 필터(119)는 블록 간의 경계에 생긴 블록 왜곡을 제거하는 디블록킹 필터(Deblocking Filter), 코딩 에러를 보상하기 위해 픽셀값에 적정 오프셋 값을 더해주는 샘플 적응적 오프셋 필터(Sample Adaptive Offset Filter) 및 복원된 영상과 원래 영상을 비교한 값을 기초로 필터링을 수행하는 적응적 루프 필터(Adaptive Loop Filter) 중 적어도 하나의 필터를 포함할 수 있다.The generated restoration block may be stored in the memory 119a after being filtered by the filter 119. [ The filter 119 includes a deblocking filter for eliminating block distortion at the boundary between blocks, a sample adaptive offset filter for adding a proper offset value to a pixel value to compensate for coding error, And an adaptive loop filter that performs filtering based on a value obtained by comparing an original image with an original image.
엔트로피 인코더(115)는 양자화기(114)로부터 출력된 양자화된 계수에 대해 엔트로피 인코딩을 수행하여 비트스트림을 출력할 수 있다. The entropy encoder 115 may perform entropy encoding on the quantized coefficients output from the quantizer 114 to output a bitstream.
엔트로피 인코딩은 다양한 값을 갖는 심볼을 입력 받아 통계적 중복성을 제거하면서, 디코딩 가능한 비트스트림으로 표현하는 기법이다.Entropy encoding is a technique for receiving symbols having various values and expressing them as a decodable bit stream while eliminating statistical redundancy.
심볼이란 인코딩/디코딩 대상 구문 요소(syntax element) 및 코딩 파라미터(coding parameter), 잔차 신호(residual signal)의 값 등을 의미한다. The symbol means a syntax element to be encoded / decoded, a coding parameter, a value of a residual signal, and the like.
인코딩 파라미터는 인코딩 및 디코딩에 필요한 매개변수로서, 구문 요소와 같이 인코딩 장치에서 인코딩되어 디코딩 장치로 전달되는 정보뿐만 아니라, 인코딩 혹은 디코딩 과정에서 유추될 수 있는 정보를 포함할 수 있으며 영상을 인코딩하거나 디코딩할 때 필요한 정보를 의미한다. The encoding parameter is a parameter necessary for encoding and decoding, and may include information that can be inferred in an encoding or decoding process as well as information encoded in the encoding device and transmitted to the decoding device, such as a syntax element, It means the information that is needed when doing.
인코딩 파라미터는 예를 들어 인트라/인터 모드, 움직임 벡터, 참조 영상 색인, 코딩 블록 패턴, 잔차 신호 유무, 변환 계수, 양자화된 변환 계수, 양자화 파라미터, 블록 크기, 블록 분할 정보 등의 값 또는 통계를 포함할 수 있다.The encoding parameters include values or statistics such as, for example, intra / inter modes, motion vectors, reference picture indexes, coding block patterns, residual signal presence, transform coefficients, quantized transform coefficients, quantization parameters, block sizes, can do.
엔트로피 인코더(115)는 양자화된 계수에 대해 CAVLC(Context-Adaptive Variable Length Coding), CABAC(Context-Adaptive Binary Arithmetic Coding) 또는 Exponential Golomb 등의 기법을 적용하여 엔트로피 인코딩을 수행할 수 있다. 또한, 양자화된 계수 뿐만 아니라 영상을 디코딩하는데 필요한 추가적인 정보를 함께 엔트로피 인코딩하는 것도 가능하다. The entropy encoder 115 may perform entropy encoding by applying a technique such as Context-Adaptive Variable Length Coding (CAVLC), Context-Adaptive Binary Arithmetic Coding (CABAC), or Exponential Golomb to the quantized coefficients. It is also possible to entropy encode quantized coefficients as well as additional information necessary for decoding the image.
예를 들어, 엔트로피 인코더(115)에는 가변 길이 부호화(VLC: Variable Lenghth Coding/Code) 테이블과 같이 엔트로피 인코딩을 수행하기 위한 테이블이 저장될 수 있다. 엔트로피 인코더(115)는 저장된 가변 길이 부호화(VLC) 테이블을 사용하여 엔트로피 인코딩을 수행할 수 있다. For example, a table for performing entropy encoding such as a variable length coding / code (VLC) table may be stored in the entropy encoder 115. The entropy encoder 115 may perform entropy encoding using a stored variable length coding (VLC) table.
또한, 엔트로피 인코더(115)는 대상 심볼의 이진화(binarization) 방법 및 대상 심볼 또는 빈(bin)의 확률 모델(probability model)을 도출한 후, 도출된 이진화 방법 또는 확률 모델을 사용하여 엔트로피 인코딩을 수행할 수도 있다.The entropy encoder 115 derives a binarization method of the object symbol and a probability model of a target symbol or bin and then performs entropy encoding using the derived binarization method or probability model You may.
엔트로피 인코딩에 따르면, 높은 발생 확률을 갖는 심볼에 적은 수의 비트를 할당하고, 낮은 발생 확률을 갖는 심볼에 많은 수의 비트를 할당하여 심볼을 표현할 수 있다. 이로써, 인코딩 대상 심볼들에 대한 비트열의 크기가 감소되고 영상 인코딩의 압축 성능이 높아질 수 있다. According to the entropy encoding, a small number of bits may be allocated to a symbol having a high probability of occurrence, and a symbol may be represented by allocating a large number of bits to a symbol having a low probability of occurrence. As a result, the size of the bit stream for the symbols to be encoded can be reduced and the compression performance of the image encoding can be enhanced.
예를 들어, 엔트로피 인코더(115)가 CABAC 기법을 적용하는 경우, 이진화되지 않은 심볼을 이진화하여 빈으로 변환하고, 주변 블록 및 현재 블록의 인코딩 정보 혹은 이전 단계에서 인코딩된 심볼 또는 빈의 정보를 이용하여 문맥 모델을 결정할 수 있다. 엔트로피 인코더(115)는 결정된 문맥 모델에 따라 빈의 발생 확률을 예측하여 빈의 산술 부호화(Arithmetic Encoding)를 수행함으로써 비트스트림을 생성할 수 있다. 이 때, 문맥 모델 결정 후 다음 심볼 또는 빈의 문맥 모델을 위해 인코딩된 심볼/빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다. For example, when the entropy encoder 115 applies the CABAC scheme, the non-binarized symbol is binarized and converted into a bin, and encoding information of a neighboring block and a current block or information of a symbol or bin encoded in a previous step is used To determine the context model. The entropy encoder 115 may generate a bitstream by performing arithmetic encoding of the bin by predicting the probability of occurrence of the bean according to the determined context model. At this time, after the context model is determined, the context model can be updated using the information of the encoded symbol / bean for the context model of the next symbol or bean.
엔트로피 인코더(115)는 서브 슬라이스 분배기(130)에 의해 분할된 서브 슬라이스 단위를 기준으로 엔트로피 인코딩을 수행할 수 있다. 따라서, 서브 슬라이스는 엔트로피 슬라이스라 지칭할 수도 있다. The entropy encoder 115 may perform entropy encoding on the basis of the sub-slice unit divided by the sub-slice distributor 130. Thus, a sub-slice may be referred to as an entropy slice.
엔트로피 인코더(115)는 다른 서브 슬라이스의 정보를 참조하지 않고 각각의 서브 슬라이스를 독립적으로 처리하여 엔트로피 인코딩을 수행할 수 있다. 따라서, 엔트로피 인코딩 수행 시에는 동일한 서브 슬라이스에 포함된 주변 블록의 정보만을 참조하고, 동일한 슬라이스에 속하더라도 서로 다른 서브 슬라이스에 포함된 블록들 간에는 서로 참조하지 않고 독립적으로 처리될 수 있다. The entropy encoder 115 can perform entropy encoding by independently processing each sub slice without referring to information of other sub slices. Therefore, when performing the entropy encoding, only the information of the neighboring blocks included in the same sub-slice can be referred to, and even if they belong to the same slice, the blocks included in different sub-slices can be independently processed without referring to each other.
마커 생성기(140)는 엔트로피 인코더(115)가 생성한 비트스트림에 서브 슬라이스를 구분하기 위한 구분 마커를 생성하여 삽입할 수 있다. 구체적으로, 마커 생성기(140)는 비트스트림에서 복수의 서브 슬라이스에 대한 데이터가 시작되는 위치마다 구분 마커를 삽입할 수 있다. 일 예로, 구분 마커는 특징 이진수의 열을 포함할 수 있다. The marker generator 140 may generate and insert a division marker for identifying a sub slice in the bit stream generated by the entropy encoder 115. [ Specifically, the marker generator 140 may insert a division marker for each position where data for a plurality of sub slices is started in the bitstream. As an example, the division markers may include a column of feature binary numbers.
도 9를 참조하면, 영상 인코딩 장치(100)가 생성한 비트스트림은 각각의 슬라이스(S1, S2,쪋, SN)에 대한 정보를 포함하고, 단일 슬라이스에 대한 비트스트림은 슬라이스 시작코드, 슬라이스 헤더정보, 서브 슬라이스를 구분하는 구분 마커, 서브 슬라이스를 구성하는 블록들에 대한 데이터를 포함할 수 있다.9, the bit stream generated by the video encoding apparatus 100 includes information on each of the slices S 1 , S 2 , S, and S N , and the bit stream for a single slice includes information on a slice start code Slice header information, a division marker for dividing a sub-slice, and data for blocks constituting a sub-slice.
예를 들어, 슬라이스 #7에 대한 비트스트림(BS7)은 슬라이스 시작코드(BSC7), 슬라이스 헤더정보(BSH7), 서브 슬라이스 #1의 구분 마커 1(BSM71), 서브 슬라이스 #1을 구성하는 블록들에 대한 인코딩 데이터(BSS71), 서브 슬라이스 #2의 구분 마커 2, 서브 슬라이스 #2를 구성하는 블록들에 대한 인코딩 데이터를 포함하고, 같은 방식으로 서브 슬라이스 #n의 구분 마커 n(BSM7n), 서브 슬라이스 #n을 구성하는 블록들에 대한 인코딩 데이터를 포함할 수 있다. For example, a bitstream (BS 7 ) for slice # 7 includes a slice start code (BSC 7 ), slice header information (BSH 7 ), a division marker 1 (BSM 71 ) of sub slice # 1, Slice # 2, and encoding data for the blocks constituting the encoding data (BSS 71 ), the division marker 2 of the sub slice # 2, and the sub-slice # 2 for the constituent blocks, and the division markers n (BSM 7n ), and encoding data for the blocks constituting the sub-slice #n.
인코딩 모듈(110)은 전술한 동작을 수행하는 프로그램이 저장된 메모리 및 저장된 프로그램을 실행하는 프로세서를 포함할 수 있다. 인코딩 모듈(110)에 포함되는 각각의 구성요소들이 물리적으로 분리되거나 구분되어야 하는 것은 아닌바, 이들은 메모리와 프로세서를 공유할 수 있다. 예를 들어, 전술한 인코딩 모듈(110)의 동작을 수행하는 프로그램이 단일 메모리에 저장될 수 있고, 단일 프로세서가 저장된 프로그램을 실행하여 전술한 인코딩 모듈(110)의 동작을 수행할 수 있다. The encoding module 110 may include a memory for storing a program for performing the above-mentioned operations, and a processor for executing the stored program. Each of the components included in the encoding module 110 need not be physically separated or separated, but they can share the processor with the memory. For example, a program for performing the operations of the encoding module 110 described above may be stored in a single memory, and a single processor may execute the stored program to perform the operations of the encoding module 110 described above.
영상 인코딩 장치(100)는 송신 장치(10)에 포함될 수 있다. 영상 인코딩 장치(100)에서 생성한 입력 영상의 비트스트림은 송신 장치(10)로부터 수신 장치(20)로 전송된다. 수신 장치(20)에는 전송된 비트스트림을 디코딩하는 영상 디코딩 장치가 포함될 수 있다.The video encoding apparatus 100 may be included in the transmission apparatus 10. [ The bit stream of the input image generated by the video encoding apparatus 100 is transmitted from the transmission apparatus 10 to the reception apparatus 20. [ The receiving apparatus 20 may include an image decoding apparatus for decoding the transmitted bit stream.
도 10은 일 실시예에 따른 영상 디코딩 장치의 제어 블록도이고, 도 11은 일 실싱예에 따른 영상 디코딩 장치의 디코딩 모듈이 구체화된 제어 블록도이다.FIG. 10 is a control block diagram of an image decoding apparatus according to an embodiment, and FIG. 11 is a control block diagram in which a decoding module of an image decoding apparatus according to a single thread type is embodied.
도 10을 참조하면, 일 실시예에 따른 영상 디코딩 장치(200)는 슬라이스 구분기(210), 서브 슬라이스 구분기(220), 에러 검출기(250), 디코딩 모듈(230) 및 영상 복구기(240)를 포함한다. 10, the image decoding apparatus 200 includes a slice separator 210, a sub-slice separator 220, an error detector 250, a decoding module 230, and an image restorer 240 ).
영상 디코딩 장치(200)에 포함되는 각각의 구성요소들이 물리적으로 분리되거나 구분되어야 하는 것은 아닌바, 이들은 메모리와 프로세서를 공유할 수 있다. 예를 들어, 후술하는 동작을 수행하는 프로그램이 단일 메모리에 저장될 수 있고, 단일 프로세서가 저장된 프로그램을 실행하여 영상 디코딩 장치(200) 각각의 동작을 수행할 수 있다. The respective components included in the video decoding apparatus 200 need not be physically separated or separated, but they can share the processor with the memory. For example, a program for performing an operation described later may be stored in a single memory, and a single processor may execute a stored program to perform an operation of each of the video decoding apparatuses 200. [
슬라이스 구분기(210)는 입력된 비트스트림으로부터 슬라이스 시작코드를 검출하여 프레임을 구성하는 복수의 슬라이스를 각각 구분하고, 서브 슬라이스 구분기(220)는 단일 슬라이스에 대한 비트스트림으로부터 구분 마커를 검출하여 단일 슬라이스를 구성하는 복수의 서브 슬라이스를 각각 구분할 수 있다. The slice separator 210 separates a plurality of slices constituting a frame by detecting a slice start code from the input bit stream, and the sub slice separator 220 detects a division marker from a bit stream for a single slice A plurality of sub slices constituting a single slice can be distinguished from each other.
에러 검출기(250)는 입력된 비트스트림의 에러를 검사한다. 전술한 바와 같이, 전송 환경에 따라 영상 인코딩 장치(100)로부터 영상 디코딩 장치(200)로 비트스트림이 전송되는 과정에서 에러가 발생할 수 있다. 발생되는 에러의 종류는 데이터의 한 비트만 변경되는 단일 비트 에러(Single-Bit Error), 2개 이상의 연속적인 비트가 변경되는 버스트 에러(Burst Error) 등이 있다. The error detector 250 checks the error of the input bitstream. As described above, an error may occur in the process of transmitting the bitstream from the video encoding apparatus 100 to the video decoding apparatus 200 according to the transmission environment. The types of errors that occur are a single-bit error in which only one bit of data is changed, and a burst error in which two or more consecutive bits are changed.
에러 검출기(250)는 패리티 비트(Parity Bit)라 불리는 중복 비트를 데이터 단위에 덧붙이는 패리티 검사(Parity Check), 모든 바이트의 짝수 패리티를 모아 데이터 단위로 만들어 데이터 블록의 가장 뒤에 추가하는 2차원 패리티 검사, 2진 나눗셈을 이용하는 순환중복검사(CRC: Cyclical Redundancy Check), 상위 계층 프로토콜에서 사용하는 검사합(Checksum) 등과 같은 방식을 적용하여 에러를 검출할 수 있다. 다만, 전술한 방식들은 예시에 불과하고 영상 디코딩 장치(200)의 실시예가 이에 한정되는 것은 아니다. 따라서, 전술한 예시들 외에 다른 방식을 적용하여 에러를 검출할 수 있음은 물론이다.The error detector 250 includes a parity check for adding a redundant bit called a parity bit to a data unit, a parity check for collecting even parities of all the bytes, Error checking can be performed by applying a method such as checking, cyclic redundancy check using binary division (CRC), check sum used in upper layer protocol, and the like. However, the above-described methods are merely examples, and the embodiment of the image decoding apparatus 200 is not limited thereto. Therefore, it goes without saying that an error can be detected by applying a method other than the above-mentioned examples.
에러 검출기(250)는 각각의 서브 슬라이스마다 에러를 검사할 수 있다. 에러 검출기(250)는 에러가 검출된 서브 슬라이스에 대한 비트스트림 데이터를 폐기 또는 초기화할 수 있다. 에러가 검출된 서브 슬라이스에 대한 데이터는 영상 복구기(240)에서 복구될 수 있다. 즉, 영상 복구기(240)는 에러가 검출된 서브 슬라이스에 대한 복구 영상을 생성할 수 있다.The error detector 250 may check the error for each sub-slice. The error detector 250 may discard or initialize the bitstream data for the sub-slice in which the error was detected. The data for the sub-slice in which an error is detected can be recovered in the image restorer 240. That is, the image restorer 240 can generate a restoration image for the sub-slice in which an error is detected.
에러 검출기(250)가 서브 슬라이스 단위로 에러를 검사하고 데이터를 초기화하기 때문에, 슬라이스 단위로 에러를 검출하고 데이터를 초기화하는 경우와 비교하여 에러 발생 시에 나타나는 화질 저하를 감소시킬 수 있다. 이와 관련된 동작은 후술하기로 한다.Since the error detector 250 inspects errors in units of sub-slices and initializes the data, it is possible to reduce image quality deterioration that occurs when an error occurs, as compared with a case where errors are detected in units of slices and data is initialized. The related operation will be described later.
디코딩 모듈(230)은 입력된 비트스트림을 디코딩하여 영상을 복원할 수 있다. 이하, 도 10을 참조하여 구체적으로 설명한다.The decoding module 230 may decode the input bit stream to restore the image. Hereinafter, this will be described in detail with reference to FIG.
도 11을 참조하면, 디코딩 모듈(230)은 엔트로피 디코더(231), 역양자화기(232), 역변환기(233), 가산기(234), 필터(235), 메모리(236) 및 예측기(37)를 포함할 수 있다. 11, the decoding module 230 includes an entropy decoder 231, an inverse quantizer 232, an inverse transformer 233, an adder 234, a filter 235, a memory 236 and a predictor 37, . ≪ / RTI >
엔트로피 디코더(231)는 입력된 비트스트림을 확률 분포에 따라 엔트로피 디코딩하여 양자화된 계수 형태의 심볼을 포함한 심볼들을 생성할 수 있다. 엔트로피 디코딩은 2진수의 열을 입력 받아 각 심볼들을 생성하는 방법이다. The entropy decoder 231 may entropy-decode the input bitstream according to a probability distribution to generate symbols including symbols of a quantized coefficient type. Entropy decoding is a method of generating each symbol by receiving a binary sequence.
예를 들어, 영상 인코딩 장치(100)에서 엔트로피 인코딩을 수행하기 위해 CAVLC 등의 가변 길이 부호화(VLC: Variable Length Coding)가 사용된 경우에, 엔트로피 디코더(231)도 영상 인코딩 장치(100)에서 사용한 VLC 테이블과 동일한 VLC를 저장하고 이를 이용하여 엔트로피 디코딩을 수행할 수 있다.For example, when Variable Length Coding (VLC) such as CAVLC is used to perform entropy encoding in the video encoding apparatus 100, the entropy decoder 231 is also used in the video encoding apparatus 100 The same VLC as the VLC table can be stored and the entropy decoding can be performed using the VLC.
또한, 영상 인코딩 장치(100)에서 엔트로피 인코딩을 수행하기 위해 CABAC을 사용한 경우에는, 엔트로피 디코더(231)도 이에 대응하여 CABAC를 사용한 엔트로피 디코딩을 수행할 수 있다. In addition, when CABAC is used to perform entropy encoding in the video encoding apparatus 100, the entropy decoder 231 may also perform entropy decoding using CABAC in correspondence thereto.
구체적으로, CABAC을 이용하여 엔트로피 디코딩을 수행하는 경우, 엔트로피 디코더(231)는 비트스트림에서 각 구문 요소에 해당하는 빈을 수신하고, 디코딩 대상 구문 요소 정보와 주변 블록 및 디코딩 대상 블록의 디코딩 정보 혹은 이전 단계에서 디코딩된 심볼 또는 빈의 정보를 이용하여 문맥 모델을 결정할 수 있다. 결정된 문맥 모델에 따라 빈의 발생 확률을 예측하여 빈의 산술 디코딩을 수행하고 각 구문 요소의 값에 해당하는 심볼을 생성할 수 있다. 또한, 문맥 모델 결정 후 다음 심볼 또는 빈의 문맥 모델을 위해, 디코딩된 심볼 또는 빈의 정보를 이용하여 문맥 모델을 업데이트할 수 있다.Specifically, when entropy decoding is performed using the CABAC, the entropy decoder 231 receives the bean corresponding to each syntax element in the bitstream, and decodes the decoding target syntax element information, the decoding information of the neighboring block and the decoding target block In the previous step, the context model can be determined using the information of the decoded symbol or bin. The arithmetic decoding of the bean can be performed by predicting the occurrence probability of the bean according to the determined context model, and a symbol corresponding to the value of each syntax element can be generated. In addition, after the context model determination, the context model can be updated using the information of the decoded symbol or bean for the context model of the next symbol or bean.
엔트로피 디코더(231)에서 출력되는 양자화된 계수를 처리하는 동작은, 인코딩 모듈(110)이 양자화된 계수를 다시 역양자화, 역변환, 가산 등을 하여 복원 블록을 생성하는 동작과 유사하다. The operation of processing the quantized coefficients output from the entropy decoder 231 is similar to the operation in which the encoding module 110 performs dequantization, inverse transform, addition, and the like on the quantized coefficients again to generate a reconstruction block.
엔트로피 디코더(231)에서 출력되는 양자화된 계수는 역양자화기(232)에 입력되어 역양자화되고, 역 양자화된 주파수 계수는 역변환기(233)에 입력되어 주파수 영역에서 공간 영역으로 역변환될 수 있다. 이로써, 역변환기(233)는 복원된 잔차 블록 또는 복원된 잔차 데이터를 생성할 수 있다.The quantized coefficients output from the entropy decoder 231 are input to the inverse quantizer 232 and are inverse-quantized. The inverse-quantized frequency coefficients are input to the inverse transformer 233 and can be inversely transformed from the frequency domain to the spatial domain. In this way, the inverse transformer 233 can generate the reconstructed residual block or reconstructed residual data.
역양자화기(232)는 영상 인코딩 장치(100)에서 제공된 양자화 파라미터를 기초로 역양자화를 수행할 수 있고, 역변환기(233)는 영상 인코딩 장치(100)의 변환기(113)가 수행한 주파수 변환에 대한 역변환을 수행할 수 있다. The inverse quantizer 232 may perform inverse quantization based on the quantization parameter provided by the image encoding apparatus 100 and the inverse transformer 233 may perform inverse quantization using the inverse quantization performed by the inverse quantizer 232, Can be performed.
한편, 엔트로피 디코더(231)는 디코딩된 정보 중 예측 블록을 생성하기 위한 정보를 예측기(237)에 전달할 수 있다. 예측기(237)는 엔트로피 디코더(231)로부터 제공된 예측 블록 생성에 관련된 정보와 메모리(236)로부터 제공된 이미 복원된 블록 또는 프레임 정보에 기초하여 예측 블록을 생성할 수 있다. Meanwhile, the entropy decoder 231 may transmit information for generating a prediction block among the decoded information to the predictor 237. The predictor 237 can generate a prediction block based on the information related to the prediction block generation provided from the entropy decoder 231 and the already reconstructed block or frame information provided from the memory 236. [
현재 블록에 대한 예측 모드가 인트라 모드인 경우, 예측기(237)는 현재 프레임 내의 주변 블록의 픽셀 정보를 참조하여 예측 블록을 생성할 수 있다. When the prediction mode for the current block is the intra mode, the predictor 237 can generate the prediction block by referring to the pixel information of the neighboring block in the current frame.
현재 블록에 대한 예측 모드가 인터 모드인 경우, 예측기(237)는 현재 프레임의 주변 프레임(이전 프레임 또는 이후 프레임)에 포함된 픽셀 정보를 참조하여 예측 블록을 생성할 수 있다. 이 때, 예측기(237)는 영상 인코딩 장치(100)에서 제공된 현재 블록의 인터프레임 예측에 필요한 움직임 정보(ex. 움직임 벡터, 참조 프레임 인덱스 등)를 이용하여 인터프레임 예측을 수행할 수 있다.If the prediction mode for the current block is the inter mode, the predictor 237 can generate the prediction block by referring to the pixel information included in the neighboring frame (the previous frame or a subsequent frame) of the current frame. At this time, the predictor 237 can perform inter-frame prediction using motion information (e.g., motion vector, reference frame index, etc.) necessary for inter-frame prediction of the current block provided in the video encoding apparatus 100. [
예측기(237)가 예측 블록을 생성하기 위해 주변 정보를 참조함에 있어서, 슬라이스 단위를 기준으로 할 수 있다. 동일 슬라이스에 포함된 블록들은 각 블록에 대한 예측 블록 생성 시에 상호 참조 대상이 될 수 있다. 따라서, 서로 다른 서브 슬라이스에 속하는 블록 간이더라도 동일 슬라이스에 속하는 경우에는, 상호 참조 대상이 될 수 있다. When the predictor 237 refers to the surrounding information for generating the prediction block, the slice unit may be used as a reference. The blocks included in the same slice can be cross-referenced when generating a prediction block for each block. Therefore, even when blocks belonging to different sub slices belong to the same slice, they can be cross-referenced.
가산기(234)는 역변환기(233)로부터 출력되는 잔차 블록과 예측기(237)로부터 출력되는 예측 블록을 합산하여 복원 블록을 생성할 수 있다. The adder 234 may add the residual block output from the inverse transformer 233 and the predictive block output from the predictor 237 to generate a reconstructed block.
필터(235)는 디블로킹 필터링, 적응적 오프셋 필터링 또는 적응적 루프 필터링을 적용하여 복원 블록을 필터링할 수 있고, 필터링된 복원 블록은 메모리(236)에 저장하여 예측 블록의 생성에 사용될 수 있다. The filter 235 may apply deblocking filtering, adaptive offset filtering, or adaptive loop filtering to filter the restored blocks, and the filtered restored blocks may be stored in the memory 236 and used to generate the predicted blocks.
도 12 및 도 13은 일 실시예에 따른 영상 디코딩 장치가 에러를 복원하는 방법의 예시를 나타낸 도면이고, 도 14는 슬라이스 단위로 에러를 복구하는 경우의 에러 영향 범위를 나타낸 도면이다. FIGS. 12 and 13 are views showing an example of a method of decoding an error by an image decoding apparatus according to an embodiment, and FIG. 14 is a diagram showing an error influence range when an error is recovered in slice units.
도 12의 예시를 참조하면, 비트스트림 형태로 수신된 영상에서 서브 슬라이스 #1(SS11)의 데이터에 에러가 검출된 경우, 서브 슬라이스 #1(SS11)의 데이터는 초기화된다. 12, when an error is detected in the data of the sub-slice # 1 (SS 11 ) in the image received in the bit stream form, the data of the sub-slice # 1 (SS 11 ) is initialized.
영상 복구기(240)는 주변 프레임 정보, 주변 서브 슬라이스 정보 등을 이용하여 서브 슬라이스 #1(SS11)의 영상을 복구할 수 있다. 영상 복구기(240)는 압축 영상 데이터에 발생한 에러를 복구하는 다양한 기술 중 적어도 하나를 적용하여 서브 슬라이스의 영상을 복구할 수 있다. The image restorer 240 can recover the image of the sub-slice # 1 (SS 11 ) using the neighboring frame information, the neighboring sub-slice information, and the like. The image restorer 240 can recover the image of the sub slice by applying at least one of various techniques for recovering errors generated in the compressed image data.
영상 복구기(240)에서 수행하는 영상의 복구 또는 영상의 복구는 에러가 발생하여 초기화된 데이터를 다른 정보들을 이용하여 복구하거나 에러의 영향을 받은 데이터를 다른 정보들을 이용하여 보완하는 것을 의미할 수 있다. Restoration of the image or image restoration performed by the image restorer 240 may mean restoring the initialized data due to an error using other information or supplementing data affected by the error using other information have.
에러가 검출되지 않은 나머지 서브 슬라이스들에 대한 비트스트림은 디코딩 모듈(230)에서 디코딩되어 복원 영상으로 출력될 수 있다.The bit stream for the remaining sub-slices in which no error is detected may be decoded by the decoding module 230 and output as a reconstructed image.
한편, 에러가 검출된 서브 슬라이스 #1(SS11)과 인접한 서브 슬라이스 #2(SS12)는 에러가 검출되지 않았으므로, 서브 슬라이스 #2(SS12)에 대한 비트스트림은 디코딩 모듈(230)에서 디코딩될수 있다. On the other hand, since no error is detected in the sub slice # 1 (SS 11 ) and the adjacent sub slice # 2 (SS 12 ) in which an error is detected, the bit stream for the sub slice # 2 (SS 12 ) Lt; / RTI >
다만, 서브 슬라이스 #2(SS12)에 대한 비트스트림의 디코딩 시에, 서브 슬라이스 #1(SS11)의 데이터 초기화로 인해 참조 블록이 부족한 경우가 발생할 수 있다. 따라서, 영상 디코딩 장치(200)의 다른 예시에 따르면, 도 14에 도시된 바와 같이 영상 복구기(240)가 서브 슬라이스 #2(SS12)에 대한 디코딩 데이터, 주변 서브 슬라이스 정보 또는 주변 프레임 정보 등을 이용하여 서브 슬라이스 #2(SS12)의 영상을 복구하는 것도 가능하다. 이 때, 복구되는 데이터는 서브 슬라이스 #2(SS12)에 포함된 블록 중 서브 슬라이스 #1(SS11)와의 경계에 위치하는 블록의 데이터일 수 있다. However, at the time of decoding the bit stream for the sub slice # 2 (SS 12 ), it may happen that the reference block is insufficient due to the data initialization of the sub slice # 1 (SS 11 ). Therefore, according to another example of the video decoding apparatus 200, as shown in FIG. 14, when the image restorer 240 decodes decoded data for the sub-slice # 2 (SS 12 ), surrounding sub-slice information, It is also possible to recover the image of the sub slice # 2 (SS 12 ). At this time, the data to be restored may be the data of the block located at the boundary with the sub slice # 1 (SS 11 ) among the blocks included in the sub slice # 2 (SS 12 ).
에러가 검출된 서브 슬라이스 1#(SS11)과 인접하지 않은 나머지 서브 슬라이스들은 정상적으로 디코딩되어 서브 슬라이스 영상으로 복원되고, 복구된 서브 슬라이스 #1(SS11)의 영상, 복구된 서브 슬라이스 #2(SS12)의 영상 및 나머지 서브 슬라이스들의 영상이 출력 영상을 구성할 수 있다. An error is detected the sub-slices 1 # (SS 11) and the remaining sub-slices that are not adjacent are decoded normally and restored as sub-slice image, a video, a recovered sub-slice of the recovered sub-slice # 1 (SS 11) # 2 ( SS 12 ) and the remaining sub-slices may constitute an output image.
에러의 검출과 초기화를 서브 슬라이스 단위가 아닌 슬라이스 단위로 수행하게 되면, 도 14에 도시된 바와 같이, 서브 슬라이스 #1(SS11)의 데이터에만 에러가 발생한 경우라도 슬라이스 #1 (S11)전체의 데이터를 초기화하고 슬라이스 #1(S11) 전체의 영상을 복구해야한다. 따라서, 에러 발생으로 인한 화질 저하가 나타나는 영역이 크다.(S 11 ), even if an error occurs only in the data of the sub-slice # 1 (SS 11 ) as shown in FIG. 14, initialization of the data and need to recover the image of the entire slice # 1 (S 11). Therefore, there is a large area where image quality degradation due to an error occurs.
반면에, 일 실시예에 따른 영상 디코딩 장치(200)에 의하면, 에러가 검출된 서브 슬라이스 #1(SS11)과 그와 인접한 서브 슬라이스 #2(SS12)의 일부 영역만 에러의 영향을 받고 나머지 서브 슬라이스들은 독립적으로 처리되어 에러의 영향을 받지 않으므로 에러 발생으로 인한 화질 저하를 최소화할 수 있다.On the other hand, according to the image decoding apparatus 200 according to the embodiment, only a partial region of the sub slice # 1 (SS 11 ) in which an error is detected and the adjacent sub slice # 2 (SS 12 ) Since the remaining sub-slices are independently processed and are not affected by errors, degradation in image quality due to errors can be minimized.
에러 발생 환경과 고압출률 전송 환경을 각각 조성하고, 각각의 경우에 대해 영상 인코딩 장치(100)에서 영상 디코딩 장치(200)로 영상의 비트스트림을 전송하고 디스플레이 장치(30)에 출력되는 영상을 캡쳐하면, 캡쳐된 두 영상의 블로킹 아티팩트의 크기가 다르게 나타남을 확인할 수 있다. An error occurrence environment and a high extrusion rate transmission environment are respectively generated. In each case, a bitstream of an image is transmitted from the image encoding apparatus 100 to the image decoding apparatus 200, When capturing, we can confirm that the size of the blocking artifacts of the two captured images are different.
전술한 실시예에 따른 영상 인코딩 장치(100) 및 영상 디코딩 장치(200)에 의하면, 영상의 압축 효율을 높일 수 있다. 따라서, 엔트로피 코딩 효율이 높은 특정 패턴의 영상을 입력 영상으로 하여 영상 인코딩 장치(100)에서 인코딩한 비트스트림을 영상 디코딩 장치(200)에서 디코딩하여 디스플레이 장치(30)에 출력하면, 소정의 가로 줄무늬가 발생함을 확인할 수 있다.According to the video encoding apparatus 100 and the video decoding apparatus 200 according to the above-described embodiments, the compression efficiency of an image can be increased. Accordingly, when the image decoding apparatus 200 decodes the bit stream encoded by the image encoding apparatus 100 using an image of a specific pattern having a high entropy coding efficiency as an input image and outputs the decoded image to the display apparatus 30, Can be confirmed.
이하, 일 실시예에 따른 영상 인코딩 방법 및 영상 디코딩 방법에 대해 설명한다. 일 실시예에 따른 영상 인코딩 방법에는 전술한 실시예에 따른 영상 인코딩 장치(100)가 적용될 수 있고, 영상 디코딩 방법에는 전술한 실시예에 따른 영상 디코딩 장치(200)가 적용될 수 있다. 따라서, 앞서 설명한 도 1 내지 도 14의 내용은 일 실시예에 따른 영상 인코딩 방법 및 영상 디코딩 방법에도 적용될 수 있다.Hereinafter, an image encoding method and an image decoding method according to an embodiment will be described. The image encoding apparatus 100 according to the above-described embodiment may be applied to the image encoding method according to an embodiment, and the image decoding apparatus 200 according to the above-described embodiment may be applied to the image decoding method. Therefore, the contents of FIGS. 1 to 14 described above can also be applied to the image encoding method and the image decoding method according to the embodiment.
도 15는 일 실시예에 따른 영상 인코딩 방법에 대한 순서도이다.15 is a flowchart of a video encoding method according to an embodiment.
영상 인코딩 장치(100)에 영상이 입력되면, 도 15에 도시된 바와 같이, 입력된 영상을 복수의 슬라이스로 분할한다(310). 입력 영상은 동영상일수도 있고, 정지영상일 수도 있다. 어느 경우이든 입력 영상은 프레임으로 구성될 수 있다. 슬라이스 분배기(120)는 슬라이스 설정 파라미터에 따라 입력 영상을 슬라이스 단위로 분할할 수 있다. 슬라이스 설정 파라미터는 슬라이스의 개수 또는 모양과 같은 정보를 포함할 수 있다. 슬라이스 설정 파라미터는 설계자 또는 사용자에 의해 설정될 수도 있고, 외부로부터 입력되는 정보에 의해 설정될 수도 있으며, 영상 인코딩 장치(100)가 설정하는 것도 가능하다. When an image is input to the video encoding apparatus 100, the input image is divided into a plurality of slices as shown in FIG. 15 (310). The input image may be a moving image or a still image. In either case, the input image may be composed of frames. The slice distributor 120 may divide the input image into slice units according to the slice setting parameters. The slice configuration parameter may include information such as the number or shape of slices. The slice setting parameter may be set by a designer or a user, may be set by information input from the outside, or may be set by the video encoding apparatus 100.
서브 슬라이스 분배기(30)는 입력 영상을 복수의 서브 슬라이스로 분할할 수 있다(311). 서브 슬라이스 분배기(130)는 서브 슬라이스 설정 파라미터에 기초하여 입력 영상을 서브 슬라이스 단위로 분할할 수 있고, 서브 슬라이스 설정 파라미터는 서브 슬라이스의 개수 또는 모양과 같은 정보를 포함할 수 있다. 서브 슬라이스는 슬라이스보다 작은 단위이며, 일 예로, 단일 슬라이스의 크기는 단일 서브 슬라이스의 크기의 정수배일 수 있다.The sub-slice distributor 30 may divide the input image into a plurality of sub-slices (311). The sub slice distributor 130 may divide the input image into sub slice units based on the sub slice setting parameters, and the sub slice setting parameters may include information such as the number or shape of the sub slices. The sub-slice is a unit smaller than the slice. For example, the size of a single slice may be an integer multiple of the size of a single sub-slice.
일 예로, 슬라이스 분배기(120)는 하나의 프레임을 N개(N은 1 이상의 정수)의 슬라이스로 분할하고, 서브 슬라이스 분배기(130)는 각각의 슬라이스를 n개(n은 1 이상의 정수)의 서브 슬라이스로 분할할 수 있다(도 5 참조).For example, the slice distributor 120 divides one frame into N (N is an integer of 1 or more) slices, and the sub slice distributor 130 divides each slice into n (n is an integer of 1 or more) It can be divided into slices (see Fig. 5).
예측기(111)가 입력 영상에 대한 예측을 수행하여 예측 블록을 생성한다(312). 예측기(111)는 현재 처리 대상인 블록과 공간적으로 인접한 주변 블록의 정보를 참조하여 예측 블록을 생성할 수 있다. 예측기(111)는 각각의 슬라이스마다 독립적으로 예측을 수행한다. 따라서, 현재 블록과 다른 슬라이스에 속하는 블록들의 정보는 참조할 수 없으나, 서로 다른 서브 슬라이스에 속하더라도 동일한 슬라이스에 속하는 블록들의 정보는 참조할 수 있다.The predictor 111 performs prediction on the input image to generate a predicted block (312). The predictor 111 can generate a prediction block by referring to the information of neighboring blocks spatially adjacent to the current processing target block. The predictor 111 performs prediction independently for each slice. Therefore, the information of the blocks belonging to the slice other than the current block can not be referred to, but the information of the blocks belonging to the same slice can be referred to even if they belong to different sub slices.
감산기(112)는 현재 블록과 예측 블록을 차분하여 잔차 블록을 생성한다(313). The subtracter 112 generates a residual block by subtracting the current block from the prediction block (313).
변환기(113)는 주파수 변환을 수행하여, 잔차 블록을 공간 영역에서 주파수 영역으로 변환한다(314). 변환기(113)는 주파수 변환을 수행하여 변환 계수를 출력할 수 있다.The transformer 113 performs a frequency transform to transform the residual block from the spatial domain to the frequency domain (314). The converter 113 may perform frequency conversion and output a transform coefficient.
양자화기(315)는 출력된 변환 계수를 양자화 파라미터에 따라 양자화하여 양자화된 계수를 출력한다(315). The quantizer 315 quantizes the output transform coefficient according to the quantization parameter and outputs the quantized coefficient (315).
양자화기(315)로부터 출력된 양자화된 계수는 엔트로피 인코더(115)와 역양자화기(318a)로 입력된다.The quantized coefficients output from the quantizer 315 are input to the entropy encoder 115 and the inverse quantizer 318a.
역양자화기(116)는 양자화된 계수를 역 양자화하여(319a) 주파수 계수를 복원할 수 있다. 이 때, 양자화기(114)가 사용한 양자화 파라미터에 기초하여 역 양자화를 수행할 수 있다.The dequantizer 116 may dequantize the quantized coefficients (319a) and recover the frequency coefficients. At this time, inverse quantization can be performed based on the quantization parameters used by the quantizer 114.
역변환기(117)는 복원된 주파수 계수를 주파수 영역에서 공간 영역으로 역변환(319b)하여 잔차 블록을 복원할 수 있다. 역변환기(117)는 변환기(113)가 수행한 주파수 변환 기법에 대한 역변환을 수행할 수 있다.The inverse transformer 117 may invert the reconstructed frequency coefficient from the frequency domain to the spatial domain (319b) to recover the residual block. The inverse transformer 117 may perform an inverse transform on the frequency transform technique performed by the transformer 113. [
가산기(118)는 복원된 잔차 블록에 예측기(111)에서 생성한 예측 블록을 가산하여 입력 영상에 대한 복원 블록을 생성한다(319c). 생성된 복원 블록은 메모리(119a)에 저장되어 예측기(111)의 참조 블록으로 사용될 수 있다.The adder 118 adds the prediction block generated by the predictor 111 to the reconstructed residual block to generate a reconstruction block for the input image (319c). The generated restoration block may be stored in the memory 119a and used as a reference block of the predictor 111. [
또한, 필터(119)에서 필터링된 후에 메모리(119a)에 저장될 수도 있다. 필터(119)는 디블로킹 필터링, 샘플 적응적 오프셋 필터링 또는 적응적 루프 필터링을 적용하여 복원 블록을 필터링할 수 있다.It may also be stored in the memory 119a after being filtered by the filter 119. [ The filter 119 may apply deblocking filtering, sample adaptive offset filtering, or adaptive loop filtering to filter the restoration block.
엔트로피 인코더(115)는 양자화기(114)로부터 출력된 양자화된 계수에 대해 엔트로피 인코딩을 수행한다(316). 엔트로피 인코더(115)는 서브 슬라이스 단위를 기준으로 엔트로피 인코딩을 수행할 수 있다. 따라서, 엔트로피 인코더(115)는 다른 서브 슬라이스의 정보를 참조하지 않고 각각의 서브 슬라이스를 독립적으로 처리하여 엔트로피 인코딩을 수행할 수 있다. The entropy encoder 115 performs entropy encoding on the quantized coefficients output from the quantizer 114 (316). The entropy encoder 115 may perform entropy encoding on the basis of a sub-slice unit. Therefore, the entropy encoder 115 can perform entropy encoding by independently processing each sub-slice without referring to information of other sub-slices.
마커 생성기(140)는 엔트로피 인코더(115)가 생성한 비트스트림에 서브 슬라이스를 구분하기 위한 구분 마커를 생성하여 삽입한다(317). 일 예로, 구분 마커는 특징 이진수의 열을 포함할 수 있다. The marker generator 140 generates and inserts a division marker for identifying a sub slice in the bit stream generated by the entropy encoder 115 (317). As an example, the division markers may include a column of feature binary numbers.
영상 인코딩 장치(100)는 각각의 서브 슬라이스마다 구분 마커가 삽입된 비트스트림을 출력한다(318). 일 예로, 출력된 비트스트림은 도 8과 같은 구조를 가질 수 있다. 출력된 비트스트림은 송신 장치(10)를 통해 수신 장치(20)로 전송될 수 있다.The video encoding apparatus 100 outputs a bitstream in which a division marker is inserted for each sub slice (318). For example, the output bitstream may have a structure as shown in FIG. The output bit stream may be transmitted to the receiving apparatus 20 via the transmitting apparatus 10. [
도 15의 실시예에 따르면, 엔트로피 인코딩을 제외한 과정에서는 서브 슬라이스 단위가 아닌 슬라이스 단위로 독립 처리하기 때문에, 참조할 수 있는 주변 정보가 많아지고, 이로 인해 영상의 평균 화질이 향상될 수 있다.According to the embodiment of FIG. 15, in the process excluding entropy encoding, independent processing is performed in units of slices, not in units of sub slices, so that peripheral information that can be referred to increases, and thus the average image quality of the image can be improved.
도 16은 일 실시예에 따른 영상 디코딩 방법에 대한 순서도이다.16 is a flowchart of an image decoding method according to an embodiment.
송신 장치(10)로부터 전송된 비트스트림이 영상 디코딩 장치(200)에 입력되면, 도 16에 도시된 바와 같이 슬라이스 구분기(210)가 입력된 비트스트림으로부터 슬라이스 시작코드를 검출하여 프레임을 구성하는 복수의 슬라이스를 각각 구분하고(330), 서브 슬라이스 구분기(220)가 단일 슬라이스에 대한 비트스트림으로부터 구분 마커를 검출하여 단일 슬라이스를 구성하는 복수의 서브 슬라이스를 각각 구분할 수 있다(331).When the bit stream transmitted from the transmitting apparatus 10 is input to the video decoding apparatus 200, as shown in FIG. 16, the slice separator 210 detects a slice start code from the inputted bit stream and forms a frame A plurality of slices are divided (330), and a sub-slice separator 220 detects a division marker from a bit stream of a single slice to separate a plurality of sub-slices constituting a single slice (331).
에러 검출기(250)는 입력된 비트스트림의 에러를 검출한다(332). 에러 검출기(250)는 각각의 서브 슬라이스마다 에러를 검출할 수 있다. 에러 검출기(250)는 에러가 검출된 서브 슬라이스에 대한 비트스트림 데이터를 폐기 또는 초기화할 수 있다. 영상 복구기(240)는 에러가 검출된 서브 슬라이스 영상을 복구할 수 있다(338).The error detector 250 detects an error in the input bitstream (332). The error detector 250 can detect an error for each sub-slice. The error detector 250 may discard or initialize the bitstream data for the sub-slice in which the error was detected. The image restorer 240 may recover the sub-slice image in which the error is detected (338).
에러가 검출되지 않은 서브 슬라이스에 대한 비트스트림은 엔트로피 디코더(231)에 입력된다. The bit stream for the sub-slice in which no error is detected is input to the entropy decoder 231. [
엔트로피 디코더(231)는 입력된 비트스트림을 확률 분포에 따라 엔트로피 디코딩할 수 있다(333). 엔트로피 디코더(231)는 엔트로피 디코딩을 수행하여 양자화된 계수 형태의 심볼을 포함한 심볼들을 생성할 수 있다.The entropy decoder 231 can entropy-decode the input bitstream according to the probability distribution (333). The entropy decoder 231 may perform entropy decoding to generate symbols including symbols of a quantized coefficient type.
역양자화기(232)는 양자화된 계수에 대해, 영상 인코딩 장치(100)에서 제공된 양자화 파라미터를 기초로 역양자화를 수행한다(334). 역양자화를 통해 주파수 계수가 출력될 수 있다. The inverse quantizer 232 performs inverse quantization on the quantized coefficients based on the quantization parameters provided in the video encoding apparatus 100 (334). The frequency coefficients can be output through inverse quantization.
역변환기(233)는 주파수 계수에 대해 영상 인코딩 장치(100)의 변환기(113)가 수행한 주파수 변환에 대한 역변환을 수행한다(335). 역변환을 통해 잔차 블록이 생성될 수 있다(336).The inverse transformer 233 performs an inverse transform on the frequency transform performed by the transformer 113 of the image encoding apparatus 100 with respect to the frequency coefficient (335). A residual block may be generated through an inverse transform (336).
가산기(234)는 잔차 블록과 예측기(237)로부터 출력되는 예측 블록을 이용하여 복원 블록을 생성한다(337). 여기서, 예측기(237)는 엔트로피 디코더(231)로부터 제공된 예측 블록 생성에 관련된 정보와 메모리(236)로부터 제공된 이미 복원된 블록 또는 프레임 정보에 기초하여 예측 블록을 생성할 수 있다. The adder 234 generates a reconstruction block using the residual block and the prediction block output from the predictor 237 (337). Here, the predictor 237 may generate a prediction block based on the information related to the prediction block generation provided from the entropy decoder 231 and the already reconstructed block or frame information provided from the memory 236.
또한, 생성된 복원 블록에 디블로킹 필터링, 적응적 오프셋 필터링 또는 적응적 루프 필터링을 수행한 후 메모리(236)에 저장하여 예측 블록의 생성에 사용하는 것도 가능하다.It is also possible to perform deblocking filtering, adaptive offset filtering, or adaptive loop filtering on the generated restoration block, and then store the restored block in the memory 236 for use in generation of a predicted block.
영상 디코딩 장치(200)는 에러가 검출되지 않은 서브 슬라이스에 대한 복원 블록들과 복구된 서브 슬라이스 영상으로 이루어진 복원 영상을 출력한다(339). The image decoding apparatus 200 outputs reconstructed images including reconstructed blocks for the sub-slices in which no error is detected and reconstructed sub-slice images (339).
한편, 에러가 검출된 서브 슬라이스와 인접한 서브 슬라이스에 대한 비트스트림의 디코딩 시에, 에러가 검출된 서브 슬라이스의 데이터 초기화로 인해 참조 블록이 부족한 경우가 발생할 수 있다. 따라서, 일 실시예에 따른 영상 디코딩 방법은 에러가 검출된 서브 슬라이스와 인접한 서브 슬라이스의 디코딩 데이터, 주변 서브 슬라이스 정보 또는 주변 프레임 정보 등을 이용하여 에러가 검출된 서브 슬라이스와 인접한 서브 슬라이스의 영상을 복구하는 것을 더 포함하는 것도 가능하다.On the other hand, at the time of decoding the bit stream for the sub slice in which the error is detected and the adjacent sub slice, it may happen that the reference block is insufficient due to the data initialization of the sub slice in which the error is detected. Accordingly, in the image decoding method according to an embodiment, a sub-slice in which an error is detected using the decoded data of a sub-slice in which an error is detected, neighboring sub-slice information, or neighboring frame information, It is also possible to further include restoring.
도 16의 실시예에 따르면, 에러가 검출된 서브 슬라이스 및 그와 인접한 서브 슬라이스의 일부 영역만 에러의 영향을 받고 나머지 서브 슬라이스들은 독립적으로 처리되어 에러의 영향을 받지 않으므로 에러 발생으로 인한 화질 저하를 According to the embodiment of FIG. 16, only a sub-slice in which an error is detected and a partial area of a sub-slice adjacent thereto are influenced by errors, and the remaining sub-slices are independently processed and are not affected by errors.
상기의 설명은 기술적 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명의 기술 분야에서 통상의 지식을 가진 자라면 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. The foregoing description is merely illustrative of the technical idea of the present invention, and various modifications, alterations, and permutations thereof may be made without departing from the essential characteristics of the present invention.
따라서, 상기에 개시된 실시예 및 첨부된 도면들은 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 기술적 사상의 범위가 한정되는 것은 아니다. 그 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술적 사상은 권리범위에 포함되는 것으로 해석되어야 할 것이다.Therefore, the embodiments and the accompanying drawings described above are intended to illustrate and not limit the technical idea, and the scope of the technical idea is not limited by these embodiments and the accompanying drawings. The scope of which is to be construed in accordance with the following claims, and all technical ideas which are within the scope of the same shall be construed as being included in the scope of the right.
전술한 실시예에 따른 영상 인코딩 장치, 영상 디코딩 장치, 영상 인코딩 방법 및 영상 디코딩 방법에 의하면, 엔트로피 인코딩만 서브 슬라이스 단위로 수행하고 나머지 처리는 슬라이스 단위로 수행함으로써 영상의 평균 화질을 향상시킬 수 있고, 에러가 발생한 경우에는 서브 슬라이스 단위로 데이터를 초기화 및 복구함으로써 에러 발생으로 인한 화질 저하를 최소화할 수 있다.According to the video encoding apparatus, the video decoding apparatus, the video encoding method, and the video decoding method according to the above-described embodiments, only the entropy encoding is performed in units of sub slices and the remaining processing is performed in units of slices, , And when an error occurs, initialization and restoration of data in units of sub slices can minimize the deterioration of image quality due to an error occurrence.

Claims (15)

  1. 입력 영상을 복수의 슬라이스로 분할하는 슬라이스 분배기; A slice distributor for dividing the input image into a plurality of slices;
    상기 복수의 슬라이스를 각각 복수의 서브 슬라이스로 분할하는 서브 슬라이스 분배기; 및A sub slice divider dividing the plurality of slices into a plurality of sub slices; And
    상기 입력 영상의 데이터를 상기 슬라이스 단위로 처리하여 상기 입력 영상의 데이터에 대한 예측값을 결정하고, 상기 예측값을 이용하여 심볼을 생성하고, 상기 심볼에 대해 상기 서브 슬라이스 단위로 엔트로피 인코딩을 수행하여 상기 입력 영상에 대한 비트스트림을 출력하는 인코딩 모듈;을 포함하는 영상 인코딩 장치.Processing the data of the input image by the slice unit to determine a predicted value for the data of the input image, generating a symbol using the predicted value, performing entropy encoding on the symbol for each sub-slice, And an encoding module for outputting a bit stream for the image.
  2. 제 1 항에 있어서,The method according to claim 1,
    상기 복수의 서브 슬라이스를 구분하기 위한 구분 마커를 생성하고, 상기 출력된 비트스트림에서 상기 복수의 서브 슬라이스에 대한 데이터가 시작되는 위치마다 상기 구분 마커를 삽입하는 마커 생성기;를 더 포함하는 영상 인코딩 장치.And a marker generator for generating a division marker for identifying the plurality of sub slices and inserting the division marker for each position where data for the plurality of sub slices starts in the output bit stream, .
  3. 제 1 항에 있어서,The method according to claim 1,
    상기 인코딩 모듈은,Wherein the encoding module comprises:
    상기 예측값의 결정 대상인 현재 블록과 동일한 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조하여 상기 현재 블록의 예측값을 결정하는 영상 인코딩 장치.Wherein the predicted value of the current block is determined with reference to information of at least one neighboring block included in the same slice as the current block to be predicted.
  4. 제 3 항에 있어서,The method of claim 3,
    상기 인코딩 모듈은,Wherein the encoding module comprises:
    상기 현재 블록의 데이터와 상기 결정된 예측값을 차분하여 잔차 데이터를 생성하고, 상기 잔차 데이터에 주파수 변환을 수행하여 변환 계수를 생성하고, 상기 변환 계수에 양자화를 수행하여 양자화된 계수 형태의 상기 심볼을 생성하는 영상 인코딩 장치.Generating residual data by performing a difference operation on the data of the current block and the determined predictive value, performing frequency conversion on the residual data to generate a transform coefficient, and performing quantization on the transform coefficient to generate the symbol of the quantized coefficient type / RTI >
  5. 제 4 항에 있어서,5. The method of claim 4,
    상기 인코딩 모듈은,Wherein the encoding module comprises:
    상기 심볼에 역양자화 및 역양자화를 수행하여 잔차 데이터를 복원하고, 상기 잔차 데이터와 상기 예측값을 이용하여 복원 데이터를 생성하는 영상 인코딩 장치.And performing inverse quantization and inverse quantization on the symbols to reconstruct residual data and generate reconstructed data using the residual data and the predicted values.
  6. 제 5 항에 있어서,6. The method of claim 5,
    상기 복원 데이터를 저장하는 메모리;를 더 포함하고,And a memory for storing the restored data,
    상기 인코딩 모듈은,Wherein the encoding module comprises:
    현재 블록의 데이터에 대한 예측값을 결정할 때, 상기 메모리에 저장된 복원 데이터 중 주변 블록에 대한 복원 데이터를 참조하는 영상 인코딩 장치.Wherein the restored data for the neighboring block among the restored data stored in the memory is referenced when the predicted value for the data of the current block is determined.
  7. 제 1 항에 있어서,The method according to claim 1,
    상기 인코딩 모듈은,Wherein the encoding module comprises:
    현재 블록에 대해 엔트로피 인코딩을 수행할 때 상기 현재 블록과 동일한 서브 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조하는 영상 인코딩 장치.Wherein information on at least one neighboring block included in the same sub-slice as the current block is referred to when entropy encoding is performed on the current block.
  8. 제 1 항에 있어서,The method according to claim 1,
    상기 서브 슬라이스 분배기는,Wherein the sub-
    상기 복수의 서브 슬라이스의 개수에 관한 파라미터에 기초하여 상기 복수의 슬라이스를 분할하는 영상 인코딩 장치.And divides the plurality of slices based on parameters relating to the number of the plurality of sub slices.
  9. 입력 영상을 복수의 슬라이스로 분할하고; Dividing the input image into a plurality of slices;
    상기 복수의 슬라이스를 각각 복수의 서브 슬라이스로 분할하고;Dividing the plurality of slices into a plurality of sub slices;
    상기 입력 영상의 데이터를 상기 슬라이스 단위로 처리하여 상기 입력 영상의 데이터에 대한 예측값을 결정하고;Processing the data of the input image by the slice unit to determine a predicted value for the data of the input image;
    상기 예측값을 이용하여 심볼을 생성하고;Generate a symbol using the predicted value;
    상기 심볼에 대해 상기 서브 슬라이스 단위로 엔트로피 인코딩을 수행하여 상기 입력 영상에 대한 비트스트림을 출력하는 것;을 포함하는 영상 인코딩 방법.And outputting a bitstream for the input image by performing entropy encoding on the sub-slice basis for the symbol.
  10. 제 9 항에 있어서,10. The method of claim 9,
    상기 복수의 서브 슬라이스를 구분하기 위한 구분 마커를 생성하고;Generating a division marker for identifying the plurality of sub slices;
    상기 입력 영상에 대한 비트스트림에서 상기 복수의 서브 슬라이스에 대한 데이터가 시작되는 위치마다 상기 구분 마커를 삽입하는 것;을 더 포함하는 영상 인코딩 방법.And inserting the segmentation marker at a position where data for the plurality of sub slices is started in the bitstream for the input image.
  11. 제 9 항에 있어서,10. The method of claim 9,
    상기 예측값을 결정하는 것은,Determining the predicted value may comprise:
    현재 블록의 데이터에 대한 예측값을 결정할 때, 상기 현재 블록과 동일한 슬라이스에 포함되는 적어도 하나의 주변 블록의 정보를 참조하는 영상 인코딩 방법.Wherein information on at least one neighboring block included in the same slice as the current block is referred to when determining a predicted value for data of the current block.
  12. 제 11 항에 있어서,12. The method of claim 11,
    상기 심볼을 생성하는 것은,The generating of the symbol comprises:
    상기 현재 블록의 데이터와 상기 결정된 예측값을 차분하여 잔차 데이터를 생성하고;Generating residual data by difference between the data of the current block and the determined predicted value;
    상기 잔차 데이터에 주파수 변환을 수행하여 변환 계수를 생성하고;Performing frequency conversion on the residual data to generate a transform coefficient;
    상기 변환 계수에 양자화를 수행하여 양자화된 계수 형태의 상기 심볼을 생성하는 것;을 포함하는 영상 인코딩 방법.And performing quantization on the transform coefficients to generate the symbol of a quantized coefficient type.
  13. 제 12 항에 있어서,13. The method of claim 12,
    상기 심볼에 역양자화 및 역양자화를 수행하여 잔차 데이터를 복원하고;Performing inverse quantization and inverse quantization on the symbols to recover residual data;
    상기 복원된 잔차 데이터와 상기 예측값을 이용하여 복원 데이터를 생성하는 것;을 더 포함하는 영상 인코딩 방법.And generating reconstruction data using the reconstructed residual data and the predicted value.
  14. 제 13 항에 있어서,14. The method of claim 13,
    상기 복원 데이터를 저장하는 것;을 더 포함하고,Further comprising storing the restoration data,
    상기 예측값을 결정하는 것은,Determining the predicted value may comprise:
    현재 블록의 데이터에 대한 예측값을 결정할 때, 상기 저장된 복원 데이터 중 주변 블록에 대한 복원 데이터를 참조하는 것;을 포함하는 영상 인코딩 방법.And determining reconstruction data for a neighboring block among the stored reconstruction data when determining a predicted value for data of the current block.
  15. 입력된 비트스트림에서 슬라이스 시작 코드를 검출하여 복수의 슬라이스를 구분하고; Detecting a slice start code in an input bit stream to divide a plurality of slices;
    상기 입력된 비트스트림에서 구분 마커를 검출하여 복수의 서브 슬라이스를 구분하고;Detecting a division marker in the input bit stream to separate a plurality of sub slices;
    상기 입력된 비트스트림에 대해 에러를 검사하고;Checking an error for the input bitstream;
    상기 에러가 검출된 서브 슬라이스의 데이터를 초기화하고;Initializing data of the sub slice in which the error is detected;
    상기 에러가 검출되지 않은 비트스트림을 디코딩하여 복원 영상을 생성하고;Generating a reconstructed image by decoding a bitstream in which the error is not detected;
    상기 에러가 검출된 서브 슬라이스의 데이터를 복구하여 복구 영상을 생성하는 것;을 포함하는 영상 디코딩 방법.And recovering the data of the sub slice in which the error is detected to generate a restored image.
PCT/KR2018/011330 2017-09-22 2018-09-21 Image encoding device, image decoding device, image encoding method, and image decoding method WO2019059736A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2017-0122339 2017-09-22
KR1020170122339A KR20190033771A (en) 2017-09-22 2017-09-22 Image encoding apparatus, image decoding apparatus, image encoding method, image decoding method

Publications (1)

Publication Number Publication Date
WO2019059736A1 true WO2019059736A1 (en) 2019-03-28

Family

ID=65811412

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2018/011330 WO2019059736A1 (en) 2017-09-22 2018-09-21 Image encoding device, image decoding device, image encoding method, and image decoding method

Country Status (2)

Country Link
KR (1) KR20190033771A (en)
WO (1) WO2019059736A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220003124A (en) 2019-05-24 2022-01-07 디지털인사이트 주식회사 Video coding method and apparatus using adaptive parameter set
JP7310021B2 (en) * 2019-11-28 2023-07-18 エルジー エレクトロニクス インコーポレイティド Image/video coding method and apparatus
US20230156228A1 (en) * 2019-11-28 2023-05-18 Lg Electronics Inc. Image/video encoding/decoding method and device
KR20220087512A (en) * 2019-11-28 2022-06-24 엘지전자 주식회사 Image/video coding method and apparatus based on picture segmentation structure
AU2020392150B2 (en) * 2019-11-28 2024-03-21 Lg Electronics Inc. Slice and tile configuration for image/video coding

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050076943A (en) * 2004-01-26 2005-07-29 엘지전자 주식회사 Apparatus and method for error hiding of video decoder
KR20130043054A (en) * 2011-10-19 2013-04-29 한국전자통신연구원 Method and device for image processing by image division
KR101273497B1 (en) * 2012-06-07 2013-06-17 인하대학교 산학협력단 System for transmitting maximum frame block data using block buffer in wireless network
KR101625724B1 (en) * 2011-01-26 2016-06-13 퀄컴 인코포레이티드 Sub-slices in video coding
KR101760018B1 (en) * 2013-12-27 2017-07-24 한국전자통신연구원 Image data communication method and image data communication device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050076943A (en) * 2004-01-26 2005-07-29 엘지전자 주식회사 Apparatus and method for error hiding of video decoder
KR101625724B1 (en) * 2011-01-26 2016-06-13 퀄컴 인코포레이티드 Sub-slices in video coding
KR20130043054A (en) * 2011-10-19 2013-04-29 한국전자통신연구원 Method and device for image processing by image division
KR101273497B1 (en) * 2012-06-07 2013-06-17 인하대학교 산학협력단 System for transmitting maximum frame block data using block buffer in wireless network
KR101760018B1 (en) * 2013-12-27 2017-07-24 한국전자통신연구원 Image data communication method and image data communication device

Also Published As

Publication number Publication date
KR20190033771A (en) 2019-04-01

Similar Documents

Publication Publication Date Title
WO2019059736A1 (en) Image encoding device, image decoding device, image encoding method, and image decoding method
WO2016204360A1 (en) Method and device for predicting block on basis of illumination compensation in image coding system
WO2017069419A1 (en) Intra-prediction method and apparatus in video coding system
WO2020071830A1 (en) Image coding method using history-based motion information, and device therefor
WO2017057953A1 (en) Method and device for coding residual signal in video coding system
WO2017086765A2 (en) Method and apparatus for entropy encoding and decoding video signal
WO2011087323A2 (en) Method and apparatus for encoding and decoding image by using large transform unit
WO2014163247A1 (en) Method and apparatus for processing video
WO2012081879A1 (en) Method for decoding inter predictive encoded motion pictures
WO2018190594A1 (en) Method and device for entropy encoding, decoding video signal
WO2011126285A2 (en) Method and apparatus for encoding and decoding information on encoding modes
WO2017061671A1 (en) Method and device for coding image on basis of adaptive transformation in image coding system
WO2012044124A2 (en) Method for encoding and decoding images and apparatus for encoding and decoding using same
WO2015009036A1 (en) Method and apparatus for predicting inter-layer based on temporal sub-layer information
WO2014042460A1 (en) Method and apparatus for encoding/decoding images
WO2013162249A1 (en) Video-encoding method, video-decoding method, and apparatus implementing same
WO2019194507A1 (en) Image coding method based on affine motion prediction, and device for same
WO2018155996A1 (en) Method for controlling bit rate on basis of bit prediction by video coding process supporting offline cabac and device therefor
WO2021118295A1 (en) Image coding device and method for controlling loop filtering
WO2020076066A1 (en) Syntax design method and apparatus for performing coding by using syntax
WO2014007515A1 (en) Method for decoding image and apparatus using same
WO2015194913A1 (en) Method for encoding/decoding image and device using same
WO2021177791A1 (en) Mixed nal unit type-based image encoding/decoding method and device, and method for transmitting bitstream
WO2014051372A1 (en) Image decoding method and apparatus using same
WO2021118293A1 (en) Filtering-based image coding device and method

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: 18858502

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18858502

Country of ref document: EP

Kind code of ref document: A1