Patent ID: 7873260

Claim:
A system for modifying video comprising: a filter stack configured to store a first set of user input specifying filter operations, including a first filter operation, to be carried out on a video clip; a filter registry having stored therein information on a plurality of filter functions, wherein the plurality of filter functions comprises one or more software filters executable on a computer processor and one or more hardware filters executable on video processing circuitry, wherein the plurality of filter functions comprises at least two filter functions, each of which is configured to perform the first filter operation, wherein the at least two filter functions include at least one hardware filter usable to perform the first filter operation and at least one software filter usable to perform the first filter operation; a filter planner configured to use information received from the filter stack and the filter registry to generate a filter plan specifying a first set of filter functions executable to perform the filter operations specified by the first set of user input, wherein the filter planner is configured to select the first set of filter functions from among the plurality of filter functions to achieve a first optimization of the filter operations specified by the first set of user input, wherein the filter planner is configured to generate at least a portion of the filter plan by selecting between the at least two filter functions to perform the first filter operation, and wherein operation of the filter planner is transparent to a user of the system; a filter executor configured to receive the filter plan from the filter planner and to control the first set of filter functions according to the filter plan to carry out filter operations specified by the first set of user input on the video clip; and a nonlinear video editor including a storage containing video data, the computer processor, and the video processing circuitry, wherein the video processing circuitry is configured to randomly access video data from the storage to output video clips.