WO2023116173A1 - 一种数据处理方法、装置、计算机设备以及存储介质 - Google Patents
一种数据处理方法、装置、计算机设备以及存储介质 Download PDFInfo
- Publication number
- WO2023116173A1 WO2023116173A1 PCT/CN2022/126828 CN2022126828W WO2023116173A1 WO 2023116173 A1 WO2023116173 A1 WO 2023116173A1 CN 2022126828 W CN2022126828 W CN 2022126828W WO 2023116173 A1 WO2023116173 A1 WO 2023116173A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- frame
- video
- model
- sample
- filtered
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/117—Filters, e.g. for pre-processing or post-processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/86—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Definitions
- the present application relates to the field of computer technology, and in particular to a data processing method, device, computer equipment, computer-readable storage medium and computer program product.
- video encoding and compression algorithms all adopt a lossy compression method, that is, there is a certain distortion between the image of the encoded compressed video and the image of the original video, and, at a higher compression rate Under the circumstances, the distortion and distortion of the image are even more serious.
- a loop filter has been introduced in the existing video coding standards to filter the image of the compressed video, thereby reducing the degree of distortion, so that the image quality of the compressed video can be infinitely close to the image quality of the original video.
- the traditional loop filter mainly designs filter coefficients manually, it relies too much on manual experience, and the accuracy rate is not high, and the degree of distortion cannot be well reduced.
- Embodiments of the present application provide a data processing method, device, computer equipment, computer-readable storage medium, and computer program product, which can improve filtering performance, reduce image distortion of encoded video, and improve image quality of encoded video.
- An embodiment of the present application provides a data processing method on the one hand, including:
- the sample video data is input to the video coding application including the first filtering model that is deployed and updated for the kth time, and the first training data is generated through the updated video coding application and the sample video data deployed for the kth time;
- the first training data includes as training The sample original video frame of the label, and the first sample to be filtered and reconstructed frame corresponding to the sample original video frame;
- the sample original video frame is a video frame in the sample video data;
- k is a positive integer;
- the updated video coding application deployed at the k+1th time satisfies the filtering quality requirements
- the updated video coding application deployed at the k+1th time is determined as the target video coding application for performing video coding processing on the video data.
- the embodiment of the present application provides another data processing method, including:
- the target video coding application refers to the k+1th time that meets the filtering quality requirements Deploy an updated video coding application;
- the k+1th deployment of the updated video coding application includes a second filtering model in a state of training convergence; the second filtering model is based on the original video frame of the sample as the training label in the first training data, and the sample
- the first sample to be filtered and reconstructed frame corresponding to the original video frame is obtained by training the filter model to be trained in the video coding application including the first filter model that is deployed and updated for the kth time;
- the first training data is obtained by passing the kth time Deploy an updated video coding application and generate sample video data;
- the sample original video frame is a video frame in the sample video data;
- k is a positive integer;
- the video compression code stream is sent to the receiving device, and the video compression code stream is used for decoding by the receiving device.
- An embodiment of the present application provides a data processing device on the one hand, including:
- a training data generation module for inputting sample video data to the video coding application including the first filter model updated by the kth deployment
- the training data generation module is also used to generate the first training data by deploying the updated video coding application and the sample video data for the kth time; the first training data includes the sample original video frame as the training label, and the sample original video frame corresponding to The first sample frame to be filtered and reconstructed; the original video frame of the sample is a video frame in the sample video data; k is a positive integer;
- the model training module is used to train the filter model to be trained in the video coding application of the k-th deployment update based on the sample original video frame and the first sample frame to be filtered and reconstructed, so as to obtain the second filter model in a state of training convergence ;
- the application update module is used to update and deploy the second filtering model in the video coding application that is deployed and updated for the kth time, so as to obtain the video coding application that is deployed and updated for the k+1th time;
- a target application determination module configured to determine the updated video coding application deployed at the k+1th time as being used for video coding processing on video data when the updated video coding application deployed at the k+1th time meets the filtering quality requirements The target video encoding application.
- the embodiment of the present application provides another data processing device, including:
- the code stream generation module is used to input the video data into the target video coding application, perform video coding processing on the video data through the target video coding application, and obtain the video compression code stream corresponding to the video data;
- the target video coding application refers to satisfying the filtering quality
- the video coding application of the k+1th deployment update includes the second filtering model in the training convergence state;
- the second filtering model is based on the first training data as the training label
- the sample original video frame of the sample original video frame and the first sample to be filtered and reconstructed frame corresponding to the sample original video frame are obtained by training the filter model to be trained in the video coding application including the first filter model that is deployed and updated for the kth time;
- a training data is generated by deploying an updated video coding application and sample video data for the kth time;
- the sample original video frame is a video frame in the sample video data;
- k is a positive integer;
- the code stream sending module is used to send the video compressed code stream to the receiving device, and the video compressed code stream is used for decoding by the receiving device.
- An embodiment of the present application provides a computer device, including: a processor and a memory;
- the memory stores a computer program, and when the computer program is executed by the processor, the processor executes the method in the embodiment of the present application.
- Embodiments of the present application provide, on the one hand, a computer-readable storage medium.
- the computer-readable storage medium stores a computer program, and the computer program includes program instructions.
- the program instructions are executed by a processor, the method in the embodiment of the present application is executed.
- An aspect of the embodiments of the present application provides a computer program product or computer program, where the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
- the processor of the computer device reads the computer instruction from the computer-readable storage medium, and the processor executes the computer instruction, so that the computer device executes the method provided in one aspect of the embodiments of the present application.
- the video coding application can be iteratively updated, and the training process of the filtering model can be repeated by updating the training data, and the video coding application can be continuously deployed and updated.
- improve the consistency of the training effect and test effect of the filtering model improve the coding efficiency, and improve the filtering quality of the filtering model deployed in the video coding application without relying on manual experience, and reduce the degree of distortion of the encoded video.
- the present application can improve filtering performance, reduce image distortion of encoded video, and improve image quality of encoded video.
- FIG. 1 is a network architecture diagram provided by an embodiment of the present application
- FIG. 2 is a schematic method flow diagram of a data processing method provided in an embodiment of the present application.
- Fig. 3 is a schematic diagram of a coding reference relationship provided by an embodiment of the present application.
- Fig. 4 is a schematic diagram of a coding reference relationship provided by an embodiment of the present application.
- FIG. 5 is a system architecture diagram of an iterative training provided by an embodiment of the present application.
- FIG. 6 is a schematic flow diagram of a training filtering model provided by an embodiment of the present application.
- FIG. 7 is a schematic diagram of a model training scenario provided by an embodiment of the present application.
- FIG. 8 is a schematic diagram of a model training scenario provided by an embodiment of the present application.
- FIG. 9 is a schematic flow diagram of a training filtering model provided by an embodiment of the present application.
- FIG. 10 is a schematic diagram of another model training scenario provided by the embodiment of the present application.
- FIG. 11 is a schematic flow diagram of a data processing method provided in an embodiment of the present application.
- Fig. 12 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
- FIG. 13 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
- FIG. 1 is a schematic structural diagram of a network architecture provided by an embodiment of the present application.
- the network architecture may include a service server 1000 and a cluster of terminal devices.
- the terminal device cluster may include one or more terminal devices, and the number of terminal devices is not limited here.
- the multiple terminal devices may specifically include a terminal device 100a, a terminal device 100b, a terminal device 100c, ..., a terminal device 100n.
- terminal equipment 100a, terminal equipment 100b, terminal equipment 100c, ..., terminal equipment 100n can carry out network connection with above-mentioned business server 1000 respectively, so that each terminal equipment can be connected with business server 1000 through this network. Data interaction.
- the network connection here is not limited to the connection method, it can be directly or indirectly connected through wired communication, or can be directly or indirectly connected through wireless communication, or through other methods, which are not discussed in this embodiment of the present application. limit.
- Each terminal device can be integrated with a target application installed, and when the target application runs in each terminal device, it can perform data interaction with the service server 1000 shown in FIG. 1 above.
- the target application may include an application having a function of displaying text, image, audio, video and other data information.
- the application may include social application, multimedia application (for example, video application), entertainment application (for example, game application), education application, live broadcast application, etc.
- the application of the information function and the video encoding function will not be given examples one by one here.
- the application may be an independent application, or an embedded sub-application integrated in an application (such as a social application, an educational application, and a multimedia application, etc.), which is not limited here.
- one terminal device may be selected from the multiple terminal devices shown in FIG. 1 as the target terminal device.
- the terminal device 100a shown in FIG. 1 may be used as a target terminal device, and a target application having a video encoding function may be integrated in the target terminal device.
- the target terminal device can realize data interaction with the service server 1000 through the service data platform corresponding to the application client.
- the computer equipment with video encoding function in the embodiment of the present application can implement data encoding and data transmission of multimedia data (eg, video data) through cloud technology.
- cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and network in a wide area network or a local area network to realize data calculation, storage, processing, and sharing.
- Cloud technology can be a general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on cloud computing business model applications. It can form a resource pool and be used on demand, which is flexible and convenient. Cloud computing technology will become an important support.
- the background services of technical network systems require a lot of computing and storage resources, such as video websites, picture websites and more portal websites. With the rapid development and application of the Internet industry, each item may have its own identification mark in the future, which needs to be transmitted to the background system for logical processing. Data of different levels will be processed separately, and all kinds of industry data need to be powerful.
- the system backing support can only be realized through cloud computing.
- the data processing method provided in the embodiment of the present application can be applied to high-resolution, high-frame-rate scenarios such as video viewing scenarios, video call scenarios, video transmission scenarios, cloud conference scenarios, and live broadcast scenarios.
- video call scenario Take the video call scenario as an example.
- the terminal device corresponding to user a when two users are making a video call, the terminal device corresponding to user a can perform video encoding processing on the video data associated with user a based on the target video encoding application to obtain a video
- the code stream is compressed
- the video compressed code stream is transmitted to the terminal device corresponding to user b (that is, the user who has a video call with user a), so that the terminal device corresponding to user b can decode and output the user data in the display interface.
- a Associated video data when two users are making a video call, the terminal device corresponding to user a can perform video encoding processing on the video data associated with user a based on the target video encoding application to obtain a video
- cloud conference is an efficient, convenient and low-cost conference form based on cloud computing technology. Users only need to perform simple and easy-to-use operations through the Internet interface, and can quickly and efficiently share voice, data files and videos with teams and users around the world, and complex technologies such as data transmission and processing in meetings are provided by cloud conference service providers. Help users to operate.
- cloud conferencing mainly focuses on the service content based on the software as a service (SaaS, Software as a Service) model, including telephone, network, video and other service forms.
- SaaS Software as a Service
- Cloud computing-based video conferencing is called cloud conferencing.
- data transmission, processing, and storage are all handled by the computer resources of video conferencing manufacturers. Users no longer need to purchase expensive hardware and install cumbersome software.
- the cloud conference system supports multi-server dynamic cluster deployment and provides multiple high-performance servers, which greatly improves the stability, security and availability of the conference.
- video conferencing has been welcomed by many users because it can greatly improve communication efficiency, continuously reduce communication costs, and upgrade internal management levels. It has been widely used in various fields such as transportation, transportation, finance, operators, education, and enterprises. Undoubtedly, after using cloud computing, video conferencing will be more attractive in terms of convenience, speed, and ease of use, which will definitely stimulate the arrival of a new upsurge in video conferencing applications.
- a computer device with a video encoding function may encode video data through a video encoder to obtain a video code stream corresponding to the video data, thereby improving the transmission efficiency of the video data.
- the video encoder may be an AV1 video encoder, an H.266 video encoder, an AVS3 video encoder, etc., and no further examples are given here.
- the video encoder needs to conform to the corresponding video encoding compression standard, for example, the video compression standard of the AV1 video encoder is the first generation video encoding standard developed by the Alliance for Open Media (AOM, Alliance for Open Media).
- the video encoding process may at least include the following steps (1) to (5):
- Step (1) Perform block partition structure on the video frame.
- the video encoder can encode each video frame of the video data, and for a certain video frame, it can be divided into several video frames according to the size of the video frame. non-overlapping processing units, each of which will perform a similar compression operation.
- this processing unit can be called a coding tree unit (CTU, Coding Tree Uint) or a maximum coding unit (LCU, Largest Code Unit).
- CTU Coding Tree Uint
- LCU Largest Code Unit
- CU Largest Code Unit
- CU Coding Unit
- each CU is the most basic element in an encoding process.
- the following steps 2-4 describe various encoding methods that may be used for each CU.
- Step (2) Perform predictive coding on the CU (Predictive Coding).
- the prediction method for predicting the coding unit can include intra-frame prediction mode (predicted signals all come from areas that have been encoded and reconstructed in the same image) and inter-frame prediction mode (predicted signals come from other images that have been encoded and are different from the current image, that is, other video frames, which can be called reference frame after reference image).
- the encoder in the video coding application can determine the most suitable one among many possible predictive coding methods for the current CU, and inform the video coding application of the predictive coding method for the current CU In the decoding end, so that the decoding end decodes and reconstructs the current video frame to generate a reconstructed frame (the reconstructed frame can be used as a reference frame when the encoding end performs predictive encoding on an original video frame).
- DCT discrete cosine transform
- Discrete Cosine Transform Discrete Cosine Transform
- the signal in the transform domain can be further subjected to a lossy quantization operation to lose certain information, so that the quantized signal is conducive to compressed expression.
- one or more transformation methods may be selected for transformation processing, therefore, the encoding end also needs to select one of the transformation methods for the current encoding CU, and inform the decoding end.
- the fineness of quantization is usually determined by the quantization parameter (QP, Quantization Parameter).
- QP quantization parameter
- the value of QP is greater than the QP threshold, the coefficients representing a larger range of values will be quantized into the same output, so it usually brings Greater distortion and lower code rate; on the contrary, when the value of QP is less than the QP threshold, the coefficients representing a smaller value range will be quantized to the same output, so it usually brings smaller distortion, At the same time, it corresponds to a higher bit rate.
- VLC variable length coding
- CABAC Content Adaptive Binary Arithmetic Coding
- the reconstructed image after filtering will be used as a reference for subsequent encoding of a certain video frame to predict future signals, so the above filtering operation is also called loop filtering, and in the encoding loop filtering operation.
- the embodiment of the present application proposes an iterative training method for the filter (also called a filtering model), and the video
- the specific method may refer to the description in the subsequent embodiment corresponding to FIG. 2 .
- the method provided in the embodiment of the present application can be executed by a computer device, and the computer device includes but is not limited to a terminal device or a service server.
- the business server can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, and can also provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud Cloud servers for basic cloud computing services such as communications, middleware services, domain name services, security services, content distribution network (CDN, Content Delivery Network), and big data and artificial intelligence platforms.
- CDN Content Delivery Network
- the above-mentioned computer equipment may be a node in a distributed system, wherein the distributed system may be a block Chain system, the blockchain system may be a distributed system formed by connecting multiple nodes through network communication.
- the peer-to-peer (P2P, Peer To Peer) network that can be formed between nodes
- the P2P protocol is an application layer protocol that runs on the Transmission Control Protocol (TCP, Transmission Control Protocol) protocol.
- TCP Transmission Control Protocol
- any form of computer equipment such as business servers, terminal equipment and other electronic equipment, can become a node in the blockchain system by joining the peer-to-peer network.
- blockchain is a new application mode of computer technologies such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm. Organize and encrypt into a ledger, so that it cannot be tampered with and forged, and at the same time, data can be verified, stored and updated.
- the computer device is a block chain node
- the data in the embodiment of the application (such as video data, encoded video data, and related parameters, etc.) have authenticity and security, which can make the results obtained after relevant data processing based on these data more reliable.
- FIG. 2 is a schematic flowchart of a data processing method provided in an embodiment of the present application.
- the method can be performed by a terminal device (such as any terminal device in the terminal device cluster in the embodiment corresponding to Figure 1 above), such as the terminal device 100a;
- the service server 1000 in the method is executed; the method can also be executed jointly by the terminal device and the service server.
- the method flow may at least include the following steps S101 to S103:
- Step S101 input the sample video data into the video coding application including the first filter model that is deployed and updated for the kth deployment, and generate the first training data through the updated video coding application and the sample video data deployed for the kth deployment; the first training data Including the sample original video frame as the training label, and the first sample frame to be filtered and reconstructed corresponding to the sample original video frame; the first sample frame to be filtered and reconstructed refers to the video coding application updated by the kth deployment, for the sample In the process of reconstructing the original video frame, the reconstructed frame is not filtered by the first filtering model; the sample original video frame is a video frame in the sample video data; k is a positive integer.
- the sample video data may refer to the video data used to train the filtering model, and the computer device (for example, a terminal device) may be in the data transmission scene.
- the video data collected by the image collector (for example, the camera of the terminal device) is obtained, and the video data can be used as sample video data, and the terminal device can input the sample video data into the video coding application.
- the computer device when the video coding application is deployed in the computer device, the computer device has a video coding function, the computer device can collect video data through the image collector, and the video coding application can also obtain the video data.
- the video data here can also be any video data that needs to be encoded in other scenarios.
- the video data can be the video data collected by the camera of the terminal device in the audio and video call scene, the video data can also be the video data saved in the photo album of the terminal device, and the video data can also be the video data of the terminal device
- the video data downloaded on the network is not limited here.
- the video encoding application can be used to encode video data (for example, sample video data) to obtain a video code stream corresponding to the video data.
- the video coding application codes the video data it usually codes each video frame in the video data.
- the video coding application can obtain the video frame to be coded from the sample video data, and the video frame can be called the target video frame, and the video coding application can divide the target video frame into image blocks to obtain the target video frame
- One or more image blocks, and the unit to be coded may be obtained from one or more image blocks, and the unit to be coded may be predicted.
- the frame type to which the target video frame belongs may be obtained, and when performing prediction processing on the coding unit to be coded, prediction may be performed based on the frame type to which the target video frame belongs.
- the frame type may include an intra-frame prediction type and an inter-frame prediction type.
- the frame type to which an intra-frame coded frame (intra picture, referred to as an I frame) belongs is the intra-frame prediction type, and a bi-directional predictive coded frame (bi-directional interpolated
- the frame type to which the prediction frame (B frame for short) and the predictive frame (predictive-frame, P frame for short) belong is the inter-frame prediction type.
- the intra-frame prediction type when predicting the unit to be encoded, only the coded and reconstructed area in the target video frame can be referred to (it should be noted that the intra-frame The prediction type can refer to the full intra-frame prediction type, that is, when predicting all the units to be coded in the target video frame, only refer to the area in the target video frame); and when the frame type of the target video frame is inter-frame prediction type, when the unit to be encoded is predicted, it needs to refer to other encoded video frames that are different from the target video frame (which may be referred to as reference video frames). Wherein, when selecting the reference video frame of the target video frame, it can be selected according to the frame type of the target video frame.
- the reference video frame for the target video frame can be The previous frame and the next frame of the target video frame; when the target video frame is a forward predictive coding frame, the reference video frame for the target video frame can be the previous frame of the target video frame.
- the specific implementation steps of encoding the video frame refer to the description in the above-mentioned embodiment corresponding to FIG. 1 .
- FIG. 3 is a schematic diagram of a coding reference relationship provided by an embodiment of the present application.
- the encoding order of the video frames is consistent with the display order, the arrow points to the reference frame, and the number is used to represent the encoding order.
- the 0th frame (that is, the I frame) can be encoded first, and then the B frame of the first frame can be encoded, wherein, when encoding the B frame of the first frame, it is necessary to refer to the encoded and reconstructed 0th frame Then, the B frame of the second frame can be encoded, and when encoding the B frame of the second frame, it is necessary to refer to the B frame of the first frame reconstructed after encoding. And so on, until the encoding processing of all video frames is completed.
- FIG. 4 is a schematic diagram of a coding reference relationship provided by an embodiment of the present application.
- the encoding order of the video frames is inconsistent with the display order, the arrow points to the reference frame, and the number is used to represent the encoding order.
- the 0th frame (that is, the I frame) can be encoded first, and then the B frame of the first frame can be encoded, wherein, when encoding the B frame of the first frame, it is necessary to refer to the encoded and reconstructed 0th frame
- the I frame of the frame; then, the B frame of the second frame can be encoded, and when the B frame of the second frame is encoded, the arrow points to the 0th frame and the 1st frame, and it is necessary to refer to the coded and reconstructed first frame Frame 1 vs Frame 0. And so on, until the encoding processing of all video frames is completed.
- the encoding process shown in Figure 1 can be adopted, and according to the frame type of the frame
- To determine the reference frame predict it according to the reference frame, obtain the prediction unit, and then determine the residual value between the prediction unit and the unit to be encoded, and determine the corresponding video frame based on the prediction unit and the residual value
- the reconstructed frame (for example, adding the prediction unit and the residual value, and then filtering to obtain the reconstructed frame), the reconstructed frame can enter the reference frame queue to provide reference data for subsequent video frame encoding.
- the prediction unit can be obtained by performing prediction processing on the coding unit of the video frame, and then the residual value can be determined based on the prediction unit, and then the reconstructed image (or called reconstruction before filtering) can be determined based on the prediction unit and the residual value frame), the reconstructed image is filtered to obtain the filtered reconstructed frame corresponding to the video frame.
- each sample original video frame and its corresponding sample to be filtered and reconstructed frame can be formed into a set of training data pairs.
- this multiple groups of training data pairs can form a training data set, and this training data set can be used for the filter model in the video coding application (that is to be used for carrying out filter processing to the reconstructed frame after the inverse transformation model) for training, so that the filtering model for video coding applications can have higher filtering performance.
- the trained filtering model in the video coding application when the filtering model in the video coding application is trained and brought into a state of model convergence, the trained filtering model can be deployed and updated to the filtering model deployed in the video coding application (i.e. The trained filtering model is deployed to the video coding application to replace the original filtering model in the video coding application), and the process of deploying and updating the filtering model deployed in the video coding application can be understood as a video coding application.
- the embodiment of this application can continuously generate new training data through the updated video coding application, and then use the new training data to repeatedly train the filtering model, and then retrain the video coding application based on the retrained filtering model Deploy the update once until the filtering performance of the video coding application meets the filtering quality requirements.
- the video coding application that has not yet been deployed and updated includes an initial filter model that has not yet been trained
- sample video data can be input into the video coding application, and through the video
- the encoding application can generate the training data corresponding to the sample video data, and the initial filtering model can be trained and adjusted through the training data to obtain the trained and adjusted filtering model; then, the trained and adjusted filtering model can be updated and deployed to
- the updated video coding application is deployed for the first time; then, new training data can be generated through the updated video coding application deployed for the first time, and then the filtering model can be trained and adjusted again based on the new training data , get a new trained filter model, and then update and deploy the trained and adjusted filter model to the video coding application that was updated in the first deployment, and get the video coding application that was updated in the second deployment, until the video coding application
- the filter performance meets the requirements.
- the sample video data can be input into the video coding application updated for the k-th deployment, and the training data (which can be referred to as the first training data) can be generated by deploying the updated video coding application for the k-th time.
- a training data includes a sample original video frame as a training label, and a sample original video frame to be filtered and reconstructed (which may be referred to as a first sample to be filtered and reconstructed frame) corresponding to the sample original video frame.
- the first training data can be used for training and adjusting the first filtering model.
- the process of reconstructing the sample original video frame may include prediction processing to obtain the prediction unit, determining the residual value based on the prediction unit, determining the reconstructed image (or called the reconstructed frame) based on the prediction unit and the residual value, and If filtering is performed on the reconstructed image, then the sample to-be-filtered reconstructed frame can be understood as a reconstructed frame that has not been filtered during the process of reconstructing the sample original video frame.
- a set of training data pairs can be formed according to a sample original video frame and its corresponding sample frame to be filtered and reconstructed, and the first training data can be formed according to multiple sets of training data pairs.
- Step S102 based on the sample original video frame and the first sample frame to be filtered and reconstructed, train the filter model to be trained in the video coding application of the k-th deployment update, and obtain the second filter model in the state of training convergence.
- the second filtering model is updated and deployed in the video coding application that is deployed and updated for k times, and the video coding application that is deployed and updated for the k+1th time is obtained.
- the frame type to which each video frame belongs can be determined first, and then encoding processing such as prediction processing is performed on the coding unit to be coded based on the frame type.
- the filtering model in the video coding application in the embodiment of the present application can be used to filter the reconstructed frame (for example, the reconstructed frame corresponding to the I frame) belonging to the intra-frame prediction type, and can also be used to perform filtering processing on the reconstructed frame belonging to the inter-frame prediction type.
- the reconstructed frame (the reconstructed frame corresponding to the B frame) is filtered.
- the above-mentioned first filtering model may refer to the filtering model corresponding to the I frame and the B frame.
- the filtering model to be trained may refer to the first filtering model, which may be based on the first training data for the first
- the filtering model is trained to obtain a second filtering model in a state of training convergence.
- the first filtering model in the updated video coding application deployed for the kth time can be replaced with the second filtering model, so that the updated video coding application deployed for the k+1th time can be obtained.
- the filter model to be trained in the video coding application of the k-th deployment update is trained to obtain the specific realization of the second filter model in the training convergence state
- the method can be: the first sample frame to be filtered and reconstructed can be input into the first filter model, and the sample filter reconstructed frame corresponding to the first sample filter frame to be reconstructed can be output through the first filter model; then, the sample filter can be determined
- the error value between the reconstructed frame and the original video frame of the sample, the model parameters of the first filtering model can be adjusted by the error value, and the first filtering model with the adjusted model parameters is obtained; when the first filtering model with the adjusted model parameters When the model satisfies the model convergence condition, the first filtering model with the adjusted model parameters can be determined as the second filtering model in the training convergence state.
- the model convergence condition here may mean that the number of training adjustments reaches the preset number of adjustments, or it may mean that the image quality of the filtered image output by the adjusted first filtering model meets the quality requirement condition.
- the model convergence condition as the number of training adjustments reaching the preset number of adjustments as an example, assuming that the preset number of adjustments is 10, after adjusting the model parameters once based on the error value generated for the first time, the first same
- the frame to be filtered and reconstructed is input to the first filter model that has been adjusted once, and the sample filtered and reconstructed frame is output again to generate a new error value, and then the model parameters are adjusted until the model parameters are adjusted 10 times.
- the first filtering model after 10 adjustments may be determined as meeting the model convergence condition (ie, in a training convergence state).
- the specific implementation method for determining the error value between the sample filter reconstruction frame and the sample original video frame can be: the loss function corresponding to the video coding application of the k-th deployment update can be obtained; then, the sample can be obtained based on the loss function The original image quality corresponding to the original video frame, and the original image quality is used as the image quality label; then, the filtered image quality corresponding to the sample filter reconstruction frame can be obtained based on the loss function, and the loss function, image quality label and filtered image quality are An error value between the sample filtered video frame and the sample original video frame may be determined.
- the iterative training of each filtering model is performed independently, that is, after the training data is generated, the loss function of the filtering model can be trained based on the training data. are different independent loss functions.
- the loss function L1 absolute value loss function
- the loss function L2 square error loss function
- the model parameters can be adjusted based on the error value
- the method of adding the error value of L1 and the error value of L2 can also be used to adjust the model parameters based on the total error value obtained by the addition .
- the loss function of each iteration is not limited here.
- the loss function in addition to including the absolute value loss function L1 and the square error loss function L2, it can also be any other loss function that can determine the error between the label and the output data, for example,
- the loss function may include a cross-entropy loss function, a mean square error loss function, a logarithmic loss function, an exponential loss function, and the like.
- the first error value between the sample filtered reconstruction frame and the sample original video frame can be determined through the square error loss function, the image quality label and the filtered image quality; subsequently, the absolute Value loss function, image quality label, and filtered image quality, determine the second error value between the sample filtered reconstruction frame and the sample original video frame; subsequently, the first error value and the second error value can be processed (for example, perform Addition operation processing), the result obtained by the operation (for example, the result of addition) may be determined as the error value between the sample filtered reconstructed frame and the sample original video frame.
- Step S103 when the updated video coding application deployed for the k+1th time satisfies the filtering quality requirements, determine the video coding application for the k+1th deployed updated video coding application as the target video coding process for video data application.
- the video coding application can be detected to determine whether it satisfies the filtering quality requirements.
- the video coding application is updated iteratively, and the video coding application may be put into use (eg, as a target video coding application to perform video coding processing on subsequent video data).
- the specific implementation method for detecting the video coding application can be as follows: the sample video data can be input to the video coding application of the k+1 deployment update, through the k +1 Deployment The updated video coding application outputs the filtered video data to be detected; then, the filtered video quality corresponding to the filtered video data to be detected and the original video quality corresponding to the sample video data can be obtained; according to the filtered video quality and the original Video quality, which detects the updated video coding application deployed at the k+1th time.
- the specific implementation method of detecting the video coding application of the k+1th deployment update can be: the difference video quality between the filtered video quality and the original video quality can be determined; if If the difference video quality is less than the difference quality threshold, it can be determined that the second video coding application meets the filtering quality requirement; and if the difference video quality is greater than the difference quality threshold, it can be determined that the second video coding application does not meet the filtering quality requirement.
- each filtered and reconstructed frame (reconstructed frame after filtering processing by the second filtering model) output by the video coding application of the k+1 deployment update can be obtained, and the filtered image quality of the filtered and reconstructed frame can be Compared with the original image quality of the corresponding original video frame, if the difference quality between the two is less than the preset threshold, it can be determined that after the second filtering model is deployed to the video coding application, the video frame processed by the model conforms to the filtering required.
- new training data can be generated again based on the updated video coding application deployed at the k+1th time, and based on the new training
- the data is used to train the second filtering model again to obtain a new filtering model (such as the third filtering model).
- the second filtering model deployed in the updated video coding application deployed in the k+1th deployment can be updated to the third filtering model to obtain the video coding application updated in the k+2th deployed deployment.
- the application detection can be performed again , until the video coding application satisfies the filtering quality requirements, so that the target video coding application can be obtained.
- FIG. 5 is a system architecture diagram of an iterative training provided in the embodiment of the present application.
- the system architecture may include a data set generation module, a model training module, and an application integration module.
- each module will be explained as follows:
- Data set generation module mainly configured to generate training data sets (also referred to as training data). It should be understood that video data can be encoded and reconstructed through video encoding applications. During the encoding and reconstruction process, the data set generation module can be The to-be-filtered reconstruction frame (that is, the reconstruction frame that has not been filtered) and its corresponding original video frame are used as a set of training data pairs, so that training data including multiple sets of training data pairs can be obtained.
- Model training module mainly configured to train the filtering model. It should be understood that the training data generated by the above-mentioned data set generation module can be transmitted to the model training module, and in the model training module, the filtering model can be trained based on the training data so that the filtering model can meet the training target.
- Application integration module It is mainly configured to integrate and deploy the trained filtering model into video coding applications. It should be understood that the application integration module can deploy and integrate the above-mentioned trained filtering model into a video coding application, and at this time, video data can be input into the video coding application integrated with the trained filtering model, and the video coding application can be detected in actual In the application, whether the filtering requirements can be met (that is, to detect whether the filtering performance of the application satisfies the preset requirements).
- the video coding application can be put into use; if it is not satisfied, the data set generation module can be used again to regenerate the training data set based on the new video coding application, and train the filtering model again based on the new training data set , and then carry out application integration, and then carry out actual filtering processing, until the video coding application satisfies the filtering requirements. That is to say, when the trained filtering model satisfies the training objective (i.e.
- the filtering model is used in video coding applications.
- the filtering performance will not be as expected.
- the training data set is regenerated by deploying an updated video coding application each time, the filtering model is trained again, and integrated into the video coding application again for an iterative training process of actual filtering processing, which can continuously improve the consistency between training and testing. Reliability, until the filtering model in the video coding application meets the filtering requirements, thereby improving the coding efficiency.
- the training data set can also be generated by using software integrated with a filter of comparable performance. That is, for the current filtering model, training data can be generated by using software integrated with a filter having comparable performance to the current model, and then the current filtering model can be trained based on the training data.
- a filter with comparable performance to the initial untrained filter model that is, a traditional filter, such as a filter that determines filter parameters based on manual experience
- the sample video data can be input to the kth (such as, the 1st, 2nd, 3rd...) video coding application for deploying an update (the first filtering model is deployed In the video coding application), the video coding application updated through the kth deployment can output the first training data corresponding to the sample video data; based on the first training data, the first filtering model can be retrained to obtain the second filtering model, and the second filtering model can perform another deployment update on the video coding application of the kth deployment update, so that the video coding application of the k+1th deployment update can be obtained; at this time, the k+1th deployment can be performed The updated video coding application is detected.
- the first filtering model is deployed In the video coding application
- the video coding application updated through the kth deployment can output the first training data corresponding to the sample video data
- the first filtering model can be retrained to obtain the second filtering model
- the second filtering model can perform another deployment update on the video coding application of the
- the updated video coding application deployed in the k+1th time can be determined to be used for video data processing.
- the embodiment of the present application can continue to generate new training data based on the updated video coding application, and then based on The new training data trains the filtering model again, and then deploys and updates the trained filtering model to the video coding application again to obtain another updated video coding application until the video coding meets the filtering quality requirements.
- the video coding application can be iteratively updated, and the training process of the filtering model can be repeated by updating the training data, and the video coding application can be continuously deployed and updated.
- the embodiments of the present application can improve filtering performance, reduce image distortion of encoded video, and improve encoding efficiency.
- each video frame can be called a coding frame, and the inter-frame prediction coding frame can be understood as a coding frame whose frame type is an inter-frame prediction type, such as a B frame
- the prediction mode is inter-frame prediction mode, which can be predicted by referring to other reconstructed frames, and the prediction accuracy is usually higher; while the intra-frame prediction coded frame (can be understood as the coded frame whose frame type is intra-frame prediction type, such as I frame)
- the prediction mode is an intra prediction mode, which refers to other areas of the frame, and the prediction accuracy is usually lower than that of an inter prediction coded frame.
- the image features before filtering of the intra-frame predictive coding frame and the inter-frame predictive coding frame can be understood as the reconstructed frame before the filtering process in the process corresponding to Figure 1 (can be called The characteristics of the frames to be filtered and reconstructed) will be different, and there are obvious differences, so if the same filtering model is used for unified filtering processing, it will have a certain impact on the quality of the filtered image.
- the embodiment of the present application can train different filtering models for the intra-frame predictive coding frame and the inter-frame predictive coding frame , using different filtering models to perform filtering processing on the to-be-filtered and reconstructed frame corresponding to the intra-frame predictive coding frame and the to-be-filtered and reconstructed frame corresponding to the inter-frame predictive coding frame.
- the intra-frame filtering model is used to filter the frame to be filtered and reconstructed corresponding to the intra-frame predictive coding frame
- the inter-frame filtering model is used to filter the frame to be filtered and reconstructed corresponding to the inter-frame predictive coding frame.
- the The intra-frame filtering model for filtering the reconstructed frame of the type (the to-be-filtered reconstructed frame corresponding to the intra-frame prediction coded frame, for example, the reconstructed frame corresponding to the I frame), and the intra-frame filtering model used to perform the filtering process on the reconstructed frame belonging to the inter-frame prediction type (inter-frame An inter-frame filtering model that performs filtering processing on the frame to be filtered and reconstructed corresponding to the predicted coded frame, for example, the reconstructed frame corresponding to the B frame).
- the model to be trained may be determined between the intra-frame filtering model and the inter-frame filtering model, and then the model to be trained is trained based on the training data.
- the first filtering model deployed in the video coding application updated with the above-mentioned k-th deployment includes a first intra-frame filtering model (the first intra-frame The filtering model is trained based on the initial intra-frame filtering model in the video coding application of the k-1th deployment update), and the video coding application of the k-th deployment update also includes an untrained initial inter-frame filtering model (initial frame The inter-frame filtering model is used to filter the frame to be filtered and reconstructed belonging to the inter-frame prediction type) as an example, in the embodiment of the present application, the filter model to be trained in the video coding application of the k-th deployment update can be determined as the initial inter-frame filter model and the first intra-frame filtering model, and the filtering model to be trained may only be determined as the
- the untrained initial inter-frame filtering model included in the updated video coding application of the k-th deployment is described below.
- the included untrained initial inter-frame filtering model refers to the inter-frame filtering model obtained after the third training.
- FIG. 6 is a schematic flowchart of a training filtering model provided by an embodiment of the present application.
- This process takes the filtering model to be trained in the video coding application of the k-th deployment update as an example, including the initial inter-frame filtering model and the first intra-frame filtering model, for the original video frame based on the sample and the reconstructed frame to be filtered by the first sample , train the filter model to be trained in the video coding application that is deployed and updated for the kth time, and obtain a specific process of the second filter model in a training convergence state.
- the process may at least include the following steps S201 to S205:
- Step S201 Obtain the inter-reconstruction frame to be filtered belonging to the inter-frame prediction type from the first sample to be filtered and reconstructed frame, and use the sample original video frame corresponding to the inter-reconstruction frame to be filtered in the sample original video frame as the first A video frame label.
- the training data generated by the video coding application may include each sample original video frame and its corresponding sample frame to be filtered and reconstructed, and in the process of encoding and reconstructing each sample original video frame , it is necessary to determine the frame type to which the original video frame of each sample belongs, and then perform prediction processing based on the frame type, so the obtained sample frames to be filtered and reconstructed also correspond to different frame types.
- the frame type of the reconstructed frame corresponding to the sample original video frame a can also be It is understood as the type of intra prediction.
- the intra-frame filtering model can be trained by using video frames whose frame type is intra-frame prediction type
- the inter-frame filtering model can be trained by using video frames whose frame type is inter-frame prediction type.
- the filtering model to be trained in the updated video coding application deployed for the kth time includes the initial inter-frame filtering model and the first intra-frame filtering model, for the initial inter-frame filtering model, it can be obtained from the first training data To the frame to be filtered and reconstructed belonging to the inter-frame prediction type (which may be referred to as the frame to be filtered to be reconstructed), and the sample original video frame corresponding to the frame to be filtered to be reconstructed in the sample original video frame as the first video frame label.
- the inter-frame prediction type which may be referred to as the frame to be filtered to be reconstructed
- Step S202 Obtain the first intra-reconstruction frame to be filtered belonging to the intra-frame prediction type from the first sample to-be-filtered and reconstructed frame, and convert the sample original video corresponding to the first to-be-filtered intra-reconstruction frame in the sample original video frame frame, as the second video frame label.
- a reconstructed frame belonging to the intra-frame prediction type (which may be called the first intra-frame reconstructed frame to be filtered) may also be obtained from the first training data, And the sample original video frame corresponding to the first to-be-filtered intra-frame reconstruction frame in the sample original video frame is used as the second video frame label.
- Step S203 based on the inter-frame reconstruction frame to be filtered and the first video frame label, the initial inter-frame filtering model is trained to obtain the first inter-frame filtering model in a state of training convergence.
- the initial inter-frame filtering model can be trained and adjusted through the to-be-filtered inter-frame reconstruction frame and its corresponding first video frame label, and an inter-frame filtering model (which can be referred to as the first frame) in a training convergence state can be obtained. between filter models).
- Step S204 based on the intra-frame reconstruction frame to be filtered and the second video frame label, train the first intra-frame filtering model to obtain a second intra-frame filtering model in a training convergence state.
- the first intra-frame filtering model can be trained and adjusted to obtain an intra-frame filtering model in a state of training convergence (which can be referred to as is the second intra-frame filtering model).
- Step S205 determining the first inter-frame filtering model and the second intra-frame filtering model as the second filtering model.
- the second intra-frame filtering model and the first inter-frame filtering model can be used as the second filtering model.
- the first filtering model is a filtering model corresponding to both the inter-frame predictive coding frame and the intra-frame predictive coding frame
- the specific process of updating and deploying the second filtering model to obtain an updated video coding application for the k+1th deployment may be to only replace the first filtering model with the second filtering model.
- the filter model to be trained in the updated video coding application deployed for the kth time includes the initial inter-frame filtering model and the first intra-frame filtering model
- the first intra-frame filtering model in the updated video coding application of the kth deployment can be replaced and updated with the second frame An intra-filtering model
- the initial inter-frame filtering model in the updated video coding application of the k-th deployment is replaced and updated with the first inter-frame filtering model. That is to say, the two trained models are updated and replaced separately.
- the k-th time when the updated video coding application is deployed for the kth time including the initial inter-frame filtering model and the first intra-frame filtering model, and the initial inter-frame filtering model is an untrained filtering model, the k-th time
- the model to be trained in the updated video coding application is only determined to be the initial inter-frame filtering model, that is, the first intra-frame filtering model does not need to be trained again.
- the first inter-frame filtering model can be determined as Second filtering model.
- the initial inter-frame filtering model in the video coding application that is deployed and updated for the kth time can be replaced and updated with the first inter-frame filtering model to obtain the video coding application that is deployed and updated for the k+1th time.
- new training data can be generated based on the updated video coding application deployed at the k+1th time, and then based on the new training data, the above-mentioned first intra-frame filtering model and the first frame
- the inter-frame filtering model is trained together, and then the video coding application of the k+1th deployment update is deployed and updated based on the trained intra-frame or inter-frame filtering model.
- an intra-frame predictive coded frame that is, a coded frame or a video frame belonging to the intra-frame prediction type, such as an I frame
- a type of model that is, an intra-frame filtering model, such as an I-frame model
- an inter-frame predictive coding When a frame (that is, a coded frame or a video frame belonging to the inter-frame prediction type, such as a B frame) has a type of model, the process shown in FIG. 6 can be used for training the filtering model.
- FIG. 7 which is a schematic diagram of a model training scenario provided by an embodiment of the present application.
- the intra-frame filtering model includes an I-frame model
- the inter-frame filtering model includes a B-frame model as an example.
- the iterative training process for the model can include the following steps (1) to (4) ):
- Step (1) In the case that the video coding application includes an initial untrained I frame model and a B frame model, the sample video data can be input into the video coding application, and the training data is output through the video coding application .
- Step (2) the initial I frame model in the video coding application is used as the model to be trained, and the I frame model is trained based on the training data (based on the I frame original video frame in the training data and the I frame to be filtered and reconstructed frame pair I Frame model is trained), obtains the I frame model (being the I frame model after training) that is in training convergence state. Subsequently, the initial I-frame model in the video coding application can be replaced with the trained I-frame model, and the initial B-frame model can be kept unchanged, so that an updated video coding application deployed for the first time can be obtained.
- Step (3) Input the sample video data into the updated video coding application deployed for the first time, and output new training data through the updated video coding application deployed for the first time.
- Step (4) The initial B-frame model in the updated video coding application deployed for the first time is used as the model to be trained, and the B-frame model is trained based on the new training data (based on the B-frame original video frame in the training data and The B frame to be filtered and reconstructed frame is trained on the B frame model), and the B frame model in the training convergence state (that is, the trained B frame model) can be obtained, and the initial B frame model in the updated video coding application that can be deployed for the first time The frame model is replaced by the trained B-frame model, and the updated video coding application is deployed for the second time.
- the trained I-frame model can also be trained at the same time to obtain the trained B-frame model and the I-frame model after training again, and then The I frame model and the B frame model in the video coding application are updated and replaced respectively.
- Step (5) Input the sample video data into the updated video coding application in the second deployment, and the updated video coding application through the second deployment can output new training data again.
- the I-frame model and B-frame model in the video coding application deployed and updated for the first time can be trained again to obtain the trained I-frame model and B-frame model, and then the trained The I-frame model and the B-frame model respectively replace and update the models in the video coding application of the second deployment update, and obtain the video coding application of the third deployment update.
- the filtering model to be trained in the updated video coding application deployed for the kth time may include a first inter-frame filtering model and a first intra-frame filtering model, and the first inter-frame filtering model is trained based on the initial inter-frame filtering model in the video coding application of the k-1th deployment update, that is to say, in the embodiment of the present application, the initial inter-frame filtering model and the initial intra-frame filtering model can be trained together to obtain After the first inter-frame filtering model and the first intra-frame filtering model, the initial inter-frame filtering model and the initial intra-frame filtering model in the video coding application of the k-1th deployment update are updated and replaced respectively, and the first The k-th deployment of the inter-filtering model versus the first intra-filtering model for updated video coding applications.
- FIG. 8 is a schematic diagram of a model training scenario provided by an embodiment of the present application.
- the intra-frame filtering model includes an I-frame model
- the inter-frame filtering model includes a B-frame model as an example.
- the process of iterative training of the model can include the following steps (81) to steps (84 ):
- Step (81) In the case that the video coding application includes an initial untrained I-frame model and a B-frame model, the sample video data can be input into the video coding application, and the training data is output through the video coding application .
- the initial I-frame model in the video coding application can be replaced by the trained I-frame model
- the initial B-frame model can be replaced by the trained B-frame model, so that the first deployment update can be obtained Video encoding applications.
- Step (83) Input the sample video data into the updated video coding application deployed for the first time, and output new training data through the updated video coding application deployed for the first time.
- the frame type to which each video frame belongs may be determined first, and then encoding processing such as prediction processing is performed on the coding unit to be coded based on the frame type.
- encoding processing such as prediction processing is performed on the coding unit to be coded based on the frame type.
- inter-frame predictive coding frames such as B frames
- the coupling relationship of the reference relationship of inter-frame predictive coding frames affects the consistency of training and actual testing.
- the corresponding reference frame is the filtered and reconstructed frame of the previous I frame
- the trained filtering model of the I frame and the filtering model of the B frame are deployed and updated to the video coding application
- the I The quality of the filtered and reconstructed frame of the frame will be improved, then due to the improvement of the quality of the filtered and reconstructed frame of the I frame, the prediction result of the B frame will also be improved, that is, the characteristics of the B frame before filtering will be improved, then after After the filtering model of the B frame is processed, the filtering effect of the reconstructed frame of the B frame is not the filtering effect in the training process. That is, the training process is not equivalent to the testing process.
- the iterative training method provided by the embodiment of the present application, by updating the training data set to repeatedly train the B frame model or the I frame model, the consistency of the training and testing of the B frame can be improved, thereby improving the coding efficiency. At the same time, it improves the filtering performance of video coding applications and reduces the degree of distortion of coded videos.
- the inter-frame filtering model is repeatedly trained by updating the training data set, which can improve the consistency between the training and testing of inter-frame predictive coding frames, thereby improving the coding efficiency and the filtering of video coding applications. performance, reducing the degree of distortion in encoded video.
- the above-mentioned embodiment corresponding to FIG. 6 can be understood as a model training process in which an inter-frame predictive coding frame only corresponds to one type of filtering model (that is, an inter-frame filtering model).
- the inter-frame predictive coding Some frames in the frame can be filtered by one type of filtering model (for example, taking frames B-1, B-3, and B-5 as examples, they can be filtered by the B-1 model), and some frames can be processed by Another type of filtering model performs filtering processing (for example, taking frames B-2, B-4, and B-6 as examples, the filtering processing can be performed by the B-2 model), that is, the inter-frame filtering model can include Two types or more than two types of inter-frame filtering models (various inter-frame filtering models can refer to models with different network structures and model parameters; of course, various inter-frame filtering models can also refer to the same network structure, but Models with different model parameters), here for the convenience of distinction, the inter-frame prediction type (for
- the The reconstructed frame (the reconstructed frame to be filtered corresponding to the intra-frame predictive coded frame, for example, the reconstructed frame corresponding to the I frame) is used to filter the reconstructed frame belonging to the first inter-frame prediction type.
- the model to be trained may be determined between the intra-frame filtering model and different types of inter-frame filtering models, and then the model to be trained is trained based on the training data.
- the first filtering model includes a first intra-frame filtering model for performing filtering processing on the frame to be filtered and reconstructed belonging to the intra-frame prediction type (the first intra-frame filtering model is based on the k-1th deployment of updated video coding obtained by training the initial intra-frame filtering model in the application), the updated video coding application of the k-th deployment also includes the untrained first-type initial inter-frame filtering model and the second-type initial inter-frame filtering model (the first type initial The inter-frame filtering model is used to filter the frames to be filtered and reconstructed belonging to the first inter-frame prediction type, and the second type of initial inter-frame filtering model is used to filter the frames to be filtered and reconstructed belonging to the second inter-frame prediction type)
- the first filtering model includes a first intra-frame filtering model for
- FIG. 9 is a schematic flowchart of a training filtering model provided by an embodiment of the present application. As shown in FIG. 9, the process may at least include the following steps S301 to S306:
- Step S301 determine the first intra-frame filtering model and the first type of initial inter-frame filtering model in the video coding application of the k-th deployment update as the filter models to be trained for the k-th deployment of the updated video coding application.
- the model to be trained when determining the model to be trained each time, if there is a certain filtering model (including the intra-frame filtering model and the inter-frame filtering model) that has not been trained, you can preferentially select a certain filtering model from the models that have not yet been trained.
- a filtering model is used as the model to be trained until all the filtering models have been trained.
- all the filtering models when the model to be trained is determined, all the trained filtering models can be The models are all used as models to be trained, and all models are trained and adjusted at the same time based on the new training data.
- the first intra-frame filtering model in the video coding application of the k-th deployment update is a trained model
- the first type of initial inter-frame filtering model and the second type of initial inter-frame filtering model are both
- the embodiment of the present application can use the first intra-frame filtering model and the first type of initial inter-frame filtering model (or the second type of initial inter-frame filtering model) as the model to be trained, of course, only the The first type of initial interframe filtering model (or the second type of initial interframe filtering model) is used as the model to be trained; the first type of initial interframe filtering model and the second type of initial interframe filtering model can also be used as the model to be trained.
- Step S302 Obtain the first type of inter-reconstruction frame to be filtered belonging to the first inter-frame prediction type in the first sample to be filtered and reconstructed frame, and obtain the corresponding The sample original video frame of is used as the third video frame label.
- the filtering model to be trained in the updated video coding application deployed for the kth time includes the first type of initial inter-frame filtering model
- the reconstructed frame to be filtered belonging to the first type of inter-frame prediction can be obtained from the first training data (It can be referred to as the first type to be filtered inter-frame reconstruction frame)
- the sample original video frame corresponding to the first type of to-be-filtered inter-frame reconstruction frame in the sample original video frame is used as its corresponding video frame label (can be Call it the third video frame label).
- Step S303 Obtain a second intra-reconstruction frame to be filtered belonging to the intra-frame prediction type from the first sample to-be-filtered reconstruction frame, and convert the sample original video corresponding to the second to-be-filtered intra-reconstruction frame in the sample original video frame frame, as the fourth video frame label.
- the reconstruction to-be-filtered model belonging to the intra-frame prediction type can be obtained from the first training data Frame (can be referred to as the reconstruction frame in the second frame to be filtered), and the sample original video frame corresponding to the reconstruction frame in the second frame to be filtered in the original video frame of the sample is used as its corresponding video frame label (can be referred to as is the fourth video frame tag).
- Step S304 based on the first type of inter-reconstruction frame to be filtered and the third video frame label, train the first type of initial inter-frame filtering model to obtain the first type of inter-frame filtering model in a state of training convergence.
- the first type of initial inter-frame filtering model can be trained and adjusted through the first type of inter-frame reconstruction frame to be filtered and the third video frame label, and the first type of inter-frame filtering model in a training convergence state can be obtained.
- Step S305 based on the reconstructed intra-frame of the second to-be-filtered frame and the label of the fourth video frame, train the first intra-frame filtering model to obtain a second intra-frame filtering model in a state of training convergence.
- the first intra-frame filtering model can be trained by using the second intra-frame reconstruction frame to be filtered and the fourth video frame label to obtain a second intra-frame filtering model in a training convergence state.
- Step S306 determining the first type of inter-frame filtering model and the second intra-frame filtering model as the second filtering model.
- the second intra-frame filtering model and the first type of inter-frame filtering model can be used as the second filtering model.
- the model to be trained of the updated video coding application deployed at the kth time includes the first type of initial inter-frame filtering model and the first intra-frame filtering model
- the video coding application updated at the k-th deployed The specific way of deploying the second filtering model to obtain the updated video coding application of the k+1th deployment can be as follows: the first intra-frame filtering model in the updated video coding application of the k-th deployment can be replaced and updated with the second intra-frame Filtering model: replace and update the first type of initial inter-frame filtering model in the video coding application of the k-th deployment update with the first type of inter-frame filtering model. That is to say, the two trained models are updated and replaced separately.
- the second training data can be generated by deploying the updated video coding application and sample video data for the k+1th time; wherein, the second training data includes sample original video frames as training labels , and the second sample to-be-filtered and reconstructed frame corresponding to the sample original video frame, the second sample to-be-filtered and reconstructed frame refers to the process of encoding and reconstructing the sample original video frame by the video coding application updated by the k+1 deployment , the video frame that has not been filtered by the second filtering model; subsequently, based on the original video frame of the sample and the reconstructed frame of the second sample to be filtered, the filtering model to be trained in the updated video coding application deployed for the k+1th deployment (
- the second type includes initial video frames as training labels , and the second sample to-be-filtered and reconstructed frame corresponding to the sample original video frame, the second sample to-be-filtered and reconstructed frame refers to the process of encoding and reconstructing the sample original video frame by the video coding application updated
- the second inter-frame prediction can be obtained in the second sample to be filtered and reconstructed frame
- the sample original video frame corresponding to the second type of inter-frame reconstruction frame to be filtered in the sample original video frame is used as the fifth video frame label; it can be based on the second type to be filtered
- the inter-frame reconstructed frame and the fifth video frame label, the second type of initial inter-frame filtering model is trained to obtain the second type of inter-frame filtering model in a state of training convergence; the second type of inter-frame filtering model is determined as the third filter Model.
- an intra-frame predictive coding frame for example, an I frame
- an intra-frame filtering model such as an I frame model
- an inter-frame predictive coding frame for example, a B frame
- FIG. 10 is a schematic diagram of another model training scenario provided by the embodiment of the present application.
- the process may include the following steps (1) to (6):
- Step (1) When the video coding application includes an initial untrained I frame model, a B-1 model, and a B-2 model, the sample video data can be input into the video coding application, through which The video encoding application outputs training data.
- Step (2) the initial I frame model in the video coding application is used as the model to be trained, and the I frame model is trained based on the training data (based on the I frame original video frame in the training data and the I frame to be filtered and reconstructed frame pair I frame model for training), to obtain the I frame model in the training convergence state (i.e. the trained I frame model), the initial I frame model in the video coding application can be replaced by the trained I frame model, keeping the initial The B-1 and B-2 models remain unchanged, and the updated video coding application is deployed for the first time.
- the training convergence state i.e. the trained I frame model
- Step (3) Input the sample video data into the updated video coding application deployed for the first time, and output new training data through the updated video coding application deployed for the first time.
- Step (4) The initial B-1 model in the updated video coding application deployed for the first time is used as the model to be trained, and the initial B-1 model is trained based on the new training data (based on the B-1 model in the training data).
- the original video frame corresponding to the 1 model and the frame to be filtered and reconstructed are used to train the B-1 model), and the B-1 model in the state of training convergence (the trained B-1 model) can be obtained, and the updated B-1 model can be deployed for the first time
- the initial B-1 model in the video coding application is replaced with the trained B-1 model, and an updated video coding application is deployed for the second time.
- Step (5) Input the sample video data into the updated video coding application of the second deployment, and output new training data through the updated video coding application of the second deployment.
- Step (6) The initial B-2 model in the video coding application of the second deployment update is used as the model to be trained, and the B-2 model is trained based on the new training data (based on the B-2 model in the training data).
- the corresponding original video frame and the frame to be filtered and reconstructed are used to train the B-2 model), and the B-2 model in the training convergence state can be obtained, and the initial B-2 model in the video coding application that can be updated for the second deployment Replace it with the trained B-2 model, and get the updated video coding application for the third deployment.
- the sample video data can be re-inputted into the updated video coding application for the third deployment, and the updated video coding application based on the third deployment can output new training data again.
- the third deployment can be based on the new training data.
- Each filter model in the video coding application updated in the second deployment is trained separately to obtain the trained model, and then based on the trained model, the video coding application updated in the third deployment is updated and deployed to obtain the video updated in the fourth deployment Encoding application.
- the initial B-1 model and the initial B-2 model can also be trained based on the training data, and after the trained B-1 model and B-2 model are obtained , and then update and replace the initial B-1 model and B-2 model in the video coding application updated in the first deployment, and obtain the video coding application updated in the second deployment.
- new training data can be generated again, and the I-frame model, B-1 model and B-2 model can be trained together based on the new training data. train.
- the inter-frame filtering model is repeatedly trained by updating the training data set, which can improve the consistency between the training and testing of inter-frame predictive coding frames, thereby improving the coding efficiency and the filtering of video coding applications. quality, reducing the degree of distortion in the encoded video.
- model iterative training process proposed in the embodiment of the present application can also be applied to the iterative training of other models, for example, it is also applicable to the iterative training of the inter prediction model and the iterative training of the intra prediction model. That is to say, the model training method proposed in the embodiment of the present application is to regenerate the training data and repeat the training model based on the application after model deployment, and then update and deploy the application until the application meets the performance requirements. It is not limited to the iteration of the filtering model. train.
- the target video coding application can be put into use, that is, the target video coding application can be used to perform video processing on video data.
- Encoding processing For example, in a video call scenario, when two users are making a video call, the terminal device corresponding to user a can perform video encoding processing on the video data associated with user a based on the target video encoding application, and after obtaining the compressed video stream, The video compression code stream is transmitted to the terminal device corresponding to user b (the user who has a video call with user a), so that the terminal device corresponding to user b can decode and output the video data associated with user a on the display interface.
- FIG. 11 is a schematic flow diagram of a data processing method provided in an embodiment of the present application, and the flow can be an application flow of a target video coding application. As shown in Figure 11, the process may at least include the following steps S401 to S402:
- Step S401 input video data into a target video coding application, and perform video coding processing on the video data through the target video coding application to obtain a video compression code stream corresponding to the video data;
- the target video coding application is Refers to the video coding application of the k+1 deployment update that satisfies the filtering quality requirements;
- the video coding application of the k+1 deployment update includes a second filtering model in a training convergence state;
- the second filtering model is based on The sample original video frame used as the training label in the first training data, and the first sample to be filtered and reconstructed frame corresponding to the sample original video frame, in the video coding application including the first filtering model updated for the kth deployment
- the filter model to be trained is obtained by training;
- the first training data is generated by deploying an updated video coding application and sample video data for the kth time;
- the reconstructed frame of the first sample to be filtered refers to the The updated video coding application is deployed k times, and in the
- Step S402 sending the video compression code stream to a receiving device, so that the receiving device decodes the video compression code stream.
- the computer device may send the compressed video code stream to a receiving device (for example, a terminal device receiving the compressed video code stream), and the receiving device may decode the compressed video code stream.
- a receiving device for example, a terminal device receiving the compressed video code stream
- the inter-frame filtering model is repeatedly trained by updating the training data set, which can improve the consistency between the training and testing of inter-frame predictive coding frames, thereby improving the coding efficiency and the filtering of video coding applications. quality, reducing the degree of distortion in the encoded video.
- FIG. 12 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
- the data processing device may be a computer program (including program code) running in a computer device, for example, the data processing device is an application software; the data processing device may be used to execute the method shown in FIG. 3 .
- the data processing device 1 may include: a training data generating module 11 , a model training module 12 , an application updating module 13 and a target application determining module 14 .
- the training data generation module 11 is configured to input the sample video data to the video coding application including the first filtering model of the kth deployment update;
- the training data generation module 11 is also configured to generate first training data by deploying the updated video coding application and sample video data for the kth time; the first training data includes sample original video frames as training labels, and the sample original video frames correspond to The first sample of the frame to be filtered and reconstructed; the first sample of the frame to be filtered and reconstructed refers to the process of reconstructing the original video frame of the sample through the video coding application updated by the k-th deployment, without the first filtering model The reconstruction frame of filter processing;
- the sample original video frame is a video frame in the sample video data; k is a positive integer;
- the model training module 12 is configured to train the filter model to be trained in the video coding application of the k-th deployment update based on the sample original video frame and the first sample frame to be filtered and reconstructed, so as to obtain the second filter model in the training convergence state.
- Model
- the application update module 13 is configured to update and deploy the second filtering model in the video coding application that is deployed and updated for the kth time, so as to obtain the video coding application that is deployed and updated for the k+1th time;
- the target application determination module 14 is configured to determine the updated video coding application deployed at the k+1th time as being used for video coding of video data when the updated video coding application deployed at the k+1th time meets the filtering quality requirements The target video encoding application for processing.
- the first filtering model includes a first intra-frame filtering model for performing filtering processing on the frame to be filtered and reconstructed belonging to the intra-frame prediction type; the first intra-frame filtering model is updated based on the k-1 deployment It is obtained by training the initial intra-frame filtering model in the video coding application, and the updated video coding application of the k-th deployment also includes an untrained initial inter-frame filtering model; the initial inter-frame filtering model is used to classify the inter-frame prediction type Filtering is performed on the frame to be filtered and reconstructed, and the filtering model to be trained in the updated video coding application deployed for the kth time includes the initial inter-frame filtering model and the first intra-frame filtering model;
- the model training module 12 may include: a video label acquisition unit 121 , a model training unit 122 and a model determination unit 123 .
- the video label acquiring unit 121 is configured to acquire the inter-reconstruction frame to be filtered belonging to the inter-frame prediction type from the first sample to-be-filtered reconstruction frame, and the sample original video frame corresponding to the inter-frame reconstruction frame to be filtered in the sample original video frame Video frame, as the first video frame label;
- the video label obtaining unit 121 is further configured to obtain the first intra-reconstruction frame to be filtered belonging to the intra-frame prediction type from the first sample to-be-filtered reconstruction frame, and the first to-be-filtered intra-reconstruction frame in the sample original video frame The corresponding sample original video frame is used as the second video frame label;
- the model training unit 122 is configured to train the initial inter-frame filtering model based on the inter-frame reconstruction frame to be filtered and the first video frame label, so as to obtain the first inter-frame filtering model in a training convergence state;
- the model training unit 122 is further configured to train the first intra-frame filtering model based on the intra-frame reconstruction frame to be filtered and the second video frame label, to obtain a second intra-frame filtering model in a training convergence state;
- the model determining unit 123 is configured to determine the first inter-frame filtering model and the second intra-frame filtering model as the second filtering model.
- the specific implementation manners of the video tag acquisition unit 121, the model training unit 122 and the model determination unit 123 can refer to the description of steps S501-step S505 in the embodiment corresponding to FIG. 6 above, and will not be repeated here.
- the application update module 13 may include: an intra model replacement unit 131 and an inter model replacement unit 132 .
- the intra-frame model replacement unit 131 is configured to replace and update the first intra-frame filtering model in the video coding application of the k-th deployment update with the second intra-frame filtering model;
- the inter-frame model replacing unit 132 is configured to replace and update the initial inter-frame filtering model in the video coding application of the k-th deployed update with the first inter-frame filtering model.
- step S505 for the specific implementation of the intra model replacement unit 131 and the inter model replacement unit 132, please refer to the description of step S505 in the above embodiment corresponding to FIG. 6 , which will not be repeated here.
- the first filtering model includes a first intra-frame filtering model for performing filtering processing on the frame to be filtered and reconstructed belonging to the intra-frame prediction type; the first intra-frame filtering model is updated based on the k-1 deployment It is obtained by training the initial intra-frame filtering model in the video coding application, and the updated video coding application of the k-th deployment also includes the untrained first type initial inter-frame filtering model and the second type initial inter-frame filtering model; the first The type initial inter-frame filtering model is used to filter the reconstructed frames to be filtered belonging to the first inter-frame prediction type, and the second type of initial inter-frame filtering model is used to filter the reconstructed frames to be filtered belonging to the second inter-frame prediction type deal with;
- the model training module 12 may include: a model to be trained determining unit 124 , a video frame label determining unit 125 , an inter-frame model training unit 126 , an intra-frame model training unit 127 and a filter model determining unit 128 .
- the model to be trained determining unit 124 is configured to determine the first intra-frame filtering model and the first type of initial inter-frame filtering model in the k-th deployment of the updated video coding application as the k-th deployment of the updated video coding application
- the filter model to be trained is configured to determine the first intra-frame filtering model and the first type of initial inter-frame filtering model in the k-th deployment of the updated video coding application as the k-th deployment of the updated video coding application.
- the video frame label determining unit 125 is configured to obtain a first type of inter-frame reconstruction frame to be filtered belonging to the first inter-frame prediction type in the first sample to-be-filtered reconstruction frame, and obtain the first-type to-be-filtered inter-frame reconstruction frame in the sample original video frame
- the sample original video frame corresponding to the inter-frame reconstruction frame is used as the third video frame label;
- the video frame label determination unit 125 is further configured to obtain a second intra-frame reconstruction frame to be filtered belonging to the intra-frame prediction type from the first sample frame to be filtered and reconstructed, and reconstruct the second frame to be filtered in the sample original video frame
- the sample original video frame corresponding to the frame is used as the fourth video frame label;
- the inter-frame model training unit 126 is configured to train the first type of initial inter-frame filtering model based on the first type of inter-frame reconstruction frame to be filtered and the third video frame label, so as to obtain the first type of inter-frame filtering in a training convergence state Model;
- the intra-frame model training unit 127 is configured to train the first intra-frame filtering model based on the second intra-frame reconstruction frame to be filtered and the fourth video frame label, to obtain a second intra-frame filtering model in a training convergence state;
- the filtering model determining unit 128 is configured to determine the first type of inter-frame filtering model and the second intra-frame filtering model as the second filtering model.
- step S801-step S806 the specific implementation of the model to be trained determination unit 124, the video frame label determination unit 125, the inter-frame model training unit 126, the intra-frame model training unit 127, and the filtering model determination unit 128 can be referred to in the above-mentioned embodiment corresponding to FIG. 9
- the description of step S801-step S806 will not be repeated here.
- the data processing device 1 may further include: a data generation module 15 , a filter model training module 16 , a deployment model module 17 and a target application determination module 18 .
- the data generating module 15 is configured to generate second training data by deploying the updated video coding application and sample video data at the k+1th deployment when the video coding application updated at the k+1 deployment does not meet the filtering quality requirements;
- the second training data includes the sample original video frame as the training label, and the second sample frame to be filtered and reconstructed corresponding to the sample original video frame.
- Application, in the process of encoding and reconstructing the original video frame of the sample the video frame that has not been filtered by the second filtering model;
- the filter model training module 16 is configured to train the filter model to be trained in the video coding application of the k+1 deployment update based on the sample original video frame and the second sample frame to be filtered and reconstructed, so as to obtain the first filter model in the training convergence state.
- the deployment model module 17 is configured to update and deploy the third filtering model in the video coding application that is deployed and updated at the k+1th time, and obtain the video coding application that is deployed at the k+2th time;
- the target application determining module 18 is configured to determine the updated video coding application deployed at the k+2th time as the target video coding application when the updated video coding application deployed at the k+2th time satisfies the filtering quality requirements.
- step S806 the specific implementation manners of the data generation module 15, the filter model training module 16, the deployment model module 17 and the target application determination module 18 can refer to the description of step S806 in the above embodiment corresponding to FIG. 9, and will not be repeated here.
- the filtering model to be trained in the updated video coding application deployed at the k+1th time includes a second type of initial inter-frame filtering model
- the filtering model training module 16 may include: a label determining unit 161 , a type inter-frame model training unit 162 and a filtering model determining unit 163 .
- the label determination unit 161 is configured to obtain a second type of inter-frame reconstruction to be filtered belonging to the second inter-frame prediction type from the second sample to-be-filtered reconstruction frame, and reconstruct the second-type to-be-filtered inter-frame reconstruction in the sample original video frame
- the sample original video frame corresponding to the frame is used as the fifth video frame label;
- the type inter-frame model training unit 162 is configured to train the second type of initial inter-frame filtering model based on the second type of inter-frame reconstruction frame to be filtered and the fifth video frame label to obtain the second type of inter-frame filtering model in a training convergence state. filter model;
- the filtering model determining unit 163 is configured to determine the second type of inter-frame filtering model as the third filtering model.
- step S806 for the specific implementation of the label determining unit 161, the type inter-frame model training unit 162, and the filtering model determining unit 163, please refer to the description of step S806 in the above embodiment corresponding to FIG. 9 , which will not be repeated here.
- the model training module 12 may include: a filter frame output unit 129 and a parameter adjustment unit 120 .
- the filtered frame output unit 129 is configured to input the first sample frame to be filtered and reconstructed into the first filter model, and output the sample filtered reconstructed frame corresponding to the first sample frame to be filtered and reconstructed through the first filter model;
- the parameter adjustment unit 120 is configured to determine an error value between the sample filtered reconstructed frame and the sample original video frame;
- the parameter adjustment unit 120 is further configured to adjust the model parameters of the first filtering model through the error value to obtain the first filtering model with the adjusted model parameters;
- the parameter adjustment unit 120 is further configured to determine the first filter model with the adjusted model parameters as the second filter model in the training convergence state when the first filter model with the adjusted model parameters meets the model convergence condition.
- the filter frame output unit 129 For specific implementations of the filter frame output unit 129, the parameter adjustment unit 120, and the model determination unit 121, refer to the description of step S102 in the embodiment corresponding to FIG. 3 above, and details will not be repeated here.
- the parameter adjustment unit 120 includes: a function acquisition subunit 1201 and an error value determination subunit 1202 .
- the function acquiring subunit 1201 is configured to acquire the loss function corresponding to the updated video coding application of the kth deployment;
- the error value determination subunit 1202 is configured to obtain the original image quality corresponding to the sample original video frame based on the loss function, and use the original image quality as the image quality label;
- the error value determination subunit 1202 is also configured to obtain the filtered image quality corresponding to the sample filtered and reconstructed frame based on the loss function, and determine the error between the sample filtered video frame and the sample original video frame through the loss function, image quality label, and filtered image quality value.
- the specific implementation manners of the function acquiring subunit 1201 and the error value determining subunit 1202 can refer to the description of step S102 in the above embodiment corresponding to FIG. 2 , which will not be repeated here.
- the loss function includes an absolute value loss function and a square error loss function
- the error value determination subunit 1202 is further configured to determine the first error value between the sample filtered reconstructed frame and the sample original video frame through the square error loss function, the image quality label, and the filtered image quality;
- the error value determining subunit 1202 is further configured to determine a second error value between the sample filtered reconstructed frame and the sample original video frame by using the absolute value loss function, the image quality label, and the filtered image quality;
- the error value determination subunit 1202 is further configured to perform calculation processing on the first error value and the second error value, and determine the result obtained by the calculation as the error value between the sample filtered reconstructed frame and the sample original video frame.
- the data processing device 1 may further include: a filtered video output module 19 , a video quality acquisition module 20 and an application detection module 21 .
- the filtered video output module 19 is configured to input the sample video data to the video coding application of the k+1 deployment update, and output the filtered video data to be detected through the video coding application of the k+1 deployment update;
- the video quality acquisition module 20 is configured to acquire the filtered video quality corresponding to the filtered video data to be detected, and the original video quality corresponding to the sample video data;
- the application detection module 21 is configured to detect the updated video coding application deployed at the k+1th time according to the filtered video quality and the original video quality.
- step S103 for the specific implementation of the filtered video output module 19 , the video quality acquisition module 20 and the application detection module 21 , please refer to the description of step S103 in the above embodiment corresponding to FIG. 3 , which will not be repeated here.
- the application detection module 21 may include: a difference quality determination unit 211 and a detection result determination unit 212 .
- the difference quality determination unit 211 is configured to determine the difference video quality between the filtered video quality and the original video quality
- the detection result determination unit 212 is configured to determine that the second video coding application satisfies the filter quality requirement condition if the difference video quality is less than the difference quality threshold;
- the detection result determining unit 212 is further configured to determine that the second video coding application does not meet the filter quality requirement condition if the difference video quality is greater than the difference quality threshold.
- step S103 For the specific implementation manners of the difference quality determination unit 211 and the detection result determination unit 212, refer to the description of step S103 in the above embodiment corresponding to FIG. 2 , which will not be repeated here.
- the inter-frame filtering model is repeatedly trained by updating the training data set, which can improve the consistency of inter-frame predictive coding frames in training and testing, thereby improving coding efficiency and improving the filtering of video coding applications. performance, reducing the degree of distortion in encoded video.
- FIG. 13 is a schematic structural diagram of a data processing device provided by an embodiment of the present application.
- the data processing device may be a computer program (including program code) running on a computer device, for example, the data processing device is an application software; the data processing device may be used to execute the method shown in FIG. 11 .
- the data processing device 2 may include: a code stream generating module 31 and a code stream sending module 32 .
- the code stream generation module 31 is configured to input the video data into the target video coding application, and perform video coding processing on the video data through the target video coding application to obtain a video compression code stream corresponding to the video data;
- the target video coding application refers to satisfying the filtering
- the video coding application of the k+1 deployment update includes the second filtering model in the training convergence state;
- the second filtering model is based on the first training data as the training
- the sample original video frame of the label, and the first sample to be filtered and reconstructed frame corresponding to the sample original video frame are obtained by training the filter model to be trained in the video coding application including the first filter model that is deployed and updated for the kth time;
- the first training data is generated by the updated video coding application and sample video data of the k-th deployment;
- the first sample frame to be filtered and reconstructed refers to the original video frame of the sample that is updated by the k
- the code stream sending module 32 is configured to send the video compressed code stream to the receiving device, so that the receiving device decodes the video compressed code stream.
- FIG. 13 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
- the apparatus 1 in the above-mentioned embodiment corresponding to FIG. 11 or the apparatus 2 in the embodiment corresponding to FIG. 12 can be applied to the above-mentioned computer equipment 8000, and the above-mentioned computer equipment 8000 can include: a processor 8001, a network interface 8004 and memory 8005, in addition, the computer device 8000 also includes: a user interface 8003, and at least one communication bus 8002. Among them, the communication bus 8002 is used to realize connection and communication between these components.
- the user interface 8003 may include a display screen (Display) and a keyboard (Keyboard), and the optional user interface 8003 may also include a standard wired interface and a wireless interface.
- the network interface 8004 may include a standard wired interface and a wireless interface (such as a WI-FI interface).
- the memory 8005 can be a high-speed RAM memory, or a non-volatile memory, such as at least one disk memory.
- the memory 8005 may also be at least one storage device located away from the aforementioned processor 8001 .
- the memory 8005 as a computer-readable storage medium may include an operating system, a network communication module, a user interface module, and a device control application program.
- the network interface 8004 can provide a network communication function;
- the user interface 8003 is mainly used to provide an input interface for the user; and
- the processor 8001 can be used to call the device control application stored in the memory 8005 program to achieve:
- the sample video data is input to the video coding application including the first filtering model that is deployed and updated for the kth time, and the first training data is generated through the updated video coding application and the sample video data deployed for the kth time;
- the first training data includes as training The sample original video frame of the label, and the first sample to-be-filtered reconstruction frame corresponding to the sample original video frame;
- the first sample to-be-filtered reconstruction frame refers to the video coding application updated through the k-th deployment, for the sample original video frame
- the reconstructed frame is not filtered by the first filtering model;
- the sample original video frame is a video frame in the sample video data;
- k is a positive integer;
- the updated video coding application deployed at the k+1th time satisfies the filtering quality requirements
- the updated video coding application deployed at the k+1th time is determined as the target video coding application for performing video coding processing on the video data.
- the target video coding application refers to the k+1th time that meets the filtering quality requirements
- the target video coding application refers to the k+1th time that meets the filtering quality requirements
- the k+1th deployment of the updated video coding application includes a second filtering model in a state of training convergence; the second filtering model is based on the original video frame of the sample as the training label in the first training data, and the sample
- the first sample to be filtered and reconstructed frame corresponding to the original video frame is obtained by training the filter model to be trained in the video coding application including the first filter model that is deployed and updated for the kth time;
- the first training data is obtained by passing the kth time It is generated by deploying an updated video coding application and sample video data; the first sample frame to be filtered and reconstructed refers to the process of reconstructing the sample original video frame through the k-th deployment of the updated video coding application, without
- the computer device 8000 described in the embodiment of the present application can execute the description of the data processing method in the previous embodiment corresponding to FIG. 2 or FIG. 11 , and can also execute the data processing method in the previous embodiment corresponding to FIG. 11
- the description of the data processing device 2 in the device 1 or the embodiment corresponding to FIG. 12 will not be repeated here.
- the description of the beneficial effect of adopting the same method will not be repeated here.
- the embodiment of the present application also provides a computer-readable storage medium, and the above-mentioned computer-readable storage medium stores the computer program executed by the aforementioned data processing computer device 1000, and
- the above-mentioned computer program includes program instructions.
- the above-mentioned processor executes the above-mentioned program instructions, it can execute the description of the above-mentioned data processing method in the embodiment corresponding to FIG. 3 or FIG. 11 above, so details will not be repeated here.
- the description of the beneficial effect of adopting the same method will not be repeated here.
- the above-mentioned computer-readable storage medium may be the data processing apparatus provided in any one of the foregoing embodiments or an internal storage unit of the above-mentioned computer equipment, such as a hard disk or memory of the computer equipment.
- the computer-readable storage medium can also be an external storage device of the computer device, such as a plug-in hard disk equipped on the computer device, a smart memory card (SMC, Smart Media Card,), a secure digital (SD, Secure Digital) card , flash memory card (flash card) and so on.
- the computer-readable storage medium may also include both an internal storage unit of the computer device and an external storage device.
- the computer-readable storage medium is used to store the computer program and other programs and data required by the computer device.
- the computer-readable storage medium can also be used to temporarily store data that has been output or will be output.
- An aspect of the embodiments of the present application provides a computer program product or computer program, where the computer program product or computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium.
- the processor of the computer device reads the computer instruction from the computer-readable storage medium, and the processor executes the computer instruction, so that the computer device executes the method provided in one aspect of the embodiments of the present application.
- each flow and/or of the method flow charts and/or structural diagrams can be implemented by computer program instructions or blocks, and combinations of processes and/or blocks in flowcharts and/or block diagrams.
- These computer program instructions may be provided to a general purpose computer, special purpose computer, embedded processor, or processor of other programmable data processing equipment to produce a machine such that the instructions executed by the processor of the computer or other programmable data processing equipment produce a A device for realizing the functions specified in one or more steps of the flowchart and/or one or more blocks of the structural diagram.
- These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture comprising instruction means, the instructions
- the device implements the functions specified in one or more blocks of the flowchart and/or one or more blocks of the structural schematic diagram.
- These computer program instructions can also be loaded onto a computer or other programmable data processing device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby
- the instructions provide steps for implementing the functions specified in one or more steps of the flowchart and/or one or more blocks in the structural illustration.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品,方法包括:将样本视频数据输入至第k次部署更新的视频编码应用,通过第k次部署更新的视频编码应用与样本视频数据,生成第一训练数据;基于第一训练数据中的样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到第二滤波模型,在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用;当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将第k+1次部署更新的视频编码应用确定为目标视频编码应用。
Description
相关申请的交叉引用
本申请基于申请号为202111576383.3,申请日为2021年12月21日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品。
目前,在对视频进行编码压缩处理的过程中,视频编码压缩算法均采用的是有损压缩的方式,即编码压缩视频的图像与原始视频的图像存在一定的失真,而且,在压缩率较高的情况下,图像的扭曲、失真更是严重。
现有的视频编码标准中已经引入了环路滤波器来对压缩视频的图像进行滤波处理,从而减少失真程度,使得压缩视频的图像质量能够无限接近于原始视频的图像质量。但是,由于传统的环路滤波器主要通过人工来设计滤波系数,过于依赖于人工经验,准确率并不高,无法很好地减少失真程度。
发明内容
本申请实施例提供一种数据处理方法、装置、计算机设备、计算机可读存储介质及计算机程序产品,可以提高滤波性能,减少编码视频的图像失真度,提高编码视频的图像质量。
本申请实施例一方面提供了一种数据处理方法,包括:
将样本视频数据输入至第k次部署更新的包括第一滤波模型的视频编码应用,通过第k次部署更新的视频编码应用以及样本视频数据,生成第一训练数据;第一训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用;
当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
本申请实施例一方面提供了另一种数据处理方法,包括:
将视频数据输入至目标视频编码应用中,通过目标视频编码应用对视频数据进行视频编码处理,视频数据对应的视频压缩码流;目标视频编码应用是指满足滤波质量需求条件的第k+1次部署更新的视频编码应用;第k+1次部署更新的视频编码应用包括处于训练收敛状态的第二滤波模型;第二滤波模型基于第一训练数据中作为训练标签的样本 原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧,对第k次部署更新的包括第一滤波模型的视频编码应用中的待训练滤波模型进行训练所得到;第一训练数据是通过第k次部署更新的视频编码应用以及样本视频数据所生成;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
将视频压缩码流发送至接收设备,视频压缩码流用于供接收设备进行解码处理。
本申请实施例一方面提供了一种数据处理装置,包括:
训练数据生成模块,用于将样本视频数据输入至第k次部署更新的包括第一滤波模型的视频编码应用;
训练数据生成模块,还用于通过第k次部署更新的视频编码应用以及样本视频数据,生成第一训练数据;第一训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
模型训练模块,用于基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型;
应用更新模块,用于在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用;
目标应用确定模块,用于当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
本申请实施例一方面提供了另一种数据处理装置,包括:
码流生成模块,用于将视频数据输入至目标视频编码应用中,通过目标视频编码应用对视频数据进行视频编码处理,得到视频数据对应的视频压缩码流;目标视频编码应用是指满足滤波质量需求条件的第k+1次部署更新的视频编码应用;第k+1次部署更新的视频编码应用包括处于训练收敛状态的第二滤波模型;第二滤波模型基于第一训练数据中作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧,对第k次部署更新的包括第一滤波模型的视频编码应用中的待训练滤波模型进行训练所得到;第一训练数据是通过第k次部署更新的视频编码应用以及样本视频数据所生成;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
码流发送模块,用于将视频压缩码流发送至接收设备,视频压缩码流用于供接收设备进行解码处理。
本申请实施例一方面提供了一种计算机设备,包括:处理器和存储器;
存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请实施例中的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时,执行本申请实施例中的方法。
本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
在本申请实施例中,在将滤波模型部署至视频编码应用后,可以对视频编码应用进行迭代更新,通过更新训练数据重复对滤波模型的训练过程,并不断对视频编码应用进行部署更新,可以提升滤波模型的训练效果与测试效果的一致性,提升编码效率,也可 以在无需依赖人工经验的情况下,提升视频编码应用中所部属的滤波模型的滤波质量,减少编码视频的失真程度。综上,本申请可以提高滤波性能,减少编码视频的图像失真度,提高编码视频的图像质量。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络架构图;
图2是本申请实施例提供的一种数据处理方法的方法流程示意图;
图3是本申请实施例提供的一种编码参考关系的示意图;
图4是本申请实施例提供的一种编码参考关系的示意图;
图5是本申请实施例提供的一种迭代训练的系统架构图;
图6是本申请实施例提供的一种训练滤波模型的流程示意图;
图7是本申请实施例提供的一种模型训练的场景示意图;
图8是本申请实施例提供的一种模型训练的场景示意图;
图9是本申请实施例提供的一种训练滤波模型的流程示意图;
图10为本申请实施例提供的另一种模型训练的场景示意图;
图11是本申请实施例提供的一种数据处理方法的方法流程示意图;
图12是本申请实施例提供的一种数据处理装置的结构示意图;
图13是本申请实施例提供的一种计算机设备的结构示意图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参见图1,图1是本申请实施例提供的一种网络架构的结构示意图。如图1所示,该网络架构可以包括业务服务器1000和终端设备集群。该终端设备集群可以包括一个或者多个终端设备,这里将不对终端设备的数量进行限制。如图1所示,多个终端设备具体可以包括终端设备100a、终端设备100b、终端设备100c、…、终端设备100n。如图1所示,终端设备100a、终端设备100b、终端设备100c、…、终端设备100n可以分别与上述业务服务器1000进行网络连接,以便于每个终端设备可以通过该网络连接与业务服务器1000进行数据交互。其中,这里的网络连接不限定连接方式,可以通过有线通信方式进行直接或间接地连接,也可以通过无线通信方式进行直接或间接地连接,还可以通过其他方式,本申请实施例在此不做限制。
每个终端设备均可以集成安装有目标应用,当该目标应用运行于各终端设备中时,可与上述图1所示的业务服务器1000之间进行数据交互。其中,该目标应用可以包括具有显示文字、图像、音频以及视频等数据信息功能的应用。其中,该应用可以包括社交应用、多媒体应用(例如,视频应用)、娱乐应用(例如,游戏应用)、教育应用、直播应用等具有视频编码功能的应用,当然,应用还可以为其他具有显示数据信息功能、视频编码功能的应用,在此不再一一进行举例。其中,该应用可以为独立的应用,也可 以为集成在某应用(例如,社交应用、教育应用以及多媒体应用等)中的嵌入式子应用,在此不进行限定。
为便于理解,本申请实施例可以在图1所示的多个终端设备中选择一个终端设备作为目标终端设备。例如,本申请实施例可以将图1所示的终端设备100a作为目标终端设备,该目标终端设备中可以集成有具备视频编码功能的目标应用。此时,该目标终端设备可以通过该应用客户端对应的业务数据平台与业务服务器1000之间实现数据交互。
应当理解,本申请实施例中的具有视频编码功能的计算机设备(例如,终端设备100a、业务服务器1000)可以通过云技术,实现对多媒体数据(例如,视频数据)的数据编码以及数据传输。其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术可以是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
例如,本申请实施例提供的数据处理方法可以应用于视频观看场景、视频通话场景、视频传输场景、云会议场景、直播场景等高分辨率、高帧率的场景。以视频通话场景为例,在视频通话场景中,两个用户在进行视频通话时,用户a对应的终端设备可以基于目标视频编码应用对与用户a相关联的视频数据进行视频编码处理,得到视频压缩码流后,将视频压缩码流传输至用户b(即与用户a进行视频通话的用户)对应的终端设备,以使得该用户b对应的终端设备可以进行解码,并在显示界面中输出用户a关联的视频数据。
其中,云会议是基于云计算技术的一种高效、便捷、低成本的会议形式。使用者只需要通过互联网界面,进行简单易用的操作,便可快速高效地与各地团队及用户同步分享语音、数据文件及视频,而会议中数据的传输、处理等复杂技术由云会议服务商帮助使用者进行操作。目前云会议主要集中在以软件即服务(SaaS,Software as a Service)模式为主体的服务内容,包括电话、网络、视频等服务形式,基于云计算的视频会议就叫云会议。在云会议时代,数据的传输、处理、存储全部由视频会议厂家的计算机资源处理,用户完全无需再购置昂贵的硬件和安装繁琐的软件,只需打开浏览器,登录相应界面,就能进行高效的远程会议。云会议系统支持多服务器动态集群部署,并提供多台高性能服务器,大大提升了会议稳定性、安全性、可用性。近年来,视频会议因能大幅提高沟通效率,持续降低沟通成本,带来内部管理水平升级,而获得众多用户欢迎,已广泛应用在交通、运输、金融、运营商、教育、企业等各个领域。毫无疑问,视频会议运用云计算以后,在方便性、快捷性、易用性上具有更强的吸引力,必将激发视频会议应用新高潮的到来。
应当理解,具有视频编码功能的计算机设备可以通过视频编码器对视频数据进行编码处理,以得到该视频数据对应的视频码流,进而可以提升视频数据的传输效率。其中,视频编码器可以为AV1视频编码器,H.266视频编码器,AVS3视频编码器等,在此不再一一进行举例。其中,视频编码器需要符合对应的视频编码压缩标准,例如,该AV1视频编码器的视频压缩标准是开放媒体联盟(AOM,Alliance for Open Media)开发的第一代视频编码标准。
为便于理解视频编码器对视频数据进行编码的流程,以下将对视频编码的具体流程进行阐述说明。视频编码的流程可以至少包括以下步骤(1)至步骤(5):
步骤(1):对视频帧进行块划分(block partition structure)。可以理解的是,将视频数据输入至视频编码器后,视频编码器可以对视频数据的每一个视频帧进行编码处理,而针对某个视频帧而言,可以根据视频帧的大小,划分成若干个不重叠的处理单元,每个处理单元将进行类似的压缩操作。其中,这个处理单元可以被称作编码树单元(CTU,Coding Tree Uint)或最大编码单元(LCU,Largest Code Unit)。对于每一个CTU,可以继续进行更加精细的划分,得到一个或多个基本编码的单元,这个单元可以称之为编码单元(CU,Coding Uint)。其中,每个CU是一个编码环节中最基本的元素。以下步骤2-步骤4描述的可以是对每一个CU可能采用的各种编码方式。
步骤(2):对CU进行预测编码(Predictive Coding)。可以理解的是,在将视频帧进行划分得到一个或多个编码单元(即CU)后,可以对每个编码单元进行预测编码,其中,对编码单元进行预测时的预测方式可以包括帧内预测方式(预测的信号全部来自于同一图像内已经编码重建过的区域)与帧间预测方式(预测的信号来自已经编码过的,不同于当前图像的其他图像,即其他视频帧,可以称之为参考图像后参考帧)。应当理解,原始视频信号(可以理解为原始视频帧)经过选定的已重建视频信号(可以为某个已经过解码端解码重建处理的视频帧)的预测后,可以得到残差视频信号(即残差值),而视频编码应用中的编码端可以为当前CU确定出在众多可能的预测编码方式中,选择出最适合的一种,并将针对该当前CU的预测编码方式告知视频编码应用中的解码端,以使得解码端对当前视频帧进行解码重建处理,生成重建帧(该重建帧即可作为编码端对某个原始视频帧进行预测编码时的参考帧)。
步骤(3):对残差视频信号进行变换编码及量化(Transform & Quantization):可以将上述所得到的残差视频信号进行变换处理(如离散余弦变换(DCT,Discrete Cosine Transform)处理),通过变换处理可以将残差视频信号转换到变换域中(可称之为变换系数)。随后,在变换域中的信号,可以进一步的进行有损的量化操作,丢失掉一定的信息,使得量化后的信号有利于压缩表达。其中,在一些视频编码标准中,对于变换处理可能一种或多种的变换方式可以选择,因此,编码端也需要为当前编码CU选择其中的一种变换,并告知解码端。而量化的精细程度通常是由量化参数(QP,Quantization Parameter)来决定,当QP的取值大于QP阈值时,表示更大取值范围的系数将被量化为同一个输出,因此通常会带来更大的失真,及较低的码率;相反,当QP的取值小于QP阈值时,表示较小取值范围的系数将被量化为同一个输出,因此通常会带来较小的失真,同时对应较高的码率。
步骤(4):将量化后的信号进行熵编码(Entropy Coding)或统计编码:可以理解的是,上述得到的量化后的变换域信号,可以根据各个值出现的频率,进行统计压缩编码,最后输出二值化(包括数值0或者数值1)的压缩码流。同时,编码所产生的其他信息,例如选择的模式,运动矢量等,也需要进行熵编码以降低码率。其中,统计编码是一种无损编码方式,可以有效的降低表达同样的信号所需要的码率。常见的统计编码方式有变长编码方式(VLC,Variable Length Coding)或者基于上下文的二值化算术编码方式(CABAC,Content Adaptive Binary Arithmetic Coding)。
步骤(5):环路滤波(Loop Filtering)操作:可以理解的是,已经编码过的图像,可以对其进行反量化,反变换及预测补偿的操作(可以理解为上述步骤2至步骤4的反向操作),由此可获得重建的解码图像。其中,重建图像与原始图像相比,由于存在量化的影响,那么部分信息与原始图像会有所不同,产生失真(Distortion)。可以通过对重建图像进行滤波操作,例如去块效应滤波(Deblocking Filter,DBF),取样自适应偏移(SAO,Sample Adaptive Offset)或者调适性循环滤波(ALF,Adaptive Loop Filter)等滤波器,可以有效的降低量化所产生的失真程度。而经过滤波后的重建图像,将作为 后续对某个视频帧进行编码时的参考,用于对将来的信号进行预测,所以上述的滤波操作也被称为环路滤波,及在编码环路内的滤波操作。
可以理解的是,为提高视频编码效率,提高视频编码器中所部署的滤波器的滤波性能,本申请实施例提出一种对滤波器(也可称之为滤波模型)进行迭代训练、对视频编码器(也可称之为视频编码应用)进行迭代更新的方法,其具体方法可参见后续图2所对应实施例中的描述。
可以理解的是,本申请实施例提供的方法可以由计算机设备执行,计算机设备包括但不限于终端设备或业务服务器。其中,业务服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选的,可以理解的是,上述计算机设备(如上述业务服务器1000、终端设备100a、终端设备100b等等)可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。在分布式系统中,任意形式的计算机设备,比如业务服务器、终端设备等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。为便于理解,以下将对区块链的概念进行说明:区块链是一种分布式数据存储、点对点传输、共识机制以及加密算法等计算机技术的新型应用模式,主要用于对数据按时间顺序进行整理,并加密成账本,使其不可被篡改和伪造,同时可进行数据的验证、存储和更新。当计算机设备为区块链节点时,由于区块链的不可被篡改特性与防伪造特性,可以使得本申请实施例中的数据(如视频数据、编码处理后的视频数据、编码过程中的相关参数等等)具备真实性与安全性,从而可以使得基于这些数据进行相关数据处理后,得到的结果更为可靠。
进一步地,请参见图2,图2是本申请实施例提供的一种数据处理方法的方法流程示意图。其中,该方法可由终端设备(如上述图1所对应实施例中终端设备集群中的任一终端设备,如终端设备100a)所执行;该方法也可由业务服务器(如上述图1所对应实施例中的业务服务器1000)所执行;该方法还可由终端设备与业务服务器共同执行。以该方法由业务服务器所执行为例,如图2所示,该方法流程可以至少包括以下步骤S101至步骤S103:
步骤S101,将样本视频数据输入至第k次部署更新的包括第一滤波模型的视频编码应用,通过第k次部署更新的视频编码应用以及样本视频数据,生成第一训练数据;第一训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧;第一样本待滤波重建帧是指在通过第k次部署更新的视频编码应用,对样本原始视频帧进行重建的过程中,未经第一滤波模型进行滤波处理的重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数。
本申请实施例中,k为整数变量,取值从1开始递增,样本视频数据可以是指用于对滤波模型进行训练的视频数据,计算机设备(例如,终端设备)可以在数据传输场景中,获取由图像采集器(例如,终端设备的摄像头)所采集到的视频数据,该视频数据即可作为样本视频数据,终端设备可以将该样本视频数据输入至视频编码应用中。换言之,当视频编码应用部署至计算机设备中时,该计算机设备具备视频编码功能,计算机设备可以通过图像采集器采集到视频数据,而视频编码应用也可以获取到该视频数据。其中,可以理解的是,这里的视频数据还可以为其他场景下的任意一个需要进行编码处 理的视频数据。例如,该视频数据可以为在音视频通话场景中,通过终端设备的摄像头所采集的视频数据,该视频数据也可以为终端设备的相册中所保存的视频数据,该视频数据还可以为终端设备在网络上所下载的视频数据,在此不做限定。
可以理解的是,视频编码应用可以用于对视频数据(例如,样本视频数据)进行编码处理,得到视频数据对应的视频码流。而视频编码应用在对视频数据进行编码时,通常是对视频数据中的每个视频帧进行编码处理。例如,视频编码应用可以从样本视频数据中获取待进行编码处理的视频帧,该视频帧可称之为目标视频帧,视频编码应用可以对目标视频帧进行图像块划分处理,得到目标视频帧的一个或者多个图像块,并且可以从一个或者多个图像块中获取待编码单元,并对待编码单元进行预测处理。其中,在对目标视频帧进行编码处理时,可以获取该目标视频帧所属的帧类型,而在对待编码单元进行预测处理时,可以基于该目标视频帧所属的帧类型对待编码单元进行预测。而该帧类型可以包括帧内预测类型与帧间预测类型,例如,帧内编码帧(intra picture,简称I帧)所属的帧类型即为帧内预测类型,双向预测编码帧(bi-directional interpolated prediction frame,简称B帧)与前向预测编码帧(predictive-frame,简称P帧)所属的帧类型即为帧间预测类型。当目标视频帧的帧类型为帧内预测类型时,对该待编码单元进行预测时,就可只用参考该目标视频帧内的已经编码重建过的区域(需要说明的是,这里的帧内预测类型可以是指全帧内预测类型,即对目标视频帧内的所有待编码单元进行预测时,均只用参考目标视频帧内的区域);而当目标视频帧的帧类型为帧间预测类型时,待该待编码单元进行预测时,就需要参考其他已经编码过的、不同于该目标视频帧的视频帧(可称之为参考视频帧)。其中,在选取目标视频帧的参考视频帧时,可以根据目标视频帧的帧类型来进行选择,例如,当目标视频帧为双向预测编码帧时,则针对该目标视频帧的参考视频帧即可为该目标视频帧的前一帧与后一帧;当目标视频帧为前向预测编码帧时,则针对该目标视频帧的参考视频帧即可为该目标视频帧的前一帧。其中,对视频帧进行编码处理的具体实现步骤,可以参见上述图1所对应实施例中的描述。
为便于理解视频帧之间的编码依赖关系,请一并参见图3,图3是本申请实施例提供的一种编码参考关系的示意图。在如图3所示的编码配置中,视频帧的编码顺序与显示顺序是一致的,箭头指向参考帧,数字用于表征编码顺序。即,可以优先对第0帧(即I帧)进行编码,再对第1帧的B帧进行编码,其中,在对该第1帧的B帧进行编码时,需要参考经过编码重建的第0帧的I帧;随后,可以再对第2帧的B帧进行编码,在对该第2帧的B帧进行编码时,需要参考经过编码重建的第1帧的B帧。依次类推,直至完成对所有视频帧的编码处理。
为便于理解视频帧之间的编码依赖关系,请一并参见图4,图4是本申请实施例提供的一种编码参考关系的示意图。在如图4所示的编码配置中,视频帧的编码顺序与显示顺序是不一致的,箭头指向参考帧,数字用于表征编码顺序。即,可以优先对第0帧(即I帧)进行编码,再对第1帧的B帧进行编码,其中,在对该第1帧的B帧进行编码时,需要参考经过编码重建的第0帧的I帧;随后,可以再对第2帧的B帧进行编码,在对该第2帧的B帧进行编码时,箭头指向第0帧与第1帧,则需要参考经过编码重建的第1帧与第0帧。依次类推,直至完成对所有视频帧的编码处理。
可以理解的是,通过前文所述可知,按照编码配置的视频帧编码顺序对视频帧进行编码处理时,针对某个视频帧,可以采用如图1所示的编码流程,根据该帧的帧类型来确定出参考帧,根据参考帧对其进行预测处理,得到预测单元,再确定出预测单元与待编码单元之间的残差值,基于预测单元与残差值可以确定出该视频帧对应的重建帧(例如,将预测单元与残差值进行相加处理,再进行滤波处理得到重建帧),该重建帧即可 进入参考帧队列,为后续的视频帧编码提供参考数据。应当理解,通过对视频帧的编码单元进行预测处理可以得到预测单元、再基于预测单元可以确定残差值、随后,可以基于预测单元以及残差值确定出重建图像(或称之为滤波前重建帧),对重建图像进行滤波处理,即可得到该视频帧对应的滤波后的重建帧。
那么可以理解的是,将样本视频数据输入至视频编码应用中后,视频编码应用可对每个视频帧进行编码重建,得到每个视频帧对应的重建帧,而本申请实施例可以在编码重建的过程中,获取到还未经过滤波处理的重建帧(可称之为样本待滤波重建帧),可以将每个样本原始视频帧及其对应的样本待滤波重建帧组成一组训练数据对,从而可以得到多组训练数据对,该多组训练数据对可组成训练数据集,该训练数据集可用于对视频编码应用中的滤波模型(也就是用于对逆变换后的重建帧进行滤波处理的模型)进行训练,使得视频编码应用的滤波模型能够具备更高的滤波性能。
在本申请实施例中,在对视频编码应用中的滤波模型进行训练并使其处于模型收敛状态时,可以将该训练后的滤波模型对视频编码应用中所部署的滤波模型进行部署更新(即将训练后的滤波模型部署到视频编码应用中,以替换视频编码应用中原有的滤波模型),而将视频编码应用中所部署的滤波模型进行部署更新的一次过程可以理解为对视频编码应用的一次部署更新,本申请实施例可以通过更新后的视频编码应用来不断生成新的训练数据,再利用新的训练数据来对滤波模型进行重复训练,再基于重新训练的滤波模型对视频编码应用进行再一次部署更新,直至视频编码应用的滤波性能满足滤波质量需求条件。例如,以还未部署更新的视频编码应用为例,该还未部署更新的视频编码应用中包括有还未经过训练的初始滤波模型,可以将样本视频数据输入至视频编码应用中,通过该视频编码应用即可生成样本视频数据对应的训练数据,通过该训练数据即可对初始滤波模型进行训练调整,得到训练调整后的滤波模型;随后,可以将该训练调整后的滤波模型中更新部署至视频编码应用中,得到第1次部署更新的视频编码应用;随后,可以再次通过第1次部署更新的视频编码应用生成新的训练数据,再基于新的训练数据对滤波模型进行再一次训练调整,得到新的训练后的滤波模型,然后又可以该训练调整后的滤波模型更新部署至第1次部署更新的视频编码应用中,得到第2次部署更新的视频编码应用,直至视频编码应用的滤波性能满足需求条件。
也就是说,以当前的视频编码应用为第k次部署更新的视频编码应用(部署有第一滤波处理模型),且该第k次部署更新的视频编码应用还未满足滤波质量需求条件为例,此时可将样本视频数据输入至为第k次部署更新的视频编码应用中,通过第k次部署更新的视频编码应用即可生成训练数据(可称之为第一训练数据),该第一训练数据包括作为训练标签的样本原始视频帧,以及所述样本原始视频帧对应的样本待滤波重建帧(可称之为第一样本待滤波重建帧)。该第一训练数据即可对第一滤波模型进行训练调整。其中,通过上述可知,对样本原始视频帧进行重建的过程可以包括预测处理得到预测单元、基于预测单元确定残差值、基于预测单元与残差值确定重建图像(或称之为重建帧)以及对重建图像进行滤波处理,那么该样本待滤波重建帧可以理解为对样本原始视频帧进行重建的过程中,还未经过滤波处理的重建帧。根据一个样本原始视频帧与其对应的样本待滤波重建帧即可组成一组训练数据对,根据多组训练数据对即可组成第一训练数据。
步骤S102,基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用。
本申请实施例中,通过上述可知,在对视频帧进行编码处理时,可以先确定每个视 频帧所属的帧类型,再基于帧类型对待编码单元进行预测处理等编码处理。而本申请实施例中的视频编码应用中的滤波模型,可以用于对属于帧内预测类型的重建帧(例如,I帧对应的重建帧)进行滤波处理,也可用于对属于帧间预测类型的重建帧(B帧对应的重建帧)进行滤波处理。也就是说,上述第一滤波模型可以是指I帧与B帧共同对应的滤波模型,在此种情况下,待训练滤波模型可以是指第一滤波模型,可以基于第一训练数据对第一滤波模型进行训练,得到处于训练收敛状态的第二滤波模型。随后,可以将第k次部署更新的视频编码应用中的第一滤波模型,替换为第二滤波模型,从而可以得到第k+1次部署更新的视频编码应用。
其中,对于基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型的具体实现方式可为:可以将第一样本待滤波重建帧输入至第一滤波模型中,通过第一滤波模型可以输出第一样本待滤波重建帧对应的样本滤波重建帧;随后,可以确定样本滤波重建帧与样本原始视频帧之间的误差值,通过误差值可以调整第一滤波模型的模型参数,得到具有调整后的模型参数的第一滤波模型;当具有调整后的模型参数的第一滤波模型满足模型收敛条件时,即可将具有调整后的模型参数的第一滤波模型确定为处于训练收敛状态的第二滤波模型。
需要说明的是,这里的模型收敛条件可以是指训练调整次数达到预设调整次数,也可以是指调整后的第一滤波模型所输出的滤波图像的图像质量满足质量需求条件。例如,以模型收敛条件为训练调整次数达到预设调整次数为例,假设预设调整次数为10次,则在基于第一次生成的误差值调整1次模型参数后,可以再次将第一样本待滤波重建帧输入至进行了1次调整的第一滤波模型中,再次输出样本滤波重建帧,再生成新的误差值,再对模型参数进行调整,直至调整了10次模型参数,此时可以将进行10次调整后的第一滤波模型确定为满足模型收敛条件(即处于训练收敛状态)。
其中,对于确定样本滤波重建帧与样本原始视频帧之间的误差值的具体实现方式可为:可以获取第k次部署更新的视频编码应用所对应的损失函数;随后,可以基于损失函数获取样本原始视频帧所对应的原始图像质量,并将原始图像质量作为图像质量标签;随后,可以基于损失函数获取样本滤波重建帧所对应的滤波图像质量,通过损失函数、图像质量标签以及滤波图像质量即可确定样本滤波视频帧与样本原始视频帧之间的误差值。
其中,可以理解的是,在本申请实施例中,对于每次的滤波模型的迭代训练均是独立进行的,也就是说,在生成训练数据后,基于训练数据训练滤波模型的损失函数,可以是不同的独立的损失函数。例如,在基于第一次生成的训练数据对滤波模型进行训练时,可以采用损失函数L1(绝对值损失函数)确定误差值,并基于误差值对模型参数进行调整;在基于第二次生成的训练数据对滤波模型进行训练时,可以采用损失函数L2(平方误差损失函数)确定误差值,并基于误差值对模型参数进行调整;在基于第三次生成的训练数据对滤波模型进行训练时,可以先采用损失函数L1确定出一个误差值,再采用损失函数L2确定出一个误差值,可以先基于该L1的误差值对模型参数进行调整,再基于L2的误差值在L1调整的基础上继续调整;当然,在后续生成的训练数据对滤波模型进行训练时,还可以采用将L1的误差值与L2的误差值进行相加的方式,基于相加得到的总的误差值对模型参数进行调整。这里对每一次迭代的损失函数并不进行限定。
其中,对于本申请实施例的各个损失函数,除了可以包括绝对值损失函数L1、平方误差损失函数L2以外,还可以为其他任一能够确定标签与输出数据之间的误差的损失函数,例如,该损失函数可以包括交叉熵损失函数、均方差损失函数、对数损失函数、指数损失函数等等。以第k次部署更新的视频编码应用所对应的损失函数包括绝对值损 失函数与平方误差损失函数为例,对于通过损失函数、图像质量标签以及滤波图像质量确定样本滤波重建帧与样本原始视频帧之间的误差值的具体实现方式可以为:可以通过平方误差损失函数、图像质量标签以及滤波图像质量,确定样本滤波重建帧与样本原始视频帧之间的第一误差值;随后,可以通过绝对值损失函数、图像质量标签以及滤波图像质量,确定样本滤波重建帧与样本原始视频帧之间的第二误差值;随后,可以将第一误差值与第二误差值进行运算处理(例如,进行相加运算处理),可以将运算得到的结果(例如,相加的结果)确定为样本滤波重建帧与样本原始视频帧之间的误差值。
步骤S103,当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
本申请实施例中,每次对视频编码应用进行部署更新后,都可以对视频编码应用进行检测,确定其是否满足滤波质量需求条件,在确定其满足滤波质量需求条件时,就可以不用再对视频编码应用进行迭代更新,可以将该视频编码应用投入使用(例如,作为目标视频编码应用对后续的视频数据进行视频编码处理)。以检测第k+1次部署更新的视频编码应用为例,对于检测视频编码应用的具体实现方式可为:可以将样本视频数据输入至第k+1次部署更新的视频编码应用,通过第k+1次部署更新的视频编码应用输出待检测滤波视频数据;随后,可以获取待检测滤波视频数据所对应的滤波视频质量,以及样本视频数据所对应的原始视频质量;可以根据滤波视频质量与原始视频质量,对第k+1次部署更新的视频编码应用进行检测。
其中,对于根据滤波视频质量与原始视频质量,对第k+1次部署更新的视频编码应用进行检测的具体实现方式可为:可以确定滤波视频质量与原始视频质量之间的差异视频质量;若差异视频质量小于差异质量阈值,则可以确定第二视频编码应用满足滤波质量需求条件;而若差异视频质量大于差异质量阈值,则可以确定第二视频编码应用未满足滤波质量需求条件。
可以理解的是,可以获取到第k+1次部署更新的视频编码应用输出的每一个滤波重建帧(经过第二滤波模型进行滤波处理后的重建帧),可以将滤波重建帧的滤波图像质量与对应的原始视频帧的原始图像质量进行对比,若两者之间的差异质量小于预设阈值,则可以确定该第二滤波模型部署至视频编码应用后,模型所处理的视频帧是符合滤波需求的。
可以理解的是,当第k+1次部署更新的视频编码应用未满足滤波质量需求条件时,可以基于第k+1次部署更新的视频编码应用再次生成新的训练数据,并基于新的训练数据再次对第二滤波模型进行训练,得到新的滤波模型(如第三滤波模型)。随后,可以将第k+1次部署更新的视频编码应用中部署的第二滤波模型更新为第三滤波模型,得到第k+2次部署更新的视频编码应用,此时可以再次进行应用的检测,直至视频编码应用满足滤波质量需求条件,从而可以得到目标视频编码应用。
为便于理解本申请实施例对于模型训练以及应用迭代更新的具体流程,请一并参见图5,图5是本申请实施例提供的一种迭代训练的系统架构图。如图5所示,该系统架构可以包括数据集生成模块、模型训练模块以及应用集成模块。为便于理解,以下将对各个模块进行阐述说明:
数据集生成模块:主要配置为生成训练数据集(也可称为训练数据),应当理解,通过视频编码应用可以对视频数据进行编码重建处理,在编码重建处理的过程中,数据集生成模块可以将待滤波重建帧(即还未经过滤波处理的重建帧)及其对应的原始视频帧,作为一组训练数据对,由此可以得到包括多组训练数据对的训练数据。
模型训练模块:主要配置为对滤波模型进行训练。应当理解,上述数据集生成模块 所生成的训练数据可以传输至模型训练模块,在模型训练模块中,可以基于训练数据对滤波模型进行训练,使得滤波模型可以满足训练目标。
应用集成模块:主要配置为将训练后的滤波模型集成部署至视频编码应用中。应当理解,应用集成模块可以将上述训练后的滤波模型部署集成到视频编码应用中,此时可以将视频数据输入至集成有训练后的滤波模型的视频编码应用中,检测该视频编码应用在实际应用中,是否能够满足滤波需求条件(即检测应用的滤波性能是否满足预设需求条件)。若满足,则可以将该视频编码应用投入使用,若不满足,则可以再次使用数据集生成模块,基于该新的视频编码应用重新生成训练数据集,并基于新的训练数据集再次训练滤波模型,再进行应用集成,再进行实际的滤波处理,直至视频编码应用满足滤波需求条件。也就是说,训练后的滤波模型在满足训练目标的情况下(即满足滤波需求条件的情况下),在将其集成部署至视频编码应用中后,由于帧间预测类型的编码帧(帧间预测编码帧)存在不同的参考关系,那么帧间预测编码帧对应的滤波前的重建帧会与训练过程中的滤波前的重建帧不一致,训练与测试的结果不一致,滤波模型在视频编码应用中的滤波性能并不会是预期效果。而本申请实施例通过每一次部署更新的视频编码应用重新生成训练数据集,再次训练滤波模型,并再次集成到视频编码应用中进行实际滤波处理的迭代训练过程,可以不断提升训练与测试的一致性,直到视频编码应用中的滤波模型满足滤波需求条件,从而提升编码效率。
需要说明的是,在数据集生成模块生成训练数据集时,对于训练数据集,还可以采用集成有相当性能滤波器的软件来生成。即,对于当前滤波模型,可以采用集成有与当前模型具有相当性能滤波器的软件来生成训练数据,再基于训练数据对当前滤波模型进行训练。比如对于应用的第1次迭代更新前,可以使用与初始的还未经过训练的滤波模型具有相当性能的滤波器(即传统滤波器,如基于人工经验确定滤波参数的滤波器)去生成训练数据集,并使用该训练数据集完成第1次迭代更新中的模型训练过程(即采用该训练数据集去训练初始的还未经过训练的滤波模型)。
在本申请实施例中,可以将样本视频数据输入至第k次(如,第1次、第2次、第3次…….)部署更新的视频编码应用(被部署有第一滤波模型的视频编码应用)中,通过该第k次部署更新的视频编码应用可以输出该样本视频数据对应的第一训练数据;基于该第一训练数据可以对第一滤波模型进行重新训练,得到第二滤波模型,而第二滤波模型又可以对第k次部署更新的视频编码应用进行又一次部署更新,从而可以得到第k+1次部署更新的视频编码应用;此时可以对第k+1次部署更新的视频编码应用进行检测,当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,即可将第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。应当理解,将滤波模型(例如,第一滤波模型)部署至视频编码应用即是对视频编码应用的一次部署更新,在基于视频编码应用生成训练数据后,可以基于机器学习的方式对滤波模型进行训练,而随后可以将训练后的滤波模型部署更新至视频编码应用中,得到更新后的视频编码应用;随后,本申请实施例可以基于更新后的视频编码应用继续生成新的训练数据,再基于新的训练数据对滤波模型进行又一次训练,随后可以再一次将训练后的滤波模型部署更新至视频编码应用中,得到又一次更新后的视频编码应用,直到该视频编码满足滤波质量需求条件。
也就是说,本申请实施例可以在将滤波模型部署至视频编码应用后,可以对视频编码应用进行迭代更新,通过更新训练数据重复对滤波模型的训练过程,并不断对视频编码应用进行部署更新,可以提升滤波模型的训练效果与测试效果的一致性,提升编码效率,也可以在无需依赖人工经验的情况下,提升视频编码应用中所部属的滤波模型的滤波性能,减少编码视频的失真程度。综上,本申请实施例可以提高滤波性能,减少编码 视频的图像失真度,提高编码效率。
通过上述可知,在对视频帧进行编码处理时,可以先确定每个视频帧所属的帧类型,再基于帧类型对待编码单元进行预测处理等编码处理。而由于帧间预测编码帧(在编码过程中,可以将每个视频帧称之为编码帧,而帧间预测编码帧可以理解为所属帧类型为帧间预测类型的编码帧,如B帧)的预测模式为帧间预测模式,可参考其他重建帧进行预测,通常预测精度更高;而帧内预测编码帧(可以理解为所属帧类型为帧内预测类型的编码帧,如I帧)的预测模式为帧内预测模式,参考的是本帧的其他区域,通常预测精度会低于帧间预测编码帧。也就是说,对于滤波模型而言,帧内预测编码帧与帧间预测编码帧的滤波前的图像特征(可以理解为在图1所对应流程中,未经滤波处理前的重建帧(可称之为待滤波重建帧)的特征)会不同,存在明显的差异,那么若采用同一滤波模型进行统一滤波处理,对滤波后的图像质量会存在一定影响。那么为了使得帧内预测编码帧与帧间预测编码帧的滤波效果更好,即提高滤波后的图像质量,本申请实施例可以为帧内预测编码帧与帧间预测编码帧训练不同的滤波模型,采用不同的滤波模型来对帧内预测编码帧对应的待滤波重建帧与帧间预测编码帧对应的待滤波重建帧进行滤波处理。例如,采用帧内滤波模型对帧内预测编码帧对应的待滤波重建帧进行滤波处理,采用帧间滤波模型对帧间预测编码帧对应的待滤波重建帧进行滤波处理。
可以理解的是,在采用不同的滤波模型来对帧内预测编码帧与帧间预测编码帧进行滤波处理时,在本申请实施例中的视频编码应用中,可以包括用于对属于帧内预测类型的重建帧(帧内预测编码帧对应的待滤波重建帧,例如,I帧对应的重建帧)进行滤波处理的帧内滤波模型,以及用于对属于帧间预测类型的重建帧(帧间预测编码帧对应的待滤波重建帧,例如,B帧对应的重建帧)进行滤波处理的帧间滤波模型。本申请实施例可以在帧内滤波模型与帧间滤波模型之间确定出待训练模型,再基于训练数据对待训练模型进行训练。例如,以上述第k次部署更新的视频编码应用中所部署的第一滤波模型包括用于对属于帧内预测类型的待滤波重建帧进行滤波处理的第一帧内滤波模型(第一帧内滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧内滤波模型所训练得到)、第k次部署更新的视频编码应用还包括未经过训练的初始帧间滤波模型(初始帧间滤波模型用于对属于帧间预测类型的待滤波重建帧进行滤波处理)为例,本申请实施例可以将第k次部署更新的视频编码应用中的待训练滤波模型确定为初始帧间滤波模型与第一帧内滤波模型,也可以将待训练滤波模型仅确定为初始帧间滤波模型。
下面对第k次部署更新的视频编码应用中包括的未经过训练的初始帧间滤波模型进行说明。
示例的,假设当k=K1时,在视频编码应用中引入了帧间滤波模型,则第K1次部署更新的视频编码应用中包括的未经过训练的初始帧间滤波模型是指完全没有经过训练的初始帧间滤波模型;而第K1+1次部署更新的视频编码应用中包括的未经过训练的初始帧间滤波模型是指经过第K1次训练后得到的帧间滤波模型,其中,K1表示常量,例如以K1=3为例,即在第3次迭代训练的过程中,在视频编码应用中引入了完全没有经过训练的初始帧间滤波模型,那么第4次部署更新的视频编码应用中包括的未经过训练的初始帧间滤波模型是指经过第3次训练后得到的帧间滤波模型。
为便于理解,请一并参见图6,图6是本申请实施例提供的一种训练滤波模型的流程示意图。该流程是以第k次部署更新的视频编码应用中的待训练滤波模型包括初始帧间滤波模型与第一帧内滤波模型为例,对基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型的具体流程。如图6所示,该流程可以至少包括以下步骤S201至步骤S205:
步骤S201,在第一样本待滤波重建帧中获取属于帧间预测类型的待滤波帧间重建帧,将样本原始视频帧中的待滤波帧间重建帧所对应的样本原始视频帧,作为第一视频帧标签。
具体的,通过上述可知,通过视频编码应用所生成的训练数据中,可以包括有各个样本原始视频帧及其对应的样本待滤波重建帧,而在对各个样本原始视频帧进行编码重建的过程中,需要确定每个样本原始视频帧所属的帧类型,再基于帧类型进行预测处理,所以所得到的样本待滤波重建帧也对应有不同的帧类型。例如,对样本原始视频帧a进行编码重建的过程中,确定样本原始视频帧a的编码帧的帧类型为帧内预测类型,则该样本原始视频帧a所对应的重建帧的帧类型也可以理解为帧内预测类型。而本申请实施例中,对于帧内滤波模型可采用帧类型为帧内预测类型的视频帧来进行训练,对于帧间滤波模型可采用帧类型为帧间预测类型的视频帧来进行训练。那么在第k次部署更新的视频编码应用中的待训练滤波模型包括初始帧间滤波模型与第一帧内滤波模型时,对于初始帧间滤波模型而言,可以在第一训练数据中,获取到属于帧间预测类型的待滤波重建帧(可称之为待滤波帧间重建帧),并将样本原始视频帧中的待滤波帧间重建帧所对应的样本原始视频帧,作为第一视频帧标签。
步骤S202,在第一样本待滤波重建帧中获取属于帧内预测类型的第一待滤波帧内重建帧,将样本原始视频帧中的第一待滤波帧内重建帧所对应的样本原始视频帧,作为第二视频帧标签。
具体的,同理,对第一帧内滤波模型而言,也可以在第一训练数据中,获取到属于帧内预测类型的重建帧(可称之为第一待滤波帧内重建帧),并将样本原始视频帧中的第一待滤波帧内重建帧所对应的样本原始视频帧,作为第二视频帧标签。
步骤S203,基于待滤波帧间重建帧与第一视频帧标签,对初始帧间滤波模型进行训练,得到处于训练收敛状态的第一帧间滤波模型。
具体的,通过该待滤波帧间重建帧及其对应的第一视频帧标签即可对初始帧间滤波模型进行训练调整,得到处于训练收敛状态的帧间滤波模型(可称之为第一帧间滤波模型)。
步骤S204,基于待滤波帧内重建帧与第二视频帧标签,对第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型。
具体的,通过该第一待滤波帧内重建帧及其对应的第二视频帧标签,即可对第一帧内滤波模型进行训练调整,得到处于训练收敛状态的帧内滤波模型(可称之为第二帧内滤波模型)。
步骤S205,将第一帧间滤波模型与第二帧内滤波模型确定为第二滤波模型。
具体的,第二帧内滤波模型与第一帧间滤波模型即可作为第二滤波模型。其中,对于各个滤波模型的具体训练过程,可以参见上述图3所对应实施例中对于滤波模型进行训练的训练过程描述,这里将不再进行赘述。
需要说明的是,在上述图2所对应实施例中,在第一滤波模型为帧间预测编码帧与帧内预测编码帧共同对应的滤波模型时,对于第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用的具体过程可以为只将第一滤波模型替换为第二滤波模型。那么在本实施例中,在第k次部署更新的视频编码应用中的待训练滤波模型包括初始帧间滤波模型与第一帧内滤波模型时,对于在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用的具体方式可为:可以将第k次部署更新的视频编码应用中的第一帧内滤波模型替换更新为第二帧内滤波模型;将第k次部署更新的视频编码应用中的初始帧间滤波模型替换更新为第一帧间滤波模型。也就是说,将两种训练后的模型进行分别更新替换。
可以理解的是,在第k次部署更新的视频编码应用中包括初始帧间滤波模型与第一帧内滤波模型,且初始帧间滤波模型为未经过训练的滤波模型时,可以将第k次部署更新的视频编码应用中的待训练模型仅确定为初始帧间滤波模型,也就是说,先不用对第一帧内滤波模型进行再次训练。通过上述第一训练数据中的待滤波帧间重建帧与第一视频帧标签,对初始帧间滤波模型进行训练调整得到第一帧间滤波模型后,可将该第一帧间滤波模型确定为第二滤波模型。随后,可以将该第k次部署更新的视频编码应用中的初始帧间滤波模型,替换更新为该第一帧间滤波模型,得到第k+1次部署更新的视频编码应用。在后续对视频编码应用的迭代更新的过程中,可以基于第k+1次部署更新的视频编码应用生成新的训练数据,再基于新的训练数据对上述第一帧内滤波模型与第一帧间滤波模型进行一起训练,再基于训练后的帧内或帧间滤波模型对第k+1次部署更新的视频编码应用进行部署更新。
可以理解的是,对于帧内预测编码帧(即属于帧内预测类型的编码帧或视频帧,例如I帧)具备一类模型(即帧内滤波模型,如I帧模型)、帧间预测编码帧(即属于帧间预测类型的编码帧或视频帧,例如B帧)具备一类模型的情况,对于滤波模型的训练,可以采用图6所示的流程。为便于理解,请参见图7,图7是本申请实施例提供的一种模型训练的场景示意图。如图7所示,以帧内滤波模型包括I帧模型,帧间滤波模型包括B帧模型为例,此种情况下,对于模型的迭代训练的过程可以包括以下步骤(1)至步骤(4):
步骤(1):在视频编码应用中包括有初始的还未经过训练的I帧模型与B帧模型的情况下,可以将样本视频数据输入至视频编码应用中,通过该视频编码应用输出训练数据。
步骤(2):将视频编码应用中的初始的I帧模型作为待训练模型,基于训练数据对I帧模型进行训练(基于训练数据中的I帧原始视频帧以及I帧待滤波重建帧对I帧模型进行训练),得到处于训练收敛状态的I帧模型(即训练后的I帧模型)。随后,可以将该视频编码应用中的初始的I帧模型替换为训练后的I帧模型,保持初始的B帧模型不变,由此即可得到第1次部署更新的视频编码应用。
步骤(3):将样本视频数据输入至第1次部署更新的视频编码应用中,通过该第1次部署更新的视频编码应用输出新的训练数据。
步骤(4):将第1次部署更新的视频编码应用中的初始的B帧模型作为待训练模型,基于新的训练数据对B帧模型进行训练(基于训练数据中的B帧原始视频帧以及B帧待滤波重建帧对B帧模型进行训练),得到处于训练收敛状态的B帧模型(即训练后的B帧模型),可以将该第1次部署更新的视频编码应用中的初始的B帧模型替换为训练后的B帧模型,得到第2次部署更新的视频编码应用。需要说明的是,这里基于新的训练数据对B帧模型进行训练时,也可以同时对训练过的I帧模型进行训练,得到训练后的B帧模型与再一次训练后的I帧模型,再将视频编码应用中的I帧模型与B帧模型分别进行更新替换。
步骤(5):将将样本视频数据输入至第2次部署更新的视频编码应用中,通过该第2次部署更新的视频编码应用可以又一次输出新的训练数据。此时,可以基于新的训练数据对第1次部署更新的视频编码应用中的I帧模型与B帧模型进行再一次训练,得到训练后的I帧模型与B帧模型,再将训练后的I帧模型与B帧模型对第2次部署更新的视频编码应用中模型分别进行替换更新,得到第3次部署更新的视频编码应用。
需要说明的是,在每次对视频编码应用进行部署更新后,都可以对其进行应用检测,确定其是否满足滤波需求条件,在未满足滤波需求条件时,再生成新的训练数据集,并基于新的训练数据集进行再次进行模型训练,并再次基于训练后的模型对视频编码应用 进行部署更新,直至视频编码应用满足滤波需求条件。
可选的,在一种可行的实施例中,第k次部署更新的视频编码应用中的待训练滤波模型可以包括第一帧间滤波模型与第一帧内滤波模型,第一帧间滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧间滤波模型所训练得到,也就是说,本申请实施例可以将初始帧间滤波模型与初始帧内滤波模型进行一起训练,得到第一帧间滤波模型与第一帧内滤波模型后,再将第k-1次部署更新的视频编码应用中的初始帧间滤波模型与初始帧内滤波模型进行分别更新替换,得到包括第一帧间滤波模型与第一帧内滤波模型的第k次部署更新的视频编码应用。为便于理解,请一并参见图8,图8是本申请实施例提供的一种模型训练的场景示意图。如图8所示,以帧内滤波模型包括I帧模型,帧间滤波模型包括B帧模型为例,此种情况下,对于模型的迭代训练的过程可以包括以下步骤(81)至步骤(84):
步骤(81):在视频编码应用中包括有初始的还未经过训练的I帧模型与B帧模型的情况下,可以将样本视频数据输入至视频编码应用中,通过该视频编码应用输出训练数据。
步骤(82):将视频编码应用中的初始的I帧模型作为待训练模型,基于训练数据对I帧模型进行训练(基于训练数据中的I帧原始视频帧以及I帧待滤波重建帧对I帧模型进行训练),同时基于训练数据对B帧模型进行训练(基于训练数据中的B帧原始视频帧以及B帧待滤波重建帧对B帧模型进行训练),得到处于训练收敛状态的B帧模型(即训练后的B帧模型)。随后,可以将该视频编码应用中的初始的I帧模型替换为训练后的I帧模型,将初始的B帧模型替换为训练后的B帧模型,由此即可得到第1次部署更新的视频编码应用。
步骤(83):将样本视频数据输入至第1次部署更新的视频编码应用中,通过该第1次部署更新的视频编码应用输出新的训练数据。
步骤(84):将第1次部署更新的视频编码应用中的I帧模型与B帧模型作为待训练模型(也可以仅将B帧模型作为待训练模型),基于新的训练数据对I帧模型以及B帧模型进行训练,得到处于训练收敛状态的I帧模型与B帧模型,可以将该第1次部署更新的视频编码应用中的模型进行相应替换更新,得到第2次部署更新的视频编码应用。
在每次对视频编码应用进行部署更新后,都可以对其进行应用检测,确定其是否满足滤波需求条件,在未满足滤波需求条件时,再生成新的训练数据集,并基于新的训练数据集进行再次进行模型训练,并再次基于训练后的模型对视频编码应用进行部署更新,直至视频编码应用满足滤波需求条件。
应当理解,通过上述可知,在对视频帧进行编码处理时,可以先确定每个视频帧所属的帧类型,再基于帧类型对待编码单元进行预测处理等编码处理。而对于帧间预测编码帧(如B帧)而言,由于其需要其他重建帧作为参考来进行预测编码,帧间预测编码帧的参考关系的耦合关系影响了训练和实际测试的一致性。也就是说,即使通过训练的滤波模型处于模型收敛状态,达到了训练目标,但将其部署至视频编码应用后,由于帧间预测编码帧需要向前参考或双向参考,在实际测试过程中,视频编码应用所输出的滤波后的重建帧并不是期望的滤波效果。也就是说,训练与测试的结果并不对等。例如,针对某个B帧而言,其对应的参考帧为前一帧I帧的滤波重建帧,将训练后的I帧的滤波模型与B帧的滤波模型部署更新至视频编码应用后,I帧的滤波重建帧的质量会得到提升,那么由于I帧的滤波重建帧的质量的提升,该B帧的预测结果也会得到提升,即B帧的滤波前的特征会得到提升,那么再经过B帧的滤波模型的处理后,该B帧的重建帧的滤波效果并不是训练过程中的滤波效果。即,训练过程与测试过程并不对等。而通过本申请实施例所提供的迭代训练方法,通过更新训练数据集的方式来重复训练B帧模 型或I帧模型,可以提升B帧的训练与测试的一致性,从而可以在提升编码效率的同时,提升视频编码应用的滤波性能,减少编码视频的失真程度。
在本申请实施例中,通过更新训练数据集的方式来重复训练帧间滤波模型,可以提升帧间预测编码帧的训练与测试中的一致性,从而可以提升编码效率,提升视频编码应用的滤波性能,减少编码视频的失真程度。
进一步地,可以理解的是,上述图6所对应实施例可以理解为帧间预测编码帧仅对应一种类型的滤波模型(即帧间滤波模型)的模型训练流程,实际上,帧间预测编码帧中的部分帧可以由一种类型的滤波模型进行滤波处理(例如,以B-1、B-3、B-5帧为例,可以由B-1模型进行滤波处理),部分帧可以由另一种类型的滤波模型进行滤波处理(例如,以B-2、B-4、B-6帧为例,可以由B-2模型进行滤波处理),也就是说,帧间滤波模型可以包括两种类型或两种类型以上的帧间滤波模型(各种帧间滤波模型可以是指网络结构与模型参数均不同的模型;当然,各种帧间滤波模型也可以是指网络结构相同,但是模型参数不同的模型),这里为便于区别,这里可以将帧间预测类型(例如,B帧类型)细分为第一帧间预测类型(如,B-1、B-3、B-5帧类型)与第二帧间预测类型(如,B-2、B-4、B-6帧类型),将某种类型的帧间滤波模型称之为类型帧间滤波模型。例如,第一帧间预测类型对应的帧间滤波模型可以称之为第一类型帧间滤波模型,第二帧间预测类型对应的帧间滤波模型可以称之为第二类型帧间滤波模型。
可以理解的是,在采用不同的类型帧间滤波模型来对不同的帧间预测编码帧进行滤波处理时,在本申请实施例中的视频编码应用中,可以包括用于对属于帧内预测类型的重建帧(帧内预测编码帧对应的待滤波重建帧,例如,I帧对应的重建帧)进行滤波处理的帧内滤波模型、用于对属于第一帧间预测类型的重建帧进行滤波处理的第一类型帧间滤波模型、用于对属于第二帧间预测类型的重建帧进行滤波处理的第二类型帧间滤波模型。本申请实施例可以在帧内滤波模型与不同的类型帧间滤波模型之间确定出待训练模型,再基于训练数据对待训练模型进行训练。例如,以第一滤波模型包括用于对属于帧内预测类型的待滤波重建帧进行滤波处理的第一帧内滤波模型(第一帧内滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧内滤波模型所训练得到),第k次部署更新的视频编码应用还包括未经过训练的第一类型初始帧间滤波模型与第二类型初始帧间滤波模型(第一类型初始帧间滤波模型用于对属于第一帧间预测类型的待滤波重建帧进行滤波处理,第二类型初始帧间滤波模型用于对属于第二帧间预测类型的待滤波重建帧进行滤波处理)为例,本申请实施例可以先将第k次部署更新的视频编码应用中的待训练滤波模型确定为第一帧内滤波模型、以及还未训练过的第一类型初始帧间滤波模型,也可以将待训练滤波模型仅确定为还未训练过的第一类型初始帧间滤波模型。
为便于理解,请一并参见图9,图9是本申请实施例提供的一种训练滤波模型的流程示意图。如图9所示,该流程可以至少包括以下步骤S301至步骤S306:
步骤S301,将第k次部署更新的视频编码应用中的第一帧内滤波模型,与第一类型初始帧间滤波模型,确定为第k次部署更新的视频编码应用的待训练滤波模型。
具体的,在每次确定待训练模型时,若存在某种滤波模型(包括帧内滤波模型与帧间滤波模型)还未经过训练,则可以优先在还未经过训练的模型中,选择出某一种滤波模型来作为待训练模型,直至所有的滤波模型都经过训练,此时在所有的滤波模型都经过训练的情况下,在确定待训练模型时,可以再将所有的已经经过训练的滤波模型均作为待训练模型,并基于新的训练数据对所有的模型进行同时训练调整。当然,在每次确定待训练模型时,若存在某种滤波模型(包括帧内滤波模型与帧间滤波模型)还未经过训练,则可以预先在还未经过训练的模型中,选择出某一种滤波模型,并将其与已经训练过的模型一起作为待训练模型。可选的,在每次确定待训练模型时,若存在某种滤波 模型(包括帧内滤波模型与帧间滤波模型)还未经过训练,也可以将所有的还未经过训练的滤波模型一起作为待训练模型。则在本申请实施例中,第k次部署更新的视频编码应用中的第一帧内滤波模型是经过训练的模型,第一类型初始帧间滤波模型与第二类型初始帧间滤波模型均为还未经过训练的模型,本申请实施例可以将第一帧内滤波模型与第一类型初始帧间滤波模型(或第二类型初始帧间滤波模型)一起作为待训练模型,当然也可以仅将第一类型初始帧间滤波模型(或第二类型初始帧间滤波模型)作为待训练模型;也可以将第一类型初始帧间滤波模型与第二类型初始帧间滤波模型一起作为待训练模型。
步骤S302,在第一样本待滤波重建帧中获取属于第一帧间预测类型的第一类型待滤波帧间重建帧,将样本原始视频帧中的第一类型待滤波帧间重建帧所对应的样本原始视频帧,作为第三视频帧标签。
具体的,对于帧内滤波模型可采用帧类型为帧内预测类型的视频帧来进行训练,对于帧间滤波模型可采用帧类型为帧间预测类型的视频帧来进行训练。那么在第k次部署更新的视频编码应用中的待训练滤波模型包括第一类型初始帧间滤波模型时,可以在第一训练数据中,获取到属于第一帧间预测类型的待滤波重建帧(可称之为第一类型待滤波帧间重建帧),并将样本原始视频帧中的第一类型待滤波帧间重建帧所对应的样本原始视频帧,作为其对应的视频帧标签(可称之为第三视频帧标签)。
步骤S303,在第一样本待滤波重建帧中获取属于帧内预测类型的第二待滤波帧内重建帧,将样本原始视频帧中的第二待滤波帧内重建帧所对应的样本原始视频帧,作为第四视频帧标签。
具体的,同理,在第k次部署更新的视频编码应用中的待训练滤波模型包括第一帧内滤波模型时,可以在第一训练数据中,获取到属于帧内预测类型的待滤波重建帧(可称之为第二待滤波帧内重建帧),并将样本原始视频帧中的第二待滤波帧内重建帧所对应的样本原始视频帧,作为其对应的视频帧标签(可称之为第四视频帧标签)。
步骤S304,基于第一类型待滤波帧间重建帧与第三视频帧标签,对第一类型初始帧间滤波模型进行训练,得到处于训练收敛状态的第一类型帧间滤波模型。
具体的,通过第一类型待滤波帧间重建帧与第三视频帧标签,即可对第一类型初始帧间滤波模型进行训练调整,得到处于训练收敛状态的第一类型帧间滤波模型。
步骤S305,基于第二待滤波帧内重建帧与第四视频帧标签,对第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型。
具体的,通过第二待滤波帧内重建帧与第四视频帧标签,即可对第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型。
步骤S306,将第一类型帧间滤波模型与第二帧内滤波模型,确定为第二滤波模型。
具体的,第二帧内滤波模型与第一类型帧间滤波模型即可作为第二滤波模型。其中,对于各个滤波模型的具体训练过程,可以参见上述图3所对应实施例中对于滤波模型进行训练的训练过程描述,这里将不再进行赘述。
需要说明的是,在第k次部署更新的视频编码应用的待训练模型包括第一类型初始帧间滤波模型与第一帧内滤波模型时,对于在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用的具体方式可为:可以将第k次部署更新的视频编码应用中的第一帧内滤波模型替换更新为第二帧内滤波模型;将第k次部署更新的视频编码应用中的第一类型初始帧间滤波模型替换更新为第一类型帧间滤波模型。也就是说,将两种训练后的模型进行分别更新替换。
可以理解的是,在第k次部署更新的视频编码应用的待训练模型包括第一类型初始帧间滤波模型与第一帧内滤波模型的情况下,当检测到第k+1次部署更新的视频编码应 用未满足滤波质量需求条件时,可以通过第k+1次部署更新的视频编码应用与样本视频数据,生成第二训练数据;其中,第二训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第二样本待滤波重建帧,第二样本待滤波重建帧是指在通过第k+1次部署更新的视频编码应用,对样本原始视频帧进行编码重建的过程中,未经第二滤波模型进行滤波处理的视频帧;随后,可以基于样本原始视频帧以及第二样本待滤波重建帧,对第k+1次部署更新的视频编码应用中的待训练滤波模型(例如,第二类型初始帧间滤波模型)进行训练,得到处于训练收敛状态的第三滤波模型;随后,可以在第k+1次部署更新的视频编码应用中更新部署第三滤波模型,得到第k+2次部署更新的视频编码应用;当第k+2次部署更新的视频编码应用满足滤波质量需求条件时,即可将第k+2次部署更新的视频编码应用,确定为目标视频编码应用。
以第k+1次部署更新的视频编码应用中的待训练滤波模型为第二类型初始帧间滤波模型为例,对于基于样本原始视频帧以及第二样本待滤波重建帧,对第k+1次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第三滤波模型的具体实现方式可以为:可以在第二样本待滤波重建帧中获取属于第二帧间预测类型的第二类型待滤波帧间重建帧,将样本原始视频帧中的第二类型待滤波帧间重建帧所对应的样本原始视频帧,作为第五视频帧标签;可以基于第二类型待滤波帧间重建帧与第五视频帧标签,对第二类型初始帧间滤波模型进行训练,得到处于训练收敛状态的第二类型帧间滤波模型;将第二类型帧间滤波模型确定为第三滤波模型。
可以理解的是,对于帧内预测编码帧(例如,I帧)具备一类模型(即帧内滤波模型,如I帧模型)、帧间预测编码帧(例如,B帧)具备两类或两类以上模型的情况,对于滤波模型的训练,可以采用图9所示的流程。为便于理解,请一并参见图10,图10为本申请实施例提供的另一种模型训练的场景示意图。如图10所示,以帧内滤波模型包括I帧模型,帧间滤波模型包括B-1与B-2模型为例,此种情况下,结合如图10所示的场景,模型迭代训练的过程可以包括以下步骤(1)至步骤(6):
步骤(1):在视频编码应用中包括有初始的还未经过训练的I帧模型、B-1模型以及B-2模型的情况下,可以将样本视频数据输入至视频编码应用中,通过该视频编码应用输出训练数据。
步骤(2):将视频编码应用中的初始的I帧模型作为待训练模型,基于训练数据对I帧模型进行训练(基于训练数据中的I帧原始视频帧以及I帧待滤波重建帧对I帧模型进行训练),得到处于训练收敛状态的I帧模型(即训练后的I帧模型),可以将该视频编码应用中的初始的I帧模型替换为训练后的I帧模型,保持初始的B-1与B-2模型不变,得到第1次部署更新的视频编码应用。
步骤(3):将样本视频数据输入至第1次部署更新的视频编码应用中,通过该第1次部署更新的视频编码应用输出新的训练数据。
步骤(4):将第1次部署更新的视频编码应用中的初始的B-1模型作为待训练模型,基于新的训练数据对初始的B-1模型进行训练(基于训练数据中的B-1模型对应的原始视频帧以及待滤波重建帧对B-1模型进行训练),得到处于训练收敛状态的B-1模型(训练后的B-1模型),可以将该第1次部署更新的视频编码应用中的初始的B-1模型替换为训练后的B-1模型,得到第2次部署更新的视频编码应用。
步骤(5):将样本视频数据输入至第2次部署更新的视频编码应用中,通过该第2次部署更新的视频编码应用输出新的训练数据。
步骤(6):将第2次部署更新的视频编码应用中的初始的B-2模型作为待训练模型,基于新的训练数据对B-2模型进行训练(基于训练数据中的B-2模型对应的原始视频帧以及待滤波重建帧对B-2模型进行训练),得到处于训练收敛状态的B-2模型,可以将 该第2次部署更新的视频编码应用中的初始的B-2模型替换为训练后的B-2模型,得到第3次部署更新的视频编码应用。当然,随后,可以将样本视频数据再次输入至第3次部署更新的视频编码应用,基于第3次部署更新的视频编码应用再次输出新的训练数据,此时可以基于新的训练数据对第3次部署更新的视频编码应用中的各个滤波模型分别进行训练,得到训练后的模型,再基于训练后的模型对第3次部署更新的视频编码应用进行更新部署,得到第4次部署更新的视频编码应用。
当然,可以理解的是,在上述步骤4中,也可以基于训练数据对初始的B-1模型与初始的B-2模型都进行训练,得到训练后的B-1模型与B-2模型后,再对第1次部署更新的视频编码应用中的初始的B-1模型与B-2模型分别进行更新替换,得到第2次部署更新的视频编码应用。在对I帧模型、B-1模型与B-2模型均进行训练后,可以再次生成新的训练数据,并基于新的训练数据对I帧模型、B-1模型与B-2模型一同进行训练。
需要说明的是,在每次对视频编码应用进行部署更新后,都可以对其进行应用检测,确定其是否满足滤波需求条件,在未满足滤波需求条件时,再生成新的训练数据集,并基于新的训练数据集进行再次进行模型训练,并再次基于训练后的模型对视频编码应用进行部署更新,直至视频编码应用满足滤波需求条件。
在本申请实施例中,通过更新训练数据集的方式来重复训练帧间滤波模型,可以提升帧间预测编码帧的训练与测试中的一致性,从而可以提升编码效率,提升视频编码应用的滤波质量,减少编码视频的失真程度。
需要说明的是,本申请实施例所提出的模型迭代训练过程,还可以适用于其他模型的迭代训练,例如,同样适用于帧间预测模型的迭代训练、帧内预测模型的迭代训练。也就是说,本申请实施例所提出的基于模型部署后的应用重新生成训练数据重复训练模型,再对应用进行更新部署直至应用满足性能需求条件的模型训练方式,并不仅限于对于滤波模型的迭代训练。
可以理解的是,在通过本申请实施例所提出的模型迭代训练方法,确定出目标视频编码应用后,可以将目标视频编码应用投入使用,即可以将目标视频编码应用用于对视频数据进行视频编码处理。例如,在视频通话场景中,两个用户在进行视频通话时,用户a对应的终端设备可以基于目标视频编码应用对与用户a相关联的视频数据进行视频编码处理,得到视频压缩码流后,将视频压缩码流传输至用户b(与用户a进行视频通话的用户)对应的终端设备,以使得该用户b对应的终端设备可以进行解码,并在显示界面中输出用户a关联的视频数据。为便于理解,请一并参见图11,图11是本申请实施例提供的一种数据处理方法的方法流程示意图,该流程即可为目标视频编码应用的应用流程。如图11所示,该流程可以至少包括以下步骤S401至步骤S402:
步骤S401,将视频数据输入至目标视频编码应用中,通过所述目标视频编码应用对所述视频数据进行视频编码处理,得到所述视频数据对应的视频压缩码流;所述目标视频编码应用是指满足滤波质量需求条件的第k+1次部署更新的视频编码应用;所述第k+1次部署更新的视频编码应用包括处于训练收敛状态的第二滤波模型;所述第二滤波模型基于第一训练数据中作为训练标签的样本原始视频帧,以及所述样本原始视频帧对应的第一样本待滤波重建帧,对第k次部署更新的包括第一滤波模型的视频编码应用中的待训练滤波模型进行训练所得到;所述第一训练数据是通过第k次部署更新的视频编码应用以及样本视频数据所生成;所述第一样本待滤波重建帧是指在通过所述第k次部署更新的视频编码应用,对所述样本原始视频帧进行重建的过程中,未经所述第一滤波模型进行滤波处理的重建帧;所述样本原始视频帧为所述样本视频数据中的视频帧;k为正整数。
具体的,对于确定目标视频编码应用的具体流程,可以参见前文图2所对应实施例 中的描述,这里将不再进行赘述。
步骤S402,将所述视频压缩码流发送至接收设备,以使所述接收设备对所述视频压缩码流进行解码处理。
具体的,计算机设备可以将视频压缩码流发送至接收设备(例如,接收视频压缩码流的终端设备),该接收设备可以对该视频压缩码流进行解码处理。
在本申请实施例中,通过更新训练数据集的方式来重复训练帧间滤波模型,可以提升帧间预测编码帧的训练与测试中的一致性,从而可以提升编码效率,提升视频编码应用的滤波质量,减少编码视频的失真程度。
进一步地,请参见图12,图12是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行图3所示的方法。如图12所示,该数据处理装置1可以包括:训练数据生成模块11、模型训练模块12、应用更新模块13以及目标应用确定模块14。
训练数据生成模块11,配置为将样本视频数据输入至第k次部署更新的包括第一滤波模型的视频编码应用;
训练数据生成模块11,还配置为通过第k次部署更新的视频编码应用以及样本视频数据,生成第一训练数据;第一训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧;第一样本待滤波重建帧是指在通过第k次部署更新的视频编码应用,对样本原始视频帧进行重建的过程中,未经第一滤波模型进行滤波处理的重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
模型训练模块12,配置为基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型;
应用更新模块13,配置为在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用;
目标应用确定模块14,配置为当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
其中,训练数据生成模块11、模型训练模块12、应用更新模块13以及目标应用确定模块14的具体实现方式,可以参见上述图2所对应实施例中步骤S101-步骤S103的描述,这里将不再进行赘述。
在一个实施例中,第一滤波模型包括用于对属于帧内预测类型的待滤波重建帧进行滤波处理的第一帧内滤波模型;第一帧内滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧内滤波模型所训练得到,第k次部署更新的视频编码应用还包括未经过训练的初始帧间滤波模型;初始帧间滤波模型用于对属于帧间预测类型的待滤波重建帧进行滤波处理,第k次部署更新的视频编码应用中的待训练滤波模型包括初始帧间滤波模型与第一帧内滤波模型;
模型训练模块12可以包括:视频标签获取单元121、模型训练单元122以及模型确定单元123。
视频标签获取单元121,配置为在第一样本待滤波重建帧中获取属于帧间预测类型的待滤波帧间重建帧,将样本原始视频帧中的待滤波帧间重建帧所对应的样本原始视频帧,作为第一视频帧标签;
视频标签获取单元121,还配置为在第一样本待滤波重建帧中获取属于帧内预测类型的第一待滤波帧内重建帧,将样本原始视频帧中的第一待滤波帧内重建帧所对应的样 本原始视频帧,作为第二视频帧标签;
模型训练单元122,配置为基于待滤波帧间重建帧与第一视频帧标签,对初始帧间滤波模型进行训练,得到处于训练收敛状态的第一帧间滤波模型;
模型训练单元122,还配置为基于待滤波帧内重建帧与第二视频帧标签,对第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型;
模型确定单元123,配置为将第一帧间滤波模型与第二帧内滤波模型确定为第二滤波模型。
其中,视频标签获取单元121、模型训练单元122以及模型确定单元123的具体实现方式,可以参见上述图6所对应实施例中步骤S501-步骤S505的描述,这里将不再进行赘述。
在一个实施例中,应用更新模块13可以包括:帧内模型替换单元131以及帧间模型替换单元132。
帧内模型替换单元131,配置为将第k次部署更新的视频编码应用中的第一帧内滤波模型替换更新为第二帧内滤波模型;
帧间模型替换单元132,配置为将第k次部署更新的视频编码应用中的初始帧间滤波模型替换更新为第一帧间滤波模型。
其中,帧内模型替换单元131以及帧间模型替换单元132的具体实现方式,可以参见上述图6所对应实施例中步骤S505的描述,这里将不再进行赘述。
在一个实施例中,第一滤波模型包括用于对属于帧内预测类型的待滤波重建帧进行滤波处理的第一帧内滤波模型;第一帧内滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧内滤波模型所训练得到,第k次部署更新的视频编码应用还包括未经过训练的第一类型初始帧间滤波模型与第二类型初始帧间滤波模型;第一类型初始帧间滤波模型用于对属于第一帧间预测类型的待滤波重建帧进行滤波处理,第二类型初始帧间滤波模型用于对属于第二帧间预测类型的待滤波重建帧进行滤波处理;
模型训练模块12可以包括:待训练模型确定单元124、视频帧标签确定单元125、帧间模型训练单元126、帧内模型训练单元127以及滤波模型确定单元128。
待训练模型确定单元124,配置为将第k次部署更新的视频编码应用中的第一帧内滤波模型,与第一类型初始帧间滤波模型,确定为第k次部署更新的视频编码应用的待训练滤波模型;
视频帧标签确定单元125,配置为在第一样本待滤波重建帧中获取属于第一帧间预测类型的第一类型待滤波帧间重建帧,将样本原始视频帧中的第一类型待滤波帧间重建帧所对应的样本原始视频帧,作为第三视频帧标签;
视频帧标签确定单元125,还配置为在第一样本待滤波重建帧中获取属于帧内预测类型的第二待滤波帧内重建帧,将样本原始视频帧中的第二待滤波帧内重建帧所对应的样本原始视频帧,作为第四视频帧标签;
帧间模型训练单元126,配置为基于第一类型待滤波帧间重建帧与第三视频帧标签,对第一类型初始帧间滤波模型进行训练,得到处于训练收敛状态的第一类型帧间滤波模型;
帧内模型训练单元127,配置为基于第二待滤波帧内重建帧与第四视频帧标签,对第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型;
滤波模型确定单元128,配置为将第一类型帧间滤波模型与第二帧内滤波模型,确定为第二滤波模型。
其中,待训练模型确定单元124、视频帧标签确定单元125、帧间模型训练单元126、帧内模型训练单元127以及滤波模型确定单元128的具体实现方式,可以参见上述图9 所对应实施例中步骤S801-步骤S806的描述,这里将不再进行赘述。
在一个实施例中,该数据处理装置1还可以包括:数据生成模块15、滤波模型训练模块16、部署模型模块17以及目标应用确定模块18。
数据生成模块15,配置为当第k+1次部署更新的视频编码应用未满足滤波质量需求条件时,通过第k+1次部署更新的视频编码应用与样本视频数据,生成第二训练数据;第二训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第二样本待滤波重建帧,第二样本待滤波重建帧是指在通过第k+1次部署更新的视频编码应用,对样本原始视频帧进行编码重建的过程中,未经第二滤波模型进行滤波处理的视频帧;
滤波模型训练模块16,配置为基于样本原始视频帧以及第二样本待滤波重建帧,对第k+1次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第三滤波模型;
部署模型模块17,配置为在第k+1次部署更新的视频编码应用中更新部署第三滤波模型,得到第k+2次部署更新的视频编码应用;
目标应用确定模块18,配置为当第k+2次部署更新的视频编码应用满足滤波质量需求条件时,将第k+2次部署更新的视频编码应用,确定为目标视频编码应用。
其中,数据生成模块15、滤波模型训练模块16、部署模型模块17以及目标应用确定模块18的具体实现方式,可以参见上述图9所对应实施例中步骤S806的描述,这里将不再进行赘述。
在一个实施例中,第k+1次部署更新的视频编码应用中的待训练滤波模型包括第二类型初始帧间滤波模型;
滤波模型训练模块16可以包括:标签确定单元161、类型帧间模型训练单元162以及滤波模型确定单元163。
标签确定单元161,配置为在第二样本待滤波重建帧中获取属于第二帧间预测类型的第二类型待滤波帧间重建帧,将样本原始视频帧中的第二类型待滤波帧间重建帧所对应的样本原始视频帧,作为第五视频帧标签;
类型帧间模型训练单元162,配置为基于第二类型待滤波帧间重建帧与第五视频帧标签,对第二类型初始帧间滤波模型进行训练,得到处于训练收敛状态的第二类型帧间滤波模型;
滤波模型确定单元163,配置为将第二类型帧间滤波模型确定为第三滤波模型。
其中,标签确定单元161、类型帧间模型训练单元162以及滤波模型确定单元163的具体实现方式,可以参见上述图9所对应实施例中步骤S806的描述,这里将不再进行赘述。
在一个实施例中,模型训练模块12可以包括:滤波帧输出单元129与参数调整单元120。
滤波帧输出单元129,配置为将第一样本待滤波重建帧输入至第一滤波模型中,通过第一滤波模型输出第一样本待滤波重建帧对应的样本滤波重建帧;
参数调整单元120,配置为确定样本滤波重建帧与样本原始视频帧之间的误差值;
参数调整单元120,还配置为通过误差值调整第一滤波模型的模型参数,得到具有调整后的模型参数的第一滤波模型;
参数调整单元120,还配置为当具有调整后的模型参数的第一滤波模型满足模型收敛条件时,将具有调整后的模型参数的第一滤波模型确定为处于训练收敛状态的第二滤波模型。
其中,滤波帧输出单元129、参数调整单元120以及模型确定单元121的具体实现方式,可以参见上述图3所对应实施例中步骤S102的描述,这里将不再进行赘述。
在一个实施例中,参数调整单元120包括:函数获取子单元1201以及误差值确定子单元1202。
函数获取子单元1201,配置为获取第k次部署更新的视频编码应用所对应的损失函数;
误差值确定子单元1202,配置为基于损失函数获取样本原始视频帧所对应的原始图像质量,将原始图像质量作为图像质量标签;
误差值确定子单元1202,还配置为基于损失函数获取样本滤波重建帧所对应的滤波图像质量,通过损失函数、图像质量标签以及滤波图像质量确定样本滤波视频帧与样本原始视频帧之间的误差值。
其中,函数获取子单元1201以及误差值确定子单元1202的具体实现方式,可以参见上述图2所对应实施例中步骤S102的描述,这里将不再进行赘述。
在一个实施例中,损失函数包括绝对值损失函数与平方误差损失函数;
误差值确定子单元1202,还配置为通过平方误差损失函数、图像质量标签以及滤波图像质量,确定样本滤波重建帧与样本原始视频帧之间的第一误差值;
误差值确定子单元1202,还配置为通过绝对值损失函数、图像质量标签以及滤波图像质量,确定样本滤波重建帧与样本原始视频帧之间的第二误差值;
误差值确定子单元1202,还配置为将第一误差值与第二误差值进行运算处理,将运算得到的结果确定为样本滤波重建帧与样本原始视频帧之间的误差值。
在一个实施例中,数据处理装置1还可以包括:滤波视频输出模块19、视频质量获取模块20以及应用检测模块21。
滤波视频输出模块19,配置为将样本视频数据输入至第k+1次部署更新的视频编码应用,通过第k+1次部署更新的视频编码应用输出待检测滤波视频数据;
视频质量获取模块20,配置为获取待检测滤波视频数据所对应的滤波视频质量,以及样本视频数据所对应的原始视频质量;
应用检测模块21,配置为根据滤波视频质量与原始视频质量,对第k+1次部署更新的视频编码应用进行检测。
其中,滤波视频输出模块19、视频质量获取模块20以及应用检测模块21的具体实现方式,可以参见上述图3所对应实施例中步骤S103的描述,这里将不再进行赘述。
在一个实施例中,应用检测模块21可以包括:差值质量确定单元211以及检测结果确定单元212。
差值质量确定单元211,配置为确定滤波视频质量与原始视频质量之间的差异视频质量;
检测结果确定单元212,配置为若差异视频质量小于差异质量阈值,则确定第二视频编码应用满足滤波质量需求条件;
检测结果确定单元212,还配置为若差异视频质量大于差异质量阈值,则确定第二视频编码应用未满足滤波质量需求条件。
其中,差值质量确定单元211以及检测结果确定单元212的的具体实现方式,可以参见上述图2所对应实施例中步骤S103的描述,这里将不再进行赘述。
在本申请实施例中,通过更新训练数据集的方式来重复训练帧间滤波模型,可以提升帧间预测编码帧在训练与测试中的一致性,从而可以提升编码效率,提升视频编码应用的滤波性能,减少编码视频的失真程度。
进一步地,请参见图13,图13是本申请实施例提供的一种数据处理装置的结构示意图。该数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该数据处理装置为一个应用软件;该数据处理装置可以用于执行图11所示的方法。 如图13所示,该数据处理装置2可以包括:码流生成模块31以及码流发送模块32。
码流生成模块31,配置为将视频数据输入至目标视频编码应用中,通过目标视频编码应用对视频数据进行视频编码处理,得到视频数据对应的视频压缩码流;目标视频编码应用是指满足滤波质量需求条件的第k+1次部署更新的视频编码应用;第k+1次部署更新的视频编码应用包括处于训练收敛状态的第二滤波模型;第二滤波模型基于第一训练数据中作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧,对第k次部署更新的包括第一滤波模型的视频编码应用中的待训练滤波模型进行训练所得到;第一训练数据是通过第k次部署更新的视频编码应用以及样本视频数据所生成;第一样本待滤波重建帧是指在通过第k次部署更新的视频编码应用,对样本原始视频帧进行重建的过程中,未经第一滤波模型进行滤波处理的重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
码流发送模块32,配置为将视频压缩码流发送至接收设备,以使接收设备对视频压缩码流进行解码处理。
其中,对于码流生成模块31以及码流发送模块32的具体实现方式,可以参见上述图11所对应实施例中的描述,这里将不再进行赘述。
进一步地,请参见图13,图13是本申请实施例提供的一种计算机设备的结构示意图。如图13所示,上述图11所对应实施例中的装置1或图12所对应实施例中的装置2可以应用于上述计算机设备8000,上述计算机设备8000可以包括:处理器8001,网络接口8004和存储器8005,此外,上述计算机设备8000还包括:用户接口8003,和至少一个通信总线8002。其中,通信总线8002用于实现这些组件之间的连接通信。其中,用户接口8003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口8003还可以包括标准的有线接口、无线接口。网络接口8004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器8005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器8005可选的还可以是至少一个位于远离前述处理器8001的存储装置。如图13所示,作为一种计算机可读存储介质的存储器8005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图13所示的计算机设备8000中,网络接口8004可提供网络通讯功能;而用户接口8003主要用于为用户提供输入的接口;而处理器8001可以用于调用存储器8005中存储的设备控制应用程序,以实现:
将样本视频数据输入至第k次部署更新的包括第一滤波模型的视频编码应用,通过第k次部署更新的视频编码应用以及样本视频数据,生成第一训练数据;第一训练数据包括作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧;第一样本待滤波重建帧是指在通过第k次部署更新的视频编码应用,对样本原始视频帧进行重建的过程中,未经第一滤波模型进行滤波处理的重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
基于样本原始视频帧以及第一样本待滤波重建帧,对第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,在第k次部署更新的视频编码应用中更新部署第二滤波模型,得到第k+1次部署更新的视频编码应用;
当第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
或实现:
将视频数据输入至目标视频编码应用中,通过目标视频编码应用对视频数据进行视 频编码处理,视频数据对应的视频压缩码流;目标视频编码应用是指满足滤波质量需求条件的第k+1次部署更新的视频编码应用;第k+1次部署更新的视频编码应用包括处于训练收敛状态的第二滤波模型;第二滤波模型基于第一训练数据中作为训练标签的样本原始视频帧,以及样本原始视频帧对应的第一样本待滤波重建帧,对第k次部署更新的包括第一滤波模型的视频编码应用中的待训练滤波模型进行训练所得到;第一训练数据是通过第k次部署更新的视频编码应用以及样本视频数据所生成;第一样本待滤波重建帧是指在通过第k次部署更新的视频编码应用,对样本原始视频帧进行重建的过程中,未经第一滤波模型进行滤波处理的重建帧;样本原始视频帧为样本视频数据中的视频帧;k为正整数;
将视频压缩码流发送至接收设备,以使接收设备对视频压缩码流进行解码处理。
应当理解,本申请实施例中所描述的计算机设备8000可执行前文图2或图11所对应实施例中对该数据处理方法的描述,也可执行前文图11所对应实施例中对该数据处理装置1或图12所对应实施例中对该数据处理装置2的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的数据处理的计算机设备1000所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3或图11所对应实施例中对上述数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
上述计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(SMC,Smart Media Card,),安全数字(SD,Secure Digital)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例中一方面提供的方法。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或 结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (19)
- 一种数据处理方法,包括:将样本视频数据输入至第k次部署更新的包括第一滤波模型的视频编码应用,通过所述第k次部署更新的视频编码应用以及所述样本视频数据,生成第一训练数据;所述第一训练数据包括作为训练标签的样本原始视频帧,以及所述样本原始视频帧对应的第一样本待滤波重建帧;所述样本原始视频帧为所述样本视频数据中的视频帧;k为正整数;基于所述样本原始视频帧以及所述第一样本待滤波重建帧,对所述第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,在所述第k次部署更新的视频编码应用中更新部署所述第二滤波模型,得到第k+1次部署更新的视频编码应用;当所述第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将所述第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
- 根据权利要求1所述的方法,其中,所述第一样本待滤波重建帧是指在通过所述第k次部署更新的视频编码应用,对所述样本原始视频帧进行重建的过程中,未经所述第一滤波模型进行滤波处理的重建帧。
- 根据权利要求1所述的方法,其中,所述第一滤波模型包括用于对属于帧内预测类型的待滤波重建帧进行滤波处理的第一帧内滤波模型;所述第一帧内滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧内滤波模型训练得到,所述第k次部署更新的视频编码应用还包括未经过训练的初始帧间滤波模型;所述初始帧间滤波模型用于对属于帧间预测类型的待滤波重建帧进行滤波处理,所述第k次部署更新的视频编码应用中的待训练滤波模型包括所述初始帧间滤波模型与所述第一帧内滤波模型。
- 根据权利要求3所述的方法,其中,所述基于所述样本原始视频帧以及所述第一样本待滤波重建帧,对所述第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,包括:在所述第一样本待滤波重建帧中获取属于帧间预测类型的待滤波帧间重建帧,将所述样本原始视频帧中的所述待滤波帧间重建帧所对应的样本原始视频帧,作为第一视频帧标签;在所述第一样本待滤波重建帧中获取属于帧内预测类型的第一待滤波帧内重建帧,将所述样本原始视频帧中的所述第一待滤波帧内重建帧所对应的样本原始视频帧,作为第二视频帧标签;基于所述待滤波帧间重建帧与所述第一视频帧标签,对所述初始帧间滤波模型进行训练,得到处于训练收敛状态的第一帧间滤波模型;基于所述待滤波帧内重建帧与所述第二视频帧标签,对所述第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型;将所述第一帧间滤波模型与所述第二帧内滤波模型确定为所述第二滤波模型。
- 根据权利要求3所述的方法,其中,所述在所述第k次部署更新的视频编码应用中更新部署所述第二滤波模型,得到第k+1次部署更新的视频编码应用,包括:将所述第k次部署更新的视频编码应用中的所述第一帧内滤波模型替换更新为所述第二帧内滤波模型,以及将所述第k次部署更新的视频编码应用中的所述初始帧间滤波模型替换更新为所述第一帧间滤波模型,得到第k+1次部署更新的视频编码应用。
- 根据权利要求5所述的方法,其中,所述方法还包括:当所述第k+1次部署更新的视频编码应用未满足所述滤波质量需求条件时,通过所述第k+1次部署更新的视频编码应用与所述样本视频数据,生成第二训练数据;所述第二训练数据包括作为训练标签的所述样本原始视频帧,以及所述样本原始视频帧对应的第二样本待滤波重建帧,所述第二样本待滤波重建帧是指在通过所述第k+1次部署更新的视频编码应用, 对所述样本原始视频帧进行重建的过程中,未经所述第二滤波模型进行滤波处理的视频帧;基于所述样本原始视频帧以及所述第二样本待滤波重建帧,对所述第k+1次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第三滤波模型;在所述第k+1次部署更新的视频编码应用中更新部署所述第三滤波模型,得到第k+2次部署更新的视频编码应用;当所述第k+2次部署更新的视频编码应用满足所述滤波质量需求条件时,将所述第k+2次部署更新的视频编码应用,确定为所述目标视频编码应用。
- 根据权利要求6所述的方法,其中,所述第k+1次部署更新的视频编码应用中的待训练滤波模型包括所述第二类型初始帧间滤波模型;所述基于所述样本原始视频帧以及所述第二样本待滤波重建帧,对所述第k+1次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第三滤波模型,包括:在所述第二样本待滤波重建帧中获取属于第二帧间预测类型的第二类型待滤波帧间重建帧,将所述样本原始视频帧中的所述第二类型待滤波帧间重建帧所对应的样本原始视频帧,作为第五视频帧标签;基于所述第二类型待滤波帧间重建帧与所述第五视频帧标签,对所述第二类型初始帧间滤波模型进行训练,得到处于训练收敛状态的第二类型帧间滤波模型;将所述第二类型帧间滤波模型确定为所述第三滤波模型。
- 根据权利要求1所述的方法,其中,所述第一滤波模型包括用于对属于帧内预测类型的待滤波重建帧进行滤波处理的第一帧内滤波模型;所述第一帧内滤波模型是基于第k-1次部署更新的视频编码应用中的初始帧内滤波模型所训练得到,所述第k次部署更新的视频编码应用还包括未经过训练的第一类型初始帧间滤波模型与第二类型初始帧间滤波模型;所述第一类型初始帧间滤波模型用于对属于第一帧间预测类型的待滤波重建帧进行滤波处理,所述第二类型初始帧间滤波模型用于对属于第二帧间预测类型的待滤波重建帧进行滤波处理。
- 根据权利要求8所述的方法,其中,所述基于所述样本原始视频帧以及所述第一样本待滤波重建帧,对所述第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,包括:将所述第k次部署更新的视频编码应用中的所述第一帧内滤波模型,与所述第一类型初始帧间滤波模型,确定为所述第k次部署更新的视频编码应用的待训练滤波模型;在所述第一样本待滤波重建帧中获取属于第一帧间预测类型的第一类型待滤波帧间重建帧,将所述样本原始视频帧中的所述第一类型待滤波帧间重建帧所对应的样本原始视频帧,作为第三视频帧标签;在所述第一样本待滤波重建帧中获取属于帧内预测类型的第二待滤波帧内重建帧,将所述样本原始视频帧中的所述第二待滤波帧内重建帧所对应的样本原始视频帧,作为第四视频帧标签;基于所述第一类型待滤波帧间重建帧与所述第三视频帧标签,对所述第一类型初始帧间滤波模型进行训练,得到处于训练收敛状态的第一类型帧间滤波模型;基于所述第二待滤波帧内重建帧与所述第四视频帧标签,对所述第一帧内滤波模型进行训练,得到处于训练收敛状态的第二帧内滤波模型;将所述第一类型帧间滤波模型与所述第二帧内滤波模型,确定为所述第二滤波模型。
- 根据权利要求1-9任一项所述的方法,其中,所述基于所述样本原始视频帧以及所述第一样本待滤波重建帧,对所述第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型,包括:将所述第一样本待滤波重建帧输入至所述第一滤波模型中,通过所述第一滤波模型输出所述第一样本待滤波重建帧对应的样本滤波重建帧;确定所述样本滤波重建帧与所述样本原始视频帧之间的误差值,通过所述误差值调整所述第一滤波模型的模型参数,得到具有调整后的模型参数的第一滤波模型;当所述具有调整后的模型参数的第一滤波模型满足模型收敛条件时,将所述具有调整后的模型参数的第一滤波模型确定为所述处于训练收敛状态的第二滤波模型。
- 根据权利要求10所述的方法,其中,所述确定所述样本滤波重建帧与所述样本原始视频帧之间的误差值,包括:获取所述第k次部署更新的视频编码应用所对应的损失函数;基于所述损失函数获取所述样本原始视频帧所对应的原始图像质量,将所述原始图像质量作为图像质量标签;基于所述损失函数获取所述样本滤波重建帧所对应的滤波图像质量,通过所述损失函数、所述图像质量标签以及所述滤波图像质量确定所述样本滤波视频帧与所述样本原始视频帧之间的误差值。
- 根据权利要求11所述的方法,其中,所述损失函数包括绝对值损失函数与平方误差损失函数;所述通过所述损失函数、所述图像质量标签以及所述滤波图像质量确定所述样本滤波重建帧与所述样本原始视频帧之间的误差值,包括:通过所述平方误差损失函数、所述图像质量标签以及所述滤波图像质量,确定所述样本滤波重建帧与所述样本原始视频帧之间的第一误差值;通过所述绝对值损失函数、所述图像质量标签以及所述滤波图像质量,确定所述样本滤波重建帧与所述样本原始视频帧之间的第二误差值;将所述第一误差值与所述第二误差值进行运算处理,将运算得到的结果确定为所述样本滤波重建帧与所述样本原始视频帧之间的误差值。
- 根据权利要求1所述的方法,其中,所述方法还包括:将所述样本视频数据输入至所述第k+1次部署更新的视频编码应用,通过所述第k+1次部署更新的视频编码应用输出待检测滤波视频数据;获取所述待检测滤波视频数据所对应的滤波视频质量,以及所述样本视频数据所对应的原始视频质量;根据所述滤波视频质量与所述原始视频质量,对所述第k+1次部署更新的视频编码应用进行检测。
- 根据权利要求13所述的方法,其中,所述根据所述滤波视频质量与所述原始视频质量,对所述第k+1次部署更新的视频编码应用进行检测,包括:确定所述滤波视频质量与所述原始视频质量之间的差异视频质量;当所述差异视频质量小于差异质量阈值时,确定所述第二视频编码应用满足所述滤波质量需求条件;当所述差异视频质量大于所述差异质量阈值时,确定所述第二视频编码应用未满足所述滤波质量需求条件。
- 一种数据处理方法,所述方法包括:将视频数据输入至目标视频编码应用中,通过所述目标视频编码应用对所述视频数据进行视频编码处理,得到所述视频数据对应的视频压缩码流;其中,所述目标视频编码应用是指满足滤波质量需求条件的第k+1次部署更新的视频编码应用;所述第k+1次部署更新的视频编码应用包括处于训练收敛状态的第二滤波模型,所述第二滤波模型基于第一训练数据中作为训练标签的样本原始视频帧,以及所述样本原始视频帧对应的第一样本待滤波重建帧,对第k次部署更新的包括第一滤波模型的视频编码应用中的待训练滤波模型进行训练所得到;所述第一训练数据是通过第k次部署更新的视频编码应用以及样本视频数据所生成;所述样本原始视频帧为所述样本视频数据中的视频帧;k为正整数;将所述视频压缩码流发送至接收设备,所述视频压缩码流用于供所述接收设备进行解码处理。
- 一种数据处理装置,包括:训练数据生成模块,配置为将样本视频数据输入至第k次部署更新的视频编码应用;所述训练数据生成模块,还配置为通过所述第k次部署更新的包括第一滤波模型的视频编码应用以及所述样本视频数据,生成第一训练数据;所述第一训练数据包括作为训练标签的样本原始视频帧,以及所述样本原始视频帧对应的第一样本待滤波重建帧;所述样本原始视频帧为所述样本视频数据中的视频帧;k为正整数;模型训练模块,配置为基于所述样本原始视频帧以及所述第一样本待滤波重建帧,对所述第k次部署更新的视频编码应用中的待训练滤波模型进行训练,得到处于训练收敛状态的第二滤波模型;应用更新模块,配置为在所述第k次部署更新的视频编码应用中更新部署所述第二滤波模型,得到第k+1次部署更新的视频编码应用;目标应用确定模块,配置为当所述第k+1次部署更新的视频编码应用满足滤波质量需求条件时,将所述第k+1次部署更新的视频编码应用,确定为用于对视频数据进行视频编码处理的目标视频编码应用。
- 一种计算机设备,包括:处理器、存储器以及网络接口;所述处理器与所述存储器、所述网络接口相连,其中,所述网络接口用于提供网络通信功能,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以使所述计算机设备执行权利要求1-15任一项所述的方法。
- 一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行权利要求1-15任一项所述的方法。
- 一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现权利要求1-15任一项所述的方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/389,483 US12549775B2 (en) | 2021-12-21 | 2023-11-14 | Iteratively updating a filtering model |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111576383.3 | 2021-12-21 | ||
| CN202111576383.3A CN116320410B (zh) | 2021-12-21 | 2021-12-21 | 一种数据处理方法、装置、设备以及可读存储介质 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US18/389,483 Continuation US12549775B2 (en) | 2021-12-21 | 2023-11-14 | Iteratively updating a filtering model |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2023116173A1 true WO2023116173A1 (zh) | 2023-06-29 |
Family
ID=86791040
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2022/126828 Ceased WO2023116173A1 (zh) | 2021-12-21 | 2022-10-21 | 一种数据处理方法、装置、计算机设备以及存储介质 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12549775B2 (zh) |
| CN (2) | CN120075440A (zh) |
| WO (1) | WO2023116173A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117750021A (zh) * | 2024-02-19 | 2024-03-22 | 北京铁力山科技股份有限公司 | 一种视频压缩方法、装置、计算机设备及存储介质 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107197260A (zh) * | 2017-06-12 | 2017-09-22 | 清华大学深圳研究生院 | 基于卷积神经网络的视频编码后置滤波方法 |
| CN110351568A (zh) * | 2019-06-13 | 2019-10-18 | 天津大学 | 一种基于深度卷积网络的视频环路滤波器 |
| CN111083498A (zh) * | 2019-12-18 | 2020-04-28 | 杭州师范大学 | 一种用于视频编码帧间环路滤波的模型训练方法和使用方法 |
| US20200275095A1 (en) * | 2019-02-27 | 2020-08-27 | Google Llc | Adaptive filter intra prediction modes in image/video compression |
| CN113259671A (zh) * | 2020-02-10 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 视频编解码中的环路滤波方法、装置、设备及存储介质 |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11861906B2 (en) * | 2014-02-28 | 2024-01-02 | Genius Sports Ss, Llc | Data processing systems and methods for enhanced augmentation of interactive video content |
| EP3941066A4 (en) * | 2019-03-24 | 2022-06-22 | Guangdong Oppo Mobile Telecommunications Corp., Ltd. | FILTER METHOD AND APPARATUS AND COMPUTER STORAGE MEDIUM |
| CN114208203A (zh) * | 2019-09-20 | 2022-03-18 | 英特尔公司 | 基于分类器的卷积神经网络环路滤波器 |
| WO2021165569A1 (en) * | 2020-02-21 | 2021-08-26 | Nokia Technologies Oy | A method, an apparatus and a computer program product for video encoding and video decoding |
| CN113810763B (zh) | 2020-06-15 | 2025-09-23 | 深圳市中兴微电子技术有限公司 | 一种视频处理方法、设备及存储介质 |
| CN116965029A (zh) * | 2021-02-25 | 2023-10-27 | 华为技术有限公司 | 使用卷积神经网络对图像进行译码的装置和方法 |
| US12316859B2 (en) * | 2021-12-16 | 2025-05-27 | Intel Corporation | Apparatus, articles of manufacture, and methods for clipping index identification in adaptive loop filtering for video encoding |
-
2021
- 2021-12-21 CN CN202510353186.7A patent/CN120075440A/zh active Pending
- 2021-12-21 CN CN202111576383.3A patent/CN116320410B/zh active Active
-
2022
- 2022-10-21 WO PCT/CN2022/126828 patent/WO2023116173A1/zh not_active Ceased
-
2023
- 2023-11-14 US US18/389,483 patent/US12549775B2/en active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107197260A (zh) * | 2017-06-12 | 2017-09-22 | 清华大学深圳研究生院 | 基于卷积神经网络的视频编码后置滤波方法 |
| US20200275095A1 (en) * | 2019-02-27 | 2020-08-27 | Google Llc | Adaptive filter intra prediction modes in image/video compression |
| CN110351568A (zh) * | 2019-06-13 | 2019-10-18 | 天津大学 | 一种基于深度卷积网络的视频环路滤波器 |
| CN111083498A (zh) * | 2019-12-18 | 2020-04-28 | 杭州师范大学 | 一种用于视频编码帧间环路滤波的模型训练方法和使用方法 |
| CN113259671A (zh) * | 2020-02-10 | 2021-08-13 | 腾讯科技(深圳)有限公司 | 视频编解码中的环路滤波方法、装置、设备及存储介质 |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117750021A (zh) * | 2024-02-19 | 2024-03-22 | 北京铁力山科技股份有限公司 | 一种视频压缩方法、装置、计算机设备及存储介质 |
| CN117750021B (zh) * | 2024-02-19 | 2024-04-30 | 北京铁力山科技股份有限公司 | 一种视频压缩方法、装置、计算机设备及存储介质 |
Also Published As
| Publication number | Publication date |
|---|---|
| US20240080495A1 (en) | 2024-03-07 |
| CN120075440A (zh) | 2025-05-30 |
| CN116320410A (zh) | 2023-06-23 |
| CN116320410B (zh) | 2025-03-11 |
| US12549775B2 (en) | 2026-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12445625B2 (en) | Coding video frame key points to enable reconstruction of video frame | |
| US12445656B2 (en) | Guided restoration of video data using neural networks | |
| CN113287306B (zh) | 用于从比特流中解码编码的视频块的方法、装置和解码器 | |
| Ayzik et al. | Deep image compression using decoder side information | |
| JP2019512938A (ja) | 量子化パラメータに基づくビデオ処理のためのシステム及び方法 | |
| WO2024230330A1 (zh) | 视频的编解码处理方法、装置、计算机设备和存储介质 | |
| US12249002B2 (en) | Watermark-based image reconstruction | |
| US12549745B2 (en) | Data processing method and apparatus, device, and readable storage medium | |
| EP3652946B1 (en) | Coding video syntax elements using a context tree | |
| CN111182310A (zh) | 视频处理方法、装置、计算机可读介质及电子设备 | |
| US12425659B2 (en) | Filtering method and apparatus, computer-readable medium, and electronic device | |
| WO2023116173A1 (zh) | 一种数据处理方法、装置、计算机设备以及存储介质 | |
| CN110692247B (zh) | 复合运动补偿的预测 | |
| CN111819576A (zh) | 使用分离的学习通路和滤波通路的视频代码化 | |
| CN119299706B (zh) | 基于关键帧语义的视频传输方法、装置、电子设备、存储介质及程序产品 | |
| CN111953972A (zh) | IBC模式下的Hash表构建方法、装置、设备 | |
| US20260129242A1 (en) | Iteratively updating a filtering model | |
| CN119450037A (zh) | 滤波及编解码方法、装置及电子设备 | |
| HK40087290A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
| HK40087290B (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
| CN115396678A (zh) | 多媒体资源中轨道数据的处理方法、装置、介质及设备 | |
| CN111885378B (zh) | 多媒体数据编码方法、装置、设备以及介质 | |
| HK40086158A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
| CN119011826A (zh) | 滤波及编解码方法、装置、计算机可读介质及电子设备 | |
| KR20220076178A (ko) | 영상의 ai 복호화를 위한 장치, 및 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22909491 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 12/11/2024) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22909491 Country of ref document: EP Kind code of ref document: A1 |