FLAC

ses kodlama formatı

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.

Free Lossless Audio Codec
Geliştirici(ler)Xiph.Org Foundation, Josh Coalson, Erik de Castro Lopo
İlk yayınlanma20 Temmuz 2001 (23 yıl önce) (2001-07-20)
Güncel sürüm1.4.3[1] / 23 Haziran 2023 (16 ay önce) (23 Haziran 2023)
Programlama diliC, C++
İşletim sistemiCross-platform
TürSes çözücü (Codec)
LisansKomut satırı araçları: GNU GPL
Kütüphaneler: BSD
Resmî sitesixiph.org/flac
Kod deposu Bunu Vikiveri'de düzenleyin
Free Lossless Audio Codec
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, 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

değiştir

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]

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

değiştir

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ı

değiştir
  • 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

değiştir
  • 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

değiştir

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

değiştir

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ı

değiştir

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.

Farklı işletim sistemlerinde FLAC desteği
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

değiştir
  1. ^ "FLAC 1.4.3 Released With More Optimizations, Drops PowerPC-Specific Code". 23 Haziran 2023. Erişim tarihi: 19 Şubat 2024. 
  2. ^ Registration being sought as audio/flac
  3. ^ 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 
  4. ^ a b c "News". FLAC. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ağustos 2009. 
  5. ^ 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. 
  6. ^ Emmett Plant. "FLAC Joins Xiph!". Xiph.org Foundation. 29 Mayıs 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 31 Ağustos 2009. 
  7. ^ Xiph.Org Foundation. "FLAC – changelog". Xiph.org Foundation. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Ekim 2013. 
  8. ^ "Developers". FLAC. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Ekim 2013. 
  9. ^ "Format". FLAC. 27 Mart 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Mayıs 2017. 
  10. ^ a b "FAQ". FLAC. 24 Kasım 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Eylül 2014. 
  11. ^ CUETools FLAC encoders comparison 13 Temmuz 2016 tarihinde Wayback Machine sitesinde arşivlendi.. CUETools Wiki. Retrieved 27 May 2013.
  12. ^ Encoding Settings 20 Nisan 2017 tarihinde Wayback Machine sitesinde arşivlendi.. JRiver Media Centre. Retrieved 27 May 2013.
  13. ^ "Lossless Codec Comparison". 30 Ağustos 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Kasım 2016. 
  14. ^ "Links". FLAC. 28 Ocak 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 24 Mart 2009. 
  15. ^ EBU: What is the EBU Musipop system? 18 Mayıs 2013 tarihinde Wayback Machine sitesinde arşivlendi.
  16. ^ "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. 
  17. ^ "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. 
  18. ^ "Issue 1461 – android – FLAC file support enhancement request". Google. 10 Nisan 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Ağustos 2011. 
  19. ^ "ponomusic.com FAQ". 14 Mart 2014. 26 Haziran 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 14 Mart 2014. 
  20. ^ "Qobuz.com". 9 Haziran 2014 tarihinde kaynağından arşivlendi. Erişim tarihi: 10 Nisan 2014. 
  21. ^ "How and why should I upload lossless files?". Bandcamp. 16 Şubat 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Şubat 2022. 
  22. ^ Rillke (2015). "JavaScript FLAC de- and encoder". 19 Aralık 2016 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Şubat 2015.