Age | Commit message (Collapse) | Author |
|
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
|
|
|
|
also remove 2 #defines and 1 function declaration that are not in use.
Change-Id: I8f743d0e3dd9ebf1de24a8b0c30ff09f29b00c53
|
|
fixed a bug where active_worst_quality could be set
below active_best_quality which could result in an
infinite loop.
Change-Id: I93c229c3bc5bff2a82b4c33f41f8acf4dd194039
|
|
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
|
|
|
|
Various members that were either completely unreferenced or written
and not read.
Change-Id: Ie41ebac0ff0364a76f287586e4fe09a68907806e
|
|
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
|
|
|
|
These don't need extern linkage.
Change-Id: I21220ada926380a75ff654f24df84376ccc49323
|
|
Group related functions together.
Change-Id: I92fd779225b75a7204650f1decb713142c655d71
|
|
vp8_find_near_mvs"
|
|
Scott fixed the bug in MV clamping function in encoder, which
could cause artifacts.
Change-Id: Id05f2794c43c31cdd45e66179c8811f3ee452cb9
|
|
Moved MVcount modification in pick_inter_mode, and eliminated
calling of vp8_find_near_mvs.
Change-Id: Icd47448a1dfc8fdf526f86757d0e5a7f218cb5e8
|
|
|
|
|
|
|
|
This commit restructures the mb activity masking code
to better facilitate experimentation using different metrics
etc. and also allows for adjustment of the zero bin either
for encode only or both the encode and mode selection
stages
It also uses information from the current frame rather than
the previous frame and the default strength has been
reduced.
Change-Id: Id39b19eace37574dc429f25aae810c203709629b
|
|
This patch improves the accuracy of frame rate estimation by using a
larger, 1 second window. It also more quickly adapts to step changes
in the input frame rate (ie 30fps to 15fps)
Change-Id: I39e48a8f5ac880b4c4b2ebd81049259b81a0218e
|
|
This sad cost is being generated but never used.
Change-Id: I562eebdcb792b743770954feca365b5b37491ecd
|
|
The compiler produces better assembly when using int_mv
for assignments. The compiler shifts and ors the two 16bit
values when assigning MV.
Change-Id: I52ce4bc2bfbfaf3f1151204b2f21e1e0654f960f
|
|
|