BR112016014227B1 - Dispositivo e método para codificação escalável de informação de vídeo - Google Patents

Dispositivo e método para codificação escalável de informação de vídeo Download PDF

Info

Publication number
BR112016014227B1
BR112016014227B1 BR112016014227-6A BR112016014227A BR112016014227B1 BR 112016014227 B1 BR112016014227 B1 BR 112016014227B1 BR 112016014227 A BR112016014227 A BR 112016014227A BR 112016014227 B1 BR112016014227 B1 BR 112016014227B1
Authority
BR
Brazil
Prior art keywords
poc
image
video
images
layer
Prior art date
Application number
BR112016014227-6A
Other languages
English (en)
Other versions
BR112016014227A2 (pt
Inventor
Adarsh Krishnan Ramasubramonian
Fnu HENDRY
Ye-Kui Wang
Original Assignee
Qualcomm Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Incorporated filed Critical Qualcomm Incorporated
Publication of BR112016014227A2 publication Critical patent/BR112016014227A2/pt
Publication of BR112016014227B1 publication Critical patent/BR112016014227B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

DISPOSITIVO E MÉTODO PARA CODIFICAÇÃO ESCALÁVEL DE INFORMAÇÃO DE VÍDEO. Um aparelho configurado para codificar informação de vídeo inclui uma unidade de memória e um processador em comunicação com a unidade de memória. A unidade de memória é configurada para armazenar informação de vídeo associada com uma primeira camada de vídeo tendo uma imagem atual. O processador é configurado para processar um primeiro deslocamento associado com a imagem atual, o primeiro deslocamento indicando uma diferença entre (a) os bits mais significativos (MSBs) de uma primeira contagem de ordem de imagem (POC) de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) os MSBs de uma segunda POC da imagem atual.

Description

CAMPO TÉCNICO
[0001] Essa revelação se refere ao campo de codificação e compactação de vídeo, particularmente codificação de vídeo escalável (SVC), codificação de vídeo de múltiplas vistas (MVC) ou codificação de vídeo (3DV) tridimensional (3D).
ANTECEDENTES
[0002] 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 dispositivos de teleconferência 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), e extensões de tais padrões, para transmitir e receber informação de vídeo digital mais eficientemente. 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.
[0003] Técnicas de compactação de vídeo 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 é, um quadro de vídeo ou uma porção de um quadro 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 como quadros, e as imagens de referência podem ser referidas como quadros de referência.
[0004] 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 intra codificado é 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 residuais, os quais podem ser então quantizados. Os coeficientes quantizados, inicialmente arranjados em um arranjo bidimensional, podem ser varridos para produzir um vetor unidimensional dos coeficientes de transformada, e codificação de entropia pode ser empregada para se obter ainda mais compactação.
SUMÁRIO
[0005] Os sistemas, métodos e dispositivos desta revelação têm vários aspectos inovadores, nenhum dos quais é o único responsável pelos atributos desejáveis aqui revelados.
[0006] Em um aspecto, um aparelho configurado para codificar (por exemplo, codificar ou decodificar) a informação de vídeo inclui uma unidade de memória e um processador em comunicação com a unidade de memória. A unidade de memória é configurada para armazenar informação de vídeo associado com uma primeira camada de vídeo tendo uma imagem em curso. O processador é configurado para processar um primeiro deslocamento associado com a imagem em curso, o primeiro deslocamento que indica a diferença entre (a) os bits mais significativos (MSBs) de uma primeira contagem de ordenamento de imagem (POC) de uma imagem anterior na primeira camada de vídeo que precede a imagem atual, na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual.
[0007] Em outro aspecto, um método de codificar informação de vídeo compreende processar um primeiro deslocamento associado com uma imagem atual em uma primeira camada de vídeo, o primeiro deslocamento indicando uma diferença entre (a) os bits mais significativos (MSBs) de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual.
[0008] Em outro aspecto, um meio legível por computador não transitório compreende código que, quando executado, faz com que um aparelho execute um processo. O processo inclui armazenar informação de vídeo associada com a primeira camada de vídeo tendo uma imagem atual, e processar um primeiro deslocamento associado com a imagem atual, o primeiro deslocamento indicando uma diferença entre (a) os bits mais significativos (MSBs) de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual.
[0009] Em outro aspecto, um dispositivo de codificação de vídeo configurado para codificar informação de vídeo compreende meio para armazenar informação de vídeo associada com uma primeira camada de vídeo tendo uma imagem atual, e meio para processar um primeiro deslocamento associado com a imagem atual, o primeiro deslocamento indicando uma diferença entre (a) bits mais significativos (MSBs) de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual.
BREVE DESCRIÇÃO DOS DESENHOS
[0010] A FIGURA 1A é um diagrama em blocos que ilustra um sistema de codificação e decodificação de vídeo exemplar que pode utilizar técnicas de acordo com os aspectos descritos nessa revelação.
[0011] A FIGURA 1B é um diagrama em blocos que ilustra outro sistema de codificação e decodificação de vídeo exemplar que pode executar técnicas de acordo com aspectos descritos nessa revelação.
[0012] A FIGURA 2A é um diagrama em blocos que ilustra um exemplo de um codificador de vídeo que pode implementar técnicas de acordo com aspetos descritos nessa revelação.
[0013] A FIGURA 2B é um diagrama em blocos que ilustra um exemplo de um codificador de vídeo que pode implementar técnicas de acordo com aspetos descritos nessa revelação.
[0014] A FIGURA 3A é um diagrama em blocos que ilustra um exemplo de um decodificador de vídeo que pode implementar técnicas de acordo com aspetos descritos nessa revelação.
[0015] A FIGURA 3B é um diagrama em blocos que ilustra um exemplo de um decodificador de vídeo que pode implementar técnicas de acordo com aspetos descritos nessa revelação.
[0016] A FIGURA 4 é um diagrama em blocos que ilustra uma configuração exemplar de imagens em diferentes camadas.
[0017] A FIGURA 5 é uma tabela que ilustra valores POC de imagens em diferentes camadas.
[0018] A FIGURA 6 é um diagrama em blocos que ilustra configuração exemplar de imagens em diferentes camadas.
[0019] A FIGURA 7 é uma tabela que ilustra valores POC de imagens em diferentes camadas.
[0020] A FIGURA 8 é um fluxograma que ilustra um método de codificar informação de vídeo, de acordo com uma modalidade da presente revelação.
DESCRIÇÃO DETALHADA
[0021] Em geral, essa revelação se refere ao gerenciamento POC para codificação de vídeo de múltiplas camadas no contexto de codecs de vídeo avançados, tal como HEVC (Codificação de Vídeo de Alta Eficiência). Mais especificamente, a presente invenção se refere aos sistemas e métodos para desempenho aperfeiçoado de predição entre camadas em extensão de codificação de vídeo escalável (SVC) de HEVC.
[0022] Codificação de vídeo escalável (SVC) se refere à codificação de vídeo na qual uma camada de base (BL), algumas vezes referida como uma camada de referência (RL), e uma ou mais camadas de otimização escaláveis (ELs) são usadas. Em SVC, a camada de base pode carregar dados de vídeo com um nível de base de qualidade. A uma ou mais camadas de otimização podem carregar dados adicionais de vídeo para suportar, por exemplo, níveis espaciais, temporais e/ou de sinal/ruído (SNR) superiores. As camadas de otimização podem ser definidas em relação a uma camada previamente codificada. Por exemplo, uma camada inferior pode servir como uma BL, enquanto que uma camada superior pode servir como uma EL. As camadas do meio podem servir como ELs ou como RLs, ou ambas. Por exemplo, uma camada do meio (por exemplo, uma camada que não seja a camada mais baixa nem a camada mais alta) pode ser uma EL para as camadas abaixo da camada do meio, tal como a camada de base ou qualquer camada de otimização intermediária, e ao mesmo tempo servir como uma RL para uma ou mais camadas de otimização acima da camada do meio. Similarmente, na extensão 3D ou de múltiplas vistas do padrão HEVC, pode haver múltiplas vistas, e informação de uma vista pode ser utilizada para codificar (por exemplo, codificar ou decodificar) a informação de outra vista (por exemplo, estimativa de movimento, predição de vetor de movimento e/ou outras redundâncias).
[0023] Em alguns esquemas de codificação de vídeo, uma contagem de ordenamento de imagem (POC) pode ser usada para indicar a ordem na qual as imagens devem ser produzidas ou exibidas. Adicionalmente, em algumas implementações, o valor da POC pode ser reajustado (por exemplo, ajustado para zero, ajustado para um valor sinalizado no fluxo de bits, ou derivado da informação incluída no fluxo de bits) sempre que certos tipos de imagens forem processados no fluxo de bits. Por exemplo, quando certas imagens de ponto de acesso aleatório são processadas no fluxo de bit, o POC pode ser reajustado.
[0024] Para melhorar a eficiência de taxa de bits, em algumas implementações, apenas uma porção do POC é sinalizada. Por exemplo, os bits menos significativos (LSBs) do POC podem ser sinalizados e os bits mais significativos (MSBs) do POC podem ser calculados (por exemplo, determinados) utilizando o tipo de unidade de camada de abstração de rede (NAL) da imagem e os LSBs e/ou MSBs das imagens que precedem a imagem atual na ordem de decodificação. Em outras implementações, informação MSB de POC pode ser sinalizada na extensão de cabeçalho de fatia de certos tipos de imagens, incluindo imagens de acesso aleatório limpo (CRA) e imagens de acesso de link interrompido (BLA), para melhorar a resiliência de erro do processo de derivação POC. Contudo, o uso da informação MSB de POC sinalizada para calcular os valores POC apenas para imagens CRA e BLA (com NoRas1OutputFlag igual a um valor de 1) pode resultar em valores incorretos de POC ou resultar em valores de POC que não são alinhados através de múltiplas camadas em alguns casos. Alinhamento através de múltiplas camadas (por exemplo, alinhamento cruzado), por exemplo, ocorre quando cada imagem de uma unidade de acesso tem o mesmo valor POC, de tal modo que as imagens da unidade de acesso são emitidas simultaneamente ou quase simultaneamente. Tal não alinhamento violaria a restrição exigida pelo padrão de Codificação de Vídeo de Alta Eficiência Escalável (SHVC) que determina que as imagens em uma única unidade de acesso tenham valores de POC idênticos.
[0025] Assim, um método de codificação aperfeiçoado para derivar os valores de POC é desejado.
[0026] Na presente revelação, várias técnicas que podem ser usadas para aperfeiçoar a derivação de POC para codificação de vídeo de múltiplas camadas são descritas. Em algumas modalidades da presente revelação, informação MSB de POC (algumas vezes referidas como um “ciclo MSB de POC” na presente revelação) pode ser provida não apenas com imagem CRA e BLA, mas também com imagens de renovação instantânea de decodificador (IDR). Mediante provisão da informação MBS de POC em conexão com imagens IDR, resiliência de erro e derivação POC aperfeiçoada podem ser obtidas também para as imagens IDR. Em algumas modalidades da presente revelação, a informação MSB de POC pode ser utilizada de diferentes formas com base em se a informação MSB de POC é provida ou não com imagem de reajuste de POC. Por exemplo, se a informação MSB de POC for provida com uma imagem de reajuste de POC, a informação MSB de POC pode ser usada para atualizar os valores POC das imagens no armazenador temporário de imagem decodificada (DPB). Se a informação MSB de POC for provida com uma imagem de não reajuste de POC, a informação MSB de POC é usada para calcular (por exemplo, determinar) o POC da imagem de não reajuste de POC. Mediante consideração de se a imagem é uma imagem de reajuste de POC, um codificador pode ser capaz de impedir que as imagens no DPB se tornem fora de ordem após um reajuste de POC.
[0027] Na descrição abaixo, técnicas H.264/AVC relacionadas a certas modalidades são descritas; o padrão HEVC e as técnicas relacionadas também são discutidos. Embora certas modalidades sejam descritas aqui no contexto dos padrões HEVC e/ou H.264, aqueles com conhecimento comum na arte podem considerar que os sistemas e métodos aqui revelados podem ser aplicáveis a qualquer padrão de codificação de vídeo adequado. Por exemplo, modalidades aqui reveladas podem ser aplicáveis a um ou mais dos seguintes padrões (por exemplo, incluindo os padrões desenvolvidos pelo International Telecommucation Union Telecommunication Standardization Sector [ITU-T] Video Coding Experts Group [VCEG] ou International Organization for Standardization/International Electrotechnical Commission [ISO/IEC] Moving Pictures Experts Group [MPEG]): ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 ou ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual e ITU-T H.264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo as extensões de Codificação de Vídeo Escalável (SVC) e Codificação de Vídeo de Múltiplas Vistas (MVC).
[0028] HEVC geralmente acompanha a estrutura de quadro dos padrões anteriores de codificação de vídeo em muitos aspectos. A unidade de predição em HEVC é diferente das unidades de predição (por exemplo, macro blocos) em certos padrões de codificação de vídeo. Na realidade, o conceito de macro bloco não existe em HEVC como entendido em certos padrões de codificação de vídeo, anteriores. O macro bloco é substituído por uma estrutura hierárquica baseada em um esquema quadtree, o qual pode proporcionar elevada flexibilidade, entre outros benefícios possíveis. Por exemplo, com o esquema HEVC, três tipos de blocos, Unidade de Codificação (CU), Unidade de Predição (PU), e Unidade de Transformada (TU), são definidos. CU pode se referir à unidade básica de divisão de região. CU pode ser considerada análoga ao conceito de macro bloco, mas HEVC não limita o tamanho máximo de CUs e pode permitir divisão recursiva em quatro CUs de tamanhos iguais para melhorar a capacidade de adaptação de conteúdo. PU pode ser considerada a unidade básica de predição inter/intra, e uma única PU pode conter múltiplas partições de formato arbitrário para codificar efetivamente os padrões de imagem irregular. PU pode ser considerada a unidade básica de transformada. A TU pode ser definida independentemente a partir da PU; contudo, o tamanho de uma PU pode ser limitada ao tamanho da CU a qual pertence a PU. Essa separação da estrutura de blocos em três conceitos diferentes pode permitir que cada unidade seja otimizada de acordo com a função respectiva da unidade, a qual pode resultar em eficiência de codificação aperfeiçoada.
[0029] Com propósitos apenas de ilustração, certas modalidades aqui reveladas são descritas com exemplos incluindo apenas duas camadas (por exemplo, uma camada inferior tal como a camada de base, e uma camada superior tal como a camada de otimização) de dados de vídeo. Uma “camada” de dados de vídeo pode geralmente se referir a uma sequência de imagens tendo ao menos uma característica comum, tal como uma vista, uma taxa de quadros, uma resolução, ou semelhante. Por exemplo, uma camada pode incluir dados de vídeo associados com uma vista específica (por exemplo, perspectiva) de dados de vídeo de múltiplas vistas. Como outro exemplo, uma camada pode incluir dados de vídeo associados com uma camada específica de dados de vídeo escaláveis. Assim, essa revelação pode se referir de forma permutável a uma camada e a uma vista de dados de vídeo. Por exemplo, uma vista de dados de vídeo pode ser referida como uma camada de dados de vídeo, e uma camada de dados de vídeo pode ser referida como uma vista de dados de vídeo. Além disso, um codec de múltiplas camadas (também referido como um codificador de vídeo de múltiplas camadas ou decodificador de vídeo de múltiplas camadas) pode se referir conjuntamente a um codec de múltiplas vistas ou um codec escalável (por exemplo, um codec configurado para codificar e/ou decodificar dados de vídeo utilizando MV-HEVC, 3D-HEVC, SHVC, ou outra técnica de codificação de múltiplas camadas). A codificação de vídeo e a decodificação de vídeo podem ser referidas geralmente como uma codificação de vídeo. Deve ser entendido que tais exemplos podem ser aplicáveis às configurações incluindo múltiplas camadas de base e/ou de otimização. Além disso, para facilidade de explanação, a revelação seguinte inclui os termos “quadros” ou “blocos” com referência a certas modalidades. Contudo, não se pretende que esses termos sejam limitadores. Por exemplo, as técnicas descritas abaixo podem ser usadas com quaisquer unidades de vídeo adequadas, tais como blocos (por exemplo, CU, PU, TU, macro blocos, etc.), fatias, quadros, etc.
Padrões de Codificação de Vídeo
[0030] Uma imagem digital, tal como uma imagem de vídeo, uma imagem de TV, uma imagem ou uma imagem gerada por um gravador de vídeo ou um computador, pode consistir em pixels ou amostras dispostas em linhas horizontais e verticais. O número de pixels em uma única imagem é normalmente de dezenas de milhares. Normalmente, cada pixel contém informação de luminância e crominância. Sem compressão, a grande quantidade de informação a ser transmitida de um codificador de imagem de um decodificador de imagem iria impossibilitar transmissão de imagem em tempo real. Para reduzir a quantidade de informação a transmitir, um número de métodos de compressão diferentes, tais como padrões JPEG, MPEG e h. 263, foram desenvolvido.
[0031] Os padrões de codificação de vídeo incluem ITU-T h. 261, ISO/IEC MPEG-1 Visual, ITU - T H.262 ou Visual ISO/IEC MPEG-2, ITU-T h. 263, ISO/IEC MPEG-4 Visual e ITU-T h. 264 (também conhecido como ISO/IEC MPEG-4 AVC), incluindo as suas extensões de codificação de vídeo escalável (SVC) e codificação de vídeo de múltiplas vistas (MVC).
[0032] Além disso, um vídeo de codificação padrão, ou seja, HEVC está sendo desenvolvido pela Equipe de colaboração conjunta na codificação de vídeo (JCT-VC) do ITU-T VCEG e ISO/IEC MPEG. A citação completa para o HEVC projeto 10 é documento JCTVC-L1003, Bross et al, “Codificação de Vídeo de Alta eficiência (HEVC) texto especificação projeto 10,” equipe colaboração conjunta na codificação de vídeo (JCT-VC) do ITU-T SG16 WP3 e ISO/IEC JTC1/SC29/WG11, 12° Encontro: Genebra, Suíça, 14 de janeiro de 2013 a 23 de janeiro de 2013. A extensão de múltiplas vistas para HEVC, ou seja, MV-HEVC e a extensão que pode ser dimensionada para HEVC, chamado SHVC, também estão sendo desenvolvidos pela JCT-3V (ITU-T/ISO/IEC de equipe colaborativa conjunta no desenvolvimento extensão de codificação de vídeo 3D) e JCT-VC, respectivamente.
Sistema de Codificação de Vídeo
[0033] Vários aspectos dos novos sistemas, aparelhos e métodos são descritos mais detalhadamente a seguir tendo como referência os desenhos que acompanham. Esta revelação pode, no entanto, incorporada em muitas formas diferentes e não deve ser interpretada como limitado a qualquer específicas de estrutura ou função apresentada em toda esta revelação. Em vez disso, estes aspectos são fornecidos para que esta revelação seja aprofundada e completa e totalmente vai transmitir o escopo da revelação para aqueles qualificados na arte. Baseada nos ensinamentos aqui um hábil na arte deveria apreciar que o escopo da revelação destina-se a cobrir qualquer aspecto de sistemas, aparelhos e métodos inovadores revelados neste documento, se implementado independentemente de, ou combinado com qualquer outro aspecto da revelação presente. Por exemplo, um aparelho pode ser implementado ou um método pode ser praticado usando qualquer número dos aspectos aqui estabelecidos. Além disso, o escopo da presente revelação destina-se a cobrir tais aparelhos ou um método que é praticado usando outra estrutura, funcionalidade, ou estrutura e funcionalidade, além de, ou que não sejam os vários aspectos da revelação presente aqui estabelecidos. Deve ser entendido que qualquer aspecto divulgado neste documento pode ser personificado por um ou mais elementos de uma reivindicação.
[0034] Embora aspectos particulares sejam aqui descritos, muitas variações e permutações desses aspectos abrangidos pelo âmbito da revelação. Embora alguns benefícios e vantagens dos aspectos preferenciais são mencionadas, o escopo da revelação não pretende ser limitado para benefícios particulares, usos ou objetivos. Em vez disso, os aspectos da revelação têm a finalidade de aplicação ampla às diferentes tecnologias sem fio, configurações de sistemas, redes e protocolos de transmissão, algumas das quais são ilustradas a título de exemplo, nas figuras e na seguinte descrição dos aspectos preferenciais. A descrição detalhada e desenhos são meramente ilustrativos da revelação ao invés de limitar, o escopo da revelação sendo definido pelas reivindicações acrescentadas e respectivos equivalentes.
[0035] Os desenhos anexados ilustram exemplos. Elementos indicados pela referência números nos desenhos anexados correspondem aos elementos indicados pelo gostam de números de referência na seguinte descrição. Nesta revelação, elementos com nomes que começam com palavras ordinais (por exemplo, “primeiro”, “segunda,” “terceiros” e assim por diante) não implica necessariamente que os elementos têm uma ordem específica. Pelo contrário, tais palavras ordinais são utilizadas apenas para se referir a elementos diferentes de um mesmo ou similar tipo.
[0036] A figura 1A é um diagrama de bloco que ilustra um exemplo codificação sistema vídeo 10 que pode utilizar técnicas de acordo com os aspectos descritos nesta revelação. Como usado aqui descritos, o termo “codificador de vídeo” refere-se genericamente a tanto vídeo codificadores e decodificadores de vídeo. Na revelação, os termos “codificação de vídeo” ou “codificação” pode se referir genericamente a codificação e decodificação de vídeo. Além de codificadores de vídeo e decodificadores de vídeo, os aspectos descritos no presente pedido podem ser alargados a outros dispositivos relacionados como transcodificadores (por exemplo, dispositivos que podem decodificar um fluxo de bits e re-codificar outro fluxo de bits) e dispositivos de medição e monitoração de redes (por exemplo, dispositivos que podem modificar, transformar e/ou manipular um fluxo de bits).
[0037] Como mostrado na figura 1A, vídeo codificação sistema 10 inclui um dispositivo de origem 12 que gera dados de vídeo codificados para ser decodificado em um momento posterior por um dispositivo de destino 14. No exemplo da figura 1A, o dispositivo de origem 12 e o dispositivo de destino 14 estão em dispositivos separados - especificamente, o dispositivo de origem 12 é parte de um dispositivo de origem, e o dispositivo de destino 14 faz parte de um dispositivo de destino. Deve-se notar, no entanto, que os módulos de origem 12 e de destino 14 podem estar em ou ser parte do mesmo dispositivo, como mostrado no exemplo da FIG. IB.
[0038] Com referência mais uma vez, a figura 1A, o dispositivo fonte 12 e o dispositivo de destino de 14 podem respectivamente incluir qualquer de uma ampla gama de dispositivos, incluindo computadores desktop, computadores portáteis (por exemplo, portátil), computadores tablet, caixas set-top, aparelhos de telefone, tais como os chamados “Smartphones”, chamadas “inteligentes” almofadas, televisores, câmeras, exibir dispositivos tocadores de mídia digital, consoles de videogame, dispositivo de fluxo contínuo de vídeo , ou coisa parecida. Em várias modalidades, o dispositivo fonte 12 e 14 o dispositivo de destino podem estar equipados para comunicação sem fio.
[0039] o dispositivo de destino 14 pode receber, através de um link 16, os dados de vídeo codificados para ser decodificado. O link 16 pode incluir qualquer tipo de mídia ou dispositivo capaz de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. No exemplo da figura 1A, o link 16 pode incluir um meio de comunicação para permitir que o dispositivo de origem 12 transmitir dados de vídeo codificados diretamente para o dispositivo de destino 14 em tempo real. Os dados de vídeo codificados podem ser modulados de acordo com uma padrão, como um protocolo de comunicação sem fio de comunicação e transmitidos para o dispositivo de destino 14. O meio de comunicação pode incluir qualquer meio de comunicação sem fio ou com fio, como um espectro de rádio freqüência (RF) ou uma ou mais linhas de transmissão física. O meio de comunicação pode fazer parte de uma rede baseada em pacotes, como uma rede global como a Internet, uma rede de área ampla ou uma rede de área local. O meio de comunicação pode incluir roteadores, switches, estações rádio-base ou qualquer outro equipamento que pode ser útil para facilitar a comunicação do dispositivo de origem 12 para o dispositivo de destino 14.
[0040] Alternativamente, dados codificados podem ser a saída de uma interface de saída 22 para um dispositivo de armazenamento opcional 31. Da mesma forma, dados codificados podem ser acessados do dispositivo de armazenamento 31 por uma interface de entrada 28, por exemplo, o dispositivo de destino 14. O dispositivo de armazenamento 31 pode incluir qualquer de uma variedade de mídia de armazenamento de dados distribuídos ou acessados localmente como um disco rígido, memória flash, memória volátil ou não volátil ou qualquer outra mídia de armazenamento digital adequado para armazenar dados de vídeo codificados. Em mais um exemplo, o dispositivo de armazenamento 31 pode corresponder a um servidor de arquivo ou outro dispositivo de armazenamento intermediário que pode conter o vídeo codificado gerado pelo dispositivo de fonte 12. O dispositivo de destino 14 pode acessar dados armazenados de vídeo do dispositivo de armazenamento 31 através de streaming ou download. O servidor de arquivos pode ser qualquer tipo de servidor, capaz de armazenar dados de vídeo codificados e transmitir que codificado dados de vídeo para o dispositivo de destino 14. Servidores de arquivos de exemplo incluem um servidor web (por exemplo, para um site), um servidor de protocolo de transferência de arquivo (FTP), dispositivos de armazenamento (NAS) ligados em rede ou uma unidade de disco local. O dispositivo de destino 14 pode acessar os dados de vídeo codificados através de qualquer conexão de dados padrão, incluindo uma conexão de Internet. Isto pode incluir um canal sem fio (por exemplo, uma conexão de rede local sem fio [WLAN]), uma conexão com fio (por exemplo, uma linha de assinante digital (DSL), um modem de cabo, etc.), ou uma combinação de ambos de que é adequada para acessar dados de vídeo codificados, armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados do dispositivo de armazenamento 31 pode ser uma transmissão de fluxo contínuo, uma transmissão de baixar ou uma combinação de ambos.
[0041] As técnicas de revelação não estão limitadas a aplicações sem fio ou configurações. As técnicas podem ser aplicadas para codificação de vídeo para apoiar qualquer de uma variedade de aplicações de multimídia, tais como transmissões de televisão via satélite, as transmissões de televisão por cabo, transmissões de televisão por satélite, streaming de transmissões de vídeo, por exemplo, através da Internet (por exemplo, dinâmico adaptável transmissão sobre protocolo de transferência de hipertexto (HTTP), etc.), codificação de vídeo digital para armazenamento em um meio de armazenamento de dados, decodificação de vídeo digital armazenado em um meio de armazenamento de dados , ou outras aplicações. Em alguns exemplos, sistema 10 de codificação de vídeo pode ser configurado para oferecer suporte a transmissão de vídeo unidirecional ou bidirecional para oferecer suporte a aplicativos como vídeo streaming, reprodução de vídeo, transmissão de vídeo e/ou vídeo telefonia.
[0042] No exemplo da figura 1A, o dispositivo de origem 12 inclui uma fonte de vídeo 18, um codificador de vídeo 20 e a interface de saída 22. Em alguns casos, a interface de saída 22 pode incluir um modulador/demodulador (modem) e/ou um transmissor. Em 12 o dispositivo de origem, a fonte de vídeo 18 pode incluir uma fonte como um dispositivo de captura de vídeo, por exemplo, uma câmera de vídeo, um arquivo de vídeo contendo anteriormente vídeo capturado, interface para receber o vídeo de um provedor de conteúdo de vídeo, e/ou um sistema de gráficos de computador para gerar dados de gráficos de computador como a fonte de vídeo, ou uma combinação de fontes de alimentação de um vídeo. Como um exemplo, se a fonte de vídeo 18 é uma câmera de vídeo, o dispositivo fonte 12 e o dispositivo de destino 14 podem formar câmera chamados telefones ou telefones de vídeo, conforme ilustrado no exemplo da FIG. IB. No entanto, as técnicas descritas nesta revelação podem ser aplicáveis para codificação de vídeo em geral e podem ser aplicadas para aplicações sem fio ou com fio.
[0043] O vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. Os dados codificados de vídeo podem ser transmitidos diretamente para o dispositivo de destino 14 através da interface de saída 22 do dispositivo fonte 12. Os dados de vídeo codificados podem também (ou alternativamente) armazenados no dispositivo de armazenamento 31 para posterior acesso pelo dispositivo destino 14 ou outros dispositivos, para decodificação e/ou reprodução, codificador de vídeo 20 ilustrado na figura 1A e IB podem incluir codificador de vídeo 20 ilustrados figura 2A, codificador de vídeo 23 ilustrado na figura 2B ou qualquer outro codificador de vídeo aqui descritos.
[0044] No exemplo da figura 1A, o dispositivo de destino 14 inclui a interface de entrada 28, um decodificador de vídeo 30 e um dispositivo de visualização de 32. Em alguns casos, a interface de entrada 28 pode incluir um receptor e/ou um modem. A interface de entrada 28 do dispositivo destino 14 pode receber os dados de vídeo codificados no link 16 e/ou do dispositivo de armazenamento 31. Os dados de vídeo codificados comunicadas sobre o link 16, ou fornecidos no dispositivo de armazenamento 31, podem incluir uma variedade de elementos de sintaxe gerado pelo codificador de vídeo 20 para uso por um decodificador de vídeo, tais como o decodificador de vídeo 30, na decodificação de dados de vídeo. Tais elementos de sintaxe podem ser incluídos com o codificado dados de vídeo transmitidos em um meio de comunicação, armazenados em um meio de armazenamento ou armazenado um servidor de arquivos. Decodificador de vídeo 30 ilustrado na figura 1A e IB pode incluir decodificador de vídeo 30 ilustrados figura 3A, decodificador de vídeo 33 ilustrado na figura 3B ou qualquer outro decodificador de vídeo aqui descritos.
[0045] O dispositivo exibir 32 pode ser integrado com, ou externo, o dispositivo de destino 14. Em alguns exemplos, o dispositivo de destino 14 pode incluir um dispositivo de visualização integrado e também ser configurado para interface com um dispositivo de display externo. Em outros exemplos, o dispositivo de destino 14 pode ser um dispositivo de exibição. Em geral, o dispositivo de exibição 32 exibe os dados de vídeo decodificados para um usuário e pode incluir qualquer de uma variedade de dispositivos de exibição como um display de cristal líquido (LCD), um display de plasma, uma exposição de diodo (OLED) emitindo luz orgânico ou outro tipo de dispositivo de exibição.
[0046] Em aspectos relacionados, FIG. IB mostra um exemplo de vídeo, codificação e decodificação sistema 10' no qual as origem e destino módulos 12, 14 estão em ou parte de um dispositivo 11. O dispositivo 11 pode ser um telefone, como um telefone “inteligente” ou coisa parecida. O dispositivo 11 pode incluir um dispositivo controlador opcional/processador 13 na comunicação operacional com as origem e destino módulos 12, 14. O sistema 10' de figo. IB pode ainda incluir uma unidade de processamento de vídeo 21 entre 20 de codificador de vídeo e a interface de saída 22. Em algumas implementações, a unidade de processamento de vídeo 21 é uma unidade separada, conforme ilustrado na FIG. IB; no entanto, em outras implementações, a unidade de processamento de vídeo 21 pode ser implementada como uma porção de codificador de vídeo 20 e/ou o dispositivo de controlador de processador/13. O sistema de 10' pode também incluir um perseguidor opcional 29, que pode acompanhar um objeto de interesse em uma seqüência de vídeo. O objeto ou interesse a ser controladas pode ser segmentado por uma técnica descrita em relação a um ou mais aspectos de revelação do presente. Em aspectos relacionados, o rastreamento pode ser realizado pelo dispositivo de exposição 32, sozinho ou em conjunto com o rastreador 29. O sistema 10' de figo. IB e seus componentes, caso contrário são semelhantes ao sistema 10 da figura 1A e os seus componentes.
[0047] O codificador de vídeo 20 e decodificador de vídeo 30 podem operar de acordo com um compressão de vídeo padrão, tais como padrão HEVC e podem estar em conformidade com um modelo de teste HEVC (HM). Alternativamente, codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou de indústria, tais como o ITU-T h. 264 padrão, Alternativamente conhecido como MPEG-4, parte 10, AVC ou extensões de tais normas. As técnicas de revelação, no entanto, não estão limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de compressão de vídeo, MPEG-2 e ITU-T h. 263.
[0048] Embora não mostrado nos exemplos da figura 1A e IB, codificador de vídeo 20 e decodificador de vídeo 30 cada um podem ser integrados com um áudio codificador e decodificador e podem incluir unidades de MUX-DEMUX adequadas, 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 separado. Se for caso disso, em alguns exemplos, unidades de MUX-DEMUX podem de acordo com o protocolo de ITU H.223 Multiplexador, ou outros protocolos, como o protocolo de datagrama de usuário (UDP).
[0049] Codificador de vídeo 20 e o decodificador de vídeo 30 podem ser implementados como qualquer um de uma variedade de circuitos de codificação apropriados, tais como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados específicos de aplicativo (ASICs), matrizes de campo portão programável (FPGAs), lógica discreta, software, hardware, firmware ou qualquer combinação das mesmas. Quando as técnicas são implementadas parcialmente no software, um dispositivo pode armazenar instruções para o software em um meio informático adequado, não transitórios e execute as instruções no hardware usando um ou mais processadores para executar as técnicas de revelação. Cada um de codificador de vídeo 20 e decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, ou pode ser integrado como parte de um codificador/decodificador (CODEC) combinado em um dispositivo respectivo.
Processo de Codificação de Vídeo
[0050] Como mencionado brevemente acima, codificador de vídeo 20 codifica dados de vídeo. Os dados de vídeo podem incluir uma ou mais imagens. Cada uma das imagens é uma imagem estática, formando parte de um vídeo. Em alguns casos, uma imagem pode ser referida como um vídeo “quadro”. Quando o codificador de vídeo 20 codifica os dados de vídeo, codificador de vídeo 20 pode gerar um fluxo de bits. O fluxo de bits pode incluir uma seqüência de bits que formam uma representação codificada dos dados de vídeo. O fluxo de bits pode incluir imagens codificadas e dados associados. Uma imagem codificada é uma representação codificada de uma imagem.
[0051] Para gerar o fluxo de bits, codificador de vídeo 20 pode executar operações de codificação em cada imagem nos dados de vídeo. Quando o codificador de vídeo 20 executa operações de codificação nas imagens, codificador de vídeo 20 pode gerar uma série de imagens codificadas e dados associados. Os dados associados podem incluir conjuntos de parâmetros de vídeo (VPSs), conjuntos de parâmetros de seqüência (SPSs), conjuntos de parâmetros de imagem (PPSs), conjuntos de parâmetros de adaptação (APSs) e outras estruturas de sintaxe. Uma SPS podem conter parâmetros aplicáveis para zero ou mais seqüências de imagens. Um PPS pode conter parâmetros aplicáveis para zero ou mais imagens. Um APS pode conter parâmetros aplicáveis para zero ou mais imagens. Parâmetros em um APS podem ser parâmetros que tem mais chances de mudar parâmetros em um PPS.
[0052] Para gerar uma imagem codificada, codificador de vídeo 20 pode dividir uma imagem em tamanho igualmente a blocos. Um bloco de vídeo pode ser uma matriz bidimensional de amostras. Cada um dos blocos de vídeo está associado com um treeblock. Em alguns casos, um treeblock pode ser referido como uma maior unidade de codificação (UTL). O treeblocks de HEVC pode ser amplamente análoga para os macroblocos de padrões anteriores, tais como H.264/AVC. No entanto, um treeblock não é necessariamente limitada a um determinado tamanho e pode incluir uma ou mais unidades de codificação (CUs). Codificador de vídeo 20 pode usar núcleo dividir a partição os blocos de vídeo de treeblocks em bloco de vídeos associados com CUs, daí o nome “treeblocks.”
[0053] Em alguns exemplos, codificador de vídeo 20 pode dividir uma imagem em uma pluralidade de fatias. Cada uma das fatias pode incluir um número inteiro de CUs. Em alguns casos, uma fatia é composto por um número inteiro de treeblocks. Em outros casos, um limite de uma fatia pode ser dentro de um treeblock.
[0054] Como parte da realização de uma operação de codificação em uma imagem, codificador de vídeo 20 pode executar operações de codificação em cada fatia da imagem. Quando o codificador de vídeo 20 executa uma operação de codificação em uma fatia, codificador de vídeo 20 pode gerar dados codificados, associados com a fatia. Os dados codificados associados a fatia podem ser referidos como uma “fatia codificada”.
[0055] Para gerar uma fatia codificada, codificador de vídeo 20 pode executar operações de codificação em cada treeblock em uma fatia. Quando o codificador de vídeo 20 executa uma operação de codificação em um treeblock, codificador de vídeo 20 pode gerar um código treeblock. O treeblock codificada pode incluir dados que representa uma versão codificada do treeblock.
[0056] Quando o codificador de vídeo 20 gera uma fatia codificada, codificador de vídeo 20 pode efetuar operações de codificação com (por exemplo, codificar) os treeblocks na fatia de acordo com uma ordem de varredura de rastreamento. Por exemplo, o codificador de vídeo 20 pode codificar o treeblocks da fatia em uma ordem que procede da esquerda para a direita através de uma linha superior de treeblocks na fatia, então da esquerda para a direita em uma próxima linha inferior de treeblocks, e assim por diante até que o codificador de vídeo 20 tenha codificado cada um dos treeblocks na fatia.
[0057] Como resultado da codificação do treeblocks de acordo com a ordem de varredura de rastreamento, o treeblocks acima e à esquerda de um determinado treeblock pode ter sido codificados, mas treeblocks abaixo e à direita do treeblock dado ainda não ter sido codificados. Por conseguinte, codificador de vídeo 20 pode ser capaz de acessar informação geradas pela codificação treeblocks acima e à esquerda do treeblock dado ao codificar o dado treeblock. No entanto, codificador de vídeo 20 pode ser incapaz de acessar informação geradas pela codificação treeblocks abaixo e à direita do treeblock dado ao codificar o dado treeblock.
[0058] Para gerar um treeblock codificado, codificador de vídeo 20 pode recursivamente realizar núcleo divisão do bloco vídeo do treeblock para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode ser associado com uma CU diferente. Por exemplo, codificador de vídeo 20 pode dividir o bloco de vídeo de um treeblock em quatro dimensões igualmente sub-blocos, dividir um ou mais dos blocos sub em quatro sub-sub-blocks de igual tamanho e assim por diante. Uma CU dividida pode ser uma CU cujo bloco de vídeo é dividido em blocos de vídeo associados com outras CUs. Uma CU não-dividida pode ser uma CU cujo bloco de vídeo não é dividido em bloco de vídeos associados com outras CUs.
[0059] Um ou mais elementos de sintaxe no fluxo de bits podem indicar um número máximo de vezes que o codificador de vídeo 20 pode dividir o bloco de vídeo de um treeblock. Um bloco de vídeo de uma CU pode ser quadrado em forma. O tamanho do bloco de vídeo de uma CU (por exemplo, o tamanho da CU) pode variar de 8x8 pixels até o tamanho de um bloco de vídeo de um treeblock (por exemplo, o tamanho da treeblock) com um máximo de 64 x 64 pixels ou maior.
[0060] O codificador de vídeo 20 pode efetuar operações de codificação com (por exemplo, codificar) cada CU de uma treeblock de acordo com uma ordem de varredura z. Em outras palavras, o codificador de vídeo 20 pode codificar uma CU superior esquerda, uma CU superior direita, uma CU inferior esquerda e em seguida uma CU inferior-direita, nessa ordem. Quando o codificador de vídeo 20 executa uma operação de codificação em uma CU dividida, codificador de vídeo 20 pode codificar CUs associados sub-blocos do bloco da CU dividida de acordo com a ordem de varredura z. Em outras palavras, o codificador de vídeo 20 pode codificar uma CU associados com um bloco secundário superior esquerdo, uma CU associados com um bloco secundário superior direito, uma CU associados com um bloco secundário inferior esquerdo e então uma CU associados com um bloco secundário inferior-direito, nessa ordem.
[0061] Como um resultado da codificação os CUs de uma treeblock de acordo com uma ordem de varredura z, as CUs acima, acima e à esquerda, acima e à direita, esquerda e abaixo e à esquerda de um determinada CU podem ter sido codificadas. CUs abaixo e à direita da CU determinada ainda não foram codificadas. Consequentemente, o codificador de vídeo 20 pode ser capaz de acessar informação gerada mediante codificação de algumas CUs adjacentes à CU determinada ao codificar a CU determinada. No entanto, o codificador de vídeo 20 pode ser incapaz de acessar informação gerada por codificação de outras CUs adjacentes à CU determinada ao codificar a CU determinada.
[0062] Quando o codificador de vídeo 20 codifica uma CU não divididas, codificador de vídeo 20 pode gerar um ou mais predição unidades (PUs) para a CU. Cada um do PUs da CU pode ser associado com um bloco de vídeo diferente dentro do bloco da CU vídeo codificador 20 pode gerar um bloco de vídeo previsto para cada PU da CU. O bloco de vídeo previsto de uma PU pode ser um bloco de amostras. Codificador de vídeo 20 pode usar predição intra ou inter Predição para gerar o bloco de vídeo previsto para uma PU.
[0063] Quando o codificador de vídeo 20 utiliza predição intra para gerar o bloco de vídeo previsto de uma PU, codificador de vídeo 20 pode gerar o bloco de vídeo previsto de PU com base em amostras decodificadas do quadro de associados com a PU. Se o codificador de vídeo 20 usa predição intra para gerar blocos de vídeo previstos do PUs de uma CU, a CU é uma CU intra previsto. Quando usa o codificador de vídeo 20 inter Predição para gerar o bloco de vídeo previsto de PU, codificador de vídeo 20 pode gerar o bloco de vídeo previsto de PU com base em amostras decodificadas de uma ou mais imagens que não sejam a imagem associada com a PU. Se 20 utilizações de codificador de vídeo inter Predição para gerar blocos de vídeo previstos do PUs de uma CU, a CU é uma CU inter previsto.
[0064] Além disso, quando o codificador de vídeo 20 utilizações inter Predição para gerar um bloco de vídeo previsto para uma PU, codificador de vídeo 20 pode gerar informação de movimento para o PU. As informação de movimento para uma PU podem indicar um ou mais blocos de referência de PU. Cada bloco de referência do PU pode ser um bloco de vídeo dentro de um quadro de referência. A imagem de referência pode ser uma imagem que não seja a imagem associada com o PU. Em alguns casos, um bloco de referência de um PU pode também ser referido como a “amostra” de referência o PU. Codificador de vídeo 20 pode gerar o bloco de vídeo previsto para o PU com base em blocos de referência de PU.
[0065] Após o codificador de vídeo 20 gera blocos de vídeo previstos para um ou mais PUs de uma CU, codificador de vídeo 20 pode gerar dados residuais para a CU com base em blocos de vídeo previstos para o PUs da CU. Os dados residuais para a CU podem indicar diferenças entre amostras nos blocos vídeo previstos para o PUs da CU e o bloco de vídeo original da CU.
[0066] Além disso, como parte da realização de uma operação de codificação em um não-dividida CU, codificador de vídeo 20 pode executar recursiva núcleo divisão dos dados residual da CU para dividir os dados residuais da CU em um ou mais blocos de dados residuais (por exemplo, blocos vídeo residuais) associados a unidades de transformada (TUs) da CU. Cada TU de uma CU pode ser associado com um bloco de vídeo residual diferente.
[0067] O codificador de vídeo 20 pode aplicar transformações um ou mais blocos de vídeo residual associado com o TUs para gerar blocos de coeficiente de transformada (por exemplo, blocos de coeficientes de transformada) associados com o TUs. Conceitualmente, um bloco de coeficiente de transformada pode ser uma matriz bidimensional (2D) dos coeficientes de transformada.
[0068] Após gerar um bloco de coeficiente de transformada, codificador de vídeo 20 pode efetuar um processo de quantização com o bloco de coeficiente de transformada. Quantização geralmente se refere a um processo no qual transformar coeficientes são quantizadas para possivelmente reduzir a quantidade de dados usadas para representar os coeficientes de transformada, fornecendo mais compressão. O processo de quantização pode reduzir a profundidade de bit associada com alguns ou todos os coeficientes de transformada. Por exemplo, um coeficiente de transformada de w bits pode ser arredondado para um coeficiente de transformada de m bits durante a quantização, onde n é maior que m.
[0069] O codificador de vídeo 20 pode associar cada CU com um valor de parâmetro (QP) de quantização. Pode determinar o valor de QP associado com uma CU como o codificador de vídeo 20 quantifica pensamento desses leitores blocos de coeficiente de transformada associados com o codificador de vídeo de cu 20 pode ajustar o grau de quantização aplicado para os blocos de coeficiente de transformada associados com uma CU, ajustando o valor de QP associado com a CU.
[0070] Após o codificador de vídeo 20 quantizar um bloco de coeficiente de transformada, o codificador de vídeo 20 pode gerar conjuntos de elementos de sintaxe que representam os coeficientes de transformada no bloco de coeficiente de transformada quantizados. Codificador de vídeo 20 pode aplicar as operações de codificação de entropia, tais como operações de contexto adaptativo binário aritmética codificação (CABAC), a alguns destes elementos de sintaxe. Outra entropia codificação técnicas como conteúdo comprimento variável adaptativa, codificação (CAVLC), intervalo de probabilidade entropia (tubulação) codificação de divisão, ou outra codificação aritmética binária também poderia ser usado.
[0071] O fluxo de bits gerado pelo codificador de vídeo 20 pode incluir uma série unidades de Abstração de Camada de Rede (NAL). Cada uma das unidades NAL pode ser uma estrutura de sintaxe contendo uma indicação de um tipo de dados na unidade NAL e bytes que contém os dados. Por exemplo, uma unidade NAL pode conter dados que representa um conjunto de parâmetros de vídeo, um conjunto de parâmetros de seqüência, um conjunto de parâmetros de imagem, uma fatia de codificado, informação suplementar do realce (SEI), um delimitador de unidade de acesso, dados de enchimento ou outro tipo de dados. Os dados em uma unidade NAL podem incluir várias estruturas de sintaxe.
[0072] O decodificador de vídeo 30 pode receber o fluxo de bits gerado pelo codificador de vídeo 20. O fluxo de bits pode incluir uma representação codificada dos dados de vídeo codificados pelo codificador de vídeo 20. Quando o decodificador de vídeo 30 recebe o fluxo de bits, decodificador de vídeo 30 pode executar uma operação de análise sobre o fluxo de bits. Quando o decodificador de vídeo 30 executa a operação de análise, decodificador de vídeo 30 pode extrair elementos de sintaxe do fluxo de bits. Decodificador de vídeo 30 pode reconstruir as imagens dos dados de vídeo com base nos elementos de sintaxe extraídos o fluxo de bits. O processo para reconstruir os dados de vídeo com base nos elementos de sintaxe pode ser geralmente recíproco ao processo realizado pelo codificador de vídeo 20 para gerar os elementos de sintaxe.
[0073] Após o decodificador de vídeo 30 extrai os elementos de sintaxe associados com uma CU, decodificador de vídeo 30 pode gerar blocos de vídeo previstos para o PUs da CU com base nos elementos de sintaxe. Além disso, o decodificador de vídeo 30 pode quantizar inversamente os blocos de coeficiente de transformada associados as TUs da CU. O decodificador vídeo 30 pode realizar transformadas inversas sobre os blocos de coeficiente de transformada para reconstruir bloco residuais de vídeos associados com as TUs da CU. Após gerar os blocos de vídeo previstos e reconstruir os blocos de vídeo residuais, decodificador de vídeo 30 pode reconstruir o bloco da CU com base no previsto a blocos e os blocos de vídeo residuais. Desta forma, o decodificador de vídeo 30 pode reconstruir os blocos de vídeo de CUs com base nos elementos de sintaxe no fluxo de bits.
Codificador de Vídeo
[0074] A figura 2A é um diagrama de blocos ilustra um exemplo de um codificador de vídeo que pode implementar técnicas de acordo com os aspectos descritos na revelação. Codificador de vídeo 20 pode ser configurado para processar uma única camada de um quadro de vídeo, tais como para HEVC. Codificador de vídeo, mais 20 pode ser configurado para executar qualquer uma ou todas as técnicas de revelação. Como um exemplo, a unidade de processamento de predição 100 pode ser configurado para executar qualquer ou todas as técnicas descritas nesta revelação. Em outra modalidade, codificador de vídeo 20 inclui uma unidade de predição entre camadas 128 opcional que é configurada para executar qualquer uma ou todas as técnicas descritas na revelação. Em outras modalidades, camada inter predição pode ser realizada pela unidade de processamento de predição 100 (por exemplo, a unidade de predição inter 121 e/ou unidade de predição intra 126), caso em que a unidade de predição entre camadas 128 pode ser omitida. No entanto, aspectos de revelação não são tão limitados. Em alguns exemplos, as técnicas descritas nesta revelação podem ser compartilhadas entre os vários componentes do codificador de vídeo 20. Em alguns exemplos, além disso ou, alternativamente, um processador (não mostrado) pode ser configurado para executar qualquer ou todas as técnicas descritas nesta revelação.
[0075] Com o propósito de explanação, esta revelação descreve o codificador de vídeo 20 no contexto da codificação HEVC. No entanto, as técnicas de revelação podem ser aplicáveis aos outros padrões de codificação ou métodos. O exemplo descrito na figura 2A é para um codec de camada única. No entanto, como será descrito mais com relação a figura 2B, alguns ou todos do codificador de vídeo 20 podem ser duplicados para o processamento de um codec de várias camadas.
[0076] O codificador de vídeo 20 pode executar codificação intra e inter de bloco de vídeo dentro de fatias de vídeo. Intra codificação se baseia na predição espacial para reduzir ou remover redundância espacial no vídeo dentro de um determinado quadro de vídeo ou imagens. Inter codificação depende de predição temporal para reduzir ou remover redundância temporal no vídeo dentro adjacentes quadros ou imagens de uma seqüência de vídeo. Intra-modo (I modo) pode se referir a qualquer um dos vários modos de codificação com base espaciais. Inter modos, tais como Predição de unidirecional (modo P) ou predição de bidirecional (modo B), podem se referir a qualquer um dos vários modos de codificação baseado em temporal.
[0077] No exemplo da figura 2A, codificador de vídeo 20 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do codificador de vídeo 20 incluem uma unidade de processamento de predição 100, uma unidade de geração residual 102, uma unidade de processamento de transformada 104, uma unidade de quantização 106, uma unidade de quantização inversa 108, uma unidade de transformada inversa 110, uma unidade de reconstrução 112, unidade de transformada inversa 110, um armazenador temporário de imagem decodificada 114 e uma unidade de codificação de entropia 116. A unidade de processamento de predição 100 inclui uma unidade de predição inter 121, uma unidade de estimativa de movimento 122, uma unidade de compensação de movimento 124, uma unidade de predição intra 126 e uma unidade de predição entre camadas 128. Em outros exemplos, codificador de vídeo 20 pode incluir componentes funcionais diferentes, mais ou menos. Além disso, unidade de estimativa de movimento 122 e unidade de compensação de movimento 124 podem ser altamente integrados, mas são representados no exemplo da figura 2A separadamente para fins de explicação.
[0078] O Codificador de vídeo 20 pode receber dados de vídeo. Codificador de vídeo 20 pode receber os dados de vídeo de várias fontes. Por exemplo, o codificador de vídeo 20 pode receber os dados de vídeo de vídeo fonte 18 (por exemplo, mostrado na figura 1A ou IB) ou outra fonte. Os dados de vídeo podem representar uma série de imagens. Para codificar os dados de vídeo, codificador de vídeo 20 pode executar uma operação de codificação em cada uma das imagens. Como parte de executar a operação de codificação em uma imagem, codificador de vídeo 20 pode executar operações de codificação em cada fatia da imagem. Como parte da realização de uma operação de codificação em uma fatia, codificador de vídeo 20 pode executar operações de codificação na treeblocks na fatia.
[0079] Como parte da realização de uma operação de codificação em um treeblock, A unidade de processamento de predição 100 pode executar divisão de núcleo do bloco vídeo do treeblock para dividir o bloco de vídeo em blocos de vídeo progressivamente menores. Cada um dos blocos de vídeo menores pode ser associado com uma CU diferente. Por exemplo, a unidade de processamento de predição 100 pode dividir um bloco de vídeo de um treeblock em quatro dimensões igualmente sub-blocos, partição de um ou mais dos blocos sub em quatro sub-sub-blocks de igual tamanho e assim por diante.
[0080] Os tamanhos dos blocos de vídeo associados com CUs podem variar de 8 x 8 amostras até o tamanho da treeblock com um máximo de 64 x 64 amostras ou maior. Nesta revelação, “Mapeamento” e “N por N” pode ser utilizado indistintamente para referir-se as dimensões de amostra de um bloco de vídeo em termos de dimensões verticais e horizontais, por exemplo, amostras de 16 x 16 ou 16 por 16 amostras. Em geral, um bloco de vídeo de 16 x 16 tem dezesseis amostras em uma direção vertical (y = 16) e dezesseis amostras no sentido horizontal (x = 16). Da mesma forma, um bloco de NxN geralmente tem amostras de N em uma direção vertical e N amostras no sentido horizontal, onde N representa um valor inteiro não negativo.
[0081] Além disso, como parte de executar a operação de codificação em um treeblock, a unidade de processamento de predição 100 pode gerar uma estrutura de dados hierárquica do núcleo para o treeblock. Por exemplo, um treeblock pode corresponder a um nó de raiz da estrutura de dados do núcleo. Se a unidade de processamento de predição 100 divide o bloco vídeo do treeblock em quatro sub-blocos, o nó raiz tem quatro nós filho na estrutura de dados do núcleo. Cada um de nós filho corresponde a uma CU associado a um dos blocos sub. Se a unidade de processamento de predição 100 divide um dos sub-blocos em quatro sub-sub-blocks, o nó correspondente para a CU associado com o sub-bloco de predição pode ter quatro nós filhos, a cada um dos quais corresponde uma CU associada com um dos sub-sub-blocos.
[0082] Cada nó da estrutura de dados do núcleo pode conter dados de sintaxe (por exemplo, elementos de sintaxe) para o correspondente treeblock ou CU. Por exemplo, um nó no núcleo pode incluir uma indicador dividida que indica se o bloco da CU correspondente ao nó é dividida (por exemplo, dividir) em quatro blocos de sub. Elementos de sintaxe para uma CU podem ser definido recursivamente e vai depender se o bloco da CU é dividido em sub-blocos. Uma CU cujo bloco de vídeo não estiver dividida pode corresponder a um nó de folha na estrutura de dados do núcleo. Um treeblock codificada pode incluir dados baseados na estrutura de dados do núcleo para uma treeblock correspondente.
[0083] Codificador de vídeo 20 pode executar operações de codificação em cada não-dividida CU de um treeblock. Quando o codificador de vídeo 20 executa uma operação de codificação em uma CU não divididas, codificador de vídeo 20 gera dados que representa uma representação codificada da CU não dividida.
[0084] Como parte da realização de uma operação de codificação em uma CU, a unidade de processamento de predição 100 pode dividir o bloco da CU entre uma ou mais PUs do codificador de vídeo CU 20 e o decodificador de vídeo 30 pode suportar vários tamanhos de PU. Supondo que o tamanho de uma CU particular seja 2Nx2N, o codificador de vídeo 20 e o decodificador de vídeo 30 podem suportar tamanhos de PU de 2Nx2N ou xN e predição inter em tamanhos de PU simétricos de 2Nx2N, 2NxN, Nx2N, xN, 2NxnU, nLx2N, nRx2N, ou similar. Codificador de vídeo 20 e o decodificador de vídeo 30 também podem apoiar a divisão assimétrico para tamanhos de PU de 2NxnU, 2NxnD, nLx2N e nRx2N. Em alguns exemplos, a unidade de processamento de predição 100 pode executar divisão geométrica da partição do bloco de vídeo de uma CU entre PUs da CU ao longo de um limite que não satisfaz os lados do bloco da CU em ângulos retos.
[0085] A Unidade de predição inter 121 pode executar inter predição sobre cada PU da CU. Inter predição pode fornecer compressão temporal. Para executar inter predição sobre uma PU, a unidade de estimativa de movimento 122 pode gerar informação de movimento para o PU. A unidade de compensação de movimento 124 pode gerar um bloco de vídeo previsto para o PU baseado o movimento informação e decodificadas amostras de imagens que não sejam a imagem associada com a CU (por exemplo, imagens de referência). Na revelação, um bloco previsto de vídeo gerado pela unidade de compensação de movimento 124 pode ser referido como um bloco de vídeo inter previsto.
[0086] Fatias podem ser fatias I, fatias de P, ou fatias de B. A unidade de estimativa de movimento 122 e unidade de compensação de movimento 124 pode executar operações diferentes para um PU de uma CU dependendo se o PU está em uma fatia, uma fatia de P ou uma fatia de B. Em um corto, PUs todas são intra previu. Portanto, se o PU é em uma fatia, unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 não executam inter predição sobre o PU.
[0087] Se o PU é em uma fatia de P, a imagem contendo o PU está associada uma lista de imagens de referência, conhecida como “lista 0.” Cada uma das imagens na lista 0 referência contém exemplos que podem ser utilizados para inter predição de outras imagens. Quando a unidade de estimativa de movimento 122 executa a operação de estimativa de movimento no que diz respeito um PU em uma fatia de P, unidade de estimativa de movimento 122 pode procurar as imagens de referência na lista 0 para um bloco de referência para o PU. O bloco de referência do PU pode ser um conjunto de amostras, por exemplo, um bloco de amostras, que corresponde mais estreitamente as amostras no bloco vídeo de PU. A unidade de estimativa de movimento 122 pode usar uma variedade de métricas para determinar como intimamente um conjunto de amostras em uma imagem de referência corresponde as amostras no bloco de vídeo de uma PU. Por exemplo, unidade de estimativa de movimento 122 pode determinar quão perto um conjunto de amostras em uma imagem de referência corresponde as amostras no bloco de vídeo de um PU pela soma da diferença absoluta (SAD), a soma da diferença de quadrados (SSD) ou outras métricas de diferença.
[0088] Após identificar um bloco de referência de um PU em uma fatia P, a unidade de estimativa de movimento 122 pode gerar um índice de referência que indica a imagem de referência na lista que contém o bloco de referência e um vetor de movimento que indica um deslocamento espacial entre o PU e o bloco de referência de 0. Em vários exemplos, a unidade de estimativa de movimento 122 pode gerar vetores de movimento em diferentes graus de precisão. Por exemplo, a unidade de estimativa de movimento 122 pode gerar vetores de movimento com precisão de amostra de um quarto, um oitavo amostra precisão ou outro precisão fracionária de amostra. No caso de precisão fracionária de amostra, valores de bloco de referência podem ser interpolados a partir de valores de amostra de posição de inteireza da imagem de referência. A unidade de estimativa de movimento 122 pode saída o índice de referência e o vetor de movimento como as informação de movimento de PU. A unidade de compensação de movimento 124 pode gerar um bloco vídeo previsto de PU baseado no bloco de referência identificado pelas informação de movimento de PU.
[0089] Se o PU é em uma fatia de B, a imagem contendo o PU pode estar associada com duas listas de imagens de referência, conhecidas como “lista 0” e “lista 1.” Em alguns exemplos, uma imagem que contém uma fatia de B pode estar associada uma combinação de lista que é uma combinação de listas de 0 e 1.
[0090] Além disso, se a PU está em uma fatia B, a unidade de estimativa de movimento 122 podem executar predição unidirecional ou bi-direcional Predição para o PU. Quando a unidade de estimativa de movimento 122 realiza predição unidirecional para o PU, a unidade de estimativa de movimento 122 pode procurar as imagens de referência da lista 0 ou 1 de lista para um bloco de referência para o PU. A unidade de estimativa de movimento 122 pode, em seguida, gerar um índice de referência que indica a imagem de referência na lista 0 ou lista 1 que contém o bloco de referência e um movimento de estimativa de vetor que indica um deslocamento espacial entre o PU e o bloco de referência. A unidade de estimativa de movimento 122 pode produzir o índice de referência, um indicador de direção de predição e o vetor de movimento como as informação de movimento de PU. O indicador de direção de predição pode indicar se o índice de referência indica uma imagem de referência na lista 0 ou lista 1. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo previsto de PU baseado no bloco de referência indicado pelas informação de movimento de PU.
[0091] Quando a unidade de estimativa de movimento 122 realiza predição bidirecional para uma PU, movimento estimativa unidade 122 pode procurar as imagens de referência em lista 0 para um bloco de referência para o PU e também pode pesquisar as imagens de referência na lista 1 para outro bloco de referência para o PU. A unidade de estimativa de movimento 122 então pode gerar índices de referência que indicam as imagens de referência nas listas 0 e 1 contendo os blocos de referência e o movimento de estimativa vetores que indicam deslocamentos espaciais entre os blocos referência e o PU. A unidade de estimativa de movimento 122 pode produzir os índices de referência e os vetores de movimento do PU como as informação de movimento de PU. A unidade de compensação de movimento 124 pode gerar o bloco de vídeo previsto de PU com base em blocos de referência indicados pelas informação de movimento de PU.
[0092] Em alguns casos, a unidade de estimativa de movimento 122 não dá saída a um conjunto completo de informação de movimento para uma PU para a unidade de codificação de entropia 116. Pelo contrário, a unidade de estimativa de movimento 122 pode sinalizar as informação de movimento de um PU com referência a informação de movimento de PU outro. Por exemplo, a unidade de estimativa de movimento 122 pode determinar que a informação de movimento de PU seja suficientemente semelhantes para as informação de movimento de um vizinho do PU. Neste exemplo, a unidade de estimativa de movimento 122 pode indicar, em uma estrutura de sintaxe associada com o PU, um valor que indica para o decodificador de vídeo 30 que o PU tem a mesma informação de movimento que o PU vizinha. Em outro exemplo, a unidade de estimativa de movimento 122 pode identificar, em uma estrutura de sintaxe associada com o PU, PU uma vizinha e uma diferença de vetor de movimento (MVD). A diferença do vetor de movimento indica uma diferença entre o vetor de movimento do PU e o vetor de movimento de PU vizinho indicado. Decodificador de vídeo 30 pode usar o vetor de movimento do PU vizinho indicado e a diferença do vetor de movimento para determinar o vetor de movimento de PU. Referindo-se às informação de um PU primeiro movimento quando as informação de movimento de um segundo do PU de sinalização, codificador de vídeo 20 pode ser capaz de sinalizar as informação do movimento da segunda PU usando menos bits.
[0093] Como discutido abaixo, tendo como referência a figura 8, a unidade de processamento de predição 100 pode ser configurado para código (por exemplo, codificar ou decodificar) o PU (ou qualquer outra camada de referência e/ou aprimoramento camada blocos ou unidades de vídeo) executando os métodos ilustrados na figura 8. Por exemplo, a unidade de predição inter 121 (por exemplo, através da unidade de estimativa de movimento 122 e/ou unidade de compensação de movimento 124), unidade de predição intra 126 ou unidade de predição entre camadas 128 pode ser configurada para executar os métodos ilustrados na figura 8, em conjunto ou separadamente.
[0094] Como parte da realização de uma operação de codificação em uma CU, a unidade de predição intra 126 pode realizar predição intra PUs da CU Intra predição pode fornecer compressão espacial. Quando a unidade de predição intra 126 executa predição intra sobre uma PU, a unidade de predição intra 126 pode gerar dados de predição para o PU com base em amostras decodificadas de outros PUs na mesma imagem. Os dados de predição para o PU podem incluir um bloco de vídeo previsto e vários elementos de sintaxe. A unidade de predição intra 126 pode realizar predição intra PUs em I fatias, fatias P e fatias B.
[0095] Para realizar a predição intra em uma PU, a unidade de predição intra 126 pode usar vários modos de predição intra para gerar vários conjuntos de dados de predição para o PU. Quando a unidade de predição intra 126 usa um modo de predição intra para gerar um conjunto de dados de predição para o PU, a unidade de predição intra 126 pode estender amostras de bloco de vídeos de PUs vizinhas através do bloco vídeo do PU em uma direção e/ou gradiente associado com o modo de predição intra. O PUs vizinho pode ser acima de, acima e à direita, acima e à esquerda, ou para a esquerda do PU, assumindo uma ordem esquerda para a direita, de cima para baixo de codificação para PUs, CUs e treeblocks. A unidade de predição intra 126 pode usar vários números dos modos de predição intra, por exemplo, 33 intra direcional predição modos, dependendo do tamanho do PU.
[0096] A unidade de processamento de predição 100 pode selecionar os dados de predição para um PU dentre os dados de predição gerados pela unidade de compensação de movimento 124 para a PU ou os dados de predição gerados pela unidade de predição intra 126 para a PU. Em alguns exemplos, a unidade de processamento de predição 100 seleciona os dados de predição para o PU com base em métricas de taxa/distorção dos conjuntos de dados de predição.
[0097] Se a unidade de processamento de predição 100 seleciona dados de predição gerados pela unidade de predição intra 126, a unidade de processamento de predição 100 pode sinalizar o modo predição intra que foi usado para gerar os dados de predição para o PUs, por exemplo, o modo de predição intra selecionados. A unidade de processamento de predição 100 pode sinalizar o modo de predição intra selecionados de várias maneiras. Por exemplo, pode ser provável que o modo de predição intra selecionados é o mesmo que o modo de predição intra de um vizinha do PU. Em outras palavras, o modo de predição intra do PU do vizinho pode ser o modo mais provável para o PU atual. Assim, a unidade de processamento de predição 100 pode gerar um elemento sintaxe para indicar que o modo de predição intra selecionados é o mesmo que o modo de predição intra do PU do vizinho.
[0098] Como discutido acima, o codificador de vídeo 20 pode incluir a unidade de predição entre camadas 128. A unidade de predição entre camadas 128 é configurada para prever um bloco atual (por exemplo, um bloco atual no EL) usando uma ou mais camadas diferentes que estão disponíveis no SVC (por exemplo, uma camada de base ou de referência). Tal predição pode ser referida como camada inter predição. A unidade de predição entre camadas 128 utiliza métodos de predição para reduzir a camada inter redundância, desse modo melhorando a eficiência de codificação e reduzindo os requisitos de recursos computacionais. Alguns exemplos de predição inter camada, camada inter intra predição, predição de movimento de camada inter e inter camada residual predição. Predição de camada inter intra usa a reconstrução dos blocos co- localizados na camada de base para prever o bloco atual na camada de reforço. Predição de movimento camada inter usa informação de movimento da camada base para prever o movimento na camada de reforço. Camada inter residual predição usa o resíduo da camada base para prever o resíduo da camada de reforço. Cada um dos regimes de camada inter predição é discutido abaixo em maior detalhe.
[0099] Após a unidade de processamento de predição 100 selecionar os dados de predição de PUs de uma CU, a unidade de geração residual 102 pode gerar dados residuais para a CU subtraindo-se (por exemplo, indicado pelo sinal de menos) os blocos de vídeo previstos do PUs da CU do bloco da CU. Os dados residuais de uma CU podem incluir 2D vídeo residual que bloqueia correspondem aos componentes de amostra diferente das amostras no bloco da CU. Por exemplo, os dados residuais podem incluir um bloco de vídeo residual que corresponde às diferenças entre os componentes de luminância das amostras nos blocos vídeo previstos das PUs da CU E componentes de luminância das amostras no bloco de vídeo original da CU. Além disso, os dados residuais da CU podem incluir blocos de vídeo residuais que correspondem às diferenças entre os componentes de crominância de amostras nos blocos vídeo previstos do PUs da CU e os componentes de crominância das amostras no bloco de vídeo original da CU.
[00100] A unidade de processamento de predição 100 pode executar núcleo dividir a partição dos blocos de vídeo residuais de uma CU em sub-blocos. Cada bloco de vídeo indiviso residual pode ser associado com um diferente TU da CU. Os tamanhos e as posições dos blocos vídeo residuais associados com TUs de uma CU podem ou não podem ser baseadas sobre os tamanhos e posições de bloco de vídeos associados com o PUs da CU. Uma estrutura de núcleo conhecida como uma “quadtree residual” (RQT) pode incluir nós associados a cada um dos blocos de vídeo residuais. O TUs de uma CU pode corresponder a nós folha do RQT.
[00101] A unidade de processamento de transformada 104 pode gerar um ou mais blocos de coeficiente de transformada para cada TU de uma CU, aplicando uma ou mais transformações a um bloco de vídeo residual associado com o TU. Cada um dos blocos de coeficiente de transformada pode ser uma matriz 2D de coeficientes de transformada. A unidade de processamento de transformada 104 pode aplicar várias transformações para o bloco de vídeo residual associado com um TU. Por exemplo, a unidade de processamento de transformada 104 pode aplicar uma transformada discreta de cosseno (DCT), uma transformada direcional, ou uma transformada conceitualmente semelhante ao bloco de vídeo residual associado com um TU.
[00102] Após a unidade de processamento de transformada 104 gerar um bloco de coeficiente de transformada associado com um TU, a unidade de quantização 106 pode quantizar os coeficientes de transformada no bloco de coeficiente de transformada. A unidade de quantização 106 pode quantizar um bloco de coeficiente de transformada associado com um TU de uma CU com base em um valor de QP associado com a CU.
[00103] O Codificador de vídeo 20 pode associar um valor de QP com uma CU de várias maneiras. Por exemplo, o codificador de vídeo 20 pode executar uma análise de taxa-distorção em um treeblock associado com a CU. Na análise da taxa-distorção, codificador de vídeo 20 pode gerar várias representações codificadas da treeblock, realizando uma operação de codificação várias vezes sobre a treeblock. Codificador de vídeo 20 pode associar valores diferentes de QP a CU quando o codificador de vídeo 20 gera diferentes representações codificadas da treeblock. Codificador de vídeo 20 pode sinalizar que um determinado valor de QP é associado com a CU quando determinado valor QP é associado com a CU em uma representação codificada do treeblock que tem uma taxa de bits mais baixo e métrica de distorção.
[00104] A unidade de quantização inversa 108 e a unidade de transformada inversa 110 podem aplicar quantização inversa e transformadas inversas ao bloco de coeficiente de transformada, respectivamente, para reconstruir um bloco residual a partir do bloco de coeficiente de transformada. A unidade de reconstrução 112 podem adicionar o bloco vídeo residual reconstruído para amostras correspondentes de um ou mais blocos previstos gerados pela unidade de processamento de predição 100 para produzir um bloco de vídeo reconstruído associado com um TU. de predição Ao reconstruir a blocos para cada TU de uma CU assim, codificador de vídeo 20 pode reconstruir o bloco da CU.
[00105] Após a unidade de reconstrução 112 reconstruir o bloco de vídeo de uma CU, unidade de filtro 113 pode executar uma operação de desblocagem para reduzir artefatos de bloqueio no bloco de vídeo associado com a CU. Após a realização de uma ou mais operações de desblocagem, a unidade de transformada inversa 110 pode armazenar o bloco vídeo reconstruído da CU no armazenador temporário de imagem decodificada 114. A unidade de estimativa de movimento 122 e a unidade de compensação de movimento 124 pode usar uma imagem de referência que contém o bloco reconstruído de vídeo para executar o inter predição PUs imagens subseqüentes. Além disso, a unidade de predição intra 126 pode usar blocos de vídeo reconstruídos no armazenador temporário de imagem decodificada 14 1 para realizar a predição intra em outros PUs na mesma imagem como a CU.
[00106] A unidade de codificação de entropia 116 pode receber dados de outros componentes funcionais do codificador de vídeo 20. Por exemplo, a unidade de codificação de entropia 116 pode receber blocos de coeficiente de transformada da unidade de quantização 106 e pode receber elementos de sintaxe da unidade de processamento de predição 100. Quando a unidade de codificação de entropia 116 recebe os dados, a unidade de codificação de entropia 116 pode executar uma ou mais entropia a codificação de operações para gerar entropia codificado dados. Por exemplo, o codificador de vídeo 20 pode executar uma operação de codificação de comprimento variável adaptável de contexto (CAVLC), uma operação CABAC, uma operação de codificação de comprimento variável/variável (V2V), uma operação de codificação aritmética binária de contexto-adaptável baseada em sintaxe (SBAC), uma operação de codificação de entropia de divisão de intervalo de probabilidade (PIPE), ou outro tipo de operação nos dados de codificação de entropia. A unidade de codificação de entropia 116 pode produzir um fluxo de bits que inclui os dados codificados por entropia.
[00107] Como parte da realização de uma operação nos dados de codificação de entropia, a unidade de codificação de entropia 116 pode selecionar um modelo de contexto. Se a unidade de codificação de entropia 116 está realizando uma operação de CABAC, o modelo de contexto pode indicar estimativas das probabilidades de escaninhos particulares tendo valores específicos. No contexto de CABAC, o termo “bin” é usado para se referir a um bit de uma versão binarizada de um elemento de sintaxe.
Codificador de Vídeo de Múltiplas Camadas
[00108] A figura 2B é um diagrama de blocos ilustra um exemplo de um codificador de vídeo de múltiplas camadas 23 (também simplesmente referido como o codificador de vídeo 23) que pode implementar técnicas de acordo com os aspectos descritos na revelação. Codificador de vídeo 23 pode ser configurado para processar quadros de vídeo de múltiplas camadas, tais como para SHVC e codificação de múltiplas vistas. Codificador de vídeo, mais 23 pode ser configurado para executar qualquer uma ou todas as técnicas de revelação.
[00109] O codificador de vídeo 23 inclui um codificador de vídeo 20A e codificador de vídeo 20B, cada um deles pode ser configurado como o codificador de vídeo 20 e pode executar as funções descritas acima em relação ao codificador de vídeo 20. Além disso, como indicado pela reutilização de números de referência, codificadores de 20A e 20B podem incluir pelo menos alguns dos sistemas e subsistemas como codificador de vídeo 20. Apesar de codificador de vídeo 23 é ilustrado como incluindo dois codificadores de 20A e 20B, codificador de vídeo 23 não é limitados como tal e pode incluir qualquer número de camadas de codificador de vídeo 20. Em algumas modalidades, codificador de vídeo 23 pode incluir um codificador de vídeo 20 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou codificada por um codificador de vídeo que inclui cinco camadas de codificador. Em algumas modalidades, codificador de vídeo 23 pode incluir mais camadas de codificador de quadros em uma unidade de acesso. Em alguns desses casos, algumas das camadas do codificador de vídeo podem ficar inativas durante o processamento de algumas unidades de acesso.
[00110] Além disso ao vídeo codificadores 20A e 20B, codificador de vídeo 23 podem incluir uma unidade de reamostragem 90. A unidade de reamostragem 90 pode, em alguns casos, amostrar ascendentemente uma camada de base de um quadro de vídeo recebido para, por exemplo, criar uma camada de reforço. A unidade de reamostragem 90 pode amostrar ascendentemente particular informação associadas com a camada de base recebida de um quadro, mas não outras informação. Por exemplo, a unidade de reamostragem 90 pode amostrar ascendentemente o tamanho espacial ou o número de pixels da camada de base, mas o número de fatias ou a contagem de ordenamentos de imagens pode permanecer constante. Em alguns casos, a unidade de reamostragem 90 não pode processar o vídeo recebido e/ou pode ser opcional. Por exemplo, em alguns casos, a unidade de processamento de predição 100 pode executar amostragem. Em algumas modalidades, a unidade de reamostragem 90 é configurada para amostrar ascendentemente uma camada e reorganize, restaurar , modificar ou ajustar uma ou mais fatias para cumprir com um conjunto de regras de limite de fatia e/ou regras de digitalização de rastreamento. Embora primariamente descrita como amostragem ascendente, uma camada de base, ou uma camada inferior em uma unidade de acesso, em alguns casos, a unidade de reamostragem 90 pode diminuir a resolução uma camada. Por exemplo, se durante a transmissão de uma vídeo de largura de banda é reduzido, uma moldura pode ser diminuída em vez de é aumentada.
[00111] A unidade de reamostragem 90 pode ser configurada para receber uma imagem ou quadro (ou informação de imagens associadas a imagens) do armazenador temporário de imagem decodificada 114 do codificador camada inferior (por exemplo, codificador de vídeo 20A) e para amostrar ascendentemente a imagem (ou as informação de imagens recebidas). Esta imagem é aumentada pode ser fornecida para a unidade de processamento de predição 100 de um codificador de camada superior (por exemplo, codificador de vídeo 20B) configurado para codificar uma imagem na mesma unidade de acesso como o codificador de camada inferior. Em alguns casos, o codificador de camada superior é uma camada removida do codificador camada inferior. Em outros casos, pode haver um ou mais codificadores de camada mais elevados entre o codificador de vídeo de camada 0 e o codificador de camada 1 da figura 2B.
[00112] Em alguns casos, a unidade de reamostragem 90 pode ser omitida ou ignorada. Em tais casos, a imagem do armazenador temporário de imagem decodificada 114 de codificador de vídeo 20A pode ser fornecida diretamente, ou pelo menos sem sendo fornecidos para a unidade de reamostragem 90, para a unidade de processamento de predição 100 de codificador de vídeo 20B. Por exemplo, se a dados fornecidos para o codificador de vídeo 20B e a imagem de referência de armazenador temporário do codificador de vídeo 20A imagem decodificada 114 são do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida para codificador de vídeo 20B sem qualquer reamostragem.
[00113] Em algumas modalidades, codificador de vídeo 23 diminui a dados deve ser fornecido para o codificador de camada inferior usando a unidade de amostragem descendente 94 antes fornecidos os dados de vídeo de codificador de vídeo 20A. Alternativamente, a unidade de amostragem descendente 94 pode ser uma unidade de reamostragem 90 capaz de amostragem ou amostrar descendentemente os dados de vídeo. Em ainda outras modalidades, a diminuição da resolução pela unidade de amostragem descendente 94 pode ser omitida.
[00114] Conforme ilustrado na figura 2B, codificador de vídeo 23 adicionais pode incluir um 98 multiplexador ou mux. O mux 98 pode output um fluxo de bits combinada de codificador de vídeo 23. O fluxo de bits combinada pode ser criado por tomar um fluxo de bits de cada um dos codificadores de 20A e 20B e alternando qual fluxo de bits é a saída em um determinado momento. Enquanto em alguns casos os fluxos de bits de pedaços de dois (ou mais no caso de mais de duas camadas de codificador de vídeo) podem ser alternado um pouco de cada vez, em muitos casos os fluxos de bits são combinados de forma diferente. Por exemplo, o fluxo de bits de saída pode ser criado por alternando o fluxo de bits selecionado um bloco de cada vez. Em outro exemplo, o fluxo de bits de saída pode ser criado por uma relação não - 1:1 dos blocos de cada um dos codificadores de vídeo a saída 20A e 20B. Por exemplo, dois blocos podem ser saídos do codificador de vídeo 20B para cada bloco de saída do codificador de vídeo 20A. Em algumas modalidades, o fluxo de saída da mux 98 pode ser pré- programado. Em outras modalidades, o mux 98 pode combinar os fluxos de bits de codificadores de vídeo 20A, 20B com base em um sinal de controle provenientes de um sistema externo de codificador de vídeo 23, tais como um processador em um dispositivo de fonte, incluindo o dispositivo de origem 12. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo da fonte de vídeo, 18 anos, com base em uma largura de banda do link 16, com base em uma assinatura que está associada com um usuário (por exemplo, uma assinatura paga contra uma assinatura gratuita), ou com base em qualquer outro fator para a determinação de uma saída de resolução desejada de codificador de vídeo 23.
Decodificador de Vídeo
[00115] A figura 3A é um diagrama de blocos ilustra um exemplo de um decodificador de vídeo que pode implementar técnicas de acordo com os aspectos descritos na revelação. Decodificador de vídeo 30 pode ser configurado para processar uma única camada de um quadro de vídeo, tais como para HEVC. Decodificador de vídeo, mais 30 pode ser configurado para executar qualquer uma ou todas as técnicas de revelação. Como um exemplo, a unidade de compensação de movimento 162 e/ou unidade de predição intra 164 pode ser configurada para executar qualquer ou todas as técnicas descritas nesta revelação. Em uma modalidade, decodificador de vídeo 30 opcionalmente pode incluir a unidade de predição inter 166 que é configurada para executar qualquer uma ou todas as técnicas descritas na revelação. Em outras modalidades, camada inter predição pode ser executada pela unidade de processamento de predição 152 (por exemplo, unidade de compensação de movimento 162 e/ou unidade de predição intra 164), em cujo caso a unidade de predição inter 166 pode ser omitida. No entanto, aspectos de revelação não são tão limitados. Em alguns exemplos, as técnicas descritas nesta revelação podem ser compartilhadas entre os vários componentes do decodificador de vídeo 30. Em alguns exemplos, além disso ou, alternativamente, um processador (não mostrado) pode ser configurado para executar qualquer ou todas as técnicas descritas nesta revelação.
[00116] Para fins de explicação, esta revelação descreve o decodificador de vídeo 30 no contexto da codificação HEVC. No entanto, as técnicas de revelação podem ser aplicáveis a outros padrões de codificação ou métodos. O exemplo representado na figura 3A é para um codec de camada única. No entanto, como será descrito mais com relação a figura 3B, alguns ou todos do decodificador de vídeo 30 podem ser duplicados para o processamento de um codec de várias camadas.
[00117] No exemplo da figura 3A, decodificador de vídeo 30 inclui uma pluralidade de componentes funcionais. Os componentes funcionais do decodificador de vídeo 30 incluem uma unidade de decodificação de entropia 150, uma unidade de processamento de predição 152, uma unidade de quantização inversa 154, unidade de transformada inversa 156, uma reconstrução de unidade 158, uma unidade de filtro 159 e um armazenador temporário de imagem decodificada 160. A unidade de processamento de predição 152 inclui uma unidade de compensação de movimento 162, uma unidade de predição inter 166 e unidade de predição intra 164. Em alguns exemplos, decodificador de vídeo 30 pode executar um passe decodificação recíproco geralmente para a passagem de codificação descrito em relação ao codificador de vídeo 20 da figura 2 Em outros exemplos, decodificador de vídeo 30 pode incluir componentes funcionais diferentes, mais ou menos.
[00118] O decodificador de vídeo 30 pode receber um fluxo de bits que inclui dados de vídeo codificados. O fluxo de bits pode incluir uma pluralidade de elementos de sintaxe. Quando o decodificador de vídeo 30 recebe o fluxo de bits, a unidade de decodificação de entropia 150 pode executar uma operação de análise sobre o fluxo de bits. Como resultado de executar a operação de análise sobre o fluxo de bits, unidade de decodificação de entropia 150 pode extrair elementos de sintaxe do fluxo de bits. Como parte de executar a operação de análise, a unidade de decodificação de entropia 150 pode decodificar por entropia elementos de sintaxe codificados por entropia no fluxo de bits. A unidade de processamento de predição 152, unidade de quantização inversa 154, unidade de transformada inversa 156, unidade de reconstrução 158 e unidade de filtro 159 podem realizar uma operação de reconstrução que gera dados de vídeo decodificados com base nos elementos de sintaxe extraídos o fluxo de bits.
[00119] Como discutido acima, o fluxo de bits pode incluir uma série de unidades NAL. As unidades NAL do fluxo de bits podem incluir vídeo parâmetro conjunto NAL unidades, parâmetro de seqüência definir unidades NAL, imagens parâmetro definido unidades NAL, NAL SEI unidades e assim por diante. Como parte de executar a operação de análise sobre o fluxo de bits, unidade de decodificação de entropia 150 pode executar operações de análise que o extraem e decodificam por entropia conjuntos de parâmetros de seqüência a partir das unidades de conjunto de parâmetros seqüência NAL, conjuntos de parâmetros de imagem a partir das unidades de conjunto de parâmetros seqüência NAL, dados SEI de unidades NAL SEI e assim por diante.
[00120] Além disso, as unidades NAL do fluxo de bits pode incluir unidades NAL fatia codificado. Como parte de executar a operação de análise sobre o fluxo de bits, unidade de decodificação de entropia 150 pode executar as operações de análise que extraem e decodificam por entropia as fatias codificadas das unidades NAL. Cada uma das fatias codificadas pode incluir um cabeçalho de fatia e dados da fatia. O cabeçalho de fatia pode conter elementos de sintaxe pertencentes a uma fatia. Os elementos de sintaxe no cabeçalho da fatia podem incluir um elemento de sintaxe que identifica um conjunto de parâmetros de imagem associado com uma imagem que contém a fatia. A unidade de decodificação de entropia 150 pode executar entropia decodificação de operações, tais como CABAC decodificação de operações, em elementos de sintaxe no cabeçalho da fatia codificado para recuperar o fatia de cabeçalho.
[00121] Como parte de extrair os dados da fatia de unidades NAL de fatia codificado, a unidade de decodificação de entropia 150 pode realizar as operações de análise que extrair elementos de sintaxe de CUs codificados nos dados de fatia. Os elementos de sintaxe extraídos podem incluir elementos de sintaxe associados com blocos de coeficiente de transformada. A unidade de decodificação de entropia 150 pode, em seguida, executar CABAC operações sobre alguns dos elementos de sintaxe de decodificação.
[00122] Após a unidade de decodificação de entropia 150 executar uma operação de análise em uma CU não dividida, o decodificador de vídeo 30 pode executar uma operação de reconstrução na CU não dividida. Para executar a operação de reconstrução em uma CU não divididas, decodificador de vídeo 30 pode executar uma operação de reconstrução em cada TU da CU. Através da realização de a operação de reconstrução para cada TU da CU, decodificador de vídeo 30 pode reconstruir um bloco de vídeo residual associado com a CU.
[00123] Como parte de executar uma operação de reconstrução em um TU, unidade de quantização inversa 154 pode quantizar inversamente, por exemplo, dequantizar, um bloco de coeficiente de transformada associado com o TU. A unidade de quantização inversa 154 pode quantizar inversamente o bloco do coeficiente de transformada em uma maneira similar aos processos de quantização inversa propostos para HEVC ou definido pelo padrão de decodificação H.264. A unidade de quantização inversa 154 pode usar um parâmetro de quantização QP calculado pelo codificador de vídeo 20 para uma CU do bloco de coeficiente de transformada para determinar um grau de quantização e, da mesma forma, um grau de quantização inversa para a unidade de quantização inversa 154 aplicar.
[00124] Após a unidade de quantização inversa 154 quantizar de forma inversa o bloco de coeficiente de transformada, unidade de transformada inversa 156 pode gerar um bloco de vídeo residual para a TU associada com o bloco de coeficiente de transformada. A unidade de transformada inversa 156 pode aplicar uma transformada inversa para o bloco de coeficiente de transformada para gerar o bloco de vídeo residual para o TU. Por exemplo, a unidade de transformada inversa 156 pode aplicar um inverso DCT, uma transformada inversa inteiro, uma transformada inversa de Karhunen-disponibilidade (KLT), uma transformada de rotação inversa, uma transformada inversa direcional ou outra transformada inversa para o bloco de coeficiente de transformada. Em alguns exemplos, a unidade de transformada inversa 156 pode determinar uma transformada inversa para aplicar para o bloco de coeficiente de transformada com base na sinalização de codificador de vídeo 20. Em tais exemplos, a unidade de transformada inversa 156 pode determinar a transformada inversa, com base em uma transformada sinalizada no nó raiz de um núcleo para um treeblock associado com o bloco de coeficiente de transformada. Em outros exemplos, a unidade de transformada inversa 156 pode inferir a transformada inversa de uma ou mais características, tais como o tamanho de bloco de codificação, codificação de modo ou algo parecido. Em alguns exemplos, a unidade de transformada inversa 156 pode aplicar uma transformada inversa em cascata.
[00125] Em alguns exemplos, a unidade de compensação de movimento 162 pode refinar o bloco vídeo previsto de uma PU, realizando a interpolação com base em filtros de interpolação. Identificadores para filtros de interpolação para ser utilizado para compensação de movimento, com precisão de sub-amostragem, podem ser incluídos nos elementos de sintaxe. A unidade de compensação de movimento 162 pode usar os mesmos filtros de interpolação usados pelo codificador de vídeo 20 durante a geração do bloco vídeo previsto de PU para calcular valores interpolados para amostras de sub inteiro de um bloco de referência. A unidade de compensação de movimento 162 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 de acordo com informação recebidas de sintaxe e usar os filtros de interpolação para produzir o bloco vídeo previsto.
[00126] Como discutido abaixo, tendo como referência a figura 8, a unidade de processamento de predição 152 pode codificar (por exemplo, codificar ou decodificar) o PU (ou qualquer outra camada de referência e/ou blocos de camada de reforço ou unidades de vídeo), realizando os métodos ilustrados na figura 8. Por exemplo, a unidade de compensação de movimento 162, unidade de predição intra 164 ou unidade de predição inter 166 pode ser configurada para executar os métodos ilustrados na figura 8, em conjunto ou separadamente.
[00127] Se uma PU é codificada usando predição intra, a unidade de predição intra 164 pode realizar predição intra para gerar um bloco de vídeo previsto para o PU. Por exemplo, a unidade de predição intra 164 pode determinar um modo de predição intra para o PU com base em elementos de sintaxe no fluxo de bits. O fluxo de bits pode incluir elementos de sintaxe que essa unidade de predição intra 164 pode usar para determinar o modo de predição intra de PU.
[00128] Em alguns casos, os elementos de sintaxe podem indicar que essa unidade de predição intra 164 deva usar o modo de predição intra de outra PU para determinar o modo de predição intra da PU do atual. Por exemplo, pode ser provável que o modo de predição intra do PU atual é o mesmo que o modo de predição intra de um vizinha do PU. Em outras palavras, o modo de predição intra do PU do vizinho pode ser o modo mais provável para o PU atual. Portanto, neste exemplo, o fluxo de bits pode incluir um elemento sintaxe pequeno que indica que o modo de predição intra de PU é o mesmo que o modo de predição intra do PU do vizinho. A unidade de predição intra 164 pode, em seguida, usar o modo de predição intra para gerar dados de predição (por exemplo, amostras previstos) para o PU com base em blocos de vídeo dos vizinhos espacialmente PUs.
[00129] Como discutido acima, vídeo decodificador 30 também pode incluir a unidade de predição inter 166. A unidade de predição inter 166 é configurada para prever um bloco atual (por exemplo, um bloco atual no EL) usando uma ou mais camadas diferentes que estão disponíveis no SVC (por exemplo, uma camada de base ou de referência). Tal predição pode ser referida como camada inter predição. A unidade de predição inter 166 utiliza métodos de predição para reduzir a camada inter redundância, desse modo melhorando a eficiência de codificação e reduzindo os requisitos de recursos computacionais. Alguns exemplos de predição inter camada, camada inter intra predição, predição de movimento de camada inter e inter camada residual predição. Predição de camada inter intra usa a reconstrução dos blocos co- localizados na camada de base para prever o bloco atual na camada de reforço. Predição de movimento camada inter usa informação de movimento da camada base para prever o movimento na camada de reforço. Camada inter residual predição usa o resíduo da camada base para prever o resíduo da camada de reforço. Cada um dos regimes de camada inter predição é discutido abaixo em maior detalhe.
[00130] A unidade de reconstrução 158 pode utilizar os blocos de vídeo residuais associados TUs de uma CU e os blocos de vídeo previstos do PUs da CU, por exemplo, intra-predição dados ou dados de predição inter, conforme aplicável, para reconstruir o bloco da CU. Assim, o decodificador de vídeo 30 pode gerar um bloco de vídeo previsto e um bloco de vídeo residual com base em elementos de sintaxe no fluxo de bits e pode gerar um bloco de vídeo baseado no bloco vídeo previsto e o bloco de vídeo residual.
[00131] Após a unidade de reconstrução 158 reconstruir o bloco da CU, a unidade de filtro 159 pode executar uma operação de desblocagem para reduzir o bloqueio artefatos associados com a CU. Após a unidade de filtro 159 executar uma operação de desblocagem para reduzir o bloqueio artefatos associados com a CU, decodificador de vídeo 30 pode armazenar o bloco de vídeo da CU no armazenador temporário de imagem decodificada 160. O armazenador temporário de imagem decodificada 160 pode fornecer imagens de referência para compensação de movimento subseqüente, predição intra e apresentação em um dispositivo de exibição, como dispositivo de visualização de 32 da figura 1A ou IB. Por exemplo, decodificador de vídeo 30 pode realizar, com base em blocos de vídeo no armazenador temporário de imagem decodificada 160, operações de predição intra ou inter em PUs de outras CUs.
Decodificador de Camadas Múltiplas
[00132] A figura 3B é um diagrama de blocos ilustra um exemplo de um decodificador de vídeo múltiplas camadas 33 (também simplesmente referido como decodificador de vídeo 33) que pode implementar técnicas de acordo com os aspectos descritos na revelação. Decodificador de vídeo 33 pode ser configurado para processar quadros de vídeo de múltiplas camadas, tais como para SHVC e codificação de múltiplas vistas. Além disso, o decodificador de vídeo 33 pode ser configurado para executar qualquer uma ou todas as técnicas de revelação.
[00133] O decodificador de vídeo 33 inclui um decodificador de vídeo 30A e vídeo decodificador 30B, cada um deles pode ser configurado como decodificador de vídeo 30 e pode executar as funções descritas acima em relação ao decodificador de vídeo 30. Além disso, como indicado pela reutilização de números de referência, decodificadores de vídeo 30A e 30B podem incluir pelo menos alguns dos sistemas e subsistemas como decodificador de vídeo 30. Embora o decodificador de vídeo 33 seja ilustrado como incluindo dois decodificadores de vídeo 30A e 30B, decodificador de vídeo 33 não é limitados como tal e pode incluir qualquer número de camadas de decodificador de vídeo 30. Em algumas modalidades, decodificador de vídeo 33 pode incluir um decodificador de vídeo 30 para cada imagem ou quadro em uma unidade de acesso. Por exemplo, uma unidade de acesso que inclui cinco imagens pode ser processada ou decodificada por um decodificador de vídeo que inclui cinco camadas de decodificador. Em algumas modalidades, decodificador de vídeo 33 pode incluir mais camadas de decodificador de quadros em uma unidade de acesso. Em alguns desses casos, algumas das camadas do decodificador de vídeo podem ficar inativas durante o processamento de algumas unidades de acesso.
[00134] Além disso, a vídeo decodificadores 30A e 30B, decodificador de vídeo 33 podem incluir uma unidade de amostragem ascendente 92. Em algumas modalidades, a unidade de amostragem ascendente 92 pode amostrar ascendentemente uma camada de base de um quadro de vídeo recebida para criar uma camada reforçada a ser adicionado à lista de imagens de referência para a unidade de quadro ou acesso. Esta camada reforçada pode ser armazenada no armazenador temporário de imagem decodificada 160. Em algumas modalidades, a unidade de amostragem ascendente 92 pode incluir algumas ou todas as modalidades descritas em relação a unidade de reamostragem 90 da figura 2A. Em algumas modalidades, a unidade de amostragem ascendente 92 é configurada para amostrar ascendentemente uma camada e reorganize, restaurar , modificar ou ajustar uma ou mais fatias para cumprir com um conjunto de regras de limite de fatia e/ou regras de digitalização de rastreamento. Em alguns casos, a unidade de amostragem ascendente 92 pode ser uma unidade de reamostragem configurada para amostrar ascendentemente e/ou diminuir a resolução uma camada de um quadro de vídeo recebido
[00135] A unidade de amostragem ascendente 92 pode ser configurado para receber uma imagem ou quadro (ou informação de imagens associadas a imagens) do armazenador temporário de imagem decodificada 160 do decodificador camada inferior (por exemplo, decodificador de vídeo 30A) e para amostrar ascendentemente a imagem (ou as informação de imagens recebidas). Esta imagem aumentada pode ser fornecida para a unidade de processamento de predição 152 de um decodificador de camada superior (por exemplo, decodificador de vídeo 30B) configurado para decodificar uma imagem na mesma unidade de acesso como o decodificador de camada inferior. Em alguns casos, o decodificador de camada superior é uma camada removida o decodificador de camada inferior. Em outros casos, pode haver um ou mais decodificadores de camada mais elevadas entre o decodificador camada 0 e o decodificador de camada 1 da figura 3B.
[00136] Em alguns casos, a unidade de amostragem ascendente 92 pode ser omitido ou ignorado. Em tais casos, a imagem do armazenador temporário de imagem decodificada 160 de decodificador de vídeo 30A pode ser fornecida diretamente, ou pelo menos sem ser fornecido para a unidade de amostragem ascendente 92, para a unidade de processamento de predição 152 do decodificador de vídeo 30B. Por exemplo, se o armazenador temporário de dados de vídeo fornecidos para o decodificador de vídeo 30B e o quadro de referência do armazenador temporário de imagem decodificada 160 de decodificador de vídeo 30A são do mesmo tamanho ou resolução, a imagem de referência pode ser fornecida para o decodificador de vídeo 30B sem amostragem. Além disso, em algumas modalidades, a unidade de amostragem ascendente 92 pode ser uma unidade de reamostragem 90 configurada para amostrar ascendentemente ou diminuir a resolução um quadro de referência recebeu o armazenador temporário de imagem decodificada 160 do decodificador de vídeo 30A.
[00137] Conforme ilustrado na figura 3B, decodificador de vídeo 33 adicionais pode incluir um demultiplexador 99 ou demux. O demux 99 pode se dividir um fluxo de bits de vídeo codificado em fluxos de bits múltiplos com cada saída fluxo de bits pelo demux 99 sendo fornecidos para um decodificador de vídeo diferente 30A e 30B. Os fluxos de bits múltiplos podem ser criados por receber um fluxo de bits e cada um dos decodificadores de vídeo 30A e 30B recebe uma parte do fluxo de bits em um determinado momento. Enquanto em alguns casos os bits do fluxo de bits recebido no demux 99 podem ser alternado de um bit em um tempo entre cada um dos decodificadores de vídeo (por exemplo, decodificadores de vídeo 30A e 30B no exemplo da figura 3B), em muitos casos o fluxo de bits é dividido de forma diferente. Por exemplo, o fluxo de bits pode ser dividido alternando qual decodificador de vídeo recebe o fluxo de bits um bloco de cada vez. Em outro exemplo, o fluxo de bits pode ser dividido por uma não - 1:1 relação de blocos para cada um dos decodificadores de vídeo 30A e 30B. Por exemplo, dois blocos podem ser fornecidos para o decodificador de vídeo 30B para cada bloco fornecido para o decodificador de vídeo 30A. Em algumas modalidades, a divisão do fluxo de bits pelo demux 99 pode ser pré-programado. Em outras modalidades, o demux 99 pode dividir o fluxo de bits baseado em um sinal de controle provenientes de um sistema externo para o decodificador de vídeo 33, tais como um processador em um dispositivo de destino, incluindo o dispositivo de destino 14. O sinal de controle pode ser gerado com base na resolução ou taxa de bits de um vídeo a partir da interface de entrada 28, baseado em uma largura de banda do link 16, com base em uma assinatura que está associada com um usuário (por exemplo, uma assinatura paga contra uma assinatura gratuita), ou com base em qualquer outro fator para a determinação de uma resolução obtenível pelo decodificador de vídeo 33.
Imagens de Ponto de Acesso Aleatório Intra (IRAP)
[00138] Alguns esquemas de codificação de vídeo podem fornecer pontos de acesso aleatório em todo o fluxo de bits, tal que o fluxo de bits pode ser decodificado a partir qualquer de tal ponto de acesso aleatório, sem a necessidade de decodificar quaisquer imagens que precedem tais pontos de acesso aleatório. Tais esquemas de codificação de vídeo, todas as imagens que seguem um ponto de acesso aleatório em ordem de saída (por exemplo, incluindo aquelas imagens que estão na mesma unidade como o imagem, fornecendo o ponto de acesso aleatório acesso) podem ser decodificadas corretamente sem usar nenhuma imagem que precede o ponto de acesso aleatório. Por exemplo, mesmo se uma parte do fluxo de bits é perdida durante a transmissão ou durante a decodificação, um decodificador pode retomar o fluxo de bits a partir do próximo ponto de acesso aleatório de decodificação. Suporte para acesso aleatório pode facilitar, por exemplo, dinâmico de serviços de streaming, buscam operações, mudar de canal, etc.
[00139] Em alguns sistemas de codificação, tais pontos de acesso aleatório podem ser fornecidos através de imagens que são referidas como acesso aleatório intra imagens (IAPR). Por exemplo, um ponto de acesso aleatório (por exemplo, fornecido por uma imagens IRAP de camada de realce) em uma camada de reforço (“layerA”) contida em um acesso unidade (“auA”) pode fornecer acesso aleatório camada específica tal que para cada camada de referência (“layerB”) de layerA (por exemplo, uma camada de referência sendo uma camada que é usada para prever layerA) ter um acesso aleatório ponto contido em uma unidade de acesso (“auB”) que está em layerB e precede a auA em ordem de decodificação (ou um ponto de acesso aleatório contido em auA), as imagens em layerA que seguem auB em ordem de saída (incluindo aquelas imagens localizadas em auB), são corretamente decodificado sem precisar decodificar todas as imagens na layerA que precedem auB.
[00140] Imagens IRAP podem ser codificadas utilizando a predição intra (codificado por exemplo, sem se referir a outras imagens) e pode incluir, por exemplo, imagens IDR, CRA imagens e imagens BLA. Quando há uma imagem IDR no fluxo de bits, todas as imagens que precedem a imagem IDR em ordem decodificação não são usadas para predição por imagens que se seguem a imagem IDR na ordem de decodificação. Quando há uma imagem do CRA no fluxo de bits, as imagens que seguem as imagens do CRA podem ou não podem usar imagens que precedem a imagem do CRA em ordem decodificação para predição. Imagens que seguem a imagem do CRA na ordem de decodificação, mas usam imagens que precedem a imagem do CRA na ordem de decodificação podem ser referidas como acesso aleatório ignoradas líder (RASL) imagens. Outro tipo de imagem que segue uma imagem IRAP na decodificação ordem e precede a imagem IRAP na ordem de saída é um imagem de (Ramos) líder decodificável de acesso aleatório, que não pode conter referências a quaisquer imagens que precedem a imagem IRAP na ordem de decodificação. Imagens RASL podem ser descartadas pelo decodificador, se as imagens que precedem a imagem do CRA não estão disponíveis. Uma Imagem de BLA indica ao decodificador que as imagens que precedem a Imagem de BLA podem não estar disponíveis para o decodificador (por exemplo, porque dois fluxos de bits estão combinando juntos e o imagem BLA é a primeira imagem do fluxo de bits segundo na ordem de decodificação). Uma unidade de acesso (por exemplo, um grupo de imagens que consiste de todos os imagens codificados associados com o mesmo tempo de saída em várias camadas) que contém uma imagem de camada de base (por exemplo, uma imagem com um valor de ID de camada 0) que é uma imagem IRAP pode ser referido como uma unidade de acesso IRAP.
Alinhamento de Camadas Cruzadas de Imagens IRAP
[00141] no SVC, imagens IRAP não podem ser obrigadas a ser alinhados (por exemplo, contidos na mesma unidade de acesso) em diferentes camadas. Por exemplo, se imagens IRAP eram obrigadas a serem alinhados, qualquer unidade de acesso contendo pelo menos uma figura IRAP conteria apenas imagens IRAP. Por outro lado, se imagens IRAP não eram obrigadas a ser alinhado, em uma unidade de acesso único, uma imagem (por exemplo, em uma primeira camada) pode ser uma imagem IRAP e outra imagem (por exemplo, em uma segunda camada) pode ser uma imagem de não- IRAP. Ter essas imagens IRAP não-alinhados em um fluxo de bits pode fornecer algumas vantagens. Por exemplo, em um fluxo de bits de duas camadas, se houver mais imagens IRAP na camada de base do que na camada de reforço, na transmissão e aplicações multicast, atraso de sintonizar baixo e alta eficiência de codificação é possível.
[00142] Em alguns esquemas de codificação de vídeo, uma contagem de ordenamentos de imagens (POC) pode ser usada para controlar a ordem relativa em que as imagens decodificadas são exibidas. Alguns de tais sistemas de codificação podem causar os valores POC deve ser redefinida (por exemplo, definido como zero ou definido como algum valor sinalizado no fluxo de bits) sempre que certos tipos de imagens são processados no fluxo de bits. Por exemplo, os valores POC de certas imagens IRAP podem ser redefinidos, fazendo com que os valores POC de outras imagens anteriores aquelas imagens IRAP na decodificação ordem também sejam redefinidas. Isso pode ser problemático quando as imagens IRAP não são obrigadas a ser alinhadas em diferentes camadas. Por exemplo, quando um quadro (“picA”) é uma imagem de IRAP e outra imagem (“picB”) na mesma unidade de acesso não é uma imagem IRAP, o valor POC de uma imagem (“picC”), que é redefinido devido a picA, sendo um imagem IRAP, na camada contendo picA pode ser diferente do valor de uma imagem (“picD”), que não é redefinida POC , na camada contendo picB, onde o picC e picD estão na mesma unidade de acesso. Isso faz com que o picC e picD ter valores diferentes de POC mesmo que pertencem à mesma unidade de acesso (por exemplo, mesmo tempo de saída). Assim, neste exemplo, o processo de derivação para derivar os valores POC do picC e picD pode ser modificado para produzir valores POC que são consistentes com a definição de valores POC e unidades de acesso.
Contagem de Ordenamento de imagens (POC)
[00143] Como discutido acima, o valor de uma contagem de ordenamentos de imagens (POC) (por exemplo, PicOrderCntVal em HEVC) para uma determinada imagem codificada denota que a ordem relativa da particular imagem codificada na imagem codificado de processo em relação a outras imagens na mesma sequência de vídeo de saída. Em algumas modalidades, o POC é composto por bits menos significativo (LSB) e os bits mais significativos (MSB), e o POC pode ser obtido pela concatenação de MSB e LSB. Em outras modalidades, o POC pode ser obtido adicionando o MSB e o valor do LSB. O LSB pode ser sinalizado no cabeçalho da fatia, e o MSB pode ser computado pelo codificador ou decodificador com base no tipo de unidade de NAL da imagem atual e o MSB e LSB de imagens anteriores uma ou mais na ordem de decodificação que (1) não são imagens RASL ou ramos, (2) não descartáveis (por exemplo, imagens marcadas como “descartável” indicando que não há outras imagens depende deles, permitindo-lhes a serem descartados para satisfazer as restrições de largura de banda), (3) não sub camada não-referência imagens (por exemplo, imagens que não são usadas para referência por outras imagens na mesma camada sub temporal ou a mesma camada), (4) tem um temporal (por exemplo, ID de camada sub-temporal) igual a um valor de 0. Essas imagens descritas em (l)-(4) podem ser referidos como imagens de POC-âncora. Da mesma forma, imagens, tendo um valor de ID temporal superior a um valor de 0, RASL ou imagens RADL, imagens descartáveis ou imagens de referência não sub camada podem ser referidas como imagens não-POC-âncora. Imagens de POC-âncora mais podem incluir imagens que um codificador e/ou um decodificador não pode optar por retirar o fluxo de bits (por exemplo, para satisfazer uma restrição de largura de banda). Imagens de POC-âncora mais podem incluir qualquer imagem que não sejam os tipos de imagens que um codificador e/ou um decodificador pode ser configurado para remover o fluxo de bits (por exemplo, para satisfazer uma restrição de largura de banda). Imagens de não-POC-âncora podem incluir qualquer imagem que não é uma imagem de POC-âncora.
[00144] Quando o quadro atual é (1) uma imagem IRAP com NoRaslOutputFlag (por exemplo, um sinalizador que indica que imagens RASL não devem ser a saída, se definido como um valor de 1 e indica que as imagens RASL são para ser impressos, se definido como um valor de 0) igual a um valor de 1, ou (2) um CRA imagine que é a primeira imagem do fluxo de bits , o valor de POC MSB é inferido para ser igual a um valor de 0. Conforme descrito acima, em um fluxo de bits de várias camada (por exemplo, SHVC ou MV-HEVC fluxo de bits com mais de uma camada), podem existir unidades de acesso (AU), onde uma ou mais imagens são imagens IRAP e uma ou mais outras imagens são imagens não- IRAP, e tais AUs podem ser referidos como “não-alinhados IRAP AUs.” Quando a decodificação de fluxos de bits que contém os não-alinhados IRAP AUs, é possível (e provável) que os POCs derivado com base nos valores de POC LSB sinalizados no fluxo de bits violaria os requisitos de conformidade fluxo de bits todas as imagens em uma unidade de acesso devem ter o mesmo valor POC.
[00145] Em algumas modalidades, uma indicador de redefinição POC (por exemplo, poc_reset_flag) pode ser usada para restaurar o POC das imagens tal que mesmo quando não-alinhados IRAP AUs estão presentes no fluxo de bits, o valor POC da imagem atual e as imagens do DPB são ajustados tais que o POC de todas as imagens em um AU são os mesmos.
[00146] Em algumas modalidades, em vez de um único indicador de restauração de POC, podem ser utilizados dois indicadores: um POC MSB restaurar o sinalizador (por exemplo, poc_msb_reset_flag) e um POC LSB restaurar o sinalizador (por exemplo, poc_lsb_reset_flag). O anterior (ou seja, o poc_msb_reset_flag) redefine o MSB do POC e o último (ou seja, o poc-lsb_reset_flag) redefine o LSB do POC. Ambos esses sinalizadores podem ser sinalizados no cabeçalho da fatia.
[00147] Por exemplo, se uma determinada imagem tem um valor POC de 233 e o MSB e LSB do POC constituem o bit 1 e 7 bits, respectivamente, o MSB seria “1” (por exemplo, ter um valor de 128) e o LSB seria “1010011” (por exemplo, ter um valor de 105). Assim, se apenas o MSB do POC é redefinido (por exemplo, em resposta ao processamento poc_msb_reset_flag ter um valor igual a 1), o valor POC se torna 105, e se apenas o LSB são redefinidas (por exemplo, em resposta ao processamento poc_lsb_reset_flag ter um valor igual a 1), o valor POC se torna a 128. Se tanto o MSB e LSB são redefinidas (por exemplo, em resposta ao processamento restaurar indicador de lsb poc_msb_reset_flag e poc, cada uma com um valor de 1), o valor POC se torna 0.
[00148] Em algumas modalidades, as duas indicadores (por exemplo, poc_msb_reset_flag e poc lsb restaurar indicador) pode ser substituído com um indicador de redefinição de dois bits POC. Por exemplo, o indicador de redefinição de dois bits POC pode ter 4 valores possíveis (por exemplo, 0-3), onde 0 não indica nenhuma reinicialização, 1 indica um reinicialização de MSB, 2 indica, um reinicialização de MSB e LSB, e 3 é usado para a resiliência do erro (por exemplo, indicar algo sobre outra restauração de POC como um ID de restauração de POC restaurar , POC, ID de período de restauração de POD, etc.).
Restauração de Valores POC
[00149] Com referência a figura 4-7, será descrita a motivação para restaurar os valores POC (por exemplo, a LSB e MSB) em países não-alinhados IRAP AUs. Conforme descrito acima, em alguns sistemas de codificação, certas restrições de conformidade podem especificar que o POC de todas as imagens codificadas em um único AU deve ser o mesmo. Sem restauração apropriada os valores do POC, IRAP AUs não-alinhados no fluxo de bits podem produzir valores POC que violam tais restrições de conformidade.
[00150] A figura 4 mostra um fluxo de bits de múltiplas camadas 400 incluindo uma camada de reforço (EL) 410 e uma camada de base (BL) 420. A EL 410 inclui imagens EL 412-418, e BL inclui imagens BL 422-428. O fluxo de bits de múltiplas camadas 400 inclui ainda unidades de acesso (AUs) 430-460. A AU 430 inclui a Imagem de EL 412 e a Imagem de BL 422, o AU 440 inclui a Imagem de EL 414 a Imagem de BL 424, a AU 450 inclui a Imagem de EL 416 e a Imagem de BL 426 e o AU 460 inclui a Imagem de EL 418 e a Imagem de BL 428. No exemplo da figura 4, o imagem de EL 414 é uma imagem de IDR, o correspondente BL quadro 424 a 440 AU é uma imagem à direita (por exemplo, uma imagem não- IRAP) e conseqüentemente, o AU 440 é um não-alinhados IRAP AU. Em algumas modalidades, um reinicialização de MSB é executado em uma determinada imagem se a imagem é uma imagem IDR que não está na camada de base. Um imagem tão IDR pode ter um valor de POC LSB diferente de zero.
[00151] A figura 5 mostra uma tabela 500 que ilustra os valores POC que podem ser sinalizados ou derivados em conexão com o fluxo de bits múltiplas camadas 400 da figura 4. Como mostrado na figura 5, o MSB do POC em 410 o EL é restaurar a Imagem de EL 414, enquanto o MSB do POC em 420 BL não é zerado. Assim, se um reset não é executado em 420 BL para a Imagem de BL 424 nos não- alinhados IRAP AU 440, os valores POC de imagens BL e as imagens EL nas AUs 440-460 não corresponderia (i.e., ser equivalente) conforme especificado pelas restrições de conformidade. As diferenças entre o POC valores com e sem um reset são destacadas em negrito na figura 5.
[00152] A figura 6 mostra um fluxo de bits múltiplas camadas 600 incluindo uma camada de reforço (EL) 610 e uma camada de base (BL) 620. O EL 610 inclui imagens EL 612-618, e BL inclui imagens BL 622-628. O fluxo de bits múltiplas camadas 600 mais inclui acesso unidades (AUs) 630-660. 630 AU inclui a Imagem de EL 612 a Imagem de BL 622, o AU 640 inclui a Imagem de EL 614 e a Imagem de BL 624, a 650 AU inclui a Imagem de EL 616 e a Imagem de BL 626 e 660 AU inclui a Imagem de EL 618 e a Imagem de BL 628. No exemplo da figura 6, o imagem BL 624 é um imagem IDR, a imagem correspondente do EL 614 em 640 a AU é uma imagem à direita (por exemplo, uma imagem não-IRAP) e conseqüentemente, o AU 640 é um não-alinhados IRAP AU. Em algumas modalidades, um MSB restaurar e restaurar um LSB são executadas para uma determinada imagem se a imagem é uma imagem IDR que está na camada de base. Por exemplo, o fluxo de bits pode incluir uma indicação que o POC MSB e LSB POC de tal imagem BL IDR devem ser restaurados. Alternativamente, o decodificador pode realizar a restauração do POC MSB e do POC LSB de tal imagem BL IDR sem qualquer indicação em fluxo de bits que uma restauração de POC deva ser executada.
[00153] A figura 7 mostra uma tabela 700 que ilustra os valores POC que podem ser sinalizados ou derivados em conexão com o fluxo de bits múltiplas camadas 600 da figura 6. Como mostrado na figura 7, o MSB e LSB do POC na 620 BL é restaurar a Imagem de BL 624, enquanto o MSB nem o LSB do POC em 610 o EL é redefinido. Assim, se um restauração do MSB e LSB do POC não é executado no EL 610 para a Imagem de EL 614 nos não-alinhados IRAP AU 640, os valores POC de imagens BL e as imagens EL nas AUs 640-660 não corresponderia conforme especificado pelas restrições de conformidade. As diferenças entre o POC valores com e sem um restauração são destacadas em negrito na figura 7.
[00154] As modalidades aqui descritas não são limitadas a configurações de fluxo de bits o exemplo ilustradas na figura 4 e 6, e as técnicas descritas neste documento podem ser estendidas para qualquer fluxo de bits múltiplas camadas, com qualquer número de camadas, unidades de acesso e imagens. Também, nos exemplos ilustrados na figura 4-7, o LSB do POC é representado usando sete bits. No entanto, as técnicas descritas neste documento podem ser prorrogadas para cenários tendo quaisquer formas de representação do valor POC.
Reajuste de Imagens Precedentes e Perda de Imagens Reajustadas
[00155] Quando um MSB restaurar ou um restauração LSB é realizado em uma determinada imagem, outras imagens na mesma camada que precedem a imagem particular na ordem de decodificação são redefinidas também baseia o restauração que se apresentou no quadro específico. Por exemplo, no exemplo da figura 6, a Imagem de EL 614 tem um valor POC de 241 (por exemplo, a LSB de “11 10001”) + MSB de “1”, que é o 113 + 128. Quando as restaurações MSB e LSB são realizadas para a Imagem de EL 614, o valor POC da Imagem de EL 614 torna-se 0, e a Imagem de EL 612 na 610 EL que precede a Imagem de EL 614 na decodificação ordem também é redefinida com base no valor original de 241 do imagem de EL 614 POC. Por exemplo, o novo valor POC da Imagem de EL 612 é calculado subtraindo o valor POC de pré-redefinição da Imagem de EL 614 (que é um valor de 241) de valor POC pré-restauração da Imagem de EL 612, que é de 240 (por exemplo, a LSB de “10000 11”) + MSB de “1”, que é 112 + 128. Assim, após o restauração, o valor POC da Imagem de EL 612 torna-se -1, em conformidade com o fato de que a Imagem de EL 612 deve ser saída antes da Imagem de EL 614, onde um valor menor de POC denota uma posição anterior na ordem de saída. Como mostrado na figura 7, o LSB sinalizado valores para o subseqüente AUs 650 e 660 são ajustados em conformidade (por exemplo, para um valor de 1 e um valor de 2, respectivamente), com a suposição que o restauração é executado para a Imagem de EL 614.
[00156] No entanto, mesmo se um restauração POC apropriado do MSB e/ou o LSB descrito acima é sinalizado no fluxo de bits (por exemplo, no cabeçalho da fatia) para que o decodificador pode processar o sinal e executar o POC restaurar em conformidade, se a imagem sinalização tal um restauração POC é perdida durante a transmissão do fluxo de bits ou removido o fluxo de bits para satisfazer as restrições de largura de banda , o restauração POC se destina a ser executada para a imagem particular não pode ser executado corretamente.
[00157] Por exemplo, no exemplo da figura 6, se a imagem de EL 614 é indisponível para o decodificador, o decodificador não saberia (ou seja, não determinaria) para restaurar o MSB e LSB do POC no EL 610 em 640 o AU. Conseqüentemente, os valores POC de qualquer imagens que precedem a Imagem de EL 614 indisponível na ordem de decodificação ainda teria seu original, valores POC pré- restauração desde o restauração no EL imagine 614 não se realizar (por exemplo, a operação de restauração não foi realizada). Por outro lado, os valores POC das imagens a seguir a Imagem de EL 614 indisponível na decodificação ordem seriam determinados ou sinalizados como se restaurar realmente ocorreu (ou seja, a operação de restauração foi executada). Assim, no exemplo da figura 7, as imagens EL 612, 616 e 618 teria valores POC de 240, 1 e 2, respectivamente, o que seria incorreto, dado que a Imagem de EL 612 precede as imagens EL 616 e 618 em ordem de saída. Assim, um método de codificação que resulta em valores corretos de POC, mesmo quando o quadro de sinalização o restauração POC se torna indisponível, é desejado.
ID de período de Reajuste de POC
[00158] Em algumas modalidades, um ID de período de restauração é usado para identificar cada Período de restauração de POC (por exemplo, um período que começa com um restauração POC e termina imediatamente antes do próximo restauração POC). Uma restrição de conformidade de fluxo de bits de pode impor que os IDs de períodos de restauração de POC para dois períodos de restauração de POC temporalmente consecutivos (por exemplo, na ordem de decodificação) sejam diferentes. Cada imagem em um período de restauração de POC pode ser associada com o POC, ID de período de restauração do período de restauração de POC. Usando os IDs de período de restauração de POC, o codificador pode ser capaz de garantir que os valores de POC estejam alinhados em múltiplas camadas mesmo se uma ou mais imagens no AU de Restauração de POC estiverem perdidas.
Usando Valores de POC como Informação de Âncora
[00159] Em algumas modalidades, valores POC, atribuídos a uma imagem decodificada podem ser utilizados como informação de âncora. Por exemplo, o valor POC atribuído a uma determinada imagem pode ser usado para calcular pelo menos uma parte do valor POC (por exemplo, MSB, LSB ou ambos) da outra imagem que segue a imagem particular na ordem de decodificação. Nesse caso, a parte do POC valor calculado anteriormente sinalizado informação precisa não ser explicitamente sinalizada, assim, resultando em economia de bit.
[00160] No entanto, o valor POC que é atribuído a uma imagem decodificada pode não ser estático e pode ser atualizado quando um processo de restauração de POC é invocado. Esta natureza mutável de valores POC pode tornar os valores POC menos útil para uso como informação de âncora para outros processadores ou outras imagens no fluxo de bits. Assim, se um fluxo de bits invoca processos, tais como um restauração do POC, que podem alterar os valores POC associados com as imagens decodificadas, um esquema de codificação melhorado que contas para tais processos quando fazendo uso dos valores de POC é desejado.
Produzindo Imagens no DPB em Reajuste de POC
[00161] Em algumas implementações, uma restrição de fluxo de bits pode obrigar que para qualquer Período de restauração de POC , todas as imagens que precedem o período de restauração de POC devem ser produzidas antes que a imagem de restauração de POC (por exemplo, uma imagem com uma indicação para restaurar o POC associado) associada com o POC, repor o período ou qualquer imagem que seguem o Imagens de restauração de POC em ordem de decodificação. Para satisfazer tal uma restrição de fluxo de bits, quando restaurar um POC é invocado (por exemplo, indicado por um indicador de restaurar POC associado com imagens de restaurar o POC), o codificador pode produzir todas as imagens no DPB que foram decodificadas antes o Imagem de restauração de POC .
[00162] No entanto, todas as imagens anteriores no DPB sempre que um restauração POC é invocado (por exemplo, sempre que o codificador processa uma imagens de restauração de POC) resultaria em uma ordem de saída incorreta de imagens em ordem de saída dos decodificadores, como não há nenhuma garantia de que as imagens que seguem a imagens de restauração de POC na decodificação ordem necessariamente seguirem, em ordem de saída, a saída todas as imagens que precedem a imagem de restauração de POC na ordem de decodificação. Por exemplo, um quadro que segue as imagens de restauração de POC em ordem de decodificação pode preceder uma das imagens que são decodificadas antes das imagens de restauração de POC em ordem de saída.
[00163] Por exemplo, imagem A é uma imagem de redefinição POC, imagem B é uma imagem que precede a imagem A na ordem de decodificação e imagem C é uma imagem que se segue a imagem A na ordem de decodificação, a ordem correta de decodificação de imagem B, imagem A e imagem C. Se imagem C deve ser produzida antes da imagem A, que vai ser produzida antes de imagens B, a ordem de saída apropriada seria imagem C, imagem A e imagem B. Se todas as imagens no DPB forem produzidas de acordo com a modalidade acima, o codificador seria decodificar e armazenar imagens B no DPB, decodificar a imagem A e imagem B no DPB ao perceber que a imagem A é uma imagem de restauração de POC. No entanto, produzir imagens B antes de imagens C seria incorreto de acordo com a ordem de saída apropriada descrita acima.
Reajuste de POC e Mensagens SEI
[00164] Em alguns sistemas de codificação, existentes, a semântica de várias mensagens SEI não seria compatível com o processo de restauração de POC proposto para codificação de vídeo de múltiplas camadas e levar a ambiguidade na aplicação da mensagem SEI para o fluxo de bits. Por exemplo, na versão 1 da especificação HEVC, muitas das mensagens SEI foram definidas de forma que eram dependentes de POC. Quando a aplicação é estendida aos casos de múltiplas camadas, foi introduzido o conceito de restaurar o POC. Como resultado, as mensagens SEI existentes eram prestadas incorretas ou ambíguas em muitos casos, especialmente em como as mensagens SEI foram definindo o POC. Assim, um esquema de codificação melhorado que inclui semântica atualizada para as mensagens SEI que são compatíveis com o conceito de redefinições de POC é desejado.
Informação de POC em Mensagens de Retorno
[00165] Em algumas implementações, o uso da informação POC para a identificação de uma imagem nas mensagens de feedback é claro. Para obter exemplos, muitos sistemas usam mensagens de gabarito que identificam as imagens. Por exemplo, em uma sessão entre uma fonte e um receptor, se algumas imagens são perdidas, as POCs das imagens são usados para identificar as imagens que estão perdidas. Esta informação POC pode ser transmitida nas mensagens de feedback. Com a possibilidade de redefinições de POC, as informação de POC incluídas nas mensagens de feedback podem precisar incluir, para além do POC da imagem sendo identificado, informação sobre o Período de restauração de POC ao qual pertence a imagem. Por exemplo, várias imagens podem ter o mesmo POC, e o sistema pode não ser capaz de identificar corretamente as imagens, a menos que o sistema é dada a informação a respeito do POC restauração os períodos a que pertencem as imagens. Assim, um sistema melhorado que indica o período restauração POC da imagem sendo identificado em uma mensagem de feedback é desejado.
Ciclo de MSB de POC de Sinalização
[00166] Em algumas implementações, POC LSB é sinalizado e POC MSB é calculado usando o tipo de unidade NAL da imagem atual e o LSB e/ou MSB de imagens que precedem a imagem atual na ordem de decodificação. Em outras implementações, informação de POC MSB são sinalizadas na extensão de cabeçalho de fatia de CRA e BLA imagens para melhorar a resiliência erro de derivação de POC. No entanto, o uso de POC MSB sinalizado para cálculo dos valores POC somente para imagens CRA e BLA (com NoRaslOutputFlag igual a um valor de 1) resultaria em valores POC que não estão alinhadas em múltiplas camadas em alguns casos. Assim, um esquema de codificação melhorado que melhora a Cruz-camada de alinhamento dos valores POC é desejado.
Exemplos e Implementações
[00167] Vários métodos que podem ser usados para tratar certos problemas descritos acima serão descritos abaixo. Alguns desses métodos podem ser aplicadas de forma independente, e alguns deles podem ser aplicadas em combinação. Além disso, o exemplo de sintaxe e semântica que pode ser usada para implementar um ou mais dos métodos aqui descritos é também fornecida abaixo. Quando certas partes da especificação HEVC são reproduzidos para ilustrar as adições e exclusões que podem ser incorporadas para implementar um ou mais dos métodos descritos neste documento, tais modificações são mostradas em itálico.
Sinalização de Valores para Derivação de POC
[00168] Em algumas modalidades da revelação presente, uma mensagem SEI que contém informação para a derivação de POC correta é sinalizada por uma ou mais imagens que seguem a imagem para o qual o POC MSB e/ou POC LSB é ser restaurar . Por exemplo, a mensagem SEI pode ser associada com uma imagem, picA, que segue outra imagem, picB, para o qual o MSB POC, POC LSB ou ambos são deve ser redefinida. Assim, mesmo quando picB está totalmente perdido, a mensagem SEI associada com picA pode ser usada para derivar os valores corretos de POC para outras imagens na mesma camada.
[00169] Em algumas modalidades da presente revelação, as informação para corrigir derivação de POC é sinalizada no cabeçalho da fatia de uma ou mais imagens que seguem a imagem para o qual o POC MSB e/ou POC LSB é ser restaurar . Por exemplo, a informação pode ser incluída no cabeçalho da fatia de um picA de imagens que se segue outro picB de imagens para as quais o MSB POC, POC LSB ou ambos são deve ser redefinida. Assim, mesmo quando picB está completamente perdido, as informação incluídas no cabeçalho da fatia de picA podem ser usadas para derivar os valores corretos de POC para outras imagens na mesma camada.
[00170] Em algumas modalidades da presente revelação, as informação (que podem ser referidas como informação de derivação POC) sinalizadas no cabeçalho da fatia da imagem e/ou sinalizado como uma mensagem SEI associada a imagens pode incluir: um POC restaurar tipo indicando se o valor POC da imagem de restauração de POC anterior (por exemplo, uma imagem em que a POC restaurar é a ser executada) na mesma camada, é de ser redefinido restauração os dois mais significativos bits (MSB) e bits menos significativos (LSB) do valor POC ou restauração apenas o MSB do valor do POC; um POC restaurar o valor que indica o valor POC da imagem que foi perdido ou removido que também precede a imagem com a qual as informação de derivação POC são associadas; e um ID de restauração de POC identificando o POC restaurar para que as informação de derivação POC sejam fornecidas. Por exemplo, o decodificador pode ignorar um restauração POC sinalizado no contexto de uma determinada imagem, se já foi realizado o restauração POC sinalizado tem um POC restaurar o valor de ID de 1 e outra redefinição POC, tendo um ID de restauração de POC de 1.
Produzir Restrição de Ordem Com Relação à Imagem de Reajuste de POC
[00171] Em algumas modalidades da revelação presente, uma restrição de fluxo de bits é adicionada para que uma imagem que se segue, em ordem, de decodificação uma imagens de restauração de POC devem não preceder, em ordem de saída, outra imagem que precede, na ordem de decodificação, a imagens de restauração de POC. Em tais modalidades, o programador pode determinar uma restrição de fluxo de bits a ser aplicável e aderir à restrição fluxo de bits, tal que o fluxo de bits codificado em conformidade com a restrição de fluxo de bits.
[00172] Por exemplo, antes de uma redefinição POC ser sinalizada em conexão com uma imagem atual, o codificador pode determinar se qualquer imagem que se segue o quadro atual na ordem de decodificação é ser saída antes de qualquer outra imagem que precede o quadro atual na ordem de decodificação. Se o codificador determina que qualquer imagem que se segue o quadro atual na ordem de decodificação a saída antes de qualquer outra imagem que precede o quadro atual na ordem de decodificação, o codificador pode abster-se de sinalização o POC restaurar em associação com o quadro atual, para garantir que o fluxo de bits codificado de acordo com a restrição de fluxo de bits.
[00173] Alternativamente, o codificador pode, depois de determinar que um POC restauração seja sinalizado em conexão com uma imagem atual, certifique-se de não que nenhuma imagem que se segue o quadro atual na ordem de decodificação a saída antes de qualquer imagem que precede o quadro atual na ordem de decodificação. Por exemplo, o codificador pode abster-se de qualquer imagem de codificação (ou causando qualquer imagem a ser fornecido) em um fluxo de bits depois da imagem atual se a imagem deve ser a saída antes de qualquer imagem que precede o quadro atual na ordem de decodificação garantir que o fluxo de bits codificado em conformidade com a restrição de fluxo de bits.
Ciclo de POC de MSB
[00174] Em algumas modalidades da presente revelação, o codificador pode sinalizar um valor de deslocamento que pode ser referido como um ciclo de POC MSB. Em um exemplo, o ciclo de POC MSB pode indicar a diferença entre o POC MSB de uma imagem anteriormente codificada e POC MSB do quadro atual. Em um exemplo, o codificador pode usar o ciclo de POC MSB para atualizar os valores POC de imagens que precedem a imagem de que o ciclo de POC MSB está associado. Em outro exemplo, o ciclo de POC MSB pode ser idêntico ao POC MSB da imagem que está associado ao ciclo de POC MSB. Assim, quando o ciclo de POC MSB é sinalizado em associação com uma imagem especial, POC MSB do quadro específico pode ser calculado com base no ciclo POC MSB sinalizado.
Sinalização de Ciclo MSB de POC com Imagens CRA e BLA
[00175] Em algumas modalidades da revelação presente, para o CRA e BLA imagens, o valor de sinalizado POC MSB ciclo é determinado em relação o anterior Imagens de restauração de POC na mesma camada ou o imagem IDR anterior na mesma camada, o que for mais perto. Se nenhum estiver presente (por exemplo, significa que a imagem do CRA/BLA é a primeira imagem CRA/BLA na camada), o ciclo de POC MSB do quadro CRA/BLA pode ser qualquer valor no intervalo permitido de valores de ciclo MSB de POC.
Ciclo MSB de POC em Imagens de Reajuste de POC
[00176] Em algumas modalidades da revelação presente, quando um CRA ou uma Imagem de BLA em uma determinada camada é também um Imagens de restauração de POC, então o valor sinalizado do ciclo POC MSB é usado para atualizar os valores POC de todas as imagens no DPB na camada particular. Se o quadro CRA ou BLA é também uma imagem de restaurar POC, o MSB da CRA ou BLA imagem pode ser zero. Quando a imagem CRA ou BLA na camada particular não é que um Imagens de restauração de POC, o valor sinalizado do ciclo POC MSB é usado para calcular o POC do quadro CRA ou BLA.
[00177] Em algumas modalidades da presente revelação, o ciclo de POC MSB pode ser sinalizado para imagens IDR. Quando um quadro IDR uma determinada camada é também que um Imagem de restauração de POC e, em seguida, o valor sinalizado do ciclo POC MSB é usado para atualizar os valores POC de todas as imagens no DPB na camada particular. Quando a imagem IDR na camada particular não é que um Imagens de restauração de POC, o valor sinalizado do ciclo POC MSB é usado para calcular o POC do quadro IDR.
[00178] A figura 8 é um fluxograma ilustrando um método 800 para codificação de informação de vídeo, de acordo com uma modalidade da revelação presente. Os passos ilustrados na figura 8 podem ser realizados por um codificador (por exemplo, o codificador de vídeo, como mostrado na figura 2 ou figura 2B), um decodificador (por exemplo, o decodificador de vídeo conforme indicado na figura 3A e figura 3B) ou qualquer outro componente. Para sua conveniência, método 800 é descrito como realizado por um programador, que pode ser o codificador, decodificador ou outro componente.
[00179] O método 800 começa no bloco 801. No bloco 805, o codificador determina se uma imagem atual em uma camada de vídeo é uma imagem de redefinição POC. Se o codificador determina que o quadro atual não seja uma imagem de redefinição do POC, o método 800 procede ao bloco 810. Por outro lado, se o codificador determina que o quadro atual seja uma imagem de redefinição do POC, o método 800 procede ao bloco 815.
[00180] No bloco 810, o codificador determina o POC do quadro atual com base em um deslocamento que está associado com o quadro atual. O deslocamento pode indicar a diferença entre o POC MSB do quadro atual e o POC MSB de outra imagem decodificada anteriormente na mesma camada. No bloco 815, o codificador atualiza o POC de todas as imagens no DPB que estão na mesma camada que o imagem atual baseada o deslocamento associado com o quadro atual. Por exemplo, o codificador pode atualizar o POC de todas as imagens no DPB subtraindo um valor a partir do POC de cada imagem no DPB. Em um exemplo, o valor subtraído pode ser determinado baseia o deslocamento associado com o quadro atual. Em outro exemplo, o valor subtraído pode ser o que o POC do quadro atual teria sido sem a redefinição POC. O método 800 termina em 820.
[00181] Como discutido acima, um ou mais componentes de codificador de vídeo 20 da figura 2A, codificador de vídeo 23 da figura 2B, decodificador de vídeo 30 da figura 3A ou decodificador de vídeo 33 da figura 3B (por exemplo, unidade de predição entre camadas 128 e/ou unidade de predição inter 166) pode ser usado para implementar qualquer uma das técnicas discutidas na presente revelação, tais como determinar se o quadro atual é uma imagem de redefinição POC, determinar o POC do quadro atual, baseado no deslocamento associado com o quadro atual, e atualizar o POC de todas as imagens no DPB baseia o deslocamento associado com o quadro atual.
[00182] No método 800, um ou mais dos blocos mostrados na figura 8 podem ser removido (por exemplo, não executada), modificado, e/ou a ordem na qual o método é executado pode ser alternada. Por exemplo, embora o bloco 810 seja mostrado na figura 8, bloco 810 pode ser removido, e o método 800 pode terminar sem executar quaisquer operações adicionais se o codificador determina que o quadro atual não seja um restauração do POC. Alternativamente, bloco 815 pode ser removido, e o método 800 pode terminar sem executar quaisquer operações adicionais se o codificador determina que a imagem seja uma imagem de restauração POC. Assim, as modalidades da revelação presente não são limitadas para ou, por exemplo, mostrado na figura 8, e outras variações podem ser implementadas sem partindo do espírito de revelação.
Sinalização de Presença de Ciclo MSB de POC
[00183] Em algumas modalidades da revelação presente, uma indicador ou elemento de sintaxe pode ser indicado no VPS que especifica se o ciclo de POC MSB é sinalizado (por exemplo, no cabeçalho da fatia) para as imagens do CRA e BLA. A sinalização do ciclo POC MSB pode basear a indicador ou sintaxe elemento incluído no VPS. A determinação de se para sinalizar o POC MSB ciclo pode ser feito com base no elemento sinalizador ou sintaxe, incluído em VPS.
Ciclo MSB de POC em Imagens IRAP
[00184] Em algumas implementações, o programador pode executar um POC restaurar para alinhar as POCs em um AU não-alinhados (por exemplo, uma imagem IRAP e uma imagem não-IRAP no AU mesmo). Nesse caso, idc de restaurar o poc pode ser definido como um valor maior que um valor de 0, para indicar que um restauração POC é a ser executada. No entanto, tal um restauração POC pode não ser necessária se o ciclo de POC MSB é sinalizado junto com uma imagem CRA ou BLA, conforme descrito acima.
[00185] Em algumas modalidades da revelação presente, quando o ciclo de POC MSB é sinalizado por uma imagem IRAP tendo um valor de tipo de unidade NAL particular (por exemplo, IDR, CRA, BLA, etc.), e um AU contém uma imagem não-IRAP com id de camada nuh igual a um valor de IRAP 0 e pelo menos um com o mesmo valor de tipo de unidade NAL como o imagem IRAP, o poc restaurar idc associada com a UA (por exemplo, associados a imagens não- IRAP ou o imagem IRAP) pode ser também definido igual a um valor de 0 ou conjunto é maior que um valor de 0, tornando- se remover a restrição de fluxo de bits descrita acima.
POC Ciente de Camada Estática
[00186] Em algumas modalidades da revelação presente, um POC adicional que especifica o valor POC de uma imagem decodificada antes de qualquer POC restaurar processos tem sido invocado. Este POC pode ser referido como um POC ciente de camada. O valor deste POC ciente de camada pode ser calculado a partir sinalizada na imagem, fatia de cabeçalho ou outras imagens na mesma camada sem usar informação adicionais de imagens em outras camadas de informação. O POC ciente de camada poderia ser usado para todos os processos que podem desejar um valor estático, POC não é afetado por outros procedimentos (por exemplo, um POC restaurar) para identificação de imagens. Por exemplo, tais processos podem usar o POC ciente de camada para identificação de imagens em imagens de referência definido decodificação, para identificação de imagens na decodificação de mensagens SEI e para qualquer pós- processamento na decodificação de imagens. Quando um POC ciente de camada é usado, os valores POC das imagens anteriores no DPB não precisam ser diminuídos quando um restauração POC é executado.
[00187] Em algumas modalidades da revelação da presente, para implementar o POC ciente de camada, bits menos significativos (LSB) de POC ciente de camada são assinalados em imagens de restaurar o POC, ou sempre que o valor de poc restaurar idc não é igual a um valor de 0. Esta informação LSB pode ser usada para derivar tanto o POC e o POC ciente de camada. Os bits mais significativos do POC podem ser sinalizados na extensão de cabeçalho de fatia de imagens IRAP. Esta informação MSB pode ser usada para derivar tanto o POC e o POC ciente de camada.
[00188] Em algumas modalidades da presente revelação, para qualquer processo que pode usar informação relacionadas ao POC, o POC são usadas (por exemplo, para manter compatibilidade com versões anteriores à versão de camada única de HEVC) para a camada de base e o POC ciente de camada é utilizada por outras camadas.
ID de Período de Reajuste de POC nas Mensagens de Retorno
[00189] Em algumas modalidades da revelação presente, quando operam no contexto de um perfil SHVC ou MV-HEVC, além do valor POC e a identificação de camada, o ID de período de restauração da imagem decodificada mais recente também é sinalizado em uma mensagem de feedback para identificar a mais recente imagem decodificada. O codificador pode identificar com exclusividade a anteriormente codificada imagens. Por exemplo, uma imagem decodificada atual pode ter um quadro de referência, em seu conjunto de imagens de referência (RPS), mas o decodificador pode não ter acesso a imagens de referência (por exemplo, devido a uma perda durante a transmissão). Neste exemplo, o decodificador pode enviar uma mensagem de retorno para o codificador, solicitando que reenviar o codificador a imagem de referência. A mensagem de gabarito pode incluir um valor POC associado com a imagem de referência e um Período de restauração de POC associado com o quadro de referência, e o codificador pode usar o valor POC e o período restauração POC que identifique a imagem de referência. Por exemplo, ao receber uma mensagem de retorno com um valor POC e um ID de período de restauração, se for a diferente período de restauração de POC que a mais recente imagem codificada, o POC sinalizado restauração período que ID seria usado para rastrear volta para o correto Período de restauração de POC , a mais recente imagem decodificada correspondente ao valor POC sinalizado adicionando um valor de delta POC para cada Período de restauração de POC presente entre os dois períodos restauração POC.
Implementação Exemplar N°1
[00190] Implementações exemplares de uma ou mais das modalidades descritas acima são fornecidas abaixo. Alterações para a sintaxe, semântica e o processo de decodificação indicado abaixo em itálico são em relação as previstas WD6 MV-HEVC. Estas mudanças implementam várias modalidades, descritas no presente pedido. A referência utilizada abaixo (por exemplo, subcláusula 5.8, seção 8.1, etc.) referem-se as seções em WD6 MV-HEVC. Adição de uma Relação Matemática Em uma modalidade, a seguinte relação é incorporada na subcláusula 5.8:
Figure img0001
Alterações para Processo de Decodificação de Fatia Em uma modalidade, as seguintes alterações são feitas para o processo de decodificação geral seção 8.1. -Quando NoClrasOutputFlag é igual a 1, a variável LayerInitializedFlag [i] é definida como 0 para todos os valores de i 0-vps max camada id, inclusiva e a variável FirstPicInLayerDecodedFlag [i] é definida como 0 para todos os valores de i 0-vps_max_layer_id, inclusiva. Alterações em Processo de decodificação 8.3.1. para Contagem de Ordenamento de Imagens Mudanças para 8.3.1 Processo de decodificação para Contagem de ordenamento de Imagens A saída deste processo é PicOrderCntVal, a contagem de ordenamento de imagens da imagem atual. Contagens de ordenamento de imagens são usadas para identificar imagens, para derivar parâmetros de movimento no modo de mesclagem e predição vetor de movimento e para verificação de conformidade decodificador (ver alínea 11). Cada imagem codificada é associada com uma variável de contagem de ordenamento imagens, denotado como PicOrderCntVal. Quando o quadro atual não é uma imagem FRAP com NoRaslOutputFlag igual a 1, as variáveis prevPicOrderCntLsb e prevPicOrderCntMsb são derivados da seguinte forma: -Deixe o prevTidOPic ser a imagem anterior na ordem que tem Temporalld igual a 0 e isso não é uma imagem RASL, uma imagem de RADL, de decodificação ou uma imagem de referência não camada sub e PrevPicOrderCntf nuhjayerjd] ser o PicOrderCntVal de prevTidOPic. - O prevPicOrderCntLsb variável é definida igual a PrevPicOrderCntf nuhjayerjd J & (MaxPicOrderCntLsb - 1). - O prevPicOrderCntMsb variável é definido como PrevPicOrderCntf nuhjayerjd]-prevPicOrderCntLsb. A variável PicOrderCntMsb do quadro atual é derivada da seguinte maneira: - Se o quadro atual é uma imagem IRAP com NoRaslOutputFlag igual a 1, PicOrderCntMsb é definida igual a 0. - Caso contrário, PicOrderCntMsb é derivado como a seguir: se ((fatia _pic_order_cnt_lsb < prevPicOrderCntLsb) & & ((prevPicOrderCntLsb - _pic_order_cnt_lsb fatia) > = (MaxPicOrderCntLsb / 2)) ) PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb senão se ((fatia _pic_order_cnt_lsb > prevPicOrderCntLsb) & & ((fatia _pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb 1-2) ) ) PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb mais PicOrderCntMsb = prevPicOrderCntMsb PicOrderCntVal é derivado como a seguir: PicOrderCntVal = PicOrderCntMsb + fatia _pic_order_cnt_lsb Nota 1 - todas as imagens IDR terá PicOrderCntVal igual a 0, desde que slice_pic_order_cnt_lsb é inferido para ser 0 para imagens IDR e prevPicOrderCntLsb e prevPicOrderCntMsb são definidas iguais a 0. O valor de PicOrderCntVal será no intervalo de 231 a 231 - 1, inclusive. Em um CVS, os valores de PicOrderCntVal para qualquer duas imagens codificadas não serão os mesmos. A função PicOrderCnt (picX) é especificada da seguinte maneira: PicOrderCnt (picX) = PicOrderCntVal de picX as imagens A função DiffPicOrderCnt (picA, picB) é especificada da seguinte maneira: DiffPicOrderCnt (picA, picB) = PicOrderCnt (picA) - PicOrderCnt (picB) O fluxo de bits não deve conter dados que resultam em valores de DiffPicOrderCnt (picA, picB) utilizados no processo de decodificação que não estão no intervalo de-215 215 - 1, inclusive. Nota 2 - X deixa ser a imagem atual e Y e Z sejam duas outras imagens no CVS do mesmo, Y e Z são considerados na mesma direção de ordem de saída de X quando ambos DiffPicOrderCnt (X, Y) e DiffPicOrderCnt (X, Z) são positivos ou ambos são negativos. Modificação de semântica das mensagens SEI Em uma modalidade, subcláusula D.3.4 é modificada como a seguir: pan_scan_rect_persistence_flag especifica a persistência da mensagem SEI retângulo de varredura horizontal. pan_scan_rect_persistence_flag igual a 0 especifica que as informação do retângulo de varredura horizontal aplica-se para a atual imagem decodificada apenas. Deixe a picA ser a imagem atual. pan_scan_rect_persistence_flag igual a 1 especifica que as informação do retângulo de varredura horizontal persiste na ordem de saída até que qualquer uma das seguintes condições forem verdadeiras: - um novo CVS começa. -O fluxo de bits termina. -Uma imagem picB em uma unidade de acesso que contém uma mensagem SEI retângulo varredura horizontal com o mesmo valor de pan_scan_rect_id é PicOrderCnt (picB) for maior que PicOrderCnt (picA), onde PicOrderCnt (picB) e PicOrderCnt (picA) são os valores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB de saída. Em uma modalidade, subcláusula D.3.8 é modificada como a seguir: Quando acesso aleatório é realizado para iniciar a decodificação da unidade de acesso associada com a mensagem SEI de ponto de recuperação, o decodificador funciona como se a imagem associada foi o primeiro filme no fluxo de bits na ordem de decodificação e a variável PrevPicOrderCntf nuh ayerjd] usado na derivação de PicOrderCntVal é definida como 0. Nota 2 - quando informação de HRD estiver presente no fluxo de bits, uma mensagem SEI de período de armazenador temporário deve ser associada com a unidade de acesso associada com a mensagem SEI de ponto de recuperação a fim de estabelecer a inicialização do modelo tampão HRD após um acesso aleatório. Qualquer SPS ou PPS RBSP que é referido por uma imagem associada com uma mensagem de SEI ponto de recuperação ou seguindo qualquer imagem um imagem tão na decodificação ordem deve estar disponível para o processo de decodificação antes da sua ativação, independentemente de estarem ou não o processo de decodificação é iniciado no início do fluxo de bits ou com a unidade de acesso , na ordem de decodificação, que está associado com a mensagem SEI de ponto de recuperação. recovery_poc_cnt especifica o ponto de recuperação de imagens decodificadas em ordem de saída. Se há uma picB de imagens que se segue o quadro atual (ou seja, a imagem associada à atual mensagem SEI) picA em decodificação encomendar o CVS e PicOrderCnt (picB) é igual a PicOrderCnti picA) e mais o valor da recuperação _poc_cnt, onde PicOrderCnt (picA) e PicOrderCnt (picB) são os valores de PicOrderCntVal de picA e picB, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB , o picB de imagens é referida como a imagem de ponto de recuperação. Caso contrário, a primeira imagem picC em ordem PicOrderCnt (picC) for maior que PicOrderCnt (picA) de saída, além disso, o valor de recuperação _poc_cnt é referido como a imagem de ponto de recuperação, onde PicOrderCnt (picA) e PicOrderCnt (picC) são os valores de PicOrderCntVal de picA e picC, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picC. A imagem de ponto de recuperação não deve preceder o quadro atual na ordem de decodificação. Todas as imagens decodificadas em ordem de saída são indicadas para ser correto ou aproximadamente correto em conteúdo, começando na posição de ordem de saída do quadro de ponto de recuperação. O valor de _poc_cnt de recuperação será no intervalo de - MaxPicOrderCntLsb 1 2 MaxPicOrderCntLsb / 21, inclusive. Em uma modalidade, subcláusula D.3.11 é modificada como a seguir: A mensagem de SEI de início de segmento progressivo refinamento especifica o início de um conjunto de imagens codificados consecutivos na ordem em que consiste o quadro atual de decodificação e uma seqüência de uma ou mais imagens subseqüentes de refinamento da qualidade da imagem atual, ao invés de uma representação de uma cena continuamente em movimento. Deixe picA ser a imagem atual. O conjunto marcou de imagens codificados consecutivos continua até que uma das seguintes condições for verdadeira: - um novo CVS começa. - O fluxo de bits termina. - pic_order_cnt_delta é maior que 0 e o PicOrderCntVal da fatia próxima, que pertence ao picB imagens, para ser decodificado, ou seja, PicOrderCnt (picB), é maior do que PicOrderCnt (picA) e mais pic_order_cnt_delta, onde PicOrderCnt (picB) e PicOrderCnt (picA) são os valores de PicOrderCntVal de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB. - Uma mensagem SEI de extremidade de segmento de refinamento progressivo com o mesmo progressive_refinement_id como aquela nesta mensagem SEI é decodificada. A ordem decodificação de imagens dentro do conjunto marcado de imagens consecutivas deve ser o mesmo que sua ordem de saída. progressive_refinement_id especifica um número de identificação para a operação de refinamento progressivo. progressive_refinement_id deve estar no intervalo de 0 a 232 - 2, inclusiva. Valores de progressive_refinement_id no intervalo de 0 a 255, inclusiva e no intervalo de 512 para 231 - 1, inclusive, podem ser usados conforme determinado pelo aplicativo. Valores de progressive_refinement_id na faixa de 256 para 511, inclusiva e no intervalo de 231 232 - 2, inclusiva, são reservados para uso futuro pelo ITU-T | ISO/IEC. Decodificadores, encontrando um valor de progressive_refinement_id na faixa de 256 para 511 inclusive, ou no intervalo de 231 232 - 2, inclusiva, deve ignorá-lo. pic_order_cnt_delta especifica a última imagem no conjunto marcado de imagens codificados consecutivos na ordem de decodificação da seguinte forma: -Se o pic_ordem_cnt_delta é igual a 0, a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a imagem a seguir: -Se o CVS contém uma ou mais imagens que seguem a imagem atual na ordem de decodificação e estão associados com uma mensagem SEI progressivo refinamento segmento final com a mesma progressive_refinement_id, a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a primeira dessas imagens na ordem de decodificação. -Caso contrário, a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a última imagem o CVS na ordem de decodificação. -Caso contrário, a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a imagem a seguir: -Se o CVS contém uma ou mais imagens que seguem a imagem atual na ordem de decodificação e estão associados com uma mensagem SEI progressivo refinamento segmento final com a mesma progressive_refinement_id e precedem qualquer picC imagens do CVS PicOrderCnt (picC) for maior que PicOrderCnt (picA), além disso, pic_order_cnt_delta, onde PicOrderCnt (picC) e PicOrderCnt (picA) são os valores de PicOrderCntVai de picC e picA , respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picC, a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a primeira dessas imagens na ordem de decodificação. -Caso contrário, se o CVS contém uma ou mais imagens picD que seguem a imagem atual em ordem para que PicOrderCnt (picD) de decodificação é maior do que PicOrderCnt (picA) mais pic_order_cnt_delta, onde PicOrderCnt (picD) e PicOrderCnt (picA) são os valores de PicOrderCntVai de picD e picA, respectivamente, imediatamente após a invocação de decodificação processo para contagem de ordenamentos de imagens para picD , a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a última imagem que precede a primeira dessas imagens na ordem de decodificação. -Caso contrário, a última imagem do conjunto marcado de imagens codificados consecutivos na ordem de decodificação é a última imagem o CVS na ordem de decodificação. O valor de delta de pic_order_cnt estará na faixa de 0 a 256, inclusive. Em uma modalidade, subcláusula D.3.13 é modificada como a seguir: film_grain_characteristics _persistence_flag especifica a persistência da mensagem SEI de características de grão de filme. film_grain_characteristics _persistence_flag igual a 0 especifica que a mensagem SEI filme grão características aplica-se para a atual imagem decodificada apenas. Deixe picA ser a imagem atual. film_grain_characteristics _persistence_flag igual a 1 especifica que as características do grão de filme SEI mensagem persistir na saída de ordem até que qualquer uma das seguintes condições forem verdadeiras: - um novo CVS começa. - o fluxo de bits termina. - Um picB de imagens em uma unidade de acesso contendo uma filme grão características SEI mensagem é PicOrderCnt (picB) for maior que PicOrderCnt (picA), onde PicOrderCnt (picB) e PicOrderCnt (picA) são os valores de PicOrderCntVai de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB de saída. Em uma modalidade, subcláusula D.3.14 é modificada como a seguir: tone_map_persistence_flag especifica a persistência da mensagem SEI de informação de mapeamento de Tom. tone_map_persistence_flag igual a 0 especifica que as informação de mapeamento de Tom se aplica para a atual imagem decodificada apenas. Deixe a picA ser a imagem atual. tone_map _persistence_flag igual a 1 especifica que as informação de mapeamento de Tom persiste na ordem de saída até que qualquer uma das seguintes condições forem verdadeiras: - um novo CVS começa. -Um imagem picB em uma unidade de acesso que contém uma mensagem SEI de informação de mapeamento Tom com o mesmo valor de tone_map_id é PicOrderCnt (picB) for maior que PicOrderCnt (picA), onde PicOrderCnt (picB) e PicOrderCnt (picA) são os valores de PicOrderCntVai de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB de saída. Em uma modalidade, subcláusula D.3.16 é modificada como a seguir: frame_packing_arrangement_persistence_flag especifica a persistência do quadro mensagem SEI de arranjo de embalagem. framej3acking_arrangement_persistence_flag igual a 0 especifica que o quadro da embalagem mensagem SEI de acordo aplica-se para o quadro atual e decodificado apenas. Deixe picA ser a imagem atual. framej3acking_arrangement_persistence_flag igual a 1 que especifica o quadro embalagem arranjo SEI mensagem persistir na ordem de saída até que qualquer uma das seguintes condições forem verdadeiras: - um novo CVS começa. - o fluxo de bits termina. -Um quadro picB em uma unidade de acesso contendo um quadro de mensagem SEI de acordo com o mesmo valor de frame_packing_arrangement_id de embalagem é PicOrderCnt (picB) for maior que PicOrderCnt (picA), onde PicOrderCnt (picB) e PicOrderCnt (picA) são os valores de PicOrderCntVai de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB de saída. Em uma modalidade, subcláusula D.3.17 é modificada como a seguir: display_orientation_persistence_flag especifica a persistência da mensagem SEI de orientação de exibição. display_orientation_persistence_flag igual a 0 especifica que a mensagem do visor orientação SEI aplica-se para a atual imagem decodificada apenas. Deixe picA ser a imagem atual. display_orientation_persistence_flag igual a 1 especifica que a mensagem SEI de orientação de exibição persiste na ordem de saída até que uma ou mais das seguintes condições forem verdadeiras: - um novo CVS começa. - o fluxo de bits termina. - Um picB de imagens em uma unidade de acesso que contém uma mensagem SEI de orientação de exibição é PicOrderCnt (picB) for maior que PicOrderCnt (picA), onde PicOrderCnt (picB) e PicOrderCnt (picA) são os valores de PicOrderCntVai de picB e picA, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB de saída. A semântica da estrutura de imagens informação SEI mensagem especificada na subcláusula D.3.18 é substituída com o seguinte: A estrutura de mensagem de informação de imagem SEI fornece informação para obter uma lista de entradas, alguns dos quais correspondem ao conjunto de imagens de destino consiste em uma série de imagens a partir do quadro atual até a última imagem na decodificação ordem em CVS ou a última imagem na decodificação ordem no POC atual período de redefinição, consoante cedo. A primeira entrada na estrutura de imagens informação SEI mensagem corresponde a imagem atual. Quando há que uma imagem da imagem de destino definido que tem PicOrderCntVai igual da variável entryPicOrderCnt [i] conforme especificado abaixo, a entrada que corresponde a uma imagem no conjunto de imagens de destino. A ordem de decodificação das imagens no conjunto de imagens de destino que correspondem às entradas na estrutura de informação de imagens mensagem SEI corresponde ao aumento de valores de i na lista de entradas. Qualquer picB de imagens no conjunto de imagens de destino que tem PicOrderCntVal igual a entryPicOrderCnt [i] para qualquer i no intervalo de 0 até num_entry_no_sop menos l, inclusive, onde PicOrderCntVal é o valor do PicOrderCntVal de picB imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB, deve corresponder a uma entrada na lista de entradas. A estrutura de mensagem de informação de imagem SEI não estará presente em um CVS para o qual o ativo SPS tem long_term_ref_pics_present_flag igual a 1 ou num_short_term_ref_pic_sets igual a 0. A estrutura de mensagem de informação de imagem SEI não estará presente em qualquer unidade de acesso que tem Temporalld maior do que 0 ou contém um quadro de referência não RASL, ramos ou sub camada. Qualquer imagem no conjunto de imagens de destino que corresponde a uma entrada que não seja a primeira entrada descrita na estrutura de imagens informação SEI mensagem não será uma FRAP imagens. sop_seq_parameter_set_id indica e será igual ao valor do ativo SPS sps_seq_parameter_set_id. O valor de sop_seq_parameter_set_id será no intervalo de 0 a 15, inclusiva. num_entries_in_sop_minusl mais 1 especifica o número de entradas na estrutura da mensagem SEI de informação de imagens, num_entries_in_sop_minusl devem ser no intervalo de 0 a 1023, inclusiva. sop_vcl_nut [i], quando a entrada de ordem i corresponde a uma imagem no conjunto de imagens de destino, indica e deve ser igual ao valor de tipo de unidade NAL da imagem correspondente à entrada de ordem i. sop_temporal_id [i], quando a entrada de ordem i corresponde a uma imagem no conjunto de imagens de destino, indica e será igual ao valor da imagem correspondente à entrada de ordem i Temporalld. O valor de 7 para sop_temporal_id [i] é reservado para uso futuro pelo ITU-T | ISO/IEC e não devem estar presentes em fluxos de bits em conformidade com esta versão desta especificação. Decodificadores devem ignorar a estrutura das mensagens SEI de informação de imagens que contêm o valor 7 para sop_temporal_id [i]. sop_short_term_rps_idx [i], quando a entrada de ordem i corresponde a uma imagem no conjunto de imagens de destino, indica e deve ser igual ao índice, na lista de candidatos a curto prazo RPSs incluídos no RPU ativo, do candidato a curto prazo RPS usado pela imagem correspondente à entrada de ordem i para derivação do quadro de referência a curto prazo definido. sop_short_term_rps_idx [i] deve estar no intervalo de 0 a num_short_term_ref_pic_sets - 1, inclusive. sop_poc_delta [i] é usado para especificar o valor da variável entryPicOrderCnt [i] para a entrada de ordem i descrita na estrutura de mensagem SEI informação imagens, sop_poc_delta [i] deve estar na faixa de (- MaxPicOrderCntLsb) / 2 + 1 para MaxPicOrderCntLsb / 2-1, inclusive. A variável entryPicOrderCnt [i] é derivado como a seguir: entryPicOrderCnt [0] = PicOrderCnt (currPic) para (i = 1; i < = num_entries_in_sop_minusl; i + +) entryPicOrderCnt [i] = entryPicOrderCnt [i - 1] + _poc_delta [i] onde currPic é o atual quadro de sop. Em uma modalidade, subcláusula D.3.24 é modificada como a seguir: A mensagem de informação de atualização de região SEI indica se a fatia de segmentos que o atual mensagem SEI se aplica para pertencem a uma região atualizada do quadro atual (conforme definido abaixo). Uma unidade de acesso que não é uma unidade de acesso IRAP e que contém um ponto de recuperação SEI mensagem é referida como uma unidade de acesso gradual decodificação atualização (RDA) e sua imagem correspondente é referida como uma imagem do GDR. A unidade de acesso correspondente para a imagem de ponto de recuperação indicado é referida como unidade de ponto de acesso. Se há uma picB de imagens que se segue a picA de imagens GDR em decodificação ordem no CVS e PicOrderCnt (picB) é igual a PicOrderCnt (picA) mais o valor de recuperação _poc_cnt na mensagem SEI de ponto de recuperação, onde PicOrderCnt (picA) e PicOrderCnt (picB) são os valores de PicOrderCntVal de picA e picB, respectivamente, imediatamente após a invocação do processo de decodificação para contagem de ordenamentos de imagens para picB , deixe o lastPicInSet variável ser a imagem de ponto de recuperação. Caso contrário, deixe o lastPicInSet ser a imagem que precede imediatamente a imagem de ponto de recuperação na ordem de saída. O lastPicInSet de imagens não deve preceder a imagem do GDR na ordem de decodificação. Adição de uma Função Sintática Em uma modalidade, more_data_in_slice_segment_header_extension () é especificado da seguinte maneira: -Se (a posição atual na estrutura de sintaxe slice_segment_header ()) - (a posição imediatamente após slice_segment_header_extension_length) é menor que (slice_segment_header_extension_length * 8), o valor de retorno de more_data_in_slice_segment_header_extension () é igual a VERDADEIRO. -Caso contrário, o valor de retorno de more_data_in_slice_segment_header_extension () é igual a FALSO. Adição de duas definições Em uma modalidade, acrescentam-se as seguintes definições para subcláusula f. 3: período de reajuste de contagem de ordenamento de imagem (POC): uma sequência de unidades de acesso na decodificação ordem, começando com uma unidade de acesso com poc_reset_idc igual a 1 ou 2 e um determinado valor de poc_reset_period_id e incluindo todas as unidades de acesso que possuem o mesmo valor de poc_reset_period_id ou tem poc restaurar idc igual a 0. imagem de reajuste de contagem de ordenamento de imagem (POC): A imagem é a primeira imagem, na ordem, de uma camada de um POC restaurar o período de decodificação. Sintaxe e semântica de extensão de restauração de parâmetro de video
Figure img0002
Tabela 1. Exemplo de sintaxe de vps_extension() vps _poc_msb_Present_lag igual a 0 especifica que a sintaxe elemento poc_msb_val não está presente nos cabeçalhos de segmento da fatia da fatia referindo o VPS. VPS _poc_msb Present Jlag igual a 1 especifica que a sintaxe elemento poc_msb_val pode estar presente nos cabeçalhos de segmento da fatia da fatia referindo o VPS. Quando o valor de vps _poc_msb Present Jlag é igual a 0, poc_reset_info Present Jlag será igual a 0. Alterações para semânticas de cabeçalho de unidade NAL Em uma modalidade, a derivação seguinte é adicionada à semântica de semântica de cabeçalho unidade NAL: A variável CraOrBlaPicFlag é derivada como a seguir: CraOrBlaPicFlag = (nal_unit_type = = BLA_W_LP\\ nal_unit_type = = BLA_N_LP i i nal_unit_type = =BLA_W_RADL\\ nal_unit_type = = CRA_NUT) Sintaxe e semântica RBSP de restauração de parâmetro de imagem
Figure img0003
Tabela 2. Exemplo de sintaxe de pic_parameter_set_rbsp() pps_extension_flag igual a 0 especifica que não há elementos de sintaxe de indicador de dados extensão pps estão presentes na estrutura de sintaxe PPS RBSP. Quando slice_segment_header_extension_present_flag for igual a 0, pps_extension_flag é igual a 0 em fluxos de bits em conformidade com esta versão desta especificação, o valor de 1 para pps_extension_flag é reservado para uso futuro pelo ITU-T | ISO/IEC e decodificadores devem ignorar todos os dados que seguem o valor 1 para pps_extension_flag em uma unidade de PPS NAL. poc_reset_info_present_flag igual a 0 especifica que a sintaxe elemento poc_reset_idc não está presente nos cabeçalhos de segmento da fatia das fatias referindo-se ao PPS. poc_reset_info_present_flag igual a 1 especifica que o poc_reset_idc de elemento sintaxe está presente nos cabeçalhos de segmento da fatia das fatias referindo-se ao PPS. pps_extension2_flag igual a 0 especifica que não há elementos de sintaxe de pps_extension_data_flag estão presentes na estrutura de sintaxe PPS RBSP. pps_extension2_flag é igual a 0 em fluxos de bits em conformidade com esta versão desta especificação. O valor de 1 para pps_extension2_flag é reservado para uso futuro pelo ITU-T | ISO/IEC. Decodificadores devem ignorar todos os dados que seguem o valor 1 para pps_extension2_flag em uma unidade de PPS NAL. 1.1.1 Sintaxe e semântica de cabeçalho de segmento de fatia geral
Figure img0004
Figure img0005
Figure img0006
Tabela 3. sintaxe exemplar de slice_segment_header() (***: removida) Alternativamente, poc_reset_period_id está sinalizado usando um número diferente de bits, por exemplo, codificado como u(14). Quando presente, o valor da fatia segmento cabeçalho sintaxe elementos fatia _pic_parameter_set_id, sinalizador de saída de imagem, no_output_of_prior_pics_flag, fatia _pic_order_cnt_lsb, short_term_ref_pic_set_sps_flag, short_term_refj) ic_set_idx, num_long_term_sps, num_long_term_pics, slice_temporal_mvp_enabled_flag, discardable_flag, cross_layer_bla_flag inter_layer_pred_enabled_flag, num_inter_layer_refj) ics_minus l, poc_reset_idc, poc_reset_pic_id, full_poc_reset_flag, poc lsb val e poc msb val deve ser o mesmo em toda a fatia cabeçalhos de segmento de uma imagem codificada. Quando presente, o valor da fatia do segmento lt_idx_sps de elementos de sintaxe de cabeçalho [i], poc_lsb_lt [i], used_by_curr_pic_lt_flag [i], delta_poc_msb_present_flag [i], delta_poc_msb_cycle_lt [i] e inter_layer_pred_layer_idc [i] deve ser a mesma em todos os cabeçalhos de segmento de fatia de uma imagem codificada para cada valor possível de i. (*** Removido: poc_reset_flag igual a 1 especifica que a contagem de ordenamentos de imagens derivadas para o quadro atual é igual a 0. poc restaurar indicador igual a 0 especifica que a contagem de ordenamentos de imagens derivadas para o quadro atual pode ou não ser igual a 0. Quando não está presente, o valor de sinalizador de restaurar poc é inferido para ser igual a 0. Nota - Quando poc restaurar o sinalizador é igual a 1, em uma imagem de camada de base, PicOrderCntVal é derivado de forma diferente dependendo se o processo de decodificação da subcláusula 8.3.1 ou subcláusula F.8.3.1 é aplicado. Além disso, quando uma imagem de camada de base com poc_reset_flag igual a 1 é prevTidOPic de acordo com a subcláusula 8.3.1 ou F.8.3.1, a variável prevPicOrderCntLsb é derivado de forma diferente nas subcláusulas 8.3.1 e F.8.3.1. Para de evitar o PicOrderCntMsb a ser atualizado incorretamente em uma das subcláusulas 8.3.1 ou F.8.3.1, quando prevTidOPic é um imagem de camada de base com poc_reset_flag igual a 1, e qualquer uma das seguintes condições é verdadeira para prevPicOrderCntLsb derivada com dentre as subcláusulas 8.3.1 ou F.8.3.1, o valor da pic ordem cnt lsb de prevTidOPic deve ser tal que a mesma condição é verdadeira também para prevPicOrderCntLsb derivada com o outro do subcláusulas 8.3.1 ou F.8.3.1 : -(slice_pic_order_cnt_lsb < prevPicOrderCntLsb) & & ((prevPicOrderCntLsb - slice_pic_order_cnt_lsb) > = (MaxPicOrderCntLsb 1-2)) -(slice_pic_order_cnt_lsb > prevPicOrderCntLsb) & & ((slice_pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb 1-2)) * * *) poc_reset_idc igual a 0 especifica que nem os bits mais significativos nem os bits menos significativos do valor de contagem de ordenamento de imagens para o quadro atual são redefinidos, poc restaurar idc igual a 1 especifica que somente os bits mais significativos do valor de contagem de ordenamento de imagens para o quadro atual pode ser redefinido, poc restaurar idc igual a 2 especifica que tanto os bits mais significativos e os bits menos significativos da ordem imagens contam valor para o quadro atual pode ser redefinido. poc_reset_idc igual a 3 especifica que somente os bits mais significativos ou ambos os bits mais significativos e os bits menos significativos do quadro ordem valor de contagem para o quadro atual pode ser redefinido e informação de contagem de ordenamentos de imagens adicionais são sinalizadas. Quando não está presente, o valor de poc restaurar idc é inferido para ser igual a 0. É uma exigência de conformidade de fluxo de bits de que se aplicam as seguintes restrições: - O valor de poc restaurar idc não deve ser igual a 1 ou 2 para uma imagem RASL, uma imagem de ramos, uma imagem de referência não camada sub, uma imagem que tem Temporalld maior que 0, ou uma imagem que tem indicador descartável igual a 1. - O valor de poc idc de restauração de todas as imagens em uma unidade de acesso será o mesmo. -Quando o quadro em uma unidade de acesso com nuh_layer_id igual a 0 é uma imagem IRAP com um determinado valor de tipo de unidade NAL e há pelo menos outra imagem da mesma unidade de acesso com um valor diferente do tipo de unidade NAL, o valor de poc restaurar idc será igual a 1 ou 2 para todas as imagens da unidade de acesso. -Quando existe pelo menos uma imagem que tem nuhjayerjd maior que 0 e que é uma imagem IDR com um determinado valor de nal_unit_type em uma unidade de acesso e há pelo menos outra imagem da mesma unidade de acesso com um valor diferente de nal_unit_type, o valor de poc_reset_idc será igual a 1 ou 2 para todas as imagens da unidade de acesso. - O valor do poc_reset_idc de uma imagem CRA ou BLA será inferior a 3. -Quando o quadro com id de camada nuh igual a 0, em uma unidade de acesso é uma imagem IDR e há pelo menos um não-IDR imagem na mesma unidade de acesso, o valor de poc restaurar idc será igual a 2 para todas as imagens da unidade de acesso. -Quando a imagem com o id de camada nuh igual a 0, em uma unidade de acesso não é uma imagem IDR, o valor de poc restaurar idc não deve ser igual a 2 para qualquer imagem na unidade de acesso. O valor de poc_reset_idc de uma unidade de acesso é o valor de poc_reset_idc das imagens da unidade de acesso. poc_reset_period_id identifica um Período de restauração de POC . Não deve haver nenhum dois quadros consecutivos na ordem de decodificação na mesma camada que têm o mesmo valor de poc_reset_period_id e poc_reset_idc igual a 1 ou 2. Quando não está presente, o valor de poc_reset _period_id é inferido como a seguir: -Se picA de imagens anterior que tem poc_reset _period_id presente no cabeçalho do segmento da fatia no presente na mesma camada do fluxo de bits como o quadro atual, o valor de poc_reset _period_id é inferido para ser igual ao valor da _period_id de poc_reset de picA. -Caso contrário, o valor de poc_reset _period_id é inferido para ser igual a 0. Observação: não é proibido para várias imagens em uma camada para ter o mesmo valor de _period_id de poc_reset e ter poc_reset_idc igual a 1 ou 2 a menos que tais imagens ocorrem em duas unidades de acesso consecutivos na ordem de decodificação. Para minimizar a probabilidade dessas duas imagens aparecendo no fluxo de bits devido a perdas de imagens, extração de fluxo de bits, operações de busca, ou codificadores de divisão devem definir o valor de _period_id de poc_reset ser um valor aleatório para cada POC restauração período (sujeito as restrições especificadas acima). É uma exigência de fluxo de bits de conformidade que se aplicam as seguintes restrições: -Um período de restauração POC não deve incluir mais de uma unidade de acesso com poc_reset_idc igual a 1 ou 2. -Uma unidade de acesso com poc_reset_idc igual a 1 ou 2 será a primeira unidade de acesso num período restauração POC. -Uma imagem que se segue um POC restauração imagens em ordem de decodificação não deve preceder, em ordem de saída, outra imagem que precede o POC restauração imagens em ordem de decodificação. full_poc_reset_flag igual a 1 especifica que tanto os bits mais significativos e os bits menos significativos do valor de contagem de ordenamento de imagens para o quadro atual são redefinidos quando a imagem anterior em ordem na mesma camada de decodificação não pertence o mesmo Período de restauração de POC . full_poc_reset_flag igual a 0 especifica que somente os bits mais significativos do valor de contagem de ordenamento de imagens para o quadro atual são redefinidos quando a imagem anterior em ordem na mesma camada de decodificação não pertence o mesmo Período de restauração de POC . poc_lsb_val especifica um valor que pode ser usado para derivar a contagem de ordenamentos de imagens da imagem atual. O comprimento do lsb poc elemento sintaxe de val é log2_max _pic_order_cnt_lsb_minus4 + 4 bits. É uma exigência de conformidade com o fluxo de bits que, quando o poc restaurar idc é igual a 3 e o picA de imagens anterior na ordem que está na mesma camada que o imagem atual, que tem poc restaurar idc igual a 1 ou 2, e que pertence ao mesmo período restauração POC de decodificação está presente no fluxo de bits, picA deve ser o mesmo imagem que a imagem anterior na ordem que está na mesma camada como a corrente de decodificação Imagine, isso é não uma imagem RASL, uma imagem de ramos ou um quadro de referência não camada sub, que tem Temporalld igual a 0 e indicador descartável igual a 0 e o valor do lsb poc val do quadro atual deve ser igual ao valor da fatia _pic_order_cnt_lsb de picA. poc_msb_val especifica o valor dos bits mais significativos do valor de contagem de ordenamento de imagem do quadro atual, que é a imagem do CRA ou BLA. O valor de poc_msb_val é também usado para derivar o valor usado para diminuir os valores de contagem de ordenamento de imagens de imagens previamente decodificadas na mesma camada que o imagem atual. Deve ser o valor de poc_msb_val t .hj e gama Jo r 0 f t .o 2 s - max pic - modo - cnt - Isb - minus4 — 4, inclusiva. O val jue Jo r poc_msb_val será igual à diferença entre os valores dos bits mais significativos dos Condes ordem imagens do quadro atual e o anterior POC restauração imagens na mesma camada ou o imagem IDR anterior na mesma camada, o que for mais perto, em ordem, para o quadro atual de decodificação. Se nenhuma das imagens está presente, o valor de poc_msb_val pode ser qualquer valor no intervalo permitido. Processo de decodificação para uma imagem codificada com id de camada nuh igual a 0 Em uma modalidade, subcláusula 8.1.1 da especificação é alterada do seguinte modo: -As referências para as subcláusulas 8.2, 8.3, 8.3.1, 8.3.2, 8.3.3, 8.3.4, 8.4, 8.5, 8.6 e 8.7 são substituídas por referências a subcláusulas, F.8.2, F.8.3, F.8.3.1, F.8.3.2, F.8.3.3, F.8.3.4, F.8.4, F.8.5, F.8.6 e F.8.7, respectivamente. -No final da alínea a, item 5, conforme referido abaixo é adicionado: 1. Quando FirstPicInLayerDecodedFlag [0] é igual a 0, FirstPicInLayerDecodedFlag [0] é definida igual a 1. Processo de decodificação para iniciar a decodificação de uma imagem codificada com id de camada nuh superior a 0 Cada imagem referida nesta subcláusula é uma imagem codificada completa. O processo de decodificação funciona da seguinte forma para o quadro atual CurrPic: 1. a decodificação de unidades NAL é especificada na subcláusula F.8.2. 2. os processos na subcláusula F.8.3 especificam os seguintes processos de decodificação, usando elementos de sintaxe na camada fatia do segmento e acima: -Variáveis e funções relacionadas com a contagem de ordenamentos de imagens são derivadas na subcláusula F.8.3.1. Isso precisa ser invocado apenas para o primeiro segmento de fatia de uma imagem. É uma exigência de conformidade com o fluxo de bits que o PicOrderCntVal deve permanecer inalterado dentro de uma unidade de acesso. - O processo de decodificação para RPS na subcláusula F.8.3.2 é invocado, no qual referência única imagem com um id de camada nuh igual de CurrPic pode ser marcada como “não utilizado para referência” ou “utilizado para referência a longo prazo” e qualquer imagem com um valor diferente de nuh camada id não está marcada. Isso precisa ser invocado apenas para o primeiro segmento de fatia de uma imagem. -Quando FirstPicInLayerDecodedFlag [nuh_layer_id] é igual a 0, o processo de decodificação para gerar imagens de referência indisponível especificadas na subcláusula F.8.1.5 é invocado, que precisa ser invocado apenas para o primeiro segmento de fatia de uma imagem. -Quando FirstPicInLayerDecodedFlag [id de camada nuh] não é igual a 0 e o quadro atual é uma imagem FRAP com NoRaslOutputFlag igual a 1, o processo de decodificação para gerar imagens de referência indisponível especificadas na subcláusula que f.8.3.3 é invocado, que precisa ser invocado apenas para o primeiro segmento de fatia de uma imagem. Processo de decodificação para contagem de ordenamento de imagem A saída deste processo é PicOrderCntVal, a contagem de ordenamentos de imagens da imagem atual. Contagens de ordenamento de imagens são usadas para identificar imagens, para a derivação de parâmetros de movimento em modo de mesclagem e predição de vetor de movimento e para verificação de conformidade de decodificador (ver sub-clausula C.5). Cada imagem codificada é associada com uma variável de contagem de ordenamento de imagens, denotada como PicOrderCntVal. (*** Removido: se FirstPicInLayerDecodedFlag [nuh_layer_id] é igual a 0 ou o quadro atual é uma imagem IRAP com NoRaslOutputFlag igual a 1, a variável PicOrderCntMsb é definida como 0. Caso contrário, PicOrderCntMsb é derivado como a seguir: - O prevPicOrderCntLsb variável é definida como PrevPicOrderCnt [id de camada nuh] & (MaxPicOrderCntLsb - 1). - O prevPicOrderCntMsb variável é definida como PrevPicOrderCnt [id da camada nuh] - prevPicOrderCntLsb. - PicOrderCntMsb é derivado como a seguir: se ((fatia _pic_order_cnt_lsb < prevPicOrderCntLsb) & & ((prevPicOrderCntLsb - slice_pic_order_cnt_lsb) > = (MaxPicOrderCntLsb 1-2))) PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb senão se ((fatia _pic_order_cnt_lsb > prevPicOrderCntLsb) & & ((fatia _pic_order_cnt_lsb - prevPicOrderCntLsb) > (MaxPicOrderCntLsb / 2 ) ) ) PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb senão PicOrderCntMsb = prevPicOrderCntMsb PicOrderCntVal é derivado como a seguir: PicOrderCntVal = PicOrderCntMsb + fatia _pic_order_cnt_lsb Quando poc_reset_flag é igual a 1, as seguintes etapas se aplicam na ordem listada: - O PicOrderCntVal de cada imagem que consta o DPB e pertence à mesma camada como o quadro atual é diminuída por PicOrderCntVal. -PrevPicOrderCnt [id de camada nuh] é diminuída por PicOrderCntVal. - PicOrderCntVal é definida como 0. Quando a imagem atual não é uma imagem RASL, uma imagem de ramos ou um quadro de referência não sub camada, e o quadro atual tem Temporalld igual a 0, PrevPicOrderCnt [id de camada nuh] é definida igual a PicOrderCntVal. ***) Se FirstPicInLayerDecodedFlag [id de camada nuh] é igual a 1 e o quadro atual é uma imagem de restauração de POC, o seguinte se aplica: - As variáveis pocMsbDelta, pocLsbDelta e DeltaPocVal são derivados da seguinte forma: se (poc_reset_idc = = 3) pocLsbVal = poc_lsb_val senão pocLsbVal = _pic_order_cnt_lsb fatia se (vps _poc_msb Present Jlag & & CraOrBlaPicFlag) pocMsbDelta = poc msb val * MaxPicOrderCntLsb senão { prevPicOrderCntLsb = PrevPicOrderCnt [id de camada nuh] & (MaxPicOrderCntLsb - 1) prevPicOrderCntMsb = PrevPicOrderCnt [id da camada nuh] - prevPicOrderCntLsb pocMsbDelta = getCurrMsb (pocLsbVal, prevPicOrderCntLsb, prevPicOrderCntMsb, MaxPicOrderCntLsb) } se (poc_reset_idc = = 2 | | (poc_reset_idc = = 3 & & full_poc_reset_flag)) pocLsbDelta = pocLsbVal senão pocLsbDelta = 0 DeltaPocVal = pocMsbDelta + pocLsbDelta -O PicOrderCntVal de cada imagem que consta o DPB e pertence à mesma camada como o quadro atual é diminuída por DeltaPocVal. - O PicOrderCntVal da imagem atual é derivada da seguinte maneira: se (poc_reset_idc = = 1) PicOrderCntVal = slice_pic_order_cnt_lsb senão se (poc_reset_idc = = 2) PicOrderCntVal = 0 senão {/ / poc_reset_idc = = 3 PicOrderCntMsb = getCurrMsb (slice_pic_order_cnt_lsb, _poc_reset_flag completo? 0: poc_lsb_val, 0, MaxPicOrderCntLsb) PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb } -O valor de PrevPicOrderCnt [nuh_layer_id] é derivado como a seguir: -Se o quadro atual não é uma imagem RASL, uma imagem de ramos ou um quadro de referência não camada sub e o quadro atual tem Temporalld igual a 0 e indicador descartável igual a 0, PrevPicOrderCnt [id de camada nuh] é definida igual a PicOrderCntVal. -Caso contrário quando poc restaurar idc é igual a 3, PrevPicOrderCnt [id de camada nuh] é definida como _poc_reset_flag completo? 0: poc lsb val. Caso contrário, o seguinte se aplica: - O PicOrderCntVal da imagem atual é derivada da seguinte maneira: se (!. FirstPicInLayerDecodedFlag [nuh_layer_id]) { se (poc_reset_idc = = 1) PicOrderCntVal = slice_pic_order_cnt_lsb senão se (poc_reset_idc = = 2) PicOrderCntVal = 0 senão se (poc_reset_idc = = 3) { PicOrderCntMsb = getCurrMsb (slice_pic_order_cnt_lsb, _poc_reset_flag completo? 0: poc_lsb_val, 0, MaxPicOrderCntLsb) PicOrderCntVal = PicOrderCntMsb + fatia _pic_order_cnt_lsb } {senão se (vps _poc_msb Present Jlag & & CraOrBlaPicFlag) { PicOrderCntMsb = poc_msb_vaI * MaxPicOrderCntLsb PicOrderCntVal = PicOrderCntMsb + fatia _pic_order_cnt_lsb } senão PicOrderCntVal = slice_pic_order_cnt_lsb } } {senão se (vps _poc_msb Present Jlag & & CraOrBlaPicFlag) PicOrderCntMsb = poc_msb_val * MaxPicOrderCntLsb senão se (o quadro atual é uma imagem FRAP com NoRaslOutputFlag igual a 1) PicOrderCntMsb = 0 {senão prevPicOrderCntLsb = PrevPicOrderCnt [id de camada nuh] & (MaxPicOrderCntLsb - 1). prevPicOrderCntMsb = PrevPicOrderCnt [id da camada nuh] - prevPicOrderCntLsb PicOrderCntMsb = getCurrMsb (fatia _pic_order_cnt_lsb, prevPicOrderCntLsb, prevPicOrderCntMsb, MaxPicOrderCntLsb)} PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb } -O valor de PrevPicOrderCnt [nuh_layer_id] é derivado como a seguir: -Se o quadro atual não é uma imagem RASL, uma imagem de ramos ou um quadro de referência não camada sub e o quadro atual tem Temporalld igual a 0 e indicador descartável igual a 0, PrevPicOrderCnt [id de camada nuh] é definida igual a PicOrderCntVal. -Caso contrário, quando FirstPicInLayerDecodedFlag [id de camada nuh] é igual a 0 e poc restaurar idc são igual a 3, PrevPicOrderCnt [id de camada nuh] é definida como _poc_reset_flag completo? 0: poc_lsb_val O valor de PicOrderCntVal será no intervalo de 231 a 231 - 1, inclusive. Em um CVS, os valores de PicOrderCntVal para qualquer duas imagens codificadas na mesma camada não será o mesmo. A função PicOrderCnt (picX) é especificada da seguinte maneira: PicOrderCnt (picX) = PicOrderCntVal de picX as imagens A função DiffPicOrderCnt (picA, picB) é especificada da seguinte maneira: DiffPicOrderCnt (picA, picB) = PicOrderCnt (picA) - PicOrderCnt (picB) O fluxo de bits não deve conter dados que resultam em valores de DiffPicOrderCnt (picA, picB) utilizados no processo de decodificação que não estão no intervalo de-215 215 - 1, inclusive. Nota - X deixa ser a imagem atual e Y e Z sejam duas outras imagens na mesma seqüência, Y e Z são considerados na mesma direção de ordem de saída de X quando ambos DiffPicOrderCnt (X, Y) e DiffPicOrderCnt (X, Z) são positivos ou ambos são negativos. Operação do DPB de ordem de saída C.5.2.2 Saída e remoção de imagens do DPB Quando a imagem atual não é imagem 0 na camada atual, a saída e a remoção de imagens na camada atual do DPB diante a decodificação da imagem atual, ou seja, imagens n, mas depois de analisar o cabeçalho de fatia da primeira fatia do quadro atual e a invocação do processo de decodificação para ordem de imagens contam , acontece instantaneamente quando a primeira unidade de decodificação da imagem atual é removida o CPB e procede da seguinte forma: -Quando o poc restaurar idc da imagem atual for maior que 0 e a unidade de acesso a atual é a primeira unidade de acesso em um POC restauração período, todas as imagens no DPB que não pertencem à unidade de acesso atual e que são marcados como “necessário para a saída” está de saída, começando com imagens com o menor valor de PicOrderCntVal de todas as imagens, com exclusão da unidade de acesso atual no DPB , em ordem crescente de PicOrderCntVal o valores e imagens com o mesmo valor de PicOrderCntVal são saída em ordem crescente dos valores de id de camada nuh. Quando uma imagem é a saída, é cortada usando a janela especificada no RPU ativo para o imagem de corte de conformidade, a imagem recortada é a saída e a imagem está marcada como “não necessário para a saída”. -Os processos de decodificação para contagem de ordenamentos de imagens e RPS são invocados. Quando decodificação um CVS em conformidade com um ou mais dos perfis especificados no anexo um usando o processo de decodificação especificados nas cláusulas 2 a 10, os processos de decodificação para contagem de ordenamentos de imagens e RPS que são invocados são como as subcláusulas especificadas em 8.3.1 e 8.3.2, respectivamente. Quando decodificação um CVS em conformidade com um ou mais dos perfis especificados no anexo G ou H, usando o processo de decodificação, especificado no anexo F e o anexo G ou H, os processos de decodificação para contagem de ordenamentos de imagens e RPS que são invocados são como as subcláusulas especificadas em F.8.3.1 e F.8.3.2, respectivamente. -Se o quadro atual é uma imagem IRAP com NoRaslOutputFlag igual a 1, ou o quadro de camada de base na unidade de acesso atual é uma imagem IRAP com NoRaslOutputFlag igual a 1 e NoClrasOutputFlag são igual a 1, a seguir ordenou medidas é aplicada: A variável NoOutputOfPriorPicsFlag é derivada para o decodificador em teste da seguinte forma: -Se o quadro atual é uma imagem CRA com NoRaslOutputFlag igual a 1, NoOutputOfPriorPicsFlag é definida igual a 1 (independentemente do valor da no_output_of_prior_pics_flag). -Caso contrário, se o quadro atual é uma imagem FRAP com NoRaslOutputFlag igual a 1 e o valor da largura da imagem em amostras de luma, altura de pic em amostras de luma, ou sps_max_decj3ic_buffering_minusl [HighestTid] derivado do ativo SPS para a camada atual é diferente do valor de largura de pic em amostras de luma, altura de pic em amostras de luma, ou sps_max_decj) ic_buffering_minusl [HighestTid] , respectivamente, derivado do SPS que estava ativo para a camada atual quando a decodificação da imagem anterior na camada atual, NoOutputOfPriorPicsFlag pode (mas não deve) ser definido como 1 pelo decodificador sob teste, independentemente do valor da no_output_of_prior_pics_flag. Observação: apesar de configuração NoOutputOfPriorPicsFlag igual a no_output_of_prior_pics_flag é preferido nestas condições, o decodificador em teste é permitido para definir NoOutputOfPriorPicsFlag como 1 neste caso. -Caso contrário, se o quadro atual é uma imagem IRAP com NoRaslOutputFlag igual a 1, NoOutputOfPriorPicsFlag é definida igual a no_output_of_prior_pics_flag. -Caso contrário (o quadro atual não é uma imagem IRAP com NoRaslOutputFlag igual a 1, o quadro de camada de base na unidade de acesso atual é uma imagem IRAP com NoRaslOutputFlag igual a 1, e NoClrasOutputFlag é igual a 1), NoOutputOfPriorPicsFlag é definida como 1. O valor de NoOutputOfPriorPicsFlag derivada para o decodificador em teste é aplicado para o HRD como a seguir: -Se NoOutputOfPriorPicsFlag é igual a 1, todos os armazenadores temporários de imagens na sub-DPB são esvaziados sem saída das imagens que eles contêm, e a plenitude de sub-DPB é definida como 0. -Caso contrário (o oOutputOfPriorPicsFlag é igual a 0), todos os armazenadores temporários de imagem que contém uma imagem que está marcada como “não necessário para a saída” “não utilizados para referência” são esvaziados (sem saída) e todos os armazenadores temporários de imagens de vazio no sub-DPB são esvaziados invocando repetidamente o “batendo” processo especificado na subcláusula C.5.2.4, e a plenitude de sub-DPB é definida como 0. -Caso contrário, só imagine armazenadores temporários que contém uma imagem no atual camada e que são marcaram como “não necessário para a saída” e “não- utilizados para referência” são esvaziados (sem saída). Para cada armazenador temporário de imagens que é esvaziado, a plenitude de sub-DPB é diminuída por um. Quando uma ou mais das seguintes condições forem verdadeiras, o processo de “colisão” especificado na subcláusula C.5.2.4 é chamado repetidamente (*** REMOVIDO: enquanto mais decrescendo a plenitude DPB sub por um para cada armazenador temporário de imagens adicionais que é esvaziada ***), até que nenhuma das seguintes condições seja verdadeira: -O número de unidades de acesso que contêm pelo menos uma imagem decodificada no DPB marcada como “necessários para a saída” é maior do que MaxNumReorderPics. MaxLatencylncreasePlus não é igual a 0, e não há unidades de pelo menos um acesso que contêm pelo menos uma imagem decodificada no DPB marcado como “necessários para a saída”, para o qual o associado PicLatencyCount variável é maior ou igual a MaxLatencyPictures. -O número de imagens na camada atual no sub-DPB é maior ou igual a 1 MaxDecPicBufferingMinus + 1. C.5.2.3 Decodificação de imagens, marcação, impacto adicional e armazenamento Os processos especificados no presente subcláusula acontecem instantaneamente quando a última unidade de decodificação de imagens n é removida o CPB. PicOutputFlag é atualizado como a seguir: -Se a unidade de acesso atual não contiver uma imagem em uma camada de saída de destino e alt_output_layer_flag é igual a 1, a seguir ordenou etapas aplicam-se: - nonOutputLayerPictures a lista é a lista de imagens da unidade de acesso com PicOutputFlag igual a 1 e com nuh valores de id de camada que estão incluídos na TargetDecLayerldList e que não são alvo de camadas de saída. -A imagem com o mais alto valor de id de camada nuh entre a lista nonOutputLayerPictures é removida do nonOutputLayerPictures a lista. -PicOutputFlag para cada imagem que consta da lista nonOutputLayerPictures é definida como 0. -Caso contrário, PicOutputFlag para imagens que não estão incluídos em uma camada de saída de destino é definida como 0. Quando o quadro atual tem PicOutputFlag igual a 1, para cada imagem na camada atual no sub-DPB que está marcado como “necessário para a saída” e segue o quadro atual na ordem de saída, a variável associada PicLatencyCount é definida como PicLatency Count + 1. A imagem atual é considerada como decodificada depois da última unidade de decodificação da imagem ser decodificada. A atual imagem decodificada é armazenada em um armazenador temporário de imagem vazia no sub-DPB, e aplica-se o seguinte: -Se a atual imagem decodificada tem PicOutputFlag igual a 1, ele está marcado como “necessários para a saída” e seu associado variável que piclatencycount é definida como 0. -Caso contrário (a atual imagem decodificada tem PicOutputFlag igual a 0), ele está marcado como “não necessário para a saída”. A atual imagem decodificada é marcada como “utilizada como referência a curto prazo”. Quando uma ou mais das seguintes condições forem verdadeiras, o processo de “colidir” especificado na subcláusula que c.5.2.4 é chamado repetidamente até que nenhuma das seguintes condições seja verdadeira: -O número de unidades de acesso que contêm pelo menos uma imagem decodificada no DPB marcada como “necessários para a saída” é maior do que MaxNumReorderPics. - MaxLatencylncreasePlus não é igual a 0, e não há unidades de pelo menos um acesso que contêm pelo menos uma imagem decodificada no DPB marcado como “necessários para a saída”, para o qual o associado PicLatencyCount variável é maior ou igual a MaxLatencyPictures. C.5.2.4 processo de “colisão” O processo de “colisão” consiste nas seguintes etapas ordenadas: 1. A imagens ou imagens que são as primeiras para saída são selecionadas como aquelas que, tendo o menor valor de PicOrderCntVal de todas as imagens no DPB marcadas como “necessários para a saída”. 2. Cada uma dessas imagens é na ordem crescente, nuh_layer_id, cortada, usando a janela de corte de conformidade especificada no SPS ativo para a imagem, a imagem recortada é produzida, e a imagem é marcada como “não necessária para a saída”. 3. cada armazenador temporário de imagens que contém uma imagem marcada como “não utilizado para referência” e que uma das imagens foi cortada e saída é esvaziada e a plenitude do sub-DPB associado é diminuída por um. Implementação Exemplar de N°2 A implementação exemplar fornecido abaixo é semelhante à implementação exemplar N°1 descrita acima, com nenhuma POC reajustada e adicionalmente, incluindo um POC ciente de camada definido para todas as imagens. Toda técnica sugerida na implementação exemplar N°1 acima é aplicável exceto aquelas reproduzidas abaixo. As mudanças propostas nesta implementação exemplar são destacadas em itálico. Alterações em sintaxe e semântica de cabeçalho de segmento de fatia
Figure img0007
Figure img0008
Figure img0009
Figure img0010
Figure img0011
Figure img0012
Figure img0013
Tabela 4. Exemplo de sintaxe de slice_segment_header() poc_lsb_val especifica um valor que pode ser usado para derivar a contagem de ordenamentos de imagens ou a contagem de ordenamentos ciente de camada imagens do quadro atual. O comprimento do elemento sintaxe poc_lsb_val é log2_max _pic_order_cnt_lsb_minus4 + 4 bits. É uma exigência de conformidade com o fluxo de bits que, quando o poc restaurar idc é igual a 3 e o picA de imagens anterior na ordem que está na mesma camada que o imagem atual, que tem poc restaurar idc igual a 1 ou 2, e que pertence ao mesmo período restauração POC de decodificação está presente no fluxo de bits, picA deve ser o mesmo imagem que a imagem anterior na ordem que está na mesma camada como a corrente de decodificação Imagine, isso é não uma imagem RASL, uma imagem de ramos ou um quadro de referência não camada sub, que tem Temporalld igual a 0 e indicador descartável igual a 0 e o valor do lsb poc val do quadro atual deve ser igual ao valor da fatia _pic_order_cnt_lsb de picA. C.l.1.1 Mudanças para processo de decodificação de processo de decodificação de contagem de ordenamento de imagem para contagem de ordenamento de imagem A saída deste processo é PicOrderCntVal, a contagem de ordenamentos de imagens da imagem atual e LayerWisePicOrderCntVal, a contagem de ordenamentos de imagens ciente de camada do quadro atual. Contagens de ordenamento de imagem são usadas para identificar imagens, para a derivação de parâmetros de movimento de predição de mesclagem no vetor de modo e vetor de movimento e decodificador de conformidade verificação (ver alínea c. 5). Cada imagem codificada é associada a uma variável de contagem de ordenamento imagens, denotada como PicOrderCntVal e uma variável de contagem de ordenamento de imagens ciente de camada, denotada como LayerWisePicOrderCntVal. Se FirstPicInLayerDecodedFlag [id de camada nuh] é igual a 1 e o quadro atual é uma imagem de restauração de POC, o seguinte se aplica: -As variáveis pocLsbVal, IwPocMsb e IwPocLsb são derivados da seguinte forma: if(Cra OrBlaPicFlag) prevLwPicOrderCntLsb = PrevLwPicOrderCntReset [nuhjayerjd J & (MaxPicOrderCntLsb - 1) prevLwPicOrderCntMsb = PrevLwPicOrderCntReset [nuhjayerjd] - prevPicOrderCntLsb IwPocMsb = prevLwPicOrderCntMsb + (poc_msb_val * MaxPicOrderCntLsb) senão{ prevLwPicOrderCntLsb = PrevLwPicOrderCnt [id de camada nuh] & (MaxPicOrderCntLsb - 1) prevLwPicOrderCntMsb = PrevLwPicOrderCnt [nuh_layer_id] - prevPicOrderCntLsb IwpocMsbDelta = getCurrMsb (poc_lsb_val, prevLwPicOrderCntLsb, prevPicOrderCntMsb, MaxPicOrderCntLsb) } LayerWisePicOrderCntVal = IwPocLsb + poc_lsb_val -O PicOrderCntVal de cada imagem que consta o DPB e pertence à mesma camada como o quadro atual é diminuída por DeltaPocVal. -O PicOrderCntVal da imagem atual é derivada da seguinte maneira: se (poc_reset_idc = = 1) PicOrderCntVal = slice_pic_order_cnt_lsb senão se (poc_reset_idc = = 2) PicOrderCntVal = 0 mais {/ / poc_reset_idc = = 3 PicOrderCntMsb = getCurrMsb (slice_pic_order_cnt_lsb, _poc_reset_flag completo? 0: poc lsb val, 0, MaxPicOrderCntLsb) PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb LayerWisePicOrderCntVal = LayerWisePicOrderCntVal + PicOrderCntVal } -O valor de PrevPicOrderCnt [nuh_layer_id] é derivado como a seguir: -Se o quadro atual não é uma imagem RASL, uma imagem de ramos ou um quadro de referência não camada sub e o quadro atual tem Temporalld igual a 0 e indicador descartável igual a 0, PrevPicOrderCnt [id de camada nuh] é definida igual a PicOrderCntVal. -Caso contrário quando poc restaurar idc é igual a 3, PrevPicOrderCnt [id de camada nuh] é definida como _poc_reset_flag completo? 0: poc lsb val. -O valor de PrevLwPicOrderCntf nuhjayerjd] e PrevLwPicOrderCntResetf nuhjayerjd] derivam-se da seguinte forma: -Se o quadro atual é não uma imagem RASL, uma imagem de ramos ou um quadro de referência não sub camada, e o quadro atual tem Temporalld igual a 0 e Jlag descartável igual a 0, PrevLwPicOrderCntf nuhjayerjd J é definida como LayerWisePicOrderCntVal e PrevLwPicOrderCntResetf ayerjd nuh] é definida como LayerWisePicOrderCntVal. Caso contrário, o seguinte se aplica: -O PicOrderCntVal da imagem atual é derivada da seguinte maneira: se (!. FirstPicInLayerDecodedFlag [nuh_layer_id]) { se (poc_reset_idc = = 1) PicOrderCntVal = slice_pic_order_cnt_lsb senão se (poc_reset_idc = = 2) PicOrderCntVal = 0 senão se (poc_reset_idc = = 3) { PicOrderCntMsb = getCurrMsb (slice_pic_order_cnt_lsb, full_poc_reset_flag? 0: poc_lsb_val, 0, MaxPicOrderCntLsb) PicOrderCntVal = PicOrderCntMsb + fatia _pic_order_cnt_lsb } {mais se (vps _poc_msb Present Jlag & & CraOrBlaPicFlag) { PicOrderCntMsb = poc_msb_val * MaxPicOrderCntLsb PicOrderCntVal = PicOrderCntMsb + fatia _pic_order_cnt_lsb } senão PicOrderCntVal = slice_pic_order_cnt_lsb } {mais se (vps _poc_msb Present Jlag & & CraOrBlaPicFlag) PicOrderCntMsb = poc_msb_val * MaxPicOrderCntLsb senão se (o quadro atual é uma imagem IRAP com NoRaslOutputFlag igual a 1) PicOrderCntMsb = 0 senão { prevPicOrderCntLsb = PrevPicOrderCnt [id de camada nuh] & (MaxPicOrderCntLsb - 1). prevPicOrderCntMsb = PrevPicOrderCnt [id da camada nuh] - prevPicOrderCntLsb PicOrderCntMsb = getCurrMsb (fatia _pic_order_cnt_lsb, prevPicOrderCntLsb, prevPicOrderCntMsb, MaxPicOrderCntLsb) } PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb } -O LayerWisePicOrderCntVal da imagem atual é derivada da seguinte maneira: Se (!. FirstPicInLayerDecodedFlag [nuhjayerjd]) LayerWisePicOrderCntVal = PicOrderCntVal {senão se (a imagem atual é um imagem do CRA ou uma Imagem de BLA) LayerWisePicOrderCntVal = PrevLwPicOrderCntResetf nuhjayerjd] + PicOrderCntVal senão se (a imagem atual é um IDR) LayerWisePicOrderCntVal = PrevLwPicOrderCntResetf nuhjayerjd J + (poc_msb_val * MaxPicOrderCntLsb) senão LayerWisePicOrderCntVal = PrevLwPicOrderCntf nuhjayerjd J + (PicOrderCntVal + PrevPicOrderCntf nuhjayerjd J) } -O valor de PrevPicOrderCnt [nuh_layer_id] é derivado como a seguir: -Se o quadro atual não é uma imagem RASL, uma imagem de ramos ou um quadro de referência não camada sub e o quadro atual tem Temporalld igual a 0 e indicador descartável igual a 0, PrevPicOrderCnt [id de camada nuh] é definida igual a PicOrderCntVal. -Caso contrário, quando FirstPicInLayerDecodedFlag [id de camada nuh] é igual a 0 e poc restaurar idc são igual a 3, PrevPicOrderCnt [id de camada nuh] é definida igual a full_poc_reset_flag? 0: poc lsb val -O valor do nuhjayerjd de PrevLwPicOrderCntf] é derivado como a seguir: -Se o quadro atual não é uma imagem RASL, uma imagem de ramos ou um quadro de referência não sub camada, e o quadro atual tem Temporalld igual a 0 e Jlag indicador descartável igual a 0, PrevLwPicOrderCntf nuhjayerjd J é definida igual a camada WisePicOrderCn t Vol. O valor de PicOrderCntVal será no intervalo de 2 - 31 a 231 - 1, inclusive. Em um CVS, os valores de PicOrderCntVal para qualquer duas imagens codificadas na mesma camada não será o mesmo. O valor de LayerWisePicOrderCntVal será na escala de 231 a 231 - 1, inclusive. LayerWisePicOrderCntVal valores para qualquer dois imagens codificados não será o mesmo dentro de uma sequência de imagens com a mesma nuhjayer d valor, em ordem, a partir de uma unidade de acesso contendo uma imagem IRAP com NoClrasOutputFlag de decodificação igual a 1, inclusive, até o final do fluxo de bits ou no próximo, uma unidade de acesso contendo uma imagem IRAP com NoClrasOutputFlag igual a 1 , exclusivo, consoante o que for anterior na ordem de decodificação. A função LayerWisePicOrderCnt (picX) é especificada da seguinte maneira: LayerWisePicOrderCnt (picX) = LayerWisePicOrderCntVal do picX de imagens, a função DiffPicOrderCnt (picA, picB) é especificada da seguinte maneira: DiffPicOrderCnt (picA, picB) = LayerWisePicOrderCnt (picA) - LayerWisePicOrderCnt (picB) O fluxo de bits não deve conter dados que resultam em valores de DiffPicOrderCnt (picA, picB) utilizados no processo de decodificação que não estão no intervalo de-215 215 - 1, inclusive. Nota - X deixa ser a imagem atual e Y e Z sejam duas outras imagens na mesma seqüência, Y e Z são considerados na mesma direção de ordem de saída de X quando ambos DiffPicOrderCnt (X, Y) e DiffPicOrderCnt (X, Z) são positivos ou ambos são negativos.
Outras Considerações
[00191] Informação e sinais revelados neste documento podem ser representados usando qualquer de uma variedade de técnicas e tecnologias diferentes. Por exemplo, dados, instruções, comandos, informação, sinais, bits, símbolos e chips que podem ser referenciadas em toda a descrição acima, podem ser representados por tensões, correntes, ondas eletromagnéticas, campos magnéticos ou partículas, campos ópticos ou partículas ou qualquer combinação destes.
[00192] Os vários blocos lógicos ilustrativos, módulos, circuitos e etapas de algoritmo descritos em conexão com as modalidades reveladas neste documento podem ser implementados como hardware eletrônico, software de computador ou combinações de ambos. Para ilustrar claramente essa permutabilidade de hardware e software, vários componentes ilustrativos, blocos, módulos, circuitos e etapas foram descritos acima geralmente em termos de sua funcionalidade. Se essa funcionalidade é implementada como hardware ou software depende as restrições especiais de aplicação e projeto impostas ao sistema global. Os versados na arte podem implementar a funcionalidade descrita em maneiras diferentes para cada aplicação particular, mas tais decisões de implementação não devem ser interpretadas como causando um afastamento do âmbito da presente invenção.
[00193] As técnicas descritas neste documento podem ser implementadas em hardware, software, firmware ou qualquer combinação destes. Essas técnicas podem ser implementadas em qualquer de uma variedade de dispositivos como computadores de uso geral, aparelhos de dispositivo de comunicação sem fio ou aparelhos de circuito integrado com múltiplos usos, incluindo aplicação em aparelhos de dispositivo de comunicação sem fio e outros dispositivos. Todas as características descritas como módulos ou componentes podem ser implementadas em conjunto em um dispositivo lógico integrado, ou separadamente, como dispositivos lógicos discretos, mas interoperáveis. Se implementadas no software, as técnicas podem ser realizadas pelo menos em parte, por um meio de armazenamento de dados legível por computador que inclui código de programa, incluindo as instruções que, quando executadas, executam um ou mais dos métodos descritos acima. O meio de armazenamento de dados legível por computador pode formar parte de um produto de programa de computador, que pode incluir materiais de embalagem. O meio legível por computador pode incluir mídia de armazenamento de dados ou memória, como memória de acesso aleatório (RAM) como memória dinâmica síncrona de acesso aleatório (SDRAM), memória de leitura (ROM), memória de acesso aleatório não volátil (NVRAM), memória de leitura eletricamente apagável programável (EEPROM), memória FLASH, meios de armazenamento de dados magnéticos ou ópticos e semelhantes. As técnicas adicionalmente, ou alternativamente, podem ser realizadas pelo menos em parte por meio de comunicação legível por computador que transporta ou comunica o código de programa sob a forma de estruturas de dados ou instruções e que pode ser acessado, lido e/ou executado por um computador, tais como sinais, ou ondas, propagados.
[00194] O código de programa pode ser executado por um processador, que pode incluir um ou mais processadores, tais como um ou mais processadores de sinal digital (DSPs), microprocessadores de propósito geral, um circuito integrado de aplicação específica (ASICs), arranjo lógico programável no campo (FPGAs) ou outros circuitos de lógica integrada ou discreta equivalente. Tal processador pode ser configurado para executar qualquer uma das técnicas descritas nesta revelação. Um processador de uso geral pode ser um microprocessador; Mas, em alternativa, o processador pode ser qualquer processador convencional, controlador, microcontrolador ou máquina de estado. Um processador também pode ser implementado como uma combinação de dispositivos de computação, por exemplo, uma combinação de um DSP e um microprocessador, uma pluralidade de microprocessadores, um ou mais microprocessadores em conjunto com um núcleo DSP, ou qualquer outra configuração. Nesse sentido, o termo “processador”, como usado aqui pode se referir a qualquer da estrutura acima, qualquer combinação da estrutura acima mencionada, ou qualquer outra estrutura ou aparelho adequado para a aplicação das técnicas descritas neste documento. Além disso, em alguns aspectos, a funcionalidade descrita neste documento pode ser fornecida dentro de módulos de software dedicado ou módulos de hardware configurados para codificação e decodificação, ou incorporada em um codificador- decodificador de vídeo combinado (CODEC). Além disso, as técnicas poderiam ser totalmente implementadas em um ou mais circuitos ou elementos lógicos.
[00195] As técnicas desta revelação podem ser implementadas em uma ampla variedade de dispositivos ou aparelhos, incluindo um aparelho sem fio, um circuito integrado (IC) ou um conjunto de ICs (por exemplo, um chipset). Vários componentes, módulos ou unidades são descritos nesta revelação para enfatizar os aspectos funcionais dos dispositivos configurados para executar as técnicas reveladas, mas não necessariamente exigem realização por diferentes unidades de hardware. Mais propriamente, conforme descritas acima diversas unidades podem ser combinadas em uma unidade de hardware de codec ou fornecidas por um grupo de unidades interoperativas de hardware, incluindo um ou mais processadores, como descrito acima, em conjunto com software e/ou firmware adequado.
[00196] Várias modalidades da invenção foram descritas. Essas e outras modalidades estão dentro do escopo das reivindicações seguintes.

Claims (13)

1. Aparelho configurado para decodificar informações de vídeo, o aparelho caracterizado pelo fato de que compreende: uma unidade de memória configurada para armazenar informações de vídeo associadas a uma primeira camada de vídeo tendo uma imagem atual; e um processador em comunicação com a unidade de memória, o processador configurado para: decodificar um valor de ciclo de bits mais significativos, MSB, de contagem de ordenamento de imagem, POC, em um bitstream, em que o valor de ciclo de MSB de POC é associado à imagem atual e indica uma diferença entre (a) MSBs de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual, em que a imagem anterior é mais próxima de duas imagens relativas à imagem atual na ordem de decodificação, as duas figuras sendo (i) uma imagem de restauração de POC anterior na primeira camada de vídeo indicando uma restauração do POC e (ii) imagem de renovação instantânea de decodificador, IDR, anterior na primeira camada de vídeo; determinar se a imagem atual está associada a uma restauração de POC; com base em uma determinação de que a imagem atual não está associada a uma restauração de POC, determinar os MSBs do segundo POC da imagem atual com base no valor de ciclo de MSB de POC associado à imagem atual; ou com base em uma determinação de que a imagem atual está associada a uma restauração de POC, atualizar os valores de POC de todas as imagens em um armazenador temporário de imagem decodificada, DPB, que estão na primeira camada de vídeo com base no valor de ciclo de MSB de POC associado à imagem atual; e decodificar a imagem atual no bitstream.
2. Aparelho configurado para codificar informações de vídeo, o aparelho caracterizado pelo fato de que compreende: uma unidade de memória configurada para armazenar informações de vídeo associadas a uma primeira camada de vídeo tendo uma imagem atual; e um processador em comunicação com a unidade de memória, o processador configurado para: determinar um valor de ciclo de bits mais significativos, MSB, de contagem de ordenamento de imagem, POC, em que o valor de ciclo de MSB de POC está associado à imagem atual e indica uma diferença entre (a) MSBs de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual, em que a imagem anterior é mais próxima de duas imagens relativas à imagem atual na ordem de decodificação, as duas imagens sendo (i) uma imagem de restauração de POC anterior na primeira camada de vídeo indicando uma restauração do POC e (ii) uma imagem de renovação instantânea de decodificador, IDR, anterior na primeira camada de vídeo; sinalizar o valor de ciclo de MSB de POC em associação com a imagem atual em um bitstream; determinar se a imagem atual está associada a uma restauração de POC; com base em uma determinação de que a imagem atual não está associada a uma restauração de POC, determinar os MSBs do segundo POC da imagem atual com base no valor de ciclo de MSB de POC associado à imagem atual; ou com base em uma determinação de que a imagem atual está associada a uma restauração de POC, atualizar valores de POC de todas as imagens em um armazenador temporário de imagem decodificada, DPB, que estão na primeira camada de vídeo com base no valor de ciclo de MSB de POC associado à imagem atual; e codificar a imagem atual no bitsstream.
3. Aparelho, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a imagem atual é uma dentre uma imagem de acesso aleatório limpo, CRA, ou uma imagem de acesso de link interrompido, BLA.
4. Aparelho, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que um conjunto de parâmetros de vídeo associado à primeira camada de vídeo inclui uma sinalização ou elemento de sintaxe que indica se o valor de ciclo de MSB de POC é sinalizado no bitstream em associação à imagem atual.
5. Aparelho, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que a imagem atual é uma imagem de renovação instantânea de decodificador, IDR.
6. Aparelho, de acordo com a reivindicação 1 ou 2, caracterizado pelo fato de que o aparelho compreende um dispositivo selecionado a partir de um grupo que consiste em um ou mais dentre: um computador, um notebook, um laptop, um computador do tipo tablet, um decodificador de sinal (set-top box), um fone de telefone, um smartphone, um smartpad, uma televisão, uma câmera, um dispositivo de exibição (display device), um reprodutor de mídia digital, um console de jogos eletrônicos e um computador de bordo.
7. Método para decodificar informações de vídeo, o método caracterizado pelo fato de que compreende: receber um valor de ciclo de bits mais significativos, MSB, de contagem de ordenamento de imagem, POC, em um bitstream, em que o valor de ciclo de MSB de POC é associado à imagem atual e indica uma diferença entre (a) MSBs de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual, em que a imagem anterior é mais próxima de duas imagens relativas à imagem atual na ordem de decodificação, as duas imagens sendo (i) uma imagem de restauração de POC anterior na primeira camada de vídeo indicando uma restauração do POC e (ii) uma imagem de renovação instantânea de decodificador, IDR, anterior na primeira camada de vídeo; determinar se a imagem atual está associada a uma restauração de POC; determinar, com base em uma determinação de que a imagem atual não está associada a uma restauração de POC, os MSBs do segundo POC da imagem atual com base no valor de ciclo de MSB de POC associado à imagem atual; ou atualizar, com base em uma determinação de que a imagem atual está associada a uma restauração de POC, valores de POC de todas as imagens em um armazenador temporário de imagem decodificada, DPB, que estão na primeira camada de vídeo com base no valor de ciclo de MSB de POC associado à imagem atual; e decodificar a imagem atual no bitstream.
8. Método para codificar informações de vídeo, o método caracterizado pelo fato de que compreende: determinar um valor de ciclo de bits mais significativos, MSB, de contagem de ordenamento de imagem, POC, em que o valor de ciclo de MSB de POC está associado à imagem atual e indica uma diferença entre (a) MSBs de um primeiro POC de uma imagem anterior na primeira camada de vídeo que precede a imagem atual na ordem de decodificação e (b) MSBs de um segundo POC da imagem atual, em que a imagem anterior é mais próxima de duas imagens relativas à imagem atual na ordem de decodificação, as duas imagens sendo (i) uma imagem de restauração de POC anterior na primeira camada de vídeo indicando uma restauração do POC e (ii) uma imagem de renovação instantânea de decodificador, IDR, anterior na primeira camada de vídeo; sinalizar o valor de ciclo de MSB de POC em associação com a imagem atual em um bitstream; determinar se a imagem atual está associada a uma restauração de POC; determinar, com base em uma determinação de que a imagem atual não está associada a uma restauração de POC, os MSBs do segundo POC da imagem atual com base no valor de ciclo de MSB de POC associado à imagem atual; ou atualizar, com base em uma determinação de que a imagem atual está associada a uma restauração de POC, valores de POC de todas as imagens em um armazenador temporário de imagem codificada, DPB, que estão na primeira camada de vídeo com base no valor de ciclo de MSB de POC associado à imagem atual; e codificar a imagem atual no bitstream.
9. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que a imagem atual é uma dentre uma imagem de acesso aleatório limpo, CRA, ou uma imagem de acesso de link interrompido, BLA.
10. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que um conjunto de parâmetros de vídeo associado à primeira camada de vídeo inclui uma sinalização ou elemento de sintaxe que indica se o valor de ciclo de MSB de POC é sinalizado no bitstream em associação à imagem atual.
11. Método, de acordo com a reivindicação 7 ou 8, caracterizado pelo fato de que a imagem atual é uma imagem de renovação instantânea de decodificador, IDR.
12. Memória não transitória legível por computador caracterizada pelo fato de que compreende instruções que, quando executadas, fazem com que um aparelho realize o método de decodificação, conforme definido em qualquer uma das reivindicações 7 ou 9 a 11.
13. Memória não transitória legível por computador caracterizada pelo fato de que compreende instruções que, quando executadas, fazem com que um aparelho realize o método de codificação, conforme definido em qualquer uma das reivindicações 8 a 11.
BR112016014227-6A 2013-12-19 2014-12-19 Dispositivo e método para codificação escalável de informação de vídeo BR112016014227B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361918630P 2013-12-19 2013-12-19
US61/918,630 2013-12-19
US14/575,788 2014-12-18
US14/575,788 US9854270B2 (en) 2013-12-19 2014-12-18 Device and method for scalable coding of video information
PCT/US2014/071505 WO2015095706A1 (en) 2013-12-19 2014-12-19 Device and method for scalable coding of video information

Publications (2)

Publication Number Publication Date
BR112016014227A2 BR112016014227A2 (pt) 2017-08-08
BR112016014227B1 true BR112016014227B1 (pt) 2023-05-16

Family

ID=53401548

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112016014227-6A BR112016014227B1 (pt) 2013-12-19 2014-12-19 Dispositivo e método para codificação escalável de informação de vídeo

Country Status (10)

Country Link
US (1) US9854270B2 (pt)
EP (1) EP3085097B1 (pt)
JP (1) JP6517213B2 (pt)
KR (1) KR102294250B1 (pt)
CN (1) CN105830447B (pt)
BR (1) BR112016014227B1 (pt)
CA (1) CA2930328C (pt)
ES (1) ES2854274T3 (pt)
TW (1) TWI645716B (pt)
WO (1) WO2015095706A1 (pt)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
PL3474551T3 (pl) 2011-09-22 2022-07-04 Lg Electronics Inc. Sposób predykcji międzyobrazowej wykonywany przez urządzenie dekodujące, sposób kodowania wideo wykonywany przez urządzenie kodujące i odczytywalny przez dekoder nośnik zapisu przechowujący zakodowaną informację wideo.
US9706199B2 (en) * 2012-09-28 2017-07-11 Nokia Technologies Oy Apparatus, a method and a computer program for video coding and decoding
KR102223751B1 (ko) * 2013-07-12 2021-03-05 소니 주식회사 재생 장치, 재생 방법, 및 기록 매체
AU2014288482A1 (en) * 2013-07-12 2015-02-26 Sony Corporation Image coding device and method
US10547844B2 (en) * 2014-12-04 2020-01-28 Lg Electronics Inc. Broadcasting signal transmission and reception method and device
US10216417B2 (en) 2016-10-26 2019-02-26 Samsung Electronics Co., Ltd. Method of consolidate data streams for multi-stream enabled SSDs
US10869032B1 (en) 2016-11-04 2020-12-15 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
US10484701B1 (en) 2016-11-08 2019-11-19 Amazon Technologies, Inc. Rendition switch indicator
EP3542529A4 (en) * 2016-11-17 2020-07-08 Intel Corporation SPHERICAL ROTATION FOR CODING WIDE VIEW VIDEO
US10264265B1 (en) 2016-12-05 2019-04-16 Amazon Technologies, Inc. Compression encoding of images
US10681382B1 (en) * 2016-12-20 2020-06-09 Amazon Technologies, Inc. Enhanced encoding and decoding of video reference frames
TWI617181B (zh) * 2017-01-04 2018-03-01 晨星半導體股份有限公司 用於高效率視訊編碼裝置之排程方法
GB2576286B (en) 2017-04-21 2022-09-07 Zenimax Media Inc Systems and methods for deferred post-processes in video encoding
US11048624B2 (en) 2017-04-25 2021-06-29 Samsung Electronics Co., Ltd. Methods for multi-stream garbage collection
US10698808B2 (en) 2017-04-25 2020-06-30 Samsung Electronics Co., Ltd. Garbage collection—automatic data placement
EP3847814A4 (en) * 2018-11-06 2021-07-14 Beijing Bytedance Network Technology Co. Ltd. POSITION DEPENDENT STORAGE, MOVEMENT INFORMATION
WO2020139829A1 (en) * 2018-12-27 2020-07-02 Futurewei Technologies, Inc. On intra random access point pictures and leading pictures in video coding
US11706429B2 (en) 2019-03-12 2023-07-18 Hyundai Motor Company Method and device for encoding and decoding image involving gradual refresh technique
WO2020185128A1 (en) * 2019-03-12 2020-09-17 Huawei Technologies Co., Ltd. Design for distributed decoding refresh in video coding
MX2021013535A (es) * 2019-05-06 2022-01-31 Huawei Tech Co Ltd Señalización de punto de recuperación en codificación de video.
EP3957067A4 (en) * 2019-05-06 2022-06-22 Huawei Technologies Co., Ltd. OUTPUT OF PREVIOUS FRAMES FOR FRAMES FROM A NEW VIDEO SEQUENCE ENCODED IN A VIDEO CODING
CN112118454B (zh) * 2019-06-20 2023-02-24 腾讯美国有限责任公司 视频解码方法、设备和计算机可读存储介质
US20220256194A1 (en) * 2019-06-20 2022-08-11 Sony Semiconductor Solutions Corporation Image processing apparatus and method
US11166038B2 (en) * 2019-06-20 2021-11-02 Tencent America LLC Method for support of scalability with adaptive picture resolution
CN110619193B (zh) * 2019-08-20 2022-02-15 许遥 提供网络图片的方法、装置、服务器及存储介质
BR122022009501A2 (pt) * 2019-09-24 2022-07-26 Huawei Technologies Co., Ltd. Método de codificação implementado por um codificador de vídeo, meio legível por computador não transitório, dispositivo de codificação e sistema
MX2022003550A (es) * 2019-09-24 2022-06-02 Huawei Tech Co Ltd Pruebas de conformidad hrd en ols.
JP7431330B2 (ja) 2019-12-26 2024-02-14 バイトダンス インコーポレイテッド ビデオコーディングにおけるプロファイル、層及びレイヤの指示
CN114868158A (zh) 2019-12-26 2022-08-05 字节跳动有限公司 层级视频中的解码图片缓冲区参数的信令通知
BR112022011719A2 (pt) 2019-12-26 2022-09-06 Bytedance Inc Método de processamento de vídeo, aparelho de processamento de dados de vídeo, e, mídias de armazenamento e de gravação legíveis por computador
KR20220121804A (ko) 2019-12-27 2022-09-01 바이트댄스 아이엔씨 파라미터 세트들에서의 서브픽처 시그널링
US11356698B2 (en) 2019-12-30 2022-06-07 Tencent America LLC Method for parameter set reference constraints in coded video stream
WO2021142363A1 (en) 2020-01-09 2021-07-15 Bytedance Inc. Decoding order of different sei messages
WO2021250087A1 (en) * 2020-06-10 2021-12-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Miscellaneous signaling concepts for multi-layer video bitstreams and for output timing derivation
US11895336B2 (en) * 2021-04-02 2024-02-06 Qualcomm Incorporated Picture orientation and quality metrics supplemental enhancement information message for video coding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007047736A2 (en) * 2005-10-19 2007-04-26 Thomson Licensing Multi-view video coding using scalable video coding
KR20090004658A (ko) * 2007-07-02 2009-01-12 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
US20120075436A1 (en) * 2010-09-24 2012-03-29 Qualcomm Incorporated Coding stereo video data
US9635355B2 (en) * 2011-07-28 2017-04-25 Qualcomm Incorporated Multiview video coding
US9451252B2 (en) * 2012-01-14 2016-09-20 Qualcomm Incorporated Coding parameter sets and NAL unit headers for video coding
US9973749B2 (en) * 2012-01-20 2018-05-15 Nokia Technologies Oy Method for video coding and an apparatus, a computer-program product, a system, and a module for the same
CN108322744B (zh) * 2012-01-31 2022-08-30 Vid拓展公司 用于可缩放的高效视频译码(hevc)的参考图片集(rps)信令
SG11201404509QA (en) * 2012-02-01 2014-08-28 Nokia Corp Method and apparatus for video coding
WO2013162258A1 (ko) * 2012-04-23 2013-10-31 삼성전자 주식회사 다시점 비디오 부호화 방법 및 장치, 다시점 비디오 복호화 방법 및 장치
US9813705B2 (en) * 2012-04-26 2017-11-07 Qualcomm Incorporated Parameter set coding

Also Published As

Publication number Publication date
BR112016014227A2 (pt) 2017-08-08
KR20160099686A (ko) 2016-08-22
EP3085097A1 (en) 2016-10-26
TWI645716B (zh) 2018-12-21
CN105830447B (zh) 2019-01-18
JP2017507517A (ja) 2017-03-16
TW201536038A (zh) 2015-09-16
EP3085097B1 (en) 2020-11-18
CA2930328A1 (en) 2015-06-25
CN105830447A (zh) 2016-08-03
CA2930328C (en) 2022-06-14
KR102294250B1 (ko) 2021-08-25
US9854270B2 (en) 2017-12-26
US20150181233A1 (en) 2015-06-25
JP6517213B2 (ja) 2019-05-22
ES2854274T3 (es) 2021-09-21
WO2015095706A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
ES2854274T3 (es) Dispositivo y procedimiento para codificación escalable de información de vídeo
EP3120549B1 (en) Picture flushing and decoded picture buffer parameter inference for multi-layer bitstreams
EP3090551B1 (en) Support of base layer of a different codec in multi-layer video coding
BR112016008225B1 (pt) Aparelhos e métodos para codificação e decodificação de informações de vídeo e memória legível por computador
WO2015103231A1 (en) Improved inference of nooutputofpriorpicsflag in video coding
BR112016024233B1 (pt) Método e aparelho para codificar uma imagem de camada de aperfeiçoamento em um fluxo de bits de múltiplas camadas
KR102329656B1 (ko) 비디오 정보의 스케일러블 코딩을 위한 디바이스 및 방법
BR112016021473B1 (pt) Método e aparelho para codificar informação de vídeo usando extensão escalável para codificação de vídeo de alta eficiência, shvc, ou codificação de vídeo de alta eficiência de múltiplas vistas, mv-hevc, assim como memória legível por computador
BR112016015893B1 (pt) Método de decodificação de informações de vídeo, aparelho configurado para decodificar informações de vídeo e memória legível por computador
US9848199B2 (en) Device and method for scalable coding of video information
BR112016029611B1 (pt) Aparelho e método para codificar informações de vídeo em codificação de vídeo de alta eficiência, e, memória legível por computador
BR112016015552B1 (pt) Métodos para codificação de um conjunto de imagens de referência (rps) entre camadas e codificação de unidades da camada de acesso à rede (nal) do fim do fluxo de bits
BR112016015560A2 (pt) Método para codificar um conjunto de imagem de referência (rps) em codificação multicamada
BR112016001121B1 (pt) Dispositivo e método para codificação escalável de informações de vídeo e memória legível por computador
BR112016015560B1 (pt) Método e aparelho para codificar informações de vídeo de um fluxo de bits de múltiplas camadas e memória legível por computador
NZ719895B2 (en) Improved inference of nooutputofpriorpicsflag in video coding
BR112016015918B1 (pt) Suporte de camada base não-hevc em extensões de muticamada de hevc
BR112016015931B1 (pt) Suporte de camada-base de não hevc em extensões de muticamadas de 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]
B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 19/12/2014, OBSERVADAS AS CONDICOES LEGAIS