`
`For
`
`METHOD AND DEVICE FOR RECEIVING AND PROVIDING PROGRAMS
`
`Inventors:
`
`Swaminatha Vasudevan
`
`Pritesh Mukeshbhai Dave
`
`Kumaraguru Dhandapani
`
`Ran Oz
`
`and
`
`Nery Strasman
`
`SONY - Ex.-1002
`Sony Corporation - Petitioner
`
`1
`
`SONY - Ex.-1002
`Sony Corporation - Petitioner
`
`1
`
`
`
`METHOD AND DEVICE FOR RECEIVING AND PROVIDING PROGRAMS
`
`RELATED CASES
`
`[0001]
`
`This patent claims priority from US. provisional patent application serial number
`
`60/600473 filed at August 10 2004 and from US. provisional patent application serial number
`
`60/662844 filed at March 18 2005 titled “switched broadcast implementation”.
`
`FIELD OF THE INVENTION
`
`[0002]
`
`The present invention relates to communication systems and especially to methods
`
`and systems for providing programs and for receiving programs.
`
`BACKGROUND OF THE INVENTION
`
`[0003]
`
`The number of television channels (programs) has dramatically increased during the
`
`last decade. In addition, various technologies such as high definition television require larger
`
`amounts of bandwidth.
`
`[0004]
`
`In order to provide many programs to multiple user devices various techniques such
`
`as statistical multiplexing and various compression schemes (such as but not limited to the MPEG
`
`compression standards) were developed. These techniques can improve the bandwidth utilization
`
`of existing infrastructure. Nevertheless, even when these techniques are implemented the number
`
`of programs that can be provided to users is relatively limited.
`
`[0005]
`
`The following patents and patent applications, all being incorporated herein by
`
`reference, illustrate some prior art methods and devices for providing multiple programs to users:
`
`US. patent 6597670 of Tweedy et al., titled “Method and system for distributing subscriber
`
`services using wireless bidirectional broadband loops”; US. patent application publication serial
`
`number 2005/0033342 of Rosetti eta1., titled “Technique for providing a virtual digital video
`
`recorder service through a communication network”; US. patent application serial number
`
`2005/0120377 of Carlucci et al., titled “Technique for effectively providing various entertainment
`
`services thorough a communication network”; PCT patent application W02005/008419 of
`
`Compton el al., titled “Distributed and scalable architecture for on demand session and resource
`
`2
`
`
`
`management”; PCT patent application publication number W02005/022796 of Krause et al.,
`
`titled “Advanced, adaptive video multiplexing system”; PCT patent application publication
`
`number W02005/022892 of Krause et al., titled “Video multiplexer system providing low-
`
`latency VCR-like effects and program changes” and US. patent 6718552 of Goode “network
`
`bandwidth optimization by dynamic channel allocation”.
`
`[0006]
`
`There is a need to provide efficient methods and devices for providing programs to
`
`multiple users and for receiving programs by users.
`
`3
`
`
`
`SUMMARY OF THE PRESENT INVENTION
`
`[0007]
`
`A user device that includes a transceiver unit that is connected to a controller,
`
`wherein the device is adapted to: (i) receive a program multiplex, (ii) receive an indication that at
`
`least one program is to be removed from the multiplex; and (iii) selectively transmit a program
`
`removal response.
`
`[0008]
`
`A device that is adapted to provide a program multiplex, the device includes: (i) a
`
`media processor adapted to generate a program multiplex; and (ii) a management unit, connected
`
`to the media processor, adapted to (a) consider a removal of at least one program from the
`
`multiplex in response to program viewing parameters, and (b) determine the removal in response
`
`to at least one received user program removal response.
`
`[0009]
`
`A method for receiving programs that includes: (i) receiving a program multiplex;
`
`'
`
`‘
`
`receiving a program removal indication; and (ii) selectively transmitting a program removal
`
`.7
`
`.
`
`response.
`
`[00010]
`
`A method for providing programs, the method includes: (i) providing a program
`
`multiplex to multiple user devices; (ii) considering a removal of at least one program from the _
`
`multiplex in response to program viewing parameters; (iii) allowing at least one user to respond
`
`to a possible removal of the at least one program; and (iv) determining whether to remove the at
`
`least one program in response to received user removal responses.
`
`4
`
`
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`[00011]
`
`The present invention will be understood and appreciated more fully from the
`
`following detailed description taken in conjunction with the drawings in which:
`
`[00012]
`
`Figure 1 illustrates a headend and a hub according to an embodiment of the
`
`invention;
`
`[00013]
`
`Figure 2 illustrates a headend and a hub according to another embodiment of the
`
`invention;
`
`[00014]
`
`Figure 3 illustrates a user device according to an embodiment of the invention;
`
`[00015]
`
`Figure 4 illustrates a cable network according to an embodiment of the invention;
`
`[00016]
`
`Figure 5 illustrates a cable network according to another embodiment of the
`
`invention;
`
`[00017]
`
`Figure 6 illustrates various programs and signals exchanged over a cable network
`
`according to an embodiment of the invention;
`
`[00018]
`
`Figure 7 illustrates a content information table according to an embodiment of the
`
`invention;
`
`[00019]
`
`Figure 8 illustrates differential content information message according to an
`
`embodiment of the invention;
`
`[00020]
`
`Figure 9 illustrates a program viewng table according to an embodiment of the
`
`invention;
`
`[00021]
`
`Figure 10 illustrates a delay unit and a timing diagram according to an embodiment
`
`of the invention;
`
`[00022]
`
`Figure 11 illustrates various group of pictures, according to an embodiment of the
`
`invention;
`
`[00023]
`
`Figure 12 illustrates a method for providing programs, according to an embodiment
`
`of the invention; and
`
`[00024]
`
`Figure 13 illustrates a method for receiving programs, according to an embodiment
`
`of the invention.
`
`5
`
`
`
`DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
`
`[00025]
`
`The disclosed technique is directed to a broadband network, which can be either
`
`wired or wireless, such as an HFC network, a DSL network, satellite communication and the like.
`
`[00026]
`
`It is further noted that the description relates to MPEG (and especially MPEG2)
`
`compliant programs and components, but the invention is applicable to other types of media unit
`
`decoding and/or compression schemes as well. It is further noted that the media streams are also
`
`referred to as programs, although this is not necessarily so and the invention can be applied to
`
`media streams that are not programs.
`
`[00027]
`
`According to an embodiment of the invention a device is provided. The device is
`
`adapted to provide a program multiplex. The device includes a media processor and a
`
`management unit. The media processor is adapted to generate a program multiplex. The
`
`management unit is adapted to consider a removal of at least one program from the multiplex (for
`
`example in response to program viewing parameters) and determine whether to remove the
`
`program in response to at least one user program removal response or in response to an absence
`
`of such response. This device can be included within a headend, within a hub, within a node,
`
`partially within either one of the hub, headend and node, and the like.
`
`[00028]
`
`The program removal response can include a removal approval, an objection to the
`
`removal, a parameter that can reflect the amount of acceptance/ rejection to the removal, a request
`
`to delay the removal, and the like. The requested delay period can be included within the
`
`response.
`
`[00029]
`
`According to an embodiment of the invention a user device is provided. It includes a
`
`transceiver unit that is connected to a controller. This device is adapted to receive a program
`
`multiplex, receive an indication that at least one program is to be removed from the multiplex;
`
`and selectively transmit a program removal response.
`
`[00030]
`
`Figure 1 illustrates a headend 20 and a hub 40 according to an embodiment of the
`
`invention.
`
`[00031]
`
`The headend 20 and hub 40 are connected to each other via a headend to hub network
`
`30. It is noted that other configurations can be provided, including a unified hub and headend
`
`configuration.
`
`[00032]
`
`The hub 40 is connected to multiple user devices via hub to user device network 31.
`
`This network 31 is usually a hybrid fiber coax (HFC) network, but this is not necessarily so.
`
`6
`
`
`
`[00033]
`
`Headend 20 can receive media content from various sources such as video on
`
`demand server 92, and satellite dishes 93, 93’ and 93”. The headend 20 includes a media
`
`processor 21 that can process programs in various manners, including rate-shaping, performing
`
`PID re-mapping, generating delayed versions of a program, duplicating programs, performing
`
`statistical multiplexing, compressing, encrypting and the like.
`
`[00034]
`
`An exemplary broadband media router that has such media processing capabilities is
`
`described in US. patent 6434141 of Oz et al., which is incorporated herein by reference. An
`
`exemplary method and device for generating delayed version of programs is described in US.
`
`patent 6813270 of Oz et al., which is also incorporated herein by reference.
`
`[00035]
`
`The headend transmits a headend multiplex (such as M0 of figure 4) to the hubs.
`
`Each hub transmits a hub multiplex (such as multiplexes M1-M3 of figure 4) to multiple user
`
`devices. Typically, user devices that receive the same multiplex are referred to as a user devices
`
`group.
`
`[00036]
`
`The media processor 21 is controlled by a headend management unit 26 that may
`
`determine which media processing operations to apply and also determine which programs-should
`
`be included within the headend and hub multiplexes.
`
`[00037]
`
`Usually, headend 20 is connected to multiple hubs (for example hubs 40, 40’ and 40”
`
`of figure 4, nodes 41 and 43 of figure 5), and is capable of providing to each hub a different
`
`program multiplex. It is noted that the amount of hubs can differ from three.
`
`[00038]
`
`Alternatively, each hub can receive a headend multiplex of programs and select the
`
`programs to be included within the hub multiplex of programs. Typically, the bandwidth of the
`
`headend to hub network 30 is much larger than the bandwidth of the hub to user network 31, thus
`
`the headend multiplex can include much more programs than the hub multiplex.
`
`[00039]
`
`The headend management unit 26 can perform additional tasks such as billing related
`
`tasks, and the like.
`
`[00040]
`
`Headend 20 also includes a transport system 24 that is adapted to receive one or more
`
`program multiplexes from media processor 21 and to process it such as to comply to format
`
`conveyed over headend to hub network 30. This processing may include fragmentation,
`
`aggregation, packet encapsulation, and the like.
`
`[00041]
`
`The headend management unit 26 is usually adapted to perform resource allocation.
`
`The resource allocation determines the resources (including component, frequency, bandwidth,
`
`7
`
`
`
`port and the like) that are allocated for a certain task (such as a transmission of a program). The
`
`headend management unit 26 can determine which programs to include within each multiplex,
`
`when to send program removal information and how to response to received program removal
`
`responses that are transmitted by user devices.
`
`[00042]
`
`According to another embodiment of the invention the resource management is
`
`performed, at least partially, by management units located within the hubs and/or nodes.
`
`[00043]
`
`According to an embodiment of the invention headend 20 can determine which
`
`programs to include within each program multiplex based upon various parameters, including
`
`user viewing patterns, viewing statistics and the like.
`
`[00044]
`
`The programs can be classified to various groups that differ from each other by the
`
`probability removal from the multiplex. As a rule of thumb programs that are viewed by a very
`
`large number of the viewers can be removed only in rare occasions, while programs that rarely
`
`viewed can be provided to users only upon request. It is noted that the programs can be classified
`
`to two types - “static” and “switched”, but this is not necessarily so and more than two groups can
`
`be defined.
`
`[00045]
`
`It is further noted that the content of a certain multiplex can be responsive to current
`
`viewing statistics, to previous viewing patterns, to expected viewing patterns, and/or to
`
`predefined criteria. Such a criteria can be responsive to a transmission priority of a program.
`
`[00046]
`
`Figure 2 illustrates headend 20’ and hub 40’ according to another embodiment of the
`
`invention.
`
`[00047]
`
`Headend 20’ is connected, via headend to hub network 30 to hub 40’. Hub 40’ is
`
`connected to multiple user devices via hub to user device network 31. Typically, multiple hubs
`
`and/or nodes are connected to a single headend, but for simplicity of explanation a single hub and
`
`a single headend are illustrated.
`
`[00048]
`
`Hub 40’ may exchange data, programs and control signals with multiple user devices.
`
`The main path for providing downstream signals from the hub to the user devices is also termed
`
`in-band, while the auxiliary path for providing upstream and downstream information is also
`
`referred to out-of-band path.
`
`[00049]
`
`Conveniently, programs, data and control signals (including for example, content
`
`information) are transmitted via the in-band path while data and control signals (including for
`
`8
`
`
`
`example, active messages and program removal response) are transmitted via the out—of-band
`
`path.
`
`[00050]
`
`Hub 40’ includes a hub management unit 54, in-band transmit/receive module
`
`(denoted “In-band RX/TX module”) 44 and out-of-band transmit/receive module (denoted “Out-
`
`of-band RX/TX module”) 46. The hub management unit 54 controls modules 44 and 46 and
`
`determines, either alone or by cooperating with the headend 20’ which programs should be
`
`included with a program multiplex. The hub management unit 54 can also define modulation
`
`characteristics, control the provision of local content, calculate user viewing patterns and
`
`statistics, and the like.
`
`[00051]
`
`Figure 3 illustrates a user device 60, according to an embodiment of the invention.
`
`[00052]
`
`Device 60 can be a set top box or another computerized entity. It is connected to a
`
`display, such as television 69 and can receive instructions from a remote control, via interface 68.
`
`Thus, instructions such as change program instructions, alter picture or sound related instructions,
`
`as well as signals exchanged during interactive sessions are received by interface 65 and sent to
`
`controller 63.
`
`[00053]
`
`The analysis of these signals can indicate if a user views the received programs. The
`
`analysis can be responsive to the length of viewed programs, and/or to viewing patterns of the
`
`viewers. The interface 65 can also receive signals sent to the television, thus provide additional
`
`indication about the viewing related activities of the user.
`
`[00054]
`
`User device 60 also includes a transceiver unit (denoted RX/TX unit) 61 that is
`
`adapted to receive and transmit signals, such as radio frequency signals, over a hub to user device
`
`network 31. Unit 61 usually includes a tuner, a modulator, a de-modulator and a transmitter. It is
`
`controlled by controller 63 that can set various reception and/or transmission parameters such as
`
`tuner frequency, modulation and demodulation schemes and the like.
`
`[0005 5]
`
`The transceiver unit 61 is connected to parser 62 that can selectively provide data and
`
`control signals to controller 63 while sending programs to decoder 64. Decoder 64 is connected to
`
`television 69.
`
`[00056]
`
`Figure 4 illustrates a cable network 90 according to an embodiment of the invention.
`
`[0005 7]
`
`Network 90 includes headend 20 that is connected to multiple content providers such
`
`as Video On Demand (VOD) servers 94 and 96 and satellite dish 92. It is noted that the amount of
`
`content providers as well as their type can differ from those illustrated in figure 4.
`
`9
`
`
`
`[0005 8]
`
`Headend 20 is connected, via headend to hubs network 31 to three hubs 40, 40’ and
`
`40”. It is noted that it can be connected to different hubs via different networks, that more than
`
`three hubs can be connected to headend 20 and that network 90 can include additional
`
`intermediate devices, such as nodes.
`
`[00059]
`
`Each hub (40, 40’ and 40”) is connected to multiple user devices via a hub to user
`
`devices network such as HFC networks 70,70’ and 70”.
`
`[00060]
`
`Each hub can be connected to a large number of user devices. Many HFC networks
`
`are connected to hundreds of user devices and even to more than one thousand user devices. For
`
`simplicity of explanation only nine user devices are illustrated as being connected to each hub.
`
`For example, user devices STB 80(1) - STB 80(9) are connected to hub 40, user devices STB
`
`80(1)’ - STB 80(9)’ are connected to hub 40’, and user devices STB 80(1)” - STB 80(9)” are
`
`connected to hub 40”.
`
`[00061]
`
`Each network out of HFC networks 70, 70’ and 70” can supply to the user devices a
`
`different program multiplex. Hub 40 provides hub multiplex Ml, Hub 40’ provides hub multiplex
`
`M2 and hub 40” provides hub multiplex M3. Headend 20 sends headend multiplex M0 to the
`
`three hubs.
`
`[00062]
`
`Conveniently, MO can include all the content of M1, M2 and M3, although each hub
`
`can insert local content to the hub multiplex. Conveniently, M0 includes all the programs that are
`
`included within M1-M3.
`
`[00063]
`
`Conveniently, headend 20 determines which program to remove from the multiplex
`
`M0, which program to add, when to send program removal indications, how to respond to
`
`program removal responses, to the reception or lack of receptions of active messages, and the
`
`like. It is noted that this is not necessarily so and other components (such as hubs) can perform
`
`some or all of these decisions, or participate (along with the headend or another component) in
`
`such a decision.
`
`[00064]
`
`Figure 5 illustrates a cable network 91 according to another embodiment of the
`
`invention.
`
`[00065]
`
`Cable network 91 includes a first headend 20 and a second headend 21. The first
`
`headend 20 receives programs from satellite dishes 92, 92’, and 92”. The second headend 21
`
`receives programs from satellite dishes 93, 93’ and 93”, as well as from VOD server 92.
`
`10
`
`10
`
`10
`
`
`
`[00066]
`
`First headend 20 is connected to first node 41 via backbone infrastructure 84. The
`
`backbone infrastructure 84 includes multiple backbone routers 82. Second headend 21 is
`
`connected to second node 43 via backbone infrastructure 84. First node 41 is connected to
`
`multiple user devices 80(1)” — 80(9)” via HFC network 70”. Second node 43 is connected to
`
`multiple user devices 80(1) — 80(9) via HFC network 70.
`
`[00067]
`
`The first headend 20 can determine which programs to remove (or add to) from the
`
`hub multiplex that is sent over HFC network 70” while the second headend 21 can determine
`
`which programs to add to (or remove from) the hub multiplex that is sent over HFC network 70.
`
`[00068]
`
`Redundancy can be provided by supplying the same programs from multiple
`
`backbone routers 82. In such a case first headend 20 can send stream removal indications and
`
`receive program removal responses from user devices that are connected to HFC network 70 as
`
`well as those that are connected to HFC network 70”. According to another embodiment of the
`
`invention the first headend 20 can send program removal indications and/or receive program
`
`removal responses and/or respond to program removal responses from user devices 80(1)” —
`
`80(9)”.
`
`[00069]
`
`Figure 6 illustrates various programs and signals exchanged over a cable network
`
`according to an embodiment of the invention.
`
`[00070]
`
`It is assumed that the illustrated programs belong to M1. Between T0 and T3 Ml
`
`includes K programs 101—109. K is a positive integer that is usually greater then fifty.
`
`[00071]
`
`Before T1 or at T1 headend 20 considers the removal of second program 102 and to
`
`replace it by program R 110. The decision can be responsive to various parameters, including
`
`lack of interest in the second program 102, a request to view program R 110, an expectation that
`
`program R 110 will be requested, bandwidth constraints, and the like.
`
`[00072]
`
`At T1 headend 20 sends to user devices 80(1)- 80(9) 3 program removal indication
`
`(illustrated as flag 121) that indicates that headend 20 considers to remove second program 102.
`
`Headend 20 waits to receive a stream removal response during a predefined waiting period.
`
`[00073]
`
`At T2, in response to received responses (or to an absence of such responses)
`
`headend 20 decides to replace the second program 102 by program R 110.
`
`[00074]
`
`According to an embodiment of the invention the program removal indication can
`
`also include the time of the removal.
`
`11
`
`11
`
`11
`
`
`
`[00075]
`
`Headend 20 sends at T3 a differential content information message 131 that indicates
`
`that the second program 102 was replaced by program R 110.
`
`[00076]
`
`At T3 the second program 102 is replaced by program R 110 and M1 includes the
`
`first program 101, program R, and third to K’th programs 103-109. M1 remains the same until
`
`T6.
`
`[00077]
`
`Before T4 or at T4 headend 20 considers the removal of the fourth and fifth
`
`programs 104 and 105 and the inclusion of one or more programs, such as program Q 111 within
`
`M1. The decision can be responsive to various parameters, including lack of interest in the fourth
`
`and fifth programs 104 and 105, a request to view various programs including program Q 111, an
`
`expectation that program Q 111 will be requested, bandwidth constraints, and the like.
`
`[00078]
`
`At T4 headend 20 sends to user devices 80(1)- 80(9) a program removal indication
`
`(illustrated as flag 122) that indicates that headend 20 considers to remove fourth and fifth
`
`programs 104 and 105.
`
`[00079]
`
`Headend 20 waits to receive a stream removal response. At T5, in response to
`
`received responses (or to an absence of such responses) headend 20 decides to replace the fifth
`
`program 105 by program Q 111 but to continue to transmit the fourth program 104.
`
`[00080]
`
`Headend 20 sends at T6 differential content information message 132 that indicates
`
`that the fifth program 105 is being replaced by program Q 111.
`
`[00081]
`
`At T6 the fifth program 105 is replaced by program Q l 11 and M1 includes the first
`
`program 101 , program R, third and fourth programs, program T, and the sixth to the K’th
`
`programs 101, 110, 103, 104, 111, 106-109.
`
`[00082]
`
`Headend 20 transmits content information messages or differential content
`
`information messages that can assist the user devices to seamlessly switch between programs. A
`
`user device will send a request to receive a certain program if that program is not included within
`
`the hub multiplex that is provided to the user device. The content information can include various
`
`information such as carrier frequency and modulation that can assist the user device to switch
`
`between programs. Conveniently, the user device sends an indication when is switches to another
`
`program, even if that program, belongs to the received multiplex. This enables the headend to
`
`track the viewing patters of the users. According to another embodiment of the invention the
`
`indication is not sent if the program is defined as a static program.
`
`12
`
`12
`
`12
`
`
`
`[00083]
`
`In order to reduce bandwidth the content information can be sent in a differential
`
`manner. Differential content information messages can indicate differences between a previously
`
`transmitted program multiplex and a currently transmitted program multiplex.
`
`[00084]
`
`According to another embodiment of the invention the headend 20 can determine
`
`whether to send content information messages or differential content information messages. The
`
`determination can be responsive to the amount of changes between the pervious and current
`
`program multiplexes. For example, if more than half of the programs are replaced simultaneously
`
`then the content information messages can be smaller than the differential content information
`
`messages.
`
`Figure 7 illustrates a content information table 200 according to an embodiment of
`[00085]
`the invention. Content information table 200 includes a list of programs that are included within
`
`the program multiplex as well as multiple associated parameters. These parameters can include,
`
`for example, the program name, tuning frequency, modulation type, program identification field
`
`(such as an MPEG compliant PID), and program type (switched, static, and the like).
`
`[00086]
`
`Figure 8 illustrates a differential content information message 131 according to an
`
`embodiment of the invention. Differential content information message 131 is transmitted at T3
`
`and indicates that the second program 102 is removed (program type is ‘REMOVED’) and that
`
`program R 110 is provided. The parameters of program R 110 are included within the differential
`
`content information message 131.
`
`[00087]
`
`The content information can also determine the type of program - for example
`
`whether the program is static or switched. In the former case the user devices knows that the
`
`program will not be replaced, and thus can ignore program removal information if it is tuned to
`
`than program.
`
`[0008 8]
`
`According to an embodiment of the invention headend 20 can receive user viewing
`
`indications about users viewing related operations (gathered by the user device) and try to
`
`estimate the viewing patterns of the user and/or generate viewing statistics. The statistics and/or
`
`viewing patterns can be used by headend 20 to decide which programs to remove from a program
`
`multiplex and which program to add to the program multiplex.
`
`[00089]
`
`Figure 9 illustrates a program viewing table 230 according to an embodiment of the
`
`invention. Table 230 includes four columns 232-238. The first column 232 includes the names of
`
`the programs, the second column includes the amount of users that are viewing the program (or at
`
`least an estimate of their number), the identity of user devices that are tuned to receive each
`
`13
`
`13
`
`13
`
`
`
`programs and user viewing information that reflects the operations that are received by interface
`
`-65. Table 230 illustrates that if the number of viewers exceeds a certain threshold then the user
`
`viewing information is irrelevant.
`
`[00090]
`
`According to an embodiment of the invention the switching between programs can be
`
`speeded up by generating multiple time-shifted versions of a program and providing a single
`
`version that includes an independently decodable frame (or picture) that follows the switching
`
`point by the shortest period, in relation to corresponding independently decodable frames of other
`
`versions of the program.
`
`[00091]
`
`Figure 10 illustrates delay unit 250 and a timing diagram 113 according to an
`
`embodiment of the invention.
`
`[00092]
`
`The delay unit 250 is conveniently included within media processor 210. It receives a
`
`program and generated multiple time-shifted versions of that program. The program can be
`
`provided to the delay unit 250 near an expected addition of that program to the multiplex. A
`
`program should be added at a frame that can be independently decodable, such as an I-frame.
`
`Typically, various frame types (including P-frames and B-frames) are transmitted at group of
`
`pictures that are also referred to as GOPs. A GOP starts with an I-frame.
`
`[00093]
`
`Once the headend decides to add a program (usually as a result from a request to
`
`View that program), the switching (or adding) period can be shortened by providing a program
`
`that includes a I-frame that follows the decision moment and is relatively close to that decision
`
`moment. This can be facilitated by generating multiple time-shifted versions of a certain program,
`
`and selecting one version in response to time difference between the decision moment and the
`
`occurrence of an I-frame.
`
`[00094]
`
`For example, delay unit 250 receives program R 110 and outputs program R 110, and
`
`three time-shifted versions referred to as D1 delayed program R’ 110’, D2 delayed program R”
`
`110” and D3 delayed program R’” 110’”. Timing diagram illustrates a single GOP (GOP 113,
`
`GOP 113’, GOP 113” and GOP 113’”) from each of these programs.
`
`[00095]
`
`One of the delayed programs (or even the original program) should be added to the
`
`multiplex shortly after T3. GOP 113” (and accordingly time-shifted program 111”) is selected it
`
`includes the I frame that is closets (and follows) to T3.
`
`[00096]
`
`According to an embodiment of the invention the headend (or hub) speeds the
`
`switching process by changing the type of one or more frame (B frame or P frame) to an
`
`14
`
`14
`
`14
`
`
`
`independently decoded frame. For example, a B-frame can replaced by a P frame. GOP 111” is
`
`modified (to provide a modified GOP 111*), prior to the switching point (at T3) by replacing a P
`
`frame that follows T3 by an I frame. Modified GOP 111* is followed by GOP 112”.
`
`[00097]
`
`Figure 12 illustrates method 300 for providing programs, according to an
`
`embodiment of the invention.
`
`[00098] Method 300 starts by stages 310 and 320. Stage 310 includes providing a program
`
`multiplex to multiple users device.
`
`[00099]
`
`Stage 320 includes generating content information representative of the programs
`
`that are included within the multiplex. This information is sent to the users. Conveniently, the
`
`content information includes program frequency, program identification information, program
`
`modulation information, and the like.
`
`[000100] According to an embodiment of the invention instead of sending content information
`
`representative of the whole content of the multiplex, only differential content information
`
`messages are transmitted. Differential content information represents changes between a previous
`
`content of the multiplex and a current content of the multiplex.
`
`[000101] According to yet another embodiment of the invention each user out of a group of
`
`multiple users is associated with unique program parameters. Thus, each device that is connected
`
`to a certain HFC network has a dedicated combination of carrier frequency and PID and the
`
`headend switches between programs provided to this user device by changing the parameters
`
`(PID, carrier frequency) of the program. In this case the headend (or hub) should be capable of
`
`performing program duplication (in case that multiple users request to receive the same program),
`
`and PID—remapping. In such a case only the programs that are currently viewed by the users are
`
`included within the multiplex.
`
`[000102] Conveniently, the headend 20 sends to the hubs a multiplex (such as M0) that is then
`
`split to different multiplexes (Ml-M3) that are provides by different hubs to different HTC
`
`networks. In such a case the characteristics (for example PID and carrier frequency) of a program
`
`within M0 can differ from the parameters of that program within either one of M1, M2 or M3. In
`
`such a case the hubs can perform PH) re-mapping and/ or frequency alterations.
`
`[000103] Stage 330 can follow stage 310 or at least partially overlap stage 310. Stage 330
`
`includes considering a removal of at least one program from the multiplex in response to program
`
`viewing parameters. The program viewing parameters can reflect the amount of users that view
`
`15
`
`15
`
`15
`
`
`
`each program, a removal priority of the program, the program type, an expectation to view a new
`
`program and the like.
`
`[000104] The amount of users that view a program can be estimated by the tuning parameters
`
`(such as carrier frequency and/or PID) of the user devices, by active messages that indicate that
`
`the user devices are still active, by user viewing information (such as received instructions)
`
`reflecting that the user View the program. In order to evaluate the status (active, idle) of a user
`
`device and in order to estimate whether the user views a program method 300 includes optional
`
`stages such as stages 380 and 390.
`
`[000105] Stage 330 is followed by stage 340 of allowing at least one user to respond to the
`
`consideration. Conveniently, stage 340 includes sending program removal indication to at least
`
`one user device and waiting to receive at least one user program removal response.
`
`[000106] The waiting stage can be limited to a waiting period. At the end of the waiting period
`
`any received program removal responses are evaluated in order to determine whether to perform
`
`the program removal of not. The determination is usually also responsive to additional parameters
`
`such as available bandwidth, requests to add a program, an expectation that a certain program will
`
`be requested, programs removal priority, and the li