Method and system for controlling the conversion of a file from an input format to an output format
First Claim
1. A computer-implemented method for controlling the conversion of a computer file from an input format to an output format by determining the best path for converting the file from the input format to the output format using family objects, the method comprising the steps of:
- receiving the input format and the output format;
generating a node in memory for each family object that can read the input format;
generating successful branches of nodes in memory that include one or more nodes such that each successful branch includes a first node that can read the input format and a last node that can write the output format; and
calculating a best path through the successful branches of nodes.
22 Assignments
0 Petitions
Accused Products
Abstract
A system and method for controlling the conversion of a file from an input format to an output format is provided. The method includes a computer-implemented method for controlling the conversion of a computer file from an input format to an output format by determining the best path for converting the file from the input format to the output format using family objects. The method includes the steps of receiving the input format and the output format, and generating a node in memory for each family object that can read the input format. The method further includes the step of generating successful branches of nodes in memory that include one or more nodes such that each successful branch includes a first node that can read the input format and a last node that can write the output format. Finally, the method includes calculating a best path through the successful branches of nodes.
124 Citations
25 Claims
-
1. A computer-implemented method for controlling the conversion of a computer file from an input format to an output format by determining the best path for converting the file from the input format to the output format using family objects, the method comprising the steps of:
-
receiving the input format and the output format;
generating a node in memory for each family object that can read the input format;
generating successful branches of nodes in memory that include one or more nodes such that each successful branch includes a first node that can read the input format and a last node that can write the output format; and
calculating a best path through the successful branches of nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
discarding all nodes from memory after the calculating the best path step.
-
-
3. The method of claim 1, further comprising the step of:
storing a root node pointer indicating the location of the first node generated by the generating a node in memory step.
-
4. The method of claim 1, further comprising the step of:
storing the best path in memory.
-
5. The method of claim 1, wherein the generating a node in memory step includes the following steps:
-
locating a family object that can read the input format;
allocating a portion of memory for the generated node;
storing a pointer to the located family object in the portion of memory for the generated node;
determining if the located family object can write the output format and storing the result in the portion of memory for the generated node;
storing the input format in the portion of memory for the generated node;
storing a next node pointer to the generated node in the portion of memory for the previously generated node; and
proceeding back to the locating a family object step until all other family objects, that have not already been checked, have been located.
-
-
6. The method of claim 5, wherein the allocating a portion of memory step includes providing the portion of memory as a data structure that includes a family object pointer portion, a next node pointer portion, a previous node pointer portion, a depth of tree portion, a common file format portion, and a done portion.
-
7. The method of claim 5, wherein the generating successful branches of nodes in memory step includes the following steps to generate a branch:
-
locating a node generated in the generating a node in memory step that cannot write the output format;
locating a family object that is not already associated with a node in the branch and that can read a format that can be written by the family object associated with the located node;
generating a new node in memory corresponding to the located family object; and
proceeding back to the locating a family object step until all other family objects, that are not already associated with a node in the branch and that can read a format that can be written by the family object associated with the located node, have been located.
-
-
8. The method of claim 7, wherein the generating a new node in memory step includes the following steps:
-
allocating a portion of memory for the new node;
storing a pointer to the located family object in the portion of memory for the new node;
storing a next node pointer in the portion of memory for the new node that corresponds to the next node pointer stored in the portion of memory for the located node;
storing a next node pointer in the portion of memory for the located node that corresponds to the address for the new node in memory;
storing a previous node pointer to the located node in the portion of memory for the new node;
storing the format that can be read by the located family object in the portion of memory for the new node; and
determining if the located family object can write the output format and storing the result in the portion of memory for the new node.
-
-
9. The method of claim 8, further comprising the steps of:
-
locating a next node defined by the next node pointer in the portion of memory for the located node;
defining the next node as the located node;
determining if the located node can write the output format and proceeding back to the locating a next node step if the located node can write the output format; and
proceeding back to the locating a family object step.
-
-
10. The method of claim 1, wherein the first node generated in the generating a node in memory step is defined as the root node, and wherein the calculating a best path step includes the following steps:
-
locating the root node;
moving forward through a successful branch using pointers stored in memory until locate a node that can write the output format;
storing a pointer to the located node;
generating the branch quality factor by multiplying a quality factor associated with all nodes in the successful branch;
comparing the branch quality factor to the best branch quality factor generated previously;
storing the branch quality factor and the pointer to the located node if the branch quality factor is better than the best branch quality factor generated previously; and
proceeding back to the moving forward through a successful branch step unless there are no forward nodes.
-
-
11. The method of claim 10, wherein the quality factor associated with each node is stored in the family object associated with the node.
-
12. The method of claim 1, wherein each portion of memory associated with each node includes a next node pointer to a location in memory of the next node so that a contiguous forward link is provided from the first node generated in the generating a node in memory step to the last node of the last branch.
-
13. The method of claim 12, further comprising the step of discarding all nodes from memory using the contiguous forward link after the calculating the best path step.
-
14. The method of claim 12, wherein the portion of memory associated with each node includes a previous node pointer to the location of the previous node in a branch so that a backward link is provided for each branch.
-
15. The method of claim 14, wherein the calculating a best path step includes using the contiguous forward link and the backward link to traverse each branch.
-
16. The method of claim 1, wherein the computer file is a graphics file.
-
17. A computer readable memory comprising:
-
a computer-readable medium; and
a computer program encoded on the computer-readable medium for enabling a computer to control the conversion of a computer file from an input format to an output format by determining the best path for converting the file from the input format to the output format using family objects, the computer program comprising;
computer implemented instructions to receive and store the input format and the output format;
computer implemented instructions to generate a node in a computer system memory corresponding to each family object that can read the input format;
computer implemented instructions to generate successful branches of nodes in the computer system memory that include one or more nodes such that each successful branch includes a first node that can read the input format and a last node that can write the output format; and
computer implemented instructions to calculate a best path through the successful branches of nodes. - View Dependent Claims (18, 19, 20, 21)
computer implemented instructions to discard all nodes from the computer system memory after calculating the best path.
-
-
19. The computer readable memory of claim 17, wherein the computer implemented instructions to generate a node of the computer program further includes:
-
computer implemented instructions to locate a family object that can read the input format;
computer implemented instructions to allocate a portion of the computer system memory for the generated node;
computer implemented instructions to store a pointer to the located family object in the portion of the computer system memory for the generated node;
computer implemented instructions to determine if the located family object can write the output format and to store the result in the portion of computer system memory for the generated node;
computer implemented instructions to store the input format in the portion of computer system memory for the generated node;
computer implemented instructions to store a next node pointer to the generated node in the portion of computer system memory for the previously generated node; and
computer implemented instructions to proceed back to the computer implemented instructions to locate a family until all other family objects, that have not already been checked, have been located.
-
-
20. The computer readable memory of claim 17, wherein the computer program further includes:
computer implemented instructions to ensure that each portion of the computer system memory for each node includes a next node pointer to a location in the computer system memory of the next node so that a contiguous forward link is provided from the first node to the last node of the last branch.
-
21. The computer readable memory of claim 20, wherein the computer implemented instructions to ensure that each portion of the computer system memory for each node includes a next node pointer also ensures that the portion of computer system memory associated with each node includes a previous node pointer to the location of the previous node in a branch so that a backward link is provided for each branch.
-
22. A technology routing system using a computer to control the conversion of a computer file from an input format to an output format by determining the best path for converting the file from the input format to the output format using family objects, the system comprising:
-
a computer-readable medium;
a computer program encoded on the computer-readable medium; and
a processor responsive to the computer-readable medium as configured by the computer program to;
receive the input format and the output format;
generate a node in a memory of the computer for each family object that can read the input format;
generate successful branches of nodes in the memory of the computer that include one or more nodes such that each successful branch includes a first node that can read the input format and a last node that can write the output format; and
calculate a best path through the successful branches of nodes. - View Dependent Claims (23, 24, 25)
locate a family object that can read the input format;
allocate a portion of the memory of the computer for the generated node;
store a pointer to the located family object in the portion of the memory of the computer for the generated node;
determine if the located family object can write the output format and storing the result in the portion of memory of the computer for the generated node;
store the input format in the portion of memory of the computer for the generated node;
store a next node pointer to the generated node in the portion of memory of the computer for the previously generated node; and
proceed back to the locate a family object that can read the input format responsive step until all other family objects, that have not already been checked, have been located.
-
-
24. The system of claim 23, wherein the processor is responsive to generate successful branches of nodes in the memory of the computer that include one or more nodes such that each successful branch includes a first node that can read the input format and a last node that can write the output format, by being responsive to:
-
locate a node in the memory of the computer that includes a family object that can read the input format but cannot write the output format;
locate all family objects that are not already associated with a node in the branch and that can read a format that can be written by the family object associated with the located node; and
generate a new node in the memory of the computer corresponding to each of the located family objects.
-
-
25. The system of claim 22, wherein the computer file is a graphics file.
Specification