Campo da Técnica
[0001] O presente pedido refere-se a uma pluralidade de métodos para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo ("streamed vídeo"); um método para determinar o impacto perceptual de uma perda de pacote em um vídeo transmitido em fluxo contínuo; um método para determinar o impacto perceptual da ocorrência de uma nova cena em um vídeo transmitido em fluxo contínuo e um meio legível por computador.
Fundamentos
(0002] O conteúdo de televisão ou o conteúdo de vídeo pode ser transmitido através de uma rede de IP a partir de um provedor de conteúdo para um dispositivo que é utilizado por um usuário final. O dispositivo pode ser um computador pessoal, um dispositivo de comunicação sem fio, um conversor (set-top box), uma televisão com conversor funcionalmente embutido, uma TV inteligente, ou um conversor inteligente. O conteúdo de televisão ou o conteúdo de vídeo pode ter conteúdo de áudio associado ao mesmo que é frequentemente transmitido com o mesmo. Quando a transmissão ocorre em "tempo real", o que significa que o conteúdo é exibido antes de a transmissão ser concluída, isso é referido como transmissão em fluxo contínuo.
(0003] A transmissão em fluxo contínuo de vídeo em redes de comunicação está se tornando cada vez mais comum. Para garantir a qualidade de ponta a ponta de vídeo transmitido em fluxo contínuo em uma rede de comunicação, a operadora de rede e o provedor de serviço de vídeo podem utilizar modelos de qualidade de vídeo. Um modelo de qualidade de vídeo gera uma avaliação objetiva de qualidade de vídeo medindo-se artefatos ou erros de codificação e transmissão que seria perceptível para um observador humano. Isso pode substituir avaliação de qualidade subjetiva, em que humanos assistem uma amostra de vídeo e classificam sua qualidade.
(0004] Modelos de qualidade de vídeo são conhecidos por algum tempo no mundo acadêmico, porém somente recentemente que seu uso foi padronizado. Modelos de qualidade de vídeo de percepção são descritos nos padrões da União Internacional de Telecomunicações (ITU) J.144, J.247 e J.341. Os modelos de percepção têm a vantagem de que podem utilizar valores de pixel no vídeo processado para determinar uma pontuação de qualidade. No caso de modelos de referência total (como nos padrões da ITU mencionados acima) um sinal de referência é utilizado, também, para prever a degradação do vídeo processado. Uma grande desvantagem de modelos de percepção é que os mesmos são computacionalmente exigentes e não são adequados para emprego em grande escala para os propósitos de gerenciamento de rede.
[0005] Uma abordagem mais leve está, portanto, sendo padronizada nesse momento em ITU-T SG12/Q14 com o nome de trabalho P.NAMS. O modelo utiliza como sua entrada cabeçalhos de protocolo de rede de camada e utiliza os mesmos para fazer uma estimativa de qualidade do vídeo transmitido. Isso torna o modelo muito eficiente para implantar utilizar, porém a sua própria estimativa de qualidade do vídeo transmitido é um tanto quanto pesada. Portanto, ITU-T SG12/Q14 irá padronizar também um modelo de qualidade de fluxo de bits de vídeo com o nome de trabalho P.NBAMS. Esse modelo utiliza não apenas os cabeçalhos de protocolo de camada de rede, porém também a transmissão em fluxo contínuo ou “fluxo de bits”. O uso de ambos os conjuntos de entradas tem a vantagem de que será razoavelmente leve ao mesmo tempo em que se obtém uma estimativa melhor da qualidade do vídeo em comparação com o modelo P.NAMS.
[0006] A codificação com base em bloco é a tecnologia de codificação de vídeo com padrões de codec tais como H.263, MPEG-4 Visual, MPEG-4 AVC (H.264) e o padrão H.265 emergente que está sendo desenvolvido no JCT-VC (Joint Collaborative Team on Video Coding) da ITU. A codificação com base em bloco utiliza tipos diferentes de imagens (que emprega diferentes tipos de previsão) para ter a capacidade de comprimir o vídeo o mais eficientemente possível. As Intraimagens (l-imagens) podem ser previstas somente espacialmente a partir de áreas na própria imagem. As imagens preditivas (imagens P) são temporariamente previstas a partir de imagem(s) previamente codificada(s). No entanto, alguns macroblocos em P-imagens podem ser intracodificados. As imagens preditivas bidirecionais (B-imagens) são previstas a partir tanto de imagens anteriores quanto de imagens posteriores. Uma l-imagem com a restrição de que nenhuma imagem anterior pode ser utilizada para previsão é chamada de uma imagem de Restauração de Decodificação Instantânea (IDR). As imagens I e IDR são frequentemente muito mais caras para codificar em termos de bits que as P-imagens e as B-imagens.
[0007] Para aumentar resiliéncia a erros em redes de comunicação propensas a erro, imagens I ou IDR são inseridas periodicamente para atualizar o vídeo. As imagens I ou IDR também são inseridas periodicamente para permitir acesso aleatório e troca de canal. Ademais, as imagens I ou IDR são inseridas quando o custo (tanto em termos de distorção induzida quanto alocação de bit) de codificação de uma imagem como P-imagem é maior que o custo de codificação da mesma como uma imagem I ou IDR. Isso ocorre quando a redundância espacial da imagem é mais alta que a redundância temporal da imagem com suas imagens de referência. Isso acontece tipicamente quando a imagem em consideração é uma mudança de cena, também conhecida como um corte de cena, o que significa que a cena representada é bem diferente de sua imagem anterior. Se as intraimagens forçadas devem ser inseridas em tempo não é algo definido pelo padrão de codificação de vídeo (que define somente o procedimento de codificação), porém é o codificador que tem que decidir.
[0008] Em média, o conteúdo de televisão tipicamente contém uma transição entre cenas, conhecida como uma mudança de cena, a cada 3 a 5 segundos. As mudanças de cena podem ocorrer instantemente entre duas imagens ou aparecerem lentamente sobre várias imagens. Devido ao fato de ser geralmente o caso de nenhuma previsão temporal boa poder ser feita a partir de um lado de uma mudança de cena para outra, um codificador inteligente irá frequentemente tentar alinhar um corte de cena a uma I- ou IDR-imagem.
[0009] O documento WO 2009/012297 descreve um método e sistema para estimar o conteúdo de quadros em uma transmissão em fluxo contínuo de vídeo de pacote criptografado sem descriptografar os pacotes explorando-se informações somente dos cabeçalhos de pacote. Um l-quadro é denotado como o início de uma nova cena se a extensão do Grupo de Imagens (GOP) anterior for anormalmente curto e a penúltima extensão de GOP for igual ao seu valor máximo. No entanto, o maior ponto fraco desse método é que as mudanças de cena que ocorrem em extensões de GOP normais não podem ser identificadas. Por exemplo, se a extensão de GOP normal for 25 quadros, então uma mudança de cena que ocorre no quadro de número 25, 50, 75,100, etc. não pode ser detectada. Ademais, uma extensão de GOP mais curta não significa necessariamente que a imagem em consideração é uma mudança de cena, levando, assim, a falso positivo.
Sumário
[0010] É fornecido no presente documento uma pluralidade de métodos de detecção de mudança de cena que são adequados para uso em um modelo de avaliação de qualidade. Adicionalmente, é fornecido um modelo de avaliação de qualidade que emprega a detecção de mudança de cena.
[0011] Perdas de pacote que correm durante uma mudança de cena são frequentemente muito mais visíveis que perdas de pacote que ocorrem no meio de uma cena. Consequentemente, é fornecido um modelo de detecção de qualidade que utiliza a detecção de mudança de cena em combinação com a detecção de erros como perdas de pacote. No entanto, um método de detecção de mudança de cena com os propósitos de um modelo de avaliação de qualidade devem ser muito exatos visto que qualquer erro na detecção de mudança de cena será provavelmente amplificado na avaliação de qualidade.
[0012] A Figura 1 ilustra o impacto relativo de uma perda de dados em uma I- imagem em duas circunstâncias. A Figura 1a mostra a perda de dados em uma I- imagem no início de uma nova cena, enquanto que a Figura 1b mostra uma perda similar, porém a perda no meio de uma cena. Na Figura 1a, a imagem 110 apresenta uma “seção perdida” 115, em que o decodificador ainda não recebeu dados relacionados a essa parte da nova cena e utiliza, então, a seção correspondente a partir de uma imagem da cena anterior. Aqui, a nova cena é de jogadores em um campo, enquanto que a cena anterior é de uma multidão. Na Figura 1b a perda de dados ocorre durante uma cena que mostra jogadores no campo e então a perda de dados é bem menos notável. O detalhe do jogador superior no lado direito da imagem 120 é distorcido, porém a perda de dados é dificilmente perceptível.
[0013] Ademais, mudanças de cena têm um impacto na qualidade de sinais de vídeo mesmo se nenhum erro de transmissão correr. Tipicamente, sequências com mudanças de cena têm qualidade inferior devido ao fato de que as mesmas representam mais conteúdo complexo que é, em geral, mais caro de codificar. Adicionalmente, as l-imagens que estão no início de uma nova cena geralmente são (ou pelo menos comportam como se estivessem) imagens IDR. Isso deteriora a eficiência de compressão devido ao número limitado de imagens de referência.
[0014] É fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O método compreende calcular, para uma pluralidade de posições, uma diferença entre o custo de codificação de macroblocos na mesma posição em imagens sucessivas. O método compreende adicionalmente identificar uma nova cena quando a soma das diferenças para uma pluralidade de posições satisfaz um critério limítrofe.
[0015] Quando o video transmitido em fluxo contínuo é codificado, o método acima pode operar no fluxo de bits codificado. O método não exige a decodificação do vídeo transmitido em fluxo contínuo.
[0016] As posições para as quais as diferenças são calculadas podem ser: posições de pixel; posições de sub-bloco; e/ou posições de macrobloco. As posições de pixel podem compreender as posições de pixels individuais ou as posições de grupos de pixels.
[0017] O custo de codificação de um macrobloco pode ser determinado de acordo com tipo de macrobloco. O tipo de macrobloco pode compreender um dentre: Pular ou Ignorar (“Skip”); macrobloco intercodificado como uma partição; macrobloco intercodificado subdividido em múltiplas partições; macrobloco intracodificado como uma partição; e macrobloco intracodificado subdividido em múltiplas partições. Um custo de codificação médio histórico de cada tipo de macrobloco pode ser utilizado para designar um custo de codificação para um macrobloco particular com uso de somente o tipo particular de macroblocos.
[0018] O método pode compreender adicionalmente aplicar compensação de movimento, por meio de que a diferença entre o custo de codificação de macroblocos para pixels na mesma posição em imagens sucessivas é calculada para as posições de pixel após a compensação de movimento ter sido aplicada. Isso significa que a diferença entre valores de pixel é calculada entre um local da imagem atual e seu local compensado por movimento na imagem de referência (anterior).
[0019] O método pode compreender adicionalmente incluir um deslocamento entre as posições em imagens sucessivas. Para cada um dentre uma pluralidade de valores de deslocamento, uma soma das diferenças para uma pluralidade de posições pode ser calculada para obter uma pluralidade de diferenças totais que correspondem à pluralidade de valores de deslocamento. O método pode compreender adicionalmente comparar o mínimo da pluralidade de diferenças totais com o critério limítrofe. Isso permite o desalinhamento de macroblocos similares de outra forma, por exemplo, devido a um movimento panorâmico entre imagens sucessivas.
[0020] O método pode compreender adicionalmente identificar uma nova cena quando a soma das diferenças para uma pluralidade de posições de pixel é ou mais alta que um valor limítrofe máximo ou menor que um valor limítrofe mínimo. Pelo menos um valor limítrofe pode ser determinado tirando-se uma média ponderada de diferenças calculadas entre um número predeterminado das imagens imediatamente anteriores, em que as diferenças entre as imagens mais recentes recebem uma ponderação maior. Isso é referido, às vezes, como utilizar uma janela deslizante.
[0021] É fornecido, também, um aparelho para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O aparelho compreende um processador disposto para calcular, para uma pluralidade de posições, uma diferença entre o custo de codificação de macroblocos na mesma posição em imagens sucessivas. O aparelho compreende adicionalmente um detector de mudança de cena disposto para identificar uma nova cena quando a soma das diferenças para uma pluralidade de posições satisfaz um critério limítrofe.
[0022] É adicionalmente fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o video transmitido em fluxo contínuo compreende uma série de imagens. O método compreende calcular, para uma pluralidade de posições, uma diferença entre valores de pixel na mesma posição em imagens sucessivas. O método compreende adicionalmente aplicar uma ponderação à diferença, em que a ponderação depende do tipo de macrobloco associado à posição. O método compreende adicionalmente identificar uma nova cena quando a soma das diferenças ponderadas para uma pluralidade de posições exceder um valor limítrofe.
[0023] O método pode compreender adicionalmente aplicar compensação de movimento, e em que a diferença entre o custo de codificação de macroblocos para pixels na mesma posição em imagens sucessivas é calculada para as posições de pixel após a compensação de movimento ter sido aplicada. Isso significa que a diferença entre valores de pixel é calculada entre um local da imagem atual e seu local compensado por movimento na imagem de referência (anterior).
[0024] É fornecido, também, um aparelho para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O aparelho compreende um analisador de informações de pixel disposto para calcular, para uma pluralidade de posições, uma diferença entre valores de pixel na mesma posição em imagens sucessivas. O aparelho compreende adicionalmente um processador disposto para aplicar uma ponderação à diferença, em que a ponderação depende do tipo de macrobloco associado à posição. O aparelho ainda compreende adicionalmente um detector de mudança de cena disposto para identificar uma nova cena quando a soma das diferenças ponderadas para uma pluralidade de posições exceder um valor limítrofe.
[0025] É adicionalmente fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo continuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O método compreende determinar o tamanho codificado de uma imagem. O método compreende adicionalmente determinar o tipo de imagem da imagem. O método ainda compreende adicionalmente identificar uma nova cena quando o tamanho de imagem codificada exceder um limite para o tipo de imagem detectado.
[0026] O tipo de imagem pode ser determinado de acordo com informações extraídas de cabeçalhos de pacote do vídeo transmitido em fluxo contínuo. O tipo de imagem pode ser determinado a partir de informações de carimbo de data/hora contidas no cabeçalho RTP ou MPEG2-TS PES.
[0027] O tipo de imagem pode compreender um dentre: intracodificada; imagens preditivas unidirecionais; e imagens preditivas bidirecionais. As imagens preditivas bidirecionais podem ser de referência e/ou imagens não referência.
[0028] É fornecido, também, um aparelho para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O aparelho compreende um processador disposto para determinar o tamanho codificado de uma imagem, e para determinar o tipo de imagem da imagem. O aparelho compreende adicionalmente um detector de mudança de cena disposto para identificar uma nova cena quando o tamanho de imagem codificada exceder um limite para o tipo de imagem detectado.
[0029] É adicionalmente fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O método compreende determinar o tamanho codificado de uma imagem. O método compreende adicionalmente determinar o tipo de imagem de acordo com o tamanho codificado da imagem. O método compreende adicionalmente calcular, para uma pluralidade de posições de pixel, uma diferença entre valores de pixel na mesma posição em imagens sucessivas. O método compreende adicionalmente calcular uma medição de diferença entre imagens sucessivas somando-se as diferenças de pixel. O método compreende adicionalmente aplicar uma ponderação à medição de diferença entre imagens sucessivas, em que a ponderação depende do tipo de imagem. O método compreende adicionalmente identificar uma nova cena quando a diferença ponderada exceder um valor limítrofe.
[0030] O tipo de imagem pode compreender um dentre: intracodificada; imagens preditivas unidirecionais; e imagens preditivas bidirecionais. As imagens preditivas bidirecionais podem ser hierárquicas e/ou não hierárquicas.
[0031] É fornecido, também, um aparelho para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo continuo compreende uma série de imagens. O aparelho compreende um processador disposto para determinar o tamanho codificado de uma imagem, e para determinar o tipo de imagem de acordo com o tamanho codificado da imagem. O processador é adicionalmente disposto para calcular: uma diferença entre valores de pixel na mesma posição em imagens sucessivas para uma pluralidade de posições de pixel; e uma medição de diferença entre imagens sucessivas somando-se as diferenças de pixel. O processador é adicionalmente disposto para aplicar uma ponderação à medição de diferença entre imagens sucessivas, em que a ponderação depende do tipo de imagem. O aparelho compreende adicionalmente um detector de mudança de cena disposto para identificar uma nova cena quando a diferença ponderada exceder um valor limítrofe.
[0032] É adicionalmente fornecido um método para determinar o impacto perceptual de uma perda de pacote em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens. O método compreende identificar uma perda de pacote. O método compreende adicionalmente determinar se o pacote perdido continha informações relacionadas a uma imagem no início de uma nova cena, em que uma nova cena é detectada com uso do método para detectar uma mudança de cena de acordo qualquer um dos métodos descritos acima.
[0033] É adicionalmente fornecido um meio legível por computador, que carrega instruções, que, quando executadas por lógica de computador, faz com que a dita lógica de computador execute qualquer um dos métodos descritos acima.
Breve Descrição dos Desenhos
[0034] Um método de detecção de mudança de cena e um modelo de avaliação de qualidade serão descritos agora, a título de exemplo somente, com referência aos desenhos anexos, em que:
[0035] A Figura 1 ilustra o impacto relativo de uma perda de dados em uma I- imagem em duas circunstâncias;
[0036] A Figura 2 é um fluxograma que mostra o método para identificar uma mudança de cena com uso de recursos extraídos da transmissão em fluxo contínuo de vídeo codificado;
[0037] A Figura 3 ilustra uma comparação de imagem com uso dos tipos de macrobloco;
[0038] A Figura 4 é um fluxograma que mostra o método para identificar uma mudança de cena com uso de recursos extraídos da transmissão em fluxo contínuo de video e dados de pixel decodificados;
[0039] A Figura 5 é um fluxograma que mostra o método para identificar uma mudança de cena com o uso de informações de cabeçalho de pacote de sinais de vídeo codificados;
[0040] A Figura 6 ilustra um exemplo de como o tipo de imagem é determinado a partir do tamanho de cada imagem;
[0041] A Figura 7 é um fluxograma de uma detecção de mudança de cena procedimento que incorpora o método descrito acima;
[0042] A Figura 8 é um fluxograma que mostra o método para identificar uma mudança de cena que utiliza informações de cabeçalho de pacote e os dados de pixel decodificados; e
[0043] A Figura 9 ilustra um aparelho para realizar os métodos descritos acima. Descrição Detalhada
[0044] São apresentados no presente documento quatro tipos diferentes de detecção de mudança de cena para uso em modelos de qualidade de vídeo nos seguintes quatro conjuntos de circunstâncias:i) utilizar os recursos extraídos ou computados a partir do fluxo de bits de vídeo codificado quando a decodificação de dados de pixel ou não é possível ou não é permitida;ii) utilizar os recursos extraídos ou computados a partir do fluxo de bits de vídeo quando a decodificação de dados de pixel é permitida;iii) utilizar as informações de cabeçalho de pacote de sinais de vídeo codificados; eiv) utilizar as informações de cabeçalho de pacote e os dados de pixel obtidos decodificando-se o fluxo de bits de vídeo.
[0045] Um modelo que tem acesso a dados de pixel decodificados terá potencialmente a capacidade de fazer uma estimativa mais exata da qualidade de vídeo percebida. No entanto, isso se faz a custa de uma complexidade maior com demanda aumentada de recursos incluindo poder de processamento e memória.
[0046] Os quatro modos diferentes de operação apresentados no presente documento são ou especificados a partir das exigências de complexidade de um módulo de avaliação de qualidade de vídeo ou a partir da falta de informações específicas devido à criptografia do sinal de video. Por exemplo, se a medição de qualidade de vídeo for empregada em um local de rede com recursos de energia limitados ou se o sinal de vídeo estiver criptografado, então o modo (iii) seria apropriado. Se o modelo for empregado em um dispositivo de decodificação no recinto do usuário final e o sinal de vídeo for criptografado, então a invenção pode utilizar adicionalmente os dados de pixel das imagens reconstruídas (que podem ser, por exemplo, capturados a partir do dispositivo do usuário final) e o modo (iv) seria apropriado. Se o sinal de vídeo não for criptografado então o sistema pode explorar os recursos do fluxo de bits de vídeo conforme descrito nos modos (i) e (ii) dependendo das exigências e especificações de complexidade.Cada um dos modos será descrito por sua vez.
(i) O USO DE RECURSOS EXTRAÍDOS DA TRANSMISSÃO EM FLUXO CONTÍNUO DE VÍDEO CODIFICADO.
[0047] Esse método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo compreende; calcular, para uma pluralidade de posições, uma diferença entre o custo de codificação de macroblocos na mesma posição em imagens sucessivas; e identificar uma nova cena quando a soma das diferenças para uma pluralidade de posições satisfaz um critério limítrofe.
[0048] Esse método, conforme aplicado às duas imagens sucessivas em um vídeo transmitido em fluxo contínuo é ilustrado pelo fluxograma na Figura 2. Em 210 as posições de imagem que serão comparadas são selecionadas. Para algumas implantações, cada local de imagem pode ser comparado, mas para outras um subconjunto é selecionado de acordo ou com um padrão predeterminado ou mesmo um padrão aleatório. Em 220, um valor relacionado ao custo de codificação de um macrobloco em cada uma das posições de imagem selecionadas em ambas as imagens é determinado. Em 230, a diferença no custo de codificação entre as duas imagens é calculada em cada uma das posições selecionadas. Essas diferenças são somadas e a diferença total é comparada a um valor limítrofe. Se a diferença total exceder o valor limítrofe então é determinado que uma mudança de cena ocorreu.
[0049] Esse método de detecção de mudança de cena pode ser empregado quando um modelo de avaliação de qualidade detectar um dentre os seguintes:i) - a perda de uma ou mais imagens;ii) - a perda de parte de uma imagem, em que a imagem é codificada como uma l-imagem ou uma imagem de IDR;iii) - a perda de uma parte de uma imagem, em que a proporção de macroblocos intracodificados na imagem exceder um limite, de modo que a imagem tenha um impacto similar a uma l-imagem ou imagem de IDR.
[0050] O método pode ser aplicado em duas imagens, em que uma corre antes de uma perda de dados, a outra após a perda. O método compreende fazer uma comparação entre duas imagens. Isso permite a determinação de se a perda ocorreu durante uma mudança de cena. No entanto, um método de detecção de mudança de cena pode ser também aplicado mesmo se nenhuma perda tiver ocorrido.
[0051] Uma indicação do custo de codificação de um macrobloco em uma posição em uma imagem pode ser determinada com uso de: vetores de movimento, tipos de macrobloco, número de bits utilizados para codificação de macrobloco e/ou valores de quantização.
[0052] Quando vetores de movimento são utilizados para determinar o custo de codificação de um macrobloco, a direção e tamanho do vetor de movimento para o macrobloco são utilizados. Quanto maior for o tamanho do vetor de movimento maior é o custo de codificação. A direção do vetor de movimento também pode ter um impacto no custo de codificação. Essa abordagem pode detectar muitos casos em que uma mudança de cena ocorre. No entanto, para todas as cenas estáticas a única abordagem de vetor de movimento não terá a capacidade de detectar mudanças de cena (isto é, mudanças de cena de uma cena estática para outra cena estática são difíceis de detectar observando-se vetores de movimento).
[0053] O custo de codificação pode ser determinado, também, analisando-se a complexidade de áreas particulares das imagens. A complexidade pode ser medida observando-se o número de bits utilizados ou o tipo de macrobloco que é utilizado em uma posição de macrobloco particular. Para tipos de macrobloco, cada tipo de macrobloco pode ser designado um número de acordo com a tabela abaixo, em que macroblocos caros são designados valores mais altos.
Tabela 1: Designação de valor de tipo de macrobloco para correspondência de imagem.
[0054] A comparação de imagem ilustrada na Figura 3 utiliza tipos de macrobloco, com um sistema de pontuação que corresponde à tabela 1. O tamanho de cada imagem nesse exemplo é somente macroblocos 5x5 para propósitos ilustrativos. Na prática, um tamanho de imagem típico está frequentemente entre formato de video QCIF (macroblocosl 1x9) e video HD máximo (macroblocos 120x68). Na Figura 3a o tipo de macrobloco é ilustrado por um símbolo: Sub-blocos que incluem intramacrobloco por um circulo; Intra 16 x 16 por um quadrado; Sub- blocos que incluem intermacrobloco por um triângulo; Inter 16x16 por um espaço em branco; Ignorar por uma cruz. A Figura 3a mostra três imagens sucessivas, 301, 302, 303.
[0055] A Figura 3b mostra mapas de diferença para pares sucessivos de imagens na Figura 3a. O primeiro mapa de diferença contém a diferença absoluta por macrobloco valor entre imagens 301 e 302. O segundo mapa de diferença contém a diferença absoluta por macrobloco entre imagens 302 e 303. A diferença média no primeiro mapa de diferença é 3,8 e no segundo mapa de diferença it é 22,4. As distribuições de tipos de macrobloco são as mesmas para as três imagens no exemplo, porém as diferenças são muito diferentes devido às posições da complexidade. A complexidade nas imagens 301 e 302 está em posições muito similares, enquanto que a complexidade nas imagens 302 e 303 está em posições muito diferentes.
[0056] O método acima pode ser estendido para permitir um desalinhamento de um ou dois macroblocos. Isso compensa certos movimentos tais como um movimento panorâmico de câmera e pode tornar o resultado mais preciso. Mesmo se as duas imagens a serem comparadas sejam muito similares quando se diz respeito, por exemplo, ao padrão de tipo de macrobloco, as mesmas ainda podem receber um valor diferencial alto se todos os blocos em uma das imagens forem deslocados levemente (por exemplo, devido ao movimento de câmera). Permitir um desalinhamento de um ou dois blocos significaria que o cálculo das diferenças entre os blocos consideraria o valor dos blocos circundantes. Na prática, isso pode significar que a diferença para o bloco seria o mínimo da pluralidade de valores de diferença obtidos comparando-se o bloco a todos os blocos circundantes.
[0057] A diferença para um macrobloco em uma posição da imagem 302 é o mínimo dos valores de diferença (por exemplo, Tabela 1) para o macrobloco na posição (m+x, n+y) da imagem 301, em que men indicam a posição do macrobloco na imagem 301 e x e y indicam um deslocamento entre a posição de macrobloco das imagens 301 e 302 nas direções horizontal e vertical respectivamente em que x e y assumem qualquer um dos valores de (-1,-1), (-1,0), (-1,1), (0,-1), (0,0), (0,1), (1,- 1), (1,0), e (1,1).
[0058] Adicionalmente, os métodos acima podem ser estendidos para levarem em consideração a compensação de movimento. Em contraste com as l-imagens que podem somente prever a partir de si mesmas, as P-imagens e B-imagens preveem a partir de imagens anteriores (e às vezes futuras). A previsão a partir de outras imagens pode ser feita prevendo-se apenas a partir das posições de pixel correspondentes exatas na outra imagem ou um vetor de movimento pode ser aplicado para prever a partir de uma posição espacial diferente na outra imagem. Isso é especialmente útil quando existe movimento natural entre as duas imagens.
[0059] A compensação de movimento pode ser aplicada aqui com o objetivo de alinhar os blocos para serem comparados de acordo com os vetores de movimento antes de calcular a diferença. Por exemplo, considere os sub-blocos mais em cima que incluem intermacrobloco na imagem 302 da Figura 3a marcados por um triângulo. O pixel da imagem no topo esquerdo tem a posição de pixel (0,0), e cada macrobloco compreende pixels 16x16. O macrobloco em questão tem pixel no topo à esquerda na posição de pixel (16, 16). Se esse for derivado a partir de um macrobloco na imagem anterior na posição de macrobloco adjacente ao mesmo e deslocou um para a direita, então o mesmo teria um vetor de movimento mv(x,y) = (16,0) apontando para posição de pixel (32, 16) na imagem 301. Realizando-se uma compensação de movimento antes de calcular uma diferença, acabaríamos com uma diferença de 0 ao invés de 35 para esse macrobloco.
[0060] Claro, os vetores de movimento não têm que ser necessariamente alinhados com o tamanho de macro blocos, porém podem apontar para qualquer pixel (mesmo posições de pixel de metade ou de um quarto em H.264). Para acomodar isso, o método pode selecionar o bloco mais próximo à posição de pixel para a qual o vetor de movimento aponta, ou o método pode realizar uma ponderação dos quatro blocos que cruzam com o bloco preditivo. Por exemplo, digamos que o vetor de movimento mv(x,y) = (-12,3) é utilizado na decodificação do mesmo macrobloco em questão na imagem 302 (o macrobloco mais em cima marcado por um triângulo). A previsão seria feita a partir de um bloco 16x16 com um pixel no topo a esquerda na posição (4,19) e a ponderação seria feita a partir dos macroblocos na posição (0,16), (16,16), (0,32) e (16, 32) a partir da imagem 301. A ponderação pode ser calculada conforme segue:
[0061] Ainda outra maneira de conseguir resultados mais estáveis para a correspondência dos parâmetros é tirar a média de várias outras imagens com uso de uma abordagem de janela deslizante. Dividir a diferença média com a diferença média da imagem anterior fará com que seja possível detectar mudanças de cena com uso de um limite estático de n e 1/n. Poderíamos, por exemplo, ter duas séries de diferenças médias absolutas abaixo:Sequência a: 3,3 2,3 3,8 22,4 20,3 21,0Sequência b: 8,4 7,3 7,8 1,2 2,2 2,0
[0062] Dividir os valores com o valor anterior rende:Sequência a: 0,7 1,7 9,7 0,9 1,0Sequência b: 0,9 1,1 0,2 1,8 0,9
[0063] Utilizar n = 3 significa que um valor acima 3 ou abaixo de 0,33 indica que uma mudança de cena ocorreu. Nos exemplos acima, detectamos uma nova cena na quarta imagem para ambas as sequências.
[0064] Em modalidades alternativas, os valores designados de acordo com o tipo de macrobloco na tabela 1, conforme utilizados nos métodos acima, são substituídos pelo número de bits utilizados para codificar cada macrobloco.
[0065] Em ainda modalidades adicionais, as diferenças em parâmetro de quantização (QP) podem ser indicativas, também, de uma mudança de cena se o QP cair ou aumentar de repente em uma imagem.
[0066] O parâmetro de quantização (QP) determina o quanto as diferenças entre dois blocos devem ser quantizadas. Cada coeficiente das diferenças de pixel transformadas é quantizado em uma das etapas de quantização determinada pelas tabelas de consultas correspondentes e de QP. Um QP alto significa fidelidade mais baixa das etapas de quantização que resultam em baixa qualidade e um QP baixo significa fidelidade das etapas de quantização que gera uma qualidade mais alta. O QP é, assim, um bom indicador da degradação de qualidade devido à decodificação e é frequentemente utilizado por algoritmos de controle de taxa de bits para maximizar a qualidade levando em conta a taxa de bits disponível. O QP pode ser estabelecido individualmente para cada macro bloco, porém visto que o mesmo é relativamente caro trocar o QP de lá para cá para cada macro bloco, diferenças de QP maiores são geralmente estabelecidas por imagem.
(ii) O USO DE RECURSOS EXTRAÍDOS DA TRANSMISSÃO EM FLUXO CONTÍNUO DE VÍDEO E DADOS DE PIXEL DECODIFICADOS.
[0067] Os métodos acima para detectar uma mudança de cena a partir de informações de transmissão em fluxo contínuo de vídeo podem ser estendidos quando os dados de pixel decodificados estiverem disponíveis para análise. Isso pode ser o caso case em um conversor, que pode decodificar o fluxo de bits de video criptografados a fim de gerar os dados de pixel e exibir o vídeo transmitido em fluxo contínuo. Claro, tal decodificação pode ser realizada em outros nós na rede de distribuição, apesar de isso não ser normalmente feito devido a exigências de processamento e pode não ser possível se a transmissão em fluxo contínuo de vídeo for criptografada.
[0068] É fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens, sendo que o método compreende: calcular, para uma pluralidade de posições, uma diferença entre valores de pixel na mesma posição em imagens sucessivas; aplicar uma ponderação à diferença, em que a ponderação depende do tipo de macrobloco associado à posição; e identificar uma nova cena quando a soma das diferenças ponderadas para uma pluralidade de posições exceder um valor limítrofe.
[0069] Isso é baseado no princípio de que os valores de pixel de duas imagens consecutivas que pertencem à mesma cena irão diferir levemente (visto que a cena representada passa por uma pequena translação, rotação ou redimensionamento de uma imagem para outra) embora a diferença nos valores de pixel seja esperada ser muito mais alta se as duas imagens consecutivas pertencerem a cenas diferentes (isto é, se houver uma mudança de cena entre as duas imagens examinadas).
[0070] Ademais, a motivação de incluir o tipo de macrobloco como um fator de ponderação se origina do fato de que o mesmo fornecer uma indicação da previsibilidade e da redundância temporal entre o local da imagem específico em consideração e sua(s) imagem(s) de referência. Em seguida, a solução é descrita para os modos de codificação de macrobloco especificados no padrão de codificação de vídeo H.264/AVC. No entanto, os mesmos princípios podem ser aplicados a outros padrões de codificação de vídeo com base em bloco.
[0071] É provável que um macrobloco codificado no modo IGNORAR pertença a uma imagem que lembre sua imagem de referência e, portanto, não é uma mudança de cena. De modo similar, o modo de codificação de INTER-16x16 é tipicamente selecionado para os macroblocos que representam regiões uniformes que podem ser previstas de modo muito eficiente e temporal por imagem(s) anterior(es). Logo, é evidente novamente que é menos provável que esses macroblocos apareçam em um quadro que é uma mudança de cena.
[0072] Por outro lado, o modo de codificação INTRA-4x4 é geralmente selecionado para aqueles macroblocos que exibem redundância temporal muito baixa com seus estimadores espacial e temporal. Portanto, é provável que esses macroblocos apareçam em um quadro que é uma mudança de cena.
[0073] Consequentemente, a diferença em valores de pixel de imagens subsequentes é ponderada de acordo com o tipo de macrobloco. Em particular, quando um macrobloco é dividido em sub-blocos, espera-se que valores de pixel colocados terão mudados da imagem anterior para a imagem atual, e então as diferenças de pixel associadas a tais tipos de macro bloco recebem uma ponderação aumentada. Os macroblocos de Ignorar (e, em menor grau, intra e intermacroblocos de tamanho completo) são esperados assumirem valores de pixel colocados muito similares entre o quadro atual e o quadro anterior, e então qualquer diferença de valor de pixel para esses macroblocos recebe uma ponderação menor.
[0074] Um fluxograma que ilustra esse método, conforme aplicado em duas imagens sucessivas em um vídeo transmitido em fluxo contínuo, é mostrado na Figura 4. Em 410 as posições de imagem que serão comparadas são selecionadas. Para algumas implantações, cada local de imagem pode ser comparado, mas para outras um subconjunto é selecionado de acordo ou com um padrão predeterminado ou mesmo um padrão aleatório. Em 420, a diferença nos valores de pixel entre as duas imagens é calculada em cada uma das posições selecionadas. Em 430, uma ponderação é aplicada às diferenças calculadas, em que a ponderação depende do tipo de macrobloco utilizadas para codificar os valores de pixel de cada posição na última das imagens. Em 440, essas diferenças ponderadas são somadas. Em 450, a diferença total é comparada a um valor limítrofe. Se a diferença total exceder o valor limítrofe então é determinado que uma mudança de cena ocorreu.
[0075] A diferença ponderada entre valores de pixel em posição colocada em duas imagens consecutivas é examinada. Mais especificamente, deixar Pkn denotar o valor de pixel na m-ésima fileira e na n-ésima coluna da k-ésima imagem. Então, a diferença entre a imagem em consideração e a imagem anterior é computada como
[0076] Como uma alternativa, esse método pode ser estendido de modo que a diferença seja computada é entre a imagem atual e a imagem anterior de movimento compensada para responder pelo movimento entre as imagens sucessivas. Ademais, qualquer outra métrica de distorção poderia ser utilizada, tal como, por exemplo, a soma de diferenças absolutas ou a soma de diferenças quadradas.
[0077] Utilizar a diferença ou a diferença de movimento compensado, a diferença de pixels na imagem atual conforme comparado com a imagem anterior é ponderada com base no tipo de macrobloco ao qual os pixels na imagem atual pertencem. Um exemplo de ponderações designadas a cada tipo de macrobloco é fornecido na Tabela 2.
Tabela 2: Ponderações com base no tipo de macrobloco
[0078] Assim, para cada imagem, a seguinte soma de ponderação é computada:
[0079] Subsequentemente, a soma ponderada é comparada a um limite Tscene para determinar se a imagem examinada é o início de uma nova cena ou não. Se a diferença computada exceder o limite, então a imagem atual é denotada como uma mudança de cena.
iii) O USO DE INFORMAÇÕES DE CABEÇALHO DE PACOTE DE SINAIS DE VÍDEO CODIFICADOS.
[0080] Em alguns casos, junto com uma trajetória de transmissão do vídeo transmitido em fluxo contínuo, as únicas informações disponíveis para determinar as mudanças de cena são os cabeçalhos de pacote que transportam o sinal de vídeo. Nesse caso, o tamanho e o tipo de cada imagem podem ser computados extraindose informações dos cabeçalhos de pacote.
[0081] Consequentemente, é fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens, sendo que o método compreende: determinar o tamanho codificado de uma imagem; determinar o tipo de imagem da imagem; e identificar uma nova cena quando o tamanho de imagem codificada exceder um limite para o tipo de imagem detectado.
[0082] O método é ilustrado por um fluxograma na Figura 5. Em 510 o tamanho de imagem codificada é determinado a partir dos cabeçalhos de pacote do fluxo de bits de vídeo. Em 520, o tamanho de imagem é utilizado para determinar o tipo de imagem. Isso é possível devido ao fato de que os tamanhos de diferentes tipos de imagem se encontram em faixas identificáveis, conforme será explicado abaixo. Então, em 530, o tamanho de imagem de uma l-imagem é comparado a um critério limítrofe, em que o critério limítrofe depende do tipo de imagem determinado. Uma mudança de cena é detectada quando o tamanho de um tipo de imagem fizer uma mudança significativa. Uma mudança de cena pode ser detectada quando o tamanho de um tipo de imagem exceder um valor limítrofe. O valor limítrofe pode ser: predeterminado; predeterminado e dependente dos parâmetros de codificação da transmissão em fluxo contínuo de vídeo; ou determinado de acordo com os tamanhos de imagens recentemente recebidas de um ou mais tipos.
[0083] O tipo de imagem é determinado a partir do tamanho de cada imagem. A Figura 6 ilustra um exemplo de como isso pode ser feito. O gráfico 600 mostrado na Figura 6 mostra o tamanho de imagem para uma série de 60 imagens, numerados de 0 a 59. O número de imagem é mostrado no eixo horizontal 610, o tamanho de imagem é mostrado no eixo vertical 620. As l-imagens, P-imagens e B-imagens são mostradas de acordo com a chave no canto superior esquerdo do gráfico 600. Conforme mostrado na Figura 6, as l-imagens são maiores que as P-imagens e as P-imagens são maiores que as B-imagens. Como é evidente a partir da Figura 6, o tamanho codificado das l-imagens se encontra em uma primeira faixa 601, os tamanhos codificados das P-imagens se encontram em uma segunda faixa 602 e os tamanhos codificados das B-imagens se encontram em uma terceira faixa 603.
[0084] Alternativamente, o tipo de imagem pode ser determinado a partir de informações de cabeçalho de pacote com uso de seu tamanho e o padrão GOP do fluxo de bits de vídeo examinado. Tal método é descrito no Pedido de Patente Europeu de Número 2010171431.9, incorporado ao presente documento a título de referência. O padrão GOP é estimado através da correspondência de padrão dos tamanhos de quadro encontrados em cada GOP com padrões GOP típicos predefinidos. Com o conhecimento desse padrão GOP, o tipo de cada quadro subsequente pode ser estimado.
[0085] Esse método de determinação de tipo de imagem alternativo compreende: a. capturar os tamanhos de quadro (em bytes) de cada quadro de vídeo subsequente a um Intraquadro inicial, l-quadro, para obter uma matriz de tamanhos de quadro; b. converter, após um número de quadros, a matriz de tamanhos de quadro em uma matriz de zeros e uns, em que zero representa tamanho de quadro pequeno, conforme suposto para quadros bidirecionais, B-quadros, e um representa tamanhos de quadro grandes, conforme suposto para quadros preditivos, P-quadros; c. corresponder a matriz de zeros e uns obtidas em (b) a um número de padrões predefinidos de binários, sendo que os ditos padrões predefinidos de binários representam estruturas de GOP possíveis; d. converter o resultado da dita etapa de correspondência na etapa (c) para formar um único valor de pontuação; e e. determinar o padrão particular do número de padrões predefinidos de binários que têm o melhor valor de pontuação, de acordo com uma métrica predefinida.
[0086] Esse método alternativo não determina o tipo de quadro com base no tamanho de quadro de um único quadro, porém considera uma pluralidade de quadros e seus tamanhos de quadro respectivos para corresponder os mesmos a padrões predefinidos, e a partir dessa correspondência determina a estrutura do GOP e assim o tipo de cada imagem.
[0087] A Figura 6 é meramente uma ilustração; a primeira, segunda e terceira faixas dependem do número de fatores, que incluem a resolução de vídeo, os parâmetros de codificação e a complexidade espaço-temporal do conteúdo. No entanto, a diferença relativa entre os três tipos da imagem é uma característica dessa codificação com base em bloco e as faixas podem ser derivadas das imagens imediatamente anteriores.
[0088] Em seguida, é fornecida uma explicação detalhada de um procedimento de detecção de mudança de cena que incorpora o método descrito acima. Esse procedimento é ilustrado pelo fluxograma na Figura 7. Tipicamente, uma nova cena irá iniciar com uma l-imagem, e então esse procedimento é aplicado a cada I- imagem detectada em uma transmissão em fluxo contínuo de vídeo para determinar se é o início de uma nova cena.
[0089] O fluxo de bits de vídeo é recebido e em 710 a computação de tamanho de imagem e tipo de imagem é realizada conforme descrito acima. Em 720, o tamanho da perda é normalizado com base nos tamanhos das P-imagens anteriores para refletir as mudanças de conteúdo nas imagens mais recentes. O novo tamanho normalizado l_kAnorm da perda é gerado por:
em que Fk denota o tamanho da k-ésima l-imagem e o fator de redimensionamento scale_factork é gerado por:
em que Fk é o tamanho de imagem da k-ésima imagem P no GOP atual e M é o número total de imagens P no GOP atual.
[0090] Em 730, a razão do tamanho de imagem da l-imagem atual e o tamanho de imagem normalizado de sua l-imagem anterior é computada:
[0091] Além disso, a razão dos tamanhos de P-imagem antes e após a l-imagem atual ser computada:
[0092] e a razão dos tamanhos de B-imagem antes e após a l-imagem atual:
[0093] Em 740 uma determinação é feita quanto a se a razão r/ é maior que um valor predeterminado T_l_high ou é menor que outro valor T l low. Exemplos de cada um dos valores limítrofes predeterminados “T” referidos no presente documento são dados na tabela 3 mais abaixo.
[0094] Se a razão r/ for maior que um valor predeterminado T_l_high ou é menor que outro valor T_l_low, então uma determinação adicional 750 é feita. Em 750, é determinado se rk<Tp,baixo, ou rkp> Tp,ait0, ou rkB< TB.baixo> ou rkB> TB.aito- Se qualquer uma dessas condições é satisfeita, então em 780 a l-imagem atual é determinada a ser o início de uma nova cena. Se nenhuma dessas condições for satisfeita, a I- imagem atual é determinada a não iniciar uma nova cena e o processo procede em 790 para a próxima l-imagem.
[0095] Se a razão r/ não for nem maior que um valor predeterminado T_l_high nem for menor que outro valor T_l_low, então uma determinação adicional 760 é feita. Em 760, é determinado se rk>T|,médio-aito, ou rk< Ti,médio-baixo- Se nenhuma dessas condições for satisfeita, então a l-imagem atual é determinada não iniciar uma nova cena e então procede em 790 para a próxima l-imagem. Se alguma das condições na determinação 760 for satisfeita, então o processo procede para a determinação 770.
[0096] Em 770, é determinado se rkp<Tp,médio-baixo, ou rkp>Tp.médio-aito, ourkB<TB,médio-baixo, ou rB>TBmédio-aito- Se qualquer uma dessas condições for satisfeita, então em 780 a imagem I atual é determinada a ser o início de uma nova cena. Se nenhuma dessas condições for satisfeita, então a l-imagem atual é determinada a não iniciar uma nova cena e o processo procede em 790 para a próxima l-imagem.
[0097] A partir do que foi dito acima, pode-se observar que uma l-imagem é denotada como um corte de cena se ou a condição (a) ou a condição (b) for satisfeita: 3) kfc > Ti.aito ou rk< T|,baixo] θ l^k < Tp baixo θU T"k> TpaltoθU Tk< TβbaixoθU Tk> Tβ baixo] b) [P/c •* T|,médio-alto OU Tk< T|.médio-baixo] θ [?k < Tp,médio-baixo OU rfe> Tp médio-alto OU Tk< Tβ médio-baixo OU Tk> Tβ médio-alto]
[0098] Em todos os outros casos, a l-imagem atual não é denotada como uma mudança de cena.
[0099] Os valores dos limites mencionados anteriormente são dados na Tabela 3. Outros valores limítrofes podem ser utilizados.
Tabela 3: Valores limítrofes para detecção de corte de cena
(iv) O USO DE INFORMAÇÕES DE CABEÇALHO DE PACOTE E OS DADOS DE PIXEL DECODIFICADOS.
[00100] Nesse método, a mudança de cena é detectada explorando-se informações tanto dos cabeçalhos de pacote que transportam o sinal de vídeo quanto dos valores de pixel (ou recursos extraídos dos valores de pixel). Conforme explicado acima na seção (ii) os dados de pixel decodificados estão disponíveis para analise em, por exemplo, um conversor. Adicionalmente, tal decodificação pode ser realizada em outros nós na rede de distribuição, apesar de normalmente isso não ser feito devido a exigências de processamento, e pode não ser possível se a transmissão em fluxo contínuo de vídeo for criptografada.
[00101] Esse método utiliza os valores de pixel para determinar uma diferença entre duas imagens, se a diferença for significativa então é determinado que uma mudança de cena ocorreu entre as duas imagens. O presente método incorpora nisso que é mais provável que uma mudança de cena ocorra com uma l-imagem, menos provável com uma P-imagem e bem improvável com uma B-imagem. Uma diferença calculada a partir da comparação de posições de pixel entre duas imagens é ponderada para levar isso em consideração.
[00102] Consequentemente é fornecido um método para detectar uma mudança de cena em um vídeo transmitido em fluxo contínuo, em que o vídeo transmitido em fluxo contínuo compreende uma série de imagens, sendo que o método compreende: determinar o tamanho codificado de uma imagem; determinar o tipo de imagem de acordo com o tamanho codificado da imagem; calcular, para uma pluralidade de posições de pixel, uma diferença entre valores de pixel na mesma posição em imagens sucessivas; calcular uma medição de diferença entre imagens sucessivas somando-se as diferenças de pixel; aplicar uma ponderação à medição de diferença entre imagens sucessivas, em que a ponderação depende do tipo de imagem; e identificar uma nova cena quando a diferença ponderada exceder um valor limítrofe.
[00103] Um fluxograma que ilustra esse método é mostrado na Figura 8. Em 810 o tamanho de imagem codificada é determinado a partir dos cabeçalhos de pacote do fluxo de bits de vídeo. Em 820 o tamanho de imagem é utilizado para determinar o tipo de imagem. Isso é possível devido aos tamanhos de diferentes tipos de imagem se encontrarem em faixas identificáveis, conforme explicado acima. Em 830, as posições de imagem que serão comparadas são selecionadas. Para algumas implantações, cada local de imagem pode ser comparado, mas para outras um subconjunto é selecionado de acordo ou com um padrão predeterminado ou mesmo um padrão aleatório. Em 840, a diferença nos valores de pixel entre as duas imagens é calculada em cada uma das posições selecionadas. Em 850, essas diferenças são somadas. Em 860, uma ponderação é aplicada à diferença somada, em que a ponderação depende do tipo de imagem da última das imagens. Em 870, a diferença ponderada é comparada a um valor limítrofe. Se a diferença total exceder o valor limítrofe, então é determinado que uma mudança de cena ocorre com a última das duas imagens.
[00104] Esse método pode ser aplicado quando o fluxo de bits de vídeo for criptografado, quando a extração de recursos diretamente do fluxo de bits de vídeo não seria viável. Apesar da criptografia, as imagens reconstruídas que são finalmente exibidas no dispositivo de exibição são capturadas e exploradas para a detecção de mudança de cena.
[00105] A computação de tipos de imagem e tamanhos que utiliza as informações de cabeçalho de pacote é realizada conforme descrito na seção anterior. Subsequentemente, os valores de pixel de duas imagens subsequentes são examinados para determinar o grau de diferença entre as imagens consideradas. A diferença entre as imagens é ponderada de acordo com o tipo de imagem computada devido ao fato de ser esperado que mudanças de cena terão sido detectadas no estágio de codificação. Portanto, é mais provável que as l-imagens representem o início de novas cenas que P- ou B-imagens.
[00106] Mais especificamente, deixar P^H denotar o valor de pixel na m-ésima fileira e na n-ésima coluna da k-ésima imagem. Então, a diferença entre a imagem em consideração e a imagem subsequente é computada como:
em que k=0,..., K-1, m=0 M, n=0,...N e K,M,N, denotam o número de imagens dasequência de vídeo, o número de fileiras em uma imagem e o número de colunas em uma imagem, respectivamente. Na etapa seguinte, a diferença de pixels nas duas imagens consideradas é ponderada com base no tipo de imagem. Um exemplo das ponderações designadas a cada tipo de macrobloco é fornecida em tabela 4.
Tabela 4: Ponderações com base no tipo de imagem
[00107] Assim, para cada imagem, a seguinte soma ponderada é computada:
[00108] Subsequentemente, a soma ponderada é comparada a um limite para determinar se a imagem examinada é um corte de cena ou não.
[00109] A Figura 9 ilustra um aparelho para realizar os métodos descritos acima. Um fluxo de bits de vídeo é recebido tanto por um decodificador 910 quanto por um analisador de cabeçalho de pacote 920. O decodificador 910 decodifica o fluxo de bits de vídeo e envia o vídeo decodificado, na forma de valores de pixel, para um dispositivo de saída 930. O vídeo decodificado é enviado, também a partir do decodificador 910 para o analisador de informações de pixel 940. Um corte de cena 950 utiliza tanto indicações de tipo de imagem do analisador de cabeçalho de pacote 920 quanto os valores de pixel de diferença do analisador de informações de pixel 940 para fazer uma determinação de quando uma mudança de cena ocorre. O analisador de cabeçalho de pacote 920, o analisador de informações de pixel 940 e o detector de corte de cena 950 podem todos ser incluídos em um processador de propósito geral 960.
[00110] Os métodos de detecção de mudança de cena descritos acima são adequados para uso em um modelo de qualidade. Para obter uma indicação mais robusta, um ou mais dos métodos acima podem ser operados em paralelo. Por exemplo, o mesmo método pode ser operado duas vezes, com uso de critérios diferentes, tal como determinar o custo de codificação de um macrobloco a partir de seus vetores de movimento em um método e então a partir de seu tipo em outro. As indicações independentes de cada um desses métodos podem ser combinadas para se conseguir uma detecção mais robusta de uma mudança de cena.
[00111] Em um modelo de qualidade, uma vez que uma perda de dados é detectada, então uma determinação quanto a se a perda de dados causou impacto em uma imagem no início de uma nova cena pode ser feita. O impacto da perda é integrado na pontuação de qualidade total. Por exemplo, uma grande perda na perda no início de uma nova cena terá um impacto maior na qualidade que uma perda equivalente em comparação com outra imagem.
[00112] Em uma modalidade, o modelo de qualidade é construído com uso de um modelo aditivo. A degradação da perda mudança de cena perda é subtraída, então, da pontuação total de acordo com: MOSest = clean score - packetjoss degradation - scene change loss_degradation
[00113] Em outra modalidade o modelo de qualidade é construído com uso de um modelo multiplicativo. A degradação da perda mudança de cena perda é encontrada, então, por: MOSest = clean score • packetjoss_degradation ■ scene_change loss_degradation
[00114] Em ambos os exemplos acima “packetjossdegradation” e “scene_change_loss_degradation” são valores entre 0 e 1.
[00115] Ficará aparente para o indivíduo de habilidade que a ordem e conteúdo exatos das ações executadas no método descrito no presente documento podem ser alterados de acordo com as exigências de um conjunto particular de parâmetros de execução. Consequentemente, a ordem em que as ações são descritas e/ou reivindicadas não deve ser interpretada como uma limitação estrita na ordem em que as ações devem ser realizadas.
[00116] Adicionalmente, embora exemplos tenham sido oferecidos no contexto de padrões de transmissão de particulares, esses exemplos não são destinados a serem o limite dos padrões de comunicação aos quais o método e aparelho revelados podem ser aplicados.