Hỏi đáp

Msb Lsb Là Gì – Bit Cao & Bit Thấp Trong Asm – viettingame

Sự khác lạ giữa hai định dạng file pcm Intel PCM (LSB, MSB) và Motorola PCM (MSB, LSB)

Mã hóa tiếng động PCM

Đôi chút về mã hóa tiếng động PCM

PCM (Pulse-code modulation) là phương thức thông dụng nhất sử dụng để số hóa tín hiệu tiếng động ở dạng analog. Hiểu nôm na phương thức này là: cứ sau một thời gian nhất định thì đo lấy cường độ tiếng động, số lượng cường độ tiếng động tại thời điểm đo này đó là dữ liệu tiếng động dạng số. Việc đo đạc lấy số này người ta gọi là lấy mẫu (sampling).

Đang xem: Msb lsb là gì

Lưu ý là ko phải cứ đo được cường độ1dB là người ta sử dụng số 1 để số hóa cường độ này, hay đo được 1.234dB thì sử dụng số float 1.234 để thể hiện, việc số hóa cường độ trong nội dung bài viết này ko đề cập tới. Chúng ta cứ hiểu nôm na là sau lúc đo được cường độ thì người ta sử dụng một thuật toán nào khác để chuyển từ 123.456dB thành số nguyên để lưu trong máy tính. Tất nhiên số dB càng to thì số nguyên này càng to.

*

Những số lượng lấy được sẽ được lưu vào file theo một định dạng nào khác. Trong nội dung bài viết này mình chống chỉ định nói về định dạng file raw, tức là lấy được số đo nào thì ghi vào file như vậy. Thường thì file raw như vậy sẽ lưu với đuôi mở rộng rãi là .pcmMột số đại lượng sử dụng lúc số hóa tín hiệu tiếng động:

Vận tốc lấy mẫu (sample rate)Ví dụ vận tốc lấy mẫu là 16000Hz, tức là trong một giây người ta đo cường độ tiếng động 16000 lần (16000 dòng sample), tương ứng với 16000 dữ liệu số (16000 dòng sample trong một giây).Ví dụ như trong hình trên, giả sử phía trên là đoạn tiếng động trong 1 giây thì ta sẽ có được vận tốc lấy mẫu là 26Hz tương ứng với 26 thời điểm lấy mẫu.

ResolutionMỗi thực thể dữ liệu số vừa đo được (1 mẫu – 1 sample) sẽ sử dụng bao nhiêu bit để thể hiện.Càng sử dụng nhiều bit để thể hiện thì khoảng cường độ sẽ càng to.Ví dụ sử dụng 8bit thì sẽ chỉ chia ra được 256 mức cường độ không giống nhau, 16bit thì sẽ chia được thành 65536 mức cường độ không giống nhau như vậy thì tiếng động lúc số hóa sẽ cụ thể hơn.

Xem thêm: How To Use “ Provide That ”

LSB/MSB (least significant bit /most significant bit)Thứ tự byte lúc lưu vào file là lưu từ cuối lên đầu hay lưu từ trên đầu xuống cuối. Lưu ý phía trên là thứ tự byte trong một sample chứ ko phải thứ tự sample trong một file .pcm

Định dạng Intel PCM (LSB, MSB) và Motorola PCM (MSB, LSB)

Sự khác lạ giữa hai định dạng

LSB – Least Significant BitMSB – Most Significant BitGiả sử sau lúc lấy mẫu đoạn tiếng động như hình trên ta được dãy dữ liệu sample như sau:8 – 9 – 11 – 13 – 14 – 15 – 15 – 15 – 14 – 13 – 12 …Nếu tìm resolution là 16bit (2 byte) thì mỗi sample sẽ mất 2 byte để thể hiện:

0x0008 – 0x0009 – 0x000B – 0x000D – 0x000E – 0x000E – 0x000F – 0x000F – 0x000F – 0x000E – 0x000D – 0x000C … (chỗ này mình viết dạng cơ số 16 cho dễ nhìn)

Định dạng Intel PCM (LSB, MSB)

Định dạng file PCM intel (LSB, MSB) là định dạng file mà lưu dữ liệu sample trực tiếp ko nén ko chỉnh sửa xuống file. Tức là dữ liệu sample thế nào thì ghi xuống file như vậy, không tồn tại header hay metadata nào cả.Chính vì thế không tồn tại header, metadata những thứ mà lúc sử dụng phầm mềm đọc file tiếng động pcm này (ví dụ sử dụng cooledit96), chúng ta phải đã cho thấy cho chương trình đấy biết file pcm này còn có những thông số kỹ thuật thế nào ( PCM LSB-MSB hay PCM MSB-LSB, resoution là bao nhiêu bit, số chanel là một hay 2) thì nó mới đọc đúng được.Tuy nhiên thứ tự byte trong một sample sẽ bị đảo lộn trước lúc lưu xuống file.Tức là ví dụ với dãy sample nói trên

0x0008 – 0x0009 – 0x000B – 0x000D – 0x000E – 0x000E – 0x000F – 0x000F – 0x000F – 0x000E – 0x000D – 0x000C …lúc lưu xuống file với định dạng Intel PCM (LSB, MSB) thì dãy sample nó sẽ là thế này

0x0800 – 0x0900 – 0x0B00 – 0x0D00 – 0x0E00 – 0x0E00 – 0x0F00 – 0x0F00 – 0x0F00 – 0x0E00 – 0x0D00 – 0x0C00 …đúng như trong dấu ngoặc là Least sẽ đứng trước còn Most sẽ đứng sau.

Xem thêm: reduced là gì

Định dạng file kiểu này người ta cũng thường gọi là PCM (LSB)

Định dạng Motorola PCM (MSB, LSB)

Tương tự định dạng Intel PCM cũng là lưu trực tiếp dữ liệu sample ko nén ko chỉnh sửa ko header ko metadata. Điểm khác lạ là thứ tự byte trong một sample không biến thành đảo lộn, tức là với đoạn sample mẫu trên thì ta sẽ ghi xuống file là

0x0008 – 0x0009 – 0x000B – 0x000D – 0x000E – 0x000E – 0x000F – 0x000F – 0x000F – 0x000E – 0x000D – 0x000C …y như trong tên là: Most sẽ đứng trước còn Least sẽ đứng sau.Định dạng file kiểu này người ta cũng hay gọi là PCM (MSB)

Về Viettingame.com

Viettingame.com - Chuyên trang web tổng hợp những thông tin hữu ích trên internet như thông tin về game, tin tổng hợp
Xem tất cả các bài viết của Viettingame.com →

Trả lời

Email của bạn sẽ không được hiển thị công khai.