Bölüm 14: Çoklu Ortam Sistemleri

İşletim Sistemleri
Çoklu ortamın özellikleri ve veri hızları Ses sayısallaştırma ve Nyquist Psikoakustik ve ses sıkıştırma Video: tarama, renk uzayı, 4:2:0 JPEG: DCT, niceleme, zikzak MPEG: I/P/B kareleri, hareket dengeleme H.264, HEVC, AV1 ve donanım kod çözücüler Gerçek zamanlı çizelgeleme: RMS ve EDF İtme/çekme sunucular, NVOD, VCR Dosya yerleşimi, Zipf ve organ borusu Önbellekleme ve disk çizelgeleme HLS/DASH, CDN ve bit hızı merdiveni
Sercan KÜLCÜ · Giresun Üniversitesi · Bilgisayar Mühendisliği

Giriş

Öğrenme Çıktıları

Özellikler ve hesap

Sıkıştırmasız ses ve video veri hızlarını hesaplamak; gerçek zaman, titreşim ve QoS kavramlarını açıklamak.

Ses

Örnekleme, niceleme ve Nyquist ölçütünü uygulamak; psikoakustik maskelemenin sıkıştırmadaki rolünü anlatmak.

Görüntü ve video

YCbCr ve 4:2:0, JPEG boru hattı (DCT, niceleme, zikzak, Huffman) ve I/P/B kareli MPEG kodlamayı izlemek.

Süreç çizelgeleme

Periyodik görevlerde RMS ve EDF zaman çizelgesini çıkarmak; kullanım sınırıyla çizelgelenebilirliği sınamak.

Dosya sistemi

İtme/çekme sunucuları, NVOD, blok boyutu ve indeks seçimleri, Zipf ve organ borusu yerleşimini değerlendirmek.

Disk ve akış

Statik turlar ile SCAN-EDF'yi; HLS/DASH, CDN ve uyarlanabilir bit hızı merdivenini açıklamak.

Giriş

Çoklu Ortam Nedir?

Metin, grafik, ses, video ve animasyonun birlikte sunulması. İşletim sistemi açısından asıl zorluk sürekli ortam (ses ve video): veri, belirli bir hızda ve zamanında akmalıdır.

Yüksek veri hızı

Sıkıştırmasız 1080p ≈ 1,5 Gbit/s; sıkıştırma zorunlu. 2 saatlik 4K film 16 Mbit/s ile bile ≈ 14 GB.

Gerçek zaman

Kareler sabit aralıkla (25 fps → 40 ms) gösterilmeli; geç gelen veri işe yaramaz. Titreşim tamponla emilir.

Hizmet kalitesi (QoS)

Bant genişliği, gecikme, titreşim ve kayıp için garanti ya da öngörülebilirlik; kaynak ayırma ve kabul denetimi.

Eşzamanlama

Dudak eşzamanı: ses ≈ 45 ms önde ya da ≈ 125 ms geride kalırsa fark edilir (ITU-R BT.1359).

Etkileşim

Duraklat, geri/ileri sar, atla (VCR işlevleri); sunucu ve dosya sistemi tasarımını etkiler.

Uyumluluk

Farklı kodek, kapsayıcı (MP4, MKV), ekran (HDR/SDR) ve ağ; oynatıcı uygun sürümü seçer.

Giriş

Veri Hızları

10 kbit/s100 k1 Mbit/s10 M100 M1 Gbit/s10 GOpus konuşma (VoIP)24 kbit/sTelefon G.711 PCM64 kbit/sAAC / MP3 müzik256 kbit/sCD sesi (PCM, sıkıştırmasız)1,41 Mbit/s1080p H.264 akış5 Mbit/s4K HDR akış (HEVC/AV1)16 Mbit/sUHD Blu-ray (HEVC)≈ 100 Mbit/s1080p30 sıkıştırmasız (24 bit)1,49 Gbit/s4K60 HDR sıkıştırmasız (4:2:0, 10 bit)7,46 Gbit/s

Akış hızları 2026 için tipik değerlerdir (Netflix HD için ≈ 5, 4K için ≈ 15 Mbit/s önerir). Kayıpsız FLAC, CD kalitesinde ≈ 0,7–1 Mbit/s; 24 bit/96 kHz ≈ 2–3 Mbit/s. Arada ≈ 3 basamak fark: sıkıştırma olmadan video akışı yoktur.

Giriş

Sıkıştırmasız Veri Hızlarını Hesaplama

CD sesi44.100 örnek/s×16 bit×2 kanal=1.411.200 bit/s ≈ 1,41 Mbit/s1 saat ≈ 635 MB???sıkıştırma oranı?

CD sesi: 44,1 kHz örnekleme × 16 bit × 2 kanal = 1,41 Mbit/s; bir saatlik albüm ≈ 635 MB.

CD sesi44.100 örnek/s×16 bit×2 kanal=1.411.200 bit/s ≈ 1,41 Mbit/s1 saat ≈ 635 MB1080p30, RGB1920 × 1080 piksel×24 bit×30 kare/s=1.492.992.000 bit/s ≈ 1,49 Gbit/s2 saat ≈ 1,34 TB??sıkıştırma oranı?

1080p, piksel başına 24 bit RGB, 30 kare/s: 1,49 Gbit/s. İki saatlik film sıkıştırmasız 1,34 TB tutar.

CD sesi44.100 örnek/s×16 bit×2 kanal=1.411.200 bit/s ≈ 1,41 Mbit/s1 saat ≈ 635 MB1080p30, RGB1920 × 1080 piksel×24 bit×30 kare/s=1.492.992.000 bit/s ≈ 1,49 Gbit/s2 saat ≈ 1,34 TB1080p30, 4:2:01920 × 1080 piksel×12 bit (ort.)×30 kare/s=746.496.000 bit/s ≈ 746 Mbit/srenk alt örneklemesi: ½?sıkıştırma oranı?

Renk bilgisini yarı yarıya azaltan 4:2:0 alt örnekleme piksel başına ortalama 12 bit verir: 746 Mbit/s. Bu henüz kayıplı sıkıştırma değildir.

CD sesi44.100 örnek/s×16 bit×2 kanal=1.411.200 bit/s ≈ 1,41 Mbit/s1 saat ≈ 635 MB1080p30, RGB1920 × 1080 piksel×24 bit×30 kare/s=1.492.992.000 bit/s ≈ 1,49 Gbit/s2 saat ≈ 1,34 TB1080p30, 4:2:01920 × 1080 piksel×12 bit (ort.)×30 kare/s=746.496.000 bit/s ≈ 746 Mbit/srenk alt örneklemesi: ½4K60 HDR, 4:2:03840 × 2160 piksel×15 bit (10 bit, 4:2:0)×60 kare/s=7.464.960.000 bit/s ≈ 7,46 Gbit/s2 saat ≈ 6,7 TBsıkıştırma oranı?

4K, 60 kare/s, 10 bit HDR, 4:2:0 (10 + 10/4 + 10/4 = 15 bit/piksel): 7,46 Gbit/s; tek bir 10 GbE bağlantıyı neredeyse doldurur.

CD sesi44.100 örnek/s×16 bit×2 kanal=1.411.200 bit/s ≈ 1,41 Mbit/s1 saat ≈ 635 MB1080p30, RGB1920 × 1080 piksel×24 bit×30 kare/s=1.492.992.000 bit/s ≈ 1,49 Gbit/s2 saat ≈ 1,34 TB1080p30, 4:2:01920 × 1080 piksel×12 bit (ort.)×30 kare/s=746.496.000 bit/s ≈ 746 Mbit/srenk alt örneklemesi: ½4K60 HDR, 4:2:03840 × 2160 piksel×15 bit (10 bit, 4:2:0)×60 kare/s=7.464.960.000 bit/s ≈ 7,46 Gbit/s2 saat ≈ 6,7 TBSıkıştırma oranı: 4K60 HDR 7,46 Gbit/s → 16 Mbit/s akış ≈ 467 : 11080p30 (4:2:0) 746 Mbit/s → 5 Mbit/s ≈ 149 : 1 · CD 1,41 Mbit/s → AAC 256 kbit/s ≈ 5,5 : 1

Sonuç: modern kodekler videoyu 150–500 kat küçültür; ses için gereken oran çok daha düşüktür. İşletim sistemi yine de sürekli, zamanında veri akışı sağlamalıdır.

Giriş

Video Dağıtım Ağları

Video sunucusu/ CDN kenarıomurgaDSLAMbakır telefon hattımodemDSLCMTSfiber → düğüm → koaks (HFC)kablo modemKabloOLTfiber, pasif ayırıcı (1:32/64)ONTFTTH5G baz ist.radyo (mmWave / alt-6 GHz)telefonMobil
ErişimEski sunumdaki değerGüncel tipik değer (2026)
ADSL2+—≤ 24 Mbit/s indirme, ≤ 1–3 Mbit/s yükleme (asimetrik)
VDSL2 (vektörleme)VDSL: 52 / 16 Mbit/s100 Mbit/s; 35b profili kısa hatta ≈ 250–300 Mbit/s
Kablo (DOCSIS 3.1 / 4.0)10–100 Mbit/s1–10 Gbit/s indirme (paylaşımlı ortam)
FTTH (GPON / XGS-PON)—2,5 / 1,25 Gbit/s ve 10 / 10 Gbit/s, ayırıcıdaki kullanıcılar paylaşır

SDSL ve HDSL simetrik eski DSL türleridir. Erişim hızından çok sunucu ile kullanıcı arasındaki yol (CDN) ve titreşim belirleyicidir.

Giriş

Gerçek Zaman ve Titreşim

04080120160200240280320360400440 msgönderimvarışoynatma1122334455667788

Kaynak kareleri 40 ms aralıkla (25 fps) gönderir; ağ gecikmesi 60 ile 115 ms arasında değişir. Varış aralıkları düzensizdir: titreşim.

04080120160200240280320360400440 msgönderimvarışoynatma11223344556677881×3×××7×D = 80 ms → 5 kare geç

Oynatma, gönderimden D = 80 ms sonra planlanırsa gecikmesi 80 ms'yi aşan 5 kare (2, 4, 5, 6, 8) zamanında yetişmez: takılma ya da atlama.

04080120160200240280320360400440 msgönderimvarışoynatma112233445566778812345678D = 120 ms → hiç geç kare yok

D = 120 ms (en büyük gecikme 115 ms) seçilirse tüm kareler yetişir. Bedel: 120 ms ek gecikme ve en çok 3 karelik tampon. Akış hizmetleri saniyeler, görüntülü görüşme onlarca ms tampon kullanır.

Giriş

Bir Film Birkaç Dosyadan Oluşabilir

Filmkapsayıcı (MP4)video (HEVC, 4K)ses: Türkçe (E-AC-3 5.1)ses: İngilizce (AAC 2.0)ses: Japonca (Opus)altyazı: Türkçe (WebVTT)altyazı: İngilizceortak zaman çizelgesi: her parça bir sunum zaman damgası (PTS) taşır

Oynatıcı yalnız seçilen dilin ses ve altyazı izini okur. Eski VOD sistemleri izleri ayrı dosyalarda tutardı; bugün kapsayıcı içindeki izler ya da DASH/HLS'te ayrı “uyarlama kümeleri” olarak ayrı ayrı indirilen bölütler kullanılır.

Ses

Ses Sayısallaştırma: Örnekleme ve Niceleme

t

(a) Analog ses: sürekli zamanda sürekli genlikli bir dalga (burada tek periyotluk sinüs).

tΔT

(b) Örnekleme: her ΔT saniyede bir genlik ölçülür. Örnekleme hızı fs = 1/ΔT (CD: 44.100 örnek/s).

t-8-4047ΔT

(c) Niceleme: her örnek en yakın düzeye yuvarlanır. 4 bit → 2⁴ = 16 düzey (−8 … 7). CD 16 bit, yani 65.536 düzey kullanır.

t-8-4047ΔTkırmızı: niceleme hatası (en çok ½ adım)

(d) Gerçek değer ile kodlanan düzey arasındaki fark niceleme gürültüsüdür. Her ek bit gürültüyü yarıya indirir: SNR ≈ 6,02·n + 1,76 dB (4 bit ≈ 26 dB, 16 bit ≈ 98 dB).

Ses

Nyquist Ölçütü ve Örtüşme

mavi: 7 kHz giriş · turuncu: 8 kHz örnekler · kırmızı: aynı örneklerden geri çatılan 1 kHz0 … 1 ms
Nyquist–Shannon

En yüksek frekansı fmax olan sinyal fs > 2·fmax ile örneklenirse tam geri çatılır. Aksi hâlde yüksek frekanslar alçak frekans gibi görünür (örtüşme); kodlayıcı önce alçak geçiren süzgeç uygular.

Tipik hızlar

Telefon: 8 kHz (≤ 3,4 kHz konuşma). CD: 44,1 kHz (insan kulağı ≈ 20 kHz). Video/yayın: 48 kHz. Stüdyo: 96–192 kHz. Bit derinliği 16 bit ≈ 98 dB, 24 bit ≈ 146 dB dinamik aralık.

Ses

Ses Kodlama Türleri

BiçimTürTipik bit hızıKullanım
PCM (WAV, CD)sıkıştırmasız, doğrusal1,41 Mbit/s (44,1 kHz/16 bit/stereo)kayıt, düzenleme, CD
MP3 (MPEG-1 Audio Layer III)kayıplı, psikoakustik128–320 kbit/seski müzik arşivleri
AAC (LC, HE-AAC)kayıplı, MDCT64–256 kbit/sApple Music, YouTube, HLS/DASH, yayın
Opus (IETF RFC 6716)kayıplı, düşük gecikme6–510 kbit/s (konuşma ≈ 16–32)WebRTC, Discord, VoIP, YouTube
E-AC-3 / Dolby Atmoskayıplı, çok kanallı / nesne384–768 kbit/sfilm, 5.1/7.1, uzamsal ses
FLAC, ALACkayıpsız (doğrusal öngörü)≈ 0,7–1 Mbit/s (CD); hi-res 2–3arşiv, kayıpsız akış
Eski sunumdaki “FLAC 1–5 Mbit/s” yalnız yüksek çözünürlüklü (24 bit/96–192 kHz) dosyalar için geçerlidir; CD kalitesinde FLAC, PCM'nin ≈ %50–70'i kadardır. Opus, 2012'den beri konuşma ve müzik için tek kodektir ve gerçek zamanlı uygulamaların varsayılanıdır.

Ses

Fourier Ayrışımı ve Ardışık Yaklaşımlar

1001100010“b” = 01100010harmonik numarasıgenlik (rms)151015

8 bitlik ASCII “b” (01100010) kare dalgası. Her periyodik sinyal, sabit + sinüs/kosinüs harmonikleri toplamı olarak yazılabilir (sağda genlikler).

10011000101 harmonikharmonik numarasıgenlik (rms)151015

Yalnız 1. harmonik: sinyalin kaba biçimi. İletim kanalı ya da kodlayıcı yüksek frekansları atarsa elde kalan budur.

10011000102 harmonikharmonik numarasıgenlik (rms)151015

2 harmonik: geçişler belirginleşiyor. Genliklerin çoğu ilk birkaç harmonikte toplanmıştır.

10011000104 harmonikharmonik numarasıgenlik (rms)151015

4 harmonik: bitler artık ayırt edilebilir.

10011000108 harmonikharmonik numarasıgenlik (rms)151015

8 harmonik: orijinale çok yakın. Dönüşüm kodlama fikri buradan gelir: frekans uzayına geçip küçük bileşenleri kaba nicelemek ya da atmak. MP3/AAC (MDCT) ve JPEG (DCT) bunu yapar.

Ses

Psikoakustik: Eşik ve Maskeleme

201001k10k20kfrekans (Hz, log)020406080ses basınç düzeyi (dB SPL)işitme eşiğiA: 100 Hz, 40 dB (duyulur)B: 150 Hz, 15 dB → eşiğin altında, duyulmazC: 3,5 kHz, 10 dB (duyulur)

İşitme eşiği frekansa bağlıdır: kulak 2–5 kHz'te en duyarlıdır, çok alçak ve çok yüksek frekanslarda eşik yükselir. Eşiğin altındaki B tonu hiç kodlanmayabilir.

201001k10k20kfrekans (Hz, log)020406080ses basınç düzeyi (dB SPL)işitme eşiğimaskeleyici: 1 kHz, 70 dBD: 1,4 kHz, 40 dB → maskelendiA: 150 Hz bölgesi etkilenmez

Frekans maskelemesi: 1 kHz, 70 dB'lik güçlü ton yakınındaki eşiği yükseltir (kesikli eğri). 1,4 kHz'teki 40 dB'lik D tonu artık duyulmaz; kodlayıcı ona bit harcamaz.

zaman (ms)eşik (dB)güçlü ses (maskeleyici), 200 msön maskeleme≈ 5–20 msson maskeleme≈ 50–200 ms-500100200300

Zamansal maskeleme: güçlü bir sesten hemen sonra (≈ 50–200 ms) ve az da olsa önce, zayıf sesler duyulmaz. MP3, AAC ve Opus her iki etkiyi psikoakustik modelde kullanır.

Ses

Algısal Ses Kodlayıcı ve Kanal Yapılandırmaları

PCMMDCT / süzgeç≈ 1024 frekans kutusuniceleme vebit dağıtımıentropi kodlamaHuffman / aritmetikbit akışıpsikoakustik model (FFT)maskeleme eşikleriNot: kayıplı adımlar yalnız “niceleme”dedir; geri kalanı tersinirdir.
Mono

Tek giriş akışı.

Çift mono

İki bağımsız akış (ör. Türkçe ve İngilizce anlatım).

Ayrık stereo

Sol ve sağ kanal ayrı ayrı sıkıştırılır.

Ortak (joint) stereo

Kanallar arası artıklık kullanılır: orta/yan (M/S) ya da yoğunluk stereo.

Bugün ayrıca 5.1/7.1 çok kanallı ve nesne tabanlı (Dolby Atmos, MPEG-H) ses yaygındır; kanal yerine konumu olan ses nesneleri kodlanır.

Görüntü ve Video

Görüntü Tarama: Geçmeli ve Aşamalı

Geçmeli: 1. alan (tek satırlar)1/50 s (PAL) ya da 1/59,94 s (NTSC)içinde yarım çözünürlüklü alankesikli çizgiler: ışının bir sonraki satırın başına dönüşü (yatay geri dönüş)

Analog TV, enerji ve bant genişliğinden tasarruf için geçmeli tarar: önce tek numaralı satırlar (1. alan) çizilir.

Geçmeli: 2. alan araya gireriki alan = bir karehareketli sahnede “tarak” bozulması;dijital ekranda ayrıştırma (deinterlace) gerekirkesikli çizgiler: ışının bir sonraki satırın başına dönüşü (yatay geri dönüş)

Sonra çift satırlar (2. alan) araya girer. Alan hızı 50/59,94 Hz olduğundan titreme azalır ama kare hızı 25/29,97'dir.

Geçmeli (iki alan)Aşamalı (progressive)kesikli çizgiler: ışının bir sonraki satırın başına dönüşü (yatay geri dönüş)

Bilgisayar ekranları ve modern video (720p, 1080p, 2160p) aşamalıdır: her karede tüm satırlar sırayla. Akış hizmetlerinde geçmeli içerik kodlamadan önce ayrıştırılır.

Görüntü ve Video

Analog Standartlardan Dijital Video'ya

StandartYıl / bölgeSatır, kare hızıDijital örnekleme (BT.601)
NTSC1941 (s/b), 1953 (renkli); K. Amerika, Japonya525 satır, 29,97 kare/s (59,94 alan/s)720 × 480
PAL1967; Avrupa, Türkiye, Asya'nın çoğu625 satır, 25 kare/s (50 alan/s)720 × 576
SECAM1967; Fransa, eski SSCB625 satır, 25 kare/s720 × 576
HD (BT.709)1990'lar–2000'ler720p, 1080i/1080p; 24–60 kare/s1280 × 720, 1920 × 1080
UHD (BT.2020/2100)2012 →2160p (4K), 4320p (8K); 50–120 kare/s, HDR3840 × 2160, 7680 × 4320
Düzeltmeler: SECAM, PAL'in bir sürümü değil ayrı bir renk sistemidir (PAL-M ve PAL-N ise PAL türevleridir). 720 × 480 / 720 × 576, analog yayının değil onun dijital örneklemesinin çözünürlüğüdür. Analog karasal yayın çoğu ülkede kapandı; yerini DVB-T2, ATSC 3.0, IPTV ve internet akışı aldı.

Görüntü ve Video

Renk Uzayları ve HDR

RGB3 × 3matrisY = 0,2126 R + 0,7152 G + 0,0722 Bparlaklık (luma): göz en duyarlıCb = (B − Y) / 1,8556mavi renk farkıCr = (R − Y) / 1,5748kırmızı renk farkı
Neden YCbCr?

Göz parlaklık ayrıntısına renkten çok daha duyarlıdır. Y tam çözünürlükte, Cb/Cr düşük çözünürlükte saklanabilir. Katsayılar BT.709 (HD) içindir; SD BT.601, UHD BT.2020 katsayılarını kullanır.

HDR ve geniş renk gamı

10 bit örnek, BT.2020 renk gamı ve PQ (SMPTE ST 2084, 10.000 nit'e kadar) ya da HLG (yayın) aktarım eğrisi. Biçimler: HDR10, HDR10+, Dolby Vision. SDR genelde 8 bit, ≈ 100 nit.

Baskı ve görüntü dosyaları

CMYK baskı içindir, video kodlamada kullanılmaz. Fotoğrafta sRGB, Display P3 yaygındır; JPEG kodlamadan önce YCbCr'ye çevirir.

Görüntü ve Video

Renk Alt Örnekleme: 4:4:4, 4:2:2, 4:2:0

4:4:4Y (parlaklık)YYYYYYYYCb, Cr (renk)CbCrCbCrCbCrCbCrCbCrCbCrCbCrCbCr24 bit/piksel · 1080p kare 6.220.800 B4:2:2?4:2:0?

4:4:4: her piksel Y, Cb ve Cr taşır (8 bit için 24 bit/piksel). Bir 1080p kare 6,2 MB. Ekran görüntüsü ve kurgu ara biçimlerinde kullanılır.

4:4:4Y (parlaklık)YYYYYYYYCb, Cr (renk)CbCrCbCrCbCrCbCrCbCrCbCrCbCrCbCr24 bit/piksel · 1080p kare 6.220.800 B4:2:2Y (parlaklık)YYYYYYYYCb, Cr (renk)CbCrCbCrCbCrCbCr16 bit/piksel · 1080p kare 4.147.200 B4:2:0?

4:2:2: yatayda iki piksel bir renk örneğini paylaşır: 16 bit/piksel, kare 4,1 MB. Profesyonel yayın ve kamera kayıtları.

4:4:4Y (parlaklık)YYYYYYYYCb, Cr (renk)CbCrCbCrCbCrCbCrCbCrCbCrCbCrCbCr24 bit/piksel · 1080p kare 6.220.800 B4:2:2Y (parlaklık)YYYYYYYYCb, Cr (renk)CbCrCbCrCbCrCbCr16 bit/piksel · 1080p kare 4.147.200 B4:2:0Y (parlaklık)YYYYYYYYCb, Cr (renk)CbCrCbCr12 bit/piksel · 1080p kare 3.110.400 B

4:2:0: 2 × 2 piksel bir Cb ve bir Cr paylaşır: 12 bit/piksel, kare 3,1 MB (yarı boyut). JPEG, H.264, HEVC, AV1 akışlarının neredeyse tamamı 4:2:0'dır.

Sıkıştırma

Sıkıştırmanın Temelleri

Kayıpsız ve kayıplı

Kayıpsız (PNG, FLAC, GIF'in LZW'si): bit bit geri çatılır, oran ≈ 2:1. Kayıplı (JPEG, MP3, H.264): algıda önemsiz bilgi atılır, oran 10:1 – 500:1.

Asimetri

Kodlama bir kez ve yavaş yapılabilir (ör. film için saatler), kod çözme her izleyicide gerçek zamanlı olmalıdır. Canlı yayın ve görüntülü görüşmede kodlama da gerçek zamanlıdır.

Tekrar boyu kodlama (RLE)

AAAABBBCC → 4A3B2C: aynı simgenin art arda tekrarları (sayı, simge) çiftiyle yazılır. JPEG'de sıfır dizilerini kısaltır.

Biçimler

Raster: JPEG, PNG, GIF, WebP, AVIF, HEIC, TIFF, BMP. Vektör: SVG, PDF, EPS, AI. Üst veri: EXIF (kamera, konum), IPTC, XMP. Çözünürlük piksel boyutudur; PPI yalnız baskı ölçeğidir.

Eski sunumdaki RLE örneği girdi ile çıktıyı bitiştirmişti (“AAAABBBCC4A3B2C”); doğrusu yukarıdaki dönüşümdür.

Sıkıştırma

RLE Kodlayıcıyı İzleme

public class RLE {
  static String encode(String s) {
    StringBuilder out = new StringBuilder();
    int i = 0;
    while (i < s.length()) {
      char c = s.charAt(i);
      int n = 1;
      while (i + n < s.length()
             && s.charAt(i + n) == c) n++;
      out.append(n).append(c);
      i += n;
    }
    return out.toString();
  }
  public static void main(String[] a) {
    System.out.println(encode("AAAABBBCC"));
  }
}
A0A1A2A3B4B5B6C7C8out =""

encode("AAAABBBCC") çağrıldı; boş bir StringBuilder oluşturulur, i = 0.

A0A1A2A3B4B5B6C7C8c = A, n = 1out =""

Döngü: c = s.charAt(0) = 'A', n = 1 ile başlanır.

A0A1A2A3B4B5B6C7C8c = A, n = 4out =""

İç döngü sonraki karakterler 'A' oldukça n'yi artırır: n = 4 (s[4] = 'B' farklı).

A0A1A2A3B4B5B6C7C8iout ="4A"

“4A” eklenir; i += 4 → i = 4.

A0A1A2A3B4B5B6C7C8c = B, n = 3out ="4A3B"

c = 'B', üç tekrar: n = 3; “3B” eklenir, i = 7.

A0A1A2A3B4B5B6C7C8c = C, n = 2out ="4A3B2C"

c = 'C': i + n = 9 dizinin sonu, n = 2; “2C” eklenir, i = 9.

A0A1A2A3B4B5B6C7C8out ="4A3B2C"

i = 9 = s.length(): döngü biter, sonuç döndürülür ve yazdırılır. 9 karakter → 6 karakter.

Sıkıştırma

JPEG Sıkıştırma Boru Hattı

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Görüntü RGB'den YCbCr'ye çevrilir: parlaklık ve renk ayrılır.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Renk bileşenleri 4:2:0 ile alt örneklenir: veri, görsel kayıp neredeyse olmadan yarıya iner.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Her bileşen 8 × 8 piksellik bloklara bölünür; bloklar birbirinden bağımsız işlenir (yüksek oranda “bloklanma” bu yüzden görülür).

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

DCT her bloğu 64 frekans katsayısına dönüştürür. Enerji sol üstteki düşük frekanslarda toplanır. Bu adım tersinirdir.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Niceleme: her katsayı tablo değerine bölünüp yuvarlanır. Yüksek frekanslar sıfırlanır. JPEG'in tek kayıplı adımı budur; kalite ayarı tabloyu ölçekler.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Zikzak sıra katsayıları düşükten yükseğe dizer, sondaki sıfırlar art arda gelir.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

DC katsayısı önceki bloğun DC'sine göre fark (DPCM) olarak, AC katsayıları (sıfır sayısı, değer) çiftleri olarak RLE ile kodlanır; kalan sıfırlar tek EOB simgesidir.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Huffman kodlama sık simgelere kısa kodlar verir. Kod çözme bu adımların tersidir; tipik oran 10:1 – 20:1.

RGB görüntü1RGB → YCbCr24:2:0 alt örnekleme38 × 8 bloklar4DCT5niceleme (kayıp!)6zikzak sıralama7DC: DPCM, AC: RLE8Huffman kodlama9.jpg dosyası10

Sonuç: başlıklar, tablolar ve entropi kodlu veri içeren .jpg. Modern ardılları (WebP, AVIF, JPEG XL) aynı dönüşüm-niceleme-entropi fikrini daha gelişmiş araçlarla kullanır.

Sıkıştırma

DCT ve Niceleme: Sayısal Örnek

(a) Y bloğu (0–255)52556166706164736359559010985697262596811314410466736358711221541067069676168104126886870796560707768587585716459556165838779696865767894merkezleme: −128-76-73-67-62-58-67-64-55-65-69-73-38-19-43-59-56-66-69-60-1516-24-62-55-65-70-57-626-22-58-59-61-67-60-24-2-40-60-58-49-63-68-58-51-60-70-53-43-57-64-69-73-67-63-45-41-49-59-60-63-52-50-34

Bir 8 × 8 parlaklık bloğu (değerler 0–255). DCT'den önce her değerden 128 çıkarılır; değerler −128 … 127 aralığına gelir.

merkezlenmiş blok-76-73-67-62-58-67-64-55-65-69-73-38-19-43-59-56-66-69-60-1516-24-62-55-65-70-57-626-22-58-59-61-67-60-24-2-40-60-58-49-63-68-58-51-60-70-53-43-57-64-69-73-67-63-45-41-49-59-60-63-52-50-34(b) DCT katsayıları (yuvarlanmış)-415-30-612756-20-204-22-611013-7-95-47777-25-29105-6-491234-15-1062212-7-13-4-22-33-832-6-2142-100-2-1-34-100-1-4-1012

DCT sonucu: sol üst DC katsayısı (−415) bloğun ortalama parlaklığıdır; sağa ve aşağı gidildikçe frekans artar, katsayılar küçülür.

DCT katsayıları-415-30-612756-20-204-22-611013-7-95-47777-25-29105-6-491234-15-1062212-7-13-4-22-33-832-6-2142-100-2-1-34-100-1-4-1012niceleme tablosu Q (kalite 50)1611101624405161121214192658605514131624405769561417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399

Standart parlaklık niceleme tablosu: yüksek frekanslar (sağ alt) büyük bölenlerle cezalandırılır, çünkü göz ince ayrıntıdaki hatayı zor fark eder.

Q1611101624405161121214192658605514131624405769561417222951878062182237566810910377243555648110411392496478871031211201017292959811210010399(c) yuvarla(DCT / Q)-26-3-622-1000-2-411000-315-1-1000-312-1000010000000000000000000000000000000

Nicelenmiş blok: 64 katsayıdan yalnız 20'si sıfırdan farklı; DC = yuvarla(−415,4 / 16) = −26. Bilgi kaybı tam bu adımda oluşur.

Sıkıştırma

Zikzak, RLE ve Huffman

nicelenmiş blok-26-3-622-1000-2-411000-315-1-1000-312-1000010000000000000000000000000000000Okuma sırası: (0,0) → (0,1) → (1,0) → (2,0) → (1,1) → …çapraz çizgiler boyunca, yön her köşegende değişir.İlk 28 katsayı:-26, -3, 0, -3, -2, -6, 2, -4, 1, -3, 1, 1, 5, 1,2, -1, 1, -1, 2, 0, 0, 0, 0, 0, -1, -1, 0, 0 …Son sıfırdan farklı katsayı 26. sırada; geri kalan 38 değer sıfır.

Nicelenmiş katsayılar zikzak sırayla okunur: düşük frekanslar önce, yüksek frekanslar (çoğu sıfır) sonra.

nicelenmiş blok-26-3-622-1000-2-411000-315-1-1000-312-1000010000000000000000000000000000000DC = −26 → önceki bloğun DC'sine göre fark (DPCM)AC (sıfır sayısı, değer) simgeleri:(0,-3) (1,-3) (0,-2) (0,-6) (0,2)(0,-4) (0,1) (0,-3) (0,1) (0,1)(0,5) (0,1) (0,2) (0,-1) (0,1)(0,-1) (0,2) (5,-1) (0,-1) EOB

DC farkla kodlanır. AC katsayıları (önceki sıfır sayısı, değer) çiftlerine dönüşür; son sıfırdan farklı katsayıdan sonrası tek bir EOB simgesidir.

nicelenmiş blok-26-3-622-1000-2-411000-315-1-1000-312-1000010000000000000000000000000000000DC = −26 → önceki bloğun DC'sine göre fark (DPCM)AC (sıfır sayısı, değer) simgeleri:(0,-3) (1,-3) (0,-2) (0,-6) (0,2)(0,-4) (0,1) (0,-3) (0,1) (0,1)(0,5) (0,1) (0,2) (0,-1) (0,1)(0,-1) (0,2) (5,-1) (0,-1) EOB64 katsayı → 1 DC + 19 AC simgesi + EOBHuffman: sık görülen (0, küçük) simgelere 2–4 bitlikkodlar → blok ≈ 93 bit (ham 512 bit, ≈ 5,5 : 1)

Simgeler Huffman ile kodlanır. Standart tablolarla örnek blok 512 bitten (64 × 8) ≈ 93 bite iner (DC 8 + AC 85 bit); oran ≈ 5,5:1 yalnız bu blokta, düz alanlarda çok daha yüksektir.

Sıkıştırma

MPEG: I, P ve B Kareleri

görüntüleme sırasıI1B2B3P4B5B6P7B8B9I10mavi: P → önceki I/P · yeşil: B → önceki ve sonraki referans

I (iç kodlu): kendi başına, JPEG benzeri. P (öngörülü): önceki I/P referansına göre hareket dengelemeli fark. B (çift yönlü): önceki ve sonraki referansa göre.

görüntüleme sırasıI1B2B3P4B5B6P7B8B9I10mavi: P → önceki I/P · yeşil: B → önceki ve sonraki referanskod çözme / iletim sırasıI1P4B2B3P7B5B6I10B8B9

B kareleri gelecekteki referansa ihtiyaç duyduğundan kodlayıcı sırayı değiştirir: I1 P4 B2 B3 P7 B5 B6 … Kod çözücü en az bir referans kareyi tamponda tutar; bu gecikme ekler.

I180 KBB210 KBB311 KBP428 KBB59 KBB610 KBP726 KBB810 KBB99 KBI1079 KBÖrnek kare boyutları (1080p, ≈ 5 Mbit/s; temsilî)

I kareleri en büyüktür; P ve özellikle B kareleri çok daha küçüktür. GOP (I'den I'ye) akışta genelde 2 s'dir; atlama ve bölüt sınırları I karelerinde yapılır.

Sıkıştırma

Hareket Dengeleme

kare n − 1ağaçkare nağaçkare n + 1ağaç

Ardışık karelerde sahnenin çoğu aynıdır (ağaç); yalnız top sağa kayar. Kareleri bağımsız kodlamak bu zamansal artıklığı boşa harcar.

kare n − 1ağaçkare nağaçkare n + 1ağaçhareket vektörü (−40, 0)iletilen: vektör + küçük artıkarka plan blokları: “atla” (skip)

Hareket dengeleme: kodlayıcı n karesindeki her blok için n − 1'de en iyi eşleşen bloğu arar; hareket vektörünü ve farkı (artık) DCT ile kodlar. Değişmeyen bloklar yalnız “atla” bayrağıyla geçer.

MPEG-2 16 × 16 makro blok ve yarım piksel doğruluk kullanır; H.264 4 × 4 – 16 × 16 bölmeli ve çeyrek piksel, HEVC 64 × 64'e, AV1 128 × 128'e kadar esnek bloklar ve çok sayıda referans kare kullanır.

Sıkıştırma

MPEG Standartları ve Modern Kodekler

KodekYılTipik kullanım1080p için kabaca
MPEG-11993Video CD; MP3 bu standardın ses katmanıdır—
MPEG-2 (H.262)1995DVD, DVB yayın; geçmeli video desteği≈ 12–15 Mbit/s
MPEG-4 Part 21999DivX/Xvid; bugün eskimiş≈ 8–10 Mbit/s
H.264 / AVC2003en yaygın uyumluluk: web, Blu-ray, görüntülü görüşme≈ 5–8 Mbit/s
H.265 / HEVC2013UHD Blu-ray, 4K HDR yayın ve akış, iPhone kaydı≈ 3–4 Mbit/s
VP92013YouTube, WebRTC (Google, telifsiz)≈ 3–4 Mbit/s
AV12018Netflix, YouTube, Twitch; AOMedia, telifsiz≈ 2,5–3 Mbit/s
H.266 / VVC20208K, yayın; donanım desteği henüz sınırlı≈ 2 Mbit/s

Düzeltme: “MPEG-3” hiç yayımlanmadı; HDTV için planlanmış, 1992'de MPEG-2'ye katılmıştır (MP3 ≠ MPEG-3). Bit hızları aynı algısal kalite için yaklaşıktır ve içeriğe göre değişir.

Sıkıştırma

Kodek Verimliliği ve Donanım Kod Çözücüler

MPEG-213 Mbit/sH.2646 Mbit/sHEVC3,5 Mbit/sAV12,8 Mbit/sVVC2,2 Mbit/saynı kalite, 1080p (yaklaşık)
  • Her kuşak aynı kalite için bit hızını kabaca %30–50 düşürür; bedeli kodlayıcıda 5–10 kat, kod çözücüde 2–3 kat daha fazla işlemdir.
  • 4K/8K, HDR ve 60–120 fps kod çözme CPU yerine sabit işlevli donanımda yapılır: NVIDIA NVDEC/NVENC, Intel Quick Sync, AMD VCN, Apple VideoToolbox, telefon SoC'leri.
  • İşletim sistemi arayüzleri: Linux VA-API / V4L2, Windows Media Foundation ve D3D11/12 Video, Android MediaCodec. Kareler GPU belleğinde kalır (dmabuf, sıfır kopya).
  • Donanım yoksa yazılım kod çözme (ör. AV1 için dav1d) çok çekirdekli CPU'yu ve pili zorlar; oynatıcı desteklenen kodeği seçer.

Süreç Çizelgeleme

Homojen Çoklu Ortam Süreçleri

V1V2V3V4V5V6V7V8V9V10boş0153033,3 msbir kare periyodu (30 fps) — sonra döngü baştanher süreç bir kare çözer: 3 ms × 10 = 30 ms ≤ 33,3 ms → en çok ⌊33,3 / 3⌋ = 11 akış
Varsayım

Video sunucusundaki tüm akışlar aynı kare hızında ve kare başına aynı işlem süresiyle çalışır (ör. hepsi 30 fps).

Çizelge

Basit döngüsel (round-robin): her periyotta her süreç bir kare üretir ve bloklanır; zamanlayıcı kesmesi 33,3 ms'de bir yeni turu başlatır.

Kabul denetimi

Yeni akış ancak N · c ≤ T ise kabul edilir (c: kare başına süre, T: periyot). Aksi hâlde tüm akışlar bozulur.

Gerçekte akışların hızları ve kare maliyetleri farklıdır (I/P/B, farklı çözünürlük); bu yüzden genel gerçek zamanlı çizelgeleme gerekir.

Süreç Çizelgeleme

Genel Gerçek Zamanlı Çizelgeleme

0304050608090100120150A10/30A1A2A3A4A5B15/40B1B2B3B4C5/50C1C2C3zaman (ms) · oklar: işin hazır olduğu an (bir önceki işin son teslim zamanı)
SüreçFilmPeriyot PCPU / kare CC / P
A33,3 fps → 30 ms (örnek)30 ms10 ms0,333
B25 fps40 ms15 ms0,375
C20 fps50 ms5 ms0,100
Toplam U0,808

Çizelgelenebilirlik için gerekli koşul: U = Σ Cᵢ / Pᵢ ≤ 1. Her karenin, bir sonraki kare gelmeden (periyot sonunda) bitmesi gerekir.

Süreç Çizelgeleme

Hız Monoton Çizelgeleme (RMS)

  • Statik öncelik: öncelik ∝ 1 / periyot (sık çalışan süreç önceliklidir); kesmeli (preemptive).
  • Varsayımlar: her süreç periyodu içinde bitmeli; süreçler birbirine bağımlı değil; her işlem patlaması aynı CPU süresini ister; periyodik olmayan işlerin son teslim zamanı yok; kesme ek maliyetsiz.
  • Liu ve Layland (1973): U ≤ m (21/m − 1) ise RMS kesin başarılıdır. Bu yeterli koşuldur, gerekli değildir.
  • Statik öncelikli süreçler arasında en iyisidir; uygulaması kolay (sabit öncelikli zamanlayıcı, ör. SCHED_FIFO).
msınır m(21/m − 1)
11,000
20,828
30,780
40,757
50,743
100,718
∞ln 2 ≈ 0,693
Örneğimizde U = 0,808 > 0,780 (m = 3): sınır bir şey garanti etmez; çizelgeyi çizip bakmak gerekir. Sonraki slayt RMS'nin bu örnekte yine de başardığını gösterir.

Süreç Çizelgeleme

RMS ve EDF Örneği 1 (U = 0,808)

0102030405060708090100110120130140150A (10/30)B (15/40)C (5/50)RMSA1B1C1EDFA1B1C1

t = 0: üç süreç birden hazır. RMS önceliği periyoda göre A > B > C; EDF teslim zamanlarına (30, 40, 50) bakar: ikisi de A1, B1, C1 sırasını seçer.

0102030405060708090100110120130140150A (10/30)B (15/40)C (5/50)RMSA1B1C1A2B2C2EDFA1B1C1A2B2C2

t = 30–60: A2 (teslim 60) gelir, A2 çalışır; t = 40'ta B2 hazır olur (teslim 80), t = 50'de C2 (teslim 100). İki çizelge hâlâ aynı.

0102030405060708090100110120130140150A (10/30)B (15/40)C (5/50)RMSA1B1C1A2B2C2A3B3EDFA1B1C1A2B2C2A3B3

t = 60–90: A3 çalışır; ardından B3 hazır olmayana kadar (t = 80) işlemci boştur; B3 t = 80'de başlar.

0102030405060708090100110120130140150A (10/30)B (15/40)C (5/50)RMSA1B1C1A2B2C2A3B3A4B3C3EDFA1B1C1A2B2C2A3B3A4C3

t = 90: A4 hazır. RMS B3'ü keser (A daha öncelikli). EDF B3'ün teslimi (120) A4'ünkinden (120) geç değil; eşitlikte çalışanı sürdürür, A4 bekler.

0102030405060708090100110120130140150A (10/30)B (15/40)C (5/50)RMSA1B1C1A2B2C2A3B3A4B3C3A5B4EDFA1B1C1A2B2C2A3B3A4C3A5B4

t = 150'ye kadar iki algoritma da hiçbir teslim zamanını kaçırmaz. U = 0,808 > 0,780 olmasına rağmen RMS başardı: sınır yalnızca yeterli koşuldur.

Süreç Çizelgeleme

En Erken Teslim Zamanı Önce (EDF)

Kural

Dinamik öncelik: hazır işler arasında son teslim zamanı en yakın olan çalışır. Yeni iş geldiğinde öncelikler yeniden değerlendirilir; kesmelidir.

Optimallik

Tek işlemcide, bağımsız ve kesilebilir işler için U ≤ 1 ise EDF her zaman başarılıdır: %100 kullanım mümkündür (RMS'de ≈ %69–78).

Bedel

Her olayda sıralama gerekir (öncelik kuyruğu, O(log n)). Aşırı yükte (U > 1) hangi işin kaçıracağı öngörülemez; “domino etkisi”.

Bugün

Linux SCHED_DEADLINE (EDF + sabit bant sunucusu, çalışma/periyot ile kabul denetimi); ses için JACK/PipeWire SCHED_FIFO; Windows MMCSS; RTOS'larda RMS yaygın.

Eski sunumdaki “EDF, süreçlerin birbirine karışmadığını varsayar” ifadesi RMS için de geçerlidir: iki analiz de bağımsız, kaynak paylaşmayan işler varsayar; paylaşımda öncelik tavanı/kalıtımı gerekir.

Süreç Çizelgeleme

RMS Başarısız, EDF Başarılı (U = 0,975)

0102030405060708090100110120130140150A (15/30)B (15/40)C (5/50)RMSA1B1EDFA1B1

A'nın kare başına süresi 15 ms'ye çıktı: U = 0,5 + 0,375 + 0,1 = 0,975. t = 0–30 aralığında iki çizelge aynı: A1, B1.

0102030405060708090100110120130140150A (15/30)B (15/40)C (5/50)RMSA1B1A2B2C kaçırdı (t = 50)EDFA1B1C1A2

t = 30: RMS A2'yi C1'e tercih eder (A daha öncelikli). C1 hiç çalışamadan t = 50'de teslim zamanını kaçırır. EDF ise C1'i (teslim 50) A2'den (teslim 60) önce çalıştırır.

0102030405060708090100110120130140150A (15/30)B (15/40)C (5/50)RMSA1B1A2B2A3C2B3A4C kaçırdı (t = 50)EDFA1B1C1A2B2A3C2B3

t = 50–100: EDF teslim zamanlarına göre B2 (80), A3 (90), C2 (100), B3 (120) sırasıyla devam eder; hiçbir iş geç kalmaz.

0102030405060708090100110120130140150A (15/30)B (15/40)C (5/50)RMSA1B1A2B2A3C2B3A4B3C3A5B4C kaçırdı (t = 50)EDFA1B1C1A2B2A3C2B3A4C3A5B4

t = 150'ye kadar EDF hiçbir teslim zamanını kaçırmaz (U ≤ 1). RMS ise ilk 50 ms içinde başarısız oldu: statik öncelik bu yükü taşıyamaz.

Dosya Sistemleri

Çoklu Ortam Dosya Sistemi Paradigmaları

(a) çekme (pull) sunucusuVideosunucusuİstemciblok 1 isteblok 1blok 2 isteblok 2blok 3 isteblok 3istemci hızı belirler; durum istemcide(b) itme (push) sunucusuVideosunucusuİstemciBAŞLAT (film, hız)blok 1blok 2blok 3blok 4sunucu sabit hız gönderir; durum sunucuda

Klasik video sunucuları (ve RTP/çoklu yayın) itme modelini kullanır. İlginç biçimde günümüzün HLS/DASH akışı çekme modelidir: oynatıcı bölütleri sıradan HTTP GET ile ister; durum ve hız kararı istemcidedir, sunucu durumsuz ve önbelleklenebilir kalır.

Dosya Sistemleri

VCR Kontrol İşlevleri

Duraklat

İtme sunucusunda sunucu akışı durdurmalı ve nerede kaldığını hatırlamalıdır; ayrılan disk ve ağ kaynakları boşta kalır, kabul denetimi bunu hesaba katmalı.

Geri sar / ileri sar

Ham olarak 4× hızda okumak 4× bant genişliği ister. P/B kareleri atlamak mümkün değildir (referanslara bağlılar); çözüm yalnız I kareleri göstermek ya da ayrı bir hızlı sarma sürümü tutmaktır.

Atlama (seek)

Rasgele konuma gitmek en yakın I kareye (GOP başına) inmeyi gerektirir; dosya bu yüzden kare/blok indeksi tutar.

Bugünkü çözüm

HLS/DASH'te sarma, istemcinin başka bölütü istemesidir. Önizleme için yalnız I karelik oynatma listeleri (EXT-X-I-FRAMES-ONLY) ve küçük resim (thumbnail) dosyaları kullanılır.

Dosya Sistemleri

Yakın İsteğe Bağlı Video (NVOD)

051015202530354045505560saat 20:00'den beri geçen dakikaakış 1kare 0 →akış 2kare 0 →akış 3kare 0 →akış 4kare 0 →akış 5kare 0 →akış 6kare 0 →akış 7kare 0 →akış 8kare 0 →akış 9kare 0 →akış 10kare 0 →izleyici 22. dk'da gelir → akış 6 (25. dk) için 3 dk bekler
Kademeli başlangıç

Film sabit aralıkla (Δ = 5 dk) yeniden başlatılır. 30 fps'de 5 dk = 9.000 kare: her akış bir öncekinin 9.000 kare gerisindedir.

Akış ve bant genişliği

120 dk'lık film → 120 / 5 = 24 akış, çoklu yayınla (multicast) sınırsız izleyiciye: 24 × 8 Mbit/s = 192 Mbit/s. Gerçek VOD'da 1.000 izleyici = 8 Gbit/s.

Bekleme

Ortalama Δ / 2 = 2,5 dk, en kötü 5 dk. Kablo TV'deki “her çeyrek saatte başlayan film” bu modeldi.

Dosya Sistemleri

NVOD ile VCR İşlevleri

051015202530354045film dakikasıyayındaki akışların konumu (t = 0 dk):istemci tamponu10–20. dkoynatma: 15. dk

(a) İzleyici 15. dakikada. İstemci 5 dk geriyi ve 5 dk ileriyi tamponda tutar (10–20); ileri kısmı, 5 dk önce başlamış akışı kaydederek doldurur. İki akışı birden alır.

051015202530354045film dakikasıyayındaki akışların konumu (t = 0 dk):istemci tamponu10–20. dkoynatma: 12. dk

(b) 12. dakikaya geri sarma: tampon içinde, anında. Sunucunun haberi bile olmaz.

051015202530354045film dakikasıyayındaki akışların konumu (t = 3 dk):istemci tamponu13–23. dkoynatma: 15. dk

(c) 3 dk sonra oynatma 15. dakikada; ileri akış 23'e ulaştı. Tampon 10 dk sığdığından en eski kısım atıldı: 13–23.

051015202530354045film dakikasıyayındaki akışların konumu (t = 3 dk):istemci tamponu13–23. dkoynatma: 22. dk

(d) 22. dakikaya ileri sarma: yine tampon içinde, anında. Ancak ileri pay 1 dk'ya düştü; istemci daha önde bir akışı kaydetmeye başlar.

051015202530354045film dakikasıyayındaki akışların konumu (t = 3 dk):istemci tamponu38–43. dkoynatma: 38. dkileri sarma 40. dk → tampon dışında: en yakın akışa (38. dk) geçilir

(e) 40. dakikaya atlama tamponun dışında: istemci o an 38. dakikada olan akışa geçer (2 dk sapma). NVOD'da VCR işlevleri bu yüzden yaklaşıktır.

Dosya Sistemleri

Dosyayı Tek Diske Yerleştirme

disk üzerinde ardışık sektörler →V1A1T1V2A2T2V3A3T3V4A4T4…çok dilli film: her karede 3 ses iziV1TRENJATV2TRENJATV3TRENJATgri: izleyicinin seçmediği dil → yine de okunur, bant genişliği boşa giderV: video karesi · A: ses · T: altyazı
Avantaj

Bir kare için tek arama (seek): video, ses ve metin birlikte okunur; sıralı akış en verimli disk erişimidir.

Dezavantaj

Dosya büyür ve birleştirmesi zordur; kullanılmayan izler okunur; değişken boyutlu kareler (I > P > B) yer ayırmayı karmaşıklaştırır.

Bugünkü MP4/MKV kapsayıcıları da izleri parçalar hâlinde iç içe (interleaved) saklar; uyarlanabilir akışta ise her iz ve kalite ayrı bölüt dosyalarıdır.

Dosya Sistemleri

Küçük ve Büyük Disk Blokları

Küçük bloklar (ör. 4 KB) + kare indeksi (RAM'de)disk blokları →kare indeksiI1 → blok 0B2 → blok 9B3 → blok 11P4 → blok 13B5 → blok 17B6 → blok 19

Küçük bloklar + kare indeksi: kare art arda küçük bloklara yazılır, her kare için bir indeks girdisi. Disk israfı az, ama indeks büyük: 2 saatlik film, 30 fps, 8 B/girdi → 216.000 girdi = 1,73 MB RAM.

Büyük bloklar (ör. 256 KB) + blok indeksiI1B2B3P4B5B6P7B8P9B10B11boşblok indeksi: blok → ilk kare numarasıblok 0 → kare 1blok 1 → kare 4blok 2 → kare 8kareler bölünmezse blok sonunda boşluk; bölünürse boşluk yok ama ek aramaortalama kare 33 KB (8 Mbit/s, 30 fps) → 1 MB blokta ≈ ½ kare ≈ %1,7 kayıp

Büyük bloklar + blok indeksi: bir blokta birçok kare. İndeks küçük: 1 MB blok ve 8 Mbit/s ile 7.200 blok × 8 B = 57,6 KB. Kare bloklara bölünmezse israf, bölünürse ek arama.

StratejiBellek (indeks)Disk israfıArama
Kare indeksi, küçük blokyüksek (1,73 MB/film)azkare başına ≥ 1
Blok indeksi, kareler bölünmezdüşük (57,6 KB/film)blok sonunda ≈ ½ kareblok başına 1
Blok indeksi, kareler bölünürdüşükyokbölünen karede ek arama

Dosya Sistemleri

Zipf Yasası: Film Popülerliği

%0%50%100%0%10%20%30127,8213,939,34567891011121314151617181920kesikli: kümülatif pay (sağ ölçek)popülerlik sırası k

k. sıradaki film P(k) = C / k olasılıkla seçilir; C = 1 / HN. N = 20 için H20 = 3,598, C = 0,278: ilk film isteklerin %27,8'i, ilk 5 film %63,5'i. Gerçek video kataloglarında üs genelde 0,6–1 arasında ölçülür.

Dosya Sistemleri

Organ Borusu Yerleşimi

film 102,8film 83,5film 64,6film 46,9film 213,9film 127,8film 39,3film 55,6film 74,0film 93,1film 112,5← dış silindirlerorta silindirleriç silindirler →yüzdeler: Zipf (N = 20) ile istek olasılığı
Fikir

Kafa çoğu zaman popüler filmlerin üzerinde olacağından onları ortaya koymak ortalama arama mesafesini en aza indirir (Grossman ve Silverman). Histogram org borularına benzer.

Bugün

SSD'de arama yoktur, yerleşim önemsizleşir; ama aynı fikir katmanlara taşınır: popüler içerik RAM'de ve kenar SSD'lerinde, uzun kuyruk ucuz HDD/nesne deposunda.

Dosya Sistemleri

Birden Çok Dosyayı Çoklu Diske Yerleştirme

(a) şerit yokdisk 1A1A2A3A4disk 2B1B2B3B4disk 3C1C2C3C4disk 4D1D2D3D4

(a) Her film tek diskte: basit, ama popüler film A'nın diski darboğaz olur, diğerleri boşta bekler.

(b) aynı şeritlemedisk 1A1B1C1D1disk 2A2B2C2D2disk 3A3B3C3D3disk 4A4B4C4D4

(b) Her filmin k. bloğu k. diske: yük dağılır. Ancak tüm filmler disk 1'den başladığından film başlangıçlarında disk 1 yığılır.

(c) kademeli şeritlemedisk 1A1B4C3D2disk 2A2B1C4D3disk 3A3B2C1D4disk 4A4B3C2D1

(c) Kademeli: her film bir sonraki diskten başlar (A disk 1, B disk 2, …); başlangıç yükü de dağılır.

(d) rasgele şeritlemedisk 1A1B1C3D4disk 2C2A3D3B4disk 3B3D2A2C4disk 4D1C1B2A4

(d) Rasgele: bloklar rasgele disklere; uzun vadede yük dengeli, yerleşim tablosu gerekir. Bugünkü dağıtık depolar (Ceph, nesne depoları) karma tabanlı rasgele yerleşim kullanır.

Dosya Sistemleri

Blok Önbellekleme ve Akış Birleştirme

0255075100125150175200zaman (s)kullanıcı 1kullanıcı 2film konumu = t (30 fps)film konumu = t − 10 sönbellek: son 10 s ≈ 10 MB (8 Mbit/s)kullanıcı 2 diskten değil önbellekten okur → disk yükü yarıya iner

(a) İki kullanıcı aynı filmi 10 s arayla başlattı. Sunucu birinci kullanıcı için okuduğu blokları 10 s tutarsa, ikinci kullanıcı aynı blokları önbellekten alır.

0255075100125150175200zaman (s)kullanıcı 1kullanıcı 2kullanıcı 1: 29 fps (%3,3 yavaş)kullanıcı 2: 31 fps (%3,3 hızlı)birleşme: t ≈ 160 sarada 10 s × 30 = 300 kare; yakınlaşma 2 kare/s → 150 s sonra tek akış

(b) Önbellek yoksa akışları birleştirme: önde olan biraz yavaşlatılır, arkadaki biraz hızlandırılır (fark edilmez). 300 karelik fark 150 s'de kapanır; sonra tek akış iki kullanıcıya gider.

Dosya önbellekleme: popüler filmler bütün olarak hızlı katmanda (eskiden teyp → disk, bugün HDD → SSD/RAM ve CDN kenarı) tutulur; az izlenenler yavaş katmandan istendiğinde getirilir.

Disk Çizelgeleme

Statik Disk Çizelgeleme

disktur 1 (1 s)S1s12S2s30S3s45S4s61S5s77S6s90…tur 2 (1 s)S6s90S5s77S4s61S3s45S2s30S1s12…SCAN sırası: silindir artanSCAN sırası: silindir azalanS1 tampontampon A: diskten dolartampon B: oynatılırtampon B: diskten dolartampon A: oynatılırtur süresi = 1 s; okunan blok = her akışın 1 s'lik verisi (8 Mbit/s → 1 MB)her blok tur sonuna kadar hazır olmalı; bu turda dolan tampon bir sonraki turda oynatılırS1 … S6: akışlar · s: silindir numarası
Neden büyük blok? HDD'de ortalama arama + dönme ≈ 8 ms, aktarım 200 MB/s. Kare başına (33 KB) okuma ≈ 8,2 ms → 33,3 ms'lik turda yalnız 4 akış. Turda 1 MB (1 s) okunursa istek ≈ 13 ms → saniyede ≈ 76 akış. SCAN sıralaması arama süresini daha da kısaltır. NVMe SSD'de arama yoktur; tur fikri IOPS ve kuyruk derinliği planlamasına dönüşür.

Disk Çizelgeleme

Dinamik Disk Çizelgeleme: SCAN-EDF

0102030405060708090100silindirteslim 5 msteslim 20 msteslim 40 msteslim 60 msABCDEFGHkafa

Kafa 50. silindirde, yukarı yönde. Sekiz istek, dört farklı son teslim zamanında (5, 20, 40, 60 ms). Salt SCAN teslim zamanlarını kaçırabilir; salt EDF kafayı zikzak çizdirir.

0102030405060708090100silindirteslim 5 msteslim 20 msteslim 40 msteslim 60 msABCDEFGHkafa

Önce teslimi en yakın grup: yalnız A (silindir 30). Kafa 50 → 30 iner; yön artık aşağı.

0102030405060708090100silindirteslim 5 msteslim 20 msteslim 40 msteslim 60 msABCDEFGHkafa

Teslim 20 ms grubu {B 70, C 20, D 95}: grup içinde SCAN, mevcut yönde (aşağı) önce C, sonra yukarı B, D: C(20) → B(70) → D(95).

0102030405060708090100silindirteslim 5 msteslim 20 msteslim 40 msteslim 60 msABCDEFGHkafa

Teslim 40 ms grubu: kafa 95'te, yukarıda istek yok; aşağı doğru G(85) → E(60) → F(10).

0102030405060708090100silindirteslim 5 msteslim 20 msteslim 40 msteslim 60 msABCDEFGHkafatoplam kafa hareketi: SCAN-EDF 220 silindir · salt EDF (FIFO) 390

Son olarak H (40). Toplam hareket 220 silindir; aynı istekler salt EDF ile (grup içinde geliş sırası) 390 silindir. Gerçek sistemler “yakın” teslim zamanlarını da aynı gruba alarak daha fazla toplu tarama yapar.

Modern Akış

Modern Akış Mimarisi: HLS, DASH ve CDN

Kaynakkamera / filmKodlayıcı2160p · 16 Mb1440p · 9 Mb1080p · 5 Mb720p · 2,8 Mb480p · 1,4 Mb360p · 0,8 MbPaketleyiciCMAF bölütleri(2–6 s, fMP4).m3u8 / .mpd · DRMKöken(origin)BölgeselCDN önbelleğiKenar (edge)ISS içindeKenar (edge)ISS içindeKenar (edge)ISS içinde↑ oynatıcılar: HTTP GET (çekme)istek kenarda yoksa (ıska) bir üst katmana gider

HLS (Apple) ve MPEG-DASH aynı CMAF bölütlerini paylaşabilir. Gecikme: klasik HLS/DASH 10–30 s, düşük gecikmeli LL-HLS/LL-DASH 2–5 s, etkileşimli WebRTC < 0,5 s. Video bugün internet trafiğinin yaklaşık üçte ikisini oluşturur.

Modern Akış

Uyarlanabilir Bit Hızı (ABR) Merdiveni

0510152025Mbit/s016 stampon (s)48021602160bölüt (4 s)kalite merdiveni2160p · 16 Mbit/s1440p · 9 Mbit/s1080p · 5 Mbit/s720p · 2,8 Mbit/s480p · 1,4 Mbit/s360p · 0,8 Mbit/s240p · 0,4 Mbit/smavi: ölçülen hızturuncu: seçilen bit hızıyeşil: tampon doluluğukırmızı: takılma süresi

Başlangıç: ağ hızı bilinmiyor, oynatıcı güvenli seçer (480p). İlk ölçüm 25 Mbit/s → kural: ölçülen hızın %80'ine sığan en yüksek basamak → 2160p (16 Mbit/s).

0510152025Mbit/s016 stampon (s)4802160216021600,6 s10801,7 s720bölüt (4 s)kalite merdiveni2160p · 16 Mbit/s1440p · 9 Mbit/s1080p · 5 Mbit/s720p · 2,8 Mbit/s480p · 1,4 Mbit/s360p · 0,8 Mbit/s240p · 0,4 Mbit/smavi: ölçülen hızturuncu: seçilen bit hızıyeşil: tampon doluluğukırmızı: takılma süresi

Ağ hızı 9, sonra 3,5 Mbit/s'ye düşer. Kural bir önceki ölçüme baktığı için 2160p bölütü 7,1 s sürer: tampon boşalır, 0,6 s takılma; ardından 1080p de yetişmez (1,7 s).

0510152025Mbit/s016 stampon (s)4802160216021600,6 s10801,7 s7204807201080bölüt (4 s)kalite merdiveni2160p · 16 Mbit/s1440p · 9 Mbit/s1080p · 5 Mbit/s720p · 2,8 Mbit/s480p · 1,4 Mbit/s360p · 0,8 Mbit/s240p · 0,4 Mbit/smavi: ölçülen hızturuncu: seçilen bit hızıyeşil: tampon doluluğukırmızı: takılma süresi

Oynatıcı 720p ve 480p'ye iner; indirme süresi bölüt süresinin altına düşünce tampon yeniden dolar ve kalite 720p, 1080p'ye çıkar.

0510152025Mbit/s016 stampon (s)4802160216021600,6 s10801,7 s7204807201080144021602160bölüt (4 s)kalite merdiveni2160p · 16 Mbit/s1440p · 9 Mbit/s1080p · 5 Mbit/s720p · 2,8 Mbit/s480p · 1,4 Mbit/s360p · 0,8 Mbit/s240p · 0,4 Mbit/smavi: ölçülen hızturuncu: seçilen bit hızıyeşil: tampon doluluğukırmızı: takılma süresi

Hız toparlanınca kalite kademeli olarak 1440p ve 2160p'ye çıkar, tampon ≈ 17 s. Gerçek oynatıcılar (BOLA, hibrit kurallar) tampon düzeyine de bakarak bu takılmaları önler.

Modern Akış

CDN Önbelleği ve Zipf

%0,1%1%10%100%0%50%100%53%76,5önbellekteki katalog payı (N = 10.000)mavi: üs 1 · kırmızı: üs 0,8
  • Katalogun en popüler %1'i (100 başlık) isteklerin %53'ünü, %10'u %76,5'ini karşılar (Zipf, üs 1, H100 / H10.000).
  • Üs 0,8 ise kuyruk daha kalındır: %1 → %30, %10 → %57. Bu yüzden kenar önbellekleri büyük SSD'ler kullanır.
  • Katmanlar: oynatıcı tamponu → ISS içindeki kenar sunucu (ör. Netflix Open Connect) → bölgesel önbellek → köken. Gece boş saatte popüler içerik önceden doldurulur.
  • Değiştirme: LRU basit ama tek seferlik isteklerle kirlenir; LFU/ARC türevleri ve “ikinci istekte önbelleğe al” kuralları tercih edilir.

Özet

Özet

Özellikler

Sürekli ortam: yüksek veri hızı, gerçek zaman, titreşim, QoS ve eşzamanlama. Sıkıştırmasız 4K60 HDR 7,46 Gbit/s, akışı 16 Mbit/s.

Kodlama

Örnekleme (Nyquist), niceleme, psikoakustik maskeleme; YCbCr, 4:2:0, DCT + niceleme + entropi kodlama; I/P/B kareler ve hareket dengeleme.

Kodekler

MPEG-2 → H.264 → HEVC/VP9 → AV1/VVC: her kuşak ≈ %30–50 tasarruf; çözme donanımda. Ses: AAC, Opus, FLAC.

Süreç çizelgeleme

Homojen akışlarda döngü; genelde RMS (statik, U ≤ m(21/m − 1) yeterli) ve EDF (dinamik, U ≤ 1 yeterli ve gerekli).

Dosya sistemi

İtme/çekme, NVOD ve VCR, iç içe yerleşim, blok boyutu ve indeks, Zipf + organ borusu, şeritleme, blok ve dosya önbelleği.

Disk ve akış

Statik turlar + SCAN, SCAN-EDF; bugün HLS/DASH bölütleri, CDN katmanları ve uyarlanabilir bit hızı merdiveni.

Özet

Kontrol Soruları

  1. 48 kHz, 24 bit, 6 kanallı (5.1) PCM sesin veri hızı nedir?
  2. 1280 × 720, 60 fps, 8 bit 4:2:0 sıkıştırmasız videonun veri hızı nedir?
  3. 12 kHz bileşen içeren bir sinyal 16 kHz ile örneklenirse ne olur?
  4. JPEG'de hangi adımlar kayıplı, hangileri tersinirdir?
  5. Görüntüleme sırası I1 B2 B3 P4 B5 B6 P7 olan karelerin kod çözme sırası nedir? Neden?
  6. (P, C) = (20, 5), (50, 10), (100, 30) ms görevleri RMS ile kesin çizelgelenebilir mi?
  7. 90 dk'lık film her 10 dk'da bir başlatılırsa NVOD kaç akış ister, ortalama bekleme nedir?
  8. Zipf (N = 20) ile ilk 3 filmin istek payı nedir? Organ borusunda nereye konurlar?
  9. Kare indeksi ile blok indeksi arasındaki bellek–disk israfı ödünleşimi nedir?
  10. Ölçülen hız 6 Mbit/s, kural “hızın %80'ine sığan en yüksek basamak”: slayttaki merdivenden hangisi seçilir?
Cevaplar
  1. 48.000 × 24 × 6 = 6.912.000 bit/s ≈ 6,9 Mbit/s.
  2. 1280 × 720 × 12 × 60 = 663.552.000 bit/s ≈ 664 Mbit/s.
  3. Nyquist sınırı 8 kHz; 12 kHz bileşen 16 − 12 = 4 kHz olarak örtüşür. Önce alçak geçiren süzgeç gerekir.
  4. Renk alt örnekleme ve niceleme kayıplıdır; renk dönüşümü (yuvarlama dışında), DCT, zikzak, RLE ve Huffman tersinirdir.
  5. I1 P4 B2 B3 P7 B5 B6: B kareleri sonraki referansa (P4, P7) ihtiyaç duyar.
  6. U = 0,25 + 0,2 + 0,3 = 0,75 ≤ 0,780 (m = 3): evet, Liu–Layland sınırı garanti eder; EDF de başarır.
  7. 90 / 10 = 9 akış; ortalama bekleme 5 dk, en kötü 10 dk.
  8. (1 + 1/2 + 1/3) / 3,598 ≈ %51. En popüler ortadaki silindirlere, 2. ve 3. onun iki yanına.
  9. Kare indeksi büyük RAM ister (2 saatte 1,73 MB) ama israf azdır; blok indeksi küçüktür (57,6 KB) ama kareler bölünmezse blok sonunda boşluk kalır, bölünürse ek arama gerekir.
  10. 0,8 × 6 = 4,8 Mbit/s → 720p (2,8 Mbit/s); 1080p (5 Mbit/s) sığmaz.

Özet

Kaynaklar

  • A. S. Tanenbaum, Modern Operating Systems, 3. baskı, Pearson, 2008 — Bölüm 7: Multimedia Operating Systems (bu sunumun temel kaynağı).
  • A. Silberschatz, P. B. Galvin, G. Gagne, Operating System Concepts, 8. baskı, Wiley, 2009 — Bölüm 20: Multimedia Systems (9. baskıda, 2012, bu bölüm çıkarılmış; gerçek zamanlı çizelgeleme Bölüm 6.6’dadır).
  • C. L. Liu, J. W. Layland, “Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment”, JACM, 1973; A. L. N. Reddy, J. Wyllie, “Disk Scheduling in a Multimedia I/O System” (SCAN-EDF), ACM Multimedia, 1993.
  • ITU-T T.81 (JPEG); ITU-T H.264, H.265, H.266; AOMedia AV1 Bitstream Specification; IETF RFC 6716 (Opus); ISO/IEC 23000-19 (CMAF).
  • IETF RFC 8216 ve draft-pantos-hls-rfc8216bis (HLS, LL-HLS); ISO/IEC 23009-1 (MPEG-DASH); ITU-R BT.601, BT.709, BT.2020, BT.2100 (HDR, PQ/HLG).
  • Linux çekirdek belgeleri: “Deadline Task Scheduling” (SCHED_DEADLINE), VA-API ve V4L2 kodek arayüzleri.

Son

Bölüm 14: Çoklu Ortam Sistemleri
Sonraki bölüm: İşletim Sistemi Tasarımı
1 / 1 Sercan KÜLCÜ, Tüm hakları saklıdır.