Skip to content

Improve performance for remote backends #215

Description

@almarklein

A lot of ideas in #40.

In short here are the steps:

  • Encoding the image on the GPU (optional)
    • The purpose is to reduce the image size (in bytes), so the next steps are faster.
    • simple ideas are dropping alpha channel and yuv420
    • more advanced is DCT encoding
  • Downloading from GPU into RAM
    • we've made this async which does not make the download itself faster, but because the CPU can do other things, it improves the total performance a lot.
  • Encoding the image on the CPU
    • Takes time, should strive to reduce this.
    • turbojpeg helps, and doing the encoding on the GPU would help more.
    • we can also encode the result in the download-logic to avoid one data copy!
  • Sending over the network, io
    • kindof out of our control
    • should use a binary websocket for sure
    • but we could respond to the throughput by e.g. increasing compression.
  • Presenting in the browser
    • now using an <img> tag
    • would be much better to push the data to the GPU and decode there

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions