Age | Commit message (Collapse) | Author |
|
Change-Id: If90c1bc822873156d4e38fca1938e4907f6c95f0
|
|
Change-Id: I64172710654e95a90ee754d14d7104337d28010f
|
|
Change-Id: I0db4b31cb2382d4f6249eae0a8f42d227ad0ac57
|
|
As they are used by encoder only.
Change-Id: I7b1e6955b218aba66fe156523521a8121c9a84a4
|
|
Change-Id: I0fd76937e847f78378a7ab3fa0af00a7c2c52b42
|
|
replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making
it less stateful and more reusable for parallel tile decoding
Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
|
|
The only case where they were intentionally pointing to different
structures was in mbgraph, and this didn't have the expected behavior
because both of these pointers are used interchangeably through the code
Change-Id: I979251782f90885fe962305bcc845bc05907f80c
|
|
Updated the encoder to handle frames that are coded
intra-only. Intra-only frames must be non-showable,
that is, the "show frame" flag must be set to 0 in
the frame header.
Tested by forcing the ARF frames to be coded intra-
only.
Note: The rate control code will need to be modified
to account for intra-only frames better than they
are currently handled.
Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
|
|
This fix a bug introduced by ac6093d179d8488f90bf10c6d0abcc48be327d28
Change-Id: I0700a4daf7a6a2471074f81a4596352287fb2ac9
|
|
mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of pointers to MODE_INFO structs. The
MODE_INFO structs are now stored as a stream (decoder only),
eliminating unnecessary copies and is a little more cache
friendly.
Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
|
|
This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1
Encode crashes, leaks and increases integer overflow errors.
Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
|
|
mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of a pointer to a MODE_INFO struct and
a "in the image" flag. The MODE_INFO structs are now stored
as a stream, eliminating unnecessary copies and is a little
more cache friendly.
For the test clips used, the decoder performance improved
by ~4.3% (1080p) and ~9.7% (720p).
Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
and 5.9% (720p).
Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
|
|
Change-Id: I62bb07c377f947cb72fac68add7a6b199e42c6b9
|
|
Change-Id: I8a246b3d056c98be614d05a90bc261e2441ffc10
|
|
|
|
Change-Id: I4fad357465022d14bfc7e13b348c6da267587314
|
|
VP9_COMMON is the right place to segmentatation struct because it has
global segmentation parameters, not something specific to macroblock
processing.
Change-Id: Ib9ada0c06c253996eb3b5f6cccf6a323fbbba708
|
|
Change-Id: I428c4d42212b757112e3acfe5b81314cfbb5fd6b
|
|
Change-Id: I0e9329490828684a4fd46f540d89114cc68e8407
|
|
Change-Id: I27471768980fc631916069f24bc7c482a5c9ca17
|
|
Renamed:
MAX_MB_SEGMENTS to MAX_SEGMENTS
MB_SEG_TREE_PROBS to SEG_TREE_PROBS
The minimum unit for segmentation in the segment map
is now 8x8 so it is misleading to use MB_ as macro-block
traditionally refers to a 16x16 region.
Change-Id: I0b55a6f0426bb46dd13435fcfa5bae0a30a7fa22
|
|
Removing tile_rows and tile_columns from VP9Common, removing redundant
constants MIN_TILE_WIDTH and MAX_TILE_WIDTH, changing signature of
vp9_get_tile_n_bits.
Change-Id: I8ff3104a38179b2c6900df965c144c1d6f602267
|
|
Making implementation of vp9_set_pred_flag_{seg_id, mbskip} consistent
with vp9_get_segment_id without using confusing sub(a, b) macro. Passing
mi_row and mi_col to functions explicitly instead of replying on
mb_to_right_edge and mb_to_bottom_edge.
Change-Id: I54c1087dd2ba9036f8ba7eb165b073e807d00435
|
|
Removing redundant function arguments and curly braces.
Change-Id: I46e02561f33fe02e84a3b19756f03b9504bd6a1b
|
|
Adding segmentation struct to vp9_seg_common.h. Struct members are from
macroblockd and VP9Common structs. Moving segmentation related constants
and enums to vp9_seg_common.h.
Change-Id: I23fabc33f11a359249f5f80d161daf569d02ec03
|
|
Removes SEG_ID
Removes MBSKIP
Removes SWITCHABLE_INTERP
Removes INTRA_INTER
Removes COMP_INTER_INTER
Removes COMP_REF_P
Removes SINGLE_REF_P1
Removes SINGLE_REF_P2
Removes TX_SIZE
Change-Id: Ie4520ae1f65c8cac312432c0616cc80dea5bf34b
|
|
Using vp9_set_pred_flag function instead of custom code, adding
decode_tokens function which is now called from decode_atom,
decode_sb_intra, and decode_sb.
Change-Id: Ie163a7106c0241099da9c5fe03069bd71f9d9ff8
|
|
Using consistent function and variable names.
Change-Id: I2deb3fded8797453a2081836c9ce2e79ade06eb7
|
|
Change-Id: Ia40229903c08f14020e90e94cfdf494aba1be827
|
|
Pull sb8x8 out of experimental list. verified via borg run tests.
Fixed unit test failures.
Change-Id: I12a4bbd17395930580c048ab68becad1ffe46e76
|
|
don't access mi until mi_{row,col} validation has been done
Change-Id: Ie1be052612cfccb2730dff9281c222bca28bf2c6
|
|
experimental
|
|
|
|
Work-in-progress, not yet ready for review. TODO items:
- bitstream writing (encoder) and reading (decoder)
- decoder reconstruction
Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
|
|
Changing the order of probabilities inside mb_segment_tree_probs in order
to use treed_read/treed_write function instead of custom code.
Change-Id: I843487d5057913b9358db73da270893eefecc6c8
|
|
Moving code from vp9_pack_bitstream to new function encode_segmentation.
Change-Id: I1f1e59a1f038618ad95162b7db4b6f8164850ea8
|
|
This is shorter than fully writing out all cases (55 vs. 84 LOC), and
is easier to extend.
Change-Id: Ibad1bf6463198cad9188c5507181d4b03d393e6d
|
|
Change-Id: I087e08e7909a406b71715b8525c104208daa6889
|
|
|
|
Function set_mb_row() and set_mb_col() do similar work and are always
called together, this commit merged them into a single function for
clarity and easy maintainence. This was a TODO item.
Change-Id: I956bd9ed6afb8b2b0469b20fd8bc893b26f8a0f3
|
|
Move rectangular superblock coding out of experimental list.
Change-Id: I96c37547d122330d666a67b4bf577ae54547857f
|
|
Also some further simplification following removal
of top node code.
There is an issue in regards to the shared file vp8cx.h
in regard to the roi_map as this interface assumes that
there are only 4 segments. I have left the value here as
4 for now meaning that the roi_map interface is broken
for VP9.
Note that this change would have been easier if I hadn't
had to search for hard wire instances of the number 4
and <= 3.
Change-Id: Ia8b6deea4be4dbd20deb1656e689dd43a5f190e8
|
|
Remove top node optimization.
The improvement this gives is not sufficient to justify
the extra complexity.
Change-Id: I2bb4a12a50ffd52cacfa4a3e8acbb2e522066905
|
|
vp9_get_pred_mb_segid." into experimental
|
|
Change-Id: Iff35d4b2f8f65511f80c594958c01fb4673fa033
|
|
Removed some unused legacy code relating to GF activity.
Change-Id: I0b0fe90a1a5208aaa81d7393ba6cf75ab412dbda
|
|
Adds RD integration for 32x16, 16x32, 64x32 and 32x64 rectangular blocks.
Derf almost +0.6%, HD a little over +1.0%, STDHD +1.3%.
Change-Id: Id651fdb6a655fdbb5c47009757e63317acfb88a5
|
|
This patch revamps the entropy coding of coefficients to code first
a non-zero count per coded block and correspondingly remove the EOB
token from the token set.
STATUS:
Main encode/decode code achieving encode/decode sync - done.
Forward and backward probability updates to the nzcs - done.
Rd costing updates for nzcs - done.
Note: The dynamic progrmaming apporach used in trellis quantization
is not exactly compatible with nzcs. A suboptimal approach has been
used instead where branch costs are updated to account for changes
in the nzcs.
TODO:
Training the default probs/counts for nzcs
Change-Id: I951bc1e22f47885077a7453a09b0493daa77883d
|
|
Removing redundant 'extern' keyword from function declarations and making
function arguments lower case.
Change-Id: Idae9a2183b067f2b6c85ad84738d275e8bbff9d9
|
|
These allow sending partial bitstream packets over the network before
encoding a complete frame is completed, thus lowering end-to-end
latency. The tile-rows are not independent.
Change-Id: I99986595cbcbff9153e2a14f49b4aa7dee4768e2
|