Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Videogegevens die bedoeld zijn voor gebruik met computers zijn doorgaans progressief, wat betekent dat elk frame wordt gecodeerd als één beeld. Sommige apparaten, zoals televisies, geven niet allemaal tegelijk een frame weer, maar als twee afbeeldingen. Een van de afbeeldingen of velden bevat alle even genummerde rijen. Het andere veld bevat de gegevens voor alle oneven genummerde rijen. Video gecodeerd met meer dan één veld per frame wordt interlaced genoemd, omdat deze wordt weergegeven door te schakelen tussen het even veld en het oneven veld.
In het verleden werd interlaced video-inhoud altijd gede-interlaceerd voordat het werd gecodeerd met de Windows Media Video-codec. Vanaf Windows Media 9 Series ondersteunt video-encoder echter het comprimeren van interlaced video zonder eerst om te zetten naar progressieve. Het bewaren van interlacing in een gecodeerd bestand is belangrijk als de inhoud wordt weergegeven op een geïnterlaceerd display, zoals een televisie. Deze functie is van steeds groter belang, omdat de ondersteuning voor op Windows Media gebaseerde inhoud zich uitbreidt naar dvd-spelers, set-topboxen en andere thuiselektronica.
De eenvoudigste manier om interlaced video's te coderen en te leveren, is door uw toepassing te ontwikkelen met behulp van de Windows Media Format SDK en de inhoud op te slaan in ASF-bestanden. De interlaced-gegevens over frames worden doorgegeven aan de codec met behulp van uitbreidingen van gegevenseenheden, die goed werken voor ASF-inhoud, maar enigszins moeilijker te ondersteunen zijn in andere containers. Raadpleeg Gebruik van extensies voor gegevenseenhedenvoor meer informatie over extensies voor gegevenseenheden.
Ter ondersteuning van interlaced codering zijn twee belangrijke stappen vereist: het ophalen van de framegegevens aan de encoder en het leveren van de informatie aan de renderingtoepassing. Deze stappen worden beschreven in de volgende alinea's.
Interlaced Video en de Encoder
De eerste stap in het coderen van video met behoud van interlacing is het configureren van de encoder voor het coderen van interlaced velden. Hiervoor stelt u de eigenschap MFPKEY_INTERLACEDCODINGENABLED in op TRUE. Hiermee wordt de encoder voorbereid op het ontvangen van interlaced samples. Elk invoervoorbeeld moet beide velden bevatten.
Aan elk voorbeeld dat u met de encoder verwerkt nadat interlaced codering is geactiveerd, moet een extensie voor de gegevenseenheid zijn gekoppeld. Voorbeelden zonder de verwachte extensie voor gegevenseenheden worden verondersteld progressief te zijn. De GUID die de extensie identificeert, is D590DC20-07BC-436C-9CF7-F3BBFBF1A4DC. De waarden die door de objecten van de Windows Media Format SDK worden doorgegeven, worden gedefinieerd in de volgende tabel.
| Waarde | Beschrijving |
|---|---|
| 0x00000020 | Hiermee geeft u op dat het voorbeeld eerst is gecodeerd met het onderste veld. Deze waarde is alleen zinvol wanneer deze wordt gecombineerd met de interlaced-waarde. |
| 0x00000040 | Hiermee geeft u op dat het voorbeeld eerst is gecodeerd met het bovenste veld. Deze waarde is alleen zinvol wanneer deze wordt gecombineerd met de interlaced-waarde. |
| 0x00000080 | Hiermee geeft u op dat het voorbeeld is ge interlaceerd. Dit is de enige waarde die zinvol is voor de codec-DMO's. |
Een van de eerste twee waarden wordt altijd gecombineerd met 0x80 met behulp van een bitsgewijze OF voordat u het voorbeeld instelt. De encoder controleert echter alleen op 0x80 en negeert de rest van de extensie. Als de extensie de sample als interlaced identificeert, behoudt de encoder de sample-inlacing in de gecomprimeerde stroom en embedt een indicatievlag in de stroom, zodat de decoder interlaced frames kan identificeren. Elk interlaced sample wordt gemarkeerd, zodat broninhoud die een combinatie van progressieve en interlaced is, samen in een stream kan worden gecodeerd.
Het Windows Media Format SDK Writer-object bevat de extensies van de inhoudstypegegevenseenheid in de voorbeelden die worden geschreven naar de gegevenssectie van de ASF-container voor gebruik op het moment van rendering.
Interlaced Video lezen en weergeven
De decoder identificeert interlaced samples op basis van de door de encoder ingestelde vlag in de stream. Standaard worden de samples gedeïnterlaceerd door de decoder en wordt er progressieve uitvoer geleverd. De spelerapplicatie kan de decoder configureren om de uitvoer met behouden interlacing te verwerken door de eigenschap MFPKEY_DECODER_DEINTERLACING in te stellen.
De moeilijkheid bij het afspelen van interlaced video ontstaat nadat de decoder de samples levert. De renderer (videokaart of chip in een apparaat) kan de video-inhoud niet goed weergeven zonder te weten welk veld dat is. In toepassingen die de Windows Media Format SDK gebruiken, wordt de gegevenseenheidextensie voor inhoudstypen opgehaald uit de niet-gecomprimeerde voorbeelden en kan deze worden doorgegeven aan het apparaat.
Wanneer u de codec-objecten rechtstreeks gebruikt, wordt deze gegevensoverdracht niet automatisch uitgevoerd. U moet ondersteuning voor gegevens-eenheidsuitbreiding implementeren, zowel in uw bufferobjecten als in de container die u gebruikt voor uw gecodeerde inhoud. De meest voorkomende typen mediacontainers (zoals AVI) bieden geen ondersteuning voor metagegevens op voorbeeldniveau. U kunt uw eigen systeem implementeren om de gegevens in het bestand op te slaan en te koppelen aan afzonderlijke voorbeelden, maar alleen een aangepaste lezer zou het kunnen ophalen.
Notitie
Als u de eigenschap MFPKEY_INTERLACEDCODINGENABLED instelt op TRUEen geen voorbeelden verzendt met de bijgevoegde data-eenheidsuitbreiding voor inhoudstype, kan de encoder vastlopen. Stel de coderingseenheid alleen in voor interlaced codering als u interlaced voorbeelden hebt om af te leveren.
Verwante onderwerpen