Video decoding device, video coding device
Patent Information
- Application Number
- CN202480089909.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-03-19
- Filing Date
- 2024-12-06
- Publication Date
- 2026-10-23
AI Technical Summary
根据本发明的一个方面,在不增加附加计算的情况下提高了编解码器的质量。
Smart Images

Figure CN122972024A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present invention relate to a video decoding device and a video decryption device. Background Technology
[0002] Video decoding devices that generate decoded data by decoding video and video decoding devices that generate decoded images by decoding decoded data are used for efficient video transmission or recording.
[0003] For example, specific video decoding schemes include H.264 / AVC, High-Efficiency Video Decoding (HEVC), and Universal Video Decoding (VVC).
[0004] In such a video decoding scheme, the images (pictures) that constitute the video are managed in a hierarchical structure, which includes slices obtained by segmenting the images, decoding tree units (CTUs) obtained by segmenting the slices, decoding units (CUs) obtained by segmenting the decoding tree units, and transform units (TUs) obtained by segmenting the decoding units, and decoding / decoding is performed for each CU.
[0005] In this video decoding scheme, a prediction image is typically generated based on a locally decoded image obtained after decoding / decoding the input image (source image), and the prediction error component (also known as the "difference image" or "residual image") obtained by subtracting the prediction image from the input image is decoded. Methods for generating the prediction image include inter-frame image prediction (inter-prediction) and intra-frame image prediction (intra-prediction).
[0006] In recent video decoding and decoding techniques, NPL1 introduces a method for decoding and decoding the current block. This method utilizes an extrapolation filter to establish a functional relationship between the target pixel value and the values of its 15 surrounding pixels. This relationship forms a function model that can predict the target pixel value based on these 15 inputs. The method defines three filters and three reference templates, generating nine possible patterns through their combinations. During execution, the method builds two lists: `curModelList` and `mergeModelList`. The `cu.eip` flag identifies whether the current block uses the EIP method, while the `cu.eipMerge` flag indicates which list is used. The `idx` flag is then used to specify the model's position in the list.
[0007] Citation List Non-patent literature NPL 1: Luhang Xu, Yue Yu, Haoping Yu, Jonathan Gan, Dong Wang, “EE2-1.14: An extrapolation filter-based intraprediction mode”, JVET-AG0058, 33rd session, via teleconference, January 17-26, 2024. Summary of the Invention
[0008] Technical issues The EIP method provides three types of filters: square filters, horizontal filters, and vertical filters, for generating prediction models. It can be observed from these three models that the EIP method cannot generate models for predicting diagonal data. Furthermore, the EIP method uses only one prediction model for each target block, failing to consider that the complex data within the block cannot be represented by a single model. Therefore, this invention adds a diagonal filter and an EIP multi-model mode. In the EIP multi-model mode, two models are used to predict the target block.
[0009] Problem Solution This invention aims to improve prediction accuracy by adding new filters and EIP multi-model mode.
[0010] In one example, a video decoding apparatus for generating predicted images is provided. The apparatus includes an EIP prediction unit configured to generate intra-frame predicted images using a function model generated based on samples in a reference region.
[0011] In one example, a video decoding apparatus is provided. The apparatus includes an EIP prediction unit configured to predict a target block using a function model generated based on samples in a reference region.
[0012] Beneficial effects of the invention According to one aspect of the invention, the quality of the codec is improved without increasing additional computation. Attached Figure Description
[0013] [ Figure 1 ] Figure 1 This is a schematic diagram illustrating the configuration of an image transmission system according to this embodiment.
[0014] [ Figure 2 ] Figure 2 This is a diagram showing the hierarchical structure of the decoded stream data.
[0015] [ Figure 3 ] Figure 3This is a schematic diagram showing the types (mode numbers) of intra-frame prediction modes.
[0016] [ Figure 4 ] Figure 4 This is a schematic diagram of a video decoding device.
[0017] [ Figure 5 ] Figure 5 The structure of the intra-frame prediction image generation unit is shown.
[0018] [ Figure 6 ] Figure 6 This is a diagram showing details of the EIP prediction unit.
[0019] [ Figure 7 ] Figure 7 This is a diagram illustrating the three types of reference regions used in the EIP method.
[0020] [ Figure 8 ] Figure 8 This is a diagram illustrating the three types of filters used in the EIP method.
[0021] [ Figure 9 ] Figure 9 This is a diagram showing the curModelList elements defined for each size of curBlock.
[0022] [ Figure 10 ] Figure 10 This is a diagram showing the reference and template areas used for sorting.
[0023] [ Figure 11 ] Figure 11 This is a block diagram showing the structure of a video decoding device. Detailed Implementation
[0024] First Implementation Plan In the following description, embodiments of the present disclosure are illustrated with reference to the accompanying drawings.
[0025] Figure 1 This is a schematic diagram illustrating the configuration of the image transmission system 1 according to this embodiment.
[0026] Image transmission system 1 is a system for transmitting a decoded stream obtained by decoding a target image, decoding the transmitted decoded stream, and displaying the image. Image transmission system 1 includes a video decoding device (image decoding device) 11, a network 21, a video decoding device (image decoding device) 31, and a video display device (image display device) 41.
[0027] Image T is input to video decoding device 11.
[0028] The network 21 transmits the decoded stream Te generated by the video decoding device 11 to the video decoding device 31. The network 21 is the Internet, a wide area network (WAN), a local area network (LAN), or a combination thereof. The network 21 is not necessarily limited to a two-way communication network, and may be a one-way communication network configured to transmit broadcast waves such as digital terrestrial television broadcasts and satellite broadcasts. Furthermore, the network 21 may also be replaced by a storage medium that records the decoded stream Te, such as a Digital Versatile Disc (DVD: trademark) or a Blu-ray Disc (BD: trademark).
[0029] The video decoding device 31 decodes each decoded stream Te transmitted from the network 21, and generates one or more decoded images Td that have been decoded.
[0030] The video display device 41 displays all or part of the one or more decoded images Td generated by the video decoding device 31. For example, the video display device 41 includes display equipment such as a liquid crystal display and an organic electroluminescent (EL) display. The form of the display includes a fixed type, a mobile type, an HMD type, and the like. In addition, when the video decoding device 31 has high processing capability, it displays high-quality images; and when the device only has low processing capability, it displays images that do not require high processing capability and display capability.
[0031] Operators The operators and symbols used in this specification are described below.
[0032] >> is arithmetic right shift, << is arithmetic left shift, & is bitwise AND, | is bitwise OR, ^ is bitwise XOR, |= is the OR assignment operator, and || indicates logical AND.
[0033] x ? y : z is a ternary operator that takes y when x is true (non-zero) and takes z when x is false (0).
[0034] The Clip3(x, y, z) function is used to clip the value z that is greater than or equal to x and less than or equal to y; returns x when z is less than x (z<x); returns y when z is greater than y (z>y); and returns z in other cases.
[0035] The abs(a) function is used to return the absolute value of a.
[0036] The Int(a) function is used to return the integer value of a.
[0037] The floor(a) function is used to return the largest integer that is equal to or less than a.
[0038] The ceil(a) function is used to return the smallest integer that is equal to or greater than a.
[0039] a / d represents a divided by d (rounded down after the decimal point).
[0040] x = y..z means that x takes integer values from y to z, inclusive, where x, y, and z are integers, and z is greater than or equal to y.
[0041] Structure of the decoded stream Te Before describing in detail the video decoding apparatus 11 and the video decoding apparatus 31 according to this embodiment, the data structure of the decoded stream Te generated by the video decoding apparatus 11 and decoded by the video decoding apparatus 31 will be described.
[0042] Figure 2 This is a diagram illustrating the hierarchical structure of the data in the decoded stream Te. The decoded stream Te illustratively includes a sequence and multiple images that constitute that sequence. Figure 2 (a) through (f) are respectively diagrams illustrating the decoded video sequence of the defined sequence SEQ, the decoded picture of the defined picture PICT, the decoded slice of the defined slice S, the decoded slice data of the defined slice data, the decoded tree unit included in the decoded slice data, and the decoded unit (CU) included in each decoded tree unit.
[0043] Decoded video sequence In the decoded video sequence (CVS, decoded stream), a set of data is defined that is referenced by the video decoding device 31 to decode the decoded video sequence to be processed. For example... Figure 2 As illustrated, CVS includes Video Parameter Set (VPS), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), Picture (PICT), and Supplemental Enhancement Information (SEI).
[0044] In the Video Parameter Set (VPS), a set of decoding parameters shared by multiple videos and a set of decoding parameters associated with the multiple layers and a single layer included in the video are defined in a video that includes multiple layers.
[0045] The Sequence Parameter Set (SPS) defines a set of decoding parameters that the video decoding device 31 references to decode the target sequence. For example, it defines the width and height of an image. Note that multiple SPSs may exist. In this case, any one of the multiple SPSs is selected from the PPS.
[0046] The Picture Parameter Set (PPS) defines a set of decoding parameters that the video decoding device 31 references to decode each picture in the target sequence. These parameters include, for example, a reference value for the quantization step size (pic_init_qp_minus26) used for picture decoding and a flag indicating the application of weighted prediction (weighted_pred_flag). Note that multiple PPSs may exist. In this case, any one of the multiple PPSs is selected for each picture in the target sequence.
[0047] Decoded image In the decoded image, a set of data is defined that is referenced by the video decoding device 31 to decode the image PICT to be processed. For example... Figure 2 As illustrated, the image PICT includes slices 0 through NS-1 (NS is the total number of slices included in the image PICT).
[0048] Note that the subscript of the reference symbol can be omitted if it is not necessary to distinguish each of the slices 0 to NS-1 below. Additionally, this also applies to other subscripted data included in the decode stream Te as described below.
[0049] Decoding slices In the decoding slice, a set of data is defined that is referenced by the video decoding device 31 to decode the slice S to be processed. For example... Figure 2 As illustrated, a slice includes a slice header and slice data.
[0050] The slice header includes a set of decoding parameters referenced by the video decoding device 31 for determining the decoding method of the target slice. The slice type specification information (slice_type) indicating the slice type is an example of the decoding parameters included in the slice header.
[0051] Examples of slice types that can be specified by the slice type specification information include (1) I slices that use only intra-frame prediction in decoding, (2) P slices that use unidirectional or intra-frame prediction in decoding, and (3) B slices that use unidirectional, bidirectional, or intra-frame prediction in decoding. It should be noted that inter-frame prediction is not limited to unidirectional and bidirectional prediction; more reference images can also be used to generate the prediction image. In the following text, when a slice is referred to as a P slice or a B slice, the slice indicates a slice that includes blocks that can be used for inter-frame prediction.
[0052] Note that the slice header may include a reference to the image parameter set PPS (pic_parameter_set_id).
[0053] Decoding slice data In the decoded slice data, a set of data is defined that is referenced by the video decoding device 31 to decode the slice data to be processed. The slice data includes, for example, Figure 2 The CTU is illustrated. A CTU is a fixed-size (e.g., 64x64) block that makes up a slice.
[0054] Decoding Tree Unit exist Figure 2In this document, a set of data is defined as the CTU to be decoded by the video decoding device 31. The CTU is divided into decoding units CU, which serve as the basic units of decoding processing, through recursive quadtree partitioning (QT partitioning), binary tree partitioning (BT partitioning), or ternary tree partitioning (TT partitioning). BT partitioning and TT partitioning are collectively referred to as multi-branch tree partitioning (MT partitioning). The nodes of the tree structure obtained through recursive quadtree partitioning are called decoding nodes. The intermediate nodes of the quadtree, binary tree, and ternary tree are decoding nodes, and the CTU itself is also defined as the highest decoding node.
[0055] Decoding unit like Figure 2 As illustrated, a set of data is defined for the video decoding device 31 to reference in decoding the decoding unit to be processed. Specifically, the CU includes a CU header CUH, prediction parameters, transform parameters, quantization transform coefficients, etc. The prediction mode, etc., are defined in the CU header.
[0056] Prediction processing is sometimes performed on a per-unit basis (CU), and sometimes on a per-unit basis of sub-CUs resulting from further subdivision of the CU. When the size of the CU and its sub-CUs are equal, the number of sub-CUs in the CU is one. When the size of the CU is larger than the size of its sub-CUs, the CU is subdivided into sub-CUs. For example, if the CU is 8x8 and the sub-CUs are 4x4, the CU is subdivided into four sub-CUs, including two horizontal subdivisions and two vertical subdivisions.
[0057] There are two prediction types (prediction modes): intra-frame prediction and inter-frame prediction. Intra-frame prediction refers to prediction within the same image, while inter-frame prediction refers to prediction processing performed between different images (e.g., images displayed at different times).
[0058] Transformation and quantization are performed in units of CU, but the quantization transformation coefficients can be entropy decoded in units of sub-blocks (such as 4x4).
[0059] Prediction parameters The predicted image is derived using prediction parameters attached to the block. These prediction parameters include those for intra-frame prediction and inter-frame prediction.
[0060] The following describes the prediction parameters for intra-frame prediction. Intra-frame prediction parameters include the luma intra-frame prediction mode IntraPredModeY and the chroma intra-frame prediction mode IntraPredModeC. Figure 3This is a diagram indicating the type (mode number) of the intra-prediction mode. As illustrated, for example, there are 67 types (0 to 66) of intra-prediction modes. Additionally, based on the aspect ratio of the CU, there are 28 types (-14 to -1 and 67 to 80) of intra-prediction modes. For example, there are planar prediction (0), DC prediction (1), and angular prediction (2 to 66). Furthermore, for chroma, CCLM (Cross-Component Linear Model) prediction modes (81 to 83), MMLM (Multi-Mode Linear Model) prediction modes, and LM (Linear Model) prediction modes can be added.
[0061] Video decoding device configuration The video decoding apparatus 31 according to this embodiment is described. Figure 4 Configuration of ).
[0062] The video decoding device 31 includes an entropy decoding unit 301, a parameter decoding unit (predictive image decoding device) 302, a loop filter 305, a reference image memory 306, a prediction parameter memory 307, a prediction image generation unit 308, an inverse quantization and inverse transform processing unit 311, an addition unit 312, and a prediction parameter derivation unit 320. It should be noted that, according to the video decoding device 11 described later, a configuration in which the loop filter 305 is not included in the video decoding device 31 is also used.
[0063] The parameter decoding unit 302 also includes a header decoding unit 3020, a CT information decoding unit 3021, and a CU decoding unit 3022 (prediction mode decoding unit). The CU decoding unit 3022 further includes a TU decoding unit 3024. These can be collectively referred to as decoding modules. The header decoding unit 3020 decodes parameter set information such as VPS, SPS, and PPS, as well as the slice header (slice information), from the decoded data. The CT information decoding unit 3021 decodes the CT from the decoded data. The CU decoding unit 3022 decodes the CU from the decoded data. If the TU includes prediction error, the TU decoding unit 3024 decodes the QP update information (quantization correction value) and the quantization prediction error (residual_coding) from the decoded data.
[0064] Furthermore, an example using CTUs and CUs as processing units is described below, but processing is not limited to this example, and processing can be performed on a sub-CU basis. Alternatively, processing can be performed on a block or sub-block basis by replacing CTUs and CUs with blocks and sub-CUs with sub-blocks.
[0065] Entropy decoding unit 301 performs entropy decoding on the decoded stream Te input from the outside, separating and decoding individual codes (syntax elements). The separated codes include prediction information for generating the predicted image, prediction errors for generating the difference image, etc. Entropy decoding has a variable-length decoding method for syntax elements based on context (probability model) (which is adaptively selected according to the type of syntax element and surrounding conditions), and a variable-length decoding method for syntax elements using a predetermined table or formula.
[0066] The parameter decoding unit 302 notifies the entropy decoding unit 301 of the syntax elements that need to be decoded. The entropy decoding unit 301 outputs the syntax elements to the prediction parameter derivation unit 320.
[0067] Configuration of Prediction Parameter Derivation Unit 320 The prediction parameter derivation unit 320 can derive prediction parameters based on the output of the parameter decoding unit 302 and the prediction parameters stored in the prediction parameter memory 307. The derived prediction parameters are output to the prediction image generation unit 308 and stored in the prediction parameter memory 307. The prediction parameter derivation unit can derive different prediction modes for luminance prediction and chromaticity prediction.
[0068] The loop filter 305 is a filter disposed within the decoding loop and is used to remove block distortion and ringing distortion and improve image quality. The loop filter 305 applies filters such as a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF) to the decoded image of the CU generated by the adder unit 312.
[0069] The reference image memory 306 stores the decoded images of the CUs generated by the addition unit 312 at predetermined locations according to each target image and target CU.
[0070] The prediction parameter memory 307 stores prediction parameters in predetermined locations for each CTU or CU to be decoded. Specifically, the prediction parameter memory 307 stores parameters derived by the prediction parameter derivation unit 320, prediction modes such as predMode separated by the entropy decoding unit 301, etc.
[0071] The prediction image generation unit 308 receives inputs such as prediction parameters derived by the prediction parameter derivation unit 320. Additionally, the prediction image generation unit 308 reads a reference image from the reference image memory 306. Under the prediction mode indicated by the prediction mode `predMode`, the prediction image generation unit 308 generates prediction images of blocks or sub-blocks using the prediction parameters and the read reference image (reference image block). Here, a reference image block refers to a set of pixels on the reference image (called a block because they are usually rectangular) and is the region used to generate the prediction image.
[0072] Predictive image generation unit 308 When the prediction mode `predMode` indicates an intra-prediction mode, the intra-prediction image generation unit 310 performs intra-prediction using intra-prediction parameters (luminance intra-prediction mode `IntraPredModeY` and / or chrominance intra-prediction mode `IntraPredModeC`) input from the prediction parameter derivation unit 320 and reference pixels read from the reference image memory 306. When the prediction mode `predMode` indicates an inter-prediction mode, the inter-prediction image generation unit performs inter-prediction using inter-prediction parameters input from the prediction parameter derivation unit 320 and reference pixels read from the reference image memory 306.
[0073] Specifically, the prediction image generation unit 308 reads neighboring blocks from the target image within a predetermined range from the target block in the reference image memory 306. This predetermined range includes the neighboring blocks to the left, upper left, upper, and upper right of the target block, and the referenced area varies depending on the intra-frame prediction mode.
[0074] The prediction image generation unit 308 generates a prediction image of the target block by referring to the read decoded pixel values and the prediction mode indicated by predMode, IntraPredModeY and / or IntraPredModeC. The prediction image generation unit 308 outputs the generated prediction image of the block to the addition unit 312.
[0075] The generation of the predicted image based on intra-frame prediction modes is described below. In planar prediction, DC prediction, and angular prediction, the decoded surrounding region adjacent to (close to) the predicted target block is configured as a reference region R. Then, pixels on the reference region R are extrapolated in a specific direction to generate the predicted image. For example, the reference region R may be configured as an L-shaped region including the left and top of the predicted target block (or further including the upper left, upper right, and lower left).
[0076] Intra-predictive image generation unit 310 use Figure 5 The configuration of the intra-frame prediction image generation unit 310 is described. The intra-frame prediction image generation unit 310 includes a reference sample filter unit 3103 (second reference image configuration unit), an intra-frame prediction unit 3104, and a prediction image corrector 3105 (prediction image corrector, filter switching unit, weight coefficient changing unit).
[0077] Intra-prediction unit 3104 generates a predicted image of the target block based on each reference pixel (unfiltered reference image) on the reference region R, a filtered reference image generated by applying a reference pixel filter (first filter), and an intra-prediction mode, and outputs it to prediction image corrector 3105. Prediction image corrector 3105 corrects the predicted image according to the intra-prediction mode and outputs the corrected predicted image.
[0078] The following describes the units included in the intra-frame prediction image generation unit 310.
[0079] Reference Sample Filter Unit 3103 Reference sample filter unit 3103 applies a reference pixel filter (first filter) to the unfiltered reference image according to the intra-prediction mode to derive the filtered reference image s[x][y] at each position (x, y) on the reference region R. Specifically, a low-pass filter is applied to the unfiltered reference image at each position (x, y) and its surroundings, and the filtered reference image is derived. Note that the low-pass filter does not necessarily need to be applied to all intra-prediction modes, and the low-pass filter can be applied to some intra-prediction modes. Note that the filter applied to the unfiltered reference image on the reference region R in reference sample filter unit 3103 is called the "reference pixel filter (first filter)", while the filter used to correct the prediction image in the prediction image corrector 3105 described below is called the "boundary filter (second filter)".
[0080] Configuration of Intra-Prediction Unit 3104 Intra-prediction unit 3104 generates a prediction image (predicted pixel values, uncorrected prediction image) of the predicted target block based on the intra-prediction mode, the unfiltered reference image, and the filtered reference pixel values, and outputs it to the prediction image corrector 3105. Intra-prediction unit 3104 internally includes a planar prediction unit 31041, a DC prediction unit 31042, an angle prediction unit 31043, an LM prediction unit 31044, a MIP prediction unit (matrix-based intra-prediction) 31045, a DIMD (decoder-side intra-mode derivation) prediction unit 31046, and a newMPMList generation unit 31047. Intra-prediction unit 3104 may also include... Figure 5 The TIMD (Template-Based Intra-Modal Derivation) prediction unit 31048 is shown. The intra-prediction unit 3104 selects a specific predictor based on the intra-prediction mode and inputs an unfiltered reference image and a filtered reference image. The relationship between the intra-prediction mode and the corresponding predictor is as follows.
[0081] - Planar prediction... Planar prediction unit 31041 - DC Prediction...DC Prediction Unit 31042 - Angle prediction... Angle prediction unit 31043 - LM prediction...LM prediction unit 31044 - MIP prediction...MIP prediction unit 31045 - DIMD prediction...DIMD prediction unit 31046 - EIP Prediction...EIP Prediction Unit 31047 Plane prediction The planar prediction unit 31041 generates a prediction image q[x][y] by linearly adding multiple filtered reference images s[x][y] according to the distance between the predicted pixel position and the reference pixel position, and outputs the generated image to the prediction image corrector 3105.
[0082] DC Prediction DC prediction unit 31042 derives the DC prediction value corresponding to the average value of the filtered reference image s[x][y], and outputs the prediction image q[x][y] with the DC prediction value as the pixel value.
[0083] Angle Prediction Angle prediction unit 31043 uses the filtered reference image s[x][y] to generate a prediction image q[x][y] in the prediction direction (reference direction) indicated by the intra-frame prediction mode, and outputs the generated image to prediction image corrector 3105.
[0084] LM Prediction The LM prediction unit 31044 predicts the chromaticity pixel values based on the luminance pixel values. More specifically, the linear model generates a predicted chromaticity image (Cb, Cr) based on the decoded luminance image. As an example of LM prediction, there is CCLM (Cross-Component Linear Model Prediction) prediction. CCLM prediction is a prediction method that uses a linear model to predict the chromaticity of the same block based on luminance.
[0085] MIP Prediction The MIP prediction unit 31045 generates a prediction image q[x][y] by performing a product and sum operation on the reference sample s[x][y] and the weight matrix derived from the neighboring region, and outputs the prediction image q[x][y] to the prediction image corrector 3105.
[0086] DIMD Prediction The DIMD method selects five intra-frame prediction angle modes from the gradient histograms obtained by applying 3x3 filters to the adjacent reference regions of the current block. Then, it obtains the final prediction result by weighting the prediction results of these five angle modes and the planar mode.
[0087] EIP prediction (Extrapolation intra-prediction, intra-prediction mode based on extrapolation filter) The EIP prediction unit 31047 uses an extrapolation filter to predict the current block. The EIP method takes the top-left 15 pixels (a 4x4 square of pixels minus the bottom-right pixel) as input to the extrapolation filter and outputs the bottom-right 1 pixel. It uses a function model (EIP parameters) to predict the bottom-right target pixel based on reference pixels located around the target pixel (e.g., in the top-left corner). Additionally, the EIP method uses a merge mode, inheriting EIP parameters from neighboring and non-neighboring blocks using the EIP method and applying them to the current block. The EIP method uses two mode lists: curModelList and mergeModelList. Figure 6 The details of the EIP method are shown.
[0088] Configuration of Predictive Image Corrector 3105 The prediction image corrector 3105 corrects the prediction image output from the intra-prediction unit 3104 according to the intra-prediction mode. Specifically, the prediction image corrector 3105 derives the prediction image (corrected prediction image) Pred by performing a weighted addition (weighted average) on the unfiltered reference image and the prediction image for each pixel of the prediction image, based on the distance between the reference region R and the target prediction pixel. It should be noted that in certain intra-prediction modes (e.g., planar prediction, DC prediction, etc.), the prediction image corrector 3105 may not correct the prediction image, and the output of the intra-prediction unit 3104 can be used as the prediction image.
[0089] Application Examples EIP generation unit 31047 Figure 6 The structure of the EIP prediction unit 31047 is shown, including a reference sample derivation unit 4701 and a prediction model derivation unit 4710. The prediction model derivation unit 4710 consists of a mergeModelList derivation unit 4702 and a curModelList derivation unit 4703. The mergeModelList derivation unit 4702 includes a mergeModelList derivation unit 47021 and a mergeModelList reordering unit 47022. The curModelList derivation unit 4703 consists of a candidate derivation unit 47031, a model derivation unit 47032, and a curModelList reordering unit 47033.
[0090] Reference Sample Derivation Unit 4701 The reference sample derivation unit 4701 determines the reference region for EIP model derivation in the model derivation unit 47032. The EIP prediction unit 31047 can use three extrapolation filters: a square filter, a horizontal filter, and a vertical filter, and the input pixels used by the extrapolation filter may depend on the shape of the extrapolation filter. Figure 8 shows these three filters, where the gray pixels (InpW x InpH pixels excluding / subtracting the bottom-right pixel) in each filter represent the input of the model, and the white pixels represent the output of the model. (InpW, InpH) of the SquareFilter may be (4, 4) or (3, 3), where InpW = InpH. (InpW, InpH) of the vertical filter may be (2, 8), (3, 5), (2, 5) or (2, 4), where InpW<InpH. (InpW, InpH) of the horizontal filter may be (8, 2), (5, 3), (5, 2), (4, 2), where InpW>InpH.
[0091] To derive EIP parameters (filterCoefficient[], a set of integer values), the EIP model derivation unit uses different template regions and corresponding reference regions. The EIP model derivation unit uses reference pixels to derive appropriate EIP parameters to predict the target pixels of the template region. There are three reference region (refArea) modes, as shown in Figure 7 : top-left (A_L), top (A), and left (L). Each reference region includes two parts: input reference (ROI) and reference and template (RTEMP). The ROI is only used as input / reference for EIP parameter derivation. The RTEMP is used both as input / reference for EIP parameter derivation and as template / output. When the filter requires InpW and InpH pixels around the output pixel as input, the ROI has InpW-1 more columns and InpH-1 more rows than the RTEMP. InpW and InpH are integer constants that depend on filterShape. The rows TempA and TempL of the RTEMP located above and to the left of the current block may be dynamically determined based on the height and width of the current block.
[0092] The values of TempL and TempA may be consistent with the smaller one of curWidth and curHeight, where curWidth and curHeight respectively represent the width and height of the current block. The left adjacent side of the current block and the top adjacent side of the current block may use different template size values, denoted as TempL and TempA respectively. In conjunction with Figure 7The range of the top reference region is (x, y), where x ranges from [-TempL-InpW-1, 2*curWidth-1] and y ranges from [-TempA-InpH-1, -1]; the range of the left reference region is (x, y), where x ranges from [-TempL-InpW-1, -1] and y ranges from [-TempA-InpH-1, 2*curHeight]; the range of the upper left reference region includes both the top and left reference regions.
[0093] In this implementation, the template size (TempA and TempL) can be set using the current block size through the following method: (Example 1: Use the same fixed value for the top and left sides.) The template size is set to a fixed value, denoted as n, where n > 0. TempA = TempL = n.
[0094] (Example 2: The same block-size-dependent values are used for the top and left sides.) The template size is set to a value dependent on the block size, such as N times the smaller of the block width and height (where N is an integer greater than or equal to 1). TempL = N*curWidth, TempA = N*curHeight. N can be multiple rational numbers, and their denominators can be powers of 2, such as 2, 4, 8, etc. TempL = (N*curWidth)>>shiftN, TempL = (N*curHeight)>>shiftN. shiftN can be 2, 4, 8, etc. Alternatively, the template size is set to M times the larger of the block width and height (where M is an integer greater than or equal to 1). TempL = curWidth / M, TempA =curHeight / M. Division can be replaced with a shift operation, such as TempL = curWidth>>shiftM, TempA =curHeight>>shiftM. shiftM can be 2, 4, 8, etc.
[0095] (Example 3: Different values depending on the block size are used for the top and left sides.) The value above the current block (TempA) is set to N times the width of the current block (where N is an integer greater than or equal to 1), and the value to the left (TempL) is set to M times the height of the current block (where M is an integer greater than or equal to 1).
[0096] TempL = N*curWidth, TempA = M*curHeight. N and M can be multiple rational numbers, and their denominators can be powers of 2, such as 2, 4, 8, etc. TempL = (N*curWidth)>>shiftN, TempA = (M*curHeight)>>shiftN. shiftN can be 2, 4, 8, etc. Alternatively, TempA and TempL can be set separately using conditional curWidth and curHeight.
[0097] TempL = 4 (if curWidth < 8) otherwise TempL = 8 (if curWidth < 16) otherwise TempL = 16 (otherwise) TempA = 4 (if curHeight < 8) otherwise TempA = 8 (if curHeight < 16) otherwise TempA = 16 (otherwise) TempL and TempA are determined using one or more conditions that compare the current block width and current block height with predetermined values.
[0098] TempL and TempA can be determined using a lookup table, where the index of the table is determined using log2 of the current block width (=log2(curWidth)) and the current block height (=log2(curHeight)), where the values in the table are sorted in ascending order and the maximum value is equal to or less than a specific value.
[0099] TempL = TempTableL[log2(curWidth)], where TempTableL[] can be {1, 2, 4, 8, 8, 8, 8, 8, 8}.
[0100] TempA = TempTableA[log2(curWidth)], where TempTableA[] can be {1, 2, 4, 8, 8, 8, 8, 8, 8}.
[0101] In other implementations, InpW and InpH can also be determined using the current block size.
[0102] For example, For a square filter, if the current block is a small block, then InpW = InpH = 3; for other / non-small blocks, then InpW = InpH = 4.
[0103] For vertical filters, if the current block is a small block, then InpW = 2 and InpH = 4; for other / non-small blocks, then InpW = 2 and InpH = 8.
[0104] For horizontal filters, if the current block is a small block, then InpW = 4 and InpH = 2; for other / non-small blocks, then InpW = 8 and InpH = 2.
[0105] InpW and InpH can be determined using one or more conditions that compare the current block width and current block height to predetermined values.
[0106] InpW and InpH can be determined using a lookup table, where the index of the table is determined using log2 of the current block width (=log2(curWidth)) and the current block height (=log2(curHeight)), where the values in the table are sorted in ascending order and the maximum value is equal to or less than a specific value.
[0107] InpW = InpTableW[log2(curWidth)], where InpTableW[] can be {4, 4, 4, 8, 8, 8, 8, 8, 8}.
[0108] InpH = InpTableH[log2(curWidth)], where InpTableH[] can be {4, 4, 4, 8, 8, 8, 8, 8, 8}.
[0109] curModelList exported unit 4703 The curModelList export unit 4703 generates a list of EIP parameters calculated based on the current block reference region. It includes a candidate export unit 47031, a model export unit 47032, and a curModelList reordering unit 47033. The function model includes filterShape and filterCoefficient[]. filterShape represents the input pixel of the extrapolation filter being used (in this embodiment, it can be S, V, H as described above), and filterCoefficient[] includes NCoef filter coefficients that will be multiplied by each input pixel to predict the target pixel. If no bias term is used, NCoef is set to equal NRef = (InpH x InpW) - 1. If a bias term is used, NCoef is set to equal NRef + 1. NRef is the number of reference / input pixels used to predict the target pixel. For 4x4 square, 2x8 vertical, and 8x2 horizontal filters, NRef is 15. For 3x3 square, 2x5 vertical, and 5x2 horizontal filters, NRef is 8, 9, and 9, respectively. For 2x4 vertical and 4x2 horizontal filters, NRef is 7. For 3x5 vertical and 5x3 horizontal filters, NRef is 14.
[0110] Candidate derived unit 47031 The EIP method generates multiple candidate models for a target block, each differing in filter shape, reference region, or both. The number of candidate models generated for the current block, as well as the filter and reference region used for each candidate model, is determined based on the size of the current block. Specific definitions are as follows: Figure 9 As shown. Figure 9 The table shows the current block's width (w) in the first row, with possible values of (4, 8, 16, 32). The first column shows the current block's height (h), with possible values of (4, 8, 16, 32). Each cell in the table corresponds to a specific block size; for example, the cell in the second row and second column represents a target block of size 4x4. Each cell contains information (settings) about the number of candidate models used for that target block size, as well as the filter and reference region for each model. Optional candidate filter shapes (filterShape) are represented as (S, V, H), indicating (square filter, vertical filter, horizontal filter), such as... Figure 8 As shown. The optional reference area (refArea) candidate set is represented as (A_L, A, L), indicating the (upper left, upper top, left side) region, as... Figure 7 As shown. Candidate derived unit 47031 is based on Figure 9The table shown and the size / shape of the target block are used to generate a candidate list named curCandiList as candidate models for the target block. In the case of a 4x4 block, curCandiList consists of (A_L, S), (A_L, V), and (A_L, H).
[0111] Model derived unit 40732 The model export unit 40732 exports a set of filter coefficients (EIP parameters for each model (filterShape, refArea)) based on the elements in curCandiList. The model export unit 40732 exports curModelList by storing the exported EIP parameters (filterCoefficient[]) and filterShape in curModelList. In the case of a 4x4 block, curCandiList is (filterCoeff0, S), (filterCoeff1, V), and (filterCoeff2, H). filterCoeff0, filterCoeff1, and filterCoeff2 are the filter coefficients exported using the reference regions (A_L, S), (A_L, V), and (A_L, H) in curCandiList and the filterShape, respectively.
[0112] Assume that in the currently used filter, there is the following functional relationship between the input pixels and the output pixels: `output = (a0*x0 + a1*x1 + a2*x2 + a3*x3 + a4*x4 + a5*x5 + a6*x6 + a7*x7 + a8*x8 + a9*x9 + a10*x10 + a11*x11 + a12*x12 + a13*x13 + a14*x14 +offset)>>shift(xi is the set of input pixel values, output is the output pixel value).` This derives the EIP parameters or `filterCoefficient[] = [a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14]` based on multiple [input, output] samples in the current reference, where the output position belongs to the pixels in the template region specified by `refArea`, and the input belongs to the input pixels corresponding to the output pixels specified by `filterShape`.
[0113] Based on multiple reference samples, the coefficient matrix A of the equation system is obtained. A is a 2D matrix of dimension NxN, where N is the number of current reference samples, i.e., the number of filterCoefficient[], for example, 15. Let matrix P be a 1D column matrix of length M (according to the given relation, P is the transpose of [a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14]). Let matrix T be a 1D column matrix of length N, where each element in T corresponds to a target pixel.
[0114] Then, the relationship is given by the following formula: A P=T Now, multiply both sides by the transpose of A (At): At A P = At T Because At A obtains a symmetric matrix S[][], and At T yields vector V[], which can then be decomposed using LDL. Let L be a lower triangular matrix, D be a diagonal matrix, and Lt be the transpose of L.
[0115] L D Lt P = At T Given A and T, L and D are calculated using LDL decomposition or Cholesky decomposition formulas. Therefore, a matrix P representing the coefficients of a given functional relationship is obtained through simple calculation.
[0116] The model derivation unit 40732 stores the pixels in the reference region in separate arrays refX[][] and refY[]. refX[][] is a two-dimensional array of size NCoef x NTemp, where NCoef is the number of reference pixels for the target pixel, or the number of filter coefficients filterCoefficient[], for example, NCoef = 15. NTemp is the number of currently available reference pixels or template pixels within RTEMP (e.g., NTemp = TempA*TempH + TempA*curWidth*2 +TempH*curHeight*2). The transpose of the coefficient matrix A, denoted as At, is stored in RefX[][]. Note that xi corresponds to refX[i][].
[0117] Independent of filterShape (filter type), the model's exported unit 40732 has refY[] set as follows: refY[] = recSamples[x][y] Based on the filterShape (filter type), the model-derived unit 40732 has refX[][] set as follows: Square filter (filterShape = S): If a bias term is used, then refX
[15] [] = 1.
[0118] Horizontal filter (filterShape = H): If a bias term is used, then refX
[15] [] = 1.
[0119] Vertical filter (filterShape=V): Here, (x, y) represents the coordinates of the current target pixel in the reconstructed image, and recSamples is the reconstructed image.
[0120] If a bias term is used, then refX
[15] [] = 1.
[0121] Model 40732 derives XX[i][j] and XY[i] as follows: XX[i][j] and XY[i] are initialized to 0 and updated as follows: In this implementation, the bias term is omitted or added as a fixed or dynamic value.
[0122] (Example 1: Omitted bias terms) The bias term is omitted, and in a model with 15 coefficients, each coefficient is multiplied by the input pixel value.
[0123] output = (a0*x0 + a1*x1 + a2*x2 + a3*x3 + a4*x4 + a5*x5 + a6*x6 + a7*x7 + a8*x8 + a9*x9 + a10*x10 + a11*x11 + a12*x12 + a13*x13 + a14*x14 +offset)>>shift. offset = (1<<shift)> >1 or 0. shift is a constant integer value, which can be between 6 and 15.
[0124] (Example 2: Using a fixed bias term) Using a fixed bias term in a model with a total of 16 coefficients. The first 15 coefficients are the same as in Example 1, and the 16th is the bias term represented as bias. x15 = refX
[15] [] = 1 is used. Note that the order of these 16 terms can be interchanged.
[0125] output = (a0*x0 + a1*x1 + a2*x2 + a3*x3 + a4*x4 + a5*x5 + a6*x6 + a7*x7 + a8*x8 + a9*x9 + a10*x10 + a11*x11 + a12*x12 + a13*x13 + a14*x14 + bias(=a15 * x15) + offset)>>shift EIP Multiple Models In this implementation, an EIP multi-model pattern is derived and used, where one model (single model) or two models (multi-model) are used to predict the current block. In the multi-model pattern, the model derivation unit 40732 derives two sets of EIP parameters based on the input and output portions of the filter.
[0126] output0 = (a[0][0]*x[0][0]+ a[0][1]*x[0][1]+ a[0][2]*x[0][2]+ a[0][3]*x[0][3]+ a[0][4]*x[0][4]+ a[0][5]*x[0][5]+ a[0][6]*x[0][6]+ a[0][7]*x[0][7]+ a[0][8]*x[0][8]+ a[0][9]*x[0][9]+ a[0]
[10] *x[0]
[10] + a[0]
[11] *x[0]
[11] +a[0]
[12] *x[0]
[12] + a[0]
[13] *x[0]
[13] + a[0]
[14] *x[0]
[14] + offset)>>shift (for model0) output1 = (a[1][0]*x[1][0]+ a[1][1]*x[1][1]+ a[1][2]*x[1][2]+ a[1][3]*x[1][3]+ a[1][4]*x[1][4]+ a[1][5]*x[1][5]+ a[1][6]*x[1][6]+ a[1][7]*x[1][7]+ a[1][8]*x[1][8]+ a[1][9]*x[1][9]+ a[1]
[10] *x[1]
[10] + a[1]
[11] *x[1]
[11] +a[1]
[12] *x[1]
[12] + a[1]
[13] *x[1]
[13] + a[1]
[14] *x[1]
[14] + offset)>>shift (for model1) Note: a[i][j] corresponds to aj of model i (=filterCoefficient[j]). x[i][j] corresponds to xj of the reference pixel (=refX[j][]), where the target pixel is classified as class i.
[0127] The samples in the reference are classified into two classes, denoted as class 0 and class 1. Samples in class 0 are used to derive the EIP parameters of model 0, while samples in class 1 are used to derive the EIP parameters of model 1.
[0128] Set the threshold `thres` to the average pixel value in the current reference. Regarding the classification method, the following specific implementation options exist: (Method 1) For each sample, if the average pixel value of the filter input is less than the threshold thres, the sample is classified as class 0; otherwise, it is classified as class 1. The average value avg can be derived as ΣrefX[i] / 15. avg can also be derived as (refX[0] + ΣrefX[i] + 8) >> 4, where i = 0..15.
[0129] (Method 2) Calculate the average value aver2 of the neighboring pixels of the output / target pixel. These neighboring pixels can be the pixels to the left and above the output / target pixel in the filter. If aver2 is less than thres, the sample is classified as class 0; otherwise, it is classified as class 1. The average value aver2 can be derived as (recSamples[x-1][y] + recSamples[x][y-1]) >> 1.
[0130] (Method 3) The neighboring pixels may be the left, top, and top-left pixels of the output pixel in the filter. The neighboring pixels may be the left and top pixels of the output / target pixel in the filter. The average value aver3 may be derived as (recSamples[x-1][y] + recSamples[x][y-1] + recSamples[x-1][y-1]) / 3. If aver3 is less than the threshold thres, the sample is classified as class 0; otherwise, it is classified as class 1. aver3 may be derived as (1*recSamples[x-1][y] + 2*recSamples[x][y-1] + 1*recSamples[x-1][y-1] + 2)>>2. aver3 may also be derived as (3*recSamples[x-1][y] + 3*recSamples[x][y-1] + 2*recSamples[x-1][y-1] + 4)>>3.
[0131] For configurations using a single model or multiple models for a block, the following settings are applied: (Setting 1) A single model is applied to all blocks.
[0132] (Setting 2) Multiple models are applied to all blocks.
[0133] (Setting 3) A single model is applied to small blocks, and multiple models are applied to large blocks. A small block is defined as curBlockWidth * curBlockHeight < N, and a large block is defined as curBlockWidth * curBlockHeight >= N. The parameter N is set to a value such as 16, 64, or 128. Here, curBlockWidth and curBlockHeight respectively denote the width and height of the current block.
[0134] curModelList reordering unit 47033 The curModelList reordering unit 47033 sorts the models in its input curModelList based on SAD cost, with models having smaller SAD cost ranked earlier and those having larger SAD cost ranked later. As shown in Figure 10As shown, the curModelList reordering unit 47033 uses pixels from the input reference (ROI) and RTemp to predict pixels in the template region of RTEMP. It then compares the predicted pixels with the reconstructed pixels to obtain the SAD cost: sad = Σ (x, y) abs (output values of the target pixels [x][y] derived using the input values corresponding to filterShape - reconSamples[x][y]), where Σ(x, y) = the position of the RTEMP template. Subsequently, it reorders curModelList in ascending order based on the SAD cost.
[0135] mergeModelList exported unit 4702 The mergeModelList export unit 4702 generates the mergeModelList. It consists of two components: the mergeModelList export unit 47021 and the mergeModelList reordering unit 47022.
[0136] mergeModelList exported unit 47021 The mergeModelList export unit 47021 generates a mergeModelList, which consists of four parts: spatially adjacent candidates (A0, A1, B0, B1, B2), spatially non-adjacent candidates (N0, N1, N2, …), temporal candidates (Tmp), and historical candidates (Hist0, Hist1, …). The constructed EIP merge list can include up to 5 to 12 candidates, for example, {A1, B1, B0, A0, B2, N0, N1,,,Ni, Tmp, Hist0, Hist1, …Histj}.
[0137] mergeModelList exported unit 47021 The mergeModelList export unit 47021, similar to the curModelList reordering unit 47033, reorders the models in mergeModelList in ascending order.
[0138] The inverse quantization and inverse transform processing unit 311 performs inverse quantization on the quantized transform coefficients input from the prediction parameter derivation unit 320 to calculate the transform coefficients. These quantized transform coefficients are obtained by performing frequency transformations, such as Discrete Cosine Transform (DCT) or Discrete Sine Transform (DST), on the prediction error for quantization during decoding. The inverse quantization and inverse transform processing unit 311 performs inverse frequency transformations, such as inverse DCT or inverse DST, on the calculated transform coefficients to calculate the prediction error. The inverse quantization and inverse transform processing unit 311 outputs the prediction error to the addition unit 312.
[0139] The addition unit 312 adds the predicted image of the block input from the intra-frame prediction image generation unit 310 and the prediction error input from the inverse quantization and inverse transform processing unit 311 for each pixel, and generates a decoded image of the block. The addition unit 312 stores the decoded image of the block in the reference image memory 306 and outputs it to the loop filter 305.
[0140] Configuration of video decoding device Next, the configuration of the video decoding device 11 according to this embodiment will be described. Figure 11 This is a block diagram illustrating the configuration of a video decoding apparatus 11 according to this embodiment. The video decoding apparatus 11 is configured to include a prediction image generation unit 101, a subtraction unit 102, a transform and quantization processing unit 103, an inverse quantization and inverse transform processing unit 105, an addition unit 106, a loop filter 107, a prediction parameter memory (prediction parameter storage unit, frame memory) 108, a reference image memory (reference image storage unit, frame memory) 109, a decoding parameter determination unit 110, a parameter decoding unit 111, a prediction parameter derivation unit 120, and an entropy decoding unit 104.
[0141] The prediction image generation unit 101 generates a prediction image for each CU, which is a region obtained by segmenting each image of the image T. The operation of the prediction image generation unit 101 is the same as that of the intra-frame prediction image generation unit 310 already described, so its description is omitted.
[0142] Subtraction unit 102 subtracts the pixel values of the predicted image of the block input from prediction image generation unit 101 from the pixel values of image T to generate prediction error. Subtraction unit 102 outputs the prediction error to transformation and quantization processing unit 103.
[0143] The transform and quantization processing unit 103 performs frequency transformation on the prediction error input from the subtraction unit 102 to calculate the transform coefficients, and derives the quantized transform coefficients through quantization. The transform and quantization processing unit 103 outputs the quantized transform coefficients to the entropy decoding unit 104 and the inverse quantization and inverse transform processing unit 105.
[0144] Inverse quantization and inverse transform processing unit 105 and inverse quantization and inverse transform processing unit 311 in video decoding device 31 Figure 4 The same applies, so its description is omitted. The calculated prediction error is output to the adder unit 106.
[0145] For the entropy decoding unit 104, quantization transformation coefficients are input from the transformation and quantization processing unit 103, and decoding parameters are input from the parameter decoding unit 111. The entropy decoding unit 104 performs entropy decoding on the segmentation information, prediction parameters, quantization transformation coefficients, etc., to generate and output the decoded stream Te.
[0146] The parameter decoding unit 111 instructs the entropy decoding unit 104 to encode the prediction parameters and quantization coefficients derived from the prediction parameter derivation unit 120.
[0147] The prediction parameter derivation unit 120 derives syntax elements from the parameters input to the decoding parameter determination unit 110. Some parts of the prediction parameter derivation unit 120 have the same structure as the prediction parameter derivation unit 320.
[0148] The addition unit 106 adds the pixel values of the predicted image of the block input from the prediction image generation unit 101 and the prediction error input from the inverse quantization and inverse transform processing unit 105 to each pixel to generate a decoded image. The addition unit 106 stores the generated decoded image in the reference image memory 109.
[0149] The loop filter 107 applies a deblocking filter, SAO, and ALF to the decoded image generated by the addition unit 106. It should be noted that the loop filter 107 does not necessarily include all three types of filters mentioned above, and may, for example, be configured to have only a deblocking filter.
[0150] The prediction parameter memory 108 stores the prediction parameters generated by the prediction parameter derivation unit 120 for each target image and CU at a predetermined location. It can store the transformation coefficients created by the transformation and quantization processing unit 103.
[0151] The reference image memory 109 stores the decoded image generated by the loop filter 107 for each target image and CU at a predetermined location.
[0152] The decoding parameter determination unit 110 selects one set of decoding parameters from multiple sets. The decoding parameters refer to the aforementioned QT, BT, or TT segmentation information, prediction parameters, or parameters to be decoded, which are generated in association with these parameters. The prediction image generation unit 101 uses these decoding parameters to generate a prediction image.
[0153] The decoding parameter determination unit 110 calculates an RD cost value for each of the multiple sets of decoding parameters. This RD cost value indicates the amount of information and the magnitude of the decoding error. The RD cost value is, for example, the sum of the code amount and the value obtained by multiplying the coefficient λ by the squared error. The decoding parameter determination unit 110 selects the set of decoding parameters with the minimum calculated cost value. With this configuration, the entropy decoding unit 104 outputs the selected set of decoding parameters as a decoded stream Te. The decoding parameter determination unit 110 outputs the determined decoding parameters to the parameter decoding unit 111, the prediction parameter derivation unit 120, and the prediction image generation unit 101.
[0154] It should be noted that some parts of the video decoding device 11 and video decoding device 31 in the above embodiments, such as the entropy decoding unit 301, parameter decoding unit 302, loop filter 305, intra-frame prediction image generation unit 310, inverse quantization and inverse transform processing unit 311, addition unit 312, prediction parameter derivation unit 320, prediction image generation unit 101, subtraction unit 102, transform and quantization processing unit 103, entropy decoding unit 104, inverse quantization and inverse transform processing unit 105, loop filter 107, decoding parameter determination unit 110, parameter decoding unit 111, and prediction parameter derivation unit 120, can be implemented by a computer. In this case, this configuration can be implemented by recording the program used to implement such control functions on a computer-readable recording medium, and causing the computer system to read the program recorded on the recording medium for execution. It should be noted that the "computer system" mentioned here refers to the computer system built into the video decoding device 11 or video decoding device 31, and assumes that it includes an operating system and hardware components such as peripheral devices. Furthermore, "computer-readable recording medium" refers to portable media such as floppy disks, magneto-optical disks, ROMs, CD-ROMs, etc., and storage devices such as hard drives built into computer systems. Additionally, "computer-readable recording medium" can include media that dynamically store programs for short periods, such as communication lines in cases where programs are transmitted via networks (such as the Internet) or communication lines (such as telephone lines), and can also include media that store programs for fixed periods, such as volatile memory included in computer systems used as servers or clients in this case. Furthermore, the aforementioned program can be a program for implementing some of the functions described above, or a program that can combine with programs already recorded in the computer system to implement the aforementioned functions.
[0155] Furthermore, the video decoding device 11 and video decoding device 31 in the above embodiments can also be implemented as integrated circuits such as large-scale integrated circuits (LSI). Each functional block of the video decoding device 11 and video decoding device 31 can be implemented as a processor independently, or partially or entirely integrated into a processor. Circuit integration technology is not limited to LSI, and the integrated circuits used for functional blocks can be implemented as dedicated circuits or multi-purpose processors. Where circuit integration technologies that replace LSI emerge with advancements in semiconductor technology, integrated circuits based on such technologies can be used.
[0156] The embodiments of this disclosure have been described in detail above with reference to the accompanying drawings. However, the specific configuration is not limited to the above embodiments, and various modifications can be made to the design without departing from the spirit of this disclosure.
[0157] The embodiments of the present invention can be applied to video decoding devices that decode encoded image data and video encoding devices that generate encoded data from image data. Furthermore, the data structure of the encoded data is generated by the video encoding device and referenced by the video decoding device.
[0158] In one example, a video decoding apparatus for generating predicted images is provided. The apparatus includes an EIP prediction unit configured to generate intra-frame predicted images using a function model generated based on samples in a reference region.
[0159] In one example, a video decoding apparatus is provided. The apparatus includes an EIP prediction unit configured to predict a target block using a functional model.
[0160] <Cross-reference> This patent application claims priority to Japanese Patent Application No. 2024-043054, filed on March 19, 2024, the entire contents of which are incorporated herein by reference.
[0161] List of reference numerals 31 Image Decoding Device 301 Entropy Decoding Unit 302 Parameter Decoding Unit 311 Inverse Quantization and Inverse Transform Processing Unit 312 Adder Units 310 Predictive Image Generation Unit 3104 Intra-prediction Units 31047 EIP Prediction Unit 4701 Reference Sample Derivation Unit 4710 Prediction Mode Derivation Unit 4702 mergeModelList Export Unit 47021 mergeModelList Export Unit 47022 mergeModelList reordering unit 4703 curModelList Export Unit 47031 Candidate Derived Unit 47032 Model Derived Unit 47033 curModelList reordering unit 11 Image Decoding Device 101 Predictive Image Generation Unit 102 Subtraction Units 103 Transform and Quantization Processing Unit 104 Entropy Decoding Unit 105 Inverse Quantization and Inverse Transform Processing Unit 107 loop filter 110 Decoding Parameter Determination Unit 111-parameter decoding unit
Claims
1. A video decoding apparatus for generating a predicted image, the video decoding apparatus comprising an EIP prediction unit configured to generate an intra-frame predicted image using a function model generated based on samples in a reference region.
2. The video decoding apparatus according to claim 1, wherein the EIP prediction unit is designed to determine the number of rows in the reference region, denoted as tempA and TempL, wherein tempA and TempL are set to fixed values, dynamic values, or different values for the upper and left portions of the reference region depending on the width and height of the target block.
3. The video decoding apparatus according to claim 1, wherein the EIP prediction unit is further configured to derive a second function model with or without a bias term, wherein the input of the bias term is set to a fixed value or a dynamic value.
4. The video decoding apparatus according to claim 1, further comprising a second EIP prediction unit having a reordering curModelList method configured to increase the probability of first selecting certain elements.
5. A video decoding apparatus, the video decoding apparatus comprising an EIP prediction unit configured to predict a target block using a function model generated based on samples in a reference region.
Citation Information
Patent Citations
Power supply system
JP2024043054A