Mi alapján választod ki a hiányzó karakterhez a helyettesítő karaktert? Mekkora a "hiba"?
A forráskód csomagban megtalálható lesz a konvertáló program, de röviden így működik:
- először megkeresi a teljes videóban az egyedi karaktereket, rendezi gyakoriság szerint, és a leggyakoribb 60 lesz a karakterkészlet fix része
- 196 karakter képenként változhat, egy blokk = 7 képkocka = (7 * 196 * 8 ) + 32 + (7 * 32 * 24) = 16384 byte, amiből 32 byte kihasználatlan
- a blokkokban minden második karakter fordított byte sorrendű, ennek csak a lejátszó optimalizálásánál van jelentősége
- ha egy képkocka túl sok egyedi karaktert tartalmaz, akkor megkeresi azt a kettőt, amelynek az egyesítése a legkevesebb pixel (bit) hibát eredményezi, és ezekből egy új karakter lesz az eredeti kettő gyakoriságának az összegével. A művelet ismétlődik addig, amíg a karakterkészlet mérete már nem nagyobb a tárolhatónál
- végül a kép karaktereihez (32*24) hozzárendeli az eltérő bitek száma szerint leghasonlóbbakat
- a tömörített file két részből áll, először a fix karakterek, majd a blokk adat
- a blokk adat tömörítése: epcompress -raw -m4 -X -blocksize 8192 -minlen 3 -maxoffs 32768. A 16384 helyett 8192 byte-os blokkok egy keveset javítanak a méreten. A formátum az eredeti "epcompress -m4" lebutított, és azzal nem kompatibilis változata, nem támogat 3 byte-nál rövidebb sorozatokat (ez is megtalálható lesz a forrás csomagban)
Az első konvertált videó egyszerűbb algoritmust használt, amivel több volt a pixel hiba, az újabbal ezek az eltérések:
Frame 542: lossy conversion: chrs: 2, pixels: 2, max. pixels/chr: 1
Frame 543: lossy conversion: chrs: 16, pixels: 16, max. pixels/chr: 1
Frame 544: lossy conversion: chrs: 12, pixels: 12, max. pixels/chr: 1
Frame 545: lossy conversion: chrs: 2, pixels: 2, max. pixels/chr: 1
Frame 548: lossy conversion: chrs: 1, pixels: 1, max. pixels/chr: 1
Frame 549: lossy conversion: chrs: 10, pixels: 10, max. pixels/chr: 1
Frame 551: lossy conversion: chrs: 7, pixels: 7, max. pixels/chr: 1
Frame 552: lossy conversion: chrs: 13, pixels: 13, max. pixels/chr: 1
Frame 553: lossy conversion: chrs: 12, pixels: 12, max. pixels/chr: 1
Frame 554: lossy conversion: chrs: 11, pixels: 11, max. pixels/chr: 1
Frame 555: lossy conversion: chrs: 9, pixels: 9, max. pixels/chr: 1
Frame 556: lossy conversion: chrs: 7, pixels: 7, max. pixels/chr: 1
Frame 557: lossy conversion: chrs: 11, pixels: 11, max. pixels/chr: 1
Frame 558: lossy conversion: chrs: 15, pixels: 15, max. pixels/chr: 1
Frame 559: lossy conversion: chrs: 17, pixels: 17, max. pixels/chr: 1
Frame 560: lossy conversion: chrs: 14, pixels: 14, max. pixels/chr: 1
Frame 561: lossy conversion: chrs: 18, pixels: 18, max. pixels/chr: 1
Frame 562: lossy conversion: chrs: 16, pixels: 16, max. pixels/chr: 1
Frame 563: lossy conversion: chrs: 22, pixels: 22, max. pixels/chr: 1
Frame 564: lossy conversion: chrs: 13, pixels: 13, max. pixels/chr: 1
Frame 565: lossy conversion: chrs: 29, pixels: 29, max. pixels/chr: 1
Frame 566: lossy conversion: chrs: 13, pixels: 13, max. pixels/chr: 1
Frame 567: lossy conversion: chrs: 1, pixels: 1, max. pixels/chr: 1
Frame 568: lossy conversion: chrs: 3, pixels: 3, max. pixels/chr: 1
Frame 628: lossy conversion: chrs: 12, pixels: 12, max. pixels/chr: 1
Frame 629: lossy conversion: chrs: 6, pixels: 6, max. pixels/chr: 1
Frame 630: lossy conversion: chrs: 3, pixels: 3, max. pixels/chr: 1
Érdekességként készítettem ditherelt (epimgconv -dither 2 0) és 4 színű verziót is, de ezek sokat növelnek a file méreten, a ditherelt 916756 byte, a 4 színű pedig közel 1 MB, és ezeknél a pixel hiba is több:
[ Guests cannot view attachments ]
[ Guests cannot view attachments ]