Age | Commit message (Collapse) | Author |
|
Change-Id: Ib641c624faec28ad9eb99e2b5de51ae74bbcb2a2
|
|
|
|
Change-Id: I5b0aaca06f2e0f40588cb24fb0642b6865da8970
|
|
In real-time mode motion search, there is no need to calculate
variance. This change improved encoding speed by 1% ~ 2%(speed=-5).
Change-Id: I65b874901eb599ac38fe8cf9cad898c14138d431
|
|
|
|
|
|
an ARF."
|
|
|
|
Currently, hex search couldn't guarantee the motion vector(MV)
found is within the limit of maximum MV. Therefore, very large
motion vectors resulted from big motion in the video could cause
encoding artifacts. This change adjusted hex search bounds
checking to make sure the resulted motion vector won't go out
of the range. James Berry, thank you for finding the bug.
Change-Id: If2c55edd9019e72444ad9b4b8688969eef610c55
|
|
Declared the bmi in BLOCKD as a union instead of B_MODE_INFO.
Then removed B_MODE_INFO completely.
Change-Id: Ieb7469899e265892c66f7aeac87b7f2bf38e7a67
|
|
This is basically a slightly modified version of the previous patch,
and it has a moderately positive effect (SSIM/PSNR both +0.08% avg
on derf-set). Most clips show no change, except waterfall/coastguard,
each ~ +0.8% SSIM/PSNR. You can see similar effects in other clips
by shortening their length to terminate at a very short last group
of frames.
Change-Id: I7a70de99ca1f9fe6a8b6ca7a6e30e8a4b64383e4
|
|
|
|
this commit makes the usage errorperbit and sadperbit consistent for
encoding modes and passes. Removed all different magic weight factors
associated with errorperbit. Now 1/2 is used for both sadperbit16 and
sadperbit4, the /2 operation is merged into initializations of the 2
variables.
Tests on cif set show .23%, 0.18% and 0.19% gain by avg psnr, overall
psnr and ssim respectively.
Change-Id: Ifa285c3e065ce0a5a77addfc9f95aabf54ee270d
|
|
|
|
Change-Id: Iccbd78d91c3071b16fb3b2911523a22092652ecd
|
|
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
|
|
vp8_fast_quantize_b_pair_neon function added to quantize
two adjacent blocks at the same time to improve performance.
- Additional 3-6% speedup compared to neon optimized fast
quantizer (Tanya VGA@30fps, 1Mbps stream, cpu-used=-5..-16)
Change-Id: I3fcbf141e5d05e9118c38ca37310458afbabaa4e
|
|
|
|
Small code cleanups before attempting to reduce the size
of bmi found in BLOCKD.
Change-Id: Ie9c14adb53afd847716a75bcce067d0e6c04f225
|
|
Misplaced #endif caused first_time_stamp_ever to only be initialized if
CONFIG_INTERNAL_STATS was set.
Change-Id: I2296a4ab00f7dfb767583edcc5d59b94f48c0621
|
|
Added preload instructions to armv6 encoder optimizations.
About 5% average speed-up on Tegra2 for VGA@30fps sequence.
Change-Id: I41d74737720fb71ce7a316f07555357822f3347e
|
|
|
|
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
|
|
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
|
|
|
|
Hex search is not called in rdopt.c
Change-Id: I67347f03e13684147a7c77fb9e9147e440bb5e8e
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
Change-Id: I6e5e86235d341cce3b02abda26dbeb71940ed955
|
|
Minor modification.
Change-Id: I09511d38fd1451d5c4106a48acdb3f766ce59cb7
|
|
'sum' returned by get8x8var is not used and var8x8 has optimizations
for more platforms.
Change-Id: I4a907fb1a05f285669fb0b95dc71d42182c980f6
|
|
While profile=3, there is no sub-pixel search. Distortion and SSE
have to calculated using get_inter_mbpred_error().
Change-Id: Ifb36e17eef7750af93efa7d0e2870142ef540184
|
|
Less operations.
Change-Id: Ibb9cd5ae66b8c7c681c9a654d551c8729c31c3ae
|
|
Change-Id: I6e5e921f03dc15a72da89a457848d519647677a3
|
|
|
|
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
|
|
|
|
|
|
Reduced some bound checks in hex search function.
Change-Id: Ie5f73a6c227590341c960a74dc508cff80f8aa06
|
|
VP8_UVSSE mistakenly used subpixvar8x8 to calculate SSE for non-subpixl
motion cases.
Change-Id: I4a5398bb9ef39c211039f6af4540546d4972e6a9
|
|
|
|
|
|
|
|
|
|
Change-Id: Ia96e5bf915e4d3c0ac9c1795114bd9e5dd07327a
|
|
|