Age | Commit message (Collapse) | Author |
|
Force smooth_interpol filter for low resolutions at high Q,
avoid the loopfilter strength reduction for similar conditon,
and reduce thresh_motion for cyclic refresh turnoff.
Change-Id: I4e9121d1cdc7d1b04992c741dc4f0cec281592f7
|
|
1: Lower rdmult used in trellis optimization
2: Shut off the end of block optimization that tries end of block
at every sub position if any of the coefficients are > 1.
3: Change the rounding and zbin factor according to sharpness.
4: Disable the skip block check that calculates RD using SSE from
predictor.
Change-Id: I247b61a26fa22f12f8b684e7cd6d4e368de7c3e4
|
|
To save a branch.
Change-Id: Ifa2be7583e95c6991784731c654bbd4cce31e993
|
|
The reduction showed improvement on RTC when aq-mode=3 is on.
Add that (cyclic refresh enabled) to the condition.
Only affects 1 pass CBR.
Change-Id: I5d0843002d8e31d7c165098a62e7a71146b08664
|
|
Change-Id: I53b3fa8bfc0a0717eb1b730c29f2b70060b1b1b7
|
|
Reduce the filt_guess for 1 pass cbr on inter-frames.
This reduces visual artifact seen in rtc clip (jimred.vga),
and improves metrics on rtc set.
Metrics on rtc set for cbr mode overall positive, most clips are up:
Speed 7 rtc: avgPSNR/SSIM up by: ~2.6/3.9%
Speed 8 rtc: avgPSNR/SSIM up by: ~1.3/2.5%
Change-Id: Ia4eccea1c19d65b583516df28823cd756c49464f
|
|
Change-Id: I45d9fb4013f50766b24363a86365e8063e8954c2
|
|
Change-Id: I4aceffcdf7af59ffeb51984f0345c3a4c7e76a9f
|
|
This patch fixes a bug that causes the loop filter search to reset to
a low value or zero after each arf overlay frame. We expect the overlay
frames to need little or no loop filtering but this should not propagate.
Change-Id: I895b28474cf200f20d82793f3de40b60b19579fd
|
|
The loopfilter masks are now built in the decode loop.
This is done so we can eventually reduce the number of
MODE_INFO structs required by the decoder.
The encoder builds the masks for the entire frame prior
to calling the loopfilter.
Change-Id: Ia2146b07e0acb8c50203e586dfae0c4c5b316f11
|
|
prevents redeclaration warnings;
vp8 has its own define which will be resolved in a future commit
Change-Id: Ic941fef3dd4262fcdce48b73075fe6b375f11c9c
|
|
With the sad functions, and hopefully the variance functions soon,
moving to the vpx_dsp location, place the defines used in the
reference C code in a common location.
Change-Id: I4c8ce7778eb38a0a3ee674d2f1c488eda01cfeca
|
|
vestigial. replace instances with memset() which they already were being
defined to.
Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
|
|
1. Added row-based loopfilter in encoder;
2. Moved common multi-threaded loopfilter functions from decoder
to common;
3. Merged multi-threaded loopfilter code, and made encoder/
decoder call same function to reduce code duplication.
Encoder tests showed that 1% - 2% speedup was seen for good-quality
2-pass mode(at speed 3); 1% - 3% speedup using 2 threads and 4% - 6%
speedup using 4 threads were seen for real-time mode(at speed 7).
Change-Id: I8a4ac51c2ad9bab9fa7b864e90743931c53ec1c4
|
|
When testing frame sse to choose a loop filter value and
when checking ambient error in kf Q selection, use 64 bit
values for accumulating the sse, to avoid risk of overflow
for large image formats.
Change-Id: I03765d16c843d0ade61a45b0cd46312472697e57
|
|
Change 71789 renamed CONFIG_VP9_HIGH to CONFIG_VP9_HIGHBITDEPTH.
However, one use of CONFIG_VP9_HIGH was missed.
Change-Id: I0ebb9c71380c6d810a25708d15471abf9533e695
|
|
This patch modified struct VP9_COMP. Created a struct ThreadData
to include data that need to be copied for each thread. In
multiple thread case, one thread processes one tile. all threads
share one copy of VP9_COMP,
(refer to VP9_COMP *cpi in the code)
but each thread has its own copy of ThreadData,
(refer to ThreadData *td in the code).
Therefore, within the scope of encode_tiles(), both cpi and td
need to be passed as function parameters.
In single thread case, the FRAME_COUNTS pointer in ThreadData
points to "counts" in VP9_COMMON.
Change-Id: Ib37908b2d8e2c0f4f9c18f38017df5ce60e8b13e
|
|
This reverts commit 6906d218ddd1af97228a797f4558e402231d94f1.
Another way will be used to handle mb struct.
Change-Id: Ic1111a46b2b1ee00f8f9e3fcd4cf3eb6030b2dc4
|
|
Modified VP9_COMP struct to include MACROBLOCK *mb. This change
makes it feasible in multi-thread case to allocate a mb for each
thread.
Change-Id: I624d6d1aa9c132362200753e5d90b581b1738d6e
|
|
Change-Id: I6f67b171022bbc8199c6d674190b57f6bab1b62f
|
|
Adds various high bitdepth quantization functions.
Change-Id: I36fc0bf75a1bd15128ed271df8723de0ac134b0c
|
|
inspect ss_err[] directly, removes an unnecessary assignment
Change-Id: I14db5e8e567e7e541a57fce73389ffe7651d5614
|
|
We had a very complicated way to initialize cpi->pass from
cfg->g_pass:
switch (cfg->g_pass) {
case VPX_RC_ONE_PASS:
oxcf->mode = ONE_PASS_GOOD;
break;
case VPX_RC_FIRST_PASS:
oxcf->mode = TWO_PASS_FIRST;
break;
case VPX_RC_LAST_PASS:
oxcf->mode = TWO_PASS_SECOND_BEST;
break;
}
cpi->pass = get_pass(oxcf->mode).
Now pass is moved to VP9EncoderConfig and initialization is simple:
switch (cfg->g_pass) {
case VPX_RC_ONE_PASS:
oxcf->pass = 0;
break;
case VPX_RC_FIRST_PASS:
oxcf->pass = 1;
break;
case VPX_RC_LAST_PASS:
oxcf->pass = 2;
break;
}
Change-Id: I8f582203a4575f5e39b071598484a8ad2b72e0d9
|
|
As a way to speed-up rtc encoding at speed 7.
Change-Id: Ie36a010392cf7b741dc130df21a4e733622a75b7
|
|
Inline loopfilter has been already handled in vp9_decode_frame().
Collecting all similar code in one place now.
Change-Id: I358a0280fc7c2b27cca520bc1e8c16c4eb6491dd
|
|
Re-factor duplicate code.
Add two pass check for use of section_intra_rating as
it is un-initialised in the 1 pass and rt case.
Change-Id: I93120796f07961b8a21fb26e1a9f0d3d13949994
|
|
Actual renames:
vp9_onyx_if.c -> vp9_encoder.c
vp9_onyx_int.h -> vp9_encoder.h
Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
|
|
Change-Id: I84af62cc52954fc2eaf0b737245be76551fc8005
|
|
Change-Id: I06bb077edd4917b967fefe28bf4891b61b4f79b5
|
|
|
|
Change-Id: I06e17b489dea74dedea356c73ef72dc5ffad3a30
|
|
Change-Id: I1804c3629c3df2b67438e87196ab35fafaddaa24
|
|
Change-Id: Ib4d850227cef35694c663feb157765a2cbf84699
|
|
As pointed out by Dmitry and James, "partial" is a Microsoft-
specific c++ keyword, and it is renamed.
Change-Id: Ia0fc11ceb89e54b3195287f89f7e26edbbe9beb8
|
|
This avoids fitlering a frame multiple times at the same level.
Change-Id: I1fd54dd7ea257d16da8569f48036b8fad3a3ed61
|
|
Factor out the code that tries filtering a frame at a given level.
Change-Id: Ia04507e3ce6b1ad6ae7d05a9d88222fd319f44b7
|
|
Also change its wrongly named dest parameter to reference.
Change-Id: Ide142dead31c9ccda1f09a48b221284369783fb7
|
|
Use this method with rt at speed -5.
Change-Id: If3bd6fad4c05ddde72131442dad191e4145047e7
|
|
Change-Id: Id54f317846f61a320cc5aeef47248e074376ee5d
|
|
Change-Id: I3149e562fe9500914f67b6f908283edcdc381ac6
|
|
Change-Id: Iad8b0208d3a3b0fc3d7fda3933b0fc007d4d2e9e
|
|
Change-Id: I54513dc3b3321e0c0bb6b15ea5c34085ed80b4a4
|
|
Change-Id: I62e631ca95fefbb1a993479a5e3926dc81359fe7
|
|
Change-Id: Ia5cdda0f755befcd1e64397452c42cb7031ca574
|
|
Loop filter configuration doesn't belong to macroblock, so moving it from
MACROBLOCKD to VP9_COMMON. Also moving the declaration of loopfilter struct
from vp9_blockd.h to vp9_loopfilter.h.
Change-Id: I4b3e34be9623b47cda35f9b1f9951f8c5b1d5d28
|
|
Change-Id: I599ab1bd22b5f3f10d5962c609952abdef8ff67a
|
|
Becuase the routine is used by both vp8 and vp9
Change-Id: I2d35b287b5bc2394865d931a27da61f4ce7edeeb
|
|
Change-Id: Id578f8afdeab3702fc8386969f2d832d8f1b5420
|
|
Adding loopfilter struct with fields from MACROBLOCKD and VP9Common.
Eventually it will be moved to vp9_loopfilter.h for better code structure.
Change-Id: Iaf5fb71c33719cdfa1b991f671caf071be9ea035
|
|
Moving TX_MODE enum to vp9_enums.h. Renaming txfm_mode variables to
tx_mode.
Change-Id: I459d1af6dd928ce7fccdf8ce30b6f1ca057bef92
|