Trong bài này xin giới thiệu với các bạn một số khái niệm cơ bản về quản lý màu sắc, cách mà các thiết bị công nghệ đang hỗ trợ những profile màu và những điểm mới trong Android 8.0 hứa hẹn giúp màu sắc của các app được chính xác hơn.
Cơ bản về quản lý màu sắc
Màu mà mắt bạn nhìn thấy được tạo thành từ 3 yếu tố: Hue (sắc độ), Saturation (bão hòa màu) và Brilliance (độ sáng). Người ta thường viết tắt 3 yếu tố này thành chữ HSB.
Như bạn đã biết, ánh sáng là những bức xạ điện từ có bước sóng nằm trong vùng quang phổ nhìn thấy được bằng mắt thường của con người (tức là từ khoảng 380 nm đến 700 nm). Trong quang phổ này, Hue là điểm mà ánh sáng có năng lượng cao nhất, Saturation là độ rộng của dải ánh sáng và Brilliance là mật độ ánh sáng khả kiến đang hiện diện tại khu vực đang xem xét. Hue định nghĩa mắt của bạn thấy màu gì, Saturation sẽ quyết định độ đậm nhật của màu, và Brilliance liên quan đến độ sáng.
Biểu đồ trên thể hiện 3 chùm sáng của 3 màu cơ bản: Red - Green - Blue. Các màu này có cùng hue, chúng đều đạt độ mạnh cực đại ở bước sóng từ 450 đến 500 nanomet. Màu đỏ có độ rộng lớn nhất nên saturation của nó cao hơn so với xanh lá, còn xanh dương có độ bão hòa thấp nhất. Nguồn sáng mà chúng ta sử dụng ở đây đạt độ sáng cực đại gần tương tự nhau nên xem như Brilliance tương đương nhau. Khi 3 chùm sáng ở trên kết hợp lại, nó tạo ra màu vàng vàng xanh xanh của một chiếc lá bị héo mà bạn thấy ở trên. Đây là cách mà màu được não bộ xử lý.
Vấn đề là màu mà bạn thấy trên máy tính, màu chụp từ camera, màu hiển thị trên điện thoại cần phải khớp với nhau. Đó là lý do vì sao các nhà in và nhà thiết kế chuyên nghiệp cần phải chỉnh màn hình của họ cho giống với màu được in ra nhất có thể. Nếu màu in ra một kiểu mà màn hình hiển thị một kiểu thì ấn phẩm sẽ bị hỏng và không truyền tải đầy đủ giá trị mà nó được làm ra.
Quản lý màu trong thực tế
Có nhiều cách để bạn có thể 'tạo ra' màu. Ở trên chúng ta đã xem qua cách dùng 3 màu RGB, trên một số phần mềm cũng cho phép dùng HSB, máy in thì dùng 4 ống mực với các màu CMYK. Dù chọn cách nào đi nữa thì mục tiêu cao nhất vẫn phải là tạo ra màu chính xác với mắt người, đỏ phải nhìn ra đỏ, xanh lá phải ra xanh lá, cam phải ra cam, xanh bạc hà thì phải giống xanh bạc hà chứ không phải cam nhưng nhìn ra hồng hay tím.
Để làm được chuyện đó không dễ tí nào. Chỉ cần một trong ba yếu tố HSB lệch đi chút xíu hoặc màu R đậm hơn màu G chút xíu là mắt người đã nhìn thấy một màu khác rồi. Trong bối cảnh những màn hình hiện đại ngày nay có thể hiển thị đến cả chục triệu màu, việc làm cho nó hiển thị đúng càng trở nên 'khó ăn' hơn và cần nhiều yếu tố để có thể tái tạo được màu chính xác.
Ống mực CMYK (K = Black) trong máy in Epson
Bạn cần một cái màn hình tốt
Hãy bắt đầu với bản thân của màn hình - linh kiện quan trọng nhất dùng để hiển thị trên bất kì chiếc máy nào. Một màn hình có thể tạm gọi là 'tốt' khi nó có thể tái tạo lại dải màu đủ rộng, gọi là Wide Color Gamut. Hiệp hội viễn thông quốc tế (ITU) có định nghĩa Wide Color Gamut (WCG) là gì, nó bao gồm rất nhiều thứ liên quan đến khoa học, vật lý và toán. Bạn nào muốn tìm hiểu kĩ có thể xem qua tài liệu về WCG được Microsoft viết cho các lập trình viên của mình.
Chưa hết, người ta còn sử dụng khái niệm 'không gian màu' để định nghĩa về số màu mà màn hình có thể hiển thị được. Do màn hình không thể nào tốt như mắt của con người nên nó chỉ thể hiện được một phần màu mà mắt có thể nhìn được, và một số 'không gian màu' đã được sinh ra để nói về điều này. Một số không gian màu phổ biến thường được sử dụng là sRGB, Adobe RGB và DCI-P3, chúng không chỉ dành thiết bị điện tử mà còn trong ngành chỉnh sửa ảnh, video, làm phim... Màn hình nào tốt thì hiển thị được 100% không gian màu mà nó được tinh chỉnh, còn không thì chỉ được 98-99% hoặc màn hình dở thì chỉ được 90% chẳng hạn. Đây là lý do vì sao bạn thấy người ta nói màn hình XYZ nào đó phủ được 100% hệ Adobe RGB hay sRGB.
DCI-P3 là không gian màu thường được sử dụng mặc định trên các smartphone, tablet và PC mới ngày nay, nó cũng được liệt kê vào diện Wide Color Gamut. Chiếc Galaxy Note 7 yểu mệnh chính là điện thoại đầu tiên có màn hình phủ được 100% hệ màu DCI-P3. Sau này iPhone 7 / 8 / iPhone X, OnePlus 5, HTC U11+ hay Pixel 2 XL cũng có màn hình P3. Nói cách khác, màn hình của những chiếc smartphone này có thể tái tạo chính xác màu như cách mà hiệp hội ITU yêu cầu.
Cần phải tinh chỉnh nó cho phù hợp
Tinh chỉnh, hay còn gọi là calibrate, là công đoạn đo hình ảnh, màu sắc của màn hình khi nó hiển thị các màu khác nhau, sau đó dùng số liệu này để điều chỉnh thông số phần cứng để màu được chính xác hơn. Tuy nhiên bạn không thể nào điều chỉnh từng màu trong số 16,7 triệu màu mà các màn hình di động nên người ta chỉ chọn ra một số màu thường dùng nhất để chỉnh thôi, và ba màu đó là sRGB (standard Red Green Blue).
sRGB được phát triển đầu tiên bởi Microsoft và HP, nó là tiêu chuẩn cho màn hình, máy in cũng như nội dung số nếu như bạn không cần một không gian màu đặc biệt nào. Mỗi màu trong sRGB sẽ được cấu thành từ 3 kênh Red - Green - Blue với giá từ 0 đến 255. Ví dụ, màu trắng là (255, 255, 255), màu đỏ là (255, 0, 0), màu xanh dương là (0, 0, 255). Người ta cân chỉnh 3 kênh này cho nó đúng nhất, và một khi RGB đã đúng thì các màu khác sẽ đúng theo.
Với những màn hình máy tính chuyên nghiệp, từng chiếc màn hình khi xuất xưởng đều được calibrate để khi đến tay người dùng nó sẽ hiển thị tốt nhất và chính xác nhất. Một số dòng máy tính xách tay cao cấp cũng được làm công đoạn này. Nhưng với điện thoại, do số lượng xuất xưởng lên tới cả nghìn, cả triệu chiếc nên việc này không khả thi.
Cách quản lý màu sắc của Android trước khi có Android 8.0 Oreo
Trước đây Android mặc định dùng sRGB làm không gian màu. Lý do là vì sRGB không có nhiều màu như Adobe RGB hay DCI-P3, tức là CPU và GPU sẽ phải làm ít việc hơn, tiết kiệm pin hơn, máy chạy nhanh hơn, bù lại hình ảnh sẽ xấu hơn. Như trong hình bên dưới, bạn có thể thấy được sự khác biệt giữa sRGB và Wide Color Gamut. Tất nhiên hình này chỉ tham khảo chứ không đúng 100%, chủ yếu để bạn hình dung được sự khác biệt giữa hai bên mà thôi.
Ở vai trò là một hãng cung cấp nền tảng chung cho nhiều phần cứng sử dụng, việc Google thiết lập sRGB cho Android là có thể hiểu được vì nó cần phải chạy tốt ngay cả với một chiếc điện thoại yếu và màn hình kém.
Nhưng như vậy thì quá thiệt thòi cho những thiết bị cao cấp như HTC U, Galaxy S, Galaxy Note, OnePlus, LG G, LG V hoặc Sony Xperia XZ series.
Những thiết bị này có tấm nền màn hình xịn, hiển thị được nhiều màu, thậm chí là 100% DCI-P3 nhưng lại bị Android 'níu chân' ở sRGB nên không thể phát huy hết tiềm năng. Thế là các hãng sản xuất phải tự chỉnh màu lại cho màn hình của họ không theo bất kì chuẩn hay không gian màu nào cả, miễn họ thấy đẹp và vừa ý là được, nó làm 'bể' không gian màu sRGB của Android. Đó là lý do màu trắng bạn thấy trên HTC U11 khác màu trắng của Note 8 và khác luôn màu trên chiếc LG G6!
Vấn đề này còn nghiêm trọng với một số app cần màu chính xác, dễ thấy nhất là app chụp ảnh hoặc xử lý video. Một màn hình quá rực rỡ, quá đậm màu sẽ khiến bạn lầm tưởng rằng camera cũng ghi nhận màu như thế, tới khi đem ảnh đi xem trên những màn hình đã được cân chỉnh chuẩn mới vỡ mộng.
Khắc phục như thế nào?
Trước khi có Android 8, các hãng phải sử dụng một chế độ riêng trong settings để chỉnh màu cho toàn bộ màn hình và toàn bộ hệ thống. Còn từ Android 8 về sau, Google cho phép từng app riêng lẻ xác định xem điện thoại có đang dùng màn hình Wide Color Gamut hay không. Nếu có, nó sẽ chuyển sang dùng Wide Color Gamut và tận dụng tối đa màn hình đẹp, còn không sẽ quay lại dùng sRGB.
Tam giác màu trắng là sRGB, màu vàng là DCI-P3
Điều này đảm bảo rằng màu đỏ, màu xanh lá, xanh dương hiển thị trên mọi thiết bị và mọi app đều giống nhau, trừ khi nó là thiết bị giá rẻ và không hỗ trợ màn hình Wide Color Gamut. Việc còn lại của Google chỉ là hướng dẫn và khuyến khích các lập trình viên đưa tính năng này vào app của mình.
Cái khó là Samsung, OnePlus, LG cũng như những hãng phần cứng khác sẽ cần phải điều chỉnh lại màn hình của mình cho đúng, còn lập trình viên thì cần update app để hỗ trợ tính năng mới nói trên. Chẳng ai lại đi thay đổi một cái mà người dùng đang không gặp (nhiều) vấn đề vì nó có thể làm trải nghiệm trở nên tệ đi nếu lỡ làm sai. Apple ép được việc sử dụng profile màu thống nhất vì họ kiểm soát cả phần cứng lẫn phần mềm cũng như các quy định trên App Store, còn Google thì không làm được như thế.
Có thể bạn chưa biết: màn hình của Pixel 2 hỗ trợ 100% DCI-P3, tức là đã hỗ trợ Wide Color Gamut, nhưng mặc định nó lại dùng không gian màu sRGB của Android. Trong khi đó, chiếc Pixel đời đầu lại không có cơ chế quản lý màu nào cả và theo Android Police, nó hiển thị sai màu trong hầu hết thời gian (rực hơn so với màu đúng). Khi Google nâng cấp Pixel 1 với Android O, hãng vẫn duy trì cách hiển thị màu như cũ để người dùng không cảm thấy bất ngờ. Đây là thứ khiến cho người dùng Pixel 1 cảm thấy màn hình Pixel 2 tệ hơn, nhạt màu hơn.
Trang Android Police cũng chê Pixel 2 vì Google đã không dồn công sức để nâng cấp các app cho chế độ Wide Color Gamut khiến hàng loạt người dùng phần nàn về tấm nền của Pixel 2 trong khi thực chất nó lại là vấn đề phần mềm. Chỉ riêng mỗi ứng dụng chụp ảnh Google Camera là có dùng WCG trong giao diện chụp ảnh, nhưng khi chụp xong và xem lại bạn vẫn phải xem bằng sRGB vì app Google Photos chưa hỗ trợ nên cảm giác ảnh sẽ hơi nhạt hơn một chút!
Hi vọng trong thời gian tới khi các sản phẩm mới được làm ra, các hãng sẽ tận dụng chế độ quản lý màu mới của Android 8 hiệu quả hơn.
Tham khảo: Android Central