summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-06vp9-svc: Hybrid search on spatial layers whose base is key.Marco Paniconi
For spatial layers whose base is a key frame, i.e., when svc.layer_context[cpi->svc.temporal_layer_id].is_key_frame = 1, allow for hybrid search, similar to what we do on key frames. For small blocks (<= 8x8) rd-based intra search will be used, otherwise non-rd pick mode is used. Feature is controlled by nonrd_keyframe, which is set to 1 for now on non-base spatial layers, so this change has currently no effect. Small change only when inter-layer prediction is off, as we now call vp9_pick_intra_mode instead of vp9_pick_inter_mode on key frame. But this change is very small/insignificant. Change-Id: I5372470f720812926ebbe6c4ce68c04336ce0bdd
2018-04-06Merge "remove support for yuv 411"Johann Koenig
2018-04-06Revert "vp9-svc: Fix to first superframe when inter_layer is off."Marco Paniconi
This reverts commit 5cc8df5bcfe49fbfca21ee57401c7807c048751b. Reason for revert: <INSERT REASONING HERE> We need to do this on all key frames in the stream (not just the first one). Will make another cleaner change for this. Original change's description: > vp9-svc: Fix to first superframe when inter_layer is off. > > When the application selects the setting INTER_LAYER_PRED_OFF > each spatial stream should be decodeable separately. > For this we need to force key frames on all spatial layers > on the first superframe. > > In order to maintain the quality at the beginning of the stream > the active_worst for spatial layer of the second superframe is set > to the last_QP of the correspondng spatial layer of the first superframe. > Also make sure nonrd_keyframe is set for non-base spatial layers. > > Change only affects SVC mode wit number_spatial_layers > 1 and > svc->disable_inter_layer_pred == INTER_LAYER_PRED_OFF. > And only affects first and second frame of sequence. > > Change-Id: I8ee9a0873ab1d3a02515774571f719617771ad41 TBR=marpan@google.com,builds@webmproject.org,jianj@google.com Change-Id: If73d9f3932224fc6751e773763adf7e8ee67d17f No-Presubmit: true No-Tree-Checks: true No-Try: true
2018-04-05vp9-svc: Fix to first superframe when inter_layer is off.Marco Paniconi
When the application selects the setting INTER_LAYER_PRED_OFF each spatial stream should be decodeable separately. For this we need to force key frames on all spatial layers on the first superframe. In order to maintain the quality at the beginning of the stream the active_worst for spatial layer of the second superframe is set to the last_QP of the correspondng spatial layer of the first superframe. Also make sure nonrd_keyframe is set for non-base spatial layers. Change only affects SVC mode wit number_spatial_layers > 1 and svc->disable_inter_layer_pred == INTER_LAYER_PRED_OFF. And only affects first and second frame of sequence. Change-Id: I8ee9a0873ab1d3a02515774571f719617771ad41
2018-04-05vp9-svc: Fix to disable cyclic refresh on key superframes.Marco Paniconi
Cyclic refresh is disabled on key frames, but we did not disable it for for spatial layers whose base is a key frame (i.e., on a key-superframe). This fix means generally somewhat lower frame-level QP will be used for those spatial layers whose base is a key frame, which will generally mean little better quality for the key-superframes. Change-Id: Idf090651aa2f5856fb6696c89198a9f6d5d50280
2018-04-05update codereview.settingsJohann
Using pdfium as a reference: https://pdfium.googlesource.com/pdfium/+/master/codereview.settings Change-Id: I30874cf9f1d575325c32342146137a1952db91ba
2018-04-04ios configure: quiet shell warningJohann
Generating file lists on a non-mac with: --target=x86-iphonsimulator-gcc --enable-external-build the lack of xcrun would cause a warning to print: libvpx/build/make/configure.sh: line 1397: [: : integer expression expected Change-Id: I4623b6c5b65296bc71986cd042823f4be9427b42
2018-04-04Merge "vp9-svc: Fix in choose_partitioning for different scaling."Marco Paniconi
2018-04-04Merge "Fix to svc sample enocoder for visual studio build."Marco Paniconi
2018-04-03vp9-svc: Fix in choose_partitioning for different scaling.Marco Paniconi
In the SVC encoder LAST ref frame should be the last temporal reference at the same resolution. This is the case for the default/fixed patterns, but may not be the case for arbitrary pattern in flexible mode. Add check that the LAST reference frame has same resolution as the current frame. If the reference scale for LAST is different from current treat the current frame as key frame just for the purpose of superblock partitioning. This avoids potential segfault in vp9_int_pro_motion_estimation() for different scaled reference. Change-Id: I4276ff616de46cd4e12c73316f85ae313f170242
2018-04-03rm CONVERT_TO_SHORTPTR in vpx_highbd_comp_avg_predLinfeng Zhang
BUG=webm:1388 Change-Id: I1d0dd9af52a1461e3e2b2d60e8c4b6b74c3b90b0
2018-04-03Fix to svc sample enocoder for visual studio build.Marco Paniconi
Fix to sample encoder, for visual studio buid failure: conversion from 'uint64_t' to 'int'. Change-Id: I385ab8482e1ee97da9872437f8286d9071e38e0e
2018-04-02remove support for yuv 411Johann
Previously we attempted to convert 411 input. Remove support because malformed 411 input can cause the conversion to crash. BUG=webm:1386 Change-Id: I3d41465a94867ee7f8eaa43fb76beb41f8fa644b
2018-04-02vp9-svc: Fix to svc sample encoder for write_out.Marco Paniconi
When writing out stream for spatial layer N, make sure to include all spatial layers up to N. Fixes an issue with the streams when frame dropping occurs. Change-Id: I1e20b7dac6b94dcda751043541dd8a12f7df6d8c
2018-04-02Merge "helper script for sanitizer testing"Johann Koenig
2018-04-02Merge changes I5704bd66,I4d548e97Linfeng Zhang
* changes: Shrink size of mode_map in struct TileDataEnc Update sad4d x86 functions
2018-03-31Merge "vp9_datarate_test: relax over shoot constraints"James Zern
2018-03-30Merge "VP9 SVC: Write bitstream for each spatial layer in sample."Jerome Jiang
2018-03-30vp9_datarate_test: relax over shoot constraintsJames Zern
in BasicRateTargetingVBRLagZero and BasicRateTargetingVBRLagNonZeroFrameParDecOff after: e0b28ad69 Add extra case to wq_err_divisor() BUG=webm:1512 Change-Id: Id181613cc191ff2a2281deffe141efb982501edf
2018-03-30VP9 SVC: Write bitstream for each spatial layer in sample.Jerome Jiang
Added control for denoiser in the sample SVC encoder. Change-Id: I8e62aa2fc13a943eb110cb33e419e912a898bbc7
2018-03-30Code cleanup for datarate tests.Jerome Jiang
Add/Remove static to functions. Name change. Change-Id: I5de3efc23cd151fe8e70fe67a7a11acfcfa707dc
2018-03-29Split datarate_test.cc to vp8, vp9, svc ones.Jerome Jiang
As we add more tests to datarate_test.cc, it's growing bigger and hard to find specific test. Split it to vp8, vp9 and svc ones. Change-Id: Ie8c302010cf304a95554bee19d87ddc90498d0fb
2018-03-29Merge "test: use testing::*tuple instead of std::tr1"James Zern
2018-03-29Merge "vp9-svc: Fix in pickmode for key frames."Marco Paniconi
2018-03-29Merge "VP9 SVC: Add enum type for framedrop_mode."Jerome Jiang
2018-03-29VP9 SVC: Add enum type for framedrop_mode.Jerome Jiang
Change-Id: I3d4697b00729553e0860762b9264e29b8a89b9d4
2018-03-29helper script for sanitizer testingJohann
source tools/set_analyzer_env.sh <sanitizer> will set the compiler, flag, and sanitizer variables necessary to build and run a variety of sanitizers. Change-Id: I5dd2ae947cb337d5ccf2a11e9fe87991bc8ba0c8
2018-03-29Merge "vp9: [loongson] optimize vpx_convolve8 with mmi."xiwei gu
2018-03-28vp9-svc: Fix in pickmode for key frames.Marco Paniconi
For the fixed/default SVC patterns, GOLDEN is the spatial reference, except on key frames, where LAST is labeled as the spatial reference. The current code was assuming GOLDEN is always the spatial reference for the purpose of selecting the subpel motion (due to the downsampling filter). Fix is make sure flag_svc_subpel is set and used with spatial_ref, which is labeled as the proper spatial reference before entering mode check. Some quality improvement on key frames. Change-Id: Id236bcd47055b035731cc910ed84449d7e29f50c
2018-03-28Merge "vp9-svc: Modify logic for frame dropping with spatial layers."Marco Paniconi
2018-03-28vp9-svc: Modify logic for frame dropping with spatial layers.Marco Paniconi
In the constrained framedrop mode for svc: modify the buffer check condition relative to (non-zero) dropmark to include uppper spatial layers, in addition to the current spatial layer. But keep the single layer check if the buffer goes below zero, since in this case (buffer underflow) we should force drop of that layer regardless of upper layers. Change-Id: Id277f0b4a3ae6275effdd5f5f0c80e3229c17424
2018-03-28Shrink size of mode_map in struct TileDataEncLinfeng Zhang
To reduce the memcpy() cycles in vp9_rd_pick_inter_mode_sb(). The maximum value of mode_map is (MAX_MODES - 1) = 29. Change-Id: I5704bd66838ea0b075f0afb001f5cbebfd3f1602
2018-03-28Update sad4d x86 functionsLinfeng Zhang
Speed change is marginal. Change-Id: I4d548e9763ce43bd546f19132202f7a8509a32bf
2018-03-28test: use testing::*tuple instead of std::tr1James Zern
googletest imports tuple into testing to allow for compatibility across c++ versions where tuple may be in std::tr1 or std. fixes deprecation warnings under visual studio 2017 Change-Id: Id78b372d5478b12d8c8f63fd3f2166fec25aa8be
2018-03-28Merge "Add speed test in SADx4Test"Linfeng Zhang
2018-03-28Add speed test in SADx4TestLinfeng Zhang
Change-Id: I42dd3df8c13c0a6d08ce28e27e8917b5d831fc1a
2018-03-28vp9: [loongson] optimize vpx_convolve8 with mmi.gxw
1. vpx_convolve8_vert_mmi 2. vpx_convolve8_horiz_mmi 3. vpx_convolve8_mmi 4. vpx_convolve8_avg_mmi 5. vpx_convolve8_avg_vert_mmi Change-Id: I41a6b3b4f327d6b67d282e0163cfa0aee8648abe
2018-03-28vp9-svc: Add check in datarate unittests for frame-dropping.Marco Paniconi
Add verfication for constrained svc framedrop mode: check that if a given spatial is dropped, all uppper layers must be dropped. Change-Id: I9b4821b23c95d1d9d0c031a41af19984647ec5dc
2018-03-27vp9-svc: Add logic to enable for constrained framedrop.Marco Paniconi
Add the logic for the constrained framdrop mode for SVC. Add test case in datarate unittests. Also lower target bitrates in the tests to better test frame dropper. Change-Id: I8ee1b8cb56d835c233ad1fbe0fc1456cb2e7291f
2018-03-27Merge "third_part/googletest: update to release-1.8.0-742-g7857975"Johann Koenig
2018-03-26vp9-svc: Allow for setting frame drop thresholds per layer.Marco Paniconi
Add encoder control to set the frame drop thresholds per spatial layer, and add a frame drop mode: 0 = per-layer drop, and 1 = constrained drop mode (a drop on a given layer forces drops to all upper layers). Default is mode 0 (per-layer dropping). Implementation for mode 1 will come in subsequent change. If the control is not used, then the spatial layer frame drop thresholds (water mark) are all equal and set to the value given by the encoder config (oxcf->drop_frames_water_mark). Bump up the ABI version. Change-Id: Id038d4181b86fa98b3d44d026f96d5f344d81629
2018-03-26third_part/googletest: update to release-1.8.0-742-g7857975Johann
Address std::tr1::tuple warnings: https://github.com/google/googletest/issues/1111 The unsigned overflow fix has been superseded by: https://github.com/google/googletest/pull/1180 Change-Id: I92dc0ba08a4d0d63f5e5b2da7b64f4a4642ed9ab
2018-03-26msvs build: only fix_file_list when it is brokenJohann
Clears a warning when generating VS project files with older versions of bash: declare: -n: invalid option Change-Id: Id0c0bc17dc5a1599f7d2d73e3cc9259a45540f3f
2018-03-24Merge "Adjustment to initial q range estimate and kf boost."Paul Wilkins
2018-03-23Merge "Restore emms usage on x86_64 after 726b021a12c1b"Martin Storsjö
2018-03-23Restore emms usage on x86_64 after 726b021a12c1bMartin Storsjo
Even on x86_64, emms has to be called if the x87 state has been clobbered - the calling code (either within libvpx or in a caller outside of libvpx) may be using the x87 instructions, even though use of them isn't all that common on x86_64. This fixes builds with clang for mingw/x86_64. Change-Id: I1f6072835590b862bad156f17331ba65c813ddd9
2018-03-23Merge "thumb: Remove a brittle, ugly and unused arm->thumb conversion"Martin Storsjö
2018-03-23Merge changes from topic "llvm-mingw"Martin Storsjö
* changes: configure: Add an arm64-win64-gcc target test: Check for ARCH_X86_64 in addition to _WIN64 configure: Add an armv7-win32-gcc target ads2gas: Add a -noelf option
2018-03-23Revert "remove fldcw/fstcw from Win64 builds"Johann Koenig
This reverts commit 60a3cb9ad840377d46286bfd703c30a4a4ee56e2. Reason for revert: x87 instruction usage might not be as clear cut as I would like. At the very least, llvm mingw builds appear to having issues with emms. Original change's description: > remove fldcw/fstcw from Win64 builds > > _MCW_PC (Precision control) is not supported on x64: > https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/control87-controlfp-control87-2 > > The x87 FPU is not used on Win64 or ARM so setting the x87 control word > is not necessary. The SSE/SSE2 and ARM FPUs don't have a precision > control - the precision is embedded in each instruction - so the need to > set the control word is also gone. BUG=webm:1500 Change-Id: I25bcfa96bc9c860f6c7e03315d75fa6fd1d88ec5
2018-03-23Merge "remove fldcw/fstcw from Win64 builds"Johann Koenig