Age | Commit message (Collapse) | Author |
|
Saves 2688 bytes of rodata.
Change-Id: I46633b6e50c2845181c70fff6273a8e58fdd1e56
|
|
Change-Id: I501597b7c1e0f0c7ae2aea3ee8073f0a641b3487
|
|
Change-Id: I45d9fb4013f50766b24363a86365e8063e8954c2
|
|
The transform block row and column positions are always available
outside the callees. There is no need to re-compute these values
again. This approach has been used by the decoder. This commit
removes txfrm_block_to_raster_xy() function.
Change-Id: I5b90f91a0d8b7c35cfa7d171da9edf8202630108
|
|
Change-Id: Iac7bc0d0eba459a04688aae224d34ae9b59742db
|
|
About a 5% faster overall encode (perf cycles) at speed zero!
Change-Id: Iaf013ba75884415cd824e98349f654ffb1c3ef33
|
|
-.220 BDRATE derf: https://x20web.corp.google.com/~aconverse/results/cost256_derf.html
-.675 BDRATE hevcmr: https://x20web.corp.google.com/~aconverse/results/cost256_hevcmr.html
Change-Id: Ifb1646d8ce65ffe0eff9953a911b1b88735b335f
|
|
Repack TOKENEXTRA fields.
Speed impact within measurment margin of error.
Change-Id: I9a6d1dde1bb4a0766b02d0cb74c871ddde907cde
|
|
|
|
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
|
|
Change-Id: I9c383d604dfd240e38b198ac5bf86ddd3456f442
|
|
Change-Id: I6977f7d155cc1e81ae2393933893caac6770821f
|
|
Change-Id: I5a2abd35cb303d8f6354b3119ab95acf90405116
|
|
Change-Id: Ia5072a3a92212d8565f33359f6c146469bdfbbec
|
|
Change-Id: If196d9e5c7a15ee7d988ee2ecbf155a54d59b480
|
|
change prefix vp9_ to vpx_ for non codec specific functions and data
structures.
Change-Id: I97c7e6422eceea99212b93f4942bc2187763a07c
|
|
Replace vp9_ in names to vpx_ as they are not codec specific.
Change-Id: I2e583aa63dee769353ada4b42417aa15c4074ebb
|
|
and changed name.
Change-Id: Ie023ca66cc2c823032f58d4faeb53fd1863c94f3
|
|
Various header/test files had to be re-worked in order to
build "Remove cm parameter from vp9_decode_block_tokens()".
This patch reverts the "Remove cm" part and only contains
the re-worked header files.
Change-Id: I520958a88d1991fee988a3c784d0eac40e117a32
|
|
(see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6)
For the test clip used, the decoder performance improved by ~2%.
This is also an intermediate step towards adding back the
mode_info streams.
Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
|
|
When the tokenization is not taking effect, the tokenization
pointer remains unchanged. No need to re-assign the backup pointer
value.
Change-Id: I58fe1f6285aa3b4a88ceb864c11d5de8ac6235dd
|
|
This tree should be defined in common/, as it is needed for
both encoder and decoder.
Change-Id: I4f5cbc80025cf2ced14182c98f7c82dc7d0f87db
|
|
Change-Id: Iabe8a8868a747626c24bb13f1796f4c7827af367
|
|
|
|
|
|
Change-Id: I28a3d342a4a4b23e02a0f47bb8037c4403f71d61
|
|
Change-Id: Iff528c4b7528cc70320343b3a7ce07a92b024dfd
|
|
Change-Id: Idb257e78dab2339ab1f41c3c82e537bc23e90b65
|
|
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
|
|
Several frame counters in encoder are updated at SB level. Combine
those counters and put them in a separate struct, which allows us
to allocate one copy for each thread.
Change-Id: I00366296a13c0ada4d8fa12f5e07728388b6cab7
|
|
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
|
|
This patch allocated frame contexts outside VP9_COMMON. This allows
multiple threads to share the same copy of frame contexts, and
reduces the overhead. It also guarantees the correct update of
these contexts during bitstream packing. This patch doesn't change
encoding result.
Change-Id: Ic181a2460b891d1d587278a6d02d8057b9dbd353
|
|
This commit enables the encoder to skip split partition search if
the bigger block size has all non-zero quantized coefficients in low
frequency area and the total rate cost is below a certain threshold.
It logarithmatically scales the rate threshold according to the
current block size. For speed 3, the compression performance loss:
derf -0.093%
stdhd -0.066%
Local experiments show 4% - 20% encoding speed-up for speed 3.
blue_sky_1080p, 1500 kbps
51051 b/f, 35.891 dB, 67236 ms ->
50554 b/f, 35.857 dB, 59270 ms (12% speed-up)
old_town_cross_720p, 1500 kbps
14431 b/f, 36.249 dB, 57687 ms ->
14108 b/f, 36.172 dB, 46586 ms (19% speed-up)
pedestrian_area_1080p, 1500 kbps
50812 b/f, 40.124 dB, 100439 ms ->
50755 b/f, 40.118 dB, 96549 ms (4% speed-up)
mobile_calendar_720p, 1000 kbps
10352 b/f, 35.055 dB, 51837 ms ->
10172 b/f, 35.003 dB, 44076 ms (15% speed-up)
Change-Id: I412e34db49060775b3b89ba1738522317c3239c8
|
|
Miscellaneous bug-fixes for high bitdepth functionality.
With this patch, high bit-depth profiles become mostly functional,
except for an intermittent assert failure issue that is being
tracked.
Change-Id: I6a7fcbdcf1e5b09842e88535f8442d2e1230748c
|
|
mi_grid_* are arrays of pointer to pointer. They save the pointers that point
to the MIs in cm->mi. But they are unnecessary and complicated. The original
goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
inside MODE_INFO_t, same goal could be achieved.
This commit totally removes the mi_grid_* structures. But there are still
many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
will do on-demand MODE_INFO_t allocation in order to save these memories.
Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
|
|
Tokenization and Detokenization enhancements for 10/12 bit
Change-Id: I3c269ec30f8eb160ee024905638a193975237559
|
|
Adds various high bitdepth transform functions and tests.
Much of the changes are related to using typedefs tran_low_t
and tran_high_t for the final transform cofficients and intermediate
stages of the transform computation respectively rather than fixed
types int16_t/int. When vp9_highbitdepth configure flag is off,
these map tp int16_t/int32_t, but when the flag is on, they map
to int32_t/int64_t to make space for needed extra precision.
Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
|
|
Refactoring to remove some duplication of probability
tables between tokenization and detokenization.
Change-Id: I2fc6a6497f9c0410021a9b41f828bc58a864e466
|
|
Change-Id: I16bf93d40e9b345705b49bf09dd4b6996b513a83
|
|
Change-Id: I85854f1ab2d60feea0bfe6b2141f89a998777ecb
|
|
Actual renames:
vp9_onyx_if.c -> vp9_encoder.c
vp9_onyx_int.h -> vp9_encoder.h
Change-Id: I80532a80b118d0060518e6c6a0d640e3f411783c
|
|
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
|
|
|
|
Change-Id: I47a8b4bf9a6cc0063d1a6785eaaad641d0659e24
|
|
We use local variable for token_cache in the decoder.
Change-Id: I032763fa7894313cffe73e3f14863ae1d0527665
|
|
Change-Id: Ib9e27298c575afc02a98b593bc6ad60762064d9b
|
|
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
|
|
Change-Id: I7d11c6ae259aff6560710d16fea3032c661e5b02
|
|
The largest value is 13358.
Change-Id: I7a6b024a92b6250933d9ebc0cad066b966c96bd4
|