This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

confirm h264 4k encoding capability

I've been trying to determine if the dm816x series is capable of 4k (roughly 4000x2000) h264 encoding.  The documentation I could find states only up to 2048x2048 but there have been a few posts on the forum that state otherwise.  The dm368 series documentation does state they support it and according to what I could find it looks like it uses the same HDVICP as the dm816x so it should have the same resolution support?  Our application requires 4k encode but our frame rate needs are lower, ideally 16fps but can get away with 8fps.  

  • Hello,

    What is the software release, that you are using here?

    Best Regards,

    Margarita

  • I don't have a release, I'm trying to research the capabilities of the platform before I purchase a development kit.  Does the most recent software release support 4k x 2k h264 encode on the 816x series and if so what is the rough expected performance in terms of frames per second?  

  • Hello,

    Regarding H264_Encoder_HDVICP2_UserGuide.pdf chapter Frequently Asked Questions
    (ti-ezsdk_dm816x-evm_5_05_02_00/component-sources/omx_05_02_00_46/src/ti/omx/docs).

    What are the resolutions supported?

    The encoder supports all resolutions until up to 4096x4096. The minimum resolution supported is 96x80. Width has to be multiple of 16 but height can be any number.

    Regarding VENC component:

    Video Encode component (VENC) is a generic component capable of encoding video sequence into h264 (in this release) format. It supports one input and one
    output port.
    Features supported
    1. Supports progressive content encoding
    2. Supports up to 1080p Encoding.

    But all output paths through the HDVPSS are limited to 1920 or HDVPSS can support any resolution which requries pixex clock < 165MHz.

    Best Regards,

    Margarita


  • Ah OK, that's good.  Is there any guidance from TI as to what kind of frame per second performance we can roughly expect to see at 4096x2048 encode resolution?

  • Sorry about the delayed response, but does the 4096x4096 support include all of the supplied codec and driver software?  As in, could I take a dm8168 and encode 4096x2048 h264 from the TI tools as they ship today?  I've been told externally that the 4k encode support is chip level only and TI currently provides no software support to enable this feature.

  • Hello,

    Brett Grandbois said:
     I've been told externally that the 4k encode support is chip level only and TI currently provides no software support to enable this feature.

    Correct.

    Check the previous post.

    Best Regards,

    Margarita

  • Hi Brett,

     

    What you need to do is add a FPGA in front of the Video Ports and then contact one of TI's 3rd Parties that has all the sources and they can help you. The DM816x is lovely SoC in terms of value for money, but at beast to get working in a system.

     

    Flemming

     

    Sundance Multiprocessor Technology Ltd

  • Hello Margarita,

    I have a customer also interested in doing 4K x 2K encode/decode. I'm wondering what are the solutions offered by TI using the DM816x or KeyStone, with SW either from TI or Third party.

    You can contact me directly if you want.

    Thanks

    Electrons4me 

  • Z3 Technology had a proposed solution for us based on their DM8169 RPS, it will depend on your frame rate requirements but you could inquire them about it.

  • Company Ittiam does codec development among other services.  I'm not sure if they have 4Kx2K codec developed yet, but would be good to check. 

    Regards.

  • Thank you all for your answers and suggestions.

    Best

    e4me

  • I am confused and asking for confirmation: Using DM8168, can I encode 4K video?

    My confusion is based on fact that I yet have no DM8168 board and unsure what Margarita's answer exactly means. Do I need VENC for h264 encoding and sending over ethernet or not? I assume FHD limitations are all related to display only?

    My assumptions: I capture FHD, I display FHD. But for encoding I need 4K.

  • Hello,

    The H264 encoder itself supports all resolutions  up to 4096x4096. The minimumr esolution supported is 96x80. Width has to be multiple of 16 but height
    can be any number.

    You could check the h264 encoder user guide.

    BR
    Margarita

  • So when this 2K limited VENC comes into play?
  • Hello,

    The limitation comes from the HDVPSS the maximum pixel clock support for capture and display is <=165MHz(check the TRM for more information).
    From codec prospective, the h264enc supports resolution upto 4kx4k(check the h264enc user guide).

    BR
    Margarita
  •  Hi,

    You have to use a low-cost FPGA (like a small Spartan) and a frame-buffer in front of the HDVPSS to split data into multiple video streams. Sundance has got an IP-Core - sorry, self-promotion! - that is available as part of the our Capture Box for Dual streaming two channels of 2k by 2k @ 20FPS or two channels of 4k x 4k @ 10FPS. Although not tried, then it might be possible to do 4000x2000 on a single channel at a higher speed.

    -

    Flemming

  • Hi,

         It is possible to capture 4K if you decrease the framerate to something around 15fps, we have been able to capture 4K@15fps, also the codecs (MJPEG and H264) are able to handle the resolution. You would need to generate the correct signal and pixel clock using an FPGA as suggested above to inject 15fps and some changes in the M3 firmware to be able to get it working with OMX camera. Moreover, if you want to get it working with v4l2src you would need to modify the driver to specify the resolution.

        We got it working with 16 bits discrete sync signals. The pipelines would look like this if you use our plugins, we have support for gstreamer 0.10 and 1.0:

    gst-launch v4l2src device=/dev/video2 always-copy=false queue-size=4 num-buffers=1 ! 'video/x-raw-yuv,format=(fourcc)NV12,width=3840,height=2160,framerate=(fraction)60/1' ! omxbufferalloc numBuffers=4 ! gstperf ! omx_jpegenc num-buffers=1 ! filesink location=test_v4l2_gst-0.10.jpeg
    
    gst-launch omx_camera vif-mode=16BIT capture-mode=SC_DISCRETESYNC_ACTVID_VSYNC input-interface=VIP2_PORTA num-buffers=1 ! 'video/x-raw-yuv,format=(fourcc)NV12,width=3840,height=2160,framerate=(fraction)60/1' ! gstperf ! omx_jpegenc num-buffers=1 ! filesink location=test_omx_gst-0.10.jpeg

    The heavier part is always to save the frame into your filesystem, sending the frame to fakesink we got some numbers like:

    Pipeline:

    gst-launch-1.0 omxcamera interface=vip2 capt-mode=dsync vip-mode=16 ! \
                   'video/x-raw,format=(string)NV12,width=3840,height=2160,framerate=(fraction)60/1' ! \
                   perf  print-arm-load=true ! \
                   omxjpegenc ! \
                   fakesink
    

    Samples:

    Timestamp: 0:42:58.255262597; Bps: 202593103; fps: 16.28; CPU: 5; 
    INFO:
    Timestamp: 0:42:59.292292078; Bps: 203960655; fps: 16.39; CPU: 5; 
    INFO:
    Timestamp: 0:43:00.337408560; Bps: 202399234; fps: 16.26; CPU: 3; 
    INFO:
    Timestamp: 0:43:01.374448411; Bps: 203960655; fps: 16.39; CPU: 5; 
    INFO:
    Timestamp: 0:43:02.411490337; Bps: 203960655; fps: 16.39; CPU: 3; 
    INFO:
    Timestamp: 0:43:03.456638411; Bps: 202399234; fps: 16.26; CPU: 5; 
    INFO:
    Timestamp: 0:43:04.493653448; Bps: 203960655; fps: 16.39; CPU: 5; 
    INFO:
    Timestamp: 0:43:05.530697263; Bps: 203960655; fps: 16.39; CPU: 4; 
    INFO:
    Timestamp: 0:43:06.575855485; Bps: 202399234; fps: 16.26; CPU: 3; 
    INFO:
    Timestamp: 0:43:07.612877152; Bps: 203960655; fps: 16.39; CPU: 4; 
    

    Hope this helps,
    -David
  • hi Margarita and David

    Currently our system DM8168 works in  two channels of 1080p@30 encoding; if we want to change the resolution to be two channels of 1536x1536@30, what changes we have to do?

    Thanks for your information.


    Thanks
    George

  • Hello,

    I would recommend you to open a new topic with information software release that you are using.

    BR
    Margarita