Image processing using a hierarchy of data processing nodes
Summary by NHIP
Hierarchical Node Image Editing
The apparatus processes image data defined by nodes in a hierarchy to generate frames and display editing tools. It automatically selects a top node of a specific layer containing the user-selected component, where a layer is a connected collection of nodes sharing a parent node.
Claim Score by NHIP
Abstract
A method of editing image data, wherein an image frame comprising a plurality of components is generated by processing a plurality of data processing nodes arranged in a hierarchical structure, said image frame is displayed to a user, said user manually selects one of said plurality of components for editing, a first data processing node considered to be appropriate to said component is selected and editing tools relevant to said first data processing node are displayed to said user.

Term
Projected expiry 27 December 2026.
- Priority
- Filed
- Granted
- Today
- Projected expiry
32 claims: 4 independent, 28 dependent
- 1Apparatus for processing image data comprising processing means, input means and display means, wherein said image data is defined by a plurality of data processing nodes arranged in a hierarchical structure and said processing means is configured to perform the steps of:generating a first two-dimensional (2D) image frame of a clip of image frames, wherein a plurality of image components makes up the first image frame, by means of processing said plurality of data processing nodes;outputting said first image frame to said display means;receiving, via said input means, first 2D user input data indicating one of said plurality of image components, wherein said first 2D user input data comprises x, y coordinate input data;in response to said receiving, automatically selecting a first data processing node used to generate said indicated image component;and displaying editing tools relevant to said first data processing node.
- 14Broadest claimClaim Score 59, broad(NHIP)A method of processing image data, wherein:a two-dimensional (2D) image frame of a clip of image frames, wherein a plurality of image components makes up the image frame, and wherein said image frame is generated by processing a plurality of data processing nodes arranged in a hierarchical structure;said image frame is displayed to a user;said user manually selects one of said plurality of image components for adjusting, wherein said manual selection comprises x, y coordinate input data;in response to said selecting, a first data processing node used to generate said image component is automatically selected;and editing tools relevant to said first data processing node are displayed to said user.
- 27In a computer system having a graphical user interface including a display and a user interface selection device, a method of processing image data, wherein a two-dimensional (2D) image frame of a clip of image frames, wherein a plurality of image components makes up the image frame, and wherein the image frame is generated by processing a plurality of data processing nodes arranged in a hierarchical structure;said image frame is displayed to a user by means of said display;said system responds to manual operation of said user interface selection device when said user manually selects one of said plurality of image components for adjusting by inputting x, y coordinate input data;in response to said manual selection, said system automatically identifies a first data processing node used to generate the image component that has been selected;and said system updates said graphical user interface to present editing tools relevant to said first data processing node.
- 31A computer-readable medium comprising a computer program storage device storing instructions that when read and executed by a computer, results in the computer performing a method for processing image data, the method comprising:generating a two-dimensional (2D) image frame of a clip of image frames, wherein a plurality of image components makes up the image frame, by processing a plurality of data processing nodes arranged in a hierarchical structure;displaying said image frame to a user;responding to a user's manual selection of one of said plurality of image components for adjustment, wherein said manual selection comprises x, y coordinate input data;in response to said selection, automatically identifying a first data processing node used to generate said image component that has been selected;and presenting editing tools relevant to said first data processing node to said user.
Independent claims4
172 paragraphs in 3 sections, as filed
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to processing image data defined by a hierarchical structure of data processing nodes.
2. Description of the Related Art
Many post production processes have been devised and employed over the years to enhance movie productions or video films with what is commonly referred to as “special effects”. Such image enhancement have long been provided by means of using dedicated hardware, either as a scale model to be filmed and subsequently composited in post production or, more recently, by means of effects generators such as computer apparatus configured to output rendered image components to be also subsequently composited.
Technical advances in image processing systems have enabled the generalisation of the “blue screen” technique in video environments and “green screen” technique in cinematographic environments, whereby actors are filmed in a studio configured with blue or green saturated surroundings in order to generate a clip of foreground image frames. An alternative clip of background image frames is subsequently generated and a compositing process allows an editor to seamlessly blend the foreground and background image frames by means of keying part of the corresponding video signals, for instance the luminance or chrominance signal.
A problem inherent to the above image processing techniques was that effects generation could not take place in real-time, that is all of the various components in each image frame within a clip of such image frames would have to be shot in the case of real actors and/or situations committed to cinematographic film, or rendered in the case of computer graphics images, prior to the compositing process. Thus, if the appearance of any of such image components was artistically unsatisfactory, the only possible manner of remedying this problem would be to do another shot on new cinematagraphic film or amend parameters in the computer to generate a new version of the computer-rendered image components.
Modern image processing systems overcome the above problem by means of providing real-time image data processing capability, whereby every image component within an image frame exists as a hierarchical sub-structure of data processing nodes within a main structure, which thus defines the entire image frame. An image editor using such a modern image processing system can amend parameters and/or data in any of said data processing nodes to aesthetically improve any image component within an image frame and assess the effectiveness of his editing in real-time.
A problem has however developed within modern image processing systems as described above. As the size of modern movie image frames or high definition video image frames has dramatically increased, both in resolution and in the number of components therein, their corresponding structure of data processing nodes and further user-operable controls to edit the data and/or parameters of said nodes in said image processing systems has also grown. Indeed; conventional display devices of image processing systems can barely accommodate such image frames at full resolution, which often exceeds 2000 by 2000 pixels. Moreover, a structure of data processing nodes corresponding to any such image frame often includes hundreds or even thousands of such nodes, to the extent that the readability of such a structure becomes problematic from a user's point of view when displayed as an alternative to said image frame.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
<figref idrefs="DRAWINGS">FIG. 1</figref> shows an image processing system operated by an editor;
<figref idrefs="DRAWINGS">FIG. 2</figref> details the hardware components of the image processing system of <figref idrefs="DRAWINGS">FIG. 1</figref> in further detail;
<figref idrefs="DRAWINGS">FIG. 3</figref> details the operational steps according to which a user operates the image processing system of <figref idrefs="DRAWINGS">FIGS. 1 and 2</figref>;
<figref idrefs="DRAWINGS">FIG. 4</figref> shows the contents of the main memory shown in <figref idrefs="DRAWINGS">FIG. 2</figref> subsequently to the instructions processing start shown in <figref idrefs="DRAWINGS">FIG. 3</figref>;
<figref idrefs="DRAWINGS">FIG. 5</figref> details the loading and processing of image data as described in <figref idrefs="DRAWINGS">FIG. 4</figref>;
<figref idrefs="DRAWINGS">FIG. 6</figref> shows the video display unit shown in <figref idrefs="DRAWINGS">FIG. 1</figref> as displaying an image frame within the graphical user interface (GUI) of the application shown in <figref idrefs="DRAWINGS">FIGS. 4 and 5</figref>;
<figref idrefs="DRAWINGS">FIG. 7</figref> shows a process tree as an example of the main structure shown in <figref idrefs="DRAWINGS">FIGS. 4 and 5</figref>;
<figref idrefs="DRAWINGS">FIG. 8</figref> provides a graphical representation of the data generated at each data processing node of the process tree shown in <figref idrefs="DRAWINGS">FIG. 7</figref> when said processing nodes are processed;
<figref idrefs="DRAWINGS">FIG. 9</figref> further details the main structure shown in <figref idrefs="DRAWINGS">FIGS. 4</figref>, <b>7</b> and <b>8</b> in terms of hierarchically structured data processing nodes;
<figref idrefs="DRAWINGS">FIG. 10</figref> shows the process tree shown in <figref idrefs="DRAWINGS">FIGS. 7</figref>, <b>8</b> and <b>9</b> within the GUI shown in <figref idrefs="DRAWINGS">FIG. 6</figref> according to the prior art;
<figref idrefs="DRAWINGS">FIG. 11</figref> details the operational steps according to which relevant image data is identified and edited;
<figref idrefs="DRAWINGS">FIG. 11</figref><i>a </i>details the operational steps according to which sub-structures of data processing nodes are identified;
<figref idrefs="DRAWINGS">FIG. 11</figref><i>b </i>details the operational steps according to which an image component is selected by means of its corresponding sub-structure;
<figref idrefs="DRAWINGS">FIG. 11</figref><i>c </i>details the operational steps according to which compatible data processing nodes are identified and selected in a different sub-structure;
<figref idrefs="DRAWINGS">FIG. 12</figref> shows the image frame within the graphical user interface (GUI) shown in <figref idrefs="DRAWINGS">FIG. 6</figref>;
<figref idrefs="DRAWINGS">FIG. 13</figref> shows the process tree shown in <figref idrefs="DRAWINGS">FIGS. 7</figref>, <b>8</b> and <b>9</b> within the GUI shown in <figref idrefs="DRAWINGS">FIG. 6</figref>;
<figref idrefs="DRAWINGS">FIG. 14</figref> shows the image frame within the graphical user interface (GUI) shown in <figref idrefs="DRAWINGS">FIG. 12</figref>, wherein navigation input data shown in <figref idrefs="DRAWINGS">FIG. 11</figref> has been provided;
<figref idrefs="DRAWINGS">FIG. 15</figref> shows the process tree shown in <figref idrefs="DRAWINGS">FIG. 13</figref>, wherein navigation input data shown in <figref idrefs="DRAWINGS">FIG. 11</figref> has been provided;
<figref idrefs="DRAWINGS">FIG. 16</figref> shows the image frame within the graphical user interface (GUI) shown in <figref idrefs="DRAWINGS">FIGS. 12 and 14</figref>, wherein alternative navigation input data shown in <figref idrefs="DRAWINGS">FIG. 11</figref> has been provided;
<figref idrefs="DRAWINGS">FIG. 17</figref> shows the process tree shown in <figref idrefs="DRAWINGS">FIGS. 13 and 15</figref>, wherein alternative navigation input data shown in <figref idrefs="DRAWINGS">FIG. 11</figref> has been provided;
<figref idrefs="DRAWINGS">FIG. 18</figref> shows an alternative embodiment of the navigation algorithm shown in <figref idrefs="DRAWINGS">FIG. 11</figref>;
<figref idrefs="DRAWINGS">FIG. 18</figref><i>a </i>details steps carried out in <figref idrefs="DRAWINGS">FIG. 18</figref> to select a top node;
<figref idrefs="DRAWINGS">FIG. 18</figref><i>b </i>details steps carried out in <figref idrefs="DRAWINGS">FIG. 18</figref> to perform vertical navigation; and
<figref idrefs="DRAWINGS">FIG. 18</figref><i>c </i>details steps carried out in <figref idrefs="DRAWINGS">FIG. 18</figref> to perform horizontal navigation.
WRITTEN DESCRIPTION OF THE BEST MODE FOR CARRYING OUT THE INVENTION
Embodiments of the invention will now be described by way of example only with reference to the previously identified drawings.
<figref idrefs="DRAWINGS">FIG. 1</figref>
An image processing system such as a post-production station is illustrated in <figref idrefs="DRAWINGS">FIG. 1</figref>. A processing system <b>102</b>, such as an Octane™ produced by Silicon Graphics Inc., supplies image signals to a display means, provided in this example by a video display unit <b>103</b>. Moving image data is stored on storage means, provided in this example by a redundant array of inexpensive discs (RAID) <b>104</b>. The RAID is configured in such a way as to store a large volume of data, and to supply this data at a high bandwidth, when required, to the processing system <b>102</b>. The operator controls the processing environment formed by the processing system <b>102</b>, the video monitor <b>103</b> and the RAID <b>104</b>, by means of a keyboard <b>105</b>, and a stylus-operated graphics tablet or a mouse <b>106</b>. The processing system shown in <figref idrefs="DRAWINGS">FIG. 1</figref> is optimal for the purpose of processing image and other high bandwidth data. In such a system, the instructions for controlling the processing system are complex. Any computer system where processing instructions are of significant complexity could be used.
Instructions controlling the processing system <b>102</b> may be installed from a physical medium such as a CDROM or DVD disk <b>107</b>, or over a network <b>108</b>, including the Internet. These instructions enable the processing system <b>102</b> to interpret user commands from the keyboard <b>105</b> and the graphics tablet <b>106</b>, such that image data, and other data, may be viewed, edited and processed.
<figref idrefs="DRAWINGS">FIG. 2</figref>
The processing system <b>102</b> shown in <figref idrefs="DRAWINGS">FIG. 1</figref> is detailed in <figref idrefs="DRAWINGS">FIG. 2</figref>. The processing system comprises firstly processing means, provided in this example by two central processing units (CPUs) <b>201</b> and <b>202</b> operating in parallel. Each of these processors is a MIPS R11000 manufactured by MIPS Technologies Incorporated, of Mountain View, Calif. Each of these processors <b>201</b> and <b>202</b> has a dedicated secondary cache memory <b>203</b> and <b>204</b> that facilitate per-CPU storage of frequently used instructions and data. Each CPU <b>201</b> and <b>202</b> further includes separate primary instruction and data cache memory circuits on the same chip, thereby facilitating a further level of processing improvement. A memory controller <b>205</b> provides a common connection between the processors <b>201</b> and <b>202</b> and a main memory <b>206</b>. The main memory <b>206</b> comprises two gigabytes of dynamic RAM.
The memory controller <b>205</b> further facilitates connectivity between the aforementioned components of the processing system <b>102</b> and a high bandwidth non-blocking crossbar switch <b>207</b>. The switch makes it possible to provide a direct high capacity connection between any of several attached circuits. These include a graphics card <b>208</b>. The graphics card <b>208</b> generally receives instructions from the processors <b>201</b> and <b>202</b> to perform various types of graphical image rendering processes, resulting in images, clips and scenes being rendered in real time on the monitor <b>102</b>. A high bandwidth SCSI bridge <b>209</b> provides an interface to the RAID <b>104</b>, and also, optionally, to a digital tape device, for use as backup.
A second SCSI bridge <b>210</b> facilitates connection between the crossbar switch <b>207</b> and a DVD/CDROM drive <b>211</b>. The DVD drive provides a convenient way of receiving large quantities of instructions and data, and is typically used to install instructions for the processing system <b>102</b> onto a hard disk drive <b>212</b>. Once installed, instructions located on the hard disk drive <b>212</b> may be fetched into main memory <b>206</b> and then executed by the processors <b>201</b> and <b>202</b>. An input output (I/O) bridge <b>213</b> provides an interface for the graphics tablet <b>106</b> and the keyboard <b>105</b>, through which the user is able to provide instructions to the processing system <b>102</b>.
<figref idrefs="DRAWINGS">FIG. 3</figref>
Processing system <b>102</b> is switched on by user <b>101</b> at step <b>301</b>, such that CPU instructions may be permanently loaded onto hard disk drive <b>212</b> or temporarily loaded within main memory <b>206</b> from CD ROM or DVD ROM <b>107</b>, network server <b>109</b> or the Internet <b>108</b>.
Upon completing the loading operation of step <b>302</b> the application starts at step <b>303</b>, whereby the instructions thereof are processed by CPUs <b>201</b> and <b>202</b>. At step <b>304</b>, image data from a single frame or, alternatively, from a clip of frames, is acquired from RAID <b>104</b> such that the frame or frames can be displayed to user <b>101</b> on video display unit <b>103</b> for subsequent editing at step <b>305</b>.
Upon observing the frame displayed at step <b>304</b>, user <b>101</b> is thus at liberty to modify any or all of the various components of the image data at step <b>305</b>. The final edited image data may eventually be stored at frame store <b>104</b> upon completing the required level of image data editing.
At step <b>307</b>, a question is asked as to whether the data for another image frame or another clip of image frames requires processing by image processing system <b>102</b>, whereby control is returned to step <b>304</b> such that a new frame or clip of frames can be acquired from RAID <b>104</b> if answered in the affirmative. Alternatively, if the question asked at step <b>307</b> is answered in the negative then user <b>101</b> is at liberty to eventually switch the image processing system <b>102</b> off at step <b>308</b>.
The contents of main memory <b>206</b> subsequent to the instruction processing of step <b>303</b> and image data acquisition of step <b>304</b> are further detailed in <figref idrefs="DRAWINGS">FIG. 4</figref>.
<figref idrefs="DRAWINGS">FIG. 4</figref>
An operating system is shown at <b>401</b> which comprises a reduced set of instructions for CPUs <b>201</b> and <b>202</b>, the purpose of which is to provide image processing system <b>102</b> with basic functionality. Examples of basic functions include access to files stored on hard disk drive <b>212</b> or DVD/CD ROM drive <b>211</b> and management thereof, network connectivity with frame store <b>104</b>, server <b>109</b> and the Internet <b>108</b>, interpretation and processing of the input from keyboard <b>105</b> and graphic tablet or mouse <b>106</b> and graphical data or binary data output. In the example, the operating system is IRIX™ provided by Silicon Graphics Inc; but it will be apparent to those skilled in the art that the instructions herein described may be easily adapted to function under different other known operating systems, such as Windows™ provided by the Microsoft Corporation of Redmond, Calif. or LINUX which is freely distributed.
An application is shown at <b>402</b> which comprises the instructions loaded at step <b>302</b> that enable the image processing system <b>102</b> to perform steps <b>303</b> to <b>307</b> within a specific graphical user interface displayed on VDU <b>103</b>.
Application data is shown at <b>403</b> and comprises various sets of user input-dependent data and user input-independent data according to which the application shown at <b>402</b> processes image data. Said application data primarily includes main structure data <b>404</b>, which references the entire history of the image data as loaded at step <b>304</b> and comprehensively defines each component within an image frame in terms of hierarchically-structured data processing nodes, an example of which will be described further below. Accordingly, application data <b>403</b> also includes data <b>405</b> defining the various types of data processing nodes present within the structure or which may be inserted therein as a consequence of image data editing.
Further to the main structure data <b>404</b> and nodes definition data <b>405</b>, application data <b>403</b> includes node data <b>406</b> to <b>411</b> to be processed in order to generate the current image frame, i.e. the parameters and data which, when processed by their respective data processing nodes generate the various components of said image frame.
In the example, node data comprises three-dimensional models <b>406</b> defined as a plurality of polygons or possibly non-uniform rational B-splines (NURBS). Node data also comprises bitmap files <b>407</b> to be applied as textures to said three-dimensional models <b>406</b> wholly or partially, and lightmaps <b>408</b>.
Node data also comprises three-dimensional positional data <b>409</b>, possibly in the form of vectors, to define scaling and tracking of said three-dimensional models <b>406</b> within a three-dimensional space. Node data also comprises RGB data <b>410</b> defining an image frame derived from film and digitally stored in RAID <b>104</b>. Node data finally comprises sound files <b>411</b>, for instance the portion of clip soundtrack corresponding to the image frame being edited. It will be easily understood by those skilled in the art that the above data types are for illustrative purposes only and the list described is non-exhaustive. Said data types relate to the type of data processing nodes required to define and generate the image frame components. There is currently a very large number of possibilities for data types, and in the future there may be an almost unlimited number.
Frame data is shown at <b>412</b>, which comprises user input independent data defining image frames acquired from frame store <b>104</b>. Each frame is defined by a ClipID <b>413</b> referencing a clip of frames and a FrameID <b>414</b> referencing a frame within said clip. Frame data <b>412</b> also includes frame resolution <b>415</b> indicating the frame size in terms of picture screen elements, known to those skilled in the art as pixels, such that application <b>402</b> may appropriately configure output data for display at full resolution.
Finally, user input data is shown at <b>416</b>, which comprises user input dependent data identifying parameters and/or data input by user <b>101</b> by means of keyboard <b>105</b> and graphic tablet or mouse <b>106</b> for the purpose of editing the above image data.
<figref idrefs="DRAWINGS">FIG. 5</figref>
The loading and processing of image data as described in <figref idrefs="DRAWINGS">FIG. 4</figref> at step <b>304</b> is further detailed in <figref idrefs="DRAWINGS">FIG. 5</figref>.
Initially the main structure <b>404</b> is loaded at step <b>501</b>, whereby all of the data processing nodes are initiated, along with node type data <b>405</b> and node data <b>406</b> to <b>411</b>. At step <b>502</b> said data processing nodes are processed according to the hierarchy defined by said main structure to generate image data, whereby all of the data processing nodes process their respective node data <b>406</b> to <b>411</b>. The totality of image components defined by said main structure <b>404</b> is thus output to VDU display <b>103</b> as an image frame for user <b>101</b> to subsequently edit at step <b>503</b>.
A question is asked at step <b>504</b> as to whether a new, node is required. User <b>101</b> may wish to impart some creative input to the image frame as it is currently defined, for instance by means of new visual effects or further components within the scene. If the question is answered in the affirmative, a data processing node is initiated at step <b>505</b>.
In this embodiment, said node may either already have been initiated according to step <b>501</b> or may be a new type of application-compatible node loaded from CD ROM or DVD ROM <b>107</b> or network server <b>109</b> or downloaded from the Internet <b>108</b>. Upon completing the initiation step <b>505</b>, the new data processing node is registered within the main structure <b>404</b> at step <b>506</b>, in terms of its dependency with regard to all of the other data processing nodes already referenced therein, a more detailed description of which will be provided further below. Alternatively, the question of step <b>504</b> is answered in the negative, whereby image data can now be edited according to step <b>305</b>.
<figref idrefs="DRAWINGS">FIG. 6</figref>
The image frame produced by generating image data according to step <b>502</b> for display according to step <b>503</b> is preferably output to the video display unit <b>103</b> of image processing system <b>102</b>, within a Graphical User Interface (GUI), which is shown in <figref idrefs="DRAWINGS">FIG. 6</figref>.
The GUI <b>601</b> of application <b>502</b> is divided into a plurality of functional areas, portions of which are user-operable. A first area <b>602</b> displays image data <b>603</b> acquired at step <b>304</b>. A second area <b>604</b> comprises user-operable conventional clip navigation widgets allowing user <b>101</b> to rewind <b>605</b>, backward play <b>606</b>, pause <b>607</b>, stop <b>608</b>, forward play <b>609</b> or fast-forward <b>610</b> the sequential order of image frames within a clip if user <b>101</b> acquired a clip at step <b>304</b>.
A counter area <b>611</b> is provided in close proximity to area <b>602</b> and divided into an hour counter <b>612</b>, minute counter <b>613</b>, seconds counter <b>614</b> and frame counter <b>615</b>, whereby said frame counter may operate in base twenty-four, base thirty or base sixty depending upon the provenance of the clip, eg respectively cinema, video or high definition TV. Said counter area <b>611</b> enables user <b>101</b> to accurately determine where the currently displayed image frame is located within the complete sequence of the clip.
A user-operable switch <b>616</b> is also provided within GUI <b>601</b>, the manipulation of which by user <b>101</b>, preferably but not exclusively via mouse <b>106</b>, allows GUI <b>601</b> to alternatively display the image frame <b>603</b> or a graphical representation of the corresponding main structure <b>404</b> defining the components thereof.
A user-operable conventional bar <b>617</b> of menu commands is provided in the left uppermost area of GUI <b>601</b>, which includes a plurality of shortcuts to facilitate frame or file access, application configuring and other such conventional application functions. A user-operable conventional bar <b>618</b> of GUI-sizing or application termination icons are provided in the right uppermost corner of <b>601</b>. The skilled reader will understand that this is an example only of a suitable GUI and that any way of displaying the required information could be used.
In the example, user <b>101</b> acquires data <b>403</b> and <b>412</b> defining image frame <b>603</b> from RAID <b>104</b> according to step <b>304</b>, whereby the components thereof are displayed in display area <b>602</b> of GUI <b>601</b> according to step <b>503</b>.
<figref idrefs="DRAWINGS">FIG. 7</figref>
A simplified example of a hierarchical structure <b>404</b> defining the components of image frame <b>603</b>, also known to those skilled in the art as an edit decision list or process tree, is shown in <figref idrefs="DRAWINGS">FIG. 7</figref>.
A process tree consists of hierarchical, sequentially-linked data processing nodes, each of which specifies a particular processing task required in order to eventually achieve image data or scene output data <b>701</b>, for instance under the form of frame <b>603</b>. Traditionally, an output sequence <b>701</b> will comprise both visual data and audio data. Accordingly, the scene will thus require the output from an image-keying node <b>702</b> and the output of a sound mixing node <b>703</b>. The image-keying node <b>702</b> calls on a plurality of further graphic data processing nodes to obtain all of the input data it requires to generate the desired image components. In effect, all of the nodes in the process tree define ‘branches’ of parent and children nodes and sub-divisions thereof and, insofar as the graphical nodes of the tree shown in <figref idrefs="DRAWINGS">FIG. 7</figref> are concerned, each branch of nodes born from the ultimate graphical parent node <b>702</b> defines a layer. The purpose of image-keying node <b>702</b> is thus to composite the layers, e.g. superimpose the four layers shown in the example, which are further detailed below.
In the example, the desired output image frame includes a three-dimensional computer generated object composited with a background also consisting of a plurality of three-dimensional objects superimposed over a background texture.
The image-keying node <b>702</b> thus initially requires a frame as RGB data <b>410</b> from frame node <b>704</b>, which is subsequently processed by a colour-correction processing node <b>705</b> and subjected to positional data <b>409</b> of a motion tracking processing node <b>706</b>. The composited three-dimensional model <b>406</b> generated by three-dimensional modelling node <b>707</b>, to which is applied a bitmap file <b>407</b> as a texture by the texturing node <b>708</b> and appropriate lightmap <b>408</b> by artificial light processing node <b>709</b>, is scaled by scaling node <b>710</b> and also subjected to positional data <b>409</b> of a motion tracking processing node <b>711</b>, such that it is seamlessly composited within the colour corrected frame <b>704</b>.
In so far as, the background is concerned, the image keying processing node <b>702</b> also requires a uniform texture <b>407</b> from a texturing node <b>712</b>, the functionality of which is similar to the texturing node <b>708</b>, to which is applied the colour-correction of a colour-correction processing node <b>713</b>, the functionality of which is similar to node <b>705</b>. The image-keying processing node <b>702</b> finally overlays the plurality of simple three-dimensional models <b>406</b> generated from the three-dimensional modelling node <b>714</b>, which are appropriately lit with lightmaps <b>408</b> by the artificial light processing node <b>715</b> and motion-tracked with positional data <b>409</b> by means of the motion-tracking processing node <b>716</b>, over the colour corrected-texture <b>711</b> before overlaying the composited frame of node <b>704</b> on top of the composited background. The scene <b>701</b> is completed by associating the output of sound mixing node <b>703</b> with the output of image-keying node <b>702</b>.
Thus the user sees a number of components making up the image frame. Each component is defined, by a number of nodes making up a layer. A hierarchical structure such as herein described can be considered to be made up of sub-structures, and in this example the sub-structure used is a layer. It will be noted that a layer may comprise further layers, for example the layer with node <b>702</b> as its top node includes the four layers described above. Thus it is possible for a sub-structure to be contained within another sub-structure, although in other embodiments the sub-structures may be discrete.
<figref idrefs="DRAWINGS">FIG. 8</figref>
It is common for process trees such as detailed in <figref idrefs="DRAWINGS">FIG. 7</figref> to incorporate hundreds and even thousands of logically-linked data processing nodes configured as parent processing nodes and children processing nodes, each of which symbolises a functionality applied to some form of data or other.
The respective output data of each parent and child node <b>701</b> to <b>716</b> of the process tree detailed in <figref idrefs="DRAWINGS">FIG. 7</figref> are graphically shown in <figref idrefs="DRAWINGS">FIG. 8</figref> in order to illustrate the application data <b>403</b> processed at step <b>502</b>.
The generation of all of the image components requires processing of all of the data processing nodes within the process tree. Said processing begins at the leftmost last child node <b>704</b>, whereby an operational function of said child node <b>704</b> is invoked in order to fetch a frame <b>801</b>, which depicts a real aeroplane photographed in front of a blue or green background in order to facilitate subsequent keying processes, depending upon whether the image was respectively shot for video or cinematography.
Node <b>705</b> is a parent node of node <b>704</b> and subsequently pulls the frame <b>801</b> from node <b>704</b>, and its colour correction operational function modifies the colour <b>802</b> of said frame by applying a processing rule to the RGB values of every pixel in said frame. It is known to parent node <b>705</b> that frame <b>801</b> comprises a finite number of pixels corresponding to the resolution of frame <b>801</b> as the definition <b>412</b> of the frame is an array of pixels and its resolution <b>415</b> is for instance the number of pixels in a 24D high-definition cinematographic frame. The parent node <b>706</b> of node <b>705</b> subsequently pulls the data of said node and calls an operational function designed to orient the colour-corrected frame within a three dimensional volume <b>803</b>.
The next layer depending from the parent node <b>702</b> is followed and thus proceeds to node <b>707</b>, whereby a three dimensional computer generated model <b>406</b> of a plane is generated as component <b>804</b> by operational functions of said node <b>707</b>. Its parent node <b>708</b> subsequently pulls said three-dimensional computer-generated model <b>804</b> in order to apply a “steel” bitmap texture <b>805</b> to each polygon of said three-dimensional model. It is known to node <b>708</b> that the three-dimensional model is composed of polygons defined by tessellating the smallest components of the model, which are vertices.
Processing node <b>709</b> subsequently applies an artificial lighting algorithm <b>408</b> at <b>806</b> to the textured three-dimensional model and processing node <b>710</b> can subsequently scale the lit (<b>806</b>), textured (<b>805</b>) three-dimensional model <b>804</b> at <b>807</b>. The parent node <b>711</b> of node <b>710</b> subsequently pulls the data of said node and calls an operational function designed to animate the composited plane <b>807</b> within a three dimensional volume <b>808</b>, known to those skilled in the art as motion-tracking.
With respect to the topmost graphical parent node <b>702</b> within the process tree, two further layers respectively defined by nodes <b>712</b>, <b>713</b> and <b>714</b> to <b>716</b> have to be processed before it pulls the input data and processes said data itself. A “sky” bitmap texture <b>809</b> is thus generated by node <b>712</b> which is subsequently colour-corrected at parent node <b>713</b> using the same operational function as was invoked by colour-correction processing node <b>705</b> to process the frame <b>801</b>.
Similarly, a computer-generated three-dimensional “clouds” model <b>811</b> is generated by node <b>714</b> utilising potentially the same operational function as was invoked by node <b>707</b> to generate the “plane” three dimensional model. The three-dimensional model <b>811</b> is subsequently lit (<b>812</b>) at parent node <b>715</b> using potentially the same lighting algorithm of the operational function called at node <b>709</b>. The lit (<b>812</b>) three-dimensional model <b>810</b> is subsequently motion-tracked (<b>813</b>) at processing node <b>716</b> utilising the same operational functions invoked by processing nodes <b>706</b>, <b>711</b> in order to eventually match the motion of the real and composited planes with the composited clouds.
Upon completing the processing <b>813</b> at node <b>716</b>, the parent node <b>702</b> is thus able to pull all of the input data <b>801</b> to <b>813</b> and process it in order to generate a composite frame <b>814</b> comprising four components, within which two planes appear superimposed over a sky and clouds. Sound data <b>815</b> will then be processed by node <b>703</b>, whereby output node <b>701</b> outputs the two components of final graphic data <b>814</b> and sound data <b>815</b> as an image frame <b>816</b>.
<figref idrefs="DRAWINGS">FIG. 9</figref>
The main structure data <b>404</b> shown in <figref idrefs="DRAWINGS">FIG. 4</figref> and further illustrated in <figref idrefs="DRAWINGS">FIG. 7</figref> is shown in greater detail in <figref idrefs="DRAWINGS">FIG. 9</figref> to better describe the hierarchical structure of data processing nodes it comprises. The hierarchy shown in <figref idrefs="DRAWINGS">FIGS. 7 and 8</figref> is merely a way of displaying the nodes so that the parents and children of each node can be easily seen. However, the actual hierarchical structure is the table as shown in <figref idrefs="DRAWINGS">FIG. 9</figref>.
In this embodiment, each data processing node is referenced with a node ID <b>901</b> and is referenced as either a parent node <b>902</b>, a child node <b>903</b> or a combination thereof, as the case may be. Each data processing node is further referenced by means of its type data <b>405</b> at <b>904</b> and its function-specific input data type <b>406</b> to <b>411</b> is similarly referenced at <b>905</b>.
The main structure <b>404</b> shown in <figref idrefs="DRAWINGS">FIG. 9</figref> takes the form of a database for illustrative purposes only, as it will be apparent to those skilled in the art that any other referencing structure providing for the hierarchical structuring of data processing nodes is suitable.
In this embodiment, the node ID <b>901</b> is generated during the first processing step <b>502</b> according to the processing order outlined in <figref idrefs="DRAWINGS">FIGS. 7 and 8</figref>, whereby the parent dependencies <b>902</b> and children dependencies <b>903</b> of each data processing nodes are generated and subsequently updated in real-time. Thus, in the example, the first node accessed at processing step <b>502</b> is the scene node <b>701</b> to which a node ID <b>906</b> is affixed. The next processing node accessed at said processing step <b>502</b> is data processing node <b>702</b> to which node ID <b>907</b> is affixed.
Data processing node <b>702</b> is a child node of data processing node <b>701</b>, whereby the parent dependency <b>908</b> of said parent node <b>701</b> is updated and the child dependency <b>909</b> of said data processing node <b>702</b> is similarly updated.
Thus, for each subsequent data processing node sequentially accessed during said processing step <b>502</b>, a new node ID is provided and the respective parent dependencies and child dependencies updated according to the principle outlined above, as are the corresponding node type <b>904</b> and node data type <b>905</b> populated, until such time as the entire main structure, or process tree, have been processed once. Preferably, one such processing cycle takes place within one thirtieth of a second.
<figref idrefs="DRAWINGS">FIG. 10</figref>
Upon completing the processing step <b>502</b> and thus the registration of the parent and children data processing nodes as shown in <figref idrefs="DRAWINGS">FIG. 9</figref> in order to establish their hierarchy, image data processing system <b>102</b> can provide a depiction of the image frame <b>603</b> in terms of a hierarchy of data processing nodes, which is shown in <figref idrefs="DRAWINGS">FIG. 10</figref>.
In the example, user <b>101</b> provides first user input data <b>416</b> to the effect of activating user-operable switch <b>616</b>, the processing of which instructs image data processing system <b>102</b> to alternate the display mode in display area <b>602</b> from frame display mode to structure display <b>1001</b>, whereby said user operable switch <b>616</b> also alternates to user operable switch <b>1002</b> which, when activated, alternates said structure display <b>1001</b> back to frame display <b>602</b>, wherein data processing nodes <b>701</b> to <b>716</b> are processed to display rendered image components according to steps <b>502</b>, <b>503</b>.
In the example, the activation of user operable switch <b>616</b> generates structure display <b>1001</b>, whereby the entire main structure <b>404</b> is graphically depicted, thus including data processing nodes <b>701</b> to <b>716</b> as a hierarchical structure of logically-linked data processing nodes, preferably but not necessarily including a graphical representation of their corresponding respective output data <b>801</b> to <b>816</b>.
Those skilled in the art will appreciate that the structure shown in <figref idrefs="DRAWINGS">FIGS. 7</figref>, <b>8</b> and <b>10</b> is herein kept to an overly simplistic scale for the purpose of clarity in the present description as compared to traditional structures comprising at the very least hundreds of such hierarchically structured data processing nodes. Consequently, they will be well aware of the inherent difficulty in intuitively and rapidly identifying a particular data processing node, the parameters and data of which require editing, for instance to remove artifacts visible in image frame <b>603</b>, implement additional effects or components (such as adding a third plane) or, more generally, simply to adjust the overall appearance of image frame <b>603</b> for aesthetic reasons.
According to the prior art, in order to edit the process tree a user would be presented with the entire structure <b>404</b> defining image frame <b>603</b>. User <b>101</b> would have to be familiar with the main structure <b>404</b> and its operating principle as described in <figref idrefs="DRAWINGS">FIGS. 7 and 8</figref>. Said user <b>101</b> would then have to identify the required data processing nodes from amongst all of said data processing nodes. Upon eventually identifying said relevant data processing node, said user would then select said node and amend the parameters or data thereof.
Thus, according to the known prior art, if user <b>101</b> needs to edit the positional data <b>409</b> processed by tracking node <b>711</b> in order to improve the motion of what is initially a three-dimensional model <b>804</b> within frame <b>603</b>, user <b>101</b> would have to identify and subsequently select said node <b>711</b> within structure <b>404</b> as displayed in GUI area <b>1001</b>.
Similarly, if user <b>101</b> needs to modify the artificial lighting applied to said model <b>804</b> at lighting node <b>709</b> using a light map <b>408</b>, user <b>101</b> would need to identify and subsequently select said lighting node <b>709</b> within the main structure <b>404</b> as shown in GUI area <b>1001</b>. It can, thus be appreciated that in an apparatus configured to the known prior art, or when using a method according to the known prior art, identifying and selecting a relevant data processing node from amongst hundreds or, more realistically, thousands of such logically-linked data processing nodes is unintuitive and time-consuming. It is even more difficult if the data is edited by a user who did not originally create it. Modern requirements for ever-more sophisticated effects applied to talents or environments or objects within a frame such as frame <b>603</b> compound the above problem, insofar as said effects require an ever increasing number of data processing nodes.
<figref idrefs="DRAWINGS">FIG. 11</figref>
This problem is remedied by providing a method of intuitively identifying and selecting any data processing node within main structure <b>404</b>. The processing steps according to which image data is edited at step <b>305</b> are further detailed in <figref idrefs="DRAWINGS">FIG. 11</figref>.
In the example, user <b>101</b> is a post-production image editing specialist who wishes to improve the motion of the second background plane within frame <b>603</b>, initially generated from a three-dimensional model <b>406</b> together with its artificial lighting generated from a light map <b>408</b>. At step <b>1101</b> user <b>101</b> selects said second plane as an image component within image frame <b>603</b> within GUI <b>602</b>, whereby corresponding first user input data <b>416</b> is received and image processing application <b>402</b> firstly identifies all of the data processing nodes as belonging to sub-structures, in this example layers, within main structure <b>404</b>. First user input data <b>416</b> is then processed such that the image component of choice is selected at step <b>1102</b>.
According to this embodiment of the invention, although user <b>101</b> actually selects any one of the plurality of data processing nodes the processing of which generates said second plane within image frame <b>603</b>, it is irrelevant which specific data processing node within said sub-group is selected, since application <b>402</b> eventually selects the first data processing node at step <b>1103</b> within the sub-structure identified at step <b>1102</b>.
In effect, at said step <b>1103</b> application <b>402</b> identifies the top node of only the layer defining the image component selected at step <b>1101</b>, e.g. the first data processing node which defines a new layer or sub-structure after the keyer node <b>702</b>. In the example, said last data processing node is tracking node <b>711</b>. The fact that the tracking node has been selected is communicated to the user by displaying tools suitable for adjusting the tracking parameters of the selected component.
A question is asked at the next step <b>1104</b> as to whether navigation input data has been received, i.e. whether application <b>402</b> has received further user input data <b>416</b> indicative of a decision that the currently selected data processing node <b>711</b> is not the data processing node required for editing. In this embodiment, said navigation input data is provided by means of a specific keystroke on keyboard <b>105</b> or mouse button activation on mouse <b>106</b>, but it will be apparent to those skilled in the art that any type of input device is appropriate to generate such navigation input data.
If the question of step <b>1104</b> is answered in the affirmative, a second question is asked at step <b>1105</b> as to whether the navigation input data received corresponds to linear navigating amongst parent and children nodes of a same layer, as first selected at step <b>1102</b>. If this question is answered in the affirmative, the next data processing node in the sub-structure identified at step <b>502</b> is selected at step <b>1106</b> which, in the example, is the scaling node <b>710</b>. A representation of the selected node is displayed to the user. Control is then returned to step <b>1104</b>.
Alternatively, the question asked at step <b>1105</b> is answered in the negative, to the effect that the navigation input data corresponds to transversal navigating amongst compatible children nodes of a different layer, whereby said nodes are referred to as siblings in this embodiment. The user would input this data when he wishes to edit nodes referring to a different component. In this case a sibling is identified at step <b>1107</b> in a different sub-structure and control returned to question <b>1104</b>, such that navigation within said different sub-structure and node selection therein is now possible. Again a representation of the selected node is displayed.
When the question asked at step <b>1104</b> is eventually answered in the negative, a third question is asked at step <b>1108</b> as to whether application <b>402</b> has received selection input data. Said selection input data is again user input data <b>416</b> but differs from the navigation input data of question <b>1104</b> in that it is processed by application <b>402</b> for updating application data <b>406</b> to <b>411</b> to be processed by the data processing node selected at step <b>502</b>. Said selection input data is again read from keyboard <b>105</b> or mouse <b>106</b> or a combination thereof, but question <b>1108</b> is only answered in the affirmative if said input data differs from the pre-set navigation input data of questions <b>1104</b>, e.g. input data read at question <b>1108</b> differs from the keystroke or mouse click input to effect navigation at question <b>1104</b>.
Thus, when question <b>1108</b> is answered in the affirmative, the editing of parameters and/or data is initiated at step <b>1109</b> for the currently selected data processing node, and the edited image data may eventually be stored according to step <b>306</b>. Alternatively, question <b>1108</b> is answered in the negative whereby the edited image data may immediately be stored according to step <b>306</b>.
<figref idrefs="DRAWINGS">FIG. 11</figref><i>a </i>
The operational steps according to which, sub-structures of data processing nodes are identified at step <b>1101</b> are further described in <figref idrefs="DRAWINGS">FIG. 11</figref><i>a</i>. At step <b>1111</b> recurring child node references are identified within the main structure as repeated occurrences of the dependency of data processing nodes on a parent data processing node. Thus, in the example, the first level of sub-structural division is based upon the dependency of image keying node <b>702</b> shown at <b>907</b> with a child node reference <b>909</b> and sound mixing node <b>703</b> with a node ID <b>901</b> equal to 0016 and an identical child node reference equal to 0001, respectively children of scene output node <b>701</b> shown at <b>906</b>.
The next level of sub-structural division is obtained by identifying the recurring graphic child node reference <b>903</b> equal to 0002. Upon completing the above identification step, a boundary is set for each sub-structure, or layer, at step <b>1112</b> based upon said identified recurring graphic child node reference, whereby a precise identification of each substructure presence within main structure <b>404</b> is made possible and accomplished at step <b>1113</b>. Referring back to <figref idrefs="DRAWINGS">FIG. 9</figref>, four substructures each defining a separate image component are identified, the respective first parent node of which are tracking node <b>706</b> (node ID <b>0003</b>), tracking node <b>711</b> (node ID <b>0006</b>), colour correction node <b>713</b> (node ID <b>0011</b>) and tracking node <b>716</b> (node ID <b>0013</b>).
<figref idrefs="DRAWINGS">FIG. 11</figref><i>b </i>
The operational steps according to which an image component is selected by means of its corresponding sub-structure at step <b>1102</b> are further described in <figref idrefs="DRAWINGS">FIG. 11</figref><i>b</i>. At step <b>1121</b>, the x, y input data <b>416</b> read at step <b>1101</b> is processed in order to identify which sub-structure defines the selected image component. It was previously explained that the precise identification of a specific data processing node within the substructure is irrelevant as it is the ultimate parent node within the substructure which is eventually selected by means of processing the node's dependencies within said substructure. Thus, as the x, y input data <b>416</b> is processed to identify a specific node, its ultimate parent node is eventually identified as shown at <b>1121</b>, wherein in the example the lighting node <b>709</b> (node ID <b>0008</b>) is derived from said input data processing, its dependencies processed and its ultimate parent node tracking node <b>711</b> (node ID <b>0006</b>) selected thus identifying the selected image component as belonging to layer 2. The selected node is therefore the top node of layer 2, which is node <b>711</b>.
In this embodiment the top node of the layer defining the component is selected. This is because it is usually the last editing applied to the component and therefore the one the user is most likely to wish to, change or view. In alternative embodiments (not shown), however, another node in the layer could be selected. In particular a bottom node could be selected, which would represent the most basic part of the component. For example, in the current layer it would be node <b>707</b> that would be selected, This is the basic 3-D model of the plane and further upwards navigation from this point would show the order in which editing and effects are applied to that model. In more complicated process trees there is likely to be more than one bottom node to a layer and so possibly the first could be chosen. Alternatively, the last node above the start of another layer, within the selected layer could be chosen. The skilled reader will appreciate that the exact node considered appropriate to the component indicated by the user input could be any of the nodes in the layer, as long as the selection is consistent between components. For example, a user-defined setting in the application could define whether the top, bottom, or another node is to be selected.
<figref idrefs="DRAWINGS">FIG. 11</figref><i>c </i>
The operational steps according to which compatible data processing nodes are identified and selected in a different sub-structure at step <b>1107</b> are further described in <figref idrefs="DRAWINGS">FIG. 11</figref><i>c</i>. At step <b>1131</b>, the node type <b>904</b> of the data processing nodes selected at step <b>1103</b> is read in main structure <b>404</b> and the next substructure is selected at step <b>1132</b>, preferably by identifying the ultimate parent node of the current substructure and identifying the ultimate parent node of the next substructure.
At step <b>1133</b>, the equivalent data processing node is selected in the new layer selected at step <b>1132</b>, preferably by means of processing the same number of dependencies, whereby the respective node type <b>904</b> of the initial data processing node read at step <b>1131</b> and the sibling data processing node read at step <b>1133</b> are compared for type match at step <b>1134</b>. A question is subsequently asked at step <b>1135</b> in order to determine if said respective node types <b>904</b> match. If the question of step <b>1135</b> is answered in the negative, the next dependent node will be selected at step <b>1133</b> for node type matching at step <b>1134</b>, for instance, if various other functionalities are invoked by means of data processing nodes with a different node type between the substructure defining node and the sibling node in said next layer. The question of step <b>1135</b> is eventually answered in the affirmative, whereby control returns to the question of step <b>1105</b>, e.g. whether navigation input data has been received or not.
<figref idrefs="DRAWINGS">FIG. 12</figref>
The graphical user interface <b>601</b> of application <b>402</b> is shown in <figref idrefs="DRAWINGS">FIG. 12</figref>, wherein user <b>101</b> has selected the second aeroplane as an image component of image frame <b>603</b> according to step <b>1101</b>.
In this embodiment, the data processing nodes <b>707</b>, <b>708</b>, <b>709</b> and <b>711</b> are identified at step <b>1101</b> as the sub-structure of nodes generating the second plane as an image component of image frame <b>603</b> and the tracking node <b>711</b> is selected as the ultimate processing node applied to said image component according to step <b>1103</b>.
Consequently, until such time as application <b>402</b> receives either navigation input data, the effect of which would be to select the next node <b>710</b> within said sub-structure, or selection input data, the effect of which would be to initiate the editing of the current parameters and/or data of tracking node <b>711</b>, an indication of said parameters and data specific to the functionality of the current selected node <b>711</b> is provided within image data <b>603</b>. Said representation includes a vector <b>1201</b>, the direction of which depicts the direction of travel of the plane within a reference, three-dimensional space <b>1202</b> and the length of which depicts the velocity of said plane.
A three-dimensional cubic volume <b>1203</b> encompasses the plane within said three-dimensional reference space <b>1202</b> to depict more intuitively the offset angle between the relative floor of space <b>1202</b> as defined by axes x and z and the wing span of the three-dimensional model corresponding to said plane.
Navigation user input data may now be provided as an answer to question <b>1104</b>, preferably within the same sub-structure as an answer to question <b>1105</b>, whereby parameters and data combinations <b>1201</b> to <b>1203</b> specifically relating to the functionality of tracking node <b>711</b> would be replaced by a representation of parameters and data combinations specific to the next data processing structure <b>710</b>, ie specific to the editing of parameters and/or data relating to the scaling of the plane within the reference three-dimensional space <b>1202</b> and so on and so forth until the process selects the last child node <b>707</b> within said sub-structure, whereby editing of parameters and/or data could for instance include the generation of a completely different type of plane as an alternative three-dimensional model <b>406</b>.
Thus in addition to the image frame a representation of a selected node is displayed. Further examples below will show that there are many ways in which the selected node can be represented. These examples are not exhaustive. Additionally, in this example it is the node at the top of the selected layer that is represented, but clearly this is not mandatory. In an alternative embodiment a node at the bottom of the layer, that is a node without children, is selected. Also, if a different algorithm using a different type of sub-structure of the tree, ie not a layer as in this example, were used in another embodiment of the invention, the selection of node could be dependent upon this.
<figref idrefs="DRAWINGS">FIG. 13</figref>
The user <b>101</b> of image processing system <b>102</b> may prefer to edit the parameters and data graphically represented at <b>1201</b> to <b>1203</b> in more detail than can be perceived in GUI <b>601</b> as shown in <figref idrefs="DRAWINGS">FIG. 12</figref>, and thus application <b>402</b> may receive user input data <b>416</b> to the effect that the user operable switch <b>616</b> is activated such that the sub-structure of data processing nodes identified according to step <b>1102</b> is displayed within structure display area <b>1001</b>. A graphical representation of said structure display area <b>1001</b> after said user input data is received is shown in <figref idrefs="DRAWINGS">FIG. 13</figref>.
In the example, user <b>101</b> selects the second plane as described in <figref idrefs="DRAWINGS">FIG. 12</figref> but subsequently activates user operable switch <b>616</b> before inputting navigation input data according to question <b>1104</b> or selection input data according to question <b>1108</b>, whereby frame display area <b>602</b> alternates to structure display area <b>1001</b> and said user operable switch <b>616</b> alternates to user operable switch <b>1002</b>. The main structure <b>404</b> is culled according to step <b>1122</b> and the ultimate data processing node is selected in the sub-structure of data processing nodes defining said selected second plane, whereby only said sub-structure is graphically displayed at <b>1301</b>, which only comprises data processing nodes <b>711</b> to <b>707</b> in accordance with the example previously described in <figref idrefs="DRAWINGS">FIG. 12</figref>.
The selected first data processing node <b>711</b> is highlighted such that image editor <b>101</b> is immediately made aware of which type of parameters and/or data he may initiate the editing of according to step <b>1109</b>. Thus in this case the representation of a selected data processing node includes a depiction of a sub-structure of the hierarchy, in this example a layer, with the selected node indicated by highlighting. Said data processing node highlighting is provided here only as an example and it will be readily apparent to those skilled in the art that any other alternative providing a similar functionality is here envisaged.
Application <b>402</b> generates a display area <b>1302</b> for parameters and data, corresponding to said selected data processing node which in the example is tracking node <b>711</b>. Depending upon the processing functionality provided by said selective node, said parameters and data display area <b>1302</b> may vary to a large extent. Preferably, area <b>1302</b> clearly identifies tracking node <b>711</b> by means of its corresponding node type data <b>405</b> referenced at <b>904</b>, as well as its various parameters <b>1303</b> and parameter data <b>1304</b>.
User <b>101</b> may input selection input data according to question <b>1108</b> within parameter data <b>1304</b>, within which data corresponding to graphical representations <b>1201</b> to <b>1203</b> are shown for the purpose of clarity. Application <b>402</b> may at any time receive user input data <b>416</b> to the effect of either editing parameter <b>1303</b> or editing parameter data <b>1304</b>, or to the effect of navigating further within sub-structure <b>1301</b> in accordance with processing steps described in <figref idrefs="DRAWINGS">FIG. 11</figref>, or to the effect that user operable switch <b>1002</b> has been activated and this alternates structure display area <b>1001</b> back to image frame display area <b>602</b>, the generation of the image components of which would thus incorporate any editing implemented within parameters <b>1303</b> and/or parameter data <b>1304</b>.
<figref idrefs="DRAWINGS">FIG. 14</figref>
The graphical user interface <b>601</b> of application <b>402</b> is again shown in <figref idrefs="DRAWINGS">FIG. 14</figref>, wherein user <b>101</b> has selected the second plane as an image component of image frame <b>603</b> according to step <b>1101</b> and subsequently provided application <b>402</b> with navigation input data according to question <b>1104</b> in order to edit the lighting data of lighting node <b>709</b>.
It was previously explained that the data processing nodes <b>707</b>, <b>708</b>, <b>709</b>, <b>710</b> and <b>711</b> are identified at step <b>1101</b> as the sub-structure of nodes generating the second plane as an image component of image frame <b>603</b> and the tracking node <b>711</b> is selected as the ultimate processing node applied to said image component according to step <b>1103</b>.
Consequently, when application <b>402</b> receives navigation input data indicating two movements “down”, the effect of which in this example is to select the node <b>709</b> that is adjacent to and below the currently selected node, a graphical representation of said parameters and data specific to the functionality of the selected node <b>709</b> is provided within image data <b>603</b>. Said representation includes a spotlight <b>1401</b> indicative of the type of lightmap <b>408</b> said second plane is processed with. Said representation also includes a focus area <b>1402</b> and corresponding light cone <b>1403</b> respectively depicting the focus of spotlight <b>1401</b> and the lighting energy provided thereto, within the reference three-dimensional space <b>1202</b>. Finally, said representation includes a user-operable colour selector <b>1404</b> with which to intuitively select appropriate RGB colour data for said lightmap. User <b>101</b> has therefore rapidly identified the relevant data processing node and may now input selection input data according to steps <b>1108</b> and <b>1109</b>, thus intuitively editing parameters and/or data to be processed by the selected lighting node <b>709</b> to improve the characteristics of the selected image component.
Thus, after a node considered appropriate to the component indicated by the user is selected, tools relevant to the selected node are displayed. Such tools could take any form. The example shown here allows intuitive editing of the selected node and thus the component, but a simple display of buttons or parameters, as will be shown in <figref idrefs="DRAWINGS">FIG. 15</figref>, would also suffice. In this example the tools serve a dual function of allowing the node to be edited but also giving a clear indication of the type of node selected and the component that it defines; thus allowing easy navigation through the process tree while keeping the display relatively simple. However other tools, for example a combination of a textual display of the node type, a toolbox or menu and a highlighting of the component that the node defines, could also be appropriate.
<figref idrefs="DRAWINGS">FIG. 15</figref>
The user <b>101</b> of image processing system <b>102</b> may prefer to edit the parameters and data graphically represented at <b>1401</b> to <b>1404</b> in more detail than can be perceived in <figref idrefs="DRAWINGS">FIG. 14</figref> and thus application <b>402</b> may receive user input data <b>416</b> to the effect that the user operable switch <b>616</b> is activated such that the sub-structure of data processing nodes identified according to step <b>1101</b> is displayed within structure display area <b>1001</b>. A graphical representation of the structure display area <b>1001</b> depicting the image data editing shown in <figref idrefs="DRAWINGS">FIG. 14</figref> is shown in <figref idrefs="DRAWINGS">FIG. 15</figref>.
In the example, user <b>101</b> again selects the second plane as described in <figref idrefs="DRAWINGS">FIG. 12</figref> but subsequently activates user operable switch <b>616</b> before inputting navigation input data according to question <b>1104</b>, whereby frame display area <b>602</b> again alternates to structure display area <b>1001</b> and said user operable switch <b>616</b> alternates to user operable switch <b>1002</b>. The main structure <b>404</b> is culled according to step <b>1122</b>, whereby only said sub-structure is graphically displayed at <b>1501</b>, which only comprises data processing nodes <b>707</b> to <b>711</b> in accordance with the example previously described.
In structure display area <b>1001</b>, the selected last data processing node <b>711</b> is highlighted such that image editor <b>101</b> is immediately made aware of which type of parameters and/or data he may initiate the editing thereof according to step <b>1109</b>. User <b>101</b> however wishes to edit the parameter data of lighting node <b>709</b> and thus provides application <b>402</b> with navigation input data at <b>1104</b> until such time as said data processing node <b>709</b> is highlighted. If the user switches to display <b>1001</b> after inputting the navigation data according to the question asked at step <b>1104</b>, the display may automatically highlight node <b>709</b>, or ignore the previous navigation, highlight node <b>711</b> as the top node as the top node of the layer and require navigation within the alternative GUI.
Application <b>402</b> again generates a parameters and data display area <b>1302</b> corresponding to said selected data processing node <b>709</b>. As the processing functionality provided by said selected node differs from the processing functionality of node <b>711</b>, said parameters and data display area <b>1302</b> varies to a large extent from that shown in <figref idrefs="DRAWINGS">FIG. 13</figref>. Preferably, area <b>1302</b> clearly identifies tracking node <b>709</b> by means of its corresponding node type data <b>405</b> referenced at <b>904</b>, as well as its various parameters <b>1502</b> and parameter data <b>1503</b>.
User <b>101</b> may input selection input data according to question <b>1108</b> within parameter data <b>1503</b>, within which data corresponding to graphical representations <b>1401</b> to <b>1404</b> are shown for the purpose of clarity. Application <b>402</b> may at any time receive user input data <b>416</b> to the effect of either editing parameters <b>1502</b> or editing parameter data <b>1503</b>, or to the effect of further navigating within sub-structure <b>1501</b> in accordance with processing steps described in <figref idrefs="DRAWINGS">FIGS. 11 to 14</figref>, or to the effect that user operable switch <b>1002</b> has been activated and this alternates structure display area <b>1001</b> back to image frame display area <b>602</b>, the generation of the image components of which would thus incorporate any parameters or data editing implemented within parameters <b>1502</b> or parameter data <b>1503</b>.
<figref idrefs="DRAWINGS">FIG. 16</figref>
The graphical user interface <b>601</b> of application <b>402</b> is again shown in <figref idrefs="DRAWINGS">FIG. 16</figref>, wherein user <b>101</b> has selected the tracking node <b>706</b> eventually applied to frame data <b>801</b> as a sibling of tracking node <b>711</b> eventually applied to 3D model data <b>804</b>.
The provision for transversal navigation allows the editor <b>101</b> to intuitively and rapidly edit the data and parameters of a plurality of data processing nodes respectively belonging to separate sub-structures, the functionality of which is comparable. In the example, editor <b>101</b> has edited parameter data <b>1304</b> processed by tracking node <b>711</b> in frame view, but now wishes to edit the similar parameter data processed by tracking node <b>706</b> to fine-tune the relative positioning between the film-based plane and the 3D-modelled plane in the output image frame. Upon accomplishing the procedural steps described in <figref idrefs="DRAWINGS">FIG. 12</figref>, the currently selected data processing node is therefore tracking node <b>711</b>.
Upon inputting corresponding navigation input data <b>416</b> interpreted at question <b>1105</b> as selecting a different sub-structure, data processing node <b>716</b> is identified as the next sibling node featuring comparable data type <b>904</b> in main structure <b>404</b> to the currently selected node. Node <b>716</b> motion-tracks the 3D-modelled clouds, but editor <b>101</b> wishes to edit data pertaining to the generation of the first plane, therefore further navigation input data <b>416</b> is input to be interpreted at question <b>1105</b> as selecting a different sub-structure, whereby data processing node <b>706</b> is identified as the next sibling node featuring comparable data type <b>904</b> in main structure <b>404</b>, which orientates the plane frame <b>801</b> within, the three-dimensional reference space <b>1202</b>.
The representation of the functionality, parameters and data of tracking node <b>706</b> includes a two-dimensional plane <b>1601</b> encompassing the frame within said three-dimensional reference space <b>1202</b> to depict more intuitively the offset angle between the relative floor of space <b>1202</b> as defined by the x and z axes and the frame <b>801</b>. Said representation also includes a vector <b>1602</b>, the direction of which shows the direction of travel of the frame within said reference three-dimensional space <b>1202</b> and the length of which depicts the velocity of said frame.
Navigation user input may now be provided as an answer to question <b>1104</b>, whereby parameters and data combinations <b>1201</b> to <b>1203</b> specifically relating to the functionality of tracking node <b>706</b> would be replaced by graphical representation of parameters and data combinations specific to the next data processing nodes <b>705</b> or <b>704</b>, ie specific to the editing of parameters and data relating to the colour of the frame within the reference three-dimensional space <b>1202</b> or specific to the generation of a completely different frame.
<figref idrefs="DRAWINGS">FIG. 17</figref>
The user <b>101</b> of image processing system <b>102</b> may prefer to edit the parameters and data graphically represented at <b>1601</b> and <b>1602</b> in more detail than can be perceived as graphically depicted in <figref idrefs="DRAWINGS">FIG. 16</figref> and thus application <b>402</b> may receive user input data <b>416</b> to the effect that the user operable switch <b>616</b> is activated such that the sub-structure of data processing nodes identified according to step <b>1101</b> is displayed within structure display area <b>1001</b>. A graphical representation of said structure display area <b>1001</b> is shown in <figref idrefs="DRAWINGS">FIG. 17</figref>.
In the example, user <b>101</b> selects the second plane as described in <figref idrefs="DRAWINGS">FIG. 12</figref> but subsequently activates user operable switch <b>616</b>, whereby sub-structure <b>1301</b> is initially displayed as only comprising data processing nodes <b>707</b> to <b>711</b> in accordance with the example previously described in <figref idrefs="DRAWINGS">FIG. 13</figref>. However, user <b>101</b> wishes to select sibling node <b>706</b> as described in <figref idrefs="DRAWINGS">FIG. 16</figref> and thus imparts navigation input data interpreted at question <b>1105</b> as navigating in a different sub-structure.
The main structure <b>404</b> is therefore eventually culled according to step <b>1122</b> when data processing node <b>706</b> is selected as heading the next sub-structure <b>1701</b> at step <b>1132</b>, and further highlighted when selected as sibling because its data type is matched against the data type of node <b>711</b> according to step <b>1135</b>. User <b>101</b> is again immediately made aware of which type of parameters and/or data he may initiate the editing thereof according to step <b>1109</b>. Moreover, he is also immediately aware that edits will be performed for a different data processing node applied to a different image component, as the displayed topography of the sub-structure has changed.
Application <b>402</b> again generates a parameters and data display area <b>1702</b> corresponding to, said selected data processing node <b>706</b>. User <b>101</b> may input selection input data according to question <b>1108</b> within parameter <b>1703</b>, within which data <b>1704</b> corresponding to graphical representations <b>1601</b> and <b>1602</b> are shown for the purpose of clarity. Application <b>402</b> may at any time receive user input data <b>416</b> to the effect of either editing parameter parameters <b>1703</b> or editing parameter data <b>1704</b>, or to the effect of navigating further within sub-structure <b>1701</b> in accordance with processing steps described in <figref idrefs="DRAWINGS">FIG. 11</figref>, or to the effect that user operable switch <b>1002</b> has been activated and this alternates structure display area <b>1001</b> back to image frame display area <b>602</b>, the generation of the image components of which would thus incorporate any editing implemented within parameters <b>1703</b> and/or parameter data <b>1704</b>.
<figref idrefs="DRAWINGS">FIG. 18</figref>.
An alternative embodiment of the algorithm shown in <figref idrefs="DRAWINGS">FIG. 11</figref> is shown in <figref idrefs="DRAWINGS">FIG. 18</figref>. In the algorithm in <figref idrefs="DRAWINGS">FIG. 11</figref> “sibling navigation” can mean navigating from one layer to the next between similar node types, independent of whether the nodes navigated between share the same parent. This requires identification of each layer before navigation can take place. The algorithm shown in <figref idrefs="DRAWINGS">FIG. 18</figref> only allows sibling navigation between true siblings, that is nodes that share a parent. This makes the navigation less easy but does not require that the entire process tree be divided into sub-structures and thus simplifies the algorithm.
At step <b>1801</b> user <b>101</b> selects an image component within image frame <b>603</b> within GUI <b>602</b>, for example the second plane, whereby corresponding first user input data <b>416</b> is received. The selection of the component will trigger a selection of a node within the layer defining the component. The main structure is then processed such that the top node of the layer is selected at step <b>1802</b>. In the example, said top data processing node is tracking node <b>711</b>. The fact that the tracking node has been selected is communicated to the user by displaying tools suitable for adjusting the tracking parameters of the selected component.
Similarly to the embodiment shown in <figref idrefs="DRAWINGS">FIG. 11</figref>, although user <b>101</b> in effect selects any one of the plurality of data processing nodes the processing of which generates said second plane within image frame <b>603</b>, it is irrelevant which specific data processing node within the sub-structure is selected, since application <b>402</b> eventually selects the top data processing node. However the method of selecting the node differs, as will be described further below with reference to <figref idrefs="DRAWINGS">FIG. 18</figref><i>a. </i>
A question is asked at the next step <b>1803</b> as to whether navigation input data has been received, i.e. whether application <b>402</b> has received further user input data <b>416</b> indicative of a decision that the currently selected data processing node <b>711</b> is not the data processing node required for editing.
If the question of step <b>1803</b> is answered in the affirmative, a second question is asked at step <b>1804</b> as to whether the navigation input data received corresponds to linear navigating amongst parent and children nodes. If this question is answered in the affirmative, the next data processing node in the sub-structure identified at step <b>502</b> is selected at step <b>1805</b>. A representation of the selected node is displayed to the user. Control is then returned to step <b>1803</b>.
Alternatively, the question asked at step <b>1804</b> is answered in the negative, to the effect that the navigation input data corresponds to transversal navigating amongst siblings. The user would input this data when he wishes to edit nodes referring to a different component. In this case a sibling is selected at step <b>1806</b> and control returned to question <b>1803</b>, such that navigation within the different layer now selected is now possible. Again a representation of the selected node is displayed.
When the question asked at step <b>1803</b> is eventually answered in the negative, a third question is asked at step <b>1807</b> as to whether application <b>402</b> has received selection input data. Said selection input data is again user input data <b>416</b> but differs from the navigation input data of question <b>1803</b> in that it is processed by application <b>402</b> for updating application data <b>406</b> to <b>411</b> to be processed by the data processing node selected at step <b>502</b>. Question <b>1807</b> is only answered in the affirmative if said input data differs from the pre-set navigation input data of questions <b>1803</b>, e.g. input data read at question <b>1807</b> differs from the keystroke or mouse click input to effect navigation at question <b>1803</b>.
Thus, when question <b>1807</b> is answered in the affirmative, the editing of parameters and/or data is initiated at step <b>1808</b> for the currently selected data processing node, and the edited image data may eventually be stored. Alternatively, question <b>1807</b> is answered in the negative whereby the edited image data may immediately be stored.
<figref idrefs="DRAWINGS">FIG. 18</figref><i>a </i>
<figref idrefs="DRAWINGS">FIG. 18</figref><i>a </i>details steps carried out at step <b>1802</b> to select the first node in the layer defining the image component selected by the user at step <b>1801</b>. In this algorithm the layers are not specifically identified, but the top node of a layer is discovered by finding the closest node above the node identified at step <b>1801</b> that has the same parent node as at least one other node, ie that starts a new layer. This identifies the layer that defines the identified component. Again, in other embodiments it could be a different node in the layer that is selected. This algorithm can easily be adapted to find, for example, a bottom node (a node without children), the last node before the start of another layer (a node with more than one child) and so on.
At step <b>1811</b> the parent of the selected node is identified and at step <b>1812</b> a question is asked as to whether the parent node's ID <b>901</b> recurs in the table shown in <figref idrefs="DRAWINGS">FIG. 9</figref>. If this question is answered in the affirmative then the selected node is in fact the top node of a layer and step <b>1802</b> is complete. If it is answered in the negative then the parent is selected at step <b>1813</b> and control is returned to step <b>1811</b>, at which the next parent is identified. In this way the top node of the layer is ultimately selected.
<figref idrefs="DRAWINGS">FIG. 18</figref><i>b </i>
<figref idrefs="DRAWINGS">FIG. 18</figref><i>b </i>details steps carried out at step <b>1805</b> to select the next node in the sub-structure when, vertical navigation within a layer is indicated by the user input data. Exactly which node is selected depends upon whether the navigation input indicates “up” or “down”: “up” navigation will select the parent of the currently selected node, and “down” navigation will select a child of the currently selected node.
Hence at step <b>1821</b> a question is asked as to whether the navigation input indicated “up” navigation. If this question is answered in the affirmative then the parent of the currently selected node is selected at step <b>1822</b>. If it is answered in the negative, to the effect that the navigation is “down”, then the first child of the node is selected at step <b>1823</b>.
<figref idrefs="DRAWINGS">FIG. 18</figref><i>c </i>
<figref idrefs="DRAWINGS">FIG. 18</figref><i>c </i>details steps carried out at step <b>1806</b> to select a sibling if the user input data indicates transversal or horizontal navigation. At step <b>1831</b> the parent of the currently selected node is identified and at step <b>1832</b> a question is asked as to whether the parent node's ID <b>901</b> recurs in the table shown in <figref idrefs="DRAWINGS">FIG. 9</figref>. If this question is answered in the negative then the message “NO SIBLINGS” is displayed to the user at step <b>1833</b>, to indicate that transversal navigation is not currently possible since the node does not have any true siblings. If it is answered in the affirmative then the next node that has the same parent is selected at step <b>1834</b>. In either case step <b>1806</b> is completed and control returns to step <b>1803</b> to await further input. If the sibling selected is not the one required by the user then further user input data indicating transversal navigation will cycle through the siblings until the one required is selected.
The two embodiments herein described are not exhaustive of the examples of algorithms that could be used to embody the present invention. The skilled reader will appreciate that any method of selecting a node relevant to a user-selected component and displaying editing tools relevant to that node would be suitable.
In view of the above, one or more embodiments of the invention provide an apparatus, method, and computer-readable medium configured to process image data. The computer-readable medium comprises a computer program storage device storing instructions that when read and executed by a computer, results in the computer performing a method for processing image data.
Contents3
25 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| EP0718796A2 | Cites | European Patent Office (EPO) | Applicant |
| EP0865001A2 | Cites | European Patent Office (EPO) | Applicant |
| EP0899694A1 | Cites | European Patent Office (EPO) | Applicant |
| EP0969387A2 | Cites | European Patent Office (EPO) | Search report |
| US2002047869A1 | Cites | United States of America | Search report |
| US2002051005A1 | Cites | United States of America | Search report |
| US2002054112A1 | Cites | United States of America | Search report |
| US2002069218A1 | Cites | United States of America | Search report |
| US2002075327A1 | Cites | United States of America | Search report |
| US2002112237A1 | Cites | United States of America | Search report |
| US2002135621A1 | Cites | United States of America | Search report |
| US2004125124A1 | Cites | United States of America | Search report |
| US2005010876A1 | Cites | United States of America | Search report |
| US2006090141A1 | Cites | United States of America | Search report |
| US5825944A | Cites | United States of America | Search report |
| US5913063A | Cites | United States of America | Search report |
| US5923328A | Cites | United States of America | Search report |
| US6028602A | Cites | United States of America | Search report |
| US6055515A | Cites | United States of America | Search report |
| US6070167A | Cites | United States of America | Search report |
| US6130676A | Cites | United States of America | Search report |
| US6252597B1 | Cites | United States of America | Search report |
| US6271846B1 | Cites | United States of America | Search report |
| US6343377B1 | Cites | United States of America | Search report |
| US6496208B1 | Cites | United States of America | Search report |
| US6571253B1 | Cites | United States of America | Search report |
| US6577807B1 | Cites | United States of America | Search report |
| US6633308B1 | Cites | United States of America | Search report |
| US6714201B1 | Cites | United States of America | Search report |
| US6717596B1 | Cites | United States of America | Search report |
| US6750890B1 | Cites | United States of America | Search report |
| US6868525B1 | Cites | United States of America | Search report |
| US6983420B1 | Cites | United States of America | Search report |
| US6993773B2 | Cites | United States of America | Search report |
| WO9917228A1 | Cites | World Intellectual Property Organization (WIPO) | Search report |
4 members in 2 offices
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 0216844 | United Kingdom | A | |
| 0216844 | United Kingdom | A | |
| 02168441 | – | – | – |
| GB20020016844 | – | – | – |
Members4
| Document | Office | Kind | |
|---|---|---|---|
| GB2391150A | United Kingdom | A | |
| US2004051728A1 | United States of America | A1 | |
| GB2391150B | United Kingdom | B | |
| US8028232B2This record | United States of America | B2 |
94 transactions on the USPTO file
Allowed after 5 non-final rejections, 3 final rejections, 1 RCE and 2 appeals.
- Non-final rejections
- 5
- Final rejections
- 3
- RCEs
- 1
- Appeals
- 2
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 12th Year, Large EntityM1553 | M1553 | |
| Payment of Maintenance Fee, 8th Year, Large EntityM1552 | M1552 | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mailing Corrected Notice of AllowabilityMCNOA | MCNOA | |
| Reasons for AllowanceEX.R | EX.R | |
| Corrected Notice of AllowabilityCNOA | CNOA | |
| Workflow - Drawings FinishedDRWF | DRWF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Appeal Brief Review CompleteAPBR | APBR | |
| Appeal Brief FiledAP.B | AP.B | |
| Notice of Appeal FiledN/AP | N/AP | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Appeal Brief Review CompleteAPBR | APBR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Appeal Brief FiledAP.B | AP.B | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Notice of Appeal FiledN/AP | N/AP | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Mail Notice of Withdrawn ActionMW/AC | MW/AC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Withdrawing/Vacating Office Action LetterW/AC | W/AC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Affidavit(s) (Rule 131 or 132) or Exhibit(s) ReceivedAF/D | AF/D | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Mail Advisory Action (PTOL - 303)MCTAV | MCTAV | |
| Advisory Action (PTOL-303)CTAV | CTAV | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Final ActionA.NE | A.NE | |
| Mail Final Rejection (PTOL - 326)Final rejectionMCTFR | MCTFR | |
| Final RejectionFinal rejectionCTFR | CTFR | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Request for Foreign Priority (Priority Papers May Be Included)RQPR | RQPR | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Change in Power of Attorney (May Include Associate POA)PA.. | PA.. | |
| Correspondence Address ChangeC.AD | C.AD | |
| IFW TSS Processing by Tech Center CompleteTSSCOMP | TSSCOMP | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Return from OIPEWROIPE | WROIPE | |
| Application Return TO OIPEROIPE | ROIPE | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application Is Now CompleteCOMP | COMP | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| A statement by one or more inventors satisfying the requirement under 35 USC 115, Oath of the ApplicOATHDECL | OATHDECL | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
13 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Surcharge for late paymentSULP | SULP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 08028232
- Publication, DOCDB
- 8028232
- Publication, EPODOC
- US8028232
- Application
- 10619758
- Application, DOCDB
- 61975803
- Application, EPODOC
- US20030619758
Titles
- English
- Image processing using a hierarchy of data processing nodes
Patent term adjustment
- A delay
- +919 daysthe office missed an examination deadline
- B delay
- +745 dayspendency past three years
- Overlap
- −251 daysdelays counted once
- Applicant delay
- −152 days
- Net adjustment
- 1,261 days
Classification
- CPC, 7
- G06T19/00
- G06T17/005
- G06T2200/24
- G06T2210/61
- G11B20/0021
- G11B27/034
- G11B27/36
- IPC, 5
- G06F3 00
- G06F3 01
- G06T19 00
- G11B27 034
- G11B27 36
- USPC, 3
- 715713000
- 715716000
- 715726000