Image decoding / encoding method and bit stream transmission method
By using multiple reference pixel rows to perform in-screen prediction and efficient entropy coding in the image encoding/decoding method, the problems of insufficient channel bandwidth and low encoding efficiency in the prior art are solved, and more efficient image encoding and decoding are achieved.
Patent Information
- Application Number
- CN202510380625.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2018-06-18
- Filing Date
- 2019-06-18
- Publication Date
- 2025-05-13
AI Technical Summary
The prior art is difficult to efficiently perform in-screen prediction and entropy coding, especially when multimedia data increases dramatically, the channel bandwidth development speed is insufficient.
Using an image encoding/decoding method, by deciding the intra prediction mode of the current block, performing single-direction prediction or two-direction prediction, using multiple reference pixel rows to generate prediction blocks, and efficiently process the bit stream during entropy encoding.
It improves the efficiency of image encoding and decoding, reduces the amount of encoding information generated during video encoding, improves the arithmetic encoding and decoding performance, and supports the effective storage of the generated bit stream.
Smart Images

Figure CN119996698A_ABST
Abstract
Description
[0001] This application is a divisional application of a patent application with application date of June 18, 2019, application number 201980041239.4, and title “Image encoding / decoding method and device”. Technical Field
[0002] The present invention relates to an image encoding / decoding method and device, and more particularly to an image encoding / decoding method and device for performing intra-frame prediction using a plurality of reconstructed pixel rows. Background Art
[0003] In recent years, the demand for multimedia data such as video on the Internet has been increasing rapidly. However, the current development speed of channel bandwidth is unable to fully meet the rapidly increasing amount of multimedia data. To this end, the Video Coding Expert Group (VCEG) of the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) and the Moving Picture Expert Group (MPEG) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC) developed the video compression standard High Efficiency Video Coding (HEVC) Version 1 in February 2014.
[0004] In High Efficiency Video Coding (HEVC), various techniques such as intra-picture prediction (or intra-frame prediction), inter-picture prediction (or inter-frame prediction), transform, quantization, entropy coding, and loop filtering are defined. Summary of the invention
[0005] Technical issues The object of the present invention is to provide a method and apparatus for image encoding / decoding using multiple reference pixel rows to perform intra-frame prediction.
[0006] In addition, an object of the present invention is to provide a method and apparatus for image encoding / decoding for efficiently performing entropy encoding and decoding.
[0007] Another object of the present invention is to provide a recording medium for storing a bit stream generated by applying the video encoding method or apparatus of the present invention.
[0008] Another object of the present invention is to provide a recording medium for storing a bit stream decoded by a video decoding method or apparatus to which the present invention is applied.
[0009] The technical issues to be achieved by the present invention are not limited to the technical issues mentioned in the above content. Those having general knowledge in the technical field to which the present invention belongs will be able to further clearly understand other technical issues not mentioned through the following description.
[0010] Technical means An image decoding method applicable to one aspect of the present invention may include the following steps: determining an intra-frame prediction mode of a current block; determining whether to perform unidirectional prediction or bidirectional prediction based on the intra-frame prediction mode of the current block; and generating a prediction block of the current block by performing one of the unidirectional prediction and the bidirectional prediction, wherein the unidirectional prediction includes: generating the unidirectional prediction value of the current block by using a first reference pixel row according to a prediction direction of the intra-frame prediction mode, and the bidirectional prediction includes: generating the bidirectional prediction value of the current block by using a second reference pixel row according to an opposite direction of the prediction direction of the intra-frame prediction mode, the second reference pixel row being adjacent to the current block in an opposite direction of the prediction direction of the intra-frame prediction mode, and the bidirectional prediction value of the current block is determined based on a first weight for the unidirectional prediction and a second weight for the bidirectional prediction, and regardless of the size of the current block and the shape of the current block, the first weight for the unidirectional prediction is determined to be greater than the second weight for the bidirectional prediction.
[0011] An image encoding method applicable to one aspect of the present invention may include the following steps: determining an intra-frame prediction mode of a current block; determining whether to perform unidirectional prediction or bidirectional prediction based on the intra-frame prediction mode of the current block; and generating a prediction block of the current block by performing one of the unidirectional prediction and the bidirectional prediction, wherein the unidirectional prediction includes: generating the unidirectional prediction value of the current block by using a first reference pixel row according to a prediction direction of the intra-frame prediction mode, and the bidirectional prediction includes: generating the bidirectional prediction value of the current block by using a second reference pixel row according to an opposite direction of the prediction direction of the intra-frame prediction mode, the second reference pixel row being adjacent to the current block in an opposite direction of the prediction direction of the intra-frame prediction mode, and the bidirectional prediction value of the current block is determined based on a first weight for the unidirectional prediction and a second weight for the bidirectional prediction, and regardless of the size of the current block and the shape of the current block, the first weight for the unidirectional prediction is determined to be greater than the second weight for the bidirectional prediction.
[0012] A method for transmitting a bit stream applicable to one aspect of the present invention may include the following steps: transmitting a bit stream generated by an image coding method, wherein the image coding method includes the following steps: determining an intra-frame prediction mode of a current block; determining whether to perform unidirectional prediction or bidirectional prediction based on the intra-frame prediction mode of the current block; and generating a prediction block of the current block by performing one of the unidirectional prediction and the bidirectional prediction, wherein the unidirectional prediction includes: generating the unidirectional prediction value of the current block by using a first reference pixel row according to the prediction direction of the intra-frame prediction mode, The bidirectional prediction includes: generating a bidirectional prediction value of the current block by using a second reference pixel row according to the opposite direction of the prediction direction of the intra-frame prediction mode, the second reference pixel row is adjacent to the current block in the opposite direction of the prediction direction of the intra-frame prediction mode, the bidirectional prediction value of the current block is determined based on a first weight for the unidirectional prediction and a second weight for the bidirectional prediction, and regardless of the size of the current block and the shape of the current block, the first weight for the unidirectional prediction is determined to be greater than the second weight for the bidirectional prediction.
[0013] An image decoding method applicable to one aspect of the present invention may include: a step of reconstructing reference pixel row information; a step of selecting at least one reference pixel row from a plurality of reference pixel rows based on the reference pixel row information; and a step of generating a prediction block for the current block by performing intra-frame prediction on the current block based on the selected reference pixel row.
[0014] In the image decoding method applicable to the present invention, the reference pixel row information may be decoded in block units.
[0015] In the image decoding method applicable to the present invention, the prediction block may be generated by performing a weighted sum of the upper reference pixel of the current block and the left reference pixel of the current block.
[0016] In the image decoding method applicable to the present invention, the upper reference pixel and the left reference pixel may be selected based on the prediction direction of the current block.
[0017] In the image decoding method applicable to the present invention, the upper reference pixel and the left reference pixel exist on the first reference pixel row adjacent to the current block, and the upper reference pixel and the left reference pixel can be selected based on the coordinates of the current pixel in the current block.
[0018] In the image decoding method applicable to the present invention, when the coordinates of the upper left pixel in the above-mentioned current block are (0, 0) and the coordinates of the above-mentioned current pixel are (x, y), the coordinates of the above-mentioned upper reference pixel can be (x+y+1, -1), and the coordinates of the above-mentioned left reference pixel can be (-1, x+y+1).
[0019] In the image decoding method applicable to the present invention, the weight used for the weighted sum can be determined based on the distance from the current pixel in the current block to the upper reference pixel and the left reference pixel.
[0020] In the image decoding method to which the present invention is applied, a greater weight may be applied to the reference pixel that is closer to the current pixel among the upper reference pixel and the left reference pixel.
[0021] An image encoding method applicable to another aspect of the present invention may include: a step of selecting at least one reference pixel row from a plurality of reference pixel rows; a step of generating a prediction block for the current block by performing intra-frame prediction on the current block based on the selected reference pixel row; and a step of encoding reference pixel row information related to the selected reference pixel row.
[0022] In the image encoding method applicable to the present invention, the reference pixel row information may be encoded in block units.
[0023] In the image encoding method applicable to the present invention, the prediction block may be generated by performing a weighted sum of the upper reference pixel of the current block and the left reference pixel of the current block.
[0024] In the image encoding method applicable to the present invention, the upper reference pixel and the left reference pixel may be selected based on the prediction direction of the current block.
[0025] In the image encoding method applicable to the present invention, the above-mentioned upper reference pixel and the above-mentioned left reference pixel exist on the first reference pixel row adjacent to the above-mentioned current block, and the above-mentioned upper reference pixel and the above-mentioned left reference pixel can be selected based on the coordinates of the current pixel in the above-mentioned current block.
[0026] In the image encoding method applicable to the present invention, when the coordinates of the upper left pixel in the above-mentioned current block are (0, 0) and the coordinates of the above-mentioned current pixel are (x, y), the coordinates of the above-mentioned upper reference pixel can be (x+y+1, -1), and the coordinates of the above-mentioned left reference pixel can be (-1, x+y+1).
[0027] In the image encoding method applicable to the present invention, the weight used for the weighted sum can be determined based on the distance from the current pixel in the current block to the upper reference pixel and the left reference pixel.
[0028] In the image encoding method to which the present invention is applied, a greater weight may be applied to the reference pixel that is closer to the current pixel among the upper reference pixel and the left reference pixel.
[0029] An image encoding method applicable to another aspect of the present invention may include: a step of receiving encoding and decoding parameters; a step of performing probability initialization; a step of determining binary information of the above-mentioned encoding and decoding parameters; a step of encoding the above-mentioned binary information; and a step of updating the probability table according to the characteristics of the above-mentioned encoding and decoding parameters.
[0030] In the video encoding method to which the present invention is applied, there may be K characteristics of the encoding and decoding parameters and K probability tables respectively, and K may be greater than or equal to 2.
[0031] In the image coding method applicable to the present invention, the K probability tables may have initial probability information that is the same as or different from each other, and information related to whether the initial probability information is the same as or different from each other may be sent by signaling in the upper level of the block.
[0032] In the image encoding method applicable to the present invention, the characteristic of the encoding / decoding parameter may be whether the second transformation is performed or not.
[0033] In the image encoding method applicable to the present invention, whether the above-mentioned second transformation is performed can be determined according to whether the position of the current coefficient is in the first transformation area or the second transformation area.
[0034] In the video encoding method applicable to the present invention, the second transformation area can be determined based on the position of the last non-zero coefficient in the scanning order.
[0035] In the image encoding method applicable to the present invention, the second transform area may be a sub-block area determined according to the position of the upper left coefficient of the current block and the position of the last non-zero coefficient.
[0036] In the video encoding method to which the present invention is applied, information related to the second transform region may be signaled via a bit stream.
[0037] In the image encoding method applicable to the present invention, the characteristic of the encoding / decoding parameter may be a prediction mode of the current block.
[0038] In the image encoding method applicable to the present invention, the characteristics of the above-mentioned encoding and decoding parameters can be whether the second transformation is performed and the prediction mode of the current block, and 4 probability tables can be used when encoding the above-mentioned encoding and decoding parameters.
[0039] An image decoding method applicable to another aspect of the present invention may include: a step of receiving a bit stream; a step of performing probability initialization; a step of decoding binary information of coding and decoding parameters; a step of determining information of the above-mentioned coding and decoding parameters; and a step of updating a probability table according to characteristics of the above-mentioned coding and decoding parameters.
[0040] In the video decoding method to which the present invention is applied, there may be K characteristics of the encoding and decoding parameters and K probability tables respectively, and K may be greater than or equal to 2.
[0041] In the video decoding method to which the present invention is applied, the K probability tables may have initial probability information that is the same as or different from each other, and information on whether the initial probability information is the same as or different from each other may be sent by signaling in the upper level of the block.
[0042] In the image decoding method applicable to the present invention, the characteristic of the encoding and decoding parameter may be whether the second transformation is performed or not.
[0043] In the image decoding method applicable to the present invention, whether the above-mentioned second transformation is performed can be determined according to whether the position of the current coefficient is in the first transformation area or the second transformation area.
[0044] In the video decoding method to which the present invention is applied, the second transform area may be determined based on the position of the last non-zero coefficient in the scanning order.
[0045] In the image decoding method applicable to the present invention, the second transform area may be a sub-block area determined according to the position of the upper left coefficient of the current block and the position of the last non-zero coefficient.
[0046] In the video decoding method to which the present invention is applied, the information related to the second transform area may be signaled via a bit stream.
[0047] In the image decoding method applicable to the present invention, the characteristic of the encoding and decoding parameter may be a prediction mode of the current block.
[0048] In the image decoding method applicable to the present invention, the characteristics of the above-mentioned coding and decoding parameters can be whether the second transformation is performed and the prediction mode of the current block, and four probability tables can be used when decoding the above-mentioned coding and decoding parameters.
[0049] A computer-readable recording medium according to another aspect of the present invention can store a bit stream generated by the video encoding method and / or apparatus according to the present invention.
[0050] A computer-readable recording medium according to still another aspect of the present invention can store a bit stream decoded by the video decoding method and / or apparatus according to the present invention.
[0051] Technical Effects The present invention can provide a method and device for image encoding / decoding using multiple reference pixel rows to perform intra-frame prediction.
[0052] In addition, the present invention can provide a method and apparatus for predicting a current block using a plurality of prediction blocks generated based on a plurality of prediction information.
[0053] In addition, the present invention can provide a method and apparatus for image encoding / decoding for efficiently performing entropy encoding and decoding.
[0054] Furthermore, the present invention can improve coding efficiency by reducing the amount of coding information generated when encoding a video.
[0055] In addition, the present invention can improve arithmetic encoding and arithmetic decoding performance by efficiently selecting probability information applicable to encoding or decoding of each symbol when performing context-adaptive arithmetic encoding and decoding.
[0056] Furthermore, the present invention can provide a computer-readable recording medium for storing a bit stream generated by the video encoding method / apparatus to which the present invention is applied.
[0057] Furthermore, the present invention can provide a computer-readable recording medium for storing a bit stream decoded by the video decoding method and / or apparatus to which the present invention is applied. BRIEF DESCRIPTION OF THE DRAWINGS
[0058] Figure 1 This is an example diagram that schematically illustrates the structure of a video encoding device.
[0059] Figure 2 This is an exemplary diagram illustrating an embodiment of a prediction unit of a video encoding device.
[0060] Figure 3 It is a schematic diagram for explaining an embodiment of encoding coding information in a video encoding device.
[0061] Figure 4 This is an exemplary diagram illustrating the structure of a video decoding device.
[0062] Figure 5This is an exemplary diagram illustrating the configuration of a prediction unit of a video decoding device.
[0063] Figure 6 This is a schematic diagram for explaining an embodiment of decoding coded information in a video decoding device.
[0064] Figure 7 This is a schematic diagram for explaining an embodiment of intra-frame prediction using multiple reference pixel rows.
[0065] Figure 8 This is a schematic diagram for explaining another embodiment of intra-picture prediction using multiple reference pixel rows.
[0066] Fig. 9 This is an exemplary diagram illustrating an intra-frame prediction unit of a video encoding device that uses one or more reference pixel rows.
[0067] Fig.10 This is an exemplary diagram illustrating an intra-frame prediction unit of a video decoding device that uses one or more reference pixel rows.
[0068] Fig.11 This is a schematic diagram for explaining a method for encoding prediction mode information according to an embodiment of the present invention.
[0069] Fig.12 This is a schematic diagram for explaining a method of decoding prediction mode information according to an embodiment of the present invention.
[0070] Fig.13 This is a schematic diagram for explaining an intra-frame prediction unit of a video encoding device according to another embodiment of the present invention.
[0071] Fig.14 This is a schematic diagram for explaining an intra-frame prediction unit of a video decoding device according to another embodiment of the present invention.
[0072] Fig.15 This is a schematic diagram for explaining a method for encoding prediction mode information according to an embodiment of the present invention.
[0073] Fig.16 This is a schematic diagram for explaining a method of decoding prediction mode information according to an embodiment of the present invention.
[0074] Fig.17 This is a schematic diagram for explaining a method of performing intra-frame prediction according to another embodiment to which the present invention is applied.
[0075] Fig.18This is a schematic diagram for explaining an intra-frame prediction unit of a video encoding device according to another embodiment of the present invention.
[0076] Fig.19 This is a schematic diagram for explaining an intra-frame prediction unit of a video decoding device according to another embodiment of the present invention.
[0077] Fig. 20 This is a schematic diagram for explaining a method for encoding prediction mode information according to an embodiment of the present invention.
[0078] Fig.21 This is a schematic diagram for explaining a method of decoding prediction mode information according to an embodiment of the present invention.
[0079] Fig. 22 This is a schematic diagram used to explain the operation of the transformation unit of the image encoding device.
[0080] Fig.23 This is a schematic diagram for explaining the operation of the inverse transform unit of the video encoding / decoding device.
[0081] Fig.24 is a schematic diagram for describing an embodiment of a method for encoding a transform block.
[0082] Fig.25 is a schematic diagram for describing an embodiment of a method for decoding a transform block.
[0083] Fig.26 It is a schematic diagram for illustrating an embodiment of a context-adaptive binarization arithmetic coding method.
[0084] Fig. 27 is a schematic diagram for illustrating an embodiment of a context-adaptive binarization arithmetic decoding method.
[0085] Fig.28 This is a schematic diagram illustrating an example of applying different probability information according to surrounding coefficient information.
[0086] Fig.29 It is a schematic diagram illustrating an example of updated probability information.
[0087] Fig.30 It is a schematic diagram for illustrating a context-adaptive binarization arithmetic coding method that is adaptive to specific conditions according to an embodiment of the present invention.
[0088] Fig.31 It is a schematic diagram for explaining a context-adaptive binarization arithmetic decoding method that is adaptive to specific conditions according to an embodiment of the present invention.
[0089] Fig.32 This is a schematic diagram used to illustrate the operation of the transformation unit of the image encoding device applicable to one embodiment of the present invention.
[0090] Fig.33 This is a schematic diagram for explaining the operation of the inverse transformation unit of a video encoding / decoding device to which one embodiment of the present invention is applied.
[0091] Fig.34 This is an exemplary diagram illustrating a second transformation area within a transformation block to which one embodiment of the present invention is applied.
[0092] Fig.35 It is a schematic diagram for explaining a method for encoding a transform block according to an embodiment of the present invention.
[0093] Fig.36 It is a schematic diagram for explaining a decoding method of a transform block according to an embodiment of the present invention. DETAILED DESCRIPTION
[0094] Next, embodiments to which the present invention is applicable will be described in detail with reference to the drawings of this specification so that a person having general knowledge of the technical field to which the present invention belongs can easily implement the present invention. However, the present invention can be implemented in many different forms and is not limited to the embodiments described in this specification. In addition, in order to clearly describe the present invention, parts that are not related to the description are omitted in the drawings, and similar parts are assigned similar figure numbers throughout the specification.
[0095] Throughout the specification, when it is stated that a certain part is “connected” to another part, it includes not only a case of being directly connected to another part, but also a case of being electrically connected with another element interposed therebetween.
[0096] Furthermore, throughout the specification, when a certain part is described as “including” a certain constituent element, unless otherwise clearly described to the contrary, it does not mean that other constituent elements are excluded but rather means that other constituent elements may also be included.
[0097] In addition, when describing different components, terms such as "1" and "2" may be used, but the components are not limited by the terms. The terms are only used to distinguish one component from other components.
[0098] In addition, in the embodiments related to the apparatus and method described in this specification, a part of the configuration in the apparatus or a part of the steps in the method may be omitted. In addition, the order of a part of the configuration in the apparatus or a part of the steps in the method may be changed. In addition, other configurations or other steps may be inserted into a part of the configuration in the apparatus or a part of the steps in the method.
[0099] Furthermore, a part of the configuration or a part of the steps in the first embodiment to which the present invention is applied may be added to the second embodiment to which the present invention is applied, or a part of the configuration or a part of the steps in the second embodiment may be substituted.
[0100] Moreover, the components included in the embodiments applicable to the present invention are illustrated separately only to show different specific functions, and do not mean that each component is composed of hardware or a software component unit separated from each other. That is, although the components are listed for the convenience of explanation, at least two components in each component can be combined into one component, or one component can be divided into multiple components and make them perform corresponding functions. The combined embodiments and divided embodiments of the components as described above are also included in the scope of the claims of the present invention without departing from the essence of the present invention.
[0101] First, the terms used in this application will be briefly explained as follows.
[0102] The decoding apparatus (Video Decoding Apparatus) described in the following content may be included in a device such as a civilian security camera, a civilian security system, a military security camera, a military security system, a personal computer (PC, Personal Computer), a notebook computer, a portable multimedia player (PMP, Portable Multimedia Player), a wireless communication terminal (Wireless Communication Terminal), a smart phone (Smart Phone), a television (TV) application service, and a service server and other service terminals. It may be equipped with various devices such as a communication modem for communicating with various devices such as a user terminal, a wired or wireless communication network, a memory for storing various programs and data for performing image decoding or performing inter-screen or intra-screen prediction for decoding, and a microprocessor for performing calculations and control by executing programs.
[0103] In addition, the image encoded into a bitstream by the encoder can be transmitted to the image decoding device in real time or non-real time through a wired wireless communication network such as the Internet, a short-range wireless communication network, a wireless local area network, a wireless broadband access service (WiBro) network, a mobile communication network, or through various communication interfaces such as cables, a universal serial bus (USB), etc., and reconstructed into an image for playback through decoding. Alternatively, the bitstream generated by the encoder can be stored in a memory. The above-mentioned memory may include a volatile memory and a non-volatile memory. In this specification, the memory may be represented as a recording medium storing a bitstream.
[0104] Generally, a video can be composed of a series of images (Picture), and each image can be divided into coding units (coding unit) such as blocks (Block). In addition, a person having general knowledge of the technical field to which the present embodiment belongs should understand that the term image recorded in the following content can also be replaced by other terms with the same meaning such as image (Image), frame (Frame). In addition, a person having general knowledge of the technical field to which the present embodiment belongs should understand that the term coding unit recorded in the following content can also be replaced by other terms with the same meaning such as unit block, block, etc.
[0105] Next, embodiments of the present invention will be described in more detail with reference to the accompanying drawings. In the process of describing the present invention, repeated descriptions of the same components will be omitted.
[0106] Figure 1 This is an example diagram that schematically illustrates the structure of a video encoding device.
[0107] The image encoding device 100 may include an image segmentation unit 101, an intra-frame prediction unit 102, an inter-frame prediction unit 103, a subtraction unit 104, a transformation unit 105, a quantization unit 106, an entropy encoding unit 107, an inverse quantization unit 108, an inverse transformation unit 109, an addition unit 110, a filtering unit 111 and a memory 112.
[0108] In each device, the rate distortion cost (RD-Cost) can be compared to select the most appropriate information. The rate distortion cost (RD-Cost) refers to the cost value calculated using the distortion information between the original block and the reconstructed block and the amount of bits generated when the prediction mode is transmitted. In order to calculate the cost value, the sum of absolute difference (SAD), the sum of absolute transformed difference (SATD), the sum of square for error (SSE), etc. can be used.
[0109] exist Figure 1 The components shown in the figure are shown separately only to show the specific functions that are different from each other, and do not mean that each component is composed of separate hardware or a software component unit. That is, although each component is listed for the convenience of explanation, at least two components of each component can be combined into one component, or one component can be divided into multiple components and make them perform corresponding functions. The combined embodiments and divided embodiments of each component as described above are also included in the scope of the claims of the present invention without departing from the essence of the present invention.
[0110] In addition, some of the components are not necessary components for performing essential functions in the present invention, but are only optional components for improving their performance. The present invention may include only necessary components for realizing the essence of the present invention other than the components only for improving its performance, and the structure including only necessary components other than the optional components only for improving its performance is also included in the scope of the claims of the present invention.
[0111] The image segmentation unit 100 can divide the input image into at least one block. At this time, the input image can have multiple forms and sizes such as images, strips, parallel blocks, fragments, etc. The block can refer to a coding unit (CU), a prediction unit (PU) or a transform unit (TU). The above segmentation can be performed based on at least one of a quad tree, a binary tree and a ternary tree. The quad tree is a method of dividing a superordinate block into four subordinate blocks whose width and height are both half of the superordinate block. The binary tree is a method of dividing a superordinate block into two subordinate blocks whose width or height is half of the superordinate block. The ternary tree is a method of dividing a superordinate block into three subordinate blocks based on either the width or the height. By performing segmentation based on the binary tree and the ternary tree as described above, the block can have not only a square shape but also a non-square shape.
[0112] The prediction units 102 and 103 may include an inter-picture prediction unit 103 for performing inter-picture prediction and an intra-picture prediction unit 102 for performing intra-picture prediction. After deciding whether to use inter-picture prediction or intra-picture prediction for a prediction unit, specific information based on each prediction method (e.g., intra-picture prediction mode, motion vector, reference image, etc.) may be determined. At this time, the processing unit for performing prediction may be different from the processing unit for determining the prediction method and specific content. For example, the prediction method and prediction mode may be determined in the prediction unit, and the prediction may be performed in the transform unit.
[0113] The residual value (residual block) between the generated prediction block and the original block can be input to the transform unit 105. In addition, the prediction mode information and motion vector information used in the prediction process can be encoded together with the residual value in the entropy coding unit 107 before being transmitted to the decoder. In the case of using a specific coding mode, the original block can also be directly encoded and transmitted to the decoding unit without generating the prediction block through the prediction units 102 and 103.
[0114] The intra-picture prediction unit 102 can generate a prediction block based on pixel information in the current image, i.e., reference pixel information around the current block. When the prediction mode of the surrounding blocks of the current block that needs to perform intra-picture prediction is inter-picture prediction, the reference pixels contained in the surrounding blocks applicable to inter-picture prediction can be replaced with reference pixels in other surrounding blocks applicable to intra-picture prediction. That is, when the reference pixels are unavailable, the unavailable reference pixel information can be replaced with at least one reference pixel among the available reference pixels for use.
[0115] In intra-picture prediction, the prediction mode may include a directional prediction mode using reference pixel information according to a prediction direction and a non-directional mode not using directional information. The mode used to predict brightness information and the mode used to predict color difference information may be different from each other. When predicting color difference information, the intra-picture prediction mode information used in the process of predicting brightness information or the predicted brightness signal information may be used.
[0116] The intra prediction unit 102 may include an adaptive intra smoothing (AIS) filter, a reference pixel interpolation unit, and a mean (DC) filter. The adaptive intra smoothing (AIS) filter is a filter for filtering the reference pixels of the current block, and the applicability of the filter may be adaptively determined according to the prediction mode of the current prediction unit. When the prediction mode of the current block is a mode in which the adaptive intra smoothing (AIS) filter is not performed, the adaptive intra smoothing (AIS) filter may not be applied.
[0117] When the intra-frame prediction mode of the prediction unit is a mode for performing intra-frame prediction based on the pixel value interpolated from the reference pixel, the reference pixel interpolation unit of the intra-frame prediction unit 102 can generate the reference pixel at the fractional unit position by interpolating the reference pixel. When the prediction mode of the current prediction unit is a prediction mode for generating a prediction block without interpolating the reference pixel, the reference pixel may not be interpolated. When the prediction mode of the current block is the mean (DC) mode, the mean (DC) filter may generate the prediction block by filtering.
[0118] The inter-picture prediction unit 103 generates a prediction block using the reconstructed reference image and motion information stored in the memory 112. The motion information may include, for example, a motion vector, a reference picture index, a list 1 prediction flag, and a list 0 prediction flag.
[0119] A residual block including residual information, which is a difference value between the prediction unit generated in the prediction units 102 and 103 and the original block of the prediction unit, may be generated. The generated residual block may be input to the transformation unit 105 for transformation.
[0120] The inter-picture prediction unit 103 may derive a prediction block based on information of at least one of a previous picture or a next picture of the current picture. In addition, the prediction block for the current block may be derived based on information of a portion of the area within the current picture that has been encoded. The inter-picture prediction unit 103 to which one embodiment of the present invention is applied may include a reference picture interpolation unit, a motion prediction unit, and a motion compensation unit.
[0121] In the reference image interpolation unit, reference image information can be received from the memory 112 and pixel information below an integer pixel can be generated in the reference image. For luminance pixels, an 8-tap interpolation filter based on discrete cosine transform (DCT-basedInterpolation Filter) can be used in which the filter coefficient is changed in order to generate pixel information below an integer pixel in 1 / 4 pixel units. For chrominance pixels, a 4-tap interpolation filter based on discrete cosine transform (DCT-basedInterpolation Filter) can be used in which the filter coefficient is changed in order to generate pixel information below an integer pixel in 1 / 8 pixel units.
[0122] The motion prediction unit can perform motion prediction based on the reference image interpolated by the reference image interpolation unit. As a method for calculating the motion vector, various methods such as the full search-based block matching algorithm (FBMA), the three-step search algorithm (TSS), the new three-step search algorithm (NTS), etc. can be used. The motion vector can be based on the interpolated pixel and have a motion vector value of 1 / 2 or 1 / 4 pixel unit. In the motion prediction unit, the prediction block of the current prediction unit can be predicted by different motion prediction methods. As a motion prediction method, various methods such as the skip method, the merge method, the advanced motion vector prediction (AMVP) method, etc. can be used.
[0123] The subtraction unit 104 generates a residual block of the current block by performing a subtraction operation on the block currently to be encoded and the prediction block generated by the intra prediction unit 102 or the inter prediction unit 103 .
[0124] The transform unit 105 can transform the residual block containing the residual data using a transform method such as discrete cosine transform (DCT), discrete sine transform (DST), Karhunen Loeve transform (KLT) and the like. At this time, the transform method can be determined based on the intra-frame prediction mode of the prediction unit used to generate the residual block. For example, discrete cosine transform (DCT) can be used in the horizontal direction and discrete sine transform (DST) can be used in the vertical direction according to the intra-frame prediction mode. Alternatively, different transform techniques can be used in the horizontal and vertical directions according to the aspect ratio, size, etc. of the current block.
[0125] The quantization unit 106 can quantize the value transformed into the frequency domain by the transformation unit 105. The quantization coefficient can be changed according to the block or the importance of the image. The value calculated by the quantization unit 106 can be provided to the inverse quantization unit 108 and the entropy coding unit 107.
[0126] The transform unit 105 and / or the quantization unit 106 may be selectively included in the image encoding device 100. That is, the image encoding device 100 may perform at least one of transform or quantization on the residual data of the residual block, or may skip transform and quantization and encode the residual block. Even if one of the transform or quantization is not performed in the image encoding device 100, or both the transform and quantization are not performed, the block input to the entropy encoding unit 107 is generally referred to as a transform block.
[0127] The entropy coding unit 107 performs entropy coding on the input data. When performing entropy coding, various coding methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC) and Context-Adaptive Binary Arithmetic Coding (CABAC) can be used.
[0128] The entropy coding unit 107 may encode various information such as coefficient information of the transform block, block type information, prediction mode information, partition unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, filtering information, etc. The coefficients of the transform block may be encoded in sub-block units within the transform block.
[0129] In order to encode the coefficients of the transform block, various syntax elements may be encoded, such as Last_sig, a syntax element for indicating the position of the first non-zero coefficient in the reverse scan order, Coded_sub_blk_flag, a flag for indicating whether the sub-block contains at least one non-zero coefficient, Sig_Coeff_flag, a flag for indicating whether the coefficient is non-zero, Abs_greater1_flag, a flag for indicating whether the absolute value of the coefficient is greater than 1, Abs_greater2_flag, a flag for indicating whether the absolute value of the coefficient is greater than 2, and Sign_flag, a flag for indicating the sign of the coefficient. The remaining values of the coefficients that are not encoded by the above syntax elements may be encoded by the syntax element remaining_coeff.
[0130] In the inverse quantization unit 108 and the inverse transformation unit 109, the value quantized in the quantization unit 106 is inversely quantized, and the value transformed in the transformation unit 105 is inversely transformed. The residual value (Residual) generated in the inverse quantization unit 108 and the inverse transformation unit 109 can be merged with the prediction unit predicted by the motion estimation unit, the motion compensation unit and the intra-frame prediction unit 102 included in the prediction unit 102 and 103 to generate a reconstructed block (Reconstructed Block). The addition unit 110 generates a reconstructed block by adding the prediction block generated in the prediction unit 102 and 103 and the residual block generated by the inverse transformation unit 109.
[0131] The filter unit 111 may include at least one of a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF, AdaptiveLoop Filter).
[0132] The deblocking filter can remove block distortion caused by the boundaries between blocks from the reconstructed image. In order to determine whether deblocking needs to be performed, it can be determined whether the deblocking filter needs to be applied to the current block based on the pixels contained in several columns or rows contained in the block. When the deblocking filter is applied to the block, a strong filter (Strong Filter) or a weak filter (Weak Filter) can be applied according to the required deblocking filter strength. In addition, when the deblocking filter is applied, the horizontal filtering and the vertical filtering can be processed in parallel when performing vertical filtering and horizontal filtering.
[0133] The offset correction unit can correct the offset between the image after deblocking and the original image in pixel units. In order to correct the offset of a specific image, a method of dividing the pixels contained in the image into a certain number of areas, determining the areas where the offset needs to be performed and applying the offset to the corresponding areas can be used, or a method of applying the offset is used under the premise of considering the edge information of each pixel.
[0134] Adaptive loop filtering (ALF) can be performed based on the value of comparing the filtered reconstructed image and the original image. After dividing the pixels contained in the image into specific groups, it can be determined that a filter in the corresponding group needs to be applied, so that different filtering is performed in each group. For information related to whether adaptive loop filtering (ALF) is applicable, the luminance signal can be transmitted according to each coding unit (CodingUnit, CU), and the shape and filter coefficient of the adaptive loop filter (ALF) applied can be changed according to each block. In addition, regardless of the characteristics of the applicable object block, the same form (fixed form) of adaptive loop filter (ALF) can be applied.
[0135] The memory 112 may store the reconstructed block or image calculated by the filter unit 111 , and the stored reconstructed block or image may be provided to the prediction units 102 and 103 when performing inter-picture prediction.
[0136] Figure 2 This is an exemplary diagram illustrating an embodiment of a prediction unit of a video encoding device.
[0137] When the prediction mode of the current block is the intra-frame prediction mode, the intra-frame prediction unit 201 can generate reference pixels by deriving reference pixels from the periphery of the current block and filtering the reference pixels. The reference pixels are determined using the reconstructed pixels around the current block. When a part of the reconstructed pixels cannot be used or there are no reconstructed pixels around the current block, the available reference pixels can be filled into the unusable area, or filled with the intermediate values in the range of values that the pixels can have. After all the reference pixels are derived, the reference pixels can be filtered using an adaptive intra-frame smoothing (AIS) filter.
[0138] The intra-picture prediction mode search unit 202 may determine one of M intra-picture prediction modes, where M represents the total number of intra-picture prediction modes. The intra-picture prediction modes include directional prediction modes and non-directional prediction modes.
[0139] The prediction block may be generated using the determined prediction mode and the filtered reference pixels. The intra-picture prediction mode with the lowest cost may be selected by comparing the rate-distortion costs (RD-Cost) of different intra-picture prediction modes.
[0140] The inter-picture prediction unit 203 can be divided into a merge candidate exploration unit 204 and an advanced motion vector prediction (AMVP) candidate exploration unit 206 according to the method of deriving motion information. The merge candidate exploration unit 204 sets the reference block using inter-picture prediction in the reconstructed block around the current block as a merge candidate. The merge candidates are derived using the same method in the encoding / decoding device and the same number is used. The number of merge candidates can be transmitted from the encoding device to the decoding device, or a pre-agreed number is used. In the case where the agreed number of merge candidates cannot be derived from the reconstructed reference blocks around the current block, the motion information of the block at the same position as the current block in the image different from the current image can be used as the merge candidate. Alternatively, insufficient merge candidates can be derived by combining the motion information in the historical direction and the motion information in the future direction based on the current image. Alternatively, the block at the same position in other reference images can be set as the merge candidate.
[0141] The advanced motion vector prediction (AMVP) candidate search unit 206 may determine the motion information of the current block through the motion estimation unit 207. The motion estimation unit 207 searches for a prediction block similar to the current block from the reconstructed image.
[0142] When performing inter-picture prediction, the motion information of the current block may be determined by using one of the merge candidate search unit 204 and the advanced motion vector prediction (AMVP) candidate search unit 206 , and the motion compensation unit 208 generates a prediction block based on the determined motion information.
[0143] Figure 3 It is a schematic diagram for explaining an embodiment of encoding coding information in a video encoding device.
[0144] In step S301, the action information of the SKIP mode is encoded. The Merge mode is used when predicting the current block in the SKIP mode, and the prediction block for the current block is used as the reconstructed block in the decoding device. In step S302 of the inter-frame prediction, it is determined whether the SKIP mode is in action. When it is determined in step S302 that the SKIP mode is in action (Yes), in step S307, the Merge candidate index information for the SKIP mode is encoded, and then this flowchart ends. When it is determined in step S302 that the SKIP mode is not in action (No), in step S303, the prediction mode is encoded. In step S304, it is determined whether the prediction mode is an inter-frame prediction mode or an intra-frame prediction mode. When it is determined in step S304 that the prediction mode is an inter-frame prediction mode (Yes), in step S305, the action information of the Merge mode is encoded. In step S306, it is determined whether the MERGE mode is in operation or not. When it is determined in step S306 that the MERGE mode is in operation (Yes), it will jump to step S307 and encode the MERGE candidate index information for the MERGE mode, and then end this flowchart. When it is determined in step S306 that the MERGE mode is not in operation (No), in step S308, the prediction direction will be encoded. The prediction direction can be a historical direction, a future direction, or one of the two directions. In step S309, it is determined whether the prediction direction is a future direction. When it is determined in step S309 that the prediction direction is not a future direction (Yes), in step S310, the reference image index information of the historical direction will be encoded. In step S311, the motion vector difference (MVD, Motion Vector Difference) information of the historical direction will be encoded. In step S312, the motion vector prediction (MVP, Motion Vector Predictor) information of the historical direction will be encoded. When it is determined in step S309 that the predicted direction is the future direction or the bidirectional direction (No), after completing step S312, in step S313, it will be determined whether the predicted direction is the historical direction. When it is determined in step S313 that the predicted direction is not the historical direction (Yes), in step S314, the reference image index information of the future direction will be encoded. In step S315, the motion vector difference (MVD) information of the future direction will be encoded. In step S316, the motion vector prediction (MVP) information of the future direction will be encoded, and then this flowchart ends.The encoding of the information performed in step S305 to step S316 may be referred to as inter-picture prediction mode information encoding.
[0145] When the prediction mode is determined to be an intra-frame prediction mode (No) in S304, the action information of the most probable mode (MPM) is encoded in step S317. The most probable mode (MPM) refers to a method of transmitting the index information of the most probable mode (MPM) candidate intra-frame prediction mode when the most probable mode (MPM) candidate intra-frame prediction mode includes the best intra-frame prediction mode information of the current block determined in the image encoding device after the most probable mode (MPM) candidate intra-frame prediction mode is constructed using the reconstructed intra-frame prediction mode around the current block. In step S318, it is determined whether the most probable mode (MPM) is in action or not. The most probable mode (MPM) is a mode for encoding index information when the prediction mode of the reconstructed block around the current block includes the same mode as the prediction mode of the current block. When it is determined in step S318 that the most likely mode (MPM) is in action (Yes), in step S319, the index information of the most likely mode (MPM) candidate intra-picture prediction mode is encoded. When it is determined in step S318 that the most likely mode (MPM) is not in action (No), in step S320, the best intra-picture prediction mode information of luminance (Luma) among the remaining intra-picture prediction modes except the most likely mode (MPM) candidate intra-picture prediction mode is encoded.
[0146] After step S319 and step S320 are completed, the optimal intra-picture prediction mode information of chroma is encoded, and then this flowchart is terminated. Among them, the module used to perform steps S308 to S316 can be called a motion information encoding unit. In addition, the module used to perform steps S317 to S320 can be called a luminance intra-picture prediction mode encoding unit.
[0147] Figure 4 This is an exemplary diagram illustrating the structure of the video decoding device 400 .
[0148] The image decoding device 400 may include an entropy decoding unit 401 , an inverse quantization unit 402 , an inverse transformation unit 403 , an addition unit 404 , a filtering unit 405 , a memory 406 , and prediction units 407 and 408 .
[0149] When the video bitstream generated by the video encoding device 100 is input to the video decoding device 200 , the input bitstream can be decoded according to a process opposite to the process performed by the video encoding device 100 .
[0150] The entropy decoding unit 401 may perform entropy decoding in the reverse order of the entropy encoding performed in the entropy encoding unit 407 of the image encoding device 100. For example, various methods such as Exponential Golomb, Context-Adaptive Variable Length Coding (CAVLC), and Context-Adaptive Binary Arithmetic Coding (CABAC) may be applied corresponding to the method performed in the image encoder. The entropy decoding unit 401 may decode the syntax elements Last_sig, Coded_sub_blk_flag, Sig_coeff_flag, Abs_greater1_flag, Abs_greater2_flag, Sign_flag, and remaining_coeff as described above. In addition, the entropy decoding unit 401 may decode information related to intra-picture prediction and inter-picture prediction performed in the image encoding device 100.
[0151] The inverse quantization unit 402 generates a transform block by performing inverse quantization on the quantized transform block. Figure 1 The inverse quantization unit 108 in FIG. 1 works in substantially the same manner.
[0152] The inverse transform unit 403 generates a residual block by performing an inverse transform on the transformed block. At this time, the transform method may be determined based on information related to the prediction method (inter-frame or intra-frame prediction), the size and / or shape of the block, and the intra-frame prediction mode. Figure 1 The inverse transformation unit 109 in works in substantially the same manner.
[0153] The adding unit 404 generates a reconstructed block by adding the prediction block generated by the intra-frame prediction unit 407 or the inter-frame prediction unit 408 and the residual block generated by the inverse transform unit 403. Figure 1 The adding unit 110 in FIG. 1 operates in substantially the same manner.
[0154] The filter unit 405 is used to reduce various types of noise generated in the reconstructed block.
[0155] The filter unit 405 may include a deblocking filter, an offset correction unit, and an adaptive loop filter (ALF).
[0156] Information related to whether a deblocking filter is applied to the corresponding block or image, and information related to whether a strong filter or a weak filter is applied when a deblocking filter is applied, may be received from the video encoding device 100. The deblocking filter of the video decoding device 400 may receive information related to the deblocking filter provided from the video encoding device 100, and then perform deblocking filtering on the corresponding block in the video decoding device 400.
[0157] The offset correction unit may perform offset correction on the reconstructed image based on the type of offset correction applied to the image when encoding is performed, offset value information, and the like.
[0158] The adaptive loop filter (ALF) can be applied to the coding unit based on the adaptive loop filter (ALF) application information, adaptive loop filter (ALF) coefficient information, etc. provided from the image encoding device 100. The adaptive loop filter (ALF) information as described above can be provided in a manner included in a specific parameter set. The filter unit 205 performs the following steps according to the Figure 1 The filter section 111 in FIG. 1 works in substantially the same manner.
[0159] The memory 406 stores the reconstructed blocks generated by the adding unit 404. Figure 1 The memory 112 in FIG. 1 works in substantially the same manner.
[0160] Figure 5 This is an exemplary diagram illustrating the configuration of a prediction unit of a video decoding device.
[0161] The intra-picture prediction unit 501 may generate reference pixels, and the intra-picture prediction mode determination unit 502 may determine the intra-picture prediction mode based on the signaled information. A prediction block may be generated based on the generated reference pixels and the intra-picture prediction mode. The image decoding device does not need to perform the prediction mode determination process performed in the image encoding device.
[0162] The inter-picture prediction unit 503 does not perform Figure 2 The process of determining the best prediction mode in the image encoding device is essentially the same as the inter-frame prediction unit of the image encoding device, but the process of decoding the prediction mode based on the information received from the signal and generating a prediction block based on this.
[0163] Figure 6 This is a schematic diagram for explaining an embodiment of decoding coded information in a video decoding device.
[0164] In step S601, the action information of the SKIP mode is decoded. In step S602, it is determined whether the SKIP mode is in action or not. When it is determined in step S602 that the SKIP mode is in action (Yes), in step S607, the MERGE candidate index information for the SKIP mode is decoded, and then this flowchart ends. When it is determined in step S602 that the SKIP mode is not in action (No), in step S603, the prediction mode is decoded. In step S604, it is determined whether the prediction mode is an inter-picture prediction mode or an intra-picture prediction mode. When it is determined in S604 that the prediction mode is an inter-picture prediction mode (Yes), in step S605, the action information of the MERGE mode is decoded. In step S606, it is determined whether the MERGE mode is in action or not. When it is determined in step S606 that the MERGE mode is in action (Yes), the process jumps to step S607 and decodes the MERGE candidate index information for the MERGE mode, and then ends this flowchart. When it is determined in step S606 that the MERGE mode is not in action (No), in step S608, the prediction direction is decoded. The prediction direction may be a historical direction, a future direction, or one of the two directions. In step S609, it is determined whether the prediction direction is a future direction. When it is determined in step S609 that the prediction direction is not a future direction (Yes), in step S610, the reference image index information of the historical direction is decoded. In step S611, the motion vector difference (MVD) information of the historical direction is decoded. In step S612, the motion vector prediction (MVP) information of the historical direction is decoded. When it is determined in step S609 that the prediction direction is the future direction or the bidirectional direction (No), after completing step S612, in step S613, it is determined whether the prediction direction is the historical direction. When it is determined in step S613 that the prediction direction is not the historical direction (Yes), in step S614, the reference image index information of the future direction is decoded. In step S615, the motion vector difference (MVD) information of the future direction is decoded. In step S616, the motion vector prediction (MVP) information of the future direction is decoded, and then this flowchart ends. When it is determined in S604 that the prediction mode is the intra-picture prediction mode (No), in step S617, the action information of the most likely mode (MPM) is decoded.In step S618, it is determined whether the most likely mode (MPM) is in action or not. When it is determined in step S618 that the most likely mode (MPM) is in action (Yes), in step S619, the index information of the most likely mode (MPM) candidate intra-picture prediction mode is decoded. When it is determined in step S618 that the most likely mode (MPM) is not in action (No), in step S620, the best intra-picture prediction mode information of luminance (Luma) in the remaining intra-picture prediction modes except the most likely mode (MPM) candidate intra-picture prediction mode is decoded. After step S619 and step S620 are completed, the best intra-picture prediction mode information of chrominance (Chroma) is decoded, and then this flowchart is terminated.
[0165] (Example 1) Figure 7 This is a schematic diagram for explaining an embodiment of intra-frame prediction using multiple reference pixel rows.
[0166] exist Figure 7 In the example shown, the size of the current encoding target block is 4×4, and the intra-picture prediction mode is the upper right diagonal direction mode.
[0167] Figure 8 This is a schematic diagram for explaining another embodiment of intra-picture prediction using multiple reference pixel rows.
[0168] Fig. 9 This is an exemplary diagram illustrating an intra-frame prediction unit of a video encoding device that uses one or more reference pixel rows.
[0169] Next, we will refer to Figure 7 as well as Figure 8 right Fig. 9 In the case where intra-picture prediction is selected as the prediction mode for the current block, reference pixel generation unit 901 performs reference pixel generation and filtering on each reference pixel row. The reference pixel generation unit 901 can perform the same Figure 2 The same process as the intra-frame prediction unit 201 in.
[0170] Next, the use of the imaginary reference pixel row and the generation position of the imaginary reference pixel row will be determined in the imaginary reference pixel generation determination unit 902. As a imaginary reference pixel row, an imaginary reference pixel row can be generated between integer reference pixel rows along the prediction direction and used as a reference pixel. More than one imaginary reference pixel row can be generated between reference pixel rows at integer positions. At this time, the real number position can be a position that divides the distance between two integer position reference pixel rows equally, or it can be a position close to the reference pixel row determined to be the best integer position. The imaginary reference pixel row information can use the same preset value in the encoding / decoding device, or it can be transmitted in the upper header. The upper header refers to the upper header information that contains block information, such as the video parameter level, sequence parameter level, image parameter level, and slice level. Alternatively, the imaginary reference pixel row information that can be generated can be transmitted to each block separately.
[0171] exist Figure 8 In the example, reference pixel row information 0 may represent row 1, reference pixel row information 1 may represent row 2, reference pixel row information 2 may represent row 3, and reference pixel row information 3 may represent row 4. As a method for generating a virtual reference pixel row, a method for generating a real reference pixel row, i.e., row 3.5, between rows 3 and 4 will be described in detail. Figure 8 As shown, when the prediction direction passes through reference pixels E and F, the average value of the E and F pixel values is set to the G pixel value of the 3.5th row.
[0172] The reference pixel row combination determining unit 903 selects a reference pixel row combination K. A reference pixel row combination is a combination in which one or more reference pixel row information is grouped together. Figure 7 In the example, reference pixel row information 0 represents row 1, reference pixel row information 1 represents row 2, reference pixel row information 2 represents row 3, and reference pixel row information 3 represents row 4. K may be an index of a reference pixel row combination, and each index may represent a combination of more than one reference pixel row. Information related to the K reference pixel row combinations may be set to the same value in the encoding / decoding device, or may be transmitted in an upper-level header. Alternatively, the reference pixel row information corresponding to index K may be directly transmitted to each block. For example, it may be set that when K is 0, only row 1 is used as a reference pixel row, when K is 1, row 1 and row 2 are used as reference pixel rows, and when K is 2, row 1 and row 3 are used as reference pixel rows. The combination represented by index K may include not only reference pixel rows, but also imaginary reference pixel rows.
[0173] Next, we will refer to Figure 7The method for generating a prediction block is described in detail. In this example, four reference pixel rows are used through K. In order to calculate the pixel values of A pixels, B pixels, C pixels and D pixels in the prediction block, four reference pixel rows can be used. Row A, row B, row C and row D respectively represent the prediction directions of pixel A, pixel B, pixel C and pixel D. For example, the average value of the reference pixel values passed by row A, row B, row C and row D can be used as the prediction value of each pixel. Alternatively, weights can be applied to each reference pixel row and used as the prediction value of the pixel. The method of applying weights can be shown in Mathematical Formula 1, for example.
[0174]
Mathematical formula 1
[0175] The intra-picture prediction mode determination unit 904 may perform the same Figure 2 All processes in the intra prediction unit 900 of the video encoding device compare costs using rate-distortion cost (RD-Cost) and select a certain intra prediction mode, for example, select prediction information of the best intra prediction mode.
[0176] Fig.10 This is an exemplary diagram illustrating an intra-frame prediction unit of a video decoding device that uses one or more reference pixel rows.
[0177] When intra-picture prediction is selected as the current prediction mode, the reference pixel generation unit 1001 may perform reference pixel generation and filtering. The virtual reference pixel generation determination unit 1002 may reconstruct the virtual reference pixel row transmitted from the encoding device, and the reference pixel row combination determination unit 1003 may reconstruct the combination index K. The intra-picture prediction mode determination unit 1004 may reconstruct the intra-picture prediction mode and generate a prediction block using one or more reconstructed reference pixel rows.
[0178] Fig.11 This is a schematic diagram for explaining a method for encoding prediction mode information according to an embodiment of the present invention.
[0179] Fig.11 is combining Figure 3Based on the embodiment described above, a virtual reference pixel row information encoding step, i.e., step S1105, and a reference pixel row combination encoding step, i.e., step S1106, are added. The process other than step S1105 and step S1106 is the same as Figure 3 The embodiments in are exactly the same.
[0180] Fig.12 This is a schematic diagram for explaining a method of decoding prediction mode information according to an embodiment of the present invention.
[0181] Fig.12 is combining Figure 6 Based on the embodiment described above, a hypothetical reference pixel row information decoding step, i.e., step S1205, and a reference pixel row combination decoding step, i.e., step S1206, are added. The processes other than step S1205 and step S1206 are the same as Figure 6 The embodiments in are exactly the same.
[0182] (Example 2) Fig.13 This is a schematic diagram for explaining an intra-frame prediction unit of a video encoding device according to another embodiment of the present invention.
[0183] When intra prediction is selected as the prediction mode of the current block, the method of generating the prediction block will also change depending on whether the intra prediction mode is transmitted or not. The intra prediction information may be information indicating whether the intra prediction mode is transmitted from the encoding device to the decoding device.
[0184] In the case of transmitting the intra-picture prediction mode, a prediction block may be generated by a reference pixel generation unit 1303, a virtual reference pixel generation determination unit 1304, a reference pixel row combination determination unit 1305, and an intra-picture prediction mode determination unit 1306 after the selection mode coding unit 1301. The reference pixel generation unit 1303, the virtual reference pixel generation determination unit 1304, the reference pixel row combination determination unit 1305, and the intra-picture prediction mode determination unit 1306 may be respectively Fig. 9 The reference pixel generation unit 901, the virtual reference pixel generation determination unit 902, the reference pixel row combination determination unit 903 and the intra-screen prediction mode determination unit 904 correspond to each other.
[0185] When the intra prediction mode is not transmitted, the prediction block may be generated by performing the same process in the encoding device and the decoding device after the decoder-side intra mode derivation (DIMD) encoder 1302 is selected.
[0186] Next, we will use Figure 7 The example content in details describes the method of determining the best prediction mode when the decoder-side intra mode derivation (DIMD) encoding unit is selected. Figure 7 , reference pixel row information 0 represents row 1, reference pixel row information 1 represents row 2, reference pixel row information 2 represents row 3, and reference pixel row information 3 represents row 4. The process of searching for the best intra-picture prediction mode using the best reference pixel row combination can be performed by comparing the distortion information between the prediction blocks generated according to each intra-picture prediction mode using the currently selected reference pixel row combination and the prediction blocks generated according to each intra-picture prediction mode using the previous reference pixel row combination, thereby selecting the intra-picture prediction mode that is most similar to the two prediction blocks. The selection of the best reference pixel row combination can be selected from K and K-1 in the encoding / decoding device by the same method, or it can be transmitted in the upper header. Alternatively, it can also be transmitted to each block separately as to which of the current reference pixel row combination and the previous reference pixel row combination is selected. For example, in Figure 7 In the case where the current K represents the 4th reference pixel row and K-1 represents the 3rd reference pixel row, by comparing the distortion between the prediction blocks generated by using K according to each intra-picture prediction mode and the prediction blocks generated by using K-1 according to each intra-picture prediction mode, the intra-picture prediction mode with the least distortion can be determined as the best intra-picture prediction mode. At this time, in order to compare the distortion, the absolute difference (SAD), the squared error (SSE), the absolute change error (SATD), etc. can be used.
[0187] Fig.14 This is a schematic diagram for explaining an intra-frame prediction unit of a video decoding device according to another embodiment of the present invention.
[0188] When intra prediction is selected as the current prediction mode, the method of generating the prediction block is also changed according to the intra prediction information.
[0189] When the intra-picture prediction mode is transmitted from the encoding device to the decoding device, the prediction block may be generated by the reference pixel generation unit 1403, the virtual reference pixel generation determination unit 1404, the reference pixel row combination determination unit 1405, and the intra-picture prediction mode determination unit 1406 after the selection mode decoding unit 1401. The reference pixel generation unit 1403, the virtual reference pixel generation determination unit 1404, the reference pixel row combination determination unit 1405, and the intra-picture prediction mode determination unit 1406 may be respectively Fig.10 The reference pixel generation unit 1001, the virtual reference pixel generation determination unit 1002, the reference pixel row combination determination unit 1003 and the intra-picture prediction mode determination unit 1004 correspond to each other.
[0190] In the case where the intra prediction mode is not transmitted from the encoding device to the decoding device, the decoder-side intra mode derivation (DIMD) decoding unit 1402 may be selected, and the following process may be similar to that described in detail in the previous section. Fig.13 The process in the encoding device described is the same.
[0191] Fig.15 This is a schematic diagram for explaining a method for encoding prediction mode information according to an embodiment of the present invention.
[0192] Fig.15 is combining Figure 3 Based on the embodiment described above, a decoder-side intra-frame mode derivation (DIMD) information encoding step S1505, an imaginary reference pixel row encoding step S1506, and a reference pixel row combination encoding step S1507 are added. The process other than the above-mentioned added steps is the same as Figure 3 The embodiments in are exactly the same.
[0193] Fig.16 This is a schematic diagram for explaining a method of decoding prediction mode information according to an embodiment of the present invention.
[0194] Fig.16 is combining Figure 4 Based on the embodiment described above, a decoder-side intra mode derivation (DIMD) information decoding step S1605, a hypothetical reference pixel row decoding step, i.e., step S1606, and a reference pixel row combination decoding step, i.e., step S1607, are added. The process other than the above-mentioned added steps is the same as Figure 6 The embodiments in are exactly the same.
[0195] The decoder-side intra mode derivation (DIMD) information may be information for notifying whether to transmit the intra-picture prediction mode to the decoding device or to determine the optimal prediction mode by performing the same process in the encoding / decoding device.
[0196] (Example 3) Fig.17 This is a schematic diagram for explaining a method of performing intra-frame prediction according to another embodiment to which the present invention is applied.
[0197] exist Fig.17 In the example shown, the size of the encoding target block is 4×4, and the intra-frame prediction mode is the upper right direction mode.
[0198] Fig.18 This is a schematic diagram for explaining an intra-frame prediction unit of a video encoding device according to another embodiment of the present invention.
[0199] Fig.18 The intra-frame prediction unit in can generate prediction blocks using unidirectional or bidirectional prediction modes.
[0200] Fig.18 The bidirectional prediction and intra-frame prediction mode determination unit 1804 of the embodiment is Fig. 9 Based on the intra-picture prediction mode determination unit 904 of the embodiment in FIG. 1 , bidirectional prediction is added, and Fig.18 Other configurations of the embodiments and Fig. 9 The same as in the embodiment.
[0201] Next, we will refer to Fig.17 The generation method of the prediction block applicable to the present embodiment is described in detail. According to the intra-picture prediction mode, unidirectional or bidirectional prediction can be performed. In the case of unidirectional prediction, the prediction block can be generated by using the reference pixel rows in one direction according to the intra-picture prediction mode. In the case of bidirectional prediction, Fig.17 As shown, the prediction block can be generated by using the weight sum between the reference pixels selected by selecting the reference pixels for unidirectional prediction and the reference pixel rows in the opposite direction of the above-mentioned unidirectional prediction direction. For example, when the unidirectional direction is the upper right direction and the first reference pixel row is available, the reference pixels on the first reference pixel row in the upper right direction of the pixels in the current block can be selected. In addition, the reference pixels on the first reference pixel row in the opposite direction of the upper right direction, that is, the lower left direction, can be selected. By taking the weighted sum of the selected reference pixels, the predicted value of the pixel can be derived.
[0202] The weights applied to each selected reference pixel may be the same or different. For example, based on the distance between the predicted pixels and the reference pixels that need to be encoded and decoded in the current block, a higher weight may be applied to the reference pixels that are relatively close than to the reference pixels that are relatively far away. Alternatively, in the case of bidirectional prediction, a higher weight may be applied to the reference pixels predicted in a single direction than to the reference pixels in the opposite direction. The weights applied to different reference pixel rows may be pre-set to the same value in the encoding / decoding device or may be transmitted in the upper-level header. Alternatively, the applicable weights may be transmitted separately for each block and the same value may be used in the encoding / decoding device.
[0203] When performing bidirectional prediction, for areas without reconstructed reference pixels, they can be used as reference pixels by filling or interpolating with surrounding reference pixel values. For example, H pixel and I pixel values can be filled as reference pixels for areas without reference pixels, such as the right area and the lower area of the current block. At this time, the overlapping part of the right area and the lower end area can be filled with, for example, the average value of H pixels and I pixels.
[0204] Alternatively, the average value or weighted average value of the H group and the average value or weighted average value of the I group may be used for filling. For example, the weight applied to the weighted average value may be 1:2:1. Alternatively, after first performing filling using the weighted average value of the H group and the weighted average value of the I group, the value filled using the brightness change of the reference pixel predicted in a single direction may be filtered according to the intra-picture prediction mode.
[0205] The above-mentioned H group may include an H pixel and its adjacent pixels. For example, the H group may include an H pixel and its adjacent pixels on the left and right sides. Similarly, the I group may include an I pixel and its adjacent pixels. For example, the I group may include an I pixel and its adjacent pixels on the upper side and the adjacent pixels on the lower side.
[0206] exist Fig.17 In the example of FIG. 1 , for the convenience of explanation, only one reference pixel row is described as filling the area without reconstructed pixels in bidirectional prediction. However, the present invention is not limited to this, and the filling of the area without reconstructed pixels can also be performed on part or all of multiple reference pixel rows.
[0207] Fig.18 The intra-frame prediction unit of the video encoding device can compare the rate-distortion cost (RD-Cost) in each process in order to determine the optimal prediction information.
[0208] Fig.19 This is a schematic diagram for explaining an intra-frame prediction unit of a video decoding device according to another embodiment of the present invention.
[0209] In the case where intra prediction is selected as the current prediction mode, the reference pixel generation unit 1901 may derive reference pixels and perform filtering. The virtual reference pixel generation determination unit 1902 may determine a virtual reference pixel row based on information transmitted from the encoding device, and the reference pixel row combination determination unit 1903 may determine an optimal reference pixel row combination. The bidirectional prediction and intra prediction mode determination unit 1904 may determine an intra prediction mode and generate a prediction block based on it.
[0210] Fig. 20This is a schematic diagram for explaining a method for encoding prediction mode information according to an embodiment of the present invention.
[0211] Fig. 20 is combining Figure 3 Based on the embodiment described above, a virtual reference pixel row information encoding step, i.e., step S2005, a reference pixel row combination encoding step, i.e., step S2006, and a bidirectional prediction information encoding step, i.e., step S2007, are added. Figure 3 The embodiments in are exactly the same.
[0212] Fig.21 This is a schematic diagram for explaining a method of decoding prediction mode information according to an embodiment of the present invention.
[0213] Fig.21 is combining Figure 6 Based on the embodiment described above, a hypothetical reference pixel row information decoding step, i.e., step S2105, a reference pixel row combination decoding step, i.e., step S2106, and a bidirectional prediction information decoding step, i.e., step S2107, are added. Figure 6 The embodiments in are exactly the same.
[0214] Fig. 22 This is a schematic diagram used to explain the operation of the transformation unit of the image encoding device.
[0215] The residual block (difference block) can generate a transformation block by transforming in the first transformation part. At this time, as a transformation technology, discrete cosine transform (DCT), discrete sine transform (DST), etc. can be used. In the encoding / decoding device, the same transformation technology can be used by a pre-set method, and the transformation technology information related to the transformation technology used can also be transmitted in the upper header. Alternatively, the transformation technology information can be transmitted separately for each block. The upper header refers to the upper header information containing block information such as video parameter level, sequence parameter level, image parameter level and slice level.
[0216] The transformation technology information may include information for indicating which transformation technology is applied to the horizontal direction and the horizontal direction of the block. In addition, the transformation technology information may include information for indicating whether different transformation technologies can be applied to the horizontal direction and the horizontal direction of the block. The transformation technology information may be transmitted separately for the inter-frame mode and the intra-frame mode.
[0217] The transformation technology can be determined based on the size (horizontal or vertical length of one side or both sides), shape, aspect ratio, prediction mode (inter-frame prediction or intra-frame prediction), and at least one of the prediction modes of inter-frame prediction of the current block.
[0218] Fig.23 This is a schematic diagram for explaining the operation of the inverse transform unit of the video encoding / decoding device.
[0219] The inverse quantized block can be inversely transformed in the first inverse transform unit to generate a reconstructed difference block.
[0220] Fig.24 is a schematic diagram for describing an embodiment of a method for encoding a transform block.
[0221] Fig.24 The encoding method of the transform block in can be executed by the entropy coding unit 107 of the image encoding device 100.
[0222] First, in step S2201, the first non-zero coefficient when the transform coefficients are scanned in the reverse scanning order is set as a reference coefficient, and its position information, namely Last_sig, is encoded.
[0223] In step S2202, a sub-block containing a reference coefficient is selected, and the transform coefficient information in the corresponding sub-block is encoded. In step S2203, in the case of a sub-block that does not contain a reference coefficient, the sub-block information is encoded before the coefficients in the transform block are encoded. The sub-block information, i.e., Coded_sub_blk_flag, is a flag used to indicate whether the current sub-block contains at least one non-zero coefficient. Next, in step S2204, the non-zero coefficient information is encoded. Among them, the non-zero coefficient information, i.e., Sig_coeff_flag, is used to indicate whether the value of each coefficient in the sub-block is 0.
[0224] Next, in step S2205, the coefficient information exceeding N is encoded. The coefficient information exceeding N is used to indicate whether the absolute value of each coefficient of all coefficients existing in the sub-block exceeds the value of 1 to N respectively. As N, any pre-set value can be used in encoding and decoding, but the value of N can also be encoded and the same value can be used in encoding and decoding. As the number of coefficient information exceeding N, any pre-set value can be used, but different values can also be used according to the reference coefficient position. For example, when N is set to 3, for all coefficients in the sub-block that are judged to be not 0, whether the absolute value of each coefficient is a value greater than 1 is encoded. For this purpose, the flag Abs_greater1_flag used to indicate whether the absolute value of the coefficient is greater than 1 is used. Next, only for the coefficients judged to be greater than 1, whether the value is greater than 2 is encoded. For this purpose, the flag Abs_greater2_flag used to indicate whether the absolute value of the coefficient is greater than 2 is used. Finally, only for the coefficients judged to be greater than 2, whether the value is greater than 3 is encoded. For this purpose, a flag indicating whether the absolute value of the coefficient is greater than 3, ie, Abs_greater3_flag, is used.
[0225] Next, in step S2206, the sign information indicating whether each coefficient determined to be not 0 is a negative number or a positive number is encoded. The sign information may use Sign_flag. Next, in step S2207, only for the coefficients determined to be greater than N, the remaining value after subtracting N is defined as residual coefficient information and the remaining value information of the above coefficient, i.e., remaining_coeff, is encoded.
[0226] Next, in step S2209, after confirming whether the next sub-block exists, if it exists, in step S2210, it will move to the next sub-block, and then in step S2203, the sub-block information will be encoded. In step S2208, the corresponding sub-block information, i.e., Coded_sub_blk_flag, will be confirmed, and when the value of Coded_sub_blk_flag is confirmed to be true, the coefficient information, i.e., Sig_coeff_flag, which is not 0, will be encoded. If the value of the corresponding sub-block information, i.e., Coded_sub_blk_flag, is false, it means that there is no coefficient to be encoded in the corresponding sub-block, so it is confirmed whether the next sub-block exists. Alternatively, after moving to the next sub-block, when the corresponding sub-block is a sub-block located on the lowest frequency side, the sub-block information may not be encoded and decoded on the premise that a non-zero coefficient exists, but directly set to the same value during encoding and decoding.
[0227] Fig.25 is a schematic diagram for describing an embodiment of a method for decoding a transform block.
[0228] Fig.25 The decoding method of the transform block in Fig.24 Corresponding to the encoding method of the transform block in. Fig.25 The decoding method of the transform block in can be obtained by Figure 4 The entropy decoding unit 401 of the image decoding device 400 is executed.
[0229] In step S2301, the position information of the first non-zero transform coefficient appearing in the reverse scanning order, ie, Last_sig, is decoded.
[0230] In step S2302, a sub-block including a reference coefficient is selected, and then in step S2303, sub-block information, i.e., Coded_sub_blk_flag, is decoded. Next, in step S2304, coefficient information that is not 0, i.e., Sig_coeff_flag, is decoded. Next, in step S2305, coefficient information exceeding N is decoded. The coefficient information exceeding N may include Abs_greater1_flag, Abs_greater2_flag, and Abs_greater3_flag as described above.
[0231] Next, in step S2306, the coefficient sign information, i.e., Sign_flag, of each coefficient determined to be not 0 is decoded. In step S2307, the residual coefficient information, i.e., remaining_coeff, which is equivalent to the residual value after subtracting N, of only the coefficients determined to be greater than N is decoded. Next, in step S2309, after confirming whether the next sub-block exists, if it exists, in step S2310, it will move to the next sub-block, and then in step S2303, the sub-block information, i.e., Coded_sub_blk_flag, will be decoded. In step S2308, the corresponding sub-block information, i.e., Coded_sub_blk_flag, will be confirmed. When it is confirmed to be true, the coefficient information, i.e., Sig_coeff_flag, which is not 0, will be decoded. However, if it is false, it means that there is no coefficient that needs to be decoded in the corresponding sub-block, so it is confirmed whether the next sub-block exists.
[0232] The context-adaptive binarization arithmetic process is performed by binarizing the information to be encoded. The context-adaptive binarization arithmetic process is a process of symbolizing the coded information in the block and applying different symbol occurrence probabilities according to the situation using probability information. In this example, for the convenience of explanation, only 0 and 1 are used as symbols, but the number of symbols can also be N (N is a natural number greater than 2).
[0233] The probability information refers to the occurrence probability of 0 and 1 in the binarized information. The occurrence probability of the two types of information may be the same as or different from the previous reconstruction information. Alternatively, M probability information may be used based on the previous reconstruction information. In this case, the M probability information may be represented in the form of a probability table.
[0234] Fig.26 It is a schematic diagram for illustrating an embodiment of a context-adaptive binarization arithmetic coding method.
[0235] First, in step S2401, the probability is initialized. Initializing the probability refers to the process of dividing the binarized information into probability intervals according to the probability set in the probability information. Among them, as to which probability information to use, the same conditions can be used in the encoding device or decoding device according to any pre-set rules, or the probability information can be encoded separately. The initial probability interval can be determined to be the same value in the encoding / decoding process according to pre-set rules. Alternatively, it can also be used after the initial probability interval is re-encoded. Alternatively, it is also possible to directly call the probability interval and probability information of the previously used encoding and decoding parameters without initializing the probability.
[0236] In step S2402, after determining the binary information of the current codec parameter to be encoded, in step S2403, the binary information of the current codec parameter is used to Fig.26 The probability interval state up to the step before step S2402 in the above and the previous probability information of the same codec parameter are encoded. Next, in step S2404, the probability information and the probability interval can be updated for the next binary information to be encoded. Next, in step S2405, if there is the next codec parameter information to be encoded, in step S2406, it will move to the next codec parameter information and repeat the above process. If there is no next codec parameter information to be encoded, this flowchart ends.
[0237] Fig. 27 is a schematic diagram for illustrating an embodiment of a context-adaptive binarization arithmetic decoding method.
[0238] Next, in step S2502, the decoding device decodes the binary information of the codec parameter using the probability information and the interval, and then in step S2503, determines the information of the current codec parameter. Fig. 27 The decoding method in Fig.26 The decoding method corresponds to that in , so the detailed description will be omitted here.
[0239] In the above description Fig.26 as well as Fig.12 In step S2403 and step S2502, for each coding or decoding parameter, the surrounding reconstructed information (or coding or decoding parameter) can be used to select the best probability information from the pre-set M probability information for encoding or decoding.
[0240] For example, as the probability information of the coding and decoding parameters, probability information with a higher probability of occurrence may be used according to the size of the transform block.
[0241] Alternatively, different probability information may be applied according to information about surrounding coefficients of the coefficient currently to be encoded or decoded, or probability information of previously encoded or decoded information may be used to select probability information of information currently to be encoded or decoded.
[0242] Fig.28 This is a schematic diagram illustrating an example of applying different probability information according to surrounding coefficient information.
[0243] Fig.29 It is a schematic diagram illustrating an example of updated probability information.
[0244] Fig.28This is an illustration of a probability information table used in encoding and decoding of the Sig_coeff_flag information value of the current coefficient. Among the coefficients currently to be encoded or decoded and the adjacent coefficients, when the number of coefficients having the same information value as the Sig_coeff_flag information value of the current coefficient is 1, the current coefficient will be assigned index 8. At this time, the probability of the binary information of the Sig_coeff_flag of the current coefficient, i.e., the symbol 1, will be 61% and the probability of the symbol 0 will be 39%. When the number of surrounding coefficients having the same information value as the Sig_coeff_flag information value of the current coefficient is 2, the current coefficient will be assigned index 5, at this time, the probability of the binary information of the Sig_coeff_flag of the current coefficient, i.e., the symbol 1, will be 71% and the probability of the symbol 0 will be 29%. When the number of surrounding coefficients having the same information value as the Sig_coeff_flag information value of the current coefficient is 3, the current coefficient will be assigned index 2, and the probability of the binary information of the Sig_coeff_flag of the current coefficient, i.e., the symbol 1, will be 87% and the probability of the symbol 0 will be 13%.
[0245] In using Fig.28 After encoding or decoding the current coefficient using the probability information table shown in Fig.29 The probability information is updated in the manner shown.
[0246] Furthermore, for non-zero coefficient information Sig_coeff_flag, the closer to the low-frequency region, probability information showing a higher probability of occurrence of non-zero coefficient information Sig_coeff_flag can be used.
[0247] In addition, regarding the probability information of the coefficient information exceeding N, the probability information of the current coefficient information exceeding N can be set by using the probability information of the coefficient information exceeding N of the previous encoding / decoding, or the probability information of the coefficient information exceeding N of the first encoding / decoding in sub-block units can be directly used. As described above, the coefficient information exceeding N can include Abs_greater1_flag, Abs_greater2_flag, and Abs_greater3_flag.
[0248] In addition, the sub-block information, ie, Coded_sub_blk_flag, may utilize the probability information of the surrounding M sub-blocks that are encoded / decoded, or the probability information of the previous sub-block that is encoded / decoded.
[0249] (Example 1) Fig.30It is a schematic diagram for illustrating a context-adaptive binarization arithmetic coding method that is adaptive to specific conditions according to an embodiment of the present invention.
[0250] Fig.30 is Fig.26 On the basis of the process shown, the processes of step S2804, step S2805 and step S2806 are added. The process from step S2804 to step S2806 is a process of using the probability tables of K codec parameter information to independently update the probabilities according to the characteristics of the previously encoded codec parameters. A and B respectively represent the characteristics of the codec parameters, and the A and B characteristics can be changed according to the information that needs to be encoded. In this embodiment, only two codec parameter characteristics are illustrated for the convenience of explanation, but there may also be K characteristics. At this time, the K probability tables may have the same initial probability information or different initial probability information. Whether to use the same probability information table independently as the K initial probability tables or to use different probability information tables independently can be determined in the encoding / decoding device according to a pre-set method, or it can be transmitted in the upper header. Alternatively, it can also be transmitted separately for each block. Fig.30 Except for the remaining process from step S2804 to step S2806, Fig.26 same.
[0251] Fig.31 It is a schematic diagram for explaining a context-adaptive binarization arithmetic decoding method that is adaptive to specific conditions according to an embodiment of the present invention.
[0252] Fig.31 is Fig. 27 Based on the process shown, steps S2904, S2905 and S2906 are added. The process from step S2904 to step S2906 is a process of using the probability table of K codec parameter information to independently update the probabilities according to the characteristics of the previously decoded codec parameters. Fig.31 The remaining process except step S2904 to step S2906 is Fig. 27 same.
[0253] Fig.32 This is a schematic diagram used to illustrate the operation of the transformation unit of the image encoding device applicable to one embodiment of the present invention.
[0254] Fig.34 This is an exemplary diagram illustrating a second transformation area within a transformation block to which one embodiment of the present invention is applied.
[0255] Fig.32 The first transformation in Fig. 22 The second transform unit may perform the second transform on all or part of the transform block generated in the first transform unit. Whether the second transform unit is used or not may be transmitted from the encoding device for each block, or may be set to the same value in the encoding / decoding device according to a preset rule. Alternatively, it may be transmitted in the upper header. At this time, the applicability of the second transform and the transform area information may be determined by comparing the rate-distortion cost (RD-Cost).
[0256] The second transformation area information is as follows Fig.34 As shown, the setting can be performed based on the last non-zero coefficient T 3201 that appears in the scanning order.
[0257] Fig.33 This is a schematic diagram for explaining the operation of the inverse transformation unit of a video encoding / decoding device to which one embodiment of the present invention is applied.
[0258] The second inverse transform unit determines whether to perform the second inverse transform by decoding the second transform information. If the second inverse transform is not performed, the reconstructed difference block can be generated by directly performing the first inverse transform. If the second inverse transform is performed, the inverse transform can be performed only on the second transform area by decoding the second transform area information. Next, the reconstructed difference block is generated by performing the first inverse transform on the entire block.
[0259] Fig.35 It is a schematic diagram for explaining a method for encoding a transform block according to an embodiment of the present invention.
[0260] Fig.35 The encoding method of the transform block in can be executed by the entropy coding unit 107 of the image encoding device 100.
[0261] In step S3301 to step S3310, the Fig.24 The same process as step S2201 to step S2210 in FIG. 2 is performed. If the second transformation is applied after the second transformation information is encoded, the transformation region information is encoded. If the second transformation is not applied, the process ends.
[0262] Fig.36 It is a schematic diagram for explaining a decoding method of a transform block according to an embodiment of the present invention.
[0263] Fig.36 The decoding method of the transformed block in can be executed by the entropy decoding unit 401 of the image decoding device 400.
[0264] In step S3401 to step S3410, the Fig.25 The same process from step S2301 to step S2310 in FIG. 2 is performed. If the second transformation is applied after the second transformation information is decoded, the transformation region information is decoded. If the second transformation is not applied, the process ends.
[0265] Next, we will refer to Fig.28 , Fig.29 , Fig.32 as well as Fig.33 ,right Fig.30 as well as Fig.31 The embodiments are described in detail.
[0266] When the second transform is set as a characteristic of the codec parameter, two probability tables of transform coefficient information can be used respectively according to the position of the current coefficient in the quantized transform block. For example, when deriving the probability information of the Sig_coeff_flag information, if the current coefficient exists in the second transform area, the probability table can be used. Fig.28 In the probability table 2600, when the current coefficient exists in the first transformation area, it can be used Fig.28 The probability table 2601 in the sig_coeff_flag information is updated independently (S2805, S2806, S2905, S2906).
[0267] Fig.29 The probability table 2700 in is Fig.28 The result is that based on the initial probability table 2600 in , the probability table index information is determined to be 5 according to the number of non-zero coefficients around the current coefficient and the probability information is updated.
[0268] Fig.29 The probability table 2701 in is Fig.28 The result of determining the probability table index information to be 8 based on the initial probability table 2601 in accordance with the number of non-zero coefficients around the current coefficient and updating the probability information.
[0269] Using the same principle as the above example, other information related to the quantized transform coefficients, such as Abs_greater1_flag, Abs_greater2_flag, Coded_sub_blk_flag, etc., the probability table can also be used adaptively or independently according to whether the current coefficient is located in the second transform region or the first transform region.
[0270] exist Fig.30 as well as Fig.31 In the process, the coding and decoding parameter characteristics can also be determined as prediction information.
[0271] When the prediction information is set as a characteristic of the coding parameter, two probability tables of transform coefficient information can be used respectively according to the prediction mode of the current block. For example, when the probability information of the Sig_coeff_flag information is derived, when the prediction mode of the current block is intra-picture prediction, Fig.28 In the probability table 2600, when the prediction mode of the current block is inter-picture prediction, the prediction mode of the current block can be used. Fig.28 The probability table 2601 in the sig_coeff_flag information is updated independently (S2805, S2806, S2905, S2906).
[0272] Fig.29 The probability table 2700 in is Fig.28 The result is that based on the initial probability table 2600 in , the probability table index information is determined to be 5 according to the number of non-zero coefficients around the current coefficient and the probability information is updated.
[0273] Fig.29 The probability table 2701 in is Fig.28 The result of determining the probability table index information to be 8 based on the initial probability table 2601 in accordance with the number of non-zero coefficients around the current coefficient and updating the probability information.
[0274] Using the same principle as the above example, other information related to the quantized transform coefficients, such as Abs_greater1_flag, Abs_greater2_flag, Coded_sub_blk_flag, etc., can also be used adaptively or independently according to the prediction mode of the current block.
[0275] Or, in Fig.30 as well as Fig.31In the embodiment, the coding parameter characteristics can also be determined as prediction information and the second transformation. When the prediction information and the second transformation are set as the characteristics of the coding parameter, the probability tables of the four transformation coefficient information can be used respectively according to the prediction mode of the current block and the position of the current coefficient. For example, when the probability information of the Sig_coeff_flag information is deduced, when the prediction mode of the current block is intra-picture prediction and the position of the current coefficient is located in the second area, probability table 1 can be used, and when the prediction mode of the current block is intra-picture prediction and the position of the current coefficient is located in the first area, probability table 2 can be used to perform the derivation and update of the probability information. For example, when the prediction mode of the current block is inter-picture prediction and the position of the current coefficient is located in the second area, probability table 3 can be used, and when the prediction mode of the current block is inter-picture prediction and the position of the current coefficient is located in the first area, probability table 4 can be used to perform the derivation and update of the probability information.
[0276] Using the same principle as the above example, other information related to the quantized transform coefficients, such as Abs_greater1_flag, Abs_greater2_flag, Coded_sub_blk_flag, etc., the probability table can also be used adaptively or independently according to the prediction mode of the current block and whether the current coefficient has undergone the second transform.
[0277] The various embodiments of the present disclosure are not intended to list all possible combinations, but are merely intended to illustrate representative forms of the present disclosure. Matters described in the various embodiments may be applied independently or in combination of two or more.
[0278] In addition, various embodiments of the present disclosure may be implemented by hardware, firmware, software, or a combination thereof. When implemented by hardware, it may be implemented by one or more application specific integrated circuits (ACICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), general processors, controllers, microcontrollers, and microprocessors.
[0279] The scope of the present disclosure includes software or device-executable instructions (such as operating systems, applications, firmware, programs, etc.) that can be used to perform actions in methods applicable to various different embodiments on a device or computer, as well as non-transitory computer-readable media (non-transitory computer-readable medium) that can be executed by a device or computer and stores the above-mentioned software or instructions.
[0280] Industry availability The present invention can be used for encoding / decoding images.
Claims
1. An image decoding method, comprising the following steps: Determine the intra prediction mode of the current block; Determining whether to perform unidirectional prediction or bidirectional prediction based on the intra prediction mode of the current block; and Generate a prediction block of the current block by performing one of the unidirectional prediction and the bidirectional prediction, in, The unidirectional prediction includes: generating the unidirectional prediction value of the current block by using a first reference pixel row according to the prediction direction of the intra prediction mode, The bidirectional prediction includes: generating a bidirectional prediction value of the current block by using a second reference pixel row according to the opposite direction of the prediction direction of the intra prediction mode, The second reference pixel row is adjacent to the current block in a direction opposite to the prediction direction of the intra prediction mode, The bidirectional prediction value of the current block is determined based on a first weight for the unidirectional prediction and a second weight for the bidirectional prediction, Regardless of the size of the current block and the shape of the current block, the first weight for the unidirectional prediction is determined to be greater than the second weight for the bidirectional prediction.
2. A method for image encoding, comprising the following steps: Determine the intra prediction mode of the current block; Determining whether to perform unidirectional prediction or bidirectional prediction based on the intra prediction mode of the current block; and Generate a prediction block of the current block by performing one of the unidirectional prediction and the bidirectional prediction, in, The unidirectional prediction includes: generating the unidirectional prediction value of the current block by using a first reference pixel row according to the prediction direction of the intra prediction mode, The bidirectional prediction includes: generating a bidirectional prediction value of the current block by using a second reference pixel row according to the opposite direction of the prediction direction of the intra prediction mode, The second reference pixel row is adjacent to the current block in a direction opposite to the prediction direction of the intra prediction mode, The bidirectional prediction value of the current block is determined based on a first weight for the unidirectional prediction and a second weight for the bidirectional prediction, Regardless of the size of the current block and the shape of the current block, the first weight for the unidirectional prediction is determined to be greater than the second weight for the bidirectional prediction.
3. A method for transmitting a bit stream, comprising the following steps: Transmits the bit stream generated by the image coding method, in, The image encoding method comprises the following steps: Determine the intra prediction mode of the current block; Determining whether to perform unidirectional prediction or bidirectional prediction based on the intra prediction mode of the current block; as well as Generate a prediction block of the current block by performing one of the unidirectional prediction and the bidirectional prediction, The unidirectional prediction includes: generating the unidirectional prediction value of the current block by using a first reference pixel row according to the prediction direction of the intra prediction mode, The bidirectional prediction includes: generating a bidirectional prediction value of the current block by using a second reference pixel row according to the opposite direction of the prediction direction of the intra prediction mode, The second reference pixel row is adjacent to the current block in a direction opposite to the prediction direction of the intra prediction mode, The bidirectional prediction value of the current block is determined based on a first weight for the unidirectional prediction and a second weight for the bidirectional prediction, Regardless of the size of the current block and the shape of the current block, the first weight for the unidirectional prediction is determined to be greater than the second weight for the bidirectional prediction.