อัลกอริทึมการขยายขนาดพิกเซลอาร์ต
สรุปใจความสำคัญ
- อัลกอริทึมการขยายขนาดพิกเซลอาร์ตมุ่งเน้นการลดรอยหยักและสร้างเส้นขอบที่เรียบเนียน แทนที่จะเป็นการรักษาพิกเซลเดิมให้คงที่
- EPX (Eric's Pixel Expansion) เป็นหนึ่งในอัลกอริทึมยุคแรกๆ ที่พัฒนาขึ้นเพื่อพอร์ตเกมจาก PC ไปยัง Macintosh
- ตัวคูณการขยายขนาด 2 เท่า (2x) เป็นค่ามาตรฐานที่พบบ่อยที่สุดในซอฟต์แวร์อีมูเลเตอร์
- อัลกอริทึมอย่าง Eagle มีข้อบกพร่องในการจัดการพิกเซลเดี่ยว ซึ่งถูกแก้ไขในรุ่นต่อมาอย่าง Scale2x และ HQ2x
อัลกอริทึมการขยายขนาดพิกเซลอาร์ต (Pixel-art scaling algorithms) คือตัวกรองกราฟิกที่ออกแบบมาเพื่อปรับปรุงรูปลักษณ์ของภาพกราฟิกพิกเซลอาร์ตแบบ 2 มิติที่วาดด้วยมือ โดยเป็นรูปแบบหนึ่งของการเพิ่มประสิทธิภาพรูปภาพโดยอัตโนมัติ ซึ่งแตกต่างจากการปรับขนาดภาพ (Image Rescaling) ทั่วไปที่มุ่งเน้นการรักษาลักษณะเดิมของภาพ แต่อัลกอริทึมเหล่านี้มุ่งเน้นการลดรอยหยักและสร้างเส้นขอบที่ดูเรียบเนียนขึ้น
เนื่องจากพิกเซลอาร์ตมักถูกสร้างขึ้นในความละเอียดที่ต่ำมาก ศิลปินจึงต้องใช้การวางสีในแต่ละพิกเซลอย่างระมัดระวังเพื่อสร้างสัญลักษณ์ทางสายตาที่สื่อถึงรูปทรงที่ซับซ้อน ดังนั้น การขยายขนาดภาพเหล่านี้จึงต้องใช้อัลกอริทึมเฉพาะทางเพื่อไม่ให้สูญเสียเอกลักษณ์ของงานศิลปะ อย่างไรก็ตาม การใช้ตัวกรองเหล่านี้อาจทำให้เกิดการเปลี่ยนแปลงในภาพ ซึ่งในบางกรณีอาจไม่เป็นที่ต้องการหากเป้าหมายคือการจำลองรูปลักษณ์ดั้งเดิมให้แม่นยำที่สุด

การประยุกต์ใช้และข้อจำกัด
เทคโนโลยีนี้ถูกนำมาใช้บ่อยที่สุดในการปรับปรุงภาพของวิดีโอเกมยุคที่ 4 และยุคก่อนหน้า บนโปรแกรมจำลอง (Emulator) ของเครื่องเกมอาเขตและคอนโซล อัลกอริทึมส่วนใหญ่จึงถูกออกแบบมาให้ทำงานแบบเรียลไทม์ (Real-time) ที่ความเร็ว 60 เฟรมต่อวินาที สำหรับภาพอินพุตที่มีขนาดเล็ก ซึ่งทำให้มีข้อจำกัดด้านเทคนิคในการเขียนโปรแกรมเพื่อให้ประมวลผลได้ทันท่วงที
ตัวคูณการขยายขนาดที่พบบ่อยที่สุดคือ 2 เท่า (2×), ในขณะที่การขยาย 3 เท่า, 4 เท่า, 5 เท่า และ 6 เท่า มีการใช้งานน้อยกว่า

อัลกอริทึมที่สำคัญ
SAA5050 'Diagonal Smoothing'
ชิปสร้างตัวอักษร Teletext รุ่น Mullard SAA5050 (ปี 1980) ใช้อัลกอริทึมการขยายขนาดพิกเซลแบบพื้นฐานเพื่อสร้างตัวอักษรที่มีความละเอียดสูงขึ้นจากข้อมูลใน ROM ภายใน โดยจะขยายตารางพิกเซลขนาด 5×9 พิกเซล ให้กลายเป็น 10×18 พิกเซล ผ่านการทำให้เส้นทแยงมุมเรียบเนียน (Smoothing diagonals) ส่งผลให้ได้ตัวอักษรที่มีลักษณะเป็นเหลี่ยมมุมเฉพาะตัว
EPX / Scale2× / AdvMAME2×
Eric's Pixel Expansion (EPX) พัฒนาโดย Eric Johnston จาก LucasArts ประมาณปี 1992 เพื่อใช้ในการพอร์ตเกมที่ใช้เอนจิน SCUMM จาก IBM PC (ความละเอียด 320×200) ไปยังเครื่อง Macintosh ยุคแรกที่มีความละเอียดสูงกว่าประมาณสองเท่า

ในเวลาต่อมาได้มีการพัฒนาเวอร์ชันที่ประสิทธิภาพสูงขึ้นแต่ให้ผลลัพธ์เหมือนเดิมในชื่อ AdvMAME2× และ Scale2× (ประมาณปี 2001) ซึ่งสามารถใช้งานได้ใน DOSBox ผ่านตัวเลือก scaler=advmame2x
Scale3× / AdvMAME3× และ ScaleFX
อัลกอริทึม AdvMAME3× และ Scale3× เป็นการขยายแนวคิดของ EPX ให้ครอบคลุมการขยายขนาด 3 เท่า โดยพิกเซลที่มุมจะถูกคำนวณในลักษณะเดียวกับ EPX


Eagle
อัลกอริทึม Eagle จะสร้างพิกเซลขาออก 4 พิกเซลสำหรับทุกๆ 1 พิกเซลขาเข้า โดยเริ่มจากการกำหนดให้ทั้ง 4 พิกเซลมีสีเดียวกับพิกเซลต้นฉบับ (Nearest-neighbor) จากนั้นจะตรวจสอบพิกเซลด้านบน ด้านซ้าย และด้านบนซ้าย หากทั้งสามมีสีเดียวกัน จะเปลี่ยนสีพิกเซลมุมบนซ้ายของผลลัพธ์ให้เป็นสีนั้นแทน อย่างไรก็ตาม Eagle มีข้อบกพร่องคือหากมีพิกเซลสีเดียวโดดๆ บนพื้นหลังที่ต่างกัน พิกเซลนั้นอาจหายไปได้ ซึ่งปัญหานี้ถูกแก้ไขในอัลกอริทึมรุ่นหลังอย่าง EPX และ HQ2x
2×SaI
2× Scale and Interpolation (2×SaI) ได้รับแรงบันดาลใจจาก Eagle พัฒนาโดย Derek Liauw Kie Fa (Kreed) เพื่อใช้ในอีมูเลเตอร์เป็นหลัก เช่น ZSNES และ VisualBoyAdvance โดยทำงานบนเมทริกซ์พิกเซลขนาด 4×4 เพื่อคำนวณการขยายขนาดพิกเซล

คำถามที่พบบ่อย
การขยายขนาดพิกเซลอาร์ตต่างจากการขยายขนาดภาพทั่วไปอย่างไร?
การขยายขนาดภาพทั่วไปมุ่งเน้นการรักษาภาพเดิมให้เหมือนเดิมที่สุด แต่การขยายขนาดพิกเซลอาร์ตใช้อัลกอริทึมเฉพาะเพื่อวิเคราะห์พิกเซลรอบข้างและเติมพิกเซลใหม่เพื่อลดรอยหยัก (Aliasing) และทำให้เส้นขอบดูเรียบเนียนขึ้น
ทำไมต้องใช้อัลกอริทึมเหล่านี้ในอีมูเลเตอร์?
เพราะเกมยุคเก่ามีความละเอียดต่ำมาก เมื่อนำมาแสดงผลบนหน้าจอสมัยใหม่ที่มีความละเอียดสูง ภาพจะดูเป็นเม็ดพิกเซลขนาดใหญ่หรือมีรอยหยักมากเกินไป อัลกอริทึมเหล่านี้จึงช่วยให้ภาพดูสวยงามและทันสมัยขึ้นในขณะที่ยังคงกลิ่นอายของพิกเซลอาร์ตไว้
Scale2x และ EPX คืออะไร?
Scale2x และ EPX คืออัลกอริทึมที่ขยายภาพ 2 เท่า โดยพิจารณาจากสีของพิกเซลรอบข้างเพื่อตัดสินใจว่าจะเติมพิกเซลใหม่ในตำแหน่งใด เพื่อให้เส้นขอบของวัตถุในภาพดูเรียบเนียนขึ้น
อัลกอริทึมการขยายขนาดพิกเซลอาร์ตมีข้อเสียหรือไม่?
มีข้อเสียคืออาจทำให้ภาพเกิดการเปลี่ยนแปลง (Artifacts) หรือทำให้รายละเอียดบางอย่างที่ศิลปินตั้งใจวาดไว้หายไป หากอัลกอริทึมวิเคราะห์พิกเซลรอบข้างผิดพลาด
Scale3x ทำงานอย่างไร?
เป็นการขยายแนวคิดของ EPX ให้เป็นการขยายขนาด 3 เท่า โดยเพิ่มจำนวนพิกเซลที่สร้างขึ้นจาก 1 พิกเซลต้นฉบับให้เป็น 9 พิกเซล แทนที่จะเป็น 4 พิกเซล