Television networks often rely on cable and satellite television providers for the dissemination to customers of television programs that originate from the television networks. This helps the television networks to reach a wider audience and earn additional revenues. Examples of television networks include but are not limited to international television networks that provide television programming to television markets in different countries, national television networks such as American Broadcasting Company (ABC)®, Columbia Broadcasting System (CBS)®, National Broadcasting Company (NBC)®, and Fox® television network that provide television programming in the United States, cable television networks such as USA Network™, Entertainment and Sports Programming Network (ESPN)™, Home Box Office (HBO)®, Discovery Channel™, and Disney Channel™. In turn, cable and satellite television providers maintain broadcasting or head-end facilities with integrated receiver decoders (IRDs) therein for the reception of media feeds of programs or contents from the television networks for re-broadcasting to customers.
As understood in the art, an IRD is an electronic device used to receive the transmission of radio frequency (RF) carrier signals, such as signals of television programming from the television networks, and convert such signals into analog or digital information embedded therein. The converted analog or digital information represents, for example, the television programming intended for re-broadcasting by cable and satellite television providers to their customers. Thus, the IRD serves as an interface between a cable network or satellite dish at a customer and a broadcasting facility such as one maintained by a cable or satellite television provider.
Traditionally, IRDs are managed through individual configuration of each IRD. For example, an IRD at each broadcasting facility may be directly configured a priori, at the factory by a cable or satellite television provider or by uplink such as a television network, so as to assign or associate the IRD to a particular IRD network or group prior to a command of some action or actions, such as receiving and decoding television programming from a selected television network, to the IRD through its assigned IRD network or group. When a new action requires a re-configuration of the IRDs, such as a re-assignment of the IRDs to a different IRD group for receiving different media content or transmission from a different media content provider, each IRD must be individually reconfigured before the desired action can be performed by the IRD. Thus, the traditional IRD management method is unwieldy and slow, especially for a large IRD population (wherein each IRD must be individually re-configured) and when time-critical updates need to be provided to such a large IRD population.
Described herein are systems and methods for dynamic management of a plurality of integrated receiver decoders (IRDs) based implicitly on the uplink's knowledge of an identity pre-assigned to each IRD. In various embodiments described herein, a new message preamble is employed by a uplink controller, such as a Broadcast Network Controller (BNC), to command multiple IRDs to simultaneously execute a common action. Thus, the IRD association or other IRD configurations may be maintained by a uplink controller and need not be disseminated to each IRD a priori.
Accordingly, in one embodiment there is provided a media content distribution network comprising: a media content provider that operates to provide media content; a plurality of content distribution sites that operate to receive the media content from the media content provider and to distribute the media content to a plurality of subscribers; and a plurality of decoding devices, with at least one decoding device at each of the plurality of content distribution sites, that are operable to be configured and commanded by the media content provider to perform one or more actions; wherein the media content provider further operates to provide a command message to the plurality of decoding devices at the content distribution sites, and the command message includes a selection of at least one of the plurality of decoding devices to process the command message and an action for the selected at least one decoding device to process and perform.
In another embodiment there is provided a method for managing a plurality of decoding devices to provide media content to the plurality of decoding devices, comprising: assigning an address identification (ID) to each of the plurality of decoding devices; providing the address IDs to the plurality of decoding devices; and providing a command message to the plurality of decoding devices that includes a bitmask portion identifying a selection of at least one of the plurality of decoding devices based on the assigned address IDs and a command portion identifying an action for the selected at least one decoding device to perform so as to receive the media content.
In still another embodiment, there is provided a method for receiving a command message to download media content, comprising: receiving an assignment of an address identification (ID); receiving a command message that includes a bitmask portion identifying one or more assigned address IDs and a command portion identifying an action to perform so as to receive the media content; comparing the bitmask portion with the assigned address ID as received; and upon a match between the bitmask portion with the assigned address ID as received, performing the action identified in the command portion of the command message.
Embodiments are illustrated by way of example and not limited in the following figure(s), in which like numerals indicate like elements, in which:
For simplicity and illustrative purposes, the principles of the embodiments are described by referring mainly to examples thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It will be apparent however, to one of ordinary skill in the art, that the embodiments may be practiced without limitation to these specific details. In other instances, well known methods and structures have not been described in detail so as not to unnecessarily obscure the embodiments.
The media content providers 110 may transmit media content streams to the head-end facilities 120 through a wired network such as a terrestrial landline network or a wireless network such as a satellite network. Each head-end facility 120 includes one or more integrated receiver decoders (IRDs) 122 for controlling and authorizing the reception of the media content streams from the media content providers 110. For example, an IRD may be configured or otherwise managed by a uplink controller in the media content provider 110 to receive and process certain types of media content for re-transmission and to blackout other types of media content to prevent the media content from being received and/or re-transmitted by a service operator's network to its end users or subscribers 110, such as cable or satellite television subscribers. Thus, the IRDs provide a media content provider with the granularity necessary to authorize access to its media content at each head-end facility.
At 210, the IRDs 122 are initially provisioned with attributes such as IRD name, access control tier assignments, group assignments, and singlecast or multicast address assignments for IRD identification and configuration as understood in the art. Each IRD may be assigned a unique address, or multiple IRDs may be assigned a common address that is unique from other IRDs. This provisioning may be performed at the factory, prior to deployment in the head-end facilities 120, or via routine entitlements, e.g., authorization messages sent from a uplink controller in a media content provider 110 subsequent to deployment in the head-end facilities 120. For example, the IRDs 122 may be pre-assigned with a first geographic ID code to receive and re-broadcast media content to end users 130 from a first one of two media content providers 110 illustrated in
At 220, a second one of two media content providers 110 illustrated in
At 230, once the second media content provider directs the IRDs 122 to perform the required re-configuration, it is able to send command messages to the IRDs 122 to perform one or more action(s), such as receiving and disseminating media content from the second media content provider to the end users 130.
As illustrated in
At 310, the IRDs 122 are initially provisioned with attributes such as IRD name, access control tier assignments, and singlecast or multicast address assignments for IRD identification and configuration as understood in the art. Each IRD 122 may be assigned a unique address, or multiple IRDs 122 may be assigned a common address that is unique from other IRDs 122. This provisioning may be performed at the factory or via routine entitlements, e.g., authorization messages sent from a uplink controller in the media content provider 110. The unique singlecast or multicast address assigned to each IRD provides the IRD with a unique ID that is used in a new multi-address message format for a uplink such as a media data provider 110 to send command messages to IRDs 122 with requiring the uplink to first reconfigure the IRDs 122. This multi-address message format includes a bitmask portion in each command message sent to the IRDs 122 that allows the uplink controller to direct or command any dynamic group of IRDs to perform the same action(s). Thus, the multi-address message format is also referred herein as a bitmask-addressed message format and described further later with reference to
At 320, once the IRDs 122 provisioned, they may be arbitrarily grouped to perform group actions by the uplink's transmission of bitmask-addressed command messages to the IRDs 122 without requiring the re-configuration step 220 that is necessary for conventional IRD management.
At 410, the uplink controller executes a software application, program, or module to provision the IRDs 122 with various attributes as described above at 310. The software application may be executed in a computer, or any other suitable processing machine with a processing unit therein for executing instruction code in the software application. A uplink operator may access the uplink controller via the controller's graphical user interface (GUI) and/or application programming interface (API).
At 412, the provisioned unit information and entitlement management messages are delivered to the IRDs 122 via routine entitlement or authorization messages.
At 414, IRD associations in IRD groups and possible future actions for each group may be specified in the uplink controller, for example, by a uplink operator via the controller's GUI or API. For example, as illustrated in
At 416, the uplink controller translates the IRD associations and actions into a set of pre-computed bitmask-addressed command messages for controlling the IRDs 122. These command messages are forwarded to another software application, program, or module in the uplink, which is referred hereinafter as an event manager. The event manager is operable to send specific command messages to the IRDs 122 based on its input trigger conditions or actions, which may be provided by the uplink operator through a GUI or API provided for the event manager. Referring to the example illustrated in
At 418, the event manager receives one or more input triggers, such as 1 of 5 available triggers as illustrated in
At 420, the event manager selects one or more command messages, as translated by the uplink controller, having value corresponding with the input trigger(s) and forwards such command messages to the IRDs 122, whereupon each IRD processes the bitmask portion in the command messages to determine whether it should obey or ignore the command. For example, as illustrated in
There are instances where each IRD is assigned a unique unit address that may be quite large. In one example, an IRD may be assigned a singlecast unit address of 240 bits for security purposes. In another example, referring back to
To limit the size of each bitmask-addressed message 600, a principal 2N bitmask may be partitioned into smaller, subordinate bitmasks. Each subordinate bitmask conveys the message processing rules (e.g., discard or process) for up to K unique IRD addresses, where K is (last_address−base_address)+1. For example, a principle 2N=240 bitmask may be partitioned into 4 subordinate 210 bitmasks, each conveying the message processing rules (e.g., discard or process) for up to 2n=210 or 1024 unique IRD addresses. Therefore, in this embodiment, each bitmask-addressed message 600 also conveys a base address and last address that is associated with the subordinate bitmask 620.
The IRD address is then computed as follows:
IRD Address=(base_address)+bit_position,
wherein the base_address variable represents the first address of the 2n-bit subordinate bitmask, and the variable bit_position represents the bit position in a corresponding 2n-bit subordinate bitmask. For example, referring to
base_address 1024, position 0=IRD address 1024,
base_address 1024, position 1=IRD address 1025,
base_address 1024, position 1023=IRD address 2047.
In the example illustrated in
Depending on the density or sparseness of a principal bitmask, or partition thereof, that is used in each command message 600, the bitmask portion 620 of each command message 620 may be compressed using a lossless encoding scheme to reduce the overall message size and lower the message bit rate requirement for bandwidth reduction. For example, a byte-based, run-length encoding scheme or technique may be employed, wherein four or more consecutively repeated bytes (i.e., 32 or more bits, in multiples of 8) may be replaced by a three-byte sequence:
Escape|Count|Repeat Value.
The “Escape” byte represents a predetermined or set value that indicates the start of the encoded three-byte sequence. The “Count” value represents the number of repeats (minus three). The “Repeat Value” represents the repeated byte value (if Count>0). In one embodiment, the “Escape” value is set by the uplink to be different from any byte value (i.e., 8-bit value) found in the source bitmask so as to distinguish the three-byte sequence from the rest of the values in the bitmask. Otherwise, if the “Escape” value occurs in the source bitmask, a “Count” value of zero may be used to indicate such an occurrence.
Accordingly, once each IRD in a media content distribution network is assigned a particular unique unit address, the uplink may govern the behavior of individual IRDs simply by managing the bitmask portion 620 in bitmask-addressed command messages 600 sent out to all IRDs. That is, rather than having to re-assign or reconfigure each IRD with dedicated configuration message for each IRD prior to sending out command messages to the IRDs, a uplink controller may simply adjust the bitmask delivered with each uplink command message. This allows a media content distribution network to react quickly to dynamic, “last minute” IRD configurations without using up additional bandwidth for pre-transmission of dedicated configuration messages to individual IRDs, especially when large groups of IRDs must be administered in the network.
What has been described and illustrated herein are various embodiments along with some of their variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Those skilled in the art will recognize that many variations are possible within the spirit and scope of the subject matter, which is intended to be defined by the following claims, and their equivalents, in which all terms are meant in their broadest reasonable sense unless otherwise indicated.