summaryrefslogtreecommitdiff
path: root/vpxenc.c
AgeCommit message (Collapse)Author
2016-12-22Fix compile warnings for target=armv7-android-gccJerome Jiang
Fix compile warnings about implicit type conversion for target=armv7-android-gcc in vpxenc.c. BUG=webm:1348 Change-Id: I9fbabd843512f2a1a09f4bb934cd091e834eed9c
2016-10-19vp8: Add control for gf boost for 1 pass cbr.Marco
Control already exists for vp9, adding it to vp8. Usage is only when error_resilient is off. Added a datarate unittest for non-zero boost. Change-Id: I4296055ebe2f4f048e8210f344531f6486ac9e35
2016-09-15apply clang-formatclang-format
Change-Id: I501597b7c1e0f0c7ae2aea3ee8073f0a641b3487
2016-09-13webmenc: remove unused 'fps' parameterJohann
Cleans -Wextra/-Wunused-parameter warning: warning: unused parameter ‘fps’ Change-Id: Ia5f9338f11ae8d0708a87c6d4e7d7e924fc3b19b
2016-08-24Add --alt-ref-aq=<int> optionYury Gitman
In the future this option will activate adaptive quantization special for altref frames. Encoder will create the adaptive quantization map on the basis of lookahead buffers similarity which is the estimate of the future motion compensation performance. Change-Id: Ia0088b3babb0f9a4899c79d8d819947ba5a03df2
2016-07-19top-level: apply clang-formatclang-format
Change-Id: Ibd5395bf8956a80f7c0df4d539c7a42c927a1fc7
2016-07-18vp9: Allow usage of lookahead for real-time, 1 pass vbr.Marco
Allow usage of lookahead for VBR in real-time mode, for 1 pass vbr. Current usage is for fast checking of future scene cuts/changes, and adjusting rate control (gf interval and active_worst/target size). Added unittests (datarate) for 1 pass vbr mode, with non-zero lag. Added an experimental option to limit QP based on lookahead. Overall positive gain in metrics on ytlive set: avgPNSR/SSIM up on average ~1-3%; several clips up by 5, 7%. Change-Id: I960d57dfc89de121c4824b9a9bf88d2814e74b56
2016-06-17remove vp10James Zern
development has moved to the nextgenv2 branch and a snapshot from here was used to seed aomedia BUG=b/29457125 Change-Id: Iedaca11ec7870fb3a4e50b2c9ea0c2b056a0d3c0
2016-05-10Add VP9 encoder API for level specification.hui su
Add control API VP9E_SET_TARGET_LEVEL that allows the encoder to control the output bitstream level and/or keep level related statistics. Usage: 255 do not care about level (default) 0 keep level related stats only 10 target for level 1 11 target for level 1.1 . . . 62 target for level 6.2 Usage for vpxenc: --target-level=0/255/10/11... Change-Id: I31d1aeca19358b893e7577b4e63748c8e614034a
2016-04-25TODO cleanup: s/EbmlGlobal/WebmOutputContext/Vignesh Venkatasubramanian
This brings the struct's name in line with WebmInputContext. Change-Id: I1a1c7ae60b006ae5de8253177d6d996f5867866d
2016-03-22Prevent encoder crash caused by row tile dependenciesYunqing Wang
In multi-thread case, the encoder may crash if using encoder option tile-rows > 0. To prevent that, force tile-rows=0 in this situation. This is a workaround for WebM issue 1095: https://bugs.chromium.org/p/webm/issues/detail?id=1095 The further fix can be done by adding synchronizations after a tile row is encoded. But this will hurt multi-threaded encoder performance. So, it is recommended to use tile-rows=0 while encoding with threads > 1. Change-Id: I656cbcc200f8d0410d09530e7981ad8f32fe7bc9
2016-02-25vp9: set kf_max_dist to a reasonable default (128)James Zern
the same as vp8, with the same reasoning from: 2a0d7b1 Reduce the default kf_max_dist to 128. see also: https://trac.ffmpeg.org/ticket/4904 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=815673 + restore vpxenc behavior of taking the library default rather than forcing 5s This change also exposes an issue with one-pass svc in cbr mode, keep the old default in datarate_test.cc for now. Change-Id: Id6d1244f42490b06fefc1a7b4e12a423a1f83e88
2016-02-11vpxenc: quiet unused param warningJames Zern
Change-Id: Ib6ed1b8c03f6c269f8d667b21b895b35363cee9e
2016-02-02Add high bit depth args to arg listhui su
So that their usage info. will show up with --help. Change-Id: I8542240dcc98e8be29ac63d081f5abb932627cbf
2016-01-18Use input framerate as timebase if none was explicitly specified.Ronald S. Bultje
After patch: $ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30 $ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null - [..] [Parsed_psnr_0 @ 0x7f8913c21e40] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271 Before patch: $ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30 $ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null - [..] [Parsed_psnr_0 @ 0x7fbdaac22780] PSNR y:27.427366 u:41.505376 v:36.853477 average:28.990890 min:22.219454 max:52.509271 $ ffmpeg -i x.ivf -f rawvideo x.yuv $ ffmpeg -f rawvideo -vcodec rawvideo -video_size 352x240 -framerate 29.97 -i x.yuv -i tennis_sif.y4m -lavfi psnr -f null - [..] [Parsed_psnr_0 @ 0x7fadf9e013a0] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271 Change-Id: Ifac2d6c2ff8379b2d318fe5cfe4be0bf1bc9f27f
2016-01-13Adding an aq mode for 360 videosDebargha Mukherjee
Different quality levels are used for different regions in the frame depending on how far they are vertically from the center. Specifically, three segments are used based on the mi_row index with respect number to the number of mi_rows in the frame. Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
2015-12-16vpxenc: don't warn about libwebm availability if writing IVF.Ronald S. Bultje
Change-Id: I1a9635a9948458e6c83f5b58764b7e720d98e2ea
2015-10-29Specify feasible parameter values for lossless modehui su
Change-Id: I53d9719dcb81fa83fe3c920a552db5a0f1cacefa
2015-09-29vpxenc: Allow non i420 input for VP10.Tom Finegan
BUG=https://code.google.com/p/webm/issues/detail?id=1066 Change-Id: I3bd26a516ef3d2742c523af570f639f9312df6df
2015-08-21vpxenc: fix DECODER ifdefJames Zern
CONFIG_VP10_ENCODER -> CONFIG_VP10_DECODER Change-Id: I6f1a798835acc4ef66bd2c5d6ffb02247c74b1d6
2015-08-17create vp10_arg_ctrl_maphui su
Change-Id: Ibe49acb022f1d557ffccb91e7bd2558870ff1a0b
2015-08-17remove unused high-bit-depth args from arg listhui su
Change-Id: I8373a0e980aaaa0d0cab8b2e69d1a897ff5aec2d
2015-08-14Remove vp10's build dependency on vp9Yaowu Xu
CONFIG_VP9_HIGHBITDEPTH is currently used by both vp9 and vp10, but in many place outside vp9/vp10, the macro was used in conjunction of CONFIG_VP9. This created a dependency on vp9 for vp10 to build. This commit removes the dependency by use CONFIG_VP9_HIGHBITDEPTH only in these places. Change-Id: I8cc007fc9cf132394c6498ce6759e606b64a6ad0
2015-08-12Add vpxenc help infoYaowu Xu
1. information on --test-decode 2. vp10 specific parameters, currently shared with vp9 Change-Id: Ida4b691052441e68b9352746988027e5a2a26f48
2015-08-12Fix high bit depth in vp10 codebaseJingning Han
Change-Id: Iacbfac29898ac7954eb6375e83873dbb7390fd47
2015-08-11Fork VP9 and VP10 codebaseJingning Han
This commit folks the VP9 and VP10 codebase and makes libvpx support VP8, VP9, and VP10. Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356
2015-07-06Expose params min-gf-interval/max-gf-intervalDebargha Mukherjee
Adds two new vp9 parameters --min-gf-interval and --max-gf-interval to enable testing based on frequency of alt-ref frames. Also adds a unit-test to test enforcement of min-gf-interval. For both these parameters the default value is 0, which indicates they are picked by the encoder, based on resolution and framerate considerations. If they are greater than zero, the specified parameter is honored. (Additional note by paulwilkins) Note that there is a slight oddity in that key frames are also GFs and considered part of GF only group. However they are treated as not being part of an arf group because for arf groups the previous GF is assumed to be the terminal or overlay frame for the previous group. (end note) Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
2015-06-05vpxenc: relocate vp8/vp9 only optionsJames Zern
move them under their respective config check to avoid some unused variable warnings when disabled Change-Id: Ic5e5280cf1bc1f56e8349676f0bedae4acef34ea
2015-06-05vpxenc: Add support for pixel aspect ratio.Frank Galligan
WebM files will adjust the display width and height according to the input pixel aspect ratio. The default pixel aspect ratio is 1:1. BUG=https://code.google.com/p/webm/issues/detail?id=1005 Change-Id: I23e0a601b7259fa9513cb86110c41b8437769808
2015-06-04Make vp9 the default codec for vpxencYaowu Xu
Change-Id: Ic3b4f3c9a6d8f9b04efb8b5ee080880895063564
2015-05-11vpxenc: make some functions staticJames Zern
silences missing-prototype warnings Change-Id: I641a61b21f9de135e59e3769a2063d5a94f34746
2015-05-11tools_common.h: fix usage_exit() prototypeJames Zern
+ the definitions in the examples silences a missing-prototype warning Change-Id: I7c064cacd6d2073a6107de6c3e2cc46ef8a68411
2015-03-13Provide information on codec controlsYaowu Xu
The commit updates the comments in vp8cx.h to make it clear which codec support each of codec control functions. Change-Id: Ibf876e289d4325bbb61ce19311da60d384624c2f
2015-03-12Rename a vp9 only control with vp9e prefixYaowu Xu
Also updated comments and doc to make it clear that the control is supported in VP9 only. Change-Id: I6f120b65135fc1185695e9e3dc29fbe0d430824b
2015-02-13Remove redundant testAdrian Grange
Change-Id: I11e4fd8dcd44b0475f3bff0545a035feb223ce55
2015-02-10Add --color-space to vpxencYaowu Xu
This enbale the encoder to set color space information for the input video, so it is then coded in the output bitstream. Change-Id: Ife03deab3c762425ccd27c4c190902c4d94a76f4
2015-02-02Require webm when explicitly requestedJohann
https://code.google.com/p/webm/issues/detail?id=906 Change-Id: I72841078ff81152d21d84ccf4d5548e757685a6d
2015-01-14Add encoder control for setting color spaceYaowu Xu
This commit adds encoder side control for vp9 to set color space info in the output compressed bitstream. It also amends the "vp9_encoder_params_get_to_decoder" test to verify the correct color space information is passed from the encoder end to decoder end. Change-Id: Ibf5fba2edcb2a8dc37557f6fae5c7816efa52650
2014-12-17Corrected value range of --cpu-used for vp9Yaowu Xu
This commit removes undefined value options of cpu-used for VP9 and changed vpxenc prompt to reflect the usable range of [-8,8] Change-Id: Ib80fef3dbb6ec9aabac45ed13e8ab6fbaf94f55e
2014-12-16Silence -Werror=unused-parameterJohann
Cast away remaining issues so that new ones don't get lost in the noise. Change-Id: Iacd6999b0686ce80f9835730d68db6382690fa92
2014-12-03Various updates to vp8.Marco
Change-Id: Icc7a816491897107764e4c936288e9000e6319b8
2014-10-27Add a new control of golden frame boost in CBR modeYaowu Xu
0 means that golden boost is off, and uses average frame target rate, a non-zero number means the percentage of boost over average frame bitrate is given initially to golden frames in CBR mode. Change-Id: If4334fe2cc424b65ae0cce27f71b5561bf1e577d
2014-10-24Add a new control of max bitrate for inter frameYaowu Xu
Change-Id: I205de3611622cff7f751ea8baf9f82784581730a
2014-10-13Resolves some lint errorsDeb Mukherjee
And also fixes some style consistency issues. Change-Id: I3dc6d44e17d2d6075dc9b02c4255a7395046c5e0
2014-10-08Fixes naming bug from previous highbitdepth patchDeb Mukherjee
Change-Id: Ife939930309ceea730dd5df594b8f36e6644bf36
2014-10-08Refactoring of highbitdepth bitshift operationsDeb Mukherjee
Moves the high bitdepth bit-shift operations to tools_common.c Change-Id: Ifab91574362609cd224d2d6bae5fde00652eb3e4
2014-10-03Remove experimental-bitstream flag for profiles>0Deb Mukherjee
Profiles 1-3 are stable enough that we can remove the experimental bitstream commandline option. Change-Id: Id2a64a08192d7eac6c45384ee34196330351c6d8
2014-10-01Adds support of 440 content.Deb Mukherjee
Adds enums and corresponding vpx level code. Change-Id: Ia402d47490a4466988d7edc6b7e3e5163f20a381
2014-10-01High-bitdepth bugfixesDeb Mukherjee
Miscellaneous bug-fixes for high bitdepth functionality. With this patch, high bit-depth profiles become mostly functional, except for an intermittent assert failure issue that is being tracked. Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
2014-09-12Change the control function of VP9 denoiser.JackyChen
Change from VP8E_SET_NOISE_SENSITIVITY to VP9E_SET_NOISE_SENSITIVITY Change-Id: Ia210a7029b26924e30973f0f9798a338e0412407