summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-09Merge "Added early breakout for vp8_rd_pick_intra4x4mby_modes"Scott LaVarnway
2011-02-09Merge "vp8e_get_preview fixed for resized frames"John Koleszar
2011-02-08clean up bilinear filterJohann
make reference version of bilinear_filters short. use reference versions of bilinear_filters and sub_pel_filters when possible. recognize that Width was being passed into filter_block2d_bil_first_pass multiple times. ARM version had already fixed this. propegate to C. change references to src_pixels_per_line to src_pitch and standardize on src/dst (instead of input/output). recognize that first_pass is only run in the verticle and second_pass only horizontal. ARM version had already fixed this. propegate to C Change-Id: I292d376d239a9a7ca37ec2bf03cc0720606983e2
2011-02-08Merge "build: Change to iOS SDK 4.2"Fritz Koenig
2011-02-08Added early breakout for vp8_rd_pick_intra4x4mby_modesScott LaVarnway
Improved performance of good quality, speed 0 (3% average) with no average quality loss. Change-Id: Ica34473f99bd74260eaebde6b132185e09e3c09d
2011-02-08clarify *_offsets.asm differencesJohann
it's difficult to mux the *_offsets.c files because of header conflicts. make three instead, name them consistently and partititon the contents to allow building them as required. Change-Id: I8f9768c09279f934f44b6c5b0ec363f7943bb796
2011-02-08build: Change to iOS SDK 4.2Fritz Koenig
Brings configure/build system inline with current iOS SDK. Change-Id: If391693a80cab371f75708214f3882424ead9e96
2011-02-08vp8e_get_preview fixed for resized framesJames Berry
preview_img d_w and d_h along with w and h would not be updated for resized frames. now uses sd.y_width and sd.y_height Change-Id: I52241de4cc1de5e73f865e668bd70a7cbd954390
2011-02-07move one of the offset filesJohann
common/arm/vpx_asm_offsets moves up a level. prepare for muxing with encoder/arm/vpx_vp8_enc_asm_offsets Change-Id: I89a04a5235447e66571995c9d9b4b6edcb038e24
2011-02-07Merge "Translates -g from LDFLAGS as --debug in armlink_adapter.sh"John Koleszar
2011-02-07Merge "remove unused dboolhuff code"John Koleszar
2011-02-07Fix link error in real-time modeYunqing Wang
make vp8_mv_pred() and vp8_cal_sad() available in real-time mode. Change-Id: I71dbae241b486ba943458dcbae552ec4a51689d3
2011-02-07Translates -g from LDFLAGS as --debug in armlink_adapter.shAttila Nagy
Change-Id: I23ad88db2149ab788ff39aed8624a7ef0e97da2e
2011-02-04remove unused dboolhuff codeJohann
we were holding on to this "just in case." purge it instead Change-Id: I77a367b36d0821d731019f2566ecfffdae1d4b8a
2011-02-04Merge "Improve MV prediction in vp8_pick_inter_mode() for speed>3"Yunqing Wang
2011-02-04correct quantizer initializationJohn Koleszar
The encoder was not correctly catching transitions in the quantizer deltas. If a delta_q was set, then the quantizer would be reinitialized on every frame, but if they transitioned to 0, the quantizer would not be reinitialized, leading to a encode-decode mismatch. This bug was triggered by commit 999e155, which sets a Y2 delta Q for very low base Q levels. Change-Id: Ia6733464a55ee4ff2edbb82c0873980d345446f5
2011-02-04Merge "Remove duplicate loopfilter parameters."John Koleszar
2011-02-04Remove duplicate loopfilter parameters.Gaute Strokkenes
Change-Id: I0d41415e3961c2c9492d342290c1999f9d02e6d8
2011-02-04Merge "Delay auto key frame insertion in realtime configuration"John Koleszar
2011-02-03Make vp8_adjust_mb_lf_value return the updated value rather thanGaute Strokkenes
manipulating it in situ via a pointer. Change-Id: If4a87a4eccd84f39577c0e91e171245f4954c5cf
2011-02-03Merge "Avoid using an anonymous union."John Koleszar
2011-02-03Merge "Zero out block mv when an intra mode is selected"Scott LaVarnway
2011-02-03Merge "Improved encoder threading"Yunqing Wang
2011-02-02Avoid using an anonymous union.Gaute Strokkenes
Change-Id: I5744269a35e2d696ecf40c1665efd572bfc9b6cb
2011-02-02Delay auto key frame insertion in realtime configurationAttila Nagy
Whe auto keyframe insertion is enabled and conditions are right (scene change) the encoder can decide to insert a key frame and does a re-encoding. This can introduce extra latency. In RT mode we do not do the re-encoding of the current frame but force the next frame to key frame. Change-Id: I15c175fa845ac4c1a1f18bea3676e154669522a7
2011-02-01Zero out block mv when an intra mode is selectedScott LaVarnway
instead of each time mode is tested. Change-Id: Ief0f5586dafde54cc14d348dcecdacb182e7c1d5
2011-02-01Removed unnecessary B_MODE_INFO memset.Scott LaVarnway
Change-Id: I2bcef6a8e47f88542861fd1356631ca934e2a0e7
2011-02-01Moved rd calculation into vp8_pick_intra4x4mby_modesScott LaVarnway
Then removed unnecessary code. Change-Id: I142658815d843c9396b07881dbdd8d387c43c90e
2011-02-01Removed intra_modes from vp8cx_encode_intra_macro_blockScott LaVarnway
Restructured function in order to eliminate the prediction modes save/restore. Code cleanup also. Change-Id: I816e3b910de64d0f0f0ddc2398805c63263191e8
2011-02-01Improved encoder threadingAttila Nagy
Reduce the number of sync points by letting each thread continue imediatly with a new MB row. Better multicore scaling, improves performance by 5-20% on ARM multicore. Change-Id: Ic97e4d1c4886a842c85dd3539a93cb217188ed1b
2011-01-31Removed prediction_error accumulationScott LaVarnway
from vp8cx_encode_intra_macro_block. prediction_error is used when deciding if a frame should be a keyframe. After reviewing this with Yaowu, it was pointed out that vp8cx_encode_intra_macro_block is only called for keyframes, so the accumulation is unnecessary. Change-Id: Id79dc81b80d4f5d124f3a0dba1b923887e2e1ec8
2011-01-31Removed last_auto_filter_prediction_errorScott LaVarnway
last_auto_filter_prediction_error is not really used. Change-Id: Ic6e56c4076bbd250ef783ee1be46964c85f62864
2011-01-31Possible bug in vp8cx_encode_intra_macro_blockScott LaVarnway
vp8_pick_intra4x4mby_modes uses the passed in distortion for an early breakout. The best distortion was never saved and the distortion for TM_PRED was always used. Change-Id: Idbaf73027408a4bba26601713725191a5d7b325e
2011-01-31Merge "Performance improvement of first pass"Scott LaVarnway
2011-01-31Merge "change the threshold of DC check for encode breakout"Yaowu Xu
2011-01-31Merge "validate min_q against max_q"John Koleszar
2011-01-31validate min_q against max_qJohn Koleszar
min_q is required to be <= max_q. Change-Id: I28eccf96df3b52a94913762b54c4fbe0d021ce5e
2011-01-31Merge "Changed condition for using RD in Intra Mode"Adrian Grange
2011-01-28change the threshold of DC check for encode breakoutYaowu Xu
Previously, the DC check is to make sure there is no code-able DC shift for quantizer Q0, which has been verified rather conservative. This commit changes the criteria to have two components, DC and AC, to address the conservativeness. First, it checks if all AC energy is enough to contribute a single non-zero quantized AC coefficient. Second, for DC, the decision to skip further considers two possible scenarios: 1. There is no code-able 2nd order DC coefficient at all; 2 The residue is relatively flat, but the uniform DC change is very small, i.e. less than 1/2 gray level per pixel. Comparing to previous criteria, the new criteria is about 10% to 15% faster in encoding time with a very small quality loss. (threshold ~1000 and quality range 33db-45db) It should be noted that this commit enables "automatic" static threshold for encodebreakout if a non-zero small value is passed in to encoder. Change-Id: I0f77719a1ac2c2dfddbd950d84920df374515ce3
2011-01-28Merge "Adds "armvX-none-rvct" targets"Johann
2011-01-28Improve MV prediction in vp8_pick_inter_mode() for speed>3Yunqing Wang
Applied same method used in vp8_rd_pick_inter_mode() to improve the accuracy of MV prediction. Change-Id: Ia50ae26208b18482695601f32febd99fe89fbc17
2011-01-28Changed condition for using RD in Intra ModeAdrian Grange
The condition for using RD when selecting the intra coding mode for a MB is that the RD flag is set AND we're not in real-time mode. Previously the code used RD if either the RD flag was set OR we were not using real-time mode. Change-Id: Ic711151298468a3f99babad39ba8375f66d55a08
2011-01-28Inconsistent distortion metric in vp8_rd_pick_intra_mbuv_modePaul Wilkins
This function was using a variance metric compared to and SSE metric in other places (eg. vp8_rd_inter_uv) Change-Id: I9109fcc5a13bca9db1d7ead500fe14999ab233eb
2011-01-28Adds "armvX-none-rvct" targetsTero Rintaluoma
Adds following targets to configure script to support RVCT compilation without operating system support (for Profiler or bare metal images). - armv5te-none-rvct - armv6-none-rvct - armv7-none-rvct To strip OS specific parts from the code "os_support"-config was added to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS specific parts such as OS specific includes and function calls for timers and threads etc. This was done to enable RVCT compilation for profiling purposes or running the image on bare metal target with Lauterbach. Removed separate AREA directives for READONLY data in armv6 and neon assembly files to fix the RVCT compilation. Otherwise "ldr <reg>, =label" syntax would have been needed to prevent linker errors. This syntax is not supported by older gnu assemblers. Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
2011-01-27warning: pointer targets differ in signednessJohann
vp8/encoder/rdopt.c:728: warning: pointer targets in passing argument 3 of 'macro_block_yrd' differ in signedness vp8/encoder/rdopt.c:541: note: expected 'int *' but argument is of type 'unsigned int *' distortion is signed when calling macro_block_yrd is both other cases, as well as for RDCOST Change-Id: I5e22358b7da76a116f498793253aac8099cb3461
2011-01-27clean up implicit declaration warnings for neonJohann
Change-Id: I6ca2d89f355839c4c770773c09fc69dcea7c1406 warning: implicit declaration of function 'vp8_variance_halfpixvar16x16_[h|v|hv]_neon' 'vp8_sub_pixel_variance16x16_neon_func'
2011-01-27Merge "Removed unused members from VP8_COMP"Scott LaVarnway
2011-01-27Merge "Remove copies of same functions"Yunqing Wang
2011-01-27Merge "Refine motion vector prediction for NEWMV mode"Yunqing Wang
2011-01-26Performance improvement of first passScott LaVarnway
Improved the performance of the first pass only (~6% on 720p test clip) by making use of LUT instead of the float calculations. Might try a SIMD version later. Also started to make use of int_mv instead of MV. Change-Id: If2a217c7d6b59cd2c25c5553e0ca7e0502403af8