Table of Contents |
Results | Rsults: Down-conversion
Initial results (before optimisation) indicated that a nineteen tap half-band filter produced a better image than could be obtained using the current up-conversion filter used in the wavelet codec. Changing the number of taps in the filter had little effect on the execution time of the code so this size of filter has been used in all version of the code. The top image in figure 6 shows a close up view of an image after is has been up-converted twice using the new filter. The lower image in the figure shows the results after up-converting by a factor of four using the old filter from the wavelet codec.
Sadly there is no advantage to showing the whole image here as there will have been several sampling steps involved in copying the image from the original to Microsoft Word and then to the PDF format. The difference between the results should still be evident in the close up images despite the intermediate stages involved.
Figure 6 - Comparison of my filter and old filter
The timing results were obtained using a CIF image and up-converting by a factor of two. The resulting image was then up-converted again and the time for the second conversion added to the time for the first to get a result for the up-conversion by 4. The process was repeated to obtain the time for a factor of eight.
| By a factor of 2 | By a factor of 4 | By a factor of 8 | |
| Up-Conversion | 0.0072 seconds | 0.0361 seconds | 0.152 seconds |
The time taken for the up-conversion by a factor of eight show that it is not viable for implementation in a real-time codec. There is scope for a small saving as we only need to apply the nineteen-tap filter once and it is sufficient to do linear interpolation for further up-conversions. This technique was tried in previous versions of the code and the saving was minimal equating to approximately one percent of the execution time.
Further up-conversion by linear interpolation can be performed on small parts of the image as required. This code would be located in a different section of the codec and would have the advantage of only dealing with a small part of the image and hence executing a lot faster.
Finally, in the abstract I mention that the execution time for the optimised code is ten times shorter than it was for a basic implementation. Unfortunately, in the quest for faster execution the timing values for the previous methods were not recorded accurately. However, the original code took almost one and a half seconds to up-convert a CIF image by a factor of eight. Each of the optimisation iterations described in Up-conversion: Optimisation: IO halved the execution time.