Video coding method and device, equipment and storage medium

By determining the target encoding method based on the number of requesting ends and equipment requirements, and employing H.264, H.265, or MPEG series encoding and video layering encoding, the problem of video layering encoding affecting clarity is solved, and efficient video encoding is achieved at the downlink requesting end.

CN121924262APending Publication Date: 2026-04-24BEIJING ZITIAO NETWORK TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
BEIJING ZITIAO NETWORK TECH CO LTD
Filing Date
2024-10-24
Publication Date
2026-04-24

AI Technical Summary

Technical Problem

While existing video layering coding methods can alleviate video playback stuttering at the downlink receiving end, they also reduce video coding efficiency and affect video clarity. Therefore, choosing a suitable video coding method has become a problem.

Method used

Based on the number of requesting endpoints and device playback requirements, the target encoding method is determined, and an appropriate video encoding method is used to encode the video to be encoded, including H.264, H.265, MPEG series encoding, and video layering encoding, to ensure the clarity and smooth playback of the video at the downlink requesting endpoint.

Benefits of technology

By using appropriate encoding methods, the clarity and smoothness of video at the downlink request end are ensured, encoding efficiency is improved, and the device requirements of different playback terminals are adapted.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121924262A_ABST
    Figure CN121924262A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a video coding method and device, equipment and a storage medium, and the method comprises the steps: determining the number of request sending ends, and enabling the request sending ends to be playing terminals which send playing requests for a to-be-coded video; if the number of the sending ends is greater than a set threshold value, determining a target coding mode of the to-be-coded video according to predetermined playing analysis information, the playing analysis information being determined based on equipment playing demand information fed back by each request sending end; the equipment playing demand information is used for reflecting the playing attribute of the corresponding request sending end; and coding a to-be-coded video by adopting the target coding mode, and issuing a video code stream formed after processing to each request sending end. By using the method, the proper video coding mode is determined for the video to be coded, so that the video is coded by adopting the proper video coding mode. Therefore, the definition and the playing fluency of the coded video can be guaranteed when the coded video is played at the downlink request end, and the coding efficiency is also better improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of video processing technology, and in particular to a video encoding method, apparatus, device, and storage medium. Background Technology

[0002] In video encoding, layered video coding can be used to divide a single video bitrate into multiple levels. Then, partial or complete bitrate segments from these multiple levels can be used to form a video that meets transmission requirements. This method effectively alleviates video playback stuttering issues caused by insufficient bandwidth at the downlink receiving end.

[0003] However, while layered video coding can alleviate playback stuttering at the downlink receiver, it also reduces encoding efficiency, thus affecting the clarity of the played video. Therefore, layered video coding is not suitable for all video encoding scenarios, and choosing a suitable video coding method is a problem that needs to be solved. Summary of the Invention

[0004] This disclosure provides a video encoding method, apparatus, device, and storage medium that can determine a more suitable video encoding method for the video to be encoded.

[0005] In a first aspect, embodiments of this disclosure provide a video encoding method, the method comprising:

[0006] Determine the number of request sending terminals, where each request sending terminal is a playback terminal that sends a playback request for the video to be encoded.

[0007] If the number of sending ends is greater than a set threshold, the target encoding method of the video to be encoded is determined according to the pre-determined playback analysis information. The playback analysis information is determined based on the device playback demand information fed back by each requesting sending end. The device playback demand information is used to reflect the playback attributes of the corresponding requesting sending end.

[0008] The target encoding method is used to encode the video to be encoded, and the resulting video bitstream is sent to each of the request sending ends.

[0009] Secondly, embodiments of this disclosure also provide a video encoding apparatus, the apparatus comprising:

[0010] The information determination module is used to determine the number of request sending terminals, wherein the request sending terminals are playback terminals that send playback requests for the video to be encoded;

[0011] The first determining module is used to determine the target encoding method of the video to be encoded based on pre-determined playback analysis information when the number of sending ends is greater than a set threshold. The playback analysis information is determined based on the device playback demand information fed back by each requesting sending end. The device playback demand information is used to reflect the playback attributes possessed by the corresponding requesting sending end.

[0012] The video encoding module is used to encode the video to be encoded using the target encoding method, and to send the processed video bitstream to each of the request sending ends.

[0013] Thirdly, embodiments of this disclosure also provide a computer device, the computer device comprising:

[0014] One or more processors;

[0015] Storage device for storing one or more programs.

[0016] When the one or more programs are executed by the one or more processors, the one or more processors implement the video encoding method provided in any embodiment of this disclosure.

[0017] Fourthly, embodiments of this disclosure also provide a computer-readable storage medium having a computer program stored thereon, which, when executed by a processor, implements the video encoding method provided in any embodiment of this disclosure.

[0018] Fifthly, embodiments of this disclosure also provide a computer program product, including a computer program that, when executed by a processor, implements the video encoding method provided in any embodiment of this disclosure.

[0019] This disclosure provides a video encoding method, apparatus, device, and storage medium. The method first determines the number of requesting terminals, which are playback terminals that send playback requests for the video to be encoded. Then, if the number of requesting terminals exceeds a set threshold, a target encoding method for the video to be encoded is determined based on pre-determined playback analysis information. This playback analysis information is based on device playback requirement information fed back by each requesting terminal, reflecting the playback attributes of the corresponding requesting terminal. Finally, the target encoding method is used to encode the video, and the resulting video stream is sent to each requesting terminal. This embodiment's technical solution can determine a suitable video encoding method for the video to be encoded based on the number of downlink requesting terminals and the device playback requirements of the downlink requesting terminals when playing the video. This allows for the use of a suitable video encoding method to encode the video. Consequently, the clarity and smoothness of the encoded video are guaranteed when played on the downlink requesting terminals, and the encoding efficiency is improved. Attached Figure Description

[0020] To more clearly illustrate the technical solutions of the exemplary embodiments of this disclosure, the accompanying drawings used in describing the embodiments are briefly introduced below. Obviously, the accompanying drawings described are only a portion of the embodiments to be described in this disclosure, and not all of them. For those skilled in the art, other drawings can be obtained from these drawings without any creative effort.

[0021] Figure 1 A flowchart illustrating a video encoding method provided in an embodiment of this disclosure;

[0022] Figure 2 This is a schematic diagram of the structure of a video encoding device provided in an embodiment of the present disclosure;

[0023] Figure 3 This is a schematic diagram of the structure of a computer device provided in an embodiment of this disclosure. Detailed Implementation

[0024] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0025] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.

[0026] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.

[0027] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules, or units, and are not used to limit the order of functions performed by these devices, modules, or units or their interdependencies. It should also be noted that the modifications of "a" and "a plurality of" mentioned in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0028] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0029] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0030] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.

[0031] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.

[0032] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose whether to "agree" or "disagree" to provide personal information to the electronic device.

[0033] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.

[0034] Figure 1 This is a flowchart illustrating a video encoding method provided in an embodiment of the present disclosure. This embodiment is applicable to the case of video encoding. The method can be executed by a video encoding device, which can be implemented by software and / or hardware, and can be configured in a terminal and / or server to implement the video encoding method in the embodiment of the present disclosure.

[0035] like Figure 1 As shown, the video encoding method provided in this embodiment may specifically include the following steps:

[0036] It is understood that, in this embodiment, the execution entity of the provided method can preferably be a server with video publishing and encoding capabilities.

[0037] S101. Determine the number of request sending terminals, wherein the request sending terminals are playback terminals that send playback requests for the video to be encoded.

[0038] In this embodiment, it can be determined whether a downlink playback terminal has sent a video playback request at the current execution time, and the playback terminal that sent the playback request can preferably be recorded as the request sender. This step can be performed to count the request senders after determining that a playback request has been received at the current time, thereby obtaining the number of senders.

[0039] It should be noted that when a downstream playback terminal wants to play a video, it first needs to send a playback request to this execution entity. The video it requests to play can be considered as the video to be encoded.

[0040] S102. If the number of sending ends is greater than a set threshold, the target encoding method of the video to be encoded is determined according to the pre-determined playback analysis information. The playback analysis information is determined based on the device playback demand information fed back by each requesting sending end. The device playback demand information is used to reflect the playback attributes possessed by the corresponding requesting sending end.

[0041] In this embodiment, the statistically determined amount of data from requesting ends can be used as a benchmark for determining the video encoding method. Different encoding method determination logic can be executed based on whether the number of senders exceeds a set threshold. This step can be seen as the execution branch when the number of senders exceeds a set threshold, wherein the set threshold is preferably a set threshold value.

[0042] It should be noted that common video encoding methods include H.26X series encoding that meets standards such as H.264 or H.265, MPEG series encoding that meets standards such as MPEG-1, MPEG-2, or MPEG-4, and layered video encoding. Layered video encoding can divide a video into multiple video streams with different resolutions, bitrates, or frame rates. This method can alleviate playback stuttering caused by insufficient bandwidth at the video playback end, but it reduces video encoding efficiency and affects video clarity. The method provided in this embodiment allows selection from existing encoding methods, such as H.264 encoding, and layered video encoding methods, to achieve a balance between smoothness and clarity in video encoding.

[0043] Analysis shows that if only a set threshold of clients requesting video playback sends a request, it means only that threshold of playback terminals have the need for video playback. In this case, bandwidth issues related to video transmission are rare, and therefore, video playback stuttering due to insufficient bandwidth is also uncommon. Thus, in this situation, the smoothness of video playback is not a primary concern; ensuring video clarity is more important. Using layered video encoding in this scenario would actually negatively impact encoding efficiency. Therefore, when only a set threshold of clients makes playback requests, a non-layered encoding method, such as H.264 encoding, should be prioritized to guarantee video clarity.

[0044] Following the above analysis, if the number of sending terminals exceeds the set threshold, it's equivalent to at least two playback terminals requesting video playback. In this case, the downloaded video needs to be transmitted to different playback terminals. Given a fixed transmission bandwidth, the more playback terminals there are, the higher their bandwidth usage will be, potentially leading to insufficient bandwidth and video playback stuttering. However, the number of playback terminals is not the decisive factor for video playback stuttering. If multiple playback terminals have the same playback requirements, such as the required frame rate and bitrate, then the video can be encoded at the same bitrate or frame rate. In this case, a given baseline video encoding method, such as H.264 encoding, can be used to encode the video.

[0045] It is known that if multiple playback terminals have different device playback requirements, such as different frame rates and / or bit rates required by different playback terminals, in order to improve the playback effect of video on different playback terminals, video layer coding can be used to encode the video, thereby forming video streams with different bit rates and / or frame rates, so that the video bit rate can be adapted to more playback terminals.

[0046] Based on this, in this embodiment, the encoding method used for video encoding can be determined by the number of requesting senders and the playback requirements of the devices involved in the requesting sender. The playback requirement information, which constitutes the device playback requirements, can reflect the playback attributes of the corresponding requesting sender. Playback attributes may include the required frame rate, bit rate, and bandwidth. In this embodiment, whether the playback requirements of different playback terminals are the same can be obtained through pre-determined playback analysis information. The playback analysis information can be understood as information analyzing the characteristics of the playback requirements of the requesting sender. The playback analysis information may include analysis of the required bit rate of the requesting sender, or analysis of the required frame rate of the requesting sender. In this embodiment, this playback analysis information can be pre-determined using the device playback requirement information obtained from the requesting sender.

[0047] In this embodiment, one method for determining playback analysis information can be described as follows: Obtain device playback demand information fed back by the requesting end. This device playback demand information may include information such as the frame rate, bit rate, and bandwidth required by the requesting end for video playback. Then, the frame rate, bit rate, and other information values ​​required by each requesting end can be parsed from the device playback demand information. The frame rate and bit rate of each requesting end can be divided according to at least one pre-defined frame rate interval and bit rate interval, thereby dividing the frame rate and bit rate into the matched frame rate interval and bit rate interval respectively. Next, a target frame rate interval containing the frame rate and a target bit rate interval containing the bit rate can be determined. Based on the number of determined intervals, it can be determined whether there are differences in the frame rate and bit rate of multiple requesting ends. Finally, the determined target bit rate interval and target frame rate interval, as well as the analysis content regarding whether there are differences in frame rate and bit rate, can be recorded as playback analysis information.

[0048] In this embodiment, one implementation process for determining the target encoding method for the video to be encoded using playback analysis information can be described as follows: Based on the frame rate analysis content contained in the playback analysis information, it can be determined whether there are differences in the playback requirements of the devices between the requesting ends. If there are differences, it can be considered that the conditions for video layered encoding are met, and thus the video layered encoding method can be determined as the target encoding method for the video to be encoded; if there are no differences, it can be considered that the conditions for video layered encoding are not met, and thus the H.26X series encoding or MPEG series encoding method can be determined as the target encoding method for the video to be encoded.

[0049] S103. The target encoding method is used to encode the video to be encoded, and the processed video bitstream is sent to each of the request sending ends.

[0050] In this embodiment, if the video layered encoding is determined to be the target video encoding through the above steps, video layered encoding can be used to encode the video to be encoded, and the encoded video bitstream can be sent to the requesting end. When using video layered encoding, it is necessary to specify the number of encoding layers, determine the bitrate of each layer when layering in the bitrate dimension, and the frame rate of each layer when layering in the frame rate dimension.

[0051] In this embodiment, the maximum number of layers can be determined based on the encoding characteristics of the video encoder used. Generally, two or three layers can be created. For the bitrate or frame rate of each layer, this embodiment can determine the same number of bitrates or frame rates as the number of layers based on the analysis of the required frame rate and bitrate from the requesting end in the playback analysis information, and use these as the bitrates or frame rates for each layer. Finally, the video encoder can be controlled to encode video streams with different frame rates or bitrates for multiple layers according to the known bitrates or frame rates of each layer.

[0052] In this embodiment, the above steps can also determine that a video encoding method that does not involve encoding layers is used for video encoding. The encoding method that does not involve encoding layers can be H26X series encoding, such as H264 encoding and H265 encoding, etc., or MPEG series encoding, such as encoding methods that conform to video standards MPEG-1, MPEG-2 or MPEG-4, etc.

[0053] This embodiment provides a video encoding method that determines a suitable video encoding method for the video to be encoded based on the number of downlink requesting ends and the device playback requirements of the downlink requesting ends when playing the video. This allows the appropriate video encoding method to be used to encode the video. Consequently, the clarity and smoothness of the encoded video are guaranteed when played back on the downlink requesting ends, and the encoding efficiency is also significantly improved.

[0054] As a first optional embodiment of this example, based on the above embodiment, the playback analysis information may preferably include frame rate analysis content and bit rate analysis content.

[0055] In this embodiment, the playback analysis information can be specifically considered as information formed by analyzing the playback requirements of the requesting end. The playback requirements formed by the playback attributes of the requesting end can be reflected in two aspects: the frame rate required by the requesting end and the bitrate required by the requesting end. Based on this, this embodiment further optimizes the playback analysis information to include both frame rate analysis content and bitrate analysis content.

[0056] As a representation method for frame rate analysis and bitrate analysis, both types of analysis can be represented using corresponding histograms. Taking frame rate as an example, the horizontal axis of the histogram can represent multiple pre-defined frame rate intervals, and the vertical axis can represent the number of frames falling within each interval. Each frame rate value can come from the playback demand information of the requesting device. Therefore, the number of frames within a frame rate interval can also be considered as the number of requesting devices corresponding to that interval. By analyzing the frame rate in the playback analysis information, it can be determined whether different requesting devices require the same frame rate. Similarly, by analyzing the bitrate, it can also be determined whether different requesting devices require the same bitrate.

[0057] Based on this optimization, determining the target encoding method for the video to be encoded, according to pre-determined playback analysis information, can be specified as the following steps:

[0058] a1) If the frame rate analysis content indicates that different requesting ends require different frame rates, and / or the bit rate analysis content indicates that different requesting ends require different bit rates, then the video layered encoding method is determined as the target encoding method.

[0059] For example, in the frame rate analysis content represented in the form of a histogram, it can be seen whether the frame rate required by all requesting ends falls within the same frame rate range. If so, it is considered that the frame rates required by different requesting ends are the same; if not, that is, the frame rates fall within multiple frame rate ranges, it is considered that the frame rates required by different requesting ends are different.

[0060] Similarly, in the bitrate analysis presented as a histogram, you can check whether the bitrate required by all requesting ends falls into the same bitrate range. If so, it is considered that the bitrate required by different requesting ends is different; if not, that is, the bitrate falls into multiple bitrate ranges, it is considered that the bitrate required by different requesting ends is different.

[0061] Understandably, a histogram is just one way to represent frame rate analysis and bit rate analysis. Each analysis can be represented in the form of an analysis table. Its purpose is simply to determine whether there are differences in the playback requirements of multiple requesting ends through frame rate analysis and / or bit rate analysis.

[0062] This step, as a branch for determining a video encoding method, can be considered to meet the encoding conditions of video layered encoding when multiple requesting ends have different playback requirements (required bitrate and / or required frame rate) based on frame rate analysis content and / or bitrate analysis content. Thus, video layered encoding can be determined as the target encoding method.

[0063] b1) If the frame rate analysis content indicates that the frame rate required by different requesting ends is the same, and the bit rate analysis content indicates that the bit rate required by different requesting ends is the same, then the preset baseline encoding method is determined as the target encoding method.

[0064] In this embodiment, as described above, when the frame rate analysis content and / or bit rate analysis content indicate that multiple requesting ends have the same playback requirements (required bit rate and / or required frame rate), it can be considered that video layered encoding is unnecessary. Therefore, a preset baseline encoding method can be determined as the target encoding method. This baseline encoding method can be H.264 encoding, H.265 encoding, or encoding methods conforming to MPEG-1, MPEG-2, or MPEG-4 video standards.

[0065] This embodiment provides a specific implementation for determining the target encoding method. It can determine whether to use layered video encoding by considering the differences in frame rate and / or bit rate required by the requesting end. This method can determine a more suitable encoding method for the video to be encoded, thereby improving video encoding efficiency and better ensuring a balance between video playback clarity and smoothness.

[0066] As a second optional embodiment of this example, the specific implementation of determining playback analysis information based on the device playback demand information fed back by each request sending end can be optimized to the following steps:

[0067] a2) Receive device playback demand information fed back by each of the request sending ends, wherein the device playback demand information includes the demand frame rate and the demand bit rate.

[0068] In this embodiment, the playback analysis information can be determined specifically by the device playback requirements fed back by the request sending end. Specifically, this step can first obtain the device playback requirement information fed back by each request sending end. This device playback requirement information feeds back the frame rate and bit rate information required for video playback. The fed-back frame rate can be recorded as the required frame rate, and the fed-back bit rate can be recorded as the required bit rate.

[0069] b2) Divide the required frame rate into a set frame rate range and the required bit rate into a set bit rate range to obtain the corresponding frame rate division result and bit rate division result.

[0070] In this embodiment, this step can be used to divide the obtained required frame rate and required bitrate into given intervals. For example, multiple intervals can be set for the frame rate, and this step can determine which interval each required frame rate falls into, thus assigning it to that interval. Similarly, multiple intervals can be set for the bitrate, and this step can also determine which interval each required bitrate falls into, thus assigning it to that interval. Through this step, the final frame rate and bitrate allocation results can be obtained.

[0071] In this embodiment, the frame rate allocation result can specifically include which required frame rates fall into which frame rate ranges, and similarly, the bitrate allocation result can specifically include which required bitrates fall into which bitrate ranges.

[0072] c2) Based on the frame rate division result and the bit rate division result, determine the corresponding frame rate analysis content and bit rate analysis content respectively, and obtain playback analysis information containing the frame rate analysis content and bit rate analysis content.

[0073] In this embodiment, by knowing which frame rate intervals contain the required frame rate and which bitrate intervals contain the required bitrate, the frame rate intervals that fall within the required frame rate and the bitrate intervals that fall within the required bitrate can be determined as target frame rate intervals, and the number of target frame rate intervals and the number of target bitrate intervals can also be counted. This step ultimately constructs frame rate analysis content based on each target frame rate interval and the required frame rate falling within it, combined with the determined number of intervals; similarly, bitrate analysis content can also be constructed based on each target frame rate interval and the required bitrate falling within it, combined with the determined number of intervals.

[0074] Based on this optional embodiment, this embodiment provides a method for determining frame rate analysis content and bit rate analysis content. Specifically, the determination of the corresponding frame rate analysis content and bit rate analysis content based on the frame rate division result and bit rate division result can be optimized into the following steps:

[0075] c21) Determine the target frame rate intervals that have been allocated to the required frame rate from the frame rate division results, count the number of first intervals of the target frame rate intervals, and construct the frame rate analysis content based on the number of first intervals and each of the target frame rate intervals.

[0076] In this embodiment, the frame rate division result records information about which frame rate interval each required frame rate falls into. Therefore, the frame rate intervals containing the required frame rates can be identified as target frame rate intervals. This step counts the number of target frame rate intervals identified, and the obtained statistical value can be recorded as the first interval quantity. Then, the frame rate analysis content can be constructed using the first interval quantity and the target frame rate intervals according to a preset representation.

[0077] c22) Determine the target bitrate intervals that have been included in the required bitrate from the bitrate division results, count the number of second intervals in the target bitrate intervals, and construct the bitrate analysis content based on the number of second intervals and each of the target bitrate intervals.

[0078] In this embodiment, the bitrate allocation result records information about which bitrate interval each demanded bitrate falls into. Therefore, the bitrate interval containing the demanded bitrate can be identified as the target bitrate interval. This step can statistically determine the number of target bitrate intervals, and the obtained statistical value can be recorded as the second interval quantity. Then, the bitrate analysis content can be constructed using the second interval quantity and the target bitrate intervals according to a preset representation.

[0079] In this embodiment, for frame rate analysis content, it is preferable to limit the number of the first intervals to be greater than a set threshold, indicating that different requesting ends require different frame rates; the number of the second intervals to be greater than a set threshold, indicating that different requesting ends require different bit rates.

[0080] It can be seen that if the number of the first interval is a set threshold, it can be considered that the required frame rate of different requesting ends is divided into one frame rate interval. At this time, it can be considered that the required frame rate of the requesting ends is basically the same. Similarly, if the number of the second interval is a set threshold, it can be considered that the required bit rate of different requesting ends is divided into one bit rate interval. At this time, it can be considered that the required bit rate of the requesting ends is basically the same.

[0081] In another scenario, if the number of the first interval is greater than the set threshold, it can be assumed that the required frame rates of different requesting ends are divided into multiple frame rate intervals. In this case, it can be assumed that there are differences in the required frame rates between the requesting ends. Thus, it can be assumed that the number of the first interval being greater than the set threshold indicates that the required frame rates of different requesting ends are different. Similarly, if the number of the second interval is greater than the set threshold, it can be assumed that the required bitrates of different requesting ends are divided into multiple bitrate intervals. In this case, it can be assumed that there are differences in the required bitrates between the requesting ends. Thus, it can be assumed that the number of the second interval being greater than the set threshold indicates that the required bitrates of different requesting ends are different.

[0082] The above-described technical solution in this embodiment provides an implementation for determining playback analysis information. This embodiment uses the playback request feedback from the requesting end to generate analysis information crucial for determining the video encoding method. By establishing this playback analysis information, it better achieves effective adaptation between the video encoding method and the playback capabilities of the requesting end.

[0083] As a third optional embodiment of this example, based on the above embodiments, the encoding process of the video to be encoded using the target encoding method and the resulting video bitstream being sent to each of the request sending ends can be further specified as the following steps:

[0084] a3) When the target encoding method is the video layered encoding, the layered bitrate and layered frame rate of each layer are formed according to the frame rate analysis content and bitrate analysis content in the playback analysis information.

[0085] In this embodiment, the video encoding operation is mainly implemented through a video encoder. This step can determine the maximum number of layers that can be performed when performing layered video encoding by using the attribute information of the video encoder itself. In this embodiment, the determined number of layers can be recorded as the layer number.

[0086] It is known that in layered video coding, layered coding can be performed according to different coding dimensions, such as bitrate, frame rate, resolution, or even video quality. This embodiment preferably considers bitrate and frame rate dimensions. It is also known that in layered coding, when coding is performed according to bitrate, different layers can encode different bitrates; when coding is performed according to frame rate, different layers can encode different frame rates. The frame rate and / or bitrate to be encoded at each layer needs to be determined in advance, which is equivalent to determining the layered bitrate and layered frame rate for each layer.

[0087] In this embodiment, the layered bitrate and layered frame rate involved in each level can be determined based on the frame rate analysis content and bitrate analysis content in the pre-determined playback analysis information. For example, as an implementation method, based on this optional embodiment, the formation of the layered bitrate and layered frame rate for each level based on the frame rate analysis content and bitrate analysis content in the playback analysis information can be specified as the following steps:

[0088] a31) Determine the maximum frame rate corresponding to each target frame rate interval included in the frame rate analysis content, and determine the maximum bit rate corresponding to each target bit rate interval included in the bit rate analysis content.

[0089] In this embodiment, the frame rate analysis content includes target frame rate intervals that fall within the required frame rate. For each target frame rate interval, this step can determine the maximum frame rate from the required frame rates falling within that interval. Thus, each target frame rate interval can obtain a corresponding maximum frame rate. Similarly, this step can determine the maximum bitrate from the required bitrates falling within each target bitrate interval in the bitrate analysis content, and each target bitrate interval can obtain a corresponding maximum bitrate.

[0090] b31) Determine the layered bitrate and layered frame rate for each layer based on the maximum frame rate and maximum bitrate described above.

[0091] In this embodiment, the number of maximum frame rates and maximum bitrates determined through the above steps is the same as the number of target frame rate intervals and target bitrate intervals. This step can also sort each maximum frame rate and maximum bitrate in ascending order. If the number of determined maximum frame rates and maximum bitrates is less than or equal to the maximum allowed number of layers, then the sorted maximum frame rates and / or maximum bitrates can be used sequentially as the layered frame rate and / or layered bitrate of a layer level, and only layers with the same number of intervals are performed during video layered encoding. In this embodiment, it is assumed that the layered bitrate and layered frame rate are different for each layer. That is, each layer has a different layered bitrate and layered frame rate.

[0092] As an alternative implementation, this step can also process all determined maximum frame rates and maximum bitrates if the number of determined maximum frame rates and maximum bitrates exceeds the allowed maximum number of layers. For example, based on the difference between the number of available maximum frame rates and maximum bitrates and the maximum number of layers, the frame rate and bitrate with the maximum number of layers can be selected from all maximum frame rates and maximum bitrates to serve as the layer bitrate and layer frame rate for each layer. In this case, the layers divided during video layer coding are the maximum number of layers.

[0093] b3) Perform layered encoding on the video to be encoded according to the layered bitrate and layered frame rate respectively to obtain a layered video bitstream with a set number of layers.

[0094] In this embodiment, the number of layers divided by layer coding is determined accordingly when determining the layer bitrate and layer frame rate. This step can form a set number of layered video streams with different layer bitrates and / or layer frame rates through video layer coding.

[0095] c3) Treat each of the layered video streams as a processed video stream, and send each of the layered video streams to each of the request sending ends.

[0096] In this embodiment, this step can form a layered video bitstream after layered encoding. The video bitstreams of each layer constitute the encoded video bitrate, which can be distributed to each requesting end in the form of each layered video bitstream.

[0097] It should be noted that this execution entity will send the video streams of each layer to the requesting end. The requesting end can then selectively receive part or all of the video streams according to its own device playback needs, thereby forming video content that is more suitable for its own playback conditions.

[0098] The above-described technical solution in this embodiment provides a specific implementation of video layered coding for video encoding. Specifically, playback analysis information can be used to determine the layer bitrate and / or layer frame rate involved in each layer of the layered coding. This method enables the encoding of video bitrates that are more suitable for the playback conditions of the requesting end, thereby improving the playback experience on the video playback end.

[0099] Based on the above embodiments, the method provided in this embodiment can be further optimized to include: if the number of sending ends is equal to the set threshold, then the preset base coding method is determined as the target coding method.

[0100] In this embodiment, the number of transmitters can be considered a fundamental criterion for determining the video encoding method. Different encoding method determination logic can be executed based on whether the number of transmitters exceeds a set threshold. In this embodiment, if the number of transmitters is not greater than the set threshold (i.e., equal to the set threshold), it can be assumed that only the set threshold of playback terminals currently has the capacity to play the video. In this case, the target encoding method can be determined through the steps provided in this preferred embodiment; specifically, a preset baseline encoding method can be determined as the target encoding method.

[0101] The above-described technical solution in this embodiment provides an implementation for determining the video encoding method when the number of requesting ends equals a set threshold. In this case, a preset baseline encoding method, such as H.26 series encoding or MPEG series encoding, can be used. There is no need for layered encoding or to consider the differences in playback requirements of different playback terminals. The video can be guaranteed to have better clarity simply by using this baseline encoding method.

[0102] Figure 2 This is a schematic diagram of a video encoding device provided in an embodiment of the present disclosure. This embodiment is applicable to video encoding. The device can be implemented by software and / or hardware, and can be configured in a terminal and / or server to implement the video encoding method in this embodiment. Specifically, the device may include: an information determination module 21, a first determination module 22, and a video encoding module 23.

[0103] Among them, the information determination module 21 is used to determine the number of request sending ends, wherein the request sending end is a playback terminal that sends a playback request for the video to be encoded;

[0104] The first determining module 22 is used to determine the target encoding method of the video to be encoded based on pre-determined playback analysis information when the number of sending ends is greater than a set threshold. The playback analysis information is determined based on the device playback demand information fed back by each requesting sending end. The device playback demand information is used to reflect the playback attributes possessed by the corresponding requesting sending end.

[0105] Video encoding module 23 is used to encode the video to be encoded using the target encoding method, and to send the processed video bitstream to each of the request sending ends.

[0106] This embodiment provides a video encoding device that can determine a suitable video encoding method for the video to be encoded based on the number of downlink requesting ends and the device playback requirements of the downlink requesting ends when playing the video. This allows the appropriate video encoding method to be used to encode the video. Consequently, the clarity and smoothness of the encoded video are guaranteed when played back on the downlink requesting ends, and the encoding efficiency is also significantly improved.

[0107] Furthermore, the playback analysis information includes frame rate analysis content and bit rate analysis content;

[0108] Accordingly, the first determining module 22 can be specifically used for:

[0109] If the frame rate analysis content indicates that different requesting ends require different frame rates, and / or the bit rate analysis content indicates that different requesting ends require different bit rates, then the video layered coding method is determined as the target coding method.

[0110] If the frame rate analysis content indicates that different requesting ends require the same frame rate, and the bit rate analysis content indicates that different requesting ends require the same bit rate, then the preset baseline encoding method is determined as the target encoding method.

[0111] Furthermore, the device may also include an analysis information determination module, used to determine playback analysis information based on the device playback demand information fed back by each request sending end;

[0112] Accordingly, the analysis information determination module may specifically include:

[0113] The receiving unit is used to receive device playback demand information fed back by each of the request sending ends, wherein the device playback demand information includes the demand frame rate and the demand bit rate.

[0114] A partitioning unit is used to partition the required frame rate into a set frame rate range and the required bit rate into a set bit rate range, thereby obtaining the corresponding frame rate partitioning result and bit rate partitioning result.

[0115] The determining unit is used to determine the corresponding frame rate analysis content and bit rate analysis content according to the frame rate division result and bit rate division result, respectively, and obtain playback analysis information containing the frame rate analysis content and bit rate analysis content.

[0116] Furthermore, the determining unit can specifically be used for:

[0117] The target frame rate intervals that are included in the required frame rate are determined from the frame rate division results. The number of first intervals of the target frame rate intervals is counted, and the frame rate analysis content is constructed based on the number of first intervals and each of the target frame rate intervals.

[0118] The target bitrate intervals that are included in the required bitrate are determined from the bitrate division results. The number of second intervals in the target bitrate intervals is counted, and the bitrate analysis content is constructed based on the number of second intervals and each of the target bitrate intervals.

[0119] Wherein, the number of the first interval is greater than a set threshold, indicating that different requesting ends require different frame rates; the number of the second interval is greater than a set threshold, indicating that different requesting ends require different bit rates.

[0120] Furthermore, the video encoding module 23 may specifically include:

[0121] The layer determination unit is used to form the layered bitrate and layered frame rate of each layer according to the frame rate analysis content and bitrate analysis content in the playback analysis information when the target encoding method is the video layered encoding.

[0122] A layered encoding unit is used to perform layered encoding on the video to be encoded according to each layered bitrate and layered frame rate to obtain a layered video bitstream with a set number of layers.

[0123] The bitstream acquisition unit is used to treat each of the layered video bitstreams as a processed video bitstream and send each of the layered video bitstreams to each of the request sending ends.

[0124] Furthermore, the hierarchical determination of units can be specifically used for:

[0125] Determine the maximum frame rate corresponding to each target frame rate interval included in the frame rate analysis content, and determine the maximum bit rate corresponding to each target bit rate interval included in the bit rate analysis content.

[0126] Based on the maximum frame rate and maximum bit rate, determine the layer bit rate and layer frame rate for each layer level;

[0127] The layer bitrate and layer frame rate are different for each layer.

[0128] Furthermore, the device may also include a second determining module, used to determine a preset base encoding method as the target encoding method if the number of transmitting ends is equal to the set threshold.

[0129] The above-described apparatus can execute the methods provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects for executing the methods.

[0130] It is worth noting that the various units and modules included in the above-mentioned device are only divided according to functional logic, but are not limited to the above division, as long as the corresponding functions can be realized; in addition, the specific names of each functional unit are only for easy differentiation and are not used to limit the protection scope of the embodiments of this disclosure.

[0131] Figure 3 This is a schematic diagram of the structure of a computer device provided in an embodiment of this disclosure. Reference is made below. Figure 3 It illustrates a computer device suitable for implementing embodiments of the present disclosure (e.g., Figure 3 The diagram below shows the structure of the terminal device or server 30. The terminal device in this embodiment may include, but is not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), and vehicle terminals (e.g., vehicle navigation terminals), as well as fixed terminals such as digital TVs and desktop computers. Figure 3 The computer device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.

[0132] like Figure 3 As shown, the computer device 30 may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) 31, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 32 or a program loaded from a storage device 38 into a random access memory (RAM) 33. The RAM 33 also stores various programs and data required for the operation of the computer device 30. The processing unit 31, the ROM 32, and the RAM 33 are interconnected via a bus 35. An edit / output (I / O) interface 34 is also connected to the bus 35.

[0133] Typically, the following devices can be connected to I / O interface 34: input devices 36 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 37 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 38 including, for example, magnetic tapes, hard disks, etc.; and communication devices 39. Communication device 39 allows computer device 30 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 3 A computer device 30 with various devices is shown, but it should be understood that it is not required to implement or have all of the devices shown. More or fewer devices may be implemented or have instead.

[0134] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 39, or installed from a storage device 38, or installed from a ROM 32. When the computer program is executed by the processing device 31, it performs the functions defined in the methods of embodiments of this disclosure.

[0135] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0136] The computer device provided in this embodiment and the video encoding method provided in the above embodiments belong to the same inventive concept. Technical details not described in detail in this embodiment can be found in the above embodiments, and this embodiment has the same beneficial effects as the above embodiments.

[0137] This disclosure provides a computer storage medium storing a computer program that, when executed by a processor, implements the video encoding method provided in the above embodiments.

[0138] It should be noted that the computer-readable medium described above in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination of the two. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof.

[0139] In this disclosure, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in connection with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can also be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0140] In some implementations, clients and servers can communicate using any currently known or future-developed network protocol such as HTTP (Hypertext Transfer Protocol) and can interconnect with digital data communication (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.

[0141] The aforementioned computer-readable medium may be included in the aforementioned computer device; or it may exist independently and not assembled into the computer device.

[0142] The aforementioned computer-readable medium carries one or more programs that, when executed by the computer device, cause the computer device to:

[0143] Computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination thereof, including but not limited to object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0144] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0145] The units described in the embodiments of this disclosure can be implemented in software or in hardware. The name of a unit does not necessarily limit the unit itself; for example, the first acquisition unit can also be described as "a unit that acquires at least two Internet Protocol addresses".

[0146] The functions described above in this document can be performed, at least in part, by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0147] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.

[0148] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.

[0149] Furthermore, although the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while some specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.

[0150] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative examples of implementing the claims.

Claims

1. A video encoding method, characterized in that, include: Determine the number of request sending terminals, where each request sending terminal is a playback terminal that sends a playback request for the video to be encoded. If the number of sending ends is greater than a set threshold, the target encoding method of the video to be encoded is determined according to the pre-determined playback analysis information. The playback analysis information is determined based on the device playback demand information fed back by each requesting sending end. The device playback demand information is used to reflect the playback attributes of the corresponding requesting sending end. The target encoding method is used to encode the video to be encoded, and the resulting video bitstream is sent to each of the request sending ends.

2. The method according to claim 1, characterized in that, The playback analysis information includes frame rate analysis content and bit rate analysis content; The step of determining the target encoding method of the video to be encoded based on pre-determined playback analysis information includes: If the frame rate analysis content indicates that different requesting ends require different frame rates, and / or the bit rate analysis content indicates that different requesting ends require different bit rates, then the video layered encoding method is determined as the target encoding method. If the frame rate analysis content indicates that different requesting ends require the same frame rate, and the bit rate analysis content indicates that different requesting ends require the same bit rate, then the preset baseline encoding method is determined as the target encoding method.

3. The method according to claim 1, characterized in that, The steps for determining playback analysis information based on the device playback demand information returned by each requesting end include: Receive device playback demand information fed back by each of the request sending ends, wherein the device playback demand information includes the demand frame rate and the demand bit rate; The required frame rate is divided into a set frame rate range, and the required bit rate is divided into a set bit rate range to obtain the corresponding frame rate division result and bit rate division result. Based on the frame rate division results and bit rate division results, the corresponding frame rate analysis content and bit rate analysis content are determined respectively, and playback analysis information containing the frame rate analysis content and bit rate analysis content is obtained.

4. The method according to claim 3, characterized in that, The step of determining the corresponding frame rate analysis content and bit rate analysis content based on the frame rate division result and bit rate division result respectively includes: The target frame rate intervals that are included in the required frame rate are determined from the frame rate division results. The number of first intervals of the target frame rate intervals is counted, and the frame rate analysis content is constructed based on the number of first intervals and each of the target frame rate intervals. The target bitrate intervals that are included in the required bitrate are determined from the bitrate division results. The number of second intervals in the target bitrate intervals is counted, and the bitrate analysis content is constructed based on the number of second intervals and each of the target bitrate intervals. Wherein, the number of the first interval is greater than a set threshold, indicating that different requesting ends require different frame rates; the number of the second interval is greater than a set threshold, indicating that different requesting ends require different bit rates.

5. The method according to claim 1, characterized in that, The process of encoding the video to be encoded using the target encoding method and then sending the processed video bitstream to each of the request sending ends includes: When the target encoding method is the video layered encoding, the layered bitrate and layered frame rate of each layer are formed according to the frame rate analysis content and bitrate analysis content in the playback analysis information; The video to be encoded is encoded in layers according to the layer bitrate and layer frame rate, respectively, to obtain a layered video bitstream with a set number of layers; Each of the layered video streams is treated as a processed video stream, and each of the layered video streams is sent to each of the request sending ends.

6. The method according to claim 5, characterized in that, The step of forming layered bitrates and layered frame rates for each layer based on the frame rate analysis content and bitrate analysis content in the playback analysis information includes: Determine the maximum frame rate corresponding to each target frame rate interval included in the frame rate analysis content, and determine the maximum bit rate corresponding to each target bit rate interval included in the bit rate analysis content. Based on the maximum frame rate and maximum bit rate, determine the layer bit rate and layer frame rate for each layer level; The layer bitrate and layer frame rate are different for each layer.

7. The method according to claim 1, characterized in that, Also includes: If the number of transmitters is equal to the set threshold, then the preset base encoding method is determined as the target encoding method.

8. A video encoding device, characterized in that, include: The information determination module is used to determine the number of request sending terminals, wherein the request sending terminals are playback terminals that send playback requests for the video to be encoded; The first determining module is used to determine the target encoding method of the video to be encoded based on pre-determined playback analysis information when the number of sending ends is greater than a set threshold. The playback analysis information is determined based on the device playback demand information fed back by each requesting sending end. The device playback demand information is used to reflect the playback attributes possessed by the corresponding requesting sending end. The video encoding module is used to encode the video to be encoded using the target encoding method, and to send the processed video bitstream to each of the request sending ends.

9. A computer device, characterized in that, The computer device includes: One or more processors; a storage device for storing one or more programs. When the one or more programs are executed by the one or more processors, the one or more processors implement the video encoding method as described in any one of claims 1-7.

10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the video encoding method as described in any one of claims 1-7.

11. A computer program product comprising a computer program that, when executed by a processor, implements the video encoding method according to any one of claims 1-7.