พื้นที่สี YCbCr แสดงในภาพ JPEG อย่างไร


9

ฉันรู้ว่าภาพ 24 บิตอุทิศ 8 บิตสำหรับ R, G และ B แต่ละอันมันแค่สำหรับพื้นที่สี RGB ในพื้นที่สี YCbCr สำหรับภาพ JPEG 24 บิตบิตจะกระจายอย่างไร

คำตอบ:


3

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
whuber

@whuber: พวกเขามักใช้ในการพูดคุยเกี่ยวกับการเข้ารหัสวิดีโอ แต่ JPEG ยังสนับสนุนความสว่างด้วยความละเอียดสองเท่าของ chrominance ในกรณีของ JPEG มันเป็นตัวเลือกแม้ว่า - chroma สามารถเป็น full-res หรือ half-res
Jerry Coffin

1
GIMP จะใช้การสุ่มค่าสีแบบ Chroma ตามค่าเริ่มต้นเมื่อบันทึก JPEG แม้ว่าจะเป็นเรื่องง่ายที่จะแทนที่ จำไม่ได้ว่าสิ่งนี้มีผลกับ Photoshop ด้วย
thomasrutter

@thomasrutter, Photoshop เลือกการสุ่มตัวอย่างตามการตั้งค่าคุณภาพที่คุณเลือก มันไม่ใช่ตัวเลือกที่เป็นอิสระ
Mark Ransom

ตัวเลขอ้างถึงจำนวนตัวอย่างต่อ 4 พิกเซลในแนวนอนสำหรับ Y, Pr และ Pb ดังนั้น 4: 4: 4 หมายถึงทั้งสามช่องตัวอย่างทุกพิกเซล 4: 2: 2 หมายถึงแชนเนล Pr และ Pb สุ่มตัวอย่างทุกพิกเซลที่สองในแนวนอนเท่านั้น 4: 1: 1 (ฉันไม่คิดว่านี่จะใช้ในการถ่ายภาพเฉพาะในวิดีโอ) หมายความว่า Pr และ Pb จะสุ่มตัวอย่างทุกพิกเซลที่สี่ในแนวนอน 4: 2: 0 เป็นความเบี่ยงเบนพิเศษจากกฎนี้ ไม่ได้หมายความว่าไม่มีช่อง Pb หมายความว่าอะไรช่องทาง Pr และ Pb จะลดลงครึ่งหนึ่งทั้งในแนวนอนและแนวตั้งไม่ใช่แค่แนวนอน
thomasrutter

24

JPEG อาจเริ่มต้นด้วย 8 บิตต่อช่อง R, G และ B แต่เมื่อเก็บไว้ใน JPEG จะถูกจัดเก็บแตกต่างกันมากโดยที่ไม่มี "ความลึกบิต" ที่แท้จริง แต่จะเก็บค่าเป็นค่าสัมประสิทธิ์ความถี่ของความแม่นยำที่กำหนด

ใน JPEG สิ่งที่เกี่ยวข้องยิ่งกว่าคืออัตราควอนตัมซึ่งมีผลต่อจำนวนข้อมูลที่ถูกโยนทิ้งไปในระหว่างขั้นตอนการควอนตัมของการบีบอัดและค่าสัมประสิทธิ์แต่ละอย่างแม่นยำ อัตรา quantization นี้ถูกกำหนดโดยการตั้งค่า "คุณภาพ" เมื่อคุณบันทึก JPEG ใน photoshop มันไม่ได้เกี่ยวข้องกับความลึกของบิตเหมือนกับในภาพแรสเตอร์และคุณอาจบอกได้ว่าภาพ JPEG ไม่ได้มีความลึกบิตในรูปแบบ JPEG แม้ว่าตัวเข้ารหัส / ตัวถอดรหัส JPEG เริ่มต้นด้วย / สิ้นสุดด้วย 24 บิต ภาพแรสเตอร์

ปัจจัยสำคัญอื่น ๆ ที่เกี่ยวข้องในการประหยัดไฟล์ JPEG เป็นสีประเภทย่อยสุ่มตัวอย่าง ใน JPEG คุณมีตัวเลือกในการลดความเข้มของแนวนอนหรือทั้งความละเอียดของสี (Pr และ Pb) ในแนวนอนและแนวตั้งที่สัมพันธ์กับช่องทางความสว่าง (ความสว่าง) เมื่อทำการคลายการบีบอัดช่องสีจะถูกแก้ไขและในเรื่องการถ่ายภาพส่วนใหญ่จะไม่สร้างความแตกต่างอย่างมาก

นี่เป็นบทสรุปคร่าวๆว่าภาพจะเปลี่ยนเป็น JPEG ได้อย่างไร

  1. ค่า RGB ถูกแปลงเป็นค่า Y, Pb, Pr พื้นที่สี YPbPr เหมาะสำหรับการบีบอัดที่มีประสิทธิภาพดีกว่าเนื่องจากเก็บข้อมูลความสว่างซึ่งให้รายละเอียดมากที่สุดในช่องสัญญาณเดียว การแปลงนี้เป็นการดำเนินการทางคณิตศาสตร์อย่างง่ายซึ่งสามารถย้อนกลับได้อย่างสมบูรณ์แบบนอกเหนือจากหากมีข้อผิดพลาดในการปัดเศษ

  2. หากใช้การสุ่มสีใด ๆ (ในคำอื่น ๆ ใช้โหมดอื่นนอกเหนือจาก 4: 4: 4) ดังนั้นความละเอียดในแนวตั้งและ / หรือแนวนอนของช่อง Pb และ Pr จะลดลงครึ่งหนึ่งเท่านั้น ดังนั้นช่องเหล่านี้จะมีขนาดพิกเซลแตกต่างกันไปตามช่องสัญญาณความสว่าง สิ่งนี้นำไปสู่การสูญเสียความละเอียดอย่างถาวรในช่องสี

  3. สำหรับแต่ละช่องภาพจะถูกแบ่งออกเป็นบล็อก 8 พิกเซลคูณ 8 พิกเซลซึ่งให้ 64 ค่าเชิงเส้นสำหรับแต่ละบล็อกดังกล่าวในแต่ละช่อง หากช่องสัญญาณไม่ได้มีหลายคูณ 8 พิกเซลในแต่ละมิติดังนั้นขอบพิกเซลจะถูกทำซ้ำ (และจะถูกโยนออกมาเมื่อคลายการบีบอัด - ดังนั้นการบีบอัด JPEG จะมีประสิทธิภาพมากขึ้นเมื่อใช้มิติที่ทวีคูณ 8 พิกเซลหรือ 16 ถ้าคุณพิจารณา ในการย่อยตัวอย่างสี)

  4. ค่า 64 ในแต่ละบล็อคได้รับการแปลงจากโดเมนอวกาศเป็นโดเมนความถี่ในกรณีนี้เรียกว่าการแปลงโคไซน์แบบแยก คุณมี 64 สัมประสิทธิ์แต่ละอันแทนแอมพลิจูดของแผนที่ความถี่ที่เฉพาะเจาะจงเหนือพื้นที่ที่บล็อกนั้นถ่ายไว้ ค่าแรกคือความถี่ต่ำสุดซึ่งเป็นค่าเฉลี่ยของพิกเซลทั้งหมดอย่างมีประสิทธิภาพจนถึงค่าสุดท้ายซึ่งอธิบายส่วนประกอบความถี่สูงสุดของบล็อก ค่าก่อนหน้านี้เบี่ยงเบนไปมากขึ้นและมีความสำคัญต่อรูปลักษณ์ของภาพสุดท้ายมากกว่าค่าในภายหลังในบล็อก การดำเนินการนี้สามารถย้อนกลับได้อย่างสมบูรณ์แบบตราบใดที่คุณใช้ความแม่นยำเพียงพอ

  5. จากนั้นก็มีขั้นตอนการควอนตัมซึ่งค่าสัมประสิทธิ์ 64 ค่าที่คุณได้รับในขั้นตอนก่อนหน้านั้นถูกหารด้วยจำนวนบางส่วน (เรียกว่าปัจจัยการควอนตัม) และส่วนที่เหลือจะถูกโยนออกไป นี่คือจุดที่ความแม่นยำของตัวอย่างได้รับผลกระทบมากที่สุด แต่เป็นที่ที่คุณประหยัดพื้นที่ได้มากจาก JPEG เทียบกับการบีบอัดแบบไม่สูญเสีย เนื่องจากทุกอย่างอยู่ในโดเมนความถี่นับตั้งแต่การแปลงครั้งก่อนการสูญเสียความถูกต้องนี้จึงเป็นวิธีที่ดีที่สุดในการรักษาคุณภาพของภาพการรับรู้มากกว่าการลดความลึกของบิต / ความถูกต้องของพิกเซลก่อนการเปลี่ยนแปลงนี้ การย้อนกลับของขั้นตอนนี้คือการคูณด้วยจำนวนเดียวกับที่คุณหารค่าสัมประสิทธิ์ด้วย แต่แน่นอนว่าเมื่อคุณโยนเศษที่เหลือออกไปคุณจะสิ้นสุดลงด้วยค่าความแม่นยำที่น้อยลง ส่งผลให้สูญเสียคุณภาพอย่างถาวร

  6. หลังจากการหาปริมาณนี้เป็นเรื่องปกติของหลาย ๆ ค่าสัมประสิทธิ์ที่สำคัญน้อยกว่าจึงเป็นศูนย์ดังนั้นค่าเหล่านี้จะถูกโยนออกมา จากนั้นรูทีนการเข้ารหัสแบบยาวที่ไม่สูญเสียจะเข้ารหัสสัมประสิทธิ์ที่เหลืออยู่ทั้งหมดในวิธีที่มีประสิทธิภาพแม้ว่าแต่ละอันอาจใช้จำนวนบิตที่แตกต่างกัน

เป็นไปไม่ได้ที่จะบอกว่าปัจจัยเชิงปริมาณที่แน่นอนนั้นเทียบเท่ากับความลึกบิตที่แน่นอนเนื่องจากการวัดเชิงปริมาณไม่ให้แถบเช่นเมื่อคุณลดความลึกของบิต แต่แทนที่จะให้การสูญเสียการรับรู้โดยรวมโดยเริ่มจากส่วนที่คุณสังเกตเห็น น้อยเพราะมันมีความกว้างต่ำสำหรับความถี่ของมัน


2
ฉันคิดว่าสมองของฉันเพิ่งระเบิด
Nick Bedford

Chroma-subsampling ไม่เพียง แต่ส่งผลให้ "การสูญเสียความละเอียด" มันแนะนำสิ่งประดิษฐ์ที่เห็นได้ชัดเจนมากโดยเฉพาะในช่องสีแดง
Mark Ransom

@Mark Ransom ศาสนวัตถุเหล่านั้นไม่มีอะไรมากไปกว่าผลของการลดความละเอียดในช่องสีและการแก้ไขที่จำเป็นสำหรับการทำเช่นนั้นหลังจากการคลายการบีบอัด ไม่ควรสร้าง "สิ่งประดิษฐ์ที่สังเกตได้" นอกเหนือจากที่เกิดจากการเบลอของความละเอียดแม้ว่าอาจมีตัวถอดรหัสบางตัวที่ขันสกรูการแก้ไขนี้หรือทำการแก้ไขที่ใกล้เคียงกับเพื่อนบ้านได้ง่ายมากทำให้เกิดการบล็อกซึ่งค่อนข้างชัดเจนสำหรับสีแดง รายละเอียดเกี่ยวกับสีดำ (หรือม่วงแดงน้ำเงินเป็นต้น) นี่เป็นปัญหาที่พบบ่อยในเครื่องเล่นดีวีดีรุ่นแรก ๆ
thomasrutter

5
ฉันไม่คิดว่าฉันเคยเห็นคำอธิบายที่ดีขึ้นและเข้าใจง่ายขึ้นเกี่ยวกับการบีบอัดภาพ jpeg หรือการสูญเสียภาพจริงๆ definite +1
jay.lee

ขออภัยฉันไม่ได้ตั้งใจจะบอกเป็นนัยว่าการสุ่มตัวอย่างเป็นสาเหตุของสิ่งประดิษฐ์ เป็นเพียงข้อผิดพลาดที่มีอยู่จากการทำให้เป็นจำนวนมากขึ้นประมาณ 2 เท่าทำให้พวกเขามองเห็นได้มากขึ้น ฉันคิดว่ามันเป็นสิ่งสำคัญที่จะรู้ว่าผลกระทบที่เห็นได้จากการย่อยเป็นมากกว่าความสับสนเล็กน้อยที่เพิ่มเข้ามา
Mark Ransom

1

การเป็นตัวแทนของ chroma (Cb Cr) ในช่องแยกจาก luma (Y) มีผลในเชิงบวกต่อการบีบอัด ข้อมูลที่มองเห็นได้ส่วนใหญ่อยู่ในช่อง luma ดวงตาของมนุษย์ยอมรับทั้งความละเอียดเชิงพื้นที่ที่ต่ำกว่าและการวัดปริมาณเชิงรุกในช่องสัญญาณ chroma ดังนั้นรูปภาพที่ถูกบีบอัดอย่างจริงจังอาจทำให้สิ้นเปลืองเนื้อที่ไฟล์สำหรับ Chroma ประมาณ 10% ส่วนที่เหลือสำหรับ luma และยังดูดีอยู่

ในตอนท้ายของวันมันยังคงสูญเสียการบีบอัด


-1

ประมาณ 8 บิตสำหรับแต่ละช่อง แต่มีหลายวิธีที่แตกต่างกันเล็กน้อยในการทำ โดยมีรายละเอียดในบทความวิกิพีเดีย YCbCr


นี่คือที่ระบุไว้ในคำถาม ระบุคำตอบโดยละเอียดเพิ่มเติม
Nick Bedford

@Nick "นี่" ถูกระบุไว้ในคำถามที่ไหน? คำถามดังที่กล่าวในขณะนี้กล่าวว่า "ในพื้นที่สี YCbCr สำหรับภาพ JPEG 24 บิตบิตจะกระจายอย่างไร" ฉันได้กล่าวว่าพวกเขาเผยแพร่อย่างไรโดยสมมติว่าเป็นใครก็ตามที่เข้าใจคำถามได้ว่าช่องนั้นคือ Y, Cb และ Cr คำตอบของฉันเป็นบทสรุปที่ถูกต้องของบทความ Wikipedia นโยบาย SE คือการให้บทสรุปแทนที่จะคัดลอกวัสดุขายส่ง (แม้ว่าฉันจะยอมรับได้ง่าย แต่ก็มีตัวอย่างเส้นเขตแดนของการเสนอราคาแบบยาว ๆ ในเว็บไซต์นี้)
whuber

ฉันคิดว่าคำตอบประเภทนี้แม้ว่าจะไม่ดีเท่าคำอธิบายที่สมบูรณ์ แต่ก็ดีกว่าคำที่ตัดและวางจากวิกิพีเดียหรือแม้แต่การถอดความบทความ Wikipedia ทั้งหมด หากวิกิพีเดียดีการบอกผู้คนเกี่ยวกับสิ่งนี้จะเป็นประโยชน์ และถ้านั่นคือทั้งหมดที่คำตอบของคุณมีส่วนร่วมการเป็นคนตรงไปตรงมาและเพียงแค่ให้ข้อมูลสรุปอย่างรวดเร็วและลิงก์ก็เป็นสิ่งที่ถูกต้อง
โปรดอ่านโปรไฟล์ของฉัน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.