16 คะแนน โดย lifthrasiir 2022-09-14 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

JPEG XL เป็นฟอร์แมตไฟล์ภาพยุคถัดไปที่ถูกทำให้เป็นมาตรฐานในชื่อ ISO/IEC 18181 เคยมีโพสต์ขึ้นบน GeekNews อยู่ครั้งหนึ่งเหมือนกัน https://th.news.hada.io/topic?id=3788

ช่วงนี้ดูเหมือนว่าจะมีการเพิ่มการรองรับในเครื่องมือที่เกี่ยวข้องกับภาพแทบทุกตัว ยกเว้นเบราว์เซอร์ และเพราะตัวอ้างอิงอย่าง libjxl มีคุณภาพสูง หลายกรณีจึงนำมันไปใช้ตรง ๆ กันเลย อย่างไรก็ตาม ตัว libjxl เองเป็นซอฟต์แวร์ขนาดค่อนข้างใหญ่ที่เขียนด้วย C++ มีโค้ดอยู่หลายแสนบรรทัด จึงไม่ได้คอมไพล์กันง่าย ๆ อีกทั้ง libjxl ถูกสร้างขึ้นก่อนที่จะมีสเปก ทำให้มีหลายจุดที่สเปกกับ libjxl ไม่ตรงกันพอสมควร (ถึงขั้นว่ายังเป็นแบบนี้แม้หลังมาตรฐานออกแล้วก็ตาม...) ยิ่งไปกว่านั้น การสร้างตัวเข้ารหัส JPEG XL นั้นง่ายกว่าเพราะรองรับแค่บางฟีเจอร์ก็พอได้ แต่ตัวถอดรหัสจำเป็นต้องรองรับทุกฟีเจอร์ จึงอยู่มาพักใหญ่ ๆ ที่นอกจาก libjxl แล้ว ก็ไม่มีตัวถอดรหัสที่ถอดได้แม้แต่พิกเซลเดียวเลย

J40 เป็นโปรเจ็กต์ที่เริ่มขึ้นเพื่อพยายามฝ่าสถานการณ์แบบนั้น อีกทั้งเป็นงานฟื้นฟูฝีมือหลังเกษียณไปด้วย แต่สุดท้ายก็ใช้เวลายาวนานถึง 4 เดือน... ตอนนี้ J40 เวอร์ชันปัจจุบัน (ขอยืมคำพูดของ Jon Sneyers) ได้อิมพลีเมนต์สเปกทั้งหมดราว 80% ด้วย C99 แล้ว แต่ถ้ารู้ว่าจะใหญ่ขนาดนี้ก็น่าจะเขียนด้วย Rust ตั้งแต่แรกเสียดีกว่า ฮือ ๆ อย่างไรก็ดี ก็หวังว่าโปรเจ็กต์นี้จะเป็นประโยชน์กับผู้ที่สนใจ JPEG XL

3 ความคิดเห็น

 
qwerty 2022-09-17

https://github.com/lifthrasiir/j40/…

ส่วนนี้น่าจะต้องเช็กค่าติดลบด้วยนะครับ~~

ในฟังก์ชัน j40__ans_table ก็น่าจะต้องเก็บ sizeof(int16_t) * (size_t) table_size ไว้ในตัวแปร แล้วเช็กก่อนเข้าถึงอาร์เรย์ D ด้วยครับ

โดยเฉพาะใน case 2 เงื่อนไข 0 <= bias_size <= alpha_size <= table_size <= sizeof(int16_t) * (size_t) table_size ดูเหมือนว่าควรใช้ J40__SHOULD ครับ

เป็นโปรเจกต์ที่ยอดเยี่ยมมาก อ่านแล้วสนุกครับ~

 
lifthrasiir 2022-09-19

ลองรัน fuzzer แล้วหรือยังครับ 555 เนื่องจาก API ถูกตัดสินใจค่อนข้างช้า เลยเพิ่งมาเริ่มรัน fuzzer เอาตอนนี้ คิดว่าน่าจะพังในจุดที่คาดเดาได้หลายจุด... อ้างอิงจากเรื่องนี้ เราตรวจพบระหว่างกระบวนการ fuzzing และกำลังจะส่งแพตช์แก้ไขในเร็ว ๆ นี้ครับ

 
xguru 2022-09-14

ว้าว เจ๋งมากเลยครับ เป็นกำลังใจให้กับสิ่งที่คุณทำอยู่เสมอครับ!!