Đầu tiên:
Hiểu sự khác biệt giữa mã hóa và đị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ệ:
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ế.
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.
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.
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:
Độ 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.
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ó là 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