MXPA06010293A - Transport stream dejitterer - Google Patents

Transport stream dejitterer

Info

Publication number
MXPA06010293A
MXPA06010293A MXPA/A/2006/010293A MXPA06010293A MXPA06010293A MX PA06010293 A MXPA06010293 A MX PA06010293A MX PA06010293 A MXPA06010293 A MX PA06010293A MX PA06010293 A MXPA06010293 A MX PA06010293A
Authority
MX
Mexico
Prior art keywords
packet
time
packets
stream
timestamp
Prior art date
Application number
MXPA/A/2006/010293A
Other languages
Spanish (es)
Inventor
G Pinder Howard
D Woodward William Jr
Original Assignee
G Pinder Howard
Woodward William Djr
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by G Pinder Howard, Woodward William Djr filed Critical G Pinder Howard
Publication of MXPA06010293A publication Critical patent/MXPA06010293A/en

Links

Abstract

A transport stream transmitter receives a jittered stream of network frames carrying a stream of transport packets. The transport stream transmitter de-encapsulates the stream of transport packets from the network frames and dejitters and transmits the stream of network frames.

Description

APPARATUS TO REMOVE THE INSTABILITY OF TRANSPORT CURRENT Field of the Invention The present invention relates in general to broadband communication systems and more in particular, relates to an apparatus for reducing instability in broadband communication systems.
Background of the Invention Modern television subscriber systems (STS) transmit digital content, which is packaged, from a main end to the subscriber. The digital content is typically provided in a format such as MPEG or other packet format known to those skilled in the art. STS operators prefer to provide programs in a digital format, since digital programs provide greater fidelity and less bandwidth compared to similar programs. However, packaged digital programs must be properly synchronized so that the subscriber can have access to them. Briefly described, an encoder receives an analog program and encodes the program into elementary streams of audio and video, which are packaged and known as packed elementary streams (PES). The PES packets are of variable length and the packed elementary streams include time information, so that the audio content packets can be properly synchronized with the packets of the video content by a decoder when the user has access to the program. In a typical STS, instead of variable-length packets, fixed-length transport packets are transmitted from a main end to the subscriber when packing the variable PES packets in one or more transport packets. Again, the transport packets include time information for the subscriber who has a digital subscriber communication terminal (DSCT) to decode the program. The DSCT uses the time information to match the frequency of its internal clock with the clock frequency of the encoder that generated the transport packets. However, at the main end, instability is often introduced within the transport currents of a program because, among other things, the multiple transport currents of the different programs are multiplexed together and because the routing through the Main end and other processing introduces a variable delay. In this way, what is sought is a method and apparatus for removing the instability of the transport currents of a program, in such a way that the DSCT receiving the program can synchronize the elementary streams of the program. The STS also provides a service known as video on demand (VOD) where a subscriber can request a program or pre-recorded movie or a type of service. For purposes of the invention, a program or movie or other type of service that is provided or offered to the subscriber by an STS to the subscriber is referred to as a program. VOD programs are often stored in a VOD pump, which is typically located at the main end of the STS. The stored VOD programs include time information used to synchronize the DSCT clock of the subscriber with the clock of an encoder packaging the program. Typically, a VOD pump does not emit a requested program at a stable current speed of the encoder. Instead, the VOD pump groups the multiple transport packets into a network frame and transmits the network frame to a transmitter, such as a quadrature amplitude modulator (QAM), for transmission to the DSCT of the subscriber. Consequently, in the transmitter, the transport currents are unstable due to the variable delay in the transmission path between the VOD pump and the transmitter and the grouping of the multiple transmission packets in a single network frame. In this way, what is needed is a system and a method to reduce the instability by correcting the variable delay and by compensating the grouping of the transport packets in network boxes.
BRIEF DESCRIPTION OF THE DRAWINGS Preferred embodiments of the invention will be better understood by reference to the following drawings. The components in the drawings are not necessarily to scale, rather some emphasis is given to clearly illustrate the principles of the present invention. In addition, in the drawings, like reference numbers indicate corresponding parts through the different views. Figure 1 is a block diagram of a broadband communication system, such as a subscriber television system where the preferred embodiment of the present invention can be employed. Figure 2 is a block diagram of a main end of a subscriber's television system. Figure 3 is a block diagram of a network frame stream. Figure 4 is a block diagram of an MPEG transport stream and a DSCT that receives the MPEG transport stream. Figure 5 is a block diagram of a transport current transmitter. Figure 6 is a graph of a number of arrival transport packets against time. Figure 7 is a block diagram of a data unit header. Figure 8 is a block diagram of an apparatus for removing instability. Figure 9 is a flow diagram of exemplary steps for removing instability from a stream of packets.
Detailed Description of the Invention The preferred embodiments of the present invention will be described more fully hereinafter with reference to the accompanying drawings, in which the like numbers represent like elements throughout the different Figures, and wherein several are shown. exemplary embodiments of the invention. However, the present invention can be incorporated in many forms and should not be considered as limited to the modalities set forth herein. The examples provided herein are non-limiting examples and are merely exemplary along with other possible examples. One way to understand the preferred embodiments of the invention includes viewing them within the context of a subscriber's television system (STS). Thus, the preferred embodiments of the invention include, among other things, systems and methods for removing the instability of the transport streams carried by an STS: Preferred embodiments of the invention may also include systems and methods for removing the instability caused by the grouping of transport streams in network boxes. In addition, preferred embodiments of the invention also include, among other things, systems and methods for removing the instability of a transport stream by generating new time information for the transport stream and transmitting the transport stream with the new time information to the DSCT. Because the preferred embodiment of the invention can be understood within the context of a subscriber's television system environment, an initial description of a subscriber's television system (STS) is provided and is followed by a description of the selected components which are included within the main end of a subscriber's television system. Also, an apparatus for removing instability is described which implements the preferred embodiments of the invention and which is included in the main end at the main end. However, the preferred embodiments of the invention can be incorporated in many different forms and should not be considered as limiting the modalities set forth herein, rather, these modalities are provided as a detailed and complete description, and will cover the entire scope of the invention. invention, which can be understood by persons skilled in the art. In addition, all the "examples" set forth herein are intended to be non-limiting. Also, it should be noted that the logic of the preferred embodiments of the present invention can be implemented in hardware, software, firmware or a combination thereof. In preferred embodiments, the logic is implemented in software or firmware stored in a memory and executed by an appropriate instruction execution system. When implemented in hardware, as in an alternative mode, the logic can be implemented with any or a combination of the following technologies, which are well known in the art: a discontinuous logic circuit having logic gateways to implement the functions logic with data signals; a specific application integrated circuit (ASIC) that has appropriate combined logic gateways, a programmable gateway array (, a programmable field gateway array (F, etc. In addition, the scope of the present invention includes incorporating the functionality of the preferred embodiments of the present invention into a logic embodied in media configured with hardware or software.
Explanation of Subscriber's Television System An explanation of an exemplary STS, which is sometimes referred to as a Broadband Digital Distribution System, is provided in U.S. Patent No. 6,157,719, entitled "Conditional Access System." (Conditional Access System), which is incorporated here as a reference in its entirety. The functions of the STS include: providing interfaces for content providers, service providers and title agents, controlling access and use of content and services; and distribute the content and services to the subscribers. The content and services have conditional access to the subscribers of the STS. In order to have access to a service, the subscriber must be "empowered", that is, the subscriber needs to have authorization to access a service. Content providers and service providers may not want to be in the business of managing entitlements for STS subscribers. In that case, the content and services of the content and service providers are associated with a proprietary agent, and the title agent provides the subscribers with entitlements for the content and associated services. Ademar, the operator of the STS can act as a title agent for service and content providers that do not wish to be involved with the offering of entitlements for services to the subscriber. The subscriber's television system offers subscribers of the system services such as, without limitation, Internet service, and telephone service and thousands of program selections or service cases. Service cases include, but are not limited to, the installation of audio or video or an audio / video program. A service case may be transmitted to all subscribers of the subscriber's television system, a portion of the subscribers or to an individual subscriber. Service cases include regular programming, special programming, such as pay-per-view or services requested by the subscriber as a personal television.
SUBSCRIBER TELEVISION SYSTEM Figure 1 is a block diagram illustrating a non-limiting example of a Subscriber Television System 100 (STS). In this example, the STS 100 includes a main end 102, a network 1 04, a digital subscriber communication terminal 1 10 (DSCT), located at subscriber facilities 1 08. It should be appreciated that the STS 1 00 shown in Figure 1 is illustrative only and should not be construed as implying any limitation on the scope of the preferred embodiments of the invention. For example, the STS 100 may characterize a plurality of any of the illustrated components, or it may be configured with alternative modalities for any of the individual components or it may be configured with alternative modalities for any of the individual components or with other components not listed. Subscriber television systems also included within the scope of the preferred embodiments of the invention include systems that do not use physical structural wiring for transmission, such as, without limitation, satellite systems. A DSCT 1 1 0 that is located in the subscriber's facilities 108, among other things, provides a two-way interface between the main end 1 02 of the STS 1 00 and the subscriber. The DSCT 1 10 decodes and also processes the signals for deployment in a display device, such as a television set 12 (TV) or a computer monitor, among other examples. Those skilled in the art will appreciate that in alternative modes the equipment for first decoding and then processing the signal can be located in a variety of equipment including, without limitation, a computer, a TV, a monitor or an MPEG decoder, among others. Secure communication between the main end 1 02 and the DSCT 1 10 preferably is achieved with the use of a pair of asymmetric keys known to those skilled in the art, such as the public key encryption technology Rivest, Shamir &; Adleman (RSA). Briefly described, any pair of asymmetric key includes a public key, which is distributed to the public, and a private key that is not distributed. The content is encrypted with a public key that can only be deciphered with the use of a corresponding private key. A message that is signed with a private key is authenticated with a corresponding public key. The main end 102 and the DSCT 1 10 can communicate securely after they have exchanged the public keys. Preferably, the main end 102 receives the content from at least one content provider 1 06. The main end 102 may include one or more server devices (not shown) to provide the video, audio and / or data to the client's media devices such as the DSCT 1 1 0. The leading end 1 02 and the DSCT 1 1 0 cooperates to provide the user with audio / video services or television services through the television set 1 12. Television services may include, for example, television broadcast services, music services, cable television services, premium television services, video on demand (VOD) services, or pay-per-view (PPV) services, among others. Figure 2 illustrates some of the cooperative elements and interactions used to provide a program such as a VOD service, in accordance with one embodiment of the invention. Figure 2 illustrates a non-limiting example of the selected components of a main end 102 that is configured in accordance with an embodiment of the present invention. It should be understood that the main end 102 shown in Figure 2 is illustrative only and should not be considered as limiting the scope of the preferred embodiments of the invention.
The main end 102 receives the content from the content providers 1 06, which can provide input in a variety of ways. The main end 1 02 combines the content of various sources and distributes the content to the subscribers through distribution systems of the network 104, which includes a variety of transmission paths, including but not limited to satellites (not shown) and transmitters of terrestrial transmission and antennas (not shown). The end 102 receives programming signals from the content providers 106 and after processing the contents of the content providers 106 in accordance with the mechanisms described herein, the main end 1 02 transmits the programming signals to the DSCT 1 10 at the facilities 108 of the subscriber. Typically, the main end 102 transmits conventional analog signals, which will not be described, and digital signals. In one implementation, the digital signals are transmitted in an MPEG format and the embodiments of the present invention will be described in terms thereof. However, it should be understood that in describing the embodiments of the present invention that employ MPEG formatted packets it is only exemplary and for purposes of clarity and is not a limitation to the scope of the present invention. The scope of the present invention is intended to be extended to at least all information streams where instability is removed. As shown in Figure 2, the selected components of the main exemplary end 1 02 include a communication i-terface 202, a digital network control system 204 (DNCS), a conditional access server 1 06 (CA), a video on demand server 208, a transport stream transmitter 21 0, a quadrature phase shift keying modem 212 (QPSK), a router 214, pumps 216 VOD, and a switch 222, and the end components 102 They are connected via Ethernet 218. Those skilled in the art will understand that the exemplary principal end 102 may include additional components, such as additional servers, switches, multiplexers, transport stream transmitters, among others, and may omit other components. . In one implementation, the satellite signals are received by the communication interface 202 and the demodulated data carried in the satellite signals are sent through the Ethernet 218 or in other modes, through an asynchronous transport mode (ATM), a serial asynchronous interface (ASI), or in some communication protocols known to those skilled in the art, to the 208 VOD server, among other servers, for storage in a 216 VOD pump. The 208 VOD server receives and handles the subscriber's requests for the programming that is stored in the 21 6 VOD pumps. When the VOD server 208 receives a request from a subscriber for a program / service stored in one of the VOD pumps 216, the VOD server 208 initiates a VOD service, inter alia, by providing the transmitter 21 0 with transport stream with the requested program and informs DNCS 204 about the request from the subscriber. In one embodiment, the pump 216 VOD transmits the requested program to the transport stream transmitter 210, through the switch 222, which employs the UDP protocol. The VOD server 208 allocates a logical port number of the transport stream transmitter 21 0 for each VOD service. The transport stream transmitter 210 can then differentiate between the VOD services with the use of the logical port numbers of the different VOD services. The DNCS 204 provides the management, monitoring and control of the elements of the network and of the transmission services provided to the users. The DNCS 204 includes, among other modules, a subscriber database 220 which includes information about the subscribers for each purpose, such as billing information, analysis data, among others. The DNCS 204 also communicates with the conditional access server 206 to provide secure transmission of the content from the main end 102 to the DSCT 1 1 0. The CA server 106 selectively provides the "entitlements" to the DSCT 1 10 for the services and programming of the STS 100 In other words, among other things, the CA server 206 determines the DSCT 1 1 0 of the STS 1 00 which is entitled to access a type of service or program and provides the selected 1 the necessary keys and authorizations, among others, to have access to the determined type of service. In addition, the server 206 CA informs the DNCS 204 of the entitlements of each DSCT 1 10 in the STS 1 00 so that each subscriber can be suitably billed. In addition, the CA server 206 includes a database (not shown) that includes, among other things, long-term keys, the public keys of the DSCT 1 1 0 and the private key for the server 206 CA. The CA server uses long-term keys, public and private keys to communicate securely with the DSCT 1 1 0. The CA server 206 also provides encryption information such as the long-term key or a multi-session key (MSK) to the transmitter 210 of transport stream and for the selected DSCT 1 10. The transport stream transmitter 210 uses the MSK to encrypt the contents of a program. In one embodiment, the transport stream transmitter 210 generates control words by encrypting a counter-value with the MSK. The counter-value is transmitted from the transport stream transmitter 210 to DSCT 1 10 in a control entitlement message (ECM) and the control word is used to encrypt the content. A new control word is generated multiple times per minute with the use of the same MSK, which typically has a lifetime of days or weeks, and for each new control word the corresponding counter value is transmitted in an ECM. The MSK is transmitted securely from the main end 1 02 to the DSCT 1 10 titled. The DSCT 1 1 0 receives the counter-values and uses the MSK to generate control words to decipher the content of the service type (program). In another embodiment, the control word is generated by a random number generator, and the ECM carries the control word, which is encrypted to the DSCT 1 1 0. The 212 QPSK modem is responsible for transporting the Internet Protocol datagram traffic. (IP) out-of-band between the main end 102 and the DSCT 1 1 0. The data transmitted or received by the modem 212 QPSK can be routed by the router 214 of the main end. Among other things, the main end router 214 can be used to deliver data upstream to several servers, such as a 208 VOD server. The transport stream transmitter 210 receives a stream of network frames 224 from the switch 222 and transmits a stream of transport packets 226 to the DSCT 1 10. The network stream 224 is illustrated in Figure 3 and the packets 226 of the transport stream are illustrated in Figure 4.
With reference to Figure 3, the network frame 224 stream is formed of an asynchronous network frame 302 sequence. Due to the congestion of the network and other factors that are variable time slots between network frames 302, they result in instability. Another source of instability is due to the multiplexing of currents from different programs. For example, the network boxes 302A and 302B each carry portions of the same program and must be received in the transmitter 21 0 of the transport stream consecutively, but the switch 222 has inserted network frames 302C and 302D between the network frames 302A and 302B, which delays the network frame 302B. In a preferred embodiment, each network frame 302 encapsulates multiple transport packets 304. For exemplary purposes, transport packets 304 are illustrated as MPEG transport packets; which are of a fixed size. The number of transport packets 304 encapsulated in a network frame 302, is usually a predetermined number. The predetermined number of transport packets is usually selected so that the network box 302 is as large as possible without exceeding the maximum size of the transfer unit (MTU) of the extended network between the 216 VOD pump and the transmitter 210 of the transport stream. However, the present invention is not limited to network boxes carrying a predetermined number of transport packets. With reference to Figure 4, the transport stream 226 is formed from a series of transport packages 304. Here, transport packets 304 form a synchronized stream. The transport stream transmitter 210 pumps the transport packets 304 at an essentially constant rate one after the other to the DSCT 1 1 0. The following is a brief description of MPEG packets, but other details are provided in the MPEG-1 standards. (ISO / IEC 1 1 172), MPEG-2 standards (ISO / IEC 13818) and MPEG-4 standards (ISO / IEC 14496) as described in detail in the International Organization for the Standardization of ISO / IEC document JTC1 / SC29 / WG1 1 N (June 1 996 for MPEG-1, July 1 996 for MPEG-2 and October 1998 for MPEG-4), which are incorporated herein by reference. Briefly stated, an MPEG packet 304 has a fixed size, 188 bytes, and includes a header 402, which is 4 bytes in size and which includes, among other things, a packet identifier (PI D) field. The PID field is a 13-bit field that is used to identify packets and streams of packets. The PID values vary from 0 to 8, 191 inclusive. The PID "0" is reserved for the program association tables (PAT), as well as other PI values D. For example, the PID value 8, 1 91 is reserved for the padding packets, which are packets that are transmitted when there is no system package or program package available for downstream transmission. The MPEG packets 304 also include an adaptation field 404 and a payload 406. The adaptation field 404 and payload 406 are of variable length separately, but the aggregate length is 184 bytes. The header 402 also includes an adaptation size field indicating the size of the adaptation field 404. In most MPEG 304 packages; there is no 404 adaptation field. However, when the adaptation field 404 is used for, among other things, carrying time information in a 408 PCR field and when the size of the payload 406 is less than 184 bytes, carry padding 410. The 408 PCR field is a total of 42 bits in size and includes 33 bits that are used for a reference base of the programming clock, corresponding to a clock of 90 kHz, and 9 bits that are used for a reference extension of the program clock corresponding to 27 MHz. The reference extension of the program clock increased from 0 to 299, after 300 increments, the base of the program clock is increased. The program clock reference rotates approximately every 26.5 hours. The MPEG-2 standard requires that timestamps carried by consecutive 408 PCR fields are not more than 100 milliseconds apart. Typically, the payload 406 is a portion of a digital service or a table or portion of a table, and other system information, and when the payload 406 carries a portion of a digital service, typically the serving portion is encrypted Only legitimate subscribers of STS 1 00 have the necessary ownership and keys to decrypt the payload 406. Selected services, such as non-premium television programming or other programming can be carried without being encrypted. The system information, such as, but not limited to, tables and messages are also carried in the payload 406 of the MPEG pack 304 and are typically carried without being encrypted. Among other things, the system information includes PAT; program copy tables (PMT), and ownership control messages (ECM). Alternatively, the system information may also be carried in an adaptation field 404. A PAT associates the digital services carried by the transport stream 226 with the PMT. For example, a certain digital service, program 1 is associated with a PMT that has the PID "153" and a different service, program "20" is associated with the PMT that has the PI D "296". The PMT associates elementary streams of a given service with their respective PID values. For example, for the particular service identified in the PAT as program "1", the PMT for that program has the PID "1 53" and in this example, the determined service is a movie or a television program or a video service that is formed of several elementary streams of content such as video, audio 1, audio 2, etc., where the different audio streams can carry audio tracks of the service in different languages. In this way, the MPEG 304 packets that have the PI D "154" carry the video current for the determined service, the audio track 1 for the determined service is carried by the MPEG packets 304 that the PI D "1 69 has. " It should be noted that the PI D values are uniquely assigned so that there are no two elementary streams of different services or the same service, with the same PID value. The PMT indicated by the PID "153" also associates the control messages of ownership (ECM) with the package that has the PI D "167" and associates the PCR 408 of the determined program with the packages that have the PID "154".
The DSCT 1 1 0 includes, inter alia, an analyzer 412, a local clock 414, and a decoder 416, a processor 418 and a decrypter 420. The analyzer 412 provides the processor 41 with the PATs and the PMTs. The processor 41 8 uses the PAT to determine the PMT for a particular program and then uses the PMT for the particular program to determine the PID currents of the particular program that include the PCR current PI D. The analyzer 412 provides the local clock 414 with marks of time taken in the 408 PCR field. In addition, the analyzer 412 provides the PID streams of the particular program to the decoder 420 and provides the PID ECM stream to the processor 418. In response to the processor 418 determining the DSCT that is entitled to access the program, the processor 418 provides the words control to decoder 420 to decrypt the program. The decoder 420 then uses the control words to decrypt the encrypted payloads 406 of the transport packets 304 carrying the program and provides the decrypted payload to the decoder 416. The local clock 414 receives the timestamps and uses the clock marks. time to set its frequency to match the frequency of the encoder (not shown) that encoded the program. With the local clock 414 coinciding with the frequency of the encoder, the decoder uses the time signals of the local clock 414 to synchronize the different elementary streams of the program. With reference to Figure 5, the transport stream transmitter 210 includes a processor 502, a clock 504, a pre-stabilizer 506, a plurality of stabilizers 508 and a plurality of encryptors 510, a multiplexer 512 and a modulator 514. The Pre-stabilizer 506 receives the network frame 224 stream and de-encapsulates the transport packets 304 carried by the network frames 224. The pre-stabilizer 506 appended to the header of the data unit (DUH) which includes fields to carry various processing, routing and time information, to the transport packets 304. The transport packets 304, with the DUHs attached thereto, are transmitted as unstable streams 516 to the stabilizers 508. The pre-stabilizer 506 receives processing instructions from the processor 502 so that each program stream carried in the stream of the network frames 224 are transmitted to a separate stabilizer 508. The clock 504 generates the local time L (T) and provides the stabilizers 508 and the multiplexer 512 with the updated local time. In the preferred embodiment, the pre-stabilizer 506 also calculates a cluster error calculation E, which approximately compensates for the error introduced by the grouping of the multiple transport packets 304 into a single network frame 302. The E calculation of grouping error is marked within the DUH. The pre-stabilizer 506 also checks the transport packets 304 for the 408 PCR fields and responds to find the 408 PCR field, the pre-stabilizer marks the time stamp carried in the 408 PCR field in the DUH. Each of the stabilizers 508 receives unstable current 516 from the transport packages 304 and outputs a continuous stabilized stream of transport packets. The details of the stabilizer 508 are provided here.
The stabilized streams 518 are also processed by the encrypters 510 and the multiplexer 512 and the modulator 514. The processing that takes place in the stabilized streams 518 between the stabilizer 508 and the modulator 514 reintroduces instability since, among other things, the ultiplexing introduces a variable delay. The modulator 514 is adapted to transmit packets 304 without causing a variable delay. In this way, the time in which a packet is transmitted from the modulator 514 is simply the time L (T2) in which the packet was transmitted to the modulator 514 plus a known constant (a). Any speed delay for a transport packet is introduced by the processing that is carried out after the stabilizer 508 and before the modulator 514. However, the variable delays are compensated to remove the instability. Those skilled in the art will recognize that the variable delay portion of the transmitter 210 of the transport stream may include different components or fewer components or more components than those shown. In a preferred embodiment, when a transport packet 304 is transmitted from a stabilizer 508, the current local time L (Tt) is recorded in the DUH for that transport packet. Then, before the transport packet enters the constant delay portion of the transmitter 21 0 of the transport stream, i.e., the transmission to the modulator 514, the current local time L (T2) is used to determine the variable delay . The variable delay for a packet is simply the difference L (T2) -L (T1). When the transport pack 304 includes a 408 PCR field, then the 408 PCR field is redisked with a new timestamp. The new timestamp is a variable delay, L (T2) -L (T1), plus a PCRJocal value that is determined by the stabilizer 508. The processor 502 receives, among other things, the program / system information from among others, server 206 CA, and server 208 VOD. For example, the 208 VID server tells the processor 502 that a particular logical port is assigned to a particular program stream, and the CA server 206 provides the encrypted information such as the MSK to the processor 502 for that particular program. The processor 502 allocates a stabilizer 508 and a encryptor 510 to process that particular program stream. Each of the encrypters 510 receives a program stream and encrypts the payload 406 of the transport packets 304 with the use of the control word SK. The multiplexer 512 receives the encrypted transport packets 304 and multiplexes them into a single transport stream from the modulator 514. Before transmitting the transport packets to the modulator 514, the multiplexer marks the time stamp values stabilized within the fields 408. PCR of the PCR that carries the transport packages. Figure 6 illustrates the effects of grouping due to carrying more than one transport packet in a network box. The vertical axis represents the number of transport packets received in the transport stream transmitter 210 and the horizontal axis represents the time, which is determined in an arbitrary unit of time (t). Each of the network frames 602 and 604 carries five transport packets and arrives at the transport stream transmitter 210 in the Ot and 5t units, respectively. The solid line 606 represents the number of transport packets carried in the network frames 602 and 604 that are received in the transport stream transmitter 210 as a function of time. For purposes of comparison, a stream of network frames 608 that has no clustering or instability is illustrated. Each of the network boxes in stream 608 carries a single transport packet and one is received by a separate time unit (t). The dashed line 61 0 represents the number of transport packets received as a function of time for current 608. In this example, it is assumed that there is no variable delay between the pump 216 VOD and the transmitter 210 of the transport stream and the network boxes are pumped from the 216 VOD pump at such speed, that there is no instability in the stream 608. In other words, in the stream 608, the arrival time of the network frames encapsulating the transport packets that have Consecutive timestamps coincide with the difference in time stamps. For example, when the first and the eighth transport packets, which are carried by the first and the eighth network boxes of streams 608, each carry a timestamp, then the difference in their PCR timestamps (8) -PCR (1), equals the difference in their arrival times (7t). By looking at network box 604, it is clear that the eighth transport packet arrived at the transport current transmitter very early and that the grouping of multiple transport packets into a single network box has introduced instability. Specifically, the eighth transport package has arrived approximately 1.66t earlier. In the preferred embodiment, the pre-stabilizer 506 calculates a grouping error calculation, E for the grouping instability. The pre-stabilizer 506 first calculates the dynamic average bit rate by counting the number of transport packet bits between the consecutive 408 PCR fields and divides the time difference of the timestamps? T = PCR (M + 1) - PCR (M). Because the transport packets have a fixed size, 188 bytes, instead of counting bits, the pre-stabilizer 506 can count the packets. The ratio of N /? T, where N is the number of transport packets, is the average packet speed of the transport packets between the consecutive timestamps. The reciprocity of the average packet speed is used to calculate the error in the time of arrival for the second time stamp that the packet carries. The calculation of grouping error is determined by E = n / (N /? T), where n is the number of transport packets interposed in the second time stamp that carries the transport packet and the first transport packet in the network box that carries the second packet that bears the timestamp. For example, when there are seven packets between the first and the eighth transport packets, thus N = 7, and two transport packets between the sixth transport packet, which is the first transport packet of the network box 604 and the eighth transport package, in this way n = 2. In this case, the calculation of grouping error is determined by E = (2/7) xt = 2t, which means that the eighth transport packet takes approximately 2t earlier. The faster the transmission speed between the pump 216 VOD and the transmitter 210 of the transport stream, the better the calculation of grouping error. In our example, the transmitter 210 of the transport stream takes approximately 0.83t to receive a network box carrying 5 transport packets or approximately 0.166t per transport packet. When the transport stream transmitter 21 0 received a network box carrying five transport packets at 0.1 t, then the transport stream transmitter 210 will receive each transport packet at approximately 0.02t. Consequently, when the first bit of the sixth transport packet reached 5t, then the first bit of the eighth transport packet will arrive at approximately 5.04t, instead of 5.33t as in the previous example. In that case, our calculation of grouping error continues to equal 2t and the real error is 1.96t, a difference of only 0.04t. In a preferred embodiment, the transport speed Tr, the speed at which the transport packets are received, is also used in the calculation of the grouping error, which is determined by E = n / (N /? T) -n / Tr. With reference to Figure 7 illustrating the data unit header 702 (DUH) that the pre-stabilizer 506 apports the transport pack 304, the DUH 702 includes, among other things, fields for the time information, such as, but is not limited to, a field for calculating grouping error 704 and a field 706 for the time stamp PCR. When the pre-stabilizer 506 finds a transport pack 304 that has a 408 PCR field; pre-stabilizer 506 reads field 408 PCR and records the time stamp value in time stamp field 706. The pre-stabilizer 506 also registers the error calculation E, in the grouping error calculation field 704 for that PCR carrying the transport packet. The DUH 702 also includes a time out field 708 where the stabilizer 508 marks the current local time L (T?) Within the expiration time field 706 before the transport packet is transmitted from the stabilizer 508. The DUH 702 may include, among other things, fields for carrying out information processing and encryption information. In that case, the processor 502 provides the stabilizer 506 with the processing and encryption information so that the stabilizer can mark the information in the appropriate fields of the DUH 702. With reference to Figure 8, the stabilizer 508 includes an intermediate memory 802, a buffer controller 804, a first fixed circuit 806, and a second fixed circuit 808. The intermediate memory 802 receives the unstable current 516, which is formed of transport packets 304 with the DUH 702 attached thereto, and outputs the transport stream 5 8 at a predetermined speed. In a preferred embodiment, the intermediate memory 802 is large enough to accommodate more than one group of transport packets, wherein a group is defined as a first PCR carrying the transport packet and non-carrying transport packet PCRs that are interposes the first PCR that carries the transport packet and the next PCR that carries the transport packet. For example, the intermediate memory 802 hosts the group 824, which consists of "N" transport packets. The transport pack 304A is a PCR carrying the transport packet, such as the transport pack 304B, which is the first transport packet of a subsequent group of the transport packets. Among other things, the buffer controller 804 controls the speed at which the transport packets are released from the intermediate memory 802. The speed at which the transport packets of group 824 are pumped out of intermediate memory 802 is determined by the equation R = N /? T, where N is the number of transport packets in group 824, and? T it is the difference of the timestamps of transport packages 304A and 304B. The buffer controller 804 reads the DUH 702 appended to each transport pack 304, as the transport pack 304 and the DUH 702 are memorized in the intermediate memory 802. Each time the DUH 702 includes a timestamp in the PCR timestamp field 706, the buffer controller 804 provides the first fixed circuit 806 with a "corrected" 826"PCR" input that is determined as PCR ' = PCR | NE | N, where PCR, N is the time stamp taken in field 706 of the PCR timestamp and E is carried in field 704 of grouping error calculation of the incoming DUH 702. The first fixed circuit 806 includes a comparator 81 0, a circuit filter 2 2 and a clock 814. The first fixed circuit produces an output 832, a reference of the system clock (SCR) which is fed into the comparator 810. The comparator 81 0 determines the difference between its inputs, PCR'826 and SCR 832, respectively, and outputs the difference 828 of the circuit filter 812. The circuit filter 812 essentially softens or averages its input 828 to produce an output 830 that does not include high frequency variations. In other words, output 830 of output filter 812 varies slowly. The clock 814 receives the output 830 of the filter 812 of the circuit and adjusts its speed according to it. Clock 814 accelerates the responses to the positive input and delays the responses for the negative input, and remains constant in response to the input equal to zero. Those skilled in the art will recognize that by providing the "corrected" entry PCR1, to the comparator 810, the first fixed circuit 806 is set faster than what the comparator 810 receives the PC RI N as an input. The speed at which the first fixed circuit 806 is fixed at its inputs depends in part on the circuit filter 812 and its input. When the circuit filter 812 is damped too heavy to withstand rapid fluctuations in its input, then the first fixed circuit 806 will be fixed more slowly. In other words, it takes longer to overcome a constant or near-constant displacement when the circuit filter 812 is very damped. The E calculation of grouping error is always a positive displacement with a varying quantity, based on the relative position of the PCR that carries the transport packet in the network box. Subtracting the grouping error calculation E from the P C RI N has the ability to provide a first fixed circuit 806 with a more accurate input, which means that there is less than one offset to overcome for the circuit filter 812. Decreasing the error reduces input instability which produces a corresponding drop in output instability.
Clock 814 provides its output, SCR 832 to an adder 816. Adder 816 subtracts the adjustable parameter β from SCR 832, where β represents the average time a transport packet 304 resides in intermediate memory 802, and outputs 834 , SCR-ß. The output 834 is input to the second fixed circuit 808. The second fixed circuit 808 includes a comparator 81 8, a circuit filter 820 and a clock 822. The clock 822 generates an output, PCR or 842, which the memory controller 804 uses to control the speed at which it places the packets of transport in the stabilized stream 518. The buffer controller 804 reads the DUH 702 from the transport packets 304 before transmitting them in the stabilized stream 518. When the PCR timestamp field 706 includes a timestamp for the current first introduced transport pack 304, the buffer controller 804 provides the PCR to the comparator 818. The comparator 81 8 determines the difference between the "836" PCR and entry 834, SCR-ß The average residence time ß is subtracted from the SCR since the clock 814, which generated the SCR, is fixed to the incoming PCR, which is later in time than the outgoing PCR. The comparator 818 produces an output 838, which is then inserted into the circuit filter 820. The circuit filter 820 smoothes or averages the 838 input to remove the fast oscillations and generates the output 840, which is input into the 822 clock. The 822 clock produces the PCRJocal 842 output, which is used by the buffer controller to release the packages. The average difference between the PCR "836 and the input 834, SCR-β is forced to zero." Before transmitting the first introduced transport packet 304, the buffer controller 804 marks the current local time L ^ T) in the time field 706 outside the DUH 702 annexed to the first introduced transport pack 304. Although the components of the current stabilizer 508 have been shown as separate modules, this was done for purposes of clarity and is a non-limiting example. alternatives, one or more components of the current stabilizer 508 can be implemented in hardware, software or firmware among others In one embodiment, the clock 814 does not generate the SCR, rather it generates the difference between the local time L (T), as it is measured by the clock 504 and the incoming PCR values Similarly, the output of the clock 822 is related to the difference between the clock 504 and the PCRs of the outgoing transport packets 304 In this embodiment, the clock 504 is a master clock to run the clock 814 and 822 of the current stabilizers 508. In this mode, the buffer controller 804 marks the output of the clock 822 in the DUH 702 before the current first entered transport packet is transmitted from the intermediate memory 802. With reference to Figure 9, which illustrates the steps performed by the transport current transmitter 21 0, in step 902, the transport stream transmitter 210 receives a network box 302 in the network frame 224. which has a transport packet 304 that carries a 408 PCR time stamp. In step 904, the transport stream transmitter 21 0 calculates a time offset. The temporal displacement is inter alia related to the position of the transport packet 304 carrying the timestamp 408 PCR within the network frame 302. The time offset can also be related to the transmission speed of the network frames 224. In step 906, the transport packets 304 are stored within the intermediate memory FI 802 FO, and in the step 908, the clock 814 of the first fixed circuit 806 is set to a "set time" associated with the time marking 408. PCR of the PCR that carries the most recent transport package. The "set time" is the difference between the PCR timestamp and the calculated time offset. In step 910, the clock 822 of the second fixed circuit 808 is set at the speed of the first fixed circuit. The output of the first fixed circuit is shifted by a constant, which is approximately the desired delay of a packet in the intermediate memory 802, and the shifted output of the first fixed circuit is provided to the second fixed circuit as an input. In step 912, transport packets 304 are extracted from memory 802 at the measured rate relative to the second fixed circuit. In step 914, transport packets 304 are also processed in transmitter 210 of the transport stream and such processing can result in a variable delay which re-introduces instability. In step 916, the transport packets 304 carrying timestamps 408 PCR are redialed with a time measured relative to the clock 822 of the second fixed circuit 808. In step 918, the transport packets 304 are transmitted from the transport stream transmitter 210. It should be remembered that in the preferred embodiment, the re-dialing in step 916 is performed after any variable delay in the processing of the transport packets 304 in the transport stream transmitter 210, or in other words, when the delay between re-dialing and transmission is a constant. The time marked on the 408 PCR time stamp compensates for the variable delay. In this way, the variable delay in processing the transport packets 304 is counted for the re-dialing of the PCT carrying the transport packets after the variable delay. Any description of the process or block in the flowcharts should be understood as modules, segments or portions representative of a code that will include one or more executable instructions to implement the specific logical functions or steps of the process, and alternative implementations are included within of the scope of the preferred embodiment of the present invention, wherein the functions may be executed in a different order from the one shown, including essentially a concurrent or inverted form, depending on the functionality involved, as may be understood by persons skilled in the art. Although the exemplary preferred embodiments of the present invention have been shown and described, those skilled in the art will be able to recognize changes, modifications and alterations of the invention, provided they do not depart from the spirit of the present invention. Such changes, modifications and alterations should be within the scope of the present invention. Also, it should be emphasized that the modalities described above, especially the "preferred embodiments" are possible non-limiting examples of the implementations, only establish a clear understanding of the principles of the invention.

Claims (9)

1 . A method for substantially removing the instability of a stream of packets transmitted from a transmission site to a reception site, the method is characterized in that it comprises the steps of: memorizing the packet stream packets in a memory at an intermediate location, interposed between the transmission site and the reception site, wherein the selected packages of the packet stream include timestamps having time values for an external clock; setting a first local clock with the time values of the timestamps included in the packages selected with the external clock; and extracting the packets from the memory at a nominal speed controlled by a second local clock, wherein the second local clock is set with the time values of the timestamps of the selected packets extracted from the memory based on the first clock local. The method according to claim 1, characterized in that before the step of memorizing, the steps of: receiving from the transmission site at the intermediate site the frame stream, wherein each frame encapsulates at least one package in it; de-encapsulate the at least one packet of each frame of the frame stream; and provide the packages to the memory. 3. The method according to claim 2, before the setting step, also includes the steps of: calculating an average bit rate for the frame received stream between a first timestamp and a second timestamp; calculate the offset for the second time stamp with the use of the average bit rate; and subtract the displacement of the time value from the second timestamp. The method according to claim 3, characterized in that the step of calculating the average bit rate also includes the steps of: receiving a first particular frame of the frame stream, the first particular frame having a first selected particular packet has the first time stamp in it; receiving a second particular frame of the frame stream, the second particular frame has a second selected particular packet having the second timestamp therein; determining the number of packet bits between the first timestamp and the second timestamp including the first timestamp or the second timestamp; and dividing the number of bits by the time difference between the first time stamp and the second time stamp. The method according to claim 3, characterized in that the step of calculating the shift also includes the steps of: receiving a particular frame of the frame stream having multiple sequential packets including a selected particular packet having a second mark of time in it; determining the number of packet bits between the particular packet and the beginning of the sequence of the multiple packets; and divide the number of bits by the average bit rate. The method according to claim 1, characterized in that it includes the step of: registering a measured time relative to the second clock, wherein the recorded time is associated when one of the selected packets is extracted from the memory. The method according to claim 6, characterized in that it also includes the step of: marking a new time in the timestamp of the selected packets, where for each selected packet, the new time compensates the variable delay between when transmits the packet from the intermediate site and when the packet was extracted from the memory; and transmitting from the intermediate site the packets extracted from the memory, wherein the time values of the time stamps in the selected packets are transmitted essentially free of instability. 8. The method according to claim 1, characterized in that it also includes the step of: marking a new time in the timestamp of the selected packages extracted from the memory with the use of the second local clock to adjust the time. The method according to claim 1, characterized in that it also includes the steps of: recording the extraction time for each selected package extracted from the memory, wherein the extraction time for each selected package corresponds to the time of the second clock local when the selected package was extracted from memory; associate each extracted selected package with its extraction time; determine a variable delay time for each selected packet extracted with the use of the extraction time for the selected extracted packet, where the time of the variable delay corresponds to the delay between the extraction of the memory and the transmission for the intermediate site of the packet; determine a new time value for the timestamp of each selected packet with the use of the variable delay time and the second local clock. 1 0. A method for substantially removing the instability of a packet stream transmitted from a transmission site to a reception site, the method is characterized in that it comprises the steps of: receiving a stream of frames at an intermediate site, each frame encapsulates a group of packets, wherein the selected packets include a timestamp defining a time value for a clock external to the intermediate site; de-encapsulate the group of packages in each frame; determine if the group of packages in each box includes a selected selected package that has a timestamp in it; in response to the group of packets that include the selected selected packet, determine a time offset for the given selected packet, where the time offset is based on the position of the selected packet determined within the box where the given selected packet was received , and marking a new time value in the time stamp of the selected selected packet, where the new time value is defined by subtracting the time offset of the time value for the external clock; and transmit the packets from the intermediate site at a predetermined speed. eleven . The method according to claim 10, characterized in that the step of determining a time offset also includes the steps of: calculating for the frame stream an average bit rate, wherein the average bit rate is defined as the number of packet bits between a first timestamp included in the first selected packet and the second timestamp included in a second selected packet including the number of bits in the first or second timestamp divided by the change in time between time values of the first and second timestamps; determining for the group of packets that the selected packet includes, determined the number of packet bits between the start of the packet group and the first bit in the given selected packet; and dividing the number of packet bits by the average bit rate to generate the time offset. The method according to claim 10, characterized in that it also includes the steps of: registering a first local clock for each selected packet, the time of the first local clock corresponds to when the box carrying the selected packet reaches the intermediate site; memorize in a memory the packages carried by the frame stream; extracting packets from memory at the speed recorded by the local clock; and before transmitting each selected packet, record the time of a second local clock; and generating by calculating for the frame stream an average bit rate, wherein the average bit rate is defined as the number of packet bits between a first time stamp included in a first selected packet and a second time stamp incl. uida in a second selected packet including the number of bits in the first of the second time stamp divided by the change in time between the time values of the first and second timestamps; determine for the packet group that includes the selected packet determined the number of packet bits between the start of the packet group and the first bit in the given selected packet; and dividing the number of packet bits by the average bit rate to generate a transmission time. 13. An apparatus for substantially removing the instability of a stream of packets transmitted from a transmission site to a reception site, the apparatus is located at an intermediate site and is characterized in that it comprises: a buffer having current packets stored in the same, wherein the selected packets of the packet stream include a timestamp, each timestamp has a time value of a clock external to the device marked therein; a buffer controller adapted to extract time values from the selected packets and extract packets from the buffer memory; a first fixed circuit having a first local clock, the first fixed circuit receives time values from the memory controller and sets the first clock to it; a second fixed circuit having a second local clock, the second fixed circuit receives time information relative to the first local clock and sets the second local clock with it, wherein the buffer controller receives time signals from the second local clock and extract the stored packets at the measured speed in relation to the second local clock. The apparatus according to claim 13, characterized in that it also includes: a transmitter adapted to receive packets extracted from the buffer memory and transmit packets therefrom, wherein the value of the time for each selected packet extracted from the buffer it is adjusted in relation to a second local clock. 15. The apparatus according to claim 13, characterized in that it responds to the buffer memory upon receiving a certain selected packet, the buffer controller provides a first fixed circuit with the time value of the selected selected packet. 16. The apparatus according to claim 13, characterized in that it responds to the memory controller by extracting a certain selected packet from the buffer, the buffer controller provides a second fixed circuit with the time value of the selected selected packet. 17. The apparatus according to claim 13, characterized in that it further includes: means for receiving a frame stream, each frame of the frame stream encapsulates a group of packets of packet stream arranged in a particular order; and a de-encapsulator adapted to de-encapsulate the group of packets of each frame of the frame stream and to provide the packets of each group to the buffer in a particular order. The apparatus according to claim 17, characterized in that the de-encapsulator is also adapted to determine a time offset for a given selected packet included in a given group of packets by the location of the selected packet determined in a given group of packets. packages. The apparatus according to claim 1 8, characterized in that the de-encapsulator is also adapted to determine a new time value by subtracting a time offset from the time value of the time stamp of a given selected package and marking the new time value in the time stamp of the selected selected package. 20. The apparatus according to claim 13, characterized in that the time information received by the second fixed circuit is the current time of the first local clock minus a displacement. twenty-one . The apparatus according to claim 20, characterized in that the displacement in a predetermined time corresponding to the desired length of time that a given package resides in the buffer. 2
2. An apparatus for essentially removing the instability of a stream of transport packets transmitted from a transmission site to a reception site, the apparatus is located at an intermediate location and is characterized in that it comprises: an input port adapted to receive a stream of network boxes carrying the stream of transport packets; a de-encapsulator in communication with the input port adapted to extract the transport packets from the network boxes; a buffer in communication with the de-encapsulator having transport packets of the transport packet stream stored therein, wherein the selected transport packets include a timestamp, each timestamp has a marked time value in the same of a clock external to the device; a first fixed circuit having a first local clock, wherein the first fixed circuit receives the time value related to the time stamp of the last selected stored packet to set the first local clock to it; a buffer controller in communication with the buffer and with the first fixed circuit, the buffer controller is adapted to provide a time value related to the timestamp of the last selected packet stored with the first fixed circuit and extract packets of the buffer at a predetermined speed in a base of first entry, first exit, and wherein the extraction speed is such that the extracted packages are essentially free of instability; and a second fixed circuit in communication with the buffer controller and the first fixed circuit, the second fixed circuit has a second local clock, the second local clock receives the time information relative to the first local clock and sets the second clock local with the same, wherein the buffer controller receives time signals from the second local clock and the extraction speed is measured relative to the second local clock. 2
3. The apparatus according to claim 22, characterized in that it further comprises: a transmitter adapted to receive packets extracted from the buffer memory and transmit packets therefrom, wherein the time value for each selected packet extracted from the buffer it is adjusted in relation to the second local clock. 2
4. The apparatus according to claim 22, characterized in that in response to the buffer receiving a given selected packet, the buffer controller provides a first fixed circuit with the time value of the selected packet determined. 2
5. The apparatus according to claim 22, characterized in that the buffer controller provides feedback to the second fixed circuit. 2
6. The apparatus according to claim 25, characterized in that in response to the current first introduced transport packet which is one of the selected transport packets, the feedback provided by the buffer controller is related to the time value of the transport packet. Transport package introduced first current.
MXPA/A/2006/010293A 2004-03-10 2006-09-08 Transport stream dejitterer MXPA06010293A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10797227 2004-03-10

Publications (1)

Publication Number Publication Date
MXPA06010293A true MXPA06010293A (en) 2007-04-20

Family

ID=

Similar Documents

Publication Publication Date Title
CA2559225C (en) Transport stream dejitterer
US7774489B2 (en) Forward error correction and interleaving of network frames
US6898285B1 (en) System to deliver encrypted access control information to support interoperability between digital information processing/control equipment
US6424714B1 (en) Method and apparatus for providing conditional access in connection-oriented interactive networks with a multiplicity of service providers
CA2554712C (en) System and method of supporting transport and playback of signals
US5790543A (en) Apparatus and method for correcting jitter in data packets
CA2563799C (en) Rate limited control mechanism for mpeg pcr dejittering
EP1576755B1 (en) A method and system for remote tuning and clock synchronization
JP2009010966A (en) Reception of stream through asynchronous network
US20060036551A1 (en) Protecting elementary stream content
US20060184790A1 (en) Protecting elementary stream content
US7746853B2 (en) Method and apparatus for transporting broadcast video over a packet network including providing conditional access
MXPA06010293A (en) Transport stream dejitterer
US9172914B1 (en) Using EQAM video de-jitter memory for processing M-CMTS DEPI PSP priority queues
EP2366250B1 (en) Method and apparatus for secure distribution of audiovisual data encapsulated according to a plurality of transport protocols