Image Encoding / Decoding Method, Method for Transmitting a Bitstream, and Recording Medium Storing a Bitstream
The image encoding/decoding method improves efficiency by determining the type of virtual boundaries and applying in-loop filters unidirectionally, addressing high-resolution image data transmission and storage challenges.
Patent Information
- Application Number
- JP2024574544
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-06-21
- Filing Date
- 2023-06-21
- Publication Date
- 2025-07-15
AI Technical Summary
The increasing demand for high-resolution, high-quality images leads to higher transmission and storage costs due to increased data volume, necessitating a more efficient image compression technique.
An image encoding/decoding method that determines the type of a virtual boundary and decides whether to apply an in-loop filter unidirectionally, improving encoding/decoding efficiency by using a new type of virtual boundary and associated syntax.
Enhances encoding/decoding efficiency and subjective image quality by allowing in-loop filtering from refreshed to non-refreshed regions, reducing data transmission and storage costs.
Smart Images

Figure 2025522493000001_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates to an image encoding / decoding method, a method for transmitting a bitstream, and a recording medium storing the bitstream, and relates to a new type of virtual boundary.
Background Art
[0002] Recently, the demand for high-resolution, high-quality images, such as HD (High Definition) images and UHD (Ultra High Definition) images, has been increasing in various fields. As the image data becomes higher in resolution and quality, the amount of information or bits to be transmitted relatively increases compared to conventional image data. The increase in the amount of information or bits to be transmitted results in an increase in transmission costs and storage costs.
[0003] Accordingly, there is a need for a highly efficient image compression technique for effectively transmitting, storing, and reproducing information of high-resolution, high-quality images.
Summary of the Invention
Problems to be Solved by the Invention
[0004] An object of the present disclosure is to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0005] Another object of the present disclosure is to propose a new type of virtual boundary called a directional virtual boundary.
[0006] Another object of the present disclosure is to propose a syntax for indicating the type of virtual boundary.
[0007] Another object of the present disclosure is to provide a non-transitory computer-readable recording medium storing a bitstream generated by the image encoding method according to the present disclosure.
[0008] In addition, an object of the present disclosure is to provide a non-transitory computer-readable recording medium that stores a bitstream received by an image decoding apparatus according to the present disclosure, decoded, and used for image restoration.
[0009] In addition, an object of the present disclosure is to provide a method for transmitting a bitstream generated by an image encoding method according to the present disclosure.
[0010] The technical problems to be solved in the present disclosure are not limited to the above-described technical problems, and other technical problems not described above will be clearly understood by those having ordinary knowledge in the technical field to which the present disclosure pertains from the following description.
Means for Solving the Problems
[0011] An image decoding method according to an aspect of the present disclosure is an image decoding method performed by an image decoding apparatus, including: a step of determining a type of a virtual boundary; and a step of determining whether to apply an in-loop filter to a block based on the type of the virtual boundary, wherein the type of the virtual boundary includes a type in which the in-loop filter for the block is inactivated unidirectionally with respect to the virtual boundary, and the image decoding method may be such.
[0012] An image encoding method according to another aspect of the present disclosure is an image encoding method performed by an image encoding apparatus, including: a step of determining whether to apply an in-loop filter to a block corresponding to a virtual boundary; and a step of determining the type of the virtual boundary based on a determination regarding whether to apply the in-loop filter, wherein the type of the virtual boundary includes a type in which the in-loop filter for the block is inactivated unidirectionally with respect to the virtual boundary, and the image encoding method may be such.
[0013] A computer-readable recording medium according to another aspect of the present disclosure can store a bitstream generated by the image encoding method or apparatus of the present disclosure.
[0014] A transmission method according to another aspect of the present disclosure can transmit a bitstream generated by the image encoding method or apparatus of the present disclosure.
[0015] The features briefly summarized and described above regarding the present disclosure are merely exemplary aspects of the detailed description of the present disclosure to be described later, and do not limit the scope of the present disclosure.
Advantages of the Invention
[0016] According to the present disclosure, it is possible to provide an image encoding / decoding method and apparatus with improved encoding / decoding efficiency.
[0017] Also, according to the present disclosure, a new type of virtual boundary can be provided.
[0018] Also, according to the present disclosure, by using samples in the refreshed region to perform in-loop filtering on blocks in the non-refreshed region, the coding efficiency and subjective image quality can be improved.
[0019] Also, according to the present disclosure, it is possible to provide a non-transitory computer-readable recording medium that stores a bitstream generated by the image encoding method according to the present disclosure.
[0020] Also, according to the present disclosure, it is possible to provide a non-transitory computer-readable recording medium that stores a bitstream received by the image decoding apparatus according to the present disclosure, decoded, and used for image restoration.
[0021] Also, according to the present disclosure, it is possible to provide a method for transmitting a bitstream generated by an image encoding method.
[0022] The effects obtained by the present disclosure are not limited to the above-described effects, and other effects not described above will be clearly understood by those having ordinary knowledge in the technical field to which the present disclosure pertains from the following description.
Brief Description of the Drawings
[0023]
Figure 1
[0024]
Figure 2
[0025]
Figure 3
[0026]
Figure 4
[0027]
Figure 5
[0028]
Figure 6
[0029]
Figure 7
[0030]
Figure 8
[0031]
Figure 9
[0032]
Figure 10
[0033]
Figure 11
[0034]
Figure 12
DETAILED DESCRIPTION OF THE INVENTION
[0035] Hereinafter, with reference to the accompanying drawings, embodiments of the present disclosure will be described in detail so that those having ordinary knowledge in the technical field to which the present disclosure pertains can easily implement them. However, the present disclosure can be realized in various different forms and is not limited to the embodiments described herein.
[0036] In describing the embodiments of the present disclosure, when it is determined that a detailed description of a known configuration or function may obscure the gist of the present disclosure, the detailed description thereof will be omitted. In the drawings, parts not related to the description of the present disclosure are omitted, and the same reference numerals are given to the same parts.
[0037] In the present disclosure, when a certain component is “connected”, “coupled” or “connected” to another component, this can include not only a direct connection relationship but also an indirect connection relationship in which another component exists between them. Also, when a certain component “includes” or “has” another component, this means that, unless otherwise stated to the contrary, it does not exclude another component but can further include another component.
[0038] In the present disclosure, terms such as "first" and "second" are used only for the purpose of distinguishing one component from another, and do not limit the order or importance among the components unless otherwise specified. Therefore, within the scope of the present disclosure, the first component of one embodiment may be referred to as the second component in another embodiment, and similarly, the second component of one embodiment may be referred to as the first component in another embodiment.
[0039] In the present disclosure, components that are distinguished from each other are for clearly explaining their respective features, and do not necessarily mean that the components are separated. That is, a plurality of components may be integrated and configured as one hardware or software unit, or one component may be distributed and configured as a plurality of hardware or software units. Therefore, without further mention, such integrated or distributed embodiments are also included in the scope of the present disclosure.
[0040] In the present disclosure, the components described in various embodiments do not necessarily mean essential components, and some may be optional components. Therefore, embodiments constituted by a subset of the components described in one embodiment are also included in the scope of the present disclosure. Also, embodiments that further include other components in the components described in various embodiments are included in the scope of the present disclosure.
[0041] The present disclosure relates to the encoding and decoding of images, and the terms used in the present disclosure can have the ordinary meanings in the technical field to which the present disclosure belongs unless newly defined in the present disclosure.
[0042] In the present disclosure, "picture" generally means a unit indicating any one image in a specific time period, and a slice / tile is an encoding unit constituting a part of a picture, and one picture can be constituted by one or more slices / tiles. Also, a slice / tile can include one or more CTUs (coding tree units).
[0043] In the present disclosure, "pixel" or "pel" can mean the smallest unit that constitutes a picture (or an image). Also, the term "sample" can be used as a term corresponding to a pixel. A sample can generally indicate a pixel or a pixel value, and can also indicate only the pixel / pixel value of the luma component, or only the pixel / pixel value of the chroma component.
[0044] In the present disclosure, "unit" can indicate the basic unit of image processing. A unit can include at least one of a specific region of a picture and information related to the region. A unit can be used interchangeably with terms such as "sample array", "block", or "area" as the case may be. In general, an M×N block can include a set (or an array) of samples (or a sample array) or transform coefficients consisting of M columns and N rows.
[0045] In the present disclosure, "current block" can mean any one of "current coding block", "current coding unit", "block to be coded", "block to be decoded", or "block to be processed". When prediction is performed, "current block" can mean "current prediction block" or "block to be predicted". When transform (inverse transform) / quantization (inverse quantization) is performed, "current block" can mean "current transform block" or "block to be transformed". When filtering is performed, "current block" can mean "block to be filtered".
[0046] In the present disclosure, unless otherwise explicitly stated as a chroma block, the "current block" can mean a block that includes all luma component blocks and chroma component blocks, or the "luma block of the current block". The luma component block of the current block can be explicitly expressed as including an explicit description of the luma component block, such as "luma block" or "current luma block". Also, the chroma component block of the current block can be explicitly expressed as including an explicit description of the chroma component block, such as "chroma block" or "current chroma block".
[0047] In the present disclosure, " / " and "," can be interpreted as "and / or". For example, "A / B" and "A, B" can be interpreted as "A and / or B". Also, "A / B / C" and "A, B, C" can mean "at least one of A, B, and / or C".
[0048] In the present disclosure, "or" can be interpreted as "and / or". For example, "A or B" can mean 1) only "A", 2) only "B", or 3) "A and B". Alternatively, in the present disclosure, "or" can mean "additionally or alternatively".
[0049] Overview of the video coding system
[0050] FIG. 1 schematically shows a video coding system to which an embodiment according to the present disclosure can be applied.
[0051] A video coding system according to an embodiment can include an encoding device 10 and a decoding device 20. The encoding device 10 can transmit encoded video and / or image information or data to the decoding device 20 in a file or streaming format via a digital storage medium or a network.
[0052] An encoding device 10 according to an embodiment may include a video source generation unit 11, an encoding unit 12, and a transmission unit 13. A decoding device 20 according to an embodiment may include a reception unit 21, a decoding unit 22, and a rendering unit 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 transmission unit 13 may be included in the encoding unit 12. The reception unit 21 may be included in the decoding unit 22. The rendering unit 23 may also include a display unit, and the display unit may be configured as a separate device or an external component.
[0053] The video source generation unit 11 can acquire a video / image through processes such as capture, synthesis, or generation of the video / image. The video source generation unit 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, a tablet, and a smartphone, etc., and can generate (electronically) a video / image. For example, a virtual video / image can be generated via a computer or the like, and in this case, the video / image capture process can be replaced by a process in which related data is generated.
[0054] The encoding unit 12 can encode the input video / image. The encoding unit 12 can perform a series of procedures such as prediction, transformation, quantization, etc. for compression and encoding efficiency. The encoding unit 12 can output the encoded data (encoded video / image information) in the form of a bitstream.
[0055] The transmission unit 13 can acquire the encoded video / image information or data output in bitstream format, and transmit this to the receiving unit 21 of the decoding device 20 or other external objects via a digital storage medium or network in file or streaming format. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmission unit 13 can include elements for generating media files via a predetermined file format, and can include elements for transmission via a broadcast / communication network. The transmission unit 13 can be provided as a transmission device separate from the encoding device 12. In this case, the transmission device can include at least one processor that acquires the encoded video / image information or data output in bitstream format, and a transmission unit that transmits this in file or streaming format. The receiving unit 21 can extract / receive the bitstream from the storage medium or network and transmit it to the decoding unit 22.
[0056] The decoding unit 22 can decode the video / image by performing a series of procedures such as inverse quantization, inverse transformation, prediction, etc. corresponding to the operation of the encoding unit 12.
[0057] The rendering unit 23 can render the decoded video / image. The rendered video / image can be displayed via the display unit.
[0058] Overview of the image encoding device
[0059] Figure 2 is a diagram schematically showing an image encoding device to which the embodiment according to the present disclosure can be applied.
[0060] As shown in FIG. 2, the image encoding apparatus 100 can include an image division unit 110, a subtraction unit 115, a conversion unit 120, a quantization unit 130, an inverse quantization unit 140, an inverse conversion unit 150, an addition unit 155, a filtering unit 160, a memory 170, an inter prediction unit 180, an intra prediction unit 185, and an entropy encoding unit 190. The inter prediction unit 180 and the intra prediction unit 185 can be collectively referred to as a “prediction unit”. The conversion unit 120, the quantization unit 130, the inverse quantization unit 140, and the inverse conversion unit 150 can be included in a residual processing unit. The residual processing unit can further include the subtraction unit 115.
[0061] All or at least a part of the plurality of components constituting the image encoding apparatus 100 can be realized by one hardware component (for example, an encoder or a processor) according to an embodiment. Further, the memory 170 can include a DPB (decoded picture buffer) and can be realized by a digital storage medium.
[0062] The image segmentation unit 110 can divide an input image (or picture, frame) input to the image encoding apparatus 100 into one or more processing units. As an example, the processing unit can be called a coding unit (CU). The coding unit can be obtained by recursively dividing a coding tree unit (CTU) or a largest coding unit (LCU) according to a QT / BT / TT (Quad-tree / binary-tree / ternary-tree) structure. For example, one coding unit can be divided into a plurality of coding units at a deeper depth based on a quadtree structure, a binary tree structure, and / or a ternary tree structure. For the division of the coding unit, the quadtree structure can be applied first, and the binary tree structure and / or the ternary tree structure can be applied later. Based on the final coding unit that cannot be further divided, the coding procedure according to the present disclosure can be performed. The largest coding unit can be used as the final coding unit, and the coding units at a lower depth obtained by dividing the largest coding unit can also be used as the final coding unit. Here, the coding procedure can include procedures such as prediction, transformation, and / or restoration, which will be described later. As another example, the processing unit of the coding procedure can be a prediction unit (PU) or a transformation unit (TU). The prediction unit and the transformation unit can be divided or partitioned from the final coding unit, respectively. The prediction unit can be a unit of sample prediction, and the transformation unit can be a unit for deriving transformation coefficients and / or a unit for deriving a residual signal from the transformation coefficients.
[0063] The prediction unit (inter prediction unit 180 or intra prediction unit 185) can perform a prediction on a processing target block (current block) and generate a predicted block including prediction samples for the current block. The prediction unit can determine whether intra prediction is applied in units of the current block or CU, or whether inter prediction is applied. The prediction unit can generate various information related to the prediction of the current block and transmit it to the entropy encoding unit 190. The information related to the prediction can be encoded by the entropy encoding unit 190 and output in the form of a bitstream.
[0064] The intra prediction unit 185 can predict the current block by referring to samples within the current picture. The samples to be referred to can be located in the neighborhood of the current block or at a distance according to the intra prediction mode and / or intra prediction technique. The intra prediction mode can include a plurality of non-directional modes and a plurality of directional modes. The non-directional modes can include, for example, the DC mode and the Planar mode. The directional modes can include, for example, 33 directional prediction modes or 65 directional prediction modes according to the degree of fineness of the prediction direction. However, this is only an example, and more or fewer directional prediction modes can be used based on the setting. The intra prediction unit 185 can also determine the prediction mode to be applied to the current block using the prediction mode applied to the neighboring blocks.
[0065] The inter prediction unit 180 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on the reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between the neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. The reference picture including the reference block and the reference picture including the temporal neighboring block may be the same as or different from each other. The temporal neighboring block can be called by names such as a collocated reference block, a collocated CU (colCU), etc. The reference picture including the temporal neighboring block can be called a collocated picture (colPic). For example, the inter prediction unit 180 can construct a motion information candidate list based on the neighboring blocks and generate information indicating which candidate is used to derive the motion vector and / or reference picture index of the current block. Inter prediction can be performed based on various prediction modes. For example, in the case of the skip mode and the merge mode, the inter prediction unit 180 can use the motion information of the neighboring blocks as the motion information of the current block. In the case of the skip mode, unlike the merge mode, the residual signal cannot be transmitted.In the case of the motion information prediction (motion vector prediction, MVP) mode, the motion vectors of neighboring blocks are used as motion vector predictors, and the motion vector difference and the indicator for the motion vector predictor are encoded to signal the motion vector of the current block. The motion vector difference can mean the difference between the motion vector of the current block and the motion vector predictor.
[0066] The prediction unit can generate a prediction signal based on various prediction methods and / or prediction techniques described later. For example, the prediction unit can not only apply intra prediction or inter prediction for the prediction of the current block, but also apply intra prediction and inter prediction simultaneously. A prediction method that applies intra prediction and inter prediction simultaneously for the prediction of the current block can be called CIIP (combined inter and intra prediction). In addition, the prediction unit can also perform intra block copy (IBC) for the prediction of the current block. Intra block copy can be used for content image / video coding such as games, such as SCC (screen content coding). IBC is a method of predicting the current block using a restored reference block within the current picture at a position a predetermined distance away from the current block. When IBC is applied, the position of the reference block within the current picture can be encoded as a vector (block vector) corresponding to the predetermined distance. IBC basically performs prediction within the current picture, but can be performed in the same way as inter prediction in terms of deriving a reference block within the current picture. That is, IBC can use at least one of the inter prediction techniques described in the present disclosure.
[0067] The prediction signal generated by the prediction unit can be used to generate a restored signal or can be used to generate a residual signal. The subtraction unit 115 can subtract the prediction signal (predicted block, predicted sample array) output from the prediction unit from the input image signal (original block, original sample array) to generate a residual signal (residual signal, residual block, residual sample array). The generated residual signal can be transmitted to the conversion unit 120.
[0068] The conversion unit 120 can apply a conversion technique to the residual signal to generate conversion coefficients (transform coefficients). For example, the conversion technique can include at least one of DCT (Discrete Cosine Transform), DST (Discrete Sine Transform), KLT (Karhunen - Loeve Transform), GBT (Graph - Based Transform), or CNT (Conditionally Non - linear Transform). Here, GBT means the transform obtained from a graph when representing the relationship information between pixels as a graph. CNT means the transform obtained based on generating a prediction signal using all previously reconstructed pixels. The conversion process can be applied to a pixel block having the same size of a square, or can also be applied to a non - square, variable - size block.
[0069] The quantization unit 130 can quantize the transform coefficients and transmit them to the entropy encoding unit 190. The entropy encoding unit 190 can encode the quantized signal (information regarding the quantized transform coefficients) and output it in the form of a bit stream. The information regarding the quantized transform coefficients can be called residual information. The quantization unit 130 can reorder the quantized transform coefficients in block form into a one-dimensional vector form based on the coefficient scan order, and can also generate the information regarding the quantized transform coefficients based on the quantized transform coefficients in the one-dimensional vector form.
[0070] The entropy encoding unit 190 can perform various encoding methods such as, for example, exponential Golomb, CAVLC (context-adaptive variable length coding), CABAC (context-adaptive binary arithmetic coding). The entropy encoding unit 190 can also encode, together or separately, information necessary for video / image restoration (for example, values of syntax elements) in addition to the quantized transform coefficients. The encoded information (for example, encoded video / image information) can be transmitted or stored in the form of a bit stream in units of NAL (network abstraction layer) units. The video / image information can further include information regarding various parameter sets such as an adaptive parameter set (APS), a picture parameter set (PPS), a sequence parameter set (SPS), or a video parameter set (VPS). Also, the video / image information can further include general constraint information. The signaling information, transmitted information, and / or syntax elements mentioned in the present disclosure can be encoded through the above-described encoding procedure and included in the bit stream.
[0071] The bitstream can be transmitted via a network or stored in a digital storage medium. Here, the network can include a broadcast network and / or a communication network, etc., and the digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. A transmission unit (not shown) for transmitting and / or a storage unit (not shown) for storing the signal output from the entropy encoding unit 190 can be provided as internal / external elements of the image encoding apparatus 100, or the transmission unit can also be provided as a component of the entropy encoding unit 190.
[0072] The quantized transform coefficients output from the quantization unit 130 can be used to generate a residual signal. For example, by applying inverse quantization and inverse transformation to the quantized transform coefficients via the inverse quantization unit 140 and the inverse transformation unit 150, a residual signal (residual block or residual sample) can be restored.
[0073] The addition unit 155 can generate a reconstructed signal (reconstructed picture, reconstructed block, reconstructed sample array) by adding the restored residual signal to the prediction signal output from the inter prediction unit 180 or the intra prediction unit 185. When there is no residual for the block to be processed as in the case where the skip mode is applied, the predicted block can be used as the reconstructed block. The addition unit 155 can be called a restoration unit or a reconstructed block generation unit. The generated reconstructed signal can be used for intra prediction of the next block to be processed within the current picture and can also be used for inter prediction of the next picture after passing through filtering as described later.
[0074] The filtering unit 160 can apply filtering to the restored signal to improve the subjective / objective image quality. For example, the filtering unit 160 can apply various filtering methods to the restored picture to generate a modified restored picture, and can store the modified restored picture in the memory 170, specifically in the DPB of the memory 170. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc. The filtering unit 160 can generate various information related to filtering as described later in the description of each filtering method and transmit it to the entropy encoding unit 190. The information related to filtering can be encoded by the entropy encoding unit 190 and output in the form of a bitstream.
[0075] The modified restored picture transmitted to the memory 170 can be used as a reference picture in the inter prediction unit 180. When inter prediction is applied through this, the image encoding apparatus 100 can avoid prediction mismatches between the image encoding apparatus 100 and the image decoding apparatus, and can also improve the encoding efficiency.
[0076] The DPB in the memory 170 can store the modified restored picture for use as a reference picture in the inter prediction unit 180. The memory 170 can store the motion information of the blocks in which the motion information in the current picture has been derived (or encoded) and / or the motion information of the blocks in the already restored picture. The stored motion information can be transmitted to the inter prediction unit 180 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 170 can store the restored samples of the restored blocks in the current picture and transmit them to the intra prediction unit 185.
[0077] Overview of the image decoding device
[0078] FIG. 3 is a diagram schematically showing an image decoding apparatus to which an embodiment according to the present disclosure can be applied.
[0079] As shown in FIG. 3, the image decoding apparatus 200 can be configured to include an entropy decoding unit 210, an inverse quantization unit 220, an inverse transformation unit 230, an addition unit 235, a filtering unit 240, a memory 250, an inter prediction unit 260, and an intra prediction unit 265. The inter prediction unit 260 and the intra prediction unit 265 can be collectively referred to as a "prediction unit". The inverse quantization unit 220 and the inverse transformation unit 230 can be included in a residual processing unit.
[0080] All or at least a part of the plurality of components constituting the image decoding apparatus 200 can be realized by one hardware component (for example, a decoder or a processor) according to an embodiment. Further, the memory 170 can include a DPB and can be realized by a digital storage medium.
[0081] The image decoding apparatus 200 that has received a bitstream including video / image information can execute a process corresponding to the process performed by the image encoding apparatus 100 of FIG. 2 to restore an image. For example, the image decoding apparatus 200 can perform decoding using the processing unit applied in the image encoding apparatus. Therefore, the decoding processing unit can be, for example, a coding unit. The coding unit can be obtained by dividing a coding tree unit or a maximum coding unit. Then, the restored image signal decoded and output via the image decoding apparatus 200 can be reproduced via a reproducing apparatus (not shown).
[0082] The image decoding device 200 can receive the signal output from the image encoding device of FIG. 2 in bitstream format. The received signal can be decoded via the entropy decoding unit 210. For example, the entropy decoding unit 210 can parse the bitstream to derive information (e.g., video / image information) necessary for image restoration (or picture restoration). The video / image information can further include information regarding various parameter sets such as an Adaptive Parameter Set (APS), a Picture Parameter Set (PPS), a Sequence Parameter Set (SPS), or a Video Parameter Set (VPS). Also, the video / image information can further include general constraint information. The image decoding device can further use the information regarding the parameter set and / or the general constraint information to decode the image. The signaling information, the received information, and / or the syntax elements referred to in the present disclosure can be obtained from the bitstream by being decoded through the decoding procedure. For example, the entropy decoding unit 210 can decode the information in the bitstream based on a coding method such as exponential Golomb coding, CAVLC, or CABAC, and output the value of the syntax element necessary for image restoration and the quantized value of the transform coefficient regarding the residual. More specifically, the CABAC entropy decoding method receives a bin corresponding to each syntax element from the bitstream, determines a context model using the syntax element information to be decoded, the information of the surrounding blocks and the decoded information of the block to be decoded, or the information of the symbol / bin decoded in the previous step, predicts the occurrence probability of the bin based on the determined context model, and performs arithmetic decoding of the bin to generate a symbol corresponding to the value of each syntax element. At this time, the CABAC entropy decoding method can update the context model using the information of the decoded symbol / bin for the context model of the next symbol / bin after determining the context model.Of the information decoded by the entropy decoding unit 210, the information related to prediction is provided to the prediction units (inter prediction unit 260 and intra prediction unit 265), and the residual values entropy decoded by the entropy decoding unit 210, that is, the quantized transform coefficients and related parameter information, can be input to the inverse quantization unit 220. Also, of the information decoded by the entropy decoding unit 210, the information related to filtering can be provided to the filtering unit 240. On the other hand, a receiving unit (not shown) that receives the signal output from the image encoding device can be further provided as an internal / external element of the image decoding device 200, or the receiving unit can also be provided as a component of the entropy decoding unit 210.
[0083] On the other hand, the image decoding device according to the present disclosure can be called a video / image / picture decoding device. The image decoding device can also include an information decoder (video / image / picture information decoder) and / or a sample decoder (video / image / picture sample decoder). The information decoder can include the entropy decoding unit 210, and the sample decoder can include at least one of the inverse quantization unit 220, the inverse transform unit 230, the addition unit 235, the filtering unit 240, the memory 250, the inter prediction unit 260, and the intra prediction unit 265.
[0084] In the inverse quantization unit 220, the quantized transform coefficients can be inverse quantized to output transform coefficients. The inverse quantization unit 220 can reorder the quantized transform coefficients in a two-dimensional block format. In this case, the reordering can be performed based on the coefficient scan order performed by the image encoding device. The inverse quantization unit 220 can perform inverse quantization on the quantized transform coefficients using a quantization parameter (for example, quantization step size information) to obtain transform coefficients.
[0085] In the inverse conversion unit 230, the conversion coefficients can be inversely converted to obtain a residual signal (residual block, residual sample array).
[0086] The prediction unit can perform prediction on the current block and generate a predicted block including predicted samples for the current block. The prediction unit can determine whether intra prediction or inter prediction is applied to the current block based on the information regarding the prediction output from the entropy decoding unit 210, and can determine a specific intra / inter prediction mode (prediction technique).
[0087] The prediction unit can generate a prediction signal based on various prediction methods (techniques) described later, which is the same as described in the explanation of the prediction unit of the image encoding apparatus 100.
[0088] The intra prediction unit 265 can predict the current block by referring to samples within the current picture. The explanation of the intra prediction unit 185 can be similarly applied to the intra prediction unit 265.
[0089] The inter prediction unit 260 can derive a predicted block for the current block based on a reference block (reference sample array) specified by a motion vector on a reference picture. At this time, in order to reduce the amount of motion information transmitted in the inter prediction mode, the motion information can be predicted in units of blocks, sub-blocks, or samples based on the correlation of the motion information between neighboring blocks and the current block. The motion information can include a motion vector and a reference picture index. The motion information can further include inter prediction direction (L0 prediction, L1 prediction, Bi prediction, etc.) information. In the case of inter prediction, the neighboring blocks can include spatial neighboring blocks existing within the current picture and temporal neighboring blocks existing in the reference picture. For example, the inter prediction unit 260 can construct a motion information candidate list based on neighboring blocks, and derive the motion vector and / or reference picture index of the current block based on the received candidate selection information. Inter prediction can be performed based on various prediction modes (techniques), and the information related to the prediction can include information indicating the mode (technique) of inter prediction for the current block.
[0090] The adder 235 can generate a restored signal (restored picture, restored block, restored sample array) by adding the obtained residual signal to a predicted signal (predicted block, predicted sample array) output from a prediction unit (including the inter prediction unit 260 and / or the intra prediction unit 265). When there is no residual for the processing target block as in the case where the skip mode is applied, the predicted block can be used as the restored block. The description of the adder 155 can be similarly applied to the adder 235. The adder 235 may also be referred to as a restoration unit or a restored block generation unit. The generated restored signal can be used for intra prediction of the next processing target block within the current picture, and can also be used for inter prediction of the next picture through filtering as described later.
[0091] The filtering unit 240 can apply filtering to the restored signal to improve the subjective / objective image quality. For example, the filtering unit 240 can apply various filtering methods to the restored picture to generate a modified restored picture, and the modified restored picture can be stored in the memory 250, specifically in the DPB of the memory 250. The various filtering methods can include, for example, deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, and the like.
[0092] The (modified) restored picture stored in the DPB of the memory 250 can be used as a reference picture in the inter prediction unit 260. The memory 250 can store the motion information of the block where the motion information in the current picture has been derived (or decoded) and / or the motion information of the block in the already restored picture. The stored motion information can be transmitted to the inter prediction unit 260 for utilization as the motion information of the spatial neighboring blocks or the motion information of the temporal neighboring blocks. The memory 250 can store the restored samples of the restored blocks in the current picture and transmit them to the intra prediction unit 265.
[0093] In this specification, the embodiments described in the filtering unit 160, inter prediction unit 180, and intra prediction unit 185 of the image encoding apparatus 100 can also be applied to the filtering unit 240, inter prediction unit 260, and intra prediction unit 265 of the image decoding apparatus 200 in the same or corresponding manner.
[0094] General image / video coding procedure
[0095] In image / video coding, pictures constituting an image / video can be encoded / decoded according to a series of decoding orders. The output order of decoded pictures can be set to be different from the decoding order, and based on this, not only forward prediction but also backward prediction can be performed during inter prediction.
[0096] FIG. 4 shows an example of a schematic picture decoding procedure applicable to an embodiment of the present disclosure. In FIG. 4, S400 can be performed by the entropy decoding unit 210 of the image decoding apparatus 200 described above with reference to FIG. 3, S410 can be performed by the prediction unit, S420 can be performed by the residual processing unit, S430 can be performed by the addition unit 235, and S440 can be performed by the filtering unit 240. S400 can include the information decoding procedure described in the present disclosure, S410 can include the inter / intra prediction procedure described in the present disclosure, S420 can include the residual processing procedure described in the present disclosure, S430 can include the block / picture restoration procedure described in the present disclosure, and S440 can include the in-loop filtering procedure described in the present disclosure.
[0097] Referring to FIG. 4, the picture decoding procedure can generally include an image / video information acquisition procedure (S400) for obtaining from a bitstream (by decoding), a picture restoration procedure (S410 - S430), and an in-loop filtering procedure (S440) for the restored picture. The picture restoration procedure can be performed based on the predicted samples and residual samples obtained through the inter / intra prediction (S410) and residual processing (S420, inverse quantization and inverse transformation for the quantized transform coefficients) processes described in the present disclosure. Through the in-loop filtering procedure for the restored picture generated by the picture restoration procedure, a modified restored picture can be generated, and the modified restored picture can be output as a decoded picture, and can also be stored in the decoded picture buffer or memory 250 of the image decoding apparatus 200 and used as a reference picture in the inter prediction procedure during the decoding of subsequent pictures. In some cases, the in-loop filtering procedure can be omitted. In this case, the restored picture can be output as a decoded picture, and can also be stored in the decoded picture buffer or memory 250 of the image decoding apparatus 200 and used as a reference picture in the inter prediction procedure during the decoding of subsequent pictures. The in-loop filtering procedure (S440) can include, as described above, a deblocking filtering procedure, a SAO (sample adaptive offset) procedure, an ALF (adaptive loop filter) procedure, and / or a bilateral filter procedure, etc., and some or all of them can be omitted. Also, one or some of the deblocking filtering procedure, the SAO (sample adaptive offset) procedure, the ALF (adaptive loop filter) procedure, and the bilateral filter procedure can be sequentially applied, or all of them can be sequentially applied. For example, after the deblocking filtering procedure is applied to the restored picture, the SAO procedure can be performed.Alternatively, for example, after a deblocking filtering procedure is applied to the restored picture, the ALF procedure can be performed. This can be similarly performed in the image encoding apparatus 100 as well.
[0098] FIG. 5 shows an example of a picture encoding procedure applicable to an embodiment of the present disclosure. In FIG. 5, S500 can be performed by the prediction unit of the image encoding apparatus 100 described above with reference to FIG. 2, S510 can be performed by the residual processing unit, and S520 can be performed by the entropy encoding unit 190. S500 can include the inter / intra prediction procedure described in the present disclosure, S510 can include the residual processing procedure described in the present disclosure, and S520 can include the information encoding procedure described in the present disclosure.
[0099] Referring to FIG. 5, the picture encoding procedure can generally include not only the procedure of encoding information for picture restoration (e.g., prediction information, residual information, partitioning information, etc.) and outputting it in the form of a bitstream, but also the procedure of generating a restored picture for the current picture, and the procedure (optional) of applying in-loop filtering to the restored picture. The image encoding apparatus 100 can derive (corrected) residual samples from the quantized transform coefficients via the inverse quantization unit 140 and the inverse transform unit 150, and can generate a restored picture based on the prediction samples that are the output of S500 and the (corrected) residual samples. The restored picture generated in this way can be the same as the restored picture generated by the above-described image decoding apparatus 200. A restored picture corrected by the in-loop filtering procedure for the restored picture can be generated, which can be stored in the decoded picture buffer or memory 170, and can be used as a reference picture in the inter-prediction procedure during the encoding of subsequent pictures in the same way as in the case of the image decoding apparatus 200. As described above, in some cases, part or all of the in-loop filtering procedure can be omitted. When the in-loop filtering procedure is performed, the (in-loop) filtering-related information (parameters) can be encoded by the entropy encoding unit 190 and output in the form of a bitstream, and the image decoding apparatus 200 can perform the in-loop filtering procedure in the same way as the image encoding apparatus 100 based on the filtering-related information.
[0100] Through such in-loop filtering procedures, noise generated during image / video coding, such as blocking artifacts and ringing artifacts, can be reduced, and subjective / objective visual quality can be improved. Also, by performing the in-loop filtering procedures in both the image encoding device 100 and the image decoding device 200, the image encoding device 100 and the image decoding device 200 can derive the same prediction results, enhance the reliability of picture coding, and reduce the amount of data to be transmitted for picture coding.
[0101] As described above, picture restoration procedures can be performed not only in the image decoding device 200 but also in the image encoding device 100. Restoration blocks can be generated based on intra prediction / inter prediction for each block unit, and a restored picture including the restoration blocks can be generated. When the current picture / slice / tile group is an I picture / slice / tile group, the blocks included in the current picture / slice / tile group can be restored based only on intra prediction. On the other hand, when the current picture / slice / tile group is a P or B picture / slice / tile group, the blocks included in the current picture / slice / tile group can be restored based on intra prediction or inter prediction. In this case, inter prediction can be applied to some of the blocks within the current picture / slice / tile group, and intra prediction can also be applied to some of the remaining blocks. The color components of a picture can include a luma component and a chroma component, and unless explicitly limited in this disclosure, the methods and examples proposed in this disclosure can be applied to the luma component and the chroma component.
[0102] GDR (Gradual Decoding Refresh)
[0103] In order to prevent the generation of a high bitrate while providing random access to the bitstream, a solution has been proposed to use PIR (progressive intra refresh) technology instead of using IRAP (intra random access point) pictures. The PIR technology is called the GDR function.
[0104] The GDR function can be described using GDR pictures, one or more trailing pictures, and recovery point pictures within the coded video sequence (CVS) of the bitstream. A GDR picture is a picture that allows random access, and each VCL NAL unit can be a picture having a NAL unit type such as GDR_NUT. The CVS is a series of pictures starting from a GDR picture and can include all pictures up to the next GDR picture or the end of the bitstream.
[0105] The GDR function can operate over a series of pictures starting from the GDR picture and ending at the recovery point picture. The GDR picture can include a refreshed area and an unrefreshed area. Here, the refreshed area may be called a clean area or a correctly decoded area, and the unrefreshed area may be called a dirty area or an incorrectly decoded area. The trailing picture immediately adjacent to the GDR picture can also include a refreshed area and an unrefreshed area. The refreshed area can be encoded by referring to the refreshed area of the leading picture in the CVS. The refreshed area of the trailing picture is expanded when the coding process moves or progresses in a consistent direction (e.g., from the GDR picture towards the recovery point picture), and correspondingly the unrefreshed area can be shrunk.
[0106] Virtual boundary
[0107] Using virtual boundary signaling, in-loop filtering can be turned off at the signaling positions within the encoded picture, which need not be aligned with the CTU boundaries. Also, the virtual boundary does not introduce additional in-picture prediction breaks such as those introduced by slices and tiles when used for such purposes. The virtual boundary can be useful in at least two functions. First, in the case of 360-degree video coding, when using a specific projection format that introduces discontinuities such as the misaligned face boundaries of a cube map projection for a 360-degree video, using the virtual boundary allows in-loop filtering to be deactivated at such boundaries without the need to adjust the size of the content to align the projection discontinuity with the CTU boundary. Second, when using the GDR function, the boundary between the refreshed region (i.e., the correctly decoded region) and the non-refreshed region in the reconstructed picture is signaled to the virtual boundary and in-loop filtering can be deactivated at the virtual boundary, thus preventing decoding mismatches for some samples that are at or near the virtual boundary. This function can be useful when an application decides to display the correctly decoded region during the GDR process.
[0108] Problems of the prior art
[0109] Currently, the virtual boundary deactivates the in-loop filter on both sides of the virtual boundary. When the virtual boundary is used to implement a function such as the GDR function, the virtual boundary may not correspond to the optimal or second-best solution. It is preferable that the in-loop filter does not cross from the refreshed area (i.e., the clean area) to the non-refreshed area (i.e., the dirty area) (i.e., it is not allowed to use samples in the non-refreshed area to apply the in-loop filter to blocks in the refreshed area), but the application of the in-loop filter that crosses from the non-refreshed area to the refreshed area should be allowed (i.e., it should be allowed to use samples in the refreshed area to apply the in-loop filter to blocks in the non-refreshed area).
[0110] The second-best solution (using a virtual boundary that does not allow the in-loop filter for both sides of the virtual boundary in a specific application or function) may result in performance degradation in both objective measurements and subjective measures. If the in-loop filter cannot be applied to blocks along the virtual boundary from the non-refreshed area, the coding performance may degrade in terms of the compression ratio as much as possible, and artifacts may be blocked along the virtual boundary, resulting in subjective performance degradation.
[0111] Embodiment
[0112] This disclosure proposes various embodiments to solve the above-mentioned problems of the prior art.
[0113] FIG. 6 is a flowchart showing an image encoding method according to an embodiment of the present disclosure, and FIG. 7 is a flowchart showing an image decoding method according to an embodiment of the present disclosure.
[0114] Referring to FIG. 6, the image encoding device 100 can determine whether to apply an in-loop filter to a block corresponding to a virtual boundary (S610).
[0115] The correspondence between the virtual boundary and the block can include cases where the boundary of the block and the virtual boundary are parallel to each other, cases where the boundary of the block and the virtual boundary coincide with each other, cases where the boundary of the block constitutes part or all of the virtual boundary, and the like.
[0116] The image encoding device 100 can determine the type of the virtual boundary based on the determination of whether to apply the in-loop filter (S620).
[0117] The type of the virtual boundary can include a type in which the in-loop filter is bidirectionally inactivated with respect to the virtual boundary, a type in which the in-loop filter is unidirectionally inactivated with respect to the virtual boundary, a type in which the in-loop filter is inactivated in another unidirectional manner with respect to the virtual boundary, and the like.
[0118] The virtual boundary can include a vertical virtual boundary and a horizontal virtual boundary. The horizontal virtual boundary corresponds to a virtual boundary in the horizontal direction, and the vertical virtual boundary can correspond to a virtual boundary in the vertical direction.
[0119] In the case of a horizontal virtual boundary, the following types can exist (be used).
[0120] a. A horizontal virtual boundary in which the in-loop filter is inactivated for a block whose upper (top) boundary or lower (bottom) boundary of the block is along the virtual boundary
[0121] b. A horizontal virtual boundary in which the in-loop filter is inactivated for a block whose lower boundary of the block is along the virtual boundary
[0122] c. A horizontal virtual boundary in which the in-loop filter is inactivated for a block whose upper boundary of the block is along the virtual boundary
[0123] In the case of a vertical virtual boundary, the following types can be present (used).
[0124] a. A vertical virtual boundary where the in-loop filter is deactivated for a block whose right or left boundary is along the virtual boundary
[0125] b. A vertical virtual boundary where the in-loop filter is deactivated for a block whose right boundary is along the virtual boundary
[0126] c. A vertical virtual boundary where the in-loop filter is deactivated for a block whose left boundary is along the virtual boundary
[0127] "Along" indicating the relationship between the block boundary and the virtual boundary can include cases where the block boundary and the virtual boundary are parallel to each other, cases where the block boundary and the virtual boundary coincide with each other, cases where the block boundary constitutes part or all of the virtual boundary, cases where the block boundary and the virtual boundary correspond to each other, etc.
[0128] The image encoding device 100 can encode first information indicating the result regarding the determination of whether to signal information for the virtual boundary into the bitstream. That is, the first information indicating whether to signal information for the virtual boundary can be encoded into the bitstream. For example, the first value (e.g., 0) of the first information can indicate that the information for the virtual boundary is not signaled, and the second value (e.g., 1) of the first information can indicate that the information for the virtual boundary is signaled.
[0129] When it is determined that the information for the virtual boundary is to be signaled, the image encoding device 100 can encode type information into the bitstream. The type information is information indicating the type of the virtual boundary and can represent any one value among the values (0, 1, 2, 3) indicating the type of the virtual boundary.
[0130] The type information can include horizontal type information indicating the type of the horizontal virtual boundary and vertical type information indicating the type of the vertical virtual boundary.
[0131] The horizontal type information can be realized by the following 2-bit syntax element for indicating the type of the horizontal virtual boundary.
[0132] -0: Horizontal virtual boundary where the in-loop filter is deactivated for a block whose upper or lower boundary of the block is along the virtual boundary
[0133] -1: Horizontal virtual boundary where the in-loop filter is deactivated for a block whose lower boundary of the block is along the virtual boundary
[0134] -2: Horizontal virtual boundary where the in-loop filter is deactivated for a block whose upper boundary of the block is along the virtual boundary
[0135] -3: reserved
[0136] The vertical type information can be realized by the following 2-bit syntax element for indicating the type of the vertical virtual boundary.
[0137] -0: Vertical virtual boundary where the in-loop filter is deactivated for a block whose right or left boundary of the block is along the virtual boundary
[0138] -1: Vertical virtual boundary where the in-loop filter is deactivated for a block whose right boundary of the block is along the virtual boundary
[0139] -2: Vertical virtual boundary where the in-loop filter is deactivated for a block whose left boundary of the block is along the virtual boundary
[0140] The value 0 (first value) of the syntax element corresponding to the type information can indicate a first type in which the in-loop filter is deactivated bidirectionally with respect to the virtual boundary, and the value 1 (second value) of the syntax element can indicate a second type in which the in-loop filter is deactivated unidirectionally with respect to the virtual boundary, and the value 2 (third value) of the syntax element can indicate a third type in which the in-loop filter is deactivated in another unidirectional manner with respect to the virtual boundary.
[0141] Here, "the in-loop filter is deactivated bidirectionally" can indicate that, among the two regions divided based on the virtual boundary, both "applying the in-loop filter to a block in another region using samples in a certain region" and "applying the in-loop filter to a block in a certain region using samples in another region" are deactivated. Furthermore, "the in-loop filter is deactivated unidirectionally or in another unidirectional manner" can indicate that, among the two regions divided based on the virtual boundary, "applying the in-loop filter to a block in another region using samples in a certain region" is deactivated, while "applying the in-loop filter to a block in a certain region using samples in another region" is activated.
[0142] Referring to FIG. 7, the image decoding apparatus 200 can determine the type of the virtual boundary (S710).
[0143] The type of the virtual boundary can include a type in which the in-loop filter is deactivated bidirectionally with respect to the virtual boundary, a type in which the in-loop filter is deactivated unidirectionally with respect to the virtual boundary, a type in which the in-loop filter is deactivated in another unidirectional manner with respect to the virtual boundary, and the like.
[0144] The type of the virtual boundary can be determined based on the type information obtained from the bitstream. The type information is information indicating the type of the virtual boundary, and can represent any one of the values (0, 1, 2, 3) indicating the type of the virtual boundary. Specifically, when the value of the type information is 0, it can be determined that the virtual boundary is a virtual boundary where the in-loop filter is deactivated for the block along the upper / right boundary or the lower / left boundary of the block. When the value of the type information is 1, it can be determined that the virtual boundary is a virtual boundary where the in-loop filter is deactivated for the block along the upper / right boundary of the block. When the value of the type information is 2, it can be determined that the virtual boundary is a virtual boundary where the in-loop filter is deactivated for the block along the lower / left boundary of the block.
[0145] The image decoding apparatus 200 can determine whether to apply the in-loop filter to the block based on the type of the virtual boundary (S720).
[0146] For example, when the type of the vertical virtual boundary is a type where the in-loop filter is deactivated unidirectionally, it can be determined that the in-loop filter is not applied unidirectionally. When the type of the horizontal virtual boundary is a type where the in-loop filter is deactivated unidirectionally, it can be determined that the in-loop filter is not applied unidirectionally.
[0147] Whether to obtain the type information can be determined based on the first information obtained from the bitstream. The first information is information regarding the virtual boundary. The first value (for example, 0) of the first information can indicate that the information regarding the virtual boundary is not signaled. The second value (for example, 1) of the first information can indicate that the information regarding the virtual boundary is signaled. The type information can be obtained from the bitstream when the first information indicates that the information regarding the virtual boundary is signaled, and cannot be obtained when the first information indicates that the information regarding the virtual boundary is not signaled.
[0148] In this way, the present disclosure uses additional types of virtual boundaries that deactivate the (unidirectional) loop filter on only one side of the virtual boundary, in addition to deactivating the (bidirectional) loop filter on both sides of the virtual boundary, so that coding efficiency and subjective image quality can be improved.
[0149] Embodiment 1
[0150] Example 1 is an example of a method for signaling and obtaining first information and type information via the SPS level.
[0151] The syntax structure for Example 1 is shown in Table 1.
[0152]
Table 1
[0153] sps_virtual_boundaries_present_flag is the first information. sps_virtual_boundaries_present_flag == 0 can indicate that information about the virtual boundary is not signaled at the SPS level, and sps_virtual_boundaries_present_flag == 1 can indicate that information about the virtual boundary is signaled at the SPS level.
[0154] sps_virtual_boundary_type_x can correspond to the vertical type information indicating the type of the vertical virtual boundary. sps_virtual_boundary_type_x == 0 can indicate that the type of the vertical virtual boundary is the first type, sps_virtual_boundary_type_x == 1 can indicate that the type of the vertical virtual boundary is the second type, and sps_virtual_boundary_type_x == 2 can indicate that the type of the vertical virtual boundary is the third type.
[0155] sps_virtual_boundary_type_y can correspond to the horizontal type information indicating the type of the horizontal virtual boundary. sps_virtual_boundary_type_y == 0 can indicate that the type of the horizontal virtual boundary is the first type, sps_virtual_boundary_type_y == 1 can indicate that the type of the horizontal virtual boundary is the second type, and sps_virtual_boundary_type_y == 2 can indicate that the type of the horizontal virtual boundary is the third type.
[0156] A flowchart showing the image encoding method according to the first embodiment is shown in FIG. 8, and a flowchart showing the image decoding method according to the first embodiment is shown in FIG. 9.
[0157] Referring to FIG. 8, the image encoding apparatus 100 can determine how to signal information about the virtual boundary (S810). When it is determined to signal information about the virtual boundary, the image encoding apparatus 100 encodes the value of sps_virtual_boundaries_present_flag to 1 (S820) and can encode the type information (sps_virtual_boundary_type_x and sps_virtual_boundary_type_y) (S820).
[0158] In contrast, if it is determined that information regarding the virtual boundary is not signaled, the image encoding apparatus 100 can encode the value of sps_virtual_boundaries_present_flag as 0 (S840). In this case, the type information (sps_virtual_boundary_type_x and sps_virtual_boundary_type_y) cannot be encoded.
[0159] Referring to FIG. 9, the image decoding apparatus 200 can obtain sps_virtual_boundaries_present_flag from the bitstream (S910) and determine the value of sps_virtual_boundaries_present_flag (S920).
[0160] If sps_virtual_boundaries_present_flag == 1, the image decoding apparatus 200 can obtain the type information (sps_virtual_boundary_type_x and sps_virtual_boundary_type_y) from the bitstream (S930) and determine the type of the virtual boundary based on the type information (sps_virtual_boundary_type_y and sps_virtual_boundary_type_y) (S940).
[0161] In contrast, if sps_virtual_boundaries_present_flag == 0, since the type information is not signaled, the process of obtaining the type information (S930) and the process of determining the type of the virtual boundary (S940) cannot be performed.
[0162] Embodiment 2
[0163] Example 2 is an example of a method for signaling and obtaining the first information and the type information via the PH level.
[0164] The syntax structure for Example 2 is shown in Table 2.
[0165]
Table 2
[0166] The first information can include a first flag signaled and obtained via the SPS level and a second flag signaled and obtained via the PH level. That is, the first information can be signaled and obtained via the SPS level and the PH level. The first flag can be sps_virtual_boundaries_present_flag, and the second flag can be ph_virtual_boundaries_present_flag. The type information can be signaled and obtained via the SPS level or the PH level according to the values of the first flag and the second flag.
[0167] ph_virtual_boundaries_present_flag is the first information. ph_virtual_boundaries_present_flag == 0 can indicate that information about the virtual boundary is not signaled at the PH level, and ph_virtual_boundaries_present_flag == 1 can indicate that information about the virtual boundary is signaled at the PH level.
[0168] ph_virtual_boundary_type_x can correspond to vertical type information indicating the type of the vertical virtual boundary. ph_virtual_boundary_type_x == 0 can indicate that the type of the vertical virtual boundary is the first type, ph_virtual_boundary_type_x == 1 can indicate that the type of the vertical virtual boundary is the second type, and ph_virtual_boundary_type_x == 2 can indicate that the type of the vertical virtual boundary is the third type.
[0169] ph_virtual_boundary_type_y can correspond to the horizontal type information indicating the type of the horizontal virtual boundary. ph_virtual_boundary_type_y == 0 can indicate that the type of the horizontal virtual boundary is the first type, ph_virtual_boundary_type_y == 1 can indicate that the type of the horizontal virtual boundary is the second type, and ph_virtual_boundary_type_y == 2 can indicate that the type of the horizontal virtual boundary is the third type.
[0170] A flowchart showing the image encoding method according to Embodiment 2 is shown in FIG. 10, and a flowchart showing the image decoding method according to Embodiment 2 is shown in FIG. 11.
[0171] Referring to FIG. 10, the image encoding apparatus 100 can determine how to signal information about the virtual boundary (S1010). When it is determined to signal information about the virtual boundary, the image encoding apparatus 100 can encode the value of sps_virtual_boundaries_present_flag to 1 (S1020) and can encode the type information (sps_virtual_boundary_type_x and sps_virtual_boundary_type_y) (S1030). In contrast, when it is determined not to signal information about the virtual boundary, the image encoding apparatus 100 can encode the value of sps_virtual_boundaries_present_flag to 0 (S1040).
[0172] In this case, the image encoding device 100 can determine whether to signal information about the virtual boundary at the PH level (S1050). When it is determined to signal information about the virtual boundary at the PH level, the image encoding device 100 encodes the value of ph_virutual_boundary_present_flag as 1 (S1060) and can encode the type information (ph_virtual_boundary_type_x and ph_virtual_boundary_type_y) (S1070).
[0173] In contrast, when it is determined not to signal information about the virtual boundary at the PH level, the image encoding device 100 can encode the value of ph_virtual_boundaries_present_flag as 0 (S1080). In this case, the type information (ph_virtual_boundary_type_x and ph_virtual_boundary_type_y) cannot be encoded.
[0174] Referring to FIG. 11, the image decoding device 200 obtains sps_virtual_boundaries_present_flag from the bitstream (S1110) and can determine the value of sps_virtual_boundaries_present_flag (S1120). When sps_virtual_boundaries_present_flag == 1, the image decoding device 200 can obtain the type information (sps_virtual_boundary_type_x and sps_virtual_boundary_type_y) from the bitstream (S1130) and can determine the type of the virtual boundary based on the type information (sps_virtual_boundary_type_x and sps_virtual_boundary_type_x) (S1140).
[0175] In contrast, when sps_virtual_boundaries_present_flag == 0, the image decoding apparatus 200 can obtain ph_virtual_boundaries_present_flag from the PH level of the bitstream (S1150) and can determine the value of ph_virtual_boundaries_present_flag (S1160).
[0176] When ph_virtual_boundaries_present_flag == 1, the image decoding apparatus 200 can obtain type information (ph_virtual_boundary_type_x and ph_virtual_boundary_type_y) from the PH level (S1170) and can determine the type of the virtual boundary based on the type information (S1140). In contrast, when ph_virtual_boundaries_present_flag == 0, since the type information is not signaled, the process of obtaining the type information (S1170) and the process of determining the type of the virtual boundary (S1140) cannot be performed.
[0177] FIG. 12 is a diagram exemplarily showing a content streaming system to which an embodiment according to the present disclosure can be applied.
[0178] As shown in FIG. 12, the content streaming system to which the embodiment of the present disclosure is applied can generally include an encoding server, a streaming server, a Web server, a media storage, a user device, and a multimedia input device.
[0179] The encoding server compresses the content input from a multimedia input device such as a smartphone, a camera, or a camcorder into digital data to generate a bitstream and transmits this to the streaming server. As another example, when a multimedia input device such as a smartphone, a camera, or a video camera directly generates a bitstream, the encoding server can be omitted.
[0180] The bitstream can be generated by an image encoding method and / or an image encoding apparatus to which the embodiments of the present disclosure are applied, and the streaming server can temporarily store the bitstream in the process of transmitting or receiving the bitstream.
[0181] The streaming server transmits multimedia data to a user device based on a user request via a web server, and the web server can serve as a medium for informing the user of available services. When the user requests a desired service from the web server, the web server transmits this to the streaming server, and the streaming server can transmit multimedia data to the user. At this time, the content streaming system can include a separate control server, and in this case, the control server can control commands / responses between each device within the content streaming system.
[0182] The streaming server can receive content from a media storage and / or an encoding server. For example, when receiving content from the encoding server, the content can be received in real time. In this case, in order to provide a smooth streaming service, the streaming server can store the bitstream for a certain period of time.
[0183] Examples of the user device may include a mobile phone, a smart phone, a laptop computer, a digital broadcast terminal, a PDA (personal digital assistants), a PMP (portable multimedia player), a navigation device, a slate PC, a tablet PC, an ultrabook, a wearable device, for example, a smartwatch, smart glass, an HMD (head mounted display), a digital TV, a desktop computer, a digital signage, and the like.
[0184] Each server in the content streaming system can be operated as a distributed server, and in this case, the data received from each server can be processed distributively.
[0185] The scope of the present disclosure includes software or machine-executable commands (for example, an operating system, an application, firmware, a program, etc.) that enable operations according to various example methods to be executed on a device or a computer, and a non-transitory computer-readable medium on which such software or commands are stored and can be executed on the device or the computer.
Industrial Applicability
[0186] Examples according to the present disclosure can be used for encoding / decoding an image.
Claims
1. An image decoding method performed by an image decoding apparatus, comprising: a step of determining a type of a virtual boundary; a step of determining whether to apply an in-loop filter to a block based on the type of the virtual boundary, wherein the type of the virtual boundary includes a type in which the in-loop filter for the block is inactivated unidirectionally with respect to the virtual boundary.
2. The virtual boundary includes a vertical virtual boundary, and based on the type of the vertical virtual boundary being a type in which the in-loop filter is inactivated unidirectionally, the in-loop filter is determined not to be applied in the unidirectional direction, according to the image decoding method of Claim 1.
3. The virtual boundary includes a horizontal virtual boundary, and based on the type of the horizontal virtual boundary being a type in which the in-loop filter is inactivated unidirectionally, the in-loop filter is determined not to be applied in the unidirectional direction, according to the image decoding method of Claim 1.
4. The type of the virtual boundary is determined based on type information obtained from a bit stream, according to the image decoding method of Claim 1.
5. The virtual boundary includes a vertical virtual boundary, and the type information includes vertical type information indicating the type of the vertical virtual boundary, according to the image decoding method of Claim 4.
6. A first value of the vertical type information represents a first type in which the in-loop filter is inactivated bidirectionally with respect to the vertical virtual boundary, and a right boundary or a left boundary of the block corresponds to the vertical virtual boundary, according to the image decoding method of Claim 5.
7. A second value of the vertical type information represents a second type in which the in-loop filter is inactivated unidirectionally with respect to the vertical virtual boundary, and a right boundary of the block corresponds to the vertical virtual boundary, according to the image decoding method of Claim 5.
8. A third value of the vertical type information represents a third type in which the in-loop filter is inactivated unidirectionally with respect to the vertical virtual boundary, and a left boundary of the block corresponds to the vertical virtual boundary, according to the image decoding method of Claim 5.
9. The virtual boundary includes a horizontal virtual boundary, and the type information includes horizontal type information indicating the type of the horizontal virtual boundary, according to the image decoding method of Claim 4.
10. The first value of the horizontal type information represents a first type in which the in-loop filter is deactivated bidirectionally with respect to the horizontal virtual boundary, The upper boundary or the lower boundary of the block corresponds to the horizontal virtual boundary, and the image decoding method according to claim 9.
11. The second value of the horizontal type information represents a second type in which the in-loop filter is deactivated unidirectionally with respect to the horizontal virtual boundary, The upper boundary of the block corresponds to the horizontal virtual boundary, and the image decoding method according to claim 9.
12. The third value of the horizontal type information represents a third type in which the in-loop filter is deactivated unidirectionally with respect to the horizontal virtual boundary, The lower boundary of the block corresponds to the horizontal virtual boundary, and the image decoding method according to claim 6.
13. The type information is obtained based on the fact that a second flag obtained from the PH (picture header) level of the bitstream indicates that information regarding the virtual boundary is signaled at the PH level, The second flag is obtained based on the fact that a first flag obtained from the SPS (sequence parameter set) level of the bitstream indicates that information regarding the virtual boundary is not signaled at the SPS level, and the image decoding method according to claim 4.
14. An image encoding method performed by an image encoding apparatus, Determining whether to apply an in-loop filter to a block corresponding to a virtual boundary; Determining the type of the virtual boundary based on the determination of whether to apply the in-loop filter, The type of the virtual boundary includes a type in which the in-loop filter for the block is deactivated unidirectionally with respect to the virtual boundary, and the image encoding method.
15. A method for transmitting a bitstream generated by an image encoding method, The image encoding method includes: Determining whether to apply an in-loop filter to a block corresponding to a virtual boundary; Determining the type of the virtual boundary based on the determination of whether to apply the in-loop filter, A method, wherein the type of the virtual boundary includes a type in which an in-loop filter for the block is deactivated unidirectionally with respect to the virtual boundary.