ฉันรู้ว่าภาพ 24 บิตอุทิศ 8 บิตสำหรับ R, G และ B แต่ละอันมันแค่สำหรับพื้นที่สี RGB ในพื้นที่สี YCbCr สำหรับภาพ JPEG 24 บิตบิตจะกระจายอย่างไร
ฉันรู้ว่าภาพ 24 บิตอุทิศ 8 บิตสำหรับ R, G และ B แต่ละอันมันแค่สำหรับพื้นที่สี RGB ในพื้นที่สี YCbCr สำหรับภาพ JPEG 24 บิตบิตจะกระจายอย่างไร
คำตอบ:
YCbCr มีหลายรูปแบบ โดยทั่วไปดวงตาจะไวต่อการเปลี่ยนแปลงของความสว่าง (Y, ความสว่าง) มากกว่าการเปลี่ยนแปลงของสี (Cb, Cr, สี) ดังนั้นจึงเป็นไปได้ที่จะลบข้อมูลสีบางส่วนในขณะที่รักษาคุณภาพของภาพ
ดังนั้นรูปแบบที่ "แพงที่สุด" คือ 4: 4: 4 โดยที่แต่ละองค์ประกอบของ luma (Y) จะมี 1 ความแตกต่างของสีแดง (Cr) และหนึ่งส่วนต่างของสีน้ำเงิน (Cb)
จากนั้นใช้หลักการที่ฉันกล่าวถึงมี 4: 2: 2 สำหรับองค์ประกอบ 2 Y แต่ละอันมี 1 Cb และ 1 Cr และมันจะไปได้ไกลกว่าถึง 4: 1: 1 และ 4: 2: 0, ฯลฯ รายละเอียดเพิ่มเติมที่นี่
JPEG อาจเริ่มต้นด้วย 8 บิตต่อช่อง R, G และ B แต่เมื่อเก็บไว้ใน JPEG จะถูกจัดเก็บแตกต่างกันมากโดยที่ไม่มี "ความลึกบิต" ที่แท้จริง แต่จะเก็บค่าเป็นค่าสัมประสิทธิ์ความถี่ของความแม่นยำที่กำหนด
ใน JPEG สิ่งที่เกี่ยวข้องยิ่งกว่าคืออัตราควอนตัมซึ่งมีผลต่อจำนวนข้อมูลที่ถูกโยนทิ้งไปในระหว่างขั้นตอนการควอนตัมของการบีบอัดและค่าสัมประสิทธิ์แต่ละอย่างแม่นยำ อัตรา quantization นี้ถูกกำหนดโดยการตั้งค่า "คุณภาพ" เมื่อคุณบันทึก JPEG ใน photoshop มันไม่ได้เกี่ยวข้องกับความลึกของบิตเหมือนกับในภาพแรสเตอร์และคุณอาจบอกได้ว่าภาพ JPEG ไม่ได้มีความลึกบิตในรูปแบบ JPEG แม้ว่าตัวเข้ารหัส / ตัวถอดรหัส JPEG เริ่มต้นด้วย / สิ้นสุดด้วย 24 บิต ภาพแรสเตอร์
ปัจจัยสำคัญอื่น ๆ ที่เกี่ยวข้องในการประหยัดไฟล์ JPEG เป็นสีประเภทย่อยสุ่มตัวอย่าง ใน JPEG คุณมีตัวเลือกในการลดความเข้มของแนวนอนหรือทั้งความละเอียดของสี (Pr และ Pb) ในแนวนอนและแนวตั้งที่สัมพันธ์กับช่องทางความสว่าง (ความสว่าง) เมื่อทำการคลายการบีบอัดช่องสีจะถูกแก้ไขและในเรื่องการถ่ายภาพส่วนใหญ่จะไม่สร้างความแตกต่างอย่างมาก
นี่เป็นบทสรุปคร่าวๆว่าภาพจะเปลี่ยนเป็น JPEG ได้อย่างไร
ค่า RGB ถูกแปลงเป็นค่า Y, Pb, Pr พื้นที่สี YPbPr เหมาะสำหรับการบีบอัดที่มีประสิทธิภาพดีกว่าเนื่องจากเก็บข้อมูลความสว่างซึ่งให้รายละเอียดมากที่สุดในช่องสัญญาณเดียว การแปลงนี้เป็นการดำเนินการทางคณิตศาสตร์อย่างง่ายซึ่งสามารถย้อนกลับได้อย่างสมบูรณ์แบบนอกเหนือจากหากมีข้อผิดพลาดในการปัดเศษ
หากใช้การสุ่มสีใด ๆ (ในคำอื่น ๆ ใช้โหมดอื่นนอกเหนือจาก 4: 4: 4) ดังนั้นความละเอียดในแนวตั้งและ / หรือแนวนอนของช่อง Pb และ Pr จะลดลงครึ่งหนึ่งเท่านั้น ดังนั้นช่องเหล่านี้จะมีขนาดพิกเซลแตกต่างกันไปตามช่องสัญญาณความสว่าง สิ่งนี้นำไปสู่การสูญเสียความละเอียดอย่างถาวรในช่องสี
สำหรับแต่ละช่องภาพจะถูกแบ่งออกเป็นบล็อก 8 พิกเซลคูณ 8 พิกเซลซึ่งให้ 64 ค่าเชิงเส้นสำหรับแต่ละบล็อกดังกล่าวในแต่ละช่อง หากช่องสัญญาณไม่ได้มีหลายคูณ 8 พิกเซลในแต่ละมิติดังนั้นขอบพิกเซลจะถูกทำซ้ำ (และจะถูกโยนออกมาเมื่อคลายการบีบอัด - ดังนั้นการบีบอัด JPEG จะมีประสิทธิภาพมากขึ้นเมื่อใช้มิติที่ทวีคูณ 8 พิกเซลหรือ 16 ถ้าคุณพิจารณา ในการย่อยตัวอย่างสี)
ค่า 64 ในแต่ละบล็อคได้รับการแปลงจากโดเมนอวกาศเป็นโดเมนความถี่ในกรณีนี้เรียกว่าการแปลงโคไซน์แบบแยก คุณมี 64 สัมประสิทธิ์แต่ละอันแทนแอมพลิจูดของแผนที่ความถี่ที่เฉพาะเจาะจงเหนือพื้นที่ที่บล็อกนั้นถ่ายไว้ ค่าแรกคือความถี่ต่ำสุดซึ่งเป็นค่าเฉลี่ยของพิกเซลทั้งหมดอย่างมีประสิทธิภาพจนถึงค่าสุดท้ายซึ่งอธิบายส่วนประกอบความถี่สูงสุดของบล็อก ค่าก่อนหน้านี้เบี่ยงเบนไปมากขึ้นและมีความสำคัญต่อรูปลักษณ์ของภาพสุดท้ายมากกว่าค่าในภายหลังในบล็อก การดำเนินการนี้สามารถย้อนกลับได้อย่างสมบูรณ์แบบตราบใดที่คุณใช้ความแม่นยำเพียงพอ
จากนั้นก็มีขั้นตอนการควอนตัมซึ่งค่าสัมประสิทธิ์ 64 ค่าที่คุณได้รับในขั้นตอนก่อนหน้านั้นถูกหารด้วยจำนวนบางส่วน (เรียกว่าปัจจัยการควอนตัม) และส่วนที่เหลือจะถูกโยนออกไป นี่คือจุดที่ความแม่นยำของตัวอย่างได้รับผลกระทบมากที่สุด แต่เป็นที่ที่คุณประหยัดพื้นที่ได้มากจาก JPEG เทียบกับการบีบอัดแบบไม่สูญเสีย เนื่องจากทุกอย่างอยู่ในโดเมนความถี่นับตั้งแต่การแปลงครั้งก่อนการสูญเสียความถูกต้องนี้จึงเป็นวิธีที่ดีที่สุดในการรักษาคุณภาพของภาพการรับรู้มากกว่าการลดความลึกของบิต / ความถูกต้องของพิกเซลก่อนการเปลี่ยนแปลงนี้ การย้อนกลับของขั้นตอนนี้คือการคูณด้วยจำนวนเดียวกับที่คุณหารค่าสัมประสิทธิ์ด้วย แต่แน่นอนว่าเมื่อคุณโยนเศษที่เหลือออกไปคุณจะสิ้นสุดลงด้วยค่าความแม่นยำที่น้อยลง ส่งผลให้สูญเสียคุณภาพอย่างถาวร
หลังจากการหาปริมาณนี้เป็นเรื่องปกติของหลาย ๆ ค่าสัมประสิทธิ์ที่สำคัญน้อยกว่าจึงเป็นศูนย์ดังนั้นค่าเหล่านี้จะถูกโยนออกมา จากนั้นรูทีนการเข้ารหัสแบบยาวที่ไม่สูญเสียจะเข้ารหัสสัมประสิทธิ์ที่เหลืออยู่ทั้งหมดในวิธีที่มีประสิทธิภาพแม้ว่าแต่ละอันอาจใช้จำนวนบิตที่แตกต่างกัน
เป็นไปไม่ได้ที่จะบอกว่าปัจจัยเชิงปริมาณที่แน่นอนนั้นเทียบเท่ากับความลึกบิตที่แน่นอนเนื่องจากการวัดเชิงปริมาณไม่ให้แถบเช่นเมื่อคุณลดความลึกของบิต แต่แทนที่จะให้การสูญเสียการรับรู้โดยรวมโดยเริ่มจากส่วนที่คุณสังเกตเห็น น้อยเพราะมันมีความกว้างต่ำสำหรับความถี่ของมัน
การเป็นตัวแทนของ chroma (Cb Cr) ในช่องแยกจาก luma (Y) มีผลในเชิงบวกต่อการบีบอัด ข้อมูลที่มองเห็นได้ส่วนใหญ่อยู่ในช่อง luma ดวงตาของมนุษย์ยอมรับทั้งความละเอียดเชิงพื้นที่ที่ต่ำกว่าและการวัดปริมาณเชิงรุกในช่องสัญญาณ chroma ดังนั้นรูปภาพที่ถูกบีบอัดอย่างจริงจังอาจทำให้สิ้นเปลืองเนื้อที่ไฟล์สำหรับ Chroma ประมาณ 10% ส่วนที่เหลือสำหรับ luma และยังดูดีอยู่
ในตอนท้ายของวันมันยังคงสูญเสียการบีบอัด
ประมาณ 8 บิตสำหรับแต่ละช่อง แต่มีหลายวิธีที่แตกต่างกันเล็กน้อยในการทำ โดยมีรายละเอียดในบทความวิกิพีเดีย YCbCr