U.S. patent application number 11/544325 was filed with the patent office on 2007-02-08 for methods and media for efficient optical media recording.
This patent application is currently assigned to Sonic Solutions. Invention is credited to Kenneth James, Luke Kein La.
Application Number | 20070033219 11/544325 |
Document ID | / |
Family ID | 37397777 |
Filed Date | 2007-02-08 |
United States Patent
Application |
20070033219 |
Kind Code |
A1 |
James; Kenneth ; et
al. |
February 8, 2007 |
Methods and media for efficient optical media recording
Abstract
Methods and media for pre-mastering in preparation for efficient
recording data files to optical media are provided. In one example,
a method for recording data files to optical media is provided. The
method includes receiving a request to write a selection of data
files to an optical media. The method also includes generating a
file node for each file in the selection of data files, wherein the
file node is used to retrieve the each file in a single step from
root to file avoiding tracing the each file back through any
intermediate sub-directories. The method further includes
constructing a database for the selection of data files, the
database being configured to list each file in the selection of
data files to be written to the optical media, and writing the
selection of data files listed in the database to the optical
media.
Inventors: |
James; Kenneth; (Pleasanton,
CA) ; La; Luke Kein; (Santa Clara, CA) |
Correspondence
Address: |
MARTINE PENILLA & GENCARELLA, LLP
710 LAKEWAY DRIVE
SUITE 200
SUNNYVALE
CA
94085
US
|
Assignee: |
Sonic Solutions
Novato
CA
|
Family ID: |
37397777 |
Appl. No.: |
11/544325 |
Filed: |
October 6, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10352697 |
Jan 27, 2003 |
7136886 |
|
|
11544325 |
Oct 6, 2006 |
|
|
|
Current U.S.
Class: |
1/1 ;
707/999.102; G9B/27.012 |
Current CPC
Class: |
Y10S 707/99956 20130101;
Y10S 707/99942 20130101; G11B 2220/2537 20130101; G11B 27/034
20130101 |
Class at
Publication: |
707/102 |
International
Class: |
G06F 7/00 20060101
G06F007/00 |
Claims
1. A method for recording data files to optical media, comprising:
receiving a request to write a selection of data files to an
optical media; generating a file node for each file in the
selection of data files, wherein the file node is used to retrieve
the each file in a single step from root to file avoiding tracing
the each file back through any intermediate sub-directories;
constructing a database for the selection of data files, the
database being configured to list each file in the selection of
data files to be written to the optical media; and writing the
selection of data files listed in the database to the optical
media.
2. The method for recording data files to optical media as recited
in claim 1, further comprising: accessing each file in the
selection of data files; verifying a source location of each file
in the selection of data files; determining a file size of each
file in the selection of data files; and verifying a file integrity
of each file in the selection of data files.
3. The method for recording data files to optical media as recited
in claim 2, further comprising: determining a location for each
file in the selection of data files on the optical media; and
determining whether each file in the selection of data files is
sent to system cache.
4. The method for recording data files to optical media as recited
in claim 3, wherein the database is configured to list a track
number to which each file in the selection of data files is
assigned.
5. The method for recording data files to optical media as recited
in claim 3, further comprising enabling the editing of a track to
which each file in the selection of data files is assigned.
6. The method for recording data files to optical media as recited
in claim 3, wherein the database is configured to list a size in
blocks of each file in the selection of data files.
7. The method for recording data files to optical media as recited
in claim 3, wherein the data files listed in the database are
arranged in a sequence in which the data files will be recorded to
the optical media.
8. The method for recording data files to optical media as recited
in claim 7, further comprising: enabling moving each file within
the sequence to create a new sequence; and enabling fixing of a
location for each file within the sequence and the new
sequence.
9. A method for pre-mastering in preparation for recording data
files to optical media, comprising: receiving a selection of data
files to be recorded to an optical media; generating a database in
which to list the selection of data files; populating the database
with the selection of data files, the data files being identified
by file nodes and listed in alphabetical order by directory,
wherein the file nodes are used to retrieve the files in a single
step from root to file avoiding tracing the files back through any
intermediate sub-directories; accessing a file in the database;
verifying a source location of the accessed file; verifying an
integrity of the accessed file; and determining a destination
location for the accessed file.
10. The method of claim 9, wherein the database is configured to
list a size in blocks of each file in the selection of data
files.
11. The method of claim 9, wherein the database is configured to
list an assigned track to which each file in the selection of data
files is to be written.
12. The method of claim 11 wherein the database is configured to
enable editing of the assigned track to which each file in the
selection of data files is to be written.
13. The method of claim 9, wherein the database is configured to
list the selection of data files in an order in which the selection
of data files is to be recorded to optical media.
14. The method of claim 13, wherein the database is configured to
enable moving a data file within the order in which the selection
of data files is to be recorded to optical media to create a new
order.
15. The method of claim 14, wherein the database is configured to
enable fixing of a location of data file within the order and
within the new order.
16. Computer readable data storage media having program
instructions for recording data files to optical media, the
computer readable data storage media comprising: program
instructions for receiving a selection of data files to be recorded
to optical media; program instructions for populating a database
with a file node for each file in the selection of data files to be
recorded to optical media, wherein the file node is used to
retrieve the each file in a single step from root to file avoiding
tracing the each file back through any intermediate
sub-directories; program instructions for accessing each file in
the database; program instructions for verifying each file in the
database; program instructions for performing a caching algorithm
to evaluate each file in the selection of data files; program
instructions for determining a location on the optical media where
each file in the selection of data files shall be recorded; and
program instructions for recording the selection of data files to
the optical media.
17. The computer readable data storage media of claim 16, further
comprising: program instructions for enabling editing of track
numbers to which any file in the selection of data files is
assigned.
18. The computer readable data storage media of claim 16, further
comprising program instructions for enabling fixing a location of
any file in the selection of data files within a writing order of
the selection of data files.
19. The computer readable data storage media of claim 16, wherein
the determining the location on the optical media where each file
in the selection of data files shall be recorded includes
determining a logical block to which at least a portion of each
file in the selection of data files is to be recorded on the
optical media.
20. The computer readable data storage media of claim 16, wherein
the database lists the selection of data files in an order in which
the selection of data files is to be recorded to optical media, the
database further enabling moving any data file within the order in
which the selection of data files is to be recorded to optical
media to create a new order.
Description
CLAIM OF PRIORITY
[0001] This application is a continuation of U.S. application Ser.
No. 10/352,697, filed on Jan. 27, 2003, and is incorporated herein
by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates generally to the recording of
data to optical media, and more particularly to a method for
determining the target layout and which files to cache during the
pre-mastering stage of optical media recording.
[0004] 2. Description of the Related Art
[0005] When recording data to optical media, a user typically
selects a plurality of files from a source or plurality of sources,
identifies a target or destination optical media, and executes a
recording function. The selected files can be of any type including
audio files, video files, photographic files, data files, and the
like. The recording function is typically executed by use of an
optical media recording program which accomplishes such tasks as
mapping out precise locations of source files, determining size of
source files, mapping out a precise target destination for the
selected files, calculating a theoretical transfer rate for reading
the file from a source and recording the file to a destination,
identifying those files that will be cached and those files that
will be recorded directly from source to destination, performing
necessary formatting as required, and burning the selected files to
a destination optical media. Data can be recorded in one or more
sessions to a single optical media.
[0006] During the pre-mastering stage in preparation for recording
data files to optical media, selected files are typically sorted a
plurality of times to achieve an optimum recording order that
avoids buffer under-run, and that minimizes recording time when the
actual burn operation is accomplished. The plurality of file sorts
is usually intended to maximize efficient use of available
resources by establishing a writing order that matches system
resources and specifications such as transfer rate, buffer size,
read speed for source location, target optical media device write
speed, available system cache, and the like.
[0007] While the plurality of file sorts remains a viable and
efficient use of system resources for a user wishing to record a
relatively small or limited number of data files to optical media,
as the number of files selected for recording increases, the system
processing time required to accomplish the plurality of sorts for
an increasing number of files, as well as for an increasing number
of file sorts as a result of the increasing number of files,
increases significantly. A large number of files, e.g.,
20,000-50,000 files, depending on size, can take up to four minutes
of processing time, plus an additional approximately five minutes
to perform a system test used to calculate an average file transfer
rate. For users recording large numbers of data files, it is
desirable that the processing time prior to recording be minimized,
as should the recording time to record the selected files.
[0008] As is known, when files are recorded to optical media, the
files are read from a source location, from a plurality of source
locations, or a system cache into a buffer of a recording device. A
file system for the destination optical media is created, and the
files are then written to the destination or target optical media
from the optical media recording device buffer, along with required
file system and other data structures in order to comply with
accepted data formats and specifications. In typical prior art
programs, the filling and depletion of the buffer, file size,
optical media device read and write speeds, and other factors were
all considered during the plurality of file sorts to maximize
efficient utilization of system resources and avoid buffer
under-run. Typical optical media recording devices now have
sufficient buffer under-run protection resident in the recording
device to make much of the plurality of file sorts unnecessary.
[0009] In view of the foregoing, what is needed is a method of
recording data to optical media that avoids excessive consumption
of system processing time, and maximizes efficient use of available
recording resources while avoiding the problems of the prior
art.
SUMMARY OF THE INVENTION
[0010] Broadly speaking, the present invention fills these needs by
providing a method for pre-mastering in preparation for writing
data files to optical media in which selected files are arranged
and recorded to optical media in alphabetical order. 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.
[0011] In one embodiment, a method for recording data files to
optical media is provided. The method includes receiving a request
to write a selection of data files to an optical media. The method
also includes generating a file node for each file in the selection
of data files, wherein the file node is used to retrieve the each
file in a single step from root to file avoiding tracing the each
file back through any intermediate sub-directories. The method
further includes constructing a database for the selection of data
files, the database being configured to list each file in the
selection of data files to be written to the optical media, and
writing the selection of data files listed in the database to the
optical media.
[0012] In another embodiment, a method for pre-mastering in
preparation for recording data files to optical media is provided.
The method includes receiving a selection of data files to be
recorded to an optical media, and generating a database in which to
list the selection of data files. The method also includes
populating the database with the selection of data files, the data
files being identified by file nodes and listed in alphabetical
order by directory, wherein the file nodes are used to retrieve the
files in a single step from root to file avoiding tracing the files
back through any intermediate sub-directories. The method further
includes accessing a file in the database, and verifying a source
location of the accessed file. In addition, the method includes
verifying an integrity of the accessed file, and determining a
destination location for the accessed file, and determining a
destination location for the accessed file.
[0013] In still a further embodiment, computer readable data
storage media having program instructions for recording data files
to optical media are provided. The computer readable data storage
media include program instructions for receiving a selection of
data files to be recorded to optical media, and program
instructions for populating a database with a file node for each
file in the selection of data files to be recorded to optical
media, wherein the file node is used to retrieve the each file in a
single step from root to file avoiding tracing the each file back
through any intermediate sub-directories. The computer readable
data storage media also include program instructions for accessing
each file in the database, and program instructions for verifying
each file in the database. The computer readable data storage media
further include program instructions for performing a caching
algorithm to evaluate each file in the selection of data files, and
program instructions for determining a location on the optical
media where each file in the selection of data files shall be
recorded, and program instructions for recording the selection of
data files to the optical media.
[0014] The advantages of the present invention are numerous. One
notable benefit and advantage of the invention is the recording of
large quantities of data files to optical media is accomplished so
that repeated sorting of files during pre-mastering is eliminated.
The resources required for pre-mastering is greatly reduced, as is
the time required for pre-mastering in preparation for recording
selected files to optical media.
[0015] Another benefit is the present invention results in optical
media that are easier to access and to use after recording since
data files recorded thereon are generally sequenced in the same
manner in which files are sequenced or arranged or organized on the
local drive or by the resident operating system.
[0016] An additional benefit is that embodiments of the present
invention provide for both user interaction and control, if
desired, as well as minimal user interaction and control of the
pre-mastering process enabling a range of users from the average
consumer to the technically experienced to pre-master and record to
destination optical media according to desire and ability.
[0017] 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
[0018] The accompanying drawings, which are incorporated in and
constitute part of this specification, illustrate exemplary
embodiments of the invention and together with the description
serve to explain the principles of the invention.
[0019] FIG. 1 is a flow chart diagram illustrating method
operations performed in writing data files to optical media in
accordance with one embodiment of the present invention.
[0020] FIG. 2 is a flow chart diagram illustrating method
operations performed in pre-mastering processing in accordance with
one embodiment of the present invention.
[0021] FIG. 3A illustrates a partial database list in accordance
with one embodiment of the present invention.
[0022] FIG. 3B illustrates the re-sequenced partial database list
in accordance with an embodiment of the invention.
[0023] FIG. 4 is a flow chart diagram illustrating method
operations performed in pre-mastering processing in accordance with
one embodiment of the present invention.
[0024] FIG. 5A illustrates a partial database list in accordance
with one embodiment of the present invention.
[0025] FIG. 5B illustrates the re-sequenced partial database list
in accordance with an embodiment of the invention.
[0026] FIG. 6 is a flow chart diagram illustrating the method
operations performed during the pre-mastering stage of optical
media recording in accordance with one embodiment of the present
invention.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0027] An invention for recording data files to optical media, and
for pre-mastering in preparation for recording, is disclosed. In
preferred embodiments, methods include the arranging of data files
selected for recording to optical media alphabetically by
directory, and enabling the editing of assigned tracks as well as
the fixing of locations within the sequence of selected files. 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.
[0028] Typically, when writing or recording data files to optical
media (e.g., CD-R/RW, DVD-R/RW, DVD+RW, etc.), one or more source
files is selected for recording, and a burn or record request is
executed. 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 one or more
files to an optical media device icon on a computer monitor), or
executing an optical media read/write software application, and in
response to a scripted set of queries, the operator selecting one
or more files to be written to a target optical media. Further, the
one or more source files can be located at one or more source
locations. Typical source locations for files include, hard drives,
peripheral drives, network locations, intranet locations, Internet
locations, and the like.
[0029] In preparation for recording to optical media, a database is
called, constructed, or otherwise generated. The generation of a
database includes mapping out source locations of each selected
file, and listing of the source file by file node in a sequential
list of files to be recorded. Subsequent operations, as described
in greater detail below, include source file verification,
destination file mapping, determining which source files to send to
system cache and which to read directly into a buffer during
recording, and a plurality of file processing operations in
preparation for recording, also known as burning, selected files to
optical media. Typically, files are added to the database as they
are selected for recording, initially processed in the order in
which the files were added to the database, and then sorted, and
re-sorted in the determination of an optimum writing order to
maximize efficient use of system resources, minimize recording
time, and minimize the likelihood of buffer under-run.
[0030] FIG. 1 is a flow chart diagram 100 illustrating method
operations performed in writing data files to optical media in
accordance with one embodiment of the present invention. The method
begins with operation 110 in which a request is received to write
one or more files to an optical media. In one embodiment, the
request is received in response to the execution of an optical
media-recording program and associated queries. In another
embodiment, the request is received when a user drags one or more
files to an icon associated with an optical media, an optical media
recording device, and the like on a computer desktop in a computer
operating system environment. In other embodiments, the request is
received in any manner in which files are selected to be recorded
to an optical media and a request or command to record is
executed.
[0031] The method continues with operation 112 in which a database
is constructed to be populated with nodes for each file selected to
be written to the optical media. In one embodiment, the database is
a file or file structure used to receive, hold, and present a
sequential list of files to be recorded to optical media, and any
other such identifying information about each file as necessary or
desired. In one embodiment, the database includes for each file,
for example, the source file name, source location, the size of the
file, the type of file, and other such identifying data. Each file
selected to be recorded to optical media will have a corresponding
entry in the database.
[0032] In one embodiment, the source location for each file
selected to be written or recorded to optical media is identified
by file node. As described in co-pending U.S. patent application
Ser. No. 10/224,686 (Attorney Docket No. ROXIP208), entitled
METHODS FOR RECORDING DATA TO OPTICAL MEDIA, filed on 20 Aug. 2002,
and assigned to the same assignee as the present invention, the
disclosure of which is hereby incorporated by reference in its
entirety, file nodes, also known as file path nodes, are used to
identify and call or retrieve files in a single step from root to
file through any intermediate directories, subdirectories, and the
like. The single step avoids the tracing of files back through any
intermediate sub-directories, directories, and the like, and
minimizes processing time and resource utilization when a file is
called. In an embodiment of the present invention, the database
populated with the files selected for recording to optical media
identifies each file by node.
[0033] Returning to FIG. 1, the method continues with operation 114
in which a node for the first file selected to be written to
optical media is written to the database. In accordance with one
embodiment of the invention, the database is populated in a same
manner in which the host operating system reads files. By way of
example, Microsoft.RTM. Windows.RTM. operating systems read and
process files alphabetically by directory. The embodiment described
is sequenced in the same manner in which an exemplary operating
system reads and processes files. Other operating systems commonly
follow the same or a similar schema. Typically, nodes representing
files are written to the database so that they are generally
arranged or sequenced alphabetically by directory. The highest
level directories, e.g., those directories closest to the root of
the source, are arranged alphabetically, followed by any files at
the same structural or hierarchical level as the directories, also
arranged alphabetically. Files within directories are alphabetized,
and any sub-directories are arranged alphabetically as are their
contents, etc. As is typical for alphabetical sequencing, numbers
are included in the priority scheme, and so the sequencing is
alphanumeric. As used herein, alphabetical sequencing includes
alphanumeric sequencing.
[0034] The method continues with decision block 116 in which it is
determined whether more nodes corresponding to data files selected
for writing to optical media remain to be written to the database.
Decision block 116 ensures that all files selected to be written to
optical media have corresponding nodes entered in the database. If
more files remain, a "yes" to decision block 116, the method
proceeds with operation 118 in which a node is written
corresponding to a next selected file. The method then loops back
to decision block 116 until all selected files have corresponding
nodes written to the database. When no additional files remain, a
"no" to decision block 116, the method is done.
[0035] As illustrated in FIG. 1, one embodiment of the present
invention includes populating a database with nodes corresponding
to each file selected to be written to a target optical media. In
one embodiment, the writing of nodes corresponding to the selected
files preserves the structure of the files as selected. By way of
example, if an entire directory (or sub-directory, etc.) is
selected for writing to optical media, the node written corresponds
to the parent directory of each of the selected files, with each
selected file identified as located in the parent directory. When
the selected files are written to the optical media, the parent
directory is written and populated with each of the selected files,
thereby preserving the source structure for entire directories.
Further, if the entire directory is selected for writing to the
target optical media, any sub-directories of the selected directory
would be selected and written to the target optical media within
the same structure as the selected directory. One embodiment of the
invention provides a query, option, or other manner of selecting
whether to include sub-directories with any selected directory. In
another embodiment, only selected files are written to the optical
media, and any structure, including directories, sub-directories,
and the like, must be created on the target optical media.
[0036] In one embodiment of the invention, the database is used to
perform a number of file processing, pre-mastering operations in
preparation for writing the selected files to a target optical
media. Such file processing functions include, but are not limited
to, mapping out source locations of each of the selected files and
sequentially listing each of the corresponding nodes as described
above, determining which files will be sent to system cache during
the recording operation, generating pointers and data structures
which are passed to the recording engine, mapping out destination
locations, and other file processing operations, also known as
pre-mastering operations, in preparation for the writing, also
known as recording or burning, of the selected data files to a
target optical media.
[0037] In processing the selected data files to be recorded to the
target optical media, several discrete operations are performed as
will be discussed in greater detail below. In accordance with
embodiments of the present invention, these processing operations
are accomplished in a single pass of the files, in the sequence as
listed in the database. In one embodiment, the processing includes
examining each of the selected data files and verifying the source
location of the file, the file size, the integrity of the file, and
other file attributes to enable the writing of the source data file
to a destination optical media. In order to verify the source file,
and in order to enable the recording engine to locate and read the
selected file, the corresponding node is written to the database as
described above in reference to FIG. 1.
[0038] FIG. 2 is a flow chart diagram 150 illustrating method
operations performed in pre-mastering processing in accordance with
one embodiment of the present invention. In preparation for writing
selected files to optical media, file processing includes the
determining of a location on the target optical media. The
determining of a location includes assigning each selected file to
a track and block or sector number. Typically, such assignment is
performed automatically in accordance with the kind and type of
target optical media, the kind and type of source files, the amount
of media space required and available, formatting specifications
and conventions, and other such criteria, standards, and the like
that usually require or accept little or no user input. In
accordance with one embodiment of the invention, the database lists
the selected files for recording to optical media in the sequential
order as described above which is typically in alphabetical order
by directory. In one embodiment, the database can further list the
selected files with the assigned track on the target optical media,
and further enable editing of the assigned track.
[0039] Turning now to FIG. 2, the method begins with operation 152
in which a list of one or more files selected for writing to
optical media is provided, and in which the assigned track on the
destination optical media is indicated. In one embodiment, the list
is the database as described above. The database, as described
above, provides the nodes corresponding to the selected files in
the order in which the files will be written to the destination
optical media. In one embodiment, a plurality of options are
enabled to provide a selection to a user to view particular
characteristics of each selected file, including assigned track
numbers. In other embodiments, viewing options may include file
size in blocks, file size in bytes, file source locations and
characteristics (e.g., removable media, network, internet, and the
like), and any other desired file attribute, characteristic, and
the like.
[0040] The method continues with operation 154 in which editing of
assigned track numbers for each of the one or more selected files
is enabled. In embodiments of the present invention, enabling of
the editing of track numbers is accomplished in such manners as
providing an edit function that a user may select, simply
displaying the database with track numbers, providing a prompt or
query during the processing of files in preparation for writing to
optical media, or any other manner of enabling the editing of
assigned track numbers.
[0041] Next, the method proceeds with operation 156 in which a
request to edit an assigned track number of one of the one or more
selected files is received. As described above in reference to
operation 154, embodiments of the present invention enable track
number editing by providing prompts, queries, editing menus,
functions, and the like, and the receiving of the request is, in
various embodiments of the invention, in response to or by
selection of any of the prompts, queries, menus, functions, and the
like.
[0042] The method continues with operation 158 in which a track
number is assigned to the file as requested. In one embodiment, the
response to the request to assign a particular track number to a
file is the assigning of the requested track number.
[0043] Next, in operation 160, the list of the one or more files to
be recorded to optical media and associated assigned track numbers
is re-sequenced in accordance with the newly assigned track number.
In one embodiment, the file (represented on the list as a node)
with the newly assigned or edited track number is moved to the end
of the series of one or more files assigned to the same track. In
one embodiment, an exception to the sequencing of files
alphabetically by directory occurs when a file is assigned to a
track in accordance with enabled assigned track number editing. The
file having a newly assigned track number is moved to the end of
the sequence of any files assigned to the track. In another
embodiment, all files assigned to a track are re-sequenced to be in
alphabetical order within the track.
[0044] The method continues with decision block 162 in which it is
determined whether more track number editing is desired. Decision
block 162 sets up a loop in order to process all files for which
track number editing is desired. As long as files remain for which
track number editing is desired, a "yes" to decision block 162, the
method loops back to operation 156 in which a request is received
to edit an assigned track number of one of the one or more files.
The method proceeds as already described until no further track
number editing is desired, a "no" to decision block 162, and the
method is done.
[0045] An embodiment of the present invention in which track number
editing is enabled is further illustrated in FIGS. 3A and 3B. FIG.
3A illustrates a partial database list 170 in accordance with one
embodiment of the present invention. The partial database list 170
identifies files by node, illustrated for simplicity as nodes 1
through 7, with assigned track number indicated. The file 172
identified at node 7 has been assigned to track number 2. In
accordance with one embodiment of the invention, the file 172 is
selected for track number editing. In the example of FIGS. 3A and
3B, the track number is to be edited to be re-assigned to track 1.
With track number editing enabled as described above, the request
to change the track number to track number 1 is entered as
described above in reference to FIG. 2.
[0046] FIG. 3B illustrates the re-sequenced partial database list
176 in accordance with an embodiment of the invention. The request
to change the track number for the file 172 entered in FIG. 3A has
been received and affected. The re-sequenced file 178 in FIG. 3B
shows the re-sequenced file 178 identified at node 7 has been
re-assigned to track 1. When the track number is re-assigned, the
re-sequenced file 178 is moved to the end of the series of files
already assigned to track 1. In FIG. 3B, the re-sequenced file 178
identified at node 7 was moved to follow the last file assigned to
the series of files assigned to track 1, regardless of where it may
have otherwise been alphabetically sequenced.
[0047] FIG. 4 is a flow chart diagram 200 illustrating method
operations performed in pre-mastering processing in accordance with
one embodiment of the present invention. The pre-mastering
processing illustrated in FIG. 4 includes the ability to fix a
location of one or more files to be written to optical media as
desired. The method begins with operation 202 in which a request is
received to fix a location for a file in a selection of one or more
files to be recorded to optical media. In one embodiment, the
database lists the selection of one or more files to be recorded to
optical media in the order or sequence in which the one or more
files are to be recorded to the destination optical media. The list
of files may include additional information such as file size,
assigned track, and the like. Additionally, files assigned to a
fixed location, or fixed by a user to a specific location, may also
be indicated. In operation 202, a user typically executes a
function, selects an option, or other common method of function
selection to request fixing a particular location for one or more
of the files selected to be recorded to optical media. The request
to fix a location for a file in operation 202 is also known as a
request to enable the moving and fixing of files in the sequential
list of one or more files selected for recording to optical
media.
[0048] The method continues with operation 204 in which a
sequential list of one or more files selected for recording to
optical media is provided. As described above, a sequential list of
one or more files may contain any of a plurality of file
characteristics, qualities, or other additional information as
desired. In one embodiment of the invention, the sequential list of
one or more files indicates an assigned sequential order for the
one or more files on the destination optical media. Further, any
file fixed in location by default or by user request is indicated
as being fixed.
[0049] Next, in operation 206, the method enables moving and fixing
of a location for any one or more files in the sequential list of
one or more files selected for recording to optical media. In one
embodiment, the enabling is signified by providing an alert, an
option, a query, a prompt, or other such manner of advising a user
that position fixing is enabled.
[0050] The method continues with operation 208 in which a request
to fix a location for any one or more files in the sequential list
of one or more files selected for recording to optical media is
received. Typically, a user makes a selection, answers a query,
drags and drops a file, or other such method of transmitting a
request to fix a location of one or more files. In operation 208,
the request is received. In one embodiment, only one file at a time
may be moved and fixed. In another embodiment, moving and fixing is
enabled for the entire sequential list, and when the desired
sequence is set, the request encompasses any and all file
sequencing desired and selected.
[0051] The method concludes with operation 210 in which the list of
one or more files selected for recording to optical media is
re-sequenced in accordance with the request received in operation
208. In one embodiment, the request to fix the location of one or
more files can encompass as many or as few files as desired to fix
a desired sequence. In other embodiments, requests can be submitted
to fix a single file in a desired location, and requests repeatedly
submitted for as many files for which it is desired to fix the
location. In one embodiment of the invention, files fixed in a
particular location are indicated to be fixed. When the list is
re-sequenced in operation 210, the method is done.
[0052] FIGS. 5A and 5B further illustrate an embodiment of the
present invention in which files are fixed in a particular
location. FIG. 5A illustrates a partial database list 220 in
accordance with one embodiment of the present invention. The
partial database list 220 identifies files by node, illustrated for
simplicity as nodes 1 through 7, with file size in blocks
indicated. In the embodiment illustrated in FIG. 5A, the file
identified at node 1, 222, and the file identified at node 2, 224,
are both indicated to be fixed in their present locations with an
asterisk, "*" preceding the node. In other embodiments, the files
can be flagged, marked, or otherwise indicated in any manner as
desired to signify a fixed location. In accordance with one
embodiment of the invention, the file 226 is selected for fixing in
a desired location. In the example of FIGS. 5A and 5B, the selected
file 226 will be fixed in a location immediately following node 1,
222, and node 2, 224. With moving and fixing of a location for one
or more files enabled as described above, the request to fix a
location for any one or more files in the sequential list of files
selected for recording to optical media is received as described
above in reference to FIG. 4.
[0053] FIG. 5B illustrates the re-sequenced partial database list
230 in accordance with an embodiment of the invention. The request
to fix in a desired location file 226 received in FIG. 5A has been
received and affected. The re-sequenced file 232 in FIG. 5B shows
the re-sequenced file 232 identified at node 7 has been fixed in
the desired location immediately following node 1, 222, and node 2,
224. The newly positioned and fixed re-sequenced file 232 is
indicated as fixed in the illustrated location with an asterisk "*"
preceding the node.
[0054] FIG. 6 is a flow chart diagram 250 illustrating the method
operations performed during the pre-mastering stage of optical
media recording in accordance with one embodiment of the present
invention. Flow chart diagram 250 illustrates those operations
performed, in one embodiment of the invention, just prior to
recording the selected one or more files to a destination optical
media.
[0055] The method begins with operation 252 in which a sequential
list of one or more files to be recorded to a target optical media
is received. In one embodiment, the sequential list incorporates
any track number editing as described above in reference to FIGS. 2
and 3A-3B, and the sequential list incorporates any fixing of a
file location as described above in reference to FIGS. 4 and 5A-5B.
In other embodiments, additional modifications or edits to the
sequential list can be effected after the method operations
described below, but the method operations would be repeated prior
to the recording of the selected files to the destination optical
media.
[0056] The method continues with operation 254 in which a first
file in the sequential list is obtained, called, or otherwise
accessed for examination and processing as described below. The
method operations performed in pre-mastering in preparation for
recording to optical media are performed for each file in the
sequential list of one or more files. In operation 254, a first
file is obtained, called, or otherwise accessed, and the following
operations will be repeated for each file in the sequential list
until all selected files have been processed and readied for
recording to optical media.
[0057] The method proceeds with decision block 256 in which it is
determined whether the file is imported. At this point in flow
chart diagram 250, the determination is being made for the first
file in the sequential list. As will be described in detail below,
the determination is made for each file in the sequential list. For
ease of description, the descriptions of the remaining method
operations will be discussed in reference to the first file, but it
is to be understood that the method operations are applicable to
each file processed. In decision block 256, if the file is
imported, most of the file processing is not required. As used
herein, an imported file is already recorded or written to the
target or destination optical media. If the file has not been
previously recorded to the target or destination optical media, a
"no" to decision block 256, the method proceeds to operation
258.
[0058] In operation 258, the file is verified. In one embodiment,
verification of a file includes determining the file is located at
the source location reported to contain the file, determining the
file is of the type indicated, that the file can be accessed in the
manner consistent with the type of file indicated, and other such
verification processes to ensure file location, size, and
integrity.
[0059] Once the file has been verified in operation 258, the method
continues with operation 260 in which a logical block number or
numbers is assigned to the file. Upon assigning the logical block
number or numbers, the logical block counter is correspondingly
incremented so that the next file, if any, will be assigned to the
next or succeeding logical block or blocks. In one embodiment, a
logical block counter is maintained for tracking and consecutively
assigning files to logical blocks on the target optical media. The
logical block counter ensures sufficient media space for selected
files, and maps the recording of files to the target or destination
optical media.
[0060] The method proceeds with decision block 262 in which it is
determined whether the file will be cached for the process of
recording the file to the target or destination optical media. In
prior art caching algorithms, extensive processing resources are
dedicated to determining whether a file is sent to cache or read
from a source location during the recording process. In one
embodiment of the present invention, a simplified caching algorithm
is used to determine whether or not a file is cached. In other
embodiments, more extensive calculations are used, but in a
preferred embodiment, such resources as "burn-proof" optical media
recording devices are exploited to maximize efficient use of
available resources in recording to optical media. One embodiment
of a simplified caching algorithm includes caching any file that is
not at a source location that is the local hard drive of the system
performing the method operations described herein. For all other
files, in one embodiment, a window size is set and used to examine
a moving series of files. By way of example, a window of 256 kB
(kilobytes) is used to examine a series of 16 files. If the
cumulative file size of the sixteen files is less than the window
size, 256 kB in this example, then the sixteenth file is cached.
The window is then moved by one file, and again the cumulative file
size compared to the window size until all selected files have been
evaluated. In the exemplary algorithm, by way of example, if a
majority of the resident files are fairly large files, e.g., 256 kB
or larger, then a majority of the resident files will not be cached
in the recording process. The algorithm described is exemplary, and
any manner of evaluating the selected files in consideration of
system capacity and resource can be used to determine caching
requirements.
[0061] In decision block 262, if a file is to be cached, a "yes" to
decision block 262, the method proceeds to operation 264 and the
file is cached. Following the caching of the file in operation 264,
the method continues to decision block 266 as described below. In
decision block 266, if a file is not to be cached, a "no" to
decision block 262, the method proceeds to decision block 266.
[0062] In one embodiment of the invention, decision block 266
determines whether more files have been selected and remain to be
processed in the pre-mastering process. Decision block 266 sets up
the loop to process each file selected to be recorded to a target
or destination optical media. If more files remain to be processed,
a "yes" to decision block 266, the method loops through operation
268 in which a next file in the sequential list of files is
obtained, and back to decision block 256 in which it is determined
whether the file is imported.
[0063] As described above, imported files, in one embodiment of the
invention, require less file processing than non-imported files. If
a file is imported, that is, if a file is already recorded to the
target or destination optical media, a "yes" to decision block 256,
the method proceeds to operation 270 in which an absolute block
number is calculated for the file. In one embodiment of the
invention, multi-session target or destination optical media can be
recorded. Because logical block numbers are generally
session-relative, in order to generate a file system entry that
points to the imported file on the optical media in a session other
than the one being recorded for the selected files, an absolute
block number for the location of the file on the optical media is
calculated. In operation 270, the absolute block number for the
location of the imported file on the target or destination optical
media is calculated. In other embodiments (not illustrated in FIG.
6), a plurality of options are presented with respect to imported
files. By way of example, a prompt or query may be provided to
determine whether it is desired to record a duplicate copy of a
selected file to the destination optical media, or to replace a
previously recorded file. Generally, if an imported file is
selected for recording, and the imported file is to be used as the
selection, the file size, attributes, and location are known,
accessible, and minimal processing is required.
[0064] The method then continues with decision block 266 to
determine whether more files remain in the sequential list of one
or more files to be recorded to optical media in order to process
all files in the list as already described. Once all of the files
in the sequential list of one or more files to be recorded to
optical media have been processed as described, a "no" to decision
block 266, the method is done.
[0065] With the embodiments described herein in mind, it should be
understood that the present 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.
[0066] 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.
[0067] The invention can also be embodied as computer readable code
on a computer readable medium. The computer readable medium is any
data storage device that can store data, which can thereafter be
read by a computer system. Examples of the computer readable medium
include read-only memory, random-access memory, CD-ROMs, CD-Rs,
CD-RWs, DVD-ROM, DVD-R/RW, DVD-RAM, DVD+R/+RW, magnetic tapes, and
other optical data storage devices. The computer readable media can
also be distributed over network coupled computer systems so that
the computer readable code is stored and executed in a distributed
fashion.
[0068] In summary, the embodiments of the present invention provide
methods and media for pre-mastering in preparation for efficient
recording data files to optical media. The embodiments invention
described herein are exemplary. Other embodiments of the invention
will be apparent to those skilled in the art from consideration of
the specification and practice of the invention. The embodiments
and preferred features described above should be considered
exemplary, with the invention being defined by the appended claims
and equivalents thereof.
* * * * *