摘要:
A system and method are for inserting modifications into an executable program at the time an operating system loads the executable program for execution. The system includes a program modification database that provides a general depository of program changes in the form of substitute APIs and direct program patches. The system further comprises a program loader routine that identifies an entry in the program modification database corresponding to a program selected for execution on a computer system. The loader routine incorporates changes identified in the database entry associated with the selected program into a program segment (e.g., API) substitution table. After constructing the substitution table, each table entry includes a called API reference (e.g., its handle or address) and a reference to a substitute API.
摘要:
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.
摘要:
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 program modification database and method for identifying a candidate entry within the correction database for a particular executable program are disclosed. The program modification database provides a general depository of program changes, referred to herein as substitute program segments, and a set of executable program entries containing program matching criteria and corresponding program changes. The program modification database includes an index. Each entry in the index includes a piece of identifying information for a referenced, corresponding executable program entry. The program modification database architecture is applicable to any type of program segment information for modifying either instruction code or data values within a program. The types of information, within a program matching criteria, taken from an executable program file used to identify a corresponding executable program entry within the program modification database are selectable on an individual basis from an extensible set of executable program information types.
摘要:
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 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.