ทำให้ภาพชัดขึ้นด้วย Deep learning เบื้องหลังความคมชัดและลื่นไหลของ DLSS 2.0

Krittiphong Manachamni
Super AI Engineer
Published in
2 min readJan 29, 2021

--

นับเป็นเวลาเกือบ 2 ปีนับจากที่ Nvidia เปิดตัวเทคโนโลยี DLSS ในงาน CES2019
ซึ่งเป็นการใช้ Deep Learning เข้ามาช่วย render พื้นผิวและลดรอยหยักเพื่อลดการกินทรัพยากรและช่วยเพิ่ม Frame rates ได้อย่างมาก แต่ไม่ได้รับความนิยมเพราะภาพจากการ render แบบปกติมีรายละเอียดที่ดีกว่า ก่อนจะพูดถึง DLSS 2.0 หรือเบื้องลึกของ DLSS ว่าทำไมถึงเป็นทางเลือกที่น่าสนใจ ผมจะพูดถึงปัญหาในการ render ภาพปกติก่อน

ปัญหาในการ render ภาพปกติ

ปกติแล้วเวลา render ภาพจะมีปัญหาการทำให้ขอบของวัตถุดูเรียบ เพราะ pixel ที่เป็นหน่วยแสดงผลมีลักษณะเป็นสี่เหลี่ยม การจะ render ภาพที่มีความเอียงจะแสดงผลแค่ครึ่ง pixel หรือบางส่วนของ pixel ก็ไม่ได้ วิธีที่ง่ายที่สุดคือ render pixel นั้นให้เพิ่มขึ้นจากความละเอียดปกติแล้วเอามาเฉลี่ยให้ได้ความละเอียดที่ต้องการ เช่น ต้องการแสดงผลแบบ full hd ก็ไป render ภาพที่ 4K แล้วเอามาย่อความละเอียดให้เหลือแค่ full hd เท่านี้ก็จะได้ภาพที่มีกรอบที่สมจริงมากขึ้น หรือเรียกว่า Supersampling

สองภาพนี้เป็นเส้นตรงเอียง แต่สังเกตว่าเมื่อซูมเข้าไปภาพขวาจะดูมีความต่อเนื่องของเส้นตรงมากกว่า Reference: https://www.displayninja.com/wp-content/uploads/2018/04/best-anti-aliasing.jpg

แต่ข้อเสียของวิธีนี้คือการ์ดจอทำงานหนักมาก ถึงแม้จะมีการเสนอให้ render เฉพาะขอบโดยใช้ edge detection หาขอบก่อนแล้วทำ supersampling เฉพาะส่วนนี้ก็ยังกินทรัพยากรหนักอยู่ดี จึงก่อกำเนิดแนวคิดที่เรียบง่าย(แต่ค่อนข้างบ้าพลังอยู่) นั่นก็คือ ทำ supersampling ให้เยอะๆบน supercomputer แล้วให้ Deep learning model จำมาสิ!

ก่อกำเนิด DLSS 2.0

อย่างที่กล่าวไปก่อนหน้า DLSS ตัวแรก render ภาพโดยจำลองการ supersampling ด้วย Deep learning neural network โดยอาศัยประสิทธิภาพของ Tensor Core ที่รองรับการทำงานด้าน AI ได้ดี แต่ข้อเสียที่ไม่ได้พูดถึงคือ
1.ผู้ทำเกมจำเป็นต้องส่งเกมไปให้ nvidia render เพื่อสร้างโมเดลเฉพาะสำหรับเปิดใช้ dlss ในเกมนั้นๆ
2.หากไม่มีการ์ดจอ RTX series ซึ่งมี Tensor Core อยู่ภายใน (ฮั่นแน่ ขายของ) ก็ไม่สามารถใช้งานได้
3.ความละเอียดในบางจุดยังสู้การ render แบบปกติไม่ได้

ซึ่ง DLSS 2.0 เกิดมาเพื่อแก้ไขปัญหาข้อแรกและเพิ่มประสิทธิภาพในข้อสาม โดยการ render เพียง 1/4 ของ pixel ที่ความละเอียดปกติแล้วใช้ Temporal feedback เพื่อเพิ่มความคมชัดของภาพ โดยจากในงาน GTC 2020 ซึ่งเป็นงานสัมนาวิชาการของ Nvidia ได้อธิบายว่า DLSS 2.0 มี 3 โหมด

  • Quality ทำ upsampling เป็น 2 เท่า
  • Balanced ทำ upsampling เป็น 3 เท่า
  • Performance ทำ upsampling เป็น 4 เท่า
จะเห็นว่าวิธีดังกล่าวกินทรัพยากรน้อยลงกว่าครึ่งนึงเมื่อเทียบกับการไม่เปิด DLSS Reference: https://www.youtube.com/watch?v=tMtMneugt0A
จะเห็นว่า Frame rates โดยรวมเพิ่มขึ้นกว่า 3 เท่า เมื่อเปิด DLSS 2.0 แล้ว Reference: https://www.youtube.com/watch?v=tMtMneugt0A

พอผมได้เห็นรูปนี้เรียกได้ว่าประทับใจกับการเก็บรายละเอียดของ DLSS 2.0 มาก แต่ก็ยังมีความผิดพลาดในการ render ใบพัดออกมาเบี้ยวๆอยู่

Reference: https://www.nvidia.com/en-us/geforce/news/nvidia-dlss-2-0-a-big-leap-in-ai-rendering/

สรุปเรื่อง DLSS 2.0

DLSS 2.0 เพิ่มประสิทธิภาพโดยการ render เพียง 1/4 ของ pixel ที่ความละเอียดปกติแล้วใช้ Temporal feedback เพื่อเพิ่มความคมชัดของภาพ ซึ่งกินทรัพยากรน้อยกว่าครึ่งและเพิ่ม frame rates ถึง 3 เท่า

ในบทความต่อไปผมจะลงรายละเอียดเชิงลึกว่า DLSS2.0 นั้นสร้างขึ้นมาได้ยังไง มีการปรับแต่งหรือเทคนิคที่น่าสนใจอะไรบ้างเพื่อให้คนที่อยากอ่านเชิงลึก

References

https://developer.nvidia.com/dlss

https://www.sanook.com/game/1023769/

https://www.nvidia.com/en-us/geforce/news/nvidia-dlss-2-0-a-big-leap-in-ai-rendering/

http://www.quickpconline.com/pc/tech_news/nvdia-dlss-2-0/

https://www.youtube.com/watch?v=tMtMneugt0A

--

--

Krittiphong Manachamni
Super AI Engineer

1-st year undergraduate student, interested in AI and Traveling