MXPA97003396A - Detection and recovery of error for high speed isocron data in mpe data currents - Google Patents
Detection and recovery of error for high speed isocron data in mpe data currentsInfo
- Publication number
- MXPA97003396A MXPA97003396A MXPA/A/1997/003396A MX9703396A MXPA97003396A MX PA97003396 A MXPA97003396 A MX PA97003396A MX 9703396 A MX9703396 A MX 9703396A MX PA97003396 A MXPA97003396 A MX PA97003396A
- Authority
- MX
- Mexico
- Prior art keywords
- pts
- presentation
- data
- buffer
- value
- Prior art date
Links
Abstract
The present invention relates to error recovery for isochronous data ("isodatos") obtained from a data stream. The isodatos transport packets are monitored to locate the isodata display time stamps (PTSs). The presentation of isodates from a buffer memory is synchronized with a system time clock (STC) using the synchronization information derived from the PTSs. Discontinuity errors between said isodata transport packets are identified and if a discontinuity of no more than one packet is identified, a buffer is signaled by an appropriate number of bits to compensate for the discontinuity, while maintaining the synchronization of the presentation with respect to the STC. Additional error detection and recovery techniques are described, including the maintenance of a presentation unit counter, the use of a PTS extension and the PTS offset in order to verify the output synchronization, the provision of a pair of pointers of PTS that verify the correct data synchronization output, the use of a packet elementary stream (PES) counts to detect the data lost in the transport stream and the detection and download of packets designated as encrypted after any decryption must have already been finished
Description
DETECTION AND RECOVERY OF ERROR FOR HIGH SPEED ISÓCRONOS DATA IN MPEG-2 DATA CURRENTS
BACKGROUND OF THE INVENTION The present invention relates to a method and apparatus for communicating data through a packetized data stream, and more particularly to the detection and recovery of errors in high-speed isochronous data ("isodatos") in a current. of digital data. Such data streams may comprise, for example, an MPEG-2 or DigiCipher® II data stream. Several standards have emerged for the transport of digital data, such as digital television data. Examples of such standards include the Moving Images Expert Group standard referred to as MPEG-2 and the DigiCipher II standard owned by the General Instrument Corporation of Chicago, Illinois, USA, assignee of the present invention. The DigiCipher II standard is similar and inclusive of several aspects of the MPEG-2 standard, which is widely known and recognized as an audio and video compression specification sanctioned by the International Standards Organization (ISO) in ISO 13818. In addition of audio and video compression features, the MPEG-2 specification also contains a "layer" of
systems that provide a coding technique independent of the transmission medium for constructing bitstreams containing one or more MPEG programs. The MPEG coding technique uses a formal grammar ("syntax") and a set of semantic rules for the construction of bitstreams to be transmitted. The rules of syntax and semantics include provisions for multiplexing, clock recovery, synchronization and error elasticity. For purposes of this disclosure, any data stream that is encoded in a manner similar to the MPEG-2 transport stream is referred to as a "MPEG-2 type transport stream". An example, but by no means the only MPEG-2 transport stream, is a data stream provided in accordance with the DigiCipher II standard. It is expected that similar regulations will be enacted in the future. The MPEG-2 transport stream is designed with consideration to transmission under conditions that can generate data errors. The MPEG transport packets each have a fixed length of 188 bytes. Many programs, each with different components, can be combined into a transport stream. Examples of services that can be provided using the MPEG format are television services broadcast by land,
cable and satellite television networks as well as services based on interactive telephony. The syntax and semantics of the MPEG-2 transport stream is defined in the International Organization for Standardization, ISO / IEC 13818-1, International Standard, November 13, 1994 entitled Generic Coding of Moving Images and Associated Audio: Si stemas, Recommendation H.222.0, and ISO / IEC 13818-2, International Standard, 1995 entitled Generic Coding of Images in Motion and Audi or Associate: Video, Recommendation H.262, both incorporated herein by reference. Multiplexing according to the MPEG-2 standard is achieved by packaging unprocessed elementary streams such as video and audio encoded in packaged elementary stream (PES) packets that are then inserted into transport packets. As noted above, each MPEG transport packet is set at 188 bytes long. The first byte is a synchronization byte that has a unique eight-bit pattern, for example, 01000111. The synchronization byte indicates the start of each transport packet. After the synchronization byte there is a three-byte prefix which includes a one-bit transport packet error indicator, a one-bit payload unit start indicator, an indicator
of one bit transport priority, a 13-bit packet identifier (PID), a two-bit transport disturbance control, a two-bit adaptation field control and a four-bit continuity counter. The use of the synchronization byte and the three-byte prefix leaves up to 184 bytes of payload containing the data to be communicated. An optional adaptation field may follow the prefix to contain both the related MPEG and the relevant private information for a given transport stream or the elementary current contained within a given transport packet. Provisions for clock recovery, such as a program clock reference (PCR) and splice control are typical of the information contained in the adaptation field. By placing such information in an adaptation field, it is encapsulated with its associated data to facilitate re-multiplexing and network address operations. When an adaptation field is used, the payload is correspondingly shorter. The PCR is a count that reflects the value of the system time clock (STC) for the associated program at the time when the PCR value is inserted into the transport stream. The decoder uses the PCR to synchronize a decoder time clock with the encoder system clock. The lower nine bits
The 42-bit PCR provides a module-300 counter that increases by a clock speed of 27 MHz (the "system clock speed"). In each block of the 300-module, the count in the upper 33 bits increases, so that the upper bits represent the counts that occur at a speed of 90 KHz. This allows the presentation time stamps (PTS) and the decoding time stamps (DTS) to be compared using the 90 KHz value. Since each program or service contained by the data stream can have its own PCR, the programs and services can be multiplexed asynchronously. The synchronization of audio, video and data within a program is carried out by using a time stamp approach. The presentation time stamps and the decoding time stamps are inserted into the transport stream for the separate audio and video packets. The PTS and DTS information is used by the decoder to determine when to decode and display an image and when to play an audio segment. As indicated above, the PTS and DTS values are linked to the same clock established by the PCRs, but are limited by the MPEG-2 standard at a time resolution of 11.1 microseconds. This resolution is limited by the PTS resolution of 90 KHz passwords,
provided by the upper 33 bits of the PCR. This limitation prevents the transport of "high-speed" generalized data which are solid for synchronizing errors, for example, proportions of non-integer data related to 90 kbps, using the same approach provided for audio and video information in a stream of data. MPEG-2 standard transport. The MPEG-2 data, such as compressed audio and video data, must be formatted in a packed elementary stream (PES) formed from a succession of PES packets. Each PES package includes a PES header followed by a payload. The PES packets are then divided into the payloads of successive fixed-length transport packets. The PES packages are generally of relatively long variable length. Various optional fields, such as presentation time stamps and decoding time stamps can follow the PES heading. When transport packages are formed from the PES, the PES arrays are aligned with the transport packet headers. A single PES package can be divided into many transport packages and subsections of the PES package must appear in consecutive transport packets of the same PID value. However, it should be appreciated that these packages
transport can be interspersed freely with other transport packages that have different PIDs and that. they contain data from different elementary streams. Video services are conducted by placing encoded MPEG video streams into PES packets that are then divided into transport packets for insertion into a transport stream. Each video PES package contains all or part of a coded video image, referred to as a "video presentation unit". The PTS and DTS data are placed in the PES packet header that encapsulates the associated presentation unit. The DTS indicates when the decoder must decode the presentation unit. The PTS is used to operate the decoder in order to present (eg, "display") the associated display unit. Audio services are provided in accordance with the MPEG standard that uses the same specification of the PES packet layer. The PTS data is attached to some packages that include audio structure limits. Such limits are defined by audio synchronization words (synchronization). An audio structure is defined as the data between two consecutive audio synchronization words.
In order to reconstruct a television signal from the audio and video contained in a transport stream of MPEG-2 type (for example, MPEG-2 or DigiCipher II) it requires a decoder to process the video packets to be issued to a video decompression processor (VDP) and audio packets to be broadcast to an audio decompression processor (ADP). It is also possible to transmit other types of data in such a transport stream. For example, private data to provide services such as teletext, store notes and other information can be conducted as separate transport packets, derived from a separate packaged elementary stream. Coaxial asynchronous data cables can also be supported; in such a way a coaxial cable will represent an RS-232 style output from the decoder with the equivalent input to an encoder. Such information service transport packets would be multiplexed with MPEG audio and video packets in a final multiplexing transmitted, for example, via satellite or cable. It would also be advantageous to conduct "isochronous" data using an MPEG-2 type format. Isochronous data is high-speed data provided at the edges of a regular clock and is distinguished from the
"Synchronous" burst data that can arrive with an irregular clock. In this way, the isochronous data contains an unstable specification and the clock can be restored with a simple synchronized phase network (PLL). In general, an isochronous data component is one in which the data bits are presented in essentially irregular proportions, with an accompanying clock. Any deviation from the regular (isochronous) speed will be defined by the unstable specification. Such data can be used for any number of a wide range of "coaxial data cables" applications. An example is the transport of the contents of a digital data stream (ie, telephone data line) TI. Such data streams operate at 1,554 Mbps. Other applications include, but are not limited to, data network business communications general data at high speed, and virtually any other data service requiring proportions data transmission with constant delay that exceed those generally available using Asynchronous communication techniques or are not appropriate for a variable delay. These applications are characterized by a general intolerance of "bit notes". That is, errors are tolerated, but resynchronization involving net displacements of the bit stream causes large interruptions to the
last data synchronization. In the MPEG-2 standard, the presentation timestamps are only able to indicate instances display unit (ie, bytes of 8-bit data "presented" to the decoder) with a resolution of 11.1 microseconds. This limitation results from the speed of 90 KHz established by the upper bits of the PCR count used to produce the presentation time stamps. With high speed isochronous data, it may be necessary to resolve the times of the presentation unit with a higher resolution, especially for error recovery purposes. Specifically, it is necessary to be able to present presentation units unambiguously in time to support the continuously variable proportions. Accordingly, it would be advantageous to increase the time resolution of the presentation time stamps over that provided by an MPEG-2 standard implementation. For example, it would be advantageous to provide a scheme for increasing the time resolution of PTS to allow the solid transport of isochronous data or the like at rates of up to 9.0 Mbps or more. It would further be advantageous to provide a scheme for simplifying a data receiver in order to provide the appropriate clock rates based on a frequency
of system clock, in order to recover the data from a data stream. In particular, it would be advantageous to provide a scheme in which the receiver would be able to provide a clock at any desired information data rate from, for example, 19.2 kbps up to 9 Mbps to be used in the transmission of isochronous information data, through of direct digital synthesis (DDS). It would further be advantageous to provide a method and apparatus for handling the unavoidable errors that occur in the transmission of isochronous data through a packetized transport stream. In particular, it would be desirable to maintain the synchronization of input isodata despite the occurrence of errors and for as long as error recovery was on track. In addition, isodates will typically flow through a buffer in a decoder that retrieves the isodates from the transmission stream. It would be advantageous to maintain the entire buffer during error recovery to avoid failure of the data recovery process due to an overflow or subflow of the buffer. After the data is lost due to errors, it would be advantageous to have a mechanism to verify and restore the synchronization in which they are presented
successfully retrieved isodates as they are issued from the isodata decoder, and to absorb synchronization errors caused by the lost data. Improved methods to detect the appearance of lost data would also be desirable. Additional provisions would also be advantageous to ensure the resumption of data presentation at the correct exit time. Furthermore, it would be advantageous to provide a scheme for overcoming the uncertainties in the contents of data packets in the event that the packets contain encrypted data after any description thereof has been completed. The present invention provides methods and apparatus for detecting and recovering errors in the processing of isodates in a decoder, which methods and apparatus enjoy the above-mentioned and other advantages. SUMMARY OF THE INVENTION In accordance with the present invention, there is provided a method for handling errors in isochronous data received in bursts from a packetized data stream containing isodata display units in fixed length isodates transport packets. Each of the transport packages includes a package identifier (PID). To the
less some of the packages contain a presentation time stamp (PTS) indicative of a time to begin the fixed rate presentation of isodata presentation units from a buffer in which they are stored temporarily after reception. The data stream is monitored to detect the PIDs that identify the isodata transport packets. The isodata transport packets identified by said PIDs are monitored to locate the isodata PTSs. The presentation of said presentation units from said buffer is synchronized with a system time clock
(STC) that uses synchronization information derived from the localized isodatos PTSs. The discontinuity errors are identified among the successive of said isodata transport packets and, if a discontinuity of no more than one packet is identified, a write flag of said buffer is advanced by an appropriate number of bits to compensate for the discontinuity. , while maintaining the synchronization of said presentation with respect to said STC. PTS pointers are provided, first and second, each to maintain a different PTS value and to direct the buffer to identify where a presentation unit referred to by
the value of PTS. The synchronization of said presentation is maintained by (i) replacing the PTS value and addressing one of the PTS pointers with a new PTS value and a new address after the data stored in the address, associated with the replaced value , have been presented from said buffer, (ii) when the new address is reached, suspend the presentation of data from the buffer if the STC is not equal to a presentation time derived from said new value of PTS, and (iii) if the presentation has been suspended, restart the presentation of data from the buffer when the STC reaches the presentation time derived from the new PTS value. The new PTS values can be received over time from the data transport packets. In such a mode, a determination is made as to whether both PTS flags contain PTS values that have not yet been used to present data from said buffer when a new PTS value is received. If so, the PTS value and the associated address in the most recently updated PTS flag is replaced with the new PTS value and a new address, thereby maintaining the oldest unused PTS value and the address to be used in the synchronization of the presentation of units of
presentation from said intermediate memory. In another embodiment, a PTS flag is provided to maintain a current PTS value together with an address of said buffer that identifies where a presentation unit referred by said current PTS value is stored. Presentation synchronization is maintained by the additional steps of (i) replacing the PTS value in the PTS flag with a new current PTS value after the data stored in that address has been presented from said buffer , (ii) replace said address in the PTS flag with a new address corresponding to a presentation unit referred to by the new current PTS value, (iii) when said new address is reached, suspend the presentation of data from said memory. intermediate if said STC is not equal to a presentation time derived from said new value of the current PTS, and (iv) if the presentation has been suspended, restart the presentation of data from said buffer when the STC reaches the presentation time derived from said new value of current PTS. The presentation units contained by the packet data stream can be supplied by elementary current packets (PES) that
they contain the presentation units together with the information indicative of the length of each PES package. In such a mode, a determination is made as to whether a quantity of data from the presentation unit actually received for a given PES packet differs from a quantity of data that must be received as indicated by the PES packet length information. An error is indicated if the quantities compared do not match. In the case of such an error, the PTS flag is cleared. The presentation of data from the buffer also temporarily stops if the data of the additional presentation unit continues to arrive in the absence of a new PES packet indicator after the PES packet length information indicates that they have provided all the data for the given PES package. The presentation of data from the buffer memory will restart, based on a new PTS value provided in the PTS flag, after the PTS flag has been cleared. A PTS extension can be retrieved from identified isodata transport packets to allow the time resolution to be increased to present isodata presentation units. In this case, the synchronization information can be determined by adding at least said PTS and said PTS extension. The
synchronization information may alternatively be derived from the sum of said PTS, said extension of PTS, and a displacement value of PTS used to provide a time delay. The synchronization information can be compared with the STC to determine whether the presentation units are too early to present, too late to present themselves, or are ready to be presented from the buffer. Filler bits are provided as output until it is time to present the presentation units if the comparison determines that the presentation units are too early to be presented. The presentation of the presentation units from the buffer is resynchronized if the comparison stage determines that the presentation units will be presented too late. Presentation units are presented from the buffer if the comparison stage determines that they are ready to be presented. The synchronization of the presentation of the presentation units with the system time clock can be done by comparing the STC with the synchronization information derived from the PTSs. The filler bits can then be provided as output until it is time to present said presentation units if
said comparison determines that said presentation units are too early to be presented. As indicated above, the synchronization information may comprise the sum of at least one PTS and a PTS extension that allows the time resolution to be increased to present the isodata display units. Fill bits are provided as output until a time designated by the STC equals the time designated by that sum. Alternatively, the synchronization information may comprise the sum of said PTS, said PTS extension, and a PTS offset value used to provide a time delay. Each presentation unit may comprise an integer N of isodata bits. A count of N bits is maintained, which correlates with the presentation of a first presentation unit from the buffer. Filling bits are continuously provided as output after the STC equals the time designated by that sum until the N-bit count indicates that it is time to begin the presentation of a new display unit. The isodata transport packets identified by the PIDs can be monitored to determine if any of them is designed to be
encrypted after any encryption must have been removed. If only a single packet is designed to be encrypted after any encryption must have been removed, a buffer write-writer advances an adequate number of bits to ignore the single packet. The synchronization of said presentation is maintained with respect to the STC during this procedure. A decoder is provided for receiving and handling errors in isochronous data received in bursts from a packetized data stream containing isodata display units in fixed length isodates transport packets. Each of the transport packets includes a packet identifier (PID) and at least some of the packets contain a presentation time stamp (PTS) indicative of a time to begin the fixed speed presentation of isodata presentation units from of a buffer in which they are temporarily stored after their reception. Means are provided for monitoring the data stream in order to detect the PIDs that identify said isodata transport packets. Means are also provided for monitoring the isodata transport packets identified by said PIDs to locate isodata PTSs. The presentation of said
display units from said buffer is synchronized with a system time clock (STC) which uses the synchronization information derived from the localized isodatos PTSs. Means are provided for identifying discontinuity errors between successive said isodatos transport packets and, if a discontinuity of no more than one packet is identified, a write buffer of said buffer is advanced in an appropriate number of bits to compensate the discontinuity, while maintaining the synchronization of said presentation with respect to said STC. The decoder may also incorporate the other error handling features of the methods described above. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a schematic illustration showing how the elementary stream data is packaged in transport packets; Figure 2 illustrates the PES and isochronous data headings referred to in Figure 1, in greater detail; Figure 3 is a block diagram of the coding apparatus for assembling the transport packets referred to in Figure 1;
Figure 4 is a block diagram of the decoding apparatus for recovering the isochronous data contained by the transport packets; Figure 5 is a block diagram showing portions of Figure 4 in greater detail; and Figure 6 is a state diagram illustrating the acquisition and tracking of isochronous data in accordance with the present invention. DETAILED DESCRIPTION OF THE INVENTION Figure 1 is a schematic illustration showing how the different digital service components can be multiplexed into a stream of transport packets. The multiplexing is carried out by packaging unprocessed elementary streams such as a video encoded, audio and video in PES packets and then encapsulating these in transport packets. The figure is only illustrative, since a packet of PES, such as pack 12 illustrated, can be translated into more or less than seven transport packets 22a-22g illustrated. In the example of Figure 1, a generally designated elementary stream 10 comprises a serial stream of data bits, such as the isochronous data shown. It should be appreciated that other types of data may be provided in the elementary stream for transmission in accordance with the present invention. The
Similar elementary streams will be provided for compressed audio and video data in accordance with the MPEG-2 transport standard. The first step in the formation of a stream of transport packets is to encapsulate the elementary stream for each type of data in a corresponding packed elementary stream (PES) formed from successive PES packets, such as pack 12 illustrated. Each PES packet contains a PES header 14 followed by a PES payload containing an integer number of presentation units (PU) 18. The payload comprises the last information that is to be communicated from a transmission site to your recovery at a receiving site. The PES 14 header contains useful information in the payload data processing, such as the presentation time stamp (PTS) according to the MPEG-2 system specification. According to the present invention, an isochronous data encasement (ISO header) 16 follows the header of PES 14 as part of the payload of the PES packet. The presentation units 18 of the payload follow the ISO heading 16. The ISO heading is described in more detail below. The heading and payload data
from each PES packet is divided into individual fixed-length transport packets 22, 24, 26, each containing a transport header 30 and payload data 36. The payload data of each transport packet will contain a portion of the payload data (ie, the presentation units 18) of the corresponding PES pack 12 and may also contain the PES header 14 and the ISO 16 header, as illustrated in 22a. The transport packet 22d is another isochronous data transport packet in the transport packet multiplex 20. This transport packet includes a transport header 30 as well as a payload 36. The payload does not include a PES header or header ISO because this transport packet is derived from the payload data that is subsequent to the PES header and to the ISO header in the PES package. In other words, since there is only one PES header and one ISO header per PES packet, only the first transport packet derived from that PES packet will contain the PES header and the ISO header. The payload segments of the remaining transport packets derived from the PES packet will contain only portions of the actual information data to be transmitted.
According to the MPEG-2 system specification, the headers of the transport packet 30 will contain the program identifier (PID) which distinguishes each stream of transport packets, such as an isochronous data packet stream, a packet stream of video, or an audio packet stream, coming from other packet streams. In Figure 1, only the derivation of the isochronous data transport packets 22 is shown. In order to derive video packets 24 and audio packets 26, the corresponding elementary streams are provided
(not shown) that are encapsulated in packets of PES and transport packets in essentially the same manner illustrated in Figure 1 with respect to the formation of isochronous data packets 22, except that the isochronous data header 16 of the present invention it is not provided in the audio or video transport packages. Each MPEG transport packet contains 188 data bytes, formed from the transport header 30 of at least four bytes and payload data 36, which can be up to 184 bytes. According to the MPEG-2 system specification, an adaptation field of, for example, eight bytes, may be provided between the transport header 30 and
the payload 36. The variable length adaptation field may contain, for example, the program clock reference (PCR) used for the synchronization of the decoder system time clock. The plurality of isochronous data packets 22a,
22b, 22c ... 22g ..., and other packets 24a-f ... and 26a-f ... are multiplexed as illustrated in Fig. 1 to form the transport stream 20 that communicates over the channel communication from the encoder to the decoder. The purpose of the decoder is to demultiplex the different types of transport packets from the transport stream, based on the PIDs of the individual packets, and then selectively process each of the isochronous data, audio and video components to be used in the reconstruction of a television signal and in the recovery of a data stream represented by isochronous data. Figure 2 illustrates the PES 14 header and the ISO 16 header in more detail. The header of PES 14 includes information of various lengths and structure 50 according to the MPEG-2 system specification. An optional PTS field 52 may follow the length and structure information 50. In the case that a PTS is provided, an extension of PTS of
counterpart is provided in the ISO header 16. As illustrated in FIG. 2, the PTS extension 54 is preferably provided at the beginning of the ISO header 16 such that it immediately follows the PTS 52 in the PES header. However, the present invention is not limited to providing the PTS extension at the beginning of the ISO header. The PTS extension can be provided anywhere in the ISO header, as long as it can be detected in the decoder to be used in its annex to the PTS in order to extend the time resolution to present the isochronous data at the decoder output. By providing eight additional bits, for example, in the PTS extension by being added to the thirty-three bits provided in the PTS specified in the MPEG system specification, the resolution of the MPEG-2 standard of 11.1 microseconds can be extended to 74. nanoseconds for unambiguous determination of the correct start time of the presentation unit referred by an extended PTS of isochronous data. The ISO header also includes various information on speed, length and increment 56. More particularly, the information of speed, length and increment will include a data rate indicator, a header length field of isochronous data, and
an increment field that specifies a relation of the information data rate (for example, the isochronous data rate) and the system clock frequency. This clock increment value allows a direct digital synthesis clock in a decoder to provide a clock signal in the information data rate to be used in the transmission of information data contained by a data transport stream in accordance with the present invention. In a preferred embodiment of the invention, each isochronous data display unit 18 (Fig. 1) is sixteen bits long, that is, an eight-bit two-byte word. The isochronous data is aligned with the PES syntax since the first byte of the isochronous data header immediately follows the last byte of the PES header. Also, the isochronous data display units are aligned with the PES syntax since the first byte of the first presentation unit in a given PES packet immediately follows the last byte of the isochronous data header. The isochronous data presentation units are aligned with the payloads of the transport packet in such a way that the first payload byte of an isochronous data transport packet is the first byte of an isochronous data display unit (after
any adaptation, PES header and isochronous data header fields). The last byte of an isochronous data transport packet is the last byte of an isochronous data presentation unit. The isochronous data syntax according to the present invention is described below using the formal grammar used by the MPEG-2 system specification. MPEG grammar is a syntax similar to the C language and is a method to describe continuous and possibly variable rate bit streams, instead of specifying a procedure program and it works as in the C language of the computer. The first column of the syntax contains the syntax element. The second column gives the length of the syntax element in bits and the third column identifies the type of syntax. The types are bslbf (first bit left to the left of the bit sequence) and uimsbf (first most significant bit without signal). The notation
"isochronous_data_header () { ....}." indicates that the syntax elements within the brackets are a named set and can be invoked anywhere in the syntax by simply using the designation "isochronous_data_header ()". A conditional occurrence of bit structures can be indicated with the normal "if" tests. The relationship operators used well
known in the C language are also available. Cycle structures are possible and use the standard cycle syntax C. The syntax table is accompanied by a set of semantics, which provide definitions for each field of previously undefined syntax and place constraints on its use. The following syntax of the bit stream of isochronous and semantic data of the bit stream represents a preferred embodiment of the present invention:
Isochronous Data Sequence: Syntax No. Nemotécnico: De Bits: isochronous_data_sequence. { Isochronous_data_header (). { for (i = 0; i> N; i ++). { Isochronous_data_presentation_unit 16 bslbf
} } Isochronous Data Header: To constrain each sequence of isochronous data to an even number of bytes, the last reserved field in the isochronous data header is specified to be an even number of bytes. The syntax for isochronous data headers is:
Syntax No. Binary Nemotécnico: isochronous_data_header. { pts_ext8 8 bslbf data_rate_flag 1 bslbf reserved 3 bslbf isochronous_data_header_length 4 uinmsbf if (data_rate_flag). { reserved bslbf increment uimsbf
} reserved bslbf
}
Semantics of the Isochronous Data Bitstream: Isochronous Data Sequence: Isochronous_data_presentation_unit - A 16-bit presentation unit of isochronous data where the first bit (on the left) is presented (emits) before the second bit, etc. Isochronous Data Header: pts_ext8 - An 8-bit field that extends the PTS transferred in the PES header of this PES. This field is the 8 most significant bits of the 9-bit PCR extension defined in the MPEG-2 system specification, and is used in accordance with the present invention to extend the time resolution of PTSs of
Isochronous data from the resolution of 11.1 moseosecond (90 KHz) of the specification of MPEG-2 systems up to 74 nanoseconds (13.5 MHz) for the unambiguous determination of the correct start time of the presentation unit referred to by a PTS of isochronous data . data_rate_flag - A one-bit indicator which, when set to "1", indicates that an increment field is presented in the isochronous data header. isochronous_data_header_length - A 4-bit field that indicates the number of words (16 bits) of the isochronous data header that follows this field, including reserved words, (16-bit units force the isochronous data header to be an even number of bytes that, coupled with isochronous data display units, adaptation fields and a PES header that are also of an even number of bytes, allow isochronous data transport packets to be generated without any pad bytes and therefore of greater efficiency). increment - A 28-bit field that indicates the value of the isochronous data clock increment and takes a value that describes the exact ratio of the isochronous data rate and a phase reference clock
synchronized, for example, a MPEG-2 reference of 27 MHz. In a preferred embodiment, the increment is: increment = NINT (isochronous data rate * 536, 868, O00 / nominal_system_clock_frecuency); where: nominal_system_clock_frecuency is specified by MPEG as 27 MHz and "NINT" means "closest integer". As noted above, MPEG allows a variability of 30 PPM from the nominal system clock frequency. reserved - A field of n bits of reserved words of which the decoder assumes no particular value. The block diagram of Figure 3 illustrates a possible encoder for implementing the present invention. The isochronous data (for example, of the elementary stream 10 - figure 1) are input through the terminal 60 in a header insertion step 62 that inserts the data required to assemble the ISO 16 header. This data is obtained, for example, of a system microprocessor, not shown. The isodate with the inserted ISO header is received by a PES packing stage 66 that inserts the PES header 14 that has been assembled from the PES header data entry through terminal 68. As with the ISO header data , the PES header data
they may be obtained from a system microprocessor or other data source as is well known in the art. An isochronous data clock signal is input through the terminal 65 to a synchronized phase network (PLL) 67 of the encoder of FIG. 3. The PLL may comprise, for example, a 27 MHz oscillator and a DDS circuit. to block the input clock signal, using the closest increment value as calculated above. The PCR values are entered as transport adaptation data in a transport packet packer 70, described in more detail below. Once the ISO header and the PES header have been inserted into the elementary stream of isochronous data, the subsequent payload data, inputted through terminal 60, is segmented to follow the headers in the form of units of Fixed length display 18. The result is a succession of PES packets 12 that are issued from the PES packer 66 to the packet packer transport stage 70. At this point, the data needed to assemble the transport header is received through terminal 72 is a conventional way and they are assembled in a transport header, to which are added the payload data of
counterpart the payload data comprise the following data portion (ie, the PES header data, the ISO heading data and / or the presentation units) from the current PES package (s) (s). The output of the packer 70 is a series of isochronous data transport packets 22 which will each comprise a transport header and a payload and may or may not include a PES header and isochronous data header information as part of the load Useful. The isochronous data transport packets from packer 70 can be multiplexed with compressed audio packets and video packets introduced into a multiplexer 74 through terminals 76 and 78, respectively. The audio and video packages are provided in accordance with the MPEG-2 system specification, as is well known in the art. The multiplexer 74 assembles the transport packets in a stream of transport packets 20 (as shown in Figure 1). The transport packet stream is modulated in a conventional modulator 80 and transmitted by a conventional transmitter 82 through a satellite, cable or other known communication channel. Figure 4 illustrates a receiver (decoder) for the transmission multiplex issued from the
encoder of Figure 3. The transmission multiplex is inserted into a receiver 92 through the terminal 90, and is demodulated in a conventional demodulator 94. A demultiplexer 96 retrieves the audio packets, the video packets and the data packets Isochronous from the stream of demodulated transport packets. The isochronous data packets are input to an encapsulation processor 98 which may comprise a conventional microprocessor programmed to retrieve the PES header and the ISO header of the isochronous data packet stream. The PTS is extracted from the PES header in a PTS extraction stage 102. The PTS extension is extracted from the ISO header by a PTS 104 extension extraction stage. The PTS and the PTS extension are combined in a combiner 106 to provide the PTSs of isochronous data that allow high-speed isochronous data to be presented accurately in time. A PTS decoder 108 extracts the synchronization information from the extended PTSs of isochronous data output from the combiner 106. This synchronization information is input to an isochronous data extractor 110 which also receives the isochronous data packets from the demultiplexer 96. The system synchronization information from the
header processor 98 allows extraction steps 102, 104, PTS decoder 108 and isochronous data extractor 110 to be properly located and processed for the data presented in each stage. The isodata extractor 110 responds to the PTSs from the PTS decoder 108 in order to present the individual isochronous data display units (the recovered "isodata") at the appropriate time. The presented isodatos are emitted from the isodatos extractor 110 to be used in the speed of a desired service based on the information incorporated in the data. The decoder of Figure 4 also includes a DDS clock 100 which is used to provide a plurality of reference clock proportions used by the header processor and / or other decoder components. The system synchronization emitted from the header processor 98 is based on one or more of the reference clock proportions provided by the DDS clock. These reference clock ratios are based on a system clock frequency, for example, the system clock frequency of 27 MHz set in the specification of MPEG-2 systems. In order to process the PCRs in order to generate the system clock frequency
for use by the DDS, the decoder includes a PCR 97 parser that extracts PCR values from the isochronous data transport packets. The extracted PCR values are used to block a synchronized phase network 99 that generates the system clock (for example, 27 MHz). The system clock is input to the DDS clock 100 for use in the generation of reference clock ratios described above. In order to simplify the decoder, a clock "increment" is provided in the isochronous data header to specify the ratio of the isochronous data rate and the system clock frequency. This increment is recovered by the header processor 98 and input to the DDS clock 100, which uses the increment to provide a clock signal at the isochronous data rate to be used in the presentation of isochronous data. The proportion of a clock increment in the isochronous data header obviates the need for the decoder to calculate this increment on its own. In conventional systems using a direct digital synthesis clock, the decoder receives a required clock frequency indicator with the data to be recovered. The clock frequency indicator specifies the actual clock frequency that is
synthesized by the DDS clock. Since the DDS clock graduates an existing system clock in order to produce various f clock frequencies, conventional decoders must first determine the ratio of the desired clock frequency and the clock frequency of the system from which it is about to be derived. the desired clock frequency. The processing hardware necessary to carry out this function adds cost and complexity to the decoder. In a digital television set-top box, the cost should be kept to a minimum since it would require a separate set-top box for each of the millions of potential televisions in the field. By providing the decoder with an increment that can be used directly by the DDS clock to produce the desired frequency, the complexity and cost of the receiver is reduced. In the system of the present invention, the calculation of the increment necessary to provide the desired frequency is done centrally in the encoder, which serves the millions of decoders in the field. Therefore, decoders do not need to perform this calculation. Figure 5 illustrates the combiner 106, the PTS decoder 108, and the isodata puller 110 of Figure 4 in greater detail. The isodata packages
detected by their PIDs in an input data stream, they are input to the header processor 98 and a header separator 150 via a terminal 112. The header separator 150 is part of the isodata puller 110, and separates the headings transport, PES and isodata of the received packets so that only the presentation units (PUs) are provided as output to a register of first-entries-first-outputs (FIFO) 152. The FIFO 152 stores in the buffer PUs according to the invention so that the synchronization and recovery of appropriate errors can be carried out. The FIFO can be implemented using a series of FIFOs, such as a pre-DRAM FIFO, a DRAM FIFO, and a post-DRAM FIFO. In such an implementation, references herein for reading the FIFO of isodates endorse the last used FIFO, for example, a post-DRAM FIFO. A read flag 154 and a write flag 156 are provided to control the writing of data in and the reading of data from the FIFO 152. The write flag 156 is synchronized with a FIFO clock through the terminal 182. A Detailed description of the operation of the buffer is given below in connection with the description of figure 6.
The presentation units of the FIFO 152 are provided as output to a synchronization circuit of the display unit 158. This circuit synchronizes the data of the display unit with the system time clock (STC) 162. A data clock 160, which operates at the f speed at which the isodates were finally outputted, is coupled to the synchronization circuit of the presentation unit 158 and to a counter of the presentation unit 164. This installation is used to ensure that the presentation of Isodatos from the FIFO starts at the first bit of a presentation unit. The data presented from the FIFO is input to a filler bit multiplexer (MUX) 166, which is used to provide filler bits when it is necessary to recover errors occurring in the input data stream. The output of the padding multiplexer 166 comprises the recovered isodata which may include padding bits instead of corrupted or missing data. The synchronization circuit of the presentation unit 158 also receives necessary flag values and the correct presentation time of the PTS decoder 108. In FIG. 5, the functions of the PTS decoder 108 are grouped together with the functions of the combiner 106. As noted above in
In connection with Figure 4, combiner 106 provides the PTSs of isochronous data that allow high-speed isochronous data to be presented accurately in time. The circuits 106 and 108 comprise a PES length counter 170 and a PES length comparison circuit to determine if the length of each received PES packet corresponds to the designated length for that packet in the corresponding PES header. The PES length value extracted from the PES header is supplied to the PES 172 length-length matching circuit by the header processor 98. The PES length counter 170 receives the FIFO clock through the terminal 184 , and determines the length of each PES received by quantifying the bytes contained therein, one byte per FIFO clock cycle. The length counter PES 170 receives the information designating the start of each new PES packet from the header processor 98, and in turn supplies the counted length for each PES packet to the PES 172 length comparison circuit through the line 175. In the event that the length counted does not match the length of PES indicated in the PES header, a PES length error indicator is generated. Others
Error indicators, which are generated by the header processor 98, include an error indicator of the encrypted packet and a discontinuity indicator. An isochronous data microprocessor (not shown) receives the various error indicators and provides control signals to respond to the error conditions. These error indicators are discussed in more detail below. The function of combining the PTS and the PTS extension is provided by a PTS pointing manager 174. The PTSs and the PTS extensions are carried in some of the isodata headers detected by the header processor 98, which passes these values to the pointing manager. The pointing manager stores the PTS and PTS extension values in new and old pointing registers 176, 178, respectively. The combined oldest value is issued to the presentation time calculator 180 to be used in the calculation of the time in which the isodata display units are about to begin to be presented from the isodata extractor 110. The write flag 156 keeps the pointing administrator as to the most recently written FIFO address, so that the pointing administrator can supply the FIFO address value of each PTS flag.
The offset value of PTS is provided to the presentation time calculator 180 through terminal 186. This offset value provides any time delay that is necessary to absorb the recoverable transport synchronization errors. More particularly, the offset allows the FIFO to collect enough data to output a continuous stream of data despite the allowable STC error by the MPEG specification and the transient behavior of the STC trace cycle of the decoder, and allows the FIFO to accumulate a quantity of data necessary to survive the loss of a packet without negative overflow. Returning now to the state diagram of Figure 6, the isodata processing starts at 120 when the system is reset. The isodata emission mode is triestablece and the isodata PID will be set as invalid at zeroing. It then begins a start sequence during which the isodata PID is programmed to the PID of the isodata service component before establishing the isodata PID as valid. When the isodata PID is written, the FIFO of isodates 152 will flow and both PTS flags 176 and 178 will be cleared. The FIFO can flow by simply setting the read and write pointers 154, 156
in the same direction and clear any pre and post FIFO. A PTS flag can be cleared by simply resetting its in-use flag. When the isodata PID is set to valid, the isodata output mode will be set to muted_clock_and_data and acquisition will begin. In the event that the isodata PID returns to the invalid state, the isodata output mode will be set to muted_clock_and_data (if it is not yet ready in this state) and the start sequence will start again. If the isodata output mode is set to muted_data, the isodata processing will continue as normal, and it will not necessarily return to the start state. The acquisition status starts at 124 when receiving the isodata transport packets in the isodata PID and waiting for a packet with its payload_unit_start_indicator to be established (indicating that a PES starts with the first byte of the payload of the packet). The isodata header will be analyzed syntactically, to find a data_rate_flag that is established and to find and record the data clock increment value, if it is presented. If the data_rate_flag is set, the increment value will be stored in a register and the system microprocessor will be interrupted to indicate that the increment value has been received in the isodata PID. The process of
The search for the increment value in each isodatos header will continue until the increment value is received. The processing will then proceed to the establishment wait state 126. At this point, once the increment value is in the record, the processing will wait until a record indicator is established indicating that the acquisition of isodates is about to proceed. . The acquisition will then continue after the microprocessor has verified that a PCR has been received (for example, in the isodata PCR PID), any necessary data module and increment registration have been programmed, and the registration of the data has been programmed. data_PTS_offset. The acquisition status of PTS 128 is then entered. In the PTS acquisition state, the isodata output mode is set to muted_clock_and_data. The receipt of isodata transport packets is then terminated and a PES header search containing a PTS begins. No isodata presentation unit is written to the FIFO while it is in this state. To assist in the detection of errors, each byte of received payload in the isodata PID is quantified for comparison with the PES length indicated in each
PES heading. In this way, as each PES start is received, the PES length is stored in the PES 170 counter. This counter is decreased by one as each PES byte is analyzed syntactically. When a PTS is received, the PTS value is stored in one of the two PTS pointing registers 176, 178. The syntactic analysis of the isodata header (which must come out in this same package) then proceeds and the pts_ext8 is retrieved and it is stored with the PTS that was written in the PTS signaling record in the previous stage. The processing then proceeds by writing all of the presentation units in this package to the FIFO 152 and also storing the FIFO address in which the first presentation unit is stored. This FIFO address must be stored with the PTS and the pts_ext8 written to the PTS pointing record during the previous stages, and then the particular PTS pointing record will be marked as "in-use". Once the PTS is received with the corresponding data presentation unit, the synchronizer of the presentation unit 158 will begin to wait for the synchronization of the PTS as shown at 130. This will consist in maintaining the output mode of isodatos in muted_clock_and_data until the STC 162 equals the value of PTS + pts_ext8 + data_PTS_offset supplied by the
display time calculator 180. When this instant occurs, the display unit counter 164 (which is a 4-bit counter incriminated by isodates clock 160) is set to the value 810 (10002). This prepares the synchronizer of the pre-presentation unit to begin the emission of the first bit of the presentation unit when the counter of the presentation unit reaches 0? 0 (00002). This process of setting the presentation unit counter to 810 will only be executed when the acquisition status has been entered since the last status of PTS_Sync was entered. Once the counter of the presentation unit reaches 010, the isodata output mode is set to not muted and the presentation of the isodates from the FIFO 152 starts with the first bit of the prestation unit in the header of the FIFO The presentation continues with the FIFO emitting a bit of isodates per clock of isodates. If at any time, while waiting for PTS synchronization, the STC is greater than PTS + pts_ext8 + data_PTS_offset, the processing will be interrupted, the FIFO will flow, the PTS pointers will be cleared and the acquisition state 124 will start again. While waiting for PTS synchronization (STC = PTS + ext8 pts + data PTS offset), the reception and
processing of packages will continue. The presentation units of each package will be placed in the FIFO, but the isodata header will not. Also, while in this state, when a PTS is received, the PTS value will be stored in the second PTS signaling register together with the pts_ext8 and the FIFO address associated therewith. If, when a PTS is received, both PTS pointing records are busy, the new PTS pointing device will be overwritten to the most recently written PTS pointing device (the newest PTS pointing device). Once the isodata output is started, the trace is started as indicated at 132. In this state, the data will continue to be shown from FIFO 152 on the isodata clock 160 speed. Also, the transport packets of isodatos will continue to be processed, writing each presentation unit in the FIFO, and storing PTS spreadsheets. In case the FIFO of isodates is complete when a presentation unit needs to be stored (FIFO overflow), the process will be interrupted, the FIFO will flow, the PTS pointers will be cleared, and the acquisition status of the PTS 128 will be returned after setting the isodata output mode in muted_data. In the case that the FIFO of isodatos is empty
when a presentation unit needs to be issued (FIFO overflow), processing will be interrupted, the FIFO will flow, the PTS pointers will be cleared, and the PTS 128 acquisition status will be returned after the establishment of the isodata output mode in muted_data . A field included in each isodata transport packet is a field that contains two transport_scrambling control bits, which indicate whether the data in the transport packet is encrypted. When an isodata transport packet is received with its transport_scrambling_control bits set to anything other than not_scrambled, this condition will be treated identically to the receipt of an isodata transport packet that has its transport_error indicator set. Transport packages also contain a continuity counter. When an isodata transport packet is received with its continuity_counter different from the continuity_counter value of the last received packet plus a module 16 (packet discontinuity error), the following steps are taken: 1. If the discontinuity indicates that a received redundant package, the redundant package will be discarded.
2. If the discontinuity indicates that two or more packets were lost, the PTS flags will be cleared, the isodata output mode will be set to muted data, and5 will return to the state of acquisition of PTS 128. 3. If the discontinuity indicates that a packet was lost, then: A. If the PES counter indicates 184 or more? Or remaining bytes to be received for the current PES, the counter of PES will be decreased by 184 and the FIFO writing flag will be advanced by 184 byte addresses (92 words)
to effectively insert the 184 bytes in the FIFO to compensate for the payload of the lost packet. It should be noted that when the number of bytes lost with a missing packet
is less than the number of bytes inserted in the FIFO, it is likely that the FIFO will overflow. B. If the PES counter indicates exactly zero remaining bytes per
received for the current PES, the
PES counter will be set to the value of the previous PES_packet_length, the PES counter will be incremented by 178 and the FIFO write flag will be advanced by 164 byte addresses. When the number of bytes lost with a missing packet is less than the number of bytes inserted in the FIFO, it is possible that the FIFO will overflow. C. if the PES counter indicates N (between one and 183) remaining inclusive bytes, by being received for the current PES, the PES counter will be decremented by N and the FIFO write flag will be advanced by N byte addresses to effectively inserting N bytes into the FIFO to compensate for the payload of the lost packet. When the number of bytes lost with a missing packet is less than the number of bytes inserted in the FIFO, it is possible that the FIFO will overflow. As the PES data is analyzed syntactically, the value of the PES counter would be
monitored If a PES byte is analyzed syntactically when the PES counter is zero (before decreasing the counter to count the current PES byte), and this byte is not the first byte of a new PES, too many bytes were written to the FIFO due to the loss of one or more previous transport packages. When this occurs, the process will stop the writing of the isodata presentation units to the FIFO beginning with the current byte and having to return to the PTS acquisition state after the FIFOc flow and clear the PTS signaling devices. After each presentation unit of the FIFO is removed, the process detects when the FIFO read flag equals the DRAM address of the oldest PTS flag. When this occurs the synchronization is verified as follows: If the STC is less than PTS + pts_ext8 + data_PTS_offset of the corresponding PTS flag, as will be the case when isodates are lost, the padding bits (for example, zeros) will be issued for isodates up to STC = PTS_ + pts_ext8 + data_PTS_offset. At this time, the filler bits will continue to be output as isodates until the unit counter
presentation equal 010 (00002). When this occurs, the reading of isodata presentation units from the FIFO will be completed and these data will be presented as isodata. If the STC is greater than or equal to the PTS_ pts_ext8 + data_PTS_offset of the corresponding PTS flag, normal processing of isodates will continue. During the isodata processing, synchronization will be monitored as follows: Yes, during the time interval that the counter of the presentation unit is first equaled to zero after the STC = PTS + pts_ext8 + data_PTS_offset of a PTS flag, the read flag "of the FIFO does not equal the address of the FIFO of the corresponding PTS flag, the processing will be interrupted (late error of FIFO output) and the input acquisition state 124 will be entered again. In a preferred implementation of the process described above, the following specifications are used: data_PTS_offset - a value of 13 bits that represents the number of PTS clock passwords that are added to each
value of PTS and value of pts_ext8 to control the time delay applied to isodates. This value has units of 11.1 μsec and allows the isodates to be delayed as much as 90.9 milliseconds. PTS Pointer - Each PTS flag will include the following fields, allowing a particular presentation unit in the FIFO to be signaled and allowing the time, in which it is presented, to be stored with a resolution of 74 nanoseconds. • PTS - A 16-bit field with 11.1 μsec units that stores the last 16 significant bits of the PTSs of the corresponding presentation unit. The 16 bits allow the isodates to remain in the FIFO as much as 727.4 milliseconds. • PTS_Ext8 - An 8-bit field with 74 nanosecond units that stores the upper 8 bits of the 9-bit pcr_extension specified by MPEG in Generi c
Coding of Moving Pictures and Associated Audi or
(Generic Coding of Moving Images and Associated Audio), International Standards Organization, ISO / IEC 13818-1, Systems International Standard, November, 1994. This field corresponds to the time stamp of the presentation unit and extends the resolution of time of the
Isodata time stamps beyond the norm of 11.1 μsec specified by MPEG at 74 nanoseconds. • DRAM Offset Address - A DRAM word offset address of 12 bits in relation to the base address of the isodates that points to the DRAM word of the FIFO in which the corresponding presentation unit is stored. The 12 bits allow the FIFO to be as large as 4096 words. • in use Flag - A one-bit indicator allows you to determine the status of a PTS flag. When set, this indicator indicates that the PTS flag is in use in that which contains a valid set of values. Each flag will have this indicator cleared after a reset of the isodata process. PTS Pointer Maintenance The two PTS tally recorders 176, 178 are maintained as follows: I. After resetting, all in-use PTS loggers indicate that they are reset (set not in use). II. As a PTS value is received, the PTS value in the PES header is stored in the PTS field of the OLD PTS pointing logger.
III. The pts_ext8 field is parsed later from the isodata header and stored in the pts_ext8 field of the OLD PTS tally logger. 5 IV. After a new PTS value is stored in a pointing register, the isodata processing continues. If the next presentation unit is received and written to the FIFO correctly, the
The direction of travel of the DRAM corresponding to the address of the FIFO that holds the first byte of the presentation unit is stored in the address field of the DRAM of the DRAM.
pointing. The next presentation unit is received and written to the FIFO correctly when no data is lost for any reason between receiving the PTS value and receiving the first
presentation unit of the same PES_paquet. With this done, the PTS flag is valid and will be marked as in-use when establishing the in-use indicator of the same PTS flagger and will be
considered the newest PTS flagger in the subsequent processing. V. When a PTS flag is registered and none of the flaggers are in-use, the flag is registered with the OLD PTS flag recorder. SAW. When the OLD PTS bookmark is in use when a new bookmark is ready to be registered, the new bookmark will be registered with the NEW PTS bookmark register. VII. When both of the PTS pointing registers are in use the new flag will be registered when overwriting the NEW PTS flag. VIII PTS flaggers are employed as specified in the preceding description of tracking status 132. IX. Once the NEW PTS flag is used as specified in the trace status, it will be transferred to the OLD PTS flag and the NEW PTS flag will be marked unused by clearing its in-use flag in order for the NEW flag to be used. to store the next PTS flag.
X. When a transport packet is received in the isodata PID with the discontinuity indicator bit of its set adaptation field, the in-use indicator of all PTS pointing recorders will be cleared and no PTS signaling will be stored until it is receive the following PCR value (for example, in the PID PCR isozytes). To aid error detection, each byte of received payload in the isodata PID is quantified to compare it with the PES_packet_length indicated in each PES header as defined by MPEG. In this way as the principle of each PES_packet is received, the PES_packet_length will be stored in the counter 170 of PES length. This counter will decrease per unit as each byte of PES is analyzed syntactically. In addition, this counter will be used and maintained as specified for the tracking state 132. In addition to the PES length counter, the preferred system maintains the presentation unit counter
164 mentioned above. The presentation unit counter is a 4-bit counter that is incremented by the isodata output clock. This counter is set to 8? 0 (10002) at the output of the first unit of
display of isodates from the FIFO as described for the PTS synchronization state 130. Subsequent entries in the PTS synchronization state will not establish or reset this counter unless the acquisition state 124 has entered after the last entry in the PTS synchronization state. Four isodata output modes are implemented as follows: 1. Tristaed - in this mode both the isodata clock and the isodata output are triestated; 2. Muted_clock_and_data - In this mode, both the isodata clock and the data outputs will be low (for example zero); 3. Muted_data - in this mode, only the isodata output is low while the isodata clock is active; 4. Unmuted - in this mode, neither the isodates nor the clock outputs are muted (not active). A unique error indicator is set for each error condition, which will be reset after the indicator is read. Each error condition that interrupts the isodata process is masked. Table 1 lists the various error conditions related to isodata processing and the response of the system to the error. The following defines the contents of the table:
Yam - A name assigned to each error condition for reference in any part of this. Definition - A definition of the conditions that indicate that the corresponding error has occurred. Int yes - Indicates that isodata processing is interrupted when this error occurs. no - Indicates that isodata processing is not interrupted when this error occurs. Check State and Next State > "state" - Indicates that this error will be detected when the current isodata processing state is greater than "state". The following list defines the hierarchy of the isodata processing status: 1. Reset Lowest 2. Startup 3. Acquisition 4. Setup_Wait 5. PTS_Acquire 6. PTS_Sync 7. Track Highest > "state" - Indicates that this error will be detected when the isodata processing state is equal to "state".
Startup, acquisition, setup_wait, pts_acquire, pts_sync, or track - Indicates that this error will be detected in this state or that the isodata processing will proceed to this state after the associated actions are carried out. same - Indicates that the isodata processing will remain in the same state after the associated actions are carried out. all - Indicates that this error will be detected when it occurs in any processing state. FIFO Action flush - Indicates that the FIFO is flowed by setting the read and write pointers of the FIFO to be equal to the DRAM base address of the FIFO. none - Indicates that no change from normal FIFO handling will occur. Pointer Action clear - Indicates that the PTS pointers are returned to the specified state as if the process had been reset. none - Indicates that no change from normal signal handling will occur.
see other actions - Indicates that Other Actions may indicate that a flag is established or re-established, otherwise it is treated as non-existent. Output Mode - Sets the output mode for which the processing will be moved. Other Actions - Set any additional action required as a result of the error.
Table 1: Summary of Errors, Exceptions and Actions,
OR
x The preferred implementation makes the FIFO flow. It clears the flags.
packet_ The processor receives a trace equal to or see others see others equal If the counter err the transport packet in the actions shares of the PID PID of isodates whose indication indicates > 184 bycontinuity_counter indicates that PTS; see the remaining ones a packet of others has been lost in the PES, isodatos actions decreases the PES counter by 184 bytes and the FIFO write flag is advanced by 184 bytes. If the PES counter indicates zero remaining bytes in the PES, set the PES counter in PES_ pac et_length of the previous PES, decrease the PES counter by 184 bytes and advance the FIFO write flag in 184 bytes. If the PES counter indicates N (l-183) remaining bytes in the PES, decrease the PES counter in N bytes and forward the FIFO write flag in N bytes
A set of recorders is maintained to control and maintain the tracking of the process states of the isodates. The set of recorders is specified in Table 2. Table 2: Isodatos recorders
It should now be appreciated that the present invention provides a method and apparatus for detecting and recovering errors when communication information data, such as isochronous data, in a MPEG-2 type transport stream. The isochronous data follows a PES header in the payload portion of a packed elementary stream. The PES payload starts with a heading of isochronous data which is followed by isochronous data presentation units. Isodatos transport packets are monitored to locate the isodata display time stamps (STPs), and the presentation of isodates from a buffer is synchronized to a system time clock (STC) using synchronization information derived from the PTSs. The discontinuity errors between the isodata packets are identified and where possible, a buffer write flag is advanced by an adequate number of bits to compensate for the discontinuity. The synchronization of the presentation with respect to the STC is maintained during the error recovery process. A counter of the presentation unit and a PES counter are maintained to detect the lost data. The synchronization of the output is verified using a PTS extension and the PTS offset. A pair of
PTS indicators are used to verify the output synchronization of the correct data. The detection of additional error and recovery techniques are also described. Although the invention has been described in connection with a preferred embodiment, it should be appreciated that numerous adaptations and modifications may be made thereto without departing from the spirit and scope of the invention as set forth in the claims.
Claims (24)
- NOVELTY OF THE INVENTION Having described the present invention, it is considered as novelty and therefore the content of the following claims is claimed as property. 1. | A method for handling errors in isochronous data ("isodatos") received in bursts from a packetized data stream carrying isodata presentation units in isodatos transport packets of fixed lengths, each of said transport packets including an identifier of packet (PID) and at least some of said packages containing a presentation time stamp (PTS) indicative of a time to initiate the presentation of the fixed speed of the isodata presentation units from a buffer in which they are stored temporarily after receiving them, said method comprises the steps of: monitoring said data stream to detect the PIDs that identify said isodatos transport packets; monitor the isodata transport packets identified by said PIDs to locate the isodata PIDs; synchronizing the presentation of said presentation units from said buffer for a system time clock (STC) using the synchronization information derived from the localized isodatos PIDs; identify the errors of discontinuity between the successive said isodatos transport packets and, if a discontinuity of no more than one packet is identified, a write flag of said buffer is advanced by an adequate number of bits to compensate the discontinuity, while maintaining the synchronization of said presentation with respect to said STC. A method according to claim 1, characterized in that the first and second PTS pointers are each provided to maintain a different PTS value and address from said buffer identifying where the presentation unit referred to by the PTS value is stored, the synchronization of said presentation being maintained by the following steps of: replacing the value and address of PTS by one of said PTS pointers with a new value and new PTS address after the data stored in the address associated with the replaced value they have been presented from said buffer; when said new address is reached, suspending the presentation of data from said buffer if said STC is not equal to a presentation time derived from said new value of PTS; and if said presentation has been suspended, restarting the presentation of data from said memory intermediate when said STC reaches said derived presentation time from said new PTS value. A method according to claim 2, characterized in that the new PTS values are received over time from said isodatos transport packets, said method comprising the following steps of: determining whether both of said PTS flags contain values of PTS that have not yet been used to present data from said buffer when a new PTS value is received; and if so, replace the value and associated address of PTS in the latest update of the PTS flag with the new value and new PTS address, thereby maintaining the oldest value and address of PTS unused for use in synchronization with the presentation of said presentation units from said intermediate memory. 4. A method according to claim 1, characterized in that a PTS flag is provided to maintain a current PTS value together with an address of said buffer which identifies when a presentation unit referred by said current PTS value is stored, maintaining synchronization of said presentation through the following stages of: replacing said PTS value in said PTS flag with a new current PTS value after the data stored in said address has been presented from said buffer; replacing said address in said PTS flag with a new address corresponding to a presentation unit referred to by said new current PTS value; when said new one is reached, suspend the presentation of data from said buffer if said STC is not equal to a presentation time derived from said new current PTS value; and if said presentation has been suspended, restart the presentation of data from said buffer when said STC reaches said presentation time derived from said new value of the current PTS. A method according to claim 4, characterized in that the presentation units carried by said packaged data stream are supplied by packaged elementary stream packets (PES) carrying the presentation units together with the information indicative of the length of each packet of PES, said method comprising the following steps of: determining whether a quantity of data of presentation units actually received for a given PES packet differs from a quantity of data that must be received as indicated by the length information from the PES package; and indicate an error if the amounts of data compared do not correspond. 6. A method according to claim 5, characterized in that it comprises the following steps of: clearing said PTS flag and stopping the presentation of data from said buffer in the event that the data of the additional display unit continues to arrive at the absence of a new PES packet indicator after said PES packet length information indicates that all data has been provided for said given PES packet; and restarting the presentation of the data from said buffer based on a new PTS value provided in said PTS flag after the PTS flag has been cleared. A method according to claim 5, characterized in that the first and second PTS pointers are each provided to maintain a different PTS value and address from said buffer identifying where a presentation unit referred to by the PTS value is stored, with new PTS values that are received over time from said isodatos transport packets, said method comprising the following steps of: determining whether both of said PTS flags contain PTS values that do not they have still been used to present data from said buffer when a new PTS value is received, and if so, to replace the value and associated address of PTS in the latest update of the PTS flag with the new value and new address of the PTS. PTS, thereby maintaining the oldest value and address of unused PTS, to be used in the synchronization of the presentation of said presentation units from said buffer; clear ambops of said PTS flaggers and temporarily stop the presentation of data from said buffer in the event that the data of the additional presentation unit continues to arrive in the absence of a new PES packet indicator after said information The length of the PES packet indicates that all data has been provided for said given PES packet; and restarting the presentation of data from said buffer based on a new PTS value provided in one of said PTS flaggers after the PTS flags have been cleared. A method according to one of the preceding claims, characterized in that: the presentation units of isidates carried in said fixed length isodatos transport packets are obtained from the packets of the elementary stream package of isodates (PES), and said appropriate number of bits for forwarding said write flag is determined in response to a computation of the payload bytes of PES recovered from the isodata transport packets. A method according to claim 8, characterized in that said isodates transport packets of fixed length each comprise 188 bytes, and: if said counting indicates that at least 184 bytes remain to be received by said current PES packet, said computation it is decremented by 184 and said write flag is advanced by 184 byte addresses; if said computation indicates that no byte remains to be received by the current PES packet, said computation is set for the value of a previous PES packet length and then decreased by 178, and said write flag is advanced by 164 addresses of bytes; and if said computation indicates that N bytes, where 1 < N < 183 remains to be received by said current PES packet, said count is decreased by N and said write flag is advanced by N bytes directions. 10. A method for handling errors in isochronous data ("isodata") received in bursts from a packetized data stream carrying isodata presentation units in transport packets of isodates of fixed length, each of said transport packets including a packet identifier (PID) and at least some of said packets containing a presentation time stamp (PTS) indicative of a time to initiate the fixed rate presentation of isodata display units from a buffer in which they are temporarily stored once received, said method comprising the steps of: monitoring said data stream to detect PIDs that identify said isodatos transport packets; monitor the isodata transport packets identified by said PIDs to locate the isodata PTSs; synchronizing the presentation of said presentation units from said intermediate memory to a system time clock (STC) using the synchronization information derived from the located isodatos PTSs, said synchronization step comparing the STC with the derived synchronization information of the PTSs; providing the fill bits as outputs until it is time to present said presentation units if said comparison determines that said presentation units are presented too soon. A method according to claim 10, characterized in that it also comprises the steps of: recovering a PTS extension from the packets transport of identified isodatos to allow the time resolution for the presentation of the isodata presentation units to be increased; and deriving said synchronization information by adding at least said PTS and said PTS extension. A method according to claim 11, characterized in that said synchronization information is derived from the sum of said PTS, said PTS extension and a PTS offset value used to provide a time delay. A method according to claims 11 or 12, characterized in that it comprises the additional steps of comparing said synchronization information with said STC to determine whether said presentation units are presented too late or are ready to be presented from said buffer; resynchronizing the presentation of the presentation units from said buffer if said comparison step determines that said presentation units would be presented in another way too late; and presenting said presentation units from said buffer if said comparison step determines that said presentation units are ready to be presented. 14. A method according to one of claims 10 to 13 characterized in that: said synchronization information comprises the sum of at least one PTS and a PTS extension that allows the time resolution for the presentation of the isodata display units to be increased; and said padding bits are provided as output until a time designated by the STC equals the time designated by said sum 15. A method according to claim 14, characterized in that said timing information comprises the sum of said PTS, said PTS extension. and a displacement value of PTS used to provide a time delay. A method according to one of claims 10 to 15, characterized in that each presentation unit comprises an integral number of N isodata bits, said method comprising the additional steps of: maintaining a N-bit count that correlates with the presentation of a first display unit from said buffer; and continuing in order to provide the filler bits as output after said STC equals the time designated by said sum until said computation of N-bits indicates that it is time to initiate the presentation of a new display unit. 17. A method for handling errors in isochronous data ("isodata") received in bursts from a packetized data stream that carries isodata display units in fixed length isodates transport packetseach of said transport packets including a packet identifier (PID) and at least some of said packets contain a presentation time stamp (PTS) indicative of a time to initiate the fixed rate presentation of isodata presentation units from an intermediate memory in which they are stored temporarily upon receipt, said method comprising the steps of: moritorating said data stream to detect the PIDs that identify said isodates transport packets; monitor the transport packets of isodates identified by said PIDs to locate the "'' PTSs of isodatos, synchronize the presentation of said presentation units coming from said buffer with a system time clock (STC) using the synchronization information derived from the PTSs of isodatos located, comparing said synchronization step the STC with the synchronization information derived from the PTSs, monitoring said isodatos transport packets identified by said PIDs to determine if any of them is designated as encrypted after any encryption should have been removed; and if a single unique packet is designated as encrypted after any encryption must have been removed, advancing a write buffer of said buffer by an adequate number of bits ignores the unique packet, while maintaining the synchronization of said presentation with respect to said STC. 18. A decoder for receiving and handling errors in isochronous data ("isodatos") received in bursts from a packetized data stream carrying isodata display units in fixed length isodates transport packets, each of said packets included transport a packet identifier (PID) and containing at least some of said packets a presentation time stamp (PTS) indicative of a time to initiate the fixed speed presentation of isodata presentation units from a buffer in which they are stored temporarily at their receipt, said decoder comprising: means for monitoring said data stream in order to detect the PIDs that identify said isodatos transport packets; means to monitor the isodata transport packets identified by said PIDs in order to locate the isodatos PTSs; means to synchronize the presentation of said units of pr4 presentation from said buffer with a system time clock (STC) using the synchronization information derived from the PTSs of located isodatos; means for identifying discontinuity errors between successive said isodata transport packets and if a discontinuity of no more than one packet is identified, advancing a write flag of said buffer by an appropriate number of bits to compensate for the discontinuity, while the synchronization of said presentation with respect to said STC is maintained. A decoder according to claim 18, characterized in that the first and second PTS pointers are each provided to maintain a value and PTS address different from said buffer which identifies where a presentation unit referred to by the PTS value is stored. , maintaining the synchronization of said presentation by means of: replacing the value and address of PTS by one of said PTS pointers with a new value and a new PTS address after the data stored in the address associated with the replaced value is they have presented from said intermediate memory; when said new address is reached that suspends the presentation of the data from said buffer if said STC does not equal a time of presentation derived from said new value of PTS; and restarting the presentation of the data from said buffer when said STC reaches said presentation time derived from said new value of PTS if said presentation has been suspended. 20. A decoder according to claim 19, characterized in that the new PTS values are received over time from said isodata transport packets, said decoder further comprising: means for determining whether both of said PTS flags contain PTS values that they have not yet been used to present data from said buffer when a new value of PTS is received; and means responsive to said means of determination when none of the PTS values in said flags have been used when a new value of PTS is received to replace the value and associated address of PTS in the PTS flag most recently updated with the new one. value and the new address of PTS, maintaining by this the value and the oldest address of PTS without using, to be used in the synchronization of the presentation of said presentation units coming from said buffer. 21. A decoder according to claim 18, characterized in that a PTS flag is provided. to maintain a current PTS value together with an address of said buffer which identifies when a presentation unit referred to by said current PTS value is stored, maintaining the synchronization of said presentation by means of: replacing said PTS value in said PTS of PTS with a new current PTS value after the data stored in said address has been presented from said buffer; replacing said address in said PTS flag with a new address corresponding to a presentation unit referred to by said new current PTS value; suspending the presentation of the data from said buffer if said STC is not equal to a presentation time derived from said new current PTS value when said new address is reached; and restarting the presentation of data from said buffer when said STC reaches said presentation time derived from said new current PTS value if said presentation has been suspended. 22. A decoder according to one of claims 18 to 21, characterized in that the presentation units carried by said packetized data stream are supplied by the packaged elementary current (PES) packets carrying the presentation units together with the information indicative of the length of each PES packet, said decoder further comprising: means for determining whether an amount of presentation unit data actually received for a given PES packet differs from a quantity of data that must be received as indicated by the PES packet length information; and means responsive to said means of determination to indicate an error if the amounts of data compared do not correspond. 23. A decoder according to the claims 21 or 22, characterized in that it also comprises: means for clearing said PTS flag temporarily stop the presentation of the data coming from said buffer in the event that the data of the additional presentation unit continues to arrive in the absence of a new indicator of PES packet after said PES packet length information indicates that all data has been provided for said given PES packet; and means for restarting the presentation of the data from said buffer based on a new value of PTS provided in said PTS flag after the PTS flag has been cleared. 24. A decoder according to one of claims 18 to 22, characterized in that the first and second PTS pointers are provided each one to maintain a value and address of PTS different from said buffer which identifies where a presentation unit referred to by the PTS value is stored, with the new PTS values received over time coming from said isodatos transport packets, said decoder further comprising means for: determining whether both of said PTS flags contain PTS values that have not been used to present data from said buffer when a new PTS value is received, and if so, replace the value and address associated with PTS in the most recently updated PTS slogan with the new value and new PTS address, thereby maintaining the value and address of the older PTS unused, to be used in the synchronization of the presentation of said presentation units from said buffer memory; clearing both of said PTS flaggers and temporarily stopping the presentation of data from said buffer in the event that the data of the additional presentation unit continues to arrive in the absence of a new PES packet indicator after said PES packet length information indicates that all data has been provided for said given PTS packet; and restart the presentation of the data from said memory intermediate on the basis of a new PTS value provided in one of said PTS flaggers after the PTS flaggers have been cleared. 23. A decoder according to one of claims 18 to 24, characterized in that: the isodata display units carried in said isodates transport packets of fixed length are obtained from the packages of the packed elementary stream of isodates (PES) , and a counter provides a computation of PES payload bytes retrieved from the isodata transport packets, said bit number being suitable for advancing said write flag in response to said computation. 26. A decoder according to one of claims 18 to 25, characterized in that said isodates transport packets of fixed length each comprise 188 bytes, and: if said counting indicates that at least 184 bytes remain to be received by said packet of PES current, said computation is decreased by 184 and said writing flag is advanced by 184 bytes directions; if said computation indicates that no byte remains to be received by the current PES packet, said computation is established for the value of a previous PES packet length and then decreases by 178 and said write flag is advanced by 164 byte addresses; and if said computation indicates that N bytes, where 1 < N < 183 remains to be received by said current PES packet, said count is decreased by N and said write flag is advanced by N byte addresses, 27. A decoder to receive and handle errors in isochronous data ("isodatos") received in bursts from a packetized data stream carrying isodata display units in fixed length isodatos transport packets, each of said transport packets including a packet identifier (PID) and at least some of said packets containing a stamp of presentation time (PTS) indicative of a time to initiate the presentation of fixed speed of the presentation units of isidates from a buffer in which they are stored temporarily at their receipt, said decoder comprising: means to moit said current of data to detect the PIDs that identify said isodatos transport packets; means to monitor the isodata transport packets identified by said PIDs to locate the isodatos PTSs; means for synchronizing the presentation of said presentation units from said buffer with a system time clock (STC) which uses the synchronization information derived from the PTSs of located isodatos; means for providing filler bits as output until it is time to present said presentation units if said comparison determines that said filing units are presented too early. 28. A decoder according to claim 27, characterized in that it further comprises: means for recovering a PTS extension from the identified isodata transport packets to allow the time resolution to be increased to present the isodata display units; and an adder to add at least said PTS and said PTS extension to provide said synchronization information. 29. A decoder according to claim 28, characterized in that said adder provides said synchronization information when adding said PTS, said PTS extension and a displacement value of PTS used to provide a time delay. 30. A decoder according to one of claims 27 to 29, characterized in that it further comprises: means for comparing said synchronization information with said STC in order to determine whether said presentation units are presented too late or are ready to be presented from said memory intermediate; means for resynchronizing the presentation of the presentation units from said buffer if said comparison step determines that said presentation units are presented too late; and means for presenting said presentation units from said buffer if said comparison step determines that said presentation units are ready to be presented. 31. A decoder according to claim 27, characterized in that it further comprises an adder for populating said synchronization information by adding at least one PTS and a PTS extension that allows increasing the time resolution to present the isodata display units: said bits fillers are provided as output until a time designated by the STC equals a time designated by said synchronization information. 32. A decoder according to claim 31, characterized in that said adder quantizes said synchronization information by summing said PTS, said PTS extension and a displacement value of PTS used to provide a time delay. 33. A decoder according to one of claims 31 or 32, characterized in that each presentation unit comprises an integral number of N bits of isodates, said decoder further comprising: an N-bit counter that correlates with the presentation of a first display unit from said buffer; wherein said filler bits continue to be provided as output after said STC equals the time designated by said sum until said N-bit counter indicates that it is time to initiate the presentation of a new display unit. 34. A decoder for receiving and handling errors in isochronous data ("isodatos") received in bursts from a packetized data stream carrying isodata display units in fixed length isodates transport packets, each of said packets included transport a packet identifier (PID) and containing at least some of said packets a presentation time stamp (PTS) indicative of a time to initiate the fixed speed presentation of the isodata display units from a buffer in the which they are temporarily stored to their receipt, said decoder comprising: means for monitoring said data stream in order to detect the PIDs that identify said isodatos transport packets; means to monitor transport packets of isodatos identified by said PIDs to locate the PTSs of isodatos; means for synchronizing the presentation of said presentation units from said buffer with a system time clock (STC) using the synchronization information derived from the located isodatos PTSs, said synchronization step comparing the STC with the tuning information derived from the PTSs; means for determining if any of the isodata transport packets identified by said PIDs are identified as encrypted after any encryption must have been removed; and means responsive to said determining means when a single unique packet is designated as encrypted after any enrollment must have been withdrawn, in order to advance a flag to write said buffer by a suitable number of bits to ignore the unique packet while the synchronization of said presentation with respect to said STC is maintained. SUMMARY Error recovery is provided for isochronous data ("isodata") obtained from a data stream. The isodatos transport packets are monitored to locate the isodata display time stamps (PTSs). The presentation of isodates from a buffer memory is synchronized with a system time clock (STC) using the synchronization information derived from the PTSs. The discontinuity errors between said isodatos transport packets are identified and if a discontinuity of no more than one packet is identified, a write marker of the buffer memory is advanced by a suitable number of bits to compensate for the discontinuity, while maintaining the synchronization of the presentation with respect to the STC. Additional error detection and recovery techniques are described, including the maintenance of a presentation unit counter, the use of a PTS extension and the PTS offset in order to verify the output synchronization, the provision of a pair of pointers of PTS that verify the correct data synchronization output, the use of an elementary packet stream (PES) counts to detect the data lost in the transport stream and the detection and Download packets designated as encrypted after any decryption must have already been completed.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US1746796P | 1996-05-10 | 1996-05-10 | |
US60/017,467 | 1996-05-10 | ||
US08678108 | 1996-07-11 | ||
US08/678,108 US5742623A (en) | 1995-08-04 | 1996-07-11 | Error detection and recovery for high rate isochronous data in MPEG-2 data streams |
Publications (2)
Publication Number | Publication Date |
---|---|
MX9703396A MX9703396A (en) | 1997-11-29 |
MXPA97003396A true MXPA97003396A (en) | 1998-07-03 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5742623A (en) | Error detection and recovery for high rate isochronous data in MPEG-2 data streams | |
US5598415A (en) | Transmission of high rate isochronous data in MPEG-2 data streams | |
US5703877A (en) | Acquisition and error recovery of audio data carried in a packetized data stream | |
RU2273111C2 (en) | Method for transformation of packet stream of information signals to stream of information signals with time stamps and vice versa | |
US5726989A (en) | Method for ensuring synchronization of MPEG-1 data carried in an MPEG-2 transport stream | |
US6493362B1 (en) | Data recording method and data recording system | |
CN1976448B (en) | Method and system for audio and video transport | |
CN100401784C (en) | Data synchronization method and apparatus for digital multimedia data receiver | |
US6980731B1 (en) | Data transmitting method and data transmitter | |
US6731658B1 (en) | Data recording method and data recording apparatus | |
US6834083B1 (en) | Data transmitting method and data transmitter | |
CN100481238C (en) | Reproducing method | |
CA2181194C (en) | Transmission of high rate isochronous data in mpeg-2 data streams | |
EP0806874B1 (en) | Timing error recovery in isochronous packetized data transmission | |
US20030002540A1 (en) | MPEG data packet transmission through an ATM network with jitter free decoding | |
KR20040018523A (en) | Broadcast system and apparatus, sync information replacing apparatus and method, program, and recording medium recording the program | |
MXPA96002753A (en) | Transmission of high-speed isocronic data in mpe type currents | |
MXPA97003396A (en) | Detection and recovery of error for high speed isocron data in mpe data currents | |
KR0181082B1 (en) | Pts coder of mpeg system | |
EP1225770B1 (en) | Error detection and recovery for high rate isochronous data in mpeg-2 data streams | |
KR100375830B1 (en) | Apparatus and Method for removing PCR jitter by inserting receiving time stamp | |
KR0181081B1 (en) | Escr generator for system decoder | |
KR0181084B1 (en) | Dts coding apparatus of mpeg | |
KR0181080B1 (en) | Apparatus coding escr information in mpeg | |
Haskell et al. | MPEG-2 Systems |