BR112016012510B1 - Método e dispositivo para codificar dados de vídeo - Google Patents
Método e dispositivo para codificar dados de vídeo Download PDFInfo
- Publication number
- BR112016012510B1 BR112016012510B1 BR112016012510-0A BR112016012510A BR112016012510B1 BR 112016012510 B1 BR112016012510 B1 BR 112016012510B1 BR 112016012510 A BR112016012510 A BR 112016012510A BR 112016012510 B1 BR112016012510 B1 BR 112016012510B1
- Authority
- BR
- Brazil
- Prior art keywords
- image
- video
- images
- picture
- video encoder
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/43—Hardware specially adapted for motion estimation or compensation
- H04N19/433—Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/154—Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/164—Feedback from the receiver or from the transmission channel
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/573—Motion compensation with multiple frame prediction using two or more reference frames in a given prediction direction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/577—Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/58—Motion compensation with long-term prediction, i.e. the reference frame for a current frame not being the temporally closest one
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
SELEÇÃO DE IMAGEM DE REFERÊNCIA. São descritas técnicas onde um dispositivo que inclui um decodificador de vídeo emite informação identificando uma imagem para um dispositivo que inclui um codificador de vídeo. O codificador de vídeo pode determinar imagens que poderiam ter sido usadas para codificar mediante predição inter a imagem e/ou imagens identificadas após a imagem identificada na ordem de codificação. O codificador de vídeo pode codificar mediante predição inter uma imagem atual com base em uma ou mais das imagens determinadas e/ou da imagem identificada.
Description
[0001] Esse pedido reivindica o benefício do Pedido de Patente Provisional dos Estados Unidos N° 61/910.766, depositado em 2 de dezembro de 2013, cujo conteúdo integral é aqui incorporado mediante referência.
[0002] Essa revelação se refere à codificação de vídeo (isto é, codificação de vídeo ou decodificação de vídeo).
[0003] Capacidades de vídeo digital podem ser incorporadas em uma ampla gama de dispositivos, incluindo televisões digitais, sistemas digitais de difusão direta, sistemas de difusão sem fio, assistentes pessoais digitais (PDAs), computadores de mesa ou laptop, computadores tablet, leitores de livro eletrônico, câmeras digitais, dispositivos digitais de gravação, dispositivos de reprodução de mídia digital, dispositivo de videogame, consoles de videogame, telefones de rádio via satélite ou celulares, os assim chamados “smartphones”, dispositivos de teleconferência de vídeo, dispositivos de fluxo contínuo de vídeo, e semelhantes. Os dispositivos de vídeo digital implementam técnicas de compactação de vídeo tais como aquelas descritas nos padrões definidos por MPEG-2, MPEG-4, ITU-T H.263, ITU- T H.264/MPEG-4, Parte 10, Codificação Avançada de Vídeo (AVC), o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento, e extensões de tais padrões. Os dispositivos de vídeo podem transmitir, receber, codificar, decodificar e/ou armazenar informação de vídeo digital mais especificamente mediante implementação de tais técnicas de compactação de vídeo.
[0004] Técnicas de compactação de video realizam predição espacial (imagem intra) e/ou predição temporal (imagem inter) para reduzir ou remover a redundância inerente nas sequências de vídeo. Para codificação de vídeo baseada em bloco, uma fatia de vídeo (isto é, uma imagem de vídeo ou uma porção de uma imagem de vídeo) pode ser dividida em blocos de vídeo, os quais também podem ser referidos como treeblocks, unidades de codificação (CUs) e/ou modos de codificação. Os blocos de vídeo em uma fatia codificada intra (I) de uma imagem são codificados utilizando a predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem. Os blocos de vídeo em uma fatia codificada inter (P ou B) de uma imagem podem usar predição espacial com relação às amostras de referência em blocos vizinhos na mesma imagem ou predição temporal com relação às amostras de referência em outras imagens de referência. As imagens podem ser referidas coma imagens, e as imagens de referência podem ser referidas coma imagens de referência.
[0005] A predição espacial ou temporal resulta em um bloco preditivo para um bloco a ser codificado. Dados residuais representam diferenças de pixel entre o bloco original a ser codificado e o bloco preditivo. Um bloco codificado inter é codificado de acordo com um vetor de movimento que aponta para um bloco de amostras de referência formando o bloco preditivo, e os dados residuais indicando a diferença entre o bloco codificado e o bloco preditivo. Um bloco codificado intra é codificado de acordo com um modo de codificação intra e os dados residuais. Para compactação adicional, os dados residuais podem ser transformados a partir do domínio de pixel para um domínio de transformada, resultando em coeficientes de transformada residual, os quais podem ser então quantizados. Os coeficientes de transformada quantizados, inicialmente arranjados em um arranjo bidimensional, podem ser escaneados para produzir um vetor unidimensional dos coeficientes de transformada, e codificação de entropia pode ser empregada para se obter adicionalmente compactação.
[0006] Essa revelação descreve técnicas exemplares para determinar imagens a partir das quais uma ou mais imagens de referência são selecionadas para codificar e decodificar uma imagem atual com base na informação produzida por um decodificador de vídeo. Por exemplo, um decodificador de vídeo pode produzir informação identificando uma imagem previamente decodificada armazenada em um meio de armazenamento temporário do decodificador de vídeo para um codificador de vídeo. O codificador de vídeo recebe a informação de saída a partir do decodificador de vídeo e pode determinar imagens que estão disponíveis para codificação com base em: imagem identificada, imagens que foram determinadas para serem imagens que poderiam ter sido imagens de referência para a imagem identificada, e/ou imagens após a imagem identificada na ordem de codificação. O codificador de vídeo pode então utilizar uma ou mais das imagens determinadas para estar disponíveis para codificação para predição inter de uma imagem atual.
[0007] Por exemplo, nem todas as imagens que foram determinadas como sendo imagens que poderiam ter sido imagens de referência para imagem identificada e imagens após a imagem identificada na ordem de codificação podem estar disponíveis para codificação. Contudo, há uma certeza relativamente elevada de que se as imagens, que foram determinadas como sendo imagens que poderiam ter sido imagens de referência para a imagem identificada e imagens após a imagem identificada na ordem de codificação, ainda estão disponíveis para codificar uma imagem atual pelo codificador de vídeo, então essas imagens também estarão disponíveis para decodificação da imagem atual pelo decodificador de vídeo. Dessa maneira, o codificador de vídeo pode ser capaz de selecionar a partir de uma pluralidade de imagens, mais propriamente do que apenas a imagem identificada, para codificar uma imagem atual com certeza relativamente elevada de que a imagem(ns) selecionada estará disponível no decodificador de vídeo para decodificar a imagem atual.
[0008] Em um exemplo, a revelação descreve um método de decodificar os dados de vídeo, o método compreendendo receber, a partir de um dispositivo compreendendo um decodificador de vídeo, informação identificando a imagem previamente decodificada que é armazenada em um armazenamento temporário de imagem decodificada (DPB) do decodificador de vídeo no momento em que o decodificador de vídeo transmitiu a informação, determinando uma ou mais imagens de referência candidatas que estejam disponíveis para codificação de uma imagem atual com base na imagem identificada, em que a uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram previamente determinadas como sendo utilizáveis para codificação de predição inter de uma ou mais das imagens identificadas após a imagem identificada na ordem de codificação, e que ainda estão armazenadas em um DPB de um codificador de vídeo, selecionando uma ou mais imagens de referência para a imagem atual a partir da imagem determinada dentre uma ou mais imagens de referência candidatas e a imagem identificada, e codificar mediante predição interna a imagem atual com base na uma ou mais imagens de referência selecionadas.
[0009] Em um exemplo, a revelação descreve um método de decodificar dados de vídeo, o método compreendendo produzir, para um dispositivo compreendendo um codificador de vídeo, informação identificando uma imagem previamente decodificada armazenada em um meio de armazenamento temporário de imagem decodificada (DPB) de um decodificador de vídeo no momento da produção da informação, e decodificar mediante predição inter uma imagem atual com uma ou mais imagens de referência candidatas, em que a uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram determinadas previamente, pelo codificador de vídeo, para serem utilizadas para codificação de predição inter da imagem identificada.
[0010] Em um exemplo, a revelação descreve um dispositivo para codificar os dados de vídeo, o dispositivo compreendendo um primeiro meio de armazenamento temporário de imagem decodificada (DPB) compreendendo uma memória configurada para armazenar uma ou mais imagens, e um codificador de vídeo compreendendo um ou mais processadores. O codificador de vídeo é configurado para receber, a partir de um dispositivo compreendendo um decodificador de vídeo, informação identificando uma imagem previamente decodificada que é armazenada em um segundo DPB do decodificador de vídeo no momento em que o decodificador de vídeo transmitir a informação, determinar uma ou mais imagens de referência candidatas que estão disponíveis para codificar uma imagem atual com base na imagem identificada, em que a uma ou mais imagens de referência e candidatas incluem uma ou mais imagens que foram previamente determinadas como podendo ser utilizadas para codificação de predição inter de uma ou mais das imagens identificadas após a imagem identificada na ordem de codificação, e que ainda estão armazenadas no primeiro DPB, selecionar uma ou mais imagens de referência para a imagem atual a partir da uma ou mais imagens de referência candidatas determinadas e a imagem identificada, e codificar mediante predição inter a imagem atual com base em uma ou mais imagens de referência selecionadas.
[0011] Em um exemplo, a revelação descreve um dispositivo para decodificar os dados de vídeo, o dispositivo compreendendo um meio de armazenamento temporário de imagem decodificada (DPB) compreendendo uma memória configurada para armazenar uma ou mais imagens, e um decodificador de vídeo compreendendo um ou mais processadores. O decodificador de vídeo é configurado para emitir, para um dispositivo compreendendo um codificador de vídeo, informação identificando uma imagem previamente decodificada armazenada no DPB do decodificador de vídeo no momento da emissão da informação, e decodificar mediante inter predição uma imagem atual com uma ou mais imagens de referência candidatas, em que a uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram previamente determinadas pelo codificador de vídeo para serem utilizadas para codificação de inter predição da imagem identificada.
[0012] Os detalhes de um ou mais exemplos da revelação são apresentados nos desenhos anexos e na descrição abaixo. Outras características, objetivos e vantagens serão evidentes a partir da descrição, desenhos e reivindicações.
[0013] A Figura 1 é um diagrama em blocos que ilustra um sistema de codificação e decodificação de vídeo, exemplar que pode utilizar as técnicas descritas nessa revelação.
[0014] A Figura 2 é um diagrama em blocos que ilustra um codificador de vídeo exemplar que pode implementar as técnicas descritas nessa revelação.
[0015] A Figura 3 é um diagrama em blocos que ilustra um decodificador de vídeo exemplar que pode implementar as técnicas descritas nessa revelação.
[0016] A Figura 4 é um fluxograma que ilustra um método exemplar de codificador dados de vídeo.
[0017] A Figura 5 é um fluxograma ilustrando um método exemplar de decodificação de dados de vídeo.
[0018] A Figura 6 é um fluxograma que ilustra outro método exemplar de codificação de dados de vídeo.
[0019] A Figura 7 é um fluxograma que ilustra outro método exemplar de decodificação de dados de vídeo.
[0020] As técnicas descritas na atual revelação são geralmente relacionadas com a codificação de vídeo, incluindo exemplos de aplicações de vídeo em tempo real. Por exemplo, as técnicas descritas na atual revelação podem ser aplicadas à telefonia de vídeo ou de videoconferência, em que o vídeo está a ser codificada e decodificada, em tempo real, em cada lado da telefonia ou vídeo conferência. Como outro exemplo, as técnicas descritas na atual revelação podem ser aplicáveis à transmissão ao vivo, onde o vídeo do evento ao vivo está a ser codificado em tempo real para a transmissão. No entanto, as técnicas descritas na atual revelação não devem ser consideradas limitadas à telefonia de vídeo, videoconferência, ou a codificação de vídeo em tempo real de um evento ao vivo. As técnicas descritas na atual revelação podem ser aplicáveis à codificação de vídeo onde um decodificador de vídeo é capaz de transmitir informação para um codificador de vídeo que é a codificação dos dados de vídeo sendo transmitidos para o decodificador de vídeo.
[0021] Na codificação de vídeo em tempo real,um decodificador de vídeo pode ser configurado para se comunicar com um codificador de vídeo (por exemplo, utilizando um protocolo de transporte em tempo real (RTP)) para ter o codificador de vídeo determinando imagens que estão disponíveis para a codificação a partir do qual o codificador de vídeo seleciona uma ou mais imagens de referência para a predição inter que codifica uma imagem atual. Pode haver diversas razões pelas quais o decodificador de vídeo pode se comunicar com o codificador de vídeo para determinar essas imagens que estão disponíveis para codificação, e as técnicas descritas na presente revelação não se limitam a qualquer razão particular, os motivos porque o decodificador de vídeo pode se comunicar com o codificador de vídeo para determinar essas imagens que estão disponíveis para a codificação.
[0022] Em alguns exemplos, o decodificador de vídeo pode se comunicar com o codificador de vídeo para que o codificador de vídeo determine imagens de referência candidatas (isto é, imagens que se encontram disponíveis para a codificação), de modo que o codificador de vídeo selecione imagens de referência para predição inter que codifica uma imagem atual para o qual existe um nível relativamente elevado de certeza de que essas imagens de referência estarão disponíveis em um armazenador temporário (por exemplo, armazenador temporário de imagem decodificada (OPD)) do decodificador de vídeo. Como um exemplo apenas para fins ilustrativos, o decodificador de vídeo pode se comunicar com o codificador de vídeo para que o codificador de vídeo determinar imagens de referência candidatas para fins de limitar a propagação do erro.
[0023] Em alguns casos, um decodificador de vídeo pode não receber alguns ou todos os dados de vídeo necessários para reconstruir uma imagem. A imagem que o decodificador de vídeo é capaz de reconstruir é referida como uma imagem perdida. Além disso, para o decodificador de vídeo não ser capaz de emitir a imagem dispensada, se a imagem desperdiçada é utilizada coma imagem de referência para uma imagem posterior, erros de decodificação se propagam porque o decodificador de vídeo pode não ser capaz de reconstruir esta imagem subsequente.
[0024] Para limitar os erros de propagação, o decodificador de vídeo pode produzir informações para o codificador de vídeo que o codificador de vídeo usa para selecionar imagens de referência, para predizer inter uma imagem atual, para a qual existe uma probabilidade relativamente elevada de que as imagens de referência sejam armazenadas no DPB do decodificador de vídeo. Em alguns casos, pode ser praticamente garantido que as imagens sejam selecionadas no DPB do decodificador de vídeo. Desta forma, usando imagens com uma probabilidade relativamente elevada de existir no DPB do decodificador de vídeo, o codificador de vídeo pode não usar a imagem ausente como uma imagem de referência, e o decodificador de vídeo seria capaz de reconstruir a imagem em curso, sem erro.
[0025] Deve ser entendido que a limitação da propagação de erro é descrita para fins de ilustração, e a comunicação de informações a partir do decodificador vídeo para o codificador vídeo pode também ser realizada por outras razões. O decodificador de vídeo pode produzir informações que o codificador de vídeo usa para selecionar imagens de referência por razões em adição ou em separado de limitar a propagação de erros. Por exemplo, o decodificador de vídeo produz informações que o codificador de vídeo usa para selecionar imagens de referência em exemplos onde não havia uma imagem ausente.
[0026] Nas técnicas descritas na presente revelação, o decodificador de vídeo pode transmitir informações, para o codificador de vídeo, em que a informação identifica uma imagem previamente decodificada que está armazenada no DPB do decodificador de vídeo no momento (por exemplo, quando) em que o decodificador de vídeo transmite a informação para o codificador vídeo. A imagem identificada pode corresponder a uma possível imagem de referência candidata (ou seja, a imagem identificada pode ser uma das imagens disponíveis para codificação). No entanto, de acordo com as técnicas descritas na presente revelação, além da imagem identificada, uma ou mais imagens que o codificador de vídeo tinha determinado como possíveis imagens de referência para a imagem identificada são também imagens de referência candidata adicionais (isto é, uma ou mais imagem que o codificador de vídeo tinha determinado como possíveis imagens de referência para a imagem identificada são imagens que estão disponíveis para codificação e, em alguns exemplos, também incluindo possíveis imagens de referência das imagens de referência da imagem identificada). Deve notar-se que uma ou mais das possíveis imagens de referência para a imagem identificada podem ter sido imagens reais de referência para a imagem identificada. Em outras palavras, “possíveis imagens de referência para a identificação imagem“ não deve ser interpretado para excluir imagens de referência que foram realmente utilizadas para predição inter da imagem identificada.
[0027] Em alguns exemplos, na codificação de uma imagem, o codificador de vídeo pode determinar imagens que poderiam ter sido usadas para codificar com predição inter a imagem (incluindo imagens que são realmente usadas para codificar com predição inter a imagem). O codificador de vídeo pode armazenar informações indicando as imagens que poderiam ter sido usados para codificar com predição inter as respectivas imagens e imagens seguintes. Em resposta à recepção de informações de identificação de uma imagem em particular a partir do decodificador de vídeo, o codificador vídeo pode recuperar a informação armazenada que indica as imagens que poderiam ter sido utilizadas para codificar com predição inter a imagem identificada e imagens seguintes. O codificador de vídeo pode determinar quais as imagens indicadas na informação recuperada que ainda estão armazenados em um armazenador temporário do codificador de vídeo, e pode, em seguida, selecionar uma ou mais imagens de referência das determinadas imagens para codificar com predição inter uma imagem atual.
[0028] Por exemplo, o padrão High Efficiency Vídeo Coding (HEVC) define uma pluralidade de subconjuntos de imagem de referência que o codificador de vídeo e o decodificador de vídeo constroem para cada imagem. Para uma imagem particular, três dos subconjuntos de imagem de referência indicam imagens de referência que podem potencialmente ser usadas para predição inter da imagem particular e imagens após a imagem em particular, a fim de decodificação. Dois dos subconjuntos de imagem de referência indicam imagens de referência que não podem ser utilizadas para prever inter a imagem em particular, mas podem potencialmente ser usadas para prever entre as imagens seguintes da imagem em particular, a fim de decodificação. O termo “conjunto de imagens de referência” refere-se à combinação de uma pluralidade de subconjuntos de imagens de referência.
[0029] Um codificador de vídeo e um decodificador de vídeo configurados em conformidade com o padrão HEVC podem se beneficiar dos subconjuntos de imagem de referência definidos na norma HEVC para implementar as técnicas exemplares descritas na presente revelação. No entanto, um codificador de vídeo e um decodificador de vídeo configurado de acordo com a norma H.264/AVC, ou de outra forma, podem não ter subconjuntos de imagem de referência pré-definidos. Para tais codificadores e decodificadores de vídeo de vídeo, o codificador de vídeo pode ser configurado para manter uma lista de possíveis imagens de referência que o codificador de vídeo poderia ter usado para predição inter das imagens específicas.
[0030] Para facilitar a compreensão, o termo “conjunto de imagens” de uma particular imagem, tal como utilizado na presente revelação, refere-se a imagens que poderiam ter sido utilizadas para predizer inter a imagem particular e as imagens seguintes da imagem identificada, a fim de codificação. Como um exemplo, no contexto de HEVC, o termo “conjunto de imagens” de uma imagem em particular refere-se a imagens, mas não necessariamente todas as imagens, na imagem de um conjunto de referência da imagem em particular. Como outro exemplo, no contexto de H.264/AVC ou de outra forma, o termo “conjunto de imagens” de uma imagem em particular refere-se a imagens indicadas em uma lista mantida de imagens que o codificador de vídeo poderia ter utilizado para a predição inter da imagem em particular.
[0031] Nas técnicas descritas nesta revelação,em resposta à recepção de informações de identificação de uma imagem armazenada no DPB do decodificador de vídeo, o codificador vídeo pode decidir quais as imagens, na imagem definida da imagem identificada, que ainda estão disponíveis no DPB de o codificador de vídeo (ou seja, atualmente armazenado no DPB do codificador de vídeo) e, em alguns exemplos, o codificador de vídeo pode também determinar quais as imagens na imagem conjunto de imagens na imagem definida da imagem identificados ainda estão disponíveis no DPB do codificador de vídeo. Imagens consideradas como imagens que estão disponíveis para a codificação de uma imagem atual (ou seja, imagens de referência candidato para a imagem atual) podem incluir: imagens que estão determinadas estando na imagem definida da imagem identificada, imagens na imagem definida das imagens na imagem definida da imagem identificado que ainda estão disponíveis no DPB do codificador de vídeo, e a própria imagem identificada. O codificador de vídeo pode selecionar uma ou mais imagens de referência a partir das imagens que estão disponíveis para a codificação da imagem atual e predizer inter a imagem atual a partir da imagem de referência selecionado (s).
[0032] De um modo geral, pode haver uma segurança muito alta (por exemplo, praticamente garantida) de que uma imagem que é armazenada no DPB do codificador de vídeo, a qual poderia ter sido uma imagem de referência para a imagem e as imagens identificadas de acordo com a imagem identificada a fim de codificação, no momento em que o codificador de vídeo codifica a imagem atual também está armazenada no DPB do decodificador de vídeo no momento em que o decodificador de vídeo descodifica a imagem em curso. Essa segurança muito alta pode ser devido ao fato de o decodificador de vídeo poder remover uma imagem da sua DPB depois do codificador de vídeo remover a imagem a partir da sua DPB. Em outras palavras, se houver uma imagem no DPB que poderia ter sido utilizada para predizer inter a imagem identificada e imagens após a imagem identificada, a fim de codificação, e o codificador de vídeo ainda não tiver removido a imagem a partir da sua OPD, então há uma probabilidade muito alta de que decodificador de vídeo não removeu a imagem de sua DPB. Portanto, embora nem todas as imagens no DPB do codificador de vídeo necessitem estar no DPB do decodificador de vídeo, e vice-versa, se houver uma imagem no DPB do codificador de vídeo que poderiam ter sido utilizadas para predizer inter a imagem e imagens identificadas de acordo com a imagem identificada, a fim de codificação, o que o decodificador de vídeo identificado como uma imagem armazenada no seu DPB, em seguida, que é praticamente garantido que a imagem esteja no DPB do decodificador de vídeo.
[0033] Nas técnicas descritas na presente revelação, o codificador vídeo pode ser capaz de determinar uma pluralidade de imagens, que estão sabidamente disponíveis para decodificação pelo decodificador de vídeo, que podem ser usadas para predição inter uma imagem atual. Por exemplo, pode ser possível que o decodificador de vídeo transmita informações de identificação de uma pluralidade de imagens na sua OPD, e o codificador de vídeo, em seguida, selecione uma ou mais dessas imagens identificadas como imagens de referência para a imagem corrente. No entanto, ter o decodificador de vídeo identificando informação de transmissão de uma pluralidade de imagens na sua DPB pode ser de largura de banda intensiva. No entanto, ter o decodificador de vídeo identificando apenas uma imagem, e ter o codificador de vídeo usando uma imagem para predição inter da imagem atual pode resultar em menor eficiência de codificação, o que por sua vez resulta em uso de banda superior.
[0034] As técnicas descritas na atual revelação podem permitir ao decodificador de vídeo identificar apenas algumas imagens (por exemplo, uma ou mais imagens) no seu OPD, e permitir que o codificador de vídeo determinar imagens adicionais (por exemplo, uma pluralidade de imagens) com base na imagem identificada (por exemplo, as imagens na imagem de referência fixadas da imagem identificada que ainda estão disponíveis no DPB do codificador de vídeo) que podem ser usadas para predizer inter uma imagem atual. Desse modo, as técnicas descritas nesta revelação requerem o uso de largura de banda inferior (por exemplo, o decodificador de vídeo pode produzir informação identificando uma imagem), mas proporcionar maior eficiência de codificação porque o codificador vídeo pode selecionar dentre uma pluralidade de imagens que proporcionarão melhor eficiência de codificação para a predição inter da imagem atual.
[0035] Por exemplo, um codificador de vídeo pode receber, a partir de um dispositivo que inclui um decodificador de vídeo, informação de identificação de uma imagem previamente decodificada que é armazenada num DPB do decodificador de vídeo no momento em que o decodificador de vídeo transmite a informação (por exemplo, quando a informação de transmissão do decodificador de vídeo identificar uma imagem, que a imagem é armazenada no DPB do decodificador de vídeo). O codificador de vídeo pode determinar uma ou mais imagens de referência candidatas que estão disponíveis para a codificação de uma imagem atual com base na imagem identificada. As imagens de referência um ou mais candidatas incluir uma ou mais imagens que foram previamente determinadas para ser utilizáveis para codificação de predição inter de uma ou mais imagem identificada ou imagens após a imagem identificada, a fim de codificação, e que ainda estão armazenadas em um DPB do codificador de vídeo. O codificador de vídeo pode selecionar uma ou mais imagens de referência para a imagem atual a partir das determinadas uma ou mais imagens de referência candidatas e a imagem identificada. O codificador de vídeo pode em seguida, codificar com predição inter a imagem atual com base em uma ou mais imagens de referência selecionadas.
[0036] Um decodificador de vídeo, nas técnicas exemplares descritas na presente revelação, pode produzir para um dispositivo que inclui um codificador de vídeo, informação de identificação de uma imagem previamente decodificada armazenada na sua DPB no momento da saída da informação. O decodificador de vídeo pode decodificar com predição inter uma imagem atual com uma ou mais imagens de referência candidatas. A uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram determinadas previamente, pelo codificador de vídeo, para ser utilizável para predição inter que codifica a imagem identificada.
[0037] A figura 1 é um diagrama de blocos que ilustra um exemplo de codificação de vídeo e o sistema de decodificação 10 que podem utilizar as técnicas descritas na presente revelação. Como mostrado na figura 1, o sistema 10 inclui um dispositivo 12 e um dispositivo 14. Em alguns exemplos, o dispositivo 12 e o dispositivo 14 podem ser utilizados para dispositivos de telefonia de vídeo ou vídeo conferência em que o vídeo é codificado e decodificado em “tempo real” (por exemplo, como capturado, codificados, e transmitidos e recebidos, decodificados, e exibidos com muito pouco atraso). Para facilidade de descrição, as técnicas são descritas no que diz respeito à telefonia de vídeo ou de videoconferência, mas as técnicas não são assim limitadas. Em alguns exemplos, as técnicas podem ser utilizáveis para fluxo contínuo ao vivo. As técnicas descritas na atual revelação não necessitam ser limitadas às aplicações em tempo real.
[0038] O dispositivo 12 e o dispositivo 14 podem compreender qualquer um de uma ampla gama de dispositivos, incluindo computadores de mesa, notebook (ou seja, laptop) computadores, tablets, set-top boxes, aparelhos de telefone, como os chamados telefones “inteligentes”, chamados blocos “inteligentes”, televisores, câmeras, dispositivos de exibição, media players digitais, consoles de jogos de vídeo, dispositivos de fluxo contínuo de vídeo, ou algo semelhante. Em alguns casos, o dispositivo 12 e o dispositivo 14 podem ser equipados para comunicações sem fio.
[0039] Para vídeo em tempo real, o dispositivo 12 pode transmitir vídeo que dispositivo 14 decodifica e o dispositivo 14 pode transmitir vídeo que dispositivo 12 decodifica. Neste sentido, em alguns casos, o dispositivo 12 pode funcionar como um dispositivo de origem e como um dispositivo de destino; e o dispositivo 14 pode funcionar como um dispositivo de destino e um dispositivo de origem.
[0040] Por exemplo, o dispositivo 12 é ilustrado como incluindo os componentes, tal como um codificador de vídeo 20A para a transmissão de vídeo e o dispositivo 14 é ilustrado como incluindo componentes tais como decodificador de vídeo 30B para receber dados de vídeo. No entanto, como o dispositivo 12 também pode precisar receber vídeo, o dispositivo 12 pode também incluir o decodificador de vídeo 30A. Além disso, como o dispositivo 14 também pode precisar transmitir vídeo, o dispositivo 14 pode também incluir um codificador de vídeo 20B.
[0041] Para facilidade de descrição, as técnicas são descritas no que diz respeito ao dispositivo 12 transmitindo o vídeo que o dispositivo 14 recebe. No entanto, deve ser entendido que dispositivo 14 também transmite o vídeo, em alguns exemplos, e pode ser configurado, de um modo geral, para transmitir dados para o dispositivo 12.
[0042] Por exemplo, em alguns exemplos, o dispositivo 12 e o dispositivo 14 podem estar em comunicação um com o outro, onde ambos os dispositivos são configurados para transmitir dados para e receber dados a partir um do outro. No aplicativo de vídeo em tempo real, o dispositivo 14 pode precisar transmitir dados (por exemplo, o seu próprio vídeo codificado ou alguns outros dados, informações sobre como esse dispositivo 12 utiliza a codificação de vídeo que dispositivo 14 recebe). Por conseguinte, como ilustrado na figura 1, o dispositivo 14 pode incluir componentes para transmitir dados para o dispositivo 12 (por exemplo, fonte de vídeo 18B, codificador de vídeo 20B, e interface de entrada/saída 22B que transmitem vídeo codificado a partir do codificador de vídeo 20B para o dispositivo 12). Da mesma forma, como ilustrado na figura 1, o dispositivo 12 pode incluir componentes para receber dados a partir do dispositivo 14 (por exemplo, da interface de entrada/saída 22A, decodificador de vídeo 30A, o dispositivo de exibição 31A).
[0043] Em outras palavras, o dispositivo 12 e o dispositivo 14 podem incluir componentes substancialmente semelhantes para permitir a comunicação de duas vias. Por exemplo, fonte de vídeo 18A e a fonte de vídeo 18B podem capturar vídeos respectivos. Codificador de vídeo 20A codifica o vídeo da fonte de vídeo 18 A, e codificador de vídeo 20B codifica o vídeo a partir da fonte de vídeo 18B. A interface de entrada/saída 22A transmite os dados de vídeo do codificador de vídeo 20A através de um link 16 para a interface de entrada/saída 22B, e a interface de entrada/saída 22B transmite os dados de vídeo do codificador de vídeo 20B via link 16 da interface de entrada/saída 22A. A interface de entrada/saída 22B pode transmitir o vídeo para decodificador de vídeo 30B para decodificação de vídeo e, em seguida, para o dispositivo de exibição 31B, a partir do decodificador de vídeo 30B, para exibição. A interface de entrada/saída 22A pode transmitir o vídeo para o decodificador de vídeo 30A para a decodificação de vídeo e, em seguida, para o dispositivo de exibição 31A, a partir de decodificador de vídeo 30A, para exibição.
[0044] Embora os exemplos anteriores de aplicação de vídeo em tempo real encontrem-se descritos no contexto de vídeo telefonia ou videoconferência onde o dispositivo 12 e o dispositivo 14 transmitem, e recebem, o vídeo, as técnicas descritas na presente revelação não são tão limitadas. Em alguns exemplos, o dispositivo 12 pode transmitir dados de vídeo de um evento ao vivo para o dispositivo 14. Neste exemplo, o dispositivo 12 pode não precisar receber vídeo a partir do dispositivo 14 (e não necessitar incluir o decodificador de vídeo 30A ou o dispositivo de exibição 31A); no entanto, as técnicas descritas na presente revelação são aplicáveis a tais exemplos de aplicação de vídeo em tempo real.
[0045] O dispositivo 12 e o dispositivo 14 podem transmitir e receber dados de vídeo codificados para ser descodificados por meio de um link 16. O link 16 pode compreender qualquer tipo de meio ou dispositivo capaz de mover os dados de vídeo codificados entre dispositivo 12 e o dispositivo 14. Num exemplo, o link 16 pode compreender um meio de comunicação para permitir que o dispositivo 12 e um dispositivo 14 transmitam dados de vídeo codificados diretamente um para o outro 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 transmitidos. 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, interruptores, estações de base, ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo 12 para o dispositivo 14. Deste modo, o link 16 funciona como um meio pelo qual o dispositivo 12 e o dispositivo 14 executam comunicação bidirecional.
[0046] Em alguns exemplos aqui descritos, um fluxo de bits de vídeo pode ser comunicado através de um protocolo de duas vias. Por exemplo, protocolos exemplares podem ser baseados em Protocolo Internet (IP), como o Protocolo de Transporte em Real-Time (RTP). Em particular, alguns exemplos incluem mensagens de protocolo adicionais para a RTP e protocolos semelhantes para melhorar a comunicação ao vivo, tal como aqui discutido. RTP é geralmente utilizado para a telefonia de vídeo e videoconferência, bem como para a transmissão de conteúdo ao vivo.
[0047] Por exemplo, na figura 1, o decodificador de vídeo 30A, codificador de vídeo 20A, decodificador de vídeo 30B e codificador de vídeo 20B são ilustrados com setas duplas para as respectivas interfaces de entrada/saída 22A e 22B. Em alguns exemplos, além de receber os dados de vídeo, o decodificador de vídeo 30A pode transmitir informação que é usada pelo codificador de vídeo 20B para codificação de vídeo, e, além de receber dados de vídeo, um decodificador de vídeo 30B pode transmitir informação que é utilizada pelo codificador vídeo 20A para codificação de vídeo. Essa transmissão de informações a partir do decodificador de vídeo 30A para o codificador de vídeo 20B, e do decodificador de vídeo 30B para o codificador de vídeo 20A pode ser em conformidade com RTP (por exemplo, mensagens de protocolo adicionais para a RTP) ou protocolos semelhantes para permitir a transmissão em tempo real de informações a partir de um decodificador vídeo para um codificador vídeo.
[0048] Alternativamente, os dados codificados podem ser emitidos a partir de entrada/saída da interface 22A para um dispositivo de armazenamento 32 para o acesso de entrada/saída da interface 22B. Da mesma forma, os dados codificados podem ser produzidos a partir da interface de entrada/saída 22B para o dispositivo de armazenamento 32 para o acesso de entrada/saída da interface 22A. O dispositivo de armazenamento 32 pode incluir qualquer um de uma variedade de distribuído ou localmente acessada meios de armazenamento de dados, tais como um disco rígido, os discos Blu-ray, 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. Num outro exemplo, o dispositivo de armazenamento 32 pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode conter o vídeo codificado gerado pelo dispositivo 12, ou dispositivo 14, para acesso posterior por outro. O servidor de arquivos pode ser qualquer tipo de servidor capaz de armazenar dados de vídeo codificados e transmitir os dados de vídeo codificados. Servidores de arquivos exemplo incluem um servidor web (por exemplo, para um site), um servidor de FTP, dispositivos de armazenamento ligados à rede (NAS) ou uma unidade de disco local. Dispositivo 12 e o dispositivo 14 podem acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo acesso à Internet. Isto pode incluir um canal sem fios (por exemplo, uma ligação Wi-Fi), uma ligação com fios (por exemplo, DSL, um modem por cabo, etc.), ou uma combinação de ambos, que é adequado para aceder aos dados de vídeo codificados armazenados num servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento 32 pode ser uma transmissão ao vivo, uma transmissão de download, ou uma combinação de ambos.
[0049] As técnicas da presente revelação não são necessariamente limitadas a aplicações ou configurações 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 de 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, streaming de transmissões de vídeo, por exemplo, através da Internet, a codificação do digital vídeo para armazenamento num 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 10 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.
[0050] Em alguns casos, as interfaces de entrada/saída 22A e 22B podem, individualmente, incluir um modulador/demodulador (modem) e/ou de um transmissor. No dispositivo 12 e o dispositivo 14, 18A fonte de vídeo e 18B, respectivamente, pode incluir uma fonte tal como um dispositivo de captura de vídeo (por exemplo, uma câmara de vídeo), um arquivo de vídeo contendo vídeo capturado anteriormente, uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo, e/ou um sistema de computação gráfica para gerar dados de computação gráfica como o vídeo de origem, ou uma combinação de tais fontes. Como um exemplo, se a fonte de vídeo 18A e 18B são câmeras de vídeo, dispositivo 12 e o dispositivo 14 pode formar os chamados telefones com câmera ou telefones de vídeo. No entanto, as técnicas descritas na presente revelação podem ser aplicáveis à codificação de vídeo, em geral, e pode ser aplicado para aplicações sem fio e/ou com fios.
[0051] O vídeo capturado, pré-capturado, ou gerado por computador pode ser codificado pelos respectivos codificadores de vídeo 20A e 20B. Os dados de vídeo codificados podem ser transmitidos diretamente a partir do dispositivo 12 para o dispositivo 14, e vice-versa, pela respectiva/22A interface de saída e de entrada 22B. Os dados de vídeo codificados podem também (ou alternativamente) ser armazenado no dispositivo de armazenamento 32 para um acesso mais tarde para decodificação e/ou reprodução.
[0052] Os dados de vídeo codificados comunicadas através do link 16, ou fornecidos no dispositivo de armazenamento 32, podem incluir uma variedade de elementos de sintaxe gerados por 20A codificador de vídeo para utilização pelo decodificador de vídeo 30B em descodificar os dados de vídeo, e pode incluir uma variedade de sintaxe elementos gerados pelo codificador de vídeo 20B para uso por decodificador de vídeo 30A em decodificar os dados de vídeo. Tais elementos de sintaxe podem ser incluídos com os dados de vídeo codificados transmitidos em um meio de comunicação que sejam armazenados em um meio de armazenamento, ou armazenados num servidor de arquivos.
[0053] Um dispositivo de exibição 31 e 31B pode ser um componente do dispositivo 12 ou dispositivo 14 ou pode ser um componente separado que é externo ao dispositivo 12, ou dispositivo 14. Em alguns exemplos, o dispositivo 12 e o dispositivo 14 podem incluir um visor componente do dispositivo, e pode também ser configurado para fazer a interface com outro dispositivo de exibição externa. Em outros exemplos, o dispositivo 12 e o dispositivo 14 podem eles próprios ser dispositivos de exibição. Em geral, o dispositivo de exibição 31 de A e 3 IB exibir 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 visor de cristal líquido (LCD), uma tela de plasma, um display de diodo emissor de luz orgânica (OLED), ou outro tipo de dispositivo de exibição.
[0054] Os codificadores de vídeo 20a e 20b (coletivamente, “codificadores de vídeo 20”) e decodificador de vídeo 30A e 30B (coletivamente “decodificadores de vídeo 30”) pode operar de acordo com um padrão de compressão de vídeo, como o Vídeo Coding (HEVC) padrão High Efficiency e pode estar de acordo com o modelo de teste HEVC (HM). Além disso, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com as extensões da norma HEVC (referido como padrão Extensão HEVC Range) atualmente em desenvolvimento. Codificadores de vídeo 20 e decodificadores de vídeo 30 pode também operar de acordo com outras normas de propriedade ou da indústria, tais como o padrão ITU-T H.264, alternativamente conhecido como MPEG-4, Parte 10, Advanced Vídeo Coding (AVC) (isto é, H.264/AVC), ou a extensão de tais normas. As técnicas da presente revelação, no entanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de compressão de vídeo incluem o MPEG-2 e ITU-T H.263.
[0055] Embora não mostrado na figura 1, em alguns aspectos, codificadores de vídeo 20 e decodificadores de vídeo 30 podem individualmente ser integrados com um codificador e decodificador de áudio, e pode incluir unidades apropriadas MUX-DEMUX, ou outro hardware e software, para lidar com a codificação de áudio e vídeo em um fluxo de dados comum ou fluxos de dados separados. Se for o caso, em alguns exemplos, as unidades MUX-DEMUX podem estar em conformidade com o protocolo multiplexador ITU H.223, ou outros protocolos, tais como o protocolo de Datagrama de Usuário (UDP).
[0056] Codificadores de vídeo 20 e decodificadores de vídeo 30 individualmente podem ser implementados como qualquer um de uma variedade de circuitos de codificador adequado, tal como um ou mais microprocessadores, processadores de sinais digitais (DSPs), circuitos integrados de aplicação específica de (ASIC), arranjo de portas programáveis no campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer suas combinações. Quando as técnicas são implementadas em software parcialmente, um dispositivo pode armazenar instruções para o software num meio de leitura por computador adequado, não transitório e executar as instruções em hardware utilizando um ou mais processadores para executar as técnicas desta revelação.
[0057] Cada um de codificador de vídeo 20 e decodificadores de vídeo 30 podem ser incluídos em um ou mais codificadores ou decodificadores, qualquer dos quais pode ser integrado como parte de um codificador combinado/decodificador (CODEC) em um respectivo dispositivo. Em alguns exemplos, quando esta divulgação descreve codificadores de vídeo 20 e decodificadores de vídeo 30 Ser parte de um dispositivo, o dispositivo pode ser um circuito integrado (IC) ou um microprocessador (por exemplo, 20A codificador de vídeo e decodificador de vídeo 30A pode ser integrada em conjunto e possivelmente com outros componentes de um circuito integrado ou o microprocessador, e um codificador de vídeo 20B e 30B decodificador de vídeo pode ser integrada em conjunto e, eventualmente, com outros componentes de um circuito integrado ou microprocessador). Em alguns exemplos, o dispositivo pode ser um dispositivo sem fios, tal como um dispositivo de comunicação sem fios como o dispositivo 12 ou 14 de dispositivo.
[0058] O que se segue é uma breve descrição do padrão HEVC para ajudar com a compreensão. No entanto, as técnicas descritas na presente revelação não se limitam ao padrão HEVC, e são aplicáveis a outros padrões, tais como o H.264/AVC, ou aplicável aos não-padrões de codificação vídeo baseado. Para facilidade de descrição, o seguinte é descrita em relação ao codificador de vídeo 20A e 30B decodificador de vídeo. No entanto, codificador de vídeo 20B e decodificador de vídeo 30A pode ser configurado semelhante ao codificador de vídeo 20A e 30B decodificador de vídeo, respectivamente. Em alguns exemplos, pode ser possível para um codificador de vídeo 20A e 20B codificador de vídeo a ser configurado de forma diferente. Por exemplo, 30A decodificador de vídeo e decodificador de vídeo 30B pode ser configurado de forma diferente, mas codificador de vídeo 20A pode gerar dados de vídeo que podem ser decodificados por decodificador de vídeo 30B e codificador de vídeo 20B pode gerar dados de vídeo que podem ser decodificados por decodificador de vídeo 30A. Em outras palavras, um codificador de vídeo 20A e codificador de vídeo 20B pode ser configurado de forma semelhante, e decodificador de vídeo 30A e decodificador de vídeo 30B podem ser configurados de maneira semelhante. No entanto, este não é um requisito, e um codificador de vídeo 20A e 20B codificador de vídeo podem ser configurados de forma diferente, e o decodificador vídeo 30A e decodificador de vídeo 30B podem ser configurados de forma diferente.
[0059] O JCT-VC desenvolveu o padrão HEVC. Os esforços de padronização HEVC são baseados em um modelo de evolução de um dispositivo de codificação de vídeo referido como o modelo de teste HEVC (HM). O HM presume vários recursos adicionais de codificação de vídeo de dispositivos relativo a dispositivos existentes de acordo com, por exemplo, ITU-T H.264/AVC. Por exemplo, enquanto H.264 oferece nove modos de codificação predição intra, a HM pode fornecer até trinta e três modos de codificação predição intra.
[0060] Um esboço recente do padrão HEVC, referido como “HEVC Working Draft 10” ou “WD10”, é descrito no documento JCTVC-L1003v34, Bross et al, “High efficiency video coding (HEVC) text specification draft 10 (for FDIS & Last Call)”, Joint Collaborative Team on Video Coding (JCT- VC) de ITU-T SGI6 WP3 e ISO/IEC JTC1/SC29/WG11, 12th Meeting: Geneva, CH, 14-23 January, 2013, que pode ser baixado a partir de: http://phenix.int-evry.fir/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC- L1003-v34.zip.
[0061] Outro esboço do padrão HEVC, referido aqui como “WD10 revisions” é descrito em Bross et al, “Editors' proposed corrections to HEVC version 1,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI6 WP3 and ISO/IEC JTC1/SC29/WG11, 13th Meeting, Incheon, KR, April 2013, de 7 de junho de 2013, é disponível através da: http://phenix.int- evry.fr/jct/doc_end_user/documents/13_Incheon/wg11/JCTVC- M0432-v3.zip.
[0062] De um modo geral, o modelo de funcionamento da HM descreve que um quadro ou imagem de vídeo pode ser dividido em uma sequência de treeblocks ou maiores unidades de codificação (LCU) que incluem tanto as amostras de luminância e crominância. Um treeblock tem um efeito semelhante ao de um macrobloco da norma H.264. Uma fatia inclui um número de treeblocks consecutivos na ordem de decodificação. Um quadro ou imagem de vídeo pode ser dividido em uma ou mais fatias. Cada treeblock pode ser dividida em unidades de codificação (UCs) de acordo com uma quadtree. Por exemplo, um treeblock, como um nó raiz da quadtree, pode ser dividido em quatro nós filhos, e cada nó filho por sua vez pode ser um nó pai e ser dividido em mais quatro nós filho. Um nó filho definitiva, de uma peça, como um nó de folha da quadtree, compreende um nó de codificação, ou seja,um bloco de vídeo codificado. Sintaxe de dados associados a um fluxo de bits codificados pode definir um número máximo de vezes que um treeblock pode ser dividido, e também pode definir um tamanho mínimo dos nós de codificação.
[0063] Um CU inclui um nó de codificação e unidades de predição (PUs) e unidades de transformada (TUS) associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho de nó de codificação e deve ser de forma quadrada. O tamanho do CU pode variar de 8x8 pixels até o tamanho do treeblock com um máximo de 64x64 pixels ou maiores. Cada CU pode conter um ou mais PUs e uma ou mais TUs. Dados de sintaxe associados a uma CU podem descrever, por exemplo, a divisão da CU em uma ou mais PUs. Modos de divisão podem diferir entre se a CU é codificada no modo direto ou pulada, codificada no modo de predição intra, ou codificada no modo de predição inter. A PU pode ser dividida para ser não-quadrado em forma. Sintaxe de dados associados com uma CU também pode descrever, por exemplo, a divisão da CU em uma ou mais TUs de acordo com um quadtree. Uma TU pode ser de formato quadrado ou não quadrado.
[0064] O padrão HEVC permite transformações de acordo com as TUs, que podem ser diferentes para diferentes UCs. As TUs são tipicamente medidas com base no tamanho da PU dentro de determinada CU definida para uma LCU dividida, embora isso possa não ser sempre o caso. As TUs normalmente são do mesmo tamanho ou menor do que as PUs. Em alguns exemplos, as amostras residuais correspondendo a uma CU podem ser subdivididas em unidades de menores usando uma estrutura quadtree conhecida como “quadtree residual” (RQT). Os nós folha da RQT podem ser referidos como unidades de transformada (TUS). Os valores de diferença de pixel associados com as TUs podem ser transformados para produzir coeficientes de transformada, que podem ser quantificados.
[0065] Em geral, uma PU inclui dados relacionados com o processo de predição. Por exemplo, quando a UP é codificada no modo intra, a PU pode incluir os dados que descrevem um modo de predição intra para a PU. Como outro exemplo, quando a UP é codificada no modo inter, a PU pode incluir dados que definem um vetor de movimento para a PU. Os dados que definem o vetor de movimento para uma PU podem 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, um quarto de precisão de pixel ou um oitavo de precisão de pixel), uma imagem de referência para a qual aponta o vetor de movimento, e/ou uma lista de imagens de referência (por exemplo, lista 0 (RefPicListO), lista 1 (RefPicListl) ou lista C) para o vetor de movimento.
[0066] Em geral, uma TU é utilizada para processos de transformação e de quantização. Uma dada CU tendo uma ou mais PUs pode também incluir uma ou mais TUs. Após predição, o codificador de vídeo 20A pode calcular valores residuais correspondentes a PU. Os valores residuais compreendem valores de diferença de pixels que podem ser transformados em coeficientes de transformada, quantizados, e digitalizados usando as TUs para produzir em série coeficientes de transformada para codificação de entropia. Esta revelação tipicamente usa o termo “bloco de vídeo” para se referir a um nó de codificação de uma CU. Em alguns casos específicos, essa revelação pode também usar o termo “bloco de vídeo” para se referir a um treeblock, ou seja, LCU, ou um CU, que inclui um nó de codificação e PUs e TUs.
[0067] Uma seqüência de vídeo, normalmente inclui uma série de imagens ou imagens de vídeo. Um grupo de imagens (GOP) compreende geralmente uma série de uma ou mais das imagens de vídeo. Um GOP pode incluir dados de sintaxe em um cabeçalho do GOP, um cabeçalho de uma ou mais das imagens, ou em outro lugar, que descreve uma série de imagens incluídas no GOP. Cada fatia de uma imagem pode incluir dados de sintaxe de fatia que descrevem um modo de codificação para a respectiva fatia. O codificador de vídeo 20A normalmente opera em blocos de vídeo dentro fatias de vídeo individuais, na ordem de codificar os dados de vídeo. Um bloco de vídeo pode corresponder a um nó de codificação dentro de uma CU. Os blocos de vídeo podem ter tamanhos fixados ou variados, e podem variar em tamanho de acordo com um padrão de codificação especificada.
[0068] Como um exemplo, o HM suporta predição em vários tamanhos de PU. Assumindo-se que o tamanho de um CU particular é 2Nx2N, o HM suporta predição intra em tamanhos de PU de 2Nx2N ou NxN, e predição inter em tamanhos simétricos PU de 2Nx2N, 2NxN, Nx2N, ou NxN. O HM também suporta divisão assimétrico para predição inter em tamanhos PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Na divisão assimétrica, uma direção de um CU não está dividida, enquanto a outra direção é dividida em 25% e 75%. A parte da CU correspondente à partição de 25% é indicada por um “n” seguido por uma indicação de “acima”, “abaixo”, “esquerda” ou “direita”.Assim, por exemplo, “2NxnU” refere-se a um CU 2Nx2N dividida horizontalmente com um PU 2Nx0.5N na parte superior e um 2Nxl 0,5 N PU na parte inferior.
[0069] Nessa revelação, “NxN” e “N por N” pode ser utilizado indiferentemente para designar as dimensões de pixels de um bloco de vídeo, em termos de dimensões vertical e horizontal, por exemplo, 16x16 pixels ou 16 por 16 pixels. Em geral, um bloco de 16x16 terá 16 pixels em uma direção vertical (Y = 16) e 16 pixels na direção horizontal (x =16). Da mesma forma, um bloco NxN geralmente tem N pixels na direção vertical e N pixels na direção horizontal, onde N representa um valor inteiro não negativo. Os pixels de um bloco podem ser dispostos em filas e colunas. Além disso, os blocos não necessitam, necessariamente, ter o mesmo número de pixels na direção horizontal como na direção vertical. Por exemplo, os blocos podem compreender nxm pixels, em que M não é necessariamente igual a N.
[0070] Após codificação preditiva intra ou preditiva inter usando as PUs de uma CU, codificador de vídeo 20A pode calcular dados residuais para as TUs da CU. A PU pode compreender dados de pixel no domínio espacial (também referido como o domínio do pixel) e as TUs podem compreender coeficientes de transformada no domínio após a aplicação de uma transformação, por exemplo, uma transformação de coseno discreta (DCT), transformada de número inteiro, uma transformada de ondaleta, ou transformada conceitualmente semelhante a dados de vídeo residuais. Os dados residuais podem corresponder a diferenças de pixel entre pixels da imagem e de valores de predição não codificados correspondentes à PU. Codificador de vídeo 20A pode formar as TUs incluindo os dados residuais para a CU, e depois transformar as TUs para produzir coeficientes de transformada para a CU.
[0071] Após quaisquer transformadas para produzir coeficientes de transformada, o codificador de vídeo 20A pode realizar quantização dos coeficientes de transformada. Quantização geralmente refere-se a um processo em que os coeficientes de transformada são quantizados para possivelmente reduzir a quantidade de dados utilizados para representar os coeficientes, proporcionando a compactação adicional. O processo de quantização pode reduzir a profundidade do bit associado com alguns ou todos os coeficientes. Por exemplo, um valor de n bits pode ser arredondado para um valor de m bits durante quantização, onde n é maior do que m.
[0072] Em alguns exemplos, o codificador de vídeo 20A pode utilizar uma ordem de verificação predefinida para digitalizar os coeficientes de transformada quantificados para produzir um vetor serializado que pode ser codificado por entropia. Em outros exemplos, codificador de vídeo 20A pode realizar uma varredura adaptativa. Depois de digitalizar coeficientes de transformada quantificados para formar um vetor unidimensional, codificador de vídeo 20A pode codificar por entropia o vetor unidimensional, por exemplo, de acordo com a codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseada em sintaxe (SBAC), codificação por Entropia de divisão de Intervalo de Probabilidade (PIPE) ou outra metodologia de codificação por entropia. Codificador de vídeo 20 pode também entropia elementos de sintaxe codificar associados aos dados de vídeo codificados para uso por decodificador de vídeo 30 em decodificar os dados de vídeo.
[0073] Para executar CABAC, o codificador de vídeo 20A pode atribuir um contexto dentro de um modelo de contexto para um símbolo a ser transmitido. O contexto pode referir-se, por exemplo, se os valores vizinhos do símbolo são diferentes de zero ou não. Para executar CAVLC, codificador de vídeo 20A pode selecionar um código de comprimento variável de um símbolo a ser transmitido. Palavras de código em VLC podem ser construídas de tal forma que os códigos relativamente curtos correspondem a símbolos mais prováveis, enquanto os códigos não correspondem aos símbolos menos prováveis. Deste modo, o uso de VLC pode conseguir uma poupança de mais de bit, por exemplo, usando as palavras de código de comprimento igual para cada símbolo a ser transmitido. A determinação de probabilidade pode ser baseada em um contexto atribuído ao símbolo.
[0074] A figura 2 é um diagrama de blocos ilustrando um codificador 20A exemplo de vídeo que podem implementar as técnicas descritas na presente revelação. Como descrito acima, o codificador vídeo 20B pode ser semelhante ao codificador de vídeo 20A; No entanto, as técnicas descritas na presente revelação não são tão limitadas. Codificador de vídeo 20A pode realizar intra e codificação inter de blocos de vídeo em fatias de vídeo. A codificação intra se baseia em predição espacial para reduzir ou remover a redundância espacial em vídeo dentro de uma determinada imagem de vídeo ou imagem. Codificação inter baseia-se em predição temporal para reduzir ou remover a redundância temporal em vídeo dentro de imagens adjacentes ou imagens de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um de vários modos de codificação de base espacial. Os modos inter, tal como predição unidirecional (modo P) ou predição bidirecional (modo B), pode se referir a qualquer um dos vários modos de codificação de base temporal.
[0075] No exemplo da figura 2, codificador de vídeo 20A inclui uma memória de dados de vídeo 39, unidade de processamento de predição 41, armazenador temporário de imagem decodificada (DPB) 64, somador 50, unidade de processamento de transformada 52, a unidade de quantização 54 e unidade de codificação de entropia 56. A unidade de processamento de predição 41 inclui a unidade de estimative de movimento 42, a unidade de compensação de movimento 44, e unidade de processamento de predição intra 46. Para a reconstrução bloco de vídeo, codificador de vídeo 20A também inclui a unidade de quantização inversa 58, unidade de processamento de transformada inversa 60, e somador 62. Um filtro de desblocagem (não mostrado na figura 3) também pode ser incluído para filtrar os limites de bloco para remover artefatos de blocagem do vídeo reconstruído. Se for o caso,o filtro de desblocagem que tipicamente filtra a saída do somador 62. Filtros de loop adicionais (em loop ou pós-loop) também podem ser usados em adição ao filtro de desblocagem.
[0076] Como mostrado na figura 2, vídeo memória de dados 39 recebe dados de vídeo que é usado para codificar um bloco de vídeo atual dentro de uma imagem de vídeo. Vídeo memória de dados 39 podem armazenar os dados de vídeo a serem codificados pelos componentes de codificador de vídeo 20A (por exemplo, configurado para armazenar dados de vídeo) ou de dados de vídeo da loja que está a ser utilizado para a codificação de imagens de vídeo. Por exemplo, a memória de dados de vídeo 39 pode armazenar conjuntos de parâmetros para cada imagem que codificador de vídeo codifica 20A (por exemplo, armazenar informações indicando imagens que poderiam ter sido usadas para predizer inter as respectivas imagens). De acordo com as técnicas descritas na presente revelação, os dados de vídeo da memória 39 pode também armazenar informação, recebida a partir do decodificador vídeo 30B, a identificação de uma imagem previamente decodificada pelo decodificador de vídeo 30B. Por exemplo, o codificador de vídeo 20A pode ser configurado para predizer inter uma corrente imagem com base em uma ou mais de uma imagem identificada pelo decodificador de vídeo 30B, imagens que poderiam ter sido utilizados para predizer inter a imagem identificada pelo decodificador de vídeo 30B, ou imagens que podem ser usadas para predizer inter as imagens que poderiam ter sido utilizadas para predizer inter a imagem identificada por decodificador de vídeo 30B. Em geral, se o codificador de vídeo 20A seleciona imagens de tal grupo de determinadas imagens, há uma grande chance de que as imagens selecionadas estão disponíveis para decodificação por decodificador de vídeo 30B.
[0077] Em alguns exemplos, os dados de video armazenados na memória de dados de vídeo 39 podem ser obtidos, por exemplo, a partir de fonte de vídeo 18 A. DPB 64 armazena dados de referência de vídeo para utilização na codificação de dados de vídeo por vídeo do codificador 20A (por exemplo, em modos de codificação intra ou de codificação inter). A memória de dados de vídeo 39 e do DPB 64 pode ser formada por qualquer um de uma variedade de dispositivos de memória, tais como a memória dinâmica de acesso aleatório (DRAM), incluindo DRAM síncrona (SDRAM), RAM magneto (MRAM), RAM resistiva (RRAM), ou outra tipos de dispositivos de memória. A memória de dados de vídeo 39 e DPB 64 podem ser fornecidas pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, memória de dados de vídeo 39 pode ser em chip com outros componentes de um codificador de vídeo 20A, ou fora do chip em relação a esses componentes.
[0078] Como mostrado na figura 2, o codificador de vídeo 20 recebe dados de vídeo e a unidade de divisão 35 divide os dados em blocos de vídeo. Essa partição pode também incluir divisão em fatias, blocos de pixels, ou outras unidades de maiores dimensões, assim como divisão de bloco de vídeo, por exemplo, de acordo com uma estrutura de quadtree de fontes de luz e CU. Codificador de vídeo 20A, geralmente ilustra os componentes que codificam os blocos de vídeo dentro de uma fatia de vídeo a ser codificada. A fatia pode ser dividida em vários blocos de vídeo (e, possivelmente, em conjuntos de blocos de vídeo referidos como ladrilhos). 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 ou uma de uma pluralidade de modos de codificação inter, para o bloco de vídeo atual, com base em resultados de erro (por exemplo, a taxa de codificação e o nível de distorção).
[0079] A unidade de processamento de predição 41 pode ser configurada para implementar as técnicas da presente revelação para a realização de predição inter baseada na imagem de referência identificada pelo decodificador de vídeo 30B. A unidade de processamento de predição 41 pode proporcionar o bloco codificado intra ou inter resultante ao somador 50 para gerar dados de bloco residual e ao somador 62 para reconstruir o bloco codificado para ser utilizado como um a imagem de referência.
[0080] A unidade de processamento de predição intra 46 dentro da unidade de processamento de predição 41 pode executar a codificação de predição intra do bloco de vídeo corrente em relação a um ou mais blocos vizinhos na mesma imagem ou fatia como o bloco atual a ser codificado para fornecer compactaçã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 preditiva inter 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.
[0081] A unidade de estimativa de movimento 42 pode ser configurada para determinar o modo de predição inter para uma fatia de vídeo de acordo com um padrão predeterminado para uma sequência de vídeo. O padrão predeterminado pode designar fatias de vídeo na sequência como fatias P, fatias B ou fatias GPB. A unidade de estimativa de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas separadamente com propósitos conceptuais. A estimativa de movimento, realizada pela unidade de estimativa de movimento 42, é o processo de gerar vetores de movimento, que estimam o movimento para os blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro da imagem de vídeo ou imagem atual em relação a um bloco preditivo dentro de uma imagem de referência.
[0082] Um bloco preditivo é um bloco que combina estreitamente com a PU do bloco de vídeo a ser codificado, em termos de diferença de pixel, o que pode ser determinado pela soma da diferença absoluta (SAD), soma da diferença ao quadrado (SSD), ou outra métrica de diferença. Em alguns exemplos, o codificador de vídeo 20A pode calcular valores para posições de pixel de número sub-inteiro de imagens de referência armazenadas na memória de imagem de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de um quarto de pixel, posições de um oitavo de pixel, ou outras posições fracionárias de pixel da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel integral e posições fracionárias de pixel e produzir um vetor de movimento, com exatidão fracionária de pixel.
[0083] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia codificada inter, mediante comparação da posição da PU em relação à posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagens de referência (RefPicListO) ou de uma segunda lista de imagens de referência (RefPicListl), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de imagens de referência 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e unidade de compensação de movimento 44.
[0084] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver e buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela estimativa de movimento, possivelmente realizando interpolações para exatidão de subpixel. Ao receber o vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual aponta o vetor de movimento em uma das listas de imagem de referência. O codificador de vídeo 20A forma um bloco de vídeo residual mediante subtração de valores de pixel do bloco preditivo a partir dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel. Os valores de diferença de pixel formam dados residuais para o bloco, e podem incluir componentes de diferença luma e componentes de diferença croma. O somador 50 representa o componente ou os componentes que formam essa operação de subtração. A unidade de compensação de movimento 44 também pode gerar elementos de sintaxe 55 associados com os blocos de vídeo e a fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0085] A unidade de processamento de predição intra 46 pode predizer intra um bloco atual, como uma alternativa para a predição inter realizada pela unidade de estimativa de movimento 42 e da unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de processamento de predição intra 46 pode determinar um modo de predição intra a ser usado para codificar um bloco atual. Em alguns exemplos, a unidade de processamento de predição intra 46 pode codificar um bloco corrente utilizando diversos modos de predição intra, por exemplo, durante passagens separadas da codificação, e unidade de processamento de predição intra 46 (ou unidade de processamento de predição 41, em alguns exemplos) podem selecionar um modo de predição intra adequado a ser usado a partir dos meios testados. Por exemplo, a unidade de processamento de predição intra 46 pode calcular os valores de taxa de distorção, utilizando uma análise da taxa de distorção para os vários modos de predição intra testados, e selecionar o modo predição intra tendo as melhores características de taxa de distorção entre os modos testados. A análise da taxa de distorção determina geralmente uma quantidade de distorção (ou de erro) entre um bloco codificado e um bloco original, não codificado que tenha sido codificado para produzir o bloco codificado, bem como uma taxa de bits (isto é, um número de bits) usados para produzir o bloco codificado. A unidade de processamento de predição intra 46 pode calcular as razões das distorções e taxas para os vários blocos codificados para determinar qual o modo de predição intra apresenta o melhor valor da taxa de distorção para o bloco.
[0086] Em qualquer caso, depois de selecionar um modo de predição intra para um bloco, unidade de processamento de predição intra 46 pode proporcionar informação indicativa do modo predição intra selecionado para o bloco de entropia unidade de codificação 56. A unidade de codificação de entropia 56 pode codificar a informação que indica o modo de predição intra selecionado de acordo com as técnicas desta revelação. O codificador de vídeo 20A pode incluir nos dados transmitidos configuração de fluxo de bits, que pode incluir uma pluralidade tabelas de índice do modo de predição intra e uma pluralidade de tabelas de índice do modo de predição intra modificadas (também referidas como tabelas de mapeamento como palavras de código), as definições de contextos de codificação para vários blocos, e as indicações de um modo de predição intra mais provável, uma tabela de índice de modo de predição intra, e uma tabela de índice de modo de predição intra modificada para usar para cada um dos contextos.
[0087] Após a unidade de processamento de predição 41 gerar o bloco preditivo para o bloco de vídeo atual por intermédio de predição inter ou de predição intra, o codificador de vídeo 20 forma um bloco de vídeo residual mediante subtração do bloco preditivo a partir do bloco de vídeo atual. Os dados de vídeo residuais no bloco residual podem ser incluídos em uma ou mais TUs e aplicados ao módulo de transformada 52. A unidade de processamento de transformada 52 transforma os dados de vídeo residuais em coeficientes de transformada residual utilizando uma transformada, tal como uma transformada discreta de cosseno (DCT) ou uma transformada similar na forma conceptual. A unidade de processamento de transformada 52 pode converter os dados de vídeo residuais a partir de um domínio de pixel para um domínio de transformada, tal como um domínio de frequência.
[0088] A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização 54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bits. O processo de quantização pode reduzir a profundidade de bits associada a alguns ou a todos os coeficientes. O grau de quantização pode ser modificado mediante ajuste de um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode então realizar uma varredura da matriz incluindo os coeficientes de transformada, quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0089] Após a quantização, a unidade de codificação de entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável de contexto adaptativo (CAVLC), codificação aritmética binária de contexto adaptativo (CABAC), codificação aritmética binária de contexto adaptativo baseado em sintaxe (SBAC), codificação de entropia de divisão de intervalo de probabilidade (PIPE) ou outra metodologia ou técnica de codificação de entropia. Após a codificação por entropia por intermédio da unidade de codificação por entropia 56, o fluxo de bits codificado pode ser transmitido para o decodificador de vídeo 30, ou arquivado para posterior transmissão ou recuperação pelo decodificador de vídeo 30. A unidade de codificação por entropia 56 também pode codificar por entropia os vetores de movimento e os outros elementos de sintaxe para a fatia de vídeo atual sendo codificada.
[0090] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para posterior uso como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência mediante adição do bloco residual a um bloco preditivo de uma das imagens de um armazenamento de imagem de referência na memória 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel de sub-inteiro para uso em estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento no meio de armazenamento de imagem de referência da memória 64 (algumas vezes chamado de armazenador temporário de imagem decodificada (DPB)). O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para codificação inter de um bloco em uma imagem de vídeo subsequente.
[0091] Como descrito em mais detalhe abaixo, um codificador de vídeo 20 pode ser configurado para receber informação, a partir do decodificador vídeo 30B, indicativo de referência para descodificar imagens disponíveis no decodificador de vídeo 30B. o codificador de vídeo 20A pode predição inter codificar uma imagem atual com base em uma ou mais das imagens de referência disponíveis para descodificar em 30B decodificador de vídeo. Em alguns exemplos, codificador de vídeo 20A pode receber informação indicativa de imagens de referência disponíveis para descodificar a decodificador de vídeo 30B se ocorreu um erro na reconstrução de uma imagem de referência por 30B decodificador de vídeo. Em alguns exemplos, para receber informação indicativa de referência para descodificar imagens disponíveis no decodificador de vídeo 30B, 20A codificador vídeo pode receber informações de identificação de uma imagem identificado numa imagem de referência definido. Vídeo 20A codificador pode ser configurado para determinar imagens de referência incluída na imagem de referência definido como as imagens de referência disponíveis para descodificar em 30B decodificador de vídeo.
[0092] Desse modo, o codificador de vídeo 20A, pode ser configurado para receber, a partir do dispositivo 14, que inclui decodificador de vídeo 30B, informação identificando uma imagem previamente decodificada que é armazenado em DPB 92 (figura 3) do decodificador de vídeo 30B no momento decodificador de vídeo 30B transmitiu a informação. Codificador de vídeo 20A pode determinar uma ou mais imagens de referência candidato que estão disponíveis para a codificação de uma imagem atual com base na imagem identificada. As imagens de referência um ou mais candidatas incluir uma ou mais imagens que foram anteriormente determinadas como sendo utilizável para a codificação de um ou mais de a imagem ou imagens identificado predição inter seguindo a imagem identificada, a fim de codificação (por exemplo, com base no conjunto de parâmetros para a imagem identificada incluindo um ou mais dos subconjuntos de imagem de referência que formam uma referência de imagem definida), e que ainda estão armazenados no DPB 64 de 20A codificador de vídeo. Codificador de vídeo 20A (por exemplo, através da unidade de processamento de predição 41) pode selecionar uma ou mais imagens de referência para a imagem atual das determinadas uma ou mais imagens de referência candidatas e a imagem identificada.
[0093] Codificador de vídeo 20A pode predição inter codificar a imagem atual com base em uma ou mais imagens selecionadas de referência. Por exemplo, codificador de vídeo 20A pode selecionar uma imagem a partir das imagens de referência candidatas determinadas e a imagem identificada, e predizer de modo unidirecional para predição inter a imagem atual. Em alguns exemplos, codificador de vídeo 20A pode selecionar duas imagens para a imagem atual das determinadas imagens de referência candidato e a imagem identificada, e bi-predição codificar a imagem atual (por exemplo, usar duas imagens de referência, um de cada lista de imagem de referência, a predição inter codificar a imagem atual).
[0094] Em alguns casos, o codificador de video 20A pode determinar se a imagem identificada é disponível para codificar a imagem atual (por exemplo, armazenado em DPB 64). O codificador de vídeo 20A pode codificar em predição intra, em vez de codificação de predição inter, a imagem atual com base na determinação de que a imagem identificada não está disponível para codificar a imagem atual.
[0095] Codificador de vídeo 20A também podem ainda receber informações de identificação uma imagem perdida. Codificador de vídeo 20A pode excluir a imagem perdida de as determinadas uma ou mais imagens de referência candidatas.
[0096] A figura 3 é um diagrama de blocos que ilustra um decodificador 30B exemplar de vídeo que pode implementar as técnicas descritas na presente revelação. Como descrito acima, decodificador de vídeo 30A pode ser semelhante ao decodificador de vídeo 30B; No entanto, as técnicas descritas na presente revelação não são assim limitadas. No exemplo da figura 3, o decodificador de vídeo 30B inclui uma entropia unidade de decodificação 80, unidade de processamento de predição 81, inversa unidade de quantização 86, unidade de transformação inversa 88, somador 90, e armazenador temporário de imagem decodificada (DPB) 92. Predição unidade de processamento 81 inclui a unidade de compensação de movimento 82 e unidade de processamento de predição intra 84. O decodificador de vídeo 30B pode, em alguns exemplos, execute um passe de decodificação geralmente recíproco para a passagem de codificação descrita em relação ao codificador de vídeo 20A da figura 2.
[0097] No exemplo da figura 3, vídeo memória de dados 79 recebe vídeo codificado. Vídeo memória de dados 79 podem armazenar os dados de vídeo (por exemplo, configurado para armazenar dados de vídeo), tal como um fluxo de bits de vídeo codificado, para ser descodificado por os componentes do decodificador de vídeo 30B. Os dados de vídeo de memória 79 pode também armazenar dados de vídeo que é utilizado pelo decodificador de vídeo de componentes 30B para descodificar os dados de vídeo e reconstruir uma imagem.
[0098] Os dados de vídeo armazenados na memória de dados de vídeo 79 podem ser obtidos a partir de uma fonte de vídeo local, como uma câmera, através de comunicação em rede com ou sem fio de dados de vídeo, ou acessando meios de armazenamento de dados físico. Vídeo memória de dados 79 podem formar um armazenador temporário de imagem codificada (CEC) que armazena os dados codificados de vídeo a partir de um fluxo de bits de vídeo codificado.
[0099] O DPB 92 é um exemplo de memória que armazena dados de referência de vídeo para utilização na decodificação de dados de vídeo pelo decodificador de vídeo 30B (por exemplo, no modo de codificação intra, e modo de codificação inter). A memória de dados de vídeo 79 e do DPB 92 pode ser formado por qualquer um de uma variedade de dispositivos de memória, tais como a memória dinâmica de acesso aleatório (DRAM), incluindo DRAM síncrona (SDRAM), RAM magneto (MRAM), RAM resistiva (RRAM), ou outra tipos de dispositivos de memória. A memória de dados de vídeo 79 e o DPB 92 podem ser fornecidos pelo mesmo dispositivo de memória ou dispositivos de memória separados. Em vários exemplos, memória de dados de vídeo 79 pode ser em chip com outros componentes de 30B decodificador de vídeo, ou fora do chip em relação a esses componentes.
[0100] Durante o processo de decodificação, decodificador de vídeo 30B 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 associados de 20A codificador de vídeo. Entropia unidade 80 de entropia decodificador de vídeo 30B decodificação decodifica 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. O decodificador de vídeo 30B pode receber os elementos de sintaxe no nível da fatia de vídeo e/ou o nível de bloqueio de vídeo.
[0101] Quando a fatia de vídeo é codificada como uma fatia (I) codificada intra, a unidade de processamento de predição intra 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 de predição intra sinalizado e dados de blocos previamente descodificados do quadro ou imagem atual. A unidade de processamento de predição 81 pode ser configurada para implementar as técnicas da presente revelação para indicar qual a imagem de referência deve ser utilizado para a predição inter, tais como quando uma imagem de referência não é recebida. Quando a imagem de vídeo é codificada como uma unidade (ou seja, B ou P) fatia, de compensação entre codificada 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 outros elementos de sintaxe recebidos a partir da unidade de decodificação de entropia 80. Os blocos preditivos podem ser produzidos a partir de uma das imagens de referência dentro de uma das listas de imagem de referência. Decodificador de vídeo 30B pode construir as listas de imagem de referência, RefPicListO e RefPicListl, usando técnicas de construção padrão com base em imagens de referência armazenados no DPB 92.
[0102] A unidade de compensação de movimento 82 determina informação de predição para um bloco de vídeo da fatia atual de vídeo analisando os vetores de movimento e outros elementos de sintaxe e usa a informação de predição para produzir os blocos de preditivos para o bloco de vídeo atual sendo decodificada. Por exemplo, a unidade de compensação de movimento 82 usa alguns elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, intra ou predição inter) usado para código enumera os blocos de vídeo de vídeo fatia, fatia de predição inter tipo (por exemplo, B fatia, fatia de P ou fatia GPB), informação de construção para um ou mais da imagem de referência para a fatia, vetores para cada bloco de vídeo inter codificado da fatia de movimento, status de predição inter para cada bloco de vídeo codificado inter da fatia e outra informação para decodificar os blocos de vídeo na fatia de vídeo atual.
[0103] A unidade de compensação de movimento 82 também pode realizar a interpolação com base em filtros de interpolação. Unidade de compensação de movimento 82 pode usar filtros de interpolação como usado pelo codificador de vídeo 20A durante a codificação dos blocos de vídeo para calcular valores interpolados para pixels de integridade secundária de blocos de referência. Neste caso, a unidade de compensação de movimento 82 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20A dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos de preditivos.
[0104] A unidade de quantização inversa 86 quantiza inversamente, por exemplo, quantifica inversamente os coeficientes de transformada quantizados fornecida no fluxo de bits e decodificado pela unidade de decodificação de entropia 80. O processo de quantização inversa pode incluir o uso de um parâmetro de quantização calculado pelo decodificador de vídeo 20A para cada bloco de vídeo em fatia de vídeo para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa que deve ser aplicado. A transformada inversa unidade de processamento 88 aplica uma transformação inversa, por exemplo, uma transformada discreta de cosseno, inversa, transformar um inteiro inverso, ou um inverso semelhante de forma conceptual processo de transformação, para os coeficientes de transformada, a fim de produzir blocos residuais no domínio do pixel.
[0105] Após a unidade de compensação de movimento 82 gerar o bloco preditivo para o bloco de vídeo atual baseado nos vetores de movimento e outros elementos de sintaxe, o decodificador de vídeo 30B forma um bloco de vídeo decodificado somando os blocos residuais de unidade de transformação inversa 88 com os blocos preditivos correspondentes gerados pela unidade de compensação de movimento 82. O somador 90 representa o componente ou os componentes que executam essa operação de soma. Se desejado, um filtro desblocagem também pode ser aplicado para filtrar os blocos decodificados para remover artefatos de bloqueio. Outros filtros de loop (ou no loop de codificação ou após o loop de codificação) também podem ser usados para suavizar as transições de pixel, ou outra forma de melhorar a qualidade de vídeo. Os blocos de vídeo decodificados em uma determinada imagem ou imagens são então armazenados em DPB 92, que armazena imagens de referência utilizadas para compensação de movimento subseqüente. DPB 92 também armazena vídeo decodificado para posterior apresentação em um dispositivo de exibição, como dispositivo de visualização de 31B da figura 1.
[0106] Vídeo 20A codificador, decodificador de vídeo 30B, codificador de vídeo 20B e 30A decodificador de vídeo podem ser configurados para implementar as técnicas descritas nesta revelação. Mais uma vez, para facilidade de descrição, as técnicas são descritas em relação ao codificador de vídeo 20A e vídeo decodificador 30B, e codificador de vídeo 20B e decodificador de vídeo 30A pode ser configurado para implementar técnicas similares. No entanto, as técnicas não devem ser consideradas limitadas a exigir vídeo 20B codificador e decodificador de vídeo 30A para executar as mesmas técnicas como as do codificador de vídeo 20 e um decodificador de vídeo 30B.
[0107] Por exemplo, as técnicas descritas acima são descritos em relação a um codificador em um lado emissor e um decodificador de um lado receptor. Codificador de vídeo 20A pode ser um exemplo de tal codificador no lado do remetente, e decodificador de vídeo 30B pode ser um exemplo de tal decodificador no lado do receptor. Em alguns exemplos, decodificador de vídeo 30B pode ser configurado para emitir a mensagem de resposta de imagem de referência indicação seleção definido (RPSSI) (por exemplo, como parte de uma mensagem de RTP). A partir da mensagem de feedback RPSSI, vídeo 20A codificador pode ser configurado para determinar qual referência imagens estão disponíveis no DPB 92 de decodificador de vídeo 30B e pode codificar uma imagem com base em uma das imagens conhecidas para a DPB 92 de 30B decodificador de vídeo.
[0108] Como descrito acima, as técnicas descritas na presente revelação podem ser relacionadas com aplicações de vídeo em tempo real. Para aplicações de vídeo em tempo real sob melhores condições de rede esforço, mensagens de feedback são importantes para informar o remetente (por exemplo, codificador de vídeo 20A ou dispositivo 12 que inclui um codificador de vídeo 20A), o que aconteceu no receptor (por exemplo, 30B decodificador de vídeo ou dispositivo 14, que inclui o decodificador de vídeo 30B). Deve ser entendido que na telefonia de vídeo ou videoconferência, pode ser o dispositivo remetente 12 ou dispositivo receptor 14. Para facilitar a descrição, esta divulgação descreve o dispositivo 12 como sendo o emissor e o dispositivo 14 como sendo o receptor, com o entendimento de que o dispositivo 14 pode também funcionar como o remetente, e o dispositivo 12 pode funcionar como o receptor.
[0109] Por exemplo, em casos em que decodificador de vídeo 30B não receber uma imagem a partir do fluxo de bits sinalizado por 20A codificador de vídeo, pode ser benéfico para 30B decodificador de vídeo para transmitir uma mensagem de resposta para informar codificador de vídeo 20A que há uma imagem dispensada. Para o HEVC codec existente, quando uma das imagens de referência é perdida por decodificador de vídeo 30B, decodificador de vídeo 30B pode usar a indicação de referência de seleção de imagens (RPSI) e mensagens específicas Perda Imagem Indicação (SPLI), que são definidos em “RTP Payload Format High Efficiency Video Coding “por Wang et al. da Rede Grupo de Trabalho, datada de 06 de setembro de 2013, para informar vídeo 20A codificador que as imagens são perdidas.
[0110] As informações sobre a carga útil RTP formato para High Efficiency Vídeo Coding podem ser encontrados, a partir de 02 de dezembro de 2013, a partir http://tools.ietf.org/html/draft-ietf- payload-rtp-h265-01. Por exemplo, a informação relativa à carga formato RTP descreve que o formato RTP carga permite o empacotamento de unidades de uma ou mais camadas de abstração de rede (NAL) em cada pacote RTP carga, bem como a fragmentação de uma unidade NAL em vários pacotes RTP. Além disso, a carga útil formato RTP suporta a transmissão de um fluxo HEVC ao longo de um único, bem como fluxos múltiplos RTP. A carga útil formato tem ampla aplicabilidade em videoconferência, fluxo contínuo de vídeo na Internet, e taxa de bits de vídeo de entretenimento de alta qualidade, entre outros.
[0111] Pode haver várias maneiras em que decodificador de vídeo 30B pode determinar se houve uma imagem perdida. Como um exemplo, decodificador de vídeo 30B pode receber elementos de sintaxe no fluxo de bits codificados que instruem decodificador de vídeo 30B para utilizar a imagem dispensada como uma imagem de referência para a decodificação. Neste caso, um decodificador de vídeo 30B determina que a imagem que está sendo utilizada como imagem de referência não é armazenada no DPB 92 do decodificador de vídeo 30B porque a imagem foi dispensada, e decodificador de vídeo 30B determina que uma imagem foi dispensada no fluxo de bits. Pode haver outras causas para por decodificador de vídeo 30B determina que uma imagem foi perdida e outras maneiras pelas quais decodificador de vídeo 30B determina que uma imagem foi perdida. As técnicas descritas na presente revelação não se limitam a qualquer forma particular no qual o decodificador vídeo de 30B determina se uma imagem estava perdida.
[0112] A descrição seguinte explica a funcionalidade de mensagens RPSI para o contexto para a compreensão das técnicas descritas na presente revelação. As mensagens SPLI são descritas adicionalmente abaixo.
[0113] Para RPSI, quando um erro acontece, decodificador de vídeo 30B escolhe uma imagem de referência anterior corretamente decodificada da DPB 92, e solicita que o codificador de vídeo 20A usar essa imagem, tipicamente uma imagem de referência a longo prazo, para referência quando se codifica a imagem seguinte (ou seja, a imagem atual que está sendo codificado). Se essa imagem de referência especificada ainda existisse em DPB 64 de codificador de vídeo 20A, codificador de vídeo 20A pode codificar a próxima imagem com esta referência para parar a propagação de erro.
[0114] Em RPSI, o decodificador de vídeo 30B pode especificar a imagem de referência utilizada para codificação. No entanto, informações que indiquem exatamente todas as imagens que são armazenadas em DPB 92 do codificador de vídeo 20A não estar disponíveis para 30B decodificador de vídeo. Em vez disso, as informações que o decodificador de vídeo 30B pode usar para determinar as imagens armazenadas na DPB 64 do codificador de vídeo 20A no momento em que o decodificador de vídeo 30B transmitiu a informação especificando que a imagem de referência pode ser imprecisa e obsoleta.
[0115] Assim, em alguns exemplos, decodificador de vídeo 30B pode resultar na especificação de uma imagem de referência, que um codificador de vídeo 20A deve utilizar para a predição inter, que um codificador de vídeo 20A já removido do DPB 64. Neste caso, o codificador de vídeo 20A pode não ser capaz de usar a imagem identificada que decodificador de vídeo 30B identificado coma imagem de referência para codificar uma vez que a imagem identificada foi removida do DPB 64. Em alguns exemplos, se a imagem identificada é não DPB em 64 de 20A codificador de vídeo, em seguida, um codificador de vídeo 20A codifica uma imagem atual como Intra Random Access Point (IRAP) para parar o erro. No entanto, codifica a imagem atual como IRAP pode ser dispendiosa em termos de eficiência de codificação.
[0116] Para reduzir o problema que decodificador de vídeo 30B identifica uma imagem para ser utilizada coma imagem de referência que não é armazenado no DPB 64 de codificador de vídeo 20A, em alguns exemplos, codificador de vídeo 20A e 30B decodificador de vídeo pode negociar usar longo termo de referência (LTR) imagens (por exemplo, por algum tipo de comunicação entre 20A codificador de vídeo e vídeo 30B decodificador), que serão mantidos por mais tempo, tanto DPB 64 de codificador de vídeo 20A e DPB 92 de decodificador de vídeo 30B. Em alguns exemplos, em vez de negociar o uso de LTR imagens, vídeo decodificador 30B pode ser pré-configurado para identificar uma imagem de LTR como a imagem de referência, que um codificador de vídeo 20A é usar. Em qualquer exemplo, decodificador de vídeo 30B pode especificar uma imagem LTR que está atualmente armazenado em DPB 92 de decodificador de vídeo 30B como a imagem que está a ser usado para codificar a imagem atual para ser codificado por 20A codificador de vídeo. No entanto, contando com LTR imagens podem impactar negativamente a eficiência de codificação, pois pode haver correlação temporal mais baixa desde que as imagens LTR podem ser ainda mais na distância temporal com a imagem atual a ser codificado, em comparação com outras imagens (por exemplo, imagens de referência de curto prazo). Em outras palavras, em alguns casos (embora não seja uma exigência), imagens de referência a longo prazo tendem a ser armazenadas por um longo período de tempo em DPB 64 e DPB 92, em comparação com imagens de curto prazo de referência, e, por conseguinte, pode ser ainda mais em distância temporal com a imagem em curso em relação a uma imagem de referência de curto prazo.
[0117] Pode haver outros problemas com as técnicas existentes do RPSI. Por exemplo, mesmo se decodificador de vídeo 30B não identifica uma imagem LTR e faz identificar uma imagem que está em DPB 64 de codificador de vídeo 20A, em algumas outras técnicas, codificador de vídeo 20A é necessário para usar a imagem identificada por decodificador de vídeo 30B para predizer inter a imagem em curso (isto é, a imagem que está prestes a ser codificada). O codificador de vídeo 20A utiliza a imagem identificada, supondo que ele está em DPB 64 de 20A codificador de vídeo, porque é garantido que a imagem identificada exista no DPB 92 de decodificador de vídeo 30B desde que o decodificador de vídeo 30B tenha selecionado a imagem do DPB 92. No entanto, há podem ser outros do que a imagem que o decodificador de vídeo 30B identificou que sejam mais adequadas para predição inter da imagem atual. Além disso, sendo limitado a usar apenas a imagem identificada por decodificador de vídeo 30B faz com que o codificador de vídeo 20A utilize predição única uma vez que predição dupla utiliza duas imagens. Isto afeta negativamente ainda mais a eficiência de codificação inter preditiva.
[0118] As técnicas descritas na presente revelação podem abordar um ou mais dos problemas descritos acima com o RPSI. Por exemplo, nas técnicas descritas nesta revelação, decodificador de vídeo 30B pode identificar a informação de saída uma imagem previamente decodificada em DPB 92; no entanto, codificador de vídeo 20A não pode ser limitado a usar apenas a imagem identificada para predição inter a imagem atual.
[0119] Em vez disso, codificador de vídeo 20A pode determinar uma ou mais imagens que estão disponíveis em ambos os DPB 64 de codificador de vídeo 20A e DPB 92 de decodificador de vídeo 30B a partir da imagem identificada. O codificador de vídeo 20A pode selecionar uma ou mais das imagens determinadas e, potencialmente, a imagem identificada, assim, para a predição inter a imagem atual.Desta forma, o vídeo 20A codificador pode ser configurado para selecionar a partir de um grande conjunto de imagens, que não seja apenas uma imagem, e determinar quais as imagens fornecerem codificação melhor eficiência e selecionar as imagens para a predição inter a imagem atual.
[0120] Além disso, o codificador de vídeo 20A pode ser configurado para determinar imagens que estão disponíveis nas respectivas DPBS (por exemplo, DPB 64 e DPB 92) do codificador de vídeo 20A e decodificador de vídeo 30B com a sinalização mínima de decodificador de vídeo 30B. Por exemplo, com a sinalização apenas algumas imagens (por exemplo, uma ou algumas poucas imagens), vídeo 20A codificador pode ser configurado para determinar mais imagens (por exemplo, uma pluralidade de imagens) que estão disponíveis em ambos os DPB 64 de codificador de vídeo 20A e DPB 92 de 30B decodificador de vídeo. Para fins de ilustração, esta divulgação descreve decodificador de vídeo 30B identificação de uma imagem, mas a divulgação não deve ser considerada de modo limitativo.
[0121] Nas técnicas descritas nesta revelação, codificador de vídeo 20A pode tomar uma decisão ótima para a recuperação de erro (por exemplo, para o exemplo do caso em que há uma imagem dispensada) uma vez codificador de vídeo 20A determina as imagens de referência no DPB 92 de decodificador de vídeo 30B. Por exemplo, decodificador de vídeo 30B deve informar codificador de vídeo 20A de todas as imagens de referência em DPB 92 de 30B decodificador de vídeo. Em alguns exemplos, codificador de vídeo 20A pode determinar as imagens exatas de referência em DPB 92 de 30B decodificador de vídeo e pode determinar um modo de recuperação de erro (por exemplo, quais imagens usar para predição inter da imagem atual) com base nas imagens determinados referência em DPB 92 de 30B decodificador de vídeo.
[0122] Para codificador de vídeo 20A para determinar as imagens exatas de referência em DPB 92 de decodificador de vídeo 30B, decodificador de vídeo 30B pode sinalizar todas as imagens de referência em DPB 92 de decodificador de vídeo 30B para codificador de vídeo 20A. No entanto, essa sinalização pode largura de banda ser ineficiente, e, nas técnicas descritas nesta revelação, um decodificador de vídeo 30B pode sinalizar uma imagem a partir da qual codificador de vídeo 20A pode determinar uma pluralidade de imagens que estão disponíveis para a codificação ou decodificação da imagem atual.
[0123] Um exemplo forma como codificador de vídeo 20A pode determinar qual imagem armazenada no DPB 64 também é armazenado no DPB 92 de decodificador de vídeo 30B está usando os subconjuntos de imagem de referência definidos na norma HEVC. As imagens armazenadas na DPB 64 de codificador de vídeo 20A, que também são determinadas para ser armazenadas em DPB 92 de decodificador de vídeo 30B são referidas como imagens disponíveis para codificação de vídeo ou decodificação de vídeo. Mais uma vez, deve entender-se que as imagens determinadas para estar disponível para codificação de vídeo ou de decodificação não necessita de incluir todas as imagens nas respectivas DPBS. Em vez disso, o codificador de vídeo 20A pode implementar certos procedimentos para determinar quais as imagens são armazenadas no DPBS de ambos, codificador de vídeo 20A e 30B decodificador de vídeo (por exemplo, tanto DPB 64 e DPB 92).
[0124] O padrão HEVC define cinco subconjuntos de imagem de referência que juntos formam um conjunto de imagem de referência. No padrão HEVC, codificador de vídeo 20A e decodificador de vídeo 30B podem, individualmente construir os subconjuntos de imagem de referência para cada imagem. Por exemplo, para a codificação ou decodificação de uma unidade de imagem, processamento de predição 41 do codificador de vídeo 20A e processamento predição unidade 81 do decodificador de vídeo 30B pode construir listas de imagem de referência (por exemplo, RefPicListO e RefPicListl) com base nos subconjuntos de imagem de referência construídos para essa imagem, e codificar predição inter ou decodificar esse imagem com base nas listas de imagem de referência construídos.
[0125] Os subconjuntos e conjuntos de imagem de referência, para o padrão HEVC, são descritos em mais detalhes em série H: AUDIOVISUAL E MULTIMIDIA SYSTEMS, Infra- estrutura de serviços audiovisuais - Codificação de vídeo em movimento de codificação de vídeo de alta eficiência Recomendação ITU-T H.265, datada de 04 de abril de 2013 e aqui referida como “High Efficiency Video Coding, Rec. ITU- T H.265 e ISO/IEC 23008-2”, e pode ser encontrado a partir http://www.itu.int/rec /T-REC-H.265-201304-I.
[0126] Por exemplo, para a codificação ou decodificação de uma imagem particular, 20A codificador de vídeo e decodificador de vídeo 30B podem construir os cinco subconjuntos imagem de referência, que incluem: RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetStFoU, RefPicSetLtCurr e RefPicSetLtFoU. RefPicSetStCurrBefore, RefPicSetStCurrAfter RefPicSetLtCurr e incluem todas as imagens que podem ser utilizados para descodificar a imagem particular. Em alguns exemplos, RefPicSetStCurrBefore quaisquer imagens de referência pode incluir imagens que são determinados a ser exibido antes que a imagem especial referência de curto prazo, e RefPicSetStCurrAfter quaisquer imagens de referência podem incluir imagens que estão determinados a ser exibida após a imagem de referência específico de curto prazo. RefPicSetLtCurr podem incluir quaisquer imagens de longo prazo de referência. RefPicSetStFoU e RefPicSetLtFoU incluir quaisquer imagens de referência que não são utilizados para a codificação ou decodificação da imagem em particular, mas podem ser utilizados para as imagens que seguem a imagem em particular, a fim de decodificação. RefPicSetStFoU podem incluir quaisquer imagens de referência determinados para serem imagens de curto prazo de referência, e pode incluir quaisquer imagens de referência RefPicSetLtFoU determinados a serem imagens de longo prazo de referência. Em alguns exemplos, as imagens nos conjuntos podem ser exclusivas (por exemplo, uma imagem de um dos conjuntos pode não estar em qualquer outro conjunto).
[0127] Em alguns exemplos, a construção dos cinco conjuntos pode ser expressa. Por exemplo, a mera existência de uma imagem no DPB não deve ser considerada como uma imagem de referência que pertence a um dos cinco conjuntos. Em vez disso, uma imagem identificada em um desses conjuntos é uma imagem especificamente determinada como uma imagem que pode ser utilizado para a codificação ou decodificação da imagem em particular e as imagens seguintes da imagem em particular, a fim de decodificação, ou apenas as imagens seguintes da imagem em particular, a fim de decodificação.
[0128] Em alguns exemplos, codificador de video 20A e 30B decodificador de vídeo podem construir lista (s) de imagem de referência com base na imagem de referência definido. Índices na lista (s) imagem de referência pode identificar a imagem (ns) de referência usada para predizer inter codificar ou predizer inter decodificar a imagem particular para o qual 20A codificador de vídeo e decodificador de vídeo de 30B construiu a imagem de referência definido. Assim, imagens de referência nos cinco exemplos de subconjuntos são especificamente determinados para serem imagens que pertencem a esses subconjuntos, porque é a partir dessas imagens que as listas de imagem de referência são formadas.
[0129] Uma imagem determinada como sendo uma imagem de referência de curto prazo ou uma imagem de referência de longo prazo não significa que tal imagem pertence em um dos subconjuntos de imagem exemplo de referência. Mais uma vez, os subconjuntos de imagem de referência incluir imagens especificamente determinadas para pertencer a esses subconjuntos imagem de referência, que especifica características quanto à sua usabilidade para codificação predição inter ou decodificar a imagem em particular e/ou imagens após a imagem em particular, a fim de decodificação.
[0130] Em alguns exemplos, as técnicas descritas na presente revelação utilizam os subconjuntos de imagem de referência para determinar qual armazenado no DPB 64 de codificador de vídeo 20A também são armazenados em DPB 92 do decodificador de vídeo 30B. Como descrito acima, na mensagem RPSI, decodificador de vídeo 30B transmitir informações de identificação uma imagem, e codificador de vídeo 20A é necessário para usar a imagem identificada para predição inter a imagem atual, assumindo a imagem identificada é armazenado em DPB 64 de codificador de vídeo 20A no codificador de vídeo em tempo 20A é predição inter a imagem atual. Para evitar confusão, presente revelação utiliza a mensagem de feedback termo referência da imagem Conjunto Indicação Seleção (RPSSI), para indicar que está 20A codificador de vídeo, utilizando as técnicas descritas na presente revelação, que são separados do RPSI. No entanto, o uso do termo “RPSSI” é meramente para evitar confusão. Pode ser possível para redefinir o termo “RPSI” para incluir as técnicas descritas na presente revelação.
[0131] Em alguns exemplos, codificador de vídeo 20A pode receber informações de identificação uma imagem de 30B decodificador de vídeo. O codificador de vídeo 20A pode determinar quais as imagens em uma ou mais sub-imagem de referência para a imagem identificada ainda estão armazenados no DPB 64. Por exemplo, codificador de vídeo 20A pode armazenar informações indicando os subconjuntos de imagem de referência construídos para cada imagem que codificador de vídeo 20A codifica. Codificador de vídeo 20A pode recuperar a informação indicando as imagens que poderiam ter sido usados para predizer inter a imagem identificada a partir da informação armazenada, e determinar quais as imagens que poderiam ter sido usados para predizer inter a imagem identificada ainda estão armazenados no DPB 64.
[0132] De um modo geral, se uma imagem, que podem ter sido usadas para predizer inter a imagem e as imagens identificadas de acordo com a imagem identificada, a fim de codificação, é ainda armazenada em DPB 64 de 20A codificador de vídeo, há uma probabilidade muito elevada (praticamente garantido) que a imagem também será armazenada em DPB 92 de decodificador de vídeo 30B. Tal como utilizado na presente revelação, uma imagem que poderia ter sido usado para predizer inter a imagem identificada e imagens após a imagem identificada, a fim de codificação, uma imagem que poderia ter sido uma imagem de referência para a imagem e as imagens identificada de acordo com a imagem identificada em fim codificação. Além disso, uma imagem que poderia ter sido usado para predizer inter a imagem identificada e as imagens após a imagem identificada, a fim de codificação inclui quaisquer imagens que foram realmente utilizados para predizer inter a imagem identificada.
[0133] Em alguns exemplos, o decodificador de vídeo 30B pode apagar uma imagem do DPB 92 somente após codificador de vídeo 20A limpa a imagem do DPB 64. Portanto, se codificador de vídeo 20A não limpar uma imagem que poderia ter sido uma imagem de referência para a imagem identificada (por exemplo, usado para predizer inter a imagem identificado), então há uma probabilidade muito alta de que decodificador de vídeo 30B não claro que a imagem de DPB 92.
[0134] Deve ser entendido que não há nenhuma garantia de que os DPBS de vídeo 20A codificador e decodificador de vídeo 30B ser exatamente o mesmo (por exemplo, as imagens armazenadas na DPB 64 e DPB 92 necessidade de ser exatamente o mesmo conjunto de imagens). No entanto, se uma imagem que poderia ter sido usado para predizer inter a imagem identificada é armazenado em DPB 64 de 20A codificador de vídeo, em seguida, que a imagem existe no DPB 92 de decodificador de vídeo 30B, mesmo se não houver imagens na DPB 64 de codificador de vídeo 20A, que não estão em DPB 92 de decodificador de vídeo 30B e mesmo se não houver imagem no DPB 92 de decodificador de vídeo 30B que não estão no DPB 64 de 20A codificador de vídeo.
[0135] Uma forma que codificador de vídeo 20A determina quais as imagens podem ter sido usadas para predizer inter a imagem identificado é através dos subconjuntos imagem de referência para a imagem identificada. Por exemplo, codificador de vídeo 20A pode determinar se as imagens na RefPicSetStCurrBefore, RefPicSetStCurrAfter, RefPicSetLtCurr, RefPicSetLtFoll e RefPicSetStFoll subconjuntos imagem de referência para a imagem identificada ainda estão disponíveis no DPB 64 de codificador de vídeo 20A (por exemplo, com base na informação armazenada da imagem identificada durante o tempo do codificador de vídeo codificado 20A a imagem identificada). Como descrito acima, os subconjuntos RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr incluir imagens que poderiam ter sido usados para predizer inter a imagem identificada e as imagens após a imagem identificada, a fim de codificação. Os subconjuntos RefPicSetLtFoll e RefPicSetStFoll incluem imagem que poderia ter sido usado para prever inter-imagens após a imagem identificada, a fim de codificação, mas não a imagem identificada.
[0136] As imagens em um ou mais dos subconjuntos de imagem de referência para a imagem identificada que é armazenada em DPB 64 de codificador de vídeo 20A são referidas como imagem disponível para a codificação (ou de referência candidato imagens). Em alguns exemplos, um codificador de vídeo 20A pode determinar imagens que se encontram em qualquer um dos subconjuntos imagem de referência para a imagem identificada como imagens de referência, candidatas que podem ser usadas para predizer inter a imagem em curso (isto é, que estão disponíveis para predizer inter a corrente imagem ou estão disponíveis como imagens de referência para a imagem atual). Em alguns exemplos, codificador de vídeo 20A pode ainda determinar as imagens que estão em qualquer um dos subconjuntos imagem de referência para as imagens nas imagens de referência subconjuntos da imagem identificados que são armazenados em DPB 64 de 20A codificador de vídeo.
[0137] Em alguns exemplos, o codificador vídeo pode determinar 20A imagens que são apenas em um dos RefPicSetStCurrBefore, RefPicSetStCurrAfter, e subconjuntos RefPicSetLtCurr da imagem identificado como imagens de referência candidatas que disponível para predição inter a imagem atual (ou seja, que está disponível como imagens de referência para a imagem atual). Por exemplo, em alguns exemplos, devido à extração de sub-fluxo de bits que podem ocorrer antes do decodificador de vídeo 30B receber o fluxo de bits, as imagens no subconjunto RefPicSetStFoll e RefPicSetLtFoll (isto é, imagens que não poderiam ter sido utilizados para predizer inter as imagens identificados, e apenas as imagens seguintes da imagem identificada) pode ser removido a partir do fluxo de bits.
[0138] Neste caso especial, a DPB 64 de codificador de vídeo 20A pode incluir imagens da imagem de referência fixado da imagem identificada que não estão disponíveis no DPB 92 de decodificador de vídeo 30B. Porque codificador de vídeo 20A pode não ser capaz de determinar se a extração sub-fluxo de bits é ativada, para evitar problemas, onde imagens de referência não estão disponíveis, codificador de vídeo 20A pode determinar imagens que podem ser usados para predizer inter a imagem identificada, e não apenas imagens seguindo a imagem identificada, como imagens de referência candidato que podem ser usados para prever o inter-imagem atual. Mais uma vez, RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr subconjuntos da imagem identificada incluir imagens que poderiam ter sido usados para predizer inter a imagem identificada e, portanto, codificador de vídeo 20A pode determinar imagens que estão disponíveis para predição inter da imagem atual somente a partir de imagens no RefPicSetStCurrBefore, RefPicSetStCurrAfter e RefPicSetLtCurr subconjuntos da imagem identificados que ainda estão disponíveis no DPB 64 de 20A codificador de vídeo.
[0139] Em alguns exemplos, o codificador vídeo pode determinar 20A imagens que estão nos subconjuntos de curto prazo de imagem de referência, que poderiam ter sido utilizados para prever o inter-imagem identificada (ou seja, RefPicSetStCurrBefore e RefPicSetStCurrAfter). Isso pode ser porque a correlação temporal de imagens de longo prazo de referência é relativamente pobre, e para reduzir o tempo de processamento, pode haver pouco ou nenhum benefício em ter codificador de vídeo 20A avaliar imagens de longo prazo de referência para fins de predição inter.
[0140] Para reduzir ainda mais o tempo de processamento, em alguns exemplos, codificador de vídeo 20A pode determinar imagens que são imagens de curto prazo de referência que poderiam ter sido utilizados para predizer inter a imagem identificada que é exibida mais cedo do que a imagem identificada (ou seja, imagens no subconjunto RefPicSetStCurrBefore) como imagens de referência candidato que pode ser utilizado para prever o inter-imagem atual. Como outro exemplo, codificador de vídeo 20A pode determinar imagens que são imagens de curto prazo de referência que poderiam ter sido usados para predizer inter a imagem identificou que são exibidos após a imagem identificada (ou seja, as imagens no subconjunto RefPicSetStCurrFoll) como imagens de referência candidato que pode ser usada para prever entre a imagem atual.
[0141] Depois de codificador de vídeo 20A determina qual as imagens estão disponíveis para predição inter a imagem atual com base em imagens de referência candidato que poderiam ter sido usados para predizer inter a imagem identificada e as imagens após a imagem identificada, codificador de vídeo 20A pode selecionar um ou mais das determinadas imagens para predizer inter a imagem atual. Em adição às imagens que poderiam ter sido utilizados para predizer inter a imagem identificada, a imagem de vídeo identificado pelo decodificador 3 de OB também é uma imagem de referência candidato que pode ser utilizado para prever o inter-imagem atual. O codificador de vídeo 20A pode incluir as imagens usadas para predizer inter a imagem atual na imagem de referência fixado (RPS) da imagem atual, e construir listas de imagem de referência, que incluem as imagens selecionadas e predizer inter codificar a imagem atual com base no construída lista de imagens de referência.
[0142] Uma vez que as imagens selecionadas estão no RPS da imagem atual, decodificador de vídeo 30B pode igualmente construir listas de imagens de referência que são idênticas as construídas pelo codificador de vídeo 20A e, portanto, incluir as imagens selecionadas nas listas de imagem de referência. Decodificador de vídeo 30B pode então predição inter decodificar a imagem atual com base nas listas de imagem de referência.
[0143] Em alguns exemplos, decodificador de vídeo 30B pode identificar uma imagem que não é armazenado em DPB 64 de 20A codificador de vídeo. Por exemplo, codificador de vídeo 20A podem já ter liberado a imagem identificados, antes do vídeo decodificador 30B descarregou a imagem identificada. Nos exemplos onde DPB 64 de codificador de vídeo 20A não armazenam a imagem identificada, codificador de vídeo 20A pode predizer intra a imagem atual como um (intra-atualizar acesso aleatória imagem ponto) IRAP.
[0144] Em alguns exemplos, mesmo que a imagem que o decodificador de vídeo 30B identificou esteja disponível no DPB 64 do codificador de vídeo 20A, o codificador de vídeo 20A pode ainda predizer intra a imagem atual. Por exemplo, se a eficiência de codificação é mais pobre (ou não melhor) utilizando uma ou mais das imagens de referência candidatas a predizer inter a imagem atual do que intra-predizer a imagem atual, codificador de vídeo 20A pode predizer intra a imagem atual, possivelmente como um IAPR.
[0145] Assim, nas técnicas descritas nesta revelação, decodificador de vídeo 30B pode informar codificador de vídeo 20A através de um identificador único para uma imagem, a fim de descrever o conjunto preferido de imagens disponíveis de referência no DPB 92 de decodificador de vídeo 30B que pode ser usado por codificador de vídeo 20A para determinar disponíveis imagens de referência, tanto em codificador de vídeo 20A e decodificador vídeo 30B (por exemplo, determinar imagens de referência disponíveis armazenadas no DPB 64 e DPB 92). O identificador único (por exemplo, a informação de identificação de uma imagem) pode compreender uma contagem de ordem de imagem de valor (POC) da imagem. Por exemplo, cada imagem pode ser associada com um valor POC exclusivo que identifica a ordem na qual a imagem é exibida ou transmitida. Uma imagem com um valor POC menor é apresentada ou emitida mais cedo do que uma imagem com um valor POC maior. O valor POC é apenas um exemplo de um identificador exclusivo usado por decodificador de vídeo 30B para identificar a imagem, e outras formas de identificar a imagem pode ser possível.
[0146] Deste modo, os comuns de referência imagens disponíveis, tanto codificador de vídeo 20A e vídeo decodificador 30B pode ser usado para estabelecer referência comum entre 20A codificador de vídeo e decodificador de vídeo 30B (ou seja, uma vez codificador de vídeo 20A determina imagens que estão disponíveis em DPB 64 de codificador de vídeo 20A e no DPB 92 de decodificador de vídeo 30B, codificador de vídeo 20A pode determinar quais imagens para usar para predição inter a imagem atual). Em alguns exemplos, as imagens de referência associado com um identificador de imagem (ou seja, de imagem identificada) são descritos como todas as imagens disponíveis de referência depois da decodificação da imagem cujo identificador é enviado (isto é, todas as imagens que poderiam ter sido utilizados para predizer inter a identificada imagem imagens e seguindo a imagem identificada, a fim de codificação).
[0147] Em alguns exemplos, o indicador pode indicar todas as imagens disponíveis de referência antes de descodificar a imagem indicado (isto é, as imagens no subconjunto RefPicSetStCurrBefore da imagem identificada), ou imagens depois descodificar a imagem indicada (ou seja, imagens no subconjunto RefPicSetStCurrAfter da imagem identificada). Uma vez codificador de vídeo 20A estabelece o estado DPB de DPB 92 de decodificador de vídeo 30B com as imagens associadas de referência no lado do decodificador de vídeo 30B (receptor), codificador de vídeo 20A pode fazer uma escolha de referências para o estabelecimento de um conjunto comum de referência. Como alternativa o codificador de vídeo 20A pode enviar uma imagem IRAP (por exemplo, uma imagem predita intra, tal como uma imagem de ponto de acesso aleatório de atualização intra).
[0148] Como descrito acima, o codificador de vídeo 20A pode também evitar se referir às imagens RefPicSetStFoll e RefPicSetLtFoll nas imagens sinalizadas de referência, uma vez que estas imagens podem não estar disponíveis no lado do receptor (por exemplo, decodificador de vídeo 30B), devido à eventual extração sub-fluxo de bits realizada no fluxo de bits originais. Em alguns exemplos, um dispositivo intermediário tal como o elemento de rede de acesso de mídia (MANE) pode realizar a extração de sub-fluxo de bits no qual as imagens que podem ser usadas somente para predizer inter as imagens após a imagem atual, a fim de decodificação são extraídas.
[0149] Como também descrito acima, o indicador (isto é, a informação de identificação da imagem) pode ser o PicOrderCntVal (valor POC) especificado na especificação HEVC (“High Efficiency de codificação de vídeo, Rec. ITU-T H.265 e ISO/IEC 23008-2”) (32-bit valor assinado) ou algo que é equivalente a identificar unicamente o valor POC da imagem. Além do PicOrderCntVal, o nuh ID de camada, conforme especificado no HEVC spec, pode ser um sinal para fluxos de bits de multicamada semelhante aos do RPSI atual, sintaxe SPLI no projeto de especificação de carga útil HEVC RTP (ou seja, “RTP Payload Format for High Efficiency Video Coding”).
[0150] Assim, em um ou mais exemplos, codificador de vídeo 20A pode receber, a partir do dispositivo 14, que inclui o decodificador de vídeo 30B, informações de identificação uma imagem anteriormente descodificado que é armazenado no DPB 64 de decodificador de vídeo 30B no momento decodificador de vídeo 30B transmitiu o em formação. O codificador de vídeo 20A pode determinar uma ou mais imagens de referência candidato que estão disponíveis para a codificação de uma imagem atual com base na imagem identificada. As imagens de referência um ou mais candidatas incluir uma ou mais imagens que foram previamente determinados para ser utilizável para predição inter de codificação de um ou mais da imagem identificado ou imagens após a imagem identificada, a fim de codificação, e que ainda estão armazenadas na DPB 64 de 20A codificador de vídeo no momento de codificar a imagem atual. O codificador de vídeo 20A pode selecionar uma ou mais imagens de referência para a imagem atual das determinadas uma ou mais imagens de referência candidatas e a imagem identificada. Codificador de vídeo 20A pode predição inter codificar a imagem atual com base em uma ou mais imagens selecionadas de referência.
[0151] A uma ou mais imagens que foram previamente determinam a serem utilizados para a codificação de um ou mais de uma ou mais imagens identificados predição inter seguir a imagem identificada na codificação fim de incluir imagens de um ou mais subconjuntos de imagem de referência que codificador de vídeo 20A construiu durante a codificação da imagem identificada. Mais uma vez, a imagem identificada é uma imagem anteriormente descodificada por decodificador de vídeo 30B, o que significa que codificador de vídeo 20A codificada a imagem identificada antes de codificar a imagem atual.
[0152] Uma vez que as técnicas descritas nesta revelação permitir codificador de vídeo 20A para determinar uma pluralidade de imagens de referência candidato, codificador de vídeo 20A pode bi-predição codificar a imagem atual com base em duas imagens de as imagens selecionadas de referência. Essa codificação bi-predição pode permitir opções predição inter adicionais que de outra forma seriam indisponíveis se 20A codificador de vídeo foi limitado a apenas usando a imagem identificada para predição inter.
[0153] Para decodificação, decodificador de vídeo de saída 30B Maio, para o dispositivo 12, que inclui codificador de vídeo 20A, informações de identificação uma imagem previamente decodificada armazenada em DPB 92 de decodificador de vídeo 30B no momento da saída da informação. O decodificador de vídeo 30B pode decodificar com predição inter uma imagem atual com uma ou mais imagens de referência candidatas. A uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram determinados previamente, por codificador de vídeo 20A, para ser utilizável para codificar com predição inter a imagem identificada. Em alguns exemplos, decodificador de vídeo 30B pode determinar que uma imagem fosse perdida (por exemplo, decodificador de vídeo 30B não recebeu informações para adequadamente ou totalmente reconstruir a imagem perdida). O decodificador de vídeo 30B pode ser configurado para informação de saída com base na determinação de que a imagem foi dispensada. Além disso, como codificador de vídeo 20A pode ser capaz de bi-predição codificar a imagem atual a partir de duas imagens, decodificador de vídeo 30B pode ser configurado para bi-predição decodificar a imagem atual, baseado em duas imagens de as imagens de referência candidato.
[0154] O decodificador de vídeo 30B pode comunicar as informações de identificação uma imagem previamente decodificada armazenada em DPB 92 de decodificador de vídeo 30B no momento da saída das informações através da link 16. Em alguns exemplos, decodificador de vídeo 30B pode comunicar as informações através do link de comunicação ou protocolo utilizado para comunicar o fluxo de bits de vídeo a partir de 20A codificador de vídeo para o vídeo 30B decodificador (por exemplo, um protocolo de sinalização bidirecional, incluindo uma RTP). Por exemplo, as informações podem ser comunicadas a partir de decodificador de vídeo 30B para codificador de vídeo 20A através de um mecanismo novo ou existente a sinalização ou a mensagem.
[0155] Em alguns exemplos, as técnicas de introduzir uma mensagem de feedback Referência de Imagem Definir seleção Indicação (RPSSI), que em alguns exemplos comunica as informações de identificação de imagens previamente decodificados armazenados na DPB 92 de decodificador de vídeo 30B a 20A codificador de vídeo. Em um exemplo, descrito em mais detalhe a seguir a mensagem RPSSI é sinalizada como parte de uma sessão de protocolo RTP que comunica o fluxo de bits de vídeo codificado. Por exemplo, a mensagem de resposta RPSSI pode substituir a mensagem RPSI, pode ser utilizado em conjunto com a mensagem RPSI para diferenciar quando a utilização de técnicas e técnicas existentes descritas nesta revelação, ou a mensagem RPSI podem ser modificadas para indicar que as técnicas descritas na presente divulgação devem ser implementadas. Para facilidade de descrição, o seguinte descreve a mensagem como a mensagem de resposta RPSSI, mas isto é meramente para facilitar a compreensão e não devem ser considerado limitador ou limitada ao exemplo específico descrito a seguir.
[0156] A mensagem de feedback RPSSI pode ser identificada pela PT = PSFB e FMT = 9. Pode haver um RPSSI (e, em alguns exemplos, deve ser exatamente um RPSSI) contido no campo FCI. A tabela 1 abaixo ilustra um exemplo do formato do RPSSI.TABELA 1. O formato PCI do RPSSI
[0157] No exemplo da Tabela 1, PB é de 8 bits. PB pode definir o número de bits não utilizados necessários para preencher o comprimento da mensagem RPSSI a um múltiplo de 32 bits. Na Tabela 1, 0 é 1 bit. Esse bit pode ser definido para zero (por exemplo, deve ser ajustado para zero) durante a transmissão e pode ser ignorado durante a recepção. Na Tabela 1, Tipo de Carga é 7 bits. Tipo de carga útil pode indicar o tipo de carga útil RTP no âmbito do qual a sequência de bits RPSSI pode (por exemplo, deve) ser interpretada. Na Tabela 1, a sequência de bits NATIVE RPSSI é de comprimento variável. Native RPSSI pode indicar as informações SPLI como nativamente definido pelo codec de vídeo. Na Tabela 1, o preenchimento pode ser de bits #PB. Um número de bits configurado para zero para encher o conteúdo da mensagem RPSSI para o próximo limite de 32 bits. O número de bits de preenchimento pode (por exemplo, devem) ser indicado pelo campo PB.
[0158] Em alguns exemplos, as mesmas regras de temporização como para a mensagem RPSI, tal como definido no [RFC4585], aplicam-se para a mensagem RPSSI. O campo de “cadeia de bits nativo RPSSI definido por codec” pode ser uma base de 16 [RFC4648] representação de 8 bits que consistem de 2 bits mais significativos igual a 0 e 6 bits de Noé ID de camada, tal como definido na HEVC, seguido de 32 bits representando o valor da PicOrderCntVal, tal como definido na HEVC, para a imagem que está indicado para sinalizar a presença de imagens disponíveis de referência do lado do receptor.
[0159] Embora as técnicas exemplares acima sejam descritas em relação com o padrão HEVC, as técnicas descritas na presente revelação não são necessariamente assim limitadas. Por exemplo, as técnicas podem ser usadas com outros codecs, tais como o codec compatível com H.264/AVC como poços como outros padrões de compressão de vídeo ou até mesmo técnicas de compressão de vídeo proprietárias. O seguinte descreve um exemplo forma em que as técnicas podem ser usadas com o codec H.264/AVC.
[0160] Em qualquer um dos exemplos de técnicas, uma vantagem pode ser que ao sinalizar um único identificador de imagem, um conjunto de imagem de referência completa que consiste em vários imagens/imagens pode ser sinalizado. Em outras palavras, decodificador de vídeo 3 sinais de OB informações de identificação a algumas imagens (por exemplo, uma imagem) e, a partir dessa informação, codificador de vídeo 20A pode determinar uma mais imagens (por exemplo, uma pluralidade de imagens) que podem ser usados para predizer inter a imagem atual. Isto permite a utilização de banda eficiente, decodificador de vídeo 30B, promovendo ao mesmo tempo a eficiência de codificação de vídeo por 20A codificador de vídeo.
[0161] Em algumas técnicas de vídeo, exceto técnicas de vídeo, de acordo com HEVC, codificador de vídeo 20A não pode ser pré-configurado para determinar e manter uma lista de imagens que poderiam ser usados para predizer inter uma imagem e as imagens após a imagem no a ordem de codificação. Por exemplo, se 20A codificador de vídeo foram configurados com base na norma H.264/AVC, em seguida, um codificador de vídeo 20A pode ser configurado para determinar imagens que poderiam ter sido utilizadas para predizer inter a imagem identificada (por exemplo, como parte do processo implementado previamente do codificador de vídeo 20A quando codifica a imagem identificada), mas não pode ser configurado para manter uma lista de imagens que poderiam ter sido usadas para predizer inter a imagem identificada pelo decodificador de vídeo 30B. Por exemplo, depois que codifica a imagem identificada, codificador de vídeo 20A pode descartar informações que indiquem quais as imagens podem ter sido usadas para predizer inter a imagem identificada. Em outras palavras, 20A codificador de vídeo, configurado de acordo com o H.264/AVC, não pode construir subconjuntos de imagem de referência na forma de codificador de vídeo 20A teria se configurado de acordo com HEVC.
[0162] Para os exemplos onde codificador de vídeo 20A não está configurado de acordo com HEVC, o codificador de vídeo 20A pode ser configurado para (por exemplo, projetado para, neste caso) manter a lista de imagens para cada imagem que poderia ter usado para predizer inter uma imagem, tal como na memória de codificador de vídeo 20A, de modo a que a informação está disponível para a imagem identificada. Deste modo, mesmo para um codificador de vídeo 20 é configurado de acordo com o H.264/AVC, pode ser possível para um codificador de vídeo 20A para implementar as técnicas exemplares descrito na presente revelação.
[0163] Da mesma forma, alguns exemplos de um decodificador de vídeo que estão configurados de acordo com H.264/AVC pode não suportar a saída de informações de identificação uma imagem anteriormente decodificado. Para esses exemplos, decodificador de vídeo 30B pode ser especificamente configurado para suportar a saída de informação de identificação de uma imagem previamente decodificada para aplicar as técnicas exemplares descrito na presente revelação.
[0164] A descrição anterior descrita exemplo técnicas em que codificador de vídeo 20A pode determinar uma pluralidade de imagens de referência candidato que estará disponível para descodificar por decodificador de vídeo 30B para a predição inter que codifica uma imagem atual com base nas informações emitidas pelo decodificador de vídeo 30B. No entanto, esta divulgação não se limita ao exemplo técnicas acima. O que se segue descreve algumas técnicas exemplares adicionais que podem ser utilizadas em conjunto com os exemplos de técnicas acima ou separadas a partir das técnicas exemplares acima.
[0165] Em alguns exemplos, para cada imagem de referência perdida no lado do decodificador (por exemplo, para cada imagem que o decodificador de vídeo 30B perde), o decodificador de vídeo 30B envia um identificador exclusivo da imagem (por exemplo, imagem, não atendidas), tal como seu valor POC de codificador de vídeo 20A como uma mensagem de SPLI (a mensagem SPLI é descrita em mais detalhe abaixo). Além disso, (por exemplo, adicionalmente), o decodificador de vídeo 30B pode enviar um identificador exclusivo da imagem que decodificador de vídeo 30B está atualmente a decodificação de codificador de vídeo de 20A. A imagem que o decodificador de vídeo 30B está atualmente a decodificação é uma imagem que codificador de vídeo 20A previamente codificado. Com o identificador do vídeo de imagem do decodificador 30B foi decodificação no momento decodificador de vídeo 30B transmitido as informações de identificação da imagem, 20A codificador de vídeo pode determinar quais as imagens de referência devem ser armazenados em DPB 92 de 30B decodificador de vídeo.
[0166] Por exemplo, como descrito acima, como parte de decodificar uma imagem, decodificador de vídeo 30B constrói os subconjuntos de imagem de referência para a imagem, e constrói as listas de imagem de referência para que a imagem dos subconjuntos de imagem de referência. Neste exemplo, o codificador de vídeo 20A recebe a informação da imagem que o decodificador de vídeo 30B foi decodificação no momento decodificador de vídeo 30B transmitiu a informação, e determina os subconjuntos de imagem de referência (ou, mais genericamente, o conjunto de parâmetros para cobrir H.264/AVC) para determinar quais as imagens estão disponíveis em DPB 92 de 30B decodificador de vídeo. Além disso, o codificador de vídeo 20A pode determinar que a imagem que o decodificador de vídeo 30B indicado como sendo perdidas não está na DPB 92 de 30B decodificador de vídeo. Portanto, exceto para as imagens de referência perdidas relatadas a partir do decodificador de vídeo 30B, as imagens restantes de referência devem todas existir em DPB 92 de decodificador de vídeo 30B. Em geral, como apenas algumas imagens de referência são perdidas, um decodificador de vídeo de saída 30B pode emitir informação identificando imagens perdidas apenas algumas vezes (por exemplo, algumas imagens de referência são perdidas, muito poucas mensagem devem ser enviadas). Por conseguinte, essa técnica exemplar pode ser relativamente eficiente em largura de banda.
[0167] Como outro exemplo, semelhante ao exemplo acima, decodificador de vídeo 30B pode informações de saída identificar uma imagem perdida, e codificador de vídeo 20A pode receber tais informações de identificação a imagem perdida. O codificador de vídeo 20A pode excluir a imagem perdida de determinadas uma ou mais imagens de referência candidatas. Desta forma, decodificador de vídeo 30B pode predição inter decodificar a imagem atual com uma ou mais imagens de referência candidatas, exceto a imagem perdida.
[0168] Ainda outra técnica exemplar que pode ser utilizada com as técnicas acima ou separadamente das técnicas acima, para cada imagem de referência corretamente decodificada em DPB 92 do decodificador de vídeo 30B, decodificador de vídeo 30B emite para um codificador de vídeo 20A um identificador único do presente imagem, tais como o seu valor POC, por uma mensagem de feedback. Esta técnica pode ser semelhante exemplo como o envio de mensagens de vários RPSI juntos. No entanto, a diferença é que codificador de vídeo 20A pode determinar quais imagens de referência de usar, em vez de decodificador de vídeo 30B especificar uma imagem de referência para a imagem a ser usado para a predição inter que codifica a imagem atual.
[0169] Neste exemplo, decodificador de vídeo 30B pode informações de saída identificar cada imagem que o decodificador de vídeo 30B foi capaz de reconstruir corretamente que é armazenado em DPB 92 de 30B decodificador de vídeo. O codificador de vídeo 20A pode determinar qual das imagens, para o qual codificador de vídeo 20A recebeu tais informações, ainda estão disponíveis no DPB 64 do codificador de vídeo 20A. O codificador de vídeo 20A pode então usar uma ou mais dessas imagens para predição inter que codifica a imagem atual. Quando há muitas imagens de referência em DPB 92 de decodificador de vídeo 30B, 30B decodificador de vídeo podem emitir muitas mensagens de feedback em conjunto para 20A codificador de vídeo. Por conseguinte, este exemplo técnica pode ser relativamente largura de banda ineficiente, mas com uma melhor garantia de que codificador de vídeo 20A predição inter codificado da fotografia atual com imagens de referência que estão disponíveis no DPB 92 de 30B decodificador de vídeo.
[0170] Em conformidade com uma ou mais técnicas desta revelação, decodificador de vídeo 30B pode transmitir informações, para codificador de vídeo 20A, indicativo de imagens de referência disponíveis para decodificação. O decodificador de vídeo 30B pode, em seguida, receber dados de vídeo para uma imagem que está predição inter codificado com uma ou mais das imagens de referência. O decodificador de vídeo 30B pode decodificar com predição inter a imagem com base nos dados de vídeo.
[0171] Em alguns exemplos, decodificador de vídeo 30B pode transmitir informações ao codificador de vídeo 20A indicativo de referência imagens disponíveis para descodificar se ocorreu um erro na reconstrução de uma imagem de referência durante a decodificação. Em alguns exemplos, para transmitir informações ao codificador de vídeo 20A indicativo de imagens de referência disponíveis para decodificação, decodificador de vídeo 30B pode transmitir informações de identificação de uma imagem identificada em uma imagem de referência fixada a partir do qual imagens de referência incluídas no conjunto de referência podem ser determinadas como as imagens de referência disponíveis para descodificar em vídeo decodificador 30B.
[0172] De acordo com um ou mais exemplos, decodificador de vídeo de saída 30B Maio, para o dispositivo 12, que inclui codificador de vídeo 20A, informações de identificação uma imagem previamente decodificada armazenada em DPB 92 de decodificador de vídeo 30B no momento da saída da informação. O decodificador de vídeo 30B pode predição inter decodificar uma imagem atual com uma ou mais imagens de referência candidatas. A uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram determinados previamente, por codificador de vídeo 20A, para ser utilizável para predição inter que codifica a imagem identificada. Em alguns exemplos, decodificador de vídeo 30B pode determinar que uma imagem foi perdida. Decodificador de vídeo 30B pode informações de saída identificar uma imagem anteriormente descodificada com base na determinação de que a imagem foi perdida.
[0173] O codificador de vídeo 20A pode selecionar duas imagens das imagens de referência selecionadas candidatas para bi-predição codificar a imagem atual. Assim, decodificador de vídeo 30B pode bi-predição decodificar a imagem atual, baseado em duas imagens de as imagens de referência candidato.
[0174] Além disso, em adição a saída de informação de identificação de uma imagem previamente decodificada, decodificador de vídeo de saída 30B podem informação identificando uma imagem desperdiçada. Nesses exemplos, decodificador de vídeo 30B pode decodificar com predição inter a imagem atual com uma ou mais imagens de referência candidatas, exceto a imagem perdida.
[0175] A figura 4 é um fluxograma que ilustra um exemplo de método de codificação de dados de vídeo. Para fins de ilustração, o exemplo é descrito em relação ao codificador de vídeo 20A. Codificador de vídeo 20A pode determinar imagens que podem ser utilizadas para a predição inter codificando cada imagem e na sequência de imagens em ordem (100) codificação. Por exemplo, como parte de codificação de cada imagem, codificador de vídeo 20A pode ser configurado para determinar um conjunto de parâmetros para a imagem (por exemplo, um ou mais de referência subconjuntos de imagem, tal como definido no HEVC ou manter o conjunto de parâmetros em técnicas de codificação de vídeo que não são necessariamente em conformidade com HEVC). O codificador de vídeo 20A pode armazenar informações indicando determinadas imagens (por exemplo, imagens do conjunto de parâmetros) para cada imagem (102).
[0176] O codificador de vídeo 20A pode receber informações de identificação uma determinada imagem (por exemplo, pelo seu valor POC) (104). Codificador de vídeo 20A pode determinar uma ou mais imagens que foram previamente determinados para ser utilizável para predição inter que codifica a imagem identificada a partir da informação armazenada (106). Em alguns exemplos, codificador de vídeo 20A pode também determinar uma ou mais imagens que foram previamente determinados para ser utilizável para predição inter que codifica as imagens que foram previamente determinados para ser utilizável para predição inter que codifica a imagem identificada.
[0177] A partir das imagens que codificador de vídeo 20A determinou para ser utilizável para predição inter que codifica a imagem identificada (e, possivelmente, determinada a ser utilizável para predição inter que codifica as imagens determinados a utilizável para predição inter que codifica a imagem identificada), o codificador de vídeo 20A pode determinar qual destas imagens ainda é armazenado em DPB 64 de 20A codificador de vídeo (108). Codificador de vídeo 20A pode selecionar uma ou mais imagens de referência (por exemplo, uma imagem de referência para a predição unidirecional da lista imagem Um referência ou duas imagens de referência para a predição bi-direcional de imagens de referência em cada uma das duas listas de imagem de referência) a partir do determinado de referência candidato imagens (110). O codificador de vídeo 20A pode predição inter codificar a imagem atual com base nas imagens selecionadas de referência (112).
[0178] A figura 5 é um fluxograma que ilustra um exemplo de método de decodificação de dados de vídeo. Para facilitar a descrição do exemplo é descrito em relação ao decodificador de vídeo 30B. O decodificador de vídeo 30B pode emitir para o dispositivo 12, que inclui um codificador de vídeo 20, as informações de identificação de uma imagem previamente decodificada armazenada na DPB 92 do decodificador de vídeo 30B no momento da saída da informação (200). Em alguns exemplos, decodificador de vídeo 30B pode determinar se uma imagem foi perdida. O decodificador de vídeo 30B pode ser configurado para emitir a informação de identificação da imagem anteriormente decodificada com base na determinação de que a imagem foi dispensada.
[0179] O decodificador de vídeo 30B pode decodificar com predição inter uma imagem atual com uma ou mais imagens de referência candidatas (202). A uma ou mais imagens de referência candidatas incluem uma ou mais imagens que foram determinadas previamente, pelo codificador de vídeo 20A, para ser utilizável para predição inter que codifica a imagem identificada e/ou imagens identificadas como sendo utilizáveis para predição inter que codifica as imagens que foram identificadas como sendo utilizáveis para predição inter que codifica a imagem identificada. A imagem identificada também pode ser parte de uma ou mais imagens de referência candidatas.
[0180] Por exemplo, se o codificador de vídeo 20A codificada com predição dupla a imagem atual, decodificador de vídeo 30B pode decodificar com predição dupla a imagem atual de uma maneira substancialmente semelhante. Além disso, em alguns exemplos, decodificador de vídeo 30B pode adicionalmente informações de saída identificar uma imagem perdida. Nesses exemplos, decodificador de vídeo 30B pode predição inter decodificar a imagem atual com uma ou mais imagens de referência candidatas, exceto a imagem perdida.
[0181] As técnicas descritas acima relacionadas com a RPSI e RPSSI (mais uma vez, a definição de RPSI pode ser alterada para incluir a definição de RPSSI). Em alguns exemplos, codificador de vídeo 20A e 30B decodificador de vídeo podem utilizar a indicação de perda de imagem específica (SPLI) mensagens. Para SPLI, quando o erro acontece, decodificador de vídeo 30B apenas relata imagens de referência perdidas ou parcialmente perdidas. O codificador de vídeo 20A rastreia erros de acordo com as mensagens SPLI, e o codificador de vídeo 20A pode inferir uma imagem de referência que está corretamente decodificada e ainda existe em DPB 92 do decodificador de vídeo 30B, o codificador de vídeo 20A pode usar esta imagem de referência para codificar a imagem atual para parar a propagação do erro.
[0182] Para mensagens SPLI, desde decodificador de vídeo 30B só pode informar quais as imagens são perdidos, em seguida, codificador de vídeo 20A só pode inferir que imagens de referência estão disponíveis em DPB 92 do decodificador de vídeo 30B com base nas mensagens recebidas. No entanto, codificador de vídeo 20A pode não ser capaz de determinar quando o erro aconteceu no lado do decodificador de vídeo 30B (isto é, codificador de vídeo 20A pode não determinar o estado exato do DPB 92 de decodificador de vídeo 30B quando o erro foi relatado). Em alguns casos, pode ser complicado para 20A codificador de vídeo exatamente para inferir as imagens armazenadas na DPB 92 de decodificador de vídeo 30B, conforme ilustrado no exemplo da Tabela 2.TABELA 2. ESTRUTURA DE REFERÊNCIA
[0183] A Tabela 2 indica uma estrutura de referência. Na Tabela 2, * significa esta imagem é mantida em DPB, mas não é usada para a decodificação de imagem atual, e POC significa contagem de ordem de imagem, que indica quando uma imagem está para ser exibida. Por exemplo, uma imagem com um valor POC menor é exibida mais cedo do que uma imagem com um valor POC maior. A ordem das de visualização das imagens pode ser diferente do que a ordem de codificação ou decodificação das imagens.
[0184] Na Tabela 2, um codificador de vídeo 20A utiliza a estrutura de referência ilustrada. Há dois casos: Caso 1: única imagem t + 1 é perdida, decodificador percebe essa perda quando a decodificação de imagem t + 2, e, em seguida, envia uma mensagem SPLI para informar codificador que imaginar t + 1 é perdida, e Caso 2: duas imagens t + 1 e imagem t + 2 são perdidas, decodificador avisa essa perda não intencional quando a decodificação de imagem t + 4, e depois decodificador envia uma mensagem SPLI para informar o codificador que a imagem t + 1 está perdida.
[0185] Em alguns exemplos, o decodificador de vídeo 30B não pode relatar a perda de imagem de referência quando a imagem de referência perdida não é usado para a decodificação de imagem atual, porque este imagem de referência pode ser descartado intencionalmente. Comparando estes dois casos, codificador de vídeo 20A pode não ser capaz de distingui-los apenas pelas mensagens SPLI recebidos. Ou seja, codificador de vídeo 20A não pode inferir se imagem t + 3 está disponível ou não no DPB de 30B decodificador de vídeo.
[0186] Nos exemplos de técnicas acima, decodificador de vídeo 30B emite informações de identificação de algumas imagens (por exemplo, uma imagem ou um número seleto de imagens) a partir do qual codificador de vídeo 20A determina mais imagens (por exemplo, uma pluralidade de imagens) que podem ser usados a predição inter codificar a imagem atual. No entanto, em alguns exemplos, o decodificador de vídeo 30B emite informações de identificação de algumas imagens que podem não ser suficientes para fazer com que o codificador de vídeo 20A determine as imagens que o codificador de vídeo 20A pode usar para codificar com predição inter uma imagem atual. Nesses exemplos, além de saída de informações de identificação uma ou mais imagens no DPB 92 de decodificador de vídeo 30B, decodificador de vídeo 30B pode também informações de saída indicando que uma imagem foi perdida, e informações de identificação a imagem perdida. Em resposta, o codificador de vídeo 20A pode predição inter codificar uma imagem atual com base em imagens identificadas como estando em DPB 92 de decodificador de vídeo 30B ou imagens que foram previamente determinadas como utilizável para predizer inter as imagens identificadas ou imagens seguintes as imagens identificadas na ordem de codificação.
[0187] A figura 6 é um fluxograma que ilustra outro exemplo de método de codificação de dados de vídeo. Como acima, o exemplo é descrito em relação ao codificador de vídeo 20A. Tal como ilustrado na figura 6, codificador de vídeo 20A pode receber informações de identificação uma imagem perdida de 30B decodificador de vídeo (300). O codificador de vídeo 20A também pode receber informações de identificação uma ou mais imagens que estão atualmente armazenadas em DPB 92 de decodificador de vídeo 30B (302). Em alguns exemplos, codificador de vídeo 20A pode receber informações de identificação uma ou mais imagens que estão atualmente armazenadas em DPB 92 de decodificador de vídeo 30B apenas em casos em que decodificador de vídeo 30B determina que uma imagem foi perdida.
[0188] Por exemplo, em alguns exemplos, decodificador de vídeo 30B pode emitir informações identificando uma imagem corretamente decodificada para codificador de vídeo 20A depois de cada instância de decodificar corretamente a imagem, e codificador de vídeo 20A pode então utilizar uma ou mais dessas imagens identificadas para codificar com predição inter uma imagem atual. Em alguns exemplos, decodificador de vídeo 30B pode informações de saída identificar uma ou mais imagens armazenadas na DPB 64 (por exemplo, um ou mais corretamente imagens decodificadas) somente quando decodificador de vídeo 30B determina que uma imagem foi perdida (por exemplo, uma imagem não foi decodificado, não foi reconstruído com precisão, ou não foi reconstruído totalmente). Nestes exemplos, decodificador de vídeo 30B pode também informação de saída identificar a imagem perdidas (por exemplo, o valor de CPO da imagem dispensada).
[0189] Tal como ilustrado na figura 6, recebendo informações de identificação uma imagem perdida e receber informações de identificação uma ou mais imagens no DPB 92 de decodificador de vídeo 30B são ilustrados separadamente. No entanto, as técnicas descritas na presente revelação não são tão limitadas. Em alguns exemplos, codificador de vídeo 20A pode receber informações de identificação uma imagem perdida e informações de identificação uma ou mais imagens no DPB 92 de decodificador de vídeo 30B em uma mensagem de feedback fornecido. Como um exemplo, uma única mensagem de feedback pode incluir informação de identificação a imagem perdida e informações de identificação uma ou mais imagens armazenadas atualmente no DPB 92 de decodificador de vídeo 30B.
[0190] O codificador de vídeo 20A pode determinar imagens de referência candidato (304). As imagens candidatas podem ser limitadas a apenas uma ou mais imagens em DPB 92 de decodificador de vídeo 30B que o decodificador de vídeo 30B identificado na mensagem de feedback. Em alguns exemplos, as imagens candidatas podem ser imagens, ainda armazenados no DPB 64 de codificador de vídeo 20A, que poderia ter sido usado para codificar predição inter de uma ou mais imagens de vídeo decodificador 30B identificados.
[0191] O codificador de vídeo 20A pode selecionar a imagem de referência das imagens de referência candidatas a predição inter codificar a imagem atual (306). o codificador de vídeo 20A pode predição inter codificar a imagem atual com base nas imagens selecionadas de referência (308).
[0192] A figura 7 é um fluxograma que ilustra outro exemplo de método de decodificação de dados de vídeo. Tal como referido acima, para facilidade, a descrição é em relação ao decodificador de vídeo 30B. Como ilustrado, decodificador de vídeo 30B pode determinar que uma imagem foi perdida (400). Por exemplo, decodificador de vídeo 30B pode determinar que uma imagem foi perdido quando essa imagem é para ser usado para predizer inter outra figura e decodificador de vídeo 30B determina que a imagem não está disponível em DPB 92 de 30B decodificador de vídeo. Como outro exemplo, decodificador de vídeo 30B pode determinar que uma imagem foi perdida quando o decodificador de vídeo 30B é a saída que imagem, e a imagem não está disponível em DPB 92 de 30B decodificador de vídeo.
[0193] O decodificador de vídeo 30B pode informações de saída identificar a imagem perdida para 20A codificador de vídeo (402). O decodificador de vídeo 30B pode também informações de saída identificar uma ou mais imagens armazenadas atualmente no DPB 92 de decodificador de vídeo 30B (404). Por exemplo, decodificador de vídeo 30B pode contagem de saída fim imagem (POC) Valores identificar a imagem perdida e as uma ou mais imagens armazenadas atualmente no DPB 92 de 30B decodificador de vídeo. Em alguns exemplos, decodificador de vídeo 30B pode informações de saída identificar a imagem perdida e informações de identificação de um ou mais imagens armazenadas atualmente no DPB 92 em uma mensagem de feedback fornecido. Como exemplo, pode haver apenas uma mensagem que o decodificador de vídeo 30B precisa enviar para identificar a imagem perdida e as uma ou mais imagens armazenadas atualmente no DPB 92. Desta forma, decodificador de vídeo 30B pode transmitir uma mensagem de tipo SPLI que identifica uma imagem e uma mensagem do tipo RPSI que identifica uma ou mais imagens armazenadas atualmente no DPB 92 de 30B decodificador de vídeo em falta.
[0194] Em alguns exemplos, decodificador de vídeo 30B pode informações de saída identificar a imagem perdida e uma ou mais imagens armazenadas atualmente no DPB 92 em mais de uma mensagem. Em alguns exemplos, decodificador de vídeo 30B pode informações de saída identificar cada imagem que ele corretamente decodificado para 20A codificador de vídeo após a decodificação da imagem. Em alguns exemplos, decodificador de vídeo 30B pode informações de saída identificar uma ou mais imagens que estão atualmente armazenados no DPB 92 somente quando decodificador de vídeo 30B determina que uma imagem foi perdida.
[0195] O decodificador de vídeo 30B pode decodificar com predição inter uma imagem atual de um ou mais imagens de referência (406). As imagens de referência podem incluir apenas as imagens identificadas. Em alguns exemplos, as imagens de referência pode incluir as imagens identificados e imagens que podem ter sido utilizados para predizer inter as imagens identificados. Em alguns exemplos, as imagens de referência só podem incluir imagens que poderiam ter sido utilizadas para predizer inter as imagens identificados.
[0196] Em um ou mais exemplos, as funções descritas podem ser implementadas em hardware, software, firmware ou qualquer combinação dos mesmos. Se implementada em software, as funções podem ser armazenadas no, ou transmitidas através do, como uma ou mais instruções ou código, meio legível por computador e executadas por uma unidade de processamento baseado em hardware. Meios legíveis por computador podem incluir meios de armazenamento legíveis por computador, os quais correspondem a um meio tangível; tal como os meios de armazenamento de dados, ou meios de comunicação incluindo qualquer meio que facilita a transferência de um programa de computador de um local para outro, por exemplo, de acordo com um protocolo de comunicação. Dessa maneira, meios legíveis por computador geralmente podem corresponder a meios de armazenamento tangíveis legíveis por computador os quais são não transitórios. Meio de armazenamento de dados pode ser qualquer material disponível que pode ser acedida por um ou mais computadores ou um ou mais processadores para recuperar instruções de código, e/ou estruturas de dados para a implementação das técnicas descritas na presente revelação. Um produto de programa de computador pode incluir um meio legível por computador.
[0197] Como um exemplo, e não como limitação, tais meios de armazenamento legíveis por computador podem compreender RAM, ROM, EEPROM, CD-ROM ou qualquer outro meio de armazenamento de dados de estado sólido, ótico ou magnético, incluindo armazenamento de disco ótico, armazenamento de disco magnético, ou outros dispositivos de armazenamento magnético, ou qualquer outro meio que possa ser usado para armazenar código de programa desejado na forma de instruções ou estruturas de dados e que possam ser acessados por um computador. Além disso, qualquer conexão é propriamente denominada meio legível por computador. Por exemplo, se as instruções forem transmitidas a partir de um sítio de rede, servidor, ou outra fonte remota utilizando um cabo coaxial, cabo de fibras óticas, par de fios torcidos, linha de assinante digital (DSL), ou tecnologias sem fio tal como infravermelho, rádio e micro-ondas, então o cabo axial, cabo de fibras óticas, par de fios torcidos, DSL, ou tecnologias sem fio tais como infravermelho, rádio e microondas são incluídos na definição de meio. Deve ser entendido, contudo, que meios de armazenamento tangíveis legíveis por computador e meios de armazenamento de dados não incluem conexões, ondas portadoras, sinais ou outros meios transientes, mas em vez disso são dirigidos aos meios de armazenamento não transientes, tangíveis. Disco magnético e disco ótico, conforme aqui usado, incluem disco compacto (CD), disco a laser, disco ótico, disco digital versátil (DVD), disquete e disco Blu-ray, onde discos magnéticos normalmente reproduzem os dados magneticamente, enquanto que os discos óticos reproduzem os dados oticamente com laseres. Combinações dos mencionados acima também devem ser incluídas no escopo de meios legíveis por computador.
[0198] As instruções podem ser executadas por um ou mais processadores, tal como um ou mais processadores de sinal digital (DSPs), microprocessadores de uso geral, circuitos integrados de aplicação específica (ASICs), arranjos lógicos programáveis no campo (FPGAs), ou outros circuitos lógicos integrados ou discretos equivalentes. Consequentemente, o termo “processador”, conforme aqui usado pode se referir a qualquer uma da estrutura precedente ou qualquer outra estrutura adequada para implementação das técnicas aqui descritas. Além disso, em alguns aspectos, a funcionalidade aqui descrita pode ser provida dentro de módulos de hardware e/ou software, dedicados configurados para codificar e decodificar, ou incorporados em um codec combinado. Além disso, as técnicas poderiam ser completamente implementadas em um ou mais circuitos ou elementos lógicos.
[0199] As técnicas dessa revelação podem ser implementadas em uma ampla variedade de dispositivos ou equipamentos, incluindo um aparelho telefônico sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um conjunto de chip). Vários componentes, módulos ou unidades são descritos nessa revelação para enfatizar os aspectos funcionais de dispositivos configurados para realizar as técnicas reveladas, mas não requerem necessariamente a realização por diferentes unidades de hardware. Mais propriamente, conforme descrito acima, as várias unidades podem ser combinadas em uma unidade de hardware de codec ou providas por um grupo de unidades de hardware interoperativas, incluindo um ou mais processadores conforme descrito acima, em conjunto com software e/ou firmware adequado.
[0200] Vários exemplos foram descritos. Esses e outros exemplos estão abrangidos pelo escopo das reivindicações a seguir.
Claims (14)
1. Método de codificar dados de vídeo, o método caracterizado por compreender: armazenar um conjunto de parâmetros para cada imagem que é codificada, o conjunto de parâmetros de uma imagem particular incluindo um ou mais subconjuntos de imagem de referência que formam um conjunto de imagem de referência da imagem particular; receber, a partir de um dispositivo compreendendo um decodificador de vídeo (30B), informação identificando uma imagem previamente decodificada que é armazenada em um meio de armazenamento temporário de imagem decodificada (DPB) do decodificador de vídeo no momento em que o decodificador de vídeo transmitiu informação; determinar, com base no conjunto de parâmetros da imagem identificada, uma ou mais imagens de referência candidatas que estejam disponíveis para codificação de uma imagem atual, em que uma ou mais imagens de referência candidatas incluem uma ou mais imagens que estão: no conjunto de imagem de referência da imagem identificada, em que o conjunto de imagem de referência identifica imagens que foram previamente determinadas, durante codificação da imagem identificada como imagens que poderiam ter sido utilizadas para codificação de predição inter da imagem identificada ou como imagens que poderiam ter sido utilizadas para codificação de predição inter das imagens após a imagem identificada na ordem de codificação, e que ainda estão armazenadas em um DPB de um codificador de vídeo (20A); selecionar uma ou mais imagens de referência para a imagem atual a partir de uma ou mais imagens de referência candidatas determinadas e a imagem identificada; e codificar mediante predição inter a imagem atual com base em uma ou mais imagens de referência selecionadas.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: construir, durante a codificação de uma imagem disponível que é posteriormente identificada pelo decodificador de vídeo e antes da codificação da imagem atual, um ou mais de: um primeiro subconjunto de imagens de referência que inclui quaisquer imagens de referência de curto prazo que precedem a imagem disponível na ordem de exibição e que foram determinadas como sendo utilizáveis para predição inter da imagem disponível e foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação; um segundo subconjunto de imagens de referência que inclui quaisquer imagens de referência de curto prazo que vem após a imagem disponível na ordem de exibição e que foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação; um terceiro subconjunto de imagens de referência que inclui quaisquer imagens de referência de longo prazo que foram determinadas para ser utilizáveis para predição inter da imagem disponível e foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação; um quarto subconjunto de imagem de referência que inclui quaisquer imagens de referência de curto prazo que foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação, e foram determinadas para não ser utilizáveis para predição inter da imagem disponível; e um quinto subconjunto de imagens de referência que inclui quaisquer imagens de referência de longo prazo que foram determinadas como sendo utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação, e foram determinadas para não ser utilizáveis para predição inter da imagem disponível, em que as imagens em um ou mais do primeiro, segundo, terceiro, quarto e quinto subconjuntos de imagem de referência compreendem imagens que foram determinadas previamente como sendo utilizáveis para codificação mediante predição inter da imagem disponível ou foram determinadas previamente para ser utilizáveis para codificação de predição inter das imagens após a imagem disponível na ordem de codificação, e em que a determinação de uma ou mais imagens de referência candidatas compreende determinar uma ou mais imagens de referência candidatas a partir de um ou mais do primeiro subconjunto de imagens de referência, o segundo subconjunto de imagens de referência, o terceiro subconjunto de imagens de referência, o quarto subconjunto de imagens de referência, e o quinto subconjunto de imagens de referência.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a determinação de uma ou mais imagens de referência candidatas compreende determinar uma ou mais imagens de referência candidatas a partir do primeiro, segundo e terceiro subconjuntos de imagens de referência, e não a partir do quarto e quinto subconjuntos de imagens de referência.
4. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que a determinação de uma ou mais imagens de referência candidatas compreende determinar uma ou mais imagens de referência candidatas a partir do primeiro e segundo subconjuntos de imagens de referência, e não a partir do terceiro, quarto e quinto subconjuntos de referência.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: determinar se a imagem identificada está disponível para codificação da imagem atual; e codificar mediante predição intra a imagem atual com base em uma determinação de que a imagem identificada não está disponível para codificar a imagem atual.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende adicionalmente: receber informação identificando uma imagem ausente; e excluir a imagem ausente a partir de uma ou mais imagens de referência candidatas determinadas.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a codificação de predição inter da imagem atual com base em uma ou mais imagens de referência selecionadas compreende codificação mediante predição dupla da imagem atual com base em duas imagens a partir das imagens de referência selecionadas.
8. Dispositivo para codificar dados de vídeo, o dispositivo caracterizado por compreender: um primeiro meio de armazenamento temporário de imagem decodificada (DPB) compreendendo uma memória configurada para armazenar uma ou mais imagens; e um codificador de vídeo (20A) compreendendo um ou mais processadores, em que o codificador de vídeo é configurado para: armazenar um conjunto de parâmetros para cada imagem que é codificada, o conjunto de parâmetros de uma imagem particular incluindo um ou mais subconjuntos de imagem de referência que formam um conjunto de imagem de referência da imagem particular; receber, a partir de um dispositivo compreendendo um decodificador de vídeo (30B), informação identificando uma imagem previamente decodificada que é armazenada em um segundo DPB do decodificador de vídeo no momento em que o decodificador de vídeo transmitiu informação; determinar, com base no conjunto de parâmetros da imagem identificada, uma ou mais imagens de referência candidatas que estejam disponíveis para codificação de uma imagem atual com base na imagem identificada, em que uma ou mais imagens de referência candidatas incluem uma ou mais imagens que estão: em um conjunto de imagem de referência da imagem identificada, em que o conjunto de imagem de referência identifica imagens que foram previamente determinadas, durante codificação da imagem identificada como imagens que poderiam ter sido utilizadas para codificação de predição inter da imagem identificada ou como imagens que poderiam ter sido utilizadas para codificação de predição inter das imagens após a imagem identificada na ordem de codificação, e que ainda estão armazenadas no primeiro DPB; selecionar uma ou mais imagens de referência para a imagem atual a partir de uma ou mais imagens de referência candidatas determinadas e a imagem identificada; e codificar mediante predição inter a imagem atual com base em uma ou mais imagens de referência selecionadas.
9. Dispositivo, de acordo com a reivindicação 8, caracterizado pelo fato de que o codificador de vídeo é configurado para: construir, durante a codificação de uma imagem disponível que é posteriormente identificada pelo decodificador de vídeo e antes da codificação da imagem atual, um ou mais de: um primeiro subconjunto de imagens de referência que inclui quaisquer imagens de referência de curto prazo que precedem a imagem disponível na ordem de exibição e que foram determinadas como sendo utilizáveis para predição inter da imagem disponível e foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação; um segundo subconjunto de imagens de referência que inclui quaisquer imagens de referência de curto prazo que vem após a imagem disponível na ordem de exibição e que foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação; um terceiro subconjunto de imagens de referência que inclui quaisquer imagens de referência de longo prazo que foram determinadas para ser utilizáveis para predição inter da imagem disponível e foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação; um quarto subconjunto de imagem de referência que inclui quaisquer imagens de referência de curto prazo que foram determinadas para ser utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação, e foram determinadas para não ser utilizáveis para predição inter da imagem disponível; e um quinto subconjunto de imagens de referência que inclui quaisquer imagens de referência de longo prazo que foram determinadas como sendo utilizáveis para predição inter da uma ou mais imagens após a imagem disponível na ordem de codificação, e foram determinadas para não ser utilizáveis para predição inter da imagem disponível, em que as imagens em um ou mais do primeiro, segundo, terceiro, quarto e quinto subconjuntos de imagem de referência compreendem imagens que foram determinadas previamente como sendo utilizáveis para codificação mediante predição inter da imagem disponível ou foram determinadas previamente para ser utilizáveis para codificação de predição inter das imagens após a imagem disponível na ordem de codificação, e em que para a determinação de uma ou mais imagens de referência candidatas, o codificador de vídeo é configurado para determinar uma ou mais imagens de referência candidatas a partir de um ou mais do primeiro subconjunto de imagens de referência, do segundo subconjunto de imagens de referência, do terceiro subconjunto de imagens de referência, do quarto subconjunto de imagens de referência, e do quinto subconjunto de imagens de referência.
10. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que para a determinação de uma ou mais imagens de referência candidatas o codificador de vídeo é configurado para determinar uma ou mais imagens de referência candidatas a partir do primeiro, segundo e terceiro subconjuntos de imagens de referência, e não a partir do quarto e quinto subconjuntos de referência.
11. Dispositivo, de acordo com a reivindicação 9, caracterizado pelo fato de que para a determinação de uma ou mais imagens de referência candidatas o codificador de vídeo é configurado para determinar uma ou mais imagens de referência candidatas a partir do primeiro e segundo subconjuntos de imagens de referência, e não a partir do terceiro, quarto e quinto subconjuntos de referência.
12. Dispositivo, de acordo com a reivindicação 8, caracterizado pelo fato de que o codificador de vídeo é configurado para: determinar se a imagem identificada está disponível para codificação da imagem atual; e codificar mediante predição intra a imagem atual com base em uma determinação de que a imagem identificada não está disponível para codificar a imagem atual.
13. Dispositivo, de acordo com a reivindicação 8, caracterizado pelo fato de que o codificador de vídeo é configurado para:receber informação identificando uma imagem ausente; e excluir a imagem ausente a partir de uma ou mais imagens de referência candidatas determinadas.
14. Dispositivo, de acordo com a reivindicação 8, caracterizado pelo fato de que a codificação de predição inter da imagem atual com base em uma ou mais imagens de referência selecionadas o codificador de vídeo é configurado para codificação mediante predição dupla da imagem atual com base em duas imagens a partir das imagens de referência selecionadas.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361910766P | 2013-12-02 | 2013-12-02 | |
US61/910,766 | 2013-12-02 | ||
US14/557,049 US9807407B2 (en) | 2013-12-02 | 2014-12-01 | Reference picture selection |
US14/557,049 | 2014-12-01 | ||
PCT/US2014/068031 WO2015084777A1 (en) | 2013-12-02 | 2014-12-02 | Reference picture selection |
Publications (2)
Publication Number | Publication Date |
---|---|
BR112016012510A2 BR112016012510A2 (pt) | 2017-08-08 |
BR112016012510B1 true BR112016012510B1 (pt) | 2023-04-11 |
Family
ID=53266412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
BR112016012510-0A BR112016012510B1 (pt) | 2013-12-02 | 2014-12-02 | Método e dispositivo para codificar dados de vídeo |
Country Status (10)
Country | Link |
---|---|
US (1) | US9807407B2 (pt) |
EP (1) | EP3078193B1 (pt) |
JP (2) | JP6672159B2 (pt) |
KR (1) | KR102346490B1 (pt) |
CN (1) | CN105794207B (pt) |
BR (1) | BR112016012510B1 (pt) |
ES (1) | ES2703342T3 (pt) |
HU (1) | HUE041664T2 (pt) |
MX (1) | MX353161B (pt) |
WO (1) | WO2015084777A1 (pt) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201405649D0 (en) * | 2014-03-28 | 2014-05-14 | Sony Corp | Data encoding and decoding |
CN104768011B (zh) * | 2015-03-31 | 2018-03-06 | 浙江大学 | 图像编解码方法和相关装置 |
US10313685B2 (en) | 2015-09-08 | 2019-06-04 | Microsoft Technology Licensing, Llc | Video coding |
US10595025B2 (en) | 2015-09-08 | 2020-03-17 | Microsoft Technology Licensing, Llc | Video coding |
US20170085871A1 (en) * | 2015-09-22 | 2017-03-23 | Ati Technologies Ulc | Real time video coding system with error recovery using earlier reference picture |
CN107113441B (zh) | 2016-12-30 | 2019-07-26 | 深圳市大疆创新科技有限公司 | 图像处理方法、装置、无人飞行器和接收端 |
WO2018121775A1 (en) * | 2016-12-30 | 2018-07-05 | SZ DJI Technology Co., Ltd. | System and methods for feedback-based data transmission |
KR20210068537A (ko) * | 2018-10-08 | 2021-06-09 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 코딩 블록의 기하학적 분할의 인터 예측을 위한 장치 및 방법 |
JP2022530054A (ja) * | 2019-04-25 | 2022-06-27 | オーピー ソリューションズ, エルエルシー | ピクチャヘッダ内の大域的運動ベクトルの信号伝達 |
CN112532908B (zh) * | 2019-09-19 | 2022-07-19 | 华为技术有限公司 | 视频图像的传输方法、发送设备、视频通话方法和设备 |
CN116941246A (zh) * | 2020-12-23 | 2023-10-24 | Lg电子株式会社 | 用信号通知子画面id信息的媒体文件生成/接收方法和装置以及存储媒体文件的计算机可读记录介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3157123B2 (ja) * | 1996-07-05 | 2001-04-16 | 日本電信電話株式会社 | 画像通信システム及び方法 |
US20060083298A1 (en) * | 2004-10-14 | 2006-04-20 | Nokia Corporation | Reference picture management in video coding |
KR101418627B1 (ko) * | 2007-04-04 | 2014-07-15 | 톰슨 라이센싱 | 참조 화상 리스트 관리 |
CN101931803B (zh) * | 2009-06-26 | 2013-01-09 | 华为技术有限公司 | 视频图像运动信息获取方法、装置及设备、模板构造方法 |
KR101750495B1 (ko) * | 2010-04-16 | 2017-06-27 | 에스케이텔레콤 주식회사 | 인터 예측 방법 및 그 인터 예측 방법을 이용한 동영상 부호화/복호화 방법 |
US20120230409A1 (en) * | 2011-03-07 | 2012-09-13 | Qualcomm Incorporated | Decoded picture buffer management |
JPWO2012121052A1 (ja) * | 2011-03-08 | 2014-07-17 | ソニー株式会社 | 画像処理装置、画像処理方法、及び、プログラム |
JP5918354B2 (ja) * | 2011-04-26 | 2016-05-18 | エルジー エレクトロニクス インコーポレイティド | 参照ピクチャリスト管理方法及びその方法を使用する装置 |
US9131245B2 (en) * | 2011-09-23 | 2015-09-08 | Qualcomm Incorporated | Reference picture list construction for video coding |
CN104137554A (zh) * | 2012-02-24 | 2014-11-05 | Vid拓展公司 | 使用分组损耗检测的视频编码 |
-
2014
- 2014-12-01 US US14/557,049 patent/US9807407B2/en active Active
- 2014-12-02 EP EP14816531.9A patent/EP3078193B1/en active Active
- 2014-12-02 HU HUE14816531A patent/HUE041664T2/hu unknown
- 2014-12-02 KR KR1020167016111A patent/KR102346490B1/ko active IP Right Grant
- 2014-12-02 WO PCT/US2014/068031 patent/WO2015084777A1/en active Application Filing
- 2014-12-02 BR BR112016012510-0A patent/BR112016012510B1/pt active IP Right Grant
- 2014-12-02 JP JP2016556690A patent/JP6672159B2/ja active Active
- 2014-12-02 ES ES14816531T patent/ES2703342T3/es active Active
- 2014-12-02 MX MX2016007110A patent/MX353161B/es active IP Right Grant
- 2014-12-02 CN CN201480064080.5A patent/CN105794207B/zh active Active
-
2019
- 2019-11-01 JP JP2019199851A patent/JP2020043576A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP3078193A1 (en) | 2016-10-12 |
CN105794207B (zh) | 2019-02-22 |
BR112016012510A2 (pt) | 2017-08-08 |
KR20160091927A (ko) | 2016-08-03 |
JP2017503448A (ja) | 2017-01-26 |
EP3078193B1 (en) | 2018-10-03 |
US9807407B2 (en) | 2017-10-31 |
MX2016007110A (es) | 2016-09-08 |
MX353161B (es) | 2017-12-20 |
US20150156487A1 (en) | 2015-06-04 |
ES2703342T3 (es) | 2019-03-08 |
JP6672159B2 (ja) | 2020-03-25 |
WO2015084777A1 (en) | 2015-06-11 |
CN105794207A (zh) | 2016-07-20 |
HUE041664T2 (hu) | 2019-05-28 |
KR102346490B1 (ko) | 2021-12-31 |
JP2020043576A (ja) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102115050B1 (ko) | 비디오 시퀀스들에서 랜덤 액세스 포인트 픽처들에 대한 디코딩된 픽처 버퍼 프로세싱 | |
BR112016012510B1 (pt) | Método e dispositivo para codificar dados de vídeo | |
BR112014033008B1 (pt) | Conjunto de parâmetros de vídeo para hevc e extensões | |
BR112015006440B1 (pt) | Indicação e ativação de conjuntos de parâmetros para codificação de vídeo | |
BR112014026745B1 (pt) | Métodos para decodificar e codificar dados de vídeo, dispositivo de decodificação de vídeo para decodificar dados de vídeo e memória legível por computador | |
BR112015016230B1 (pt) | Sinalização condicional de informação de temporização de contagem de ordem de imagens para temporização de vídeo em codificação de vídeo | |
PH12015500645B1 (en) | Error resilient decoding unit association. | |
BR112014010418B1 (pt) | Acesso aleatório com gerenciamento de buffer de imagem decodificada avançada (dpb) na codificação de vídeo | |
BR112014011063B1 (pt) | Redução de contexto para codificação aritmética binária adaptativa de contexto | |
BR112015006839B1 (pt) | Sinalizando identificadores de camada para pontos de operação em codificação de vídeo | |
BR112015016361B1 (pt) | Operações de armazenamento temporário de vídeo para acesso aleatório em codificação de vídeo | |
BR112020011099A2 (pt) | intra-predição com pixels vizinhos distantes | |
BR112015006059B1 (pt) | Codificação de vídeo codm comportamentos [de imagem [de ponto [de acesso aleatório melhorados | |
BR112015007273B1 (pt) | Método e dispositivo para processar dados de vídeo de múltiplas camadas, dispositivo de codificação de vídeo e memória legível por computador | |
BR112014033011B1 (pt) | Conjunto de parâmetros de vídeo para hevc e extensões | |
BR112016021476B1 (pt) | Método e dispositivo para codificar dados de vídeo e memória legível por computador | |
BR112016029356B1 (pt) | Método para decodificar e codificar e dispositivo para decodificar dados de vídeo de acordo com um padrão de codificação de vídeo de alta eficiência (hevc) |
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 02/12/2014, OBSERVADAS AS CONDICOES LEGAIS |