Bit accounting.
This patch adds bit account infrastructure to the bit reader API. When configured with --enable-accounting, every bit reader API function records the number of bits necessary to decoding a symbol. Accounting symbol entries are collected in global accounting data structure, that can be used to understand exactly where bits are spent (http://aomanalyzer.org). The data structure is cleared and reused each frame to reduce memory usage. When configured without --enable-accounting, bit accounting does not incur any runtime overhead. All aom_read_xxx functions now have an additional string parameter that specifies the symbol name. By default, the ACCT_STR macro is used (which expands to __func__). For more precise accounting, these should be replaced with more descriptive names. Change-Id: Ia2e1343cb842c9391b12b77272587dfbe307a56d
This commit is contained in:

committed by
Yaowu Xu

parent
4bacfcffd0
commit
6048d05225
@@ -126,6 +126,9 @@ AV1Decoder *av1_decoder_create(BufferPool *const pool) {
|
||||
#if CONFIG_LOOP_RESTORATION
|
||||
av1_loop_restoration_precal();
|
||||
#endif // CONFIG_LOOP_RESTORATION
|
||||
#if CONFIG_ACCOUNTING
|
||||
aom_accounting_init(&pbi->accounting);
|
||||
#endif
|
||||
|
||||
cm->error.setjmp = 0;
|
||||
|
||||
@@ -154,6 +157,10 @@ void av1_decoder_remove(AV1Decoder *pbi) {
|
||||
av1_loop_filter_dealloc(&pbi->lf_row_sync);
|
||||
}
|
||||
|
||||
#if CONFIG_ACCOUNTING
|
||||
aom_accounting_clear(&pbi->accounting);
|
||||
#endif
|
||||
|
||||
aom_free(pbi);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user