Wednesday 11 July 2018

etcpak 0.6

A new version of etcpak has been released. There are a couple of small changes in 0.6, but the main one is newly added support for compressing ETC2 RGBA textures.

Example compression result (only showing alpha channel):


16K x 16K image benchmark:
ETC1: 113 ms (only RGB part)
ETC2 RGB: 213 ms (only RGB part)
ETC2 RGBA: 404 ms

Sunday 29 January 2017

Archiwum usenetu stało się jeszcze lepsze

Narzędzia

 

Tekstowy czytnik

 

Od niedawna dostępny jest czytnik archiwum działający w trybie tekstowym. Użytkownicy slrn-a powinni poczuć się jak w domu.



tbrowser posiada wszystkie możliwości starego czytnika graficznego, przy czym działa szybciej i potrzebuje mniej pamięci. Jest to teraz podstawowy program do przeglądania archiwum. Wersja oparta na Qt staje się przestarzałą i nie będzie dalej rozwijana.

 

Galaktyka

 

Do tej pory poszczególne grupy dyskusyjne były niezależnymi bytami. Nowo wprowadzony tryb "galaxy" umożliwia przełączanie się między grupami, przejście do wiadomości z innej grupy na podstawie Message-ID, a także pozwala na śledzenie followup-ów i crosspostów.


Aby skorzystać z przygotowanej bazy danych, należy pobrać plik galaxy.7z z archiwum i rozpakować do katalogu, w którym umieszczone są pliki grup dyskusyjnych. Następnie wystarczy podać ścieżkę do katalogu galaxy jako parametr programu tbrowser.

Tryb galaxy nie wymaga obecności wszystkich grup dyskusyjnych. Gdy któregoś archiwum będzie brakowało, zostanie ono wyświetlone, ale nie będzie można go otworzyć.

 

 Wyszukiwanie

 

Zmieniony został algorytm punktacji wyników wyszukiwania. Wyniki, w których wyszukiwane słowa znajdują się blisko siebie są dodatkowo premiowane. Ponadto, w wyszukiwaniu biorą udział słowa podobne do podanych w zapytaniu, co pozwala znaleźć również wiadomości z literówkami.

Wyszukiwarka pozostawia jeszcze sporo do życzenia, szczególnie jeżeli chodzi o kwestię prezentacji wyników.

 

 Narzędzia i biblioteki

 

Wspólna część kodu doczekała się wielu drobnych optymalizacji, dzięki czemu oba czytniki działają jeszcze szybciej. Podobne usprawnienia trafiły do narzędzi służących do tworzenia archiwum. Pojawiło się również kilka nowych programów przetwarzających dane. Więcej szczegółów jest dostępnych pod adresem https://bitbucket.org/wolfpld/usenetarchive.

 

 Archiwum polskiego usenetu

 

Archiwum dostępne pod adresem https://archive.org/details/usenet-uat-pl zawiera teraz grupy zarówno z hierarchii pl.*, jak i alt.pl.*. Poza tym znalazło się tam również kilka innych polskich grup dyskusyjnych.

Zawartość archiwum została zaktualizowana o wiadomości wysłane do grudnia 2016 roku. Niektóre grupy zyskały też dodatkowy rok archiwalnych wiadomości. Najstarsze wpisy sięgają teraz 1995 roku. Archiwum zawiera teraz ponad 56 milionów unikalnych wiadomości.

 

 Kompatybilność

 

Poprzednie wersje archiwum w dalszym ciągu można otworzyć graficzną przeglądarką, ale wersja tekstowa nie jest z nimi kompatybilna. Aktualna wersja nie będzie działać ze starszymi wersjami programów. Niemniej, z uwagi na liczne poprawki i uzupełnienia zawartości, najlepiej usunąć wcześniej pobrane archiwa i pobrać je na nowo.

Wednesday 27 January 2016

etcpak 0.5

etcpak strikes again, this time with version 0.5, which has the ability to calculate planar blocks from the ETC2 standard. Color gradients, which were a sore spot in the image quality previously, will now have a much smoother look. This new option is activated by passing -etc2 parameter and comes at a small time cost (152% of pure ETC1 mode, 77 ms vs 117 ms). Example compressed image:


Planar block count in this image is quite high, as can be seen on the following debug image, where blue color indicates planar mode:


It should be noted that AVX2 version of planar block compression does not produce the same results as scalar one. Keep that in mind on pre-Haswell machines.

Download: https://bitbucket.org/wolfpld/etcpak/downloads

Saturday 2 January 2016

etcpak 0.4

New year, new etcpak. Previously etcpak was an order of magnitude faster than the competing ETC compressors. This new version is yet another order of magnitude faster.

Time to compress 8K image:
etcpak 0.3: 655 ms
etcpak 0.4: 77 ms

This is thanks to Daniel Jungmann, who submitted patches implementing SSE 4.1 and AVX2 instructions. SSE 4.1 is now default and required (supported by Core 2 and AMD Bulldozer CPUs) and AVX2 is detected at runtime (support added in Haswell CPUs).

Other new features:
  • ETC1 dissection mode, allowing in-depth inspection of compressed images.
  • Mip-maps will be calculated only if needed (doh!).
  • Alpha channel compression is now deterministic.
  • Minor changes in compression precision. This will change checksums of most compressed images, compared with previous versions.
  • Multithreaded job dispatch algorithm was improved.
  • zlib/PNG checksum validation was removed, resulting in 12% improvement in image load times.
Download: https://bitbucket.org/wolfpld/etcpak/downloads

Friday 30 May 2014

etcpak 0.3

New major version, new features:
  • Ability to create mipmaps (only POT, not in benchmark mode).
  • Optional dithering of input image.
  • Small quality improvements at basically no cost.
Image minification algorithm used for generating mipmaps is stupid simple, but it already beats the implementation in PVRTexTool:
Left: PVRTexTool, Right: etcpak
Notice the high frequency artifacts present in the PVRTexTool image, particularly near the eyes of parrots. etcpak generates smoother and more natural look. Further refinements will be able to improve the image quality even more.

Dithering basically improves the appearance of gradients or smooth areas in photos:
Left: no dithering, Right: dithering enabled
It comes at a small cost however. Here are the timings for normal compression:
$ x64/Release/etcpak.exe 8192.png -b
Image load time: 1352.646 ms
Mean compression time for 50 runs: 630.855 ms
And this is the run with dithering enabled:

$ x64/Release/etcpak.exe 8192.png -b -d
Image load time: 1312.084 ms
Mean compression time for 50 runs: 744.394 ms
Download: https://bitbucket.org/wolfpld/etcpak/downloads

Thursday 13 March 2014

etcpak 0.2.2

This version contains some minor performance improvements and a benchmark mode, which can be activated using the -b parameter. It will perform 50 compression passes and print out the average time for one pass. It should provide better environment for measurements, as the PNG decode is the slowest component during normal operation.

I've also made an example 8192x8192 image available for test purposes. It is based on the Carina Nebula shot from Hubble.

For comparison, here's the previous method of speed measurement, heavily influenced by the PNG decoder:
$ time etcpak.exe 8192.png

real    0m1.471s
user    0m0.000s
sys     0m0.030s
And here's the new benchmark mode:
$ etcpak.exe 8192.png -b
Image load time: 1330.949 ms
Mean compression time for 50 runs: 631.308 ms

Download: https://bitbucket.org/wolfpld/etcpak/downloads

Saturday 10 August 2013

etcpak 0.2.1

A new version of etcpak has been published today. What's new:
  • Reduced number of spawned threads and context switches.
  • Memory mapped files are used for output. This allows writing compressed data to disk during compression. The downside is that writing PVR output files no longer can be disabled.
  • 32 bit version has been discontinued. From now on only 64 bit version will be provided. It was always the recommended one to use, anyways, as it performed much better than the 32 bit one.
  • Various optimizations.
etcpak 0.2.1 is 10% faster than etcpak 0.2, with the compression time measured at 0.08 s (after deducting PNG load time).

Download: https://bitbucket.org/wolfpld/etcpak/downloads