Patent Publication Number: US-6983292-B1

Title: Method and apparatus for formatting and initialization of re-writable optical media

Description:
CROSS REFERENCE To RELATED APPLICATION 
     This application claims priority from U.S. Provisional Patent Application No. 60/304,547, filed Jul. 10, 2001, and entitled “METHOD AND APPARATUS FOR FORMATTING AND INITIALIZATION OF OPTICAL MEDIA.” 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to the recording of data onto optical media, and more particularly to a method for formatting and initializing re-writable optical media to provide user access to the media after only a short preparation time, and to provide for data integrity during the format and initialization operations, and during the life of the media. 
     2. Description of the Related Art 
     When recording data to optical media, a user typically provides a blank optical media for recording, selects a plurality of files from a source or plurality of sources, and executes a recording function. The selected files can be of any type including audio files, video files, photographic files, data files, program application files, and the like. The recording function is typically executed by use of an optical media recording program which accomplishes such tasks as mapping out precise locations of source files, determining size of source files, mapping out a precise target destination for the selected files, calculating a theoretical transfer rate for reading the file from a source and recording the file to a destination, identifying those files that will be cached and those files that will be recorded directly from source to destination, performing necessary file formatting as required, and burning the selected files to a destination optical media. 
     Before any of the above functions can occur, however, the target optical media must be properly formatted. Generally, formatting includes defining a file system and structure for writing data to a media, or for simple audio recording, defining a generic structure. Although different types of data require different types and levels of destination media formatting, the process of formatting re-writable optical media has failed to keep up with basic user demand for simple and efficient methods for rapidly formatting and initializing optical media. 
     Typically, a user must spend from 30 to 50 minutes in preparing re-writable optical media for recording data files. Assuming compliance with such standards as ISO9660 and Universal Disc Format, preparation of re-writable optical media for recording data files requires at least writing to the entire disc, and then, for optimum preparation, verification by reading back each block. Verification of user data recorded to the media after formatting only occurs upon reading data back from the media. If a problem occurs but is not detected during the write process, the user&#39;s data is already lost by the time the problem is eventually discovered. 
     The abbreviation “UDF” is used throughout this application to signify Universal Disk Format. UDF is a wordmark owned by the Optical Storage Technology Association (OSTA), which has issued various industry standards for Universal Disk Format or UDF. 
       FIG. 1A  shows a block diagram  10  of a typical formatted re-writable optical media according to the UDF standard. Block  20  is the Lead In area, block  22  is the UDF file system, and block  23  is an area of null data. Null data consists typically of O&#39;s written to the disc specifically for the purpose of formatting. Block  24  represents the UDF area reserved for redundant file system information and possibly for sparing purposes, and block  26  represents the Lead Out area. The structures shown in block diagram  10  are well known, and represent a typical UDF formatted media.  FIG. 1A  is representative of a formatting structure that, in prior art, must be accomplished before data is recorded to re-writable optical media, and such formatting typically takes from 30 to 50 minutes to complete. Generally, no other processes or operations may be conducted with the optical media once the formatting has been initiated. 
     One prior art solution to the amount of time that is required for media formatting has been the manufacture and sale of pre-formatted media. The pre-formatting, or formatting of the re-writable optical media prior to the sale or distribution to a user, continues to take the aforementioned 30–50 minutes, but is accomplished during the manufacture of the media. Pre-formatted re-writable optical media are simply formatted during manufacture, and the cost of formatting during production is passed on to the user. Further, a typical user is easily confused if not skilled enough to know, for example, that data is commonly recorded in UDF format, but audio is not. If a user desires to record audio files, then a UDF-formatted disc will indicate to the recording system that the media is “full”. The recording system would then require that the media&#39;s pre-formatting be erased in preparation for audio recording. 
     Another prior art solution has been to utilize programming options described in the UDF specification. One such option is the “grow” format command defined in the MMC specification (SCSI-3 Multimedia Commands (MMC), published by the American National Standard of Accredited Standards Committee X3, Publication No. ANSI X3.304:1997, and other similar or related documents). The “grow” format command is designed for use to incrementally format a partially formatted media, and provides a reasonably rapid method of saving of files to a formatted area. Once the formatted area of the media has been filled, however, the process slows down dramatically, if supported at all. Many currently available media recording devices do not support the method prescribed by the “grow” format command, which further requires a number of programming or implementation steps well beyond the level of skill of the typical user. 
     Yet another prior art method of reducing the time required for re-writable optical media formatting has been a hardware solution. The hardware solution implements a rapid format technique allowing a user to write to media in just a few minutes after initiation of the rapid formatting. The hardware solution generally utilizes the UDF format, and proceeds to incrementally initialize whole sections of media while allowing a user to write to those sections that have been initialized. While the total time to format optical media may remain approximately the same as described and known for other methods of media formatting, the hardware-implemented rapid formatting provides the ability to write to the media before the formatting of the entire disc has been completed. So long as the user leaves the optical media in the hardware device capable of the hardware rapid formatting, the user can write to those portions of formatted media, as they become available. 
       FIG. 1B  shows a block diagram  15  of a typical prior art rapidly formatted re-writable media using a hardware-implemented rapid formatting process. Block  30  represents a Lead In area, and block  32  represents the UDF file system. The Lead In area and the UDF file system shown in blocks  30  and  32  are substantially identical to the Lead In area and UDF file system shown in blocks  20  and  22  of  FIG. 1A . In  FIG. 1B , the UDF file system shown in block  32  is followed by an uninitialized area represented by block  34 . The uninitialized area  34  represents an area of the media between the Lead In  30  and the Lead Out  40  that has never been written to or otherwise formatted. The uninitialized area  34  will be formatted and written to in the process of the media formatting, but the initial structures shown in  FIG. 1B  allow the media to be accessed with a system incorporating the hardware implementing the rapid formatting. 
     The uninitialized area  34  is followed by an area of null data  36 , the UDF redundant file system information and sparing region  38 , and the Lead Out area  40 . Because a section of the media remains uninitialized  34 , the Lead In  30  lacks an accurate reference to point to an exact location for the Lead Out  40 . The null data block  36  ensures that devices implementing a seek-calibration process as part of the spinning up of a disc have adequate formatted space in and near the Lead Out  40  for the seek calibration process. In substantially all other respects, the UDF redundant file system information and sparing region  38  and the Lead Out  40  are the same structures as those described in  FIG. 1A  at blocks  24  and  26 . 
     As illustrated in  FIG. 1B , the hardware-implemented rapid formatting creates a formatted re-writable media that looks and operates similar to the typical UDF formatted media. When the hardware-implemented method is initiated, the Lead In  30 , UDF file system  32 , a small amount of null data  36 , the file system information and sparing region  38  and the Lead Out  40  are written and verified. Once these structures are established and verified, the media appears as a formatted media, and can be written to and verified as any other media might be. So long as the media remains in the hardware device capable of implementing the hardware-implemented formatting, the remainder of the uninitialized area  34  is formatted in whole sections, during which time a user can access and interact with those sections of the media that have been formatted. As each whole section of media space is written and verified, that section becomes available for use as a formatted section of media. The process of formatting sections of media continues and allows use of those sections of media that have been formatted while the formatting is proceeding. This is true only as long as the media remains in the device that initiated the formatting, or is inserted into another device capable of performing the hardware-implemented rapid formatting. 
     If the media is ejected from the formatting device prior to completion of the formatting of the entire media, it can be inserted into another device, but there are limitations on its use. If the other device into which the media is inserted is not capable of a hardware-implemented rapid formatting of media, the media can only be accessed in read-only mode. Essentially, the media presents itself as having a closed session of data written thereon, and therefore can be accessed for reading, but not for writing or completion of the formatting process. 
     Another limitation of the prior art formatting process is that although many formatting process applications utilize some form of defect management in the initial formatting of a media, there is no known prior art method of defect management of media during its useful life. By way of example, the UDF specification defines a sparing table to be used for re-writing data that was discovered to contain errors during the verification process, and the process of implementing the sparing table is known in the art. The UDF specification does not, however, define an area or process for defect management that includes periodic verification of data after its initial writing to the optical media. 
     In accordance with the above, what is needed is a method and system for the formatting and initialization of media which allows user access to media after only a short preparation time, allows full read and write capabilities during the initialization process, provides data integrity during the initialization and during the life of the media, allows a user to eject the media during the initialization and have the initialization continue upon media reinsertion, and uses an incremental initialization method to allow partially initialized media to be readable and writable by a plurality of systems and software applications. 
     SUMMARY OF THE INVENTION 
     Broadly speaking, the present invention fills these needs by providing a software-driven method and system for the initialization and formatting of re-writable optical media, and management of data integrity over the life of the re-writable optical media. The present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable media. Several embodiments of the present invention are described below. 
     In one embodiment, a software-driven method for formatting a re-writable optical media (RW media) is disclosed. The software driven method begins with the receiving of a request to format the RW media. The software driven method includes writing an ISO9660 image to the RW media. The ISO9660 image contains a UDF reader. The software-driven method further includes writing UDF structures to the RW media, and writing a write count table to the RW media. The write count table is configured to store a counter corresponding to each packet defined on the RW media. A value for the counter dictates whether the corresponding packet on the RW media should be verified to ensure integrity of data written to the packet on the RW media. The software-driven method then writes additional media file system structures to the RW media, and verifies the ISO9660 image, the UDF structures, the write count table, and the additional media file system structures. 
     In another embodiment, a software-driven method for initializing a re-writable optical media (RW media) is disclosed. The software-driven method includes code for formatting the RW media, and code for writing initialization packets to the RW media. The software-driven method further includes code for verifying the initialization packets. The writing and verifying of initialization packets is processed as a background operation while allowing a user to interact with the RW media. 
     In still a further embodiment, a method for defect management of a re-writable optical media (RW media) is disclosed. The method includes formatting an RW media, and initializing an RW media. The initializing of the RW media includes writing and verifying a packet for user data to the RW media. The method further includes entering a value in a write count table corresponding to the packet for user data, and writing to the packet for user data. The packet for user data is then verified. For each time the packet for user data is written to, the method provides for decreasing by one the value in the write count table corresponding to the packet for user data. The packet for user data is re-verified when the value in the write count table reaches a pre-determined number. 
     The advantages of the present invention over other prior art solutions are numerous. One notable benefit and advantage of the invention is the savings in the cost to the user not having to purchase re-writable optical media preformatted with a UDF file system. 
     Another benefit is the savings in the time to the user not having to fully erase re-writable optical media (which could also take 30–50 minutes) purchased with a preformatted UDF file system should that user decide to use a piece of media for a purpose other than what the UDF file system is intended (such as audio). 
     An additional benefit is the savings in the cost to the user not having to purchase new hardware and new hardware specific media to perform the same tasks with the same benefits as that of the present invention, since the present invention utilizes currently existing hardware and media. 
     Yet another benefit is the ability to interchange partially formatted re-writable optical media allowing full read and write access with other UDF writable platforms. 
     Other advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements. 
         FIG. 1A  shows a block diagram of a typical formatted media according to the UDF standard. 
         FIG. 1B  shows a block diagram of a typical prior art rapidly formatted media using a hardware-implemented rapid formatting process. 
         FIG. 2A  shows a block diagram of the final state of a media after the formatting process in accordance with one embodiment of the invention. 
         FIG. 2B  shows a more detailed block diagram of the UDF and additional structures in the fixed packet area of block in accordance with one embodiment of the invention. 
         FIG. 3  shows a block diagram of an exemplary initialized media after the completion of the media initialization process in accordance with one embodiment of the invention. 
         FIG. 4  shows a flow chart diagram illustrating the method operations performed in the formatting of re-writable optical media in accordance with one embodiment of the invention. 
         FIG. 5  shows a flow chart diagram illustrating the method operations performed in the general interaction with and background formatting of re-writable optical media in accordance with one embodiment of the invention. 
         FIG. 6  shows a flow chart diagram illustrating the method operations performed when the re-writable optical media completes the initialization of the media in accordance with one embodiment of the invention. 
         FIG. 7  shows a flow chart diagram illustrating the method operations performed when a command to eject the re-writable optical media is received in accordance with one embodiment of the invention. 
         FIG. 8  shows a flow chart diagram illustrating the method operations performed for defect management of re-writable optical media over the life of the media in accordance with one embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     An invention for software-driven initialization and verification of re-writable optical media while the user is interacting with it is disclosed. In preferred embodiments, the invention includes methods and media with features that allow user access to the media after only a short preparation time, that allow full read and write capabilities during the initialization process, and that provide data integrity during the initialization and during the life of the media. Additional features allow the user to eject the media during initialization and have initialization continue upon media reinsertion, and provide for use of an incremental initialization process to allow partially initialized media to be readable and writable by a plurality of media applications, devices and systems. In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be understood, however, to one skilled in the art, that the present invention may be practiced without some or all of these specific details. In other instances, well known process operations have not been described in detail in order not to unnecessarily obscure the present invention. 
     The present invention provides for the preparation of blank re-writable optical media, such as CD-RW, DVD-RW, DVD+RW, and the like, for use. The terms “media,” “RW media,” and “optical media,” as used herein, shall be representative of all forms of re-writable optical media. Also as used herein, the term “formatting” describes the preparatory functions that program the file system structures required to define a file system on RW media, and the term “initialization” describes those processes that prepare the user data partition. In addition, the terms “track” and “session,” as they apply to CD optical media and as used herein, also are equivalent to the concepts of “zone” and “border” as they apply to DVD optical media. 
     When a user begins the preparation of blank RW media, the media must first be formatted for use. In one embodiment, the formatting includes placing UDF structures on the media to define the media as a UDF disc. The UDF file system is the generally accepted file system for data files. As is known, UDF was developed by the Optical Storage Technology Association (OSTA) and is the standard for optical media such as CD, CD-R, CD-R/RW, CD-ROM, DVD-ROM, DVD-R/RW, DVD-RAM, DVD+R/+RW and the like to provide file use and interaction between optical media and a plurality of operating systems. A more detailed description of the UDF file system is found in the UDF specification, which is incorporated herein by reference. 
     In order to ensure compatibility and interoperability with a plurality of operating systems and software applications, a UDF reader is placed on the media during format, in one embodiment of the present invention. For those systems that do not incorporate a UDF implementation, the UDF reader provides the necessary access and compatibility for use of the media. In one embodiment, the UDF reader is provided in an ISO9660 image at the start of the media. As is known, ISO9660 is a file system specification for CD optical media defining such things as volume and file structures, and is a widely accepted standard for CD optical media. Use of a UDF reader provides user access to the UDF image on the media for those systems without a previously defined UDF implementation. 
     A feature of the present invention is the ability to use the media upon completion of the formatting process, and before completion of the initialization of the entire media. In one embodiment, the formatting takes only two to four minutes. Although the remainder of the initialization of the media will continue in the background until complete, interaction with the media is enabled as soon as the two to four minutes of formatting has been accomplished. In order to provide for the use of the media, including the ability to eject the media from the optical media drive, a number of UDF structures are written to the media during format so they are in place before the media can be ejected. In addition to the UDF reader described above, fixed packets containing UDF file system structures are written to the media. Examples of UDF file system structures include volume structures such as the Volume Recognition Sequence (VRS), Anchor Volume Descriptor Pointer (AVDP), Primary and Reserved Volume Descriptor Sequences (VDS), Logical Volume Integrity Descriptor (LVID), and the like, as well as the sparing table and pre-initialized space for sparing packets. Additional structures, such as the Partition Descriptor (PD) and the Unallocated Space Bitmap (USB), are provided with their content adjusted to identify only the area of the media partition that is formatted. Enough space is reserved, however, to contain a full sized USB once the media has completed initialization. Similarly, the Free Space Table and Size Table in the Logical Volume Integrity Descriptor (LVID) are adjusted to reflect the initial partition size. These structures are configured to identify the media to other UDF implementations, and to signify that the uninitialized area beyond the end of the partition should be ignored. 
     Following the writing of volume structures, the partition format is initiated. During the partition format, a number of packets are initialized, based on the size of the media, to provide the user some initial media space in which to work. In one embodiment, these packets are configured to contain structures including at least the USB, a File Set Descriptor (FSD), and the root directory for the partition. 
     In addition to structures defined in the UDF, additional structures are written during formatting to enable initialization after formatting while the user may be interacting with the media, as well as to provide for the initialization to be paused, the media to be ejected, and for the initialization to be resumed upon remount of the media. As will be described in greater detail below, the initialization can be resumed on any device implementing the present invention. 
     In one embodiment, an additional structure is an inventive Write Count Table (WCT). The inventive WCT is configured to track the progress of the initialization and of the verification of the packets on the RW media. One embodiment of the inventive WCT includes several entries in the table, with each entry corresponding to one packet on the RW media. By way of example, all uninitialized packets on the media are reflected in an entry in the WCT as the decimal value 15. This value indicates that the corresponding packet is not initialized and will only become initialized when it is first written to. Once initialized, the WCT entries corresponding to each packet take on the role of Defect Management. A packet initialized for the first time will, upon being written, have its WCT entry set to, by way of example, the value 0. A WCT entry of 0 prompts the program to re-read the just written packet to verify the integrity of the data. After the packet has been read and verified, its corresponding WCT entry is reset to, by way of example, the decimal value 10. From this point, each time the packet is written to, its corresponding WCT entry is decremented by one. Once the value reaches 0, the packet is verified, and its corresponding WCT entry is reset to the decimal value 10 to repeat the process. 
     Once all of the structures of the formatting operation have been written to the optical media, the structures are verified. Verification is accomplished using the created structures and known verification techniques. The verification process for formatting is distinct from the verification performed during initialization, which is discussed in greater detail below. Once the verification of the formatting sectors is complete, the formatting of the optical media is complete and the optical media is prepared for the initialization process. In one embodiment, the formatting process just described takes two to four minutes. 
       FIG. 2A  shows a block diagram  100  of the final state of a media after the formatting process in accordance with one embodiment of the invention. Block  110  contains the UDF and additional structures in a fixed packet area. Block  112  contains a number of packets, based on the size of the media, to provide the user some initial media space in which to work. Block  114  is the unwritten and uninitialized area of the media. In one embodiment of the present invention, blocks  110  and  112  are formatted during the initial preparation of the media for use. 
       FIG. 2B  shows a more detailed block diagram of the UDF and additional structures in the fixed packet area of block  110  in accordance with one embodiment of the invention. Block  116  contains 16 sectors of reserved space. Block  118  contains an ISO9660 image containing a UDF reader. Blocks  120 – 132  contain UDF structures including an Anchor Volume Descriptor Pointer (AVDP) in block  120 , a primary Volume Descriptor Sequence (VDS) in block  122 , a reserve VDS in block  124 , a Logical Volume Integrity Descriptor (LVID) in block  126 ,  32  reserved packets in block  128 ,  32  spare packets in block  130 , and a spare table in block  132 . The UDF structures are generally known structures, and are written to the fixed packet area  110  in accordance with UDF standards and functions. 
     Block  134  contains an inventive Write Count Table. The WCT, as described above, functions to keep track of the progress of the media initialization and verification. Block  136  contains an Unallocated Space Bitmap (USB), a File Set Descriptor (FSD), a root directory for the partition, and a Non-Allocatable Space list file. 
     As can be appreciated from  FIGS. 2A and 2B , at the completion of the preparatory formatting, the media is not formatted as a closed session media in one embodiment of the invention. Referring to  FIG. 1A , a closed session, initialized media contains a lead in area as shown in block  20  and a lead out area as shown in block  26 . In one embodiment of the invention, the media can be ejected after completion of the formatting and, because the formatting includes writing a number of packets, based on the size of the media, to provide the user some initial media space in which to work as shown in block  112  of  FIG. 2A , the media can be inserted into any RW device and a user can interact with that portion of the media initialized for use. If the system in which the media is inserted incorporates the present invention, initialization will continue as is described in greater detail below. 
     If, however, the partially initialized media is inserted into a CD-ROM device, and the media is not formatted as a closed session, the device will not see data on the media. As is known, an open session on media is not visible to a CD-ROM device, and therefore, in order to either read or interact with (including write to) the data that is written to the partially initialized media, it is necessary to use at least an RW device to see an open session. If the device is in a system implementing an embodiment of the present invention, then initialization will resume in the background while the user interacts with the media. If an embodiment of the present invention is not implemented in the system, the user can interact with those portions of the media that have been initialized, but the volume of the media is limited to that portion that has been initialized. 
     Once the format process is complete, a user can interact with the media including such operations as writing files, deleting files, moving files, creating and removing directories, and the like. While the user is interacting with the media, the present invention continues with the initialization as a background process. 
     In one embodiment of the invention, the user can interact with that portion of the media that is initialized (e.g., during the formatting procedure described above, and as packets are initialized during initialization as described in the following discussion), and packets in the uninitialized space are initialized in a background process. As packets are initialized, the USB is expanded (also described as the USB being “grown”) to show the newly available space. As is known, a Partition Descriptor (PD) specifies the partition size on media. In one embodiment of the invention, the PD will specify a size for the partition that will include only the amount of space initialized in the partition during format. During continued initialization of the media, the PD is expanded to include the newly available space. Similarly, a Free Space Table and a Size Table in the LVID, block  126 , are updated to reflect the larger size of the partition. 
     The PD, the Free Space Table, and the Size Table all reflect the initialized size of the media. If the media is mounted in a system that does not implement an embodiment of the present invention, the UDF structures provide for the use of those portions of the media that have been initialized. Inventive file system structures of the present invention, however, reflect the entire media space, both initialized and uninitialized portions. Therefore, a user implementing an embodiment of the present invention will have the entire media space indicated as available for use, and if using the media in a system that does not implement the present invention, will have those portions of the media that have been initialized reflected as available for both reading and writing. In one embodiment of the invention, the media is available for use on any system incorporating at least an RW device, whether or not the media is completely initialized, and whether or not the system implements the present invention. 
     During the continuing initialization of the media in one embodiment of the invention, interaction with the optical media may include writing to the media. If there is sufficient space already initialized to accommodate user data to be written, then the data is simply written directly to the media in initialized space. If, however, there is not yet available initialized space, then one embodiment of the invention includes the creating of space for the data. If there is enough remaining uninitialized space on the media, the present invention will use the user data as the initializing image for newly initialized packets. This process saves time in the initialization process, as the packets will not require the writing of a separate initialization pattern prior to being written with user data. The process of using user data implemented in an embodiment of the present invention is more thoroughly described in co-pending application Ser. No. 09/614,065 filed on Jul. 11, 2000 and assigned to the same assignee of the present application, and which is herein incorporated by reference. As the data is written, the USB, PD, and LVID are updated as described above, and the packet(s) marked for verification. 
     When user data is used for initialization, all packets containing user data and ready to be verified must be verified before the media can be ejected from the optical media recording device. The verification of packets containing user data prior to ejecting the media ensures the data is safely written to the media and accessible for use. If the media were to be ejected prior to verification, any data that contained errors would no longer be available, and may be forever lost. 
     One embodiment of the invention provides for safely ejecting media prior to the completion of the initialization process. In order to ensure user data is safely recorded to the media, all packets containing user data must be verified prior to ejecting the media from the optical media recording device. Once the media is ejected, the user data exists only on the optical media, and therefore the media must be verified to contain valid data before the media is ejected. Additionally, in order for the media to be usable on any other system implementing UDF, the UDF structures stored on the media must accurately reflect the amount of media space initialized. 
     After a command to eject the media is received, one embodiment of the present invention performs a number of operations to ensure data integrity and media configuration for system interoperability. A copy of the AVDP, block  120 , is written in an address after the last written block of the session. It should be appreciated that the copy of the AVDP is written after, or outside of, the initialized partition space. Therefore, nine extra packets are written after the eject command to contain the copy of the AVDP and extra volume space. Additionally, the Unallocated Space Descriptor, which is stored in the Primary and Reserved VDS&#39;s, blocks  122  and  124 , is updated to show the newly added volume space that contains the copy of the AVDP. 
     The USB, PD, and the Free Space and Size Tables of the LVID, are then updated and modified to reflect only the currently initialized image on the media. In this manner, the present invention provides for the interaction with the media by any other system incorporating a UDF implementation. Only those portions of the media that have been initialized are available for use and interaction on all systems. For those systems incorporating an embodiment of the present invention, additional structures are updated and modified to reflect the progress of initialization at the time the media is ejected to enable initialization to resume when the media is again mounted. 
     The inventive WCT, block  134 , is updated to indicate initialized space. It should be noted that in one embodiment of the invention, the copy of the AVDP that is written after, or outside of, the initialized partition space is written to uninitialized space on the media. Once the media is again mounted in a system implementing an embodiment of the invention and initialization resumes, these packets will be initialized again as the first packets of uninitialized space. When the command to eject is received, the inventive WCT is updated and written to the media. Additionally, inventive structures known as Implementation Use Volume Descriptors (IUVD) are updated and written to the primary VDS and the reserve VDS (blocks  122  and  124 ). The IUVD contain various values used by the present invention, including the location and size of the inventive WCT. 
     Once the media is ejected, the media is partially initialized and configured for use in a plurality of systems and devices. If the media is mounted in a system that does not implement the present invention, a user can interact with the optical media, including writing data to the media in the partially initialized space. A system not implementing the present invention will see the media as having only as much space as is initialized, and will be capable of reading from and writing to the initialized area provided. 
     If the media is mounted in another system implementing the present invention, or re-mounted in the same system that performed the formatting and partial initialization, then, in addition to having the initialized area available for interaction, one embodiment of the present invention provides for the entire media space, both initialized and uninitialized areas to be available for use, and provides for continuing the initialization until the entire media is initialized. Mounted in a system implementing an embodiment of the invention, inventive media structures reflect the entire media space including both initialized and uninitialized areas. The inventive media structures such as the inventive WCT and the IUVD are used to update the UDF structures, such as the USB to describe the entire media space instead of just the initialized media space. Since the media was previously ejected with an open session, then one embodiment of the invention provides for the resumption of the initialization after the verification that the control structures are valid. The initialization will begin with the nine packets containing the copy of the AVDP that were written just after, or outside of, the initialized partition space. 
     In some circumstances, a re-mounted media may be discovered to have damaged, missing or corrupted inventive file system structures upon re-mount. The present invention provides for the reconstruction of necessary file system structures. One embodiment of the present invention may create and replace missing or corrupt file system structures as needed. Any file system structure requiring repair or replacement is set for immediate verification, and then background initialization is resumed. 
     A media mounted in a system implementing an embodiment of the present invention initializes the media as a background operation until the media is completely initialized. Once the media is completely initialized, the UDF structures are updated and written, and the inventive file system structures of the present invention are updated and written. In one embodiment, the track and session on the media is not closed until just prior to ejecting the media from the optical media recording device. In accordance with known practices and techniques, a number of structures are written to close a track and session. By way of example, the Lead Out area shown in block  26  of  FIG. 1A  is an exemplary structure that is written to close a session. Because it takes an additional amount of time to write the final structures to close a session, one embodiment of the invention postpones the operation until just prior to ejecting the media. The user is advised of the additional time required to close the track and session, and the present invention proceeds to write the structures and close the track and session. 
     If a system is powered down prior to media eject, one embodiment of the invention will not close the track and session in the absence of feedback from the user. If a user is not aware of the additional time needed to close the track and session, power might be prematurely secured from the system, and if the track and session were in the process of being closed, the media may become corrupted. Instead, the present invention provides for finalizing the structures of the media to reflect the initialized media space, and the track and session would be closed when the system is next rebooted and the media ejected. 
     Once the media has been completely initialized, it appears as a closed session, initialized media.  FIG. 3  shows a block diagram  140  of an exemplary initialized media after the initialization process is complete in accordance with one embodiment of the invention. Block  142  contains the Program Memory Area (PMA) and session Lead-In. Block  144  contains the UDF and other inventive file system structures. The initialized partition space and user data spans the largest block of media in block  146 . Block  146  contains both packets of user data and packets of initialized media space that have been initialized, verified and are ready for user data to be written. The final UDF structures, in accordance with the UDF specification, are written to block  148  and the session Lead Out is written to block  150 . 
     Once the media is completely initialized in accordance with an embodiment of the present invention, inventive file system structures described above provide continued defect management of data for the life of the media. The inventive WCT and IUVD provide not only for the tracking of the progress of initialization and packet verification during the initialization process, but also provide for the continuing management of packet integrity during the life of the media. 
     In one embodiment of the invention, the inventive WCT contains an entry for every packet on the media. During media format, the inventive WCT contains a special value of, by way of example, 15 in the entries for those packets in the partition that are not yet initialized. The entries for the packets that are initialized contain a write count for the corresponding packet. As more and more packets are initialized, their corresponding entries in the WCT are initialized and updated to represent a write count for the corresponding packet. Each time a write operation is performed to the packet, the write count entry is decreased by 1. In one embodiment, the write count is set during initialization, by way of example, to 10. When the write count reaches 0, this signifies a verification process is required for the packet. The verification process resets the write count to 10. 
     It should be noted that the initialization process includes a concurrent verification process. In this manner, as packets are initialized, entries are added to the inventive WCT and the corresponding write counts are set, by way of example, to 0 to force immediate verification. Once verified, the write counts are set to 10. 
     In the event that verification fails, and the failure is during the initialization of packets, at least two options are provided in one embodiment of the present invention. If the failure occurred during the writing of an initialization pattern to the packet, the packet can be discarded as defective and marked in the Non-Allocatable Space list in accordance with known UDF specification standards. Alternatively, if the failure occurred during the writing of user data to the packet, then the packet is rewritten in a spare location according to the UDF specification. For defects discovered during the initialization process, a “spare” location is constructed in a subsequent initialized packet of the partition, and the defective packet rewritten and verified. This provides for the dedicated spare packets constructed during formatting to be used for defect management during the life of the media, and avoids the unlikely situation of running out of spare locations during the initialization process. If the user should later delete all of the data in a spare location created during the initialization process, that spare packet can be reclaimed as usable partition space. 
     As is known, the UDF specification allows for spare locations to exist in volume space or in partition space. In one embodiment of the present invention, 32 packets for sparing are defined during the format process as shown in block  130  of  FIG. 2B . During the life of the media, the inventive WCT is used to track the writing to each packet in the partition. When the write count reaches 0 for a packet, it is verified immediately following the write operation. If any error is detected in verification, or if the read or write operations fail, the data is moved to a spare location in the spare packets shown in block  130  of  FIG. 2B . The WCT continues to monitor the operations using the data, but is redirected to the spare location. In this manner, the data contained on the optical media is subject to continuous monitoring and defect management for the life of the media. 
       FIGS. 4–8  illustrate the implementation of several features of the present invention in accordance with a plurality of embodiments. It should be appreciated from the following discussion that a feature of the present invention is that it is a software driven or implemented method. While typical prerequisite device communication and compatibility are necessary components of implementation, the structures and functions described above, and the methods described in the following discussion, are essentially implemented in software. Embodiments of the present invention can be implemented in a plurality of operating systems in communication with a plurality of optical media recording devices, and embodiments of the present invention are portable across operating systems and optical media recording devices with optical media that is partially or fully initialized. 
       FIG. 4  shows a flow chart diagram  200  illustrating the method operations performed in the formatting of RW media in accordance with one embodiment of the invention. The method begins with operation  202  in which an RW media is provided to format for use. In one embodiment, a computer system is booted and operating, and an optical media recording program in accordance with the present invention is running. 
     The method proceeds with operation  204  in which the RW media is inserted into an optical media drive configured for recording optical media, and a user selects a Format command to format the RW media. In one embodiment, a user may select Format prior to the inserting of a target media, and the program prompts to insert a blank RW media to be formatted. Once an RW media has been inserted and the Format command is executed, the method advances to operation  206 . 
     In operation  206 , the formatting of the RW media begins with the writing of an ISO9660 image that contains a UDF reader to the RW media. As described above in reference to  FIGS. 2A and 2B , one embodiment of the invention reserves the first 16 blocks of media, and then writes the UDF reader beginning with the next block. 
     It is hereby noted that method operations  206 ,  207 , and  208  in flow chart diagram  200  describe writing to an invisible track on the RW media. The term “invisible track” is known in the art, and is herein used in its familiar packet-writing sense to describe the space on RW media in which structures and information are written in packets. The invisible track is outside of the bounds of any given track in the open area past the last closed track, if one should exist, on the RW media. The invisible track is sometimes referred to as an open track, and remains so open until all of the packets that are to be written to any given track are written, and the track is closed. Upon closing of a track, a new invisible track is implicitly created since, by definition, the invisible track is outside the bounds of any given track, and in the open area past the last closed track. 
     Returning to  FIG. 4 , the method proceeds with operation  208  in which UDF structures are written to the RW media. The UDF structures include an AVDP, a primary and reserve VDS, an LVID,  32  reserved blocks, 32 blocks for spares, and the spare table. These UDF structures are illustrated as items  118 – 132  in  FIG. 2B . 
     An inventive Write Count Table (WCT) is next written to the track in operation  210 . After writing the volume structures, the user partition is next formatted. During format, a number of packets are initialized, based on the size of the media, to provide the user with some initialized space to work with. The USB, FSD, and a root directory for a partition are written in these packets in operation  212 . These packets are also collectively referred to as media file system structures. 
     The method next verifies the formatting in operation  214 . The verification is accomplished using the structures written to the media in the preceding operations to ensure the file system is correctly defined on the media so that initialization can proceed. The method advances to decision block  216  in which it is determined whether the verification identified any errors. If there are no errors, the method is done. If errors are identified, the method advances to decision block  218  in which it is determined whether the identified errors can be repaired. 
     If the errors can be repaired, the method advances to operation  230  in which the errors are repaired. Once the errors have been repaired, the method loops back to operation  214  and once again verifies the formatting. If the formatting is then verified and no additional errors are identified, a “no” to decision block  216 , the method is done. If additional errors are discovered, the method repeats the loop of determining whether or not the errors can be repaired, repairing the media, and verifying the format until the formatting is verified and error-free. 
     If, in decision block  218 , the method determines the errors cannot be repaired, the method advances to operation  222  and rejects the media. One example of an error that cannot be repaired is if the AVDP cannot be verified. The UDF specification requires that the AVDP be at a fixed location on the media. If the AVDP cannot be verified in that location, it is not permissible to move it elsewhere, so the media must be discarded. In one embodiment, the program advises the user of the error and prompts the user to eject the media. The method then loops back to operation  202  in which a blank RW media is provided for formatting and the method is repeated. 
       FIG. 5  shows a flow chart diagram  250  illustrating the method operations performed in the general interaction with and background initialization of an RW media in accordance with one embodiment of the invention. The method begins with operation  252  in which a formatted optical media is provided. The formatted media can be a partially or fully initialized media, or it can be a media that has only the formatting as described in flow chart diagram  200  of  FIG. 4 . Once the media is provided in operation  252 , the method advances to decision block  254  and determines whether or not the media is fully initialized. 
     If the media is fully initialized, a “yes” to decision block  254 , the method advances to operation  256  in which a user simply interacts with the media. The interaction can include writing files, reading files, executing programs, generating or extracting data, creating or moving files and directories, deleting files and directories, and the like. 
     If the media is not fully initialized, a “no” to decision block  254 , the method advances to operation  258  in which the initialization of the media is performed as a background process. A user can interact with the media by reading, writing, executing, and the like while the present invention, in the background, initializes the media by writing initialization packets and then verifying the packets until the media space is initialized. 
     As the initialization of the media continues as a background operation, the method advances to operation  260 , in one embodiment, in which a user adds files to the media. The method continues with decision block  262  where it is determined if there is sufficient initialized space on the media for the data that is to be added. If there is enough initialized space, a “yes” to decision block  262 , the method advances to operation  264  in which the data is written directly to the optical media to user data space in initialized packets. The background initialization continues, and the method provides for the user to continue to write files to the media as the method loops back to operation  260  and more files are added to the media. 
     If files are added to the media, and there is not sufficient initialized space, a “no” to decision block  262 , the method advances to operation  266  to use the user data for the initializing image. The method arrives at operation  266  with background initializing continuing, and will therefore first attempt to use the user data as the initialization image in operation  266  to both write the user data to the media and to use the user data to initialize the media. In using user data for initialization, one embodiment of the present invention determines the available space, both initialized and uninitialized space on the media and will write the user data as the initializing image only if sufficient space exists on the media. As in general interaction with media, if there is not sufficient space for selected data, one embodiment of the present invention prompts the user that there is insufficient space and, in one embodiment, prompts the user to select data for which there is sufficient space, or to provide another media for the selected data. 
     Once the user data is used as the initialization image in operation  266 , the method loops back to decision block  254  to determine whether the media is fully initialized. The method then continues with general user interaction, or with general user interaction while proceeding with background initialization as described above. 
       FIG. 6  shows a flow chart diagram  300  illustrating the method operations performed when the RW media is completely initialized in accordance with one embodiment of the invention. The method begins with decision block  302  and determining if there is more media space to initialize. If there is remaining space on the media to be initialized, a “yes” to decision block  302 , the method proceeds through connector “B” to continue the background initialization of operation  258  in flow chart diagram  250  of  FIG. 5 . Once the media has been completely initialized, a “no” to decision block  302  in flow chart diagram  300 , the method advances to operation  304 . 
     In operation  304 , the UDF structures are updated to reflect the fully initialized optical media. The UDF structures updated in operation  304  will identify the entire media space in essentially any implementation. The updating of the UDF structures, however, does not close the session or track, but does update those file system structures that are used by systems to find and identify space on the media for particular files that are available for writing data, and the like. 
     Once the UDF structures are updated, the method advances to operation  306  in which the WCT and the IUVD structures are updated. In one embodiment of the invention, the WCT tracks the number of times to which each packet on the optical media is written. Once all of the media space has been initialized, and therefore verified, the WCT and the IUVD are updated to enable tracking of each packet on the optical media. 
     In one embodiment of the present invention, the session and track of the optical media that has just completed initialization as a background process, is not closed until the command to eject the media is received. In this manner, a user can be prompted of the additional time required to close the session and track, and can acknowledge understanding the additional time required before the media is ejected from the drive. If a user fails to acknowledge the prompt, or if power is interrupted, the UDF and other structures are already updated to identify the entire media space, and so closing of the track and session is not essential for most applications. Further, by issuing a prompt that must be acknowledged, the likelihood of corrupting the media by, for example, securing power to the system during the process of closing the session and track is significantly reduced. If, on the other hand, power is secured or the media is otherwise ejected prior to closing the session and track, the UDF and other structures have been updated to identify the entire media space, and the media would appear similar to media that is only partially initialized, requiring only the closing of the track and session to complete the process. 
     The method proceeds with decision block  308  in which it is determined which action to take, or which process to follow, based on whether or not the command to eject is received. If the command to eject is not received, a “no” to decision block  308 , the method proceeds through connector “C” to simple interaction with the media as discussed in reference to operation  256  of flowchart  250 . If the command to eject the media is received in decision block  308 , the method proceeds through connector “D” to flowchart  350 . 
       FIG. 7  shows a flow chart diagram  350  illustrating the method operations performed when a command to eject the RW media is received in accordance with one embodiment of the invention. During, or just after completion of the initialization process, the media is generally in one of two states when a command to eject the media is received. Either the media has been completely initialized, or the initialization of the media is proceeding. Each state dictates a different branch illustrated in flow chart diagram  350 , and described in detail below. 
     If the initialization of the media is not complete, a “no” to decision block  352 , the method proceeds to operation  354  in which the UDF structures are updated, and then to operation  356  in which the WCT and the IUVD are updated. These operations are essentially identical to the method operations  304  and  306  discussed in reference to  FIG. 6 . The updating of the UDF structures and of the WCT and the IUVD is to reflect the current state of initialization, and when the initialization is not complete, the UDF identifies those packets of media space that have been initialized as available media space. The WCT and IUVD are updated to reflect the space that has been initialized as well as the remaining space on the media that still must be initialized. Once the UDF structures and the WCT and IUVD structures have been updated, the method advances to operation  368  in which the optical media is ejected and the method is done. 
     If the initialization is complete when the command to eject the media is received, a “yes” to decision block  352 , the method advances to operation  360  in which the UDF structures are finalized. As already described in reference to flow chart  300 , when the initialization process completes initialization of the entire media space, the UDF structures and the WCT and IUVD structures are updated to reflect the fully initialized media space. In one embodiment of the invention, the track and session, however, remain open until sufficient time is acknowledged to finalize the structures and close the track and session. In operation  360 , therefore, the updated UDF structures are verified to contain the correct information for the media space, and then finalized in preparation for closing the track and session. Once the UDF structures are finalized, the method advances to operation  362  and performs a similar finalization of the WCT and IUVD. 
     Once the UDF structures and the WCT and IUVD are finalized, the method advances to operation  364  in which the track is closed, and then to operation  366  in which the session is closed. As discussed previously in reference to  FIG. 3 , the closed session has a lead-in block as shown by block  142  of  FIG. 3 , and the closed session has a lead-out block as shown by block  150  of  FIG. 3 . One embodiment of the present invention writes these and other file system blocks to close the session in operation  366 . Once the track and session are closed, the method advances to operation  368  to eject the media, and the method is done. 
       FIG. 8  shows a flow chart diagram  400  illustrating the method operations performed for defect management of RW media over the life of the media in accordance with one embodiment of the invention. The present invention provides for data integrity during both media initialization, and during the life of the media. Flow chart diagram  400  illustrates one embodiment of the general method operations performed for maintaining data integrity. 
     The method begins with operation  402  in which a blank RW media is provided, and then advances to operation  404  in which the blank RW media is formatted. Operations  402  and  404  are essentially the general operations that have been described in detail in reference to  FIG. 4 . 
     The method next performs operation  406  in which the RW media is initialized. The initialization of operation  406  can be the initialization of the entire media space, and it can be a partial initialization. In one embodiment of the invention, as the media is initialized and packets are added to the partition, a WCT entry is initialized for each packet. As soon as the packet is written to the media, the write count entry is set, by way of example, to 0 (zero) flagging the packet for immediate verification. In this manner, packets are written and immediately verified during the initialization of the media. 
     After packets are initialized, the packets are available and are utilized for user data. Additionally, some packets are initialized using user data, and following initialization, also remain available to be utilized for user data. The method operations illustrated in flow chart  400  reflect the user interaction phase of the life of a media in advancing to operation  408  in which user data is written to packets. 
     Once user data is written to packets in operation  408 , the method advances to decision block  410  where the WCT entry for the packet just written (in operation  408 ) is checked to see if the value is set to 0 (zero). If it is not, a “no” to decision block  410 , the method advances to operation  412  in which the WCT entry for the data packet is decreased by 1. The method then loops back to operation  408  and more packet writing using user data. In this manner, the method counts down from a pre-determined number so that after the pre-determined number of times to which the packet is written, the packet is verified. In one embodiment, the pre-determined number is 10. After a packet is written to 10 times, the WCT entry for the data packet will have decreased to zero, and the answer to decision block  410  will be “yes.” 
     Once the WCT entry for a data packet is 0 (zero), the method proceeds to operation  414  in which the packet is verified. An entry of 0 (zero) in the WCT is a flag for packet verification. In one embodiment, the packet is then verified using the user data just written to the packet. The method advances to decision block  416  in which it is determined if the verification is valid. If the verification is valid, a “yes” to decision block  416 , the method advances to operation  420  in which the WCT entry for the data packet is set to 10, and the method then loops back to operation  408  and continued user interaction with the media. If the verification returns an invalid result, a “no” to decision block  416 , the method advances to operation  418  in which the packet is re-written to a spare location. 
     Sparing of data packets is a known process in the initialization and verification of optical media. In one embodiment of the present invention, the sparing process is utilized for the continued verification and maintenance of data integrity during the life of the media. The data packets are continually monitored for data integrity, and in the event of deterioration or defect of the optical media, the data is recovered and preserved by re-writing the data packet to a spare location. The WCT continues to monitor the number of times the packet is accessed during normal user interaction, but instead of pointing to the original location, points to the spare location where the packet has been spared. The original location is marked as bad, and the appropriate UDF structures are updated accordingly. 
     In one embodiment of the invention, the WCT monitors and maintains data integrity over the life of the media. The WCT is an inventive structure that is created during formatting of the media, and continually updated as the media is initialized, and during regular user interaction with the media. The WCT is therefore not a transient structure that is re-set every time the media is ejected, the system is powered down, and the like. As described above, the WCT monitors the number of times each packet on the RW media is written to, prompting verification upon reaching a pre-determined number. In one embodiment, the monitoring is accomplished by decrementing the corresponding value in the WCT. Alternative embodiments include maintaining a tally of writes, or any similar manner of monitoring and tracking the number of times to which each packet on the RW media is written. Data integrity is maintained over the life of the media through constant and consistent monitoring of data packets, periodic verification, and remedial sparing as required. 
     The invention may employ various computer-implemented operations involving data stored in computer systems. These operations are those requiring physical manipulation of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. Further, the manipulations performed are often referred to in terms, such as producing, identifying, determining, or comparing. 
     Any of the operations described herein that form part of the invention are useful machine operations. The invention also relates to a device or an apparatus for performing these operations. The apparatus may be specially constructed for the required purposes, or it may be a general-purpose computer selectively activated or configured by a computer program stored in the computer. In particular, various general-purpose machines may be used with computer programs written in accordance with the teachings herein, or it may be more convenient to construct a more specialized apparatus to perform the required operations. 
     The invention can also be embodied as computer readable code on a computer readable medium. The computer readable medium is any data storage device that can store data, which can thereafter be read by a computer system. Examples of the computer readable medium include read-only memory, random-access memory, CD-ROMs, CD-Rs, CD-RWs, DVD-ROM, DVD-R/RW, DVD-RAM, DVD+R/+RW, magnetic tapes, and other optical data storage devices. The computer readable medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion. 
     Although the foregoing invention has been described in some detail for purposes of clarity of understanding, it will be apparent that certain changes and modifications may be practiced within the scope of the appended claims. Accordingly, the present embodiments are to be considered as illustrative and not restrictive, and the invention is not to be limited to the details given herein, but may be modified within the scope and equivalents of the appended claims.