CN115134632A - Video code rate control method, device, medium and Content Delivery Network (CDN) system - Google Patents

Video code rate control method, device, medium and Content Delivery Network (CDN) system Download PDF

Info

Publication number
CN115134632A
CN115134632A CN202110322470.XA CN202110322470A CN115134632A CN 115134632 A CN115134632 A CN 115134632A CN 202110322470 A CN202110322470 A CN 202110322470A CN 115134632 A CN115134632 A CN 115134632A
Authority
CN
China
Prior art keywords
cdn
target video
code rate
center server
edge node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110322470.XA
Other languages
Chinese (zh)
Other versions
CN115134632B (en
Inventor
田柳
吴传杰
程炎
林琳
朱振凯
操张进
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Group Anhui Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Group Anhui Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Group Anhui Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202110322470.XA priority Critical patent/CN115134632B/en
Publication of CN115134632A publication Critical patent/CN115134632A/en
Application granted granted Critical
Publication of CN115134632B publication Critical patent/CN115134632B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

The application discloses a video code rate control method, equipment, a medium and a Content Delivery Network (CDN) system. The video code rate control method comprises the following steps: responding to a first request sent by a terminal for accessing a target video distributed by a CDN system, and determining a transcoding strategy of the target video by a CDN scheduling center server based on the resource type and code rate of the target video and the network environment of the current CDN system; under the condition that the transcoding strategy is a code rate improving operation, the CDN edge node server executes a preset code rate improving operation to improve the code rate of the target video; and under the condition that the transcoding strategy is to reduce the code rate, the CDN content center server executes preset code rate reduction operation to reduce the code rate of the target video resource. By adopting the video code rate control method provided by the application, whether the video needs to be transcoded can be comprehensively decided according to the bearing capacity of each node of the CDN system, network conditions and user requirements, so that the user requirements are met, and meanwhile, the bandwidth is saved.

Description

Video code rate control method, device, medium and Content Delivery Network (CDN) system
Technical Field
The application relates to a multimedia video technology, in particular to a video code rate control method, equipment, a medium and a Content Delivery Network (CDN) system.
Background
With the rapid development of home broadband services and internet television services, broadband acceleration continues to advance, high-flow video and live broadcast services become mainstream, and a Content Delivery Network (CDN) system has become a main bearing network for bearing high-flow services such as internet television and broadband video, which is directly related to service stability and user perception.
The existing CDN systems include more and more servers, more and more complex systems, and higher bearing pressure. Taking an Anhui mobile CDN system as an example, live channels in Internet television service bearing capacity exceed 500 channels, the concurrent user scale exceeds 150 thousands, the number of servers is huge, the number of nodes exceeds 30, and the number of servers exceeds 800. At present, operation and maintenance management is very complex, an existing video code rate control system is independent of a CDN system, processing efficiency is low, and user film watching experience is seriously influenced.
Disclosure of Invention
An object of the embodiments of the present application is to provide a method, an apparatus, a device, a medium, and a transcoding system for controlling a video service code rate, which can solve the technical problem in the prior art that a code rate of a video resource cannot be dynamically adjusted according to a current node and a network link load of a CDN.
The technical scheme of the application is as follows:
in a first aspect, a video rate control method is provided, which is applied to a content delivery network CDN system, where the CDN system includes a CDN scheduling center server, a CDN content center server, and a CDN edge node server, and includes: responding to a first request sent by a terminal for accessing a target video distributed by a CDN system, and determining a transcoding strategy of the target video by a CDN scheduling center server based on the resource type and code rate of the target video and the network environment of the current CDN system; under the condition that the transcoding strategy is a code rate improving operation, the CDN edge node server executes a preset code rate improving operation to improve the code rate of the target video; and under the condition that the transcoding strategy is to reduce the code rate, the CDN content center server executes preset code rate reduction operation to reduce the code rate of the target video resource.
In some embodiments, in response to a first request sent by a terminal for accessing a target video resource distributed by a CDN system, before a CDN scheduling center server determines a transcoding policy for the target video resource based on a resource type and a bitrate of the target video resource and a network environment of a current CDN system, the method further includes:
a CDN scheduling center server receives a first request sent by a terminal and used for accessing a target video resource distributed by a CDN system, wherein the first request carries a target video resource identifier;
and the CDN scheduling center server determines the resource type and the code rate of the target video resource based on the target video resource identifier.
In some embodiments, in a case that the transcoding policy is to reduce a bitrate, the CDN content center server performs a preset bitrate reduction operation, before reducing the bitrate of the target video resource, the method further includes:
and in the case that the target video does not exist in the CDN content center server, the CDN content center server returns the source to the source station.
In some embodiments, in a case that the transcoding policy is to reduce the bitrate, the CDN content center server performs a preset bitrate reduction operation, and after reducing the bitrate of the target video resource, the method further includes:
the CDN edge node server returns the source to a CDN content center server;
and the CDN scheduling center server schedules the user to access the transcoded target video stored by the CDN edge node server.
In some embodiments, when the transcoding policy is a bitrate boost, the CDN edge node server performs a preset bitrate boost operation, and before the bitrate of the target video is boosted, the method further includes:
under the condition that the target video does not exist in the CDN edge node server, the CDN edge node server returns the source to the CDN content center server;
and under the condition that the target video does not exist in the CDN edge node server and does not exist in the CDN content center server, the CDN content center server returns the source to the source station so that the CDN edge node server returns the source to the CDN content center server.
In some embodiments, when the transcoding policy is to increase a bitrate, the CDN edge node server performs a preset bitrate increase operation, and after increasing the bitrate of the target video, the method further includes:
and the CDN scheduling center server schedules the user to access the transcoded target video stored by the CDN edge node server.
In some embodiments, in the case that the transcoding policy is transcoding-free, the method further comprises:
under the condition that the target video exists in the CDN edge node server, the CDN scheduling center server schedules a user to access the target video;
under the condition that the target video does not exist in the CDN edge node server, the CDN edge node server returns the source to the CDN content center server so that the CDN scheduling center server schedules the user to access the target video;
under the condition that the target video does not exist in the CDN edge node server and does not exist in the CDN content center server, the CDN content center server returns the source to the source station;
and the CDN edge node server returns the source to the CDN content center server so that the CDN scheduling center server schedules the user to access the target video.
In a second aspect, a content delivery network CDN system is provided, where the system includes:
the CDN scheduling center server is used for responding to a first request sent by a terminal and used for accessing a target video distributed by the CDN system, and determining a transcoding strategy of the target video based on the resource type and code rate of the target video and the network environment of the current CDN system;
the CDN edge node server is used for executing preset code rate increasing operation under the condition that the transcoding strategy is the code rate increasing operation, and increasing the code rate of the target video;
and the CDN content center server is used for executing preset code rate reduction operation under the condition that the transcoding strategy is to reduce the code rate, so that the code rate of the target video resource is reduced.
In a third aspect, an embodiment of the present application provides an electronic device, which includes a processor, a memory, and a program or instructions stored on the memory and executable on the processor, where the program or instructions, when executed by the processor, implement the steps of the video bitrate control method according to the first aspect.
In a fourth aspect, an embodiment of the present application provides a readable storage medium, on which a program or instructions are stored, where the program or instructions, when executed by a processor, implement the steps of the video rate control method according to the first aspect.
The technical scheme provided by the embodiment of the application at least has the following beneficial effects:
according to the video code rate control method provided by the embodiment of the application, the distributed video transcoding system is directly deployed on the CDN system, and a transcoding instruction is determined based on target video information and a current network environment sent by a CDN scheduling center, wherein the transcoding instruction comprises a code rate increasing rate and a code rate reducing rate.
Under the condition that the transcoding instruction is used for improving the code rate, controlling a transcoder child node deployed at the CDN edge node to improve the code rate of the target video and generate a transcoding result; by improving the code rate at the CDN edge node, high definition of massive medium and low definition content can be realized, so that the content source of the ultra-high definition video is greatly expanded, the video resolution is improved from 480P/720P to 4K, and the viewing effect is improved.
Under the condition that the transcoding instruction is to reduce the code rate, controlling a transcoder main node deployed in a CDN content center to reduce the code rate of the target video and generate a transcoding result; by realizing intelligent code reduction in the CDN content center, low-bandwidth transmission under high-quality image experience can be ensured for a scene with suddenly increased flow, so that the consumption of infrastructure and the bandwidth cost are reduced, and code rate reduction and bandwidth saving are realized.
The distributed video transcoding system is deployed in a distributed cluster structure, based on the existing CDN system, transcoders are deployed in network elements of the CDN system in a distributed mode, whether the video needs to be transcoded or not is comprehensively decided according to the bearing capacity of each node of the CDN system, network conditions and user requirements, so that video media contents with different code rates and resolutions are provided, the user requirements are met, meanwhile, the bandwidth is saved, the cost is reduced, the effect is improved, and good user experience is guaranteed.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the application.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the present application and, together with the description, serve to explain the principles of the application and are not to be construed as limiting the application.
Fig. 1 is a first schematic structural diagram of a content delivery network CDN system provided in an embodiment of the present application;
fig. 2 is a first flowchart illustrating a video rate control method according to an embodiment of the present application;
fig. 3 is a schematic flowchart illustrating a second method for controlling video bitrate according to an embodiment of the present application;
fig. 4 is a schematic structural diagram of a content delivery network CDN system according to an embodiment of the present application;
fig. 5 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
In order to make the technical solutions of the present application better understood by those of ordinary skill in the art, the technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are intended to be illustrative only and are not intended to be limiting. It will be apparent to one skilled in the art that the present application may be practiced without some of these specific details. The following description of the embodiments is merely intended to provide a better understanding of the present application by illustrating examples thereof.
It should be noted that the terms "first," "second," and the like in the description and claims of this application and in the drawings described above are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the data so used is interchangeable under appropriate circumstances such that the embodiments of the application described herein are capable of operation in sequences other than those illustrated or described herein. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Rather, they are merely examples consistent with certain aspects of the present application, as detailed in the appended claims.
Based on the background technology, a Content Delivery Network (CDN) system is more and more complex, and an existing video rate control system is independent of the CDN system, greatly affected by the CDN system, low in processing efficiency, and seriously affected by the user viewing experience.
Specifically, taking the mobile CDN system in anhui as an example, live channels in internet television service are over 500 channels, and the size of concurrent users is over 150 ten thousands. All the service bearers are carried by the unicast protocol, so that the system construction is complex, and the number of servers is huge, wherein the number of nodes exceeds 30, and the number of servers exceeds 800. In order to facilitate operation and maintenance management, control investment scale, and meet the requirements of users for viewing experience, it is necessary to implement a code rate control function for video services. On the premise of not influencing the viewing experience of the user, the image quality is enhanced, and the bearing pressure of the system is reduced. In addition, with the rapid increase of the number of terminals and the low delay requirement of more services, the code rate control needs to sink from the center to the edge to achieve the effects of low delay and low bandwidth.
Based on the above findings, embodiments of the present application provide a method, device, medium, and content delivery network CDN system for controlling video bit rate, which can achieve high definition of massive medium and low definition content by performing bit rate enhancement at a CDN edge node server, thereby greatly expanding content sources of an ultra high definition video, increasing video resolution from 480P/720P to 4K, and improving viewing effects. By realizing intelligent code reduction on the CDN content center server, low-bandwidth transmission under high-quality image experience can be ensured aiming at a scene of sudden flow increase, so that the consumption of infrastructure and bandwidth cost are reduced, and code rate reduction and bandwidth saving are realized.
For ease of understanding, a content delivery network CDN system according to an embodiment of the present application will be briefly described.
Referring to fig. 1, a content delivery network CDN system 100 integrates a distributed video transcoding system, where the distributed video transcoding system includes a code rate scheduling and controlling module, a transcoder master node, and a transcoder child node, and the CDN system includes a CDN scheduling center server 110, a CDN content center server 120, and a CDN edge node server 130.
A code rate scheduling and controlling module of the distributed video transcoding system is deployed on the CDN scheduling center server 110, and hereinafter, the CDN scheduling center server 110 and the code rate scheduling and controlling module are collectively referred to as the CDN scheduling center server 110. The CDN scheduling center server 110 implements functions including: collecting and integrating bandwidth information, live broadcast or on-demand video resources, inquiring relevant information (basic information such as code rate, coding format and the like), and dynamically determining a transcoding strategy. Specific implementations of the functions are described below.
The CDN content center server 120 is deployed with a transcoder master node of a distributed video transcoding system, and hereinafter, the CDN content center server 120 and the transcoder master node are collectively referred to as the CDN content center server 120. The CDN content center server 120 executes a code reduction algorithm, converts image quality from high resolution to low resolution at the CDN content center server 120, and distributes a low resolution video to the CDN edge node server 130; the CDN edge node server 130 responds to the user's request and provides the transcoded video resources to the user.
The CDN edge node server 130 deploys transcoder sub-nodes of the distributed video transcoding system, and hereinafter, the CDN edge node server 130 and the transcoder sub-nodes are collectively referred to as the CDN edge node server 130. The CDN edge node server 130 executes an image enhancement algorithm to convert the image quality from a low resolution to a high resolution at the CDN edge node server 130; the CDN slave node responds to the video resource request of the user, and provides the transcoded video resource data to the user terminal 140 or the CDN node.
The following describes the video rate control method provided in the embodiments of the present application in detail with reference to the accompanying drawings.
Fig. 2 shows a flowchart of a video rate control method provided in an embodiment of the present application, where the method may be applied to the content delivery network CDN system that incorporates the distributed video transcoding system described above, where the CDN system includes a CDN scheduling center server, a CDN content center server, and a CDN edge node server, and as shown in fig. 2, the method may include steps S110 to S130.
Step S110, responding to a first request sent by the terminal to access a target video distributed by the CDN system, where the CDN scheduling center server determines a transcoding policy for the target video based on a resource type and a bitrate of the target video and a network environment of the current CDN system.
The terminal can be a device which can be connected with a network and accesses the CDN system, such as a smart phone, a tablet computer, a desktop computer, a smart television, a set-top box, a projector, a laser television and the like. The device may have a display device such as a mobile phone or a television itself, or may be a device capable of displaying a video image through an external device such as a set-top box.
The network environment may be various parameters capable of representing the load carrying capacity and link load condition of each node of the CDN system, such as a network bandwidth, a memory size, a cache size, a CPU index, a GPU index, an environment temperature, a hardware temperature, a service category of operation, and the like.
The transcoding strategy can be to increase the code rate, decrease the code rate and not need transcoding. The transcoding strategy can also be associated with a series of operation instructions, so that after the system confirms the transcoding strategy, the system can complete the transcoding task by executing the associated operation instructions.
In an example, after the terminal sends a first request for accessing a target video distributed by the CDN system, the CDN system needs to receive the first request first and then can perform some operations related to a response based on information carried in the first request. Accordingly, the step S110 may specifically include steps S1101 to S1103.
Step S1101 is that the CDN scheduling center server receives a first request sent by the terminal to access a target video resource delivered by the CDN system, where the first request carries a target video resource identifier.
The target video resource identifier may be an identifier code of a target video, and is used to search for the target video resource in multiple videos of the CDN system. The target video resource identifier is also associated with relevant information of the target video, such as the type of the target video resource, the code rate of the target video resource, the size of the target video resource, the storage location of the target video resource, and the like.
Step S1102, the CDN scheduling center server determines a resource type and a code rate of the target video resource based on the target video resource identifier.
The type of the target video resource can be a video format of a target video, i.e., a video encoding mode, and can be divided into two categories, namely a local video suitable for local playing and a network streaming media video suitable for playing in a network. Specific video types can be MPEG format, AVI format, nAII format, ASF format, MOV format, WMV format, 3GP format, RM format, RMVB format, FLV format, F4V format, etc.
Step S1103, the CDN scheduling center server determines a transcoding policy of the target video based on the resource type and the code rate of the target video and the network environment of the current CDN system.
The CDN dispatching center server firstly determines the format of a target video resource needing transcoding, the video code rate of the current network environment capable of being played smoothly, and then determines whether the code rate needs to be reduced or increased according to the code rate of the current target video resource and the code rate capable of being played smoothly. The CDN scheduling center server may further determine the size of the code rate that needs to be increased or decreased. Under the condition that the resource type of the target video resource needs to be adjusted, the CDN scheduling center server may further determine a format type to which the target video resource needs to be converted.
Step S120, when the transcoding strategy is a code rate enhancement, the CDN edge node server performs a preset code rate enhancement operation to enhance the code rate of the target video.
The bitrate increasing operation may include one or more operation instructions, and the operation instructions cooperate to perform a task of increasing the bitrate of the target video. The transcoding strategy is to increase the bitrate, but under different network environments, the operation instruction for increasing bitrate operation may be different. The code rate increasing operation can be adjusted in a self-adaptive mode, and different code rates are changed when network conditions are different.
And the CDN edge node server is used for executing the operation of improving the code rate. Since the transmission line is shortest from the terminal, the response speed of the terminal is faster after the code rate is converted at the point.
The CDN edge node server may further execute a video resource format conversion operation when it is determined in step S110 that the resource type of the target video resource needs to be adjusted, so as to make playing of the video smoother and meet the movie viewing requirements of the user.
In step S130, under the condition that the transcoding strategy is to reduce the code rate, the CDN content center server executes a preset code rate reduction operation to reduce the code rate of the target video resource.
The bitrate reduction operation may include one or more operation instructions that cooperate to perform the task of reducing the bitrate of the target video. The transcoding strategy is to reduce the bitrate, but under different network environments, the operation instructions for bitrate reduction operation may be different. The code rate reduction operation can be adaptively adjusted, and different code rates are converted when network conditions are different.
And the CDN content center server executes the operation of reducing the code rate. Because the CDN edge node server is connected behind the CDN content center server, the code is directly reduced at the CDN content center server, the bandwidth resource required in the process of transmitting the CDN content center server to the CDN edge node server can be reduced, the network load of a CDN system is reduced, and the pressure is relieved.
The CDN content center server may also perform video resource format conversion operation when determining that the resource type of the target video resource needs to be adjusted in step S110, so as to make playing of the video smoother and meet the user' S movie viewing requirements.
After the steps S110 to S130 are executed, the transcoded video is to be stored in the CDN edge node server, and at this time, the CDN scheduling center server may schedule the terminal to access the transcoded target video stored in the CDN edge node server. The terminal can access the transcoded video, and the playing fluency of the terminal is ensured.
The video code rate control method provided by the embodiment of the application is based on the existing CDN system, the transcoders are deployed in each network element of the CDN system in a distributed mode, and whether the video needs to be transcoded or not is comprehensively decided according to the bearing capacity of each node of the CDN system, network conditions and user requirements. Under the condition that the transcoding instruction is code rate improvement, code rate improvement is carried out on CDN edge nodes, high definition of massive medium and low definition content can be achieved, accordingly content sources of the ultra-high definition video are greatly enlarged, video resolution is improved from 480P/720P to 4K, and viewing effects are improved. Under the condition that the transcoding instruction is to reduce the code rate, intelligent code reduction is realized in the CDN content center, and low-bandwidth transmission under high image quality experience can be ensured for a scene with suddenly increased flow, so that the consumption of infrastructure and the bandwidth cost are reduced, and the code rate reduction and the bandwidth saving are realized.
When the CDN edge node server executes the preset lifting code rate operation, it is first determined whether a target video resource exists in the CDN edge node server. If the target video resource is not located in the CDN edge node server, it needs to be found back to the source.
In some embodiments, for the case that the target video resource is at the CDN edge node, step S120 in the foregoing embodiments may specifically find the target video resource by searching for the target video from the source, and then perform a preset bitrate increasing operation to increase the bitrate of the target video. The specific implementation manner of searching the target video resource back to the source is as follows:
and under the condition that the target video does not exist in the CDN edge node server, the CDN edge node server returns the source to the CDN content center server.
Under the condition that the target video does not exist in the CDN edge node server and does not exist in the CDN content center server, the CDN content center server returns the source to the source station; and the CDN edge node server returns the source to the CDN content center server so that the CDN edge node server returns the source to the CDN content center server.
The transcoding policy in step S110 of the above embodiment may also be that transcoding is not required, and when the transcoding policy is that transcoding is not required, the CDN scheduling center server schedules the user to access the transcoded target video stored by the CDN edge node server.
If the target video does not exist with the CDN edge node server, the target video resource needs to be found back to the source. The process of searching for the target video resource from the source is the same as that of searching for the target video resource when the transcoding strategy is to increase the code rate, and is not repeated here. And after the back source finds the target video resource, the CDN scheduling center server schedules the user to access the target video.
When the CDN content central server executes the preset bit rate reduction operation, it is first determined whether a target video resource exists in the CDN content central server. If the target video resource is not in the CDN content center server, the target video resource needs to be found back to the source.
In some embodiments, the step S130 may specifically include steps S1301 to S1302.
Step S1301, when the target video does not exist in the CDN content center server, the CDN content center server returns the source to the source station.
When the current network environment is poor, the code rate of the target video resource needs to be reduced, so that the user can obtain the video which can be played in the process at the terminal. Since not all video resources are on the CDN content center server, it is necessary to return the source to the source station to find the target video resource.
Step S1302, in a case that the transcoding strategy is to reduce the code rate, the CDN content center server executes a preset code rate reduction operation to reduce the code rate of the target video resource.
And the CDN content center server executes the operation of reducing the code rate. Because the CDN content center server is connected with the CDN edge node server, the code is directly reduced in the CDN content center server, the bandwidth resource required in the process of transmitting the CDN content center server to the CDN edge node server can be reduced, the network load of a CDN system is reduced, and the pressure is relieved.
The CDN content center server may also execute the video resource format conversion operation when determining that the resource type of the target video resource needs to be adjusted in step S110, so as to make the playing of the video smoother and meet the user viewing requirements.
When the transcoding strategy is to reduce the code rate, the CDN content center server performs a preset code rate reduction operation to reduce the code rate of the target video resource, and then the method may further include step S1303 — step S1304.
Step S1303, the CDN edge node server returns the source to the CDN content center server.
The CDN edge node server is a server connected with the user terminal, and the transcoded video is provided for the user terminal through the CDN edge node server. And after the CDN edge node server finishes the operation of reducing the code rate in the CDN content center, returning to the source to obtain the target video resource.
In step S1304, the CDN scheduling center server schedules the user to access the transcoded target video stored by the CDN edge node server.
After the CDN scheduling center server determines that the CDN content center server has completed transcoding and the CDN edge node server has returned the source to the CDN content center server, the CDN scheduling center server schedules the user to access the target video resource, and at this time, the video resource which is smoothly played can be obtained.
In addition, it should be noted that the video resource in the foregoing embodiments of the present application is only an example, and the scheme may also be used for media resources such as audio resources, graphics and text resources, and the like. In case of application to other media assets, the transcoding operation may be in the form of an operation corresponding thereto that enables a change in the size of the media asset.
To facilitate understanding of the video rate control method provided in the embodiments of the present application, a specific example is described below.
Referring to fig. 3, a user accesses a video resource distributed by the CDN system, after a terminal sends a request, a CDN scheduling center responds to the access request of the terminal, and a CDN scheduling server determines whether to transcode the video resource requested by the user according to the type of the resource accessed by the user, a transcoding rate, the load carrying capacity of each node of the current CDN system, and a link load condition, and if transcoding is required, a specific transcoding policy is issued by a transcoding rate scheduling and control module.
If the image quality of the video resource requested by the current user is too low, the code rate scheduling and controlling module issues a code rate increasing strategy, and the CDN edge node judges whether the video resource exists in the edge node. If the video resource exists in the CDN edge node, a transcoder sub-node deployed in the CDN edge node executes a code rate increasing operation, and a CDN scheduling center schedules a user to the edge node after the code rate is increased for the video resource, so that video resource service is provided for the user. And if the video resource does not exist in the CDN edge node, the CDN edge node returns the source to the CDN content center, and if the video resource does not exist in the CDN content center, the CDN content center returns the source to the source station.
If the code rate of the current user for requesting the video resources is high, the CDN node and the network load are high, a code rate scheduling and control module issues a code rate reduction strategy, if the video resources do not exist in a CDN content center, the CDN content center returns the source to a source station, a transcoder main node deployed in the CDN content center converts the video resources from high resolution to low resolution, a CDN edge node requests the CDN content center to return the source of the low resolution video resources, the CDN scheduling center schedules the user to the CDN edge node where the video resources after code reduction exist, and video resource service is provided for the user.
The code rate scheduling and controlling module executes a transcoding strategy to issue, and a transcoding node performs transcoding according to code rate requirements according to instructions of the transcoding strategy, wherein when the transcoding strategy instructions are issued, the instructions mainly comprise key information such as video resource URLs, a transcoded audio/video format and code rates to form an instruction parameter set; and the main node or the sub-node of the transcoder creates transcoding service according to the transcoding strategy instruction parameter set, and different video resource URLs provide service in different channel modes. And generating a transcoding instruction of the transcoding service according to the transcoding strategy, and generating a rule by using a related instruction, so that the transcoding service is dynamically provided when a user resource requests.
Based on the same inventive concept, the embodiment of the application also provides a content delivery network CDN system.
Fig. 4 shows a content delivery network CDN system 400 provided in an embodiment of the present application, where as shown in fig. 4, the CDN system 400 may include:
the CDN scheduling center server 410 may be configured to determine, based on a resource type and a code rate of a target video and a network environment of a current CDN system, a transcoding policy of the target video in response to a first request sent by a terminal to access the target video delivered by the CDN system;
the CDN edge node server 420 may be configured to execute a preset code rate increasing operation to increase the code rate of the target video when the transcoding policy is a code rate increasing operation;
the CDN content center server 430 may be configured to execute a preset code rate reduction operation to reduce the code rate of the target video resource when the transcoding policy is to reduce the code rate.
In some embodiments, the CDN scheduling center server 410 may include a request receiving unit, an information processing unit, and a policy determination unit.
The request receiving unit may be configured to receive a first request sent by a terminal to access a target video resource distributed by the CDN system, where the first request carries a target video resource identifier.
And the information processing unit is used for determining the resource type and the code rate of the target video resource based on the target video resource identifier.
The policy determining unit may be configured to determine, based on a resource type and a code rate of the target video resource and a network environment of the current CDN system, a transcoding policy of the target video resource, in response to a first request sent by the terminal to access the target video resource distributed by the CDN system.
In some embodiments, the CDN content center server 430 may include a first video lookup unit, a code reduction unit.
The first video search unit may be configured to return the source to the source station if the target video does not exist in the CDN content center server 430.
And the code reducing unit can be used for executing preset code rate reducing operation to reduce the code rate of the target video resource under the condition that the transcoding strategy is to reduce the code rate.
In some embodiments, in the case that the transcoding strategy is rate reduction, the CDN content center server 430 performs a preset rate reduction operation, after reducing the rate of the target video resource,
CDN edge node server 420 may also be used to source CDN content hub server 430 back;
the CDN scheduling center server 410 may also be used to schedule users to access transcoded target videos stored by the CDN edge node server 420.
In some embodiments, CDN edge node server 420 may include a second video lookup unit, an up-coding unit.
A second video search unit, configured to, when the target video does not exist in the CDN edge node server 420, return the source to the CDN content center server 430 by the CDN edge node server 420; in the event that the target video does not exist on CDN edge node server 420 and on CDN content hub server 430, CDN content hub server 430 is back sourced to the source site, such that CDN edge node server 420 is back sourced to CDN content hub server 430.
The code lifting unit may be configured to, when the transcoding policy is a code lifting rate, execute a preset code lifting rate operation by the CDN edge node server 420, so as to lift a code rate of the target video.
In some embodiments, in the case that the transcoding strategy is bitrate boost, the CDN edge node server 420 performs a preset bitrate boost operation, after the bitrate of the target video is boosted,
CDN scheduling center server 410 may be used to schedule users to access transcoded target videos stored by CDN edge node servers 420.
In some embodiments, where the transcoding strategy is such that transcoding is not required,
the CDN scheduling center server 410 may be configured to schedule a user to access a target video when the target video exists in the CDN edge node server 420;
the CDN edge node server 420 may be configured to return the source to the CDN content center server 430 when the target video does not exist in the CDN edge node server 420, so that the CDN scheduling center server 410 schedules the user to access the target video;
a CDN content center server 430, configured to return the source to the source station by using the CDN content center server 430 when the target video does not exist in the CDN edge node server 420 and does not exist in the CDN content center server 430; the CDN edge node server 420 feeds back to the CDN content hub server 230 for the CDN scheduling hub server 410 to schedule the user for access to the target video.
The content delivery network CDN system provided in the embodiment of the present application may be configured to execute the video bitrate control method provided in each of the above method embodiments, and the implementation principle and the technical effect are similar, which are not described herein again for the sake of brevity.
Based on the same inventive concept, the embodiment of the application also provides the electronic equipment.
Fig. 5 is a schematic structural diagram of an electronic device according to an embodiment of the present application. As shown in fig. 5, the electronic device may include a processor 501 and a memory 502 storing computer programs or instructions.
Specifically, the processor 501 may include a Central Processing Unit (CPU), or an Application Specific Integrated Circuit (ASIC), or may be configured as one or more Integrated circuits implementing embodiments of the present invention.
Memory 502 may include mass storage for data or instructions. By way of example, and not limitation, memory 502 may include a Hard Disk Drive (HDD), a floppy Disk Drive, flash memory, an optical Disk, a magneto-optical Disk, tape, or a Universal Serial Bus (USB) Drive or a combination of two or more of these. Memory 502 may include removable or non-removable (or fixed) media, where appropriate. The memory 502 may be internal or external to the integrated gateway disaster recovery device, where appropriate. In a particular embodiment, the memory 502 is non-volatile solid-state memory. In a particular embodiment, the memory 502 includes Read Only Memory (ROM). Where appropriate, the ROM may be mask-programmed ROM, Programmable ROM (PROM), Erasable PROM (EPROM), Electrically Erasable PROM (EEPROM), electrically rewritable ROM (EAROM), or flash memory or a combination of two or more of these.
The processor 501 reads and executes the computer program instructions stored in the memory 502 to implement any one of the base station failure detection methods in the above embodiments.
In one example, the electronic device can also include a communication interface 503 and a bus 510. As shown in fig. 3, the processor 501, the memory 502, and the communication interface 503 are connected via a bus 510 to complete communication therebetween.
The communication interface 503 is mainly used for implementing communication between modules, devices, units and/or devices in the embodiments of the present invention.
Bus 510 includes hardware, software, or both to couple the components of the electronic device to each other. By way of example, and not limitation, a bus may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a Front Side Bus (FSB), a Hypertransport (HT) interconnect, an Industry Standard Architecture (ISA) bus, an infiniband interconnect, a Low Pin Count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a Serial Advanced Technology Attachment (SATA) bus, a video electronics standards association local (VLB) bus, or other suitable bus or a combination of two or more of these. Bus 510 may include one or more buses, where appropriate. Although specific buses have been described and illustrated with respect to embodiments of the invention, any suitable buses or interconnects are contemplated by the invention.
The electronic device may execute the video rate control method in the embodiment of the present invention, so as to implement the video rate control method described in fig. 2 or fig. 3.
In addition, with reference to the video rate control method in the foregoing embodiment, an embodiment of the present invention may provide a readable storage medium to implement the video rate control method. The readable storage medium having stored thereon program instructions; the program instructions, when executed by a processor, implement any of the video rate control methods in the above embodiments.
It is to be understood that the invention is not limited to the specific arrangements and instrumentality described above and shown in the drawings. A detailed description of known methods is omitted herein for the sake of brevity. In the above embodiments, several specific steps are described and shown as examples. However, the method processes of the present invention are not limited to the specific steps described and illustrated, and those skilled in the art can make various changes, modifications and additions, or change the order between the steps, after comprehending the spirit of the present invention.
The functional blocks shown in the above-described structural block diagrams may be implemented as hardware, software, firmware, or a combination thereof. When implemented in hardware, it may be, for example, an electronic circuit, an Application Specific Integrated Circuit (ASIC), suitable firmware, plug-in, function card, or the like. When implemented in software, the elements of the invention are the programs or code segments used to perform the required tasks. The program or code segments may be stored in a machine-readable medium or transmitted by a data signal carried in a carrier wave over a transmission medium or a communication link. A "machine-readable medium" may include any medium that can store or transfer information. Examples of a machine-readable medium include electronic circuits, semiconductor memory devices, ROM, flash memory, Erasable ROM (EROM), floppy disks, CD-ROMs, optical disks, hard disks, fiber optic media, Radio Frequency (RF) links, and so forth. The code segments may be downloaded via computer networks such as the internet, intranet, etc.
It should also be noted that the exemplary embodiments mentioned in this patent describe some methods or systems based on a series of steps or devices. However, the present invention is not limited to the order of the above-described steps, that is, the steps may be performed in the order mentioned in the embodiments, may be performed in an order different from the order in the embodiments, or may be performed simultaneously.
As described above, only the specific embodiments of the present invention are provided, and it can be clearly understood by those skilled in the art that, for convenience and brevity of description, the specific working processes of the system, the module and the unit described above may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again. It should be understood that the scope of the present invention is not limited thereto, and any person skilled in the art can easily conceive various equivalent modifications or substitutions within the technical scope of the present invention, and these modifications or substitutions should be covered within the scope of the present invention.

Claims (10)

1. A video code rate control method is applied to a Content Delivery Network (CDN) system, the CDN system comprises a CDN dispatching center server, a CDN content center server and a CDN edge node server, and the method comprises the following steps:
responding to a first request sent by a terminal for accessing a target video distributed by a CDN system, and determining a transcoding strategy of the target video by a CDN scheduling center server based on the resource type and the code rate of the target video and the network environment of the current CDN system;
under the condition that the transcoding strategy is a code rate improvement strategy, the CDN edge node server executes a preset code rate improvement operation to improve the code rate of the target video;
and under the condition that the transcoding strategy is to reduce the code rate, the CDN content center server executes preset code rate reduction operation to reduce the code rate of the target video resource.
2. The method of claim 1, wherein before the CDN scheduling center server determines a transcoding policy for the target video resource based on a resource type and a bitrate of the target video resource and a network environment of a current CDN system in response to a first request sent by a terminal to access the target video resource delivered by the CDN system, the method further comprises:
the CDN scheduling center server receives a first request sent by a terminal and used for accessing a target video resource distributed by a CDN system, wherein the first request carries a target video resource identifier;
and the CDN scheduling center server determines the resource type and the code rate of the target video resource based on the target video resource identifier.
3. The method of claim 1, wherein if the transcoding strategy is bitrate reduction, the CDN content center server performs a preset bitrate reduction operation, and before the bitrate of the target video resource is reduced, the method further comprises:
and under the condition that the target video does not exist in the CDN content center server, the CDN content center server returns the source to the source station.
4. The method according to any one of claims 1 to 3, wherein in a case that the transcoding strategy is to reduce a bitrate, the CDN content center server performs a preset bitrate reduction operation, and after reducing the bitrate of the target video resource, the method further includes:
the CDN edge node server returns the source to the CDN content center server;
and the CDN scheduling center server schedules a user to access the transcoded target video stored by the CDN edge node server.
5. The method of claim 1, wherein if the transcoding policy is bitrate boost, the CDN edge node server performs a preset bitrate boost operation, and before the bitrate of the target video is boosted, the method further comprises:
under the condition that the target video does not exist in the CDN edge node server, the CDN edge node server returns the source to a CDN content center server;
and under the condition that the target video does not exist in the CDN edge node server and does not exist in the CDN content center server, the CDN content center server returns the source to the source station so that the CDN edge node server returns the source to the CDN content center server.
6. The method according to any one of claims 1 to 2, wherein, when the transcoding policy is a bitrate boost, the CDN edge node server performs a preset bitrate boost operation, and after the bitrate of the target video is boosted, the method further includes:
and the CDN scheduling center server schedules a user to access the transcoded target video stored by the CDN edge node server.
7. The method of any of claims 1-2, wherein in the case that the transcoding policy is transcoding-free, the method further comprises:
under the condition that the target video exists in the CDN edge node server, the CDN scheduling center server schedules a user to access the target video;
under the condition that the target video does not exist in the CDN edge node server, the CDN edge node server returns a source to a CDN content center server so that the CDN scheduling center server schedules a user to access the target video;
the CDN content center server feeds back a source to a source station under the condition that the target video does not exist in the CDN edge node server and does not exist in the CDN content center server;
and the CDN edge node server returns the source to a CDN content center server so that the CDN scheduling center server schedules the user to access the target video.
8. A Content Delivery Network (CDN) system, the CDN system comprising:
the CDN scheduling center server is used for responding to a first request sent by a terminal and used for accessing a target video distributed by a CDN system, and determining a transcoding strategy of the target video based on the resource type and the code rate of the target video and the network environment of the current CDN system;
the CDN edge node server is used for executing a preset code rate increasing operation under the condition that the transcoding strategy is the code rate increasing operation, and increasing the code rate of the target video;
and the CDN content center server is used for executing preset code rate reduction operation under the condition that the transcoding strategy is to reduce the code rate, so as to reduce the code rate of the target video resource.
9. An electronic device comprising a processor, a memory and a program or instructions stored on the memory and executable on the processor, the program or instructions when executed by the processor implementing the steps of the video rate control method according to any one of claims 1 to 7.
10. A readable storage medium, storing thereon a program or instructions which, when executed by a processor, implement the steps of the video rate control method according to any of claims 1-7.
CN202110322470.XA 2021-03-25 2021-03-25 Video code rate control method, device, medium and content delivery network CDN system Active CN115134632B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110322470.XA CN115134632B (en) 2021-03-25 2021-03-25 Video code rate control method, device, medium and content delivery network CDN system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110322470.XA CN115134632B (en) 2021-03-25 2021-03-25 Video code rate control method, device, medium and content delivery network CDN system

Publications (2)

Publication Number Publication Date
CN115134632A true CN115134632A (en) 2022-09-30
CN115134632B CN115134632B (en) 2024-04-09

Family

ID=83374160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110322470.XA Active CN115134632B (en) 2021-03-25 2021-03-25 Video code rate control method, device, medium and content delivery network CDN system

Country Status (1)

Country Link
CN (1) CN115134632B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297334A (en) * 2022-10-09 2022-11-04 卓望数码技术(深圳)有限公司 System, method and equipment for realizing narrow-band transmission video based on cloud edge cooperative transcoding
CN115589489A (en) * 2022-10-19 2023-01-10 抖音视界有限公司 Video transcoding method, device, equipment, storage medium and video on demand system
CN116634194A (en) * 2023-05-10 2023-08-22 北京国际云转播科技有限公司 Video live broadcast method, video live broadcast device, storage medium and electronic equipment
CN116634194B (en) * 2023-05-10 2024-05-24 北京国际云转播科技有限公司 Video live broadcast method, video live broadcast device, storage medium and electronic equipment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170164020A1 (en) * 2015-12-08 2017-06-08 Le Holdings (Beijing) Co., Ltd. Content delivery method for content delivery network platform and scheduling proxy server
WO2018014837A1 (en) * 2016-07-20 2018-01-25 腾讯科技(深圳)有限公司 Content distribution network processing method, content distribution network, device, and storage medium
CN109963199A (en) * 2019-04-23 2019-07-02 中国联合网络通信集团有限公司 Content distributing network and its distribution method
CN110213603A (en) * 2019-05-22 2019-09-06 腾讯科技(深圳)有限公司 A kind of live stream transmission method, device, server, system and storage medium
CN111432000A (en) * 2020-03-24 2020-07-17 中国建设银行股份有限公司 Control method, device, equipment and storage medium of Internet of things equipment
CN112333290A (en) * 2021-01-05 2021-02-05 腾讯科技(深圳)有限公司 Data access control method, device, storage medium and content distribution network system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170164020A1 (en) * 2015-12-08 2017-06-08 Le Holdings (Beijing) Co., Ltd. Content delivery method for content delivery network platform and scheduling proxy server
WO2018014837A1 (en) * 2016-07-20 2018-01-25 腾讯科技(深圳)有限公司 Content distribution network processing method, content distribution network, device, and storage medium
CN109963199A (en) * 2019-04-23 2019-07-02 中国联合网络通信集团有限公司 Content distributing network and its distribution method
CN110213603A (en) * 2019-05-22 2019-09-06 腾讯科技(深圳)有限公司 A kind of live stream transmission method, device, server, system and storage medium
CN111432000A (en) * 2020-03-24 2020-07-17 中国建设银行股份有限公司 Control method, device, equipment and storage medium of Internet of things equipment
CN112333290A (en) * 2021-01-05 2021-02-05 腾讯科技(深圳)有限公司 Data access control method, device, storage medium and content distribution network system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DONG LIU ET AL.: "Video Stream Distribution Scheme Based on Edge Computing Network and User Interest Content Model", 《IEEE ACCESS》, vol. 8, 3 February 2020 (2020-02-03), XP011772639, DOI: 10.1109/ACCESS.2020.2971025 *
李佳 等: "面向视频流的MEC缓存转码联合优化研究", 《电信科学 》, no. 8, 16 October 2018 (2018-10-16) *
黄宬: "移动环境下高性能WEB系统关键技术研究", 《中国优秀博士学位论文全文数据库信息科技I辑》, no. 12, 15 December 2019 (2019-12-15) *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115297334A (en) * 2022-10-09 2022-11-04 卓望数码技术(深圳)有限公司 System, method and equipment for realizing narrow-band transmission video based on cloud edge cooperative transcoding
CN115589489A (en) * 2022-10-19 2023-01-10 抖音视界有限公司 Video transcoding method, device, equipment, storage medium and video on demand system
CN115589489B (en) * 2022-10-19 2024-04-19 抖音视界有限公司 Video transcoding method, device, equipment, storage medium and video on demand system
WO2024082770A1 (en) * 2022-10-19 2024-04-25 抖音视界有限公司 Video transcoding method and apparatus, and device, storage medium and video on-demand system
CN116634194A (en) * 2023-05-10 2023-08-22 北京国际云转播科技有限公司 Video live broadcast method, video live broadcast device, storage medium and electronic equipment
CN116634194B (en) * 2023-05-10 2024-05-24 北京国际云转播科技有限公司 Video live broadcast method, video live broadcast device, storage medium and electronic equipment

Also Published As

Publication number Publication date
CN115134632B (en) 2024-04-09

Similar Documents

Publication Publication Date Title
US8910220B2 (en) Multi-format distribution of content
US11303382B2 (en) Server selected variable bitrate streaming
US20110299546A1 (en) Method and System for Optimizing Communication in a Home Network Via a Gateway
US10834161B2 (en) Dash representations adaptations in network
WO2015120766A1 (en) Video optimisation system and method
CN115134632A (en) Video code rate control method, device, medium and Content Delivery Network (CDN) system
WO2021143360A1 (en) Resource transmission method and computer device
US11902631B2 (en) Methods, systems, and apparatuses for improved content scoring and delivery
CN111031389A (en) Video processing method, electronic device and storage medium
KR101922552B1 (en) Method amd apparatus for controlling traffic using adaptive streaming in multimedia content content transmission system
WO2015085873A1 (en) Video code stream obtaining method and apparatus
KR20160102683A (en) Proxy server for cloud streaming service, cloud streaming system and method using the same
US20190020734A1 (en) Reduced content manifest size
US20150163853A1 (en) Mobile communication terminal having multiple communication interfaces, and cooperative data communication method thereof
CN104396269A (en) Dynamic interstitial transitions
EP3982642A1 (en) Video transcoding method and apparatus
CN111107387B (en) Video transcoding method and device and computer storage medium
CN116980662A (en) Streaming media playing method, streaming media playing device, electronic equipment, storage medium and program product
KR102209783B1 (en) Method for providing streaming data packet through streaming server and node linking with base station, and node using the same
CN104333765A (en) Processing method and device of video live streams
KR20170022057A (en) Streaming service server and control method thereof
CN109379127A (en) A kind of data processing method and device
CN111200562A (en) Flow guiding method, static father node, edge node and CDN (content delivery network)
KR102174360B1 (en) Method for providing of streamming service and apparatus for the same
KR102656804B1 (en) Edge caching system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant