Video coding method and device, computing equipment, medium and program product

By performing scalable video coding on the video, generating base layer and enhancement layer coding results, and filtering target coding results according to predetermined conditions, the problem of unstable video quality in complex scenes is solved, and the stability of video quality and coding efficiency are improved.

CN121397232AActive Publication Date: 2026-01-23VASTAI TECH (SHANGHAI) INC
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202511976030.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-12-25
Publication Date
2026-01-23
Estimated Expiration
2045-12-25

AI Technical Summary

Technical Problem

Existing technologies struggle to maintain stable video quality in complex scenarios or with highly dynamic content, and constant quality coding methods also struggle to maintain consistent video quality when faced with complex scenarios.

Method used

Scalable Video Coding (SVC) is used to encode the video to be encoded in layers, generating base layer and enhancement layer encoding results. The target encoding results are then filtered according to predetermined encoding quality conditions to generate a second encoded bitstream that meets the quality requirements of the target client.

Benefits of technology

SVC encoding improves video quality stability and encoding efficiency, adapts to the quality requirements of different clients, and enhances the adaptability and flexibility of video encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121397232A_ABST
    Figure CN121397232A_ABST
Patent Text Reader

Abstract

The invention provides a video coding method and device, computing equipment, a medium and a program product, and belongs to the field of video processing. The video coding method comprises the following steps: performing scalable video coding on a plurality of frames to be coded in a video to be coded to generate a first coding code stream; for any one coded frame in the plurality of coded frames: determining respective coding quality of coding results of the plurality of quality levels of the coded frame; in response to the condition that the coding quality of any one of the coding results of the plurality of quality levels meets a predetermined coding quality condition, determining the coding result of the quality level as a reference coding result; determining a reference layer number corresponding to the reference coding result; determining at least one target coding result from the coding results of the plurality of quality levels; and generating a second encoding code stream according to at least one target encoding result included in each of the plurality of encoded frames. The method can improve the stability of video quality.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present application relates to the field of video processing, and in particular, to a video encoding method and device, a computing device, a medium, and a program product. BACKGROUND

[0002] Currently, in some video storage and transmission application scenarios, there are high requirements for visual consistency and video quality. For these application scenarios, constant quality encoding is usually used. Constant quality encoding maintains consistent visual quality throughout the video, rather than forcibly controlling the output code rate or file size.

[0003] However, when facing complex scenes or high dynamic content, it is usually difficult to guarantee the absolute stability of video quality, and the video quality may fluctuate. SUMMARY

[0004] The present application aims to at least solve the technical problem of difficulty in maintaining stable video quality in the background art. To this end, one object of the present application is to provide a video encoding method to improve video encoding quality and improve the stability of video quality.

[0005] Embodiments of the first aspect of the present application provide a video encoding method, comprising: performing scalable video encoding on a plurality of to-be-encoded frames in a to-be-encoded video to generate a first encoding code stream, wherein the first encoding code stream comprises a plurality of encoded frames corresponding one-to-one to the plurality of to-be-encoded frames, any one of the plurality of encoded frames comprises a plurality of quality levels of encoding results, and the plurality of quality levels of encoding results comprise a basic layer encoding result and a plurality of enhancement layer encoding results; for any one of the plurality of encoded frames: determining the encoding quality of each of the plurality of quality levels of encoding results of the encoded frame; in response to the encoding quality of any one of the plurality of quality levels of encoding results satisfying a predetermined encoding quality condition, determining the encoding result of the quality level as a reference encoding result; determining a reference layer number corresponding to the reference encoding result, the reference layer number indicating the number of layers of the basic layer and the enhancement layer corresponding to the reference encoding result; determining at least one target encoding result from the plurality of quality levels of encoding results according to the number of layers of the basic layer and the enhancement layer corresponding to each of the plurality of quality levels of encoding results and the reference layer number; and generating a second encoding code stream according to the at least one target encoding result included in the plurality of encoded frames, wherein the second encoding code stream is used to be transmitted to a target client.

[0006] In the technical scheme of the embodiments of the present application, the scalable video coding is used for the video to obtain the base layer coding result and the enhancement layer coding result, and the coding results are filtered according to the predetermined coding quality condition, so that the quality of the code stream output to the client can reach the expected target quality requirement and keep high stability, and the video effect is improved.

[0007] In some embodiments, in response to the coding quality of the coding result of any one of the multiple quality levels satisfying the predetermined coding quality condition, determining the coding result of the quality level as the reference coding result comprises: determining the coding result of at least one quality level whose coding quality is greater than or equal to the predetermined coding quality threshold from the multiple quality level coding results; determining at least one quality difference between the coding quality corresponding to the coding result of the at least one quality level and the coding quality threshold; determining the minimum quality difference from the at least one quality difference; and determining the coding result of the quality level corresponding to the minimum quality difference as the reference coding result. The multiple quality level coding results obtained by coding are filtered by determining the coding result with the minimum quality difference from the coding quality threshold as the reference, so that part of the unnecessary enhancement layer can be discarded while the video quality is maintained, the coding code rate is reduced, and the coding efficiency is improved.

[0008] In some embodiments, determining at least one target coding result from the multiple quality level coding results according to the number of base layers and enhancement layers corresponding to the multiple quality level coding results and the reference number of layers comprises: determining the base layer coding result as the target coding result; and in response to the number of layers of the enhancement layer corresponding to any one of the multiple enhancement layer coding results being less than or equal to the reference number of layers, determining the enhancement layer coding result as the target coding result. The base layer coding result and / or the enhancement layer coding result with the number of layers less than or equal to the reference number of layers are used as the target coding result, so that the quality of the final output coding code stream can keep high stability.

[0009] In some embodiments, the coding quality condition is predetermined according to the target client. The corresponding coding quality condition is determined according to different target clients, so that the video coding method can be suitable for different target clients, and the coding code stream meeting the target quality requirement can be obtained for different clients, effectively improving the adaptability and flexibility of the video coding process.

[0010] In some embodiments, determining the encoding quality of each of the multiple quality levels of the encoded frame includes: determining the encoding quality corresponding to the encoding quality condition for each of the multiple quality levels of the encoded frame based on the encoding quality condition. Different encoding quality conditions required by different clients are determined respectively, and different types of encoding quality are determined respectively, so that the encoded results can be screened for different clients to obtain corresponding encoded streams, effectively expanding the applicable scenarios of the video encoding method.

[0011] In some embodiments, the target client includes multiple sub-clients, the encoding quality condition includes multiple sub-encoding quality conditions corresponding to the multiple sub-clients respectively, and the second encoded stream includes multiple second encoding sub-streams corresponding to the multiple sub-clients respectively. For any one of the multiple sub-clients: in response to the encoding quality of the encoded result of any one of the multiple quality levels of the encoded result satisfying the predetermined encoding quality condition, determining the encoded result of the quality level as the reference encoded result includes: in response to the encoding quality of the encoded result of any one of the multiple quality levels of the encoded result satisfying the sub-encoding quality condition corresponding to the sub-client, determining the encoded result of the quality level as the reference encoded result corresponding to the sub-client; determining the reference layer number corresponding to the reference encoded result includes: determining the reference layer number corresponding to the reference encoded result corresponding to the sub-client; and determining at least one target encoded result from the multiple quality levels of the encoded result according to the layer numbers of the base layer and the enhancement layer and the reference layer number corresponding to the sub-client includes: determining at least one target encoded result corresponding to the sub-client from the multiple quality levels of the encoded result according to the layer numbers of the base layer and the enhancement layer and the reference layer number corresponding to the sub-client. Generating the second encoded stream according to the at least one target encoded result included in the multiple encoded frames includes: generating the second encoding sub-stream corresponding to the sub-client according to the at least one target encoded result corresponding to the sub-client included in the multiple encoded frames, and the second encoding sub-stream is used to be transmitted to the sub-client. Different encoding quality conditions are determined for different clients, and finally the encoded stream satisfying the quality requirements of the clients is obtained for different clients. This method can be applied to multiple clients, and only one SVC encoding is required, and the quality stable stream can be output for different clients.

[0012] In some embodiments, the video encoding method further comprises: determining a plurality of key reference frames from the plurality of encoded frames, any two adjacent key reference frames in the plurality of key reference frames comprising a predetermined number of encoded frames, for any one of the plurality of key reference frames: determining the base layer encoding result and the plurality of enhancement layer encoding results included in the key reference frame as the target encoding result. By introducing key reference frames including all enhancement layers at a certain frequency, encoding references can be provided for other encoded frames, reducing the risk of codec failure due to the lack of reference frames.

[0013] In some embodiments, the video encoding method further comprises: determining a plurality of key reference frames from the plurality of encoded frames, any two adjacent key reference frames in the plurality of key reference frames comprising a predetermined number of encoded frames, for any one of the plurality of key reference frames: determining the base layer encoding result and the plurality of enhancement layer encoding results included in the key reference frame as the target encoding result. By introducing key reference frames including all enhancement layers at a certain frequency, encoding references can be provided for other encoded frames, reducing the risk of codec failure due to the lack of reference frames.

[0014] In some embodiments, the video encoding method further comprises: determining a plurality of key reference frames from the plurality of encoded frames, any two adjacent key reference frames in the plurality of key reference frames comprising a predetermined number of encoded frames, for any one of the plurality of key reference frames: determining the base layer encoding result and the plurality of enhancement layer encoding results included in the key reference frame as the target encoding result. By introducing key reference frames including all enhancement layers at a certain frequency, encoding references can be provided for other encoded frames, reducing the risk of codec failure due to the lack of reference frames.

[0015] In some embodiments, the video encoding method further comprises: determining a plurality of key reference frames from the plurality of encoded frames, any two adjacent key reference frames in the plurality of key reference frames comprising a predetermined number of encoded frames, for any one of the plurality of key reference frames: determining the base layer encoding result and the plurality of enhancement layer encoding results included in the key reference frame as the target encoding result. By introducing key reference frames including all enhancement layers at a certain frequency, encoding references can be provided for other encoded frames, reducing the risk of codec failure due to the lack of reference frames.

[0016] The embodiment of the fifth aspect of the present application provides a computer program product, comprising instructions which, when executed by one or more processors of a computing device, individually or collectively, cause the computing device to perform the video encoding method in the above embodiments.

[0017] The above description is only a summary of the technical solutions of the present application. In order to enable one skilled in the art to better understand the technical means of the present application, the contents of the specification can be implemented, and in order to enable the above and other purposes, characteristics and advantages of the present application to be more obvious and easy to understand, the following specific embodiments of the present application are described. BRIEF DESCRIPTION OF DRAWINGS

[0018] In the drawings, like reference numerals refer to same or similar functionalities throughout the several views. The drawings are not necessarily to scale. It is to be understood that these drawings only depict some embodiments in accordance with the disclosure and should not be considered as limiting the scope of the disclosure.

[0019] Figure 1 Flowchart of a video encoding method according to some embodiments of the present application; Figure 2 Flowchart of determining a reference encoding result according to some embodiments of the present application; Figure 3 Flowchart of determining a target encoding result according to some embodiments of the present application; Figure 4 Diagram of a first encoding bitstream according to some embodiments of the present application; Figure 5 Diagram of a second encoding bitstream according to some embodiments of the present application; Figure 6 Diagram of a bitstream transmission to a client according to some embodiments of the present application; Figure 7 Diagram of a first encoding bitstream according to some embodiments of the present application; Figure 8 Diagram of a second encoding bitstream according to some embodiments of the present application; Figure 9 Diagram of a video encoding apparatus according to some embodiments of the present application; Figure 10 Diagram of a computing device according to some embodiments of the present application. DETAILED DESCRIPTION

[0020] The embodiments of the technical solutions of the present application will be described in detail below with reference to the accompanying drawings. The following embodiments are only used to more clearly illustrate the technical solutions of the present application, and therefore only serve as examples, and cannot limit the protection scope of the present application.

[0021] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs; the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of this application; the use of the terms "including," "comprising," or "having" and variations thereof herein is intended to be broad and encompass the terms "consisting of" and "consisting essentially of" and variations thereof. Unless otherwise noted, the terms "including" and "comprising" are open-ended and do not exclude the presence of unrecited elements or limitations.

[0022] In the description of the embodiments of the present application, the technical terms "first", "second", etc. are only used to distinguish different objects, and cannot be understood as indicating or implying relative importance or implicitly indicating the number, specific order or primary and secondary relationship of the indicated technical features. In the description of the embodiments of the present application, the meaning of "a plurality of" is two or more, unless otherwise explicitly and specifically limited.

[0023] Reference herein to "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment can be included in at least one embodiment of the application. The appearance of the phrase in various places in the specification does not necessarily all refer to the same embodiment, nor is it necessarily independent or alternative embodiments to each other. It is explicitly and implicitly understood by those skilled in the art that the embodiments described herein can be combined with other embodiments.

[0024] In the description of the embodiments of the present application, the term "and / or" is only a description of the association relationship of the associated objects, which means that there can be three relationships, for example, A and / or B, which can represent the three cases of A alone, A and B together, and B alone. In addition, the character " / " in this paper generally represents that the front and rear associated objects are a "or" relationship.

[0025] In the description of the embodiments of the present application, the term "a plurality of" refers to two or more (including two), and similarly, "a plurality of groups" refers to two or more groups (including two groups), and "a plurality of pieces" refers to two or more pieces (including two pieces).

[0026] In the description of the embodiments of the present application, the technical terms "center", "longitudinal", "transverse", "length", "width", "thickness", "upper", "lower", "front", "rear", "left", "right", "vertical", "horizontal", "top", "bottom", "inner", "outer", "clockwise", "counterclockwise", "axial", "radial", "circumferential" and the like indicate the orientation or positional relationship based on the orientation or positional relationship shown in the drawings, and are only for the convenience of describing the embodiments of the present application and simplifying the description, and therefore cannot be understood as limiting the embodiments of the present application. The orientation or position of the device or element indicated, and therefore cannot be understood as limiting the embodiments of the present application.

[0027] In the description of the embodiments of the present application, unless specifically defined and limited otherwise, the terms "mounting", "connecting", "connecting", "fixing" and other terms should be understood in a broad sense, for example, can be fixedly connected, can also be detachably connected, or integrated; can be mechanically connected, can also be electrically connected; can be directly connected, can also be indirectly connected through an intermediate medium, can be the internal communication of two elements or the interaction relationship between two elements. For those skilled in the art, the specific meanings of the above terms in the embodiments of the present application can be understood according to the specific circumstances.

[0028] At present, in some video storage and transmission application scenarios, there is a higher requirement for visual consistency and video quality. For these application scenarios, constant quality encoding (Constant Quality Encoding) is usually used. Constant quality encoding maintains consistent visual quality throughout the video, rather than forcing the output code rate or file size. Constant quality encoding is very suitable for saving high-quality film and television content, teaching videos or documentaries, etc. In the field of monitoring video encoding, constant quality encoding also has its unique advantages. Through constant quality strategy, it can be ensured that even in the case of complex scene or light change, the key image area still has sufficient identification quality.

[0029] When applying constant quality encoding, users can set a constant quality parameter according to the required picture quality. When encoding, the encoder will automatically adjust the code rate of each frame to maintain the target quality. Constant quality encoding can usually be realized through two strategies: constant quantization parameter (Constant Quantization Parameter, CQP for short) and constant rate factor (Constant Rate Factor, CRF for short). CQP usually uses a fixed quantization parameter to encode all frames, which is suitable for lossless encoding or occasions where code rate control is extremely loose. CRF sets a target quality factor to let the encoder automatically adjust the quantization parameter of each frame during encoding.

[0030] However, both CQP and CRF are difficult to maintain high stability of video quality in practical applications, especially when facing complex scenes or high dynamic content. CQP uses a fixed quantization parameter to encode all frames, which may be over-encoded (waste of code rate) in low complexity scenes, and may be compressed too much, resulting in significant quality degradation in high complexity scenes. The visual quality of CQP is difficult to maintain constant, especially in dynamic scenes. CRF dynamically adjusts the quantization parameter according to the image complexity to maintain consistent overall visual quality. However, due to the large difference in complexity of different scenes, the encoder may still lose details or have noise in high complexity areas (such as fast motion, high detail texture, etc.). And the "constant" of CRF is based on the encoder's perception model, not the accurate video quality evaluation indicators (such as peak signal-to-noise ratio (PSNR), structural similarity loss (SSIM), etc.), so the subjective video quality may still fluctuate.

[0031] To improve the stability of video encoding quality, the video to be encoded can be encoded using scalable video coding (SVC). The core mechanism of SVC is the hierarchical coding structure, and each encoded frame usually includes a base layer and several enhancement layers. The base layer provides the lowest available video quality and has independent decoding capability, so that the continuity of the video can be maintained under poor network conditions. The enhancement layer gradually improves the performance of the video resolution, frame rate or image quality, etc. on the basis of the base layer. For each encoded frame, there is a base layer encoding result and several enhancement layer encoding results. Each layer has a corresponding encoding quality. Therefore, according to the predetermined encoding quality condition, the target encoding result that meets the encoding quality condition can be selected from these encoding results, a second encoding bitstream is further obtained, and transmitted to the target client.

[0032] Since each frame includes a target encoding result that meets the encoding quality condition, the second encoding bitstream of the target client can have stable video quality while meeting the encoding quality condition, effectively improving the video effect.

[0033] Embodiments of the present application provide a video encoding method. Referring to Figure 1 , the video encoding method 100 includes steps 110-160.

[0034] At step 110, scalable video coding is performed on a plurality of to-be-coded frames in a to-be-coded video to generate a first coded bitstream. The first coded bitstream comprises a plurality of coded frames corresponding to the plurality of to-be-coded frames. Each coded frame in the plurality of coded frames comprises a plurality of quality levels of coding results. The plurality of quality levels of coding results comprises a base layer coding result and a plurality of enhancement layer coding results.

[0035] For each coded frame in the plurality of coded frames: At step 120, the coding quality of each of the plurality of quality levels of coding results of the coded frame is determined.

[0036] At step 130, in response to the coding quality of any one of the plurality of quality levels of coding results satisfying a predetermined coding quality condition, the coding result of the quality level is determined as a reference coding result.

[0037] At step 140, the reference layer number corresponding to the reference coding result is determined. The reference layer number indicates the number of base layers and enhancement layers corresponding to the reference coding result.

[0038] At step 150, at least one target coding result is determined from the plurality of quality levels of coding results according to the number of base layers and enhancement layers corresponding to each of the plurality of quality levels of coding results and the reference layer number.

[0039] At step 160, a second coded bitstream is generated according to the at least one target coding result included in each of the plurality of coded frames. The second coded bitstream is used to be transmitted to a target client.

[0040] In embodiments of the present application, the “coding quality” can be evaluated by different types of indicators, for example, peak signal-to-noise ratio (PSNR), structural similarity (SSIM), visual multimethod assessment fusion (VMAF), etc. The evaluation indicators of the coding quality are not limited in the present application.

[0041] In step 110, each frame in the original video, i.e., the video to be encoded, can be encoded using SVC. The resulting encoded frames will form the first encoded bitstream. As mentioned above, SVC encoding has a layered encoding structure, resulting in a base layer and several enhancement layers, and correspondingly, multiple quality levels of encoding results. Each encoded frame after encoding includes a base layer encoding result and several enhancement layer encoding results. The base layer encoding result has the lowest usable video quality. The enhancement layer encoding results improve the video quality layer by layer based on the base layer. The number of SVC encoding layers can be determined according to different usage requirements. Generally speaking, more layers mean finer video quality division, more stable encoding quality of the final bitstream, and closer to the target encoding quality. However, more layers also mean more computation and a certain loss of encoding efficiency. Therefore, the number of SVC encoding layers can be determined according to different usage requirements, such as different usage scenarios and different video quality requirements. This application does not limit the number of SVC encoding layers. In some embodiments, each layer can be encoded using CRF or CQP methods.

[0042] In step 120, the coding quality corresponding to the coding result of each quality level will be determined based on the selected evaluation metrics. For each encoded frame in the first encoded bitstream, the coding quality corresponding to the coding result of each coding layer will be calculated by combining the same frames in the original video.

[0043] Figure 4 The image illustrates an example of the first encoded bitstream. For example... Figure 4 As shown, the first encoded bitstream includes five encoded frames, namely frames 1 to 5. The SVC encoding has four layers, consisting of one base layer and three enhancement layers. Each encoded frame includes the encoding results of one base layer and the three enhancement layers. Figure 4 Using PSNR as an example, the coding quality corresponding to each layer of coding results is illustrated. Figure 4 As can be seen, the coding quality of the basic layer coding result is the lowest, while the coding quality of the enhancement layer coding result will increase layer by layer.

[0044] By pre-setting a coding quality condition, the target coding result in each frame must meet this condition, meaning the final output video must satisfy this coding quality condition, resulting in a more stable video quality. In some embodiments, the coding quality condition can be set by setting a coding quality threshold or a target coding quality; for example, each frame after encoding must reach this coding quality threshold or target coding quality.

[0045] existFigure 4 In the illustrated example, the coding quality condition is that the coding quality threshold of 36.5 of PSNR is required for each frame.

[0046] In some embodiments of the present application, referring to Figure 2 , step 130 comprises steps 210 to 240.

[0047] Step 210, determining the coding result of at least one quality level from the multiple quality levels whose coding quality is greater than or equal to the predetermined coding quality threshold.

[0048] Step 220, determining at least one quality difference between the coding quality corresponding to the coding result of at least one quality level and the coding quality threshold.

[0049] Step 230, determining the minimum quality difference from the at least one quality difference.

[0050] Step 240, determining the coding result of the quality level corresponding to the minimum quality difference as the reference coding result.

[0051] Since the coding quality of the base layer coding result and each enhancement layer coding result increases layer by layer, the difference between the coding quality corresponding to each coding result and the coding quality threshold will also increase layer by layer. The process of determining the reference coding result can also be understood as determining the lowest layer coding result that reaches the coding quality threshold, that is, taking the layer coding result that is greater than or equal to the coding quality threshold and has the minimum difference with the coding quality threshold as the reference coding result. If the coding quality of the base layer coding result can reach the coding quality threshold, the base layer coding result can be determined as the reference coding result; if the coding quality of the base layer coding result does not reach the coding quality threshold, the reference coding result is the enhancement layer coding result that is greater than or equal to the coding quality threshold and has the minimum difference with the coding quality threshold.

[0052] Determining the coding result of the quality level that has the minimum quality difference with the coding quality threshold as the reference to screen the multiple coding results obtained by coding can discard part of the unnecessary enhancement layers while maintaining the video quality, reduce the coding rate, and improve the coding efficiency.

[0053] Continuing with the example of Figure 4For example, for the 1st frame, the PSNR of the enhancement layer coding results corresponding to the enhancement layer 1, the enhancement layer 2 and the enhancement layer 3 all reaches 36.5. The enhancement layer coding result corresponding to the lowest enhancement layer 1, which has the smallest difference from 36.5, is taken as the reference coding result of the 1st frame. For the 2nd frame, the PSNR of the enhancement layer coding results corresponding to the enhancement layer 2 and the enhancement layer 3 reaches 36.5. The enhancement layer coding result corresponding to the lowest enhancement layer 2 is taken as the reference coding result of the 2nd frame. For the 3rd frame, the PSNR of the enhancement layer coding results corresponding to the enhancement layer 1, the enhancement layer 2 and the enhancement layer 3 reaches 36.5. The enhancement layer coding result corresponding to the lowest enhancement layer 1 is taken as the reference coding result of the 3rd frame. For the 4th frame, the PSNR of the enhancement layer coding result corresponding to the enhancement layer 3 reaches 36.5. The enhancement layer coding result corresponding to the enhancement layer 3 is taken as the reference coding result of the 4th frame. For the 5th frame, the PSNR of the enhancement layer coding results corresponding to the enhancement layer 2 and the enhancement layer 3 reaches 36.5. The enhancement layer coding result corresponding to the lowest enhancement layer 2 is taken as the reference coding result of the 5th frame. It should be understood that, although the basic layer coding results of the 5 frames shown in Figure 4 Fig. 1 do not reach the coding quality threshold 36.5, in other embodiments, if the basic layer coding result of a frame reaches 36.5, the basic layer coding result of the frame is the reference coding result.

[0054] In step 140, the reference layer number corresponding to the reference coding result of each coded frame will be determined. As shown in Fig. 1, for the 1st frame, the reference layer number is the enhancement layer 1; for the 2nd frame, the reference layer number is the enhancement layer 2; for the 3rd frame, the reference layer number is the enhancement layer 1; for the 4th frame, the reference layer number is the enhancement layer 3; and for the 5th frame, the reference layer number is the enhancement layer 2. In other embodiments, if the reference coding result of a frame is the basic layer coding result, the reference layer number of the frame is the basic layer. Figure 4

[0055] In some embodiments of the present application, step 150 includes determining the basic layer coding result as the target coding result, and determining any one of the enhancement layer coding results as the target coding result in response to the layer number of the enhancement layer corresponding to the enhancement layer coding result being less than or equal to the reference layer number.

[0056] As shown in Fig. 1, the target coding result of the 1st frame is the enhancement layer coding result corresponding to the enhancement layer 1, the target coding result of the 2nd frame is the enhancement layer coding result corresponding to the enhancement layer 2, the target coding result of the 3rd frame is the enhancement layer coding result corresponding to the enhancement layer 1, the target coding result of the 4th frame is the enhancement layer coding result corresponding to the enhancement layer 3, and the target coding result of the 5th frame is the enhancement layer coding result corresponding to the enhancement layer 2. Figure 4 ​As shown, the corresponding reference encoding result is determined for each encoded frame, and then the reference encoding result and the encoding results of the quality levels below the layer are determined as the target encoding results. For the first frame, the base layer encoding result and the corresponding enhancement layer 1 encoding result are determined as the target encoding results. For the second frame, the base layer encoding result and the corresponding enhancement layer 1 and enhancement layer 2 encoding results are determined as the target encoding results. For the third frame, the base layer encoding result and the corresponding enhancement layer 1 encoding result are determined as the target encoding results. For the fourth frame, the base layer encoding result and the corresponding enhancement layer 1, enhancement layer 2 and enhancement layer 3 encoding results are determined as the target encoding results. For the fifth frame, the base layer encoding result and the corresponding enhancement layer 1 and enhancement layer 2 encoding results are determined as the target encoding results.

[0057] The encoding results of the quality levels with the number of layers less than or equal to the reference number of layers are determined as the target encoding results, so that the quality of the final output encoding stream can be kept at a high stability.

[0058] In step 160, the second encoding stream is obtained according to the target encoding results corresponding to each encoded frame. The second encoding stream is output to the corresponding target client. For the first encoding stream shown in Figure 4 , the obtained second encoding stream is shown in Figure 5 . As can be seen from Figure 5 , for each frame, the corresponding encoding result reaches the predetermined target encoding quality, and the fluctuation range of the encoding quality of each frame is small. Therefore, in the target client, a relatively stable video quality can be achieved, and the video viewing experience can be effectively improved.

[0059] By using scalable video encoding for the video, the base layer encoding result and the enhancement layer encoding result are obtained, and the encoding results are screened according to the predetermined encoding quality condition, so that the quality of the stream output to the client can reach the expected target quality requirement and keep a high stability, and the video effect can be improved.

[0060] It should be understood that steps 110 to 160 can be performed after the SVC encoding is completed, or can be performed synchronously during the SVC encoding. If performed after the SVC encoding is completed, the screening of the encoding results will be performed according to the predetermined video quality condition, and only the target encoding results are kept and the encoding results of other layers are discarded. If performed synchronously during the SVC encoding, when an encoding result reaches the predetermined video quality condition (i.e., the reference encoding result is determined), the encoding of this frame is stopped, and the obtained encoding result is determined as the target encoding result corresponding to this frame.

[0061] In some embodiments of the present application, the encoding quality condition is determined in advance according to the target client.

[0062] In some cases, the encoded video may need to be transmitted to different clients. For different clients, the requirements for encoding quality may not be the same. For example, for a video conference system, there may be multiple clients accessing. Due to the differences in network bandwidth, screen size, main purpose (real-time viewing or long-term backup) and other factors of each client, the encoding quality conditions of each client may also be different. For example, different clients may evaluate the video quality by using different types of evaluation indicators, or use the same type of evaluation indicator but use different encoding quality thresholds. For example, client 1 uses PSNR for evaluation, and the corresponding encoding quality threshold is PSNR of 36; client 2 uses SSIM for evaluation, and the corresponding encoding quality threshold is SSIM of 0.96; and client 3 uses VMAF for evaluation, and the corresponding encoding quality threshold is VMAF of 95.

[0063] For different clients, different encoding quality conditions can be determined. According to the corresponding encoding quality conditions determined according to different clients, the video encoding method can be adapted to different clients, and the encoding bitstream that meets the target quality requirement can be obtained for different clients, thereby effectively improving the adaptability and flexibility of the video encoding process.

[0064] In some embodiments of the present application, step 120 comprises: determining, based on the encoding quality condition, the encoding quality of each of the encoding results of the multiple quality levels corresponding to the encoding quality condition.

[0065] For different clients, due to different encoding quality conditions, the encoding quality to be determined is also different. For example, if the encoding quality condition uses PSNR for evaluation, for each encoded frame, the PSNR of the encoding result corresponding to each layer can be determined; if the encoding quality condition uses SSIM for evaluation, for each encoded frame, the SSIM of the encoding result corresponding to each layer can be determined; and if the encoding quality condition uses VMAF for evaluation, for each encoded frame, the VMAF of the encoding result corresponding to each layer can be determined.

[0066] In some embodiments of the present application, the target client includes multiple sub-clients. The encoding quality condition includes multiple sub-encoding quality conditions corresponding to the multiple sub-clients respectively. The second encoding bitstream includes multiple second encoding sub-bitstreams corresponding to the multiple sub-clients respectively.

[0067] For any one of the multiple sub-clients: Step 130 includes: in response to the fact that the encoding quality of the encoding result of any one of the multiple quality levels satisfies the sub-coding quality condition corresponding to the sub-client, the encoding result of that quality level is determined as the baseline encoding result corresponding to the sub-client; Step 140 includes: determining the base layer number corresponding to the base encoding result of the sub-client; Step 150 includes: determining at least one target encoding result corresponding to the sub-client from the encoding results of multiple quality levels based on the number of base layers and enhancement layers corresponding to the encoding results of multiple quality levels and the number of reference layers corresponding to the sub-client. Step 160 includes: generating a second encoded sub-stream corresponding to the sub-client based on at least one target encoding result corresponding to the sub-client included in each of the plurality of encoded frames. The second encoded sub-stream is used to be transmitted to the sub-client.

[0068] As mentioned above, the encoded video may need to be transmitted to different clients, meaning the target clients include multiple different sub-clients, and the encoding quality conditions for each sub-client may also be different. Figure 6 As shown, assuming sub-client 1 uses PSNR for evaluation, sub-client 2 uses SSIM for evaluation, and sub-client 3 uses VMAF for evaluation, then for the first encoded bitstream obtained after SVC encoding, the encoding quality corresponding to each of these three encoding quality conditions can be determined respectively. For sub-client 1, for each encoded frame, the PSNR of the encoding result corresponding to each layer can be determined. Based on the PSNR encoding quality condition, the target encoding result corresponding to sub-client 1 is determined using the method described above, resulting in the second encoded sub-bitstream 1, which is then output to sub-client 1. For sub-client 2, for each encoded frame, the SSIM of the encoding result corresponding to each layer can be determined. Based on the SSIM encoding quality condition, the target encoding result corresponding to sub-client 2 is determined using the method described above, resulting in the second encoded sub-bitstream 2, which is then output to sub-client 2. For sub-client 3, for each encoded frame, the VMAF of the encoding result corresponding to each layer can be determined. Based on the VMAF encoding quality condition, the target encoding result corresponding to sub-client 3 is determined using the method described above, resulting in the second encoded sub-bitstream 3, which is then output to sub-client 3. Using this method, only one SVC encoding is needed to output a stable bitstream for different clients.

[0069] By determining different encoding quality levels for different clients based on their varying encoding quality requirements, the encoding results can be filtered for each client to obtain the corresponding encoded bitstream, effectively expanding the applicable scenarios of video encoding methods.

[0070] In some embodiments of the present application, the video encoding method 100 further comprises a first process 300. Referring to Figure 3 , the first process 300 comprises steps 310-320.

[0071] Step 310, determining a plurality of key reference frames from the plurality of encoded frames. Any two adjacent key reference frames in the plurality of key reference frames comprise a predetermined number of encoded frames.

[0072] Step 320, for any one of the plurality of key reference frames: determining the base layer encoding result and the plurality of enhancement layer encoding results comprised by the key reference frame as target encoding results.

[0073] In some embodiments, for the encoded frames encoded by SVC, key reference frames can be introduced at a certain frequency, i.e. after a certain number of frames, a key reference frame is determined. In the example shown in Figure 7 , the 1st frame and the nth frame are key reference frames. Between the two key reference frames, there are a predetermined number of normal encoded frames, which can all be encoded by referring to the previous key reference frame. As shown in Figure 7 , the base layer encoding results of the 2nd frame, the 3rd frame and the 4th frame can be obtained based on the base layer encoding result of the 1st frame (key reference frame), and the enhancement layer encoding results corresponding to the enhancement layer 1, the enhancement layer 2 and the enhancement layer 3 can also be obtained based on the enhancement layer encoding results corresponding to the enhancement layer 1, the enhancement layer 2 and the enhancement layer 3 of the 1st frame. The base layer encoding results of the nth+1 frame, the nth+2 frame and the nth+3 frame can be obtained based on the base layer encoding result of the nth frame (key reference frame), and the enhancement layer encoding results corresponding to the enhancement layer 1, the enhancement layer 2 and the enhancement layer 3 can also be obtained based on the enhancement layer encoding results corresponding to the enhancement layer 1, the enhancement layer 2 and the enhancement layer 3 of the nth frame.

[0074] For key reference frames, all encoding results of all quality levels comprised by the key reference frames are determined as target encoding results, rather than only the base encoding result and the encoding results of the layers below the base layer. In this way, other encoded frames can reliably use these key reference frames as reference frames, and the risk of decoding failure due to the lack of reference frames is reduced as much as possible.

[0075] For Figure 7The example shown, continue the above example, the threshold of the encoding quality is PSNR = 36.5, the 2nd frame, the 3rd frame, the 4th frame, the n+1th frame, the n+2th frame, the n+3th frame are not key reference frames, the corresponding target encoding results can be obtained according to the method in the above. But for two key reference frames, the 1st frame and the nth frame, because the encoding results of other frames may depend on the encoding results of these key reference frames, so the encoding results of all quality levels of the key reference frames need to be retained. As shown in Figure 7 Although the enhancement layer 1 corresponding to the 1st frame has reached 36.5, and the enhancement layer 2 corresponding to the nth frame has reached 36.5, the basic layer encoding results and all the enhancement layer encoding results of the two frames are retained as the target encoding results, so that the encoding results of the subsequent frames can be obtained based on the key reference frames. For Figure 7 The first encoding code stream shown in the embodiment is obtained, and the second encoding code stream is as shown in Figure 8

[0076] Based on the same technical concept, the embodiment of the present application provides a video encoding device. The embodiments of the video encoding device can refer to the embodiments of the video encoding method, and the repeated parts will not be described here. Referring to Figure 9 , the video encoding device 700 comprises an encoding module 710, a quality determination module 720, a reference evaluation module 730, a layer number determination module 740, a quality evaluation module 750 and a generation module 760.

[0077] The encoding module 710 is used for scalable video encoding of a plurality of to-be-encoded frames in a to-be-encoded video to generate a first encoding code stream. The first encoding code stream comprises a plurality of encoded frames corresponding to the plurality of to-be-encoded frames one by one. Any one of the plurality of encoded frames comprises a plurality of quality level encoding results. The plurality of quality level encoding results comprise a basic layer encoding result and a plurality of enhancement layer encoding results.

[0078] The quality determination module 720 is used for determining the encoding quality of each of the plurality of quality level encoding results of any one of the plurality of encoded frames.

[0079] The reference evaluation module 730 is used for determining a quality level encoding result as a reference encoding result in response to the encoding quality of the quality level encoding result in the plurality of quality level encoding results satisfying a predetermined encoding quality condition.

[0080] The layer number determination module 740 is used for determining a reference layer number corresponding to the reference encoding result. The reference layer number indicates the layer number of the basic layer and the enhancement layer corresponding to the reference encoding result.

[0081] ​The quality evaluation module 750 is configured to determine at least one target coding result from the coding results of the multiple quality levels according to the number of layers of the base layer and the enhancement layer and the reference number of layers corresponding to the coding result of each quality level.

[0082] The generation module 760 is configured to generate a second coding bitstream according to the at least one target coding result included in the multiple coded frames respectively. The second coding bitstream is configured to be transmitted to the target client.

[0083] The encoding module 710, the quality determination module 720, the reference evaluation module 730, the number of layers determination module 740, the quality evaluation module 750 and the generation module 760 in the video encoding apparatus 700 can correspond to steps 110 to 160 in the video encoding method 100, and details are not described herein for the sake of brevity. It should be understood that, corresponding to the embodiments of the video encoding method 100, the embodiments of the video encoding apparatus 700 can also include more modules.

[0084] It should be noted that the functions of the various modules discussed herein can be split into multiple modules, and / or at least some of the functions of multiple modules can be combined into a single module. The specific modules discussed herein performing an action include that specific module itself performing the action, or alternatively that specific module invoking or otherwise accessing another component or module that performs the action (or performs the action in conjunction with the specific module). Thus, a specific module performing an action includes that specific module itself performing the action and / or another module invoked or otherwise accessed by the specific module performing the action.

[0085] It should also be understood that various techniques described herein can be described in the general context of software hardware elements or program modules. The terms "software" and "program" are used herein to refer to the computer-related entities comprising the computer programs, code, instructions, or the like. For example, the descriptions above can be implemented in the context of a program module utilizing software language code executed by a computer. Figure 9 The various modules described above can be implemented in hardware or in hardware combined with software and / or firmware. For example, the modules can be implemented as computer program code / instructions configured to be executed in one or more processors and stored in a computer-readable storage medium. Alternatively, the modules can be implemented as hardware logic / circuitry. The hardware logic / circuitry can include an integrated circuit chip (which includes one or more components of a processor (e.g., a Central Processing Unit (CPU), a microcontroller, a microprocessor, a Digital Signal Processor (DSP), etc.), a memory, one or more communication interfaces, and / or other circuitry), and can optionally execute received program code and / or include embedded firmware to perform functions.

[0086] Embodiments of the present application provide a computing device 800, as shown in Figure 10 ​Figure 10 An example configuration of a computing device 800 that can be used to implement the video encoding method 100 described herein is shown. For example, the video encoding apparatus 700 described above can be implemented, in whole or in part, by the computing device 800 or a similar device or system.

[0087] The computing device 800 can include at least one processor 805, memory 807, communication interface(s) 802, display device 801, other input / output (I / O) devices 803, and one or more mass storage devices 806, which are able to communicate with one another by way of a bus 804 or other appropriate connection. The memory 807 has instructions stored thereon that, when executed by the processor 805, cause the processor 805 to perform the video encoding method as in the above-described embodiments.

[0088] The computing device 800 can be of various different types. Examples of the computing device 800 include, but are not limited to, a desktop computer, a server computer, a notebook or netbook computer, a mobile device (e.g., a tablet computer, a cellular or other wireless phone (such as a smart phone), a notepad computer, a mobile station), a wearable device (e.g., glasses, a watch), an entertainment device (e.g., an entertainment appliance, a set-top box, a game console), a television or other display device, an automobile computer, and so forth.

[0089] The processor 805 can be a single processing unit or a plurality of processing units, all of which can include single or multiple computing units or multiple cores. The processor 805 can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and / or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor 805 can be configured to fetch and execute computer-readable instructions stored in the memory 807, the mass storage device 806, or any other computer-readable medium, such as program code for an operating system 808, program code for applications 809, program code for other programs 810, and so forth.

[0090] The memory 807 and mass storage device 806 are examples of computer readable storage media for storing instructions that are executed by the processor 805 to implement the various functions described above. By way of example, the memory 807 can generally include both volatile memory and nonvolatile memory (e.g., RAM, ROM, etc.). In addition, the mass storage device 806 can generally include hard disk drives, solid state drives, removable media, including external and removable drives, memory cards, flash memory, floppy disks, optical disks (e.g., CD, DVD), storage arrays, network attached storage, storage area networks, etc. The memory 807 and mass storage device 806 can be collectively referred to herein as memory or computer readable storage media, and can be non-transitory media capable of storing computer readable, processor executable program instructions as computer program code that can be executed by the processor 805 as a particular machine configured to implement the operations and functions described in the examples herein.

[0091] A number of programs can be stored on the mass storage device 806. These programs include an operating system 808, one or more application programs 809, other programs 810, and program data 811, and they can be loaded into the memory 807 for execution. Examples of such application programs or program modules can include, for example, computer program logic (e.g., computer program code or instructions) for implementing the video encoding apparatus 700 (including the encoding module 710, the quality determination module 720, the reference assessment module 730, the layer number determination module 740, the quality assessment module 750, and the generation module 760), the video encoding method 100 (including any suitable steps of the video encoding method 100), and / or additional embodiments described herein.

[0092] Although illustrated in Figure 10 the memory 807 of the computing device 800, the operating system 808, the application programs 809, the other programs 810, and the program data 811, or portions thereof, can be implemented using any form of computer readable media that is accessible by the computing device 800.

[0093] One or more communication interfaces 802 are used to exchange data with other devices such as over a network, direct connection, or the like. Such communication interfaces can be one or more of: any type of network interface (for example, a network interface card (NIC)), a wired or wireless (such as IEEE 802.11 wireless LAN (WLAN)) wireless interface, a Worldwide Interoperability Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, a Bluetooth™ interface, a near field communication (NFC) interface, or the like. The communication interfaces 802 can facilitate communications within a variety of networks and protocol types including wired networks (for example, LAN, cable, or the like) and wireless networks (for example, WLAN, cellular, satellite, or the like), the Internet, or the like. The communication interfaces 802 can also provide communication with external storage devices (not shown) such as storage arrays, network attached storage, storage area networks, or the like.

[0094] In some examples, a display device 801 such as a monitor can be included for displaying information and images to a user. Other I / O devices 803 can be devices that receive various inputs from a user and provide various outputs to the user, and can include touch input devices, gesture input devices, cameras, keyboards, remote controls, mice, printers, audio input / output devices, or the like.

[0095] The technology described herein can be supported by these various configurations of the computing device 800 and is not limited to the specific examples described herein. For example, the functionality can also be implemented all or in part through use of a distributed system, such as over a "cloud." Cloud includes and / or comprises a platform of resources. The platform abstracts underlying functionality of hardware (for example, servers) and software resources of the cloud. Resources can include applications and / or data that can be utilized while computing processes are executed on servers that are remote from the computing device 800. Resources can also include services provided over the Internet and / or over a subscriber network, such as a cellular or Wi-Fi network. The platform can abstract resources and functionality to connect the computing device 800 with other computer devices. Accordingly, the implementation of functionality described herein can be distributed throughout the cloud. For example, functionality can be implemented in part on the computing device 800 and in part by the platform that abstracts the functionality of the cloud.

[0096] The embodiments of the present application also provide a computer readable storage medium, having stored thereon instructions which, when executed by one or more processors of a computing device, alone or in combination, cause the computing device to perform the method in any of the above embodiments.

[0097] Computer-readable storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer-readable storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information for access by a computing device.

[0098] The embodiments of the present application also provide a computer program product comprising instructions which, when executed by one or more processors of a computing device, individually or collectively, cause the computing device to perform the method as in any of the preceding embodiments.

[0099] Finally, it should be noted that: the above embodiments are only used to illustrate the technical solutions of the present application, and not to limit them; although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand: it can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacement for part or all of the technical features; and these modifications or replacements do not make the essence of the corresponding technical solutions deviate from the scope of the technical solutions of the embodiments of the present application, and they should be covered in the scope of the claims and the specification of the present application. In particular, the technical features mentioned in each embodiment can be combined in any way as long as there is no structural conflict. The present application is not limited to the specific embodiments disclosed herein, but includes all technical solutions falling within the scope of the claims.

Claims

1. A method of video coding, the method comprising: The method comprises: scalable video encoding a plurality of to-be-encoded frames in a to-be-encoded video to generate a first encoded code stream, wherein the first encoded code stream comprises a plurality of encoded frames corresponding to the plurality of to-be-encoded frames, and each of the plurality of encoded frames comprises a plurality of quality level encoded results, the plurality of quality level encoded results comprising a base layer encoded result and a plurality of enhancement layer encoded results; for each of the plurality of encoded frames: determining the encoding quality of each of the plurality of quality level encoded results of the encoded frame; in response to the encoding quality of any one of the plurality of quality level encoded results satisfying a predetermined encoding quality condition, determining the quality level encoded result as a reference encoded result; determining a reference layer number corresponding to the reference encoded result, the reference layer number indicating the number of base layers and enhancement layers corresponding to the reference encoded result; determining at least one target encoded result from the plurality of quality level encoded results according to the number of base layers and enhancement layers corresponding to each of the plurality of quality level encoded results and the reference layer number; and generating a second encoded code stream according to the at least one target encoded result included in the plurality of encoded frames, wherein the second encoded code stream is used to be transmitted to a target client.

2. The video coding method of claim 1, wherein, The response to the encoding quality of any one of the plurality of quality level encoded results satisfying a predetermined encoding quality condition, the quality level encoded result is determined as a reference encoded result, comprising: determining at least one quality level encoded result from the plurality of quality level encoded results, the encoding quality of which is greater than or equal to a predetermined encoding quality threshold; determining at least one quality difference between the encoding quality of the at least one quality level encoded result and the encoding quality threshold; determining a minimum quality difference from the at least one quality difference; and determining the quality level encoded result corresponding to the minimum quality difference as the reference encoded result.

3. The video coding method of claim 1, wherein, The determination of at least one target encoded result from the plurality of quality level encoded results according to the number of base layers and enhancement layers corresponding to each of the plurality of quality level encoded results and the reference layer number, comprising: determining the base layer encoded result as a target encoded result; and in response to the number of enhancement layers corresponding to any one of the plurality of enhancement layer encoded results being less than or equal to the reference layer number, determining the enhancement layer encoded result as a target encoded result.

4. The video coding method of any of claims 1-3, wherein, The encoding quality condition is predetermined according to the target client.

5. The video coding method of claim 4, wherein, The determination of the encoding quality of each of the plurality of quality level encoded results of the encoded frame comprises: determining the encoding quality of each of the plurality of quality level encoded results corresponding to the encoding quality condition based on the encoding quality condition.

6. The video coding method of claim 4, wherein, The target client includes a plurality of sub-clients, the coding quality condition includes a plurality of sub-coding quality conditions respectively corresponding to the plurality of sub-clients, and the second coding code stream includes a plurality of second coding sub-code streams respectively corresponding to the plurality of sub-clients, For any one of the plurality of sub-clients: The step of determining the coding result of any one of the plurality of quality levels as a reference coding result in response to the coding quality of the coding result satisfying the predetermined coding quality condition includes: determining the coding result of any one of the plurality of quality levels as a reference coding result corresponding to the sub-client in response to the coding quality of the coding result satisfying a sub-coding quality condition corresponding to the sub-client; The step of determining the number of reference layers corresponding to the reference coding result includes: determining the number of reference layers corresponding to the reference coding result corresponding to the sub-client; The step of determining at least one target coding result from the plurality of quality level coding results according to the number of base layers and the number of enhancement layers corresponding to the plurality of quality level coding results and the number of reference layers includes: determining at least one target coding result corresponding to the sub-client from the plurality of quality level coding results according to the number of base layers and the number of enhancement layers corresponding to the plurality of quality level coding results and the number of reference layers corresponding to the sub-client; The step of generating a second coding code stream according to the at least one target coding result included in the plurality of coded frames includes: generating a second coding sub-code stream corresponding to the sub-client according to the at least one target coding result corresponding to the sub-client included in the plurality of coded frames, the second coding sub-code stream being used for being transmitted to the sub-client.

7. The video coding method of any of claims 1-3, wherein, The video coding method further includes: Determining a plurality of key reference frames from the plurality of coded frames, any two adjacent key reference frames in the plurality of key reference frames including a predetermined number of coded frames; For any one of the plurality of key reference frames: Determining the base layer coding result and the plurality of enhancement layer coding results included in the key reference frame as target coding results.

8. A video encoding apparatus, comprising: Comprise: A coding module configured to perform scalable video coding on a plurality of to-be-coded frames in a to-be-coded video to generate a first coding code stream, wherein the first coding code stream includes a plurality of coded frames corresponding one-to-one to the plurality of to-be-coded frames, any one of the plurality of coded frames includes a plurality of quality level coding results, and the plurality of quality level coding results include a base layer coding result and a plurality of enhancement layer coding results; A quality determination module configured to, for any one of the plurality of coded frames, determine the coding quality of each of the plurality of quality level coding results of the coded frame; A reference evaluation module configured to determine a coding result of any one of the plurality of quality levels as a reference coding result in response to the coding quality of the coding result satisfying a predetermined coding quality condition; a layer number determination module configured to determine a reference layer number corresponding to the reference encoding result, the reference layer number indicating layer numbers of a base layer and an enhancement layer corresponding to the reference encoding result; a quality evaluation module configured to determine at least one target encoding result from the multiple quality level encoding results according to layer numbers of base layers and enhancement layers corresponding to the multiple quality level encoding results and the reference layer number; and a generation module configured to generate a second encoding bitstream according to the at least one target encoding result included in the multiple encoded frames respectively, wherein the second encoding bitstream is used to be transmitted to a target client.

9. A computing device, comprising: comprising: at least one processor; and at least one memory communicatively connected with the at least one processor, the at least one memory storing instructions which, when executed by the at least one processor alone or jointly, cause the computing device to perform the video encoding method in any one of claims 1 to 7.

10. A computer readable storage medium characterized by, storing instructions which, when executed by one or more processors of a computing device alone or jointly, cause the computing device to perform the video encoding method in any one of claims 1 to 7.

11. A computer program product, characterised in that, comprising instructions which, when executed by one or more processors of a computing device alone or jointly, cause the computing device to perform the video encoding method in any one of claims 1 to 7.

Citation Information

Patent Citations

  • Video quality fluctuation control method and device based on scalable video coding

    CN103200399A

  • Image encoding and decoding method and device

    CN115699745A

  • Video processing method and related equipment

    CN117119198A

  • Self-adaptive video coding method based on unmanned aerial vehicle

    CN118573867A

  • Time domain extensible video coding method, system and device and storage medium

    CN119544683A