summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2018-08-03vp9: Adjust qp_thresh on slide change overshoot detectionMarco Paniconi
For real-time screen-content mode: increase the qp_thresh for max_Q setting on slide changes. This will make bitrate spikes less likely on slide changes. Change-Id: Ie13524a06490214456b1c9c042a864ea0d0750c5
2018-08-02vp9: Add zero_temp_sad count to scene detection.Marco Paniconi
For real-time screen-content mode: makes the scene/slide change detection more robust. Change-Id: I28d8d28b42bb92d527811f814bf14bbbbb53ab25
2018-08-03Merge "vp9: Disable re_encode_overshoot feature for speed >= 6."Marco Paniconi
2018-08-02vp9: Increase min_thresh for slide change detectionMarco Paniconi
For real-time screen-content mode: increase min_thresh to avoid some false detection. Change-Id: I3e93dea63cbd65e3ad5d0af7eabf0d3686fe9943
2018-08-02vp9: Disable re_encode_overshoot feature for speed >= 6.Marco Paniconi
For real-time screen content mode: for speed >= 6 disable the re_encode_overshoot feature. This means for speed >= 6 the Q and rate control is reset on slide changes based on the scene/slide detection and the current Q (and not on a first pass encoded frame at current Q). This reduces encode time on slide changes, but may be less accurate in deciding when to reset/max-out the Q. Change-Id: Id0fdcafd55bc43bd8b3afee211e524f37c8ddce6
2018-08-02Merge "vp9: Refactor nonrd pickmode: new mv search"Jerome Jiang
2018-08-02Merge "Use mesh full pixel motion search to build the source ARF"Jingning Han
2018-08-02Merge "Add frame pointer to support recon frames in tpl model"Jingning Han
2018-08-01Use mesh full pixel motion search to build the source ARFJingning Han
Append mesh search to the diamond shape search to refine the full pixel motion estimation for source ARF generation. It improves the average compression performance. Speed 0 avg PSNR overall PSNR SSIM mid -0.18% -0.18% -0.22% hd -0.25% -0.23% -0.36% nflx2k -0.22% -0.23% -0.37% Speed 1 avg PSNR overall PSNR SSIM mid -0.10% -0.08% -0.11% hd -0.25% -0.27% -0.38% nflx2k -0.20% -0.20% -0.34% The additional encoding time is close to the sample noise range. For bus_cif at 1000 kbps, the speed 0 encoding time goes from 83.0 s -> 83.6 s. Change-Id: I48647f50ec3e8f7ae4550a4bde831f569f46ecf3
2018-08-01vp9: Refactor nonrd pickmode: new mv searchJerome Jiang
Move new mv search to a separate function. Change-Id: I6ef22d03ccad7b87cb5cd611094de204d508f63e
2018-08-01vp9: Refactor nonrd pickmode: interp filter.Jerome Jiang
Move interp filter search to new function. Change-Id: I6ac57d5b3800c9944732a84a4d4a825a6c0f4c35
2018-08-01vp9: Refactor nonrd pickmode: tx_size.Jerome Jiang
Remove duplicated code to calculate transform size. Change-Id: Id71772607eea911f24b59168c0629ba5ff891afb
2018-08-01Merge "vp9_encoder: make setup_tpl_stats() static"James Zern
2018-08-01Merge "vp9: Clamp tx_size in model_rd_large"Marco Paniconi
2018-07-31vp9_encoder: make setup_tpl_stats() staticJames Zern
Change-Id: If96519fb1cb4963cb6548c803253359a35621eb0
2018-07-31vp9: Clamp tx_size in model_rd_largeMarco Paniconi
For nonrd_pickmode: add clamp/check to make sure tx_size is not set to lower than 8X8, for the model_rd_large function (which is only called for big block sizes). No change in behavior. Change-Id: I9c6093068e406ac16cfd6784ba75868906225378
2018-07-31vp9: enable tpl model in high-bitdepth w/8-bit outputJames Zern
this keeps the output between CONFIG_VP9_HIGHBITDEPTH=0/1 the same when targeting 8-bit. Change-Id: I5290681fdd3e0c1620578e5f804f68010c6dd210
2018-07-31vp9: Remove assert from model_rd in non-rd pickmode.Marco Paniconi
The assert checks for tx_size >= 8x8, but 4x4 can be set in some cases. Change-Id: I8bf9683e1add768becaa1208e1709ad0470e3850
2018-07-30Add frame pointer to support recon frames in tpl modelJingning Han
Add frame pointer to re-use spare frames to store the reconstructed frames. Change-Id: I870aa048fc9b7d8b356aa73df3a92b4670425f95
2018-07-31Merge changes Ibafb6157,Ibebced5dJingning Han
* changes: Move frame pointer assignment outside block loop in tpl model Refactor tpl_model_store input parameters
2018-07-31Merge "vp9: Add scene change detection flag to cyclic refresh setup"Marco Paniconi
2018-07-31Move frame pointer assignment outside block loop in tpl modelJingning Han
Change-Id: Ibafb61577a6293c6ad32bda484a786602afda2e6
2018-07-30Refactor tpl_model_store input parametersJingning Han
Simplify the pass-in data structure. Use a reference TplDepStats pointer to replace multiple data sent in. Change-Id: Ibebced5d7f411d2c4a8a34a9b7eb87453fb78d13
2018-07-30vp9: Add scene change detection flag to cyclic refresh setupMarco Paniconi
Disable cyclic refresh on slide/scene change frame. It was already disabled on the re-encode for the slide change, but this change makes sure its always disabled on a detected slide change (which may not be re-encoded at high Q). Change-Id: I1195c855bca25985d4d41e5b657adf124e901760
2018-07-31Merge "Use diamond search to build tpl model and arf frames"Jingning Han
2018-07-29Merge "Remove unused variables from VP9_COMP"Jingning Han
2018-07-28Merge "Remove an extra vp9_encode_frame call"Angie Chiang
2018-07-27Remove unused variables from VP9_COMPJingning Han
Change-Id: I3bdd44e65b56c7600b9faadd2c117138c3911c14
2018-07-27Use diamond search to build tpl model and arf framesJingning Han
Use diamond search for full pixel motion estimation to build the temporal dependency model and the source arf frame. This gives better full pixel motion estimation accuracy. It improves the compression performance. In speed 0, avg PSNR overall PSNR SSIM midres -0.32% -0.30% -0.65% hdres -0.88% -0.91% -1.31% nflx2k -0.47% -0.48% -0.81% In speed 1, avg PSNR overall PSNR SSIM midres -0.24% -0.28% -0.50% hdres -0.82% -0.83% -1.18% nflx2k -0.58% -0.60% -0.89% The encoding speed change is minor due to the fact that such motion estimation is triggered once at the beginning of each group of picture coding. Change-Id: Ib25c0ff4f7450c85fd7a38d24319bd7ae1b9dac8
2018-07-27Remove an extra vp9_encode_frame callAngie Chiang
The coding performances drop slightly in speed 0 lowres 0.021% midres 0.043% hdres 0.087% The speedups in speed 0 are observed as follow city_cif.y4m 4.5% speedup pamphlet.y4m 6.9% speedup Change-Id: I2f6209964ffdf7a93919b79033d8e6f9bc44d824
2018-07-27Merge "vp9: 4x4 tx_size for nonrd-pickmode for screen content"Marco Paniconi
2018-07-26vp9: 4x4 tx_size for nonrd-pickmode for screen contentMarco Paniconi
Force 4x4 transform size under some conditions for real-time screen-content mode. Improvemet on text in some screen clips. Change-Id: I77cafa23ea1060ef4334dc07eac53189bf80e0ec
2018-07-27Merge "Fix multi-thread encoder result test"Hui Su
2018-07-26Fix multi-thread encoder result testHui Su
Fix multi-thread encoder result test induced by the prune_ref_frame_for_rect_partitions speed feature. BUG=webm:1552 Change-Id: Idc3b3759651f76285ffd90059c6a2846c4d91a00
2018-07-26Merge "vp9: Modify condition for force test of intra"Marco Paniconi
2018-07-26Merge "Clean up get_overlap_area function"Jingning Han
2018-07-26Merge "Factor out mode estimation process in tpl model build"Jingning Han
2018-07-25vp9: Modify condition for force test of intraMarco Paniconi
For real-time/nonrd_pickmode: under some conditions force check of intra modes for flat blocks with motion. Reduces artifacts for screen-content mode. Change-Id: If320f41a90982b14c48d91150f59f048a62982b1
2018-07-25vp9: Avoid early breakout on slide changeMarco Paniconi
For real-time screen content: don't allow early breakout in nonrd-pickmode on slide change. Avoid artifacts. Change-Id: I09c6927a5d85b46ce059ea5954a3719a7362fb99
2018-07-25Merge "Revert "vp9: Adjust reset segment for real-time screen-content""Marco Paniconi
2018-07-25Merge "Fix typos in txfm_rd_in_plane()"Hui Su
2018-07-25Revert "vp9: Adjust reset segment for real-time screen-content"Marco Paniconi
This reverts commit d72cd51d83947064ef6354f02b1df59d2d3f1317. Reason for revert: <INSERT REASONING HERE> Doesn't seem to really remove the artifact that was the cause for this change. Reverting for now. Original change's description: > vp9: Adjust reset segment for real-time screen-content > > For real-time screen content mode when the short_circuit > flat_blocks feauture is enabled: reset segment to 0 for > coding block if its flat, regardless of temporal source_sad. > Reduces some artifacts on flat areas. > > Change-Id: I9620e424bedc5a13f87cc4f66af7c0e86043c89c TBR=marpan@google.com,builds@webmproject.org,jianj@google.com # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I83ee9fd75bfb621a4f3e9afbcc07e7c6ca5c51d6
2018-07-25Clean up get_overlap_area functionJingning Han
Remove unneeded variable definition. Change-Id: Ifc8097b249acee86301e2040df8d39ecaca5ab17
2018-07-25Merge "Limit min Q for normal frames."Paul Wilkins
2018-07-24Factor out mode estimation process in tpl model buildJingning Han
Use standalone function to process the mode search and rd cost estimate for a given coding block. Change-Id: I77cdbded43966c4546e5407ae318129d89d888a4
2018-07-25Merge "vp9: Fix to the segment weight for cyclic refresh."Marco Paniconi
2018-07-24Fix typos in txfm_rd_in_plane()Hui Su
Change-Id: I1c62e51f5ccd33ff74abc3385410525bcae2fedd
2018-07-24vp9: Modify logic for flat blocks in nonrd-pickmode.Marco Paniconi
For real-time screen content mode: when slide change is detected, for spatially flat blocks (source_variance = 0) on the re-encoded frame, skip inter modes (so force intra) if non-zero temporal variance is detected for the coding block. Add flag to keep track of re-encoded frame at max Q. Reduces artifacts on slide change. Change-Id: I28151f412aba6ab8cb03f30087c7ce16d443654b
2018-07-24Limit min Q for normal frames.Paul Wilkins
This patch limits the active min Q for normal frames based on the previous KF/GF/ARF. In a few cases, especially at the end of a clip where there has been systemic underspend, (as is often the case with slide shows), this prevents the encoder rapidly dropping Q on normal frames (just to try and use up bits), such that they end up with a lower Q than the key frame / GF / ARF off which they key. Change-Id: Ic8def5c0d1e37ca2202e007ec1d13e501c0a91dd
2018-07-24Merge "vp9: Adjust reset segment for real-time screen-content"Marco Paniconi