Image encoding / decoding method and apparatus performing deblocking filtering by determining boundary strength, and method of transmitting bitstream
By determining the boundary intensity and performing deblocking filtering in the image encoding/decoding device, the problems of low efficiency and high cost in the high-resolution and high-quality image encoding/decoding process are solved, and more efficient image transmission and storage are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
- Filing Date
- 2021-03-17
- Publication Date
- 2026-04-21
AI Technical Summary
Existing technologies suffer from low encoding/decoding efficiency and poor deblocking filtering effects in the encoding/decoding process of high-resolution and high-quality images, and also have high transmission and storage costs.
Deblocking filtering is performed by determining the boundary strength. Specifically, this involves determining the boundary strength based on joint CbCr residual coding and transform block boundaries, and utilizing the processors and memory in the image decoding and encoding devices to perform the boundary strength determination and deblocking filtering operations.
It improves the efficiency of image encoding/decoding, achieves more effective deblocking filtering, and reduces transmission and storage costs.
Smart Images

Figure CN119893142B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to image encoding / decoding methods and apparatus, and more specifically, to image encoding / decoding methods and apparatus for performing deblocking filtering by determining boundary strengths, and to a method for transmitting a bitstream generated by the image encoding methods / apparatus of this disclosure. Background Technology
[0002] Recently, there has been an increasing demand for high-resolution and high-quality images, such as high-definition (HD) and ultra-high-definition (UHD) images, across various fields. As the resolution and quality of image data increase, the amount of information or bits transmitted relatively increases compared to existing image data. This increase in the amount of information or bits transmitted leads to increased transmission and storage costs.
[0003] Therefore, efficient image compression techniques are needed to effectively transmit, store, and reproduce information about high-resolution and high-quality images. Summary of the Invention
[0004] Technical issues
[0005] The purpose of this disclosure is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0006] Another object of this disclosure is to provide an image encoding / decoding method and apparatus for performing deblocking filtering.
[0007] Another object of this disclosure is to provide an image encoding / decoding method and apparatus for determining the boundary strength of deblocking filtering in order to perform deblocking filtering.
[0008] Another object of this disclosure is to provide a method for transmitting a bitstream generated by an image encoding method or device according to this disclosure.
[0009] Another object of this disclosure is to provide a recording medium for storing bitstreams generated by an image encoding method or apparatus according to this disclosure.
[0010] Another object of this disclosure is to provide a recording medium that stores a bitstream received, decoded and used to reconstruct an image by an image decoding device according to this disclosure.
[0011] The technical problems solved by this disclosure are not limited to those described above. Other technical problems not described herein will become clear to those skilled in the art through the following description.
[0012] Technical solution
[0013] An image decoding method according to one aspect of this disclosure is performed by an image decoding device. The image decoding method includes: obtaining a reconstructed image; determining a target boundary for deblocking filtering in the reconstructed image; determining the boundary strength of the target boundary; and applying deblocking filtering to the target boundary based on the boundary strength. Since the target boundary is a transform block boundary and the color components of the reconstructed image are chrominance components, the boundary strength can be determined based on whether joint CbCr residual encoding is performed on at least one of two blocks adjacent to the target boundary, and the joint CbCr residual encoding can correspond to encoding residual samples of the chrominance Cb components and chrominance Cr components into a single transform block.
[0014] In the image decoding method according to this disclosure, it is determined whether joint CbCr residual coding can be performed on the block adjacent to the target boundary based on a first flag that signals to neighboring blocks.
[0015] In the image decoding method according to this disclosure, based on the fact that the target boundary is a transform block boundary and the color components of the reconstructed image are chromaticity components, the boundary strength can also be determined based on whether at least one of the two blocks adjacent to the target boundary includes a non-zero transform coefficient level.
[0016] In the image decoding method according to this disclosure, it can be determined whether a block adjacent to the target boundary includes at least one non-zero transform coefficient level based on a second flag that signals to neighboring blocks.
[0017] In the image decoding method according to this disclosure, since the target boundary is a transform block boundary and the color components of the reconstructed image are chromaticity components, the boundary strength can be determined based on the sum of two first flags and two second flags of two blocks adjacent to the target boundary.
[0018] In the image decoding method according to this disclosure, the boundary strength can be determined to be 1 based on the fact that the sum is greater than 0.
[0019] In the image decoding method according to this disclosure, since the target boundary is a transform block boundary and the color component of the reconstructed image is a luminance component, the boundary strength can be determined based on whether at least one of the two blocks adjacent to the target boundary includes a non-zero transform coefficient level.
[0020] An image decoding apparatus according to another embodiment of this disclosure may include a memory and at least one processor. The at least one processor may obtain a reconstructed image, determine a target boundary for deblocking filtering in the reconstructed image, determine the boundary strength of the target boundary, and apply deblocking filtering to the target boundary based on the boundary strength. Since the target boundary is a transform block boundary and the color components of the reconstructed image are chrominance components, the boundary strength may be determined based on whether joint CbCr residual encoding is performed on at least one of two blocks adjacent to the target boundary, and the joint CbCr residual encoding may correspond to encoding residual samples of the chrominance Cb components and chrominance Cr components into a single transform block.
[0021] An image coding method according to another aspect of this disclosure may include the following steps: generating a reconstructed image, determining a target boundary for deblocking filtering in the reconstructed image, determining the boundary strength of the target boundary, and applying deblocking filtering to the target boundary based on the boundary strength. Since the target boundary is a transform block boundary and the color components of the reconstructed image are chrominance components, the boundary strength may be determined based on whether joint CbCr residual coding is performed on at least one of two blocks adjacent to the target boundary, and the joint CbCr residual coding may correspond to encoding residual samples of the chrominance Cb components and chrominance Cr components into a single transform block.
[0022] In the image encoding method according to this disclosure, it is determined whether joint CbCr residual encoding can be performed on the block adjacent to the target boundary based on a first flag that signals to neighboring blocks.
[0023] In the image coding method according to this disclosure, based on the fact that the target boundary is a transform block boundary and the color components of the reconstructed image are chroma components, the boundary strength can also be determined based on whether at least one of the two blocks adjacent to the target boundary includes a non-zero transform coefficient level.
[0024] In the image encoding method according to this disclosure, it can be determined whether a block adjacent to the target boundary includes at least one non-zero transform coefficient level based on a second flag that signals neighboring blocks.
[0025] In the image coding method according to this disclosure, since the target boundary is a transform block boundary and the color components of the reconstructed image are chroma components, the boundary strength can be determined based on the sum of two first flags and two second flags of two blocks adjacent to the target boundary.
[0026] In the image encoding method according to this disclosure, the boundary strength can be determined to be 1 based on the fact that the sum is greater than 0.
[0027] According to another aspect of the transmission method of this disclosure, a bit stream generated by the image encoding device or image encoding method of this disclosure can be transmitted.
[0028] According to another aspect of this disclosure, a computer-readable recording medium may store a bitstream generated by the image encoding device or image encoding method of this disclosure.
[0029] The features briefly summarized above are merely exemplary aspects of the following detailed description of the present disclosure and do not limit the scope of the disclosure.
[0030] Beneficial effects
[0031] According to this disclosure, an image encoding / decoding method and apparatus with improved encoding / decoding efficiency can be provided.
[0032] According to this disclosure, an image encoding / decoding method and apparatus for performing deblocking filtering can be provided.
[0033] According to this disclosure, an image encoding / decoding method and apparatus for determining the boundary strength of deblocking filtering in order to perform deblocking filtering can be provided.
[0034] Furthermore, according to this disclosure, a method for transmitting a bitstream generated by an image encoding method or device according to this disclosure can be provided.
[0035] Furthermore, according to this disclosure, it is possible to provide a recording medium for storing a bitstream generated by an image encoding method or apparatus according to this disclosure.
[0036] Furthermore, according to this disclosure, a recording medium can be provided that stores a bitstream received, decoded, and used to reconstruct an image by an image decoding device according to this disclosure.
[0037] Those skilled in the art will understand that the effects achievable through this disclosure are not limited to those specifically described above, and that other advantages of this disclosure will become clearer from the detailed description. Attached Figure Description
[0038] Figure 1 This is a schematic view illustrating a video encoding system according to an embodiment of the present disclosure.
[0039] Figure 2 This is a schematic view of an image encoding device according to an embodiment of the present disclosure.
[0040] Figure 3 This is a schematic view of an image decoding device according to an embodiment of the present disclosure.
[0041] Figure 4This is a schematic flowchart illustrating the image decoding process to which embodiments of the present disclosure can be applied.
[0042] Figure 5 This is a schematic flowchart of an image encoding process to which embodiments of the present disclosure can be applied.
[0043] Figure 6 This is a flowchart illustrating a deblocking filter according to the present disclosure.
[0044] Figure 7 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to an embodiment of the present disclosure.
[0045] Figure 8 This is a view showing the signaling of syntax elements in a transform block related to embodiments of this disclosure.
[0046] Figure 9 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to another embodiment of the present disclosure.
[0047] Figure 10 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to another embodiment of the present disclosure.
[0048] Figure 11 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to another embodiment of the present disclosure.
[0049] Figure 12 This is a flowchart illustrating the encoding process based on deblocking filtering according to the present disclosure.
[0050] Figure 13 This is a flowchart illustrating the decoding process based on deblocking filtering according to the present disclosure.
[0051] Figure 14 This is a view showing two blocks and samples adjacent to the target boundary of the deblocking filter according to an embodiment of the present disclosure.
[0052] Figure 15 This is a view illustrating a content streaming system to which embodiments of the present disclosure can be applied. Detailed Implementation
[0053] In the following, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings to enable those skilled in the art to readily implement them. However, the present disclosure can be implemented in various different forms and is not limited to the embodiments described herein.
[0054] In describing this disclosure, detailed descriptions of known functions or constructions will be omitted where such detailed descriptions would unnecessarily obscure the scope of the disclosure. In the accompanying drawings, portions irrelevant to the description of this disclosure are omitted, and similar reference numerals are used for similar portions.
[0055] In this disclosure, when a component is "connected," "linked," or "coupled" to another component, it may include not only direct connections but also indirect connections where intermediate components exist. Furthermore, when a component "comprises" or "has" other components, unless otherwise stated, it means that other components may be included, not excluded.
[0056] In this disclosure, the terms first, second, etc., are used only for the purpose of distinguishing one component from other components and do not limit the order or importance of the components, unless otherwise stated. Accordingly, within the scope of this disclosure, a first component in one embodiment may be referred to as a second component in another embodiment, and similarly, a second component in one embodiment may be referred to as a first component in another embodiment.
[0057] In this disclosure, the components are distinguished from each other to clearly describe each feature, but this does not mean that the components must be separate. That is, multiple components may be integrated into a single hardware or software unit, or a single component may be distributed and implemented across multiple hardware or software units. Therefore, unless otherwise specified, implementations of these integrated or distributed components are included within the scope of this disclosure.
[0058] In this disclosure, the components described in the various embodiments are not necessarily essential components, and some components may be optional. Therefore, embodiments consisting of a subset of the components described in the embodiments are also included within the scope of this disclosure. Furthermore, embodiments that include other components besides those described in the various embodiments are also included within the scope of this disclosure.
[0059] This disclosure relates to the encoding and decoding of images. Unless redefined in this disclosure, the terms used herein may have the general meaning commonly used in the art to which this disclosure pertains.
[0060] In this disclosure, "picture" generally refers to a unit representing an image within a specific time period, while a slice / tile / subpicture is a coding unit that constitutes part of a picture. A picture can be composed of one or more slices / tiles / subpictures. Furthermore, a slice / tile / subpicture may include one or more coding tree units (CTUs).
[0061] In this disclosure, "pixel" or "pixel" can refer to the smallest unit that constitutes a frame (or image). Furthermore, "sample" can be used as a term corresponding to a pixel. A sample can generally represent a pixel or a pixel value, or it can represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chrominance component.
[0062] In this disclosure, "unit" can refer to a basic unit of image processing. A unit may include at least one of a specific region of a picture and information associated with that region. In some cases, the term "unit" may be used interchangeably with terms such as "sample array," "block," or "region." Generally, an M×N block may include a set (or array) of samples (or transform coefficients) with M columns and N rows.
[0063] In this disclosure, "current block" can mean one of "current coding block," "current coding unit," "coding target block," "decoding target block," or "processing target block." When performing prediction, "current block" can mean "current prediction block" or "prediction target block." When performing transform (inverse transform) / quantization (dequantization), "current block" can mean "current transform block" or "transform target block." When performing filtering, "current block" can mean "filter target block."
[0064] Additionally, in this disclosure, unless explicitly stated as a chroma block, "current block" may refer to "the luminance block of the current block". "The chroma block of the current block" can be expressed by an explicit description of a chroma block, such as "chroma block" or "current chroma block".
[0065] In this disclosure, the terms “ / ” or “,” can be interpreted as indicating “and / or”. For example, “A / B” and “A, B” can mean “A and / or B”. Furthermore, “A / B / C” and “A / B / C” can mean “at least one of A, B and / or C”.
[0066] In this disclosure, the term "or" should be interpreted to indicate "and / or". For example, the expression "A or B" can include 1) only "A", 2) only "B", or 3) both "A and B". In other words, in this disclosure, "or" should be interpreted to indicate "additionally or alternatively".
[0067] Overview of Video Encoding Systems
[0068] Figure 1 This is a schematic view of a video encoding system according to the present disclosure.
[0069] The video encoding system according to the embodiment may include an encoding device 10 and a decoding device 20. The encoding device 10 may deliver encoded video and / or image information or data to the decoding device 20 in the form of a file or stream via a digital storage medium or network.
[0070] The encoding device 10 according to an embodiment may include a video source generator 11, an encoding unit 12, and a transmitter 13. The decoding device 20 according to an embodiment may include a receiver 21, a decoding unit 22, and a renderer 23. The encoding unit 12 may be referred to as a video / image encoding unit, and the decoding unit 22 may be referred to as a video / image decoding unit. The transmitter 13 may be included in the encoding unit 12. The receiver 21 may be included in the decoding unit 22. The renderer 23 may include a display, and the display may be configured as a separate device or an external component.
[0071] The video source generator 11 can acquire video / images through a process of capturing, compositing, or generating video / images. The video source generator 11 may include a video / image capture device and / or a video / image generation device. The video / image capture device may include, for example, one or more cameras, a video / image archive including previously captured video / images, etc. The video / image generation device may include, for example, a computer, tablet computer, and smartphone, and can generate video / images (electronically). For example, virtual video / images can be generated by a computer, etc. In this case, the video / image capture process can be replaced by a process of generating related data.
[0072] The encoding unit 12 can encode the input video / image. For compression and encoding efficiency, the encoding unit 12 can perform a series of processes, such as prediction, transformation, and quantization. The encoding unit 12 can output encoded data (encoded video / image information) in the form of a bitstream.
[0073] Transmitter 13 can transmit encoded video / image information or data, output in bitstream form, to receiver 21 of decoding device 20 in the form of a file or stream via digital storage medium or network. Digital storage medium can include various storage media, such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. Transmitter 13 can include elements for generating media files according to a predetermined file format and may include elements for transmission via broadcast / communication networks. Receiver 21 can extract / receive bitstreams from storage medium or network and transmit the bitstreams to decoding unit 22.
[0074] The decoding unit 22 can decode video / images by performing a series of processes corresponding to the operations of the encoding unit 12, such as dequantization, inverse transform, and prediction.
[0075] Renderer 23 can render decoded video / images. The rendered video / images can be displayed on a monitor.
[0076] Overview of Image Encoding Devices
[0077] Figure 2 This is a schematic view illustrating an image encoding device to which embodiments of this disclosure may be applied.
[0078] like Figure 2 As shown, the image encoding device 100 may include an image segmenter 110, a subtractor 115, a transformer 120, a quantizer 130, a dequantizer 140, an inverse transformer 150, an adder 155, a filter 160, a memory 170, an inter-frame prediction unit 180, an intra-frame prediction unit 185, and an entropy encoder 190. The inter-frame prediction unit 180 and the intra-frame prediction unit 185 may be collectively referred to as "prediction units". The transformer 120, quantizer 130, dequantizer 140, and inverse transformer 150 may be included in a residual processor. The residual processor may also include a subtractor 115.
[0079] In some implementations, all or at least some of the components configuring the image encoding device 100 may be configured by a single hardware component (e.g., an encoder or a processor). Furthermore, the memory 170 may include a decoded screen buffer (DPB) and may be configured by a digital storage medium.
[0080] Image segmenter 110 can segment an input image (or picture or frame) input to image encoding device 100 into one or more processing units. For example, a processing unit may be called an encoding unit (CU). Encoding units can be obtained by recursively segmenting encoding tree units (CTUs) or maximum encoding units (LCUs) according to a quadtree / binary tree / tritree (QT / BT / TT) structure. For example, an encoding unit can be segmented into multiple encoding units of greater depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. For the segmentation of encoding units, a quadtree structure can be applied first, followed by a binary tree structure and / or a ternary tree structure. The encoding process according to this disclosure can be performed based on the final encoding unit that is no longer segmented. The maximum encoding unit can be used as the final encoding unit, or a deeper encoding unit obtained by segmenting the maximum encoding unit can be used as the final encoding unit. Here, the encoding process may include prediction, transformation, and reconstruction processes, which will be described later. As another example, the processing unit of the encoding process may be a prediction unit (PU) or a transformation unit (TU). Prediction units and transform units can be partitioned or segmented from the final coding unit. Prediction units can be sample prediction units, and transform units can be units used to derive transform coefficients and / or units used to derive residual signals from transform coefficients.
[0081] The prediction unit (inter-frame prediction unit 180 or intra-frame prediction unit 185) can perform prediction on the block to be processed (the current block) and generate a prediction block that includes prediction samples of the current block. The prediction unit can determine whether to apply intra-frame prediction or inter-frame prediction based on the current block or CU. The prediction unit can generate various information related to the prediction of the current block and transmit the generated information to the entropy encoder 190. The information about the prediction can be encoded in the entropy encoder 190 and output as a bitstream.
[0082] Intra-prediction unit 185 can predict the current block by referencing samples in the current frame. Depending on the intra-prediction mode and / or intra-prediction technique, the reference samples may be located among the neighbors of the current block or may be placed separately. Intra-prediction modes may include multiple non-directional modes and multiple directional modes. Non-directional modes may include, for example, DC mode and planar mode. Depending on the level of detail in the prediction direction, directional modes may include, for example, 33 or 65 directional prediction modes. However, this is merely an example, and more or fewer directional prediction modes may be used depending on the settings. Intra-prediction unit 185 can determine the prediction mode to be applied to the current block by using prediction modes applied to neighboring blocks.
[0083] The inter-frame prediction unit 180 can deduce the prediction block of the current block based on a reference block (reference sample array) specified by motion vectors on a reference frame. In this case, to reduce the amount of motion information transmitted in the inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation of motion information between neighboring blocks and the current block. Motion information may include motion vectors and reference frame indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current frame and temporally neighboring blocks existing in the reference frame. The reference frame including the reference block and the reference frame including the temporally neighboring block may be the same or different. The temporally neighboring block may be referred to as a juxtaposed reference block, a juxtaposed CU (colCU), etc. The reference frame including the temporally neighboring block may be referred to as a juxtaposed frame (colPic). For example, the inter-frame prediction unit 180 can configure a motion information candidate list based on neighboring blocks and generate information indicating which candidate to use to deduce the motion vector and / or reference frame index of the current block. Inter-frame prediction can be performed based on various prediction modes. For example, in skip mode and merge mode, the inter-frame prediction unit 180 can use motion information from neighboring blocks as motion information for the current block. In skip mode, unlike merge mode, residual signals may not be transmitted. In motion vector prediction (MVP) mode, motion vectors from neighboring blocks can be used as motion vector predictors, and the motion vector of the current block can be signaled by encoding motion vector differences and indicators of the motion vector predictors. The motion vector difference can refer to the difference between the motion vector of the current block and the motion vector predictor.
[0084] The prediction unit can generate a prediction signal based on various prediction methods and techniques described below. For example, the prediction unit can apply not only intra-frame prediction or inter-frame prediction, but also both intra-frame prediction and inter-frame prediction simultaneously to predict the current block. A prediction method that simultaneously applies both intra-frame prediction and inter-frame prediction to predict the current block can be called Combined Intra-Frame and Inter-Frame Prediction (CIIP). Furthermore, the prediction unit can perform Intra-Frame Block Copy (IBC) to predict the current block. Intra-Frame Block Copy can be used for content image / video coding in games, for example, Screen Content Coding (SCC). IBC is a method of predicting the current frame using a previously reconstructed reference block in the current frame at a predetermined distance from the current block. When IBC is applied, the position of the reference block in the current frame can be encoded as a vector (block vector) corresponding to the predetermined distance. In IBC, prediction is essentially performed in the current frame, but it can be performed similarly to inter-frame prediction because the reference block is derived within the current frame. That is, IBC can use at least one of the inter-frame prediction techniques described in this disclosure.
[0085] The prediction signal generated by the prediction unit can be used to generate a reconstructed signal or a residual signal. Subtractor 115 can generate a residual signal (residual block or residual sample array) by subtracting the prediction signal (prediction block or prediction sample array) output from the prediction unit from the input image signal (original block or original sample array). The generated residual signal can be transmitted to converter 120.
[0086] Transformer 120 can generate transform coefficients by applying transform techniques to the residual signal. For example, the transform techniques may include at least one of Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Karhunen-Loève Transform (KLT), Graph-Based Transform (GBT), or Conditional Nonlinear Transform (CNT). Here, GBT refers to a transform obtained from a graph when the relationship information between pixels is represented graphically. CNT refers to a transform obtained based on a prediction signal generated using all previously reconstructed pixels. Furthermore, the transform processing can be applied to square pixel blocks of the same size or to blocks of variable size instead of square.
[0087] Quantizer 130 quantizes the transform coefficients and transmits them to entropy encoder 190. Entropy encoder 190 encodes the quantized signal (information about the quantized transform coefficients) and outputs a bitstream. The information about the quantized transform coefficients can be referred to as residual information. Quantizer 130 can rearrange the block-form quantized transform coefficients into a one-dimensional vector form based on the coefficient scan order, and generate information about the quantized transform coefficients based on the one-dimensional vector form of the quantized transform coefficients.
[0088] The entropy encoder 190 can perform various encoding methods, such as exponential Columbus coding, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 190 can encode, either together or separately, the information required for video / image reconstruction other than the quantization transform coefficients (e.g., values of syntax elements). The encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form at the Network Abstraction Layer (NAL) level. The video / image information may also include information about various parameter sets, such as Adaptive Parameter Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), or Video Parameter Set (VPS). Furthermore, the video / image information may also include general constraint information. The signaling notification information, transmitted information, and / or syntax elements described in this disclosure can be encoded and included in the bitstream through the above encoding process.
[0089] The bitstream can be transmitted over a network or stored in a digital storage medium. The network may include broadcast networks and / or communication networks, and the digital storage medium may include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, and SSD. A transmitter (not shown) for transmitting the signal output from the entropy encoder 190 and / or a storage unit (not shown) for storing the signal may be included as internal / external components of the image encoding device 100. Alternatively, a transmitter may be provided as a component of the entropy encoder 190.
[0090] The quantization transform coefficients output from quantizer 130 can be used to generate residual signals. For example, the residual signals (residual blocks or residual samples) can be reconstructed by applying dequantization and inverse transform to the quantization transform coefficients through dequantizer 140 and inverse transformer 150.
[0091] Adder 155 adds the reconstructed residual signal to the prediction signal output from inter-frame prediction unit 180 or intra-frame prediction unit 185 to generate a reconstructed signal (reconstructed frame, reconstructed block, reconstructed sample array). If the block to be processed has no residual, such as when a skip mode is applied, the prediction block can be used as a reconstructed block. Adder 155 can be referred to as a reconstructor or reconstructed block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current frame, and can also be used for inter-frame prediction of the next frame through filtering as described below.
[0092] Filter 160 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 160 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 170, specifically in the DPB of memory 170. Various filtering methods can include, for example, deblocking filtering, sample adaptive offsetting, adaptive loop filtering, bilateral filtering, etc. Filter 160 can generate various filtering-related information and transmit the generated information to entropy encoder 190, as described later in the description of each filtering method. The filtering-related information can be encoded by entropy encoder 190 and output as a bitstream.
[0093] The modified reconstructed frame transmitted to memory 170 can be used as a reference frame in inter-frame prediction unit 180. When inter-frame prediction is applied by image encoding device 100, prediction mismatch between image encoding device 100 and image decoding device can be avoided and coding efficiency can be improved.
[0094] The DPB of memory 170 can store modified reconstructed frames for use as reference frames in inter-frame prediction unit 180. Memory 170 can store motion information of blocks from which motion information in the current frame is derived (or encoded) and / or motion information of already reconstructed blocks in the frame. The stored motion information can be transmitted to inter-frame prediction unit 180 and used as motion information for spatially or temporally neighboring blocks. Memory 170 can store reconstructed samples of reconstructed blocks in the current frame and can transmit the reconstructed samples to intra-frame prediction unit 185.
[0095] Overview of image decoding devices
[0096] Figure 3 This is a schematic view illustrating an image decoding device to which embodiments of the present disclosure may be applied.
[0097] like Figure 3 As shown, the image decoding device 200 may include an entropy decoder 210, a dequantizer 220, an inverse transformer 230, an adder 235, a filter 240, a memory 250, an inter-frame prediction unit 260, and an intra-frame prediction unit 265. The inter-frame prediction unit 260 and the intra-frame prediction unit 265 may be collectively referred to as "prediction units". The dequantizer 220 and the inverse transformer 230 may be included in a residual processor.
[0098] According to an implementation, all or at least some of the components of the image decoding device 200 can be configured by hardware components (e.g., a decoder or a processor). Furthermore, the memory 250 may include a decoded screen buffer (DPB) or may be configured by a digital storage medium.
[0099] The image decoding device 200, having received a bitstream including video / image information, can perform operations related to... Figure 2 The image is reconstructed by processing corresponding to the processing performed by the image encoding device 100. For example, the image decoding device 200 can perform decoding using a processing unit applied in the image encoding device. Therefore, the decoding processing unit can be, for example, an encoding unit. The encoding unit can be obtained by segmenting a coding tree unit or a maximum coding unit. The reconstructed image signal decoded and output by the image decoding device 200 can be reproduced by a reproduction device (not shown).
[0100] Image decoding device 200 can receive data in bitstream form from... Figure 2The signal output by the image encoding device. The received signal can be decoded by the entropy decoder 210. For example, the entropy decoder 210 can parse the bitstream to derive the information (e.g., video / image information) required for image reconstruction (or picture reconstruction). The video / image information may also include information about various parameter sets, such as adaptive parameter sets (APS), picture parameter sets (PPS), sequence parameter sets (SPS), or video parameter sets (VPS). In addition, the video / image information may also include general constraint information. The image decoding device can also decode the picture based on the information about the parameter sets and / or general constraint information. The signaling / receiving information and / or syntax elements described in this disclosure can be decoded and obtained from the bitstream through the decoding process. For example, the entropy decoder 210 decodes the information in the bitstream based on encoding methods such as exponential Golomb coding, CAVLC, or CABAC, and outputs the values of the syntax elements required for image reconstruction and the quantized values of the transform coefficients of the residuals. More specifically, the CABAC entropy decoding method can receive bins corresponding to each syntax element in the bitstream, determine the context model using information about the target syntax element, decoding information of neighboring blocks and the target block, or information about symbols / bins decoded in the previous stage, perform arithmetic decoding on the bins based on the determined context model by predicting the occurrence probability of the bins, and generate symbols corresponding to the value of each syntax element. In this case, the CABAC entropy decoding method can update the context model after determining the context model by using the information of the decoded symbols / bins for the context model of the next symbol / bin. The prediction-related information in the information decoded by the entropy decoder 210 can be provided to the prediction units (inter-frame prediction unit 260 and intra-frame prediction unit 265), and the residual value of entropy decoding performed in the entropy decoder 210, i.e., the quantization transform coefficients and related parameter information, can be input to the dequantizer 220. In addition, the filtering information in the information decoded by the entropy decoder 210 can be provided to the filter 240. Furthermore, the receiver (not shown) for receiving signals output from the image encoding device may be further configured as an internal / external element of the image decoding device 200, or the receiver may be a component of the entropy decoder 210.
[0101] Furthermore, the image decoding apparatus according to this disclosure can be referred to as a video / image / screen decoding apparatus. The image decoding apparatus can be divided into an information decoder (video / image / screen information decoder) and a sample decoder (video / image / screen sample decoder). The information decoder may include an entropy decoder 210. The sample decoder may include at least one of a dequantizer 220, an inverse transformer 230, an adder 235, a filter 240, a memory 250, an inter-frame prediction unit 260, or an intra-frame prediction unit 265.
[0102] Dequantizer 220 can dequantize the quantized transform coefficients and output transform coefficients. Dequantizer 220 can rearrange the quantized transform coefficients in the form of two-dimensional blocks. In this case, the rearrangement can be performed based on the coefficient scan order performed in the image encoding device. Dequantizer 220 can obtain transform coefficients by performing dequantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information).
[0103] The inverse transformer 230 can perform inverse transformation on the transformation coefficients to obtain the residual signal (residual block, residual sample array).
[0104] The prediction unit can perform prediction on the current block and generate a prediction block that includes prediction samples of the current block. The prediction unit can determine whether to apply intra-frame prediction or inter-frame prediction to the current block based on the prediction information output from the entropy decoder 210, and can determine a specific intra-frame / inter-frame prediction mode (prediction technique).
[0105] Similar to that described in the prediction unit of the image coding device 100, the prediction unit can generate a prediction signal based on various prediction methods (techniques) described later.
[0106] Intra-prediction unit 265 can predict the current block by referring to samples in the current frame. The description of intra-prediction unit 185 also applies to intra-prediction unit 265.
[0107] The inter-frame prediction unit 260 can deduce the prediction block of the current block based on a reference block (reference sample array) specified by a motion vector on a reference frame. In this case, to reduce the amount of motion information transmitted in the inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation of motion information between neighboring blocks and the current block. Motion information may include motion vectors and reference frame indices. Motion information may also include inter-frame prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter-frame prediction, neighboring blocks may include spatially neighboring blocks existing in the current frame and temporally neighboring blocks existing in the reference frame. For example, the inter-frame prediction unit 260 can configure a motion information candidate list based on neighboring blocks and deduce the motion vector and / or reference frame index of the current block based on the received candidate selection information. Inter-frame prediction can be performed based on various prediction modes, and the information about the prediction may include information indicating the inter-frame prediction mode of the current block.
[0108] Adder 235 generates a reconstruction signal (reconstructed frame, reconstruction block, reconstruction sample array) by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (including inter-frame prediction unit 260 and / or intra-frame prediction unit 265). The description of adder 155 also applies to adder 235. In cases where no residual exists for the block to be processed, such as when a skip mode is applied, the prediction block can be used as a reconstruction block. The description of adder 155 also applies to adder 235. Adder 235 may be referred to as a reconstructor or reconstruction block generator. The generated reconstruction signal can be used for intra-frame prediction of the next block to be processed in the current frame, and can be used for inter-frame prediction of the next frame after filtering as described below.
[0109] Filter 240 can improve the subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 240 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and store the modified reconstructed image in memory 250, specifically in the DPB of memory 250. Various filtering methods may include, for example, deblocking filtering, adaptive sample shifting, adaptive loop filtering, bilateral filtering, etc.
[0110] The (modified) reconstructed frame stored in the DPB of memory 250 can be used as a reference frame in inter-frame prediction unit 260. Memory 250 can store motion information of blocks from which motion information in the current frame is derived (or decoded) and / or motion information of already reconstructed blocks in the frame. The stored motion information can be transmitted to inter-frame prediction unit 260 to be used as motion information for spatially or temporally neighboring blocks. Memory 250 can store reconstructed samples of reconstructed blocks in the current frame and transmit the reconstructed samples to intra-frame prediction unit 265.
[0111] In this disclosure, the embodiments described in the filter 160, inter-frame prediction unit 180 and intra-frame prediction unit 185 of the image encoding device 100 can be equally or correspondingly applied to the filter 240, inter-frame prediction unit 260 and intra-frame prediction unit 265 of the image decoding device 200.
[0112] Overview of the image decoding / encoding process
[0113] In image / video coding, the frames constituting an image / video can be encoded / decoded according to a series of decoding sequences. A different frame order corresponding to the output order of the decoded frames can be set, and based on this, both forward and backward prediction can be performed during inter-frame prediction.
[0114] Figure 4This is a schematic flowchart illustrating the image decoding process to which embodiments of the present disclosure can be applied.
[0115] Figure 4 Each process shown can be derived from Figure 3 The image decoding device performs the following steps: For example, step S410 can be performed by the entropy decoder 210 of the image decoding device, step S420 can be performed by prediction units 260 and 265, step S430 can be performed by residual processors 220 and 230, step S440 can be performed by adder 235, and step S450 can be performed by filter 240. Step S410 may include the information decoding (parsing) process described in this disclosure, step S420 may include the inter-frame / intra-frame prediction process described in this disclosure, step S430 may include the residual processing process described in this disclosure, step S440 may include the block / frame reconstruction process described in this disclosure, and step S450 may include the in-loop filtering process described in this disclosure.
[0116] Reference Figure 4 The image decoding process can schematically include a process for obtaining video / image information from the bitstream (S410) (through decoding), an image (frame) reconstruction process (S420 to S440), and an intra-loop filtering process for reconstructing the image (frame) (S450). The image reconstruction process can be performed based on prediction samples obtained through inter-frame / intra-frame prediction (S420) and residual samples obtained through residual processing (S430) (dequantization and inverse transform of quantization transform coefficients). For the reconstructed frame generated by the image reconstruction process, a modified reconstructed frame can be generated through the intra-loop filtering process (S450). The modified reconstructed frame can be output as a decoded frame, stored in the memory of the image decoding device or the decoded frame buffer (DPB) 250, and used as a reference frame in the inter-frame prediction process when decoding later frames. In some cases, the intra-loop filtering process can be omitted. In this case, the reconstructed frame can be output as a decoded frame, stored in the DPB 250 or memory of the image decoding device, and used as a reference frame in the inter-frame prediction process when decoding later frames. The in-loop filtering process (S450) may include a deblocking filtering process, a sample adaptive offset (SAO) process, an adaptive loop filter (ALF) process, and / or a bidirectional filter process, some or all of which may be omitted as described above. Alternatively, one or more of the deblocking filtering process, the sample adaptive offset (SAO) process, the adaptive loop filter (ALF) process, and / or the bidirectional filter process may be applied sequentially, or all of them may be applied sequentially. For example, the SAO process may be performed after the deblocking filtering process has been applied to the reconstructed image. Alternatively, the ALF process may be performed after the deblocking filtering process has been applied to the reconstructed image. This can even be performed similarly in an image encoding device.
[0117] Figure 5 This is a schematic flowchart of an image encoding process to which embodiments of the present disclosure can be applied.
[0118] Figure 5 Each process shown can be derived from Figure 2 The image encoding device performs the following steps: For example, step S510 can be performed by prediction units 180 and 185 of the image encoding device, step S520 can be performed by residual processors 115, 120, and 130, and step S530 can be performed in entropy encoder 190. Step S510 may include the inter-frame / intra-frame prediction process described in this disclosure, step S520 may include the residual processing process described in this disclosure, and step S530 may include the information encoding process described in this disclosure.
[0119] Reference Figure 5 The image encoding process can schematically include not only the process of encoding and outputting information for image reconstruction (e.g., prediction information, residual information, segmentation information, etc.) in the form of a bitstream, but also the process of generating a reconstructed image of the current image and the process of applying in-loop filtering to the reconstructed image (optional). The image encoding device can derive (modified) residual samples from the quantized transform coefficients using dequantizer 140 and inverse transformer 150, and generate a reconstructed image based on the prediction samples and (modified) residual samples output in step S510. The reconstructed image generated in this way can be equal to the reconstructed image generated in the image decoding device. Similar to the image decoding device, the modified reconstructed image can be generated by an in-loop filtering process for reconstructing the image, and can be stored in the decoded image buffer (DPB) 170 or memory, and can be used as a reference image in the inter-frame prediction process when encoding later images. As mentioned above, in some cases, some or all of the in-loop filtering process can be omitted. When performing the in-loop filtering process, the filtering-related information (parameters) can be encoded in the entropy encoder 190 and output as a bit stream, and the image decoding device can perform the in-loop filtering process using the same method as the image encoding device based on the filtering-related information.
[0120] This in-loop filtering process reduces noise (e.g., blockiness and ringing) that occurs during video / image encoding and improves subjective / objective visual quality. Furthermore, by performing the in-loop filtering process in both the image encoding and decoding devices, the two devices can derive the same prediction results, increasing the reliability of image encoding and reducing the amount of data transmitted for image encoding.
[0121] As described above, the image (picture) reconstruction process can be performed not only in an image decoding device but also in an image encoding device. Reconstructed blocks can be generated based on intra-frame prediction / inter-frame prediction on a block-by-block basis, and a reconstructed picture including the reconstructed blocks can be generated. When the current picture / slice / patch group is an I-picture / slice / patch group, the blocks included in the current picture / slice / patch group can be reconstructed based solely on intra-frame prediction. On the other hand, when the current picture / slice / patch group is a P-picture / slice / patch group or a B-picture / slice / patch group, the blocks included in the current picture / slice / patch group can be reconstructed based on either intra-frame prediction or inter-frame prediction. In this case, inter-frame prediction can be applied to some blocks in the current picture / slice / patch group, and intra-frame prediction can be applied to the remaining blocks. The color components of the picture can include luminance components and chrominance components, and unless explicitly limited in this disclosure, the methods and implementations of this disclosure can be applied to both luminance and chrominance components.
[0122] Figure 6 This is a flowchart illustrating a deblocking filter according to the present disclosure. Figure 6 The deblocking filter shown can be considered the deblocking filter of the in-loop filter described above. Figure 6 The deblocking filter shown can be, for example, by... Figure 2 Filter 160 or Figure 3 The filter 240 is executed.
[0123] Deblocking filtering can correspond to filtering techniques used to remove distortion occurring at the boundaries between blocks in the reconstructed image. The target boundary can be derived from the reconstructed image through the deblocking filtering process (S610). Furthermore, the boundary strength of the derived target boundary can be determined (S620). Deblocking filtering for the target boundary can be performed based on the determined boundary strength (S630). The boundary strength can be determined based on the prediction modes of the two blocks adjacent to the target boundary, the difference in motion vectors, whether the reference image is the same, and / or the presence / absence of non-zero effective coefficients.
[0124] Deblocking filtering can be applied to reconstructed frames. Deblocking filtering can be performed in the same order as the decoding process for each CU (Cubic Encoder) of the reconstructed frame. First, vertical edges can be filtered (horizontal filtering). Then, horizontal edges can be filtered (vertical filtering). Deblocking filtering can be applied to all coded block (or sub-block) edges and transform block edges.
[0125] As described above, in-loop filtering can include SAO (Side Array Optimization). SAO can correspond to a method of compensating for the offset difference between the reconstructed image and the original image on a sample-by-sample basis. For example, SAO can be applied based on types such as frequency band offset or edge offset. Based on the SAO, samples can be classified into different categories according to each SAO type. An offset value can be added to each sample based on the classified category. The filtering information for SAO can include information about whether SAO is applied, SAO type information, and / or SAO offset value information. SAO can be applied to the reconstructed image after deblocking filtering is applied.
[0126] Additionally, in-loop filtering may include an ALF (Advanced Filtering Function). An ALF can correspond to a technique used to perform filtering on a sample-by-sample basis on the reconstructed frame according to the filter coefficients based on the filter shape. The encoding device can determine whether to apply an ALF, the ALF shape, and / or the ALF filter coefficients by comparing the reconstructed frame and the original frame. This can also be signaled to the decoding device. The filtering information for the ALF may include information on whether an ALF is applied, ALF filter shape information, and / or ALF filter coefficient information. An ALF can be applied to the reconstructed frame after deblocking filtering has been applied.
[0127] According to some embodiments of this disclosure, the boundary strength can be determined based on the conditions of two blocks adjacent to the target boundary. In this disclosure, boundary strength and boundary filtering strength can be used interchangeably.
[0128] Figure 14 This is a view showing two blocks and samples adjacent to the target boundary of the deblocking filter according to an embodiment of the present disclosure.
[0129] exist Figure 14 In the diagram, the boundary represented by the thick solid line can be the target boundary for deblocking filtering.
[0130] like Figure 14 As shown, when the target boundary is a vertical boundary, the left block can be defined as a P block and the right block can be defined as a Q block based on the target boundary. Conversely, when the target boundary is a horizontal boundary, the top block can be defined as a P block and the bottom block can be defined as a Q block based on the target boundary.
[0131] In this disclosure, samples in block P can be generated by p n This indicates that the samples in the Q block can be represented by q. n This means that p n and q nThis can be a sample facing the boundary (target boundary) between blocks P and Q. In this case, n can be an integer greater than or equal to 0 and can represent the distance from the target boundary. p0 can be a sample in block P immediately adjacent to the target boundary, and q0 can represent a sample in block Q immediately adjacent to the target boundary. For example, p0 can be a sample from the left or top block adjacent to the target boundary, and q0 can be a sample from the right or bottom block adjacent to the target boundary. Alternatively, such as Figure 14 As shown, the samples in block P can be obtained from p n,m This indicates that the samples in the Q block can be represented by q. n,m In this case, n is an integer greater than or equal to 0 as described above, and can represent the distance from the target boundary. Additionally, m can be an index used to distinguish samples located at the same distance from the target boundary within a block (P block or Q block).
[0132] Furthermore, in the following description, the first, second, and third values of the boundary strength may represent 0, 1, and 2, respectively, but the scope of this disclosure is not limited by such definition.
[0133] Image encoding and decoding devices can perform deblocking filtering based on boundary strength. For example, when the boundary strength is a first value (e.g., 0), filtering may not be applied to the corresponding target boundary. Deblocking filtering can be applied based on filter strength (strong filter / weak filter) and / or filter length.
[0134] In this disclosure, deblocking filtering can be performed by obtaining information related to deblocking filtering from the bitstream. For example, the information related to deblocking filtering may include flags specifying whether deblocking filtering is available. Additionally, the information related to deblocking filtering may include information for deriving boundary strengths.
[0135] The deblocking filtering process can be performed independently based on the color components (luminance component (Y) and chrominance components (cb, cr)) of the reconstructed image. For example, the boundary intensity bS can be derived differently based on the color components (luminance component (Y) and chrominance components (cb, cr)). Additionally, for example, the target boundary can be derived independently based on the color components (luminance component (Y) and chrominance components (cb, cr)). In this disclosure, the color components can be specified by the component index cIdx. For example, when cIdx is 0, it can specify the luminance component. Furthermore, when cIdx is 1, it can specify the chrominance component cb, and when cIdx is 2, it can specify the chrominance component cr.
[0136] Figure 7 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to an embodiment of the present disclosure.
[0137] Reference Figure 7It can be determined whether the current block is a luminance component block (e.g., cIdx = 0) and whether both samples p0 and q0 are included in a coded block that has applied block-based quantization residual domain differential pulse code modulation (BDPCM) (e.g., intra_bdpcm_luma_flag = 1) (S710). When the above conditions are met (S710 is yes), the boundary strength of the corresponding target boundary can be determined as a first value (e.g., 0).
[0138] If the condition of step S710 is not met (S710 is no), step S720 can be determined. Specifically, it can be determined whether the current block is a chroma component block (e.g., cIdx>0) and whether both samples p0 and q0 are included in the coded block to which BDPCM is applied (e.g., intra_bdpcm_chroma_flag=1) (S720). When the above condition is met (S720 is yes), the boundary strength of the corresponding target boundary can be determined as a first value (e.g., 0).
[0139] If the condition of step S720 is not met (S720 is no), step S730 can be determined. Specifically, it can be determined that sample p0 or sample q0 is included in the coding block encoded in the intra-frame prediction mode (S730). If the above condition is met (S730 is yes), the boundary strength of the corresponding target boundary can be determined as a third value (e.g., 2).
[0140] If the condition of step S730 is not met (S730 is No), step S740 can be determined. Specifically, it can be determined whether the target boundary is the boundary of the coding block and whether sample p0 or sample q0 is included in the coding block to which combined inter-frame and intra-frame prediction (CIIP) has been applied (e.g., ciip_flag = 1) (S740). If the above condition is met (S740 is Yes), the boundary strength of the corresponding target boundary can be determined as a third value (e.g., 2).
[0141] If the condition of step S740 is not met (S740 is no), step S750 can be determined. Specifically, it can be determined whether the target boundary is the boundary of the transform block and whether sample p0 or sample q0 is included in the transform block having one or more non-zero transform coefficient levels (S750). If the above condition is met (S750 is yes), the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0142] If the condition of step S750 is not met (S750 is No), step S760 can be determined. Specifically, it can be determined whether the prediction mode of the coded sub-block containing sample p0 and the prediction mode of the coded sub-block containing sample q0 are different (S760). When the above condition is met (S760 is Yes), the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1). For example, when one of two coded sub-blocks located on both sides of the target boundary is encoded in IBC prediction mode and the other is encoded in inter-frame prediction mode, the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0143] When the conditions of step S760 are not met (S760 is No), step S770 can be determined. Specifically, in step S770, it can be determined whether the color component is a luminance component (e.g., cIdx = 0), whether the target boundary is the boundary of a sub-block (e.g., edgeFlags = 2), and whether at least one of the various other conditions described below is met (S770). In step S770, when the color component is a luminance component, the target boundary is the boundary of a sub-block, and at least one of the other conditions described below (conditions 1 to 5) is met (S770 is Yes), the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0144] -Condition 1: Encode both the coded sub-block containing sample p0 and the coded sub-block containing sample q0 using the IBC prediction mode, and the difference between the horizontal or vertical components of the block vector of each sub-block is greater than or equal to 8 units in units of 1 / 16 luminance sample.
[0145] - Condition 2: The coded subblock containing sample p0 and the coded subblock containing sample q0 reference different reference frames or have different numbers of motion vectors. In Condition 2, the similarity of reference frames is determined solely by considering whether the frames used for inter-frame prediction are the same, regardless of whether the corresponding reference frame belongs to reference frame list 0 or reference frame list 1. Furthermore, the similarity of the index values of the corresponding reference frames is not considered. Additionally, the number of motion vectors can be determined using the prediction direction flags (PredFlagL0, PredFlagL1). For example, the number of motion vectors can be derived as PredFlagL0 + PredFlagL1.
[0146] -Condition 3: Use a motion vector to predict the coded sub-block containing sample p0 and the coded sub-block containing sample q0, and the difference between the horizontal or vertical components of the motion vector of each sub-block can be greater than or equal to 8 units in units of 1 / 16 luminance sample.
[0147] -Condition 4: Use two motion vectors and two different reference frames to predict coded subblocks containing the same p0, and use two motion vectors and two identical reference frames to predict coded subblocks containing sample q0, and the difference between the horizontal or vertical components of the motion vectors of the same reference frame can be greater than or equal to 8 units in units of 1 / 16 luminance sample.
[0148] -Condition 5: Use two motion vectors from the same reference frame to predict the coded subblock containing sample p0, use two motion vectors from the same reference frame to predict the coded subblock containing sample q0, and satisfy the following two conditions (Condition 5-1 and Condition 5-2).
[0149] -Condition 5-1: The difference between the horizontal or vertical components of the motion vector in List 0 used to predict each coded sub-block can be greater than or equal to 8 units in units of 1 / 16 luminance samples, and the difference between the horizontal or vertical components of the motion vector in List 1 used to predict each coded sub-block can be greater than or equal to 8 units in units of 1 / 16 luminance samples.
[0150] -Condition 5-2: The difference between the horizontal or vertical components of the motion vector in List 0, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 0, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 0, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 0, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 0, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 0, which is used to predict the motion vector in List 1, which is used to predict the motion vector in List 2 ...
[0151] In conditions 1 to 5 above, the difference between the vertical (or horizontal) components of the motion vector can refer to the absolute value of the difference between the vertical (or horizontal) components of the motion vector.
[0152] When the condition of step S770 is not met (S770 is not), the boundary strength of the corresponding target boundary can be determined as the first value (e.g., 0).
[0153] Reference Figure 7 The method described for determining the boundary strength bS is exemplary, and the method for determining the boundary strength according to this disclosure is not limited to... Figure 7 The example shown. For example, it can be omitted. Figure 7 Some of the steps shown, and in addition to Figure 7 Steps other than those shown can be added. Figure 7 Any location in the flowchart. Additionally, Figure 7 Some of the steps shown can be performed simultaneously with other steps, or the order of the steps can be changed.
[0154] exist Figure 7 In the example shown, step S750 determines whether the two transform blocks adjacent to the target boundary include non-zero transform coefficient levels. Additionally, when the condition of step S750 is met, the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0155] However, when encoding the residual samples of two chromaticity components (e.g., Cb and Cr components) into a single transform block, the determination of the block boundary strength may be inaccurate, which is related to the determination in step S750. For example, in this disclosure, "joint CbCr residual coding" may refer to a technique for encoding the residual samples of two chromaticity components (e.g., Cb and Cr components) into a single transform block. Whether to apply joint CbCr residual coding to the current block can be determined based on information signaled via a bitstream (e.g., a flag). That is, the image encoding device can determine whether to perform joint CbCr residual coding on the current block and encode the flag information into a bitstream accordingly. Furthermore, the image decoding device can determine whether joint CbCr residual coding has been performed (or already performed) on the current block by parsing the flag information from the bitstream and reconstruct the current block accordingly. For example, in this disclosure, the flag information may be tu_joint_cbcr_residual_flag.
[0156] Figure 8 This is a view showing the signaling of syntax elements in a transform block related to embodiments of this disclosure.
[0157] exist Figure 8 In the example shown, `tu_cb_coded_flag[x][y]` can specify whether the transform block of the Cb component with coordinates (x, y) of the top-left sample (hereinafter referred to as the "Cb transform block") includes one or more non-zero transform coefficient levels. For example, a second value (e.g., 1) of `tu_cb_coded_flag` can specify that the Cb transform block includes one or more non-zero transform coefficient levels. Conversely, a first value (e.g., 0) of `tu_cb_coded_flag` can specify that the Cb transform block does not include one or more non-zero transform coefficient levels. When `tu_cb_coded_flag` is the first value, all transform coefficient levels in the Cb transform block can be set to 0. Additionally, if `tu_cb_coded_flag` is not present in the bitstream, its value can be inferred as the first value.
[0158] exist Figure 8In the example shown, `tu_cr_coded_flag[x][y]` can specify whether the transform block of the Cr component at coordinates (x, y) of the top-left sample (hereinafter referred to as the "Cr transform block") includes one or more non-zero transform coefficient levels. For example, a second value (e.g., 1) of `tu_cr_coded_flag` can specify that the Cr transform block contains one or more non-zero transform coefficient levels. Conversely, a first value (e.g., 0) of `tu_cr_coded_flag` can specify that the Cr transform block does not include one or more non-zero transform coefficient levels. When `tu_cr_coded_flag` is the first value, all transform coefficient levels in the Cr transform block can be set to 0. Additionally, if `tu_cr_coded_flag` is not present in the bitstream, its value can be inferred as the first value.
[0159] exist Figure 8 In the example shown, `tu_y_coded_flag[x][y]` can specify whether the transform block (hereinafter referred to as the "luminance transform block") of the luminance component with coordinates (x, y) of the top-left sample includes one or more non-zero transform coefficient levels. For example, a second value (e.g., 1) of `tu_y_coded_flag` can specify that the luminance transform block contains one or more non-zero transform coefficient levels. Alternatively, a first value (e.g., 0) of `tu_y_coded_flag` can specify that the luminance transform block does not include one or more non-zero transform coefficient levels. When `tu_y_coded_flag` is the first value, all transform coefficient levels in the luminance transform block can be set to 0. When `tu_y_coded_flag` is not present in the bitstream, its value can be inferred as the first or second value based on various other syntax elements and / or variables.
[0160] exist Figure 8In the example shown, `tu_joint_cbcr_residual_flag[x][y]` can specify whether the residual samples of the Cb component and the Cr component are encoded as a single transform block for a transform block with coordinates (x, y) of the top-left sample. For example, when `tu_joint_cbcr_residual_flag` is a second value (e.g., 1), the transform unit can include transform coefficient levels for a single transform block, and the residual samples of the Cb and Cr components can be derived from the single transform block. Alternatively, when `tu_joint_cbcr_residual_flag` is a first value (e.g., 0), the transform coefficient levels of the chrominance components can be encoded / decoded as specified by `tu_cb_coded_flag` and `tu_cr_coded_flag`. For example, when `tu_cb_coded_flag` is 1, the transform coefficient levels of the Cb transform block can be encoded / decoded, and when `tu_cb_coded_flag` is 0, the transform coefficient levels of the Cb transform block can be inferred as 0 without encoding / decoding. Similarly, when `tu_cr_coded_flag` is 1, the transform coefficient levels of the Cr transform block can be encoded / decoded, and when `tu_cr_coded_flag` is 0, the transform coefficient levels of the Cr transform block can be inferred as 0 without encoding / decoding. When `tu_joint_cbcr_residual_flag` is not present in the bitstream, its value can be inferred as the first value.
[0161] like Figure 8 As shown, the transmission of residual information (transform_skip_flag, residual_coding(), and / or residual_ts_coding()) for each color component (luminance (Y), chrominance (Cb and Cr)) can be determined based on various parameters and / or conditions. Figure 8 It is evident from the text that the signaling conditions for residual information are not limited to tu_y_coded_flag, tu_cb_coded_flag, and tu_cr_coded_flag. However, in this disclosure, only tu_y_coded_flag, tu_cb_coded_flag, tu_cr_coded_flag, and / or some conditions may be mentioned as signaling conditions for residual information. This is for ease of description, and the signaling conditions for residual information are not limited to these. That is, the signaling conditions for residual information may include... Figure 8 All or part of the signaling conditions shown, or may include Figure 8 Additional signaling conditions not shown in the diagram. Figure 8As shown, for example, when tu_y_coded_flag is 1, the residual information of the luminance transform block can be signaled. Similarly, the residual information of the Cb transform block and the Cr transform block can be signaled based on tu_cb_coded_flag and tu_cr_coded_flag.
[0162] However, as Figure 8 As shown, residual information for the Cr transformation block can be signaled only when the following conditions are met.
[0163] ! (tu_cb_coded_flag&&tu_joint_cbcr_residual_flag)
[0164] Based on the above conditions, when both `tu_cb_coded_flag` and `tu_joint_cbcr_residual_flag` are 1, no signal is sent to notify the residual information of the Cr transform block. In other words, when both `tu_cb_coded_flag` and `tu_joint_cbcr_residual_flag` are 1, even though `tu_cr_coded_flag` is 1, no signal is sent to notify the `transform_skip_flag` and residual syntax used for the Cr components. In this case, all transform coefficient levels in the Cr transform block can be derived to 0.
[0165] In the example above, when tu_cb_coded_flag is 1, the Cb transform block includes at least one non-zero transform coefficient level, and although tu_cr_coded_flag is 1, all transform coefficient levels in the Cr transform block can be derived to be 0. Therefore, based on the determination in step S750, the boundary strength of the target boundary of the Cb component can be derived to be 1, and the boundary strength of the target boundary of the Cr component can be derived to a value other than 1.
[0166] Therefore, by applying joint CbCr residual encoding, the following two problems may arise in the boundary strength determination process.
[0167] First, in step S750, even though tu_cr_coded_flag is 1, the boundary strength of the target boundary of the Cr component can be derived to a value other than 1.
[0168] Second, although tu_cr_coded_flag is 0, when tu_joint_cbcr_flag is 1, the Cr transform block can include one or more non-zero transform coefficient levels. However, in step S750, the boundary strength of the target boundary of the Cr component can also be derived to a value other than 1.
[0169] The following section will describe improvements made to the above-mentioned problems by considering the application of joint CbCr residual coding. Figure 7 Various implementation methods of the method.
[0170] Figure 9 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to another embodiment of the present disclosure.
[0171] Figure 9 In order to improve the reference Figure 7 The described method for determining boundary strength, Figure 7 Methods and Figure 9 The methods can be the same or overlap. In Figure 7 Methods and Figure 9 In this method, repeated descriptions of the same or overlapping steps can be omitted. For example, Figure 7 Steps S710 to S750 can respectively correspond to Figure 9 Steps S910 to S950. Additionally... Figure 7 Steps S760 to S770 can respectively correspond to Figure 9 Steps S970 to S980. Repeated descriptions of the corresponding steps will be omitted. Figure 7 Compared to the method, according to Figure 9 The method for determining the boundary strength also includes step S960.
[0172] Specifically, refer to Figure 9 If the condition of step S950 is not met (S950 is no), step S960 can be determined. More specifically, it can be determined whether the target boundary is the boundary of the transform block and whether it meets at least one of the two conditions described below (S960). When the above conditions are met (S960 is yes), the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0173] -Condition S960-1: The current block is a chroma Cb component block (e.g., cIdx = 1), and sample p0 or sample q0 is included in a transform block that has undergone joint CbCr residual coding (e.g., tu_joint_cbcr_residual_flag = 1).
[0174] -Condition S960-2: The current block is a chromaticity Cr component block (e.g., cIdx = 2), and sample p0 or sample q0 is included in a transform block that has undergone joint CbCr residual coding (e.g., tu_joint_cbcr_residual_flag = 1).
[0175] The above conditions S960-1 and S960-2 can be combined into one condition, for example, as follows.
[0176] -S960 merge condition: The current block is a chroma block (e.g., cIdx>0), and sample p0 or sample q0 is included in a transform block that has undergone joint CbCr residual coding (e.g., tu_joint_cbcr_residual_flag=1).
[0177] Reference Figure 9 The method described for determining the boundary strength bS is exemplary, and the method for determining the boundary strength according to this disclosure is not limited to... Figure 9 The example shown. For example, it can be omitted. Figure 9 Some of the steps shown, and in addition to Figure 9 Steps other than those shown can be added. Figure 9 Any location in the flowchart. Additionally, Figure 9 Some of the steps shown can be performed simultaneously with other steps, or the order of the steps can be changed.
[0178] For example, since tu_joint_cbcr_residual_flag can mean that at least one of tu_cu_coded_flag or tu_cr_coded_flag is 1, for Cb transform blocks or Cr transform blocks, the condition can be changed to omit the value based on... Figure 9 Step S950 in the method for determining boundary strength.
[0179] According to reference Figure 9 The described boundary strength determination method can solve the two problems mentioned above that may arise when applying joint CbCr residual coding. That is, when joint CbCr residual coding is applied, the boundary strength of the deblocking filter for the transform block boundary can be determined to be a non-zero value (e.g., 1).
[0180] Figure 10 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to another embodiment of the present disclosure.
[0181] Figure 10 In order to improve the reference Figure 7 The described method for determining boundary strength, Figure 7 Methods and Figure 10 The methods can be the same or overlap. In Figure 7 Methods and Figure 10 In this method, repeated descriptions of the same or overlapping steps can be omitted. For example, Figure 7 Steps S710 to S740 can respectively correspond to Figure 10 Steps S1010 to S1040. Additionally, Figure 7 Steps S760 to S770 can respectively correspond to Figure 10Steps S1060 to S1070. Repeated descriptions of the corresponding steps will be omitted. Figure 7 Compared to the method, according to Figure 10 The boundary strength determination method also includes step S1050 instead of step S750.
[0182] Specifically, refer to Figure 10 If the condition of step S1040 is not met (S1040 is no), step S1050 can be determined. Specifically, it can be determined whether the target boundary is the boundary of the transform block and whether it meets at least one of the three conditions described below (S1050). When the above conditions are met (S1050 is yes), the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0183] - Condition S1050-1: The current block is a luminance component block (e.g., cIdx = 0), and sample p0 or sample q0 is included in a luminance transform block (e.g., tu_y_coded_flag = 1) that includes one or more non-zero transform coefficient levels.
[0184] - Condition S1050-2: The current block is a chroma Cb component block (e.g., cIdx = 1), and sample p0 or sample q0 is included in a Cb transform block (e.g., tu_cb_coded_flag = 1) that includes one or more non-zero transform coefficient levels.
[0185] - Condition S1050-3: The current block is a chroma Cr component block (e.g., cIdx = 2), and sample p0 or sample q0 is included in a Cr transform block (e.g., tu_cr_coded_flag = 1) that includes one or more non-zero transform coefficient levels.
[0186] Reference Figure 10 The method described for determining the boundary strength bS is exemplary, and the method for determining the boundary strength according to this disclosure is not limited to... Figure 10 The example shown. For example, it can be omitted. Figure 10 Some of the steps shown, and in addition to Figure 10 Steps other than those shown can be added. Figure 10 Any location in the flowchart. Additionally, Figure 10 Some of the steps shown can be performed simultaneously with other steps, or the order of other steps can be changed.
[0187] According to reference Figure 10 The described boundary strength determination method can solve the two problems mentioned above that may arise by applying joint CbCr residual coding. That is, because... Figure 10The method determines whether the transform block includes one or more non-zero transform coefficient levels for each color component, and can accurately determine the boundary strength of the deblocking filter used for the transform block boundary, even when joint CbCr residual coding is applied.
[0188] Figure 11 This is a flowchart illustrating a method for determining the boundary strength of a target boundary according to another embodiment of the present disclosure.
[0189] Figure 11 In order to improve the reference Figure 7 The described method for determining boundary strength, Figure 7 Methods and Figure 11 The methods can be the same or overlap. In Figure 7 Methods and Figure 11 In this method, repeated descriptions of the same or overlapping steps can be omitted. For example, Figure 7 Steps S710 to S740 can respectively correspond to Figure 11 Steps S1110 to S1140. Additionally, Figure 7 Steps S760 to S770 can respectively correspond to Figure 11 Steps S1160 to S1170. Repeated descriptions of the corresponding steps will be omitted. Figure 7 Compared to the method, according to Figure 11 The boundary strength determination method also includes step S1150 instead of step S750.
[0190] Reference Figure 11 If the conditions of step S1140 are not met (S1140 is no), step S1150 can be determined. Specifically, it can be determined whether the target boundary is the boundary of the transform block and whether it meets at least one of the four conditions described below (S1150). When the above conditions are met (S1150 is yes), the boundary strength of the corresponding target boundary can be determined as a second value (e.g., 1).
[0191] - Condition S1150-1: The current block is a luminance component block (e.g., cIdx = 0), and sample p0 or sample q0 is included in a luminance transform block (e.g., tu_y_coded_flag = 1) that includes one or more transform coefficient levels.
[0192] - Condition S1150-2: The current block is a chroma Cb component block (e.g., cIdx = 1), and sample p0 or sample q0 is included in a Cb transform block (e.g., tu_cb_coded_flag = 1) that includes one or more non-zero transform coefficient levels.
[0193] - Condition S1150-3: The current block is a chroma Cr component block (e.g., cIdx = 2), and sample p0 or sample q0 is included in a Cr transform block (e.g., tu_cr_coded_flag = 1) that includes one or more non-zero transform coefficient levels.
[0194] - Condition S1150-4: The current block is not a luminance component block (e.g., cIdx ≠ 0), and sample p0 or sample q0 is included in a transform block that has undergone joint CbCr residual coding (e.g., tu_joint_cbcr_residual_flag = 1).
[0195] Reference Figure 11 The method described for determining the boundary strength bS is exemplary, and the method for determining the boundary strength according to this disclosure is not limited to... Figure 11 The example shown. For example, it can be omitted. Figure 11 Some of the steps shown, and in addition to Figure 11 Steps other than those shown can be added. Figure 11 Any location in the flowchart. Additionally, Figure 11 Some of the steps shown can be performed simultaneously with other steps, or the order of the steps can be changed.
[0196] According to reference Figure 11 The described boundary strength determination method can solve the two problems mentioned above that may arise by applying joint CbCr residual coding. That is, because... Figure 11 The method determines whether a transform block includes one or more non-zero transform coefficient levels for each color component, and accurately determines the boundary strength of the deblocking filter used for transform block boundaries, even when joint CbCr residual coding is applied. Furthermore, according to... Figure 11 The method allows the boundary strength of the deblocking filter for the transform block boundary to be determined as a non-zero value (e.g., 1) when joint CbCr residual coding is applied.
[0197] In reference Figures 7 to 11 In the described implementation, the determination of the boundary strength based on whether the transform block includes one or more non-zero transform coefficient levels can be varied by taking into account the application of joint CbCr residual coding.
[0198] For example, as described above, when joint CbCr residual coding is applied to at least one of two blocks (P block and Q block) adjacent to the target boundary (tu_joint_cbcr_residual_flag is 1), the boundary strength can be determined to a second value (e.g., 1). Additionally, when at least one of the two blocks (P block and Q block) adjacent to the target boundary includes a non-zero transform coefficient level (corresponding to a color component coding flag of 1), the boundary strength can be determined to a second value (e.g., 1).
[0199] Therefore, according to another embodiment of this disclosure, the conditions of step S750 can be changed as follows.
[0200] For the luminance component (e.g., cIdx = 0), when the sum of the values of tu_y_coded_flag of the P block and the Q block is greater than 0, the corresponding boundary strength can be determined to be a second value (e.g., 1).
[0201] For the Cb component (e.g., cIdx = 1), when the values of tu_cb_coded_flag, tu_joint_cbcr_residual_flag of the P block, and the values of tu_cb_coded_flag and tu_joint_cbcr_residual_flag of the Q block are greater than 0, the corresponding boundary strength can be determined to be the second value (e.g., 1).
[0202] For the Cr component (e.g., cIdx = 2), when the values of tu_cr_coded_flag, tu_joint_cbcr_residual_flag of the P block, and the values of tu_cr_coded_flag and tu_joint_cbcr_residual_flag of the Q block are greater than 0, the corresponding boundary strength can be determined to be the second value (e.g., 1).
[0203] As described above, according to the modified example, when at least one of the P-blocks or Q-blocks includes a non-zero transform coefficient level or when joint CbCr residual coding is applied to at least one of the P-blocks or Q-blocks, the corresponding boundary strength can be determined as a second value (e.g., 1).
[0204] Figure 12 This is a flowchart illustrating the encoding process based on deblocking filtering according to the present disclosure.
[0205] Reference Figure 12 The image encoding device can generate a reconstructed image (S1210). The image encoding device can generate a reconstructed image by encoding the input image to be encoded and reconstructing it.
[0206] The image encoding device can deduce information related to the deblocking filter for reconstructing the image (S1220).
[0207] As mentioned above, deblocking filter related information may include flags specifying whether the deblocking filter is available. Additionally, deblocking filter related information may include various information used to derive boundary strength. Boundary strength can be derived differently based on the luminance component (Y) and chrominance components (cb, cr). The target boundary for applying deblocking filtering can be derived independently based on the luminance component (Y) and chrominance components (cb, cr).
[0208] The image encoding device can generate a modified reconstructed frame by applying deblocking filtering to the reconstructed frame based on the derived deblocking filter information (S1230). The modified reconstructed frame can be sent to the memory 170 and can be used as a reference frame in the inter-frame prediction unit 180. The DPB in the memory 170 can store the modified reconstructed frame for use as a reference frame for inter-frame prediction.
[0209] The image encoding device can encode image data including information related to the deblocking filter (S1240). For example, the information related to the deblocking filter can be sent to the entropy encoder 190 and encoded by the entropy encoder 190, thereby outputting it in the form of a bit stream.
[0210] Figure 13 This is a flowchart illustrating the decoding process based on deblocking filtering according to the present disclosure.
[0211] Reference Figure 13 The image decoding device can obtain image data including information related to the deblocking filter from the bitstream (S1310).
[0212] Figure 3 Image decoding device 200 can receive data in bitstream form from... Figure 2 The signal output by the image encoding device 100. The entropy decoder 210 can obtain the information (e.g., video / image information) required for image reconstruction (or picture reconstruction) by parsing the bitstream.
[0213] The image decoding device can generate a reconstructed image based on the obtained image information (S1320).
[0214] For example, Figure 3 The adder 235 of the image decoding device 200 can generate a reconstructed image by adding the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the prediction unit (inter-frame prediction unit 260 and / or intra-frame prediction unit 265).
[0215] The image decoding device can generate a modified reconstructed image by applying deblocking filtering to the reconstructed image (S1330).
[0216] Figure 3 The filter 240 of the image decoding device 200 can improve the subjective / objective image quality by applying filtering to the reconstructed frame. For example, the filter 240 can generate a modified reconstructed frame by applying various filtering methods to the reconstructed frame. The modified reconstructed frame can be stored in the memory 250, specifically in the DPB of the memory 250. The (modified) reconstructed frame stored in the DPB of the memory 250 can be used as a reference frame in the inter-frame prediction unit 260.
[0217] Although the exemplary methods of this disclosure described above are represented as a series of operations for clarity of description, they are not intended to limit the order in which the steps are performed, and these steps may be performed simultaneously or in different orders if necessary. To implement the method according to the invention, the described steps may further include other steps, including steps in addition to some steps, or may include additional steps in addition to some steps.
[0218] In this disclosure, the image encoding device or image decoding device that performs a predetermined operation (step) can also perform an operation (step) that confirms the execution conditions or circumstances of the corresponding operation (step). For example, in the case described where a predetermined operation is performed when predetermined conditions are met, the image encoding device or image decoding device can perform the predetermined operation after determining whether the predetermined conditions are met.
[0219] The various embodiments of this disclosure are not a list of all possible combinations and are intended to describe representative aspects of this disclosure; the matters described in the various embodiments may be applied independently or in combination of two or more.
[0220] Various embodiments of this disclosure can be implemented in hardware, firmware, software, or a combination thereof. When this disclosure is implemented in hardware, it can be implemented using application-specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field-programmable gate arrays (FPGAs), general-purpose processors, controllers, microcontrollers, microprocessors, etc.
[0221] Furthermore, the image decoding and image encoding devices applying the embodiments of this disclosure can be included in multimedia broadcasting transmission and receiving devices, mobile communication terminals, home theater video devices, digital cinema video devices, surveillance cameras, video chat devices, real-time communication devices such as video communication, mobile streaming devices, storage media, cameras, video-on-demand (VoD) service providers, OTT (over-the-top video) devices, internet streaming service providers, three-dimensional (3D) video devices, video telephony devices, medical video devices, etc., and can be used to process video signals or data signals. For example, OTT video devices can include game consoles, Blu-ray players, internet access televisions, home theater systems, smartphones, tablet PCs, digital video recorders (DVRs), etc.
[0222] Figure 15 This is a view illustrating a content streaming system to which embodiments of the present disclosure can be applied.
[0223] like Figure 15 As shown, the content streaming system applying the embodiments of this disclosure may mainly include an encoding server, a streaming server, a network server, a media storage device, a user device, and a multimedia input device.
[0224] The encoding server compresses content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data to generate a bitstream and then sends the bitstream to the streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server can be omitted.
[0225] The bitstream can be generated by an image encoding method or image encoding device applying the embodiments of this disclosure, and the stream server can temporarily store the bitstream during the sending or receiving of the bitstream.
[0226] A streaming server sends multimedia data to a user's device based on a request from a web server, and the web server acts as a medium for informing the user of the service. When a user requests a service from the web server, the web server can deliver it to the streaming server, and the streaming server can send the multimedia data to the user. In this scenario, the content streaming system may include a separate control server. In this case, the control server is used to control the commands / responses between devices in the content streaming system.
[0227] A streaming server can receive content from media storage devices and / or encoding servers. For example, when receiving content from an encoding server, the content can be received in real time. In this case, to provide a smooth streaming service, the streaming server can store the bitstream for a predetermined period of time.
[0228] Examples of user devices may include mobile phones, smartphones, laptop computers, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigation devices, slate PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays), digital televisions, desktop computers, digital signage, etc.
[0229] In a content streaming system, each server can operate as a distributed server, in which case the data received from each server can be distributed.
[0230] The scope of this disclosure includes software or machine-executable commands (e.g., operating systems, applications, firmware, programs, etc.) for enabling the operation of methods according to various embodiments to be executed on a device or computer, and non-transitory computer-readable media having such software or commands stored thereon and executable on a device or computer.
[0231] Industrial applicability
[0232] The embodiments disclosed herein can be used to encode or decode images.
Claims
1. An image decoding method performed by an image decoding device, the image decoding method comprising the following steps: A first flag, a second flag, a third flag, and a fourth flag are obtained from the bit stream, wherein the first flag specifies whether joint CbCr residual coding is performed on the first block adjacent to the target boundary of the deblocking filter, the second flag specifies whether joint CbCr residual coding is performed on the second block adjacent to the target boundary, the third flag specifies whether the first block includes non-zero transform coefficients, and the fourth flag indicates whether the second block includes non-zero transform coefficients. Obtain the reconstructed image; Determine the target boundary in the reconstructed image; Determine the boundary strength of the target boundary; and Deblocking filtering is applied to the target boundary based on the boundary strength. Specifically, based on the fact that the target boundary is a transform block boundary and the color components of the reconstructed image are chroma components, the boundary strength is determined based on the first flag, the second flag, the third flag, and the fourth flag. The joint CbCr residual encoding corresponds to encoding the residual samples of the chromaticity Cb component and the chromaticity Cr component into a single transform block.
2. The image decoding method according to claim 1, wherein, The boundary strength is determined to be 1 based on one or more of the first flag, the second flag, the third flag, and the fourth flag being equal to 1.
3. The image decoding method according to claim 1, wherein, The boundary strength is determined based on whether at least one of the first block and the second block includes non-zero transform coefficients, since the target boundary is a transform block boundary and the color component of the reconstructed image is a luminance component.
4. An image encoding method performed by an image encoding device, the image encoding method comprising the following steps: Generate a reconstructed image; Determine the target boundary for deblocking filtering in the reconstructed image; Determine the boundary strength of the target boundary; as well as Deblocking filtering is applied to the target boundary based on the boundary strength. Specifically, based on the fact that the target boundary is a transform block boundary and the color components of the reconstructed image are chrominance components, the boundary strength is determined based on a first flag, a second flag, a third flag, and a fourth flag. The first flag specifies whether joint CbCr residual coding is performed on a first block adjacent to the target boundary; the second flag specifies whether joint CbCr residual coding is performed on a second block adjacent to the target boundary; the third flag specifies whether the first block includes non-zero transform coefficients; and the fourth flag indicates whether the second block includes non-zero transform coefficients. The joint CbCr residual encoding corresponds to encoding the residual samples of the chromaticity Cb component and the chromaticity Cr component into a single transform block.
5. The image encoding method according to claim 4, wherein, The boundary strength is determined to be 1 based on one or more of the first flag, the second flag, the third flag, and the fourth flag being equal to 1.
6. The image encoding method according to claim 4, wherein, The boundary strength is determined based on whether at least one of the first block and the second block includes non-zero transform coefficients, since the target boundary is a transform block boundary and the color component of the reconstructed image is a luminance component.
7. An image decoding device, comprising: Memory, on which machine-executable commands are stored; as well as At least one processor, The at least one processor is configured to execute machine-executable commands to implement the image decoding method according to any one of claims 1-3.
8. An image encoding device, the image encoding device comprising: Memory, on which machine-executable commands are stored; as well as At least one processor, The at least one processor is configured to execute machine-executable commands to implement the image encoding method according to any one of claims 4-6.
9. A computer-readable storage medium storing a computer program and a bit stream thereon, characterized in that, When the computer program is executed by a processor, it implements the image encoding method of any one of claims 4-6 to generate the bitstream.
Citation Information
Patent Citations
Method for encoding and decoding image using adaptive deblocking filtering, and apparatus therefor
CN107925773A
Method and apparatus for encoding / decoding image information
CN109246429A