WO2025251804A1 - 跨分量预测方法、视频编解码方法、装置、介质及设备 - Google Patents

跨分量预测方法、视频编解码方法、装置、介质及设备

Info

Publication number
WO2025251804A1
WO2025251804A1 PCT/CN2025/090923 CN2025090923W WO2025251804A1 WO 2025251804 A1 WO2025251804 A1 WO 2025251804A1 CN 2025090923 W CN2025090923 W CN 2025090923W WO 2025251804 A1 WO2025251804 A1 WO 2025251804A1
Authority
WO
WIPO (PCT)
Prior art keywords
region
current block
size
template
height
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
PCT/CN2025/090923
Other languages
English (en)
French (fr)
Inventor
常仁杰
王力强
许晓中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology (Shenzhen) Co Ltd
Original Assignee
Tencent Technology (Shenzhen) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology (Shenzhen) Co Ltd filed Critical Tencent Technology (Shenzhen) Co Ltd
Publication of WO2025251804A1 publication Critical patent/WO2025251804A1/zh
Pending legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96—Tree coding, e.g. quad-tree coding

Definitions

  • This application relates to the fields of computer and communication technology, and more specifically, to a cross-component prediction method, a video encoding and decoding method, an apparatus, a medium, and a device.
  • predictive models such as nonlinear predictive models and linear predictive models
  • These predictive models typically require data within a template region to determine the template parameters.
  • the embodiments of this application provide a cross-component prediction method, a video encoding and decoding method, an apparatus, a medium, and a device, which can achieve adaptive adjustment of the template region size, thereby improving video encoding performance and reducing hardware costs.
  • This application provides a cross-component prediction method, comprising: constructing a cross-component prediction model corresponding to the current block based on the pixel values contained in a template region adjacent to the current block, wherein the size of the template region is determined based on video frame information corresponding to the current block; wherein the template region includes a first region located to the left of the current block and a second region located above the current block, and the size of the template region includes at least one of the width of the first region and the height of the second region; the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame; and reconstructing pixels based on the cross-component prediction model and the luminance component of the current block to generate a chrominance component prediction value for the current block.
  • This application provides a video decoding method, comprising: decoding a video stream to obtain pixel values contained in a template region adjacent to a current block; constructing a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region, wherein the size of the template region is determined based on video frame information corresponding to the current block; wherein the template region includes a first region located to the left of the current block and a second region located above the current block, and the size of the template region includes at least one of the width of the first region and the height of the second region; the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame; reconstructing pixels based on the cross-component prediction model and the luminance component of the current block to generate a chrominance component prediction value for the current block; and performing decoding processing based on the chrominance component prediction value of the current block.
  • This application provides a video encoding method, comprising: obtaining pixel values contained in a template region adjacent to a current block; constructing a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region, wherein the size of the template region is determined based on video frame information corresponding to the current block; wherein the template region includes a first region located to the left of the current block and a second region located above the current block, and the size of the template region includes at least one of the width of the first region and the height of the second region; the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame; reconstructing pixels based on the cross-component prediction model and the luminance component of the current block to generate a chrominance component prediction value for the current block; and performing encoding processing based on the chrominance component prediction value of the current block to obtain an encoded video stream
  • This application provides a cross-component prediction apparatus, comprising: a processing unit configured to construct a cross-component prediction model corresponding to the current block based on pixel values contained in a template region adjacent to the current block, wherein the size of the template region is determined based on video frame information corresponding to the current block; wherein the template region includes a first region located to the left of the current block and a second region located above the current block, and the size of the template region includes at least one of the width of the first region and the height of the second region; the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame; and a generation unit configured to reconstruct pixels based on the cross-component prediction model and the luminance component of the current block to generate a chrominance component prediction value for the current block.
  • This application provides a video decoding apparatus, including: a decoding unit configured to decode a video stream to obtain pixel values contained in a template region adjacent to a current block; a processing unit configured to construct a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region, wherein the size of the template region is determined based on video frame information corresponding to the current block; wherein the template region includes a first region located to the left of the current block and a second region located above the current block, and the size of the template region includes at least one of the width of the first region and the height of the second region; the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame; and a generation unit configured to reconstruct pixels based on the cross-component prediction model and the luminance component of the current block to generate a chrominance component prediction value for the current block, for decoding processing based
  • This application provides a video encoding apparatus, comprising: an acquisition unit configured to acquire pixel values contained in a template region adjacent to a current block; a processing unit configured to construct a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region, wherein the size of the template region is determined based on video frame information corresponding to the current block; wherein the template region includes a first region located to the left of the current block and a second region located above the current block, and the size of the template region includes at least one of the width of the first region and the height of the second region; the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame; a generation unit configured to reconstruct pixels based on the cross-component prediction model and the luminance component of the current block to generate a chrominance component prediction value for the current block; and an encoding unit configured to perform encoding processing
  • This application provides a computer-readable medium having a computer program stored thereon, which, when executed by a processor, implements the cross-component prediction method, video decoding method, or video encoding method as described in the above embodiments.
  • This application provides an electronic device, including: one or more processors; and a storage device for storing one or more computer programs, which, when executed by the one or more processors, cause the electronic device to implement the cross-component prediction method, video decoding method, or video encoding method as described in the above embodiments.
  • This application provides a computer program product comprising a computer program stored in a computer-readable storage medium.
  • An electronic device's processor reads and executes the computer program from the computer-readable storage medium, causing the electronic device to perform the cross-component prediction method, video decoding method, or video encoding method provided in the various embodiments described above.
  • This application also provides a non-volatile computer-readable storage medium storing a bitstream formed by a computer program.
  • the non-volatile computer-readable storage medium stores one or more sets of instructions configured for execution by a computing device having control circuitry and memory. When the one or more sets of instructions are executed, the video decoding method provided in various embodiments of this application is implemented.
  • This application also provides a method for storing video streams, wherein the video streams are generated according to the video encoding methods provided in various embodiments of this application.
  • This application also provides a computer storage medium storing instructions that can be executed by at least one processor to perform the video encoding methods provided in various embodiments of this application, generate a bitstream, and store it.
  • Figure 1 illustrates a schematic diagram of an exemplary system architecture to which the technical solutions of the embodiments of this application can be applied;
  • Figure 2 shows a schematic diagram of the placement of the video encoding device and the video decoding device in the streaming system
  • FIG. 3 shows a basic flowchart of a video encoder
  • Figure 4 shows a flowchart of cross-component nonlinear prediction
  • Figure 5 shows a schematic diagram of the sample points used in the cross-component nonlinear prediction process
  • Figure 6 shows a schematic diagram of the location of the row buffer
  • Figure 7 shows a flowchart of a cross-component prediction method according to some embodiments of this application.
  • Figure 8 shows a schematic diagram of the template area according to some embodiments of this application.
  • Figure 9 shows a flowchart of a video decoding method according to some embodiments of this application.
  • Figure 10 shows a flowchart of a video encoding method according to some embodiments of this application.
  • Figure 11 shows a block diagram of a cross-component prediction apparatus according to some embodiments of this application.
  • Figure 12 shows a block diagram of a video decoding apparatus according to some embodiments of this application.
  • Figure 13 shows a block diagram of a video encoding apparatus according to some embodiments of this application.
  • Figure 14 shows a schematic diagram of the structure of a computer system suitable for implementing an electronic device according to the embodiments of this application.
  • module refers to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof.
  • a processor or multiple processors or memory
  • each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.
  • predictive models such as nonlinear predictive models and linear predictive models
  • These models typically require data within a template region to determine template parameters. If the template region is set too large, it increases hardware costs due to buffering data within the region; conversely, if the template region is set too small, it leads to inaccurate predictive models, affecting video encoding and decoding performance. Therefore, determining the appropriate size of the template region is a crucial technical problem that needs to be solved.
  • the size of the template region of the current block is adaptively adjusted according to the video frame information corresponding to the current block. Based on the pixel values contained in the template regions adjacent to the current block, a cross-component prediction model corresponding to the current block is constructed. The pixels are reconstructed according to the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block. This avoids the template region being too large, which would increase the hardware implementation cost, and also avoids the template region being too small, which would affect the prediction result.
  • the adaptive adjustment of the template region size is achieved, which is beneficial to improving the video encoding performance and reducing hardware costs.
  • Figure 1 shows a schematic diagram of an exemplary system architecture to which the technical solutions of the embodiments of this application can be applied.
  • system architecture 100 includes multiple terminal devices that can communicate with each other via, for example, a network 150.
  • system architecture 100 may include a first terminal device 110 and a second terminal device 120 interconnected via network 150.
  • the first terminal device 110 and the second terminal device 120 perform unidirectional data transmission.
  • the first terminal device 110 can encode video data (e.g., a video image stream captured by the terminal device 110) to transmit it to the second terminal device 120 via the network 150.
  • the encoded video data is transmitted in the form of one or more encoded video streams.
  • the second terminal device 120 can receive the encoded video data from the network 150, decode the encoded video data to recover the video data, and display video images based on the recovered video data.
  • system architecture 100 may include a third terminal device 130 and a fourth terminal device 140 that perform bidirectional transmission of encoded video data, such as during a video conference.
  • each of the third terminal device 130 and the fourth terminal device 140 may encode video data (e.g., a video image stream captured by the terminal device) for transmission over network 150 to the other terminal device.
  • Each of the third terminal device 130 and the fourth terminal device 140 may also receive encoded video data transmitted by the other terminal device, decode the encoded video data to recover the video data, and display the video images on an accessible display device based on the recovered video data.
  • the first terminal device 110, the second terminal device 120, the third terminal device 130 and the fourth terminal device 140 may be servers or terminals, but the principles disclosed in this application are not limited to these.
  • Servers can be standalone physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communications, middleware services, domain name services, security services, content delivery networks (CDNs), and big data and artificial intelligence platforms.
  • Terminals can be smartphones, tablets, laptops, desktop computers, smart speakers, smart voice interaction devices, smartwatches, smart home appliances, in-vehicle terminals, aircraft, etc., but are not limited to these.
  • the network 150 shown in Figure 1 represents any number of networks, including, for example, wired and/or wireless communication networks, that transmit encoded video data between the first terminal device 110, the second terminal device 120, the third terminal device 130, and the fourth terminal device 140.
  • the communication network 150 may exchange data in circuit-switched and/or packet-switched channels.
  • This network may include telecommunications networks, local area networks (LANs), wide area networks (WANs), and/or the Internet.
  • LANs local area networks
  • WANs wide area networks
  • the Internet the architecture and topology of network 150 may be irrelevant to the operation of the disclosure herein.
  • Figure 2 illustrates the placement of the video encoding and decoding devices in a streaming environment.
  • the subject matter disclosed in this application is equally applicable to other video-enabled applications, including, for example, video conferencing, digital television (TV), storing compressed video on digital media including CDs, DVDs, memory sticks, etc.
  • the streaming system may include an acquisition subsystem 213, which may include a video source 201 such as a digital camera, which creates an uncompressed video image stream 202.
  • the video image stream 202 includes samples captured by a digital camera.
  • the video image stream 202 is depicted as a thick line to emphasize the high data volume of the video image stream compared to encoded video data 204 (or encoded video bitstream 204).
  • the video image stream 202 may be processed by an electronic device 220, which includes a video encoding device 203 coupled to the video source 201.
  • the video encoding device 203 may include hardware, software, or a combination of hardware and software to implement or enforce aspects of the disclosed subject matter as described in more detail below.
  • the encoded video data 204 (or encoded video bitstream 204) is depicted as a thin line to emphasize the lower data volume of the encoded video data 204 (or encoded video bitstream 204), which may be stored on a streaming server 205 for future use.
  • One or more streaming client subsystems can access streaming server 205 to retrieve copies 207 and 209 of encoded video data 204.
  • Client subsystem 206 may include, for example, a video decoding device 210 in electronic device 230.
  • Video decoding device 210 decodes the incoming copy 207 of the encoded video data and produces an output video picture stream 211 that can be displayed on display 212 (e.g., a screen) or another presentation device.
  • the encoded video data 204, video data 207, and video data 209 may be encoded according to certain video encoding/compression standards.
  • electronic devices 220 and 230 may include other components not shown in the figures.
  • electronic device 220 may include a video decoding device
  • electronic device 230 may also include a video encoding device.
  • HEVC High Efficiency Video Coding
  • VVC Versatile Video Coding
  • AVS Chinese national video coding standard
  • HEVC High Efficiency Video Coding
  • VC Versatile Video Coding
  • AVS Chinese national video coding standard
  • HEVC High Efficiency Video Coding
  • VVC Versatile Video Coding
  • the video frame image is divided into several non-overlapping processing units according to a block size.
  • Each processing unit performs a similar compression operation.
  • This processing unit is called a Coding Tree Unit (CTU) or Largest Coding Unit (LCU).
  • the CTU can be further subdivided into one or more basic Coding Units (CUs), where the CU is the most basic element in a coding process.
  • CUs basic Coding Units
  • this processing unit may also be called a tile, which is a rectangular area of a multimedia data frame that can be independently decoded and encoded.
  • the tile can be further subdivided into one or more superblocks (SBs).
  • the SB is the starting point for block partitioning and can be further divided into multiple subblocks.
  • the superblocks are then further subdivided into one or more blocks. Each block is the most basic element in a coding process.
  • an SB may contain several blocks (Bs).
  • the above method of dividing video frame images can be called a block partition structure.
  • Predictive coding includes intra-frame prediction and inter-frame prediction.
  • the original video signal is predicted from a selected reconstructed video signal to obtain a residual video signal.
  • the encoder needs to determine which predictive coding mode to choose for the current coding unit (or coding block) and inform the decoder.
  • Intra-frame prediction refers to predicting a signal from a region within the same image that has already been encoded and reconstructed;
  • inter-frame prediction refers to predicting a signal from another encoded image (called a reference image) that is different from the current image.
  • Transform and Quantization After the residual video signal undergoes transformation operations such as Discrete Fourier Transform (DFT) and Discrete Cosine Transform (DCT), the signal is transformed into the transform domain, and these are called transform coefficients. The transform coefficients are then subjected to lossy quantization, losing some information to make the quantized signal more suitable for compression. In some video coding standards, there may be more than one transform method to choose from. Therefore, the encoder needs to select one of the transform methods for the current coding unit (or coding block) and inform the decoder. The fineness of quantization is usually determined by the quantization parameter (QP).
  • QP quantization parameter
  • a larger QP value means that coefficients with a wider range of values will be quantized into the same output, which usually leads to greater distortion and a lower bit rate; conversely, a smaller QP value means that coefficients with a smaller range of values will be quantized into the same output, which usually leads to less distortion and a higher bit rate.
  • Entropy coding involves statistically compressing the quantized transform-domain signal based on the frequency of each value, ultimately outputting a binary (0 or 1) compressed bitstream. Simultaneously, other information generated during encoding, such as the selected coding mode and motion vector data, also requires entropy coding to reduce the bit rate.
  • Statistical coding is a lossless coding method that effectively reduces the bit rate required to represent the same signal. Common statistical coding methods include Variable Length Coding (VLC) and Content Adaptive Binary Arithmetic Coding (CABAC).
  • Context-Based Binary Arithmetic Coding primarily involves three steps: binarization, context modeling, and binary arithmetic coding.
  • the binary data can be encoded using either a regular coding mode or a bypass coding mode.
  • the bypass coding mode eliminates the need to assign a specific probability model to each binary bit; the input binary bit bin value is directly encoded using a simple bypass encoder, thus accelerating the overall encoding and decoding speed.
  • different syntax elements are not completely independent, and even identical syntax elements possess a certain degree of memory. Therefore, according to conditional entropy theory, using other encoded syntax elements for conditional coding can further improve coding performance compared to independent coding or memoryless coding.
  • This encoded symbol information used as conditions is called the context.
  • the binary bits of the syntax elements sequentially enter the context modeler.
  • the encoder assigns an appropriate probability model to each input binary bit based on the values of previously encoded syntax elements or binary bits; this process is called context modeling.
  • the context model corresponding to a grammatical element can be located using the context index increment (ctxIdxInc) and the context index start (ctxIdxStart). After the bin value and the assigned probability model are fed into the binary arithmetic encoder for encoding, the context model needs to be updated based on the bin value, which is the adaptive process in encoding.
  • Loop Filtering The transformed and quantized signal undergoes inverse quantization, inverse transform, and prediction compensation to obtain a reconstructed image. Due to the effects of quantization, the reconstructed image differs from the original image in some aspects, resulting in distortion. Therefore, filtering operations such as deblocking filters (DB), sample adaptive offset (SAO), or adaptive loop filters (ALF) can effectively reduce the distortion caused by quantization. Since these filtered reconstructed images serve as a reference for subsequent coded images in predicting future image signals, the aforementioned filtering operations are also called loop filtering, i.e., filtering operations within the coding loop.
  • DB deblocking filters
  • SAO sample adaptive offset
  • ALF adaptive loop filters
  • Figure 3 shows a basic flowchart of a video encoder, which is illustrated using intra-frame prediction as an example.
  • the difference operation yields the residual signal u ⁇ sub>k ⁇ /sub> [x,y].
  • This residual signal u ⁇ sub>k ⁇ /sub> [x,y] undergoes transformation and quantization to obtain quantization coefficients. These coefficients are then used for entropy coding to obtain the encoded bitstream, and for inverse quantization and inverse transform processing to reconstruct the residual signal u′ ⁇ sub>k ⁇ /sub>[x,y].
  • This reconstructed residual signal u′ ⁇ sub>k ⁇ /sub> [x,y] is then used to predict the image signal.
  • the image signal is generated by superimposing the reconstructed residual signal u′k [x,y] on it.
  • Image signal On one hand, the input is fed into the intra-frame mode decision module and the intra-frame prediction module for intra-frame prediction processing.
  • the reconstructed image signal s′k [x,y] is output through loop filtering.
  • the reconstructed image signal s′k [x,y] can be used as a reference image for the next frame for motion estimation and motion compensation prediction. Then, based on the motion compensation prediction result s′r [x+ mx ,y+ my ] and the intra-frame prediction result... Obtain the predicted image signal for the next frame. And continue repeating the above process until the coding is complete.
  • the decoding end for each coding unit (or coding block), after acquiring the compressed bitstream (i.e., bitstream), entropy decoding is performed to obtain various mode information and quantization coefficients. Then, the quantization coefficients undergo inverse quantization and inverse transform processing to obtain the residual signal.
  • the prediction signal corresponding to the coding unit (or coding block) can be obtained. Then, the residual signal and the prediction signal are added to obtain the reconstructed signal. The reconstructed signal then undergoes loop filtering and other operations to generate the final output signal.
  • the coding framework mainly relies on Rate-Distortion Optimization (RDO) to make decisions in order to select the optimal coding parameters.
  • RDO Rate-Distortion Optimization
  • CCNPM Cross Component Nonlinear Intra Prediction Model
  • the brightness component of the current block and its adjacent template area i.e., the gray area shown in Figure 4 are downsampled to obtain the downsampled brightness component.
  • a cross-component nonlinear prediction model between the luminance component (Y) and the chrominance component (U/V) is constructed.
  • the cross-component nonlinear prediction model uses the target chrominance component sample point to be predicted, the position C corresponding to the chrominance component sample point in the downsampled luminance component (Y), and the surrounding downsampled luminance component samples (W, N, S, E). Based on these samples obtained from the template region, the following nonlinear model structure can be constructed:
  • C′ represents the target chromaticity component sample point
  • p ⁇ sub>i ⁇ /sub> i.e., p ⁇ sub> 0 ⁇ /sub>, p ⁇ sub> 1 ⁇ /sub> , p ⁇ sub>2 ⁇ /sub>, p ⁇ sub> 3 ⁇ /sub> , p ⁇ sub>4 ⁇ /sub> , p ⁇ sub>5 ⁇ /sub> , p ⁇ sub>6 ⁇ /sub>
  • B represents the constant term.
  • the model parameters of CCNPM can be obtained by solving multiple nonlinear model equations.
  • the downsampled luminance component sample points corresponding to the current block can be input into the cross-component prediction model to obtain the chrominance component prediction value.
  • the template area adjacent to CCNPM is 6 lines for chroma and 12 lines for luminance (taking YUV420 format as an example), meaning that the maximum required line buffer is 12 lines.
  • CCNPM can be applied not only to intra-frame prediction but also to inter-frame prediction; therefore, CCNPM can also be called a Cross Component Nonlinear Prediction Model.
  • the cross-component nonlinear prediction model applied to inter-frame prediction can be represented as inter CCNPM, the principle of which is consistent with that of CCNPM applied to intra-frame prediction.
  • Cross-Component Linear Model is another prediction model, similar to CCNPM.
  • CCLM also uses reference pixels for the luma and chroma components within neighboring template regions to construct a cross-component prediction model, and then calculates the predicted chroma component value based on the reconstructed luma component value of the current block. The difference is that CCLM constructs a linear prediction model.
  • pred C (i,j) represents the current chromaticity component prediction point at coordinates (i,j)
  • rec′ L (i,j) represents the current luminance component reconstructed pixel point after downsampling
  • ⁇ and ⁇ are model parameters.
  • video coding often requires utilizing reconstructed pixels adjacent to the current block during prediction and filtering processes.
  • video coding uses a line buffer to cache one or more lines of pixels from an image or video frame, avoiding repeated data readings that increase bandwidth requirements.
  • the line buffer is positioned directly above each line of CTU. The larger the line buffer, the higher the hardware implementation cost.
  • embodiments of this application propose adaptively adjusting the size of the template region used by the prediction model based on video frame information, thereby further improving coding performance and reducing hardware costs.
  • FIG. 7 shows a flowchart of a cross-component prediction method according to some embodiments of this application.
  • This cross-component prediction method can be performed by a video encoding device or a video decoding device, which can be a terminal device or a server, etc.
  • the cross-component prediction method includes at least steps S710 to S720, which are described in detail below:
  • a cross-component prediction model corresponding to the current block is constructed based on the pixel values contained in the template regions adjacent to the current block.
  • the size of the template regions is determined based on the video frame information corresponding to the current block.
  • the template regions include a first region located to the left of the current block and a second region located above the current block.
  • the size of the template regions includes at least one of the width of the first region and the height of the second region.
  • the video frame information includes at least one of the following: the position of the current block in the video frame; the correlation between the current block and its adjacent regions; the size of the current block; and the resolution of the video frame.
  • the video contains a sequence of video image frames, which includes a series of images.
  • Each image can be further divided into slices, and each slice can be further divided into a series of LCUs (or CTUs).
  • Each LCU contains several CUs.
  • Video image frames are encoded in blocks.
  • macroblocks MBs
  • MBs macroblocks
  • CUs coding units
  • PUs prediction units
  • TUs transform units
  • a CU can be divided into smaller CUs according to a quadtree, and these smaller CUs can be further divided to form a quadtree structure.
  • the current block can be a CU, or a block smaller than a CU, such as a smaller block obtained by dividing a CU.
  • the video frame information used to determine the size of the template region may include one or more of the following: the position of the current block in the video frame, the correlation between the current block and its neighboring regions, the size of the current block, and the resolution of the video frame. These will be described in detail below:
  • video frame information may include the position of the current block in the video frame.
  • the size of the template region is determined based on the distance between the first row of pixels in the current block and the upper boundary of the video frame.
  • the default size of the template region e.g., the default height of the template region
  • the default size is used as the size of the template region (e.g., the default height is used as the height of the template region)
  • the size of the template region is determined based on the distance between the first row of pixels in the current block and the top boundary of the video frame (e.g., the distance between the first row of pixels in the current block and the top boundary of the video frame is used as the height of the template region).
  • the size of the template region determined in this way can be the height of a template region located above the current block.
  • the template region includes a first region located to the left of the current block and a second region located above the current block.
  • the size of the template region includes at least one of the width of the first region and the height of the second region. For example, if the current block is located within the first row coding tree unit of the video frame, the height of the second region is determined based on the distance between the first row pixels in the current block and the upper boundary of the video frame; if the current block is not located within the first row coding tree unit of the video frame, the height of the second region is determined based on the positional relationship between the template region of the default size and the row buffer corresponding to the target row coding tree unit; the target row coding tree unit is the row coding tree unit where the current block is located.
  • the width of the template region (first region) located to the left of the current block can be set to the same height as the template region (second region) located above the current block; or a similar method can be used to determine the width of the template region (first region) located to the left of the current block.
  • the default size of the template region e.g., the default width of the first region
  • the default width is used as the width of the template region (first region) to the left of the current block
  • the distance between the first column of pixels in the current block and the left boundary of the video frame is less than the default width, then the distance between the first row of pixels in the current block and the left boundary of the video frame is used as the width of the template region (first region) to the left of the current block.
  • the default size of the template area in this embodiment can be a predefined template size or a template size specified in the video codec standard.
  • This default template size can be used to represent at least one of the default width of the template area to the left of the current block (the first area) and the default height of the template area above the current block (the second area).
  • the default width of the template area to the left of the current block (the first area) and the default height of the template area above the current block (the second area) can be the same or different.
  • the size of the template region (e.g., the height of the second region) is determined based on the positional relationship between the template region of the default size and the row buffer corresponding to the target row coding tree unit; wherein, the target row coding tree unit is the row coding tree unit in which the current block is located.
  • the default size is used as the size of the template region; if the template region of the default size exceeds the range of the line buffer, the sum of the distance between the first row of pixels in the current block and the upper boundary of the target line coding tree unit, and the size of the line buffer, is used as the size of the template region.
  • the size of the template region determined in this way can be the height of the template region located above the current block.
  • the default height is used as the height of the template region; if the template region of the default height exceeds the range of the line buffer, the sum of the distance between the first row of pixels in the current block and the upper boundary of the target line coding tree unit, and the size of the line buffer, is used as the height of the template region.
  • the width of the template region located to the left of the current block can be set to the same as the height of the template region located above the current block; or the width of the template region located to the left of the current block can be determined separately.
  • video frame information may include the correlation between the current block and its neighboring regions. This correlation may be, for example, the correlation between pixel values. Therefore, when determining the size of the template region, the correlation between the pixels of the current block and the pixel values of the luminance components in the neighboring regions can be reconstructed based on the luminance components of the current block to determine the size of the template region.
  • the template area includes a first area located to the left of the current block and a second area located above the current block.
  • the width of the first area and the height of the second area can be determined separately, as shown in the following example:
  • the process of determining the width of the first region to the left of the current block can be as follows: fix the right boundary of the first region, expand the width of the first region from 1 to the adjacent region to the left, when the width of the first region is i, calculate the average gradient of each row of luminance component pixels contained in the first region in the horizontal direction to obtain the average gradient of the width i; if the absolute difference between the average gradient of the width i and the average gradient of the width i-1 is greater than or equal to a set threshold, then set the width of the first region to i-1; if the absolute difference between the average gradient of the width i and the average gradient of the width i-1 is less than the set threshold, then continue to expand the first region to the left until the width of the first region reaches the default width of the first region; where i is a natural number greater than 1.
  • the current block is a 2 ⁇ 2 block (the white area in Figure 8) and contains luminance component pixels P1, P2, P3, and P4, then when the width of the first region is 1, the average level gradient is calculated for the luminance component pixels P11 and P12 within the first region, which are directly adjacent to the current block and also have a width of 1.
  • the average level gradient is obtained by calculating the pixel difference between P11 and P12. If the width of the first region is expanded to 2, the average gradient is calculated for the luminance component pixels P11, P12, P13, and P14 of the first region, which are directly adjacent to the current block and have a width of 2. Then the average gradient...
  • the width of the template region located to the left of the current block can be 1.
  • the process of determining the height of the second region above the current block can be as follows: fix the lower boundary of the second region, expand the height of the second region from 1 to the adjacent region above, and when the height of the second region is j, calculate the average gradient of each column of brightness component pixels contained in the second region in the vertical direction to obtain the average vertical gradient at height j; if the absolute difference between the average vertical gradient at height j and the average vertical gradient at height j-1 is greater than or equal to a set threshold, then set the height of the second region to j-1; if the absolute difference between the average vertical gradient at height j and the average vertical gradient at height j-1 is less than the set threshold, then continue to expand the second region upward until the height of the second region reaches the default height of the second region; where j is a natural number greater than 1.
  • the current block is a 2 ⁇ 2 block (the white area in Figure 8) and contains luminance component pixels P1, P2, P3, and P4, then if the height of the second region is 1, then the average vertical gradient... If the height of the second region is extended to 2, then the average vertical gradient like (where 'a' is a set threshold) indicates that the adjacent region at height 2 has a high pixel correlation with the adjacent region at height 1 in the vertical direction. Therefore, the second region can be expanded upwards until its height reaches the default height. Of course, if... This indicates that the adjacent region with height 2 and the adjacent region with height 1 have low pixel correlation in the vertical direction. Therefore, we can stop expanding upwards and set the height of the second region to 1. In other words, the height of the template region above the current block can be 1.
  • the template region when determining the size of the template region based on the correlation between the reconstructed pixels of the current block's luminance components and the luminance component pixel values in adjacent regions, can also be expanded based on the current block. That is, the first region is expanded to the left adjacent region, and the second region is expanded to the upper adjacent region.
  • the size of the template region is l (i.e., the width of the first region and the height of the second region are l)
  • the pixel value error between the luminance component pixels in the template region and the reconstructed pixels of the current block's luminance components is calculated.
  • the size of the template region (i.e., the width of the first region and the height of the second region) is set to l-1. If the pixel value error corresponding to the size of the template region being l is less than the set threshold, then the template region is expanded until the size of the template region reaches the default size.
  • l is a natural number greater than 1.
  • the current block is a 2 ⁇ 2 block (the white area in Figure 8) and contains luminance component pixels P1, P2, P3, and P4, if the size of the template area (i.e., the height of the template area above the current block and the width of the template area to the left of the current block) is expanded to 2, then the luminance component pixels contained in the template area will be P5, P6, P7, P8, P11, P12, P13, and P14.
  • the pixel value error S between the luminance component pixels in the template area and the reconstructed luminance component pixels of the current block can then be calculated.
  • S ⁇ a (where a is a set threshold), it indicates a high correlation between the template area of size 2 and the reconstructed luminance component pixels of the current block. In this case, the size of the template area can be further expanded until it reaches the default size. Conversely, if S ⁇ a, it indicates a low correlation between the template area of size 2 and the reconstructed luminance component pixels of the current block. In this case, the size of the template area can be set to 1, meaning the size of the template area for the current block can be 1.
  • the luminance component pixels in the template area and the luminance component reconstructed pixels of the current block can be mapped to a spatial area of the same size, and then the pixel value error between the mapping result of the luminance component pixels and the mapping result of the luminance component reconstructed pixels can be calculated.
  • the pixel value error can be the sum of absolute difference (SAD), the sum of squared difference (SSD), the mean squared error (MSE), etc.
  • the video frame information may include the size of the current block.
  • the size of the template region can then be determined based on the size of the current block, where the size of the template region is positively correlated with the size of the current block.
  • the size of the current block can be the larger of its width and height. For example, if the size of the current block is less than or equal to 8, the size of the template region is 3; if the size of the current block is between 8 and 16, the size of the template region is 4, and so on.
  • video frame information may include the resolution of the video frame; then the size of the template region can be determined based on the resolution of the video frame, wherein the size of the template region is positively correlated with the resolution of the video frame. For example, if the resolution of the video frame is 4K, the size of the template region is 6; if the resolution of the video frame is 2K, the size of the template region is 4, and so on.
  • the process of constructing the cross-component prediction model corresponding to the current block based on the pixel values contained in the template region adjacent to the current block can refer to the process shown in FIG4, and a similar method can be used for both linear prediction models and nonlinear prediction models.
  • pixels are reconstructed based on the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block.
  • the process of generating the chromaticity component prediction value of the current block based on the cross-component prediction model and the luminance component reconstructed pixel of the current block can refer to the process shown in FIG4. Specifically, the luminance component reconstructed pixel of the current block can be input into the cross-component prediction model to obtain the chromaticity component prediction value of the current block.
  • the cross-component prediction model in this application can be: a cross-component nonlinear prediction model for intra-frame prediction, a cross-component linear prediction model for intra-frame prediction, a cross-component nonlinear prediction model for inter-frame prediction, or a cross-component linear prediction model for inter-frame prediction.
  • the cross-component prediction model in this application can be not only a nonlinear prediction model but also a linear prediction model; it can be applied not only to intra-frame prediction but also to inter-frame prediction.
  • the scheme for determining the template region in the embodiments of this application can be applied not only to cross-component prediction but also to non-cross-component prediction.
  • the prediction model uses the template region, whether it is intra-frame prediction or inter-frame prediction, whether it is nonlinear prediction or linear prediction, or whether it is cross-component prediction, the technical solution of the embodiments of this application can be used to determine the size of the template region.
  • this application also proposes a video decoding method.
  • This video decoding method can be executed by a device with computing processing capabilities, such as a terminal device or a server.
  • the specific process is shown in Figure 9, including S910 to S940, which are described in detail below:
  • the video stream is decoded to obtain the pixel values contained in the template region adjacent to the current block.
  • a cross-component prediction model corresponding to the current block is constructed based on the pixel values contained in the template region.
  • the size of the template region is determined based on the video frame information corresponding to the current block.
  • pixels are reconstructed based on the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block.
  • decoding is performed based on the predicted chroma components of the current block.
  • the video decoding device can determine the size of the template area based on the video frame information corresponding to the current block, so as to avoid the template area being too large and increasing the hardware implementation cost, and also to avoid the template area being too small and affecting the prediction result. This realizes the adaptive adjustment of the template area size, which is conducive to improving the video encoding performance and reducing hardware costs.
  • this application also proposes a video coding method.
  • This video coding method can be executed by a device with computing processing capabilities, such as a terminal device or a server.
  • the specific process is shown in Figure 10, including S1010 to S1040, which are described in detail below:
  • a cross-component prediction model corresponding to the current block is constructed based on the pixel values contained in the template region.
  • the size of the template region is determined based on the video frame information corresponding to the current block.
  • pixels are reconstructed based on the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block.
  • encoding processing is performed based on the predicted chroma component values of the current block to obtain the encoded video bitstream.
  • the video encoding device can adaptively adjust the size of the template region based on the video frame information corresponding to the current block. This avoids the template region being too large, which would increase hardware implementation costs, and also avoids the template region being too small, which would affect the prediction results, thus achieving adaptive adjustment of the template region size.
  • the video encoding device can also add a flag bit in the video bitstream to indicate the size of the template region. This flag bit can include one or more of the following flag bits: flag bits contained in the sequence header, flag bits contained in the image header, flag bits contained in the strip header, flag bits contained in the CTU header, and flag bits contained in the coding block.
  • flag bits included in the sequence header can be used to indicate that all coded blocks in the entire sequence use a template region of a set size; flag bits included in the image header can be used to indicate that all coded blocks in the entire image use a template region of a set size; flag bits included in the strip header can be used to indicate that all coded blocks in the entire strip use a template region of a set size; flag bits included in the CTU header can be used to indicate that all coded blocks in the entire CTU use a template region of a set size; flag bits included in the coded block can be used to indicate that the current coded block uses a template region of a set size.
  • the technical solution of this application mainly involves adaptively selecting the size of the template region used in cross-component prediction technology based on the information of the video frame, in order to further improve coding performance and/or reduce hardware costs.
  • the technical solution of this application can be applied to video codec products.
  • different sizes of template regions can be used for different blocks within the same CTU or different CTUs.
  • the size of the template region can be determined based on the line buffer size and the position of the template region. Specifically, assuming the y-coordinate of the first row of pixels in the current block of the entire image is y, the default size of the CTU is max_cu_height (e.g., the size of the luma block CTU in YUV420 format, while the size of the chroma block CTU is half of that), the line buffer size of the chroma component is K, the default template size (height or width) of the cross-component prediction model is set to N, and the final determined template region size (height or width) is M.
  • K, N, and M are all non-negative integers.
  • the template region size of the prediction model is adaptively determined accordingly. Specifically, if the distance between the first row of pixels of the current block (i.e., the current chroma to be predicted block) and the upper boundary of the video frame is greater than or equal to the default template height, then the final template region height is set to the default template height.
  • the final template region height is set to the distance between the first row of pixels of the current block and the upper boundary of the video frame.
  • the template region height of the prediction model is adaptively determined accordingly. Specifically, if the default template region of the current block does not exceed the limit of the line buffer region of the CTU in which the current block is located, then the final template region height is set to the default template height. Otherwise, the final template region height is set to the distance between the first row of pixels of the current block and the upper boundary of the CTU in which the current block is located plus the size of the chroma component line buffer.
  • the final template region size can be determined based on the content correlation between the current block and its neighboring regions. This is because, theoretically, the higher the pixel correlation between the template region and the current block, the more suitable the cross-component prediction model and prediction parameters constructed based on the template region are for the prediction of the current block. Therefore, the size of the template region can be adaptively selected by reconstructing the pixel correlation based on the neighboring regions of the current block and the luminance component of the current block.
  • gradient variations can be used to adaptively select the size of the template region.
  • the average gradient is... Mean vertical gradient
  • the average gradient is... Mean vertical gradient
  • the average gradient values corresponding to different template sizes can be calculated. If the absolute value of the difference between the average gradient value of template size 2 and the average gradient value of template size 1 is less than a certain threshold, then... Therefore, it is assumed that the template region with a width of 2 has a higher pixel correlation with the template region with a width of 1 in the horizontal direction, and the final template width in the horizontal direction can be set to 2. Similarly, the gradient values of different template sizes in different directions can be calculated, and the final template size can be determined based on the changes.
  • the difference between the luminance component pixels of the template region and the reconstructed luminance component pixels of the current block can be used to adaptively select the size of the template region.
  • the correlation between the luminance component pixels of the template region and the luminance pixels of the current block can be measured based on criteria such as SAD, SSD, and MSE. The higher the correlation, the more suitable the cross-component prediction model and prediction parameters constructed based on the template region are for the prediction of the current block.
  • the template region is an inverted L-shape with a width/height of N (as shown in Figure 4), while the block to be predicted is rectangular. Point-to-point SAD, SSD, or MSE calculations cannot be performed directly between the two. Therefore, the luminance pixels of the template region and the region to be predicted can be mapped to the same width and height space, and then point-to-point SAD, SSD, or MSE calculations can be performed.
  • the size of the template region can be determined based on the block size. This is because blocks of different sizes contain different amounts of information, and therefore require different template region sizes. An excessively large template region may introduce noise into the cross-component prediction model of the current block, while an excessively small template region will result in insufficient construction of the cross-component prediction model. Therefore, different template region sizes can be set according to different block sizes to achieve a globally optimal adaptive template region size. An example is shown in Table 1 below:
  • block_width represents the width of the current block
  • block_height represents the height of the current block
  • max(block_width, block_height) represents the maximum value between the width and height of the current block.
  • the size of the template region can be determined based on the image resolution. This is because images of different resolutions contain different amounts of information, and therefore require different template region sizes. An excessively large template region may introduce noise into the cross-component prediction model, while an excessively small template region will result in an insufficiently constructed cross-component prediction model. Therefore, different template region sizes can be set according to the image resolution to achieve a globally optimal adaptive template region size. An example is shown in Table 2 below:
  • the video encoder can select the optimal template region size for the current block, CTU, slice, or frame using rate-distortion optimization, and indicate the used template region size through transmission flags.
  • the video decoder can obtain the template region size used by the current block by parsing block-level, CTU-level, slice-level, or frame-level flags. An example is shown in Table 3 below:
  • Figure 11 shows a block diagram of a cross-component prediction apparatus according to some embodiments of the present application.
  • the cross-component prediction apparatus can be applied to a video encoding device or a video decoding device, which can be a terminal device or a server, etc.
  • a cross-component prediction apparatus 1100 includes: a processing unit 1102 and a generation unit 1104.
  • the processing unit 1102 is configured to construct a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region adjacent to the current block, wherein the size of the template region is adaptively adjusted based on the video frame information corresponding to the current block; the generation unit 1104 is configured to reconstruct pixels based on the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block.
  • FIG 12 shows a block diagram of a video decoding apparatus according to some embodiments of the present application.
  • the video decoding apparatus can be applied to devices with computing processing capabilities, such as terminal devices or servers.
  • a video decoding apparatus 1200 includes: a decoding unit 1202, a processing unit 1204, and a generating unit 1206.
  • the decoding unit 1202 is configured to decode the video stream to obtain the pixel values contained in the template region adjacent to the current block; the processing unit 1204 is configured to construct a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region, wherein the size of the template region is adaptively adjusted based on the video frame information corresponding to the current block; and the generation unit 1206 is configured to reconstruct pixels based on the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block, and perform decoding processing based on the chrominance component prediction value of the current block.
  • FIG. 13 shows a block diagram of a video encoding apparatus according to some embodiments of the present application.
  • the video encoding apparatus can be applied to a device with computing processing capabilities, such as a terminal device or a server.
  • a video encoding apparatus 1300 includes: an acquisition unit 1302, a processing unit 1304, a generation unit 1306, and an encoding unit 1308.
  • the acquisition unit 1302 is configured to acquire the pixel values contained in the template region adjacent to the current block; the processing unit 1304 is configured to construct a cross-component prediction model corresponding to the current block based on the pixel values contained in the template region, wherein the size of the template region is adaptively adjusted based on the video frame information corresponding to the current block; the generation unit 1306 is configured to reconstruct pixels based on the cross-component prediction model and the luminance component of the current block to generate the chrominance component prediction value of the current block; and the encoding unit 1308 is configured to perform encoding processing based on the chrominance component prediction value of the current block to obtain the encoded video bitstream.
  • the video stream further includes a flag bit for indicating the size of the template region; wherein the flag bit includes one or more of the following flag bits: flag bits contained in the sequence header, flag bits contained in the image header, flag bits contained in the strip header, flag bits contained in the CTU header, and flag bits contained in the coding block.
  • Figure 14 shows a schematic diagram of a computer system suitable for implementing an electronic device according to the embodiments of this application.
  • the electronic device may be a cross-component prediction device, a video encoding device, or a video decoding device as described in the foregoing embodiments.
  • the computer system 1400 may include a Central Processing Unit (CPU) 1401, which can perform various appropriate actions and processes based on programs stored in Read-Only Memory (ROM) 1402 or programs loaded from storage portion 1408 into Random Access Memory (RAM) 1403, such as performing the methods described in the above embodiments.
  • the RAM 1403 also stores various programs and data required for system operation.
  • the CPU 1401, ROM 1402, and RAM 1403 are interconnected via a bus 1404.
  • An Input/Output (I/O) interface 1405 is also connected to the bus 1404.
  • I/O interface 1405 The following components can be connected to I/O interface 1405: an input section 1406 including a keyboard, mouse, etc.; an output section 1407 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 1408 including a hard disk, etc.; and a communication section 1409 including a network interface card such as a LAN (Local Area Network) card, modem, etc.
  • the communication section 1409 performs communication processing via a network such as the Internet.
  • a drive 1410 is also connected to I/O interface 1405 as needed.
  • Removable media 1411 such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., are installed on drive 1410 as needed so that computer programs read from them can be installed into storage section 1408 as needed.
  • embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium for performing the methods shown in the flowcharts.
  • the computer program can be downloaded and installed from a network via communication section 1409, and/or installed from removable medium 1411.
  • CPU central processing unit
  • the computer-readable medium shown in the embodiments of this application can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two.
  • a computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof.
  • a computer-readable storage medium can be any tangible medium containing or storing a computer program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
  • a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying a computer-readable computer program.
  • the transmitted data signal can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof.
  • the computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device.
  • the computer program contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to wireless, wired, etc., or any suitable combination thereof.
  • each block in a flowchart or block diagram may represent a module, segment, or portion of code, which contains one or more executable instructions for implementing a specified logical function.
  • the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved.
  • each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and a computer program.
  • the units described in the embodiments of this application can be implemented in software or hardware, and the described units can also be located in a processor.
  • the names of these units do not necessarily limit the specific unit itself.
  • this application also provides a computer-readable medium, which may be included in the electronic device described in the above embodiments; or it may exist independently and not assembled into the electronic device.
  • the computer-readable medium carries one or more computer programs, which, when executed by the electronic device, cause the electronic device to perform the methods described in the above embodiments.
  • the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, and includes several instructions to cause an electronic device to execute the method according to the embodiments of this application.
  • a non-volatile storage medium such as a CD-ROM, USB flash drive, external hard drive, etc.
  • the electronic device can be a cross-component prediction device, which can then perform the cross-component prediction method shown in Figure 7; or, the electronic device can be a video decoding device, which can then perform the video decoding method shown in Figure 9; or, the electronic device can be a video encoding device, which can then perform the video encoding method shown in Figure 10.
  • This application embodiment also provides a non-volatile computer-readable storage medium storing a bitstream formed by a computer program.
  • the non-volatile computer-readable storage medium stores one or more sets of instructions configured for execution by a computing device having control circuitry and memory. When the one or more sets of instructions are executed, the video decoding method shown in FIG9 is implemented.
  • This application embodiment also provides a method for storing or transmitting a video stream, wherein the video stream is generated according to the video encoding method shown in FIG10, or the video stream is decoded according to the video decoding method shown in FIG9.
  • This application also provides a computer storage medium storing instructions that can be executed by at least one processor to perform the video encoding method shown in FIG10, generate a bitstream, and store it.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请的实施例提供了一种跨分量预测方法、视频编解码方法、装置、介质及设备。该跨分量预测方法包括:根据当前块邻近的模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值。

Description

跨分量预测方法、视频编解码方法、装置、介质及设备
本申请要求于2024年6月7日提交中国专利局、申请号为202410745178.2,发明名称为“跨分量预测方法、视频编解码方法、装置、介质及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种跨分量预测方法、视频编解码方法、装置、介质及设备。
背景技术
随着视频技术在数字媒体、实时通讯、教育娱乐等领域的广泛应用,对视频编解码的高效性和实时性提出了更高的要求。在视频编解码领域中可能会使用预测模型(如非线性预测模型、线性预测模型等)来进行预测编码,而预测模型通常需要使用模板区域内的数据来确定模板参数。
技术内容
本申请的实施例提供了一种跨分量预测方法、视频编解码方法、装置、介质及设备,可以实现模板区域大小的自适应调整,进而有利于提升视频的编码性能,并减少硬件成本。
本申请的其它特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
本申请实施例提供了一种跨分量预测方法,包括:根据当前块邻近的模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值。
本申请实施例提供了一种视频解码方法,包括:对视频码流进行解码处理,得到当前块邻近的模板区域中所包含的像素值;根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值;基于所述当前块的色度分量预测值进行解码处理。
本申请实施例提供了一种视频编码方法,包括:获取当前块邻近的模板区域中所包含的像素值;根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值;基于所述当前块的色度分量预测值进行编码处理,得到编码后的视频码流。
本申请实施例提供了一种跨分量预测装置,包括:处理单元,配置为根据当前块邻近的模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;生成单元,配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值。
本申请实施例提供了一种视频解码装置,包括:解码单元,配置为对视频码流进行解码处理,得到当前块邻近的模板区域中所包含的像素值;处理单元,配置为根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;生成单元,配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值,以基于所述当前块的色度分量预测值进行解码处理。
本申请实施例提供了一种视频编码装置,包括:获取单元,配置为获取当前块邻近的模板区域中所包含的像素值;处理单元,配置为根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;生成单元,配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值;编码单元,配置为基于所述当前块的色度分量预测值进行编码处理,得到编码后的视频码流。
本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的跨分量预测方法、视频解码方法或视频编码方法。
本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述实施例中所述的跨分量预测方法、视频解码方法或视频编码方法。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取并执行该计算机程序,使得该电子设备执行上述各种实施例中提供的跨分量预测方法、视频解码方法或视频编码方法。
本申请实施例还提供了一种非易失性计算机可读存储介质,其上存储有通过计算机程序形成的码流,所述非易失性计算机可读存储介质存储被配置用于由具有控制电路和存储器的计算设备执行的一组或多组指令,当所述一组或多组指令被执行时,实现本申请各种实施例提供的视频解码方法。
本申请实施例还提供了一种存储视频码流的方法,所述视频码流根据本申请各种实施例提供的视频编码方法产生。
本申请实施例还提供了一种计算机存储介质,存储有指令,所述指令可由至少一个处理器执行以用于执行本申请各种实施例提供的视频编码方法,产生码流并存储。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图简要说明
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图;
图2示出视频编码装置和视频解码装置在流式传输系统中的放置方式示意图;
图3示出了一个视频编码器的基本流程图;
图4示出了跨分量非线性预测的流程图;
图5示出了跨分量非线性预测过程中所使用的样点示意图;
图6示出了行缓冲区的位置示意图;
图7示出了根据本申请的一些实施例的跨分量预测方法的流程图;
图8示出了根据本申请的一些实施例的模板区域的示意图;
图9示出了根据本申请的一些实施例的视频解码方法的流程图;
图10示出了根据本申请的一些实施例的视频编码方法的流程图;
图11示出了根据本申请的一些实施例的跨分量预测装置的框图;
图12示出了根据本申请的一些实施例的视频解码装置的框图;
图13示出了根据本申请的一些实施例的视频编码装置的框图;
图14示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在参考附图以更全面的方式描述示例实施方式。然而,示例的实施方式能够以各种形式实施,且不应被理解为仅限于这些范例;相反,提供这些实施方式的目的是使得本申请更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,本申请所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,有许多具体细节从而可以充分理解本申请的实施例。然而,本领域技术人员应意识到,在实施本申请的技术方案时可以不需用到实施例中的所有细节特征,可以省略一个或更多特定细节,或者可以采用其它的方法、元件、装置、步骤等。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在视频编解码领域中可能会使用预测模型(如非线性预测模型、线性预测模型等)来进行预测编码,而预测模型通常需要使用模板区域内的数据来确定模板参数。如果模板区域设置过大,则会由于缓存模板区域中数据而增加硬件成本,如果模板区域设置过小,又会导致预测模型不准确而影响视频的编解码效果。因此,如何能够合理设置模板区域的大小是亟待解决的技术问题。
在本申请的一些实施例所提供的技术方案中,通过根据当前块对应的视频帧信息自适应调整得到当前块的模板区域的大小,以基于当前块邻近的模板区域中所包含的像素值,构建当前块对应的跨分量预测模型,并根据该跨分量预测模型和当前块的亮度分量重建像素,生成当前块的色度分量预测值,使得可以避免模板区域过大而增加硬件实现成本,也可以避免模板区域过小而影响预测结果,实现了模板区域大小的自适应调整,进而有利于提升视频的编码性能,并减少硬件成本。
图1示出了可以应用本申请实施例的技术方案的示例性系统架构的示意图。
如图1所示,系统架构100包括多个终端装置,所述终端装置可通过例如网络150彼此通信。举例来说,系统架构100可以包括通过网络150互连的第一终端装置110和第二终端装置120。在图1的实施例中,第一终端装置110和第二终端装置120执行单向数据传输。
举例来说,第一终端装置110可对视频数据(例如由终端装置110采集的视频图片流)进行编码以通过网络150传输到第二终端装置120,已编码的视频数据以一个或多个已编码视频码流形式传输,第二终端装置120可从网络150接收已编码视频数据,对已编码视频数据进行解码以恢复视频数据,并根据恢复的视频数据显示视频图片。
在本申请的一些实施例中,系统架构100可以包括执行已编码视频数据的双向传输的第三终端装置130和第四终端装置140,所述双向传输比如可以发生在视频会议期间。对于双向数据传输,第三终端装置130和第四终端装置140中的每个终端装置可对视频数据(例如由终端装置采集的视频图片流)进行编码,以通过网络150传输到第三终端装置130和第四终端装置140中的另一终端装置。第三终端装置130和第四终端装置140中的每个终端装置还可接收由第三终端装置130和第四终端装置140中的另一终端装置传输的已编码视频数据,且可对已编码视频数据进行解码以恢复视频数据,并可根据恢复的视频数据在可访问的显示装置上显示视频图片。
在图1所示的实施例中,第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140可为服务器或者终端,但本申请公开的原理可不限于此。
服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能语音交互设备、智能手表、智能家电、车载终端、飞行器等,但并不局限于此。
图1中所示的网络150表示在第一终端装置110、第二终端装置120、第三终端装置130和第四终端装置140之间传送已编码视频数据的任何数目的网络,包括例如有线和/或无线通信网络。通信网络150可在电路交换和/或分组交换信道中交换数据。该网络可包括电信网络、局域网、广域网和/或互联网。出于本申请的目的,除非在下文中有所解释,否则网络150的架构和拓扑对于本申请公开的操作来说可能是无关紧要的。
在本申请的一些实施例中,图2示出视频编码装置和视频解码装置在流式传输环境中的放置方式。本申请所公开主题可同等地适用于其它支持视频的应用,包括例如视频会议、数字电视机(television,TV)、在包括CD、DVD、存储棒等的数字介质上存储压缩视频等等。
流式传输系统可包括采集子系统213,采集子系统213可包括数码相机等视频源201,视频源创建未压缩的视频图片流202。在实施例中,视频图片流202包括由数码相机拍摄的样本。相较于已编码的视频数据204(或已编码的视频码流204),视频图片流202被描绘为粗线以强调高数据量的视频图片流,视频图片流202可由电子装置220处理,电子装置220包括耦接到视频源201的视频编码装置203。视频编码装置203可包括硬件、软件或软硬件组合以实现或实施如下文更详细地描述的所公开主题的各方面。相较于视频图片流202,已编码的视频数据204(或已编码的视频码流204)被描绘为细线以强调较低数据量的已编码的视频数据204(或已编码的视频码流204),其可存储在流式传输服务器205上以供将来使用。一个或多个流式传输客户端子系统,例如图2中的客户端子系统206和客户端子系统208,可访问流式传输服务器205以检索已编码的视频数据204的副本207和副本209。客户端子系统206可包括例如电子装置230中的视频解码装置210。视频解码装置210对已编码的视频数据的传入副本207进行解码,且产生可在显示器212(例如显示屏)或另一呈现装置上呈现的输出视频图片流211。在一些流式传输系统中,可根据某些视频编码/压缩标准对已编码的视频数据204、视频数据207和视频数据209(例如视频码流)进行编码。
应注意,电子装置220和电子装置230可包括图中未示出的其它组件。举例来说,电子装置220可包括视频解码装置,且电子装置230还可包括视频编码装置。
在本申请的一些实施例中,以国际视频编码标准中的高效率视频编码(High Efficiency Video Coding,HEVC)、多功能视频编码(Versatile Video Coding,VVC),以及中国国家视频编码标准AVS为例,当输入一个视频帧图像之后,会根据一个块大小,将视频帧图像划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。这个处理单元被称作编码树单元(Coding Tree Unit,CTU),或者称之为最大编码单元(Largest Coding Unit,LCU)。CTU再往下可以继续进行更加精细的划分,得到一个或多个基本的编码单元(Coding Unit,CU),CU是一个编码环节中最基本的元素。
在另一些实施例中,这个处理单元也可以被称作编码片(即Tile),是可以独立解码和编码的多媒体数据帧的矩形区域。其中,在开放媒体联盟制定的第一代视频编码标准(Alliance for Open Media Video 1,AV1)标准中,编码片再往下可以继续进行更加精细的划分,得到一个或多个最大编码块(Superblock,简称SB),SB是块划分的起点,可以继续划分为多个子块,然后最大编码块再往下划分,得到一个或多个块(Block)。每个块是一个编码环节中最基本的元素。在一些实施例中,一个SB可以包含若干个B。
上述对于视频帧图像的划分方式可以称之为块划分结构(block partition structure),以下介绍编码过程中的一些概念:
预测编码(Predictive Coding):预测编码包括了帧内预测和帧间预测等方式,原始视频信号经过选定的已重建视频信号的预测后,得到残差视频信号。编码端需要为当前编码单元(或编码块)决定选择哪一种预测编码模式,并告知解码端。其中,帧内预测是指预测的信号来自于同一图像内已经编码重建过的区域;帧间预测是指预测的信号来自已经编码过的、不同于当前图像的其它图像(称之为参考图像)。
变换及量化(Transform&Quantization):残差视频信号经过离散傅里叶变换(Discrete Fourier Transform,DFT)、离散余弦变换(Discrete Cosine Transform,DCT)等变换操作后,将信号转换到变换域中,称之为变换系数。变换系数进一步进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。在一些视频编码标准中,可能有多于一种变换方式可以选择,因此编码端也需要为当前编码单元(或编码块)选择其中的一种变换方式,并告知解码端。量化的精细程度通常由量化参数(Quantization Parameter,QP)来决定,QP取值较大,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真及较低的码率;相反,QP取值较小,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
熵编码(Entropy Coding)或统计编码:量化后的变换域信号将根据各个值出现的频率进行统计压缩编码,最后输出二值化(0或者1)的压缩码流。同时,编码产生其他信息,例如选择的编码模式、运动矢量数据等,也需要进行熵编码以降低码率。统计编码是一种无损的编码方式,可以有效的降低表达同样信号所需要的码率,常见的统计编码方式有变长编码(Variable Length Coding,VLC)或者基于上下文的二值化算术编码(Content Adaptive Binary Arithmetic Coding,CABAC)。
基于上下文的二值化算术编码(CABAC)过程主要包含3个步骤:二值化、上下文建模和二进制算术编码。在对输入的语法元素进行二值化处理后,可以通过常规编码模式和旁路编码模式(Bypass Coding Mode)对二元数据进行编码。旁路编码模式无须为每个二元位分配特定的概率模型,输入的二元位bin值直接用一个简单的旁路编码器进行编码,以加快整个编码以及解码的速度。一般情况下,不同的语法元素之间并不是完全独立的,且相同语法元素自身也具有一定的记忆性。因此,根据条件熵理论,利用其他已编码的语法元素进行条件编码,相对于独立编码或者无记忆编码能够进一步提高编码性能。这些用来作为条件的已编码符号信息称为上下文。在常规编码模式中,语法元素的二元位顺序地进入上下文模型器,编码器根据先前编码过的语法元素或二元位的值,为每一个输入的二元位分配合适的概率模型,该过程即为上下文建模。通过上下文索引增量(context index increment,ctxIdxInc)和上下文起始索引(context index Start,ctxIdxStart)即可定位到语法元素所对应的上下文模型。将bin值和分配的概率模型一起送入二元算术编码器进行编码后,需要根据bin值更新上下文模型,也就是编码中的自适应过程。
环路滤波(Loop Filtering):经过变化及量化的信号会通过反量化、反变换及预测补偿的操作获得重建图像。重建图像与原始图像相比由于存在量化的影响,部分信息与原始图像有所不同,即重建图像会产生失真(Distortion)。因此,可以对重建图像进行滤波操作,例如去块效应滤波(Deblocking filter,DB)、自适应像素补偿(Sample Adaptive Offset,SAO)或者自适应环路滤波(Adaptive Loop Filter,ALF)等滤波器,可以有效降低量化所产生的失真程度。由于这些经过滤波后的重建图像将作为后续编码图像的参考来对将来的图像信号进行预测,因此上述的滤波操作也被称为环路滤波,即在编码环路内的滤波操作。
在本申请的一些实施例中,图3示出了一个视频编码器的基本流程图,在该流程中以帧内预测为例进行说明。其中,原始图像信号sk[x,y]与预测图像信号做差值运算,得到残差信号uk[x,y],残差信号uk[x,y]经过变换及量化处理之后得到量化系数,量化系数一方面通过熵编码得到编码后的比特流,另一方面通过反量化及反变换处理得到重构残差信号u′k[x,y],预测图像信号与重构残差信号u′k[x,y]叠加生成图像信号图像信号一方面输入至帧内模式决策模块和帧内预测模块进行帧内预测处理,另一方面通过环路滤波输出重建图像信号s′k[x,y],重建图像信号s′k[x,y]可以作为下一帧的参考图像进行运动估计及运动补偿预测。然后基于运动补偿预测的结果s′r[x+mx,y+my]和帧内预测结果得到下一帧的预测图像信号并继续重复上述过程,直至编码完成。
基于上述的编码过程,在解码端针对每一个编码单元(或编码块),在获取到压缩码流(即比特流)之后,进行熵解码获得各种模式信息及量化系数。然后量化系数经过反量化及反变换处理得到残差信号。另一方面,根据已知的编码模式信息,可获得该编码单元(或编码块)对应的预测信号,然后将残差信号与预测信号相加之后即可得到重建信号,重建信号再经过环路滤波等操作,产生最终的输出信号。在这一系列的编码过程中,编码框架主要依据率失真优化(Rate–Distortion Optimization,RDO)进行决策,以选取最优的编码参数。
以下介绍视频编码中的预测过程所使用的一些预测模型:
跨分量非线性帧内预测模型(Cross Component Nonlinear Intra Prediction Model,CCNPM)是基于当前块的邻近像素构建亮度分量和色度分量的跨分量预测模型,再利用当前块已重建的亮度分量像素进行帧内色度分量预测。图4示出了CCNPM的预测过程,主要包含以下三个步骤:
①对当前块的亮度分量及其邻近的模板区域(即图4中所示的灰度区域)进行下采样得到下采样后的亮度分量。
②依据邻近的模板区域,构建亮度分量(Y)和色度分量(U/V)之间的跨分量非线性预测模型。如图5所示,跨分量非线性预测模型使用待预测的目标色度分量样点、下采样后的亮度分量(Y)中与色度分量样点对应的位置C及其周围的下采样亮度分量样点(W、N、S、E)。基于模板区域中获取的这些样点,可构建如下的非线性模型结构:
其中,C′表示目标色度分量样点,pi(即p0、p1、p2、p3、p4、p5、p6)表示模型参数,B表示常数项。通过求解多个非线性模型等式,即可得到CCNPM的模型参数。
③在得到CCNPM的模型参数之后,可以向跨分量预测模型输入当前块对应的下采样亮度分量样点,然后得到色度分量预测值。
其中,CCNPM邻近的模板区域大小为色度6行,亮度12行(以YUV420格式为例),即需要的line buffer最大为12行。
CCNPM不仅可以应用于帧内预测,而且也可以应用于帧间预测,因此CCNPM也可以称为跨分量非线性预测模型(即Cross Component Nonlinear Prediction Model)。或者,也可以将应用于帧间预测的跨分量非线性预测模型表示为inter CCNPM,其原理与应用于帧内预测的CCNPM一致。
跨分量线性预测模型(Cross Component Linear Model,CCLM)是另外一种预测模型,类似于CCNPM,CCLM也是利用邻近的模板区域内的亮度分量参考像素和色度分量参考像素构建跨分量预测模型,再根据当前块的亮度分量重建值计算色度分量预测值,区别在于CCLM构建的预测模型是线性模型。CCLM的线性预测模型可以表示为:
predC(i,j)=α·rec′L(i,j)+β
其中,predC(i,j)表示坐标为(i,j)的当前色度分量预测点,rec′L(i,j)表示下采样后的当前亮度分量重建像素点,α和β分别是模型参数。
此外,视频编码在进行预测和滤波等环节时,往往需要利用当前块邻近的重建像素。为了保留已重建像素或数据,视频编码设置了行缓冲区(line buffer)来缓存图像或视频帧的一行或几行像素,以避免反复读取这些数据而导致带宽需求增加。如图6所示,line buffer设置在每行CTU的正上方。line buffer越大,硬件实现成本也越大。
因此,虽然CCNPM等预测技术带来了可观的编码增益,但是由于需要缓存模板区域中的数据,因此也增大了line buffer的需求,从而导致硬件实现成本的扩大;而如果模板区域设置过小,又会导致预测模型不准确而影响视频的编解码效果。为了进一步提升编码性能和减少硬件代价,本申请的实施例提出了根据视频帧信息自适应调整预测模型所使用的模板区域的大小,以进一步提升编码性能,并减少硬件成本。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图7示出了根据本申请的一些实施例的跨分量预测方法的流程图,该跨分量预测方法可以由视频编码设备或者视频解码设备来执行,该视频编码设备或者视频解码设备可以是终端设备或服务器等。参照图7所示,该跨分量预测方法至少包括S710至S720,详细介绍如下:
在S710中,根据当前块邻近的模板区域中所包含的像素值,构建当前块对应的跨分量预测模型,该模板区域的尺寸是基于当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;。
在一些实施例中,视频中包含视频图像帧序列,视频图像帧序列中包括了一系列图像,每张图像可以被进一步划分为条带(Slice),条带又可以划分为一系列的LCU(或CTU),LCU包含有若干CU。视频图像帧在编码时是以块为单位进行编码处理,在一些新的视频编码标准中,比如在H.264标准中有宏块(macroblock,MB),宏块可进一步划分成多个可用于预测编码的预测块(prediction)。在HEVC标准中,采用编码单元CU、预测单元(prediction unit,PU)和变换单元(transform unit,TU)等基本概念,从功能上划分了多种块单元,并采用全新的基于树的结构进行描述。比如CU可以按照四叉树划分为更小的CU,而更小的CU还可以继续划分,从而形成一种四叉树结构。本申请实施例中的当前块可以是CU,或者是比CU更小的块,如对CU进行划分得到的更小的块。
在一些实施例中,在确定模板区域的尺寸时所使用的视频帧信息可以包括当前块在视频帧中的位置、当前块与其相邻区域的相关性、当前块的尺寸、视频帧的分辨率等信息中的一种或多种。以下分别进行详细说明:
在一些实施例中,视频帧信息可以包括当前块在视频帧中的位置,那么在确定模板区域的尺寸时,如果当前块位于视频帧中的第一行编码树单元内,则根据当前块中第一行像素与视频帧的上边界之间的距离,确定模板区域的尺寸。
比如,在当前块位于视频帧中的第一行编码树单元内时,若当前块中第一行像素与视频帧的上边界之间的距离大于或等于模板区域的默认尺寸(例如,模板区域的默认高度),则将默认尺寸作为模板区域的尺寸(例如,将默认高度作为模板区域的高度);若当前块中第一行像素与视频帧的上边界之间的距离小于默认尺寸,则根据当前块中第一行像素与视频帧的上边界之间的距离确定模板区域的尺寸(例如,将当前块中第一行像素与视频帧的上边界之间的距离作为模板区域的高度)。需要说明的是:通过该方式确定的模板区域的尺寸可以是位于当前块上方的模板区域的高度。
在一些实施例中,所述模板区域包括位于当前块左侧的第一区域以及位于当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个。比如,若当前块位于所述视频帧的第一行编码树单元内,则根据当前块中的第一行像素与所述视频帧的上边界之间的距离,确定所述第二区域的高度;若所述当前块未处于所述视频帧中的第一行编码树单元内,则根据默认尺寸的模板区域与目标行编码树单元对应的行缓冲区之间的位置关系,确定所述第二区域的高度;所述目标行编码树单元是所述当前块所所在的行编码树单元。
在一些实施例中,可以将位于当前块左方的模板区域(第一区域)的宽度值设置为与位于当前块上方的模板区域(第二区域)的高度值相同;或者也可以采用类似的方法来确定位于当前块左方的模板区域(第一区域)的宽度。
比如,在当前块位于视频帧中的第一列编码树单元内时,若当前块中第一列像素与视频帧的左边界之间的距离大于或等于模板区域的默认尺寸(例如,第一区域的默认宽度),则将默认宽度作为当前块左方的模板区域(第一区域)的宽度;若当前块中第一列像素与视频帧的左边界之间的距离小于默认宽度,则将当前块中第一行像素与视频帧的左边界之间的距离作为当前块左方的模板区域(第一区域)的宽度。
需要说明的是,本申请实施例中模板区域的默认尺寸可以是设定的模板尺寸,也可以是视频编解码标准中规定的模板尺寸。该默认模板尺寸可以用于表示当前块左方的模板区域(第一区域)的默认宽度,以及当前块上方的模板区域(第二区域)的默认高度中的至少一个,并且当前块左方的模板区域(第一区域)的默认宽度与当前块上方的模板区域(第二区域)的默认高度可以相同,也可以不相同。
在一些实施例中,如果当前块未处于视频帧中的第一行编码树单元内,则根据默认尺寸的模板区域与目标行编码树单元对应的行缓冲区之间的位置关系,确定模板区域的尺寸(例如,第二区域的高度);其中,该目标行编码树单元是当前块所在的行编码树单元。
比如,在当前块未处于视频帧中的第一行编码树单元内时,若默认尺寸的模板区域未超出行缓冲区的区域范围,则将默认尺寸作为模板区域的尺寸;若默认尺寸的模板区域超出了行缓冲区的区域范围,则将当前块中第一行像素与目标行编码树单元的上边界之间的距离,以及行缓冲区的大小之和作为模板区域的尺寸。需要说明的是:通过该方式确定的模板区域的尺寸可以是位于当前块上方的模板区域的高度,即,若默认高度的模板区域未超出行缓冲区的区域范围,则将默认高度作为模板区域的高度;若默认高度的模板区域超出了行缓冲区的区域范围,则将当前块中第一行像素与目标行编码树单元的上边界之间的距离,以及行缓冲区的大小之和,作为模板区域的高度。在一些实施例中,可以将位于当前块左方的模板区域的宽度值设置为与位于当前块上方的模板区域的高度值相同;或者也可以单独确定位于当前块左方的模板区域的宽度。
在一些实施例中,视频帧信息可以包括当前块与其相邻区域的相关性,该相关性比如可以是像素值之间的相关性,那么在确定模板区域的尺寸时,可以根据当前块的亮度分量重建像素与相邻区域中的亮度分量像素值之间的相关性,确定模板区域的尺寸。
具体而言,模板区域包括位于当前块左方的第一区域,以及位于当前块上方的第二区域,可以分别确定该第一区域的宽度和第二区域的高度,具体示例如下:
在一些实施例中,确定当前块左方的第一区域的宽度的过程可以是:固定第一区域的右侧边界,将第一区域的宽度从1开始向左侧的相邻区域扩展,在第一区域的宽度为i时,计算第一区域包含的各行亮度分量像素在水平方向上的平均梯度,得到宽度为i时的平均水平梯度;若宽度为i时的平均水平梯度与宽度为i-1时的平均水平梯度之间的绝对差值大于或等于设定阈值,则将第一区域的宽度设置为i-1;若宽度为i时的平均水平梯度与宽度为i-1时的平均水平梯度之间的绝对差值小于设定阈值,则继续向左扩展第一区域,直至第一区域的宽度达到第一区域的默认宽度为止;其中,i为大于1的自然数。
具体地,如图8所示,假设当前块为2×2大小的块(图8中白色区域),且包含的亮度分量像素为P1、P2、P3和P4,那么当第一区域的宽度为1时,计算的是与当前块直接相邻的宽度为1的第一区域内亮度分量像素P11和P12的平均水平梯度,平均水平梯度是通过计算P11和P12两侧的像素差得到的,那么平均水平梯度 如果将第一区域的宽度扩展为2,计算的是与当前块直接相邻的宽度为2的第一区域亮度分量像素P11、P12、P13和P14的平均水平梯度,那么平均水平梯度 若(a为设定阈值),则说明宽度为2的相邻区域与宽度为1的相邻区域在水平方向上的像素相关性较高,那么可以继续向左扩展第一区域,直至第一区域的宽度达到默认的模板宽度为止。当然,如果 则说明宽度为2的相邻区域与宽度为1的相邻区域在水平方向上的像素相关性较低,那么可以不再向左进行扩展,并将第一区域的宽度设置为1,换句话说,位于当前块左方的模板区域的宽度可以为1。
在一些实施例中,确定当前块上方的第二区域的高度的过程可以是:固定第二区域的下边界,将第二区域的高度从1开始向上方的相邻区域扩展,在第二区域的高度为j时,计算第二区域包含的各列亮度分量像素在竖直方向上的平均梯度,得到高度为j时的平均竖直梯度;若高度为j时的平均竖直梯度与高度为j-1时的平均竖直梯度之间的绝对差值大于或等于设定阈值,则将第二区域的高度设置为j-1;若高度为j时的平均竖直梯度与高度为j-1时的平均竖直梯度之间的绝对差值小于设定阈值,则继续向上扩展第二区域,直至第二区域的高度达到第二区域的默认高度为止;其中,j为大于1的自然数。
具体地,继续参照图8所示,假设当前块为2×2大小的块(图8中白色区域),且包含的亮度分量像素为P1、P2、P3和P4,那么如果第二区域的高度为1,那么平均垂直梯度如果将第二区域的高度扩展为2,那么平均垂直梯度 若(a为设定阈值),则说明高度为2的相邻区域与高度为1的相邻区域在垂直方向上的像素相关性较高,那么可以继续向上扩展第二区域,直至第二区域的高度达到默认高度为止。当然,如果 则说明高度为2的相邻区域与高度为1的相邻区域在垂直方向上的像素相关性较低,那么可以不再向上进行扩展,并将第二区域的高度设置为1,换句话说,位于当前块上方的模板区域的高度可以为1。
在一些实施例中,在根据当前块的亮度分量重建像素与相邻区域中的亮度分量像素值之间的相关性确定模板区域的尺寸时,也可以以当前块为基准扩展模板区域,即,将第一区域向左侧相邻区域扩展,同时将第二区域向上方相邻区域扩展,在模板区域的尺寸为l时(即,第一区域的宽度和第二区域的高度为l),计算模板区域中的亮度分量像素与当前块的亮度分量重建像素之间的像素值误差;若模板区域的尺寸为l时对应的像素值误差大于或等于设定阈值,则将模板区域的尺寸(即第一区域的宽度和所述第二区域的高度)设置为l-1;若模板区域的尺寸为l时对应的像素值误差小于设定阈值,则继续扩展模板区域,直至模板区域的尺寸达到默认尺寸为止;其中,l为大于1的自然数。
具体地,继续参照图8所示,假设当前块为2×2大小的块(图8中白色区域),且包含的亮度分量像素为P1、P2、P3和P4,那么如果将模板区域的尺寸(即位于当前块上方的模板区域的高度和位于当前块左方的模板区域的宽度)扩展为2,那么模板区域包含的亮度分量像素即为P5、P6、P7、P8、P11、P12、P13和P14,进而可以计算模板区域中的亮度分量像素与当前块的亮度分量重建像素之间的像素值误差S。若S<a(a为设定阈值),则说明尺寸为2的模板区域与当前块的亮度分量重建像素的相关性较高,那么可以继续扩展模板区域的尺寸,直至模板区域的尺寸达到默认尺寸为止。当然,如果S≥a,则说明尺寸为2的模板区域与当前块的亮度分量重建像素的相关性较低,那么可以不再继续扩展模板区域的尺寸,并将模板区域的尺寸设置为1,换句话说,当前块的模板区域的尺寸可以为1。
需要说明的是,由于模板区域的尺寸与当前块的大小和形状是不相同的,因此在计算模板区域中的亮度分量像素与当前块的亮度分量重建像素之间的像素值误差时,可以将模板区域中的亮度分量像素与当前块的亮度分量重建像素映射至相同尺寸的空间区域中,然后计算亮度分量像素的映射结果与亮度分量重建像素的映射结果之间的像素值误差。
在一些实施例中,该像素值误差可以是绝对误差和(Sum of Absolute Difference,SAD)、平方误差和(Sum of Squared Difference,SSD)、均方误差(Mean Squared Error,MSE)等。
在一些实施例中,视频帧信息可以包括当前块的尺寸,那么可以根据当前块的尺寸确定模板区域的尺寸,其中,该模板区域的尺寸与当前块的尺寸成正相关关系,当前块的尺寸可以为当前块的宽度和高度中较大的一个。比如,若当前块的尺寸小于或等于8,则模板区域的尺寸为3;若当前块的尺寸介于8和16之间,则模板区域的尺寸为4等。
在一些实施例中,视频帧信息可以包括视频帧的分辨率;那么可以根据视频帧的分辨率确定模板区域的尺寸,其中,模板区域的尺寸与视频帧的分辨率成正相关关系。比如,若视频帧的分辨率为4K,则模板区域的尺寸为6;若视频帧的分辨率为2K,则模板区域的尺寸为4等。
在一些实施例中,根据当前块邻近的模板区域中所包含的像素值,构建当前块对应的跨分量预测模型的过程可以参照图4所示的过程,并且对于线性预测模型与非线性预测模型都可以采用类似的方法。
继续参照图7所示,在S720中,根据跨分量预测模型和当前块的亮度分量重建像素,生成当前块的色度分量预测值。
在一些实施例中,根据跨分量预测模型和当前块的亮度分量重建像素,生成当前块的色度分量预测值的过程可以参照图4所示的过程,具体可以是将当前块的亮度分量重建像素输入至跨分量预测模型中,进而可以得到当前块的色度分量预测值。
在一些实施例中,本申请实施例中的跨分量预测模型可以是:用于帧内预测的跨分量非线性预测模型、用于帧内预测的跨分量线性预测模型、用于帧间预测的跨分量非线性预测模型、用于帧间预测的跨分量线性预测模型。换句话说,本申请实施例中的跨分量预测模型不仅可以是非线性预测模型,也可以是线性预测模型;不仅可以应用于帧内预测,也可以应用于帧间预测。
同时,需要说明的是,本申请实施例中用于确定模板区域的方案除了应用于跨分量预测之外,还可以应用于非跨分量预测,只要是预测模型使用了模板区域,那么不管是帧内预测还是帧间预测,也不管是非线性预测还是线性预测,或者是否是跨分量预测,都可以采用本申请实施例的技术方案来确定模板区域的尺寸。
在图7所示的跨分量预测方法的基础上,本申请实施例中还提出了一种视频解码方法,该视频解码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。具体流程如图9所示,包括S910至S940,详细说明如下:
在S910中,对视频码流进行解码处理,得到当前块邻近的模板区域中所包含的像素值。
在S920中,根据模板区域中所包含的像素值,构建当前块对应的跨分量预测模型,该模板区域的尺寸是基于当前块对应的视频帧信息确定的。
在S930中,根据跨分量预测模型和当前块的亮度分量重建像素,生成当前块的色度分量预测值。
在S940中,基于当前块的色度分量预测值进行解码处理。
其中,S920和S930的具体实施细节可以参照前述实施例中S710和S720的介绍,即视频解码设备可以基于当前块对应的视频帧信息确定模板区域的尺寸,避免模板区域过大而增加硬件实现成本,也可以避免模板区域过小而影响预测结果,实现了模板区域大小的自适应调整,进而有利于提升视频的编码性能,并减少硬件成本。
在图7所示的跨分量预测方法的基础上,本申请实施例中还提出了一种视频编码方法,该视频编码方法可以由具有计算处理功能的设备来执行,比如可以由终端设备或服务器来执行。具体流程如图10所示,包括S1010至S1040,详细说明如下:
在S1010中,获取当前块邻近的模板区域中所包含的像素值。
在S1020中,根据模板区域中所包含的像素值,构建当前块对应的跨分量预测模型,该模板区域的尺寸是基于当前块对应的视频帧信息确定的。
在S1030中,根据跨分量预测模型和当前块的亮度分量重建像素,生成当前块的色度分量预测值。
在S1040中,基于当前块的色度分量预测值进行编码处理,得到编码后的视频码流。
其中,S1020和S1030的具体实施细节可以参照前述实施例中S710和S720的介绍,即视频编码设备可以基于当前块对应的视频帧信息进行自适应调整得到模板区域的尺寸,避免模板区域过大而增加硬件实现成本,也可以避免模板区域过小而影响预测结果,实现了模板区域大小的自适应调整。在一些实施例中,视频编码设备也可以在视频码流中添加用于指示模板区域的尺寸的标志位;其中,该标志位可以包含以下标志位中的一种或多种:序列头中包含的标志位、图像头中包含的标志位、条带头中包含的标志位、CTU头中包含的标志位、编码块中包含的标志位。
在一些实施例中,序列头中包含的标志位可以用于指示整个序列中的编码块都采用设定大小的模板区域;图像头中包含的标志位可以用于指示整个图像中的编码块都采用设定尺寸的模板区域;条带头中包含的标志位可以用于指示整个条带中的编码块都采用设定尺寸的模板区域;CTU头中包含的标志位可以用于指示整个CTU中的编码块都采用设定尺寸的模板区域;编码块中包含的标志位可以用于指示当前的编码块采用设定尺寸的模板区域。
综上所述,本申请实施例的技术方案主要是根据视频帧的信息自适应地选择跨分量预测技术所使用的模板区域的尺寸,以进一步提升编码性能和/或减少硬件成本,本申请实施例的技术方案可以应用到视频编解码器的产品中。在一些实施例中,同一CTU或不同CTU内的不同块可使用不同尺寸的模板区域。
在一些实施例中,可以依据line buffer大小和模板区域的位置来确定模板区域的尺寸。具体地,假设整幅图像中当前块的第一行像素的纵坐标为y,CTU默认大小为max_cu_height(如可以是YUV420格式下亮度块CTU的大小,而色度块CTU大小为其一半),色度分量的line buffer大小为K,跨分量预测模型的默认模板尺寸(高度或者宽度)设置为N,最终确定的模板区域尺寸(高度或者宽度)为M。其中,K、N和M均为非负整数。
若当前块在视频帧的第一行CTU中,即y<(max_cu_height>>1),则判断y与整幅视频帧上边界的距离是否满足默认模板高度,进而自适应地决定预测模型的模板区域大小。具体来说,若当前块(即当前色度待预测块)的第一行像素与视频帧上边界的距离大于或等于默认模板高度,则设置最终模板区域高度为默认模板高度。反之,若当前块的第一行像素与视频帧上边界的距离小于默认模板高度,则设置最终模板区域高度为当前块的第一行像素与视频帧上边界的距离。公式表示如下:若y≥N,则M=N;反之,若y<N,则M=y。
若当前块不在视频帧的第一行CTU中,即y≥(max_cu_height>>1),则判断默认高度的模板区域位置是否超出line buffer的限制,进而自适应地决定预测模型的模板区域高度。具体来说,若当前块的默认模板区域没有超出当前块所在CTU的line buffer区域的限制,则设置最终模板区域高度为默认模板高度。反之,设置最终模板区域高度为当前块的第一行像素与当前块所在CTU上边界的距离加上色度分量line buffer的大小。公式表示如下:若y%(max_cu_height>>1)≥(N-K),则M=N;反之,若y%(max_cu_height>>1)<(N-K),则M=(y%(max_cu_height>>1))+K。
在一些实施例中,可以依据当前块与其相邻区域的内容相关性来确定最终模板区域尺寸。这是由于理论上模板区域与当前块的像素相关性越高,基于模板区域构建的跨分量预测模型和预测参数越适用于当前块的预测。因此,可依据当前块的相邻区域和当前块的亮度分量重建像素相关性,来自适应地选择模板区域的尺寸。
具体而言,可以使用梯度变化来自适应选择模板区域的尺寸。比如,可以分别计算模板区域尺寸分别为1~N时,水平方向上每一行像素和垂直方向上每一列像素所对应的平均水平梯度Gx i和平均垂直梯度Gy i(其中,x表示水平方向,y表示垂直方向,i表示对应模板尺寸)。若随着模板区域尺寸从1增加到N,平均梯度值变化不大,则说明尺寸为N的模板区域内像素相关性较高,可设置最终模板尺寸M=N。反之,则选取平均梯度值变化较小的区域尺寸为最终模板区域尺寸。
再次以图8所示的示例为例,当模板区域宽度和高度为1时,平均水平梯度 平均垂直梯度当模板宽度和高度为2时,平均水平梯度平均垂直梯度依次类推可分别计算出不同模板尺寸对应的平均梯度值。若模板尺寸为2的平均水平梯度值和模板尺寸为1的平均水平梯度值的差值的绝对值小于某个阈值即则认为宽度为2的模板区域与宽度为1的模板区域在水平方向上像素相关性较高,可设置水平方向上的最终模板宽度为2。依次类推,可计算不同方向上不同模板尺寸的梯度值,并根据变化情况求出最终模板尺寸。
在一些实施例中,可以使用模板区域亮度分量像素与当前块的亮度分量重建像素之差来自适应选择模板区域的尺寸。具体地,可以基于SAD、SSD和MSE等准则来衡量模板区域亮度分量像素和当前块的亮度像素相关性,相关性越高,则基于模板区域构建的跨分量预测模型和预测参数越适用于当前块的预测。一般情况下,模板区域为宽度/高度为N的倒L形(如4所示),而待预测块为矩形,两者无法直接进行点对点的SAD、SSD或MSE计算。因此,可分别将模板区域和待预测区域的亮度像素映射到同一宽高的空间,再进行点对点的SAD、SSD或MSE计算。
在一些实施例中,可以依据块尺寸大小来确定模板区域的尺寸。这是由于不同尺寸的块所包含的信息量不同,所需要的模板区域大小也并不相同,过大的模板区域可能会给当前块的跨分量预测模型引入噪声,过小的模板区域则会导致跨分量预测模型的构建并不充分。因此,可依据不同尺寸的块设置不同大小的模板区域,从而达到全局最优的自适应模板区域大小。一种示例如下表1所示:

表1
在表1中,block_width表示当前块的宽度;block_height表示当前块的高度;max(block_width,block_height)表示当前块的宽度与高度中的最大值。
在一些实施例中,可以依据图像的分辨率大小来确定模板区域的尺寸。这是由于不同分辨率的图像所包含的信息量不同,所需要的模板区域尺寸也并不相同,过大的模板区域可能会给跨分量预测模型引入噪声,过小的模板区域则会导致跨分量预测模型的构建并不充分。因此,可依据图像的分辨率大小设置不同大小的模板区域,从而达到全局最优的自适应模板区域尺寸。一种示例如下表2所示:
表2
在一些实施例中,视频编码端可以通过率失真优化的方式为当前块、CTU、slice或当前帧选择最佳的模板区域尺寸,并通过传输标志位表示所使用的模板区域尺寸。视频解码端则可通过解析块级、CTU级、slice级或帧级的标志位来获取当前块使用的模板区域尺寸。一种示例如下表3所示:
表3
本申请上述实施例中提出的各种方法可以单独使用,或进行组合后使用,并且可以应用于帧内、帧间、滤波等基于模板区域的视频编解码技术和视频编解码器的产品中。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的方法的实施例。
图11示出了根据本申请的一些实施例的跨分量预测装置的框图,该跨分量预测装置可以应用于视频编码设备或者视频解码设备,该视频编码设备或者视频解码设备可以是终端设备或服务器等。
参照图11所示,根据本申请的一些实施例的跨分量预测装置1100,包括:处理单元1102和生成单元1104。
其中,处理单元1102配置为根据当前块邻近的模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的大小是基于所述当前块对应的视频帧信息进行自适应调整得到的;生成单元1104配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值。
图12示出了根据本申请的一些实施例的视频解码装置的框图,该视频解码装置可以应用于具有计算处理功能的设备,比如可以应用于终端设备或服务器。
参照图12所示,根据本申请的一些实施例的视频解码装置1200,包括:解码单元1202、处理单元1204和生成单元1206。
其中,解码单元1202配置为对视频码流进行解码处理,得到当前块邻近的模板区域中所包含的像素值;处理单元1204配置为根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的大小是基于所述当前块对应的视频帧信息进行自适应调整得到的;生成单元1206配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值,以基于所述当前块的色度分量预测值进行解码处理。
图13示出了根据本申请的一些实施例的视频编码装置的框图,该视频编码装置可以应用于具有计算处理功能的设备,比如可以应用于终端设备或服务器。
参照图13所示,根据本申请的一些实施例的视频编码装置1300,包括:获取单元1302、处理单元1304、生成单元1306和编码单元1308。
其中,获取单元1302配置为获取当前块邻近的模板区域中所包含的像素值;处理单元1304配置为根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的大小是基于所述当前块对应的视频帧信息进行自适应调整得到的;生成单元1306配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值;编码单元1308配置为基于所述当前块的色度分量预测值进行编码处理,得到编码后的视频码流。
在本申请的一些实施例中,基于前述方案,所述视频码流中还包含有用于指示所述模板区域的大小的标志位;其中,所述标志位包含以下标志位中的一种或多种:序列头中包含的标志位、图像头中包含的标志位、条带头中包含的标志位、CTU头中包含的标志位、编码块中包含的标志位。
图14示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图,该电子设备可以是前述实施例中的跨分量预测装置、视频编码设备或者视频解码设备。
需要说明的是,图14示出的电子设备的计算机系统1400仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图14所示,计算机系统1400可以包括中央处理单元(Central Processing Unit,CPU)1401,其可以根据存储在只读存储器(Read-Only Memory,ROM)1402中的程序或者从存储部分1408加载到随机访问存储器(Random Access Memory,RAM)1403中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1403中,还存储有系统操作所需的各种程序和数据。CPU 1401、ROM 1402以及RAM 1403通过总线1404彼此相连。输入/输出(Input/Output,I/O)接口1405也连接至总线1404。
以下部件可以连接至I/O接口1405:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如LAN(Local Area Network,局域网)卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至I/O接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序用于执行流程图所示的方法。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被中央处理单元(CPU)1401执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储计算机程序的有形介质,该计算机程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的计算机程序可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机程序的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个计算机程序,当上述一个或者多个计算机程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台电子设备执行根据本申请实施方式的方法。
比如,电子设备可以是跨分量预测装置,那么跨分量预测装置可以执行图7所示的跨分量预测方法;再如,电子设备可以是视频解码设备,那么视频解码设备可以执行图9所示的视频解码方法;再如,电子设备可以是视频编码设备,那么视频编码设备可以执行图10所示的视频编码方法。
本申请实施例还提供了一种非易失性计算机可读存储介质,其上存储有通过计算机程序形成的码流,所述非易失性计算机可读存储介质存储被配置用于由具有控制电路和存储器的计算设备执行的一组或多组指令,当所述一组或多组指令被执行时,实现图9所示的视频解码方法。
本申请实施例还提供了一种存储或发送视频码流的方法,所述视频码流根据图10所示的视频编码方法产生,或者所述视频码流基于图9所示的视频解码方法进行解码。
本申请实施例还提供了一种计算机存储介质,存储有指令,所述指令可由至少一个处理器执行以用于执行如图10所示的视频编码方法,产生码流并存储。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (24)

  1. 一种跨分量预测方法,由电子设备执行,包括:
    根据当前块邻近的模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;
    根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值。
  2. 根据权利要求1所述的跨分量预测方法,其中,当所述视频帧信息包括所述当前块在视频帧中的位置时,所述跨分量预测方法还包括:
    若所述当前块位于所述视频帧中的第一行编码树单元内,则根据所述当前块中第一行像素与所述视频帧的上边界之间的距离,确定所述第二区域的高度;
    若所述当前块未处于所述视频帧中的第一行编码树单元内,则根据默认尺寸的模板区域与目标行编码树单元对应的行缓冲区之间的位置关系,确定所述第二区域的高度;所述目标行编码树单元是所述当前块所在的行编码树单元。
  3. 根据权利要求2所述的跨分量预测方法,其中,根据所述当前块中第一行像素与所述视频帧的上边界之间的距离,确定所述第二区域的高度,包括:
    若所述当前块中第一行像素与所述视频帧的上边界之间的距离大于或等于第二区域的默认高度,则将所述默认高度作为所述第二区域的高度;
    若所述当前块中第一行像素与所述视频帧的上边界之间的距离小于第二区域的默认高度,则将所述当前块中第一行像素与所述视频帧的上边界之间的距离作为所述第二区域的高度。
  4. 根据权利要求2或3所述的跨分量预测方法,其中,根据默认尺寸的模板区域与目标行编码树单元对应的行缓冲区之间的位置关系,确定所述第二区域的高度,包括:
    若所述默认尺寸的模板区域未超出所述行缓冲区的区域范围,则将所述第二区域的默认高度作为所述第二区域的高度;
    若所述默认尺寸的模板区域超出了所述行缓冲区的区域范围,则根据所述当前块中第一行像素与所述目标行编码树单元的上边界之间的距离,以及所述行缓冲区的大小之和作为所述第一区域的高度。
  5. 根据权利要求2至4任一项所述的跨分量预测方法,进一步包括:将所述第一区域的宽度设置为与所述第二区域的高度相同。
  6. 根据权利要求2至4任一项所述的跨分量预测方法,进一步包括:
    当所述当前块位于所述视频帧中的第一列编码树单元内时,则根据所述当前块中第一列像素与所述视频帧的左边界之间的距离,确定所述第一区域的宽度。
  7. 根据权利要求1至6任一项所述的跨分量预测方法,其中,当所述视频帧信息包括所述当前块与其相邻区域的相关性时,所述跨分量预测方法还包括:
    根据所述当前块的亮度分量重建像素与所述相邻区域中的亮度分量像素值之间的相关性,确定所述模板区域的尺寸。
  8. 根据权利要求7所述的跨分量预测方法,其中,
    根据所述当前块的亮度分量重建像素与所述相邻区域中的亮度分量像素值之间的相关性,确定所述模板区域的尺寸,包括:
    固定所述第一区域的右侧边界,将所述第一区域的宽度从1开始向左侧的相邻区域扩展,在所述第一区域的宽度为i时,计算所述第一区域包含的各行亮度分量像素在水平方向上的平均梯度,得到宽度为i时的平均水平梯度;
    若宽度为i时的平均水平梯度与宽度为i-1时的平均水平梯度之间的绝对差值大于或等于设定阈值,则将所述第一区域的宽度设置为i-1;
    若宽度为i时的平均水平梯度与宽度为i-1时的平均水平梯度之间的绝对差值小于所述设定阈值,则继续向左扩展所述第一区域,直至所述第一区域的宽度达到第一区域的默认宽度为止;其中,i为大于1的自然数。
  9. 根据权利要求7或8所述的跨分量预测方法,其中,
    根据所述当前块的亮度分量重建像素与所述相邻区域中的亮度分量像素值之间的相关性,确定所述模板区域的尺寸,进一步包括:
    固定所述第二区域的下边界,将所述第二区域的高度从1开始向上方的相邻区域扩展,在所述第二区域的高度为j时,计算所述第二区域包含的各列亮度分量像素在竖直方向上的平均梯度,得到高度为j时的平均竖直梯度;
    若高度为j时的平均竖直梯度与高度为j-1时的平均竖直梯度之间的绝对差值大于或等于设定阈值,则将所述第二区域的高度设置为j-1;
    若高度为j时的平均竖直梯度与高度为j-1时的平均竖直梯度之间的绝对差值小于所述设定阈值,则继续向上扩展所述第二区域,直至所述第二区域的高度达到第二区域的默认高度为止;其中,j为大于1的自然数。
  10. 根据权利要求7所述的跨分量预测方法,其中,根据所述当前块的亮度分量重建像素与所述相邻区域中的亮度分量像素值之间的相关性,确定所述模板区域的尺寸,包括:
    固定所述第一区域的右侧边界,将所述第一区域向左侧相邻区域扩展,并固定所述第二区域的下边界,将所述第二区域向上方相邻区域扩展,在所述第一区域的宽度和所述第二区域的高度均为l时,计算所述模板区域中的亮度分量像素与所述当前块的亮度分量重建像素之间的像素值误差;
    若所述第一区域的宽度和所述第二区域的高度为l时对应的像素值误差大于或等于设定阈值,则将所述第一区域的宽度和所述第二区域的高度设置为l-1;
    若所述第一区域的宽度和所述第二区域的高度为l时对应的像素值误差小于所述设定阈值,则继续扩展所述第一区域和第二区域,直至所述第一区域的宽度和所述第二区域的高度达到各自的默认宽度和默认高度为止;其中,l为大于1的自然数。
  11. 根据权利要求10所述的跨分量预测方法,其中,计算所述模板区域中的亮度分量像素与所述当前块的亮度分量重建像素之间的像素值误差,包括:
    将所述模板区域中的亮度分量像素与所述当前块的亮度分量重建像素映射至相同尺寸的空间区域中;
    计算所述亮度分量像素的映射结果与所述亮度分量重建像素的映射结果之间的像素值误差。
  12. 根据权利要求1至11任一项所述的跨分量预测方法,其中,当所述视频帧信息包括所述当前块的尺寸时,所述跨分量预测方法还包括:
    根据所述当前块的尺寸确定所述模板区域的尺寸,其中,所述模板区域的尺寸与所述当前块的尺寸正相关,所述当前块的尺寸为所述当前块的宽度和高度中较大的一个。
  13. 根据权利要求1至12任一项所述的跨分量预测方法,其中,当所述视频帧信息包括视频帧的分辨率时,所述跨分量预测方法还包括:
    根据所述视频帧的分辨率确定所述模板区域的尺寸,其中,所述模板区域的尺寸与所述视频帧的分辨率正相关。
  14. 根据权利要求1至13中任一项所述的跨分量预测方法,其中,所述跨分量预测模型包括以下任一:
    用于帧内预测的跨分量非线性预测模型、用于帧内预测的跨分量线性预测模型、用于帧间预测的跨分量非线性预测模型、用于帧间预测的跨分量线性预测模型。
  15. 一种视频解码方法,由电子设备执行,包括:
    对视频码流进行解码处理,得到当前块邻近的模板区域中所包含的像素值;
    根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;
    根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值;
    基于所述当前块的色度分量预测值进行解码处理。
  16. 一种视频编码方法,由电子设备执行,包括:
    获取当前块邻近的模板区域中所包含的像素值;
    根据所述模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;
    根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值;
    基于所述当前块的色度分量预测值进行编码处理,得到编码后的视频码流。
  17. 根据权利要求15所述的视频编码方法,其中,所述视频码流中还包含有用于指示所述模板区域的尺寸的标志位;
    其中,所述标志位包含以下标志位中的一种或多种:序列头中包含的标志位、图像头中包含的标志位、条带头中包含的标志位、编码树单元CTU头中包含的标志位、编码块中包含的标志位。
  18. 一种跨分量预测装置,包括:
    处理单元,配置为根据当前块邻近的模板区域中所包含的像素值,构建所述当前块对应的跨分量预测模型,所述模板区域的尺寸是基于所述当前块对应的视频帧信息确定的;其中,所述模板区域包括位于所述当前块左侧的第一区域以及位于所述当前块上方的第二区域,所述模板区域的尺寸包括所述第一区域的宽度和所述第二区域的高度中的至少一个;所述视频帧信息包括以下至少一个:所述当前块在所述视频帧中的位置;所述当前块与其相邻区域的相关性;所述当前块的尺寸;以及所述视频帧的分辨率;
    生成单元,配置为根据所述跨分量预测模型和所述当前块的亮度分量重建像素,生成所述当前块的色度分量预测值。
  19. 一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至17中任一项所述的方法。
  20. 一种电子设备,其特征在于,包括:
    一个或多个处理器;
    存储器,用于存储一个或多个计算机程序,当所述一个或多个计算机程序被所述一个或多个处理器执行时,使得所述电子设备实现权利要求1至17中任一项所述的方法。
  21. 一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,电子设备的处理器从所述计算机可读存储介质读取并执行所述计算机程序,使得所述电子设备执行权利要求1至17中任一项所述的方法。
  22. 一种非易失性计算机可读存储介质,其特征在于,其上存储有通过计算机程序形成的码流,所述非易失性计算机可读存储介质存储被配置用于由具有控制电路和存储器的计算设备执行的一组或多组指令,当所述一组或多组指令被执行时,实现如权利要求15所述的方法。
  23. 一种存储视频码流的方法,其特征在于,所述视频码流根据权利要求16所述的视频编码方法产生。
  24. 一种计算机存储介质,其特征在于,存储有指令,所述指令可由至少一个处理器执行以用于执行如权利要求16所述的视频编码方法,产生码流并存储。
PCT/CN2025/090923 2024-06-07 2025-04-24 跨分量预测方法、视频编解码方法、装置、介质及设备 Pending WO2025251804A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202410745178.2 2024-06-07
CN202410745178.2A CN121099052A (zh) 2024-06-07 2024-06-07 跨分量预测方法、视频编解码方法、装置、介质及设备

Publications (1)

Publication Number Publication Date
WO2025251804A1 true WO2025251804A1 (zh) 2025-12-11

Family

ID=97883528

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2025/090923 Pending WO2025251804A1 (zh) 2024-06-07 2025-04-24 跨分量预测方法、视频编解码方法、装置、介质及设备

Country Status (2)

Country Link
CN (1) CN121099052A (zh)
WO (1) WO2025251804A1 (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110087089A (zh) * 2013-11-27 2019-08-02 寰发股份有限公司 用于颜色视频数据的视频编解码方法
WO2020186763A1 (zh) * 2019-03-18 2020-09-24 Oppo广东移动通信有限公司 图像分量预测方法、编码器、解码器以及存储介质
CN115118990A (zh) * 2022-06-24 2022-09-27 腾讯科技(深圳)有限公司 色度预测方法、装置、编码设备、解码设备及存储介质
WO2023224290A1 (ko) * 2022-05-18 2023-11-23 현대자동차주식회사 인트라 예측에서 성분간 관계 모델 유도를 위한 참조샘플 선택을 위한 방법 및 장치
KR20230161344A (ko) * 2022-05-18 2023-11-27 현대자동차주식회사 인트라 예측에서 성분간 관계 모델 유도를 위한 참조샘플 선택방법
KR20240043043A (ko) * 2022-09-26 2024-04-02 현대자동차주식회사 개선된 크로스 컴포넌트 선형 모델 예측을 이용하는 비디오 코딩방법 및 장치

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110087089A (zh) * 2013-11-27 2019-08-02 寰发股份有限公司 用于颜色视频数据的视频编解码方法
WO2020186763A1 (zh) * 2019-03-18 2020-09-24 Oppo广东移动通信有限公司 图像分量预测方法、编码器、解码器以及存储介质
WO2023224290A1 (ko) * 2022-05-18 2023-11-23 현대자동차주식회사 인트라 예측에서 성분간 관계 모델 유도를 위한 참조샘플 선택을 위한 방법 및 장치
KR20230161344A (ko) * 2022-05-18 2023-11-27 현대자동차주식회사 인트라 예측에서 성분간 관계 모델 유도를 위한 참조샘플 선택방법
CN115118990A (zh) * 2022-06-24 2022-09-27 腾讯科技(深圳)有限公司 色度预测方法、装置、编码设备、解码设备及存储介质
KR20240043043A (ko) * 2022-09-26 2024-04-02 현대자동차주식회사 개선된 크로스 컴포넌트 선형 모델 예측을 이용하는 비디오 코딩방법 및 장치

Also Published As

Publication number Publication date
CN121099052A (zh) 2025-12-09

Similar Documents

Publication Publication Date Title
WO2022174660A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
JP7717267B2 (ja) ループフィルタリング方法、ビデオ復号方法、ビデオ符号化方法、ループフィルタリング装置、ビデオ復号装置、ビデオ符号化装置、電子機器及びコンピュータプログラム
WO2022022299A1 (zh) 视频编解码中的运动信息列表构建方法、装置及设备
WO2022174701A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
US12231623B2 (en) Video encoding method and apparatus, video decoding method and apparatus, computer-readable medium, and electronic device
WO2024212676A9 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
CN118984390B (zh) 用于视频编解码的基于历史的莱斯编码参数推导
WO2022037478A1 (zh) 视频解码方法、视频编码方法、装置、介质及电子设备
CN115209157A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2026040704A1 (zh) 跨分量预测方法、视频编解码方法、装置、介质及设备、程序产品和存储方法
CN121099052A (zh) 跨分量预测方法、视频编解码方法、装置、介质及设备
HK40090987A (zh) 环路滤波方法、视频编解码方法、装置、介质及电子设备
WO2026091834A1 (zh) 视频编解码方法、装置、介质、电子设备及程序产品
WO2026026351A1 (zh) 视频编解码方法、装置及计算机可读介质
WO2026032398A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
HK40074020A (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2024082632A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2023202097A1 (zh) 环路滤波方法、视频编解码方法、装置、介质、程序产品及电子设备
WO2025241790A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2025039882A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
HK40074020B (zh) 视频编解码方法、装置、计算机可读介质及电子设备
HK40076016B (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2025190013A1 (zh) 视频编解码方法、装置、计算机可读介质及电子设备
WO2026026369A1 (zh) 视频编解码方法、装置、设备及介质
WO2025118926A1 (zh) 视频编解码方法、装置、介质及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 25818864

Country of ref document: EP

Kind code of ref document: A1