WO2008110986A2 - Method for transmitting a data stream comprising a plurality of data packets from a source via a usb link to a sink - Google Patents

Method for transmitting a data stream comprising a plurality of data packets from a source via a usb link to a sink Download PDF

Info

Publication number
WO2008110986A2
WO2008110986A2 PCT/IB2008/050878 IB2008050878W WO2008110986A2 WO 2008110986 A2 WO2008110986 A2 WO 2008110986A2 IB 2008050878 W IB2008050878 W IB 2008050878W WO 2008110986 A2 WO2008110986 A2 WO 2008110986A2
Authority
WO
WIPO (PCT)
Prior art keywords
sink
data stream
microframe
source
data
Prior art date
Application number
PCT/IB2008/050878
Other languages
French (fr)
Other versions
WO2008110986A3 (en
Inventor
Weng Fei Moo
Alan Chang
Original Assignee
Nxp B.V.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nxp B.V. filed Critical Nxp B.V.
Publication of WO2008110986A2 publication Critical patent/WO2008110986A2/en
Publication of WO2008110986A3 publication Critical patent/WO2008110986A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network
    • H04N21/43632Adapting the video or multiplex stream to a specific local network, e.g. a IEEE 1394 or Bluetooth® network involving a wired protocol, e.g. IEEE 1394
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications

Definitions

  • the invention relates to a method for preparing, at a source, a data stream comprising a plurality of data packets for transmitting via a USB link to a sink.
  • the invention further relates to a method for re-assembling, at a sink, a data stream comprising a plurality of data packets being received from a USB link.
  • the invention further relates to a method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink.
  • the invention further relates to a computer program product directly loadable into the memory of a programmable device, comprising software code portions for performing the steps of a method according to the above paragraphs when said product is run on the device.
  • the invention further relates to a computer being adapted to process the computer program product mentioned in the above paragraph.
  • Video data streamings like MPEG2 and DV streaming of video data are commonly done via IEEE 1394 interfaces, also known as Fire Wire (iLink) interfaces.
  • IEEE 1394 interfaces also known as Fire Wire (iLink) interfaces.
  • USB universal serial bus
  • USB interfaces for streaming time critical data streams between data processing devices is associated with the problem that in the course of the packetized data transfer over high-speed USB endpoints a package jitter of ⁇ 125 ⁇ s is introduced, which, depending on the kind or content of the transmitted data stream is not acceptable. While some decoder implementations can cope with said packet jitter others cannot.
  • a MPEG transport stream consists of a sequence of fixed sized transport packets of 188 Bytes which have to be processed within tight time limits which may be violated when a jitter of ⁇ 125 ⁇ s appears.
  • U.S. patent no. 7,006,457 discloses a method and apparatus for recovering a second transport stream included within a first transport stream and reducing timing anomaly imparted to the second transport stream within the context of a front-end device subject to random access via a data bus, illustratively a PCI bus or USB.
  • a first transport stream is received from a transport medium, the first transport stream having disposed therein packets associated with a second transport stream.
  • the first medium tending to impart jitter to the first transport stream.
  • Those packets associated with the second transport stream are extracted from the first transport stream and adapted to reduce jitter, and launched via a second transport medium, the launched adapted packets forming a jitter-reduced second transport stream.
  • a method for preparing, at a source, a data stream comprising a plurality of data packets for transmitting via a USB link to a sink comprises: providing each data packet with a time stamp and handing over the time stamped data packets to the USB link.
  • a method for re-assembling, at a sink, a data stream comprising a plurality of data packets being received from a USB link comprises: receiving the data packets, buffering them and re-assembling the data stream by releasing each of the buffered data packets at a time which is defined by the time coded in the time stamp plus a constant time delay.
  • a method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink comprising: preparing, at the source, the data stream by providing each data packet with a time stamp and handing over the data packets to the USB link; transmitting the prepared data stream via the USB link; re-assembling, at a sink, the data stream by receiving the data packets, buffering the data packets and re-assembling the data stream by releasing each of the buffered data packets at a time which is defined by the time coded in the time stamp plus a constant time delay.
  • a computer program product according to the invention is directly loadable into the memory of a programmable device and comprising software code portions for performing the steps of a method according to the invention when said product is run on the device.
  • a computer comprises an arithmetic- logic unit and a memory and processes the computer program product according to the above paragraph.
  • the characteristic features according to the invention provide the advantage that packet jitter is completely removed from a data stream that is transferred in packets over a high-speed USB endpoint.
  • the removal of packet jitter from the stream allows to use standard USB Video drivers and supports these USB video drivers to be adopted by portable and non portable video consumer products such as USB video streaming devices. It further allows for replacing existing Fire Wire (iLink) interfaces. It has to be pointed out that with the present invention the quality of video streaming with USB devices is fully maintained.
  • the measures as claimed in claim 2 or claim 5, respectively, provide the advantage that the time stamp is synchronized with USB microframe counters.
  • the measures as claimed in claim 3 or claim 6, respectively, provide the advantage that the accuracy of the time stamp is further increased.
  • the measures as claimed in claim 7 or claim 8, respectively, provide the advantage that the sink microframe counter has only to be initialized/loaded at the beginning of a data stream, i.e. when the first packet of this data stream is received, whereas subsequent data packets have no effect on the counter.
  • the measures as claimed in claim 9 provide the advantage that the buffers are widely configurable.
  • Fig. 1 shows a schematic timing diagram illustrating the methods according to the present invention.
  • Fig. 2 shows an embodiment of the time stamp which is added to data packets according to the present invention.
  • Fig. 3 shows a block circuit diagram of the hardware circuits to be employed in a sink according to the present invention.
  • Fig. 4 shows a buffer array and its use according to the present invention.
  • the source 1 may be any device comprising a USB interface, like a USB data streaming device, a personal computer, or the like.
  • a software application is running on the source 1 which software application inputs the data stream DS which comprises said plurality of data packets Pl to P6.
  • the data packets Px have defined packet lengths and respective offsets in time from each other.
  • the software application may for instance be configured as a video player software.
  • the software application inputs the data packets Px to an audio/video layer 4 within the source 1.
  • the audio/video layer 4 is implemented as a computer program or a software driver, respectively.
  • the audio/video layer 4 can be implemented as a USB Video Class (UVC) layer.
  • Said data transferring means 5 cooperate with the USB link 2 according to the USB standard, wherein the USB link 2 is controlled by a standard USB driver which reads the time stamped data packets Qx and handles their transmission over the USB link 2.
  • the time stamped data packets Q2 and Q3 are packed into the bus packet B2.
  • the time stamped data packets Q5 and Q6 are packed into the bus packet B4.
  • the time stamped data packets Ql and Q4 are each packed into a separate bus packet Bl and B3, respectively.
  • the USB link 2 transmits the bus packets Bl - B4 within respective USB micro frames UF each having a length of 128 ⁇ s. As can be seen in Fig. 1 at each USB micro frame UF a maximum of one bus packet Bl - B4 is transmitted.
  • data receiving means 6 e.g. comprising an ATX bus and a RAM, which data receiving means 6 transform the bus packets Bl - B4 into received bus packets Rl - R4, wherein the contents of the bus packets Bl - B4 correspond to the contents of the received bus packets Rl - R4, and store them in a buffer 8.
  • This buffer 8 may be configured as a buffer array comprising three array buffers (BUFFER 1, BUFFER 2, BUFFER 3) being organized as a ring buffer as shown in Fig. 4. during each USB microframe UF one of the array buffers BUFFER 1, BUFFER 2, BUFFER 3 is filled with the respective received bus packet Rl - R4, wherein previously stored data are overwritten. For instance, in Fig. 4 a situation is shown when the first array buffer BUFFER 1 contains the received bus packet R2, the second array buffer BUFFER 2 contains the received bus packet R3 and the third array buffer BUFFER 3 contains the receive bus packet R4.
  • each of the received bus packets Rl - R4 may contain one or more time stamped data packets Qx each of which comprising a time stamp APTx and a data packet Px
  • each array buffer BUFFER 1 , BUFFER 2, BUFFER 3 comprises a payload header PH that contains information about the momentary filling level with time stamped data packets Qx.
  • the number of array buffers and their lengths, respectively, are to be selected such that a buffer overflow is prevented.
  • the buffer 8 is configured to contain a maximum of nine time stamped data packets Qx, i.e. three time stamped data packets Qx in each array buffer BUFFER 1, BUFFER 2, BUFFER 3.
  • the time stamps APTx have a length of 4 bytes and the data packets Px are MPEG-TS packets having a length of 188 bytes each of the array buffers BUFFER 1, BUFFER 2, BUFFER 3 must have a length of 578 bytes.
  • time stamp APTx comprises the following data fields, being depicted in Fig. 2:
  • This reserved field is e.g. 7 bits long and shall be ignored at the moment.
  • a source microframe count value field OMFC for entering the current count value of a source microframe counter (not shown in the drawings) at the time when the respective data packet Px is provided with its time stamp APTx.
  • this source microframe count value field OMFC is 13 bits long and counts cycles having a length of 125 ⁇ s (corresponding to the length of USB micro frames). The value in this field shall wrap around to zero after reaching 7999.
  • a source microframe offset value field OMFO for entering the current count value of a source microframe offset counter being implemented by a counter (not shown in the drawings) for counting ticks of a constant frequency signal at the time when the data packet Px is provided with its time stamp APTx.
  • the source microframe count value field OMFC and the source microframe offset value field OMFO fields collectively indicate the time when the corresponding packet Px was delivered from the application to the audio/video layer 4 at the source 1.
  • the USB data stream transmission method assumes microframe phase synchronization between the source audio/video layer 4 and a sink audio/video layer 7 at the sink 3.
  • this fixed time delay TD is shown for the pairs of data packets Ql and Pl as well as Q2 and P2, respectively.
  • the sink 3 comprises a sink microframe counter 12 having an input being connected with the output of a microframe cycle generator 13 for generating pulses having a cycle time of 125 ⁇ s.
  • the sink microframe counter 12 counts the pulses of the microframe cycle generator 13 and delivers the count value as the sink microframe count value IMFC.
  • the sink 3 further comprises a sink microframe offset counter 14 for counting ticks of a constant frequency signal being generated by a constant frequency signal generator 15.
  • the frequency of said signal is set to 27 MHz.
  • the sink audio/video layer 7 shall keep each data packet Px stored in the buffer 8 until its associated APTx value, i.e. the source microframe count value OMFC and the source microframe offset value OMFO, matches the sink microframe count value IMFC and the sink microframe offset value IMFO plus an implementation-dependent constant time delay value TD.
  • the sink audio/layer 7 reads the source microframe count value OMFC and the source microframe offset value OMFO of that data packet Px from the buffer 8 which is the next to be inserted in a re-assembled data stream and feds these values to a comparator 16.
  • the comparator compares the source micro frame count value OMFC and the source micro frame offset value OMFO with the actual sink micro frame count value IMFC and the actual sink micro frame offset value IMFO and releases the data packet Px when the source micro frame count value OMFC and the source microframe offset value OMFO match the sink microframe count value IMFC and the sink microframe offset value IMFO, respectively.
  • the comparator 16 has to subtract said time delay TD from the read sink microframe count value IMFC and the sink microframe offset value IMFO each time when a comparison step is carried out, or the time delay TD has to be considered during initialization of the sink microframe counter 12 and optionally of the sink microframe offset counter 14, as will be explained below:
  • initialization of the sink microframe counter 12 and the sink microframe offset counter 14 as well as selecting an appropriate length of the time delay TD is implementation-dependent. Initialization of the counters and selecting the time delay TD has to be done so that buffer overflow and underflow will not occur during the course of transmission of the data stream DS.
  • the sink microframe counter 12 and the sink microframe offset counter 14 are initialized when and only when the first time stamp APTl can be read after the first data packet Pl has been stored in the buffer 8 at the beginning of transmission of a data stream DS. It has to be emphasized that the time stamps APTx of subsequently received data packets Px have no effect on the sink microframe counter 12 and the sink microframe offset counter 14.
  • an appropriate time delay TD having a length of several micro frames is selected and this time delay TD is subtracted by a subtractor 11 from the first time stamp APTl and the resulting difference DIFF is provided to the sink microframe counter 12 as an initialization value.
  • the sink microframe counter 12 receives an initialization control signal INIT it loads the initialization value DIFF into its counter value. Thereby the sink microframe counter 12 is set to be several micro frames behind the source microframe counter.
  • a time delay value TD of nine micro frames can be subtracted from the sink microframe counter 12 during initialization so that this particular packet Pl will stay in the buffer 8 for exactly three micro frames. Due to the inherent packet delivery jitter over USB, the successive packets Px will stay in the buffer 8 between one and five microframes before being released. Therefore, the size of the buffer 8 should be big enough to store at least five micro frames worth of data.
  • the invention may be embedded in form of either hardware or by the aid of software executable by a data processing device that processes data in form of data streams.
  • a data processing device can e.g. be realized as a personal computer or a portable computer.
  • a computer program product that comprises software code portions for performing the steps of the methods according to the invention when the computer program product is run on the data processing device is already pre-stored in such a data processing device, e.g. in a ROM or EPROM or any other permanent memory.
  • the computer program product can be fed into the data processing device by the aid of a data carrier on which the computer program product is stored. In both cases the computer program product is typically loaded into the working memory of the device, e.g. the RAM, and software portions of the computer program are executed by a processor of the device.
  • the invention can also be realized by means of a computer program product, which can reside in a memory of a device and which can be executed by a processor of said device or which can reside on a computer readable medium, e.g. a solid state memory device or an optical data carrier like a CD, DVD or a network based server or the like, such that the computer program can be loaded from the computer readable medium into a device, e.g. a computer or laptop or whatsoever, where it will be executed.
  • a computer program product can reside in a memory of a device and which can be executed by a processor of said device or which can reside on a computer readable medium, e.g. a solid state memory device or an optical data carrier like a CD, DVD or a network based server or the like, such that the computer program can be loaded from the computer readable medium into a device, e.g. a computer or laptop or whatsoever, where it will be executed.
  • any reference signs placed between parentheses shall not be construed as limiting the claim.
  • the word “comprising” does not exclude the presence of elements or steps other than those listed in a claim.
  • the word "a” or “an” preceding an element does not exclude the presence of a plurality of such elements.
  • the invention may be implemented by means of hardware comprising several distinct elements, and/or by means of a suitably programmed processor. In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

A method for transmitting a data stream (DS) comprising a plurality of data packets (Px) from a source (1) via a USB link (2) to a sink (3), comprises: preparing, at the source (1), the data stream by providing each data packet (Px) with a time stamp (APTx) and handing over the time stamped data packets (Qx) to the USB link (2); transmitting the prepared data stream via the USB link (2); re-assembling, at the sink (3), the data stream (DS) by receiving the data packets (Qx), buffering them and re-assembling the data stream by releasing each of the buffered data packets (Px) at a time which is defined by the time coded in the time stamp (APTx) plus a constant time delay (TD).

Description

Method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink
FIELD OF THE INVENTION
The invention relates to a method for preparing, at a source, a data stream comprising a plurality of data packets for transmitting via a USB link to a sink.
The invention further relates to a method for re-assembling, at a sink, a data stream comprising a plurality of data packets being received from a USB link.
The invention further relates to a method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink.
The invention further relates to a computer program product directly loadable into the memory of a programmable device, comprising software code portions for performing the steps of a method according to the above paragraphs when said product is run on the device.
The invention further relates to a computer being adapted to process the computer program product mentioned in the above paragraph.
BACKGROUND OF THE INVENTION
Video data streamings, like MPEG2 and DV streaming of video data are commonly done via IEEE 1394 interfaces, also known as Fire Wire (iLink) interfaces. On the other hand, since the USB (universal serial bus) has become the most important and almost ubiquitous standard for serial transmission of data between computers and peripheral devices it would be desirable to utilize the USB for data streaming, particularly for video data streaming. In practice, however, using USB interfaces for streaming time critical data streams between data processing devices is associated with the problem that in the course of the packetized data transfer over high-speed USB endpoints a package jitter of ±125 μs is introduced, which, depending on the kind or content of the transmitted data stream is not acceptable. While some decoder implementations can cope with said packet jitter others cannot. There are also a lot of systems and applications that may require a largely jitter- free data stream, independent of its decoder capability, for instance for processing MPEG Transport Streams (MPEG TS). A MPEG transport stream consists of a sequence of fixed sized transport packets of 188 Bytes which have to be processed within tight time limits which may be violated when a jitter of ±125 μs appears.
Various attempts have been made to reduce the negative effects of jitter created in the course of transmitting data packets via USB. For instance, U.S. patent no. 7,006,457 discloses a method and apparatus for recovering a second transport stream included within a first transport stream and reducing timing anomaly imparted to the second transport stream within the context of a front-end device subject to random access via a data bus, illustratively a PCI bus or USB. A first transport stream is received from a transport medium, the first transport stream having disposed therein packets associated with a second transport stream. The first medium tending to impart jitter to the first transport stream. Those packets associated with the second transport stream are extracted from the first transport stream and adapted to reduce jitter, and launched via a second transport medium, the launched adapted packets forming a jitter-reduced second transport stream.
Nevertheless, there is still the need for providing a method for transmitting data packets via high-speed USB interfaces such that the inevitable jitter does not impair the processing of the data at a sink side of the USB transmission path. Particularly, there is a need to provide a method for transmitting data streams for video streaming via USB in a manner such that the necessary quality of video streaming is maintained. The present invention is further aimed at being applicable in conjunction with standard USB Video drivers, in order to replace existing Fire Wire (iLink) interfaces.
OBJECT AND SUMMARY OF THE INVENTION
It is an object of the invention to provide a method for preparing, at a source, a data stream for transmitting via a USB link to a sink as defined in the opening paragraph, a method for re-assembling, at a sink, a data stream being received from a USB link as defined in the second paragraph and a method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink as defined in the third paragraph, in which the disadvantages defined above are avoided.
The objects defined above are achieved according to the present invention with a method for preparing a data stream at a source which is characterized in the way defined below, that is:
A method for preparing, at a source, a data stream comprising a plurality of data packets for transmitting via a USB link to a sink, the method comprises: providing each data packet with a time stamp and handing over the time stamped data packets to the USB link.
The objects defined above are achieved according to the present invention with a method for re-assembling, a data stream at a sink which is characterized in the way defined below, that is:
A method for re-assembling, at a sink, a data stream comprising a plurality of data packets being received from a USB link, the method comprises: receiving the data packets, buffering them and re-assembling the data stream by releasing each of the buffered data packets at a time which is defined by the time coded in the time stamp plus a constant time delay.
The objects defined above are achieved according to the present invention with a method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink which is characterized in the way defined below, that is:
A method for transmitting a data stream comprising a plurality of data packets from a source via a USB link to a sink, comprising: preparing, at the source, the data stream by providing each data packet with a time stamp and handing over the data packets to the USB link; transmitting the prepared data stream via the USB link; re-assembling, at a sink, the data stream by receiving the data packets, buffering the data packets and re-assembling the data stream by releasing each of the buffered data packets at a time which is defined by the time coded in the time stamp plus a constant time delay.
In order to achieve the object defined above, with a computer program product according to the invention characteristic features are provided so that a computer program product according to the invention is directly loadable into the memory of a programmable device and comprising software code portions for performing the steps of a method according to the invention when said product is run on the device.
In order to achieve the object defined above, a computer according to the invention comprises an arithmetic- logic unit and a memory and processes the computer program product according to the above paragraph.
The characteristic features according to the invention provide the advantage that packet jitter is completely removed from a data stream that is transferred in packets over a high-speed USB endpoint. The removal of packet jitter from the stream allows to use standard USB Video drivers and supports these USB video drivers to be adopted by portable and non portable video consumer products such as USB video streaming devices. It further allows for replacing existing Fire Wire (iLink) interfaces. It has to be pointed out that with the present invention the quality of video streaming with USB devices is fully maintained.
The measures as claimed in claim 2 or claim 5, respectively, provide the advantage that the time stamp is synchronized with USB microframe counters.
The measures as claimed in claim 3 or claim 6, respectively, provide the advantage that the accuracy of the time stamp is further increased.
The measures as claimed in claim 7 or claim 8, respectively, provide the advantage that the sink microframe counter has only to be initialized/loaded at the beginning of a data stream, i.e. when the first packet of this data stream is received, whereas subsequent data packets have no effect on the counter.
The measures as claimed in claim 9 provide the advantage that the buffers are widely configurable.
It should be noted that the features of the inventive method can be directly implemented in USB devices.
The aspects defined above and further aspects of the invention are apparent from the exemplary embodiment to be described hereinafter and are explained with reference to this exemplary embodiment.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be described in more detail hereinafter with reference to an exemplary embodiment. However, the invention is not limited to this exemplary embodiment.
Fig. 1 shows a schematic timing diagram illustrating the methods according to the present invention.
Fig. 2 shows an embodiment of the time stamp which is added to data packets according to the present invention.
Fig. 3 shows a block circuit diagram of the hardware circuits to be employed in a sink according to the present invention. Fig. 4 shows a buffer array and its use according to the present invention.
DESCRIPTION OF EMBODIMENTS
Fig. 1 shows a schematic timing diagram illustrating the inventive method for transmitting a data stream DS comprising a plurality of data packets Px (e.g. with x = 1 ... 6) from a source 1 via a USB link 2 to a sink 3. The source 1 may be any device comprising a USB interface, like a USB data streaming device, a personal computer, or the like. In the present embodiment a software application is running on the source 1 which software application inputs the data stream DS which comprises said plurality of data packets Pl to P6. The data packets Px have defined packet lengths and respective offsets in time from each other. The software application may for instance be configured as a video player software. The software application inputs the data packets Px to an audio/video layer 4 within the source 1. The audio/video layer 4 is implemented as a computer program or a software driver, respectively. For instance, the audio/video layer 4 can be implemented as a USB Video Class (UVC) layer. The audio/video layer 4 prepares the data packets Pl to P6 in that it adds a time stamp APTx (with x = 1 ... 6) to each of them such that the output of the audio/video layer 4 are time stamped data packets Qx (with x = 1 ... 6). These time stamped data packets Qx are handed over by the audio/video layer 4 to data transferring means 5 within the source 1, like a RAM and an ATX bus. Said data transferring means 5 cooperate with the USB link 2 according to the USB standard, wherein the USB link 2 is controlled by a standard USB driver which reads the time stamped data packets Qx and handles their transmission over the USB link 2. It has to be noted that although the whole information, namely the time stamps APTx and the contents of the time stamped packets Qx will be maintained during their transmission over the USB link 2 their time relation to each other is not necessarily maintained during USB transmission. Rather, the time stamped data packets Qx are packed into bus packets By (e.g. with y = 1 ... 4), wherein one or more time stamped packets Ql - Q6 may be packet into a single bus packet Bl to B4. For instance, the time stamped data packets Q2 and Q3 are packed into the bus packet B2. Similarly, the time stamped data packets Q5 and Q6 are packed into the bus packet B4. On the other hand, the time stamped data packets Ql and Q4 are each packed into a separate bus packet Bl and B3, respectively.
The USB link 2 transmits the bus packets Bl - B4 within respective USB micro frames UF each having a length of 128 μs. As can be seen in Fig. 1 at each USB micro frame UF a maximum of one bus packet Bl - B4 is transmitted. When the bus packets Bl - B4 are received at the sink 3 they are handed over to data receiving means 6, e.g. comprising an ATX bus and a RAM, which data receiving means 6 transform the bus packets Bl - B4 into received bus packets Rl - R4, wherein the contents of the bus packets Bl - B4 correspond to the contents of the received bus packets Rl - R4, and store them in a buffer 8. This buffer 8 may be configured as a buffer array comprising three array buffers (BUFFER 1, BUFFER 2, BUFFER 3) being organized as a ring buffer as shown in Fig. 4. during each USB microframe UF one of the array buffers BUFFER 1, BUFFER 2, BUFFER 3 is filled with the respective received bus packet Rl - R4, wherein previously stored data are overwritten. For instance, in Fig. 4 a situation is shown when the first array buffer BUFFER 1 contains the received bus packet R2, the second array buffer BUFFER 2 contains the received bus packet R3 and the third array buffer BUFFER 3 contains the receive bus packet R4. Since each of the received bus packets Rl - R4 may contain one or more time stamped data packets Qx each of which comprising a time stamp APTx and a data packet Px each array buffer BUFFER 1 , BUFFER 2, BUFFER 3 comprises a payload header PH that contains information about the momentary filling level with time stamped data packets Qx. The number of array buffers and their lengths, respectively, are to be selected such that a buffer overflow is prevented. For instance, in the present example the buffer 8 is configured to contain a maximum of nine time stamped data packets Qx, i.e. three time stamped data packets Qx in each array buffer BUFFER 1, BUFFER 2, BUFFER 3. Assuming that the payload headers PH have a length of 2 bytes, the time stamps APTx have a length of 4 bytes and the data packets Px are MPEG-TS packets having a length of 188 bytes each of the array buffers BUFFER 1, BUFFER 2, BUFFER 3 must have a length of 578 bytes.
In a preferred embodiment of the invention the time stamp APTx comprises the following data fields, being depicted in Fig. 2:
• A reserved field RES for future enhancements. This reserved field is e.g. 7 bits long and shall be ignored at the moment.
• A source microframe count value field OMFC for entering the current count value of a source microframe counter (not shown in the drawings) at the time when the respective data packet Px is provided with its time stamp APTx. Preferably, this source microframe count value field OMFC is 13 bits long and counts cycles having a length of 125 μs (corresponding to the length of USB micro frames). The value in this field shall wrap around to zero after reaching 7999. • A source microframe offset value field OMFO for entering the current count value of a source microframe offset counter being implemented by a counter (not shown in the drawings) for counting ticks of a constant frequency signal at the time when the data packet Px is provided with its time stamp APTx. Preferably, this source microframe offset value field OMFO is 12 bits long and counts ticks of a 27 MHz clock signal. The value in this field shall be reset to zero at each microframe boundary or after reaching 3374 (3374 • 1/27 MHz = 124,96 μs).
The source microframe count value field OMFC and the source microframe offset value field OMFO fields collectively indicate the time when the corresponding packet Px was delivered from the application to the audio/video layer 4 at the source 1.
The USB data stream transmission method according to the present invention assumes microframe phase synchronization between the source audio/video layer 4 and a sink audio/video layer 7 at the sink 3. There shall be a fixed time delay TD between a sink microframe count value IMFC being counted at the sink 3 and the source microframe count value OMFC at the source 1 and this fixed time delay TD shall remain constant during the course of transmitting the data stream DS from the source 1 to the sink 3. In Fig. 1 this fixed time delay TD is shown for the pairs of data packets Ql and Pl as well as Q2 and P2, respectively. It should be noted that there is also some time delay between the moment when the application inputs the data packets Px to the audio/video layer 4 and the moment when the time stamp APTx is added to the data packets Px. However, since this second time delay is rather small and can be regarded as being constant it can easily be considered when defining the fixed time delay TD.
Now turning to Fig. 3 the configuration of the sink 3 is explained. The sink 3 comprises a sink microframe counter 12 having an input being connected with the output of a microframe cycle generator 13 for generating pulses having a cycle time of 125 μs. The sink microframe counter 12 counts the pulses of the microframe cycle generator 13 and delivers the count value as the sink microframe count value IMFC.
The sink 3 further comprises a sink microframe offset counter 14 for counting ticks of a constant frequency signal being generated by a constant frequency signal generator 15. The frequency of said signal is set to 27 MHz.
The sink audio/video layer 7 shall keep each data packet Px stored in the buffer 8 until its associated APTx value, i.e. the source microframe count value OMFC and the source microframe offset value OMFO, matches the sink microframe count value IMFC and the sink microframe offset value IMFO plus an implementation-dependent constant time delay value TD. In order to accomplish this task the sink audio/layer 7 reads the source microframe count value OMFC and the source microframe offset value OMFO of that data packet Px from the buffer 8 which is the next to be inserted in a re-assembled data stream and feds these values to a comparator 16. The comparator compares the source micro frame count value OMFC and the source micro frame offset value OMFO with the actual sink micro frame count value IMFC and the actual sink micro frame offset value IMFO and releases the data packet Px when the source micro frame count value OMFC and the source microframe offset value OMFO match the sink microframe count value IMFC and the sink microframe offset value IMFO, respectively. However, in order to appropriately take the time delay TD into consideration either the comparator 16 has to subtract said time delay TD from the read sink microframe count value IMFC and the sink microframe offset value IMFO each time when a comparison step is carried out, or the time delay TD has to be considered during initialization of the sink microframe counter 12 and optionally of the sink microframe offset counter 14, as will be explained below:
In principle, initialization of the sink microframe counter 12 and the sink microframe offset counter 14 as well as selecting an appropriate length of the time delay TD is implementation-dependent. Initialization of the counters and selecting the time delay TD has to be done so that buffer overflow and underflow will not occur during the course of transmission of the data stream DS. The sink microframe counter 12 and the sink microframe offset counter 14 are initialized when and only when the first time stamp APTl can be read after the first data packet Pl has been stored in the buffer 8 at the beginning of transmission of a data stream DS. It has to be emphasized that the time stamps APTx of subsequently received data packets Px have no effect on the sink microframe counter 12 and the sink microframe offset counter 14. To cope with the inherent packet delivery jitter over the USB link 2, an appropriate time delay TD having a length of several micro frames is selected and this time delay TD is subtracted by a subtractor 11 from the first time stamp APTl and the resulting difference DIFF is provided to the sink microframe counter 12 as an initialization value. When the sink microframe counter 12 receives an initialization control signal INIT it loads the initialization value DIFF into its counter value. Thereby the sink microframe counter 12 is set to be several micro frames behind the source microframe counter. For instance, if the time stamp APTl of the first data packet Pl in a data stream is exactly six micro frames behind the sink microframe count value IMFC plus the sink microframe offset value IMFO local, a time delay value TD of nine micro frames can be subtracted from the sink microframe counter 12 during initialization so that this particular packet Pl will stay in the buffer 8 for exactly three micro frames. Due to the inherent packet delivery jitter over USB, the successive packets Px will stay in the buffer 8 between one and five microframes before being released. Therefore, the size of the buffer 8 should be big enough to store at least five micro frames worth of data.
The invention may be embedded in form of either hardware or by the aid of software executable by a data processing device that processes data in form of data streams. Such a data processing device can e.g. be realized as a personal computer or a portable computer. In many situations a computer program product that comprises software code portions for performing the steps of the methods according to the invention when the computer program product is run on the data processing device is already pre-stored in such a data processing device, e.g. in a ROM or EPROM or any other permanent memory. It may also be that the computer program product can be fed into the data processing device by the aid of a data carrier on which the computer program product is stored. In both cases the computer program product is typically loaded into the working memory of the device, e.g. the RAM, and software portions of the computer program are executed by a processor of the device.
It can be mentioned that the invention can also be realized by means of a computer program product, which can reside in a memory of a device and which can be executed by a processor of said device or which can reside on a computer readable medium, e.g. a solid state memory device or an optical data carrier like a CD, DVD or a network based server or the like, such that the computer program can be loaded from the computer readable medium into a device, e.g. a computer or laptop or whatsoever, where it will be executed. It should be noted that the above-mentioned embodiments illustrate rather than limit the invention, and that those skilled in the art will be able to design many alternative embodiments without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word "comprising" does not exclude the presence of elements or steps other than those listed in a claim. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The invention may be implemented by means of hardware comprising several distinct elements, and/or by means of a suitably programmed processor. In the device claim enumerating several means, several of these means may be embodied by one and the same item of hardware. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.

Claims

CLAIMS:
1. A method for preparing, at a source (1), a data stream (DS) comprising a plurality of data packets (Px) for transmitting via a USB link (2) to a sink (3), the method comprises: providing each data packet (Px) with a time stamp (APTx) and handing over the time stamped data packets (Qx) to the USB link (2).
2. A data stream preparing method as claimed in claim 1, wherein the source (1) is provided with a source microframe counter being adapted to count micro frame cycles, e.g. having a cycle length of 125 μs, wherein the time stamp (APTx) comprises a source microframe count value field (OMFC) for entering the current count value of the source microframe counter when the data packet (Px) is provided with the time stamp (APTx).
3. A data stream preparing method as claimed in claim 2, wherein the source is provided with a source microframe offset counter being adapted to count ticks of a clock signal having a constant frequency, e.g. 27 MHz, wherein the time stamp comprises a source microframe offset value field (OMFO) for entering the current count value of the source microframe offset counter when the data packet is provided with the time stamp.
4. A method for re-assembling, at a sink (3), a data stream comprising a plurality of data packets being received from a USB link (2), the method comprises: receiving the time stamped data packets (Qx), buffering them and re-assembling the data stream (DS) by releasing each of the buffered data packets (Px) at a time which is defined by the time coded in the time stamp (APTx) plus a constant time delay (TD).
5. A data stream re-assembling method as claimed in claim 4, wherein the sink (3) is provided with a sink microframe counter (12) being adapted to count sink microframe cycles, e.g. of a cycle length of 125 μs.
6. A data stream re-assembling method as claimed in claim 5, wherein the sink (3) is provided with a sink microframe offset counter (14) being adapted to count ticks of a clock signal having a constant frequency, e.g. 27 MHz.
7. A data stream re-assembling method as claimed in claim 5, wherein when the first time stamped data packet (Ql) of the data stream is received the sink microframe counter (12) is initialized with the source microframe counter value (OMFC) being contained in the time stamp (APTl) of the first data packet (Ql), wherein the time delay (TD) for releasing all subsequent data packets (Px) is subtracted from the sink microframe count value (IMFC) of the sink microframe counter (12).
8. A data stream re-assembling method as claimed in claim 5, wherein when the first data packet (Ql) of the data stream is received the time delay (TD) is subtracted from the source microframe counter value OMFC being contained in the time stamp (APTl) of the first data packet (Ql) the difference (DIFF) is loaded into the sink microframe counter (12) as an initialization value.
9. A data stream re-assembling method as claimed in claim 5, wherein the buffer (8) is configured as a buffer array.
10. A method for transmitting a data stream (DS) comprising a plurality of data packets (Px) from a source (1) via a USB link (2) to a sink (3), comprising: preparing, at the source (1), the data stream according to the data stream preparing method as claimed in any of claims 1 to 3; transmitting the prepared data stream via the USB link (2); re-assembling, at the sink (3), the data stream according to the data stream re-assembling method as claimed in any of claims 4 to 9.
11. A computer program product being directly loadable into the memory of a programmable device, comprising software code portions for performing the steps of a method according to claims 1 to 9 when said product is run on the device.
12. A computer program product as claimed in claim 11, wherein the computer program product is stored on a computer readable medium.
13. A computer with an arithmetic- logic unit and a memory, wherein the computer is adapted to process the computer program product as claimed in claim 11.
PCT/IB2008/050878 2007-03-14 2008-03-11 Method for transmitting a data stream comprising a plurality of data packets from a source via a usb link to a sink WO2008110986A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07005212 2007-03-14
EP07005212.1 2007-03-14

Publications (2)

Publication Number Publication Date
WO2008110986A2 true WO2008110986A2 (en) 2008-09-18
WO2008110986A3 WO2008110986A3 (en) 2008-11-06

Family

ID=39684095

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2008/050878 WO2008110986A2 (en) 2007-03-14 2008-03-11 Method for transmitting a data stream comprising a plurality of data packets from a source via a usb link to a sink

Country Status (1)

Country Link
WO (1) WO2008110986A2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652627A (en) * 1994-09-27 1997-07-29 Lucent Technologies Inc. System and method for reducing jitter in a packet-based transmission network
EP1229690A1 (en) * 2000-08-21 2002-08-07 Sony Corporation Data stream processing device and method, and program storage medium
US20050180732A1 (en) * 2004-02-02 2005-08-18 Tachio Ono Transfer apparatus
US20060165201A1 (en) * 1998-10-02 2006-07-27 Jea-Yong Yoo Method and apparatus for recording time information for digital data streams

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5652627A (en) * 1994-09-27 1997-07-29 Lucent Technologies Inc. System and method for reducing jitter in a packet-based transmission network
US20060165201A1 (en) * 1998-10-02 2006-07-27 Jea-Yong Yoo Method and apparatus for recording time information for digital data streams
EP1229690A1 (en) * 2000-08-21 2002-08-07 Sony Corporation Data stream processing device and method, and program storage medium
US20050180732A1 (en) * 2004-02-02 2005-08-18 Tachio Ono Transfer apparatus

Also Published As

Publication number Publication date
WO2008110986A3 (en) 2008-11-06

Similar Documents

Publication Publication Date Title
EP2548355B1 (en) Media stream filtering and routing in accordance with a recovered media clock
RU2642834C2 (en) Transmitting device, transmitting method, receiver and receiving method
KR100994940B1 (en) A method for transmitting data packets from a transmitter to a receiver through a transmission medium and a transmission system comprising a transmitter and a receiver mutually coupled through a transmission medium
EP1848221B1 (en) Method for reconstructing system time clock (STC) without carrying PCR
US7706379B2 (en) TS transmission system, transmitting apparatus, receiving apparatus, and TS transmission method
JP6516767B2 (en) MMTP decapsulation buffer signaling and operation
US6577813B1 (en) Transmitting system and transmitting apparatus
US20150215058A1 (en) Mechanism for facilitating dynamic counter synchronization and packetization in high-definition multimedia interface and mobile high-definition link
US7039114B2 (en) Data separation and decoding device
WO2008110986A2 (en) Method for transmitting a data stream comprising a plurality of data packets from a source via a usb link to a sink
JP2004128756A (en) Time stamp correction circuit and correcting method
JPH1168801A (en) Signal processing circuit
CN108174282A (en) Error correction method, device, electronic equipment and computer storage media
JP5241582B2 (en) Multimedia transmitter
CN117440063A (en) Signal transmission method and device
JP6126676B1 (en) Private section packet structure, null packet structure and receiving modem
KR100568068B1 (en) PCR correction apparatus and method in transport stream transmission system
KR100611997B1 (en) Packetizer for high speed serial bus and method thereof
JP2006080715A (en) Transport stream transmitter and receiver
JP2001053701A (en) Stream multiplexer
JP2006067427A (en) Data processor and data processing method
JP2000049806A (en) Communication device

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08719638

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08719638

Country of ref document: EP

Kind code of ref document: A2