Header ads

Header ads
» » Camera điện thoại: phần cứng ngon mà phần mềm dở thì cũng như không...

Để chụp một bức ảnh, bạn đưa máy lên, nhấn nút chụp, và xem ngay thành quả tuyệt đẹp của mình. Nhưng ở đằng sau đó là một loạt các thao tác xử lý rất phức tạp để tổng hợp được ra hình ảnh từ những tia sáng chiếu vào cảm biến. Và đó cũng là thứ tạo nên sự khác biệt giữa một cái máy chụp ảnh đẹp vs ảnh xấu, dù cho chúng có dùng chung phần cứng camera với nhau.


Ảnh sau khi được chụp sẽ được xử lý rất nhiều


Nguyên lý cơ bản của máy ảnh thì chắc anh em cũng biết rồi ha, đó là hình ảnh ngoài đời sẽ được cho đi qua một loạt thấu kính để "hứng" được hình ảnh của anh em trên tấm phim, hoặc ở thời này là trên cảm biến ảnh.

Cảm biến ảnh là một tập hợp các diode nhạy sáng, khi có ánh sáng vào thì những diode này sẽ ghi nhận tín hiệu. Nhưng để cảm biến biết được khu vực nào có màu nào, người ta phải áp một lớp bộ lọc gọi là Bayer Filter lên trên. Bộ lọc này sẽ giúp từng pixel biết được nó đang ghi nhận màu nào trong ba màu RGB và trị số của màu là bao nhiêu (từ 0 cho đến 255).

cach_hoat_dong_cua_cam_bien_anh.png

Nhưng ngay khi vừa chụp xong, cái mà điện thoại hay máy ảnh thấy sẽ là như tấm ảnh đầu tiên bên dưới. Một đống rỗ xanh đỏ nằm trên tấm ảnh. Ít nhất thì bạn cũng thấy được hình dạng của các đối tượng trong hình, nhưng đó không phải là thứ mà người ta muốn xem. Ảnh là phải giống đời thực mới được.

Thế nên người ta mới phải dùng tới một số thuật toán nội suy để biến những ô xanh đỏ đó thành các mảng màu sắc đậm nhạt khác nhau. Những thuật toán này sử dụng phương pháp lấy các điểm lân cận nhau để biết chúng cần được xử lý ra sao, và máy sẽ biến đổi chúng thành tấm ảnh kết quả.

Bayer_filter_noi_suy_hinh_anh.jpg

Camera processing pipeline là gì?


Có được tấm ảnh là mừng rồi. Nhưng chưa hết đâu, tấm ảnh vừa được xử lý xong chắc gì đã đủ nét, chắc gì đã đủ sáng, chắc gì đã đúng màu như những gì mắt bạn có thể thấy được. Còn rất nhiều bước nữa phải xử lý, ví dụ như:
  • Chỉnh lại hiện tượng méo ảnh do thấu kính hình cầu gây ra
  • Xử lý giảm nhiễu trên tấm ảnh
  • Sự dụng thuật toán để điều chỉnh mức cân bằng trắng và chọn màu cho sát với thực tế
  • Chỉnh lại độ sáng
  • Chỉnh lại độ nét
  • Áp dụng các điều chỉnh cuối cùng cho đẹp
  • Có thể áp dụng thêm một số thuật toán AI nào đó vào nữa
  • .... và còn nhiều bước khác

Bên dưới là hình ví dụ minh họa cho một pipeline xử lý hình ảnh chụp từ cảm biến vào (lấy từ GitHub)
Fig_02_pipeline_figure_final.png

Mỗi nhà sản xuất sẽ có những bước khác nhau trong quá trình xử lý ảnh sau khi chụp xong, gọi là camera image processing pipeline. Và chính điều này ảnh hưởng nhiều tới chất lượng tấm ảnh kết quả, vì nếu thuật toán ở các bước trung gian mà không tốt thì ảnh sẽ xấu đi rất nhiều. Bộ phận xử lý pipeline này có thể là CPU, nhưng trong các điện thoại hiện đại thì người ta sẽ nhờ tới CPU lẫn bộ xử lý tín hiện hình ảnh (ISP) để có tốc độ nhanh hơn, tiết kiệm pin hơn và thuật toán tốt hơn.

Mình lấy ví dụ, giả sử Apple và Samsung dùng chung 1 phần cứng như nhau, từ thấu kính cho đến cảm biến. Nhưng nếu trong quá trình xử lý pipeline, Apple làm bước chỉnh màu quá tệ thì ảnh cho ra sẽ xấu, hoặc nếu thuật toán khử noise của Samsung quá mạnh thì sẽ làm cho tấm ảnh bị bệt và không còn tự nhiên. Thuật toán mỗi hãng mỗi khác, trình độ, năng lực mỗi hãng mỗi khác, nên anh em sẽ thấy sự khác biệt trong "nước ảnh" của mỗi hãng.

Để giúp các nhà sản xuất, Qualcomm và những hãng làm chip thường có sẵn pipeline mẫu để họ triển khai hoặc chỉnh sửa. Nhưng không phải hãng nào cũng có thể chỉnh được đủ tốt. Xiaomi, mất bao năm mà vẫn cho ra ảnh rất chán, mãi tới con Xiaomi Mi Note 10 mới gọi là ổn đấy thôi.

Và để làm được một pipeline xử lý ảnh tốt không phải chuyện đơn giản. Bạn phải dành nhiều thời gian, sức người và tiền bạc để thử nghiệm, điều chỉnh. Sau khi đã có thuật toán thì phải đi chụp test thực tế rồi về chỉnh sửa tiếp cho tới khi ưng ý. Quá trình này lặp đi lặp lại và không hề đơn giản chút nào. Hình bên dưới là quá trình điều chỉnh camera của Essential Phone. Người ta mất tới 4 tháng để ra được một kết quả tạm được.

4112413_Tinh_chinh_ISP.jpg

Đó là lý do mà các dòng smartphone đắt tiền chụp ảnh đẹp hơn (thậm chí là rất nhiều) so với các smartphone giá rẻ hơn. Do nguồn lực đầu tư vào sản phẩm khác nhau, dẫn tới chi phí khác nhau, và giá bán cũng khác nhau. Các máy cao cấp có thể thiết lập giá bán cao, vậy nên hãng mới cảm thấy đáng để đầu tư công sức, còn giá bán thấp quá thì đành hi sinh chất lượng ảnh vậy.

Trong thời gian gần đây, tình trạng này đã đỡ hơn rất nhiều. Các hãng Android xác định họ sẽ cần chiến đấu với nhau ở phân khúc tầm trung, thế nên họ đổ tiền, người và nguồn lực vào phân khúc này nhiều hơn, và người dùng chúng ta chính là những người hưởng lợi. Nhưng tất nhiên, vẫn luôn có sự chênh lệch về chất lượng ảnh giữa một cái điện thoại tầm trung và một cái máy đắt tiền.

Vì sao các nhà sản xuất không đem pipeline xử lý ảnh từ máy cao cấp xuống máy tầm trung?


Lý tưởng nhất đó là nhà sản xuất dồn hết tiền và người làm ra một pipeline xử lý ảnh cực đỉnh, sau đó đem áp dụng cho tất cả mọi chiếc điện thoại của họ. Vậy là xong, chỉ cần làm 1 lần và dùng lại được nhiều lần, cho nhiều model, quá sướng.

Nhưng đời đầu đơn giản thế. Khả năng xử lý của các máy cao cấp khác với các máy tầm trung hay giá rẻ. Nếu đem nguyên pipeline của con Galaxy S20 Ultra áp vào con Galaxy A51 thì sẽ mất thời gian hơn để xử lý, trải nghiệm của bạn không tốt vì từ khi chụp xong đến khi xem được ảnh quá lâu. Hồi xưa khi sử dụng Lumia 1020 mình từng bị vấn đề này, sau khi chụp thì phải đợi lâu ảnh mới được xử lý, thế nên mình không chụp ngay được tấm ảnh kế tiếp, bỏ lỡ nhiều khoảnh khắc đẹp, tất cả chỉ về CPU yếu.

Rồi phần cứng camera của mỗi con cũng khác nhau, thế nên pipeline cũng phải điều chỉnh lại cho khớp. Bạn chụp ảnh và xử lý hậu kỳ thì mỗi tấm cũng có một chút khác biệt đấy thôi, có phải tấm nào bạn chụp cũng đều như nhau cả đâu. Các thuật toán chạy trong pipeline cũng không khác gì.

Đó là lý do mà các máy tầm trung không thể chạy xử lý ảnh như cách mà các máy cao cấp có thể chạy.

Hi vọng qua bài này anh em hiểu được rằng để ra được một tấm ảnh thì cần những bước xử lý ra sao, và vì sao phần mềm lại trở nên cực kì quan trọng trong việc có được một tấm ảnh đẹp, nhất là trên smartphone. Cảm ơn anh em đã theo dõi.

Khóa đào tạo Power BI phân tích báo cáo để bán hàng thành công
KHÓA HỌC LẬP TRÌNH PYTHON TỪ CƠ BẢN ĐẾN CHUYÊN NGHIỆP

Khóa học Lập trình Visual Foxpro 9 - Dành cho nhà quản lý và kế toán

Khóa học hướng dẫn về Moodle chuyên nghiệp và hay
Xây dựng hệ thống đào tạo trực tuyến chuyên nghiệp tốt nhất hiện nay.



Khóa học AutoIt dành cho dân IT và Marketing chuyên nghiệp

Khoá học Word từ cơ bản tới nâng cao, học nhanh, hiểu sâu


Khóa học hướng dẫn sử dụng Powerpoint từ đơn giản đến phức tạp HIỆU QUẢ
Khóa học Thiết kế, quản lý dữ liệu dự án chuyên nghiệp cho doanh nghiệp bằng Bizagi
 Khoa hoc hay
Khóa học Phân tích dữ liệu sử dụng Power Query trong Excel


Khóa học Phân tích dữ liệu sử dụng TableAU - Chìa khóa thành công!
Nhấn vào đây để bắt đầu khóa học


Khóa học Phân tích dữ liệu sử dụng SPSS - Chìa khóa thành công!

Khóa học "Thiết kế bài giảng điện tử", Video, hoạt hình 
kiếm tiền Youtube bằng phần mềm Camtasia Studio
Khóa học HƯỚNG DẪN THIẾT KẾ VIDEO CLIP CHO DÂN MARKETING CHUYÊN NGHIỆP
 Xây dựng website​​​​
HƯỚNG DẪN THIẾT KẾ QUẢNG CÁO VÀ ĐỒ HỌA CHUYÊN NGHIỆP VỚI CANVA
Hãy tham gia khóa học để trở thành người chuyên nghiệp. Tuyệt HAY!😲👍
 Khoa hoc hay
MICROSOFT ACCESS



GOOGLE SPREADSHEETS phê không tưởng
 Khoa hoc hay
Khóa hoc lập trình bằng Python tại đây

Hacker mũ trắng




Hãy tham gia khóa học để biết mọi thứ

Để tham gia tất cả các bài học, Bạn nhấn vào đây 
Khóa học sử dụng Adobe Presenter-Tạo bài giảng điện tử
 Khoa hoc hay

Khóa học sử dụng Edmodo để dạy và học hiện đại để thành công



Cập nhật công nghệ từ Youtube tại link: congnghe.hocviendaotao.com
Tham gia nhóm Facebook
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn