เคอร์เซอร์ของฉันขาวกว่าสีขาวอย่างไร?


21

ฉันเพิ่งสังเกตเห็นเคอร์เซอร์ของฉันขาวกว่าพื้นหลังสีขาว (บริสุทธิ์ 0xFFFFFF) ตอนแรกฉันคิดว่ามันเป็นภาพลวงตาที่ถ่ายภาพหน้าจอแสดงให้เห็นว่าทั้งพื้นหลังและเคอร์เซอร์อยู่ที่ 0xFFFFFF จากนั้นฉันถ่ายรูปเคอร์เซอร์และมันแสดงให้เห็นถึงความแตกต่างของความสว่างอย่างชัดเจน:

ภาพถ่ายของเคอร์เซอร์

ฉันวางฟิลเตอร์ mosaic ลงบนภาพเพื่อดูความสว่างเฉลี่ยดีกว่า:

ภาพถ่ายของเคอร์เซอร์พร้อมโมเสคฟิลเตอร์

ลูกศรด้านในมีสีเทาประมาณ 191 (0xBF) และพื้นหลังมีสีเทาประมาณ 177 (0xB1) หมายถึงสีขาวของเคอร์เซอร์จะสว่างกว่าสีขาวบริสุทธิ์ของพื้นหลังประมาณ 8%

ฮาร์ดแวร์ใดที่ทำสิ่งนี้และอย่างไร ข้อมูลสีถูกส่งผ่านมากกว่า 8 บิตต่อช่องหรือไม่?

คอมพิวเตอร์คือ Windows XP ที่มีการ์ดกราฟิก NVIDEA GeForce 8500 GT เชื่อมต่อกับทีวี Samsung 5100 ผ่านสาย HDMI

ภาพอื่น:

สองเคอร์เซอร์และสี่เหลี่ยมจัตุรัส

เคอร์เซอร์ฮาร์ดแวร์หนึ่งอันหนึ่งภาพสกรีนช็อตของเคอร์เซอร์ฮาร์ดแวร์และ 16x16 สแควร์ของแต่ละค่าสเกลสีเทาจาก 0 ถึง 0xFF ในบล็อก 2x2

เคอร์เซอร์สองตัวและสี่เหลี่ยมที่แรเงาพร้อมตัวกรอง mosaic

เหมือนกับรูปภาพก่อนหน้า แต่ใช้ตัวกรอง mosaic ควรชัดเจนว่าเป็นเคอร์เซอร์จริงและเป็นภาพหน้าจอของเคอร์เซอร์ในภาพถ่าย ความสว่างในครั้งนี้คือ 185 และ 170 ยังคงแตกต่างกันประมาณ 8% การใช้เครื่องมือเลือกสีสีที่อยู่ในรูปภาพ 170 คือ 0xFFFFFF บนหน้าจอ ฉันไม่สามารถใช้เครื่องมือเลือกสีบนเคอร์เซอร์ได้เพราะมันจะเก็บตัวอย่างสีใต้เคอร์เซอร์โดยตรง


คุณเล่นกับการตั้งค่าความสว่างหรือความคมชัดบนจอภาพของคุณหรือไม่?
Ron

1
หากภาพของปัญหาข้างต้นถูกจับโดยใช้รายการกล้องใด ๆ ที่ประมวลผลภาพ sencor ดิบ (พวกเขาทั้งหมดทำแม้ในขณะที่เก็บไว้ในรูปแบบไฟล์ดิบ) จากนั้นผลภาพที่ได้รับการแก้ไขโดยการประมวลผลของข้อมูล sencor กล้อง หากต้องการแก้ไขปัญหานั้นจะต้องมี "การควบคุม" บนพื้นหลังสีขาวมีภาพของเคอร์เซอร์ (ไม่ใช่เคอร์เซอร์แยกต่างหากที่แสดงผล) และสังเกตว่ามันแตกต่างกันอย่างไร โดยใช้วิธีการต่าง ๆ และใช้การควบคุมคุณสามารถสันนิษฐานได้ว่ามันเกิดขึ้นที่ไหน
Psycogeek

@ Psycogeek ฉันเดาว่าซอฟต์แวร์ในสายตาของฉันกำลังทำสิ่งเดียวกันอยู่แล้ว ฉันจะเข้าถึงข้อมูลดิบของตาได้อย่างไร แม้ว่าอย่างจริงจังสิ่งเดียวที่ฉันทำกับภาพคือการครอบตัดให้เป็นบิตที่เกี่ยวข้อง ฉันสามารถอัปโหลดภาพของภาพหน้าจอของเคอร์เซอร์ด้วยเคอร์เซอร์จริงที่อยู่ติดกับมัน แต่มันจะไม่ส่องสว่างมากกว่าที่ฉันได้อธิบายไปแล้ว ความสว่าง (ตามที่ฉันเข้าใจก่อนหน้านี้) อยู่ระหว่าง 0 ถึง 255 (0xFF) ต่อช่องสี หากสีขาวด้านในเคอร์เซอร์อยู่ในระดับเดียวกันมันจะประมาณ 275 (0x113) และมีที่ว่างเพียง 8 บิตในการเข้ารหัส
CJ Dennis

@ user2714915 ฉันยังไม่ได้ปรับความสว่างหรือความคมชัดทุกที่ ! นั่นไม่ได้เป็นหัวใจของคำถามของฉัน: เคอร์เซอร์จะสว่างกว่าสีที่สว่างที่สุดที่สามารถเข้ารหัสเป็น 8 บิตได้อย่างไรเมื่อโหมดกราฟิกของฉันคือ 8 บิตต่อสีของช่องสัญญาณ
CJ Dennis

@CJDennis: โปรแกรมใดบ้างที่ได้รับผลกระทบ ดูเหมือนว่าปัญหาการปรับเทียบแกมม่าสำหรับฉัน
James P

คำตอบ:


10

ดังที่ได้กล่าวไว้ในคำตอบของ Psychogeek นี่เป็นปัญหาของการตั้งค่าโปรไฟล์สีโดยระบบปฏิบัติการ

แอปพลิเคชั่นโปรไฟล์สีสามารถใช้งานได้กับระบบปฏิบัติการการ์ดแสดงผลและฮาร์ดแวร์จอแสดงผล

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

เคอร์เซอร์จะถูกส่งไปยังการ์ดวิดีโอแยกจากส่วนที่เหลือของข้อมูลการแสดงผลและใช้การ์ดวิดีโอผสมในภายหลังในระหว่างการเรนเดอร์ก่อนที่จะถูกส่งไปยังจอแสดงผล

ในระดับง่าย:

[Cursor Draw]   --   --   --   --   --   --   --
                                               ˅
[Windowing] --> [OS Profile] --> [Video Driver] --> [Video Card] --> [Hardware Profile] --> ...

สกรีนช็อตไม่ได้ใช้โพรไฟล์สีของระบบปฏิบัติการกับข้อมูล "shot" เนื่องจากถูกจับที่หน้าจอ โดยทั่วไปการจับภาพหน้าจอจะไม่แสดงเคอร์เซอร์เพราะจะจับภาพได้แม้กระทั่งก่อนที่จะใช้โปรไฟล์ OS อย่างไรก็ตามเครื่องมือบางอย่าง (ซึ่งฉันถือว่าคุณใช้) ในการจับภาพหน้าจอจะผสมเคอร์เซอร์ไว้เหนือภาพในลักษณะเดียวกับที่การ์ดจอทำ เนื่องจากระดับเคอร์เซอร์และพื้นหลังสีขาวมีทั้ง 100% ภาพหน้าจอจึงมีระดับสีขาวเหมือนกันสำหรับทั้งสอง

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


ฉันยอมรับว่าเคอร์เซอร์เห็นได้ชัดเจนขึ้น ไม่รบกวนฉันฉันแค่อยากรู้ว่ามันเป็นไปได้ทางเทคนิคอย่างไร HDMI มีมากกว่า 8 บิตต่อช่องสัญญาณหรือเป็นส่วนที่เหลือของภาพที่ถูกบีบอัด (เช่นในการบีบอัดเสียงไม่ใช่การบีบอัดข้อมูลดิจิตอล) เพื่อให้บางระดับเทียบเท่ากับระดับที่อยู่ใกล้เคียงหรือไม่
CJ Dennis

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

en.wikipedia.org/wiki/Uncompressed_videoกล่าวว่า HDMI อาจเป็น 24, 30, 36 หรือ 48 บิตต่อพิกเซล (8, 10, 12 หรือ 16 บิตต่อช่อง) ดังนั้นถ้ามันถูกส่งเป็น 10 บิตต่อช่องในระบบของฉันสีขาว "บริสุทธิ์" อาจเป็น 0x3B3 ต่อช่องในขณะที่สีขาวของเคอร์เซอร์คือ 0x3FF สิ่งนี้จะช่วยให้ระดับ 256 8 บิตแตกต่างอย่างชัดเจนในขณะที่ให้พื้นที่สำหรับสีที่สว่างเป็นพิเศษสำหรับเคอร์เซอร์ ระดับที่อยู่ติดกันส่วนใหญ่จะมีความแตกต่างของ 0x4 แต่บางส่วนจะมีเพียง 0x3 เท่านั้น
CJ Dennis

หากคุณตั้งค่าการ์ดวิดีโอของคุณเป็นช่องสัญญาณ 10 บิตแสดงว่าเป็น 10 บิต แต่ไม่น่าจะเป็นเช่นนั้น
Richie Frame

ฉันพบการตั้งค่าในแผงควบคุม NVIDIA ที่ให้ฉันปรับความสว่างได้ มันมีผลกับภาพหน้าจอเท่านั้นไม่ใช่เคอร์เซอร์ ฉันสามารถลดความสว่างลงได้จนกระทั่งสีขาวเดาได้ว่าประมาณ 0xC0 ทำให้เคอร์เซอร์โดดเด่นจริงๆ! ฉันไม่เห็นอะไรเกี่ยวกับบิตต่อการส่งสัญญาณ
CJ Dennis

1

คำตอบนี้เริ่มต้นด้วยการวิเคราะห์ว่าทำไมสิ่งต่าง ๆ จึงไม่ใช่แบบดิจิทัล 1: 1 และลงท้ายด้วยวิธีที่เป็นไปได้ในการเปลี่ยนแปลงสิ่งต่าง ๆ ตามคำถามที่แท้จริงของคุณ

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

ในกรณีนี้เคอร์เซอร์จะ (เป็นไปได้) รายการที่แสดงผลฮาร์ดแวร์ที่ซ้อนทับในฮาร์ดแวร์การ์ดแสดงผล สิ่งแรกที่ต้องพิจารณาหรือพยายามปรับเปลี่ยนคือโปรไฟล์มอนิเตอร์และหรือโปรไฟล์สีที่ใช้กับระบบปฏิบัติการ พบโปรไฟล์สีในแผงควบคุมรายการแผงควบคุมทั้งหมดการจัดการสีในนั้นคุณจะพบโปรไฟล์สีที่เปลี่ยนสีก่อนที่จะเข้าสู่จอภาพ
โปรไฟล์สามารถปิดการใช้งานเพื่อให้คุณสามารถสังเกตเห็นผลกระทบที่มี

การปรับในซอฟต์แวร์การ์ดวิดีโอ เดสก์ท็อป, 3D และวิดีโอวาดโดยตรงสามารถควบคุมได้แม้ว่าสิ่งเหล่านี้ไม่ได้ถูกปรับในซอฟต์แวร์การ์ดแสดงผลอาจเป็นได้ว่าเมื่อตั้งค่าเป็น 0 0 0 ยังคงมีการประมวลผลบางอย่างอยู่ คุณสามารถลองใช้เพื่อจับคู่เคอร์เซอร์โอเวอร์เลย์ถ้ามีเหตุผลที่แท้จริงที่จะรบกวนมัน

การ์ดแสดงผลซ้อนทับเคอร์เซอร์ที่สร้างการแสดงผลและไม่ได้ใช้พารามิเตอร์เดียวกันสำหรับส่วนที่เหลือของพื้นหลังและนั่นเป็นวิธีการทำงาน

- อิงตามรูปควบคุมไม่มีคำถามที่เหลือสำหรับคำถามนี้ -

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

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

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

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

การเลือกสีบนเดสก์ท็อปจะแสดงสีของพิกเซล (หรือพิกเซล) ที่มีอยู่ให้ผู้ใช้ทราบข้อเท็จจริงเกี่ยวกับสิ่งที่โปรแกรมกำลังแสดง รูปสีมาก่อนโปรไฟล์สีใด ๆ จะปรับเอาท์พุท ดังนั้นการเลือกสีเป็นวิธีที่ดีในการค้นพบสีจริง จากนั้นก็ยังผ่านการประมวลผลอีกครั้ง

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

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