Changes since v2: - refactored x86 loop to reduce per-line overhead and simplify the code; eliminate SSE instructions from the process function entirely and also reduce the number of allocated registers by one - remove alignment macro from SwsOpExec and align usage instead - chenge pixel_bits_in/out to block_size_in/out in SwsOpExec, and add precomputed pointer bump fields - fix SwsOpExec size assertion - reduce storage size of several SwsOp types - simplify SwsOpEntry and massively reduce its storage size, from ~300 bytes to around 50 bytes per entry - add lots of comments and documentation, especially for the x86 backend and the shuffle solver - eliminate initializer field override warning from x86 backend - switch from call/ret to jmp/jmp inside x86 op chain; massively speeds up some chains on hardware with dedicated loop buffers - add more vzeroupper calls to break dependencies throughout the code
This branch is ~18% faster across the board, as a result of: - adding vzeroupper: ~12% - eliminating call/ret: ~4% - simplifying the x86 loop: ~1% The amount of rodata used has been reduced by ~80%. The latest branch can be found here: https://github.com/haasn/FFmpeg/tree/swscale6_clean _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".