การบีบอัดวิดีโอสตรีมที่รวดเร็วและไม่สูญเสีย
ฉันมีวิดีโอที่มาจากกล้องนิ่ง ทั้งความละเอียดและ FPS ค่อนข้างสูง ข้อมูลที่ฉันได้รับอยู่ในรูปแบบไบเออร์และใช้ 10 บิตต่อพิกเซล เนื่องจากไม่มีชนิดข้อมูล 10 บิตบนแพลตฟอร์มของฉันข้อมูลต้นฉบับจะถูกเก็บไว้ในหน่วยความจำโดยใช้คำ 16 บิต ฉันต้องการใช้การบีบอัดข้อมูลแบบไม่สูญเสียข้อมูลบางอย่างก่อนส่งผ่านเครือข่าย กล้องไม่เคลื่อนไหวดังนั้นส่วนใหญ่ของเฟรมที่ต่อเนื่องกันเกือบจะเหมือนกัน - แต่ก็ยังไม่สมบูรณ์เนื่องจากเสียงที่หลีกเลี่ยงไม่ได้ (denoising ไม่ใช่ตัวเลือกเนื่องจากควรจะสูญเสียและไม่ควร "เสีย" แม้แต่เสียง ) เนื่องจาก FPS สูงแม้แต่ชิ้นส่วนที่เปลี่ยนจึงไม่เปลี่ยนแปลงมากนักระหว่างเฟรมต่อเนื่องสองเฟรม อย่างไรก็ตามดูเหมือนว่ากล้องจะสั่นเล็กน้อย น้อยมาก แต่ถึงกระนั้นแม้กระทั่งวัตถุที่อยู่กับที่ก็ยังไม่สมบูรณ์ในพื้นที่ภาพ การบีบอัดต้องทำได้อย่างรวดเร็วดังนั้นฉันจึงไม่สามารถรวบรวมเฟรมจำนวนมากและบีบอัดพวกมันทั้งหมดเข้าด้วยกัน แต่ฉันสามารถมองย้อนกลับไป 1 เฟรมและใช้เป็นข้อมูลอ้างอิงได้ ความคิดแรกของฉันคือการบีบอัดข้อมูลเพื่อให้บิตที่ซ้ำซ้อน 6 บิตเหล่านั้นไม่สูญเปล่าไปทุกคำ อย่างไรก็ตามฉันคิดว่าถ้าฉันใช้การเข้ารหัสเอนโทรปี (เช่น Huffman เป็นต้น) ความซ้ำซ้อนนั้นจะถูกนำมาพิจารณาโดยอัตโนมัติดังนั้นจึงไม่จำเป็นต้องมีการบรรจุเพิ่มเติม ดังนั้นฉันทำต่อไปนี้: ใช้ความแตกต่างแบบไบนารีระหว่างสองเฟรมที่ต่อเนื่องกัน ช่วงข้อมูลดั้งเดิมคือ 0 ~ 1023 (เช่น 10 บิตที่ไม่ได้ลงชื่อ) ข้อมูลที่แตกต่างจะถูกเซ็นชื่อและช่วงจะเพิ่มเป็น -1023 …