Nova Patents
EP0895427A2

Audio-video synchronizing

Abstract

A method and apparatus for synchronizing playback of audio and video frames from a program source associates an audio presentation time stamp ("PTS") value with an output audio frame. Selected ones of audio and video data packets include respective audio and video PTS values representing desired playback times of the respective audio and data associated therewith. The selected ones of the audio data packets further include audio frame numbers representing a number of output frames of audio to be played back between the selected ones of the audio data packets. The method comprises storing the audio and video PTS values in respective audio and video PTS tables (302, 304) during an audio demultiplexing process. In addition, the audio frame numbers are stored in frame counters (309) in association with respective PTS values during the demultiplexing process. Thereafter, the process sequentially decodes the audio and video input data to produce respective frames of audio and video which are presented to the user. With the presentation of each audio and video frame, the respective audio and video frame counters (309) are selectively decremented. Upon detecting one of the audio frame counters having a zero value, the audio PTS value for that zero value audio frame counter is retrieved. Thereafter, the playback of the audio and video frames is selectively modified so that frames of audio and video are played back in synchronization.

EP0895427A2, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Projected expiry passed 15 July 2018, 8.2 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

33 claims: 3 independent, 30 dependent

  1. 1
    A method for associating an audio presentation time stamp ("PTS") value with an output frame of audio being a part of a sequence of frames of audio derived by demultiplexing and decoding audio input data in respective audio data packets, the output frames of audio being played back with output frames of video being a part of a sequence of frames of video are derived by multiplexing and decoding video data in respective video data packets, selected ones of the audio and video data packets include respective audio and video PTS values representing desired playback times of the respective audio and video data associated therewith, the selected ones of the audio data packets further including audio frame numbers representing a number of output frames of audio to be played back between the selected ones of the audio data packets, the method comprising the steps of:storing the audio and video PTS values contained in the selected ones of the respective audio and video data packets during respective audio and video demultiplexing processes;storing audio frame numbers in respective audio frame counters during the audio demultiplexing process, each of the audio frame counters being associated with one of the stored audio PTS values;sequentially decoding the audio and video data in the selected ones of the respective audio and video data packets to produce the frames of audio and video, respectively;providing a simultaneous playback of the frames of audio and video to the user;selectively decrementing the audio frame counters in response to presenting each of the frames of audio;detecting one of the audio frame counters having a zero value;and if so, retrieving the audio PTS value corresponding to the one of the audio frame counters;and selectively modifying the playback of the frames of audio and video to synchronize the presentation of the audio and video to the user.
  2. 32
    A method for synchronizing a play back of frames of audio and video output data, the frames of audio and video output data being derived from demultiplexing and decoding audio and video data contained in respective audio and video data packets, selected ones of the audio and video data packets containing presentation time stamp PTS values, and the selected ones of the audio data packets containing audio frame numbers, each of the audio frame numbers representing a number of frames of audio to be played back between the selected ones of the audio data packets, the method comprising:sequentially storing during an audio demultiplexing process of the audio data packets containing PTS values, audio data in respective audio FIFO memory locations;sequentially storing PTS values in first memory locations in an audio PTS memory table during the first demultiplexing process;storing in second memory locations in the audio PTS table during the first demultiplexing process, write pointer locations associated with the data written into the video FIFO memory locations for the selected video data packets containing a PTS value;storing audio frame numbers in counter memory locations in the PTS table during the first demultiplexing process;initiating an audio decoding process simultaneously with the a start audio frame interrupt to a CPU;acquiring a read pointer location of the audio FIFO in response to the start audio frame interrupt;finding a write pointer location in the audio PTS table approximately equal to the read pointer location;decoding the audio data being read from the audio FIFO;presenting a successive audio output frame to the user;decrementing all of the counter memory locations in the audio PTS table by one;detecting any of the counter locations having a zero value;and if so. adjusting a current state of a system time counter to the PTS value in the audio PTS table associated with the counter having a zero value.
  3. 33
    A digital video processor for synchronizing a play back of output frames of audio and video data derived from demultiplexing and decoding audio and video data contained in audio and video data packets and selected ones of the audio and video data packets containing a presentation time stamp value, the video processor comprising:audio and video FIFO memories for sequentially storing the audio and video data contained the respective audio and video data packets;an audio PTS memory table having first memory locations for sequentially storing the PTS values in the selected ones of the audio data packets, second memory locations for storing values representing write pointer locations associated with the data written into the audio FIFO memory location in the selected audio data packets containing a PTS value, and third memory locations functioning as counter locations for storing audio frame numbers, each representing a number of frames of audio to be played back until an occurrence of a subsequent PTS value;and a video PTS memory table having first memory locations for sequentially storing the PTS values in the selected ones of the video data packets, second memory locations for storing values representing write pointer locations associated with the data written into the video FIFO memory locations for the selected video data packets containing a PTS value, and third memory locations functioning as counter locations for storing a value representing a number of frames of video approximately equal to a delay time required for decoding a frame of video data prior to its play back to a user.