FLAC (ראשי תיבות של Free Lossless Audio Codec – "קודק חופשי לשמע ללא איבוד נתונים") הוא קודקחופשי ופופולרי לדחיסת שמע ללא איבוד נתונים. שלא כמו קודקים מאבדי-נתונים כמו MP3 ו-AAC, הוא אינו מסיר כל מידע מזרם השמע, והוא מתאים הן לנגינה יום-יומית והן לארכיבאות של אוספי שמע. פורמט FLAC נהנה מתמיכה רבה במוצרי תוכנה וחומרה רבים.
ב-29 בינואר 2003 הודיע ארגון Xiphophorus (כיום קרן Xiph) על שילובו של FLAC תחת דגלם, יחד עם הקודקים Vorbis (דחיסת שמע עם איבוד נתונים), Theora (דחיסת וידאו) ו-Speex (דחיסת דיבור).
הפרויקט
פרויקט FLAC מורכב מהחלקים הבאים:
פורמט הזרם
libFLAC, ספרייה של מקודדים ופורסים נורמטיביים, וכן ממשק למידע-על
libFLAC++, מעטפת אובייקטים סביב libFLAC
flac, מעטפת שורת-פקודה סביב libFLAC, לקידוד קובצי .flac ופריסתם
metaflac, עורך מידע-על מבוסס שורת-פקודה לקובצי .flac
במילה "חופשי" הכוונה היא שאת מפרט פורמט הזרם יכול ליישם כל אחד ללא בקשת רשות לפני כן (Xiph.Org שומר לעצמו את הזכות לקבוע את מפרט FLAC ולאשר את העמידה בו), ושפורמט FLAC ושיטות הקידוד והפריסה המיושמות לו אינן תחת שום פטנט. הכוונה היא גם שהיישום הנורמטיבי הוא תוכנה חופשית: קוד המקור ל-libFLAC ול-libFLAC++ זמינים תחת רישיון BSD של Xiph.Org וקוד המקור ל-flac, ל-metaflac ול-plugins זמינים תחת ה-GPL.
במטרותיו המוצהרות, פרויקט FLAC מעודד את מפתחיו שלא ליישם תכונות חסימת העתקה מכל סוג שהוא.
השוואות
ההבדל בין FLAC לבין אלגוריתמים כלליים לדחיסה ללא איבוד נתונים כמו ZIP ו-gzip הוא בכך שהוא תוכנן ספציפית לאריזה יעילה של נתוני שמע; בעוד ש-ZIP עשוי לדחוס קובץ שמע באיכות תקליטור ב-10 עד 20 אחוזים, FLAC מגיע לשיעור של דחיסה ב-30 עד 50 אחוזים.
אף כי קודקים מאבדי נתונים יכולים להגיע לשיעורים של דחיסה ב-80 אחוזים או יותר, המחיר של זה הוא הסרת מידע מהזרם המקורי. FLAC משתמש בניבוי קווי כדי להמיר את דגימות השמע לסדרה של מספרים קטנים וחסרי יחס (הקרויים residual) ומאחסן אותם ביעילות בקידוד גולומב-רייס. כמו כן הוא משתמש בקידוד אורך-ריצה לפיסות של דגימות זהות, כמו רגעי דממה. המעלות הטכניות של FLAC לעומת קודקים שומרי-נתונים אחרים טמונים ביכולת להזרים אותו ובפריסה מהירה ללא קשר לרמת הדחיסה.
FLAC הפך לפורמט ללא איבוד נתונים המועדף לסחר במוזיקה חיה באינטרנט, אף כי אחרים, כגון Monkey's Audio, בשימוש תדיר גם כן. הוא מייצר קבצים קטנים יותר מאשר Shorten, והוא ללא איבוד נתונים, דבר חשוב לסוחרים במוזיקה חיה. לאחרונה הוא הפך לפורמט פופולרי גם בקרב סוחרים של מוזיקה לא חיה ללא איבוד נתונים.
FLAC הוא גם פורמט פופולרי לארכיבאות בקרב בעלי תקליטורים ומדיות אחרות המבקשים לשמר את אוסף השמע יקר הערך שלהם. אם המדיה המקורית אובדת, נפגמת או נשחקת לאחר זמן, עותק FLAC של רצועות השמע מבטיח את יכולת השחזור של המידע המקורי בכל עת, שלא כמו ארכיב מאבד נתונים (כמו MP3) של אותו המידע. וכן אפשר ליצור קובץ CUE כדי שהתקליטור המשוחזר יהיה עותק זהה באופן מושלם של התקליטור המקורי.
הוויקי של Hydrogen Audio מכיל השוואה[1] כוללת מאוד של קודקים ללא איבוד נתונים, ובהם FLAC.
פרטים טכניים
FLAC תומך רק בדגימות של נקודה קבועה, לא של נקודה צפה, וזאת כדי להבטיח עותקים מושלמים על ידי מניעת שגיאות עיגול. הוא יכול לטפל בכל רזולוציה של PCM מ-4 עד 32 סיביות לדגימה. הוא תומך בכל קצב דגימה מהרץ אחד עד 655350 הרץ בקפיצות של 1.
את FLAC אפשר להדר על פלטפורמות רבות: רוב גרסאות יוניקס (כולל לינוקס, BSD, סולאריס ו-Mac OS X), חלונות ועוד, ויש תצורות למהדרים רבים.