summaryrefslogtreecommitdiffstats
path: root/DOCS/xml/pl/encoding-guide.xml
diff options
context:
space:
mode:
authorwm4 <wm4@mplayer2.org>2012-07-28 17:07:49 +0200
committerwm4 <wm4@mplayer2.org>2012-07-28 17:24:05 +0200
commit51e198c2a1e43b74ad35ef358628dcd8791158d9 (patch)
tree60f6c2255ed912a7a4866b71728104a2cb2442f1 /DOCS/xml/pl/encoding-guide.xml
parent2793e7eb70a342b346788f83e1ed660c8e0d491e (diff)
parent7dfaaa95104a8e6dc024fddaf1b49c71768f1be7 (diff)
downloadmpv-51e198c2a1e43b74ad35ef358628dcd8791158d9.tar.bz2
mpv-51e198c2a1e43b74ad35ef358628dcd8791158d9.tar.xz
Merge remote-tracking branch 'origin/master'
Conflicts: .gitignore bstr.c cfg-mplayer.h defaultopts.c libvo/video_out.c The conflict in bstr.c is due to uau adding a bstr_getline function in commit 2ba8b91a97e7e8. This function already existed in this branch. While uau's function is obviously derived from mine, it's incompatible. His function preserves line breaks, while mine strips them. Add a bstr_strip_linebreaks function, fix all other uses of bstr_getline, and pick uau's implementation. In .gitignore, change vo_gl3_shaders.h to use an absolute path additional to resolving the merge conflict.
Diffstat (limited to 'DOCS/xml/pl/encoding-guide.xml')
-rw-r--r--DOCS/xml/pl/encoding-guide.xml5516
1 files changed, 0 insertions, 5516 deletions
diff --git a/DOCS/xml/pl/encoding-guide.xml b/DOCS/xml/pl/encoding-guide.xml
deleted file mode 100644
index f6fcee54f9..0000000000
--- a/DOCS/xml/pl/encoding-guide.xml
+++ /dev/null
@@ -1,5516 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- synced with 27843 -->
-<!-- Opiekun: Torinthiel -->
-<!-- INCOMPLETE!!!! -->
-<chapter id="encoding-guide">
-<title>Kodowanie przy użyciu <application>MEncodera</application></title>
-
-<sect1 id="menc-feat-dvd-mpeg4">
-<title>Rippowanie DVD do wysokiej jakości pliku MPEG-4 ("DivX")</title>
-
-<para>
- Jednym z często zadawanych pytań jest "Jak zrobić rip najlepszej jakości
- przy danej objętości?". Innym pytaniem jest "Jak zrobić najlepszy możliwy
- rip? Nie ważne jaka będzie objętość, chcę najlepszej jakości."
-</para>
-
-<para>
- To drugie pytanie jest przynajmniej źle postawione. W końcu, jeśli nie
- przejmujesz się wielkością pliku, mógłbyć po prostu skopiować strumień
- MPEG-2 z DVD. Pewnie, dostaniesz AVI wielkości około 5GB, ale jeśli chcesz
- najlepszej jakości i nie przejmujesz się wielkością to jest to najlepsze
- wyjście.
-</para>
-
-<para>
- Tak na prawdę, powodem dla którego chcesz przekodować DVD na MPEG-4 jest to,
- że <emphasis role="bold">przejmujesz</emphasis> się wielkością pliku.
-</para>
-
-<para>
- Ciężko jest pokazać książkowy przepis na tworzenie ripu DVD bardzo wysokiej
- jakości. Trzeba wziąć pod uwagę kilka czynników, i powinieneś rozumieć
- szczegóły procesu, albo jest duża szansa że nie będziesz zadowolony z wyników.
- Poniżej zbadamy niektóre problemy i pokażemy przykład. Zakładamy że używasz
- <systemitem class="library">libavcodec</systemitem> do kodowania obrazu,
- chociaż ta sama teoria działą też przy innych kodekach.
-</para>
-
-<para>
- Jeśli to wydaje Ci się za dużo, to pewnie powinieneś użyć jednej z wielu
- nakładek dostępnych w
- <ulink url="http://mplayerhq.hu/homepage/design7/projects.html#mencoder_frontends">sekcji MEncodera</ulink>
- naszej strony z powiązanymi projektami.
- W ten sposób, powinno się udać otrzymać ripy wysokiej jakości bez zbyt
- myślenia za dużo, ponieważ te narzędzia są projektowane by podejmować za
- Ciebie mądre decyzje.
-</para>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-preparing-encode">
-<title>Przygotowanie do kodowania: Identyfikowanie materiału źródłowego
-i framerate</title>
-
-<para>
- Zanim w ogóle zaczniesz myśleć o kodowaniu filmu, musisz przejść kilka
- wstępnych kroków.
-</para>
-
-<para>
- Pierwszym i najważniejszym krokiem przed kodowaniem powinno być
- ustalenie jakim typem filmu się zajmujesz.
- Jeśli Twój film jest z DVD albo telewizji (zwykłej, kablowej czy
- satelitarnej), będzie w jednym z dwóch formatów: NTSC w Ameryce Północnej
- i Japonii, PAL w Europie itp.
- Trzeba sobie jednak zdawać sprawę z tego, że jest to tylko format do
- prezentacji w telewizji, i często <emphasis role="bold">nie</emphasis> jest
- oryginalnym formatem filmu.
- Doświadczenie pokazuje że filmy NTSC są trudniejsze do kodowania, ponieważ
- jest więcej elementów do zidentyfikowania w źródle.
- Żeby zrobić odpowienie kodowanie musisz znać oryginalny format filmu.
- Nieuwzględnienie tego skutkuje wieloma wadami wynikowego pliku, na przykład
- brzydkie artefakty przeplotu i powtórzone albo zagubione klatki.
- Poza tym że są brzydkie, artefakty są też szkodliwe dla kodowania:
- Dostaniesz gorszą jakość na jednostkę bitrate.
-</para>
-
-<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-fps">
-<title>Ustalanie źródłowego framerate</title>
-<para>
- Poniżej jest lista popularnych typów materiału źródłowego, gdzie można je
- najczęściej znaleźć i ich własności:
-</para>
-<itemizedlist>
-<listitem><para>
- <emphasis role="bold">Typowy film</emphasis>: Tworzony do wyświetlania przy
- 24fps.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Film PAL</emphasis>: Nagrywany kamerą video PAL
- z prędkością 50 pól na sekundę.
- Pole składa się tylko z parzystych albo nieparzystych linii klatki.
- Telewizja była projektowana by odświerzać je naprzemiennie, w charakterze
- taniej formy analogowej kompresji.
- Ludzkie oko podobno kompensuje ten efekt, ale jeśli zrozumiesz przeplot
- nauczysz się go widzieć też w telewizji i nigdy już nie będziesz z niej
- ZADOWOLONY.
- Dwa pola <emphasis role="bold">nie</emphasis> dają pełnej klatki, ponieważ
- są uchwycone co 1/50 sekundy, więc nie pasują do siebie, chyba że nie ma
- ruchu.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Film NTSC</emphasis>: Nagrany kamerą NTSC z prędkością
- 60000/1001 pól na sekundę, albo 60 pól na sekundę w erze przedkolorowej.
- Poza tym podobny do PAL.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Animacja</emphasis>: Zazwyczaj rysowana przy 24fps,
- ale zdarzają się też z mieszanym framerate.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Grafika komputerowa (CG)</emphasis>: Może być dowolny
- framerate, ale niektóre są częstsze niż inne; wartości 24 i 30 klatek na
- sekundę są typowe dla NTSC, a 25fps jest typowe dla PAL.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">Stary film</emphasis>: Rozmaite niższe framerate.
-</para></listitem>
-</itemizedlist>
-</sect3>
-
-
-<sect3 id="menc-feat-dvd-mpeg4-preparing-encode-material">
-<title>Identyfikowanie materiału źródłowego</title>
-<para>
- Filmy składające się z klatek nazywa się progresywnymi,
- podczas gdy te składające się z niezależnych pól nazywa się
- z przeplotem, albo filmem - chociaż ten drugi termin jest niejasny.
-</para>
-<para>
- Żeby nie było za łatwo, niektóre filmy są kombinacją kilku powyższych typów.
-</para>
-<para>
- Najważniejszą różnicą między tymi formatami, jest to że niektóre są oparte
- na klatkach a inne na polach.
- <emphasis role="bold">Zawsze</emphasis> gdy film jest przygotowywany do
- wyświetlania w telewizji jest przekształcany na format oparty na polach.
- Rozliczne metody którymi się tego dokonuje są wspólnie nazywane "telecine",
- a niesławne "3:2 pulldown" z NTSC jest jednym z jego rodzajów.
- Jeżeli oryginał nie był też oparty na polach (z tą samą prędkością),
- dostajesz film w innym formacie niż oryginał.
-</para>
-
-<itemizedlist>
-<title>Jest kilka popularnych typów pulldown:</title>
-<listitem><para>
- <emphasis role="bold">pulldown PAL 2:2</emphasis>: Najprzyjemniejszy z nich
- wszystkich.
- Każda klatka jest pokazywana przez czas dwóch pól, poprzez wydobycie
- parzystych i nieparzystych linii i pokazywanie ich na przemian.
- Jeśli oryginalny materiał miał 24fps, ten proces przyspiesza film o 4%.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">pulldown PAL 2:2:2:2:2:2:2:2:2:2:2:3</emphasis>:
- Każda 12ta klatka jest pokazywana przez czas trzech pól zamiast tylko dwóch.
- Dzięki temu nie ma przyspieszenia o 4%, ale proces jest o wiele trudniejszy
- do odtworzenia.
- Zazwyczaj występuje w produkcjach muzycznych, gdzie zmiana prędkości o 4%
- poważnie by uszkodziła muzykę.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">NTSC 3:2 telecine</emphasis>: Klatki są pokazywane na
- przemian przez czas 3ch albo 2ch pól.
- To daje częstotliwość pól 2.5 raza większą niż oryginalna częstotliwość
- klatek. Rezultat jest też lekko zwolniony z 60 pól na sekundę do 60000/1001
- pól na sekundę by utrzymać częstotliwość pól w NTSC.
-</para></listitem>
-<listitem><para>
- <emphasis role="bold">NTSC 2:2 pulldown</emphasis>: Używane do pokazywania
- materiałów 30fps na NTSC.
- Przyjemne, tak jak pulldown 2:2 PAL.
-</para></listitem>
-</itemizedlist>
-
-<para>
- Są też metody konwersji między filmami PAL i NTSC, ale ten temat
- wykracza poza zakres tego podręcznika.
- Jeśli natkniesz się na taki film i chcesz go zakodować, to największe
- szanse masz robiąc kopię w oryginalnym formacie.
- Konwersja między tymi dwoma formatami jest wysoce destrukcyjna i nie może
- zostać ładnie odwrócona, więc kodowanie będzie o wiele gorszej jakości jeśli
- jest robione z przekonwertowanego źródła.
-</para>
-
-<para>
- Gdy film jest zapisywany na DVD, kolejne pary pól są zapisywane jako klatka,
- pomimo tego że nie są przezaczone do wyświetlania razem.
- Standard MPEG-2 używany na DVD i w cyfrowej TV pozwala na zakodowanie
- oryginalnej progresywnej klatki i na przechowanie w nagłówku klatki ilości
- pól przez które ta klatka powinna być pokazana.
- Filmy zrobione przy użyciu tej metody są często określane mianem "miękkiego
- telecine" (soft-telecine), ponieważ proces ten tylko informuje odtwarzacz że
- ma on zastosować pulldown, a nie stosuje go samemu.
- Tak jest o wiele lepiej, ponieważ może to zostać łatwo odwrócone (a tak na
- prawdę zignorowane) przez koder i ponieważ zachowuje możliwie najwyższą
- jakość.
- Niestety, wielu producentów DVD i stacji nadawczych nie stosuje prawidłowych
- technik kodowania ale w zamian produkuje filmy przy użyciu "twardego
- telecine" (hard-telecine), gdzie pola są faktycznie powtórzone
- w zakodowanym MPEG-2.
-</para>
-
-<para>
- Procedury radzenia sobie z takimi przypadkami będą omówione
- <link linkend="menc-feat-telecine">w dalszej części przewodnika</link>.
- Teraz podamy tylko kilka wskazówek jak identyfikować z jakim typem materiału
- mamy do czynienia.
-</para>
-
-<itemizedlist>
-<title>Regiony NTSC:</title>
-<listitem><para>
- Jeśli <application>MPlayer</application> wyświetla w trakcie oglądania filmu
- że framerate zostało zmienione na 24000/1001 i nigdy nie powraca, to jest
- to prawie na pewno progresywny materiał na którym zastosowano "miękkie
- telecine".
-</para></listitem>
-<listitem><para>
- Jeśli <application>MPlayer</application> pokazuje że framerate zmienia się
- między 24000/1001 i 30000/1001 i czasami widzisz "grzebienie" to jest kilka
- możliwości.
- <!-- Torinthiel: grzebienie mi najlepiej pasują, ale może jest oficjalne tłumaczenie -->
- Kawałki 24000/1001fps są prawie na pewno progresywne, poddane "miękkiemu
- telecine", ale fragmenty 30000/1001 fps mogą albo być 24000/1001 poddanym
- "twardemu telecine" albo filmem NTCS o 60000/1001 polach na sekundę.
- Używaj tych samych metod co w następnych dwóch przypadkach żeby je odróżnić.
-</para></listitem>
-<listitem><para>
- Jeśli <application>MPlayer</application> nigdy nie pokazuje informacji
- o zmianie framerate i każda klatka z ruchem wygląda jak grzebień, to masz
- film NTSC z 60000/1001 polami na sekundę.
-</para></listitem>
-<listitem><para>
- Jeśli <application>MPlayer</application> nigdy nie pokazuje informacji
- o zmianie framerate i dwie klatki z każdych pięciu mają grzebienie, to film
- jest 24000/1001 fps poddanym "twardemu telecine".
-</para></listitem>
-</itemizedlist>
-
-<itemizedlist>
-<title>Regiony PAL:</title>
-<listitem><para>
- Jeśli nie widzisz grzebieni, to jest to 2:2 pulldown.
-</para></listitem>
-<listitem><para>
- Jeśli na przemian przez pół sekundy widzisz grzebienie a potem nie, to masz
- 2:2:2:2:2:2:2:2:2:2:2:3 pulldown.
-</para></listitem>
-<listitem><para>
- Jeśli zawsze widzisz grzebienie w trakcie ruchu, to film jest filmem PAL
- wyświetlanym z 50 polami na sekundę.
- <!-- Torinthiel: wyświetlanym czy nagranym? -->
-</para></listitem>
-</itemizedlist>
-
-<note><title>Podpowiedź:</title>
-<para>
- <application>MPlayer</application> może zwolnić odtwarzanie filmu opcją
- -speed albo odtwarzać klatka po klatce.
- Spróbuj użyć opcji <option>-speed</option> 0.2 żeby oglądać film bardzo
- wolno, albo naciskaj wielokrotnie klawisz "<keycap>.</keycap>" żeby
- wyświetlać klatka po klatce.
- Może to pomóc zidentyfikować wzorzec jeśli
- nie możesz go dostrzec przy pełnej prędkości.
-</para>
-</note>
-</sect3>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-2pass">
-<title>Stały kwantyzator a tryb wieloprzebiegowy</title>
-
-<para>
- Jest możliwe zakodowanie filmu z szeroką gamą jakości.
- Z nowoczesnymi koderami i odrobiną kompresji przed kodekiem (zmniejszenie
- rozdzielczości i usuwanie szumu), możliwe jest osiągnięcie bardzo dobrej
- jakości przy 700 MB, dla 90-110 minutowego filmu kinowego.
- Dodatkowo tylko najdłuższe filmy nie dają się zakodować na 1400 MB z prawie
- doskonałą jakością.
-</para>
-
-<para>
- Są trzy podejścia do kodowania video: stały bitrate (CBR),
- stały kwantyzator i tryb wieloprzebiegowy (ABR, uśrednione bitrate).
-</para>
-
-<para>
- Złożoność klatek filmu, a zatem i ilość bitów potrzebna na ich zakodowanie,
- może się bardzo mocno zmieniać w zależności od sceny.
- Nowoczesne kodery potrafią się dostosowywać do tych zmian i zmieniać
- bitrate.
- Jednak w prostych trybach, takich jak CBR, kodery nie znają zapotrzebowania
- na bitrate w przyszłych scenach, więc nie mogą na długo przekraczać
- wymaganego bitrate.
- Bardziej zaawansowane tryby, takie jak kodowanie wieloprzebiegowe, potrafią
- wziąć pod uwagę statystyki z poprzednich przebiegów, co naprawia ten problem.
-</para>
-
-<note><title>Uwaga:</title>
-<para>
- Większość kodeków obsługujących kodowanie ABR obsługuje tylko kodowanie
- dwuprzebiegowe, podczas gdy niektóre inne, na przykład
- <systemitem class="library">x264</systemitem> albo
- <systemitem class="library">Xvid</systemitem> potrafią wykonywać wiele
- przebiegów, z lekką poprawą jakości po każdym przebiegu. Jednak ta poprawa
- nie jest zauważalna ani mierzalna po około 4tym przebiegu.
- Dlatego też, w tej części, tryb dwuprzebiegowy i wieloprzebiegowy będą
- używane zamiennie.
-</para>
-</note>
-
-<para>
- W każdym z tych trybów, kodek video (na przykład
- <systemitem class="library">libavcodec</systemitem>)
- dzieli klatkę obrazu na makrobloki 16x16 pikseli i stosuje do każdego z nich
- kwantyzator. Im niższy kwantyzator, tym lepsza jakość i tym wyższe bitrate.
- Metody jakiej koder używa do ustalenia kwantyzatora są różne i można nimi
- sterować. (Jest to straszliwe uproszczenie, ale wystarcza do zrozumienia
- podstaw.)
-</para>
-
-<para>
- Kiedy podajesz stałe bitrate, kodek koduje usuwając tyle szczegółów ile musi
- i tak mało jak to tylko możliwe żeby pozostać poniżej podanego bitrate.
- Jeśli na prawdę nie obchodzi cię wielkość pliku, możesz użyć CBR i podać
- nieskończone bitrate (W praktyce oznacza to bitrate na tyle wysokie że nie
- stanowi bariery, na przykład 10000Kbit.) Bez żadnego ograniczenia na bitrate
- kodek użyje najniższego możliwego kwantyzatora do każdej klatki (ustalonego
- dla <systemitem class="library">libavcodec</systemitem> opcją
- <option>vqmin</option>, domyślnie 2).
- Gdy tylko podasz bitrate na tyle niskie że kodek musi używać wyższego
- kwantyzatora, to prawie na pewno niszczysz film.
- Żeby tego uniknąć, powinieneś pewnie zmniejszyć rozdzielczość filmu, metodą
- opisaną dalej.
- Ogólnie, jeśli zależy Ci na jakości, powinieneś unikać CBR.
-</para>
-
-<para>
- Przy stałym kwantyzatorze, kodek używa na każdym makrobloku tego samego
- kwantyzatora, podanego opcją <option>vqscale</option>
- (w przypadku <systemitem class="library">libavcodec</systemitem>).
- Jeśli chcesz możliwie najlepszy efekt, znów ignorując bitrate, możesz użyć
- <option>vqscale=2</option>. Da to ten sam bitrate i PSNR (peak
- signal-to-noise ratio, szczytowa proporcja sygnału do szumu) co CBR
- z <option>vbitrate</option>=nieskończoność i domyślnym
- <option>vqmin</option>.
-</para>
-
-<para>
- Problemem przy stałym kwantyzatorze jest to, że używa podanego kwantyzatora
- niezależnie od tego czy makroblok tego wymaga czy nie. To znaczy że można by
- było zastosować do makrobloku wyższy kwantyzator bez utraty postrzegalnej
- jakości. Dlaczego marnować bity na niepotrzebnie niski kwantyzator?
- Mikroprocesor ma tyle cykli ile jest czasu, ale jest tylko ograniczona ilość
- bitów na twardym dysku.
-</para>
-
-<para>
- Przy kodowaniu dwuprzebiegowym, pierwszy przebieg potraktuje film jak przu
- ustawieniu CBR, ale zachowa informacje o własnościach każdej klatki. Te dane
- są później używane przy drugim przebiegu do podejmowania słusznych decyzji
- o używanym kwantyzatorze. Przy szybkich scenach albo niewielu szczegółach
- pewnie użyje większego kwantyzatora, podczas gdy dla powolnych,
- szczegółowych scen będzie niższy kwantyzator.
-</para>
-
-<para>
- Jeśli używasz <option>vqscale=2</option> to marnujesz bity. Jeśli używasz
- <option>vqscale=3</option> to nie dostajesz najlepszej możliwej jakości.
- Załóżmy że zakodowałeś swoje DVD przy <option>vqscale=3</option>
- i dostałeś bitrate 1800Kbit. Jeśli zrobisz dwa przebiegi
- z <option>vbitrate=1800</option> ostateczny wynik będzie miał
- <emphasis role="bold">wyższą jakość</emphasis> przy
- <emphasis role="bold">tym samym bitrate</emphasis>.
-</para>
-
-<para>
- Ponieważ jesteś już przekonany że prawidłowym wyborem są dwa przebiegi,
- prawdziwym pytaniem jest jakiego bitrate użyć. Nie ma jednej odpowiedzi.
- Idealnie chcesz wybrać bitrate będący najlepszym kompromisem między jakością
- a wielkością pliku. To się zmienia w zależności od filmu.
-</para>
-
-<para>
- Jeśli wielkość nie ma znaczenia, dobrym punktem wyjściowym do bardzo
- wysokiej jakości jest około 2000Kbit plus minus 200Kbit.
- Jeśli jest dużo akcji albo szczegółów, albo po prostu masz bardzo wrażliwe
- oko, możesz się zdecydować na 2400 albo 2600.
- Przy niektórych DVD możesz nie zauważyć różnicy przy 1400Kbit. Dobrym
- pomysłem jest poeksperymentowanie z kilkoma scenami i różnymi wartościami
- bitrate żeby nabrać wyczucia.
-</para>
-
-<para>
- Jeśli chcesz konkretnej wielkości, musisz jakoś obliczyć bitrare.
- Ale zanim to zrobisz, musisz wiedzieć ile miejsca potrzebujesz na dźwięk,
- więc powinieneś <link linkend="menc-feat-dvd-mpeg4-audio">ściągnąć go</link>
- najpierw.
- Możesz wyliczyć bitrate z następującego równania:
- <systemitem>bitrate = (wielkość_docelowa_w_MBajtach - wielkość_dźwięku_w_MBajtach)
- * 1024 * 1024 / długość_w_sekundach * 8 / 1000</systemitem>
- Na przykład by wcisnąć dwugodzinny film na płytkę 702MB, z 60MB ścieżki
- dźwiękowej, bitrate video musi być:
- <systemitem>(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000
- = 740kbps</systemitem>
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-constraints">
-<title>Ograniczenia efektywnego kodowania</title>
-
-<para>
-Ze względu na naturę kodowania typu MPEG istnieją różne ograniczenia których
-warto się trzymać żeby osiągnąć najlepszą jakość.
-MPEG dzieli obraz na kwadraty 16x16 pikseli nazywane makroblokami,
-każdy z nich składa się z 4 bloków 8x8 informacji o jasności (luminancja, luma)
-i dwóch 8x8 z połową rozdzielczości (jeden na składową czerwono-morską, drugi
-na niebiesko-żółtą).
-Nawet jeśli wysokość i szerokość filmu nie są wielokrotnościami 16,
-koder użyje tyle makrobloków żeby przykryć cały obszar obrazu,
-dodatkowa przestrzeń zostanie zmarnowana.
-Zatem w interesie zwiększenai jakości przy utrzymaniu wielkości pliku kiepskim
-pomysłem jest używanie wymiarów które nie są wielokrotnością 16.
-</para>
-
-<para>
-Większość DVD ma też jakieś czarne ramki na brzegach.
-Zostawienie ich tam <emphasis role="bold">mocno</emphasis> zaszkodzi jakości
-na kilka sposobów.
-</para>
-
-<orderedlist>
-<listitem>
- <para>
- Kompresje typu MPEG są zależne od transformat przestrzeni częstotliwości,
- a dokładniej Dyskretnej Transformaty Cosinusowej (DCT), która jest podobna do
- transformaty Fouriera.
- Ten sposób kodowania jest efektywny przy wzorach i gładkich przejściach, ale
- kiepsko sobie radzi z ostrymi krawędziami.
- Żeby je zakoować, musi używać o wiele większej liczby bitów, albo wystąpią
- artefakty znane jako pierścienie.
- </para>
-
- <para>
- Transformacja częstotliwości (DCT) jest stosowana osobno do każdego
- makrobloku (tak na prawdę do każdego bloku), więc ten problem istnieje tylko
- gdy ostra krawędź jest wewnątrz bloku.
- Jeśli czarna ramka zaczyna się dokładnie na krawędzi 16-pikselowego bloku,
- nie stwarza problemów.
- Jednakże, rzadko kiedy takie ramki są ładnie wyrównane, więc zazwyczaj będzie
- trzeba przyciąć obraz żeby tego uniknąć.
- </para>
-</listitem>
-</orderedlist>
-
-<para>
-Poza transformatami przestrzeni częstotliwości, kompresje typu MPEG używają
-wektorów ruchu, by reprezentować zmiany między sąsiednimi klatkami.
-Oczywiście wektory ruchu są mniej efektywne w stosunku do nowej treści
-przychodzącej z brzegów obrazka, ponieważ nie było jej na poprzedniej klatce.
-Jeśli obraz rozciąga się do krawędzi zakodowanego regionu,
-wektory ruchu radzą sobie z treścią wychodzącą poza krawędzie.
-Jednak jeśli są ramki, mogą być kłopoty:
-</para>
-
-<orderedlist continuation="continues">
-<listitem>
- <para>
- Dla każdego makrobloku, kompresja typu MPEG przechowuje wektor opisujący
- która część poprzedniej klatki powinna być skopiowana do tego makrobloku jako
- podstawa do przewidzenia następnej klatki.
- Zakodowane wtedy muszą być tylko różnice.
- Jeśli makroblok zawiera fragment ramki, to wektory ruchu z pozostałych cześci
- obrazu zamażą obramowanie.
- Oznacza to że dużo bitów będzie zużytych albo na jej powtórne zaczernienie
- albo (co bardziej prawdopodobne), wektor ruchu w ogóle nie będzie użyty
- i wszystkie zmiany w tym makrobloku będzie trzeba zakodować bezpośrednio.
- W obu przypadkach, bardzo cierpi na tym efektywność kodowania.
- </para>
-
- <para>
- Powtórnie, ten problem występuje tylko jeśli ramki nie są na krawędziach
- 16-pikselowych bloków.
- </para>
-</listitem>
-
-<listitem>
- <para>
- W końcu, przypuśćmy że mamy makroblok wewnątrz obrazu i obiekt dostaje się do
- niego z okolic krawędzi.
- Kodowanie typu MPEG nie potrafi powiedzieć "skopiuj część która jeest
- wewnątrz obraka, ale nie czarne obramowanie." Dlatego obramowanie też
- zostanie skopiowane i trzeba będzie zużyć sporo bitów żeby zakodować fragment
- obrazu który powinien tam być.
- </para>
-
- <para>
- Jeśli obraz sięga do krawędzi zakodowanego obszaru, MPEG ma specjalne
- optymalizacje do wielokrotnego kopiowania ostatniego rzędu pikseli jeśli
- wektor ruchu przychodzi z poza zakodoanego obszaru.
- Staje się to bezużyteczne gry obraz ma czarne obramowanie.
- W odróżnieniu od problemów 1 i 2 tutaj nic nie pomoże ustawienie obramowania
- w odpowiednim miejscu.
- </para>
-</listitem>
-
-<listitem><para>
- Mimo tego, że obramowanie jest całkowicie czarne i nigdy się nie zmienia,
- zawsze jest pewien narzut związany z większą ilością makrobloków.
-</para></listitem>
-</orderedlist>
-
-<para>
-Ze wszystkich tych powodów zalecane jest całkowite wycięcie czarnych obramowań.
-Dodatkowo, jeśli przy krawędziach jest obszar zakłóceń/zniekształceń, obcięcie
-go również poprawi efektywność kodowania.
-Puryści, którzy chcą możliwie dokładnie zachować oryginał mogą się sprzeciwiać,
-ale jeśli nie planujesz używać stałego kwantyzatora to jakość uzyskana dzięki
-skadrowaniu znacząco przewyższy utratę informacji przy brzegach.
-</para>
-</sect2>
-
-<!-- ********** -->
-
-<sect2 id="menc-feat-dvd-mpeg4-crop">
-<title>Kadrowanie i skalowanie</title>
-
-<para>
-Przypomnijmy z poprzedniej części że ostateczna wielkość (wysokość i szerokość)
-obrazu do kodowania powinna być wielokrotnością 16.
-Można to osiągnąć kadrowaniem, skalowaniem albo kombinacją obydwu.
-</para>
-
-<para>
-Przy kadrowaniu, jest kilka reguł których musimy przestrzegać by uniknąć
-uszkodzenia filmu.
-Zwykły format YUV, 4:2:0, przechowuje wartości koloru podpróbkowane, czyli
-kolor jest próbkowany o połowę rzadziej w każdym kierunku niż jasność.
-Spójrzmy na diagram, na którym L oznacza punkty próbkowania jasności (luma)
-a C koloru (chroma).
-</para>
-
-<informaltable>
-<?dbhtml table-width="40%" ?>
-<?dbfo table-width="40%" ?>
-<tgroup cols="8" align="center">
-<colspec colnum="1" colname="col1"/>
-<colspec colnum="2" colname="col2"/>
-<colspec colnum="3" colname="col3"/>
-<colspec colnum="4" colname="col4"/>
-<colspec colnum="5" colname="col5"/>
-<colspec colnum="6" colname="col6"/>
-<colspec colnum="7" colname="col7"/>
-<colspec colnum="8" colname="col8"/>
-<spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
-<spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
-<spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
-<spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
- <tbody>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- </tbody>
-</tgroup>
-</informaltable>
-
-<para>
-Jak widać, wiersze i kolumny obrazu w sposób naturalny łączą się w pary.
-Dlatego przesunięcia i wymiary kadrowania <emphasis>muszą</emphasis> być
-liczbami parzystymi.
-Jeśli nie są, barwa nie będzie już dobrze dopasowana do jasności.
-Teoretycznie możliwe jest kadrowanie z nieparzystym przesunięciem, ale wymaga
-to przepróbkowania kolorów, co jest potencjalnie stratną operacją nie
-obsługiwaną przez filtr kadrowania.
-</para>
-
-<para>
-Dalej, film z przeplotem jest kodowany jak poniżej:
-</para>
-
-<informaltable>
-<?dbhtml table-width="80%" ?>
-<?dbfo table-width="80%" ?>
-<tgroup cols="16" align="center">
-<colspec colnum="1" colname="col1"/>
-<colspec colnum="2" colname="col2"/>
-<colspec colnum="3" colname="col3"/>
-<colspec colnum="4" colname="col4"/>
-<colspec colnum="5" colname="col5"/>
-<colspec colnum="6" colname="col6"/>
-<colspec colnum="7" colname="col7"/>
-<colspec colnum="8" colname="col8"/>
-<colspec colnum="9" colname="col9"/>
-<colspec colnum="10" colname="col10"/>
-<colspec colnum="11" colname="col11"/>
-<colspec colnum="12" colname="col12"/>
-<colspec colnum="13" colname="col13"/>
-<colspec colnum="14" colname="col14"/>
-<colspec colnum="15" colname="col15"/>
-<colspec colnum="16" colname="col16"/>
-<spanspec spanname="spa1-2" namest="col1" nameend="col2"/>
-<spanspec spanname="spa3-4" namest="col3" nameend="col4"/>
-<spanspec spanname="spa5-6" namest="col5" nameend="col6"/>
-<spanspec spanname="spa7-8" namest="col7" nameend="col8"/>
-<spanspec spanname="spa9-10" namest="col9" nameend="col10"/>
-<spanspec spanname="spa11-12" namest="col11" nameend="col12"/>
-<spanspec spanname="spa13-14" namest="col13" nameend="col14"/>
-<spanspec spanname="spa15-16" namest="col15" nameend="col16"/>
- <tbody>
- <row>
- <entry namest="col1" nameend="col8">Górne pole</entry>
- <entry namest="col9" nameend="col16">Dolne pole</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="spa9-10">C</entry>
- <entry spanname="spa11-12">C</entry>
- <entry spanname="spa13-14">C</entry>
- <entry spanname="spa15-16">C</entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry spanname="spa1-2">C</entry>
- <entry spanname="spa3-4">C</entry>
- <entry spanname="spa5-6">C</entry>
- <entry spanname="spa7-8">C</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- </row>
- <row>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry>L</entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- </row>
- <row>
- <entry></entry>