Консольная версия Elecard StreamEye

Консольная версия Elecard StreamEye

13 июня 2019 г.
Возможности 3 794 views

Консольная версия Elecard StreamEye позволяет выполнять комплексный анализ быстро и легко, используя несколько командных строк.

Возможности консольной версии: 

  • Автоматизация и ускоренное выполнение повседневных задач;
  • Анализ большого количества видео файлов из списка;
  • Выполнение специфичных и сложных задач с помощью нескольких командных строк;
  • Сохранение результатов анализа в текстовом формате CSV для более удобного просмотра в Excel;
  • Возможность доступа к функциям и ресурсам StreamEye с помощью консоли.

 

Содержание


 

Как использовать StreamEye Command line tool:

Для автоматического анализа нескольких файлов используются следующие синтаксичские правила. С их помощью настраиваются входные и выходные параметры конфигурационного файла.

Перейдите в командную строку, нажав Start->Run и введите 'cmd'. Для запуска приложения необходимо ввести соответствующую команду и далее продолжать работу с опциями командной строки. В целом, синтаксическая конструкция должна выглядеть следующим образом:

SEyeConsole.exe <config path> <options>

Примечание. Не перемещайте консоль <product> без остальных приложений продукта, которые содержатся в установочном пакете, иначе консольное приложение не запустится.


 

Примечания

1. Параметры с дефолтным значением не являются обязательными и могут быть опущены;

2. Правила наименования входных и выходных файлов:

  • параметр /in:<file path> в командной строке перезаписывает значение тэга <input/> в конфигурационном файле;
  • параметр /out:<file prefix> в командной строке перезаписывает значение тэга <output/> в конфигурационном файле;
  • если тэг <output/> отсутствует (или не задан), имена выходных файлов формируются на основе имен входных файлов с добавлением суффикса (если последний указан);
  • если выходной файл не указан для тэга/секции, имя выходного файла для тэга/секции формируется на основе имени, указанного в тэге <output/> с добавлением суффикса, в зависимости от имени тэга/секции. Например, ".message.csv", ".picture.csv" и т.д.

Назад к содержанию


 

Пример конфигурационного файла Config.xml:

<?xml version="1.0"?>
<stream version="1">
    <input HEVCDecoder="Elecard(default)/Reference" SkipIncomplete="true(default)/false" file="…"/>
    <output separator=".(default)/," delimiter=";(default)/," file="…"/>
    <reference type="IYUV(default)/[*Upsampler Type]" filter="None(default)/FieldGen/Median/Sobel" offset="0(default)" increment="1(default)" file="…"/>
    <range span="all(default)/start - stop" order="display(default)" indexmode="base/extended(default)"/>
    <userdefs framerate="25(default)" timeperiod="1(default)"/>
    <info>
        <stream distribution="on(default)/off" file="…"/>
        <picture distribution="on(default)/off" file="…">
            <condition … />
        </picture>
        <data type="decoded(default)/predicted/unfiltered/residual/reference/difference" file="…"/>
        <coefficients type="transform/dequantized" file="…"/>
        <message level="all(default)/message/warning/error" file="…"/>
        <header level="struct(default)/parameter" file="…">
            <condition parameter="name" comparison="full/substring(default)">
                <range value="min-max"/>
                <equal value="value"/>
                <less value="min"/>
                <more value="max"/>
                <not value="value"/>
            </condition>
        </header>
        <index distribution="on(default)/off" order="display(default)/stream" file="…"/>
        <metrics type="psnr(default)/[*Metric Type]" source="decoded(default)/predicted/unfiltered/residual/reference/difference" file="…"/>
        <difference type="compare/psnr/psnr clip/subtraction/temperature" source0="decoded(default)/predicted/unfiltered/residual/reference" source1="reference(default)/decoded/predicted/unfiltered/residual" format="IYUV(default)/YV12" file="…"/> 
        <buffer file="…"/>
        <block compact="false(default)/true" disable="block|subblock|prediction|transform" file="…"/>
        <dpb description="on(default)/off" file="…"/>
        <statistics mode="all(default)/stream/picture" type="all(default)/[*Statistic Type]" prediction="all(default)/sizes/mpe" component="all(default)/luma/chroma" by="all(default)/count/area" file="…"/> 
    </info>
</stream>

<stream>
    <input file="…"/>
    <output separator=";(default)/," delimiter=".(default)/," file="…"/>
    <info>
        <stream distribution="on(default)/off" file="…"/>
    </info>
</stream>

Назад к содержанию


 

Список команд StreamEye:

<input/>Используется для конфигурации входного файла
fileУказывает путь входного файла
<output/>Используется для конфигурации выходного файла
separatorПозволяет выбирать десятичную точку или запятую, чтобы отделить целую часть действительного числа от дробной
delimiterПозволяет выбирать запятую или точку с запятой, чтобы указать границы в потоке данных
fileУказывает путь выходного файла
<reference/>  Используется для конфигурации референсного файла
typeОпределяет формат исходных данных. (YV12 — по умолчанию/Теперь используется upsampler type. Следующие обновления будут поддерживать больше форматов)
filterПозволяет фильтровать данные по кадру (None — по умолчанию/Field Generation/Median/Sobel)
offsetСдвигает позицию первого анализируемого кадра на заданное количество кадров (0 — по умолчанию)
incrementКоэффициент, который используется, чтобы вычислить следующий номер кадра для дальнейшего анализа (1 — по умолчанию)
fileУказывает путь к референсному файлу
<range/>Определяет диапазон анализируемых кадров
spanОпределяет диапазон кадров (all — по умолчанию/start–stop; start и stop — номера первого и последнего анализируемых кадров соответственно)
orderУказывает порядок кадров. Отображается по умолчанию 
index modeЗапускает режим индексирования (extended — по умолчанию/base)
<info/> Определяет тип информации для вывода
<stream/> Используется для вывода общей информации об анализируемом потоке
distributionСодержит информацию о распределении данных по типу блоков кодирования (on — по умолчанию/off)
fileУказывает путь к выводимой информации о потоке
<picture/> Используется для вывода информации об изображении
distributionСодержит информацию о распределении данных по типу блоков кодирования (on — по умолчанию/off)
fileУказывает путь к выводимой информации об изображении
<data/> Используется для сохранения выводимой информации декодера на любом этапе декодирования
typeУказывает тип данных для сохранения (decoded — по умолчанию/predicted/unfiltered/residual/raw data/difference)
formatОпределяет формат сохраняемых данных (IYUV — по умолчанию)
fileУказывает путь к выходному файлу, в котором будут сохранены данные
<message/> Используется для вывода сообщений, появляющихся во время анализа
levelОпределяет уровень сохраненных сообщений (all — по умолчанию/message/warning/error)
fileУказывает путь к выходному файлу, в котором будут сохранены сообщения
<header/> Определяет, какую информацию о заголовках выводить 
levelОпределяет тип выводимой информации о заголовках (struct — по умолчанию/ parameter; struct — сохраняется полная информация о заголовке, parameter — сохраняется информация только об одном или нескольких определенных параметрах из заголовков)
fileУказывает путь к выходному файлу, который содержит информацию о заголовках
<condition/> Используется для указания необходимых параметров заголовков. Если этот тег отсутствует, будут сдамплены все заголовки
parameterУказывает название параметра заголовка
comparisonУказывает тип сравнительной проверки для названия параметра (full/substring — по умолчанию)
<range/> Используется для определения диапазона искомых значений параметров
valueОпределяет диапазон искомых значений параметров в формате min-max&rdquo
<equal/> Используется для поиска значений параметра, равных указанному
valueЗадает значение параметра для сравнения
<less/>Используется для поиска значений параметра меньше указанного
valueЗадает значение параметра для сравнения
<more/> Используется для поиска значений параметра больше указанного
valueЗадает значение параметра для сравнения
<not/>Используется для поиска значений параметра, не равных указанному значению 
valueЗадает значение параметра для сравнения
<index/>Используется для вывода информации о кадрах (офсет, тип кадров, размер кадров, средний квантайзер и т. д.)
distributionСодержит информацию о распределении данных по типу блоков кодирования (on — по умолчанию/off)
orderПоказывает порядок сохраненных индексных данных (stream/display)
fileУказывает путь к выходному файлу, в котором будет сохранена информация о кадрах
<metrics/> Используется для вывода информации о метриках качества
typeУказывает тип метрики (PSNR — по умолчанию)/SSIM/DELTA/MSAD/MSE/VQM/NQI/APSNR/VMAF phone)
sourceОпределяет источник для вычисления метрики (decoded — по умолчанию/predicted/unfiltered/residual)
fileУказывает путь к выходному файлу, в котором будет сохранена информация о метриках
<difference/>Используется для вывода информации о метриках сравнения
typeОпределяет тип сравнения (compare/subtraction/temperature). Это обязательный параметр для данного тега. Должно быть установлено его значение по умолчанию. Если значение не задано, тег будет пропущен
source0Определяет источник для вычисления разности (decoded — по умолчанию/predicted/unfiltered/residual/reference)
source1Определяет источник для вычисления разности (reference — по умолчанию/decoded/predicted/unfiltered/residual)
fileУказывает путь к выходному файлу, в котором будет сохранена информация о разности
<buffer/>Используется для сохранения параметров буфера декодирования (Decoder Video Buffer)
fileУказывает путь к выходному файлу, который содержит информацию о буфере
<block/>Используется для определения информации о каждом блоке кодирования
compactВид данных (false — по умолчанию/true; false — каждый параметр блока отображается в одной строке, true — комбинирует данные блока и отображает их в виде столбца)
disableИсключает данные из отчета (block и/или subblock и/или prediction и/или transform)
fileУказывает путь к выходному файлу, в котором будет сохранена информация о разности
<dpb/>Используется для сохранения информации о буфере декодированных изображений для каждого кадра (description on — по умолчанию/off используется для отображения дополнительной информации о кадре)
descriptionДобавляет и убирает описание кадра на панели DPB
fileУказывает путь к выходному файлу, в котором будет сохранена информация о разности
<statistics/>Используется для получения статистики по потокам и кадрам (подробнее в Руководстве пользователя в разделе Statistics panel)
modeПозволяет выбрать режим для получения статистики (stream/pictures)
typeПоказывает статистику всего потока по структуре или предсказанию
predictionПодсчитывает тип предсказания в зависимости от формата файла и компонентов
componentПозволяет выбирать компоненты для расчета предсказаний
byПозволяет выбрать способ отображения статистики (by count/by area)
fileУказывает путь к выходному файлу, в котором будет сохранена информация о разности

Назад к содержанию


 

Примеры

Примеры ниже показывают выполнение некоторых типичных задач из командной строки:

  1. Сохранение общей информации о потоке и о каждом кадре;
  2. Поиск нужного параметра из основных заголовков потока на примере IDR_W_RADL;
  3. Поиск по всем слайсам и вывод слайсов со значением slice_type, равным "2";
  4. Сохранение в формате YUV предсказанной картинки;
  5. Сохранение информации о закодированных блоках по каждому кадру потока;
  6. Вывод основной информации о потоке с подсчетом метрики PSNR для выбранного участка.

 

1. Сохранение общей информации о потоке и о каждом кадре

config.xml:

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <stream/> 
            <picture/> 
      </info> 
      </stream>

Выходные файлы:

test_12_0_sei.stream.csv:

name;value; 
stream type;HEVC/H.265;
profile;Main;
compatibility;Main; Main 10;
level / tier;Undefined / Main;
chroma format;4:2:0;
resolution;832 x 480;
frame rate;50.00;
bitrate;1 024 000 000;

 ...
test_12_0_sei.stream.csv:

Picture #0; 
name; value;
resolution; 416 x 240;
size (bytes);  
cu; 21 476;
prediction;520;
transform; 19 264;
qp; 
min / max;23 / 23;
pixels; 
count;99 840;
intra;99 840 (100.00%);
distribution (bits); 
total; 174 352 (100.00%);
split_cu_flag;297 (0.17%);
cu_skip_flag;0 (0.00%);
prediction;  
intra_prediction; 16 653 (9.55%);
... 
Picture #1: 
name;value;
resolution;416 x 240;
size (bytes);  
cu; 978;
prediction; 352;
transform; 511;
...   

Назад к списку примеров


 

2. Поиск нужного параметра из основных заголовков потока на примере IDR_W_RADL

config.xml:

<?xml version="1.0"?>
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <header level="parameter"> 
                  <condition parameter="IDR_W_RADL" comparison="substring"/>
            </header>  
      </info> 
</stream> 

Выходной файл: 

test_12_0_sei.header.csv:

offset;name;
0x000000AA;slice_segment_layer() { IDR_W_RADL }; 
0x00025F47;slice_segment_layer() { IDR_W_RADL };

Назад к списку примеров


 

3. Поиск по всем слайсам и вывод слайсов со значением slice_type, равным "2"

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\test_12_0_sei"/> 
      <info> 
            <header> 
                  <condition parameter="slice_type">  
                        <equal value="2"/> 
                  </condition> 
            </header> 
      </info> 
</stream>

Выходной файл:

test_12_0_sei.header.csv: 

offset;name;value;
0x0000009C;slice_segment_layer() { IDR_W_RADL }; 
 first_slice_segment_in_pic_flag;1;
 no_output_of_prior_pics_flag;0;
 slice_pic_parameter_set_id;0;
 slice_type;2;
 slice_sao_luma_flag;1;
 slice_sao_chroma_flag;1;
 slice_qp_delta;6;
 slice_loop_filter_across_slices_enabled_flag;1;
0x0000D21A; slice_segment_layer() { CRA_NUT };  
 first_slice_segment_in_pic_flag;1;
 no_output_of_prior_pics_flag;0;
 slice_pic_parameter_set_id;0;
 slice_type;2;
 slice_pic_order_cnt_lsb; 32;
 short_term_ref_pic_set_sps_flag;0;
 short_term_ref_pic_set(12);  
 if(stRpsIdx != 0);  
...    

Назад к списку примеров




4. Сохранение в формате YUV предсказанной картинки

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <data type="predicted"/> 
      </info> 
</stream>

Выходной файл:

test_12_0_sei.data.416x240.yuv

Назад к списку примеров



5. Сохранение информации о закодированных блоках по каждому кадру потока

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/> 
      <info> 
            <block/> 
      </info> 
</stream>

Выходной файл:

test_12_0_sei.block10.csv  

name; value;
lcu location;0x0;
lcu slice\tile idx;0\0;
lcu size total\prediction\transform;17\17\0;
cu type\location\dimension\depth;PART_2Nx2N\0x0\64x64\0;
cu size total\prediction\transform;17\17\0;
tu dimensions\qp;64x64\35;
pu inter dimension\merge_flag\mvp_l0_flag\mvp_l1_flag;64x64\0\0\0;
pu inter type\dimension;2 (Pred_BI)\64x64;
pu L0 mv\mvd;-1, 0, 1 / -1, 0;
pu L1 mv\mvd;-1, 1, 0 / -1, 1;
pu mv candidates;*[0]\mvL0(0,0)\[1]\mvL0(0,0)\*0]\mvL1(0,0)\1]\mvL1(0,0);
lcu location; 64x0;
lcu slice\tile idx;0\0;
... 

Назад к списку примеров



6. Вывод основной информации о потоке с подсчетом метрики PSNR для выбранного участка

config.xml: 

<?xml version="1.0"?> 
<stream version="1"> 
      <input file="C:\Media\hevc\test_12_0_sei.h265"/> 
      <output file="C:\Media\hevc\out\"/>
      <reference file="C:\Media\raw\BasketballDrill_832x480_50.yuv"/> 
      <range span="0-10"/> 
      <info> 
            <metrics type="psnr"/>
            <index distribution="off" order="display"/>
      </info> 
</stream>

Выходной файл:

test_12_0_sei.index.csv: 

stream;display;offset;poc;type;time;quant;psnr y;
0;0;0x00000000;0;I;00:00:00:000;32;36.065069;
1;8;0x000042B3;8;B;00:00:00:160;33;36.065069;
2;4;0x00005790;4;B;00:00:00:160;34;36.065069;
...       
10;12; 0x00008343;12;B;00:00:00:240;34;34.808986;

Назад к списку примеров

Назад к содержанию

Ресурсы

В тексте

Продукт:StreamEyeStreamEye Studio
Категория вопроса:Возможности

Отзыв от клиента

Дополнительная информация