Hiểu chuyển đổi và (de) nén âm thanh lossless


12

Tôi có một vài câu hỏi liên quan đến âm thanh lossless. Tôi đang xem xét trích xuất toàn bộ bộ sưu tập nhạc của mình thành .flac, nhưng tôi muốn hiểu một vài điều về nó trước tiên.

Nếu tôi có một tệp là .flac và tôi muốn làm cho nó thành, giả sử, .wav, làm thế nào tôi có thể làm điều này để không bị giảm chất lượng? Nếu tôi giải nén nó, tôi biết rằng tôi sẽ không mất chất lượng. Việc chuyển đổi .flac sang .wav có giống như giải nén không?

Điều này cũng áp dụng cho định dạng .ape là tốt? Tôi có một vài bản ghi tên miền công cộng mà tôi đã tải xuống trong .ape, nhưng tôi muốn tạo nó .flac. Sẽ .ape thành .flac có thể mà không cần sử dụng .wav như một người đàn ông trung lưu. Tôi muốn đảm bảo rằng thậm chí không mất một chút nào.

Ngoài ra, nếu có bất kỳ hướng dẫn nào giải thích thế giới của sự mất mát hoàn hảo, liệu có ai sẵn sàng chia sẻ một liên kết? :)

Câu trả lời:


14

Đầu tiên:

Hiểu sự khác biệt giữa mã hóađịnh dạng chứa .http://en.wikipedia.org/wiki/Digital_container_format

Định dạng chứa là định dạng dữ liệu "đóng gói" các dữ liệu được mã hóa khác. Nó thường chứa "thông tin meta" về dữ liệu được mã hóa hoặc có cách lưu trữ nhiều luồng dữ liệu được mã hóa riêng biệt hoặc đại loại như thế.

Một mã hóa, được sản xuất bởi một codec, là "thịt" thực sự của luồng dữ liệu.

Ví dụ phổ biến nhất tôi có thể nghĩ đến là định dạng "Ogg / Vorbis". Ogg là định dạng chứa và Vorbis là mã hóa. Vì vậy, bạn có một tệp có định dạng Ogg và bên trong có những thùng nhỏ chứa dữ liệu được mã hóa. Trong mỗi thùng là một luồng dữ liệu được mã hóa Vorbis và không có gì khác. Trên thùng có thể được đóng dấu tên của nghệ sĩ và tên bài hát, ví dụ.

Vì vậy, trở lại với công nghệ:

  1. Nếu bạn đã có nhạc ở định dạng lossy, chẳng hạn như mp3 hoặc ogg / vorbis, chuyển đổi nó sang định dạng lossless sẽ chỉ ăn hết (rất nhiều) dung lượng đĩa, và KHÔNG - hoàn toàn KHÔNG - cải thiện chất lượng của âm thanh gì. Bạn không thể tạo sự trung thực một khi nó đã bị mất. Trừ khi bạn đang viết giao diện GUI trong Visual Basic trên một số chương trình truyền hình nổi tiếng có tên CSI, nhưng đó là tưởng tượng, không phải là thực tế.

  2. Nếu bạn có nhạc ở các định dạng lossless khác và bạn muốn chuyển đổi nó thành FLAC, bạn có thể làm như vậy.

  3. Hãy cẩn thận với việc ném xung quanh thuật ngữ "WAV". Wav không phải mất mát; Trên thực tế, WAV chỉ là một thùng chứa cho các định dạng khác nhau có thể. Nó giống như AVI theo nghĩa đó. Bạn CÓ THỂ có WAV không mất dữ liệu nếu đó chỉ là dữ liệu PCM thô, nhưng bạn cũng có thể nhúng dữ liệu MPEG-1 Lớp III (mất dữ liệu) vào tệp WAV.

  4. Có thể mất dữ liệu khi chuyển đổi từ định dạng lossless này sang định dạng khác, nếu bạn giảm độ trung thực của dữ liệu. Ví dụ: nếu bạn chuyển đổi luồng dữ liệu PCM 16 bit không dấu ở 48000 Hz thành luồng dữ liệu PCM 8 bit ở 44100 Hz, bạn sẽ mất độ trung thực theo hai cách: các mẫu được hợp nhất từ ​​48000 xuống chỉ còn 44100 mỗi thứ hai (dẫn đến mất dữ liệu) và dữ liệu phải được trộn lẫn để phù hợp với thông tin chỉ có 8 bit thay vì 16 trên mỗi mẫu, điều này sẽ làm giảm đáng kể chất lượng.

Mỗi luồng âm thanh kỹ thuật số, ngay cả những luồng được mã hóa bởi bộ mã hóa nén (mất hoặc mất), đều có "Thuộc tính định dạng mẫu" sau, là các yếu tố cần thiết mô tả các thuộc tính của luồng:

  1. Độ rộng bit mẫu và độ sâu bit, tức là 8 bit, 16 bit, v.v ... Độ rộng và độ sâu bit khác nhau một cách tinh tế, và cũng có một chút endian / big-endian (không ảnh hưởng đến chất lượng) và được ký hoặc không dấu (cũng không ảnh hưởng đến chất lượng, nhưng ảnh hưởng đến cách bộ mã hóa / giải mã xử lý dữ liệu). Điểm quan trọng cần nhớ là "nhiều bit hơn là tốt hơn". Vì vậy, 32 bit tốt hơn 16 bit, v.v.

  2. Tần suất, còn được gọi là tỷ lệ lấy mẫu. Nhiều hơn là tốt hơn bởi vì bạn có nhiều "mẫu" âm thanh được phát lại mỗi giây. Hãy tưởng tượng nhanh chóng lướt ngón tay của bạn qua một cỗ bài và xem các lá bài trôi qua một cách mờ nhạt - đó là cách âm thanh kỹ thuật số về cơ bản xảy ra. Mỗi mẫu là một thẻ và nếu bạn có nhiều thẻ bay hơn mỗi giây, âm thanh sẽ liền mạch hơn. Giống như, bạn sẽ thực sự chú ý nếu bạn chỉ lật 5 thẻ mỗi giây, nhưng tất cả sẽ mờ cùng nhau nếu bạn lật hàng nghìn thẻ mỗi giây. Vì vậy, nhiều hơn là tốt hơn, bởi vì nó tự nhiên hơn và gần với thực tế hơn, đó là tương tự và vô cùng chia hết (tốt, xuống các đơn vị Planck nhưng điều đó gây tranh cãi và lạc đề).

"Mất mát" chỉ có nghĩa là nếu bạn sử dụng định dạng mẫu giống hoặc tốt hơn trong đầu ra như bạn đã sử dụng trong đầu vào, bạn sẽ không mất bất kỳ dữ liệu nào.

Vì vậy, nếu bạn chuyển từ định dạng mẫu 16 bit sang 32 bit, bạn sẽ không mất dữ liệu. Nhưng nếu bạn đi từ 32 bit đến 16 bit, bạn sẽ mất dữ liệu.

Vì vậy, câu trả lời cho câu hỏi của bạn về việc sử dụng FLAC có hợp lý hay không phụ thuộc vào dữ liệu nguồn: Nếu bạn có tệp WAV 64 bit được ghi ở định dạng mẫu đó, với 192000 Hz (còn gọi là 192KHz) và bạn chuyển đổi chúng thành " Định dạng mẫu FLAC tiêu chuẩn 16 bit và 44,1 KHz, bạn sẽ mất TON dữ liệu. Nhưng nếu tệp WAV của bạn là 8 bit chỉ với 22100 mẫu mỗi giây và bạn chuyển đổi nó thành FLAC 16 bit với 44100 mẫu mỗi giây, bạn sẽ không mất dữ liệu. Và thậm chí bạn có thể sẽ tăng kích thước tệp, tùy thuộc vào việc nén không mất dữ liệu hoặc định dạng mẫu nhỏ hơn sẽ thắng.

Định dạng mẫu sẽ ảnh hưởng đến dung lượng của tệp, vì vậy các bit "lớn hơn" và tốc độ lấy mẫu "nhanh hơn" sẽ chiếm nhiều dung lượng hơn.

Theo như mối quan tâm thực tế và tai người: bạn sẽ không thực sự chú ý nếu bạn chuyển đổi bản gốc thực sự có độ chính xác cao xuống thành FLAC 16,1KHz 16 bit. Nhưng bạn cũng sẽ không nhận thấy sự cải thiện nếu bạn chuyển đổi MP3 sang FLAC. Vì vậy, bạn cần đánh giá định dạng mẫu của dữ liệu nguồn của bạn trước khi bạn quyết định làm gì.

Bây giờ tôi đã cung cấp cho bạn tất cả thông tin này, đây là câu trả lời giải thích trực tiếp và trống rỗng, không giải thích cho câu hỏi của bạn:

Tôi có một vài câu hỏi liên quan đến âm thanh lossless. Tôi đang xem xét trích xuất toàn bộ bộ sưu tập nhạc của mình thành .flac, nhưng tôi muốn hiểu một vài điều về nó trước tiên.

Nếu bộ sưu tập nhạc của bạn nằm trên đĩa CD và bạn muốn trích xuất nó thành FLAC, thì theo ý kiến ​​của tôi là rất phù hợp. Âm thanh chất lượng CD sẽ ở mức 44,1 KHz và 16 bit cho mỗi mẫu. Điều này khớp chính xác với các cài đặt mặc định của FLAC (ít nhất là mặc định trong các bộ mã hóa tôi sử dụng). Do đó, bạn sẽ không mất bất kỳ dữ liệu nào và nó sẽ giống hệt về mặt toán học với dữ liệu đầu vào khi được giải mã.

Nếu tôi có một tệp là .flac và tôi muốn làm cho nó thành, giả sử, .wav, làm thế nào tôi có thể làm điều này để không bị giảm chất lượng? Nếu tôi giải nén nó, tôi biết rằng tôi sẽ không mất chất lượng. Việc chuyển đổi .flac sang .wav có giống như giải nén không?

Bạn có thể chuyển đổi tệp thành tệp .wav có cùng định dạng hoặc mẫu rộng hơn dữ liệu đầu vào và bạn sẽ không bị giảm chất lượng.

Khi trình phát đa phương tiện phát âm thanh trong tệp flac của bạn, về cơ bản, nó sẽ giải mã dữ liệu flac sang định dạng PCM trước khi gửi dữ liệu PCM đó đến card âm thanh. Nó sẽ giải nén nó thành cùng một dữ liệu đã đi vào; vì vậy, nếu dữ liệu PCM 16 bit 44,1 KHz đi vào, đó là những gì sẽ xuất hiện và đi đến loa của bạn.

Sự khác biệt duy nhất giữa hoạt động này và chuyển đổi âm thanh thành tệp WAV là khi bạn chuyển đổi nó thành tệp WAV, nó phải tạo một thùng chứa WAV với các bit phụ phù hợp, v.v. và nó cũng cho phép bạn chọn định dạng mẫu của tệp WAV. Nhưng giả sử rằng định dạng mẫu là giống nhau, thì sự khác biệt duy nhất giữa các tệp FLAC và WAV của bạn sẽ là kích thước tệp: các tệp WAV sẽ lớn hơn đáng kể.

Điều này cũng áp dụng cho định dạng .ape là tốt? Tôi có một vài bản ghi tên miền công cộng mà tôi đã tải xuống trong .ape, nhưng tôi muốn tạo nó .flac. Sẽ .ape thành .flac có thể mà không cần sử dụng .wav như một người đàn ông trung lưu. Tôi muốn đảm bảo rằng thậm chí không mất một chút nào.

Không, không thể làm điều này nếu không sử dụng một số định dạng PCM làm người trung gian. Nhưng vâng, nó khả năng để làm điều đó mà không cần sử dụng một file WAV. Lưu ý sự khác biệt. Kho dữ liệu PCM. Tệp WAV. Nếu sự khác biệt không rõ ràng với bạn, hãy đọc lại phần đầu bài viết của tôi. Nếu bạn muốn đảm bảo rằng "thậm chí không mất một chút", thì bạn cần kiểm tra các tệp APE của mình và hiểu định dạng mẫu của chúng và đảm bảo rằng bộ mã hóa FLAC của bạn được đặt thành mã hóa cho cùng các cài đặt.

Trong nội bộ, bất kỳ chương trình chuyển đổi âm thanh nào cũng sẽ được giải mã từ định dạng nguồn sang định dạng mẫu PCM không mất dữ liệu, sau đó lấy các mẫu PCM đó và mã hóa lại chúng ở định dạng đích.

Ngoài ra, nếu có bất kỳ hướng dẫn nào giải thích thế giới của sự mất mát hoàn hảo, liệu có ai sẵn sàng chia sẻ một liên kết? :)

Theo tôi, cách tốt nhất để học là làm. Nếu bạn dành thời gian để tìm hiểu khung Gstreamer, cách sử dụng và ý nghĩa của các điều chỉnh khác nhau của định dạng mẫu và cách xây dựng một đường ống, bạn sẽ hiểu được âm thanh kỹ thuật số thực sự mạnh mẽ. Kiểm tra nó ra. http://gstreamer.freedesktop.org/ Bạn cũng có thể lấy SDK Gstreamer từ http://code.entropywave.com/gstreamer-sdk/ (Windows được hỗ trợ) và thử nghiệm với gst-launch-0.10 mà không cần phải biên dịch bất cứ điều gì từ nguồn.

Một vài điều tiết lộ:

gst-tests-0.10 vorbisenc gst-tests-0.10 vorbitorec gst-tests-0.10 audioconvert gst-tests-0.10 audioresample

Sau đó tìm hiểu về mũ, xây dựng đường ống, vv và bạn sẽ di chuyển ngay dọc.

* Lưu ý: Tôi nhận ra tôi đã không giải thích PCM là gì. Wikipedia thực hiện công việc này tốt hơn tôi: http://en.wikipedia.org/wiki/Pulse-code_modulation


Wow, điều này chỉ đơn giản là đáng kinh ngạc như thế nào rõ ràng và làm thế nào bạn xuất sắc giải thích tất cả điều này. Không bao giờ nghĩ về một nửa những điều này trước đây, thực phẩm tốt cho suy nghĩ. Cảm ơn câu trả lời - và thời gian bạn cũng phải gõ tất cả! +1!
Ryan McClure

Bạn phải luôn luôn hướng đến việc giữ nguyên bitrate và tốc độ mẫu, vì lý tưởng là lossless ngụ ý dữ liệu PCM giống hệt nhau. Upsampling đến bất cứ thứ gì ngoài gấp đôi tốc độ mẫu sẽ không bao giờ bị mất (bạn không thể thêm số không đều) và lãng phí không gian đĩa. Trong mọi trường hợp, đó không phải là vấn đề với FLAC vì nó có thể xử lý bất kỳ độ phân giải bit PCM nào từ 4 đến 32 bit trên mỗi mẫu, bất kỳ tốc độ lấy mẫu nào từ 1 Hz đến 655.350 Hz với gia số 1 Hz và bất kỳ số kênh nào từ 1 đến 8 ( vi.wikipedia.org/wiki/FLAC#Design )
nhạc chuông

WAV luôn chứa PCM. Nó có thể không phải là PCM chất lượng cd (nhưng thực tế mà nói, bạn thường có thể giả sử điều này bởi vì nó hầu như luôn luôn như vậy), nhưng nó sẽ là PCM, không phải thứ gì khác như mpeg 3 lớp 2.
psusi

@psusi: Xin lỗi nhưng bạn sai rồi. Vui lòng đọc bài viết trên wikipedia về WAV: en.wikipedia.org/wiki/WAV . Nếu bạn muốn, tôi có thể đăng một liên kết đến một tệp WAV có chứa âm thanh MP3. Điều cần lưu ý về các tệp WAV là chúng chỉ là một tệp RIFF và một tệp RIFF là một bản sửa đổi khá nguyên thủy của định dạng phương tiện chứa phương tiện truyền thông. Nhưng ít nhất, trong mục đích cơ bản của nó, nó không quá khác biệt so với Ogg hay Matroska, ngoài việc chỉ hỗ trợ âm thanh và không phải video. Chỉnh sửa: Tôi không phải tạo tệp wav / mp3; vâng Trong thực tế, nó được liên kết đến từ Wikipedia! nch.com.au/acm/8kmp316.wav
allquixotic

Có một số điểm không chính xác trong câu trả lời này. "Tần suất, còn được gọi là tốc độ lấy mẫu. Nhiều hơn là tốt hơn vì bạn có nhiều" mẫu "âm thanh được phát lại mỗi giây." - Đây không phải là cách tốc độ mẫu hoạt động. Nếu độ sâu bit không liên quan, dữ liệu với tốc độ mẫu 48khz có thể biểu thị tín hiệu lên đến 24khz một cách dễ dàng và việc thêm nhiều mẫu sẽ không thay đổi điều đó. Nhiều mẫu chỉ ảnh hưởng đến tần số bạn có thể đại diện. Chuyển đổi từ 44.1khz sang 48khz cũng không nghiêm túc nói về sự mất mát, ngay cả khi lỗi được giới thiệu là cực kỳ nhỏ.
cooky451

1

Tôi phải không đồng ý với tuyên bố của allquixotic.

Nếu bạn đã có nhạc ở định dạng lossy, chẳng hạn như mp3 hoặc ogg / vorbis, chuyển đổi nó sang định dạng lossless sẽ chỉ ăn hết (rất nhiều) dung lượng đĩa, và KHÔNG - hoàn toàn KHÔNG - cải thiện chất lượng của âm thanh gì. Bạn không thể tạo sự trung thực một khi nó đã bị mất. Trừ khi bạn đang viết giao diện GUI trong Visual Basic trên một số chương trình truyền hình nổi tiếng có tên CSI, nhưng đó là tưởng tượng, không phải là thực tế.

Bạn đang thiếu những kiến ​​thức về kỹ thuật âm thanh và nuôi sống mọi người bằng tuyên bố sai.

  1. Cả Ogg và Vorbis đều có các thùng chứa lưu thông tin dữ liệu sóng gốc và nó có thể được chuyển đổi thành lossless với dữ liệu đó. Hãy làm google đủ.

  2. ngay cả MP3 chất lượng thấp để chuyển đổi không mất dữ liệu cũng cải thiện rất nhiều âm thanh, nó không hoàn hảo như ban đầu, nhưng nó có thể được sửa chữa bằng động lực và hoà sắc dễ dàng. https://www.izotope.com/en/products/master-and-deliver/ozone.html/OzoneDitheringGuide.pdf

Âm thanh không phải là dữ liệu 10100110101001 nên kích thước tệp nhỏ hơn không có nghĩa là nó bị mất chất lượng. Bạn có thể có kinh nghiệm với 128kbps đến 320kbps trong nhiều thập kỷ trước và đoán 128kbps thành lossless là không thể. Hãy tự mình kiểm tra nhiệm vụ đơn giản này và nhận ra nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.