摘要:
Whether interlaced video fields form a progressive video frame can be automatically determined. The presence or absence of a first characteristic of one or more video fields can be determined by analysis of the fields and/or related information such as flags, cadence, previous determinations, and others. Similarly, the presence or absence of a second characteristic can be detected. In accordance with the detecting, how likely or whether the two or more video fields form a progressive video frame can be determined based on a possibly predetermined likelihood that fields of progressive video frames in general have or do not have the first characteristic and based on a possibly predetermined likelihood that fields of interlaced video frames in general have or do not have the second characteristic.
摘要:
A standard reporting schema to represent applications and other information on a computer in a hierarchical manner, such as via an XML (extensible markup language) file. An agent or engine is provided to inventory a computer for installed applications or services and to output a report, or log file, conforming to the schema standard. A calculation may be performed on a subset of attributes stored in the log file for an application or a service so as generate a signature representing the subset. The signature may be stored with the log file, and may be accessed quickly in a database to determine whether or not the application is a particular application, or, if more particular resources are defined, to determine more specific information, such as whether the application is a particular version or run of the application.
摘要:
A video encoding acceleration service to increase one or more of the speed and quality of video encoding is described. The service acts as an intermediary between an arbitrary video encoder computer program application and arbitrary video acceleration hardware. The service receives one or more queries from the video encoder to identify implementation specifics of the video acceleration hardware. The service interfaces with the video acceleration hardware to obtain the implementation specifics. The service communicates the implementation specifics to the video encoder. The implementation specifics enable the video encoder to: (a) determine whether one or more of speed and quality of software encoding operations associated with the video encoder can be increased with implementation of a pipeline of one or more supported encoding pipeline configurations and capabilities, and (b) implement the pipeline by interfacing with the service.
摘要:
Strategies are set forth for performing a scaling operation on image information using a filter. According to one exemplary implementation, the strategies involve: computing, based on scaling to be performed, a number of filter kernels required to implement the filter and a number of taps required for each filter kernel; pre-computing and storing the number of filter kernels; and applying the filter kernels to a row or column of the image information by repeatedly sequencing through the filter kernels if there are more pixel elements in the row or column than there are pre-calculated filter kernels. The scaling operation can employ a Catmull-Rom filter. Further, the scaling operations can be implemented by a pixel shader by assigning weighting information and delta-shifted versions of the image information to respective texture units of the pixel shader.
摘要:
Strategies are set forth herein for generating customized code used to implement an image processing pipeline. According to one exemplary implementation, the strategies involve: providing a master transformation which maps a plurality of kinds of image input information to a plurality of kinds of image output information using a plurality of kinds of intermediary processing operations; receiving requirements of the image processing pipeline; and assembling code modules from a library of code modules by selecting components in the master transformation which satisfy the received requirements, while omitting other components in the master transformation. The strategies are advantageous because they produce code that is more tailored to a specific image processing environment, which may result in code that executes in an efficient manner.
摘要:
Strategies are set forth herein for quantizing and dithering original image information to produce quantized image information. According to one exemplary implementation, the strategies involve: quantizing a sum that combines an original value taken from the original image information, a noise value, and an error term, to produce a quantized value; and calculating an error term for a subsequent quantizing operation by computing a difference between the quantized value and the original value. By virtue of his process, the strategies essentially add noise information to the quantization process, not the original image information, which results in quantized image information having reduced artifacts. The strategies can be used in conjunction with the Floyd-Steinberg error dispersion algorithm. According to another feature, the noise value is computed using a random number generator having a long repeat period, which further reduces artifacts.
摘要:
A video encoding acceleration service to increase one or more of the speed and quality of video encoding is described. The service acts as an intermediary between an arbitrary video encoder computer program application and arbitrary video acceleration hardware. The service receives one or more queries from the video encoder to identify implementation specifics of the video acceleration hardware. The service interfaces with the video acceleration hardware to obtain the implementation specifics. The service communicates the implementation specifics to the video encoder. The implementation specifics enable the video encoder to: (a) determine whether one or more of speed and quality of software encoding operations associated with the video encoder can be increased with implementation of a pipeline of one or more supported encoding pipeline configurations and capabilities, and (b) implement the pipeline by interfacing with the service.
摘要:
Strategies are described for processing image information in a linear form to reduce the amount of artifacts (compared to processing the data in nonlinear form). Exemplary types of processing operations can include, scaling, compositing, alpha-blending, edge detection, and so forth. In a more specific implementation, strategies are described for processing image information that is: a) linear; b) in the RGB color space; c) high precision (e.g., provided by floating point representation); d) progressive; and e) full channel. Other improvements provide strategies for: a) processing image information in a pseudo-linear space to improve processing speed; b) implementing an improved error dispersion technique; c) dynamically calculating and applying filter kernels; d) producing pipeline code in an optimal manner; and e) implementing various processing tasks using novel pixel shader techniques.
摘要:
A method and system for parametrically generating characters and fonts. A font generation system is run on a computer and allows a user to create a Terafont binary file, which includes a set of universal font generation rules that are applied to generating fonts consistent with a common type of alphabet, and parametric data files, each of which specify a particular font. The user can create a new font, or replicate an existing font. The parametric data are distributed as files or embedded in documents. One or more characters of a font are generated using a font engine that executes the Terafont binary file on a computer using the parametric data specifying that font as an input. The parametric data provided to the font engine at least include a minimal set of font measurement data, such as a PANOSE.TM. number, which are used to compute global variables representing typographic characteristics common to many--if not all--of the glyphs in the font. Additional global and local variables needed to capture nuances of individual characters are computed or assigned default values by the font engine. Thus, a wide variety of fonts can be generated, each font using a set of parametric data relatively small in size, without extrapolating from a single master outline or interpolating between two or more outlines. Since the generated character outlines are defined in terms of conventional mathematical constructs, they are easily reformatted into other digital font formats by the font engine, if necessary.