ทำความเข้าใจเกี่ยวกับการแปลงและ (de) การบีบอัดของเสียงแบบไม่สูญเสีย


12

ฉันมีคำถามสองสามข้อเกี่ยวกับเสียง lossless ฉันกำลังพิจารณาที่จะริพคอลเล็คชั่นเพลงทั้งหมดของฉันเป็น lossless .flac แต่ฉันต้องการที่จะเข้าใจบางสิ่งเกี่ยวกับมันก่อน

หากฉันมีไฟล์ที่เป็น. flac และฉันต้องการทำให้เป็นเช่นนั้นพูด. wav ฉันจะทำสิ่งนี้เพื่อไม่ให้สูญเสียคุณภาพได้อย่างไร ถ้าฉันขยายมันฉันรู้ว่าฉันจะไม่สูญเสียคุณภาพ การแปลง. flac เป็น .wav เหมือนกับการคลายการบีบอัดหรือไม่

รูปแบบนี้ใช้กับรูปแบบ. ape ด้วยหรือไม่ ฉันมีการบันทึกโดเมนสาธารณะไม่กี่แห่งที่ฉันได้ดาวน์โหลดในรูปแบบ.. แต่ฉันต้องการให้เป็น. flac จะ. การ. flac เป็นไปได้โดยไม่ใช้. wav เป็นคนกลาง ฉันต้องการให้แน่ใจว่าไม่มีแม้แต่น้อยจะหายไปในทางใดทางหนึ่ง

นอกจากนี้หากมีคำแนะนำใด ๆ ที่อธิบายถึงโลกแห่งการสูญเสียอย่างไร้ที่ติใคร ๆ ก็เต็มใจที่จะแชร์ลิงก์หรือไม่? :)

คำตอบ:


14

ครั้งแรก:

เข้าใจความแตกต่างระหว่างนั้นการเข้ารหัสและรูปแบบภาชนะ http://en.wikipedia.org/wiki/Digital_container_format

รูปแบบคอนเทนเนอร์เป็นรูปแบบข้อมูลที่ "ห่อหุ้ม" ข้อมูลที่เข้ารหัสอื่น ๆ มันมักจะมี "ข้อมูลเมตา" เกี่ยวกับข้อมูลที่เข้ารหัสหรือมีวิธีการจัดเก็บสตรีมข้อมูลที่เข้ารหัสแยกหลายรายการหรืออะไรทำนองนั้น

การเข้ารหัสที่ผลิตโดยตัวแปลงสัญญาณเป็น "เนื้อ" ที่แท้จริงของกระแสข้อมูล

ตัวอย่างที่พบได้บ่อยที่สุดคือรูปแบบ "Ogg / Vorbis" Ogg เป็นรูปแบบคอนเทนเนอร์และ Vorbis เป็นการเข้ารหัส ดังนั้นคุณมีไฟล์ที่มีรูปแบบ Ogg และภายในมีถังเล็ก ๆ เหล่านี้ที่มีข้อมูลที่เข้ารหัส ภายในที่เก็บข้อมูลแต่ละชุดจะมีสตรีมข้อมูลที่เข้ารหัส Vorbis และไม่มีอะไรอื่นอีก บนถังอาจมีการประทับตราชื่อของศิลปินและชื่อเพลงเป็นต้น

ดังนั้นกลับไปที่เทคโนโลยี:

  1. หากคุณมีเพลงในรูปแบบ lossy อยู่แล้วเช่น mp3 หรือ ogg / vorbis การแปลงเป็นรูปแบบ lossless จะกินเนื้อที่ดิสก์ (มาก) เนื้อที่และจะไม่ดีขึ้นอย่างแน่นอน - จะไม่ปรับปรุงคุณภาพของ เสียงใด ๆ คุณไม่สามารถสร้างความจงรักภักดีได้เมื่อมันสูญหายไปแล้ว นอกเสียจากคุณกำลังเขียนอินเทอร์เฟซ GUI ใน Visual Basic บนรายการทีวียอดนิยมบางรายการที่เรียกว่า CSI แต่นั่นไม่ใช่ความเป็นจริง

  2. หากคุณมีเพลงในรูปแบบ lossless อื่น ๆ และคุณต้องการแปลงเป็น FLAC คุณสามารถทำได้

  3. ระวังการขว้างปาคำว่า "WAV" Wav ไม่ต้องขาดทุน จริงๆแล้ว WAV เป็นเพียงคอนเทนเนอร์สำหรับรูปแบบที่เป็นไปได้ต่างๆ มันเหมือนกับ AVI ในแง่นั้น คุณสามารถมี lossless WAV ได้หากเป็นเพียงข้อมูลดิบ PCM แต่คุณสามารถฝังข้อมูล MPEG-1 Layer III (lossy) ลงในไฟล์ WAV ได้

  4. เป็นไปได้ที่จะสูญเสียข้อมูลเมื่อทำการแปลงจากรูปแบบที่ไม่สูญเสียรูปแบบหนึ่งไปเป็นรูปแบบอื่นหากคุณลดความน่าเชื่อถือของข้อมูล ตัวอย่างเช่นถ้าคุณแปลงสตรีมข้อมูล PCM 16 บิตที่ไม่ได้ลงชื่อที่ 48000 Hz เป็นสตรีมข้อมูล PCM 8 บิตที่ 44100 Hz คุณจะสูญเสียความจงรักภักดีในสองวิธี: ตัวอย่างจะถูกรวมเข้าด้วยกันจาก 48000 เหลือเพียง 44100 ต่อ วินาที (ทำให้สูญเสียข้อมูล) และข้อมูลจะต้องถูกผสมลงเพื่อให้พอดีกับข้อมูลเป็น 8 บิตแทนที่จะเป็น 16 ต่อตัวอย่างซึ่งจะทำให้คุณภาพเสียหายอย่างมาก

สตรีมเสียงดิจิตอลทุกแบบแม้กระทั่งที่เข้ารหัสโดยตัวเข้ารหัสแบบบีบอัด (แบบ lossy หรือ lossless) มี "คุณสมบัติรูปแบบตัวอย่าง" ต่อไปนี้ซึ่งเป็นองค์ประกอบสำคัญที่อธิบายคุณสมบัติของสตรีม:

  1. ตัวอย่างความกว้างบิตและความลึกบิตเช่น 8 บิต, 16 บิต ฯลฯ ความกว้างบิตและความลึกแตกต่างกันเล็กน้อยและยังมีเล็ก ๆ น้อย ๆ endian / ใหญ่ -dian (ซึ่งไม่ส่งผลกระทบต่อคุณภาพ) และลงนามหรือไม่ได้ลงนาม ส่งผลกระทบต่อคุณภาพ แต่จะส่งผลต่อวิธีที่ตัวเข้ารหัส / ตัวถอดรหัสเกี่ยวข้องกับข้อมูล) จุดสำคัญที่ต้องจำคือ "บิตมากกว่าดีกว่า" ดังนั้น 32 บิตดีกว่า 16 บิตเป็นต้น

  2. ความถี่หรือที่เรียกว่าอัตราการสุ่มตัวอย่าง มากขึ้นดีกว่าเพราะคุณมี "ตัวอย่าง" ของการเล่นเสียงต่อวินาที ลองจินตนาการถึงการแปรงนิ้วของคุณอย่างรวดเร็วบนสำรับไพ่และดูไพ่ที่ผ่านไปอย่างเบลอ - นั่นคือสิ่งที่เกิดขึ้นในระบบเสียงดิจิตอล แต่ละตัวอย่างเป็นการ์ดและหากคุณมีการ์ดที่บินได้มากขึ้นต่อวินาทีเสียงจะราบรื่นยิ่งขึ้น เช่นคุณจะสังเกตเห็นว่าคุณเพิ่งพลิกไพ่ 5 ใบต่อวินาที แต่มันจะเบลอถ้าคุณพลิกไพ่หลายพันใบต่อวินาที มากกว่านั้นดีกว่าเพราะมันเป็นธรรมชาติและใกล้เคียงกับความเป็นจริงมากขึ้นซึ่งเป็นแบบอะนาล็อกและการแบ่งอย่างไม่สิ้นสุด (ดีลงไปที่หน่วยพลังค์ แต่เป็นที่ถกเถียงกัน

"Lossless" เพียงหมายความว่าถ้าคุณใช้รูปแบบตัวอย่างที่เหมือนกันหรือดีกว่าในเอาต์พุตที่คุณใช้ในอินพุตคุณจะไม่สูญเสียข้อมูลใด ๆ

ดังนั้นถ้าคุณไปจากรูปแบบตัวอย่าง 16 บิตถึง 32 บิตคุณจะไม่สูญเสียข้อมูล แต่ถ้าคุณเปลี่ยนจาก 32 บิตเป็น 16 บิตคุณจะสูญเสียข้อมูล

ดังนั้นคำตอบสำหรับคำถามของคุณว่าการใช้ FLAC นั้นสมเหตุสมผลหรือไม่นั้นขึ้นอยู่กับแหล่งข้อมูล: ถ้าคุณมีไฟล์ WAV แบบ 64- บิตที่ถูกบันทึกไว้ในรูปแบบตัวอย่างนั้นด้วย 192000 Hz (aka 192KHz) และคุณแปลงเป็น " รูปแบบตัวอย่าง FLAC มาตรฐานขนาด 16 บิตและ 44.1 KHz คุณจะสูญเสียข้อมูลจำนวนหนึ่งตัน แต่ถ้าไฟล์ WAV ของคุณเป็น 8 บิตมีเพียง 22100 ตัวอย่างต่อวินาทีและคุณแปลงเป็น 16-bit FLAC ด้วย 44100 ตัวอย่างต่อวินาทีคุณจะไม่สูญเสียข้อมูล และคุณอาจท้ายเพิ่มขนาดไฟล์ขึ้นอยู่กับว่าการบีบอัดแบบไม่บีบอัดหรือรูปแบบตัวอย่างขนาดเล็กจะชนะ

รูปแบบตัวอย่างจะมีผลต่อปริมาณพื้นที่ไฟล์ที่ใช้ดังนั้นบิต "ใหญ่" และอัตราการสุ่มตัวอย่าง "เร็ว" จะใช้พื้นที่มากขึ้น

เท่าที่มีความกังวลในทางปฏิบัติและหูมนุษย์: คุณจะไม่สังเกตเห็นว่าคุณแปลงต้นฉบับที่มีความเที่ยงตรงสูงเป็น 16- บิต 44.1KHz FLAC แต่คุณจะไม่สังเกตเห็นการปรับปรุงหากคุณแปลง MP3 เป็น FLAC ดังนั้นคุณต้องประเมินรูปแบบตัวอย่างของแหล่งข้อมูลของคุณก่อนที่คุณจะตัดสินใจทำ

ตอนนี้ฉันได้ให้ข้อมูลทั้งหมดแก่คุณแล้วต่อไปนี้เป็นคำตอบที่ตรงและไม่มีคำตอบสำหรับคำถามของคุณ:

ฉันมีคำถามสองสามข้อเกี่ยวกับเสียง lossless ฉันกำลังพิจารณาที่จะริพคอลเล็คชั่นเพลงทั้งหมดของฉันเป็น lossless .flac แต่ฉันต้องการที่จะเข้าใจบางสิ่งเกี่ยวกับมันก่อน

ถ้าคอลเล็คชั่นเพลงของคุณอยู่ในแผ่นซีดีและคุณต้องการที่จะคัดลอกมาที่ FLAC นั่นเป็นความคิดที่ดีมากสำหรับฉัน เสียงคุณภาพซีดีจะอยู่ที่ 44.1 KHz และที่ 16 บิตต่อตัวอย่าง ตรงนี้ตรงกับการตั้งค่าเริ่มต้นของ FLAC (อย่างน้อยค่าเริ่มต้นในโปรแกรมเปลี่ยนไฟล์ที่ฉันใช้) ดังนั้นคุณจะไม่สูญเสียข้อมูลใด ๆ และจะเหมือนกันกับข้อมูลอินพุตเมื่อถอดรหัส

หากฉันมีไฟล์ที่เป็น. flac และฉันต้องการทำให้เป็นเช่นนั้นพูด. wav ฉันจะทำสิ่งนี้เพื่อไม่ให้สูญเสียคุณภาพได้อย่างไร ถ้าฉันขยายมันฉันรู้ว่าฉันจะไม่สูญเสียคุณภาพ การแปลง. flac เป็น .wav เหมือนกับการคลายการบีบอัดหรือไม่

คุณสามารถแปลงเป็นไฟล์. wav ด้วยรูปแบบตัวอย่างเดียวกันหรือกว้างกว่าข้อมูลอินพุตและคุณจะไม่สูญเสียคุณภาพใด ๆ

เมื่อเครื่องเล่นสื่อเล่นเสียงในไฟล์ flac ของคุณจะเป็นการถอดรหัสข้อมูล flac เป็นรูปแบบ PCM ก่อนที่จะส่งข้อมูล PCM นั้นไปยังการ์ดเสียง มันจะขยายไปยังข้อมูลเดียวกันที่แน่นอนที่เข้าไป ดังนั้นหากข้อมูล 16-bit 44.1 KHz PCM เข้าไปนั่นคือสิ่งที่จะออกมาและไปที่ลำโพงของคุณ

ข้อแตกต่างระหว่างกิจกรรมนี้และการแปลงเสียงเป็นไฟล์ WAV คือเมื่อคุณแปลงเป็นไฟล์ WAV จะต้องสร้างคอนเทนเนอร์ WAV ด้วยฟิลเลอร์บิตที่เหมาะสมเป็นต้นและยังช่วยให้คุณเลือกรูปแบบตัวอย่าง ของไฟล์ WAV แต่สมมติว่ารูปแบบตัวอย่างเหมือนกันดังนั้นความแตกต่างเพียงอย่างเดียวระหว่างไฟล์ FLAC และ WAV ของคุณจะเป็นขนาดไฟล์: ไฟล์ WAV จะมีขนาดใหญ่กว่ามาก

รูปแบบนี้ใช้กับรูปแบบ. ape ด้วยหรือไม่ ฉันมีการบันทึกโดเมนสาธารณะไม่กี่แห่งที่ฉันได้ดาวน์โหลดในรูปแบบ.. แต่ฉันต้องการให้เป็น. flac จะ. การ. flac เป็นไปได้โดยไม่ใช้. wav เป็นคนกลาง ฉันต้องการให้แน่ใจว่าไม่มีแม้แต่น้อยจะหายไปในทางใดทางหนึ่ง

ไม่มีก็ไม่ได้ที่จะทำเช่นนี้โดยไม่ต้องใช้บางรูปแบบ PCM เป็นคนกลาง แต่ใช่มันเป็นไปได้ที่จะทำโดยไม่ต้องใช้ไฟล์ WAV สังเกตความแตกต่าง PCM datastream ไฟล์ WAV หากความแตกต่างไม่ชัดเจนสำหรับคุณให้อ่านจุดเริ่มต้นโพสต์ของฉันอีกครั้ง หากคุณต้องการให้แน่ใจว่า "ไม่สูญเสียแม้แต่น้อย" คุณจะต้องตรวจสอบไฟล์ APE ของคุณและเข้าใจว่ามีรูปแบบตัวอย่างใดบ้างและตรวจสอบให้แน่ใจว่าตัวเข้ารหัส FLAC ของคุณถูกตั้งค่าให้เข้ารหัสสำหรับการตั้งค่าเดียวกัน

ภายในโปรแกรมแปลงเสียงจะถอดรหัสจากรูปแบบต้นฉบับไปเป็นรูปแบบตัวอย่าง PCM แบบไม่สูญเสียบางส่วนจากนั้นนำตัวอย่าง PCM เหล่านั้นและเข้ารหัสในรูปแบบปลายทางอีกครั้ง

นอกจากนี้หากมีคำแนะนำใด ๆ ที่อธิบายถึงโลกแห่งการสูญเสียอย่างไร้ที่ติใคร ๆ ก็เต็มใจที่จะแชร์ลิงก์หรือไม่? :)

ในความคิดของฉันวิธีที่ดีที่สุดในการเรียนรู้คือการทำ หากคุณใช้เวลาในการเรียนรู้กรอบ Gstreamer วิธีใช้และความหมายของ tunables ต่างๆของรูปแบบตัวอย่างและวิธีสร้างไพพ์คุณจะออกมาด้วยความเข้าใจที่แข็งแกร่งของเสียงดิจิตอล ลองดูสิ http://gstreamer.freedesktop.org/นอกจากนี้คุณยังสามารถคว้า Gstreamer SDK จากhttp://code.entropywave.com/gstreamer-sdk/ (รองรับ Windows) และทดลองใช้ gst-launch-0.10 โดยไม่ต้องรวบรวมอะไรเลย จากแหล่งที่มา

สิ่งที่เปิดเผยบางประการ:

gst-inspect-0.10 vorbisenc gst-inspect-0.10 vorbisdec gst-inspect-0.10 audioconvert gst-inspect-0.10 audioresample

จากนั้นเรียนรู้เกี่ยวกับหมวกสร้างท่อ ฯลฯ และคุณจะเคลื่อนไหวไปพร้อม

* หมายเหตุ: ฉันรู้ว่าฉันไม่ได้อธิบายว่า PCM คืออะไร Wikipedia ทำงานได้ดีกว่านี้: http://en.wikipedia.org/wiki/Pulse-code_modulation


ว้าวนี่เป็นเรื่องเหลือเชื่อที่อธิบายได้อย่างชัดเจนและยอดเยี่ยมมากเพียงใด ไม่เคยคิดถึงสิ่งเหล่านี้มาก่อนครึ่งหนึ่งเป็นอาหารที่ดีสำหรับความคิด ขอบคุณสำหรับคำตอบ - และเวลาที่คุณพิมพ์สิ่งนี้ด้วย! +1!
Ryan McClure

คุณควรตั้งเป้าหมายที่จะคงอัตราบิตเรตและอัตราการสุ่มตัวอย่างไว้เหมือนเดิมเพราะการไม่สูญเสียข้อมูลจะหมายถึงข้อมูล PCM ที่เหมือนกัน การยกตัวอย่างสิ่งอื่นนอกเหนือจากสองเท่าของอัตราตัวอย่างจะไม่สูญเปล่าเลย (คุณไม่สามารถเพิ่มค่าศูนย์เท่า ๆ กัน) และสิ้นเปลืองเนื้อที่ดิสก์ ไม่ว่าในกรณีใดก็ตามไม่ควรมีปัญหากับ FLAC เนื่องจากสามารถจัดการความละเอียดบิต PCM ใด ๆ จาก 4 ถึง 32 บิตต่อตัวอย่างอัตราการสุ่มตัวอย่างใด ๆ จาก 1 Hz ถึง 655,350 Hz ใน 1 Hz ที่เพิ่มขึ้นและจำนวนช่องใด ๆ จาก 1 ถึง 8 ( en.wikipedia.org/wiki/FLAC#Design )
mtone

WAV ประกอบด้วย PCM เสมอ มันอาจจะไม่ใช่ PCM คุณภาพซีดี (แต่จริงๆแล้วคุณมักจะคิดว่ามันเป็นแบบนี้เสมอไป) แต่มันจะเป็น PCM ไม่ใช่อย่างอื่นเช่น mpeg 3 layer 2
psusi

@psusi: ขออภัย แต่คุณผิด โปรดอ่านบทความวิกิพีเดียใน WAV: en.wikipedia.org/wiki/WAV ถ้าคุณต้องการฉันสามารถโพสต์ลิงค์ไปยังไฟล์ WAV ที่มีไฟล์เสียง MP3 สิ่งที่ควรคำนึงถึงเกี่ยวกับไฟล์ WAV คือเป็นเพียงไฟล์ RIFF และไฟล์ RIFF เป็นการแก้ไขรูปแบบดั้งเดิมของสื่อคอนเทนเนอร์ แต่ในจุดประสงค์พื้นฐานอย่างน้อยก็ไม่แตกต่างจาก Ogg หรือ Matroska นอกเหนือจากการรองรับเฉพาะเสียงและไม่ใช่วิดีโอ แก้ไข: ฉันไม่ต้องสร้างไฟล์ wav / mp3; เย้! อันที่จริงมันเชื่อมโยงมาจาก Wikipedia! nch.com.au/acm/8kmp316.wav
allquixotic

คำตอบนี้มีความไม่ถูกต้องอยู่บ้าง "ความถี่หรือที่เรียกว่าอัตราการสุ่มตัวอย่างมากขึ้นดีกว่าเพราะคุณมี" ตัวอย่าง "ของเสียงที่กำลังเล่นต่อวินาที - นี่ไม่ใช่วิธีการทำงานของอัตราตัวอย่าง หากความลึกของบิตไม่ได้เกี่ยวข้องข้อมูลที่มีอัตราตัวอย่าง 48khz อาจแสดงสัญญาณได้ถึง 24khz โดยไม่สูญเสียข้อมูลและการเพิ่มตัวอย่างเพิ่มเติมจะไม่เปลี่ยนแปลง ตัวอย่างมากขึ้นเท่านั้นที่มีอิทธิพลต่อความถี่ที่คุณสามารถเป็นตัวแทนได้ การแปลงจาก 44.1 กิโลเฮิร์ตซ์เป็น 48 กิโลเฮิร์ตซ์ก็ไม่ได้พูดถึงการสูญเสียอย่างเคร่งครัดแม้ว่าข้อผิดพลาดที่แนะนำจะมีขนาดเล็กอย่างบ้าคลั่ง
cooky451

1

ฉันไม่เห็นด้วยกับคำสั่งของ allquixotic

หากคุณมีเพลงในรูปแบบ lossy อยู่แล้วเช่น mp3 หรือ ogg / vorbis การแปลงเป็นรูปแบบ lossless จะกินเนื้อที่ดิสก์ (มาก) เนื้อที่และจะไม่ดีขึ้นอย่างแน่นอน - จะไม่ปรับปรุงคุณภาพของ เสียงใด ๆ คุณไม่สามารถสร้างความจงรักภักดีได้เมื่อมันสูญหายไปแล้ว นอกเสียจากคุณกำลังเขียนอินเทอร์เฟซ GUI ใน Visual Basic บนรายการทีวียอดนิยมบางรายการที่เรียกว่า CSI แต่นั่นไม่ใช่ความเป็นจริง

คุณยังขาดความรู้ด้านวิศวกรรมเสียงและการเลี้ยงดูผู้คนด้วยถ้อยคำเท็จ

  1. ทั้ง Ogg และ Vorbis มีภาชนะบรรจุที่บันทึกข้อมูลคลื่นดั้งเดิมและสามารถแปลงเป็น lossless ด้วยข้อมูลนั้นได้ โปรดทำ google พอ

  2. แม้ MP3 คุณภาพต่ำไปสู่การแปลงแบบไม่สูญเสียทำให้การปรับปรุงคุณภาพเสียงดีขึ้นมาก แต่ก็ไม่ได้สมบูรณ์แบบเหมือนต้นฉบับ แต่สามารถแก้ไขได้ด้วยการเปลี่ยนแปลงและเปลี่ยนแปลงอย่างง่ายดาย https://www.izotope.com/en/products/master-and-deliver/ozone.html/OzoneDitheringGuide.pdf

เสียงไม่ใช่ข้อมูล 10100110101001 ดังนั้นขนาดไฟล์ที่เล็กลงไม่ได้หมายความว่าคุณภาพเสียไป คุณอาจเคยมีประสบการณ์กับ 128kbps ถึง 320kbps หลายทศวรรษที่ผ่านมาและเดาว่า 128kbps ต่อ lossless นั้นเป็นไปไม่ได้ โปรดให้คุณทดสอบงานง่ายๆนี้และรับรู้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.