Marko Viitanen
278042aaac
Fixed top-right CU copy to lcu structure
2014-03-04 16:32:31 +02:00
Marko Viitanen
91e83db3c6
Bugfix for inter_get_spatial_merge_candidates() b2 block checking
...
Wrong variable was used to check for x-border
2014-03-04 15:34:32 +02:00
Marko Viitanen
df669ca7df
Added skip mode checking to the new lcu search
2014-03-04 12:48:19 +02:00
Marko Viitanen
bddadbb4ed
Inter coding fixed and added call to encode_transform_tree()
2014-03-03 17:42:44 +02:00
Marko Viitanen
09d4b47395
Fixed CU array calculations in inter_get_spatial_merge_candidates()
2014-03-03 16:25:33 +02:00
Marko Viitanen
17b256b5e3
Converted inter mv candidate functions to use lcu structure
...
Implemented merge and mvd candidate search
Added initialization of the whole work_tree
2014-03-03 16:08:35 +02:00
Marko Viitanen
1f82239367
Implemented inter search and reconstruction with lcu structure
2014-03-03 14:51:36 +02:00
Marko Viitanen
b5fca8b206
Added missing chroma ref pixel init and fixed pic width/height in intra ref border
...
intra_build_reference_border() was given wrong picture width and height on chroma.
Chroma top-left reference pixels were not copied on init_lcu_t()
2014-03-03 12:21:55 +02:00
Ari Koivula
448285a56a
Fix bug in intra mode coding.
2014-02-28 17:36:04 +02:00
Marko Viitanen
f1882a0d82
Fixed CU type initialization and PU index calculations
2014-02-28 15:56:27 +02:00
Ari Koivula
c05e91472d
Fix intra reference border construction on LCU boundary.
2014-02-28 15:43:59 +02:00
Marko Viitanen
83e2079587
Fixed chroma stride in intra_build_reference_border()
2014-02-28 15:24:47 +02:00
Ari Koivula
19f67d4466
Fix LCU reference pixel indexing in reference border construction.
2014-02-28 14:22:13 +02:00
Ari Koivula
768d54ff4c
Fix wrong array offset in intra search.
2014-02-28 14:22:13 +02:00
Marko Viitanen
0a6d9bda41
Fixed stride values in transform_chroma()
2014-02-27 17:47:00 +02:00
Marko Viitanen
4027de6e1f
Fixed reconstruct_chroma() stride values
2014-02-27 16:48:51 +02:00
Ari Koivula
6e11eda133
Fix coeff flag initialization.
...
They should be initialized, even if none exist.
2014-02-27 16:43:20 +02:00
Marko Viitanen
9968fd46b0
Fixed chroma array index calculations in transform_tree() and intra_recon_lcu()
2014-02-27 16:42:32 +02:00
Ari Koivula
71d9ab7e26
Fix copying-up of coefficients during search.
2014-02-27 15:58:47 +02:00
Ari Koivula
526fdfc078
Fix erroneous indexing of pixel arrays.
2014-02-27 15:51:21 +02:00
Ari Koivula
5f75753f85
Set coeff flags correctly.
...
The coeff flags are no longer propagated upwards because encode_transform_tree
is being called from depth > 0. The fix is to initialize the whole coeff flag
array when the coeff flag is set.
2014-02-27 15:45:07 +02:00
Ari Koivula
eda5ade06d
Add missing offsets for lcu_t.cu pointers.
...
Also changes alternate ways of doing the offset to use LCU_CU_OFFSET macro.
2014-02-27 14:22:01 +02:00
Ari Koivula
a8237bcb1e
Remove duplicated defines.
2014-02-27 14:03:33 +02:00
Marko Viitanen
b58c5b872a
Fixed cu coordinate derivation in lcu_set_intra_mode()
2014-02-27 13:53:26 +02:00
Ari Koivula
f6c97712b2
Add lcu_set_intra_mode.
2014-02-27 13:02:24 +02:00
Ari Koivula
faea7caaf4
Remove unnecessary copying of reconstructed pixels from init_lcu_t.
...
The reconstructed pixels don't exist yet.
2014-02-27 11:58:32 +02:00
Ari Koivula
869ca5aa58
Add copying of LCU coefficients to search.
2014-02-27 11:56:16 +02:00
Marko Viitanen
117f74b481
Fixed allocated size for coefficient arrays
2014-02-27 11:05:21 +02:00
Marko Viitanen
7a1bf6b17d
Intra fix: encode_transform_tree() call was missing and depth was not set
2014-02-27 10:53:01 +02:00
Marko Viitanen
8ae453551d
Fixed cu type definition and reconstruction function calling
...
reconstruction could have been called when no search was done
2014-02-26 17:50:09 +02:00
Ari Koivula
879c355d9d
Add work_tree_copy_down.
2014-02-26 17:31:26 +02:00
Marko Viitanen
f788661a54
Fixed coeff flag derivation from NxN blocks
2014-02-26 16:54:49 +02:00
Ari Koivula
9faecd375a
Add work_tree_copy_up.
2014-02-26 16:08:43 +02:00
Ari Koivula
1450d0edf8
Add lcu_t copying to main CU array.
2014-02-26 16:08:43 +02:00
Ari Koivula
e651078e78
Fix compilation for rebase.
...
Conflicts:
src/search.c
2014-02-26 16:08:15 +02:00
Marko Viitanen
b4181dd398
Fixed problems with the new structure and commented out old search
2014-02-26 14:57:57 +02:00
Marko Viitanen
bf21e4d019
Modified encode_transform_tree() to use new structure
2014-02-26 14:28:02 +02:00
Marko Viitanen
43abe296d0
Fixed intra headers and implemented intra search in the new structure
2014-02-26 12:45:43 +02:00
Marko Viitanen
40138f082e
Modified intra_get_dir_luma_predictor() to use the new structure
...
Also fixed intra_pred_ratecost() parameters and usage of intra_build_reference_border()
2014-02-26 12:38:30 +02:00
Marko Viitanen
1197e24b3f
Modified intra_prediction() to use new structure and renamed intra_merge_cost()
2014-02-26 12:34:22 +02:00
Marko Viitanen
68b4e9e3db
Modified intra_build_reference_border() to work on the new structure
2014-02-26 12:30:12 +02:00
Marko Viitanen
d0a9c5e83b
Implemented intra_recon_lcu() to reconstruct intra in the new structure
2014-02-26 12:28:24 +02:00
Marko Viitanen
fb9e3ad1d2
Implemented proper intra mode cost calculation
...
This does not currently affect the search primary search defining the used block sizes, only the refining second intra search. Gain 1.9% BD-rate on All Intra 600f of BQMall QP 22,27,32,37.
2014-02-26 12:26:54 +02:00
Ari Koivula
b067b2f802
Add lcu_t initialization.
2014-02-26 10:58:20 +02:00
Ari Koivula
7e520a85c4
Add skeleton/plan for LCU based search.
...
The plan is to replace the dumb search we are doing now with proper sequential
search that is encapsulated inside data structure that holds all temporary
search data for the LCU.
2014-02-25 13:06:22 +02:00
Marko Viitanen
d2b8f50351
Merge branch 'master' of https://github.com/lu-zero/kvazaar
2014-02-25 10:53:51 +02:00
Marko Viitanen
565be069b9
Implemented proper intra mode cost calculation
...
This does not currently affect the search primary search defining the used block sizes, only the refining second intra search. Gain 1.9% BD-rate on All Intra 600f of BQMall QP 22,27,32,37.
2014-02-24 15:28:37 +02:00
Luca Barbato
a6dfe79d16
encoder: Export g_convert_to_bit correctly
...
It is a global table initialized in encoder.c and used all over the
codebase.
2014-02-22 18:02:09 +01:00
Ari Koivula
db4402e8d6
Fix for SAO band offset merge cost calculation.
...
Gives a tiny improvement to both bit rate and psnr.
2014-02-22 16:08:39 +02:00
Marko Viitanen
34f558ddd7
Fixed SAO cost checking, disabling SAO when RD-cost is 0
...
Decreases overall BD-rate a bit more, this fix prevents coding zero offsets to the bitstream
2014-02-21 17:43:15 +02:00
Ari Koivula
73f5c3b80e
Fix compiler warnings for VS2010 /W4 in config.c and encmain.c.
...
- Working towards issue #11 .
- Widened datatypes for cfg struct members that take values from atoi to full
ints so that bounds checking can be done after parsing without overflow.
2014-02-21 17:28:11 +02:00
Ari Koivula
db3b96b90b
Fix compiler warnings for VS2010 /W4 in bitstream.c and cabac.c.
...
- Working towards issue #11 .
2014-02-21 17:28:11 +02:00
Marko Viitanen
8768f2bb22
Revert "build: Add more cflags to the Makefile"
...
This reverts commit 4c6e7e086a
.
2014-02-21 17:18:23 +02:00
Luca Barbato
d07e12dbf0
sao: Add correct header
...
abs is part of stdlib.h
2014-02-21 15:07:56 +01:00
Luca Barbato
47677af690
Drop remaining unused variables
2014-02-21 15:07:16 +01:00
Luca Barbato
77da143089
picture: Comment out unused-for-now functions
2014-02-21 15:07:15 +01:00
Luca Barbato
0e67f6ffa5
intra: Do not use ambiguous - position
...
Clang warns about it.
2014-02-21 15:07:15 +01:00
Luca Barbato
6fec5ff25e
rdo: Drop now unused variables
2014-02-21 15:07:15 +01:00
Luca Barbato
5e585cc2bd
transform: Drop now-unused variables
2014-02-21 15:07:15 +01:00
Luca Barbato
0cafa8105f
search: Conditionally compile conditionally used functions
2014-02-21 15:07:15 +01:00
Luca Barbato
3441ff831e
Drop clang-compatible flag
2014-02-21 15:07:15 +01:00
Luca Barbato
35ff5113a6
transform: Staticize
2014-02-21 15:07:15 +01:00
Luca Barbato
d6095ff283
transform: Fix function prototypes
2014-02-21 15:07:15 +01:00
Luca Barbato
e03049782c
search: Staticize functions
2014-02-21 15:07:15 +01:00
Luca Barbato
ba494e19c5
sao: Constantize *_list
2014-02-21 15:07:15 +01:00
Luca Barbato
8fbb26975e
sao: Drop unused variable
2014-02-21 15:07:15 +01:00
Luca Barbato
4796675731
rdo: Staticize
2014-02-21 15:07:15 +01:00
Luca Barbato
f314c9b8c0
sao: Staticize
2014-02-21 15:07:11 +01:00
Luca Barbato
974a409387
picture: Staticize
2014-02-21 15:03:35 +01:00
Luca Barbato
350826bc00
encoder: Staticize functions
2014-02-21 15:03:35 +01:00
Luca Barbato
934a4e3b88
whitespace: Drop trailing spaces
2014-02-21 15:03:35 +01:00
Luca Barbato
b99a25ca89
global: Use defined() in macro checks
2014-02-21 14:59:50 +01:00
Luca Barbato
4c6e7e086a
build: Add more cflags to the Makefile
2014-02-21 14:59:50 +01:00
Luca Barbato
0cdaf6bf2a
config: Set static copy_string
...
It is used only within the file.
2014-02-21 14:59:50 +01:00
Luca Barbato
f43240794f
config: Fix config_alloc prototype
2014-02-21 14:59:50 +01:00
Luca Barbato
ae59116945
bitstream: Add correct header for htonl
2014-02-21 14:59:50 +01:00
Luca Barbato
20063f418d
lib: Add a public version include
2014-02-21 14:59:50 +01:00
Marko Viitanen
e3a528df2e
Added rate cost to SAO mode selection calculations
...
Decreased BD-rate 1% on LP configuration with 600 frames of BQMall, QP 22,27,32,37
Merge check is now performed in a function to ease the checking
2014-02-21 15:54:56 +02:00
Marko Viitanen
11bf11f33a
Changed duplicate scaled QP calculations to use a function
2014-02-21 15:41:55 +02:00
Marko Viitanen
f1f293ae0c
Implemented SAO merging
2014-02-21 13:20:54 +02:00
Ari Koivula
5760c79272
Fix crash with dimensions that are not multiples of 8.
...
The clean up of input parsing and encoder initialization code had caused the
real source input dimensions to be used for array initialization, instead of
the dimensions modified to be multiples of the smallest coding unit.
2014-02-21 12:48:33 +02:00
Marko Viitanen
13dc95a164
Implemented band SAO reconstruction
2014-02-21 11:52:41 +02:00
Marko Viitanen
e4880aa4b7
Fixed SAO bitstream generation and band offset a bit
2014-02-20 17:22:33 +02:00
Marko Viitanen
5d946c774a
Implemented draft SAO band offset functions
2014-02-20 16:08:09 +02:00
Marko Viitanen
bb1ae0da62
Limited maximum number of reference frames to 15
...
This now complies with the specification (when using only L0 reference list)
2014-02-20 11:09:09 +02:00
Ari Koivula
18c3d9c72d
Add scons build script.
...
We will also maintain the Makefile for basic building. This is for more
complicated stuff, like building the project on command line with
Visual Studio.
2014-02-19 16:58:52 +02:00
Marko Viitanen
db689227f4
Increased maximum ref frame count to 16 and set default to 3
2014-02-19 15:09:17 +02:00
Marko Viitanen
c230a73155
Added number of reference frames to prefix SEI user data
2014-02-19 14:45:18 +02:00
Marko Viitanen
8490ff1a9d
Disabled NxN mode
...
Something must be done to enable better selection of NxN blocks in order to gain BD-rate with this mode.
2014-02-19 14:36:17 +02:00
Marko Viitanen
3618eab72a
Added lambda cost when using reference frames with refIdx > 0
...
Because selecting references "far away" costs bits, this should help with the issue that multiple reference frames actually increases coded bits with no quality gain.
2014-02-19 14:34:36 +02:00
Marko Viitanen
478552ea00
Added commandline parameter for reference frame number
...
Also updated README and usage with the new parameter
2014-02-18 17:45:54 +02:00
Marko Viitanen
7fb03049b8
Fixed mvd candidate selection
2014-02-18 17:27:45 +02:00
Marko Viitanen
54e68378dc
Fixed merge candidate selection on multiref
2014-02-18 16:59:45 +02:00
Marko Viitanen
a2424d9476
Fixed deblocking filter when using multiple reference frames
2014-02-18 15:22:20 +02:00
Marko Viitanen
f85e0e4ad6
Fix for MV candidate derivation
2014-02-17 17:39:40 +02:00
Marko Viitanen
cda60897e1
Fixed inter mv_ref propagation and merge candidate mv_ref matching
2014-02-17 11:13:12 +02:00
Marko Viitanen
e6212110a1
Simplified MV scaling calculations
2014-02-17 09:58:10 +02:00
Marko Viitanen
7dee412cb0
Fixed some of the motion vector scaling problems
...
motion vector candidates are not yet scaled or selected correctly
2014-02-17 09:58:10 +02:00
Marko Viitanen
28aa20df12
Basic search for multiple reference frames
2014-02-17 09:58:10 +02:00
Ari Koivula
8e63dd29bb
Fix compiler warnings for VS2010 /W4 in intra.c.
...
- Working towards issue #11 .
- Removed intra_get_block_mode as unused.
- Removed unused parameters from functions. Many of them were remnants from
earlier data structures and earlier features of HEVC that have been removed.
- Lots of implicit conversions from larger types to smaller ones. I tried to
avoid turning all of them to explicit ones this time and opted for changing
the original data type instead. Had to do it in few cases though to stop the
changes from propagating too widely.
2014-02-14 17:15:54 +02:00