Astra Machina Video Decode and Encode Capabilities
Astra Machina Decode Capabilities
Formats |
H.264 Decoding |
H.265 Decoding |
||||
---|---|---|---|---|---|---|
SL1680 HW Accelerated |
SL1640 HW Accelerated |
SL1620 FFMPEG SW |
SL1680 HW Accelerated |
SL1640 HW Accelerated |
SL1620 FFMPEG SW |
|
3840x2160@60 |
Yes |
Yes |
No |
Yes |
Yes |
No |
4x1920x1080@60 |
Yes |
Yes |
No |
Yes |
Yes |
No |
3x1920x1080@60 |
Yes |
Yes |
No |
Yes |
Yes |
No |
2x1920x1080@60 |
Yes |
Yes |
No |
Yes |
Yes |
No |
4x1920x1080@30 |
Yes |
Yes |
No |
Yes |
Yes |
No |
1x1920x1080@30 |
Yes |
Yes |
Yes |
Yes |
Yes |
No |
1x1920x1080@24 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
9x1280x720@25 |
Yes |
Yes |
No |
Yes |
Yes |
No |
9x640x480@25 |
Yes |
Yes |
No |
Yes |
Yes |
No |
16x640x480@25 |
Yes |
No |
No |
Yes |
No |
No |
2x1280x720@30 |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Note
Measured using actual conditions, using GStreamer pipelines for decoding, composition, and display. Output was displayed with Wayland Desktop. Please refer to the datasheet for standalone capabilities of the Video decoder IP block.
In case of multiple video mixing, graphics content is set at 2K for SL1680/SL1640 and 1280x800 for SL1620.
For the consistency, cpufreq set to userspace and configured to be max. (SL1620: 1900000, SL1640: 2000000, SL1680: 2100000)
Astra Machina Encode Capabilities
Formats |
H.264 Encoding |
|
---|---|---|
SL1680 HW Accelerated |
SL1640 HW Accelerated |
|
2x1920x1080@60 |
Yes |
No |
3x1920x1080@30 |
Yes |
No |
1x1920x1080@30 |
Yes |
Yes |
7x1280x720@30 |
Yes |
No |
2x1280x720@30 |
Yes |
Yes |
Note
Tested using the raw stream from HRX is being encoded for SL1680, while a video test source (videotestsrc) is utilized for SL1640, with the data being dumped to a fakesink.
Astra Machina Simultaneous Encoding and Decoding Capabilities
Formats |
H.264 Encoding |
|
---|---|---|
SL1680 HW Accelerated |
SL1640 HW Accelerated |
|
Usecase #1 Decode: 3x1920x1080@60 Encode: 1x1920x1080@60 |
Yes |
No |
Usecase #2 Decode: 6x1920x1080@30 Encode: 3x1920x1080@30 |
Yes |
No |
Usecase #3 Decode: 9x1280x720@30 Encode: 6x1280x720@30 |
Yes |
No |
Usecase #4 Decode: 7x1920x1080@30 Encode: 1x1920x1080@30 |
Yes |
Yes |
Usecase #5 Decode: 9x1280x720@30 Encode: 2x1280x720@30 |
Yes |
Yes |
Sample Gstreamer pipelines
Usercase #1:
gst-launch-1.0 \
v4l2src device=/dev/video7 ! video/x-raw,framerate=60/1,width=1920,height=1080 ! \
tee name= t \
t. ! queue ! v4l2h264enc ! h264parse ! fakesink \
filesrc location=Sample_1080p60.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p60.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p60.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink
Usercase #2:
gst-launch-1.0 \
v4l2src device=/dev/video7 ! video/x-raw,framerate=30/1,width=1920,height=1080 ! tee name=t \
t. ! queue ! v4l2h264enc ! h264parse ! fakesink \
t. ! queue ! v4l2h264enc ! h264parse ! fakesink \
t. ! queue ! v4l2h264enc ! h264parse ! fakesink \
filesrc location=Sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=Sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink
Usecase #4:
gst-launch-1.0 videotestsrc is-live=true do-timestamp=true num-buffers=300 blocksize=3110400 ! \
video/x-raw,format=NV12,width=1920,height=1080,framerate=30/1 ! tee name=t \
t. ! queue ! v4l2h264enc ! video/x-h264,stream-format=byte-stream,alignment=au,profile=high ! h264parse ! fakesink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink \
filesrc location=sample_1080p30.mp4 ! qtdemux ! h264parse ! v4l2h264dec ! queue ! waylandsink
Note
To verify performance for codec block, basic GStreamer pipelines were executed. Adding extra overhead of video mixer or memory copy may impact the codec performance depending on usecase.