กลับไปหน้าบทความ

อ่าน 7 นาที

การจัดองค์ประกอบอัลฟา

ใน กราฟิกคอมพิวเตอร์ การผสมอัลฟา หรือ การผสมอัลฟา คือกระบวนการรวมภาพหนึ่งภาพเข้ากับพื้นหลังเพื่อสร้างลักษณะ ความโปร่งใส บางส่วนหรือ ทั้งหมด [ 1 ] มักจะเป็นประโยชน์ในการเรนเดอร์...

การจัดองค์ประกอบอัลฟา

ภาพสเปกตรัมสีที่มีช่องอัลฟาซึ่งลดลงเหลือศูนย์ที่ฐาน โดยผสมผสานกับภาพตัดส่วนของโลโก้ Wikipediaที่ใช้เป็นพื้นหลัง

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

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

แม้ว่าการรวมภาพสองภาพขั้นพื้นฐานที่สุดคือการวางภาพหนึ่งทับอีกภาพหนึ่ง แต่ก็ยังมีวิธีการหรือโหมดการผสมผสาน อีกมากมาย ที่ใช้กัน

ประวัติศาสตร์

แนวคิดของช่องอัลฟาได้รับการแนะนำโดยAlvy Ray SmithและEd Catmullในช่วงปลายทศวรรษ 1970 ที่ห้องปฏิบัติการคอมพิวเตอร์กราฟิกส์ของสถาบันเทคโนโลยีนิวยอร์ก Bruce A. Wallace ได้พัฒนาตัวดำเนินการแบบตรงเดียวกันโดยอิงจาก แบบจำลอง การสะท้อน / การส่งผ่าน ทางกายภาพ ในปี 1981 [ 2 ]บทความในปี 1984 โดยThomas PorterและTom Duffได้แนะนำอัลฟาแบบพรีมัลติพลีดโดยใช้แนวทางทางเรขาคณิต[ 3 ]

Smith อธิบายการใช้คำว่าอัล ฟาไว้ดังนี้: "เราเรียกมันว่าอย่างนั้นเพราะ สูตรการแทรกสอดเชิงเส้นแบบคลาสสิก ที่ใช้ตัวอักษรกรีก(อัลฟา) เพื่อควบคุมปริมาณการแทรกสอดระหว่างภาพสองภาพ A และ B ในกรณีนี้" [ 4 ]นั่นคือ เมื่อรวมภาพ A ไว้บนภาพ B ค่าของในสูตรจะถูกนำมาจากช่องอัลฟาของ A โดยตรง

คำอธิบาย

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

ด้วยการมีอยู่ของช่องอัลฟา ทำให้สามารถแสดงการดำเนินการคอมโพสิตภาพโดยใช้พีชคณิตคอมโพสิตได้ ตัวอย่างเช่น เมื่อมีภาพสองภาพAและBการดำเนินการคอมโพสิตที่พบบ่อยที่สุดคือการรวมภาพเพื่อให้Aปรากฏในพื้นหน้าและBปรากฏในพื้นหลัง ซึ่งสามารถแสดงได้เป็นA ทับBนอกจากทับ แล้ว Porter และ Duff [ 3 ]ได้กำหนดตัวดำเนินการคอมโพสิตใน , held out by (วลีนี้หมายถึงการจัดวางแบบ holdoutและมักจะย่อเป็นout ), atopและxor (และตัวดำเนินการย้อนกลับrover , rin , routและratop ) จากการพิจารณาตัวเลือกในการผสมสีของพิกเซลสองพิกเซลเมื่อการครอบคลุมของพวกมันถูกวางซ้อนกันในเชิงแนวคิดแบบตั้งฉาก:

ตัวอย่างเช่น ตัวดำเนินการ overสามารถทำได้โดยการใช้สูตรต่อไปนี้กับแต่ละพิกเซล: [ 2 ]

ในที่นี้, และแทนส่วนประกอบสีของพิกเซลในผลลัพธ์ของ "การประมวลผล" ภาพ A และภาพ B ตามลำดับ ซึ่งนำไปใช้กับแต่ละช่องสี (แดง/เขียว/น้ำเงิน) แยกกัน ในขณะที่, และคือค่าอัลฟาของพิกเซลนั้นๆ

ตัว ดำเนินการ overในทางปฏิบัติคือการดำเนินการระบายสีปกติ (ดูอัลกอริทึมของ Painter ) ตัวดำเนินการ inและoutเทียบเท่ากับการตัดในคอมโพ สิตอัลฟา ทั้งสองใช้เฉพาะช่องอัลฟาของภาพที่สองและไม่สนใจส่วนประกอบสี นอกจากนี้plusยังกำหนดการผสมแบบเพิ่ม[ 3 ]

แบบตรงเทียบกับแบบคูณล่วงหน้า

หากมีการใช้ช่องอัลฟาในภาพ จะมีรูปแบบการแสดงผลสองแบบที่ใช้กันทั่วไป ได้แก่ อัลฟาแบบตรง (ไม่สัมพันธ์กัน) และอัลฟาแบบคูณล่วงหน้า (สัมพันธ์กัน)

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

การเปรียบเทียบ

ข้อได้เปรียบที่สำคัญที่สุดของอัลฟาแบบพรีมัลติพลายด์คือ ช่วยให้การผสม การแทรกสอดและการกรอง เป็นไปอย่างถูกต้อง การแทรกสอดแบบธรรมดาโดยไม่มีอัลฟาแบบพรีมัลติพลายด์จะทำให้ข้อมูล RGB รั่วไหลออกจากบริเวณที่โปร่งใสอย่างสมบูรณ์ (A=0) แม้ว่าข้อมูล RGB นี้จะมองไม่เห็นก็ตาม เมื่อทำการแทรกสอดหรือกรองภาพที่มีขอบเขตที่ชัดเจนระหว่างบริเวณที่โปร่งใสและทึบแสง อาจส่งผลให้เกิดขอบเขตของสีที่ไม่ปรากฏในภาพต้นฉบับ ข้อผิดพลาดยังเกิดขึ้นในบริเวณที่มีความโปร่งใสบางส่วน เนื่องจากส่วนประกอบ RGB ไม่ได้รับการถ่วงน้ำหนักอย่างถูกต้อง ทำให้สีของพิกเซลที่โปร่งใสกว่า (อัลฟาต่ำกว่า) ได้รับการถ่วงน้ำหนักสูงอย่างไม่ถูกต้อง[ 5 ]

อาจใช้ค่าอัลฟาแบบพรีมัลติพลายด์เพื่ออนุญาตให้บริเวณที่มีการผสมอัลฟาแบบปกติ (เช่น ควัน) และบริเวณที่มีโหมดการผสมแบบเพิ่ม (เช่น เอฟเฟกต์เปลวไฟและประกายระยิบระยับ) สามารถเข้ารหัสได้ภายในภาพเดียวกัน[ 6 ] [ 7 ]ซึ่งแสดงด้วยชุดค่า RGBA สามค่าที่แสดงการปล่อยแสงโดยไม่มีการบดบัง เช่น (0.4, 0.3, 0.2, 0.0)

ข้อดีอีกประการหนึ่งของอัลฟาแบบพรีมัลติพลีดคือประสิทธิภาพ ในบางสถานการณ์ สามารถลดจำนวนการดำเนินการคูณได้ (เช่น หากใช้ภาพหลายครั้งในระหว่างการคอมโพสิตในภายหลัง) การดำเนินการ Porter–Duff มีรูปแบบที่เรียบง่ายเฉพาะในอัลฟาแบบพรีมัลติพลีดเท่านั้น[ 3 ]ไปป์ไลน์การเรนเดอร์บางส่วนเปิดเผยพื้นผิว API "อัลฟาตรง" แต่แปลงเป็นอัลฟาแบบพรีมัลติพลีดเพื่อประสิทธิภาพ[ 8 ]

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

ตัวอย่าง

สมมติว่าสีของพิกเซลแสดงโดยใช้ค่า RGBA แบบตรง (ไม่ใช่แบบพรีมัลติพลายด์) ค่าพิกเซล (0, 0.7, 0, 0.5) หมายถึงพิกเซลที่มีความเข้มสีเขียว 70% ของค่าสูงสุด และความทึบแสง 50% หากสีเป็นสีเขียวทั้งหมด ค่า RGBA จะเป็น (0, 1, 0, 0.5) อย่างไรก็ตาม หากพิกเซลนี้ใช้ค่าอัลฟาแบบพรีมัลติพลายด์ ค่า RGB ทั้งหมด (0, 0.7, 0) จะถูกคูณหรือปรับขนาดสำหรับการบดบังด้วยค่าอัลฟา 0.5 ซึ่งจะถูกต่อท้ายเพื่อให้ได้ (0, 0.35, 0, 0.5) ในกรณีนี้ ค่า 0.35 สำหรับช่อง G แสดงถึงความเข้มของการปล่อยแสงสีเขียว 70% (โดยมีการบดบัง 50%) การปล่อยแสงสีเขียวบริสุทธิ์จะถูกเข้ารหัสเป็น (0, 0.5, 0, 0.5) การทราบว่าไฟล์ใช้ค่าอัลฟาแบบตรงหรือแบบคูณล่วงหน้าเป็นสิ่งสำคัญในการประมวลผลหรือประกอบภาพอย่างถูกต้อง เนื่องจากต้องใช้การคำนวณที่แตกต่างกัน

การปล่อยแสงโดยไม่มีสิ่งกีดขวางไม่สามารถแสดงได้ด้วยค่าอัลฟาแบบตรง ในกรณีนี้จึงไม่มีการแปลงค่าใดๆ

รูปแบบไฟล์ภาพที่รองรับช่องอัลฟา

รูปแบบภาพยอดนิยมที่รองรับช่องอัลฟา ได้แก่PNGและTIFFส่วนGIFรองรับความโปร่งใส 1 บิต โดยการกำหนดค่าหนึ่งในพาเลทให้เป็นค่าโปร่งใสการรองรับช่องอัลฟาพบได้ในตัวแปลงสัญญาณวิดีโอบางตัว เช่น Animation และ Apple ProRes 4444 ของรูปแบบ QuickTime หรือในตัวแปลงสัญญาณหลายรูปแบบ Techsmith

โดยทั่วไป ไฟล์รูปแบบBMPไม่รองรับช่องสัญญาณนี้ อย่างไรก็ตาม ในรูปแบบต่างๆ เช่น 32 บิต (888–8) หรือ 16 บิต (444–4) สามารถบันทึกช่องสัญญาณอัลฟาได้ แม้ว่าระบบหรือโปรแกรมบางโปรแกรมจะไม่สามารถอ่านได้ก็ตาม โดยส่วนใหญ่จะถูกนำไปใช้ในวิดีโอเกมบางเกม[ 9 ]หรือแอปพลิเคชันเฉพาะ[ 10 ]นอกจากนี้ยังมีการสร้างโปรแกรมเฉพาะสำหรับการสร้าง BMP เหล่านี้ด้วย

รูปแบบไฟล์/โคเดก[ 11 ]ความลึกสูงสุด พิมพ์การรองรับเบราว์เซอร์ประเภทสื่อหมายเหตุ
Apple ProRes 444416 บิต ไม่มีวิดีโอ (.mov)ProRes เป็นผู้สืบทอดของApple Intermediate Codec [ 12 ]
HEVC / h.26510 บิต จำกัดเฉพาะซาฟารีวิดีโอ (.hevc)ผู้สืบทอดที่ตั้งใจไว้ของH.264 [ 13 ] [ 14 ] [ 15 ]
WebM (ตัวแปลงสัญญาณวิดีโอ VP8, VP9 หรือ AV1)12 บิต เบราว์เซอร์สมัยใหม่ทั้งหมดวิดีโอ (.webm)แม้ว่า VP8/VP9 จะได้รับการสนับสนุนอย่างกว้างขวางในเบราว์เซอร์สมัยใหม่ แต่ AV1 ยังคงได้รับการสนับสนุนอย่างจำกัด[ 16 ]เฉพาะ เบราว์เซอร์ที่ใช้ Chromium เท่านั้น ที่จะแสดงเลเยอร์อัลฟา
เปิดEXR32 บิต ไม่มีรูปภาพ (.exr)มีช่วงค่า HDR ที่กว้างที่สุด
PNG16 บิต ตรงเบราว์เซอร์สมัยใหม่ทั้งหมดรูปภาพ (.png)
เอพีจีพี24 บิต ตรงการสนับสนุนระดับปานกลางรูปภาพ (.apng)รองรับแอนิเมชัน[ 17 ]
TIFF32 บิต ทั้งคู่ไม่มีรูปภาพ (.tiff)
ภาพเคลื่อนไหว GIF8 บิต เบราว์เซอร์สมัยใหม่ทั้งหมดรูปภาพ (.gif)ความโปร่งใสระดับ 1 บิต
เอสวีจี32 บิต ตรงเบราว์เซอร์สมัยใหม่ทั้งหมดรูปภาพ (.svg)อิงตามสี CSS [ 18 ]
JPEG XL32 บิต ทั้งคู่ การสนับสนุนระดับปานกลาง รูปภาพ (.jxl) อนุญาตให้มีการสูญเสียข้อมูลและ HDR [ 19 ]

การแก้ไขแกมมา

การผสมอัลฟา โดยไม่คำนึงถึงการแก้ไขแกมมา
การผสมอัลฟา โดยคำนึงถึงการแก้ไขแกมมา

ค่า RGB ของภาพดิจิทัลทั่วไปไม่ได้สอดคล้องกับความเข้มของแสงจริงโดยตรง แต่ถูกบีบอัดด้วย ฟังก์ชัน แก้ไขแกมมา :

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

ดังนั้น โปรแกรมคอมพิวเตอร์ที่จัดการกับภาพดังกล่าวจะต้องถอดรหัสค่า RGB ให้เป็นพื้นที่เชิงเส้น (โดยการยกเลิกการบีบอัดแกมมา) ผสมความเข้มแสงเชิงเส้น และใช้การบีบอัดแกมมากับผลลัพธ์อีกครั้ง: [ 20 ] [ 21 ]

เมื่อรวมกับอัลฟาที่คูณไว้ล่วงหน้า การคูณล่วงหน้าจะทำในพื้นที่เชิงเส้นก่อนการบีบอัดแกมมา[ 22 ]ส่งผลให้ได้สูตรดังต่อไปนี้:

โปรดทราบว่าช่องอัลฟาอาจมีการปรับแก้แกมมาหรือไม่ก็ได้ แม้ว่าช่องสีอื่นๆ จะมีการปรับแก้แกมมาแล้วก็ตาม

วิธีการโปร่งใสอื่นๆ

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

สามารถสร้างเอฟเฟ็กต์ที่คล้ายกันได้ด้วยช่องอัลฟา 1 บิต ดังเช่นใน โหมด สีสูง RGBA 16 บิต ของรูปแบบไฟล์ภาพTruevision TGA และ โหมดกราฟิกสีสูงของอะแดปเตอร์แสดงผล TARGAและ AT-Vista/NU-Vista ที่เกี่ยวข้อง โหมดนี้จัดสรร 5 บิตสำหรับสี RGB หลักแต่ละสี ( RGB 15 บิต ) บวกกับบิตที่เหลืออีกหนึ่งบิตเป็น "ช่องอัลฟา"

การใช้ เทคนิค Ditheringสามารถช่วยจำลองการบดบังบางส่วนได้ ในกรณีที่มีค่าอัลฟาเพียง 1 บิตเท่านั้น

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

วิธีการโปร่งใสที่ไม่ขึ้นกับลำดับบาง วิธีจะแทนที่ ตัวดำเนินการด้วยการประมาณค่าแบบสลับที่ได้[ 23 ]

ดูเพิ่มเติม

  • การประกอบภาพดิจิทัล - โทมัส พอร์เตอร์ และ ทอม ดัฟฟ์ (บทความต้นฉบับ)
  • หลักการพื้นฐานของการจัดองค์ประกอบภาพ
  • เรียนรู้การใช้งานส่วนขยาย Compositing และ Color ใน SVG 1.2 ภายใน 30 นาที!
  • การสร้างอัลฟ่าแมทติ้งและการคูณล่วงหน้า
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Alpha_compositing&oldid=1360329592 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การจัดองค์ประกอบอัลฟา

ใน กราฟิกคอมพิวเตอร์ การผสมอัลฟา หรือ การผสมอัลฟา คือกระบวนการรวมภาพหนึ่งภาพเข้ากับพื้นหลังเพื่อสร้างลักษณะ ความโปร่งใส บางส่วนหรือ ทั้งหมด [ 1 ] มักจะเป็นประโยชน์ในการเรนเดอร์...

ประวัติศาสตร์

แนวคิดของช่องอัลฟาได้รับการแนะนำโดย Alvy Ray Smith และ Ed Catmull ในช่วงปลายทศวรรษ 1970 ที่ ห้องปฏิบัติการคอมพิวเตอร์กราฟิกส์ของสถาบันเทคโนโลยีนิวยอร์ก Bruce A.

คำอธิบาย

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

แบบตรงเทียบกับแบบคูณล่วงหน้า

หากมีการใช้ช่องอัลฟาในภาพ จะมีรูปแบบการแสดงผลสองแบบที่ใช้กันทั่วไป ได้แก่ อัลฟาแบบตรง (ไม่สัมพันธ์กัน) และอัลฟาแบบคูณล่วงหน้า (สัมพันธ์กัน)