BR112016029387B1 - Método de codificar dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo, aparelho para codificar dados de vídeo, método de decodificar dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo, aparelho para decodificar dados de vídeo e memórias legíveis por computador - Google Patents

Método de codificar dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo, aparelho para codificar dados de vídeo, método de decodificar dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo, aparelho para decodificar dados de vídeo e memórias legíveis por computador Download PDF

Info

Publication number
BR112016029387B1
BR112016029387B1 BR112016029387-8A BR112016029387A BR112016029387B1 BR 112016029387 B1 BR112016029387 B1 BR 112016029387B1 BR 112016029387 A BR112016029387 A BR 112016029387A BR 112016029387 B1 BR112016029387 B1 BR 112016029387B1
Authority
BR
Brazil
Prior art keywords
prediction
intra
video data
inter
video
Prior art date
Application number
BR112016029387-8A
Other languages
English (en)
Other versions
BR112016029387A2 (pt
Inventor
Chao PANG
Krishnakanth RAPAKA
Xiang Li
Joel Sole Rojals
Cheng-Teh Hsieh
Marta Karczewicz
Original Assignee
Qualcomm Incorporated
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 Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016029387A2 publication Critical patent/BR112016029387A2/pt
Publication of BR112016029387B1 publication Critical patent/BR112016029387B1/pt

Links

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
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/172Methods 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 picture, frame or field
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of 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/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/184Methods 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 bits, e.g. of the compressed video stream
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • 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

Abstract

sistemas e métodos para cópia intra-bloco. são proporcionadas técnicas e sistemas para codificar e decodificar dados de vídeo. por exemplo, um método de codificar dados de vídeo inclui obter dados de vídeo em um codificador, e determinar para realizar predição intra-imagem nos dados de vídeo, usando predição de cópia intra-bloco, para gerar a pluralidade de imagens codificadas de vídeo. o método inclui também realizar a predição intra-imagem nos dados de vídeo usando a predição de cópia intra-bloco e, em resposta à determinação para realizar a predição intra-imagem nos dados de vídeo usando a predição de cópia intra-bloco, desabilitar pelo menos uma de predição dupla inter-imagem ou predição única inter-imagem para a pluralidade de imagens codificadas de vídeo. o método também inclui gerar a pluralidade de imagens codificadas de vídeo com base nos dados de vídeo recebidos de acordo com a predição de cópia intra-bloco realizada.

Description

CAMPO
[0001] A presente revelação se refere geralmente à codificação de vídeo e, mais especificamente, às técnicas e sistemas para cópia intra-bloco.
ANTECEDENTES
[0002] Muitos dispositivos e sistemas permitem que os dados de vídeo sejam processados e emitidos para consumo. Os dados de vídeo digital incluem grandes quantidades de dados para satisfazer às demandas dos consumidores e provedores de vídeo. Por exemplo, os consumidores de dados de vídeo desejam vídeo de qualidade superior, com alta fidelidade, resoluções, taxas de quadros, e semelhantes. Como resultado, a grande quantidade de dados de vídeo que é exigida para atender a essas demandas impõe um peso sobre as redes e dispositivos de comunicação que processam e armazenam os dados de vídeo.
[0003] Várias técnicas de codificação de vídeo podem ser usadas para compactar dados de vídeo. A codificação de vídeo é realizada de acordo com um ou mais padrões de codificação de vídeo. Por exemplo, os padrões de codificação de vídeo incluem codificação de vídeo de alta eficiência (HEVC), codificação avançada de vídeo (AVC), codificação de Moving Picture Experts Group (MPEG) ou semelhante. A codificação de vídeo geralmente utiliza métodos de predição (por exemplo, predição inter, predição intra, ou semelhante) que tiram proveito da redundância presente nas imagens ou sequências de vídeo. Um objetivo importante das técnicas de codificação de vídeo é o de compactar os dados de vídeo em uma forma que usa uma taxa de bits inferior, enquanto evitando ou minimizando as degradações em qualidade de vídeo. Com os serviços de vídeo em constante evolução se tornando disponíveis, técnicas de codificação com melhor eficiência de codificação são necessárias.
BREVE SUMÁRIO
[0004] Em algumas modalidades, são descritas técnicas e sistemas para realizar cópia intra-bloco. Em alguns exemplos, algumas restrições podem ser impostas a uma ou mais técnicas de predição quando a predição de cópia intra-bloco é habilitada. Por exemplo, a uma ou mais técnicas de predição podem ser desabilitadas quando uma técnica de predição de cópia intra-bloco é realizada. Em outro exemplo, uma ou mais técnicas de predição podem ser desabilitadas quando um tamanho de bloco de predição é menor ou igual a um tamanho de bloco. Outros exemplos são descritos aqui para controlar o uso de técnicas de predição.
[0005] Em algumas modalidades, são descritos sistemas e técnicas para determinar seletivamente um bloco de referência para usar para uma técnica de predição de cópia intra-bloco. Por exemplo, as técnicas para selecionar um bloco de referência a ser usado ao realizar predição de cópia intra-bloco podem fazer uma determinação de excluir os blocos que sejam codificados utilizando predição dupla a partir dos blocos que são considerados para uso na predição de cópia intra-bloco. Outros exemplos são descritos aqui para determinar seletivamente um bloco de referência a ser usado ao realizar a predição de cópia intra-bloco.
[0006] Mediante realização das técnicas de cópia intra-bloco de acordo com vários aspectos e características aqui discutidos, largura de banda de memória e/ou exigências de tamanho são reduzidas.
[0007] Um aspecto inventivo é um método de codificar dados de vídeo para gerar uma pluralidade de imagens de vídeo codificadas. O método inclui obter os dados de vídeo em um codificador, e determinar para realizar predição intra-imagem nos dados de vídeo, utilizando predição de cópia intra-bloco, para gerar a pluralidade de imagens codificadas de vídeo. O método também inclui realizar a predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco e, em resposta à determinação para realizar a predição intra- imagem nos dados de vídeo utilizando predição de cópia intra-bloco, desabilitar pelo menos uma de predição dupla inter-imagem ou predição única inter-imagem para a pluralidade de imagens codificadas de vídeo. O método inclui também gerar a pluralidade de imagens codificadas de vídeo com base nos dados de vídeo recebidos de acordo com a predição de cópia intra-bloco realizada.
[0008] Outro aspecto inventivo é um aparelho para codificar dados de vídeo. O aparelho inclui uma memória configurada para armazenar dados de vídeo, e um processador configurado para obter os dados de vídeo, determinar para realização de predição intra-imagem nos dados de vídeo, utilizando predição de cópia intra-bloco para gerar uma pluralidade de imagens codificadas de vídeo, e realizar a predição intra-imagem nos dados de vídeo usando a predição de cópia intra-bloco. O processador também é configurado para, em resposta à determinação para realizar a predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, desabilitar pelo menos uma de predição dupla inter-imagem ou predição única inter-imagem para a pluralidade de imagens codificadas de vídeo. O processador também é configurado para gerar a pluralidade de imagens codificadas de vídeo com base nos dados de vídeo de acordo com a predição de cópia intra-bloco realizada.
[0009] Outro aspecto inventivo é um meio legível por computador de um codificador que tem nele armazenadas instruções que quando executadas por um processador fazem com que o processador realize um método de codificar os dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo. O método inclui a obtenção de dados de vídeo, determinação para realizar predição de intra-imagem nos dados utilizando predição de cópia intra- bloco, para gerar a pluralidade de imagens codificadas de vídeo, e realizar a predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco. O método inclui também, em resposta à determinação para realizar a predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, desabilitar pelo menos uma de predição dupla inter-imagem ou a predição única inter- imagem para a pluralidade de imagens codificadas de vídeo. O método inclui também gerar a pluralidade de imagens codificadas de vídeo com base nos dados de vídeo de acordo com a predição de cópia intra-bloco realizada.
[0010] Outro aspecto inventivo é um método de decodificar os dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo. O método inclui receber, em um fluxo de bits de vídeo, os dados de vídeo codificados utilizando uma pluralidade de modos de predição selecionáveis. A pluralidade de modos de predição inclui um modo de predição única inter-imagem, um modo de predição dupla inter-imagem, e um modo de cópia intra-bloco, intra- imagem. O método inclui também receber, no fluxo de bits de vídeo, uma indicação de que a predição dupla inter-imagem é desabilitada para uma porção dos dados codificados de vídeo. O método inclui também determinar, com base na indicação, um modo de predição a partir da pluralidade de modos de predição para predizer uma unidade de predição da porção dos dados codificados de vídeo, e decodificar a unidade de predição da porção de dados codificados de vídeo de acordo com o modo de predição determinado.
[0011] Outro aspecto inventivo é um aparelho para decodificar dados de vídeo. O aparelho inclui uma memória configurada para armazenar os dados codificados de vídeo recebidos em um fluxo de bits de vídeo e codificados com uma pluralidade de modos de predição. A pluralidade de modos de predição inclui um modo de predição única inter- imagem, um modo de predição dupla inter-imagem, e um modo de cópia intra-bloco de intra-imagem. O aparelho inclui ainda um processador configurado para obter os dados codificados de vídeo a partir da memória, e receber, no fluxo de bits de vídeo, uma indicação de que a predição dupla inter-imagem é desabilitada por uma porção dos dados codificados de vídeo. O processador também é configurado para determinar, com base na indicação, um modo de predição a partir da pluralidade de modos de predição para predizer uma unidade de predição da porção de dados de vídeo codificado. O processador também é configurado para decodificar a unidade de predição da porção dos dados codificados de vídeo de acordo com o modo de predição determinado.
[0012] Outro aspecto inventivo é um meio legível por computador de um decodificador que tem nele armazenadas instruções que quando executadas por um processador fazem com que o processador realize um método de decodificar os dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo. O método inclui receber, em um fluxo de bits de vídeo, vídeo codificado utilizando uma pluralidade de modos de predição. A pluralidade de modos de predição inclui um modo de predição única inter- imagem, um modo de predição dupla inter-imagem, e um modo de cópia intra-blocos, intra-imagem. O método também inclui receber, no fluxo de bits de vídeo, uma indicação de que a predição dupla inter-imagem é desabilitada por uma porção dos dados codificados de vídeo, determinando, com base na indicação, um modo de predição a partir da pluralidade de modos de predição para predizer uma unidade de predição da porção dos dados codificados de vídeo, e decodificar a unidade de predição da porção de dados codificados de vídeo de acordo com o modo de predição determinado.
[0013] Esse sumário não pretende identificar características cruciais ou essenciais da matéria em estudo reivindicada, nem pretende ser usado isoladamente para determinar o escopo da matéria em questão reivindicada. A matéria em estudo deve ser entendida mediante referência às porções apropriadas do relatório descritivo integral dessa patente, qualquer um ou todos os desenhos, e cada reivindicação.
[0014] O precedente, em conjunto com outras características e modalidades, se tornará mais evidente a partir de referência ao relatório descritivo seguinte, reivindicações, e desenhos anexos.
BREVE DESCRIÇÃO DOS DESENHOS
[0015] Modalidades ilustrativas da presente invenção são descritas em detalhe abaixo com referência às Figuras de desenho a seguir:
[0016] A Figura 1 é um diagrama em blocos que ilustra um exemplo de um dispositivo de codificação e de um dispositivo de decodificação, de acordo com algumas modalidades.
[0017] A Figura 2 é um diagrama em blocos que ilustra um processo de cópia intra-bloco.
[0018] A Figura 3 é um diagrama em blocos que ilustra um processo de cópia intra-bloco com vetores dispersos de bloco.
[0019] A Figura 4 é um diagrama em blocos que ilustra um processo de cópia intra-bloco com vetores de bloco dispersos através de múltiplos blocos de pixels adjacentes.
[0020] A Figura 5 ilustra uma modalidade de um processo de codificação de dados de vídeo.
[0021] A Figura 6 ilustra uma modalidade de um processo de decodificação de dados de vídeo.
[0022] A Figura 7 ilustra uma modalidade de um processo de codificação de dados de vídeo.
[0023] A Figura 8 é um diagrama em blocos que ilustra um codificador de vídeo exemplar, de acordo com algumas modalidades.
[0024] A Figura 9 e um diagrama em blocos que ilustra um decodificador de vídeo exemplar, de acordo com algumas modalidades.
DESCRIÇÃO DETALHADA DA MODALIDADE PREFERIDA
[0025] Certos aspectos e modalidades da revelação são fornecidos abaixo. Alguns desses aspectos e modalidades podem ser aplicados independentemente e alguns deles podem ser aplicados em combinação como seria evidente para aqueles versados na arte. Na descrição seguinte, com o propósito de explanação, detalhes específicos são apresentados para proporcionar um entendimento completo das modalidades da invenção. Contudo, será evidente que várias modalidades podem ser praticadas sem esses detalhes específicos. As figuras e descrição não pretendem ser restritivas.
[0026] A descrição seguinte proporciona apenas modalidades exemplares, e não pretende limitar o escopo, aplicabilidade ou configuração da revelação. Mais propriamente, a descrição seguinte das modalidades exemplares proporcionará àqueles na técnica uma descrição habilitadora para implementar uma modalidade exemplar. Deve ser entendido que várias mudanças podem ser feitas na função e arranjo dos elementos sem se afastar do espírito e escopo da invenção conforme apresentado nas reivindicações anexas.
[0027] Detalhes específicos são fornecidos na descrição seguinte para proporcionar o entendimento completo das modalidades. No entanto, será entendido por um vulgar de especialistas na arte que as modalidades podem ser praticadas sem estes detalhes específicos. Por exemplo, circuitos, sistemas, redes, processos e outros componentes podem ser mostrados como componentes na forma de diagrama de blocos, a fim de não obscurecer as modalidades em detalhe desnecessário. Noutros casos, circuitos bem conhecidos, os processos, os algoritmos, as estruturas, técnicas e pode ser mostrado sem detalhes desnecessários, de modo a evitar obscurecer as modalidades.
[0028] Além disso, é de notar que modalidades individuais podem ser descritas como um processo que é descrito como um fluxograma, um diagrama de fluxo, um diagrama de fluxo de dados, um diagrama de estrutura, ou de um diagrama de blocos. Embora um fluxograma possa descrever as operações como um processo sequencial, muitas das operações podem ser realizadas em paralelo ou simultaneamente. Além disso, a ordem das operações pode ser re-arranjada. Um processo é encerrado quando suas operações são concluídas, mas poderia ter passos adicionais não incluídos em uma figura. Um processo pode corresponder a um modo, uma função, um processo, uma sub-rotina, uma subrotina, etc. Quando um processo corresponde a uma função, a sua terminação pode corresponder a um retorno da função para a função de chamada ou a função principal.
[0029] O termo “meio legível por computador” inclui, mas não está limitado a, dispositivos portáteis ou não portáteis de armazenamento, dispositivos de armazenamento óptico, e vários outros meios capazes de armazenar, contendo ou transportando instruções (s) e/ou dados. Um meio legível por computador poderá incluir um meio não transitório em que os dados podem ser armazenados e que não incluem ondas portadoras e/ou sinais eletrônicos transitórios propagação sem fio ou através de ligações com fio. Exemplos de uma forma não transitória podem incluir, mas não estão limitados a, um disco magnético ou uma fita, meios de armazenamento ópticos tais como discos compactos (CD) ou disco versátil digital (DVD), memória flash, memória ou dispositivos de memória. Um meio legível por computador pode ter armazenado no mesmo código e/ou instruções de máquina-executável que pode representar um procedimento, uma função, um subprograma, um programa, uma rotina, uma sub-rotina, um módulo, um pacote de software, uma classe, ou qualquer combinação de instruções, estruturas de dados ou instruções de programa. Um segmento de código pode ser acoplado a outro segmento de código ou um circuito de hardware passando e/ou receber informações, dados, argumentos, parâmetros ou conteúdo da memória. Informação, argumentos, parâmetros, dados, etc., podem ser passados, encaminhados, ou transmitidos através de quaisquer meios adequados incluindo a partilha de memória, a passagem de mensagens, passagem de fichas, de transmissão de rede, ou outros semelhantes.
[0030] Além disso, modalidades podem ser implementadas por hardware, software, firmware, middleware, microcódigo, descrição de hardware línguas, ou qualquer combinação dos mesmos. Quando implementados em software, firmware, middleware ou microcódigo, o código de programa ou segmentos de código para realizar as tarefas necessárias (por exemplo, um produto de programa de computador) pode ser armazenado num meio de leitura por computador ou legível por máquina. Um processador (s) pode executar as tarefas necessárias.
[0031] Vários sistemas e métodos de codificação de vídeo utilizando codificadores e decodificadores de vídeo são aqui descritas. Por exemplo, um ou mais sistemas e métodos são dirigidos ao tratamento de camadas indisponíveis, conjuntos de camadas, e os pontos de funcionamento, bem como as restrições sobre os parâmetros de formato de representação em múltiplas camadas de codificação de vídeo.
[0032] À medida que mais dispositivos e sistemas de fornecer aos consumidores a capacidade de consumir dados de vídeo digital, a necessidade de técnicas de codificação de vídeo eficiente se torna mais importante. A codificação de vídeo é necessária para reduzir os requisitos de armazenamento e de transporte necessárias para lidar com as grandes quantidades de dados presentes nos dados de vídeo digitais. Várias técnicas de codificação de vídeo podem ser usadas para comprimir dados de vídeo em um formulário que usa uma taxa de bits mais baixa, mantendo a alta qualidade de vídeo.
[0033] A figura 1 é um diagrama de blocos que ilustra um exemplo de um sistema 100 que inclui um dispositivo de codificação 104 e um dispositivo de decodificação 112. A dispositiva codificação 104 pode ser parte de um dispositivo de origem, e o dispositivo de decodificação 112 pode ser parte de um dispositivo de recepção. O dispositivo de origem e/ou o dispositivo receptor pode incluir um dispositivo eletrônico, como um aparelho móvel ou fixa de telefone (por exemplo, smartphone, telefone celular, ou semelhante), um computador desktop, um laptop ou notebook, um computador tablet, um aparelho de conversão de sinais, uma televisão, uma máquina fotográfica, um dispositivo de exibição, um player de mídia digital, uma console de jogos de vídeo, um dispositivo de vídeo de fluxo contínuo, ou qualquer outro dispositivo eletrônico adequado. Em alguns exemplos, o dispositivo de origem e o dispositivo receptor podem incluir um ou mais transceptores sem fio para comunicações sem fio. As técnicas de codificação aqui descritas são aplicáveis a codificação de vídeo em diversas aplicações de multimídia, incluindo transmissões de streaming de vídeo (por exemplo, através da Internet), emissões de televisão ou transmissões, codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenada no um meio de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema 100 pode suportar uma forma ou de transmissão de vídeo de duas vias para suportar aplicações como videoconferência, streaming de vídeo, reprodução de vídeo, transmissão de vídeo, jogos e/ou de telefonia de vídeo.
[0034] O dispositivo de codificação 104 (ou codificador) pode ser utilizado para codificar os dados de vídeo através de uma codificação de vídeo padrão ou protocolo para gerar um fluxo de bits de vídeo codificado. Os padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU H.264 -T (também conhecido como ISO/IEC MPEG-4 AVC), incluindo as suas extensões Scalable Video Coding (SVC) e Multiview Video Coding (MVC). A norma mais recente vídeo de codificação, alta eficiência Video Coding (HEVC), foi finalizado pela equipe de colaboração conjunta no Video Coding (JCT-VC) do ITU-T Video Coding Experts Group (VCEG) e ISO/IEC Motion Picture Experts Group (MPEG). Várias extensões para HEVC lidar com codificação de vídeo de múltiplas camadas também estão sendo desenvolvidas pela JCT-VC, incluindo a extensão de múltiplas vistas para HEVC, chamada de MV-HEVC, e a extensão de adaptação de HEVC, chamada de SHVC, ou qualquer outro protocolo de codificação adequado. Um projeto de especificação HEVC está disponível a partir http://phenix.it-sudparis.eu/jct/doc_end_user/ documentos/17_Valencia/WG11/JCTVC-Q1003-v1.zip. Um projeto de trabalho de MV-HEVC está disponível a partir http://phenix.it-sudparis.eu/jct2/doc_ end_user/documentos/8_Valencia/WG11/JCT3V-H1002-v5.zip. Um projecto de trabalho de SHVC está disponível a partir http://phenix.it- sudparis.eu/jct/doc_end_user/documents/17_Valencia/wg11/JCT VC-Q1008-v2.zip.
[0035] Muitas modalidades aqui descritas descrevem exemplos que utilizam a norma HEVC, as suas extensões. No entanto, as técnicas e os sistemas aqui descritos também podem ser aplicáveis a outros padrões de codificação, tais como AVC, MPEG, extensões dos mesmos, ou outros padrões de codificação adequada. Por conseguinte, enquanto as técnicas e sistemas aqui descritos podem ser descritos com referência a um padrão de vídeo de codificação particular, um vulgar perito na arte irá apreciar que a descrição não deve ser interpretada para aplicar somente para aquele padrão em particular.
[0036] Uma fonte de vídeo 102 pode fornecer os dados de vídeo para o dispositivo de codificação 104. A fonte de vídeo 102 pode ser parte do dispositivo de origem, ou pode ser parte de outro dispositivo que não o dispositivo de origem. A fonte de vídeo 102 pode incluir um dispositivo de captura de vídeo de vídeo (por exemplo, uma câmara de vídeo, um telefone com câmera, um telefone de vídeo, ou semelhantes), um arquivo de vídeo contendo armazenado, um servidor de vídeo ou provedor de conteúdo fornecendo dados de vídeo, uma alimentação de interface de vídeo de recepção de vídeo a partir de um servidor de vídeo ou fornecedor de conteúdos, um sistema de computação gráfica para gerar dados gráficos de computador de vídeo, uma combinação de tais fontes, ou qualquer outra fonte de vídeo apropriado.
[0037] Os dados de vídeo da fonte de vídeo 102 podem incluir uma ou mais imagens de entrada ou quadros. Uma imagem ou quadro é uma imagem estática que é parte de um vídeo. O codificador 106 do mecanismo (ou codificador) do dispositivo de codificação 104 codifica os dados de vídeo para gerar um fluxo de bits de vídeo codificado. Um fluxo de bits HEVC, por exemplo, pode incluir uma sequência de unidades de dados chamados de camadas de unidades de rede abstração (NAL). Duas classes de unidades NAL existem no padrão HEVC, incluindo camadas de vídeo codificação unidades (VCL) NAL e unidades não-VCL NAL. Uma unidade VCL NAL inclui um segmento de fatia (descrito abaixo) de dados de imagem codificados, e uma unidade não-VCL NAL inclui informações de controle que se relaciona com vários codificado imagens. Uma imagem codificada e unidades não- VCL NAL (se houver) correspondentes à imagem codificada é chamada uma unidade de acesso (AU).
[0038] As unidades NAL podem conter uma sequência de bits que formam uma representação codificada dos dados de vídeo, tais como representações codificadas de imagens em um vídeo. O mecanismo de codificação 106 gera a representação codificada dividindo cada imagem em várias fatias. Uma fatia é independente de outras fatias de modo a que a informação na fatia é codificada sem dependência de dados de outras fatias dentro da mesma imagem. Uma fatia inclui um ou mais segmentos de fatia incluindo um segmento independente fatia e, se estiverem presentes, um ou mais segmentos de fatia dependentes que dependem segmentos fatia anteriores. As fatias são então divididas em codificação de blocos de árvores (CTBS) de amostras de luminância e amostras de croma. A CTB de amostras de luminância e uma ou mais amostras de CTBs croma, juntamente com sintaxe para as amostras, são referidos como uma unidade de árvore de codificação (CTU). A CTU é a unidade de processamento de base para a codificação HEVC. A CTU pode ser dividida em várias unidades de codificação (UCs) de tamanhos variados. A CU contém matrizes luma e croma amostras que são referidos como blocos de codificação (CBs).
[0039] A luminância e crominância BC pode ser ainda dividido em blocos de predição (STP). Um PB é um bloco de amostras de luminância a ou um componente de crominância, que utiliza os mesmos parâmetros de movimento para inter-predição. O PB de luminância e um ou mais croma PBS, em conjunto com a sintaxe associado, formam uma unidade de predição (PU). Um conjunto de parâmetros de movimento é sinalizado no fluxo de bits para cada PU e é usado para inter-predição da PB luma e a um ou mais croma PBS. A CB também pode ser dividido em um ou mais blocos de transformada (TBS). Um TB representa um bloco quadrado de amostras de um componente de cor no qual a mesma bidimensional transformação é aplicada para a codificação de um sinal residual de predição. Uma unidade de transformação (TU) representa o TBs de amostras de luminância e crominância, e elementos de sintaxe correspondentes.
[0040] Um tamanho de um CU corresponde a um tamanho do nó de codificação e é de formato quadrado. Por exemplo, um tamanho de um CU pode ser de 8 x 8 amostras, amostras de 16 x 16, 32 x 32 amostras, 64 x 64 amostras, ou qualquer outro tamanho adequado para o tamanho do CTU correspondente. A frase “N X N” é aqui utilizado para referir-se a dimensões de pixels de um bloco de vídeo em termos de dimensões verticais e horizontais (por exemplo, 8 pixels x 8 pixels). Os pixels de um bloco podem ser dispostos em filas e colunas. Em algumas modalidades, os blocos podem não ter o mesmo número de pixels na direção horizontal como na direção vertical. Os dados de sintaxe associados a um CU podem descrever, por exemplo, o partição do CU em um ou mais pus. Os modos de partição podem diferir entre se o CU é o modo intra-predição codificado ou modo inter-predição codificado. UP pode ser cindido para ser não-quadrado em forma. Sintaxe de dados associados com uma CU também pode descrever, por exemplo, a divisão em compartimentos da CU em uma ou mais TUs de acordo com uma CTU. A TU pode ser quadrada ou não em formato quadrado.
[0041] De acordo com a norma HEVC, transformações podem ser realizadas utilizando as unidades de transformação (TU). TUs podem variar para diferentes UCs. A UT pode ser dimensionado com base no tamanho de UP dentro de um determinado CU. As TUs podem ser do mesmo tamanho ou menor que o pus. Em alguns exemplos, as amostras residuais correspondentes a um CU podem ser subdivididas em unidades menores usando uma estrutura conhecida como quadtree residual (RQT). Os nós folha do RQT podem corresponder a TUs. Os valores de diferença de pixel associados à TUs podem ser transformadas para produzir coeficientes de transformada. Os coeficientes de transformada podem, então, ser quantificados por o mecanismo de codificador 106.
[0042] Uma vez que as imagens dos dados de vídeo são divididas em UCs, o mecanismo codificador 106 prevê cada PU utilizando um modo de predição. A predição é então subtraído a partir dos dados de vídeo originais para obter resíduos (descritos abaixo). Para cada CU, um modo de predição pode ser sinalizado dentro do fluxo de bits utilizando dados de sintaxe. Um modo de predição pode incluir intra-predição (ou predição intra-imagem) ou inter- predição (ou preditiva inter imagens). Usando intra- predição, cada PU adjacente é prevista a partir de dados de imagens da mesma imagem utilizando, por exemplo, a predição DC para encontrar um valor médio para a PU, predição planar para caber uma superfície plano para o PU, predição direção para extrapolar a partir de países adjacentes dados, ou quaisquer outros tipos adequados de predição. Usando inter- predição, cada PU é prevista usando a predição de compensação de movimento a partir de dados de imagem num ou mais imagens de referência (antes ou após a imagem atual em ordem de saída). A decisão de codificar uma área de imagem utilizando inter-imagem ou predição intra-imagem pode ser feita, por exemplo, ao nível da CU.
[0043] A predição inter usando predição única, cada bloco predição usa no máximo sinal de predição compensada um movimento, e gera unidades de predição P. Inter de predição usando bi-predição, cada bloco predição cada bloco predição utiliza no máximo dois sinais de predição de movimento compensado, e gera unidades de predição B.
[0044] A PU pode incluir dados relativos ao processo de predição. Por exemplo, quando a UP é codificado utilizando intra-predição, o PU pode incluir dados que descrevem um modo intra-predição para a PU. Como outro exemplo, quando a UP é codificado utilizando inter- predição, o PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para um PU pode descrever, por exemplo, um componente horizontal do vetor de movimento, um componente vertical do vetor de movimento, uma resolução para o vetor de movimento (por exemplo, precisão de pixel de um quarto ou um oitavo de pixel precisão), um quadro de referência a que os pontos de movimento do vetor, e/ou uma lista de imagem de referência (por exemplo, lista 0, lista 1, ou lista C) para o vetor de movimento.
[0045] O codificador 104 pode, em seguida, executar a transformação e quantização. Por exemplo, na sequência de predição, o codificador do mecanismo 106 pode calcular valores residuais correspondente ao PU. Os valores residuais podem compreender valores de diferença de pixels. Tanto os dados residuais que podem ser remanescente após a predição é realizada é transformado usando transformar um bloco, o qual pode ser baseado na transformação de coseno discreta, transformada discreta de seno, transformar um número inteiro, transformar uma ondaleta, ou outra função de transformação adequada. Em alguns casos, um ou mais transformações de bloco (por exemplo, tamanhos de 32 x 32, 16 x 16, 8 x 8, 4 x 4, ou semelhantes) podem ser aplicados aos dados residuais em cada CU. Em algumas modalidades, uma TU pode ser usado para transformar os quantização e processos implementados por o mecanismo do codificador 106. Uma dada CU tendo um ou mais UP também podem incluir um ou mais TUs.
[0046] Em algumas configurações seguintes codificação intra-preditivo ou inter-preditivo utilizando UP de um CU, o mecanismo codificador 106 pode calcular dados residuais para o TUs do CU. A UP pode compreender dados de pixel na (ou domínio pixel) domínio espacial. As TUs podem compreender coeficientes no domínio da transformada após a aplicação de um bloco de transformar. Como notado anteriormente, os dados residuais pode corresponder a valores de diferença de pixels entre a imagem de pixels de não codificada e os valores de predição correspondendo ao pus. mecanismo de codificador 106 pode formar a TUs incluindo os dados residuais para o CU, e pode, em seguida, transformar o TUs para produzir coeficientes de transformação para o CU.
[0047] O mecanismo do codificador 106 pode executar quantização dos coeficientes de transformada. Quantização proporciona ainda compressão por quantizar os coeficientes de transformada para reduzir a quantidade de dados utilizados para representar os coeficientes. Por exemplo, quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. Num exemplo, um coeficiente com um valor de n bits pode ser arredondado para baixo para um valor de m bits durante quantização, sendo n maior que m.
[0048] Após a quantificação ser realizada, o fluxo de bits codificados inclui coeficientes de transformada quantificados, informações de predição (por exemplo, modos de predição, vetores de movimento, ou semelhantes), as informações de partição, e quaisquer outros dados apropriados, tais como outros dados de sintaxe. Os diferentes elementos da sequência de bits codificados, em seguida, podem ser codificados por entropia pelo mecanismo codificador 106. Em alguns exemplos, o mecanismo de codificador 106 pode utilizar uma ordem de pesquisa predefinida para digitalizar a coeficientes de transformada quantificados para produzir um vetor em série que pode ser entropia codificado. Em alguns exemplos, o mecanismo codificador 106 pode executar uma verificação adaptativa. Após a digitalização de coeficientes de transformada quantificados, para formar um vetor unidimensional, o mecanismo de codificador de entropia 106 pode codificar o vetor unidimensional. Por exemplo, o mecanismo de codificador 106 pode usar codificação de comprimento variável de contexto adaptativo, codificação aritmética binária de contexto adaptativo, codificação aritmética binária baseada em sintaxe adaptável ao contexto, codificação de entropia de divisão de intervalo de probabilidade ou outra técnica de codificação de entropia adequada.
[0049] Conforme descrito anteriormente, um fluxo de bits HEVC inclui um grupo de unidades NAL. Uma sequência de bits que formam a corrente de bits de vídeo codificado é presente em unidades NAL VCL. As unidades não- NAL VCL pode conter conjuntos de parâmetros com os dados de alto nível, relativa à corrente de bits de vídeo codificado, além de outras informações. Por exemplo, um conjunto de parâmetros pode incluir um conjunto de parâmetros de vídeo (VPS), um conjunto de parâmetros de sequência (SPS), e um conjunto de parâmetros de imagem (PPS). O objetivo dos conjuntos de parâmetros é a eficiência bit taxa, resiliência de erro, e sistemas de interfaces camada fornecendo. Cada fatia faz referência a um único PPS, SPS, e VPS ativo de acesso à informação de que o dispositivo de decodificação 112 pode usar para decodificar a fatia. Um identificador (ID) pode ser codificado para cada conjunto de parâmetros, incluindo um VPS ID, um SPS ID e um ID PPS. Um SPS inclui um ID SPS e um ID VPS. A PPS inclui um ID PPS e um ID SPS. Cada cabeçalho de segmento inclui um ID PPS. Usando as identificações, conjuntos de parâmetros ativos podem ser identificados por uma dada fatia.
[0050] A PPS inclui informações que se aplica a todas as fatias em uma determinada imagem. Devido a isso, todas as fatias de uma imagem se referem ao mesmo PPS. Fatias em diferentes imagens podem também se referem ao mesmo PPS. Um SPS inclui informações que se aplicam a todas as imagens em uma mesma sequência de vídeo codificados ou fluxo de bits. A sequência de vídeo codificado é uma série de unidades de acesso que começa com uma imagem de ponto de acesso aleatório (por exemplo, uma referência de decodificação instantânea (IDR) imagem ou acesso ao link quebrado (BLA), ou outra imagem de ponto de acesso aleatório apropriado) e inclui todos os acessos unidades até, mas não incluindo a foto ao lado de acesso aleatório ponto (ou o fim do fluxo de bits). A informação em um SPS não costuma mudar de imagem a imagem dentro de uma sequência de vídeo codificada. Todas as imagens em uma seqüência de vídeo codificado usar o mesmo SPS. O VPS inclui informações que se aplicam a todas as camadas dentro de uma sequência de vídeo codificados ou fluxo de bits. O VPS inclui uma estrutura de sintaxe com elementos de sintaxe que se aplicam a sequências de vídeo codificadas inteiras. Em algumas modalidades, o VPS, SPS, ou o PPS pode ser transmitida em banda com a corrente de bits codificada. Em algumas modalidades, o VPS, SPS, ou o PPS pode ser transmitida fora de banda de uma transmissão separada do que as unidades NAL contendo dados de vídeo codificados.
[0051] A saída 110 do dispositivo de codificação 104 pode enviar as unidades NAL que constituem os dados de vídeo codificados através da ligação de comunicações 120 para o dispositivo de decodificação 112 do dispositivo de recepção. A entrada 114 do dispositivo de decodificação 112 pode receber as unidades NAL. O link de comunicação 120 pode incluir de um sinal transmitido através de uma rede sem fio, numa rede com fios, ou uma combinação de uma rede com fio e sem fio. Uma rede sem fio pode incluir qualquer interface sem fio ou combinação de interfaces sem fio e pode incluir qualquer rede sem fio adequado (por exemplo, a Internet ou outra rede de área ampla, uma rede baseada em pacotes, WiFi TM, frequência de rádio (RF), UWB, WiFi direta, celular, Long-Term Evolution (LTE), WiMax TM, ou semelhantes). Uma rede com fios pode incluir qualquer interface com fios (por exemplo, fibra, Ethernet, Powerline, Ethernet com cabo coaxial, a linha de sinal digital (DSL), ou outros semelhantes). As redes com fios e/ou sem fio podem ser implementadas usando vários equipamentos, tais como estações de base, roteadores, pontos de acesso, pontes, gateways, switches, ou semelhantes. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitida para o dispositivo de recepção.
[0052] Em alguns exemplos, o dispositivo de codificação 104 pode armazenar os dados codificados de vídeo no armazenamento 108. A saída 110 pode recuperar os dados de vídeo codificados desde o mecanismo de codificador 106 ou a partir da saída 110. O armazenamento 108 pode incluir qualquer uma de uma variedade de distribuídos ou localmente acessada meios de armazenamento de dados. Por exemplo, o armazenamento 108 pode incluir uma unidade de disco rígido, um disco de armazenamento, memória flash, memória volátil ou não volátil, ou qualquer outro meio de armazenamento digital adequado para o armazenamento de dados de vídeo codificados.
[0053] A entrada 114 recebe os dados de vídeo codificados e pode fornecer os dados de vídeo para o mecanismo decodificador 116 para armazenamento ou para uso posterior 118 pelo mecanismo decodificador 116. O mecanismo 116 pode decodificador decodificar os dados de vídeo codificados por entropia decodificação (por exemplo, usando um decodificador de entropia) e de extrair os elementos da sequência de vídeo codificada que constituem os dados de vídeo codificados. O mecanismo decodificador 116 pode, em seguida, ser outra vez escaladas e executar uma transformação inversa dos dados de vídeo codificados. Os resíduos são então passados para uma fase de predição de decodificador o mecanismo 116. O mecanismo 116 do decodificador, em seguida, prediz um bloco de pixels (por exemplo, um PU). Em alguns exemplos, a predição é adicionada à saída da transformada inversa.
[0054] O dispositivo de decodificação 112 pode produzir o vídeo decodificado para um dispositivo de destino de vídeo 112, o qual pode incluir um monitor ou outro dispositivo de saída para exibir os dados de vídeo decodificados a um consumidor do conteúdo. Em alguns aspectos, o dispositivo de destino de vídeo 122 pode ser parte do dispositivo de recepção que inclui o dispositivo de decodificação 112. Em alguns aspectos, o dispositivo de destino de vídeo 122 pode ser parte de um dispositivo separado que não seja o dispositivo de recepção.
[0055] Em algumas modalidades, o dispositivo de codificação de vídeo 104 e/ou o dispositivo de decodificação de vídeo 112 pode ser integrado com um dispositivo de codificação de áudio e o dispositivo de decodificação de áudio, respectivamente. O dispositivo de codificação de vídeo 104 e/ou o dispositivo de decodificação de vídeo 112 pode também incluir outro hardware ou software que é necessário para implementar as técnicas de codificação descritas acima, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), field programmable gate arrays (FPGA), lógica discreta, software, hardware, firmware ou quaisquer suas combinações. O dispositivo de codificação de vídeo 104 e o dispositivo de decodificação de vídeo 112 podem ser integrados como parte de um combinado codificador/decodificador (codec) de um respectivo dispositivo. Um exemplo de ter detalhes específicos do dispositivo de codificação 104 é descrita a seguir com referência à figura 8. Um exemplo de ter detalhes específicos do dispositivo de decodificação 112 é descrita a seguir com referência à figura 9.
[0056] Como mencionado acima, extensões ao padrão HEVC incluir a extensão Multiview Video Coding, conhecido como MV-HEVC, e a extensão de Codificação escalável de vídeo, conhecido como SHVC. As extensões MV- HEVC e SHVC compartilhar o conceito de codificação em camadas, com camadas diferentes que estão sendo incluídos no fluxo de bits de vídeo codificado. Cada camada de uma sequência de vídeo codificado é dirigida por um identificador de camada única (ID). Uma ID de camada pode estar presente em um cabeçalho de uma unidade NAL para identificar uma camada com a qual a unidade NAL está associado. Em MV-HEVC, diferentes camadas geralmente representam visões diferentes da mesma cena no fluxo de bits de vídeo. Em SHVC, camadas que podem ser escaladas diferentes são fornecidas que representam o fluxo de bits de vídeo em diferentes resoluções espaciais (ou resolução de imagem) ou em diferentes fidelidades de reconstrução. As camadas expansíveis podem incluir uma camada de base (com camada ID = 0) e uma ou mais camadas de aumento (com IDs de camada = 1, 2, ... n). A camada de base pode estar em conformidade com um perfil da primeira versão de HEVC, e representa a camada mais baixa disponível num fluxo de bits. As camadas de aumento aumentaram resolução espacial, a taxa de resolução ou quadro temporal e/ou reconstrução fidelidade (ou qualidade), em comparação com a camada de base. As camadas de aumento são organizadas hierarquicamente e podem (ou não) depender de camadas inferiores. Em alguns exemplos, as diferentes camadas podem ser codificadas utilizando um único padrão do codec (por exemplo, todas as camadas são codificadas usando HEVC, SHVC, ou outra norma de codificação). Em alguns exemplos, as diferentes camadas podem ser codificadas usando um codec de múltiplos padrões. Por exemplo, uma camada de base pode ser codificada de acordo com AVC,
[0057] Tal como descrito anteriormente, vários modos de predição pode ser utilizado num processo de codificação de vídeo, incluindo intra-predição. Uma forma de intra-predição inclui cópia de blocos intra. A cópia intra-bloco foi incluído no trabalho HEVC extensão de faixa de projeto de texto (JCTVC-P1005). Usando a redundância em um quadro de imagem ou imagem, cópia intra-bloco executa a correspondência de bloco de prever um bloco de amostras (por exemplo, um CU, um PU ou outro bloco de codificação) como um deslocamento de um bloco reconstruído de amostras em uma região vizinha de a moldura da imagem. Ao eliminar a redundância de repetir padrões de conteúdo, a predição cópia intra-bloco melhora a eficiência de codificação.
[0058] Técnicas e sistemas aqui descritos referem-se a melhorar a memória a eficiência de largura de banda, limitando pior memória caso os acessos, e outros aspectos da cópia intra-bloco. Os aspectos e métodos descritos neste documento são aplicáveis a HEVC e suas extensões, como a codificação do conteúdo da tela, ou outras extensões. Por exemplo, ferramentas de codificação podem ser implementadas para a codificação de material de tela-conteúdo, como textos e gráficos com movimento. Além disso, as tecnologias podem ser desde que melhorar a eficiência de codificação para o conteúdo da tela. Melhorias significativas na eficácia de codificação podem ser obtidas explorando as características de conteúdo da tela com várias ferramentas de codificação. Por exemplo, alguns aspectos apoio da profundidade possivelmente bit alta (mais de 8 bits), o formato de amostragem de alta croma, e outras melhorias (incluindo 4: 4: 4 e 4: 2: 2).
[0059] A ferramenta de cópia intra-bloco aqui descrito permite predição espacial a partir de amostras não-adjacentes, mas dentro do quadro atual. Por exemplo, a figura 2 ilustra uma imagem codificada 200 na qual cópia intra-bloco é utilizada para prever uma unidade de codificação corrente 202. A unidade de codificação corrente 202 é predito a partir do bloco de predição já decodificado 204 (antes em malha de filtragem) da imagem codificada utilizando o bloco 200 vetor 206. A filtragem em laço pode incluir filtro de desblocagem de malha e Sample Adaptive Offset (SAO). No decodificador, os valores preditos são adicionados aos resíduos sem qualquer interpolação. Por exemplo, o bloco 206 do vetor pode ser assinalada como um valor inteiro. Depois predição bloco vetor, a diferença vetor bloco é codificado usando um método, tal como o especificado no padrão de codificação HEVC vetor de movimento diferencial. cópia intra-bloco é habilitado tanto a nível PU CU e. Para o nível PU cópia intra-bloco, 2NxN e partição NX2N PU são suportado para todos os tamanhos de Cu. Além disso, quando a CU é a menor, partição NxN de PU é suportada.
[0060] Ao contrário dos modos de intra- predição tradicionais, cópia intra-bloco (IBC) permite a predição espacial a partir de amostras não-adjacentes. Essas amostras não adjacentes podem ser provenientes de qualquer das amostras já decodificadas (antes de ser filtradas em malha) dentro da mesma imagem e assinaladas por um vetor de bloco. Acessos à memória dessas amostras não-adjacentes aumentam a largura de banda total de memória quando IBC é usado. Por exemplo, o acesso aumentou ler é causada, pelo menos em parte, pela busca de amostras de predição espacial (que não estão em cache de memória/local). Pode notar-se que, em modo intra tradicional, as amostras adjacentes são utilizadas apenas como uma linha de amostras acima e uma coluna de amostras restantes e são possíveis de ser colocado dentro do cache. Em contraste, quando é usada IBC, todas as amostras previamente codificadas/decodificadas podem ser utilizadas como uma unidade de referência. A fim de suportar o aumento do número de amostras disponíveis, o sistema suporta o uso de memória adicional. O aumento do acesso de escrita é causado, em parte, devido ao armazenamento de ambas as amostras não filtradas para IBC de predição espacial, e filtrada amostras reconstruídas para a saída de predição/temporais para futuros quadros.
[0061] O padrão HEVC define um pior requisito caso largura de banda. A maior largura de banda descrita acima pode, em alguns casos, ser maior do que o pior caso de requisito de largura de banda de HEVC. O aumento da largura de banda coloca um fardo sobre a implementação de técnicas IBC, e pode tornar difícil voltar a destinar um núcleo HEVC para suportar extensões de tela de conteúdo ou uma extensão HEVC que suporta IBC.
[0062] Além disso, faixas amplas de busca utilizadas em IBC podem levar para dispersão de distribuições de bloco de vetor, resultando em largura de banda e desempenho do sistema de cargas que poderiam fazer com que seja extremamente difícil de implementar. Como mostrado no exemplo da Fig. 3, é possível que a distribuição dos vetores de blocos IBC com uma CU pode ser disperso. Potencialmente, isto pode levar à necessidade de buscar as amostras a partir da memória externa (DDR) de todas as amostras de predição pode não estar disponível no cache. Para caber todos os blocos de predição dentro da área do cache requer que o sistema tem extremamente grande cache, que é caro e não é viável em projetos de baixa potência. Isso afeta drasticamente a largura de banda do sistema, desempenho e custo. Tais distribuições bloco vetor são mais prováveis como a faixa da pesquisa aumenta.
[0063] A ampla faixa de busca poderia levar a distribuições de vetores de bloco através de blocos de pixels adjacentes, resultando em impacto no desempenho grave na paralelização. Como mostrado no exemplo da Fig. 4, é possível que a distribuição dos vetores de blocos IBC com uma CU pode ser disperso através de vários azulejos.
[0064] Para codificação P de baixo retardo, afirma-se que o pior número de caso de bloqueio e/ou vetores de movimento com design IBC existente poderia ser maior do que o pior número de caso de vetores de movimento de HEVC (para uma CU, a CTB, ou outra unidade de codificação ou bloco). Isto é devido ao apoio NxN para o menor tamanho de CU. O elevado número de vetores de bloco e/ou movimento impõe carga adicional sobre o número possível de cargas.
[0065] IBC baseado em linha inclui partições com granularidade do que o tradicional IBC, incluindo partições tão pequenos quanto uma linha. Linha-base IBC pode aumentar o número de vetores de movimento de maior do que a concepção HEVC existente. Os vetores de movimento mais elevados resultariam em aumento da amostra buscando, assim, aumentando a largura de banda.
[0066] O uso de fatias pode ajudar significativamente para resiliência de erro. Uma fatia intra pode ser auto-suficiente e decodificável isoladamente. No entanto, IBC pode apresentar dependência de uma fatia I com respeito a outra fatia afetando sua capacidade de erro resiliência.
[0067] Vários aspectos da cópia intra-bloco são aqui discutidos, em vista das deficiências acima referidas, além de outras. Cada uma das características discutidas pode trabalhar separadamente ou em conjunto com uma ou mais outras soluções. Os métodos, sistemas e aspectos discutidos aplicam-se a IBC, mas também pode ser aplicada a outras ferramentas de codificação, por exemplo, com exigências elevadas de largura de banda e de cache, como, por exemplo, 1-D dicionário, paleta, ou outras técnicas de codificação.
Restrição de Bi-predição Quando IBC é Habilitado
[0068] Em HEVC, 8x8 bloco de pixels bi- predição representa o pior caso exigência de largura de banda. É benéfico se as todas as extensões HEVC também seguem o mesmo pior requisito caso largura de banda. Assim, para reduzir os acessos de memória ler e manter a largura de banda dentro dos limites da HEVC requisitos pior caso, restrições ao bi-predição quando IBC está habilitado são discutidas abaixo.
[0069] Em algumas modalidades, como consequência da IBC sendo ativado, o inter-quadro bi- predição é desativado. Por exemplo, em resposta a um estado que corresponde a predição intra-quadro com o IBC, inter- quadro bi-predição pode ser desativado. Como resultado, com o IBC, a demanda sobre os recursos do sistema, como largura de banda de memória, é efetivamente reduzido de inter- quadro bi-predição de predição intra-quadro.
[0070] Em algumas modalidades, um ou mais podem ser necessárias condições adicionais para desativar inter-quadro bi-predição. Porque blocos de predição menores requerem mais recursos do sistema, tais como a largura de banda de memória, de grandes blocos de predição, o tamanho do bloco de predição pode ser um requisito adicional para a desativação inter-quadro bi-predição. Por exemplo, em algumas modalidades, como uma consequência do IBC a ser ativada e também o tamanho do bloco de predição sendo menor do que ou igual a um tamanho pré-definido, o inter-quadro bi- predição é desativada. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho.
[0071] Em algumas modalidades, um indicador pode ser usado para especificar ou indicar se bi-predição é estar desativado ou não como consequência da IBC sendo habilitado. Em algumas modalidades, o sinalizador indica se a restrição bi-predição é aplicada, por exemplo, em qualquer um dos vários níveis constructo de dados. Por exemplo, o indicador pode indicar que a restrição é aplicada a uma ou mais sequências, imagens, fatias, ou outras unidades de dados. O indicador pode ser sinalizado em um ou mais dos seguintes conjuntos de parâmetros: VPS, SPS, PPS, a informação de vídeo usabilidade (VUI), o cabeçalho da fatia ou respectivas extensões.
[0072] Em algumas modalidades, a sintaxe de carga útil de sequência de bytes brutos de conjunto de parâmetros de sequência (PAAB) seguintes ou equivalentes, é usada. Nesta modalidade, o bi-predição está desativado, como consequência da dimensão do bloco de predição sendo menor do que ou igual a 8x8 (por exemplo, com base em JCTVC-P1005_v4).
[0073] Em algumas modalidades, a seguinte, ou equivalentes, são usadas SPS semântica:
[0074] intra_block_copy_restriction_enabled_fl ag igual a 1 especifica que a restrição de bi-predição é ativado quando IBC é usado durante o processo de decodificação de predição intra-quadro.
[0075] intra_block_copy_restriction_enabled_fl ag igual a 0 especifica que as restrições à bi-predição baseada na utilização de IBC não são aplicadas. Quando não está presente, o valor de intra_block_copy_enabled_flag pode ser inferida a ser igual a 0.
[0076] Processo de Decodificação
[0077] O valor de inter_pred_idc [x0] [Y0] que especifica se Lista0, lista1, ou predição dupla é usada para a unidade de predição corrente é derivado de acordo com a Tabela 1. Tabela 1- Nome associação para o modo de predição inter
[0078] Em JCTVC- T1005, característica adaptativa resolução de vetor de movimento (AMVR) é ativado através de um “use_integer_mv_flag” sinalizou indicador. A semântica da indicador são os seguintes.
[0079] use_integer_mv_flag sendo igual a 1 especifica a resolução dos vetores de movimento para a inter predição. Quando não está presente, o valor de use_integer_mv_flag é inferida a ser igual a motion_vetor_resolution_control_idc.
[0080] use_integer_mv_flag sendo diferente de zero especifica que a resolução de vetores luma movimento na fatia atual são considerados como inteiro. Consequentemente, a interpolação fracionada pode não ser necessária para todas as amostras de luminância na fatia. Quando interpolação fracionada não é necessário, as amostras adicionais necessários para a interpolação não são carregados e, por conseguinte, a largura de banda de memória pior caso é reduzido, e pode ser menor do que o pior caso HEVC.
[0081] Em algumas modalidades, pelo menos uma das predição única e bi-predição são desativados para o Inter imagens de um tamanho de bloco pré-determinado, como resultado do uso do IBC, e ainda mais como resultado do estado de use_integer_mv_flag. Isso resulta no uso de banda ficar dentro dos limites de HEVC exigência pior caso largura de banda.
[0082] Em algumas modalidades, as condições para a desativação bi-predição inclui IBC a ser ativada, sendo zero a use_integer_mv_flag, e o bloco de predição sendo menor do que (ou menos do que ou igual a) um tamanho predefinido. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho. Em um exemplo, bi-predição pode ser desativado para um bloco de predição como um resultado do tamanho do bloco de predição sendo menor do que ou igual a um tamanho de 8x8, ou outro tamanho, em adição ao IBC, sendo ativado e use_integer_mv_flag sendo zero.
[0083] Em algumas modalidades, as condições para a desativação Predição única inclui IBC a ser ativada, use_integer_mv_flag ser zero, e o bloco de predição é inferior a (ou menor que ou igual a) um tamanho predefinido. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho. Em um exemplo, como um resultado do IBC a ser ativada e use_integer_mv_flag sendo zero, o inter-quadro Predição única é desativada para um bloco de predição com um tamanho que é igual ou inferior a um tamanho de 8x8, ou outro tamanho.
[0084] Em algumas modalidades, as condições para desativar tanto predição única e bi-predição inclui IBC a ser ativada, use_integer_mv_flag ser zero, e o bloco de predição é inferior a (ou menor que ou igual a) um tamanho predefinido. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho. Em um exemplo, como um resultado do IBC a ser ativada e use_integer_mv_flag sendo zero, o inter-quadro Predição única e bi-predição são desativadas por um bloco de predição com um tamanho que é igual ou inferior a um tamanho de 16x16, ou outro tamanho.
[0085] Em algumas modalidades, a desativação de predição aqui discutida não é aplicada, se um bloco bi- predito é bi-predito a partir do mesmo bloco de referência, de tal modo que os vetores de movimento de predição se referem ao mesmo bloco de referência e são idênticos. Por exemplo, a desativação de uni de predição e/ou bi-predição pode ter ainda outra condição para a aplicação- que o bloco de predição dupla provocando a desativação não pode ser previsto a partir do mesmo bloco de referência, de tal modo que os vetores de movimento de predição referem-se ao mesmo bloco de referência e são idênticos.
[0086] Fig. 5 ilustra uma encarnação de um processo 500, codificação de dados de vídeo com o IBC e com bi-predição e/ou predição única desabilitada seletivamente. O processo de 500 é implementado para gerar uma pluralidade de imagens de vídeo codificadas. Em alguns aspectos, o processo 500 pode ser realizado por um dispositivo de computação ou de um aparelho, tais como o dispositivo de codificação 104 mostrado na Fig. 1. Por exemplo, o dispositivo de computação ou aparelho pode incluir um codificador, ou um processador, microprocessador, microcomputador ou outro componente de um codificador que é configurado para realizar as etapas do processo de 500.
[0087] O processo 500 é ilustrado como um diagrama de fluxo lógico, a operação dos quais representa uma sequência de operações que podem ser implementadas em hardware, instruções de computador, ou uma combinação dos mesmos. No contexto de instruções de computador, as operações representam instruções de computador executável armazenados em um ou mais meios de armazenamento de leitura por computador que, quando executado por um ou mais processadores, executar as operações recitados. Geralmente, as instruções de computador executável incluem rotinas, programas, objetos, componentes, estruturas de dados, e semelhantes, que executam funções particulares ou implementam tipos particulares de dados. A ordem em que as operações são descritos não se destina a ser interpretada como uma limitação, e qualquer número de operações descritas podem ser combinados em qualquer ordem e/ou em paralelo, para implementar os processos.
[0088] Além disso, o processo 500 pode ser realizado sob o controlo de um ou mais sistemas de computador configurado com instruções executáveis e pode ser implementado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) executar coletivamente em um ou mais processadores, por hardware, ou suas combinações. Como observado acima, o código pode ser armazenado num meio de armazenamento legível por computador ou legível por máquina, por exemplo, sob a forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não-transitório.
[0089] Em 502, o processo 500 de codificação de dados de vídeo inclui a obtenção de dados de vídeo a um codificador. Em algumas modalidades, o codificador é configurado para realizar inter-imagem de predição única sobre os dados de vídeo para gerar uma pluralidade de unidades de predição P, para executar inter-imagens bi- predição sobre os dados de vídeo para gerar uma pluralidade de unidades de predição B, e para realizar a predição intra-imagem em dados de vídeo, utilizando a predição cópia intra-bloco, para codificar uma unidade de predição. Quando realizada, a inter-imagem de uni de predição podem, por exemplo, gerar uma pluralidade de unidades de predição P. Quando realizada, a inter-imagens bi-predição podem, por exemplo, gerar uma pluralidade de unidades de predição B. Quando realizada, a predição intra-imagem usa a predição cópia intra-bloco para gerar, por exemplo, uma pluralidade de unidades de predição I.
[0090] Em 504, o processo 500 inclui determinar para realizar a predição intra-imagem em dados de vídeo, utilizando a predição cópia intra-bloco, para gerar uma pluralidade de imagens de vídeo codificadas. A determinação pode, por exemplo, ser em resposta a um estado que indica um modo de cópia intra-bloco. Em algumas modalidades, um indicador de sinalização é gerado para um decodificador, onde a indicador de sinalização indica o modo de cópia intra-bloco. Por exemplo, um valor de 1 para a indicador de sinalização pode indicar que um modo de cópia intra-bloco é realizado. Em outro exemplo, um valor de 0 para a indicador de sinalização pode indicar que um modo de cópia intra-bloco não é realizado.
[0091] Em 506, o processo 500 inclui a realização de predição intra-imagem com os dados de vídeo usando a predição cópia intra-bloco. Por exemplo, a predição intra-imagem pode ser realizada usando a predição cópia intra-bloco de acordo com um estado programado do codificador. O processo de predição cópia intra-bloco pode incluir aspectos dos processos de cópia intra-bloco discutidos neste documento.
[0092] Em 508, o processo 500 inclui, em resposta à determinação de realizar a predição intra-imagem em dados de vídeo, utilizando a predição cópia intra-bloco, a desativação, pelo menos, uma das inter-imagens bi- predição, ou a inter-imagem predição única para a pluralidade de imagens codificadas de vídeo. Em algumas modalidades, a predição intra-imagem e a desativação são executadas em resposta a indicador de sinalização. Em algumas modalidades, em resposta à indicador de sinalização, tanto o inter-imagem desempenho bi-predição e a inter-picture desempenho predição única são desativados. A desativação de predição pode incluir aspectos ou pode ser em resposta a outros fatores discutidos neste documento.
[0093] Em 510, o processo 500 inclui a geração de uma pluralidade de imagens de vídeo codificado baseado no vídeo recebido de acordo com a predição de cópia intra- bloco, utilizando, por exemplo, os aspectos dos processos discutidos aqui noutro sítio. Por exemplo, as imagens de vídeo codificado pode ser gerado usando a predição cópia intra-bloco nos dados de vídeo.
[0094] Em algumas modalidades, o processo 500 inclui outros aspectos aqui discutidos. Por exemplo, em algumas modalidades, o processo 500 inclui a realização de inter-imagem de predição única sobre os dados de vídeo para gerar uma pluralidade de unidades de predição P. Em algumas modalidades, o processo 500 inclui determinar um tamanho de bloco de predição, em que realizando a inter-imagens bi- predição ou predição única é desativado para que a pluralidade de imagens de vídeo codificado em resposta à combinação de ambos: a determinação de realizar a intra predição imagem com os dados de vídeo usando a predição cópia intra-bloco, e o tamanho da unidade predição de ser inferior a um limiar. Em algumas modalidades, no processo 500, o inter-imagens bi-predição e inter-imagem de predição única são deficientes para a pluralidade de imagens de vídeo codificado em resposta à combinação.
[0095] Em algumas modalidades, o codificador é mais capaz de resolução de vetor de movimento adaptativo (AMVR) e o processo de 500 também inclui determinar um tamanho de unidade de predição, no qual a imagens inter bi- predição ou imagens inter predição única é desativado para a pluralidade de imagens de vídeo codificadas em resposta à combinação de todos: determinação realizar a predição intra imagens sobre os dados de vídeo usando a predição de cópia intra-bloco, a unidade de predição do tamanho seja inferior a um limite e receber uma indicação que AMVR está desabilitado. A combinação mais pode incluir a predição inter bi-predição ter pelo menos uma das unidades de referência diferente e vetores de movimento diferente. As imagens de inter bi-predição e imagens inter predição única pode ser desativada para a pluralidade de imagens de vídeo codificadas em resposta à combinação. A combinação mais pode incluir a predição inter bi-predição ter pelo menos uma das unidades de referência diferente e vetores de movimento diferente.
[0096] A figura 6 ilustra uma modalidade de um processo 600 de decodificação de dados de vídeo com IBC e tendo bi-predição e/ou predição única desativada seletivamente. O processo 600 é implementado para decodificar uma pluralidade de imagens de vídeo codificado. Em alguns aspectos, o processo 600 pode ser realizado por um dispositivo de computação ou um aparelho, tal como o dispositivo de decodificação 112 mostrado na figura 1. Por exemplo, o dispositivo ou aparelho de computação podem incluir um decodificador, ou um processador, microprocessador, microcomputador, ou outro componente de um decodificador que é configurado para realizar os passos de processo 600.
[0097] O processo de 600 é ilustrado como um diagrama de fluxo lógico, a operação dos quais representa uma sequência de operações que podem ser implementadas em hardware, instruções de computador, ou uma combinação dos mesmos. No contexto de instruções de computador, as operações representam instruções de computador executável armazenados em um ou mais meios de armazenamento de leitura por computador que, quando executado por um ou mais processadores, executar as operações recitados. Geralmente, as instruções de computador executável incluem rotinas, programas, objetos, componentes, estruturas de dados, e semelhantes, que executam funções particulares ou implementam tipos particulares de dados. A ordem em que as operações são descritos não se destina a ser interpretada como uma limitação, e qualquer número de operações descritas podem ser combinados em qualquer ordem e/ou em paralelo, para implementar os processos.
[0098] Além disso, o processo 600 pode ser realizado sob o controlo de um ou mais sistemas de computador configurado com instruções executáveis e pode ser implementado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) executar coletivamente em um ou mais processadores, por hardware, ou suas combinações. Como observado acima, o código pode ser armazenado num meio de armazenamento legível por computador ou legível por máquina, por exemplo, sob a forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não-transitório.
[0099] Em 602, o processo 600 de decodificação de dados de vídeo inclui receber, num fluxo de vídeo, os dados de vídeo codificados que são codificados utilizando uma pluralidade de modos de predição. Os dados de vídeo podem ser recebidos em um decodificador. A pluralidade de modos de predição compreendem um modo de inter-imagem de predição única, um modo de predição dupla inter imagens, e um modo exemplar intra-bloco intra-imagem. No modo de predição única inter imagens, o decodificador está configurado para decodificar acordo com Predição única, por exemplo, tal como discutido aqui noutro sítio. No modo de predição dupla inter imagens, o decodificador está configurado para decodificar acordo com bi-predição, por exemplo, tal como discutido aqui noutro sítio. No modo de cópia intra-bloco intra-imagem, o decodificador está configurado para decodificar de acordo com a predição de cópia intra-bloco, por exemplo, tal como discutido aqui noutro sítio.
[0100] Em 604, o processo de 600 inclui receber, o fluxo de bits de vídeo, uma indicação de que imagens inter bi-predição está desabilitado ou essa restrição de bi-predição imagens inter está habilitada para uma parte dos dados de vídeo codificados. A indicação, por exemplo, pode ser uma sinalização da indicador sendo em um estado indicando que imagens inter bi-predição está desabilitado ou essa restrição de bi-predição imagens inter está habilitada. Por exemplo, um valor de 1 para a indicador de sinalização pode indicar que imagens inter bi-predição restrição está habilitada ou aquela foto inter bi-predição é desativado. Em outro exemplo, um valor de 0 para a indicador de sinalização pode indicar que imagens inter bi- predição restrição está habilitada ou aquela foto inter bi- predição é desativado.
[0101] Em 606, o processo 600 inclui determinar, com base na indicação, um modo de predição a partir da pluralidade de modos de predição para predizer um órgão de predição da porção de dados de vídeo codificados. Em algumas modalidades, a porção dos dados de vídeo codificado inclui uma pluralidade de imagens, tais como uma sequência de imagens. Além disso, em 608, o processo 600 inclui a unidade de decodificação de predição da porção de dados de vídeo codificado de acordo com o modo de predição determinada, utilizando, por exemplo, os aspectos dos processos discutidos aqui noutro sítio.
[0102] Em algumas modalidades, o processo 600 inclui outros aspectos aqui discutidos. Por exemplo, o processo 600 pode incluir, em resposta à indicação, excluindo o modo de predição dupla inter imagens de utilização para predizer o órgão de predição da porção de dados de vídeo codificados.
Restrição de Amostra de Referência para IBC
[0103] A fim de manter o requisito HEVC pior caso a largura de banda inalterada, restrições podem ser, adicionalmente ou alternativamente, aplicada a amostras de referência, como consequência de IBC a ser utilizado.
[0104] Em algumas modalidades, as restrições sobre amostras de referência aqui discutidas fazer com que os blocos de predição restritas a não estar disponível para utilização como amostras de referência. Em algumas modalidades, as amostras de referência substitutas correspondentes são geradas pelo preenchimento esquemas predefinidas e podem ser usados para a predição.
[0105] Por exemplo, as amostras de referência de substituição podem ser geradas através de preenchimento horizontal ou vertical a partir das amostras adjacentes, nos quais os dados de casos de amostras de um ou mais adjacentes, é copiado para gerar as amostras de referência de substituição. Alternativamente, as amostras de referência de substituição podem ser geradas com dados iguais a um valor pré-definido. Por exemplo, o valor pré- definido é igual a 2 << (-1 B), em que B é a profundidade da amostra.
[0106] Em algumas modalidades, quando IBC é habilitado, amostras de referência potenciais para IBC de um bloco de predição com bi-predição são excluídos ou desqualificados de ser usado como amostras de referência. Em algumas modalidades, quando IBC está ativada, as amostras de referência potenciais para IBC de um bloco de predição com bi-predição são excluídos ou desqualificados para ser usado como amostras de referência como resultadas da condição adicional de que o tamanho do bloco de predição é inferior ou igual a um tamanho predefinido. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho. Em algumas modalidades, quando IBC é habilitado, amostras de referência potenciais para IBC de blocos de predição com predição modo Inter é excluído ou desqualificado de ser usado como amostras de referência.
[0107] Em algumas modalidades, quando IBC é ativado, de amostras de referência potenciais para IBC a partir de um bloco de predição com preditiva inter-modo são excluídos ou desqualificados para ser usado como amostras de referência, se o tamanho do bloco de predição é menos do que ou igual a um tamanho pré-definido. O tamanho pré- definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho.
[0108] Em algumas modalidades, quando é ativado IBC, amostras de referência potenciais para IBC de um bloco de predição predito com o modo de bi-predição (por exemplo, com base em JCTVC-P1005_v4) são excluídos ou desqualificados para ser usado como amostras de referência.
[0109] Em algumas modalidades, as restrições sobre amostras de referência aqui discutidos são aplicados ao nível CTU com base em, por exemplo, o modo e/ou tamanho do bloco de amostras de referência em que a CTU. Por exemplo, se IBC é utilizado dentro de um determinado CTU, e, se o tamanho do bloco é inferior a 8x8 pixels, uma ou mais das restrições sobre amostras de referência aqui discutidos pode ser aplicada a todo o particular CTU.
[0110] Em algumas modalidades, as restrições de amostras referências aqui discutidas são aplicados para CTUs que estão fora do atual CTU, e não são aplicados para a corrente CTU. Em algumas modalidades, as restrições de amostras referências aqui discutidas são aplicados para CTUs que estão fora da atual e da próxima CTU esquerda, e não são aplicados para a atual e próxima CTU esquerda.
[0111] Em algumas modalidades, a aplicação das restrições sobre amostras de referência aqui discutidas é condicionada em use_integer_mv_flag o indicador sendo zero. Por conseguinte, as restrições podem ser aplicadas se use_integer_mv_flag é zero, e pode não ser aplicada se use_integer_mv_flag não é zero.
[0112] Em algumas modalidades, quando habilitado, é IBC amostras de referência para potenciais de um IBC CTU que tem, pelo menos, um bloco de predição com bi-predição são excluído ou desqualificado para ser usado como amostras de referência. Noutro exemplo, quando estiver ativada, IBC amostras de referência para potenciais de um IBC CTU que tem o número de amostras de predição com bi- predição superior a um limiar ou são excluídos desqualificado para ser usado como amostras de referência. O limiar pode ser, por exemplo, 250, 500, 1000, 5000 amostras, ou qualquer outro número adequado de amostras de predição.
[0113] Em algumas modalidades, quando IBC é ativado, de amostras de referência potenciais para IBC a partir de um CTU que tem, pelo menos, um bloco de predição com bi-predição são excluídos ou desqualificados para ser usado como amostras de referência se que o tamanho do bloco de predição é inferior ou igual a um tamanho pré-definido. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho.
[0114] Em algumas modalidades, quando IBC é ativado, de amostras de referência potenciais para IBC a partir de um CTU que tem o número de amostras de predição com bi-predição superior a um limiar se a sua dimensão for inferior ou igual a um tamanho pré-definido são excluídos ou desqualificado de serem utilizados como amostras de referência. O número limite pode ser, por exemplo, 250, 500, 1000, 5000 amostras, ou qualquer outro número adequado de predição amostras. O tamanho pré-definido pode, por exemplo, ser pixels 4x4, 4x8 pixels, pixels 8x4, 8x8 pixels, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho.
[0115] Em algumas modalidades, quando habilitado, é IBC amostras de referência para potenciais de um IBC CTU que tem, pelo menos, um bloco de predição usado para a interpolação é excluído ou desqualificado para ser usado como amostras de referência. Em outro exemplo, quando é ativado IBC, amostras de referência para potenciais de um IBC CTU que tem o número de amostras de predição usado para a interpolação superior a um limiar ou são excluídos desqualificado para ser usado como amostras de referência. O limiar pode ser, por exemplo, 250, 500, 1000, 5000 amostras, ou qualquer outro número adequado de amostras de predição.
[0116] Em algumas modalidades, quando IBC é habilitado, potenciais amostras de referência para IBC de uma CTU que tem predição de pelo menos um bloco usada para interpolação são excluídas ou desclassificadas sejam usados como amostras de referência, se o tamanho do bloco de predição é menor ou igual a um tamanho predefinido. O tamanho predefinido pode, por exemplo, ser 4 x 4 pixels, 4 x 8 pixels, 8 x 4 pixels, 8x8 pixels, 8 x 16 pixels, 16 x 16 pixels, 32 x 32 pixels ou outro tamanho.
[0117] Em algumas modalidades, quando IBC é ativado, amostras de referência potenciais para IBC de um CTU que tem o número de amostras de predição usado para a interpolação maior do que um limiar é excluído ou desqualificado para ser usado como amostras de referência se a sua dimensão for inferior ou igual a um tamanho pré- definido. O tamanho predefinido pode, por exemplo, ser pixels 4x4, pixels 4x8, pixels 8x4, pixels 8x8, 8x16 pixels, 16x16 pixels, 32x32 pixels, ou outro tamanho O limiar pode ser, por exemplo, 250, 500, 1000, 5000 amostras, ou qualquer outro número adequado de amostras de predição.
[0118] Em algumas modalidades, as restrições sobre amostras referências descritas acima são igualmente aplicada a amostras de referência potenciais que são amostras de interpolação.
[0119] Em algumas modalidades, as restrições sobre amostras de referência aqui discutidas não são aplicadas se um bloco bi-predito é bi-predito a partir do mesmo bloco de referência, de tal modo que os vetores de movimento de predição se referem ao mesmo bloco de referência e são idênticos. Por exemplo, a desativação de predição única e/ou predição dupla pode ter ainda outra condição para a aplicação- que o bloco predito duplamente desencadeando a aplicação da restrição não seja previsto a partir do mesmo bloco de referência, de tal modo que os vetores de movimento da predição se referem ao mesmo bloco de referência e são idênticos.
[0120] Um texto exemplo especificação baseada em JCTVC-P1005_v4 com área de busca local para fatias B é discutido abaixo. Modalidades aqui discutidas em conformidade com o texto exemplo especificação.
[0121] Processo de Decodificação
[0122] Um processo de derivação para componentes do vetor do bloco no modo de predição cópia intra-bloco é descrito. As modalidades aqui discutidas em conformidade com o processo de derivação.
[0123] As entradas para este processo são: um local luma (XCB, YCB) da amostra superior esquerdo do luma corrente de codificação de bloco em relação à amostra luma canto superior esquerdo da fotografia atual, e um log2CbSize variável especificar o tamanho do bloco de luminância de codificação corrente.
[0124] O resultado deste processo é o arranjo (BCN) x (nCbX) [pode ser referido como um único vetor] de vetores bloco bvIntra.
[0125] As variáveis BCN, nPbSw e nPbSh são derivadas da seguinte forma: BCN = 1 << log2CbSize (8-25) nPbSw = BCN/(PartMode = = PART_2Nx2N | | PartMode = = PART_2NxN 1: 2) (8-25) nPbSh = BCN/(PartMode = = PART_2Nx2N | | PartMode = = PART_Nx2N 1: 2) (8-25)
[0126] A variável BvpIntra [compIdx] especifica um preditor bloco vetor. O componente de bloco vetor horizontal é atribuído compIdx = 0 e o componente de bloco vertical vetor é atribuído compIdx = 1.
[0127] Dependendo de PartMode, a variável numPartitions é derivada da seguinte forma: Se PartMode é igual a PART_2Nx2N, numPartitions é definida como igual a 1. Caso contrário, se PartMode é igual a qualquer PART_2NxN ou PART_Nx2N, numPartitions está definida igual a 2. Caso contrário (PartMode é igual a PART_NxN), numPartitions é fixado igual a 4.
[0128] A matriz de vetores de bloco bvIntra é derivado por os seguintes passos ordenados, para a variável blkIdx prosseguir ao longo dos valores de 0 .. (numPartitions I 1): O blkInc variável é definida igual a (PartMode = = PART_2NxN 2: 1). A variável XPB é definida igual a XCB + nPbSw * (* blkIdx blkInc% 2). A YPB variável é definida igual a YCB + nPbSh * (blkIdx/2) Os seguintes passos ordenados aplicar, para o processo compIdx variável sobre os valores 0..1: Dependendo do número de vezes que este processo tem sido invocados para a unidade de árvore de codificação atual, é aplicável o seguinte: Se este processo é invocado pela primeira vez para a unidade de árvore de codificação corrente, bvIntra [XPB] [YPB] [compIdx] é derivado como segue: bvIntra [XPB] [YPB] [0] = BvdIntra [XPB] [YPB] [0] no BCN (8-25) bvIntra [XPB] [YPB] [1] = BvdIntra [XPB] [YPB] [1] (8-25) Caso contrário, bvIntra [XPB] [YPB] [compIdx] é derivado como segue: bvIntra [XPB] [YPB] [0] = BvdIntra [XPB] [YPB] [0] + BvpIntr um [0] (8-25) bvIntra [XPB] [YPB] [1] = BvdIntra [XPB] [YPB] [1] + BvpIntr um [1] (8-25) O valor da BvpIntra [compIdx] é atualizado para ser igual a bvIntra [XPB] [YPB] [compIdx]. Para utilização em processos de derivação de variáveis invocadas mais tarde no processo de decodificação, as seguintes atribuições são feitas para x = 0..nPbSw I 1 e y = 0..nPbSh I 1: bvIntra [YPB + y] [compIdx] [+ x XPB] = bvIntra [XPB] [YPB] [compIdx] (8-25)
[0129] É uma exigência de conformidade fluxo de bits que todas as seguintes condições forem verdadeiras: -o Valor de bvIntra [XPB] [YPB] [0] deve ser maior ou igual a- (XPB% CtbSizeY + 64). -o Valor de bvIntra [XPB] [YPB] [1] deve ser maior ou igual a- (YPB% CtbSizeY). -Quando O processo de derivação de disponibilidade de bloco de ordem de varredura z é chamado com (xCurr, yCurr) igual a (XCB, YCB) e a localização luma vizinho (xNbY, YNBY) igual a (XPB + bvIntra [XPB] [YPB ] [0], YPB + bvIntra [XPB] [YPB] [1]) como entradas, a saída será igual a VERDADEIRO. -Quando O processo de derivação disponibilidade bloco ordem z-scan é chamado com (xCurr, yCurr) igual a (XCB, YCB) e a localização luma vizinho (xNbY, YNBY) igual a (XPB + bvIntra [XPB] [YPB ] [0] + nPbSw í 1, YPB + bvIntra [XPB] [YPB] [1] + nPbSh- 1) como entradas, a saída será igual a TRUE. -Uma ou ambas as seguintes condições devem ser verdadeiras: -bvIntra [XPB] [YPB] [0] + nPbSw <= 0 -bvIntra [XPB] [YPB] [1] + nPbSh <= 0 -Inter_pred_idc [X] [y] será igual a 0 ou 1, com x = XPB + BvIntra [XPB] [YPB] [0]. XPB + BvIntra [XPB] [YPB] [0] + (1 << log2CbSize) - 1, y = YPB + BvIntra [XPB] [YPB] [1] .. y0 + BvIntra [XPB] [YPB] [1] + (1 << log2CbSize) - 1;
Área de Busca Adaptativa com Base em Tamanho de Partição/Tipo de Fatia/Tipo de Imagem
[0130] Para melhorar o uso de cache e reduzir erros de cache, que de outro modo ocorrer como resultado de vetores bloco IBC e vetores de movimento a Inter, algumas restrições sobre o intervalo vetor bloco pode ser aplicada.
[0131] As restrições de faixa de vetores de bloco podem ser aplicadas individualmente ou em combinação. Nas restrições de alcance bloco vetor, a região de interesse não é limitado e pode, por exemplo, ser um CU, a CTB, a maior unidade de codificação (LCU), uma fatia, uma bloco de pixels adjacentes, ou um conjunto de CU de, CTU de, CTB de , da LCU, fatias, ou azulejos.
[0132] Em algumas modalidades, a área de busca é determinada com base num ou mais do tipo de imagem, o tipo de fatia, e o tamanho da partição. Além disso, um elemento de sintaxe pode ser usado para especificar a área de busca para cada tipo correspondente imagem, tipo de fatia, e tamanho da partição.
[0133] Como um exemplo, se o segmento de corrente é uma fatia-B, a área de busca para os blocos IBC pode ser constrangida a ser a região local da corrente de CTB. Em algumas modalidades, a área de pesquisa é limitado à vizinhança causal na corrente CTB e o lado esquerdo CTB como uma consequência da fatia corrente ser uma fatia-B.
[0134] Em algumas modalidades, o tamanho, a forma ou a localização da pesquisa área é especificada pelo elemento sintaxe. Em algumas encarnações, o elemento de sintaxe, por exemplo, sinalizado no fluxo de bits em um ou mais dos VPS, SPS, PPS, VUI, fatia cabeçalho ou cabeçalho CU.
[0135] Em algumas encarnações, uma gama do vetor de bloco que é codificado no fluxo de bits é restrito com base em um ou mais tipo de imagens, o tipo de fatia e o tamanho da partição. Além disso, um elemento sintaxe pode ser usado para especificar um intervalo de vetor de bloqueio máximo para cada tipo de imagem correspondente, fatia tipo e tamanho da partição. Por exemplo, em algumas encarnações, um ou mais elementos de sintaxe podem ser usados para especificar que o intervalo de vetor de bloqueio máximo é respectivamente igual a 100, 500 e 1000 pixels para CRA, BLA e IDR tipos de imagens. Da mesma forma, um ou mais elementos de sintaxe ser usado para especificar um intervalo de vetor do bloco máximo para cada um dos eu fatias, fatias de B, fatias de P e fatias GPB e um ou mais elementos de sintaxe ser usado para especificar um intervalo de vetor do bloco máximo para cada um dos tamanhos de partição, incluindo 4 x 4 pixels, 8x8 pixels, 16 x 16 pixels, 32 x 32 pixels e 64 x 64 pixels.
[0136] Em algumas modalidades, a área de pesquisa e bloco vetor elementos de sintaxe máximos gama pode sinalizada em um ou mais dos seguintes conjuntos de parâmetros: VPS, SPS, PPS, a informação de vídeo usabilidade (VUI), o cabeçalho da fatia ou respectivas extensões.
[0137] Um texto exemplo especificação baseada em JCTVC-P1005_v4 com área de busca local para fatias B é discutido abaixo. Modalidades aqui discutidas em conformidade com o texto exemplo especificação.
[0138] Processo de Decodificação
[0139] Um processo de derivação para componentes do vetor do bloco no modo de predição cópia intra-bloco é descrito.
[0140] As entradas para este processo são: um local luma (XCB, YCB) da amostra superior esquerdo do luma corrente de codificação de bloco em relação à amostra luma canto superior esquerdo da fotografia atual, um log2CbSize variável especificar o tamanho do bloco de luminância de codificação corrente.
[0141] O resultado deste processo é o array (BCN) x (nCbX) [pode ser referido como um único vetor] de vetores bloco bvIntra.
[0142] As variáveis BCN, nPbSw e nPbSh são derivadas da seguinte forma: BCN = 1 << log2CbSize (8-25) nPbSw = BCN/(PartMode = = PART_2Nx2N | | PartMode = = PART_2NxN 1: 2) (8-25) nPbSh = BCN/(PartMode = = PART_2Nx2N | | PartMode = = PART_Nx2N 1: 2) (8-25)
[0143] A variável BvpIntra [compIdx] especifica um preditor bloco vetor. O componente de bloco vetor horizontal é atribuído compIdx = 0 e o componente de bloco vertical vetor é atribuído compIdx = 1.
[0144] Dependendo de PartMode, os numPartitions variável é derivada da seguinte forma: - Se PartMode é igual a PART_2Nx2N, numPartitions é definida como igual a 1. - Caso contrário, se PartMode é igual a qualquer PART_2NxN ou PART_Nx2N, numPartitions está definida igual a 2. - Caso contrário (PartMode é igual a PART_NxN), numPartitions é fixado igual a 4.
[0145] A matriz de vetores de bloco bvIntra é derivado por os seguintes passos ordenados, para a variável blkIdx prosseguir ao longo dos valores de 0 .. (numPartitions I 1): O blkInc variável é definida igual a (PartMode = = PART_2NxN 2: 1). O XPB variável é definida igual a XCB + nPbSw * (* blkIdx blkInc% 2). A YPB variável é definida igual a YCB + nPbSh * (blkIdx/2) Os seguintes passos ordenados aplicar, para o processo compIdx variável sobre os valores 0..1: Dependendo do número de vezes que este processo tem sido invocados para a unidade de árvore de codificação atual, é aplicável o seguinte: Se este processo é invocado pela primeira vez para a unidade de árvore de codificação corrente, bvIntra [XPB] [YPB] [compIdx] é derivado como segue: bvIntra [XPB] [YPB] [0] = BvdIntra [XPB] [YPB] [0] no BCN (8-25) bvIntra [XPB] [YPB] [1] = BvdIntra [XPB] [YPB] [1] (8-25) Caso contrário, bvIntra [XPB] [YPB] [compIdx] é derivado como segue: bvIntra [XPB] [YPB] [0] = BvdIntra [XPB] [YPB] [0] + BvpIntr um [0] (8-25) bvIntra [XPB] [YPB] [1] = BvdIntra [XPB] [YPB] [1] + BvpIntr um [1] (8-25) O valor da BvpIntra [compIdx] é atualizado para ser igual a bvIntra [XPB] [YPB] [compIdx]. Para utilização em processos de derivação de variáveis invocadas mais tarde no processo de decodificação, as seguintes atribuições são feitas para x = 0..nPbSw I 1 e y = 0..nPbSh I 1: bvIntra [XPB + x] [YPB + y] [compIdx] = bvIntra [XPB] [YPB] [comp Idx] (8-25)
[0146] É uma exigência de conformidade fluxo de bits que todas as seguintes condições forem verdadeiras: -Para B tipo de fatia, o valor de bvIntra [XPB] [YPB] [0] deve ser maior ou igual a- (XPB% CtbSizeY + 64). -Para B tipo de fatia, o valor de bvIntra [XPB] [YPB] [1] deve ser maior ou igual a- (YPB CtbSizeY%). -Quando O processo de derivação disponibilidade bloco ordem z-scan é chamado com (xCurr, yCurr) igual a (XCB, YCB) e a localização luma vizinho (xNbY, YNBY) igual a (XPB + bvIntra [XPB] [YPB ] [0], YPB + bvIntra [XPB] [YPB] [1]) como entradas, a saída será igual a TRUE. -Quando O processo de derivação disponibilidade bloco ordem z-scan é chamado com (xCurr, yCurr) igual a (XCB, YCB) e a localização luma vizinho (xNbY, YNBY) igual a (XPB + bvIntra [XPB] [YPB ] [0] + nPbSw í 1, YPB + bvIntra [XPB] [YPB] [1] + nPbSh- 1) como entradas, a saída será igual a TRUE. -uma ou ambas as seguintes condições devem ser verdadeiras: - BvIntra [XPB] [YPB] [0] + nPbSw <= 0 - BvIntra [XPB] [YPB] [1] + nPbSh <= 0
[0147] A figura 7 ilustra uma concretização de um processo 700 de codificação de dados de vídeo. O processo 700 é implementado para gerar uma pluralidade de imagens de vídeo codificado. Em alguns aspectos, o processo 700 pode ser realizado por um dispositivo de computação ou um aparelho, tal como o dispositivo de codificação 104 ilustrado na figura 1. Por exemplo, o dispositivo ou aparelho de computação pode incluir um codificador, ou um processador, microprocessador, microcomputador, ou outro componente de um codificador que é configurado para realizar os passos de processo 700.
[0148] O processo 700 é ilustrado como um diagrama de fluxo lógico, a operação dos quais representa uma sequência de operações que podem ser implementadas em hardware, instruções de computador, ou uma combinação dos mesmos. No contexto de instruções de computador, as operações representam instruções de computador executável armazenados em um ou mais meios de armazenamento de leitura por computador que, quando executado por um ou mais processadores, executar as operações recitados. Geralmente, as instruções de computador executável incluem rotinas, programas, objetos, componentes, estruturas de dados, e semelhantes, que executam funções particulares ou implementam tipos particulares de dados. A ordem em que as operações são descritos não se destina a ser interpretada como uma limitação, e qualquer número de operações descritas podem ser combinados em qualquer ordem e/ou em paralelo, para implementar os processos.
[0149] Além disso, o processo 700 pode ser realizado sob o controlo de um ou mais sistemas de computador configurado com instruções executáveis e pode ser implementado como código (por exemplo, instruções executáveis, um ou mais programas de computador, ou uma ou mais aplicações) executar coletivamente em um ou mais processadores, por hardware, ou suas combinações. Como observado acima, o código pode ser armazenado num meio de armazenamento legível por computador ou legível por máquina, por exemplo, sob a forma de um programa de computador que compreende uma pluralidade de instruções executáveis por um ou mais processadores. O meio de armazenamento legível por computador ou legível por máquina pode ser não-transitório.
[0150] Em 702, o processo 700 inclui a realização de predição intra-imagem sobre um bloco de uma das imagens para gerar uma unidade de predição. Em algumas modalidades, a realização da predição intra-imagem inclui seleção de um bloco de referência para administração intra- bloco de predição cópia de uma unidade de árvore de codificação (CTU), em que o bloco de referência selecionado é selecionado a partir de uma pluralidade de blocos codificados, e em que os blocos dentro da CTU codificado com bi-predição são excluídos da seleção como o bloco de referência. Realizando a predição intra-imagem também pode incluir a realização de predição cópia intra-bloco do bloco de referência para gerar a unidade de predição.
[0151] Em 704, o processo 700 inclui a geração de elementos de sintaxe que codificam o órgão de predição com base na predição intra-imagem executada.
[0152] Em algumas modalidades, o processo 700 inclui outros aspectos aqui discutidos. Por exemplo, o processo 700 pode incluir determinar um tamanho de bloco de predição, em que os blocos codificados com bi-predição são excluídos da seleção, pelo menos parcialmente em resposta ao tamanho da unidade de predição sendo inferior a um limiar. Em algumas modalidades, no processo 700, um ou mais blocos codificados com inter-predição são excluídos da seleção como do bloco de referência. Por exemplo, os um ou mais blocos codificados com inter-predição pode ser excluído da seleção como do bloco de referência para a codificação de outros blocos do CTU. Em tais modalidades, o processo pode também incluir a determinação de um tamanho da unidade de predição, em que os blocos codificados com inter-predição são excluídos da seleção, pelo menos parcialmente em resposta ao tamanho da unidade de predição sendo inferior a um limiar.
[0153] Em algumas modalidades, no processo 700, um bloco de referência substituto é gerado usando um esquema de preenchimento. Em algumas modalidades, a realização de predição cópia intra-bloco inclui usando o substituto de bloco que o bloco de referência selecionada.
[0154] Em algumas modalidades, o processo 700 inclui determinar se o CTU tem um bloco de predição gerado com bi-predição, em que os blocos codificados com bi- predição são excluídos da seleção, pelo menos parcialmente em resposta ao CTU tendo um bloco de predição gerado com bi-predição. Em tais modalidades, o processo 700 pode também incluir a determinação de uma quantidade de blocos de predição gerados com bi-predição para o CTU, e determinar um tamanho de bloco de predição. Os blocos codificados com bi-predição pode então excluídos da seleção em resposta a qualquer de: a CTU tendo uma quantidade de blocos de predição gerados com bi-predição superior a um limiar, o tamanho da unidade de predição sendo inferior a um limiar, e a CTU tendo um quantidade de blocos de predição gerados com bi-predição superior a um limiar.
[0155] Em algumas modalidades, o processo 700 inclui a execução de resolução adaptativa de vetor de movimento (AMVR) e determinar um tamanho de bloco de predição. Em tais modalidades, os blocos codificados com bi-predição pode ser excluído da seleção, pelo menos parcialmente, em resposta à combinação de ambos: o tamanho da unidade de predição sendo inferior a um limiar, e que recebe uma indicação de que AMVR é desativado. Em algumas modalidades, a combinação inclui ainda a inter-predição bi- predição tendo pelo menos uma das diferentes unidades de referência e os vetores de movimento diferentes.
[0156] Em algumas modalidades, o processo 700 inclui determinar uma área de busca que compreende os blocos codificados, em que a área de busca é determinada com base, pelo menos em parte, de, pelo menos, um de: um tipo de imagem, um tipo de fatia, e um tamanho de partição.
Restrição na Distribuição dos Vetores de Bloco dentro de uma Região de Interesse.
[0157] Para melhorar o uso de cache e reduzir os erros de cache ao usar intervalos de busca maiores, algumas restrições sobre o intervalo vetor bloco pode ser aplicada.
[0158] Restrições de faixa de vetores de bloco podem ser aplicadas individualmente ou em combinação. Para as restrições de alcance bloco vetor, a região de interesse não é limitada e pode, por exemplo, ser um CU, a CTB, a maior unidade de codificação (LCU), uma fatia, uma bloco de pixels adjacentes, ou um conjunto de CU de, CTU de, CTB de , da LCU, fatias, ou azulejos.
[0159] Em algumas modalidades, a gama dos vetores de blocos é constrangido a estar dentro da região de interesse. Por exemplo, a gama de vetores de bloco podem ser constrangido a estar dentro de uma corrente de CU. Em algumas modalidades, diferentes regiões de interesse têm diferentes constrangimentos gama bloco vetor. Além disso, um elemento de sintaxe pode ser usado para especificar o vetor gama bloco para cada região de interesse.
[0160] A título de exemplo, as gamas dos vetores de blocos pode ser constrangido a estar dentro de uma bloco de pixels adjacentes. Por conseguinte, as amostras de predição para uma unidade de predição de corrente são constrangidos a ser a partir de dentro do mesmo ladrilho. Entre outros benefícios, esta restrição facilita o processamento paralelo eficiente. Em algumas modalidades, as gamas dos vetores de blocos são constrangidos a estar dentro de uma fatia. Por conseguinte, a predição IBC é restrita aos limites da fatia não cruzadas.
[0161] Em algumas modalidades, a diferença máxima de quaisquer dois vetores do bloco dentro de uma região de interesse é restringida. Por exemplo, se um CU dentro de uma região de interesse fatia tem um vetor de blocos de um tamanho particular, todos os outros vetores de bloco dentro da fatia são limitados para estar dentro de uma gama pré-definida do tamanho particular. Além disso, um elemento de sintaxe pode ser usado para especificar a diferença máxima de quaisquer dois vetores do bloco para cada região de interesse.
[0162] Texto de Especificação e Sintaxe
[0163] Em algumas modalidades, o intervalo de bloco de vetor e bloco de elementos do vetor máximos de sintaxe diferença pode sinalizado em um ou mais dos seguintes conjuntos de parâmetros: VPS, SPS, PPS, a informação de vídeo usabilidade (VUI), o cabeçalho da fatia ou respectivas extensões.
[0164] Um texto exemplo especificação baseada em JCTVC-P1005_v4 com área de busca local para fatias B é discutido abaixo. Modalidades aqui discutidas em conformidade com o texto exemplo especificação.
[0165] Processo de Decodificação
[0166] A variável BvIntra [x0] [Y0] [compIdx] especifica um componente de vetor a ser usado para o modo de predição cópia intra-bloco. Os índices de matriz x0, y0 especificam a localização (x0, y0) da amostra luma superior esquerdo do bloco de predição em relação considerada a amostra luma superior esquerdo da imagem. A variável BvdispIntra [x0] [Y0] [compIdx] especifica a diferença entre a componente de vetor a ser usado para o modo de predição bloco cópia intra para localização (x0, y0) (por exemplo, BvIntra [x0] [Y0] [compIdx]) e localização (xi, yj) (por exemplo, BvIntra [xi] [yj] [compIdx]). A xi índices de matriz, yj especificar a localização (xi, yj) da amostra luma canto superior esquerdo do bloco de predição em relação considerada a amostra luma superior esquerdo da imagem para qualquer i, j de tal forma que a localização (xi, yj ) e (x0, y0) estão dentro da mesma CTU.
[0167] Para todo i, j, BvdispIntra [xi] [yj] [compIdx] deve estar na faixa de- 128 a 128, inclusive. O componente de bloco vetor horizontal é atribuído compIdx = 0 e o componente de bloco vertical vetor é atribuído compIdx = 1.
[0168] Na descrição acima da faixa de 128 a 128, inclusive, é usada como um exemplo e o valor real da gama pode ser fixado ao valor diferente ou sinalizado.
[0169] A seguir um método de sinalização exemplo é mostrado.
[0170] log2_max_ctu_deltaBV_length_horizontal e log2_max_ctu_deltaBV _length_vertical indicam o valor máximo da diferença absoluta de um componente de bloco de vetor horizontal e vertical decodificado, respectivamente, no que diz respeito ao componente de bloco de vetor horizontal e vertical decodificados, respectivamente, de qualquer órgão de predição, que pertence à mesma CTU e disponíveis, em unidades de amostra luma inteiros, para todas as fotos da CVS. Um valor de n afirma que nenhum valor de diferença de um componente de bloco de vetor está fora do intervalo de I 2 n a 2 n í 1, inclusive, em unidades de deslocamento de amostra luma inteiro. Valores de intervalo e de inferência pode ser determinada.
[0171] Para todo i, j, BvdispIntra [xi] [yj] [compIdx] deve estar na faixa conforme especificado pelo log2_max_ctu_deltaBV_length_horizontal e log2_max_ctu_deltaBV_length_vertical para componentes horizontais e verticais. O componente de bloco vetor horizontal é atribuído compIdx = 0 e o componente de bloco vertical vetor é atribuído compIdx = 1.
[0172] Alternativamente, o intervalo pode ser diferente para cada compIdx (horizontal e vertical vetor de bloco), bem como para o componente de luminância e crominância. Alternativamente, o intervalo pode ser diferente para cada compIdx (horizontal e vertical vetor de bloco), bem como para o componente de luminância e crominância.
[0173] Alternativamente, o intervalo pode ser sinalizado como múltiplo do CTU de, fatias, blocos de pixels adjacentes etc.
[0174] log2_max_BV_ctu_length_horizontal e log2_max_BV_ctu_length _vertical indicam o valor máximo da diferença absoluta de um componente de bloco de vetor horizontal e vertical decodificado, respectivamente, no que diz respeito ao componente de bloco de vetor horizontal e vertical decodificados, respectivamente, de qualquer órgão de predição, que pertence à mesma CTU e disponíveis, nas unidades do CTB, para todas as fotos da CVS. Um valor de n afirma que nenhum valor de diferença de um componente de bloco de vetor está fora do intervalo de I N a N, inclusive, em unidades de deslocamento de CTB.
Restrição no Número de Vetores de Bloco dentro de uma Região de Interesse
[0175] Como discutido acima, IBC pode aumentar o pior número de casos de vetores de bloco para o caso de P baixo atraso. Pelo menos para manter a mesma complexidade pior caso como HEVC e também para reduzir a carga sobre os recursos do sistema (por exemplo, para reduzir uma série de pequenas quantidades de amostras de predição), algumas modalidades incluem características adicionais ou alternativos.
[0176] Por exemplo, o número de vetores de bloco dentro de uma região particular de interesse pode ser restringido a ser menor do que ou igual ao número de pior caso de vetores de bloco de HEVC para a região particular de interesse. Por exemplo, o número de vetores de bloco dentro de uma região de interesse pode ser restringida a ser igual ou menor do que o pior número caso de vetores de bloco que existiria se todos os blocos são codificados como Nx2N/2NxN para a mesma região de interesse. Em algumas modalidades, o modo de GRG pode ser restringida por partição menor (NxN) de não-eu fatias.
[0177] As restrições de número de blocos de vetores e a restrição do modo IBC podem ser aplicadas individualmente ou em combinação. Nas restrições número de blocos de vetores e à restrição do IBC, a região de interesse não é limitada e pode, por exemplo, ser um CU, a CTB, a maior unidade de codificação (LCU), uma fatia, uma bloco de pixels adjacentes, ou um conjunto de das, CTU das, CTB das, LCU de, fatias, ou blocos de pixels adjacentes CU.
Restrição de Fatia I
[0178] Em algumas modalidades, as gamas dos vetores de blocos pode ser constrangido a estar dentro de uma fatia. Ou seja, a predição IBC faz limites da fatia não cruzadas.
[0179] Em algumas modalidades, um novo tipo de fatia pode ser sinalizado. Para o novo tipo de fatia, as gamas dos vetores de blocos são constrangidos a estar dentro da fatia. Como resultado, a predição IBC não atravessa os limites da fatia para fatias do novo tipo de fatia.
[0180] Em algumas modalidades, uma indicador pode especificar que as gamas dos vetores de blocos são obrigados a estar dentro de fatias. Como um resultado do estado da indicador, IBC predição não atravessa os limites da fatia. O sinalizador pode, por exemplo, ser sinalizada em um ou mais dos seguintes conjuntos de parâmetros: VPS, SPS, PPS, a informação de vídeo usabilidade (VUI), o cabeçalho da fatia ou respectivas extensões.
[0181] Usando as técnicas e sistemas aqui descritos técnicas de cópia intra-bloco são realizados com os requisitos de largura de banda e capacidade de memória reduzidos. Como resultado, a eficiência de largura de banda de memória é melhorada, piores acessos de memória caso são limitados, e outros aspectos da cópia intra-bloco é reforçada.
[0182] As técnicas de codificação discutidas neste documento podem ser implementadas em um vídeo de exemplo de codificação e decodificação do sistema (por exemplo, 100). Um sistema inclui um dispositivo de fonte que fornece os dados de vídeo codificados para ser decodificado em um momento posterior por um dispositivo de destino. Em particular, o dispositivo de origem fornece os dados de vídeo para dispositivo de destino através de um meio informático. O dispositivo de origem e o dispositivo de destino podem incluir qualquer um de uma ampla gama de dispositivos, incluindo computadores desktop, computadores portáteis (i.e., portátil), computadores tablet, caixas set-top, aparelhos de telefone, tais como os chamados “Smartphones”, chamadas “inteligentes” almofadas, televisores, câmeras, dispositivos de exibição, players de mídia digital, consoles de videogame, dispositivo de fluxo contínuo de vídeo, ou o como. Em alguns casos, o dispositivo de origem e o dispositivo de destino podem ser equipados para comunicação sem fio.
[0183] O dispositivo de destino pode receber os dados de vídeo codificados para ser decodificado através de um meio de leitura por computador. O meio legível por computador pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados a partir do dispositivo de origem para o dispositivo de destino. Em um exemplo, o meio de leitura por computador pode compreender um meio de comunicação para permitir dispositivo de origem para transmitir dados de vídeo codificados diretamente para o dispositivo de destino, em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitida para o dispositivo de destino. O meio de comunicação pode compreender qualquer meio de comunicação com ou sem fio, como um espectro de frequência de rádio (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode formar parte de uma rede baseada em pacotes, tal como uma rede de área local, uma rede de área ampla, ou de uma rede global tal como a Internet. O meio de comunicação pode incluir roteadores, switches, estações de base, ou qualquer outro equipamento que possa ser útil para facilitar a comunicação de dispositivo de origem para dispositivo de destino.
[0184] Em alguns exemplos, dados codificados podem ser a saída da interface de saída para um dispositivo de armazenamento. Da mesma forma, dados codificados podem ser acessados a partir do dispositivo de armazenamento por interface de entrada. O dispositivo de armazenamento pode incluir qualquer de uma variedade de mídia de armazenamento de dados distribuídos ou acessados localmente como um disco rígido, Blu-ray discos, DVDs, CD-ROMs, memória flash, memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital adequado para armazenar dados de vídeo codificados. Em mais um exemplo, o dispositivo de armazenamento pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem. Dispositivo de destino pode acessar dados armazenados de vídeo do dispositivo de armazenamento via streaming ou download. O servidor de arquivos pode ser qualquer tipo de servidor, capaz de armazenar dados de vídeo codificados e transmitir que codificado dados de vídeo para o dispositivo de destino. Servidores de arquivos de exemplo incluem um servidor web (por exemplo, para um site), um servidor FTP, dispositivos de armazenamento (NAS) ligados em rede ou uma unidade de disco local. Dispositivo de destino pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, DSL, modem a cabo, etc.), ou uma combinação de ambos de que é adequada para acessar dados de vídeo codificados, armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do dispositivo de armazenamento pode ser uma transmissão de fluxo contínuo, uma transmissão de baixar ou uma combinação destes.
[0185] As técnicas da presente memória descritiva não são necessariamente limitado a aplicações ou sem fio. As técnicas podem ser aplicadas a codificação de vídeo em apoio de qualquer um de uma variedade de aplicações multimídia, como transmissões de televisão pelo ar, transmissões de televisão por cabo, emissões de televisão por satélite, transmissões de vídeo streaming de Internet, como streaming dinâmico adaptativo através de HTTP (DASH), vídeo digital que é codificado sobre um meio de armazenamento de dados, a decodificação de vídeo digital armazenado num meio de armazenamento de dados, ou outras aplicações. Em alguns exemplos, o sistema pode ser configurado para suportar uma forma ou de transmissão de vídeo de duas vias para suportar aplicativos como streaming de vídeo, reprodução de vídeo, transmissão de vídeo, e/ou vídeo telefonia.
[0186] Num exemplo, o dispositivo de fonte inclui uma fonte de vídeo, um codificador de vídeo, e uma interface de saída. O dispositivo de destino pode incluir uma interface de entrada, um decodificador de vídeo, e um dispositivo de exibição. O codificador de vídeo da fonte de dispositivo pode ser configurado para aplicar as técnicas aqui divulgadas. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou arranjos. Por exemplo, o dispositivo de origem pode receber dados de vídeo de uma fonte vídeo externa, tal como uma câmara externa. Do mesmo modo, o dispositivo de destino pode interagir com um dispositivo externo, em vez de incluir um dispositivo de visualização integrado.
[0187] O sistema de exemplo acima apenas um exemplo. As técnicas para o processamento de dados de vídeo, em paralelo pode ser realizada por qualquer de codificação de vídeo digital e/ou um dispositivo de decodificação. Embora geralmente as técnicas da presente invenção sejam realizados por um dispositivo de codificação de vídeo, as técnicas também podem ser realizados por um codificador de vídeo/decodificador, tipicamente referido como um “codec”. Além disso, as técnicas da presente divulgação também podem ser realizadas por um pré- processador de vídeo. O dispositivo de origem e de destino do dispositivo são meramente exemplos de tais dispositivos de codificação no qual o dispositivo que gera fonte de vídeo codificado de dados para transmissão para o dispositivo de destino. Em alguns exemplos, os dispositivos de origem e de destino podem operar de um modo substancialmente simétrico de tal modo que cada um dos dispositivos incluem codificação de vídeo e de decodificação componentes. Conseqüentemente,
[0188] A fonte de vídeo pode incluir um dispositivo de captura de vídeo, tais como uma câmera de vídeo, um arquivo de vídeo contendo anteriormente vídeo capturado, e/ou imagens interface para receber o vídeo de um provedor de conteúdo de vídeo. Como uma alternativa ainda mais, a fonte de vídeo pode gerar dados baseados em gráficos de computador como a fonte de vídeo, ou uma combinação de vídeo ao vivo e arquivado vídeo gerado por computador. Em alguns casos, se a fonte de vídeo é uma câmera de vídeo, fonte e destino dispositivo podem formar os assim chamados telefones vídeo ou celulares com câmera. Como mencionado acima, no entanto, as técnicas descritas nesta divulgação podem ser aplicáveis para codificação de vídeo em geral e podem ser aplicadas para aplicações sem fio ou com fio. Em cada caso, o vídeo capturado, previamente capturado ou gerados por computador pode ser codificado para o codificador de vídeo. A informação de vídeo codificada pode então ser emitida pela interface de saída para o meio legível por computador.
[0189] Como se observa o meio legível por computador pode incluir meios transientes, tais como uma transmissão sem fio ou de transmissão de rede com fio ou mídia de armazenamento (isto é, meios de armazenamento não transitória), como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray, ou outra mídia legível por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados vídeo codificados desde o dispositivo de origem e fornecer os dados de vídeo codificados para o dispositivo de destino, por exemplo, por meio de transmissão de rede. Da mesma forma, um dispositivo de computação de uma instalação de produção de forma, tal como uma unidade de disco de estampagem, pode receber dados vídeo codificados desde o dispositivo de origem e produzir um disco contendo os dados de vídeo codificados. Portanto, o meio de leitura por computador pode ser entendido como incluindo um ou mais meios de leitura por computador de várias formas, em vários exemplos.
[0190] A interface de entrada do dispositivo de destino recebe a informação a partir do meio de leitura por computador. A informação do meio legível por computador poderá incluir informação de sintaxe definida pelo codificador de vídeo, o qual também é usado pelo decodificador de vídeo, que inclui elementos de sintaxe que descrevem as características e/ou processamento de blocos e outras unidades codificadas, por exemplo, do grupo de imagens (VAI P). Um dispositivo de exibição mostra os dados de vídeo decodificados a um utilizador, e pode compreender qualquer um de uma variedade de dispositivos de exibição tal como um tubo de raios catódicos (CRT), um visor de cristal líquido (LCD), uma tela de plasma, um díodo emissor de luz orgânico ( OLED) do monitor ou outro tipo de dispositivo de exibição. Várias modalidades da invenção foram descritas.
[0191] Os detalhes específicos de o dispositivo de codificação 104 e o dispositivo de decodificação 112 são mostrados na figura 8 e figura 9, respectivamente. figura 8 é um diagrama de blocos que ilustra um exemplo de dispositivo 104, que pode implementar uma ou mais das técnicas descritas nesta revelação que codifica. dispositivo de codificação 104 pode, por exemplo, gerar as estruturas de sintaxe aqui descritos (por exemplo, as estruturas de sintaxe de um VPS, SPS, PPS, ou outros elementos de sintaxe). dispositivo de codificação 104 pode executar intra-predição e inter-predição de codificação de blocos de vídeo em fatias de vídeo. Como descrito anteriormente, intra-codificação baseia-se, pelo menos em parte, na predição espacial para reduzir ou remover a redundância espacial dentro de um determinado intervalo de vídeo ou a imagem. Inter-codificação se baseia, pelo menos em parte, na predição temporal, para reduzir ou eliminar a redundância temporal, dentro de quadros ou imagens de uma seqüência de vídeo adjacentes ou envolventes. O modo intra (modo I) pode se referir a qualquer um dos vários modos de compressão baseados espaciais. Inter-modos, tais como predição de unidirecional (modo P) ou bi-predição (modo B), pode se referir a qualquer um dos vários modos de compressão temporais baseados.
[0192] O dispositivo de codificação 104 inclui uma unidade de partição 35, unidade de processamento de predição 41, unidade de filtro 63, memória de imagem 64, somador 50, transformar unidade de processamento 52, a unidade de quantização 54 e entropia codifica unidade 56. Predição unidade de processamento 41 inclui movimento unidade de estimativa de 42, a unidade de compensação de movimento 44 e intra-predição unidade de processamento 46. para a reconstrução de blocos de vídeo, dispositivo de codificação 104 também inclui a unidade de quantização inversa 58, transformada inversa unidade de processamento 60, e no somador 62. Filtro unidade 63 destina-se a representar um ou mais filtros, tal como um filtro de desblocagem, um filtro de circuito fechado adaptativo (ALF), e um deslocamento de amostra filtro adaptativo (SAO). Embora unidade de filtro 63 seja mostrado na figura 8 como sendo um filtro de circuito fechado em, em outras configurações, a unidade de filtro 63 pode ser implementado como um filtro de pós circuito fechado. Um dispositivo de pós-processamento 57 pode executar processamento adicional de dados codificados de vídeo gerados pelo dispositivo de codificação 104. As técnicas de divulgação podem, em alguns casos, ser implementadas por codificação dispositivo 104. Em outros casos, no entanto, uma ou mais das técnicas de divulgação podem ser implementado pelo dispositivo de pós- processamento 57.
[0193] Como mostrado na figura 8, dispositivo de codificação 104 recebe dados de vídeo e partição unidade de 35 partições os dados em blocos de vídeo. A partição pode também incluir em fatias de partição, os segmentos de fatia, blocos de pixels adjacentes, ou outras unidades de maiores dimensões, como poços como partição bloco de vídeo, por exemplo, de acordo com uma estrutura quadtree de LCUs e CUs. O dispositivo 104 que codifica geralmente ilustra os componentes que codificam blocos de vídeo dentro de uma fatia de vídeo a serem codificados. A fatia pode ser dividido em vários blocos de vídeo (e, possivelmente, em conjuntos de blocos de vídeo referidas como blocos de pixels adjacentes). A unidade de processamento de predição 41 pode selecionar uma de uma pluralidade de possíveis modos de codificação, tal como um de uma pluralidade de modos de codificação intra-predição ou uma de uma pluralidade de inter-codificação preditiva modos, para o bloco de vídeo atual com base nos resultados de erro (por exemplo, , taxa de codificação e o grau de distorção, ou semelhante). Predição unidade de processamento 41 pode proporcionar o bloco intra ou inter-codificada resultante para somador 50 para gerar dados de bloco residuais e para somador 62 para reconstruir o bloco codificado para ser utilizada como imagem de referência.
[0194] Unidade de processamento intra-predição 46 dentro da unidade de processamento de predição 41 pode executar a codificação intra-predição de bloco de vídeo corrente em relação a um ou mais blocos adjacentes no mesmo quadro ou fatia como o bloco atual a ser codificado para fornecer compressão espacial. Movimento unidade de estimativa de 42 e de compensação de movimento da unidade 44 dentro predição unidade de processamento 41 executar codificação inter-preditivo do bloco de vídeo atual em relação a um ou mais blocos de predição em uma ou mais imagens de referência para fornecer compressão temporal.
[0195] A unidade de estimativa de movimento 42 pode ser configurado para determinar o modo de predição para a inter-uma fatia de vídeo de acordo com um padrão pré-determinado para uma sequência de vídeo. O padrão pré- determinado pode designar fatias de vídeo na seqüência como fatias P, fatias B, ou fatias GPB. Movimento unidade de estimativa de 42 e de compensação de movimento da unidade 44 pode ser altamente integrado, mas são ilustradas separadamente para fins conceituais. estimativa de movimento, realizado pela unidade de estimativa de movimento 42, é o processo de geração de vetores de movimento, que estimam o movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar que o deslocamento de um órgão de predição (PU) de um bloco de vídeo dentro de um quadro de vídeo corrente ou da imagem em relação a um bloco preditivo dentro de uma imagem de referência.
[0196] Um bloco preditivo é um bloco que é encontrado para igualar a PU do bloco de vídeo a ser codificado em termos de diferença de pixels, o que pode ser determinado pela soma da diferença absoluta (SAD), soma de diferença quadrado (SSD) , ou outras métricas de diferença. Em alguns exemplos, o dispositivo de codificação 104 pode calcular os valores para as posições de pixel de sub- inteiros de imagens de referência armazenados na memória de imagem 64. Por exemplo, a codificação dispositivo 104 pode interpolar valores das posições de um quarto pixel, posições de pixel um oitavo, ou outras posições de pixel fracionário do quadro de referência. Por conseguinte, a unidade de estimativa de movimento 42 pode executar uma busca de movimento relativo para as posições de pixel e completos posições de pixel e de saída fracionárias um vetor de movimento com uma precisão de pixel fracionada.
[0197] Movimento unidade de estimativa 42 calcula um vetor de movimento para um PU de um bloco de vídeo numa fatia inter-codificada pela comparação da posição da PU para a posição de um bloco de uma imagem preditiva referência. O quadro de referência pode ser selecionado a partir de uma primeira lista de referência da imagem (Lista 0) ou uma lista de segunda referência imagem (Lista 1), cada um dos quais identifica uma ou mais imagens de referência armazenadas na memória de imagem 64. Movimento unidade de estimativa de 42 envia o movimento calculado vetor à entropia codifica unidade 56 e compensação de movimento da unidade 44.
[0198] A compensação do movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado por estimativa de movimento, possivelmente realizar interpolações a precisão de subpixel. Ao receber o vetor de movimento para o PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco de predição para que os pontos de movimento do vetor em uma lista de imagem de referência. O dispositivo de codificação 104 forma um bloco de vídeo residual, subtraindo os valores de pixel do bloco de predição a partir dos valores de pixel do bloco de vídeo corrente a ser codificado, formando os valores de diferença de pixels. Os valores de diferença de pixel para formar dados residuais do bloco, e podem incluir tanto os componentes de diferença de luminância e de crominância. Somador 50 representa o componente, ou componentes, que executam esta operação de subtração.
[0199] A unidade de processamento de intrapredição 46 pode predizer intra um bloco atual, como uma alternativa para a predição inter interpretada por estimativa de movimento unidade 42 e compensação de movimento unidade 44, como descrito acima. Em particular, 46 de unidade de processamento de intrapredição pode determinar um modo intra-Predição para usar para codificar um bloco atual. Em alguns exemplos, processamento intrapredição unidade 46 podem codificar um bloco atual usando vários modos de predição intra, por exemplo, durante os passes de codificação separadas, e unidade de predição intra processamento 46 pode selecionar um modo apropriado intra-Predição para usar a partir dos modos testados. Por exemplo, processamento de predição intra unidade 46 pode calcular valores de taxa-distorção, usando uma análise da taxa-distorção para os vários modos de intrapredição testado e pode selecionar o modo de predição intra tendo as melhores características da taxa-distorção entre os modos testados. Análise da taxa-distorção geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original, codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bits (ou seja, um número de bits) usada para produzir o bloco codificado. A unidade de processamento de intrapredição 46 pode calcular índices das distorções e as taxas para os vários blocos codificados determinar qual modo intrapredição apresenta o melhor valor de taxa- distorção para o bloco.
[0200] Em qualquer caso, depois de selecionar um modo intra-predição para um bloco, intra-predição unidade de processamento 46 pode proporcionar informação indicativa do modo intra-predição selecionado para o bloco unidade de codificação de entropia 56. A entropia unidade de codificação 56 pode codificar a informação que indica o modo intra-predição selecionado. O dispositivo de codificação 104 pode incluir no fluxo de bits definições de dados de configuração transmitidos de contextos de codificação para diversos blocos, bem como indicações de um modo mais provável intra-predição, uma tabela de índice de modo intra-predição, e uma tabela de índice de modo intra- predição modificado para usar para cada um dos contextos. Os dados de configuração de fluxo de bits pode incluir uma pluralidade de tabelas de predição intra-índice do modo e uma pluralidade de tabelas de índice modo intra-predição modificados (também referido como tabelas de mapeamento das palavras de código).
[0201] Após a unidade de processamento de predição 41 gera o bloco preditiva para o bloco de vídeo atual, quer através de inter-predição ou intra-predição, dispositivo de codificação 104 forma um bloco de vídeo residual, subtraindo o bloco preditivo do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual pode ser incluída em um ou mais TUs e aplicado para transformar unidade de processamento 52. A unidade de processamento Transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residuais usando uma transformação, tal como uma transformação de coseno discreta (DCT) ou transformar uma conceitualmente similar. Transformar unidade de processamento 52 pode converter os dados de vídeo residuais a partir de um domínio do pixel para um domínio da transformada, tal como um domínio de frequência.
[0202] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes de quantização da unidade 54. A unidade de quantização 54 quantifica os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. O grau de quantização pode ser modificado por ajuste de um parâmetro de quantificação. Em alguns exemplos, a unidade de quantização 54 pode, em seguida, executar uma varredura da matriz incluindo a coeficientes de transformada quantificados. Alternativamente, unidade de codificação de entropia 56 pode realizar a verificação.
[0203] Após a quantização, codificação de entropia unidade 56 entropia codifica coeficientes de transformada quantificados. Por exemplo, unidade de codificação de entropia 56 pode realizar contexto adaptativo de codificação de comprimento variável (CAVLC), o contexto aritmética binária adaptativa codificação (CABAC), a aritmética binária contexto adaptativo baseado em sintaxe de codificação (SBAC), intervalo de probabilidade de partição entropia (PIPE) codificação ou de outra técnica de codificação de entropia. Após a codificação de entropia por unidade de entropia de codificação 56, o fluxo de bits codificado pode ser transmitido para um dispositivo de decodificação 112, ou arquivados para posterior transmissão ou recuperação por decodificação dispositivo 112. A entropia unidade de codificação 56 também pode entropia codificar os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual que está sendo codificada.
[0204] A unidade de quantificação inversa 58 e transformada inversa unidade de processamento 60 aplicar quantização inversa e a transformação inversa, respectivamente, para reconstruir o bloco residual no domínio do pixel para utilização posterior como um bloco de referência da imagem de referência. Movimento unidade de compensação 44 pode calcular um bloco de referência, adicionando o bloqueio residual para um bloco preditivo de uma das imagens de referência dentro de uma lista de imagens de referência. Movimento unidade de compensação 44 pode também aplicar um ou mais filtros de interpolação para o bloqueio residual reconstruído para calcular os valores dos pixels sub-inteiros para utilização na estimativa de movimento. Somador 62 acrescenta o bloco residual reconstruído ao movimento compensado bloco predição produzido por unidade de compensação de movimento 44 para produzir um bloco de referência para o armazenamento na memória de imagem 64.
[0205] Desse modo, o dispositivo de codificação 104 da figura 8 representa um exemplo de um codificador de vídeo configurado para gerar sintaxe para um fluxo de bits de vídeo codificado. dispositivo que codifica 104 pode, por exemplo, gerar conjuntos de parâmetros VPS, SPS, PPS e como descrito acima. O dispositivo de codificação 104 pode executar qualquer das técnicas aqui descritas, incluindo os processos descritos acima em relação às figuras 4, 6, e 8. As técnicas da presente memória descritiva têm sido geralmente descritas em relação ao dispositivo 104 de codificação, mas como acima mencionado, algumas das técnicas da presente divulgação pode também ser implementado por um dispositivo de pós- processamento 57.
[0206] A figura 9 é um diagrama de blocos que ilustra um exemplo do dispositivo de decodificação 112. O dispositivo de decodificação 112 inclui uma unidade de entropia 80, unidade de processamento de predição 81, uma unidade de quantificação inversa 86, unidade de processamento de transformada inversa 88, 90 somador, unidade de filtro 91, e memória de imagem 92.. A unidade de processamento de predição 81 inclui a unidade de compensação de movimento 82 e unidade de processamento de predição intra. O dispositivo de decodificação 112 pode, em alguns exemplos, realizar uma passagem de decodificação em geral recíproca à passagem de codificação descrita em relação ao dispositivo de codificação 104 a partir da figura 8.
[0207] Durante o processo de decodificação, decodificar dispositivo 112 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificado e elementos de sintaxe associado enviados pelo dispositivo 104. codifica Em algumas modalidades, o dispositivo de decodificação 112 pode receber o fluxo de bits de vídeo codificado de o dispositivo de codificação 104. Em algumas modalidades, o dispositivo de decodificação 112 pode receber o fluxo de bits de vídeo codificado a partir de uma entidade de rede 79, tal como um servidor, um elemento de rede ciente de meio (MANE), um editor/divisor de vídeo, ou outro dispositivo semelhante configurado para implementar uma ou mais das técnicas descritas acima. entidade de rede 79 podem ou não incluir dispositivo de codificação 104. Algumas das técnicas descritas na presente memória descritiva pode ser implementado por uma entidade de rede 79 antes da entidade de rede 79 a transmitir o fluxo de bits de vídeo codificado para o dispositivo 112 de decodificação.
[0208] A unidade de decodificação de entropia 80 do dispositivo de decodificação 112 decodifica por entropia o fluxo de bits para gerar coeficientes quantificados, vetores de movimento e outros elementos de sintaxe. Entropia decodificação unidade 80 para frente os vetores de movimento e outros elementos de sintaxe a unidade de processamento de predição 81. dispositivo de decodificação 112 pode receber os elementos de sintaxe no nível da fatia de vídeo e/ou o nível de bloqueio de vídeo. Entropia decodificação unidade 80 pode processo e analisar ambos os elementos de sintaxe de comprimento fixo e elementos de sintaxe de comprimento variável em ou mais conjuntos de parâmetros, tais como um VPS, SPS e PPS.
[0209] Quando a fatia de vídeo é codificada como um (I) fatia codificados intra, intra unidade de processamento de predição 84 da unidade de processamento de predição 81 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base num modo intra- predição sinalizado e de dados provenientes anteriormente decodificado blocos da moldura ou quadro atual. Quando o quadro de vídeo é codificado como uma inter-codificada (isto é, B, P ou GPB) unidade de fatia, de compensação de movimento 82 da unidade de processamento de predição 81 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outra elementos de sintaxe recebidas da unidade entropia decodificação 80. os blocos de predição pode ser produzido a partir de uma das imagens de referência dentro de uma lista de imagens de referência. Decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, usando técnicas de construção padrão com base em imagens de referência armazenadas na memória de imagens 92.
[0210] A unidade de compensação de movimento 82 determina informações predição para um bloco de vídeo da fatia atual vídeo ao analisar os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual a ser decodificado. Por exemplo, a unidade de compensação de movimento 82 pode utilizar um ou mais elementos de sintaxe em um conjunto de parâmetros para determinar um modo de predição (por exemplo, intra ou inter-predição) utilizada para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de inter-predição (por exemplo, fatia B, fatia P, ou uma fatia GPB), informações de construção de uma ou mais listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo inter-codificado do estado fatia, inter-predição para cada vídeo inter-codificado bloco da fatia, e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[0211] A unidade de compensação de movimento 82 também pode executar a interpolação com base em filtros de interpolação. Movimento unidade de compensação 82 pode usar como filtros de interpolação utilizados pelo dispositivo 104 de codificação que codifica durante dos blocos de vídeo para calcular os valores interpolados para pixels sub-blocos inteiros de referência. Neste caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação utilizados por um codificador de vídeo 20, a partir dos elementos de sintaxe recebidos, e pode utilizar os filtros de interpolação para produzir blocos preditivos.
[0212] A unidade de quantização inversa 86 quantifica inversamente, os coeficientes de transformada quantificados fornecidos no fluxo de bits e decodificados pela unidade de decodificação de entropia 80. O processo de quantização inversa pode incluir a utilização de um parâmetro de quantização calculado pelo codificador de vídeo 20 para cada vídeo bloco na fatia de vídeo para determinar um grau de quantização e, do mesmo modo, um grau de quantização inversa, que deve ser aplicado. Transformada inversa unidade de processamento 88 aplica uma transformação inversa (por exemplo, uma transformada discreta de cosseno inversa ou outro inversa adequado transformar), um número inteiro transformada inversa, ou um inverso conceitualmente semelhante processo de transformação, para os coeficientes de transformada, a fim de produzir blocos residual no domínio do pixel.
[0213] Após a unidade de compensação de movimento 82 gera o bloco preditivo para o bloco de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe, dispositivo de decodificação 112 forma um bloco de vídeo decodificado pela soma dos blocos residuais de transformação inversa unidade de processamento 88 com a predição correspondente blocos gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou componentes que executam esta operação somatório. Se desejado, os filtros de alça (quer no circuito de codificação ou depois do ciclo de codificação) também pode ser usado para suavizar as transições de pixel, ou de outro modo para melhorar a qualidade do vídeo. Unidade de filtro 91 destina-se a representar um ou mais filtros, tal como um filtro de desblocagem, um filtro de circuito fechado adaptativo (ALF), e um offset (SAO) filtro adaptativo amostra. Embora unidade de filtro 91 seja mostrado na figura 9 como sendo um filtro de circuito fechado em, em outras configurações, a unidade de filtro 91 pode ser implementado como um pós filtro de laço. Os blocos decodificados de vídeo de um dado quadro ou de imagem são então armazenados na memória de imagem 92, que armazena imagens de referência utilizadas para a compensação de movimento subsequente. A memória de imagem 92 também armazena vídeo decodificados para apresentação posterior num dispositivo de visualização, tal como o dispositivo de destino de vídeo 122 mostrado na figura 1.
[0214] Na descrição anterior, os aspectos do pedido são descritos com referência a modalidades específicas da mesma, mas os peritos na arte reconhecerão que o invento não está limitado a eles. Assim, embora modalidades ilustrativas da aplicação tenham sido aqui descritas em detalhe, deve ser entendido que os conceitos do invento podem ser de outra forma variada incorporada e utilizada, e que as reivindicações anexas destinam-se a ser interpretada no sentido de incluir tais variações, exceto como limitada pela técnica anterior. Várias características e aspectos da invenção acima descritos podem ser utilizados individualmente ou em conjunto. Além disso, modalidades podem ser utilizadas em qualquer número de ambientes e aplicações para além das aqui descritas, sem se afastar do espírito e amplo âmbito da especificação. A especificação e os desenhos são, por conseguinte, para ser encaradas como ilustrativas em vez de restritivas. Para fins de ilustração, foram descritos métodos em uma ordem particular. Deve notar-se que, em modalidades alternativas, os métodos podem ser realizados numa ordem diferente do que o descrito.
[0215] Onde os componentes são descritas como sendo “configurada para” executar certas operações, tal configuração pode ser realizada, por exemplo, através da concepção de circuitos eletrônicos ou outro hardware para realizar a operação, por meio da programação de circuitos eletrônicos programáveis (por exemplo, os microprocessadores, ou outros circuitos eletrônicos adequados) para executar a operação, ou qualquer combinação dos mesmos.
[0216] Os vários blocos, módulos, circuitos e etapas de algoritmo, lógicas, ilustrativos descritos em conexão com as modalidades aqui divulgadas podem ser implementados como hardware eletrônico, software, firmware, ou combinações dos mesmos. Para ilustrar claramente esta permutabilidade de hardware e software, vários componentes ilustrativos, blocos, módulos, circuitos, e passos foram descritos acima, geralmente em termos da sua funcionalidade. Se tal funcionalidade é implementada como hardware ou software depende da aplicação e design limitações específicas impostas ao sistema global. Os especialistas na técnica podem implementar a funcionalidade descrita de maneiras diferentes para cada aplicação em particular, mas tais decisões de execução não devem ser interpretados como causando um afastamento do âmbito da presente invenção.
[0217] As técnicas aqui descritas também podem ser implementadas em hardware eletrônico, software, firmware, ou qualquer combinação dos mesmos. Tais técnicas podem ser implementadas em qualquer de uma variedade de dispositivos, tais como computadores, aparelhos gerais finalidades do dispositivo de comunicação sem fio, ou dispositivos de circuitos integrados que têm múltiplas utilizações incluindo a aplicação em aparelhos de dispositivos de comunicação sem fio e outros dispositivos. Quaisquer recursos descritos como módulos ou componentes podem ser implementados em conjunto em um dispositivo de lógica integrada ou separadamente, como dispositivos lógicos discretos, mas interoperáveis. Se implementado em software, as técnicas podem ser realizados, pelo menos em parte por um meio de armazenamento de dados de leitura por computador, compreendendo de código de programa, incluindo instruções que, quando executadas, realiza um ou mais dos métodos descritos acima. O meio de armazenamento de dados de leitura por computador pode fazer parte de um produto de programa de computador, que pode incluir materiais de embalagem. O meio legível por computador pode compreender memória ou de armazenamento de dados de mídia, tais como memória de acesso aleatório (RAM), como síncrona memória dinâmica de acesso aleatório (SDRAM), memória só de leitura (ROM), não-volátil memória de acesso aleatório (NVRAM), memória programável apagável eletricamente somente para leitura (EEPROM), memória flash, meios de armazenamento de dados magnéticos ou ópticos, e similares. As técnicas adicionalmente, ou alternativamente, pode ser realizado, pelo menos em parte por um meio de comunicação de leitura por computador que transporta ou comunica o código do programa sob a forma de instruções ou estruturas de dados e que pode ser acedida, ler e/ou executado por um computador, tais como sinais ou ondas propagadas.
[0218] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, tais como um ou mais processadores de sinais digitais (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASIC), Field Programmable redes lógicas (FPGAs), ou outro circuito lógico integrado ou discreto equivalente. Um processador Tal pode ser configurado para realizar qualquer uma das técnicas descritas nesta revelação. Um processador de uso geral pode ser um microprocessador; mas, Alternativamente, o processador pode ser qualquer processador convencional, controlador, microcontrolador, ou máquina de estados convencional. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outro tipo de configuração. Por conseguinte, o termo “processador” tal como aqui utilizado pode referir-se a qualquer estrutura do exposto, qualquer combinação de a estrutura anterior, ou qualquer outra estrutura ou aparelho adequado para execução das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser fornecida dentro de módulos de software dedicado ou módulos de hardware configurados para codificação e decodificação, ou incorporada em um codificador- decodificador de vídeo combinado (codec).

Claims (15)

1. Método de codificar dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo, o método sendo caracterizado pelo fato de compreender: obter (502) dados de vídeo em um codificador; determinar (504) a realização de predição intra- imagem nos dados de vídeo, utilizando predição de cópia intra-bloco, para gerar a pluralidade de imagens codificadas de vídeo; realizar (506) a predição intra-imagem nos dados de vídeo usando a predição de cópia intra-bloco; em resposta à determinação para realizar a predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, desabilitar (508) pelo menos uma dentre predição dupla inter-imagem e predição única inter-imagem para a pluralidade de imagens de vídeo codificadas; determinar um tamanho de unidade de predição; e gerar (510) a pluralidade de imagens codificadas de vídeo com base nos dados de vídeo de acordo com a predição de cópia intra-bloco realizada, em que a geração da pluralidade de imagens codificadas compreende usar predição dupla inter-imagem ou predição única inter-imagem se não for determinada a realização de predição inter-imagem nos dados de vídeo usando predição de cópia intra-bloco para gerar a pluralidade de imagens de vídeo codificadas; em que a predição dupla inter-imagem ou predição única inter-imagem é desabilitada para a pluralidade de imagens de vídeo codificadas em resposta a uma combinação de todos dentre: (i) determinar a realização da predição intra- imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, e (ii) o tamanho de unidade de predição sendo menor do que um limiar, e (iii) a resolução de vetor de movimento adaptativo (AMVR) sendo desabilitada.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que o limiar inclui um tamanho de unidade de predição de 8x8 pixels.
3. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a combinação inclui ainda predição dupla de inter-imagem tendo pelo menos um dentre unidades de referência diferentes e vetores de movimento diferentes.
4. Método, de acordo com qualquer uma das reivindicações 1 a 3, caracterizado pelo fato de que realizar (506) a predição de intra-imagem nos dados de vídeo utilizando a predição de cópia de intra-bloco compreende a predição de amostras de luma e chroma de blocos de vídeo (202) de uma imagem (200) de blocos (204) de amostras de luma e chroma já decodificados dentro da mesma imagem (200).
5. Memória legível por computador caracterizada pelo fato de que compreende instruções nela armazenadas que, quando executadas, fazem com que o computador realize o método conforme definido em qualquer uma das reivindicações 1 a 4.
6. Aparelho (104) para codificar dados de vídeo, o aparelho sendo caracterizado pelo fato de compreender: uma memória (108) configurada para armazenar dados de vídeo; e um processador configurado para: obter (502) os dados de vídeo; determinar (504) a realização de predição intra- imagem nos dados de vídeo, utilizando predição de cópia intra-bloco, para gerar uma pluralidade de imagens codificadas de vídeo; realizar (506) a predição de intra-imagem dos dados de vídeo usando a predição de cópia intra-bloco; em resposta à determinação para realizar a predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, desabilitar (508) pelo menos uma dentre predição dupla inter-imagem ou predição única inter-imagem para a pluralidade de imagens codificadas de vídeo; determinar um tamanho de unidade de predição; e gerar (510) a pluralidade de imagens codificadas de vídeo com base nos dados de vídeo de acordo com a predição de cópia intra-bloco realizada, a geração da pluralidade de imagens codificadas compreendendo usar predição dupla inter- imagem ou predição única inter-imagem se não for determinada a realização de predição inter-imagem nos dados de vídeo usando predição de cópia intra-bloco para gerar a pluralidade de imagens de vídeo codificadas; em que a predição dupla inter-imagem ou predição única inter-imagem é desabilitada para a pluralidade de imagens de vídeo codificadas em resposta a uma combinação de todos dentre: (i) determinar a realização da predição intra- imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, e (ii) o tamanho de unidade de predição sendo menor do que um limiar, e (iii) a resolução de vetor de movimento adaptativo (AMVR) sendo desabilitada.
7. Aparelho, de acordo com a reivindicação 6, caracterizado pelo fato de que o limiar inclui um tamanho de unidade de predição de 8x8 pixels.
8. Método de decodificar dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo, o método sendo caracterizado pelo fato de compreender: receber (602), em um fluxo de bits de vídeo, dados codificados de vídeo codificados utilizando uma pluralidade de modos de predição, a pluralidade de modos de predição compreendendo: um modo de predição única de inter-imagem, um modo de predição dupla de inter-imagem, e um modo de cópia intra-bloco de intra-imagem; receber (604), no fluxo de bits de vídeo, uma indicação de que a predição dupla inter-imagem é desabilitada para uma porção dos dados de vídeo codificados, em que a predição dupla inter-imagem é desabilitada quando o modo de cópia intra-bloco intra-imagem é habilitado; determinar (606), com base na indicação, um modo de predição a partir da pluralidade de modos de predição para predizer uma unidade de predição da porção de dados de vídeo codificados; determinar um tamanho de unidade de predição; e decodificar (608) a unidade de predição da porção de dados codificados de vídeo de acordo com o modo de predição determinado, em que os dados de vídeo são decodificados usando predição dupla inter-imagem ou predição única inter-imagem se for determinado que o modo de predição de cópia intra- bloco não está habilitado para a pluralidade de imagens de vídeo codificadas; em que a predição dupla inter-imagem ou predição única inter-imagem é desabilitada em resposta a uma combinação de todos dentre: (i) determinar a realização da predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, e (ii) o tamanho de unidade de predição sendo menor do que um limiar, e (iii) a resolução de vetor de movimento adaptativo (AMVR) sendo desabilitada.
9. Método, de acordo com a reivindicação 8, caracterizado pelo fato de que o limiar inclui um tamanho de unidade de predição de 8x8 pixels.
10. Memória legível por computador caracterizada pelo fato de que compreende instruções nela armazenadas que, quando executadas, fazem com que o computador realize o método conforme definido na reivindicação 8 ou 9.
11. Aparelho (112) para decodificar dados de vídeo, o aparelho sendo caracterizado pelo fato de compreender: uma memória (118) configurada para armazenar dados de vídeo codificados recebidos (602) em um fluxo de bits de vídeo e codificado com uma pluralidade de modos de predição, a pluralidade de modos de predição compreendendo: um modo de predição única de inter-imagem, um modo de predição dupla de inter-imagem, e um modo de cópia intra-bloco de intra-imagem; um processador configurado para: obter os dados de vídeo codificado da memória; receber (604), no fluxo de bits de vídeo, uma indicação de que a predição dupla inter-imagem é desabilitada para uma porção dos dados de vídeo codificados, em que a predição dupla inter-imagem é desabilitada quando o modo de cópia intra-bloco intra-imagem é habilitado; determinar (606), com base na indicação, um modo de predição a partir da pluralidade de modos de predição para predizer uma unidade de predição da porção de dados de vídeo codificados; e decodificar (608) a unidade de predição da porção de dados codificados de vídeo de acordo com o modo de predição determinado, em que os dados de vídeo são decodificados usando predição dupla inter-imagem ou predição única inter-imagem se for determinado que o modo de predição de cópia intra- bloco não está habilitado para a pluralidade de imagens de vídeo codificadas; em que a predição dupla inter-imagem ou predição única inter-imagem é desabilitada em resposta a uma combinação de todos dentre: (i) determinar a realização da predição intra-imagem nos dados de vídeo utilizando a predição de cópia intra-bloco, e (ii) o tamanho de unidade de predição sendo menor do que um limiar, e (iii) a resolução de vetor de movimento adaptativo (AMVR) sendo desabilitada.
12. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato do processador ser configurado ainda para, em resposta à indicação, excluir o modo de predição dupla de inter-imagem do uso para predição da unidade de predição da porção dos dados de vídeo codificados.
13. Aparelho, de acordo com a reivindicação 11 ou 12, caracterizado pelo fato de que a porção dos dados de vídeo codificados compreende uma pluralidade de imagens.
14. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o limiar inclui um tamanho de unidade de predição de 8x8 pixels.
15. Aparelho, de acordo com a reivindicação 11, caracterizado pelo fato de que o aparelho é um computador desktop, um computador laptop, um computador tablet, um aparelho de conversão de sinais, uma televisão, uma câmera, um dispositivo de exibição, um player de mídia digital, um console de vide<o game, ou um dispositivo de streaming de vídeo.
BR112016029387-8A 2014-06-19 2015-06-19 Método de codificar dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo, aparelho para codificar dados de vídeo, método de decodificar dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo, aparelho para decodificar dados de vídeo e memórias legíveis por computador BR112016029387B1 (pt)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201462014641P 2014-06-19 2014-06-19
US62/014,641 2014-06-19
US201562154399P 2015-04-29 2015-04-29
US62/154,399 2015-04-29
US14/743,176 US10327001B2 (en) 2014-06-19 2015-06-18 Systems and methods for intra-block copy
US14/743,176 2015-06-18
PCT/US2015/036609 WO2015196029A1 (en) 2014-06-19 2015-06-19 Systems and methods for intra-block copy

Publications (2)

Publication Number Publication Date
BR112016029387A2 BR112016029387A2 (pt) 2017-08-22
BR112016029387B1 true BR112016029387B1 (pt) 2024-02-15

Family

ID=54870870

Family Applications (2)

Application Number Title Priority Date Filing Date
BR112016029387-8A BR112016029387B1 (pt) 2014-06-19 2015-06-19 Método de codificar dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo, aparelho para codificar dados de vídeo, método de decodificar dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo, aparelho para decodificar dados de vídeo e memórias legíveis por computador
BR112016029539A BR112016029539A2 (pt) 2014-06-19 2015-06-19 sistemas e métodos para cópia intrabloco

Family Applications After (1)

Application Number Title Priority Date Filing Date
BR112016029539A BR112016029539A2 (pt) 2014-06-19 2015-06-19 sistemas e métodos para cópia intrabloco

Country Status (10)

Country Link
US (2) US10327002B2 (pt)
EP (2) EP3158737B1 (pt)
JP (2) JP6527891B2 (pt)
KR (2) KR102423950B1 (pt)
CN (2) CN106464874B (pt)
BR (2) BR112016029387B1 (pt)
CA (2) CA2952279C (pt)
ES (2) ES2807216T3 (pt)
HU (2) HUE047937T2 (pt)
WO (2) WO2015196029A1 (pt)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10327002B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy
CN105392008B (zh) * 2014-08-22 2018-09-25 中兴通讯股份有限公司 一种预测编、解码方法和相应的编、解码器和电子设备
CN105430417B (zh) * 2014-09-22 2020-02-07 中兴通讯股份有限公司 编码方法、解码方法、装置及电子设备
US10432966B2 (en) * 2015-04-13 2019-10-01 Mediatek Inc. Methods of constrained intra block copy for reducing worst case bandwidth in video coding
CN106254878B (zh) * 2015-06-14 2020-06-12 同济大学 一种图像编码及解码方法、图像处理设备
US10516891B2 (en) * 2015-11-20 2019-12-24 Intel Corporation Method and system of reference frame caching for video coding
US9959097B2 (en) 2016-03-09 2018-05-01 Bank Of America Corporation SVN interface system for heterogeneous development environments
US10694202B2 (en) * 2016-12-01 2020-06-23 Qualcomm Incorporated Indication of bilateral filter usage in video coding
US10674159B2 (en) 2017-07-28 2020-06-02 Microsoft Technology Licensing, Llc Effective intra encoding for screen data
US10609384B2 (en) * 2017-09-21 2020-03-31 Futurewei Technologies, Inc. Restriction on sub-block size derivation for affine inter prediction
US11070847B2 (en) * 2017-12-05 2021-07-20 Qualcomm Incorporated Intra-prediction with far neighboring pixels
US10638137B2 (en) 2018-03-07 2020-04-28 Tencent America LLC Method and apparatus for video coding
WO2019234607A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Interaction between ibc and affine
WO2019234578A1 (en) * 2018-06-05 2019-12-12 Beijing Bytedance Network Technology Co., Ltd. Asymmetric weighted bi-predictive merges
TWI731345B (zh) 2018-06-19 2021-06-21 大陸商北京字節跳動網絡技術有限公司 模式相依運動向量差精確集
EP3788782A1 (en) 2018-06-21 2021-03-10 Beijing Bytedance Network Technology Co. Ltd. Sub-block mv inheritance between color components
TWI739120B (zh) 2018-06-21 2021-09-11 大陸商北京字節跳動網絡技術有限公司 合併仿射模式與非合併仿射模式的統一拘束
US10798376B2 (en) * 2018-07-17 2020-10-06 Tencent America LLC Method and apparatus for video coding
US10375416B1 (en) * 2018-09-05 2019-08-06 Tencent America LLC Segment types in video coding
EP4325859A3 (en) 2018-09-19 2024-05-15 Beijing Bytedance Network Technology Co., Ltd. Syntax reuse for affine mode with adaptive motion vector resolution
US10848782B2 (en) 2018-09-21 2020-11-24 Tencent America LLC Method and apparatus for video coding
US11172236B2 (en) 2018-09-21 2021-11-09 Tencent America LLC Method and apparatus for video decoding that defines a search range for a reference block indicated by a block vector
TWI818086B (zh) 2018-09-24 2023-10-11 大陸商北京字節跳動網絡技術有限公司 擴展Merge預測
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
KR20200040179A (ko) 2018-10-08 2020-04-17 에스케이텔레콤 주식회사 현재 픽처 참조 모드를 이용한 예측 방법 및 영상 복호화 장치
US11509919B2 (en) * 2018-10-17 2022-11-22 Tencent America Reference sample memory size restrictions for intra block copy
WO2020084474A1 (en) 2018-10-22 2020-04-30 Beijing Bytedance Network Technology Co., Ltd. Gradient computation in bi-directional optical flow
US11758164B2 (en) 2018-10-23 2023-09-12 Tencent America LLC Method and apparatus for video coding
CN113056917B (zh) 2018-11-06 2024-02-06 北京字节跳动网络技术有限公司 为视频处理使用具有几何分割的帧间预测
WO2020094074A1 (en) 2018-11-06 2020-05-14 Beijing Bytedance Network Technology Co., Ltd. Position-depending ordering of motion candidate list for geometric partitioning mode
CN112997480B (zh) 2018-11-10 2023-08-22 北京字节跳动网络技术有限公司 成对平均候选计算中的取整
EP3857879A4 (en) 2018-11-12 2022-03-16 Beijing Bytedance Network Technology Co., Ltd. SIMPLIFICATION OF COMBINED INTER-INTRA PREDICTION
JP7241870B2 (ja) 2018-11-20 2023-03-17 北京字節跳動網絡技術有限公司 部分的な位置に基づく差分計算
WO2020103935A1 (en) * 2018-11-22 2020-05-28 Beijing Bytedance Network Technology Co., Ltd. Blending method for inter prediction with geometry partition
JP7384831B2 (ja) * 2018-11-30 2023-11-21 テンセント・アメリカ・エルエルシー ビデオ符号化及び復号のための方法、装置及びコンピュータプログラム
CN111010572A (zh) * 2018-12-04 2020-04-14 北京达佳互联信息技术有限公司 一种视频编码方法和装置及设备
CN113261290B (zh) 2018-12-28 2024-03-12 北京字节跳动网络技术有限公司 基于修改历史的运动预测
CN111385570B (zh) 2018-12-28 2021-11-02 杭州海康威视数字技术股份有限公司 编码方法、解码方法及装置
CN113170166B (zh) 2018-12-30 2023-06-09 北京字节跳动网络技术有限公司 具有几何分割的帧间预测在视频处理中有条件的应用
WO2020143832A1 (en) * 2019-01-12 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction constraints
US10771799B2 (en) 2019-01-15 2020-09-08 Tencent America LLC Method and apparatus for video coding
US11202089B2 (en) * 2019-01-28 2021-12-14 Tencent America LLC Method and apparatus for determining an inherited affine parameter from an affine model
CN113412623A (zh) 2019-01-31 2021-09-17 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
CN113302920A (zh) * 2019-02-01 2021-08-24 北京字节跳动网络技术有限公司 组合帧间帧内预测的扩展应用
US10958904B2 (en) 2019-02-01 2021-03-23 Tencent America LLC Method and apparatus for video coding
CN113383541B (zh) 2019-02-02 2024-02-20 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区访问方法
WO2020164627A1 (en) 2019-02-17 2020-08-20 Beijing Bytedance Network Technology Co., Ltd. Motion candidate list construction for intra block copy mode
CN117395439A (zh) 2019-03-01 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的基于方向的预测
WO2020177660A1 (en) 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Block vector representation for intra block copy in video coding
KR20210125506A (ko) 2019-03-04 2021-10-18 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 버퍼 관리
EP3915259A4 (en) 2019-03-06 2022-03-30 Beijing Bytedance Network Technology Co., Ltd. USE OF A CONVERTED UNIVERSITY PREDICTION CANDIDATE
KR20210131347A (ko) * 2019-03-06 2021-11-02 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크기에 따른 인터 코딩
CN114666607A (zh) * 2019-03-09 2022-06-24 腾讯美国有限责任公司 视频解码方法、装置及介质
CN113924784A (zh) * 2019-03-12 2022-01-11 现代自动车株式会社 用于编码和解码影像的方法和装置
US20220182604A1 (en) * 2019-03-14 2022-06-09 Sk Telecom Co., Ltd. Video encoding and decoding using intra block copy
WO2020187199A1 (en) 2019-03-17 2020-09-24 Beijing Bytedance Network Technology Co., Ltd. Calculation of prediction refinement based on optical flow
US11240516B2 (en) * 2019-03-20 2022-02-01 Tencent America LLC Coding mode signaling for small blocks
CN113826390B (zh) * 2019-05-16 2024-03-08 字节跳动有限公司 屏幕内容编解码的帧内块复制
EP3989558A4 (en) 2019-06-24 2023-07-12 Lg Electronics Inc. PICTURE ENCODING/DECODING METHOD AND APPARATUS WITH MAXIMUM TRANSFORMATION SIZE LIMITATION FOR A CHROMA COMPONENT ENCODING BLOCK AND BITSTREAM TRANSMISSION METHODS
KR20230170800A (ko) 2019-07-06 2023-12-19 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 가상 예측 버퍼
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
CN113661703A (zh) 2019-07-11 2021-11-16 腾讯美国有限责任公司 视频编解码的方法和装置
CN114097221B (zh) 2019-07-11 2024-01-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的比特流一致性约束
WO2021008513A1 (en) * 2019-07-14 2021-01-21 Beijing Bytedance Network Technology Co., Ltd. Transform block size restriction in video coding
US11616962B2 (en) 2019-07-15 2023-03-28 Tencent America LLC Method and apparatus for video coding
WO2021015512A1 (ko) * 2019-07-19 2021-01-28 엘지전자 주식회사 Ibc를 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
WO2021023261A1 (en) 2019-08-06 2021-02-11 Beijing Bytedance Network Technology Co., Ltd. Size restriction based on color format
BR112022003732A2 (pt) 2019-09-02 2022-10-11 Beijing Bytedance Network Tech Co Ltd Método e aparelho para processamento de dados de vídeo, e, meios de armazenamento e de gravação legíveis por computador não transitórios
CN114424565A (zh) 2019-09-21 2022-04-29 北京字节跳动网络技术有限公司 基于色度帧内模式的尺寸限制
US11330305B2 (en) * 2020-02-24 2022-05-10 Qualcomm Incorporated Signaling constraints and sequence parameter set sharing in video coding
US11943429B2 (en) * 2020-03-04 2024-03-26 Qualcomm Incorporated Subpicture signaling in video coding
US20230086077A1 (en) * 2021-09-17 2023-03-23 Tencent America LLC Method and apparatus for intra block copy (intrabc) mode coding with search range restrictions

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101441874B1 (ko) * 2009-08-21 2014-09-25 에스케이텔레콤 주식회사 적응적 움직임 벡터 해상도를 이용한 영상 부호화/복호화 방법 및 장치
WO2011056140A1 (en) 2009-11-05 2011-05-12 Telefonaktiebolaget Lm Ericsson (Publ) Prediction of pixels in image coding
US9538184B2 (en) * 2011-09-14 2017-01-03 Samsung Electronics Co., Ltd. Method and device for encoding and decoding video
JP5976658B2 (ja) 2011-09-29 2016-08-24 シャープ株式会社 画像復号装置、画像復号方法および画像符号化装置
EP2806641A4 (en) 2012-01-19 2016-01-13 Sony Corp IMAGE PROCESSING APPARATUS AND METHOD
US9426463B2 (en) * 2012-02-08 2016-08-23 Qualcomm Incorporated Restriction of prediction units in B slices to uni-directional inter prediction
US9906786B2 (en) 2012-09-07 2018-02-27 Qualcomm Incorporated Weighted prediction mode for scalable video coding
CN103747258B (zh) 2014-01-27 2015-02-04 中国科学技术大学 一种高性能视频编码标准的加密处理方法
CN105556971B (zh) * 2014-03-04 2019-07-30 微软技术许可有限责任公司 针对帧内块复制预测中的块翻动和跳跃模式的编码器侧判定
US10327002B2 (en) 2014-06-19 2019-06-18 Qualcomm Incorporated Systems and methods for intra-block copy

Also Published As

Publication number Publication date
BR112016029539A2 (pt) 2017-08-22
ES2774664T3 (es) 2020-07-22
KR102423950B1 (ko) 2022-07-21
JP6527891B2 (ja) 2019-06-05
EP3158737A1 (en) 2017-04-26
CN106416245A (zh) 2017-02-15
CN106464874A (zh) 2017-02-22
EP3158736A1 (en) 2017-04-26
EP3158737B1 (en) 2020-04-22
CN106464874B (zh) 2019-08-02
CA2952279A1 (en) 2015-12-23
KR20170019364A (ko) 2017-02-21
KR20170019365A (ko) 2017-02-21
CA2952279C (en) 2023-01-03
HUE050093T2 (hu) 2020-11-30
US10327001B2 (en) 2019-06-18
US20150373357A1 (en) 2015-12-24
CA2952457A1 (en) 2015-12-23
JP2017522790A (ja) 2017-08-10
WO2015196029A1 (en) 2015-12-23
CA2952457C (en) 2022-12-13
HUE047937T2 (hu) 2020-05-28
BR112016029387A2 (pt) 2017-08-22
WO2015196030A1 (en) 2015-12-23
CN106416245B (zh) 2019-08-02
KR102423948B1 (ko) 2022-07-22
ES2807216T3 (es) 2021-02-22
EP3158736B1 (en) 2019-11-27
US20150373358A1 (en) 2015-12-24
JP6704354B2 (ja) 2020-06-03
JP2017522789A (ja) 2017-08-10
US10327002B2 (en) 2019-06-18

Similar Documents

Publication Publication Date Title
BR112016029387B1 (pt) Método de codificar dados de vídeo para gerar uma pluralidade de imagens codificadas de vídeo, aparelho para codificar dados de vídeo, método de decodificar dados de vídeo para gerar uma pluralidade de imagens decodificadas de vídeo, aparelho para decodificar dados de vídeo e memórias legíveis por computador
JP6752266B2 (ja) ビデオコーディングにおける双予測を制約する方法およびシステム
KR102385772B1 (ko) 파라미터 세트에 대한 표현 포맷 파라미터들을 제약하기 위한 시스템들 및 방법들
KR102310009B1 (ko) 파라미터 세트에서의 비디오 신호 정보 신택스 구조들의 상이한 수들을 선택적으로 시그널링하기 위한 시스템들 및 방법들
KR20210119992A (ko) 개선된 서브-파티션 인트라 예측
CA2884422C (en) Signaling layer identifiers for operation points in video coding
JP2018533281A (ja) 改善されたビデオストリームスイッチングおよびランダムアクセスの方法およびシステム
KR102148061B1 (ko) Mv-hevc 에서의 인터-뷰 종속성 타입
JP2017514354A (ja) マルチレイヤ・ビデオコーディングのためのpoc値設計
BR112016021476B1 (pt) Método e dispositivo para codificar dados de vídeo e memória legível por computador

Legal Events

Date Code Title Description
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
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 19/06/2015, OBSERVADAS AS CONDICOES LEGAIS