Language selection

Search

Patent 2684824 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2684824
(54) English Title: FAILOVER WITH REDUNDANT MULTICASTS FOR SWITCHED DIGITAL VIDEO
(54) French Title: BASCULEMENT AVEC MULTIDIFFUSIONS REDONDANTES POUR VIDEO NUMERIQUE COMMUTEE
Status: Granted
Bibliographic Data
(51) International Patent Classification (IPC):
  • H04N 21/64 (2011.01)
  • H04N 21/6405 (2011.01)
  • H04L 27/34 (2006.01)
(72) Inventors :
  • MAO, WEIDONG (United States of America)
  • GABLER, PHILLIP (United States of America)
(73) Owners :
  • COMCAST CABLE COMMUNICATIONS, LLC (United States of America)
(71) Applicants :
  • COMCAST CABLE COMMUNICATIONS, LLC (United States of America)
(74) Agent: MACRAE & CO.
(74) Associate agent:
(45) Issued: 2018-05-01
(22) Filed Date: 2009-11-06
(41) Open to Public Inspection: 2011-05-06
Examination requested: 2014-11-06
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract

A method and system for delivering content is provided. In one example, responsive to a request by a client device identifying a video program, the system is configured to determine different first and second network paths for delivery of the video program from a content source; deliver the video program via the first network path to the client device; and responsive to a change in status of the video program being delivered via the first network path, deliver the video program via the second network path to the client device.


French Abstract

Linvention concerne une méthode et un système qui permettent de distribuer un contenu. Dans un exemple, en réponse à une requête par un dispositif client identifiant un programme vidéo, le système est conçu pour déterminer des premier et second trajets de réseau différents pour distribuer le programme vidéo à partir dune source de contenu; distribuer le programme vidéo par le premier trajet de réseau au dispositif client; et en réponse à un changement de statut du programme vidéo étant distribué par le premier trajet de réseau, distribuer le programme vidéo par le second trajet de réseau au dispositif client.

Claims

Note: Claims are shown in the official language in which they were submitted.


CLAIMS
1. A method, comprising:
responsive to a request for a content item, determining different first and
second network
paths for delivery of the content item from at least one content source;
concurrently joining, by a modulation device, redundant primary and secondary
multicasts communicating the content item via the first and second network
paths, respectively;
communicating a response from the modulation device upon receipt, by the
modulation device,
of the content item, wherein the response comprises data to be used by a
client device to access
the content item;
delivering the content item via the first network path to the client device;
and
responsive to a change in status of the content item being delivered via the
first network
path, delivering, by the modulation device, the content item via the second
network path to the
client device.
2. The method of claim 1, wherein the change in status comprises a failure
to receive the
content item via the first network path.
3. The method of claim 1, wherein the change in status comprises a
reduction in quality of
the content item received via the first network path.
4. The method of claim 1, 2, or 3, further comprising determining whether
the change in
status has occurred for at least a predetermined period of time, wherein
delivering the content
item, as received via the second network path, is performed responsive to
determining that the
change in status has occurred for least the predetermined period of time.
5. The method of any one of claims 1 to 4, further comprising configuring a
quadrature
amplitude modulation (QAM) device to receive the content item via the first
and second network
paths.
23

6. The method of any one of claims 1 to 5, further comprising determining a
service level
associated with the client device, wherein the concurrently joining the
redundant primary and
secondary multicasts communicating the content item via the first and second
network paths,
respectively, is performed in response to determining that the service level
is associated with a
concurrent join.
7. The method of claim 5, further comprising:
joining, by the QAM device, a primary multicast communicating a second content
item
prior to delivering the second content item to the client device; and
joining, by the QAM device, a secondary multicast communicating the second
content
item via the second network path responsive to receiving a change in status of
the second content
item.
8. A method, comprising:
determining a content item responsive to a request from a client device;
determining, by an edge device controller, different first and second network
paths for
delivery of the content item from at least one content source;
controlling an edge device to concurrently join redundant primary and
secondary
multicasts communicating the content item via the first and second network
paths, respectively;
receiving, from the edge device, a response comprising data to be used by the
client
device to access the content item;
communicating the data to the client device; and
causing delivery of the content item via the first network path to the client
device, and,
responsive to a change in status of the content item being delivered via the
first network path,
causing delivery of the content item via the second network path to the client
device.
9. The method of claim 8, wherein the change in status comprises a failure
to receive the
content item via the first network path.
10. The method of claim 8, wherein the change in status comprises a
reduction in quality of
the content item received via the first network path.
24

11. The method of claim 8, 9, or 10, wherein causing delivery further
comprises causing
delivery in response to a determination, by the edge device, whether the
change in status has
occurred for at least a predetermined period of time, and wherein the edge
device is configured
to deliver the content item, as received via the second network path,
responsive to determining
that the change in status has occurred for least the predetermined period of
time.
12. The method of any one of claims 8 to 11, wherein the edge device
comprises a quadrature
amplitude modulation (QAM) device.
13. The method of claim 12, wherein the QAM device is configured to
determine a service
level associated with the client device, wherein the concurrently joining the
redundant primary
and secondary multicasts communicating the content item via the first and
second network paths,
respectively, is performed in response to determining that the service level
is associated with a
concurrent join.
14. The method of claim 12 or 13, wherein the QAM device is configured to
join a primary
multicast communicating a second content item prior to delivering the second
content item to the
client device; and the QAM device is configured to join a secondary multicast
communicating
the second content item responsive to receiving a change in status of the
second content item.
15. A method, comprising:
responsive to a request for a content item, concurrently joining, by a device,
redundant
primary and secondary multicasts respectively communicating the content item
via first and
second network paths;
communicating, by the device, a response comprising data to be used by a
client device
to access the content item;
causing delivery, by the device, of the content item via the first network
path from a first
content source to the client device; and

responsive to a change in status of the content item being delivered via the
first network
path, causing delivery of the content item via the second network path from a
second content
source to the client device.
16. The method of claim 15, wherein the change in status comprises a
failure to receive the
content item via the first network path.
17. The method of claim 15 or 16, further comprising determining whether
the change in
status has occurred for at least a predetermined period of time, wherein
causing delivery of the
content item, via the second network path, is performed responsive to
determining that the
change in status has occurred for least the predetermined period of time.
18. The method of any one of claims 15 to 17, further comprising
configuring a quadrature
amplitude modulation (QAM) device to receive the content item via the first
and second network
paths.
19. The method of any one of claims 15 to 18, further comprising
determining a service level
associated with the client device, wherein the concurrently joining the
redundant primary and
secondary multicasts communicating the content item is performed in response
to determining
that the service level is associated with a concurrent join.
20. The method of claim 18, further comprising:
joining, by the QAM device, a primary multicast communicating a second content
item
prior to delivering the second content item to the client device; and
joining, by the QAM device, a secondary multicast communicating the second
content
item responsive to receiving a change in status of the second content item.
21. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 1-7.
26

22. A system comprising:
a first apparatus comprising
first one or more processors, and
first memory storing instructions that, when executed by the first one or more
processors, cause the first apparatus to perform the method of any one of
claims 1-7; and
a second apparatus comprising
second one or more processors, and
second memory storing instructions that, when executed by the second one or
more processors, cause the second apparatus to receive the content item.
23. A non-transitory computer-readable medium having computer-executable
program
instructions stored thereon that when executed by one or more processors cause
performance of
the method of any one of claims 1-7.
24. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 8-14.
25. A system comprising:
a first apparatus comprising
first one or more processors, and
first memory storing instructions that, when executed by the first one or more
processors, cause the first apparatus to perform the method of any one of
claims 8-14; and
a second apparatus comprising
second one or more processors, and
second memory storing instructions that, when executed by the second one or
more processors, cause the second apparatus to receive the data and the
content item.
27

26. A non-transitory computer-readable medium having computer-executable
program
instructions stored thereon that when executed by one or more processors cause
performance of
the method of any one of claims 8-14.
27. An apparatus comprising:
one or more processors; and
memory storing instructions that, when executed by the one or more processors,
cause the
apparatus to perform the method of any one of claims 15-20.
28. A system comprising:
a first apparatus comprising
first one or more processors, and
first memory storing instructions that, when executed by the first one or more
processors, cause the first apparatus to perform the method of any one of
claims 15-20; and
a second apparatus comprising
second one or more processors, and
second memory storing instructions that, when executed by the second one or
more processors, cause the second apparatus to receive the data and the
content item.
29. A non-transitory computer-readable medium having computer-executable
program
instructions stored thereon that when executed by one or more processors cause
performance of
the method of any one of claims 15-20.
28

Description

Note: Descriptions are shown in the official language in which they were submitted.


CA 02684824 2009-11-06
,
FAILOVER WITH REDUNDANT MULTICASTS FOR SWITCHED DIGITAL VIDEO
BACKGROUND
[01] Digital channels can be broadcast to subscribers via a network. The
network may
communicate the digital channels to node groups, which correspond to a group
of
subscribers located near one another (e.g., within a neighborhood). In some
instances,
only a portion of the channels are being simultaneously watched by the
subscribers of a
single node group, resulting in bandwidth being used to transport unwatched
channels.
SUMMARY
[021 The following presents a simplified summary in order to provide a basic
understanding of
some aspects as described herein. The summary is not an extensive overview of
all
aspects. It is neither intended to identify key or critical elements nor to
delineate the
scope of the present disclosure. The following summary merely presents various

example concepts in a simplified form as a prelude to the more detailed
description
below.
[031 According to some aspects, systems and methods may include, responsive to
a request by
a client device identifying a video program, determining different first and
second
network paths for delivery of the video program from a content source;
delivering the
video program via the first network path to the client device; and responsive
to a change
in status of the video program being delivered via the first network path,
delivering the
video program via the second network path to the client device.

CA 02684824 2009-11-06
1041 According to some aspects, systems and methods may include, responsive to
a request by
a client device identifying a video program, determining different first and
second
network paths for delivery of the video program from first and second content
sources;
delivering the video program via the first network path from the first content
source to
the client device; and responsive to a change in status of the video program
being
delivered via the first network path, delivering the video program via the
second network
path from the second content source to the client device.
[051 According to some aspects, systems and methods may include, responsive to
a request by
a client device identifying a video program, determining a redundant join type
based on
at least one of the following: whether multiple sources are available that
provide the
video program, a present balance of traffic on one or more video interface
inputs of an
edge device, or a subscriber service level; and generating and communicating a
program
setup request comprising the redundant join type to the edge device.
1061 These and other aspects of the disclosure will be apparent upon
consideration of the
following detailed description.
BRIEF DESCRIPTION OF THE DRAWINGS
[071 A more complete understanding of the present disclosure and the potential
advantages of
various aspects described herein may be acquired by referring to the following

description in consideration of the accompanying drawings, in which like
reference
numbers indicate like features, and wherein:
2

CA 02684824 2009-11-06
1081 Fig. 1 is a functional block diagram of an illustrative system for
providing redundant
multicast service to one or more client devices;
1091 Fig. 2 is a functional block diagram of an illustrative computer, which
may embody any
of the functional blocks of Fig. 1;
[10] Figs. 3A-D are signaling diagrams showing illustrative interactions
between functional
blocks of Fig. 1; and
[11] Fig. 4 is a flow chart showing illustrative steps that may be performed
by the system of
Fig. 1.
DETAILED DESCRIPTION
[12] Fig. 1 is a functional block diagram of an illustrative system for
providing redundant
multicast service to one or more client devices. In this example, the system
includes one
or more content sources 104 (e.g., sources A, B, and C), a network 101, and
one or more
client devices 110 (e.g., client devices 110A-D). The system as shown also
includes a
head end 150, which may include, for example, an edge resource manager (ERM)
102 or
other type of edge device controller, routers 106A and 106B, one or more edge
devices
such as quadrature amplitude modulation devices (QAMs) 108A and 108B, and a
switched digital video session manager (SDVSM) 103. The system may also
include
other head ends similar to or different from head end 150, each serving other
client
devices. The interconnections between the various functional blocks in Fig. 1
may be
unidirectional or bidirectional as desired.
3

CA 02684824 2009-11-06
[13] The system may act to provide content (e.g., video and/or audio content)
from one or
more of sources 104 to one or more of client devices 110. In some embodiments,
the
system may be a television content distribution system or an Internet Protocol
television
(IPTV) distribution system. Accordingly, the content may include television
shows,
movies, advertisements, etc. The content may be delivered to client devices
110 via
switched video techniques, which is also known as switched digital video
(SDV).
[14] In a typical television or IPTV distribution system, content is provided
over a plurality of
different channels. Using SDV, the physical distribution path between head end
150 and
one or more of client devices 110 carries only a subset of available channels
based on
channel requests by those client devices. For instance, only those channels
requested by
the client devices at any given time may be carried on the distribution path.
While those
channels not requested may still be available by the system, those non-
requested channels
may not be propagated into the distribution path. Because only a subset of the
channels
are typically requested at any given time, and because only a subset of the
client devices
will be in use at any given time, SDV may allow more available channels to be
provided
without necessarily increasing the actual maximum available bandwidth of the
distribution path.
[15] Thus, the use of SDV typically means that the network paths through which
content is
delivered (e.g., multicast video content) dynamically changes depending upon
which
content the various network clients are requesting at any given time. In
contrast, non-
SDV systems typically provide static delivery paths for content. Moreover, it
is generally
desirable to provide for path and/or content redundancy, in the event that
there is a point
of failure somewhere along a delivery path. While path redundancy may be
fairly
4

CA 02684824 2009-11-06
straightforward in a static path environment, this is less easy to accomplish
in a dynamic
path environment such as an SDV delivery network. Various techniques for
providing
such redundancy will be described later in the present disclosure.
[16] Any of the above-mentioned functional blocks, including ERM 102, SDVSM
103,
routers 106A-B, QAMs 108A-B, and client devices 110, may each be implemented,
for
example, as a computer or as a system or device that includes a computer. The
term
"computer" as referred to herein broadly refers to any electronic, electro-
optical, and/or
mechanical device, or system of multiple physically separate or physically
joined such
devices, that is able to process and manipulate information, such as in the
form of data.
Non-limiting examples of a computer include one or more personal computers
(e.g.,
desktop or laptop), servers, smart phones, personal digital assistants (PDAs),
television
set top boxes, and/or a system of these in any combination or subcombination.
In
addition, a given computer may be physically located completely in one
location or may
be distributed amongst a plurality of locations (i.e., may implement
distributive
computing). A computer may be or include a general-purpose computer and/or a
dedicated computer configured to perform only certain limited functions.
[17] A computer typically includes hardware that may execute software and/or
be configured
in hardware to perform specific functions. The software may be stored on a
computer-
readable medium in the form of computer-readable instructions. A computer may
read
those computer-readable instructions, and in response perform various steps as
defined by
those computer-readable instructions. Thus, any functions attributed to any of
the
functional blocks of Fig. 1 as described herein may be implemented, for
example, by
reading and executing such computer-readable instructions for performing those

CA 02684824 2009-11-06
,
functions, and/or by any hardware subsystem (e.g., a processor) from which the
computer
is composed.
[18] The term "computer-readable medium" as used herein includes not only a
single physical
medium or single type of medium, but also a combination of one or more
physical media
and/or types of media. Examples of a computer-readable medium include, but are
not
limited to, one or more memories, hard drives, optical discs (such as CDs or
DVDs),
magnetic discs, and magnetic tape drives.
[19] Such a computer-readable medium may store computer-readable instructions
(e.g.,
software) and/or computer-readable data (i.e., information that may or may not
be
executable). In the present example, a computer-readable medium (such as
memory)
may be included in any one or more of the functional blocks shown in Fig. 1
and may
store computer-executable instructions and/or data used by any of those
functional
blocks. Alternatively or additionally, such a computer-readable medium storing
the data
and/or software may be physically separate from, yet accessible by, any of the
functional
blocks shown in Fig. 1.
[20] Network 101 may be any type of network, and may be a single network or a
combination
of multiple networks, such as a cable and/or fiber optic and/or satellite
television
distribution network, a telephone network, and/or the Internet. Physically,
network 101
may be embodied, for example, as multiple computers communicatively coupled
together
as a plurality of nodes in a wired and/or wireless manner.
[21] An example functional block diagram of a computer is shown in Fig. 2, in
which the
computer is shown to include a processor 201, a communications interface 202,
storage
6

CA 02684824 2009-11-06
203, and a user interface 204. In this example, the computer-readable medium
may be
embodied by storage 203, and processor 201 may execute computer-executable
instructions stored by storage 203. Communications interface 202 may provide
for
unidirectional or bidirectional communications with any network or device
external to
that computer. For example, communications interface 202 as embodied in router
106A
may provide communications between network 101 and router 106A, as well as
between
router 106A and QAMs 108A and B. User interface 204 may allow for
unidirectional or
bidirectional information transfer between the computer and a human user, such
as via a
display or a keyboard. Again, any of the functional blocks of Fig. 1 may be
implemented
as a computer such as shown in Fig. 2.
[22] Figs. 3A-D are signaling diagrams showing illustrative interactions
between functional
blocks of Fig. 1, and Fig. 4 is a flow chart showing illustrative steps that
may be
performed by the system of Fig. 1.
[23] With reference to Figs. 1-4, in block 401 (Fig. 4), the flow diagram may
include one of
the client devices 110 requesting a video program by communicating a program
request
302 to SDVSM 103. In FIGs. 3A-D, the program request 302 may include a source
identifier (source ID) of the requested source providing the video program of
interest.
Table I, below, provides information on example sources 104 and the services
offered by
each. Sources A and B, for instance, both provide the same Entertainment
programming
but have different source Internet Protocol (IP) addresses.
7

CA 02684824 2009-11-06
' =
Table I
Source Service Source Multicast Group IP Source IP
Program
ID address address Number
A Entertainment 4163 232.96.36.39:4039 69.240.57.203
1
programming
Entertainment 4163 232.96.36.39:4039 169.240.57.203 1
programming
News 12153 232.96.36.1:4001 69.240.57.194 1
programming
[24] To request a particular program, the client device 110 may, for example,
communicate
the program request 302 to the SDVSM 103, requesting to tune to source ID
12153
(which identifies a News program from source C). The Source IP address may be
a
network address of a source 104 providing a multicast transporting the
requested
program. The Multicast Group IP address may be a destination network address
of the
group receiving the multicast, and the program number may be a place holder
for an
MPEG program number
[25] In block 402, the flow diagram may include the SDVSM 103 processing the
program
request 302 and communicating an ERM program setup request 304 to the ERM 102.
In
an example embodiment, the SDVSM 103 may determine whether the requested
source
ID is already being switched (i.e., not being provided) to another client
device 110 of the
same head end 150. If not, then the SDVSM 103 sends the ERM program setup
request
304 to the ERM 102 including the source ID of the source 104 providing the
requested
program.
8

CA 02684824 2009-11-06
[26] In block 403, the flow diagram may include the ERM 102 processing the ERM
program
setup request 304 and determining a redundant join type for the requested
program. In an
example embodiment, the ERM 102 may determine one of four redundant join
types: (I)
a single-source multicast, concurrent join as described in connection with
blocks 404a-
409a of FIG. 4 and FIG. 3A; (2) a single-source multicast, serial join as
described in
connection with blocks 404b-409b of FIG. 4 and FIG. 3B; (3) a dual-source
multicast,
concurrent join as described in connection with blocks 404c-409c of FIG. 4 and
FIG. 3C;
or a (4) a dual-source multicast, serial join as described in connection with
blocks 404d-
409d of FIG. 4 and FIG. 3D.
[27] The ERM 102 may determine the redundant join type based on various
factors such as,
but not limited to, whether multiple sources are available that provide the
same requested
program, the present balance of traffic on video interface inputs X, Y, and Z
of the QAM
108 and/or in the network 101 and/or the head end 150, and a service level
purchased by
a subscriber associated with the requesting client device 110.
[28] In a concurrent join, as further described below, the QAM 108 is
concurrently joined to,
and therefore simultaneously receives, two redundant multicasts carrying the
same
program. If the QAM 108 fails to receive one of the two multicasts, the QAM
108 can
rapidly switch and provide the other multicast, already being received by the
QAM 108,
to the client device 110 with minimal or no service disruption. In comparison,
in a serial
join, the QAM 108 is initially joined to, and thus only initially receives, a
single multicast
carrying a program. If the multicast fails, the QAM 108 may request that a
second
multicast be provided over a different path and/or from a different source
104. While a
serial join can consume less bandwidth than a concurrent join, a larger
service disruption
9

CA 02684824 2009-11-06
may occur in a serial join before the second multicast can be established, as
compared
with a concurrent join. For this reason, a serial join may correspond to a
lower service
level than a concurrent join.
Single-Source Multicast, Concurrent Join
[29] Where a single-source multicast, concurrent join is chosen in block 403,
the flow diagram
may include in step 404a the ERM 102 requesting the QAM 108 to set up a single-
source
multicast concurrent join. Referring to FIG. 3A, this request is represented
by the ERM
102 communicating a QAM program setup request 306 identifying a join type
instructing
the QAM 108 to set up a single-source multicast, concurrent join.
[30] In response to the setup request 306, the QAM 108 may, in block 405a,
join two
multicasts that each transport the requested program and that are received via
different
paths, hereafter referred to respectively as primary and secondary paths.
Prior to joining
the multicasts in this manner, the QAM 108 may configure two of its video
interface
inputs (e.g., X and Z) to respectively receive primary and secondary
multicasts. The
multicast received over the primary path will be referred to herein as a
primary multicast
312P, and the multicast received over the secondary path will be referred to
herein as a
secondary multicast 312S. The primary and secondary paths may be different
paths
across the system between the source 104 providing the multicast and the QAM
108
receiving the multicast. For example, the multicasts 312P and 312S may pass
through
different routers 106. In FIG. 1, for instance, source 104A may provide a
primary
multicast 312P routed through router 106A and received at video interface
input X of
QAM 108A, and a secondary multicast 312S routed through router 106B and
received at
video interface input Z of QAM 108A. In another example, the primary and
secondary

CA 02684824 2009-11-06
paths may both pass through the same router (e.g., router 106A), but may be
forwarded to
different video interface inputs (e.g., X and Y) of QAM 108A via different
links. While
the former example provides less opportunities for a single point of failure,
either
configuration is possible. As such, the primary and secondary paths may pass
through
one or more common network elements and links, but the paths taken by those
multicasts
may differ in at least some way.
[31] To join a multicast, the QAM 108 may communicate a join request 308 to
the source 104
via the network 101, identifying a multicast to join that transports the
requested program
and the video interface inputs configured to receive the primary and secondary
multicasts
312P and 312S. The QAM 0108 may also communicate an ERM program setup
response 310 to the ERM 102, but may or might not include multicast transport
headers
for both the primary and secondary multicasts 312P and 312S and the video
interface
inputs configured to receive the multicasts 312P and 312S. The ERM program
setup
response 310 may include a frequency and program number used by the client
device 110
to tune to the requested program. The ERM 102 also might not respond to the
ERM
program setup response 310 from the QAM 108 when operating in pessimistic mode
until
receiving a multicast transporting the requested video. For example, in
optimistic session
setup, the QAM 108 may return the ERM program setup response 310 to the ERM
102
before it has acquired video even though no video is yet present on its
output. In
pessimistic session setup, the QAM 108 may not return the session setup
response to the
ERM 102 until it has acquired video and video is present on its output.
[32] Next, in block 406a, the client device 110 receives the requested
program. In an
illustrative embodiment, the source 104 may communicate the primary multicast
312P of
11

CA 02684824 2009-11-06
the requested program to the head end 150 via the network 101. The source 104
may also
communicate the secondary multicast 312S of the requested program to the head
end 150
via the network 101. For example, to generate the primary and secondary
multicasts
312P and 312S, the single source 104 may provide the primary and secondary
multicasts
312P and 312S to different network ports on different routers. Also, the
primary and
secondary multicasts 312P and 312S may be of different quality of video, with
one being
of higher quality than the other. The multicasts 312P and 312S may traverse
different
network paths when transmitted via a UDP datagram, which may propagate through
the
network 101 via multiple paths, and may arrive in a pseudo-random, or even a
random
order.
[33] The QAM 108 may detect data of the primary multicast 312P on the video
interface input
configured to receive the primary multicast 312P, and may forward the primary
multicast
312P to the client device 110. The QAM 108 may also convert that primary
multicast
312P to a radio frequency (RF) video signal and transmit the RF video signal
to the client
device 110. In response to initially detecting receipt of multicasts 312P and
312S, the
QAM 108 may send an announce message 314 to the ERM 102 including a multicast
header of each of the primary and secondary multicasts 312P and 312S
successfully
joined over the primary and secondary paths. In an example, a multicast header
may
include one or more of a multicast address of the requested program or
service, a
multicast port of the requested program or service, a multicast program of
data within a
transport stream (e.g., MPEG-2 stream), a source address from which data of
the
multicast is streamed, bandwidth (e.g., bits per second), and a destination
address of a
physical port on which a join request is sent. The ERM 102 may send an
announce
12

CA 02684824 2009-11-06
,
response 316 to the QAM 108 and respond to the SDVSM 103 with an SDVSM program

setup response 318. The SDVSM 103 may communicate a program confirm message
320 in response to receiving the SDVSM program setup response 318. The program

confirm message 320 may include a frequency and a program number, which the
client
device 110 may use to tune to the requested source ID transporting the
requested
program.
1341 At some point during providing the primary multicast to the requesting
client device, the
QAM 108 may detect a failure of the primary multicast at block 407a. The
failure may
be of a link or some network element between the source 104 and the QAM 108 on
the
primary path, or of the video interface input receiving the primary multicast
312P. To
determine that a failure has occurred, the QAM 108 may determine that the
primary
multicast 312P has not been received for a predetermined amount of time, such
as for at
least one millisecond, or for at least one second. Thus, a problem with the
primary
multicast signal that does not occur for at least the predetermined period of
time may not
be considered to qualify as a failure. A failure may be considered to have
occurred not
only based on a loss of the primary multicast signal, but alternatively based
on a
reduction in quality of the received video program carried by the primary
multicast
signal.
[35] In response to detecting the failure, the QAM 108 may fail over in block
409a to the
secondary multicast 312S, and may begin forwarding the already-joined
secondary
multicast 312S to the requesting client device 110. Because the primary and
secondary
multicasts 312P and 312S are concurrently joined, the QAM 108 is already
receiving the
secondary multicast 312S at the time of the failure and can quickly begin
providing the
13

CA 02684824 2009-11-06
=
secondary multicast 312S to the client device 110 to reduce or eliminate a
disruption in
service. The QAM 108 may also communicate an announce failover message 322 to
the
ERM 102 that includes the multicast transport header of the secondary
multicast 312S.
The ERM 102 may respond with an announce failover response 324.
[36] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3A, the
QAM 108
may not communicate announce message 314 and may not receive announce response

316. Instead, upon detecting the failure, the QAM 108 may forward the
secondary
multicast 312S to the client device 110, and may communicate the announce
failover
message 322 to the ERM 102. The ERM 102 may respond with the announce failover

response 324 and may communicate the SDVSM program setup response 318 to the
SDVSM 103. The SDVSM 103 may then communicate the program confirm message
320 to the client device 110, as discussed above. Further, if there is the
single source
104A fails, then the client device 110 may signal loss of the channel to the
SDVSM 103,
and the SDVSM 103 may instruct the client device 110 to tune to a safe
channel.
Single-source multicast, serial join
[37] Referring again to FIG. 4, in block 403, the ERM may alternatively
determine a join type
of a single-source multicast, serial join for a requested program and so in
block 404b, the
ERM 102 may request the QAM 108 to set up a single-source multicast, serial
join,
which is also described in FIG. 3B. FIG. 3B differs from FIG. 3A as to when
the
secondary multicast 312S is joined. In FIG. 3A, the QAM 108 attempts to join
the
14

CA 02684824 2009-11-06
secondary multicast 312S when (or shortly after) joining the primary multicast
312P,
without waiting for a failure of the primary multicast 312P, and hence the QAM
108 may
concurrently receive the primary and secondary multicasts 312P and 312S prior
to such a
failure. In FIG. 3B, the QAM 108 does not join the secondary multicast 312S
until a
failure is identified for the primary multicast 312P.
[38] Next, in block 405b, the QAM 108 may join a primary multicast 312P. In an
example
embodiment, the QAM 108 may configure two of its video interface inputs (e.g.,
X and
Z) to respectively receive the primary and secondary multicasts 312P and 312S
via the
primary and secondary paths. Once configured, the QAM 108 may communicate a
join
request 308A to the source 104 via the network 101 to join the primary
multicast 312P,
but does not yet request to join the secondary multicast 312S. The QAM 108 may
also
communicate an ERM program setup response 310 to the ERM 102, but may or might

not include a multicast transport header for the primary multicast 312P and
the video
interface inputs configured to receive multicast 312P. The ERM 102 also might
not
respond to the ERM program setup request 310 from the QAM 108 when operating
in
pessimistic mode until receiving a multicast transporting the requested video.
[39] Next, in block 406b, the client device 110 may receive the program. In an
example
embodiment, the source 104 may provide the primary multicast 312P of the
requested
program to the head end 150 via the network 101. The QAM 108 may detect
primary
multicast 312P on the video interface input specified in the join request 308,
and may
forward the primary multicast 312P to the client device 110. In response to
initially
detecting receipt of multicast 312P, the QAM 108 may send an announce message
314 to
the ERM 102 including a multicast header of the primary multicast 312P. The
ERM 102

CA 02684824 2009-11-06
may then send an announce response 316 to the QAM 108 and respond to the SDVSM

103 with an SDVSM program setup response 318. The SDVSM 103 may communicate
the program confirm message 320 in response to the SDVSM program setup
response
318, as discussed above.
[40] Next, in block 407b, the QAM 108 may detect a failure of the primary
multicast, in the
same manner as discussed above with regard to block 407a.
[41] In block 408b, in response to detecting the failure, the QAM 108 may join
the secondary
multicast 312S, and may communicate a second join request 308B to the source
104.
The second join request 308B may specify the video interface input (e.g.,
input Z)
previously allocated in block 405b to receive the secondary multicast 312S.
The QAM
108 may then receive the secondary multicast 312S from the source 104 over the

secondary path.
[42] In block 409b, once joined to the secondary multicast 312S, the QAM 108
may then fail
over to the secondary multicast 312S via the secondary path, and may output
the
secondary multicast 312S to the client device 110. The QAM 108 may also
communicate
an announce failover message 322 to the ERM 102 that includes the multicast
transport
header of the secondary multicast 312S. The ERM 102 may send an announce
response
316 to the QAM 108 and respond to the SDVSM 103 with an SDVSM program setup
response 318.
[43] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3B, the
QAM 108
16

CA 02684824 2009-11-06
=
may not communicate announce message 314 and may not receive announce response

316 from the ERM 102. Instead, upon detecting the failure, the QAM 108 may
send join
request 308B to the source 104, and may begin receiving the secondary
multicast 312S.
The QAM 108 may forward the secondary multicast 312S to the client device 110,
and
may communicate the announce failover message 322 to the ERM 102. The ERM 102
may respond with the announce failover response 324 and may communicate the
SDVSM program setup response 318 to the SDVSM 103. The SDVSM 103 may then
communicate the program confirm message 320 to the client device 110, as
discussed
above.
Dual-Source Multicast, Concurrent Join
[44] Referring again to FIG. 4, in block 403, the ERM may alternatively
determine a join type
of a dual-source multicast, concurrent join for a requested program, and so in
block 404c,
the ERM 102 may request the dual-source multicast, concurrent join, which is
also
described in FIG. 3C. FIG. 3C differs from FIGS. 3A-B by including two
different
sources 104A and 104B providing the primary and secondary multicasts 312P and
312S,
respectively, instead of a single source providing both the primary and
secondary
multicasts 312P, 312S.
[45] In block 405c, in this case the QAM 108 may join primary and secondary
multicasts
312P and 312S, respectively, being provided by different sources 104A and
104B. In an
example embodiment, the QAM 108 may configure two of its video interface
inputs (e.g.,
X and Z) to respectively receive the multicasts 312P and 312S via the primary
and
secondary paths. As above, the multicasts 312P and 312S may transport the same

program, even though the program is being received from different sources 104A
and
17

CA 02684824 2009-11-06
104B. Alternatively, the multicasts 312P and 312S may be related to each
other, such as
one being a national advertising version of a video program and the other
being a local
advertising version of the same video program. Once the video interface inputs
are
configured, the QAM 108 may communicate join request 308A to source 104A and
join
request 308B to source 104B. Each join request 308A and 308B may specify the
multicast to join and a video interface input over which to receive the
multicast. The
QAM 108 may also communicate an ERM program setup response 310 to the ERM 102,

but may or might not include multicast transport headers for each of the
primary and
secondary multicasts 312P and 312S and the video interface inputs configured
to receive
multicasts 312P and 312S. The ERM 102 also might not respond to the ERM
program
setup request 310 from the QAM 108 when operating in pessimistic mode until
receiving
a multicast transporting the requested video.
[46] In block 406c, the client device 110 may receive the video program. In an
illustrative
embodiment, the source 104A may provide the primary multicast 312P of the
requested
program to the head end 150 via the network 101. The source 104B may also
provide the
secondary multicast 312S of the requested program to the head end 150 via the
network
101. The QAM 108 may detect the primary multicast 312P on its video interface
input
specified in the join request 308A, and may forward the primary multicast 312P
to the
client device 110. In response to initially detecting receipt of multicasts
312P and 312S,
the QAM 108 may send an announce message 314 to the ERM 102 including a
multicast
header for each of the successfully joined multicasts 312P and 312S. The ERM
102 may
send an announce response 316 to the QAM 108 and respond to the SDVSM 103 with
an
SDVSM program setup response 318. The SDVSM 103 may communicate the program
18

CA 02684824 2009-11-06
= c
confirm message 320 in response to the SDVSM program setup response 318, as
discussed above.
[47] In block 407c, the QAM 108 may detect a failure, in a manner as already
described
above.
[48] In block 409c, in response to detecting a failure, the QAM 108 may fail
over to the
secondary multicast, and may output the secondary multicast 312S to the client
device
110. The QAM 108 may also communicate an announce failover message 322 to the
ERM 102 that includes the multicast transport header of the secondary
multicast 312S.
The ERM 102 may respond with an announce failover response 324.
[49] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3C, the
QAM 108
may not communicate announce message 314 and may not receive announce response

316. Instead, upon detecting the failure, the QAM 108 may forward the
secondary
multicast 312S to the client device 110, and may communicate the announce
failover
message 322 to the ERM 102. The ERM 102 may respond with the announce failover

response 324 and may communicate the SDVSM program setup response 318 to the
SDVSM 103. The SDVSM 103 may then communicate the program confirm message
320 to the client device 110, as discussed above.
Dual-Source Multicast, Serial Join
[50] Referring again to FIG. 4, in block 403, the ERM may determine a join
type of a dual-
source multicast, serial join for a requested program, and so in block 404d,
the ERM 102
19

CA 02684824 2009-11-06
may request QAM 108 set up the dual-source multicast, serial join, which is
also
described in FIG. 3D. In FIG. 3D, the ERM 102 may, for example, communicate a
QAM
program setup request 306 identifying a join type instructing the QAM 108 to
set up a
dual-source multicast, serial join.
[51] In block 405d, the QAM 108 may join a primary multicast 312P via a
primary path. In
an example embodiment, the QAM 108 may configure two of its video interface
inputs
(e.g., X and Z) to respectively receive the multicast via the primary and
secondary paths.
Once configured, the QAM 108 may communicate a join request 308A to the source

104A via the network 101 specifying the multicast to join and a video
interface input
(e.g., input X). The QAM 0108 may also communicate an ERM program setup
response
310 to the ERM 102, but may or might not include a multicast transport header
for the
primary multicast 312P and the video interface input configured to receive the
multicast
312P. The ERM 102 also might not respond to the ERM program setup request 310
from
the QAM 108 when in pessimistic mode until receiving a multicast transporting
the
requested video.
[52] In block 406d, the client device 110 may receive the program. In an
example
embodiment, the source 104 may provide the primary multicast 312P of the
requested
program to the head end 150 via the network 101. The QAM 108 may detect data
of the
primary multicast 312P on the video interface input specified in the join
request 308A,
and may forward the primary multicast 312P to the client device 110. In
response to
initially detecting receipt of multicast 312P, the QAM 108 may send an
announce
message 314 to the ERM 102 including a multicast header of primary multicast
312P.
The ERM 102 may also send an announce response 316 to the QAM 108 and respond
to

CA 02684824 2009-11-06
the SDVSM 103 with an SDVSM program setup response 318. The SDVSM 103 may
communicate the program confirm message 320 in response to the SDVSM program
setup response 318, as discussed above.
[53] In block 407d, the QAM 108 may detect a failure, in a manner as already
discussed
above.
[54] In block 408d, and in response to detecting the failure, the QAM 108 may
join the
secondary multicast 312S, and may communicate a second join request 308B to
the
source 104B. The second join request 308B may specify the video interface
input (e.g.,
input Z) previously allocated in block 405d to receive the secondary multicast
312S. The
QAM 108 may then receive the secondary multicast 312S from source 104B.
[55] In block 409d, the QAM 108 may fail over to the secondary multicast, and
may output
the secondary multicast 312S to the client device 110. The QAM 108 may also
communicate an announce failover message 322 to the ERM 102 that includes the
multicast transport header of the secondary multicast 312S. The ERM 102 may
respond
with an announce failover response 324.
[56] If the QAM 108 initially detects a failure prior to being capable of
forwarding the
primary multicast 312P to the client device 100, the QAM 108 may failover to
the
secondary multicast 312S. In such a scenario, with reference to FIG. 3D, the
QAM 108
may not communicate announce message 314 and may not receive announce response

316. Instead, upon detecting the failure, the QAM 108 may send join request
308B to the
source 104B, and may begin receiving the secondary multicast 312S. The QAM 108
may
forward the secondary multicast 312S to the client device 110, and may
communicate the
21

CA 02684824 2016-06-15
announce failover message 322 to the ERM 102. The ERM 102 may respond with the

announce failover response 324 and may communicate the SDVSM program setup
response 318 to the SDVSM 103. The SDVSM 103 may communicate the program
confirm message 320 to the client device 110, as discussed above.
[57] One or more aspects of the above examples may be embodied in computer-
executable
instructions, such as in one or more program modules, executed by one or more
computers
or other devices such as by any of the blocks in Fig. 1. Generally, program
modules include
routines, programs, objects, components, data structures, etc. that perform
particular tasks
or implement particular abstract data types when executed by a processor in a
computer or
other device. The computer executable instructions may be stored on a computer
readable
medium such as a hard disk, optical disk, removable storage media, solid state
memory,
RAM, etc. As will be appreciated by one of skill in the art, the functionality
of the program
modules may be combined or distributed as desired in various embodiments. In
addition,
the functionality may be embodied in whole or in part in firmware or hardware
equivalents
such as integrated circuits, field programmable gate arrays (FPGA),
application specific
integrated circuits (ASIC), and the like.
[58] While embodiments have been described with respect to specific examples
including
presently preferred modes of carrying out the invention, those skilled in the
art will
appreciate that there are numerous variations and permutations of the above
described
systems and techniques. The scope of the claims should not be limited by the
preferred
embodiments set forth in the examples, but should be given the broadest
interpretation
consistent with the description as a whole.
22

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2018-05-01
(22) Filed 2009-11-06
(41) Open to Public Inspection 2011-05-06
Examination Requested 2014-11-06
(45) Issued 2018-05-01

Abandonment History

There is no abandonment history.

Maintenance Fee

Last Payment of $263.14 was received on 2023-10-27


 Upcoming maintenance fee amounts

Description Date Amount
Next Payment if standard fee 2024-11-06 $624.00
Next Payment if small entity fee 2024-11-06 $253.00

Note : If the full payment has not been received on or before the date indicated, a further fee may be required which may be one of the following

  • the reinstatement fee;
  • the late payment fee; or
  • additional fee to reverse deemed expiry.

Patent fees are adjusted on the 1st of January every year. The amounts above are the current amounts if received by December 31 of the current year.
Please refer to the CIPO Patent Fees web page to see all current fee amounts.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Application Fee $400.00 2009-11-06
Maintenance Fee - Application - New Act 2 2011-11-07 $100.00 2011-10-20
Maintenance Fee - Application - New Act 3 2012-11-06 $100.00 2012-10-23
Maintenance Fee - Application - New Act 4 2013-11-06 $100.00 2013-10-18
Maintenance Fee - Application - New Act 5 2014-11-06 $200.00 2014-10-21
Request for Examination $800.00 2014-11-06
Maintenance Fee - Application - New Act 6 2015-11-06 $200.00 2015-10-19
Maintenance Fee - Application - New Act 7 2016-11-07 $200.00 2016-10-18
Maintenance Fee - Application - New Act 8 2017-11-06 $200.00 2017-10-18
Final Fee $300.00 2018-03-12
Maintenance Fee - Patent - New Act 9 2018-11-06 $200.00 2018-11-05
Maintenance Fee - Patent - New Act 10 2019-11-06 $250.00 2019-10-25
Maintenance Fee - Patent - New Act 11 2020-11-06 $250.00 2020-10-30
Maintenance Fee - Patent - New Act 12 2021-11-08 $255.00 2021-10-29
Maintenance Fee - Patent - New Act 13 2022-11-07 $254.49 2022-10-28
Maintenance Fee - Patent - New Act 14 2023-11-06 $263.14 2023-10-27
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
COMCAST CABLE COMMUNICATIONS, LLC
Past Owners on Record
GABLER, PHILLIP
MAO, WEIDONG
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Cover Page 2011-04-14 1 39
Abstract 2009-11-06 1 14
Description 2009-11-06 22 903
Claims 2009-11-06 5 136
Drawings 2009-11-06 7 128
Representative Drawing 2011-04-12 1 11
Claims 2014-11-06 4 157
Claims 2016-06-15 11 320
Description 2016-06-15 22 903
Amendment 2017-05-29 8 267
Claims 2017-05-29 6 206
Amendment 2017-08-10 1 30
Final Fee 2018-03-12 1 29
Representative Drawing 2018-04-04 1 9
Cover Page 2018-04-04 1 36
Assignment 2009-11-06 3 89
Prosecution-Amendment 2014-11-06 6 204
Prosecution-Amendment 2015-06-01 1 28
Amendment 2016-06-15 23 750
Examiner Requisition 2015-12-18 4 226
Amendment 2016-06-22 1 30
Examiner Requisition 2016-11-29 3 188