HEVC: файл трассировки блока NAL для каждого блока NUL, созданного кодером.

Я использую HM 14.0 в качестве эталона. Есть ли способ получить конкретную информацию о единицах NAL, таких как

(a) type
(b) num_bytes
(c) frame_no
(d) decode_time
(e) priority
(f) timestamp

Первые два я могу получить через приложение Bbytecount, а как быть с остальными?


person zinon    schedule 17.06.2014    source источник


Ответы (1)


Эталонный кодек поставляется со встроенным трассировщиком, который является довольно мощным!

Включите его следующим образом:

diff --git a/source/Lib/TLibCommon/TComRom.h b/source/Lib/TLibCommon/TComRom.h
index 5a59809..1930809 100644
--- a/source/Lib/TLibCommon/TComRom.h
+++ b/source/Lib/TLibCommon/TComRom.h
@@ -158,7 +158,7 @@ extern const UChar g_aucDCTDSTMode_Hor[NUM_INTRA_MODE];
 extern       Char   g_aucConvertToBit  [ MAX_CU_SIZE+1 ];   // from width to log2(width)-2

 #ifndef ENC_DEC_TRACE
-# define ENC_DEC_TRACE 0
+# define ENC_DEC_TRACE 1
 #endif

В качестве примера я закодировал и декодировал первые 20 кадров BQMall_832x480_60.yuv с включенной трассировкой.

После кодирования/декодирования с использованием:

./TAppEncoderStatic -c ../cfg/encoder_intra_main.cfg  -c ../cfg/per-sequence/BQMall.cfg
./TAppDecoderStatic -b str.bin 

создаются файлы трассировки (довольно огромные!)

$ ll -rt 
total 247100
drwxrwxr-x 12 xx xx      4096 jun 27 10:01 ../ 
-rwxrwxr-x  1 xx xx   2912618 jun 27 10:06 TAppDecoderStaticd*
-rwxrwxr-x  1 xx xx    627714 jun 27 10:06 TAppDecoderStatic*
-rwxrwxr-x  1 xx xx   4036611 jun 27 10:06 TAppEncoderStaticd*
-rwxrwxr-x  1 xx xx   1133295 jun 27 10:06 TAppEncoderStatic*
-rwxrwxr-x  1 xx xx     87319 jun 27 10:06 annexBbytecountStaticd*
-rwxrwxr-x  1 xx xx     29963 jun 27 10:06 annexBbytecountStatic*
-rwxrwxr-x  1 xx xx    369365 jun 27 10:06 convert_NtoMbit_YCbCrStaticd*
-rwxrwxr-x  1 xx xx    113252 jun 27 10:06 convert_NtoMbit_YCbCrStatic*
-rw-rw-r--  1 xx xx    442122 jun 28 21:29 str.bin
-rw-rw-r--  1 xx xx  11980800 jun 28 21:29 rec.yuv
-rw-rw-r--  1 xx xx 168288021 jun 28 21:29 TraceEnc.txt    <----
drwxrwxr-x  2 xx xx      4096 jun 28 21:31 ./
-rw-rw-r--  1 xx xx  62975377 jun 28 21:31 TraceDec.txt    <----

Взгляните на TraceEnc.txt и TraceDec.txt, они содержат все, что вам нужно знать!

person Fredrik Pihl    schedule 28.06.2014
comment
Спасибо, мне пока удалось создать TraceEnc.txt, но единственная часть, которая, как я вижу, полезна для меня, это только тип, который я также получаю с помощью AnnexBbytecount. Не могли бы вы сказать мне, что такое frame_no, timestamp или num_bytes? Заранее спасибо! - person zinon; 30.06.2014
comment
Я обнаружил, что frame_no — это POC и тип среза. В настоящее время я не нашел метки времени, количества байтов и приоритета. - person zinon; 30.06.2014
comment
Есть ли способ найти количество байтов каждого пакета в файле TraceEnc? - person zinon; 02.07.2014
comment
Не думайте так. В настоящее время я в отпуске с покрытием только gsm-edge, что затрудняет посещение SO. Я помогу тебе, когда снова вернусь в цивилизацию :-) - person Fredrik Pihl; 03.07.2014
comment
Хорошо, Фредрик, спасибо. Я буду ждать! Наслаждайся! - person zinon; 03.07.2014
comment
Есть ли способ найти время прибытия каждого пакета или кадра в файле TraceEnc.txt? - person zinon; 16.09.2014