use large/medium/similar to define scene change result
fix the condition of scene change flag and comments
Add encoder tests with deblocking and/or denoising

This increases the coverage of assembly routines (and encoder
features in general) tested by the codec unit test.
Use -DPREFIX instead of --prefix _ on OS X

The --prefix parameter differs between yasm and nasm; nasm
requires --prefix _ while yasm requires --prefix=_. Using the
define instead (as on windows) allows easier switching between
the two otherwise mostly compatible assemblers.

This fixes building with yasm on OS X in 32 bit mode. For 64 bit,
a few more tweaks are still required.
Use the SIGN_EXTENSION macro where possible

This shortens the x86 assembly by 134 lines in total.
  modify EncoderFrame return type.
commit b99a307ab94183c32a293ad5fda8b0e3323546a0
Author: ruil2 <ruil2@cisco.com>
Date:   Wed Mar 12 13:34:27 2014 +0800

    fix typo
modify unit test for return type modification
fix typo
Merge pull request #496 from mstorsjo/use-sign-extend-macro

Use the SIGN_EXTENSION macro where possible
Merge pull request #483 from volvet/develop_b

use large/medium/similar to define scene change result
Merge pull request #503 from mstorsjo/encoder-test-coverage

Add encoder tests with deblocking and/or denoising
Remove commented out code for old, 32-bit only x86 assembly function prologues/epilogues
Merge pull request #515 from mstorsjo/remove-commented-x86-asm

Remove commented out code for old, 32-bit only x86 assembly function prologues/epilogues
Use movsxd in SIGN_EXTENSION

This is what nasm ended up assembling movsx with 32 bit input to
anyway.

Keep using plain movsx for 16 bit input.

This fixes building with yasm in 64 bit mode.
Fold ALIGN 16 and the function label into WELS_EXTERN

This simplifies the structure for all x86 assembly functions,
reducing the amount of duplicated code structure.
Remove commented out rodata sections and tables in assembly files
Backup/restore the xmm6-xmm15 SSE registers within asm functions on win64

According to the Win64 ABI, these registers need to be preserved,
and compilers are allowed to rely on their content to stay
available - not only for float usage but for any usage, anywhere,
in the calling C++ code.

This adds a macro which pushes the clobbered registers onto the
stack if targeting win64 (and a matching one which restores them).
The parameter to the macro is the number of xmm registers used
(e.g. if using xmm0 - xmm7, the parameter is 8), or in other
words, the number of the highest xmm register used plus one.

This is similar to how the same issue is handled for the NEON
registers q4-q7 with the vpush instruction, except that they needed
to be preserved on all platforms, not only on one particular platform.

This allows removing the XMMREG_PROTECT_* hacks, which can
easily fail if the compiler chooses to use the callee saved
xmm registers in an unexpected spot.
Remove XMMREG_PROTECT

This isn't necessary any longer, when all the assembly routines
take care of restoring registers as necessary.
Merge pull request #508 from mstorsjo/fix-yasm-osx

Use -DPREFIX instead of --prefix _ on OS X
Merge pull request #518 from mstorsjo/remove-commented-rodata

Remove commented out rodata sections and tables in assembly files