1. Field of the Disclosure
The present disclosure relates to Internet-protocol television (IPTV) and, more particularly, to synchronization of audio streams and video streams in IPTV programs.
2. Description of the Related Art
IPTV channels may be transmitted as audio and video streams from a source to a plurality of IPTV users. Synchronization between the audio and video streams may deteriorate at various locations in the IPTV network.
In one aspect, a disclosed method for processing IPTV packets for transmission over an IPTV network includes receiving a television program signal, and packetizing the television program signal into an IPTV program signal comprising an audio packet stream and a video packet stream. An audio counter value may be written to at least one audio packet and a video counter value may be written to at least one video packet. A corresponding audio counter value and video counter value pair may respectively indicate a synchronized audio packet and video packet pair. The method may also include transmitting the packetized IPTV program signal over the IPTV network. The received television program signal may be uncompressed, while the method operation of packetizing may further include digitally compressing the television program signal. The method operation of digitally compressing may include compressing in accordance with an H.264 video compression standard. The method operation of packetizing may encompass including an IPTV program clock value in at least some of the video packets, while the IPTV program clock may be synchronized with the television program signal
In specific embodiments, the method may further include recording a first arrival time of an audio packet arriving at an IPTV network node, recording a second arrival time of a video packet arriving at the IPTV network node, and determining a first synchronization offset based on a difference between the first arrival time and the second arrival time. The audio counter value of the audio packet may correspond to the video counter value of the video packet.
In particular embodiments, the method may also include determining a second synchronization offset based on a difference between the first arrival time and an IPTV program clock value, and determining a third synchronization offset based on a difference between the second arrival time and the IPTV program clock value. The IPTV program clock value may be obtained from a video packet. When the absolute value of any one of the first synchronization offset, the second synchronization offset, and the third synchronization offset exceeds a predetermined value, the method may include generating a network synchronization alarm for the IPTV network node. The method may further include determining, for a plurality of IPTV network nodes, synchronization metrics associated with individual IPTV network nodes, including at least one of: the first synchronization offset, the second synchronization offset and the third synchronization offset. The method may still further include analyzing the synchronization metrics to identify individual IPTV network nodes that are the source of aberrant synchronization offset values.
In another aspect, a network testing device for monitoring synchronization of IPTV packets broadcast over an IPTV network may include a processor configured to access memory media. The memory media may include instructions executable by the processor to measure, at an IPTV network node, a respective arrival time for audio packets and video packets associated with an IPTV program broadcast over the IPTV network, and determine correlated audio packet and video packet pairs based on an audio counter value and a video counter value pair obtained from a respective audio packet and video packet in each pair. The memory media may further include processor executable instructions to calculate a first arrival time offset for each correlated audio packet and video packet pair based on a difference between the arrival times for the respective audio packet and video packet in the pair.
In certain embodiments, the memory media may further include processor executable instructions to calculate a second arrival time offset for a video packet, based on a difference between the arrival time for the video packet and an IPTV program clock value, and calculate a third arrival time offset for a audio packet, based on a difference between the arrival time for the audio packet and the IPTV program clock value. When the absolute value of any one of the first arrival time offset, the second arrival time offset, and the third arrival time offset exceeds a predetermined value, the processor executable instructions included in the memory media may be executable to generate a network synchronization alarm for the IPTV network node. The memory media may yet further include processor executable instructions to send, to an IPTV network server, the first arrival time offset, the second arrival time offset, and the third arrival time offset for packets of the IPTV program signal, along with an indication of the IPTV network node.
In yet another aspect, a disclosed computer-readable memory media includes executable instructions for monitoring IPTV programs broadcast over an IPTV network. The instructions may be executable to receive an uncompressed television program signal, and packetize the television program signal into an IPTV program signal comprising an audio packet stream and a video packet stream, including instructions executable to compress the television program signal. Each audio packet may include an audio counter value and each video packet may include a video counter value. The audio counter value may correspond to the video counter value within a respectively synchronized audio/video packet pair. The instructions may further be executable to include an IPTV program clock value in at least some of the video packets, and broadcast the packetized IPTV program signal over the IPTV network. The instructions executable to compress may include instructions executable to compress in accordance with an H.264 video compression standard. The audio counter value may increment for each consecutive audio packet, while the video counter value may increment for each consecutive video packet. The audio counter value may be included in an audio packet header, while the video counter value may be included in a video packet header.
In particular embodiments, the memory media may further include instructions executable to receive, for a plurality of IPTV network nodes, a first synchronization offset and a second synchronization offset of the packetized IPTV program signal. The first synchronization offset may represent a difference between the first arrival time and an IPTV program clock value, while the second synchronization offset may represent a difference between the second arrival time and an IPTV program clock value. For each of the plurality of IPTV network nodes, the instructions included in the memory media may further be executable to record the first synchronization offset and the second synchronization offset, along with an indication of the IPTV program signal. When the absolute value of the difference of the first synchronization offset and the second synchronization offset exceeds a predetermined value for an identified IPTV network node, the instructions included in the memory media may further be executable to generate a network synchronization alarm for the identified IPTV network node. The network synchronization alarm may include an IPTV network diagnostic request for the identified IPTV network node.
In the following description, details are set forth by way of example to facilitate discussion of the disclosed subject matter. It should be apparent to a person of ordinary skill in the field, however, that the disclosed embodiments are exemplary and not exhaustive of all possible embodiments.
Throughout this disclosure, a hyphenated form of a reference numeral refers to a specific instance of an element and the un-hyphenated form of the reference numeral refers to the element generically or collectively. Thus, for example, widget 12-1 refers to an instance of a widget class, which may be referred to collectively as widgets 12 and any one of which may be referred to generically as a widget 12.
Turning now to the drawings,
The elements of MCDN 100 illustrated in
As depicted in
Access network 130 demarcates clients 120 and service provider 121, and provides at least one connection path between clients 120 and service provider 121. In some embodiments, access network 130 is an IP-compliant network. In some embodiments, access network 130 is, at least in part, a coaxial cable network. It is noted that in some embodiments of MCDN 100, access network 130 is owned and/or operated by service provider 121. In other embodiments, a third party may own and/or operate at least a portion of access network 130.
In IP-compliant embodiments of access network 130, access network 130 may include a physical layer of unshielded twisted pair cables, fiber optic cables, or a combination thereof. MCDN 100 may include digital subscriber line (DSL) compliant twisted pair connections between clients 120 and a node (not depicted) in access network 130 while fiber, cable or another broadband medium connects service provider resources to the node. In other embodiments, the broadband cable may extend all the way to clients 120.
As depicted in
In
Thus, the content provided by service provider 121 encompasses multimedia content that is scheduled in advance for viewing by clients 120 via access network 130. Such multimedia content, also referred to herein as “scheduled programming,” may be selected using an electronic programming guide (EPG), such as EPG 316 described below with respect to
Acquired content is provided to content delivery server 160 via backbone network 170 and switching network 140. Content may be delivered from content delivery server 160 to clients 120 via switching network 140 and access network 130. Content may be compressed, encrypted, modulated, demodulated, and otherwise encoded or processed at content acquisition resources 180, content delivery server 160, or both. As shown in
Although
Although service provider 121 is depicted in
Applications provided by application server 150 may be downloaded and hosted on other network resources including, for example, content delivery server 160, switching network 140, and/or on clients 120. Application server 150 is configured with a processor and storage media (not shown in
Further depicted in
Also shown in
Turning now to
In
Clients 120 as depicted in
Clients 120 are further shown with their respective remote control 128, which is configured to control the operation of MHD 125 by means of a user interface (not shown in
MHD 125 is enabled and configured to process incoming multimedia signals to produce audio and visual signals suitable for delivery to display 126 and any optional external speakers (not depicted in
Referring now to
In the embodiment depicted in
In embodiments suitable for use in IP-based content delivery networks, MHD 125, as depicted in
Video and audio streams 332 and 334, as output from transport unit 330, may include audio or video information that is compressed, encrypted, or both. A decoder unit 340 is shown as receiving video and audio streams 332 and 334 and generating native format video and audio streams 342 and 344. Decoder 340 may employ any of various widely distributed video decoding algorithms including any of the Motion Pictures Expert Group (MPEG) standards, or Windows Media Video (WMV) standards including WMV 9, which has been standardized as Video Codec-1 (VC-1) by the Society of Motion Picture and Television Engineers. Similarly decoder 340 may employ any of various audio decoding algorithms including Dolby® Digital, Digital Theatre System (DTS) Coherent Acoustics, and Windows Media Audio (WMA).
The native format video and audio streams 342 and 344 as shown in
Storage 310 encompasses persistent and volatile media, fixed and removable media, and magnetic and semiconductor media. Storage 310 is operable to store instructions, data, or both. Storage 310 as shown may include sets or sequences of instructions, namely, an operating system 312, a remote control application program identified as RC module 314, and EPG 316. Operating system 312 may be a UNIX or UNIX-like operating system, a Windows® family operating system, or another suitable operating system. In some embodiments, storage 310 is configured to store and execute instructions provided as services to client 120 by application server 150, as mentioned previously.
EPG 316 represents a guide to the multimedia content provided to client 120 via MCDN 100, and may be shown to the user as an element of the user interface. The user interface may include a plurality of menu items arranged according to one or more menu layouts, which enable a user to operate MHD 125. The user may operate the user interface, including EPG 316, using remote control 128 (see
Local transceiver 308 represents an interface of MHD 125 for communicating with external devices, such as remote control 128, or another universal remote control device. Local transceiver 308 may provide a mechanical interface for coupling to an external device, such as a plug, socket, or other proximal adapter. In some cases, local transceiver 308 is a wireless transceiver, configured to send and receive IR or RF or other signals. Local transceiver 308 may be accessed by RC module 314 for providing remote control functionality.
Turning now to
In method 400, an uncompressed television program signal may be received (operation 402). The uncompressed television signal may be generated or received at a head office of an IPTV network. The uncompressed television signal may be an analog or a digital signal. The television program signal may be packetized into an IPTV program signal comprising audio and video packet streams, including audio counter values and video counter values indicating synchronized audio/video packet pairs (operation 404). The IPTV program signal may be represented by an audio packet stream and a video packet stream transmitted by the IPTV network. The audio packets may have a fixed or variable payload size. The video packets may also have a fixed or variable payload size. The ratio of the payload of the audio packets to the corresponding video packets may be fixed or variable. Thus, a number of different numbering schemes for the audio counter values and the video counter values may be implemented. In other words, an audio packet synchronized to a respective video packet will have an audio counter value corresponding, in a defined manner, to the video counter value of the respective video packet. Such packets may be considered pairs of audio and video packet. Correspondence between audio counter values and video counter values may be exact or may be some fixed or variable mathematical relationship during the IPTV program duration. In certain cases, a video packet may be associated (i.e., paired) with more than one audio packet. Conversely, an audio packet may be associated with more than one video packet, for example, when the audio packet includes audio data corresponding to a transition in the IPTV program from one video packet to the next. The audio counter value may be written to an audio packet header, while the video counter value may be written to a video packet header. In one embodiment, the audio counter value and the video counter value increment for each consecutive audio packet and video packet, respectively. The counter values may be 16-bit values, in one embodiment.
An IPTV program clock value may be included in certain video packets (operation 406). A video compression standard may indicate that an IPTV program clock value is sent within a given time interval. For example, a value of a 15 MHz program clock may be sent every 500 ms. The IPTV program clock may be synchronized with the uncompressed television signal. The packetized IPTV program signal may be broadcast over the IPTV network (operation 408). In certain embodiments, the IPTV program may be multicast to a number of clients via an access network.
Next, a first synchronization offset, representing a difference between a first arrival time of an audio packet at an IPTV network node and a second arrival time of a video packet at the IPTV network node, may be determined for a plurality of IPTV network nodes (operation 410). A synchronization offset may be determined at an IPTV network node using a network testing device (see
Referring to
In method 500, a respective arrival time for an audio and a video packet associated with an IPTV program broadcast over the IPTV network may be measured at an IPTV network node (operation 502). Correlated audio and video packet pairs may be determined based on counter values stored in the respective packets (operation 504). A first arrival time offset, based on a difference between the arrival time for the video packet and an IPTV program clock value, may be calculated (operation 506). A second arrival time offset, based on a difference between the arrival time for the audio packet and an IPTV program clock value, may be calculated (operation 508). When the absolute value of a difference between the first and second arrival time offsets exceeds a predetermined value, a network alarm for the IPTV network node may be generated (operation 510). The arrival time offsets may be sent to an IPTV network server, along with an indication of the IPTV network node (operation 512).
Referring now to
In the embodiment depicted in
Storage 610 encompasses persistent and volatile media, fixed and removable media, and magnetic and semiconductor media. Storage 610 is operable to store instructions, data, or both. Storage 610 as shown may include sets or sequences of instructions, namely, an operating system 612, and audio and video packet monitoring 614. Storage 610 may store additional data (not shown in
Turning now to
In the embodiment depicted in
Storage 710 encompasses persistent and volatile media, fixed and removable media, and magnetic and semiconductor media. Storage 710 is operable to store instructions, data, or both. Storage 710 as shown may include sets or sequences of instructions, namely, an operating system 712, and audio and video packetizing 714. Operating system 712 may be a UNIX or UNIX-like operating system, a Windows® family operating system, an embedded operating system, or another suitable operating system. In various embodiments, audio and video packetizing 714 represents executable instructions for packetizing audio and video IPTV program streams. The packetizing performed by audio and video packetizing 714 may include digital compression. In certain embodiments, the digital compression includes compression substantially conforming to a standard for video compression, such as H.264. In certain embodiments, audio and video packetizing 714 may be configured to include an audio counter value in audio packets and a video counter value in video packets, such that synchronized audio and video packet pairs are labeled with respectively corresponding audio counter values and video counter values.
Turning now to
In IPTV network 800, super head office (SHO) 804 may represent a central location for obtaining and generating content broadcast throughout IPTV network 800. For example, when IPTV network 800 covers a national market, SHO 804 may be the source for nationally broadcast IPTV programs. As shown in
In
To the maximum extent allowed by law, the scope of the present disclosure is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited to the specific embodiments described in the foregoing detailed description.
Number | Name | Date | Kind |
---|---|---|---|
5872588 | Aras et al. | Feb 1999 | A |
6414960 | Kuhn et al. | Jul 2002 | B1 |
6477181 | Fujimori et al. | Nov 2002 | B1 |
7269137 | Bizet et al. | Sep 2007 | B2 |
7333513 | Sala et al. | Feb 2008 | B2 |
7400653 | Davies et al. | Jul 2008 | B2 |
7545794 | Loukianov | Jun 2009 | B2 |
7593061 | Baumgartner | Sep 2009 | B2 |
7614066 | Urdang et al. | Nov 2009 | B2 |
7680153 | Ma | Mar 2010 | B2 |
7693182 | Sala et al. | Apr 2010 | B2 |
7693190 | Firestone et al. | Apr 2010 | B2 |
7711244 | Sato et al. | May 2010 | B2 |
7755526 | Medina et al. | Jul 2010 | B2 |
7764713 | Abraham et al. | Jul 2010 | B2 |
7873727 | Pal et al. | Jan 2011 | B2 |
7936695 | Oran | May 2011 | B2 |
8027560 | Brady et al. | Sep 2011 | B2 |
20020013948 | Aguayo, Jr. et al. | Jan 2002 | A1 |
20030033394 | Stine | Feb 2003 | A1 |
20030066094 | van der Schaar et al. | Apr 2003 | A1 |
20030079230 | Woodward, Jr. | Apr 2003 | A1 |
20030189922 | Howe | Oct 2003 | A1 |
20050135526 | Miller et al. | Jun 2005 | A1 |
20050219366 | Hollowbush et al. | Oct 2005 | A1 |
20080117937 | Firestone et al. | May 2008 | A1 |
20090128708 | Huffman et al. | May 2009 | A1 |
20090144791 | Huffman et al. | Jun 2009 | A1 |
20090172200 | Morrison et al. | Jul 2009 | A1 |
20090197652 | Lundstrom et al. | Aug 2009 | A1 |
20090276224 | Medina et al. | Nov 2009 | A1 |
20100017835 | Wilson et al. | Jan 2010 | A1 |
20100030642 | Huffman et al. | Feb 2010 | A1 |
20100058385 | Mitchals et al. | Mar 2010 | A1 |
20100058400 | Nicas et al. | Mar 2010 | A1 |
20100058420 | Medina et al. | Mar 2010 | A1 |
20100058430 | Jones et al. | Mar 2010 | A1 |
20100077440 | Medina et al. | Mar 2010 | A1 |
20100109926 | Medina et al. | May 2010 | A1 |
20100223647 | Johnston et al. | Sep 2010 | A1 |
20100239086 | Johnston et al. | Sep 2010 | A1 |
20100241258 | Medina et al. | Sep 2010 | A1 |
20100303100 | Niamut et al. | Dec 2010 | A1 |
20110067058 | Johnston et al. | Mar 2011 | A1 |
20110122316 | Jones et al. | May 2011 | A1 |
20110142417 | Wilson et al. | Jun 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
20110134763 A1 | Jun 2011 | US |