Module for reading a data carrier comprising data sequences and information on the data sequences
The invention relates to a module for reading a data carrier comprising data sequences and information on the data sequences, which module is designed for being incorporated in a data processing device.
Modules are known which are designed for reading data carriers, in particular CDs, SACDs, minidisks, or DVD-audio/video, and which are used in the automotive field for incorporation in a car radio. Such modules offer the advantage that the module can always be of the same construction independently of the requirements or wishes of the end users or the car radio manufacturers, for example relating to different fronts or controls. The car radio itself comprises inter alia the front (instrument panel) comprising controls and usually a display, the amplifier electronics, and a tuner unit for radio reception. Modules to be integrated in car radios must comply with stringent requirements such as a small constructional volume in spite of complicated mechanical elements, operation under major shocks and impacts and at high temperatures, and a defined heat balance. It is in particular the small constructional volume and the heat balance that usually do not allow complicated electronic components to be used in a module. The power consumption of a module in the OFF-state should not be above 1 mA, which implies a low power consumption of 12 mW in the case of a 12 V supply voltage. The information made available by a module to a car radio must be arranged such that both a car radio with a very limited display with few digits is capable of displaying the essential information, and also an extensive TFT display, as may be present in combined navigation systems and car radios, can be used for a neat and convenient representation. Besides these requirements, the cost factor is essential in such a module. Modules are known which are capable of reproducing data sequences (for example audio data) in an uncompressed form (for example audio data laid down on any audio CD complying with the Red Book Standard) or in a compressed form (for example MP3 audio data which are stored on CD-ROMs). In this case, for example, one hundred MP3 files may be stored on one CD-ROM, in dependence on their playing length and bitrate. The MP3 files are often present in hierarchical multilevel arrangements (comparable to the file
structures known from the PC). This multilevel arrangement may be comparatively complicated. The number of audio data sequences, which may be large in principle in said complicated multilevel arrangement, constitutes a major challenge for the user management. The simple keying-in of a song number and the subsequent playback of the corresponding audio data sequence represent an unsatisfactory and comparatively uncomfortable manner of access to the various audio data sequences.
It is an object of the present invention to improve a module as described above.
The object is achieved by means of a module for reading a data carrier comprising data sequences and information on the data sequences, with a processor arrangement and a memory arrangement, wherein the module is provided for being incorporated in a data processing device, wherein the memory arrangement is provided for storing at least a portion of the information on the data sequences by means of a first read action, and wherein the processor arrangement is designed, during a second read action in which one of the data sequences is continuously read, for • receiving at least a command demanding information about another one of the data sequences, and • making available said information through access to the memory arrangement. A particular advantage of the invention is the possibility of requesting information about other data sequences and receiving this information during the reproduction of a data sequence (for example a piece of music) without having to interrupt the reproduction.
The main object of the invention is an undisturbed, continuous reproduction of a data sequence (for example audio data or navigation system data) while the user is calling up information about other data sequences. A data sequence is here to be understood as a general term denoting more than just compressed or uncompressed audio data. A data sequence may also be, for example, a selection or playlist which is also stored on the data carrier and via which information can be called up. A playlist is, for example, a list of a subset of data sequences, renumbered in many cases, which are stored on the data carrier in a rising number sequence.
In a module according to the invention, a processor arrangement is used which, after receiving commands for information on one of the data sequences, makes this information available in that the processor arrangement has access to a memory arrangement in which this information was stored in a previous read action, in which access was obtained to the data carrier. The storage of the information on the data sequences provides the advantage that this information can be requested and made available without necessitating an interruption in the reading of a data sequence.
The expression "processor arrangement" denotes the electronic components which are used for decoding, decompressing, and generally processing the data sequences that are read from a data carrier, and also for processing the received commands and for sending messages. A processor arrangement may comprise a plurality of components, for example a specific decoding processor and/or a programmable digital signal processor (DSP), as well as other associated electronic components. The term "memory arrangement" is understood to be at least a memory component or a plurality of memory components which are each designed for the complete or partial, volatile or non- volatile storage of program data for a DSP and/or for storing intermediate data (for example information on the data sequences of the data carrier instantaneously present in the module), and/or other data.
A further advantageous embodiment of the invention arises when the information on the data sequences comprises pointer information, i.e. information indicating the start point of the data sequence on the data carrier, and the module renders possible the reproduction of the data sequence about which the information was requested by means of a so-termed start-at-pointer command without the necessity of further user actions.
Since the data sequences are often laid down on a data carrier in complicated hierarchical directory structures, it is advantageous if also the information on the data sequences is laid down in directories and there is a possibility of requesting information on these directories and receiving this information without interrupting the reading of a data sequence on the data carrier.
It is particularly advantageous when the directories in which the information on the data sequences is stored has at most a single-step level arrangement, i.e. there is one directory or memory region in the memory arrangement in which the various files containing the information are arranged side by side, so there are no further subdirectories. The reduction of the directory structure of the data sequences on a data carrier, which is very complicated in principle, to a single hierarchical level renders it possible to work with a small
memory. The presentation of the data sequences present on the data carrier to the data processing device thus remains convenient and structured.
In a further embodiment, the data sequences also comprise selection lists ("playlists"), such that information present in said selection lists can be requested. The user then has the possibility of deciding whether he wants to select a playlist without the necessity of interrupting the reproduction of a data sequence being shown/played at that moment. It is to be noted here that the module may also comprise a writing and/or rewriting function.
The invention also relates to a data carrier playback device, e.g. a car radio, in which a module according to the invention is incorporated.
The various aspects of the invention will be explained in detail below with reference to embodiments and the drawing, in which: Fig. 1 shows a module for reading data carriers with a CD/DVD in the insertion/ejection compartment,
Fig. 2 shows a car radio, which is designed for incorporation in the interior of an automobile and in which a module for reading data carriers is mounted,
Fig. 3 is a block diagram of the internal construction of the module, Fig. 4 shows by way of example the directory structure of a mixed-mode CD with uncompressed audio data sequences (DA) and with a ROM data sequence structure comprising compressed audio data sequences (CA),
Fig. 5 is a flowchart representing the analysis of an inserted CD, and Fig. 6 shows by way of example how the information on the audio data sequences and on the playlists is laid down in directories in the memory arrangement.
An embodiment of a module will be described below, which module renders it possible during the continuous reading of a data sequence to request information on other data sequences, which information is subsequently made available.
Fig. 1 shows a module 1 for reading data carriers 2, which module has a data carrier 2 in its insertion/ejection compartment. Lines 8, 9, 10 (here shown as a flat cable with a plug connector) are provided for the power supply and data exchange and are coupled to the data processing device. The disc-shaped data carrier 2 (a CD/DVD in this case) is transported
to a drive unit by mechanical elements (not shown) and is rotated thereon, such that a radially movable data pick-up is capable of reading data sequences present in spiraling pit structures on the CD/DVD.
Fig. 2 shows a car radio 15, which is designed for incorporation in the instrument panel of an automobile. The car radio 15 has a front 13 with controls 11, a display 12, and a slot 14 corresponding to the insertion/ejection compartment of the module. The module 1 is integrated in the car radio 15, which may be realized by means of screwing or locking or other known mounting methods. A user may carry out simple or complicated operational actions by means of the controls 11, which then leads to an exchange of commands from the car radio 15 to the module 1. The module 1 supplies messages on its state, on errors, and on the processing of commands in return, which messages can be shown on the display 12.
Fig. 3 is a block diagram of the internal construction of a module 1 for reading CDs or DVDs. The drive unit 3 proper is formed by the drive for rotating the CD/DVD, the optical data pick-up unit with a laser diode, lenses, and lens actuators for adjusting the focusing and tracking, a photodiode array for the multiple-field measurement for determining the focusing and tracking quality, and a radial drive for the data pick-up unit. The decoder IC 4 decodes the read data (for example EFM demodulation and error correction) and carries out an error interpolation, if necessary, and also controls the lens actuators for safeguarding an optimum focusing and tracking on the basis of the values of the multiple-field measurement. In the embodiment shown, the processor arrangement comprises the decoder IC 4 (for example a Philips PhonIC), a DSP 5 (for example a DA 150 from TI) for digital data processing, and a digital/analog converter unit 7. The DSP 5 carries out, for example, the MP3 decoding. The necessary program for MP3 decoding is stored in a non- volatile manner in the memory arrangement 6 and is loaded into the DSP 5 upon switching-on of the module. Other programs may equally be stored and loaded, such as the operating system for receiving and processing commands. Furthermore, new or updated programs may be read from a CD- ROM and may be stored in the memory arrangement 6. The data sequences under discussion here are also deemed to comprise such program data. The power supply and the communication with and control by the car radio are served by several lines 8, 9, 10, for example a I S bus (Inter-IC-Sound), a I C bus (Inter-IC- Communication), an S/P-DIF (Sony/Philips Digital Interface) output, analog outputs (for the respective left and right audio channels) for the transmission of digital/analog-converted audio data, and a power supply line. The I S and I C buses are serial buses with one or
several clock lines for ensuring synchronization. As is shown in Fig. 1, the totality of all lines may be realized as a flat cable with a plug com ector.
On an audio CD, audio data are laid down consecutively on a spiraling track from the inside to the outside (this relates either to the process of manufacturing an audio CD, for example with molded pits, or a corresponding writing process on a CD-R or CD-RW for the manufacture of an audio CD). A table of contents (TOC), in which information is laid down on the CD and on the individual audio data sequences, is present before the start of the actual audio data on the CD. In this TOC, for example, the absolute moment of the start of each audio data sequence can be found. This start time information is given in minutes (min), seconds (s), and frames (fra), one frame being one seventy-fifth of a second. A frame on a standard audio CD is composed of 98 fundamental 588-bit frames. Consecutive audio data are first interleaved and subsequently error-coded by the CIRC method. A further eight control bits are added to each block of 192 payload data bits and 64 error correction bits. Such a data block is subjected to an Eight-to-Fourteen Modulation (EFM) in which each eight-bit word is converted into a fourteen-bit word. Three coupling bits are joined to each fourteen-bit word, and finally each fundamental frame is provided with 24 synchronization bits, which results in a total of 588 bits. The information (min, s, fra) is also denoted a pointer, because the start of a data sequence can be unequivocally defined thereby (the time information in min, s, fra is incorporated in 98 control bits in each frame). Furthermore, the running time information for each audio data sequence can be calculated from the information in the TOC.
Compressed audio data and playlists are laid down on a CD in the CD-ROM standard (Yellow Book Standard). Since it should be possible to reconstruct ROM data fully also in the case of minor scratches on the CD, there is an additional coding in addition to the chaimel coding described above. Instead of 192 payload data bits, blocks (sectors) of 2048 payload data bits are defined, which lead to a total of 2352 bytes per sector in combination with error correction data and other additional information. This corresponds to the payload data bits of 98 fundamental frames. The 2352 bytes of a sector are subdivided into 98 fundamental frames, as are the audio data, and are subjected to the same error coding and EFM, so that CD-ROM data can work with a double error correction. ROM data are laid down in a ROM data sequence structure. A ROM data sequence structure has its own table of contents (the so-called Volume Descriptor) and at least one data sequence. A ROM data sequence is characterized as such in the TOC of the CD. There is only one ROM data sequence structure on a standard CD-ROM. A ROM data sequence structure here usually
comprises several data sequences arranged in a hierarchical structure, but these are not indicated in the TOC of the CD. Information on the data sequences of a ROM data sequence structure can be found only in the Volume Descriptor thereof.
Standards have been defined for so-termed multi-session CDs and mixed- mode CDs so as to circumvent the limitation of only one ROM data sequence structure per CD-ROM. A multi-session CD comprises a plurality of ROM data sequence structures one after the other, each starting with a TOC. Each TOC then in addition comprises the information that a further session may follow. In the case of a mixed-mode CD, a ROM data sequence structure and audio data sequences may be present together on one CD. The ROM data sequence structure is always deposited first here.
Each ROM data sequence structure has a table of contents (Volume Descriptor) in accordance with the ISO 9660 standard and possibly supplemented with the JOLIET specification for long data sequence names. The Volume Descriptor contains information on the physical locations where the data sequences contained in the ROM data sequence structure have their respective starting points. The start time of such a data sequence is also given in minutes, seconds, and frames, i.e. also by means of a pointer. Furthermore, the Volume Descriptor gives the name and the path of each of the data sequences, possibly hierarchically organized, within the ROM data sequence structure. Each data sequence of the ROM data sequence structure is characterized by an extension which describes the nature of the data sequence. Audio data sequences of audio data compressed in accordance with the MP3 process are then characterized by the extension "mp3".
The structure of an example of a mixed-mode CD is diagrammatically shown in Fig. 4. The CD has a ROM data sequence structure. This is surrounded by a broken line, which is to indicate that the structure of. the ROM data sequence is not indicated in the TOC. The analysis of the Volume Descriptor of the ROM data sequence structure provides the structure of the data sequences contained in the ROM data sequence structure. The ROM data sequence structure shown by way of example here comprises two directories (DIR1 and DIR2) in a first hierarchical level. A directory is itself not a data sequence but is a file in which data sequences and/or further files or directories may be present. A further directory (SDIR1) is present in DIR1, as well as a data sequence with a compressed audio content
(CA3). In the directory SDIR1, which defines a second hierarchical level, there are two data sequences with compressed audio contents (CA1 and CA2). A data sequence PL1 is laid down in the directory DIR2, which is at the same level as DIR1. This data sequence is a selection list or playlist, i.e. not an audio data sequence. The distinction is achieved by means
of a suitable extension. The example of the CD furthermore comprises two non-compressed audio data sequences (DAI and DA2).
The embodiment of a module according to the invention as described here is capable of processing various commands. Each command is identified by a code (for example a hexadecimal code) and can accordingly be unequivocally recognized and processed. Among the commands there are commands such as "EJECT", "PLAY", "STOP", and "PAUSE", which are known to those skilled in the art. The processing of a command can lead to the module generating and sending a message. These messages may be acknowledgements of the processed command (for example the message "module is in the PLAY mode" after a PLAY command has been successfully processed). Alternatively, they may be error messages such as a "NO DISC" message if there is no CD in the compartment while a "PLAY" command was received. The messages may have various other contents which are obvious to those skilled in the art, or they may be combinations of messages. Messages may also be sent independently of processed commands, for example, if a CD was inserted into the module by the user, a message "DISC INSERTED" message may be sent.
The information from the tables of contents (TOC and Volume Descriptor) are read and stored (first reading process) after the insertion of a CD so as to achieve that the module, while playing a (compressed or non-compressed) audio data sequence (second read process) is capable of processing commands relating to information on data sequences other than the audio data sequence being played without interrupting the playing process.
The storage of the information from the tables of contents will be described below for the standard process (insertion of a CD and PLAY is commanded by the user) and is shown as a flowchart in Fig. 5:
1. Step 20: CD inserted. Insertion of a CD by the user (the CD is, for example, mechanically drawn inwards and laid on the drive unit).
2. Step 21 : send: STOP. A STOP message (CD is not moving) is sent so as to define the current operational mode to the car radio.
3. Step 22: receive PLAY. The module receives a PLAY command (for example triggered by the user). 4. Step 23 : analyze TOC. The data pick-up unit is moved towards the table of contents
(TOC) of the CD, and the table of contents is read. 5. Step 24: ROM contents? It is recognized from the TOC whether there is a ROM data sequence structure on the CD.
a. "No" decision. If no ROM data sequence structure is indicated in the TOC, the following two steps are taken (right-hand branch in Fig. 5): i. Step 25: generate SONG info. The information read from the TOC is used for composing the SONG information (for non-compressed audio data sequences only) (takes place in the DSP 5). ii. Step 26: write SONG info into memory. The SONG information is written into the memory 6. b. „Yes" decision. If a ROM data sequence structure is present on the CD, the following three steps are taken (left-hand branch in Fig. 5): i. Step 27: analyze Volume Descriptor. The volume descriptor of the
ROM data sequence structure is read, ii. Step 28: generate SONG info. The information read from the TOC and the Volume Descriptor is used for composing the SONG information (for non-compressed audio data sequences (Digital Audio = DA) and for compressed audio data sequences (Compressed Audio = CA)). iii. Step 29. Write SONG info into memory. The SONG information is written into the memory 6.
6. Step 30: PLAY. The PLAY command is carried out.
7. Step 31 : send: PLAY. A message „module is in the PLAY mode" is sent to the car radio.
After the TOC and Volume Descriptor of the CD shown by way of example have been read in accordance with Fig. 4, the DSP 5 writes the composed SONG information into the memory 6. The structure in which the SONG information is laid down in the memory 6 is shown in Fig. 6 by way of example for the CD structure of Fig. 4. The SONG information comprises the information found in the TOC and in the Volume Descriptor (for example start time, running time, name, etc.). The dots in Fig. 6 indicate that more information than that shown may be stored in the memory 6 (for example program data for the MP3 decompression).
There is only one hierarchical level for the storage of the SONG information in the memory 6. This is formed by the four directories MDIR1, MDIR2, MDIR3, and
MDIRP. The items of SONG information SI and S2, corresponding to the non-compressed audio data sequences DAI and DA2 and read from the TOC, are deposited in MDIR1. In the next directory MDIR2, the items of SONG information S3 and S4 are laid down, corresponding to the data sequences CA1 and CA2 with compressed audio contents found
first in the ROM data sequence structure and read from the Volume Descriptor of the ROM data sequence structure. Although CA1 and CA2 were deposited in the second hierarchical level on the CD, the information corresponding to CA1 and CA2 is entered in the memory 6 in a directory at the first hierarchical level. The reduction in interleaving depth offers a simple and at the same time structured subdivision which can be shown both on alphanumerical displays with few digits and on larger TFT displays in a graphical manner. The identifiers of the SONG information are numbered through continuously (i.e. S3 and S4), such that the highest identifier number indicates the total number of audio data sequences that is available. The directory MDIR3 then comprises the SONG information S5 corresponding to the data sequence CA3. Since CA3 is deposited as the only data sequence in the directory DIR1 in the ROM data sequence structure on the CD, the corresponding SONG information S5 is entered in its own directory. This is based on the assumption that the data sequences present in one directory on the CD will have, for example, a thematic interrelationship and that accordingly the relevant SONG information is to be advantageously written into one directory. The directories are also consecutively numbered through, as are the items of SONG information.
In a non-numbered directory MDIRP, the selection or playlist information PI corresponding to the playlist data sequence PL1 is deposited. Playlist information in the embodiment described is not read until after the functional command "explore PLAYLISTS" (EP). The EP command may be automatically carried out upon the first PLAY command of an inserted CD, depending on the user's wishes.
Commands that require only the stored SONG information of the tables of contents or the playlists for processing are, for example, "Address DIR" (ADIR), "Address SONG" (ASONG), and "Address PLAYLIST" (AP). If necessary, at least one parameter is to be appended to a command so as to specify the command in more detail. Thus the ASONG command requires the parameter of the "song number", i.e. of the corresponding data sequence about which the information is to be requested. The parameter "song number" corresponds to the number assigned to an audio data sequence by the processor arrangement during the storage of the SONG information. In addition to the commands and the stored information, there are also so- called pointers, which are used by the processor arrangement for indicating what information is to be exactly accessed. In the embodiment presented, there are two kinds of pointers: the active pointer "PLAY pointer" and the virtual pointers "DIR pointer", "SONG pointer", and "PLAYLIST pointer". The "PLAY pointer" is the pointer indicating the respective CD time.
During reproduction, this time is always obtained from the current frame, and accordingly the "PLAY pointer" is updated every seventy-fifth of a second (in the case of a single reading speed). The DIR pointer relates to the current file in the memory arrangement, and the SONG pointer relates to the current audio data sequence. The value of the SONG pointer is equal to the start time pointer in (min, s, fra) of the audio data sequence on the CD. The virtual pointers of Fig. 6 are to be regarded as instantaneous values resulting from a sequence of commands, as will be clarified below.
With the ADIR command, only the numbered directories in the memory arrangement 6 will be accessed. ADIR "1" ("1" is the number parameter here) then accesses the directory MDIR1 ; the virtual DIR pointer is set for the directory MDIR1 by ADIR " 1 ", whereupon the SONG pointer is automatically set for the CD start time of the first audio data sequence for which information is stored in MDIR1. By way of messages, for example, ADIR "1" will supply the number of the audio data sequences listed therein and their identifiers (these would be two audio data sequences with the identifiers "1" to "2" in the present case). ASONG "2" puts the virtual SONG pointer on the CD start time of the second audio data sequence, and access is made to the SONG information S2. The information is made available by means of a return message (for example the title of the audio data sequence and its running time). Since S2 corresponds to a non-compressed audio data sequence (DA2), an automatically generated name (for example "Song-02") is made available to DA2 in addition to the running time of the audio data sequence. The song names of audio data sequences with compressed contents follow from the names indicated in the Volume Descriptor on the CD. The virtual PLAYLIST pointer is set for the information PI by means of AP "1", corresponding to the playlist PL1 on the CD, and the information relating to the playlist is made available as a message. It should be noted here that the PLAY pointer and the SONG pointer are both pointers of the (min, s, fra) kind, whereas the DIR pointer and the PLAYLIST pointer have a different structure.
The SONG information is regularly updated in a more complicated embodiment. Thus CD text is recognized or the ID3 tag is read at the start of playing of an audio data sequence, and this information is added to the SONG information. Data sequences without audio contents are ignored, unless they are playlists.
No information is stored in the memory arrangement 6 about such data sequences. A command sequence may run as follows.
1. The CD is in a PLAY mode, and the module displays the audio data sequence "1 ". The active PLAY pointer is set for the current absolute time of the CD every seventy- fifth of a second.
2. The ASONG command with parameter "2" sets the virtual SONG pointer for the start time information (min, s, fra) that was stored for the second audio data sequence. This takes place without interrupting the reproduction from the CD and without intermediate storage of audio data.
3. The information on the data sequence "2" is read from the memory 6 by the DSP 5 and is made available. 4. The ADIR command with parameter "3" sets the virtual DIR pointer for the directory
MDIR3 (if this directory MDIR3 does not exist, an error message is generated, and the directory with the highest number is chosen). In a special embodiment, the virtual SONG pointer is then also set for the start time information (min, s, fra) of the first data sequence in the directory MDIR3. 5. Information about the directory MDIR3 is made available. This takes place again without interrupting or influencing the reproduction from the CD. 6. The AP command with number "1" sets the virtual PLAYLIST pointer for the information PI corresponding to the playlist PL1. The information relating to the playlist is made available. Commands are mostly sent from the car radio to the module. For this purpose, the embodiment described comprises a serial I2C data bus which consists of a data line and a synchronization line. The command exchange is controlled by the car radio as a master, with the module being the slave. The data exchange via the command bus is controlled by a protocol, so that no colliding commands and messages can occur. Furthermore, the protocol ensures that the master will unequivocally recognize the message relating to a request command, for example by means of an accompanying code. Besides the requested information, for example about a certain song (an audio data sequence), a message may comprise further supplements, for example an error message. The presentation of the requested information and the reception of a command to find certain data are mostly realized between the car radio and the user via a display and a panel of controls.
It is alternatively possible, however, that the module independently carries out a sequence of commands of the above kind. This is the case, for example, if there is an agreement between the car radio and the module about a macro command. A macro command may be a user-defined sequence of commands; for example, the command "get
ALL SONG information" may be defined, which requests the information on all data sequences in succession. This macro command is then carried out by the module independently so as to avoid an unnecessary exchange of commands between the car radio and the module. An internal unit (which may form part of the processor arrangement) in that case sends the commands to the processor arrangement and counts the SONG parameters upwards until all audio data sequences have been scanned. The information is then made available to the external unit.
A further function command is the "PLAY at pointer" command. When this command is processed, the active PLAY pointer (i.e. the indication of the current CD time) is overwritten with the virtual SONG pointer (i.e. the indication of the CD start time of the selected audio data sequence), and the module starts the reproduction of the audio data sequence to which the SONG pointer relates. This renders it possible in a comfortable manner to reproduce a data sequence about which the user has just previously requested information. The reproduction is started without an interruption or a new input of the desired title being necessary.