Tại sao FLAC được mã hóa từ MP3 được giải mã lớn hơn MP3?


13

Để chính xác hơn trong tiêu đề, giả sử tôi có tệp MP3 là 320 kbps. Nếu tôi giải nén nó, thì theo logic, tất cả dữ liệu ngoại trừ khoảng 320 kilobit trong mỗi giây của âm thanh sẽ là dữ liệu dư thừa, có thể được nén đi. Vì vậy, khi tôi mã hóa tệp được giải nén thành FLAC, hoặc bất kỳ codec không mất dữ liệu nào khác, tại sao nó lại lớn hơn nhiều như vậy?

Trên một lưu ý liên quan, về mặt lý thuyết có thể phục hồi một cách dễ dàng âm thanh mp3 nguồn từ một wav giải nén không? (Tôi biết bản thân mp3 bị mất. Tôi đang hỏi liệu có thể mã hóa lại mà không bị mất thêm không.)

EDIT: Hãy để tôi làm rõ câu hỏi liên quan, và lý do đằng sau nó. Giả sử tôi có một wav đã được giải nén từ tệp MP3 (và giả sử tôi không có bản mp3 vì một số lý do). Nếu tôi không muốn mất chất lượng nữa, tôi có thể mã hóa lại bằng FLAC hoặc bất kỳ bộ mã hóa không mất dữ liệu nào khác và nhận một tệp lớn hơn chỉ để duy trì chất lượng tương tự . Hoặc, tôi có thể mã hóa lại thành mp3 một lần nữa và có cùng kích thước với bản gốc nhưng mất nhiều dữ liệu hơn. Rõ ràng, cả hai trường hợp này đều không lý tưởng. Tôi có thể có kích thước gốc hoặc chất lượng ban đầu, nhưng không phải cả hai (ý tôi là chất lượng của mp3 gốc, không phải là nguồn gốc lossless gốc). Câu hỏi của tôi là: chúng ta có thể có được cả hai? Về mặt lý thuyết có thể khôi phục dữ liệu nén bị mất từ ​​dữ liệu giải nén bị mất, mà không mất nhiều hơn không?

Nếu có thể, tôi có thể tưởng tượng một thuật toán nén không mất dữ liệu nén âm thanh bằng FLAC. Sau đó, nó cũng quét âm thanh cho bất kỳ dấu hiệu nén mất dữ liệu nào trước đó và nếu được phát hiện, hãy giải nén nó một cách dễ dàng vào tệp mất dữ liệu gốc. Sau đó, nó giữ tập tin nào nhỏ hơn.


đây là hướng dẫn yêu thích của tôi để trích xuất và mã hóa âm thanh. thưởng thức, nó là một đọc tuyệt vời: mp3.radified.com

2
Bộ giải mã không chỉ đơn giản đệm 320kb lên đến 1411kb với các bit vô nghĩa, tốc độ bit của tệp PCM được đưa ra bởi giá trị bit trên mỗi mẫu, số lượng kênh và tốc độ lấy mẫu. Đối với âm thanh CD tiêu chuẩn, đây là (2 kênh) * (tốc độ mẫu 44,1KHz) * (16 bit cho mỗi mẫu) = 1411kbps.
skelly

Đơn giản, MP3 được nén, FLAC không nén. Khi bạn chuyển đổi, nó sẽ giải nén dữ liệu MP3.
Moab

2
Điều đó là sai. FLAC là một định dạng nén âm thanh.
Ryan C. Thompson

Câu trả lời:


31

Lý do FLAC lớn hơn MP3 của cùng một dữ liệu là vì chúng mã hóa khác nhau. :) MP3 chỉ mã hóa thông tin nhận thức, trong khi FLAC lưu trữ từng mẩu dữ liệu, chỉ ở định dạng nhỏ gọn hơn.

  • Chuyển đổi WAV sang FLAC cũng giống như chuyển đổi BMP thành PNG.
    • Cùng các pixel chính xác, nhưng được nén một cách dễ dàng như tệp ZIP thành kích thước nhỏ hơn.
  • Chuyển đổi WAV sang MP3 cũng giống như chuyển đổi BMP thành JPEG.
    • Thay vì lưu trữ các pixel chính xác, nó thực sự lưu trữ các hướng dẫn để tạo các hình vuông có gợn màu trông giống như bản gốc.

Tương tự, MP3 chỉ lưu trữ các hướng dẫn để tạo các gợn sóng, khi được thêm vào với nhau, âm thanh giống như bản gốc. Nhưng sự khác biệt giữa tín hiệu thật và tín hiệu được tạo ra (tín hiệu lỗi) bao gồm các tạo tác nhiễu ngẫu nhiên, giống như răng cưa JPEG . Sau đó, khi bạn lưu trữ tệp này ở định dạng cầu toàn như FLAC, nó cần lưu trữ tất cả các răng cưa đó và tiếng ồn ngẫu nhiên khó nén hơn, do đó, nó làm tăng kích thước của tệp. (Nhiễu ngẫu nhiên thực sự là không thể nén được. Khi bạn nén tệp một cách dễ dàng, bạn sẽ loại bỏ các mẫu lặp lại dư thừa và làm cho nó trông giống như nhiễu ngẫu nhiên hơn.)

Tôi cá là nếu bạn chuyển đổi JPEG thành PNG, bạn sẽ thấy loại tăng kích thước tương tự như bạn thấy khi chuyển đổi MP3 sang FLAC, vì bộ giải mã mất dữ liệu cầu toàn cần phải nhớ mọi thứ lởm chởm và giả tạo không có trong bmp gốc.

Sự tương tự này không hoàn hảo, vì âm thanh giống như một bức ảnh hơn là sơ đồ nghệ thuật đường nét, nhưng nó giúp đưa ra ý tưởng xuyên suốt:

Kích thước BMP gốc: 29 kB

Các chấm màu xanh ở dạng PNG

Kích thước PNG: 629 B

Các chấm màu xanh ở dạng JPEG với răng cưa

Kích thước JPEG: 1,7 kB

Các chấm màu xanh với răng cưa được mã hóa lại thành PNG

PNG được tạo từ JPEG: 6.2 kB


3
Nhưng tất nhiên một khi tệp được chuyển đổi thành JPG, dữ liệu sẽ bị mất và không thể phục hồi bằng cách chuyển đổi sang PNG. Nếu có nhiều dữ liệu trong FLAC / PNG thì phần lớn sẽ là hư cấu.
pavium

1
Đúng. Dữ liệu có ý nghĩa bị mất và dữ liệu sai được tạo.
endolith

1
Điều đó được minh họa rõ ràng trong sơ đồ ví dụ của endolith.
hplbsh

1
Đây là một câu trả lời tuyệt vời kỹ lưỡng. Công việc tốt!

1
Bạn đúng rồi. Tôi không biết mình đang nghĩ gì.
Kevin Panko

2

Khi bạn giải mã MP3, bất kể bitrate là gì, bạn sẽ nhận được âm thanh PCM 1411kbps / 44100Hz tiêu chuẩn (hoặc bất kể nguồn nào) có tất cả các hiệu ứng đáng chú ý và không đáng chú ý của quá trình mã hóa bị mất, định dạng này là bắt buộc để phát lại và mã hóa / mã hóa lại, mọi tệp của bất kỳ codec nào đang được giải nén khi bạn phát nó trên máy tính, máy nghe nhạc MP3, v.v.

Bộ mã hóa FLAC không quan tâm nếu âm thanh được nén đến từ MP3 được giải mã hoặc CD hoàn toàn mới, nó chỉ đơn giản là giảm kích thước của tệp nguồn mà không có bất kỳ thay đổi nào đối với dữ liệu âm thanh, có thể khôi phục hoàn toàn nguồn phát, một quá trình mất mát.

Tệp FLAC được tạo từ MP3 sẽ phát ra âm thanh giống hệt MP3, tệp FLAC được tạo từ rãnh CD sẽ phát ra âm thanh giống hệt như CD.


0

Để trả lời phần hai, nếu bạn chuyển đổi trở lại WAV từ MP3, sau đó chọn một bộ mã hóa không mất dữ liệu, bạn nên có một tệp chất lượng giống hệt nhau khi bạn hoàn thành.

Về lý do FLAC lớn hơn MP3, bạn đang sử dụng một trong các định dạng được nén nhiều hơn, giải nén nó, sau đó giải nén nó trong một công cụ nén kém hiệu quả hơn (mặc dù có chất lượng phát lại cao hơn).

Nó giống như hỏi tại sao chuyển đổi JPG thành PNG làm cho nó lớn hơn - bạn [giải nén một phần] tệp, sau đó giải nén theo cách không mất mát. FLAC, giống như PNG, không được tối ưu hóa cho không gian , nhưng về chất lượng .


FLAC (và PNG) là không mất mát, vì vậy nói rằng những thứ đó được tối ưu hóa cho chất lượng không có ý nghĩa.
Joakim Elofsson

3
@Joakim: lossless == chất lượng tối đa, vì vậy định dạng lossless được tối ưu hóa cho chất lượng theo định nghĩa .
quack quixote

2
theo quan điểm của tôi, theo định nghĩa nên không có tối ưu hóa. nếu định nghĩa là chất lượng tối đa, thì không có gì để tối ưu hóa
Joakim Elofsson

0

mp3 yêu cầu bộ giải mã có thể phát được, kết quả của bộ giải mã là xấp xỉ của bản nhạc gốc (thường là từ đĩa CD), vì vậy bộ giải mã thêm dữ liệu để có thể phát được (và đây không phải là dữ liệu vô nghĩa). Kết quả gần đúng có bitrate giống như bản gốc. Nếu không giải mã được mp3, thông tin sẽ không có ý nghĩa, vì vậy không thể chuyển đổi thành bất kỳ thứ gì khác (trừ khi được mã hóa rất giống nhau, như stereo-mp3 thành 2X mono-mp3). Và FLAC và mp3 thậm chí không gần giống nhau. Khi giải mã FLAC, kết quả không phải là xấp xỉ dữ liệu gốc được mã hóa thành FLAC, nhưng nó hoàn toàn giống nhau.

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.