Coding information about the transformation kernel set
By efficiently coding and signaling MTS index information, the method addresses the challenge of high-resolution image/video compression, enhancing efficiency and reducing costs in image/video coding systems.
Patent Information
- Application Number
- JP2024076446
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-06-19
- Filing Date
- 2024-05-09
- Publication Date
- 2025-04-16
- Estimated Expiration
- 2040-06-11
AI Technical Summary
The increasing demand for high-resolution, high-quality images and videos, particularly in UHD and VR/AR applications, poses a challenge for existing image/video compression techniques, leading to higher transmission and storage costs.
A method and apparatus for efficiently coding and signaling MTS index information in image/video coding, which involves contextual or bypass coding for bins related to MTS indexes, and signaling information representing a set of transformation kernels applied to blocks.
This approach improves overall image/video compression efficiency by efficiently signaling and coding MTS index information, reducing the complexity of the coding system and lowering transmission and storage costs.
Smart Images

Figure 0007663743000017 
Figure 0007663743000018 
Figure 0007663743000019
Abstract
Description
[Technical field]
[0001] This document relates to image coding techniques, and more particularly to coding information relating to a set of transformation kernels. [Background technology]
[0002] In recent years, the demand for high-resolution, high-quality images / videos such as 4K or 8K or higher UHD (Ultra High Definition) images / videos is increasing in various fields. As the image / video data has higher resolution and quality, the amount of information or bits to be transmitted increases relatively compared to existing image / video data, so that when image data is transmitted using a medium such as an existing wired or wireless broadband line or image / video data is stored using an existing storage medium, the transmission cost and storage cost increase.
[0003] In addition, in recent years, interest in and demand for immersive media such as virtual reality (VR), artificial reality (AR) content, and holograms has been increasing, and the broadcast of images / videos having different image characteristics from real images, such as game images, has been increasing.
[0004] Therefore, there is a demand for highly efficient image / video compression technology to effectively compress and transmit, store, and play back high-resolution, high-quality image / video information having the various characteristics described above. Summary of the Invention [Means for solving the problem]
[0005] According to one embodiment of the present document, a method and apparatus for increasing image / video coding efficiency is provided.
[0006] According to one embodiment of the present document, a method and apparatus for coding an MTS index in image coding is provided.
[0007] According to one embodiment of the present document, a method and apparatus for signaling MTS index information is provided.
[0008] According to one embodiment of the present document, a method and apparatus are provided for signaling information indicative of a transformation kernel set to be applied to a current block among a plurality of transformation kernel sets.
[0009] According to one embodiment of the present document, a method and apparatus for context coding or bypass coding for bins for an MTS index is provided.
[0010] According to one embodiment of the present document, there is provided a video / image decoding method performed by a decoding device.
[0011] According to an embodiment of the present document, a decoding device for performing video / image decoding is provided.
[0012] According to one embodiment of the present document, there is provided a video / image encoding method performed by an encoding device.
[0013] According to an embodiment of the present document, an encoding device for performing video / image encoding is provided.
[0014] According to one embodiment of the present document, there is provided a computer-readable digital storage medium having encoded video / image information generated by the video / image encoding method disclosed in at least one of the embodiments of the present document.
[0015] According to one embodiment of the present document, there is provided a computer-readable digital storage medium having encoded information or encoded video / image information stored thereon, which enables a decoding device to perform the video / image decoding method disclosed in at least one of the embodiments of the present document. Effect of the Invention
[0016] According to this document, the overall image / video compression efficiency can be improved.
[0017] According to this document, MTS index information can be signaled efficiently.
[0018] According to this document, MTS index information can be coded efficiently to reduce the complexity of the coding system.
[0019] The effects that can be obtained through a specific example of this document are not limited to the effects listed above. For example, there may be various technical effects that a person having ordinary skill in the related art can understand or derive from this document. Thus, the specific effects of this document are not limited to those explicitly described in this document, but may include various effects that can be understood or derived from the technical features of this document. [Brief description of the drawings]
[0020] [Figure 1] 1 illustrates generally an example of a video / image coding system to which this document may be applied; [Diagram 2] FIG. 1 is a diagram illustrating the configuration of a video / image encoding device to which this document can be applied. [Diagram 3] FIG. 1 is a diagram illustrating the configuration of a video / image decoding device to which this document can be applied. [Figure 4] 1 illustrates a schematic of a multiple conversion technique according to an embodiment of the present document; [Diagram 5] An intra-directional mode with 65 prediction directions is shown as an example. [Figure 6] FIG. 1 is a diagram for explaining a RST according to one embodiment of this document. [Figure 7] FIG. 1 is a diagram for explaining a RST according to one embodiment of this document. [Figure 8]Illustrated here is an example of a context-adaptive binary arithmetic coding (CABAC) scheme for encoding syntax elements. [Figure 9] 1 illustrates generally an example of a video / image encoding method and associated components according to an embodiment (or embodiments) of the present document; [Figure 10] 1 illustrates generally an example of a video / image encoding method and associated components according to an embodiment (or embodiments) of the present document; [Figure 11] 1 illustrates generally an example of a video / image decoding method and associated components according to an embodiment (etc.) of the present document; [Figure 12] 1 illustrates generally an example of a video / image decoding method and associated components according to an embodiment (etc.) of the present document; [Figure 13] 1 illustrates an example of a content streaming system in which the embodiments disclosed herein may be applied. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0021] This document may have various modifications and may have various embodiments, and a specific embodiment will be illustrated in the drawings and described in detail. However, this is not intended to limit this document to a specific embodiment. Terms commonly used in this specification are used merely to describe a specific embodiment, and are not intended to limit the technical ideas of this document. A singular expression includes a plural expression unless the context clearly indicates otherwise. In this specification, the terms "include" or "have" are intended to specify the presence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, and should be understood not to preclude the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.
[0022] Meanwhile, each component in the drawings described in this document is illustrated independently for the convenience of explaining the different characteristic functions, and does not mean that each component is realized by separate hardware or software. For example, two or more components among the components may be combined to form one component, or one component may be divided into multiple components. An embodiment in which each component is integrated and / or separated is also included in the scope of the rights of this document as long as it does not deviate from the essence of this document.
[0023] Hereinafter, preferred embodiments of the present invention will be described in more detail with reference to the accompanying drawings. Hereinafter, the same components in the drawings will be designated by the same reference numerals, and duplicated descriptions of the same components will be omitted.
[0024] This document relates to video / image coding. For example, the methods / embodiments disclosed in this document may be related to the Versatile Video Coding (VVC) standard (ITU-T Rec. H.266), the next generation video / image coding standard after VVC, or other video coding related standards (e.g., the High Efficiency Video Coding (HEVC) standard (ITU-T Rec. H.265), the essential video coding (EVC) standard, the AVS2 standard, etc.).
[0025] This document presents various embodiments related to video / image coding, which may be combined with one another unless otherwise stated.
[0026] In this document, video may refer to a collection of a series of images over time. A picture generally refers to a unit that shows one image at a specific time, and a slice / tile is a unit that constitutes a part of a picture in coding. A slice / tile may include one or more coding tree units (CTUs). One picture may be composed of one or more slices / tiles. One picture may be composed of one or more tile groups. One tile group may include one or more tiles.
[0027] A pixel or a pel may refer to the smallest unit constituting one picture (or image). A term corresponding to a pixel may also be used as a "sample." A sample may generally refer to a pixel or a pixel value, may refer to only a pixel / pixel value of a luma component, or may refer to only a pixel / pixel value of a chroma component. Alternatively, a sample may refer to a pixel value in the spatial domain, or may refer to a transform coefficient in the frequency domain when such a pixel value is transformed into the frequency domain.
[0028] A unit may refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information related to the region. A unit may include one luma block and two chroma (e.g., cb, cr) blocks. A unit may be used interchangeably with terms such as block or area, depending on the case. In a general case, an M×N block may include a sample (or sample array) consisting of M columns and N rows, or a set (or array) of transform coefficients.
[0029] In this document, the terms " / " and "," should be interpreted to indicate "and / or." For instance, "A / B" means "A and / or B," and "A, B" means "A and / or B." Additionally, "A / B / C" means "at least one of A, B, and / or C." Also, "A, B, C" means "at least one of A, B, and / or C." (In this document, the term " / " and "," should be interpreted to indicate "and / or." For instance, the expression "A / B" may mean "A and / or B." Further, "A,B" may mean "A and / or B." Further, "A / B / C" may mean "at least one of A,B,and / or C." Also, "A / B / C" may mean "at least one of A,B,and / or C.")
[0030] Additionally, in this document, the term "or" should be interpreted to indicate "and / or." For example, "A or B" may comprise 1) only A, 2) only B, and / or 3) both A and B. In other words, the term "or" in this document should be interpreted to indicate "additionally or alternatively."
[0031] In this specification, "at least one of A and B" can mean "only A", "only B", or "both A and B". In addition, in this specification, the expressions "at least one of A or B" and "at least one of A and / or B" can be interpreted as "at least one of A and B".
[0032] In addition, in this specification, "at least one of A, B and C" can mean "only A," "only B," "only C," or "any combination of A, B and C." In addition, "at least one of A, B or C" or "at least one of A, B and / or C" can mean "at least one of A, B and C."
[0033] Furthermore, parentheses used in this specification may mean "for example." Specifically, when "prediction (intra prediction)" is displayed, "intra prediction" is proposed as an example of "prediction." In other words, "prediction" in this specification is not limited to "intra prediction," and "intra prediction" is proposed as an example of "prediction." Furthermore, when "prediction (i.e., intra prediction)" is displayed, "intra prediction" is proposed as an example of "prediction."
[0034] In this specification, technical features described individually in one drawing may be embodied individually or simultaneously.
[0035] FIG. 1 illustrates diagrammatically an example of a video / image coding system to which this document can be applied.
[0036] Referring to Figure 1, the video / image coding system may include a source device and a receiving device. The source device may transmit encoded video / image information or data to the receiving device in a file or streaming form via a digital storage medium or a network.
[0037] The source device may include a video source, an encoding device, and a sending unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may also include a display unit, which may be a separate device or an external component.
[0038] A video source may acquire video / images through a video / image capture, synthesis, or generation process, etc. A video source may include a video / image capture device and / or a video / image generation device. A video / image capture device may include, for example, one or more cameras, a video / image archive containing previously captured video / images, etc. A video / image generation device may include, for example, a computer, a tablet, a smartphone, etc., and may (electronically) generate video / images. For example, a virtual video / image may be generated through a computer, etc., in which case the video / image capture process may be replaced by a process in which related data is generated.
[0039] An encoding device can encode an input video / image. The encoding device can perform a series of steps such as prediction, transformation, quantization, etc. for compression and coding efficiency. The encoded data (encoded video / image information) can be output in the form of a bitstream.
[0040] The transmitting unit can transmit the encoded video / image information or data output in the form of a bitstream to a receiving unit of a receiving device via a digital storage medium or a network in the form of a file or streaming. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit can include elements for generating a media file through a predetermined file format and can include elements for transmission via a broadcasting / communication network. The receiving unit can receive / extract the bitstream and transmit it to a decoding device.
[0041] The decoding device can decode the video / image by performing a series of steps such as inverse quantization, inverse transformation, prediction, etc., which correspond to the operations of the encoding device.
[0042] The renderer can render the decoded video / images. The rendered video / images can be displayed via a display unit.
[0043] 2 is a diagram for explaining the configuration of a video / image encoding device to which this document can be applied. Hereinafter, the video encoding device may include an image encoding device.
[0044] As shown in FIG. 2, the encoding device 200 may be configured to include an image partitioner 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter prediction unit 221 and an intra prediction unit 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may further include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstructed block generator. The image division unit 210, the prediction unit 220, the residual processing unit 230, the entropy encoding unit 240, the addition unit 250, and the filtering unit 260 may be configured by one or more hardware components (e.g., an encoder chip set or a processor) according to an embodiment. In addition, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware components may further include the memory 270 as an internal / external component.
[0045] The image division unit 210 may divide an input image (or picture, frame) input to the encoding device 200 into one or more processing units. As an example, the processing units may be called coding units (CUs). In this case, the coding units may be recursively divided from a coding tree unit (CTU) or a largest coding unit (LCU) according to a quad-tree binary-tree ternary-tree (QTBTTT) structure. For example, one coding unit may be divided into a plurality of coding units of a deeper depth based on a quad-tree structure, a binary tree structure, and / or a ternary structure. In this case, for example, the quad-tree structure may be applied first, and then the binary tree structure and / or the ternary structure may be applied. Alternatively, the binary tree structure may be applied first. The coding procedure according to the present disclosure may be performed based on a final coding unit that is not further divided. In this case, the maximum coding unit may be used as the final coding unit based on coding efficiency according to image characteristics, or the coding unit may be recursively divided into coding units of lower depths as necessary, and a coding unit of an optimal size may be used as the final coding unit. Here, the coding procedure may include procedures such as prediction, transformation, and restoration, which will be described later. As another example, the processing unit may further include a prediction unit (PU: Prediction Unit) or a transform unit (TU: Transform Unit). In this case, the prediction unit and the transform unit may each be divided or partitioned from the final coding unit described above.The prediction unit may be a unit of sample prediction, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving a residual signal from the transform coefficients.
[0046] The unit may be used interchangeably with terms such as block or area. In general, an M×N block may refer to a collection of samples or transform coefficients consisting of M columns and N rows. A sample may generally refer to a pixel or pixel value, may refer to only a pixel / pixel value of a luma component, or may refer to only a pixel / pixel value of a chroma component. A sample may be used as a term that corresponds to a pixel or pel of one picture (or image).
[0047] The subtraction unit 231 may subtract a prediction signal (predicted block, prediction sample, or prediction sample array) output from the prediction unit 220 from an input image signal (original block, original sample, or original sample array) to generate a residual signal (residual block, residual sample, or residual sample array), and the generated residual signal is transmitted to the conversion unit 232. The prediction unit 220 may perform prediction on a block to be processed (hereinafter, referred to as a current block) and generate a predicted block including a prediction sample for the current block. The prediction unit 220 may determine whether intra prediction or inter prediction is applied in units of the current block or CU. The prediction unit may generate various information related to prediction, such as prediction mode information, and transmit the information to the entropy encoding unit 240, as described later in the description of each prediction mode. The prediction information may be encoded by the entropy encoding unit 240 and output in the form of a bitstream.
[0048] The intra prediction unit 222 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located away from the current block depending on the prediction mode. In the intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes may include, for example, a DC mode and a planar mode. The directional modes may include, for example, 33 directional prediction modes or 65 directional prediction modes depending on the fineness of the prediction direction. However, this is merely an example, and more or less directional prediction modes may be used depending on the setting. The intra prediction unit 222 may also determine the prediction mode to be applied to the current block using the prediction modes applied to the neighboring blocks.
[0049] The inter prediction unit 221 may derive a predicted block for a current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between a neighboring block and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring block may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same or different. The temporal neighboring block may be called a collocated reference block, a collocated CU (col CU), etc., and the reference picture including the temporal neighboring block may be called a collocated picture (colPic). For example, the inter prediction unit 221 may generate information indicating which candidate is used to construct a motion information candidate list based on neighboring blocks and derive a motion vector and / or a reference picture index of the current block. Inter prediction may be performed based on various prediction modes, and for example, in the case of a skip mode and a merge mode, the inter prediction unit 221 may use motion information of a neighboring block as motion information of the current block. In the case of the skip mode, unlike the merge mode, a residual signal may not be transmitted.In the case of motion vector prediction (MVP) mode, the motion vector of the neighboring block can be used as a motion vector predictor, and the motion vector of the current block can be indicated by signaling the motion vector difference.
[0050] The prediction unit 220 may generate a prediction signal based on various prediction methods described below. For example, the prediction unit may apply intra prediction or inter prediction for prediction of one block, as well as intra prediction and inter prediction simultaneously. This may be called combined inter and intra prediction (CIIP). The prediction unit may also perform intra block copy (IBC) for prediction of a block. The intra block copy may be used for content image / video coding such as games, for example, as in screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in that a reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document.
[0051] The prediction signal generated through the inter prediction unit 221 and / or the intra prediction unit 222 may be used to generate a restored signal or may be used to generate a residual signal. The transform unit 232 may generate transform coefficients by applying a transform technique to the residual signal. For example, the transform technique may include a discrete cosine transform (DCT), a discrete sine transform (DST), a graph-based transform (GBT), or a conditionally non-linear transform (CNT). Here, the GBT refers to a transform obtained from a graph when the relationship information between pixels is expressed as a graph. The CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. In addition, the transform process may be applied to pixel blocks having the same square size, or may be applied to non-square blocks of variable size.
[0052] The quantizer 233 quantizes the transform coefficients and transmits the quantized transform coefficients to the entropy encoder 240, which may encode the quantized signal (information on the quantized transform coefficients) and output the quantized signal as a bitstream. The information on the quantized transform coefficients may be referred to as residual information. The quantizer 233 may rearrange the quantized transform coefficients in a block form into a one-dimensional vector form based on a coefficient scan order, and may generate information on the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form. The entropy encoder 240 may perform various encoding methods, such as exponential Golomb, context-adaptive variable length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 240 may also encode information required for video / image restoration (e.g., values of syntax elements, etc.) together with or separately from the quantized transform coefficients. The encoded information (e.g., encoded video / image information) may be transmitted or stored in the form of a bitstream in network abstraction layer (NAL) units. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). The video / image information may further include general constraint information. Signaling / transmitted information and / or syntax elements described later in this document may be encoded through the encoding procedure described above and included in the bitstream. The bitstream may be transmitted via a network or stored in a digital storage medium.Here, the network may include a broadcasting network and / or a communication network, and the digital storage medium may include various storage media such as a USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmitter (not shown) for transmitting the signal output from the entropy encoding unit 240 and / or a storage unit (not shown) for storing the signal may be configured as an internal / external element of the encoding device 200, or the transmitter may be included in the entropy encoding unit 240.
[0053] The quantized transform coefficients output from the quantizer 233 may be used to generate a prediction signal. For example, a residual signal (residual block or residual sample) may be reconstructed by applying inverse quantization and inverse transform to the quantized transform coefficients via the inverse quantizer 234 and the inverse transformer 235. The adder 250 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample, or reconstructed sample array) by adding the reconstructed residual signal to the prediction signal output from the predictor 220. If there is no residual for the current block, such as when a skip mode is applied, the predicted block may be used as the reconstructed block. The generated reconstructed signal may be used for intra prediction of the next current block in the current picture, and may also be used for inter prediction of the next picture after filtering, as described below.
[0054] Meanwhile, luma mapping with chrominance scaling (LMCS) may be applied during picture encoding and / or restoration.
[0055] The filtering unit 260 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 260 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may store the modified reconstructed picture in the memory 270, specifically, in the DPB of the memory 270. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset (SAO), an adaptive loop filter, a bilateral filter, etc. The filtering unit 260 may generate various information related to filtering and transmit it to the entropy encoding unit 290, as will be described later in the description of each filtering method. The filtering information may be encoded by the entropy encoding unit 290 and output in the form of a bitstream.
[0056] The modified reconstructed picture transmitted to the memory 270 may be used as a reference picture in the inter prediction unit 280. When inter prediction is applied through this, the encoding apparatus can avoid prediction mismatch between the encoding apparatus 200 and the decoding apparatus, and can also improve encoding efficiency.
[0057] The DPB of the memory 270 may store a modified reconstructed picture for use as a reference picture in the inter prediction unit 221. The memory 270 may store motion information of a block from which motion information in the current picture is derived (or encoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 221 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 270 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 222.
[0058] FIG. 3 is a diagram illustrating a schematic configuration of a video / image decoding device to which this document can be applied.
[0059] As shown in FIG. 3, the decoding device 300 may be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter predictor 331 and an intra predictor 332. The residual processor 320 may include a dequantizer 321 and an inverse transformer 321. The entropy decoder 310, the residual processor 320, the predictor 330, the adder 340, and the filter 350 may be configured as one hardware component (e.g., a decoder chipset or processor) according to an embodiment. In addition, the memory 360 may include a decoded picture buffer (DPB) and may be configured as a digital storage medium. The hardware components may further include a memory 360 as an internal / external component.
[0060] If a bitstream including video / image information is input, the decoding device 300 can restore an image corresponding to a process in which the video / image information is processed by the encoding device of FIG. 3. For example, the decoding device 300 can derive a unit / block based on block division related information obtained from the bitstream. The decoding device 300 can perform decoding using a processing unit applied in the encoding device. Thus, the processing unit for decoding can be, for example, a coding unit, and the coding unit can be divided from a coding tree unit or a maximum coding unit according to a quad tree structure, a binary tree structure, and / or a ternary tree structure. One or more transform units can be derived from the coding unit. Then, the restored image signal decoded and output by the decoding device 300 can be reproduced by a reproduction device.
[0061] The decoding device 300 may receive a signal output from the encoding device of FIG. 2 in the form of a bitstream, and the received signal may be decoded via the entropy decoding unit 310. For example, the entropy decoding unit 310 may derive information (e.g., video / image information) required for image restoration (or picture restoration) by parsing the bitstream. The video / image information may further include information on various parameter sets, such as an adaptation parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). In addition, the video / image information may further include general constraint information. The decoding device may decode a picture based on information on the parameter set and / or the general constraint information. Signaling / received information and / or syntax elements described later in this document may be decoded via the decoding procedure and obtained from the bitstream. For example, the entropy decoding unit 310 may decode information in a bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the value of a syntax element required for image restoration and the quantized value of a transform coefficient related to the residual. More specifically, the CABAC entropy decoding method may receive a bin corresponding to each syntax element in the bitstream, determine a context model using the syntax element information to be decoded and the decode information of the adjacent and decoded blocks or the symbol / bin information decoded in the previous step, predict the occurrence probability of the bin according to the determined context model, and perform arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method may update the context model using the decoded symbol / bin information for the context model of the next symbol / bin after determining the context model.Among the information decoded by the entropy decoding unit 310, information on prediction is provided to the prediction unit 330, and information on the residual on which entropy decoding is performed by the entropy decoding unit 310, i.e., quantized transform coefficients and related parameter information, may be input to the inverse quantization unit 321. Also, among the information decoded by the entropy decoding unit 310, information on filtering may be provided to the filtering unit 350. Meanwhile, a receiving unit (not shown) for receiving a signal output from the encoding device may be further configured as an internal / external element of the decoding device 300, or the receiving unit may be a component of the entropy decoding unit 310. Meanwhile, the decoding device according to the present document may be called a video / image / picture decoding device, and the decoding device may be divided into an information decoder (video / image / picture information decoder) and a sample decoder (video / image / picture sample decoder). The information decoder may include the entropy decoding unit 310, and the sample decoder may include at least one of the inverse quantization unit 321, the inverse transform unit 322, the prediction unit 330, the addition unit 340, the filtering unit 350, and the memory 360.
[0062] The inverse quantization unit 321 may inverse quantize the quantized transform coefficients to output transform coefficients. The inverse quantization unit 321 may rearrange the quantized transform coefficients in a two-dimensional block form. In this case, the rearrangement may be performed based on a coefficient scan order performed in the encoding device. The inverse quantization unit 321 may perform inverse quantization on the quantized transform coefficients using a quantization parameter (e.g., quantization step size information) to obtain transform coefficients.
[0063] The inverse transform unit 322 inversely transforms the transform coefficients to obtain a residual signal (residual block, residual sample array).
[0064] The prediction unit may perform prediction on a current block and generate a predicted block including prediction samples for the current block. The prediction unit may determine whether intra prediction or inter prediction is applied to the current block based on information on the prediction output from the entropy decoding unit 310, and may determine a specific intra / inter prediction mode.
[0065] The predictor may generate a prediction signal based on various prediction methods described below. For example, the predictor may apply intra prediction or inter prediction for prediction of one block, and may simultaneously apply intra prediction and inter prediction. This may be called combined inter and intra prediction (CIIP). The predictor may also perform intra block copy (IBC) for prediction of a block. The intra block copy may be used for content image / video coding such as games, for example, as in screen content coding (SCC). IBC basically performs prediction within a current picture, but may be performed similarly to inter prediction in that a reference block is derived within the current picture. That is, IBC may use at least one of the inter prediction techniques described in this document.
[0066] The intra prediction unit 332 may predict the current block by referring to samples in the current picture. The referenced samples may be located in the neighborhood of the current block or may be located far away depending on the prediction mode. In intra prediction, the prediction mode may include a plurality of non-directional modes and a plurality of directional modes. The intra prediction unit 332 may also determine the prediction mode to be applied to the current block by using the prediction mode applied to the neighboring block.
[0067] The inter prediction unit 331 may derive a predicted block for the current block based on a reference block (reference sample array) identified by a motion vector on a reference picture. In this case, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information may be predicted in units of blocks, sub-blocks, or samples based on the correlation of motion information between neighboring blocks and the current block. The motion information may include a motion vector and a reference picture index. The motion information may further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks may include a spatial neighboring block present in the current picture and a temporal neighboring block present in the reference picture. For example, the inter prediction unit 331 may configure a motion information candidate list based on the neighboring blocks, and derive a motion vector and / or a reference picture index for the current block based on the received candidate selection information. Inter prediction may be performed based on various prediction modes, and the information regarding the prediction may include information indicating a mode of inter prediction for the current block.
[0068] The adder 340 may generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the acquired residual signal to the prediction signal (predicted block, predicted sample array) output from the prediction unit 330. When there is no residual for the current block, such as when the skip mode is applied, the predicted block may be used as the reconstructed block.
[0069] The adder 340 may be referred to as a reconstruction unit or a reconstruction block generator. The generated reconstruction signal may be used for intra prediction of a next block to be processed in a current picture, and may be output after filtering as described below, or may be used for inter prediction of a next picture.
[0070] Meanwhile, LMCS (luma mapping with chroma scaling) can be applied during the picture decoding process.
[0071] The filtering unit 350 may apply filtering to the reconstructed signal to improve subjective / objective image quality. For example, the filtering unit 350 may apply various filtering methods to the reconstructed picture to generate a modified reconstructed picture, and may transmit the modified reconstructed picture to the memory 60, specifically, to the DPB of the memory 360. The various filtering methods may include, for example, deblocking filtering, sample adaptive offset, an adaptive loop filter, a bilateral filter, etc.
[0072] The (modified) reconstructed picture stored in the DPB of the memory 360 may be used as a reference picture in the inter prediction unit 331. The memory 360 may store motion information of a block from which motion information in the current picture is derived (or decoded) and / or motion information of a block in an already reconstructed picture. The stored motion information may be transmitted to the inter prediction unit 331 to be used as motion information of a spatial neighboring block or motion information of a temporal neighboring block. The memory 360 may store reconstructed samples of reconstructed blocks in the current picture and transmit them to the intra prediction unit 332.
[0073] In this specification, the embodiments described for the prediction unit 330, inverse quantization unit 321, inverse transform unit 322, and filtering unit 350 of the decoding device 300 can be applied identically or correspondingly to the prediction unit 220, inverse quantization unit 234, inverse transform unit 235, and filtering unit 260 of the encoding device 200, respectively.
[0074] Meanwhile, as described above, prediction is performed to improve compression efficiency when performing video coding. As a result, a predicted block including predicted samples for a current block, which is a block to be coded, can be generated. Here, the predicted block includes predicted samples in a spatial domain (or a pixel domain). The predicted block is derived in the same way by an encoding device and a decoding device, and the encoding device can improve image coding efficiency by signaling information (residual information) about the residual between the original block and the predicted block, which is not an original sample value of the original block, to a decoding device. The decoding device can derive a residual block including residual samples based on the residual information, and can generate a reconstructed block including reconstructed samples by adding the residual block and the predicted block, and can generate a reconstructed picture including the reconstructed block.
[0075] The residual information may be generated through a transform and quantization procedure. For example, the encoding apparatus may derive a residual block between the original block and the predicted block, perform a transform procedure on the residual samples (residual sample array) included in the residual block to derive transform coefficients, and perform a quantization procedure on the transform coefficients to derive quantized transform coefficients, and then signal the related residual information (through a bitstream) to the decoding apparatus. Here, the residual information may include information such as value information, position information, transform technique, transform kernel, and quantization parameter of the quantized transform coefficients. The decoding apparatus may derive a residual sample (or a residual block) by performing an inverse quantization / inverse transform procedure based on the residual information. The decoding apparatus may generate a reconstructed picture based on the predicted block and the residual block. Also, the encoding apparatus may derive a residual block by inverse quantizing / inverse transforming the quantized transform coefficients for reference for inter-prediction of a future picture, and generate a reconstructed picture based on the residual block.
[0076] FIG. 4 illustrates a schematic of the multiple conversion technique according to this document.
[0077] Referring to Figure 4, the conversion unit may correspond to the conversion unit in the encoding device of Figure 2 described above, and the inverse conversion unit may correspond to the inverse conversion unit in the encoding device of Figure 2 described above or the inverse conversion unit in the decoding device of Figure 3.
[0078] The transform unit may derive (primary) transform coefficients by performing a primary transform based on the residual samples (residual sample array) in the residual block (S410). Such a primary transform may be called a core transform. Here, the primary transform may be based on Multiple Transform Selection (MTS), and may be called a multiple core transform when multiple transforms are applied in the primary transform.
[0079] For example, the multi-kernel transform may refer to a method of transforming by additionally using a Discrete Cosine Transform (DCT) type 2 (DCT-II), a Discrete Sine Transform (DST) type 7 (DST-VII), a DCT type 8 (DCT-VIII), and / or a DST type 1 (DST-I). That is, the multi-kernel transform may refer to a transform method of transforming a residual signal (or a residual block) in a spatial domain into a transform coefficient (or a first transform coefficient) in a frequency domain based on a plurality of transform kernels selected from the DCT type 2, the DST type 7, the DCT type 8, and the DST type 1. Here, the first transform coefficient may be called a temporary transform coefficient on the transform unit side.
[0080] That is, when the existing transform method is applied, a transform coefficient may be generated by applying a spatial domain to frequency domain transform to the residual signal (or residual block) based on DCT type 2. However, differently, when the multi-kernel transform is applied, a transform coefficient (or first transform coefficient) may be generated by applying a spatial domain to frequency domain transform to the residual signal (or residual block) based on DCT type 2, DST type 7, DCT type 8, and / or DST type 1, etc. Here, DCT type 2, DST type 7, DCT type 8, DST type 1, etc. may be called a transform type, a transform kernel, or a transform core. Such DCT / DST transform types may be defined based on basis functions.
[0081] When the multi-kernel transform is performed, a vertical transform kernel and / or a horizontal transform kernel for a current block may be selected from the transform kernels, a vertical transform for the current block may be performed based on the vertical transform kernel, and a horizontal transform for the current block may be performed based on the horizontal transform kernel. Here, the horizontal transform may indicate a transform for a horizontal component of the current block, and the vertical transform may indicate a transform for a vertical component of the current block. The vertical transform kernel / horizontal transform kernel may be adaptively determined based on a prediction mode and / or a transform index of a current block (CU or sub-block) including a residual block.
[0082] Alternatively, for example, when applying MTS to perform a first-order transformation, a specific basis function may be set to a predetermined value, and a mapping relationship for a transformation kernel may be set by combining what basis function is applied when performing a vertical transformation or horizontal transformation. For example, when a horizontal transformation kernel is represented by trTypeHor and a vertical transformation kernel is represented by trTypeVer, trTypeHor or trTypeVer having a value of 0 may be set to DCT2, trTypeHor or trTypeVer having a value of 1 may be set to DST7, and trTypeHor or trTypeVer having a value of 2 may be set to DCT8.
[0083] Alternatively, for example, in order to indicate any one of a plurality of transform kernel sets, an MTS index may be encoded and MTS index information may be signaled to a decoding device. Here, the MTS index may be expressed as a tu_mts_idx syntax element or an mts_idx syntax element. For example, when the MTS index is 0, it may represent that both the trTypeHor and trTypeVer values are 0, and (trTypeHor, trTypeVer)=(DCT2, DCT2). When the MTS index is 1, it may represent that both the trTypeHor and trTypeVer values are 1, and (trTypeHor, trTypeVer)=(DST7, DST7). When the MTS index is 2, it may represent that the trTypeHor value is 2 and the trTypeVer value is 1, and (trTypeHor, trTypeVer)=(DCT8, DST7). When the MTS index is 3, it can be expressed that the trTypeHor value is 1 and the trTypeVer value is 2, so (trTypeHor, trTypeVer) = (DST7, DCT8). When the MTS index is 4, it can be expressed that both the trTypeHor and trTypeVer values are 2, so (trTypeHor, trTypeVer) = (DCT8, DCT8). For example, the conversion kernel set according to the MTS index can be expressed as shown in the following table.
[0084] [Table 1]
[0085] The transform unit may perform a secondary transform based on the (primary) transform coefficients to derive modified (secondary) transform coefficients (S420). The primary transform is a transform from a spatial domain to a frequency domain, and the secondary transform may be used to transform the (primary) transform coefficients into a more compressed representation by utilizing correlations existing between the (primary) transform coefficients.
[0086] For example, the secondary transform may include a non-separable transform. In this case, the secondary transform may be referred to as a non-separable secondary transform (NSST) or a mode-dependent non-separable secondary transform (MDNSST). The non-separable secondary transform may refer to a transform in which the (primary) transform coefficients derived through the primary transform are subjected to a secondary transform based on a non-separable transform matrix to generate modified transform coefficients (or secondary transform coefficients) for a residual signal. Here, a transform may be applied at once to the (primary) transform coefficients based on the non-separable transform matrix without applying a vertical transform and a horizontal transform separately (or a horizontal transform and a vertical transform independently).
[0087] That is, the non-separable secondary transform may refer to a transform method in which, for example, a two-dimensional signal (transform coefficient) is realigned to a one-dimensional signal via a specific direction (e.g., row-first direction or column-first direction) without separating the vertical and horizontal components of the (first-order) transform coefficients, and then modified transform coefficients (or second-order transform coefficients) are generated based on the non-separable transform matrix.
[0088] For example, row-major orientation (or ordering) may refer to an M×N block being arranged in a row order of 1st row, 2nd row, ..., Nth row, and column-major orientation (or ordering) may refer to an M×N block being arranged in a row order of 1st column, 2nd column, ..., Mth column, where M and N may refer to the width (W) and height (H) of the block, respectively, and are all positive integers.
[0089] For example, the non-separable secondary transform may be applied to a top-left region of a block (hereinafter, referred to as a transform coefficient block) composed of (first-order) transform coefficients. For example, if the width (W) and height (H) of the transform coefficient block are all equal to or greater than 8, an 8×8 non-separable secondary transform may be applied to the top-left 8×8 region of the transform coefficient block. Also, if the width (W) and height (H) of the transform coefficient block are all equal to or greater than 4 and the width (W) or height (H) of the transform coefficient block is less than 8, a 4×4 non-separable secondary transform may be applied to the top-left min(8,W)×min(8,H) region of the transform coefficient block. However, the embodiment is not limited thereto. For example, even if only the condition that the width (W) or height (H) of the transform coefficient block is equal to or greater than 4 is satisfied, a 4×4 non-separable secondary transform may be applied to the top-left min(8,W)×min(8,H) region of the transform coefficient block.
[0090] Specifically, for example, if a 4×4 input block is used, the non-separable quadratic transform can be performed as follows:
[0091] The 4×4 input block X is denoted as follows:
[0092]
number
[0093] For example, the vector form of X may be represented as follows:
[0094]
number
[0095] Referring to Equation 2, JPEG0007663743000004.jpg97 can represent a vector X, which is represented by rearranging the two-dimensional block of X in Equation 1 into a one-dimensional vector in row-first order.
[0096] In this case, the second-order non-separable transform can be calculated as follows:
[0097]
number
[0098] Where: JPEG0007663743000006.jpg76 may denote a transform coefficient vector, and T may denote a 16×16 (non-separable) transform matrix.
[0099] Based on the formula 3, the size of 16×1 JPEG0007663743000007.jpg76 can be derived, JPEG0007663743000008.jpg86 can be re-organized into 4x4 blocks via a scan order (horizontal, vertical, diagonal, etc.). However, the above calculation is only an example, and in order to reduce the computational complexity of the non-separable quadratic transform, a Hypercube-Givens Transform (HyGT) or the like can be used to calculate the non-separable quadratic transform.
[0100] Meanwhile, the non-separable secondary transform may be a mode dependent transform kernel (or transform core, transform type), where the mode may include an intra prediction mode and / or an inter prediction mode.
[0101] For example, as described above, the non-separable secondary transform may be performed based on an 8×8 transform or a 4×4 transform determined based on the width (W) and height (H) of the transform coefficient block. For example, the 8×8 transform may indicate a transform that may be applied to an 8×8 region included in a corresponding transform coefficient block when W and H are all equal to or greater than 8, and the 8×8 region is an upper left 8×8 region in the corresponding transform coefficient block. Similarly, the 4×4 transform may indicate a transform that may be applied to a 4×4 region included in a corresponding transform coefficient block when W and H are all equal to or greater than 4, and the 4×4 region is an upper left 4×4 region in the corresponding transform coefficient block. For example, the 8×8 transform kernel matrix may be a 64×64 / 16×64 matrix, and the 4×4 transform kernel matrix may be a 16×16 / 8×16 matrix.
[0102] At this time, for mode-based transform kernel selection, two non-separable quadratic transform kernels may be configured per transform set for non-separable quadratic transform for both 8×8 transform and 4×4 transform, and the number of transform sets is four. That is, four transform sets may be configured for the 8×8 transform, and four transform sets may be configured for the 4×4 transform. In this case, each of the four transform sets for the 8×8 transform may include two 8×8 transform kernels, and each of the four transform sets for the 4×4 transform may include two 4×4 transform kernels.
[0103] However, the size of the transform, the number of sets, and the number of transform kernels in a set are merely examples, and sizes other than 8×8 or 4×4 may be used, or n sets may be constructed with k transform kernels in each set, where n and k are each a positive integer.
[0104] For example, the transform set may be referred to as an NSST set, and the transform kernels in the NSST set may be referred to as NSST kernels. For example, the selection of a particular set from among the transform sets may be based on an intra-prediction mode of a current block (CU or sub-block).
[0105] For example, the intra prediction modes may include two non-directional or non-angular intra prediction modes and 65 directional or angular intra prediction modes. The non-directional intra prediction modes may include a planar intra prediction mode numbered 0 and a DC intra prediction mode numbered 1, and the directional intra prediction modes may include 65 intra prediction modes numbered 2 to 66. However, this is merely an example, and the embodiment of this document may be applied to cases where the number of intra prediction modes is different. Meanwhile, in some cases, a 67th intra prediction mode may also be used, and the 67th intra prediction mode may indicate a linear model (LM) mode.
[0106] FIG. 5 exemplarily shows intra-directional modes of 65 prediction directions.
[0107] Referring to Figure 5, intra prediction modes having horizontal directionality and intra prediction modes having vertical directionality may be distinguished with respect to the 34th intra prediction mode having a left-up diagonal prediction direction. H and V in Figure 5 may represent horizontal directionality and vertical directionality, respectively, and numbers from -32 to 32 may represent displacements of 1 / 32 units on a sample grid position. This may represent an offset for a mode index value.
[0108] For example, the 2nd to 33rd intra prediction modes may have a horizontal directionality, and the 34th to 66th intra prediction modes may have a vertical directionality. Meanwhile, the 34th intra prediction mode may be considered to have neither horizontal nor vertical directionality strictly speaking, but may be classified as belonging to the horizontal directionality in terms of determining a transformation set for the secondary transformation. This is because the input data is transposed and used for the vertical direction modes symmetrical with respect to the 34th intra prediction mode, and the input data arrangement method for the horizontal direction modes is used for the 34th intra prediction mode. Here, transposing the input data may mean that rows become columns and columns become rows for 2D block data M×N to form N×M data.
[0109] In addition, the 18th intra prediction mode and the 50th intra prediction mode may indicate a horizontal intra prediction mode and a vertical intra prediction mode, respectively, and the 2nd intra prediction mode may be called a right-upper diagonal intra prediction mode because it predicts in a right-upper direction using a left reference pixel. Similarly, the 34th intra prediction mode may be called a right-downper diagonal intra prediction mode, and the 66th intra prediction mode may be called a left-downper diagonal intra prediction mode.
[0110] Meanwhile, when it is determined that a specific set is used for non-separable transform, one of k transform kernels in the specific set may be selected through a non-separable secondary transform index. For example, an encoding device may derive a non-separable secondary transform index indicating a specific transform kernel based on a rate-distortion (RD) check, and may signal the non-separable secondary transform index to a decoding device. For example, a decoding device may select one of k transform kernels in the specific set based on the non-separable secondary transform index. For example, an NSST index having a value of 0 may indicate a first non-separable secondary transform kernel, an NSST index having a value of 1 may indicate a second non-separable secondary transform kernel, and an NSST index having a value of 2 may indicate a third non-separable secondary transform kernel. Alternatively, an NSST index having a value of 0 may indicate that a first non-separable secondary transform is not applied to a current block, and an NSST index having a value of 1 to 3 may indicate the three transform kernels.
[0111] The transform unit may perform the non-separable quadratic transform based on a selected transform kernel to obtain modified (quadratic) transform coefficients. The modified transform coefficients may be derived as quantized transform coefficients via a quantizer as described above, and may be encoded and signaled to a decoding device and transmitted to an inverse quantization / inverse transform unit in an encoding device.
[0112] On the other hand, as described above, when the secondary transform is omitted, the (primary) transform coefficients, which are the output of the primary (separate) transform, can be derived as quantized transform coefficients via a quantization unit as described above, and can be encoded and signaled to a decoding device and transmitted to an inverse quantization / inverse transform unit in an encoding device.
[0113] Referring again to FIG. 4, the inverse transform unit may perform a series of steps in the reverse order of the steps performed by the transform unit described above. The inverse transform unit may receive (dequantized) transform coefficients, perform a secondary (inverse) transform to derive (primary) transform coefficients (S450), and perform a primary (inverse) transform on the (primary) transform coefficients to obtain residual blocks (residual samples) (S460). Here, the primary transform coefficients may be referred to as modified transform coefficients on the inverse transform unit side. As described above, the encoding device and / or the decoding device may generate a reconstructed block based on the residual block and a predicted block, and may generate a reconstructed picture based on the reconstructed block.
[0114] Meanwhile, the decoding apparatus may further include a secondary inverse transform application determining unit (or an element for determining whether to apply the secondary inverse transform) and a secondary inverse transform determining unit (or an element for determining the secondary inverse transform). For example, the secondary inverse transform application determining unit may determine whether to apply the secondary inverse transform. For example, the secondary inverse transform is NSST or RST, and the secondary inverse transform application determining unit may determine whether to apply the secondary inverse transform based on a secondary transform flag parsed or acquired from the bitstream. Alternatively, for example, the secondary inverse transform application determining unit may determine whether to apply the secondary inverse transform based on a transform coefficient of the residual block.
[0115] The secondary inverse transform decision unit may determine a secondary inverse transform. At this time, the secondary inverse transform decision unit may determine a secondary inverse transform to be applied to a current block based on an NSST (or RST) transform set designated according to an intra prediction mode. Alternatively, the secondary transform decision method may be determined depending on a primary transform decision method. Alternatively, various combinations of the primary transform and the secondary transform may be determined according to an intra prediction mode. For example, the secondary inverse transform decision unit may determine an area to which the secondary inverse transform is applied based on a size of the current block.
[0116] Meanwhile, as described above, when the second (inverse) transform is omitted, the residual block (residual sample) can be obtained by receiving (dequantized) transform coefficients and performing the first (separate) inverse transform. The encoding device and / or the decoding device can generate a reconstructed block based on the residual block and a predicted block, and can generate a reconstructed picture based on the reconstructed block, as described above.
[0117] Meanwhile, in this paper, in order to reduce the computational complexity and memory requirements due to non-separable secondary transform, RST (reduced secondary transform) can be applied, in which the size of the transformation matrix (kernel) is reduced based on the concept of NSST.
[0118] In this document, RST may refer to a (simplified) transformation performed on residual samples for a target block based on a transform matrix whose size is reduced by a simplification factor. When this is done, the amount of calculation required during transformation can be reduced by reducing the size of the transform matrix. That is, RST can be used to solve the computational complexity problem that occurs during transformation of a large-sized block or non-separable transformation.
[0119] For example, the RST may be called by various terms such as a reduced transform, a reduced secondary transform, a reduction transform, a simplified transform, or a simple transform, and the names by which the RST is called are not limited to the listed examples. Alternatively, the RST may be called a Low-Frequency Non-Separable Transform (LFNST) since it is mainly performed in a low-frequency domain including non-zero coefficients in a transform block.
[0120] Meanwhile, when the secondary inverse transform is performed based on a RST, the inverse transform unit 235 of the encoding device 200 and the inverse transform unit 322 of the decoding device 300 may include an inverse RST unit for deriving modified transform coefficients based on an inverse RST for transform coefficients, and an inverse linear transform unit for deriving residual samples for the target block based on an inverse linear transform for the modified transform coefficients. The inverse linear transform refers to an inverse transform of a linear transform applied to a residual. In this document, deriving transform coefficients based on a transform may refer to deriving transform coefficients by applying a corresponding transform.
[0121] 6 and 7 are diagrams for explaining the RST according to one embodiment of the present document.
[0122] For example, Figure 6 is a diagram for explaining application of a forward reduced transform, and Figure 7 is a diagram for explaining application of an inverse reduced transform. In this document, a target block may indicate a current block, a residual block, or a transformed block to be coded.
[0123] For example, in RST, an N-dimensional vector can be mapped to an R-dimensional vector located in a different space to determine a reduced transformation matrix. Here, N and R are each positive integers, and R is smaller than N. N may represent the square of the length of one side of a block to which a transformation is applied or the total number of transformation coefficients corresponding to a block to which a transformation is applied, and the simplification factor may represent an R / N value. The simplification factor may be referred to by various terms such as a reduced factor, a reduction factor, a simplified factor, or a simple factor. Meanwhile, R may be referred to as a reduced coefficient, but in some cases, the simplification factor may represent R. In addition, in some cases, the simplification factor may represent an N / R value.
[0124] For example, but not limited to, the simplification factors or reduced coefficients may be signaled via a bitstream. For example, predefined values for the simplification factors or reduced coefficients may be stored in each encoding device 200 and decoding device 300, in which case the simplification factors or reduced coefficients are not separately signaled.
[0125] For example, the size of the simplified transformation matrix (R×N) is smaller than the size of the normal transformation matrix (N×N), and can be defined as the following formula:
[0126]
number
[0127] For example, the matrix T in the reduced transform block shown in FIG. 6 is the matrix T in Equation 4.R×N As shown in Fig. 6, the simplified transformation matrix T R×N When multiplied by, the transform coefficients for the current block can be derived.
[0128] For example, if the size of the block to which the transform is applied is 8×8 and R is 16 (i.e., R / N=16 / 64=1 / 4), the RST according to Fig. 6 can be expressed by a matrix operation as shown in the following Equation 5. In this case, the memory and multiplication operations can be reduced to about 1 / 4 due to the simplification factor.
[0129] In this document, a matrix operation may be understood as an operation in which a matrix is placed to the left of a column vector and the matrix and the column vector are multiplied to obtain the column vector.
[0130]
number
[0131] In Formula 5, r 1 〜r 64 may represent a residual sample for the current block, or may be a transform coefficient generated by applying a linear transform. i can be derived.
[0132] For example, if R is 16, the transform coefficient c 1 ~c 16can be derived. If a regular transform is applied instead of the RST and a transform matrix having a size of 64×64 (N×N) is multiplied by the residual sample having a size of 64×1 (N×1), 64 (N) transform coefficients for the current block are derived, but since the RST is applied, only 16 (R) transform coefficients for the current block are derived. Since the total number of transform coefficients for the current block is reduced from N to R, the amount of data transmitted from the encoding device 200 to the decoding device 300 is reduced, and therefore the transmission efficiency between the encoding device 200 and the decoding device 300 can be increased.
[0133] Considering the size of the transformation matrix, the size of the normal transformation matrix is 64x64 (NxN), whereas the size of the simplified transformation matrix is reduced to 16x64 (RxN), so compared to normal transformation, memory usage can be reduced by the ratio R / N when performing RST. Also, compared to the number of multiplications NxN when using the normal transformation matrix, the number of multiplications can be reduced by the ratio R / N when using the simplified transformation matrix (RxN).
[0134] In one embodiment, the transform unit 232 of the encoding device 200 may derive transform coefficients for the current block by performing a primary transform and an RST-based secondary transform on the residual samples for the current block. Such transform coefficients may be transmitted to an inverse transform unit of the decoding device 300, and the inverse transform unit 322 of the decoding device 300 may derive modified transform coefficients based on an inverse reduced secondary transform (RST) for the transform coefficients, and derive residual samples for the current block based on an inverse primary transform for the modified transform coefficients.
[0135] Inverse RST matrix T according to one embodiment N×R The size of the simplified transformation matrix T R×NIt is in a transpose relationship with.
[0136] The matrix T in the reduced inverse transform block shown in FIG. t is the inverse RST matrix T R×N T Here, the superscript T can indicate a transpose. As shown in FIG. 7, the inverse RST matrix T R×N T When the inverse RST matrix T is multiplied, modified transform coefficients for the current block or residual samples for the current block can be derived. R×N T is (T R×N ) T N×R It can also be expressed as:
[0137] More specifically, when the inverse RST is applied to the secondary inverse transform, the inverse RST matrix T R×N T Alternatively, an inverse RST may be applied to the inverse linear transform, in which case the inverse RST matrix T R×N T Once multiplied by, the residual sample for the current block can be derived.
[0138] In one embodiment, when the size of the block to which the inverse transform is applied is 8×8 and R is 16 (i.e., R / N=16 / 64=1 / 4), the RST according to FIG. 7 can be expressed by a matrix operation as shown in Equation 6 below.
[0139]
number
[0140] In Formula 6, c1 ~c 16 may represent the transform coefficients for the target block. r may represent the modified transform coefficients for the target block or the residual samples for the target block based on the calculation result of Equation 6. j That is, r , which indicates the modified transform coefficients for the current block or the residual samples for the current block, can be derived. 1 〜r N can be derived.
[0141] Considering the size of the inverse transformation matrix, the size of a normal inverse transformation matrix is 64 x 64 (N x N), whereas the size of the simplified inverse transformation matrix is reduced to 64 x 16 (N x R), so compared to normal inverse transformation, memory usage can be reduced by a ratio of R / N when performing inverse RST. Also, compared to the number of multiplications N x N when using a normal inverse transformation matrix, the number of multiplications can be reduced by a ratio of R / N when using a simplified inverse transformation matrix (N x R).
[0142] Meanwhile, a transform set can be configured and applied to the 8×8 RST. That is, the corresponding 8×8 RST can be applied depending on the transform set. Since one transform set is composed of two or three transform kernels according to the prediction mode in the screen, it can be configured to select one from up to four transforms including the case where the secondary transform is not applied. When the secondary transform is not applied, the transform is considered to be applied with an identity matrix. When the four transforms are assigned indexes of 0, 1, 2, or 3 (for example, the 0th index can be assigned to the identity matrix, i.e., when the secondary transform is not applied), a syntax element called an NSST index can be signaled for each transform coefficient block to specify the transform to be applied. That is, an 8×8 NSST can be specified for an 8×8 upper left block through the NSST index, and an 8×8 RST can be specified in the RST configuration. 8×8NSST and 8×8RST may indicate a transformation that can be applied to an 8×8 region included in a corresponding transform coefficient block when W and H of a target block to be transformed are all equal to or greater than 8, and the 8×8 region is an upper left 8×8 region inside the corresponding transform coefficient block. Similarly, 4×4NSST and 4×4RST may indicate a transformation that can be applied to a 4×4 region included in a corresponding transform coefficient block when W and H of a target block are all equal to or greater than 4, and the 4×4 region is an upper left 4×4 region inside the corresponding transform coefficient block.
[0143] Meanwhile, for example, the encoding device may derive a bitstream by encoding the values of syntax elements or quantized values of transform coefficients related to residuals based on various coding methods such as exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding), etc. Also, the decoding device may decode the bitstream based on various coding methods such as exponential Golomb coding, CAVLC, CABAC, etc., and derive the values of syntax elements required for image restoration or quantized values of transform coefficients related to residuals, etc.
[0144] For example, the above coding method can be performed as described below.
[0145] FIG. 8 illustrates an exemplary context-adaptive binary arithmetic coding (CABAC) for encoding syntax elements.
[0146] For example, in the process of coding CABAC, if an input signal is a syntax element that is not a binary value, the encoding apparatus may convert the input signal into a binary value by binarizing the value of the input signal. Also, if the input signal is already a binary value (i.e., the value of the input signal is a binary value), the input signal may be used as is without performing binarization. Here, each binary digit 0 or 1 constituting a binary value may be referred to as a bin. For example, if a binary string after binarization is 110, each of 1, 1, and 0 may be represented as one bin. The bin for one syntax element may indicate the value of the syntax element. Such binarization may be based on various binarization methods such as a truncated rice binarization process or a fixed-length binarization process, and the binarization method for a target syntax element may be predefined. The binarization procedure may be performed by a binarization unit in an entropy encoding unit.
[0147] Thereafter, the binarized bin of the syntax element may be input to a regular coding engine or a bypass coding engine. The regular coding engine of the encoding device may assign a context model reflecting a probability value to the corresponding bin, and may encode the corresponding bin based on the assigned context model. The regular coding engine of the encoding device may update the context model for the corresponding bin after performing coding for each bin. A bin coded as described above may be referred to as a context-coded bin.
[0148] Meanwhile, when the binarized bin of the syntax element is input to the bypass coding engine, it can be coded as follows. For example, the bypass coding engine of the encoding device can omit a procedure of estimating a probability for an input bin and a procedure of updating a probability model applied to the bin after coding. When bypass coding is applied, the encoding device can code the input bin by applying a uniform probability distribution instead of allocating a context model, thereby improving the encoding speed. A bin coded as described above can be referred to as a bypass bin.
[0149] Entropy decoding can refer to a process in which the above-mentioned entropy encoding process is performed in reverse order.
[0150] The decoding device (entropy decoding unit) may decode encoded image / video information. The image / video information may include partitioning-related information, prediction-related information (e.g., inter / intra prediction partition information, intra prediction mode information, inter prediction mode information, etc.), residual information, in-loop filtering-related information, etc., or may include various syntax elements related thereto. The entropy coding may be performed on a syntax element basis.
[0151] The decoding device may perform binarization on the target syntax element. Here, the binarization may be based on various binarization methods, such as a truncated rice binarization process or a fixed-length binarization process, and the binarization method for the target syntax element may be predefined. The decoding device may derive usable bin strings (bin string candidates) for usable values of the target syntax element through the binarization procedure. The binarization procedure may be performed by a binarization unit in an entropy decoding unit.
[0152] The decoding device can sequentially decode or parse each bin for the target syntax element from the input bits in the bitstream, and compare the derived bin string with the available bin string for the corresponding syntax element. If the derived bin string is the same as one of the available bin strings, a value corresponding to the corresponding bin string is derived as the value of the corresponding syntax element. If not, the above procedure can be repeated after further parsing the next bit in the bitstream. Through this process, the corresponding information can be signaled using variable length bits without using start bits or end bits for the specific information (or specific syntax element) in the bitstream. This allows relatively fewer bits to be allocated to low values, improving overall coding efficiency.
[0153] The decoding device can decode each bin in the bin string from the bitstream based on an entropy coding technique such as CABAC or CAVLC based on a context model or based on a bypass.
[0154] When a syntax element is decoded based on a context model, a decoding device can receive a bin corresponding to the syntax element through a bitstream, and can determine a context model using the syntax element and decoding information of a block to be decoded or an adjacent block or information of a symbol / bin decoded in a previous step, and can derive a value of the syntax element by predicting an occurrence probability of the received bin according to the determined context model and performing arithmetic decoding of the bin. Thereafter, the context model of the bin to be decoded next can be updated based on the determined context model.
[0155] A context model may be assigned and updated for each bin that is context coded (regularly coded), and the context model may be indicated based on a context index (ctxIdx: context index) or a context index increment (ctxInc: context index increment). ctxIdx may be derived based on ctxInc. Specifically, for example, ctxIdx indicating a context model for each of the regularly coded bins may be derived as a sum of ctxInc and a context index offset (ctxIdxOffset: context index offset). For example, the ctxInc may be derived differently for each bin. The ctxIdxOffset is indicated by the lowest value of the ctxIdx. The ctxIdxOffset is a value generally used for distinction from context models for other syntax elements, and a context model for one syntax element may be distinguished or derived based on ctxInc.
[0156] In the entropy encoding procedure, it can be determined whether to encode via a regular coding engine or via a bypass coding engine, and the coding path can be switched accordingly. Entropy decoding can perform the same process as entropy encoding in the reverse order.
[0157] Meanwhile, for example, when a syntax element is bypass decoded, the decoding device may receive a bin corresponding to the syntax element through a bitstream and may decode the input bin by applying a uniform probability distribution. In this case, the decoding device may omit a procedure of deriving a context model of the syntax element and a procedure of updating the context model applied to the bin after decoding.
[0158] Meanwhile, an embodiment of the present document may propose a method for signaling an MTS index. Here, the MTS index may represent any one of a plurality of transform kernel sets as described above, and the MTS index may be encoded to signal MTS index information to a decoding device, and the decoding device may decode the MTS index information to obtain the MTS index and determine a transform kernel set to be applied based on the MTS index. The MTS index may be expressed as a tu_mts_idx syntax element or an mts_idx syntax element. For example, the MTS index may be binarized using the Rice-Golmb parameter 0th order, but may also be binarized based on a truncated rice. When binarized based on a truncated rice, the input parameter cMax may have a value of 4, and cRiceParam may have a value of 0. For example, the encoding device may binarize the MTS index to derive a bin (etc.) for the MTS index, encode the derived bin (etc.) to derive MTS index information (bit (etc.) for the MTS index), and signal the MTS index information to the decoding device. The decoding device may decode the MTS index information to derive a bin (etc.) for the MTS index, and compare the derived bin (etc.) for the MTS index with a candidate bin (etc.) for the MTS index to derive the MTS index.
[0159] For example, an MTS index (e.g., tu_mts_idx syntax element or mts_idx syntax element) may be context coded based on a context model or a context index for every bin. In this case, a context index increment (ctxInc) for context coding of an MTS index or ctxInc according to a bin position may be assigned or determined as shown in Table 2. Alternatively, a context model may be selected according to a bin position as shown in Table 2.
[0160] [Table 2]
[0161] Referring to Table 2, ctxInc for 0th bin (1st bin) may be assigned based on cqtDepth. Here, cqtDepth may represent a quad-tree depth for the current block, and may be derived as one value from 0 to 5. That is, ctxInc for 0th bin may be assigned as one value from 0 to 5 according to cqtDepth. Also, ctxInc for 1st bin (2nd bin) may be assigned 6, ctxInc for 2nd bin (3rd bin) may be assigned 7, and ctxInc for 3rd bin (4th bin) may be assigned 8. That is, 0th bin to 3rd bin may be assigned different values of ctxInc. Here, different ctxInc values may represent different context models, and in this case, there may be 9 context models for coding the MTS index.
[0162] Or, for example, the MTS index (e.g., the tu_mts_idx syntax element or the mts_idx syntax element) may be bypass coded for all bins as shown in Table 3. In this case, the number of context models for coding the MTS index may be 0.
[0163] [Table 3]
[0164] Or, for example, the MTS index (e.g., tu_mts_idx syntax element or mts_idx syntax element) may be context coded based on a context model or context index for the 0th bin (first bin) and may be bypass coded for the remaining bins as shown in Table 4. That is, ctxInc for the 0th bin (first bin) may be assigned 0. In this case, there may be one context model for coding the MTS index.
[0165] [Table 4]
[0166] Or, for example, the MTS index (e.g., tu_mts_idx syntax element or mts_idx syntax element) may be context coded based on a context model or context index for bin 0 (first bin) and bin 1 (second bin), and may be bypass coded for the remaining bins, as shown in Table 5. That is, ctxInc for bin 0 (first bin) may be assigned 0, and ctxInc for bin 1 (second bin) may be assigned 1. In this case, there may be two context models for coding the MTS index.
[0167] [Table 5]
[0168] Or, for example, an MTS index (e.g., tu_mts_idx syntax element or mts_idx syntax element) may be context coded based on a context model or context index for all bins as shown in Table 6, and one ctxInc may be assigned to each bin. That is, ctxInc for bin 0 (first bin) may be assigned 0, ctxInc for bin 1 (second bin) may be assigned 1, ctxInc for bin 2 (third bin) may be assigned 2, and ctxInc for bin 3 (fourth bin) may be assigned 2. In this case, there may be four context models for coding the MTS index.
[0169] [Table 6]
[0170] As described above, in one embodiment, by applying bypass coding to all or some of the bins of the MTS index, or by applying a specific value to ctxInc to reduce the number of context models even if context coding is applied, the complexity can be reduced and the amount of decoder output can be increased. In addition, in one embodiment, when using a context model as described above, the initial value and / or the size of the multiple window can be variable based on the generation statistics for the position of each bin.
[0171] 9 and 10 show a schematic diagram of an example video / image encoding method and associated components according to an embodiment (etc.) of this document.
[0172] The method disclosed in FIG. 9 may be performed by the encoding device disclosed in FIG. 2 or FIG. 10. Specifically, for example, S900 to S920 in FIG. 9 may be performed by the residual processing unit 230 of the encoding device in FIG. 10, and S930 in FIG. 9 may be performed by the entropy encoding unit 240 of the encoding device in FIG. 10. In addition, although not shown in FIG. 9, a prediction sample or prediction-related information may be derived by the prediction unit 220 of the encoding device in FIG. 10, residual information may be derived from an original sample or a prediction sample by the residual processing unit 230 of the encoding device, and a bitstream may be generated from the residual information or the prediction-related information by the entropy encoding unit 240 of the encoding device. The method disclosed in FIG. 9 may include the embodiments described above in this document.
[0173] As shown in Fig. 9, the encoding apparatus derives a residual sample for a current block (S900). For example, the encoding apparatus may derive the residual sample based on a predicted sample and an original sample. Although not shown in Fig. 9, the encoding apparatus may perform intra prediction or inter prediction on the current block in consideration of a rate distortion (RD) cost in order to generate a predicted sample for the current block, and may generate prediction-related information including prediction mode / type information.
[0174] The encoding apparatus derives transform coefficients for a current block based on residual samples (S910). For example, the encoding apparatus may perform a transform on the residual samples to derive the transform coefficients. Here, the transform may be performed based on a transform kernel or a transform kernel set. For example, the transform kernel set may include a horizontal transform kernel and a vertical transform kernel. For example, the encoding apparatus may perform a linear transform on the residual samples to derive the transform coefficients. Alternatively, for example, the encoding apparatus may perform a linear transform on the residual samples to derive temporary transform coefficients, and perform a secondary transform on the temporary transform coefficients to derive the transform coefficients. For example, the transform performed based on the transform kernel set may represent a linear transform.
[0175] The encoding device generates the MTS index and the residual information based on the transform coefficients (S920). In other words, the encoding device can generate the MTS index and / or the residual information based on the transform coefficients.
[0176] The MTS index may represent a transform kernel set applied to the current block (transform coefficients) among the transform kernel set candidates. Here, the MTS index may be represented as a tu_mts_idx syntax element or an mts_idx syntax element. As described above, the transform kernel set may include a horizontal transform kernel and a vertical transform kernel, and the horizontal transform kernel may be represented as trTypeHor and the vertical transform kernel may be represented as trTypeVer.
[0177] For example, the values of trTypeHor and trTypeVer can be represented by the horizontal and vertical transform kernels applied to the current block (its transform coefficients), and the MTS index can be represented as one of candidates including 0 to 4 depending on the values of trTypeHor and trTypeVer.
[0178] For example, when the MTS index is 0, it may indicate that both trTypeHor and trTypeVer are 0. Or, when the MTS index is 1, it may indicate that both trTypeHor and trTypeVer are 1. Or, when the MTS index is 2, it may indicate that trTypeHor is 2 and trTypeVer is 1. Or, when the MTS index is 3, it may indicate that trTypeHor is 1 and trTypeVer is 1. Or, when the MTS index is 4, it may indicate that both trTypeHor and trTypeVer are 2. For example, when the value of trTypeHor or trTypeVer is 0, it may indicate that DCT2 has been applied to (the transform coefficients of) the current block in the horizontal or vertical direction, when it is 1, it may indicate that DST7 has been applied, and when it is 2, it may indicate that DCT8 has been applied. That is, each of the transformation kernels applied in the horizontal direction and the vertical direction may be represented as one of candidates including DCT2, DCT7, and DCT8 based on the MTS index.
[0179] The MTS index may be represented based on the bins of the bin string of the MTS index. In other words, the MTS index may be binarized and represented by the bins of the bin string of the MTS index, and the bins of the bin string of the MTS index may be entropy encoded.
[0180] In other words, at least one bin of the bin string of the MTS index may be represented based on a context coding. Here, the context coding may be performed based on a value of a context index increment (ctxInc). Or, the context coding may be performed based on a context index (ctxIdx) or a context model. Here, the context index may be represented based on a value of the context index increment. Or, the context index may be represented based on a value of the context index increment and a context index offset (ctxIdxOffset).
[0181] For example, all of the bins of the bin string of the MTS index may be represented based on the context coding. For example, ctxInc for the first bin or 0th bin (bin 0) of the bins of the bin string of the MTS index may be represented based on cqtDepth. Here, cqtDepth may represent a quad-tree depth for the current block and may be represented as one value from 0 to 5. Also, ctxInc for the second bin or 1st bin (bin 1) may be represented as 6, ctxInc for the third bin or 2nd bin (bin 2) may be represented as 7, and ctxInc for the fourth bin or 3rd bin (bin 3) may be represented as 8. Or, for example, among the bins of a bin string of an MTS index, ctxInc for the first bin or 0th bin (bin 0) may be represented as 0, ctxInc for the second bin or 1st bin (bin 1) may be represented as 1, ctxInc for the third bin or 2nd bin (bin 2) may be represented as 2, and ctxInc for the fourth bin or 3rd bin (bin 3) may be represented as 3. That is, the number of context index increment values that can be used for context coding of the first bin among the bins of the bin string may be 1.
[0182] Alternatively, for example, some of the bins of the bin string of the MTS index may be represented based on the context coding, and the remaining bins may be represented based on the bypass coding. For example, the ctxInc for the first bin or the 0th bin (bin 0) of the bins of the bin string of the MTS index may be represented as 0, and the remaining bins may be represented based on the bypass coding. Alternatively, for example, the ctxInc for the first bin or the 0th bin (bin 0) of the bins of the bin string of the MTS index may be represented as 0, and the ctxInc for the second bin or the 1st bin (bin 1) may be represented as 1, and the remaining bins may be represented based on the bypass coding. That is, the number of values of the context index increment that can be used for the context coding of the first bin of the bin string may be 1.
[0183] Alternatively, all of the bins of the bin string of the MTS index may be represented based on bypass coding, where bypass coding may represent context coding based on a uniform probability distribution, and the update procedure of the context coding may be omitted, thereby improving coding efficiency.
[0184] The residual information may represent information used to derive the residual samples. For example, the encoding device may perform quantization on the transform coefficients, and the residual information may include information about the residual samples, transform-related information, and / or quantization-related information. For example, the residual information may include information about the quantized transform coefficients.
[0185] The encoding device encodes the image information including the MTS index and the residual information (S930). For example, the image information may further include prediction-related information. For example, the encoding device may encode the image information to generate a bitstream. The bitstream may also be referred to as encoded (image) information.
[0186] 9, for example, the encoding apparatus may generate reconstructed samples based on the residual samples and the predicted samples, and may derive reconstructed blocks and reconstructed pictures based on the reconstructed samples.
[0187] For example, an encoding device may generate a bitstream or encoded information by encoding image information including all or a part of the above-mentioned information (or syntax elements). Alternatively, the encoding device may output the image information in the form of a bitstream. The bitstream or encoded information may be transmitted to a decoding device via a network or a storage medium. Alternatively, the bitstream or encoded information may be stored in a computer-readable storage medium, and the bitstream or encoded information may be generated by the above-mentioned image encoding method.
[0188] 11 and 12 show a schematic diagram of an example of a video / image decoding method and associated components according to an embodiment (etc.) of this document.
[0189] The method disclosed in FIG. 11 may be performed by the decoding device disclosed in FIG. 3 or FIG. 12. Specifically, for example, S1100 in FIG. 11 may be performed by the entropy decoding unit 310 of the decoding device in FIG. 12, and S1110 and S1120 in FIG. 11 may be performed by the residual processing unit 320 of the decoding device in FIG. 12. Also, although not shown in FIG. 11, in FIG. 12, prediction related information or residual information may be derived from a bitstream by the entropy decoding unit 310 of the decoding device, residual samples may be derived from the residual information by the residual processing unit 320 of the decoding device, prediction samples may be derived from the prediction related information by the prediction unit 330 of the decoding device, and a reconstructed block or a reconstructed picture may be derived from the residual sample or the prediction sample by the adder 340 of the decoding device. The method disclosed in FIG. 11 may include the embodiments described above in this document.
[0190] As shown in Fig. 11, a decoding device obtains MTS index and residual information from a bitstream (S1100). For example, the decoding device can obtain the MTS index and / or residual information by parsing or decoding the bitstream. Here, the bitstream can also be referred to as encoded (image) information.
[0191] The MTS index may represent a transformation kernel set to be applied to the current block from among the transformation kernel set candidates. Here, the MTS index may be expressed as a tu_mts_idx syntax element or an mts_idx syntax element. Also, the transformation kernel set may include a transformation kernel to be applied to the current block as a horizontal direction and a transformation kernel to be applied to the current block as a vertical direction. Here, the transformation kernel to be applied to the horizontal direction may be expressed as trTypeHor, and the transformation kernel to be applied to the vertical direction may be expressed as trTypeVer.
[0192] For example, the MTS index may be derived as one of candidates including 0 to 4, and trTypeHor and trTypeVer may be derived as one of 0 to 2, respectively, according to the MTS index. For example, when the MTS index is 0, both trTypeHor and trTypeVer may be 0. Or, when the MTS index is 1, both trTypeHor and trTypeVer may be 1. Or, when the MTS index is 2, trTypeHor may be 2 and trTypeVer may be 1. Or, when the MTS index is 3, trTypeHor may be 1 and trTypeVer may be 1. Or, when the MTS index is 4, both trTypeHor and trTypeVer may be 2. For example, the value of trTypeHor or trTypeVer may represent a transformation kernel, and when it is 0, it may represent DCT2, when it is 1, it may represent DST7, and when it is 2, it may represent DCT8. That is, each of the transformation kernel to be applied in the horizontal direction and the transformation kernel to be applied in the vertical direction may be derived from one of candidates including DCT2, DCT7, and DCT8 based on the MTS index.
[0193] The MTS index may be derived based on the bins of the bin string of the MTS index. In other words, the MTS index information may be derived from the entropy decoded and binarized MTS index, and the binarized MTS index may be represented by the bins of the bin string of the MTS index.
[0194] In other words, at least one bin of the bin string of the MTS index may be derived based on a context coding. Here, the context coding may be performed based on a value of a context index increment (ctxInc). Alternatively, the context coding may be performed based on a context index (ctxIdx) or a context model. Here, the context index may be derived based on a value of the context index increment. Alternatively, the context index may be derived based on a value of the context index increment and a context index offset (ctxIdxOffset).
[0195] For example, all of the bins of the bin string of the MTS index may be derived based on the context coding. For example, the ctxInc for the first bin or 0th bin (bin 0) of the bins of the bin string of the MTS index may be assigned based on cqtDepth. Here, cqtDepth may represent a quad-tree depth for the current block and may be derived to one value from 0 to 5. Also, the ctxInc for the second bin or 1st bin (bin 1) may be assigned 6, the ctxInc for the third bin or 2nd bin (bin 2) may be assigned 7, and the ctxInc for the fourth bin or 3rd bin (bin 3) may be assigned 8. Or, for example, among the bins of a bin string of an MTS index, ctxInc for the first bin or 0th bin (bin 0) may be assigned 0, ctxInc for the second bin or 1st bin (bin 1) may be assigned 1, ctxInc for the third bin or 2nd bin (bin 2) may be assigned 2, and ctxInc for the fourth bin or 3rd bin (bin 3) may be assigned 3. That is, the number of context index increment values that can be used for context coding of the first bin among the bins of the bin string may be 1.
[0196] Alternatively, for example, some of the bins of the bin string of the MTS index may be derived based on the context coding, and the remaining bins may be derived based on the bypass coding. For example, ctxInc for the first bin or the 0th bin (bin 0) of the bins of the bin string of the MTS index may be assigned 0, and the remaining bins may be derived based on the bypass coding. Alternatively, for example, ctxInc for the first bin or the 0th bin (bin 0) of the bins of the bin string of the MTS index may be assigned 0, and ctxInc for the second bin or the 1st bin (bin 1) may be assigned 1, and the remaining bins may be derived based on the bypass coding. That is, the number of values of the context index increment that can be used for the context coding of the first bin of the bin string may be 1.
[0197] Alternatively, all of the bins of the bin string of the MTS index may be derived based on bypass coding, where bypass coding may represent context coding based on a uniform probability distribution, and the update procedure of the context coding may be omitted, thereby improving coding efficiency.
[0198] The residual information may represent information used to derive the residual samples and may include information about the residual samples, inverse transform related information, and / or inverse quantization related information. For example, the residual information may include information about the quantized transform coefficients.
[0199] The decoding device derives transform coefficients for the current block based on the residual information (S1110). For example, the decoding device may derive the quantized transform coefficients for the current block based on information about the quantized transform coefficients included in the residual information. For example, the decoding device may derive the transform coefficients for the current block by performing inverse quantization on the quantized transform coefficients.
[0200] The decoding apparatus generates a residual sample of the current block based on the MTS index and the transform coefficients (S1120). For example, the residual sample may be generated based on the transform coefficients and a transform kernel set represented by the MTS index. That is, the decoding apparatus may generate the residual sample from the transform coefficients through an inverse transform using the transform kernel set represented by the MTS index. Here, the inverse transform using the transform kernel set represented by the MTS index may be included in the primary inverse transform. Alternatively, the decoding apparatus may use not only the primary inverse transform but also a secondary inverse transform when generating the residual sample from the transform coefficients. In this case, the decoding apparatus may perform a secondary inverse transform on the transform coefficients to derive modified transform coefficients, and perform a primary inverse transform on the modified transform coefficients to generate the residual sample.
[0201] Although not shown in Fig. 11, for example, the decoding device may obtain prediction-related information including prediction mode / type information from a bitstream, and may generate a prediction sample for a current block by performing intra prediction or inter prediction based on the prediction mode / type information. Also, for example, the decoding device may generate a reconstructed sample based on the prediction sample and the residual sample. Also, for example, a reconstructed block or a reconstructed picture may be derived based on the reconstructed sample.
[0202] For example, a decoding device may decode a bitstream or encoded information to obtain image information including all or a part of the above-mentioned information (or syntax elements), and the bitstream or encoded information may be stored in a computer-readable storage medium, and the above-mentioned decoding method may be performed.
[0203] In the above-described embodiments, the method is described based on a flow chart with a series of steps or blocks, but the embodiment is not limited to the order of steps, and a step may occur in a different order or simultaneously with different steps than described above. Also, a person skilled in the art can understand that the steps shown in the flow chart are not exclusive, and other steps may be included, or one or more steps of the flow chart may be deleted without affecting the scope of the embodiments of this document.
[0204] The methods according to the embodiments of the present document described above may be embodied in software form, and the encoding device and / or decoding device according to the present document may be included in an image processing device such as a TV, a computer, a smartphone, a set-top box, or a display device.
[0205] In this document, when the embodiments are implemented in software, the methods described above may be implemented with modules (processes, functions, etc.) that perform the functions described above. The modules may be stored in a memory and executed by a processor. The memory may be internal or external to the processor and may be coupled to the processor in various well-known ways. The processor may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits, and / or data processing devices. The memory may include a read-only memory (ROM), a random access memory (RAM), a flash memory, a memory card, a storage medium, and / or other storage devices. That is, the embodiments described herein may be implemented and executed on a processor, microprocessor, controller, or chip. For example, the functional units shown in each drawing may be implemented and executed on a computer, processor, microprocessor, controller, or chip. In this case, information (e.g., information on instructions) or algorithms for implementation may be stored on a digital storage medium.
[0206] In addition, the decoding device and the encoding device to which the embodiment of this document is applied may be included in a multimedia broadcast transmitting / receiving device, a mobile communication terminal, a home cinema video device, a digital cinema video device, a surveillance camera, a video interactive device, a real-time communication device such as a video communication, a mobile streaming device, a storage medium, a camcorder, a custom video (VoD) service providing device, an over-the-top video (OTT) device, an internet streaming service providing device, a three-dimensional (3D) video device, a virtual reality (VR) device, an argument reality (AR) device, an image telephone video device, a transportation means terminal (e.g., a vehicle (including an autonomous vehicle) terminal, an airplane terminal, a ship terminal, etc.), and a medical video device, and may be used to process a video signal or a data signal. For example, the over-the-top video (OTT) device may include a game console, a Blu-ray player, an internet-connected TV, a home theater system, a smartphone, a tablet PC, a digital video recorder (DVR), etc.
[0207] In addition, the processing method to which the embodiment of the present document is applied may be produced in the form of a program executed by a computer and may be stored in a computer-readable recording medium. In addition, multimedia data having a data structure according to the embodiment of the present document may also be stored in a computer-readable recording medium. The computer-readable recording medium includes all types of storage devices and distributed storage devices in which computer-readable data is stored. The computer-readable recording medium may include, for example, a Blu-ray Disc (BD), a Universal Serial Bus (USB), a ROM, a PROM, an EPROM, an EEPROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device. In addition, the computer-readable recording medium may include a medium embodied in the form of a carrier wave (e.g., transmission via the Internet). In addition, a bit stream generated by the encoding method may be stored in a computer-readable recording medium or transmitted via a wired or wireless communication network.
[0208] Furthermore, embodiments of the present document may be embodied in a computer program product with program code, the program code being executable by a computer in accordance with embodiments of the present document. The program code may be stored on a computer readable carrier.
[0209] FIG. 13 illustrates an example of a content streaming system in which the embodiments disclosed herein may be applied.
[0210] As shown in FIG. 13, a content streaming system to which the embodiments of this document are applied can broadly include an encoding server, a streaming server, a web server, a media repository, a user device, and a multimedia input device.
[0211] The encoding server compresses content input from a multimedia input device such as a smartphone, camera, camcorder, etc. into digital data to generate a bitstream and transmits the bitstream to the streaming server. As another example, if a multimedia input device such as a smartphone, camera, camcorder, etc. directly generates a bitstream, the encoding server may be omitted.
[0212] The bitstream may be generated by an encoding method or a bitstream generation method applied to an embodiment of this document, and the streaming server may temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0213] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server acts as a medium to inform the user of available services. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server transmits multimedia data to the user. In this case, the content streaming system may include a separate control server, and in this case, the control server controls commands / responses between devices in the content streaming system.
[0214] The streaming server may receive content from a media repository and / or an encoding server. For example, when the content is received from the encoding server, the content may be received in real time. In this case, the streaming server may store the bitstream for a certain period of time in order to provide a smooth streaming service.
[0215] Examples of the user devices include mobile phones, smart phones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation systems, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glass, head mounted displays (HMDs), digital TVs, desktop computers, and digital signage.
[0216] Each server in the content streaming system can be operated as a distributed server, in which case data received by each server can be processed in a distributed manner.
[0217] The claims described herein may be combined in various ways. For example, the technical features of the method claims herein may be combined and embodied in an apparatus, and the technical features of the apparatus claims herein may be combined and embodied in a method. Also, the technical features of the method claims herein and the technical features of the apparatus claims herein may be combined and embodied in an apparatus, and the technical features of the method claims herein and the technical features of the apparatus claims herein may be combined and embodied in a method.
Claims
1. An image decoding method performed by a decoding device, obtaining a Multiple Transform Selection (MTS) index and residual information from the bitstream; deriving transform coefficients for a current block based on the residual information; generating a residual sample of the current block based on the MTS index and the transform coefficients; Including, The MTS index represents a transformation kernel set to be applied to the current block among transformation kernel set candidates; the bins of the MTS index bin string are derived based on a context coding; the context coding is performed using a context model represented by a context index for each of the bins for the MTS index; the context index for each of the bins for the MTS index is derived as a sum of a context index increment value for each of the bins for the MTS index and a context index offset value for each of the bins for the MTS index; the bins for the MTS index include a first bin, a second bin, a third bin, and a fourth bin; the value of the context index increment for the first bin is fixed at 0; the value of the context index increment for the second bin is fixed at 1; the value of the context index increment for the third bin is fixed at 2; The method of claim 1, wherein the value of the context index increment for the fourth bin is fixed to 3.
2. An image encoding method performed by an encoding device, comprising: deriving a residual sample for a current block; deriving transform coefficients for the current block based on the residual samples; generating a multiple transform selection (MTS) index and residual information based on the transform coefficients; encoding image information including said MTS index and said residual information; Including, The MTS index represents a transformation kernel set to be applied to the current block among transformation kernel set candidates; the bins of the bin string of the MTS index are represented based on a context coding; the context coding is performed using a context model represented by a context index for each of the bins for the MTS index; the context index for each of the bins for the MTS index is derived as a sum of a context index increment value for each of the bins for the MTS index and a context index offset value for each of the bins for the MTS index; the bins for the MTS index include a first bin, a second bin, a third bin, and a fourth bin; the value of the context index increment for the first bin is fixed at 0; the value of the context index increment for the second bin is fixed at 1; the value of the context index increment for the third bin is fixed at 2; A method for encoding an image, wherein the value of the context index increment for the fourth bin is fixed to 3.
3. 1. A method for transmitting data for an image, comprising: obtaining a bitstream for the image, the bitstream comprising: deriving a residual sample for a current block; deriving transform coefficients for the current block based on the residual samples; generating a multiple transform selection (MTS) index and residual information based on the transform coefficients; encoding image information including the MTS index and the residual information; transmitting the data including the bitstream; Including, The MTS index represents a transformation kernel set to be applied to the current block among transformation kernel set candidates; the bins of the bin string of the MTS index are represented based on a context coding; the context coding is performed using a context model represented by a context index for each of the bins for the MTS index; the context index for each of the bins for the MTS index is derived as a sum of a context index increment value for each of the bins for the MTS index and a context index offset value for each of the bins for the MTS index; the bins for the MTS index include a first bin, a second bin, a third bin, and a fourth bin; the value of the context index increment for the first bin is fixed at 0; the value of the context index increment for the second bin is fixed at 1; the value of the context index increment for the third bin is fixed at 2; A method of transmitting, wherein the value of the context index increment for the fourth bin is fixed to 3.
Citation Information
Patent Citations
Video encoding device and video decoding device
JP2020053924A
Binarizing secondary transform index
WO2017192705A1