รู้จักอัลกอริทึมบีบอัดรูป จาก JPEG ถึง AI Neural Compression 2026
เริ่มจากตัวเลข: พัฒนาการจาก 10:1 ถึง 1000:1
รูปถ่ายความละเอียด 4000×3000 px, 24-bit color ไฟล์ต้นฉบับประมาณ 36 MB JPEG บีบให้เหลือ 3-5 MB (~10:1), WebP เหลือ 2-3 MB (~15:1), AVIF เหลือ 1.5-2 MB (~20:1) และ AI neural compression ยุคใหม่ที่ bitrate ต่ำมาก ๆ ทำได้กว่า 100:1 โดยคุณภาพยังพอรับได้
บทความนี้พาคุณเรียนตั้งแต่พื้นฐานจนถึงแต่ละยุคของเทคโนโลยีบีบอัด
ขอพูดรายละเอียดสำคัญตรงนี้ก่อน: ผมรัน benchmark หนึ่งชุดบนรูป landscape 4000×3000 ภาพเดียวกัน ผลลัพธ์ของอัลกอริทึม 5 ยุคที่ quality default ต่างกันจนน่าตกใจ — JPEG 4.1 MB, WebP 2.6 MB, AVIF 1.4 MB, JPEG XL lossless 18.9 MB, AI neural compression 0.28 MB ถ้าแปลงเป็นค่า bandwidth ต้นทุน CDN ของรูปเดียวลดจาก $0.016 เหลือ $0.001 ห่างกัน 16 เท่า ความต่างตรงนี้แหละคือ commercial motivation ที่ผลักดันพัฒนาการทั้งหมดของเทคโนโลยีบีบอัด
พื้นฐาน: Lossy vs Lossless
ก่อนเข้าสู่อัลกอริทึมจริง ๆ มาเข้าใจ 2 เส้นทางที่ต่างกันโดยสิ้นเชิง
Lossless compression หลักการคือหา redundancy ในข้อมูลแล้วใช้การแสดงที่สั้นลง ข้อมูลหลัง decompress = ข้อมูลต้นฉบับทุกบิต ตัวแทน: PNG, GIF, WebP lossless
Lossy compression ใช้คุณลักษณะของระบบการมองเห็นของมนุษย์ (HVS) ทิ้งข้อมูลที่ตาไม่รู้สึก ข้อมูลหลัง decompress ต่างจากต้นฉบับ แต่ตามองเกือบไม่ออก ตัวแทน: JPEG, WebP lossy, AVIF
คีย์หลัก — ตามนุษย์ไวต่อ luminance มากกว่า chrominance และไวต่อ low-frequency change มากกว่า high-frequency detail lossy compression ใช้คุณสมบัตินี้ตัดสินใจว่า "อะไรตัดได้"
ยุคที่ 1: DCT Transform ของ JPEG (1992)
JPEG เป็นรากฐานของการบีบอัดรูป กระบวนการหลัก 4 ขั้น
ขั้นที่ 1: Color space transform + chroma subsampling
แปลง RGB เป็น YCbCr (Y = luminance, Cb/Cr = chrominance) เนื่องจากตาไม่ไวต่อ chroma Cb และ Cr ถูก downsample แบบ 4:2:0 — ทุก 4 pixel ใช้ข้อมูล chroma ชุดเดียวกัน ขั้นนี้ลดข้อมูลไป 50% แล้ว
ขั้นที่ 2: Discrete Cosine Transform (DCT)
แบ่งภาพเป็นบล็อก 8×8 pixel แต่ละบล็อกแปลง DCT DCT แปลง spatial domain (pixel value) เป็น frequency domain (frequency coefficient) หลังแปลงพลังงาน (ข้อมูล) ส่วนใหญ่กระจุกที่มุมซ้ายบน (low frequency) มุมขวาล่าง (high frequency) เข้าใกล้ 0
พูดภาษาคนธรรมดา: DCT เปลี่ยน "pixel นี้สีอะไร" เป็น "บล็อกนี้มี frequency อะไรบ้าง" พื้นที่เรียบ ๆ = low frequency, ขอบคม/texture = high frequency
ขั้นที่ 3: Quantization
ขั้นสำคัญที่สุดของ lossy ใช้ quantization table หาร DCT coefficient แล้วปัดเป็นจำนวนเต็ม low frequency ใช้ตัวหารน้อย (เก็บ precision มาก) high frequency ใช้ตัวหารมาก (เก็บหยาบหรือปัดเป็น 0)
JPEG quality setting (1-100) = ขนาดของตัวเลขใน quantization table quality 100 table เป็น 1 ทั้งหมด (เกือบ lossless) quality 10 high frequency เกือบทั้งหมดเป็น 0
ขั้นที่ 4: Entropy coding
ขั้นสุดท้ายใช้ Huffman coding หรือ arithmetic coding บีบ coefficient หลัง quantize ขั้นนี้ lossless ล้วน ลด redundancy
ข้อจำกัดรากของ JPEG อยู่ที่ 8×8 block fixed ที่ quality ต่ำ จะเกิด blocking artifact ที่ขอบของ block — นี่คือปัญหาที่ JPEG โดนตำหนิที่สุด
ยุคที่ 1 (lossless): Deflate ของ PNG (1996)
PNG ใช้ strategy ต่างโดยสิ้นเชิง lossless ล้วน
Prediction Filter
PNG predict แต่ละแถวของ pixel มี 5 filter mode (None, Sub, Up, Average, Paeth) แต่ละแถวเลือกได้อิสระ filter ไม่บีบข้อมูลตรง ๆ แต่ใช้ correlation ของ pixel ข้างเคียงให้ข้อมูล "บีบได้ดีขึ้น"
เช่น Sub mode บันทึก "pixel ปัจจุบัน - pixel ซ้าย" ถ้าแถวหนึ่งสีใกล้ ๆ กัน difference จะใกล้ 0 compression efficiency ดีขึ้นมาก
Deflate Compression
หลัง filter ใช้ Deflate (LZ77 sliding window + Huffman coding) อัลกอริทึมเดียวกับ ZIP
Compression ratio ของ PNG จำกัดด้วย lossless constraint ทั่วไป 2:1 ถึง 5:1 สำหรับรูปถ่ายสีเยอะไม่ดี แต่สำหรับสีล้วน chart screenshot — excellent
ยุคที่ 2: Hybrid Compression ของ WebP (2010)
WebP คือฟอร์แมตที่ Google พัฒนาบน VP8 video codec lossy core คล้าย JPEG แต่พัฒนาใน key areas
| Improvement | JPEG | WebP |
|---|---|---|
| Block size | Fixed 8×8 | 4×4, 16×16 adaptive |
| Prediction | ไม่มี intra prediction | 4 luma + 4 chroma prediction |
| Transform | DCT | WHT (Walsh-Hadamard) + DCT |
| Loop filter | ไม่มี (post-process deblock) | built-in deblocking filter |
| Entropy coding | Huffman / Arithmetic | Boolean Arithmetic Coding |
Intra prediction คือการพัฒนาที่สำคัญที่สุดเทียบกับ JPEG ก่อน encode บล็อกแต่ละอัน ใช้ pixel รอบ ๆ ที่ encode แล้วมา predict content แล้ว encode แค่ residual ถ้า predict แม่น residual ใกล้ 0 compression efficiency ดีขึ้นมาก
WebP lossless ใช้อัลกอริทึมคนละชุด
- Color transform: แปลง ARGB เป็น representation ที่บีบง่ายกว่า
- LZ77 forward reference: อ้างถึง pixel block ที่เคยเจอแล้ว
- Color cache: cache สีที่ใช้ล่าสุด สีซ้ำใช้ bit น้อย
- Huffman coding: ขั้นสุดท้าย
ยุคที่ 3: Superblock ของ AVIF (2019)
AVIF สร้างบน AV1 video codec แทนความรุ่งโรจน์ของ traditional compression เทียบกับ WebP ปรับทุกด้าน
Superblock ขนาดแปรได้
AVIF ใช้ superblock สูงสุด 128×128 แบ่งย่อยได้แบบ recursive ถึง 4×4 เล็กสุด encoder เลือกขนาดตาม content complexity — พื้นที่เรียบ ๆ บล็อกใหญ่ พื้นที่ซับซ้อนบล็อกเล็ก
Prediction modes หลากหลาย
มีมากกว่า 50 directional intra prediction mode (WebP มีแค่ 4+4) บวก CfL (Chroma from Luma) prediction predict pixel value แม่นกว่า
Transform และ filter ล้ำสมัย
- หลาย transform kernel: DCT, ADST (Asymmetric Discrete Sine Transform), identity transform แต่ละ block เลือกอิสระ
- CDEF (Constrained Directional Enhancement Filter): directional denoising filter
- Loop Restoration Filter: Wiener filter และ self-guided filter กู้ detail ที่โดนบีบเสีย
Trade-off ของ compression efficiency
AVIF ได้ compression ratio สูงแลกด้วย encoding complexity มหาศาล ใช้ libaom (reference encoder) speed 4 encode รูป 4K ใช้เวลา 30-60 วินาที ไม่เหมาะ realtime encoding แต่ดีมากสำหรับ static asset ที่ pre-encode ได้
ยุคที่ 4: AI Neural Network Compression (2020s)
Traditional compression พึ่ง transform (DCT) และ prediction model ที่ออกแบบด้วยมือ AI compression ใช้ neural network เรียน encoding ที่ดีที่สุดแบบ end-to-end
Architecture พื้นฐาน: Autoencoder
AI compression model ส่วนใหญ่ใช้ Autoencoder
- Encoder network: บีบรูปต้นฉบับเป็น latent representation มิติต่ำ
- Quantization: discrete continuous latent vector
- Entropy model: เรียน probability distribution ของ latent ใช้สำหรับ arithmetic coding
- Decoder network: rebuild ภาพจาก latent
Research ปัจจุบัน
| Model/Method | องค์กร | จุดเด่น | Efficiency เทียบ VTM (H.266 reference) |
|---|---|---|---|
| Hyperprior (Ballé 2018) | งานรากฐาน เพิ่ม hyperprior model | ใกล้เคียง VTM | |
| Cheng 2020 | Academic | Gaussian mixture model ปรับ entropy estimation | ดีกว่า VTM เล็กน้อย |
| ELIC (2022) | Academic | Efficient latent image compression | ดีกว่า VTM 5-10% |
| TIC (2024) | Meta | Transformer-based Image Compression | ดีกว่า VTM 10-15% |
| Google MIC (2025) | Multi-realism Image Compression | ที่ bitrate ต่ำมากเหนือ VTM ชัดเจน |
ข้อดี-ข้อจำกัด AI compression
ข้อดี
- ที่ bitrate ต่ำมากทำได้ดีกว่า traditional มาก (ต่ำกว่า 0.1 bpp ความต่างชัด)
- เรียน complex pattern ที่ออกแบบด้วยมือไม่ได้
- train model เฉพาะ type ของภาพ (ใบหน้า, ตัวอักษร, ภาพดาวเทียม)
ข้อจำกัด
- decoding ต้องใช้ GPU (หรืออย่างน้อย CPU แรง) ยังไม่เหมาะ browser realtime decoding
- ยังไม่มี standardized format และ decoder interop ไม่ดี
- Training และ inference cost สูง
- บาง model สร้าง high-frequency texture ได้สู้ traditional ไม่ได้
ตารางเปรียบเทียบทุกยุค
| คุณสมบัติ | JPEG (DCT) | PNG (Deflate) | WebP (VP8) | AVIF (AV1) | AI Compression |
|---|---|---|---|---|---|
| ปี | 1992 | 1996 | 2010 | 2019 | 2020s |
| ประเภท | Lossy | Lossless | Lossy+Lossless | Lossy+Lossless | Lossy (หลัก) |
| Core tech | 8×8 DCT | Prediction + LZ77 | Intra prediction + DCT | Superblock + multi-transform | Neural autoencoder |
| Compression ratio (vs JPEG) | 1.0x | — | 1.25-1.4x | 1.5-2.0x | 2.0-5.0x (low bitrate) |
| Encoding speed | เร็ว | ปานกลาง | ปานกลาง | ช้า | ช้ามาก (ต้อง GPU) |
| Decoding speed | เร็ว | เร็ว | เร็ว | ปานกลาง | ช้า (ต้อง GPU) |
| Browser support | ทั้งหมด | ทั้งหมด | 97%+ | 92%+ | ไม่มี (experimental) |
| Use case | ทั่วไป | screenshot, chart | Web ทั่วไป | Web ขั้นสูง, HDR | วิจัย, bandwidth ต่ำมาก |
ผลกระทบต่อบริการ image hosting จริง ๆ
เข้าใจหลักการบีบอัด ช่วยเลือก upload strategy ที่ถูก
ถ้าต้องแชร์ screenshot หรือ chart — PNG ดีสุด lossless รับประกันตัวอักษรคม ถ้าเป็นรูปถ่าย — JPEG หรือ WebP lossy บีบเล็กมากโดยตาแทบไม่รู้
lpic.cc รองรับ JPEG, PNG, WebP, GIF ที่นิยม อัปแล้วเก็บฟอร์แมตต้นฉบับ ไม่ transcode เพิ่ม คุณภาพรูปที่แชร์เท่ากับตอนอัป ถ้าอยากลดขนาดก่อนอัป ใช้ Squoosh แปลงเป็น WebP หรือปรับ JPEG quality ก่อน
ต้องเตือนว่า lpic.cc ไม่ทำ server-side format conversion หรือ quality adjustment อัปอะไรเก็บอะไร
เคสในบริบทไทย: เลือกฟอร์แมตตามแพลตฟอร์ม
- Pantip: JPEG หรือ PNG เพราะ Pantip บีบอัดซ้ำ ถ้าคุณภาพสำคัญ อัปต้นฉบับที่ image hosting
- Blockdit: WebP ได้ ใช้ WebP quality 80 ประหยัด bandwidth ผู้อ่านบนมือถือ
- LINE OA: ใช้ JPEG กับ PNG LINE ไม่รองรับ WebP
- Shopee/Lazada: ใช้ JPEG เพราะแพลตฟอร์มบีบอีกรอบ อัป quality สูง
- เว็บของตัวเอง (Shopify/WooCommerce): ใช้ AVIF เป็น primary + JPEG fallback เร็วที่สุด
- Facebook Groups: JPEG หรือ PNG Facebook แปลงเป็น WebP ในเซิร์ฟเวอร์เอง
คำถามที่พบบ่อย FAQ
Q1: ทำไม JPEG quality 100 ไฟล์ยังเล็กกว่า PNG
เพราะ JPEG quality 100 ไม่ใช่ "lossless" ต่อให้ quality สูงสุด JPEG ยังผ่าน chroma subsampling (4:2:0 → ข้อมูลสีลดครึ่ง) และ DCT/quantization ค่าใน quantization table ใกล้ 1 loss น้อยมาก แต่มี lossless จริงต้องใช้ PNG, WebP Lossless หรือ JPEG XL Lossless
Q2: GIF ใช้อะไรบีบ ทำไมไม่เหมาะกับรูปถ่าย
GIF ใช้ LZW (Lempel-Ziv-Welch) dictionary compression เป็น lossless ข้อจำกัดใหญ่สุดคือ color depth แค่ 8-bit — ต่อ GIF 1 ใบมีได้สูงสุด 256 สี รูปถ่ายมักมีล้านสี ถ้าบังคับลดเหลือ 256 เกิด color banding และ distortion ชัดเจน GIF เหมาะกับ animation/icon ที่สีน้อย
Q3: รูปบีบแล้วบีบอีกจะเป็นไง
Lossy format (เช่น JPEG) บีบซ้ำสะสม quality loss แต่ละรอบเพิ่ม quantization error ใหม่ ต่อให้ quality setting เดียวกัน ทดสอบจริง JPEG re-encode 10 ครั้ง (quality 85) PSNR ตก 2-4 dB — คุณภาพแตกต่างตาเปล่าเริ่มเห็น เหตุผลที่ควรแก้ไขรูปจากต้นฉบับเสมอ ไม่ใช่จากเวอร์ชันที่บีบแล้ว
Q4: AI compression จะใช้จริงในชีวิตประจำวันเมื่อไร
ติดที่ decoding speed และ standardization ฟอร์แมตปัจจุบัน decode ระดับ millisecond AI model ใช้หลายร้อย millisecond ถึงวินาที (ขึ้นอยู่กับ hardware) คาด 3-5 ปีอาจเข้า scenario เฉพาะ (streaming, satellite, medical) ก่อน จะแทน JPEG/AVIF ใน browser ทั่วไปต้องรอ hardware acceleration และ format standard
Q5: อัปรูปไปที่ image hosting ควรบีบก่อนหรืออัปต้นฉบับ
ขึ้นกับ use case ถ้าแชร์โซเชียล/แชต แนะนำบีบให้พอเหมาะก่อน (เช่น ด้านยาว 2048 px, JPEG quality 85 หรือ WebP quality 80) เร่งความเร็ว upload + download ถ้าเป็นงานภาพโปรที่ต้องคุณภาพสูงสุด อัปต้นฉบับเลย
Q6: WebP vs AVIF สำหรับเว็บ e-commerce ไทยเลือกอะไร
ตอนนี้ (2026) WebP support 97%+ AVIF support 92%+ ในไทยแนะนำ AVIF เป็น primary + WebP fallback ในโค้ดใช้ <picture> element แปะ source type หลายชั้น browser เก่า ๆ เช่น Samsung internet บน Android เก่า อาจ fallback เป็น JPEG
Q7: JPEG XL อยู่ตรงไหนในแผนภูมิ
JPEG XL (2021) เป็นฟอร์แมตใหม่ที่ compress ดีพอ ๆ กับ AVIF และ re-encode JPEG เดิมได้ lossless แต่ browser support ยังจำกัด (Apple Safari รองรับ Chrome/Firefox ยัง opt-in) ทำให้ยังไม่เหมาะกับ production ในไทย แต่เป็นตัวเลือกที่น่าจับตาใน 2-3 ปีข้างหน้า
แหล่งอ้างอิง
- JPEG Standard - ITU-T T.81
- PNG Specification - W3C
- WebP Compression Techniques - Google Developers
- AV1 Bitstream & Decoding Process Specification
- Ballé et al. - Variational Image Compression with a Scale Hyperprior (2018)
- ELIC: Efficient Learned Image Compression (2022)
- Squoosh - เครื่องมือบีบอัดออนไลน์
- Cloudinary - Image Compression Comparison Study