Abstract:
A method for embedding a non-audio file into a compressed audio file is disclosed. The disclosed method is capable of decoding and constructing previously encoded audio files with embedded non-audio information. The method of the present invention also includes steps for embedding the non-audio information at the proper time within the compressed audio file, wherein the decoded non-audio information can link to an Internet document for viewing during playback of the decoded audio source.

Description:
CROSS REFERENCES TO RELATED APPLICATIONS  
       [0001]    This application claims the benefit of U.S. Provisional Application 60/183,765 filed Feb. 18, 2000. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention generally relates to compressed files and, more particularly, to linking files of one type with compressed files of another type.  
         BACKGROUND OF THE INVENTION  
         [0003]    The process of compressing an audio source, such as voice or music, and storing it digitally into a file is conventionally known. An encoder is conventionally employed to compress the audio file. A user connected to the Internet can download encoded compressed files, such as files in the MP3 format, run software to decode the file and listen to the audio source. The MP3 format is well known in the art and refers to Layer 3 audio files of the Motion Picture Experts Group (MPEG) international standard for representation, compression, and decompression of motion pictures and associated audio on digital media. Conventionally, a decoder is employed to decode the encoded digital audio file.  
           [0004]    A drawback of conventional methods is that compressed audio files do not include information and links to Internet documents that can be viewed during audio playback. Conventional methods require the listener of the decoded audio file to manually make any such links to Internet documents.  
           [0005]    What is needed is the embedding of Internet links or other information at the proper time in the compressed audio file so that, upon decoding the audio file, a listener of the audio file could view information or be linked to a document, for example, an Internet document.  
         SUMMARY OF THE INVENTION  
         [0006]    The present invention is directed to an encoder that is used to encode files to be transmitted, for example, over the Internet, by linking documents with compressed audio files. In one embodiment, the encoded transmitted document is provided by embedding the addresses of the Internet documents along with corresponding timing information into the compressed file. The timing information indicates when the compressed information should appear during playback of the compressed files.  
           [0007]    In a preferred embodiment, the encoder will use the timing information and embed the corresponding displayable information, such as the Internet address or other displayable data at a selected time within the audio file.  
           [0008]    The present invention is a method for encoding non-audio information with a compressed audio file, comprising the steps of receiving a non compressed or compressed audio files; receiving at least one non-audio data file; and encoding in the compressed audio file each non-audio data file at a selected point in the audio stream such that each non-audio data file is reproducable by a decoder at a selected time interval along with the audio within the compressed audio file. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]    [0009]FIG. 1 is a flow chart illustrating of the process steps of the encoder algorithm according to an exemplary embodiment the present invention;  
         [0010]    [0010]FIG. 2 is a flow chart illustrating an exemplary embodiment of the process steps of the decoder algorithm according to an exemplary embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0011]    In an embodiment of the invention, to link documents (i.e. Internet documents) with compressed audio files such as “.MP3” files, the addresses of the Internet documents along with the corresponding timing information are embedded into the compressed files. The timing information indicates when the linked document, or other displayable information, should appear during the playback of such files. When a file encoded by the method of the present invention is played back in a decoder which is aware (i.e. can detect) such an encoding scheme, it extracts the embedded information while decompressing the audio information and uses the embedded information to reference the documents on the Internet.  
         [0012]    An example of the data that can be embedded according to the present invention is as follows:  
                                                   {           1.0: www.intervideo.com           10.2: www.intervideo.com/mymusic/info1.htm           }                      
 
         [0013]    The number on the left indicates the timing information. For the preferred embodiment, the audio compressor unit of the encoder uses these timing values to embed the corresponding information in the right moment of time. The decoder extracts this information and executes a proper action. The embedded information may also represent displayable information that can be displayed. Preferably, the information is a web page link such that the decoder can open the corresponding web page or web command at the specified times. For the example provided above, at times 1.0 seconds and 10.2 seconds.  
         [0014]    In another embodiment, the encoder embeds the timing information along with the corresponding data. As described above, the data can be the addresses of Internet documents or other text information.  
         [0015]    The method of the present invention can be performed in various systems including a computer system or other device that includes a central processing unit and a display. Preferably, the system has the capability to connect to the Internet.  
         [0016]    [0016]FIG. 1 is a flow chart illustrating the process steps of the encoder method algorithm  10  according to an exemplary embodiment the present invention.  
         [0017]    Referring to the exemplary embodiment in FIG. 1, in Step  20  the encoding process begins and during this step the decoder gets a piece of information (e.g. a text character “c”) to embed. The exemplary embodiment shows the information as text character information, however, any information the decoder can display or otherwise process can be embedded. In Step  30  the encoder reads a block of audio data samples, shown as x_i. In the preferred embodiment, the data samples are frequency domain MP3 compressed audio samples. The present invention however, is not limited to MP3 compressed audio files (samples) but applies to compressed audio files in general. Step  30  also shows, as an example, the reading of a frame. It is well known in the art that an MP3 bitstream comprises frames of compressed data. It is also known there may be more than one audio channel, e.g. stereo, with each channel storing independent samples. The method of the present invention can also be applied to embed different information in each channel.  
         [0018]    Proceeding to Step  40 , the encoder determines whether the maximum value of the audio sample in the block exceeds a threshold value. The threshold value has been determined to be a value below which the embedding of data would unacceptably degrade the audio quality for a user. If the threshold value has not been exceeded by the maximum value of the audio sample, then the method jumps back to Step  30 . If the threshold has been exceeded, then in Step  50  the encoder modifies the least significant bits (LSB&#39;s) of a subset of said block, wherein a digital representation of the information (shown as text character “c” in FIG. 1) is encoded. Preferably, the subset is a block of 16 samples, as shown in Step  50  {x_k through x_k 15}; where k=mod(i_max,16). In Step  60 , a determination is made as to whether the maximum of the modified block samples (shown as x_i_max) exceeds the threshold, shown as “thr”. If the threshold is exceeded, embedding has been successful and there is a branch to Step  20 . If the threshold is not exceeded then two is added to the digital value of the modified sample to exceed said threshold. The value two is chosen because it&#39;s the smallest value that can be added to a number without changing the least significant bit of the binary representation, however the current invention is not limited to this value. Then the process returns to Step  20  for the encoding of the next character.  
         [0019]    [0019]FIG. 2 is a flow chart illustrating the process steps of the decoder algorithm  110  according to an exemplary embodiment of the present invention. This method decodes information (shown as text character “c” for the exemplary embodiment) that was encoded in the encoding method of which an exemplary embodiment is as shown in FIG. 1. In Step  120  the decoder reads a block of encoded audio data samples. Proceeding to Step  130 , a determination is made as to whether the maximum value of the encoded audio sample in the block exceeds a threshold value wherein a maximum value above the threshold indicates that no text characters were embedded. If the threshold is not exceeded, then the process returns to Step  120 . If the threshold is exceeded, then Step  140  is performed wherein the decoder reads the least significant bits (LSB&#39;s) of a subset of the encoded block, wherein a digital data code is decoded. In Step  150 , the decoder determines whether the decoded digital data code represents valid information (shown as “c” in FIG. 2) wherein the decoded information is found in an expected set. Expected set can be chosen in a manner suitable for the desired application. It is also possible that some applications do not require limiting the embedded information to an expected set. For example, an ASCII character set is an example of an expected set, though the present invention is not limited to ASCII characters. If the decoded information is not in the expected set, then the process proceeds back to Step  120 . If the decoded information is in the expected set, then Step  160  is performed wherein the decoded valid information (e.g. character “c” in Step  160 ) is added as new information, and the process then proceeds back to Step  120 .  
         [0020]    While the present invention has been particularly described with respect to the illustrated embodiment, it will be appreciated that various alterations, modifications and adaptations may be made based on the present disclosure, and are intended to be within the scope of the present invention. While the invention has been described in connection with what is presently considered to be the most practical and preferred embodiments, it is to be understood that the present invention is not limited to the disclosed embodiments but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the scope of the appended claims.