Quote:
Whoever wrote the current resizers did a very good job - it's very fast and very flexible.
The horizontal also has per-line unpacking, which speeds up the process massively - this could also be implemented in a one-pass resizer, but you'll probably run into many cache-misses, if your unpacked data gets larger then half the cache size. Otherwise, you'd have to unpack x-lines ahead.
|
sh0dan -
Just doing this from memory but I think the vertical resize creates a new frame 1 horizontal line at a time. When it is done the horizontal resize takes one horizontal line at a time and converts it to the unpacked work format, then resizes it.
What I had considered was having a modified version of the vertical resize save one horizontal line at a time in unpacked format and after each line call a modified horizontal resize to resize that single line from the unpacked format into the output frame. I think this would actually lesson cache hits compared to the current scheme as each unpacked line could be created from register values during the vertical resize and immediately horizontal resized (after the line was done) while still possibly in some level cache.
But I guess you are right it would be only an incremental improvement in the grand scheme of things.
- Tom