Antialias ruang

Daripada Wikipedia, ensiklopedia bebas.

Dalam pemprosesan isyarat digital, antialias ruang ialah teknik mengurangkan herotan artifak yang dikenali sebagai pengaliasan semasa mewakilkan imej berpeleraian tinggi kepada peleraian yang lebih rendah. Antialias digunakan dalam fotografi digital, grafik komputer, audio digital, dan banyak lagi.

Mengantialias (anti-aliasing) bermaksud membuang komponen isyarat yang mempunyai frekuensi lebih tinggi daripada yang boleh diselesaikan dengan betul oleh alat merakam (atau mensampel).

Contoh[sunting | sunting sumber]

(a) Gambar beralias papan dam dari suatu sudut yang dikejauhannya kelihatan rawak manakala garisan di latar depannya bergerigi.
(b) Gambar sama tetapi diantialias, dikejauhan menghilang menjadi kelabu, dan garisan latar depannya kelihatan lebih licin.
(c) Terdapat pelbagai algoritma untuk mengantialias, menghasilkan penampilan yang sedikit berbeza.
Rajah 1
Interpolasi rajah 1(a) dan 1(b).
Rajah 2
Atas kiri: satu versi alias bagi bentuk mudah; atas kanan: versi antialias bagi bentuk yang serupa.
Grafik antialias dibesarkan 5 kali ganda.
Rajah 3

Dalam grafik komputer, antialias memperbaiki penampilan tepi poligon, agar ia tidak "bergerigi" tetapi dilicinkan pada skrin. Walau bagaimanapun, ia membebankan prestasi pada kad grafik dan menggunakan lebih banyak ingatan video. Tahap antialias menentukan berapa licin tepi poligon (dan berapa banyak ingatan video ia gunakan).

Rajah 1-a menggambarkan herotan visual yang berlaku apabila antialias tidak digunakan. Pada bahagian atas imej, di mana papan dam adalah sangat kecil, imej adalah sukar untuk dicam dan tidak kelihatan cantik. Sebaliknya, Rajah 1-b menunjukkan versi antialias bagi gambar yang sama. Papan dam berhampiran bahagian atas bercampur menjadi kelabu, kesan yang biasanya diingini apabila resolusi tidak cukup untuk menampakkan perincian. Malah di bahagian bawah imej, sisinya kelihatan lebih licin dalam imej antialias. Rajah 1-c menunjukkan satu lagi algoritma antialias, berdasarkan penapis sinc, yang lebih baik berbanding algoritma yang digunakan dalam 1-b.[1]

Rajah 2 menunjukkan bahagian yang diperbesarkan (diinterpolasi menggunakan algoritma jiran paling hampir) bagi Rajah 1-a (kiri) dan 1-c (kanan) untuk perbandingan. Dalam Rajah 1-c, antialias telah menginterpolasi kecerahan piksel pada sempadan lantas menghasilkan piksel kelabu kerana ruang tersebut sama-sama diduduki oleh jubin hitam dan jubin putih. Ini membantu menjadikan Rajah 1-c kelihatan lebih licin berbanding Rajah 1-a pada pembesaran asal.

Dalam Rajah 3, antialias telah digunakan untuk mengadun piksel-piksel sempadan bagi satu contoh grafik; ini mengurangkan kesan—yang menjengkelkan dari segi estetik—sempadan tajam, seperti tangga yang kelihatan pada grafik teralias di sebelah kiri. Antialias sering digunakan bagi membentuk teks pada skrin komputer, untuk menimbulkan kontur licin yang lebih hampir serupa dengan teks yang dicetak di atas kertas menggunakan dakwat.

Pada kebiasaanya, khusus dalam memaparkan fon pada skrin LCD biasa, teknik subpixel rendering seperti ClearType akan digunakan. Subpixel rendering memerlukan penapis antialias warna seimbang khas untuk merubah apa yang boleh menjadi kesalahan warna yang teruk kepada urat-urat warna yang sukar diperasan. Hasil setara boleh didapati dengan menjadikan setiap subpiksel individu boleh dikawal seolah-olah ia merupakan piksel penuh, dan membekal penapis antialias berasaskan perkakasan seperti yang dilakukan dalam pengawal paparan komputer riba OLPC XO-1. Geometri piksel mempengaruhi kesemua ini, tidak kira samada antialias dan pengawalan subpiksel dilakukan melalui perisian mahupun perkakasan.

Pendekatan antialias termudah[sunting | sunting sumber]

Pendekatan yang paling asas untuk mengantialias piksel adalah dengan menentukan berapa peratus piksel itu menduduki ruang tertentu—di sini, satu segiempat bersaiz pixel, mungkin teralih beberapa piksel—dan menggunakan peratusan itu sebagai warna. Plot yang paling asas bagi satu titik antialias tunggal putih-atas-hitam boleh dilakukan dengan kaedah ini seperti berikut:

 Define function PlotAntiAliasedPoint ( number x , number y )
     For roundedx = floor ( x ) to ceil ( x ) do
          For roundedy = floor ( y ) to ceil ( y ) do
               percent_x = 1 - abs ( x - roundedx )
               percent_y = 1 - abs ( y - roundedy )
               percent = percent_x * percent_y
               DrawPixel ( coordinates roundedx, roundedy , color percent (range 0-1) )

Secara am, kaedah ini paling sesuai untuk grafik ringkas, seperti garisan atau lengkung asas, serta penerapan-penerapan yang sebaliknya perlu menukarkan koordinat mutlak kepada koordinat kekangan piksel, seperti grafik 3D. Fungsi ini agak pantas, namun kualitinya rendah, dan menjadi semakin lembab jika bentuk yang dilukis semakin rumit. Oleh itu, ini bukanlah pendekatan terbaik jika ingin menghasilkan grafik berkualiti tinggi atau bentuk vektor yang sangat rumit.

Nota: Rutin DrawPixel di atas tidak boleh sewenang-wenangnya menetapkan nilai warna kepada peratus yang dikira. Nilai baru perlu ditambah kepada nilai sedia-ada di kedudukan itu sehingga nilai maksimum 1. Jika tidak, kecerahan setiap piksel akan sama dengan nilai paling gelap kiraan semasa untuk kedudukan itu lantas menghasilkan hasil yang sangat buruk. Sebagai contoh, jika satu titik menetapkan tahap kecerahan sesuatu piksel sebanyak 0.90, dan satu titik lain yang dikira kemudian hampir tidak menyentuh pixel itu mempunyai kecerahannya 0.05, nilai akhir yang sepatutnya ditetapkan untuk piksel itu ialah 0.95, bukan 0.05.

Lihat juga[sunting | sunting sumber]

Rujukan[sunting | sunting sumber]

  1. ^ Leler, William J. (July 1980). "Human Vision, Anti-aliasing, and the Cheap 4000 Line Display". ACM SIGGRAPH Computer Graphics. 14 (3): 308–313. doi:10.1145/965105.807509.