Ari Koivula
b73b275e08
Remove unused includes from search.
2015-07-21 15:06:06 +03:00
Ari Koivula
ae56118010
Move functions from search to search_intra.
2015-07-21 14:59:19 +03:00
Ari Koivula
bf7542c35d
Move functions from search to search_inter.
2015-07-21 12:16:05 +03:00
Arttu Ylä-Outinen
a0865ff351
Change ime_algorithm in kvz_config to an enum.
...
Adds enum kvz_ime_algorithm to kvzaar.h.
2015-07-06 09:47:18 +03:00
Arttu Ylä-Outinen
f7f17a060c
Rename pixel_t to kvz_pixel.
2015-07-02 16:58:28 +03:00
Arttu Ylä-Outinen
17d720363a
Rename struct image_t to kvz_picture.
2015-07-02 16:55:48 +03:00
Arttu Ylä-Outinen
fe3b629905
Move poc from image_t to image_list_t.
2015-07-02 16:24:25 +03:00
Marko Viitanen
ff4fb64169
Fixed a precedence bug in bipred search
2015-06-12 09:49:56 +03:00
Ari Koivula
30f8640380
Disable trskip SAD calcultation when trskip is not enabled.
2015-06-08 13:16:12 +03:00
Marko Viitanen
3253ba4812
Fixed non-deterministic behavior when using bipred and owf
2015-06-08 13:14:53 +03:00
Ari Koivula
c3b42291e1
Merge branches 'coverity-fix-5', 'coverity-fix-6', 'coverity-fix-7', 'coverity-fix-8', 'coverity-fix-9', 'coverity-fix-10', 'coverity-fix-11', 'coverity-fix-12', 'coverity-fix-13' and 'coverity-fix-14' into coverity-fixes2
2015-05-05 12:27:02 +03:00
Ari Koivula
ed670f4185
Fix coverity warning.
...
- False positive about buffer overrun due to thinking work_tree_copy_up
could be called with depth == 4.
2015-05-05 11:54:09 +03:00
Ari Koivula
80cbda364b
Fix coverity warning.
...
- Variable guards dead code. Although, maybe it will complain about the
dead code now instead.
2015-05-05 10:17:06 +03:00
Ari Koivula
cc980fb815
Fix coverity warning.
...
- False positive for use of uninitialized variable.
2015-05-05 09:37:34 +03:00
Ari Koivula
cf2a406aba
Fix coverity warning.
...
- False positive for overflow. Fixed the parameter declaration.
2015-05-04 17:38:16 +03:00
Ari Koivula
1c3873f5b2
Fix coverity warning.
...
- Overflow from buggy implementation of modulo behavior for
pattern_type. As there is no need for such behavior I removed it.
2015-05-04 17:38:16 +03:00
Ari Koivula
6234b09461
Fix coverity warning.
...
- A false alarm about buffer overflow. No new modes are added if all modes
are already in the list.
- Skip checking predicted modes if all modes are in the list.
2015-05-04 17:38:16 +03:00
Marko Viitanen
fd060cf2c6
Merge branch 'bipred'
...
Conflicts:
README.md
src/config.c
src/config.h
src/encmain.c
2015-04-23 14:45:44 +03:00
Marko Viitanen
79dc7e7270
Bi-pred search cleanup
2015-04-23 14:39:41 +03:00
Marko Viitanen
0e958ebe84
Fixed merge candidate selection
2015-04-23 12:18:33 +03:00
Marko Viitanen
3c694a8f6e
Fixed bipred mv candidate selection
2015-04-23 12:18:05 +03:00
Marko Viitanen
7f504b7808
Added a commandline parameter --bipred to enable bi-pred search
2015-04-21 14:35:16 +03:00
Marko Viitanen
fb74f86a5b
Bi-pred search now actually does cost calculations
2015-04-21 14:16:06 +03:00
Marko Viitanen
e12ba7c80f
Created function inter_recon_lcu_bipred() and moved bipred recon there
2015-04-21 12:05:21 +03:00
Marko Viitanen
50fce975d9
Clamp bi-pred motion vectors because ipol filtering requires modifications
2015-04-21 11:24:07 +03:00
Ari Koivula
7028846423
Fix bug in intra mode search.
...
- The cost of the first mode in the mode list was returned instead of cost of
the selected mode, as this used to be the best mode when the list was
sorted. Should only matter when doing inter coding.
- This pretty much affects only --rd=1 in inter frames.
2015-04-09 16:05:53 +03:00
Marko Viitanen
da3fe9f199
Fixed rounding in bi-pred reconstruction
2015-04-02 15:55:13 +03:00
Marko Viitanen
c7a17cf1c4
Changed motion vector candidate derivation to work with bi-pred case
2015-04-02 14:05:24 +03:00
Marko Viitanen
d26b89174b
Fixed intra chroma search ref_v pointer
2015-03-31 15:43:22 +03:00
Marko Viitanen
4b7db2e014
Added a dummy bi-pred search, always selects bi-pred block when possible
2015-03-31 15:02:43 +03:00
Marko Viitanen
2c676927f0
Fixed a bug in bipred reconstruction causing an overflow
2015-03-31 15:02:10 +03:00
Marko Viitanen
06bc4f3d5e
Fixed duplicate checking for merge cand and some cleanup
2015-03-31 12:23:46 +03:00
Marko Viitanen
f881d6bf8a
Modified structures and mv handling to use L0/L1 vectors
2015-03-30 14:40:29 +03:00
Marko Viitanen
9a828ae5da
Fixed merge candidate scaling in hexbs and excluded weighted pred candidates in cost calc
2015-03-24 09:38:24 +02:00
Marko Viitanen
2d8552d0d6
Fixed merge candidate usage by skipping weighted prediction candidate
2015-03-23 15:17:41 +02:00
Marko Viitanen
34e8f70c8c
Fixed temporal MV predictor offset
2015-03-23 09:22:47 +02:00
Marko Viitanen
eccf1c1a16
Fixed temporal MV predictor offset
2015-03-23 09:21:52 +02:00
Marko Viitanen
164b7a7743
Merge remote-tracking branch 'remotes/origin/master' into GOP
2015-03-20 11:40:15 +02:00
Marko Viitanen
26082d5328
Zero merge candidate fix for B-frames
2015-03-20 10:33:05 +02:00
Arttu Ylä-Outinen
3f31e7bf47
Merge branch 'tz-search'
2015-03-19 19:04:44 +02:00
Arttu Ylä-Outinen
176dbb6a5b
Add --me parameter.
...
Selects the integer motion estimation algorithm (hexbs or tz).
2015-03-19 18:48:10 +02:00
Marko Viitanen
d72c560880
Generate sorted reference list for L0 and L1
2015-03-19 12:26:59 +02:00
Marko Viitanen
c761a6beb3
Added encoder state as an input parameter to inter_get_merge_cand()
2015-03-18 12:35:47 +02:00
Marko Viitanen
c56b4d5747
Added combined merge candidates on B-slices and struct inter_merge_cand_t
2015-03-18 10:03:06 +02:00
Ari Koivula
6ec177f75c
Improve handling of input vector to inter search.
2015-03-17 17:16:15 +02:00
SanteriS
913ade461b
tz_search step 1, first if: && -> ||
2015-03-12 17:57:17 +02:00
SanteriS
bdb0639ac9
fixed function interfaces for tz_search and its subfunctions.
2015-03-12 17:54:21 +02:00
Marko Viitanen
66660516b7
Merge remote-tracking branch 'remotes/github/master' into GOP
...
Conflicts:
src/cabac.h
src/config.h
src/cu.h
src/encoder_state-bitstream.c
src/encoderstate.c
2015-03-10 10:32:00 +02:00
Marko Viitanen
eba298e635
Added cu->inter.mv_ref_coded variable
2015-03-10 09:17:25 +02:00
SanteriS
9e9f5e3150
Merge branch 'master' of https://github.com/ultravideo/kvazaar
2015-03-08 19:20:08 +02:00
SanteriS
e2f9fe130a
changed step 1 for tz_search
2015-03-08 19:19:23 +02:00
Marko Viitanen
6095503918
Modified search to use correct reference id and mv directions
2015-03-06 16:29:24 +02:00
Ari Koivula
2f79bfebf7
Rename parameter encoder_state to state in all functions.
...
- It's so widely used that there isn't really need to emphasize that
it's the encoders state. Also, it isn't really the encoders state,
but encoding jobs state.
2015-03-04 17:31:07 +02:00
Ari Koivula
ded6fd9ee8
Renamed typedef pixel to pixel_t.
2015-03-04 16:35:53 +02:00
Ari Koivula
1f42adb1ea
Renamed typedef coefficient to coeff_t.
2015-03-04 16:33:47 +02:00
Ari Koivula
fe55961f84
Rename struct image to image_t.
2015-03-04 14:01:17 +02:00
Ari Koivula
e5b18cd536
Inline cu_info_intra and cu_info_inter into cu_info_t.
2015-03-04 14:01:16 +02:00
Ari Koivula
a0767a76d2
Rename struct vector2d to vector2d_t.
2015-03-04 14:01:16 +02:00
Ari Koivula
727fefacc4
Rename struct cabac_ctx to cabac_ctx_t.
2015-03-04 14:01:16 +02:00
Ari Koivula
7ca688b376
Rename struct videoframe to videoframe_t.
2015-03-04 14:01:15 +02:00
Ari Koivula
63e224574e
Rename struct cu_info to cu_info_t.
2015-03-04 14:01:15 +02:00
Ari Koivula
f6147b410a
Rename struct encoder_control to encoder_control_t.
...
Conflicts:
src/encoder_state-geometry.h
src/encoderstate.h
2015-03-04 14:01:14 +02:00
Ari Koivula
b14f89c88f
Rename struct encoder_state to encoder_state_t.
2015-03-04 14:00:46 +02:00
SanteriS
b55bfe1729
Merge branch 'master' of https://github.com/ultravideo/kvazaar
2015-02-25 18:15:35 +02:00
SanteriS
bef7cae4f8
Merge branch 'master' of https://github.com/ultravideo/kvazaar
2015-02-25 15:29:11 +02:00
SanteriS
f478732b4c
tz search bugfix
2015-02-25 15:28:45 +02:00
Ari Koivula
d7383ccb25
Change license to LGPL.
...
- Everyone who has contributed code to the project has been asked to license
their contributions under LPGL and they have agreed.
- COPYING file changed to say LGPLv2.1 instead of GPLv2.
- GPL changed to LGPL in the header of every single file that a header and
header added to the few that were missing one.
- Also.. Happy new year!
2015-02-25 15:19:05 +02:00
Ari Koivula
3e58e03b56
Select motion compensation search starting point from among merge candidates.
...
- Greatly reduces bdrate for most sequences.
2015-02-25 12:58:15 +02:00
SanteriS
2f68cf3847
(TZ search) Fixed missing check for owf mode. Added 6 point hexagon search pattern.
2015-02-23 16:59:48 +02:00
Ari Koivula
c979db7e95
Avoid sorting intra modes unnecessarily.
2015-02-19 16:25:45 +02:00
Ari Koivula
1c2129fdcb
Improve sort_modes.
...
- When encoding with fast enough settings this function can use up to 5%
of the cpu time, so I tried to optimize it a little bit.
2015-02-19 16:25:38 +02:00
Ari Koivula
5fa6438b25
Clean up calls to memset.
...
- Replaces all calls to memset with new FILL and FILL_ARRAY macros. The use
of memset was inconsistent and we never use it for anything complicated.
2015-02-19 16:25:28 +02:00
SanteriS
1a4d30d15a
fixed step 1 of TZ algorithm
2015-02-11 18:51:21 +02:00
SanteriS
ce4c251cd1
Merge branch 'master' of https://github.com/ultravideo/kvazaar
2015-02-09 17:29:49 +02:00
Ari Lemmetti
7846cf3093
Merge branch 'faster_interpolation'
2015-02-05 13:29:43 +02:00
SanteriS
50dd59eb21
Added different search patterns for TZ search.
2015-02-02 19:14:45 +02:00
SanteriS
4b3d77aaf2
Enable tz search.
2015-01-21 12:55:00 +02:00
Ari Koivula
f86def8ed8
Remove unused variables.
2015-01-20 17:50:19 +02:00
Ari Koivula
81ad583e08
Use the same coeff cost calculation for all rd modes.
...
- It's not worth it to have these faster approximations for coefficient cost.
2015-01-20 17:34:59 +02:00
Ari Koivula
870171e6ad
Fix --rd=0 actually work.
2015-01-20 17:34:59 +02:00
Ari Lemmetti
0e56d13b5d
Use smaller bit depth for fractional pixel interpolation
2015-01-15 15:00:09 +02:00
Ari Lemmetti
cc061b4c3d
Added ipol strategy for interpolation filters.
...
Added initial files for AVX2 and generic strategies.
2015-01-15 14:59:37 +02:00
Ari Koivula
ab3364afb4
Add skipping of intra search in inter frames for rd=0.
2015-01-15 11:54:35 +02:00
Ari Lemmetti
cad5f14372
Fixed compile errors (-Werror)
2015-01-14 18:27:35 +02:00
SanteriS
126569c737
Added first version of TZ search algorithm.
2015-01-14 14:54:09 +02:00
Ari Koivula
01195aecbb
Move cu split model to a function.
2015-01-14 11:16:34 +02:00
Ari Koivula
8c89dcfc50
Move mode bit calculation to a function.
2015-01-14 10:44:52 +02:00
Ari Koivula
fc79c2103e
Generalize the fast intra-mode tryout code to work for any depth.
2015-01-12 11:47:21 +02:00
Ari Koivula
f1364d297b
Fix bug resulting in incorrect bitstream.
...
- If 64x64 intra PUs were enabled and --rd was less than 2, no intra mode
search was performed for depth 0 resulting in incorrect bitstream.
2015-01-12 11:16:33 +02:00
Ari Koivula
f4bd322804
Add command line options for prediction unit depth.
2015-01-12 10:40:34 +02:00
Ari Koivula
edf2681ea4
Comment functions in search.c.
2015-01-07 14:56:14 +02:00
Ari Koivula
374012ab26
Merge branch 'intraskip'
2014-12-01 17:30:03 +02:00
Ari Koivula
21d221c075
Add fast 64x64 intra test.
...
- If intra search is not enabled for a depth, try the result from the
top left CU of the next depth. This seems to give most of the benefit
of at least 64x64 intra prediction units without costing very much
in performance.
2014-11-20 17:20:24 +02:00
Ari Lemmetti
4874f2662f
Added --subme commandline parameter for fractional pixel motion estimation: 1 == enable (default), 0 == disable.
2014-11-20 14:59:04 +02:00
Ari Lemmetti
d5d2e04995
Merge branch 'fme'
2014-11-19 16:40:22 +02:00
Ari Koivula
f6fead6221
Fix crash on inter frames.
...
- If the bitcost was 0 it would underflow for skip mode. The bitcost is now
checked before decrementing.
2014-10-21 18:11:39 +03:00
Ari Koivula
dfc67b766a
Disable rd1 chroma search.
...
- The bdrate improvement isn't really worth the time it takes, so enable it
only for rd3 untill it can be made faster or better.
2014-10-16 13:59:20 +03:00
Ari Koivula
e9b8d9b889
Fix gcc warnings.
...
- Remove unused variables.
- Change intra prediction functions to take their inputs as const pointers.
- Change intra_get_pred to take two pointers instead of an array of pointers,
because the warnings got just too exotic.
2014-10-16 13:17:46 +03:00
Ari Koivula
4bac52d9b6
Merge branch 'intra'
2014-10-16 13:11:23 +03:00
Ari Koivula
02ec26fcea
Try different number of chroma intra modes for different depths.
...
- And avoid doing extra work if no extra modes are tested for certain depths.
2014-10-16 12:21:36 +03:00