Есть ли экстрактор битового потока в масштабируемом HEVC?

Я использую эталонное программное обеспечение Scalable HEVC (SHM 12.2).

Я кодирую видео в два слоя, используя следующий скрипт:

/home/Experiments/Zinon/SHM-12.2/bin/TAppEncoderStatic -c
cfg/encoder_randomaccess_scalable.cfg -c cfg/per-sequence-svc/C_L-1.5x.cfg 
-c cfg/layers.cfg -b str/C_L.bin -o0 rec/C_L_l0_rec.yuv -o1 rec/C_L_l1_rec.yuv

В масштабируемом формате H.264 с помощью экстрактора битового потока “BitStreamExtractorStatic” я могу извлекать подпотоки потока AVC или SVC.

Знаете ли вы, есть ли аналогичный экстрактор битового потока в Scalable HEVC? Потому что в SHM такого нет.

В SHM/source/App/utils/ExtractAddLS/ есть текстовые файлы, содержащие следующий текст. Во всяком случае, я не могу найти исполняемый файл ExtractAddLS, только c-файл.

Это инструмент, который либо:

  1. Извлекает независимый небазовый уровень из многослойного битового потока, преобразует его в бистрим базового уровня и записывает в файл. Процессы извлечения определены в главе F.10.2 спецификации HEVC версии 2.

or

  1. Извлекает дополнительный подбитовый поток набора слоев из многослойного битового потока и записывает его в файл. Процессы извлечения определены в главе F.10.3 спецификации HEVC версии 2.

Инструмент вызывается следующим образом:

ExtractAddLS <infile> <outfile> <Max temporal ID> <layer IDs of the extracted layers>

Запускаемый процесс определяется на основе количества идентификаторов, указанных в списке идентификаторов слоев. Если задан только один идентификатор уровня, вызывается независимый процесс перезаписи небазового уровня. Если дано более одного идентификатора уровня, вызывается извлечение подпотока битов для дополнительных наборов слоев.

Результат независимого процесса перезаписи, отличного от базового уровня, можно декодировать с помощью декодера, совместимого с HEVC/H.265 v1, если извлеченный независимый уровень соответствует тексту спецификации v1. Инструмент удаляет VPS из выходного битового потока во время перезаписи, поэтому декодер HEVC/H.265 не должен ожидать его присутствия.


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


Ответы (1)


После месяцев поисков я понял, что декодер SHM может извлечь запрошенный слой, просто добавив параметр. Например:

TAppDecoderStatic -b str/pirkagia_10b_lowdelay_P.bin -olsidx 0 -o0 /yuv/pirkagia_10b_lowdelay_P_level_0_dec.yuv >> /txt/pirkagia_10b_lowdelay_P_level_0_dec.txt 

Используя параметр -olsidx, мы можем выбрать индекс набора выходных слоев для декодирования.

person zinon    schedule 11.08.2017