US11303496B2 - Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth - Google Patents

Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth Download PDF

Info

Publication number
US11303496B2
US11303496B2 US16/834,581 US202016834581A US11303496B2 US 11303496 B2 US11303496 B2 US 11303496B2 US 202016834581 A US202016834581 A US 202016834581A US 11303496 B2 US11303496 B2 US 11303496B2
Authority
US
United States
Prior art keywords
content
amount
bandwidth
supplemental content
qam signal
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.)
Active
Application number
US16/834,581
Other versions
US20210306199A1 (en
Inventor
Michael McCarty
Glen E. Roe
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.)
Adeia Guides Inc
Original Assignee
Rovi Guides Inc
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 Rovi Guides Inc filed Critical Rovi Guides Inc
Priority to US16/834,581 priority Critical patent/US11303496B2/en
Assigned to ROVI GUIDES, INC. reassignment ROVI GUIDES, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MCCARTY, MICHAEL, ROE, GLEN E.
Assigned to BANK OF AMERICA, N.A. reassignment BANK OF AMERICA, N.A. SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DTS, INC., IBIQUITY DIGITAL CORPORATION, INVENSAS BONDING TECHNOLOGIES, INC., INVENSAS CORPORATION, PHORUS, INC., ROVI GUIDES, INC., ROVI SOLUTIONS CORPORATION, ROVI TECHNOLOGIES CORPORATION, TESSERA ADVANCED TECHNOLOGIES, INC., TESSERA, INC., TIVO SOLUTIONS INC., VEVEO, INC.
Publication of US20210306199A1 publication Critical patent/US20210306199A1/en
Priority to US17/689,106 priority patent/US11621880B2/en
Application granted granted Critical
Publication of US11303496B2 publication Critical patent/US11303496B2/en
Priority to US18/117,157 priority patent/US11799709B2/en
Priority to US18/371,105 priority patent/US20240015061A1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/32Carrier systems characterised by combinations of two or more of the types covered by groups H04L27/02, H04L27/10, H04L27/18 or H04L27/26
    • H04L27/34Amplitude- and phase-modulated carrier systems, e.g. quadrature-amplitude modulated carrier systems
    • H04L27/36Modulator circuits; Transmitter circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/42
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management

Definitions

  • This disclosure relates to insertion of content into a quadrature amplitude modulation (QAM) signal and, in particular, insertion of the content utilizing the existing bandwidth of the channel in which the QAM signal is transmitted.
  • QAM quadrature amplitude modulation
  • Cable television operators often face bandwidth constraints due to protocol standards used in cable television transmission. Every channel in a cable television system is allocated a 6 MHz-wide portion of the total cable television frequency range, and content is encoded in a QAM signal in the frequency of the particular channel. In order to provide the maximum amount of content to subscribers, cable television operators use every available channel for either linear programming or on-demand programming. As cable television systems evolve, cable television operators want to be able to offer additional features. For these additional features to be available to all subscribers, they must be accessible using legacy equipment. This means that any additional feature must be transmitted to subscribers using one of the 6 MHz channels, and not using over-the-top or internet-based infrastructure. However, the amount of bandwidth available to provide such features is limited.
  • a unicast QAM signal between a server (e.g., a cable television headend) and a client device (e.g., a set-top box) for delivery of content is established.
  • the QAM signal has a particular frequency corresponding to the channel on which it will be transmitted to the client device.
  • a request or other signal may be received from the client device requesting that supplemental content be inserted into the QAM signal.
  • a portion of the bandwidth of the QAM signal is allocated for the supplemental content.
  • the supplemental content is transcoded into a supplemental QAM signal in the particular frequency.
  • the supplemental content may be packetized content such as internet protocol-based content and may be retrieved from a server or database.
  • the supplemental QAM signal is then inserted into the unicast QAM signal using the allocated portion of the bandwidth.
  • the supplemental content may be an advertisement.
  • the client device While playing back content received via the unicast QAM signal, such as video-on-demand content, the client device may identify an advertisement insertion point in the content and request an advertisement to be inserted.
  • the QAM encoding device serving the unicast QAM session may then allocate a portion of bandwidth in the unicast QAM signal for the advertisement to be inserted without disruption of the video-on-demand content.
  • a request for content is received from the client device.
  • the requested content is retrieved from a content database and encoded as a QAM signal in the frequency of the unicast QAM signal.
  • the QAM signal is then communicated from the server to the client device.
  • a dedicated processing device may be used to transcode the packetized supplemental content into a supplemental QAM signal.
  • the packetized supplemental content may be an IP-based advertisement.
  • the dedicated processing device may be an ad pump which may be controlled by an ad session manager.
  • a number of dedicated processing devices may be available to perform the transcoding.
  • a cable television headend may house a pool of ad pumps for delivering multiple ads simultaneously to various client devices over various QAM signals.
  • the available dedicated processing devices are identified, and a current workload of each device is determined. The dedicated processing device whose current workload is less than that of every other available dedicated processing device is then allocated to the task of transcoding the supplemental content.
  • a service group to which the client device belongs is identified and it is determined whether any of the available dedicated processing devices is currently serving that service group. If so, the particular dedicated processing device currently serving the service group is allocated to the task of transcoding the supplemental content.
  • Allocation of a portion of bandwidth of the QAM signal may be based on a determination of an amount of bandwidth needed to accommodate the supplemental content.
  • a total amount of bandwidth of the QAM signal is identified and an amount of bandwidth needed for delivery of the content is determined.
  • a number of programs currently being transmitted in the QAM signal are identified, and the amount of bandwidth used by at least one of the programs is reduced. For example, the bitrate of the content may be lowered so that less bandwidth is required to transmit the content. If the amount by which the bandwidth used by the at least one program has been reduced is greater than or equal to the amount of bandwidth needed for delivery of the supplemental content, the amount of bandwidth needed for delivery of the supplemental content is allocated from the amount of bandwidth recovered from the reduction of bandwidth usage by the at least one program.
  • the amount by which the bandwidth used by the at least one program has been reduced is less than the amount of bandwidth needed for delivery of the supplemental content, it may be determined whether the amount of bandwidth needed for delivery of the supplemental content can be reduced to a second amount of bandwidth that is less than or equal to the amount by which the bandwidth used by the at least one program has been reduced. If it can be reduced, the supplemental content is transcoded to use the second amount of bandwidth and the second, reduced amount of bandwidth is allocated from the amount of bandwidth recovered from the reduction of bandwidth usage by the at least one program for delivery of the supplemental content. If the amount of bandwidth needed for delivery of the supplemental content cannot be reduced, then no bandwidth is allocated and no supplemental content is inserted into the unicast QAM signal.
  • FIG. 1 is a schematic diagram representing insertion of supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure
  • FIG. 2 is a block diagram showing allocation of each of a pool of ad pumps by an ad session manager to transcode supplemental content, in accordance with some embodiments of the disclosure
  • FIG. 3 is a block diagram representing components and data flow therebetween of a system for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure
  • FIG. 4 is a flowchart representing a process for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure
  • FIG. 5 is a flowchart presenting a process for communicating a QAM signal from a server to a client device, in accordance with some embodiments of the disclosure
  • FIG. 6 is a flowchart representing a process for allocating a dedicated processing device to transcoding of supplemental content based on the current workload of each dedicated processing device, in accordance with some embodiments of the disclosure
  • FIG. 7 is a flowchart representing a process for allocating a dedicated processing device to transcoding of supplemental content based on a service group of the client device, in accordance with some embodiments of the disclosure.
  • FIG. 8 is a flowchart representing a process for allocating a portion of available bandwidth of a QAM signal for delivery of supplemental content, in accordance with some embodiments of the disclosure.
  • FIG. 1 is a schematic diagram representing insertion of supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure.
  • a cable television frequency band 100 is divided into a number of channels, such as channel 102 .
  • Each channel is normally 6 MHz wide and can accommodate a certain number of programs transmitted simultaneously. For example, a single 6 MHZ-wide channel may simultaneously deliver programming for NBC, MSNBC, CNBC, SyFy, and USA Network. Some channels are left open for unicast transmissions of video-on-demand (VOD) content to individual subscribers.
  • Channel 102 is an example of a VOD channel.
  • a portion 104 of channel 102 is dedicated to control metadata.
  • channel 102 may contain an MPEG-2 transport stream in a QAM format.
  • Portion 104 may contain the Program Association Table, Conditional Access Table, Transport Stream Description Section, and Program Map Section, each of which includes data used by the client device to successfully access content contain in the MPEG-2 stream.
  • Each component of the MPEG-2 stream is identified by a program identifier (PID), which the client device uses a filter to ensure that only packets pertaining to a selected program are decoded for output.
  • PID program identifier
  • channel 102 is a VOD channel and receives VOD content from VOD system 106 .
  • VOD system 106 transmits VOD content items 108 a - 108 e for inclusion in channel 102 .
  • channel 102 contains five VOD sessions 110 a - 110 e .
  • the combined bandwidth required for transmitting the control metadata of portion 104 and the five VOD sessions 110 a - 110 e uses the entirety of the 6 MHz available in channel 102 .
  • VOD system 106 may be instructed to reduce, or attempt to reduce, the bandwidth needed for delivery of at least one of VOD programs 108 a - 108 e .
  • VOD system 106 may be instructed to reduce the bitrate of at least one VOD program. In the example of FIG.
  • VOD system 106 has reduces the bandwidth needed for delivery of all VOD programs 108 a - 108 e , resulting in reduced bandwidth VOD sessions 110 a ′ to 110 e ′, leaving a portion of bandwidth of channel 102 available for insertion of supplemental content.
  • Ad pump 114 then inserts the supplemental QAM signal into the available portion of bandwidth of channel 102 .
  • it may first be determined whether the ad content, when transcoded into the supplemental QAM signal, will fit within the available portion of bandwidth of channel 102 . If not, ad pump 114 may determine if the bandwidth requirements can be reduced, such as by lowering the quality or bitrate of the ad content.
  • ad pump 114 transcodes the packetized ad content into the supplemental QAM signal having the reduced bandwidth. If it is not possible to reduce the bandwidth, no ad will be inserted, as delivery of the VOD content is prioritized over delivery of the ad content.
  • FIG. 2 is a block diagram showing allocation of each of a pool of ad pumps 200 by an ad session manager 202 to transcode supplemental content, in accordance with some embodiments of the disclosure.
  • Pool 200 may be located at a cable television headend.
  • Ad session manager 202 may also be located at the cable television headend, or may be located remotely from the cable television headend and accessible via a communication network, such as the Internet.
  • Ad session manager 202 is responsible for allocating one of ad pumps 206 a - 206 h of pool 200 to transcoding supplemental content for various client devices.
  • ad session manager 202 may assign or allocate a particular ad pump based on current workloads of each of ad pumps 206 a - 206 h , so that transcoding tasks are spread evenly across pool 200 . For example, three tasks may currently be allocated to ad pump 1 206 a , while four tasks may currently be allocated to each of ad pumps 2 - 8 ( 206 b - 206 h ). Ad pump 1 206 a would thus have the smallest current workload, and ad session manager 202 therefore allocates ad pump 1 206 a to the task of transcoding the supplemental content.
  • a plurality of client devices being served by pool 200 may be divided into a number of service groups 208 .
  • Ad session manager 202 transmits 204 instructions to ad pump pool 200 allocating each of ad pumps 1 - 8 ( 206 a - 206 h ) to a transcoding task based on the service group of the client device to which the supplemental content is to be delivered. For example, ad pump 1 206 a is currently transcoding supplemental content destined for a client device in service group SG1-QAM-B 210 . If another client device in the same service group requests supplemental content, ad session manager 202 will allocate ad pump 1 206 a to the task of transcoding the requested supplemental content.
  • FIG. 3 is a block diagram representing components and data flow therebetween of a system for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure.
  • Client device 300 transmits 302 a request for VOD content from VOD system 304 .
  • VOD system 304 is located at headend 306 .
  • VOD system 304 receives the request from client device 300 using transceiver circuitry 308 .
  • Transceiver circuitry 308 comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol.
  • the request may identify a particular content item using at least one identifier of the content item.
  • Control circuitry 312 may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components.
  • processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores).
  • processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
  • multiple of the same type of processing units e.g., two Intel Core i7 processors
  • multiple different processors e.g., an Intel Core i5 processor and an Intel Core i7 processor.
  • Control circuitry 312 processes the request and generates a database query, such as an SQL “SELECT” command, based on the identifier of the content item contained in the request. Control circuitry 312 then transmits 314 the database query to transceiver circuitry 308 , which in turn transmits 316 the query to content database 318 .
  • Transceiver circuitry 308 receives 320 the identified content item from content database 318 and begins streaming 322 the content item to QAM 324 in a QAM format.
  • QAM 324 may also be located at headend 306 .
  • QAM 324 receives the streaming content from VOD system 304 using transceiver circuitry 326 .
  • transceiver circuitry 326 comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol.
  • Transceiver circuitry 326 transmits 328 the VOD content stream to RF output circuitry 330 .
  • RF output circuitry 330 places a QAM signal of the VOD content on a unicast QAM channel in a session associated with client device 300 .
  • RF output circuitry 330 then transmits 332 the QAM signal of the VOD content to client device 300 .
  • client device 300 identifies an ad insertion point in the VOD content.
  • the VOD content may include command tags, metadata, or other indicators that signal an upcoming ad insertion point.
  • client device 300 transmits 334 a request to ad session manager 336 for an ad to be inserted.
  • Ad session manager 336 may be located at headend 306 .
  • transceiver circuitry 338 comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol.
  • ad session manager 336 In response to receiving the request, ad session manager 336 , using transceiver circuitry 338 , transmits 340 a request to VOD system 304 for session information associated with client device 300 .
  • VOD system 304 using transceiver circuitry 308 , transmits 342 the requested session information to ad session manager 336 .
  • Transceiver circuitry 338 upon receiving the session information, transmits 344 the session information to control circuitry 346 .
  • control circuitry 346 may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components.
  • processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores).
  • processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
  • Control circuitry 346 processes the request and identifies an available ad pump to allocate to the request. As described above, control circuitry 346 may allocate an ad pump having the smallest current workload of a plurality of available ad pumps. Alternatively, control circuitry 346 may determine from the request a service group to which client device 300 belongs and allocate an ad pump currently serving client devices in the same service group. If no ad pump is currently serving a client device in the same service group as client device 300 , control circuitry 346 may allocate an ad pump based on workloads. Control circuitry 346 transmits 348 an allocation command, as well as the session information, to transceiver circuitry 338 , which in turn transmits 350 the allocation command and session information to ad pump 352 .
  • Ad pump 352 receives the allocation command and session information using transceiver circuitry 354 which, like transceiver circuitry 338 , comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol.
  • Transceiver circuitry 354 transmits 356 the allocation command to control circuitry 358 , which processes the allocation command.
  • Control circuitry 358 like control circuitry 312 and control circuitry 346 , may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components.
  • processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores).
  • processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
  • Control circuitry 358 generates a request for an ad based on the allocation command. For example, control circuitry 358 may generate an HTTP request for transmission to a server. Control circuitry 358 transmits 360 the request to transceiver circuitry 354 , which in turn transmits 362 the request to ad provisioning server 364 . In response to the request, ad pump 352 , using transceiver circuitry 354 , receives 366 , from ad provisioning server 364 , an identifier of an ad to be inserted into the VOD content. Transceiver circuitry 354 then transmits 368 the identifier to ad database 370 .
  • ad pump 352 using transceiver circuitry 354 , receives 372 packetized ad content from ad database 370 .
  • Transceiver circuitry 354 transmits 374 the packetized ad content to transcoder 376 .
  • Transcoder 376 using the session information received from VOD system 304 via ad session manager 336 , transcodes the packetized ad content into a supplemental QAM signal in the frequency of the unicast QAM signal over which the VOD content is being streamed to client device 300 .
  • Ad pump 352 using transceiver circuitry 354 , transmits a command to VOD system 304 to reduce the amount of bandwidth used by at least one program in the QAM signal.
  • VOD system 304 determines, using control circuitry 312 , whether the bandwidth needed to deliver any program in the QAM signal can be reduced, for example, by reducing the bitrate of the content.
  • ad pump 352 may include the amount of bandwidth needed for delivery of the supplemental content as part of the command.
  • VOD system 304 may divide the amount of bandwidth needed evenly among the programs contained in the QAM signal and reduce the bandwidth needed for each program accordingly. This would result in the least noticeable degradation of quality by users consuming the VOD content being delivered in the QAM signal.
  • VOD system 304 then transmits 380 a signal to ad pump 352 indicating the amount of bandwidth recovered through the reduction process.
  • Ad pump 352 receives the signal using transceiver circuitry 354 and determines if the amount of bandwidth recovered is sufficient for delivery of the supplemental content. If so, the supplemental QAM signal is transmitted 382 to transceiver circuitry 354 , which initializes a transmission path 384 for the supplemental QAM signal between ad pump 352 and QAM 324 .
  • ad pump 352 After preparing the supplemental QAM signal, ad pump 352 , using transceiver circuitry 354 , transmits 386 a signal to client device 300 providing tuning information for the inserted ad. For example, while the supplemental QAM signal may be placed into the same QAM channel as the VOD content, the client device may have to access a different program within the channel (i.e., PID) to generate the supplemental QAM signal for display.
  • Ad pump 352 may inform client device 300 of the PID that client device 300 can use to access the supplemental QAM signal.
  • ad pump 352 uses transceiver circuitry 354 to receive 388 from client device 300 a start command, indicating to ad pump 352 that client device 300 is ready to begin viewing the supplemental QAM signal.
  • Ad pump 352 may also receive 390 an indication that client device 300 has received a first frame of the program in which the supplemental QAM signal is placed.
  • ad pump 352 using transceiver circuitry 354 , provides the supplemental QAM signal over transmission path 384 to QAM 324 .
  • Control circuitry 394 may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components.
  • processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores).
  • processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
  • Control circuitry 394 identifies the RF frequency corresponding to the QAM channel over which the supplemental QAM signal is to be sent. For example, control circuitry 394 may access a table of QAM channels and their respective frequencies. Once the proper frequency is identified, control circuitry 394 transmits 396 the supplemental QAM signal and an RF tuning command to RF output circuitry 330 , which inserts the supplemental QAM signal into the unicast QAM signal over which the VOD content is being transmitted 332 to client device 300 .
  • Ad pump 352 may receive 398 , from client device 300 , an indication of whether the ad was displayed in its entirety or if the ad was skipped by the user. This information may be used, for example, to target other ads to the user. Alternatively, if the ad was not delivered successfully, ad pump 352 may receive an indication from client device 300 that the ad was aborted. This information may be used for diagnostic purposes if a large number of ads are indicated as having been aborted.
  • control circuitry 312 may be combined or implemented on master control circuitry at headend 306 .
  • control circuitry of one or more master control servers may coordinate the operations of VOD system 304 , ad session manager 336 , ad pump 352 , and QAM 324 .
  • FIG. 4 is a flowchart representing an illustrative process 400 for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure.
  • Process 400 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312 , control circuitry 346 , control circuitry 358 , and control circuitry 394 .
  • one or more actions of process 400 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
  • control circuitry (e.g., control circuitry 394 or control circuitry of a master control server) establishes a unicast QAM signal between a server and a client device for delivery of content, the QAM signal having a frequency. For example, a QAM signal targeted to the client device is placed on a QAM channel reserved for unicast VOD transmissions. VOD content is then encoded as a QAM signal in the frequency band of the QAM channel so that the VOD content can be transmitted over that channel to the client device.
  • control circuitry e.g., control circuitry 358 or control circuitry of a master control server
  • control circuitry determines bandwidth can be made available in the QAM signal to accommodate a supplemental content item. This may be accomplished using methods described below in connection with FIG. 8 . If bandwidth can be made available (“Yes” and 406 ), then, at 408 , control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) allocates at least one of a plurality of dedicated processing devices to the supplemental content. This may be accomplished using methods described below in connection with FIG. 7 .
  • control circuitry (e.g., control circuitry 346 , control circuitry 390 , or control circuitry of a master control server) allocates a portion of the available bandwidth of the unicast QAM signal for insertion of the supplemental content. For example, control circuitry may insert a new PID corresponding to the supplemental content into a program association table or program map section of the QAM signal.
  • control circuitry e.g., control circuitry 358 or control circuitry of a master control server
  • the packetized data comprising the supplemental content is converted into a format compatible with quadrature amplitude modulation, such as an MPEG-2 transport stream.
  • control circuitry e.g., control circuitry 346 , control circuitry 358 , control circuitry 390 , or control circuitry of a master control server
  • FIG. 4 may be used with any other embodiment of this disclosure.
  • the actions and descriptions described in relation to FIG. 4 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
  • FIG. 5 is a flowchart representing an illustrative process 500 for communicating a QAM signal from a server to a client device, in accordance with some embodiments of the disclosure.
  • Process 500 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312 , control circuitry 346 , control circuitry 358 , and control circuitry 394 .
  • one or more actions of process 500 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
  • control circuitry receives, from the client device, a request for content.
  • control circuitry may receive a request comprising a content identifier, a client device identifier, user authorization key, or any other data needed to establish a VOD session with the client device in which the requested content is transmitted to the client device in a unicast QAM signal.
  • control circuitry retrieves the requested content from a content database. For example, control circuitry may generate a database query such as an SQL “SELECT” command using the identifier of the content received as part of the request, and may transmit the database query to a content database. In response to the query, control circuitry may receive the requested content from the content database.
  • a database query such as an SQL “SELECT” command using the identifier of the content received as part of the request.
  • the content database may be communicatively coupled to a streaming content server, which streams the requested content at a rate comparable to a rate at which control circuitry (e.g., control circuitry 312 , control circuitry 390 , or control circuitry of a master control server) can process the streamed content.
  • control circuitry e.g., control circuitry 394 or control circuitry of a master control server
  • FIG. 5 may be used with any other embodiment of this disclosure.
  • the actions and descriptions described in relation to FIG. 5 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
  • FIG. 6 is a flowchart representing an illustrative process 600 for allocating a dedicated processing device to transcoding of supplemental content based on the current workload of each dedicated processing device, in accordance with some embodiments of the disclosure.
  • Process 600 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312 , control circuitry 346 , control circuitry 358 , and control circuitry 394 .
  • one or more actions of process 600 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
  • control circuitry identifies a plurality of available dedicated processing devices.
  • a cable headend may host a pool of dedicated processing devices (e.g., pool 200 ).
  • Control circuitry may poll a controller of the pool or each individual dedicated processing device in the pool to determine the availability of each dedicated processing device.
  • control circuitry e.g., control circuitry 346 or control circuitry of a master control server
  • control circuitry e.g., control circuitry 346 or control circuitry of a master control server
  • the control circuitry determines whether N is equal to T, meaning that the workload of each available dedicated processing device has been determined. If N is not equal to T (“No” at 608 , then, at 610 , the control circuitry increments the value of N by one, and processing returns to step 606 . If N is equal to T (“Yes” at 608 ), then, at 612 , the control circuitry allocates the dedicated processing device having the smallest current workload to the task of transcoding the supplemental content.
  • FIG. 6 may be used with any other embodiment of this disclosure.
  • the actions and descriptions described in relation to FIG. 6 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
  • FIG. 7 is a flowchart representing an illustrative process 700 for allocating a dedicated processing device to transcoding of supplemental content based on a service group of the client device, in accordance with some embodiments of the disclosure.
  • Process 700 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312 , control circuitry 346 , control circuitry 358 , and control circuitry 394 .
  • one or more actions of process 700 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
  • control circuitry identifies a plurality of available dedicated processing devices. This may be accomplished using methods described above in connection with FIG. 6 .
  • the control circuitry identifies a service group to which the client device belongs. For example, several client devices may be receiving unicast QAM signals of different VOD content simultaneously.
  • the QAM channel used to transmit such VOD content can accommodate multiple VOD programs, each containing a unique program identifier, which is provided to each client device as part of the tuning information for the VOD program.
  • the client devices receiving VOD programs on the same QAM channel are considered to be part of the same service group.
  • the control circuitry identifies the service group of the client device, and therefore identifies the QAM channel, and the associated frequency, on which the VOD content is being transmitted and on which the supplemental content should be inserted.
  • control circuitry e.g., control circuitry 346 or control circuitry of a master control server
  • control circuitry determines whether the service group to which the client device belongs is currently being served by the N th available dedicated processing device. For example, the control circuitry may poll or query the N th processing device to determine the frequency or QAM channel on which its transcoded supplemental content is being transmitted and compare it with the QAM channel or frequency associated with the service group to which the client device belongs.
  • the control circuitry allocates the N th available dedicated processing device to the supplemental content. If not (“No” at 708 ), then, at 712 , the control circuitry determines whether N is equal to T, meaning that the service group being served by each available dedicated processing device has been identified. If not (“No” at 712 ), then, at 714 , the control circuitry increments the value of N by one and processing returns to step 708 . If N is equal to T, then the control circuitry may resort to the process described above in connection with FIG. 6 by, at 716 , resetting the value of N to one, and proceeding to perform the steps of process 600 , beginning with step 606 .
  • FIG. 7 may be used with any other embodiment of this disclosure.
  • the actions and descriptions described in relation to FIG. 7 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
  • FIG. 8 is a flowchart representing an illustrative process 800 for allocating a portion of available bandwidth of a QAM signal for delivery of supplemental content, in accordance with some embodiments of the disclosure.
  • Process 800 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312 , control circuitry 346 , control circuitry 358 , and control circuitry 394 .
  • one or more actions of process 800 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
  • control circuitry e.g., control circuitry 346 , control circuitry 358 , or control circuitry of a master control server
  • This total amount of bandwidth is usually 6 MHz, but the amount of bandwidth available varies depending on the number of other VOD sessions being transmitted on the same QAM channel.
  • the control circuitry 804 determines an amount of bandwidth B S needed for delivery of the supplemental content. For example, the control circuitry may estimate the amount of bandwidth needed based on the volume of IP-formatted data representing the supplemental content.
  • the control circuitry may also transcode the supplemental content into a QAM signal and determine the amount of bandwidth occupied by the transcoded QAM signal.
  • the control circuitry initializes a counter variable N, settings its value to one, a variable T representing the total number of programs in the QAM signal, and a variable B R representing the total bandwidth recovered from the QAM signal.
  • the control circuitry determines whether the bitrate of the N th program can be reduced. For example, if the N th program comprises a video stream configured for 1080p resolution while the corresponding VOD session is configured to a lower resolution, such as 720p, a reduction in the bitrate of the N th program would be possible.
  • the control circuitry may determine if a more efficient video codec can be applied to the content to reduce the amount of data, and consequently the bandwidth, needed to transmit the same quality of content.
  • the control circuitry determines the bandwidth savings B N front the reduced bitrate of the N th program.
  • the control circuitry adds the value of B N to B R .
  • the control circuitry After adding the value of B N to B R , or if the bitrate of the N th program cannot be reduced, at 814 , the control circuitry determines whether N is equal to T, meaning that the ability to reduce the bitrate of each program in the QAM signal has been determined. If N is not equal to T (“No” at 814 ), then, at 816 , the control circuitry increments the value of N by one, and processing returns to step 808 . If N is equal to T (“Yes” at 814 ), then, at 818 , the control circuitry determines whether B R is sufficient to accommodate the supplemental content item.
  • the control circuitry allocates the amount of bandwidth needed for delivery of the supplemental content B S from the recovered bandwidth. If B R is insufficient to accommodate the supplemental content item (“No” at 818 ), then, at 822 , the control circuitry determines whether B S can be reduced to an amount of bandwidth that is less than or equal to B R . For example, the control circuitry may determine if the bitrate or frame rate of the supplemental content can be reduced in order to reduce the amount of bandwidth required.
  • control circuitry e.g., control circuitry 358 or control circuitry of a master control server
  • the control circuitry allocates the reduced amount of bandwidth from B R for delivery of the supplemental content. Otherwise, if the bandwidth required for delivery of the supplemental content cannot be reduced (“No” at 822 ), then, at 828 , the control circuitry allocates no bandwidth and, at 830 , refrains from inserting the supplemental content into the unicast QAM signal. This prioritizes delivery of the VOD content over delivery of supplemental content such as advertisement during periods of highest activity.
  • FIG. 8 may be used with any other embodiment of this disclosure.
  • the actions and descriptions described in relation to FIG. 8 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.

Landscapes

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

Abstract

Systems and methods are described herein for inserting supplemental content into a QAM signal. A unicast QAM signal between a server and a client device for delivery of content is established. The QAM signal has a particular frequency corresponding to the channel on which it will be transmitted to the client device. A request or other signal may be received from the client device requesting that supplemental content be inserted into the QAM signal. A portion of the bandwidth of the QAM signal is allocated for the supplemental content. The supplemental content is transcoded into a supplemental QAM signal in the particular frequency. The supplemental content may be packetized content such as internet protocol-based content and may be retrieved from a server or database. The supplemental QAM signal is then inserted into the unicast QAM signal using the allocated portion of the bandwidth.

Description

BACKGROUND
This disclosure relates to insertion of content into a quadrature amplitude modulation (QAM) signal and, in particular, insertion of the content utilizing the existing bandwidth of the channel in which the QAM signal is transmitted.
SUMMARY
Cable television operators often face bandwidth constraints due to protocol standards used in cable television transmission. Every channel in a cable television system is allocated a 6 MHz-wide portion of the total cable television frequency range, and content is encoded in a QAM signal in the frequency of the particular channel. In order to provide the maximum amount of content to subscribers, cable television operators use every available channel for either linear programming or on-demand programming. As cable television systems evolve, cable television operators want to be able to offer additional features. For these additional features to be available to all subscribers, they must be accessible using legacy equipment. This means that any additional feature must be transmitted to subscribers using one of the 6 MHz channels, and not using over-the-top or internet-based infrastructure. However, the amount of bandwidth available to provide such features is limited.
Systems and methods are described herein for inserting supplemental content into a QAM signal. A unicast QAM signal between a server (e.g., a cable television headend) and a client device (e.g., a set-top box) for delivery of content is established. The QAM signal has a particular frequency corresponding to the channel on which it will be transmitted to the client device. A request or other signal may be received from the client device requesting that supplemental content be inserted into the QAM signal. A portion of the bandwidth of the QAM signal is allocated for the supplemental content. The supplemental content is transcoded into a supplemental QAM signal in the particular frequency. The supplemental content may be packetized content such as internet protocol-based content and may be retrieved from a server or database. The supplemental QAM signal is then inserted into the unicast QAM signal using the allocated portion of the bandwidth.
For example, the supplemental content may be an advertisement. While playing back content received via the unicast QAM signal, such as video-on-demand content, the client device may identify an advertisement insertion point in the content and request an advertisement to be inserted. The QAM encoding device serving the unicast QAM session may then allocate a portion of bandwidth in the unicast QAM signal for the advertisement to be inserted without disruption of the video-on-demand content.
To establish the unicast QAM signal, a request for content is received from the client device. The requested content is retrieved from a content database and encoded as a QAM signal in the frequency of the unicast QAM signal. The QAM signal is then communicated from the server to the client device.
A dedicated processing device may be used to transcode the packetized supplemental content into a supplemental QAM signal. For example, the packetized supplemental content may be an IP-based advertisement. The dedicated processing device may be an ad pump which may be controlled by an ad session manager. A number of dedicated processing devices may be available to perform the transcoding. For example, a cable television headend may house a pool of ad pumps for delivering multiple ads simultaneously to various client devices over various QAM signals. In some cases, the available dedicated processing devices are identified, and a current workload of each device is determined. The dedicated processing device whose current workload is less than that of every other available dedicated processing device is then allocated to the task of transcoding the supplemental content. In other cases, a service group to which the client device belongs is identified and it is determined whether any of the available dedicated processing devices is currently serving that service group. If so, the particular dedicated processing device currently serving the service group is allocated to the task of transcoding the supplemental content.
Allocation of a portion of bandwidth of the QAM signal may be based on a determination of an amount of bandwidth needed to accommodate the supplemental content. In some cases, a total amount of bandwidth of the QAM signal is identified and an amount of bandwidth needed for delivery of the content is determined. A number of programs currently being transmitted in the QAM signal are identified, and the amount of bandwidth used by at least one of the programs is reduced. For example, the bitrate of the content may be lowered so that less bandwidth is required to transmit the content. If the amount by which the bandwidth used by the at least one program has been reduced is greater than or equal to the amount of bandwidth needed for delivery of the supplemental content, the amount of bandwidth needed for delivery of the supplemental content is allocated from the amount of bandwidth recovered from the reduction of bandwidth usage by the at least one program. If the amount by which the bandwidth used by the at least one program has been reduced is less than the amount of bandwidth needed for delivery of the supplemental content, it may be determined whether the amount of bandwidth needed for delivery of the supplemental content can be reduced to a second amount of bandwidth that is less than or equal to the amount by which the bandwidth used by the at least one program has been reduced. If it can be reduced, the supplemental content is transcoded to use the second amount of bandwidth and the second, reduced amount of bandwidth is allocated from the amount of bandwidth recovered from the reduction of bandwidth usage by the at least one program for delivery of the supplemental content. If the amount of bandwidth needed for delivery of the supplemental content cannot be reduced, then no bandwidth is allocated and no supplemental content is inserted into the unicast QAM signal.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and other objects and advantages of the disclosure will be apparent upon consideration of the following detailed description, taken in conjunction with the accompanying drawings, in which like reference characters refer to like parts throughout, and in which:
FIG. 1 is a schematic diagram representing insertion of supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure;
FIG. 2 is a block diagram showing allocation of each of a pool of ad pumps by an ad session manager to transcode supplemental content, in accordance with some embodiments of the disclosure;
FIG. 3 is a block diagram representing components and data flow therebetween of a system for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure;
FIG. 4 is a flowchart representing a process for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure;
FIG. 5 is a flowchart presenting a process for communicating a QAM signal from a server to a client device, in accordance with some embodiments of the disclosure;
FIG. 6 is a flowchart representing a process for allocating a dedicated processing device to transcoding of supplemental content based on the current workload of each dedicated processing device, in accordance with some embodiments of the disclosure;
FIG. 7 is a flowchart representing a process for allocating a dedicated processing device to transcoding of supplemental content based on a service group of the client device, in accordance with some embodiments of the disclosure; and
FIG. 8 is a flowchart representing a process for allocating a portion of available bandwidth of a QAM signal for delivery of supplemental content, in accordance with some embodiments of the disclosure.
DETAILED DESCRIPTION
FIG. 1 is a schematic diagram representing insertion of supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure. A cable television frequency band 100 is divided into a number of channels, such as channel 102. Each channel is normally 6 MHz wide and can accommodate a certain number of programs transmitted simultaneously. For example, a single 6 MHZ-wide channel may simultaneously deliver programming for NBC, MSNBC, CNBC, SyFy, and USA Network. Some channels are left open for unicast transmissions of video-on-demand (VOD) content to individual subscribers. Channel 102 is an example of a VOD channel. A portion 104 of channel 102 is dedicated to control metadata. For example, channel 102 may contain an MPEG-2 transport stream in a QAM format. Portion 104 may contain the Program Association Table, Conditional Access Table, Transport Stream Description Section, and Program Map Section, each of which includes data used by the client device to successfully access content contain in the MPEG-2 stream. Each component of the MPEG-2 stream is identified by a program identifier (PID), which the client device uses a filter to ensure that only packets pertaining to a selected program are decoded for output. In the example of FIG. 1, channel 102 is a VOD channel and receives VOD content from VOD system 106. VOD system 106 transmits VOD content items 108 a-108 e for inclusion in channel 102. Thus, channel 102 contains five VOD sessions 110 a-110 e. The combined bandwidth required for transmitting the control metadata of portion 104 and the five VOD sessions 110 a-110 e uses the entirety of the 6 MHz available in channel 102.
During delivery of the VOD content, supplemental content such as advertisements may be inserted into the transmission. Ad server 112 may store ads in an IP-based or packetized format that is not compatible with QAM signaling. Ad pump 114 receives the packetized ad content from ad server 112 and transcodes the ad content into a supplemental QAM signal in the same frequency band as that of channel 102. VOD system 106 may be instructed to reduce, or attempt to reduce, the bandwidth needed for delivery of at least one of VOD programs 108 a-108 e. For example, VOD system 106 may be instructed to reduce the bitrate of at least one VOD program. In the example of FIG. 1, VOD system 106 has reduces the bandwidth needed for delivery of all VOD programs 108 a-108 e, resulting in reduced bandwidth VOD sessions 110 a′ to 110 e′, leaving a portion of bandwidth of channel 102 available for insertion of supplemental content. Ad pump 114 then inserts the supplemental QAM signal into the available portion of bandwidth of channel 102. In some embodiments, it may first be determined whether the ad content, when transcoded into the supplemental QAM signal, will fit within the available portion of bandwidth of channel 102. If not, ad pump 114 may determine if the bandwidth requirements can be reduced, such as by lowering the quality or bitrate of the ad content. If so, ad pump 114 transcodes the packetized ad content into the supplemental QAM signal having the reduced bandwidth. If it is not possible to reduce the bandwidth, no ad will be inserted, as delivery of the VOD content is prioritized over delivery of the ad content.
FIG. 2 is a block diagram showing allocation of each of a pool of ad pumps 200 by an ad session manager 202 to transcode supplemental content, in accordance with some embodiments of the disclosure. Pool 200 may be located at a cable television headend. Ad session manager 202 may also be located at the cable television headend, or may be located remotely from the cable television headend and accessible via a communication network, such as the Internet. Ad session manager 202 is responsible for allocating one of ad pumps 206 a-206 h of pool 200 to transcoding supplemental content for various client devices. In some cases, ad session manager 202 may assign or allocate a particular ad pump based on current workloads of each of ad pumps 206 a-206 h, so that transcoding tasks are spread evenly across pool 200. For example, three tasks may currently be allocated to ad pump 1 206 a, while four tasks may currently be allocated to each of ad pumps 2-8 (206 b-206 h). Ad pump 1 206 a would thus have the smallest current workload, and ad session manager 202 therefore allocates ad pump 1 206 a to the task of transcoding the supplemental content.
In some embodiments, a plurality of client devices being served by pool 200 may be divided into a number of service groups 208. Ad session manager 202 transmits 204 instructions to ad pump pool 200 allocating each of ad pumps 1-8 (206 a-206 h) to a transcoding task based on the service group of the client device to which the supplemental content is to be delivered. For example, ad pump 1 206 a is currently transcoding supplemental content destined for a client device in service group SG1-QAM-B 210. If another client device in the same service group requests supplemental content, ad session manager 202 will allocate ad pump 1 206 a to the task of transcoding the requested supplemental content.
FIG. 3 is a block diagram representing components and data flow therebetween of a system for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure. Client device 300 transmits 302 a request for VOD content from VOD system 304. VOD system 304 is located at headend 306. VOD system 304 receives the request from client device 300 using transceiver circuitry 308. Transceiver circuitry 308 comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol. The request may identify a particular content item using at least one identifier of the content item. Transceiver circuitry 308 transmits 310 the request to control circuitry 312. Control circuitry 312 may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
Control circuitry 312 processes the request and generates a database query, such as an SQL “SELECT” command, based on the identifier of the content item contained in the request. Control circuitry 312 then transmits 314 the database query to transceiver circuitry 308, which in turn transmits 316 the query to content database 318. Transceiver circuitry 308 receives 320 the identified content item from content database 318 and begins streaming 322 the content item to QAM 324 in a QAM format. QAM 324 may also be located at headend 306. QAM 324 receives the streaming content from VOD system 304 using transceiver circuitry 326. Like transceiver circuitry 308, transceiver circuitry 326 comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol. Transceiver circuitry 326 transmits 328 the VOD content stream to RF output circuitry 330. RF output circuitry 330 places a QAM signal of the VOD content on a unicast QAM channel in a session associated with client device 300. RF output circuitry 330 then transmits 332 the QAM signal of the VOD content to client device 300.
During playback of the VOD content, client device 300 identifies an ad insertion point in the VOD content. For example, the VOD content may include command tags, metadata, or other indicators that signal an upcoming ad insertion point. In response to identifying the ad insertion point, client device 300 transmits 334 a request to ad session manager 336 for an ad to be inserted. Ad session manager 336 may be located at headend 306. As session manager 336 receives the request using transceiver circuitry 338, which comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol. In response to receiving the request, ad session manager 336, using transceiver circuitry 338, transmits 340 a request to VOD system 304 for session information associated with client device 300. VOD system 304, using transceiver circuitry 308, transmits 342 the requested session information to ad session manager 336. Transceiver circuitry 338, upon receiving the session information, transmits 344 the session information to control circuitry 346. Like control circuitry 312, control circuitry 346 may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
Control circuitry 346 processes the request and identifies an available ad pump to allocate to the request. As described above, control circuitry 346 may allocate an ad pump having the smallest current workload of a plurality of available ad pumps. Alternatively, control circuitry 346 may determine from the request a service group to which client device 300 belongs and allocate an ad pump currently serving client devices in the same service group. If no ad pump is currently serving a client device in the same service group as client device 300, control circuitry 346 may allocate an ad pump based on workloads. Control circuitry 346 transmits 348 an allocation command, as well as the session information, to transceiver circuitry 338, which in turn transmits 350 the allocation command and session information to ad pump 352. Ad pump 352 receives the allocation command and session information using transceiver circuitry 354 which, like transceiver circuitry 338, comprises a network connection over which data can be transmitted to and received from client devices in a cable television ecosystem, such as an ethernet connection, WiFi connection, coaxial connection, fiber optic connection, or connection employing any other suitable networking protocol. Transceiver circuitry 354 transmits 356 the allocation command to control circuitry 358, which processes the allocation command. Control circuitry 358, like control circuitry 312 and control circuitry 346, may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor).
Control circuitry 358 generates a request for an ad based on the allocation command. For example, control circuitry 358 may generate an HTTP request for transmission to a server. Control circuitry 358 transmits 360 the request to transceiver circuitry 354, which in turn transmits 362 the request to ad provisioning server 364. In response to the request, ad pump 352, using transceiver circuitry 354, receives 366, from ad provisioning server 364, an identifier of an ad to be inserted into the VOD content. Transceiver circuitry 354 then transmits 368 the identifier to ad database 370. In response, ad pump 352, using transceiver circuitry 354, receives 372 packetized ad content from ad database 370. Transceiver circuitry 354 transmits 374 the packetized ad content to transcoder 376. Transcoder 376, using the session information received from VOD system 304 via ad session manager 336, transcodes the packetized ad content into a supplemental QAM signal in the frequency of the unicast QAM signal over which the VOD content is being streamed to client device 300.
Ad pump 352, using transceiver circuitry 354, transmits a command to VOD system 304 to reduce the amount of bandwidth used by at least one program in the QAM signal. VOD system 304 determines, using control circuitry 312, whether the bandwidth needed to deliver any program in the QAM signal can be reduced, for example, by reducing the bitrate of the content. In some embodiments, ad pump 352 may include the amount of bandwidth needed for delivery of the supplemental content as part of the command. VOD system 304 may divide the amount of bandwidth needed evenly among the programs contained in the QAM signal and reduce the bandwidth needed for each program accordingly. This would result in the least noticeable degradation of quality by users consuming the VOD content being delivered in the QAM signal. VOD system 304 then transmits 380 a signal to ad pump 352 indicating the amount of bandwidth recovered through the reduction process. Ad pump 352 receives the signal using transceiver circuitry 354 and determines if the amount of bandwidth recovered is sufficient for delivery of the supplemental content. If so, the supplemental QAM signal is transmitted 382 to transceiver circuitry 354, which initializes a transmission path 384 for the supplemental QAM signal between ad pump 352 and QAM 324.
After preparing the supplemental QAM signal, ad pump 352, using transceiver circuitry 354, transmits 386 a signal to client device 300 providing tuning information for the inserted ad. For example, while the supplemental QAM signal may be placed into the same QAM channel as the VOD content, the client device may have to access a different program within the channel (i.e., PID) to generate the supplemental QAM signal for display. Ad pump 352 may inform client device 300 of the PID that client device 300 can use to access the supplemental QAM signal. Once the client device has performed a corresponding tuning operation, ad pump 352, using transceiver circuitry 354, receives 388 from client device 300 a start command, indicating to ad pump 352 that client device 300 is ready to begin viewing the supplemental QAM signal. Ad pump 352 may also receive 390 an indication that client device 300 has received a first frame of the program in which the supplemental QAM signal is placed. In response, ad pump 352, using transceiver circuitry 354, provides the supplemental QAM signal over transmission path 384 to QAM 324.
QAM 324 receives the supplemental QAM signal using transceiver circuitry 326, which in turn transmits 392 the supplemental QAM signal to control circuitry 394. Control circuitry 394, like control circuitry 312, control circuitry 346, and control circuitry 358, may be based on any suitable processing circuitry and comprises control circuits and memory circuits, which may be disposed on a single integrated circuit or may be discrete components. As referred to herein, processing circuitry should be understood to mean circuitry based on one or more microprocessors, microcontrollers, digital signal processors, programmable logic devices, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), etc., and may include a multi-core processor (e.g., dual-core, quad-core, hexa-core, or any suitable number of cores). In some embodiments, processing circuitry may be distributed across multiple separate processors or processing units, for example, multiple of the same type of processing units (e.g., two Intel Core i7 processors) or multiple different processors (e.g., an Intel Core i5 processor and an Intel Core i7 processor). Control circuitry 394 identifies the RF frequency corresponding to the QAM channel over which the supplemental QAM signal is to be sent. For example, control circuitry 394 may access a table of QAM channels and their respective frequencies. Once the proper frequency is identified, control circuitry 394 transmits 396 the supplemental QAM signal and an RF tuning command to RF output circuitry 330, which inserts the supplemental QAM signal into the unicast QAM signal over which the VOD content is being transmitted 332 to client device 300.
Ad pump 352 may receive 398, from client device 300, an indication of whether the ad was displayed in its entirety or if the ad was skipped by the user. This information may be used, for example, to target other ads to the user. Alternatively, if the ad was not delivered successfully, ad pump 352 may receive an indication from client device 300 that the ad was aborted. This information may be used for diagnostic purposes if a large number of ads are indicated as having been aborted.
While shown and described separately in FIG. 3, it should be understood that control circuitry 312, control circuitry 346, control circuitry 358, and control circuitry 394, or any combination thereof, may be combined or implemented on master control circuitry at headend 306. For example, control circuitry of one or more master control servers may coordinate the operations of VOD system 304, ad session manager 336, ad pump 352, and QAM 324.
FIG. 4 is a flowchart representing an illustrative process 400 for inserting supplemental content into a QAM signal using available bandwidth, in accordance with some embodiments of the disclosure. Process 400 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312, control circuitry 346, control circuitry 358, and control circuitry 394. In addition, one or more actions of process 400 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
At 402, control circuitry (e.g., control circuitry 394 or control circuitry of a master control server) establishes a unicast QAM signal between a server and a client device for delivery of content, the QAM signal having a frequency. For example, a QAM signal targeted to the client device is placed on a QAM channel reserved for unicast VOD transmissions. VOD content is then encoded as a QAM signal in the frequency band of the QAM channel so that the VOD content can be transmitted over that channel to the client device. At 404, control circuitry (e.g., control circuitry 358 or control circuitry of a master control server) retrieves packetized supplemental content for insertion into the QAM channel. For example, supplemental content such as an ad may be retrieved from an ad server or ad database.
At 406, control circuitry (e.g., control circuitry 312, control circuitry 346, control circuitry 394, or control circuitry of a master control server) determines bandwidth can be made available in the QAM signal to accommodate a supplemental content item. This may be accomplished using methods described below in connection with FIG. 8. If bandwidth can be made available (“Yes” and 406), then, at 408, control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) allocates at least one of a plurality of dedicated processing devices to the supplemental content. This may be accomplished using methods described below in connection with FIG. 7. At 410, control circuitry (e.g., control circuitry 346, control circuitry 390, or control circuitry of a master control server) allocates a portion of the available bandwidth of the unicast QAM signal for insertion of the supplemental content. For example, control circuitry may insert a new PID corresponding to the supplemental content into a program association table or program map section of the QAM signal.
At 412, control circuitry (e.g., control circuitry 358 or control circuitry of a master control server) transcodes the packetized supplemental content into a supplemental QAM signal in the frequency of the unicast QAM signal using the at least one dedicated processing device. For example, the packetized data comprising the supplemental content is converted into a format compatible with quadrature amplitude modulation, such as an MPEG-2 transport stream. At 414, control circuitry (e.g., control circuitry 346, control circuitry 358, control circuitry 390, or control circuitry of a master control server) inserts the supplemental QAM signal into the unicast QAM signal using the allocated portion of the available bandwidth.
The actions or descriptions of FIG. 4 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 4 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
FIG. 5 is a flowchart representing an illustrative process 500 for communicating a QAM signal from a server to a client device, in accordance with some embodiments of the disclosure. Process 500 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312, control circuitry 346, control circuitry 358, and control circuitry 394. In addition, one or more actions of process 500 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
At 502, control circuitry (e.g., control circuitry 312 or control circuitry of a master control server) receives, from the client device, a request for content. For example, control circuitry may receive a request comprising a content identifier, a client device identifier, user authorization key, or any other data needed to establish a VOD session with the client device in which the requested content is transmitted to the client device in a unicast QAM signal.
At 504, control circuitry (e.g., control circuitry 312 or control circuitry of a master control server) retrieves the requested content from a content database. For example, control circuitry may generate a database query such as an SQL “SELECT” command using the identifier of the content received as part of the request, and may transmit the database query to a content database. In response to the query, control circuitry may receive the requested content from the content database. Alternatively, as the content item may be large (e.g., a 2-hour movie), the content database may be communicatively coupled to a streaming content server, which streams the requested content at a rate comparable to a rate at which control circuitry (e.g., control circuitry 312, control circuitry 390, or control circuitry of a master control server) can process the streamed content. At 506, control circuitry (e.g., control circuitry 394 or control circuitry of a master control server) encodes the content as a QAM signal in the frequency of the unicast QAM signal and, at 508, communicates the QAM signal to the client device.
The actions or descriptions of FIG. 5 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 5 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
FIG. 6 is a flowchart representing an illustrative process 600 for allocating a dedicated processing device to transcoding of supplemental content based on the current workload of each dedicated processing device, in accordance with some embodiments of the disclosure. Process 600 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312, control circuitry 346, control circuitry 358, and control circuitry 394. In addition, one or more actions of process 600 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
At 602, control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) identifies a plurality of available dedicated processing devices. For example, a cable headend may host a pool of dedicated processing devices (e.g., pool 200). Control circuitry may poll a controller of the pool or each individual dedicated processing device in the pool to determine the availability of each dedicated processing device.
At 604, control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) initializes a counter variable N, setting its value to one, and a variable T representing the total number of available dedicated processing devices. At 606, control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) determines the current workload of the Nth dedicated processing device. For example, control circuitry may poll the Nth processing device to determine the number of tasks currently allocated thereto, an amount of available processing power currently being used, an amount of RAM or other memory currently being used, or any other data suitable for establishing a metric of computer workloads. At 608, the control circuitry determines whether N is equal to T, meaning that the workload of each available dedicated processing device has been determined. If N is not equal to T (“No” at 608, then, at 610, the control circuitry increments the value of N by one, and processing returns to step 606. If N is equal to T (“Yes” at 608), then, at 612, the control circuitry allocates the dedicated processing device having the smallest current workload to the task of transcoding the supplemental content.
The actions or descriptions of FIG. 6 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 6 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
FIG. 7 is a flowchart representing an illustrative process 700 for allocating a dedicated processing device to transcoding of supplemental content based on a service group of the client device, in accordance with some embodiments of the disclosure. Process 700 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312, control circuitry 346, control circuitry 358, and control circuitry 394. In addition, one or more actions of process 700 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
At 702, control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) identifies a plurality of available dedicated processing devices. This may be accomplished using methods described above in connection with FIG. 6. At 704, the control circuitry identifies a service group to which the client device belongs. For example, several client devices may be receiving unicast QAM signals of different VOD content simultaneously. The QAM channel used to transmit such VOD content can accommodate multiple VOD programs, each containing a unique program identifier, which is provided to each client device as part of the tuning information for the VOD program. The client devices receiving VOD programs on the same QAM channel are considered to be part of the same service group. The control circuitry identifies the service group of the client device, and therefore identifies the QAM channel, and the associated frequency, on which the VOD content is being transmitted and on which the supplemental content should be inserted.
At 706, control circuitry (e.g., control circuitry 346 or control circuitry of a master control server) initializes a counter variable N, settings its value to one, and a variable T representing a total number of available dedicated processing devices. At 708, the control circuitry determines whether the service group to which the client device belongs is currently being served by the Nth available dedicated processing device. For example, the control circuitry may poll or query the Nth processing device to determine the frequency or QAM channel on which its transcoded supplemental content is being transmitted and compare it with the QAM channel or frequency associated with the service group to which the client device belongs. If the Nth available dedicated processing device is currently serving the service group to which the client device belongs (“Yes” at 708), then, at 710, the control circuitry allocates the Nth available dedicated processing device to the supplemental content. If not (“No” at 708), then, at 712, the control circuitry determines whether N is equal to T, meaning that the service group being served by each available dedicated processing device has been identified. If not (“No” at 712), then, at 714, the control circuitry increments the value of N by one and processing returns to step 708. If N is equal to T, then the control circuitry may resort to the process described above in connection with FIG. 6 by, at 716, resetting the value of N to one, and proceeding to perform the steps of process 600, beginning with step 606.
The actions or descriptions of FIG. 7 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 7 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
FIG. 8 is a flowchart representing an illustrative process 800 for allocating a portion of available bandwidth of a QAM signal for delivery of supplemental content, in accordance with some embodiments of the disclosure. Process 800 may be implemented on control circuitry of a master control server or any one or more of control circuitry 312, control circuitry 346, control circuitry 358, and control circuitry 394. In addition, one or more actions of process 800 may be incorporated into or combined with one or more actions of any process or embodiments described herein.
At 802, control circuitry (e.g., control circuitry 346, control circuitry 358, or control circuitry of a master control server) identifies a total amount of available bandwidth of the QAM signal and assigns the value of a variable BT to the identified amount. This total amount of bandwidth is usually 6 MHz, but the amount of bandwidth available varies depending on the number of other VOD sessions being transmitted on the same QAM channel. At 804, the control circuitry 804 determines an amount of bandwidth BS needed for delivery of the supplemental content. For example, the control circuitry may estimate the amount of bandwidth needed based on the volume of IP-formatted data representing the supplemental content. The control circuitry may also transcode the supplemental content into a QAM signal and determine the amount of bandwidth occupied by the transcoded QAM signal.
At 806, the control circuitry initializes a counter variable N, settings its value to one, a variable T representing the total number of programs in the QAM signal, and a variable BR representing the total bandwidth recovered from the QAM signal. At 808, the control circuitry determines whether the bitrate of the Nth program can be reduced. For example, if the Nth program comprises a video stream configured for 1080p resolution while the corresponding VOD session is configured to a lower resolution, such as 720p, a reduction in the bitrate of the Nth program would be possible. Alternatively, the control circuitry may determine if a more efficient video codec can be applied to the content to reduce the amount of data, and consequently the bandwidth, needed to transmit the same quality of content. If the bitrate of the Nth program can be reduced (“Yes” at 808), then, at 810, the control circuitry determines the bandwidth savings BN front the reduced bitrate of the Nth program. At 812, the control circuitry adds the value of BN to BR.
After adding the value of BN to BR, or if the bitrate of the Nth program cannot be reduced, at 814, the control circuitry determines whether N is equal to T, meaning that the ability to reduce the bitrate of each program in the QAM signal has been determined. If N is not equal to T (“No” at 814), then, at 816, the control circuitry increments the value of N by one, and processing returns to step 808. If N is equal to T (“Yes” at 814), then, at 818, the control circuitry determines whether BR is sufficient to accommodate the supplemental content item. If so (“Yes” at 818), then, at 820, the control circuitry allocates the amount of bandwidth needed for delivery of the supplemental content BS from the recovered bandwidth. If BR is insufficient to accommodate the supplemental content item (“No” at 818), then, at 822, the control circuitry determines whether BS can be reduced to an amount of bandwidth that is less than or equal to BR. For example, the control circuitry may determine if the bitrate or frame rate of the supplemental content can be reduced in order to reduce the amount of bandwidth required. If BS can be reduced (“Yes” at 822), then, at 824, control circuitry (e.g., control circuitry 358 or control circuitry of a master control server) transcodes the supplemental content accordingly in order to use the reduced amount of bandwidth. At 826, the control circuitry allocates the reduced amount of bandwidth from BR for delivery of the supplemental content. Otherwise, if the bandwidth required for delivery of the supplemental content cannot be reduced (“No” at 822), then, at 828, the control circuitry allocates no bandwidth and, at 830, refrains from inserting the supplemental content into the unicast QAM signal. This prioritizes delivery of the VOD content over delivery of supplemental content such as advertisement during periods of highest activity.
The actions or descriptions of FIG. 8 may be used with any other embodiment of this disclosure. In addition, the actions and descriptions described in relation to FIG. 8 may be done in any suitable alternative orders or in parallel to further the purposes of this disclosure.
The processes described above are intended to be illustrative and not limiting. One skilled in the art would appreciate that the steps of the processes discussed herein may be omitted, modified, combined, and/or rearranged, and any additional steps may be performed without departing from the scope of the invention. More generally, the above disclosure is meant to be exemplary and not limiting. Only the claims that follow are meant to set bounds as to what the present invention includes. Furthermore, it should be noted that the features and limitations described in any one embodiment may be applied to any other embodiment herein, and flowcharts or examples relating to one embodiment may be combined with any other embodiment in a suitable manner, done in different orders, or done in parallel. In addition, the systems and methods described herein may be performed in real time. It should also be noted that the systems and/or methods described above may be applied to, or used in accordance with, other systems and/or methods.

Claims (20)

What is claimed is:
1. A method for inserting packetized supplemental content into a quadrature amplitude modulation (QAM) signal, the method comprising:
establishing a unicast QAM signal between a server and a client device for delivery of content, the unicast QAM signal having a frequency and comprising a plurality of programs;
identifying a total amount of bandwidth of the QAM signal;
determining an amount of bandwidth needed for delivery of the supplemental content;
identifying the plurality of programs in the QAM signal;
reducing an amount of bandwidth used by at least one program of the plurality of programs;
determining whether the amount by which the bandwidth used by the at least one program has been reduced is greater than or equal to the amount of bandwidth needed for delivery of the supplemental content;
in response to determining that the amount by which the bandwidth used by the at least one program has been reduced is greater than or equal to the amount of bandwidth needed for delivery of the supplemental content, allocating the amount of bandwidth needed for delivery of the supplemental content from the amount by which the bandwidth used by the at least one program has been reduced;
transcoding the packetized supplemental content into a supplemental QAM signal in the frequency of the unicast QAM signal; and
inserting the supplemental QAM signal into the unicast QAM signal using the allocated portion of bandwidth.
2. The method of claim 1, wherein establishing the unicast QAM signal comprises:
receiving, from the client device, a request for the content;
retrieving the content from a content database;
encoding the content as a QAM signal in the frequency of the unicast QAM signal; and
communicating the QAM signal from the server to the client device.
3. The method of claim 1, further comprising receiving a signal from the client device to insert supplemental content.
4. The method of claim 1, further comprising:
retrieving the packetized supplemental content item; and
allocating at least one of a plurality of dedicated processing devices to the supplemental content.
5. The method of claim 4, wherein transcoding the packetized supplemental content comprises transcoding the packetized supplemental content using the at least one dedicated processing device.
6. The method of claim 4, wherein allocating the processing device to the supplemental content comprises:
identifying a plurality of available dedicated processing devices;
determining a current workload of each of the plurality of available dedicated processing devices; and
in response to determining that a current workload of a first dedicated processing device is less than a current workload of each other of the plurality of available processing devices, allocating the first dedicated processing device to the supplemental content.
7. The method of claim 4, wherein allocating the processing device to the supplemental content comprises:
identifying a plurality of available dedicated processing devices;
identifying a service group to which the client device belongs;
determining whether the service group to which the client device belongs is currently being served by any of the plurality of dedicated processing devices; and
in response to determining that the service group to which the client device belongs is currently being served by a first dedicated processing device of the plurality of available dedicated processing devices, allocating the first dedicated processing device to the supplemental content.
8. The method of claim 1, wherein allocating the amount of bandwidth of the unicast QAM signal needed for delivery of the supplemental content comprises determining an amount of bandwidth needed to accommodate the supplemental content.
9. The method of claim 1, wherein the content is media content, the method further comprising:
causing the content delivered over the unicast QAM signal to the client device to be played; and
during delivery of the content, causing the inserted supplemental content to be played.
10. The method of claim 1, further comprising:
in response to determining that the amount by which the bandwidth used by the at least one program has been reduced is less than the amount of bandwidth needed for delivery of the supplemental content:
determining whether the amount of bandwidth needed for delivery of the supplemental content can be reduced to a second amount of bandwidth that is less than or equal to the amount by which the bandwidth used by the at least one program has been reduced;
in response to determining that the amount of bandwidth needed for delivery of the supplemental content can be reduced:
transcoding the supplemental content to use the second amount of bandwidth; and
allocating the second amount of bandwidth from the amount by which the bandwidth used by the at least one program has been reduced; and
in response to determining that the amount of bandwidth needed for delivery of the supplemental content cannot be reduced:
allocating no bandwidth; and
refraining from inserting the supplemental content into the unicast QAM signal.
11. A system for inserting packetized supplemental content into a quadrature amplitude modulation (QAM) signal, the system comprising:
a content source; and
control circuitry configured to:
establish a unicast QAM signal between a server and a client device for delivery of content from the content source, the unicast QAM signal having a frequency and comprising a plurality of programs;
identify a total amount of bandwidth of the QAM signal;
determine an amount of bandwidth needed for delivery of the supplemental content;
identify the plurality of programs in the QAM signal;
reduce an amount of bandwidth used by at least one program of the plurality of programs;
determine whether the amount by which the bandwidth used by the at least one program has been reduced is greater than or equal to the amount of bandwidth needed for delivery of the supplemental content;
in response to determining that the amount by which the bandwidth used by the at least one program has been reduced is greater than or equal to the amount of bandwidth needed for delivery of the supplemental content, allocate the amount of bandwidth needed for delivery of the supplemental content from the amount by which the bandwidth used by the at least one program has been reduced;
transcode the packetized supplemental content into a supplemental QAM signal in the frequency of the unicast QAM signal; and
insert the supplemental QAM signal into the unicast QAM signal using the allocated portion of bandwidth.
12. The system of claim 11, wherein the control circuitry configured to establish the unicast QAM signal is further configured to:
receive, from the client device, a request for the content;
retrieve the content from a content database;
encode the content as a QAM signal in the frequency of the unicast QAM signal; and
communicate the QAM signal from the server to the client device.
13. The system of claim 11, wherein the control circuitry is further configured to receive a signal from the client device to insert supplemental content.
14. The system of claim 11, wherein the control circuitry is further configured to:
retrieve the packetized supplemental content item; and
allocate at least one of a plurality of dedicated processing devices to the supplemental content.
15. The system of claim 14, wherein the control circuitry configured to transcode the packetized supplemental content is further configured to transcode the packetized supplemental content using the at least one dedicated processing device.
16. The system of claim 14, wherein the control circuitry configured to allocate the processing device to the supplemental content is further configured to:
identify a plurality of available dedicated processing devices;
determine a current workload of each of the plurality of available dedicated processing devices; and
in response to determining that a current workload of a first dedicated processing device is less than a current workload of each other of the plurality of available processing devices, allocate the first dedicated processing device to the supplemental content.
17. The system of claim 14, wherein the control circuitry configured to allocate the processing device to the supplemental content is further configured to:
identify a plurality of available dedicated processing devices;
identify a service group to which the client device belongs;
determine whether the service group to which the client device belongs is currently being served by any of the plurality of dedicated processing devices; and
in response to determining that the service group to which the client device belongs is currently being served by a first dedicated processing device of the plurality of available dedicated processing devices, allocate the first dedicated processing device to the supplemental content.
18. The system of claim 11, wherein the control circuitry configured to allocate the amount of bandwidth of the unicast QAM signal needed for delivery of the supplemental content is further configured to determine an amount of bandwidth needed to accommodate the supplemental content.
19. The system of claim 11, wherein the content is media content, and wherein the control circuitry is further configured to:
cause the content delivered over the unicast QAM signal to the client device to be played; and
during delivery of the content, cause the inserted supplemental content to be played.
20. The system of claim 11, wherein the control circuitry is further configured to:
in response to determining that the amount by which the bandwidth used by the at least one program has been reduced is less than the amount of bandwidth needed for delivery of the supplemental content:
determine whether the amount of bandwidth needed for delivery of the supplemental content can be reduced to a second amount of bandwidth that is less than or equal to the amount by which the bandwidth used by the at least one program has been reduced;
in response to determining that the amount of bandwidth needed for delivery of the supplemental content can be reduced:
transcode the supplemental content to use the second amount of bandwidth; and
allocate the second amount of bandwidth from the amount by which the bandwidth used by the at least one program has been reduced; and
in response to determining that the amount of bandwidth needed for delivery of the supplemental cannot be reduced:
allocate no bandwidth; and
refrain from inserting the supplemental content into the unicast QAM signal.
US16/834,581 2020-03-30 2020-03-30 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth Active US11303496B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/834,581 US11303496B2 (en) 2020-03-30 2020-03-30 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US17/689,106 US11621880B2 (en) 2020-03-30 2022-03-08 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US18/117,157 US11799709B2 (en) 2020-03-30 2023-03-03 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US18/371,105 US20240015061A1 (en) 2020-03-30 2023-09-21 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/834,581 US11303496B2 (en) 2020-03-30 2020-03-30 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/689,106 Continuation US11621880B2 (en) 2020-03-30 2022-03-08 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth

Publications (2)

Publication Number Publication Date
US20210306199A1 US20210306199A1 (en) 2021-09-30
US11303496B2 true US11303496B2 (en) 2022-04-12

Family

ID=77857290

Family Applications (4)

Application Number Title Priority Date Filing Date
US16/834,581 Active US11303496B2 (en) 2020-03-30 2020-03-30 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US17/689,106 Active US11621880B2 (en) 2020-03-30 2022-03-08 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US18/117,157 Active US11799709B2 (en) 2020-03-30 2023-03-03 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US18/371,105 Pending US20240015061A1 (en) 2020-03-30 2023-09-21 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth

Family Applications After (3)

Application Number Title Priority Date Filing Date
US17/689,106 Active US11621880B2 (en) 2020-03-30 2022-03-08 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US18/117,157 Active US11799709B2 (en) 2020-03-30 2023-03-03 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US18/371,105 Pending US20240015061A1 (en) 2020-03-30 2023-09-21 Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth

Country Status (1)

Country Link
US (4) US11303496B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11303496B2 (en) 2020-03-30 2022-04-12 Rovi Guides, Inc. Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US11805287B2 (en) * 2022-01-05 2023-10-31 Verizon Patent And Licensing Inc. Systems and methods for transitioning between different content

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022032A1 (en) * 2005-01-12 2007-01-25 Anderson Bruce J Content selection based on signaling from customer premises equipment in a broadcast network
US20130268984A1 (en) * 2012-04-10 2013-10-10 Comcast Cable Communications, Llc Data network traffic management
US20150163559A1 (en) * 2013-12-05 2015-06-11 Time Warner Cable Enterprises Llc Methods and apparatus that support delivery of targeted advertising content via a secondary channel

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8290351B2 (en) * 2001-04-03 2012-10-16 Prime Research Alliance E., Inc. Alternative advertising in prerecorded media
US8681873B2 (en) * 2010-02-19 2014-03-25 Skype Data compression for video
US9124947B2 (en) * 2013-09-04 2015-09-01 Arris Enterprises, Inc. Averting ad skipping in adaptive bit rate systems
US10586023B2 (en) * 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US20210021407A1 (en) * 2019-07-17 2021-01-21 Charter Communications Operating, Llc Apparatus and methods for blockchain-based verification
US11303496B2 (en) 2020-03-30 2022-04-12 Rovi Guides, Inc. Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070022032A1 (en) * 2005-01-12 2007-01-25 Anderson Bruce J Content selection based on signaling from customer premises equipment in a broadcast network
US20130268984A1 (en) * 2012-04-10 2013-10-10 Comcast Cable Communications, Llc Data network traffic management
US20150163559A1 (en) * 2013-12-05 2015-06-11 Time Warner Cable Enterprises Llc Methods and apparatus that support delivery of targeted advertising content via a secondary channel

Also Published As

Publication number Publication date
US11799709B2 (en) 2023-10-24
US11621880B2 (en) 2023-04-04
US20210306199A1 (en) 2021-09-30
US20230283509A1 (en) 2023-09-07
US20220191082A1 (en) 2022-06-16
US20240015061A1 (en) 2024-01-11

Similar Documents

Publication Publication Date Title
US11799709B2 (en) Systems and methods for inserting supplemental content into a quadrature amplitude modulation signal using existing bandwidth
US10764642B2 (en) Managed multiplexing of video in an adaptive bit rate environment
US9420317B2 (en) Adaptive streaming to multicast and constrained-fidelity constant bit rate encoding
EP2122841B1 (en) Method and apparatus providing scalability for channel change requests in a switched digital video system
US11038938B2 (en) Methods and apparatus for providing alternative content
US10834155B2 (en) Indirect control of content consumption
TWI580267B (en) Smart stream delivery server, system and methods for assembling a mix of services to be delivered to a subscriber's premises
US9516085B2 (en) Constrained fidelity Adaptive Bit Rate encoding systems and methods
US10587907B2 (en) Broadcast management services platform
US10015223B2 (en) Generation of dynamic content interfaces
US10516904B2 (en) Controlling delivery of requested content based on delivery bandwidth limitations
US11044497B1 (en) Method of unified video switching and advertisement splicing within consumer devices
US9338204B2 (en) Prioritized side channel delivery for download and store media
US20090157891A1 (en) Method and Apparatus for Inserting Time-Variant Data into a Media Stream
EP3371978B1 (en) Contiguous streaming of media stream
US11601716B2 (en) Smart notification for over-the-top (OTT) streaming among multiple devices
US12034983B2 (en) Centralized mediation between ad-replacement platforms
US11277353B2 (en) Delivery of multimedia components according to user activity
US11622144B2 (en) Active video bandwidth management using SDV control

Legal Events

Date Code Title Description
AS Assignment

Owner name: ROVI GUIDES, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MCCARTY, MICHAEL;ROE, GLEN E.;REEL/FRAME:052264/0243

Effective date: 20200329

FEPP Fee payment procedure

Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

AS Assignment

Owner name: BANK OF AMERICA, N.A., NORTH CAROLINA

Free format text: SECURITY INTEREST;ASSIGNORS:ROVI SOLUTIONS CORPORATION;ROVI TECHNOLOGIES CORPORATION;ROVI GUIDES, INC.;AND OTHERS;REEL/FRAME:053468/0001

Effective date: 20200601

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE AFTER FINAL ACTION FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS

STPP Information on status: patent application and granting procedure in general

Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED

STCF Information on status: patent grant

Free format text: PATENTED CASE