Fast channel change apparatus and method for IPTV
Summary by NHIP
Shared I-frame Buffering System
The system buffers I-frames for multiple channels and modifies them using subsequent B-frames and P-frames before channel changes. It stores modified frames in a cluster memory shared by at least two digital subscriber line access multiplexers to serve user requests.
Claim Score by NHIP
Abstract
The present disclosure provides a system that can receive a group of channels (at least one of which includes an I-frame) from a DSL network, a memory that can store the I-frames, and a channel change detector that can detect a user's selection of a particular channel. If the memory contains the I-frame corresponding to the particular channel and if an I-frame has not been received from the DSL network, then the system provides the stored I-frame from the memory to the user.

Term
Projected expiry 25 January 2027.
- Priority and filed
- Granted
- Today
- Projected expiry
12 claims: 3 independent, 9 dependent
- 1A non-transitory computer readable medium including processor executable program instructions that, when executed by the processor, cause the processor to perform operations comprising:responsive to receiving B-frames, P-frames, and I-frames, including a first selected I-frame, for a plurality of channels in a first group of channels sent from a server to a user, buffering the first selected I-frame in a buffer of a digital subscriber line access multiplexer;modifying the first selected I-frame based on subsequently received B-frames and P-frames to produce a modified I-frame;replacing the first selected I-frame in the buffer with the modified I-frame;responsive to receiving B-frames, P-frames, and I-frames for a second plurality of channels sent from a server to a user, storing a second selected I-frame in a cluster memory shared by at least two digital subscriber line access multiplexers;detecting a user event from the user;and providing the modified I-frame to the user in response to the user event.
- 5Broadest claimClaim Score 47, average(NHIP)A method for providing video content, the method comprising:responsive to receiving B-frames, P-frames, and I-frames, including a first selected I-frame, for a plurality of channels in a first group of channels sent from a server to a user, buffering the first selected I-frame in a buffer of a digital subscriber line access multiplexer;modifying the first selected I-frame based on subsequently received B-frames and P-frames to produce a modified I-frame;replacing the first selected I-frame in the buffer with the modified I-frame;responsive to receiving B-frames, P-frames, and I-frames for a second plurality of channels sent from a server to a user, storing a second selected I-frame in a cluster memory shared by at least two digital subscriber line access multiplexers;detecting a user event from the user;and providing the modified I-frame to the user in response to the user event.
- 9A network element for providing content to a user, the network element comprising:a processor;a memory, accessible to the processor, including processor executable instructions, that, when executed by the processor, cause the processor to perform operations comprising: responding to receiving B-frames, P-frames, and I-frames, including a first selected I-frame, for a plurality of channels in a first group of channels sent from a server to a user by buffering the first selected I-frame in a digital subscriber line access multiplexer buffer;modifying the first selected I-frame based on subsequently received B-frames and P-frames to produce a modified I-frame;replacing the first selected I-frame in the buffer with the modified I-frame;responding to receiving B-frames, P-frames, and I-frames for a second plurality of channels sent from a server to a user by storing a second selected I-frame in a cluster memory shared by at least two digital subscriber line access multiplexers;detecting a user event from the user;and providing the modified I-frame to the user in response to the user event.
Independent claims3
58 paragraphs in 3 sections, as filed
BACKGROUND OF THE DISCLOSURE
1. Field of the Disclosure
The present disclosure relates to the field of switched-network services.
2. Background
Switched-networks, such as digital subscriber line (DSL) networks, are used to provide services, such as Internet access, Internet Protocol Television (IPTV), Video-on-Demand (VoD), Voice over Internet (VoIP), etc. A typical DSL network includes various servers and routers that form a backbone for the DSL network. These servers receive, among other things, DSL content (such as video, voice and data) from various sources and transmit the DSL content to central offices (COs) located in different geographical areas. Switches, such as Digital Subscriber Line Access Multiplexers (DSLAMs), distribute the DSL content to customer equipment, and establish two-way communication between the network and the customer equipment. A DSLAM typically contains multiple (a few hundred) ports, each providing a dedicated connection to a subscriber or customer interface equipment, such as a modem (also referred to herein as the customer gateway).
In a switched IPTV network, each channel of IPTV service is associated with an IP multicast group and delivered to a customer as an IP multicast stream. A customer typically selects to watch a channel by using a set-top-box (STB) that sends a “JOIN” message to the network, requesting to join the corresponding IP multicast group. Upon receiving such a “JOIN” request, the network starts sending the associated multicast stream to the customer's STB.
Typically, a video stream consists of a sequence of different types of frames that includes the video and voice contents. These frames are referred to as I-frame, B-frame and P-frame. I-frame, which stands for index frame, is a frame that is used as a reference to predict and encode other frames, such as B-frames or P-frames, which follow the I-frame. An I-frame and the B-frames and P-frames that follow the I-until frame (until the next I-frame) is often called a group of pictures (GOP). The distance between I-frames in a video stream typically ranges from 0.3-5 seconds, depending on the encoding schemes and video contents. Thus, when a customer changes to a channel between I-frames, the customer may have to wait for as long as 5 seconds until the next I-frame arrives from a video server to see a clear picture. Thus, there is a need for system and method that can provide the video content faster to the customers.
BRIEF DESCRIPTION OF THE DRAWINGS
For detailed understanding of the present disclosure, references should be made to the following detailed description of an exemplary embodiment, taken in conjunction with the accompanying drawings, in which like elements have been given like numerals, wherein:
<figref idrefs="DRAWINGS">FIG. 1</figref> is a representation of a switched Internet Protocol Television (IPTV) network, or ITPV Service Architecture, in accordance with an embodiment of the present disclosure;
<figref idrefs="DRAWINGS">FIG. 2</figref> is a flowchart depicting a method for providing video content, in accordance with an embodiment of the present invention;
<figref idrefs="DRAWINGS">FIG. 3</figref> is a representation of a computer readable medium containing instructions operative to be executed in a computer containing a processor, in accordance with an embodiment of the present invention;
<figref idrefs="DRAWINGS">FIG. 4</figref> is a representation of a network element that can provide content to a user in a network, in accordance with an embodiment of the present invention;
<figref idrefs="DRAWINGS">FIG. 5</figref> is a flowchart depicting a method for modifying a network element, in accordance with an embodiment of the present invention;
<figref idrefs="DRAWINGS">FIG. 6</figref> is a flowchart of a method for providing content to a user in a network, in accordance with yet another embodiment of the present disclosure; and
<figref idrefs="DRAWINGS">FIG. 7</figref> is a diagrammatic representation of a machine in the form of a computer system within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed herein.
DETAILED DESCRIPTION OF THE DISCLOSURE
In view of the above, the present disclosure through one or more of its various aspects and/or embodiments is presented to provide one or more advantages, such as those noted below.
The present disclosure, in one aspect, provides a computer program embedded in a computer readable medium that contains instructions operative to be executed by a processor. The computer program includes at least one instruction operative to cause the processor to buffer an I-frame sent from a server to a user; at least one instruction operative to cause the processor to detect a user event from the user; and at least one instruction operative to cause the processor to provide the I-frame to the user in response to the user event. The computer program may further include at least one instruction operative to cause the processor to buffer an I-frame for each channel in a group of channels, the group of channels being at least one of: all channels available in the network, all channels subscribed by a group of customers or a neighborhood, all channels that are frequently watched by the neighborhood, and predicted channels based upon at least one of user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules. The computer program also may include at least one instruction operative to cause the processor to circularly FIFO buffer a most recent I-frame for each channel of the group of channels, and at least one instruction operative to cause the processor to share the I-frame with another processor of a processor cluster. The user event may be a channel change or a user device error.
The present disclosure further provides a method for providing video content, the method comprising buffering an I-frame transmitted over a network in a network device; detecting a user event from a user; and providing the buffered I-frame to the user in response to the user event. The method further may comprise buffering an I-frame for each channel in a group of channels, the group of channels being at least one of: all channels available in the network, all channels to which a neighborhood is subscribed, all channels that are frequently watched by the neighborhood, and all predicted channels (predicting a next channel based upon at least one of user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules). The buffering includes buffering a most recent I-frame for each channel from a group of channels.
The present disclosure also provides a network element that is operative to provide content to a user in a network. The network element includes a memory operative to store an I-frame of the content; a user event detector that is operative to detect a user event from the user; and a processor operative to buffer an I-frame in the memory, and further operative to provide the I-frame from the memory to the user in response to the user event. The memory of the network element may be further operative to store an I-frame of the content for each channel in a group of channels, the group of channels including the desired channel and being at least one of: all channels available in the network, all channels to which a neighborhood is subscribed, all channels that are frequently watched by the neighborhood, and all predicted channels (predicting a next channel based upon at least one of user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules). The memory may be a circular FIFO buffer and may be accessible by another processor of a processor cluster.
<figref idrefs="DRAWINGS">FIG. 1</figref> is a representation of a switched Internet Protocol Television (IPTV) network, or ITPV Service Architecture <b>100</b>, in accordance with an embodiment of the present disclosure. IPTV uses a two-way digital broadcast signal sent through a switched network by way of a broadband connection and a set-top box (STB). The STB is programmed with software that can forward viewer requests (for example, a command sent by using a television remote) to a server, such as a video server (SVS) in the network, which can provide access to many available media sources (e.g. broadcast network channels, subscription services, and video-on-demand). Though there are many possible media sources, only one video channel is described for ease of understanding.
The IPTV network of <figref idrefs="DRAWINGS">FIG. 1</figref> may be implemented using broadband services based on any digital subscriber line (DSL) technology. There are various types of DSL technologies, such as asymmetric DSL, high bit-rate DSL, single-line DSL, very-high-data-rate DSL, integrated services digital network DSL, and rate-adaptive DSL having various transmission rates, switched circuit characteristics, and other known operation characteristics. These are collectively referred to herein as xDSL technologies. DSL services offer users high digital data rates over telephony transmission facilities. The transmission facilities or links that connect customer premises equipment to the network are commonly known as the “loop” and include two wires twisted together.
As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, the switched IPTV network <b>100</b> includes carrier-side access devices which as referred to as switched DSL Access Multiplexers (DSLAMs) <b>108</b>. DSLAMs <b>108</b> perform traffic aggregation, grooming, policing, access multiplexing and other tasks. Through DSLAMs, the network <b>100</b> is able to communicate with dedicated information sources and with the Internet. As a result, information accessible to the backbone network <b>102</b> may be communicated between network <b>100</b> and the customer site device, such as a STB or modem <b>110</b>. In one aspect of this disclosure, the switched IPTV network may be said to operate in a Digital Subscriber Line Access Multiplexer (DSLAM) environment.
As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, the system <b>100</b> (or the IPTV Service Architecture <b>100</b>) includes a super hub office (SHO) <b>101</b>, a national backbone <b>102</b>, a video hub office <b>104</b>, a metronetwork <b>106</b>, a DSLAM <b>108</b>, a channel buffer device <b>116</b> and a customer gateway or set top box <b>110</b>. The SHO <b>101</b> may include a variety of sewers that obtain a variety of content (video, voice data) and provide to other servers and routers in the national backbone <b>102</b>. VHO <b>104</b> may be part of the national backbone or may be located in various geographical areas and includes servers <b>105</b>, router <b>107</b>, and transport links <b>109</b>. Metronetworks (also sometimes referred to as central offices) provide connectivity through DSLAMs between the VHOs on the network and the customer gateway <b>110</b> on the client site. The channel buffer device <b>116</b> may further include memory for buffering data streams including I-frames, programs or instructions that detect channel changes received via a client premise equipment, such as STB <b>110</b>, a processor and computer programs or instructions that provide the stored I-frame to the DSLAM in response to a customer event, such as a change of a channel. It should be noted that the functions of the channel buffer device <b>116</b> may be integrated into a DSLAM or any other suitable device that interfaces with the customer gateway. The customer side also is shown to include a viewing device <b>112</b> and a remote <b>114</b> device that is used to change channels.
The switched IPTV network <b>100</b> may be used to distribute video signals, including compressed video signals. Video compression may be implemented through I-frames, P-frames, and B-frames. I-frames, or “infraframes,” (also known as “key frames” or “index frames”) are independently decodable, and store all the data required to display a frame. The I-frame is used as a reference to predict and encode B-frames or P-frames that follow the I-frame.
Still referring to <figref idrefs="DRAWINGS">FIG. 1</figref>, P-frames, or “predicted” frames, are predicted from a previous I-frame or P-frame, and contain information needed to recreate a video frame in conjunction with the information in the previous I-frame. B-frames, or “bi-directional” frames, describe motion vectors of discrete shapes within the image, between one past I-frame or P-frame and/or one future I-frame or P-frame. Any future frame on which a B-frame depends is provided before the B-frame, but presented after the B-frame, but if the motion vector is constant, moving images may be accurately presented even though I-frames may be infrequent. Also “sync” frames and use frame reordering may be used. H.263 and H.264 codecs, for example, within an STB can present video based on the I-frames, B-frames, and P-frames.
A particular I-frame and the B-frames and P-frames that follow the I-frame, until the next I-frame is received, is often called a group of pictures (GOP). Typically the distance between I-frames in a video stream ranges from 0.3-5 seconds, depending on the encoding schemes and video contents. When a viewer changes to a channel between I-frames, even if the network can start sending the corresponding video stream to his/her STB immediately, he/she may still have to wait for as long as 5 seconds until the next I-frame to see a clear picture. However, the channel change time for typical TV services is between 0.5-2 seconds.
In the present disclosure, the channel buffer device <b>116</b> may receive and buffer the latest frames for a channel up to the most recent “N” I-frames, where N may be as small as <b>1</b>. In the IPTV mode, the DSLAM <b>108</b> receives a group of channels. The DSLAM <b>108</b> may join a group of channels, such as all multicast groups for all channels. The channel frame buffers <b>116</b> may accordingly store frame data up to the most recent “N” I-frames for each channel in a group of channels or a group of frequently watched channels. Alternatively, the channel frame buffers <b>116</b> may store and buffer a most recent I-frame for each channel in the group of channels.
Still referring to <figref idrefs="DRAWINGS">FIG. 1</figref>, in one aspect, the DSLAM <b>108</b> may adopt a hashing mechanism to select a subgroup of all channels. The hashing mechanism may be, for example, viewing frequency based hashing, to decide which multicast groups (channels) to join and buffer. The channel frame buffer <b>116</b> may accordingly store an I-frame for each channel to which at least one user coupled to the DSLAM <b>108</b> is currently subscribed, and/or an I-frame for each channel to which at least one user coupled to the DSLAM <b>108</b> may become subscribed. The memory of the channel frame buffer <b>116</b> may utilize any suitable storing scheme, including a circular memory buffer, such as a circular first in, first out (FIFO) buffer, that can store a most recent I-frame for each channel of the group of channels, and delete an oldest I-frame for each channel of the group of channels in response to a full status.
In another aspect, the DSLAM <b>108</b> may also predict a next channel based upon each user's viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and/or programming schedules. For example, if a programming schedule indicates that a popular event will be televised at a particular time, the DSLAM <b>108</b> may adapt a hashing mechanism to include the popular event, even if no user is currently watching any channel that will televise the popular event. The hashing mechanism may be adapted to determine a user habit, such as whether a particular user prefers to watch comedies, sporting events, or musical performances and may include customized buffering in the memory.
As shown in <figref idrefs="DRAWINGS">FIG. 1</figref>, in another aspect, the DSLAM <b>108</b> may also include a dedicated user channel corresponding to each user equipment that is coupled to the DSLAM <b>108</b>. The DSLAM <b>108</b> may provide I-frames, B-frames, and/or P-frames to each user. So long as the user does not change channels, the DSLAM <b>108</b> continues to provide the received signals from the backbone, including I-frames, B-frames, and/or P-frames to each user. Periodically, the DSLAM <b>108</b> receives I-frames from a video server and passes the I-frames on to the user. Between I-frames, the DSLAM <b>108</b> typically receives P-frames and/or B-frames, and passes the P-frames and/or a B-frames on to the user. Each channel periodically provides an I-frame, and (in between I-frames) each channel provides B-frames and/or P-frames. The DSLAM <b>108</b> may provide the unicast signal that may contain at least one of a modified P-frame and a modified B-frame.
Users typically frequently change channels. The channel change detector of channel charge buffer <b>116</b> detects a user's selection of a particular channel by intercepting a channel change request from the STB <b>110</b>. If a user changes to a particular channel after the channel has provided an I-frame, the DSLAM <b>108</b> retrieves an I-frame from the memory of the channel change buffer and provides that I-frame to the STB <b>110</b>. Accordingly, the STB <b>110</b> is able to reconstruct a full image from subsequently provided B-frames and/or P-frames.
In response to the channel change request, the DSLAM <b>108</b> may send the channel's buffered frames, from the most recent I-frame to the last buffered frame, to the STB via unicast at a faster pace than the multicast frame rate. If desired, the DSLAM <b>108</b> may calculate a modified I-frame based upon a stored I-frame and a received P-frame and/or B-frame. The modified I-frame may replace the stored I-frame in the memory. When a user changes channels to a particular channel corresponding to the modified I-frame, the DSLAM <b>108</b> may provided the modified I-frame to the STB of the user. The DSLAM <b>108</b> may provide a unicast signal containing at least one of a modified P-frame and a modified B-frame.
In the switched IPTV network, or IPTV Service Architecture <b>100</b>, each channel of IPTV service may be associated with an IP multicast group and delivered to a viewer as an IP multicast stream. A viewer may select to watch a channel by using the STB to send a “JOIN” message to the network, requesting to join the corresponding IP multicast group. Upon receiving such a “JOIN” request, the network may start sending the associated multicast stream to the viewer's STB.
The DSLAM <b>108</b> may continue to provide a unicast signal based upon the I-frame from memory, or may switch to provide a multicast signal that the DSLAM <b>108</b> receives from a server further upstream. The DSLAM <b>108</b> may then start to sending multicast instead of unicast stream to the STB when it determines that unicast and multicast streams are in sync. Specifically, the DSLAM <b>108</b> may switch to the multicast signal upon determining that the unicast signal and the multicast signals are in aync. The DSLAM <b>108</b> may determine that the unicast and multicast streams are in sync when, for example, the DSLAM <b>108</b> has sent the last buffered frame to the STB via unicast. The DSLAM <b>108</b> may also determine that the unicast and multicast streams are in sync when, for example, a new I-frame has just been received via multicast. Other situations may also allow the DSLAM <b>108</b> to determine that the unicast and multicast streams are in sync.
The DSLAM <b>108</b> may compare the I-frame stored in the memory with a received version of the particular channel, and may switch to the received version of the particular channel in response to a determination that the received version and the unicast signal are synchronized. For example, the DSLAM <b>108</b> may switch to the received version of the particular channel in response to a determination that the received version contains an I-frame. In response to a determination that the unicast and multicast streams are in sync, the DSLAM <b>108</b> may start sending multicast stream from the I-frame, which may sometimes result in jump-ahead to viewer experience.
In accordance with another embodiment of the present disclosure, the DSL network may also include a cluster memory coupled to at least two DSLAM <b>108</b><i>s</i>. The cluster memory may store an I-frame such that each DSLAM <b>108</b> coupled to the cluster memory may retrieve an I-frame from the cluster memory in response to the channel change detector. Accordingly I-frames corresponding to rarely-viewed channels may be stored in the cluster memory rather than in any particular DSLAM <b>108</b>. The cluster memory may be better able than a server at the central office to provide an I-frame quickly to any DSLAM <b>108</b> coupled to the cluster memory.
In accordance with another embodiment of the present disclosure, the DSL environment may also include a coprocessor coupled to the DSLAM <b>108</b>. The coprocessor may be able to create a modified I-frame from an I-frame and any P-frames and B-frames that may have been received since the I-frame. The coprocessor may insert the modified I-frame into the memory such that if a user changes channels, the user may be provided with a modified I-frame. The modified I-frame need not be available to any other DSLAM <b>108</b> within the DSL network.
The described embodiment may include any type of server that provides fast channel change (FCC) for less frequently viewed channel including servers referred to as the “channel change servers”. The described embodiment may implement the proposed FCC method in a separate platform and integrating it into a DSLAM <b>108</b> locally or via LAN.
The functions and operations described may be implemented in the server located in the network <b>100</b> which may be a separate platform that interacts with other components, such as DSLAMs. Thus, it is a flexible system that can be implemented anywhere in the network <b>100</b>.
Still referring to <figref idrefs="DRAWINGS">FIG. 1</figref>, the described embodiment of the present invention may be used to reduce a risk of metro network congestion, particularly if many viewers change channels within a short time frame, since some multicast streams may be provided from the DSLAM rather than from one of the servers <b>105</b> as a channel change server, which is deployed deep in the network in the VHO <b>104</b> and which might otherwise have to provide a unicast stream to the STB <b>110</b>. The unicast video streams from the DSLAM may be assigned any priority with only slight burden on the Quality of Service (QoS) of the IPTV network, since the unicast video stream from the DSLAM is provided only on a portion of the IPTV network between the DSLAM and the STB. Scalability of the channel change servers may also be preserved and enhanced, possibly reducing to a minimum number of channel change servers required to provide adequate service.
<figref idrefs="DRAWINGS">FIG. 2</figref> is a flowchart depicting a method for providing video content, in accordance with an embodiment of the present invention. The method may include buffering <b>210</b> an I-frame in a network from a server to a user, possibly including circularly FIFO buffering <b>220</b> a most recent I-frame for a channel, or for each channel of a group of channels. The group of channels may include all channels available in the network, or all channels to which a neighborhood is subscribed, or all channels that are frequently watched by the neighborhood, or all predicted channels. The group of predicted channels may be created by predicting a next channel based upon at least one of user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules.
The method may include detecting <b>230</b> a user event, such as a channel change and/or a user device error, from the user. Finally, the method may include providing <b>240</b> the I-frame to the user in response to the user event. If desired, the method may also include sharing <b>250</b> the I-frame with another processor of a processor cluster.
<figref idrefs="DRAWINGS">FIG. 3</figref> is a representation of a computer readable medium containing instructions operative to be executed in a computer containing a processor, in accordance with an embodiment of the present invention. The instructions may include, for example, at least one instruction <b>310</b> that can cause the processor to buffer an I-frame in a network from a server to a user, possibly including at least one instruction <b>320</b> that can cause the processor to circularly FIFO buffer a most recent I-frame for each channel of the group of channels. The instructions may also include at least one instruction that can cause the processor to buffer an I-frame for each channel in a group of channels. The group of channels may include all channels available in the network, or all channels to which a neighborhood is subscribed, or all channels that are frequently watched by the neighborhood, or all predicted channels. The group of predicted channels may be created by predicting a next channel based upon at least one of user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules.
The instructions may include at least one instruction <b>330</b> that can cause the processor to detect a user event, such as a channel change and/or user device error, from the user. Finally, the instructions may include at least one instruction <b>340</b> that can cause the processor to provide the I-frame to the user in response to the user event. The instructions may also include at least one instruction that can cause the processor to share <b>350</b> the I-frame with another processor of a processor cluster.
<figref idrefs="DRAWINGS">FIG. 4</figref> is a representation of a network element that can provide content to a user in a network, in accordance with an embodiment of the present invention. The network element may include a memory <b>410</b>, such as a circular FIFO buffer <b>420</b>, that can store an I-frame of the content. The network element may include a user event detector <b>430</b> that can detect a user event, such as a channel change and/or a user device error, from the user. Also, the network element may include a processor <b>440</b> that can buffer an I-frame in the memory, that can provide the I-frame from the memory to the user in response to the user event.
The processor <b>440</b> may be able to determine a desired channel in response to the user event, and the memory may be able to store an I-frame of the content for each channel in a group of channels, such that the group of channels may include the desired channel. The group of channels may include all channels available in the network, or all channels to which a neighborhood is subscribed, or all channels that are frequently watched by the neighborhood, or all predicted channels. Predicting a next channel may be based upon at least one of the following: user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules. If desired, the memory may be accessible by another processor of a processor cluster. The processor <b>440</b> may reside within a DSLAM of a switched IPTV network, or an IPTV Service Architecture.
<figref idrefs="DRAWINGS">FIG. 5</figref> is a flowchart depicting a method for modifying a network element, in accordance with an embodiment of the present invention. The method may include coupling a memory <b>510</b>, such as a circular FIFO buffer that can buffer a most recent I-frame for a desired channel or for each channel of the group of channels, to the network element such that the memory can buffer an I-frame in a network from a server to a user. The method may include adapting <b>520</b> the network element to detect a user event, such as a channel change and/or a user device error, from the user. Finally, the method may include providing <b>530</b> the I-frame to the user in response to the user event.
The coupling <b>510</b> may allow the memory to buffer an I-frame for each channel in a group of channels, including a desired channel. The group of channels may include all channels available in the network, or all channels to which a neighborhood is subscribed, or all channels that are frequently watched by the neighborhood, or all predicted channels. Predicted channels may be determined based upon at least one of the following: user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and programming schedules. The method may also include coupling <b>540</b> the memory to another network element.
<figref idrefs="DRAWINGS">FIG. 6</figref> is a flowchart of a method for providing content to a user in a network, in accordance with yet another embodiment of the present disclosure. The method may include receiving <b>602</b> one or more multicast signals from one or more servers in a DSL network. At least one of the multicast signals may include an I-frame. The method may also include determining which channel each user has selected <b>604</b>, and how recently each user has selected a channel <b>606</b>. The method may also include providing the multicast signal corresponding to the selected channel <b>608</b> to each user who has not recently (as determined by an I-frame periodicity) selected a channel.
The method may also include determining <b>612</b> whether each of the multicast signals belongs to a predetermined group of channels, in accordance with a hashing mechanism. The predetermined group of channels may be defined in accordance with user viewing patterns, neighborhood viewing patterns, network viewing patterns, time of day, day of week, and/or programming schedules, and may include channels that are frequently watched, channels to which at least one user is currently subscribed, or channels to which at least one user may become subscribed.
For each of the multicast signals of the predetermined group of channels, the method may also store copies of I-frames <b>614</b>, and may avoid storing copies of B-frames and P-frames. Since any of the multicast signals (including those which belong to the predetermined group of channels) may contain I-frames, some I-frames may be stored. Specifically, the method may include circular FIFO buffering, i.e. storing a most recent I-frame and, in response to a full status, deleting an oldest I-frame corresponding to each multicast signal of the predetermined group of channels.
As indicated above, the method may include providing the multicast signal corresponding to the selected channel to each user who has not selected a channel within a predetermined period of time (since the most recent I-frame from the IPTV network). However, the method may also include providing a unicast signal to each user who has recently selected a channel <b>616</b>.
The method may also include detecting a user's selection of a particular channel <b>618</b>. In response to the detecting the user's selection of a particular channel <b>618</b>, the method may include determining whether a stored I-frame corresponding to the particular channel resides within the memory <b>620</b>. If an I-frame corresponding to the particular channel resides within the memory, the method may include providing a unicast signal based upon the stored I-frame to the user <b>622</b>. The unicast signal may include the I-frame, or may include a modified I-frame that has been updated in accordance with P-frames and B-frames received since the I-frame was received.
The method may also include comparing the unicast signal to a corresponding multicast signal <b>624</b> to determine whether the unicast signal is in sync with the multicast signal, and may include determining whether an I-frame has been received while the DSLAM is providing the unicast signal <b>626</b>. If the unicast signal is in sync with the multicast signal, or if an I-frame has been received while the DSLAM is providing the unicast signal (or both), the method may include switching to providing the corresponding multicast signal rather than the unicast signal <b>628</b>.
The method may also include updating the predetermined group of channels <b>630</b>, in accordance with a hashing mechanism. For example, if the predetermined group of channels is defined to include most-frequently watched channels, then the predetermined group of channels may be updated should the users begin to watch theretofore unwatched channels. The method may also include storing an I-frame in a cluster memory <b>632</b> such that more than one processor coupled to the cluster memory may retrieve an I-frame from the cluster memory in response to the channel change detector at a user corresponding to the processor.
<figref idrefs="DRAWINGS">FIG. 7</figref> is a diagrammatic representation of a machine in the form of a computer system <b>700</b> within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies discussed herein. In some embodiments, the machine operates as a standalone device. In some embodiments, the machine may be connected (e.g., using a network) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client user machine in a server-client user network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may comprise a server computer, a client user computer, a personal computer (PC), a tablet PC, a set-top box (STB), a Personal Digital Assistant (PDA), a cellular telephone, a mobile device, a palmtop computer, a laptop computer, a desktop computer, a personal digital assistant, a communications device, a wireless telephone, a land-line telephone, a control system, a camera, a scanner, a facsimile machine, a printer, a pager, a personal trusted device, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. It will be understood that a device of the present invention includes broadly any electronic device that provides voice, video or data communication. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.
The computer system <b>700</b> may include a processor <b>702</b> (e.g., a central processing unit (CPU), a graphics processing unit (GPU), or both), a main memory <b>704</b> and a static memory <b>706</b>, which communicate with each other via a bus <b>708</b>. The computer system <b>700</b> may further include a video display unit <b>710</b> (e.g., a liquid crystal display (LCD), a flat panel, a solid state display, or a cathode ray tube (CRT)). The computer system <b>700</b> may include an input device <b>712</b> (e.g., a keyboard), a cursor control device <b>714</b> (e.g., a mouse), a disk drive unit <b>716</b>, a signal generation device <b>718</b> (e.g., a speaker or remote control) and a network interface device <b>720</b>.
The disk drive unit <b>716</b> may include a machine-readable medium <b>722</b> on which is stored one or more sets of instructions (e.g., software <b>724</b>) embodying any one or more of the methodologies or functions described herein, including those methods illustrated herein above. The instructions <b>724</b> may also reside, completely or at least partially, within the main memory <b>704</b>, the static memory <b>706</b>, and/or within the processor <b>702</b> during execution thereof by the computer system <b>700</b>. The main memory <b>704</b> and the processor <b>702</b> also may constitute machine-readable media. Dedicated hardware implementations including, but not limited to, application specific integrated circuits, programmable logic arrays and other hardware devices can likewise be constructed to implement the methods described herein. Applications that may include the apparatus and systems of various embodiments broadly include a variety of electronic and computer systems. Some embodiments implement functions in two or more specific interconnected hardware modules or devices with related control and data signals communicated between and through the modules, or as portions of an application-specific integrated circuit. Thus, the example system is applicable to software, firmware, and hardware implementations.
It will be understood that the foregoing description is merely an example of the disclosure, which is not limited by such description, but rather by the claims and their equivalents. The scope of the disclosure herein also includes any novel feature or any novel combination of features disclosed either explicitly or implicitly or any generalization or modification thereof which would be apparent to persons skilled in the relevant art, and any and all legal equivalents thereof, whether or not such relates to the same disclosure as presently claimed in any claim and whether or not it mitigates any or all of the same technical problems as confronted by the present disclosure. The teachings of the foregoing disclosure will suggest other modifications to those persons skilled in the relevant art, including some modifications that may involve other features which are already known and which may be used instead of or in addition to features already described herein. The applicants hereby reserve the right to formulate new claims to such features and/or combinations of such features during the prosecution of the present application or of any further application derived there from.
Contents3
6 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6
Every citation, both waysCites: the store holds 32 of 33
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US2010138876A1 | Cited by | United States of America | Search report |
| US2010138876A1 | Cited by | United States of America | Pre-grant |
| US2001019559A1 | Cites | United States of America | Applicant |
| US2002016831A1 | Cites | United States of America | Applicant |
| US2003167472A1 | Cites | United States of America | Search report |
| US2004128317A1 | Cites | United States of America | Search report |
| US2005081244A1 | Cites | United States of America | Search report |
| US2005207449A1 | Cites | United States of America | Search report |
| US2005283547A1 | Cites | United States of America | Search report |
| US2006075428A1 | Cites | United States of America | Search report |
| US2006195881A1 | Cites | United States of America | Search report |
| US2007002946A1 | Cites | United States of America | Search report |
| US2007061831A1 | Cites | United States of America | Search report |
| US2007088971A1 | Cites | United States of America | Search report |
| US2007140647A1 | Cites | United States of America | Search report |
| US2007143816A1 | Cites | United States of America | Search report |
| US2007234395A1 | Cites | United States of America | Search report |
| US5434852A | Cites | United States of America | Applicant |
| US5440334A | Cites | United States of America | Applicant |
| US5477263A | Cites | United States of America | Applicant |
| US5481542A | Cites | United States of America | Applicant |
| US5506615A | Cites | United States of America | Applicant |
| US5513180A | Cites | United States of America | Applicant |
| US5757798A | Cites | United States of America | Applicant |
| US6011805A | Cites | United States of America | Search report |
| US6044403A | Cites | United States of America | Applicant |
| US6118498A | Cites | United States of America | Search report |
| US6369855B1 | Cites | United States of America | Applicant |
| US6522668B1 | Cites | United States of America | Applicant |
| US6728965B1 | Cites | United States of America | Search report |
| US6763019B2 | Cites | United States of America | Applicant |
| US6806909B1 | Cites | United States of America | Applicant |
| US6850691B1 | Cites | United States of America | Search report |
| US6959372B1 | Cites | United States of America | Search report |
| PCT International Search Report and Written Opinion of the International Searching Authority dated Oct. 29, 2007. | Non-patent | – | Applicant |
5 members in 3 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 32792906 | United States of America | A | |
| US20060327929 | – | – | – |
Members5
| Document | Office | Kind | |
|---|---|---|---|
| US2007160038A1 | United States of America | A1 | |
| FR2896115A1 | France | A1 | |
| WO2007082165A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2007082165A3 | World Intellectual Property Organization (WIPO) | A3 | |
| US8630306B2This record | United States of America | B2 |
90 transactions on the USPTO file
Allowed after 5 non-final rejections, 3 final rejections and 3 RCEs.
- Non-final rejections
- 5
- Final rejections
- 3
- RCEs
- 3
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Expire PatentEXP. | EXP. | |
| Maintenance Fee Reminder MailedREM. | REM. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Mail Notice of Rescinded AbandonmentAbandonedMNRAB | MNRAB | |
| Notice of Rescinded Abandonment in TCsAbandonedNRAB | NRAB | |
| Mail-Petition to Revive Application - GrantedMPREV | MPREV | |
| Petition to Revive Application - GrantedPREV | PREV | |
| Petition EnteredPET. | PET. | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Correspondence Address ChangeC.AD | C.AD | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Additional Application Filing FeesADDFLFEE | ADDFLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
9 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Lapsed due to failure to pay maintenance feeLapsedFP | FP | |
| Lapse for failure to pay maintenance feesLapsedPATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYLAPS | LAPS | |
| Information on status: patent discontinuationPATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362STCH | STCH | |
| Fee payment procedureMAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Fee payment procedurePAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 08630306
- Publication, DOCDB
- 8630306
- Publication, EPODOC
- US8630306
- Application
- 11327929
- Application, DOCDB
- 32792906
- Application, EPODOC
- US20060327929
Titles
- English
- Fast channel change apparatus and method for IPTV
Patent term adjustment
- A delay
- +693 daysthe office missed an examination deadline
- B delay
- +264 dayspendency past three years
- Applicant delay
- −576 days
- Net adjustment
- 381 days
Classification
- CPC, 6
- H04N7/163
- H04N21/4331
- H04N21/4384
- H04N21/44209
- H04N21/6125
- H04N21/6175
- IPC, 2
- H04L12 54
- H04N7 16
- USPC, 6
- 370428000
- 370486000
- 370546000
- 375240010
- 375240270
- 725038000