Từ điển

Byte order nghĩa là gì?

Thứ tự byte là một trong những chi tiết ẩn bạn tìm thấy trong tệp khi kiểm tra metadata của nó. Tìm hiểu ý nghĩa của nó và những gì nó cho bạn biết về cách tệp của bạn được ghi.

byte-order

Byte Order, còn gọi là endianness, mô tả thứ tự mà các byte của một giá trị lớn hơn được lưu trữ. Máy tính có thể ghi các byte đó bắt đầu từ một trong hai đầu, và tệp phải cho biết nó đã dùng đầu nào để mọi chương trình đọc lại sau này nhận được đúng cùng một số.

Hai thứ tự byte

Một byte đứng riêng lẻ thì không mơ hồ. Các số quá lớn để chứa trong một byte phải được chia ra nhiều byte, và đó là nơi hai quy ước trở nên khác nhau:

  • Big-endian: lưu trữ hoặc gửi bắt đầu bằng byte chứa các bit có trọng số lớn nhất, mức độ quan trọng giảm dần từ đó
  • Little-endian: lưu trữ hoặc gửi bắt đầu bằng byte chứa các bit có trọng số nhỏ nhất, mức độ quan trọng tăng dần từ đó

Lấy ví dụ số 4660, cần hai byte. Một tệp big-endian ghi chúng là 12 34 và một tệp little-endian ghi là 34 12. Cùng một số, nhưng thứ tự ngược lại. Cũng tồn tại các dạng kết hợp, được mô tả là mixed-endian hoặc middle-endian, nhưng khá hiếm. Cả hai kiểu chính đều được dùng hàng ngày, và bạn gặp kiểu nào phụ thuộc vào thiết bị hoặc chương trình đã tạo tệp.

Những tệp nào chứa nó

Trường này quen thuộc nhất từ TIFF và mọi thứ được xây dựng trên cấu trúc TIFF, bao gồm khối siêu dữ liệu Exif bên trong ảnh JPEG và các định dạng ảnh RAW của máy ảnh như NEF, CR2, ARW và DNG. Các tệp đó bắt đầu bằng một ký hiệu hai chữ cái, II cho Intel hoặc MM cho Motorola, các công ty có bộ xử lý đã làm cho mỗi kiểu thứ tự trở nên phổ biến. Một báo cáo thường ghi rõ điều này là Little-endian (Intel, II) hoặc Big-endian (Motorola, MM). Máy ảnh, máy quét hoặc chương trình đã ghi siêu dữ liệu sẽ chọn nó.

Các vùng chứa âm thanh cũng đưa ra lựa chọn tương tự ở cấp độ toàn bộ định dạng: WAV lưu các giá trị theo kiểu little-endian và AIFF lưu chúng theo kiểu big-endian, đây là một trong những lý do hai định dạng chứa cùng chính xác các mẫu âm thanh lại không thể thay thế cho nhau từng byte một.

Tại sao điều này quan trọng đối với tệp của bạn

Thứ tự byte là lý do khiến siêu dữ liệu được ghi trên một máy có thể trông như vô nghĩa trên một máy khác. Một bộ đọc bỏ qua ký hiệu, hoặc giả định sai thứ tự, sẽ không báo lỗi một cách nhẹ nhàng: nó tạo ra các ngày tháng không thể tồn tại, các giá trị phơi sáng vô lý và độ dài trỏ ra ngoài cuối tệp, hoặc đơn giản là tuyên bố siêu dữ liệu không đọc được. Biết được thứ tự cho bạn biết cách mở và xử lý tệp cho đúng.

Điều này càng quan trọng hơn nếu bạn chỉnh sửa siêu dữ liệu, vì các giá trị mới phải được ghi lại theo đúng thứ tự mà tệp khai báo. Và nếu chính ký hiệu đó bị hỏng, toàn bộ khối siêu dữ liệu thường sẽ không đọc được dù hình ảnh hoặc âm thanh bên trong tệp vẫn còn nguyên vẹn. Trường này chỉ mô tả cách bố trí tệp, nên nó không chứa bất kỳ thông tin cá nhân nào về bạn hoặc thiết bị của bạn.

Meta Keys