To Deinterlace Video
[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Alcune origini di video, ad esempio schede di acquisizione video, forniscono dati video per la visualizzazione interlacciata. Ogni fotogramma di video interlacciato è costituito da due campi. Il campo superiore contiene la prima riga di video e ogni altra riga successivamente. Il campo inferiore contiene la seconda riga di video e ogni altra riga successivamente. Quindi un campo contiene tutte le righe numerate e l'altra contiene tutte le righe numerate dispari. I campi che costituiscono una cornice rappresentano tempi di presentazione leggermente diversi in modo che, quando interleaved, non formano un'immagine statica.
Quando si vuole visualizzare video in un monitor computer, ogni fotogramma del video deve essere visualizzata come un'immagine (questo metodo di visualizzazione di video intero in una volta viene chiamato video progressivo ). Se si visualizza il video interlacciato progressivamente, i fotogrammi potrebbero non essere corretti, a causa della differenza di tempo tra i due campi. Il codec Windows Media Video e il codec Windows Media Video Advanced Profile supportano entrambe una funzionalità di pre-elaborazione che converte il contenuto interlacciato in fotogrammi progressivi.
Per avere il video di input codec deinterlace, chiamare il metodo IWMWriterAdvanced2::SetInputSetting . L'impostazione da usare è g_wszDeinterlaceMode. Impostare la modalità di deinterlacing su uno dei valori seguenti.
Valore | Descrizione |
---|---|
WM_DM_NOTINTERLACED | L'input è progressivo. Usare questa impostazione per arrestare la denterlacing quando in precedenza si imposta la modalità di deinterlacing su un altro valore. |
WM_DM_DEINTERLACE_NORMAL | Selezionare questa modalità per unire i campi uniforme e dispari di una cornice interlacciata (usando un meccanismo di compensazione del movimento). Benefici:
|
WM_DM_DEINTERLACE_HALFSIZE | Selezionare questa modalità quando la risoluzione dell'output è metà, o meno, della risoluzione di input. Ad esempio, usare questa modalità quando la risoluzione video di input è 640 x 480 pixel e la risoluzione video di output è 320 x 240 pixel. Benefici:
|
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE | Selezionare questa modalità quando la risoluzione dell'output è metà, o meno, della risoluzione di input e la frequenza dei fotogrammi di output è due volte superiore. Ad esempio, usare questa modalità quando la risoluzione video di input è 640 x 480 pixel a 30 fotogrammi interlacciati/sec e la risoluzione video di output è 320 x 240 pixel a 60 fotogrammi/sec. Benefici:
|
WM_DM_DEINTERLACE_INVERSETELECINE | Selezionare questa modalità per convertire il video telecined 30 fotogrammi/sec nei 24 fotogrammi/sec del film originale. Benefici:
|
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE | Selezionare questa modalità quando la risoluzione dell'output verticale è metà o minore della risoluzione verticale di input e la frequenza dei fotogrammi di output è due volte superiore. Ad esempio, la risoluzione verticale dell'input video è 640 x 480 pixel a 30 fotogrammi interlacciati/sec e la risoluzione video verticale di output è 320 x 240 pixel a 60 fotogrammi/sec. Benefici:
|
Per il contenuto misto, impostare la modalità di deinterlacing in base alle esigenze prima di passare esempi di un nuovo tipo. Ad esempio, per avviare la codifica con input progressivo, non è necessario impostare alcuna modalità di deinterlacing. Se alcuni esempi richiedono la normale deinterlacing, è necessario impostare la modalità di deinterlacing su WM_DM_DEINTERLACE_NORMAL. Per elaborare altri esempi progressivi, è necessario impostare la modalità di deinterlacing su WM_DM_NOTINTERLACED.
Impostazioni telecine inversa
Per una descrizione della telecine inversa, vedere Per usare Telecine inversa.
Se si imposta la modalità di deinterlacing su WM_DM_DEINTERLACE_INVERSETELECINE, è possibile specificare il modello di telecine del primo frame di input chiamando IWMWriterAdvanced2::SetInputSetting. L'impostazione da usare è g_wszInitialPatternForInverseTelecine. Impostare il modello iniziale su uno dei valori seguenti.
Valore | Descrizione |
---|---|
WM_DM_IT_DISABLE_COHERENT_MODE | Specifica che il supporto di input è stato eseguito attraverso il processo di telecine, ma che i fotogrammi non sono più in un modello prevedibile. Questo indica in genere che il supporto è stato modificato dopo l'elaborazione di telecine. Quando si usa questa impostazione, il codec tenta di ricostruire i fotogrammi originali in modo autonomo. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP | Specifica che il campo superiore del frame AA è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP | Specifica che il campo superiore del frame BB è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP | Specifica che il campo superiore del frame BC è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP | Specifica che il campo superiore della cornice CD è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP | Specifica che il campo superiore del frame DD è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM | Specifica che il campo inferiore del frame AA è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM | Specifica che il campo inferiore del frame BB è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM | Specifica che il campo inferiore del frame BC è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM | Specifica che il campo inferiore del frame CD è il primo esempio. |
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM | Specifica che il campo inferiore del frame DD è il primo esempio. |