Description of AI models
================
This is a collection of AI models and the following is the description and
examples of which AI model

###
AI model's input and output is fixed. Please make sure the input is match AI model.

###
Using AI engine to do overlay.

AI Model:
4k_overlay.nb                    4K overlay
1080p_overlay.nb                 1080p overlay
720p_overlay.nb                  720p overlay
360p_overlay.nb                  360p overlay

Example path:
tools/api_examples/libxcoder_internal/ni_watermark_test

###
Using AI engine to do scale.

AI Model:
hw_bicubic_network_binary.nb     bicubic algorithm to scale yuv420p 1080p to 720p
hw_lanczos_network_binary        lanczos algorithm to scale yuv420p 1080p to 720p

Example path:
ffmpeg
CMD:
sudo ffmpeg -hide_banner -y -dec 0 -c:v h264_ni_quadra_dec -xcoder-params out=hw -i input.h264
-vf "ni_quadra_ai_pre=nb=hw_bicubic_network_binary.nb:width=1280:height=720" -c:v h264_ni_quadra_enc 720p.h264

###
Using AI engine to enhance picture quality.

AI Model:
HVS_plus_4k_L1_NR1.nb            HVS enhance algorithm for 4K resolution maintain PSNR little enhance on VMAF.
HVS_plus_4k_L2_NR1.nb            HVS enhance algorithm for 4K resolution decrease PSNR and big enhance on VMAF.
HVS_plus_1080p_L1_NR1.nb         HVS enhance algorithm for 1080P resolution maintain PSNR little enhance on VMAF.
HVS_plus_1080p_L2_NR1.nb         HVS enhance algorithm for 1080P resolution decrease PSNR and big enhance on VMAF.
HVS_plus_720p_L1_NR1.nb          HVS enhance algorithm for 720P resolution maintain PSNR little enhance on VMAF.
HVS_plus_720p_L2_NR1.nb          HVS enhance algorithm for 720P resolution decrease PSNR and big enhance on VMAF.
ai_pre_process_demo.nb           USM algorithm for 1080P.

Example path:
ffmpeg
CMD:
ffmpeg -y -loglevel info -c:v h264_ni_quadra_dec -dec 0 -xcoder-params "out=hw" -i input.h264
-vf ni_quadra_ai_pre=nb=ai_pre_process_demo.nb -c:v h265_ni_quadra_enc -enc -0 ai_1080p_300.h264

###
Using AI engine to enhance picture quality and only process Y channel

AI Model:
network_binary_no_noise_ml.nb   USM algorithm for 720P with only Y channel.

Example path:
ffmpeg
CMD:
 ./ffmpeg -loglevel info -c:v h264_ni_quadra_dec -xcoder-params "out=hw" -i input.h264
 -vf "ni_quadra_scale=1280:720,ni_quadra_ai_pre=nb=network_binary_no_noise_ml.nb:mode=1" -c:v h264_ni_quadra_enc ai_720.h264

###
Using AI engine to detect face and ROI

AI Model:
network_binary_yolov4_head.nb         YOLOV4 model to detect person.
network_binary_yolov5s_improved.nb    YOLOV5 model to detect person.

Example path:
tools/ai_internal/ni_roi_transcoder

###
Using AI engine to detect car licence

AI Model:
dectlicense_hybrid.nb                 licence detect model.
reclicense_fp16.nb                    licence recognize model.

Example path:
tools/ai_internal/ni_lpr

###
Using AI engine to do OCR

AI Model:
network_binary_ocr_512.nb             OCR AI model to detect and recognize.

Example path:
tools/ai_internal/ni_ocr_vqe_transcoder

###
Using AI engine to do scene classification

AI Model:
scene_classification.nb               scene classification model.

Example path:
tools/ai_internal/ni_scene_classify