Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OF DATA SYNCHRONISATION
Document Type and Number:
WIPO Patent Application WO/2003/094518
Kind Code:
A1
Abstract:
A method of data synchronisation in a broadcast data receiver (BDR) (4) is provided. The BDR (4) receives data broadcast from a remote location via cable, satellite and/or terrestrial communication means and decodes said data to provide video, audio and/or auxiliary data. The method includes the steps of previewing the data ahead of a start point (106) at which decoding of a data stream (102, 104) is to be initiated in order to identify a time stamp (108) in the data stream, calculating the time period that will be taken to reach the time stamp (108) from the start point (106) and subtracting this time period from the time stamp (108) to provide a pseudo clock reference value for the playback of recorded video and audio data streams (102, 104) from the BDR (4).

Inventors:
CORBY STEVEN (GB)
Application Number:
PCT/GB2003/001749
Publication Date:
November 13, 2003
Filing Date:
April 24, 2003
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PACE MICRO TECH PLC (GB)
CORBY STEVEN (GB)
International Classes:
H04N7/52; (IPC1-7): H04N7/24; H04N7/62
Domestic Patent References:
WO2000072600A22000-11-30
Foreign References:
US5726989A1998-03-10
US5594660A1997-01-14
US5559999A1996-09-24
Other References:
"INFORMATION TECHNOLOGY - GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO INFORMATION: SYSTEMS", INTERNATIONAL STANDARD, NEW YORK, NY, US, 15 April 1996 (1996-04-15), pages I - XY,1-119, XP000667435
Attorney, Agent or Firm:
BAILEY WALSH & CO LLP (Leeds LS1 2SD, GB)
Download PDF:
Claims:
Claims:
1. A method of data synchronisation in a broadcast data receiver (BDR) (4), said BDR (4) receiving data broadcast from a remote location via cable, satellite and/or terrestrial communication means and decoding said data to provide video, audio and/or auxiliary data, and characterised in that said method includes the steps of previewing the data following on from a start point (106) at which decoding of a data stream (102,104) is to be initiated in order to identify a time stamp (108) in the data stream, calculating the time period that will be taken to reach the time stamp (108) from the start point (10, 6) and subtracting this time period from the time stamp (108) to provide a pseudo clock reference value for the playback of recorded video and audio data streams (102,104) from the BDR (4).
2. A method according to claim 1 characterised in that the data stream that is previewed is either the video or audio data stream (102,104) and the other of said video or audio data stream (102,104) is synchronised therewith.
3. A method according to claim 2 characterised in that the video data stream (104) is previewed and the audio data stream (102) is synchronised therewith.
4. A method according to claim 1 characterised in that the BDR (4) is provided with previewing means to allow previewing of the data stream (102,104) from the start point (106) without decoding the data stream (102,104).
5. A method according to claim 4 characterised in that the previewing means is software in the form of a file system.
6. A method according to claim 1 characterised in that audio and video data streams (102,104) are recorded and stored in memory in or associated with the BDR (4) prior to synchronisation of the data streams (102,104) on playback of the data streams from the memory.
7. A method according to claim 6 characterised in that the memory is in the form of a hard disk drive (12).
8. A method according to claim 3 characterised in that the number of video frames in the data stream (104) are counted or parsed in order to identify the time period that will pass from the start point until the first time stamp (108) is encountered in the data stream (104).
9. A method according to claim 8 characterised in that the number of video picture layer start codes are counted in the video data stream (104) between the start point and the first time stamp (108).
10. A method according to claim 1 characterised in that the calculation used to provide a pseudo clock reference value is: first time stamp encountered (108) minus (the number of video picture layer start codes identified up until the first time stamp encountered x 90,000/the number of video frames per second).
11. A method according to claim 1 characterised in that both video and audio data streams (102, 104) are previewed from start points (106) substantially simultaneously and, the first pseudo clock reference to be calculated in respect of one data stream is used by the which data is to be decoded from.
Description:
Method of Data Synchronisation This invention relates to a method of data synchronisation of video and/or audio data in a broadcast data receiver (BDR).

Television systems typically include a BDR, also referred to as a set top box, which is connected to or forms part of a display screen, such as a television set. The BDR receives digital data broadcast from a broadcaster at a remote location via cable, satellite and/or terrestrial communication means. The BDR then processes and decodes the data to provide video, audio and/or auxiliary data for display on the display screen and/or listening to via speakers. Most BDRs also function as personal video recorders and have memory, typically in the form of a hard disk drive (HDD) for storing recorded video and/or audio data streams therein.

Live data streams typically comprise audio data, video data and a program clock reference (PCR), which is used by the BDR to synchronise the audio and video data together with the broadcaster head-end. The PCRs are sent to the BDR from the broadcaster at pre-determined time intervals with an accurate time stamp, typically at a frequency of 20hz. When BDRs record a broadcast data stream, the data is stored in the HDD and is played back at a user or broadcaster selected point in time in "bursts"from the BDR memory. When the data is played back from the memory, the PCRs become"bursty", that is the timing information within the data stream when the data was broadcast live is no longer relevant for the recorded data. Thus, the PCRs no longer reflect the time stamps of the encoded data streams.

As the audio and the video data need to be synchronised together on playback, there is a requirement for the audio and video clocks to be synchronised. This may not be possible when the PCRs become"bursty".

Due to the irrelevance of the PCR packets of data in recorded data streams, these PCR packets of data are conventionally not recorded. In an attempt to overcome the problem of the video and audio data being non-synchronised or out of sync, the BDR is currently provided with means to begin to decode the video data whilst muting the audio. After a noticeable delay a video presentation time stamp (PTS) is encountered in the data stream.

The video data continues to be decoded and the audio data stream is sent the video PTS encountered, as if it were a PCR value. The audio can then be synchronised with the video. A problem associated with the current method is that there is a noticeable delay (approximately 1 second) before the first available video PTS is detected in the data stream. This results in a muted period every time the playback of video/audio is initiated, which is undesirable.

It is therefore an aim of the present invention to provide an improved method of synchronising video and audio data in a BDR which overcomes the abovementioned problems.

According to a first aspect of the present invention there is provided a method of data synchronisation in a broadcast data receiver (BDR), said BDR receiving data broadcast from a remote location via cable, satellite and/or terrestrial communication means and decoding said data to provide video, audio and/or auxiliary data, and characterised in that said method includes the steps of previewing the data stream following on from a start point at which decoding of a data stream is to be initiated in order to identify a time stamp in the data stream, calculating the time period that will be taken to reach the time stamp from the decode start point and subtracting this time period from the time stamp to provide a pseudo clock reference value for the playback of recorded video/audio data streams from the BDR.

The pseudo clock reference is used to allow synchronisation of recorded audio and video data streams on playback in order to remove the delay normally associated with synchronisation of the data streams. This is because the time taken to preview or read ahead and to perform the calculation or estimation of time required to reach the time stamp identified in the data stream is substantially quicker than actually decoding the data stream until a time stamp is reached.

The data stream that is previewed can be either the audio or video data streams and the other of said data streams is synchronised to the data stream that is previewed.

In a preferred embodiment the video data stream is previewed or read ahead to identify a suitable PTS which is then used to synchronise the audio data therewith.

Preferably the BDR is provided with previewing means to preview or read ahead of the decode start point to identify the first or next time stamp or PTS in the data stream from the start point without actually decoding the data stream.

Preferably a file system of the BDR is used to read ahead in the broadcast data stream. The file system is software provided in the BDR for enablement of any application being executed currently with respect to the memory of the BDR.

Preferably the audio and video data streams received by the BDR are recorded and stored in memory in or associated with the BDR and the method of the present invention is employed on playback of the data streams from the memory.

Preferably the memory in which the video and audio data streams are recorded is in the form of a hard disk drive (HDD).

Preferably the number of video frames of the video data stream are counted or parsed in order to identify the time period that will pass from the decode start point until the first PTS is encountered. This involves counting the number of video picture layer start codes encountered during this period. The following calculation is then undertaken by microprocessing means in the BDR: Pseudo PCR = First PTS encountered- (number of video picture layer start codes identified up until the first PTS encountered x 90000/number of video frames per second), where 90,000 is based on the 90khz PCR clock.

The pseudo PCR is then applied to the decode start point of the audio and video data streams. The video frame rate is typically fixed at 25 or 30 frames per second, depending on whether the video format is PAL (Phase Alteration by Line) or NTSC (National Television System Committee) respectively.

Once a pseudo clock reference value (PCR) has been calculated according to the present invention, this reference value is <BR> <BR> applied to the data streams in a conventional manner (i. e. , the pseudo reference value is applied in the same manner as the <BR> <BR> PCR value is applied in live broadcast data streams. ) For example, when the pseudo clock reference value is calculated, this value is sent to the audio driver in the BDR. In the meantime (i. e. substantially simultaneously), the audio driver is scanning ahead to look for a PTS value in the audio data stream.

Once the PTS value has been identified, the driver can calculate whether this value is meant to come before or after the pseudo calculated clock reference value. Thus, if the audio driver finds that the PTS is to be presented after the pseudo reference time, the audio driver will repeat audio frames to get to the correct location in the data stream based on the time reference. This removes the delay normally associated with decoding the video stream until a PTS is identified, which in the case of BS ISO/IEC 13818-1 is 700ms.

The advantages of the present invention are that the resulting video and audio display appears smooth and continuous without any delays therein. This ultimately results in increased enjoyment of the user of the BDR when watching the resulting video/audio display. In addition, the user is not required to rewind through the data to avoid missing the portion of the video/audio missed due to a lengthy mute, as is currently the case with prior art systems.

An embodiment of the invention will now be described with reference to the following description and figures 1 and 2.

A television system 2 is provided which includes a BDR 4 connected to a display screen in the form of a television set 6 and speakers 8 via connections 10. The BDR is provided with a mass storage system in the form of a HDD 12. Data is broadcast to the BDR 4 from a broadcaster at a remote location and stored on the HDD 12 for future viewing.

In accordance with the present invention a method of synchronising the playback of recorded video and audio data from the HDD of the BDR is provided. In this example, the BDR uses software in the form of a file system to read ahead of the video data stream stored in the HDD from a particular start point to identify a PTS that can be used as the basis for calculating a pseudo PCR, without actually decoding the data stream.

Thus, the video data stream is read ahead from a decode start point to allow the file system to identify a) a 3 byte packetised elementary stream (PES) packet synchronisation string (0x000001) (or the no. of picture layer start codes); and b) a PES packet containing a PTS.

The system does not provide support for"part"packets of data, such that any data preceding the first 0x000001 will be lost.

Once the first full PES packet has potentially been found, the following'n'bytes contain information about that packet (where 'n'is an arbitrary number of bytes), including the length of the data packet and whether it contains a PTS. In this manner, the initial data portion of the data stream is used to read ahead in the transport stream and the amount of data can be calculated up until a packet of data including a PTS is identified.

Once a PTS has been identified, the time that will be taken to reach this video PTS from the decode start point is calculated.

The calculation for expressing the pseudo PCR is obtained in terms of a 90khz PCR clock and is as follows: Precise time in stream or pseudo PCR = First PTS encountered - (no. of picture layer start codes encountered x (90000/no. of frames per second).

The number of frames per second is 25 for PAL or 30 for NTSC.

The microprocessor of the BDR performs the calculations.

Alternatively hardware decoders provided in the BDR can perform the calculations.

A detailed example of the calculation of the present invention is shown in figure 1 in respect of audio and PAL video data streams 102, 104.

1. The video stream 104 is read ahead from decode start point 106 to identify the next video PTS 108, which is 1,000, 000 in this example.

2. Whilst looking for the PTS 108, a tally of'S' (picture start codes) encountered is made.

3. As 17 picture start codes are encountered in figure 1 between the decode start point 106 and the PTS 108, the pseudo value associated with the arbitrary starting point of the video stream is Pseudo PCR = (1,000, 000- 17 x (90, 000/25) = 938,000 4. Program the system clock with the PCR value 938,000 5. Begin to decode both the audio and video streams from the arbitrary start point using the system clock value 938,000.

The above example assumes a starting point from empty bit buffers. This is achieved when an arbitrary point in the transport stream (both video and audio) is taken and the data streams are decoded from this point. This scenario is typically achieved when decoding a data stream from the beginning or when leaving a trick mode, such as a fast forward or rewind mode or skipping to other parts of the data stream. However, the present invention can be used in any application where the bit buffers are not in a synchronised state.

There is no guarantee that both the video and audio will start up <BR> <BR> simultaneously, i. e. , they may not be synchronised. However, a choice has to be made as to whether it is the video or audio to which the other is synchronised to. In this example, it is video to which the audio is synchronised to for aesthetic reasons, i. e., to allow the video to be kept running throughout the synchronisation method. However, the video could be synchronised to the audio data stream if necessary.

A different situation arises when data is decoded after a pause, assuming that the buffers are not flushed at any point during the pause. As the decoders have been synchronised when entering the pause, there is no reason to assume that the video and audio will be out of sync when leaving the pause. As such, the above described synchronisation method does not need to be performed again.