Video decoding method and apparatus, video coding method and apparatus, storage medium, electronic device and program product

By introducing parameters of intra-block copy mode into the high-level syntax of video encoding and decoding, the problem of low encoding performance of camera images in the prior art is solved, and more efficient video stream encoding performance is achieved.

WO2025123665A1PCT designated stage expired Publication Date: 2025-06-19TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/105282
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-10
Filing Date
2024-07-12
Publication Date
2025-06-19

AI Technical Summary

Technical Problem

The existing video encoding standards have low performance when cameras take images to encode, especially intra-block replication technology is turned off by default, resulting in poor encoding performance.

Method used

By introducing parameters of intra-block copy mode into the high-level syntax of video encoding and decoding, it is possible to select a suitable IBC mode according to the image generation method of video data, thereby improving encoding performance.

Benefits of technology

The encoding performance of video code streams with different image generation methods is improved, especially when the camera captures images and encodes them significantly.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024105282_19062025_PF_FP_ABST
    Figure CN2024105282_19062025_PF_FP_ABST
Patent Text Reader

Abstract

Disclosed in the present application are a video decoding method and apparatus, a video coding method and apparatus, a storage medium, an electronic device and a program product. The video decoding method comprises: acquiring a video bitstream, wherein the video bitstream comprises decoding indication information, the decoding indication information comprises an intra block copy parameter, and the intra block copy parameter is used for performing decoding indication on an intra block copy mode; and on the basis of the decoding indication information, decoding the video bitstream.
Need to check novelty before this filing date? Find Prior Art

Description

Video decoding method, video encoding method, device, storage medium, electronic device and program product

[0001] This application claims priority and benefits of the patent application with patent application number "202311692791.4" filed with the State Intellectual Property Office of China on December 10, 2023, and the entire text of which is incorporated herein by reference. Technical Field

[0002] The present application belongs to the field of video coding and decoding technology, and in particular relates to a video decoding method, a video encoding method, a video decoding device, a video encoding device, a computer-readable storage medium, an electronic device, and a computer program product. Background Art

[0003] In current video coding standards such as the Audio Video Coding Standard 3 (AVS3) and the international video coding standard VVC / H.266 (VVC), intra-block copy (IBC) technology is currently configured for encoding screen content images and is disabled by default for camera-captured images. This results in lower encoding performance for the video stream corresponding to camera-captured images.

[0004] Summary of the Invention

[0005] The present application aims to solve at least one of the technical problems existing in the prior art. To this end, the present application proposes a video decoding method, a video encoding method, a video decoding device, a video encoding device, a computer-readable storage medium, an electronic device, and a computer program product, which can improve encoding performance.

[0006] In a first aspect, the present application provides a video decoding method comprising obtaining a video code stream, wherein the video code stream includes decoding indication information, the decoding indication information includes an intra-frame block copy parameter, and the intra-frame block copy parameter is used to decode an intra-frame block copy mode; and decoding the video code stream according to the decoding indication information.

[0007] In a second aspect, the present application provides a video encoding method comprising obtaining video data; encoding and compressing the video data to obtain a video code stream, wherein the decoding indication information of the video code stream includes an intra-frame block copy parameter, and the intra-frame block copy parameter is used to decode the intra-frame block copy mode.

[0008] In a third aspect, the present application provides a video decoding apparatus comprising a first acquisition module and a decoding module. The first acquisition module is configured to acquire a video stream, the video stream including decoding indication information, the decoding indication information including intra-block copy parameters, the intra-block copy parameters being used to indicate a decoding mode of the intra-block copy; and the decoding module is configured to decode the video stream according to the decoding indication information.

[0009] In a fourth aspect, the present application provides a video encoding apparatus comprising a second acquisition module and an encoding module. The second acquisition module is configured to acquire video data; the encoding module is configured to encode and compress the video data to obtain a video stream, wherein decoding indication information of the video stream includes an intra-block copy parameter, and the intra-block copy parameter is configured to provide a decoding indication of an intra-block copy mode.

[0010] In a fifth aspect, the present application provides a non-transitory computer-readable storage medium having a computer program stored thereon, which implements the above-mentioned video decoding method or video encoding method when executed by a processor.

[0011] In a sixth aspect, the present application provides an electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned video decoding method or video encoding method when executing the program.

[0012] In a seventh aspect, the computer program product includes a computer program, which implements the above-mentioned video decoding method or video encoding method when executed by a processor.

[0013] The video encoding method, video decoding method, video encoding device, video decoding device, computer-readable storage medium, electronic device and computer program provided in the embodiments of the present application introduce IBC parameters indicating the IBC mode in the high-level syntax of video encoding and decoding (i.e., decoding indication information), thereby allowing the use of the corresponding IBC mode for encoding according to the image generation method of the video data during video encoding, allowing video encoding to select a suitable set of IBC tools and methods for different image generation scenarios (such as camera shooting or computer generation), which is beneficial to improving the encoding performance of video code streams with different image generation methods. BRIEF DESCRIPTION OF THE DRAWINGS

[0014] The above and / or additional aspects and advantages of the present application will become apparent and easily understood from the description of the embodiments in conjunction with the following drawings, in which:

[0015] FIG1 is a schematic diagram of the video encoding principle provided by an embodiment of the present application;

[0016] FIG2 is a schematic diagram of the inter-frame prediction principle provided by an embodiment of the present application;

[0017] FIG3 is a schematic diagram of a sheet structure provided in an embodiment of the present application;

[0018] FIG4 is a schematic diagram showing the principle of intra-frame block copying provided by an embodiment of the present application;

[0019] FIG5 is a schematic diagram of the principle of block division provided by an embodiment of the present application;

[0020] FIG6 is a schematic diagram of a framework of a video encoding and decoding system provided in an embodiment of the present application;

[0021] FIG7 is a schematic diagram of a flow chart of a video decoding method provided in an embodiment of the present application;

[0022] FIG8 is a schematic diagram of a flow chart of a video encoding method provided in an embodiment of the present application;

[0023] FIG9 is a schematic structural diagram of a video decoding device provided in an embodiment of the present application;

[0024] FIG10 is a schematic structural diagram of a video encoding device provided in an embodiment of the present application;

[0025] FIG11 is a schematic structural diagram of an electronic device provided in an embodiment of the present application;

[0026] FIG12 is a schematic diagram of the hardware structure of the electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0027] The following describes in detail embodiments of the present application. Examples of the embodiments are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present application and are not to be construed as limiting the present application.

[0028] The following is an introduction to some of the technical terms involved in this application:

[0029] 1. Video encoding:

[0030] Video signals can be divided into two types based on how they are acquired: those captured by cameras and those generated by computers. Due to differences in statistical properties, the corresponding compression encoding methods may also differ.

[0031] Refer to Figure 1. Modern mainstream video coding technologies, such as the international video coding standards HEVC / H.265 (High Efficiency Video Coding, HEVC), VVC, and AVS3, use a hybrid coding framework to perform the following operations and processing on the input raw video signal:

[0032] (1) Block partition structure: Input video pictures are divided into several non-overlapping processing units based on their size. Each processing unit performs similar compression operations. This processing unit is called a CTU or LCU. Further subdivisions below the CTU can be performed to obtain one or more basic coding units, called CUs. Each CU is the most basic element in the encoding process. The following describes the various encoding methods that can be used for each CU.

[0033] (2) Predictive Coding: This includes intra-picture prediction and motion-comp prediction. The original video signal is predicted by the selected reconstructed video signal to produce a residual video signal. The encoder needs to select the most appropriate predictive coding mode for the current CU from among many possible modes and inform the decoder.

[0034] Currently mainstream video coding standards, such as HEVC, VVC, AVS3, the first-generation video coding standard AV1 (Alliance for Open Media Video 1), and the second-generation video coding standard AV2 (Alliance for Open Media Video 2), all employ a block-based hybrid coding framework. These standards divide the original video data into a series of coding blocks and combine video coding methods such as prediction, transform, and entropy coding to achieve video data compression. Motion compensation is a commonly used prediction method in video coding. It leverages the temporal or spatial redundancy of video content to derive prediction values ​​for the current coding block from previously coded regions. These prediction methods include inter-frame prediction, intra-block copy prediction, and intra-string copy prediction. In specific coding implementations, these prediction methods may be used individually or in combination. For coding blocks using these prediction methods, one or more two-dimensional displacement vectors are typically encoded explicitly or implicitly in the bitstream, indicating the displacement of the current block (or its co-located block) relative to one or more reference blocks.

[0035] It's important to note that displacement vectors may have different names in different prediction modes and implementations. This article uniformly describes them as follows: 1) The displacement vector in inter-frame prediction is called a motion vector (MV); 2) The displacement vector in intra-frame block copy is called a block vector (BV); 3) The displacement vector in intra-frame string copy is called a string vector (SV). The following describes the relevant technologies for inter-frame prediction and intra-frame block copy prediction.

[0036] a. Intra-frame prediction: The predicted signal comes from the area that has been encoded and reconstructed within the same image.

[0037] b. Inter-frame prediction: The predicted signal comes from an already encoded image that is different from the current image (called a reference image).

[0038] As shown in Figure 2, inter-frame prediction exploits the temporal correlation of the video, using pixels from neighboring coded images to predict the pixels of the current image. This effectively removes temporal redundancy in the video and saves bits of coded residual data. Here, P is the current frame, Pr is the reference frame, B is the current block to be coded, and Br is B's reference block. B' and B have the same coordinate position in the image: Br's coordinates are (xr, yr), and B''s coordinates are (x, y). The displacement between the current coded block and its reference block is called a motion vector (MV), i.e., MV = (xr-x, yr-y).

[0039] Considering the strong correlation between adjacent blocks in the temporal or spatial domain, MV prediction technology can be used to further reduce the bits required to encode MV. In H.265 / HEVC, inter-frame prediction includes two MV prediction technologies: Merge and AMVP.

[0040] (3) Transform coding and quantization: The residual video signal undergoes transform operations such as discrete Fourier transform (DFT) and discrete cosine transform (DCT) to convert the signal into a transform domain, which is called transform coefficients. The signal in the transform domain is further subjected to lossy quantization, which loses some information, making the quantized signal more conducive to compression expression. In some video coding standards, there may be more than one transform method to choose from. Therefore, the encoder also needs to select one of the transforms for the current coded CU and inform the decoder. The degree of quantization is usually determined by the quantization parameter (QP). A larger QP value means that coefficients with a larger value range will be quantized into the same output, which usually results in greater distortion and a lower bit rate. Conversely, a smaller QP value means that coefficients with a smaller value range will be quantized into the same output, which usually results in less distortion and a corresponding higher bit rate.

[0041] (4) Entropy Coding or Statistical Coding: The quantized transform domain signal will be statistically compressed and encoded according to the frequency of occurrence of each value, and finally a binary (0 or 1) compressed code stream will be output. At the same time, the encoding generates other information, such as the selected mode, motion vector, etc., which also needs to be entropy coded to reduce the bit rate. Statistical coding is a lossless coding method that can effectively reduce the bit rate required to express the same signal. Common statistical coding methods include variable length coding (VLC) or context-based binary arithmetic coding (CABAC).

[0042] (5) Loop Filtering: The encoded image undergoes inverse quantization (scaling & inv.transform), inverse transformation and prediction compensation (the reverse operations of (2) to (4) above) to obtain a reconstructed decoded image. Compared with the original image, the reconstructed image has some information that is different from the original image due to the influence of quantization, resulting in distortion. Filtering the reconstructed image, such as deblocking filtering, SAO or ALF filters, can effectively reduce the degree of distortion caused by quantization. Since these filtered reconstructed images will be used as a reference for subsequent encoded images and used to predict future signals, the above filtering operation is also called loop filtering, and the filtering operation within the encoding loop.

[0043] 2. Video decoding: This is the inverse process of video encoding. Based on the encoding process described above, at the decoding end, after receiving the video bitstream, the decoder first performs entropy decoding on each CU to obtain various mode information and quantized transform coefficients. Each coefficient undergoes inverse quantization and inverse transformation to produce a residual signal. Furthermore, based on the known coding mode information, the prediction signal corresponding to the CU can be obtained. Adding these two together yields a reconstructed signal. Finally, the reconstructed value of the decoded image undergoes loop filtering to produce the final output signal.

[0044] 3. Video stream structure

[0045] (1) Video sequence

[0046] A video sequence is the highest-level syntactic structure of a bitstream (i.e., a video codestream). A video sequence begins with the first sequence header. A sequence end code or video editing code indicates the end of a video sequence. The sequence headers between the first sequence header and the first occurrence of a sequence end code or video editing code are repeated sequence headers. Each sequence header is followed by one or more coded pictures, each preceded by a picture header. Coded pictures are arranged in bitstream order within the bitstream, which should be the same as the decoding order. The decoding order may differ from the display order.

[0047] (2) Image

[0048] A picture can be a frame or a field, and its coded data starts with a picture start code and ends with a sequence start code, a sequence end code or the next picture start code.

[0049] Image types include: I-image (i.e., first-type image); P-image (i.e., second-type image); and B-image (i.e., third-type image). A fully encoded frame is called an I-frame, a frame generated by referring to a previous I-frame and containing only the difference encoded portion is called a P-frame, and a frame encoded by referring to previous and subsequent frames is called a B-frame.

[0050] (3) pieces

[0051] A slice is a rectangular area in an image (such as region A, region B, etc.) that contains the portion of several LCUs within the image. Slices should not overlap. The slice structure is shown in Figure 3.

[0052] (4) Maximum coding unit, coding tree, and coding unit

[0053] The image is divided into maximum coding units (such as CTU in video coding). The maximum coding units should not overlap, the sample in the upper left corner of the maximum coding unit should not exceed the image boundary, and the sample in the lower right corner of the maximum coding unit can exceed the image boundary.

[0054] The coding tree determines how the maximum coding unit is divided into multiple coding units (such as CU in video coding), such as binary tree, quadtree, enhanced quadtree and other division methods. A coding unit can be used as an image block.

[0055] The coding unit is divided into one or more transform blocks, which are the basic units for transform coding.

[0056] 4. Intra Block Copy (IBC)

[0057] IBC is an intra-frame coding tool adopted in the HEVC Screen Content Coding (SCC) extension, which significantly improves the coding efficiency of screen content. IBC technology is also adopted in AVS3, VVC and AV1 to improve the performance of screen content coding. IBC uses the spatial correlation of screen content video and uses the coded image pixels on the current image to predict the pixels of the current block to be coded, which can effectively save the bits required to encode the pixels. Figure 4 is a schematic diagram of IBC technology, in which the displacement between the current coding block and its reference block is called the block vector (BV).

[0058] 5. Block division structure of AVS3

[0059] AVS3 uses a basic block partitioning structure of QT (quadtree) + BT (binary tree) + EQT (enhanced quadtree). The previous generation AVS2 standard used quadtree partitioning to divide a CU into four subCUs. In addition to supporting quadtree partitioning, AVS3 also supports binary tree BT and EQT partitioning. Among them, BT can divide a CU into left and right / upper and lower subCUs; EQT includes two I-shaped partitioning methods, horizontal and vertical, to divide a CU into four subCUs.

[0060] Refer to Figure 5, which shows how the QT+BT+EQT basic block partitioning structure in AVS3 is represented in the bitstream. First, determine whether it is QT. If so, proceed directly to quadtree partitioning. If not, further determine whether to partition. If not, terminate the determination. If partitioning is required, determine whether it is EQT or BT. For both EQT and BT, determine whether the partitioning is horizontal or vertical.

[0061] The video decoding method and video encoding method provided in the embodiments of the present application can be applied to a video coding and decoding system, which may include a content production device (corresponding to an encoding device) and a content presentation device (corresponding to a decoding device). The content production device may refer to an electronic device used by a provider of video data (for example, a content producer of video data), and the electronic device may be a terminal (such as a PC (Personal Computer), a smart mobile device (such as a smart phone), etc.) or a server.

[0062] Among them, the server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides 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, CDN, and big data and artificial intelligence platforms. The content presentation device can refer to an electronic device used by a user of video data (such as a viewer of video data, i.e., a business object), which can be a terminal (such as a PC (Personal Computer), a smart mobile device (such as a smart phone), a VR device (such as a VR helmet, VR glasses, etc.), a smart home appliance, a vehicle-mounted terminal, an aircraft, etc.), and the electronic device is integrated with a client.

[0063] The client herein may be a client capable of displaying data information such as text, images, audio, and video, including but not limited to a multimedia client (e.g., a video client), a social client (e.g., an instant messaging client), an information application (e.g., a news client), an entertainment client (e.g., a game client), a shopping client, an in-car client, a browser, etc. The client may be a standalone client or an embedded sub-client integrated into a client (e.g., a social client), and the like, without limitation.

[0064] The content production device and the content presentation device can be the same device or different devices, each of which includes multiple modules, different modules are used to implement different functions, and these modules can be integrated into the same electronic device or located in different electronic devices. The content production device can be used to implement functions such as video data acquisition and encoding, and correspondingly, the content presentation device can be used to implement functions such as decoding, rendering, and displaying encapsulated files. Please refer to Figure 6, which is a framework diagram of a video encoding and decoding system for video data provided in an embodiment of the present application.

[0065] In Figure 6, on the content production device side, the real-world visual scene is captured by a set of cameras or a single camera device with multiple lenses and sensors. The captured camera image A is video data B, which includes multiple frames of captured images. Alternatively, on the content production device side, multiple frames of screen content image A can be used as video data B. After content capture is complete, video data B is encoded to generate a video stream C, which is then sent to the content presentation device.

[0066] On the content presentation device side, the video code stream C is decoded, and then the decoded video data B' is rendered to obtain a rendered video D, which is then displayed.

[0067] It is understood that the encoding and decoding technology involved in this application can be implemented based on cloud technology; for example, using a cloud server as a content production device. Cloud technology refers to a hosting technology that unifies hardware, software, network and other resources within a wide area network or local area network to achieve data computing, storage, processing and sharing.

[0068] Based on the introduction of the above basic concepts and related scenarios, the embodiments of the present application provide a video encoding method, a video decoding method, a video encoding device, a video decoding device, a computer storage medium and an electronic device.

[0069] To support the video encoding method in the embodiment of this application, the embodiment of this application adds several descriptive fields at the system level based on the existing technology and defines the corresponding high-level syntax data structure. In the following content, the above video encoding method will be described in detail in conjunction with various syntax tables.

[0070] Please refer to FIG. 7 , which is a flow chart of a video encoding method provided in an embodiment of the present application, specifically including:

[0071] Step 011: Obtain a video stream, the video stream including decoding indication information, the decoding indication information including intra-block copy parameters, the intra-block copy parameters being used to indicate decoding of an intra-block copy mode;

[0072] Step 012: Decode the video stream according to the decoding instruction information.

[0073] Specifically, after encoding and compressing video data (such as at least one of an image captured by a camera and a screen content image generated by a computer), a bit stream, ie, a video code stream, can be obtained.

[0074] The image generation method of a video stream can be determined based on the method used to generate the video data used to generate the video stream. For example, the image generation method of a video stream can include camera capture and computer (specifically, an electronic device) generation. When the video stream is generated from images captured by a camera, the image generation method of the video stream can be determined to be camera capture. When the video stream is generated from computer-generated screen content images, the image generation method of the video stream can be determined to be computer-generated.

[0075] The decoding end can obtain the video code stream sent by the encoding end. The video code stream contains decoding instruction information for decoding instructions. The decoding end can decode the video code stream according to the decoding instruction information.

[0076] The decoding instruction information is used to provide decoding instructions for different data in the video code stream. The decoding instruction information includes a video sequence, which is the highest-level syntax structure of the video code stream.

[0077] The decoding indication information includes an intra-block copy parameter, ie, an IBC parameter. The intra-block copy parameter is used to indicate the decoding mode of the intra-block copy, that is, the IBC parameter is used to indicate the IBC mode used when encoding the video stream.

[0078] The intra-block copy mode matches the image generation method corresponding to the video stream. For example, different image generation methods correspond to different IBC modes for video sequences.

[0079] The IBC parameter is used to characterize the IBC technology used when encoding video data. For example, the IBC parameter is used to characterize whether the IBC mode is allowed and the IBC mode used during encoding.

[0080] Optionally, the IBC parameters are set in at least one of sequence-level parameter information, picture-level parameter information, slice-level parameter information, and block-level parameter information of the video sequence.

[0081] Optionally, the IBC mode includes a first sub-mode and a second sub-mode, such that the first sub-mode and the second sub-mode correspond to a camera shooting mode and a computer generation mode respectively; or, the first sub-mode and the second sub-mode correspond to a computer generation mode and a camera shooting mode respectively.

[0082] The intra-frame block copy parameters corresponding to the first sub-mode are set in at least one of the parameter information at the sequence level, the parameter information at the image level, the parameter information at the slice level, and the parameter information at the block level of the video sequence; the intra-frame block copy parameters corresponding to the second sub-mode are set in at least one of the parameter information at the sequence level, the parameter information at the image level, the parameter information at the slice level, and the parameter information at the block level of the video sequence.

[0083] Optionally, the intra block copy parameters corresponding to the first sub-mode are set in the parameter information of the picture level, and the intra block copy parameters corresponding to the second sub-mode are set in the parameter information of the picture level;

[0084] Alternatively, the intra block copy parameters corresponding to the first sub-mode are set in the parameter information at the sequence level, and the intra block copy parameters corresponding to the second sub-mode are set in the parameter information at the picture level;

[0085] Alternatively, the intra block copy parameters corresponding to the first sub-mode are set in the parameter information of the picture level, and the intra block copy parameters corresponding to the second sub-mode are set in the parameter information of the sequence level.

[0086] Among them, the IBC parameters set in the parameter information at the sequence level are valid for the entire video sequence, the IBC parameters set in the parameter information at the image level are valid for the corresponding image, the IBC parameters set in the parameter information at the slice level are valid for the corresponding image slice, and the IBC parameters set in the parameter information at the block level are valid for the corresponding image block.

[0087] Optionally, the sequence-level parameter information includes a sequence header, and the sequence header includes intra-block copy parameters.

[0088] A video sequence includes a sequence header followed by one or more coded images. The IBC parameters set in the sequence header are valid for the coded images following the sequence header. That is, the coded images following the sequence header can be encoded according to the IBC parameters of the sequence header.

[0089] Optionally, the picture-level parameter information includes a picture header, and the picture header includes intra block copy parameters.

[0090] A video sequence includes a picture header. There is a picture header before each coded picture following the sequence header. The IBC parameters set in the picture header are valid for the coded pictures following the picture header. That is to say, the coded pictures following the picture header can be encoded according to the IBC parameters of the picture header.

[0091] Optionally, the slice-level parameter information includes a slice header, and the slice header includes intra block copy parameters.

[0092] The video sequence includes a header, and the coded image is divided into multiple slices. There is a header before each slice. The IBC parameters set in the header are valid for the slices following the header. That is to say, the slices following the header can be encoded according to the IBC parameters of the header.

[0093] Optionally, the block-level parameter information includes a coding block (or coding unit), a prediction block (or prediction unit), and a transform block (or transform unit), and the block-level parameter information may include intra-block copy parameters.

[0094] During encoding, the coding block, the prediction block, and the transform block may be encoded according to the IBC parameters in the coding block, the prediction block, and the transform block, respectively.

[0095] The IBC related technologies of this application include a variety of preset tools and methods, forming an IBC tool list.

[0096] Optionally, the tool methods include adaptive motion vector resolution method (AMVR), adaptive block vector resolution method (ABVR), class based block vector prediction method (CBVP), filtered intra block copy (FIBC), fractional pel IBC (IBC-FRAC), symmetric intra block copy (SIBC), reconstruction-reordered IBC (RRIBC), inter prediction correction method (InterPC), IBC with local illumination compensation, IBC merge mode with block vector differences (IBC-MBVD), combined intra block copy and intra prediction merge mode method. At least one of the following methods: intra block copy mode method with geometric partitioning (IBC-CIIP), intra block copy mode method with geometric partitioning (IBC with Geometry Partitioning, IBC-GPM), intra block copy mode method with template matching (IBC with Template Matching, IBC-TM), intra block copy motion vector prediction merge method (IBC with BVP and merge, IBC BVP-merge), and bi-predictive intra block copy mode method (Bi-predictive IBC merge, IBC Bi-Pred).

[0097] The following is an introduction to each tool method:

[0098] (1) Adaptive block vector resolution

[0099] In the international video coding standard VVC / H.266 (versatile video coding, VVC), a CU-level adaptive motion vector resolution (AMVR) scheme is introduced. AMVR allows the motion vector difference (MVD) of the CU to be encoded with different precisions. Depending on the current CU mode, the MVD of the current CU can adaptively select a quarter brightness sample, a half brightness sample, an integer brightness sample, or four brightness samples. The ABVR technology is adopted in the AVS3 standard. ABVR allows the block vector difference (BVD) of the IBC to select integer brightness samples or four brightness sample precision.

[0100] (2) Class-based block vector prediction

[0101] AVS3 adopts Class-based Block Vector Prediction (CBVP), which is similar to History-based Motion Vector Prediction (HMVP). This method first uses a History-based Block Vector Prediction (HBVP) list to store the information of historical IBC coding blocks. In addition to recording the BV information of historical coding blocks, it also records the location, size and other information of historical coding blocks. For the current coding block, the candidate BVs in the HBVP are classified according to the following conditions:

[0102] Category 0: The area of ​​the historical coding block is greater than or equal to 64 pixels;

[0103] Category 1: The frequency of BV is greater than or equal to 2;

[0104] Category 2: The coordinates of the upper left corner of the historical coding block are to the left of the coordinates of the upper left corner of the current block;

[0105] Category 3: The coordinates of the upper left corner of the historical coding block are above the coordinates of the upper left corner of the current block;

[0106] Category 4: The coordinates of the upper left corner of the historical coding block are located above and to the left of the coordinates of the upper left corner of the current block;

[0107] Category 5: The coordinates of the upper left corner of the historical coding block are located above and to the right of the coordinates of the upper left corner of the current block;

[0108] Category 6: The coordinates of the upper left corner of the historical coding block are located below and to the left of the coordinates of the upper left corner of the current block;

[0109] The instances in each category are sorted in reverse order of encoding order (the closer the encoding order is to the current block, the higher the order). The BV corresponding to the first historically encoded block is the candidate BV for that category. The candidate BVs for each category are then added to the CBVP list in order from category 0 to category 6. This list is used to derive the predicted block vector.

[0110] The Enhanced Compression Model (ECM), the reference software platform for the next-generation international video coding standard, includes a clustering-based Block Vector Prediction (BVP) mode. Compared to VVC inter-frame Merge / AMVP, the construction of the IBC Merge / AMVP candidate list has been modified as follows:

[0111] During the construction of the IBC AMVP candidate list, when both BV candidate components are non-zero, clustering of BVP candidates can be applied. If there are more than 2 valid BV candidates and a maximum of 6 candidates can be clustered, clustering is performed using L2 distance.

[0112] The clustering method is applied sequentially along the candidate list. Candidates assigned to a group are removed from the list for subsequent clustering. Within each group, the BVP with the lowest template matching cost is selected as the representative candidate for that group. Finally, the representative candidates from the first two groups are selected as candidates for the IBC AMVP list.

[0113] Among them, Merge and Advanced Motion Vector Prediction (AMVP) are two motion vector prediction methods, which are used by video coding standards H.265 / HEVC, H.266 / VVC, and AVS3.

[0114] (3) Block copy intra-frame prediction filtering

[0115] An additional filtered IBC mode is introduced in ECM, where a filter is applied to the IBC predictor, which is obtained by minimizing the mean square error (MSE) between the current template and the reference template.

[0116] The output of the filter is calculated as follows:

[0117] predLumaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B;

[0118] The nonlinear term P represents the second power of the center sample C and is scaled to the sample value range of the content;

[0119] P = (C*C+midVal)>>bitDepth;

[0120] The bias term B represents a scalar offset between the input and output and is set to the mid-luma value (512 for 10-bit content).

[0121] (4) IBC mode with sub-pixel accuracy

[0122] Among the additional options, the choice of block vector resolution is expanded to include quarter-pixel resolution in addition to full-pixel and 4-pixel. Similar to the inter-frame adaptive motion vector resolution (AMVR) syntax, the first binary bit is passed to indicate whether the BV is at quarter-pixel resolution, and the second binary bit is passed to switch between full-pixel and 4-pixel resolution. Interpolation filters are applied to the luma (8-point interpolation) and chroma (6-point interpolation) components of the IBC block. For template-based IBC tools, a 2-point bilinear interpolation filter is applied to generate the template prediction block. Reference sample padding is performed when some reference samples are outside the IBC reference area. When necessary, horizontal padding is performed first, followed by vertical padding.

[0123] (5) Block copy intra prediction mode based on reconstructed value flipping

[0124] ECM allows the use of the Reconstruction Reordering (RR-IBC) mode for IBC coded blocks. When RR-IBC is applied, the samples in the reconstructed block are flipped according to the flip type of the current block. On the encoder side, the original block is flipped before motion search and residual calculation, while the predicted block is not flipped. On the decoder side, the reconstructed block is flipped back to restore the original block. For RR-IBC coded blocks, two flipping methods are supported: horizontal flipping and vertical flipping. SIBC is another flip-based block copy intra-frame prediction mode. Unlike RR-IBC, SIBC flips the predicted values.

[0125] (6) Block copy intra prediction with local illumination compensation

[0126] Intra-block copying with local illumination compensation (IBC-LIC) compensates for local illumination variations between an IBC-coded CU and its prediction block within an image by deriving a linear equation. The parameters of the linear equation are the same as those for inter-prediction local illumination compensation (LIC), derived from a template between the current block and a reference block. However, IBC-LIC uses a block vector to generate the reference template. IBC-LIC can be used in both IBC AMVP and IBC Merge modes.

[0127] (7) IBC Merge Mode with Block Vector Residual

[0128] In IBC-MBVD, there are distance sets of 1-128 pixels, two horizontal directions and two vertical directions. The method selects candidate BVPs based on IBC Merge and determines BVD from the distance set and direction set, thereby deriving BV from BVP and BVD.

[0129] (8) IBC and intra-frame prediction merge mode

[0130] Combined intra block copy and intra prediction (IBC-CIIP) is a coding tool for obtaining a CU of two prediction signals using IBC and intra prediction, and then performing a weighted sum of the two prediction signals to generate a final prediction signal.

[0131] (9) IBC mode with geometric partitioning

[0132] Intra Block Copy with Geometry Partitioning Mode (IBC-GPM) divides a CU into two sub-partitions using geometric partitioning. Prediction signals for the two sub-partitions are generated using IBC and intra prediction. When using IBC-GPM, a geometry partitioning mode set flag is passed to indicate whether the first or second geometry partitioning mode set is selected, followed by the geometry partitioning mode index. An IBC-GPM intra flag is passed to indicate whether intra prediction is used for the first sub-partition. When intra prediction is used for a sub-partition, an intra prediction mode index is passed. When IBC is used for a sub-partition, a Merge index is passed.

[0133] (10) IBC mode with template matching

[0134] In IBC, template matching is used in IBC Merge mode and IBC AMVP mode.

[0135] In IBC-TM Merge mode, the selected candidates are refined using the template matching method. In IBC-TM AMVP mode, up to 3 candidates are selected from the IBC-TM Merge list. The 3 selected candidates are refined using the template matching method and ranked according to their resulting template matching costs. Only the first two candidates are then considered in the motion estimation process as usual. In IBC-TM Merge mode, all refinements are performed with integer precision, while in IBC-TM AMVP mode, refinement can be performed with integer or 4-pixel precision, depending on the AMVR value. Such refinement only accesses samples that do not need to be interpolated. In both cases, the refined motion vectors and the template used in each refinement step must comply with the constraints of the reference region.

[0136] (11) Intra-block copy motion vector prediction Merge mode method and bidirectional prediction Intra-block copy mode method

[0137] IBC BVP-merge is similar to AMVP-merge, which gets a motion vector (BV) from the IBC block vector prediction (BVP) and a second motion vector (BV) from the IBC Merge to form a bidirectional prediction of IBC. Two different indices need to be passed, one for the candidate of IBC BVP and the other for IBC Merge.

[0138] In bi-predictive IBCMerge, two motion vectors (BV) are obtained from the existing IBC Merge list, using the two different indices passed.

[0139] The IBC tool list may include one or more of the above-mentioned tool methods. In one example, the IBC tool list is shown in Table 1 below:

[0140] Table 1

[0141] Optionally, the IBC parameters may include multiple tool method set parameters, where the tool method set parameters are parameters corresponding to the tool method set formed by one or more tool methods in the IBC tool list. The tool method set parameters can represent the tool method set used when encoding the current video code stream.

[0142] Each sub-mode of IBC is used to indicate the tool method used when encoding the video stream. The tool methods corresponding to each sub-mode of IBC form a tool method set parameter, and each sub-mode has a corresponding tool method set parameter.

[0143] Please refer to Table 2 below, which shows the differences in encoding effects between a camera shooting sequence formed by a camera shooting method and a screen content sequence formed by a computer generation method when various tools and methods are applied.

[0144] Table 2

[0145] Optionally, the tool method set parameters include multiple tool method parameters (such as ABVR, FIBC, etc. in Table 1), and the value of the tool method parameter is a first preset parameter (such as 0) or a second preset parameter (such as 1). When the value of the tool method parameter is the first preset parameter, it means that the tool method parameter set parameters do not use the tool method. When the value of the tool method parameter is the second preset parameter, it means that the tool method parameter set parameters use the tool method.

[0146] Based on Table 2 above, corresponding tool method set parameters can be set for the IBC mode corresponding to the camera shooting method (such as sub-mode 1) and the IBC mode corresponding to the computer generation method (such as sub-mode 2), such that sub-mode 1 corresponds to tool method set parameter 1, and sub-mode 2 corresponds to tool method set parameter 2.

[0147] In an example, the tool method set parameters 1 and 2 are shown in Table 3 below:

[0148] Table 3

[0149] Among them, the tool method set parameter 1 includes various tool methods used when the image generation method is to encode video data captured by a camera, and the tool method set parameter 2 includes various tool methods used when the image generation method is to encode video data generated by a computer.

[0150] When performing IBC, the video stream captured by the camera is encoded using tool method set parameter 1, while the video stream generated by the computer is encoded using tool method set parameter 2. This ensures that the IBC parameters match the image generation method of the video stream, which can improve the encoding performance of video data with different image generation methods.

[0151] Optionally, tool method set parameter 1 may include one or more of the above-mentioned tool method parameters, and tool method set parameter 2 may also include one or more of the above-mentioned tool method parameters, and tool method set parameter 1 and tool method set parameter 2 are different.

[0152] For example, tool method set parameter 1 and tool method set parameter 2 both include ABVR and CBVP parameters, the values ​​of ABVR and CBVP parameters of tool method set parameter 1 are 0 and 1 respectively, and the values ​​of ABVR and CBVP parameters of tool method set parameter 2 are 1 and 1 respectively.

[0153] For example, tool method set parameter 1 and tool method set parameter 2 both include ABVR and FIBC parameters. The values ​​of the ABVR and FIBC parameters of tool method set parameter 1 are 0 and 1 respectively, and the values ​​of the ABVR and FIBC parameters of tool method set parameter 2 are 1 and 0 respectively.

[0154] For another example, tool method set parameter 1 and tool method set parameter 2 both include ABVR, FIBC and SIBC parameters. The values ​​of ABVR, FIBC and SIBC parameters of tool method set parameter 1 are 0, 1 and 0 respectively, and the values ​​of ABVR, FIBC and SIBC parameters of tool method set parameter 2 are 1, 0 and 1 respectively.

[0155] For another example, tool method set parameter 1 and tool method set parameter 2 both include ABVR, FIBC and CBVP parameters. The values ​​of ABVR, FIBC and CBVP parameters of tool method set parameter 1 are 0, 1 and 1 respectively, and the values ​​of ABVR, FIBC and CBVP parameters of tool method set parameter 2 are 1, 0 and 1 respectively.

[0156] For another example, tool method set parameter 1 and tool method set parameter 2 both include ABVR, FIBC, IBC-LIC and CBVP parameters. The values ​​of ABVR, FIBC, IBC-LIC and CBVP parameters of tool method set parameter 1 are 0, 1, 1 and 1 respectively, and the values ​​of ABVR, FIBC, IBC-LIC and CBVP parameters of tool method set parameter 2 are 1, 0, 1 and 1 respectively.

[0157] Optionally, there are multiple IBC modes, each with a corresponding tool set. For example, each mode corresponds to one or more tool sets. Furthermore, IBC modes correspond one-to-one with the image generation method of the video data. In other words, each image generation method requires a corresponding IBC mode. Once the image generation method of the video data is determined, the IBC mode corresponding to that image generation method can be determined, and encoding can then be performed using one of the one or more tool sets corresponding to that IBC mode.

[0158] For example, the IBC mode includes sub-mode 1 and sub-mode 2. When the image generation method is camera shooting, the IBC mode is sub-mode 1; when the image generation method is computer generation, the IBC mode is sub-mode 2. Sub-mode 1 can correspond to the tool method set parameter 1 in Table 3, and sub-mode 2 can correspond to the tool method set parameter 2 in Table 3, thereby quickly determining the tool method set for IBC during encoding.

[0159] In this way, by using a matching IBC tool method set to encode video data generated by different image generation methods, the encoding performance of video data generated by various image generation methods can be improved.

[0160] It can be understood that the tool method set parameters corresponding to the video data of each image generation method can be obtained by encoding experiments on a large amount of video data and verifying the experimental data, so as to obtain the tool method set parameters whose video data encoding performance of each image generation method meets user requirements.

[0161] In certain embodiments, the configuration parameters of each tool method in each tool method set parameter may be determined according to the corresponding IBC mode.

[0162] Specifically, when applying each tool method during the encoding process, you need to first set the configuration parameters for each tool method. Different tool method configuration parameters will result in different encoding performance. Therefore, for each IBC mode, you need to set the configuration parameters of each tool method corresponding to the IBC mode, so that the configuration parameters of each tool method match the corresponding IBC mode, which will help improve the encoding performance when using the tool method set corresponding to the IBC mode.

[0163] For example, the ABVR tool can select different vector accuracies based on different IBC modes. Another example is the IBC-PF tool, which can select different types or numbers of filter modes based on different IBC modes. Another example is the IBC-TM tool, which can select different search ranges based on different IBC modes. Another example is the CBVP tool, which can select different classification methods and sorting orders based on different IBC modes.

[0164] Optionally, the configuration parameters of each tool method in the tool method set parameters can be determined according to the corresponding mode and encoding information.

[0165] Specifically, in addition to determining the configuration parameters of each tool method in the corresponding tool method set parameters based on the IBC mode, the configuration parameters of each tool method can also be adjusted based on the coding information. The coding information is the information required for encoding, such as the predictive coding mode, block size when dividing blocks, quantization parameters, etc. The coding information can also include the configuration parameters of each tool method.

[0166] For example, ABVR configuration parameters include vector precision. When the block size is greater than a preset threshold, a higher vector precision configuration is used, while when the block size is less than the preset threshold, a lower vector precision configuration is used. This adjusts the ABVR vector precision in the current IBC mode based on the block size during encoding. Another example is that IBC-TM configuration parameters include a search range, which can be positively correlated with the ABVR vector precision. That is, the greater the ABVR vector precision, the larger the search range.

[0167] In some embodiments, to determine the tool set used for encoding during decoding, it is necessary to define the tool set parameters corresponding to each IBC mode in the decoding instruction information. To apply to all encoded images, the tool set parameters can be set in the sequence-level parameter information (such as the sequence header of the video sequence).

[0168] Optionally, the configuration parameters available for each tool method included in the tool method set parameters may also be defined in the sequence-level parameter information (such as the sequence header).

[0169] Optionally, the tool method set parameters include multiple tool method parameters, the values ​​of the tool method parameters are multiple preset parameter values, and the configuration parameters of the tool method correspond to the preset parameter values, such as the preset parameter values ​​and configuration parameters correspond one to one, or one preset parameter value corresponds to multiple configuration parameters.

[0170] In this way, by setting the values ​​of each tool method parameter, the configuration parameters of each tool method are determined when encoding using the tool method set corresponding to the tool method set parameters, thereby achieving accurate configuration of each tool method set parameter, which is conducive to improving encoding performance.

[0171] Optionally, a mapping relationship table between the configuration parameters of various tool methods and the corresponding preset parameter values ​​can be defined in the sequence header or directly set at the encoding and decoding ends. After determining the values ​​of each tool method parameter of the tool method set parameters, the mapping relationship table can be queried to obtain the configuration parameters of each tool method when performing IBC.

[0172] For example, the values ​​of the ABVR tool method parameters include {0, 1}, and the ABVR configuration parameters (such as vector accuracy) include {1 pixel, 4 pixels}. When the preset parameter values ​​and the configuration parameters correspond one to one, the mapping relationship between the preset parameter values ​​of the ABVR tool method parameters and the ABVR configuration parameters is shown in Table 4 below:

[0173] Table 4

[0174] Combining Table 3 and Table 4, that is to say, when the IBC mode is sub-mode 1, the ABVR tool method parameter value is 0, that is, the ABVR configuration parameter corresponding to sub-mode 1 is 1 pixel; when the IBC mode is sub-mode 2, the ABVR tool method parameter value is 1, that is, the ABVR configuration parameter corresponding to sub-mode 2 is 4 pixels.

[0175] When a preset parameter value corresponds to one or more configuration parameters, the mapping relationship between the preset parameter value of the ABVR tool method parameter and the ABVR configuration parameters is shown in Table 5 below:

[0176] Table 5

[0177] Combining Table 3 and Table 5, that is to say, when the IBC mode is sub-mode 1, the ABVR tool method parameter value is 0, that is, the ABVR configuration parameter corresponding to sub-mode 1 is 1 pixel; when the IBC mode is sub-mode 2, the ABVR tool method parameter value is 1, that is, the ABVR configuration parameters corresponding to sub-mode 2 are 1 pixel and 4 pixels.

[0178] In some embodiments, the intra-block copy parameter includes at least one of a flag parameter and a mode parameter. The flag parameter is used to indicate whether the intra-block copy is allowed. The mode parameter is used to indicate the mode of the intra-block copy. The mode parameter matches the image generation method of the video data.

[0179] Specifically, as described above, the tool set parameters corresponding to each IBC mode are defined in the sequence header, but the specific IBC mode used when encoding the video sequence has not yet been defined. Therefore, the IBC parameters may also include at least one of a flag parameter and a mode parameter. The flag parameter determines whether the video sequence allows IBC, while the mode parameter determines the specific IBC mode used when encoding the video sequence. In other words, the mode parameters match the image generation method of the video data. Encoding video data based on different image generation methods using tool sets corresponding to different IBC modes can improve encoding performance.

[0180] During decoding, after determining that the video sequence has undergone IBC by parsing the flag parameters, the IBC mode used in encoding the video sequence can be determined by parsing the mode parameters. The tool method set parameters corresponding to the IBC mode are queried in the sequence header to implement decoding instructions for IBC, allowing the decoding end to decode correctly, thereby improving encoding and decoding performance.

[0181] In some embodiments, the value of the flag parameter can be a first preset value (such as 0) or a second preset value (such as 1), and the first preset value and the second preset value are different. When the flag parameter is the first preset value, intra-frame block copying is not performed (i.e., the IBC mode is not allowed to be used); when the flag parameter is the second preset value, intra-frame block copying is performed (i.e., the IBC mode is not allowed to be used).

[0182] Optionally, P-pictures and B-pictures do not allow the IBC mode, i.e., the flag parameter value of the IBC parameter in the picture header and / or sequence header corresponding to the P-pictures and B-pictures is set to a first preset value. Since the IBC effect of P-pictures and B-pictures is poor, the IBC mode is not allowed for P-pictures and B-pictures.

[0183] Optionally, when the flag parameter is the first preset value, the mode parameter is not encoded (e.g., the mode parameter is not set) and decoded, thereby reducing the amount of encoding and decoding calculations. As shown in Table 6 below, when the flag parameter of the sequence header is the first preset value, the mode parameter in the sequence header is not encoded and decoded.

[0184] In some embodiments, the value of the mode parameter includes multiple preset values, and the multiple preset values ​​are different from each other. When the mode parameter has different preset values, the intra-frame block copy mode is different, and the intra-frame block copy mode corresponds to the preset value one by one.

[0185] Specifically, the number of preset values ​​is the same as the number of preset IBC modes, i.e., there is a one-to-one correspondence between IBC modes and preset values. For example, if the multiple preset values ​​include 0 and 1, and the IBC mode includes sub-mode 1 and sub-mode 2, a preset value of 0 corresponds to IBC sub-mode 1, and a preset value of 1 corresponds to IBC sub-mode 2.

[0186] In this way, the mode parameter is encoded to indicate the target IBC mode (such as sub-mode 1 or sub-mode 2) used during encoding.

[0187] Optionally, the image generation method corresponding to the video code stream includes a first generation method and a second generation method, the first generation method and the second generation method are different, the value of the mode parameter matches the image generation method, the value of the mode parameter includes a first preset value (such as 0) or a second preset value (such as 1), the first preset value matches the first generation method, and the second preset value matches the second generation method.

[0188] In this way, the image generation method, the value of the mode parameter, and the IBC mode can achieve a one-to-one correspondence. The video data of different image generation methods are encoded by the corresponding IBC mode and decoded and indicated by the corresponding mode parameter value.

[0189] Optionally, the first generation method is one of camera photography and computer generation, and the second generation method is the other of the camera photography and computer generation.

[0190] For example, the flag parameter seq_ibc_flag and the mode parameter seq_ibc_mode are defined in the sequence header as shown in Table 6 below:

[0191] Table 6

[0192] The bit stream corresponding to Table 6 is described as follows:

[0193] Sequence header block copy intra prediction flag seq_ibc_flag, a binary variable. A value of '1' indicates that block copy intra prediction (i.e., IBC) can be used; a value of '0' indicates that block copy intra prediction should not be used. The value of SeqIbcFlag is equal to the value of seq_ibc_flag. If seq_ibc_flag is not present in the bitstream, the value of SeqIbcFlag is 0.

[0194] Sequence header block copy intra prediction mode flag seq_ibc_mode, an N-bit unsigned integer (N is determined by the total number of modes. If only two modes are allowed, then N = log2(2) = 1), indicating the use of block copy intra prediction. The value of SeqIbcMode is equal to the value of seq_ibc_mode. If seq_ibc_mode is not present in the bitstream, the value of SeqIbcMode is 0.

[0195] For another example, the flag parameter pic_ibc_flag and the mode parameter pic_ibc_mode are defined in the picture header, as shown in Table 7 below:

[0196] Table 7

[0197] The bit stream corresponding to Table 7 is described as follows:

[0198] In the following, n=ceil(log2(total_mode_num)), where total_mode_num is the total number of modes allowed, and this value may be preset;

[0199] Picture header block copy intra prediction flag pic_ibc_flag, a binary variable. A value of '1' indicates that block copy intra prediction can be used; a value of '0' indicates that block copy intra prediction should not be used. The value of PicIbcFlag is equal to the value of pic_ibc_flag. If pic_ibc_flag is not present in the bitstream, the value of PicIbcFlag is 0.

[0200] The picture header block copies the intra prediction mode flag pic_ibc_mode, an N-bit unsigned integer (N is determined by the total number of modes. If only two submodes are allowed, then N = log2(2) = 1), indicating the submode type to be used. The value of PicIbcMode is equal to the value of pic_ibc_mode. If pic_ibc_mode is not present in the bitstream, the value of PicIbcMode is 0.

[0201] For another example, the flag parameter slice_ibc_flag and the mode parameter slice_ibc_mode are defined in the slice header, as shown in Table 8 below:

[0202] Table 8

[0203] The bit stream corresponding to Table 8 is described as follows:

[0204] Slice header block copy intra prediction flag slice_ibc_flag, a binary variable. A value of '1' indicates that block copy intra prediction can be used; a value of '0' indicates that block copy intra prediction should not be used. The value of sliceIbcFlag is equal to the value of slice_ibc_flag. If slice_ibc_flag is not present in the bitstream, the value of sliceIbcFlag is 0.

[0205] The slice header block copies the intra prediction mode flag slice_ibc_mode, an N-bit unsigned integer (N is determined by the total number of modes. If only two submodes are allowed, then N = log2(2) = 1), indicating the submode type to use. The value of SliceIbcMode is equal to the value of slice_ibc_mode. If slice_ibc_mode is not present in the bitstream, the value of SliceIbcMode is 0.

[0206] Optionally, one preset value may correspond to multiple IBC modes, so that during encoding, one or more IBC modes among the multiple available IBC modes may be used for encoding according to actual needs.

[0207] For example, the IBC mode includes sub-mode 1, sub-mode 2, and sub-mode 3. The flag parameter seq_ibc_flag and the mode parameter seq_ibc_mode are defined in the sequence header, as shown in Table 9 below:

[0208] Table 9

[0209] In some embodiments, the priorities of sequence-level parameter information, image-level parameter information, slice-level parameter information, and block-level parameter information decrease in sequence. When the flag parameter in the parameter information of the first priority is a first preset value, at least one of the mode parameter in the parameter information of the first priority and the intra-frame block copy parameter in the parameter information of the second priority is not encoded or decoded, and the second priority is lower than the first priority.

[0210] Specifically, after determining that intra-frame block copying is not allowed based on the high-priority (i.e., first-priority) flag parameter, at least one of the high-priority mode parameter, the low-priority (i.e., second-priority) flag parameter, and the low-priority mode parameter can be selectively not encoded or decoded (i.e., at least one of encoding and decoding is not performed) to avoid coding redundancy and reduce the amount of encoding and decoding calculations.

[0211] For example, after determining that intra-frame block copy is not allowed based on the high-priority flag parameter, the high-priority mode parameter is not encoded or decoded; or, after determining that intra-frame block copy is not allowed based on the high-priority flag parameter, the low-priority mode parameter is not encoded or decoded; or, after determining that intra-frame block copy is not allowed based on the high-priority flag parameter, the low-priority flag parameter is not encoded or decoded.

[0212] For another example, after it is determined based on the high-priority flag parameter that intra-frame block copy is not allowed, the high-priority mode parameter is not encoded or decoded; or, after it is determined based on the high-priority flag parameter that intra-frame block copy is not allowed, the low-priority mode parameter is not encoded or decoded, and after it is determined based on the high-priority flag parameter that intra-frame block copy is not allowed, the low-priority flag parameter is not encoded or decoded; or, after it is determined based on the high-priority flag parameter that intra-frame block copy is not allowed, the high-priority mode parameter and the low-priority mode parameter are not encoded or decoded; or, after it is determined based on the high-priority flag parameter that intra-frame block copy is not allowed, the low-priority mode parameter and the low-priority flag parameter are not encoded or decoded; or, after it is determined based on the high-priority flag parameter that intra-frame block copy is not allowed, the high-priority mode parameter and the low-priority flag parameter are not encoded or decoded.

[0213] For another example, after it is determined based on the high-priority flag parameter that intra block copy is not allowed, the high-priority mode parameter, the low-priority mode parameter, and the low-priority flag parameter are not encoded or decoded.

[0214] The first priority parameter information may be any one of sequence level parameter information, picture level parameter information, and slice level parameter information. The second priority parameter information may be any one of picture level parameter information, slice level parameter information, and block level parameter information.

[0215] That is to say, when the flag parameter in the sequence-level parameter information is the first preset value, the sequence-level mode parameters, the picture-level IBC parameters, the slice-level IBC parameters, and the block-level IBC parameters are not decoded; when the flag parameter in the picture-level parameter information is the first preset value, the picture-level mode parameters, the slice-level IBC parameters, and the block-level IBC parameters are not decoded; when the flag parameter in the slice-level parameter information is the first preset value, the slice-level mode parameters and the block-level IBC parameters are not decoded.

[0216] In an example, referring to Table 10 below, when the flag parameter in the picture header is the first preset value, the mode parameter in the picture header and the IBC parameter in the slice header are not decoded.

[0217] Table 10

[0218] Optionally, when the flag parameter in the parameter information of the first priority is the second preset value, it indicates that IBC is allowed. If the mode parameter does not exist in the parameter information of the first priority, it is necessary to determine the mode parameter of IBC in the parameter information of the next priority, so as to determine the IBC mode of at least one of the coded images, slices and blocks following the next priority.

[0219] Optionally, when the flag parameters of the first priority and the second priority are both the second preset values, if the mode parameters in the parameter information of the first priority are inconsistent with the mode parameters of the second priority, encoding is performed in the IBC mode corresponding to the mode parameters of the second priority.

[0220] Specifically, please refer to Table 11 below. IBC is allowed in both the sequence header and the image header (that is, the flag parameters of the sequence header and the image header are both 1). If the mode parameters of the sequence header and the mode parameters of the image header are inconsistent, such as the mode parameters of the sequence header and the mode parameters of the image header are 0 and 1 respectively, the coded image following the image header is encoded according to the IBC mode corresponding to the mode parameter 1 (such as sub-mode 2), thereby realizing the IBC mode setting at the image level.

[0221] Table 11

[0222] Please refer to Table 12 below. IBC is allowed in both the picture header and the slice header (that is, the flag parameters of the picture header and the slice header are both 1). If the mode parameters of the picture header and the slice header are inconsistent, such as the mode parameters of the picture header and the slice header are 1 and 0 respectively, the picture slice following the slice header is encoded according to the IBC mode corresponding to the mode parameter 0 (such as sub-mode 1), thereby realizing the IBC mode setting at the slice level.

[0223] Table 12

[0224] In some embodiments, the intra block copy parameter includes a flag parameter, which is used to indicate whether the intra block copy is allowed and the mode of the intra block copy. The flag parameter matches the image generation method of the video data.

[0225] Specifically, in order to reduce the amount of encoding and decoding calculations, it is not necessary to set the mode parameters separately, but only the flag parameters are set, and the flag parameters are used to indicate whether intra-block copying is allowed and the mode of intra-block copying.

[0226] Optionally, whether IBC is allowed is determined by taking different values ​​of a flag parameter; for example, when the value of the flag parameter is a first preset value (such as 0), IBC is determined not to be allowed, and when the value of the flag parameter is a value other than the first preset value, IBC is determined to be allowed.

[0227] Optionally, P-pictures and B-pictures do not allow IBC mode, i.e., the flag parameter value of the IBC parameter in the picture header and / or sequence header corresponding to the P-pictures and B-pictures is set to a first preset value. Since IBC performance is poor for P-pictures and B-pictures, IBC mode is not allowed for P-pictures and B-pictures.

[0228] Optionally, the specific IBC mode is determined by having the flag parameter take a different value than the first preset value, such as by having multiple second preset values ​​correspond to respective IBC modes, such as a one-to-one correspondence between the IBC modes and the second preset values.

[0229] That is, when the flag parameter takes a different second preset value, it is determined that IBC is allowed, and the IBC mode is different.

[0230] Optionally, the image generation mode corresponding to the video stream includes a first generation mode and a second generation mode, the first generation mode and the second generation mode are different, the value of the flag parameter matches the image generation mode corresponding to the video stream, and the value of the mode parameter includes two second preset values, the two second preset values ​​respectively matching the first generation mode and the second generation mode. For example, the two second preset values ​​are 1 and 2, respectively, 1 corresponds to the first generation mode, and 2 corresponds to the second generation mode.

[0231] In this way, the image generation method, the value of the flag parameter (specifically the second preset value), and the IBC mode can achieve a one-to-one correspondence. The video data of different image generation methods are encoded through the corresponding IBC mode and decoded and indicated through the corresponding second preset value.

[0232] Please refer to Table 13 below. Taking the IBC mode including sub-mode 1 and sub-mode 2 as an example, the flag parameter seq_ibc_flag in the IBC parameter defined in the sequence header is as follows.

[0233] Table 13

[0234] The bit stream of Table 13 is described as follows:

[0235] Sequence header block copy mode flag seq_ibc_flag, an N-bit unsigned integer (N is determined by the total number of modes. If only two sub-modes are allowed, then N = log2(2) = 1). A value of '0' indicates that block copy intra prediction should not be used. A value greater than '0' enables block copy intra prediction mode and indicates the sub-mode type of block copy intra prediction mode. The value of SeqIbcFlag is equal to the value of seq_ibc_flag. If seq_ibc_flag is not present in the bitstream, the value of SeqIbcFlag is 0.

[0236] Please refer to Table 14 below for the flag parameter pic_ibc_flag in the IBC parameters defined in the picture header.

[0237] Table 14

[0238] The bit stream of Table 14 is described as follows:

[0239] Picture header block copy mode flag pic_ibc_flag, an N-bit unsigned integer (N is determined by the total number of modes. If only two sub-modes are allowed, then N = log2(2) = 1). A value of '0' indicates that block copy intra prediction should not be used. A value greater than '0' allows block copy intra prediction mode and indicates the sub-mode type of block copy intra prediction mode. The value of PicIbcFlag is equal to the value of pic_ibc_flag. If pic_ibc_flag is not present in the bitstream, the value of PicIbcFlag is 0.

[0240] Please refer to Table 15 below for the flag parameter slice_ibc_flag in the IBC parameters defined in the slice header.

[0241] Table 15

[0242] The bit stream of Table 15 is described as follows:

[0243] Slice header block copy mode flag slice_ibc_flag, an N-bit unsigned integer (N is determined by the total number of modes. If only two sub-modes are allowed, then N = log2(2) = 1). A value of '0' indicates that block copy intra prediction should not be used. A value greater than '0' allows block copy intra prediction mode and indicates the sub-mode type of block copy intra prediction mode. The value of SliceIbcFlag is equal to the value of slice_ibc_flag. If slice_ibc_flag is not present in the bitstream, the value of SliceIbcFlag is 0.

[0244] Optionally, a second preset value may also correspond to multiple IBC modes, so that during encoding, one or more IBC modes among the multiple available IBC modes are used for encoding according to actual needs.

[0245] Please refer to Table 16 below. Taking the IBC mode including sub-mode 1, sub-mode 2 and sub-mode 3 as an example, the flag parameter seq_ibc_flag in the IBC parameter defined in the sequence header is as follows.

[0246] Table 16

[0247] Table 17 below shows a specific embodiment of a high-level syntax, which allows two IBC sub-modes (sub-mode 1 and sub-mode 2).

[0248] Table 17

[0249] The sequence header bit stream is described as follows:

[0250] Sequence header block copy intra prediction flag seq_ibc_flag

[0251] This variable is a binary variable. A value of '1' indicates that block copy intra prediction can be used; a value of '0' indicates that block copy intra prediction should not be used. The value of SeqIbcFlag is equal to the value of seq_ibc_flag. If seq_ibc_flag is not present in the bitstream, the value of SeqIbcFlag is 0.

[0252] The image header bitstream is described as follows:

[0253] Picture header block copy intra prediction flag pic_ibc_flag, a binary variable. A value of '1' indicates that block copy intra prediction can be used; a value of '0' indicates that block copy intra prediction should not be used. The value of PicIbcFlag is equal to the value of pic_ibc_flag. If pic_ibc_flag is not present in the bitstream, the value of PicIbcFlag is 0.

[0254] The picture header block copies the intra prediction mode flag pic_ibc_mode, an N-bit unsigned integer (N is determined by the total number of modes. If only two submodes are allowed, then N = log2(2) = 1), indicating the submode type to be used. The value of PicIbcMode is equal to the value of pic_ibc_mode. If pic_ibc_mode is not present in the bitstream, the value of PicIbcMode is 0.

[0255] And if this instance controls the ABVR tool, there is the following bitstream description at the code unit level:

[0256] Adaptive block vector precision index abvr_index

[0257] Used to determine the block vector precision of the coding unit. The value of AbvrIndex is equal to abvr_index. If the value of AbvrIndex is '0', it indicates that the block vector precision is 1 pel. If the value of AbvrIndex is '1', it indicates that the block vector precision is 4 pel. If abvr_index does not exist in the bitstream, the value of AbvrIndex is 0.

[0258] And if the instance controls IBC-related filtering tools, the following bitstream description is available at the coding unit level:

[0259] The block copy intra prediction filter flag, ibc_filter_flag, is used to determine whether block copy intra prediction filtering is used. The value of ibcFilterFlag is equal to ibc_filter_flag. If the value of ibcFilterFlag is '0', block copy intra prediction filtering is not used. If the value of ibcFilterFlag is '1', block copy intra prediction filtering is used. If ibc_filter_flag is not present in the bitstream, the value of ibcFilterFlag is 0.

[0260] According to the method described in the above embodiment, the embodiment of the present application further provides a video encoding method. Please refer to Figure 8, which is a flow chart of the video decoding method provided by the embodiment of the present application, specifically including:

[0261] Step 021: Obtain video data;

[0262] Step 022: Encode and compress the video data to obtain a video stream. The decoding indication information of the video stream includes an intra-block copy parameter. The intra-block copy parameter is used to provide a decoding indication for an intra-block copy mode.

[0263] It should be pointed out that the video encoding process and the video decoding process are reversible, so the syntax definitions involved in the video encoding method provided in the embodiment of the present application can be referred to the embodiment of the above-mentioned video decoding method, and will not be repeated here.

[0264] Based on the method described in the above embodiment, the present application also provides a video decoding device for performing the steps in the above video decoding method. Please refer to Figure 9, which is a schematic diagram of the structure of the video decoding device 300 provided in the embodiment of the present application. The video decoding device 300 includes a first acquisition module 301 and an encoding module 302, wherein:

[0265] A first acquisition module 301 is configured to acquire a video stream, the video stream including decoding indication information, the decoding indication information including an intra-block copy parameter, and the intra-block copy parameter is used to indicate a decoding mode of the intra-block copy;

[0266] The decoding module 302 is configured to decode the video stream according to the decoding instruction information.

[0267] It should be noted that the specific details of each module unit in the above-mentioned video decoding device 300 have been described in detail in the embodiment of the above-mentioned video encoding method, and will not be repeated here.

[0268] Based on the method described in the above embodiment, the present application also provides a video encoding device for performing the steps in the above video encoding method. Please refer to Figure 10, which is a schematic diagram of the structure of a video encoding device 400 provided in the present application. The video encoding device 400 includes a second acquisition module 401 and an encoding module 402, wherein:

[0269] The second acquisition module 401 is used to acquire video data;

[0270] The encoding module 402 is configured to encode and compress the video data to obtain a video code stream. The decoding indication information of the video code stream includes an intra-block copy parameter. The intra-block copy parameter is used to provide a decoding indication for an intra-block copy mode.

[0271] It should be noted that the specific details of each module unit in the above-mentioned video decoding device 400 have been described in detail in the embodiment of the above-mentioned video decoding method, and will not be repeated here.

[0272] In some embodiments, the video encoding device and the video decoding device in the embodiments of the present application may be an electronic device or a component in an electronic device, such as an integrated circuit or a chip. The electronic device may be a terminal or other device other than a terminal. For example, the electronic device may be a mobile phone, a tablet computer, a laptop computer, a PDA, an in-vehicle electronic device, a mobile internet device (MID), an augmented reality (AR) / virtual reality (VR) device, a robot, a wearable device, an ultra-mobile personal computer (UMPC), a netbook or a personal digital assistant (PDA), etc. It may also be a server, a network attached storage (NAS), a personal computer (PC), a television (TV), a teller machine or a self-service machine, etc., and the embodiments of the present application are not specifically limited.

[0273] In some embodiments, as shown in Figure 11, an embodiment of the present application also provides an electronic device 500, including a processor 501, a memory 502, and a computer program stored on the memory 502 and runnable on the processor 501. When the program is executed by the processor 501, the various processes of the above-mentioned video decoding method and video encoding method embodiments are implemented, and the same technical effects can be achieved. To avoid repetition, they will not be repeated here.

[0274] It should be noted that the electronic devices in the embodiments of the present application include the above-mentioned mobile electronic devices and non-mobile electronic devices.

[0275] FIG12 is a schematic diagram of the hardware structure of an electronic device implementing an embodiment of the present application.

[0276] The electronic device 600 includes but is not limited to: a radio frequency unit 601, a network module 602, an audio output unit 603, an input unit 604, a sensor 605, a display unit 606, a user input unit 607, an interface unit 608, a memory 609 and a processor 610.

[0277] Those skilled in the art will appreciate that the electronic device 600 may further include a power source (e.g., a battery) to power various components. The power source may be logically connected to the processor 610 via a power management system, thereby enabling the power management system to manage charging, discharging, and power consumption. The electronic device structure shown in FIG12 does not limit the electronic device. The electronic device may include more or fewer components than shown, or may combine certain components, or have different component arrangements, which will not be described in detail here.

[0278] It should be understood that in an embodiment of the present application, the input unit 604 may include a graphics processing unit (GPU) 6041 and a microphone 6042, and the graphics processor 6041 processes the image data of a static picture or video obtained by an image capture device (such as a camera) in a video capture mode or an image capture mode. The display unit 606 may include a display panel 6061, and the display panel 6061 may be configured in the form of a liquid crystal display, an organic light emitting diode, etc. The user input unit 607 includes a touch panel 6071 and at least one of other input devices 6072. The touch panel 6071 is also called a touch screen. The touch panel 6071 may include two parts: a touch detection device and a touch controller. Other input devices 6072 may include, but are not limited to, a physical keyboard, function keys (such as volume control keys, switch keys, etc.), a trackball, a mouse, and a joystick, which will not be repeated here.

[0279] The memory 609 can be used to store software programs and various data. The memory 609 may mainly include a first storage area for storing programs or instructions and a second storage area for storing data, wherein the first storage area may store an operating system, applications or instructions required for at least one function (such as a sound playback function, an image playback function, etc.). In addition, the memory 609 may include a volatile memory or a non-volatile memory, or the memory 609 may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), a static random access memory (SRAM), a dynamic random access memory (DRAM), a synchronous dynamic random access memory (SDRAM), a double data rate synchronous dynamic random access memory (DDRSDRAM), an enhanced synchronous dynamic random access memory (ESDRAM), a synchronous link dynamic random access memory (SLDRAM), and a direct memory bus random access memory (DRRAM). The memory 609 in the embodiment of the present application includes but is not limited to these and any other suitable types of memory.

[0280] Processor 610 may include one or more processing units. Processor 610 integrates an application processor and a modem processor. The application processor primarily handles operations related to the operating system, user interface, and application programs, while the modem processor primarily processes wireless communication signals, such as a baseband processor. It is understood that the modem processor may not be integrated into processor 610.

[0281] An embodiment of the present application also provides a non-transitory computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the various processes of the embodiments of the above-mentioned video decoding method and video encoding method are implemented, and the same technical effects can be achieved. To avoid repetition, they are not described here.

[0282] The processor is the processor in the electronic device in the above embodiment. The computer readable storage medium can be a computer read-only memory ROM, random access memory RAM, a magnetic disk or an optical disk.

[0283] The present application also provides a computer program product, including a computer program, which, when executed by a processor, implements the aforementioned video decoding method and video encoding method. The processor may be a processor in the electronic device described in the aforementioned embodiments. When executed by the processor, the computer program implements the various processes of the aforementioned embodiments of the video decoding method and video encoding method, achieving the same technical effects. To avoid repetition, these processes are not described here.

[0284] Although the embodiments of the present application have been shown and described, those skilled in the art will appreciate that various changes, modifications, substitutions, and variations may be made to the embodiments without departing from the principles and intent of the present application, and that the scope of the present application is defined by the claims and their equivalents.

Claims

1. A video decoding method, characterized in that: include: Acquire a video code stream, wherein the video code stream includes decoding indication information, wherein the decoding indication information includes an intra-frame block copy parameter, and the intra-frame block copy parameter is used to perform decoding indication on an intra-frame block copy mode; The video code stream is decoded according to the decoding indication information.

2. The method according to claim 1, characterized in that The intra-frame block copy mode includes a first sub-mode and a second sub-mode, and the decoding indication information includes a video sequence; the intra-frame block copy parameters corresponding to the first sub-mode are set to at least one of the parameter information at the sequence level, the parameter information at the image level, the parameter information at the slice level, and the parameter information at the block level of the video sequence; the intra-frame block copy parameters corresponding to the second sub-mode are set to at least one of the parameter information at the sequence level, the parameter information at the image level, the parameter information at the slice level, and the parameter information at the block level of the video sequence.

3. The method according to claim 2, characterized in that The intra-frame block copy parameters corresponding to the first sub-mode are set in the parameter information at the image level, and the intra-frame block copy parameters corresponding to the second sub-mode are set in the parameter information at the image level; or, the intra-frame block copy parameters corresponding to the first sub-mode are set in the parameter information at the sequence level, and the intra-frame block copy parameters corresponding to the second sub-mode are set in the parameter information at the image level; or, the intra-frame block copy parameters corresponding to the first sub-mode are set in the parameter information at the image level, and the intra-frame block copy parameters corresponding to the second sub-mode are set in the parameter information at the sequence level.

4. The method according to any one of claims 1 to 3, characterized in that: The intra-frame block copy mode matches the image generation method corresponding to the video code stream.

5. The method according to any one of claims 1 to 4, characterized in that: The intra-frame block copy parameter includes at least one of a flag parameter and a mode parameter, the flag parameter is used to characterize whether the intra-frame block copy is allowed, and the mode parameter is used to characterize the mode of the intra-frame block copy. The value of the flag parameter includes a first preset value or a second preset value, the first preset value and the second preset value are different. When the flag parameter is the first preset value, the intra-frame block copy is not allowed, and when the flag parameter is the second preset value, the intra-frame block copy is allowed.

6. The method according to claim 5, characterized in that The priorities of the parameter information at the sequence level, the parameter information at the image level, the parameter information at the slice level and the parameter information at the block level decrease in sequence. When the flag parameter in the parameter information of the first priority level is the first preset value, at least one of the mode parameter in the parameter information of the first priority level and the intra-frame block copy parameter in the parameter information of the second priority level is not encoded or decoded, and the second priority level is lower than the first priority level.

7. The method according to claim 5, characterized in that The value of the mode parameter includes multiple preset values, and the multiple preset values ​​are different from each other. When the mode parameter is a different preset value, the intra-frame block copy mode is different, and each preset value corresponds to at least one intra-frame block copy mode.

8. The method according to claim 5, characterized in that The image generation method corresponding to the video code stream includes a first generation method and a second generation method, the first generation method and the second generation method are different, the value of the mode parameter matches the image generation method, the value of the mode parameter includes a first preset value or a second preset value, the first preset value matches the first generation method, and the second preset value matches the second generation method.

9. The method according to any one of claims 1 to 4, characterized in that: The intra-frame block copy parameter includes a flag parameter, the value of the flag parameter includes a first preset value and a plurality of second preset values, and when the flag parameter is the first preset value, the intra-frame block copy is not performed; When the flag parameter is the second preset value, intra-frame block copying is performed, and when the flag parameter is different second preset values, the intra-frame block copying modes are different, and each of the second preset values ​​corresponds to at least one of the intra-frame block copying modes.

10. The method according to claim 9, characterized in that The image generation method corresponding to the video code stream includes a first generation method and a second generation method, the first generation method and the second generation method are different, the value of the flag parameter matches the image generation method corresponding to the video code stream, and the value of the mode parameter includes two second preset values, and the two second preset values ​​match the first generation method and the second generation method respectively.

11. The method according to claim 8 or 10, characterized in that: The first generation method is one of camera photography and computer generation, and the second generation method is the other of camera photography and computer generation.

12. The method according to claim 2, characterized in that: The method for performing intra-frame block copying includes multiple preset tool methods, the intra-frame block copy parameters also include multiple tool method set parameters, the tool method set parameters include at least one of the tool methods, the tool method set parameters are set in the parameter information at the sequence level, and each sub-mode of the intra-frame block copy is used to indicate the tool method used when encoding the video code stream, and each sub-mode of the intra-frame block copy has a corresponding tool method set parameter.

13. The method according to claim 12, characterized in that The tool method includes at least one of an adaptive motion vector resolution method, an adaptive block vector resolution method, a category-based block vector prediction method, a block copy intra-frame prediction filtering method, an intra-frame block copy mode method with sub-pixel accuracy, a mirror block copy intra-frame prediction mode method, a block copy intra-frame prediction mode method based on reconstructed value flipping, an inter-frame prediction correction method, a block copy intra-frame prediction method with local illumination compensation, an intra-frame block copy merging method with block vector residual, an intra-frame block copy and intra-frame prediction merging mode method, an intra-frame block copy mode with geometric partitioning, an intra-frame block copy mode method with template matching, an intra-frame block copy motion vector prediction merging method, and a bidirectionally predicted intra-frame block copy mode method.

14. The method according to claim 12, characterized in that The tool method set parameters include multiple tool method parameters, and the values ​​of the tool method parameters include multiple preset parameter values, and the preset parameter values ​​correspond to the configuration parameters of the tool method.

15. The method according to claim 14, characterized in that The configuration parameters of each tool method in the tool method set parameters are determined according to the corresponding mode; or, the configuration parameters of each tool method in the tool method set parameters are determined according to the corresponding mode and encoding information.

16. The method according to any one of claims 5 to 8, characterized in that: When the flag parameters in the parameter information of the first priority and the second priority are both second preset values, if the mode parameters in the parameter information of the first priority are inconsistent with the mode parameters in the parameter information of the second priority, decoding is performed with the mode parameters corresponding to the mode parameters of the second priority.

17. The method according to claim 5 or 9, characterized in that: The image types of the image frames of the video code stream include a first type, a second type and a third type. The first type of image is a completely encoded image. The second type of image is an image generated by referring to a previous image of the first type and only includes a difference portion of the encoding. The third type of image is an image generated by referring to the encoding of the previous and next images. The first type of image and the second type of image do not perform intra-frame block copying.

18. A video encoding method, characterized in that: include: Get video data; The video data is encoded and compressed to obtain a video code stream, wherein the decoding indication information of the video code stream includes an intra-frame block copy parameter, and the intra-frame block copy parameter is used to perform decoding indication on an intra-frame block copy mode.

19. A video decoding device, characterized in that: include: A first acquisition module is used to acquire a video code stream, wherein the video code stream includes decoding indication information, and the decoding indication information includes an intra-frame block copy parameter, and the intra-frame block copy parameter is used to perform decoding indication on an intra-frame block copy mode; A decoding module is used to decode the video code stream according to the decoding indication information.

20. A video encoding device, characterized in that: include: A second acquisition module is used to acquire video data; The encoding module is used to encode and compress the video data to obtain a video code stream, wherein the decoding indication information of the video code stream includes an intra-frame block copy parameter, and the intra-frame block copy parameter is used to decode and indicate an intra-frame block copy mode.

21. A non-transitory computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the video decoding method according to any one of claims 1 to 17 or the video encoding method according to claim 18 is implemented.

22. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the video decoding method according to any one of claims 1 to 17 or the video encoding method according to claim 18 is implemented.

23. A computer program product, characterized in that The computer program product comprises a computer program, and when the computer program is executed by a processor, the video decoding method according to any one of claims 1 to 17 or the video encoding method according to claim 18 is implemented.

Citation Information

Patent Citations

  • Method and apparatus for video coding

    CN111726622A

  • Method and apparatus for video coding

    CN113366849A

  • Method and system of video coding with efficient intra block copying

    US20210321093A1

  • Method and apparatus for intra block copy mode coding with search range switching

    US20230093129A1