Image encoding / decoding method and apparatus and recording medium storing bitstream
Patent Information
- Application Number
- CN202580020537.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-13
- Filing Date
- 2025-03-13
- Publication Date
- 2026-10-13
AI Technical Summary
[0025]根据本公开,可以通过在当前块周围扩展可参考区域来提高帧内预测的编码效率。
Smart Images

Figure CN122910609A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to an image encoding / decoding method and apparatus, as well as a recording medium for storing bit streams. Background Technology
[0002] Recently, the demand for high-resolution and high-quality images, such as HD (high-definition) and UHD (ultra-high-definition) images, has been increasing in various application areas, and therefore, efficient image compression technologies are being discussed.
[0003] Various techniques exist, such as inter-frame prediction techniques that use video compression technology to predict pixel values included in the current frame from frames before or after the current frame, intra-frame prediction techniques that use pixel information in the current frame to predict pixel values included in the current frame, and entropy coding techniques that assign short codes to values that occur frequently and long codes to values that occur infrequently. These image compression techniques can be used to effectively compress image data and send or store it. Summary of the Invention
[0004] Technical issues
[0005] This disclosure provides methods and apparatus for deriving reference samples for intra-frame prediction of the current block.
[0006] This disclosure provides methods and apparatus for deriving the intra-prediction mode of the current block.
[0007] This disclosure provides a method and apparatus for deriving prediction samples based on intra-frame prediction.
[0008] Technical solution
[0009] The image decoding method and apparatus of this disclosure can derive reference samples for intra-frame prediction of the current block, derive the intra-frame prediction mode of the current block, generate prediction samples for the current block based on the reference samples and the intra-frame prediction mode, and reconstruct the current block based on the prediction samples. Here, the reference samples may include reference samples of neighboring regions of the current block, and the reference samples of neighboring regions of the current block may be derived based on samples belonging to neighboring regions of a predetermined reference block.
[0010] In the image decoding method and apparatus according to the present disclosure, adjacent regions may include at least one of the following: a lower region, a right region, a lower right region, a lower left region, or an upper right region.
[0011] In the image decoding method and apparatus according to the present disclosure, the reference block belongs to a reference frame having an output order different from that of the current frame to which the current block belongs, and the reference block can be determined based on a predetermined motion vector.
[0012] In the image decoding method and apparatus according to the present disclosure, a reference block can be determined as a block within a reference frame that is at the same position as the current block.
[0013] In the image decoding method and apparatus according to the present disclosure, the cost between the template of a block belonging to a predetermined search range within a reference frame and the template of the current block is calculated, and the reference block may be determined based on the calculated cost.
[0014] In the image decoding method and apparatus according to the present disclosure, the cost between the template of a block belonging to a predetermined search range within the current frame to which the current block belongs and the template of the current block can be calculated, and the reference block can be determined based on the calculated cost.
[0015] In the image decoding method and apparatus according to the present disclosure, a reference block may be determined based on at least one block vector from a plurality of block vectors belonging to a block vector list for the current block.
[0016] In the image decoding method and apparatus according to this disclosure, when the number of derived reference samples is less than the number of reference samples required for intra-frame prediction of the current block, additional reference samples can be derived based on the derived reference samples by mirroring or padding.
[0017] In the image decoding method and apparatus according to this disclosure, the intra-frame prediction mode can be derived based on a candidate mode list that includes multiple candidate modes. Here, the multiple candidate modes may include pre-stored intra-frame prediction modes in adjacent regions of a reference block.
[0018] In the image decoding method and apparatus according to the present disclosure, the plurality of candidate modes may include at least one of a first intra-frame prediction mode stored in the right adjacent sample of the reference block or a second intra-frame prediction mode stored in the lower adjacent sample of the reference block.
[0019] In the image decoding method and apparatus according to the present disclosure, the prediction sample may be generated based on a weighted sum of at least two reference samples belonging to the adjacent regions of the current block.
[0020] The image coding method and apparatus of this disclosure can derive reference samples for intra-frame prediction of the current block, derive the intra-frame prediction mode of the current block, generate prediction samples for the current block based on the reference samples and the intra-frame prediction mode, derive transform coefficients based on the residual samples of the current block, and encode residual information related to the transform coefficients. Here, the reference samples include reference samples of neighboring regions of the current block, and the reference samples of neighboring regions of the current block can be derived based on samples of neighboring regions belonging to a predetermined reference block.
[0021] A computer-readable digital storage medium is provided for storing encoded video / image information, which enables a decoding device according to the present disclosure to perform an image decoding method.
[0022] A computer-readable digital storage medium is provided for storing video / image information generated based on the image encoding method of this disclosure.
[0023] A method and apparatus are provided for transmitting video / image information generated according to the image encoding method of this disclosure.
[0024] Beneficial effects
[0025] According to this disclosure, the coding efficiency of intra-frame prediction can be improved by expanding the reference area around the current block.
[0026] According to this disclosure, the coding efficiency of intra-prediction can be improved by enabling the use of an intra-prediction mode that is more optimized for the current block.
[0027] According to this disclosure, the accuracy of intra-frame prediction can be improved and the number of bits transmitted for residual data can be reduced. Attached Figure Description
[0028] Figure 1 A video / image encoding system according to this disclosure is shown.
[0029] Figure 2 A schematic block diagram of an encoding apparatus to which embodiments of the present disclosure are applicable and which performs encoding of video / image signals is shown.
[0030] Figure 3 A schematic block diagram of a decoding apparatus to which embodiments of the present disclosure are applicable and which performs decoding of video / image signals is shown.
[0031] Figure 4 A decoding method performed by a decoding device 300 as an embodiment of the present disclosure is shown.
[0032] Figure 5 A schematic configuration of a decoding device 300 performing a decoding method according to the present disclosure is shown.
[0033] Figure 6 An encoding method performed by an encoding device 200 as an embodiment of the present disclosure is shown.
[0034] Figure 7 A schematic configuration of an encoding device 200 performing the encoding method according to this disclosure is shown.
[0035] Figure 8 Examples of content streaming systems to which embodiments of this disclosure can be applied are shown. Detailed Implementation
[0036] Because this disclosure can be modified in various ways and has multiple embodiments, specific embodiments will be shown in the accompanying drawings and described in detail in the specific embodiments. However, this disclosure is not intended to be limited to the specific embodiments, but should be understood to include all changes, equivalents, and substitutions included within the spirit and scope of this disclosure. Similar reference numerals are used for similar components in the description of the various figures.
[0037] Terms such as "first," "second," etc., may be used to describe various components, but components should not be limited by these terms. Terms are used only to distinguish one component from others. For example, without departing from the scope of this disclosure, a first component may be referred to as a second component, and similarly, a second component may be referred to as a first component. Terms include any combination of one or more of the associated terms.
[0038] When a component is described as "connected" or "linked" to another component, it should be understood that it can be directly connected or linked to the other component, but the other component can exist in between. On the other hand, when a component is described as "directly connected" or "directly linked" to another component, it should be understood that there is no other component in between.
[0039] The terminology used in this application is for describing particular embodiments only and is not intended to limit this disclosure. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, it should be understood that terms such as “comprising” or “having” are intended to specify the presence of the features, quantities, steps, operations, components, portions, or combinations thereof described in this specification, but do not preclude the possibility of the presence or addition of one or more other features, quantities, steps, operations, components, portions, or combinations thereof.
[0040] This disclosure relates to video / image coding. For example, the methods / implementations disclosed herein can be applied to methods disclosed in the Multifunctional Video Coding (VVC) standard. Additionally, the methods / implementations disclosed herein can be applied to methods disclosed in the Basic Video Coding (EVC) standard, the AOMedia Video 1 (AV1) standard, the Audio Video Coding 2 (AVS2) standard, or next-generation video / image coding standards (e.g., H.267 or H.268).
[0041] This specification sets forth various implementations of video / image encoding, and unless otherwise specified, these implementations may be combined with each other.
[0042] In this article, video can refer to a collection of images over time. A frame typically refers to a unit representing an image within a specific time period, and a slice / tile is a unit that forms part of a frame during encoding. A slice / tile can include at least one Code Tree Unit (CTU). A frame can consist of at least one slice / tile. A tile is a rectangular area composed of multiple CTUs within a specific tile column and a specific tile row of a frame. A tile column is a rectangular area of CTUs with a height equal to the height of the frame and a width specified by the syntax requirements of the frame parameter set. A tile row is a rectangular area of CTUs with a height specified by the frame parameter set and a width equal to the width of the frame. CTUs within a tile can be arranged continuously according to CTU raster scans, and tiles within a frame can be arranged continuously according to tile raster scans. A slice can include an integer number of complete tiles of a frame that can be exclusively included in a single NAL unit, or an integer number of consecutive complete CTU rows within a tile. Furthermore, a frame can be divided into at least two sub-frames. A sub-frame can be a rectangular area of at least one slice within a frame.
[0043] A pixel, or pelin, can represent the smallest unit that makes up a frame (or image). Additionally, "sample" can be used as the term corresponding to a pixel. A sample can typically represent a pixel or a pixel value, and can represent only the pixel / pixel value of the luminance component or only the pixel / pixel value of the chrominance component.
[0044] A unit can represent the basic unit of image processing. A unit may include a specific region of the image and at least one of the information associated with that region. A unit may include a luminance block and two chrominance (e.g., cb, cr) blocks. In some cases, the term "unit" may be used interchangeably with terms such as "block" or "region". In general, an M×N block may include a set (or array) of transform coefficients or samples (or sample arrays) consisting of M columns and N rows.
[0045] In this document, “A or B” can mean “A only”, “B only”, or “both A and B”. In other words, “A or B” can be interpreted as “A and / or B”. For example, “A, B or C” can mean “A only”, “B only”, “C only”, or “any combination of A, B and C”.
[0046] The forward slash ( / ) or comma used in this article can indicate "and / or". For example, "A / B" can mean "A and / or B". Therefore, "A / B" can mean "A only", "B only", or "both A and B". For example, "A, B, C" can mean "A, B, or C".
[0047] In this document, "at least one of A and B" can mean "only A", "only B" or "both A and B". Furthermore, in this document, expressions such as "at least one of A or B" or "at least one of A and / or B" can be interpreted in the same way as "at least one of A and B".
[0048] Additionally, in this document, "at least one of A, B, and C" can mean "A only", "B only", "C only" or "any combination of A, B, and C". Furthermore, "at least one of A, B, or C" or "at least one of A, B, and / or C" can mean "at least one of A, B, and C".
[0049] Additionally, the parentheses used in this document can indicate "for example". Specifically, when the indication is "prediction (intra-frame prediction)", "intra-frame prediction" can be cited as an example of "prediction". In other words, "prediction" in this document is not limited to "intra-frame prediction", and "intra-frame prediction" can be cited as an example of "prediction". Furthermore, even when the indication is "prediction (i.e., intra-frame prediction)", "intra-frame prediction" can be cited as an example of "prediction".
[0050] In this article, the technical features described individually in a single diagram can be implemented individually or simultaneously.
[0051] Figure 1 A video / image encoding system according to this disclosure is shown.
[0052] Reference Figure 1 A video / image encoding system may include a first device (source device) and a second device (receiving device).
[0053] A source device can transmit encoded video / image information or data to a receiving device in the form of a file or stream via a digital storage medium or network. The source device may include a video source, an encoding device, and a transmitting unit. The receiving device may include a receiving unit, a decoding device, and a renderer. The encoding device may be referred to as a video / image encoding device, and the decoding device may be referred to as a video / image decoding device. The transmitter may be included in the encoding device. The receiver may be included in the decoding device. The renderer may include a display unit, and the display unit may consist of a separate device or external components.
[0054] A video source can acquire video / images through processes that capture, synthesize, or generate video / images. A video source may include means for capturing video / images and means for generating video / images. Means for capturing video / images may include at least one camera, a video / image archive containing previously captured video / images, etc. Means for generating video / images may include a computer, tablet computer, smartphone, etc., and can generate video / images (electronically). For example, virtual video / images can be generated by a computer, etc., and in this case, the process of capturing video / images can be replaced by a process of generating related data.
[0055] Encoding devices can encode input video / images. They can perform a series of processes such as prediction, transformation, and quantization for compression and encoding efficiency. The encoded data (encoded video / image information) can be output as a bitstream.
[0056] The transmitting unit can send encoded video / image information or data, output in bitstream form, to the receiving unit of the receiving device in the form of a file or stream via a digital storage medium or network. The digital storage medium can include various storage media such as USB, SD, CD, DVD, Blu-ray, HDD, SSD, etc. The transmitting unit can include elements for generating media files according to a predetermined file format, and may include elements for transmission via a broadcast / communication network. The receiving unit can receive / extract the bitstream and send it to a decoding device.
[0057] Decoding devices can decode video / images by performing a series of processes, such as dequantization, inverse transform, and prediction, that correspond to the operations of encoding devices.
[0058] The renderer can render decoded video / images. The rendered video / images can be displayed through a display unit.
[0059] Figure 2 A schematic block diagram of an encoding apparatus that can be applied to embodiments of the present disclosure and perform encoding of video / image signals is shown.
[0060] Reference Figure 2The encoding device 200 may consist of an image segmenter 210, a predictor 220, a residual processor 230, an entropy encoder 240, an adder 250, a filter 260, and a memory 270. The predictor 220 may include an inter-frame predictor 221 and an intra-frame predictor 222. The residual processor 230 may include a transformer 232, a quantizer 233, a dequantizer 234, and an inverse transformer 235. The residual processor 230 may also include a subtractor 231. The adder 250 may be referred to as a reconstructor or a reconstruction block generator. According to embodiments, the image segmenter 210, predictor 220, residual processor 230, entropy encoder 240, adder 250, and filter 260 may be configured by at least one hardware component (e.g., an encoder chipset or processor). Additionally, the memory 270 may include a decoded picture buffer (DPB) and may be configured by a digital storage medium. The hardware component may also include the memory 270 as an internal / external component.
[0061] Image segmenter 210 can segment an input image (or picture or frame) input to encoding device 200 into at least one processing unit. As an example, a processing unit can be referred to as a coding unit (CU). In this case, the coding unit can be recursively segmented from coding tree unit (CTU) or maximum coding unit (LCU) according to a quadtree-binary-tritree (QTBTTT) structure.
[0062] For example, a coding unit can be segmented into multiple deeper coding units based on a quadtree, binary tree, and / or ternary tree structure. In this case, for example, a quadtree structure can be applied first, followed by a binary tree and / or ternary tree structure. Alternatively, a binary tree structure can be applied before the quadtree structure. The coding process according to this specification can be performed based on the final coding unit that is no longer segmented. In this case, based on image characteristics, coding efficiency, etc., the largest coding unit can be directly used as the final coding unit, or, if necessary, the coding unit can be recursively segmented into deeper coding units, and the coding unit with the optimal size can be used as the final coding unit. Here, the coding process can include processes such as prediction, transformation, and reconstruction, as described later.
[0063] As another example, the processing unit may also include a prediction unit (PU) or a transform unit (TU). In this case, the prediction unit and the transform unit can be divided or segmented from the aforementioned final encoding unit, respectively. The prediction unit may be a unit for predicting samples, and the transform unit may be a unit for deriving transform coefficients and / or a unit for deriving residual signals from transform coefficients.
[0064] In some cases, a unit can be used interchangeably with terms such as block or region. Generally, an M×N block can represent a set of transform coefficients or samples consisting of M columns and N rows. Samples can typically represent pixels or pixel values, and can represent only the pixel / pixel value of the luminance component, or only the pixel / pixel value of the chrominance component. Samples can be used as a term to form a frame (or image) corresponding to a pixel or cell.
[0065] Encoding device 200 can subtract the prediction signal (prediction block, prediction sample array) output from inter-frame predictor 221 or intra-frame predictor 222 from the input image signal (original block, original sample array) to generate a residual signal (residual signal, residual sample array), and the generated residual signal is sent to converter 232. In this case, the unit in encoding device 200 that subtracts the prediction signal (prediction block, prediction sample array) from the input image signal (original block, original sample array) can be called subtractor 231.
[0066] Predictor 220 can perform prediction on the block to be processed (hereinafter referred to as the current block) and generate a prediction block that includes prediction samples of the current block. Predictor 220 can determine whether to apply intra-frame prediction or inter-frame prediction on a per-block or per-unit basis. Predictor 220 can generate various information about the prediction (e.g., prediction mode information) and send it to entropy encoder 240, as described later in the description of the various prediction modes. The information about the prediction can be encoded in entropy encoder 240 and output as a bitstream.
[0067] Intra-predictor 222 can predict the current block by referencing samples within the current frame. Depending on the prediction mode, the referenced samples can be located near the current block or positioned at a specific distance away from the current block. In intra-prediction, the prediction mode can include at least one non-directional mode and multiple directional modes. The non-directional mode can include at least one of a DC mode or a planar mode. Depending on the granularity of the prediction direction, the directional modes can include 33 or 65 directional modes. However, this is just an example; more or fewer directional modes can be used depending on the configuration. Intra-predictor 222 can determine the prediction mode applied to the current block by using prediction modes applied to neighboring blocks.
[0068] Inter-frame predictor 221 can deduce the predicted 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 inter-frame prediction mode, motion information can be predicted on a block, sub-block, or sample basis based on the correlation between 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 information (L0 prediction, L1 prediction, Bi prediction, etc.). For 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 co-located reference block, a co-located CU (colCU), etc., and the reference frame including the temporally neighboring block may be referred to as a co-located frame (colPic). For example, inter-frame predictor 221 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 predictor 221 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 sent. In motion vector prediction (MVP) mode, motion vectors from surrounding blocks are used as motion vector predictors, and the motion vector difference is signaled to indicate the motion vector of the current block.
[0069] Predictor 220 can generate a prediction signal based on various prediction methods described later. For example, the predictor can not only apply intra-frame prediction or inter-frame prediction to predict a block, but can also apply both intra-frame and inter-frame prediction simultaneously. This can be referred to as the Inter-intra-frame Combined Prediction (CIIP) mode. Alternatively, the predictor can predict blocks based on the Intra-Block Copy (IBC) prediction mode, or it can predict blocks based on a palette mode. The IBC prediction mode or palette mode can be used for content image / video coding such as Screen Content Coding (SCC) in games, etc. IBC essentially performs prediction within the current frame, but it can be performed similarly to inter-frame prediction because it derives a reference block within the current frame. In other words, IBC can use at least one of the inter-frame prediction techniques described herein. The palette mode can be considered an example of intra-frame coding or intra-frame prediction. When applying a palette mode, sample values within the frame can be signaled based on information about the palette table and palette index. The prediction signal generated by predictor 220 can be used to generate a reconstructed signal or a residual signal.
[0070] Transformer 232 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 represents the transform obtained from a graph when the relationship information between pixels is represented as a graph. CNT represents the transform obtained based on generating a prediction signal using all previously reconstructed pixels. Furthermore, the transform processing can be applied to square pixel blocks of the same size, or it can be applied to non-square blocks of variable size.
[0071] Quantizer 233 can quantize the transform coefficients and send them to entropy encoder 240, which can encode the quantized signal (information about the quantized transform coefficients) and output it as a bitstream. This information about the quantized transform coefficients can be called residual information. Quantizer 233 can rearrange the block-form quantized transform coefficients into a one-dimensional vector based on the coefficient scan order, and can generate information about the quantized transform coefficients based on this one-dimensional vector form.
[0072] The entropy encoder 240 can perform various encoding methods such as Golomb, context-adaptive variable-length coding (CAVLC), and context-adaptive binary arithmetic coding (CABAC). The entropy encoder 240 can encode information required for video / image reconstruction other than quantization transform coefficients (e.g., values of syntax elements, etc.) together or separately.
[0073] Encoded information (e.g., encoded video / image information) can be transmitted or stored in bitstream form at the Network Abstraction Layer (NAL) unit 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). Additionally, the video / image information may include general constraint information. Information and / or syntax elements transmitted from the encoding device to / signaled to the decoding device may be included in the video / image information. The video / image information can be encoded and included in the bitstream through the encoding process described above. The bitstream can be transmitted over a network or stored in a digital storage medium. Here, 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, SSD, etc. A transmitting unit (not shown) for transmitting the signal output from the entropy encoder 240 and / or a storage unit (not shown) for storing the signal may be configured as internal / external components of the encoding device 200, or the transmitting unit may also be included in the entropy encoder 240.
[0074] The quantized transform coefficients output from quantizer 233 can be used to generate a prediction signal. For example, the residual signal (residual block or residual sample) can be reconstructed by applying dequantization and inverse transform to the quantized transform coefficients via dequantizer 234 and inverse transformer 235. Adder 250 can add the reconstructed residual signal to the prediction signal output from inter-frame predictor 221 or intra-frame predictor 222 to generate a reconstructed signal (reconstructed frame, reconstructed block, reconstructed sample array). When there is no residual for the block to be processed (similar to when a skip mode is applied), the prediction block can be used as a reconstructed block. Adder 250 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 by filtering, as described later. Furthermore, luminance mapping and chroma scaling (LMCS) can be applied in frame encoding and / or reconstruction processing.
[0075] Filter 260 can improve subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 260 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image, and the modified reconstructed image can be stored in memory 270 (specifically, the DPB of memory 270). Various filtering methods can include deblocking filtering, sample adaptive offsetting, adaptive loop filtering, bilateral filtering, etc. Filter 260 can generate various information about the filtering and send it to entropy encoder 240. The information about the filtering can be encoded in entropy encoder 240 and output as a bitstream.
[0076] The modified reconstructed frame sent to memory 270 can be used as a reference frame in inter-frame predictor 221. When inter-frame prediction is applied through it, the encoding device can avoid prediction mismatch between the encoding device 200 and the decoding device, and can also improve encoding efficiency.
[0077] The DPB of memory 270 can store modified reconstructed frames for use as reference frames in inter-frame predictor 221. Memory 270 can store motion information of blocks from which motion information in the current frame is derived (or encoded) and / or motion information of blocks in previously reconstructed frames. The stored motion information can be sent to inter-frame predictor 221 as motion information for spatially or temporally neighboring blocks. Memory 270 can store reconstructed samples of reconstructed blocks in the current frame and send them to intra-frame predictor 222.
[0078] Figure 3 A schematic block diagram of a decoding device that can be implemented using the embodiments of this disclosure and perform decoding of video / image signals is shown.
[0079] Reference Figure 3 The decoding device 300 can be configured to include an entropy decoder 310, a residual processor 320, a predictor 330, an adder 340, a filter 350, and a memory 360. The predictor 330 may include an inter-frame predictor 332 and an intra-frame predictor 331. The residual processor 320 may include a dequantizer 321 and an inverse transformer 322.
[0080] According to the implementation, the entropy decoder 310, residual processor 320, predictor 330, adder 340, and filter 350 described above can be configured by a single hardware component (e.g., a decoder chipset or processor). Additionally, the memory 360 may include a decoded screen buffer (DPB) and can be configured by a digital storage medium. The hardware component may also include the memory 360 as an internal / external component.
[0081] When the input includes a bitstream containing video / image information, the decoding device 300 can respond to... Figure 2 The encoding device processes video / image information to reconstruct the image. For example, the decoding device 300 can deduce units / blocks based on block segmentation information obtained from the bitstream. The decoding device 300 can perform decoding using processing units applied in the encoding device. Therefore, the decoding processing unit can be an encoding unit, and the encoding unit can be segmented from the encoding tree unit or a larger encoding unit according to a quadtree structure, binary tree structure, and / or ternary tree structure. At least one transform unit can be derived from the encoding unit. Furthermore, the reconstructed image signal decoded and output by the decoding device 300 can be played back by a playback device.
[0082] Decoding device 300 can receive data in bitstream form from... Figure 2The signal output by the encoding device can be decoded by the entropy decoder 310. For example, the entropy decoder 310 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 Set (APS), Picture Parameter Set (PPS), Sequence Parameter Set (SPS), or Video Parameter Set (VPS). In addition, the video / image information may also include general constraint information. The decoding device can also decode the picture based on the information about the parameter sets and / or general constraint information. The information and / or syntax elements that are signaled / received, as described later herein, can be decoded and obtained from the bitstream through the decoding process. For example, the entropy decoder 310 can decode the information in the bitstream based on encoding methods such as Exponential Golomb coding, CAVLC, CABAC, etc., and output 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 from the bitstream, determine a context model using information about the syntax element to be decoded, decoding information of surrounding blocks and the block to be decoded, or information about symbols / bins decoded in previous steps, perform arithmetic decoding of bins by predicting the occurrence probability of bins based on the determined context model, and generate symbols corresponding to the values of each syntax element. In this case, after determining the context model, the CABAC entropy decoding method can update the context model by using information about the decoded symbols / bins for the context model of the next symbol / bin. Among the information decoded in the entropy decoder 310, information about prediction is provided to the predictors (inter-frame predictor 332 and intra-frame predictor 331), and the residual values (i.e., quantization transform coefficients and related parameter information) from which entropy decoding has been performed in the entropy decoder 310 can be input to the residual processor 320. The residual processor 320 can derive residual signals (residual blocks, residual samples, residual sample arrays). In addition, information about filtering from the information decoded in the entropy decoder 310 can be provided to the filter 350. Furthermore, the receiving unit (not shown) that receives the signal output from the encoding device can be further configured as an internal / external component of the decoding device 300, or the receiving unit can be a component of the entropy decoder 310.
[0083] Furthermore, the decoding device according to this specification may be referred to as a video / image / screen decoding device, and the decoding device may 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 310, and the sample decoder may include at least one of a dequantizer 321, an inverse transformer 322, an adder 340, a filter 350, a memory 360, an inter-frame predictor 332, and an intra-frame predictor 331.
[0084] Dequantizer 321 can dequantize the quantized transform coefficients and output the transform coefficients. Dequantizer 321 can rearrange the quantized transform coefficients into two-dimensional blocks. In this case, the rearrangement can be performed based on the coefficient scan order performed in the encoding device. Dequantizer 321 can perform dequantization on the quantized transform coefficients using quantization parameters (e.g., quantization step size information) and obtain the transform coefficients.
[0085] The inverse transformer 322 performs an inverse transformation on the transformation coefficients to obtain the residual signal (residual block, residual sample array).
[0086] Predictor 320 can perform prediction on the current block and generate a prediction block that includes prediction samples of the current block. Predictor 320 can determine whether to apply intra-frame prediction or inter-frame prediction to the current block based on the prediction information output from entropy decoder 310, and determine the specific intra-frame / inter-frame prediction mode.
[0087] Predictor 320 can generate prediction signals based on various prediction methods described later. For example, predictor 320 can not only apply intra-frame prediction or inter-frame prediction to predict a block, but can also apply intra-frame prediction and inter-frame prediction simultaneously. This can be referred to as the Inter-Frame Intra-Frame Combined Prediction (CIIP) mode. Alternatively, the predictor can predict blocks based on the Intra-Frame Block Copy (IBC) prediction mode, or it can predict blocks based on a palette mode. The IBC prediction mode or palette mode can be used for content image / video coding such as Screen Content Coding (SCC) in games, etc. IBC essentially performs prediction within the current frame, but it can be performed similarly to inter-frame prediction because it derives a reference block within the current frame. In other words, IBC can use at least one of the inter-frame prediction techniques described herein. The palette mode can be considered an example of intra-frame coding or intra-frame prediction. When the palette mode is applied, information about the palette table and palette index can be included in the video / image information and signaled.
[0088] Intra-predictor 331 can predict the current block by referencing samples within the current frame. Depending on the prediction mode, the referenced samples can be located near the current block or at a specific distance away. In intra-prediction, the prediction mode can include at least one non-directional mode and multiple directional modes. Intra-predictor 331 can determine the prediction mode applied to the current block by using prediction modes applied to neighboring blocks.
[0089] Inter-frame predictor 332 can deduce the predicted 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 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 information (L0 prediction, L1 prediction, Bi prediction, etc.). For 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, inter-frame predictor 332 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.
[0090] Adder 340 can add the obtained residual signal to the prediction signal (prediction block, prediction sample array) output from the predictor (including inter-frame predictor 332 and / or intra-frame predictor 331) to generate a reconstruction signal (reconstructed frame, reconstruction block, reconstruction sample array). When there is no residual for the block to be processed (similar to when a skip mode is applied), the prediction block can be used as a reconstruction block.
[0091] Adder 340 can be referred to as a reconstructor or reconstruction block generator. The generated reconstructed signal can be used for intra-frame prediction of the next block to be processed in the current frame, can be output through filtering as described later, or can be used for inter-frame prediction of the next frame. In addition, luminance mapping and chroma scaling (LMCS) can be applied in the frame decoding process.
[0092] Filter 350 can improve subjective / objective image quality by applying filtering to the reconstructed signal. For example, filter 350 can generate a modified reconstructed image by applying various filtering methods to the reconstructed image and send the modified reconstructed image to memory 360 (specifically, the DPB of memory 360). Various filtering methods may include deblocking filtering, sample adaptive offset, adaptive loop filter, bilateral filter, etc.
[0093] The (modified) reconstructed frame stored in the DPB of memory 360 can be used as a reference frame in inter-frame predictor 332. Memory 360 can store motion information of blocks in the current frame from which motion information is derived (or decoded) and / or motion information of blocks in previously reconstructed frames. The stored motion information can be sent to inter-frame predictor 332 as motion information of spatially or temporally neighboring blocks. Memory 360 can store reconstructed samples of reconstructed blocks in the current frame and send them to intra-frame predictor 331.
[0094] The embodiments described in this document in the filter 260, inter-frame predictor 221 and intra-frame predictor 222 of the encoding device 200 can also be applied equivalently or correspondingly to the filter 350, inter-frame predictor 332 and intra-frame predictor 331 of the decoding device 300, respectively.
[0095] Figure 4 A decoding method performed by a decoding device 300 as an embodiment of the present disclosure is shown.
[0096] Reference Figure 4 Reference samples for intra-frame prediction of the current block can be derived (S400).
[0097] According to the reference sample of this disclosure, it can belong to the adjacent region of the current block.
[0098] The adjacent region in this disclosure is a region adjacent to a specific block, and may include at least one of a first adjacent region or a second adjacent region. The first adjacent region may include at least one of the left, top, upper left, upper right, or lower left regions of the specific block. The second adjacent region may include at least one of the right, bottom, lower right, lower left, or upper right regions of the specific block.
[0099] Additionally, a neighboring region can consist of a reference row adjacent to a specific block (hereinafter referred to as an adjacent reference row). Alternatively, a neighboring region can consist of one or more reference rows not adjacent to a specific block (hereinafter referred to as non-adjacent reference rows). Non-adjacent reference rows can include a first non-adjacent reference row to an Nth non-adjacent reference row. The first non-adjacent reference row can be defined as a reference row separated from the specific block by 1 sample, and the Nth non-adjacent reference row can be defined as a reference row separated from the specific block by N samples. Here, N can be an integer greater than or equal to 1. Alternatively, a neighboring region can consist of an adjacent reference row and one or more non-adjacent reference rows. A specific block can be understood as being replaced by the current block or a reference block described below.
[0100] The first neighboring region of the current block can be a region encoded / decoded before the current block. In other words, the first neighboring region has reconstructed samples that can be derived as reference samples for intra-frame prediction of the current block. In contrast, the second neighboring region of the current block can be a region encoded / decoded after the current block. In other words, since the second neighboring region does not have reconstructed samples, a reference sample for the second neighboring region needs to be derived so that the current block can perform intra-frame prediction by referring to the second neighboring region. The method for deriving the reference sample for the second neighboring region of the current block will be described in detail below.
[0101] A block similar to the current block can be selected from the reference screen (hereinafter referred to as the reference block), and a reference sample of the second neighboring region of the current block can be derived based on the sample of the second neighboring region belonging to the selected reference block.
[0102] A reference block according to this disclosure can be determined based on the motion vector of the current block.
[0103] As an example, a candidate list for motion prediction can be constructed for the current block. The candidate list can include multiple candidates with motion information. Here, the motion information can include at least one of a motion vector or a reference frame index. Multiple candidates can be derived based on the current block's neighboring blocks. Neighboring blocks can include at least one of the left neighboring block, the top neighboring block, the top right neighboring block, the bottom left neighboring block, or the top left neighboring block. The motion vector of the current block can be derived based on the motion vector of the first candidate in the candidate list (e.g., the candidate with index 0) (Method 1).
[0104] Alternatively, the motion vector of the current block can be derived based on the motion vectors of neighboring blocks located at a specific position pre-stored in the aforementioned neighboring blocks (Method 2). The specific position is predefined in the same way in both the encoding and decoding devices, and can be any one of the left neighboring block, the top neighboring block, the top right neighboring block, the bottom left neighboring block, or the top left neighboring block.
[0105] Alternatively, the motion vector of the first candidate in method 1 or the pre-stored motion vector in method 2 can be modified using template matching. The motion vector of the current block can then be derived based on the modified motion vector.
[0106] Alternatively, edge information for determining the reference block can be separately notified via signaling. Here, the edge information is information to be generated based on motion vector prediction and may include at least one of motion vector difference (MVD) or reference frame index. The first candidate motion vector in method 1 or the pre-stored motion vector in method 2 can be modified based on the MVD notified via signaling. The motion vector of the current block can be derived based on the modified motion vector.
[0107] According to this disclosure, a reference block can be determined as a block within a reference frame that is located at the same position as the current block (a co-located block). Here, a co-located block can be defined as a block that includes the coordinates of the lower-right adjacent sample of the current block. Alternatively, a co-located block can be defined as a block that includes the coordinates of the center sample of the current block. Alternatively, a co-located block can be defined as a block that includes the coordinates of the upper-left sample of the current block. Thus, the complexity required to find the block most similar to the current block within the reference frame can be minimized.
[0108] The reference block according to this disclosure can be determined based on a template matching method.
[0109] As an example, for a block within a reference frame that falls within a predetermined search range, the cost (e.g., SAD) between the template of the corresponding block and the template of the current block can be calculated. The block with the lowest cost among the calculated costs can be identified as the reference block.
[0110] Alternatively, multiple reference blocks can be determined from one or more reference frames using the aforementioned template matching method. Here, the multiple reference blocks can be blocks corresponding to the top M costs in ascending order of the calculated costs. M can be an integer greater than or equal to 2. In this case, the reference sample can be derived by mutually weighting and summing (or mixing) the second adjacent regions for the multiple reference blocks.
[0111] For example, a reference sample can be derived as the average of samples between the second adjacent regions of the first reference block and the second adjacent regions of the second reference block. Alternatively, when the first and second reference blocks belong to different reference frames, the weights for the weighted sum can be derived based on the distance between the reference frame to which the corresponding reference block belongs and the current frame. In this case, a larger weight can be derived for the reference block with a smaller distance. Alternatively, the weights for the weighted sum can be predefined in the same way in both the encoding and decoding devices.
[0112] According to this disclosure, a reference frame can be a frame with an output order (or frame order count) different from that of the current frame to which the current block belongs. For example, a reference frame can be determined based on a reference frame index to be signaled as the aforementioned side information. Alternatively, a reference frame can be determined based on a first candidate reference frame index using method 1. Alternatively, a co-frame associated with the current block can be set as a reference frame. A co-frame can be a reference frame to be used for time motion prediction. A co-frame can be determined based on a co-frame index of a reference frame that includes a co-frame in a list of reference frames indicating reference frames. The co-frame index can be signaled at a higher level of the bitstream (such as a frame header or slice header).
[0113] The reference block according to this disclosure can be determined based on template matching of intra-frame TMP (template matching prediction).
[0114] Specifically, within a predetermined search range on the current screen, the cost (e.g., SAD) can be calculated by performing template matching with the current block for each search position. A list of block vectors can be generated based on the block vectors corresponding to the respective search positions. The block vectors can be arranged in ascending order of the calculated costs in the block vector list. Alternatively, the first K block vectors can be arranged in ascending order of the calculated costs in the block vector list. K can be an integer greater than or equal to 1.
[0115] The predetermined search range can be the region within the current frame that was encoded / decoded before the current block. The template for the intra-frame TMP can include samples from adjacent regions adjacent to the current block. For example, adjacent regions can include at least one of the upper region, the left region, or the upper left region.
[0116] The reference block of the current block can be determined based on at least one block vector belonging to a list of block vectors. Here, at least one block vector can be the first block vector in the list of block vectors. Alternatively, at least one block vector can be a block vector with index 0 or a block vector with minimum cost. Alternatively, the index used to specify at least one block vector can be explicitly signaled.
[0117] The reference block according to this disclosure can be determined based on the block vector according to the intra-block copy (IBC) mode.
[0118] Specifically, a list of block vectors can be generated based on the block vectors of neighboring blocks adjacent to the current block. Here, neighboring blocks can include at least one of the following: the upper neighboring block, the left neighboring block, the upper-left neighboring block, the lower-left neighboring block, or the upper-right neighboring block. At least one block vector from the list of block vectors can be selected, and a reference block can be determined based on the selected block vector. The index used for selecting at least one block vector from the list can be explicitly signaled.
[0119] Multiple reference blocks can be determined from the current screen using the aforementioned template matching method. Here, the multiple reference blocks can be blocks corresponding to the top M costs in ascending order of the calculated costs. M can be an integer greater than or equal to 2. Alternatively, P reference blocks can be determined from the current screen, and Q reference blocks can be determined from the aforementioned reference screens. P and Q can be integers greater than or equal to 1. Reference samples can be derived by performing a weighted sum (or mixing) of the second adjacent regions for the multiple reference blocks.
[0120] For example, a reference sample can be derived as the average of samples between the second adjacent regions of the first reference block and the second adjacent regions of the second reference block. Alternatively, when the first and second reference blocks belong to different frames, the weights for the weighted sum can be derived based on the distance between the frame to which the corresponding reference block belongs and the current frame. In this case, a larger weight can be derived for the reference block with a smaller distance. Alternatively, the weights for the weighted sum can be predefined in the same way in both the encoding and decoding devices.
[0121] The first neighboring region can be a set of reference rows that can be used for intra-frame prediction. The size of the first neighboring region can be defined based on at least one of the number or length of the reference rows configured in the first neighboring region. The second neighboring region (or the region where the reference sample derived by the foregoing method is filled) can be configured to have the same size as the first neighboring region. In other words, the second neighboring region can consist of the same number and length of reference rows as the first neighboring region. For example, when the first neighboring region consists of 12 reference rows, the second neighboring region can also consist of 12 reference rows to correspond to the first neighboring region.
[0122] Reference samples for the second adjacent region of the current block can be derived based on all samples belonging to the second adjacent region of the reference block. Alternatively, some samples belonging to the second adjacent region of the reference block can be selected, and reference samples for the second adjacent region of the current block can be derived based on the selected samples. For example, all or some samples belonging to the right region of the reference block can be selected, and reference samples for the right region of the current block can be derived based on the selected samples. Alternatively, all or some samples belonging to the lower region of the reference block can be selected, and reference samples for the lower region of the current block can be derived based on the selected samples.
[0123] The number of reference samples in the derived second neighbor region may be less than the number of reference samples required for intra-frame prediction. In this case, the insufficient reference samples can be derived by mirroring or padding. For example, the insufficient reference samples can be derived based on the reference samples of the pre-derived second neighbor region.
[0124] Alternatively, if the number of reference samples in the derived second neighboring region is less than the number of reference samples required for intra-frame prediction, intra-frame prediction based on the second neighboring region may not be performed.
[0125] Alternatively, when the number of reference samples in the derived second neighboring region is less than the number of reference samples required for intra-frame prediction, intra-frame prediction based on the second neighboring region can be adaptively performed based on whether predetermined conditions are met. For example, intra-frame prediction based on the second neighboring region can be performed when the number of reference samples in the derived second neighboring region is greater than or equal to a threshold compared to the number of reference samples required for intra-frame prediction. Otherwise, intra-frame prediction based on the second neighboring region may not be performed.
[0126] Alternatively, there may be cases where all or part of the second neighboring region of a selected reference block within a reference frame (or current frame) exists at a location unavailable for intra-frame prediction. For example, this could be a case where all or part of the second neighboring region of the reference block exists outside the boundary of the reference frame (or current frame). In this case, by mirroring or padding, samples of the second neighboring region outside the reference frame (or current frame) can be derived from samples of the second neighboring region located inside the reference frame (or current frame). Alternatively, samples of the second neighboring region outside the reference frame (or current frame) can be derived from its neighboring samples.
[0127] Alternatively, intra-frame prediction based on the second adjacent region may not be performed when all or part of the second adjacent region of the selected reference block in the reference frame (or the current frame) exists at a location that is not available for intra-frame prediction.
[0128] Alternatively, when all or part of the second neighboring region of the selected reference block within the reference frame (or the current frame) exists at a location unavailable for intra-frame prediction, intra-frame prediction based on the second neighboring region can be adaptively performed based on whether predetermined conditions are met. For example, intra-frame prediction based on the second neighboring region can be performed when the number of available samples within the second neighboring region of the reference block is greater than or equal to a threshold compared to the number of reference samples required for intra-frame prediction. Otherwise, intra-frame prediction based on the second neighboring region may not be performed.
[0129] Intra-prediction based on the second neighboring region can be applied to both the luma and chroma blocks of the current block. Alternatively, intra-prediction based on the second neighboring region can be applied to only one of the luma or chroma blocks. For example, intra-prediction based on the second neighboring region can be applied only to the luma block and may not be applied to the chroma block. Alternatively, intra-prediction based on the second neighboring region can be applied only to the chroma block and may not be applied to the luma block.
[0130] As an example, when intra-frame prediction based on a second adjacent region is allowed for two component blocks, reference blocks can be determined separately for the luma block and the chroma block using the aforementioned method. Alternatively, reference blocks can be determined for the luma block, and reference blocks for the chroma block can be determined based on information from the luma block (e.g., motion vectors, reference frame indexes, or MVDs). In this case, needless to say, the information from the luma block can be scaled to fit the chroma block and applied. Alternatively, reference blocks can be determined using the aforementioned method only for component blocks (i.e., luma blocks or chroma blocks) that allow intra-frame prediction based on a second adjacent region.
[0131] Reference samples for intra-frame prediction of the current block can be configured using the methods described above. For example, the reference samples may consist of reference samples from at least one of the left, top, top-left, bottom-left, or top-right regions. Alternatively, the reference samples may consist of reference samples from at least one of the bottom, right, bottom-right, bottom-left, or top-right regions. Alternatively, the reference samples may consist of reference samples from at least one of the top, right, top-right, bottom-right, or top-left regions. Alternatively, the reference samples may consist of reference samples from at least one of the bottom, left, bottom-left, bottom-right, or top-left regions.
[0132] Reference Figure 4 The intra-prediction mode of the current block can be derived (S410).
[0133] The intra prediction mode of the current block can be derived from one or more intra prediction modes predefined in the same way in the encoding and decoding devices. Here, the predefined intra prediction modes may include non-directional modes such as planar mode and DC mode, as well as directional modes with a predetermined prediction angle.
[0134] As an example, a candidate mode list comprising multiple candidate modes can be constructed for the current block. Multiple candidate modes can be derived based on the intra-prediction modes of neighboring blocks adjacent to the current block. Neighboring blocks can include at least one of the left-hand neighboring block or the top-hand neighboring block. The intra-prediction mode of the current block can be derived based on at least one candidate mode from the multiple candidate modes belonging to the candidate mode list. An index of at least one candidate mode from the multiple candidate modes can be specified using a signal, and the intra-prediction mode of the current block can be derived based on the index specified by the signal.
[0135] Alternatively, the multiple candidate modes may include intra-prediction modes (IPMs) pre-stored in a second adjacent region of the reference block. An IPM may include at least one of a first IPM stored in the right adjacent samples of the reference block (or a block including right adjacent samples) or a second IPM stored in the lower adjacent samples of the reference block (or a block including lower adjacent samples). However, this is merely an example and is not limited to right adjacent samples or lower adjacent samples.
[0136] For example, suppose the coordinates of the top-left sample of a reference block are (0, 0), and the width and height of the reference block are W and H, respectively. In this case, the first IPM could be an intra-prediction mode stored in the right-hand neighboring sample with coordinates (W, 0) or in a block containing coordinates (W, 0). The second IPM could be an intra-prediction mode stored in the bottom-hand neighboring sample with coordinates (0, H) or in a block containing coordinates (0, H). However, the aforementioned coordinates (W, 0) and (0, H) are merely examples. Intra-prediction modes stored at coordinates such as (W, H-1) and (W-1, H) instead of (W, 0) and / or (0, H) can be included in multiple candidate modes. Alternatively, intra-prediction modes stored at coordinates other than (W, 0) or (0, H) can also be included in multiple candidate modes.
[0137] Even when the geometric transformations described below are applied to the current block, the methods described above for deriving candidate patterns can be applied in the same way.
[0138] Alternatively, when a geometric transformation is applied to the current block, candidate patterns can be derived based on the type of the geometric transformation to be applied to the current block.
[0139] Specifically, when a horizontal symmetric geometric transformation is applied to the current block, the IPM stored in the right-side adjacent samples of the reference block (or a block including the right-side adjacent samples) can be changed to the mode of the applied geometric transformation, and the changed mode can be derived as a candidate mode. For example, the horizontal symmetric mode of the IPM stored in the right-side adjacent samples of the reference block can be derived as a candidate mode. When the IPM stored in the right-side adjacent samples of the reference block is a top-left diagonal mode (e.g., mode 34), the top-right diagonal mode (e.g., mode 66), which is the horizontal symmetric mode of the top-left diagonal mode, can be derived as a candidate mode.
[0140] When a vertical symmetric geometric transformation is applied to the current block, the IPMs stored in the lower adjacent samples of the reference block (or a block including the lower adjacent samples) can be changed to the mode of the applied geometric transformation, and the changed mode can be derived as a candidate mode. For example, the vertical symmetric mode of the IPMs stored in the lower adjacent samples of the reference block can be derived as a candidate mode. When the IPMs stored in the lower adjacent samples of the reference block are upper-left diagonal modes (e.g., mode 34), the lower-left diagonal mode of the vertical symmetric mode that is the upper-left diagonal mode (e.g., mode 2) can be derived as a candidate mode.
[0141] Alternatively, even when a horizontal symmetric geometric transformation is applied to the current block, the IPMs stored in the right-side neighboring samples of the reference block (or a block including the right-side neighboring samples) can be set as candidate modes as is. When an IPM is selected to be added to the candidate list to derive the intra-prediction mode of the current block, the horizontal symmetric mode of the corresponding IPM can be set as the intra-prediction mode of the current block.
[0142] Alternatively, even when a vertical symmetric geometric transformation is applied to the current block, the IPMs stored in the lower adjacent samples of the reference block (or a block including the lower adjacent samples) can be set as candidate modes as is. When an IPM is selected to be added to the candidate list to derive the intra-prediction mode of the current block, the vertical symmetric mode of the corresponding IPM can be set as the intra-prediction mode of the current block.
[0143] Even when a horizontal or vertical symmetric geometric transformation is applied to the current block, if the pre-stored IPM in the second adjacent region of the reference block is a non-directional mode (such as a planar mode or a DC mode), the corresponding non-directional mode can be set as a candidate mode as is.
[0144] When the current block is a luma block, the method described above for deriving the intra-prediction mode can be applied. When the current block is a chroma block, the intra-prediction mode of the chroma block can be derived based on at least one of the mode information to be signaled or the intra-prediction mode of the luma block. The mode information may include at least one of the following: first information related to whether a cross-component prediction mode is applied, second information related to the type of cross-component prediction mode, or third information indicating any of the predefined intra-prediction modes.
[0145] Specifically, when the first information indicates that a cross-component prediction mode is applied, the intra-prediction mode of the chroma block can be deduced as a cross-component prediction mode. Additionally, the type of cross-component prediction mode can be determined based on the second information. On the other hand, when the first information indicates that a cross-component prediction mode is not applied, the intra-prediction mode of the chroma block can be deduced based on the third information as any of the predefined intra-prediction modes.
[0146] When the third information indicates that the intra-prediction mode of the chroma block is set to the same mode as the intra-prediction mode of the luma block, the intra-prediction mode of the chroma block can be set to the same mode as the intra-prediction mode of the luma block derived above. However, when a geometric transformation is applied to the chroma block, the intra-prediction mode of the chroma block can be derived as the mode of the intra-prediction mode of the luma block when the geometric transformation is applied to the luma block. For example, when a horizontally symmetric geometric transformation is applied to the chroma block, the intra-prediction mode of the chroma block can be derived as the horizontally symmetric mode of the intra-prediction mode of the luma block.
[0147] Alternatively, the intra-prediction mode of the current block can be derived based on the decoder-side intra-mode derivation (DIMD) mode.
[0148] Specifically, a predetermined filter can be applied to neighboring regions adjacent to the current block to compute the gradient of reference sample values within those regions. The filter can be a differential filter (e.g., a Sobel filter). The gradient can be computed based on at least one of horizontal or vertical variation. Based on the computed gradient, an intra-prediction mode corresponding to the corresponding gradient can be determined, and a predetermined amplitude value can be assigned to the corresponding intra-prediction mode. Here, the amplitude value can be the sum of the amplitude of the horizontal variation and the amplitude of the vertical variation.
[0149] The aforementioned process can be performed by moving reference samples in the horizontal and / or vertical directions within adjacent regions to obtain the cumulative amplitude value for each intra-prediction mode. The top K intra-prediction modes can be selected in descending order of the amplitude values assigned to them, and the selected K intra-prediction modes can be set as the intra-prediction modes for the current block. K can be an integer of 1, 2, 3, 4, or larger.
[0150] The neighboring regions for DIMD can include at least one of the aforementioned first neighboring regions or second neighboring regions. For example, instead of the first neighboring region of the current block, a predetermined filter can be applied to the second neighboring region of the current block to compute the gradient. Alternatively, the predetermined filter can be applied to a neighboring region that includes both the first and second neighboring regions to compute the gradient. Alternatively, when a geometric transformation is applied to the current block, the predetermined filter can be applied to the first neighboring region of the geometrically transformed current block to compute the gradient. The first neighboring region of the geometrically transformed current block can correspond to the second neighboring region of the (untransformed) current block.
[0151] Alternatively, the intra-prediction mode of the current block can be derived as a matrix-based intra-prediction (MIP) mode. A flag associated with whether the MIP mode applies to the current block can be signaled. When the flag has a first value, the intra-prediction mode of the current block can be derived as the MIP mode. When the flag has a second value, the intra-prediction mode of the current block can be derived based on the other methods described above.
[0152] Reference Figure 4 It can generate prediction samples for the current block based on the reference samples of the current block and the intra-frame prediction mode (S420).
[0153] Predicted samples for the current block can be generated based on the Linear Interpolation Intra-Prediction (LIP) method.
[0154] According to the LIP method of this disclosure, a predicted sample can be generated based on a weighted sum of at least two reference samples belonging to adjacent regions. Depending on at least one of the directionality of the intra-frame prediction mode of the current block or the location of the predicted sample, the at least two reference samples can belong to either a first adjacent region or a second adjacent region, or they can belong to both the first and second adjacent regions. Depending on the intra-frame prediction mode, the at least two reference samples can be located in two directions (i.e., the prediction direction and its opposite direction). The weights for the weighted sum can be derived based on the distance between the reference samples and the predicted sample.
[0155] For example, when the intra-prediction mode of the current block is horizontal, a prediction sample can be generated based on a weighted sum of a first reference sample belonging to a first adjacent region and a second reference sample belonging to a second adjacent region. Here, the first and second reference samples can be samples with the same y-coordinate as the prediction sample. Alternatively, when the intra-prediction mode of the current block is vertical, a prediction sample can be generated based on a weighted sum of a first reference sample belonging to a first adjacent region and a second reference sample belonging to a second adjacent region. Here, the first and second reference samples can be samples with the same x-coordinate as the prediction sample.
[0156] Alternatively, a prediction sample for the current block can be generated based on a planar pattern.
[0157] According to the planar method of this disclosure, a predicted sample can be generated based on a weighted sum of at least four reference samples belonging to adjacent regions. At least two of the at least four reference samples may belong to a first adjacent region, and the remaining reference samples may belong to a second adjacent region. The predicted sample can be generated based on a weighted sum of at least two reference samples belonging to the first and second adjacent regions, and a weighted sum of at least two other reference samples belonging to the first and second adjacent regions.
[0158] For example, at least four reference samples may include at least one of the following: a first reference sample belonging to a first neighboring region and having the same x-coordinate as the predicted sample; a second reference sample belonging to the first neighboring region and having the same y-coordinate as the predicted sample; a third reference sample belonging to a second neighboring region and having the same x-coordinate as the predicted sample; or a fourth reference sample belonging to the second neighboring region and having the same y-coordinate as the predicted sample. The first predicted sample can be derived based on a weighted sum between the first and third reference samples. The second predicted sample can be derived based on a weighted sum between the second and fourth reference samples. The predicted sample for the current block can be generated based on a weighted sum of the first and second predicted samples.
[0159] The weights for the weighted sum can be determined based on either the distance between the predicted sample and the reference sample or whether the sample belongs to at least one of the reference samples in the second neighboring region.
[0160] For example, a larger weight can be applied to the reference sample that is closer to the prediction sample among the two reference samples to be weighted and summed. The weight to be applied to the reference sample belonging to the second neighboring region can be set to be less than the weight to be applied to the reference sample belonging to the first neighboring region. Alternatively, when the two reference samples to be weighted and summed are spaced equidistant from the prediction sample, the weight to be applied to the reference sample belonging to the second neighboring region can be set to be less than the weight to be applied to the reference sample belonging to the first neighboring region.
[0161] In the derived reference samples of the second adjacent region, only some samples at predefined locations can be used. For example, a planar pattern can be applied that uses only one or more reference samples from the upper right or right side region of the current block within the second adjacent region. Alternatively, a planar pattern can be applied that uses only one or more reference samples from the lower left or lower side region of the current block within the second adjacent region.
[0162] Alternatively, prediction samples for the current block can be generated based on intra-frame TMP (template matching prediction).
[0163] Specifically, within a predetermined search range on the current screen, the cost (e.g., SAD) can be calculated by performing template matching with the current block for each search position. A list of block vectors can be generated based on the block vectors corresponding to the respective search positions. The block vectors can be arranged in ascending order of the calculated costs in the block vector list. Alternatively, the first K block vectors can be arranged in ascending order of the calculated costs in the block vector list. K can be an integer greater than or equal to 1.
[0164] The predefined search range can be the area within the current frame that was encoded / decoded before the current block.
[0165] A predicted sample for the current block can be generated based on at least one block vector from a list of block vectors. Here, at least one block vector can be the first block vector in the list. Alternatively, at least one block vector can be the block vector with index 0, or the block vector with the lowest cost. Alternatively, the index of the specified block vector can be explicitly signaled.
[0166] Templates for intra-frame TMPs can be defined in the same way as those for adjacent regions. In other words, template matching can be performed based on a template that includes reconstructed samples from the first adjacent region and reference samples from the second adjacent region.
[0167] Alternatively, the template for an intra-frame TMP can be defined as a portion of the aforementioned adjacent regions. For example, the portion may include samples from at least one of the upper, right, or upper right regions. Alternatively, the portion may include samples from at least one of the left, lower, or lower left regions. Alternatively, the portion may include samples from at least one of the upper, left, or upper left regions.
[0168] Alternatively, the template for an intra-frame TMP can be defined as all or part of the second adjacent region. For example, the part may include only a sample from either the lower region or the right region.
[0169] When the template for an intra-frame TMP consists of the aforementioned first adjacent region and second adjacent region, the number of reference lines belonging to the second adjacent region can be the same as the number of reference lines belonging to the first adjacent region.
[0170] The cost in an intra-frame TMP can be defined as the difference between the template of the current block and the template at the search position. For example, a first difference can be calculated between the first neighboring region of the current block and the first neighboring region at the search position. A second difference can be calculated between the second neighboring region of the current block and the second neighboring region at the search position. The cost can be calculated based on a weighted sum of the first and second differences. In this case, the weights to be applied to the first difference can be set differently than the weights to be applied to the second difference.
[0171] Predictive samples can also be generated based on geometric transformations applied to the current block and / or adjacent regions.
[0172] As an example, a geometric transformation can be applied to the second neighboring region of the current block. This geometrically transformed second neighboring region can correspond to the first neighboring region of the current block, which has been geometrically transformed in the same way. In this case, the intra-prediction mode, predefined to refer to the left or top neighboring region of the current block, can be used as is without modification. After performing intra-prediction on the geometrically transformed current block based on the geometrically transformed second neighboring region, the final prediction sample can be generated by applying an inverse geometric transformation to the current block.
[0173] The geometric transformation according to this disclosure can be any of the following: a transformation of vertical and horizontal symmetry, a transformation of vertical symmetry, a transformation of horizontal symmetry, a rotational transformation, or a distortion transformation. Alternatively, multiple geometric transformations can be defined in the encoding and decoding devices, and any of the multiple geometric transformations can be selectively used. For this purpose, information for selecting any of the multiple geometric transformations can be signaled at a higher level (such as VPS, PPS, screen header, or slice header) or at a lower level (such as CTU or CU). A transformation of vertical and horizontal symmetry can be a transformation of vertical and horizontal reversal or 180-degree rotation.
[0174] For example, when the reference samples to be configured for the current block include reference samples from the upper and right regions of the current block, intra-frame prediction can be performed based on a horizontal symmetric geometric transformation. Alternatively, when the reference samples to be configured for the current block include reference samples from the left and lower regions of the current block, intra-frame prediction can be performed based on a vertical symmetric geometric transformation. Alternatively, when the reference samples to be configured for the current block include reference samples from the lower and right regions of the current block, intra-frame prediction can be performed based on both vertical and horizontal symmetric geometric transformations (or rotational transformations).
[0175] As an example, when the reference samples to be configured for the current block include reference samples of the second adjacent region of the current block (e.g., at least one of the lower, right, or lower-right regions), the aforementioned geometric transformation can be applied to the pre-derived intra-prediction mode for the current block. This ensures that the reference samples of the second adjacent region can be referenced for intra-prediction of the current block. Predicted samples for the current block can be generated based on the geometric transformation mode and the reference samples of the second adjacent region of the current block.
[0176] When the intra-prediction mode of the current block is derived to MIP mode, the prediction block of the current block can be generated based on a predetermined reference sample and matrix kernel.
[0177] The reference samples for the MIP pattern can include at least one reference sample from the derived neighboring regions. For example, the MIP pattern can be applied based on reference samples of adjacent reference rows belonging to a second neighboring region. However, it is not limited to this, and the MIP pattern can be applied based on two or more reference rows belonging to a second neighboring region.
[0178] One or more matrix cores for MIP mode can be defined in the encoding and decoding devices. Any one of the multiple matrix cores can be selected based on the MIP mode information to be signaled via the bitstream.
[0179] A prediction block of the same size as the current block can be generated by applying a matrix kernel to a reference sample. Alternatively, downsampling can be performed on the reference sample, and a matrix kernel can be applied to the downsampled reference sample to derive prediction samples for the current block. The block consisting of the derived prediction samples can have a size smaller than the current block. In this case, upsampling can be performed based on the derived prediction samples to generate a prediction block of the same size as the current block.
[0180] Using the aforementioned prediction method, prediction samples with the following configuration can be generated.
[0181] (Configuration 1) Predicted samples to be generated based on reference samples from at least one of the left, top, top-left, bottom-left, or top-right regions.
[0182] (Configuration 2) The predicted sample to be generated based on reference samples from at least one of the following regions: the lower region, the right region, the lower right region, the lower left region, or the upper right region.
[0183] (Configuration 3) The predicted sample to be generated based on reference samples from at least one of the upper region, right region, upper right region, lower right region, or upper left region.
[0184] (Configuration 4) The predicted sample to be generated based on reference samples from at least one of the following regions: the lower region, the left region, the lower left region, the lower right region, or the upper left region.
[0185] (Configuration 5) Predicted samples generated based on the LIP method
[0186] (Configuration 6) Predicted samples to be generated based on planar methods
[0187] (Configuration 7) Predicted samples to be generated based on intra-frame TMP
[0188] The final prediction sample for the current block can be generated based on the weighted sum of at least two of configurations 1 through 7. The weighted sum of the prediction sample can be defined as shown in Equation 1 below.
[0189] [Formula 1]
[0190] In Equation 1, pred can refer to the weighted summation of the predicted sample. x It can refer to the predicted samples based on the configuration, and wx can refer to the samples to be applied to pred. x The weights. This can involve the number of predicted samples to be used for the weighted sum.
[0191] The same weights can be applied to the prediction samples to be weighted and summed. Alternatively, the weights for the weighted sum can be adaptively set based on the number and / or type of configurations to be weighted and summed. Alternatively, larger weights can be assigned to prediction samples based on a specific configuration. For example, when generating the final prediction sample by weighting and summing prediction samples based on configuration 1 and prediction samples based on configuration 2, a larger weight can be set for the prediction sample based on configuration 1. Alternatively, weights can be adaptively assigned based on the position of the prediction sample. For example, when the prediction sample (pred0) based on configuration 1 and the prediction sample (pred1) based on configuration 2 are weighted and summed, a prediction sample near the upper left of the current block can be generated by applying a larger weight to pred0 instead of pred1, and a prediction near the lower right can be generated by applying a larger weight to pred1 instead of pred0.
[0192] When the current block is a chroma block and the intra-frame prediction mode of the chroma block is deduced to be a cross-component prediction mode, prediction samples of the chroma block can be generated based on samples of the luma block and predetermined parameters (cross-component parameters).
[0193] The parameters are based on a linear model and may include at least one of one or more weights or one or more offsets. The parameters can be derived based on neighboring regions of a chroma block and neighboring regions of the corresponding luma block.
[0194] For example, parameters can be derived based on a linear model between reference samples (or downsampled reference samples) belonging to the second adjacent region of the luma block and reference samples belonging to the second adjacent region of the chroma block. Alternatively, parameters can be derived based on a linear model between reference samples (or downsampled reference samples) belonging to adjacent regions including the first and second adjacent regions of the luma block and reference samples belonging to adjacent regions including the first and second adjacent regions of the chroma block.
[0195] Parameters can be derived based on all reference samples belonging to the adjacent (or second adjacent) regions of the chroma block. Alternatively, parameters can be derived based on some reference samples belonging to the adjacent (or second adjacent) regions of the chroma block. For this purpose, information related to the positions of some reference samples to be used for parameter calculation can be explicitly signaled. The positions of these reference samples can be determined based on whether conditions predefined in the same manner in both the encoding and decoding devices are met.
[0196] Reference Figure 4 The current block can be reconstructed based on the predicted samples of the current block (S430).
[0197] Specifically, the current block can be reconstructed based on the predicted samples and residual samples of the current block. The residual samples can be derived based on at least one of the dequantization or inverse transform of the transform coefficients decoded from the bitstream.
[0198] Whether the proposed method according to this disclosure is available / applied can be signaled in at least one of VPS, SPS, PPS, screen header, slice header, or DCI as High-Level Syntax (HLS). For example, information related to the availability / application of the proposed method can be signaled within PPS to determine whether the availability / application of the proposed method is available / applied on a per-PPS basis.
[0199] Alternatively, the application of the proposed method can be determined implicitly without signaling explicit information. Alternatively, additional information related to the application of the proposed method can be explicitly signaled. For example, a 1-bit flag related to the application of the proposed method can be signaled in block units such as CTU or CU.
[0200] The proposed method can be applied to all intra prediction modes. Alternatively, the proposed method can be applied only to specific intra prediction modes. In this case, the intra prediction modes to which the proposed method can be applied can be defined in the High-Level Syntax (HLS).
[0201] When a proposed method can be applied to the current block based on whether the current block meets certain conditions (e.g., block size / shape conditions), a 1-bit flag associated with whether the proposed method is applied can be signaled. For example, if the height of the current block is greater than four times its width, it can be determined that a proposed method is not allowed for the current block, and the signaling related to whether the proposed method is applied can be omitted.
[0202] Under certain conditions, it can be implicitly determined whether to apply the proposed method. For example, when the left-hand reference sample of the current block is unavailable (e.g., when the current block is located at the left boundary of the image), the signaling related to whether to apply the proposed method can be omitted, and the corresponding information can be set to a value indicating that the proposed method is not applied.
[0203] When the reference sample of the current block belongs to a CTU, tile, slice, or sub-screen that is different from the current block, the signaling related to whether the proposed method is applied can be omitted, and the corresponding information can be set to a value indicating that the proposed method is not applied.
[0204] Based on information defined in the HLS regarding the availability / application of the proposed method, signaling related information about whether the proposed method is applied can be adaptively used at the block level of the coded block. For example, when the information in the SPS regarding the availability / application of the proposed method is false (i.e., when the proposed method is not available in the SPS cell), signaling related to whether the proposed method is applied can be omitted for the coded block belonging to the corresponding sequence.
[0205] Figure 5 A schematic configuration of a decoding device 300 performing a decoding method according to the present disclosure is shown.
[0206] Reference Figure 5 The decoding device 300 may include a reference sample deducer 500, a mode deducer 510, a predictor 520, and a reconstructor 530. The reference sample deducer 500, mode deducer 510, and predictor 520 may be equipped with… Figure 3 The intra-frame predictor 331.
[0207] The reference sample derivator 500 can derive reference samples for intra-frame prediction of the current block, which is similar to deriving reference samples from a reference frame. Figure 4 The descriptions are the same.
[0208] The mode derivator 510 can derive the intra-prediction mode of the current block, which is similar to deriving the mode by referring to... Figure 4 The descriptions are the same.
[0209] Predictor 520 can generate prediction samples based on reference samples of the current block and intra-prediction mode, which is different from generating prediction samples by referencing... Figure 4 The descriptions are the same.
[0210] Reconstructor 530 can reconstruct the current block based on the predicted samples and residual samples of the current block.
[0211] Figure 6 An encoding method performed by an encoding device 200 as an embodiment of the present disclosure is shown.
[0212] Reference Figure 6 This allows for the derivation of reference samples for intra-frame prediction of the current block (S600). The method for deriving the reference samples is similar to that used by referencing... Figure 4 The descriptions are the same.
[0213] Reference Figure 6 This allows the intra-prediction mode of the current block to be derived (S610). The method for deriving the intra-prediction mode is similar to that used by referring to... Figure 4 The descriptions are the same.
[0214] Reference Figure 6 It can generate prediction samples for the current block based on reference samples and intra-frame prediction modes (S620). The method for generating prediction samples is the same as that for reference... Figure 4 The descriptions are the same.
[0215] Reference Figure 6 The transformation coefficients of the current block can be derived based on the residual samples of the current block (S630).
[0216] Specifically, residual samples for the current block can be generated based on the predicted samples of the current block. Transformation coefficients for the current block can be derived based on at least one of the transformations or quantizations applied to the residual samples.
[0217] Reference Figure 6 The residual information associated with the transform coefficients of the current block can be encoded to generate a bit stream (S640).
[0218] Figure 7 A schematic configuration of an encoding device 200 performing the encoding method according to this disclosure is shown.
[0219] Reference Figure 7 The encoding device 200 may include a reference sample deducer 700, a pattern deducer 710, a predictor 720, a transform coefficient deducer 730, and a residual information encoder 740. The pattern deducer 710 and the predictor 720 may be equipped with… Figure 2 The intra-frame predictor 222 and the transform coefficient derivator 730 can be equipped with Figure 2 The residual processor 230 and the residual information encoder 740 may be equipped with an entropy encoder 240.
[0220] The reference sample derivator 700 can derive reference samples for intra-frame prediction of the current block, which is similar to deriving reference samples from a reference frame. Figure 4 The descriptions are the same.
[0221] The mode deducer 710 can derive the intra-prediction mode of the current block, which is similar to deriving the mode by referring to... Figure 4 The descriptions are the same.
[0222] Predictor 720 can generate prediction samples based on reference samples of the current block and intra-prediction mode, which is different from generating prediction samples by referencing... Figure 4 The descriptions are the same.
[0223] The transform coefficient derivator 730 can derive the transform coefficients of the current block based on the residual samples of the current block. Specifically, the transform coefficient derivator 730 can derive the transform coefficients based on at least one of the transform or quantization of the residual samples, which is different from deriving them by referring to... Figure 6 The descriptions are the same.
[0224] The residual information encoder 740 can encode residual information related to the transform coefficients.
[0225] In the above embodiments, the method is described based on a flowchart as a series of steps or blocks. However, the corresponding embodiments are not limited to this order of steps. Some steps may occur simultaneously with other steps or in a different order, as described above. In addition, those skilled in the art will understand that the steps shown in the flowchart are not exclusive. Other steps may be included, or one or more steps in the flowchart may be deleted, without affecting the scope of the embodiments of this disclosure.
[0226] The methods described above according to embodiments of the present disclosure can be implemented in software, and the encoding and / or decoding devices according to the present disclosure can be included in an apparatus for performing image processing, such as a TV, computer, smartphone, set-top box, display device, etc.
[0227] In this disclosure, when the implementation is implemented as software, the above-described method can be implemented as a module (process, function, etc.) performing the above-described functions. The module can be stored in memory and can be executed by a processor. The memory can be internal or external to the processor and can be connected to the processor by various well-known means. The processor may include an application-specific integrated circuit (ASIC), another chipset, logic circuitry, and / or data processing devices. The memory may include read-only memory (ROM), random access memory (RAM), flash memory, memory cards, storage media, and / or other storage devices. In other words, the implementations described herein can be executed by implementation on a processor, microprocessor, controller, or chip. For example, the functional units shown in the various figures can be executed by implementation on a computer, processor, microprocessor, controller, or chip. In this case, information for implementation (e.g., information about instructions) or algorithms can be stored in a digital storage medium.
[0228] Furthermore, decoding and encoding devices employing embodiments of this disclosure can be included in multimedia broadcasting transmitting and receiving devices, mobile communication terminals, home theater video devices, digital cinema video devices, surveillance cameras, video conferencing devices, real-time communication devices similar to video communication, mobile streaming devices, storage media, cameras, devices for providing video-on-demand (VOD) services, OTT (over-the-top) video devices, devices for providing internet streaming services, three-dimensional (3D) video devices, virtual reality (VR) devices, augmented reality (AR) devices, video telephony devices, transportation terminals (e.g., vehicle (including autonomous vehicle) terminals, aircraft terminals, ship terminals, etc.), and medical video devices, and can be used to process video signals or data signals. For example, OTT (over-the-top) video devices can include game consoles, Blu-ray players, internet-connected televisions, home theater systems, smartphones, tablet PCs, digital video recorders (DVRs), etc.
[0229] Furthermore, the processing methods applying the embodiments of this disclosure can be generated in the form of a computer-executable program and can be stored in a computer-readable recording medium. Multimedia data with data structures according to the embodiments of this disclosure can also be stored in a computer-readable recording medium. Computer-readable recording media include all types of storage devices and distributed storage devices that store computer-readable data. Computer-readable recording media can include, for example, Blu-ray discs (BD), Universal Serial Bus (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, magnetic tape, floppy disks, and optical media storage devices. Additionally, computer-readable recording media include media implemented in the form of carrier waves (e.g., transmission via the Internet). Furthermore, bitstreams generated by encoding methods can be stored in computer-readable recording media or transmitted via wired / wireless communication networks.
[0230] Furthermore, the embodiments of this disclosure can be implemented by a computer program product using program code, and the program code can be executed on a computer using the embodiments of this disclosure. The program code can be stored on a computer-readable medium.
[0231] Figure 8 Examples of content streaming systems to which embodiments of this disclosure can be applied are shown.
[0232] Reference Figure 8 A content streaming system that applies embodiments of the present disclosure may generally include an encoding server, a streaming server, a network server, a media storage device, a user device, and a multimedia input device.
[0233] An encoding server generates a bitstream by compressing content input from multimedia input devices such as smartphones, cameras, and camcorders into digital data and then sends it to a streaming server. As another example, when multimedia input devices such as smartphones, cameras, and camcorders directly generate bitstreams, the encoding server can be omitted.
[0234] A bitstream can be generated by an encoding method or bitstream generation method that applies the embodiments of this disclosure, and the streaming server can temporarily store the bitstream during the sending or receiving of the bitstream.
[0235] A streaming server sends multimedia data to a user device via a web server based on a user request, and the web server acts as a medium to inform the user what services are available. When a user requests a desired service from the web server, the web server transmits the request to the streaming server, and the streaming server sends the multimedia data to the user. In this scenario, the content streaming system may include a separate control server, which controls the commands / responses between the various devices in the content streaming system.
[0236] A streaming server can receive content from media storage 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 specific time period.
[0237] Examples of user devices may include mobile phones, smartphones, laptops, digital broadcasting terminals, personal digital assistants (PDAs), portable multimedia players (PMPs), navigators, touchscreen PCs, tablet PCs, ultrabooks, wearable devices (e.g., smartwatches, smart glasses, head-mounted displays (HMDs)), digital TVs, desktop computers, digital signage, etc.
[0238] In a content streaming system, each server can operate as a distributed server, and in this case, the data received from each server can be distributed and processed.
[0239] The claims set forth herein can be combined in various ways. For example, the technical features of the method claims of this disclosure can be combined and implemented as an apparatus, and the technical features of the apparatus claims of this disclosure can be combined and implemented as a method. Furthermore, the technical features of the method claims and the apparatus claims of this disclosure can be combined and implemented as an apparatus, and the technical features of the method claims and the apparatus claims of this disclosure can be combined and implemented as a method.
Claims
1. A method comprising the following steps: Derive the reference sample for intra-frame prediction of the current block; Derive the intra-prediction mode of the current block; The prediction sample for the current block is generated based on the reference sample and the intra-frame prediction mode; as well as Reconstruct the current block based on the predicted samples. The reference samples include reference samples from the adjacent regions of the current block, and The reference sample of the adjacent region of the current block is derived based on the sample of the adjacent region belonging to a predetermined reference block.
2. The method according to claim 1, wherein, The adjacent regions include at least one of the following: the lower region, the right region, the lower right region, the lower left region, or the upper right region.
3. The method according to claim 1, wherein, The reference block belongs to a reference frame with an output order different from that of the current frame to which the current block belongs, and the reference block is determined based on a predetermined motion vector.
4. The method according to claim 1, wherein, The reference block is defined as the block within the reference frame that is at the same position as the current block.
5. The method according to claim 1, wherein, Calculate the cost between the template of the block within the predetermined search range in the reference frame and the template of the current block, and The reference block is determined based on the calculated cost.
6. The method according to claim 1, wherein, Calculate the cost between the template of the current block and the template of the block within the predetermined search range in the current frame, and the cost between the current block and the template of the current block. The reference block is determined based on the calculated cost.
7. The method according to claim 1, wherein, The reference block is determined based on at least one block vector from a list of block vectors belonging to the current block.
8. The method according to claim 1, wherein, When the number of derived reference samples is less than the number of reference samples required for the intra-frame prediction of the current block, additional reference samples are derived based on the derived reference samples by mirroring or padding.
9. The method according to claim 1, wherein, The intra-frame prediction mode is derived based on a candidate mode list that includes multiple candidate modes, and The plurality of candidate modes include pre-stored intra-prediction modes in the adjacent regions of the reference block.
10. The method according to claim 9, wherein, The plurality of candidate modes include at least one of a first intra-frame prediction mode stored in the right-side adjacent sample of the reference block or a second intra-frame prediction mode stored in the lower-side adjacent sample of the reference block.
11. The method according to claim 1, wherein, The predicted sample is generated based on a weighted sum of at least two reference samples belonging to the adjacent regions of the current block.
12. A method comprising the following steps: Derive the reference sample for intra-frame prediction of the current block; Derive the intra-prediction mode of the current block; The prediction sample for the current block is generated based on the reference sample and the intra-frame prediction mode; The transformation coefficients are derived based on the residual samples of the current block; as well as The residual information associated with the transformation coefficients is encoded. The reference samples include reference samples from the adjacent regions of the current block, and The reference sample of the adjacent region of the current block is derived based on the sample of the adjacent region belonging to a predetermined reference block.
13. A computer-readable storage medium storing a bit stream generated by the method according to claim 12.
14. A method comprising the following steps: Obtain a bitstream of image information, wherein the bitstream is generated based on the following steps: deriving reference samples for intra-frame prediction of the current block; deriving the intra-frame prediction mode of the current block; generating prediction samples for the current block based on the reference samples and the intra-frame prediction mode; deriving transform coefficients based on residual samples of the current block; and encoding residual information related to the transform coefficients; and Send data including the bit stream. The reference samples include reference samples from the adjacent regions of the current block, and The reference sample of the adjacent region of the current block is derived based on the sample of the adjacent region belonging to a predetermined reference block.