Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » ulan 00:31
 » RaPToRR 00:22
 » metacom 00:21
 » zibi13 00:10
 » esteban 23:52
 » alkatraz 23:48
 » Menah 23:36
 » luckyluc 23:27
 » Wolf 23:25
 » selves 23:24
 » wrrr 23:24
 » fiskomp 23:14
 » Visar 23:10
 » Magnus 23:07
 » luzak2363 23:05
 » ToM78 22:50
 » Kool@ 22:48
 » doxent 22:44
 » tian 22:41
 » Logan 22:38

 Dzisiaj przeczytano
 36866 postów,
 wczoraj 25433

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2025
A R C H I W A L N A   W I A D O M O Ś Ć
    

[Media player classic] Opcje renderingu dla chętnych (przydługie) , JOTEM 12/09/05 12:16
JE Jacaw się kiedyś pytał, a że mam chwilę czasu, to walnę uproszczony wykładzik.

Naipierw o sposobie wyświetlania filmów. Zasadniczo są cztery metody (chronologicznie):
- GUI (Graficzny interface użytkownika) - w pełni ustandaryzowany ale przeraźliwie wolny. Istna prehistoria.
- Video for Windows (VfW) - z win 95, ale ciągle działa. Znaaacznie szybsze, wyspecjalizowane funkcje szybkiego wyświetlania klatek, częściowa obsługa overlaya (o nim później). Obsługa kodeków. W win 98 najszybsze, w 2000 i XP nieco wolniejsze (Microsoft to już "olewa").
- Direct Draw z bibliotek DirectX - tylko podstawowe funkcje, ale za to całkowita kontrola nad tym co się dzieje i spore możliwości. Pracochłonne dla programisty i łatwo o błędy.
- Direct Show - najnowszy mechanizm, oparty na tzw filtrach, częściowo kompatybilny (przez tzw wrapery) z VfW. Obsługuje kodeki poprzez filtry. "Dłuższa" droga danych niz w VfW powoduje, że w 98 nieco mu ustępuje szybkościa.

Ponieważ VfW jest przestarzały i nie rozwijany, Direst Draw jest nie do życia dla programistów zostaje Direct Show.
Tu tworzone są z pojedynczych filtrów tzw. grafy. Ostatnimi elementami grafów (hmmm, odtwarzających) są renderery.
Są one odpowiedzialne za prezentację danych użytkownikowi.
W gałęzi video będzie to więc renderer video. I tu jest kilka opcji (czasem z podopcjami).
Zanim o tym napiszę to jeszcze słów kilka o overlayu.
Dane na ekranie wyswietlane są przez kartę graficzną. Zwykle rozdzielczość filmu jest inna niż ekranu. Czasem mozna wymusić (zwykle obnizyć) odpowiednią rozdzielczość na ekranie (stara - procesoro-oszczędna metoda), zwykle trzeba film przeskalowaćdo ekranu. To makabryczna robota dla procesora (jeśli ma być porządnie zrobiona). Aby to wyeliminować, w pamięci karty grafiki został więc stworzony SPRZĘTOWO obsługiwany bufor, do którego procesor ładuje film w jego natywnej rozdzielczości, a dane z którego karta sama przeskalowuje (jak trzeba) i wyswietla na ekranie. Nie dość tego, bufor ten pracować może w trybie kolorowym o mniejszej liczbie bitów niż ekran (np. 16 (choćby YUY2), 12 itp.) - co przyśpiesza transfery danych, a karta przekonwertuje to do RGB sama nie absorbując procesora. Prym wiodła tu do pewnego czasu firma S3, której karty miały DWA sprzętowe overlay'e !.

Wracając do rendererów.
UWAGA - chwilowo jeszcze nic o Media Playerze Classic ! Wyróżnić można:
- stary system default. Zadziała zawsze, zwykle nie optymalnie, ale czasem nawet lepiej niż zadowalająco. Czasem wykorzysta overlaya, ale nie w pełni. Można na nim i dokładać napisy i ściągać klatki, ALE (!!) wymaga to albo dodatkowych filtrów (te popularne pakiety kodeków typu VobSuba), co spowalnia proces ( i dla mnie jest idiotyzmem), albo filtrów dekompresujących wsadzających napisy do filmu (np ffdShow). Podkreślam, że overlay może, lecz nie musi być użyty.
- overlay mixer. To specjalny renderer wykorzystujący ZAWSZE overlaya. Jeśli karta ma z nim problemy - renderer nie dołaczy się do grafu i mamy błąd (i nic się nie wyswietli). Sciąganie klatek nie jest praktycznie w ogóle możliwe, napisy można narzucać na dwa sposoby - filtr dekompresujący, wsadzający napisy do filmu (znów ffdshow) lub wykorzystanie możliwości overlay mixera (szybkie i proste, ale UWAGA - wbrew nazwie nie dorzuca napisów na overlay (!!), a wyświetla je na ekranie w trybie GUI jak kilka prymitywnych odtwarzaczy divx - co sprawia potem problemy z TV).
- VideoMixingRenderer7 (VMR7) - pojawił się z WinXP. Dużo większe możliwości, zwykle wykorzystuje overlay. Ma zaszyte w sobie możliwości miksowania wielu strumieni i prostego narzucania obrazów statycznych (np. jako napisów). Dodatkowo pozwala na wyciąganie gotowej klatki z filmu.
- - VideoMixingRenderer9 (VMR9) - pojawił się z DX9. Potrafi to samo co VMR7, ale NIE WYKORZYSTUJE overlaya (problemy z wyjściem na TV w trybach teatralnych). Wewnętrznie jest całkowitą innowacją. Jako pierwszy działa na teksturach w trybie 3D. DODATKOWO Pracując w tzw. trybie renderless pozwala na podmienianie pewnych elementów swojej budowy (np tzw. allocatora-prezentera) elementami z programu odtwarzającego film (!!), co może dać praktycznie nieograniczone możliwości:
- rendering na powierzchnie pofałdowane, walcowe, obrócone o dowolny kąt, z połyskiem, ruchome itp.
- zaawansowany antyaliasing, możliwość oprogramowania shaderów itp.
Powyższe funkcje zwiazane są z DODATKOWYM wyposażeniem PLAYERA, nie samego filtru. Nie można ich zaszyć w prostym dodatkowym filtrze, jak również bardzo trudno stworzyć filtr dekompresora wykorzystujacy sprzętowe mozliwosci karty graficznej (sprzętowe wspomaganie dekompresji mpeg4 itp).
architektura Direct Show do tych rzeczy po prostu nie jest stworzona i trzeba kombinować.
Jak to się wszystko ma do napisów, TV i Media Playera Classic i jego opcji w następnej części.
Pozdr.

Poryjemy..zrobaczymy

  1. wow , dFour 12/09/05 12:32
    dzieki, przyda sie

  2. Ciekawe :) , DJopek 12/09/05 12:43
    Czekam na dalsze części :)

    Dalej tworzysz ten programik do odtwarzania? http://jotem.magma-net.pl/ :-)

    1. Napisałem go do postaci, jaka mnie usatysfakcjonowała, , JOTEM 12/09/05 13:52
      dopasowałem do pracy na mojej Epii, dołożyłem sterowanie częstotliwością procesora tak, by nigdy klatki nie ginęły i zabrałem się za multimedialny komputer pod telewizor.
      Odzewu nie było, więc oceniłem, że zapotrzebowania nie ma :-(
      Może po wakacjach ruszę (poprawię trochę szatę wzorniczą (dopracowałem cienie pod oknami ;-) i zadbam o porządną obsługę dźwięku).

      Poryjemy..zrobaczymy

      1. No no :) , DJopek 12/09/05 14:21
        Ja się będę bacznie przyglądał temu programikowi - napewno musisz szatę graficzną zmienić bo bije po oczach ;-)

      2. heh , Ranx 13/09/05 07:49
        programik fajny i calkiem mi sie podoba:)
        szkoda ze potrafi sie pogubic przy zmianie formatu wyswietlanego filmu i jeszcze nie wiem jak zmusic go do wyswietlania filmu "od lewej do prawej" monitora:)
        nie jestem fachofcem od programowania ale jakby byla potrzebna jakas pomoc....:)

        o roztramtajdany charkopryszczańcu...

  3. Część 2 - napisy , JOTEM 12/09/05 15:05
    To jest regularnie wałkowany temat, więc warto go trochę omówić.
    Napisy nakładać można wieloma technikami. Różnią się jakością, zajętością procesora i obecnością na TV.
    I tak mamy:
    1. umieszczanie na klatkach bezpośrednio przez filtr dekompresujacy obraz video (np. ffdshow). Zalety - może być dobrej jakości (anty aliasing napisów, półprzezroczystość itp), ZAWSZE będzie widoczny na TV (jeśli tylko sam film widać ;-).
    Wady - nieco większe obciażenie procesora, duże trudności z umieszczeniem ich na czarnym pasku pod filmem (trzeba poszerzyćfilm o czarne paski, a to dodatkowo pożera proca), przywiazani jesteśmy do filtru dekompresora - jak nam sposób wyświetlania napisów nie odpowiada - nic nie zmienimy bez zmiany wewnątrz filtru, a tych lepiej nie ruszać jak działają.

    2. umieszczanie na zdekompresowanych (!) klatkach przez dodatkowe filtry włączajace się po chamsku i często bez sensu do grafu direct show między filtr dekompresujący a renderer (vobsub itp). Zalety - dobra jakość (jak powyżej), widoczny na TV (z uwagą jak powyżej) . Wady - znacznie większe obciążenie procesora i zwykle ciągle i często zbędnie ładujące się dodatkowe filtry, duże trudności z umieszczeniem ich na czarnym pasku pod filmem (trzeba poszerzyć film o czarne paski, a to dodatkowo pożera proca). Raczej nie polecam.

    3. wypisywanie ręcznie w trybie GUI na oknie z filmem (starsze wersje znanych odtwarzaczy divx). Zaleta - no są i tyle. Wady - zwykle nieładne, żle się skalują (często niezgodnie z wielkościa filmu), czasem brak na TV. Absolutnie nie polecam.

    4. nakładane przez overlay mixer'a. Zalety - najszybszy sposób, wady - czasem brak na TV, jakość jak w GUI. Skalują się dobrze.
    5. nakładane w VMR7 i 9 korzystając z ich specjalnie przeznaczonej do tego funkcji. Zalety - szybko, prosty sposób, dobrze się skalują, wygląd OK, zawsze obecne na TV (jak oczywiście widać na nim film). Wady - trudno o dobry antyaliasing napisów. Preferowany przeze mnie.

    6. jako dodatkowy strumień w VMR7 lub 9. Pomysł dobry, ale niedoróbki w VMRach powodują, że poprawne wykonanie praktycznie niemożliwe.

    7. ręcznie renderowane na dodatkowe tekstury i ręcznie dokładane do filmu wykorzystujac dodatkowe możliwości VMRów w trybie renderless. Zalety - hmmm, potencjalnie najwyższa jakość. Wady - raczej dotyczy tylko VMR9, a więc problemy z trybem teatralnym na TV. Co prawda w Media Player Classic twierdzą, że uruchomili w tym trybie overlay, ale dla mnie to raczej bajka (i tak jak myślałem nie działa - sprawdzałem).

    Możliwości jest wiele i każdy może sobie coś wybrać. W MP Classic wybrali ostatni (istnieje tam tylko ten). Wprowadza to pewne ograniczenia, ale dale chyba najlepszą jakość najmniejszym kosztem mocy procesora.

    Napisy i TV.
    Na TV obraz właściwie wysyłać można na dwa sposoby (więcej w następnej części): klonujac i w trybie teatralnym.
    Problemy z napisami są inne dla obu typów więc omówię je oddzielnie. Najpierw klonowanie. Zakładając, że obraz na TV się pojawił, to napisy właściwie niezależnie od sposobu ich generowania też będą widoczne. Sporadyczne (naprawdę sporadyczne) problemy mogą dotyczyć jedynie narzucania przez GUI i overlay mixerem (metody 3 i 4).
    W trybie teatralnym jest gorzej. Jak już uda nam się uzyskać obraz na TV, to napisy będą tylko wtedy, gdy będą pojawiać się na overlayu !!! (wytłumaczone w dalszych częściach) Można więc użyć metody 1,2,5,6,7. Metody 3 i 4 (najprostsze i najszybsze) wykluczone.

    To tyle o napisach.

    Poryjemy..zrobaczymy

  4. Część 3 - TV , JOTEM 12/09/05 16:02
    Użyty renderer ma ścisły zwiazek z obecnościa obrazu na TV.
    Dlaczego? bo renderer ma związek z uzyciem overlay'a a overlay z TV.
    Podsumowujac, stary renderer, overlay mixer i VMR 7 korzystają z overlaya. Ten pierwszy i ostatni zazwyczaj, środkowy - zawsze. Czy to dobrze? tak, bo zapewnia najmniejsze użycie procesora i w miarę gładko przeskalowany
    do ekranu obraz filmowy. Patrząc od strony TV to i dobrze i źle.
    VMR 9 NIE UŻYWA overlaya, więc tu sprawa też jasna.

    Wracajac do trybów wyświetlania - klonowania i teatralnego.

    W klonowaniu na TV wyświetlane jest zwykle to samo, co na monitorze ale nie do końca. Tu overlay jest przeszkodą, bo zwykle jest obsługiwany tylko na JEDNYM (!!!) urzadzeniu wyświetlającym. W zależności od naszego wyboru (ustawienie primary display) overlay wyświetli sięalbo na monitorze, albo na TV, na tym drugim będzie kolor tła overlayowego (zwykle obecnie czarny, kiedyś różowy). Czasem w sterownikach karty grafiki jest jeszcze trzecia opcja podobna do klonowania - zwykle pozwala ona powielić pixele jednego ekranu na drugi, ale czasem tylko przy tej samej rozdzielczości (a czasem tej opcji po prostu nie ma i obrazu video na obu na raz się nie uzyska) - wtedy obraz będzie na obu ekranach. Z tymi dwoma podtypami trzeba ostroznie, bo nie ma róży bez kolców i czasem są efekty uboczne video na obu.

    W trybie teatralnym jest jasna sprawa - na TV idzie bezpośrednio obraz z overlaya! Jak overlaya nie ma - to nic nie idzie, albo jest dublowany cały ekran. Żeby uzyskać na TV obraz musi być użyty overlay. Jak korzystamy ze starego renderera może się zdarzyć (powodów może być mnóstwo), że on nie włączy overlaya, tylko będzie kombinował inaczej. I obrazu na TV nie ma. Overlay mixer - jak tylko da się go użyć - zawsze gwarantuje obraz na TV w trybie teatralnym.
    VMR7 - praktycznie zawsze używa overlaya (i tu uwaga na oba tryby klonowania - z tym rendererem mogą być w niektórych odmianach tego trybu problemy!) i do trybu teatralnego jest chyba najlepszy. VMR9 - nie używa i sprawa jasna - trybu teatralnego nie ma!

    Tyle o TV.

    Poryjemy..zrobaczymy

  5. Część 4 - opcje MPC , JOTEM 12/09/05 16:45
    Jak to wszystko ma siędo opcji Playback->Output MPC. Do części dosyć prosto.
    W grupie "direct show video" wybieramy renderer (dwa ostatnie gdy nie chcemy obrazu). Grupy związanej z RealTime i QuickTime nie poruszę, bo ciemna masa w nich jestem.
    "VMR 7/9 (renderless)" zwiazane są z dosyćnietypowym wykorzystaniem VMR 7 i 9 (podmieniony allocator-presenter). To co tam się dzieje, to ocenić można tylko po kodzie MPC- u mnie wpływu nijakiego na VMR 9 te opcje nie mają. Sugerowałbym ruszanie w przypadku problemów. Może jakoś na VMR7 działają (może pozwola na nim odzyskać overlaya i uzyskać wyjscie na TV w trybie teatralnym).
    jaki wybrać renderer?

    Bez napisów ale z TV - overlay mixer.
    W innych przypadkach i w przypadku problemów - VMR7 renderless gdy potrzebny tryb teatralny inaczej ew. VMR9 renderless.

    To wszystko. Jest jeszcze sporo niuansów, ale nie każdy musi sobie nimi głowę zaprzątać.

    Poryjemy..zrobaczymy

  6. Dzięki, ale... , JE Jacaw 12/09/05 16:52
    ...co z tymi opcjami w MPC ? Napisałeś, że on używa tego trybu VMR9 (i jak rozumie, nici z overlay'a na TV), ale w MPC są do wyboru jeszcze jakieś 3 tryby dla tego VMR9.

    A przy okazji, takie odtwarzacze jak SubEdit lub CinemaPlayer, którego trybu używają do wyświetlania napisów - wydaje mi się, że chyba tego GUI, ale może jednak się mylę ?

    Z góry dziękuję za dalsze wyjaśnienia.

    Socjalizm to ustrój, który
    bohatersko walczy z problemami
    nieznanymi w innych ustrojach

    1. Trochę napisałem jeszcze w Twoim poście , JOTEM 12/09/05 17:12
      Niestety, na wszystkich komputerach jakie testowałem przełączanie tych opcji dla VMR9 nic nie daje poza możliwościa włączenia shaderów dla ostatniej opcji (to działa całkiem fajnie). Znam trochę problem podmiany allocator-presenter'a (sam to kilka razy robiłem) i wiem, że raczej nie do przywracania overlaya on służy (mnie się jeszcze to nie udało), więc aby mieć overlaya i obraz na TV w trybie teatralnym (w innych powinien być tak czy siak) próbować można tylko z VMR7 renderless (i tu te trzy opcje mogą mieć znaczenie dla uzyskania overlaya i obrazu na TV w teatralnym - zalecałbym drugą dla overlaya!) . U mnie się MPC myli i go (VMR7) nie wykrywa (a wiem że jest, bo sam go używam) więc nie sprawdzałem z TV.

      Co do innych odtwarzaczy - to zależy od wersji i ich opcji. Bardzo proste też jest użycie typu 6 (wykorzystanie specjalnych możliwości VMR7 lub 9). Jak to robią sprawdzić można przesuwajac szybko okno z filmem - jak napisy wędruja ściśle z filmem to raczej nie gui (choć można i to ominąć), albo po prostu oglądając na TV. Jak napisów nie ma w trybie teatralnym to pewnie GUI).
      Pozdr.

      Poryjemy..zrobaczymy

      1. Aha, zawsze można spróbować nakładać napisy inną metodą , JOTEM 12/09/05 17:16
        niż w odtwarzaczu, czyli przez ffdshow lub vobsubem.
        Musi być wtedy wybrany albo stary renderer (i liczyć, że uruchomi overlaya), albo VMR7 windowed (najlepiej).
        Można używaćtych sposobów łącznie ;-), już wiele razy miałem przy testach "potrójne" napisy.

        Poryjemy..zrobaczymy

    2. Jeszcze z opisu sądząc , JOTEM 12/09/05 17:52
      te trzy dodatkowe opcje należy (zwłaszcza pierwszą) wykorzystywać przy problemach - za mało pamięci na karcie (wtedy pierwsza opcja), niekompatybilności i błędy przy wykorzystaniu 3D (wtedy druga). Inaczej trzecia.

      Poryjemy..zrobaczymy

      1. Jeszcze raz dzięki... , JE Jacaw 12/09/05 18:09
        ...wprawdzie przyznam się, że nie wszystko jest dla mnie zrozumiałe, ale przynajmniej już coś nieco wiem. A dodatkowo wiem do kogo "uderzać" jak będę miał problemy z TV. :-)

        Socjalizm to ustrój, który
        bohatersko walczy z problemami
        nieznanymi w innych ustrojach

        1. Drobiazg , JOTEM 12/09/05 21:50
          starałem się jak mogłem, ale po pierwsze już trochę zapomniałem, po drugie - niektóre elementy są dla mnie oczywiste, a nie muszą być dla innych, po trzecie - w direct show jest wiele poplątanych, dorabianych, niedokończonych i przerabianych rzeczy (np. VMR9 - rozszerzenie VMR7, w którym pewne elementy działają tak samo, inne nie działają, a jeszcze inne zupełnie inaczej). Sam nie rozumiem wszystkiego i co pewien czas coś mnie zaskakuje. Typową zachęta dla programistów jest stwierdzenie z helpa - ta funkcja nie jest w tej wersji zaimplementowana. I tak pozostanie ;-)
          Znam kilku programistów bluzgających na direct show ;-) jak szewcy.
          Pozdr.

          Poryjemy..zrobaczymy

  7. tak czytam , dFour 12/09/05 17:55
    i to powinno na główną stonę iść

  8. Tak w ogóle , DJopek 12/09/05 22:19
    Widać że jest trochę zamieszania z tymi wszystkimi sposobami...

    U mnie np. przy MPC i ustawieniu VMR7 (renderless - wtedy dodawane są napisy) wszystko pięknie, napisy się dodają, widać je na monitorze i TV, jednak mój radeon nie wykrywają włączone overlaya i nie włącza się tryb teatralny :|

    1. hmmm, niestety , JOTEM 12/09/05 22:56
      bo w MPC kombinują. Wspominałem, że w tym sposobie nakładania napisów mogą być problemy z overlayem i trybem teatralnym. I niestety się to potwierdza (wbrew temu co piszą w MPC). Jeśli ma być tryb teatralny na 100% to ja osobiscie używam tylko typu 6 z użyciem VMR7. Owszem, napisy są nieco gorsze jakosciowo, ale za to zawsze są i to w miarę szybko.
      Typ napisów z MPC (u mnie nr 7) jest doskonały (moim zdaniem najlepszy) do wszystkich innych zastosowań poza trybem teatralnym. Może chłopaki posiedzą i dopracują, ale to na pewno nie jest proste.

      Poryjemy..zrobaczymy

      1. Hmm... , DJopek 12/09/05 23:01
        W sumie na MPC to aż tak mi nie zależy, ale autor SubEdita mógły wreszcie skorzystać z którejś z metod tak aby napisy były nakładane na overlaya, bo w tej chwili muszę przełączać podstawowy ekran na TV...

        1. ja korzystam , Zajkos 13/09/05 08:13
          z fddshow z SubEditem i napisy są na tv, z antyaliasingiem i pod filmem (musi być wybrana w ustawieniach napisów opcja Proces whole image czy jakos tak)

          1. hmm... , DJopek 13/09/05 08:22
            Wolę już przełączanie ekranu podstawowowego, bo przy ffdshow tracę możliwość manewrowania napisami przy pomocy SubEdita (wielkość, pozycja etc.) - w subedicie mam wszystkie funkcje ustawione na pilocie, no i w zależności do którego telewizora podłączę tak sobie ustawiam prosto i szybko...

    
All rights reserved ® Copyright and Design 2001-2025, TwojePC.PL