halide / Halide

a language for fast, portable data-parallel computation
https://halide-lang.org
Other
5.89k stars 1.07k forks source link

Read for commercial usage? #2406

Open shipingli opened 7 years ago

shipingli commented 7 years ago

I see a lot of interesting apps here, however most of them are lacking documentation, say the usage, building environment, building process, working environment etc., make it a bit hard to follow.

I wonder if Halide is ready for commercial usage? Say building into Android phones to help optimizing image processing? I mean build "into" phone, maybe in HAL layer, not just apks.

Anyone has knowledge on this?

Thanks.

abadams commented 7 years ago

The Google camera app uses Halide for its imaging pipeline, fwiw.

shipingli commented 7 years ago

Where can I find more detail information on Google Camera? Is it open source?

abadams commented 7 years ago

It is not, unfortunately. The paper at hdrplusdata.org has details on the algorithms, but doesn't go into build infrastructure at all. Basically we use a bunch of Generators to output static libraries for all the pieces of the imaging pipeline. These are strung together with C++ to make an arm android shared library that the camera app links to. It's all built using the bazel support in the repo (see bazel and apps/bazeldemo).

shipingli commented 7 years ago

Thanks. We developed a bunch of algorithm to improve camera qualify on Android phones, but need to optimize the performance. These are mostly real time or near real time. When user takes a picture, the algorithm will be used to do enhancement, and than save the picture taken in to the phone automatically (For example, multi-frame HDR). These optimization may use ARM, NEON, Hexagon, GPU on the phone, We are thinking if Halide can help to improve the performance and reduce the implementation complexity.

headupinclouds commented 7 years ago

FWIW, this looks like an independent implementation of the HDR+ pipeline (using Halide): https://github.com/timothybrooks/hdr-plus