Method and apparatus for determining main parameter values of a storage medium that are required for replaying said storage medium

A DVD disc contains a lead-in area that contains sync sectors, control data including the number of recording surfaces, disc keys and other information, and contains a Data Area occupying the main part of the available disc surface or surfaces. In order to handle the content of the disc it is necessary to know the control data and disc keys. According to the invention, the data content of the Data Area is used to determine the necessary control data, without reading information from the a lead-in area.

This application claims the benefit, under 35 U.S.C. § 365 of International Application PCT/EP01/12775, filed Nov. 5, 2001, which was published in accordance with PCT Article 21(2) on May 23, 2002 in English and which claims the benefit of European patent application No. 00250383.7, filed Nov. 17, 2000.

The invention relates to a method and to an apparatus for determining main parameter values of a storage medium that are required for replaying said storage medium, wherein said storage medium includes a first data area, in which said main parameter values are stored, and a second data area not containing said main parameter values but other data.

BACKGROUND

A DVD disc contains a small lead-in area that contains sync sectors, control data including the number of recording surfaces, disc keys and other information, and contains a data area occupying the main part of the available disc surface. In order to handle the content of a DVD Video disc it is necessary to transform a logical sector number denoted LSN into a physical sector number denoted PSN. A DVD disc may contain up to four recording surfaces.

If there is more than one recording surface to be accessed, U.S. Pat. No. 5,966,721 discloses how to make the content of the lead-in areas of multiple recording surfaces readable from one surface only.

INVENTION

A problem to be solved by the invention is to determine important data parameters, which are stored in the lead-in area of the disc and which are required for replaying the disc, from other data read from the non-lead-in area of the disc, without reading the required data parameters from the lead-in area. This problem is solved by the method disclosed in claim1. An apparatus that utilises this method is disclosed in claim9.

According to the invention, the content of the disc Data Area is used to determine the necessary information for a transformation between LSN and PSN numbers without reading information from a lead-in area denoted Lead In.

For determining the important or main parameters, the following Data Area data are used:characteristic file system data at the beginning of Layer 0;DVD Video specific data located at the beginning of Layer 0;sector IDs;if Layer 1 is present, DVD Video specific data located at the inner radius of Layer 1;if Opposite Track Path disc is present, the structure of DVD Video specific data located at the outer radius of Layers 0 and 1.

Without any view into the Lead In, the proposed procedure determines the location of the Lead In, the Lead Out, the Data Area, the Middle Area (if any), and determines the DVD disc type.

The last four of these five variables represent a complete replacement for the information from the Data Area allocation field (BP 4 to 15) described by the DVD Specification for Read-Only Disc, Part 1, Version 1.0, 3.4.1.3.1 Physical Format Information.

In principle, the inventive method is suited for determining at least one main parameter value of a storage medium that is required for replaying said storage medium, wherein said storage medium includes a first data area, in which said at least one main parameter value is stored, and a second data area not containing said at least one main parameter value but other data, and wherein said at least one main parameter value is determined by reading and evaluating data from said second data area, without reading said at least one main parameter value from said first data area.

In principle the inventive apparatus is suited for determining at least one main parameter value of a data disc that is required for replaying said data disc, wherein said data disc includes a first data area, in which said at least one main parameter value is stored, and a second data area not containing said at least one main parameter value but other data, and wherein said apparatus includes:means for driving said data disc;a pickup for reading data from said data disc;a buffer,means for controlling said driving means, said pickup and said buffer, and for determining said at least one main parameter value by reading and evaluating data from said second data area, without reading said at least one main parameter value from said first data area.

Advantageous additional embodiments of the invention are disclosed in the respective dependent claims.

EXEMPLARY EMBODIMENTS

The above main variables and the way to calculate or determine them are now described in more detail, based on clauses of the DVD Specification for Read-Only Disc, Part 1, Version 1.0.

For DVD Single Layer discs:disc_type=Single LayerStart_PSN_Layer—0=“Start sector number of the Data Area” in the Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.End_PSN_Layer—0 =“End sector number of the Data Area” in the Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.Start_PSN_Layer—1 does not existEnd_PSN_Layer—1 does not exist

For DVD Parallel Track Path discs that have two layers:disc_type=Parallel Track PathStart_PSN_Layer—0=“Start sector number of the Data Area” in the Layer 0 Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.End_PSN_Layer—0 =“End sector number of the Data Area” in the Layer 0 Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.Start_PSN_Layer—1=1000000h+“Start sector number of the Data Area” in the Layer 1 Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.End_PSN_Layer—1=1000000h+“End sector number of the Data Area” in the Layer 1 Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.

For DVD Opposite Track Path discs that have two layers: disc_type=Opposite Track PathStart_PSN_Layer—0=“Start sector number of the Data Area” in the Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.End_PSN_Layer—0=“End sector number in Layer 0” in the Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.Start_PSN_Layer—1=1FFFFFFh−End_PSN_Layer—0, i.e. the sector number Start PSN_Layer—1 follows immediately the sector number End_PSN_Layer—0.End_PSN_Layer—1=1000000h+“End sector number of the Data Area” in the Lead In as described by 3.4.1.3.1 Physical Format Information, (BP 4 to 15) Data Allocation.

The variables PSN and ID are defined as follows:PSN=“Physical sector number”, word length 25 bits, Range for Layer 0: 0 . . . 0FFFFFFhRange for Layer 1: 1000000h. . . 1FFFFFFhPSN is identical to the 25 least significant bits of ID.ID=“Identification Data” as described by 3.2.2 Identification Data, i.e. an ID consists of Sector information and a physical sector number PSN.

The two layers of the storage medium may be located at different sides of a disc, or may be located at one side of a multi-layer storage medium that also can be two-sided. It is also possible that the disc has a single layer on one side and two layers on the other side.

The transformation from logical sector number LSN to physical sector number PSN is described in connection withFIG. 1.1: start2: LSN≦(End_PSN_Layer—0−Start_PSN_Layer—0)?3: Area type of ID is Data Area PSN=LSN+Start_PSN_Layer—04: Area type of ID is Data Area PSN=LSN+Start_PSN_Layer—1+Start_PSN_Layer—0−End_PSN_Layer—0−15:end

There is no error handling, i.e. LSN must lie within the range provided by the existing Data Area of the disc.

The transformation from a PSN number to an LSN number is described in connection withFIG. 2.6: start7: is the most significant bit (the 25th bit) of PSN zero, i.e. is Layer 0 present?8: LSN=PSN−Start_PSN_Layer—09: LSN=PSN−Start_PSN_Layer—1−Start_PSN_Layer—0+End_PSN_Layer—0+110: end

There is no error handling, i.e. PSN must point into the existing Data Area of the disc.

The method of searching for the main variables is described in connection withFIG. 3. The main variables will be found in any case. A disadvantage of this method is that a big-distance jump of the optical head between the inner and the outer radius of the disc is required. Such jumps take some seconds. Advantageously, step16allows trying first other steps that work much faster. Only in case the faster steps fail, the slow but anyway working processing will be carried out. But tests have shown that the fast version processing steps will find the correct main variables for nearly all of the existing DVD Video discs.11: start12: disc inserted?13: primary volume descriptor pvd=30010hAssumption that it is a DVDtry to read sector PSN=i14: sector PSN=pvd found?15: disc is either damaged or not of DVD-ROM type16: indicates the ID of sector PSN=pvd a Data Area sector (Area type of ID=Data Area)?17: pvd=31010h18: indicates the ID of sector PSN=pvd a Data Area sector (Area type of ID=Data Area)?19: it is not a DVD-Video disc20: it is a DVD-RAM disc:disc_type=Single Layer; Start_PSN_Layer—0=31000h21: For DVD-ROM, DVD-R, DVD−RW and DVD+RW:Start_PSN_Layer—0=30000h;Assumption that it is a DVD dual layer discuse the optical head or pick-up position of the same radius as used for reading sector 30010hof layer 0 to read a sector of layer 1.22: any sector found?23: disc_type=Single Layer24: disc_type=Dual Layer (temporary status)25: try fast processing steps26: are all types of main variables completely known?27: jump to the outer radius of the disc, take care of the different radiuses: 8 cm and 12 cm; read successive sectors of layer 0 to locate the border between Data Area and Lead Out or Middle Area;End_PSN_Layer—0=PSN of the last Data Area sector28: is there a Lead Out on Layer 0 at the outer radius of the disc?29: is disc_type=Dual Layer?30: disc_type=Parallel Track PathStart_PSN_Layer—1=1030000h;31: change to layer 1; read successive sectors of layer 1 to locate the border between Data Area and Lead Out;End_PSN_Layer—1=PSN of the last Data Area sector32: disc_type=Opposite Track Path;Start_PSN_Layer—1=1FFFFFFh−End_PSN_Layer—0;33: jump to the inner radius of the disc on layer 1 at the radius of sector PSN=30000h; read successive sectors of layer 1 to locate the border between Data Area and Lead Out;End_PSN_Layer—1=PSN of the last Data Area sector34: end
Fast Processing Steps for Searching for the Main Variables:

This type of processing is depicted inFIG. 4.50: start51: find disc_type52: fast search for the main variables53: end

Step51ofFIG. 4is denoted as function “find disc type” and includes the further steps depicted inFIG. 5.60: start61: is disc_type=Single Layer?62: assume a DVD Parallel Track Path discuse the pick-up position of the same radius as used for reading sector 30010hof layer 0 to read a sector of layer 1.63: is sector PSN significantly greater than 1030010h?64: disc_type=Opposite Track Path65: disc_type=Parallel Track PathStart_PSN_Layer—1=1030000h66: end

This processing can also be desribed as follows: The parameter disc_type can be determined by reading at least one PSN at the beginning of the first disc layer and at least one PSN at the same or a similar radial location in the other disc layer. If the difference between the corresponding PSN numbers from the two layers is significant, it must be an Opposite Track Path disc. If that difference is small, it is a Parallel Track Path disc.

Alternatively, if at the radial location of the first-layer Lead In there is a corresponding Lead In in the other layer, it must be a Parallel Track Path disc. If at the radial location of the first-layer Lead In there is a corresponding Lead Out in the other layer, it must be an Opposite Track Path disc. It is not necessary to read the content of the Lead In. Knowing the sector ID is sufficient, because the sector ID determines whether it is a Lead In or a Lead out or a Data Area.

As a further alternative, one of the possible dual-layer disc types is assumed to be true and the decoding of the disc-stored useful data (e.g. video data or audio data) is started. If errors or inconsistencies will occur in the decoding, a single-sided disc type is assumed to be true and the decoding is tried again. Whether it is a Parallel Track Path or Opposite Track Path disc can be determined by assuming the presence of one of these types, followed by requesting a jump to a different sector number (i.e. a jump in a specific radial direction) and by checking the proper decoding processing.

Step52ofFIG. 4is denoted-as function “fast search for the main variables” and includes the further steps depicted inFIG. 6.80: start81: is disc_type=Single Layer?82: is disc_type=Parallel Track Path?83: find the main variables for the Single Layer Disc84: find the main variables for the Parallel Track Path Disc85: find the main variables for the Opposite Track Path Disc86: end

In connection with some of the following figures, some processing steps denoted as function “find last LSN via partition size” are required. This function is depicted inFIG. 7.100: start101: investigation of the file systems UDF/ISO9660 (Universal Disc Format): find the partition end.pvd: last_LSN=Volume Space SizePartition Descriptor:last_LSN=Partition Starting Location+Partition Length102: select the higher last_LSN value from both file systems.103: set the 8 LSBs of the selected last_LSN to ‘1’.104: end

Step83ofFIG. 6is denoted as function “find the main variables for the Single Layer Disc” and includes the further steps depicted inFIG. 8.150: start151: carry out function “find last LSN via partition size”152: End_PSN_Layer—0=Start_PSN_Layer—0+last_LSN Remark: End_PSN_Layer—0 may be lower than the PSN of the last logical sector of this disc, but the value found is exact enough for a complete play back of the disc without any restrictions for a user.153: end

Step84ofFIG. 6is denoted as function “find the main variables for the Parallel Track Path Disc” and includes the further steps depicted inFIG. 9.200: start201: carry out function “find last LSN via partition size”202: start with reading sectors from PSN=1030000h203: is one of the read sectors a NV_PCK?204: store NV_PCK_LBN of this NV_PCK in a variable nv_lbn;store PSN of this NV_PCK in variable nv_psn.205: change into the DVD video title set directory VIDEO_TS;investigate the stream files VTS_xx_yy.VOB, wherein xx runs from 1 to 99 and yy runs from 1 to 9;search for a VTS_xx_yy.VOB file that is not the last file of a video title and the size of which is less than 220-2048 bytes (if any such file exists) and that ends close to sector LSN=last_LSN/2.206: is there such file?207: End_PSN_Layer—0=(Start_PSN_Layer—0+last LSN) of that VTS_xx_yy.VOB file;set the 8 LSBs of End_PSN_Layer—0 to ‘1’;End_PSN_Layer—1=Start_PSN_Layer—0+Start_PSN_Layer—1+last_LSN−End_PSN_Layer—0−1;208: of the assigned VTS_xx—1.VOB, is start LSN+nv_lbn+Start_PSN_Layer—0+Start_PSN_Layer—1−End_PSN_Layer—0−1 nearby or equal to nv_psn?209: find the start LSN of the file VTS_xx_yy.VOB (xx: 1 to 99; yy: 0 or 1) for which min (|((last_LSN+1)/2)−nv_lbn−(start LSN of VTS_xx_yy.VOB)|) is true and store this start LSN in a variable vob_lsn210: End_PSN_Layer—0=Start_PSN_Layer—0+Start_PSN_Layer—1+vob_lsn+nv_lbn−nv_psn−1;End_PSN_Layer—1=Start_PSN_Layer—0 +Start_PSN_Layer—1+last_LSN−End_PSN_Layer—0−1;211: read the video title set information management table VTSI_MAT of the title information file VTS_xx—0.IFO and of the backup title information file VTS_xx—0.BUP (the .BUP file is byte-identical with the .IFO file), which must be located in layer 0 just before the first and in layer 1 just behind the last “.VOB” file of this title.212: are both VTSI_MATs equal?213: End_PSN_Layer—0 and End_PSN_Layer—1 are correct214: End_PSN_Layer—0 and End_PSN_Layer—1 are wrong215: is there another file VTS_xx_yy.VOB, wherein xx runs from 1 to 99 and yy runs from 1 to 9, that is not the last file of a video title and the size of which is less than 220-2048 bytes (if any such file exists) and that ends close to sector LSN=last_LSN/2?216: end

Step85ofFIG. 6is denoted as function “find the main variables for the Opposite Track Path Disc” and includes the further steps depicted inFIG. 10.300: start301: search for the border between Lead Out and Data Area of Layer 1302: End_PSN_Layer—1=least significant 25 bits of the ID of the just found last Data Area sector of Layer 1303: read sector PSN=End_PSN_Layer—1304: do the first 16 bytes of this sector's main data identify this sector as an Anchor Volume Descriptor Pointer AVDP with Tag=2 (Tag is a descriptor type indicator)?305: the AVDP could be damaged; try to locate the Middle Area via the file system306: End_PSN_Layer—0=((Tag Location of the Descriptor Tag of the AVDP)−(End_PSN_Layer—1−1000000h)+Start_PSN_Layer—0−2)/2;Start_PSN_Layer—1=1FFFFFFh−End_PSN_Layer—0307: carry out function “find last LSH via partition size”308: investigate the stream files VTS_xx_yy.VOB, wherein xx runs from 1 to 99 and yy runs from 1 to 9;search for a VTS_xx_yy.VOB file that is not the last file of a video title and the size of which is significantly less than 220-2048 bytes (if any such file exists) and the last sector of which is as close as possible to LSN=last_LSN/2309: is there such file?310: End_PSN_Layer—0=Start_PSN_Layer—0+last LSN of the detected VTS_xx_yy.VOB file;set the 8 LSBs of End_PSN_Layer—0 to 1;Start_PSN_Layer—1=1FFFFFFh−End_PSN_Layer—0311: find the location, or LSN, of the last VTS_xx—0.BUP file of the disc via the file system, wherein xx runs from 1 to 99;calculate the start PSN of this file:start_PSN last_BUP=LSN of the last VTS_xx—0.BUP file+Start_PSN_Layer—0 +Start_PSN_Layer—1−End_PSN_Layer—0−1;jump to sector PSN=start_PSN_last_BUP and read this sector312: is this sector a vide title set information management table VTSI_MAT?313: search in the sectors around the assumed PSN for the VTSI _MAT:314: was search for VTSI_MAT successful?315: End_PSN_Layer—0=start PSN of the detected VTS_xx—0.BUP file−Start_PSN_Layer—0−Start_PSN_Layer—1+End_PSN_Layer—0+1;Start_PSN_Layer—1=1FFFFFFh−End_PSN_Layer—0316: read the VTSI_MATs of the files VTS_xx—0.IFO and VTS_xx—0.BUP, they must be located just before the first and just after the last “.VOB” file of this title317: are both VTSI_MATs equal?318: Start_PSN_Layer—0 and End_PSN_Layer—1 are correct319: Start_PSN_Layer—0 and End_PSN_Layer—1 are wrong320: is there another file VTS_xx_yy.VOB, wherein xx runs from 1 to 99 and yy runs from 1 to 9, that is not the last file of a video title and the size of which is less than 220-2048 bytes (if any such file exists) and that ends close to sector LSN=last_LSN/2?321: end
Alternative Fast Processing Steps for Searching Critical Ones of the Main Variables:

In case the above described fast processing steps of searching for the critical main variables fail, alternative processing steps can be carried out in order to derive the most important ones of the main variables, in particular End_PSN_Layer—0 for a Parallel Track Path disc, and End_PSN_Layer—0 or Start_PSN_Layer—1 for an Opposite Track Path disc.

For getting End_PSN_Layer—0 for Parallel Track Path discs:400: search inside the file system for file system descriptors UDF, e.g. File Entry Descriptors, just after the middle of the LSN area of the whole disc. These descriptors are probably located in layer 1 just after the Lead In.401: estimate the PSN of these descriptors and jump to a PSN just before such an estimated PSN402: search for these UDF descriptors. The identification can be performed by analysing the first 16 bytes of each sector read. The first16bytes of the UDF descriptors contain the Descriptor Tag that provides characteristic information about this descriptor. Therefore an UDF descriptor can be easily recognised.403: the Tag Location contains a logical sector location of itself. The Tag Location of some descriptors is counted relatively to the start of the partition (File Descriptors, like File Entry Descriptors). Some Tag Locations are identical to LSN (Volume Descriptors, e.g. Anchor Volume Descriptor Pointers).The Tag Location is used to recalculate End_PSN_Layer—0404: get the start LSN of the UDF partition from the Partition Descriptor405: Tag Location of a File Descriptor found:End_PSN_Layer—0=Start_PSN_Layer—0+Start_PSN_Layer—1+Tag Location+start LSN of the UDF partition−PSN of the Descriptor−1406: Tag Location of a Volume Descriptor found:End_PSN_Layer—0=Start_PSN_Layer—0+Start_PSN_Layer—1+Tag Location−PSN of the Descriptor−1

For getting End_PSN_Layer—0 and Start_PSN_Layer—1 for Opposite Track Path discs:450: search inside the file system for file system descriptors UDF, e.g. File Entry Descriptors, just before the end of the LSN area of the whole disc. These descriptors are probably located in layer 1 just after the Lead In.451: estimate the PSN of these descriptors and jump to a PSN just before such an estimated PSN452: search for these UDF descriptors. The identification can be performed by analysing the first 16 bytes of each sector read. The first 16 bytes of the UDF descriptors contain the Descriptor Tag that provides???? characteristic information about this descriptor. Therefore an UDF descriptor can be easily recognised.453: the Tag Location contains a logical sector location of itself. The Tag Location of some descriptors is counted relatively to the start of the partition (File Descriptors, like File Entry Descriptors). Some Tag Locations are identical to LSN (Volume Descriptors, e.g. Anchor Volume Descriptor Pointers).The Tag Location is used to recalculate End_PSN_Layer—0 and Start_PSN_Layer—1454: get the start LSN of the UDF partition from the Partition Descriptor455: Tag Location of a File Descriptor found:End_PSN_Layer—0=Start_PSN_Layer—0+Start_PSN_Layer—1+Tag Location+start LSN of the UDF partition−PSN of the Descriptor−1456: Tag Location of a Volume Descriptor found:End_PSN_Layer—0=Start_PSN_Layer—0+Start_PSN_Layer—1+Tag Location−PSN of the Descriptor−1457: Start_PSN_Layer—1=1FFFFFFh−End_PSN_Layer—0

The location of special DVD-Video files may also be used in an analog way, e.g. files VTS_xx—0.IFO, wherein xx runs from 1 to 99. These files are recognisable using a method described in EP-A-1014372 of the same applicant. A comparison of the PSN of the detected VTS_xx—0.IFO file with its location indicated by the file system leads to the calculation of End_PSN_Layer—0.

FIG. 11shows an optical disk D, which is driven by a motor M and from which data are read by means of a pick-up P. These data are fed to a track buffer TB. The data read are stored in TB in order to compensate for different instantaneous or short-term data rates. The corresponding partial data streams of the buffer-stored data stream are fed from TB into an associated decoder bit buffer. In this case, a video, audio, subpicture, and/or data decoder DAT may be involved, for example. The video decoder VID may be an MPEG video decoder. The audio decoder AUD may be an MPEG or AC3 audio decoder. Instead of a data decoder, it is also possible to use an output interface.

M, P, TB, VID, AUD and DAT are controlled by controlling means CTRL. This controlling means CTRL steers the radial position of pick-up P and the speed of motor M, evaluates the required data read for determining, by carrying out the functional processing steps described, the above mentioned main variables.

The invention can also be used for other types of storage media that have a first data area or data section corresponding to the Lead In and storing the main variables or main parameter values, and have a second data area or data section for other data.