Mục lục bài viết
Chụp ảnh bình thường máy phản hồi tức thời, nhưng vừa chuyển sang quay video 4K ở tốc độ khung hình cao thì hình xem trước bắt đầu giật cục, có lúc đứng khựng một nhịp rồi mới tiếp tục, thậm chí ứng dụng camera thoát đột ngột giữa chừng. Khác với máy đơ khi mở một ứng dụng nặng bất kỳ, hiện tượng này chỉ xuất hiện ở độ phân giải và tốc độ khung hình cao, bắt nguồn từ giới hạn của chuỗi xử lý dữ liệu hình ảnh chứ không phải app camera bị lỗi.
Luồng dữ liệu từ cảm biến phải đi qua bộ đệm trước khi ghi vào bộ nhớ
Cảm biến camera ghi hình ở 4K60 tạo ra lượng dữ liệu thô lớn hơn nhiều lần so với ảnh tĩnh, không thể ghi thẳng vào bộ nhớ trong mà phải qua một vùng đệm (buffer) trên RAM trước, chờ chip xử lý hình ảnh (ISP) xử lý và bộ mã hoá nén lại thành H.264 hoặc H.265. Nếu tốc độ ghi vào bộ nhớ trong chậm hơn tốc độ dữ liệu đổ vào buffer, buffer nhanh chóng đầy, hệ thống buộc phải bỏ khung hình hoặc tạm dừng nhận dữ liệu mới, tạo ra giật hoặc đứng hình trong lúc quay.
Bộ mã hoá thời gian thực chiếm riêng một phần năng lực xử lý cố định
Nén video độ phân giải cao theo thời gian thực dùng một khối phần cứng chuyên dụng trên chip (video encoder), tách biệt với nhân CPU và GPU nhưng vẫn chia sẻ băng thông bộ nhớ chung của toàn hệ thống. Khi ứng dụng camera đồng thời chạy thêm tác vụ AI như ổn định hình ảnh điện tử, lấy nét theo chủ thể, hoặc HDR nhiều khung hình, các tác vụ này cạnh tranh băng thông bộ nhớ với bộ mã hoá, khiến tốc độ nén không theo kịp tốc độ khung hình mong muốn.
Tốc độ ghi của bộ nhớ trong là điểm nghẽn thường bị bỏ qua
Máy dùng chuẩn lưu trữ UFS đời cũ hoặc bộ nhớ trong đã gần đầy có tốc độ ghi tuần tự giảm đáng kể so với lúc còn trống nhiều, do cơ chế cân bằng hao mòn của bộ nhớ flash cần thêm thời gian tìm vùng trống khả dụng. Quay video bit rate cao trên bộ nhớ đã đầy trên chín mươi phần trăm dung lượng thường giật nhiều hơn hẳn so với cùng thao tác trên bộ nhớ còn nhiều dung lượng trống, vì tốc độ ghi thực tế đã tụt xuống dưới ngưỡng cần thiết để theo kịp luồng dữ liệu từ bộ mã hoá.
Chênh lệch giữa chế độ xem trước và dữ liệu ghi thực tế
Hình ảnh hiển thị trên màn hình lúc quay là một luồng xem trước (preview stream) tách riêng khỏi luồng dữ liệu đang được ghi vào file, xử lý ở độ phân giải thấp hơn để tiết kiệm tài nguyên. Khi hệ thống ưu tiên tài nguyên cho luồng ghi file chính, luồng xem trước có thể bị giảm tần suất cập nhật, tạo cảm giác hình giật trên màn hình dù file video lưu ra thực tế vẫn mượt. Kiểm tra lại video sau khi quay là cách xác định độ giật nằm ở dữ liệu thật hay chỉ ở khâu hiển thị xem trước. Ống kính góc siêu rộng và tele cũng thường giật nhiều hơn ống chính cùng độ phân giải, vì cảm biến phụ đòi hỏi thêm bước hiệu chỉnh méo hình và cân bằng màu ở tầng ISP trước khi dữ liệu tới được bộ mã hoá.
Hiểu nhầm thường gặp
Nhiều người gặp giật khi quay 4K liền nghĩ ngay tới máy quá nóng và ngừng quay để chờ nguội, dù cảm biến nhiệt chưa báo mức cảnh báo nào. Giật do nghẽn buffer hoặc tốc độ ghi bộ nhớ xảy ra gần như ngay khi bắt đầu quay, trong khi giật do nhiệt độ chỉ xuất hiện sau một khoảng thời gian quay liên tục đủ dài để nhiệt tích luỹ. Phân biệt theo thời điểm xuất hiện giúp xác định đúng nguyên nhân trước khi xử lý.
Xem thêm
Xem thêm tại hub Chậm, lag, đứng máy: tổng hợp bài viết và bài Máy đơ khi mở camera hoặc ứng dụng nặng cụ thể: vì sao chỉ một app bị treo để phân biệt với tình trạng đơ ngay khi vừa mở ứng dụng camera.
