This disclosure relates to facilitating program change operations on multimedia devices that have access to QAM services and IP services.
Multiple services operators (MSO) use community access television (CATV) network infrastructure for carrying Motion Picture Experts Group (MPEG) video signals and Internet protocol (IP) data signals, among other types. Originally all MPEG digital video content was carried within broadcast Quadrature Amplitude Modulated signals (QAMs). MSOs have begun to also offer some video content over unicast IP data signals. A continuing issue for video services has been the time delay from the selection of a video program until its display on the desired display device. It is desirable to provide a method that reduces the potential delay experienced by a user after the selection of a video program.
Like reference numbers and designations in the various drawings indicate like elements.
In various embodiments, systems and methods disclosed herein can operate to facilitate reduced channel change times for user-initiated program changes. A variety of technical developments have led to increased time for program change operations as perceived by end users. Many MSOs have changed their video transmissions from analog video to digital video carried over QAM signals. For a multimedia device, such as a set top box, to retrieve video content from a QAM signal, a multistage process is used. The multistage process for retrieving video content from a QAM signal includes the multimedia device tuning to the correct QAM signal, then navigating the MPEG protocol to find the correct video and audio streams within the QAM. After finding the correct streams, the device waits until the beginning of a group of pictures to begin decoding the video signal. Once the device has begun decoding the video signal, the device fills a buffer to a sufficient level before beginning to provide video information to the display device to prevent any later delays from resulting in a loss of video on the display. The amount of time for which a user waits to receive video is dependent on the amount of time it takes for the multimedia device to complete each step of the above multistage process.
Technology to deliver video over IP protocols is also being installed in video delivery networks. Using broadband IP networks to deliver video can reduce the amount of time used to access a new program because the program content can be sent at many times the normal playout speed. But video over IP delivery is often restricted to unicast delivery of video programs which can result in prohibitive amounts of network bandwidth consumption during peak usage periods. In various embodiments, systems and methods of this disclosure can operate to improve the slow process of digital video program changes.
In some embodiments, a headend 105 can deliver live television programming (e.g., media streaming in real time from a television channel) to one or more multimedia devices 120 using either QAM Video Transmitters 130 or IP Video Transmission Systems 135. The multimedia device can provide video programming to at least one media player 140. In embodiments, live television can include playback of a record buffer associated with a buffered television channel, pay-per view channels, and other types of content delivered from a headend 105 to one or more media players 140. In embodiments, a headend 105 can deliver live television to one or more media players 140 using a fragmented linear video delivery in real time from a television channel.
In embodiments, a customer may access a live television stream with a traditional set top box comprising a multimedia device 120 accessing QAM video streams transmitted by a QAM modulator in the headend 105 for an embedded media player 140 that in turn passes the video content to a television set. In embodiments, a customer may access a live television stream with an IP video set top box comprising a multimedia device 120 accessing fragmented video delivered over IP from a CMTS in the headend 105 for an embedded media player 140 that in turn passes the video content to the television set. In embodiments, other broadband access networks, such as fiber to the home, may utilize other equipment to deliver fragmented IP video. It should be understood that other multimedia devices, such as a DSL gateway, may receive QAM video streams or fragmented video streams.
It should be understood that fragmented video sources are generally not constrained by the bit rate of the video stream. A fragment of a video stream may be sent at any rate supported by the fragmented video source and the IP interface. In contrast, linear streaming video sources are generally constrained to the bit rate of the video stream.
In embodiments, linear video content from one or more streaming video source(s) 110 of
In embodiments, linear fragmented content from one or more linear fragmented video source(s) 115 of
In embodiments, a control module 205 can receive video content from the one or more tuners 200 or an IP interface 215. In embodiments, the control module 205 can instruct the one or more tuners 200 to tune to a specific channel. For example, the control module 205 can instruct a tuner 200 to tune to a channel designated for live viewing by a customer. As another example, the control module 205 can request the linear fragmented video source 115 of
In embodiments, a control module 205 can receive video content from an IP interface 215. The control module 205 can convert the fragmented video stream to a traditional Motion Picture Experts Group (MPEG) transport stream for communicating with a media player 140. In embodiments, the control module 205 can relate a video fragment with a program timestamp to a linear streaming program timestamp.
In embodiments, when a control module 205 receives a request to change programs or to initiate a new viewing session, the control module can determine if the new program is available via QAM delivery, IP delivery or both. In embodiments, the control module 205 may consider if the requested program is already available to the control module because of a previous request or if this is the first request for the program. In embodiments, the control module 205 can switch between program streams delivered by QAM or IP as it decides to forward content to a media player 140. For example, digital video is encoded in segments called Group of Pictures (GoP). The control module 205 may elect to stream data from a GoP delivered over the IP interface to a media player 140 until the tuner 200 can provide the next GoP in time for the media player's consumption. In embodiments, the control module 205 may request at least one fragment from the fragmented video source 115 of
In embodiments, control signals can be communicated from a remote control device 330 to a control signal interface 310. The control signals can operate to provide requests from a customer to the video display control module 300 which can communicate with the multimedia device 120 using the multimedia device interface 320. The control module 205 of
In embodiments, a subscriber can initiate channel or program selection using the remote control 330. For example, when a subscriber requests a program change, that request is passed through the control signal interface to the video display control module. The video display control module communicates with the control module in the multimedia device 120 through the multimedia device interface. Within the multimedia device 120, the control module may initiate two parallel processes, requesting one or more fragments of the requested program from the linear fragmented video source as well as directing a tuner to access the requested channel. A subscriber will see the requested program begin when the re-formatted fragment reaches the media player 140. The subscriber's video feed can switch seamlessly to the tuner version when the tuning process has completed.
At 410, the multimedia device can receive a request to tune to a new program from a user and initiate both a QAM tuning process as well as requesting at least one fragment from the new program. For example, the user can use an input device (e.g., remote control 330 of
At 420, the multimedia device can begin the process to retrieve the requested program from a QAM transmission. It will be appreciated by those skilled in the relevant art that the process for retrieving the requested program from a QAM transmission may include various steps. The multimedia device may use narrow band tuners, wideband tuners or full band capture tuners as well as other circuitry that is part of the process for tuning to a QAM video channel to access the video program material. For example, a tuner/demodulator system can gain QAM lock, then MPEG packet synchronization. After that point, the MPEG transport stream may be recovered and the MPEG table data may be analyzed to identify the particular program elementary streams.
At 425, the multimedia device completes the tuning process and has an MPEG stream available for use.
At 430, the multimedia device requests one or more fragments that represent video of the requested program. Various IP protocols may be used to request fragments within a fragmented video stream. In embodiments, the multimedia device may use any protocol that can provide specific fragments of a specific program upon request. The one or more fragments can be requested via an IP interface (e.g., IP interface 215 of
At 435, the multimedia device receives the requested fragment(s) through an IP connection from a linear fragmented video source (e.g., linear fragmented video source 115 of
At 440, the multimedia device may reformat the fragments into an MPEG transport stream, mimicking the format that a program is delivered in from a QAM transmission. A media player may be able to receive program information in any one or more of a variety of formats, or it may be limited to receiving program information in MPEG transport streams.
At 450, the multimedia device can provide the requested program to the requesting media player. In embodiments, the multimedia device may be a gateway and the media player may be an IP set top box. Alternatively, the multimedia device and the media player may both be components within a single set top box.
At 460, the determination may be made whether step 450 has been executed and the media player is using the fragment-sourced program content. The determination whether step 450 has been executed and the media player is using the fragment-sourced program content may be made, for example, by the multimedia device. If the multimedia device's IP interface connects to a broadband access network, the process steps of 430 through 450 are generally faster than the process steps of 420 through 425. If step 450 has completed successfully before step 425, then the process continues to step 470. If step 425 has completed before step 450, then the process continues to step 480.
At 470, the multimedia device determines an appropriate cutover point from the fragment-based stream of step 450 to the QAM-based stream of step 425. In embodiments, the seamless switchover can be between GoPs, or coordinated in a variety of other ways.
At 480, the multimedia device switches the media player to the QAM-sourced stream. Switching the media player to the QAM-sourced stream can be facilitated utilizing the seamless cutover point determined in step 470. If step 460 determined the media player was not receiving the requested program stream, then the step of switching will be simplified to directing the requested QAM-based program stream to the media player.
The memory 520 can store information within the hardware configuration of the device 500. In one implementation, the memory 520 can be a computer-readable medium. In one implementation, the memory 520 can be a volatile memory unit. In another implementation, the memory 520 can be a non-volatile memory unit.
In embodiments, the storage device 530 can be capable of providing mass storage for the device 500. In one implementation, the storage device 530 can be a computer-readable medium. In various different implementations, the storage device 530 can, for example, include a hard disk device, an optical disk device, flash memory or some other large capacity storage device. In embodiments, the storage device 530 can be a DVR or PVR.
The input/output device 540 can provide input/output operations for the device 500. In embodiments, the input/output device can include driver devices configured to receive input data from and send output data to a media player 140. In embodiments, the input/output device can include driver devices configured to receive input data from and send output data to a headend 105. In another implementation, the input/output device can include driver devices configured to receive input data from and send output data to a plurality of dependent set-top boxes or multimedia players 140.
Those skilled in the art will appreciate that the invention improves user experience when changing programs or beginning a new viewing session. Moreover, the invention improves the flexibility of the video delivery system by allowing multiple video delivery mechanisms to be advantageously utilized.
The methods, systems, and apparatuses described in this disclosure enable more rapid program change than a simple digital QAM set top box can achieve alone. Moreover, the subject matter of this disclosure enables efficient use of the continuing presence of QAM transmission of popular video programming. In embodiments, a multimedia device, such as a gateway, may utilize multiple transmission methods to provide rapid channel change performance to connected media players, such as IP set top boxes. Further, in embodiments, a single device can include a multimedia device as well as a media player and utilize this method of rapid program change.
The subject matter of this disclosure, and components thereof, can be realized by instructions that upon execution cause one or more processing devices to carry out the processes and functions described above. Such instructions can, for example, comprise interpreted instructions, such as script instructions, e.g., JavaScript or ECMAScript instructions, or executable code, or other instructions stored in a computer readable medium.
Implementations of the subject matter and the functional operations described in this specification can be provided in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described in this specification can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a tangible program carrier for execution by, or to control the operation of, data processing apparatus. The tangible program carrier can be a computer readable medium. The computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, or a combination of one or more of them.
The term “system processor” encompasses all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The system processor can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this specification are performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output thereby tying the process to a particular machine (e.g., a machine programmed to perform the processes described herein). The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The elements of a computer typically include a processor for performing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. However, a computer need not have such devices. Moreover, a computer can be embedded in another device, e.g., a mobile communications device, a telephone, a cable modem, a set-top box, a mobile audio or video player, or a game console, to name just a few.
Computer readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
To provide for interaction with a user, embodiments of the subject matter described in this specification can be operable to interface with a computing device having a display, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. In embodiments, a remote control (e.g., a device using infrared or radio frequency signals) can be used to provide for interaction with a user. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any invention or of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. Certain features that are described in this specification in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Particular embodiments of the subject matter described in this specification have been described. Other embodiments are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results, unless expressly noted otherwise. As one example, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In embodiments, multitasking and parallel processing may be advantageous.