Når jeg kigger på min filtergraf kan jeg se opløsningen på videostremen i nogle tilfælde ændrer sig på vejen mellem dekoder og videorender - kan ikke lure hvorfor; men kan genskabe det og se det afhænger af videodekoderen
Først det basale:
Afspiller BD-rips i .mkv container, 720p og 1080p
Afspiller = Zoom Player (V8 rc2)
x264/AVC codec = CoreAVC 2.5.5 eller ffdshow MPEG-4 videodekoder
Videorender = EVR (Win 7)
Det er en frisk installation med default settings på ovenstående
Første eksempel er et 1080p rip uden tekster.
Med CoreAVC videodecoder:
starter vi på 1920x1080, 24bit (CCV1) - ud af decoderen kommer så 2048x1080, 12bit (NV12)
Samme fil men med ffdshow:
start 1920x1080, 24bit (CCV1) - ud af decoderen kommer så 1920x1080, 16bit (YUY2)
CoreAVC tilføjer altså nogle liner ud af det blå (og vælger andet colorspace)
Sætter jeg så undertekster til filmen (via DirectVobSub) forsvinder problemet:
Start decoder = 1920x1080, 24bit (CCV1)
decoder ud = 1920x1080, 12bit (YV12) til
Vobsub ud = 1920x1080, 16bit (YUY2)
(ovenstående er ens uanset codecs)
-----
Jeg har lavet et tilsvarende forsøg med en 720p film, her sker ikke nogen ændring i opløsning og colorspace skifter ikke til NV12 i CoreAVC... (ffdshow er samme som med 1080p)
Dette er verificeret med ca 10 tilfældige 720 og 1080 film - fejlen opstår
kun med CoreAVC codec og
kun på 1080 film
uden tekster
Så uden at have forstand på colorspaces og videodekodning/rendering, så ville jeg umiddelbart gætte på CoreAVC har en bug?
Jeg prøvede at at grave lidt videre og fandt en 4:3 720p film... denne giver også lidt knas:
Med ffdshow og uden tekster:
880x720 bliver til 896x720
Med ffdshow og tekster:
880x720 -> 880x720 -> 896x720
CoreAVC og uden tekster:
880x720 -> 1024x720
CoreAVC og med tekster:
880x720 -> 880x720 -> 896x720
---
For sjov prøvede jeg at afspille ovenstående gennem DXVA (ffdshow) - og så holdes afleveres der 880x720 til renderen

Umiddelbart kan jeg ikke gennemskue hvorfor videodecoderen skulle ændre på antallet linier - og ved heller ikke om det overhovedet har nogen praktisk betydning; men man er vel nysgerrig

Og endelig en sidebemærkning, kan se at når der tilføjes tekster, så aflevere videodekoderen kun 12bit til Vobsub, som så igen afleverer 16bit til renderen... men når det er uden tekster går man direkte fra de 24bit til 16bit ind i renderen - betyder det så at billedet faktisk bliver dårligere når der er tekster på? Går ud fra de 12/16/24bit er farvedybden?
Håber det er til at forstå og nogen har en forklaring