Bandwidth based licensing scheme for video, audio and/or multimedia content

Abstract
Methods and apparatus are provided for licensing service providers to process video, audio and/or multimedia content using a video processing device. A license key indicative of a license for an amount of bandwidth is generated. The license key is used at the video processing device to enforce the license based on whether there is sufficient licensed bandwidth available to accommodate a newly created output transport stream. If there is sufficient licensed bandwidth available, processing of the newly created output transport stream is allowed. If there is insufficient licensed bandwidth available, processing of the newly created output transport stream is denied. The service providers are charged a license fee to use the video processing equipment based on the licensed bandwidth.
Description

BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a flowchart illustrating the steps required to generate a license key.



FIG. 2 is a flowchart illustrating how a key is regenerated and processed at the equipment to verify the license.



FIG. 3 is a flowchart illustrating how the license is enforced.



FIG. 4 is a high level block diagram of one way to implement the licensing scheme disclosed herein.



FIG. 5 is a hardware block diagram that provides more detail than the block diagram of FIG. 4.





DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 is a flowchart illustrating the steps required to generate a license key. The “user” is the service provider (e.g., cable or satellite television system operator, or multimedia system operator) that wants to use the vendor's (licensor's) equipment to carry the video, audio and/or multimedia content. An encrypted license key is provided.


At box 10, a user enters a device identification (ID), such as a compact flash (CF) card serial number, Mac Address, or the like. A CF card can be used, for example, to provide removable memory for one or more license keys that enable various features of the video processing hardware to be used. Examples of such features, which are enabled by the “license type” are graphic overlay, grooming (i.e., picking various input services to be combined into an output transport stream), advertisement insertion, encryption, SPTS (single program transport stream), and modulation type (e.g., quadrature amplitude modulation—QAM). As well known in the art, QAM types are expressed by the number of symbols in a QAM constellation for a particular implementation, such as QAM 64, QAM 256, etc. By storing the license type in a removable memory such as a CF card, the license can be used in different video processors. This is particularly useful when a video processor malfunctions, and a backup video processor is used in its place. In such a situation, the CF card from the malfunctioning unit is removed and placed into the backup unit to keep the system running. The backup unit, instead of the malfunctioning unit, will then be associated with the device ID carried by the CF card.


In addition to entering the device ID at box 10 of FIG. 1, the user enters the feature/license type and the total bandwidth to be licensed for the feature. This additional information is used along with the device ID by the key server. Once the stated information has been entered by the user, the key server uses an encryption scheme such as MD5 to generate a hash key, e.g., by using a private signature with the information entered by the user. This step is shown at box 12. The hash key is used by a user to gain access to the feature and its licensed amount of bandwidth at the video processing device (e.g., multiplex/splicer, for example a BNP, DBM, MVP, USM, etc.). Entry of a valid key by the user will enable the processing of transport streams using the licensed features within the licensed bandwidth.


Each key generated by the key server is for a particular feature, and will contain the ID, license type (i.e., the feature to be authorized), and the amount of bandwidth licensed for the feature. A separate key is generated for each feature selected and input by the user. Thus, where a user enters a request for grooming, overlay and encryption, three separate keys will be generated. It is noted that implementations are possible where one key is generated to authorize more than one feature, but the preferred embodiment is to provide a separate key for each feature. Typically, a key will be 64 characters in length, but it can be more or less depending on the amount of information to be conveyed and the security needs of the system.


In order to use the licensed equipment to process the bandwidth permitted by the license key, the user (service provider) will be assessed a license fee. As indicated at box 13 of FIG. 1, the license fee due from the User can be determined based on the total bandwidth permitted by the license. The license fee can be determined and billed at the time the key server generates the key, or at a later time depending on the particular implementation desired.



FIG. 2 is a flowchart illustrating how a key is regenerated and processed at the equipment (video processing device) to verify the license. In an implementation where a CF card is used, for example, the equipment will read the stored key(s) from the CF card. More particularly, as shown at box 14, the device identifier (ID) is read, together with the number of licenses obtained for the equipment and the feature/license types. A hash key is generated from this information using the same algorithm and private signature provided at the key server (as explained above in connection with FIG. 1, box 12). A user will also enter the license key to the equipment (either locally or at a remote location coupled to the equipment via a network) via a user interface, such as a graphical user interface (GUI) or a browser (e.g., via SNMP). At box 16, the key the user provided via a GUI/SNMP or other means is compared with the regenerated key. If the key regenerated at box 14 does not match the key entered by the user, the license is rejected. If, on the other hand, the keys match, the total bandwidth licensed will be saved and the user interface (e.g., GUI or SNMP) will be updated as indicated at box 18. The updating of the GUI/SNMP will result in adding the licensed feature(s) to the user display, indicating to the user the status of the current license(s) (e.g., the features licensed for use with the associated equipment and the licensed bandwidth for each feature).


Entry of the license key(s) by the user can be facilitated by having the key server email or otherwise present the user with the license key(s) in text form that can be copied and pasted into a key field provided by the user interface. For example, a GUI could provide an empty box into which the license key(s) are pasted by the user. This is particularly useful for long keys, such as those that are 64 or more characters in length.



FIG. 3 is a flowchart illustrating how the license is enforced. At box 20, a user creates an output transport stream with a plurality of video programs or services available via the license. As noted above, the license specifies the amount of bandwidth available for each licensed feature. After the proposed output transport stream is created by the user, a determination is made as to whether there is enough licensed bandwidth available to accommodate the stream. An output stream that would cause the bandwidth to be exceeded is rejected. Even if there is sufficient licensed bandwidth overall, but there is no video processing engine that has enough bandwidth to handle the output stream, the creation of that output stream will be rejected.


More particularly, as indicated at box 22, if a transport stream created by a user is not rejected at box 20, all of the rate shaping video processing engines in the device are checked to locate one that has enough processing bandwidth for the proposed stream. This can be accomplished by determining if the processing capability remaining in a particular processing engine is greater than the requested output transport stream bandwidth. If so, the output transport stream is assigned to that processing engine. Once the processing engine has the stream assigned to it, the engine will continue to maintain the bandwidth.


If no processing engine is found that has the necessary bandwidth, then the creation of the output stream is rejected, as indicated at box 24. The user will then have to create a different stream with a lower bandwidth requirement. As will be appreciated, it is necessary for the user to have both an adequate license for the bandwidth desired, and sufficient hardware to process this bandwidth.



FIG. 4 is a high level block diagram of one way to implement the licensing scheme disclosed herein. A web server 26 is used to generate a license key. The license key is passed to the user 32, for example, by sending an email message to the user. The user then enters the key to a license check engine 28 via a GUI 34. In an implementation where the user is provided with the user key via email, the user can simply copy the key from the email text and paste it into a key field provided by the GUI 34. The GUI 34 also enables the user to create a transport stream by selecting various programs and features in accordance with the license terms. The license check engine 28 will validate the license and assign the user created transport stream to a capable video processing engine. A plurality of rate shaping capable video processing engines 30 is provided to enforce the license. Rate shaping is used to maintain the bandwidth at the output of the device.



FIG. 5 is a hardware block diagram that provides more detail than the block diagram of FIG. 4. A key generator web server 52 allows a user (e.g., a service provider using video processing equipment such as a multiplexer/splicer, for example, a BNP, DBM, USM, or MVP) to enter the device ID, feature/license type(s) and a total bandwidth required. A license is created based on this information, and the license key is passed onto the user (e.g., by email). A GUI/SNMP client machine 50 (comparable to GUI 34 of FIG. 4) can be provided in the form of a user terminal, and allows the user to enter the license key and create an output transport stream. The client machine 50 communicates with a host CPU 54 via a known protocol such as HTTP or SNMP. The host CPU runs software to validate the license (functioning as a “license key processor”) and manage the output transport stream. A video processing engine 56 enforces the bandwidth management for each output transport stream created by the user.


The hardware also includes dynamic random access memory (packet DRAM 58) and a DRAM controller 60. The DRAM is used for video processing. Separate memory can be provided for other uses (e.g., communication between the host CPU and video processor). Such separate memory can comprise, for example, on-chip memory provided in the video processing engine 56 CPU and/or in the host CPU 54. A video transrater 62 associated with the video processing engine 56 is provided to convert video (e.g., MPEG) streams to a different (e.g., lower) bitrate stream. During the transrating process, the image/video geometry (resolution) can also be changed, and additional image processing can be provided, such as logo insertion, overlaying, and providing subtitles in the video. It is noted that not all streams have to be processed by the transrater. Since even streams that are not transrated will consume bandwidth, the license fees charged to the service provider will cover both transrated and non-transrated streams.


The video content, typically in an MPEG (Moving Picture Experts Group) format well known in the art, is input to and output from the DRAM 58 via the DRAM controller 60 in accordance with conventional techniques. An MPEG processor 64 processes the MPEG data in a conventional manner well known in the art.


It should be appreciated that there will typically be a plurality of video processing engines 56, each associated with a respective video transrater 62, DRAM controller 60, packet DRAM 58 and MPEG processor 64. Each video processing engine 56 will have one or more transport streams assigned to it, depending on the allocation of bandwidth among an entire system. Such an implementation is illustrated in FIG. 4, which shows a plurality of rate shaping capable video processing engines 30.


It should now be appreciated that the invention provides a method for licensing video, audio and/or multimedia content based on an amount of bandwidth needed by the transport streams created by a service provider, such as a cable, telco or satellite television provider. Not only must a license key be obtained for the amount of bandwidth required, but the service provider must have sufficient equipment available to process this bandwidth. Such equipment can comprise, for example, devices such as a BNP, DBM, USM, or MVP that provide various features such as grooming, encryption, QAM type selection, and the like.


The foregoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed, and various modifications and adaptations are possible in view of the above teachings. Therefore, it is intended that the invention not be limited to the particular embodiments disclosed herein, but that the invention will include all embodiments falling within the scope of the appended claims.

Claims
  • 1. A method for licensing a service provider to process content using a video processing device comprising the steps of: generating a license key indicative of a license for an amount of bandwidth;using said license key at a video processing device to enforce said license based on whether there is sufficient licensed bandwidth available to accommodate a newly created output transport stream;allowing processing of the newly created output transport stream if there is sufficient licensed bandwidth available; anddenying processing of the newly created output transport stream if there is insufficient licensed bandwidth available.
  • 2. A method in accordance with claim 1, wherein said license key is indicative of an amount of bandwidth for a particular feature.
  • 3. A method in accordance with claim 1 further comprising: selecting, from a plurality of video processing devices, one such device that has sufficient bandwidth to process the newly created output stream if processing of that stream is allowed; andassigning the newly created output stream to the selected device.
  • 4. A method in accordance with claim 3, wherein processing of said newly created output stream is refused if none of said plurality of video processing devices has sufficient bandwidth to process the stream.
  • 5. A method in accordance with claim 1, wherein said generating step generates said license key from information entered by a user, said information including a feature to be licensed and an amount of bandwidth desired for that feature.
  • 6. A method in accordance with claim 1 wherein said license key is provided to said video processing device via a user interface.
  • 7. A method in accordance with claim 6, wherein: the license key provided via said user interface is compared to a license key generated locally at said video processing device; anduse of the license is denied if the keys do not match.
  • 8. A method in accordance with claim 1 wherein a user interface is provided to allow a user to create output transport streams in accordance with said license.
  • 9. A method in accordance with claim 1 wherein: a user interface is provided;said user interface is automatically updated based on said license key to provide user access to licensed features and bandwidth; andsaid user access permits the creation of output transport streams in accordance with the license.
  • 10. A method in accordance with claim 1, comprising: charging the service provider a license fee based on said amount of bandwidth.
  • 11. Apparatus for licensing service providers to process content using a video processing device comprising: a key generator adapted to receive license type and bandwidth information necessary to generate a license key, said key being indicative of a license for an amount of bandwidth allowed for a video processing feature;a user interface;a license key processor adapted to receive said key; anda plurality of video processors;wherein said user interface is updated by said license key processor to enable the creation of a transport stream for processing by at least one of said video processors in accordance with said license.
  • 12. Apparatus in accordance with claim 11, wherein said license key processor: allows processing of the transport stream by at least one of said video processors if there is sufficient licensed bandwidth available; anddenies processing of the transport stream if there is insufficient licensed bandwidth available.
  • 13. Apparatus in accordance with claim 11, wherein said license key processor: selects, from said plurality of video processors, one such processor that has sufficient bandwidth to process the transport stream if processing of that stream is allowed by the license; andassigns the transport stream to the selected video processor.
  • 14. Apparatus in accordance with claim 13, wherein processing of said transport stream is refused if none of said plurality of video processors has sufficient bandwidth to process the stream.
  • 15. Apparatus in accordance with claim 11 wherein said key generator is adapted to receive said license type and bandwidth information from said user interface.
  • 16. Apparatus in accordance with claim 11 wherein said key generator comprises a web server.
  • 17. Apparatus in accordance with claim 11 wherein said video processors each comprise a multiplexer/splicer.
Parent Case Info

This application claims priority to and the benefit of U.S. Provisional Application No. 60/845,798 filed Sep. 18, 2006, which is incorporated herein by reference in its entirety and for all purposes.

Provisional Applications (1)
Number Date Country
60845798 Sep 2006 US