The invention relates to a method and apparatus for searching the synchronization signal of a next frame and thus determining the frame length of the current frame in digital encoded signals. More particularly, the invention relates to a method and apparatus for utilizing a lookup table to determine a search region and backward-searching the synchronization signal of the next frame in the search region.
Various digital video/audio processing standards are widely used in the industry to encode the video or audio data into digital encoded signals for further transmission or storing operations. For instance, MPEG audio standard (ISO/IEC 11172-3 and ISO/IEC13818-3) is for compressing and decompressing audio signals with different sampling rates and bit rates. MPEG audio standard defines three layers, which are Layer I, Layer II, and Layer III. The digital encoded signals conforming to MPEG audio standard includes a plurality of frames; each frame includes a plurality of fields. FIG. 1 illustrates the format of a frame specified in the three different layers of the MPEG audio standard. Take MPEG audio layer-1 for example, each frame includes header, alloc, scalefactors, samples, and ANC fields. Though MPEG audio layer I, II, and III have different formats of frames, they have the same header formats, as shown in FIG. 2.
PEG audio standard defines compressing and decompressing audio signals with different sampling rates and bit rates. For some specific sampling rate and bit rate, frames with varying lengths are used to achieve average bit rate. Since each frame may have different length, the actual length of each frame has to be obtained when the digital encoded signal is to be decoded. In U.S. Pat. No. 5,777,992, a method used to calculate the length of a current frame is disclosed, and the following formula is included:
      P    =                  Br        N            ×                        n          S                          F          S                      ,where P represents the number of slots included in the current frame; Br is a bit rate of the digital encoded signal; N is the number of bits included in a slot; nS is the number of samples included in a frame; and FS is the sampling rate of the digital encoded signal.
When a decoder of the related art receives a current frame of the above-mentioned digital encoded signal, the decoder first utilizes the above-mentioned formula to calculate the length of the current frame and then perform the following decoding operations toward the current frame. When P calculated by utilizing the formula is an integer, the current frame includes P slot(s); when the calculated P is not an integer, the current frame possibly includes P′r P′+1 slot(s), wherein P′ is the highest integer whose value is less than P. To correctly decode the digital encoded signals with varying frame lengths, the decoder needs an approach to determine the number of slots (equal to either P′ or P′1) included in the current frame.
In MPEG audio standard, the header includes a padding bit signaling the length of the frame. If the calculated P by utilizing the above-mentioned formula is not an integer, the decoder of the related art checks the padding bit; if the padding bit is 0, the current frame includes P′ slots; if the padding bit is 1, the current frame includes P′+1 slots. In other words, the decoder of the related art utilizes the above-mentioned formula to calculate P and then determine the length of the current frame by checking the padding bit.
In the header of each frame in the digital encoded signal, a synchronization signal is included. The synchronization signal generally owns specific data patterns for easy identification. For digital encoded signals conforming to the MPEG audio standard, the synchronization signal is called ‘syncword’ The data pattern of the syncword is fixed as ‘1111 1111 1111’ in the binary system, which is ‘0xFFF’ in the hexadecimal system. The system of the related art can forward-search the fixed data pattern (‘0xFFF’) from the current frame so as to determine the syncword in a next frame. Afterwards, by calculating the difference of the positions between the syncword of the current frame and the syncword of the next frame, the length of the current frame is obtained.
There have been many MPEG audio encoders accumulated in the market, and some does not encode audio signals in a way strictly conforming to MPEG audio standard. According to MPEG standard, the specific data pattern is exclusively reserved for the syncword and should not appear in any other positions in the frames. However, for some digital encoded signals not strictly conforming to MPEG audio standard, the specific data pattern may appear in other positions in the frames. For instance, in MPEG audio standard, ‘0’ should be utilized as a stuffing bit, so the stuffing sequence is ‘0000 . . . ’ However, some encoders utilize ‘1’ as the stuffing bit, so the stuffing sequence is ‘1111 . . . ’ and may be confused with the syncword (‘1111 1111 1111’). Therefore, the above-mentioned forward-searching method does not work due to the possibility that other data (such as the inappropriate stuffing sequence ‘1111 . . . ’ may be incorrectly interpreted as the syncword, and thus an incorrect frame length of the current frame is obtained.