- 14 Jan, 2011 1 commit
-
-
Paul Wilkins authored
Allow use of other reference frames for the ARF overlay frame when ARNR filtering is enabled Change-Id: Icd6a9fb38977a88fbe7cc9b9c18198eb454c0273
-
- 13 Jan, 2011 2 commits
-
-
Scott LaVarnway authored
-
Paul Wilkins authored
Fixed discrepancy cpi->ni_frames vs cm->current_video_frame > 150. Make one pass path explicit. There is still scope for some odd behaviour around the transition point at cpi->ni_frames > 150. Change-Id: Icdee130fe6e2a832206d30e45bf65963edd7a74d
-
- 12 Jan, 2011 1 commit
-
-
Paul Wilkins authored
Where a key frame occurs because of a minimum interval selected by the user, then these forced key frames ideally need to be more closely matched in quality to the surrounding frame. Change-Id: Ia55b1f047e77dc7fbd78379c45869554f25b3df7
-
- 11 Jan, 2011 6 commits
-
-
Scott LaVarnway authored
Moved ref frame calculations to outside of the mode_index loop. Change-Id: I06103fc7e8af88b54b84443acf6691d29b1272ac
-
Yunqing Wang authored
-
Johann authored
-
Johann authored
source buffer is not guaranteed to be aligned for odd size buffers Change-Id: Id0b1fd40ba3bd6c994bcfada788feccd2b53c5a9
-
Yunqing Wang authored
Add a flag to always enable block4x4 search for speed=0 (good quality) to guarantee no quality loss for speed0. Change-Id: Ie04bbc25f7e6a33a7bfa30e05775d33148731c81
-
Henrik Lundin authored
Removing unused local variables causing compiler warnings in Visual Studio. Change-Id: I0e2096303be1fdbc01428a6e57cca9796bb32c8a
-
- 10 Jan, 2011 3 commits
-
-
Yunqing Wang authored
The maximum possible MV in 1/8 pel units is (1<<11), which could cause mvcost out of its range that is 1023. Change maximum possible MV in 1/8 pel units to (1<<11)-8 will fix this problem. Change-Id: I5788ed1de773f66658c14f225fb4ab5b1679b74b
-
Paul Wilkins authored
Further experiment with restriction of the Q range. This uses the average non KF/GF/ARF quantizer, instead of just relying on the initial value. It is not such a strong constraint but there may be a reduced risk of rate misses. Change-Id: I424fe782a37a2f4e18c70805e240db55bfaa25ec
-
Paul Wilkins authored
Constant value reverted pending more tests on different video formats. Change-Id: I07d11a0e0185e60724698c835416caf2e0774e61
-
- 07 Jan, 2011 7 commits
-
-
Paul Wilkins authored
-
Paul Wilkins authored
The merge includes hooks to for CQ mode and other code changes merged from the test branch. CQ mode attempts to maintain a more stable quantizer within a clip whilst also trying to adhere to a guidline maximum bitrate. The existing target data rate parameter is used to specify the guideline maximum bitrate. A new parameter allows the user to specify a target CQ level. For normal (non kf/gf/arf) frames, the quantizer will not drop BELOW the user specified value (0-63). However, in some cases the encoder may choose to impose a target CQ that is above that specified by the user, if it estimates that consistent use of the target value is not compatible with guideline maximum bitrate. Change-Id: I2221f9eecae8cc3c431d36caf83503941b25e4c1
-
Paul Wilkins authored
-
Paul Wilkins authored
In two pass encoding each frame is given an active Q range to work with. This change limits how much this Q range can be altered over time from the initial estimate made for the clip as a whole. There is some danger this could lead to overshoot or undershoot in some corner cases but it helps considerably in regard to clips where either there is a glut or famine of bits in some sections, particularly near the end of a clip. Change-Id: I34fcd1af31d2ee3d5444f93e334645254043026e
-
Paul Wilkins authored
-
Scott LaVarnway authored
-
Scott LaVarnway authored
cpi->target_bits_per_mb is currently not being used, so delete it. Also removed other unused code in rdopt.c. Change-Id: I98449f9030bcd2f15451d9b7a3b9b93dd1409923
-
- 06 Jan, 2011 2 commits
-
-
Johann authored
count can be reduced to short because the max number of filtered frames is set to 15. the max value for any frame is 32 (modifier = 16, filter_weight = 2). 15*32 = 480 which requires 9 bits this function goes from about 7000 us / 1000 iterations for the C code to < 275 us / 1000 iterations for sse2 for block_size = 16 and from about 1800 us / 1000 iters to < 100 us / 1000 iters for block_size = 8 Change-Id: I64a32607f58a2d33c39286f468b04ccd457d9e6e
-
Paul Wilkins authored
The following features don't make sense for the first pass in its current form and have a significant impact on its speed (up to 50%). Slow quantizer, slow dct and trellis optimization. Change-Id: Id9943f6765ffbd71fc0084ec7dfbc9d376fd6fcd
-
- 04 Jan, 2011 1 commit
-
-
Paul Wilkins authored
Calculate a minimum intra value to be used in determining the IIratio scores used in two pass, second pass. This is to make sure sections that are low complexity" in the intra domain are still boosted appropriately for KF/GF/ARF. For now I have commented out the Q based adjustment of KF boost. Change-Id: I15deb09c5bd9b53180a2ddd3e5f575b2aba244b3
-
- 29 Dec, 2010 2 commits
-
-
Scott LaVarnway authored
Happens in real-time mode. Will happen in good quality, speed 1. Change-Id: I3e5b68827b1a5798d0431b088a709256d1ce2c95
-
Yunqing Wang authored
Scott pointed out that last_frame_type only gets updated while loopfilter exists. Since last_frame_type is also needed in motion search now, it needs to be updated every frame. Change-Id: I9203532fd67361588d4024628d9ddb8e391ad912
-
- 28 Dec, 2010 5 commits
-
-
Scott LaVarnway authored
-
Scott LaVarnway authored
Use the fast quantizer for inter mode selection and the regular quantizer for the rest of the encode for good quality, speed 1. Both performance and quality were improved. The quality gains will make up for the quality loss mentioned in I9dc089007ca08129fb6c11fe7692777ebb8647b0. Change-Id: Ia90bc9cf326a7c65d60d31fa32f6465ab6984d21
-
Yunqing Wang authored
Add limits to avoid MV going out of range. Change-Id: I8a5deb40bf393488d29f694b5a56804d578e68b5
-
Yunqing Wang authored
-
Yunqing Wang authored
1. Search for block8x16/block16x8 uses block8x8's search results. 2. Check block4x4 only if block8x8 is chosen. (This hurts quality, which will be improved in another check-in.) 3. In block4x4 search, the previous block's result is used as MV predictor for next block. This change improves performance. Change-Id: I9dc089007ca08129fb6c11fe7692777ebb8647b0
-
- 26 Dec, 2010 1 commit
-
-
Yaowu Xu authored
-
- 24 Dec, 2010 1 commit
-
-
Yaowu Xu authored
Re-calibrated sad_per_bit16 and sad_per_bit4 tables to linearly correlated to quantizer values, these two variables are used in motion search for costing motion vectors. This change has an small positive effect on compression. Change-Id: Ic9b5ea6fb8d5078ef663ba4899db019cc51f4166
-
- 23 Dec, 2010 4 commits
-
-
James Berry authored
stats_close() was not freeing memory for single pass runs. It now takes in arg_passes to determine when it should free memory. Change-Id: I6623b7e30b76f9bf2e16008490f9b20484d03f31
-
Johann authored
-
Johann authored
-
Johann authored
-
- 22 Dec, 2010 4 commits
-
-
John Koleszar authored
-
John Koleszar authored
Native Windows targets should use CV8 format debugging symbols, not DWARF. Change-Id: I9489163fcd9d749b72f6c70ecbce67a6f0790802
-
Johann authored
the lookup table is based on floating point calculations (see source) by moving the *3 before the downshift and adding the rounding bit, the delta (LUT - integer) goes from: ______________________________________ __ 1__ 1______________________________ __ 1__ 1______________________________ ____ 1______ 1________________________ ____ 1 2__ 2 1________________________ ______ 1 1 2__ 2__ 2__ 2 1 1__________ ________ 1 1 2 2__ 1 2 3 1 2__ 2__ 2__ to: __-1__-1______________________________ ______________________________________ ____-1______-1________________________ ______________________________________ ________-1______________-1____________ ______________________________________ it's important to be able to use the integer version because the LUT more or less precludes SIMD optimizations Change-Id: I45a81127dc7b72a06fba951649135d9d918386c0
-
Johann authored
be more consistant with the naming pattern, especially wrt rtcd Change-Id: I3df50686a09f1dab0a9620b5adbb8a1577b40f2f
-