Patent Publication Number: US-8984025-B1

Title: Method and apparatus for processing a transform function, a reference file and parameter information that represent a data file

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     Embodiments of the present invention generally relate to data protection and storage systems and, more particularly, to a method and apparatus for processing a transform function and parameter information that represent data files and achieve a reduction of an amount of storage space required for backup and restoration of the data files. 
     2. Description of the Related Art 
     In various industries, a large number of data files are created and stored for different applications. The data files may be auto-generated files, such as two dimensional and/or three dimensional image files, video files, and the like. In order to store such auto-generated files, a significant amount of storage space is required. For example, design and manufacturing processes in various industries (e.g., automotive, aerospace, shipbuilding, architecture and construction and industrial equipment, and the like) require a significant amount of storage space for auto-generated files. 2D/3D Computer Aided Design (CAD) and Computer Aided Manufacturing (CAM) files are created and stored in different views and forms at different stages. Similarly other industries, such as medicine and entertainment; create and store various views, forms and stages of data for images and videos files. 
     Most of these files are auto-generated based on a certain original input file (i.e., reference file) and a number of transform functions and parameter information. Generally, the transform functions and parameter information may include various functions, such as vector functions (e.g., scale, adjust, color and/or the like), projections, filters, views, textures and/or the like. For example, CAD (computer aided design) files and CAM (computer-aided manufacturing) files represent designs for various structures (e.g., buildings, mechanical components and the like) in which each design is simply a transformation of a reference design (file) using various parameters. 
     The data files (e.g., auto-generated files, vector graphics files and/or the like) consume a significant amount of resources in terms of time, space and network bandwidth during performance storage management operations, such as in back-up and archiving operations. Moreover binary comparison techniques are unable to work on various instances because the data obtained out of the applying the transform functions and parameter information on the reference file (i.e., original input file) result in a new data file. 
     Therefore, there is a need in the art for a method and apparatus for processing a transform function, a reference file and parameter information that represent data files in order to achieve a reduction of an amount of storage space required for backup and restoration of the data files. 
     SUMMARY OF THE INVENTION 
     Embodiments of the present invention comprise a method and apparatus for processing a transform function, a reference file and parameter information that represent data files. In one embodiment, a method for using a transform function and parameter information to reduce an amount of storage space associated with data files comprising processing at least one data file to identify a reference file, a transform function and parameter information and storing the transform function and the parameter information, wherein the transform function and the parameter information is applied to the reference file to create the at least one data file. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments. 
         FIG. 1  is a block diagram of a computing device in accordance with one or more embodiments of the present invention; 
         FIG. 2  is a flow diagram of a method for storing a file in accordance with one or more embodiments of the present invention; and 
         FIG. 3  is a flow diagram of a method for reducing a size of a file for storage in a storage sub-system in accordance with one or more embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION 
       FIG. 1  is a block diagram of a computing device in accordance with one or more embodiments of the present invention. The system  100  includes a storage subsystem  102  and a client  104 , coupled to each other through a network  106 . The storage subsystem  102  includes various data storage devices, such as optical storage drives (CD, DVD), magnetic tape drives, hard disk drives, storage arrays (e.g., a RAID configuration) and/or the like. The storage subsystem  102  may form a portion of a Storage Area Network (SAN). The storage subsystem  102  further includes parameter information  120  and a transform function  122 . As explained below, the parameter information  120  and the transform function  122  are used to represent auto-generated data during archival, backup and/or restoration. 
     The client  104  is a computing device (e.g., laptop, desktop, Personal Digital Assistant (PDA)) that comprises a Central Processing Unit (CPU)  108 , support circuits  110 , and a memory  112 . The CPU  108  may comprise one or more conventionally available microprocessors. The various support circuits  110  are well known circuits used to promote functionality of the CPU  108 . Such circuits include but are not limited to a cache, power supplies, clock circuits, input/output (I/O) circuits, and the like. The memory  112  is coupled to the CPU  108  and may comprise Random Access Memory (RAM), Read Only Memory (ROM), removable disk memory, flash memory, and various combinations of these types of memory. The memory  112  is sometimes referred to as main memory and may, in part, be used as cache memory or buffer memory. The memory  112  further includes various software packages, such as content creation software  114 , a coordination module  118  and data protection software  119 . The memory  112  further includes various data, such as data files  116 . 
     The network  106  comprises a communication system that connects a computer system by wire, cable, fiber optic and/or wireless link facilitated by various types of well-known network elements, such as hubs, switches, routers, and the like. The network  106  may employ various well-known protocols to communicate information amongst the network resources. For example, the network  106  may be a part of the internet or intranet using various communications infrastructure such as Ethernet, WiFi, WiMax, General Packet Radio Service (GPRS), and the like. 
     In one embodiment, the content creation software  114  (e.g., a tool) is configured to provide the data files  116 , such as design files, image files, video files and/or the like, to support small or large scale industrial projects. For example, a structural design file defines details of a structure (e.g., a building) that may be modeled using the content creation software  114 . In one embodiment, the design file comprises a structure file generated by the CAD/CAM software. The data files  116  may or may not be auto-generated. One or more embodiments of the present invention described herein may be applied to files that are not auto-generated but may be represented by the transform function  120  and the parameter information  122 , such as vector files (i.e., vector graphics files). As used herein, the vector files refer to files that comprise data in a vector format. 
     The data files  116  (e.g., auto-generated files) may be provided using the transform function  122 , the reference file  121  and the parameter information  120 . For example, when an image is to be transformed to a different color, the transform function is the color transform, the parameter information  120  includes the details of the color and the reference file  121  associated with the image itself. In another example with respect to medical images, fast-Fourier transforms, wavelet transforms and/or the like are applied to convert time signal representation of the image to the frequency domain. Also parameter information  120 , such as grey scale intensity of each pixel, noise levels and/or the like, that may also be extracted from the image. The transform function  120  may also be a geometric transformation (e.g., scale, rotate, skew and/or the like). 
     The coordination module  118  is configured to identify the transform function  122  and the parameter information  120  for each of the data files  116 . In a further embodiment, the coordination module  118  is configured to identify the content creation software  114  (e.g., a tool used to generate the data files  116 ). Generally, the tool is an application that generates and/or manages the data files  116 . The coordination module  118  queries the tool to obtain various information, such as information embedded in the data files  116  and information stored by the tool in a well-known database. In one embodiment, the coordination module  118  queries the tool to identify the transform function  122  and the parameter information  120 . For example, if the data files  116  include an image file, the coordination module  118  is configured to identify the transform function used on the image. The coordination module  118  is also configured to extract parameter information  120 , such as gray scale intensity, noise levels, and the like. In other embodiment, the coordination module  118  queries the tool to identify the reference file  121 . For example, the coordination module  118  identifies the reference file  121  based on a size or a type of the reference file  121 . 
     The data protection software  119  is configured to back up the transform function  122  and the parameter information  120  on the storage subsystem  102 . The transform function  122  and the parameter information  120  may be transmitted to the storage subsystem  102  via the network  106 . In another embodiment, the data protection software  119  stores the reference file  121 . In an embodiment, the data protection software  119  is configured to restore the data files  116  by retrieving the transform function  122  and the parameter information  120  from the storage subsystem  102 . 
       FIG. 2  is a flow diagram of a method  200  for processing an auto-generation transform and parameter information associated with auto-generated files in accordance with one or more embodiments of the present invention. The method  200  starts at step  202  and proceeds to step  204 , at which auto-generated files (e.g. the data files  116 ) are processed. At step  206  a reference file, a transform function (e.g. the transform function  122 ) and parameter information (e.g. the parameter information  120 ) is identified. At step  208 , the transform function and the parameter information is stored in a storage subsystem (e.g. the storage subsystem  102 ) during a backup process. At step  210 , the reference file is also stored during the backup process. At step  212 , a tool associated with the auto-generated files is also stored. In some embodiments, steps  210  and  212  are optional steps. Furthermore, the auto-generated files may be backed up without the reference file and/or the tool. 
     At step  214 , a determination is made whether one or more of the auto-generated files are to be restored. If one or more of the auto-generated files are to be restored (option “YES”) then the method  200  proceeds to step  216 . If the one or more of the auto-generated files are not to be restored (option “NO”) then the method  200  proceeds to step  224 . At step  216 , the transform function and the parameter information is retrieved. At step  218 , the transform function and the parameter information are applied on the reference file. At step  220 , the auto-generated files are restored. At step  222 , the tool and the reference file and/or the tool are restored. The method  200  proceeds to step  224  at which the method  200  ends. In an embodiment, by storing only the transform function and the parameter information, the space required to store a significant number of the auto-generated files is reduced. 
       FIG. 3  is a flow diagram of a method  300  for reducing a size of a file for storage in a storage sub-system in accordance with one or more embodiments of the present invention. The method  300  starts at step  302  and proceeds to step  304  at which, two structural design files are selected. In an embodiment, the structural design files include CAD/CAM files. At step  306 , geometric parameters and topology parameters are compared. In an embodiment, the geometric parameters may include a type and a number of one or more geometric entities and the topological parameters may include information on a relationship between one or more geometric entities, and the like. In an embodiment of the present invention, the step  304  and the step  306  provide the functionality of the step  204  of the method  200 . At step  308 , a determination is made whether there is a match between two files exists. If a match between two files exists (option “YES”), then the method  300  proceeds to step  310 . In an embodiment, a match exists if the first structural design file and the second structural design file is a part of the same design. If a match between two files does not exists (option “NO”), then the method  300  proceeds to step  314 . At step  310 , transformation parameters are determined. In one embodiment, the transformation parameters are computed by applying a transform function to the geometric parameters and the topological parameters. At step  312 , the transformation parameters and a reference file (e.g., a first structural design file) is stored. The method  300  proceeds to step  314  at which the method  300  ends. 
     The above described embodiments of the invention offer various advantages, such as effective storage of large data files as well as efficient restoration of such large data files. Since only the transform function and the parameter information are used to store the file in the storage sub-system, the size required to the store the file is substantially reduced. Thus, for an image that is to be stored in various colors, only the original image (e.g., reference image), the transform function (e.g., a color change transform) and the parameter information (i.e., various colors) are to be stored as opposed to storing the same image in different colors. In another embodiment, for an image sequence, only a first image (e.g., reference image) and one or more transformation parameters (e.g., motion vectors) are to be stored. 
     While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.