Aturan antialiasing sub-pixel

11

Saya baru-baru ini memiliki masalah dengan sub-pixel anti-aliasing teks , yang menghasilkan warna yang sangat keras dan membuat saya bertanya-tanya bagaimana seharusnya dilakukan dengan benar:

masukkan deskripsi gambar di sini

Saya telah menggambar beberapa case ubin hitam yang menutupi pertiga piksel di bawah ini.

masukkan deskripsi gambar di sini

Warna-warna cocok dengan yang saya lihat, namun ketika saya melihat teks antialiasing dengan benar, hasilnya hampir tidak secerah dan mengganggu:

dari www.lagom.nl

Saya berasumsi harus ada keseimbangan antara intensitas cahaya yang baik dan warna yang tepat. Metode apa yang digunakan untuk sub-pixel anti-aliasing yang memberikan hasil yang baik?


Memperbarui:

Saya telah memberikan teko putih ke gambar dengan lebar 3x dan dengan multisampling. Di bawah ini saya membandingkan rata-rata setiap 3 piksel dengan menetapkan masing-masing ke RGB. Warna dalam beberapa kasus masih tampak terlalu terang (terutama dibandingkan dengan contoh di atas dari sini ), bukan berarti ponsel saya menangkapnya dengan baik.

masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini

masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini

masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini OK, jadi monitor saya perlu sedikit debu

jozxyqk
sumber
Saya percaya bahwa beberapa layar memiliki tata letak warna primer yang berbeda. Sudahkah Anda melihat hasil pada berbagai jenis layar?
trichoplax
@trichoplax tidak, tapi saya yakin kedua monitor saya adalah RGB. Juga di sini saya lebih tertarik pada bagaimana teknik antialiasing subpixel dimaksudkan untuk bekerja daripada perbaikan untuk masalah saya.
jozxyqk
Saya tidak bermaksud warna primer yang berbeda, saya hanya bermaksud bahwa merah, hijau dan biru disusun dalam pola geometris yang berbeda, jadi algoritma Anda perlu mengetahui pola mana yang digunakan untuk memberikan hasil yang baik.
trichoplax
1
@trichoplax ya, maaf saya harus mengklarifikasi, kedua monitor memiliki piksel dibagi menjadi tiga dalam urutan RGB dari kiri ke kanan seperti pada foto ini .
jozxyqk
1
Sampai batas tertentu, teks miring akan memiliki pinggiran warna yang kurang terlihat karena garis miring tidak memungkinkan warna yang sama hadir lebih dari beberapa piksel berturut-turut secara vertikal.
trichoplax

Jawaban:

3

Saya tidak yakin apa yang terjadi di sana. Melihat rendering "pertimbangan" dalam contoh Anda, "kontra" tampak seperti apa yang Anda dapatkan ketika Anda melakukan sub-pixel anti-aliasing mentah, tanpa menerapkan "perbaikan" yang diperlukan untuk membuatnya terlihat bagus. Tapi kemudian "der" dalam kata yang sama terlihat seperti tidak ada sub-pixel anti-aliasing.

Anda dapat menemukan artikel yang bagus tentang seberapa bagus anti-aliasing sub-pixel yang bekerja di sini https://www.grc.com/ct/ctwhat.htm dan untuk bagian "perbaiki" di sini https: //www.grc. com / ct / freeandclear.htm dan di sini https://www.grc.com/ct/cttech.htm

Apa yang terjadi adalah: jika Anda hanya menghitung intensitas R / G / B dengan menghitung area tertutup untuk setiap sub-pixel, pinggiran warna yang dihasilkan sangat jelek / menjengkelkan. Untuk memperbaikinya Anda harus menerapkan filter blur / low-pass horisontal ke gambar sub-pixel. Hasilnya adalah gambar yang kurang tajam tetapi juga memiliki warna jenuh yang jauh lebih sedikit. Yaitu seperti contoh "Periksa Anda".

pgroke
sumber
2

Metode apa yang digunakan untuk sub-pixel anti-aliasing yang memberikan hasil yang baik?

Anda cukup merasterisasi surat-surat itu seolah-olah lebarnya 3x.

Hasilnya berbeda dalam cara Anda rasterize kurva, terutama apa jenis skema anti-aliasing / sampling yang digunakannya dan apakah itu menggunakan font hinting . Untuk tinjauan umum yang luar biasa, lihat Eksposur Rasterisasi Teks oleh Anti-Grain Geometry (IIRC inilah yang digunakan Chromium / PDFium) atau rendering Subpixel di Wikipedia.

Apa gambar terlampir, saya tidak percaya itu ada hubungannya dengan rendering sub-pixel. Itu bisa apa saja: geometri piksel yang salah, gamma yang salah, konversi ruang warna yang salah, ...

Ecir Hana
sumber
Saya akan mengharapkan masalah dengan geometri piksel, konversi gamma atau ruang warna muncul sebagai distorsi warna pada titik-titik sewenang-wenang dalam gambar, daripada siklus reguler yang terlihat pada gambar pertanyaan. Fakta bahwa itu siklus horizontal antara antialiasing warna berlebihan dan antialiasing abu-abu murni mengisyaratkan bahwa aplikasi pertama antialiasing dilakukan pada skala yang berbeda.
trichoplax
Saya tidak memiliki penjelasan lengkap, karena distorsi tampaknya tidak selaras di antara baris teks yang berbeda, tetapi tampaknya masalahnya terkait dengan rendering sub-pixel teks yang sudah dirasterisasi daripada teks vektor.
trichoplax
@trichoplax Apa yang saya coba katakan adalah bahwa saya ragu ada masalah dengan rendering sub-pixel Anti-Grain. Sebagai gantinya saya akan menebak input menjadi hancur lebih awal daripada memasuki rasterizer. Atau nanti, tetapi tidak di rasterizer itu sendiri.
Ecir Hana
Ya saya pikir rendering sub-pixel sedang diterapkan dengan benar, tetapi ketika diterapkan pada teks pra-rasterisasi tidak memungkinkan untuk memberikan hasil yang baik. Saya tidak berpikir bahwa penyaji rusak, saya hanya berpikir itu diberi makan jenis teks yang salah.
trichoplax