1. Technical Field
The present invention relates generally to sample rate conversion in data processing systems; and, more particularly, it relates to variable sample rate conversion used in data processing systems that perform rational ratio conversion of the sample rate.
2. Description of Prior Art
Within conventional communication systems, the interfacing of various devices operating at various data transmission rates invariably requires the conversion of the data transmission rates between the various devices. For example, when one device operating at a first data transmission rate communicates with a second device operating at a second data transmission rate, there must be some method by which the data can be converted between the two devices while preserving the information contained within the plurality of data. Ideally, this conversion is performed in a manner that maintains a maximum throughput within the communication system. The data transmission rate itself may be viewed as a sample rate in such conventional communication systems. Typically, the various devices within the communication system each operate according to various, sometimes internal, clock frequencies. Similarly, the data transfer to and from these devices is associated with this clock frequency. The interfacing of the various devices, each possibly being driven by a different clock frequency, creates an interfacing difficulty.
One common application area for such data conversion is in television displays. Various television display standards exist for displaying image data. For example, one common standard is the National Television System Committee (NTSC). Another common standard is the phase alternate line (PAL) standard. A difficulty arises when a user attempts to interface a peripheral device, such as a video cassette recorder (VCR), that operates using one standard with a television display operating at another. Some method for converting the image data must be employed for proper communication between the devices and ultimate display for the user.
Within various stand alone image processing devices including photo-copy machines and video display units, enlargement and reduction of image data is often performed. From one perspective, the image data having a first resolution may be viewed as data having a first sample rate. Typically, the sample rate is associated with the number of pixels per distance along a given trajectory of the image data. This sample rate is often given in terms of dots per inch (dpi) in printing systems and simply as screen resolution for video display units, i.e. 640.times.480, 800.times.600, 1024.times.768, etc. This screen resolution typically corresponds to the number of pixels that are displayed at any given time across the viewable portion of the video display unit. When enlarging or reducing such image data using such devices, a user typically desires to preserve the resolution of the image data as much as possible. Still, the limitation remains, particularly with enlargement, that the image data only possesses a fixed amount of information. A difficulty lies in how to expand the finite amount of data available to display as if it were a larger amount of data; the difficulty is how to increase the viewable size of the image data while preserving the visible perceptual quality of the image data.
One common limitation within such conventional stand alone devices is the inability to perform rational ratio conversions of either enlargement or reduction of an image. This stems from the inability of many conventional systems to perform sample rate conversion using rational ratios. Common within such systems, the option of enlarging or reducing an image by a number of fixed amounts is provided, e.g. 16%, 32%, 64%, etc. However, the ability to perform arbitrary values of reduction and enlargement is seldom provided. For stand alone conventional devices which do provide for arbitrary data conversion rates, there is often associated a high computational cost corresponding to the hardware required to perform such a function. In many applications where system cost is a hard design constraint, the user is typically provided with selection from a predetermined number of choices for performing enlargement or reduction, as the associated cost to provide such a high level function is simply prohibitive. A cost effective solution to provide for arbitrary conversion rates of data would be well suited for many such stand alone devices.
One conventional method for performing conversion of data having a first sample rate to data having a second sample rate uses a very inefficient method including up-sampling and down-sampling. This conventional method typically performs operation and filtering on the up-sampled data that contains an abundance of either redundant or useless information. Typically within digital systems which convert a plurality of data from a first sample rate to a plurality of data having substantially similar characteristics yet having a second sample rate, the original plurality of data is up-sampled by inserting a number of zeros into the plurality of data. During this process, the plurality of data is up-sampled by the number of zeros that have been introduced. These inserted zeroes provide no new information to the original plurality of data. They merely serve as placeholders within the up-sampled data.
Typically and undesirably, the up-sampled plurality of data is filtered when it is in this highly redundant state. This is computationally intensive, as the inserted zeroes must be processed during the filtering. The system has no method by which it can detect which samples are actual data and which are inserted zeroes. This processing of the inserted zeroes adds no new information to the plurality of data. For up-sampling of extremely large numbers, this is very undesirable due to the wasteful appropriation of processing resources in such systems. For example, if a plurality of data is up-sampled by a factor of ten, the up-sampled plurality of data is then processed in the time which will take approximately ten times as long as would be required for the original plurality of data, assuming a substantially linear processing function of processing time in terms of data.
Later, the filtered signal is then down-sampled wherein only a predetermined number of the samples of the up-sampled, post-filtered plurality of data are selected. For example, for a down-sampling by a factor of two, every other data sample would be taken from the plurality of data, thereby reducing the amount of information by the factor of two. The filtering is performed when the plurality of data is at the up-sampled state in an effort to minimize resolution loss during the subsequent down-sampling step. In other embodiments, a single datum value is calculated for every two data within the plurality of data. Such a method employs an averaging scheme. In either case, a predetermined number of the data is discarded during the down-sampling step using this conventional approach.
Ultimately, the conversion rate is the ration between the up-sampling and the down-sampling rates. For example, if the plurality of data is up-sampled by a factor or twenty and down-sampled by a factor of thirteen, then the conversion ratio would be twenty thirteenths (20/13). As can be seen in this trivial example, the insertion of as many as twenty zeroes is often associated with conversion rates that do not even approach a factor of two. This example is demonstrative of the potentially extreme inefficiency of this conventional method.
A typical modification of the conventional method of up-sampling and down-sampling is performed in an effort to provide for more efficient use of a data converter's resources. One solution is to employ a finite impulse response filter to the plurality of data before the up-sampling step and after the down-sampling step. While this solution is more optimal that the conventional method described above in that there is no filtering performed at the highly redundant intermediary state, it is nevertheless inefficient in that a filtering step is performed two different times. Additionally within this modified conventional method, even though the filtering is performed at the states where the plurality of data is relatively smaller than at the intermediary state after up-sampling yet before down-sampling, some manner must be implemented to accommodate this large sized data.
Further limitations and disadvantages of conventional and traditional systems will become apparent to one of skill in the art after reviewing the remainder of the present application with reference to the drawings.