| sh0dan |
3rd October 2002 10:35 |
Quote:
Originally posted by trbarry
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.
|
Absolutely 100% correct :)
Quote:
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.
|
So, when a vertical line is done, it is stored unpacked in the one line tempbuffer, and immediately resized?!? Sound very reasonable speedwise. It does however sound quite complex codewise, but it should be tested, since it could give up to a 50% speed increase (filteredresizeH is slower than V).
The only problem I see is, in the cases where it would be more optimal to resize horizontally before vertically. Now Avisynth chooses the axis on which it preserves the most detail, so the second resizer has the best possible quality to resize from.
|