Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os dados de vídeo destinados ao uso com computadores são normalmente progressivo, o que significa que cada quadro é codificado como uma única imagem. Alguns dispositivos, como televisores, não exibem um quadro de uma só vez, mas como duas imagens. Uma das imagens, ou campos, contém todas as linhas de número par. O outro campo contém os dados de todas as linhas ímpares numeradas. O vídeo codificado com mais de um campo por quadro é chamado entrelaçado, porque é renderizado alternando entre o campo par e o campo ímpar.
No passado, o conteúdo de vídeo entrelaçado era sempre desentrelaçado antes da codificação com o codec de vídeo do Windows Media. No entanto, a partir do Windows Media 9 Series, o codificador de vídeo suporta a compressão de conteúdo entrelaçado sem primeiro convertê-lo em progressivo. Manter o entrelaçamento num ficheiro codificado é importante se o conteúdo for apresentado num ecrã entrelaçado, como uma televisão. Esta funcionalidade é cada vez mais importante, uma vez que o suporte para conteúdos baseados no Windows Media se estende a leitores de DVD, descodificadores e outros produtos eletrónicos domésticos.
A maneira mais fácil de codificar e entregar vídeo entrelaçado é desenvolver seu aplicativo usando o SDK do Windows Media Format e armazenando o conteúdo em arquivos ASF. As informações entrelaçadas sobre quadros são passadas para o codec usando extensões de unidade de dados, que funcionam bem para conteúdo ASF, mas são um pouco mais difíceis de suportar em outros contêineres. Para obter mais informações sobre extensões de unidade de dados, consulte Usando extensões de unidade de dados.
Para dar suporte à codificação entrelaçada envolve duas etapas principais: obter as informações do quadro para o codificador e entregar as informações para o aplicativo de renderização. Essas etapas são descritas nos parágrafos a seguir.
Vídeo entrelaçado e o codificador
O primeiro passo na codificação de vídeo com entrelaçamento mantido é configurar o codificador para codificar campos entrelaçados. Para fazer isto, configure a propriedade MFPKEY_INTERLACEDCODINGENABLED para TRUE. Isso prepara o codificador para receber amostras entrelaçadas. Cada amostra de entrada deve conter ambos os campos.
Cada exemplo que você processa com o codificador depois de ativar a codificação entrelaçada deve ter uma extensão de unidade de dados anexada. Presume-se que as amostras sem a extensão de unidade de dados esperada são progressivas. O GUID que identifica a extensão é D590DC20-07BC-436C-9CF7-F3BBFBF1A4DC. Os valores passados pelos objetos do SDK do Windows Media Format são definidos na tabela a seguir.
| Valor | Descrição |
|---|---|
| 0x00000020 | Especifica que o exemplo é codificado com o campo inferior primeiro. Este valor só é significativo quando combinado com o valor entrelaçado. |
| 0x00000040 | Especifica que o exemplo é codificado com o campo superior primeiro. Este valor só é significativo quando combinado com o valor entrelaçado. |
| 0x00000080 | Especifica que a amostra está entrelaçada. Este é o único valor que é significativo para os DMOs de codec. |
Um dos dois primeiros valores é sempre combinado com 0x80 usando um bit a bit OU antes de ser definido na amostra. No entanto, o codificador apenas verifica se há 0x80 e ignora o resto da extensão. Se a extensão identificar a amostra como entrelaçada, o codificador mantém o entrelaçamento da amostra no fluxo comprimido e incorpora um sinalizador de indicação no fluxo para que o decodificador possa identificar quadros entrelaçados. Cada amostra entrelaçada é marcada, para que o conteúdo de origem que é uma mistura de progressivo e entrelaçado possa ser codificado juntamente num único fluxo.
O objeto de gravador do SDK do Windows Media Format inclui as extensões de unidade de dados do tipo de conteúdo nos exemplos que ele grava na seção de dados do contêiner ASF para uso no momento da renderização.
Leitura e renderização de vídeo entrelaçado
O decodificador identifica amostras entrelaçadas com base no sinalizador definido no fluxo pelo codificador. Como padrão, o decodificador desentrelaça as amostras e fornece saídas progressivas. O aplicativo player pode configurar o decodificador para processar saídas com entrelaçamento mantido definindo a propriedade MFPKEY_DECODER_DEINTERLACING.
A dificuldade na reprodução de vídeo entrelaçado surge depois que o decodificador entrega as amostras. O renderizador (placa de vídeo ou chip em um dispositivo) não pode exibir corretamente o conteúdo de vídeo sem saber qual campo é qual. Em aplicativos que usam o SDK do Windows Media Format, a extensão da unidade de dados do tipo de conteúdo é recuperada das amostras não compactadas e pode ser passada para o dispositivo.
Ao usar os objetos codec diretamente, nenhuma dessas transferências de dados é automática. Você deve implementar o suporte à extensão de unidade de dados, tanto em seus objetos de buffer quanto no contêiner que você usa para seu conteúdo codificado. Os tipos mais comuns de contêineres de mídia (como AVI) não oferecem suporte a metadados no nível de amostra. Você pode implementar seu próprio sistema para armazenar os dados no arquivo e associá-los a amostras individuais, mas apenas um leitor personalizado seria capaz de recuperá-los.
Observação
Definir a propriedade MFPKEY_INTERLACEDCODINGENABLED como TRUEe, em seguida, não enviar amostras com a extensão de unidade de dados do tipo de conteúdo anexada pode fazer com que o codificador falhe. Defina o codificador para codificação entrelaçada somente se você tiver amostras entrelaçadas para entregar.
Tópicos relacionados