Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HW Accelerated JPEG encoder for X86 and DS 6.3 #347

Closed
bwsw opened this issue Aug 9, 2023 · 5 comments
Closed

HW Accelerated JPEG encoder for X86 and DS 6.3 #347

bwsw opened this issue Aug 9, 2023 · 5 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@bwsw
Copy link
Contributor

bwsw commented Aug 9, 2023

According to the changelog, DS 6.3 introduced an HW-accelerated JPEG encoder.

@bwsw bwsw added the enhancement New feature or request label Aug 9, 2023
@bwsw bwsw added this to the 0.2.5 milestone Aug 9, 2023
@bwsw bwsw moved this to Todo in Savant: 0.2.5 Aug 9, 2023
@bwsw
Copy link
Contributor Author

bwsw commented Aug 11, 2023

CHECK:

  • HW JPEGDEC (JETSON) CHECK
  • ENC IDR FRAMES

@denisvmedyantsev denisvmedyantsev self-assigned this Aug 11, 2023
@denisvmedyantsev
Copy link
Contributor

NVidia changed docker container set - https://catalog.ngc.nvidia.com/orgs/nvidia/collections/deepstream_sdk. We have to double-check our builds. It might be better to build a completely custom docker image based on GStreamer and DS SDK, including only what we need.

@bwsw bwsw moved this from Todo to In Progress in Savant: 0.2.5 Aug 16, 2023
@denisvmedyantsev
Copy link
Contributor

denisvmedyantsev commented Aug 22, 2023

The bug with jpeg decoding via nvv4l2decoder on Jetson is still relevant for DS 6.3 (checked with nvcr.io/nvidia/deepstream-l4t:6.3-samples).

@denisvmedyantsev
Copy link
Contributor

denisvmedyantsev commented Aug 22, 2023

DS 6.3 fixed the bug with no IDR frames after nvv4l2h264enc.

gst-launch-1.0 videotestsrc num-buffers=1000 ! nvvideoconvert ! nvv4l2h264enc ! filesink location=test.h264

then

ffprobe -v error -select_streams v:0 -count_frames -show_entries stream=nb_read_frames -skip_frame nokey test.h264

For DS 6.2 gives nb_read_frames=1, for DS 6.3 - nb_read_frames=4.

DS 6.3 nvv4l2h26Xenc supports idrinterval parameter (default=256) in addition to iframeinterval on dGPU (and Jetson).

@denisvmedyantsev
Copy link
Contributor

denisvmedyantsev commented Aug 22, 2023

The current Savant code tries to use nvencoder first. If the user specified output_frame: jpeg, Savant will try to build the encoder using nvjpegenc and will only use jpegenc if nvjpegenc is not available (#44). Thus, there is nothing to do.

@denisvmedyantsev denisvmedyantsev moved this from In Progress to Review in Savant: 0.2.5 Aug 31, 2023
@bwsw bwsw moved this from Review to Done in Savant: 0.2.5 Sep 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
No open projects
Status: Done
Development

No branches or pull requests

2 participants