summaryrefslogtreecommitdiff
path: root/vp8/encoder
AgeCommit message (Collapse)Author
2011-08-31Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-30Merge "Recalculate zbin_extra only if regular quantizer is being used"John Koleszar
2011-08-30Recalculate zbin_extra only if regular quantizer is being usedAlpha Lam
vp8_update_zbin_extra() is called all the time even though the fast quantizer doesn't use it. Skip this call if fast quantizer is used. Change-Id: Ia711c38431930cc2486cf59b8466060ef0e9d9db
2011-08-27Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-26Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-25Minor modification on key frame decisionYunqing Wang
This change makes sure that no key frame recoding in real-time mode even if CONFIG_REALTIME_ONLY is not configured. Change-Id: Ifc34141f3217a6bb63cc087d78b111fadb35eec2
2011-08-25Merge remote branch 'internal/upstream' into HEADJohn Koleszar
Conflicts: vp8/common/defaultcoefcounts.h vp8/common/entropy.c vp8/encoder/bitstream.c Change-Id: Idd4990c80d5b5494ac036254694015fab449bc08
2011-08-24Quiet warning by removing unused variable.Fritz Koenig
fwd_boost_score was not being computed or referenced, so remove declaration. Change-Id: Iece36cde1ec113e3c6afaff1407d24cdf12bd0a8
2011-08-24Merge "Faster vp8_default_coef_probs"Scott LaVarnway
2011-08-24Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-23Use local labels for jumps/loops in x86 assembly.Fritz Koenig
Prepend . to local labels in assembly code. This allows non unique labels within a file. Also makes profiling information more informative by keeping the function name with the loop name. Change-Id: I7a983cb3a5ba2413d5dafd0a37936b268fb9e37f
2011-08-22Reclassify optimized ssim calculations as SSE2.Fritz Koenig
Calculations were incorrectly classified as either SSE3 or SSSE3. Only using SSE2 instructions. Cleanup function names and make non-RTCD code work as well. Change-Id: I48ad0218af0cc51c5078070a08511dee43ecfe09
2011-08-22Merge "Revert "Reclasify optimized ssim calculations as SSE2.""Fritz Koenig
2011-08-22Revert "Reclasify optimized ssim calculations as SSE2."Fritz Koenig
This reverts commit 01376858cd184d820ff4c2d8390361a8679c0e87
2011-08-22Merge "Reclasify optimized ssim calculations as SSE2."Fritz Koenig
2011-08-20Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-19Reclasify optimized ssim calculations as SSE2.Fritz Koenig
Calculations were incorrectly classified as either SSE3 or SSSE3. Only using SSE2 instructions. Cleanup function names and make non-RTCD code work as well. Change-Id: I29f5c2ead342b2086a468029c15e2c1d948b5d97
2011-08-19Merge "Copy less when active map is in use"John Koleszar
2011-08-19Copy less when active map is in useAlpha Lam
When active map is specified and the current frame is not a key frame, golden frame nor a altref frame then copy only those active regions. This significantly reduces encoding time by as much as 19% on the test system where realtime encoding is used. This is particularly useful when the frame size is large (e.g. 2560x1600) and there's only a few action macroblocks. Change-Id: If394a813ec2df5a0201745d1348dbde4278f7ad4
2011-08-18Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-17Small boost to every other frame.Paul Wilkins
Instead of a single mid GF boost apply a few extra bits to every other frame. This gives a very small average metrics improvement on both derf and YT sets. Also use min GF interval as min KF interval. Change-Id: Iee238b8cae0ffaed850a5a944ac825cee18da485
2011-08-16Faster vp8_default_coef_probsScott LaVarnway
Copies from a generated table instead of building the default coeff probabilities during runtime. Change-Id: I4d9551ea3a2d7d4a4f7ce9eda006495221a8de50
2011-08-16Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-15Merge v0.9.7-p1 release int 'origin/master'John Koleszar
Change-Id: I93388d2f8846615ad1e26b975308c5e96b9b1918
2011-08-12Revert "Improved 1-pass CBR rate control"John Koleszar
This reverts commit b5ea2fbc2c1554769848774c836aad262af95072. Further testing showed noticable keyframe popping in some cases, reverting this for now to give time for a proper fix. Conflicts: vp8/encoder/onyx_if.c vp8/encoder/ratectrl.c Change-Id: I159f53d1bf0e24c035754ab3ded8ccfd58fd04af
2011-08-11Merge remote branch 'internal/upstream-experimental' into HEADJohn Koleszar
Conflicts: vp8/decoder/detokenize.c vp8/decoder/onyxd_if.c vp8/vp8_common.mk Change-Id: Ifca1108186a8bc715da86a44021ee2fa5550b5b8
2011-08-06Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I9c479c9b6e72aa78b412d25c00b8075eaca5229d
2011-08-05Merge "Adjust half-pixel only search"Yunqing Wang
2011-08-05Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Ic698ea5f5b31a5faf467eb0da4b762f9586df938
2011-08-03Fix source buffer selectionJohn Koleszar
This patch fixes a bug in the interaction between the recode loop and spatial resampling. If the codec was in a spatial resampling state, and a subsequent iteration of the recode loop disables resampling, then the source buffer must be reset to the unscaled source. Change-Id: I4e4cd47b943f6cd26a47449dc7f4255b38e27c77
2011-08-03Adjust half-pixel only searchYunqing Wang
Changed motion search in vp8_find_best_half_pixel_step() to be the same as in vp8_find_best_sub_pixel_step(), which checks 5 points instead of 8 points. This only affects real-time mode with cpu-used >=9. Tests showed it gives 2% encoding speedup with a quality loss(psnr) of up to 0.5%. Change-Id: I16049cad1535002346d46cfdfad345bfc3dc5146
2011-08-01Fix building with --disable-postprocJohn Koleszar
Change-Id: I7e6bc28e7974a376da747300744e0dd5dc1d21e9
2011-07-30Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I473166452c0ed5a4219b5e7d96a91a6641b11b9d
2011-07-29Correctly track sharpness in vp8cx_pick_filter_level_fastJohn Koleszar
Make sure to update last_sharpness_level from the current sharpness_level whenever it changes. Change-Id: I0258d2f5b11a407abf6176a8d4c4994d925943f0
2011-07-28Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: Iaca87acc9726b5173d638528684d154538ec01e6
2011-07-27Preload reference area in sub-pixel motion search (real-time mode)Yunqing Wang
This change implemented same idea in change "Preload reference area to an intermediate buffer in sub-pixel motion search." The changes were made to vp8_find_best_sub_pixel_step() and vp8_find_best_half _pixel_step() functions which are called when speed >= 5. Test result (using tulip clip): 1. On Core2 Quad machine(Linux) rt mode, speed (-5 ~ -8), encoding speed gain: 2% ~ 3% rt mode, speed (-9 ~ -11), encoding speed gain: 1% ~ 2% rt mode, speed (-12 ~ -14), no noticeable encoding speed gain 2. On Xeon machine(Linux) Test on speed (-5 ~ -14) didn't show noticeable speed change. Change-Id: I21bec2d6e7fbe541fcc0f4c0366bbdf3e2076aa2
2011-07-27Merge "Fix range checks in motion search"Yunqing Wang
2011-07-27Fix range checks in motion searchYunqing Wang
There were some situations that the start motion vectors were out of range. This fix adjusted range checks to make sure they are checked and clamped. Change-Id: Ife83b7fed0882bba6d1fa559b6e63c054fd5065d
2011-07-27Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I1ae82458536ba2f0969e1bea78f41cd16fe96b79
2011-07-26cosmetics: consistently use [u]int64_tJames Zern
Removes mixed usage of (unsigned) long long and INT64. Fixes Issue #208. Change-Id: I220d3ed5ce4bb1280cd38bb3715f208ce23cf83a
2011-07-26Merge remote branch 'internal/upstream' into HEADJohn Koleszar
Conflicts: vp8/decoder/detokenize.c vp8/decoder/onyxd_int.h Change-Id: Ib9b516b939358ac8bf694200a8425fdd62c8d149
2011-07-26Merge remote branch 'origin/master' into experimentalJohn Koleszar
Conflicts: vp8/decoder/detokenize.c vp8/decoder/onyxd_int.h Change-Id: Idc301ae630dc1aedeb85674ecfdcf1eb28420f81
2011-07-25Specify size for argument pushed to stackYunqing Wang
The change fixes building error on Win64. Change-Id: I63d25b26220c4da8a98ca2e36530cbb802468e6b
2011-07-23Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-07-23Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I0a24d6762598e5fee30f264de1dcd10331c01eac
2011-07-22Merge "fix sharpness bug and clean up"Johann
2011-07-22fix sharpness bug and clean upJohann
sharpness was not recalculated in vp8cx_pick_filter_level_fast remove last_filter_type. all values are calculated, don't need to update the lfi data when it changes. always use cm->sharpness_level. the extra indirection was annoying. don't track last frame_type or sharpness_level manually. frame type only matters for motion search and sharpness_level is taken care of in frame_init move function declarations to their proper header Change-Id: I7ef037bd4bf8cf5e37d2d36bd03b5e22a2ad91db
2011-07-22Merge "Preload reference area to an intermediate buffer in sub-pixel motion ↵Yunqing Wang
search"
2011-07-22Preload reference area to an intermediate buffer in sub-pixel motion searchYunqing Wang
In sub-pixel motion search, the search range is small(+/- 3 pixels). Preload whole search area from reference buffer into a 32-byte aligned buffer. Then in search, load reference data from this buffer instead. This keeps data in cache, and reduces the crossing cache- line penalty. For tulip clip, tests on Intel Core2 Quad machine(linux) showed encoder speed improvement: 3.4% at --rt --cpu-used =-4 2.8% at --rt --cpu-used =-3 2.3% at --rt --cpu-used =-2 2.2% at --rt --cpu-used =-1 Test on Atom notebook showed only 1.1% speed improvement(speed=-4). Test on Xeon machine also showed less improvement, since unaligned data access latency is greatly reduced in newer cores. Next, I will apply similar idea to other 2 sub-pixel search functions for encoding speed > 4. Make this change exclusively for x86 platforms. Change-Id: Ia7bb9f56169eac0f01009fe2b2f2ab5b61d2eb2f
2011-07-22Merge remote branch 'origin/master' into experimentalJohn Koleszar
Change-Id: I8b0a76b3232c8cff15c0ca5289e18af6889e5095