Multi-rate statistical multiplexing
Summary by NHIP
Multi-rate statistical multiplexing system
The system determines subscriber-line congestion and selects channel versions based on bandwidth and quality indicators. It balances quality across channels by switching to lower bit-rates for some streams while maintaining perceived experience for others.
Claim Score by NHIP
Abstract
A multi-rate statistical multiplexing system is configured to determine whether a subscriber-line is in a congested-state. The subscriber-line provides one or more channels requested by a subscriber. The system selects a version among different versions of each requested channel based on the level of congestion and an indicator of perceived quality of viewing experience of each requested channel. The system switches to the selected version of each channel and the perceived quality of viewing experience is maintained after switching.

Term
2.1 yearsleft in the term
Expires 12 November 2028.
- Priority and filed
- Granted
- Today
- Expires
20 claims: 3 independent, 17 dependent
- 1A multi-rate statistical multiplexing system comprising:a congestion-state determination module configured to: for a subscriber-line providing a plurality of requested channels, receive congestion information of the subscriber-line and determine a congestion-state of the subscriber-line based on a total bandwidth of the subscriber-line and a combined bit-rate of the plurality of requested channels, and for each requested channel provided by the subscriber-line, receive an indicator of quality of a viewing experience;a channel bit-rate selection module configured to: select among different versions of each of the plurality of requested channels, each version of a channel having a different bit-rate, wherein the selection is based on a balance of a quality of each of the plurality of requested channels and the congestion information of the subscriber-line;and a channel forwarding switch-control module configured to control a switch to forward the selected version of each channel based on timing information of each of the plurality of requested channels.
- 5Broadest claimClaim Score 61, broad(NHIP)A method of multi-rate statistical multiplexing comprising:receiving different versions of a plurality of channels requested on a subscriber-line, each version having a different bit-rate and a corresponding indicator of quality of a perceived viewing experience;determining a level of congestion of the subscriber-line based on a total bandwidth of the subscriber-line and a combined bit-rate of the plurality of channels requested on the subscriber-line;and selecting among the different versions of each of the plurality of requested channels based on the level of congestion and one or more indicators of perceived quality of each of the plurality of requested channels, wherein the selection is based on a balance of the perceived quality of each of the plurality of requested channels with the level of congestion of the subscriber-line.
- 18A non-transitory computer readable storage medium on which is embedded one or more computer programs, the one or more computer programs implementing a method for multi-rate statistical multiplexing, the one or more computer programs comprising computer readable code for:receiving different versions of a plurality of channels requested on a subscriber-line each version having a different bit-rate and a corresponding indicator of quality of a perceived viewing experience;determining a level of congestion of the subscriber-line based on a total bandwidth of the subscriber-line and a combined bit-rate of the plurality of channels requested on the subscriber-line;and selecting among the different versions of each of the plurality of requested channels based on the level of congestion and one or more indicators of perceived quality of each of the plurality of requested channels, wherein the selection is based on a balance of the perceived quality of each of the plurality of requested channels with the level of congestion of the subscriber-line.
Independent claims3
148 paragraphs in 4 sections, as filed
RELATED APPLICATIONS
0001This patent application is related to U.S. patent application Ser. No. 12/250,317, titled, “Multi-Rate Encoder with GOP Alignment,” filed on Oct. 13, 2008. The above-identified patent application is hereby incorporated by reference in its entirety.
BACKGROUND
0002Satellite and digital cable high definition (HD) television are available in the television industry today. Now, however, telephone companies are improving the technology of Internet Protocol Television (IPTV) to establish IPTV as an alternative that is more desirable than satellite and cable television. Therefore, one goal of IPTV is to competitively offer HD television, and more. Telephone companies contemplate this via “triple play,” a subscriber service of voice, data and video.
0003One challenge, however, involves a transmission bottleneck due to the narrow “copper pipe” (narrow bandwidth) through that video data must travel in the “last mile” of the path of transmission between a digital television service provider and a subscriber home. Conventionally, the DSLAM (digital subscriber-line access manager) marks the “edge” or beginning of the “last mile” in IPTV. Typically, a wide “fiber optic pipe” having an abundance of bandwidth leads to the DSLAM. In addition, the narrow copper pipe connects the DSLAM to the subscriber premises. Essentially, the copper pipe is the traditional telephone line infrastructure that already exists.
0004One particular issue with the copper pipe is that it rapidly attenuates video data with distance and therefore the bandwidth of the copper pipe substantially degrades from its peak bit-rate the further the distance from the DSLAM to the subscriber. A subscriber who is too far from the DSLAM has an impaired subscriber-line. An impaired subscriber-line is characterized as having less throughput than the peak bit-rate of whatever physical medium transmission technology is used to convey data across the physical medium. A subscriber who requests too much bandwidth creates a congested-state subscriber-line. A congested-state subscriber-line is characterized as having less throughput than bandwidth requested by the subscriber.
0005Typically in IPTV, a channel is not forwarded from the DSLAM to the subscriber unless a subscriber has specifically requested to view the channel. In this, consider three scenarios involving a second person requesting to view a second channel when a first viewer is already viewing a first channel.
0006In the first scenario, note, an HD channel is 8 Mbps and an SD (standard definition) channel is 4 Mbps. The copper pipe between the DSLAM and a particular subscriber premises is characterized as having a bandwidth of 12 Mbps in total. One viewer at the subscriber premises is watching a television program on an HD channel (8 Mbps). Another viewer at the same subscriber premises, using a different television, then attempts to watch a different program on an SD channel (4 Mbps). Because the bandwidth requested is 12 Mbps in total (8 Mbps+4 Mbps=12 Mbps), both viewers have a positive experience of watching the television programming each requested to watch.
0007In the second scenario, nearly all circumstances are the same except the subscriber-line is an impaired line having available bandwidth of only 11 Mbps in total. In this second scenario, the subscriber premises is further from the DSLAM when compared to the subscriber premises in the first scenario, and thus there is less bandwidth available. The first viewer is watching one SD channel (4 Mbps) and the second viewer requests one HD channel (8 Mbps). Here, the question is: what is the desired outcome? If the system grants priority to the most recent request of the second viewer and entirely shuts down service to the first viewer due to insufficient bandwidth, then it is likely that the first viewer will be unhappy. Further, the consequence of denial is 3 Mbps of unused bandwidth in total (11 Mbps−8 Mbps=3 Mbps).
0008In the third scenario, there is also an impaired subscriber-line having available only 11 Mbps of bandwidth in total. The first viewer is watching one HD channel (8 Mbps) and the second viewer requests one SD channel (4 Mbps). Here, again, the question is: what is the desired outcome? If the system grants priority to the more recent request of the second viewer and entirely shuts down service to the first viewer due to insufficient bandwidth, then it is likely the first person will be unhappy. Perhaps the first person will be particularly unhappy to know that the consequence of denial is 7 Mbps of unused bandwidth in total (11 Mbps−4 Mbps=7 Mbps). Not to mention, the service provider will also be unhappy that 7 Mbps of available bandwidth are unused.
0009It would therefore be beneficial to have a system that cost effectively maximizes the available bandwidth and minimizes degradation and disruption to viewing experience in situations involving requests for more video data than can actually fit through the pipe.
BRIEF DESCRIPTION OF THE DRAWINGS
0010Features of the present invention will become apparent to those skilled in the art from the following description with reference to the figures, in which:
0011<figref idref="DRAWINGS">FIG. 1A</figref> shows a simplified block diagram of a GOP (Group of Pictures)-aligning multi-rate encoding system configured to perform various functions described herein and operable to maintain a perceived quality of viewing during switching events, according to an embodiment of the invention;
0012<figref idref="DRAWINGS">FIG. 1B</figref> shows a simplified block diagram of a GOP-aligning multi-rate encoding apparatus configured to perform various functions described herein including rate control by transport rate buffering to maintain a perceived quality of viewing during switching events, according to an embodiment of the invention;
0013<figref idref="DRAWINGS">FIG. 1C</figref> shows a simplified block diagram of a GOP-aligning multi-rate encoding apparatus configured to perform various functions described herein and operable to perform rate control by preprocessing and/or multi-pass coding to maintain a perceived quality of viewing during switching events, according to another embodiment of the invention;
0014<figref idref="DRAWINGS">FIG. 1D</figref> shows a simplified block diagram of a multi-rate statistical multiplexing system configured to perform various functions described herein and operable to maintain a perceived quality of viewing after switching events, according to an embodiment of the invention;
0015<figref idref="DRAWINGS">FIG. 1E</figref> shows a simplified bock diagram of a multi-rate statistical switch controller configured to perform various functions described herein and operable to maintain a perceived quality of viewing after switching events, according to an embodiment of the invention;
0016<figref idref="DRAWINGS">FIG. 2</figref> illustrates a flow diagram of a method for aligning GOPs and rate control by transport rate buffering to maintain a perceived quality of viewing during switching events, according to an embodiment of the invention;
0017<figref idref="DRAWINGS">FIG. 3A</figref> illustrates a flow diagram of a method for aligning GOPs and rate control by preprocessing to maintain a perceived quality of viewing during switching events, according to an embodiment of the invention;
0018<figref idref="DRAWINGS">FIG. 3B</figref> illustrates a flow diagram of a method for aligning GOPs and rate control by multi-pass coding to maintain a perceived quality of viewing during switching events, according to an embodiment of the invention;
0019<figref idref="DRAWINGS">FIG. 3C</figref> illustrates a flow diagram of a method for maintaining a perceived quality of viewing after switching events by selecting between different versions of each channel requested by a subscriber, according to an embodiment of the invention; and
0020<figref idref="DRAWINGS">FIG. 4</figref> shows a block diagram of a computing apparatus configured to implement or execute the methods illustrated in <figref idref="DRAWINGS">FIGS. 2</figref>, <b>3</b>A, <b>3</b>B and <b>3</b>C, according to an embodiment of the invention.
DETAILED DESCRIPTION OF THE INVENTION
0021For simplicity and illustrative purposes, the present invention is described by referring mainly to embodiments thereof. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the embodiments. It will be apparent however, to one of ordinary skill in the art, that the embodiments may be practiced without limitation to these specific details.
0022Systems and methods disclosed herein cost effectively maximize bandwidth on a subscriber-per-subscriber basis in a manner that leverages available bandwidth on a congested subscriber-line by balancing perceived quality, bit-rate of each channel requested by a subscriber, and one or more indicators of perceived quality of viewing experience of each channel requested by a subscriber. In addition, the systems and method disclosed herein minimize disruption of viewing experience during switching events between different bit-rate versions of the same channel and minimizes degradation of perceived viewing experience after switching events between different bit-rate versions of the same channel.
0023An encoding system, according to an embodiment, is configured to encode the same channel, e.g., the same video data, at different bit-rates. A multi-rate statistical switching system is configured to select a version of each channel requested by a subscriber and forward to the subscriber depending on the level of congestion of the subscriber's subscriber-line, one or more indicators of perceived quality of viewing experience of each channel requested by the subscriber, and the bit-rate of each channel requested by a subscriber. This can be used to accommodate varying bandwidths for different subscribers connected to the same narrow copper pipe in the “last mile.” For example, in the second and third scenarios described above, instead of denying service to one of the viewers trying to watch a particular channel, the encoding system forwards the channel at a lower bit-rate. As an example in the second scenario, video data of the first channel may be forwarded at 7 Mbps instead of 8 Mbps. In the third scenario, the video data of the first channel may be forwarded at 3 Mbps instead of 4 Mbps. The subscriber may perceive a slight degradation in service, but the service is tolerable, especially with respect to the alternative of not receiving the channel at all. However, upon a determination, prior to the switch, by the multi-rate statistical switching system that an indicator of a perceived quality of viewing experience of each channel is comparable even at the lower bit-rates, a perceived quality of viewing experience may be maintained after switching even though switching to the lower bit-rates.
0024In addition, a switching system, according to an embodiment, is configured to forward multiple channels requested by a subscriber, whose subscriber-line is in a congested-state, by dynamically balancing available bandwidth and perceived video quality. The dynamic balancing can be performed on a subscriber-per-subscriber basis to accommodate variations of complexity of video data on each channel requested by each subscriber. For example, in the second and third scenarios described above, instead of denying service to one of the viewers trying to watch a particular channel, the switching system dynamically adjusts the bit-rate between two requested channels. As an example, when a perceived quality of viewing experience of the first channel requested by the first viewer can be maintained at a lower bit-rate (for instance, due to less complexity of video data in the first channel requested by the first viewer), the bit-rate of the first channel is lowered and the perceived quality of viewing experience is maintained. In addition, when perceived quality of viewing experience of the second channel cannot be maintained without increasing the bit-rate of the second channel (for instance, due to increased complexity of video data in the second channel requested by the second viewer), the bit-rate of the second channel is increased to maintain the quality of viewing experience.
0025Turning first to <figref idref="DRAWINGS">FIG. 1A</figref>, there is shown a block diagram of a GOP-aligning multi-rate encoding system <b>100</b>, according to an embodiment of the present invention. It should be understood that the encoding system <b>100</b> may include additional components and that some of the components described herein may be removed and/or modified without departing from the functionality of the encoding system <b>100</b>.
0026The multi-rate encoding system <b>100</b> includes a multi-rate encoder <b>101</b>, encoder-set <b>106</b>A through <b>106</b>N, encoder-set <b>108</b>A through <b>108</b>N, and so forth, including encoder-set N-A through N-N, switch <b>114</b>, switch control <b>132</b>, and VOIP/DATA <b>116</b>. In addition, the multi-rate encoding system <b>100</b> includes Subscriber 1. Subscriber 1, for example, includes two set top boxes (STBs <b>118</b>A and B), one HD digital video recorder (HD DVR <b>120</b>), one HD television (HDTV <b>122</b>), one SD digital video recorder (SD DVR <b>124</b>), one SD television (SDTV <b>126</b>), two Internet Protocol telephones (VOIP <b>128</b> and <b>134</b>), and one personal computer (PC <b>130</b>). Not shown is customer premises equipment (CPE) for Subscriber 2 through Subscriber X. However, it should be clear that Subscriber 2 through Subscriber X may include CPE similar to Subscriber 1, including any combination thereof.
0027The multi-rate encoder <b>101</b> receives a plurality of channels from video sources <b>102</b>A through <b>102</b>N. As an example, content from the video source <b>102</b>A will be discussed. The content from the video source <b>102</b>A includes video data received from a broadcaster or some other video data source, and the multi-rate encoder <b>101</b> may be located in a central office, head end, neighborhood node or other location for receiving content from the video source <b>102</b>A. Content from the video source <b>102</b>A may be received via satellite broadcast, fiber transmission, Internet, private wideband backbone, or via other known transmission media. Content from the video source <b>102</b>A may include programming that had been stored remotely before it was received. In addition, content from the video source <b>102</b>A may be locally stored after it is received. Further, content from the video source <b>102</b>A may be received according to one or more schedules. In addition, content from the video source <b>102</b>A may be received via multicast transmission (transmission to multiple destinations) or unicast transmission (transmission to one destination). For instance, content from the video source <b>102</b>A may be video on demand (VOD) that may be forwarded to one destination. In addition, content from the video source <b>102</b>A may be received in different formatting including HD, SD, or other well-known video digital data formatting and/or standard. Each of the video sources <b>102</b>B through <b>102</b>N is similar to the video source <b>102</b>A, as will be discussed.
0028The multi-rate encoder <b>101</b> includes the encoder-sets <b>106</b>, <b>108</b>, including the encoder-set N. For instance, the encoder-set <b>106</b> includes the encoders <b>106</b>A through <b>106</b>N for encoding of content from the video source <b>102</b>A into multiple streams of encoded video data at different bit-rates. Similarly, each of the remaining encoder-sets <b>108</b> through N respectively receives content from the video sources <b>102</b>B through <b>102</b>N. In addition, each of the encoder sets <b>106</b> through N respectively encode the corresponding content from the video sources <b>102</b>A through <b>102</b>N into corresponding “service-sets” each having multiple streams of video data of a channel encoded at different bit-rates. For example, the encoder-set <b>108</b>A through <b>108</b>N comprises N encoders, wherein N is an integer greater than 1. The encoder-set <b>106</b> encodes content from the video source <b>102</b>A into N different streams of encoded video data at N different bit-rates. For example, let N=4 for the encoder-set <b>106</b>. Here, the encoder-set <b>106</b> includes the encoder <b>106</b>A, <b>106</b>B, <b>106</b>C and <b>106</b>D. The encoder-set <b>106</b> encodes content from the video source <b>102</b>A into four streams of encoded video data at four different bit-rates. For example, the first stream may be encoded at 100% bit-rate, the second stream may be encoded at 90% bit-rate, the third stream may be encoded at 80% bit-rate and the fourth stream may be encoded at 70% bit-rate. Together, these four encoded streams of video data constitute one service-set each comprising a stream of encoded-GOPs.
0029Each of the video sources <b>102</b>A through <b>102</b>N provides content for a different channel. For example, each of the video sources <b>102</b>A through <b>102</b>N may be multicast, such as content provided by ABC, NBC, CBS, FOX, etc., or unicast, such as content provided by VOD, or a combination thereof.
0030Content from the video source <b>102</b>A is an “original stream.” An original stream is a stream of uncompressed image frames. For example, an original stream may be at a rate of approximately 30 frames per second. In this, content from the video source <b>102</b>A is characterized as “raw video.” Content from the video source <b>102</b>A may be in a well-known format such as a 4:2:2 format. It should be clear however, content from the video source <b>102</b>A through <b>102</b>N may be of a different format from 4:2:2; such as in a 4:2:0 format, or in other well known appropriate formats.
0031Assume an example involving ADSL2+ (Asymmetric Digital Subscriber-line 2+) that comprises a bit-rate of 24 Mbps in total (between the encoder-set <b>106</b> and the premises of Subscriber 1). For example, let content from the video source <b>102</b>A be one HD channel of video data. Here, the encoder-set <b>106</b> encodes the content from the video source <b>102</b>A. After encoding by the encoder <b>106</b>A, the bit-rate of the encoded content from the video source <b>102</b>A is 8 Mbps in total.
0032In this example, assume further, the encoder-set <b>106</b> comprises four encoders. Therefore, the encoder-set <b>106</b> includes the encoders <b>106</b>A, <b>106</b>B, <b>106</b>C and <b>106</b>D. Each of the remaining encoders <b>106</b>B through <b>106</b>D encodes content from the video source <b>102</b>A at different lower bit-rates. For example, the encoder <b>106</b>B is a 90% bit-rate encoder having a 10% loss and thus a throughput of 7.2 Mbps in total (8 Mbps×0.90=7.2 Mbps). The encoder <b>106</b>C is an 80% bit-rate encoder having a 20% loss and thus a throughput of 6.4 Mbps in total (8 Mbps×0.80=6.4 Mbps). Finally, the encoder <b>106</b>D is a 70% bit-rate encoder having a 30% loss and thus a throughput of 5.6 Mbps in total (8 Mbps×0.70=5.6 Mbps). It can be said that these four streams of encoded video data at different bit-rates is a “service-set” of a channel from video source <b>102</b>A.
0033Note also that each the encoders in the encoder-set <b>106</b> may comprise “capped bit-rate” encoding. Capped bit-rate encoding may be employed in situations involving lower complexity such as very little change in picture information from one picture to another picture. In this regard, the capped bit-rate encoding by the encoder <b>106</b>A may be employed when such encoding at a lower bit-rate results in no perceived degradation of the quality of viewing experience when compared to encoding at a constant bit-rate. For example, when the encoder <b>106</b>A encodes at a capped bit-rate, the encoder <b>106</b>B encodes at a bit-rate of 90% of the capped bit-rate of the encoder <b>106</b>A, the encoder <b>106</b>C encodes at a bit-rate of 80% of the capped bit-rate of the encoder <b>106</b>A, and the encoder <b>106</b>D encodes at a bit-rate of 70% of the capped bit-rate of the encoder <b>106</b>A. For example, the video source <b>102</b>A may be encoded by encoder <b>106</b>A at a lower bit-rate than a constant bit-rate of 8 Mbps in total. For example, if encoding by the encoder <b>106</b>A can encode at 5 Mbps with little to no change in perceived degradation of the quality of viewing experience (when compared to perceived quality of viewing experience at the constant bit-rate of 8 Mbps), the encoder <b>106</b>A encodes the video source <b>102</b>A at 5 Mbps. Similarly, the encoder <b>106</b>B encodes the video source <b>102</b>A at 4.5 Mbps in total (90% of 5 Mbps=4.5 Mbps), the encoder <b>106</b>C encodes the video source <b>102</b>A at 4 Mbps in total (80% of 5 Mbps=4 Mbps), and the encoder <b>106</b>D encodes the video source at 3.5 Mbps in total (70% of 5 Mbps=3.5 Mbps.)
0034In a fourth scenario, a first viewer at Subscriber 1 watches content from the video source <b>102</b>A (one HD channel) via HDTV <b>122</b>. Using an HD video recorder (DVR <b>120</b>), the first viewer also records another HD channel, for instance content from the video source <b>102</b>B. Therefore, the first viewer is using a bandwidth of 16 Mbps in total (8 Mbps+8 Mbps=16 Mbps). At the same time, a second viewer at Subscriber 1 attempts view content from source <b>102</b>C of an SD channel (4 Mbps) on a standard definition television (SDTV <b>126</b>). Using a standard definition digital video recorder or the SD DVR <b>124</b>, the second viewer also attempts to record another SD channel (4 Mbps) of content from the video source <b>102</b>N. In this example, the bandwidth needed of 24 Mbps in total (8 Mbps+8 Mbps+4 Mbps+4 Mbps=24 Mbps) and exceeds the available bandwidth of 22.8 Mbps.
0035Given that the requested bandwidth exceeds the available bandwidth of the subscriber-line, the switch control <b>132</b> selects, on a channel-by-channel basis, one or more video streams having lower bit-rates in order to forward all the desired channels to Subscriber 1. For instance, depending on bandwidth availability, complexity of each video channel, and weight of each channel, the switch control <b>132</b> determines which encoded bit-rate stream, from the service-sets corresponding to the video sources <b>102</b>A through <b>102</b>N, to forward to the Subscriber 1. For example, complexity can be received by the switch control <b>132</b> as side information or meta data that has been embedded in each video source by the corresponding encoder-set <b>106</b>, <b>108</b> and so forth.
0036As an option, a subscriber such as Subscriber 1 may customize the settings of the Subscriber 1's service and thereby bias specific channels, channel content, or a combination thereof. For example, the Subscriber 1 may give priority to all sports events when broadcast in high definition.
0037In a fifth scenario, the first viewer at Subscriber 1 watches the channel having content from the video source <b>102</b>A (one HD channel) and records the channel having content from the video source <b>102</b>B (one HD channel). Let priority be given to the channels from the video sources <b>102</b>A and <b>102</b>B due to these being sporting events in high definition format. Also, let the subscriber-line be an impaired subscriber-line such that the bandwidth of the impaired subscriber-line is 22.5 Mbps in total. Let the second viewer attempt to view content on the channel from the video source <b>102</b>C (one SD channel at 4 Mbps) and let the second viewer attempt to record content on the channel from the video source <b>102</b>D (one SD channel at 4 Mbps). Here, the Subscriber 1 requests 24 Mbps in total (8 Mbps+8 Mbps+4 Mbps+4 Mbps=24 Mbps.) Due to the impaired subscriber-line at 22.5 Mbps in total, the Subscriber 1 has requested an unavailable bandwidth of 1.5 in total (24 Mbps−22.5 Mbps=1.5 Mbps.) Due to priority given to content on the channels from the video sources <b>102</b>A and <b>102</b>B, the switch <b>114</b>, under control of the switch control <b>132</b>, automatically switches the channel from the video source <b>102</b>C from the 100% encoded version to the 80% encoded version. Similarly, the switch <b>114</b> switches the channel from the video source <b>102</b>D from the 100% encoded version to the 80% encoded version. After automatically switching, the channels requested by the Subscriber 1 add up to 22.4 Mbps total (8 Mbps+8 Mbps+4 Mbps at 80%+4 Mbps at 80%=22.4 Mbps). Thus, instead of all together denying the channel requested by the second viewer, the second viewer may receive mildly degraded video of the channels from the video sources <b>102</b>C and <b>102</b>D. For instance, all four channels may still be forwarded to the Subscriber 1 on the corresponding subscriber-line. The channels are not at all degraded or denied from the video source <b>102</b>A and <b>102</b>B due to being designed as the greatest value to the subscriber (for instance, based on a predefined subscriber preference). Note also that this scenario results in an unused bandwidth of 0.1 Mbps in total and thus nearly entirely maximizes available bandwidth.
0038Although not specifically discussed, each Subscriber 2 through X may request content requiring varying amounts of bandwidth. Similar to the example involving Subscriber 1, any number of factors may cause the switch control <b>132</b> to switch among the different bit-rates of a service-set of any given channel. When bandwidth-demand exceeds bandwidth-availability in an example involving Subscriber 2 for instance, the switch control <b>132</b> automatically controls the switch <b>114</b> to select among different bit-rates of a channel requested by Subscriber 2 based on similar criteria.
0039Note also that each of the encoder-sets <b>106</b> through N may operate according to various embodiments of the present invention including the embodiments shown <figref idref="DRAWINGS">FIGS. 1B through 1D</figref> as well as those illustrated in methods of <figref idref="DRAWINGS">FIGS. 2</figref>, <b>3</b>A, <b>3</b>B and <b>3</b>C.
0040<figref idref="DRAWINGS">FIG. 1B</figref> shows modules and hardware for encoders in an encoder-set <b>106</b>A-N according to an embodiment. Note that the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref> is applicable to any of the encoder-sets <b>106</b>, <b>108</b>, <b>110</b>, and so forth through N, as shown in <figref idref="DRAWINGS">FIG. 1A</figref>. Similarly, the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref> is applicable to the encoder-sets <b>176</b>, <b>178</b> and <b>180</b> as described in the embodiments of <figref idref="DRAWINGS">FIGS. 1D</figref>, <b>1</b>E and <b>3</b>C.
0041<figref idref="DRAWINGS">FIG. 1B</figref> shows the encoder <b>106</b>A of the encoder-set <b>106</b> that includes an alignment module <b>136</b>A, an alignment control module <b>143</b>, a GOP coding module <b>138</b>A, a coding control module <b>139</b>, a transport rate buffer <b>144</b>A, and a transport rate control module <b>145</b>.
0042The encoder <b>106</b>A is a master encoder and the encoders <b>106</b>B through <b>106</b>N are slave encoders. In the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>, the master encoder <b>106</b>A and the slave encoder <b>106</b>N are shown, whereas the slave encoders <b>106</b>B through <b>106</b>N−1 are not shown. However, the slave encoders <b>106</b>B through <b>106</b>N−1 include similar features as described for the slave encoder <b>106</b>N but may not include all of the features shown for the master encoder <b>106</b>A. In this, the master encoder <b>106</b>A and the slave encoders <b>106</b>B through <b>106</b>N may respectively include a plurality of alignment modules <b>136</b>A through <b>136</b>N, a plurality of GOP coding modules <b>138</b>A through <b>138</b>N, and a plurality of transport rate buffers <b>144</b>A through <b>144</b>N. In contrast, the master encoder <b>106</b>A may include more features than the slave encoders <b>106</b>B through <b>106</b>N. For example, the master encoder <b>106</b>A includes the alignment control module <b>142</b>, the coding control module <b>139</b> and the transport rate control module <b>145</b>.
0043The channel from the video source <b>102</b>A is simultaneously received by the encoders <b>106</b>A through <b>106</b>N via a Serial Digital Interface (SDI) port. Here, the video data from the video source <b>102</b>A is raw video data. For example, the video data from the video source <b>102</b>A has a 4:2:2 format. Note that the video data from the video source <b>102</b>A may comprise other formats too. As another example, the video data from the video source <b>102</b>A may have a 4:2:0 format, or may have any other well format appropriate for this embodiment. For example, the video data from the source <b>102</b>A may comprise markers or flags that may be used to identify picture boundaries. For instance, the alignment modules <b>136</b>A through <b>136</b>N receive the video data from the video source <b>102</b>A containing unencoded pictures in display order. Upon receipt, each of the alignment control modules <b>136</b>A through <b>136</b>N may identify picture boundaries in the video data from the video source <b>102</b>A based on markers or flags embedded therein.
0044Each of the alignment modules <b>136</b>A through <b>136</b>N is configured to identify boundaries of an unencoded picture. Further, each of the alignment modules <b>136</b>A through <b>136</b>N is configured to detect one or more characteristics/metrics of a particular unencoded picture. For instance, each alignment module <b>136</b>A through <b>136</b>N may detect an average number of bits in an identified unencoded picture, the DC level of an identified unencoded picture, the variance level of an identified unencoded picture, or whether there is a scene change at an identified unencoded picture. The alignment modules <b>136</b>A through <b>136</b>N may forward one more of such metric to the alignment control module <b>143</b> (of the master encoder <b>106</b>A). In this example, the master encoder's alignment control module <b>143</b> may compare the metrics received from the corresponding alignment modules <b>136</b>A through <b>136</b>N. Based on a match of same or similar metrics received from the corresponding alignment modules <b>136</b>A through <b>136</b>N, the alignment control module <b>143</b> may identify the same picture within the alignment modules <b>136</b>A through <b>136</b>N.
0045Once the alignment control module <b>143</b> identifies the same picture within the alignment modules <b>136</b>A through <b>136</b>N, the alignment control module <b>143</b> may control the alignment modules <b>136</b>A through <b>136</b>N to forward the same unencoded picture from their respective input video source <b>102</b>A to the corresponding GOP coding modules <b>138</b>A through <b>138</b>N.
0046The coding control module <b>139</b> (of the master encoder <b>106</b>A) controls the GOP coding module <b>138</b>A as well as the GOP coding modules <b>138</b>B through <b>138</b>N (of the slave encoders <b>106</b>B through <b>106</b>N). In this, the GOP coding modules <b>138</b>A through <b>138</b>N encode a same group of pictures beginning on the same boundary of the same picture. Furthermore, the coding control module <b>143</b> produces synchronization references, as will be discussed further below.
0047Once the GOP coding modules <b>138</b>A through <b>138</b>N receive the same unencoded picture, the coding control module <b>139</b> may control the GOP coding modules <b>138</b>A through <b>138</b>N to begin coding on the boundary of the same unencoded picture (at the start of the same picture). The same unencoded picture may be the first unencoded picture in a group of unencoded pictures of which the GOP coding modules <b>138</b>A through <b>138</b>N may encode.
0048Once the GOP coding modules <b>138</b>A through <b>138</b>N encode the same unencoded GOP, the GOP coding modules <b>138</b>A through <b>138</b>N continue on, and thus receive subsequent unencoded GOPs beginning with the next unencoded GOP that follows the first encoded GOP. The GOP coding modules <b>138</b>A through <b>138</b>N continue by encoding, GOP-by-GOP, on the boundary of the first unencoded picture that follows the last picture of the last encoded GOP. Note that prior to receiving the picture, each of the GOP coding modules <b>138</b>A through <b>138</b>N may be, for example, free running or may be idle.
0049Also, the GOP encoding modules <b>138</b>A through <b>138</b>N embed timing references in corresponding transport streams. In MPEG coding, these synchronization references include program clock references (PCRs). The master coding control module <b>139</b> controls the master GOP coding modules <b>138</b>A and the slave GOP coding modules <b>138</b>B through <b>138</b>N to reference the same PCR. Because each of the encoders <b>138</b>A through <b>138</b>N embeds the PCRs in transports streams, the decoder is also a type of slave with respect the same PCR “clock.” For instance, the PCR “clock” is a sequential counter used by a decoder operating in a “push model” mode.
0050In addition, the coding control module <b>139</b> controls the GOP encoding modules <b>138</b>A through <b>138</b>N to embed the same values of presentation time stamps (PTS) and/or decoder time stamps (DTS). In an example, the same PTS and DTS values may be embedded in a corresponding picture encoded at different bit-rates by the GOP coding modules <b>138</b>A through <b>138</b>N. Note that each DTS and/or PTS may not be embedded in every picture. In another example, each DTS and/or each PTS may be embedded in every picture.
0051Once the GOP coding modules <b>138</b>A through <b>138</b>N complete encoding a GOP, the transport rate buffers <b>144</b>A through <b>144</b>N receive the encoded-GOP at different bit-rates of the encoders <b>106</b>A through <b>106</b>N. In addition, the transport rate control module <b>145</b> receives timing information from the coding control module <b>139</b> to control the transport rate of the encoded GOP service-set, as will be further described below, by way of additional examples.
0052By encoding with the same encoding algorithm and by beginning encoding on the same picture of an unencoded GOP, another feature becomes possible. A target ratio of gop_bits to bit-rate is the same for each of the encoders <b>106</b>A through <b>106</b>N (within some tolerance). In an example involving the encoders <b>106</b>A through <b>106</b>N in which encoding begins on the boundary of a same picture of an unencoded-GOP, each GOP coding module <b>138</b>A through <b>138</b>N uses the same encoding algorithm to encode the same received unencoded-GOP. The transport rate control module <b>145</b>, on a GOP-by-GOP basis, detects the actual time GOP time (referred to as “gop_time”) it takes for the GOP coding module <b>138</b>A to forward the group of pictures at the bit-rate of the encoder <b>106</b>A. The transport rate control module <b>145</b> may detect gop_time as follows:
0053<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>gop_time</mi><mo>=</mo><mfrac><mrow><mi>GopBits_</mi><mo></mo><mn>100</mn><mo></mo><mi>percentStream</mi></mrow><mrow><mi>BitRate_</mi><mo></mo><mn>100</mn><mo></mo><mi>percentStream</mi></mrow></mfrac></mrow></mtd><mtd><mrow><mi>Equation</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths><img file="US9106544B2_D0001.tif" />
0054In an example, the transport rate control module <b>145</b> forwards the gop_time of the 100% stream to the lower bit-rate GOP coding modules <b>138</b>B through <b>138</b>N. Each GOP coding module <b>138</b>B through <b>138</b>N determines a target number of encoded gop_bits. The target number of gop_bits is the number of bits that the encoding algorithm attempts to generate in the encoded GOP.
0055For instance, if the gop_time of the 100% bit-rate encoder <b>138</b>A is 1 second, then the target number of gop_bits of the 90% bit-rate encoder is 90% of the gop_bits of the 100% rate encoder. Likewise, the target number of gop_bits of the 80% bit-rate encoder is 80% of the gop_bits of the 100% encoder, and so forth.
0056Note also that each encoded-GOP may vary in time, due to variable length coding such as H.264. What this means is that each encoded-GOP may vary in length. In one example, an unencoded-GOP having a high level of complexity such as a scene change will tend to generate an encoded-GOP having more gop_bits of greater gop_time, whereas an unencoded-GOP having a low level of complexity such as a still frame video will tend to generate an encoded-GOP of fewer gop_bits having less gop_time.
0057Because the encoding algorithm may be inexact, the actual encoded gop_bits may vary from the target gop_bits. To compensate, rate control is performed. For example, each GOP coding module <b>138</b>A through <b>138</b>N, on a GOP-by-GOP basis, forwards corresponding encoded-GOPs to the transport rate buffers <b>144</b>A through <b>144</b>N. For example, each of the transport rate buffers <b>144</b>A through <b>144</b>N may forward a value to the transport rate control module <b>145</b> that represents the actual number of bits in each corresponding encoded-GOP. Once the transport rate control module <b>145</b> receives the value of the actual number of bits, the transport rate control module <b>145</b> determines the transport rate for each GOP service-set or GOP-set as follows:
0058<maths id="MATH-US-00002" num="00002"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>GopBitRateLowerRateEncoder</mi><mo>=</mo><mfrac><mi>ActualGopBitsLowerRateStream</mi><mi>gop_time</mi></mfrac></mrow></mtd><mtd><mrow><mi>Equation</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow></mtd></mtr></mtable></math></maths><img file="US9106544B2_D0002.tif" />
0059Note that the denominator of this equation is the gop_time of the highest bit-rate encoder, for example, the encoder <b>106</b>A as determined by Equation 1. Also, note that a single GOP encoded at different bit-rates forms an “encoded-GOP-service-set” or an “encoded-GOP-set.” An “encoded service-set” or “encoded-GOP-set” is an unencoded-GOP encoded by an encoder-set at multiple different bit-rates. For instance, content from the video source <b>102</b>A is transmitted via a corresponding channel. Therefore, the combined output of the multi-rate encoder <b>106</b>A through <b>106</b>N may be an encoded-GOP-set of the same GOP via the same channel each encoded at different bit-rates. Each of the coding modules <b>138</b>A through <b>138</b>N forwards an encoded-GOP-set of different bit-rates to the corresponding transport rate buffers <b>144</b>A through <b>144</b>N. Once the transport rate control module <b>145</b> determines the actual transport rate of each encoded-GOP for a given encoded-GOP-set, the transport rate control module <b>145</b> controls the timing of transmission of the encoded-GOP-set from the transport rate buffers <b>144</b>A through <b>144</b>N to the switch <b>114</b>.
0060In a sixth scenario, let N=4 for the encoder-set <b>106</b>A-N and let the encoder <b>106</b>A encode at a bit-rate of 100%, the encoder <b>106</b>B encode at a bit-rate of 90%, the encoder <b>106</b>C encode at a bit-rate of 80%, and the encoder <b>106</b>D encode at a bit-rate of 70%. In this scenario, the “encoded GOP-set” is a same GOP encoded 1) at a constant bit-rate of 100%, 2) at a bit-rate of 90%, 3) at a bit-rate of 80%, and 4) at a bit-rate of 70%. For instance, content from the video source <b>102</b>A may be transmitted via a corresponding channel. Therefore, the combined output of the multi-rate encoders <b>106</b>A through <b>106</b>N is a “encoded-GOP-set” of the same channel at different bit-rates. This encoded-GOP-set is part of a stream of encoded-GOP-sets of different bit-rates.
0061Using IP, each encoded-GOP-set is forwarded from the transport rate buffers <b>144</b>A through <b>144</b>N to the switch <b>114</b> in a manner such that each encoded-GOP of a same encoded-GOP-set begins at the same time and ends at the same time. In other words, each encoded-GOP of a same encoded-GOP-set is received at the same time at the switch <b>114</b> shown in <figref idref="DRAWINGS">FIG. 1A</figref>. For this reason, the switch <b>114</b> can seamlessly switch between different bit-rate streams of the same channel as may be needed. Each of the coding modules <b>138</b>A through <b>138</b>N forwards an encoded-GOP of a corresponding different bit-rate to the corresponding transport rate buffers <b>144</b>A through <b>144</b>N. Once the transport rate control module <b>145</b> determines the actual transport rate of each encoded-GOP for a given encoded-GOP-set, the transport rate control module <b>145</b> controls the timing of transmission of the encoded-GOP-set from the transport rate buffers <b>144</b>A through <b>144</b>N to the switch <b>114</b>.
0062The transport rate control module <b>145</b> may set the rate for each encoded-GOP-stream such that each encoded-GOP-stream should start and end at the same time. If the first encoded-GOP starts at time=0, each transport rate buffer <b>144</b>A through <b>144</b>N starts forwarding its encoded-GOP of a same encoded-GOP-set at time=0. Based on the gop_time and GopBitRateLowerRateEncoder, each encoded-GOP of this same encoded-GOP-set also ends transmission at the same time. The next start of an encoded-GOP of a next encoded-GOP-set will be time=0+(current) gop_time. In this regard, the switch <b>114</b> needs to wait for the start of a next encoded-GOP of a next encoded-GOP-set for each stream before making the switch on the boundary of an encoded-GOP.
0063Note that requests for additional channels are processed at the encoding side of the DSL line. When an IPTV subscriber changes or adds a channel as in the above scenarios, the channel is actually remotely switched/selected using a so-called request to join a new multicast group using Internet Protocol Group Membership Version 2 (IGMP). The local office receives the subscriber request, automatically checks to make sure that the subscriber is authorized to view the requested channel and then directs one or more routers in the local office to add that particular subscriber to the distribution list of the requested channel.
0064Returning to <figref idref="DRAWINGS">FIG. 1B</figref>, if an encoded-GOP (of an encoded-GOP-set) was to arrive at the switch <b>114</b> at different times from the time of arrival of the other encoded-GOPs of the same encoded-GOP-set, then an automatic switching among different bit-rates of the same channel may result in a brief interruption of the viewing experience similar to that of from one channel to another channel. This problem, however, is avoided because each encoded-GOP-set is, on an encoded-GOP-set-by-encoded-GOP-set basis, aligned in the transport rate buffers <b>144</b>A through <b>144</b>N to be forwarded at the same time according to the control of transport rate control module <b>145</b>. In addition, on an encoded-GOP-set-by-encoded-GOP-set basis, the switch <b>114</b> receives the beginning of each encoded-GOP of a same encoded-GOP-set at the same time and receives the end of each encoded-GOP of the same encoded GOP-set at the same time. Note IP jitter may interfere with a perfect scenario in this regard. However, IP jitter, for example, may be accommodated by the design of the switch <b>114</b>. The switch <b>114</b> switches among different bit-rates of the same channel on the boundary of an encoded-GOP-set. For instance, the first picture in an encoded-GOP may be the MPEG image frame or I frame. A switch from one bit-rate to another bit-rate of the same channel occurs immediately after a last encoded-GOP. In addition, because such a switch occurs on the I frame of a current encoded-GOP, the switch <b>114</b> seamlessly switches so that there is no glitch in viewing experience.
0065The video buffer verifier (VBV) is a mechanism by which an encoder and a corresponding decoder avoid overflow and/or underflow in video buffer of the decoder. For example, H.264 specifies a 30 Mbit buffer at level 4.0 in the decoder of an HD channel. In addition, the encoder keeps a running track of the amount of video data that it forwards to the decoder. If the VBV is improperly managed, the video buffer of the decoder could underflow that means run out of video to display. In this scenario, the viewing experience involves dead time. In addition, the VBV may overflow meaning that the decoder buffer cannot hold all of the data it receives. In this scenario, the excess data is dumped and the viewing experience is similar to an instant fast-forwarding similar to jumping forward in the video. Both scenarios are disruptive to the viewing experience. Note also that both video underflow and overflow cause video corruption. Video corruption can persist for the entire GOP since subsequent frames in that GOP use the past anchor frames (I and P) as reference. Data loss can produce video corruption.
0066Because each encoded-GOP-set of a channel arrives at the decoder at substantially the same time, and because the sync references (for example, PCRs, PTSs, DTSs) of the same channel are forwarded by all encoders of a given channel to the decoder, each I-frame of the channel arrives at the decoder before the DTS, regardless of the bit-rate. Therefore no VBV underflow will occur.
0067VBV overflow is also avoided even in extreme cases. For instance, a combination of a high bit-rate, long system delay, and low AVC level (advanced video coding level), that may otherwise result overflow, is avoided. In this regard, the GOP coding modules <b>138</b>B through <b>138</b>N (of slave encoders <b>106</b>B through <b>106</b>N) protect against VBV overflow. These coding modules track buffer levels to determine VBV fullness. However, as a decoder receives video immediately following a switch from a higher bit-rate to a lower bit-rate, the actual VBV fullness will be larger than the VBV fullness value that had been calculated by the lower bit-rate encoder. In this, the worse case scenario is the difference between VBV fullness values computed by the 100% bit-rate encoder and the lowest bit-rate encoder of any given channel. Here, the VBV delay is equal to the system delay. At this point, when the decoder buffer is large enough to handle the worse case scenario, the decoder buffer is at its fullest level and is equal to the bit-rate multiplied by the system delay. This difference, or offset, between the actual VBV fullness and the VBV fullness value of encoder(n), is computed as: <br />VBVFullnessOffset(<i>n</i>)=sysDelay*(bitRate<sub>—</sub>100percentStream−bitRateEnc(<i>n</i>)) Equation (3)
0068As an example, each of the lower-rate GOP coding modules <b>138</b>B through <b>138</b>N of the encoder-set <b>106</b> determines a VBVFullnessOffset, subtracts this offset from the decoder buffer available size it would otherwise compute, and uses this result as an adjusted buffer available size. In this, the GOP coding modules <b>138</b>B through <b>138</b>N use the adjusted buffer available size for buffer protection and therefore VBV overflow is avoided. For AVC, this will typically have no effect on the rate control since the decoder buffer is much larger than is needed.
0069In a seventh scenario, a 10 Mbps stream has a 1-second system delay. The maximum decoder buffer fullness is 10 Mbps*1 sec=10 Mbits. For AVC at level 4.0 (for HD), the decoder buffer is 30 Mbits, so the VBV cannot overflow. VBVFullnessOffset at a 70% bit-rate is 10 Mbps*(1-0.7)*1.0 sec=3 Mbits. Therefore, this offset is small and has little to no effect on rate control.
0070Considering an eighth scenario having similar conditions as the seventh scenario except the standard is MPEG-2 or ATSC instead of AVC. A stream of 10 Mbps having a 1.0 second system delay will be coded to limit the decoder buffer level to the buffer size because the buffer size is about 9 Mbits for MPEG-2 and 8 Mbits for ATSC. Unprotected, a system delay greater than 0.9 seconds can result in overflow for MPEG-2 (10 Mbps*0.9 sec=9 Mbits). In addition, a system delay greater than 0.8 seconds can result in overflow for ATSC (10 Mbps*0.8 sec=8 Mbits). For this case, the VBVFullnessOffset at a 70% bit-rate is still 3 Mbits to protect the VBV buffer from overflow.
0071Considering a ninth scenario with a 7.5 Mbps stream having a 1.0 second system delay. The maximum decoder buffer fullness is 7.5 Mbits (7.5 Mbps*1.0 sec=7.5 Mbits). Here VBVFullnessOffset at a 70% bit-rate is 2.25 Mbits (1.0*(7.5 Mbps−(7.5 Mbps*0.7))=2.25 Mbits.) Thus, switching from the 100% stream to the 70% stream, the 70% stream encoder computes the VBV size as 5.25 Mbits (1 sec*7.5 Mbps*0.7=5.25 Mbits). However, prior to decoding the switch point, the true VBV size is 7.5 Mbits (5.25 Mbits+2.25 Mbits=7.5 Mbits). Therefore, the 70% stream encoder must use the 7.5 Mbits value as buffer fullness when computing picture sizes in order to prevent overflow. If the VBV maximum buffer size is 8.0 Mbits, at the switch point, the 70% stream encoder has only 0.5 Mbits available of VBV buffer (8 Mbits−7.5 Mbits=0.5 Mbits). Without considering the switch point, the 70% stream encoder would have computed the available VBV buffer level as 2.75 Mbits (8.0 Mbits−5.25 Mbits=2.75 Mbits).
0072Smaller decoder buffers and longer system delays may require lower bit-rates. Put differently, higher bit-rates and longer system delays may require larger decoder buffers to avoid overflow.
0073<figref idref="DRAWINGS">FIG. 1C</figref> shows a multi-rate encoder <b>100</b> according to another embodiment. The multi-rate encoder shown in <figref idref="DRAWINGS">FIG. 1C</figref> is similar to the multi-rate encoder shown in <figref idref="DRAWINGS">FIG. 1B</figref>, except rate control is accomplished in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> using preprocessing and/or multi-pass encoding instead of using the transport rate control of <figref idref="DRAWINGS">FIG. 1A</figref> (via the transport rate control buffers <b>144</b>A through <b>144</b>N and the transport rate control module <b>145</b>). By using preprocessing and/or multi-pass encoding, the actual number of bits in an encoded-GOP may more closely match the target number of bits in an encoded-GOP not using preprocessing and/or multi-pass encoding.
0074<figref idref="DRAWINGS">FIG. 1C</figref> shows modules and hardware for encoders in an encoder-set according to an embodiment. The encoders may be used for any of the encoder-sets <b>106</b>A-N through NA-N as described in the embodiment of <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B and <b>1</b>D.
0075Similar to the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>, the encoder <b>106</b>A in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> is a master encoder and the encoders <b>106</b>B through <b>106</b>N in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> are slave encoders. Similar to the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>, the encoder <b>106</b>A and the encoder <b>106</b>N in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> are shown whereas the encoders <b>106</b>B through <b>106</b>N−1 are not shown. Although the encoders <b>106</b>B through <b>106</b>N−1 are not shown, the encoders <b>106</b>B through <b>106</b>N−1 include similar features as shown for encoder <b>106</b>N.
0076Also, the alignment modules <b>148</b>A through <b>148</b>N in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> operate in a similar manner to the above-disclosed alignment modules <b>136</b>A through <b>136</b>N in the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>; except the control <b>154</b> in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> may perform the functions of the alignment control module <b>143</b> in the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>.
0077Differently than the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>, the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> includes a plurality of GOP coding modules <b>150</b>A through <b>150</b>N, the control <b>154</b>, a gop_time detector <b>152</b>, and a plurality of encoder buffers <b>156</b>A through <b>156</b>N. Rate control in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> is accomplished by 1) aligning unencoded-GOPs at the input of the GOP coding modules <b>150</b>A through <b>150</b>N so as to encode GOPs at the start of a same picture on the boundary of that same picture; 2) preprocessing these aligned unencoded-GOPs in coding modules <b>150</b>A through <b>150</b>N; and/or 3) multi-pass encoding these aligned GOPs by coding modules <b>150</b>A through <b>150</b>N.
0078The control <b>154</b> (of the master encoder <b>106</b>A) controls the GOP coding modules <b>150</b>A (of the master encoder <b>106</b>A) as well as the GOP coding modules <b>150</b>B through <b>150</b>N (of the slave encoders <b>106</b>B through <b>106</b>N). The GOP coding modules <b>150</b>A through <b>150</b>N encode a same group of pictures beginning on the same boundary of the same picture at the same time, for example, as described in the examples herein in the embodiment of <figref idref="DRAWINGS">FIGS. 1A and 1B</figref>. Furthermore, the control <b>154</b> generates synchronization references and performs similar functions as the coding control module <b>139</b> in the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>.
0079The GOP time detector module <b>152</b>, on a GOP-by-GOP basis, detects the actual time (gop_time) it takes for the GOP coding module <b>150</b>A to forward the group of pictures. In this, the GOP time detector module <b>152</b> detects gop_time pursuant to the above-described Equation (1).
0080The GOP coding modules <b>150</b>A through <b>150</b>N each receive an aligned unencoded-GOP at the same time. In addition, on a GOP-by-GOP basis, each coding module generates multiple streams of encoded-GOPs of different bit-rates to form an encoded-GOP-set. Rate control is accomplished on a GOP-by-GOP basis when the ratio of the number of bits in an encoded-GOP divided by the bit-rate of the encoder is the same for the encoded-GOP generated by each encoder of a corresponding encoder-set.
0081Preprocessing may be used to accomplish rate control, such as in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref>. In this, the GOP coding modules <b>150</b>A through <b>150</b>N may control preprocessing. Preprocessing involves analyzing unencoded-GOPs before encoding. For example, the content of a picture can be analyzed for complexity and variance of complexity within a picture. Here, the purpose of preprocessing is to better estimate a bit-budget of encoded GOP bits. The closer the number of bits budgeted to the actual number of encoded GOP bits, the closer the match of GOPs generated from GOP coding modules <b>150</b>A through <b>150</b>N with regard to the ratio of number of encoded GOP bits divided by the bit-rate of the encoder.
0082Multi-pass encoding may also be used to accomplish rate control. For example, in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref>, the GOP coding modules <b>150</b>A through <b>150</b>N may control multi-pass encoding, alone, or in combination with preprocessing. Optionally, each of the GOP coding modules <b>150</b>A through <b>150</b>N may use a different encoding algorithm. However, in this example, the same encoding algorithm is used by each of the GOP coding modules <b>150</b>A through <b>150</b>N. In addition, because the encoding algorithm may be inexact, the actual encoded gop_bits may slightly vary from the target gop_bits. To compensate, iterative multipass encoding may be performed. Iterative multi-pass encoding may improve the degree in which the actual number of encoded bits matches the target number of encoded bits. The closer the match of actual number of encoded bits to target number of encoded bits among the output of GOP coding modules <b>150</b>A through <b>150</b>N, the closer the target ratio of number of encoded GOP bits divided by the bit-rate of the encoder. In this, the better the rate control.
0083The encoder buffers <b>150</b>A through <b>150</b>N receive the encoded GOP service-set of different bit-rates from corresponding GOP coding modules <b>150</b>A through <b>150</b>N.
0084As described above, the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref> accomplishes rate control by preprocessing, alone, multi-pass encoding alone or preprocessing in combination with multi-pass encoding. The closer the ratio of the actual number of bits to encoder bit-rate across the output of the GOP coding modules <b>150</b>A through <b>150</b>N, the closer each encoded-GOP-set will arrive at the switch <b>114</b> at the same time. Switching among different bit-rates of the same encoded-GOP-set, on the boundary of corresponding encoded GOPs of the same encoded-GOP-set, results in seamless switching and thus an uninterrupted viewing experience otherwise attributable to glitching caused by not switching on the boundary of a GOP.
0085The multi-rate encoders described in <figref idref="DRAWINGS">FIGS. 1A-C</figref> include encoder-sets operable to receive a same video source stream and forward multiple encoded streams of the same video source stream at different bit-rates. In this example, the video streams from the sources <b>102</b>A-N may include raw video in display order. However, as an option, the video streams from the sources <b>102</b>A-N may be encoded video data. In this, the first encoder in the encoder-set <b>106</b>, such as the encoder <b>106</b>A shown in <figref idref="DRAWINGS">FIGS. 1B and 1C</figref>, may be a pass-through for the encoded video data in the received encoded video stream, and the encoders <b>106</b>B-N may be transraters that generate the encoded stream at different bit-rates.
0086<figref idref="DRAWINGS">FIG. 1D</figref> shows a simplified block diagram of a multi-rate statistical multiplexing system <b>170</b> configured to perform various functions described, according to an embodiment of the invention.
0087The multi-rate statistical multiplexing system <b>170</b> may include additional components and some of the components described herein may be removed and/or modified without departing from the functionality of the multi-rate statistical multiplexing system <b>170</b>.
0088However, it should be understood that the multi-rate statistical multiplexing system <b>170</b> may include additional components and that some of the components described herein may be removed and/or modified without departing from the functionality of the multi-rate statistical multiplexing system <b>170</b>.
0089The multi-rate statistical switching system <b>170</b> includes a multi-rate encoder <b>172</b>, encoder-sets <b>176</b> through <b>180</b>, multi-rate statistical switch controllers <b>187</b>A and <b>187</b>N, and switches <b>188</b> and <b>189</b>A through <b>189</b>N, Subscriber A, and CPE of Subscriber and Subscriber N. The CPE of Subscriber A includes HD DVR <b>181</b>, STB <b>182</b>A and <b>182</b>B, HDTV <b>183</b>, SD DVR <b>184</b>, and SDTV <b>186</b>.
0090The operation of the multi-rate encoder <b>172</b> is similar to the above-described operation of the multi-rate encoder <b>101</b> in the embodiment of <figref idref="DRAWINGS">FIG. 1A</figref> and may include the features described in the embodiments of <figref idref="DRAWINGS">FIGS. 1B</figref>, <b>1</b>C, <b>2</b>, <b>3</b>A, <b>3</b>B and <b>3</b>C. For example, the encoder-sets <b>176</b>, <b>178</b> and <b>180</b> are configured to have similar features to the encoder-sets <b>106</b>, <b>108</b> and <b>110</b> as described in the embodiments of <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B, <b>1</b>C, <b>2</b>, <b>3</b>A, <b>3</b>B and <b>3</b>C. Similarities between these correspond to similar features. However, it should be clear that the embodiment of <figref idref="DRAWINGS">FIG. 1D</figref> is not limited to these other embodiments.
0091Not shown is additional encoder-sets. However, the multi-rate encoder <b>172</b> may have additional encoder sets having similar features as those described herein with respect to the encoder-sets <b>176</b>, <b>178</b> and <b>180</b>, or any combination. Not shown is Subscribers B through N−1. In addition, CPE is not shown for the Subscribers B through N. However, each of these subscribers may have similar features as those described herein with respect to the Subscriber A and the CPE of Subscriber A, or any combination thereof. Not shown are switches <b>189</b>B through <b>189</b>N−1. However, each of these switches may have similar features as those described herein with respect to the switch <b>189</b>A. Not shown are multi-rate statistical switch controllers <b>187</b>B through <b>187</b>N−1. However, each of these switch controllers may have similar features as those described herein with respect to the switch controllers <b>187</b>.
0092Three channels respectively from the video sources <b>174</b>A, <b>174</b>B and <b>174</b>C are described herein for the purposes of describing features of the multi-rate statistical switching system <b>170</b>. However, it should be recognized that the switches <b>188</b> and <b>189</b>A through <b>189</b>N may receive any number of channels. In addition, by way of example, the switches <b>189</b>A through <b>189</b>N are located at the edge of the above-described last mile and the switch <b>188</b> is located prior to the edge of the last mile.
0093The multi-rate encoder <b>172</b> receives each version of each channel, <b>174</b>A, <b>174</b>B and <b>174</b>C. In this, the encoder-set <b>176</b> receives video content from the video source <b>174</b>A, the encoder-set <b>178</b> receives video content form the video source <b>174</b>B and the encoder-set <b>180</b> receives video content from the video source <b>174</b>C, and so forth.
0094Each of the encoder-sets <b>176</b>, <b>178</b> and <b>180</b> encodes the corresponding received video content <b>174</b>A, <b>174</b>B and <b>174</b>C into corresponding multiple different versions of the same channels, each version encoded at a different bit-rate. For instance, each version of a channel has the same content encoded at different bit-rates. For example, a channel includes video content from a particular video source, such as the video source <b>174</b>A. The encoder <b>176</b>A, at a first bit-rate, encodes the video content from video source <b>174</b>A. The encoder <b>176</b>B encodes the same video content from the same video source <b>174</b>A at a second or different bit-rate lower than the bit-rate of the encoder <b>176</b>A. Similarly, the encoder <b>176</b>C encodes the same video content at a third different bit-rate lower than the bit-rate of the encoder <b>176</b>B, and so forth. It is noted that each encoder-set in the embodiments described throughout this disclosure may encoder and varying different bit-rates and that the encoder-rates described herein are only examples (100%, 90%, 80% and 70%).
0095The multi-rate statistical switch controller <b>187</b>A controls the switch <b>189</b>A to forward one version of each channel requested on the subscriber-line of Subscriber A. In the situation of a congested-state of the subscriber-line (between the switch <b>189</b>A and the premises of Subscriber A), the switch controller <b>187</b>A decides which bit-rate version of each requested channel to forward to the Subscriber A. The multi-rate statistical switch controller <b>187</b>A receives meta-data for each encoded-GOP-set. For example, on an encoded-GOP-set-by-encoded-GOP-set basis, the meta-data embedded in an encoded-GOP-set includes an indicator of perceived quality of viewing experience of the encoded-GOP-set. In a first example, each encoded-GOP, in an encoded-GOP-set, includes an indicator of perceived quality of viewing experience of the encoded-GOP-set. In second example, only one encoded-GOP of an encoded-GOP-set will include an indicator of perceived quality of viewing experience for the entire encoded-GOP-set. For instance, the perceived quality of viewing experience of each encoded-GOP-set may be determined from one of the encoded-GOPs of the same encoded-GOP-set due to, for example, the proportional relationship between each encoded-GOP with respect to each other encoded-GOP in a same encoded-GOP-set, as described herein. In a third example, the bit-rate of each encoded-GOP-set is hard-coded meaning that the bit-rate is implicitly known. However, as an option, any combination of one or more indicators of bit-rate may be embedded in one or more encoded GOPs of any encoded-GOP-set. Alternatively or in addition, any one or more values of bit-rate itself may be similarly embedded. An identifier of each version may be similarly embedded. However, one having ordinary skill in the art will recognize that the perceived quality of viewing experience (i.e., any combination of one or more indicators of perceived quality) as well as bit-rate (i.e., any combination of one or more indicators and/or values of bit-rate itself, and identifiers of channel version may be embedded differently without departing from the scope of the present invention.
0096The multi-rate statistical switch controller <b>187</b>A receives congestion information, timing information, and bit-rate information. For example, the timing information of an encoded-GOP-set may be embedded into that encoded-GOP-set by the encoder-set that generated that encoded-GOP-set. Regarding the congestion information, the multi-rate statistical switch controller <b>187</b>A may monitor the Subscribers A-N and thereby obtain congestion information for each subscriber-line to determine congestion information on a subscriber-per-subscriber basis. For example, the switch multi-rate statistical switch controller <b>187</b>A determines on a subscriber-per-subscriber basis whether the corresponding subscriber-line (for instance, the subscriber-line between the switch <b>189</b>A and the Subscriber A) is or is not in a congested-state. A congested-state is a scenario in which a subscriber requests more bandwidth in total than can be sent through the last-mile of the subscriber-line, as described herein. In addition, the multi-rate statistical switch controller <b>187</b>A uses a determined level of congestion, the bit-rate of each encoded-GOP of each encoded-GOP-set of each channel, an indicator of perceived quality of viewing experience, and timing information to select which version of each subscriber-requested channel to forward to each subscriber.
0097The switch <b>188</b> receives each version of different bit-rates of each channel. For example, the switch <b>188</b> receives content from each of the video sources <b>174</b>A, <b>174</b>B and <b>174</b>C. The switch <b>188</b> forwards each version of each to the switch <b>189</b>A that located on or near the edge of the last mile.
0098The switch <b>189</b>A receives each version of each channel requested by each subscriber. In addition, for example, in response to a schedule and corresponding control signaling from the switch controller <b>187</b>A, the switch <b>189</b>A forwards one version of each requested channel to each subscriber. For instance, for each subscriber-line, the multi-rate statistical switch controller <b>187</b>A controls the switch <b>189</b>A to forward each requested channel at the best available bit-rate subject to any one or more predetermined criteria, a corresponding level of congestion, bit-rate of each requested channel, and one or more indicators of a perceived quality of viewing experience. The multi-rate statistical switch controller <b>187</b>A controls the switch <b>189</b>A to forward a version of each channel requested by each subscriber. In selecting which version of each requested channel to forward, the multi-rate statistical switch controller <b>187</b>A selects a version to maintain a perceived quality of viewing experience. In this, the multi-rate statistical switch controller <b>187</b>A is configured to operate continuously, switching at next available switching opportunities to repeatedly balance a level of congestion of each subscriber-line, the bit-rate of each channel requested by the subscriber of each subscriber-line, and one or more indicators of quality of each channel requested by each subscriber. In addition, the multi-rate statistical switch controller <b>187</b>A uses synchronization information or timing information, as described herein, to control the timing of switches among different versions of each requested channel.
0099For example, the embodiments described in <figref idref="DRAWINGS">FIGS. 1A-C</figref>, <b>2</b> and <b>3</b>A-B describe switching among different versions of a same channel in a manner that avoids glitches in subscriber viewing experience wherein each version of a same channel may be synchronously switched. However, because each channel is asynchronous with respect to each other channel, the multi-rate statistical switch controller <b>187</b>A is configured to switch at next switching opportunities that are not coincident in time from channel to channel. For example, using AVC coding, a variable length encoded-GOP of a first channel requested by a subscriber will likely have a different length than the variable length encoded-GOP of a second channel (requested by the same subscriber). In a scenario involving switching among different versions of these two channels, the next switching opportunity of the first channel is different from the next switching opportunity of the second channel. For instance, the next switching opportunity of the first channel is on the boundary of a variable-length encoded-GOP of the first channel and the next switching opportunity of the second channel is on the boundary of a variable length encoded-GOP of the second channel. Because the variable length of the first and second channels' encoded-GOPs are of different lengths, the next switching opportunity of each channel is not coincident. In this, the multi-rate statistical switch controller <b>187</b>A controls the switch <b>189</b>A to switch at the next switching opportunity of each channel and therefore controls the switch <b>187</b>A to switch asynchronously with respect to each other.
0100Consider a first switching event between two different versions of the same content from the video source <b>174</b>A. For example, the encoder <b>176</b>A encodes the video content from the video source <b>174</b>A. A viewer on the premises of Subscriber A views this video content at a bit-rate of 100%. The encoder <b>176</b>B encodes the same video content at a lower bit-rate of 90%. Before a first switching event, the viewer enjoys a perceived quality of viewing experience corresponding to a bit-rate of 100%. However, due to congestion on the subscriber-line of the Subscriber A, the multi-rate statistical switching system <b>170</b> controls the switch <b>189</b>A to switch seamlessly as described herein. For example, the multi-rate statistical switching system <b>170</b> controls the switch <b>189</b>A to switch at a next switching opportunity from the 100% version to the 90% version. However, the viewer does not perceive a change in quality of viewing experience. This, even though the viewer is viewing a different lower bit-rate version of the same channel. Here, one or more indicators of a perceived quality of viewing experience embedded in the channel indicated a higher level of perceived viewing experience in the 90% bit-rate encoded stream due to, for example, video content of lower complexity. In this, the multi-rate statistical switch controller <b>187</b>A balances the level of congestion of this channel with other channels requested on the subscriber-line, including one or more indicators of perceived quality of viewing experience of each version of each channel requested by each subscriber and corresponding bit-rates of each version of each channel requested by each subscriber, to determine that a perceived level of viewing experience can be maintained on the channel even at the lower bit-rate of 90%.
0101<figref idref="DRAWINGS">FIG. 1E</figref> shows a simplified bock diagram of the multi-rate statistical switch controller <b>187</b>A. On a subscriber-line-per-subscriber-line basis, <figref idref="DRAWINGS">FIG. 1E</figref> is operable to dynamically balance available bandwidth, one or more indicators of a perceived quality of viewing experience of each channel requested by each subscriber; as well as to perform various functions described herein, according to embodiment of the invention.
0102The multi-rate statistical switch controller <b>187</b>A includes a channel forwarding switch-control module <b>195</b>A, a channel bit-rate selection module <b>196</b>A and a congestion-state determination module <b>197</b>A. The channel forwarding switch-control module <b>195</b>A obtains sync info <b>191</b>A. The channel bit-rate selection module <b>196</b>A obtains quality info <b>192</b>A. In addition, the congestion-state determination module <b>197</b>A obtains bit-rate info <b>193</b>A and congestion info <b>194</b>A. Not described in detail are corresponding features for the scheduling control modules for the Subscribers A through N. However, it should be clear that the scheduling control modules for the Subscribers A through N may have similar features as described herein for the scheduling control module <b>199</b>A for Subscribers A.
0103The multi-rate statistical switch controller <b>187</b>A may include additional components and some of the components described herein may be removed and/or modified without departing from the functionality of the switch controller <b>187</b>A. In addition, the multi-rate statistical switch controllers <b>187</b>B-N are similar to the multi-rate statistical switch controller <b>187</b>A.
0104For example, the multi-rate statistical switch controller <b>187</b>A is configured to operate similarly as the multi-rate statistical switch controller <b>187</b>A described in the embodiment of <figref idref="DRAWINGS">FIG. 1D</figref>. The multi-rate statistical switch controller <b>187</b>A includes a scheduling control module for Subscriber A <b>199</b>A. Not shown in detail, the multi-rate statistical switch controller <b>187</b>A includes scheduling control modules for Subscriber B through N respectively designated as <b>199</b>B through <b>199</b>N. However, it should be clear that these control modules may include similar features as those described herein with respect to the scheduling control module for Subscriber A <b>199</b>A.
0105The congestion-state determination module <b>197</b>A obtains bit-rate information <b>193</b>A for each channel requested by the Subscriber A. As described herein, the bit-rate of each encoded-GOP-set is hard-coded meaning that the bit-rate is implicitly known. However, as an option, any combination of one or more indicators of bit-rate may be embedded as metadata in one or more encoded GOPs of any encoded-GOP-set. Alternatively or in addition, a value (of bit-rate itself) may be similarly embedded. An identifier of each channel version may also be similarly embedded. For example, the congestion-state determination module <b>197</b>A obtains the bit-rate information <b>193</b>A from each encoded-GOP-set of each channel requested by the Subscriber A. By way of further example, the bit-rate information <b>193</b>A as described herein may be embedded separately or together with the quality information <b>192</b>A. For example, the bit-rate information <b>193</b>A may be embedded in each encoded-GOP-set as described herein. One of ordinary skill in the art, however, will recognize that the bit-rate information <b>193</b>A is not necessarily embedded in each encoded-GOP-set of each channel and therefore that some encoded-GOP-sets may not include the bit-rate information <b>193</b>A. In this, one having ordinary skill in the art will recognize that the bit-rate information <b>193</b>A may be embedded differently without departing from the scope of the present invention. In addition, the congestion-state determination module <b>197</b>A obtains congestion information <b>194</b>A of the subscriber-line of Subscriber A. From the bit-rate information <b>193</b>A and the congestion information <b>194</b>A, the congestion-state determination module <b>197</b>A determines whether the Subscriber A is in a congested-state by, for example, comparing the bandwidth in total requested by the Subscriber A against the bandwidth in total available on the subscriber-line of Subscriber A.
0106The channel bit-rate selection module <b>196</b>A obtains quality information for each channel requested by the Subscriber A. As an example, the multi-rate statistical switch controller <b>187</b>A receives meta-data for each encoded-GOP-set. For example, on an encoded-GOP-set-by-encoded-GOP-set basis, the meta-data embedded in an encoded-GOP-set includes an indicator of perceived quality of viewing experience of the encoded-GOP-set. In a first example, each encoded-GOP, in an encoded-GOP-set, includes any combination of one or more indicators of perceived quality of viewing experience of the encoded-GOP-set. In a second example, only one encoded-GOP of an encoded-GOP-set will include an indicator of perceived quality of viewing experience for the entire encoded-GOP-set. For instance, the perceived quality of viewing experience of each encoded-GOP-set may be determined from one of the encoded-GOPs of the same encoded-GOP-set due to, for example, the proportional relationship between each encoded-GOP with respect to each other encoded-GOP in a same encoded-GOP-set, as described herein. One having ordinary skill in the art, however, will recognize that the quality information <b>192</b>A may be embedded differently without departing from the scope of the present invention. For example, upon obtaining the quality information <b>192</b>A from each encoded-GOP-set of each channel requested by the Subscriber A, the channel bit-rate selection module <b>196</b>A is operable to balance the bandwidth of all channels requested by the Subscriber A against the level of complexity of each channel requested by the Subscriber A (as indicated by the quality information <b>192</b>A of each channel), a level of congestion of the subscriber-line of Subscriber A, as well as the bit-rate of each channel requested by the Subscriber A to determine which version of each channel to forward to the Subscriber A in a manner which leverages the available bandwidth by switching to lower bit-rate versions of each requested channel when the perceived quality of viewing experience may not be noticed.
0107The channel forwarding switch-control module <b>195</b>A is operable to obtain timing or synchronization information, which has been embedded in each channel, as described by way of example in the embodiments of <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B and <b>1</b>C as well as the embodiments of <figref idref="DRAWINGS">FIGS. 2</figref>, <b>3</b>A and <b>3</b>B. The channel forwarding switch-control module <b>195</b>A controls the switch <b>187</b>A, as needed, to switch between the different bit-rates of each requested channel. In this, the multi-rate statistical switch controller <b>187</b>A acts to maintain a quality of viewing experience of each requested channel by leveraging bandwidth that may be made available due to pictures having lower levels of complexity. For example, the channel bit-rate selection module <b>196</b>A may select a lower bit-rate for the channel having content from the video source <b>174</b>A. For instance, the channel having content from the video source <b>174</b>A may have a quality metric indicating a lower level of complexity embedded therein thereby indicating that switching to a lower-bit-rate version of the same channel may result in little to no change in perceived quality of viewing experience. In this, the bandwidth made available by switching to the lower bit-rate may be allocated to accommodate content of higher complexity on the channel from the video source <b>174</b>B having one or more metric indicating a higher level of complexity embedded therein.
0108The above-described embodiments of <figref idref="DRAWINGS">FIGS. 1A through 1E</figref> are example systems configured, for example, to maintain a quality of viewing experience during a first switching event. For example, the embodiments of <figref idref="DRAWINGS">FIGS. 1A-1C</figref> describe example systems to avoid glitching during this first switching event. As another example, the embodiments of <figref idref="DRAWINGS">FIGS. 1D and 1E</figref> are systems configured, for example, to maintain a perceived quality of viewing experience from the time preceding a switching event to the time following the switching event. For example, the embodiments of <figref idref="DRAWINGS">FIGS. 1D and 1E</figref> include examples of a system configured to maintain a viewer's perception of quality of viewing experience even though, for example, the system switches from a higher bit-rate of a channel to a lower bit-rate of the same channel.
0109Examples of methods in which the multi-rate encoder <b>101</b> may be employed to encode video data will now be described with respect to the following flow diagrams of the methods <b>200</b>, <b>300</b> and <b>306</b> depicted in <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B, <b>1</b>C and <b>2</b>. In addition, an example in which the multi-rate statistical switch controller <b>187</b>A may be employed will be described further below with respect to the flow diagram of the method <b>312</b> in the description of the embodiment of <figref idref="DRAWINGS">FIG. 3C</figref>.
0110The descriptions of the methods <b>200</b>, <b>300</b> and <b>306</b> are made with reference to the multi-rate encoder <b>101</b> shown in <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B, and <b>1</b>C, and thus make reference to the elements cited therein. Similarly, the description of the method <b>312</b> is made with reference to the multi-rate statistical switch controller <b>187</b>A shown in <figref idref="DRAWINGS">FIGS. 1D and 1E</figref>. However, it should be understood that the methods <b>200</b>, <b>300</b> and <b>306</b> are not limited to the elements set forth in the multi-rate encoder <b>101</b>. In addition, it should be understood that the method <b>312</b> is not limited to the elements set forth in the multi-rate statistical switch controller <b>187</b>A. Instead, it should be understood that the methods <b>200</b>, <b>300</b> and <b>306</b> may be practiced by a multi-rate encoder having a different configuration than that set forth in the multi-rate encoder <b>101</b>. Similarly, it should be understood that the method <b>312</b> may be practiced by a multi-rate statistical switch controller having a different configuration than that set forth in the multi-rate statistical switch controller <b>187</b>A.
0111Some or all of the operations set forth in the methods <b>200</b>, <b>300</b>, <b>306</b> and <b>312</b> may be contained as utilities, programs or subprograms, in any desired computer accessible medium. In addition, the methods <b>200</b>, <b>300</b>, <b>306</b> and <b>312</b> may be embodied by computer programs, which may exist in a variety of forms both active and inactive. For example, they may exist as software program(s) comprised of program instructions in source code, object code, executable code or other formats. Any of the above may be embodied on a computer readable medium, which include storage devices. Also, note that modules described above may be hardware only, software only, or a combination of hardware and software. Exemplary computer readable storage devices include conventional computer system RAM, ROM, EPROM, EEPROM and magnetic or optical disks or tapes.
0112A controller, such as a processor (for example, as shown in <figref idref="DRAWINGS">FIG. 4</figref>), ASIC, microcontroller, etc., may implement or execute the multi-rate encoder <b>101</b> to perform one or more of all three of the methods <b>200</b>, <b>300</b>, <b>306</b>. Alternatively, the multi-rate encoder <b>101</b> may be configured to operate independently of any other processor or computer device.
0113In addition, a controller, such as a processor (for example, as shown in <figref idref="DRAWINGS">FIG. 4</figref>), ASIC, microcontroller, etc., may implement or execute and the multi-rate statistical switch controller <b>187</b>A to perform the method <b>312</b> described in <figref idref="DRAWINGS">FIG. 3C</figref>. Alternatively, multi-rate statistical switch controller <b>187</b>A may be configured to operate independently of any other processor or computer device.
0114The methods <b>200</b>, <b>300</b> and <b>306</b> are described herein below with reference to the embodiments of <figref idref="DRAWINGS">FIGS. 1A through 1C</figref> by way of example, and are therefore not meant to be limited by the description of the embodiments of the <figref idref="DRAWINGS">FIGS. 1A through 1C</figref>. The method <b>312</b> is described further below with reference to the embodiments of <figref idref="DRAWINGS">FIGS. 1A-1D</figref> and <figref idref="DRAWINGS">FIGS. 2A through 3B</figref> by way of example, and is therefore not meant to be limited to the description of the embodiments of <figref idref="DRAWINGS">FIGS. 1A-1D</figref> and <figref idref="DRAWINGS">FIGS. 2A through 3B</figref>.
0115With reference first to the embodiment of <figref idref="DRAWINGS">FIG. 2</figref>, there is shown a flow diagram of a method <b>200</b> of multi-rate encoding according to an embodiment.
0116At step <b>201</b>, a video source stream is received at multiple encoders. For example, video source <b>102</b>A is received at encoders <b>106</b>A through <b>106</b>N. The video source stream from the video source <b>102</b>A may, for example, be received in a manner described above by way of example in the embodiments of <figref idref="DRAWINGS">FIGS. 1A through 1E</figref> as well as herein below in the embodiments of <figref idref="DRAWINGS">FIGS. 3A through 3C</figref>.
0117At step <b>202</b>, the video source stream is aligned among the video encoders. For example, GOP coding modules <b>138</b>A through <b>138</b>N start encoding the same picture of an unencoded group of pictures of content received from the video source <b>102</b>A, and encoding may start at the same time. The video source stream is aligned on a same GOP boundary among the multiple encoders <b>106</b>A through <b>106</b>N, on an unencoded-GOP-by-unencoded-GOP basis in a manner described herein.
0118At step <b>203</b>, the aligned video source stream is encoded on an aligned-GOP-by-aligned-GOP basis to create a set of multiple encoded GOPs of different bit-rates for each aligned-GOP thereby creating multiple encoded video streams of the same channel, as described herein.
0119At step <b>204</b>, the multiple encoded video streams are aligned on an encoded-GOP-set-by-encoded-GOP-set basis, as described herein.
0120At step <b>205</b>, the multiple encoded video streams of the same channel at different bit-rates are transmitted forwarded in alignment, on an aligned-encoded-GOP-set-by-aligned-encoded-GOP-set basis. For example, the transport rate buffers <b>144</b>A through <b>144</b>N and the transport rate control module <b>145</b> forward GOPs so the switch <b>114</b> receives the same GOP of different bit-rates at the same time (within some tolerance). The switch <b>114</b> switches between the different bit-rate streams as needed in a manner described herein.
0121Turning now to <figref idref="DRAWINGS">FIG. 3A</figref>, there is illustrated a flow diagram of method <b>300</b> for multi-rate encoding, according to an embodiment. Some of the steps contained in the method <b>300</b> are similar to the steps discussed above with respect to the method <b>200</b> as well as with respect to the methods <b>306</b> and <b>312</b>. The method <b>300</b> provides preprocessing of video data after alignment of the GOPs at the multi-rate encoder <b>101</b> but before encoding, as in the above-described embodiment of <figref idref="DRAWINGS">FIG. 1C</figref>.
0122In this, <figref idref="DRAWINGS">FIG. 3A</figref> illustrates a method <b>300</b> for aligning and preprocessing unencoded-GOPs to accomplish rate control for transmission, according to an embodiment.
0123At step <b>301</b>, the multi-rate encoder <b>101</b> receives a video source stream at multiple encoders of, for example, the encoder-set <b>106</b> and in a manner described above with respect to the step <b>201</b> in the embodiment of <figref idref="DRAWINGS">FIG. 2</figref>.
0124At step <b>302</b>, the video source stream is aligned according to the above-described step <b>202</b> of the embodiment of <figref idref="DRAWINGS">FIG. 2</figref>.
0125At step <b>303</b>, the video source stream is preprocessed as described-herein, for example, in the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>.
0126At step <b>304</b>, unencoded-GOPs are encoded in a manner described at step <b>303</b> in the embodiment of <figref idref="DRAWINGS">FIG. 2</figref>.
0127At step <b>305</b>, each set of multiple encoded GOPs of different bit-rates is transmitted or forwarded on an aligned-encoded-GOP-set-by-aligned-encoded-GOP-set basis on or after expiration of the GOP time of each aligned set's highest bit-rate encoded GOP, for example, as described herein above in the embodiment of <figref idref="DRAWINGS">FIG. 1B</figref>. The transmission of each encoded—GOP-set occurs after the expiration of the gop_time of the previous GOPs' highest bit-rate encoded-GOP. By forwarding each encoded-GOP-set on or after expiration of the gop_time of the highest bit-rate encoded-GOP of the same encoded-GOP-set, each encoded-GOP-set is forwarded in a manner to be received by the switch the switch <b>114</b> at the same time (within some tolerance).
0128Turning now to <figref idref="DRAWINGS">FIG. 3B</figref>, there is illustrated a flow diagram of a method <b>306</b> for multi-rate encoding, according to an embodiment. Some of the steps contained in the method <b>306</b> are similar to the steps described above with respect to the methods <b>200</b> and <b>300</b>, as well as with respect to the embodiments of <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B and <b>1</b>C.
0129At step <b>307</b>, the multi-rate encoder <b>101</b> receives a video source stream at multiple encoders of, for example, the encoder-set <b>106</b> and in a manner described above with respect to the steps <b>201</b> and <b>301</b> in the embodiments of <figref idref="DRAWINGS">FIGS. 2 and 3A</figref>.
0130At step <b>308</b>, the video source stream is aligned according to the above-described steps <b>202</b> and <b>302</b> of the embodiment of <figref idref="DRAWINGS">FIGS. 2 and 3A</figref>, respectively.
0131At step <b>309</b>, an optional preprocessing is performed on a received video stream similar that described above at step <b>303</b> in the embodiment of <figref idref="DRAWINGS">FIG. 3A</figref> as well as in the description of the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref>.
0132At step <b>310</b>, the aligned video source stream is multi-pass encoded according to the above-description with respect to <figref idref="DRAWINGS">FIG. 1C</figref>.
0133At step <b>311</b>, on an encoded-GOP-set-by-encoded-GOP-set basis, each encoded-GOP-set is forwarded to the switch <b>114</b> in a manner described above in the embodiment of <figref idref="DRAWINGS">FIG. 1C</figref>.
0134<figref idref="DRAWINGS">FIG. 3C</figref> illustrates a flow diagram of a method for dynamically balancing a level of congestion on a subscriber-line and available bandwidth on a subscriber-line based on one or more indicators of a perceived quality of viewing experience of each channel requested by, for example, the Subscriber A and in a manner according to features described above in the embodiments of <figref idref="DRAWINGS">FIGS. 1D and 1E</figref>.
0135It should be understood that method <b>312</b> may include additional steps and that some of the steps described herein may be removed and/or modified without departing from the functionality of the method <b>312</b>. By way of example, the embodiment of <figref idref="DRAWINGS">FIG. 3C</figref> is described by referencing other figures described herein. Therefore, it should be clear that the embodiment of <figref idref="DRAWINGS">FIG. 3C</figref> is not limited to the other embodiments.
0136At step <b>313</b>, the switch <b>189</b>A of <figref idref="DRAWINGS">FIG. 1D</figref> receives different versions of one or more channels requested by the Subscriber A, each version of each channel having a different bit-rate, as described herein.
0137At step <b>314</b>, the multi-rate statistical switch controller <b>187</b>A extracts meta-data embedded, for example, in each channel requested by the Subscriber A. For example, bit-rate information may be hard-coded. Alternatively, bit-rate information and/or one or more version-identifiers may be embedded each channel. In addition, synchronization or timing information may be extracted from each requested channel. For example, these extractions may be performed on an encoded-GOP-set-by-encoded-GOP-set-basis.
0138At step <b>315</b>, a decision is made, on a subscriber-per-subscriber basis, as to whether each subscriber has a congested subscriber-line. Each decision is made based on congestion information of the subscriber-line.
0139At step <b>316</b>, upon a determination that a subscriber-line is in a congested-state, the channel bit-rate selection module <b>196</b>A selects among different versions of each channel (requested by the subscriber). The channel bit-rate selection module <b>196</b>A selects among different versions of each channel to maintain a perceived quality of viewing experience of each channel requested by the subscriber, for example, by switching from a higher-bit-rate version of a channel to lower bit-rate version of the same channel. A perceived quality of viewing experience can be maintained while viewing the lower bit-rate version of the same channel that has an indicator of a higher level of perceived quality of viewing experience at a lower bit-rate. For example, the channel bit-rate selection module <b>196</b>A balances one or more indicators of perceived quality and the bit-rate information of each requested channel to maintain a perceived quality of viewing experience and select lower bit-rate versions of channels having indicators of higher levels of perceived quality at lower bit-rates. For example, lower levels of complexity of each channel may have indicators of higher quality on lower bit-rate versions of the same channel.
0140At step <b>317</b>, upon a determination of which version of each channel to select to forward, the channel forwarding switch-control module <b>195</b>A uses the synchronization or timing information extracted at step <b>314</b> to control the switch <b>189</b>A to forward each selected version of each channel requested by the subscriber. For example, the channel forwarding switch-control module <b>195</b>A may control the switch <b>189</b>A asynchronously according to a schedule. In this, the channel forwarding switch-control module <b>195</b>A may control the switch <b>189</b>A to forward each selected version of each requested channel at a next switching opportunity. A next opportunity may be, for example, on boundary of a next encoded-GOP. The multi-rate statistical switching system <b>170</b> has to look at the meta data not only for one channel that's being considered to be switched among different versions having different bit-rates, but it has to determine what all other requested channels are doing. For example, the encoder-set that generates each requested channel may embed a first order indicator of a perceived quality as meta data in each encoded video stream. The meta data may include an indicator of perceived quality of viewing experience for each encoded-GOP of each channel. For example, the meta data may include an indicator of perceived quality of viewing experience for each encoded-GOP in each version of a channel. For instance, an indicator of perceived quality of viewing experience for each version of each requested channel may be embedded as meta data. In this, an indicator of perceived quality of viewing experience of each encoded-GOP may be extracted and used to select a different bit-rate version of the corresponding channel for each channel requested by the subscriber to maintain a perceived quality of viewing experience of each channel.
0141As an option, the encoder-set that generates each requested channel may embed a first and a second order indicator of a perceived quality as meta data in the encoded video stream. For example, a second order indicator of perceived quality of viewing experience may indicate a viewing experience of a future or next encoded GOP. Therefore, the multi-rate statistical switch controller <b>187</b>A may use a second order indicator of a perceived quality of a future encoded-GOP and a perceived quality of a current encoded-GOP to select which version of a current encoded-GOP is to be forwarded to the subscriber. Here, it is still necessary to determine a perceived quality of viewing experience and bit-rate of all other channels requested by the subscriber. Using a second order indicator of a perceived quality of viewing experience, the system <b>170</b> may make a better decision about which version of each channel to forward.
0142At step <b>318</b>, upon a determination that the subscriber-line is not in a congested-state, the channel bit-rate selection module <b>196</b>A selects the best available version of each channel requested by the subscriber. In this, the channel forwarding switch-control module <b>195</b>A may control the switch <b>189</b>A to forward the best version of each requested channel at a next switching opportunity of each requested channel. A next opportunity of each requested channel may be, for example, a boundary of an encoded-GOP corresponding to each selected channel. Because each encoded-GOP may be of a variable length, the switching among each channel may be asynchronous with respect to each other.
0143<figref idref="DRAWINGS">FIG. 4</figref> illustrates a block diagram of a computer apparatus <b>400</b>, configured, for example, to implement or execute the methods <b>200</b>, <b>300</b>, <b>306</b> and <b>312</b> as depicted in <figref idref="DRAWINGS">FIGS. 2</figref>, <b>3</b>A, <b>3</b>B and <b>3</b>C. In this, the computing apparatus <b>400</b> may be used as a platform for executing one or more of the functions described hereinabove with respect to the multi-rate encoder <b>101</b> shown in <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>1</b>B and <b>1</b>C as well as with respect to the multi-rate statistical switch controller <b>187</b>A shown in <figref idref="DRAWINGS">FIGS. 1D and 1E</figref>.
0144The computer apparatus <b>400</b> includes a processor <b>402</b> that may implement or executive some or all of the steps described in the methods <b>200</b>, <b>300</b>, <b>306</b> and <b>312</b>. Commands and data from the processor <b>402</b> are communicated over a communication bus <b>404</b>. The computer apparatus <b>400</b> also includes a main memory <b>406</b>, such as a random access memory (RAM), where the program code for processor <b>402</b> may be executed during runtime, and a secondary memory <b>408</b>. The secondary memory <b>408</b> includes, for example, one or more hard disk drives <b>410</b> and/or removable storage drive <b>412</b>, representing a floppy diskette drive, a magnetic tape drive, a compact disk drive, etc., where a copy of the program code for the methods <b>200</b>, <b>300</b>, <b>306</b> and <b>312</b> may be stored.
0145The removable storage drive <b>410</b> reads from and/or writes to a removable storage unit <b>414</b> in a well-known manner. User input and output devices may include a keyboard <b>416</b>, a mouse <b>418</b> and a display <b>420</b>. A display adaptor <b>422</b> may interface with the communication bus <b>404</b> and the display <b>420</b> and may receive display data from the processor <b>402</b> and convert the display data into display commands for the display <b>420</b>. In addition, the processor(s) <b>402</b> may communicate over a network, for instance, the Internet, LAN, etc., through a network adaptor <b>424</b>.
0146It will be apparent to one of ordinary skill in the art that other known electronic components may be added or substituted in the computing apparatus <b>400</b>. In addition, the computer apparatus <b>400</b> may include a system board or blade used in a rack in a head end, central office, neighborhood node, a conventional “white box” server or computing device, etc. In addition, one or more of the components in <figref idref="DRAWINGS">FIG. 4</figref> may be optional (for instance, user input devices, secondary memory, etc).
0147This present invention may also be implemented wirelessly by using a combination of wired and wireless infrastructure. Furthermore, in any situation where a cable television system becomes band-limited, the present invention may be used to deliver video over such a cable system, or any other band-limited network.
0148What has been described and illustrated herein are embodiments of The embodiments along with some of their variations. The terms, descriptions and figures used herein are set forth by way of illustration only and are not meant as limitations. Those skilled in the art will recognize that many variations are possible within the spirit and scope of the embodiments, wherein the embodiments are intended to be defined by the following claims—and their equivalents—in that all terms are meant in their broadest reasonable sense unless otherwise indicated.
Contents4
16 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP0759667A2 | Cites | European Patent Office (EPO) | Applicant |
| US2003067872A1 | Cites | United States of America | Search report |
| KR20040069360A | Cites | Republic of Korea | Applicant |
| WO2004025405A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2006189272A1 | Cites | United States of America | Applicant |
| US2007039028A1 | Cites | United States of America | Applicant |
| US2008212471A1 | Cites | United States of America | Search report |
| US2009116400A1 | Cites | United States of America | Search report |
| US2009154528A1 | Cites | United States of America | Search report |
| US2010085887A1 | Cites | United States of America | Search report |
| US2010322073A1 | Cites | United States of America | Search report |
| US7801183B2 | Cites | United States of America | Applicant |
| US8166170B2 | Cites | United States of America | Applicant |
| US8451719B2 | Cites | United States of America | Applicant |
| US20030067872A1 | Cites | United States of America | Search report |
| US20060189272A1 | Cites | United States of America | Applicant |
| US20070039028A1 | Cites | United States of America | Applicant |
| US20080212471A1 | Cites | United States of America | Search report |
| US20090116400A1 | Cites | United States of America | Search report |
| US20090154528A1 | Cites | United States of America | Search report |
| US20100085887A1 | Cites | United States of America | Search report |
| US20100322073A1 | Cites | United States of America | Search report |
| EP759667A2 | Cites | European Patent Office (EPO) | Applicant |
| KR1020040069360A | Cites | Republic of Korea | Applicant |
| WO2004025405A2 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| PCT Search Report & Written Opinion, Re: Application #PCT/US2009/061574, May 31, 2010. | Non-patent | – | Applicant |
| European Patent Office, Supplementary European Search Report in European Patent Application 09826518 Jan. 30, 2015. | Non-patent | – | Applicant |
| Davini et al., “Perceptually-Evaluated Loss-Delay Controlled Adaptive Transmission of MPEG Video over IP” New Frontiers in Telecommunications, 2003 IEEE International Conference on Communications; ICC 2003; May 11-15, 2003, Anchorage, Alaska, USA; pp. 577-581, (May 11, 2003). | Non-patent | – | Applicant |
| System Dynamics Inc., “Sandy and Dave's Report on the Broadband Home,” Jul. 10, 2008. <http://www.broadbandhomecentral.com/report/backissues/Report0804<sub>—</sub>6.html>. | Non-patent | – | Applicant |
| PCT Search Report & Written Opinion, Re: Application #PCT/US2009/061574, May 31, 2010. | Non-patent | – | Applicant |
| European Patent Office, Supplementary European Search Report in European Patent Application 09826518 Jan. 30, 2015. | Non-patent | – | Applicant |
| Davini et al., "Perceptually-Evaluated Loss-Delay Controlled Adaptive Transmission of MPEG Video over IP" New Frontiers in Telecommunications, 2003 IEEE International Conference on Communications; ICC 2003; May 11-15, 2003, Anchorage, Alaska, USA; pp. 577-581, (May 11, 2003). | Non-patent | – | Applicant |
| System Dynamics Inc., "Sandy and Dave's Report on the Broadband Home," Jul. 10, 2008. . | Non-patent | – | Applicant |
7 members in 3 offices; this record represents the family
Members7
| Document | Office | Kind | |
|---|---|---|---|
| US2010118697A1 | United States of America | A1 | |
| WO2010056474A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2010056474A3 | World Intellectual Property Organization (WIPO) | A3 | |
| EP2347587A2 | European Patent Office (EPO) | A2 | |
| EP2347587A4 | European Patent Office (EPO) | A4 | |
| US9106544B2This record | United States of America | B2 | |
| EP2347587B1 | European Patent Office (EPO) | B1 |
110 transactions on the USPTO file
Allowed after 3 non-final rejections, 2 final rejections, 3 RCEs and 1 appeal.
- Non-final rejections
- 3
- Final rejections
- 2
- RCEs
- 3
- Appeals
- 1
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Payment of Maintenance Fee, 4th Year, Large EntityM1551 | M1551 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| 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 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Notice of Rescinded AbandonmentAbandonedMNRAB | MNRAB | |
| Mail-Petition to Revive Application - GrantedMPREV | MPREV | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Petition to Revive Application - GrantedPREV | PREV | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Notice of Rescinded Abandonment in TCsAbandonedNRAB | NRAB | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Petition EnteredPET. | PET. | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Mail Appeals conf. Proceed to PTABMAPCP | MAPCP | |
| Pre-Appeal Conference Decision - Proceed to PTABAPCP | APCP | |
| Email NotificationEML_NTR | EML_NTR | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| Request for Pre-Appeal Conference FiledAP.C | AP.C | |
| Notice of Appeal FiledN/AP | N/AP | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Interview Summary- Applicant InitiatedEXIA | EXIA | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| 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 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| 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 | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 9106544
- Application
- 12269599
Titles
- English
- Multi-rate statistical multiplexing
Patent term adjustment
- A delay
- +252 daysthe office missed an examination deadline
- B delay
- +206 dayspendency past three years
- Applicant delay
- −698 days
- Net adjustment
- 0 days
Classification
- CPC, 7
- H04L47/10
- H04L47/11
- H04L47/25
- H04L47/12
- H04N21/23439
- H04N21/23655
- H04N21/2402
- IPC, 7
- G01R31 08
- H04L12 801
- H04L12 825
- H04N21 2343
- H04N21 2365
- H04N21 24
- H04L47 10