summaryrefslogtreecommitdiff
path: root/vp8
AgeCommit message (Collapse)Author
2011-09-16add 8x8 intra prediction modesYaowu Xu
Patch 1 to Patch 3 is an initial implementation of 8x8 intra prediction modes, here are with the following assumptions: a. 8x8 has 4 prediction modes DC, H, V and TM b. UV 4x4 block use the same mode as corresponding 8x8 area c. i8x8 modes are enabled for key frame only for now Patch 4: d. removed debug code from previous patches Patch 5: e. added stats code to collect entropy stats and further cleaned up Patch 6: f. changed mode stats code to collect finer stats of modes Patch 7: g. normalized i8x8 modes distribution to total at 256 (8bits). Patch 8: h. fixed a bug in decoder and removed debug printf output. Patch 9: i. more cleanups to address paul's comment Patch 10: j. messy rebase/merges to bring the commit up to date. Tests on HD clips encoded with all key frame showing consistent gain on all clips and all metrics:~0.5%(psnr) and 0.6%(ssim): http://www.corp.google.com/~yaowu/no_crawl/i8x8hd_allkey_fixedq.html To build and test, configure with: --enable-experimental --enable-i8x8 Change-Id: I9813fe07ae48cab5fdb5d904bca022514ad01e7f
2011-09-16Merge remote branch 'internal/upstream' into HEADJohn Koleszar
Conflicts: vp8/decoder/decodframe.c vp8/encoder/encodeframe.c vp8/encoder/encodemb.c Change-Id: I6e0d1669e4409a2dfd73ba2c7038d730842d3953
2011-09-15Segment Feature SignalingPaul Wilkins
Plumbing for tuning new segment features on and off. Change-Id: If86cd6f103296b73030e8af7cf85c5b9bbffdbaf
2011-09-13Reverse coding order for segment features:Paul Wilkins
Code all the features for one segment (grouped together) then all for the next etc. etc. rather than grouping the data by feature. Change-Id: I2a65193b3a70aca78f92e855e35d8969d857b6dd
2011-09-13Fixed encoder crashScott LaVarnway
caused by the "Removed bmi copy to/from BLOCKD" commit. Change-Id: I9fae71bdc34c8ecc07bb81cd3ccf498b91ce3ec7
2011-09-13Change to segment_feature_data[][] structure.Paul Wilkins
This data structure is now [Segment ID][Features] rather than [Features][Segment_ID] I propose as a separate modification to make the experimental bit stream reflect this such that all the features for a segment are coded together. Change-Id: I581e4e3ca2033bdbdef3d9300977a8202f55b4fb
2011-09-13Segment Features:Paul Wilkins
Some basic plumbing added for a range of segment level features. MB_LVL_* changed to SEG_LVL_* to better reflect meaning. Change-Id: Iac96da36990aa0e40afc0d86e990df337fd0c50b
2011-09-03fixed a decoder bugYaowu Xu
the bug appears to be introduced from a merge at Commit:62400028.. Change-Id: I332d78b673f12e5ef2b0cdd6bab57dc2c8af7a72
2011-08-31Merge "Skip computation of distortion in vp8_pick_inter_mode if active_map ↵Scott LaVarnway
is used"
2011-08-31Merge "Removed bmi copy to/from BLOCKD"Scott LaVarnway
2011-08-31Skip computation of distortion in vp8_pick_inter_mode if active_map is usedAlpha Lam
If a block is marked to be inactive then set distortion to 0. Change-Id: Ib415f19642a2ff7b5cf5cfaedd60ebbd79732272
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-24Removed bmi copy to/from BLOCKDScott LaVarnway
for SPLITMV and B_PRED modes. Modified code to use the bmi found in mode_info_context instead of BLOCKD. On the decode side, the uvmvs are calculated only when required, instead of every macroblock. This is WIP. (bmi should eventually be removed from BLOCKD) Small performance gains noticed for RT encodes and decodes.(VGA) Change-Id: I2ed7f0fd5ca733655df684aa82da575c77a973e7
2011-08-24Fix naming of sse2 idct functions.Fritz Koenig
Prepend idct function names with vp8_ so that under profiling they show up associated with libvpx. Change-Id: I4fe357b50236cb7730a4cc00164c0a3487a1d8b4
2011-08-24Merge "Faster vp8_default_coef_probs"Scott LaVarnway
2011-08-24Merge remote branch 'internal/upstream' into HEADJohn Koleszar
2011-08-23Fix data accesses for simple loopfiltersJohann
The data that the simple horizontal loopfilter reads is aligned, treat it accordingly. For the vertical, we only use the bottom 4 bytes, so don't read in 16 (and incur the penalty for unaligned access). This shows a small improvement on older processors which have a significant penalty for unaligned reads. postproc_mmx.c is unused Change-Id: I87b29bbc0c3b19ee1ca1de3c4f47332a53087b3d
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-15Don't set the bmi mode when doing error concealmentStefan Holmer
Since the block will be interpreted as an inter block, the mode will be interpreted as a motion vector, resulting in bad concealment. Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053
2011-08-15Don't set the bmi mode when doing error concealmentStefan Holmer
Since the block will be interpreted as an inter block, the mode will be interpreted as a motion vector, resulting in bad concealment. Change-Id: Ifcc685ae1cc883492bce6dbd61e418d91a89b053
2011-08-13Merge remote branch 'internal/upstream' into HEADJohn Koleszar
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-12Propagate macroblock MV to subblocks for error concealmentJohn Koleszar
EC expects the subblock MVs to be populated, but f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this to the EC code more directly in the future. Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2
2011-08-12Disable error concealment until first key frame is decodedStefan Holmer
When error concealment is enabled the first key frame must be successfully received before error concealment is activated. Error concealment will be activated when the delta following delta frame is received. Also fixed a couple of bugs related to error tracking in multi-threading. And avoiding decoding corrupt residual when we have multiple non-resilient partitions. Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d
2011-08-12Fix potential OOB read with Error ConcealmentJohn Koleszar
This patch fixes an OOB read when error concealment is enabled and the partition sizes are corrupt. The partition size read from the bitstream was not being validated in EC mode. Change-Id: Ia81dfd4bce1ab29ee78e42320abe52cee8318974
2011-08-12Merge "Disable error concealment until first key frame is decoded"John Koleszar
2011-08-12Propagate macroblock MV to subblocks for error concealmentJohn Koleszar
EC expects the subblock MVs to be populated, but f1d6cc79e43f0066632f19c1854ca365086b712b removed this code. This commit restores it, protected by CONFIG_ERROR_CONCEALMENT. May move this to the EC code more directly in the future. Change-Id: I44f8f985720cb9a1bf222e59143f9e69abf56ad2
2011-08-12Disable error concealment until first key frame is decodedStefan Holmer
When error concealment is enabled the first key frame must be successfully received before error concealment is activated. Error concealment will be activated when the delta following delta frame is received. Also fixed a couple of bugs related to error tracking in multi-threading. And avoiding decoding corrupt residual when we have multiple non-resilient partitions. Change-Id: I45c4bb296e2f05f57624aef500a874faf431a60d
2011-08-11Fix potential OOB read with Error ConcealmentJohn Koleszar
This patch fixes an OOB read when error concealment is enabled and the partition sizes are corrupt. The partition size read from the bitstream was not being validated in EC mode. Change-Id: Ia81dfd4bce1ab29ee78e42320abe52cee8318974
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