FLAC এর পূর্ণরূপ Free Lossless Audio Codec, এবং এটি ঠিক নাম যা বলে তাই করে: একটিও স্যাম্পল না বদলে অডিও ফাইলকে ছোট করে। Josh Coalson এই প্রজেক্টটি শুরু করেন, এবং এখন এটি দেখাশোনা করে Xiph.Org Foundation, যারা Vorbis এবং Opus এর পেছনের নন-প্রফিট। ফরম্যাট এবং এর রেফারেন্স সফটওয়্যার দুটোই ওপেন এবং রয়্যালটি-ফ্রি, যা FLAC কে CD সংগ্রহ আর্কাইভ করার মানক উপায় এবং শিল্পী-চালিত মিউজিক স্টোরগুলিতে সাধারণ ডাউনলোড বিকল্প হয়ে ওঠার একটি কারণ।
FLAC কীভাবে কোনো তথ্য না হারিয়ে কমপ্রেস করে
Lossless compression, MP3 এর সাথে তুলনা করলে, শুনতে বিরোধপূর্ণ লাগতে পারে, কিন্তু এটি আসলে ZIP ফাইল যেভাবে কাজ করে তারই শব্দের জন্য মানিয়ে নেওয়া সংস্করণ। FLAC অডিওকে ব্লকে ভাগ করে এবং প্রতিটি ব্লকের জন্য ওয়েভফর্ম পরের দিকে কোথায় যাবে তার একটি সহজ গাণিতিক পূর্বাভাস মেলায়। এরপর এটি সেই পূর্বাভাস এবং বাকি থাকা ছোট ছোট ত্রুটি কেবলমাত্র সংরক্ষণ করে, দক্ষ কোডিং স্কিম দিয়ে প্যাক করে। ডিকোড করার সময় আবার সেই পূর্বাভাস চালানো হয় এবং ত্রুটিগুলো যোগ করা হয়, যাতে আসল স্যাম্পলগুলো বিট-টু-বিট ফিরে আসে। কতটা সাইজ বাঁচবে তা সঙ্গীতের উপর নির্ভর করে, কিন্তু একই রেকর্ডিং WAV হিসেবে রাখার তুলনায় FLAC ফাইল সাধারণত অনেক ছোট হয়।
FLAC সর্বোচ্চ আটটি চ্যানেল, CD মানের চেয়েও বেশি বিট গভীরতা এবং খুব উচ্চ স্যাম্পল রেট সামলাতে পারে। MP3 এর মতোই এটি ফ্রেম-ভিত্তিক, তাই পুরো ফাইল আগে না পড়েই এটি স্ট্রিম করা এবং এগিয়ে-পেছিয়ে যাওয়া যায়। এর হেডারে আনকমপ্রেসড অডিওর একটি MD5 ফিঙ্গারপ্রিন্টও থাকে, যাতে সফটওয়্যার বহু বছর পরেও প্রমাণ করতে পারে যে ফাইলটি এখনো ঠিক আগের মতোই ডিকোড হয়। একই কোডেককে একটি Ogg কনটেইনারের মধ্যেও বহন করা যায়, যদিও আপনি সাধারণত যে ফাইলটি দেখেন তা হলো সাধারণ FLAC ফাইল।
একটি FLAC ফাইলে কী কী মেটাডাটা থাকে
একটি FLAC ফাইল শুরু হয় বেশ কয়েকটি মেটাডেটা ব্লক দিয়ে, প্রতিটির নির্দিষ্ট কাজ থাকে। STREAMINFO হচ্ছে টেকনিক্যাল ব্লক এবং এটি সবসময় থাকে: স্যাম্পল রেট, চ্যানেলের সংখ্যা, প্রতি স্যাম্পলে বিট, মোট স্যাম্পল সংখ্যা এবং সেই MD5 ফিঙ্গারপ্রিন্ট। SEEKTABLE প্লেয়ারকে জায়গামতো লাফ দিতে সাহায্য করে, CUESHEET পুরো একটি CD-এর ট্র্যাক বিন্যাস বর্ণনা করতে পারে, PICTURE নিজস্ব টাইপ ও বর্ণনাসহ এমবেড করা আর্টওয়ার্ক ধরে, আর PADDING কেবল ফাঁকা জায়গা, যাতে পরে ফাইলটি আবার না লিখেই ট্যাগ সম্পাদনা করা যায়।
বর্ণনামূলক ট্যাগ থাকে VORBIS_COMMENT ব্লকে, যা Ogg ও ব্যবহার করে এমন একই ট্যাগিং সিস্টেম। এটি সাধারণ টেক্সটের জোড়ার একটি তালিকা, প্রতিটি একটি ফিল্ড নাম এবং একটি মান, তাই এটি নির্দিষ্ট কোনো স্থির সেটে সীমাবদ্ধ নয়। TITLE, ARTIST, ALBUM, ALBUMARTIST, DATE, TRACKNUMBER, DISCNUMBER, GENRE, COMPOSER, PERFORMER, COPYRIGHT, ISRC এবং COMMENT সবই প্রচলিত, এবং যেকোনো ফিল্ড একাধিকবার থাকতে পারে, এইভাবেই একটি ট্র্যাক দুই শিল্পীকে ক্রেডিট দিতে পারে।
কারণ যেকোনো প্রোগ্রাম নিজের মতো করে ফিল্ড বানাতে পারে, এই ব্লকটি প্রায়ই সঙ্গীতের মতোই সফটওয়্যার চেইন সম্পর্কেও অনেক কিছু বলে। ENCODER ফাইলটি যেই টুল এবং ভার্সন দিয়ে তৈরি হয়েছে তার নাম দেয়। রিপিং সফটওয়্যার নিজস্ব এন্ট্রি যোগ করে: ডিস্ককে কোনো অনলাইন মিউজিক ডাটাবেসের সাথে যুক্ত করার আইডেন্টিফায়ার, রেটিং, প্লে কাউন্ট, রিপ্লে গেইন মাপ এবং কখনও কখনও যে ড্রাইভটি CD পড়েছে তার তথ্য। এই ফ্রি ফিল্ডগুলোতেই কোনো ব্যক্তিগত নোট, আসল নাম বা ইমেইল ঠিকানা গিয়ে পড়ে, যদি কেউ ট্যাগারে সেগুলো টাইপ করে থাকে। FLAC-এ লোকেশন বা ডিভাইসের জন্য কোনো স্ট্যান্ডার্ড ফিল্ড নেই, তাই কোনো মিউজিক ফাইল খুব কমই বলে দেয় আপনি কোথায় ছিলেন, কিন্তু একজন মানুষ বা কোনো অ্যাপ্লিকেশন যা লিখতে বেছে নিয়েছে তা সবই সেখানে পড়ার মতো টেক্সট আকারে থাকে।
কখন FLAC ব্যবহার করবেন
অডিও সংরক্ষণ করার জন্য FLAC সঠিক পছন্দ: CD সংগ্রহ, মাস্টার রেকর্ডিং, বা যা ভবিষ্যতে আবার কনভার্ট করতে হতে পারে। WAV-এর তুলনায় এটি সাইজ এবং ট্যাগিং-এ এগিয়ে, এবং তারপরও সোর্সের সাথে বিট-আইডেন্টিক্যাল থাকে। MP3 বা AAC-এর তুলনায় এটি অনেক বড়, তাই অল্প স্টোরেজওয়ালা ফোন বা ব্যস্ত কোনো ওয়েবসাইটের জন্য এটি ততটা মানানসই নয়। Apple ডিভাইসগুলো ALAC পছন্দ করে, যা একই ধারণার ওপর ভিত্তি করে আরেকটি lossless ফরম্যাট, এবং এই দুটির মধ্যে কনভার্ট করলে কোনো অতিরিক্ত ক্ষতি হয় না, কারণ দুটোই প্রতিটি স্যাম্পল অক্ষত রাখে।