Condividi tramite


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:
  • Gli artefatti interlacciati della visualizzazione progressiva sono notevolmente ridotti.
  • Il codec Di Windows Media Video produce video compressi di qualità superiore.
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:
  • Gli artefatti interlacciati della visualizzazione progressiva sono notevolmente ridotti.
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:
  • Questo produce fotogrammi progressivi di alta qualità, perché ogni campo viene convertito in una cornice e quindi non è necessario combinare alcuna informazione.
  • Il movimento completo dei campi interlacciati viene acquisito.
WM_DM_DEINTERLACE_INVERSETELECINE Selezionare questa modalità per convertire il video telecined 30 fotogrammi/sec nei 24 fotogrammi/sec del film originale. Benefici:
  • La qualità della compressione migliora significativamente perché è necessario codificare solo 24 fotogrammi/sec anziché 30 fotogrammi/sec.
  • Poiché il risultato è progressivo, vengono realizzati gli stessi vantaggi di compressione e visualizzazione deinterlacing.
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:
  • Questo produce fotogrammi progressivi di alta qualità, perché ogni campo viene convertito in una cornice e quindi non è necessario combinare alcuna informazione.
  • Il movimento completo dei campi interlacciati viene acquisito.

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.

Argomenti avanzati