oCompress ทำงานอย่างไร
เกิดอะไรขึ้นเมื่อคุณวางไฟล์ ตรวจสอบอย่างไรว่าไม่มีสิ่งใดถูกอัปโหลด และการบีบอัดแบบไม่สูญเสียกับแบบสูญเสียข้อมูลหมายถึงอะไรจริง ๆ
สรุปสั้น ๆ
เมื่อคุณเปิดหน้าเครื่องมือ เบราว์เซอร์จะดาวน์โหลดหน้าเว็บและโปรแกรมขนาดเล็กหนึ่งตัว คือเครื่องมือบีบอัด เมื่อคุณเพิ่มไฟล์ เบราว์เซอร์จะอ่านไฟล์นั้น เครื่องมือบีบอัดจะประมวลผลบนโปรเซสเซอร์ของคุณเอง แล้วส่งผลลัพธ์กลับมาให้คุณดาวน์โหลด ไฟล์ไม่ถูกส่งผ่านเครือข่ายเลยแม้แต่ครั้งเดียว กระบวนการทั้งหมดเป็นดังนี้
- โหลด หน้าเว็บและอินเทอร์เฟซของเครื่องมือโหลดก่อน เอนจินสำหรับไฟล์แต่ละประเภท (รูปภาพ วิดีโอและเสียง หรือเอกสาร) จะถูกดึงมาเมื่อคุณเพิ่มไฟล์ประเภทนั้นเท่านั้น คุณจึงไม่ต้องดาวน์โหลดโค้ดที่ไม่ได้ใช้
- อ่าน เบราว์เซอร์ให้หน้าเว็บเข้าถึงเฉพาะไฟล์ที่คุณเลือก ไม่มีสิ่งอื่นใดบนอุปกรณ์ของคุณ
- บีบอัด งานทำงานใน Web Worker ซึ่งเป็นเธรดเบื้องหลังของเบราว์เซอร์ หน้าเว็บจึงยังตอบสนองได้ดีและคุณยกเลิกได้ทุกเมื่อ
- บันทึก ไฟล์ที่บีบอัดแล้วถูกสร้างในหน่วยความจำ (วิดีโอขนาดใหญ่อยู่ในพื้นที่จัดเก็บส่วนตัวของเบราว์เซอร์) และบันทึกผ่านการดาวน์โหลดปกติของเบราว์เซอร์ ทีละไฟล์หรือเป็น ZIP
อะไรทำงานอยู่ในเบราว์เซอร์ของคุณ
เบราว์เซอร์สมัยใหม่รันโค้ดที่คอมไพล์แล้วได้ด้วยความเร็วใกล้เคียงโปรแกรมเนทีฟผ่าน WebAssembly และให้หน้าเว็บเข้าถึงตัวเข้ารหัสวิดีโอแบบฮาร์ดแวร์ของอุปกรณ์ผ่านอินเทอร์เฟซที่เรียกว่า WebCodecs oCompress ใช้ทั้งสองอย่าง
- รูปภาพ: MozJPEG สำหรับ JPEG, OxiPNG และตัวลดจำนวนสีแบบพาเลตต์สำหรับ PNG, ตัวเข้ารหัส WebP จาก libwebp ของ Google, libavif สำหรับ AVIF, SVGO สำหรับ SVG และตัวถอดรหัสกับตัวเข้ารหัสเฉพาะสำหรับ GIF และ TIFF โคเดก JPEG, PNG, WebP และ AVIF คอมไพล์เป็น WebAssembly
- วิดีโอและเสียง: WebCodecs ร่วมกับไลบรารี Mediabunny สำหรับอ่านและเขียนคอนเทนเนอร์อย่าง MP4 และ WebM การเข้ารหัสใช้ตัวเข้ารหัสแบบฮาร์ดแวร์ของชิปกราฟิกเมื่อมี จึงทำงานได้เร็วแม้อยู่ในเบราว์เซอร์ ไฟล์ MP3 เขียนด้วยตัวเข้ารหัส LAME และไฟล์ FLAC ด้วย libFLAC ทั้งสองคอมไพล์เป็น WebAssembly และโหลดเมื่อจำเป็นเท่านั้น
- เอกสาร: โค้ดของเราเองที่สร้างบนไลบรารี PDF และ ZIP แบบโอเพนซอร์ส เปิดไฟล์ PDF และไฟล์ Office บีบอัดรูปภาพภายในใหม่ด้วยโคเดกรูปภาพ แล้วเขียนไฟล์ใหม่
ทุกไลบรารีที่เราใช้เป็นโอเพนซอร์ส ส่วนใหญ่อยู่ภายใต้สัญญาอนุญาตแบบผ่อนปรน เช่น MIT, BSD และ Apache 2.0 ส่วน Mediabunny อยู่ภายใต้ MPL 2.0 และตัวเข้ารหัส MP3 LAME อยู่ภายใต้ LGPL ในรูปไฟล์แยกที่เปลี่ยนแทนได้ ดูรายชื่อไลบรารีพร้อมเวอร์ชันและสัญญาอนุญาต
ตรวจสอบเองได้อย่างไรว่าไม่มีอะไรถูกอัปโหลด
คุณไม่จำเป็นต้องเชื่อคำพูดของเรา ลองทดสอบง่าย ๆ สองวิธี
- ตัดการเชื่อมต่อ เปิดหน้าเครื่องมือ บีบอัดไฟล์หนึ่งไฟล์เพื่อให้เอนจินโหลด จากนั้นปิด Wi-Fi หรืออินเทอร์เน็ตมือถือแล้วบีบอัดไฟล์ประเภทเดียวกันอีกไฟล์ ยังทำงานได้ เพราะไม่มีขั้นตอนใดต้องใช้เครือข่าย
- ดูการรับส่งข้อมูล ใน Chrome, Edge หรือ Firefox กด F12 เปิดแท็บ Network แล้วบีบอัดไฟล์ คุณจะเห็นโค้ดเครื่องมือบีบอัดโหลดจากเว็บไซต์ของเรา และคำขอจากระบบวิเคราะห์และโฆษณา แต่ไม่มีคำขอใดที่ส่งไฟล์ของคุณ รูปถ่ายขนาด 10 MB จะปรากฏเป็นการอัปโหลด 10 MB ซึ่งไม่มีเลย
หน้าเว็บส่งเหตุการณ์การใช้งานแบบไม่ระบุตัวตนไปยัง Google Analytics เช่น "บีบอัด JPG ขนาดไม่กี่เมกะไบต์แล้ว" เหตุการณ์เหล่านี้มีข้อมูลเครื่องมือ ประเภทไฟล์ และขนาด ปริมาณที่ลดได้ และเวลาประมวลผลเป็นช่วงคร่าว ๆ ไม่มีชื่อไฟล์หรือเนื้อหาของไฟล์เลย
การบีบอัดแบบไม่สูญเสียข้อมูล: เนื้อหาเดิม ไบต์น้อยลง
การบีบอัดแบบไม่สูญเสียข้อมูลจะค้นหาความซ้ำซ้อน คือสิ่งที่ถูกเก็บมากกว่าหนึ่งครั้งหรือคาดเดาได้ แล้วเขียนให้กะทัดรัดขึ้น การถอดรหัสจะย้อนกระบวนการได้อย่างแม่นยำ แนวคิดสามอย่างปรากฏในรูปแบบแบบไม่สูญเสียข้อมูลแทบทุกรูปแบบ
- การคาดการณ์ พิกเซลที่อยู่ติดกันในรูปภาพหรือตัวอย่างเสียงที่ต่อเนื่องกันมักคล้ายกัน การเก็บผลต่างเล็ก ๆ จากค่าที่คาดการณ์แทนค่าเต็มทำให้เหลือตัวเลขที่ส่วนใหญ่ใกล้ศูนย์ ฟิลเตอร์ของ PNG และตัวคาดการณ์เชิงเส้นของ FLAC ทำงานแบบนี้
- การซ้ำ ลำดับข้อมูลที่ซ้ำจะถูกแทนด้วยการอ้างอิงสั้น ๆ ไปยังสำเนาก่อนหน้า นี่คือส่วน LZ77 ของ DEFLATE ที่ใช้ใน ZIP, PNG และไฟล์ Office
- การเข้ารหัสเอนโทรปี ค่าที่พบบ่อยได้รหัสสั้น ค่าที่พบน้อยได้รหัสยาว (การเข้ารหัสแบบ Huffman หรือแบบเลขคณิต)
การบีบอัดแบบไม่สูญเสียข้อมูลมีขีดจำกัดตามธรรมชาติ สัญญาณรบกวนแบบสุ่มคาดเดาไม่ได้ รูปถ่ายที่มีเกรนหรือการบันทึกเสียงที่มีเสียงรบกวนจึงไม่เคยเล็กลงมากหากไม่สูญเสียข้อมูล นี่จึงเป็นเหตุผลที่การบีบอัดไฟล์ที่บีบอัดแล้ว เช่น JPEG ใน ZIP แทบไม่ช่วยลดขนาดเลย
การบีบอัดแบบสูญเสียข้อมูล: ตัดสิ่งที่คุณไม่รู้สึกว่าขาดไป
โคเดกแบบสูญเสียข้อมูลไปไกลกว่านั้นด้วยการทิ้งข้อมูลที่ตาและหูของมนุษย์แทบไม่รับรู้ JPEG และ WebP เก็บสีที่ความละเอียดต่ำกว่าความสว่าง และปัดรายละเอียดความถี่สูงที่ละเอียดทิ้ง MP3, AAC และ Opus ตัดเสียงที่ถูกเสียงที่ดังกว่ากลบไว้ โคเดกวิดีโออย่าง H.264 เก็บภาพเต็มเป็นระยะ ๆ และระหว่างนั้นส่วนใหญ่เก็บเพียงการเคลื่อนไหวและการเปลี่ยนแปลง
การตั้งค่าคุณภาพหรือบิตเรตเป็นตัวกำหนดว่าจะทิ้งข้อมูลมากเท่าใด ที่การตั้งค่าระดับกลาง การสูญเสียสังเกตได้ยากมาก แต่หากบีบมากเกินไปจะเกิดสิ่งแปลกปลอมที่พบบ่อย เช่น บล็อกและขอบเรืองในรูปภาพ เสียงโลหะหรือเสียงเหมือนอยู่ใต้น้ำในไฟล์เสียง และภาพเบลอในฉากวิดีโอที่เคลื่อนไหวเร็ว
เครื่องมือรับประกันอะไร และไม่รับประกันอะไร
- คุณจะไม่ได้ไฟล์ที่ใหญ่ขึ้น หากผลลัพธ์ไม่เล็กลง เครื่องมือจะคืนต้นฉบับและแจ้งว่าไฟล์เหมาะสมที่สุดแล้ว
- เอกสารและไฟล์เสียงให้ไบต์ที่เหมือนกันทุกประการสำหรับไฟล์และการตั้งค่าเดียวกัน ส่วนตัวเข้ารหัสวิดีโอแบบฮาร์ดแวร์อาจต่างกันไม่กี่ไบต์ในแต่ละครั้ง
- ข้อความในเอกสารยังคงเป็นข้อความ หน้าเอกสารจะไม่ถูกแปลงเป็นรูปภาพ
- ข้อมูลเมตาของรูปภาพ เช่น ตำแหน่ง GPS จะถูกลบโดยค่าเริ่มต้น แต่โปรไฟล์สีและการหมุนภาพยังคงอยู่ ข้อมูลเมตาของวิดีโอ เช่น ตำแหน่ง อุปกรณ์ และวันที่ ก็ถูกลบโดยค่าเริ่มต้นเช่นกัน ส่วนไฟล์เสียงจะเก็บแท็กและภาพปกไว้ เว้นแต่คุณจะปิดตัวเลือกนี้
สิ่งที่เรารับประกันไม่ได้คือเปอร์เซ็นต์ที่แน่นอน ปริมาณที่ลดได้ขึ้นอยู่กับว่าไฟล์ถูกสร้างอย่างไรทั้งหมด รูปถ่ายจากโทรศัพท์หรือ PDF ที่สแกนมามักลดได้มาก ส่วนไฟล์ที่ปรับให้เหมาะสมมาแล้วลดได้น้อย เครื่องมือแสดงขนาดก่อนและหลังที่แน่นอนของทุกไฟล์
ขีดจำกัดของการบีบอัดในเบราว์เซอร์
แท็บเบราว์เซอร์เป็นแซนด์บ็อกซ์ที่มีหน่วยความจำจำกัด ซึ่งเป็นตัวกำหนดขอบเขตของสิ่งที่ทำได้จริง เครื่องมือรับรูปภาพได้สูงสุด 200 MB และ 100 ล้านพิกเซล ไฟล์ PDF และ Office สูงสุด 300 MB และวิดีโอกับเสียงสูงสุด 4 GB บนคอมพิวเตอร์ (1 GB บนโทรศัพท์) แม้วิดีโอ 4K ที่ยาวอาจยังใส่ในหน่วยความจำของแท็บไม่ได้ ความเร็วขึ้นอยู่กับฮาร์ดแวร์ของคุณ ในการทดสอบของเราบนพีซี Windows ที่เร็วด้วย Chrome วิดีโอ 1080p ความยาวหนึ่งนาทีใช้เวลาราว 20 วินาที และรูปถ่าย 24 ล้านพิกเซลราว 2.5 วินาที โทรศัพท์อาจช้ากว่ามาก การแปลงวิดีโอและเสียงส่วนใหญ่ต้องใช้ WebCodecs ซึ่ง Chrome, Edge, Opera รุ่นปัจจุบัน, Firefox 130+ และ Safari 26+ รองรับ ส่วน WAV และ AIFF แปลงเป็น MP3, FLAC หรือ WAV ได้แม้ไม่มี WebCodecs
บางรูปแบบไม่มีตัวถอดรหัสในเบราว์เซอร์เลย เช่น WMA, AVI และ WMV และไฟล์ Office แบบไบนารีรุ่นเก่าก็เขียนใหม่อย่างปลอดภัยไม่ได้ สำหรับรูปแบบเหล่านี้ เครื่องมือจะอธิบายทางเลือกแทนการสร้างไฟล์ที่อาจเสียหาย เมื่องานใหญ่เกินกว่าเบราว์เซอร์จะรับได้ คำแนะนำที่ตรงไปตรงมาคือโปรแกรมบนเดสก์ท็อป เช่น HandBrake สำหรับวิดีโอ หรือ LibreOffice สำหรับเอกสาร