A client device receives a broadcast content signal containing an interactive identifier over a managed network at a client device. The interactive identifier may be a trigger that is included in a header or embedded within the digital video data. The trigger may have a temporal component, wherein the trigger can expire after a certain period of time. In response to identification of the trigger, the client device sends a user request for interactive content over an unmanaged network. For example, the managed network may be a one-way satellite television network, IP-television network or cable television network and the unmanaged network may be the Internet. The client device switches between receiving data from the managed network to receiving data from the unmanaged network.
|
13. A method of adapting to varying conditions in the reception of interactive content over an unmanaged network in a client decoding device associated with a user, the interactive content having a video component and an audio component, the client decoding device receiving broadcast video content over a managed network, the method comprising:
receiving, in the client decoding device from the unmanaged network, a data stream that includes (i) the audio component of the interactive content, wherein the audio component is encoded according to an unadjusted audio encoding bitrate, and (ii) a series of video frames that comprise the video component of the interactive content, wherein the series of video frames is automatically composited with the broadcast video content in a frequency domain, and encoded according to an adjusted video encoding bitrate;
determining a receiving bandwidth at which the data stream is received in the client decoding device;
demultiplexing the video component of the interactive content and the audio component of the interactive content from the data stream;
simulating a playback of the audio component to determine the receiving bandwidth, wherein the receiving bandwidth is determined using a comparison between a number of audio frames in the audio buffer as a function of time and a fixed value that represents an expected audio bandwidth;
adjusting a size of an audio buffer using the determined receiving bandwidth, and
decoding the audio component and the video component in the client decoding device at a bitrate based on the simulation.
1. A method of transmitting, over an unmanaged network, interactive content to a client decoding device that is configured to receive the interactive content over the unmanaged network and to receive broadcast video content over a managed network, the method comprising:
receiving a request to provide, over the unmanaged network, a first interactive service to the client decoding device, wherein the first interactive service provides first interactive content that includes a first video component, a first audio component, and a first interactive user-interface element;
compositing, in a frequency domain, the first video component of the requested first interactive content with the broadcast video content to form a series of video frames;
encoding a first plurality of the video frames according to a video encoding bitrate, thereby forming a first portion of encoded video content;
transmitting, over the unmanaged network, the first portion of the encoded video content and a first portion of the first audio component of the first interactive content to the client decoding device;
determining a transmission bandwidth over the unmanaged network;
determining, using one or more business rules, whether the determined transmission bandwidth meets first criteria for the first interactive service;
in accordance with a determination that the determined transmission bandwidth meets the first criteria for the first interactive service:
adjusting the video encoding bitrate according to the determined transmission bandwidth;
encoding a second plurality of the video frames according to the adjusted video encoding bitrate for the first video component, thereby forming a second portion of encoded video content; and
transmitting, over the unmanaged network, the second portion of encoded video content to the client decoding device; and,
in accordance with a determination that the bandwidth requirement does not meet the first bandwidth criteria for the first interactive service:
using the determined transmission bandwidth and the one or more business rules to determine a plurality of alternative interactive services, wherein:
the determined transmission bandwidth meets second criteria, distinct from the first criteria, for each respective alternative interactive service of the plurality of alternative interactive services, and
each respective alternative interactive service of the plurality of alternative interactive services includes respective interactive content that includes a respective video component, a respective audio component, and a respective interactive user-interface element.
2. The method according to
3. The method according to
4. The method according to
5. The method according to
6. The method according to
7. The method according to
8. The method according to
9. The method according to
10. The method according to
dropping a first frame type,
adding a first frame type,
delaying transmission of a second frame type that is distinct from the first frame type, or
ceasing to delay transmission of the second frame type that is distinct from the first frame type.
11. The method according to
12. The method according to
when the determined bandwidth becomes less than a minimum bandwidth associated with the first interactive service, transmitting to the client decoding device, over the unmanaged network, a service unavailable content.
14. The method according to
15. The method according to
16. The method according to
18. The method according to
19. The method according to
20. The method according to
21. The method according to
after determining the plurality of alternative interactive services, causing the client decoding device to display a menu including at least a subset of the plurality of alternative interactive services.
22. The method according to
23. The method according to
24. The method according to
25. The method according to
26. The method of
using the one or more business rules to determine a selected alternative interactive service from the plurality of alternative interactive services; and
transmitting the selected alternative interactive service to the client decoding device.
|
This application is a continuation-in-part of U.S. application Ser. No. 12/489,017 filed Jun. 22, 2009 entitled “Providing Television Broadcasts over a Managed Network and Interactive Content over an Unmanaged Network to a Client Device,” the full disclosure of which is incorporated herein by reference.
Application Ser. No. 12/489,017 is a continuation-in-part of U.S. application Ser. No. 12/008,697 filed Jan. 11, 2008 entitled “Interactive Encoded Content System including Object Models for Viewing on a Remote Device” which itself claims priority from Application No. 60/884,773, filed Jan. 12, 2007, Application No. 60/884,744, filed Jan. 12, 2007, and Application No. 60/884,772, filed Jan. 12, 2007, the full disclosures of which are all hereby incorporated herein by reference.
Application Ser. No. 12/489,017 is also a continuation-in-part of U.S. patent application Ser. No. 12/008,722 filed on Jan. 11, 2008 entitled “MPEG Objects and Systems and Methods for Using MPEG Objects”, which itself claims priority from U.S. provisional application Ser. No. 60/884,773, filed Jan. 12, 2007, Ser. No. 60/884,744, filed Jan. 12, 2007, and Ser. No. 60/884,772, filed Jan. 12, 2007, the full disclosures of which are all hereby incorporated herein by reference.
Application Ser. No. 12/489,017 also claims priority from U.S. provisional patent application No. 61/133,102 filed on Jun. 25, 2008 having the title “Providing Television Broadcasts over a Managed Network and Interactive Content over an Unmanaged Network to a Client Device”, which is incorporated by reference herein in its entirety.
The present invention relates to systems and methods for providing interactive content to a remote device and more specifically to systems and methods employing both a managed and an unmanaged network, where the unmanaged network has a high latency and high bandwidth variability.
In cable television systems, the cable head-end transmits content to one or more subscribers wherein the content is transmitted in an encoded form. Typically, the content is encoded as digital MPEG video and each subscriber has a set-top box or cable card that is capable of decoding the MPEG video stream. Beyond providing linear content, cable providers can now provide interactive content, such as web pages, walled-garden content, video games, voice-over-IP (VOIP) telephony services that may include video, interactive catalogs and streaming delivery of audiovisual content including movies, and the like. As the Internet has become more dynamic, including video content on web pages and requiring applications or scripts for decoding the video content, cable providers have adapted to allow subscribers the ability to view these dynamic web pages. In order to transmit a dynamic web page to a requesting subscriber in encoded form, the cable head end retrieves the requested web page and renders the web page. Thus, the cable headend must first decode any encoded content that appears within the dynamic webpage. For example, if a video is to be played on the webpage, the headend must retrieve the encoded video and decode each frame of the video. The cable headend then renders each frame to form a sequence of bitmap images of the Internet web page. Thus, the web page can only be composited together if all of the content that forms the web page is first decoded. Once the composite frames are complete, the composited video is sent to an encoder, such as an MPEG encoder to be re-encoded. The compressed MPEG video frames are then sent in an MPEG video stream to the user's set-top box.
Creating such composite encoded video frames in a cable television network requires intensive CPU and memory processing, since all encoded content must first be decoded, then composited, rendered, and re-encoded. In particular, the cable headend must decode and re-encode all of the content in real-time. Thus, allowing users to operate in an interactive environment with dynamic web pages and other dynamic content is quite costly to cable operators because of the required processing. Additionally, such systems have the additional drawback that the image quality is degraded due to re-encoding of the encoded video.
Satellite television systems suffer from the problem that they are limited to one-way transmissions. Thus, satellite television providers can not offer “on-demand” or interactive services. As a result, satellite television networks are limited to providing a managed network for their subscribers and can not provide user requested access to interactive information. Other communication systems cannot provide interactive content, for example, cable subscribers that have one-way cable cards or cable systems that do not support two-way communications.
The related U.S. patent application Ser. No. 12/489,017 teaches a system and methods for providing one-way broadcast content over a managed network and two-way interactive services over an unmanaged network. However, unmanaged networks may include higher latencies, more dropped packets, and more variable bandwidths than managed networks, precisely because they are not managed by a television operator. Such higher latencies, error rates, and bandwidth variability are detrimental to interactive services. To provide an optimal subscriber experience, many interactive services require high video frame rates and high quality audio, as well as very low data error rates and very low latency, while transmitting across an unmanaged network environment that experiences highly variable transmission conditions. To complicate matters, television providers may wish to save money by reducing the complexity of subscriber client set-top boxes or cable cards, which are produced in much higher numbers than server computers located at a cable head-end. Such “thin” clients may have reduced computing power, and must provide an optimal subscriber experience within a very constrained hardware and software environment.
Methods are known in the prior art to transmit data between computers connected by an unreliable network. One example method uses the User Datagram Protocol (UDP), as first formally defined in Postel, J., Request for Comments 768: User Datagram Protocol (August 1980) (“RFC 768”). UDP provides a procedure for application programs on different computers to send data to each other with a minimum of protocol mechanism. Traditionally, providers of audiovisual content have used UDP for transmitting non-interactive content, such as streaming video, because of the very low latency and low overhead of UDP. However, more recently, security concerns have prompted a large and growing number of television subscribers to place their client devices behind a network firewall. Firewalls may be difficult for subscribers to configure, especially to allow certain UDP connections from a content provider and not other, harmful connections. Further, UDP does not provide reliable data transmission, causing “skips” or other artifacts in transmitted audio or video, and therefore does not meet the requirements for providing an optimal user experience.
The Transmission Control Protocol (TCP), as first formally defined in Information Sciences Institute, Request for Comments 793: Transmission Control Protocol (September 1981) (“RFC 793”), does provide reliable data transmission, but providing interactive services over a TCP network to a thin client is problematic. TCP provides a number of high-level services that UDP does not, such as end-to-end connections, and packet reordering and retransmission. These additional services consume valuable computing resources that are in high demand on a thin client device and introduce retransmission latency into the communication channel. Another problem is that transmitting full-motion video, such as that found in a streaming movie, consumes a great deal of network bandwidth. Some special-purpose systems, such as networked 3D video games, combat this problem by transmitting only game data to a client device and having the client device render the virtual environment. Such solutions are inapplicable to general video applications. Further, the calculation and rendering processes required on the client device consume even more computing resources than simple video rendering alone, making them unsuitable on a very thin client, even for playing video games. Thus, while TCP has several advantages over UDP for transmission of interactive services to subscribers, the thin client requirement makes the provision of these services difficult.
Embodiments of the present invention address the limitations of the prior art by enabling computationally simple bitrate detection and adaptive control over transmitted content. These features allow a television system operator to provide interactive services having a high quality of experience to its subscribers who have inexpensive, thin clients.
A first embodiment of the invention includes a method of providing reliable transmission of interactive content over an unmanaged network to a client decoding device associated with a user. The interactive content has both a video component and an audio component. The client decoding device receives broadcast video content over a managed network in addition to receiving the interactive content over the unmanaged network, and is capable of switching between the broadcast video content and the interactive content for output to a display device.
The method begins with receiving a request to provide the interactive content to the client decoding device over the unmanaged network. After the request is received, the method continues with encoding a first plurality of frames of the interactive video content according to a video encoding bitrate, thereby forming a first portion of encoded interactive content, and transmitting the first portion of encoded interactive content to the client decoding device, over the unmanaged network, using a reliable data transmission protocol. Next, the method includes determining a transmission bandwidth of the first portion over the unmanaged network and adjusting the video encoding bitrate according to the transmission bandwidth. Once these adjustments are made, the method continues with encoding a second portion of the interactive content according to the adjusted video encoding bitrate for the video component and the unadjusted audio encoding bitrate for the audio component, thereby forming a second portion of encoded interactive content, and transmitting the second portion of encoded interactive content to the client decoding device, over the unmanaged network, using the reliable data transmission protocol.
In some related embodiments, the unmanaged network includes at least a portion of the Internet, and the managed network may include a satellite network, a cable television network, or an IP television network. Both networks may operate over a single communications link. The interactive content may be encoded according to an MPEG standard. The reliable data transmission protocol may include TCP. Determining the transmission bandwidth may include determining the quantity of data in a transmission buffer as a function of time, and adjusting the video encoding bitrate may include proportionally adjusting the video encoding bitrate according to the determined transmission bandwidth, and/or its time derivatives. Alternately, a video frame rate, a pattern of types for successive video frames, or a video data quantization value may be adjusted. Also, the client decoding device may switch its output from the broadcast video content to the interactive content after the second portion of encoded interactive content has been transmitted.
Further, when the determined bandwidth becomes less than a minimum bandwidth associated with the interactive content, a related method may include transmitting to the client decoding device, over the unmanaged network, using the reliable data transmission protocol, a service unavailable content instead of the encoded interactive content.
Another related method includes forming a list that includes a plurality of interactive services, each providing interactive content according to a minimum bandwidth, and when the determined bandwidth becomes less than a minimum bandwidth associated with the interactive content, selecting from the list an interactive service according to a business rule, then transmitting to the client decoding device, over the unmanaged network, using the reliable data transmission protocol, encoded interactive content provided by the selected interactive service. The business rule may include a rule pertaining to user data associated with the user, and selecting the interactive service may include selecting according to the user data. In these various embodiments, some of the video frames may be stitched together in the encoded domain from a plurality of video sources.
In a second embodiment there is provided a method, complimentary to the first embodiment, of adapting to varying conditions in the reception of interactive content over an unmanaged network in a client decoding device associated with a user. The interactive content has a video component and an audio component, and the client decoding device receives broadcast video content over a managed network, as before. The method includes receiving the interactive content in the client decoding device from the unmanaged network using a reliable data transmission protocol, including determining a receiving bandwidth at which the interactive content is received. Once reception of the interactive content has begun, the method includes demultiplexing the received interactive content into the video component and the audio component, simulating a playback of the audio component based on the receiving bandwidth, and decoding the audio component and the video component in the client decoding device at a bitrate based on the simulation.
Simulating the playback may include determining the quantity of data in an audio buffer as a function of time. The decoding bitrate may be proportional to the receiving bandwidth. The method may further include increasing or decreasing a size of an audio buffer as a function of the receiving bandwidth. In a related embodiment, the method includes receiving a trigger, either in the client decoding device over the managed network, or in a headend, the trigger causing the client decoding device to request the interactive content over the unmanaged network.
The foregoing features of the invention will be more readily understood by reference to the following detailed description, taken with reference to the accompanying drawings, in which:
As used in the following detailed description and in the appended claims the term “region” shall mean a logical grouping of MPEG (Motion Picture Expert Group) slices that are either contiguous or non-contiguous. When the term MPEG is used it shall refer to all variants of the MPEG standard including MPEG-2 and MPEG-4. The present invention as described in the embodiments below provides an environment for interactive MPEG content and communications between a processing office and a client device having an associated display, such as a television. Although the present invention specifically references the MPEG specification and encoding, principles of the invention may be employed with other encoding techniques that are based upon block-based transforms. As used in the following specification and appended claims, the terms encode, encoded, and encoding shall refer to the process of compressing a digital data signal and formatting the compressed digital data signal to a protocol or standard. Encoded video data can be in any state other than a spatial representation. For example, encoded video data may be transform coded, quantized, and entropy encoded or any combination thereof. Therefore, data that has been transform coded will be considered to be encoded.
Although the present application refers to the display device as a television, the display device may be a cell phone, a Personal Digital Assistant (PDA) or other device that includes a display. A client device including a decoding device, such as a set-top box that can decode MPEG content, is associated with the display device of the user. In certain embodiments, the decoder may be part of the display device. The interactive MPEG content is created in an authoring environment allowing an application designer to design the interactive MPEG content creating an application having one or more scenes from various elements including video content from content providers and linear broadcasters. An application file is formed in an Active Video Markup Language (AVML). The AVML file produced by the authoring environment is an XML-based file defining the video graphical elements (i.e. MPEG slices) within a single frame/page, the sizes of the video graphical elements, the layout of the video graphical elements within the page/frame for each scene, links to the video graphical elements, and any scripts for the scene. In certain embodiments, an AVML file may be authored directly as opposed to being authored in a text editor or generated by an authoring environment. The video graphical elements may be static graphics, dynamic graphics, or video content. It should be recognized that each element within a scene is really a sequence of images and a static graphic is an image that is repeatedly displayed and does not change over time. Each of the elements may be an MPEG object that can include both MPEG data for graphics and operations associated with the graphics. The interactive MPEG content can include multiple interactive MPEG objects within a scene with which a user can interact. For example, the scene may include a button MPEG object that provides encoded MPEG data forming the video graphic for the object and also includes a procedure for keeping track of the button state. The MPEG objects may work in coordination with the scripts. For example, an MPEG button object may keep track of its state (on/off), but a script within the scene will determine what occurs when that button is pressed. The script may associate the button state with a video program so that the button will indicate whether the video content is playing or stopped. MPEG objects always have an associated action as part of the object. In certain embodiments, the MPEG objects, such as a button MPEG object, may perform actions beyond keeping track of the status of the button. In such, embodiments, the MPEG object may also include a call to an external program, wherein the MPEG object will access the program when the button graphic is engaged. Thus, for a play/pause MPEG object button, the MPEG object may include code that keeps track of the state of the button, provides a graphical overlay based upon a state change, and/or causes a video player object to play or pause the video content depending on the state of the button.
Once an application is created within the authoring environment, and an interactive session is requested by a requesting client device, the processing office assigns a processor for the interactive session.
The assigned processor operational at the processing office runs a virtual machine and accesses and runs the requested application. The processor prepares the graphical part of the scene for transmission in the MPEG format. Upon receipt of the MPEG transmission by the client device and display on the user's display, a user can interact with the displayed content by using an input device in communication with the client device. The client device sends input requests from the user through a communication network to the application running on the assigned processor at the processing office or other remote location. In response, the assigned processor updates the graphical layout based upon the request and the state of the MPEG objects hereinafter referred to in total as the application state. New elements may be added to the scene or replaced within the scene or a completely new scene may be created. The assigned processor collects the elements and the objects for the scene, and either the assigned processor or another processor processes the data and operations according to the object(s) and produces the revised graphical representation in an MPEG format that is transmitted to the transceiver for display on the user's television. Although the above passage indicates that the assigned processor is located at the processing office, the assigned processor may be located at a remote location and need only be in communication with the processing office through a network connection. Similarly, although the assigned processor is described as handling all transactions with the client device, other processors may also be involved with requests and assembly of the content (MPEG objects) of the graphical layout for the application.
The content provider 160 may encode the video content as MPEG video/audio or the content may be in another graphical format (e.g. JPEG, BITMAP, H263, H264, VC-1 etc.). The content may be subsequently groomed and/or scaled in a Groomer/Scaler 190 to place the content into a preferable encoded MPEG format that will allow for stitching. If the content is not placed into the preferable MPEG format, the processing office will groom the format when an application that requires the content is requested by a client device. Linear broadcast content 170 from broadcast media services, like content from the content providers, will be groomed. The linear broadcast content is preferably groomed and/or scaled in Groomer/Scaler 180 that encodes the content in the preferable MPEG format for stitching prior to passing the content to the processing office.
The video content from the content producers 160 along with the applications created by application programmers are distributed through a video content distribution network 150 and are stored at distribution points 140. These distribution points are represented as the proxy/cache within
An end user of the system can request an interactive session by sending a command through the client device 110, such as a set-top box, to a processing office 105. In
The virtual machine 106 communicates its address to the client device 110 and an interactive session is established. The user can then request presentation of an interactive application (AVML) through the client device 110. The request is received by the virtual machine 106 and in response, the virtual machine 106 causes the AVML file to be retrieved from the proxy/cache 140 and installed into a memory cache 107 that is accessible by the virtual machine 106. It should be recognized that the virtual machine 106 may be in simultaneous communication with a plurality of client devices 110 and the client devices may be different device types. For example, a first device may be a cellular telephone, a second device may be a set-top box, and a third device may be a personal digital assistant wherein each device access the same or a different application.
In response to a request for an application, the virtual machine 106 processes the application and requests elements and MPEG objects that are part of the scene to be moved from the proxy/cache into memory 107 associated with the virtual machine 106. An MPEG object includes both a visual component and an actionable component. The visual component may be encoded as one or more MPEG slices or provided in another graphical format. The actionable component may be storing the state of the object, may include performing computations, accessing an associated program, or displaying overlay graphics to identify the graphical component as active. An overlay graphic may be produced by a signal being transmitted to a client device wherein the client device creates a graphic in the overlay plane on the display device. It should be recognized that a scene is not a static graphic, but rather includes a plurality of video frames wherein the content of the frames can change over time.
The virtual machine 106 determines based upon the scene information, including the application state, the size and location of the various elements and objects for a scene. Each graphical element may be formed from contiguous or non-contiguous MPEG slices. The virtual machine keeps track of the location of all of the slices for each graphical element. All of the slices that define a graphical element form a region. The virtual machine 106 keeps track of each region. Based on the display position information within the AVML file, the slice positions for the elements and background within a video frame are set. If the graphical elements are not already in a groomed format, the virtual machine passes that element to an element renderer. The renderer renders the graphical element as a bitmap and the renderer passes the bitmap to an MPEG element encoder 109. The MPEG element encoder encodes the bitmap as an MPEG video sequence. The MPEG encoder processes the bitmap so that it outputs a series of P-frames. An example of content that is not already pre-encoded and pre-groomed is personalized content. For example, if a user has stored music files at the processing office and the graphic element to be presented is a listing of the user's music files, this graphic would be created in real-time as a bitmap by the virtual machine. The virtual machine would pass the bitmap to the element renderer 108 which would render the bitmap and pass the bitmap to the MPEG element encoder 109 for grooming.
After the graphical elements are groomed by the MPEG element encoder, the MPEG element encoder 109 passes the graphical elements to memory 107 for later retrieval by the virtual machine 106 for other interactive sessions by other users. The MPEG encoder 109 also passes the MPEG encoded graphical elements to the stitcher 115. The rendering of an element and MPEG encoding of an element may be accomplished in the same or a separate processor from the virtual machine 106. The virtual machine 106 also determines if there are any scripts within the application that need to be interpreted. If there are scripts, the scripts are interpreted by the virtual machine 106.
Each scene in an application can include a plurality of elements including static graphics, object graphics that change based upon user interaction, and video content. For example, a scene may include a background (static graphic), along with a media player for playback of audio video and multimedia content (object graphic) having a plurality of buttons, and a video content window (video content) for displaying the streaming video content. Each button of the media player may itself be a separate object graphic that includes its own associated methods.
The virtual machine 106 acquires each of the graphical elements (background, media player graphic, and video frame) for a frame and determines the location of each element. Once all of the objects and elements (background, video content) are acquired, the elements and graphical objects are passed to the stitcher/compositor 115 along with positioning information for the elements and MPEG objects. The stitcher 115 stitches together each of the elements (video content, buttons, graphics, background) according to the mapping provided by the virtual machine 106. Each of the elements is placed on a macroblock boundary and when stitched together the elements form an MPEG video frame. On a periodic basis all of the elements of a scene frame are encoded to form a reference P-frame in order to refresh the sequence and avoid dropped macroblocks. The MPEG video stream is then transmitted to the address of client device through the down stream network. The process continues for each of the video frames. Although the specification refers to MPEG as the encoding process, other encoding processes may also be used with this system.
The virtual machine 106 or other processor or process at the processing office 105 maintains information about each of the elements and the location of the elements on the screen. The virtual machine 106 also has access to the methods for the objects associated with each of the elements. For example, a media player may have a media player object that includes a plurality of routines. The routines can include, play, stop, fast forward, rewind, and pause. Each of the routines includes code and upon a user sending a request to the processing office 105 for activation of one of the routines, the object is accessed and the routine is run. The routine may be a JAVA-based applet, a script to be interpreted, or a separate computer program capable of being run within the operating system associated with the virtual machine.
The processing office 105 may also create a linked data structure for determining the routine to execute or interpret based upon a signal received by the processor from the client device associated with the television. The linked data structure may be formed by an included mapping module. The data structure associates each resource and associated object relative to every other resource and object. For example, if a user has already engaged the play control, a media player object is activated and the video content is displayed. As the video content is playing in a media player window, the user can depress a directional key on the user's remote control. In this example, the depression of the directional key is indicative of pressing a stop button. The transceiver produces a directional signal and the assigned processor receives the directional signal. The virtual machine 106 or other processor at the processing office 105 accesses the linked data structure and locates the element in the direction of the directional key press. The database indicates that the element is a stop button that is part of a media player object and the processor implements the routine for stopping the video content. The routine will cause the requested content to stop. The last video content frame will be frozen and a depressed stop button graphic will be interwoven by the stitcher module into the frame. The routine may also include a focus graphic to provide focus around the stop button. For example, the virtual machine can cause the stitcher to enclose the graphic having focus with a boarder that is 1 macroblock wide. Thus, when the video frame is decoded and displayed, the user will be able to identify the graphic/object that the user can interact with. The frame will then be passed to a multiplexor and sent through the downstream network to the client device. The MPEG encoded video frame is decoded by the client device displayed on either the client device (cell phone, PDA) or on a separate display device (monitor, television). This process occurs with a minimal delay. Thus, each scene from an application results in a plurality of video frames each representing a snapshot of the media player application state.
The virtual machine 106 will repeatedly receive commands from the client device and in response to the commands will either directly or indirectly access the objects and execute or interpret the routines of the objects in response to user interaction and application interaction model. In such a system, the video content material displayed on the television of the user is merely decoded MPEG content and all of the processing for the interactivity occurs at the processing office and is orchestrated by the assigned virtual machine. Thus, the client device only needs a decoder and need not cache or process any of the content.
It should be recognized that through user requests from a client device, the processing office could replace a video element with another video element. For example, a user may select from a list of movies to display and therefore a first video content element would be replaced by a second video content element if the user selects to switch between two movies. The virtual machine, which maintains a listing of the location of each element and region forming an element, can easily replace elements within a scene creating a new MPEG video frame wherein the frame is stitched together including the new element in the stitcher 115.
Authoring Environment
The authoring environment includes a graphical editor as shown in
As shown in
When a user selects an application through a client device, the processing office will stitch together the elements in accordance with the layout from the graphical editor of the authoring environment. The output of the authoring environment includes an Active Video Mark-up Language file (AVML) The AVML file provides state information about multi-state elements such as a button, the address of the associated graphic, and the size of the graphic. The AVML file indicates the locations within the MPEG frame for each element, indicates the objects that are associated with each element, and includes the scripts that define changes to the MPEG frame based upon user's actions. For example, a user may send an instruction signal to the processing office and the processing office will use the AVML file to construct a set of new MPEG frames based upon the received instruction signal. A user may want to switch between various video elements and may send an instruction signal to the processing office. The processing office will remove a video element within the layout for a frame and will select the second video element causing the second video element to be stitched into the MPEG frame at the location of the first video element. This process is described below.
AVML File
The application programming environment outputs an AVML file. The AVML file has an XML-based syntax. The AVML file syntax includes a root object <AVML>. Other top level tags include <initialscene> that specifies the first scene to be loaded when an application starts. The <script> tag identifies a script and a <scene> tag identifies a scene. There may also be lower level tags to each of the top level tags, so that there is a hierarchy for applying the data within the tag. For example, a top level stream tag may include <aspect ratio> for the video stream, <video format>, <bit rate>, <audio format> and <audio bit rate>. Similarly, a scene tag may include each of the elements within the scene. For example, <background> for the background, <button> for a button object, and <static image> for a still graphic. Other tags include <size> and <pos> for the size and position of an element and may be lower level tags for each element within a scene. An example of an AVML file is provided in
Groomer
The process of stitching is described below and can be performed in a much more efficient manner if the elements have been groomed first.
Grooming removes some of the interdependencies present in compressed video. The groomer will convert I and B frames to P frames and will fix any stray motion vectors that reference a section of another frame of video that has been cropped or removed. Thus, a groomed video stream can be used in combination with other groomed video streams and encoded still images to form a composite MPEG video stream. Each groomed video stream includes a plurality of frames and the frames can be can be easily inserted into another groomed frame wherein the composite frames are grouped together to form an MPEG video stream. It should be noted that the groomed frames may be formed from one or more MPEG slices and may be smaller in size than an MPEG video frame in the MPEG video stream.
As shown, video element 420 is inserted within the background video frame 410 (also for example only; this element could also consist of multiple slices per row). If a macroblock within the original video frame 410 references another macroblock in determining its value and the reference macroblock is removed from the frame because the video image 420 is inserted in its place, the macroblocks value needs to be recalculated. Similarly, if a macroblock references another macroblock in a subsequent frame and that macroblock is removed and other source material is inserted in its place, the macroblock values need to be recalculated. This is addressed by grooming the video 430. The video frame is processed so that the rows contain multiple slices some of which are specifically sized and located to match the substitute video content. After this process is complete, it is a simple task to replace some of the current slices with the overlay video resulting in a groomed video with overlay 440. The groomed video stream has been specifically defined to address that particular overlay. A different overlay would dictate different grooming parameters. Thus, this type of grooming addresses the process of segmenting a video frame into slices in preparation for stitching. It should be noted that there is never a need to add slices to the overlay element. Slices are only added to the receiving element, that is, the element into which the overlay will be placed. The groomed video stream can contain information about the stream's groomed characteristics. Characteristics that can be provided include: 1. the locations for the upper left and lower right corners of the groomed window. 2. The location of upper left corner only and then the size of the window. The size of the slice accurate to the pixel level.
There are also two ways to provide the characteristic information in the video stream. The first is to provide that information in the slice header. The second is to provide the information in the extended data slice structure. Either of these options can be used to successfully pass the necessary information to future processing stages, such as the virtual machine and stitcher.
TABLE 1
Picture Header Information
#
Name
Value
A
Picture Coding Type
P-Frame
B
Intra DC Precision
Match stitcher setting
C
Picture structure
Frame
D
Frame prediction frame DCT
Match stitcher setting
E
Quant scale type
Match stitcher setting
F
Intra VLC format
Match stitcher setting
G
Alternate scan
Normal scan
H
Progressive frame
Progressive scan
Next, the slice overhead information 740 must be modified. The parameters to modify are given in the table below.
TABLE 2
Slice Overhead Information
#
Name
Value
A
Quantizer
Will change if there is a “scale type”
Scale Code
change in the picture header.
Next, the macroblock overhead 750 information may require modification. The values to be modified are given in the table below.
TABLE 3
Macroblock Information
#
Name
Value
A
Macroblock type
Change the variable length
code from that for an I
frame to that for a P frame)
B
DCT type
Set to frame if not already
C
Concealment
Removed
motion vectors
Finally, the block information 760 may require modification. The items to modify are given in the table below.
TABLE 4
Block Information
#
Name
Value
A
DCT coefficient values
Require updating if there
were any quantizer changes
at the picture or slice level.
B
DCT coefficient ordering
Need to be reordered if
“alternate scan” was changed
from what it was before.
Once the block changes are complete, the process can start over with the next frame of video.
If the frame type is a B-frame 705, the same steps required for an I-frame are also required for the B-frame. However, in addition, the motion vectors 770 need to be modified. There are two scenarios: B-frame immediately following an I-frame or P-frame, or a B-frame following another B-frame. Should the B-frame follow either an I or P frame, the motion vector, using the I or P frame as a reference, can remain the same and only the residual would need to change. This may be as simple as converting the forward looking motion vector to be the residual.
For the B-frames that follow another B-frame, the motion vector and its residual will both need to be modified. The second B-frame must now reference the newly converted B to P frame immediately preceding it. First, the B-frame and its reference are decoded and the motion vector and the residual are recalculated. It must be noted that while the frame is decoded to update the motion vectors, there is no need to re-encode the DCT coefficients. These remain the same. Only the motion vector and residual are calculated and modified.
The last frame type is the P-frame. This frame type also follows the same path as an I-frame
In addition to updating motion vectors and changing frame types, the groomer may also convert field based encoded macroblocks to frame based encoded macroblocks.
Stitcher
This particular type of encoding is called “slice based encoding”. A slice based encoder/virtual machine is one that is aware of the desired slice structure of the output frame and performs its encoding appropriately. That is, the encoder knows the size of the slices and where they belong. It knows where to leave holes if that is required. By being aware of the desired output slice configuration, the virtual machine provides an output that is easily stitched.
It is also possible for there to be an overlap in the composited video frame. Referring back to
The possibility of different slice sizes requires the compositing function to perform a check of the incoming background and video elements to confirm they are proper. That is, make sure each one is complete (e.g., a full frame), there are no sizing conflicts, etc.
The performance of the stitcher can be improved (build frames faster with less processor power) by providing the stitcher advance information on the frame format. For example, the virtual machine may provide the stitcher with the start location and size of the areas in the frame to be inserted. Alternatively, the information could be the start location for each slice and the stitcher could then figure out the size (the difference between the two start locations). This information could be provided externally by the virtual machine or the virtual machine could incorporate the information into each element. For instance, part of the slice header could be used to carry this information. The stitcher can use this foreknowledge of the frame structure to begin compositing the elements together well before they are required.
The source for the element slices can be any one of a number of options. It can come from a real-time encoded source. It can be a complex slice that is built from separate slices, one having a background and the other having text. It can be a pre-encoded element that is fetched from a cache. These examples are for illustrative purposes only and are not intended to limit the options for element sources.
When a client device sends a request for a mosaic application, the processing office associated with the client device assigns a processor/virtual machine for the client device for the requested mosaic application. The assigned virtual machine constructs the personalized mosaic by compositing the groomed content from the desired channels using a stitcher. The virtual machine sends the client device an MPEG stream that has a mosaic of the channels that the client has requested. Thus, by grooming the content first so that the content can be stitched together, the virtual machines that create the mosaics do not need to first decode the desired channels, render the channels within the background as a bitmap and then encode the bitmap.
An application, such as a mosaic, can be requested either directly through a client device or indirectly through another device, such as a PC, for display of the application on a display associated with the client device. The user could log into a website associated with the processing office by providing information about the user's account. The server associated with the processing office would provide the user with a selection screen for selecting an application. If the user selected a mosaic application, the server would allow the user to select the content that the user wishes to view within the mosaic. In response to the selected content for the mosaic and using the user's account information, the processing office server would direct the request to a session processor and establish an interactive session with the client device of the user. The session processor would then be informed by the processing office server of the desired application. The session processor would retrieve the desired application, the mosaic application in this example, and would obtain the required MPEG objects. The processing office server would then inform the session processor of the requested video content and the session processor would operate in conjunction with the stitcher to construct the mosaic and provide the mosaic as an MPEG video stream to the client device. Thus, the processing office server may include scripts or application for performing the functions of the client device in setting up the interactive session, requesting the application, and selecting content for display. While the mosaic elements may be predetermined by the application, they may also be user configurable resulting in a personalized mosaic.
These additional resources add cost to the system. As a result, the desire is to minimize the number of additional resources that are required to deliver a level of performance to the user that mimics a non-blocking system such as an IP network. Since there is not a one-to-one correspondence between the cable network resources and the users on the network, the resources must be shared. Shared resources must be managed so they can be assigned when a user requires a resource and then freed when the user is finished utilizing that resource. Proper management of these resources is critical to the operator because without it, the resources could be unavailable when needed most. Should this occur, the user either receives a “please wait” message or, in the worst case, a “service unavailable” message.
(1) The Set Top 2609 requests content 2610 from the Controller 2607
(2) The Controller 2607 requests QAM bandwidth 2620 from the SRM 2603
(3) The SRM 2603 checks QAM availability 2625
(4) The SRM 2603 allocates the QAM modulator 2630
(5) The QAM modulator returns confirmation 2635
(6) The SRM 2603 confirms QAM allocation success 2640 to the Controller
(7) The Controller 407 allocates the Session processor 2650
(8) The Session processor confirms allocation success 2653
(9) The Controller 2607 allocates the content 2655
(10) The Controller 2607 configures 2660 the Set Top 2609. This includes:
(11) The Set Top 2609 tunes to the channel 2663
(12) The Set Top 2609 confirms success 2665 to the Controller 2607
The Controller 2607 allocates the resources based on a request for service from a set top box 2609. It frees these resources when the set top or server sends an “end of session”. While the controller 2607 can react quickly with minimal delay, the SRM 2603 can only allocate a set number of QAM sessions per second i.e. 200. Demand that exceeds this rate results in unacceptable delays for the user. For example, if 500 requests come in at the same time, the last user would have to wait 5 seconds before their request was granted. It is also possible that rather than the request being granted, an error message could be displayed such as “service unavailable”.
While the example above describes the request and response sequence for an AVDN session over a cable TV network, the example below describes a similar sequence over an IPTV network. Note that the sequence in itself is not a claim, but rather illustrates how AVDN would work over an IPTV network.
A first issue is the assignment of QAMs 2770 and QAM channels 2775 by the SRM 2720. In particular, the resources must be managed to prevent SRM overload, that is, eliminating the delay the user would see when requests to the SRM 2720 exceed its sessions per second rate.
To prevent SRM “overload”, “time based modeling” may be used. For time based modeling, the Controller 2700 monitors the history of past transactions, in particular, high load periods. By using this previous history, the Controller 2700 can predict when a high load period may occur, for example, at the top of an hour. The Controller 2700 uses this knowledge to pre-allocate resources before the period comes. That is, it uses predictive algorithms to determine future resource requirements. As an example, if the Controller 2700 thinks 475 users are going to join at a particular time, it can start allocating those resources 5 seconds early so that when the load hits, the resources have already been allocated and no user sees a delay.
Secondly, the resources could be pre-allocated based on input from an operator. Should the operator know a major event is coming, e.g., a pay per view sporting event, he may want to pre-allocate resources in anticipation. In both cases, the SRM 2720 releases unused QAM 2770 resources when not in use and after the event.
Thirdly, QAMs 2770 can be allocated based on a “rate of change” which is independent of previous history. For example, if the controller 2700 recognizes a sudden spike in traffic, it can then request more QAM bandwidth than needed in order to avoid the QAM allocation step when adding additional sessions. An example of a sudden, unexpected spike might be a button as part of the program that indicates a prize could be won if the user selects this button.
Currently, there is one request to the SRM 2720 for each session to be added. Instead the controller 2700 could request the whole QAM 2770 or a large part of a single QAM's bandwidth and allow this invention to handle the data within that QAM channel 2775. Since one aspect of this system is the ability to create a channel that is only 1, 2, or 3 Mb/sec, this could reduce the number of requests to the SRM 2720 by replacing up to 27 requests with a single request.
The user will also experience a delay when they request different content even if they are already in an active session. Currently, if a set top 2790 is in an active session and requests a new set of content 2730, the Controller 2700 has to tell the SRM 2720 to de-allocate the QAM 2770, then the Controller 2700 must de-allocate the session processor 2750 and the content 2730, and then request another QAM 2770 from the SRM 2720 and then allocate a different session processor 2750 and content 2730. Instead, the controller 2700 can change the video stream 2755 feeding the QAM modulator 2770 thereby leaving the previously established path intact. There are a couple of ways to accomplish the change. First, since the QAM Modulators 2770 are on a network so the controller 2700 can merely change the session processor 2750 driving the QAM 2770. Second, the controller 2700 can leave the session processor 2750 to set top 2790 connection intact but change the content 2730 feeding the session processor 2750, e.g., “CNN Headline News” to “CNN World Now”. Both of these methods eliminate the QAM initialization and Set Top tuning delays.
Thus, resources are intelligently managed to minimize the amount of equipment required to provide these interactive services. In particular, the Controller can manipulate the video streams 2755 feeding the QAM 2770. By profiling these streams 2755, the Controller 2700 can maximize the channel usage within a QAM 2770. That is, it can maximize the number of programs in each QAM channel 2775 reducing wasted bandwidth and the required number of QAMs 2770. There are three primary means to profile streams: formulaic, pre-profiling, and live feedback.
The first profiling method, formulaic, consists of adding up the bit rates of the various video streams used to fill a QAM channel 2775. In particular, there may be many video elements that are used to create a single video stream 2755. The maximum bit rate of each element can be added together to obtain an aggregate bit rate for the video stream 2755. By monitoring the bit rates of all video streams 2755, the Controller 2700 can create a combination of video streams 2755 that most efficiently uses a QAM channel 2775. For example, if there were four video streams 2755: two that were 16 Mb/sec and two that were 20 Mb/sec then the controller could best fill a 38.8 Mb/sec QAM channel 2775 by allocating one of each bit rate per channel. This would then require two QAM channels 2775 to deliver the video. However, without the formulaic profiling, the result could end up as 3 QAM channels 2775 as perhaps the two 16 Mb/sec video streams 2755 are combined into a single 38.8 Mb/sec QAM channel 2775 and then each 20 Mb/sec video stream 2755 must have its own 38.8 Mb/sec QAM channel 2775.
A second method is pre-profiling. In this method, a profile for the content 2730 is either received or generated internally. The profile information can be provided in metadata with the stream or in a separate file. The profiling information can be generated from the entire video or from a representative sample. The controller 2700 is then aware of the bit rate at various times in the stream and can use this information to effectively combine video streams 2755 together. For example, if two video streams 2755 both had a peak rate of 20 Mb/sec, they would need to be allocated to different 38.8 Mb/sec QAM channels 2775 if they were allocated bandwidth based on their peaks. However, if the controller knew that the nominal bit rate was 14 Mb/sec and knew their respective profiles so there were no simultaneous peaks, the controller 2700 could then combine the streams 2755 into a single 38.8 Mb/sec QAM channel 2775. The particular QAM bit rate is used for the above examples only and should not be construed as a limitation.
A third method for profiling is via feedback provided by the system. The system can inform the controller 2700 of the current bit rate for all video elements used to build streams and the aggregate bit rate of the stream after it has been built. Furthermore, it can inform the controller 2700 of bit rates of stored elements prior to their use. Using this information, the controller 2700 can combine video streams 2755 in the most efficient manner to fill a QAM channel 2775.
It should be noted that it is also acceptable to use any or all of the three profiling methods in combination. That is, there is no restriction that they must be used independently.
The system can also address the usage of the resources themselves. For example, if a session processor 2750 can support 100 users and currently there are 350 users that are active, it requires four session processors. However, when the demand goes down to say 80 users, it would make sense to reallocate those resources to a single session processor 2750, thereby conserving the remaining resources of three session processors. This is also useful in failure situations. Should a resource fail, the invention can reassign sessions to other resources that are available. In this way, disruption to the user is minimized.
The system can also repurpose functions depending on the expected usage. The session processors 2750 can implement a number of different functions, for example, process video, process audio, etc. Since the controller 2700 has a history of usage, it can adjust the functions on the session processors 2700 to meet expected demand. For example, if in the early afternoons there is typically a high demand for music, the controller 2700 can reassign additional session processors 2750 to process music in anticipation of the demand. Correspondingly, if in the early evening there is a high demand for news, the controller 2700 anticipates the demand and reassigns the session processors 2750 accordingly. The flexibility and anticipation of the system allows it to provide the optimum user experience with the minimum amount of equipment. That is, no equipment is idle because it only has a single purpose and that purpose is not required.
As shown in
Within the broadcast content of the broadcast transmission are one or more triggers. A trigger is a designator of possible interactive content. For example, a trigger may accompany an advertisement that is either inserted within the broadcast content or is part of a frame that contains broadcast content. Triggers may be associated with one or more video frames and can be embedded within the header for one or more video frames, may be part of an analog transmission signal, or be part of the digital data depending upon the medium on which the broadcast content is transmitted. In response to the advertisement, a user may use a user input device (not shown), such as a remote control, to request interactive content related to the advertisement. In other embodiments, the trigger may automatically cause an interactive session to begin and the network for receiving content to be switched between a managed and unmanaged network. In response, the client device 2803 switches between receiving the broadcast content 2805 from the satellite network 2800 and receiving and transmitting content via an unmanaged network 2806, such as the Internet. The client device may include a single box that receives and decodes transmissions from the managed network and also includes two-way communication with an unmanaged network. Thus, the client device may include two separate receivers and at least one transmitter. The client device may have a single shared processor for both the managed and unmanaged networks or there may be separate processors within the client device. A software module controls the switching between the two networks.
As such, the software module is a central component that communicates with both networks. In alternative embodiments, separate client decoding boxes may be employed for the managed and unmanaged networks wherein the two boxes include a communication channel. For example, the two boxes may communicate via IP or UDP protocols wherein a first box may send an interrupt to the second box or send an output suppression signal. The boxes may be provided with discovery agents that recognize when ports are connected together and all the two boxes to negotiate connection. The communication channel allows the two boxes to communicate so that the output of the boxes may be switched. Thus, each box operates using a common communication protocol that allows for the box to send commands and control at least the output port of the other box. It should be recognized that the description of the present embodiment with respect to satellite-based systems is for exemplary purposes only and that the description may be readily applied to embodiments that include both managed and unmanaged networks.
When the user requests the interactive content by sending a transmission to the client device 2802, the client device 2802 extracts the trigger and transmits the trigger through the unmanaged network to a processing office 2810. The processing office 2810 either looks-up the associated internet address for the interactive content in a look-up table or extracts the internet address from the received transmission from the client device. The processing office forwards the request to the appropriate content server 2820 through the Internet 2830. The interactive content is returned to the processing office 2810 and the processing office 2810 processes the interactive content into a format that is compatible with the client device 2803. For example, the processing office 2810 may encode transcoding by scaling and stitching the content as an MPEG video stream as discussed above. The video stream can then be transmitted from the processing office 2810 to the client device 2803 over the unmanaged network 2806 as a series of IP packets. In such an embodiment, the client device 2802 includes a satellite decoder and also a port for sending and receiving communications via an unmanaged IP network. When the requested interactive content is received by the client device 2803, the client device can switch between outputting the satellite broadcast channel and outputting the interactive content received via the unmanaged network. In certain embodiments, the audio content may continue to be received by the satellite transmission and only the video is switched between the satellite communications channel and the IP communications channel. The audio channel from the satellite transmission will be mixed with the video received through the unmanaged IP network. In other embodiments, both the audio and video signal are switched between the managed and unmanaged networks.
It should be recognized by one of ordinary skill in the art that the triggers need not be limited to advertisements, but may relate to other forms of interactive content. For example, a broadcast transmission may include a trigger during a sporting event that allows a user to retrieve interactive content regarding statistics for a team playing the sporting event.
In some embodiments, when a trigger is identified within the transmission, an interactive session is automatically established and interactive content from two or more sources is merged together as explained above. The interactive content is then provided to the client device through the communication network and is decoded. Thus, the user does not need to provide input to the client device before an interactive session is established.
In certain embodiments, the client device may receive content from both the managed and unmanaged network and may replace information from one with the other. For example, broadcast content may be transmitted over the managed network with identifiable insertion points (e.g. time codes, header information etc.) for advertisements. The broadcast content may contain an advertisement at the insertion point and the client device can replace the broadcast advertisement with an advertisement transmitted over the managed network wherein the client device switches between the managed and unmanaged networks for the length of the advertisement.
A user may request interactive content using a user input device (i.e. a remote control) that communicates with the client device 2902. For, example, the client device may be a set-top box, a media gateway, or a video gaming system. When the client device receives the request, the client device identifies the trigger associated with the request by accessing the temporary buffer holding the trigger. The trigger may simply be an identifier that is passed upstream to the processing office 2910 through an unmanaged network 2901 or the trigger may contain routing information (i.e. an IP address). The client device 2902 transmits the trigger along with an identifier of the client device to the processing office. The processing office 2910 receives the request for interactive content and either uses the trigger identifier to access a look-up table that contains a listing of IP addresses or the processing office makes a request through the internet 2930 to the IP address for the interactive content, which is located at a content server 2920. The unmanaged network coupled between the client device and the processing office may be considered part of the Internet. The interactive content is sent to the processing office from either a server on the Internet or from the content server. The processing office processes the interactive content into a format that is compatible with the client device. The interactive content may be converted to an MPEG video stream and sent from the processing office down stream to the client device as a plurality of IP packets. The MPEG video stream is MPEG compliant and readily decodable by a standard MPEG decoder. Interactive content may originate from one or more sources and the content may be reformatted, scaled, and stitched together to form a series of video frames. The interactive content may include static elements, dynamic element and both static and dynamic elements in one or more video frames composing the interactive content. When the client device 2902 receives the interactive content, the client device may immediately switch from the broadcast content being received from the managed network to receiving the interactive content from the unmanaged network. Alternatively, the client device 2902 may switch to receiving the interactive content from the unmanaged network after a given delay defined by the trigger. The client device 2902 decodes the received interactive content and the user may interact with the interactive content wherein the processing office receives requests for changes in the content from the client device. In response to the requests, the processing office retrieves the content, encodes the content as a video stream and sends the content to the client device via the unmanaged network.
In other embodiments, the trigger that causes a request for an interactive session may occur external to the broadcast content. For example, the request may result in response to a user's interaction with an input device, such as a remote control. The signal produced by the remote control is sent to the client device and the client device responds by switching between receiving broadcast content over the managed network to making a request for an interactive session over the unmanaged network. The request for the interactive session is transmitted over a communication network to a processing office. The processing office assigns a processor and a connection is negotiated between the processor and the client device. The client device might be a set-top box, media gateway, consumer electronic device or other device that can transmit through a network, such as the Internet, remote control signals and receive and decode a standard MPEG encoded video stream. The processor at the processing office gathers the interactive content from two or more sources. For example, an AVML template may be used that includes MPEG objects and MPEG video content may be retrieved from a locally stored source or a source that is reachable through a network connection. For example, the network may be an IP network and the MPEG video content may be stored on a server within the Internet. The assigned processor causes the interactive content to be stitched together. The stitched content is then transmitted via the network connection to the client device, which decodes and presents the decoded content to a display device.
As an example, a television that includes an internal or external QAM tuner receives a broadcast cable television signal. The broadcast cable television signal includes one or more triggers or a user uses an input device to create a request signal. The television either parses the trigger during decoding of the broadcast cable television signal or receives the request from the input device and as a result causes a signal to be generated to an IP device that is coupled to the Internet (unmanaged network). The television suppresses output of the broadcast cable television signal to the display. The IP device may be a separate external box or internal to the television that responds to the trigger or request signal by requesting an interactive session with a processing office located over an Internet connection. A processor is assigned by the processing office and a connection is negotiated between the IP device and the assigned processor. The assigned processor generates the interactive content from two or more sources and produces an MPEG elementary stream. The MPEG elementary stream is transmitted to the IP device. The IP device then outputs the MPEG elementary stream to the television that decodes and presents the interactive content to the television display. In response to further interaction by the user with an input device updates to the elementary stream can be achieved by the assigned processor. When the user decides to return to the broadcast television content or the interactive content finishes, the television, suspends suppression of the broadcast television content signal and the television decodes and presents the broadcast television signal to the display. Thus, the system switches between a managed network and an unmanaged network as the result of a trigger or request signal wherein interactive content signal is created from two or more sources at a location remote from the television.
It should be recognized by one of ordinary skill in the art that the foregoing embodiments are not restricted to satellite and cable television systems and the embodiments may be equally applicable to IPTV networks, such as IPTV networks that use the telephone system. In such an embodiment, the IPTV network would be the managed network and the unmanaged network would be a connection to the Internet (e.g. a DSL modem, wireless Internet network connection; Ethernet Internet connection).
Adaptive Bitrate Detection and Control
The embodiments of the invention described above may be used in connection with thin client devices. Thin client devices include hardware, software, or a combination of hardware and software for receiving and decoding encoded audio and video for display on a display device, and for transmitting keystroke and button-press commands to a processing office. Typically, thin clients are designed to be inexpensive for mass production, and to be uncomplicated for use in situations permitting only a basic display of audiovisual content, although more expensive and complicated devices having other functions (for example, smartphones) may be employed in accordance with the methods and systems described herein.
The use of an unmanaged network in a thin client environment includes restrictions that limit the ability of a television broadcaster to provide interactive content. The restriction that most affects the quality of the end user experience is that unmanaged network may experience rapid and unpredictable variations in available channel capacity (bandwidth) between the client device and the interactive service provider. For this reason, it is desirable to provide a system and methods that compensate for these variations to provide an optimal user experience, while using a minimum of algorithmic complexity in the client device.
These restrictions may be addressed using adaptive bitrate control in both the client and server. Generally, an interactive service provider connected with a client device over an unmanaged network takes regular measurements of the connection bandwidth. When changes in this bandwidth occur, the server varies the transmission bitrate of the service. The client device makes corresponding bandwidth measurements using data provided within the received interactive service data, and adjusts its audiovisual output accordingly. Thus, the quality of the interactive service may be dynamically improved or degraded to maintain an optimal user experience according to the variable transmission capabilities of the unmanaged network. If the transmission capabilities become so limited as to prevent an optimal user experience for a particular interactive service, the interactive service provider may provide a “service unavailable” message, or suggest alternate services that the user might wish to use according to business rules that reflect the user's account information or preferences.
In accordance with exemplary embodiments of the invention, adaptive bitrate control is provided on the video portion of an audiovisual service, keeping a constant audio bitrate. Such an approach has several advantages. First, a fixed audio bitrate guarantees a consistent quality of at least a portion of the end user audiovisual experience, even using an unmanaged network. Second, transmission of a fixed audio bitrate a minimum of information must be communicated to the client during user interactivity with the service. Third, the client device may compare the expected, fixed audio bitrate against the received audio data to dynamically measure the actual performance of the unmanaged network. Fourth, varying the bitrate of only the video portion of an audiovisual service requires fewer processing resources by the service provider than would varying both the audio and video portions separately. To embody these advantages, adaptive bitrate control is provided by a stitcher (such as stitcher 115, stitcher 340, or stitcher 1140A) that stitches together the video components of the transmitted interactive service. It will be understood by a person having ordinary skill in the art that other physical or logical components of an interactive service may be used to provide this function.
The transmission controller 3040 calculates bandwidth as a function of data Δ regarding the transmission of the audiovisual stream, and time. Thus, bandwidth is given by a formula F(Δ, t). In one embodiment that uses a reliable transmission protocol, data to be sent are buffered in the event retransmission is necessary. As data are added to the buffer by the transmission controller 3040, and removed from the buffer by the transmission protocol, the amount of data in the buffer changes. As an equation, if buf(t) is the size of the buffer at a given time t, then buf(t2)=buf(t1)+new(t1, t2)−trans(t1, t2), where new(t1, t2) is the amount of data added to the buffer between times t1, t2; and trans(t1, t2) is the amount of data transmitted to the client device between times t1, t2. Noting that bandwidth is the amount of data transmitted to the client device per unit time, one may rearrange this to obtain a formula for bandwidth: F(Δ, t)=trans(t1, t2)/(t2−t1)=(new(t1, t2)−Δ)/(t2−t1), where Δ=buf(t2)−buf(t1) is the change in the size of the buffer. As noted above, the value of Δ may be obtained from transmission protocol 3050. The value of new(t1, t2) may be monitored by transmission controller 3040, thereby providing all of the information necessary to calculate bandwidth from successive sampled values of Δ. The transmission controller 3040 provides bandwidth values F(Δ, t) to the encoding bitrate controller 3020 either synchronously or asynchronously.
The encoding bitrate controller 3020 can set encoding parameters by any appropriate algorithm that uses the bandwidth value provided 3070 by the transmission controller 3040. In particular, an overall quantization level of video frames may be increased in response to an increased available bandwidth, and quantization decreased when bandwidth decreases. Overall quantization levels that vary in time as bandwidth changes, like those in accordance with embodiments of the invention, may be useful in conjunction with quantization levels that vary in space. One example of space-varying quantization is disclosed in U.S. Pat. No. 6,831,947, which teaches determining optimized quantization values for individual macroblocks within a single video frame, based on the human visual system and an overall quantization level. The encoding bitrate controller 3020 may also change a video frame rate to correspond to a changing channel capacity for video data. Thus, if bandwidth decreases by half, the encoding bitrate controller 3020 may reduce the frame rate by half, so that only half as many video frames are transmitted. Alternatively, the encoding bitrate controller 3020 may alter the types of frames that are encoded, for example by selectively dropping B-frames or delaying the transmission of I-frames as the available bandwidth decreases, and restoring them as the bandwidth increases.
Further, the encoding bitrate controller 3020 may alter the encoding parameters based on not just the actual value of the bandwidth F(Δ, t), but its time derivatives as well. As is well known in the art, a derivative is an instantaneous rate of change of a function with respect to one of its parameters, and derivatives of a function with respect to time can be used to predict the future behavior of the function. In this case, the time derivative of the bandwidth may be used to predict future bandwidth values. Thus, for example, a negative first time derivative F′(t) indicates that available bandwidth is decreasing, while a positive second time derivative F″(t) indicates that the decreasing trend is being reversed. In some embodiments, encoding bitrate controller 3020 uses time derivatives of the bandwidth function to form the equation of a curve that best fits past bandwidth values up to some computational limit, according to methods well known in the art such as Taylor polynomials. By tracing the fitted curve forward in time, future bandwidth values are predicted, and the encoding bitrate controller 3020 may use this predictive information to determine optimal encoding parameters. Thus, if the available bandwidth is increasing, the encoding bitrate controller may calculate a Taylor polynomial that indicates a future higher encoding bitrate than might otherwise have been indicated by monitoring only the raw bandwidth values. The amount by which the selected bitrate is preemptively increased may itself be based on whether the bandwidth trend is reversing or accelerating, as indicated by the second derivative of the fitted curve.
The client process for obtaining audio and video from a multiplexed audiovisual data stream is described with reference to
In the client decoding device shown in
Audio data are provided to an audio stream parser 3140, which extracts encoded audio data. These encoded audio data are stored in audio buffer 3150, which enables the client device to provide output audio data at a constant rate. Similarly, video data are provided to a video stream parser 3142, and the parsed, encoded video data are stored in a video buffer 3152. In this embodiment, a playback simulation rate controller 3160 controls the encoded audio output 3170 and the encoded video output 3172, as indicated by arrows 3162, 3164. The playback simulation rate controller 3160 may, in some embodiments, also control the size of the audio buffer 3150, as indicated by the horizontal arrows therein. The encoded audio 3170 and the encoded video 3172 are then presented to audio and video decoders that produce analog audio and video for output by a display device.
Playback simulation rate controller 3160 simulates playback of audio and/or video on a real device without requiring the data to be actually rendered on a speaker or display. Playback simulation rate controller 3160 accomplishes this function by monitoring the number of audio frames in the audio buffer 3150, in a manner that parallels monitoring of data in the transmit buffer described above. By determining the number of audio frames in the buffer as a function of time, the playback simulation rate controller 3160 can determine the bandwidth at which audio data are being received. By comparing this against the expected audio bandwidth, rate controller 3160 can simulate audio and video playback, and increase or decrease the size of the audio buffer as necessary to avoid buffering delays that decrease the quality of user experience. Further, rate controller 3160 can use the dynamic simulation to determine how to synchronize the outputs of buffers 3150, 3152. For example, video frames must be synchronized to audio frames in order to provide an enjoyable user experience. By carefully monitoring the simulation, rate controller 3160 guarantees that audio data and video data are output at the same rate to ensure synchronization. Because rate controller 3160 does not interact with transmission protocol 3120, each may be embodied as a standalone functional module, including in hardware, providing potential manufacturing advantages and client device design simplicity.
Various modifications may be made to the basic client/server system described above in connection with
Frame assembly controller 3310 performs additional functions in this embodiment, as now described. Frame assembly controller 3310 monitors the available bandwidth values, and provides them to business rules 3314. These business rules determine whether the currently available bandwidth is sufficient to provide a selected interactive service to the client device. Based on this determination, the business rules 3314 access appropriate video content 3318 and audio content 3330 using a storage network 3316.
Business rules 3314 are typically embodied in a set of instructions for a computer processor, and may be implemented using techniques known in the art. The business rules 3314 may include such information as a client device identifier, a subscriber identifier, a level of service paid for by a subscriber, the current number of subscribers accessing interactive content, the bandwidth of interactive services being provided to all subscribers in a particular subscriber class or geographic grouping, the availability of audio and video content in storage network 3316, first publication dates of the same as determined by content producers, or any other pertinent data that may be used in a determination of which interactive services may be provided to the requesting client device given the current bandwidth values. The instructions operate upon these data to generate a list of available interactive services, the audio and video content of which is then provided to frame assembly and encoding 3320 and transport multiplexer 3330, as indicated. If a minimum bandwidth requirement is not met for any interactive services otherwise available to a subscriber or client device, the business rules 3314 may cause a “service unavailable” content to be transmitted to the client device over the unmanaged network. If a minimum bandwidth requirement is not met for a currently provided interactive service, but the requirement is met for a different interactive service, the business rules 3314 may select the alternate service for transmission to the client device, or cause the client device to display a menu of different interactive services whose minimum requirements are met. After a subscriber selects an option in the menu, the frame assembly controller 3310 causes the appropriate video content 3318 and audio content 3330 to be encoded and transmitted to the client device.
The present invention may be embodied in many different forms, including, but in no way limited to, computer program logic for use with a processor (e.g., a microprocessor, microcontroller, digital signal processor, or general purpose computer), programmable logic for use with a programmable logic device (e.g., a Field Programmable Gate Array (FPGA) or other PLD), discrete components, integrated circuitry (e.g., an Application Specific Integrated Circuit (ASIC)), or any other means including any combination thereof. In an embodiment of the present invention, predominantly all of the reordering logic may be implemented as a set of computer program instructions that is converted into a computer executable form, stored as such in a computer readable medium, and executed by a microprocessor within the array under the control of an operating system.
Computer program logic implementing all or part of the functionality previously described herein may be embodied in various forms, including, but in no way limited to, a source code form, a computer executable form, and various intermediate forms (e.g., forms generated by an assembler, compiler, networker, or locator.) Source code may include a series of computer program instructions implemented in any of various programming languages (e.g., an object code, an assembly language, or a high-level language such as FORTRAN, C, C++, JAVA, or HTML) for use with various operating systems or operating environments. The source code may define and use various data structures and communication messages. The source code may be in a computer executable form (e.g., via an interpreter), or the source code may be converted (e.g., via a translator, assembler, or compiler) into a computer executable form.
The computer program may be fixed in any form (e.g., source code form, computer executable form, or an intermediate form) either permanently or transitorily in a tangible storage medium, such as a semiconductor memory device (e.g., a RAM, ROM, PROM, EEPROM, or Flash-Programmable RAM), a magnetic memory device (e.g., a diskette or fixed disk), an optical memory device (e.g., a CD-ROM), a PC card (e.g., PCMCIA card), or other memory device. The computer program may be fixed in any form in a signal that is transmittable to a computer using any of various communication technologies, including, but in no way limited to, analog technologies, digital technologies, optical technologies, wireless technologies, networking technologies, and internetworking technologies. The computer program may be distributed in any form as a removable storage medium with accompanying printed or electronic documentation (e.g., shrink wrapped software or a magnetic tape), preloaded with a computer system (e.g., on system ROM or fixed disk), or distributed from a server or electronic bulletin board over the communication system (e.g., the Internet or World Wide Web.)
Hardware logic (including programmable logic for use with a programmable logic device) implementing all or part of the functionality previously described herein may be designed using traditional manual methods, or may be designed, captured, simulated, or documented electronically using various tools, such as Computer Aided Design (CAD), a hardware description language (e.g., VHDL or AHDL), or a PLD programming language (e.g., PALASM, ABEL, or CUPL.)
While the invention has been particularly shown and described with reference to specific embodiments, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended clauses. As will be apparent to those skilled in the art, techniques described above for panoramas may be applied to images that have been captured as non-panoramic images, and vice versa.
Embodiments of the present invention may be described, without limitation, by the following clauses. While these embodiments have been described in the clauses by process steps, an apparatus comprising a computer with associated display capable of executing the process steps in the clauses below is also included in the present invention. Likewise, a computer program product including computer executable instructions for executing the process steps in the clauses below and stored on a computer readable medium is included within the present invention.
Pavlovskaia, Lena Y., Marsavin, Andrey, Dahlby, Joshua, Lawrence, Charles
Patent | Priority | Assignee | Title |
10356199, | Mar 10 2012 | Headwater Partners II LLC | Content distribution with a quality based on current network connection type |
10491964, | Jan 23 2017 | Cisco Technology, Inc. | Assisted acceleration for video streaming clients |
Patent | Priority | Assignee | Title |
3889050, | |||
3934079, | Oct 26 1973 | Jerrold Electronics Corporation | Bilateral communications system for distributing commerical and premium video signaling on an accountable basis |
3997718, | Feb 01 1973 | Magnavox Electronic Systems Company | Premium interactive communication system |
4002843, | Sep 21 1972 | Tamper-proof two-way cable system | |
4032972, | Jun 23 1976 | IDR, Inc. | Piggy back row grabbing system |
4077006, | Oct 12 1973 | BUSS, INC , A CORP OF DE | Bidirectional unicable switching system |
4081831, | Apr 08 1976 | SOCIETY NATIONAL BANK | High security subscription television system employing real time control of subscriber's program reception |
4107734, | Jan 31 1977 | R. D. Percy & Company | Television viewer reaction determining system |
4107735, | Apr 19 1977 | R. D. Percy & Company | Television audience survey system providing feedback of cumulative survey results to individual television viewers |
4145720, | Jul 22 1976 | Remote control | |
4168400, | Mar 31 1977 | Compagnie Europeenne de Teletransmission (C.E.T.T.) | Digital communication system |
4186438, | Mar 17 1976 | International Business Machines Corporation | Interactive enquiry system |
4222068, | Nov 02 1978 | TIME WARNER ENTERTAINMENT COMPANY L P | Subscription television apparatus and methods |
4245245, | Feb 24 1975 | Pioneer Electronic Corporation | Interactive CATV system |
4247106, | Apr 12 1978 | Jerrold Electronics Corporation | System arrangement for distribution and use of video games |
4253114, | Apr 08 1976 | SOCIETY NATIONAL BANK | High security subscription television system employing real time control of subscriber's program reception |
4264924, | Mar 03 1978 | CALOF, LAWRENCE, AGENT FOR NOLAN K BUSHNELL | Dedicated channel interactive cable television system |
4264925, | Aug 13 1979 | ACTV, INC , A CORP OF CA | Interactive cable television system |
4290142, | Feb 22 1978 | Heinrich-Hertz-Institut fur Nachrichtentechnik Berlin GmbH | Interactive cable television system |
4302771, | Aug 22 1979 | Communications Patents Limited | Wire broadcasting system with subscriber controlled switched program selection |
4308554, | Jan 31 1977 | R. D. Percy & Company | Television viewer reaction determining system |
4350980, | Feb 21 1980 | WESTERN BANK, LAS CRUCES | Electric meter consumption and demand communicator |
4367557, | Jul 26 1976 | STERN TELECOMMUNICATIONS CORPORATION | Wired broadcasting systems |
4395780, | Jun 18 1980 | Licentia Patent-Verwaltungs-GmbH | Service-integrated communication transmission and exchange system |
4408225, | Jul 06 1981 | Zenith Radio Corporation | Subscription television decoder |
4450477, | Mar 31 1982 | Television information system | |
4454538, | Jul 24 1981 | Pioneer Electronic Corporation | Data communication in CATV system |
4466017, | Dec 23 1981 | Scientific-Atlanta, Inc. | Sync suppression scrambling of television signals for subscription TV |
4471380, | Mar 15 1982 | Scientific-Atlanta, Inc. | Scrambling and descrambling of television signals for subscription TV |
4475123, | Apr 02 1981 | Texscan Corporation | Addressable subscriber cable television system |
4484217, | May 11 1982 | IPPV ENTERPRISES, LLC | Method and system for remote reporting, particularly for pay television billing |
4491983, | May 14 1981 | TIMES FIBER COMMUNICATIONS INC | Information distribution system |
4506387, | May 25 1983 | Macrovision Corporation | Programming-on-demand cable system and method |
4507680, | Jun 22 1982 | ACTV, INC A CORP OF DELAWARE | One way interactive multisubscriber communication system |
4509073, | Apr 29 1982 | INTELETEXT SYSTEMS, INC | Two-way cable-television system |
4523228, | Feb 15 1983 | Scientific Atlanta Inc. | Sync suppression scrambling of television signals for subscription TV |
4533948, | Apr 30 1982 | GENERAL INSTRUMENT CORPORATION GIC-4 | CATV Communication system |
4536791, | Mar 31 1980 | General Instrument Corporation | Addressable cable television control system with video format data transmission |
4538174, | Mar 11 1982 | Communications Patents Limited | Two-way subscriber TV system with multiple subscriber's sets |
4538176, | Nov 24 1978 | Hitachi, Ltd.; Nippon Telegraph & Telephone Public Corporation | Buffer memory dispersion type video/audio transmission system |
4553161, | Dec 09 1983 | Zenith Electronics Corporation; ZENITH ELECTRONICS CORPORATION, 1000 MILWAUKEE AVENUE, GLENVIEW, IL 60025, A CORP OF DE | Upstream data packet time slot synchronization with downstream VBI for two-way CATV system |
4554581, | Dec 20 1982 | Zenith Radio Corporation | STV Decoder with improved data signal recognition capability |
4555561, | Sep 07 1983 | Sunstar Suisse SA | Polyurethane resin composition |
4562465, | Jun 14 1983 | GENERAL INSTRUMENT CORPORATION GIC-4 | Adaptive video descrambling system |
4567517, | Feb 15 1983 | Scientific-Atlanta, Inc. | Descrambler for sync-suppressed TV signals |
4573072, | Mar 21 1984 | CALOF, LAWRENCE, AGENT FOR NOLAN K BUSHNELL | Method for expanding interactive CATV displayable choices for a given channel capacity |
4591906, | Dec 13 1983 | TV ANSWER, INC | Wireless transmission from the television set to the television station |
4602279, | Mar 21 1984 | CALOF, LAWRENCE, AGENT FOR NOLAN K BUSHNELL | Method for providing targeted profile interactive CATV displays |
4614970, | Dec 13 1983 | U.S. Computer Systems | Descrambler apparatus |
4616263, | Feb 11 1985 | GTE Main Street Incorporated | Video subsystem for a hybrid videotex facility |
4625235, | May 19 1983 | Westinghouse Electric Corporation | Remote control switching of television sources |
4627105, | Jun 11 1984 | Sumitomo Electric Industries, Inc. | Signal transmission system and method |
4633462, | Jul 18 1983 | Board of Trustees of the University of Illinois, The | Multiple access communication on a CATV reverse channel |
4670904, | Jan 15 1986 | RCA LICENSING CORPORATION, TWO INDEPENDENCE WAY, PRINCETON, NJ 08540, A CORP OF DE | System for processing a scrambled video signal |
4682360, | Dec 22 1983 | Video transmission system | |
4695880, | Jul 30 1985 | POSTRON CORP , A CORP OF ALABAMA | Electronic information dissemination system |
4706121, | Jul 12 1985 | Scientific-Atlanta, Inc | TV schedule system and process |
4706285, | Dec 24 1985 | RCA LICENSING CORPORATION, TWO INDEPENDENCE WAY, PRINCETON, NJ 08540, A CORP OF DE | Automatic gain control of a scrambled video signal |
4709418, | Sep 14 1983 | British Telecommunications public limited company | Wideband cable network |
4710971, | Aug 20 1984 | Pioneer Electronic Corporation | Channel selecting device for CATV terminal unit |
4718086, | Mar 27 1986 | RCA LICENSING CORPORATION, TWO INDEPENDENCE WAY, PRINCETON, NJ 08540, A CORP OF DE | AGC in sound channel of system for processing a scrambled video signal |
4732764, | Jun 22 1982 | The University Court of the University of Glasgow | Device for introducing nutrients and/or therapeutic materials into ruminant animals |
4734764, | May 06 1985 | TVWorks, LLC | Cable television system selectively distributing pre-recorded video and audio messages |
4748689, | Aug 07 1985 | ALCATEL N V , DE LAIRESSESTRAAT 153, 1075 HK AMSTERDAM, THE NETHERLANDS, A CORP OF THE NETHERLANDS | Fiber-optic distribution system for broadband signals |
4749992, | Jul 03 1986 | Total Energy Management Consultants Corp. (TEMCO); TOTAL ENERGY MANAGEMENT CONSULTANTS CORP , TEMCO , A CORP OF MA ; TOTAL ENERGY MANAGEMENT CONSULTANTS CORP TEMCO , 265 FRANKLIN STREET, A CORP OF MA ; TOTAL ENERGY MANEGEMENT CONSULTANTS CORP TEMCO , 265 FRANKLIN STREET, A CORP OF MA | Utility monitoring and control system |
4750036, | May 14 1986 | Radio Telcom & Technology, Inc. | Interactive television and data transmission system |
4754426, | May 31 1984 | TIME WARNER ENTERTAINMENT COMPANY L P | System for controlling communications on a cable television network |
4760442, | Jul 10 1985 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Wideband digital signal distribution system |
4763317, | Dec 13 1985 | American Telephone and Telegraph Company, AT&T Bell Laboratories | Digital communication network architecture for providing universal information services |
4769833, | Mar 31 1986 | American Telephone and Telegraph Company; AT&T Information Systems Inc.; AT&T INFORMATION SYSTEMS INC , A CORP OF DE | Wideband switching system |
4769838, | Dec 10 1984 | Pioneer Electronic Corporation | Community antenna television reception controlling apparatus |
4789863, | Oct 02 1985 | Pay per view entertainment system | |
4792849, | Aug 04 1987 | TVWorks, LLC | Digital interactive communication system |
4801190, | Jun 10 1986 | Hitachi, Ltd. | Two-way optical fiber transmission network |
4805134, | Jan 09 1986 | International Business Machines Corporation | Electronic system for accessing graphical and textual information |
4807031, | Oct 20 1987 | KOPLAR INTERACTIVE SYSTEMS INTERNATIONAL, L L C | Interactive video method and apparatus |
4816905, | Apr 30 1987 | GTE Main Street Incorporated | Telecommunication system with video and audio frames |
4821102, | Jul 29 1986 | Sony Corporation | Video display system with selective display of operating conditions |
4823386, | Apr 02 1981 | TEXSCAN CORPORATION, TEXSCAN CORPORATION A DE CORP | Addressable subscriber cable television system |
4827253, | May 18 1987 | Discovision Associates | Video compositing using a software linear keyer |
4827511, | May 12 1986 | Kabushiki Kaisha Toshiba | Automatic gain control circuit for controlling gain of video signal in television receiver |
4829372, | Aug 20 1987 | TVWorks, LLC | Presentation player |
4829558, | Jan 19 1988 | VIEWFACTS, INC , A CORPORATION OF DE | System and device for data transmission, and related method |
4847698, | Jul 16 1987 | ACTV, Inc.; ACTV, Inc | Interactive television system for providing full motion synched compatible audio/visual displays |
4847699, | Jul 16 1987 | ACTV, Inc.; ACTV, Inc | Method for providing an interactive full motion synched compatible audio/visual television display |
4847700, | Jul 16 1987 | ACTV, Inc.; ACTV, Inc | Interactive television system for providing full motion synched compatible audio/visual displays from transmitted television signals |
4848698, | Jun 02 1988 | Newell Research Corporation; NEWELL RESEARCH CORPORATION, A CORP OF CA | Method for writing and means for reading position-indicating markers on tape |
4860379, | May 18 1979 | GENERAL INSTRUMENT CORPORATION GIC-4 | Data communications system |
4864613, | Nov 10 1986 | GENERAL INSTRUMENT CORPORATION GIC-4 | Broadband converter/descrambler interface for cable TV |
4876592, | Mar 10 1986 | RESPONSE REWARD SYSTEMS, L C | System for merchandising and the evaluation of responses to broadcast transmissions |
4889369, | Sep 16 1985 | Adapter fitting | |
4890320, | Jun 09 1988 | VTRAN MEDIA TECHNOLOGIES, LLC | Television broadcast system for selective transmission of viewer-chosen programs at viewer-requested times |
4891694, | Nov 21 1988 | TTI Inventions A LLC | Fiber optic cable television distribution system |
4901367, | Nov 30 1988 | Cable communications system with remote switching and processing converters | |
4903126, | Feb 10 1989 | ORBSAK, L L C | Method and apparatus for tv broadcasting |
4905094, | Jun 30 1988 | TVWorks, LLC | System for audio/video presentation |
4912760, | Mar 10 1988 | MOONBEAM L L C | Off-premises cable television channel interdiction method and apparatus |
4918516, | Oct 26 1987 | 501 Actv, Inc.; ACTV, INC , 4 MANHASSET AVENUE, PORT WASHINGTON, NEW YORK 11050, A CORP OF CA | Closed circuit television system having seamless interactive television programming and expandable user participation |
4920566, | Feb 01 1989 | GENERAL INSTRUMENT CORPORATION GIC-4 | Dual loop sinewave descrambler and method of descrambling |
4922532, | Jul 29 1988 | Cisco Technology, Inc | Sync suppression scrambling and descrambling of television signals for subscription TV |
4924303, | Sep 06 1988 | Kenneth, Dunlop; Richard, Lucas; Robert, Pietruszewski | Method and apparatus for providing interactive retrieval of TV still frame images and audio segments |
4924498, | Apr 29 1988 | Cisco Technology, Inc | Method and apparatus for improving video scrambling and employing split snyc pulses |
4937821, | Jan 21 1986 | DIACOM TECHNOLOGIES, INC A CALIFORNIA CORPORATION; COMPUREAD-LEARNING INSIGHTS, A LIMITED PARTNERSHIP; DIACOM TECHNOLOGIES, INC | Pipeline information delivery system |
4941040, | Apr 29 1985 | TVWorks, LLC | Cable television system selectively distributing pre-recorded video and audio messages |
4947244, | May 03 1989 | Lodgenet Interactive Corporation | Video selection and distribution system |
4961211, | Jun 30 1987 | NEC Corporation | Television conference system including many television monitors and method for controlling the same |
4963995, | Dec 27 1988 | BURST COM, INC | Audio/video transceiver apparatus including compression means |
4975771, | Feb 02 1989 | ORBSAK, L L C | Method and apparatus for TV broadcasting |
4989245, | Mar 06 1989 | GENERAL INSTRUMENT CORPORATION GIC-4 | Controlled authorization of descrambling of scrambled programs broadcast between different jurisdictions |
4994909, | May 04 1989 | Nortel Networks Limited | Video signal distribution system |
4995078, | Jun 09 1988 | VTRAN MEDIA TECHNOLOGIES, LLC | Television broadcast system for selective transmission of viewer-chosen programs at viewer-requested times |
5003384, | Apr 01 1988 | Cisco Technology, Inc | Set-top interface transactions in an impulse pay per view television system |
5008934, | Oct 18 1988 | Pioneer Electronic Corporation | CATV transmission system using scrambled signals |
5014125, | May 05 1989 | TVWorks, LLC | Television system for the interactive distribution of selectable video presentations |
5027400, | Aug 19 1988 | Hitachi Ltd. | Multimedia bidirectional broadcast system |
5051720, | Nov 13 1989 | SECURE TELECOM, INC | Remote control system using power line of remote site |
5051822, | Oct 19 1989 | INTERACTIVE TELEVISION SYSTEMS, INC | Telephone access video game distribution center |
5057917, | Jun 20 1990 | The United States of America as represented by the Administrator of the | Real-time data compression of broadcast video signals |
5058160, | Apr 29 1988 | Cisco Technology, Inc | In-band controller |
5060262, | May 07 1990 | MICROWAVE FILTER COMPANY, INC | Video scrambling, audio masking and data transmission methods for wireless cable systems |
5077607, | Dec 23 1988 | TECH 5 SAS | Cable television transaction terminal |
5083800, | Jun 09 1989 | INTERACTIVE NETWORKS, INC | Game of skill or chance playable by several participants remote from each other in conjunction with a common event |
5088111, | Feb 28 1989 | TECHNOLOGIES FUTURES, INC D B A ORION TECHNOLOGY | Modulation and demodulation system employing AM-PSK and FSK for communication system using digital signals |
5093718, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system |
5109414, | Nov 03 1981 | PERSONALIZED MASS MEDIA CORPORATION, THE | Signal processing apparatus and methods |
5113496, | Nov 14 1988 | TVWorks, LLC | Bus interconnection structure with redundancy linking plurality of groups of processors, with servers for each group mounted on chassis |
5119188, | Oct 25 1988 | TVWorks, LLC | Digital audio-video presentation display system |
5130792, | Feb 01 1990 | USA VIDEO CORPORATION; USA VIDEO TECHNOLOGY CORPORATION | Store and forward video system |
5132992, | Jan 07 1991 | Greenwich Information Technologies, LLC | Audio and video transmission and receiving system |
5133009, | Oct 04 1990 | THOMSON CONSUMER ELECTRONICS, INC , A CORP OF DE | Method and apparatus for defeating the operation of an IC built-in noise inverter |
5133079, | Jul 30 1990 | Comcast IP Holdings I, LLC | Method and apparatus for distribution of movies |
5136411, | Dec 11 1987 | GENERAL INSTRUMENT EQUITY CORPORATION | Dynamically responsive CATV system with shared fiber optic link |
5142575, | Apr 29 1988 | Cisco Technology, Inc | Method and apparatus for improving video scrambling and employing split sync pulses |
5144448, | Jul 31 1990 | 3D Systems, Inc | Scanning apparatus using multiple CCD arrays and related method |
5155591, | Oct 23 1989 | GENERAL INSTRUMENT CORPORATION GIC-4 | Method and apparatus for providing demographically targeted television commercials |
5172413, | Dec 20 1990 | SASKTEL, 2121 SASKATCHEWAN DRIVE, REGINA, SASKATCHEWAN, CANADA, S4P 3Y2 | Secure hierarchial video delivery system and method |
5191410, | Aug 04 1987 | TVWorks, LLC | Interactive multimedia presentation and communications system |
5195092, | Aug 04 1987 | TVWorks, LLC | Interactive multimedia presentation & communication system |
5208665, | Aug 20 1987 | TVWorks, LLC | Presentation player for an interactive digital communication system |
5220420, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system for distributing compressed television programming |
5230019, | Apr 09 1990 | Matsushita Electric Industrial Co., Ltd. | Key signal conversion device for CATV system |
5231494, | Oct 08 1991 | GENERAL INSTRUMENT CORPORATION GIC-4 | Selection of compressed television signals from single channel allocation based on viewer characteristics |
5236199, | Jun 13 1991 | Interactive media system and telecomputing method using telephone keypad signalling | |
5247347, | Sep 27 1991 | Verizon Patent and Licensing Inc | PSTN architecture for video-on-demand services |
5253341, | Mar 04 1991 | GLOBAL PATENT HOLDINGS, LLC | Remote query communication system |
5262854, | Feb 21 1992 | RCA Thomson Licensing Corporation | Lower resolution HDTV receivers |
5262860, | Apr 23 1992 | International Business Machines Corporation | Method and system communication establishment utilizing captured and processed visually perceptible data within a broadcast video signal |
5303388, | May 09 1990 | Apple Inc | Method to display and rotate a three-dimensional icon with multiple faces |
5319455, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | System for distributing customized commercials to television viewers |
5319707, | Nov 02 1992 | Cisco Technology, Inc | System and method for multiplexing a plurality of digital program services for transmission to remote locations |
5321440, | Jun 07 1991 | Sony Corporation | High efficiency data compressed image encoding |
5321514, | May 14 1986 | Radio Telecom & Technology, Inc. | Interactive television and data transmission system |
5351129, | Mar 24 1992 | LAMOW PIERCE GANOW LLC | Video multiplexor-encoder and decoder-converter |
5355162, | Jul 13 1993 | Pacific Ray Video Limited | Multi-standard cable television system |
5359601, | Oct 30 1992 | TECH 5 SAS | Apparatus providing dynamic virtual service selection in a multi-service communications system |
5361091, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system for distributing video picture information to television viewers over a fiber optic telephone system |
5371532, | May 15 1992 | TTI Inventions A LLC | Communications architecture and method for distributing information services |
5404393, | Oct 03 1991 | RAQUEL VELASCO | Method and apparatus for interactive television through use of menu windows |
5408274, | Mar 11 1993 | Regents of the University of California, The | Method and apparatus for compositing compressed video data |
5410343, | Sep 27 1991 | Verizon Patent and Licensing Inc | Video-on-demand services using public switched telephone network |
5410344, | Sep 22 1993 | INTELLECTUAL VENTURES VIDEO PREFERENCES 3 LLC | Apparatus and method of selecting video programs based on viewers' preferences |
5412415, | Apr 10 1990 | British Telecommunications public limited company | Distribution of digitized composite AM FDM signals |
5412720, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system |
5418559, | Oct 23 1992 | AT&T IPM Corp | Multi-channel television converter for conventional and interactive signals |
5422674, | Dec 22 1993 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Remote display of an image by transmitting compressed video frames representing background and overlay portions thereof |
5422887, | Nov 27 1991 | Mosaid Technologies Incorporated | Medium access protocol for wireless local area network |
5442389, | Dec 28 1992 | AT&T IPM Corp | Program server for interactive television system |
5442390, | Jul 07 1993 | TIVO INC | Video on demand with memory accessing and or like functions |
5442700, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Scrambling method |
5446490, | Oct 23 1992 | AT&T IPM Corp | Interactive television with tailored programming |
5469283, | Apr 30 1992 | Societe Anonyme dite: Alcatel Cit | Optical system for connecting customer premises networks to a switching center of a telecommunication network providing interactive and non-interactive services |
5469431, | Jul 12 1993 | Philips Electronics North America Corporation | Method of and apparatus for channel mapping with relative service identification |
5471263, | Oct 14 1991 | Sony Corporation | Method for recording a digital audio signal on a motion picture film and a motion picture film having digital soundtracks |
5481542, | Nov 10 1993 | NDS Limited | Interactive information services control system |
5485197, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Carousel display |
5487066, | Mar 21 1988 | TECHNOLOGIES FUTURES, INC D B A ORION TECHNOLOGY | Distributed intelligence network using time and frequency multiplexing |
5493638, | Dec 22 1993 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Remote display of an image by transmitting compressed video frames representing back-ground and overlay portions thereof |
5495283, | Sep 13 1993 | ALBRIT TECHNOLOGIES LTD | Cable television video messaging system and headend facility incorporating same |
5495295, | Jun 01 1994 | LG Electronics Inc | Use of transmitter assigned phantom channel numbers for data services |
5497187, | Nov 29 1991 | Cisco Technology, Inc | In-band/out-of-band data transmission method and apparatus for a television system |
5517250, | Feb 28 1995 | Google Technology Holdings LLC | Acquisition of desired data from a packetized data stream and synchronization thereto |
5526034, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive home information system with signal assignment |
5528281, | Sep 27 1991 | Verizon Patent and Licensing Inc | Method and system for accessing multimedia data over public switched telephone network |
5537397, | Jun 07 1994 | SUMMIT WIRELESS, LLC | Spread aloha CDMA data communications |
5537404, | Dec 29 1992 | International Business Machines Corporation | Switched circuit connection management over public data networks for wide area networks |
5539449, | May 03 1993 | RPX Corporation | Integrated television services system |
5548340, | May 31 1995 | EchoStar Technologies Corporation | Intelligent television receivers combinations including video displays, and methods for diversion of television viewers by visual image modification |
5550578, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Interactive and conventional television information system |
5557316, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | System for distributing broadcast television services identically on a first bandwidth portion of a plurality of express trunks and interactive services over a second bandwidth portion of each express trunk on a subscriber demand basis |
5559549, | Dec 09 1992 | Comcast IP Holdings I, LLC | Television program delivery system |
5561708, | Oct 03 1991 | RAQUEL VELASCO | Method and apparatus for interactive television through use of menu windows |
5570126, | May 03 1993 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | System for composing multimedia signals for interactive television services |
5570363, | Sep 30 1994 | Intel Corporation | Transform based scalable audio compression algorithms and low cost audio multi-point conferencing systems |
5579143, | Jun 04 1993 | Ciena Corporation | Optical system with tunable in-fiber gratings |
5581653, | Aug 31 1993 | Dolby Laboratories Licensing Corporation | Low bit-rate high-resolution spectral envelope coding for audio encoder and decoder |
5583927, | May 01 1995 | Intellectual Ventures II LLC | Method and apparatus for integrating telephone and broadband networks |
5587734, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | User interface for selecting television information services through pseudo-channel access |
5589885, | Mar 17 1992 | Renesas Electronics Corporation | Moving picture coding and decoding circuit |
5592470, | Dec 21 1994 | AT&T Corp | Broadband wireless system and network architecture providing broadband/narrowband service with optimal static and dynamic bandwidth/channel allocation |
5594507, | Sep 27 1990 | ACTIVEVIDEO NETWORKS, INC | Compressed digital overlay controller and method for MPEG type video signal |
5594723, | Mar 31 1993 | U S PHILIPS CORPORATION | ATM information system and multiplexer for assigning and controlling access time |
5594938, | Feb 17 1993 | Ameritech Services, Inc. | Universal TV interface for switch of broadcast video distribution (and related method) |
5596693, | Nov 02 1992 | SAMSUNG ELECTRONICS CO , LTD | Method for controlling a spryte rendering processor |
5600364, | Dec 09 1992 | Comcast IP Holdings I, LLC | Network controller for cable television delivery systems |
5600366, | Mar 22 1995 | Verizon Patent and Licensing Inc | Methods and apparatus for digital advertisement insertion in video programming |
5600573, | Dec 02 1993 | Comcast IP Holdings I, LLC | Operations center with video storage for a television program packaging and delivery system |
5608446, | Mar 31 1994 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | Apparatus and method for combining high bandwidth and low bandwidth data transfer |
5617145, | Dec 28 1993 | Matsushita Electric Industrial Co., Ltd. | Adaptive bit allocation for video and audio coding |
5621464, | Feb 03 1994 | MATSUSHITA ELECTRIC INDUSTRIAL CO , LTD | Method of reordering a decoded video picture sequence |
5625404, | Sep 27 1991 | Verizon Patent and Licensing Inc | Method and system for accessing multimedia data over public switched telephone network |
5630757, | Nov 29 1994 | Net Game Limited | Real-time multi-user game communication system using existing cable television infrastructure |
5631693, | Oct 25 1993 | ELECTRONIC SYSTEM PRODUCTS, INC | Method and apparatus for providing on demand services in a subscriber system |
5631846, | Feb 28 1995 | Alcatel-Lucent USA Inc | Upstream communications for interactive networks |
5632003, | Jul 16 1993 | Dolby Laboratories Licensing Corporation | Computationally efficient adaptive bit allocation for coding method and apparatus |
5649283, | Sep 28 1995 | Alcatel-Lucent USA Inc | Program verification for cable television at a consumer location |
5668592, | Apr 06 1994 | INTERAXX TELEVISION NETWORK, INC | Interactive television terminal responsive to user commands which combines static service data and recurrently broadcast dynamic service data to produce composite service display signals |
5668599, | Mar 19 1996 | International Business Machines Corporation; IBM Corporation | Memory management for an MPEG2 compliant decoder |
5708767, | Feb 03 1995 | PRINCETON UNIVERSITY, TRUSTEES OF | Method and apparatus for video browsing based on content and structure |
5710815, | Jun 07 1995 | VTECH COMMUNICATONS LTD | Encoder apparatus and decoder apparatus for a television signal having embedded viewer access control data |
5712906, | Sep 27 1991 | Verizon Patent and Licensing Inc | Communications systems supporting shared multimedia session |
5740307, | Jun 07 1995 | Hitachi America, Ltd. | Methods for monitoring a trick play data stream to insure MPEG compliance |
5742289, | Apr 01 1994 | THE CHASE MANHATTAN BANK, AS COLLATERAL AGENT | System and method of generating compressed video graphics images |
5748234, | Sep 13 1994 | Intel Corporation | Video processing system and method |
5754941, | Feb 06 1995 | Broadband Technologies, Inc. | Point-to-multipoint broadband services drop with multiple time slot return channel for customer premises equipment served by fiber optic telecommunication system employing STS-based transmission format containing asynchronous transfer mode cells |
5781227, | Oct 25 1996 | Comcast IP Holdings I, LLC | Method and apparatus for masking the effects of latency in an interactive information distribution system |
5786527, | Apr 12 1994 | Method and apparatus for testing soil contamination | |
5790174, | Sep 27 1991 | Verizon Patent and Licensing Inc | PSTN architecture for video-on-demand services |
5802283, | Sep 27 1991 | Verizon Patent and Licensing Inc | Method and system for accessing multimedia data over public switched telephone network |
5812665, | Jun 07 1996 | ACTIVEVIDEO NETWORKS, INC | Switched channel system |
5812786, | Jun 21 1995 | Intellectual Ventures II LLC | Variable rate and variable mode transmission system |
5815604, | May 18 1995 | U.S. Philips Corporation | Interactive image manipulation |
5818438, | Apr 25 1995 | AT&T Intellectual Property I, L P | System and method for providing television services |
5821945, | Feb 03 1995 | The Trustees of Princeton University | Method and apparatus for video browsing based on content and structure |
5822537, | Feb 24 1994 | AT&T Corp. | Multimedia networked system detecting congestion by monitoring buffers' threshold and compensating by reducing video transmittal rate then reducing audio playback rate |
5828371, | Nov 22 1995 | International Business Machines Corporation | Method and system for graphic video image presentation control |
5844594, | Oct 05 1995 | Microsoft Technology Licensing, LLC | Method and apparatus for MPEG encoding |
5845083, | Mar 07 1996 | RENESAS ELECTRONICS AMERICA INC | MPEG encoding and decoding system for multimedia applications |
5862325, | Feb 29 1996 | Intermind Corporation | Computer-based communication system and method using metadata defining a control structure |
5864820, | Dec 20 1996 | Qwest Communications International Inc | Method, system and product for mixing of encoded audio signals |
5867208, | Oct 28 1997 | OPENTV, INC | Encoding system and method for scrolling encoded MPEG stills in an interactive television application |
5883661, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Output switching for load levelling across multiple service areas |
5892535, | May 08 1996 | DIGITAL VIDEO SYSTEMS, INC | Flexible, configurable, hierarchical system for distributing programming |
5903727, | Jun 18 1996 | Oracle America, Inc | Processing HTML to embed sound in a web page |
5903816, | Jul 01 1996 | OPENTV, INC | Interactive television system and method for displaying web-like stills with hyperlinks |
5905522, | Aug 31 1995 | Rovi Technologies Corporation | Resource allocation method for interactive televideo system |
5907681, | Oct 20 1997 | International Business Machines Corporation | Intelligent method, apparatus and computer program product for automated refreshing of internet web pages |
5917822, | Nov 15 1995 | AMERICAN CAPITAL FINANCIAL SERVICES, INC | Method for providing integrated packet services over a shared-media network |
5923891, | Mar 14 1997 | COX COMMUNICATIONS, INC | System for minimizing disk access using the computer maximum seek time between two furthest apart addresses to control the wait period of the processing element |
5946352, | May 02 1997 | Texas Instruments Incorporated | Method and apparatus for downmixing decoded data streams in the frequency domain prior to conversion to the time domain |
5952943, | Jan 24 1996 | Intel Corporation | Encoding image data for decode rate control |
5959690, | Feb 20 1996 | Research Triangle Institute | Method and apparatus for transitions and other special effects in digital motion video |
5961603, | Apr 10 1996 | Comcast IP Holdings I, LLC | Access system and method for providing interactive access to an information source through a networked distribution system |
5963203, | Jul 03 1997 | Sony Corporation | Interactive video icon with designated viewing position |
5966162, | Oct 25 1996 | Comcast IP Holdings I, LLC | Method and apparatus for masking the effects of latency in an interactive information distribution system |
5966163, | Oct 16 1996 | Cisco Technology, Inc | Providing constant bit rate upstream data transport in a two way cable system by scheduling preemptive grants for upstream data slots using selected fields of a plurality of grant fields |
5978756, | Mar 28 1996 | Intel Corporation | Encoding audio signals using precomputed silence |
5982445, | Oct 21 1996 | Google Technology Holdings LLC | Hypertext markup language protocol for television display and control |
5990862, | Sep 18 1995 | Method for efficient input device selection of onscreen objects | |
5995146, | Jan 24 1997 | CommScope Technologies LLC | Multiple video screen display system |
5995488, | Oct 08 1996 | Advanced Micro Devices, Inc. | Method and apparatus for regulating data flow in networks |
5999970, | Apr 10 1996 | COX COMMUNICATIONS, INC | Access system and method for providing interactive access to an information source through a television distribution system |
6014416, | Jun 17 1996 | SAMSUNG ELECTRONICS CO , LTD | Method and circuit for detecting data segment synchronizing signal in high-definition television |
6021386, | Jan 08 1991 | Dolby Laboratories Licensing Corporation | Coding method and apparatus for multiple channels of audio information representing three-dimensional sound fields |
6031989, | Feb 27 1997 | Microsoft Technology Licensing, LLC | Method of formatting and displaying nested documents |
6034678, | Sep 10 1991 | ACTIVEVIDEO NETWORKS, INC | Cable television system with remote interactive processor |
6049539, | Sep 15 1997 | Comcast IP Holdings I, LLC | Access system and method for providing interactive access to an information source through a networked distribution system |
6049831, | Nov 02 1996 | Level 3 Communications, LLC | System for transmitting network-related information where requested network information is separately transmitted as definitions and display information |
6052555, | Oct 05 1995 | Microsoft Technology Licensing, LLC | Method for speeding MPEG encoding using JPEG pre-processing |
6055314, | Mar 22 1996 | Rovi Technologies Corporation | System and method for secure purchase and delivery of video content programs |
6055315, | Dec 09 1997 | ACTIVEVIDEO NETWORKS, INC | Distributed scrambling method and system |
6064377, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Subscriber directed simultaneous multiple signal presentation for interactive cable television system |
6078328, | Jun 08 1998 | GOOGLE LLC | Compressed video graphics system and methodology |
6084908, | Oct 25 1995 | MEDIATEK, INC | Apparatus and method for quadtree based variable block size motion estimation |
6100883, | Sep 28 1990 | ACTIVEVIDEO NETWORKS, INC | Home interface controller for providing interactive cable television |
6108625, | Apr 02 1997 | SAMSUNG ELECTRONICS CO , LTD | Scalable audio coding/decoding method and apparatus without overlap of information between various layers |
6115076, | Apr 20 1999 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Compressed video recording device with non-destructive effects addition |
6131182, | May 02 1997 | IBM Corporation | Method and apparatus for synthesizing and optimizing control logic based on SRCMOS logic array macros |
6141645, | May 29 1998 | ALI CORPORATION | Method and device for down mixing compressed audio bit stream having multiple audio channels |
6141693, | Jun 03 1996 | Rovi Technologies Corporation | Method and apparatus for extracting digital data from a video stream and using the digital data to configure the video stream for display on a television set |
6144698, | Oct 31 1996 | Mitsubishi Electric Research Laboratories, Inc | Digital video decoder and method of decoding a digital video signal |
6163272, | Oct 25 1996 | Comcast IP Holdings I, LLC | Method and apparatus for managing personal identification numbers in interactive information distribution system |
6166730, | Dec 03 1997 | COX COMMUNICATIONS, INC | System for interactively distributing information services |
6167084, | Aug 27 1998 | Google Technology Holdings LLC | Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals |
6169573, | Jul 03 1997 | Tata America International Corporation | Hypervideo system and method with object tracking in a compressed digital video environment |
6177931, | Aug 12 1997 | Rovi Guides, Inc | Systems and methods for displaying and recording control interface with television programs, video, advertising information and program scheduling information |
6182072, | Mar 26 1997 | Microsoft Technology Licensing, LLC | Method and apparatus for generating a tour of world wide web sites |
6184878, | Dec 23 1997 | Sarnoff Corporation | Interactive world wide web access using a set top terminal in a video on demand system |
6192081, | Oct 26 1995 | MEDIATEK, INC | Apparatus and method for selecting a coding mode in a block-based coding system |
6198822, | Feb 11 1998 | ACTIVEVIDEO NETWORKS, INC | Enhanced scrambling of slowly changing video signals |
6205582, | Dec 09 1997 | ACTIVEVIDEO NETWORKS, INC | Interactive cable television system with frame server |
6208335, | Jan 13 1997 | Comcast IP Holdings I, LLC | Method and apparatus for providing a menu structure for an interactive information distribution system |
6209024, | Apr 05 1999 | Comcast IP Holdings I, LLC | Method and apparatus for accessing an array of data storage devices by selectively assigning users to groups of users |
6226041, | Jul 28 1998 | SRI International | Logo insertion using only disposable frames |
6229895, | Mar 12 1999 | Comcast IP Holdings I, LLC | Secure distribution of video on-demand |
6233607, | Apr 01 1999 | COX COMMUNICATIONS, INC | Modular storage server architecture with dynamic data management |
6236730, | May 19 1997 | QSound Labs, Inc. | Full sound enhancement using multi-input sound signals |
6240553, | Mar 31 1999 | Comcast IP Holdings I, LLC | Method for providing scalable in-band and out-of-band access within a video-on-demand environment |
6243418, | Mar 30 1998 | ZTE Corporation | Method and apparatus for encoding a motion vector of a binary shape signal |
6253238, | Dec 02 1998 | ACTIVEVIDEO NETWORKS, INC | Interactive cable television system with frame grabber |
6253375, | Jan 13 1997 | Comcast IP Holdings I, LLC | System for interactively distributing information services |
6256047, | Jun 04 1997 | KONAMI DIGITAL ENTERTAINMENT CO , LTD | Method of judging hits and computer-readable storage medium storing game data |
6259826, | Jun 12 1997 | HEWLETT-PACKARD DEVELOPMENT COMPANY, L P | Image processing method and device |
6266369, | Jun 09 1998 | COX COMMUNICATIONS, INC | MPEG encoding technique for encoding web pages |
6266684, | Aug 06 1997 | Adobe Systems Incorporated | Creating and saving multi-frame web pages |
6268864, | Jun 11 1998 | Cisco Technology, Inc | Linking a video and an animation |
6275496, | Aug 26 1996 | Microsoft Technology Licensing, LLC | Content provider for pull based intelligent caching system |
6282207, | Mar 30 1999 | COX COMMUNICATIONS, INC | Method and apparatus for storing and accessing multiple constant bit rate data |
6289376, | Mar 31 1999 | COX COMMUNICATIONS, INC | Tightly-coupled disk-to-CPU storage server |
6292194, | Aug 04 1995 | Microsoft Technology Licensing, LLC | Image compression method to reduce pixel and texture memory requirements in graphics applications |
6298071, | Sep 03 1998 | Comcast IP Holdings I, LLC | Method and apparatus for processing variable bit rate information in an information distribution system |
6305019, | Jan 13 1997 | Charter Communications Operating, LLC | System for interactively distributing information services having a remote video session manager |
6305020, | Nov 01 1995 | ACTIVEVIDEO NETWORKS, INC | System manager and hypertext control interface for interactive cable television system |
6310915, | Sep 11 1998 | LSI Logic Corporation | Video transcoder with bitstream look ahead for rate control and statistical multiplexing |
6314572, | May 29 1998 | COX COMMUNICATIONS, INC | Method and apparatus for providing subscription-on-demand services, dependent services and contingent services for an interactive information distribution system |
6314573, | May 29 1998 | Charter Communications Operating, LLC | Method and apparatus for providing subscription-on-demand services for an interactive information distribution system |
6317151, | Jul 10 1997 | Mitsubishi Denki Kabushiki Kaisha | Image reproducing method and image generating and reproducing method |
6317885, | Jun 26 1997 | Microsoft Technology Licensing, LLC | Interactive entertainment and information system using television set-top box |
6324217, | Jul 08 1998 | COX COMMUNICATIONS, INC | Method and apparatus for producing an information stream having still images |
6349284, | Nov 20 1997 | Samsung SDI Co., Ltd. | Scalable audio encoding/decoding method and apparatus |
6359939, | May 20 1998 | COX COMMUNICATIONS, INC | Noise-adaptive packet envelope detection |
6378036, | Mar 12 1999 | COX COMMUNICATIONS, INC | Queuing architecture including a plurality of queues and associated method for scheduling disk access requests for video content |
6385771, | Apr 27 1998 | Comcast IP Holdings I, LLC | Generating constant timecast information sub-streams using variable timecast information streams |
6386980, | Dec 26 1998 | Kabushiki Kaisha Sega Enterprises | Game apparatus, game system using same, and information processing unit |
6389075, | Jun 09 1998 | COX COMMUNICATIONS, INC | MPEG encoding technique for encoding web pages |
6389218, | Nov 30 1998 | COX COMMUNICATIONS, INC | Method and apparatus for simultaneously producing compressed play and trick play bitstreams from a video frame sequence |
6415031, | Mar 12 1999 | Comcast IP Holdings I, LLC | Selective and renewable encryption for secure distribution of video on-demand |
6415437, | Jul 23 1998 | TIVO CORPORATION | Method and apparatus for combining video sequences with an interactive program guide |
6438140, | Nov 19 1998 | Comcast IP Holdings I, LLC | Data structure, method and apparatus providing efficient retrieval of data from a segmented information stream |
6446037, | Aug 09 1999 | Dolby Laboratories Licensing Corporation | Scalable coding method for high quality audio |
6459427, | Apr 01 1998 | Comcast Cable Communications Management, LLC | Apparatus and method for web-casting over digital broadcast TV network |
6477182, | Jun 08 1999 | Charter Communications Operating, LLC | Data transmission method and apparatus |
6480210, | Jun 30 1999 | Meta Platforms, Inc | Video browsing space |
6481012, | Oct 27 1999 | TIVO CORPORATION | Picture-in-picture and multiple video streams using slice-based encoding |
6505169, | Jan 26 2000 | AT&T Corp | Method for adaptive ad insertion in streaming multimedia content |
6510554, | Apr 27 1998 | SEDNA PATENT SERVICES, LLC DELAWARE LLC | Method for generating information sub-streams for FF/REW applications |
6512793, | Apr 28 1998 | Canon Kabushiki Kaisha | Data processing apparatus and method |
6525746, | Aug 16 1999 | University of Washington | Interactive video object processing environment having zoom window |
6536043, | Feb 14 1996 | DISTRIBUTED MEDIA SOLUTIONS, LLC | Method and systems for scalable representation of multimedia data for progressive asynchronous transmission |
6557041, | Aug 24 1998 | Qualcomm Incorporated | Real time video game uses emulation of streaming over the internet in a broadcast event |
6560496, | Jun 30 1999 | Hughes Electronics Corporation | Method for altering AC-3 data streams using minimum computation |
6564378, | Dec 08 1997 | Rovi Guides, Inc; TV GUIDE, INC ; UV CORP | Program guide system with browsing display |
6578201, | Nov 20 1998 | Comcast IP Holdings I, LLC | Multimedia stream incorporating interactive support for multiple types of subscriber terminals |
6579184, | Dec 10 1999 | RPX Corporation | Multi-player game system |
6584153, | Jul 23 1998 | TIVO CORPORATION | Data structure and methods for providing an interactive program guide |
6588017, | Jan 27 1999 | COX COMMUNICATIONS, INC | Master and slave subscriber stations for digital video and interactive services |
6598229, | Nov 20 1998 | Comcast IP Holdings I, LLC | System and method for detecting and correcting a defective transmission channel in an interactive information distribution system |
6604224, | Mar 31 1999 | Comcast IP Holdings I, LLC | Method of performing content integrity analysis of a data stream |
6606746, | Oct 16 1997 | OPENTV, INC. | Interactive television system and method for displaying a graphical user interface using insert pictures |
6614442, | Jun 26 2000 | S3 GRAPHICS CO , LTD | Macroblock tiling format for motion compensation |
6614843, | Apr 15 1999 | TIVO CORPORATION | Stream indexing for delivery of interactive program guide |
6621870, | Apr 15 1999 | TIVO CORPORATION | Method and apparatus for compressing video sequences |
6625574, | Sep 17 1999 | Matsushita Electric Industrial., Ltd. | Method and apparatus for sub-band coding and decoding |
6639896, | Apr 01 1999 | COX COMMUNICATIONS, INC | Asynchronous serial interface (ASI) ring network for digital information distribution |
6645076, | Mar 03 1999 | KONAMI COMPUTER ENTERTAINMENT TOKYO CO , LTD | Game apparatus with game player physical strength recognition |
6651252, | Oct 27 1999 | TIVO CORPORATION | Method and apparatus for transmitting video and graphics in a compressed form |
6657647, | Sep 25 2000 | Intellectual Ventures I LLC | Controlling the order in which content is displayed in a browser |
6675385, | Oct 21 1998 | Comcast Cable Communications Management, LLC | HTML electronic program guide for an MPEG digital TV system |
6675387, | Apr 06 1999 | Comcast Cable Communications Management, LLC | System and methods for preparing multimedia data using digital video data compression |
6681326, | Mar 12 1999 | Comcast IP Holdings I, LLC | Secure distribution of video on-demand |
6681397, | Jan 21 2000 | COX COMMUNICATIONS, INC | Visual improvement of video stream transitions |
6684400, | May 29 1998 | Charter Communications Operating, LLC | Method and apparatus for providing dynamic pricing services for an interactive information distribution system |
6687663, | Jun 25 1999 | Dolby Laboratories Licensing Corporation | Audio processing method and apparatus |
6691208, | Mar 12 1999 | Sedna Patent Services, LLC | Queuing architecture including a plurality of queues and associated method for controlling admission for disk access requests for video content |
6697376, | Nov 20 1998 | TIVO CORPORATION | Logical node identification in an information transmission network |
6698020, | Jun 15 1998 | Microsoft Technology Licensing, LLC | Techniques for intelligent video ad insertion |
6704359, | Apr 15 1999 | TIVO CORPORATION | Efficient encoding algorithms for delivery of server-centric interactive program guide |
6717600, | Dec 15 2000 | ACTIVISION PUBLISHING, INC | Proximity selection of selectable item in a graphical user interface |
6718552, | Apr 20 1999 | TIVO CORPORATION | Network bandwidth optimization by dynamic channel allocation |
6721794, | Apr 01 1999 | Comcast IP Holdings I, LLC | Method of data management for efficiently storing and retrieving data to respond to user access requests |
6721956, | Jul 17 2001 | Cisco Technology, Inc | Interactive information services system and associated method for capturing transaction data |
6727929, | Aug 16 2000 | International Business Machines Corporation | Automatic determination of nearest window controller having a function consistent with motion of cursor |
6731605, | Jun 19 2000 | RAKUTEN GROUP, INC | Prioritized optimal server side bandwidth allocation in a multimedia session with push and pull sources |
6732370, | Nov 30 1998 | TIVO CORPORATION | Service provider side interactive program guide encoder |
6747991, | Apr 26 2000 | Carnegie Mellon University | Filter and method for adaptively modifying the bit rate of synchronized video and audio streams to meet packet-switched network bandwidth constraints |
6754271, | Apr 15 1999 | TIVO CORPORATION | Temporal slice persistence method and apparatus for delivery of interactive program guide |
6754905, | Jul 23 1998 | TIVO CORPORATION | Data structure and methods for providing an interactive program guide |
6758540, | Dec 21 1998 | Thomson Licensing S.A. | Method and apparatus for providing OSD data for OSD display in a video signal having an enclosed format |
6766407, | Mar 27 2001 | Microsoft Technology Licensing, LLC | Intelligent streaming framework |
6771704, | Feb 28 2000 | Intel Corporation | Obscuring video signals for conditional access |
6785902, | Dec 20 1999 | Microsoft Technology Licensing, LLC | Document data structure and method for integrating broadcast television with web pages |
6807528, | May 08 2001 | DOLBY LABORATORIES LICENSING CORP | Adding data to a compressed data frame |
6810528, | Dec 03 1999 | Sony Interactive Entertainment LLC | System and method for providing an on-line gaming experience through a CATV broadband network |
6813690, | Jun 12 2001 | Network Appliance, Inc | Caching media data using content-sensitive identifiers |
6817947, | Dec 10 1999 | RPX Corporation | Multi-player game system |
6820277, | Apr 20 1999 | PRIME RESEARCH ALLIANCE E , INC , A CORPORATION OF BRITISH VIRGIN ISLANDS | Advertising management system for digital video streams |
6831947, | Mar 23 2001 | Sharp Laboratories of America, Inc. | Adaptive quantization based on bit rate prediction and prediction error energy |
6886178, | Apr 01 1998 | Comcast Cable Communications Management, LLC | Digital TV system with synchronized world wide web content |
6907574, | Nov 29 2000 | ACTIVEVIDEO NETWORKS, INC | System and method of hyperlink navigation between frames |
6931291, | May 08 1997 | STMICROELECTRONICS ASIA PACIFIC PTE LTD | Method and apparatus for frequency-domain downmixing with block-switch forcing for audio decoding functions |
6934965, | Jul 23 1998 | Sedna Patent Services, LLC | System for generating, distributing and receiving an interactive user interface |
6941019, | May 10 2000 | International Business Machines Corporation; International Business Machines | Reentry into compressed data |
6941574, | Jul 01 1996 | OPENTV, INC A DELAWARE CORPORATION | Interactive television system and method having on-demand web-like navigational capabilities for displaying requested hyperlinked web-like still images associated with television content |
6947509, | Nov 30 1999 | Verance Corporation | Oversampled filter bank for subband processing |
6950623, | Sep 19 2000 | RPX Corporation | Methods and systems for dynamically serving in-stream advertisements |
6952221, | Dec 18 1998 | THOMSON LICENSING S A | System and method for real time video production and distribution |
6956899, | Mar 23 1998 | INTELLECTUAL DISCOVERY, INC | Precise bit control apparatus with look-ahead for MPEG encoding |
6978470, | Dec 26 2001 | ALPHONSO INC | System and method for inserting advertising content in broadcast programming |
7016540, | Nov 24 1999 | NEC Corporation | Method and system for segmentation, classification, and summarization of video images |
7030890, | Nov 02 1999 | INTERDIGITAL CE PATENT HOLDINGS | Displaying graphical objects |
7031385, | Oct 01 1999 | BASS AERO PTE LTD | Method and apparatus for detecting scene change of a compressed moving-picture, and program recording medium therefor |
7050113, | Mar 26 2002 | International Business Machines Corporation | Digital video data scaler and method |
7089577, | Jan 14 2000 | Google Technology Holdings LLC | Process for supplying video-on-demand and other requested programs and services from a headend |
7093028, | Dec 15 1999 | Microsoft Technology Licensing, LLC | User and content aware object-based data stream transmission methods and arrangements |
7095402, | Feb 28 2001 | Saturn Licensing LLC | Portable information terminal apparatus, information processing method, computer-program storage medium, and computer-program |
7114167, | Jun 18 2002 | Bellsouth Intellectual Property Corporation | Content control in a device environment |
7124424, | Nov 27 2000 | COX COMMUNICATIONS, INC | Method and apparatus for providing interactive program guide (IPG) and video-on-demand (VOD) user interfaces |
7146615, | Jul 09 1999 | France Telecom; Telediffusion de France | System for fast development of interactive applications |
7146628, | Nov 08 2000 | COX COMMUNICATIONS, INC | Messaging protocol for interactive delivery system |
7151782, | Aug 09 2005 | ARRIS ENTERPRISES LLC | Method and system for providing multiple services to end-users |
7158676, | Feb 01 1999 | Emuse Media Limited | Interactive system |
7200836, | Jan 21 1998 | Apple, Inc; Apple Inc | Menu authoring for automatically performing low-level DVD configuration functions |
7212573, | Jun 13 2003 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and/or apparatus for determining minimum positive reference indices for a direct prediction mode |
7224731, | Jun 28 2002 | ZHIGU HOLDINGS LIMITED | Motion estimation/compensation for screen capture video |
7272556, | Sep 23 1998 | Alcatel Lucent | Scalable and embedded codec for speech and audio signals |
7310619, | Sep 30 2002 | CLOUDROCK LLC | Detail-in-context lenses for interacting with objects in digital image presentations |
7325043, | Mar 08 2000 | Music Choice | System and method for providing a personalized media service |
7346111, | Dec 10 2003 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Co-located motion vector storage |
7360230, | Jul 27 1998 | Microsoft Technology Licensing, LLC | Overlay management |
7412423, | Jun 07 1996 | Sony Corporation | Charging system and charging method |
7412505, | Jun 18 2002 | KNAPP INVESTMENT COMPANY LIMITED | Notification device interaction |
7421082, | Dec 28 2000 | Sony Corporation | Data delivery method and data delivery system using sets of passkeys generated by dividing an encryption key |
7444306, | Oct 24 2003 | Method and apparatus for the rental or sale, and secure distribution of digital content | |
7444418, | May 11 2001 | OPTIMORPHIX, INC | Transcoding multimedia information within a network communication system |
7500235, | Sep 05 2003 | Time Warner Cable Enterprises LLC | Technique for updating a resident application and associated parameters in a user terminal through a communications network |
7508941, | Jul 22 2003 | Cisco Technology, Inc. | Methods and apparatus for use in surveillance systems |
7512577, | Feb 14 2006 | Apple Inc | Learning device interaction rules |
7543073, | Dec 10 2004 | Microsoft Technology Licensing, LLC | System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate |
7596764, | Apr 04 2003 | AUTODESK, Inc | Multidimensional image data processing |
7623575, | Jan 05 2005 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and apparatus for sub-pixel motion compensation |
7669220, | Apr 20 1999 | TIVO CORPORATION | Network bandwidth optimization by dynamic channel allocation |
7742609, | Apr 08 2002 | WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT | Live performance audio mixing system with simplified user interface |
7743400, | Jul 17 2002 | Panasonic Corporation | Video data transmission/reception system in which compressed image data is transmitted from a transmission-side apparatus to a reception-side apparatus |
7751572, | Apr 15 2005 | DOLBY INTERNATIONAL AB | Adaptive residual audio coding |
7757157, | Mar 19 1999 | Sony Corporation | Editor for defining shared scenes, with separately controllable command objects, to create superimposed final scenes |
7818444, | Apr 30 2004 | DISH TECHNOLOGIES LLC | Apparatus, system, and method for multi-bitrate content streaming |
7830388, | Feb 07 2006 | LU, YANG | Methods and apparatus of sharing graphics data of multiple instances of interactive application |
7840905, | Jan 06 2003 | Apple Inc | Creating a theme used by an authoring application to produce a multimedia presentation |
7936819, | Jul 08 2005 | ACTIVEVIDEO NETWORKS, INC | Video encoder with latency control |
7941645, | Jul 28 2004 | Nvidia Corporation | Isochronous pipelined processor with deterministic control |
7945616, | Sep 26 2002 | Haivision Network Video, Inc. | Digital content delivery and viewing system and method |
7970263, | May 28 2004 | Adobe Inc | Seamless integration of video capture in demonstration applications |
7987489, | Jan 07 2003 | Microsoft Technology Licensing, LLC | Legacy device bridge for residential or non-residential networks |
8027353, | Jun 02 2006 | TELEFONAKTIEBOLAGET LM ERICSSON PUBL | IMS service proxy in HIGA |
8036271, | Feb 24 2004 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and apparatus for determining a second picture for temporal direct-mode block prediction |
8046798, | Jan 11 2001 | Prime Research Alliance E, Inc. | Profiling and identification of television viewers |
8074248, | Jul 26 2005 | ACTIVEVIDEO NETWORKS, INC | System and method for providing video content associated with a source image to a television in a communication network |
8078603, | Oct 05 2006 | RhythmOne, LLC | Various methods and apparatuses for moving thumbnails |
8118676, | Jul 08 2005 | ACTIVEVIDEO NETWORKS, INC | Video game system using pre-encoded macro-blocks |
8136033, | Oct 13 2008 | Adobe Inc | Converting a graphic object from a first format to a second format with the aid of a stored checksum |
8149917, | Feb 01 2008 | ACTIVEVIDEO NETWORKS, INC | Transition creation for encoded video in the transform domain |
8155194, | Aug 05 2005 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Method and apparatus for MPEG-2 to H.264 video transcoding |
8155202, | Jan 12 2007 | ACTIVEVIDEO NETWORKS, INC | System and method for encoding scrolling raster images |
8170107, | Mar 06 2008 | AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED | Flexible reduced bandwidth compressed video decoder |
8194862, | Jul 31 2009 | ACTIVEVIDEO NETWORKS, INC | Video game system with mixing of independent pre-encoded digital audio bitstreams |
8243630, | Oct 19 2005 | Microsoft Technology Licensing, LLC | Application-level routing protocol for multiparty audio-video conferencing |
8270439, | Jul 08 2005 | ACTIVEVIDEO NETWORKS, INC | Video game system using pre-encoded digital audio mixing |
8284842, | Jul 08 2005 | ACTIVEVIDEO NETWORKS, INC | Video game system using pre-encoded macro-blocks and a reference grid |
8296424, | Aug 19 2005 | RIVERBED TECHNOLOGY LLC | Network capacity planning |
8370869, | Nov 06 1998 | The Trustees of Columbia University in the City of New York | Video description system and method |
8411754, | Nov 10 2008 | ACTIVEVIDEO NETWORKS, INC | System, method, and computer program product for translating an element of a static encoded image in the encoded domain |
8442110, | May 05 2000 | ACTIVEVIDEO NETWORKS, INC. | Method for bandwidth regulation on a cable television system channel |
8473996, | Mar 17 2009 | ACTIVEVIDEO NETWORKS, INC | Apparatus and methods for syndication of on-demand video |
8619867, | Jul 08 2005 | ACTIVEVIDEO NETWORKS, INC. | Video game system using pre-encoded macro-blocks and a reference grid |
8621500, | Sep 01 2005 | AT&T Intellectual Property I, L.P. | Methods, systems, and devices for bandwidth conservation |
8656430, | Jul 14 2011 | Pixelworks, Inc | Processing system with electronic program guide authoring and methods for use therewith |
8781240, | Dec 17 2001 | Microsoft Technology Licensing, LLC | Skip macroblock coding |
8839317, | May 24 2012 | Time Warner Cable Enterprises LLC | Methods and apparatus for providing multi-source bandwidth sharing management |
9204113, | Jun 28 2010 | Ambarella International LP | Method and/or apparatus for implementing high dynamic range image processing in a video processing system |
20010005360, | |||
20010008845, | |||
20010043215, | |||
20010049301, | |||
20020007491, | |||
20020013812, | |||
20020016161, | |||
20020021353, | |||
20020026642, | |||
20020027567, | |||
20020032697, | |||
20020040482, | |||
20020047899, | |||
20020049975, | |||
20020054578, | |||
20020056083, | |||
20020056107, | |||
20020056136, | |||
20020059638, | |||
20020059644, | |||
20020062484, | |||
20020066101, | |||
20020067766, | |||
20020069267, | |||
20020072408, | |||
20020078171, | |||
20020078456, | |||
20020083464, | |||
20020091738, | |||
20020095689, | |||
20020105531, | |||
20020108121, | |||
20020131511, | |||
20020136298, | |||
20020152318, | |||
20020171765, | |||
20020175931, | |||
20020178447, | |||
20020188628, | |||
20020191851, | |||
20020194592, | |||
20020196746, | |||
20030005452, | |||
20030018796, | |||
20030020671, | |||
20030027517, | |||
20030035486, | |||
20030038893, | |||
20030039398, | |||
20030046690, | |||
20030051253, | |||
20030058941, | |||
20030061451, | |||
20030065739, | |||
20030066093, | |||
20030071792, | |||
20030072372, | |||
20030076546, | |||
20030088328, | |||
20030088400, | |||
20030095790, | |||
20030107443, | |||
20030122836, | |||
20030123664, | |||
20030126608, | |||
20030126611, | |||
20030131349, | |||
20030135860, | |||
20030154128, | |||
20030169373, | |||
20030177199, | |||
20030188309, | |||
20030189980, | |||
20030196174, | |||
20030208768, | |||
20030217360, | |||
20030229719, | |||
20030229778, | |||
20030229900, | |||
20030231218, | |||
20040016000, | |||
20040034873, | |||
20040040035, | |||
20040054965, | |||
20040055007, | |||
20040073924, | |||
20040078822, | |||
20040088375, | |||
20040091171, | |||
20040111526, | |||
20040117827, | |||
20040128686, | |||
20040133704, | |||
20040136698, | |||
20040139158, | |||
20040157662, | |||
20040163101, | |||
20040184542, | |||
20040193648, | |||
20040210824, | |||
20040261106, | |||
20040261114, | |||
20040268419, | |||
20050015259, | |||
20050015816, | |||
20050021830, | |||
20050034155, | |||
20050034162, | |||
20050044575, | |||
20050055685, | |||
20050055721, | |||
20050071876, | |||
20050076134, | |||
20050089091, | |||
20050091690, | |||
20050091695, | |||
20050105608, | |||
20050114906, | |||
20050132305, | |||
20050135385, | |||
20050141613, | |||
20050149988, | |||
20050155063, | |||
20050160088, | |||
20050166257, | |||
20050177853, | |||
20050180502, | |||
20050196139, | |||
20050198682, | |||
20050213586, | |||
20050216933, | |||
20050216940, | |||
20050226426, | |||
20050273832, | |||
20050283741, | |||
20060001737, | |||
20060020960, | |||
20060020994, | |||
20060026663, | |||
20060031906, | |||
20060039481, | |||
20060041910, | |||
20060064716, | |||
20060075449, | |||
20060088105, | |||
20060095944, | |||
20060112338, | |||
20060117340, | |||
20060143678, | |||
20060161538, | |||
20060173985, | |||
20060174026, | |||
20060174289, | |||
20060195884, | |||
20060203913, | |||
20060212203, | |||
20060218601, | |||
20060230428, | |||
20060239563, | |||
20060242570, | |||
20060256865, | |||
20060269086, | |||
20060271985, | |||
20060277569, | |||
20060285586, | |||
20060285819, | |||
20070009035, | |||
20070009036, | |||
20070009042, | |||
20070011702, | |||
20070025639, | |||
20070028278, | |||
20070028288, | |||
20070033528, | |||
20070033631, | |||
20070074251, | |||
20070079325, | |||
20070101359, | |||
20070115941, | |||
20070124282, | |||
20070124795, | |||
20070130446, | |||
20070130592, | |||
20070147804, | |||
20070152984, | |||
20070162953, | |||
20070172061, | |||
20070174790, | |||
20070178243, | |||
20070192798, | |||
20070234220, | |||
20070237232, | |||
20070300280, | |||
20080034306, | |||
20080046928, | |||
20080052742, | |||
20080060034, | |||
20080066135, | |||
20080084503, | |||
20080086688, | |||
20080086747, | |||
20080094368, | |||
20080097953, | |||
20080098450, | |||
20080104520, | |||
20080127255, | |||
20080144711, | |||
20080154583, | |||
20080163059, | |||
20080163286, | |||
20080170619, | |||
20080170622, | |||
20080178125, | |||
20080178243, | |||
20080178249, | |||
20080181221, | |||
20080184120, | |||
20080187042, | |||
20080189740, | |||
20080195573, | |||
20080201736, | |||
20080212942, | |||
20080222199, | |||
20080232452, | |||
20080243918, | |||
20080243998, | |||
20080246759, | |||
20080253440, | |||
20080253685, | |||
20080271080, | |||
20090003446, | |||
20090003705, | |||
20090007199, | |||
20090025027, | |||
20090031341, | |||
20090041118, | |||
20090083781, | |||
20090083813, | |||
20090083824, | |||
20090089188, | |||
20090094113, | |||
20090094646, | |||
20090100465, | |||
20090100489, | |||
20090106269, | |||
20090106386, | |||
20090106392, | |||
20090106425, | |||
20090106441, | |||
20090106451, | |||
20090106511, | |||
20090113009, | |||
20090132942, | |||
20090138966, | |||
20090144781, | |||
20090146779, | |||
20090157868, | |||
20090158369, | |||
20090160694, | |||
20090172757, | |||
20090178098, | |||
20090183219, | |||
20090189890, | |||
20090193452, | |||
20090196346, | |||
20090204920, | |||
20090210899, | |||
20090225790, | |||
20090228620, | |||
20090228922, | |||
20090233593, | |||
20090251478, | |||
20090254960, | |||
20090265617, | |||
20090271512, | |||
20090271818, | |||
20090298535, | |||
20090313674, | |||
20090328109, | |||
20100009623, | |||
20100033638, | |||
20100035682, | |||
20100058404, | |||
20100067571, | |||
20100073371, | |||
20100077441, | |||
20100104021, | |||
20100115573, | |||
20100118972, | |||
20100131996, | |||
20100146139, | |||
20100158109, | |||
20100161825, | |||
20100166071, | |||
20100174776, | |||
20100175080, | |||
20100180307, | |||
20100211983, | |||
20100226428, | |||
20100235861, | |||
20100242073, | |||
20100251167, | |||
20100254370, | |||
20100265344, | |||
20100325655, | |||
20100325668, | |||
20110002376, | |||
20110002470, | |||
20110023069, | |||
20110035227, | |||
20110067061, | |||
20110072474, | |||
20110096828, | |||
20110099594, | |||
20110107375, | |||
20110110433, | |||
20110110642, | |||
20110150421, | |||
20110153776, | |||
20110167468, | |||
20110191684, | |||
20110231878, | |||
20110243024, | |||
20110258584, | |||
20110261889, | |||
20110283304, | |||
20110289536, | |||
20110296312, | |||
20110317982, | |||
20120008786, | |||
20120023126, | |||
20120023250, | |||
20120030212, | |||
20120030706, | |||
20120137337, | |||
20120204217, | |||
20120209815, | |||
20120216232, | |||
20120221853, | |||
20120224641, | |||
20120257671, | |||
20120284753, | |||
20130003826, | |||
20130047074, | |||
20130071095, | |||
20130086610, | |||
20130179787, | |||
20130198776, | |||
20130254308, | |||
20130272394, | |||
20130304818, | |||
20130305051, | |||
20140032635, | |||
20140033036, | |||
20140081954, | |||
20140223307, | |||
20140223482, | |||
20140267074, | |||
20140269930, | |||
20140289627, | |||
20140317532, | |||
20140344861, | |||
20150195525, | |||
AT191599, | |||
AT198969, | |||
AT250313, | |||
AT472152, | |||
AT475266, | |||
AU199060189, | |||
AU199184838, | |||
AU2004253127, | |||
AU2005278122, | |||
AU2010339376, | |||
AU2011249132, | |||
AU2011258972, | |||
AU2011315950, | |||
AU550086, | |||
AU620735, | |||
AU643828, | |||
CA1302554, | |||
CA2052477, | |||
CA2163500, | |||
CA2231391, | |||
CA2273365, | |||
CA2313133, | |||
CA2313161, | |||
CA2528499, | |||
CA2569407, | |||
CA2728797, | |||
CA2787913, | |||
CA2798541, | |||
CA2814070, | |||
CA682776, | |||
CN101180109, | |||
CN101627424, | |||
CN101637023, | |||
CN102007773, | |||
CN103647980, | |||
CN1507751, | |||
CN1969555, | |||
DE4408355, | |||
DE602006015650, | |||
DE602008001596, | |||
DE69132518, | |||
DE69333207, | |||
DE69516139, | |||
DE98961961, | |||
EP93549, | |||
EP128771, | |||
EP419137, | |||
EP449633, | |||
EP477786, | |||
EP523618, | |||
EP534139, | |||
EP568453, | |||
EP588653, | |||
EP594350, | |||
EP612916, | |||
EP624039, | |||
EP638219, | |||
EP643523, | |||
EP661888, | |||
EP714684, | |||
EP746158, | |||
EP761066, | |||
EP789972, | |||
EP830786, | |||
EP861560, | |||
EP881808, | |||
EP933966, | |||
EP1026872, | |||
EP1038397, | |||
EP1038399, | |||
EP1038400, | |||
EP1038401, | |||
EP1051039, | |||
EP1055331, | |||
EP1120968, | |||
EP1345446, | |||
EP1422929, | |||
EP1428562, | |||
EP1521476, | |||
EP1645115, | |||
EP1725044, | |||
EP1767708, | |||
EP1771003, | |||
EP1772014, | |||
EP1877150, | |||
EP1887148, | |||
EP1900200, | |||
EP1902583, | |||
EP1908293, | |||
EP1911288, | |||
EP1918802, | |||
EP2100296, | |||
EP2105019, | |||
EP2106665, | |||
EP2116051, | |||
EP2124440, | |||
EP2248341, | |||
EP2269377, | |||
EP2271098, | |||
EP2304953, | |||
EP2364019, | |||
EP2384001, | |||
EP2409493, | |||
EP2477414, | |||
EP2487919, | |||
EP2520090, | |||
EP2567545, | |||
EP2577437, | |||
EP2628306, | |||
EP2632164, | |||
EP2632165, | |||
EP2695388, | |||
ES2207635, | |||
FR2529739, | |||
FR2891098, | |||
FR8211463, | |||
GB2207838, | |||
GB2248955, | |||
GB2290204, | |||
GB2365649, | |||
GB2378345, | |||
HK1116323, | |||
HK1134855, | |||
IE19913397, | |||
IL215133, | |||
IL222829, | |||
IL222830, | |||
IL225525, | |||
IL99586, | |||
IN180215, | |||
IN200701744, | |||
IN200800214, | |||
IN200900856, | |||
IS3759, | |||
JP10228437, | |||
JP10510131, | |||
JP11134273, | |||
JP11261966, | |||
JP1188419, | |||
JP2000152234, | |||
JP2001145112, | |||
JP2001203995, | |||
JP2001241993, | |||
JP2001245271, | |||
JP2001245291, | |||
JP2001514471, | |||
JP2002016920, | |||
JP2002057952, | |||
JP2002112220, | |||
JP2002141810, | |||
JP2002208027, | |||
JP2002300556, | |||
JP2002319991, | |||
JP2003087673, | |||
JP2003087785, | |||
JP2003506763, | |||
JP2003529234, | |||
JP2004056777, | |||
JP2004110850, | |||
JP2004112441, | |||
JP2004135932, | |||
JP2004264812, | |||
JP2004312283, | |||
JP2004501445, | |||
JP2004533736, | |||
JP2004536381, | |||
JP2004536681, | |||
JP2005033741, | |||
JP2005084987, | |||
JP2005095599, | |||
JP2005123981, | |||
JP2005156996, | |||
JP2005260289, | |||
JP2005309752, | |||
JP2005519382, | |||
JP2005523479, | |||
JP2006067280, | |||
JP2006246358, | |||
JP2006512838, | |||
JP2007129296, | |||
JP2007264440, | |||
JP2007522727, | |||
JP2008523880, | |||
JP2008535622, | |||
JP2009159188, | |||
JP2009543386, | |||
JP2011108155, | |||
JP2012080593, | |||
JP4252727, | |||
JP4373286, | |||
JP4996603, | |||
JP5121711, | |||
JP53004612, | |||
JP5331008, | |||
JP5405819, | |||
JP60054324, | |||
JP6054324, | |||
JP63033988, | |||
JP63263985, | |||
JP7015720, | |||
JP7160292, | |||
JP8095599, | |||
JP8265704, | |||
KR1020050001362, | |||
KR1020050085827, | |||
KR1020060095821, | |||
KR1333200, | |||
KR2006067924, | |||
KR2007038111, | |||
KR20080001298, | |||
KR2008024189, | |||
KR2008045154, | |||
KR2010111739, | |||
KR2010120187, | |||
KR2010127240, | |||
KR2011030640, | |||
KR2011129477, | |||
KR20120112683, | |||
KR2013061149, | |||
KR2013113925, | |||
KR2013138263, | |||
NL1032594, | |||
NL1033929, | |||
NL2004670, | |||
NL2004780, | |||
NZ239969, | |||
PT99110, | |||
RE35314, | Jan 31 1990 | WARNER BROS ENTERTAINMENT INC | Multi-player, multi-character cooperative play video game with independent player entry and departure |
WO7372, | |||
WO8967, | |||
WO19910, | |||
WO38430, | |||
WO41397, | |||
WO139494, | |||
WO141447, | |||
WO182614, | |||
WO192973, | |||
WO2076099, | |||
WO2089487, | |||
WO3026232, | |||
WO3047710, | |||
WO3065683, | |||
WO3071727, | |||
WO3091832, | |||
WO5120067, | |||
WO1982002303, | |||
WO1989008967, | |||
WO199322877, | |||
WO1994016534, | |||
WO1994019910, | |||
WO1994021079, | |||
WO1995032587, | |||
WO199533342, | |||
WO1996014712, | |||
WO1996027843, | |||
WO1996031826, | |||
WO1996042168, | |||
WO199637074, | |||
WO1997016925, | |||
WO1997033434, | |||
WO1997039583, | |||
WO1998026595, | |||
WO1999000735, | |||
WO1999030496, | |||
WO1999030497, | |||
WO1999030500, | |||
WO1999030501, | |||
WO1999035840, | |||
WO1999041911, | |||
WO1999056468, | |||
WO199965243, | |||
WO199966732, | |||
WO2000002303, | |||
WO2002076097, | |||
WO2003026275, | |||
WO2004012437, | |||
WO2004018060, | |||
WO2004057609, | |||
WO2004073310, | |||
WO2005002215, | |||
WO2005041122, | |||
WO2005053301, | |||
WO2005076575, | |||
WO2006014362, | |||
WO2006022881, | |||
WO2006053305, | |||
WO2006067697, | |||
WO2006081634, | |||
WO2006105480, | |||
WO2006110268, | |||
WO2007001797, | |||
WO2007008319, | |||
WO2007008355, | |||
WO2007008356, | |||
WO2007008357, | |||
WO2007008358, | |||
WO2007018722, | |||
WO2007018726, | |||
WO2008044916, | |||
WO2008086170, | |||
WO2008088741, | |||
WO2008088752, | |||
WO2008088772, | |||
WO2008100205, | |||
WO2009038596, | |||
WO2009099893, | |||
WO2009099895, | |||
WO2009105465, | |||
WO2009110897, | |||
WO2009114247, | |||
WO2009155214, | |||
WO2010044926, | |||
WO2010054136, | |||
WO2010107954, | |||
WO2011014336, | |||
WO2011082364, | |||
WO2011139155, | |||
WO2011149357, | |||
WO2012051528, | |||
WO2012138660, | |||
WO2013106390, | |||
WO2013155310, | |||
WO2013184604, | |||
WO9013972, | |||
WO9322877, | |||
WO9515658, | |||
WO9900735, | |||
WO9904568, | |||
WO9965232, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Dec 31 2009 | ACTIVEVIDEO NETWORKS, INC. | (assignment on the face of the patent) | / | |||
Jan 14 2010 | DAHLBY, JOSHUA | ACTIVEVIDEO NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024010 | /0015 | |
Jan 14 2010 | MARSAVIN, ANDREY | ACTIVEVIDEO NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024010 | /0015 | |
Jan 14 2010 | LAWRENCE, CHARLES | ACTIVEVIDEO NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024010 | /0015 | |
Jan 14 2010 | PAVLOVSKAIA, LENA Y | ACTIVEVIDEO NETWORKS, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 024010 | /0015 | |
Aug 01 2015 | ACTIVEVIDEO NETWORKS, INC | ACTIVEVIDEO NETWORKS, LLC | CONVERSION OF ENTITY | 066665 | /0689 |
Date | Maintenance Fee Events |
Sep 15 2017 | BIG: Entity status set to Undiscounted (note the period is included in the code). |
Apr 23 2021 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Nov 21 2020 | 4 years fee payment window open |
May 21 2021 | 6 months grace period start (w surcharge) |
Nov 21 2021 | patent expiry (for year 4) |
Nov 21 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Nov 21 2024 | 8 years fee payment window open |
May 21 2025 | 6 months grace period start (w surcharge) |
Nov 21 2025 | patent expiry (for year 8) |
Nov 21 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Nov 21 2028 | 12 years fee payment window open |
May 21 2029 | 6 months grace period start (w surcharge) |
Nov 21 2029 | patent expiry (for year 12) |
Nov 21 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |