RECORD CARRIER, DEVICE FOR PLAYING BACK A RECORD CARRIER, METHOD FOR PLAYING BACK A RECORD CARRIER, DEVICE FOR RECORDING A RECORD CARRIER AND METHOD FOR RECORDING A RECORD CARRIER

Abstract: A record carrier (1) according to the invention comprises information organized in a plurality of files containing audio visual data (11) and playback control data (12) for controlling playback of the audiovisual data on a playback device while enabling user interaction. The information further comprises priority information (priority), indicating the relative priority with which the files are to be stored in a cache memory (39) of the playback device. The invention also relates to a device for playing back a record carrier and a method for playing back a record carrier.

Description: Record earner, device for playing back a record earner, method for playing back a record earner, device for recording a record earner and method for recording a record earner. The invention pertains to a record earner. The invention also pertains to a device for playing back a record earner. The invention further pertains to a method for playing back a record earner. Several standards are in development for digital storage and reproduction of audiovisual data such as the SVCD and DVD standard. SVCD descnbes storage of audiovisual data in the form of MPEG2-fιles, which may be reproduced under control of a so called Play Sequence Descnptor (PSD). The audiovisual data and the PSD are stored at the record earner. The PSD is a set of control structures that enables the playback of preprogrammed sequences with user selection and interaction. User selection may for example take place by menus which are displayed on a display device, and from which the user may select an item by pointing at a position of the display device with a pointing device such as a mouse. Reading such a menu from the record earner may delay the interaction speed. It is an object of the invention to provide a record earner, a device for reproducing audiovisual data from a record earner and a method for reproducing audiovisual data from the record earner which allow a higher interaction speed. To that end a record earner of the invention compnses information organized in a plurality of files containing audio visual data and playback control data for controlling playback of the audiovisual data on a playback device while enabling user interaction, the information further compnsing pnonty information, indicating the relative pnonty with which the files are to be stored in a cache memory of the playback device. A record earner according to the invention is particularly suitable for playback on a playback device according to the invention. A playback device according to the invention compnses read means for reading the data from a record earner, a cache memory for stonng data from the record earner, user input means for receiving user input, control means for processing the control data, and reproduction means for reproducing the audio visual data, the device being adapted to read priority information and to store files into the cache memory with a priority determined by this priority information. Preferably the priority information (priority) is related to an estimated frequency with which the said data is accessed. The priority information enables the playback device to store frequently accessed control data in its cache memory, while keeping less frequently accessed files at the record carrier. Such control data comprises for example menu items. This type of data is often used to request information from a user how to proceed with the playback. Loading such a menu item from the record carrier may take one or two seconds and therewith hampers the speed of interaction between the playback device and the user. By providing the priority information at the record carrier a playback device according to the invention is enabled to store this type of data in a cache memory and to therewith improve the interaction speed. The cache memory may be relatively small as the priority information indicates which information is the most relevant to store therein. The priority information preferably discerns at least 8 levels. This enables a playback device having only a relatively small cache memory to select only the most frequently accessed files for storage in the cache memory. If on the other hand such a record carrier is played back at a playback device having a greater cache memory, in addition to those files other files may be stored in the cache memory which are less frequently accessed, but still important. It is possible to attach each item of priority information to the file to which it corresponds. Preferably however, the priority information is contained in a single file. This allows a playback device to retrieve the priority information with one file access. An attractive embodiment of the playback device according to the invention is characterized by means for rewriting the priority information at the record carrier in accordance with the frequency with which the files are actually accessed by a user. This allows the playback device to adapt the record carrier to the profile of a particular user. The invention also provides a method for playback of a record carrier comprising information organized in a plurality of files containing audiovisual data and playback control data for controlling playback of the audiovisual data while enabling user interaction, which method comprises the steps of a. determining whether a cache memory does have sufficient unoccupied space, aa. if it is determined that the cache memory does not have sufficient unoccupied space, then determining whether the cache memory does have space sufficiently large which is occupied by one or more further data files having a pnonty value lower than the pnonty value of the first data file, aaa. if the outcome of step aa is true, then overwnting said one or more further data files by the first data file. A preferred embodiment of said method is charactensed in that if the outcome ab it is determined whether the first data file has a pnonty value higher than a predetermined value, aba if the outcome of step ab is true then the first data unit is loaded from the record earner into the cache memory The advantage of this embodiment is that it is prevented that files having a too low pnonty would be loaded into the cache memory Such files generally would only stay relatively short into the cache memory as they would be overwntten by files having a higher pnonty. The cache memory of a playback device according to the invention may also be loaded dunng an initialisation stage of the device by means of the following method for playback of a record earner compnsing information organized in a plurality of files containing audiovisual data and playback control data for controlling playback of the audiovisual data while enabling user interaction, which method compnses a procedure for loading files in a cache memory compnsing the steps of d setting a reference pnonty value, e for a plurality of files examining whether a pnonty value assigned thereto is higher than the reference pnonty value, ea if the outcome of step e is true examining whether the cache memory compnses sufficient space for stonng the said data unit, eaa if the outcome of step ea is true then loading said data unit into said space, f reducing the reference pnonty value, g determining whether the reference pnonty value is greater than or equal to a bottom pnonty value, ga repeating steps d to g if the outcome of step g is true A record earner according to the invention may be recorded with a device for recording a record earner compnsing information organized in a plurality of files containing audio visual data and playback control data for controlling playback of the audiovisual data on a playback device while enabling user interaction, the information further compnsing pnonty information, indicating the relative pnonty with which the files are to be stored in a cache memory of the playback device, the playback device compnsing - means for obtaining the audiovisual data, means for composing the control data, pnonty determining means for determining the pnonty information, formatting means for formatting the audiovisual data and the control data into files, - recording means for recording the information compnsing the pnonty information, the audiovisual data and the control data at the record earner. A record earner according to the invention may be recorded with a method for recording a record earner compnsing information organized in a plurality of files containing audio visual data and playback control data for controlling playback of the audiovisual data on a playback device while enabling user interaction, the information further compnsing pnonty information, indicating the relative pnonty with which the files are to be stored in a cache memory of the playback device, the method compnsing the steps of obtaining the audiovisual data, - composing the control data, determining the pnonty information, formatting the audiovisual data and the control data into files, stonng the information compnsing the pnonty information, the audiovisual data and the control data at the record earner. The playback control program may be recorded at the same information carπci together with the audiovisual data, but may otherwise be stored at a separate record earner or in a ROM of the playbackdevice These and other aspects of the invention are descnbed in more detail with reference to the drawing and with reference to an appendix: "Specification Proposal for a Video Disc Play Control Program (PCP)" which is incorporated by reference herein. In the drawing Figure 1 shows an embodiment of a record earner according to the invention. Figure 2 shows an embodiment of a device according to the invention, Figure 3 shows an embodiment of a method according to the invention, Figure 4 shows relations between several aspects of the invention, Figure 5 shows a further embodiment of a method according to the invention Figure 1 shows a record earner 1 which compnses information organized in a plurality of files 2 containing audiovisual data 11 and playback control data 12 for interactively controlling reproduction of the audiovisual data 11 on a playback device The playback control data on the one hand controls playback of the audiovisual data and on the other hand allows for user interaction, for example by providing options from which the user can choose In the embodiment disclosed here the files have a file structure as descnbed in section 3 of the appendix Part of the file structure is a file header (Fιle_header) containing a file identification (Fιle__D) In an embodiment the audiovisual data maybe contained in one or more of the following four types of MPEG files The first type is an MPEG movie file (Fιle_ID = 10) This type of file contains a video stream, one or more audio stieams and a pnvate stream A second type of file is an MPEG audio file (Fιle_ID = 11 ) This type of file contains one or more audio streams, but no video stream A third type of file is an MPEG picture file (Fιle_ID = 12) It contains a video stream with one or more still pictures, but no audio stream A fourth type of MPEG file (File D = 13), a so called MPEG show file compnsing a video stream with one or more still pictures and one or more audio streams Further the audiovisual data may compnse JPEG picture files (Fιle_ID = 20) and bitmap image files denoted as BMP in the Figure (Fιle_ED = 21) The playback control data 12 compnses one or more so called Play Control Program files (PCP, Fιle_ID = 3), which may include a PCP-file for startup Each PCP-file may contain one or more functional blocks FB An FB on its turn contains one or more commands CMDl, CMDn, as descnbed in section 4.5 of the appendix. Further the playback control data compnses a Play Item Table file (PIT- file, Fιle_ID = 2) The structure of the PCP-file is descnbed in detail in section 3 2 and the P-T-file is descnbed in section 3 3 of the appendix Furthermore the record earner compnses a File Record Table file (FRT-file, FileJD = 1) as descnbed in section 3 1 of the appendix The FRT-file compnses information about all files at the record earner 1, such as their size and address at the record earner as well as general information about the record earner The record earner is preferably a medium which is randomly accessible, such as a disc, as descnbed in the appendix, or a card The medium is for example an optical, a magnetic or a magneto-optical medium The information at the record earner 1 further compnses pnonty information, indicating the relative pnonty with which the files 2 are to be stored in a cache memory of the playback device In the embodiment descnbed here the pnonty information is contained in a single file, in this case the FRT-file. For each of the files 2, including itself, the FRT-file compnses an entry denoted as "pnonty" which has a value in the range of 0 to 15 The pnonty information is related to the estimated frequency with which the said data is accessed A high value of pnonty represents a high estimated frequency. In the embodiment descnbed here the control data is compnsed in one or more control programs, the PCP-files which compnse references to menus, e g in the form of MPEG picture files Preferably these files have a high pnonty, preferably the highest value (15) Figure 2 shows a playback device according to the invention for playback of the record earner 1 descnbed above with reference to Figure 1 The playback device compnses read means 20 for reading the data from the record carrier 1 The read means 20 are provided with control means 21 to control the reading of data from the record earner 1 upon instructions by processing means 30 for processing the control data The data read from the record earner 1 is transmitted via a bus 15. The device further comprises a cache memory 39 for stonng data from the record earner 1 In addition the device has a process memory 31 for stonng data which is being used by the processing means 30 The device also compnses user input means 40, 41 for enabling user interaction The user input means are for example a keyboard or a pointing device such as a mouse The processing means 30 interactively select audiovisual data from the record earner 1 and have these reproduced by audio reproduction means 53, 54 compnsing an MPEG-audio decoder 53 and video reproduction means 51, 52 compnsing an MPEG-video decoder 51 The device according to the invention is adapted to read pnonty information and to store files in the cache memory 39 in accordance with this pnonty information To this end the device reads the pnonty information from the FRT-file and if the cache memory 39 is too small to store all files, the device stores those files in the cache memory 39 which have the highest pnonty value The processing means 30 compnse inteφreter means 32 for inteφreting commands CMD1, in the functional blocks FB of the play control program file PCP The inteφreter 32 sequentially inteφrets the commands and wntes/reads a plurality of Player API registers, also denoted as Registers, which function as an application programmers interface These Registers and their function are descnbed in section 4.3 2 of the appendix For example upto 16 hotspot areas may be defined by wnt g the Registers 128-191 A next PCP-file may be selected by writing its file number in the Register numbered 226. A play_item, for example an MPEG file may be selected by writing an identification of said item in Register 228. Note that most Registers correspond to a separate register for writing and for reading. By reading a Register status information returned by the executing means 34 may be retrieved. For example, if the Register numbered 228 is read a so called play event ID value may be retrieved. The latter indicates a cause for ending the playback of the MPEG-file. A more detailed description is given in section 4.4.6 of the appendix. The inteφreting means and executing means of the processing means may be incoφorated in software on a single processor or may be implemented as different processors. The mutual relation of the different files is shown in Figure 4. When a file number of a PCP-file is written in register 226, the execution means 34 retrieve the file address of said PCP-file form the FRT-file. If this file is not already available in the cache memory 39, it is loaded from the record carrier 1 into the process memory 31. If the Play Control Program file writes an identification of a Play-item in the register 228, control is passed to the execution means 34. These look up the corresponding filenumber of an audiovisual file and the entry point within said file in the Play Item Table PIT and have said play-item reproduced. The file address of said audio visual file is retrieved from its file number by means of the FRT-file. If control is passed to the execution means 34 then operation of the inteφreting means 32 is suspended until an event is detected by event handler means 35. The event handler means 35 may detect at least one of the following events, the expiration of a time interval, an input by a user, the occurrence of trigger data in the audiovisual data. This is illustrated in Figure 1 of the appendix. A command set Timer, by writing a value to Register 252, has the effect that a timer 35 starts to count down from said value and that a timer event occurs if count down is completed. A trigger event occurs if a trigger detector 37 detects that trigger_data corresponding to a trigger_mask loaded in Register 249 occur in an MPEG stream which is read from the currently selected file. A user may cause an event in several ways. In the first place one or more hot spots may be defined by writing a selection or all of the registers 128 to 191. If the user points to a hotspot, a hotspot event occurs. Otherwise a userkey event occurs if a key is pressed which is enabled by the userkey_mask. The latter is assigned to Register 250. If the reproduction of the MPEG file is completed likewise an event, End_of_File event, occurs. If an event occurs the event handler means 35 enable the inteφreter means 32 to continue the inteφretation with a command (Command #n+ 1) succeeding the command (#n) at which the operation of the inteφreter means 32 was suspended. o If a file is accessed, the procedure illustrated in Figure 3 is followed. First in step SI it is examined whether the file to be accessed is already in the cache memory 39. If this is the case, then in step S2 the file is copied from the cache memory 39 into the process memory 31. Subsequently the file can be processed in step S3. If the file to be accessed is not available in the cache memory 39 then it is loaded from the record carrier 1 into the process memory 31 in step S4. Next it is examined in step S5 whether in the cache memory 39 enough free space is available to store the file. If the outcome is positive the file is copied from the process memory 31 into the free space of the cache memory 39 in step S7.If the outcome of the examination in step S5 is negative the program step S6 is executed. Therein it is examined whether enough space in the cache memory 39 is available which is occupied by files having a lower priority than the file which was accessed. If this is the case than that file is copied from process memory 31 into the said space in the cache memory 39 (step S7). Otherwise the said file is not copied into the cache memory 39. An embodiment of the device according to the invention also includes a procedure for loading the cache memory 39 during initialization. Such a procedure is described with reference to Figure 5. In a first program step S10 a priority reference value PR is initialized at 15. In a second program step Sl l a filenumber I is initialized at 1. Next in step S 12 it is examined whether the file with file number I has a priority equal to PR. If this is not the case than the procedure continues with step S15. Otherwise the procedure continues with step S13 wherein it is examined whether the size of the file with filenumber I is less or equal than the free space in the cache memory 39. If this is true than said file is loaded into the cache memory 39 in step S 14. If it is not true than the procedure continues with step S 15. wherein the filenumber is increased by 1. Subsequently in step S16 it is examined whether the filenumber is less or equal than the total number of files. If this is true than the procedure continues with step S12. If this is not true than the priority reference value is decreased by one in step S 17. Subsequently it is examined whether the new priority reference value is greater than or equal to 0 in step SI 8. If this is true than the procedure continues with step SI 1. If it is false then the procedure is completed. It is remarked that the scope of protection of the invention is not restricted to the embodiments described herein. For example, while an embodiment of the apparatus according to the invention is described which comprises detection means to detect which type of record carrier is present, an other embodiment comprises input means which enable a user to provide that information. The apparatus may comprise recording means for recording an information stream on the record carrier in addition to the reading means. Neither is the scope of protection restricted by the reference numerals included in the claims. The word 'comprising' does not exclude other parts than those mentioned in a claim. The word 'a(n)' preceding an element does not exclude a plurality of those elements. The invention further resides in each new feature or combination of features. Specification Proposal for a Video Disc Play Control Program (PCP) By Enk Schylander version 3-Nov-99 11 :43 A Play Control Program (PCP) is used for the user navigation when playing the disc. The usei can select the parts to play from presented menus. It is applicable to any 2K sector addressable media, e.g. CD-ROM, DVD-ROM. In the current VCD and SVCD specifications a Play Sequence Descnptor (PSD) file is used for the PCP with a fixed syntax and semantics. It has the drawback that it is static (predetermined) and can not adopt to the input of user. No conditional testing or computations are supported. The Playback is programmed by recorded Play Lists and Selection Lists that define the MPEG streams to play. In SVCD an extension was introduced called Command Lists which allowed conditional testing and some limited computations. This proposal is based on about the same concept, but without using Play Lists or Selection Lists. It also supports event handling tnggered by a MPEG stream playback point, a timer or a user input This is also very different from DVD, where the control and navigation data is stored in the MPEG stream, which makes the authonng and testing very complicated I Revision histon rev#ld - 26/10/99 NVRAM size allocated by Dιsc_ιnfo, and fixed location at Reg[0J Fixed type errors, updated figure 1, outline changes rev#2a - 27/10/99 Simplified Player registers to avoid MSB, LSB bytes (Hotspots.OGT, Audιo_stream), and reallocated register numbers Added JPEG and BMP file types values. Added as extension OGT rendenng in a hotspot area Rev#2b - 1/11/99 Changed name of DRT to FRT, and PIN to PIT to use more correct wording Added Player States (stopped, playing, paused, scanning) Added field in MPEG info record for PlayingTime. Added field in MPEG info record for average sector (bit) rate Rev#2c - 2/1 1/99 F'Ued in Error codes Added place holders for Systems Overview Cc D. de Jong, CP&T Table of Contents 1 GENERAL 12 1.1 NORMATIVE REFERENCES 12 1.2 CONVENTIONS . ' . 12 1.3 ABBREVIATIONS AND GENERAL DEFINITIONS 12 1.4 DATA TYPES AND STRUCTURES 13 1.5 SYSTEM OVERVIEW 14 1.5.1 Player Reference Model 14 1.5.2 Disc Reader Module 14 1.5.3 MPEG decoder 14 1.5.4 Overlay Graphics and Text (OGT) 14 1.5.5 Playback Controller 15 1.5.6 Cache Memory 75 2 DISC STRUCTURE 15 3 FILE STRUCTURE 15 3.1 FILE RECORD TABLE (FRT) FILE 16 3.2 PLAY ITEM TABLE (PIT) FILE 17 3.3 PLAY CONTROL PROGRAM (PCP) FILE 17 3.4 MPEG FILES 17 3.4.1 MPEG file characteristics 17 4 PLAY CONTROL PROGRAM (PCP) 18 4.1 PCP FILE STRUCTURE 18 4.2 PCP INTERPRETER 18 4.2.1 PCP structure 18 4.2.2 PCP Interpreter reference model 19 4.2.3 FB program flow structure 19 4.2.4 Player States 20 4.3 PCP REGISTERS 20 4.3.1 Variable registers, R[0..95] 20 4.3.2 Player API registers, R[128..255] 21 4.4 PCP PLAYER (API) FUNCTIONS 23 4.4.1 FB local variables memoryf size ) function 23 4.4.2 FB( address ) functions 23 4.4.3 Goto_PCP(File_number) function 23 4.4.4 Goto_Disc(Disc_number) function 24 4.4.5 PlayO function 24 4.4.6 Play_event() 25 4.4.7 MPEG file info fund ion 26 4.4.8 OGT_select( channel) function 26 4.4.9 Audio _select( stream number ) function 26 4.4.10 Audio_mixing( data ) function 26 4.4.11 Hotspot() function 26 4.4.12 Userkey() functions 26 4.4.13 Tiιner( time) function 27 4.4.14 Error handling 27 4.4.15 OGT_rendering function 28 4.5 PCP COMMAND DEFINITIONS 28 4.5.1 Command codes 29 4.5.2 operand symbols 29 4.5.3 opcode conditions 29 4.5.4 opcode function definitions 30 4.5.5 Programming examples 30 General Normative References The following Standards contain provisions, which, through reference in this document, are used this document Conventions Bold terms are defined in this document Values and comments are wntten in italic. Hex values are preceded by a $ character Binary values are preceded by % character Stnngs are within double quotation marks, as " Abbreviations and general definitions The following abbreviations are used in this document # or ## Abbreviation for " Number of ". Album An Album is a collection of discs with the same Album_ID Album_ID An uniquely value that identifies all discs belonging to an Album. Audio stream The MPEG stream can contain one or more audio streams numbered 1 to max. It is optional to support surround sound the Extended stream Bitmap image An image representation where each pixel is represented by on or more bits. These bits represent different color values in a color lookup table (CLUT) CLUT A Color Look-Up Table, defining a color value (RGB) for each entry FRT File Record Table, see 0 Hotspot A Hotspot is defined by the ID number and the area coordinates on the screen. Hotspots are used for user interaction on the screen, so a user can select a hotspot (by cursor or pointer control) to interact with the PCP The selection of a Hotspot generates a User_ιnput event. It can be used by (computer) playback systems that use pointing devices for user interaction, or for systems that can highlight selected areas. The area within the indicated co-ordinates should be highlighted The player can chose frame thickness and color. Such highlighting is recommended to have two views, one when pointer inside area or one when selected. If more hotspot areas contain the point selected, (in the case of overlapping selection areas) then the selection area with the lowest Selection Number is selected Hotspot area The hotspot coordinate area defines a rectangular Selection Area on the screen. A scaled coordinate system is used such that the extreme upper left screen co-ordinate is 0,0 and the extreme lower nght screen co-ordinate is 255,255 I-picture For I-field pictures, i.e. when a video frame is encoded in the form of two fields, the sector containing the start of the I-picture with the first of both fields shall be referred to (even when the 2 nd field is closer to the expected JPEG Joint Photographic Experts Group, See ISO/IEC 10918. lsb Least significant bit. LSB Least Significant Byte. MPEG Moving Picture Experts Group, see ISO/IEC 11172. MPEG_PS A MPEG-2 Program Stream, that can contain a video stream, zero or more Audio streams and a MPEG private stream. MPEG A MPEG private stream that contains the OGT data and Trigger_data private stream msb Most significant bit. MSB Most Significant Byte. N/A. Not Applicable. NVRAM A Non Volatile memory in the Playback device to permanent store a part of the Global variable registers for a disc, and shall be recalled when a disc belonging to the same album is played again. This is an optional feature of the playback device, unction that is called when a register is set. The playback device shall uniquely allocate the NV-RAM memory for each disc by using the Album ID as unique identification. OGT Data that define the Overlay Graphics and Text function for the MPEG decoder. The MPEG stream can contain in the Private stream up to 8 OGT channels numbered from 1 to max. PIT Play Items Table, a list of all MPEG file entry points (access sectors). PCP Playback Control program. The program is recorded in a form that is very compact and easy to implement. It's compiled and optimized dunng the authoring process. The playback device (player) uses the PCP for navigation and playback selection. Pla back A compliant device that contains a disc loader with optical pick-up unit and device servo controller, MPEG_decoder, and Playback processor with user I F, player control and PCP inteφreter. PS A MPEG Program Stream, a collection of MPEG Elementary streams. RT Real Time, a classification for (MPEG) files that has to decode data for Real Time output. R/W Read and Write, used to define the characteristics of the PCP registers. Data types and structures The following data types are used in this specification: Bit A binary digit that can have value %0 or % 1. Bits are numbered as b#number n-bit data A stream of n number of bits, where the first bit =b#n-l and the last bιt=b#0 (msb) True A logical state of a n-bit data value, where one or more bits = %1 False A logical state of a n-bit data value, where all bits = %0 Byte A 8-bit data value, that represent the values 0..255 System overview This is a disc system to present full motion pictures with associated audio by using any ROM (2K addressable sector) disc format. The system uses the ISO/EEC MPEG2 standard definitions to compress the video, still picture and audio information for full screen TV quality pictures together with associated high quality audio. The disc also contain high quality still pictures (menus) and a Playback Control Program file for navigation and playback control of the disc. Player Reference Model The system consists of a disc and a compliant playback device (player). Disc Reader Module MPEG decoder Overlay Graphics and Text (OGT) Playback Controller Cache Memory This is an optional feature in a playback device. To access a file in a player can take up to 1 or 2 seconds, but by storing frequently used files in a Cache RAM memory the access time can be neglected. When a MPEG file is read for the first time, the playback device can decide to store the file in the cache depending on the priority value and how full the cache is. The priority value gives an estimated likelihood that the file will be used again. This is specially useful for Menu still picture files, which normally have a size of 1-200KB. The cache memory need to be 1MB or more, but with the falling memory prices this will only add a marginal cost to a player. Disc structure File structure File Record Table (FRT) file A structured file that contains a Table of File_directory_records indexed by a File_number. The record contains information about where the files are located on the disc The default File_number of this file = 0 Play Item Table (PIT) file A structured file that contains Play_item_records. The default File_number of this file = 1. Play Control Program (PCP) file A structured le of sequentially stored FBs that together represent a Playback Control Program. For the PCP file structure see section 0. A PCP file is referenced by its File iumber. The default File_number for the startup PCP file = 2. MPEG files MPEG file characteristics Play Control Program (PCP) The PCP contains the navigation structure of the disc. The PCP is stored in PCP files. The file is divided into functional blocks called FB. At startup of the disc the PCP file with File_number = play, the PCP interpreter starts to interpret the first FB at address = 0, and continue until an End() function is called. PCP file structure PCP Interpreter The PCP interpreter shall interpret and execute the Command instructions in the FB. These Commands shall be interpreted in sequential order one by one, until a Return() or an other function is called. If an error is detected the Error handler shall be called. Most Commands will only be executed if a specified Command condition is fulfilled. The PCP interpreter is easy to implement with a standard micro-controller, as it needs only to handle three simple type of operations: • Read / Write of variable and register data • Arithmetic operations on variables • Command interpreter sequence management PCP structure The relation between the different PCP data elements are shown in the figure below. PCP Interpreter reference model The PCP interpreter reads the commands in the FB one by one and executes the command instruction as defined in section 0. The command reads and writes data into the Variable Array. Values written into the register variables shall be stored in memory. If a value is written into the Player register part then a specific function() is called and shall be executed before the next command is interpreted. See the figure below. Variable Array Reg[i] FB program flow structure The control flow structure between FB's, PCP files, and discs is shown in the figure below. Start Player States The MPEG player in the MPEG device can be in one of the states as described below. These states are important for the PlayQ function, see 0 PCP registers The PCP interpreter uses an array R[0..255] of 2-byte (16-bit) registers, that contain variables and player registers that functions as an API for the PCP interpreter to interface with the player functions and MPEG decoder. The PCP_registers can be read and written to by the PCP inteφreter. The 256 registers are indexed from 0 to 255. The player shall set the defined player registers reflecting the current player status to be read by the PCP inteφreter. At start up of the disc the default player values should be used. Some players allow the user to change the default values. The PCP can control the player by writing a value to a R/W player register, and the player has then to execute controls that would generate the same status. Note that a R/W player register actually consists of two different registers, one for read of the player status, and one for giving a command to the player. When the player is busy executing a register command, then these values could be different. Variable registers, R[0..95] Player API registers, R[128..255] Note: Reserved registers shall not be used. They are reserved for future use. Operations with reserved registers, shall generate an error. PCP Player (API) functions The Playback device shall support the following functions. FB local variables memory( size ) function This function is called when the FB var_size register is set. It shall allocate the number of requested local FB variables in memory. The total memory is limited to 256 variables (512 bytes), so this function is to optimize the memory usage handling by the PCP inteφreter. Up to 32 variables can be allocated for each FB function. The size value is reset to 0 when a new FB function is called, so the register must be set to 1..32 before local FB variables can be used, else an error will be detected. FB( address ) functions These functions are called b settin the FB_address re ister with a value as defined below Goto_PCP(File_number) function These function is called b settin the File_number re ister with a value as defined below Goto_Disc(Disc_number) function These function is called by settin the Disc_number re ister with a value as defined below Play() function This function is called b settin the Pla _Item re ister with a value as defined below. Figure 1 Play() function program flow Play_event() A Play_event can only occur during the Play() function, and the corresponding play__event_ID value shall be returned in the Pla tem register. The play_events are listed below: MPEG file info function This function is called when the MPEGJile nfo register is set to a filejiumber of a File_directory_record m the FRT file. The Playing_time, OGT and Audio_stream registers shall be set according to the Filejnfo stored in the Fιle_dιrectory_record. This register shall return 0 if the fϊle_number is not valid or the File_ID <> 10 (MPEG file), else it shall return -1. OGT_select(channel) function This function is called when the OGT_select register is set. Select the OGT_channel to the set channel. If set to 0 then disable display of OGT. If set to an invalid value then return 0 (disable). Audio_select( stream number ) function This function is called when the Audio_select register is set. Select the Audio stream to the set number. If it is set to 0 then disable (mute) audio. If it is set to an invalid value then return 0 (disable). Audio_mixing( data ) function This function is called when the Audio_mixing register is set. Set the Audio mixing as defined b the set data value as defined below: Hotspot() function The hotspot function is used for user interaction on the screen, so a user can select a hotspot (by cursor or pointer control) to interact with the PCP. The ID number (128 .. 143) of a selected hotspot shall be stored in the Input_data register. The area within the indicated coordinates (top, bottom, left, right) shall be highlighted. Highlighting can be done e.g. by drawing a frame around the selected hotspot area, or by changing the contrast within the selected area. The playback device can chose frame thickness and color. Such highlighting is recommended to have two views, one when the pointer is inside the hotspot area or one when the hotspot is selected. If more hotspot areas contain the point selected, (in the case of overlapping selection areas) then the selection area with the lowest ED number shall be returned in the Input_data register. A hotspot is enabled when all area values are valid defined by (all values >=0 and within the screen area, and bottom >= top, and right >= left) If a hotspot is disabled then all hotspot area registers shall return -1. A hotspot area can be highlighted by wnting a valid ID number for an enabled hotspot in the Input_data register If the Input_data register is set to an invalid value then it shall return -1. UserkeyO functions The UserkeyO function is initiated by an user interaction pressing an enabled key. The key is enabled if the corresponding Userkey_mask bit is set to 1 The function returns the Key number value in the Input_data register as defined in the table below Timer(time) function This function is called when the Timer_data register is set The timer is started when the Timer_data register is set to a value that is >0 (in units of 1/10 sec), and decrement the register value each 1/10 second until it reaches 0, when the timer is stopped If the Timer_data register is set to 0, then the timer shall be stopped Error handling Errors are handled by the Error handler, that can choose to skip the current command or to end the PCP playback. The location of the Error handler command block is stored in a dedicated register. The error handler returns to the next command (skip) by a return command, and ends the PCP playback by calling an End() function. Different types of errors that can occur dunng the PCP playback. The error code can be read from the Error_code register. OGT_rendering function This function is an optional extension. If it is not supported then it shall return -2 in the OGT_image register. This function is called when the OGT mage register is set to a file_number of a File_directory_record in the FRT file. The image data of the file shall be rendered into a selected Hotspot area. Parts of the image area outside the hotspot selection area shall be discarded (cropped). Normally OGT can only be used when playing a movie file. This function can be used to overlay selectable OGT images on still pictures and menus. This is useful to interact with the user without loading a new picture and can also be selective on language preferences. PCP Command definitions All commands are 5 bytes. The first byte is an opcode, and the following 4 bytes shall be operands. The PCP inteφreter shall execute the command as defined by the opcode and operands in the Table below. Most commands are conditional, depending on the value of one or two variables, meaning that the command shall only be executed if the condition is TRUE. A variable value or Register setting in the Variable Array can be written by a command, and reading a value is done by a conditional test. The registers are referenced by R[index]. Commands are referenced by C d[index], where the index is a value >0 relative to the beginning of the current Function Block FB. Command codes Notel : if an index or other value is out of range then an Exception JΞrror shall be executed Note2: bit 7 is msb and bit 0 is lsb Note3. if all bytes #1 to #5 are equal to 0 then execution skipped as a No Operation ( NOP ) operand symbols In the PCP opcode and operand definition table special symbols are used for different definitions as specified in the following table. opcode conditions Reading Array variables is done by a conditional test. If a condition is not TRUE then the next command entry shall be executed. The cond_l test compares a variable R[ι] compared to 0, and the cond_2 test compares the relation between two vanables R[ι] and R[j] as defined below. opcode function definitions calculate_l function -- If condl TRUE then vanable R[j] indexed by byte #3 is set the outcome of calculation with the constant = dddd, defined by bytes #4 and #5, where byte #4 is MSB. The type of calculation is specified by the opcode(xxx) bits 2..0, as in table below calculate_2 function ~ If cond2 TRUE then vanable R[j] indexed by byte #3 is set the outcome of calculation of vanable R[k] defined by byte #4 and R[l] defined by byte #5 The type of calculation is specified by the opcode(xxx) bits 2..0, as shown below. Note There is no carry flag for variable wrap around indication move function — The vanable R[k] indexed by byte #4 is set equal to the vanable R[k] indexed by byte #5. set function — The vanable R[j] indexed by byte #3 is set to value dddd defined by byte #4 and #5. random function — The vanable R[j] indexed by byte #3 is set to a random value between 0 (zero) and dddd defined by byte #4 and #5 If dddd=0 then randomize the random generator fill function -- Fill N vanables starting from R[j] with dddd defined by byte #4 and #5, where N is equal the value of R[ι] indexed by byte #2 jump function — Jump immediate to a command with index = idx defined by byte #4 and #5. loop_l function ~ Decrement R[ι], defined by byte #2, and cond#l true then jump to the command with index = idx defined by byte #4 and #5 loop_2 function — Decrement R[ι], defined by byte #2, and if cond#2 true then jump to the command with index = idx defined by byte #4 and #5 loop_3 function — Decrement R[ι], defined by byte #2 and decrement Rfj], defined by byte #3, and cond#l true then jump to the command with index = idx defined by byte #4 and #5 Programming examples This section is informative

Claims: CLAIMS: 1. Record carrier (1) comprising information organized in a plurality of files containing audio visual data (11) and playback control data (12) for controlling playback of the audiovisual data on a playback device while enabling user interaction, the information further comprising priority information (priority), indicating the relative priority with which the files are to be stored in a cache memory (39) of the playback device. 2. Record carrier according to claim 1, characterized in that the priority information (priority) is contained in a single file (FRT). 3. Record carrier according to claim 1, characterised in that the priority information (priority) is related to an estimated frequency with which the said data is accessed. 4. Record carrier according to claim 1, characterised in that the control data is comprised in a control program (PCP) which comprises references to menus, and that the data representing the control program and the menus has a relatively high priority. 5. Playback device for playback of a record carrier (1) comprising information organized in a plurality of files containing audiovisual data (11) and playback control data (12) for controlling playback of the audiovisual data while enabling user interaction, the playback device comprising read means (20) for reading the data from a record carrier, a cache memory (39) for storing data from the record carrier, user input means (40,41) for receiving user input, control means (30) for processing the control data, and reproduction means (51-54) for reproducing the audio visual data, the device being adapted to read priority information (priority) and to store files into the cache memory with a priority determined by this priority information. 6. Playback device according to claim 5, characterized by means for rewriting the priority information at the record carrier in accordance with the frequency with which the files are actually accessed by a user. 7. Method for playback of a record carrier (1) comprising information organized in a plurality of files containing audiovisual data and playback control data for controlling playback of the audiovisual data while enabling user interaction, which method comprises the steps of a. determining whether a cache memory (39) does have sufficient unoccupied space (S5), aa. if it is determined that the cache memory (39) does not have sufficient unoccupied space, then determining whether the cache memory does have space sufficiently large which is occupied by one or more further data files having a priority value lower than the priority value of the first data file (S6), aaa. if the outcome of step aa is true, then overwriting said one or more further data files by the first data file (S7), 8. Method for playback according to claim 7, characterised in that if the outcome of step a is true then ab determining whether the first data file has a priority value higher than a predetermined value, aba if the outcome of step ab is true then loading the first data unit from the record carrier into the cache memory, 9. Method for playback of a record carrier comprising information organized in a plurality of files containing audiovisual data and playback control data for controlling playback of the audiovisual data while enabling user interaction, which method comprises a procedure for loading files in a cache memory comprising the steps of d setting a reference priority value (PR),(step S10), e for a plurality of files examining whether a priority value assigned thereto is higher than the reference priority value (step S12) ea if the outcome of step e is true examining whether the cache memory comprises sufficient space for storing the said data unit (step S13), eaa if the outcome of step ea is true then loading said data unit into said space (step S 14), f reducing the reference priority value (S 17), g determining whether the reference priority value is greater than or equal to a bottom priority value (SI 8), ga repeating steps d to g if the outcome of step g is true. 10. Device for recording a record carrier (1) comprising information organized in a plurality of files containing audio visual data (11) and playback control data (12) for controlling playback of the audiovisual data on a playback device while enabling user interaction, the information further comprising priority information (priority), indicating the relative priority with which the files are to be stored in a cache memory (39) of the playback device, the playback device comprising means for obtaining the audiovisual data, means for composing the control data, priority determining means for determining the priority information, formatting means for formatting the audiovisual data and the control data into files, recording means for recording the information comprising the priority information, the audiovisual data and the control data at the record carrier. 11. Method for recording a record carrier (1) comprising information organized in a plurality of files containing audio visual data (11) and playback control data (12) for controlling playback of the audiovisual data on a playback device while enabling user interaction, the information further comprising priority information (priority), indicating the relative priority with which the files are to be stored in a cache memory (39) of the playback device, the method comprising the steps of obtaining the audiovisual data, composing the control data, determining the priority information, - formatting the audiovisual data and the control data into files, storing the information comprising the priority information, the audiovisual data and the control data at the record carrier.

Inventors: SCHIJLANDER ERIK C, SCHIJLANDER, ERIK, C.
Applicants: KONINKL PHILIPS ELECTRONICS NV, SCHIJLANDER ERIK C, KONINKLIJKE PHILIPS ELECTRONICS N.V., SCHIJLANDER, ERIK, C.
Application year: 2000
Main classification: G11B27
IPC codes: G11B7, G11B19, G11B20, G11B27