Arttu Ylä-Outinen
49677810b5
Rename config module to cfg.
...
Prevents a conflict with config.h and src/config.h so that the config.h
generated by configure is included in global.h. Fixes problems with
large input files on 32-bit systems.
2016-01-25 12:26:46 +02:00
Ari Koivula
5e734593c0
Add psnr argument to CLI
...
To disable calculation of PSNR for frames, printing 0.0dB instead.
2016-01-21 15:08:34 +02:00
Ari Koivula
7718ac378f
Add fractional FPS support.
...
Now that we put the timing info into the bitstream, the time base must
be precisely known. Represent framerate as a fraction and add timing
info only if the old floating point framerate was not used.
Deprecate cfg->framerate so it can be removed once we get patches to
FFmpeg and libav.
Add support for (num)/(denom) format to --input-fps.
2016-01-14 22:16:53 +02:00
Marko Viitanen
242edf98ad
Added calculation and writing of VUI num_units_in_tick and time_scale
2016-01-14 15:32:33 +02:00
Ari Koivula
947bae24f9
Update Doxygen documentation
...
Add module information to all header files.
Update all header file documentations to briefly say what they are, and
to use the javadoc format so the brief actually gets included into the
doxygen documentation.
Remove \file from implementation files, in order to not repeat the info
from the header files.
Add files under strategies and tools to Doxygen and update the Doxygen
settings to be just plain better.
Make README be the main page of Doxygen documentation.
2015-12-17 14:05:50 +02:00
Arttu Ylä-Outinen
0e33049d9e
Enable full mv search once again.
...
- Updates function search_mv_full so that it compiles and handles
non-square blocks.
- Enables compilation of search_mv_full.
- Sets full search radius to 32.
- Enables selecting full mv search with "--me full".
2015-12-15 12:26:26 +02:00
Arttu Ylä-Outinen
7e4f4538a4
Implement encoding AMP part modes.
...
Also adds parameter --amp for enabling AMP blocks.
2015-12-15 11:21:45 +02:00
Arttu Ylä-Outinen
c3716f7803
Add --smp option for enabling SMP blocks.
2015-12-15 11:21:45 +02:00
Ari Koivula
b6e443f3ce
Fix bug in lp-gop parsing
...
Unnecessary mod operation resulted in 0 as the reference delta.
2015-11-16 11:58:57 +02:00
Ari Koivula
cfe834bb53
Merge branch 'lowdelay_GOP'
...
Conflicts:
README.md
2015-11-14 00:05:13 +02:00
Ari Koivula
5ae97b46c6
Remove redundant LP-GOP structures
...
These structures can now be defined with the LP-GOP syntax.
The syntax for lb is g4d3r4t1 and for ultralow it is g8d3r1t1.
2015-11-14 00:01:29 +02:00
Ari Koivula
d2de2aa6aa
Add "lp-g8d4r2t2" style GOP selection
...
This is my own syntax that I've been using when testing this feature.
It allows for defining some simple type of hierarchical GOP structures.
2015-11-14 00:01:28 +02:00
Arttu Ylä-Outinen
95fb2ed9ed
Fix unexpected behavior of --deblock option.
...
Giving a single number as an argument to --deblock option would enable
deblocking and set both beta and tc to that value. This commit changes
a single number argument to be interpreted as a boolean specifying
whether to enable deblocking or not. As a result, "--deblock 0" can be
now used to disable deblocking.
This fixes deblocking being enabled in all presets.
2015-11-13 14:22:42 +02:00
Marko Viitanen
bb4f50aded
Added mv-rdo commandline parameter and use it in presets
2015-11-05 13:59:30 +02:00
Ari Koivula
ba47b3cdb1
Make --preset accept numbers
...
Ultrafast corresponds to 0 and placebo to 9.
2015-11-03 15:46:23 +02:00
Ari Koivula
74ee2f3b27
Redefine presets and include them in README.
2015-11-03 15:26:34 +02:00
Marko Viitanen
27e743a507
Added a commandline option for using a preset
...
- Defined presets: ultrafast, superfast, veryfast, faster, fast, medium,
slow, slower, veryslow, placebo
2015-11-03 12:25:06 +02:00
Marko Viitanen
641c204277
Use lowdelay flag in GOP for not using input picture caching
...
- Reduced layers to 3 in LB
2015-11-02 12:36:41 +02:00
Marko Viitanen
9a99f7972f
New GOP structure for ultralow delay
2015-11-02 11:33:16 +02:00
Marko Viitanen
388986399f
Added a definition for low-delay B GOP structure
2015-11-02 10:53:06 +02:00
Ari Koivula
115756b9d7
Accept --rd=3 parameter
2015-10-05 02:28:56 +03:00
Ari Koivula
81f5ca76cb
Accept tile configurations with either dimension as one
2015-10-02 15:06:31 +03:00
Arttu Ylä-Outinen
3a10e9e3e0
Prefix all non-static symbols with "kvz_".
2015-08-26 13:02:28 +03:00
Arttu Ylä-Outinen
d0bc58a874
Document the library API in more detail.
2015-08-26 12:10:27 +03:00
Arttu Ylä-Outinen
04ba5dca41
Make config_destroy accept a NULL pointer.
2015-08-26 12:10:26 +03:00
Ari Lemmetti
fc038cb8bf
Add --source-scan-type parameter
...
Options progressive (default)
tff for top field first
bff for bottom field first
2015-08-13 12:53:14 +03:00
Ari Lemmetti
12c391eb08
Add auto-detection for input resolution.
...
Use --input-res=auto as default.
2015-07-31 17:35:16 +03:00
Arttu Ylä-Outinen
e307b7cec4
Check that input dimensions are multiples of two.
...
Fixes wrongly accepting non-multiple of two resolutions and a segfault
when one of the input dimensions is one.
2015-07-17 10:07:24 +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
66656fdebc
Move handling of command line args to cli module.
...
- Adds struct cmdline_opts_t.
- Adds functions cmdline_opts_parse and cmdline_opts_free to cli module.
- Removes fields input, output, debug, frames and seek from struct
kvz_config.
- Removes function config_read from config module.
2015-07-06 08:25:54 +03:00
Arttu Ylä-Outinen
cecea44d37
Rename config_t to kvz_config.
2015-07-02 16:58:28 +03:00
Arttu Ylä-Outinen
cecdf4f34e
Move config validation to encoder_control_init.
...
Ensures that config is valid even when not initialized by config_read.
2015-07-02 16:47:28 +03:00
Arttu Ylä-Outinen
04a1fc07cf
Move all config validation to config_validate.
2015-07-02 16:43:19 +03:00
Ari Koivula
df50a0dae6
Move config_parse into api.
2015-07-02 15:52:24 +03:00
Ari Koivula
504f3d9c9b
Move some config initialization to config_read.
2015-07-02 15:45:34 +03:00
Arttu Ylä-Outinen
984e7cb4e0
Fix setting QP when rate control is disabled.
...
When rate control is disabled, QP and lambda are now selected like they
were before rate control was implemented.
2015-06-01 13:57:11 +03:00
Arttu Ylä-Outinen
b54d5aa91f
Select GOP picture weights according to bitrate.
...
Pictures in same layer have equal weights. At low bitrates, the difference
between low and high layers is greater than at high bitrates.
2015-05-29 11:43:42 +03:00
Arttu Ylä-Outinen
93d2a95ddc
Implement rate control in lambda domain.
...
- Rate control adjusts the lambda value.
- QP is selected according to lambda.
- Bits are allocated for GOPs and individual pictures.
2015-05-19 11:40:51 +03:00
Arttu Ylä-Outinen
d27cde55a4
Add --input-fps and --bitrate parameters.
2015-05-15 13:57:51 +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
7f504b7808
Added a commandline parameter --bipred to enable bi-pred search
2015-04-21 14:35:16 +03:00
Ari Koivula
13924a2057
Add --no-info parameter.
...
- Stops encoder information from being added to bitstream.
- The version information overhead is too big when doing comparisons with
very short sequences.
2015-04-16 17:30:36 +03:00
Marko Viitanen
f28ebbcd41
Moved GOP defining to config.c and added parameter --gop
...
* Checking that intra period and gop_len match
2015-03-30 10:09:54 +03: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
Ari Koivula
5b12830756
Rename struct config to config_t.
2015-03-04 14:01:16 +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
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
Arttu Ylä-Outinen
b6776a8cee
Add --vps-period parameter.
2015-02-18 13:55:27 +02:00
Ari Koivula
f01cbbb5ca
Add --no-signhide parameter.
2015-01-24 21:29:37 +02:00
Ari Koivula
f4bd322804
Add command line options for prediction unit depth.
2015-01-12 10:40:34 +02:00