View Full Version : NHW - a free image codec


nhw_pulsar
21st January 2026, 17:54
Hello,

Just a very quick message to let know those who followed NHW, that the last version (v0.3.1+41) has now a good precision, in the sense that NHW image correctly resembles to the original image (for the developed -q9 to -q23 quality settings), while always keeping NHW efficient neatness.

More at: https://nhwcodec.blogspot.com

So yes now it could be worth to adapt NHW to any image resolution. For me the best solution would be to process on the whole image dimensions, but it's really the bigger and harder to code. Another approach is the one of Martin, a great programmer and friend of mine, he has adapted NHW to 8x8, 16x16, 32x32, 64x64, 128x128, 256x256, 512x512 square sizes and he has then coded a very first (unoptimized) version of NHW that works with any image resolution by decomposing the image with these square sizes (prioritizing the largest square size first). The problem with this latter solution are the blocking artifacts (with a wavelet codec) but I have been told that deblocking filters could be quite efficient....

For now with my health, I will quietly continue to improve NHW precision, but maybe in the second half of 2026 if I am better, I will think about these solutions to adapt NHW to any image resolution, if I am alone, I think I will clearly choose Martin's solution because it is by far the fastest to deploy...

Cheers,
Raphael

nhw_pulsar
27th January 2026, 20:17
Hello,

Just a very quick update, as I think I'll release v0.3.2 in February, I wanted to make then a complete neatness study with objective nhw_neatness_metrics, but the new v0.3.1+42 version has (quite) worse neatness scores than v0.3.1+41, as reported by nhw_neatness_metrics, but I find that v0.3.1+42 has a better visual quality than v0.3.1+41, notably a better precision, it resembles more to the original image, so I didn't find for now a perceptual quality metrics that reflects visual quality according to my criterias and eyes...

Cheers,
Raphael

nhw_pulsar
6th February 2026, 15:03
Hello,

I am still thinking about Martin's (square) tiling solution for coding NHW to any image resolution, there are also some strong advantages, it is notably very more multithreading-friendly, SIMD-friendly, cache-friendly... but a very important thing is to know if we can design an efficient deblocking filter for my wavelet blocking artifacts, as I have hardly no knowledge in deblocking filters technology, it seems a very big investment and energy for me now...

Else I am ultra slowly working on NHW currently, but I hope that the next incremental improvement of v0.3.1+42 will lead to v0.3.2 version, hopefully with a real competitive precision with AOM and MPEG codecs, while still keeping NHW neatness which is a strong advantage for me...

Cheers,
Raphael

nhw_pulsar
6th February 2026, 22:29
Else I am ultra slowly working on NHW currently, but I hope that the next incremental improvement of v0.3.1+42 will lead to v0.3.2 version, hopefully with a real competitive precision with AOM and MPEG codecs, while still keeping NHW neatness which is a strong advantage for me...


Hello,

Just a very very quick update, I have released v0.3.1+43 version, at very first sight, I am satisfied with precision, so normally I'll see if I make other precision improvements but I think I'll transform this version into v0.3.2 later this month.

Cheers,
Raphael

nhw_pulsar
11th February 2026, 18:23
Hello,

Very quickly, I have released v0.3.1+44 which is better, I am waiting for releasing official v0.3.2, but I am sorry and I will get some anger, but I think I won't accompany v0.3.2 with a neatness study, as my nhw_neatness_metrics doesn't reflect for me image quality and what I call "neatness".For example, you can have a degraded image and sharpen it, my nhw_neatness_metrics will have very good score whereas the image looks horrible...

Cheers,
Raphael

rwill
11th February 2026, 21:28
For example, you can have a degraded image and sharpen it, my nhw_neatness_metrics will have very good score whereas the image looks horrible...

Heh... just like VMAF.

nhw_pulsar
11th February 2026, 21:40
Heh... just like VMAF.

Hello rwill,

As I don't know VMAF, thank you for your professional feedback and information.I know that VMAF is largely acclaimed in the video compression community, especially at AOM, but as you point it has its imperfections... Measuring what I call the "neatness" of an image seems very difficult... Is it then offensing to say that VMAF is the less bad of the perceptual metrics?

Cheers,
Raphael

rwill
12th February 2026, 07:40
If you are using metrics like VMAF just for your own stuff its probably ok.

The ability to cheat in a metric becomes problematic if different actors start to compete on the basis of the metric. Then such a metric cannot be trusted. Thats why PSNR is so robust, you cannot cheat that one.

nhw_pulsar
12th February 2026, 09:30
If you are using metrics like VMAF just for your own stuff its probably ok.

The ability to cheat in a metric becomes problematic if different actors start to compete on the basis of the metric. Then such a metric cannot be trusted. Thats why PSNR is so robust, you cannot cheat that one.

Yes that's right you can not cheat PSNR, but I really can not explain why PNSR can rate high some images that have not a great visual quality, and reversely...

nhw_pulsar
17th February 2026, 18:50
Hello,

Just a quick update, I think we can add a 10th element in the weight sequence to improve NHW precision and image quality, but currently I am too tired and it's too boring to test all the possible weights combinations (and there are millions of combinations), and I don't have the formula to derive the best weight sequence, so I must test currently each sequence combination with my eyes on different images...

However, v0.3.1+44 has for me an OK precision, and a better neatness than MPEG and AOM codecs, so I think, if I don't resume work on NHW in the meantime, I'll silently transform v0.3.1+44 into official v0.3.2 version next week, neatness will be still the strong point of NHW...

Cheers,
Raphael

nhw_pulsar
18th February 2026, 16:31
Hello,

I've finally improved the weight sequence (to the 10th order), so I have released v0.3.1+45 which is better, -as said, I'll release v0.3.2 next week-.

Cheers,
Raphael

nhw_pulsar
22nd February 2026, 20:03
Hello,

Before v0.3.2, I have continued with the new v0.3.1+46 to improve the weight sequence (to the 11th order now).

Cheers,
Raphael

nhw_pulsar
25th February 2026, 20:14
Hello,

Just very quickly, I'll finally wait before releasing v0.3.2 to determine if I can level up the weight sequence to the 12th order, for a better image precision.I think and hope that the next iteration of the weight sequence order could have a competitive precision with AOM and MPEG codecs (however I can not test AV2- and ECM- intra).

Cheers,
Raphael

nhw_pulsar
5th March 2026, 17:28
Hello,

Very quickly, I have released v0.3.2 with an improved weight sequence up to the 12th order, for a better precision.

Cheers,
Raphael

nhw_pulsar
10th March 2026, 21:24
Hello,

Following the weight sequence improving, I have gone up to the 13th order with v0.3.2+1.

I hope that I will be able to continue to work on the weight sequence orders in the next weeks despite very bad health...

Cheers,
Raphael

nhw_pulsar
13th March 2026, 18:26
Hello,

Very quickly, I have continued to improve the weight sequence to the 14th order. v0.3.2+2 has then a better precision.

Cheers,
Raphael

nhw_pulsar
21st March 2026, 22:00
Hello,

Very quickly, I am still at the 14th order for the weight sequence but I have fine-tuned it. v0.3.2+3 has then a better precision.

It is becoming damn hard to test all the weights combinations...

Cheers,
Raphael

Selur
22nd March 2026, 07:27
So, no news about allowing custom resolutions and nothing anyone seems to be interested in aside yourself.

rwill
22nd March 2026, 09:38
Hey I was just about to start a bet on Polymarket to which order he can get his weight sequence before someone interrupts his solo post streak...

nhw_pulsar
22nd March 2026, 09:57
Hello Selur, hello rwill,

Concerning custom resolutions, I don't have looked again at square tiling solution (up to 512x512 tiles) because I have to design a very efficient deblocking filter as again with my wavelet filter design I find that there are quite important border artifacts... so it's a little "blocking" point for me now because designing such a deblocking filter is a very big investment... a litttle too much for me at now...

Yes the industry is not interested in NHW because I would think they estimate that AVIF and VVC intra for example have more precision, they resemble more to the original image, but with the nhw_kernel weights fine-tuning, I am trying to change this, personally I also don't know to which order I can get the weight sequence, but it seems that there are some weight sequence combinations that give a very good precision to NHW, but again I don't have the mathematical formula to derive an optimal weight sequence, so it's a hell of work to visually test a lot of weights combinations...

Cheers,
Raphael

nhw_pulsar
31st March 2026, 19:30
Hello,

Very quickly for those interested, I have continued to improve the weight sequence, v0.3.2+4 has then a better precision.

Cheers,
Raphael

nhw_pulsar
3rd April 2026, 18:03
Hello,

Very quickly for those interested, I have added a weight parameter ponderation in the weight sequence, v0.3.2+5 has then a better precision.

Cheers,
Raphael

nhw_pulsar
7th April 2026, 19:33
Hello,

Very quickly for those interested, after fine-tuning the t1 weight parameter, I am now fine-tuning the also important t4 weight parameter. v0.3.2+6 has then a better precision.

Cheers,
Raphael

nhw_pulsar
11th April 2026, 19:45
Hello,

Very quickly for those interested, I am continuing to fine-tune the t4 weight parameter, v0.3.2+7 has then a better precision.

NHW_Neatness_metrics can be lower for some images, but I find that visual quality is still there.

Cheers,
Raphael

nhw_pulsar
14th April 2026, 16:06
Hello,

Ultra quickly for those interested, I have continued to fine-tune the weight sequence with a better t1/t4 balance. v0.3.2+8 has then a better precision.

NHW_Neatness_metrics numbers are also better for this version.

Cheers,
Raphael

nhw_pulsar
17th April 2026, 19:29
Hello,

Ultra quickly for those interested, I am continuing to fine-tune the t1 and t4 weight parameters of the weight sequence. v0.3.2+9 has then a better precision.

Cheers,
Raphael

Selur
17th April 2026, 20:29
So, no news about allowing custom resolutions and nothing anyone seems to be interested in aside yourself.

nhw_pulsar
17th April 2026, 20:54
So, no news about allowing custom resolutions and nothing anyone seems to be interested in aside yourself.

Hello Selur,

Thank you however for following my progress.

Concerning custom resolutions, I said in a previous message that I wanted to focus in the first half of 2026 to improve NHW precision and then in the second half of 2026 code NHW to any image resolution with square tiling solution (up to 512x512), but I realize it's a very big investment, the big problem is that I fear to not have the energy to first design the mandatory big wavelet deblocking filter...

Cheers,
Raphael

Selur
18th April 2026, 06:34
Hi,
I guess, to everybody else, it looks like:
a. you got a non-describable/documented metric you call "NHW_Neatness_metrics".
b. since the start, you write that you are increasing it and the 'NHW precision'.
This is like you reporting every few days that you are doing something non-consequential.
Since there is nothing tangible to it, these updates simply seem like a waste of time.
Especially since you write that you have health issues, it seems like it would be better if you spend your energy on living (maybe getting better).
That said: If posting these (to others seemingly useless) updates, helps you in that process: Keep it on.

Cu Selur

nhw_pulsar
18th April 2026, 08:32
Especially since you write that you have health issues, it seems like it would be better if you spend your energy on living (maybe getting better).
That said: If posting these (to others seemingly useless) updates, helps you in that process: Keep it on.

Cu Selur

Hello Selur,

Thank you.Yes I have health issues, and working a little daily on my codec, and posting on the forum when I have an improvement, help me keep contact with the compression community (few people follow my updates) and also be better...

But again some people appreciate my updates, some others hate... so I will completely comply to the instructions of a moderator concerning my posting on the forum if there is a problem.

Cheers,
Raphael

lvqcl
18th April 2026, 14:16
(few people follow my updates)

I want to see these people...

nhw_pulsar
18th April 2026, 15:02
I want to see these people...

I just mean when I post my updates on the forums, then I have a little visit on my demo page and a few clones on my GitHub...

Cheers,
Raphael

nhw_pulsar
20th April 2026, 18:39
Hello,

Very quickly for those interested, I have continued to fine-tune the t1 and t4 weight parameters of the weight sequence. v0.3.2+10 has then a better precision.

NHW_Neatness_metrics numbers seem also good for this version.

Cheers,
Raphael

nhw_pulsar
23rd April 2026, 16:53
Hello,

Very quickly for those interested, I am continuing to fine-tune the t1 and t4 weight parameters of the weight sequence. v0.3.2+11 starts to have a competitive precision for the developed -q9 to -q23 compression settings.

Cheers,
Raphael

nhw_pulsar
25th April 2026, 21:13
Hello,

Very quickly for those interested, while always fine-tuning t1 and t4 in the weight sequence, v0.3.2+12 has then a better precision.

Cheers,
Raphael

nhw_pulsar
27th April 2026, 16:51
Hello,

Very quickly, I am still trying to improve precision of NHW, that the codec faithfully resembles to the source image, but yes clearly as many professionals stated it here on this forum, the research effort at AOM, MPEG,... is as they have now a very high level of precision, the aim is now to preserve/retain as most as possible fine details/textures/grain... NHW can not compete in this area, so it's clearly a no-go for it...

I tried to compensate this with more neatness of image but the compression bodies are not sensitive to this argument... But it's ok, I'll still try to finish precision of NHW if I can (as it is more and more difficult), but it becomes more and more clear (very sorry) that I will not adapt NHW to any image resolution with square tiling solution (up to 512x512 tiles) in the second half of 2026...

Cheers,
Raphael

nhw_pulsar
28th April 2026, 17:05
Hello,

Very quickly for those interested, still improving t1 and t4 tuning in the weight sequence, v0.3.2+13 has then a better precision.

Cheers,
Raphael

nhw_pulsar
1st May 2026, 13:53
Hello,

Very quickly for those interested, still improving t1 and t4 tuning in the weight sequence, v0.3.2+14 has then a better precision.

NHW_Neatness_metrics numbers seem good for this version.

Cheers,
Raphael

nhw_pulsar
3rd May 2026, 17:08
Hello,

Very quickly for those interested, I am still continuing to improve the weight sequence, v0.3.2+15 seems to have then a little more precision and so a little better visual quality.

Cheers,
Raphael

nhw_pulsar
6th May 2026, 17:00
Hello,

Ultra quickly for those interested, I am continuing to fine-tune the t1 and t4 weight parameters in the weight sequence. v0.3.2+16 has then a better precision.

Cheers,
Raphael

nhw_pulsar
11th May 2026, 19:21
Hello,

Very quickly for those interested, I am still continuing to fine-tune t1 and t4 weight parameters in the weight sequence. v0.3.2+17 has then a better precision.

Cheers,
Raphael

nhw_pulsar
13th May 2026, 18:44
Hello,

Very quickly for those interested, still continuing to fine-tune t1 and t4 weight parameters in the weight sequence. v0.3.2+18 has then a better precision.

Cheers,
Raphael

nhw_pulsar
15th May 2026, 21:47
Hello,

Very quickly for those interested, I have optimized t4 weight reinitialization. v0.3.2+19 has then a better precision.

Cheers,
Raphael

nhw_pulsar
17th May 2026, 18:21
Hello,

Very quickly for those interested, I am continuing to optimize t4 weight reinitialization. v0.3.2+20 has then a better precision.

I am aware that NHW_Neatness_metrics scores are lower for this new version, but I still find that visual quality is better...

Cheers,
Raphael

nhw_pulsar
22nd May 2026, 17:21
Hello,

Just an ultra quick update, I am still continuing to fine-tune t1 and t4 weight parameters in the weight sequence. v0.3.2+21 has then a better precision.

Cheers,
Raphael

nhw_pulsar
23rd May 2026, 21:17
Hello,

Very quickly for those interested, I am still refining t4 weight reinitialization. v0.3.2+22 has then a better precision.

Cheers,
Raphael

Columbo
23rd May 2026, 21:54
Seems like in 18 years you could have moved beyond 512x512. That's a much more important function than tweaking weights continuously.

nhw_pulsar
23rd May 2026, 22:33
Seems like in 18 years you could have moved beyond 512x512. That's a much more important function than tweaking weights continuously.

Hello,

Yes the first version of NHW dates back to 2008... and yes this is a mistake but since then I never had the energy to adapt to any resolution (because since longtime I struggle against illness)...

Coming back to NHW, some professionals told me that the codec lacked of precision, but I would find now that latest v0.3.2+22 starts to have a competitive precision...

Cheers,
Raphael

nhw_pulsar
26th May 2026, 16:39
Hello,

Just an ultra quick update, I am still continuing to fine-tune t1 and t4 weight parameters in the weight sequence. v0.3.2+23 has then a better precision.

I don't know how far I will be able to push NHW technology to a good precision, but I would find now that NHW precision is competitive, so hopefully I'll release v0.3.3 in the very next months...

Cheers,
Raphael

nhw_pulsar
29th May 2026, 17:33
Hello,

Very quickly for those interested, I am still optimizing t1 and t4 weight parameters in the weight sequence.

As I am now satisfied with NHW precision, I have decided to release v0.3.3 release candidate 1.

Cheers,
Raphael

nhw_pulsar
2nd June 2026, 20:36
Hello,

Very sorry for disturbing you, it's going to be high time to move on, just I wanted to finish to fine-tune the nhw_kernel weights in the first half of 2026, maybe I'll finally need 2-3 months more. v0.3.3-rc2 has then a better precision.

Cheers,
Raphael

nhw_pulsar
8th June 2026, 21:29
Hello,

Just an ultra quick incremental update, I am still continuing to fine-tune the weight sequence. v0.3.3-rc3 has then a better precision.

Cheers,
Raphael

nhw_pulsar
10th June 2026, 21:29
Hello,

Just another ultra quick incremental update, still continuing to fine-tune the weight sequence. v0.3.3-rc4 has then a better precision.

Cheers,
Raphael

nhw_pulsar
14th June 2026, 19:53
Hello,

Just another weight sequence improvement, v0.3.3-rc5 has then a better precision.

I'll try to release v0.3.3 at the end of June.

Cheers,
Raphael

nhw_pulsar
18th June 2026, 16:08
Hello,

Just continuing to improve the weight sequence, v0.3.3-rc6 has then a better precision.

I don't know if I will be able to continue to work on NHW currently, as it is becoming very difficult for me (with the heatwave)... However I find that v0.3.3-rc6 is OK, so I'm still planning to release v0.3.3 at the end of June.

Cheers,
Raphael

nhw_pulsar
20th June 2026, 19:03
Hello,

It is harder and harder to work on NHW currently, but I hope that I have improved the weight sequence again. v0.3.3-rc7 seems then to have a better precision?

Cheers,
Raphael

nhw_pulsar
24th June 2026, 19:27
Hello,

It's suffocating here but I however managed to improve the weight sequence again..., v0.3.3-rc8 has then a better precision.

As I am satisfied with this version, I think I'll transform it into v0.3.3 next week.

Cheers,
Raphael

nhw_pulsar
27th June 2026, 20:35
​Hello,

I can not work anymore on NHW for now, so I think as said I'll transform v0.3.3-rc8 into final v0.3.3 release next week.

NHW always lacked too much of precision, the way it resembles to the source image, compared to professional AOM, JPEG and MPEG codecs, but I would find that v0.3.3 could suggest that with even more enough nhw_kernel weights and weight sequence improvement, NHW technology could reach a professional precision, with furthermore a better neatness and an extremely faster speed...

So that would be my task for the next months, to continue to improve the weight sequence, I'll see if I have results, v0.3.3 is not enough for now for the industry, but could show a real potential in the future for the NHW technology?

Cheers,
Raphael

rwill
28th June 2026, 05:46
So that would be my task for the next months, to continue to improve the weight sequence

Yes, sounds good, please don't forget to keep us up to date.

nhw_pulsar
28th June 2026, 11:51
Hello rwill,

Thank you very much for your feedback.

I however wanted to tell that it is becoming difficult to improve the weight sequence, for example I have 2 main ideas that on paper should work, but I try hard to tune them but it never worked for now, and on the contrary sometimes I can quickly try something that should not work and actually it surprisingly gives a precision improvement, the NHW image resembles more to the source image...

So I think it will become more difficult now to improve the weight sequence, (especially in this very hot summer), but I'll quietly try to work on it and really many thanks for your encouragement.

Cheers,
Raphael

nhw_pulsar
28th June 2026, 15:22
Hello,

For those interested, I have continued to improve the weight sequence which brings a better precision. So I have decided to release v0.3.3.

Cheers,
Raphael

Columbo
28th June 2026, 15:57
Release the Kraken!

nhw_pulsar
3rd July 2026, 15:58
Hello,

For those interested, I have improved the weight sequence. v0.3.3+1 has then a better precision.

Cheers,
Raphael

nhw_pulsar
5th July 2026, 18:33
Hello,

For those interested, I am continuing to improve the weight sequence. v0.3.3+2 has then a better precision.

Cheers,
Raphael

nhw_pulsar
7th July 2026, 14:20
Hello,

For those interested, I am continuing again to improve the weight sequence. v0.3.3+3 has then a better precision.

Precision starts to be good.

Cheers,
Raphael

nhw_pulsar
9th July 2026, 19:26
Hello,

For those interested, I am continuing to improve the weight sequence. v0.3.3+4 has then a better precision.

Cheers,
Raphael

nhw_pulsar
11th July 2026, 18:32
Hello,

For those interested, I am still continuing to improve the weight sequence. v0.3.3+5 has then a better precision.

Very sorry for the robotic updates, just very tired here...

Cheers,
Raphael

nhw_pulsar
14th July 2026, 16:05
Hello,

For those interested, I am continuing to improve the weight sequence. v0.3.3+6 has then a better precision.

@Columbo, Kraken released! as I find that NHW has a good precision now (but it is only my opinion)...

Cheers,
Raphael

Columbo
14th July 2026, 16:35
Just curious... How do you measure precision? And all this tweaking you're doing, is it going to apply to all different sources, or you tweak just for a few images and hope it will apply to everything?

nhw_pulsar
14th July 2026, 16:57
Just curious... How do you measure precision? And all this tweaking you're doing, is it going to apply to all different sources, or you tweak just for a few images and hope it will apply to everything?

Hello Columbo,

For measuring precision, I move back and forth around the source image with the 2 version images, and I look with my eyes which image resembles more to the source image...

Yes I only test on 8 images of different nature at -q11 and -q14 settings, and yes I little hope that it will apply to everything...

Cheers,
Raphael

Columbo
14th July 2026, 17:30
Sounds like you need a more serious, scientific approach. But it's all for nought anyway if you are limited to 512x512. Nobody can live with that.

nhw_pulsar
14th July 2026, 17:44
Yes for the precision of NHW, how much it resembles to the source image, I tried objective metrics like PSNR, SSIM but none worked... Quite often actually, PSNR was worse, but with my eyes NHW image resembled more to the source image...

For measuring neatness, I have my NHW_Neatness_metrics but my focus now is to keep a good NHW_Neatness_score but to have an NHW image that resembles the most as possible to the source image, this is done with my eyes as I didn't find another solution for now...

Cheers,
Raphael

CruNcher
16th July 2026, 02:43
512x512 is certainly problematic for reproducing/reconstructing/simulating our reality space
and reconstructing it needs in most cases much more resources on top

We in a time you need at least to reach 1024x1024

nhw_pulsar
16th July 2026, 03:33
512x512 is certainly problematic for reproducing/reconstructing/simulating our reality space
and reconstructing it needs in most cases much more resources on top

We in a time you need at least to reach 1024x1024

Hello CruNcher,

It's a good opportunity to clarify that for a 1024x1024 image (or whatever resolution), the best solution would be to apply the pre_processing with the nhw_kernel weights and weight sequence on 512x512 tiles but the rest of the processing must be applied on the whole 1024x1024 dimensions, and again as said this is a huge work to code and too much for me now...

Cheers,
Raphael

nhw_pulsar
16th July 2026, 19:34
Hello,

For those interested, I am continuing to improve the weight sequence. v0.3.3+7 has then a better precision.

I have also corrected a bug of the previous version.

Cheers,
Raphael

Columbo
17th July 2026, 13:26
Maybe I'm blind but I'm having trouble finding your link to download etc. Can you add it to the first post please?

nhw_pulsar
17th July 2026, 14:36
Maybe I'm blind but I'm having trouble finding your link to download etc. Can you add it to the first post please?

Yes, that's right, thank you for pointing, link added in the first post.

nhw_pulsar
24th July 2026, 15:04
Hello,

For those interested, I have improved the t4 weight re-initialization. v0.3.3+8 has then a better precision.

Cheers,
Raphael

nhw_pulsar
24th July 2026, 18:05
Hello,

With v0.3.3+8 to gain that extra-precision, I have the feeling that it's going to be "paranoid tuning" of the weight sequence...

Cheers,
Raphael

nhw_pulsar
27th July 2026, 12:47
Hello,

Very quickly, for those interested, I am continuing to improve the weight sequence. v0.3.3+9 has then a better precision.

Cheers,
Raphael

Columbo
27th July 2026, 14:13
Why don't you use your energy to support larger image sizes instead of never-ending pointless weight tweaking?

nhw_pulsar
27th July 2026, 14:30
Why don't you use your energy to support larger image sizes instead of never-ending pointless weight tweaking?

Hello Columbo,

Adapting to any image resolution is a lot and a lot more time-consuming than weight tuning, and I don't have that energy...

I think that weight tuning is not pointless however, because at each iteration, NHW precision is better, in the sense that the newer version resembles more to the source image than the previous one while always keeping NHW neatness, and that's very important (for me).

Cheers,
Raphael

Columbo
27th July 2026, 16:42
yeah yeah we heard that nonsense before

if nobody uses or cares about it because it can't be used on real images then weight tweaking is about as pointless as it gets

nhw_pulsar
28th July 2026, 17:39
Hello,

Very quickly, for those interested, I am continuing to improve the weight sequence, notably t1 weight increment in the last third configuration. v0.3.3+10 has then a better precision.

Cheers,
Raphael

nhw_pulsar
31st July 2026, 13:53
Hello,

For those interested, I have improved the weight sequence and t1 weight saturation. v0.3.3+11 has then a better precision.

Cheers,
Raphael

nhw_pulsar
2nd August 2026, 16:29
Hello,

Very quickly for those interested, I have continued to improve the weight sequence. As I find that NHW precision starts to be interesting, I have decided to release v0.3.4-rc1.

Cheers,
Raphael

nhw_pulsar
10th August 2026, 15:31
Hello,

After 3 years of work on the nhw_kernel weights computing and the weight sequence, I estimate, with my limited means, that this work is now nearly closed. There are still billions of weight combinations, but this is going to be paranoid tuning, and I don't have the time nor the energy for that. So I'll certainly release v0.3.4 with this validated weight sequence.

I know my quantization scheme is not optimal, maybe I'll try to perfect quantization in NHW now? Could someone explain me synthetically the idea behind variance-adaptive-quantization?

Cheers,
Raphael

Columbo
10th August 2026, 15:40
ChatGPT, Claude, Grok, Kimi, etc. will be happy to tell you about it.

LMP88959
10th August 2026, 16:25
Could someone explain me synthetically the idea behind variance-adaptive-quantization?


Practically speaking, its implementation consists of breaking up the image into NxN blocks, they could be uniform, non uniform, tree-like, etc. Then you compute the variance of the luma samples of each block and use that to adjust how much that block should be quantized.

Conceptually, higher variance blocks can tolerate more quantization due to the visual masking phenomenon. This is a crude approximation to visual masking (since actual image content and context should also be taken into account) but it works quite well given its simplicity.

This should be helpful:
https://github.com/psy-ex/svt-av1-psy/blob/master/Docs/Appendix-Variance-Boost.md
thank you to the SVT-AV1-PSY devs :)

nhw_pulsar
10th August 2026, 17:27
Practically speaking, its implementation consists of breaking up the image into NxN blocks, they could be uniform, non uniform, tree-like, etc. Then you compute the variance of the luma samples of each block and use that to adjust how much that block should be quantized.

Conceptually, higher variance blocks can tolerate more quantization due to the visual masking phenomenon. This is a crude approximation to visual masking (since actual image content and context should also be taken into account) but it works quite well given its simplicity.

This should be helpful:
https://github.com/psy-ex/svt-av1-psy/blob/master/Docs/Appendix-Variance-Boost.md
thank you to the SVT-AV1-PSY devs :)

Yes I forgot to ask to AIs, but LMP88959 explanation is all good, thank you. I catched the general idea. Also thank you for the psy-ex doc on variance boost, I'll carefully readt it. But as LMP88959 explained, yes for more efficiency, I also think there must be an underlying logic to determine the size of the block and blocks partitioning... Then yes, it could be very helpful to use the variance info of the block to increase the quantization step or increase the "zeroing" dead zone inside the block...

Many thanks again.
Cheers,
Raphael

nhw_pulsar
11th August 2026, 15:18
Hello,

I am ultra lazy currently to implement variance-adaptive-quantization (I'll try later...), but I was just wondering to simplify the process: Would it be equivalent to just see if inside a block, there are many high value wavelet coeffs, this would mean that the variance of the block is high? And then we can do more aggressive visual masking on the wavelet coeffs of that block?

Cheers,
Raphael

lieff
11th August 2026, 18:11
Hello,

I am ultra lazy currently to implement variance-adaptive-quantization (I'll try later...), but I was just wondering to simplify the process: Would it be equivalent to just see if inside a block, there are many high value wavelet coeffs, this would mean that the variance of the block is high? And then we can do more aggressive visual masking on the wavelet coeffs of that block?

Cheers,
Raphael

I have in mind two variants:

1. Bit-free (not need to encode extra bits). Decoder looks at already de-quantized coefficients from up and left in some area in sub-band and compute variance. If variance high - increases quantization. This variant I tried before with no much luck. Disadvantage that decision always made on area corner.

2. Encode variance map for example 2-bit per 32х32 (16 bytes per 256х256). Advantage that now decisions made not always at block corner.

nhw_pulsar
11th August 2026, 18:40
I have in mind two variants:

1. Bit-free (not need to encode extra bits). Decoder looks at already de-quantized coefficients from up and left in some area in sub-band and compute variance. If variance high - increases quantization. This variant I tried before with no much luck. Disadvantage that decision always made on area corner.

2. Encode variance map for example 2-bit per 32х32 (16 bytes per 256х256). Advantage that now decisions made not always at block corner.

Hi lieff,

Many thanks for your input. I'll test your 2 processings.-In the meantime, if you (or someone else) find a better solution, do not hesitate to show up.-

Just a question about your image codec WTPC, I didn't have time to seriously test your codec against AVIF, but I noticed that WTPC has a very strong precision, how much it resembles to the source image. In your tests, would you find that WTPC has a better precision than AVIF?

Cheers,
Raphael

lieff
11th August 2026, 19:32
Hi lieff,

Many thanks for your input. I'll test your 2 processings.-In the meantime, if you (or someone else) find a better solution, do not hesitate to show up.-

Just a question about your image codec WTPC, I didn't have time to seriously test your codec against AVIF, but I noticed that WTPC has a very strong precision, how much it resembles to the source image. In your tests, would you find that WTPC has a better precision than AVIF?

Cheers,
Raphael

I have comparison with avif in results.md: https://github.com/lieff/miniwtpc/blob/main/results.md#compare-with-avif
Even on slowest speed avif wins only 2 KB to 26 KB range for ssim2 metric. It leads by PSNR though. WTPC takes lead by PSNR only closer to AVIF --speed 10.

Currently codec fully tuned for ssimulacra2 metric, for mathematical PSNR precision it needs re-tuning.
For early versions I tried tune for both metrics and results differed noticeably.

nhw_pulsar
11th August 2026, 19:54
I have comparison with avif in results.md: https://github.com/lieff/miniwtpc/blob/main/results.md#compare-with-avif
Even on slowest speed avif wins only 2 KB to 26 KB range for ssim2 metric. It leads by PSNR though. WTPC takes lead by PSNR only closer to AVIF --speed 10.

Currently codec fully tuned for ssimulacra2 metric, for mathematical PSNR precision it needs re-tuning.
For early versions I tried tune for both metrics and results differed noticeably.

Ok, actually when I evaluate codecs, I don't look at metrics, I look with my eyes, certainly because I developed NHW for neatness of image and metrics can not catch that. Anyway, congratulations for your codec, because after first tests, I am not far to think that WTPC has a better visual quality than AVIF!

LMP88959
11th August 2026, 22:09
Currently codec fully tuned for ssimulacra2 metric


I've also tried finding the set of FIR coefficients that provided the best ssimulacra2 score. Interestingly, I noticed the highest scoring ones made the image look artificially sharpened a little bit. Naturally, I had to manually offset that afterwards to make it not look oversharpened but I thought you might find it interesting that ssimulacra2 seems to prefer some oversharpening.

lieff
12th August 2026, 17:55
May be it`s because ringing\blurring artifacts is punished, this comment provides a general idea https://github.com/cloudinary/ssimulacra2/blob/main/src/ssimulacra2.cc#L239

nhw_pulsar
19th August 2026, 15:35
Hello,

Very quickly, I think I am finishing to improve the weight sequence (as it is really harder and harder -for me-...). As this new version has a better precision, I have released v0.3.4.

Cheers,
Raphael

nhw_pulsar
22nd August 2026, 16:02
Hello,

It took time but I finally tested to apply the pre_processing and the weight sequence on 256x256 tiles rather than 512x512 ones. So for a 512x512 image, there are 4 256x256 tiles, I thought it could be better as I thought the weight sequence could be better localized on a smaller tile, but actually visual results are worse... So it doesn't seem to work...

So the nhw_kernel weights tuning and weight sequence in NHW are optimized for 512x512 tile.

I'll try to finish that optimization as I think it can work and give to NHW the same precision as big codecs (to name a few: AVIF and VVC) but with more neatness of image... but this optimization is now very complex (for me)...

Cheers,
Raphael