BR122020014854B1 - Codificação de partição eficaz com elevado grau de liberdade de partição - Google Patents

Codificação de partição eficaz com elevado grau de liberdade de partição Download PDF

Info

Publication number
BR122020014854B1
BR122020014854B1 BR122020014854-3A BR122020014854A BR122020014854B1 BR 122020014854 B1 BR122020014854 B1 BR 122020014854B1 BR 122020014854 A BR122020014854 A BR 122020014854A BR 122020014854 B1 BR122020014854 B1 BR 122020014854B1
Authority
BR
Brazil
Prior art keywords
encoding
block
partition
image
prediction
Prior art date
Application number
BR122020014854-3A
Other languages
English (en)
Inventor
Philipp Merkle
Christian BARTNIK
Haricharan LAKSHMAN
Detlev Marpe
Karsten MÜLLER
Thomas Wiegand
Gerhard Tech
Original Assignee
Ge Video Compression, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ge Video Compression, Llc filed Critical Ge Video Compression, Llc
Publication of BR122020014854B1 publication Critical patent/BR122020014854B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/23Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with coding of regions that are present throughout a whole video segment, e.g. sprites, background or mosaic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation

Abstract

Apesar de a partição wedgelet parecer representar um melhor compromisso entre o grau de informação complementar por um lado, e variedade atingível em possibilidades de partição por outro, comparadas com partição de contorno, a capacidade em mitigar os constrangimentos de partição ao ponto de as partições terem de ser partições wedgelet, permite a aplicação de uma análise estatística relativamente não complexa na informação de textura de amostra espacialmente sobreposta de modo a obter um bom preditor para a bissegmentação em um mapa de profundidade/disparidade. Assim, de acordo com um primeiro aspeto, é exatamente o aumento da liberdade que mitiga a sinalização complementar desde que a informação de textura co-localizada sob a forma de uma imagem se encontre presente. Outro aspeto dá a possibilidade de salvaguardar o grau de informação complementar envolvido na sinalização de um respectivo modo de codificação que suporta partição irregular.

Description

DESCRIÇÃO
[001] Esta invenção diz respeito a codificação de uma série de amostras utilizando partição de blocos contour ou partição de blocos permitindo um elevado grau de liberdade.
[002] Muitos esquemas de codificação comprimem dados de séries de amostras utilizando uma divisão da série de amostras em blocos. A série de amostras pode definir uma amostragem espacial de textura, ou seja, imagens, mas claro que outras séries de amostras podem ser comprimidas utilizando técnicas de codificação idênticas, tais como mapas de profundidade e outros idênticos. Devido à diferente natureza da informação de amostragem espacial pela respectiva série de amostras, diferentes conceitos de codificação são mais adequados para os diferentes tipos de séries de amostras. Independentemente do tipo de série de amostras, contudo, muitos destes conceitos de codificação utilizam fracionamento de blocos de modo a atribuir opções de codificação individual aos blocos da série de amostras, encontrando desse modo um bom compromisso entre velocidade de informação paralela para codificação dos parâmetros de codificação atribuídos aos blocos individualmente, por um lado, e à velocidade de codificação residual para codificação da predição residual devido à predição errada do respectivo bloco, ou encontrar um bom compromisso no sentido de velocidade/distorção, com ou sem codificação residual.
[003] Sobretudo, os blocos são de forma retangular ou quadrática. Obviamente, seria vantajoso ser possível adaptar a forma das unidades de codificação (blocos) ao conteúdo da série de amostras a serem codificadas. Infelizmente, contudo, adaptar a forma dos blocos ou unidades de codificação ao conteúdo da série de amostras envolve gastar informação paralela adicional para sinalização do bloco de partição. A partição de blocos do tipo wedgelet foi considerada como um compromisso adequado entre as possíveis formas de partição de blocos, e a informação paralela complementar envolvida. A partição do tipo wedgelet conduz a uma partição dos blocos em partições wedgelet para as quais, por exemplo, podem utilizados parâmetros de codificação específicos.
[004] Contudo, mesmo a restrição à partição wedgelet conduz a uma quantidade significativa de informação complementar adicional para sinalizar a partição de blocos, e, consequentemente, seria vantajosa a existência de um conceito de codificação mais eficaz que permitisse um grau mais elevado de liberdade na partição de blocos na codificação da série de amostras de uma maneira mais eficaz.
[005] Esta finalidade é obtida através do tema das reivindicações independentes em anexo.
[006] A ideia principal subjacente a esta invenção é a de que apesar de o particionamento baseado em wedgelet parecer representar melhor o compromisso entre a taxa de informação paralela por um lado e variedade atingível nas possibilidades de partição por outro lado, comparado com a partição contour, a capacidade de mitigar as restrições ao ponto em que as partições têm de ser partições wedgelet, permite a aplicação de análise estatística relativamente não complexa em informação de textura de amostras sobreposta de modo a derivar um bom preditor para a bissegmentação em um mapa de profundidade/disparidade. Assim, de acordo com um primeiro aspeto, é exatamente o aumento da liberdade que mitiga a informação complementar sinalizado desde que informação de textura co-localizada sob a forma de uma imagem se encontre presente.
[007] Outro pensamento no qual um outro aspeto desta invenção é baseado, é o de que a ideia agora mesmo descrita de acordo com a qual a derivação de uma bissegmentação baseada em um bloco de referência co-localizada em uma imagem com posterior transferência da bissegmentação no bloco atual do mapa de profundidade/disparidade é apenas razoável na probabilidade de obter uma boa aproximação do conteúdo do bloco atual do mapa de profundidade/disparidade é suficientemente elevado de modo a justificar a reserva de um valor previamente determinado de um codificador de opção de codificação correspondente de modo a ativar este modo de transferência de bissegmentação. Por outras palavras, a informação paralela pode ser salva evitando a necessidade de ter o respectivo valor previamente determinado do identificador de opção de codificação para o bloco atual do mapa de profundidade/disparidade em consideração quando a codificação de entropia deste identificador de opção de codificação no caso da respectiva transferência de bissegmentação é muito provável que não seja selecionada de qualquer maneira.
[008] Outros aspetos secundários são objeto das reivindicações dependentes.
[009] Modelos preferidos desta invenção são de seguida descritos com maior detalhe relativamente às figuras, entre as quais:
[010] A Fig. 1 ilustra um diagrama de blocos de um codificador multi-janelas nas quais os modelos desta invenção podem ser construídas de acordo com um exemplo;
[011] A Fig. 2 ilustra um esquema de uma porção de um sinal multi-janelas para ilustração de informação a reutilizar por janelas e limites de profundidade/disparidade vídeo;
[012] A Fig. 3 ilustra um diagrama de blocos de um descodificador adequado à Fig. 1;
[013] A Fig. 4 ilustra uma partição wedgelet de um bloco quadrático em espaço de sinal contínuo (esquerda) e discreto (direita);
[014] A Fig. 5 ilustra uma ilustração de esquema das seis diferentes orientações de partições de blocos Wedgelet;
[015] A Fig. 6 ilustra um Exemplo de padrões de partição Wedgelet para blocos de dimensões 4 x 4 (à esquerda), 8 x 8 (ao centro) e 16 x 16 (à direita);
[016] A Fig. 7 ilustra uma abordagem do sinal de profundidade com o modelo Wedgelet combinando informação de partição e CPVs (valor médio do sinal de profundidade nas áreas de partição);
[017] A Fig. 8 ilustra uma geração de um padrão de partição Wedgelet;
[018] A Fig. 9 ilustra uma partição de contorno de um bloco quadrático em espaço de sinal contínuo (esquerda) e discreto (direita);
[019] A Fig. 10 ilustra um exemplo de padrão de partição de Contorno para o bloco com as dimensões de 8 x 8;
[020] A Fig. 11 ilustra uma abordagem do sinal de profundidade com modelo de Contorno através da combinação de informação de partição e CPVs (valor médio do sinal de profundidade nas áreas de partição);
[021] A Fig. 12 ilustra uma intra-predição de partição Wedgelet (a azul) para os cenários que o bloco de referência em cima é do tipo partição Wedgelet (à esquerda) ou intra direção regular (à direita);
[022] A Fig. 13 ilustra uma predição de informação de partição Wedgelet (a azul) e Contour (a verde) da referência de luma textura;
[023] A Fig. 14 ilustra CPVs de partições de bloco: predição CPV de amostras adjacentes de blocos vizinhos (à esquerda) e através da secção do bloco (à direita), ilustrando uma relação entre diferentes tipos de CPV;
[024] A Fig. 15 ilustra um modo de pré-seleção com base na variante luma textura;
[025] A Fig. 16 ilustra um diagrama de blocos de um descodificador de acordo com um modelo;
[026] A Fig. 17 ilustra um diagrama de blocos de um codificador adequado à Fig. 16;
[027] A Fig. 18 ilustra um diagrama de blocos de um descodificador de acordo com um modelo;
[028] A Fig. 19 ilustra um diagrama de blocos de um codificador adequado à Fig. 18;
[029] A Fig. 20 ilustra um diagrama de blocos de um descodificador de acordo com um modelo;
[030] A Fig. 21 ilustra um diagrama de blocos de um codificador adequado à Fig. 20;
[031] A Fig. 22 ilustra um diagrama de blocos de um descodificador de acordo com um modelo;
[032] A fig. 23 ilustra um diagrama de blocos de um codificador adequado à Fig. 22;
[033] A Fig. 24 ilustra um diagrama de blocos de um descodificador de acordo com um modelo; e
[034] A Fig. 25 ilustra um diagrama de blocos de um codificador adequado à Fig. 24.
[035] As descrições que se seguem dos modelos preferidos desta invenção começam com um possível ambiente no qual modelos desta invenção podem ser vantajosamente aplicados. Em especial, um codificador-decodificador (codec) multi- janelas de acordo com um modelo é descrito em relação às Figs. 1 a 3. Contudo, dever-se-á realçar que os modelos mais adiante descritos não se limitam à codificação multi-janelas. Contudo, alguns aspetos descritos mais à frente podem ser melhor entendido, e ser dotados de sinergias especiais, quando utilizados com codificação multi-janelas, ou, para se ser mais preciso, em especial com a codificação de mapas de profundidade. Por consequência, após as Figs. 1 a 3, a descrição prossegue com uma introdução a uma partição de blocos irregular e os problemas com isso implicados. Esta descrição diz respeito às Figs. 4 a 11 e forma uma base para a descrição dos modelos desta invenção descritos depois.
[036] Tal como mencionado, os modelos posteriormente resumidos utilizam partição de blocos não-retangular ou irregular e funções de modelação em aplicações de codificação de imagem e de vídeo e são especialmente aplicáveis à codificação de mapas de profundidade, tais como para a representação da geometria da cena, apesar de estes modelos serem também aplicáveis a codificação de imagem e vídeo convencional. Os modelos resumidos posteriormente fornecem um conceito para a utilização de partição de blocos não-retangular e funções de modelação em aplicações de codificação de imagem e de vídeo. Os modelos são especialmente aplicáveis à codificação de mapas de profundidade (para representarem a geometria da cena), mas também aplicáveis a codificação de imagem e de vídeo convencional.
[037] Na codificação de vídeo multi-janelas, duas ou mais janelas da cena de vídeo (simultaneamente capturadas por várias câmaras) são codificadas em um único fluxo de dados. O objetivo principal da codificação de vídeo é proporcionar ao utilizador final uma experiência multimédia avançada através da oferta de uma impressão de visualização em 3D. Se forem codificadas duas imagens, as duas sequências de vídeo reconstruídas podem ser apresentadas em um ecrã estéreo convencional (com óculos). Contudo, a utilização necessária de óculos para ecrãs estéreo convencionais é muitas vezes aborrecida para o utilizador. Permitir uma impressão de visualização em estéreo de alta qualidade é atualmente um importante tópico na investigação de desenvolvimento. Uma técnica promissora para tais ecrãs autoestereoscópicos tem como base sistemas de lentes lenticulares. Em princípio, uma série de lentes cilíndricas é instalada em um ecrã convencional de modo que sejam apresentadas várias imagens da cena de vídeo ao mesmo tempo. Cada imagem é apresentada em um pequeno cone, de modo que cada olho do utilizador veja uma imagem diferente. Este efeito cria a impressão estéreo sem óculos especiais. Contudo, tais ecrãs autoestereoscópicos exigem habitualmente 10 a 30 imagens da mesma cena de vídeo (ainda mais imagens podem ser necessárias se a tecnologia for melhorada). Podem também ser utilizadas 2 imagens para dar ao utilizador a possibilidade de interativamente selecionar a perspectiva da cena de vídeo. Mas a codificação de várias imagens de uma cena de vídeo aumenta drasticamente o débito binário em comparação com vídeo de visualização única convencional (2D). Habitualmente, o débito binário aumenta aproximadamente de modo linear com o número de visualizações codificadas. Um conceito para reduzir a quantidade de dados transmitidos para visualizações autoestereoscópicas consiste na transmissão de apenas um pequeno número de imagens (talvez 2-5 imagens), mas transmitindo adicionalmente os chamados mapas de profundidade, que representam a profundidade (distância do objeto real até à câmara) das amostras de imagens para uma ou mais imagens. Dado um pequeno número de imagens codificadas com os respectivos mapas de profundidade, imagens intermédias de alta qualidade (imagens virtuais que se encontram entre as imagens codificadas), e até um certo ponto também imagens adicionais a uma ou ambas as extremidades da série da câmara, podem ser criadas no lado do receptor por técnicas de representação adequadas.
[038] Na codificação de imagem e de vídeo de ponta, as imagens ou conjuntos específicos de séries de amostras para as imagens são habitualmente decompostos em blocos, que depois são associados a parâmetros de codificação especiais. As imagens são habitualmente compostas por séries de amostras (luminância e crominância). Além disso, uma imagem pode também ser associada a séries de amostras auxiliares adicionais, que podem, por exemplo, especificar informação de transparência ou mapas de profundidade. Cada imagem ou fila de amostras é habitualmente decomposta em blocos. Os blocos (ou os blocos correspondentes de séries de amostras) são previstos seja por predição inter-imagens ou predição intra- imagens. Os blocos podem ter diferentes dimensões e podem ser quadráticos ou retangulares. A partição de uma imagem em blocos pode ser fixa por sintaxe, ou pode ser, pelo menos parcialmente, sinalizada no interior do fluxo de dados. Muitas vezes os elementos de sintaxe são transmitidos para assinalar a divisão por blocos de diferentes dimensões. Tais elementos de sintaxe podem especificar se e como um bloco é dividido em pequenos blocos e ser associado a parâmetros de codificação, por exemplo para fins de predição. Para todas as amostras de um bloco (ou os blocos correspondentes de séries de amostras), a descodificação dos parâmetros de codificação associados é especificada de uma certa maneira. Em um exemplo, todas as amostras em um bloco são previstas utilizando o mesmo conjunto de parâmetros de predição, tais como referências cruzadas (identificando uma imagem de referência no conjunto das imagens já codificadas), parâmetros de movimento (especificando uma medida para o movimento de um bloco entre uma imagem de referência e a imagem atual), parâmetros para especificação do filtro de interpolação, modos de intra-predição, etc. Os parâmetros de movimento podem ser representados por vetores de deslocamento com um componente horizontal e vertical ou por parâmetros de movimento de ordem superior tais como parâmetros de movimento afim compostos por seis componentes. É também possível que mais do que um conjunto de parâmetros de predição especiais (tais como referências cruzadas e parâmetros de movimento) sejam associados a um único bloco. Nesse caso, para cada conjunto destes parâmetros de predição especiais, é gerado um único sinal de predição intermédio para o bloco (ou blocos correspondentes das séries de amostras), e o sinal de predição final é construído por uma combinação incluindo sobrepondo os sinais de predição intermédios. Os parâmetros de ponderação correspondentes e potencialmente também um desvio constante (adicionado à soma de ponderação) podem ser fixados em uma imagem, ou uma imagem de referência, ou um conjunto de imagens de referência, ou podem também incluir no conjunto de parâmetros de predição para o bloco correspondente. A diferença entre blocos originais (ou os blocos correspondentes das séries de amostras) e dos seus sinais de predição, também referidos como o sinal residual, é habitualmente transformada e quantificada. Muitas vezes, uma transformação a duas dimensões é aplicada ao sinal residual (ou à série de amostras correspondentes para o bloco residual). Para codificação por transformação, os blocos (ou os blocos correspondentes de séries de amostras), para os quais foi utilizado um conjunto de parâmetros de predição, podem ser ainda adicionalmente divididos antes da aplicação de transformação. Os blocos da transformação pode ser igual a ou mais pequena que os blocos utilizados na predição. É também possível que o bloco da transformação inclua mais do que um dos blocos utilizados para a predição. Diferentes blocos de transformação podem ter diferentes dimensões e os blocos de transformação pode representar blocos quadráticos ou retangulares. Após a transformação, os coeficientes da transformação resultantes são quantificados e são obtidos os designados níveis de coeficiente de transformação. Os níveis de coeficiente de transformação, assim como os parâmetros de predição e, caso existam, a informação de divisão, são entropia codificada.
[039] Também as técnicas de codificação de ponta, tais como ITU-R Rec. H.264 I ISO/IEC JTC 1 14496-10 ou o atual modelo de trabalho para HEVC são também aplicáveis a mapas de profundidade, as ferramentas de codificação foram especialmente concebidas para a codificação do vídeo natural. Mapas de profundidade possuem diferentes características como imagens de uma sequência de vídeo natural. Por exemplo, mapas de profundidade contêm menos detalhe espacial. São principalmente caracterizadas por arestas vivas (que representam o limite do objeto) e grandes áreas de valores de amostras quase constantes ou pouco variáveis (que representam áreas do objeto). A eficiência geral da codificação de codificação de vídeo multi-janelas com mapas de profundidade pode ser melhorada se os mapas de profundidade forem codificados com maior eficiência através da aplicação de ferramentas de codificação especialmente concebidas para explorar as propriedades dos mapas de profundidade.
[040] De modo a servir como uma base para um possível ambiente de codificação, no qual os modelos posteriormente esclarecidos desta invenção podem ser vantajosamente utilizados, um possível conceito de codificação multi-janelas é descrito em baixo relativamente às Figs. 1 a 3.
[041] A Fig. 1 ilustra um codificador para codificar um sinal multi-janelas de acordo com um modelo. O sinal multi-janelas da Fig. 1 é ilustrativamente indicado em (10) como compreendendo duas imagens 121 e 122, apesar de o modelo da Fig. 1 ser também viável com um elevado número de imagens. Ainda, de acordo com o modelo da Fig. 1, cada imagem 121 e 122 compreende um vídeo (14) e mapas de dados de profundidade/disparidade (16), apesar de muitos dos princípios vantajosos dos modelos adicionalmente descritos a seguir poderem também ser vantajosos caso utilizados em relação aos sinais multi-janelas com imagens não compreendendo quaisquer mapas de dados de profundidade/disparidade.
[042] O vídeo (14) das respectivas imagens 121 e 122 representa uma amostra espaço temporal de uma projeção de uma cena comum ao longo de diferentes direções projeção/visualização. De preferência, a taxa de amostragem temporal dos vídeos (14) das imagens 121 e 122 são iguais apesar de este constrangimento não ter de ser necessariamente preenchido. Tal como ilustrado na Fig. 1, cada vídeo (14) compreende de preferência uma sequência de imagens com cada imagem associada a um respectivo carimbo da hora t, t - l, t - 2, ... . Na Fig. 1 as imagens de vídeo são indicadas por Vview em umber, time stamp em umber. Cada imagem Vi,t representa uma amostra espacial da cena i ao longo da direção da respectiva imagem no respectivo carimbo da hora t, e assim compreender uma ou mais séries de amostras tais como, por exemplo, uma série de amostras para amostras de luma e duas séries de amostras com amostras de croma, ou simplesmente amostras de luminância ou séries de amostras para outros elementos de cor, tais como elementos de cor de um espaço de cor RGB ou outro idêntico. A resolução espacial de uma ou mais séries de amostras pode diferir ambas de um vídeo (14) e de vídeos (14) de diferentes imagens 121 e 122.
[043] Do mesmo modo, os mapas de dados de profundidade/disparidade (16) representam uma amostra espaço-temporal da profundidade dos objetos da cena da cena comum, medida ao longo da respectiva direção de visualização das imagens 121 e 122. A taxa de amostra temporal dos mapas de dados de profundidade/disparidade pode ser igual à taxa de amostra temporal do vídeo associado à mesma imagem tal como representado na Fig. 1, ou pode ser diferente disso. No caso da Fig. 1, cada imagem de vídeo v tem associado a ela um respectivo mapa de profundidade/disparidade d dos mapas de dados de profundidade/disparidade (16) das respectivas imagens 121 e 122. Por outras palavras, no exemplo da Fig. 1, cada imagem de vídeo vi,t da imagem i e do carimbo da hora t possui um mapa de profundidade/disparidade di,t a ela associado. Em relação à resolução espacial dos mapas de profundidade/disparidade d, o mesmo aplica-se tal como esclarecido em cima em relação às imagens de vídeo. Ou seja, a resolução espacial pode ser diferente entre os mapas de profundidade/disparidade de diferentes imagens.
[044] De modo a comprimir o sinal multi-janelas (10) com eficácia, o codificador da Fig. 1, codifica paralelamente as imagens 121 e 122 em um fluxo de dados (18). Contudo, os parâmetros de codificação utilizados para codificarem a primeira imagem 121 são reutilizados para adotarem o mesmo que, ou predizer, os segundos parâmetros de codificação a serem utilizados na codificação da segunda imagem 122. Através desta medida, o codificador da Fig. 1 explora o fato, de acordo com o qual a codificação paralela das imagens 121 e 122 resulta em o codificador determinar os parâmetros de codificação para estas imagens do mesmo modo, de modo que redundâncias entre estes parâmetros de codificação podem ser explorados com eficácia de modo a aumentar a taxa de compressão ou razão de taxa/distorção (com distorção medida, por exemplo, como uma distorção média de ambas as imagens e a taxa medida como uma taxa de codificação de todo o fluxo de dados (18)).
[045] Em especial, o codificador da Fig. 1 é habitualmente indicado pelo sinal de referência (20) e compreende uma entrada para receber o sinal multi-janelas (10) e uma saída para fazer sair o fluxo de dados (18). Tal como pode ser visto na Fig. 2, o codificador (20) da Fig. 1 compreende dois ramos de codificação por imagem 121 e 122, em especial uma para os dados de vídeo e outra para os mapas de dados de profundidade/disparidade. Por conseguinte, o codificador (20) compreende um ramo de codificação 22v,1 para os dados de vídeo da imagem 1, um ramo de codificação 22d,1 para os mapas de dados de profundidade/disparidade da imagem 1, um ramo de codificação 22v,2 para os dados de vídeo da segunda imagem e um ramo de codificação 22d,2 para os mapas de dados de profundidade/disparidade da segunda imagem. Cada um destes ramos de codificação (22) é construído do mesmo modo. Para descrever a construção e funcionalidade do codificador (20), a descrição que se segue inicia com a construção e funcionalidade do ramo de codificação 22v,1. Esta funcionalidade é comum em todos os ramos (22). Mais tarde, são discutidas as características individuais dos ramos (22).
[046] O ramo de codificação 22v,1 tem como finalidade codificar o vídeo 141 da primeira imagem 121 do sinal multi-janelas (12), e por conseguinte, o ramo 22v,1 é dotada de uma entrada para a recepção de vídeo 141. Para além disso, o ramo22v,1 compreende, ligado em série entre si na ordem mencionada, um subtrator (24), um módulo de quantificação/transformação (26), um módulo de requantificação/transformação inversa (28), um somador (30), um módulo de tratamento adicional (32), uma imagem tampão descodificada (34), dois módulos de predição (36) e (38) que, por seu lado, se encontram paralelamente ligados entre si, e um combinador ou seletor (40) que se encontra ligado entre as entradas dos módulos de predição (36) e (38) por um lado, invertendo a entrada do subtrator (24) por outro. A saída do combinador (40) encontra-se também ligada a uma entrada adicional do somador (30). A entrada não invertida do subtrator (24) recebe o vídeo (14).
[047] Os elementos 24 a 40 do ramo de codificação 22v,1 cooperam de modo a codificarem o vídeo (141). A codificação codifica o vídeo (141) em unidades de certas porções. Por exemplo, ao codificar o vídeo 141, as imagens v1,k são cortadas em segmentos tais como blocos ou outros grupos de amostras. A segmentação pode ser constante no tempo ou pode variar no tempo. Além disso, a segmentação pode ser conhecida para codificar e descodificar por defeito ou pode ser sinalizada no fluxo de dados (18). A segmentação pode ser uma segmentação regular das imagens em blocos tal como uma disposição não sobreposta de blocos em linhas e colunas, ou pode ser uma segmentação de árvore quad em blocos de diversas dimensões. Um segmento de codificação atual do vídeo 141 a entrar na entrada não invertida do subtrator (24) é designado um bloco atual do vídeo 141 na seguinte descrição das Figs. 1 a 3.
[048] Os módulos de predição (36) e (38) têm como objetivo predizer o bloco atual e, com esta finalidade, módulos de predição (36) e (38) são dotados das suas entradas ligadas à imagem tampão descodificada (34). Na verdade, ambos módulos de predição (36) e (38) utilizam porções de vídeo previamente reconstruídas 141 residentes na imagem tampão descodificada (34) de modo a predizer a entrada do bloco atual na entrada não invertida do subtrator (24). A este respeito, o módulo de predição (36) atua como um intra-preditor que prediz espacialmente a porção atual do vídeo 141 das porções espaciais vizinhas, já reconstruídas da mesma imagem do vídeo 141, enquanto o módulo de predição (38) atua como um inter preditor que temporariamente prediz a porção atual das imagens previamente reconstruídas do vídeo 141. Ambos os módulos (36) e (38) executam as suas predições de acordo com, ou descritas através de, certos parâmetros de predição. Para se ser mais preciso, os últimos parâmetros são determinados como sendo o descodificador (20) em uma estrutura de otimização para otimizar algum objetivo otimizado tal como otimizar uma razão de taxa/distorção sob alguns, ou nenhum, constrangimentos tal como débito máximo.
[049] Por exemplo, o módulo de intra predição (36) pode determinar parâmetros de predição espaciais para a porção atual tal como uma direção intra predição ao longo da qual o conteúdo de porções vizinhas, já reconstruídas da mesma imagem do vídeo 141 é expandido/copiado na porção atual para predizer o último.
[050] O módulo de inter predição (38) pode utilizar compensação de movimento de modo a predizer a porção atual de imagens previamente reconstruídas e os parâmetros de inter predição aí envolvidos podem compreender um vetor de movimento, um índice de referência de trama, uma informação de divisão de predição de movimento relativa à porção atual, um número de hipótese de qualquer combinação destas.
[051] O combinador (40) pode combinar uma ou mais predições fornecidas pelos módulos (36) e (38) ou selecionar simplesmente apenas um destes. O combinador ou selecionador (40) encaminha a predição resultante da porção atual à inserção de entrada do subtrator (24) e entrada adicional do somador (30), respectivamente.
[052] À saída do subtrator (24), o residual da predição da porção atual é tirado e o módulo de quantificação/transformação (36) é configurado para transformar este sinal residual com quantificação dos coeficientes de transformação. A transformação pode ser qualquer transformação espectralmente decomposta tal como um DCT. Devido à quantificação, o resultado do tratamento do módulo de quantificação/transformação (26) é irreversível. Ou seja, resultados de perda de códigos. A saída do módulo (26) é o sinal residual (421) a ser transmitido no fluxo de dados. Nem todos os blocos podem ser sujeitos a codificação residual. Antes, alguns modos de codificação podem suprimir codificação residual.
[053] O sinal residual (421) é desquantificado e inversamente transformado no módulo (28) de modo a reconstruir o sinal residual o mais distante possível, ou seja, de modo a corresponder ao sinal residual tal como produzido pelo subtrator (24) apesar do ruído de quantificação. O somador (30) combina este sinal residual reconstruído com a predição da porção atual através de adição. Outras combinações seriam também viáveis. Por exemplo, o subtrator (24) poderia operar como um divisor para medir os resíduos em razões, e o somador poderia ser implementado como um multiplicador para reconstruir a porção atual, de acordo com uma alternativa. A saída do somador (30) representa, pois, uma reconstrução preliminar da porção atual. Contudo, tratamento adicional no módulo (32) pode ser opcionalmente utilizado para melhorar a reconstrução. Esse tratamento adicional pode, por exemplo, envolver o desbloqueamento, filtragem adaptável e outro idêntico. Todas as reconstruções disponíveis até agora amortecidas na imagem tampão descodificada (34). Assim, a imagem tampão descodificada (34) amortece as imagens de vídeo (141) previamente reconstruídas e as porções previamente reconstruídas da imagem atual à qual pertence a porção atual.
[054] De modo a permitir que o descodificador reconstrua o sinal multi-janelas do fluxo de dados (18), o módulo de quantificação/transformação encaminha o sinal residual (421) para um multiplexador (44) do codificador (20). Concorrentemente, o módulo de predição (36) encaminha parâmetros intra-predição (461) ao multiplexador (44), o módulo inter-predição (38) encaminha parâmetros inter-predição (481) ao multiplexador (44) e ainda um módulo de tratamento (32) encaminha parâmetros de tratamento adicional (501) ao multiplexador (44) que, por seu lado, multiplica ou insere toda esta informação no fluxo de dados (18).
[055] Tal como se tornou claro da discussão anterior de acordo com o modelo da Fig. 1, a codificação do vídeo (141) através do ramo de codificação (22v,1) é independente na medida em que a codificação é independente dos mapas de dados de profundidade/disparidade (161) e os dados de qualquer uma das outras imagens (122). De um ponto de vista mais geral, o ramo de codificação (22v,1) pode ser considerado como vídeo de codificação (141) em um fluxo de dados (18) através da determinação de parâmetros de codificação e, de acordo com os primeiros parâmetros de codificação, predizer uma porção atual do vídeo (141) a partir de uma porção previamente codificada do vídeo (141), codificada em fluxo de dados (18) através do codificador (20) antes da codificação da porção atual, e determinando um erro de predição da predição da porção atual de modo a obter correção de dados, em especial o sinal residual (421) anteriormente mencionado. Os parâmetros de codificação e a correção de dados são inseridos no fluxo de dados (18).
[056] Os parâmetros de codificação mesmo agora mencionados inseridos no fluxo de dados (18) através do ramo de codificação (22v,1) podem envolver um, uma combinação, ou todos os seguintes:
[057] - Primeiro, os parâmetros de codificação para o vídeo (141) podem definir/assinalar a segmentação das imagens do vídeo (141), tal como resumidamente discutido antes.
[058] - Depois, os parâmetros de codificação podem compreender informação do modo de codificação indicando para cada segmento ou porção atual, qual o modo de codificação deve ser utilizado para predizer o respectivos segmento tal como intra- predição, inter-predição ou uma combinação das duas.
[059] - Os parâmetros de codificação podem também compreender os parâmetros de predição mesmo agora mencionados tais como parâmetros intra- predição para porções/segmentos preditos por intra-predição, e parâmetros inter- predição para porções/segmentos inter-preditos.
[060] - Os parâmetros de codificação podem, contudo, compreender ainda parâmetros adicionalmente tratados (501) assinalando ao lado de descodificação como tratar ainda as porções já reconstruídas do vídeo (141) antes da utilização dos mesmos para predizer as porções atuais ou seguintes do vídeo (141). Estes parâmetros de tratamento adicional (501) podem compreender índices indexando os respectivos filtros, coeficientes de filtros ou idêntico.
[061] - Os parâmetros de predição (461, 481) e os parâmetros de tratamento adicional (501) podem mesmo adicionalmente compreender dados de sub- segmentação de modo a definir uma sub-segmentação adicional relativa à segmentação anteriormente mencionada definindo a granulosidade da seleção do modo, ou definindo uma segmentação completamente independente tal como para a aplicação de diferentes filtros adaptáveis a diferentes porções das imagens no tratamento adicional.
[062] - Os parâmetros de codificação podem influenciar também a determinação do sinal residual e, desse modo, fazer porção do sinal residual (421). Por exemplo, a saída dos níveis de coeficiente de transformação espectral através do módulo de quantificação/transformação (26) pode ser considerada como uma correção de dados, enquanto a dimensão da fase de quantificação pode ser também sinalizada no fluxo de dados (18), e o parâmetro da dimensão da fase de quantificação pode ser considerada como um parâmetro de codificação.
[063] - Os parâmetros de codificação podem ainda definir parâmetros de predição que definem uma predição de segunda fase do residual de predição da primeira fase de predição anteriormente discutida. Intra/inter predição pode ser utilizada a este respeito.
[064] De modo a aumentar o coeficiente de codificação, o codificador (20) compreende um módulo de troca de informação de codificação (52) que recebe todos os parâmetros de codificação e informação adicional que influencia, ou é influenciada por, o tratamento nos módulos (36, 38 e 32), por exemplo, tal como ilustrativamente indicado pelas setas que se estendem na vertical que apontam a partir dos respectivos módulos para baixo para o módulo de troca de informação de codificação (52). O módulo de troca de informação de codificação (52) é responsável pela partilha de parâmetros de codificação e opcionalmente informação de codificação adicional entre os ramos de codificação (22) de modo que os ramos possam predizer ou adotar parâmetros de codificação uns dos outros. No modelo da Fig. 1, é definida uma ordem entre as entidades de dados, em especial mapas de dados de profundidade/disparidade, das imagens (121) e (122) do sinal multi-janelas (10) para esta finalidade. Em especial, o vídeo (141) da primeira imagem (121) precede os mapas de dados de profundidade/disparidade (161) da primeira imagem seguida do vídeo (142) e depois o mapa dos dados de profundidade/disparidade (162) da segunda imagem (122) e por aí em diante. Deverá ter-se em consideração aqui que esta ordem precisa entre as entidades de dados do sinal multi-janelas (10) não precisa ser estritamente aplicada para a codificação de todo o sinal multi-janelas (10), mas para uma discussão mais fácil, assume-se no seguinte que esta ordem é constante. A ordem entre as entidades de dados, naturalmente, define também uma ordem entre os ramos (22) a isso associado.
[065] Tal como já anteriormente indicado, os ramos de codificação adicionais (22) tais como o ramo de codificação (22d,1, 22v,2 e 22d,2) atuam do mesmo modo que o ramo de codificação (22v,1) de modo a codificar a respectiva entrada (161,142 e 162), respectivamente. Contudo, devido a uma ordem agora mesmo mencionada entre os vídeos e mapas de dados de profundidade/disparidade das imagens (121 e 122), respectivamente, e à ordem correspondente definida entre os ramos de codificação (22), o ramo de codificação (22d,1) é dotado de, por exemplo, liberdade adicional na predição de parâmetros de codificação a serem utilizados na codificação de porções atuais dos mapas de dados de profundidade/disparidade (161) da primeira imagem (121). Isto é devido à ordem anteriormente mencionada entre dados de vídeo e de mapa de profundidade/disparidade das diferentes imagens: Por exemplo, cada uma destas entidades pode ser codificada utilizando porções reconstruídas dela própria assim como de entidades daí que precedem a ordem anteriormente mencionada entre estas entidades de dados. Por conseguinte, na codificação de mapas de dados de profundidade/disparidade (161), o ramo de codificação (22d,1) pode utilizar informação conhecida de porções previamente reconstruídas do vídeo correspondente (141). O modo como o ramo (22d,1) explora as porções reconstruídas do vídeo (141) de modo a predizer alguma propriedade dos mapas de dados de profundidade/disparidade (161), permitindo uma melhor taxa de compressão da compressão dos mapas de dados de profundidade/disparidade (161), é teoricamente ilimitado. O ramo de codificação (22d,1) pode, por exemplo, predizer/adotar parâmetros de codificação envolvidos na codificação do vídeo (141) tal como anteriormente referido, de modo a obter parâmetros de codificação para a codificação dos mapas de dados de profundidade/disparidade (161). No caso da adoção, a sinalização de quaisquer parâmetros de codificação relativos aos mapas de dados de profundidade/disparidade (161) no fluxo de dados (18) pode ser suprimida. No caso da predição, meramente dados residuais/de correção de predição relativos a estes parâmetros podem ter de ser assinalados no fluxo de dados (18). Exemplos para tal adoção/predição de parâmetros de codificação são também descritos em baixo.
[066] Invulgarmente, o ramo de codificação (22d,1) pode ser dotado de modos de codificação adicional disponíveis aos blocos de códigos do mapa de profundidade/disparidade (161), para além dos modos anteriormente descritos em relação aos módulos (36) e (38). Tais modos de codificação adicionais são de seguida descritos e dizem respeito a modos de partição de blocos irregulares. Em uma imagem alternativa, a partição irregular tal como descrita em baixo pode ser considerada como uma continuação da divisão do mapa de profundidade/disparidade em blocos/partições.
[067] De qualquer maneira, capacidades de predição adicionais encontram-se presentes para posteriores entidades de dados, em especial vídeo (142) e os mapas de dados de profundidade/disparidade (162) da segunda imagem (122). Relativamente a estes ramos de codificação, o seu módulo inter-predição é capaz não apenas de executar predição temporal, mas também predição inter-imagens. Os parâmetros inter-predição correspondentes compreendem informação idêntica tal como comparado com predição temporal, em especial por segmento predito inter-imagem, um vetor de disparidade, um índice de visualização, uma referência cruzada e/ou uma indicação de um número de hipóteses, ou seja, a indicação do número de inter- predições que participam na formação da inter-predição inter-imagem através de adição, por exemplo. Essa predição inter-imagem está disponível não apenas no ramo (22v,2) relativo ao vídeo (142), mas também para o módulo inter-predição (38) do ramo (22d,2) relativo aos mapas de dados de profundidade/disparidade (162). Naturalmente que estes parâmetros de predição inter-imagem representam também parâmetros de codificação que podem servir como uma base a adoção/predição de posteriores dados de imagem de uma possível terceira imagem que, contudo, não se encontra ilustrada na Fig. 1.
[068] Devido às medidas anteriores, a quantidade de dados a serem inseridos no fluxo de dados (18) através do multiplexador (44) é ainda mais baixa. Em especial, a quantidade de parâmetros de codificação dos ramos de codificação (22d,1), (22v,2) e (22d,2) pode ser ainda mais reduzida através da adoção de parâmetros de codificação dos ramos de codificação precedentes ou meramente inserindo residuais de predição relativos a isso no fluxo de dados (28) através de um multiplexador (44). Devido à capacidade de escolha entre predição temporal e inter-imagens, a quantidade de dados residuais (423) e (424) de ramos de codificação ((22v,2) e (22d,2) pode ser também ainda mais reduzida. A redução na quantidade de dados residuais contrabalança o esforço de codificação adicional nos modos de diferenciação temporal e de predição inter-imagens.
[069] De modo a esclarecer os princípios de codificação do parâmetro adoção/predição com mais detalhe, é feita referência à Fig. 2. A Fig. 2 ilustra uma porção exemplo do sinal multi-imagem (10). A Fig. 2 ilustra uma imagem de vídeo v1,t como estando dividida em segmentos ou porções (60a), (60b) e (60c). Por motivos de simplificação, apenas três porções da imagem v1,t são ilustradas, apesar de a segmentação poder, sem emenda e sem intervalos, dividir a imagem em segmentos/porções. Tal como anteriormente mencionado, a divisão da imagem de vídeo v1,t pode ser fixa ou variável no tempo, e a segmentação pode ser, ou não, assinalada no fluxo de dados. A Fig. 2 ilustra que as porções (60a) e (60b) são temporariamente preditas utilizando vetores de movimento (62a) e (62b) a partir de uma aversão reconstruída de qualquer imagem de referência do vídeo (141), que, neste caso, é exemplarmente a imagem v1,t-1. Tal como conhecido na área, a ordem de codificação entre as imagens do vídeo (141) pode não coincidir com a ordem de apresentação entre estas imagens, e por conseguinte, a imagem de referência pode suceder a imagem atual v1,t na ordem da hora de apresentação (64). A porção (60c) é, por exemplo, uma porção intra-predição para a qual os parâmetros intra-predição são inseridos no fluxo de dados (18).
[070] Na codificação do mapa de profundidade/disparidade d1,t o ramo de codificação (22d,1) pode explorar as possibilidades anteriormente mencionadas de uma ou mais das maneiras a seguir exemplificadas em relação à Fig. 2.
[071] - Por exemplo, na codificação do mapa de profundidade/disparidade d1,t, o ramo de codificação (22d,1) pode adotar a divisão da imagem de vídeo v1,t tal como utilizada através do ramo de codificação (22v,1). Conformemente, se existirem parâmetros de segmentação nos parâmetros de codificação para imagem de vídeo v1,t, a sua retransmissão para mapas de dados de profundidade/disparidade d1,t pode ser evitada. Em alternativa, o ramo de codificação (22d,1) pode utilizar a segmentação da imagem de vídeo v1,t como uma base/predição para a segmentação a ser utilizada para o mapa de profundidade/disparidade d1,t sinalizando o desvio da segmentação relativa à imagem de vídeo v1,t através do fluxo de dados (18). A Fig. 2 ilustra o caso de que o ramo de codificação (22d,1) utiliza a segmentação da imagem de vídeo v1 como uma pré-segmentação do mapa de profundidade/disparidade d1,t. Ou seja, o ramo de codificação (22d,1) adota a pré-segmentação da segmentação do vídeo v1,t, ou prediz daí a pré-segmentação.
[072] - Ainda, o ramo de codificação (22d,1) pode adotar ou predizer os modos de codificação das porções (66a), (66b) e (66c) do mapa de profundidade/disparidade d1,t dos modos de codificação atribuídos à respectiva porção (60a), (60b) e (60c) na imagem de vídeo v1,t. No caso de uma segmentação diferente entre a imagem de vídeo v1,t e o mapa de profundidade/disparidade d1,t, a adoção/predição dos modos de codificação da imagem de vídeo v1,t pode ser controlada de modo que a adoção/predição é obtida a partir das porções co-localizadas da segmentação da imagem de vídeo v1,t. Uma definição adequada de co-localização pode ser a seguinte. A porção de co-localização na imagem de vídeo v1,t para uma porção atual no mapa de profundidade/disparidade d1,t, pode, por exemplo, ser a compreendendo a posição de co-localização na esquina esquerda superior da imagem atual no mapa de profundidade/disparidade d1,t. No caso de predição dos modos de codificação, o ramo de codificação (22d,1) pode sinalizar os desvios do modo de codificação das porções de (66a) a (66c) do mapa de profundidade/disparidade d1,t, relativo aos modos de codificação na imagem de vídeo d1,t explicitamente assinalada no fluxo de dados (18).
[073] - No que diz respeito aos parâmetros de predição, o ramo de codificação (22d,1) tem a liberdade de espacialmente adotar ou predizer parâmetros de predição utilizados para codificar porções vizinhas no mesmo mapa de profundidade/disparidade d1,t ou para adotar/predizer os mesmos a partir de parâmetros de predição utilizados para codificar porções co-localizadas de (60a) a (60c) da imagem de vídeo d1,t. Por exemplo, a Fig. 2 ilustra que a porção (66a) do mapa de profundidade/disparidade d1,t é uma porção inter-predição, e o vetor de movimento correspondente (68a) pode ser adotado ou predito a partir do vetor de movimento (62a) da porção co-localizada (60a) da imagem de vídeo d1,t. No caso de predição, apenas a diferença do vetor de movimento deverá ser inserida no fluxo de dados (18) como parte de parâmetros inter-predição (482).
[074] Em termos de codificação da eficiência, poderá ser favorável que o ramo de codificação (22d,1) tenha a capacidade de dividir segmentos da pré-segmentação do mapa de profundidade/disparidade d1,t utilizando partição de blocos irregular. Alguns modos de partição de blocos irregular aos quais os modelos descritos a seguir se referem, derivam de uma informação de partição tal como uma linha de separação wedgelet (70), a partir de uma imagem reconstruída v1,t da mesma imagem. Com esta medida, um bloco da pré-segmentação do mapa de profundidade/disparidade d1,t é subdividido. Por exemplo, o bloco (66c) do mapa de profundidade/disparidade d1,t é subdividido em duas porções em forma de wedgelet (72a) e (72b). O ramo de codificação (22d,1) pode ser configurado para codificar estes segmentos (72a) e (72b) em separado. No caso da Fig. 2, ambos os sub-segmentos (72a) e (72b) são exemplarmente ilustrados como inter-preditos utilizando os respectivos vetores de movimento (68c) e (68d). De acordo com as secções 3 e 4, o ramo de codificação (22d,1) pode ter a liberdade de escolher várias opções de codificação para partição de blocos irregular, e de sinalizar a escolha ao descodificador como informação paralela no fluxo de dados (18).
[075] Ao codificar o vídeo (142), o ramo de codificação (22v,2) possui, para além das opções do modo de codificação disponíveis para o ramo de codificação (22v,1), a opção de predição inter-imagem.
[076] A Fig. 2 ilustra, por exemplo, que a porção (64b) da segmentação da imagem do vídeo v2,t é predita inter-imagens a partir da imagem de vídeo v1,t temporariamente correspondente da primeira imagem de vídeo (141) utilizando um vetor de disparidade (76).
[077] Apesar desta diferença, o ramo de codificação (22v,2) pode adicionalmente explorar toda a informação disponível da codificação da imagem de vídeo v1,t e do mapa de profundidade/disparidade d1,t tal como, em especial, os parâmetros de codificação utilizados nestas codificações. Por conseguinte, o ramo de codificação (22v,2) pode adotar ou predizer os parâmetros de movimento incluindo o vetor de movimento (78) para uma porção temporariamente inter-predita (74a) da imagem de vídeo v2,t a partir de qualquer, ou juntamente com, os vetores de movimento (62a) e (68a) das porções co-localizadas (60a) e (66a) da imagem de vídeo v1,t temporariamente alinhada e do mapa de profundidade/disparidade d1,t, respectivamente. Quando muito, o residual predito poder ser sinalizado em relação aos parâmetros inter-predição para a porção (74a). A este respeito, deverá ser relembrado que o vetor de movimento (68a) pode já ter sido sujeito a predição/adoção do próprio vetor de movimento (62a).
[078] As outras possibilidades de adoção/predição de parâmetros de codificação para codificação de imagens de vídeo v2,t tal como descrito anteriormente em relação à codificação do mapa de profundidade/disparidade d1,t, são aplicáveis à codificação da imagem de vídeo v2,t através também do ramo de codificação (22v,2), com os dados habituais disponíveis distribuídos pelo módulo (52) sendo, contudo, aumentado devido a que os parâmetros de codificação de ambas as imagens v1,t e o mapa de profundidade/disparidade d1,t correspondente se encontram disponíveis.
[079] Então, o ramo de codificação (22d,2) codifica o mapa de profundidade/disparidade d2,t, do mesmo modo que a codificação do mapa de profundidade/disparidade d1,t através do ramo de codificação (22d,1). Tal é verdade, por exemplo, em relação a todas as ocasiões de adoção/predição de parâmetros de codificação da imagem de vídeo v2,t da mesma imagem (122). Além disso, contudo, o ramo de codificação (22d,2) tem a oportunidade de também adotar/predizer parâmetros de codificação provenientes de parâmetros de codificação utilizados para a codificação do mapa de profundidade/disparidade d1,t da imagem (121) anterior. Além disso, o ramo de codificação (22d,2) pode utilizar predição inter-imagens tal como explicado em relação ao ramo de codificação (22v,2).
[080] Após ter sido descrito o codificador (20) da fig. 1, deverá também ser tido em consideração que o mesmo pode ser aplicado em software, hardware e firmware, por exemplo, hardware programável. Apesar de o diagrama de blocos da Fig. 1 sugerir que o codificador (20) estruturalmente compreende ramos de codificação paralelos, em especial um ramo de codificação por vídeo e dados de profundidade/disparidade do sinal multi-janelas (10), este não precisa ser o caso. Por exemplo, as rotinas de software, porções de circuitos ou porções lógicas programáveis configuradas para executar as tarefas dos elementos (24) a (40), respectivamente, podem ser sequencialmente utilizadas para executar as tarefas para cada um dos ramos de codificação. Em um tratamento paralelo, os processos dos ramos de codificação paralela podem ser executados em núcleos de processadores paralelos, os processos dos ramos de codificação paralelos podem ser executados em núcleos de processador paralelos ou em circuitos paralelos em funcionamento.
[081] A Fig. 3 ilustra um exemplo para um descodificador capaz de descodificar fluxo de dados (18) de modo a reconstruir uma ou mais imagens de vídeo correspondentes à cena representada pelo sinal multi-janelas do fluxo de dados (18). Até um certo ponto, a estrutura e funcionalidade do descodificador da Fig. 3 é idêntico ao codificador da Fig. 20, de modo que os sinais de referência da Fig. 1 foram reutilizados na medida do possível para indicarem que a descrição da funcionalidade fornecida em cima em relação à Fig. 1 também se aplica à Fig. 3.
[082] O descodificador da Fig. 3 é geralmente indicado com sinal de referência (100) e compreende uma entrada para o fluxo de dados (18) e uma saída para disponibilizar a reconstrução da imagem ou várias imagens (102) anteriormente mencionadas. O descodificador (100) compreende um desmultiplexador (104) e um par de ramos de descodificação (106) para cada uma das entidades de dados do sinal multi-janelas (10)(Fig.1) representada pelo fluxo de dados (18) assim como um extrator de imagens (108) e um permutador de parâmetros de codificação (110). Tal como se trata do caso com o descodificador da Fig. 1, os ramos de descodificação (106) compreendem os mesmos elementos de descodificação na mesma interligação, e que estão, conformemente, representativamente descritos em relação ao ramo de descodificação (106v,1 responsável pela descodificação do vídeo (141) da primeira imagem (121). Em especial, cada ramo de codificação (106) compreende uma saída ligada a uma respectiva saída do multiplexador (104) e uma saída ligada a uma respectiva entrada do extrator de imagens (108) de modo a fazer sair para o extrator de imagens (108) a respectiva entidade de dados do sinal multi-janelas (10), isto é, o vídeo (141) no caso do ramo de descodificação (106v,1). No meio, cada ramo de codificação (106) compreende um módulo de transformação/desquantificação inversa (28), um somador (30), um outro módulo de tratamento (32) e uma imagem tampão descodificada (34) ligada em série entre o multiplexador (104) e o extrator de imagens (108). O somador (30), o outro módulo de tratamento (32) e a imagem tampão descodificada (34) de um desvio à volta com uma ligação paralela de módulos de predição (36) e (38) seguidos por um combinador/seletor (40) que se encontram ligados na ordem mencionada entre imagens tampão descodificadas (34) e uma outra entrada do somador (30). Tal como indicado, através da utilização dos mesmos números de referência como é o caso da Fig. 1, a estrutura e funcionalidade dos elementos (28) a (40) dos ramos de descodificação (106) são idênticas às dos elementos correspondentes dos ramos de codificação na Fig. 1 na medida em que os elementos dos ramos de descodificação (106) emulam o processamento do processo de codificação através da utilização da informação transmitida no fluxo de dados (18). Naturalmente, os ramos de descodificação (106) simplesmente invertem o procedimento de codificação em relação aos parâmetros de codificação finalmente escolhidos pelo codificador (20), enquanto o codificador (20) da Fig. 1 tem de encontrar um conjunto ótimo de parâmetros de codificação em algum sentido de otimização tal como parâmetros de codificação que otimizam uma função de custo taxa/distorção com, opcionalmente, ser objeto de certos constrangimentos tais como débito binário máximo, ou outro idêntico.
[083] O desmultiplexador (104) tem como objetivo distribuir o fluxo de dados (18) para os vários ramos de descodificação (106). Por exemplo, o desmultiplexador (104 fornece o módulo de desquantificação/transformação invertida (28) com os dados residuais (421), o outro módulo de processamento (32) com outros parâmetros de processamento (501) e o módulo de inter-predição (38) com os módulos de inter- predição (481). O permutador de parâmetros de codificação (110) atua como o módulo correspondente (52) na Fig. 1 para distribuir os parâmetros de codificação comuns e outros dados comuns entre os vários ramos de descodificação (106).
[084] O extrator de imagens (108) recebe o sinal multi-janelas reconstruído pelos ramos de descodificação paralela (106) e extrai daí uma ou mais imagens (102) correspondentes aos ângulos de imagens ou direções de visualizações prescritas por dados de controle de extração de imagens intermédias externamente fornecidos (112).
[085] Devido a uma construção semelhante do descodificador (100) em relação à porção correspondente do codificador (20), a sua funcionalidade até à interface ao extrator de imagem (108) é facilmente explicada analogamente na descrição anterior.
[086] Na verdade, os ramos de descodificação (106v,1) e (106d,1) atuam juntos para reconstruir a primeira imagem (121) do sinal multi-janelas (10) do fluxo de dados (18) predizendo, de acordo com os primeiros parâmetros de codificação contidos no fluxo de dados (18) (tais como parâmetros de escala em (421), os parâmetros (461), (481), (501), e os não adotados correspondentes, e residuais de predição, dos parâmetros de codificação do segundo ramo de codificação (16d,1), em especial (422), parâmetros (462), (482), (502)), uma porção atual da primeira imagem (121) de uma porção previamente reconstruída do sinal multi-janelas (10), reconstruído do fluxo de dados (18) antes da reconstrução da porção atual da primeira imagem (121) e corrigindo um erro de predição da predição da porção atual da primeira imagem (121) utilizando os primeiros dados de correção, ou seja, em (421) e (422), também constantes no fluxo de dados (18). Enquanto o ramo de codificação (106v,1) é responsável pela descodificação do vídeo (141), um ramo de codificação (106d,1) assume a responsabilidade pela reconstrução dos mapas de dados de profundidade/disparidade (1061). Observe-se, por exemplo, a Fig. 2: O ramo de descodificação (106v,1) reconstrói o vídeo (141) da primeira imagem (121) do fluxo de dados (18) predizendo, de acordo com os parâmetros de codificação correspondentes lidos do fluxo de dados (18), ou seja, parâmetros de escala em (421), os parâmetros (461), (481), (501), uma porção atual do vídeo (141) tal como (60aa, (60b) ou (60c) de uma porção previamente reconstruída do sinal multi-janelas (10) e corrigindo um erro de predição desta predição utilizando os dados de correção correspondentes obtidos do fluxo de dados (18), ou seja, a partir dos níveis de coeficiente de transformação em (421). Por exemplo, o ramo de descodificação (106v,1) trata o vídeo (141) em unidades dos segmentos/porções utilizando a ordem de codificação entre as imagens de vídeo e, para codificação dos segmentos na imagem, uma ordem de codificação entre os segmentos destas imagens como o ramo de codificação correspondente do codificador o fez. Por conseguinte, todas as porções previamente reconstruídas do vídeo (141) encontram-se disponíveis para predição da porção atual. Os parâmetros de codificação para uma porção atual podem incluir os parâmetros intra-predição (501), parâmetros inter-predição (481), os parâmetros de filtro para o módulo de processamento adicional (32) e por aí em diante. Os dados de correção para a correção do erro de predição podem ser representados pelos níveis de coeficiente de transformação espectral nos dados residuais (421). Nem todos estes parâmetros de codificação precisam ser transmitidos na totalidade. Alguns destes foram espacialmente preditos a partir dos parâmetros de codificação de segmentos vizinhos do vídeo (141). Os vetores de movimento para o vídeo (141), por exemplo, podem ser transmitidos no fluxo de dados como diferenças do vetor de movimento entre vetores de movimento de porções/segmentos vizinhos do vídeo (141).
[087] No que diz respeito ao segundo ramo de descodificação (106d,1), o mesmo tem acesso não apenas aos dados residuais (422) e aos parâmetros de predição e de filtragem correspondentes tal como sinalizados no fluxo de dados (18) e distribuídos ao respectivos ramo de descodificação (106d,1) através de um desmultiplexador (104), ou seja, os parâmetros de codificação não preditos por limites inter-imagens, mas também indiretamente aos parâmetros de codificação e dados de correção fornecidos através do desmultiplexador (104) ao ramo de descodificação (106d,1) ou qualquer informação daí derivada, tal como distribuído através do módulo de troca de informação de codificação (110). Assim, o ramo de descodificação (106d,1) determina os seus parâmetros de codificação para a reconstrução dos mapas de dados de profundidade/disparidade (161) provenientes de uma porção dos parâmetros de codificação encaminhados através do desmultiplexador (104) ao par de ramos de descodificação (106v,1) e (106d,1) para a primeira imagem (121), que sobrepõe parcialmente a porção destes parâmetros de codificação especialmente dedicados e encaminhados ao ramo de descodificação (106v,1). Por exemplo, o ramo de descodificação (106d,1) determina um vetor de movimento (68a) de um vetor de movimento (62a) explicitamente transmitido em (481), por exemplo, como uma diferença do vetor de movimento para outra porção da imagem v1,t vizinha, por um lado, e uma diferença do vetor de movimento explicitamente transmitido em (482) por outro. Além disso, ou em alternativa, o ramo de descodificação (106d,1) pode utilizar porções reconstruídas do vídeo (141) tal como descrito anteriormente em relação à predição da linha de separação wedgelet para obter uma partição de blocos irregular tal como resumidamente considerado anteriormente em relação aos mapas de dados de profundidade/disparidade (161), e como será de seguida descrito com maior detalhe.
[088] Para se ser mais preciso, o ramo de descodificação (106d,1) reconstrói os mapas de dados de profundidade/disparidade (141) da primeira imagem (121) a partir do fluxo de dados através da utilização de parâmetros de codificação pelo menos parcialmente preditos a partir dos parâmetros de codificação utilizados pelo ramo de descodificação (106v,1) (ou dele adotados) e/ou predito a partir de porções reconstruídas do vídeo (141) na imagem tampão descodificada (34) do ramo de descodificação (106v,1). Os residuais de predição dos parâmetros de codificação podem ser obtidos através do desmultiplexador (104) provenientes do fluxo de dados (18). Outros parâmetros de codificação para o ramo de descodificação (106d,1) podem ser transmitidos totalmente no fluxo de dados (18) ou em relação a outra base, em especial no que diz respeito a um parâmetro de codificação tendo sido utilizado ele próprio para codificar qualquer uma das porções dos mapas de dados de profundidade/disparidade (161) previamente reconstruídas. Com base nestes parâmetros de codificação, o ramo de descodificação (106d,1) prediz uma porção atual dos mapas de dados de profundidade/disparidade (141), a partir de uma porção previamente reconstruída dos mapas de dados de profundidade/disparidade (161), reconstruídos a partir do fluxo de dados (18) através do ramo de descodificação (106d,1) antes da reconstrução da porção atual dos mapas de dados de profundidade/disparidade (161) e corrigindo um erro de predição da predição da porção atual dos mapas de dados de profundidade/disparidade (161) utilizando os respectivos dados de correção (422).
[089] A funcionalidade do par de ramos de descodificação (106v,2) e (106d,2) para a segunda imagem (122) é, tal como anteriormente descrito em relação à codificação, idêntica à da primeira imagem (121). Ambos os ramos cooperam para reconstruir a segunda imagem (122) do sinal multi-janelas (10) do fluxo de dados (18) através da utilização de parâmetros de codificação próprios. Apenas essa parte destes parâmetros de codificação precisa ser transmitida e distribuída através do desmultiplexador (104) a qualquer um dos ramos de descodificação (106v,2) e (106d,2), e que não é adotada/predita através do limite da imagem entre imagens (141) e (142), e, opcionalmente, um residual da parte de predição inter-imagens. As porções atuais da segunda imagem (122) são preditas a partir de porções previamente reconstruídas do sinal multi-janelas (10), reconstruídas a partir do fluxo de dados (18) através de quaisquer ramos de descodificação (106) antes da reconstrução das respectivas porções atuais (122), e corrigindo o erro de predição conformemente utilizando os dados de correção, ou seja, (423) e (424), encaminhados pelo desmultiplexador (104) a este par de ramos de descodificação (106v,2) e (106d,2).
[090] O ramo de descodificação (106d,2) pode determinar os seus parâmetros de codificação pelo menos parcialmente através da adoção/predição dos parâmetros de codificação utilizados por quaisquer ramos de descodificação (106v,1), (106d,1) e (106v,2), do vídeo (142) reconstruído e/ou dos mapas de dados de profundidade/disparidade reconstruídos (161). Por exemplo, o fluxo de dados (18) pode sinalizar uma porção atual (80b) dos mapas de dados de profundidade/disparidade (162) a se, e em que parte, os parâmetros de codificação para esta porção atual (80b) deverão ser adotados ou preditos a partir de uma porção co-localizada de qualquer vídeo (141), mapas de dados de profundidade/disparidade reconstruídos (161) e vídeo (142) ou um seu subconjunto adequado. A parte de interesse destes parâmetros de codificação pode envolver, por exemplo, um vetor de movimento tal como (84), ou um vetor de disparidade tal como o vetor de disparidade (82). Ainda, outros parâmetros de codificação, tais como os relativos aos blocos de partição irregular, podem ser provenientes do ramo de descodificação (106d,2).
[091] De qualquer maneira, as porções reconstruídas dos dados multi-imagens (10) chegam ao extrator de imagem (108) onde as imagens aí constantes são a base para uma extração de imagem de novas imagens, ou seja, os vídeos associados a estas novas imagens, por exemplo. Esta extração de imagem pode compreender ou envolver uma nova projeção de vídeos (141) e (142) através da utilização de mapas de dados de profundidade/disparidade. Honestamente, na reprojeção de um vídeo noutra imagem intermédia, porções do vídeo correspondentes às mesmas porções colocadas próximo do telespectador são deslocadas ao longo da direção de disparidade, ou seja, a direção do vetor de diferença da direção de visualização, mais do que porções do vídeo correspondente às porções da cena localizadas mais afastadas da posição do telespectador.
[092] Dever-se-á mencionar que o descodificador não compreende necessariamente o extrator de imagens (108). Em vez disso, o extrator de imagens (108) pode não estar presente. Neste caso, o descodificador (100) tem como finalidade apenas a reconstrução de quaisquer imagens (121) e (122), seja de uma, de várias ou de todas. No caso de não haver mapas de dados de profundidade/disparidade para as imagens individuais (121) e (122), um extrator de imagens (108) pode, contudo, executar uma extração de imagens intermédias através da exploração dos vetores de disparidade relativos às porções correspondentes de imagens vizinhas entre si. Utilizando estes vetores de disparidade como vetores de disparidade de suporte de um campo de vetores de disparidade associados aos vídeos de imagens vizinhas, o extrator de imagens (108) pode construir um vídeo de imagens intermédias a partir desses vídeos de imagens vizinhas (121) e (122) através da aplicação deste campo do vetor de disparidade. Imagine-se, por exemplo, que essa imagem de vide v2,t tinha 50% das suas porções/segmentos de predições inter- imagens. Ou seja, para 50% das porções/segmentos, poderão existir vetores de disparidade. Para as restantes porções, os vetores de disparidade podem ser determinados pelo extrator de imagens (108) através de interpolação/extrapolação no sentido espacial. A interpolação temporal utilizando vetores de disparidade para porções/segmentos de imagens previamente reconstruídas do vídeo (142) pode também ser utilizada. A imagem de vídeo v2,t e/ou a imagem de vídeo de referência v1,t pode então ser distorcida de acordo com estes vetores de disparidade de modo a produzir uma imagem intermédia. Com esta finalidade, os vetores de disparidade são à escala de acordo com a posição da imagem intermédia da imagem intermédia entre posições de imagens da primeira imagem (121) e uma segunda imagem (122). Detalhes relativos a este procedimento são de seguida descritos com maior detalhe.
[093] Contudo, os modelos a seguir descritos podem ser vantajosamente utilizados na estrutura das Figs. 1 a 3 se consideradas apenas a codificação de uma imagem compreendendo um vídeo e um mapa de dados de profundidade/disparidade correspondente tal como a primeira imagem (121) dos modelos anteriores. Neste caso, a informação do sinal transmitido, em especial a única imagem (121), poderá ser designada como um sinal complacente de síntese de imagem, isto é, um sinal que permite a síntese de imagem. O acompanhamento do vídeo (141) com um mapa de dados de profundidade/disparidade (161), permite que o extrator de imagem (108) execute algum tipo de síntese de imagens através da reprojeção da imagem (121) em uma nova imagem vizinha através da exploração do mapa de dados de profundidade/disparidade (161). Mais uma vez, a eficiência de codificação ganha é obtida através da utilização de partição irregular de blocos. Assim, os modelos da partição irregular de blocos descritos a seguir podem ser utilizados em um conceito de codificação de imagem única independente do aspeto de troca de informação de codificação anteriormente descrito. Para se ser mais preciso, os modelos anteriores da Fig. 1 a 3 poderão ser variados ao ponto de os ramos (22), (100v/d,2) e imagem (122) associada não existirem.
[094] Assim, as Figs. 1 a 3 ilustram um exemplo para um conceito de codificação multi-janelas no qual a posterior partição irregular de blocos explicada poderia vantajosamente ser utilizada. Contudo, é novamente realçado que os modos de codificação a seguir descritos podem ser também utilizados relativamente a outros tipos de codificação de séries de amostras, independentemente da série de amostras ser um mapa de dados de profundidade/disparidade ou não. Alguns dos modos de codificação a seguir descritos não precisam mesmo de coexistir com um mapa de profundidade/disparidade ao longo de um mapa de textura correspondente.
[095] Em especial, os modelos a seguir descritos envolvem alguns modos de codificação, através dos quais o sinal de um bloco é representado por um modelo que separa as amostras do sinal em dois conjuntos de amostras e representa cada conjunto de amostras através de um valor de amostra constante. Alguns dos modos de codificação a seguir explicados podem ser utilizados diretamente representando um sinal de um bloco ou podem ser utilizados para gerar um sinal de predição para o bloco, que é depois adicionalmente refinado através de codificação de informação residual adicional (por exemplo, níveis de coeficientes de transformação). Se um dos modos de codificação posteriormente esclarecidos for aplicado aos sinais de profundidade, para além de outros aspetos favoráveis, uma vantagem pode resultar do fato de que os sinais de profundidade sejam principalmente caracterizados através da variação lenta de regiões e arestas vivas entre a variação lenta de regiões. Enquanto a variação lenta de regiões pode ser eficazmente representada pelas abordagens de codificação de transformação (isto é, com base em um DCT), a representação de arestas vivas entre duas regiões quase constantes exige um grande número de coeficientes de transformação a serem codificados. Tais blocos com arestas podem ser melhor representados através da utilização de um modelo que divida o bloco em duas regiões, cada uma com um valor de amostra constante, tal como se encontra descrito em relação a alguns dos modelos a seguir descritos.
[096] De seguida são descritos diferentes modelos da invenção com maior detalhe. Nas secções 1 e 2, são descritos os conceitos básicos de partição de um bloco em duas regiões de valores de amostra constantes. A secção 3 descreve diferentes modelos para especificar o modo como um bloco pode ser dividido em diferentes regiões e quais os parâmetros necessários a serem transmitidos para representar a partição assim como os valores de amostras para as regiões. Os modelos incluem conceitos de sinalização da informação de partição independente de qualquer outro bloco, para sinalização da informação de partição com base em dados transmitidos para blocos geograficamente vizinhos, e para sinalização de informação de partição com base na imagem de textura já transmitida (imagem de vídeo convencional) associada ao mapa de profundidade a ser codificado. Assim, a secção 4 descreve modelos da invenção em relação à codificação da informação do modo, informação de partição, e os valores de amostras constante envolvidos em alguns modelos para manusear um bloco de posicionamento irregular.
[097] Apesar de a descrição que se segue ter como objetivo principal a codificação de mapas de profundidade (em especial no contexto da codificação de vídeo multi-janelas) e a seguinte descrição ter como base os dados blocos de profundidade, vários modelos desta invenção podem também ser aplicados na codificação de vídeo convencional. Desse modo, se o termo “bloco de profundidade” for substituído por um termo geral “bloco de sinais”, a descrição pode ser aplicada a outros tipos de sinais. Além disso, a descrição que se segue por vezes concentra-se nos blocos quadráticos, mas a invenção pode ser também aplicada a blocos retangulares ou outros conjuntos de amostras ligadas ou de ligação simples.
1 - Wedgelets
[098] Na codificação de vídeo híbrida baseada em blocos, tal como ilustrado nas Figs. 1 a 3, por exemplo, uma imagem é subdividida em blocos retangulares. Muitas vezes, estes blocos são quadráticos e o processo para cada bloco segue a mesma estrutura funcional. De salientar que apesar de maioria dos exemplos nesta secção utilizar blocos quadráticos, as partições de blocos wedgelets e todos os métodos associados não se limitam aos blocos quadráticos, mas sim possíveis para qualquer dimensão de blocos retangulares.
1.1 - Partição de blocos wedgelets
[099] O princípio básico das partições de blocos wedgelets é a partição da área de um bloco (200) em duas áreas (202a), (202b) separadas por uma linha (201), tal como ilustrado na Fig. 4, em que as duas regiões são etiquetadas com P1 e P2. A linha de separação é determinada por um ponto de partida S e um ponto de chegada , ambos localizados no limite do bloco. Por vezes, de seguida, a área P1 é designada partição wedgelet (202a), enquanto a área P2 é designada partição wedgelet (202b).
[0100] Para o espaço de sinal contínuo (Ver Fig. 4, à esquerda), a posição do ponto de partida é S(xs,ys), e a posição do ponto de chegada é E(xE,yE), ambas limitadas À dimensão do bloco 0 <x < xB e 0 < y < ys (em que uma das coordenadas tem de ser igual ao valor mínimo (0) ou máximo (xB or yB)). De acordo com estas definições, a equação da linha de separação é a seguinte:
Figure img0001
[0101] De salientar que esta equação é apenas válida para xs * xE. As duas áreas P1 e P2 são então definidas como a área à esquerda e a área à direita da linha, respectivamente.
[0102] Na imagem digital de processamento, geralmente um espaço de sinalização discreto é utilizado (ver Fig. 4, à direita), onde o bloco consiste em um número inteiro de amostras (203) ilustradas pelos quadrados com grades. Aqui, o os pontos de partida e de chegada S e E correspondem a amostras limite no bloco (200) com posições S(us,vs), e E(UE,VE) ambas limitadas à dimensão de bloco 0<x<uB e 0 <y <vB. No caso discreto, a equação da linha de separação pode ser formulada de acordo com (1). Contudo, a definição das áreas P1 e P2 é aqui diferente, pois apenas amostras completas podem ser atribuídas como parte de uma das duas áreas, ilustradas na Fig. 4, à direita. Este problema de atribuição pode ser solucionado algoritmicamente tal como descrito na secção 1.4.1.
[0103] As partições de blocos wedgelet (202a), (202b) exigem que os pontos de partida e de chegada (204) se encontrem localizados em diferentes extremidades do bloco (200). Por conseguinte, seis diferentes orientações das partições do bloco wedgelet (202a), (202b) podem ser distinguidas para blocos retangulares ou quadráticos (200), tal como ilustrado na Fig. 5.
1.2 - Padrões de partição wedgelet
[0104] Para aplicar as partições de bloco wedgelet no processo de codificação, a informação de partição pode ser armazenada sob a forma de padrões de partição. Esse padrão consiste em uma série de dimensões uBxvB e cada elemento contém a informação de binário se a amostra conforme pertence à área P1 ou P2. A Fig. 6 ilustra um exemplo de padrões de partição wedgelet para diferentes dimensões de blocos. Aqui, a informação da área de binário, isto é, a bissegmentação, é representada com amostras a preto ou a branco (203).
1.3 - Modelagem e abordagem wedgelet
[0105] Para modelagem do sinal de profundidade de um bloco com um wedgelet, a informação necessária conceitualmente consiste de dois elementos. Um é a informação de partição (ver secção 1.1), por exemplo sob a forma de um padrão de partição, que atribui cada amostra (203) a uma das duas áreas (ver secção 1.2). O outro elemento de informação necessário é os valores que são atribuídos às amostras de uma área. O valor de cada uma das áreas wedgelet pode ser definido como uma constante. É este o caso de alguns modelos a seguir descritos. Assim, este valor será referido como um valor de partição constante (CPV). Nesse caso, o segundo elemento de informação é composto por dois valores de amostras representativas para as áreas especificadas.
[0106] Para aproximar o sinal de um bloco de profundidade através de um Wedgelet, o CPV de uma dada partição pode ser calculado como o valor médio do sinal de profundidade original da área correspondente, tal como ilustrado no Fig. 7. Do lado direito da Fig. 7 encontra-se uma porção à escala a cinzento fora do mapa de profundidade representativo. Um bloco (200), neste momento o objeto da partição à base wedgelet é ilustrado como exemplo. Em especial, a sua posição ilustrativa no sinal de profundidade original (205) é ilustrada, assim como uma versão ampliada à escala a cinzento. Primeiro, a informação de partição, ou seja, uma possível bissegmentação, em termos de áreas P1 e P2 é sobreposta pelo bloco (200). Depois, o CPV de uma área é calculado como o valor médio de todas as amostras abrangidas pela respectiva área. Como a informação de partição no exemplo da Fig. 5 coincide bastante com o sinal de profundidade (205), o modelo Wedgelet resultante, ou seja, a predição do bloco (200) baseada no modo de partição wedgelet descrito, com CPV baixo para a área P1 (a cinzento escuro) e com CPV elevado para a área P2 (a cinzento claro), representa uma boa abordagem do bloco de profundidade.
1.4 - Processamento Wedgelet 1.4.1 - Listas de padrões Wedgelet
[0107] Para fins de um processo e sinalização eficientes de partições de blocos wedgelet, os padrões de partição podem ser organizados em listas de consulta. Tais listas de padrão wedgelet contêm os padrões para todas as combinações possíveis de posições de pontos de partida e de chegada para a linha de separação da área ou contém um subconjunto adequado a todas as combinações possíveis. Assim, uma lista para consulta pode ser geralmente para cada dimensão de bloco de predição. Listas idênticas podem estar disponíveis no codificador e no descodificador, de modo a permitir a sinalização entre codificador e descodificador (ver secção 3 para detalhes) confiando na posição ou índice de um padrão específico na lista de uma certa dimensão de bloco. Tal pode ser implementado seja incluindo um conjunto predefinido de padrões ou executando o algoritmo de geração idêntico como parte da inicialização do codificador e do descodificador.
[0108] A função essencial para criar listas de consulta do padrão de partição Wedgelet é a geração de um elemento de lista, tal como ilustrado na Fig. 8. Tal pode ser efetuado tal como descrito no seguinte (ou através de algoritmo idêntico). Dado um padrão vazio (uma série uB x vB de elementos binários) e as coordenadas do ponto de partida S e o ponto de chegada E (Fig. 8, à esquerda), o primeiro passo é desenhar a linha de separação. Para esta finalidade, pode ser aplicado o algoritmo da linha Bresenham. Em geral, o algoritmo determina quais as amostras (203) deverão ser seguidas de modo a formarem uma abordagem à linha reta entre dois dados pontos. No caso dos padrões de partição Wedgelet, todos os elementos (203) que aproximam a linha entre o ponto de partida S e o ponto de chegada E são marcados (caixas pretas na Fig. 8, ao centro à esquerda). O último passo é preencher uma das duas áreas resultantes separadas pelas amostras marcadas. Aqui, o problema de atribuição anteriormente mencionado precisa de mais discussão. Visto que os elementos de um padrão são binários, a linha de separação marcada pelo algoritmo Bresenham torna- se parte de uma área. Intuitivamente, tal parece desequilibrado, visto que as amostras da linha fazem teoricamente parte de ambos os domínios. Contudo, é possível atribuir as amostras da linha de separação a uma área sem perda de generalidade. Tal é assegurado pelo fato de que ambas as marcas da linha assim como os algoritmos que preenchem a área terem noção da orientação, isto é, em relação à raiz da orientação conforme. Baseado no fato de que a área do canto está completamente delimitada pela linha de separação, preencher esta área é relativamente simples. O algoritmo de preenchimento começa com um elemento de canto de raiz (206) e consecutivamente marca todos os elementos do padrão relativos à coluna-linha até que atinja um elemento já marcado e desse modo parte da linha (207) (ver Fig. 8, ao centro à direita). Em resultado disso, o padrão de partição Wedgelet para a dada posição do ponto de partida e de chegada é representado pelos valores do binário (Fig. 8, à direita).
[0109] O processo de geração para as listas de consulta do padrão de partição Wedgelet de uma certa dimensão de blocos cria consecutivamente elementos de lista para possíveis posições da linha de partida e de chegada. Tal é executado através da repetição de seis orientações ilustradas na Fig. 5. Para cara orientação, as posições de partida encontram-se localizadas em uma e as posições de chegada encontram- se noutra aresta do bloco e o processo de geração da lista executa o método de geração do padrão Wedgelet descrito em cima para cada combinação possível de posições de partida e de chegada. Para um processo e sinalização eficientes, as listas de padrões Wedgelet deverão conter apenas padrões únicos. Desse modo, antes de um novo padrão ser adicionado à lista, deverá ser verificada a sua similaridade ou similaridade inversa a quaisquer padrões já existentes na lista. Nesse caso, o padrão é redundante e desse modo posto de parte. Além disso, os padrões planos, ou seja, todas as amostras são atribuídos a uma área, são também excluídas da lista pois não representam uma partição de bloco Wedgelet válida.
[0110] Como extensão às listas de padrões Wedgelet descritos, a resolução das posições da linha de partida e de chegada utilizadas para a geração de padrões pode ser adaptavelmente aumentada ou diminuída, por exemplo dependendo das dimensões do bloco. O objetivo desta extensão é descobrir um melhor compromisso entre a codificação de eficiência e da complexidade. O aumento da resolução conduz a uma lista com mais padrões, enquanto a diminuição da resolução resulta em uma lista mais pequena, comparada com resolução normal. Por conseguinte, a resolução é habitualmente aumentada para blocos de pequenas dimensões e diminuída para blocos de grandes dimensões. É importante ter em consideração que independentemente da resolução para as posições de partida e de chegada, os padrões de partição Wedgelet armazenados na lista deverão ter sempre uma resolução normal, isto é, dimensões do bloco original. A diminuição da resolução pode ser simplesmente efetuada através da geração de padrões tal como anteriormente descrito, mas apenas para um subconjunto de posições de partida e de chegada. Por exemplo, metade da resolução significa limitar a geração de padrões a cada segunda posição de parti da e de chegada. Pelo contrário, o aumento da resolução é mais difícil. Para abranger todas as posições de partida e de chegada, um padrão temporário com a resolução aumentada é gerado em primeiro lugar, utilizando o algoritmo anteriormente descrito. Em um segundo passo, o padrão resultante é representado em amostra para resolução regular. Dever-se-á ter em consideração que, para dados binários, a tiragem de amostras não suporta valores interpolados, que resultam em um número maior de padrões idênticos para o caso de uma resolução aumentada.
[0111] Com o resultado final da geração de padrões Wedgelet anteriormente descrita, uma lista ordenada de padrões Wedgelet deriva em ambos os lados do codificador e descodificador. Em uma implementação presente, estes padrões podem também ser predefinidos pelo algoritmo de codificação / norma de codificação empregues. Além disso, não é necessário gerar padrões pelo algoritmo atual anteriormente descrito, e modificações neste algoritmo podem também ser utilizadas. É apenas importante que ambos codificador e descodificador (e mais tarde utilizados) gerem a mesma lista de padrões Wedgelet para o processo de codificação e descodificação.
1.4.2 - Pesquisa de distorção mínima Wedgelet
[0112] Com base nas listas de consulta anteriormente descritas, a melhor abordagem do sinal de um bloco por uma partição Wedgelet pode ser encontrada por um algoritmo de pesquisa. Para algoritmos de codificação baseados em Wedgelet, a melhor abordagem pode ser entendida como o modelo Wedgelet que provoca distorção mínima. Por outras palavras, a pesquisa tenta encontrar a melhor maneira de corresponder padrões de partição wedgelet para o bloco específico. A pesquisa utiliza a lista de padrões provenientes, que contém todos os padrões Wedgelet possíveis para uma dada dimensão do bloco (ser detalhes na secção 1.4.1). Estas listas ajudam a limitar o tempo de tratamento da pesquisa, visto que o padrão não precisa de ser novamente gerado, de cada vez que uma pesquisa de distorção mínima é efetuada. Cada passo de pesquisa pode ser composto pelos seguintes passos: - Cálculo dos valores CPV do dado padrão de partição e do sinal do bloco original. - Cálculo da distorção Dw,cur entre o sinal do bloco original e o modelo Wedgelet. - Avaliação do Dw,cur < Dw,min: caso se confirme, atualizar a informação de distorção mínima Wedgelet, regulando Dw,min = Dw,cur e armazenando o índice da lista do padrão de partição atual.
[0113] Em vez da distorção, uma medida de custo Lagrangian pode ser utilizada para encontrar o padrão Wedgelet utilizado. A medida de custo Lagrangian é uma soma ponderada de D + A- R que pondera a distorção D obtida através de um padrão wedgelet específico com a taxa R necessária para transmitir os parâmetros associados dado uma multiplicação Lagrangian A.
[0114] São possíveis diferentes estratégias para cada algoritmo, desde uma pesquisa exaustiva a estratégias de pesquisa rápidas. Pesquisa exaustiva significa que todos os elementos da lista de padrões Wedgelet são sucessivamente testados quanto à sua distorção mínima. Esta estratégia garante que o mínimo global é encontrado, mas com o preço da lentidão (especialmente importante para o codificador). Pesquisa rápida significa estratégias avançadas que reduzem o número necessário de passos de pesquisa. Uma estratégia de pesquisa rápida pode ser por exemplo um refinamento sucessivo. Em uma primeira fase, a distorção mínima Wedgelet para um subconjunto de padrões de partição resultante de um número limitado de posições da linha de partida e de chegada, por exemplo, apenas cada quarta amostra limite, é pesquisada. Em uma segunda fase, as posições de partida e de chegada seriam refinadas, por exemplo, permitindo cada segunda amostra limite, mas limitando o alcance das posições de partida e de chegada a um alcance em redor do melhor resultado da primeira fase. Ao refinar a dimensão do passo em cada ciclo, a distorção mínima Wedgelet é finalmente encontrada. Ao contrário da pesquisa completa, tal estratégia de pesquisa rápida apenas permite encontrar um local mínimo, mas o número de padrões Wedgelet a serem testados é significativamente baixo e consequentemente a pesquisa é mais rápida. De salientar que a dimensão do passo da primeira fase não precisa ser um valor fixo, mas pode ser estabelecida de modo adaptável, por exemplo, como uma função da dimensão do bloco.
[0115] O índice agora mesmo discutido indexando o curso da linha wedgelet ou do padrão wedgelet poderá ser designado como wedge_full_tab_idx.
2 - Contours
[0116] De salientar que apesar de maioria dos exemplos desta secção utilizar blocos quadráticos, as partições de blocos Contour e todos os respectivos modelos não se limitam aos blocos quadráticos, mas também são possíveis para qualquer dimensão de blocos retangulares.
2.1 - Partição de blocos Contour
[0117] O princípio básico das partições de blocos Contour é a partição na área de um bloco (200) em uma das duas áreas (202a), (202b). Ao contrário das partições de blocos Wedgelet, a linha de separação (201) entre as áreas não pode ser descrita por fórmula geométrica. Tal como ilustrado pelas duas áreas rotuladas com P1 e P2 na Fig. 9, as áreas de um Contour podem ter uma forma arbitrária e não são sequer necessárias para serem ligadas.
[0118] A Fig. 9 ilustra também a diferença entre espaço de sinal contínuo e discreto para partições de blocos Contour. Novamente, quaisquer amostras completas podem ser atribuídas como parte das duas áreas para o espaço de sinal discreto (Fig. 9, à direita). Quando a informação de partição de Contour deriva de um sinal de referência discreto (ver detalhes na secção 3.2.2) e não de uma fórmula geométrica, nenhum problema de atribuição idêntico para partições de bloco Wedgelet tem de ser considerado nesta situação.
2.2 - Padrões de partição Contour
[0119] De acordo com os padrões de partição Wedgelet (ver secção 1.2), a informação de partição de blocos Contour pode ser armazenada na forma de padrões de partição. Esse padrão é composto por uma série de dimensões uBxvB e cada elemento contém a informação binaria se a amostra conforme pertence à área P1 ou P2. A Fig. 10 ilustra um padrão de partição Contour exemplo, representando a informação da área binária através de cor de amostra preto ou branco.
2.3 - Modelação e abordagem Contour
[0120] O princípio de abordagem do sinal de profundidade de um bloco com um Contour é idêntico ao conceito de Wedgelet descrito na secção 1.3. Novamente, a informação necessária pode ser composta por dois elementos de informação de partição e a instrução de preenchimento da partição que, por seu lado, pode compreender um valor de partição constante (CPV) para cada uma das áreas, que pode ser calculado como o valor médio do sinal de profundidade original da área correspondente.
[0121] A abordagem Contour é ilustrada na Fig. 11, em que o sinal de profundidade original do bloco de predição (200) é realçado de modo a ilustrar os seus arredores e ilustrado ampliado. Novamente, a informação de partição em termos das áreas P1 e P2 é sobreposta ao bloco primeiro de depois do CPV ser calculado como o valor médio de todas as amostras abrangidas pela área. Como a informação de partição no exemplo da Fig. 11 corresponde em muito ao sinal de profundidade, o modelo Contour resultante com um CPV baixo para a área P1 (cinzento escuro) e um CPV elevado para a área P2 (cinzento claro) representa uma boa abordagem do bloco de profundidade.
3 - Codificação da partição do bloco
[0122] Para utilização dos métodos e algoritmos descritos nas secções anteriores no âmbito de uma estrutura de codificação para vídeo multi-janelas mais profundidade (MVD) tal como o ambiente de codificação das Figs. 1 a 3, novas rotinas ou modos de codificação deverão ser definidos e as ferramentas necessárias deverão ser implementadas no codificador ou no descodificador.
[0123] Para um codificador híbrido, tal como o codificador da Fig. 1, ou par do ramo de codificação (22v/d,1), estas ferramentas podem ser categorizadas como parte de estimação, predição ou sinalização. A estimação resume ferramentas que são apenas parte do processo de codificação pois dependem da informação de entrada original (por exemplo, imagens descomprimidas). Pelo contrário, a predição resume ferramentas que fazem parte do processo de codificação e descodificação, pois confiam apenas em informação transmitida e/ou reconstruída (por exemplo imagens descodificadas). A sinalização resume ferramentas para a codificação de informação transmitida a partir do codificador para o descodificador no fluxo de dados. Por consequência, é necessário que utilizem estados de codificação de sintaxe e entropia idênticos.
[0124] De salientar que para ferramentas de estimação a distorção pode ser derivada como conhecido de abordagens clássicas de codificação de vídeo, medindo a diferença entre distorção e sinal de profundidade original do bloco, por exemplo como o erro quadrático médio (MSE) ou o valor médio absoluto da diferença (MAD), ou como a distorção nas imagens sintetizadas, medindo a diferença nas imagens sintetizadas através de amostras que se encontram deslocadas devido ao sinal de profundidade distorcido do bloco.
[0125] Os conceitos para codificação de partição irregular de blocos de acordo com modelos a seguir descritos podem ser divididos nos de informação de partição de processamento (ver secções 3.1 e 3.2) e os do processamento CPVs (ver secção 3.3).
3.1 - Intracodificação baseada em Wedgelet
[0126] Esta secção apresenta dois modos de intracodificação baseada em partições de bloco Wedgelet (ver secção 1). Ambos os modos podem ser combinados com o método delta CPV (ver secção 3.3.2).
3.1.1 - Intramodelagem da partição de blocos wedgelet
[0127] O princípio básico deste modo é encontrar a melhor partição Wedgelet correspondente no codificador e explicitamente transmitir a informação de partição no fluxo de dados. No descodificador, o sinal do bloco é reconstruído utilizando a informação de partição explicitamente transmitida. Por consequência, as principais ferramentas para este modo fazem parte da estimação e sinalização.
[0128] A informação de partição Wedgelet para este modo não é prevista, mas pesquisada no processo de estimação no codificador. Para esta finalidade, a pesquisa de distorção mínima Wedgelet tal como descrita na secção 1.4.2 é efetuada utilizando o sinal de profundidade original do bloco atual como uma referência. Os resultados de pesquisa na partição Wedgelet melhor correspondente em relação ao método de distorção empregue.
[0129] Reconstruindo o bloco no descodificador, a informação de partição Wedgelet tem de ser sinalizada no fluxo de dados. Isto é efetuado através de transmissão explícita da posição ou um índice do padrão conforme na lista (ver secção 1.4.1). Este índice da lista é sinalizado com um número fixo de binários. Dada uma lista de padrões Wedgelet com N elementos, o índice do padrão utilizado é codificado utilizando códigos de comprimento fixo, ou códigos de comprimento variável, ou codificação aritmética (incluindo codificação aritmética de binário adaptado ao contexto), ou qualquer outro método de codificação de entropia. Métodos avançados para sinalização de informação de partição Wedgelet podem incluir a escolha da lista baseada na probabilidade de cada padrão de partição ou na utilização de uma representação alternativa da informação de partição, por exemplo posição da linha de partida e de chegada ou posição e gráfico da linha de partida.
3.1.2 - Intrapredição de partição de blocos Wedgelet
[0130] O princípio deste modo é prever a partição Wedgelet a partir da informação disponível para previamente codificar blocos na mesma imagem, isto é, intra-predição. Para uma melhor abordagem, a partição de predição é refinada no codificador tal como, por exemplo, através de variação da posição da linha de chegada. A única transmissão do desvio à posição da linha de chegada no fluxo de dados pode ser suficiente e no descodificador o sinal do bloco pode ser reconstruído utilizando a informação de partição que resulte da combinação da partição de predição e da transmissão de informação de refinamento tal como o desvio. Por consequência, as principais ferramentas para este modo fazem parte da predição, estimação e sinalização.
[0131] A predição da informação de predição Wedgelet para este modo funciona internamente com uma representação Wedgelet composta por uma posição de partida e um desvio da linha de separação. Para processamento adicional, em especial adaptar o desvio da posição da linha de chegada e reconstruindo o sinal do bloco, o resultado da predição é convertido em uma representação consistindo em uma posição da linha de partida e de chegada. O processo de predição deste modo deriva da posição da linha de partida e do desvio da informação de blocos previamente codificados, tais como os blocos vizinhos à esquerda e por cima do bloco atual. Na Fig. 12, apenas o bloco atual (210) e o bloco vizinho em cima (212) são ilustrados. Dever-se-á ter em consideração que alguns blocos, um ou ambos os blocos vizinhos, não se encontram disponíveis. Nesse caso, o processo para este modo é omitido ou continuado com a regulação de informação que falta para valores significativamente por defeito.
[0132] Tal como ilustrado na Fig. 12, dois conceitos principais são distinguidos para prever a informação de predição Wedgelet de acordo com o modelo presentemente sugerido. O primeiro conceito abrange o caso em que um dos dois blocos de referência vizinhos é do tipo Wedgelet, ilustrado no exemplo da Fig. 12, à esquerda, em que o bloco (212) é exemplarmente sujeito a partição wedgelet. O segundo conceito abrange o caso em que os dois blocos de referência vizinhos não são do tipo Wedgelet, mas do tipo intradireção, podendo ser do tipo por defeito intra- codificação, ilustrado na Fig. 12, à direita, em que o bloco (212) é exemplarmente sujeito a intracodificação.
[0133] Se o bloco de referência (212) for do tipo Wedgelet, o processo de predição pode funcionar do seguinte modo:
[0134] De acordo com a Fig. 12, à esquerda, o desvio mref do Wedgelet de referência é proveniente da posição de partida sref e a posição de chegada Eref em um primeiro passo. O princípio deste conceito é continuar o Wedgelet de referência, isto é, a linha de separação wedgelet (201’), no bloco atual (210), apenas possível se a continuação da linha de separação (201’) do Wedgelet de referência (212) intersetar mesmo o bloco atual (210). Desse modo, o próximo passo é verificar se é possível continuar o Wedgelet de referência. O exemplo da Fig. 12, à esquerda, ilustra um cenário em que é possível, mas se a posição de partida e de chegada do Wedgelet de referência estaria localizado na aresta esquerda e direita, a continuação da linha não intercetaria o bloco em baixo. No caso de a verificação ser positiva, a posição de partida s e a posição de chegada E são previstas em um passo final. Como o desvio mp é igual a mref por definição, as posições são simplesmente calculadas como os pontos de interseção da linha contínua com amostras limite de blocos.
[0135] Se o bloco de referência (212) for do tipo intradireção, o processo de predição pode funcionar do seguinte modo:
[0136] De acordo com a Fig. 12, à direita, o desvio mref do bloco de referência (212) é proveniente da direção intrapredição (214) em um primeiro passo. No caso de a intradireção (214) ser apenas prevista sob a forma de um índice abstrato, uma função de mapeamento ou de conversão pode ser necessária para obter o desvio mref. Ao contrário do conceito para predição de um bloco de referência (212) do tipo Wedgelet, nenhuma informação da linha de separação é prevista por um bloco de referência (212) do tipo intradireção. Por consequência, a posição de partida s é derivada da informação também disponível no descodificador, em especial as amostras adjacentes do bloco vizinho da esquerda e superior. Estes são ilustrados incubados na Fig. 12, à direita. A densidade a sombreado deverá representar o valor das amostras vizinhas. Tal como ilustrado na Fig. 12, à direita, destas amostras adjacentes a única que se junta ao par de amostras vizinhas com o máximo declive é selecionada como a posição de partida s. Aqui, o declive é entendido como a diferença absoluta dos valores das duas amostras consecutivas. Para uma partição Wedgelet, o ponto da linha de partida s separa as duas áreas (202a), (202b) com um valor de diferença em uma aresta (216) do bloco (210). Desse modo, o ponto de declive máximo entre as amostras adjacentes dos blocos vizinhos é a melhor predição de sp. Relativamente ao desvio, mp é igual a mref por definição novamente e juntamente com a posição de chegada pode ser calculada como um passo final.
[0137] Os dois conceitos apresentados complementam-se. Enquanto a predição dos blocos de referência do tipo Wedgelet possui informação de partição que melhor corresponde, mas nem sempre é possível, a predição dos blocos de referência do tipo intradireção é sempre possível, mas a informação de predição é a que menos serve. Desse modo, é benéfico combinar os dois conceitos em um modo de predição. Para executar isto sem sinalização adicional, a hierarquia de processo que se segue pode ser definida:
[0138] Se o bloco de referência for do tipo Wedgelet, tentar predizer a partição. Caso contrário, se o bloco de referência da esquerda for do tipo Wedgelet, tentar predizer a partição. Caso contrário, predizer a partição da informação de referência superior e da esquerda. Para este último, são possíveis diferentes critérios de decisão para decidir entre a direção superior e a da esquerda, desde simples dar prioridade superior a abordagens avançadas para juntos avaliar as direções e os declives de amostras adjacentes. Tais critérios avançados podem também ser aplicados, se ambos os blocos de referência superior e à esquerda forem do tipo Wedgelet.
[0139] O desvio da posição da linha de chegada para refinamento da partição Wedgelet pode não ser prevista, mas pesquisada no âmbito do processo de estimação no codificador. Para a pesquisa, são geradas partições candidatas a partir da partição Wedgelet prevista e um valor de desvio para a posição da linha de chegada , tal como na Fig. 12. Ao interagir sobre a variedade de valores de desvio e comparando a distorção das diferentes partições Wedgelet resultantes, o valor de desvio da partição wedgelet que melhor corresponde é determinado em relação ao método de distorção empregue.
[0140] Para a reconstrução do bloco no descodificador, o valor do desvio da posição de chegada da linha deve ser assinalado no fluxo de dados. O mesmo pode ser assinalado através da utilização de três elementos de sintaxe, um primeiro assinalando a presença de qualquer desvio , ou seja, se o mesmo é zero, um segundo significando o sinal do desvio, ou seja, desvio no sentido dos ponteiros do relógio e contra os ponteiros do relógio, no caso de o desvio não ser zero, e um terceiro denotando o valor de desvio absoluto menos um:
[0141] dmm_delta_end-flag, dmm_delta_end_sign_flag, dmm_delta_end_abs _minus1. No pseudo código, estes elementos de sintaxe poderão ser incluídos como:
Figure img0002
[0142] dmm_delta_end_abs_minus1 e dmm_delta_end_sign_flag podem ser utilizados para derivar DmmDeltaEnd, i.e. , do seguinte modo:
Figure img0003
[0143] O caso mais provável é o de que o valor de desvio seja zero. Para uma sinalização eficaz, é enviado um primeiro lote, com a função de uma bandeira, indicando se o desvio é zero ou não. Se o desvio for zero, os lotes adicionais k + 1 seguem para sinalizar valores de desvio em ±2k, em que o primeiro lote representa o sinal e os restantes lotes k o valor absoluto do desvio. Para codificação eficiente, k é habitualmente um número mais pequeno e pode ser adaptável, ou seja, dependendo da dimensão do bloco. O desvio da posição da linha de chegada pode ser também transmitido por qualquer outra técnica de codificação de entropia, incluindo códigos de comprimento fixo, códigos de comprimento variável, ou codificação de aritmética (incluindo codificação de aritmética binaria adaptável ao contexto).
3.2 - Predição inter-elementos para codificação de partição de blocos
[0144] Esta secção representa dois modos de codificação baseados na predição da informação de partição da textura. Ambos modos podem ser combinados com o método delta CPV (ver secção 3.3.2). Presume-se que a informação de textura (ou seja, a imagem de vídeo convencional) seja transmitida antes do mapa de profundidade associado.
[0145] O princípio básico destes modos pode ser descrito como prevendo a informação de predição a partir de um bloco de referência de textura, seja como uma partição de bloco Wedgelet ou Contour. Este tipo de predição pode referir-se como predição inter-elementos. Ao contrário da predição temporal ou inter-imagens, aqui não é necessário qualquer compensação de movimento ou de disparidade, visto que a imagem de referência de textura ilustra a cena ao mesmo tempo e da mesma perspectiva. Visto que a informação de partição não é transmitida para estes modos, a predição inter-elementos utiliza a imagem de textura reconstruída como uma referência. Dependendo do espaço de cor utilizado na codificação de textura, um ou mais elementos do sinal de textura são tidos em consideração para a predição inter- elementos. Para a codificação de vídeo é habitualmente utilizado um espaço de cor YUV. Aqui, o elemento luma contém a informação mais significativa para prever o sinal do bloco de profundidade, isto é, as arestas entre objetos. Assim, uma simples abordagem de predição inter-elementos explora apenas a informação do elemento luma enquanto abordagens adicionais apenas aproveitam os elementos croma, seja para uma predição conjunta ou para refinamento do resultado de predição luma.
3.2.1 - Predição baseada na textura de partição de blocos wedgelet
[0146] O princípio básico deste modo é prever a partição Wedgelet de um bloco de profundidade (210) no mapa de profundidade (213) a partir do bloco de referência de textura (216). Tal é executado pesquisando a partição Wedgelet que melhor corresponde para a imagem de textura reconstruída, como ilustrada na Fig. 13. Para esta finalidade, a pesquisa Wedgelet com distorção mínima, tal como descrito na secção 1.4.2, é executada, utilizando o sinal de textura reconstruído (215), mais especificamente o bloco luma (216) com a mesma posição e dimensões que o bloco de profundidade (210), como uma referência. O padrão de partição Wedgelet (218) resultante é utilizado para predição (220) do bloco de profundidade. Na Fig. 13, tal é realçado pelas caixas superiores e para o exemplo ilustrado a partição Wedgelet prevista (ao centro) aproxima muito bem o bloco de profundidade (210). Tal como a predição wedgelet descrita pode ser executada de modo idêntico no codificador e no descodificador, não é necessário sinalização da informação de partição para este modo.
3.2.2 - Predição baseada em textura de partição de blocos Contour
[0147] O princípio básico deste modo é prever a partição Contour de um bloco de profundidade do bloco de referência de textura. Tal é executado através da obtenção da partição (218’) Contour para a imagem de textura reconstruída (215), tal como ilustrado na Fig. 10. Para esta finalidade, é executada uma abordagem Contour, utilizando o sinal de textura reconstruído (215), mais especificamente o bloco luma (216) com a mesma posição e dimensões que o bloco de profundidade (210), como uma referência. Como tal, uma predição Contour pode ser executada de modo idêntico no codificador e no descodificador, e não é necessário informação de partição para este modo.
[0148] O padrão de partição de Contour pode ser gerado calculando o valor médio do bloco de referência (216) e estabelecendo-o como um limiar. Dependendo de se o valor de uma amostra no bloco de referência (216) está abaixo ou acima do limiar, a posição conforme é marcada como parte da área P1 ou P2 no padrão de partição (218’). O padrão de partição Contour resultante (218’) é utilizado para a predição (220) do bloco de profundidade (210). Na Fig. 3, tal é realçado através de caixas pretas e para o exemplo ilustrado a partição prevista Contour (ao centro) (218’) aproxima-se muito bem o bloco de profundidade (210). Contudo, a abordagem limiar conduz potencialmente a padrões desordenados com muitas pequenas partes isoladas, não se aproximando muito bem do sinal de profundidade. Para melhorar a consistência dos padrões Contour, o processo de desvio pode estender-se, por exemplo, pelas abordagens de filtragem ou segmentação.
[0149] O padrão de partição binário que define o padrão de partição contour, dmm PadrãoWedgelet[x, y], com (x,y) com x, y=0..nT-1 denotando as posições de amostras no bloco a ser particionado, pode derivar das amostras luma do vídeo de textura colocado de amostras luma de vídeo[x,y], com x, y=0..nT-1 do seguinte modo: Um limiar tH deriva como: tH = somaDC / (nT*nT), com somaDC += amostrasdevideoLuma[x,y] para x,y=0..nT-1
[0150] Os valores padrão são estabelecidos como: - Se amostrasdevideoLuma[x,y] são maiores que tH, aplica-se o seguinte: dmmWedgeletPadrão[x,y] = 1 - Caso contrário, aplica-se o seguinte: dmmWedgeletPadrão[x,y] = 0
3.3 - Codificação CPV
[0151] Conceitos para codificação CPV são apresentados nesta secção. Podem ser identicamente aplicados a todos os quatro modos de predição ou de estimativa de informação de partição de blocos (ver secções 3.1 e 3.2), como ambos os tipos de partição, Wedgelet e Contour, têm duas áreas de partição com um valor constante por definição. Por consequência, o processo CPV não precisa de distinguir entre tipos de partição ou modos de codificação, mas antes assume que o padrão de partição é dado para o bloco de profundidade atual.
3.3.1 - Predição de CPVs
[0152] Para uma melhor predição de CPV, são distinguidos três tipos de CPV, e que são: CPV original, CPV previsto, e delta CPV. A relação entre eles é esquematicamente ilustrada na Fig. 14, à direita, para a secção transversal do bloco (linha tracejada 230 na Fig. 14, à esquerda). Aqui, a linha (232) representa o sinal original do bloco (200) ao longo da linha (230). De acordo com a descrição nas secções 1.3 e 2.3, os CPVs originais (linhas 234 e 236 na fig. 14, à direita) são calculadas como o valor médio do sinal abrangido pela área P1 e P2 correspondente, respetivamente.
[0153] CPVs originais W and W conduzem à melhor abordagem do sinal original (à esquerda na Fig. 14, ou linha 232) para uma dada partição de blocos, mas visto que o sinal original não está disponível no descodificador, seria necessário transmitir os valores no fluxo de dados. Tal seria bastante dispendioso em termos de débito binário e pode ser evitado adotando o princípio da predição para CPVs. Em contrário dos CPVs originais, os CPVs previstos derivam de informação também disponível no descodificador, em especial as amostras adjacentes ao bloco vizinho da esquerda e superior, tal como ilustrado nas amostras de sombreado (203) na Fig. 14, à esquerda. Aqui, as amostras adjacentes são marcadas a cinzento e o CPV previsto para cada área do dado padrão de partição resulta do cálculo do valor médio dessas amostras que se juntam à área correspondente (linhas 238 e 249 na Fig. 14, à esquerda). De salientar que o bloco vizinho da esquerda ou superior não se encontra sempre disponível. Nesse caso, as respectivas amostras adjacentes podem ser determinadas para um valor por defeito.
[0154] Na Fig. 14, à direita, os CPVs previstos Wpred,P and Wpred,P são representados pelas linhas 238 e 240 e a ilustração realça que os CPVs originais e previstos podem ser significativamente diferentes. Na verdade, a diferença Δ W and ΔW entre valores originais e previstos depende da semelhança entre o sinal original (232) do bloco atual (200) e o sinal limite dos blocos vizinhos reconstruídos ilustrados nas amostras a sombreado (203). Esta diferença é definida como o CPV delta da área correspondente. Isto significar que se o CPV delta ΔW and ΔW é estimado no codificador e transmitido no fluxo de dados, é possível reconstruir o CPV original no descodificador adicionando o CPV delta ao CPV previsto. Apenas a transmissão dos valores delta em vez dos valores originais conduz a uma redução significativa do débito binário exigido.
[0155] Os valores CPVs de partição constantes previstos podem ser designados dmmPRedPArtitionDC1 e dmmPredPArtitionDC2 e derivam de amostras vizinhas p[x, y] do seguinte modo. De seguida, dmmWedgeletPAttern denota a partição das amostras envolvidas do bloco atual (x, y) com exemplaridade, x,y = 0..nT-1. Ou seja, posições de amostras vizinhas da aresta superior encontram-se localizadas em (x, - 1) com x = 0..nT-1 e as amostras vizinhas da aresta esquerda encontram-se localizadas em (-1,y) com y= 0..nT-1. Os valores de amostras vizinhas já reconstruídos são denotados p[x,y]. sumPredDC2, sumPredDC1, em umSamplesPredDC2 e em umSamplesPredDC1 são reguladas a zero no início: Para x = 0..nT-1 as amostras vizinhas em cima são somadas como: - Se dmmWedgeletPattern[x,0] é igual a 1 (partição P1, por exemplo), aplica-se o seguinte: sumPredDC2 += p[x, 1] e sumSamplesPredDC2 += 1 - Caso contrário (partição P2, por exemplo), aplica-se o seguinte: sumPredDC1 += p[x, -1] e sumSamplesPredDC1 += 1 Para y = 0..nT-1 as amostras vizinhas à esquerda são somadas como: - Se dmmWedgeletPAttern[0, y] é igual a 1, aplica-se o seguinte: sumPredDC2 += p[ -1, y ] e em umSamplesPredDC2 += 1 - Caso contrário, aplica-se o seguinte: sumPredDC1 += p[ -1, y ] and em umSamplesPredDC1 += 1 Os valores de partição constantes previstos são derivados do seguinte: - Se em umSamplesPredDC1 é igual a 0, aplica-se o seguinte: dmmPredPartitionDC1 = 1 << ( BitDepthY - 1 ) - Caso contrário, aplica-se o seguinte: dmmPredPartitionDC1 = sumPredDC1 / em umSamplesPredDC1 - Se em umSamplesPredDC2 é igual a 0, aplica-se o seguinte: dmmPredPartitionDC2 = 1 << ( BitDepthY - 1 ) - Caso contrário, aplica-se o seguinte: dmmPredPartitionDC2 = sumPredDC2 / em umSamplesPredDC2
3.3.2 - Quantificação e adaptação de CPVs delta
[0156] Baseado no princípio de predição CPV, um conceito para processo eficiente de CPVs delta é introduzido nesta secção. A transmissão de CPVs delta neste fluxo de dados tem como objetivo a redução da distorção do sinal reconstruído para codificação de partição de blocos. Contudo, o débito binário exigido para a sinalização de valores CPV delta delimita o benefício desta abordagem, pois a diferença entre sinal original e previsto é também abrangido pela transformação de codificação do resíduo. Desse modo, a quantificação dos CPVs delta pode ser introduzida da seguinte forma: os valores são linearmente quantificados após estimação no codificador e dequantificados antes da reconstrução no descodificador. A transmissão dos CPVs delta quantificados tem a vantagem de que o fluxo de dados é reduzido, enquanto o sinal reconstruído dos valores dequantificados difere apenas ligeiramente da melhor aproximação possível. Por consequência, tal conduz a um baixo custo de distorção de proporção comparado com o caso sem quantificação. Relativamente à dimensão do passo da quantificação linear, a execução pode ser ainda melhorada aplicando um princípio bem conhecido da codificação de transformação, em especial definindo a dimensão do passo de quantificação como uma função do QP e não como um valor fixo. Estabelecer a dimensão do passo de quantificação para os CPVs delta como
Figure img0004
) revelou-se eficiente e robusta.
[0157] Uma possível sinalização dos CPVs delta no fluxo de dados para as duas áreas de um bloco de partição poderá ser construída da seguinte forma:
Figure img0005
[0158] A transmissão no fluxo de dados para um certo bloco pode ser tornada dependente em um elemento de sintaxe DmmDeltaFlag, explicitamente transmitido ou derivado de algum elemento de sintaxe do modo de codificação.
[0159] dmm_dc_1_abs, dmm_dc_1_sign_flag, dmm_dc_2_abs, dmm_dc_2_sign_flag podem ser utilizados para obter os valores DmmQuantOffsetDC1 e DmmQuantOffsetDC2 do seguinte modo: DmmQuantOffsetDC1[ x0 ][ y0 ] = (1 − 2 *dmm_dc_1_sign_flag[ x0 ] [ y0 ]) * dmm_dc_1_abs[ x0 ][ y0 ] DmmQuantOffsetDC2[ x0 ][ y0 ] = (1 − 2 *dmm_dc_2_sign_flag[ x0 ] [ y0 ]) * dmm_dc_2_abs[ x0 ][ y0 ]
[0160] Os desvios de dequantificação dmmOffsetDC1 e dmmOffsetDC2 podem ser obtidos de DmmQuantOffsetDC1 e DmmQuantOffsetDC2 do seguinte modo: dmmOffsetDC1 = DmmQuantOffsetDC1 * Clip3( 1, ( 1 << BitDepthY ) − 1, 2 (QP’ Y /10)- 2 ) dmmOffsetDC2 = DmmQuantOffsetDC2 * Clip3( 1, ( 1 << BitDepthY ) − 1, 2 (QP’ Y /10)- 2 )
[0161] BitDepthy pode ser a profundidade do fluxo no qual DmmQuantOffsetDC1 e DmmQuantOffsetDC2 são internamente representados, no Codificador e Descodificador, e QP’ pode ser o parâmetro de quantificação QP agora mesmo mencionado nos níveis de coeficiente de transformação de codificação do residual de predição do segmento atual, por exemplo.
[0162] Os valores de partição constantes CPVs são então obtidos adicionando os desvios dequantificados dos CPVs previstos: Para a primeira partição: dmmPredPartitionDC1 + dmmOffsetDC1 Para a segunda partição: dmmPredPartitionDC2 + dmmOffsetDC2
[0163] Tal como já mencionado no início da secção 3, a distorção para ferramentas de estimação pode ser medida de duas maneiras. Relativamente aos CPVs delta, estes métodos de distorção afetam muito o processo de estimação. No caso de a distorção ser medida como a diferença entre o sinal de profundidade de distorção e original do bloco, o processo de estimação pesquisa a aproximação mais cerrada dos CPVs originais através de simplesmente calcular e quantificar os CPVs delta tal como anteriormente descrito. No caso de a distorção ser medida para imagens sintetizadas, o processo de estimação pode estender-se para melhor adaptarem os CPVs delta à qualidade das imagens sintetizadas. Tal é baseado no fato de que esses CPVs delta que conduzem à melhor aproximação dos CPVs originais não conduzirem necessariamente à melhor qualidade de imagem sintetizada. Para descobrir os CPVs delta que conduzem à melhor qualidade de imagem sintetizada, o processo de estimação estende-se por uma pesquisa de distorção mínima (cp. Secção 1.4.2), que interage sobre todas as combinações de CPV delta possíveis para as duas partições. Por uma questão de processo e sinalização eficientes o alcance dos valores testados pode ser limitado. Os resultados de pesquisa na combinação de CPVs delta que originam a distorção mínima nas imagens sintetizadas e para a transmissão destes valores são finalmente quantificados.
[0164] De salientar que o método CPV delta permite potencialmente saltar a transformação/quantificação e transmissão do resíduo (restante). Devido a uma aproximação cerrada do sinal de profundidade original ou ideal, respetivamente, o impacto da omissão do resíduo é limitado, especialmente se avaliado em relação à qualidade de imagens produzidas.
4 - Codificação de modos 4.1 - Sinalização de modos
[0165] No processo de codificação, é selecionado um modo para cada otimização através do grau de distorção e a informação do modo é sinalizada no fluxo de dados tais como, por exemplo, antes da partição e informação CPV. De acordo com a secção 3, os quatro modos de partição que se seguem podem ser definidos (para além dos modos de partição não irregular, por exemplo): - Wedgelet_ModelIntra: Intra modelação de partição de blocos Wedgelet (ver secção 3.1.1) - Wedgelet_PredIntra: Intra predição de partição de blocos Wedgelet (Ver secção 3.1.2) - Wedgelet_PredTexture: Predição baseada na textura da partição de blocos Wedgelet (ver secção 3.2.1) - Contour_PredTexture: Predição baseada na textura da partição de blocos Contour (ver secção 3.2.2)
[0166] Cada um dos quatro modos pode ser aplicado com ou sem o método para o processo CPV delta (ver secção 3.3.2), resultando em oito diferentes ID do modo para sinalização do descodificador, enquanto o tipo de processo tem de ser aplicado para predição e reconstrução do bloco.
[0167] Se os modos de partição de blocos anteriormente introduzidos forem implementados como um conjunto adicional de modos de codificação de blocos em uma estrutura de codificação existente tal domo a das Figs. 1 a 3, uma bandeira adicional antes da informação do modo pode ser transmitida no fluxo de dados, sinalizando se um modo de partição de blocos é utilizado ou não. No caso de esta bandeira não estar estabelecida, segue-se a sinalização do modo de codificação de blocos normal. Caso contrário, uma ID do modo é sinalizada, que especifica o modo de partição de blocos atual e se os CPVs delta são também transmitidos ou não. No fluxo de dados, a ID do modo é representada através de três lotes.
4.2 - Pré-seleção do modo
[0168] A ideia por detrás da pré-seleção do modo é reduzir o esforço de processamento e sinalização para a codificação de partição de blocos (ver secção 3), através de conceitos de implementação que excluem modos muito pouco prováveis de serem selecionados para o bloco atual.
[0169] Os primeiros conceitos de pré-seleção do modo, inutiliza modos, cuja probabilidade é muito pequena para pequenas dimensões de blocos. Isto significa que a maioria dos casos em que a distorção é elevada comparada com o grau necessário para sinalização da informação de modo. Entre os quatro modos definidos na secção 4.1, tal aplica-se a Wedgelet_PredIntra e Contour_PredTexture. Com base em uma análise estatística, estes dois modos são inutilizados para dimensões de blocos de 4 x 4 e mais pequenos.
[0170] O segundo conceito de pré-seleção de modo aplica-se aos dois modos com base na predição inter-componentes, em especial Wedgelet_PredTexture e Contour_PredTexture. A ideia por detrás deste conceito é adaptavelmente excluir estes modos, caso seja muito pouco provável que um padrão de partição de blocos com significado possa derivar do bloco de referência de textura. Tais blocos são caracterizados por serem relativamente planos sem arestas e contornos significativos. Para identificar estes blocos, a variação do bloco de referência de textura é analisada. Os critérios para inutilizar os dois modos mencionados são que a variação está abaixo de um certo limiar. Este método de pré-seleção do modo é implementado do seguinte modo: A variação é medida como o erro médio absoluto (MAE) entre amostras luma e o valor médio do bloco de referência (ver 216 na Fig. 13). Em vez de um valor fixo, o limiar é estabelecido como uma função do parâmetro de quantificação (QP). Com base nos resultados de uma análise estatística dos valores MAE, o limiar é QP estabelecido como tMAE(QP) = y, tendo o efeito, que estes dois modos são excluídos para mais blocos, se o QP for superior e vice-versa.
[0171] A Fig. 15 ilustra uma visualização deste método de pré-seleção do modo, com detalhes para dois blocos luma de textura (250) e (2502) e as diferenças absolutas versus o valor médio à direita em (2521) de (2522), respetivamente. O bloco (2501) tem uma aparência de valor de amostra espacial plana com quase nenhuma estrutura, que se reflete por uma variação muito baixa. Como nenhuma informação de partição com significado pode ser prevista a partir deste bloco (2501), os modos Wedgelet_PredTextura e Contour_PredTexture não são tidos em consideração. Pelo contrário, esse bloco (2502) possui uma elevada variação, resultando de arestas a contornos significativos. Assim, os dois modos são tidos em consideração, como é provável que a informação de partição obtida do bloco (2502) é um bom preditor para a partição do bloco de profundidade conforme.
Figure img0006
Figure img0007
[0172] Tabela 1: Modos de acordo com decisões de pré-seleção.
[0173] A Tabela 1 resume os efeitos dos dois conceitos de pré-seleção do modo nos modos disponíveis. Excluindo certos modos, o número de IDs de modo sinalizadas no fluxo de dados diminui. A tabela ilustra que os dois métodos podem ser combinados de maneira eficiente, à medida que cada método reduz o número de lotes necessário para sinalizar a ID de modo em um, e a combinação de ambos os modos reduz o número de lotes em dois.
5 - Generalidades
[0174] Após tendo sido descritos vários modos de partição irregular possíveis, a sua divisão conceitual em determinar a bissegmentação (ver 3.1 e 3.2) por um lado, e codificar o parâmetro de codificação para as duas partições por outro (ver 3.3), assim como a sua possível aplicação em uma estrutura de codificação e a descrição de um ambiente de codificação possível ao qual tais modos podem ser adicionalmente previstos, os modelos resultantes para os respectivos descodificadores e codificadores deverão ser descritos, parcialmente em termos mais genéricos. Em especial, as secções que se seguem realçam detalhes vantajosos específicos anteriormente descrito e explicam como estes detalhes podem ser utilizados nos descodificadores e codificadores em um sentido mais genérico do que o anteriormente descrito. Em especial, tal como será de seguida descrito, alguns destes aspetos vantajosos utilizados nos modos anteriores, podem ser individualmente explorados.
5.1 - Continuação da linha de separação Wedgelet pelos limites dos blocos
[0175] Tal como se tornou claro na discussão anterior, a utilização de partição wedgelet forma um possível compromisso entre sinalização complementar para sinalizar a partição por um lado, e a quantidade de variedade tangível pela partição irregular por outro. Contudo, uma notável quantidade de dados de informação complementar seria necessária para explicitamente transmitir a informação de partição, ou seja, a posição da linha de separação wedgelet como, por exemplo, através da utilização de indexação da posição da linha de separação wedgelet tal como, por exemplo, de acordo com o conceito anteriormente descrito em relação à secção 3.1.1
[0176] Por conseguinte, a continuação da linha de separação wedgelet pelos limites dos blocos forma uma maneira possível de solucionar o problema agora mesmo descrito. A descrição anterior na secção 3.1.2 explica um exemplo específico para tirar partido da solução deste problema. Mais genericamente, contudo, a exploração da ideia da continuação da linha de separação wedgelet sobre os limites dos blocos, um descodificador pode, de acordo com um modelo desta invenção, ser construído tal como anteriormente descrito em relação à Fig. 16. Contudo, todos os detalhes descritos na secção 3.1.2 e as outras secções entre 3 e 4 deverão ser entendidos como possíveis detalhes de execução, podendo ser combinados com a descrição individualmente apresentada em baixo.
[0177] O descodificador da Fig. 16 é geralmente indicado com o sinal de referência (300) e está configurado para reconstruir uma série de amostras (302) a partir de um fluxo de dados (304). O descodificador está configurado para executar a reconstrução através da descodificação baseada no bloco. Por exemplo, a série de amostras (302) pode fazer parte de uma sequência de séries de amostras e o descodificador (300) pode ser implementado como um descodificador híbrido à base de blocos que suporta diferentes modos de codificação para cada bloco (304). A série de amostras pode ser qualquer informação de amostras espacial tal como, por exemplo, mapas de textura ou de profundidade. Por exemplo, o descodificador (300) da Fig. 16 pode ser implementado de modo a reconstruir uma imagem incluindo vídeo/textura e mapas de profundidade/disparidade representando a série de amostras (302). Até agora, o descodificador (300) pode ser implementado como o par de ramos de descodificação (106d,1) mais (106v,1) ou pode ser implementado individualmente de acordo com o ramo de descodificação (106d,1). Ou seja, o descodificador (300) pode ser configurado para reconstruir a série de amostras (302) utilizando os modos de codificação tais como intrapredição, predição temporal (compensada pelo movimento) e/ou predição interimagens (compensada pela disparidade), com e sem codificação residual de residual de predição. Os modos de codificação podem, por exemplo, compreender também um modo de codificação wedgelet explícito de acordo com o qual para um bloco respectivo, a posição da sua linha de separação wedgelet é explicitamente transmitida no fluxo de dados (304), tal como o modo descrito na secção 3.1.1
[0178] De qualquer modo, este descodificador (300) está configurado de modo que o mesmo seja efetuado para um bloco atual (210), de modo que o bloco para o qual uma opção do modo de codificação pré-determinada é sinalizada em um fluxo de dados (304), os passos agora descritos. As funcionalidades envolvidas nestes passos podem ser integradas no módulo intra-predição (36) ou no módulo intra-predição e no módulo de troca (52).
[0179] Os passos executados pelo descodificador (300) para um bloco de um respectivo modo são uma predição da posição da linha de separação (306) seguido por um refinamento de posição (308) e uma descodificação (310). Em especial, o descodificador da Fig. 16 está configurado para prever no passo (306) uma posição (312) de uma linha de separação wedgelet no bloco (210) da série de amostras (302) dependendo de uma linha de separação wedgelet (201’) de um bloco limítrofe (212) do bloco (210) de modo que a linha de separação wedgelet na posição prevista (312) forme uma extensão ou continuação da linha de separação wedgelet (201’) do bloco limítrofe (212) no bloco atual (210). Novamente, o descodificador (300) pode ter derivado a posição da linha de separação wedgelet (201’) do bloco limítrofe (212) através da respectiva sinalização explícita para o bloco (212) a partir do fluxo de dados (304) ou através de alguma opção de codificação, tal como através da detecção de arestas em uma série de amostras de textura, a qual série de amostras (302) pertence ou outro idêntico. Outras possibilidades foram anteriormente descritas e serão adicionalmente descritas em seguida.
[0180] Tal como descrito anteriormente, a linha de separação wedgelet do bloco (210), a posição (312) prevista em (306), pode ser uma linha reta tal como sucedeu com a descrição anterior na secção 3.1.2. Contudo, em alternativa, as linhas podem ser definidas mais geralmente, por exemplo utilizando uma sequência de saltos de posições de amostras, ou seja, uma sequência de símbolos definindo cada um os próximos pixéis em linha, pertencendo à linha de separação. As linhas podem ser dotadas de uma curvatura analiticamente pré-determinada também prevista a partir da linha (201’) ou pode ser obtida de alguma outra porção anteriormente processada do fluxo de dados (304).
[0181] Em especial, a predição (306) pode ser configurada de modo que, mais tarde, a linha de separação do bloco (210) seja preliminarmente determinada em relação à direção de extensão geral assim como a posição lateral à direção de extensão geral da linha de separação wedgelet. No caso de uma linha curva, a curva utilizando, por exemplo, uma função polinomial, pode ser utilizada para extrapolar a linha de separação do bloco (212) e localizar a linha de separação do bloco (210), respetivamente. No caso de uma linha reta, o declive e a posição em uma direção lateral à linha de separação wedgelet é determinado.
[0182] Relativamente à predição (306), deverá ser também mencionado que a proximidade e a extensão não têm necessariamente que ser definidas em termos espaciais. Pelo contrário, os blocos (210) e (212) podem também ser temporariamente limítrofes. Por exemplo, o bloco (212) pode ser o bloco co-localizado de uma série de amostras de uma sequência de séries de amostras temporariamente limítrofes da série de amostras (302). Nesse caso, a extensão da linha de separação wedgelet (201) no bloco (210) seria uma “continuação temporal”.
[0183] Uma possibilidade explícita do modo como a predição (306) poderá ser executada foi descrita em cima na secção 3.1.2, descrição esta que aqui se encontra referida. O refinamento da posição (308) tem como objetivo refinar a posição prevista (312). Ou seja, o descodificador (300) está configurado para, na posição de refinamento (308), refinar a posição prevista (312) da linha de separação wedgelet (301) do bloco (210) utilizando informação de refinamento sinalizada no fluxo de dados (304). Desse modo, a linha de separação wedgelet (201) refinada divide os blocos (210) em primeiras e segundas partições wedgelet (202a) e (201b).
[0184] Tal como anteriormente descrito, o descodificador (300) pode ser configurado de modo que a linha de separação wedgelet (201) na posição de predição (312) forme uma extensão colinear espacial da linha de separação wedgelet (201’) do bloco limítrofe (212), e o refinamento possa ser restrito de modo que uma posição de partida (314) da linha de separação wedgelet do bloco (210) pré-determinado, que se junta ao bloco limítrofe (212), seja mantida em relação à posição de predição (312), independentemente da informação de refinamento. Ou seja, no caso de uma linha de separação wedgelet reta, apenas o seu declive pode ser refinado, enquanto o ponto de partida da linha de separação wedgelet (201) na aresta (316) do bloco (210) dos blocos de separação (210) e (212), se mantém inalterado. Por exemplo, o desvio da extremidade oposta (318) da linha de separação wedgelet (201), isto é, da extremidade oposta da linha de separação wedgelet (201), ao longo da circunferência do bloco (210) da extremidade oposta (320) de acordo com uma posição da linha de separação wedgelet de predição (312) pode ser sinalizado no fluxo de dados (304) tal como anteriormente descrito em relação à secção 3.1.2.
[0185] Na secção 3.1.2, o desvio foi denotado como Eoff. Tal como descrito nesta secção, o descodificador (300) pode estar configurado para extrair informação de refinamento do fluxo de dados utilizando descodificação de entropia onde possíveis diferentes desvios da posição de amostras da extensão direta (320) ao longo da circunferência do bloco (210), medidos em unidades de uma distância de posição da amostra ao longo da direção da circunferência, têm uma probabilidade de estimação a ela associada que monotonicamente aumenta de desvios maiores para desvios mais pequenos, de modo que os desvios mais pequenos têm uma elevada probabilidade a ela associada do que os grandes desvios. Por exemplo, o comprimento da palavra de código VLC pode monotonicamente diminuir.
[0186] Tal como anteriormente descrito, podem ser utilizados três elementos de sintaxe para transmitir Eoff, uma primeira sinalização em como se qualquer desvio Eoff se encontra presente, ou seja, se o mesmo é zero, uma segunda significando que o sinal do desvio, isto é, desvio no sentido dos ponteiros do relógio ou no sentido contrário aos ponteiros do relógio, no caso do desvio não ser zero, e uma terceira indicando o valor de desvio absoluto menos um: dmm_delta_end_flag , dmm_delta_end_sign_flag, dmm_delta_end_abs_minus 1. Em pseudo código, estes elementos de sintaxe podem ser incluídos como:
Figure img0008
[0187] dmm_delta_end_abs_minus1 e dmm_delta_end_sign_flag podem ser utilizados para obter DmmDeltaEnd, i.e. ,do seguinte modo:
Figure img0009
[0188] Depois, o codificador (300) é configurado para, na descodificação (310), descodificar o bloco pré-determinado (210) em unidades da primeira e segunda partições wedgelet (202a) e (202b). Na descrição anteriormente avançada nas secções 3 e 4, em especial na secção 4, a descodificação (310) envolveu uma predição do bloco atual (210) através da atribuição de um primeiro valor de partição constante W às amostras da posição da série de amostras na primeira partição wedgelet (202a) e um segundo valor de partição constante W às amostras da posição da série de amostras na segunda partição wedgelet (202b). A vantagem desta implementação do procedimento de descodificação (310) é o de que a quantidade de informação complementar pode ser mantida baixa. Em especial, esta possível implementação é especialmente vantajosa no caso do tipo de informação transmitida pela série de amostras dotada da característica anteriormente mencionada composta de planaltos de valores relativamente planos com arestas vivas entre elas, tal como no caso dos mapas de profundidade. Contudo, seria mesmo possível que o descodificador atribuísse outros parâmetros de codificação individualmente às partições wedgelet (202a) e (202b). Por exemplo, a predição compensada por movimento e/ou disparidade pode ser aplicada individualmente às partições (202a) e (202b) na descodificação (310) obtendo-se assim parâmetros de movimento e/ou disparidade respectivos individualmente para partições (202a) e (202b) tais como vetores individuais. Em alternativa, as partições (202a) e (202b) podem ser individualmente intra-códigos na codificação (306) tal como individualmente aplicar uma direção intra-código respectiva na mesma.
[0189] De acordo com a Fig. 16, a informação que se segue pode estar presente no fluxo de dados para o bloco (210:) 1) o identificador de opção de codificação com a respectiva fase pré-determinada ativando os passos (306)-(310), 2) a informação de refinamento tal como o desvio da posição de chegada, 3) como opção, parâmetros de codificação, tais como CPV ou CPV residual, para uma ou ambas as partições (202a), (202b), opcional, e da mesma maneira para a predição, espacial ou temporalmente de blocos/amostras limítrofes, 4) como opção, parâmetro de codificação residual tal como CPV Delta.
[0190] Ainda, o descodificador (300) da Fig. 16 pode ser configurado de modo que o modo de codificação executado pelos procedimentos (306) a (310) seja apenas uma opção do modo de codificação entre duas opções do modo de codificação ativadas por um respectivo valor comum pré-determinado de um respectivo identificador de opção de codificação no fluxo de dados (304). Por exemplo, o descodificador (300) da Fig. 16 poderia ser configurado para retirar um identificador de opção de codificação do fluxo de dados (304), se o identificador de opção de codificação possuir um valor pré-determinado, verificando se qualquer um dos conjuntos de blocos candidatos limítrofes ao bloco pré-determinado possui uma linha de separação wedgelet que se estende pelo bloco (210). Por exemplo, os blocos candidatos podem abranger os blocos espacialmente limítrofes (304) da série de amostras (302) que precede o bloco atual (210) em uma ordem de codificação, ou ordem de descodificação, aplicada ao descodificador (300) em blocos de descodificação (304) da série de amostras (302). Por exemplo, a ordem de codificação pode procurar blocos (304) por linhas da esquerda para a direita, de cima a baixo, e nesse caso os blocos candidatos podem abranger o bloco imediatamente limítrofe à esquerda do bloco atual (210) e o bloco imediatamente limítrofe acima do bloco atual (210) tal como o bloco (212). Se a verificar revelar a existência desse tipo de bloco wedgelet entre o conjunto de blocos candidatos, o descodificador (300) pode executar a predição (306), o refinamento (308) e a descodificação (310) de maneira presuntiva. Caso contrário, contudo, o descodificador (300) pode executar a predição (306) de modo diferente. Tal como descrito anteriormente na secção 3.1.2 e tal como será descrito com maior detalhe em relação à próxima secção, o descodificador (300) pode então estar configurado para prever a posição da linha de separação wedgelet (201) no bloco atual (210) através de estabelecimento de uma direção de extensão à linha de separação wedgelet (201) no bloco atual (210), dependendo de amostras limítrofes reconstruídas limítrofes ao bloco atual (210) ou dependendo de uma direção intra-predição de um ou mais blocos de intra-predição dos blocos candidatos. No que diz respeito às possíveis implementações para a predição dos valores de partição constantes na descodificação (310), é feita referência às explicações anteriores em cima e em baixo.
[0191] Ainda, dever-se-á ter em consideração que uma vantagem específica resulta se a continuação da linha de separação wedgelet pelos limites do bloco for combinada com um modo de codificação que permita mais liberdade na bissegmentação do bloco atual, tal como um modo de contorno tal como anteriormente descrito e de seguida descrito também. Para se ser mais preciso, o descodificador (300) pode ser configurado para suportar o modo realizado pelos blocos (306) a (310) assim como um modo de partição de contorno, permitindo assim adaptar a codificação complementar às necessidades dos blocos de modo adequado.
[0192] De qualquer maneira, o bloco tal como descodificado/reconstruído pelos procedimentos (306) a (310), pode servir como uma referência em um salto de predição do descodificador (300). Ou seja, o resultado da predição no caso de utilização da predição bi-valores, pode servir como uma referência, por exemplo, para predição compensada por movimento e/ou disparidade. Ainda, o valores reconstruídos obtidos pela descodificação (310), podem servir como amostras limítrofes espaciais em intra-predição quaisquer blocos (304) da série de amostras (302) a seguir a uma ordem de descodificação.
[0193] A Fig. 17 ilustra um possível codificador existente no descodificador da Fig. 16. Em especial, a Fig. 17 ilustra um codificador (330) para codificar uma série de amostras em um fluxo de dados configurado para a predição de uma linha de separação wedgelet em um bloco pré-determinado da série de amostras dependendo de uma linha de separação wedgelet de um bloco limítrofe do bloco pré-determinado de modo que a linha de separação wedgelet na posição de predição forme uma extensão da linha de separação wedgelet do bloco limítrofe no bloco pré-determinado. Esta funcionalidade é ilustrada em (332). Além disso, o descodificador (330) possui a funcionalidade de refinar a posição de predição da linha de separação wedgelet utilizando informação de refinamento, em que a linha de separação wedgelet do bloco pré-determinado divide o bloco pré-determinado em primeira e segunda partições wedgelet. O codificador (330) possui também uma funcionalidade de inserção (336) de acordo com a qual a informação de refinamento é inserida no fluxo de dados e uma funcionalidade de codificação de acordo com a qual o codificador (330) codifica o bloco pré-determinado em unidades da primeira e segunda partição wedgelet.
5.2 - Predição de direção de extensão da linha de separação wedgelet a partir de uma direção de intra-predição de um bloco limítrofe
[0194] Tal como anteriormente descrito, até a partição de blocos wedgelet precisa de uma quantidade considerável de informação complementar de modo a informar o lado da descodificação sobre a posição da linha de separação wedgelet.
[0195] Uma ideia na qual os modelos anteriormente descritos são baseados é a de que a direção intra-predição de um bloco limítrofe, intra-predição pode ser utilizado para a predição da direção de extensão da linha de separação wedgelet de um bloco atual, reduzindo desse modo o grau de informação complementar necessária para transmitir a informação de partição.
[0196] Na descrição anterior, a secção 3.1.2 ilustrou uma possível implementação dos modelos anteriormente descritos que, por seu lado, são descritos em termos mais genéricos de modo a não serem tão restritos à conglomeração de modos de partição irregular anteriormente descritos nas secções 3 e 4. Em vez disso, a ideia agora mesmo mencionada pode ser vantajosamente utilizada independentemente de outros detalhes descritos na secção 3.1.2, tal como descrito em baixo com mais detalhe. Contudo, todos os detalhes descritos na secção 3.1.2 e nas outras secções deverão ser entendidos como detalhes de uma possível realização, podendo ser combinados com a descrição a seguir apresentada individualmente.
[0197] Por consequência, a Fig. 18 ilustra um modelo para um descodificador (400), explorando a ideia agora mesmo descrita e pode ser implementado tal como anteriormente descrito em relação à secção 3.1.2 e/ou às Fig. 1 a 3 na medida do possível no que diz respeito às funcionalidades adicionais. Ou seja, o descodificador (400) da Fig. 18 está configurado para reconstruir uma série de amostras (302) a partir de um fluxo de dados (304). Regra geral, o descodificador (400) da fig. 18 pode ser implementado tal como estabelecido em cima na secção 5 em relação ao descodificador (300) da Fig. 16, exceto para o modo de codificação definido pelas funcionalidades (306) a (310), opcional para o descodificador da Fig. 18. Ou seja, o descodificador (400) da Fig. 18 pode operar para reconstruir a série de amostras (302) da Fig. 18 através da descodificação baseada em blocos, tal como a descodificação híbrida baseada em blocos. Dentre os modos de codificação disponíveis para blocos (303) da série de amostras (302), existe um modo de intra-predição adicionalmente descrito em relação ao módulo de funcionalidade (402) do descodificador (400). Tal como no caso do codificador (300) da fig. 18, a divisão da série de amostras (302) em blocos (303) pode ser fixa por defeito, ou pode ser sinalizada no fluxo de dados (304) através da respectiva informação de divisão. Em especial, o descodificador (400) da Fig. 18 pode ser construído tal como descrito em cima em relação às Figs. 1 a 3, em especial como o descodificador da Fig. 3 ou qualquer um dos descodificadores de imagens tal como o par de ramos de codificação (106v/d1), ou simplesmente como um descodificador de profundidade como o (106d,1).
[0198] Em especial, o descodificador (400) da Fig. 18 possui uma funcionalidade (402) de acordo com a qual um primeiro bloco (212) da série de amostras (302) é previsto utilizando a intra-predição. Por exemplo, o modo de inter-predição é sinalizado no fluxo de dados (304) para o bloco (212). O descodificador (400) pode ser configurado para executar a intra-predição (402) através do preenchimento do primeiro bloco (212) copiando valores reconstruídos das amostras (404) da série de amostras (302), limítrofe ao primeiro bloco (212) ao longo de uma direção de intra- predição (214) no primeiro bloco (212). A direção de intra-predição (214) pode também sinalizar no fluxo de dados (304) para o bloco (212), tal como através de indexação de uma das várias direções possíveis. Em alternativa, a própria direção de intra- predição (214) do bloco (212) pode ser sujeita a predição. Observe-se, por exemplo, a descrição das Figs. 1 a 3 em que a intra-predição (36) do ramo de descodificação (106d,1) pode ser configurada para executar o passo (402). Para se ser mais preciso, as amostras limítrofes (404) podem pertences aos blocos (303) da série de amostras (302) que já passaram na ordem de descodificação através do descodificador (400) de modo que a sua reconstrução esteja já disponível, incluindo os valores de reconstrução das amostras limítrofes (404) do bloco limítrofe (212). Tal como anteriormente descrito, vários modos de codificação podem ter sido utilizados pelo descodificador (400) para reconstruírem estes blocos precedentes, precedendo na ordem de descodificação.
[0199] Além disso, o descodificador (400) da Fig. 18 é configurado para a predição da posição (312) de uma linha de separação wedgelet (201) em um segundo bloco (210) limítrofe ao primeiro bloco (212) estabelecendo uma direção de extensão da linha de separação wedgelet (201) no segundo bloco (210) dependendo da direção intra-predição (214) do bloco limítrofe (212), em que a linha de separação wedgelet (201) divide o segundo bloco (210) na primeira e segunda partições wedgelet (202a) e (202b). Por exemplo, o descodificador (400) da Fig. 18 pode ser configurado para estabelecer a direção de extensão da linha de separação wedgelet (201) como igual à direção de intra-predição (214) o mais depressa possível em relação a uma quantificação de uma representação da direção da extensão da linha de separação wedgelet (201). No caso de uma linha de separação reta, a direção de extensão simplesmente corresponde ao declive da linha. No caso de linhas de separação curvas, a direção de intra-predição pode, por exemplo, ser adotada como o local do declive da linha de separação do bloco atual no limite do bloco limítrofe. Por exemplo, o descodificador (400) da Fig. 18 seleciona a direção de extensão entre um conjunto de possíveis direções de extensão que formam a melhor abordagem da direção de intra-predição (214).
[0200] Assim, na predição (404) o descodificador (400) prevê a posição (312) da linha de separação wedgelet (201) do bloco atual (210) pelo menos no que diz respeito à sua direção de extensão. A derivação da posição da linha de separação wedgelet (201) do segundo bloco (210) pode ser finalizada deixando a direção de extensão (408) por modificar. Por exemplo, apesar de ter sido descrito na secção 3.1.2 que uma predição de um ponto de partida (314) da linha de separação wedgelet (201) pode ser executada pelo descodificador (400) na obtenção da posição da linha de separação wedgelet no passo (406), o descodificador (400) pode, em alternativa, ser configurado para obter este ponto de partida (314) através de sinalização explícita no fluxo de dados (304). Ainda, o descodificador (400) da Fig. 18 pode ser configurado para espacialmente colocar a linha de separação wedgelet (201) na derivação (406) em uma direção lateral à direção de extensão (316) tal como sob manutenção da direção de extensão (316), paralela à direção de extensão (316), prevendo temporalmente a distância na direção lateral de um bloco wedgelet co-localizado em uma série de amostras previamente descodificada, ou prevendo espacialmente a posição na direção lateral de outra série de amostras pertencente a uma imagem diferente comparada com a série de amostras (302).
[0201] É, contudo, preferível que o descodificador (400), na derivação da posição da linha de separação wedgelet (201) no segundo bloco (210) da série de amostras (302), coloque um ponto de partida (314) da linha de separação wedgelet (201) em uma posição de uma alteração máxima entre consecutivos de uma sequência de valores de amostras reconstruídos de uma linha de amostras que se estendem adjacentes ao segundo bloco (210), ao longo de uma porção de uma circunferência do segundo bloco (210). A linha de amostras encontra-se indicada como sinal de referência (410) na Fig. 18 com as amostras simbolizadas por pequenas cruzes. A linha (410) de amostras pode ser restrita em amostras de blocos espacialmente limítrofes disponíveis. De qualquer modo, dever-se-á realçar que a linha (410) de amostras nas quais é determinada a alteração máxima, pode estender-se em redor de um ou mais cantos do bloco retangular (210) tal como ilustrado na Fig. 18. Assim, de acordo com este procedimento o descodificador (400) pode ser configurado para substituir a linha de separação wedgelet na derivação (406) de modo a iniciar entre amostras limítrofes e a linha de amostras (410), onde a diferença máxima nos valores reconstruídos existe, paralelamente à direção de extensão (408).
[0202] Por conseguinte, o grau de informação complementar é salvaguardada visto que uma boa predição foi considerada como derivar a posição da linha de separação wedgelet (201) através de outros meios que não a sinalização explícita no fluxo de dados (304).
[0203] Depois, a descodificação (412) efetuada pelo descodificador (400) ocorre de acordo com a qual o descodificador (400) descodifica o segundo bloco em unidades da primeira e da segunda partições wedgelet (202a) e (202b) tal como foi descrito em relação à Fig. 16.
[0204] Naturalmente, o descodificador (400) da Fig. 18 pode ser modificado para compreender também a funcionalidade de refinamento (308) da Fig. 16. Conformemente, um desvio da posição de chegada (318) da linha de separação wedgelet (201) do bloco atual (210) relativo a uma posição de chegada (320) da posição da linha de separação wedgelet, que pode ser ou não, tal como anteriormente indicado, restrito a ser reto, tal como derivado no passo (406) pode ser sinalizado no fluxo de dados (304).
[0205] Tal como também anteriormente descrito, três elementos de sintaxe podem ser utilizados para transmitir um desvio da posição de chegada, , uma primeira sinalização de se qualquer desvio está presente, ou seja, se o mesmo é zero, uma segunda com o significado do sinal de desvio, ou seja, no sentido dos ponteiros do relógio ou no sentido contrário aos ponteiros do relógio, no caso de o desvio não ser zero, e uma terceira indicando o valor de desvio absoluto menos um: dmm_delta_end_flag, dmm_delta_end_sign_flag, dmm_delta_end_abs_minus1. No pseudo código, estes
Figure img0010
[0206] dmm_delta_end_abs_minus1 e dmm_delta_end_sign_flag poderá ser utilizado para obter DmmDeltaEnd, isto é, , do seguinte modo:
Figure img0011
[0207] Contudo, são também possíveis procedimentos alternativos. Por exemplo, em vez de sinalização do desvio da posição de chegada, um desvio de direção ou de ângulo em relação ao conjunto de direção de extensão dependendo da direção intra- predição (214) pode ser sinalizado no fluxo de dados (304) para o bloco (202).
[0208] De acordo com a Fig. 18, a informação que se segue pode ser apresentada no fluxo de dados para o bloco (210:) 1) em que o identificador de opção de codificação com a respectiva fase pré-determinada ativando os passos (406)-(412), 2) como opção, a informação de refinamento tal como o desvio da posição de chegada, 3) como opção, parâmetros de codificação, tais como CPV ou CPV residual, para uma ou ambas as partições (202a), (202b), opcional, e da mesma maneira permitido para a predição, espacial ou temporalmente de blocos/amostras limítrofes, 4) como opção, parâmetro de codificação residual tal como CPV Delta.
[0209] Relativamente às possíveis modificações do passo de descodificação (412) em relação à descrição da secção 3.3, é feita referência à descrição anterior do passo (310) da Fig. 16.
[0210] Não será preciso dizer que o descodificador (400) da Fig. 18 pode ser configurado para tratar os passos (406) e (412) como uma opção do modo de codificação ativado por um identificador de opção de codificação no fluxo de dados (304), em que a derivação da posição da linha de separação wedgelet (406) forma uma medida subordinada para obter a posição da linha de separação wedgelet no caso em que um conjunto de blocos candidatos nos limites do bloco atual (210) já possui uma linha de separação wedgelet, uma extensão da qual continua no bloco atual (210).
[0211] A Fig. 19 ilustra um modelo para um codificador existente no descodificador da Fig. 18. O codificador da Fig. 19 é geralmente indicado no sinal de referência (430) e está configurado para codificar a série de amostras em um fluxo de dados (304). Internamente, o codificador (430) está configurado para predição de um primeiro bloco da série de amostras utilizando a intra-predição no bloco (432), e a derivação da linha de acordo com a descrição do bloco (406) na Fig. 18 no bloco (434). Depois, o codificador (430) codifica o segundo bloco sujeito da derivação da linha em (434), em unidades da primeira e segunda partições no bloco de codificação (436).
[0212] Naturalmente, o codificador (430), para além das funcionalidades ilustradas na Fig. 19, é configurado para funcionar de modo a espelhar a funcionalidade do descodificador da Fig. 18. Ou seja, o codificador (430) pode operar baseada em blocos utilizando, por exemplo, codificação híbrida baseada em blocos. Apesar de não explicitamente dito, o mesmo aplica-se em relação ao codificador da fig. 17 quando comparado ao descodificador da Fig. 16.
5.3 - Derivação da linha de separação Wedgelet colocando o respectivo ponto de partida de acordo com valores reconstruídos de amostras limítrofes
[0213] Uma outra maneira de reduzir a informação complementar necessária para transmitir a informação na posição da linha de separação wedgelet de blocos wedgelet constitui a base do modelo a seguir descrito. Em especial, a ideia é a de que amostras previamente reconstruídas, ou seja, valores reconstruídos de blocos anteriores ao bloco atual de acordo com a ordem de codificação/descodificação permite pelo menos uma predição de uma correta substituição de um ponto de partida da linha de separação wedgelet, em especial substituindo o ponto de partida da linha de separação wedgelet em uma posição de uma máxima alteração entre consecutivos de uma sequência de valores reconstruídos de amostras de uma linha de amostras que se estende adjacente ao bloco atual ao longo de uma respectiva circunferência. Assim, idêntico às possibilidades descritas em cima em relação às secções 5.1 e 5.2, o grau de informação complementar necessária para permitir que o codificador posicione corretamente a linha de separação wedgelet pode ser reduzido. A ideia subjacente ao modelo descrito em baixo foi também explorada na descrição anterior na secção 3.1.2, em que, por conseguinte, uma possível implementação de modelos descritos em baixo é descrita.
[0214] Por conseguinte, a Fig. 20 ilustra um modelo para um descodificador (500), que explora a ideia agora mesmo descrita e pode ser implementada como anteriormente descrita em relação à secção 3.1.2 e/ou Figs. 1 a 3 o mais breve possível no que diz respeito às funcionalidades adicionais. Ou seja, o descodificador (500) da Fig. 20 é configurado para reconstruir uma série de amostras (302) de um fluxo de dados (304). Regra geral, o descodificador (500) da Fig. 20 pode ser implementado tal como anteriormente descrito na secção 5.1 ou 5.2 em relação ao descodificador (300) da Fig. 16, por exemplo, exceto para o modo de codificação definido pelas funcionalidades (306) a (310), opcional para o descodificador da Fig. 18, e em relação ao descodificador (400) da Fig. 18, por exemplo, exceto para o modo de codificação definido pelas funcionalidades (402), (406) e (412), opcional para o descodificador da Fig. 20. Ou seja, o descodificador (500) da Fig. 20 pode funcionar para reconstruir a série de amostras (302) da fig. 20 através de descodificação baseada em blocos, tal como descodificação híbrida baseada em blocos. Tal como sucede com o descodificador (300) da Fig. 18, a divisão da série de amostras (302) em blocos (303) pode ser fixada por defeito, ou pode ser sinalizada no fluxo de dados (304) pela respectiva informação de divisão. Em especial, o descodificador (500) da Fig. 20 pode ser construído como descrito em cima em relação às Figs. 1 a 3, em especial como no descodificador da Fig. 3 ou qualquer um dos descodificadores de imagem tal como o par de ramos de codificação (106v/d,1), ou simplesmente como um descodificador de profundidade tal como (106d,1).
[0215] Honestamente, o descodificador da Fig. 20 que se encontra ilustrado no sinal de referência (500), corresponde muito ao descodificador da Fig. 18. Contudo, a funcionalidade descrita em relação à Fig. 18 em blocos (402) e (406) representa simplesmente passos opcionais em relação à Fig. 20. Em vez disso, o descodificador (500) da Fig. 20 está configurado para obter no passo (406’) uma posição de uma linha de separação wedgelet (201) em um bloco pré-determinado (210) da série de amostras (302) substituindo um ponto de partida (314) da linha de separação wedgelet (201) em uma posição de uma alteração máxima entre consecutivos de uma sequência de valores de reconstrução de amostras de uma linha (410) de amostras que se estendem adjacentes ao bloco pré-determinado (210) ao longo de uma porção de uma circunferência de um bloco pré-determinado (210), em que a linha de separação wedgelet (201) divide o bloco pré-determinado (210) em uma primeira e segunda partições wedgelet (202a) e (202b). No passo (412’), o descodificador (500) executa então a descodificação das partições (202a) e (202b) resultantes da maneira descrita em cima em relação à Fig. 18.
[0216] Para se ser mais preciso, na derivação (406’), o descodificador (500) ordena aos valores de reconstrução das amostras dos blocos limítrofes já descodificados do bloco (210) de acordo com a sua ordem da sua ocorrência quando atravessa estas amostras no sentido dos ponteiros do relógio ou contra os ponteiros do relógio. Uma sequência resultante de valores reconstruídos encontra-se ilustrada na Fig. 20 em (502). Como se pode observar, a maior diferença entre valores reconstruídos consecutivos ocorre entre as amostras limítrofes nth e (n + 1) th e, por conseguinte, o descodificador da Fig. 20 substituiria a linha de separação wedgelet na extremidade (316), à qual o par de amostras limítrofes se juntam, entre amostras de blocos (210) que, por seu lado, se juntam diretamente a este par de amostras limítrofes. Tal como anteriormente descrito, o descodificador (500) pode utilizar uma direção de procura de um bloco em linha e, por consequência, as amostras limítrofes da linha de amostras (410) podem estender-se ao longo da extremidade da esquerda e extremidade superior do bloco (210). O mesmo seria obtido utilizando uma mistura de uma verificação em linha de blocos de raiz de árvore que são, de acordo com a ordem de descodificação/codificação, pesquisados em linha, em que para cada bloco de raiz de árvore atualmente consultado é executada uma divisão de árvore quad, os blocos de raiz os quais são verificados em uma primeira ordem transversal de profundidade. Quando essa ordem é utilizada, a probabilidade de ter um número máximo de amostras limítrofes já reconstruídas aumenta quando comparado com utilizando uma primeira ordem transversal em largura.
[0217] Na derivação (406’), o descodificador (500) da Fig. 20 pode utilizar a derivação da direção de extensão da linha de separação wedgelet (408) como descrito em relação à Fig. 18 e na secção 3.1.2 como maneira opcional. Em alternativa, a direção de extensão da linha de separação wedgelet ao longo do qual o descodificador (500) posiciona a linha de separação wedgelet (201) do bloco atual (210) pode ser predito de maneira diferente, tal como, por exemplo, temporariamente de um bloco wedgelet co-localizado para uma série de amostras previamente descodificadas de uma sequência da série de amostras incluindo a série de amostras (302). Em alternativa, pode ser utilizada uma sinalização explícita no ponto de chegada (318) da linha de separação wedgelet. A sinalização explícita pode representar o desvio do ponto de chegada (318) de uma posição de amostras colocadas na posição oposta em relação à posição de partida (314) pelo ponto central do bloco (210). Outras soluções são, claro, viáveis.
[0218] A este respeito deverá ser tido em consideração que o ponto de partida (314) poderá ser definido pelo descodificador (500) no passo (406’), para corresponder à posição de amostra nth, a posição de amostra (n + 1)th ou uma posição subpixel entre estes.
[0219] Muitas das possibilidades de combinações anteriormente mencionadas nas secções 5.1 e 5.2 são também possíveis de serem transferidas para o modelo desta secção. Por exemplo, o modo de codificação do descodificador (500) executado pelos blocos (406’) e (412’) podem representar uma funcionalidade de recuperação subsidiária ativada com um valor pré-determinado de um identificador de opção de codificação comum com o conceito de continuação da linha de separação wedgelet da secção 5.1 representando o modo de codificação por defeito executado em vez de quando um dos conjuntos dos blocos candidatos limítrofes possui uma linha de separação wedgelet que continua no bloco atual (210). As outras gerações e modificações são também viáveis. Por exemplo, o descodificador (500) pode também suportar um modo de partição de contorno e por aí adiante.
[0220] De acordo com a Fig. 20, a informação que se segue pode estar presente no fluxo de dados para o bloco (210:) 1) em que o identificador de opção de codificação com a respectiva fase pré-determinada ativando os passos (406’)-(412’), 2) como opção, a informação de refinamento tal como o desvio da posição de chegada, 3) como opção, parâmetros de codificação, tais como CPV ou CPV residual, para uma ou ambas as partições (202a), (202b), opcional, e da mesma maneira permitido para a predição, espacial ou temporalmente de blocos/amostras limítrofes, 4) como opção, parâmetro de codificação residual tal como CPV Delta.
[0221] A Fig. 21 ilustra um codificador existente no descodificador da Fig. 20. O mesmo é indicado pelo sinal de referência (530) e é configurado para executar uma derivação de linha (434’) de acordo com um passo (406) e uma codificação (436’) como descrito em relação à Fig. 19 em relação ao bloco (436). 5.4 - Bissegmentação baseado no título (pixel) do mapa de profundidade/disparidade através do limiar de uma porção co-localizada da imagem
[0222] Tal como se tornou claro da discussão anterior, a partição baseada em wedgelet representa um tipo de compromisso entre o grau de informação complementar por um lado e variedade atingível nas possibilidades de partição por outro. Comparando, a partição de contorno parece ser mais complexa em termos de grau de informação complementar.
[0223] A ideia subjacente aos modelos adicionalmente descritos em baixo é a de que a capacidade em mitigar os constrangimentos da partição ao ponto em que as partições têm de ser partições wedgelet, permite a aplicação de análise estatística relativamente não complexa em informação de textura de amostras espacialmente sobreposta de modo a derivar um bom preditor para a bissegmentação em um mapa de profundidade/disparidade. Assim, de acordo com esta ideia, é exatamente o aumento da liberdade que mitiga a sinalização complementar existente desde que a informação de textura co-localizada sob a forma de uma imagem esteja presente, e de que a variação de textura significativa é daí visível. Uma possível implementação desta ideia, que explora esta ideia, foi descrita em cima na secção 3.2.2, mas é descrita com maior detalhe em baixo em termos mais genéricos. Novamente, todos os detalhes descritos na secção 3.2.2 e noutras secções devem ser entendidos como detalhes de possível realização, que podem ser individualmente combinados com a descrição presente em baixo.
[0224] Em especial, a Fig. 22 ilustra um descodificador (600) de acordo com esse modelo desta invenção. O descodificador (600) tem como objetivo reconstruir um bloco pré-determinado de um mapa de profundidade/disparidade (213) associado a uma imagem (215) de um fluxo de dados (304). O descodificador compreende um segmento (602), uma transferência espacial (604) e um descodificador (606). O descodificador (600) pode ser configurado como descrito em baixo em relação a qualquer um dos ramos de descodificação (106d,1/2). Ou seja, o descodificador (600) pode funcionar em uma base de blocos. Ainda, o mesmo pode ser implementado como um descodificador híbrido de vídeo. A divisão do mapa de profundidade/disparidade (213) em blocos pode derivar completamente da divisão da imagem (215) em blocos, ou pode desviar daí, em que a divisão do mapa de profundidade/disparidade pode ser sinalizada no fluxo de dados (304) ou por outro lado conhecido como descodificador (600).
[0225] O segmento (602) é configurado para segmentar um bloco de referência (216) da imagem (215), co-localizada para o bloco pré-determinado (210) do mapa de profundidade/disparidade (213), limitando a imagem (215) no bloco de referência (216) para obter uma bissegmentação do bloco de referência em uma primeira e segunda partições.
[0226] A transferência espacial (604) transfere então a bissegmentação do bloco de referência (216) da imagem em um bloco pré-determinado (210) do mapa de profundidade/disparidade (213) de modo a obter primeira e segunda partições (202a) e (202b) do bloco pré-determinado (210).
[0227] O descodificador (606) está configurado para descodificar um bloco pré- determinado (210) em unidade da primeira e segunda partições (202a) e (202b). a funcionalidade do descodificador (606) corresponde à funcionalidade descrita em cima em relação às caixas (310), (412) e (412’).
[0228] Relembrando as Figs. 1 a 3, a funcionalidade de segmento e de transferência poderia ser incluída no módulo de troca (52) e (110), respetivamente, enquanto a funcionalidade do descodificador (606) poderá ser implementada no módulo de intra-predição, por exemplo.
[0229] Tal como descrito em cima em relação à secção 3.2.2 na qual a descrição pode representar detalhes de possível implementação para os elementos da Fig. 22, individualmente, o segmento (606) pode ser configurado para, em princípio, individualmente verificar valores da imagem (215) com o bloco de referência (216) nos quadrados (608) da divisão bidimensional do bloco de referência (216), a se o respectivo valor é maior do que ou mais pequeno do que um valor pré-determinado respectivo, de modo que cada um da primeira e segunda partições (202a) e (202b) do bloco de referência (216) da imagem (215) está estabelecida nos quadrados (608) que juntos abrangem totalmente o bloco de referência (216) da imagem (215) e complementam-se uns aos outros. Ou seja, o limite pode ser executado à resolução de amostras caso este em que os quadrados (608) correspondem às amostras individuais (610) da imagem (215). Deverá ser referido que o descodificador (600) pode também ser responsável pela reconstrução da imagem (215) na medida em que os valores sujeitos à verificação individual no limite são os valores reconstruídos da imagem reconstruída (215). Em especial, tal como descrito em relação às Figs. 1 a 3, o descodificador (600) pode ser configurado para reconstruir a imagem (215) antes do mapa de profundidade/disparidade (213) a ela associado.
[0230] Tal como já mencionado em cima, o segmento (602) pode estar configurado para, na segmentação, aplicar morfologicamente todo o preenchimento e/ou baixa filtragem para um resultado do princípio de modo a obter a bissegmentação do bloco de referência (216) na primeira e segunda partições. Tal evita a ocorrência dos dois segmentos muito isolados das partições da bissegmentação obtida do bloco de referência (216) que seria então espacialmente transferido por transferência espacial (604) onde, contudo, tais alterações de profundidade bruscas são significativamente menos prováveis de ocorrerem. Naturalmente, o codificador iria executar o mesmo.
[0231] Além disso, o descodificador (600) e o segmento (602) podem ser configurados para, no princípio, determinar uma medida para uma tendência central dos valores de amostras reconstruídos do bloco de referência 8216) da imagem (215) e executar o princípio comparando cada valor de amostra reconstruído do bloco de referência (216) da imagem (215) com o respectivo princípio que depende da medida determinada. Tal como descrito em cima, o princípio pode ser globalmente definido entre as amostras (610) no bloco de referência (216). Como tendência central, alguns valores médios podem ser utilizados, tais como o valor de aritmética médio ou o valor mediano.
[0232] Tal como anteriormente descrito na secção 4.2, o descodificador (600) pode ser configurado para suportar a disponibilidade do modo de codificação representado pelos blocos (602) a (606) simplesmente no caso de uma dispersão sintética determinada do valor de amostras no bloco de referência (216) da imagem (215) ultrapassando um princípio pré-determinado. Caso contrário, a bissegmentação encontrada pelo princípio seria muito provável não formar um bom preditor para o aparecimento do bloco (210) do mapa de profundidade/disparidade e, conformemente, este modo de codificação pode não ser permitido para este bloco. Ao suprimir a possibilidade do modo, um aumento desvantajoso e desnecessário do número de valores símbolo do respectivo identificador da opção de codificação para a qual uma estimação de probabilidade de entropia teria de ser tida em consideração, é evitado.
[0233] De acordo com a Fig. 22, a seguinte informação pode estar presente no fluxo de dados para o bloco (210:) 1) em que o identificador de opção de codificação com a respectiva fase pré-determinada ativando os passos (602)-(604), 2) como opção, a informação que conduz a bissegmentação, posteriormente diretividades de preenchimento de filtragem/total ou idêntico, 3) como opção, parâmetros de codificação, tais como CPV ou CPV residual, para uma ou ambas as partições (202a), (202b), opcional, porque se segue da mesma maneira permitido a predição, espacial ou temporalmente de blocos/amostras limítrofes, 4) como opção, parâmetro de codificação residual tal como CPV Delta.
[0234] Todas as variações adicionais mencionadas em cima relativas aos modelos das Figs. 16, 18 e 20 são também aplicáveis ao modelo da Fig. 22. Isto é especialmente verdade para a utilização do resultado de predição como parte de uma referência em um salto de predição do descodificador (600) e a possibilidade de combinação do modo de codificação da Fig. 22 com quaisquer dos modos de codificação descritos em qualquer uma das secções 5.1 a 5.3 ou em relação às variações descritas em cima nas secções 3 a 4.
[0235] A Fig. 23 ilustra uma possível implementação de um codificador existente no descodificador da Fig. 22. O codificador da Fig. 23 é regra geral indicado com o sinal de referência (630) e está configurado para codificar um bloco pré-determinado de um mapa de profundidade/disparidade associado a uma imagem em um fluxo de dados (304). O codificador compreende um segmento (632) e uma transferência espacial (634) que funciona componentes idênticos (602) e (604) da fig. 22 na medida em que funcionam em uma versão internamente reconstruída de porções previamente codificadas do fluxo de dados (304). O codificador (636) codifica o bloco pré- determinado em unidades das partições resultantes.
5.5 - Dependência da disponibilidade da transferência de bissegmentação da imagem para o mapa de profundidade/disparidade na dispersão do valor de amostra no bloco de referência da imagem
[0236] A ideia subjacente ao modelo descrito em cima foi a já mencionada em cima na secção 4.2, em especial a ideia de acordo com a qual a derivação de uma bissegmentação com base em um bloco de referência co-localizado em uma imagem com transferência posterior da bissegmentação no bloco de referência do mapa de profundidade/disparidade é apenas razoável se a probabilidade de obtenção de uma boa abordagem do conteúdo do bloco atual do mapa de profundidade/disparidade for suficientemente elevada de modo a justificar a reserva de um respectivo valor pré- determinado de um identificador de opção de codificação correspondente para ativar este modo de transferência de bissegmentação. Por outras palavras, o grau de informação complementar pode ser salvaguardado evitando a necessidade de obter o respectivo valor pré-determinado do identificador de opção de codificação para o bloco atual do mapa de profundidade/disparidade tendo em consideração quando a codificação de entropia deste identificador de opção de codificação, no caso da respectiva transferência de bissegmentação, é muito provável que não seja selecionada.
[0237] Assim, de acordo com um modelo modificado do descodificador (600) da Fig. 22, o descodificador é regra geral construído de modo idêntico ao do descodificador da Fig. 20, pelo que essa referência é feita para a descrição anterior até onde possíveis implementações do descodificador (600) dizem respeito. Contudo, o segmento (602) não é restrito para ser configurado para segmentar o bloco de referência (216) em uma partição e contorno, nem em uma partição wedgelet. Pelo contrário, o segmento (602) é apenas configurado para segmentar o bloco de referência (216) da imagem (215) dependendo de uma característica de textura da imagem (215) no bloco de referência (216) de modo a obter uma bissegmentação do bloco de referência na primeira e segunda partições. Por exemplo, o segmento (602) pode, de acordo com esse modelo modificado, utilizar detecção de contornos para detectar uma possível direção de extensão de uma linha de separação wedgelet para transferir a linha desse modo localizada do bloco (216) espacialmente no bloco de profundidade/disparidade (210) através de transferência espacial (604). Outra possível bissegmentação através do segmento (602) seria também viável.
[0238] Para além disso, contudo, o descodificador (600) seria, de acordo com este modelo, configurado de modo que a segmentação através do segmento (602), a transferência espacial através da transferência espacial (604) e a descodificação iriam constituir um de um primeiro conjunto de opções de codificação do descodificador (600), não fazendo parte de um segundo conjunto de opções de codificação do descodificador (600), em que o descodificador iria ainda ser configurado para determinar uma dispersão de valores de amostras no bloco de referência (216) da imagem (215), para recuperar um identificador de opção de codificação do fluxo de dados (304) e para utilizar o identificador de opção de codificação como um índice no primeiro conjunto de opções de codificação no caso de a dispersão ultrapassar um limite pré-determinado, com execução da segmentação, transferência espacial e descodificação em caixas (602) a (606) para o bloco pré-determinado (210) se os pontos de índice a uma opção de codificação, e como um índice no segundo conjunto de opções de codificação no caso da dispersão subsequente ao limite pré- determinado. Assim, a sinalização complementar para sinalizar o identificador de opção de codificação pode ser salvaguardada. Tal como a dispersão, a diferença média absoluta, o desvio padrão ou a variação podem ser usados.
[0239] Relativamente a outras modificações do modelo da modificação agora mesmo mencionada da Fig. 22, é feita referência à secção 5.4 e à descrição em relação à secção 4.2.
[0240] Um codificador correspondente pode ser obtido a partir do codificador da Fig. 23.
5.6 - Predição eficaz por bipartição utilizando predição de um ou ambos valores de partição constantes de amostras limítrofes
[0241] Tal como já descrito em cima em relação aos vários modelos até agora descritos, a maneira de predição de um bloco atual através da atribuição de valores de partição constantes às partições de uma bipartição de um bloco é bastante eficaz, especialmente no caso de uma série de amostras de codificação tais como mapas de profundidade/disparidade em que o conteúdo destas séries de amostras é na sua maioria constituído por planos ou simples áreas de ligação de valor idêntico separadas entre si por arestas vivas. Contudo, mesmo a transmissão desses valores de partição constantes precisam de uma quantidade considerável de informação complementar que deveria ser evitada.
[0242] A ideia subjacente aos modelos descritos em baixo é a de que o grau desta informação complementar pode ser reduzido se os valores médios de amostras limítrofes associadas ou contíguas às partições respectivas forem utilizados como preditores para os valores de partição constante. Os inventores descobriram que esse modo de codificação para blocos da série de amostras pode mesmo deixar uma sinalização de um refinamento do respectivo valor de partição constante.
[0243] A Fig. 24 ilustra um descodificador (700) que tem como finalidade a reconstrução de uma série de amostras (302) a partir de um fluxo de dados(304). O descodificador (700) pode ser configurado para reconstruir a série de amostras (302) utilizando uma descodificação de blocos e pode ser configurado para utilizar descodificação híbrida. Regra geral, todas as implementações possíveis anteriormente descritas nas secções 5.1 a 5.5 aplicam-se também ao descodificador (700) da Fig. 24. Naturalmente, todas as implementações possíveis para partição de um bloco atual (210) em duas partições representam apenas alternativas opcionais para o descodificador da Fig. 700 que pode, a este respeito, implementar também de modo diferente.
[0244] Em especial, o descodificador (700) está configurado para executar diferentes tarefas ou funções para derivar a predição de um bloco atual (210). Em especial, o descodificador (700) está configurado para executar uma derivação (702) de uma bipartição de um bloco pré-determinado (210) da série de amostras (302) em uma primeira partição ilustrada pelas amostras a sombreado, e uma segunda partição ilustrada por amostras não sombreadas. Ainda, o descodificador (700) está configurado para executar uma associação (704) de cada uma das amostras limítrofes da série de amostras (302), contíguas ao bloco pré-determinado (210), com um respectivo da primeira e segunda partições de modo a que cada amostra limítrofe se encontre contígua à partição com a qual a mesma se encontra associada. Na Fig. 24, as amostras limítrofes objeto da associação (704), encontram-se ilustradas por dois tipos diferentes de sombreado, em especial sombreado a tracejado e sombreado ondulado. As amostras sombreadas a tracejado ilustram amostras contíguas a amostras do bloco (210), que pertencem a uma partição do bloco (210), em que as que se encontram a sombreado ondulado estão contíguas a amostras do bloco (210) que pertencem a outra partição. Tal como anteriormente descrito em relação às secções 5.1 a 5.4, o descodificador (700) pode utilizar uma ordem de codificação/descodificação entre blocos (303) de série de amostras (302) de modo a obter uma elevada probabilidade de disponibilidade de amostras limítrofes de blocos (303) da série de amostras (302) já reconstruídas pelo descodificador (700).
[0245] Claro que pode ocorrer que as amostras limítrofes disponíveis, isto é, as amostras limítrofes do bloco (210) posicionadas em blocos já reconstruídos (303) da série de amostras (302), apenas se junta a uma das partições do bloco (210). Nesse caso, o fluxo de dados (304) pode explicitamente transmitir um valor de partição constante para a respectiva outra partição para a qual nenhuma das amostras limítrofes se junta. Em alternativa, algum outro procedimento de recuperação pode ser executado pelo descodificador (700) nesse caso. Por exemplo, o descodificador (700) pode, nesse caso, estabelecer este valor de partição constante que falta a um valor pré-determinado ou um valor determinado de um meio a longo prazo entre os valores previamente reconstruídos da série de amostras (302) e/ou alguma outra série de amostras previamente reconstruídas.
[0246] Finalmente, em uma predição (706), o descodificador (700) prevê o bloco pré-determinado (210) através da atribuição de um valor médio de valores das amostras limítrofes associadas à primeira partição às amostras da série de amostras posicionadas na primeira partição e/ou um valor médio de valores de amostras limítrofes associadas à segunda partição a amostras da série de amostras posicionada na segunda partição.
[0247] O descodificador (700) pode ser configurado para refinar a predição do bloco pré-determinado (210) utilizando informação de refinamento no fluxo de dados, especialmente aplicando um primeiro valor de refinamento na informação de refinamento no valor médio de valores das amostras limítrofes associadas à primeira partição, e/ou aplicando um segundo valor de refinamento à informação de refinamento no valor médio de valores das amostras limítrofes associadas à segunda partição. A este respeito, o descodificador (700) pode ser ainda configurado para, aplicando o primeiro e/ou o segundo valor de refinamento, linearmente combinados, tal como adicionado, o primeiro e/ou o segundo valor de refinamento com o valor médio de valores das amostras limítrofes associadas à primeira partição, e/ou o valor médio de valores das amostras limítrofes associadas à segunda partição, respetivamente. O descodificador (700) pode ser configurado para, aplicando o primeiro e/ou o segundo valor de refinamento, recuperar o primeiro e/ou o segundo valor de refinamento do fluxo de dados e remover o primeiro e/ou o segundo valor de refinamento recuperado utilizando uma dimensão do passo de quantificação dependendo de uma dimensão do passo de quantificação de referência na qual um componente tirado de amostra espacialmente pré-determinado, mapa de textura e/ou de profundidade/disparidade, associado à série de amostras é transmitido no fluxo de dados. A série de amostras pode, por exemplo ser um mapa de profundidade, mas a dimensão do passo de quantificação de referência pode ser utilizada pelo descodificador (700) para reconstruir uma série de amostras de textura do débito binário, com o qual o mapa de profundidade está associado. É feita referência adicional às respectivas porções nas secções 3.3.2 para detalhes adicionais.
[0248] O descodificador está configurado para, ao obter a bipartição de um bloco pré-determinado da série de amostras na primeira e segunda partições, prever uma posição de uma linha de predição wedgelet no bloco pré-determinado da série de amostras dependendo de uma linha de separação wedgelet de um bloco limítrofe do bloco pré-determinado de modo que a linha de separação wedgelet na posição de predição constitui uma extensão da linha de separação wedgelet do bloco limítrofe no bloco pré-determinado. O descodificador está ainda configurado para refinar a posição prevista da linha de separação wedgelet utilizando informação de refinamento no fluxo de dados, a linha de separação wedgelet do bloco pré-determinado dividindo o bloco pré-determinado em uma primeira e segunda partições.
[0249] Tal como descrito, o descodificador (700) pode fazer com que a bissegmentação utilize qualquer uma das ideias estabelecidas nas secções 5.1 a 5.5. o descodificador (700) pode ser configurado para prever um bloco de referência da série de amostras (302), limítrofe ao bloco pré-determinado (210), utilizando intra- predição através do preenchimento do bloco de referência copiando valores reconstruídos de amostras da série de amostras, limítrofes ao primeiro bloco, juntamente com uma direção intra-predição em um bloco de referência. Ao obter a bipartição de um bloco de um bloco pré-determinado da série de amostras na primeira e segunda partições, o descodificador (700) pode prever uma posição de uma linha de separação wedgelet no bloco pré-determinado (210) estabelecendo uma direção de extensão da linha de separação wedgelet no bloco pré-determinado dependendo da direção de intra-predição, a linha de separação wedgelet dividindo o bloco pré- determinado na primeira e segunda partições.
[0250] Em alternativa, o codificador (700) pode, se a série de amostras (302) for um mapa de profundidade/disparidade associado a uma imagem, ser configurado para segmentar um bloco de referência da imagem, co-localizada ao bloco pré- determinado (210), através do limite da imagem no bloco de referência para obter uma bissegmentação do bloco de referência em uma primeira e partições pré- determinadas, e para espacialmente transferir a bissegmentação do bloco de referência da imagem no bloco pré-determinado do mapa de profundidade/disparidade de modo a obter a primeira e a segunda partições.
[0251] O descodificador pode ainda ser configurado para utilizar o bloco pré- determinado como uma referência em um salto de predição do codificador.
[0252] A Fig. 25 ilustra um modelo possível para um codificador (730) existente no descodificador (700) da Fig. 24. O codificador (730) para a codificação de uma série de amostras em um fluxo de dados é configurado para obter (732) uma bipartição de um bloco pré-determinado da série de amostras na primeira e segunda partições, e para associar (734) cada uma das amostras limítrofes da série de amostras, contíguas ao bloco pré-determinado, com a respectiva uma da primeira e segunda partições de modo que cada amostra limítrofe se reúna à partição com a qual a mesma está associada. O codificador é ainda configurado para prever (736) o bloco pré- determinado atribuindo um valor médio dos valores das amostras limítrofes associadas à primeira partição a amostras da série de amostras posicionada na primeira partição e um valor médio de valores das amostras limítrofes associadas à segunda partição a amostras da série de amostras posicionadas na segunda partição.
[0253] Apesar de alguns aspetos terem sido descritos no contexto de um equipamento, é claro que estes aspetos representam também uma descrição do método correspondente, em que um bloco ou dispositivo corresponde a um passo do método ou uma característica de um passo do método. Do mesmo modo, aspetos descritos no contexto de um passo do método representam também uma descrição de um bloco correspondente ou item ou característica de um equipamento correspondente. Alguns ou todos os passos do método podem ser executados (ou utilizados) por um equipamento de hardware, como por exemplo, um microprocessador, um computador programável ou um circuito eletrônico. Nalguns modelos, um ou alguns dos muitos mais importantes passos do método pode ser executado por tal equipamento.
[0254] Dependendo de certos requisitos de implementação, modelos da invenção podem ser implementados em hardware ou em software. A implementação pode ser executada utilizando um meio de armazenamento digital, por exemplo uma disquete, um DVD, um Blu-Ray, um CD, uma memória ROM, memória PROM, memória EPROM, memória EEPROM ou FLASH, com sinais de controle de leitura eletrônica armazenada, cooperando (ou capaz de cooperar) com um sistema de computador programável de modo que o respectivo método é executado. Por isso, o meio de armazenamento digital pode ser lido por computador.
[0255] Alguns modelos de acordo com esta invenção compreendem um suporte de dados com sinais de controle de leitura eletrônica, capaz de cooperar com um sistema de computador programável, de modo que um dos métodos aqui descritos seja executado.
[0256] Regra geral, modelos desta invenção podem ser implementados como um produto de programa de computador com um código de programa, sendo que o código de programa tem como objetivo a execução de um dos métodos quando o produto de programa de computador funciona em um computador. O código do programa pode por exemplo ser armazenado em um suporte lido por uma máquina.
[0257] Outros modelos compreendem o programa de computador para a execução de um dos métodos aqui descritos, armazenados em um suporte lido por uma máquina.
[0258] Por outras palavras, um modelo do método da invenção é, pois, um programa de computador com um código de programa para executar um dos métodos aqui descritos, quando o programa de computador funciona em um computador.
[0259] Um modelo adicional dos métodos inovadores é, pois, um suporte de dados (ou um meio de armazenamento digital, ou um meio lido por computador) compreendendo, registrados neles, o programa de computador para executar um dos métodos aqui descritos. O suporte de dados, o meio de armazenamento digital ou o meio de registro são habitualmente tangíveis e/ou não transitórios.
[0260] Um outro modelo deste método inovador é, por isso, um fluxo de dados ou uma sequência de sinais que representam o programa de computador para a execução de um dos métodos aqui descritos. O fluxo de dados ou a sequência de sinais pode por exemplo ser configurado para ser transferido através de uma ligação de comunicação de dados, por exemplo através da Internet.
[0261] Um modelo adicional compreende um meio de processamento, por exemplo, um computador, ou um dispositivo de lógica programável, configurado para ou adaptado para executar um dos métodos aqui descritos.
[0262] Um outro modelo compreende um computador com uma instalação de um programa de computador para a execução de um dos métodos aqui descritos.
[0263] Um modelo adicional de acordo com a invenção compreende um equipamento ou um sistema configurado para transferir (por exemplo, eletronicamente) um programa de computador para a execução de um dos métodos aqui descritos para um receptor. O receptor pode, por exemplo, ser um computador, um dispositivo móvel, um dispositivo de memória ou outro idêntico. O equipamento ou o sistema pode, por exemplo, compreender um servidor de ficheiros para a transferência do programa de computador para o receptor.
[0264] Nalguns modelos, um dispositivo de lógica programável (por exemplo uma rede de portas lógicas programáveis) pode ser utilizado para executar algumas ou todas as funcionalidades dos métodos aqui descritos. Nalguns modelos, uma rede de portas lógicas programáveis pode cooperar com um microprocessador de modo a executar um dos métodos aqui descritos. Regra geral, os métodos são de preferência executados por qualquer equipamento de hardware.
[0265] Os modelos em cima descritos são meramente ilustrativos no que diz respeito aos princípios desta invenção. Dever-se-á entender que modificações e variações das disposições e dos detalhes aqui descritos serão visíveis a outros especialistas na área. É objetivo, por isso, serem limitados apenas pelo âmbito das reivindicações de patente independente e não pelos detalhes específicos presentes pela descrição e esclarecimento dos modelos aqui contidos.

Claims (11)

1. Decodificador para reconstruir um bloco predeterminado de um mapa de profundidade/disparidade associado a uma imagem de um fluxo de dados usando uma de um conjunto de opções de codificação, incluindo um primeiro subconjunto de opções de codificação e um segundo subconjunto de opções de codificação, sendo o codificador caracterizado por ser configurado para determinar uma dispersão de valores de amostras dentro de um bloco de referência (216) da imagem (215) colocalizado com o bloco predeterminado; e recuperar um identificador de opção de codificação do fluxo de dados (304), usar o identificador de opção de codificação como um índice no primeiro subconjunto de opções de codificação no caso de a dispersão exceder um limiar predeterminado e como um índice no segundo subconjunto de opções de codificação no caso de a dispersão suceder o limiar predeterminado, e decodificar o bloco predeterminado usando uma opção de codificação indexada pelo identificador de opção de codificação.
2. Decodificador de acordo com a reivindicação 1, sendo o codificador caracterizado por ser configurado para recuperar o identificador de opção de codificação por decodificação de entropia.
3. Decodificador de acordo com qualquer das reivindicações 1 a 2, caracterizado por ser configurado ainda para usar o bloco predeterminado como uma referência em um circuito de previsão do decodificador.
4. Decodificador de acordo com qualquer das reivindicações anteriores, sendo o codificador caracterizado por ser configurado para, na decodificação do bloco predeterminado (210), prever o bloco predeterminado (210) atribuindo um primeiro valor de partição constante às amostras (203) do mapa de profundidade/disparidade posicionado dentro da primeira partição (202a) e um segundo valor de partição constante às amostras (203) do mapa de profundidade/disparidade posicionado dentro da segunda partição (202b).
5. Decodificador de acordo com a reivindicação 4, sendo o codificador caracterizado por ser configurado para, na previsão do bloco predeterminado, associar cada das amostras vizinhas do mapa de profundidade/disparidade, adjacentes ao bloco predeterminado, com uma respectiva das primeira e segunda partições, de modo que cada amostra vizinha seja adjacente a partição com a qual a mesma está associada e predizer o bloco predeterminado atribuindo um valor médio de valores das amostras vizinhas associadas à primeira partição a amostras do mapa de profundidade/disparidade posicionado dentro da primeira partição e um valor médio de valores das amostras vizinhas associadas à segunda partição a amostras do mapa de profundidade/disparidade posicionado dentro da segunda partição.
6. Decodificador de acordo com a reivindicação 5, caracterizado por ser configurado para refinar a previsão do bloco predeterminado aplicando um primeiro valor de refinamento no valor médio dos valores das amostras vizinhas associadas à primeira partição e/ou aplicando um segundo valor de refinamento no valor médio dos valores das amostras vizinhas associadas à segunda partição.
7. Decodificador de acordo com a reivindicação 6, caracterizado por ser configurado para, na aplicação do primeiro e/ou do segundo valor de refinamento, combinar linearmente o primeiro e/ou o segundo valor de refinamento com o valor médio de valores das amostras vizinhas associadas à primeira partição e/ou o valor médio de valores das amostras vizinhas associadas à segunda partição, respectivamente.
8. Codificador para codificar um bloco predeterminado de um mapa de profundidade/disparidade associado a uma imagem em um fluxo de dados usando uma dentre um conjunto de opções de codificação, incluindo um primeiro subconjunto de opções de codificação e um segundo subconjunto de opções de codificação, sendo o codificador caracterizado por ser configurado para determinar uma dispersão de valores de amostras dentro de um bloco de referência (216) da imagem (215) colocalizado com o bloco predeterminado; e codificar um identificador de opção de codificação no fluxo de dados (304), usar o identificador de opção de codificação como um índice no primeiro subconjunto de opções de codificação no caso de a dispersão exceder um limiar predeterminado e como um índice no segundo subconjunto de opções de codificação no caso de a dispersão suceder o limiar predeterminado, e codificar o bloco predeterminado usando uma opção de codificação indexada pelo identificador de opção de codificação.
9. Método para reconstruir um bloco predeterminado de um mapa de profundidade/disparidade associado a uma imagem de um fluxo de dados usando uma dentre um conjunto de opções de codificação, incluindo um primeiro subconjunto de opções de codificação e um segundo subconjunto de opções de codificação, sendo o método caracterizado por compreender determinar uma dispersão de valores de amostras dentro de um bloco de referência (216) da imagem (215) colocalizado com o bloco predeterminado; e recuperar um identificador de opção de codificação do fluxo de dados (304), usar o identificador de opção de codificação como um índice no primeiro subconjunto de opções de codificação no caso de a dispersão exceder um limiar predeterminado e como um índice no segundo subconjunto de opções de codificação no caso de a dispersão suceder o limiar predeterminado, e decodificar o bloco predeterminado usando uma opção de codificação indexada pelo identificador de opção de codificação.
10. Método para codificar um bloco predeterminado de um mapa de profundidade/disparidade associado a uma imagem em um fluxo de dados usando uma dentre um conjunto de opções de codificação, incluindo um primeiro subconjunto de opções de codificação e um segundo subconjunto de opções de codificação, sendo o método caracterizado por compreender determinar uma dispersão de valores das amostras dentro de um bloco de referência (216) da imagem (215) colocalizado com o bloco predeterminado; e codificar um identificador de opção de codificação no fluxo de dados (304), usar o identificador de opção de codificação como um índice para o primeiro subconjunto de opções de codificação no caso de a dispersão exceder um limiar predeterminado e como um índice para o segundo subconjunto de opções de codificação no caso de a dispersão suceder o limiar predeterminado, e codificar o bloco predeterminado usando uma opção de codificação indexada pelo identificador de opção de codificação.
11. Fluxo de dados caracterizado por ter nele codificado uma imagem e um mapa de profundidade/disparidade associado à imagem, sendo o fluxo de dados gerado usando um método de acordo com a reivindicação 10.
BR122020014854-3A 2011-11-11 2012-11-09 Codificação de partição eficaz com elevado grau de liberdade de partição BR122020014854B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161558631P 2011-11-11 2011-11-11
US61/558,631 2011-11-11
PCT/EP2012/072328 WO2013068566A1 (en) 2011-11-11 2012-11-09 Adaptive partition coding

Publications (1)

Publication Number Publication Date
BR122020014854B1 true BR122020014854B1 (pt) 2022-09-13

Family

ID=47178013

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112014011406-4A BR112014011406B1 (pt) 2011-11-11 2012-11-09 Codificação de partição eficaz com elevado grau de liberdade de partição
BR122020014854-3A BR122020014854B1 (pt) 2011-11-11 2012-11-09 Codificação de partição eficaz com elevado grau de liberdade de partição

Family Applications Before (1)

Application Number Title Priority Date Filing Date
BR112014011406-4A BR112014011406B1 (pt) 2011-11-11 2012-11-09 Codificação de partição eficaz com elevado grau de liberdade de partição

Country Status (15)

Country Link
US (7) US9756330B2 (pt)
EP (4) EP3249923B1 (pt)
JP (6) JP6084627B2 (pt)
KR (7) KR101663394B1 (pt)
CN (5) CN109257598B (pt)
BR (2) BR112014011406B1 (pt)
DK (1) DK2777285T3 (pt)
ES (1) ES2647514T3 (pt)
HK (1) HK1202202A1 (pt)
HU (1) HUE034631T2 (pt)
IN (1) IN2014KN01047A (pt)
NO (1) NO2806722T3 (pt)
PL (1) PL2777285T3 (pt)
PT (1) PT2777285T (pt)
WO (1) WO2013068566A1 (pt)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2777286B1 (en) 2011-11-11 2017-01-04 GE Video Compression, LLC Effective wedgelet partition coding
EP3657788B1 (en) * 2011-11-11 2021-08-04 GE Video Compression, LLC Effective prediction using partition coding
KR101663394B1 (ko) * 2011-11-11 2016-10-06 지이 비디오 컴프레션, 엘엘씨 적응적 분할 코딩
EP4161078A1 (en) 2011-11-11 2023-04-05 GE Video Compression, LLC Effective wedgelet partition coding using spatial prediction
WO2013129822A1 (ko) * 2012-02-27 2013-09-06 세종대학교산학협력단 영상 부호화와 복호화 장치 및 영상을 부호화와 복호화하는 방법
KR20130098122A (ko) * 2012-02-27 2013-09-04 세종대학교산학협력단 영상 부호화/복호화 장치 및 영상을 부호화/복호화하는 방법
WO2014042459A1 (ko) * 2012-09-17 2014-03-20 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
CN105409215B (zh) 2013-01-11 2018-10-09 华为技术有限公司 深度预测模式选择方法及装置
CN104427291B (zh) * 2013-08-19 2018-09-28 华为技术有限公司 一种图像处理方法及设备
US9544601B2 (en) * 2013-10-15 2017-01-10 Qualcomm Incorporated Wedgelet pattern extension for depth intra coding
US9756359B2 (en) * 2013-12-16 2017-09-05 Qualcomm Incorporated Large blocks and depth modeling modes (DMM'S) in 3D video coding
US20150189269A1 (en) * 2013-12-30 2015-07-02 Google Inc. Recursive block partitioning
WO2015101640A1 (en) * 2014-01-03 2015-07-09 Ge Video Compression, Llc Wedgelet-based coding concept
US10368097B2 (en) 2014-01-07 2019-07-30 Nokia Technologies Oy Apparatus, a method and a computer program product for coding and decoding chroma components of texture pictures for sample prediction of depth pictures
CN106576175A (zh) * 2014-06-18 2017-04-19 三星电子株式会社 多视点图像编码/解码方法和装置
JP2017523682A (ja) 2014-06-20 2017-08-17 サムスン エレクトロニクス カンパニー リミテッド インターレイヤビデオ符号化/復号のためのデプス映像の予測モード伝送方法及びその装置
WO2016003210A1 (ko) * 2014-07-04 2016-01-07 주식회사 케이티 다시점 비디오 신호 처리 방법 및 장치
AU2015327521B2 (en) * 2014-09-30 2018-07-26 Hfi Innovation Inc. Method of lookup table size reduction for depth modelling mode in depth coding
WO2016049913A1 (en) * 2014-09-30 2016-04-07 Mediatek Singapore Pte. Ltd. A simplified method for the depth modeling modes
WO2016049891A1 (en) * 2014-09-30 2016-04-07 Mediatek Singapore Pte. Ltd. Methods on segmentation coding in intra prediction
WO2016123783A1 (zh) * 2015-02-05 2016-08-11 华为技术有限公司 图像预测处理方法和相关设备
WO2016123782A1 (zh) * 2015-02-05 2016-08-11 华为技术有限公司 模板处理方法和相关设备
US20160277751A1 (en) * 2015-03-19 2016-09-22 Patrick J. Sweeney Packaging/mux and unpackaging/demux of geometric data together with video data
WO2016182316A1 (ko) * 2015-05-12 2016-11-17 삼성전자 주식회사 인트라 예측을 수행하는 영상 복호화 방법 및 그 장치 및 인트라 예측을 수행하는 영상 부호화 방법 및 그 장치
WO2016182317A1 (ko) * 2015-05-12 2016-11-17 삼성전자 주식회사 인트라 예측을 수행하는 영상 복호화 방법 및 그 장치 및 인트라 예측을 수행하는 영상 부호화 방법 및 그 장치
CN105007494B (zh) * 2015-07-20 2018-11-13 南京理工大学 一种3d视频深度图像的帧内楔形分割模式选择方法
WO2017097441A1 (en) * 2015-12-07 2017-06-15 Huawei Technologies Co., Ltd. Devices and methods for video coding using intra prediction
CN109565595B (zh) 2016-06-24 2021-06-22 华为技术有限公司 一种使用基于分割的视频编码块划分的视频编码设备和方法
CN109565592B (zh) 2016-06-24 2020-11-17 华为技术有限公司 一种使用基于分割的视频编码块划分的视频编码设备和方法
US20210337202A1 (en) * 2017-06-21 2021-10-28 Vid Scale, Inc. Adaptive quantization method for 360-degree video coding
US20190096041A1 (en) * 2017-09-25 2019-03-28 Texas Instruments Incorporated Methods and system for efficient processing of generic geometric correction engine
US11145079B2 (en) 2017-09-25 2021-10-12 Texas Instruments Incorporated Method and apparatus for arbitrary output shape processing of an image
US11108841B2 (en) 2018-06-19 2021-08-31 At&T Intellectual Property I, L.P. Apparatus, storage medium and method for heterogeneous segmentation of video streaming
US11265579B2 (en) * 2018-08-01 2022-03-01 Comcast Cable Communications, Llc Systems, methods, and apparatuses for video processing
CN110809159B (zh) 2018-08-04 2022-06-07 北京字节跳动网络技术有限公司 更新的mv或推导的mv的裁剪
JP2022502905A (ja) * 2018-09-21 2022-01-11 インターデイジタル ヴィーシー ホールディングス インコーポレイテッド 双予測を使用するビデオエンコーディングおよびデコーディングのための方法および装置
EP3861732A4 (en) * 2018-10-01 2022-07-06 OP Solutions, LLC EXPONENTIAL PARTITIONING METHODS AND SYSTEMS
US11317099B2 (en) 2018-10-05 2022-04-26 Tencent America LLC Method and apparatus for signaling an offset in video coding for intra block copy and/or inter prediction
CN111010569B (zh) 2018-10-06 2023-02-28 北京字节跳动网络技术有限公司 Bio中的时间梯度计算的改善
EP3891977A4 (en) * 2018-12-29 2022-06-22 Huawei Technologies Co., Ltd. METHOD AND DEVICE FOR INTRAPREDICTION
US20220132109A1 (en) * 2019-02-21 2022-04-28 Lg Electronics Inc. Image decoding method and apparatus using intra prediction in image coding system
CN110363212B (zh) * 2019-03-28 2022-02-15 西南石油大学 基于边界扫描的多wedgelet图像近似方法
US11240534B2 (en) * 2019-04-05 2022-02-01 Qualcomm Incorporated Extended multiple transform selection for video coding
CN110225339A (zh) * 2019-05-10 2019-09-10 上海德衡数据科技有限公司 一种hevc视频序列编解码加速方法
CN114731430A (zh) * 2019-12-05 2022-07-08 交互数字Vc控股法国有限公司 与多个变换选择、矩阵加权帧内预测或多参考线帧内预测结合的用于视频编码和解码的帧内子分区

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60248076A (ja) 1984-05-24 1985-12-07 Matsushita Electric Ind Co Ltd 符号化方法及びその装置
JPH01303888A (ja) * 1988-05-31 1989-12-07 Fujitsu Ltd フレーム間符号化装置
JP3353968B2 (ja) * 1992-09-25 2002-12-09 オリンパス光学工業株式会社 画像処理装置
JPH06153167A (ja) * 1992-11-13 1994-05-31 Oki Electric Ind Co Ltd 動きベクトル検出回路
JPH08298665A (ja) * 1994-04-21 1996-11-12 Sanyo Electric Co Ltd 動きベクトル検出回路、検出方法、及び動画像圧縮回路
JPH09275565A (ja) * 1996-04-05 1997-10-21 Kokusai Electric Co Ltd 画像ブロックマッチング方法及び画像符号化方法
JP3231618B2 (ja) * 1996-04-23 2001-11-26 日本電気株式会社 3次元画像符号化復号方式
US6636633B2 (en) 1999-05-03 2003-10-21 Intel Corporation Rendering of photorealistic computer graphics images
WO2003101117A1 (en) 2002-05-28 2003-12-04 Sharp Kabushiki Kaisha Methods and systems for image intra-prediction mode estimation, communication, and organization
JP4088205B2 (ja) * 2002-06-11 2008-05-21 松下電器産業株式会社 符号化装置、コンピュータ読取可能なプログラム、符号化方法。
US7227901B2 (en) 2002-11-21 2007-06-05 Ub Video Inc. Low-complexity deblocking filter
US6900748B2 (en) 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US9351013B2 (en) * 2003-11-13 2016-05-24 Qualcomm Incorporated Selective and/or scalable complexity control for video codecs
EP1790168B1 (en) 2004-09-16 2016-11-09 Thomson Licensing Video codec with weighted prediction utilizing local brightness variation
US8948266B2 (en) * 2004-10-12 2015-02-03 Qualcomm Incorporated Adaptive intra-refresh for digital video encoding
CN1777289A (zh) 2005-11-30 2006-05-24 天津大学 利用选择性预测加快运动估计的方法
WO2007128706A2 (en) 2006-05-05 2007-11-15 Thomson Licensing Simplified inter-layer motion prediction for scalable video coding
EP2052546A4 (en) 2006-07-12 2010-03-03 Lg Electronics Inc METHOD AND DEVICE FOR SIGNAL PROCESSING
EP2047687B1 (en) 2006-08-02 2018-05-16 Thomson Licensing DTV Adaptive geometric partitioning for video encoding
JP4956304B2 (ja) * 2006-08-08 2012-06-20 キヤノン株式会社 画像符号化装置及びその制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7756348B2 (en) 2006-10-30 2010-07-13 Hewlett-Packard Development Company, L.P. Method for decomposing a video sequence frame
JP5026092B2 (ja) 2007-01-12 2012-09-12 三菱電機株式会社 動画像復号装置および動画像復号方法
KR101680951B1 (ko) * 2007-04-12 2016-11-29 톰슨 라이센싱 비디오 인코더에서 고속으로 기하학적 모드를 결정하기 위한 방법들 및 장치
CN101822064A (zh) * 2007-10-16 2010-09-01 汤姆逊许可公司 用于几何分割超级块的视频编码和解码的方法和设备
JP5097523B2 (ja) 2007-12-07 2012-12-12 船井電機株式会社 音声入力装置
EP2243297B1 (en) 2008-02-05 2017-03-08 Thomson Licensing Methods and apparatus for implicit block segmentation in video encoding and decoding
JP5071721B2 (ja) 2008-02-27 2012-11-14 ソニー株式会社 画像処理装置および方法、並びにプログラム
KR20090095316A (ko) 2008-03-05 2009-09-09 삼성전자주식회사 영상 인트라 예측 방법 및 장치
CN101609548B (zh) 2008-09-12 2011-04-06 西安电子科技大学 基于Wavelet和Wedgelet变换HMT模型的图像分割方法
WO2010036772A2 (en) 2008-09-26 2010-04-01 Dolby Laboratories Licensing Corporation Complexity allocation for video and image coding applications
JP2012089905A (ja) 2009-01-13 2012-05-10 Hitachi Ltd 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法
EP2384004A4 (en) 2009-01-29 2012-08-01 Lg Electronics Inc METHOD AND APPARATUS FOR PROCESSING VIDEO SIGNALS USING INTRA MODE CONTOUR CODING
KR101807886B1 (ko) * 2009-10-14 2017-12-11 돌비 인터네셔널 에이비 깊이 맵 처리를 위한 방법 및 디바이스
JP5456907B2 (ja) * 2009-12-04 2014-04-02 トムソン ライセンシング テクスチャー・パターン適応式の分割ブロック変換
KR20110068792A (ko) 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
US8913661B2 (en) 2010-02-19 2014-12-16 Skype Motion estimation using block matching indexing
PL2559166T3 (pl) 2010-04-13 2018-04-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Koder i dekoder dzielący interwał prawdopodobieństwa
KR101447796B1 (ko) 2010-04-13 2014-10-07 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 평면 간 예측
PT3301648T (pt) * 2010-04-13 2020-04-20 Ge Video Compression Llc Herança em matriz de amostras em subdivisão multitree
US9020043B2 (en) 2010-05-10 2015-04-28 Google Inc. Pathway indexing in flexible partitioning
US20120008684A1 (en) 2010-07-09 2012-01-12 Samsung Electronics Co., Ltd. Method and apparatus of encoding and decoding video signal
EP2604036B1 (en) * 2010-08-11 2018-03-07 GE Video Compression, LLC Multi-view signal codec
WO2012147740A1 (ja) 2011-04-25 2012-11-01 シャープ株式会社 画像符号化装置、画像符号化方法、画像符号化プログラム、画像復号装置、画像復号方法及び画像復号プログラム
EP2521357A1 (de) 2011-05-06 2012-11-07 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Filterung von kodierten Bildpartitionen
JP5937212B2 (ja) * 2011-08-26 2016-06-22 トムソン ライセンシングThomson Licensing デプス符号化
KR101663394B1 (ko) * 2011-11-11 2016-10-06 지이 비디오 컴프레션, 엘엘씨 적응적 분할 코딩
EP3657788B1 (en) 2011-11-11 2021-08-04 GE Video Compression, LLC Effective prediction using partition coding
JP6717790B2 (ja) 2017-09-14 2020-07-08 ファナック株式会社 レーザ加工中に光学系の汚染レベルに応じて焦点シフトを調整するレーザ加工装置

Also Published As

Publication number Publication date
JP6501808B2 (ja) 2019-04-17
US9756330B2 (en) 2017-09-05
KR20190120444A (ko) 2019-10-23
EP3691262B1 (en) 2023-10-25
US20170332086A1 (en) 2017-11-16
JP6788699B2 (ja) 2020-11-25
KR102588425B1 (ko) 2023-10-12
US20200128260A1 (en) 2020-04-23
IN2014KN01047A (pt) 2015-10-09
CN109257597B (zh) 2023-05-16
CN109257599A (zh) 2019-01-22
EP2777285A1 (en) 2014-09-17
EP3691262A1 (en) 2020-08-05
EP3249923A1 (en) 2017-11-29
CN109257599B (zh) 2023-05-16
US10341667B2 (en) 2019-07-02
US10362317B2 (en) 2019-07-23
EP2777285B1 (en) 2017-08-16
CN109257598A (zh) 2019-01-22
US10567776B2 (en) 2020-02-18
JP2024012629A (ja) 2024-01-30
JP6084627B2 (ja) 2017-02-22
KR20160118373A (ko) 2016-10-11
JP2022153645A (ja) 2022-10-12
KR20230145540A (ko) 2023-10-17
US10986352B2 (en) 2021-04-20
JP7389185B2 (ja) 2023-11-29
US20200404294A1 (en) 2020-12-24
KR102373445B1 (ko) 2022-03-11
BR112014011406A2 (pt) 2017-06-27
CN109257596A (zh) 2019-01-22
EP3249923B1 (en) 2020-01-01
CN109257597A (zh) 2019-01-22
JP2015502063A (ja) 2015-01-19
CN109257598B (zh) 2023-05-12
HK1202202A1 (en) 2015-09-18
KR20200125750A (ko) 2020-11-04
CN104221379B (zh) 2019-01-01
HUE034631T2 (en) 2018-02-28
US20190297334A1 (en) 2019-09-26
CN109257596B (zh) 2023-06-13
KR102036175B1 (ko) 2019-10-24
EP4325865A2 (en) 2024-02-21
JP2021022947A (ja) 2021-02-18
WO2013068566A1 (en) 2013-05-16
US10771794B2 (en) 2020-09-08
US11863763B2 (en) 2024-01-02
BR112014011406A8 (pt) 2018-12-26
KR101663394B1 (ko) 2016-10-06
DK2777285T3 (da) 2017-11-27
US20140247871A1 (en) 2014-09-04
PT2777285T (pt) 2017-12-01
US20210185329A1 (en) 2021-06-17
NO2806722T3 (pt) 2018-03-10
KR20220162859A (ko) 2022-12-08
JP7121093B2 (ja) 2022-08-17
BR112014011406B1 (pt) 2022-06-14
ES2647514T3 (es) 2017-12-22
CN104221379A (zh) 2014-12-17
KR102171788B1 (ko) 2020-10-29
PL2777285T3 (pl) 2018-01-31
EP3691262C0 (en) 2023-10-25
KR20140077990A (ko) 2014-06-24
JP2017108427A (ja) 2017-06-15
KR20220035274A (ko) 2022-03-21
KR102471528B1 (ko) 2022-11-28
JP2019134466A (ja) 2019-08-08
US20170332088A1 (en) 2017-11-16

Similar Documents

Publication Publication Date Title
BR122020014854B1 (pt) Codificação de partição eficaz com elevado grau de liberdade de partição
US11722657B2 (en) Effective wedgelet partition coding
US11032562B2 (en) Effective wedgelet partition coding using spatial prediction
BR112014011413B1 (pt) Predição eficaz utilizando codificação de partição
TWI736905B (zh) 色度解碼器側運動向量細化

Legal Events

Date Code Title Description
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 09/11/2012, OBSERVADAS AS CONDICOES LEGAIS