summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-06-01remove some magic weights associated with sad_per_bitYaowu Xu
sad_per_bit has been used for a number of motion vector search routines with different magic weights: 1, 1/2 and 1/4. This commit remove these magic numbers and use 1/2 for all motion search routines, also reformat a number of source code lines to within 80 column limit. Test on cif set shows overall effect is neutral on all metrics. <=0.01% Change-Id: I8a382821fa4cffc9c0acf8e8431435a03df74885
2011-05-31Merge "vp8_pick_inter_mode code cleanup"Scott LaVarnway
2011-05-31vp8_pick_inter_mode code cleanupScott LaVarnway
Small code cleanups before attempting to reduce the size of bmi found in BLOCKD. Change-Id: Ie9c14adb53afd847716a75bcce067d0e6c04f225
2011-05-31Initialize first_time_stamp_everJohn Koleszar
Misplaced #endif caused first_time_stamp_ever to only be initialized if CONFIG_INTERNAL_STATS was set. Change-Id: I2296a4ab00f7dfb767583edcc5d59b94f48c0621
2011-05-27Merge "bug fix check frame buffer index before copy"John Koleszar
2011-05-27bug fix check frame buffer index before copyJames Berry
in onyx_if.c update_reference_frames() make sure that frame buffer indexes are not equal before preforming a buffer copy. If two frames share the same buffer the flags will already be set correctly. Change-Id: Ida9b5516d08e3435c90f131d2dc19d842cfb536e
2011-05-27Merge "Use hex search for realtime mode speed>4"Yunqing Wang
2011-05-27Use hex search for realtime mode speed>4Yunqing Wang
Test showed using hex search in realtime mode largely speed up encoding process, and still achieves similar quality like the diamond search we have. Therefore, removed the diamond search option. Change-Id: I975767d0ec0539f9f6ed7fdfc09506e39761b66c
2011-05-27Merge "Broken EC after MODE_INFO size reduction"Scott LaVarnway
2011-05-27Merge "Remove unused code"Yunqing Wang
2011-05-27Remove unused codeYunqing Wang
Hex search is not called in rdopt.c Change-Id: I67347f03e13684147a7c77fb9e9147e440bb5e8e
2011-05-26Broken EC after MODE_INFO size reductionScott LaVarnway
This patch fixes the compiler errors and the seg fault when running decode_with_partial_drops. Change-Id: I7c75369e2fef81d53b790d5dabc327218216838b
2011-05-26Merge "Do not copy data between encoder reference buffers."John Koleszar
2011-05-26Merge "fix the mix use of errorperbit and sadperbit"Yaowu Xu
2011-05-26Merge "Use int_mv instead of MV in vp8_mv_cont"Scott LaVarnway
2011-05-25fix the mix use of errorperbit and sadperbitYaowu Xu
error_per_bit and sad_per_bit were designed as estimates of a bit worth of sum squared error and sum absolute difference respectively. Under this assumption, error_per_bit should be used in combination with 2nd order errors (variance or sum squared error) while sad_per_bit should be used in combination with 1st order SADs in motion estimation. There were a few places where sad_per_bit has been misused with variances, this commit changes to use error_per_bit for those places, also changes parameter names to properly indicate which constant is being used. On cif set, the change has a universal gain by all metrics: 0.13% by average/overall psnr and 0.1% by ssim. Change-Id: I4850fdcc3fd6886b30f784bd843f13dd401215fb
2011-05-25Merge " Use var8x8 instead of get8x8var in VP8_UVSSE"Yunqing Wang
2011-05-25Merge "Return sse value in vp8_variance SSE2 functions"Yunqing Wang
2011-05-25remove code not in useYaowu Xu
Change-Id: I6e5e86235d341cce3b02abda26dbeb71940ed955
2011-05-25Return sse value in vp8_variance SSE2 functionsYunqing Wang
Minor modification. Change-Id: I09511d38fd1451d5c4106a48acdb3f766ce59cb7
2011-05-25 Use var8x8 instead of get8x8var in VP8_UVSSEAttila Nagy
'sum' returned by get8x8var is not used and var8x8 has optimizations for more platforms. Change-Id: I4a907fb1a05f285669fb0b95dc71d42182c980f6
2011-05-24Fix a bug happening while encoding at profile=3Yunqing Wang
While profile=3, there is no sub-pixel search. Distortion and SSE have to calculated using get_inter_mbpred_error(). Change-Id: Ifb36e17eef7750af93efa7d0e2870142ef540184
2011-05-24Use int_mv instead of MV in vp8_mv_contScott LaVarnway
Less operations. Change-Id: Ibb9cd5ae66b8c7c681c9a654d551c8729c31c3ae
2011-05-24Removed unused variable warningsScott LaVarnway
Change-Id: I6e5e921f03dc15a72da89a457848d519647677a3
2011-05-24Merge "MODE_INFO size reduction"Scott LaVarnway
2011-05-24MODE_INFO size reductionScott LaVarnway
Declared the bmi in MODE_INFO as a union instead of B_MODE_INFO. This reduced the memory footprint by 518,400 bytes for 1080 resolutions. The decoder performance improved by ~4% for the clip used and the encoder showed very small improvements. (0.5%) This reduction was first mentioned to me by John K. and in a later discussion by Yaowu. This is WIP. Change-Id: I8e175fdbc46d28c35277302a04bee4540efc8d29
2011-05-24Merge "Fixing bug in VP8_SET_REFERENCE decoder control command"John Koleszar
2011-05-24Merge "Rewrite hex search function"Yunqing Wang
2011-05-24Fixing bug in VP8_SET_REFERENCE decoder control commandHenrik Lundin
In vp8dx_set_reference, the new reference image is written to an unused reference frame buffer. Change-Id: I9e4f2cef5a011094bb7ce7b2719cbfe096a773e8
2011-05-23Merge "use get8x8var directly for non-subpixel motion case in VP8_UVSSE"Yaowu Xu
2011-05-23Rewrite hex search functionYunqing Wang
Reduced some bound checks in hex search function. Change-Id: Ie5f73a6c227590341c960a74dc508cff80f8aa06
2011-05-23use get8x8var directly for non-subpixel motion case in VP8_UVSSEYaowu Xu
VP8_UVSSE mistakenly used subpixvar8x8 to calculate SSE for non-subpixl motion cases. Change-Id: I4a5398bb9ef39c211039f6af4540546d4972e6a9
2011-05-20Merge "bug fix active_worst_quality set below active_best_quality"John Koleszar
2011-05-20Merge "cleanup: collect twopass variables"John Koleszar
2011-05-20Merge "Fixed iwalsh_neon build problems with RVDS4.1"Johann
2011-05-20Merge "revise two function definitions with less parameters"Yaowu Xu
2011-05-20Merge "Remove unused members of VP8_COMP"John Koleszar
2011-05-19revise two function definitions with less parametersYaowu Xu
Change-Id: Ia96e5bf915e4d3c0ac9c1795114bd9e5dd07327a
2011-05-19Merge "disable trellis optimization for first pass"Yaowu Xu
2011-05-19disable trellis optimization for first passYaowu Xu
also remove 2 #defines and 1 function declaration that are not in use. Change-Id: I8f743d0e3dd9ebf1de24a8b0c30ff09f29b00c53
2011-05-19bug fix active_worst_quality set below active_best_qualityJames Berry
fixed a bug where active_worst_quality could be set below active_best_quality which could result in an infinite loop. Change-Id: I93c229c3bc5bff2a82b4c33f41f8acf4dd194039
2011-05-19cleanup: collect twopass variablesJohn Koleszar
This patch collects the twopass specific memebers of VP8_COMP into a dedicated struct. This is a first step towards isolating the two pass rate control and aids readability by decorating these variables with the 'twopass.' namespace. This makes it clear to the reader in what contexts the variable will be valid, and is a hint that a section of code might be a good candidate to move to firstpass.c in later refactoring. There likely will be other rate control modes that need their own specific data as well. This notation is probably overly verbose in firstpass.c, so an alternative would be to access this struct through a pointer like 'rc->' instead of 'cpi->firstpass.' in that file. Feel free to make a review comment to that effect if you prefer. Change-Id: I0ab8254647cb4b493a77c16b5d236d0d4a94ca4d
2011-05-19Merge "Using partition_info instead of blockd info for splitmv"Scott LaVarnway
2011-05-19Remove unused members of VP8_COMPJohn Koleszar
Various members that were either completely unreferenced or written and not read. Change-Id: Ie41ebac0ff0364a76f287586e4fe09a68907806e
2011-05-19Using partition_info instead of blockd info for splitmvScott LaVarnway
The partition_info struct contains info just for SPLITMV, so it should be used instead of BLOCKD. Eventually, I want to reduce the size of B_MODE_INFO struct found in BLOCKD, so this is the first step toward that goal. Also, since SPLITMV is not supported in vp8_pick_inter_mode(), the unnecessary mem copies and checks were removed. For rt encodes, this gave a slight performance improvement. Change-Id: I5585c98fa9d5acbde1c7e0f452a01d9ecc080574
2011-05-19Merge "Make hor UV predict ~2x faster (73 vs 132 cycles) using SSSE3."Scott LaVarnway
2011-05-19Merge "changed configure option name to reduce confusion"John Koleszar
2011-05-19Merge "Make activity masking functions static"John Koleszar
2011-05-19Merge "Fix segv without --enable-error-concealment"John Koleszar
2011-05-19Fix segv without --enable-error-concealmentJohn Koleszar
Missed wrapping one function call in #if CONFIG_ERROR_CONCEALMENT. Change-Id: I5746b1e6e4531670dbed1130467331fe309bdcae