Abstract:
The present invention provides a generic interface which enables asynchronous data processing elements to be interconnected using an interconnection protocol that controls flow of data between the processing elements. The flow control allows the processing elements to be data independent from, i.e., the processing elements need not be designed for a fixed sample rate or resolution, sample format and other data dependent factors. When used with digital motion video data, the processing elements may process motion video data at various temporal and spatial resolutions and color formats. Flow of data between processing elements may be controlled by handshake signals indicating whether the sender has valid data and the receiver can receive data. When valid data is available at the sender and is requested by the receiver, a transfer of data occurs. The characteristics of the data, and functions to be performed on the data may be specified using control inputs to the processing elements. A counting circuit may be used to specify the number of the data samples for which the control inputs are valid. The interface allows each processing element to have a small number of storage locations for storing data, such as a pair of registers, which eliminates the need for large buffers and simplifies implementation of the processing element with such flow control as a simple integrated circuit.
Abstract:
In order to efficiently use processing and transmission bandwidth and data storage of a computer system, video data is represented using integer and fractional values. The integer value has a precision defined by the precision of the data paths of the computer system. These integer and fractional components are packed into byte-oriented data packets in a manner that minimizes waste of storage space and transmission bandwidth. This packing of data also may be done in such a way so as to minimize processing for performing packing and unpacking of the data. Because the video data may be easily separated and combined into its integer and fractional components, these components may be processed or transported separately, in parallel or in series, and then later recombined. As a result, lower precision devices may be used in parallel to process or transport streams of higher precision data without having a high precision data processing or transport path.
Abstract:
A color modification system and method for reducing the number of computations performed on a pixel color. This reduction in computations increases the rate at which color modification may be performed and decreases the effects of rounding errors. Decreasing the effects of rounding errors produces a more accurate color modification, thereby reducing the likelihood of artifacts. The system and method performs color modification on a pixel color, where the color includes a first, second, and third component and each component defines a value of the color. The system includes a chroma lookup table having a plurality of entries. Each entry corresponds to a luma value and contains chroma coefficients. The chroma coefficients define color modifications to be applied to the components of the color. If a luma value is received, the chroma lookup table generates output chroma coefficients at an output. The output coefficients are generated by accessing the entry corresponding to the luma value, and extracting the output coefficients from the entry. The coefficients may include at least four matrix coefficients. The system may include a first matrix multiplier that receives the four matrix coefficients and at least a first and second of the color at an input and generate at least a first modified component and second modified component as output. The first matrix multiplier applies matrix multiplication to the first and second components using the four output chroma coefficients as the coefficients of the matrices. The chroma lookup table may defines a function of luma, and the function may be nonlinear.
Abstract:
A media pipeline with two channels processes sequences of digital still images. A blender is provided so as to enable simple effects on these two streams of video data such as dissolves, wipes and chroma keys. Complex arbitrary three-dimensional effects and other effects may also be provided using an external interface. Thus, a system for processing sequences of digital still images to provide real-time digital video effects includes first and second channels for communicating first and second sequences of digital still images at a rate for simulating video. A controller directs still images to one of the first and second channels. A blender, having a first input connected to the first channel, a second input connected to the second channel, and an output, provides a combination of the first and second sequences of digital still images at a rate for simulating video.
Abstract:
Film frames, or other images in which fields are captured at the same point in time, may be processed as a sequence of temporally coherent image fields or as progressive images. Such images may be obtained, for example, by digitizing signals from a telecine and dropping redundant fields inserted by the telecine. These fields may be stored in a buffer. Two fields of a given frame are read from the buffer by a resizer in accordance with read instructions, which may be determined according to any specified pulldown sequence, an output image size, and resize instructions, such as pan and scan or letterbox instructions. The resizer also may be informed of the input image size if it is not presumed. Thus, the full input image from which an output image may be generated is used by the resizer to generate output image. The resizer uses data in the input image received at one rate to generate one output image at the output rate. The resize instructions, if varied over time, are determined for each output image at the output image rate. For example, if a pan and scan operation is specified to move from a first position to a second position over two input images, the position of the sampled area may be determined by interpolating between the first and second positions and sampling along the interpolated curve for each output image. Thus, the sampled area of the input image is different for each output field. Because changes in position of the sampled area are made in increments at the temporal resolution and ordering of the output images, artifacts in the output images are reduced.
Abstract:
An interface enables asynchronous data processing elements to be interconnected using an interconnection protocol that controls the flow of data between the processing elements. The flow control allows the processing elements to be data independent, i.e., the processing elements need not be designed for a fixed sample rate or resolution, sample format, or other data dependent factors. When used with digital motion video data, the processing elements may process motion video data at various temporal and spatial resolutions and color formats and precisions. Flow of data between processing elements may be controlled by handshake signals indicating whether the data output by the sender is valid and whether the receiver can receive data. The sender transmits data and asserts a valid signal along with the data in response to a request signal from the receiver. The request signal may be asserted by the receiver and responded to asynchronously by the sender with the transmission of the data by the sender. As a result, the sender and receiver are decoupled, thus enabling high speed data transmission and time division multiplexing of data across the interconnect. The sender also may transfer command data. A valid command signal is to indicate the present of command data.
Abstract:
A color modification system and method for reducing the number of computations performed on a pixel color. This reduction in computations increases the rate at which color modification may be performed and decreases the effects of rounding errors. Decreasing the effects of rounding errors produces a more accurate color modification, thereby reducing the likelihood of artifacts. The system and method performs color modification on a pixel color, where the color includes a first, second, and third component and each component defines a value of the color. The system includes a chroma lookup table having a plurality of entries. Each entry corresponds to a luma value and contains chroma coefficients. The chroma coefficients define color modifications to be applied to the components of the color. If a luma value is received, the chroma lookup table generates output chroma coefficients at an output. The output coefficients are generated by accessing the entry corresponding to the luma value, and extracting the output coefficients from the entry. The coefficients may include at least four matrix coefficients. The system may include a first matrix multiplier that receives the four matrix coefficients and at least a first and second of the color at an input and generate at least a first modified component and second modified component as output. The first matrix multiplier applies matrix multiplication to the first and second components using the four output chroma coefficients as the coefficients of the matrices. The chroma lookup table may defines a function of luma, and the function may be nonlinear.