FLAC
![]() | |
![]() | |
Geliştirici(ler) | Xiph.Org Foundation, Josh Coalson, Erik de Castro Lopo |
---|---|
İlk yayınlanma | 20 Temmuz 2001 (23 yıl önce) (2001-07-20) |
Güncel sürüm | 1.4.3[1] / 23 Haziran 2023 (13 ay önce) (23 Haziran 2023) |
Programlama dili | C, C++ |
İşletim sistemi | Cross-platform |
Tür | Ses çözücü (Codec) |
Lisans | Komut satırı araçları: GNU GPL Kütüphaneler: BSD |
Resmî sitesi | xiph.org/flac |
Kod deposu |
![]() |
Dosya Uzantısı: | .flac |
---|---|
MIME tipi: | audio/x-flac[2] |
Sihir: | fLaC[3] |
Biçim tipi: | Audio |
Standard(lar): | xiph.org/flac/format.html |
FLAC (/ˈflæk/; Free Lossless Audio Codec) dijital sesin kayıpsız olarak sıkıştırılması için kullanılan bir ses kodlama formatıdır ve aynı zamanda referans kod çözümü uygulamasının adıdır. FLAC algoritması ile sıkıştırılmış sayısal ses orijinal boyutunun% 50-60'ına kadar indirgenebilir ve orijinal ses verilerinin özdeş bir kopyasına dek sıkıştırma yapabilir. Örneğin sıkıştırılmamış 1 dakikalık WAV dosyası boyutu yaklaşık 10 MB iken, FLAC dosyası 4,2-6,3 MB arasındadır.
FLAC, telif ücretsiz lisansına sahip ve ücretsiz yazılım olan referans uygulamasıyla açık bir formattır. FLAC, meta veri etiketleme, albüm kapak resmi ve hızlı arama desteği sunmaktadır. Günümüzde birçok taşınabilir aygıtın desteklediği biçim, popüler ortam oynatıcıları tarafından çalınabilmektedir.
Tarihçe
FLAC yazılım geliştirmesi, 2000 yılında Josh Coalson tarafından başlatıldı.[4] FLAC, 15 Ocak 2001'de referans uygulamasının 0.5 sürümüyle birlikte beta aşamasına girdiğinde bit akışı biçimi dondurulmuştur. Sürüm 1.0, 20 Temmuz 2001'de yayımlanmıştır.[4]
29 Ocak 2003 tarihinde, Xiph.Org Vakfı ve FLAC projesi, Xiph.org bayrağı altında birleşerek FLAC'ın kuruluşunu ilan etti. Xiph.org, Vorbis, Theora, Speex ve Opus gibi diğer ücretsiz sıkıştırma formatlarının arkasında yer alan bir vakıftır.[4][5][6]
Sürüm 1.3.0, 26 Mayıs 2013'te yayınlandı ve bu noktadan sonra geliştirme ortamı, Xiph.org'un Git deposuna taşındı.[7]
Yapı
FLAC projesi aşağıdakilerden oluşur:
- Akış biçimleri
- Akış için FLAC (veya Yerel FLAC) olarak da adlandırılan basit bir kapsayıcı biçimi,
- LibFLAC, referans kodlayıcılar ve kod çözücülerin bir kütüphanesi ve bir meta veri arabirimi
- LibFLAC++, libFLAC etrafında nesne yönelimli bir örtü
flac
, FLAC akışlarını kodlamak ve çözmek için libFLAC temelli bir komut satırı programımetaflac
, .flac dosyaları ve ReplayGain uygulamak için bir komut satırı meta veri düzenleyicisi- Çeşitli müzik çalarlar için giriş eklentileri (Winamp, XMMS, foobar2000, musikCube ve birçoğu)
- Xiph.org kuruluşunda, akış için uygun Ogg konteyner biçimi (Ogg FLAC olarak da adlandırılır)
Akış formatının tanımlarını önceden izin alınmadan herkes tarafından uygulanabilir (Xiph.org, FLAC tanımlarını belirleme ve uygunluğunu onaylama hakkını saklı tutar) ve ne FLAC biçimi ne de uygulanan kodlama veya kod çözme yöntemlerinden hiçbiri herhangi bir patent kapsamına girmez. Referans uygulaması özgür bir yazılımdır. LibFLAC ve libFLAC++ için kaynak kodu BSD lisansı altındadır ve flac
, metaflac
ve eklentileri için kaynaklar GNU Genel Kamu Lisansı altındadır.
Belirtilen hedefler doğrultusunda, FLAC projesi geliştiricilerini her türlü kopyalama önleme özelliklerini (DRM) uygulamamaya teşvik etmektedir.[8]
Tasarım
FLAC olarak kodlanmış ses kaynakları tipik olarak diğer kayıpsız biçime benzer şekilde orijinal boyutlarının % 50-60'ına indirgenir, ancak son boyut sıkıştırılacak müziğin yoğunluğuna ve hacmine bağlıdır ve bazı müziklerde dosya boyutu olabilir % 80 oranında azaltılır.
Kaynak Kodlayıcı
- FLAC, yalnızca Kayan nokta olmayan sabit nokta örneklerini destekler. Her örnekte 4 ila 24 bitlik PCM bit çözünürlüğünü, 1 Hz'lik artışlarla 1 Hz'den 65,535 Hz'e, 10 Hz'lik artışlarla 10 Hz'den 655,350 Hz'e ve 1'den 8'e kadar herhangi bir sayıda kanaldan herhangi bir örnekleme hızı işleyebilir.[9]
- Kanallar, bazı durumlarda sıkıştırmayı artırmak için, stereo ve 5.1 kanal surround örneğindeki gibi, kanallar arası korelasyonlardan yararlanmak için gruplanabilir.
- FLAC, akış protokolünde kullanıldığında bozuk kareleri tanımlamak için CRC sağlama toplamı kullanır ve aynı zamanda STREAMINFO meta veri başlığında ham PCM sesinin tam bir MD5 karmasını içerir. FLAC, 0 ile 16 arasında bir Rice parametresine izin verir.
- FLAC, ses örneklerini dönüştürmek için doğrusal tahmini kullanır. Doğrusal tahminde iki adım vardır, öngörücü ve hata kodlaması. Tahminci, dört türden biri olabilir (Sıfır, Verbatim, Sabit Lineer ve FIR Lineer). Tahmini ve gerçek örnek verileri arasındaki fark hesaplanır ve kalıntı olarak bilinir. Kalıntı, Golomb-Rice kodlaması kullanılarak verimli bir şekilde saklanır.
Meta Veri
- FLAC ReplayGain'i destekler.
- Etiketleme için FLAC, Vorbis yorumlarıyla aynı sistemi kullanır.[10]
- LibFLAC API'leri, akışlar, aranabilir akışlar ve dosyalar (temel FLAC bit akışından artan soyutlanma sırasına göre listelenir) olarak düzenlenmiştir.
- Çoğu FLAC uygulaması kendilerini genellikle dosya seviyesi arayüzünde libFLAC kullanarak kodlama / kod çözme yönünde kısıtlarlar.
Sıkıştırma Seviyeleri
LibFLAC seviyesi 0 (en hızlı) ile 8 (en yavaş) arasında değişen bir sıkıştırma parametresi kullanır. Sıkıştırılmış dosyalar her zaman orijinal verilerin mükemmel, kayıpsız gösterimleridir. Sıkıştırma işlemi hız ve boyut arasındaki dengeyi gerektirse de, şifre çözme işlemi her zaman epey hızlıdır ve sıkıştırma seviyesine çok bağımlı değildir.[11][12]
Bir WAV dosyası kıyaslamasına göre,[13] varsayılan seviyenin -5 sıkıştırma seçeneği ve üzerindeki daha yüksek oranları kullanmak, alan tasarrufunda gerçek kazanımlar olmadan kodlamak için çok daha fazla zaman alır.
Sıkıştırma Seçeneği | Orijinal | Sıkıştırılmış | Süre | Oran | Kodlama Süresi | Kodlama Hızı | Kod Çözme Süresi | Kod Çözme Oranı |
---|---|---|---|---|---|---|---|---|
-0 | 2.030 GiB | 1.435 GiB | 03:18:21 | 70.67% | 01:29 | 134x | 01:24 | 141x |
-5 | 2.030 GiB | 1.334 GiB | 03:18:21 | 65.72% (-4.95)% | 03:44 | 53x (2.5 kat daha yavaş) | 01:36 | 124x |
-6 | 2.030 GiB | 1.334 GiB | 03:18:21 | 65.71% (-4.96, -0.01)% | 03:51 | 52x (2.6 kat daha yavaş) | 01:36 | 124x |
-7 | 2.030 GiB | 1.333 GiB | 03:18:21 | 65.67% (-5, -0.04)% | 07:47 | 25x (5.3 kat daha yavaş) | 01:36 | 123x |
-8 | 2.030 GiB | 1.329 GiB | 03:18:21 | 65.47% (-5.2, -0.2)% | 10:17 | 19x (7 kat daha yavaş) | 01:40 | 120x |
-8 -Ax2 | 2.030 GiB | 1.328 GiB | 03:18:21 | 65.40% (-5.27, -0.07)% | 16:39 | 12x (11 kat daha yavaş) | 01:35 | 125x |
Diğer formatlarla karşılaştırma
FLAC, ZIP ve gzip'de kullanılan DEFLATE gibi genel amaçlı kayıpsız algoritmaların aksine, ses verilerini etkili bir şekilde paketlemek için özel olarak tasarlanmıştır. ZIP, bir CD kalitesinde ses dosyasının boyutunu % 10-20 azaltabilirken FLAC, ses özelliklerinden yararlanarak ses verisinin boyutunu % 40-50 azaltabilir.
FLAC'ın diğer kayıpsız formatlara kıyasla teknik güçlü yönleri, sıkıştırma seviyesinden bağımsız olarak hızlı bir şekilde akıp giden kod çözme yeteneğindedir.
FLAC kayıpsız bir şemadır çünkü, ses koleksiyonlarını korumak isteyen CD'ler ve diğer medya sahipleri için bir arşiv biçimi olarak uygundur. Orijinal medya kaybolursa, hasar görürse veya yıpranmışsa, ses parçalarının bir FLAC kopyasından orijinal verilerin tam bir kopyasını istediğiniz zaman kurtarmayı garantiler. Aynı verinin kayıplı bir arşivinden (ör. MP3) tam bir restorasyonunu yapmak imkânsızdır. FLAC'in kayıpsız olması, örneğin; Normal olarak ilişkili kod dönüştürme kalitesi kaybı olmaksızın, MP3'e dönüştürür. CD'yi kopyalarken CUE dosyası isteğe bağlı olarak oluşturulabilir. Bir CD okunur ve FLAC dosyalarına mükemmel şekilde söküldüyse, CUE dosyası daha sonra ses verilerinde özdeş olan bir ses CD'sinin orijinal CD'ye parça sırası ve pregap dahil olmak üzere, yazılmasına izin verir. Ancak CD-Metni ve şarkı sözleri ve CD + G grafikleri gibi diğer ek verileri yazılmaz.[10]
Tanınması ve Uygulanması
FLAC'ın referans uygulaması libFLAC temel kodlayıcı ve kod çözücü kitaplığı olarak uygulanır, ana dağıtılabilir program FLAC libFLAC API'sinin referans uygulamasıdır. Bu ses çözücü API'si ayrıca C ++'da libFLAC ++ olarak mevcuttur. FLAC'ın referans uygulaması, çoğu Unix (Solaris, BSD gibi) ve Unix benzeri (Linux dahil), Microsoft Windows, BeOS ve OS / 2 gibi işletim sistemleri de dahil birçok platformda derlenir. Autoconf / automake, MSVC, Watcom C ve Xcode için yapı sistemleri var. Şu anda libFLAC'de çok çekirdekli işlemci yapısına destek yoktur.
Taşınabilir ses cihazlarında ve özel ses sistemlerinde FLAC oynatma desteği, MP3[14] veya sıkıştırılmamış PCM gibi formatlarla karşılaştırıldığında sınırlıdır. FLAC desteği varsayılan olarak Windows 10, Android, Linux ve Jolla aygıtlarında bulunur.
2014 yılında, mobil elektronik şirketlerinin birçoğu FLAC desteği içeren multimedya çözümlerini tanıttı. Bunlara örnek Pioneer Electronics'in NEX serisi ve Clarion'dan VX404 ve NX404 gibi cihazlardır.
Avrupa Yayın Birliği (EBU), Euroradio ağında yüksek kaliteli ses dağıtımı için FLAC formatını benimsemiştir.[15] Windows işletim sistemi, Windows 10'u piyasaya sunduğundan beri yerel FLAC entegrasyonunu desteklemiştir.[16] Android işletim sistemi, sürüm 3.1'den beri yerel FLAC oynatmayı destekledi.[17][18]
Diğerlerinin müzik çalarların yanında Pono müzik çalar ve gerçek zamanlı ses aktarım hizmeti sunanlar FLAC formatını kullanmaktadırlar.[19][20] Bandcamp, yükleme için kayıpsız bir format üzerinde ısrarcıdır ve bir indirme seçeneği olarak FLAC'e sahiptir.[21] Wikimedia Vakfı, gerekli HTML5 özelliklerini destekleyen tarayıcılar için ücretsiz ve açık kaynak kodlu bir çevrimiçi ECMAScript FLAC aracına sponsorluk yapmıştır.[22]
Çoklu kanal desteğiyle beraber CDDA dışında kullanımı da artan biçim, yedekleme amaçlı kullanımı dışında oynatma amaçlı ve stüdyo çalışmalarında da kullanılmaktadır. Birçok Dijital Ses İşleme İstasyonunun desteklemesi bu konuda kolaylık sağlamaktadır.
Microsoft Windows | macOS | Linux | Android | BlackBerry OS | iOS | |
---|---|---|---|---|---|---|
Codec desteği | Evet | Evet | Evet | Evet | Evet | Evet |
Konteyner desteği | FLAC (.flac) Matroska (.mka, .mkv) | FLAC (.flac) Core Audio Format (.caf) | FLAC (.flac) Matroska (.mka, .mkv) Ogg (.oga) | FLAC (.flac) | FLAC (.flac) | FLAC (.flac) Core Audio Format (.caf) |
Notlar | Windows 10'da sunulan destek. | High Sierra'da sunulan destek. | FLAC'ın dağıtım'a bağlı olarak yüklenmesi gerekebilir. | Android 3.1'de sunulan destek | BlackBerry OS 5.0'da sunulan destek | iOS 11'de sunulan destek (ancak kullanılan donanıma bağlıdır). |
Kaynakça
- ^ "FLAC 1.4.3 Released With More Optimizations, Drops PowerPC-Specific Code". 23 Haziran 2023. Erişim tarihi: 19 Şubat 2024. Arşivlenmesi gereken bağlantıya sahip kaynak şablonu içeren maddeler (link)
- ^ Registration being sought as
audio/flac
- ^ Josh Coalson. "FLAC - format". 27 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Nisan 2013.
"fLaC", the FLAC stream marker in ASCII, meaning byte 0 of the stream is 0x66, followed by 0x4C 0x61 0x43
- ^ a b c "News". FLAC. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ağustos 2009.
- ^ Xiph.Org Foundation (29 Ocak 2003). "FLAC Joins Xiph.org". Xiph.org Foundation. 7 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ağustos 2009.
- ^ Emmett Plant. "FLAC Joins Xiph!". Xiph.org Foundation. 29 Mayıs 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ağustos 2009.
- ^ Xiph.Org Foundation. "FLAC – changelog". Xiph.org Foundation. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Ekim 2013.
- ^ "Developers". FLAC. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Ekim 2013.
- ^ "Format". FLAC. 27 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2017.
- ^ a b "FAQ". FLAC. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Eylül 2014.
- ^ CUETools FLAC encoders comparison 13 Temmuz 2016 tarihinde Wayback Machine sitesinde arşivlendi.. CUETools Wiki. Retrieved 27 May 2013.
- ^ Encoding Settings 20 Nisan 2017 tarihinde Wayback Machine sitesinde arşivlendi.. JRiver Media Centre. Retrieved 27 May 2013.
- ^ "Lossless Codec Comparison". 30 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Kasım 2016.
- ^ "Links". FLAC. 28 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Mart 2009.
- ^ EBU: What is the EBU Musipop system? 18 Mayıs 2013 tarihinde Wayback Machine sitesinde arşivlendi.
- ^ "Audio snobs rejoice: Windows 10 will have system-wide FLAC support". 22 Şubat 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Temmuz 2015.
- ^ "Android Supported Media Formats". Andro Med Formats. 4 Ağustos 2011. 20 Aralık 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Şubat 2012.
- ^ "Issue 1461 – android – FLAC file support enhancement request". Google. 10 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Ağustos 2011.
- ^ "ponomusic.com FAQ". 14 Mart 2014. 26 Haziran 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Mart 2014.
- ^ "Qobuz.com". 9 Haziran 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Nisan 2014.
- ^ "How and why should I upload lossless files?". Bandcamp. 16 Şubat 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Şubat 2022.
- ^ Rillke (2015). "JavaScript FLAC de- and encoder". 19 Aralık 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Şubat 2015.