Skip to content

Commit

Permalink
v3.29.0
Browse files Browse the repository at this point in the history
  • Loading branch information
HailoRT-Automation committed Jul 9, 2024
1 parent 4341aa3 commit 0f4813c
Show file tree
Hide file tree
Showing 123 changed files with 7,925 additions and 310 deletions.
2 changes: 1 addition & 1 deletion .config
Original file line number Diff line number Diff line change
@@ -1 +1 @@
hailort_version=4.17
hailort_version=4.18
56 changes: 39 additions & 17 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Hailo TAPPAS - Optimized Execution of Video-Processing Pipelines
:width: 150
:height: 20

.. |hailort| image:: https://img.shields.io/badge/HailoRT-4.17.0-green
.. |hailort| image:: https://img.shields.io/badge/HailoRT-4.18.0-green
:target: https://github.com/hailo-ai/hailort
:alt: HailoRT
:height: 20
Expand Down Expand Up @@ -56,20 +56,19 @@ Demonstrating Hailo's system integration scenario of specific use cases on prede

----

Getting Started
---------------
Getting Started with Hailo-8
----------------------------

Prerequisites
^^^^^^^^^^^^^


* Hailo-8 device
* HailoRT PCIe driver installed
* At least 6GB's of free disk space


.. note::
This version is compatible with HailoRT v4.17.
This version is compatible with HailoRT v4.18.


Installation
Expand Down Expand Up @@ -112,9 +111,20 @@ Documentation

----

Getting Started with Hailo-15
-----------------------------

For a quick start with Hailo-15, please refer to the Vision Processor Software Package documentation section
in Hailo's `Developer Zone <https://hailo.ai/developer-zone/documentation/>`_.

----

Example Applications Built with TAPPAS
--------------------------------------

.. note:: For the Raspberry Pi 5 applications, go to
`Hailo Raspberry Pi 5 Examples <https://github.com/hailo-ai/hailo-rpi5-examples>`_.

TAPPAS comes with a rich set of pre-configured pipelines optimized for different common hosts.


Expand Down Expand Up @@ -197,11 +207,6 @@ Two Network Pipelines
^^^^^^^^^^^^^^^^^^^^^

Examples of basic pipelines running two networks.
The parallel networks pipeline is an simple extension of the single network pipeline and is shown in the following diagram:

.. image:: resources/parallel_nets_pipeline.png


The cascaded (serial) flow shows two networks running in series. This example pipeline is of the popular configuration where the first network is a detector which finds some Region-of-Interest (ROI) in the input image and the second network processes the cropped ROI (a face-detection-and-landmarking use case of this pipeline is shown at the top of this guide). The pipeline is shown in the following diagram:


Expand Down Expand Up @@ -314,12 +319,6 @@ The pipeline demonstrates another method for inference based decision making tha

.. image:: resources/re_id_pipeline.png

Our VMS reference application demonstrates the use of 5 networks over multiple streams, and is a reference for video management system applications.


.. image:: resources/vms_pipeline.png


.. list-table::
:header-rows: 1
:stub-columns: 1
Expand Down Expand Up @@ -352,6 +351,29 @@ Our VMS reference application demonstrates the use of 5 networks over multiple s
Changelog
----------

**v3.29.0 (July 2024)**

* Hailo-15:

* Updated all Hailo-15 example applications to use the latest API
* Added a new C++ based example application that demonstrates the use of the
Hailo-15 API `Link <core/hailo/apps/hailo15/ai_example_app/README.rst>`_
* This release is aligned with the Hailo-15 Vision Processor Software Package 2024-07

* Hailo-8:

* Added a new example application which demonstrates x86 hardware-accelerated
`multi-stream detection <apps/h8/gstreamer/x86_hw_accelerated/multistream_detection/README.rst>`_
* Various bug fixes and stability improvements for `Raspberry Pi 5 <https://github.com/hailo-ai/hailo-rpi5-examples>`_

* Fixed various stability issues across apps and platforms

**v3.28.1 (May 2024)**

* Added a new property to ``hailomuxer`` which allows the sub-frame to be leaky
* ``hailooverlay`` now properly supports Hailo-15 with a new DMABuf sync mechanism
* ``hailovideoscale`` (Hailo-15 Element) now supports the ``letterbox`` property

**v3.28.0 (April 2024)**

* Tappas was updated in this version, with a revised list of supported platform and apps
Expand Down Expand Up @@ -635,4 +657,4 @@ Changelog
* NVR multi-stream detection app
* Detection app
* Hailofilter gstreamer element
* Pose Estimation app
* Pose Estimation app
Original file line number Diff line number Diff line change
Expand Up @@ -20,26 +20,25 @@ function init_variables() {

readonly DEFAULT_MAX_BUFFER_SIZE=5
readonly DEFAULT_FORMAT="NV12"
readonly DEFAULT_BITRATE=25000000
readonly DEFAULT_FRONTEND_CONFIG_FILE_PATH="$RESOURCES_DIR/configs/frontend_config.json"

input_source=$DEFAULT_VIDEO_SOURCE

json_config_path_4k="$RESOURCES_DIR/configs/osd_4k.json"
json_config_path_fhd="$RESOURCES_DIR/configs/osd_fhd.json"
json_config_path_hd="$RESOURCES_DIR/configs/osd_hd.json"
json_config_path_sd="$RESOURCES_DIR/configs/osd_sd.json"
json_config_path_4k="$RESOURCES_DIR/configs/encoder_config_sink_4k.json"
json_config_path_hd="$RESOURCES_DIR/configs/encoder_config_sink_hd.json"
json_config_path_sd="$RESOURCES_DIR/configs/encoder_config_sink_sd.json"

frontend_config_file_path="$DEFAULT_FRONTEND_CONFIG_FILE_PATH"

encoding_hrd="hrd=false"

# Limit the encoding bitrate to 10Mbps to support weak host.
# Comment this out if you encounter a large latency in the host side
# Tune the value down to reach the desired latency (will decrease the video quality).
# if you encounter a large latency in the host side.
# Set the following values down in the encoder config file, to reach the desired latency (will decrease the video quality).
# ----------------------------------------------
# bitrate=10000000
# encoding_hrd="hrd=true hrd-cpb-size=$bitrate"
# hrd=true
# hrd-cpb-size=<same as bitrate>
# ----------------------------------------------

max_buffers_size=$DEFAULT_MAX_BUFFER_SIZE
Expand Down Expand Up @@ -107,9 +106,7 @@ function create_pipeline() {
udpsink host=10.0.0.2 sync=$sync_pipeline"

FOUR_K_TO_ENCODER_BRANCH="queue leaky=no max-size-buffers=$max_buffers_size max-size-bytes=0 max-size-time=0 ! \
hailoosd config-file-path=$json_config_path_4k ! \
queue leaky=downstream max-size-buffers=2 max-size-bytes=0 max-size-time=0 ! \
hailoh264enc bitrate=$FOUR_K_BITRATE hrd=false ! \
hailoencodebin config-file-path=$json_config_path_4k ! \
video/x-h264 ! \
tee name=fourk_enc_tee \
fourk_enc_tee. ! \
Expand All @@ -126,9 +123,7 @@ function create_pipeline() {
$FPS_DISP name=hailo_display_fhd "

HD_BRANCH="queue leaky=no max-size-buffers=$max_buffers_size max-size-bytes=0 max-size-time=0 ! \
hailoosd config-file-path=$json_config_path_hd ! \
queue leaky=downstream max-size-buffers=2 max-size-bytes=0 max-size-time=0 ! \
hailoh264enc bitrate=$HD_BITRATE $encoding_hrd ! \
hailoencodebin config-file-path=$json_config_path_hd ! \
video/x-h264 ! \
tee name=hd_tee \
hd_tee. ! \
Expand All @@ -138,9 +133,7 @@ function create_pipeline() {
$FPS_DISP name=hailo_display_hd_enc "

SD_BRANCH="queue leaky=no max-size-buffers=$max_buffers_size max-size-bytes=0 max-size-time=0 ! \
hailoosd config-file-path=$json_config_path_sd ! \
queue leaky=downstream max-size-buffers=2 max-size-bytes=0 max-size-time=0 ! \
hailoh264enc bitrate=$SD_BITRATE $encoding_hrd ! \
hailoencodebin config-file-path=$json_config_path_sd ! \
video/x-h264 ! \
tee name=sd_tee \
sd_tee. ! \
Expand All @@ -154,9 +147,7 @@ function create_pipeline() {
create_pipeline $@

PIPELINE="${debug_stats_export} gst-launch-1.0 \
v4l2src io-mode=mmap device=$input_source name=src_0 ! video/x-raw, width=3840, height=2160, framerate=30/1, format=$video_format ! \
queue leaky=downstream max-size-buffers=$max_buffers_size max-size-bytes=0 max-size-time=0 ! \
hailofrontend config-file-path=$frontend_config_file_path name=preproc \
hailofrontendbinsrc config-file-path=$frontend_config_file_path name=preproc \
preproc. ! $FOUR_K_TO_ENCODER_BRANCH \
preproc. ! $FOUR_K_BRANCH \
preproc. ! $FHD_BRANCH \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"osd": {
},
"encoding": {
"input_stream": {
"width": 3840,
"height": 2160,
"framerate": 30,
"format": "NV12"
},
"hailo_encoder": {
"config": {
"output_stream": {
"codec": "CODEC_TYPE_H264",
"profile": "VCENC_H264_MAIN_PROFILE",
"level": "5.1",
"bit_depth_luma": 8,
"bit_depth_chroma": 8,
"stream_type": "bytestream"
}
},
"gop_config": {
"gop_size": 1,
"b_frame_qp_delta": 0
},
"coding_control": {
"sei_messages": true,
"deblocking_filter": {
"type": "DEBLOCKING_FILTER_ENABLED",
"tc_offset": -2,
"beta_offset": 5,
"deblock_override": false
},
"intra_area": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
},
"ipcm_area1": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
},
"ipcm_area2": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
},
"roi_area1": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0,
"qp_delta": 0
},
"roi_area2": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0,
"qp_delta": 0
}
},
"rate_control": {
"picture_rc": true,
"picture_skip": false,
"ctb_rc": false,
"block_rc_size": 64,
"hrd": false,
"hrd_cpb_size": 1000000,
"monitor_frames": 30,
"gop_length": 120,
"quantization": {
"qp_min": 20,
"qp_max":51,
"qp_hdr": 26,
"intra_qp_delta": -5,
"fixed_intra_qp": 0
},
"bitrate": {
"target_bitrate": 25000000,
"bit_var_range_i": 10,
"bit_var_range_p": 10,
"bit_var_range_b": 10,
"tolerance_moving_bitrate": 0
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
{
"osd": {
},
"encoding": {
"input_stream": {
"width": 1920,
"height": 1080,
"framerate": 15,
"format": "NV12"
},
"hailo_encoder": {
"config": {
"output_stream": {
"codec": "CODEC_TYPE_H264",
"profile": "VCENC_H264_MAIN_PROFILE",
"level": "5.1",
"bit_depth_luma": 8,
"bit_depth_chroma": 8,
"stream_type": "bytestream"
}
},
"gop_config": {
"gop_size": 1,
"b_frame_qp_delta": 0
},
"coding_control": {
"sei_messages": true,
"deblocking_filter": {
"type": "DEBLOCKING_FILTER_ENABLED",
"tc_offset": -2,
"beta_offset": 5,
"deblock_override": false
},
"intra_area": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
},
"ipcm_area1": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
},
"ipcm_area2": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0
},
"roi_area1": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0,
"qp_delta": 0
},
"roi_area2": {
"enable": false,
"top": 0,
"left": 0,
"bottom": 0,
"right": 0,
"qp_delta": 0
}
},
"rate_control": {
"picture_rc": true,
"picture_skip": false,
"ctb_rc": false,
"block_rc_size": 64,
"hrd": false,
"hrd_cpb_size": 1000000,
"monitor_frames": 30,
"gop_length": 120,
"quantization": {
"qp_min": 20,
"qp_max":51,
"qp_hdr": 26,
"intra_qp_delta": -5,
"fixed_intra_qp": 0
},
"bitrate": {
"target_bitrate": 1000000,
"bit_var_range_i": 10,
"bit_var_range_p": 10,
"bit_var_range_b": 10,
"tolerance_moving_bitrate": 0
}
}
}
}
}
Loading

0 comments on commit 0f4813c

Please sign in to comment.