Ảnh JPEG (.jpg)

ISO/IEC Tiêu chuẩn

JPEG là tiêu chuẩn nén có tổn hao được áp dụng rộng rãi nhất cho nhiếp ảnh kỹ thuật số và hình ảnh web, tận dụng độ nhạy cao hơn của mắt người đối với độ chói so với độ sắc màu.

Chuyển đổi PNG sang JPG

Trình chuyển đổi từ PNG sang JPG miễn phí trên trình duyệt. Chuyển đổi tệp ngay lập tức trên thiết bị của bạn.

Nén JPG trực tuyến

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Kiểm tra & Siêu dữ liệu

Các hệ điều hành và trình phân tích tệp nhận dạng tệp JPG bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

Chọn hoặc thả tệp vào đây

Riêng tư - tệp không bao giờ rời khỏi thiết bị của bạn

Hoặc dán Ctrl+V
Cam kết bảo vệ quyền riêng tư, không truyền dữ liệu qua mạng: 0 byte được tải lên máy chủ bên ngoài. Toàn bộ quá trình xử lý diễn ra cục bộ trong hộp cát trình duyệt của bạn.

Chữ ký ở đầu tệp (mẫu byte nhận diện)

Các hệ điều hành và trình phân tích tệp nhận dạng tệp JPG bằng cách kiểm tra chuỗi byte nhị phân đầu tệp:

CHỮ KÝ HEX (OFFSET 0):

FF D8 FF

BIỂU DIỄN ASCII: ÿØÿ

Tiêu chuẩn hóa: ISO/IEC 10918-1 / ITU-T T.81

Thông số kỹ thuật

Kiến trúc ContainerDòng dữ liệu nhị phân phân định bằng mã đánh dấu (tiền tố 0xFF) được đóng gói trong tiêu đề JFIF hoặc EXIF
NénBiến đổi cosin rời rạc (DCT) có tổn hao + mã hóa độ dài dãy và mã hóa Huffman.
Thứ tự byteThứ tự byte lớn (Big-Endian) cho chiều dài mã đánh dấu và bảng lượng tử hóa; Exif có thể dùng thứ tự byte nhỏ (II) hoặc lớn (MM)
Không gian màusRGB, Adobe RGB, CMYK, Y'CbCr, Grayscale
Kênh & Cấu trúc8-bit mỗi kênh (24-bit màu RGB) hoặc 8-bit ảnh xám
Kích thước tối đa65,535 x 65,535 pixel (số nguyên không dấu 2 byte)
Độ trong suốtKhông có (Chỉ có độ đục; không hỗ trợ kênh alpha)
Truyền phát & Tăng dầnMã hóa JPEG lũy tiến lưu trữ nhiều lượt truyền phổ từ độ phân giải thấp đến cao

Ma trận so sánh kỹ thuật: JPG so với các đối thủ

Thuộc tính kỹ thuậtJPG (Hiện tại)WebPAVIFPNG
Mô hình nénDCT có tổn hao + Mã hóa HuffmanCó tổn hao (VP8) & Không tổn haoCó tổn hao (AV1) & Không tổn haoNén Deflate không mất dữ liệu
Độ trong suốt AlphaKhông hỗ trợ kênh alpha (luôn đục)Độ trong suốt alpha 8-bitAlpha 8-bit / 10-bit / 12-bitAlpha toàn phần 8-bit / 16-bit
Giải mã phần cứngHỗ trợ giải mã JPEG bằng phần cứng chuyên dụng tùy thuộc vào chip và thiết bị.Giải mã phần cứng phổ biến trong các SoC hiện đạiGiải mã phần cứng đang mở rộng nhanh chóng trong các GPU hiện đạiGiải mã nhanh dựa trên CPU
Hiệu suất nénMức cơ sở tốt cho ảnh chụpCó thể nhỏ hơn JPEG; kết quả tùy ảnh và bộ mã hóaCó thể nhỏ hơn JPEG; kết quả tùy ảnh và bộ mã hóaKhông hiệu quả đối với nội dung nhiếp ảnh
Độ sâu màuTiêu chuẩn 8-bit mỗi kênh (24-bit Truecolor)8-bit mỗi kênhDải màu rộng HDR 10-bit & 12-bit8-bit & 16-bit mỗi kênh

Các dạng hỏng thường gặp và hướng dẫn khôi phục bằng mã hex

Trình xem ảnh hiển thị 'Premature end of JPEG file' hoặc phần dưới của ảnh có màu xám đồng nhất hoặc dải màu sặc sỡ.

Nguyên nhân gốc rễ: Quá trình tải xuống bị cắt cụt hoặc ghi lưu trữ chưa hoàn thành, thiếu mã đánh dấu phần kết thúc 0xFFD9 (EOI) và dữ liệu quét ảnh.

Khắc phục: Thêm mã đánh dấu 0xFFD9 vào cuối luồng dữ liệu bị cắt cụt để cho phép bộ giải mã hiển thị phần trên nguyên vẹn của bức ảnh.

Màu sắc hình ảnh xuất hiện tình trạng bị lệch nặng, đảo ngược hoặc có màu sắc ảo giác.

Nguyên nhân gốc rễ: Tiêu đề không gian màu CMYK bị đảo ngược hoặc cấu hình ICC được nhúng không hợp lệ.

Khắc phục: Chuyển đổi không gian màu từ CMYK sang sRGB bằng ImageMagick ('magick broken.jpg -colorspace sRGB fixed.jpg').

Tệp không mở được và thông báo lỗi 'Invalid marker found'.

Nguyên nhân gốc rễ: Lỗi bit bên trong tiêu đề bảng lượng tử hóa (DQT 0xFFDB) hoặc bảng Huffman (DHT 0xFFC4).

Khắc phục: Thay thế các mã đánh dấu tiêu đề bị hỏng bằng các bảng Huffman và Lượng tử hóa JFIF cơ sở chuẩn được trích xuất từ một tệp JPEG nguyên vẹn.

Phân tích bảo mật và các đường tấn công nhằm vào bộ phân tích cú pháp

Bảo mật JPEG chủ yếu liên quan đến việc rò rỉ quyền riêng tư siêu dữ liệu (EXIF) và lỗi tràn bộ đệm trong các trình giải mã C cũ (libjpeg).

Các véc-tơ tấn công đã biết

  • Tiết lộ siêu dữ liệu nhạy cảm: Các tiêu đề EXIF chưa được xóa chứa tọa độ GPS, số sê-ri máy ảnh và bản xem trước hình thu nhỏ.
  • Đọc quá giới hạn bộ đệm và tràn số nguyên trong quá trình phân tích cú pháp libjpeg cũ làm hỏng mã đánh dấu khởi động lại (RST) hoặc tập lệnh quét lũy tiến.
  • Tệp đa hình kết hợp tiêu đề JPEG với tệp lưu trữ ZIP hoặc RAR có thể thực thi.

Biện pháp phòng thủ tốt nhất: Luôn xóa siêu dữ liệu vị trí địa lý EXIF và GPS khi xuất bản ảnh của người dùng để bảo vệ quyền riêng tư. Sử dụng các trình giải mã an toàn bộ nhớ hiện đại (như image-rs bằng ngôn ngữ Rust) hoặc trình giải mã WebAssembly chạy trong sandbox.

Nguồn gốc lịch sử và các cột mốc

1998Các tiêu chuẩn vùng chứa JFIF và EXIF thiết lập vị thế thống trị của máy ảnh kỹ thuật số.
1992Đặc tả JPEG được phê chuẩn là ISO/IEC 10918-1.
1986Nhóm Chuyên gia Nhiếp ảnh Chung được thành lập theo ISO và CCITT.

Ưu điểm & Lợi ích chính

  • Nhiều phần mềm và thiết bị hình ảnh hỗ trợ giải mã JPEG, nhưng khả năng tương thích tùy thuộc vào thiết bị và ứng dụng.
  • Tỷ lệ nén tuyệt vời (10:1 đến 20:1) cho tông màu liên tục của nhiếp ảnh.
  • Dung lượng tệp nhỏ với khả năng hiển thị lũy tiến.

Hạn chế & Nhược điểm kỹ thuật

  • Nén có tổn hao gây ra các hiện tượng tạo tác nén (hiện tượng viền sáng và dạng khối) dọc theo các cạnh sắc nét.
  • Không hỗ trợ kênh độ trong suốt.
  • Sự suy giảm thế hệ xảy ra mỗi khi tệp được giải nén, chỉnh sửa và lưu lại.

Thông tin kỹ thuật thú vị

  • Hình ảnh thử nghiệm 'Lenna' kinh điển dùng để phát triển thuật toán nén JPEG được quét từ số phát hành tháng 11 năm 1972 của tạp chí Playboy.
  • Lấy mẫu phụ JPEG 4:2:0 giảm một nửa độ phân giải sắc màu theo cả chiều ngang và chiều dọc với mức độ suy giảm cảm nhận gần như bằng không.
  • Mọi tệp JPEG tiêu chuẩn đều bắt đầu bằng mã đánh dấu 0xFFD8 (Bắt đầu ảnh) và kết thúc bằng 0xFFD9 (Kết thúc ảnh).

Các câu hỏi kỹ thuật thường gặp

Tại sao việc lưu tệp JPEG nhiều lần lại làm giảm chất lượng hình ảnh?

JPEG là định dạng nén có tổn hao không thể đảo ngược. Mỗi khi bạn giải nén và lưu lại tệp JPEG, bước lượng tử hóa DCT sẽ loại bỏ các chi tiết không gian tần số cao và xấp xỉ lại các khối pixel 8x8, gây ra hiện tượng suy giảm chất lượng qua mỗi lần lưu.

JPEG lũy tiến là gì và tại sao nó hữu ích?

Một tệp JPEG cơ sở tiêu chuẩn giải mã từng dòng quét từ trên xuống dưới. JPEG lũy tiến mã hóa dữ liệu hình ảnh thành nhiều lượt truyền dữ liệu theo dải tần, cho phép trình duyệt hiển thị ngay lập tức bản mờ độ phân giải thấp của toàn bộ hình ảnh và làm sắc nét dần dần khi các byte được tải xuống.

Lấy mẫu phụ sắc màu là gì (4:2:0 so với 4:4:4)?

Tế bào võng mạc của con người có nhiều tế bào hình que (độ chói/độ sáng) hơn tế bào hình nón (màu sắc). JPEG tận dụng điều này bằng cách giữ nguyên độ phân giải độ sáng đầy đủ (Y) đồng thời giảm một nửa độ phân giải màu (Cb, Cr) theo chiều ngang và chiều dọc (4:2:0), loại bỏ 50% dữ liệu thô trước khi nén mà gần như không thể nhận thấy sự suy giảm.

Hình ảnh JPEG có thể có nền trong suốt không?

Không. Đặc tả JPEG tiêu chuẩn không có khái niệm về kênh alpha. Nếu cần độ trong suốt, bạn phải chuyển đổi hình ảnh sang WebP, AVIF hoặc PNG.

Các cặp chuyển đổi JPG liên quan