Ari Koivula
3cf5e422e8
Make fast chroma mode search select modes for slower chroma search.
2014-10-16 12:21:36 +03:00
Ari Koivula
d12dbd4aa0
Add fast intra chroma mode search.
2014-10-16 12:21:08 +03:00
Ari Koivula
75a137c1e9
Add --cpuid parameter to disable runtime optimizations.
2014-10-16 12:01:36 +03:00
Ari Koivula
3e6023dfb5
Rename search constants and set sane defaults.
2014-10-16 03:08:11 +03:00
Ari Koivula
8a407b0313
Estimate luma and chroma intra mode bits separately.
...
- Remove cu_info.intra[].cost and bitcost as unnecessary.
- Add luma_mode_bits to complement chroma_mode_bits and remove
intra_pred_ratecost as unneccessary. Difference is that intra_pred_ratecost
was more coarse and included chroma mode with the assumption that it would
be the same as chroma.
2014-10-16 03:08:11 +03:00
Ari Koivula
c9e212ba92
Add intra chroma mode search.
...
- Based on full chroma reconstruction so enabled only for --rd=2.
2014-10-16 03:07:50 +03:00
Ari Koivula
b32867be2a
Remove -lrt from LDFLAGS.
...
- This might be required on some embedded system, but from what I can see
all the functions we use from real time extensions are included in libc
and the program seems to work fine without it.
- It doesn't exist on MingwW or Mac, so I think it's better to remove it
completely and add it later on any system that actually requires it.
- Related to #85 .
2014-10-14 11:48:57 +03:00
Ari Koivula
6f8a976b12
Give ARCH_X86_64 to yasm on Mac.
...
- Issue raised in #85 .
2014-10-14 09:47:56 +03:00
Ari Koivula
55ab08c213
Fix incorrect const qualifiers.
...
- Change input pointers to const in dct-generic, like they should have been.
- Fixes compilation error on GCC.
2014-10-13 16:57:15 +03:00
Ari Koivula
8a5b24bcbe
Remove usages of GCC __attribute__.
...
- To allow clang to compile, as it doesn't according to #58 .
- The target attributes are not needed anymore due to makefile handling
targetting now.
- The __attribute__((unused)) used for debugging. I don't know if clang
supports this attribute or not but it doesn't seem very important so
I'm removing it just in case.
2014-10-13 16:46:26 +03:00
Ari Koivula
04613bd5b3
Disable GET_TIME on Mac.
...
- This should fix the Mac version not compiling in issue #85 .
2014-10-13 16:22:11 +03:00
Ari Koivula
a469c059a5
Take chroma tr-skip bits into account.
2014-10-13 10:48:39 +03:00
Ari Koivula
7a5cf5d865
Add trskip mode cost to fast trskip mode decision.
2014-10-13 10:45:41 +03:00
Ari Koivula
f164a5ba79
Add fast transform skip estimation to rough intra search.
2014-10-13 10:42:24 +03:00
Ari Koivula
d893a489d6
Fix mingw compilation issue.
...
strategies/avx2/dct-avx2.c:334:25: error: pasting "g_dct_16" and "[" does
not give a valid preprocessing token
- The [ is not part of the token so compilation failed on mingw GCC 4.9.1.
- Fixes #86 .
2014-10-10 16:32:39 +03:00
Ari Koivula
28d1532578
Make rd=1 use cabac for coeff cost estimation.
2014-10-08 12:50:03 +03:00
Ari Koivula
cbb2aa75b7
Add macros for adjusting weight of distortion between luma and chroma.
...
- Everything needs to have a short name because windows has a maximum path
length limitation that is breaking my testing framework.
2014-10-08 10:31:54 +03:00
Ari Koivula
49ad845c33
Add cabac bits for part_mode.
2014-10-08 10:31:54 +03:00
Ari Koivula
b6710e7893
Add cabac bits for cu split flag.
2014-10-08 10:31:54 +03:00
Ari Koivula
38b224cf69
Change rest of cu split search costs to double.
2014-10-08 10:31:54 +03:00
Ari Koivula
17473624d3
Add transform tree bit costs for cbf_luma.
2014-10-08 10:31:54 +03:00
Ari Koivula
3b04d39db4
Take cabac bits into account on transform tree.
2014-10-08 10:31:54 +03:00
Ari Koivula
296f142d9e
Retain coded block flag data during transform split search.
2014-10-08 10:31:54 +03:00
Ari Koivula
85dea10f3f
Clean up transform split search.
...
- Remove unnecessary checks and comment.
2014-10-08 10:31:54 +03:00
Ari Koivula
e1b801eb6f
Add transform tree chroma cbf bits.
2014-10-08 10:31:23 +03:00
Ari Koivula
3868cc7ff1
Fix crash on inter search when --tr-depth-intra is used.
...
- Transform splits meant for intra modes were used for inter when inter mode
was chosen, which caused an assert to be triggered if the split transform
block didn't have any coefficients.
2014-10-03 19:29:06 +03:00
Ari Lemmetti
bcf12567d0
Added some comments.
2014-10-03 17:51:58 +03:00
Ari Lemmetti
fea517c2ae
Misc code cleanup
2014-10-03 17:06:09 +03:00
Ari Lemmetti
85682c3b6a
Removed unused transpose functions.
2014-10-03 11:39:31 +03:00
Ari Koivula
8a80845b91
Add chroma to transform split search.
2014-10-03 11:36:57 +03:00
Ari Koivula
51662e1081
Fix differences between cu_rd_cost_luma and rdo_cost_intra.
2014-10-03 11:36:57 +03:00
Ari Koivula
bc7d7d5cb6
Add cu_info* as parameter to reconstruction functions.
...
- This is required so these functions can be used for searching. When NULL
is given they take the CU from LCU struct as they did previously.
Conflicts:
src/search.c
2014-10-03 11:36:56 +03:00
Ari Koivula
ccc575e2c6
Disable transform tree bits.
2014-10-03 11:36:56 +03:00
Ari Koivula
a0ab469c89
Disable rdo_cost_intra.
2014-10-03 11:36:56 +03:00
Ari Koivula
c164978e21
Add FULL_CU_SPLIT_SEARCH macro for disabling cu split optimization.
2014-10-03 11:36:56 +03:00
Ari Koivula
549ac96438
Change costs to doubles to avoid rounding intermediate results.
...
- Helps with debugging.
2014-10-03 11:36:56 +03:00
Ari Koivula
e591e89ade
Add prediction mode to chroma reconstruction parameters.
...
- Just like in luma.
2014-10-03 11:36:56 +03:00
Ari Koivula
f6272f06fc
Unify signature for transform functions.
...
- Some used block, coeff and some src, dst. Now all signatures are const input
and non-const output.
2014-10-03 11:21:43 +03:00
Ari Koivula
b932cf4b21
Clean up avx2 dct macros.
2014-10-03 11:16:25 +03:00
Ari Koivula
78dd136189
Enable asm optimizations for VS.
2014-10-03 11:15:52 +03:00
Ari Koivula
4e6691cff1
Fix problems with unit tests.
...
- Cast function pointers to correct function signatures.
- Increase number of buffers on SATD tests so the initialization doesn't
overflow them and initialize the unused buffers to null.
2014-10-03 11:14:57 +03:00
Ari Koivula
47244a15c3
Merge branch 'dct-optimizations'
...
Conflicts:
src/strategies/avx2/dct-avx2.c
src/strategies/generic/dct-generic.c
2014-10-02 13:45:21 +03:00
Ari Lemmetti
61e1510480
Transform functions in dct-avx2.c are now generated with macros.
2014-10-02 13:24:30 +03:00
Ari Lemmetti
9407610555
Moved DCT / DST matrices to dct-generic.c
2014-10-02 13:24:30 +03:00
Ari Lemmetti
7255112bd8
Added transposed DCT/DST tables. Use them while calculating transforms instead of doing runtime transpose. Added separate functions for DST and IDST.
2014-10-02 13:24:30 +03:00
Ari Lemmetti
e7bcb58846
Added 32x32 IDCT
2014-10-02 13:24:30 +03:00
Ari Lemmetti
eacf173b7e
Added 32x32 DCT for AVX2
2014-10-02 13:24:30 +03:00
Ari Lemmetti
d2856a5d40
Added 32x32 transpose
2014-10-02 13:24:30 +03:00
Ari Lemmetti
7a33f08312
Added 16x16 DCT and IDCT for AVX2
2014-10-02 13:24:30 +03:00
Ari Lemmetti
d2fe2a5391
Added 16x16 transpose
2014-10-02 13:24:30 +03:00