วันนี้เรามาพูดถึงบทความเกี่ยวกับเรื่องของจอมอนิเตอร์กันบ้าง ช่วงนี้ผมมีความสนใจในเรื่องเกี่ยวกับมอนิเตอร์เป็นพิเศษ เพราะเป็นครั้งแรกที่ผมเคยเจอเหตุการณ์ Screen Tearing! (จริงๆ อาจจะเคยเจอมาก่อนหน้านี้ แต่ผมไม่รู้ว่ามันคือ Screen Tearing นี่แหละ) ดังนั้น ในบทความนี้เราจะมาดูวิธีแก้ปัญหากัน
ก่อนที่จะพูดถึงรายละเอียดต่างๆ ผมเกริ่นเล็กน้อยเกี่ยวกับเรื่อง Refresh rate ของจอมอนิเตอร์ครับ
ถ้าพูดง่ายๆ ในสมัยก่อนเราจะเรียก Refresh Rate ว่า การกระพริบของภาพบนหน้าจอ (ใช้กันมาตั้งแต่สมัยจอ CRT) ถ้ายิ่งมีค่ามาก จะทำให้ภาพคมชัดมากขึ้น
ค่า Refresh Rate จะเป็นตัวบ่งบอกความสามารถในการแสดงภาพขึ้นจอมอนิเตอร์ ว่าใน 1 วินาที สามารถแสดงภาพที่การ์ดจอส่งมาให้ได้เท่าไร ส่วน Frame Rate จะหมายถึงตัวการ์ดจอ ว่าใน 1 วินาที สามารถประมวลภาพออกมาได้กี่เฟรม ถ้าใน 1 วินาที แสดงภาพได้หลายเฟรม ก็จะทำให้ภาพเคลื่อนไหวทำได้ราบลื่นขึ้น (คล้ายกับการวาดภาพเคลื่อนไหวลงในสมุด แล้วเปิดกระดาษเร็วๆ) – จริงๆ ทั้งสองคำ เป็นการให้นิยามเดียวกัน แต่ใช้กับอุปกรณ์คนละแบบ
Refresh Rate
Frame Rate
เพราะฉะนั้น ถ้าอยากให้ภาพเคลื่อนไหว ที่การ์ดจอสามารถทำได้ แสดงบนมอนิเตอร์อย่างคมชัดและราบลื่น ในทางทฤษฎี Refresh Rate ก็ควรจะเท่ากับ Frame Rate แต่จริงๆ แล้ว มันไม่ได้เป็นเช่นนั้น
เพราะจอ LCD ส่วนใหญ่จะมีค่า Refresh Rate อยู่ที่ 60 Hz (รอบต่อวินาที) ส่วนการ์ดจอ จะมี Frame Rate ที่แตกต่างกันไป ขึ้นอยู่กับว่าข้อมูลที่ส่งมาเพื่อให้แปลงเป็นภาพ มีความซับซ้อนเพียงใด ค่า Frame Rate จึงอาจแตกต่างได้ตั้งแต่ 1 fps (Frame per second) ถึงหลายร้อยเลยทีเดียว
สมมุติว่าจอเรารับได้ 60 Hz แต่การ์ดจอสามารถส่งภาพมาได้ 144 เฟรมใน 1 วินาที ภาพที่ส่งมายังจอ จะส่งมากเร็วเกินไป หรือพูดง่ายๆ คือ จอไล่ภาพแรกไม่ทัน ภาพให้ก็มาแล้ว จึงทำให้เกิด Screen Tearing หรือภาพขาด
นี่จึงเป็นที่มาของ V-sync (Vertical Synchronization) เพื่อช่วยลดอาการภาพขาดครับ
อย่างที่ผมบอกไว้ในตอนแรก ว่าผมเคยประสบปัญหานี้ด้วยตนเอง เนื่องจากว่าตอนเล่นเกม Injustice 2 ผมไปกดปิด V-sync แล้วจู่ๆ ภาพในเกมก็ดูขาดๆ ไม่ต่อกัน แขนฮีโร่ขาดครึ่ง ไม่เป็นชิ้นเดียวกันอะไรแบบนี้
ก็เลยได้ลองศึกษา พบว่า V-sync ถูกออกแบบมาให้ทำงานควบคุมปริมาณของภาพที่จะส่งมายังจอมอนิเตอร์ ให้มี Frame Rate = Refresh Rate ดังนั้น ภาพที่ส่งมาจาการ์ดจอ จะเข้ามาในจอภาพด้วยอัตราที่เหมาะสม ลดอาการ Screen Tearing ได้ครับ แต่ก็ต้องแลกมาด้วย Frame Rate ที่มีค่าไม่เกิน 60 fps
แต่ทีนี้ มันก็ยังมีปัญหาอยู่บ้าง เนื่องจากว่าจะต้องมีการรอให้จอแสดงผลให้เรียบร้อยก่อน แล้วค่อยภาพถัดไป ผลที่ได้คือมีอาการ Lag เห็นได้ชัดเมื่อทำการคลิกเมาส์ หรือกดปุ่มออกคำสั่ง มันจะมีการดีเลย์เล็กน้อย (Screen Stuttering)
อีกทั้งช่วงที่มีการแสดงผลกราฟิกหนักๆ อย่างเช่น ฉากบวกกันใน DOTA 2 ซึ่งโดยปกติแล้ว Frame Rate ในการ์ดจอจะมีค่าลดลง และด้วย Frame Rate ของภาพที่ขึ้นจอมันมีน้อยอยู่แล้ว (60 fps) เมื่อเข้าฉากบวกแบบนี้ Frame Rate อาจลดลงได้ถึง 50% เลยทีเดียว
การแก้ปัญหาเรื่องนี้คือ การนำเทคโนโลยี Freesync (AMD) และ G-sync (G-sync) เข้ามาช่วย
เทคโนโลยีทั้ง 2 แบบนี้ ถูกออกแบบขึ้น เพื่อให้การ์ดจอสามารถสื่อสารกับมอนิเตอร์ เพื่อให้ Refesh Rate = Frame Rate ตามที่การ์ดจอส่งภาพออกมา และช่วยให้ผู้ผลิตจอมอนิเตอร์ สามารถผลิตจอที่มี Refresh Rate สูงขึ้นได้ เพื่อการเล่นเกมที่เหนือกว่า
ในเทคโนโลยีนี้ ไม่ว่าการ์ดจอจะสร้างเฟรมขึ้นมาเท่าไร ก็จะส่งขึ้นจอไปเท่านั้น (อย่างไรก็ตาม มันจะไม่เกินค่า Refresh Rate ของมอนิเตอร์นะครับ) และการที่จะใช้เทคโนโลยี Freesync และ G-sync ได้ ก็จะต้องใช้จอมอนิเตอร์ และการ์ดจอที่รองรับครับ
แล้วควรเปิด V-sync ไหม ?
ตรงนี้ผมคิดว่ามันขึ้นอยู่กับความชอบของเพื่อนๆ นะ อย่างกรณีของผม เวลาผมเล่น Injustice 2 แล้วไม่เปิด V-sync ผมจะหงุดหงิดมาก เพราะภาพมันขาดๆ ไม่สวยเลย แต่ถ้าเล่น DOTA 2 อันนี้ผมจะปิด V-sync ไป เพราะเวลาคลิกเมาส์ หรือกดสกิล มันมีอาการดีเลย์ขึ้น ซึ่งทำให้การเล่นเกมมันไม่มีประสิทธิภาพครับ
ตรงนี้ก็คงพอจะช่วยให้เพื่อนๆ เข้าใจในเรื่องของการแก้ปัญหา Screen Tearing ได้มากขึ้นนะครับ แม้ผมจะลงรายละเอียดไม่เยอะมาก แต่ก็นำข้อมูลมาให้พอได้ทราบกันบ้าง ถ้าเพื่อนๆ อยากสอบถามเพิ่มเติม ก็คอมเมนต์บนหน้าเพจได้เลยนะครับ
ขอขอบคุณข้อมูลจาก
https://www.maketecheasier.com/what-is-vsync/
https://www.pcworld.com/article/229024/computers/geek101-vsync.html
You must be logged in to post a comment.