US20050210071A1 - Methods for efficient host processing of data files selected for recording to an optical disc media - Google Patents

Methods for efficient host processing of data files selected for recording to an optical disc media Download PDF

Info

Publication number
US20050210071A1
US20050210071A1 US11/134,550 US13455005A US2005210071A1 US 20050210071 A1 US20050210071 A1 US 20050210071A1 US 13455005 A US13455005 A US 13455005A US 2005210071 A1 US2005210071 A1 US 2005210071A1
Authority
US
United States
Prior art keywords
data
file
selection
recording
optical media
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/134,550
Inventor
Kenneth James
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sonic Solutions LLC
Original Assignee
Sonic Solutions LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sonic Solutions LLC filed Critical Sonic Solutions LLC
Priority to US11/134,550 priority Critical patent/US20050210071A1/en
Publication of US20050210071A1 publication Critical patent/US20050210071A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/213Read-only discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/215Recordable discs
    • G11B2220/216Rewritable discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/21Disc-shaped record carriers characterised in that the disc is of read-only, rewritable, or recordable type
    • G11B2220/215Recordable discs
    • G11B2220/218Write-once discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2525Magneto-optical [MO] discs
    • G11B2220/2529Mini-discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2545CDs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs
    • G11B2220/2562DVDs [digital versatile discs]; Digital video discs; MMCDs; HDCDs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/004Recording, reproducing or erasing methods; Read, write or erase circuits therefor
    • G11B7/0045Recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B7/00Recording or reproducing by optical means, e.g. recording using a thermal beam of optical radiation by modifying optical properties or the physical structure, reproducing using an optical beam at lower power by sensing optical properties; Record carriers therefor
    • G11B7/007Arrangement of the information on the record carrier, e.g. form of tracks, actual track shape, e.g. wobbled, or cross-section, e.g. v-shaped; Sequential information structures, e.g. sectoring or header formats within a track
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Definitions

  • the present invention relates generally to the recording of data onto optical discs, and more particularly to a method for more efficiently processing data files selected for recording onto an optical disc.
  • Optical disc storage of data offers relatively high capacity data storage (e.g., approximately 640 Megabytes) on a relatively small and inexpensive optical disc.
  • Optical disc recording commonly involves recording (sometimes referred to as “burning”) audio tracks or data files on one or more spiral tracks on an optical disc, which can typically hold between 1 and 99 tracks.
  • the high capacity of optical discs for data storage represents a tremendous advancement over prior art data storage such as the floppy disk which has a capacity of approximately 1.4 Megabytes. Conceivably, the trend will continue and optical discs will offer continually increasing storage capacities on similar sized or even smaller optical discs.
  • the process of burning data to an optical disc involves several steps between the selection of data files to be recorded and the recording of those files on an optical disc. Selected data files are located, examined, and designated in a recording order in the process of the host system, utilizing a CD recording software application, preparing to record data files to the optical disc media. The process is generally illustrated in FIG. 1 .
  • a block diagram 100 illustrates the operations in which data files are processed to be recorded to a CD optical disc.
  • the burn request 104 begins the process and represents a group of one or more data files selected to be written to a CD optical disc. Due to the storage capacity of a CD optical disc, the size of the data files might be quite large, or there may be many smaller files combined to form a large volume of data. However large or small the data files may be, or wherever the data files may be located, the prior art processing of the data in preparation to burn the files to a CD optical disc would next perform two operations simultaneously.
  • the processes of recording order processing 104 and file system creation 106 are performed by the system once the files have been selected for recording.
  • Recording order processing 104 involves the ordering of the selected files in the sequence in which the data files will be burned to the CD optical disc. As is known, the reading and writing of data by a computer occurs within the structure of individual sectors of a certain number of bytes. Files are typically multiple sectors in length, and the recording order processing 104 involves sequencing the files to make the most efficient use of both system resources required for the operation of recording the data files, as well as the available space on the CD on which the data files will be written. During the operation of recording order processing 104 the system generates a list or record of data identifying the data files to be recorded in the order in which they are to be recorded.
  • the operation of file system creation 106 is being accomplished.
  • the system maps out an exact location and structure of the data selected for recording.
  • the file system includes the path tables and directory records mapping out each of the data files selected for recording.
  • the list translation layer 108 generates yet another record of data for the selected data files.
  • the data records generated by the recording order processing 104 and the file system creation 106 are combined and then unpacked to be sent in individual structures (e.g., file name, directory, path, root, etc.) to the CD recording engine 110 .
  • the data records for each data file are assembled in the sequence determined by the recording order processing 104 , unpacked into individual structures, and then the individual structures sent to the CD recording engine 110 .
  • the individual structures are then re-assembled into data records for each file that will be recorded on a CD optical disc.
  • the data records are assembled in the writing order and with the necessary data structures to enable the CD recording engine to locate, open, and read the selected files and then write the data files and, by using the optical CD recording circuitry 112 , bum the files to the CD optical disc 114 .
  • the prior art process 100 generates multiple lists of data records for each data file selected for burning to a CD optical disc.
  • the system dedicates and uses system resources (e.g., memory) in the evaluation of the data records and the generation of the lists.
  • system resources e.g., memory
  • the drain on available system resources is relatively light, but with the ever-increasing capacity of optical discs, and the ever-increasing demand for more efficient and economical utilization of available storage capacity, the conservation of system resources and more efficient processing of data files in preparation for burning to an optical disc is of paramount concern.
  • the present invention fills these needs by providing methods for host processing of data files that have been selected for recording on optical disc media.
  • the invention provides methods for processing of files that minimizes the generation of lists that catalog location and attribute information about each data file before writing to the optical disc media. It should be appreciated that 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.
  • a method for processing data for recording to an optical media includes receiving a selection of data to be recorded to the optical media.
  • a record data structure for each file in the selection of data is created.
  • the record data structure is comprised of a plurality of data fields defining a record of identifying information for each file in the selection of data.
  • the method provides for generating a set of pointers to sequence each record data structure in a writing order.
  • the set of pointers defines a dynamically sequenced list of record data structures.
  • each of the record data structures is sequentially processed according to the dynamically sequenced list to produce an ordering data structure corresponding to each file in the selection of data, and defining a record of pointers to a source location of each file in the selection of data from where each file is read to be recorded to the optical media.
  • the method then provides for processing the ordering data structure corresponding to each file in the selection of data to write the selection of data onto the optical media in the writing order.
  • a method for recording data to optical media calls for receiving a request to record a selection of data to optical media, and for processing the selection of data through a file system database block.
  • the file system database block includes the operations of generating a record data structure for each file in the selection of data, sequencing each file in the selection of data according to a writing order, and generating an ordering data structure for each file in the selection of data.
  • the sequencing of each file in the selection of data is accomplished by generating pointers associated with each record data structure.
  • the generating of the ordering data structures is accomplished in the writing order.
  • the method provides for providing the ordering data structure for each file in the selection of data to an optical media recording engine.
  • the ordering data structures are provided in the writing order, and then the selection of data is recorded to optical media.
  • a computer readable media having program instructions for recording data to optical media.
  • the computer readable media includes program instructions for receiving a request to record a selection of data to optical media, and program instructions for processing the selection of data through a file system database block.
  • the file system database block includes the operations of generating a record data structure for each file in the selection of data, for sequencing each file in the selection of data according to a writing order. The sequencing is accomplished by generating pointers associated with each record data structure.
  • the file system database block further includes the operations of generating an ordering data structure for each file in the selection of data. The generating of the ordering data structures is accomplished in the writing order.
  • the computer readable media further provides program instructions for providing the ordering data structure for each file in the selection of data to an optical media recording engine. The providing of the ordering data structures is in the writing order.
  • the computer readable media includes program instructions for recording the selection of data to optical media.
  • One benefit and advantage of the invention is more efficient processing of data files selected to be recorded to an optical disc media.
  • the more efficient allocation and use of system resources in the processing of data files for recording to optical disc media prevents incomplete data transfer, buffer under-run, or system crash.
  • Another benefit of the present invention is that with more efficient processing of data files, the operation proceeds faster and more reliably. This allows a user to select and record large amounts of data to record to an optical disc media and realize the benefits of the storage capacity of optical disc media without system overload or failure.
  • FIG. 1 is a block diagram illustrating the prior art operations in which data files are processed to be recorded to a CD optical disc.
  • FIG. 2A illustrates a block diagram of the primary operations in preparing data files to be written to an optical disc in accordance with one embodiment of the present invention.
  • FIG. 2B illustrates a record data structure in accordance with one embodiment of the present invention.
  • FIG. 2C shows the use of pointers in the dynamic file ordering of record data structures in accordance with one embodiment of the present invention.
  • FIG. 3 illustrates an ordering data structure in accordance with one embodiment of the present invention.
  • FIG. 4 shows a flowchart diagram illustrating the method operations performed in which data is recorded on an optical disc in accordance with one embodiment of the invention.
  • FIG. 5 shows a flowchart diagram illustrating the method operations performed in which data is recorded on an optical disc in accordance with another embodiment of the invention.
  • An invention is provided for the efficient processing of data that is selected to be recorded onto an optical disc media.
  • 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.
  • FIG. 2A illustrates a block diagram 200 of the primary operations in preparing data files to be written to an optical disc in accordance with one embodiment of the present invention.
  • the method is applicable to writing data files to any type of optical media (e.g., DVD discs, CD-R discs, CD-RW discs, mini-discs, etc.), and is illustrated by way of example using the common compact disc (CD).
  • CD common compact disc
  • the selection of data files to be recorded to CD initiates a bum request 102 .
  • the selection of files can be accomplished in any number of ways including, for example, operator input into the system through the graphical user interface (e.g., dragging a set of files to a CD device icon on a computer monitor), or executing a CD read/write software application and in response to a scripted set of queries, the operator selecting a group of one or more data files to be written to a CD optical disc.
  • the bum request 102 is the selection and identification of a group of one or more data files to be copied from their source and written to a CD optical disc.
  • the data files are examined and processed in order to prepare for the selected data files to be recorded on to a CD optical disc.
  • Several discrete operations occur in the processing of the data files as will be discussed in greater detail below. It should be understood that some of the operations occur simultaneously with others, in various combinations, and some embodiments either eliminate or supplement the examples that are provided below.
  • the file system database block 202 encompasses those various operations that are performed to prepare selected data to be burned to a CD.
  • the file system database block 202 is a collection of sub-routines or other computer code that functions to manipulate the selected data files, performing the functions listed in the exemplary embodiments below in the execution of the software application code that records data to a CD optical disc.
  • the processing includes examining each of the data files selected for recording to CD and generating a record data structure for each file.
  • a record data structure is a record of identifying information about one of the data files selected to be recorded to a CD that will enable the writing of the source data file to a destination CD.
  • Typical data fields include, as illustrated, the file parent of the data file. This information is used to map the file path to the data file in its destination location in order to locate the file on the destination CD.
  • the volume label index is additional location identification information naming the source volume of the data file.
  • the file size identifies the exact size of the file in bytes (or other suitable units of measure) to be used in calculating and identifying the destination location of the data and in making the determination which files will be sent to system cache memory during the writing operation. Files that are sent to system cache memory are further identified by the location in the system cache memory which holds the data file as described in greater detail below, and the file size is used to calculate that location.
  • the logical block number identifies the destination location by the logical block where the data file will be written.
  • the file time is the most recent modification time of the data file. This provides both the time and the date of the file, and can be used, for example, in both cataloging as well as differentiating between two identically named files.
  • the file source path is the complete path to the data file in order to locate and read the file during the recording operation, and the file attributes include such information as whether the file is a system file, a read-only file, if it is a hidden file, and whether it is an archive file.
  • Data mode is another field in the record data structure generated by the file system database and illustrated in FIG. 2B .
  • Possible data modes include mode 1 or mode 2 , and if the data file is mode 2 , whether it is mode 2 form 1 or mode 2 form 2 .
  • Data mode provides necessary identifying information about a data file and how it will be cached in system cache memory or written to the destination optical disc. In particular, data mode determines the number of bytes of data and other information that are contained in a sector.
  • Other fields that may be included in the record data structure are whether or not the source data file is located on removable media such as another CD, a data tape, a floppy disk, a disk cartridge (e.g., a JazTM disk, a ZipTM disk, etc.) and the like, whether the data file contains an embedded subheader, and whether or not the selected data file has been written to the destination CD in an earlier session.
  • removable media such as another CD, a data tape, a floppy disk, a disk cartridge (e.g., a JazTM disk, a ZipTM disk, etc.) and the like, whether the data file contains an embedded subheader, and whether or not the selected data file has been written to the destination CD in an earlier session.
  • FIG. 2B illustrates one embodiment of a typical record data structure. Additional data fields may be supplemented, and some illustrated fields may be deleted according to the configuration of the host system and the CD writing software application.
  • the record data structure provides a list of a data file's location and identifying information, and a record data structure is created for each data file selected to be recorded so that the files selected to be written to an optical disc can be located, arranged, and successfully copied from one or more source locations to a destination CD.
  • the generating of the record data structures is one of several processes that may occur in the file system database block 202 .
  • the processing of the data files selected for burning to a CD includes determining which of the selected files will be sent to the system cache memory in the process of writing to a CD.
  • the successful writing of data to a CD requires an uninterrupted flow of data to the optical CD recording circuitry 112 during the recording operation.
  • System cache is filled with data files identified during the processing that occurs in the file system database block 202 , and then sent to the optical CD recording circuitry 112 in a steady stream of data during the actual burn.
  • the processing includes the sequencing of the data files in the order in which they will be written to a CD optical disc.
  • data files are of varying lengths and can be from a single sector to several sectors in length. Additionally, some data files are required to remain in a fixed location relative to other data files, for example, when the data files are part of an executable software application. Sequencing of files maximizes the efficient use of available space and configuration of the destination optical disc, and maintains any required structure the data files may need to execute a desired function or task.
  • One embodiment of the present invention accomplishes the ordering of data files by using pointers to list the data files in an identified sequence.
  • the use of pointers significantly reduces the consumption of system resources in the process of sequencing the record data structures.
  • the method of sequencing the selected data files for writing to a CD in prior art involved the complete re-generation of the record data structure or similar list of the data file location and identification information.
  • the record data structure FIG. 2B
  • the record data structures are compiled in the order in which the files were examined.
  • the sequencing, or dynamic file ordering, of the record data structures identifies the order in which the source data files will be written to the destination optical disc.
  • the dynamic file ordering is accomplished through the use of pointers to the record data structures identifying the order in which their associated data files will be written.
  • the file system database block performs another task in yet another embodiment of the present invention.
  • the data files selected to be written to CD need to be verified to ensure that they exist in the location reflected in the record data structure, that they can be opened, and that they are of the size that is reflected in the record data structure.
  • the general integrity of the selected data files is verified in preparation to burning the data files to CD.
  • the record data structures are processed to generate an ordering data structure that will be passed on to the CD recording engine 204 .
  • the problems with the prior art was with the multiple lists of practically identical information that were generated. Not only were multiple lists generated, but a combined list was unpacked and sent a structure at a time to the CD recording engine where it was then re-assembled before the source data files could be identified, located, and written to CD. This puts a significant burden on system memory resources, and can result in incomplete data transfer, buffer under-run, or system crash.
  • the present invention substantially reduces the consumption of system memory resources by more efficient utilization of a single list or compilation of record data structures, and also by use of pointers to selected data files.
  • FIG. 3 illustrates a typical ordering data structure in accordance with one embodiment of the present invention.
  • the ordering data structure is a record of pointers to a source data file. Once the source data files have been examined, the record data structures generated, and the dynamic ordering of the data files completed, the record data structures are processed to generate an ordering data structure for each data file. The processing is accomplished in the order in which the associated data files will be written to CD.
  • the ordering data structure is a pointer to a source data file, and the ordering data structure is sent to the CD Recording Engine ( FIG. 2A, 204 ) in the writing order.
  • the ordering data structure illustrated in FIG. 3 shows four exemplary data fields.
  • the first field, the file source path is the pointer to the source location of the data file. Following the path as listed leads to the data file at its source.
  • the remaining three fields in the ordering data structure are used to locate those files that were cached in system cache memory. For those files, the source path can only point to system cache memory.
  • the file start offset and file end offset identify the exact location in system cache memory of the data file, and the file pad to size is the number of bytes (or other suitable unit of measure) that must be added to a file to complete a sector of storage space. As is known, a file is generally written from the beginning of a sector or logical block.
  • Files are not necessarily the same length as a sector or logical block, and in those circumstances, empty bytes or pad to size are added to a file to complete a sector or logical block.
  • the file pad to size field of the ordering data record identifies that filler space so that the exact location of data can be identified.
  • the ordering data structures are passed from the file system database block 202 to the CD recording engine 204 in the order in which the associated data files will be written to the optical disc.
  • the CD recording engine 204 then follows the pointers of the ordering data structures and begins reading the data files into the optical CD recording circuitry 112 . It is the CD recording circuitry 112 that accomplishes the actual writing or burning of the data files to the optical disc 114 .
  • FIG. 4 shows a flowchart diagram 400 illustrating the method operations performed in which data is recorded on an optical disc in accordance with one embodiment of the invention.
  • the method is applicable to the recording of files to any optical media, and the CD is used to illustrate by way of example in the following description.
  • the method begins with operation 402 in which a request is received to write a set of files to a CD media.
  • a request might occur, for example, when an operator selects a number of data files desired to be recorded on a CD using a graphical user interface, and drags those files to an icon of a CD player/recorder on the computer desktop.
  • an operator might launch a CD recording program, and in response to a set of queries from the program, select a number of data files to be recorded to a CD optical disc.
  • the method proceeds to operation 404 in which the files that have been selected for recording are examined and the record data structures for the set of files are generated.
  • the examination of the files includes tracing the complete source path to the desired data file.
  • the files may be located on a local hard drive, on a network server, on a remote server accessed through the Internet, or in any location accessible by whatever hardware or physical cabling to the recording system.
  • the selected data files are examined to determine their size, when they were created or last modified, the attributes of the selected files, in what data mode they exist, whether or not the selected data files have been written to the CD in a previous session, and other such information as may be required to locate, access, read, write, and identify the selected data records.
  • the record data structures contain the necessary location and attribute information associated with the data to enable the system to designate the order in which the files will be recorded, to designate which files will be cached to ensure a steady stream of data during recording, and to provide the necessary location information to the CD recording engine.
  • a record data structure is generated for each file selected for recording onto a CD optical disc.
  • the method next advances to operation 406 where pointers are generated identifying each record data structure in the order in which the corresponding data file will be written to the CD.
  • the files can be ordered to maximize the most efficient use of space and system resources in the recording of the data to CD.
  • the dynamic ordering of the record data structures by pointers obviates the need for additional lists of data files and their source paths which consume considerable system memory resources.
  • the pointers demand minimal resources, using only about 4 bytes of memory each in a 32-bit operating system. As is known in the operation of burning a CD, a constant flow of data must be maintained. By minimizing the demands on system memory resources caused by multiple generations of lists and tables, using pointers to define the writing order frees system resources to be used where they are most needed.
  • the method then goes to operation 408 where one of the record data structures is processed to generate an ordering data structure.
  • the processing is accomplished on the record data structure in the order in which the pointers were assigned in operation 406 .
  • the record data structure to be processed is whichever record data structure is next in order according to the pointer assigned.
  • the processing includes calculating a file start offset and file end offset to a particular location in the system cache memory.
  • the processing also includes calculating a pad to add to a file to complete a sector. Since files are written from the beginning of a logical block, if a file should end somewhere in the middle of a logical block, the pad calculated is how much to add to that file so that the next file will be written starting at the beginning of the very next logical block.
  • An ordering data structure is a set of pointers to the source data file with additional information providing the recording engine with the exact size and location of the source data file.
  • the additional information includes the location of a source data file that has been cached so that the recording engine will access the data file from system cache instead of from the original data source.
  • the additional information includes a pad to size value so that the recording engine knows how many bytes have been added to the data source file to complete a sector. The additional information amplifies the pointers, but the ordering data structures remain a set of pointers. Unlike the record data structures which are lists as described above, the ordering data structures are pointers requiring far fewer system memory resources to store, transfer and process.
  • the method advances to operation 410 where the ordering data structure is passed to a recording engine in the writing order.
  • the ordering data structure in one embodiment of the present invention, provides a set of pointers directly to the data file to be written.
  • the ordering data structure is passed in the order in which the data files will be written to the CD, and requires little or no additional processing by the recording engine.
  • decision block 412 the method calls for making a determination as to whether or not any record data structures remain to be processed. If there are record data structures to be processed, the next record data structure in writing order is processed as the method loops back to operation 408 . If no record data structures remain, the method advances to operation 414 .
  • the first ordering data structure in writing order is accessed by the recording engine and, following the pointers and location information contained therein, the source file of data is manipulated to be written to the CD.
  • the source file is located on a host system hard drive.
  • the source file is located on a remote server.
  • the source file is one of group of one or more files that have been cached for steady stream writing of data. Wherever the source file may be located, the recording engine follows the pointers and other location information in the ordering data structure to locate and manipulate the source file for writing to the CD.
  • the method loops through operation 414 until each of the ordering data structures has been accessed and the associated data files written to the CD.
  • the response to decision block 416 is no, all of the ordering structures have been accessed, resulting in all of the selected data files being written to a CD, and the method is done.
  • FIG. 5 shows a flowchart diagram 500 illustrating the method operations performed in which data is recorded on an optical disc in accordance with another embodiment of the invention.
  • the method is illustrated using the example of burning a CD, but is applicable to any optical media.
  • the method begins with operation 502 in the same manner as the method described in reference to FIG. 4 with a request to write a set of files to a CD media.
  • the request can be in the form of a selected group of data files being dragged to a CD player/recorder icon on a computer desktop, or by selecting a group of one or more data files in response to queries from a CD recording software application.
  • the method advances to operation 504 where the selected data files are examined by the recording program to create the record data structures as described above and illustrated in FIG. 2B .
  • a record data structure is created for each file selected to be recorded onto the CD optical disc, and provides the location pointers to the source files, file size, data mode, the last time and date the file was updated, and other file attribute information necessary for locating the source file and allocating necessary space and method of recording to write the selected data files onto a CD.
  • the method proceeds to operation 506 where pointers are generated to arrange the record data structures in an order in which the associated data files will be recorded onto the CD.
  • the order is the writing order, and as described in reference to FIG. 4 , pointers are used in the dynamic ordering of the record data structures associated with each of the data files selected to be written to a CD.
  • pointers are used in the dynamic ordering of the record data structures associated with each of the data files selected to be written to a CD.
  • the use of pointers obviates the generation of yet another list and conserves system resources.
  • those files that will be cached are identified and assigned a specific location in the system cache.
  • the operation of burning files to a CD requires a constant stream of data while using a great deal of system resources.
  • the caching of data files maximizes the efficient use of available memory and resources, and ensures the steady flow of data to the CD writing circuitry. Further, the file integrity of each of the data files identified in a record data structure is verified to ensure that each file can be opened and can be read
  • the method then advances to operation 508 where the record data structures are processed to generate ordering data structures.
  • the record data structures are processed in the writing order that was generated in operation 506 .
  • the ordering data structure as described above and illustrated in FIG. 3 , is a set of pointers to the data files.
  • the ordering data structure points the recording engine to the source data file from where it will be read in the process of writing the file. Thus, if the file has been cached, the ordering data structure points to the exact location in the system cache where the file is located.
  • the method proceeds to operation 510 and the ordering data structures are passed to the recording engine in the writing order.
  • the method conserves valuable system memory resources.
  • the recording engine need not generate or compile additional lists or tables as was noted in prior art, and using pointers instead of the entire structure of the record data structure minimizes the amount of system resources required to communicate the necessary information to the recording engine.
  • the method proceeds to accessing the ordering data structures which have been provided to the recording engine in writing order.
  • the associated data files are burned to the CD in the writing order, and the method is done.
  • One benefit and advantage of the invention is more efficient and reliable transfer of data files to a CD optical disc. Another benefit is faster turn around time for burning large amounts of data to a CD optical disc by efficient processing as described above.
  • 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.
  • 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.
  • 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, 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.

Abstract

Methods for the processing of data files to be recorded on an optical disc are provided. A selection of data to be recorded to the optical media is received and a record data structure for each file in the selection of data is created. A set of pointers is generated to sequence each record data structure in a writing order, defining a dynamically sequenced list of record data structures. Each of the record data structures is processed to produce an ordering data structure corresponding to each file in the selection of data. The ordering data structure corresponding to each file in the selection of data is processed to write the selection of data onto the optical media in the writing order.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a Continuation Application of U.S. patent application Ser. No. 09/539,482, filed Mar. 30, 2000, and entitled “METHODS FOR EFFICIENT HOST PROCESSING OF DATA FILES SELECTED FOR RECORDING TO AN OPTICAL DISC MEDIA.” The parent application is hereby incorporated by reference.
  • This application is related to U.S. patent application Ser. No. 09/539,481 (Attorney Docket No. ADAPP121, now U.S. Pat. No. 6,574,642), filed on the same day as the instant application and entitled “METHODS FOR PROCESSING DATA TRANSFERRED TO SYSTEM MEMORY IN PREPARATION FOR RECORDING TO AN OPTICAL DISC.” This cross referenced application is hereby incorporated by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates generally to the recording of data onto optical discs, and more particularly to a method for more efficiently processing data files selected for recording onto an optical disc.
  • 2. Description of the Related Art
  • Optical disc storage of data offers relatively high capacity data storage (e.g., approximately 640 Megabytes) on a relatively small and inexpensive optical disc. Optical disc recording commonly involves recording (sometimes referred to as “burning”) audio tracks or data files on one or more spiral tracks on an optical disc, which can typically hold between 1 and 99 tracks. The high capacity of optical discs for data storage represents a tremendous advancement over prior art data storage such as the floppy disk which has a capacity of approximately 1.4 Megabytes. Conceivably, the trend will continue and optical discs will offer continually increasing storage capacities on similar sized or even smaller optical discs.
  • The process of burning data to an optical disc involves several steps between the selection of data files to be recorded and the recording of those files on an optical disc. Selected data files are located, examined, and designated in a recording order in the process of the host system, utilizing a CD recording software application, preparing to record data files to the optical disc media. The process is generally illustrated in FIG. 1.
  • In FIG. 1, a block diagram 100 illustrates the operations in which data files are processed to be recorded to a CD optical disc. The burn request 104 begins the process and represents a group of one or more data files selected to be written to a CD optical disc. Due to the storage capacity of a CD optical disc, the size of the data files might be quite large, or there may be many smaller files combined to form a large volume of data. However large or small the data files may be, or wherever the data files may be located, the prior art processing of the data in preparation to burn the files to a CD optical disc would next perform two operations simultaneously. The processes of recording order processing 104 and file system creation 106 are performed by the system once the files have been selected for recording. Recording order processing 104 involves the ordering of the selected files in the sequence in which the data files will be burned to the CD optical disc. As is known, the reading and writing of data by a computer occurs within the structure of individual sectors of a certain number of bytes. Files are typically multiple sectors in length, and the recording order processing 104 involves sequencing the files to make the most efficient use of both system resources required for the operation of recording the data files, as well as the available space on the CD on which the data files will be written. During the operation of recording order processing 104 the system generates a list or record of data identifying the data files to be recorded in the order in which they are to be recorded.
  • At the same time as the recording order processing 104 is occurring, the operation of file system creation 106 is being accomplished. In order to locate, examine, and process the data files for recording, the system maps out an exact location and structure of the data selected for recording. The file system includes the path tables and directory records mapping out each of the data files selected for recording.
  • The list translation layer 108 generates yet another record of data for the selected data files. In the list translation layer 108, the data records generated by the recording order processing 104 and the file system creation 106 are combined and then unpacked to be sent in individual structures (e.g., file name, directory, path, root, etc.) to the CD recording engine 110. The data records for each data file are assembled in the sequence determined by the recording order processing 104, unpacked into individual structures, and then the individual structures sent to the CD recording engine 110. In the CD recording engine 110, the individual structures are then re-assembled into data records for each file that will be recorded on a CD optical disc. The data records are assembled in the writing order and with the necessary data structures to enable the CD recording engine to locate, open, and read the selected files and then write the data files and, by using the optical CD recording circuitry 112, bum the files to the CD optical disc 114.
  • It should be appreciated that the prior art process 100 generates multiple lists of data records for each data file selected for burning to a CD optical disc. As is known, each time the list or a variation is generated, the system dedicates and uses system resources (e.g., memory) in the evaluation of the data records and the generation of the lists. In the example of transferring data to a floppy disk with an approximately 1.4 Megabyte capacity, the drain on available system resources is relatively light, but with the ever-increasing capacity of optical discs, and the ever-increasing demand for more efficient and economical utilization of available storage capacity, the conservation of system resources and more efficient processing of data files in preparation for burning to an optical disc is of paramount concern. By way of example, thousands of data files could be selected for burning to a single CD optical disc with a capacity for 640 Megabytes of data. In that case, the prior art would generate no less than four different lists of information about the selected data files, with some of the lists having identical information contained therein. Because the system resources could rapidly become overloaded, some of the data might be lost, the writing process could fail altogether, and the system performance itself could degrade or the system could even crash.
  • In view of the foregoing, there is a need for a method of processing data files in preparation for recording to an optical disc that minimizes drain on system resources while maximizing efficient and economical use of the storage capacity of an optical disc.
  • SUMMARY OF THE INVENTION
  • Broadly speaking, the present invention fills these needs by providing methods for host processing of data files that have been selected for recording on optical disc media. The invention provides methods for processing of files that minimizes the generation of lists that catalog location and attribute information about each data file before writing to the optical disc media. It should be appreciated that 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 method for processing data for recording to an optical media is provided. The method includes receiving a selection of data to be recorded to the optical media. A record data structure for each file in the selection of data is created. The record data structure is comprised of a plurality of data fields defining a record of identifying information for each file in the selection of data. The method provides for generating a set of pointers to sequence each record data structure in a writing order. The set of pointers defines a dynamically sequenced list of record data structures. Next, each of the record data structures is sequentially processed according to the dynamically sequenced list to produce an ordering data structure corresponding to each file in the selection of data, and defining a record of pointers to a source location of each file in the selection of data from where each file is read to be recorded to the optical media. The method then provides for processing the ordering data structure corresponding to each file in the selection of data to write the selection of data onto the optical media in the writing order.
  • In another embodiment, a method for recording data to optical media is provided. The method calls for receiving a request to record a selection of data to optical media, and for processing the selection of data through a file system database block. The file system database block includes the operations of generating a record data structure for each file in the selection of data, sequencing each file in the selection of data according to a writing order, and generating an ordering data structure for each file in the selection of data. The sequencing of each file in the selection of data is accomplished by generating pointers associated with each record data structure. The generating of the ordering data structures is accomplished in the writing order. Next, the method provides for providing the ordering data structure for each file in the selection of data to an optical media recording engine. The ordering data structures are provided in the writing order, and then the selection of data is recorded to optical media.
  • In still a further embodiment, a computer readable media having program instructions for recording data to optical media is provided. The computer readable media includes program instructions for receiving a request to record a selection of data to optical media, and program instructions for processing the selection of data through a file system database block. The file system database block includes the operations of generating a record data structure for each file in the selection of data, for sequencing each file in the selection of data according to a writing order. The sequencing is accomplished by generating pointers associated with each record data structure. The file system database block further includes the operations of generating an ordering data structure for each file in the selection of data. The generating of the ordering data structures is accomplished in the writing order. The computer readable media further provides program instructions for providing the ordering data structure for each file in the selection of data to an optical media recording engine. The providing of the ordering data structures is in the writing order. Finally, the computer readable media includes program instructions for recording the selection of data to optical media.
  • One benefit and advantage of the invention is more efficient processing of data files selected to be recorded to an optical disc media. The more efficient allocation and use of system resources in the processing of data files for recording to optical disc media prevents incomplete data transfer, buffer under-run, or system crash. Another benefit of the present invention is that with more efficient processing of data files, the operation proceeds faster and more reliably. This allows a user to select and record large amounts of data to record to an optical disc media and realize the benefits of the storage capacity of optical disc media without system overload or failure.
  • 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, and like reference numerals designate like structural elements.
  • FIG. 1 is a block diagram illustrating the prior art operations in which data files are processed to be recorded to a CD optical disc.
  • FIG. 2A illustrates a block diagram of the primary operations in preparing data files to be written to an optical disc in accordance with one embodiment of the present invention.
  • FIG. 2B illustrates a record data structure in accordance with one embodiment of the present invention.
  • FIG. 2C shows the use of pointers in the dynamic file ordering of record data structures in accordance with one embodiment of the present invention.
  • FIG. 3 illustrates an ordering data structure in accordance with one embodiment of the present invention.
  • FIG. 4 shows a flowchart diagram illustrating the method operations performed in which data is recorded on an optical disc in accordance with one embodiment of the invention.
  • FIG. 5 shows a flowchart diagram illustrating the method operations performed in which data is recorded on an optical disc in accordance with another embodiment of the invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • An invention is provided for the efficient processing of data that is selected to be recorded onto an optical disc media. 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.
  • FIG. 2A illustrates a block diagram 200 of the primary operations in preparing data files to be written to an optical disc in accordance with one embodiment of the present invention. The method is applicable to writing data files to any type of optical media (e.g., DVD discs, CD-R discs, CD-RW discs, mini-discs, etc.), and is illustrated by way of example using the common compact disc (CD). The selection of data files to be recorded to CD initiates a bum request 102. The selection of files can be accomplished in any number of ways including, for example, operator input into the system through the graphical user interface (e.g., dragging a set of files to a CD device icon on a computer monitor), or executing a CD read/write software application and in response to a scripted set of queries, the operator selecting a group of one or more data files to be written to a CD optical disc. The bum request 102 is the selection and identification of a group of one or more data files to be copied from their source and written to a CD optical disc.
  • In the file system database block 202, the data files are examined and processed in order to prepare for the selected data files to be recorded on to a CD optical disc. Several discrete operations occur in the processing of the data files as will be discussed in greater detail below. It should be understood that some of the operations occur simultaneously with others, in various combinations, and some embodiments either eliminate or supplement the examples that are provided below. The file system database block 202 encompasses those various operations that are performed to prepare selected data to be burned to a CD. In one embodiment, the file system database block 202 is a collection of sub-routines or other computer code that functions to manipulate the selected data files, performing the functions listed in the exemplary embodiments below in the execution of the software application code that records data to a CD optical disc.
  • In one embodiment, the processing includes examining each of the data files selected for recording to CD and generating a record data structure for each file. A record data structure is a record of identifying information about one of the data files selected to be recorded to a CD that will enable the writing of the source data file to a destination CD.
  • One embodiment of a record data structure is illustrated in FIG. 2B. Typical data fields include, as illustrated, the file parent of the data file. This information is used to map the file path to the data file in its destination location in order to locate the file on the destination CD. The volume label index is additional location identification information naming the source volume of the data file. The file size identifies the exact size of the file in bytes (or other suitable units of measure) to be used in calculating and identifying the destination location of the data and in making the determination which files will be sent to system cache memory during the writing operation. Files that are sent to system cache memory are further identified by the location in the system cache memory which holds the data file as described in greater detail below, and the file size is used to calculate that location. The logical block number identifies the destination location by the logical block where the data file will be written. The file time is the most recent modification time of the data file. This provides both the time and the date of the file, and can be used, for example, in both cataloging as well as differentiating between two identically named files. The file source path is the complete path to the data file in order to locate and read the file during the recording operation, and the file attributes include such information as whether the file is a system file, a read-only file, if it is a hidden file, and whether it is an archive file.
  • Data mode is another field in the record data structure generated by the file system database and illustrated in FIG. 2B. Possible data modes include mode 1 or mode 2, and if the data file is mode 2, whether it is mode 2 form 1 or mode 2 form 2. Data mode provides necessary identifying information about a data file and how it will be cached in system cache memory or written to the destination optical disc. In particular, data mode determines the number of bytes of data and other information that are contained in a sector. Other fields that may be included in the record data structure are whether or not the source data file is located on removable media such as another CD, a data tape, a floppy disk, a disk cartridge (e.g., a Jaz™ disk, a Zip™ disk, etc.) and the like, whether the data file contains an embedded subheader, and whether or not the selected data file has been written to the destination CD in an earlier session.
  • FIG. 2B illustrates one embodiment of a typical record data structure. Additional data fields may be supplemented, and some illustrated fields may be deleted according to the configuration of the host system and the CD writing software application. The record data structure provides a list of a data file's location and identifying information, and a record data structure is created for each data file selected to be recorded so that the files selected to be written to an optical disc can be located, arranged, and successfully copied from one or more source locations to a destination CD.
  • Returning to FIG. 2A, the generating of the record data structures is one of several processes that may occur in the file system database block 202. In another embodiment, the processing of the data files selected for burning to a CD includes determining which of the selected files will be sent to the system cache memory in the process of writing to a CD. As is known, the successful writing of data to a CD requires an uninterrupted flow of data to the optical CD recording circuitry 112 during the recording operation. System cache is filled with data files identified during the processing that occurs in the file system database block 202, and then sent to the optical CD recording circuitry 112 in a steady stream of data during the actual burn.
  • In still another embodiment, the processing includes the sequencing of the data files in the order in which they will be written to a CD optical disc. As is known, data files are of varying lengths and can be from a single sector to several sectors in length. Additionally, some data files are required to remain in a fixed location relative to other data files, for example, when the data files are part of an executable software application. Sequencing of files maximizes the efficient use of available space and configuration of the destination optical disc, and maintains any required structure the data files may need to execute a desired function or task.
  • One embodiment of the present invention accomplishes the ordering of data files by using pointers to list the data files in an identified sequence. The use of pointers significantly reduces the consumption of system resources in the process of sequencing the record data structures. Typically, the method of sequencing the selected data files for writing to a CD in prior art, involved the complete re-generation of the record data structure or similar list of the data file location and identification information. By using pointers, the record data structure (FIG. 2B) is generated only once for each data file selected for recording to CD. As can be seen in FIG. 2C, the record data structures are compiled in the order in which the files were examined. The sequencing, or dynamic file ordering, of the record data structures identifies the order in which the source data files will be written to the destination optical disc. The dynamic file ordering is accomplished through the use of pointers to the record data structures identifying the order in which their associated data files will be written.
  • Returning again to FIG. 2A, the file system database block performs another task in yet another embodiment of the present invention. The data files selected to be written to CD need to be verified to ensure that they exist in the location reflected in the record data structure, that they can be opened, and that they are of the size that is reflected in the record data structure. In the verification of the data files, the general integrity of the selected data files is verified in preparation to burning the data files to CD.
  • Before the process of preparing and burning data files to an optical disc proceeds to the CD Recording Engine 204, the record data structures are processed to generate an ordering data structure that will be passed on to the CD recording engine 204. As discussed above, one of the problems with the prior art was with the multiple lists of practically identical information that were generated. Not only were multiple lists generated, but a combined list was unpacked and sent a structure at a time to the CD recording engine where it was then re-assembled before the source data files could be identified, located, and written to CD. This puts a significant burden on system memory resources, and can result in incomplete data transfer, buffer under-run, or system crash. As the storage capacity of optical discs increases, the number of files to be processed to be written to a CD in a single session also increases, and the prior art management of file processing will not be possible. The present invention substantially reduces the consumption of system memory resources by more efficient utilization of a single list or compilation of record data structures, and also by use of pointers to selected data files.
  • FIG. 3 illustrates a typical ordering data structure in accordance with one embodiment of the present invention. Like the record data structures, one ordering data structure is generated for each data file selected to be written to a CD. The ordering data structure is a record of pointers to a source data file. Once the source data files have been examined, the record data structures generated, and the dynamic ordering of the data files completed, the record data structures are processed to generate an ordering data structure for each data file. The processing is accomplished in the order in which the associated data files will be written to CD. The ordering data structure is a pointer to a source data file, and the ordering data structure is sent to the CD Recording Engine (FIG. 2A, 204) in the writing order.
  • The ordering data structure illustrated in FIG. 3 shows four exemplary data fields. The first field, the file source path, is the pointer to the source location of the data file. Following the path as listed leads to the data file at its source. The remaining three fields in the ordering data structure are used to locate those files that were cached in system cache memory. For those files, the source path can only point to system cache memory. The file start offset and file end offset identify the exact location in system cache memory of the data file, and the file pad to size is the number of bytes (or other suitable unit of measure) that must be added to a file to complete a sector of storage space. As is known, a file is generally written from the beginning of a sector or logical block. Files, however, are not necessarily the same length as a sector or logical block, and in those circumstances, empty bytes or pad to size are added to a file to complete a sector or logical block. The file pad to size field of the ordering data record identifies that filler space so that the exact location of data can be identified.
  • Returning once again to FIG. 2A, the ordering data structures are passed from the file system database block 202 to the CD recording engine 204 in the order in which the associated data files will be written to the optical disc. In one embodiment, the CD recording engine 204 then follows the pointers of the ordering data structures and begins reading the data files into the optical CD recording circuitry 112. It is the CD recording circuitry 112 that accomplishes the actual writing or burning of the data files to the optical disc 114.
  • FIG. 4 shows a flowchart diagram 400 illustrating the method operations performed in which data is recorded on an optical disc in accordance with one embodiment of the invention. As above, the method is applicable to the recording of files to any optical media, and the CD is used to illustrate by way of example in the following description. The method begins with operation 402 in which a request is received to write a set of files to a CD media. Such a request might occur, for example, when an operator selects a number of data files desired to be recorded on a CD using a graphical user interface, and drags those files to an icon of a CD player/recorder on the computer desktop. In another example, an operator might launch a CD recording program, and in response to a set of queries from the program, select a number of data files to be recorded to a CD optical disc.
  • The method proceeds to operation 404 in which the files that have been selected for recording are examined and the record data structures for the set of files are generated. The examination of the files includes tracing the complete source path to the desired data file. By way of example, the files may be located on a local hard drive, on a network server, on a remote server accessed through the Internet, or in any location accessible by whatever hardware or physical cabling to the recording system. In addition to the source path, the selected data files are examined to determine their size, when they were created or last modified, the attributes of the selected files, in what data mode they exist, whether or not the selected data files have been written to the CD in a previous session, and other such information as may be required to locate, access, read, write, and identify the selected data records.
  • The record data structures, as described above and illustrated in FIG. 2B, contain the necessary location and attribute information associated with the data to enable the system to designate the order in which the files will be recorded, to designate which files will be cached to ensure a steady stream of data during recording, and to provide the necessary location information to the CD recording engine. A record data structure is generated for each file selected for recording onto a CD optical disc.
  • The method next advances to operation 406 where pointers are generated identifying each record data structure in the order in which the corresponding data file will be written to the CD. As discussed above in reference to FIG. 2C, once the record data structures are created, the files can be ordered to maximize the most efficient use of space and system resources in the recording of the data to CD. In one embodiment, the dynamic ordering of the record data structures by pointers obviates the need for additional lists of data files and their source paths which consume considerable system memory resources. The pointers, on the other hand, demand minimal resources, using only about 4 bytes of memory each in a 32-bit operating system. As is known in the operation of burning a CD, a constant flow of data must be maintained. By minimizing the demands on system memory resources caused by multiple generations of lists and tables, using pointers to define the writing order frees system resources to be used where they are most needed.
  • The method then goes to operation 408 where one of the record data structures is processed to generate an ordering data structure. The processing is accomplished on the record data structure in the order in which the pointers were assigned in operation 406. Thus, the record data structure to be processed is whichever record data structure is next in order according to the pointer assigned. In one embodiment, the processing includes calculating a file start offset and file end offset to a particular location in the system cache memory. The processing also includes calculating a pad to add to a file to complete a sector. Since files are written from the beginning of a logical block, if a file should end somewhere in the middle of a logical block, the pad calculated is how much to add to that file so that the next file will be written starting at the beginning of the very next logical block.
  • An ordering data structure, as described above in reference to FIG. 3, is a set of pointers to the source data file with additional information providing the recording engine with the exact size and location of the source data file. In one embodiment, the additional information includes the location of a source data file that has been cached so that the recording engine will access the data file from system cache instead of from the original data source. In another embodiment, the additional information includes a pad to size value so that the recording engine knows how many bytes have been added to the data source file to complete a sector. The additional information amplifies the pointers, but the ordering data structures remain a set of pointers. Unlike the record data structures which are lists as described above, the ordering data structures are pointers requiring far fewer system memory resources to store, transfer and process.
  • Next, the method advances to operation 410 where the ordering data structure is passed to a recording engine in the writing order. Unlike prior art where yet another list would have been generated containing location, size, and other attribute information about each data file, the ordering data structure, in one embodiment of the present invention, provides a set of pointers directly to the data file to be written. The ordering data structure is passed in the order in which the data files will be written to the CD, and requires little or no additional processing by the recording engine.
  • In decision block 412, the method calls for making a determination as to whether or not any record data structures remain to be processed. If there are record data structures to be processed, the next record data structure in writing order is processed as the method loops back to operation 408. If no record data structures remain, the method advances to operation 414.
  • In operation 414, the first ordering data structure in writing order is accessed by the recording engine and, following the pointers and location information contained therein, the source file of data is manipulated to be written to the CD. In one example, the source file is located on a host system hard drive. In another example, the source file is located on a remote server. In still another example, the source file is one of group of one or more files that have been cached for steady stream writing of data. Wherever the source file may be located, the recording engine follows the pointers and other location information in the ordering data structure to locate and manipulate the source file for writing to the CD.
  • In accordance with the response to decision block 416, the method loops through operation 414 until each of the ordering data structures has been accessed and the associated data files written to the CD. When the response to decision block 416 is no, all of the ordering structures have been accessed, resulting in all of the selected data files being written to a CD, and the method is done.
  • FIG. 5 shows a flowchart diagram 500 illustrating the method operations performed in which data is recorded on an optical disc in accordance with another embodiment of the invention. As above, the method is illustrated using the example of burning a CD, but is applicable to any optical media. The method begins with operation 502 in the same manner as the method described in reference to FIG. 4 with a request to write a set of files to a CD media. As above, the request can be in the form of a selected group of data files being dragged to a CD player/recorder icon on a computer desktop, or by selecting a group of one or more data files in response to queries from a CD recording software application.
  • The method advances to operation 504 where the selected data files are examined by the recording program to create the record data structures as described above and illustrated in FIG. 2B. A record data structure is created for each file selected to be recorded onto the CD optical disc, and provides the location pointers to the source files, file size, data mode, the last time and date the file was updated, and other file attribute information necessary for locating the source file and allocating necessary space and method of recording to write the selected data files onto a CD.
  • The method proceeds to operation 506 where pointers are generated to arrange the record data structures in an order in which the associated data files will be recorded onto the CD. The order is the writing order, and as described in reference to FIG. 4, pointers are used in the dynamic ordering of the record data structures associated with each of the data files selected to be written to a CD. The use of pointers obviates the generation of yet another list and conserves system resources. As the writing order is generated, those files that will be cached are identified and assigned a specific location in the system cache. As is known, the operation of burning files to a CD requires a constant stream of data while using a great deal of system resources. The caching of data files maximizes the efficient use of available memory and resources, and ensures the steady flow of data to the CD writing circuitry. Further, the file integrity of each of the data files identified in a record data structure is verified to ensure that each file can be opened and can be read.
  • The method then advances to operation 508 where the record data structures are processed to generate ordering data structures. The record data structures are processed in the writing order that was generated in operation 506. The ordering data structure, as described above and illustrated in FIG. 3, is a set of pointers to the data files. The ordering data structure points the recording engine to the source data file from where it will be read in the process of writing the file. Thus, if the file has been cached, the ordering data structure points to the exact location in the system cache where the file is located.
  • The method proceeds to operation 510 and the ordering data structures are passed to the recording engine in the writing order. By passing only the ordering data structures, the method conserves valuable system memory resources. Using the ordering data structures, the recording engine need not generate or compile additional lists or tables as was noted in prior art, and using pointers instead of the entire structure of the record data structure minimizes the amount of system resources required to communicate the necessary information to the recording engine.
  • In operation 512, the method proceeds to accessing the ordering data structures which have been provided to the recording engine in writing order. The associated data files are burned to the CD in the writing order, and the method is done.
  • One benefit and advantage of the invention is more efficient and reliable transfer of data files to a CD optical disc. Another benefit is faster turn around time for burning large amounts of data to a CD optical disc by efficient processing as described above.
  • 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, 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.
  • The exemplary embodiments described herein are for purposes of illustration and are not intended to be limiting. Accordingly, those skilled in the art will recognize that 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.

Claims (20)

1. A method for processing data for recording to an optical media, comprising:
receiving a selection of data to be recorded to the optical media;
creating a record data structure for each file in the selection of data, the record data structure comprised of a plurality of data fields defining a record of identifying information for each file in the selection of data;
generating a set of pointers to sequence each record data structure in a writing order, the set of pointers defining a dynamically sequenced list of record data structures;
sequentially processing each of the record data structures according to the dynamically sequenced list to produce an ordering data structure corresponding to each file in the selection of data and defining a record of pointers to a source location of each file in the selection of data from where each file is read to be recorded to the optical media; and
processing the ordering data structure corresponding to each file in the selection of data to write the selection of data onto the optical media in the writing order.
2. The method for processing data for recording to an optical media of claim 1, wherein the plurality of data fields defining the record of identifying information for each file in the selection of data includes:
a file parent;
a file size;
a destination logical block number;
a file source path;
file attributes; and
a data mode.
3. The method for processing data for recording to an optical media of claim 1, further comprising:
designating files to be written to system cache memory;
assigning the designated files to a specific location in system cache memory; and
verifying that each record data structure accurately defines each file in the selection of data.
4. The method for processing data for recording to an optical media of claim 1, wherein each ordering data structure includes pointers to a corresponding source file.
5. The method for processing data for recording to an optical media of claim 4, wherein the pointers include one or more of a group of information strings referencing source data files and including a file source path, a file start offset, a file end offset, and a file pad to size;
6. The method for processing data for recording to an optical media of claim 1, wherein the processing of the ordering data structure corresponding to each file in the selection of data includes passing the ordering data structure corresponding to each file in the selection of data to a CD recording engine, the CD recording engine writing the selection of data onto the optical media in the writing order.
7. The method for processing data for recording to an optical media of claim 1, wherein the method is executed by a computer executing code that defines a file system database block.
8. The method for processing data for recording to an optical media of claim 1, wherein the method is executed by a computer reading a computer readable media having program instructions for executing the method.
9. A method for recording data to optical media, comprising:
receiving a request to record a selection of data to optical media;
processing the selection of data through a file system database block, the file system database block including the operations of:
generating a record data structure for each file in the selection of data;
sequencing each file in the selection of data according to a writing order, the sequencing being accomplished by generating pointers associated with each record data structure; and
generating an ordering data structure for each file in the selection of data, the generating being accomplished in the writing order,
providing the ordering data structure for each file in the selection of data to an optical media recording engine, the providing being in the writing order; and
recording the selection of data to optical media.
10. The method for recording data to optical media of claim 9, further comprising:
examining each file in the selection of data to be recorded to optical media.
11. The method for recording data to optical media of claim 9, further comprising:
verifying each file in the selection of data to be recorded to optical media, the verifying including:
verifying source location;
verifying file size; and
verifying file integrity.
12. The method for recording data to optical media of claim 9, wherein the record data structure is comprised of a plurality of data fields defining a record of identifying information for each file in the selection of data.
13. The method for recording data to optical media of claim 12, wherein the plurality of data fields defining the record of identifying information for each file in the selection of data includes one or more of:
a file parent data field;
a file size data field;
a destination logical block number data field;
a file source path data field;
a file attributes data field; and
a data mode data field.
14. The method for recording data to optical media of claim 9, wherein the file system data base block further includes the operations of:
designating data files to be written to system cache memory; and
assigning data files designated to be written to system cache memory to a location in system cache memory.
15. The method for recording data to optical media of claim 9, wherein the ordering data structure comprises a record of pointers to a source data file.
16. The method for recording data to optical media of claim 15, wherein the record of pointers includes a pointer to a source location of a data file.
17. The method for recording data to optical media of claim 9, wherein the method is executed by a computer executing program instructions defining the method.
18. A computer readable media having program instructions for recording data to optical media, the computer readable media comprising:
program instructions for receiving a request to record a selection of data to optical media;
program instructions for processing the selection of data through a file system database block, the file system database block including the operations of:
generating a record data structure for each file in the selection of data;
sequencing each file in the selection of data according to a writing order, the sequencing being accomplished by generating pointers associated with each record data structure; and
generating an ordering data structure for each file in the selection of data, the generating being accomplished in the writing order,
program instructions for providing the ordering data structure for each file in the selection of data to an optical media recording engine, the providing being in the writing order; and
program instructions for recording the selection of data to optical media.
19. The computer readable media of claim 18, further comprising program instructions for verifying each file in the selection of data to be recorded to optical media, the verifying including:
verifying source location;
verifying file size; and
verifying file integrity.
20. The computer readable media of claim 18, wherein the file system data base block further includes the operations of:
designating data files to be written to system cache memory; and
assigning data files designated to be written to system cache memory to a location in system cache memory.
US11/134,550 2000-03-30 2005-05-20 Methods for efficient host processing of data files selected for recording to an optical disc media Abandoned US20050210071A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/134,550 US20050210071A1 (en) 2000-03-30 2005-05-20 Methods for efficient host processing of data files selected for recording to an optical disc media

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/539,482 US6910038B1 (en) 2000-03-30 2000-03-30 Methods for efficient host processing of data files selected for recording to an optical disc media
US11/134,550 US20050210071A1 (en) 2000-03-30 2005-05-20 Methods for efficient host processing of data files selected for recording to an optical disc media

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/539,482 Continuation US6910038B1 (en) 2000-03-30 2000-03-30 Methods for efficient host processing of data files selected for recording to an optical disc media

Publications (1)

Publication Number Publication Date
US20050210071A1 true US20050210071A1 (en) 2005-09-22

Family

ID=24151400

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/539,482 Expired - Fee Related US6910038B1 (en) 2000-03-30 2000-03-30 Methods for efficient host processing of data files selected for recording to an optical disc media
US11/134,550 Abandoned US20050210071A1 (en) 2000-03-30 2005-05-20 Methods for efficient host processing of data files selected for recording to an optical disc media

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/539,482 Expired - Fee Related US6910038B1 (en) 2000-03-30 2000-03-30 Methods for efficient host processing of data files selected for recording to an optical disc media

Country Status (3)

Country Link
US (2) US6910038B1 (en)
EP (1) EP1148490A2 (en)
JP (1) JP2002073397A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030164984A1 (en) * 2002-02-21 2003-09-04 Tohru Suetomo Recording apparatus and computer-readable program
US20110055297A1 (en) * 2009-03-13 2011-03-03 Takuji Maeda Access module, information recording module, controller, and information recording system
US20120263028A1 (en) * 2011-04-11 2012-10-18 Ming-Hsun Liu Reproducing system for mediums and method for reproducing digital data and identifying the same

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7302164B2 (en) * 2000-02-11 2007-11-27 Datcard Systems, Inc. System and method for producing medical image data onto portable digital recording media
GB2379297B (en) * 2001-09-03 2005-02-23 Intercede Ltd Server with file verification
US7120644B1 (en) * 2002-03-26 2006-10-10 Software Engineering Corporation Digital image storage and management system
US6885624B1 (en) * 2002-08-20 2005-04-26 Sonic Solutions, Inc. Methods for recording data to optical media
US7136886B1 (en) * 2003-01-27 2006-11-14 Sonic Solutions Pre-mastering for optical media recording
US7480537B2 (en) * 2003-10-30 2009-01-20 International Business Machines Corporation Method and apparatus for compact discs for subtle duration marking
US20050165912A1 (en) * 2004-01-23 2005-07-28 Colbeck Scott J. GUI-based grid computing data management apparatus method and system
US8521687B2 (en) * 2004-08-03 2013-08-27 International Business Machines Corporation Apparatus, system, and method for selecting optimal replica sources in a grid computing environment
US7933472B1 (en) 2006-04-26 2011-04-26 Datcard Systems, Inc. System for remotely generating and distributing DICOM-compliant media volumes
JP4766350B2 (en) * 2009-01-06 2011-09-07 ソニー株式会社 Disc reproducing apparatus and method, program, and recording medium
US8782094B2 (en) * 2009-09-30 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for managing data in complex containers
US10089481B2 (en) 2015-09-23 2018-10-02 International Business Machines Corporation Securing recorded data

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4760526A (en) * 1985-05-22 1988-07-26 Hitachi, Ltd. Method for storing data into a file device and for data retrieval
US5438674A (en) * 1988-04-05 1995-08-01 Data/Ware Development, Inc. Optical disk system emulating magnetic tape units
US20020064111A1 (en) * 1999-12-28 2002-05-30 Michikazu Horie Optical recording medium, data recording method for rewritable-type phase change type optical disc. data erase method for rewritable compact disc. data erase method for rewritable phase change type recording medium, read only data erase method, and recording/readout apparatus
US6401169B1 (en) * 1999-11-23 2002-06-04 Roxio, Inc. Optical disc buffer under-run handling method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034914A (en) * 1986-05-15 1991-07-23 Aquidneck Systems International, Inc. Optical disk data storage method and apparatus with buffered interface
US5423018A (en) * 1992-11-16 1995-06-06 International Business Machines Corporation Queue time reduction in a data storage hierarchy using volume mount rate
CA2169131C (en) 1995-02-28 2004-08-10 Fabrizio Caffarelli Compact disc recording system and method
JP3656282B2 (en) 1995-05-15 2005-06-08 ソニー株式会社 Data recording apparatus, data reproducing apparatus, data recording method, data reproducing method, and data recording medium
US6118754A (en) 1995-05-16 2000-09-12 Sony Corporation Data recording/reproducing apparatus and method corresponding to a plurality of data formats, and data recording medium
ATE214833T1 (en) 1995-05-31 2002-04-15 Sony Corp RECORDING MEDIUM, APPARATUS, REPRODUCTION METHOD AND APPARATUS
US6118737A (en) 1999-03-26 2000-09-12 Deutsche Thomson-Brandt Gmbh Device for reproducing encoded data with a low reproduction error rate
US6117079A (en) * 1999-04-28 2000-09-12 General Electric Company Method and apparatus for handling image data after unsuccessful transfer to remotely located device
US6405283B1 (en) * 1999-11-23 2002-06-11 Roxio, Inc. Method for handling buffer under-run during disc recording

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4760526A (en) * 1985-05-22 1988-07-26 Hitachi, Ltd. Method for storing data into a file device and for data retrieval
US5438674A (en) * 1988-04-05 1995-08-01 Data/Ware Development, Inc. Optical disk system emulating magnetic tape units
US6401169B1 (en) * 1999-11-23 2002-06-04 Roxio, Inc. Optical disc buffer under-run handling method
US20020064111A1 (en) * 1999-12-28 2002-05-30 Michikazu Horie Optical recording medium, data recording method for rewritable-type phase change type optical disc. data erase method for rewritable compact disc. data erase method for rewritable phase change type recording medium, read only data erase method, and recording/readout apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030164984A1 (en) * 2002-02-21 2003-09-04 Tohru Suetomo Recording apparatus and computer-readable program
US7382968B2 (en) * 2002-02-21 2008-06-03 Matsushita Electric Industrial Co., Ltd. Recording apparatus and computer-readable program
US20110055297A1 (en) * 2009-03-13 2011-03-03 Takuji Maeda Access module, information recording module, controller, and information recording system
US20120263028A1 (en) * 2011-04-11 2012-10-18 Ming-Hsun Liu Reproducing system for mediums and method for reproducing digital data and identifying the same
US8422348B2 (en) * 2011-04-11 2013-04-16 Datatronics Technology, Inc. Reproducing system for mediums and method for reproducing digital data and identifying the same

Also Published As

Publication number Publication date
EP1148490A2 (en) 2001-10-24
JP2002073397A (en) 2002-03-12
US6910038B1 (en) 2005-06-21

Similar Documents

Publication Publication Date Title
US20050210071A1 (en) Methods for efficient host processing of data files selected for recording to an optical disc media
JP3005645B2 (en) How to read and write files on non-erasable storage media
US7359626B2 (en) Image mastering API
CA1303747C (en) Method of rapidly opening disk files identified by path names
AU680906B2 (en) Media storage and retrieval system
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
US7136981B2 (en) Method and apparatus for creating a virtual storage volume with a file size independent of a file size limitation
JPWO2002056179A1 (en) Method for regenerating partition using virtual drive, data processing device, and data storage device
US20030037019A1 (en) Data storage and retrieval apparatus and method of the same
US7319653B2 (en) Methods for recording data to optical media
US20080270742A1 (en) System and method for storage structure reorganization
US6574642B1 (en) Methods for processing data transferred to system memory in preparation for recording to an optical disc
US6449705B1 (en) Method and apparatus for improving performance of drive linking through use of hash tables
JP2006277563A (en) Backup system and backup method for restoring file to version of specified date/time, and program for causing computer to execute method
US20070033162A1 (en) Methods and media for efficiently processing data selected for recording to optical media
US20070033219A1 (en) Methods and media for efficient optical media recording
JP3857039B2 (en) Image mastering API
US6886021B1 (en) Method for tracking audit files spanning multiple tape volumes
Teller et al. Petabyte file systems based on tertiary storage
JPH09293007A (en) Program install device
JPH07319749A (en) File allocation system for optical disk device
JPH0963175A (en) Magnetic disk control device
JPH09258916A (en) File management system
JPS63862A (en) Record managing system for recording medium
JP2002189634A (en) Data storage system

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION