I’m looking for any information about HAP HDR encoding outside of TouchDesigner. We’re prepping video content for use in TouchDesigner and our operator stumbled on the HAP HDR encoding support within TouchDesigner. For workflow purposes we’d like to be able to prepare material outside of TouchDesigner on a render farm. Can anyone point me in the right direction, as I can’t find any references so far to HAP HDR outside of TouchDesigner itself in Release_Notes in “HAP Codec Improvements”. Does anyone know if this is supported in FFMPEG or any 3rd party encoding plug-ins for Adobe or anything like that?
To answer your main question about codec - If you are working on Windows use NotchLC if you are looking for a codec that is of highest quality that compresses fast and performs well. If you have an Nvidia card you can also use H264 - High quality VBR - with high bit rate setting. HAPQ is also decent but not for all cases. Don’t worry about HAPR or HAPHDR - they are for special cases…
As for what is HAPR / HAPHDR there is some basic information here…
Both HAPR and HAPHDR were implemented by us only. It is not a part of ffmpeg and there are no current plans to support it externally.
HAPR is a lot like HAPQ except it uses a different compression scheme… Hap Q is DX5 in YCoCg colorspace (using up the alpha channel for better luminance). Hap R is BC7 compression.
HAPQ is fast to compress while HAPR is extremely slow to compress. You can only use TouchDesigner to compress with HAPR. You would only use it if you really needed something better quality at 8bit than HAPQ - the file sizes will be the same. I am actually on the hunt for a clear use case but I haven’t had time to make one. My recommendation is stay away unless you have time to do your own investigation.
HAPHDR is for recording 16 bit floating point data. The quality is extremely high for things like 10bit color files - its as good as NotchLC at full quality for my tests. You can only use HAPHDR if you are recording from TouchDesigner not in real-time. You can not use ffmpeg to compress HAPHDR.
HAPHDR will record signed floating point so you can store color information that is outside the 0-1 range - both positive and negative values - so its useful for storing HDR color files that have been tone mapped and still available for further manipulation. You can not store point cloud data however as the compression scheme is destructive. You can store 16bit information in HAPHDR while NotchLC can’t. However for 10bit display in our cases NotchLC did just as good as HAPHDR.
Only use HAPHDR if you require it for a 16 bit color workflow. You must transcode the files likely from 16bit EXR file sequences in TouchDesigner - non-realtime.
Still working on some examples of these cases which will get posted to the HAP wiki.
This is very helpful. I was afraid this was something just implemented by you guys. Sorry to hear there are no plans for external support, it’s a neat extension of existing HAP.
And yes, we were specifically using if to exploit 10 bit log where we needed greater than 8 bit precision. And we were experimenting with storing float linearized data in it. Our use case is for photographic material shot in Sony SGamut3.Cine\SLog-3, RED RWG/Log3g10, ARRI AWG\Log-C, Blackmagic BMDFilm etc in 4k to 12k.
I’ve always struggled with HAP destroying colours and creating banding/blocking. Jokyo has completely changed my outlook on it. Martin (Jokyo) is very helpful via email and has done lots of bugfixes very quickly.
His HAPQ looks many times better than NotchLC for all of the test cases I’ve done. I’ve not found NotchLC to be usable with crazy aliasing and blocking issues. Jokyo HAPQ looks the closest to my ProRes masters of any similar codec.