Multiframe rendering of video data on a general purpose computer
First Claim
1. A method for allocating memory for processing video data, comprising:
- determining an amount of available memory;
determining, for each operation in a combination of at least two operations, a maximum number of samples of the video data that can be processed by the operation while the available memory is apportioned among the at least two operations, wherein determining the maximum number of samples comprises;
determining a maximum number of buffers used by operations in any branch of a tree that represents the combination of the at least two operations;
dividing the amount of available memory by the maximum number of buffers to determine a maximum buffer size; and
dividing the maximum buffer size by a size of each sample of the video data to provide a number of samples each operation can process using the available memory; and
allocating the available memory according to the determined maximum number of samples of the video data that can be processed by each operation while the available memory is apportioned among the at least two operations.
7 Assignments
0 Petitions
Accused Products
Abstract
Processing video data with a combination of one or more operations, such as special effects, on a general-purpose computer may be improved by enabling one or more operations to access and process multiple samples of video data from other operations that introduce latencies for each request for data. Operations that introduce latencies include, for example, hardware for decompression and compression, network interfaces, and file systems. Because a computer program to implement the operations may be executed on several different general-purpose platforms, exact specifications of available hardware are not known in advance. For each operation, a computer program determines the available system memory and an amount of data that can be processed by each operation used in a composition or portion of a composition while sharing the available memory with other operations. Available system memory is allocated among the operations being used.
-
Citations
11 Claims
-
1. A method for allocating memory for processing video data, comprising:
-
determining an amount of available memory;
determining, for each operation in a combination of at least two operations, a maximum number of samples of the video data that can be processed by the operation while the available memory is apportioned among the at least two operations, wherein determining the maximum number of samples comprises;
determining a maximum number of buffers used by operations in any branch of a tree that represents the combination of the at least two operations;
dividing the amount of available memory by the maximum number of buffers to determine a maximum buffer size; and
dividing the maximum buffer size by a size of each sample of the video data to provide a number of samples each operation can process using the available memory; and
allocating the available memory according to the determined maximum number of samples of the video data that can be processed by each operation while the available memory is apportioned among the at least two operations. - View Dependent Claims (2)
determining a minimum from among maximum amounts of data that can be provided by any of the at least two operations; and
limiting the determined number of samples by the determined minimum.
-
-
3. A computer program product comprising:
-
a computer readable medium;
computer program instructions stored on the computer readable medium that when executed by the computer instruct the computer to perform a process for allocating memory for processing video data, comprising;
determining an amount of available memory;
determining, for each operation in a combination of at least two operations, a maximum number of samples of the video data that can be processed by the operation while the available memory is apportioned among the at least two operations, wherein determining the maximum number of samples comprises;
determining a maximum number of buffers used by operations in any branch of a tree that represents the combination of the at least two operations;
dividing the amount of available memory by the maximum number of buffers to determine a maximum buffer size; and
dividing the maximum buffer size by a size of each sample of the video data to provide a number of samples each operation can process using the available memory; and
allocating the available memory according to the determined maximum number of samples of the video data that can be processed by each operation while the available memory is apportioned among the at least two operations. - View Dependent Claims (4)
determining a minimum from among maximum amounts of data that can be provided by any of the one at least two operations; and
limiting the determined number of samples by the determined minimum.
-
-
5. A method for reducing latency in processing video data using a combination of at least two operations on a general purpose computer, comprising:
-
determining an amount of memory available to the at least two operations;
determining, for each operation in the combination of at least two operations, a maximum number of samples of the video data that can be processed by the operation while the available memory is apportioned among the at least two operations, wherein determining the maximum number of samples comprises;
determining a maximum number of buffers used by operations in any branch of a tree that represents the combination of the at least two operations;
dividing the amount of available memory by the maximum number of buffers to determine a maximum buffer size; and
dividing the maximum buffer size by a size of each sample of the video data to provide a number of samples each operation can process using the available memory;
allocating the available memory according to the determined maximum number of samples of the video data that can be processed by each operation while the available memory is apportioned among the at least two operations; and
processing the video data using the combination of the at least two operations, wherein each operation requests data from other operations, and wherein the other operations respond to such requests with a number of samples of data corresponding to the memory allocated for the operation. - View Dependent Claims (6)
determining a minimum from among maximum amounts of data that can be provided by any of the at least two operations; and
limiting the determined number of samples by the determined minimum.
-
-
7. A computer program product, comprising:
-
a computer readable medium;
computer program instructions stored on the computer readable medium that when executed by the computer instruct the computer to perform a process for reducing latency in processing video data using a combination of at least two operations on a general purpose computer, comprising;
determining an amount of memory available to the at least two operations;
determining, for each operation in the combination of at least two operations, a maximum number of samples of the video data that can be processed by the operation while the available memory is apportioned among the at least two operations, wherein determining the maximum number of samples comprises;
determining a maximum number of buffers used by operations in any branch of a tree that represents the combination of the at least two operations;
dividing the amount of available memory by the maximum number of buffers to determine a maximum buffer size; and
dividing the maximum buffer size by a size of each sample of the video data to provide a number of samples each operation can process using the available memory;
allocating the available memory according to the determined maximum number of samples of the video data that can be processed by each operation while the available memory is apportioned among the at least two operations; and
processing the video data using the combination of the at least two operations, wherein each operation requests data from other operations, and wherein the other operations respond to such requests with a number of samples of data corresponding to the memory allocated for the operation. - View Dependent Claims (8)
determining a minimum from among maximum amounts of data that can be provided by any of the at least two operations; and
limiting the determined number of samples by the determined minimum.
-
-
9. A method for enabling a first operation to determine a number of samples of data to provide in response to a request for data from a second operation for processing video data, comprising:
-
receiving the request for data from the second operation;
if a number of samples of data to provide in response to the request has not been determined, then determining a minimum amount of data from among maximum amounts of data that may be provided to the first operation from at least one third operation in response to requests for data from the first operation; and
if the number of samples of data to provide in response to the request has been determined, then responding to the second operation with the determined number of samples of data.
-
-
10. A computer program product, comprising:
-
a computer readable medium;
computer program instructions stored on the computer readable medium that, when executed by the computer, instruct the computer to perform a process for enabling a first operation to determine a number of samples of data to provide in response to a request for data from a second operation for processing video data, comprising;
receiving the request for data from the second operation;
if a number of samples of data to provide in response to the request has not been determined, then determining a minimum amount of data from among maximum amounts of data that may be provided to the first operation from at least one third operation in response to requests for data from the first operation; and
if the number of samples of data to provide in response to the request has been determined, then responding to the second operation with the determined number of samples of data.
-
-
11. A method for processing video data according to a combination of operations, wherein each operation has an input and an output, and wherein the output of at least one of the operations provides samples of video data to the input of another of the operations, wherein a sample of video data comprises an image, comprising:
-
determining an amount of available memory for performing the combination of operations on the video data;
determining, for each operation in the combination of operations, a maximum number of samples of the video data that can be processed by the operation while the available memory is apportioned among the at least two operations to perform the combination of operations; and
allocating a portion of the available memory to each of the operations according to the determined maximum number of samples of the video data that can be processed by each of the operations while the available memory is apportioned among the at least two operations.
-
Specification