Announcement

Collapse
No announcement yet.

ขั้นตอนอันน่าทึ่งเบื้องหลัง FSR (FidelityFX Super Resolution)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ขั้นตอนอันน่าทึ่งเบื้องหลัง FSR (FidelityFX Super Resolution)

    แทบทุกคนในที่นี้น่าจะเคยได้ยิน DLSS (Deep-Learning Super Sampling) ของ NVidia กันมาแล้ว มันคือเทคนิคการเพิ่มความละเอียดของภาพ (เช่นอัพสเกลจาก 720p ไป 4k ไรงี้) เพื่อให้ได้รายละเอียดคมชัดเสมือนกับว่าภาพนั้นเรนเดอร์ด้วยความละเอียดสูงจริงๆ (Native Resolution) เป้าหมายหลักของมันคือเอาไปชดเชยข้อเสียของเทคโนโลยี Ray Tracing (ซึ่งให้ภาพที่มีแสงเงาสมจริง แต่ประมวลผลหนักจนเฟรมร่วงกระจาย)

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

    DLSS อาศัยเทคโนโลยี AI ร่วมกับ Tensor Core เพื่อประมวลผลหาพิกเซลที่เหมาะสมมาเติมเข้าไป ในยุค DLSS 1.0 ผลที่ได้ไม่ค่อยดีนัก แต่ปัจจุบัน DLSS 2.0 ทำได้ดีมาก หลายสำนักรีวิวต่างชื่นชมว่าสวยคมชัดเทียบเท่า Native จนแทบแยกไม่ออก แต่ข้อเสียมันคือไม่ Open (การ์ด AMD และคอนโซลหมดสิทธิ์) และรองรับเฉพาะการ์ด RTX ที่มี Tensor Core เท่านั้น (การ์ด NVidia รุ่นเก่าและรุ่นล่างๆก็หมดสิทธิ์)








    ล่าสุดในงาน Computex 2021 ทาง AMD ได้เปิดตัวเทคโนโลยี FSR (FidelityFX Super Resolution) เพื่อต่อกรกับ DLSS ของ NVidia โดยตรง ต้องเรียกว่าเป็นการแก้เกมที่เจ็บแสบเลยล่ะ เมื่อ AMD ได้โชว์พลัง FSR ร่วมกับ GTX 1060 ซึ่งเป็นการ์ดรุ่นเก่าที่ NVidia ลอยแพไปแล้ว (ไม่รองรับ DLSS) ที่สำคัญ FSR ยังเป็นมาตรฐานเปิด ให้ทุกคนใช้ได้ฟรี นั่นเท่ากับว่าตลาดของ FSR นั้นกว้างมากตั้งแต่คอนโซลยันการ์ดจอทั้งการ์ดเจนใหม่และเก่าตั้งแต่ 3 เจนก่อนนู่น นี่เป็นแรงจูงใจอย่างดีให้ค่ายเกมทั้งหลายรองรับ FSR และอนาคตไม่น่าว่าอาจรองรับลามไปถึงมือถือด้วย (เนื่องจาก AMD ช่วยพัฒนา GPU ให้ Samsung)


    FSR ทำงานอย่างไร?
    อ้างอิงจากความเห็นของสมาชิกรายนึงในเว็บ Techspot ซึ่งเขาศึกษาจากเอกสารยื่นจดสิทธิบัตรของ AMD สรุปใจความได้ว่า...
    • FSR จะมีการแตกข้อมูลภาพออกเป็น Linear Approximation และ Feature Map
    • Linear Approximation ทำหน้าที่เก็บเค้าโครงภาพ พวกเส้น, แนว, และรูปทรงใหญ่ๆ โดยจะละทิ้งรายละเอียดยิบย่อยไป ขั้นตอนนี้กระทำโดยใช้ Convolution Matrix แบบง่ายๆ
    • Feature Map ทำหน้าที่เก็บรายละเอียดยิยย่อยเช่น ลวดลายพื้นผิว, เส้นใย, ตาข่าย ฯลฯ กระทำโดยใข้สมการ Taylor Series นั่นคือจะไม่ได้จัดเก็บข้อมูล Feature จริงๆ แต่จัดเก็บเป็นสมการคณิตศาตร์ ที่เมื่อคำนวณแล้วจะได้เป็น Feature นั้นๆกลับมา
    • Linear Approximation สามารถย่อ-ขยายสเกลได้ง่ายๆอยู่แล้ว (คือเหมือนเส้นกราฟใน Excel จะซูมเข้าออกยังไงเส้นกราฟก็ไม่เบลอ ไม่แตก)
    • Feature Map เมื่ออยู่ในรูปสมการคณิตศาตร์ ก็สามารถคำนวณแปลงเป็น Feature Map ขนาดเล็กใหญ่ได้ตามต้องการ โดยที่มีรายละเอียดไม่แตกต่างกัน
    • ทั้ง Linear Approximation และ Feature Map จะนำมาคำนวณให้มีความละเอียดสูงขึ้น แล้วนำข้อมูลนั้นมารวมกัน ได้ผลลัพท์เป็นภาพความละเอียดสูงออกมา

    เงื่อนไขการใช้งาน FSR
    1. ตัว GPU ต้องรองรับ (ไม่แน่ใจว่ารองรับแบบไหน เท่าที่รู้คืออย่างน้อยก็ต้องรองรับ OpenCL)
    2. ค่ายเกมต้องนำฟีเจอร์นี้ไปใส่ในเกม

    จุดแตกต่างระหว่าง FSR กับ DLSS
    • FSR ไม่ได้ใช้ Motion Vector หรือใช้การรวมภาพต่อเนื่องหลายๆเฟรมเหมือนอย่าง DLSS แต่จะใช้การอัพสเกลแบบเฟรมต่อเฟรม เป็นอิศระเฟรมใครเฟรมมัน
    • ดังนั้น FSR จึงไม่มีความสามารถของ TAA (Temporal Anti-Aliasing) จึงควรต้องใช้ร่วมกับ TAA เพื่อแก้ปัญหาบางอย่างที่เกิดในช่วงรอยต่อระหว่างเฟรม เช่นเส้นขอบกระพริบ
    • ขณะที่ DLSS ใช้ Motion Vector จากหลายๆเฟรม จึงมีคุณสมบัติของ TAA ไปโดยปริยาย

    ส่วนในแง่คุณภาพ, การเก็บรายละเอียด, ความคมชัดของภาพจาก FSR คงต้องรอดูของจริง 22 มิ.ย. นี้ครับ

    ----------------------------------------------------------
    อ้างอิง:
    https://www.techspot.com/news/89879-...commentsOffset






  • #2
    แบบนี้ตัว CPU น่าจะมีผลกับ FRAME RATE ค่อนข้างเยอะล่ะครับ

    Comment


    • #3
      จริงๆ เรื่อง Super Resolution นี่เป็นงานวิจัย ป เอก ผมเลยน่ะครับ 5555 แต่เป็นการเอาไปใช้ในวงการ Cloud Gaming ครับ สนใจลองดูได้คร้าบบ

      https://kb.psu.ac.th/psukb/handle/2016/12012

      Comment


      • #4
        หายไปนานท่าน นกแสก ไปฉีดยาแล้วยังคับ

        Comment


        • #5
          Originally posted by Amethystx View Post
          จริงๆ เรื่อง Super Resolution นี่เป็นงานวิจัย ป เอก ผมเลยน่ะครับ 5555 แต่เป็นการเอาไปใช้ในวงการ Cloud Gaming ครับ สนใจลองดูได้คร้าบบ

          https://kb.psu.ac.th/psukb/handle/2016/12012
          ผมลองอ่านดูแล้ว (ยังไม่จบ) ขอบอกว่าไม่ธรรมดาเลยนะครับที่สร้าง Cloud Gaming จำลองได้

          (edit)
          เพิ่งอ่านจนจบเมื่อครู่ มาบอกว่าชอบ Chapter 5: Effects of omni-viewpoint to cloud gaming workload adaptation ที่สุด เรื่อง trans-rendering, trans-scaling และ hybrid ที่รวมทั้ง 2 อัน ผมไม่มีความรู้เรื่องพวกนี้มาก่อน แต่ดูรูปแค่รูปเดียวกับคำอธิบายไม่กี่บรรทัดก็เข้าใจหลักการคร่าวๆเลย ขอชมว่านำเสนอได้เก่งมากครับ

          เท่าที่อ่านจนจบ ผมว่าวิธีการมันยังไม่ใช่ Super Resolution นะครับ เป็นเพียงเทคนิคการเลือกเพิ่ม-ลด Resolution ให้เหมาะสมกับปริมาณ User และทรัพยากรประมวลผลเท่านั้น แต่โดยรวมเป็นวิทยานิพนธ์ที่มีเนื้อหาดีครับ
          Last edited by นกแสก; 4 Jun 2021, 18:44:22.

          Comment


          • #6
            Originally posted by ssk View Post
            แบบนี้ตัว CPU น่าจะมีผลกับ FRAME RATE ค่อนข้างเยอะล่ะครับ
            ขึ้นอยู่กับว่าการคำนวณอันนั้นมันใช้ GPU ช่วยได้แค่ไหนครับ Linear Approximation นี่ไม่หนักเท่าไหร่ข้ามไปแล้วกัน แต่สำหรับ Ferature Map (FM) นี่แต่ละเฟรมน่าจะมีจำนวนเป็นร้อยๆ การคำนวณเพื่อดึงข้อมูล FM ออกมานั้นถือเป็นงานหนัก แต่ยังเป็นงานด้าน Image อยู่ จึงน่าจะใช้ GPU มาช่วยได้ แต่พอได้ FM มาแล้ว การแปลง FM ให้เป็นสมการ Taylor Series จำนวนมากๆก็เป็นงานหนัก และไม่แน่ใจว่าใช้ GPU ช่วยได้มั้ย ถ้าไม่ได้ก็ต้องให้ CPU รับภาระไปครับ

            Originally posted by micronz View Post
            หายไปนานท่าน นกแสก ไปฉีดยาแล้วยังคับ
            ผมยังไม่ได้ฉีดเลยครับ ขอบคุณที่เป็นห่วง คิดถึงเพื่อนๆที่นี่เช่นกัน
            Last edited by นกแสก; 4 Jun 2021, 19:17:36.

            Comment


            • #7
              Originally posted by นกแสก View Post

              ผมลองอ่านดูแล้ว (ยังไม่จบ) ขอบอกว่าไม่ธรรมดาเลยนะครับที่สร้าง Cloud Gaming จำลองได้

              (edit)
              เพิ่งอ่านจนจบเมื่อครู่ มาบอกว่าชอบ Chapter 5: Effects of omni-viewpoint to cloud gaming workload adaptation ที่สุด เรื่อง trans-rendering, trans-scaling และ hybrid ที่รวมทั้ง 2 อัน ผมไม่มีความรู้เรื่องพวกนี้มาก่อน แต่ดูรูปแค่รูปเดียวกับคำอธิบายไม่กี่บรรทัดก็เข้าใจหลักการคร่าวๆเลย ขอชมว่านำเสนอได้เก่งมากครับ

              เท่าที่อ่านจนจบ ผมว่าวิธีการมันยังไม่ใช่ Super Resolution นะครับ เป็นเพียงเทคนิคการเลือกเพิ่ม-ลด Resolution ให้เหมาะสมกับปริมาณ User และทรัพยากรประมวลผลเท่านั้น แต่โดยรวมเป็นวิทยานิพนธ์ที่มีเนื้อหาดีครับ
              ดีใจมากๆๆๆ เลยครับ ที่พี่นกแสกได้อ่านด้วยยย จริงๆ เมื่อ 8 ปีก่อนตอนเริ่มงานวิจัยนี้ คือ ชั่วโมงนั้นยังเทคนิค Super Resolution ยังไม่แพร่หลายในกงการ GPU ครับ
              แต่เริ่มมีการคุยในวงการวิจัยแล้วในเรื่องการลด ขนาด Render เพื่อ ลดภาระงาน GPU ครับ ผมเลยเอาแบบง่ายๆ แล้วกัน
              หาแนวทางในการปรับแบบอัตโนมัติด้วยสมการ Game Theory ครับ 555

              Comment


              • #8
                ห้องนี้คนเก่งๆ เยอะนะครับเนี่ย

                Comment


                • #9
                  Originally posted by นกแสก View Post
                  ขึ้นอยู่กับว่าการคำนวณอันนั้นมันใช้ GPU ช่วยได้แค่ไหนครับ Linear Approximation นี่ไม่หนักเท่าไหร่ข้ามไปแล้วกัน แต่สำหรับ Ferature Map (FM) นี่แต่ละเฟรมน่าจะมีจำนวนเป็นร้อยๆ การคำนวณเพื่อดึงข้อมูล FM ออกมานั้นถือเป็นงานหนัก แต่ยังเป็นงานด้าน Image อยู่ จึงน่าจะใช้ GPU มาช่วยได้ แต่พอได้ FM มาแล้ว การแปลง FM ให้เป็นสมการ Taylor Series จำนวนมากๆก็เป็นงานหนัก และไม่แน่ใจว่าใช้ GPU ช่วยได้มั้ย ถ้าไม่ได้ก็ต้องให้ CPU รับภาระไปครับ
                  ผมมองว่า มันใช้กับ GPU ย้อนไปถึง RX-500/GTX-1000 ผมว่ามันน่าจะใช้ CPU ช่วยประมวลผลเบื้องต้นก่อนส่งไป GPU
                  กับช่วยงานอื่นๆ ตามที่คุณนกแสกว่า เป็น 2 WAY pararell processing น่ะครับ
                  มันถึงจะให้พวก GPU ตกยุคแบบนั้นทำงานได้ราบลื่น
                  ซึ่งมันน่าจะเป็น Process แยก ออกมาจาก GPU DRIVER แต่เป็น SYSTEM LIBRARY
                  ที่ RUN อิสระบน OS เลย แบบ ROCM เลยประมานนั้นครับ

                  Comment


                  • #10
                    Originally posted by ssk View Post

                    ผมมองว่า มันใช้กับ GPU ย้อนไปถึง RX-500/GTX-1000 ผมว่ามันน่าจะใช้ CPU ช่วยประมวลผลเบื้องต้นก่อนส่งไป GPU
                    กับช่วยงานอื่นๆ ตามที่คุณนกแสกว่า เป็น 2 WAY pararell processing น่ะครับ
                    มันถึงจะให้พวก GPU ตกยุคแบบนั้นทำงานได้ราบลื่น
                    ซึ่งมันน่าจะเป็น Process แยก ออกมาจาก GPU DRIVER แต่เป็น SYSTEM LIBRARY
                    ที่ RUN อิสระบน OS เลย แบบ ROCM เลยประมานนั้นครับ
                    อ่านโพสนี้เริ่มเห็นภาพชัด เดิมทีก็สงสัยว่า AMD ทำไงถึงโมให้ 1060 รองรับ FSR ได้ (ไปแฮก Source code driver NVidia มาได้รึไง) ตอนนี้คิดว่าขั้นตอนน่าจะเป็นแบบนี้
                    - AMD พัฒนา FSR รุ่นทดสอบ และนำไปให้ทางค่ายเกมลองไปใส่ในเกม
                    - AMD เขียนไดรเวอร์การ์ดของตัวเองให้รองรับ FSR ตามปกติ ในรุ่นที่ประกาศไว้ นั่นทำให้การ์ดจอ AMD คำนวณ FSR ผ่านไดรเวอร์โดยตรง
                    - สำหรับการ์ด 1060 AMD น่าจะช่วยทางค่ายเกม (Gear5) เพื่อโม FSR ให้สลับไปคำนวณในโหมด OpenCL (ซึ่งเป็นมาตรฐานที่ GPU รองรับกันทั่ว รันอยู่บน System Library) เมื่อคำนวณ FSR เสร็จแล้วจึงกลับสู่โหมดปกติของไดรเวอร์ต่อไป


                    นั่นหมายความว่าการ์ด NVidia ไม่ได้รองรับ FSR โดยอัตโนมัติ จะรองรับก็ต่อเมื่อ
                    - ทาง NVidia ยอมเขียนไดรเวอร์ให้รองรับ หรือ...
                    - ผู้พัฒนาต้องทำอย่าง Gear5 คือโมให้เกมตัวเองสลับโหมดให้ไป OpenCL ได้ และต้องให้ผู้เล่นติดตั้ง OpenCL Library ด้วย
                    Last edited by นกแสก; 5 Jun 2021, 23:30:38.

                    Comment


                    • #11
                      ไม่ค่อยทันเป็นคนอ่านครับ แฮร่ๆๆๆ

                      Comment


                      • #12
                        Originally posted by ssk View Post
                        ห้องนี้คนเก่งๆ เยอะนะครับเนี่ย
                        ข้อนี้เห็นด้วยกับท่านเลยครับ ห้องนี้คนเก่งเยอะมาก ผมก็ได้แต่บริโภคข่าว และความรู้เพิ่มขึ้นเรื่อยๆ ขอบคุณครับ ที่มีความรู้ดีๆมาให้เสมอๆ แต่ AMD คราวนี้มาเหนือเมฆจริงๆ กินไปถึงค่ายเกมส์โดยไม่ต้องเอาเงินไปจ้างให้ค่ายเกมส์เรียกเทคโนโลยี่ของตัวเองไปใช้ เค้าเอาไปใช้เองเพราะส่งผลถึงการ์ดเก่าๆได้ด้วย และเกมส์ของเขาก็จะมีคนเล่นมากขึ้นด้วย เพราะการ์ดรุ่นเก่าก็ใช้ได้
                        Last edited by pichet; 9 Jun 2021, 21:13:03.

                        Comment

                        Working...
                        X