BR112021012679A2 - Codificador de vídeo, decodificador de vídeo e métodos correspondentes - Google Patents

Codificador de vídeo, decodificador de vídeo e métodos correspondentes Download PDF

Info

Publication number
BR112021012679A2
BR112021012679A2 BR112021012679-1A BR112021012679A BR112021012679A2 BR 112021012679 A2 BR112021012679 A2 BR 112021012679A2 BR 112021012679 A BR112021012679 A BR 112021012679A BR 112021012679 A2 BR112021012679 A2 BR 112021012679A2
Authority
BR
Brazil
Prior art keywords
image
irap
nal unit
video
nal
Prior art date
Application number
BR112021012679-1A
Other languages
English (en)
Inventor
Fnu HENDRY
Ye-Kui Wang
Original Assignee
Huawei Technologies Co., Ltd.
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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Publication of BR112021012679A2 publication Critical patent/BR112021012679A2/pt

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/188Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a video data packet, e.g. a network abstraction layer [NAL] unit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

codificador de vídeo, decodificador de vídeo e métodos correspondentes. um método de codificação de um fluxo de bits de vídeo implementado por um codificador de vídeo é revelado. o método inclui armazenar, em uma memória do codificador de vídeo, um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (nal) disponíveis para dados de vídeo; selecionar, por um processador do codificador de vídeo, um tipo de unidade nal do conjunto de menos de cinco tipos de unidade nal para uma imagem a partir dos dados de vídeo; gerar, pelo processador do codificador de vídeo, um fluxo de bits de vídeo que contém uma unidade nal correspondente ao tipo de unidade nal selecionado e que contém um identificador que identifica o tipo de unidade nal selecionado; e transmitir, por um transmissor do codificador de vídeo, o fluxo de bits em direção a um decodificador de vídeo. um método correspondente de decodificação do fluxo de bits também é revelado.

Description

“CODIFICADOR DE VÍDEO, DECODIFICADOR DE VÍDEO E MÉTODOS CORRESPONDENTES” CAMPO DA TÉCNICA
[0001] Em geral, esta revelação descreve técnicas para manusear tipos de unidade de camada de abstração de rede (NAL) para imagens de ponto de acesso aleatório iniciais e intra (IRAP). Mais especificamente, esta revelação descreve técnicas para limitar o número de tipos de unidade NAL disponíveis e para usar flags para indicar se uma imagem é decodificável ou não quando as imagens não tiverem sido identificadas por tipo de unidade NAL.
ANTECEDENTES
[0002] A quantidade de dados de vídeo necessária para representar até mesmo um vídeo relativamente curto pode ser substancial, que pode resultar em dificuldades quando os dados precisam ser transmitidos ou comunicados de outro modo por meio de uma rede de comunicações com capacidade de largura de banda limitada. Desse modo, os dados de vídeo são, de modo geral, comprimidos antes de serem comunicados por meio de redes de telecomunicações atuais. O tamanho de um vídeo também pode ser uma questão quando o vídeo é armazenado em um dispositivo de armazenamento, visto que os recursos de memória podem ser limitados. Os dispositivos de compressão de vídeo normalmente usam software e/ou hardware na origem para codificar os dados de vídeo antes de transmissão ou armazenamento, diminuindo, desse modo, a quantidade de dados necessária para representar imagens de vídeo digitais. Os dados comprimidos são, então, recebidos no destino por um dispositivo de descompressão de vídeo que decodifica os dados de vídeo. Com recursos de rede limitados e demandas crescentes por maior qualidade de vídeo, as técnicas de compressão e descompressão aperfeiçoadas que aperfeiçoam a razão de compressão com pouco ou nenhum comprometimento na qualidade de imagem são desejáveis.
SUMÁRIO
[0003] Um primeiro aspecto se refere a um método de codificação de um fluxo de bits de vídeo implementado por um codificador de vídeo. O método inclui armazenar, em uma memória do codificador de vídeo, um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo; selecionar, por um processador do codificador de vídeo, um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL para uma imagem a partir dos dados de vídeo; gerar, pelo processador do codificador de vídeo, um fluxo de bits de vídeo que contém uma unidade NAL correspondente ao tipo de unidade NAL selecionado e que contém um identificador que identifica o tipo de unidade NAL selecionado; e transmitir, por um transmissor do codificador de vídeo, o fluxo de bits de vídeo em direção a um decodificador de vídeo.
[0004] O método fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I- RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0005] Em uma primeira forma de implementação do método, de acordo com o primeiro aspecto como tal, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) contém um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0006] Em uma segunda forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) consiste em um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0007] Em uma terceira forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, atribui-se, às imagens iniciais e finais, o tipo de unidade NAL de imagens iniciais e finais.
[0008] Em uma quarta forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP com tipo de unidade RASL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação.
[0009] Em uma quinta forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, a imagem IRAP é referida como uma imagem de acesso aleatório limpa (CRA).
[0010] Em uma sexta forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP com tipo de unidade RASL NAL é referido como um tipo de unidade NAL de acesso aleatório limpo (CRA).
[0011] Em uma sétima forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP com tipo de unidade RASL NAL é designado IRAP_W_RASL.
[0012] Em uma oitava forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, a designação IRAP_W_RASL corresponde a ponto de acesso de stream (SAP) tipo 3 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0013] Em uma nona forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP com tipo de unidade RADL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação.
[0014] Em uma décima forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
[0015] Em uma décima primeira forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL.
[0016] Em uma décima segunda forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP com tipo de unidade RADL NAL é designado IRAP_W_RADL.
[0017] Em uma décima terceira forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP_W_RADL corresponde a ponto de acesso de stream (SAP) tipo 2 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0018] Em uma décima quarta forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é selecionado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação.
[0019] Em uma décima quinta forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial.
[0020] Em uma décima sexta forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais.
[0021] Em uma décima sétima forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é designado IRAP_N_LP.
[0022] Em uma décima oitava forma de implementação do método, de acordo com o primeiro aspecto como tal ou qualquer forma de implementação antecedente do primeiro aspecto, a designação IRAP_N_LP corresponde a ponto de acesso de stream (SAP) tipo 1 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0023] Um segundo aspecto se refere a um método de decodificação de um fluxo de bits de vídeo codificado implementado por um decodificador de vídeo. O método inclui armazenar, em uma memória do decodificador de vídeo, um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo; receber, por um receptor do decodificador de vídeo, um fluxo de bits de vídeo codificado que contém uma unidade NAL e um identificador; determinar, por um processador do decodificador de vídeo, um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL usados para codificar a unidade NAL com base no identificador; e atribuir, pelo processador do decodificador de vídeo, uma ordem de apresentação para imagens contidas na unidade NAL com base no tipo de unidade NAL determinado.
[0024] O método fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I- RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0025] Em uma primeira forma de implementação do método, de acordo com o segundo aspecto como tal, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) contém um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0026] Em uma segunda forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) consiste em um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0027] Em uma terceira forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, atribui-se, às imagens iniciais e finais, o tipo de unidade NAL de imagens iniciais e finais.
[0028] Em uma quarta forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP com tipo de unidade RASL NAL é determinado para uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação.
[0029] Em uma quinta forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, a imagem IRAP é referida como uma imagem de acesso aleatório limpo (CRA).
[0030] Em uma sexta forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP com tipo de unidade RASL NAL é referido como um tipo de unidade NAL de acesso aleatório limpo (CRA).
[0031] Em uma sétima forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP com tipo de unidade RASL NAL é designado IRAP_W_RASL.
[0032] Em uma oitava forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, a designação IRAP_W_RASL corresponde a ponto de acesso de stream (SAP) tipo 3 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0033] Em uma nona forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP com tipo de unidade RADL NAL é determinado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação.
[0034] Em uma décima forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
[0035] Em uma décima primeira forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL.
[0036] Em uma décima segunda forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP com tipo de unidade RADL NAL é designado IRAP_W_RADL.
[0037] Em uma décima terceira forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP_W_RADL corresponde a ponto de acesso de stream (SAP) tipo 2 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0038] Em uma décima quarta forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é determinado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação.
[0039] Em uma décima quinta forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial.
[0040] Em uma décima sexta forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais.
[0041] Em uma décima sétima forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é designado IRAP_N_LP.
[0042] Em uma décima oitava forma de implementação do método, de acordo com o segundo aspecto como tal ou qualquer forma de implementação antecedente do segundo aspecto, a designação IRAP_N_LP corresponde ao ponto de acesso de stream (SAP) tipo 1 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0043] Um terceiro aspecto se refere a um dispositivo de codificação. O dispositivo de codificação inclui uma memória que contém instruções e um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo; um processador acoplado à memória, o processador configurado para implementar as instruções para fazer com que o dispositivo de codificação: selecione um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL para uma imagem a partir dos dados de vídeo; e gere um fluxo de bits de vídeo que contém uma unidade NAL correspondente ao tipo de unidade NAL selecionado e que contém um identificador que identifica o tipo de unidade NAL selecionado; e um transmissor acoplado ao processador, o transmissor configurado para transmitir o fluxo de bits de vídeo em direção a um decodificador de vídeo.
[0044] O dispositivo de codificação fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais
(também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I-RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0045] Em uma primeira forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) contém um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0046] Em uma segunda forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) consiste em um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0047] Em uma terceira forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, atribui-se, às imagens iniciais e finais, o tipo de unidade NAL de imagens iniciais e finais.
[0048] Em uma quarta forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP com tipo de unidade RASL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação.
[0049] Em uma quinta forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, a imagem IRAP é referida como uma imagem de acesso aleatório limpo (CRA).
[0050] Em uma sexta forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP com tipo de unidade RASL NAL é referido como um tipo de unidade NAL de acesso aleatório limpo (CRA).
[0051] Em uma sétima forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP com tipo de unidade RASL NAL é designado IRAP_W_RASL.
[0052] Em uma oitava forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, a designação IRAP_W_RASL corresponde a ponto de acesso de stream (SAP) tipo 3 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0053] Em uma nona forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP com tipo de unidade RADL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação.
[0054] Em uma décima forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
[0055] Em uma décima primeira forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL.
[0056] Em uma décima segunda forma de implementação do dispositivo de codificação de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP com tipo de unidade RADL NAL é designado IRAP_W_RADL.
[0057] Em uma décima terceira forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP_W_RADL corresponde a ponto de acesso de stream (SAP) tipo 2 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0058] Em uma décima quarta forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é selecionado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação.
[0059] Em uma décima quinta forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial.
[0060] Em uma décima sexta forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais.
[0061] Em uma décima sétima forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é designado IRAP_N_LP.
[0062] Em uma décima oitava forma de implementação do dispositivo de codificação, de acordo com o terceiro aspecto como tal ou qualquer forma de implementação antecedente do terceiro aspecto, a designação IRAP_N_LP corresponde a ponto de acesso de stream (SAP) tipo 1 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0063] Um quarto aspecto se refere a um dispositivo de decodificação.
O dispositivo de decodificação inclui um receptor configurado para receber um fluxo de bits de vídeo codificado que contém uma unidade NAL e um identificador; uma memória acoplada ao receptor, a memória armazena instruções e um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo; e um processador acoplado à memória, o processador configurado para executar as instruções para fazer com que o dispositivo de decodificação: determine um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL usados para codificar a unidade NAL com base no identificador; e atribua uma ordem de apresentação para imagens contidas na unidade NAL com base no tipo de unidade NAL determinado.
[0064] O dispositivo de decodificação fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I-RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0065] Em uma primeira forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) contém um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0066] Em uma segunda forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) consiste em um tipo de unidade NAL de imagens iniciais e finais, um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais.
[0067] Em uma terceira forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, atribui-se, às imagens iniciais e finais, o tipo de unidade NAL de imagens iniciais e finais.
[0068] Em uma quarta forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP com tipo de unidade RASL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação.
[0069] Em uma quinta forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, a imagem IRAP é referida como uma imagem de acesso aleatório limpo (CRA).
[0070] Em uma sexta forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP com tipo de unidade RASL NAL é referido como um tipo de unidade NAL de acesso aleatório limpo (CRA).
[0071] Em uma sétima forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP com tipo de unidade RASL NAL é designado IRAP_W_RASL.
[0072] Em uma oitava forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, a designação IRAP_W_RASL corresponde a ponto de acesso de stream (SAP) tipo 3 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0073] Em uma nona forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP com tipo de unidade RADL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação.
[0074] Em uma décima forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
[0075] Em uma décima primeira forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL.
[0076] Em uma décima segunda forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP com tipo de unidade RADL NAL é designado IRAP_W_RADL.
[0077] Em uma décima terceira forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP_W_RADL corresponde a ponto de acesso de stream (SAP) tipo 2 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0078] Em uma décima quarta forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é selecionado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação.
[0079] Em uma décima quinta forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial.
[0080] Em uma décima sexta forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais.
[0081] Em uma décima sétima forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, o IRAP sem tipo de unidade NAL de imagens iniciais é designado IRAP_N_LP.
[0082] Em uma décima oitava forma de implementação do dispositivo de decodificação, de acordo com o quarto aspecto como tal ou qualquer forma de implementação antecedente do quarto aspecto, a designação IRAP_N_LP corresponde a ponto de acesso de stream (SAP) tipo 1 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0083] Um quinto aspecto se refere a um método de codificação de um fluxo de bits de vídeo implementado por um codificador de vídeo. O método inclui gerar, por um processador do codificador de vídeo, um fluxo de bits que contém uma unidade NAL para uma imagem de ponto de acesso aleatório não intra (não IRAP) associada a uma imagem de ponto de acesso aleatório intra (IRAP); definir, pelo processador do codificador de vídeo, uma primeira flag no fluxo de bits para um primeiro valor quando a unidade NAL para a imagem não IRAP compreende uma imagem inicial decodificável de acesso aleatório (RADL); definir, pelo processador do codificador de vídeo, uma segunda flag no fluxo de bits para o primeiro valor quando a unidade NAL para a imagem não IRAP compreender uma imagem inicial pulada de acesso aleatório (RASL); e transmitir, por um transmissor do codificador de vídeo, o fluxo de bits de vídeo em direção a um decodificador de vídeo.
[0084] O método de codificação fornece técnicas para quando imagens não IRAP não forem identificadas pelo tipo de unidade NAL. Em tais casos, flags em um fluxo de bits são definidas para um valor particular para indicar se uma imagem IRAP está ou não associada a uma imagem RADL ou uma imagem RASL.
[0085] Em uma primeira forma de implementação do método, de acordo com o quinto aspecto como tal, a primeira flag é designada uma RadlPictureFlag e a segunda flag é designada uma RaslPictureFlag.
[0086] Em uma segunda forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, o primeiro valor é um (1).
[0087] Em uma terceira forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a imagem não IRAP compreende uma imagem inicial.
[0088] Em uma quarta forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a imagem não IRAP compreende uma imagem final.
[0089] Em uma quinta forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a primeira flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP for menor do que um valor POC da imagem IRAP.
[0090] Em uma sexta forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a primeira flag é definida como igual ao primeiro valor quando cada lista de imagem de referência para a imagem não IRAP não contiver qualquer imagem diferente da imagem IRAP associada à imagem não IRAP ou outra imagem RADL associada à imagem IRAP.
[0091] Em uma sétima forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a segunda flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP é menor do que um valor POC da imagem IRAP.
[0092] Em uma oitava forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a segunda flag é definida como igual ao primeiro valor quando lista de imagem de referência para a imagem não IRAP contiver pelo menos uma imagem de referência que precede a imagem IRAP associada à imagem não IRAP em ordem de decodificação ou outra imagem RASL associada à imagem IRAP.
[0093] Em uma nona forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, que compreende adicionalmente definir a primeira flag e a segunda flag para um segundo valor para indicar que a unidade NAL para a imagem não IRAP não inclui a imagem RADL ou a imagem RASL.
[0094] Em uma décima forma de implementação do método, de acordo com o quinto aspecto como tal ou qualquer forma de implementação antecedente do quinto aspecto, a primeira flag e a segunda flag não são definidas para o primeiro valor para a imagem não IRAP.
[0095] Um sexto aspecto se refere a um método de decodificação de um fluxo de bits de vídeo implementado por um decodificador de vídeo. O método inclui receber, por um receptor do decodificador de vídeo, um fluxo de bits de vídeo codificado que contém uma primeira flag, uma segunda flag e uma unidade NAL para uma imagem de ponto de acesso aleatório não intra (não IRAP) associada a uma imagem de ponto de acesso aleatório intra (IRAP); determinar, por um processador do decodificador de vídeo, que a unidade NAL para a imagem não IRAP compreende uma imagem inicial decodificável de acesso aleatório (RADL) quando a primeira flag no fluxo de bits tiver sido definida para um primeiro valor; determinar, por um processador do decodificador de vídeo, que a unidade NAL para a imagem não IRAP compreende uma imagem inicial pulada de acesso aleatório (RASL) quando a segunda flag no fluxo de bits tiver sido definida para o primeiro valor; e atribuir, pelo processador do decodificador de vídeo, uma ordem de apresentação para imagens contidas na unidade NAL com base na primeira flag ou na segunda flag que tem o primeiro valor e decodificar a unidade NAL com base na ordem de apresentação atribuída.
[0096] O método de decodificação fornece técnicas para quando imagens não IRAP não forem identificadas pelo tipo de unidade NAL. Em tais casos, flags em um fluxo de bits são definidas para um valor particular para indicar se uma imagem IRAP está ou não associada a uma imagem RADL ou uma imagem RASL.
[0097] Em uma primeira forma de implementação do método, de acordo com o sexto aspecto como tal, a primeira flag é designada uma RadlPictureFlag e a segunda flag é designada uma RaslPictureFlag.
[0098] Em uma segunda forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, o primeiro valor é um (1).
[0099] Em uma terceira forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a imagem não IRAP compreende uma imagem inicial.
[0100] Em uma quarta forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a imagem não IRAP compreende uma imagem final.
[0101] Em uma quinta forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a primeira flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP é menor do que um valor POC da imagem IRAP.
[0102] Em uma sexta forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a primeira flag é definida como igual ao primeiro valor quando cada lista de imagem de referência para a imagem não IRAP não contiver qualquer imagem diferente da imagem IRAP associada à imagem não IRAP ou outra imagem RADL associada à imagem IRAP.
[0103] Em uma sétima forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a segunda flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP é menor do que um valor POC da imagem IRAP.
[0104] Em uma oitava forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a segunda flag é definida como igual ao primeiro valor quando lista de imagem de referência para a imagem não IRAP contiver pelo menos uma imagem de referência que precede a imagem IRAP associada à imagem não IRAP em ordem de decodificação ou outra imagem RASL associada à imagem IRAP.
[0105] Em uma nona forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, que compreende adicionalmente definir a primeira flag e a segunda flag para um segundo valor para indicar que a unidade NAL para a imagem não IRAP não inclui a imagem RADL ou a imagem RASL.
[0106] Em uma décima forma de implementação do método, de acordo com o sexto aspecto como tal ou qualquer forma de implementação antecedente do sexto aspecto, a primeira flag e a segunda flag não são definidas para o primeiro valor para a imagem não IRAP.
[0107] Um sétimo aspecto se refere a um aparelho de codificação. O aparelho de codificação compreende um receptor configurado para receber um fluxo de bits para decodificação; um transmissor acoplado ao receptor, o transmissor configurado para transmitir uma imagem decodificada a um display; uma memória acoplada a pelo menos um dentre o receptor ou o transmissor, a memória configurada para armazenar instruções; e um processador acoplado à memória, o processador configurado para executar as instruções armazenadas na memória para realizar o método em qualquer uma dentre as modalidades reveladas na presente invenção.
[0108] O aparelho de codificação fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I-RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0109] O aparelho de codificação também fornece técnicas para quando imagens não IRAP não forem identificadas pelo tipo de unidade NAL. Em tais casos, flags em um fluxo de bits são definidas para um valor particular para indicar se uma imagem IRAP está ou não associada a uma imagem RADL ou uma imagem RASL.
[0110] Um oitavo aspecto se refere a um sistema. O sistema inclui um codificador; e um decodificador em comunicação com o codificador, em que o codificador ou o decodificador inclui o dispositivo de decodificação, o dispositivo de codificação ou o aparelho de codificação revelados na presente invenção.
[0111] O sistema fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I- RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0112] O sistema também fornece técnicas para quando imagens não IRAP não forem identificadas pelo tipo de unidade NAL. Em tais casos, flags em um fluxo de bits são definidas para um valor particular para indicar se uma imagem IRAP está ou não associada a uma imagem RADL ou uma imagem RASL.
[0113] Um nono aspecto se refere a um meio para codificação. O meio para codificação inclui meio de recebimento configurado para receber um fluxo de bits para decodificação, meio de transmissão acoplado ao meio de recebimento, o meio de transmissão configurado para transmitir uma imagem decodificada para um meio de exibição, meio de armazenamento acoplado a pelo menos um dentre o meio de recebimento ou o meio de transmissão, o meio de armazenamento configurado para armazenar instruções, e meio de processamento acoplado ao meio de armazenamento, o meio de processamento configurado para executar as instruções armazenadas no meio de armazenamento para realizar os métodos revelados na presente invenção.
[0114] O meio para codificação fornece técnicas que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos (por exemplo, restringem o número de tipos de unidade NAL para quatro) tipos de unidade NAL específicos. Isso permite que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I-RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Restringindo-se o conjunto de tipos de unidade NAL, o codificador / decodificador (também conhecido como “codec”) em codificação de vídeo é aperfeiçoado (por exemplo, usa menos bits, demanda menos largura de banda, é mais eficiente, etc.) em relação a codecs atuais. Conforme uma questão prática, o processo de codificação de vídeo aperfeiçoado oferece ao usuário uma melhor experiência de usuário quando vídeos são enviados, recebidos e/ou visualizados.
[0115] O meio para codificação também fornece técnicas para quando imagens não IRAP não forem identificadas pelo tipo de unidade NAL. Em tais casos, flags em um fluxo de bits são definidas para um valor particular para indicar se uma imagem IRAP está ou não associada a uma imagem RADL ou uma imagem RASL.
BREVE DESCRIÇÃO DOS DESENHOS
[0116] Para um entendimento mais completo desta revelação, referência é feita à breve descrição a seguir, obtida em conjunto com os desenhos anexos e descrição detalhada, em que referências numéricas similares representam partes similares.
[0117] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação exemplificativo que pode usar técnicas de predição bilateral.
[0118] A Figura 2 é um diagrama de blocos que ilustra um codificador de vídeo exemplificativo que pode implementar técnicas de predição bilateral.
[0119] A Figura 3 é um diagrama de blocos que ilustra um exemplo de um decodificador de vídeo que pode implementar técnicas de predição bilateral.
[0120] A Figura 4 é um diagrama esquemático de uma modalidade de um fluxo de bits de vídeo.
[0121] A Figura 5 é uma representação de relação entre uma imagem I-RAP em relação a imagens iniciais e imagens finais em uma ordem de decodificação e uma ordem de apresentação.
[0122] A Figura 6 é uma modalidade de um método de codificação de um fluxo de bits de vídeo.
[0123] A Figura 7 é uma modalidade de um método de decodificação de um fluxo de bits de vídeo codificado.
[0124] A Figura 8 é uma modalidade de um método de codificação de um fluxo de bits de vídeo.
[0125] A Figura 9 é uma modalidade de um método de decodificação de um fluxo de bits de vídeo codificado.
[0126] A Figura 10 é um diagrama esquemático de um dispositivo de codificação de vídeo.
[0127] A Figura 11 é um diagrama esquemático de uma modalidade de um meio para codificação.
DESCRIÇÃO DETALHADA
[0128] A seguir há vários acrônimos empregados na presente invenção: Bloco de Árvore de codificação (CTB), Unidade de Árvore de Codificação (CTU), Unidade de Codificação (CU), Sequência de Vídeo Codificada (CVS), Equipe de Especialistas em Vídeo Conjunta (JVET), Conjunto de Tiles com Movimento Restrito (MCTS), Unidade de Transferência Máxima (MTU), Camada de Abstração de Rede (NAL), Contagem de Ordem de Imagem (POC), Conjunto de Parâmetros de Imagem (PPS) Carga Útil de Sequência de Byte Bruto (RBSP), Conjunto de Parâmetros de Sequência (SPS), Codificação de Vídeo Versátil (VVC) e Projeto de Trabalho (WD).
[0129] A Figura 1 é um diagrama de blocos que ilustra um sistema de codificação exemplificativo 10 que pode usar técnicas de codificação de vídeo conforme descrito na presente invenção. Conforme mostrado na Figura 1, o sistema de codificação 10 inclui um dispositivo de origem 12 que fornece dados de vídeo codificados para serem decodificados em um momento posterior por um dispositivo de destino 14. Em particular, o dispositivo de origem 12 pode fornecer os dados de vídeo para o dispositivo de destino 14 por meio de uma mídia legível por computador 16. O dispositivo de origem 12 e o dispositivo de destino 14 podem compreender qualquer um dentre uma ampla faixa de dispositivos, incluindo computadores do tipo desktop, computadores do tipo notebook (por exemplo, laptop), computadores do tipo tablet, set-top boxes, aparelhos de telefone, tais como telefones denominados “inteligentes”, denominados “smart” pads, televisores, câmeras, dispositivos de exibição, reprodutores de mídia digital, consoles de vídeo game, dispositivo de transmissão contínua de vídeo ou similares. Em alguns casos, o dispositivo de origem 12 e o dispositivo de destino
14 podem ser equipados para comunicação sem fio.
[0130] O dispositivo de destino 14 pode receber os dados de vídeo codificados a serem decodificados por meio da mídia legível por computador 16. A mídia legível por computador 16 pode compreender qualquer tipo de mídia ou dispositivo com a capacidade de mover os dados de vídeo codificados do dispositivo de origem 12 para o dispositivo de destino 14. Em um exemplo, a mídia legível por computador 16 pode compreender uma mídia de comunicação para possibilitar que o dispositivo de origem 12 transmita 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 um padrão de comunicação, tal como um protocolo de comunicação sem fio, e transmitidos ao dispositivo de destino 14. A mídia de comunicação pode compreender qualquer mídia de comunicação com ou sem fio, tal como um espectro de radiofrequência (RF) ou uma ou mais linhas de transmissão físicas. A mídia de comunicação pode fazer parte de uma rede com base em pacote, tal como uma rede de área local, uma rede de área ampla ou uma rede global, tal como a Internet. A mídia de comunicação pode incluir roteadores, comutadores, estações base ou qualquer outro equipamento que possa ser útil para facilitar a comunicação a partir do dispositivo de origem 12 para o dispositivo de destino 14.
[0131] Em alguns exemplos, os dados codificados podem ser emitidos da interface de saída 22 para um dispositivo de armazenamento. De modo similar, os dados codificados podem ser acessados a partir do dispositivo de armazenamento através de interface de entrada. O dispositivo de armazenamento pode incluir qualquer uma dentre uma variedade de mídias de armazenamento de dados distribuídas ou acessadas localmente, tais como unidades rígidas, discos Blu-ray, discos de vídeo digital (DVDs), Discos Compactos Memória Somente Leitura (CD-ROMs), memória flash, memória volátil ou não volátil ou quaisquer outras mídias de armazenamento digital adequadas para armazenar dados de vídeo codificados. Em um exemplo adicional, o dispositivo de armazenamento pode corresponder a um servidor de arquivos ou outro dispositivo de armazenamento intermediário que pode armazenar o vídeo codificado gerado pelo dispositivo de origem 12. O dispositivo de destino 14 pode acessar dados de vídeo armazenados a partir do dispositivo de armazenamento através de transmissão contínua ou transferência por download. O servidor de arquivos pode ser qualquer tipo de servidor com a capacidade de armazenar dados de vídeo codificados e transmitir esses dados de vídeo codificados ao dispositivo de destino
14. Os servidores de arquivos exemplificativos incluem um servidor da web (por exemplo, para um site da web), um servidor de protocolo de transferência de arquivos (FTP), dispositivos de armazenamento ligados à rede (NAS) 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 com a Internet. Isso pode incluir um canal sem fio (por exemplo, uma conexão Wi-Fi), uma conexão com fio (por exemplo, linha de assinante digital (DSL), modem a cabo, etc.), ou uma combinação de ambos que é adequada para acessar dados de vídeo codificados armazenados em um servidor de arquivos. A transmissão de dados de vídeo codificados a partir do dispositivo de armazenamento pode ser uma transmissão contínua, uma transmissão por download ou uma combinação das mesmas.
[0132] As técnicas desta revelação não são limitadas, necessariamente, a aplicações ou configurações sem fio. As técnicas podem ser aplicadas à codificação de vídeo com auxílio de qualquer uma dentre uma variedade de aplicações multimídia, tais como difusões por televisão pelo ar, transmissões por televisão a cabo, transmissões por televisão via satélite, transmissões de vídeo contínuas através da Internet, tais como transmissão contínua adaptativa dinâmica através de HTTP (DASH), vídeo digital que é codificado em uma mídia de armazenamento de dados, decodificação de vídeo digital armazenado em uma mídia de armazenamento de dados ou outras aplicações. Em alguns exemplos, o sistema de codificação 10 pode ser configurado para suportar transmissão de vídeo de uma direção ou duas direções para suportar aplicações, tais como transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo e/ou telefonia por vídeo.
[0133] No exemplo da Figura 1, dispositivo de origem 12 inclui fonte de vídeo 18, codificador de vídeo 20 e interface de saída 22. O dispositivo de destino 14 inclui interface de entrada 28, decodificador de vídeo 30 e dispositivo de exibição 32. Em conformidade com esta revelação, o codificador de vídeo 20 do dispositivo de origem 12 e/ou o decodificador de vídeo 30 do dispositivo de destino 14 podem ser configurados para aplicar as técnicas para codificação de vídeo. Em outros exemplos, um dispositivo de origem e um dispositivo de destino podem incluir outros componentes ou disposições. Por exemplo, o dispositivo de origem 12 pode receber dados de vídeo de uma fonte de vídeo externa, tal como uma câmera externa. Do mesmo modo, o dispositivo de destino 14 pode fazer interface com um dispositivo de exibição externo, em vez de incluir um dispositivo de exibição integrado.
[0134] O sistema de codificação ilustrado 10 da Figura 1 é apenas um exemplo. As técnicas para codificação de vídeo podem ser realizadas por qualquer dispositivo de codificação e/ou decodificação de vídeo digital. Embora as técnicas desta revelação sejam geralmente realizadas por um dispositivo de codificação de vídeo, as técnicas também podem ser realizadas por um codificador/decodificador de vídeo, tipicamente referido como um “CODEC”. Além disso, as técnicas desta revelação também podem ser realizadas por um pré- processador de vídeo. O codificador de vídeo e/ou o decodificador podem ser uma unidade de processamento gráfico (GPU) ou um dispositivo similar.
[0135] O dispositivo de origem 12 e o dispositivo de destino 14 são apenas exemplos de tais dispositivos de codificação nos quais o dispositivo de origem 12 gera dados de vídeo codificados para transmissão para o dispositivo de destino 14. Em alguns exemplos, o dispositivo de origem 12 e o dispositivo de destino 14 podem operar em um modo substancialmente simétrico de modo que cada um dentre os dispositivos de origem e destino 12, 14 inclua componentes de codificação e decodificação de vídeo. Portanto, o sistema de codificação 10 pode suportar transmissão de vídeo de uma direção ou duas direções entre dispositivos de vídeo 12, 14, por exemplo, para transmissão contínua de vídeo, reprodução de vídeo, difusão de vídeo ou telefonia por vídeo.
[0136] A fonte de vídeo 18 do dispositivo de origem 12 pode incluir um dispositivo de captura de vídeo, tal como uma câmera de vídeo, um arquivo de vídeo que contém vídeo previamente capturado e/ou uma interface de alimentação de vídeo para receber vídeo de um provedor de conteúdo de vídeo. Conforme uma alternativa adicional, a fonte de vídeo 18 pode gerar dados com base em computação gráfica como o vídeo de origem, ou uma combinação de vídeo ao vivo, vídeo arquivado e vídeo gerado por computador.
[0137] Em alguns casos, quando a fonte de vídeo 18 for uma câmera de vídeo, o dispositivo de origem 12 e o dispositivo de destino 14 podem formar telefones com câmera ou telefones com vídeo. Conforme mencionado acima,
entretanto, as técnicas descritas nesta revelação podem ser aplicáveis à codificação de vídeo em geral, e podem ser aplicadas a aplicações com e/ou sem fio. Em cada caso, o vídeo capturado, pré-capturado ou gerado por computador pode ser codificado pelo codificador de vídeo 20. As informações de vídeo codificadas podem ser, então, emitidas pela interface de saída 22 para uma mídia legível por computador 16.
[0138] A mídia legível por computador 16 pode incluir mídias transientes, tais como uma difusão sem fio ou transmissão de rede com fio, ou mídias de armazenamento (ou seja, mídias de armazenamento não transitórias), tais como um disco rígido, unidade flash, disco compacto, disco de vídeo digital, disco Blu-ray ou outras mídias legíveis por computador. Em alguns exemplos, um servidor de rede (não mostrado) pode receber dados de vídeo codificados do dispositivo de origem 12 e fornecer os dados de vídeo codificados ao dispositivo de destino 14, por exemplo, por meio de transmissão por rede. De modo similar, um dispositivo de computação de uma unidade de produção de mídia, tal como uma unidade de estampagem de disco, pode receber dados de vídeo codificados do dispositivo de origem 12 e produzir um disco que contém os dados de vídeo codificados. Portanto, a mídia legível por computador 16 pode ser entendida como incluindo uma ou mais mídias legíveis por computador de várias formas, em vários exemplos.
[0139] A interface de entrada 28 do dispositivo de destino 14 recebe informações da mídia legível por computador 16. As informações da mídia legível por computador 16 podem incluir informações de sintaxe definidas pelo codificador de vídeo 20, que também são usadas pelo decodificador de vídeo 30, que incluem elementos de sintaxe que descrevem características e/ou processamento de blocos e outras unidades codificadas, por exemplo, grupo de imagens (GOPs). O dispositivo de exibição 32 exibe os dados de vídeo decodificados a um usuário, e pode compreender qualquer um dentre uma variedade de dispositivos de exibição, tais como um tubo de raios catódicos (CRT), um display de cristal líquido (LCD), um display de plasma, um display de diodo orgânico emissor de luz (OLED) ou outro tipo de dispositivo de exibição.
[0140] O codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com um padrão de codificação de vídeo, tal como o padrão de Codificação de Vídeo de Alta Eficiência (HEVC) atualmente em desenvolvimento,
e podem estar em conformidade com o Modelo de Teste HEVC (HM). Alternativamente, o codificador de vídeo 20 e o decodificador de vídeo 30 podem operar de acordo com outros padrões proprietários ou industriais, tais como o padrão de Setor de Padronização de Telecomunicação de União Internacional de Telecomunicações (ITU-T) H.264, referido como, de modo alternativo, Grupo de Especialistas em Imagem em Movimento (MPEG)-4, Parte 10, Codificação de Vídeo Avançada (AVC), H.265/HEVC, ou extensões de tais padrões. As técnicas desta revelação, entretanto, não são limitadas a qualquer padrão de codificação particular. Outros exemplos de padrões de codificação de vídeo incluem MPEG-2 e ITU-T H.263. Embora não mostrado na Figura 1, em alguns aspectos, o codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, integrados a um codificador e decodificador de áudio, e podem incluir unidades de multiplexador-demultiplexador (MUX-DEMUX) apropriadas ou outro hardware e software, para realizar codificação de áudio e vídeo em um fluxo de dados comum ou fluxos de dados separados. Se aplicáveis, as unidades MUX-DEMUX podem estar em conformidade com o protocolo de multiplexador ITU H.223 ou outros protocolos, tais como o protocolo de datagrama de usuário (UDP).
[0141] O codificador de vídeo 20 e o decodificador de vídeo 30 podem ser, cada um, implementados como qualquer um dentre uma variedade de circuitos de codificador adequado, tal como um ou mais microprocessadores, processadores de sinal digital (DSPs), circuitos integrados de aplicação específica (ASICs), arranjos de porta programáveis em campo (FPGAs), lógica discreta, software, hardware, firmware ou quaisquer combinações dos mesmos. Quando as técnicas são implementadas parcialmente em software, um dispositivo pode armazenar instruções para o software em uma mídia legível por computador não transitória adequada e executar as instruções em hardware com o uso de um ou mais processadores para realizar as técnicas desta revelação. Cada um dentre o codificador de vídeo 20 e o decodificador de vídeo 30 pode ser incluído em um ou mais codificadores ou decodificadores, em que qualquer um dos mesmos pode ser integrado como parte de um codificador/decodificador combinado (CODEC) em um respectivo dispositivo. Um dispositivo que inclui o codificador de vídeo 20 e/ou o decodificador de vídeo 30 pode compreender um circuito integrado, um microprocessador e/ou um dispositivo de comunicação sem fio, tal como um telefone celular.
[0142] A Figura 2 é um diagrama de blocos que ilustra um exemplo de codificador de vídeo 20 que pode implementar técnicas de codificação de vídeo. O codificador de vídeo 20 pode realizar codificação intra e inter de blocos de vídeo dentro de fatias de vídeo. Codificação intra depende de predição espacial para reduzir ou remover redundância espacial em vídeo dentro de um determinado quadro de vídeo ou imagem. Codificação inter depende de predição temporal para reduzir ou remover redundância temporal em vídeo dentro de quadros ou imagens adjacentes de uma sequência de vídeo. Modo intra (modo I) pode se referir a qualquer um dentre diversos modos de codificação com base espacial. Modos inter, tais como predição unidirecional (também conhecida como unipredição) (modo P) ou bipredição (também conhecida como bi prediction) (modo B), podem se referir a qualquer um dentre diversos modos de codificação com base temporal.
[0143] Conforme mostrado na Figura 2, o codificador de vídeo 20 recebe um bloco de vídeo atual dentro de um quadro de vídeo a ser codificado. No exemplo da Figura 2, o codificador de vídeo 20 inclui unidade de seleção de modo 40, memória de quadro de referência 64, somador 50, unidade de processamento de transformada 52, unidade de quantização 54 e unidade de codificação de entropia 56. A unidade de seleção de modo 40, por sua vez, inclui a unidade de compensação de movimento 44, a unidade de estimação de movimento 42, a unidade de predição intra (também conhecida como intra prediction) 46 e a unidade de partição 48. Para reconstrução de bloco de vídeo, o codificador de vídeo 20 também inclui a unidade de quantização inversa 58, a unidade de transformada inversa 60 e o somador 62. Um filtro de desbloqueio (não mostrado na Figura 2) também pode ser incluído para filtrar delimitações de bloco para remover artefatos de bloqueio de vídeo reconstruído. Se desejado, o filtro de desbloqueio tipicamente filtrará a saída do somador 62. Filtros adicionais (em laço ou pós laço) também podem ser usados além do filtro de desbloqueio. Tais filtros não são mostrados por questão de concisão, mas se desejado, podem filtrar a saída do somador 50 (como um filtro em laço).
[0144] Durante o processo de codificação, o codificador de vídeo 20 recebe um quadro ou fatia de vídeo a ser codificado. O quadro ou fatia pode ser dividido em múltiplos blocos de vídeo. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 realizam codificação preditiva inter do bloco de vídeo recebido em relação a um ou mais blocos em um ou mais quadros de referência para fornecer predição temporal. A unidade de predição intra 46 pode realizar, de modo alternativo, codificação preditiva intra do bloco de vídeo recebido em relação a um ou mais blocos vizinhos no mesmo quadro ou fatia que o bloco a ser codificado para fornecer predição espacial. O codificador de vídeo 20 pode realizar múltiplas passas de codificação, por exemplo, para selecionar um modo de codificação apropriado para cada bloco de dados de vídeo.
[0145] Além disso, a unidade de partição 48 pode particionar blocos de dados de vídeo em sub-blocos, com base em avaliação de esquemas de particionamento anteriores em passas de codificação anteriores. Por exemplo, a unidade de partição 48 pode particionar inicialmente um quadro ou fatia em unidades de codificação maiores (LCUs), e particionar cada uma dentre as LCUs em unidades de subcodificação (sub-CUs) com base em análise de taxa-distorção (por exemplo, otimização de taxa-distorção). A unidade de seleção de modo 40 pode produzir, ainda, uma estrutura de dados de quadtree indicativa de particionamento de uma LCU em sub-CUs. CUs de nó-folha da quadtree podem incluir uma ou mais unidades de predição (PUs) e uma ou mais unidades de transformada (TUs).
[0146] A presente revelação usa o termo “bloco” para se referir a qualquer uma dentre uma CU, PU ou TU, no contexto de HEVC, ou estruturas de dados similares no contexto de outros padrões (por exemplo, macroblocos e sub- blocos das mesmas em H.264/AVC). Uma CU inclui um nó de codificação, PUs e TUs associadas ao nó de codificação. Um tamanho da CU corresponde a um tamanho do nó de codificação e tem formato quadrangular. O tamanho da CU pode variar de 8×8 pixels até o tamanho do bloco de árvore com um máximo de 64×64 pixels ou maior. Cada CU pode conter uma ou mais PUs e uma ou mais TUs. Os dados de sintaxe associados a uma CU podem descrever, por exemplo, particionamento da CU em uma ou mais PUs. Os modos de particionamento podem diferir entre a CU ser ignorada ou codificada por modo direto, codificada por modo de predição intra ou codificada por modo de predição inter (também conhecido como inter prediction). As PUs podem ser particionadas para ter formato não quadrangular. Os dados de sintaxe associados a uma CU também podem descrever, por exemplo, particionamento da CU em uma ou mais TUs de acordo com uma quadtree. Uma TU pode ter formato quadrangular ou não quadrangular (por exemplo, retangular).
[0147] A unidade de seleção de modo 40 pode selecionar um dentre os modos de codificação, intra ou inter, por exemplo, com base em resultados de erro, e fornece o bloco codificado de modo intra ou inter resultante ao somador 50 para gerar dados de bloco residuais e ao somador 62 para reconstruir o bloco codificado para uso como um quadro de referência. A unidade de seleção de modo 40 também fornece elementos de sintaxe, tais como vetores de movimento, indicadores de modo intra, informações de partição e outras tais informações de sintaxe, para a unidade de codificação de entropia 56.
[0148] A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser altamente integradas, mas são ilustradas de forma separada para fins conceituais. A estimação de movimento, realizada pela unidade de estimação de movimento 42, é o processo de geração de vetores de movimento, que estimam movimento para blocos de vídeo. Um vetor de movimento, por exemplo, pode indicar o deslocamento de uma PU de um bloco de vídeo dentro de um quadro de vídeo atual ou imagem em relação a um bloco preditivo dentro de um quadro de referência (ou outra unidade codificada) em relação ao bloco atual sendo codificado dentro do quadro atual (ou outra unidade codificada). Um bloco preditivo é um bloco que é considerado ser bastante compatível com o bloco a ser codificado, em termos de diferença de pixel, que pode ser determinada por soma das diferenças absolutas (SAD), soma de diferenças quadráticas (SSD) ou outras métricas de diferença. Em alguns exemplos, o codificador de vídeo 20 pode calcular valores para posições de pixel de número subinteiro de imagens de referência armazenadas na memória de quadro de referência 64. Por exemplo, o codificador de vídeo 20 pode interpolar valores de posições de pixel de um quarto, posições de pixel de um oitavo ou outras posições de pixel fracionadas da imagem de referência. Portanto, a unidade de estimação de movimento 42 pode realizar uma busca de movimento em relação às posições de pixel inteiras e posições de pixel fracionadas e emitir um vetor de movimento com precisão de pixel fracionada.
[0149] A unidade de estimação de movimento 42 calcula um vetor de movimento para uma PU de um bloco de vídeo em uma fatia codificada de modo inter comparando-se a posição da PU com a posição de um bloco preditivo de uma imagem de referência. A imagem de referência pode ser selecionada a partir de uma primeira lista de imagem de referência (Lista 0) ou uma segunda lista de imagem de referência (Lista 1), cada uma das quais identifica uma ou mais imagens de referência armazenadas na memória de quadro de referência 64. A unidade de estimação de movimento 42 envia o vetor de movimento calculado para a unidade de codificação de entropia 56 e a unidade de compensação de movimento 44.
[0150] A compensação de movimento, realizada pela unidade de compensação de movimento 44, pode envolver buscar ou gerar o bloco preditivo com base no vetor de movimento determinado pela unidade de estimação de movimento 42. Novamente, a unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 podem ser funcionalmente integradas, em alguns exemplos. Mediante recebimento do vetor de movimento para a PU do bloco de vídeo atual, a unidade de compensação de movimento 44 pode localizar o bloco preditivo para o qual o vetor de movimento aponta em uma dentre as listas de imagem de referência. O somador 50 forma um bloco de vídeo residual subtraindo-se valores de pixel do bloco preditivo dos valores de pixel do bloco de vídeo atual sendo codificado, formando valores de diferença de pixel, conforme discutido abaixo. Em geral, a unidade de estimação de movimento 42 realiza estimação de movimento em relação a componentes de luma, e a unidade de compensação de movimento 44 usa vetores de movimento calculados com base nos componentes de luma para componentes de croma e componentes de luma. A unidade de seleção de modo 40 também pode gerar elementos de sintaxe associados aos blocos de vídeo e à fatia de vídeo para uso pelo decodificador de vídeo 30 na decodificação dos blocos de vídeo da fatia de vídeo.
[0151] A unidade de predição intra 46 pode predizer de modo intra um bloco atual, como uma alternativa à predição inter realizada pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44, conforme descrito acima. Em particular, a unidade de predição intra 46 pode determinar um modo de predição intra para uso para codificar um bloco atual. Em alguns exemplos, a unidade de predição intra 46 pode codificar um bloco atual com o uso de vários modos de predição intra, por exemplo, durante passas de codificação separadas, e a unidade de predição intra 46 (ou unidade de seleção de modo 40, em alguns exemplos) pode selecionar um modo de predição intra apropriado para usar a partir dos modos testados.
[0152] Por exemplo, a unidade de predição intra 46 pode calcular valores de taxa-distorção com o uso de uma análise de taxa-distorção para os vários modos de predição intra testados, e selecionar o modo de predição intra que tem as melhores características de taxa-distorção entre os modos testados. A análise de taxa-distorção geralmente determina uma quantidade de distorção (ou erro) entre um bloco codificado e um bloco original não codificado que foi codificado para produzir o bloco codificado, bem como uma taxa de bit (ou seja, um número de bits) usada para produzir o bloco codificado. A unidade de predição intra 46 pode calcular razões a partir das distorções e taxas para os vários blocos codificados para determinar qual modo de predição intra exibe o melhor valor taxa- distorção para o bloco.
[0153] Além disso, a unidade de predição intra 46 pode ser configurada para codificar blocos de profundidade de um mapa de profundidade com o uso de um modo de modelagem de profundidade (DMM). A unidade de seleção de modo 40 pode determinar se um modo de DMM disponível produz resultados de codificação melhores do que um modo de predição intra e os outros modos de DMM, por exemplo, com o uso de otimização de taxa-distorção (RDO). Os dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 64. A unidade de estimação de movimento 42 e a unidade de compensação de movimento 44 também podem ser configuradas para predizer de modo inter blocos de profundidade de um mapa de profundidade.
[0154] Após selecionar um modo de predição intra para um bloco (por exemplo, um modo de predição intra convencional ou um dentre os modos de DMM), a unidade de predição intra 46 pode fornecer informações indicativas do modo de predição intra selecionado para o bloco para a unidade de codificação de entropia 56. A unidade de codificação de entropia 56 pode codificar as informações que indicam o modo de predição intra selecionado. O codificador de vídeo 20 pode incluir nos dados de configuração de fluxo de bits transmitidos, que podem incluir uma pluralidade de tabelas de índice de modo de predição intra e uma pluralidade de tabelas de índice de modo de predição intra modificadas (também referidas como tabelas de mapeamento de palavra-código), definições de contextos de codificação para vários blocos, e indicações de um modo de predição intra mais provável, uma tabela de índice de modo de predição intra e uma tabela de índice de modo de predição intra modificada para uso para cada um dentre os contextos.
[0155] O codificador de vídeo 20 forma um bloco de vídeo residual subtraindo-se os dados de predição da unidade de seleção de modo 40 do bloco de vídeo original sendo codificado. O somador 50 representa o componente ou componentes que realizam essa operação de subtração.
[0156] A unidade de processamento de transformada 52 aplica uma transformada, tal como uma transformada discreta de cosseno (DCT) ou uma transformada conceitualmente similar, ao bloco residual, produzindo um bloco de vídeo que compreende valores de coeficiente de transformada residual. A unidade de processamento de transformada 52 pode realizar outras transformadas que são conceitualmente similares à DCT. As transformadas de wavelet, transformadas de número inteiro, transformadas de sub-banda ou outros tipos de transformadas também podem ser usados.
[0157] A unidade de processamento de transformada 52 aplica a transformada ao bloco residual, produzindo um bloco de coeficientes de transformada residuais. A transformada pode converter as informações residuais de um domínio de valor de pixel para um domínio de transformada, tal como um domínio de frequência. A unidade de processamento de transformada 52 pode enviar os coeficientes de transformada resultantes para a unidade de quantização
54. A unidade de quantização 54 quantiza os coeficientes de transformada para reduzir ainda mais a taxa de bit. O processo de quantização pode reduzir a profundidade de bit associada a alguns ou todos os coeficientes. O grau de quantização pode ser modificado ajustando-se um parâmetro de quantização. Em alguns exemplos, a unidade de quantização 54 pode, então, realizar uma varredura da matriz incluindo os coeficientes de transformada quantizados. Alternativamente, a unidade de codificação de entropia 56 pode realizar a varredura.
[0158] Após a quantização, a unidade de codificação de entropia 56 codifica por entropia os coeficientes de transformada quantizados. Por exemplo, a unidade de codificação de entropia 56 pode realizar codificação de comprimento variável adaptativa ao contexto (CAVLC), codificação aritmética binária adaptativa ao contexto (CABAC), codificação aritmética binária com base em sintaxe adaptativa ao contexto (SBAC), codificação de entropia de particionamento de intervalo de probabilidade (PIPE) ou outra técnica de codificação de entropia. No caso de codificação de entropia com base em contexto, contexto pode se basear em blocos vizinhos. Após a codificação de entropia pela unidade de codificação de entropia 56, o fluxo de bits codificado pode ser transmitido para outro dispositivo (por exemplo, decodificador de vídeo 30) ou arquivado para transmissão ou recuperação posterior.
[0159] A unidade de quantização inversa 58 e a unidade de transformada inversa 60 aplicam quantização inversa e transformação inversa, respectivamente, para reconstruir o bloco residual no domínio de pixel, por exemplo, para uso posterior como um bloco de referência. A unidade de compensação de movimento 44 pode calcular um bloco de referência adicionando-se o bloco residual a um bloco preditivo de um dentre os quadros da memória de quadro de referência 64. A unidade de compensação de movimento 44 também pode aplicar um ou mais filtros de interpolação ao bloco residual reconstruído para calcular valores de pixel de número subinteiro para uso em estimação de movimento. O somador 62 adiciona o bloco residual reconstruído ao bloco de predição de movimento compensado produzido pela unidade de compensação de movimento 44 para produzir um bloco de vídeo reconstruído para armazenamento na memória de quadro de referência 64. O bloco de vídeo reconstruído pode ser usado pela unidade de estimação de movimento 42 e pela unidade de compensação de movimento 44 como um bloco de referência para codificar de modo inter um bloco em um quadro de vídeo subsequente.
[0160] A Figura 3 é um diagrama de blocos que ilustra um exemplo do decodificador de vídeo 30 que pode implementar técnicas de codificação de vídeo. No exemplo da Figura 3, o decodificador de vídeo 30 inclui uma unidade de decodificação de entropia 70, unidade de compensação de movimento 72, unidade de predição intra 74, unidade de quantização inversa 76, unidade de transformação inversa 78, memória de quadro de referência 82 e somador 80. O decodificador de vídeo 30 pode realizar, em alguns exemplos, uma passa de decodificação geralmente recíproca à passa de codificação descrita em relação ao codificador de vídeo 20 (Figura 2). A unidade de compensação de movimento 72 pode gerar dados de predição com base em vetores de movimento recebidos da unidade de decodificação de entropia 70, enquanto a unidade de predição intra 74 pode gerar dados de predição com base em indicadores de modo de predição intra recebidos da unidade de decodificação de entropia 70.
[0161] Durante o processo de decodificação, o decodificador de vídeo 30 recebe um fluxo de bits de vídeo codificado que representa blocos de vídeo de uma fatia de vídeo codificada e elementos de sintaxe associados do codificador de vídeo 20. A unidade de decodificação de entropia 70 do decodificador de vídeo 30 decodifica por entropia o fluxo de bits para gerar coeficientes quantizados, vetores de movimento ou indicadores de modo de predição intra e outros elementos de sintaxe. A unidade de decodificação de entropia 70 encaminha os vetores de movimento e outros elementos de sintaxe para a unidade de compensação de movimento 72. O decodificador de vídeo 30 pode receber os elementos de sintaxe no nível de fatia de vídeo e/ou no nível de bloco de vídeo.
[0162] Quando a fatia de vídeo é codificada como uma fatia codificada de modo intra (I), a unidade de predição intra 74 pode gerar dados de predição para um bloco de vídeo da fatia de vídeo atual com base em um modo de predição intra sinalizado e dados de blocos previamente decodificados do quadro ou imagem atual. Quando o quadro de vídeo é codificado como uma fatia codificada de modo inter (por exemplo, B, P ou GPB), a unidade de compensação de movimento 72 produz blocos preditivos para um bloco de vídeo da fatia de vídeo atual com base nos vetores de movimento e outros elementos de sintaxe recebidos da unidade de decodificação de entropia 70. Os blocos preditivos podem ser produzidos a partir de uma dentre as imagens de referência dentro de uma dentre as listas de imagem de referência. O decodificador de vídeo 30 pode construir as listas de quadro de referência, Lista 0 e Lista 1, com o uso de técnicas de construção padrão com base em imagens de referência armazenadas na memória de quadro de referência 82.
[0163] A unidade de compensação de movimento 72 determina informações de predição para um bloco de vídeo da fatia de vídeo atual analisando-se os vetores de movimento e outros elementos de sintaxe, e usa as informações de predição para produzir os blocos preditivos para o bloco de vídeo atual sendo decodificado. Por exemplo, a unidade de compensação de movimento 72 usa alguns dos elementos de sintaxe recebidos para determinar um modo de predição (por exemplo, predição intra ou inter) usado para codificar os blocos de vídeo da fatia de vídeo, um tipo de fatia de predição inter (por exemplo, fatia B, fatia P ou fatia GPB), informações de construção para uma ou mais dentre as listas de imagem de referência para a fatia, vetores de movimento para cada bloco de vídeo codificado de modo inter da fatia, status de predição inter para cada bloco de vídeo codificado de modo inter da fatia, e outras informações para decodificar os blocos de vídeo na fatia de vídeo atual.
[0164] A unidade de compensação de movimento 72 também pode realizar interpolação com base em filtros de interpolação. A unidade de compensação de movimento 72 pode usar filtros de interpolação conforme usado pelo codificador de vídeo 20 durante codificação dos blocos de vídeo para calcular valores interpolados para pixels de número subinteiro de blocos de referência. Nesse caso, a unidade de compensação de movimento 72 pode determinar os filtros de interpolação usados pelo codificador de vídeo 20 a partir dos elementos de sintaxe recebidos e usar os filtros de interpolação para produzir blocos preditivos.
[0165] Os dados para uma imagem de textura correspondente a um mapa de profundidade podem ser armazenados na memória de quadro de referência 82. A unidade de compensação de movimento 72 também pode ser configurada para predizer de modo inter blocos de profundidade de um mapa de profundidade.
[0166] A compressão de imagem e vídeo passou por um rápido crescimento, levando a vários padrões de codificação. Tais padrões de codificação de vídeo incluem ITU-T H.261, ISO/IEC MPEG-1 Parte 2, ITU-T H.262 ou ISO/IEC MPEG-2 Parte 2, ITU-T H.263, ISO/IEC MPEG-4 Parte 2, Codificação de Vídeo Avançada (AVC), também conhecida como ITU-T H.264 ou ISO/IEC MPEG-4 Parte 10 e Codificação de Vídeo de Alta Eficiência (HEVC), também conhecida como ITU-T H.265 ou MPEG-H Parte 2. AVC inclui extensões, tais como Codificação de Vídeo Escalável (SVC), Codificação de Vídeo Multivista (MVC) e Codificação de Vídeo Multivista mais Profundidade (MVC+D), e 3D AVC (3D-AVC). HEVC inclui extensões, tais como HEVC Escalável (SHVC), HEVC Multivista (MV-HEVC) e 3D HEVC (3D-HEVC).
[0167] Há também um novo padrão de codificação de vídeo, denominado Codificação de Vídeo Versátil (VVC), sendo desenvolvido pela equipe de especialistas em vídeo conjunto (JVET) de ITU-T e ISO/IEC. O Projeto de Trabalho (WD) mais recente de VVC está incluído em JVET-L1001-v5, que está publicamente disponível em http://phenix.it-
sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v11.zip.
[0168] Imagens de ponto de acesso aleatório intra (IRAP) e imagens iniciais são discutidas.
[0169] Em HEVC, as imagens a seguir são consideradas imagens de ponto de acesso aleatório intra (IRAP): imagens IDR, BLA e CRA. Para VVC, durante o 12º encontro de JVET em outubro de 2018, foi acordado ter imagens IDR e CRA como imagens IRAP.
[0170] Uma imagem IRAP fornece as duas funcionalidades / benefícios importantes a seguir. Primeiramente, a presença de uma imagem IRAP indica que o processo de decodificação pode iniciar a partir dessa imagem. Essa funcionalidade permite um recurso de acesso aleatório no qual o processo de decodificação inicia em uma posição em um fluxo de bits, não necessariamente o início de um fluxo de bits, desde que uma imagem IRAP esteja presente naquela posição. Em segundo lugar, a presença de uma imagem IRAP atualiza o processo de decodificação de modo que a imagem codificada que inicia a imagem IRAP, excluindo imagens iniciais Puladas de Acesso Aleatório (RASL), sejam codificadas sem qualquer referência a imagens prévias. Ter uma imagem IRAP presente em um fluxo de bits iria consequentemente impedir qualquer erro que possa ocorrer durante decodificação de imagens codificadas antes de a imagem IRAP se propagar para a imagem IRAP e imagens que seguem a imagem IRAP em ordem de decodificação.
[0171] Embora as imagens IRAP forneçam funcionalidades importantes, as mesmas sofrem com penalização na eficiência de compressão. A presença de uma imagem IRAP causará um aumento em taxa de bits. Essa penalização na eficiência de compressão se deve a duas razões: primeiro, visto que uma imagem IRAP é uma imagem predita de modo intra, a imagem em si exigirá relativamente mais bits para representação quando comparado a outras imagens que são imagens preditas de modo inter; em segundo lugar, visto que a presença de uma imagem IRAP interromperia a predição temporal (isso se deve ao fato de que o decodificador atualizará o processo de decodificação, em que uma das ações do processo de decodificação para isso é remover imagens de referência prévias no DPB), isso tornará a codificação de imagens que sucedem a imagem IRAP em ordem de decodificação menos eficiente (isto é, precisa de mais bits para representação) visto que têm menos imagens de referência para sua codificação de predição inter.
[0172] Entre os tipos de imagem que são considerados imagens IRAP, imagem IDR em HEVC tem diferente sinalização e derivação quando comparado a outros tipos de imagem. Algumas das diferenças são conforme a seguir.
[0173] - Para sinalização e derivação de valor de POC de uma imagem IDR, a parte de bit mais significativa (MSB) da POC não é derivada da imagem- chave prévia, mas simplesmente definida como igual a 0.
[0174] - Para informações de sinalização necessárias para gerenciamento de imagem de referência, o cabeçalho de fatia de uma imagem IDR não contém informações que necessitam ser sinalizadas para auxiliar o gerenciamento de imagem de referência. Para outros tipos de imagem (isto é, CRA, Final, Acesso de Subcamada Temporal (TSA), etc.), informações, tais como conjunto de imagem de referência (RPS) descritas na seção abaixo ou outras formas de informações similares (por exemplo, listas de imagem de referência) são necessárias para o processo de marcação de imagens de referência (isto é, o processo para determinar o status de imagens de referência no DPB, tanto usada para referência quanto não usada para referência). Entretanto, para uma imagem IDR, tais informações não necessitam ser sinalizadas, visto que a presença de IDR indica que o processo de decodificação deve simplesmente marcar todas as imagens de referência no DPB como não usadas para referência.
[0175] Além do conceito de imagens IRAP, há também imagens iniciais que, se presentes, são associadas a uma imagem IRAP. As imagens iniciais são imagens que seguem sua imagem IRAP associada em ordem de decodificação, mas precedem a imagem IRAP em ordem de saída. Dependendo da configuração de codificação e estrutura de referência de imagem, imagens iniciais são adicionalmente identificadas em dois tipos. O primeiro tipo são as imagens iniciais que podem não ser decodificadas corretamente se o processo de decodificação iniciar em sua imagem IRAP associada. Isso pode ocorrer, visto que essas imagens iniciais são codificadas com referência a imagens que precedem a imagem IRAP em ordem de decodificação. Tais imagens iniciais são denominadas iniciais puladas de acesso aleatório (RASL). O segundo tipo são as imagens iniciais que devem ser decodificadas corretamente até mesmo se o processo de decodificação iniciar em sua imagem IRAP associada. Isso é possível, visto que essas imagens iniciais são codificadas sem referenciar direta ou indiretamente a imagens que precedem a imagem IRAP em ordem de decodificação. Tais imagens iniciais são denominadas iniciais decodificáveis de acesso aleatório (RADL). Em HEVC, quando imagens RASL e RADL estão presentes, é restrito que para imagens RASL e RADL que são associadas à mesma imagem IRAP, as imagens RASL devem preceder as imagens RADL em ordem de saída.
[0176] Em HEVC e VVC, são fornecidos, às imagens IRAP e imagens iniciais, diferentes tipos de unidade NAL de modo que possam ser facilmente identificadas por aplicações de nível de sistema. Por exemplo, um splicer de vídeo precisa entender tipos de imagem codificada sem ter que entender muitos detalhes de elemento de sintaxe no fluxo de bits codificado, particularmente para identificar imagens IRAP a partir de imagens não IRAP e identificar imagens iniciais, incluindo determinar imagens RASL e RADL, a partir de imagens finais. As imagens finais são aquelas imagens que são associadas a uma imagem IRAP e seguem a imagem IRAP em ordem de saída. Uma imagem associada a uma imagem IRAP particular é uma imagem que segue a imagem IRAP particular em ordem de decodificação e precede qualquer outra imagem IRAP em ordem de decodificação. Para isso, o fornecimento de imagens iniciais e IRAP seu próprio tipo de unidade NAL auxilia tais aplicações.
[0177] Para HEVC, tipos de unidade NAL para imagens IRAP incluem:
[0178] - BLA com imagem inicial (BLA_W_LP): unidade NAL de uma imagem de Acesso de Enlace Interrompido (BLA) que pode ser seguida por uma ou mais imagens iniciais em ordem de decodificação.
[0179] - BLA com RADL (BLA_W_RADL): unidade NAL de uma imagem BLA que pode ser seguida por uma ou mais imagens RADL, mas nenhuma imagem RASL em ordem de decodificação.
[0180] - BLA sem imagem inicial (BLA_N_LP): unidade NAL de uma imagem BLA que não é seguida por imagem inicial em ordem de decodificação.
[0181] - IDR com RADL (IDR_W_RADL): unidade NAL de uma imagem IDR que pode ser seguida por uma ou mais imagens RADL, mas nenhuma imagem RASL em ordem de decodificação.
[0182] - IDR sem imagem inicial (IDR_N_LP): unidade NAL de uma imagem IDR que não é seguida por imagem inicial em ordem de decodificação.
[0183] - CRA: unidade NAL de uma imagem de Acesso Aleatório Limpo (CRA) que pode ser seguida por imagens iniciais (isto é, qualquer uma das imagens RASL ou imagens RADL ou ambas).
[0184] - RADL: unidade NAL de uma imagem RADL.
[0185] - RASL: unidade NAL de uma imagem RASL.
[0186] Para VVC, conforme este documento, o tipo de unidade NAL para imagens IRAP e para imagens iniciais ainda não está claro / decidido.
[0187] Padrões de formato de arquivo são discutidos.
[0188] Padrões de formato de arquivo incluem o formato de arquivo de mídia de base ISO (ISOBMFF, ISO/IEC 14496-12, doravante, "ISO/IEC 14996- 12") e outros padrões de formato de arquivo derivados de ISOBMFF, incluindo formato de arquivo MPEG-4 (ISO/IEC 14496-14), formato de arquivo 3GPP (3GPP TS 26.244) e formato de arquivo AVC (ISO/IEC 14496-15, doravante "ISO/IEC 14996-15"). Desse modo, ISO/IEC 14496-12 especifica o formato de arquivo de mídia de base ISO. Outros documentos estendem o formato de arquivo de mídia de base ISO para aplicações específicas. Por exemplo, ISO/IEC 14496-15 descreve o comportamento de vídeo estruturado de unidade NAL no formato de arquivo de mídia de base ISO. H.264/AVC e HEVC, bem como suas extensões, são exemplos de vídeo estruturado de unidade NAL. ISO/IEC 14496-15 inclui seções que descrevem o comportamento de unidades NAL H.264/AVC. Adicionalmente, a seção 8 de ISO/IEC 14496-15 descreve o comportamento de unidades NAL HEVC. Desse modo, sabe-se que a seção 8 de ISO/IEC 14496-15 descreve o formato de arquivo HEVC.
[0189] ISOBMFF é usado como a base para muitos formatos de encapsulação de codec, tais como o Formato de Arquivo AVC, bem como para muitos formatos de contêiner de multimídia, tais como o Formato de Arquivo MPEG-4, o Formato de Arquivo 3GPP (3GP) e o Formato de Arquivo DVB. Além de mídia contínua, tal como áudio e vídeo, mídia estática, tal como imagens, bem como metadados, podem ser armazenados em um arquivo em conformidade com ISOBMFF. Os arquivos estruturados de acordo com ISOBMFF podem ser usados para muitas finalidades, incluindo reprodução de arquivo de mídia local, download progressivo de um arquivo remoto, segmentos para Streaming Adaptativo Dinâmico sobre HTTP (DASH), contêineres para conteúdo a ser transmitido por stream e suas instruções de empacotamento, e gravação de streams de mídia em tempo real recebidos. Desse modo, embora originalmente projetado para armazenamento, ISOBMFF se mostrou valioso para streaming, por exemplo, para download progressivo ou DASH. Para fins de streaming, fragmentos de filme definidos em ISOBMFF podem ser usados. Além de mídia contínua, tal como áudio e vídeo, mídia estática, tal como imagens, bem como metadados podem ser armazenados em um arquivo em conformidade com ISOBMFF.
[0190] Um arquivo em conformidade com o formato de arquivo HEVC pode compreender uma série de objetos, denominados caixas. Uma caixa pode ser um bloco de construção orientado por objeto definido por um identificador de tipo exclusivo e comprimento. Uma caixa é a estrutura de sintaxe elementar em ISOBMFF e pode incluir um tipo de caixa codificada de quatro caracteres, uma contagem de byte da caixa e uma carga útil. Em outras palavras, uma caixa pode ser uma estrutura de sintaxe que compreende um tipo de caixa codificada, uma contagem de byte da caixa e uma carga útil. Em alguns casos, todos os dados em um arquivo em conformidade com o formato de arquivo HEVC podem estar contidos dentro de caixas e pode não haver dados no arquivo que não estejam em uma caixa. Desse modo, um arquivo ISOBMFF pode consistir em uma sequência de caixas, e caixas podem conter outras caixas. Por exemplo, a carga útil de uma caixa pode incluir uma ou mais caixas adicionais.
[0191] Um arquivo em conformidade com ISOBMFF pode incluir vários tipos de caixas. Por exemplo, um arquivo em conformidade com ISOBMFF pode incluir uma caixa do tipo arquivo, uma caixa de dados de mídia, uma caixa de filme, uma caixa de fragmento de filme e assim por diante. Neste exemplo, uma caixa do tipo arquivo inclui informações de tipo de arquivo e compatibilidade. Uma caixa de dados de mídia pode conter amostras (por exemplo, imagens codificadas). Uma caixa de filme (“moov”) contém metadados para streams de mídia contínua presentes no arquivo. Cada um dentre os streams de mídia contínua pode ser representado no arquivo como uma faixa. Por exemplo, uma caixa de filme pode conter metadados relacionados a um filme (por exemplo, relações de lógica e temporização entre amostras, e também apontadores para localizações de amostras). As caixas de Filme podem incluir diversos tipos de subcaixas. As subcaixas em uma caixa de filme podem incluir uma ou mais caixas de faixa. Uma caixa de faixa pode incluir informações sobre uma faixa individual de um filme. Uma caixa de faixa pode incluir uma caixa de cabeçalho de faixa que especifica informações gerais de uma única faixa. Além disso, uma caixa de faixa pode incluir uma caixa de mídia que contém uma caixa de informações de mídia.
A caixa de informações de mídia pode incluir uma caixa de tabela de amostra que contém amostras de mídia de indexação de dados na faixa. As informações na caixa de tabela de amostra podem ser usadas para localizar amostras em tempo e, para cada uma dentre as amostras da faixa, um tipo, tamanho, contêiner e deslocamento para esse contêiner da amostra. Desse modo, os metadados para uma faixa são colocados em uma caixa de Faixa (“trak”), enquanto o conteúdo de mídia de uma faixa é colocado em uma caixa de Dados de Mídia (“mdat”) ou diretamente em um arquivo separado. O conteúdo de mídia para faixas compreende ou consiste em uma sequência de amostras, tais como unidades de acesso de áudio ou vídeo.
[0192] ISOBMFF especifica os seguintes tipos de faixas: uma faixa de mídia, que contém um stream de mídia elementar, uma faixa de sugestão, que inclui instruções de transmissão de mídia ou representa um stream de pacote recebido e uma faixa de metadados temporizada, que compreende metadados com tempo sincronizado. Os metadados para cada faixa inclui uma lista de entradas de descrição de amostra, cada uma fornecendo o formato de encapsulação ou codificação usado na faixa e os dados de inicialização usados para processar esse formato. Cada amostra está associada a uma dentre as entradas de descrição de amostra da faixa.
[0193] ISOBMFF possibilita especificar metadados específicos de amostra com vários mecanismos. Caixas específicas dentro da caixa de Tabela de Amostra (“stbl”) foram padronizadas para responder a necessidades comuns. A caixa de Tabela de Amostra contém uma tabela de amostra que contém toda a indexação de tempo e dados das amostras de mídia em uma faixa. Usando as tabelas na caixa de Tabela de Amostra, pode ser possível localizar amostras em tempo, determinar seu tipo (por exemplo, I-quadro ou não), e determinar seu tamanho, contêiner e deslocamento para esse contêiner.
[0194] Uma caixa de Fragmento de Filme é uma caixa de nível de topo. Cada caixa de Fragmento de Filme fornece informações que estariam previamente na caixa de Filme. Uma caixa de Fragmento de Filme pode conter uma ou mais caixas de fragmento de faixa (“traf”). Dentro do Fragmento de Filme, há um conjunto de fragmentos de faixa, zero ou mais por faixa. Os fragmentos de faixa contêm, por sua vez, zero ou mais execuções de faixa, cada uma documenta uma execução contígua de amostras para essa faixa. Por exemplo, cada execução de faixa pode conter amostras de imagens que são contíguas em uma certa ordem, tal como ordem de decodificação. Uma caixa de fragmento de faixa é definida na especificação 14996-12 e compreende metadados para um ou mais fragmentos de faixa. Por exemplo, uma caixa de fragmento de faixa pode incluir uma caixa de cabeçalho de fragmento de faixa que indica um identificador de faixa (ID), um deslocamento de dados de base, um índice de descrição de amostra, uma duração de amostra padrão, um tamanho de amostra padrão e flags de amostra padrão. Uma caixa de fragmento de faixa pode incluir uma ou mais caixas de execução de fragmento de faixa, cada uma documenta um conjunto contíguo de amostras para uma faixa. Por exemplo, uma caixa de fragmento de faixa pode incluir elementos de sintaxe que indicam uma contagem de amostra, um deslocamento de dados, flags de amostra, uma duração de amostra, um tamanho de amostra, deslocamento de tempo de composição de amostra e assim por diante. Dentro dessas estruturas, muitos campos são opcionais e podem ser padrão.
[0195] O ponto de acesso de stream (SAP) é discutido.
[0196] O formato de arquivo de mídia ISO (ISOBMFF) define um conceito denominado ponto de acesso de stream (SAP). Um SAP possibilita acesso aleatório em um contêiner de stream(s) de mídia. Um contêiner pode conter mais de um stream de mídia, cada um sendo uma versão codificada de mídia contínua de certo tipo de mídia. Um SAP é uma posição em um contêiner que possibilita reprodução de um stream de mídia identificado a ser iniciado usando apenas (a) as informações contidas no contêiner iniciando daquela posição em diante, e (b) possíveis dados de inicialização de outra parte(s) do contêiner, ou externamente disponíveis. As especificações derivadas devem especificar se dados de inicialização são necessários para acessar o contêiner em um SAP, e como os dados de inicialização podem ser acessados.
[0197] Há seis tipos de SAP que são definidos, e são:
[0198] O tipo 1 corresponde ao que é conhecido, em alguns esquemas de codificação, como um “ponto de acesso aleatório GoP Fechado” (em que todas as unidades de acesso, em ordem de decodificação, iniciando a partir de predição intra angular com base em amostra aperfeiçoada (ISAP) podem ser corretamente decodificadas, resultando em uma sequência de tempo contínua de unidades de acesso corretamente decodificadas sem intervalos) e, além disso, a unidade de acesso em ordem de decodificação também é a primeira unidade de acesso em ordem de composição.
[0199] O tipo 2 corresponde ao que é conhecido, em alguns esquemas de codificação, como um “ponto de acesso aleatório GoP Fechado”, em que a primeira unidade de acesso em ordem de decodificação no stream de mídia não é a primeira unidade de acesso em ordem de composição.
[0200] O tipo 3 corresponde ao que é conhecido, em alguns esquemas de codificação, como um “ponto de acesso aleatório GoP Aberto”, em que há algumas unidades de acesso em ordem de decodificação que sucedem o ponto de acesso aleatório que não podem ser corretamente decodificadas e a unidade de acesso de ponto de acesso aleatório pode não ser a primeira unidade de acesso em ordem de composição.
[0201] O tipo 4 corresponde ao que é conhecido em alguns esquemas de codificação como um “ponto de início de Atualização de Decodificação Gradual (GDR)”.
[0202] O tipo 5 corresponde ao caso em que há pelo menos uma unidade de acesso em ordem de decodificação iniciando a partir da primeira unidade de acesso para decodificação que não pode ser corretamente decodificada e tem tempo de apresentação maior do que TDEC e em que TDEC é o tempo de apresentação mais antecipado de qualquer unidade de acesso que inicia a partir da primeira unidade de acesso para decodificação.
[0203] O tipo 6 corresponde ao caso em que há pelo menos uma unidade de acesso em ordem de decodificação iniciando a partir da primeira unidade de acesso para decodificação que não pode ser corretamente decodificada e tem tempo de apresentação maior do que TDEC e em que TDEC não é o tempo de apresentação mais antecipado de qualquer unidade de acesso que inicia a partir da primeira unidade de acesso para decodificação.
[0204] Para HEVC, o projeto de tipos de unidade NAL para imagens IRAP foi feito com um dos objetivos sendo fácil mapeamento entre tipos de IRAP e tipos de SAP, particularmente SAP tipo 1 a tipo 3.
[0205] Streaming adaptativo dinâmico sobre HTTP (DASH) é discutido.
[0206] Streaming adaptativo dinâmico sobre HTTP (DASH), especificado em ISO/IEC 23009-1, é um padrão para aplicações de streaming de HTTP (adaptativo). DASH essencialmente especifica o formato da descrição de apresentação de mídia (MPD), também conhecida como manifesto, e o formato de segmento de mídia. A MPD descreve a mídia disponível no servidor e permite que o cliente de DASH faça download, de maneira autônoma, da versão de mídia no tempo de mídia que está interessado.
[0207] DASH se baseia em um modelo de dados hierárquico. Uma apresentação é descrita por um documento de MPD que descreve a sequência de períodos no tempo que constitui a apresentação de mídia. Um período tipicamente representa um período de conteúdo de mídia durante o qual um conjunto consistente de versões codificadas do conteúdo de mídia está disponível, por exemplo, o conjunto de taxas de bits, linguagens, legendas ocultas, legendas, etc. disponíveis não muda durante um período.
[0208] Dentro de um período, material é disposto em conjuntos de adaptação. Um conjunto de adaptação representa um conjunto de versões codificadas intercambiáveis de um ou vários componentes de conteúdo de mídia. Por exemplo, pode haver um conjunto de adaptação para o componente de vídeo principal e um conjunto de adaptação separado para o componente de áudio principal. Outro material disponível, tal como descrições de áudio ou legenda oculta, pode ter, cada um, um conjunto de adaptação separado. Material também pode ser fornecido em forma multiplexada, em cujo caso versões intercambiáveis da multiplexação podem ser descritas como um único conjunto de adaptação, por exemplo, um conjunto de adaptação que contém o áudio principal e vídeo principal durante um período. Cada um dentre os componentes multiplexados pode ser descrito individualmente por uma descrição de componente de conteúdo de mídia.
[0209] Um conjunto de adaptação contém um conjunto de representações. Uma representação descreve uma versão codificada, que pode ser entregue, de um ou vários componentes de conteúdo de mídia. Uma representação inclui um ou mais streams de mídia (um para cada componente de conteúdo de mídia na multiplexação). Qualquer representação única dentro de um conjunto de adaptação é suficiente para renderizar os componentes de conteúdo de mídia contidos. Coletando-se diferentes representações em um conjunto de adaptação, o autor de apresentação de mídia expressa que as representações representam conteúdo perceptivelmente equivalente. Tipicamente, isso significa que clientes podem comutar de maneira dinâmica de representação para representação dentro de um conjunto de adaptação a fim de se adaptar a condições de rede ou outros fatores. A comutação se refere à apresentação de dados decodificados até um certo tempo t, e apresentação de dados decodificados de outra representação do tempo t em diante. Se representações estiverem incluídas em um Conjunto de Adaptação, e o cliente comutar de maneira apropriada, espera-se que a apresentação de mídia seja percebida de modo contínuo através do comutador. Clientes podem ignorar representações que dependem de codecs ou outras tecnologias de renderização que os mesmos não suportam ou que são inadequadas de outro modo. Dentro de uma representação, o conteúdo pode ser dividido em tempo em segmentos para acessibilidade e entrega apropriadas. A fim de acessar um segmento, um URL é fornecido para cada segmento. Consequentemente, um segmento é a maior unidade de dados que pode ser recuperada com uma única solicitação HTTP.
[0210] Um típico procedimento para streaming de HTTP com base em DASH inclui as etapas a seguir.
[0211] 1) Um cliente obtém a MPD de um conteúdo de streaming, por exemplo, um filme. A MPD inclui informações sobre diferentes representações alternativas, por exemplo, taxa de bits, resolução de vídeo, taxa de quadro, linguagem de áudio do conteúdo de streaming, bem como os URLs dos recursos de HTTP (o segmento de inicialização e os segmentos de mídia).
[0212] 2) Com base em informações na MPD e nas informações locais de cliente, por exemplo, largura de banda de rede, capacidades de decodificação/exibição e preferência de usuário, o cliente solicita a representação(ões) desejada, um segmento (ou uma parte do mesmo) de cada vez.
[0213] 3) Quando o cliente detecta uma mudança de largura de banda de rede, o mesmo solicita segmentos de uma representação diferente com uma taxa de bits com melhor compatibilidade, iniciando, idealmente, a partir de um segmento que inicia com um ponto de acesso aleatório.
[0214] Durante uma “sessão” de streaming de HTTP, para responder à solicitação de usuário para buscar de modo regressivo para uma posição passada ou de modo avançado para uma posição futura, o cliente solicita segmentos passados ou futuros iniciando a partir de um segmento que está próximo à posição desejada e que inicia, idealmente, com um ponto de acesso aleatório. O usuário também pode solicitar avanço rápido do conteúdo, que pode ser realizado solicitando-se dados de maneira suficiente para decodificação apenas das imagens de vídeo codificadas de modo intra ou apenas de um subconjunto temporal do stream de vídeo.
[0215] Problemas das imagens IRAP e iniciais existentes são discutidos.
[0216] O projeto atual de tipos de unidade NAL para imagens iniciais e imagens IRAP tem os seguintes problemas:
[0217] - Há dois tipos de unidade NAL fornecidos para identificação de imagens iniciais (isto é, RASL e RADL) no nível de cabeçalho de unidade NAL com a finalidade de auxiliar as aplicações de nível de sistema para identificar RASL e remover do fluxo de bits simplesmente analisando-se o cabeçalho de unidade NAL quando a decodificação inicia a partir de sua imagem IRAP associada. Entretanto, na prática, tal remoção por aplicações de sistema é raramente realizada, visto que as imagens iniciais e sua imagem IRAP associada são encapsuladas no mesmo Segmento de Mídia DASH, e em streaming adaptativo com base em HTTP, tal Segmento de Mídia DASH é solicitado pelo cliente, desse modo, as imagens iniciais e sua imagem IRAP associada não são solicitadas de maneira separada de modo que a solicitação das imagens RASL possa ser evitada. Além disso, permitindo aplicações de sistema, a possibilidade de remover ou não remover imagens RASL consequentemente exige que especificação de codificação de vídeo suporte ambas as possibilidades, isto é, de com e sem imagens RASL, e precisam de especificação de conformidade de fluxo de bits para ambas as situações, incluindo a especificação de referência de decodificador hipotética (HRD) que inclui dois conjuntos alternativos de parâmetros de HRD.
[0218] - Para imagens IRAP, diversos tipos de unidade NAL são fornecidos para diferenciar as mesmas com base na presença de imagens iniciais com objetivo de tornar fácil o mapeamento das mesmas para SAP tipo 1 a 3. Entretanto, devido à flexibilidade na definição dos tipos de unidade de IRAP NAL, particularmente o tipo CRA, em muitos casos, o mapeamento entre tipos de imagem IRAP para tipos de SAP não pode ser feito simplesmente apenas conhecendo seu tipo de unidade NAL. As unidades de acesso que seguem as imagens IRAP ainda precisam ser verificadas. Por exemplo, visto que o CRA pode ser seguido por zero ou mais RASL ou zero ou mais RADL ou nenhum dos mesmos, o mesmo pode ser mapeado como SAP tipo 1, tipo 2 ou tipo 3. O único modo de saber como mapear uma imagem de CRA para tipo de SAP é analisar as unidades de acesso que sucedem para conferir se há ou não imagem inicial/imagens iniciais e, caso haja imagens iniciais, então, de que tipo.
[0219] São reveladas na presente invenção técnicas de codificação de vídeo que restringem um conjunto de tipos de unidade NAL disponíveis para dados de vídeo para cinco ou menos tipos de unidade NAL específicos (por exemplo, restringem o número de tipos de unidade NAL para quatro). Cada unidade NAL tem um cabeçalho e é identificada por um identificador (ID). Menos tipos NAL significa que o ID pode ser menor. Portanto, o tamanho de cada unidade NAL pode ser diminuído, que reduz de maneira significativa o tamanho do fluxo de bits (economizando memória). Isso também reduz esse tamanho de cada pacote usado para transmitir o fluxo de bits, que reduz uso de recurso de rede. Além disso, cinco ou menos tipos de unidade NAL específicos permitem que imagens iniciais e finais (também conhecidas como imagens não IRAP) compartilhem o mesmo tipo de unidade NAL. Isso também permite que tipos de unidade NAL indiquem se uma imagem I-RAP está ou não associada a uma imagem RADL e/ou uma imagem RASL. Além disso, os tipos de unidade NAL específicos podem ser mapeados para diferentes tipos de SAP em DASH. Também são reveladas na presente invenção técnicas de codificação de vídeo para quando imagens não IRAP não forem identificadas pelo tipo de unidade NAL. Em tais casos, flags em um fluxo de bits são definidas para um valor particular para indicar se uma imagem IRAP está ou não associada a uma imagem RADL ou uma imagem RASL.
[0220] A Figura 4 é um diagrama esquemático de uma modalidade de um fluxo de bits de vídeo 400. Conforme usado na presente invenção, o fluxo de bits de vídeo 400 também pode ser referido como um fluxo de bits de vídeo codificado, um fluxo de bits ou variações dos mesmos. Conforme mostrado na Figura 4, o fluxo de bits 400 compreende um conjunto de parâmetro de sequência (SPS) 410, um conjunto de parâmetro de imagem (PPS) 412, um cabeçalho de fatia 414 e dados de imagem 420. Em uma aplicação prática, o cabeçalho de fatia 414 pode ser referido como um cabeçalho de grupo de tiles.
[0221] O SPS 410 contém dados que são comuns a todas as imagens em uma sequência de imagens (SOP). Em contraste, o PPS 412 contém dados que são comuns a toda a imagem. O cabeçalho de fatia 414 contém informações sobre a fatia atual, tais como, por exemplo, o tipo de fatia, qual das imagens de referência será usada, e assim por diante. O SPS 410 e o PPS 412 podem ser genericamente referidos como um conjunto de parâmetros. O SPS 410, o PPS 412 e o cabeçalho de fatia 414 são tipos de unidades de Camada de Abstração de Rede (NAL). Os dados de imagem 420 compreendem dados associados às imagens ou vídeo sendo codificado ou decodificado. Os dados de imagem 420 podem ser simplesmente referidos como a carga útil ou dados sendo portados no fluxo de bits 400.
[0222] Em uma modalidade, o SPS 410, o PPS 412, o cabeçalho de fatia 414 ou outra porção do fluxo de bits 400 porta uma pluralidade de estruturas de lista de imagem de referência, cada uma das quais contém uma pluralidade de entradas de imagem de referência. Os técnicos no assunto verificarão que o fluxo de bits 400 pode conter outros parâmetros e informações em aplicações práticas.
[0223] A Figura 5 é uma representação 500 de relação entre uma imagem I-RAP 502 em relação a imagens iniciais 504 e imagens finais 506 em uma ordem de decodificação 508 e uma ordem de apresentação 510. Em uma modalidade, a imagem I-RAP 502 é referida como uma imagem de acesso aleatório limpo (CRA) ou uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
[0224] Conforme mostrado na Figura 5, as imagens iniciais 504 (por exemplo, imagens 2 e 3) seguem a imagem I-RAP 502 na ordem de decodificação 508, mas precedem a imagem I-RAP 502 na ordem de apresentação 510. A imagem final 506 segue a imagem I-RAP 502 tanto na ordem de decodificação 508 quanto na ordem de apresentação 510. Embora duas imagens iniciais 504 e uma imagem final 506 sejam retratadas na Figura 5, os técnicos no assunto verificarão que mais ou menos imagens iniciais 504 e/ou imagens finais 506 podem estar presentes na ordem de decodificação 508 e na ordem de apresentação 510 em aplicações práticas.
[0225] As imagens iniciais 504 na Figura 5 foram divididas em dois tipos, a saber, RASL e RADL. Quando a decodificação iniciar com a imagem I- RAP 502 (por exemplo, imagem 1), a imagem RADL (por exemplo, imagem 3) pode ser decodificada de maneira apropriada; entretanto, a imagem RASL (por exemplo, imagem 2) não pode ser decodificada de maneira apropriada. Desse modo, a imagem RASL é descartada. À luz da distinção entre imagens RADL e RASL, o tipo de imagem inicial associada à imagem I-RAP deve ser identificado como RADL ou RASL para codificação eficiente e apropriada.
[0226] A Figura 6 é uma modalidade de um método 600 de codificação de um fluxo de bits de vídeo (por exemplo, fluxo de bits 400) implementado por um codificador de vídeo (por exemplo, codificador de vídeo 20). O método 600 pode ser realizado quando uma imagem (por exemplo, de um vídeo) deve ser codificada em um fluxo de bits de vídeo e, então, transmitida em direção a um decodificador de vídeo (por exemplo, decodificador de vídeo 30). O método 600 aperfeiçoa o processo de codificação (por exemplo, torna o processo de codificação mais eficiente, mais rápido, etc., do que processos de codificação convencionais), visto que um conjunto limitado de tipos de unidade NAL que, por exemplo, identificam o tipo de imagem inicial associada a uma imagem I-RAP, é usado. Portanto, conforme uma questão prática, o realizo de um codec é aperfeiçoado, que leva a uma melhor experiência de usuário.
[0227] No bloco 602, um conjunto de menos de cinco tipos de unidade NAL disponíveis para dados de vídeo é armazenado em uma memória de um codificador de vídeo. Em uma modalidade, o conjunto de menos de cinco tipos de unidade NAL inclui um tipo de unidade NAL de imagens iniciais e finais; um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais. Em uma modalidade, o conjunto de menos de cinco tipos de unidade NAL é restrito apenas a esses quatro tipos de unidade NAL. Em uma modalidade, atribui-se, às imagens iniciais e finais (por exemplo, imagens iniciais 504 e imagem final 506), o tipo de unidade NAL de imagens iniciais e finais.
[0228] No bloco 604, um tipo de unidade NAL é selecionado a partir do conjunto de menos de cinco tipos de unidade NAL para uma imagem (por exemplo, imagem 2 ou imagem 3 na Figura 5) a partir dos dados de vídeo. Por exemplo, o tipo de unidade NAL para imagem 2 na Figura 5 pode ser um IRAP com tipo de unidade de RSAL NAL. Conforme outro exemplo, o tipo de unidade NAL para imagem 3 na Figura 5 pode ser um IRAP com tipo de unidade RADL NAL.
[0229] Em uma modalidade, o IRAP com tipo de unidade RASL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação. Em uma modalidade, a imagem IRAP é referida como uma imagem CRA. Em uma modalidade, o IRAP com tipo de unidade RASL NAL é referido como um tipo de unidade NAL de acesso aleatório limpo (CRA). Em uma modalidade, o IRAP com tipo de unidade RASL NAL é designado IRAP_W_RASL. Em uma modalidade, a designação IRAP_W_RASL corresponde a ponto de acesso de stream (SAP) tipo 3 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0230] Em uma modalidade, o IRAP com tipo de unidade RADL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação. Em uma modalidade, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL. Em uma modalidade, o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL. Em uma modalidade, o IRAP com tipo de unidade RADL NAL é designado IRAP_W_RADL. Em uma modalidade, o IRAP_W_RADL corresponde a ponto de acesso de stream (SAP) tipo 2 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0231] Em uma modalidade, o IRAP sem tipo de unidade NAL de imagens iniciais é selecionado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação. Em uma modalidade, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial. Em uma modalidade, o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais. Em uma modalidade, o IRAP sem tipo de unidade NAL de imagens iniciais é designado IRAP_N_LP. Em uma modalidade, a designação IRAP_N_LP corresponde a ponto de acesso de stream (SAP) tipo 1 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0232] No bloco 606, um fluxo de bits de vídeo (por exemplo, fluxo de bits 400 na Figura 4) é gerado. O fluxo de bits de vídeo contém uma unidade NAL correspondente ao tipo de unidade NAL selecionado bem como um identificador que identifica o tipo de unidade NAL selecionado. O identificador pode ser, por exemplo, uma flag ou um número de bits.
[0233] No bloco 608, o codificador de vídeo transmite o fluxo de bits de vídeo (por exemplo, fluxo de bits 400) em direção a um decodificador de vídeo. O fluxo de bits de vídeo também pode ser referido como um fluxo de bits de vídeo codificado ou um fluxo de bits de vídeo codificado. Uma vez recebido pelo decodificador de vídeo, o fluxo de bits de vídeo codificado pode ser decodificado (por exemplo, conforme descrito abaixo) para gerar ou produzir uma imagem para exibição a um usuário no display ou tela de um dispositivo eletrônico (por exemplo, um smartphone, tablet, laptop, computador pessoal, etc.).
[0234] A Figura 7 é uma modalidade de um método 700 de decodificação de um fluxo de bits de vídeo codificado (por exemplo, fluxo de bits 400) implementado por um decodificador de vídeo (por exemplo, decodificador de vídeo 30). O método 700 pode ser realizado após o fluxo de bits decodificado ter sido recebido direta ou indiretamente a partir de um codificador de vídeo (por exemplo, codificador de vídeo 20). O método 700 aperfeiçoa o processo de decodificação (por exemplo, torna o processo de decodificação mais eficiente, mais rápido, etc., do que processos de decodificação convencionais), visto que um conjunto limitado de tipos de unidade NAL que, por exemplo, identificam o tipo de imagem inicial associada a uma imagem I-RAP, é usado. Portanto, conforme uma questão prática, o realizo de um codec é aperfeiçoado, que leva a uma melhor experiência de usuário.
[0235] No bloco 702, um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo é armazenado. Em uma modalidade, o conjunto de menos de cinco tipos de unidade NAL inclui um tipo de unidade NAL de imagens iniciais e finais; um ponto de acesso aleatório intra (IRAP) com tipo de unidade NAL inicial pulada de acesso aleatório (RASL), um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL) e um IRAP sem tipo de unidade NAL de imagens iniciais. Em uma modalidade, o conjunto de menos de cinco tipos de unidade NAL é restrito apenas a esses quatro tipos de unidade NAL. Em uma modalidade, atribui-se, às imagens iniciais e finais (por exemplo, imagens iniciais 504 e imagem final 506), o tipo de unidade NAL de imagens iniciais e finais.
[0236] No bloco 704, um fluxo de bits de vídeo codificado (por exemplo,
fluxo de bits 400) que contém uma unidade NAL e um identificador é recebido. No bloco 706, um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL usados para codificar a unidade NAL é determinado com base no identificador.
[0237] Por exemplo, o tipo de unidade NAL para imagem 2 na Figura 5 pode ser um IRAP com tipo de unidade de RSAL NAL. Conforme outro exemplo, o tipo de unidade NAL para imagem 3 na Figura 5 pode ser um IRAP com tipo de unidade RADL NAL.
[0238] Em uma modalidade, o IRAP com tipo de unidade RASL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação. Em uma modalidade, a imagem IRAP é referida como uma imagem CRA. Em uma modalidade, o IRAP com tipo de unidade RASL NAL é referido como um tipo de unidade NAL de acesso aleatório limpo (CRA). Em uma modalidade, o IRAP com tipo de unidade RASL NAL é designado IRAP_W_RASL. Em uma modalidade, a designação IRAP_W_RASL corresponde a ponto de acesso de stream (SAP) tipo 3 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0239] Em uma modalidade, o IRAP com tipo de unidade RADL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação. Em uma modalidade, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL. Em uma modalidade, o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL. Em uma modalidade, o IRAP com tipo de unidade RADL NAL é designado IRAP_W_RADL. Em uma modalidade, o IRAP_W_RADL corresponde a ponto de acesso de stream (SAP) tipo 2 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0240] Em uma modalidade, o IRAP sem tipo de unidade NAL de imagens iniciais é selecionado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação. Em uma modalidade, a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial. Em uma modalidade, o IRAP sem tipo de unidade
NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais. Em uma modalidade, o IRAP sem tipo de unidade NAL de imagens iniciais é designado IRAP_N_LP. Em uma modalidade, a designação IRAP_N_LP corresponde a ponto de acesso de stream (SAP) tipo 1 em streaming adaptativo dinâmico sobre protocolo de transferência de hipertexto (DASH).
[0241] No bloco 708, uma ordem de apresentação (por exemplo, ordem de apresentação 510 na Figura 5) para imagens contidas na unidade NAL é atribuída com base no tipo de unidade NAL determinado. A ordem de apresentação pode ser usada para gerar ou produzir uma imagem para exibição para um usuário no display ou tela de um dispositivo eletrônico (por exemplo, um smartphone, tablet, laptop, computador pessoal, etc.).
[0242] A Figura 8 é uma modalidade de um método 800 de codificação de um fluxo de bits de vídeo (por exemplo, fluxo de bits 400) implementado por um codificador de vídeo (por exemplo, codificador de vídeo 20). O método 800 pode ser realizado quando uma imagem (por exemplo, de um vídeo) deve ser codificada em um fluxo de bits de vídeo e, então, transmitida em direção a um decodificador de vídeo (por exemplo, decodificador de vídeo 30). O método 800 aperfeiçoa o processo de codificação (por exemplo, torna o processo de codificação mais eficiente, mais rápido, etc., do que processos de codificação convencionais), visto que uma flag é definida para indicar, por exemplo, que a unidade NAL para uma imagem não IRAP é uma RADL ou uma RASL. Portanto, conforme uma questão prática, o realizo de um codec é aperfeiçoado, que leva a uma melhor experiência de usuário.
[0243] No bloco 802, um fluxo de bits que contém uma unidade NAL para uma imagem de ponto de acesso aleatório não intra (não IRAP) associada a uma imagem de ponto de acesso aleatório intra (IRAP) é gerado. A imagem não IRAP pode ser uma imagem inicial (por exemplo, imagem inicial 504) ou uma imagem final (imagem final 506).
[0244] No bloco 804, uma primeira flag no fluxo de bits é definida para um primeiro valor para indicar que a unidade NAL para a imagem não IRAP compreende uma imagem inicial decodificável de acesso aleatório (RADL). Em uma modalidade, a primeira flag é designada uma RadlPictureFlag e a segunda flag é designada uma RaslPictureFlag. Em uma modalidade, o primeiro valor é um
(1). Em uma modalidade, a primeira flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP for menor do que um valor POC da imagem IRAP. Em uma modalidade, a primeira flag é definida como igual ao primeiro valor quando cada lista de imagem de referência para a imagem não IRAP não contiver qualquer imagem diferente da imagem IRAP associada à imagem não IRAP ou outra imagem RADL associada à imagem IRAP.
[0245] No bloco 806, uma segunda flag no fluxo de bits é definida para o primeiro valor para indicar que a unidade NAL para a imagem não IRAP compreende uma imagem inicial pulada de acesso aleatório (RASL). Em uma modalidade, a segunda flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP for menor do que um valor POC da imagem IRAP. Em uma modalidade, a segunda flag é definida como igual ao primeiro valor quando lista de imagem de referência para a imagem não IRAP contiver pelo menos uma imagem de referência que precede a imagem IRAP associada à imagem não IRAP em ordem de decodificação ou outra imagem RASL associada à imagem IRAP.
[0246] Em uma modalidade, a primeira flag e a segunda flag podem ser definidas para um segundo valor para indicar que a unidade NAL para a imagem não IRAP não inclui a imagem RADL ou a imagem RASL. Em uma modalidade, o segundo valor é zero (0). Em uma modalidade, a primeira flag e a segunda flag não são definidas para o primeiro valor para a imagem não IRAP.
[0247] No bloco 808, o codificador de vídeo transmite o fluxo de bits de vídeo (por exemplo, fluxo de bits 400) em direção a um decodificador de vídeo. O fluxo de bits de vídeo também pode ser referido como um fluxo de bits de vídeo codificado ou um fluxo de bits de vídeo encoded. Uma vez recebido pelo decodificador de vídeo, o fluxo de bits de vídeo codificado pode ser decodificado (por exemplo, conforme descrito abaixo) para gerar ou produzir uma imagem para exibição a um usuário no display ou tela de um dispositivo eletrônico (por exemplo, um smartphone, tablet, laptop, computador pessoal, etc.).
[0248] A Figura 9 é uma modalidade de um método 900 de decodificação de um fluxo de bits de vídeo codificado (por exemplo, fluxo de bits 400) implementado por um decodificador de vídeo (por exemplo, decodificador de vídeo 30). O método 900 pode ser realizado após o fluxo de bits decodificado ter sido recebido direta ou indiretamente a partir de um codificador de vídeo (por exemplo, codificador de vídeo 20). O método 900 aperfeiçoa o processo de decodificação (por exemplo, torna o processo de decodificação mais eficiente, mais rápido, etc., do que processos de decodificação convencionais), visto que uma flag é definida para indicar, por exemplo, que a unidade NAL para uma imagem não IRAP é uma RADL ou uma RASL. Portanto, conforme uma questão prática, o realizo de um codec é aperfeiçoado, que leva a uma melhor experiência de usuário.
[0249] No bloco 902, um fluxo de bits de vídeo codificado que contém uma primeira flag, uma segunda flag e uma unidade NAL para uma imagem de ponto de acesso aleatório não intra (não IRAP) associada a uma imagem de ponto de acesso aleatório intra (IRAP) é recebido. A imagem não IRAP pode ser uma imagem inicial (por exemplo, imagem inicial 504) ou uma imagem final (imagem final 506).
[0250] No bloco 904, uma determinação de que a unidade NAL para a imagem não IRAP compreende uma imagem inicial decodificável de acesso aleatório (RADL) é feita quando a primeira flag no fluxo de bits tiver sido definida para um primeiro valor. Em uma modalidade, a primeira flag é designada uma RadlPictureFlag e a segunda flag é designada uma RaslPictureFlag. Em uma modalidade, o primeiro valor é um (1). Em uma modalidade, a primeira flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP for menor do que um valor POC da imagem IRAP. Em uma modalidade, a primeira flag é definida como igual ao primeiro valor quando cada lista de imagem de referência para a imagem não IRAP não contiver qualquer imagem diferente da imagem IRAP associada à imagem não IRAP ou outra imagem RADL associada à imagem IRAP.
[0251] No bloco 906, uma determinação de que a unidade NAL para a imagem não IRAP compreende uma imagem inicial pulada de acesso aleatório (RASL) é feita quando a segunda flag no fluxo de bits tiver sido definida para o primeiro valor. Em uma modalidade, a segunda flag é definida como igual ao primeiro valor quando um valor de contagem de ordem de imagem (POC) da imagem não IRAP for menor do que um valor POC da imagem IRAP. Em uma modalidade, a segunda flag é definida como igual ao primeiro valor quando lista de imagem de referência para a imagem não IRAP contiver pelo menos uma imagem de referência que precede a imagem IRAP associada à imagem não IRAP em ordem de decodificação ou outra imagem RASL associada à imagem IRAP.
[0252] Em uma modalidade, a primeira flag e a segunda flag podem ser definidas para um segundo valor para indicar que a unidade NAL para a imagem não IRAP não inclui a imagem RADL ou a imagem RASL. Em uma modalidade, o segundo valor é zero (0). Em uma modalidade, a primeira flag e a segunda flag não são definidas para o primeiro valor para a imagem não IRAP.
[0253] No bloco 908, uma ordem de apresentação (por exemplo, ordem de apresentação 510 na Figura 5) para imagens contidas na unidade NAL é atribuída com base na primeira flag ou na segunda flag que tem o primeiro valor. A ordem de apresentação pode ser usada para gerar ou produzir uma imagem para exibição para um usuário no display ou tela de um dispositivo eletrônico (por exemplo, um smartphone, tablet, laptop, computador pessoal, etc.).
[0254] Em uma alternativa ao conteúdo acima, os tipos de unidade NAL para imagens iniciais e imagens IRAP são atribuídos da seguinte forma: dois tipos de unidade NAL para imagens iniciais, a saber, RASL_NUT e RADL_NUT, e um tipo de unidade NAL para imagens IRAP, a saber, IRAP_NUT.
[0255] Em uma modalidade, o mapeamento de tipos de unidade de IRAP NAL para tipos de SAP é conforme a seguir. Quando uma imagem com tipo de unidade de IRAP NAL é encontrada, a aplicação deve contar o número de imagens com o tipo de unidade RASL NAL e o número de imagens com tipo de unidade RADL NAL entre a imagem IRAP e a primeira imagem final (por exemplo, a imagem com tipo de unidade NAL final) que segue a imagem IRAP em ordem de decodificação. Dependendo do número de contagens de imagem RASL e RADL, o mapeamento a seguir é especificado.
[0256] Se o número de imagem RASL for maior do que 0, a imagem IRAP é SAP tipo 3. De outro modo, se o número de imagem RASL for 0 e o número RADL for maior do que 0, a imagem IRAP é SAP tipo 2. De outro modo, (por exemplo, o número de imagem RASL e imagem RADL é 0), a imagem IRAP é SAP tipo 1.
[0257] Em outra alternativa, os tipos de unidade NAL para imagens iniciais e imagens IRAP são atribuídos da seguinte forma: dois tipos de unidade NAL para imagens iniciais, a saber, RASL_NUT e RADL_NUT. A definição de tipos de unidade NAL para imagens IRAP é conforme a seguir. IDR (IDR_NUT):
unidade NAL de uma imagem IRAP que é zero ou mais imagem RADL e zero imagem RASL em ordem de decodificação. CRA (CRA_NUT): unidade NAL de uma imagem IRAP que é seguida por uma ou mais imagens RASL e zero ou mais imagens RADL em ordem de decodificação.
[0258] O mapeamento de tipos de unidade de IRAP NAL para tipos de SAP é da seguinte maneira: CRA_NUT é SAP tipo 3.
[0259] Quando uma imagem com tipo IDR_NUT é encontrada, a aplicação deve verificar a imagem que segue a imagem IDR em ordem de decodificação. Se a imagem que sucede for uma imagem com RADL_NUT, então, a imagem IDR é SAP 2. De outra maneira, a imagem IDR é SAP 1.
[0260] É restrito que, quando uma imagem é tipo IDR_NUT, a imagem que imediatamente segue a imagem IDR em ordem de decodificação deve ser imagem com RADL_NUT ou Trailing_NUT.
[0261] Em ainda outra alternativa, os tipos de unidade NAL para imagens iniciais e imagens IRAP são atribuídos da seguinte forma: um tipo de unidade NAL para imagens iniciais: LP_NUT. A definição de tipos de unidade NAL para imagens IRAP é da seguinte forma: IDR (IDR_NUT): unidade NAL de uma imagem IRAP que é zero ou mais imagens iniciais que é imagem RADL e zero imagem RASL em ordem de decodificação, e CRA (CRA_NUT): unidade NAL de uma imagem IRAP que é seguida por uma ou mais imagens iniciais que são imagens RASL e zero ou mais imagens RADL em ordem de decodificação.
[0262] O mapeamento de tipos de unidade de IRAP NAL para SAP é da seguinte maneira: CRA_NUT é SAP tipo 3.
[0263] Quando uma imagem com tipo IDR_NUT é encontrada, a aplicação deve verificar a imagem que segue a imagem IDR em ordem de decodificação. Se a imagem a seguir for uma imagem com LP_NUT, então, a imagem IDR é SAP 2. De outra maneira, a imagem IDR é SAP 1. É restrito que, quando uma imagem é tipo IDR_NUT, a imagem que imediatamente segue a imagem IDR em ordem de decodificação deve ser imagem com LP_NUT ou Trailing_NUT.
[0264] A Figura 10 é um diagrama esquemático de um dispositivo de codificação de vídeo 1000 (por exemplo, um codificador de vídeo 20 ou um decodificador de vídeo 30) de acordo com uma modalidade da revelação. O dispositivo de codificação de vídeo 1000 é adequado para implementar as modalidades reveladas conforme descrito no presente documento. O dispositivo de codificação de vídeo 1000 compreende portas de ingresso 1010 e unidades receptoras (Rx) 1020 para receber dados; um processador, unidade lógica ou unidade central de processamento (CPU) 1030 para processar os dados; unidades transmissoras (Tx) 1040 e portas de egresso 1050 para transmitir os dados; e uma memória 1060 para armazenar os dados. O dispositivo de codificação de vídeo 1000 também pode compreender componentes ópticos para elétricos (OE) e componentes elétricos para ópticos (EO) acoplados às portas de ingresso 1010, às unidades receptoras 1020, às unidades transmissoras 1040 e às portas de egresso 1050 para egresso ou ingresso de sinais ópticos ou elétricos.
[0265] O processador 1030 é implementado por hardware e software. O processador 1030 pode ser implementado como um ou mais chips de CPU, núcleos (por exemplo, como um processador de múltiplos núcleos), arranjos de portas programáveis em campo (FPGAs), circuitos integrados de aplicação específica (ASICs) e processadores de sinal digital (DSPs). O processador 1030 está em comunicação com as portas de ingresso 1010, unidades receptoras 1020, unidades transmissoras 1040, portas de egresso 1050 e memória 1060. O processador 1030 compreende um módulo de codificação 1070. O módulo de codificação 1070 implementa as modalidades reveladas descritas acima. Por exemplo, o módulo de codificação 1070 implementa, processa, prepara ou fornece as várias funções de rede. A inclusão do módulo de codificação 1070 fornece, portanto, um aperfeiçoamento substancial à funcionalidade do dispositivo de codificação de vídeo 1000 e efetua uma transformação do dispositivo de codificação de vídeo 1000 para um estado diferente. De modo alternativo, o módulo de codificação 1070 é implementado como instruções armazenadas na memória 1060 e executadas pelo processador 1030.
[0266] O dispositivo de codificação de vídeo 1000 também pode incluir dispositivos de entrada e/ou saída (I/O) 1080 para comunicar dados a partir de um usuário e para o mesmo. Os dispositivos de I/O 1080 podem incluir dispositivos de saída, tais como um display para exibir dados de vídeo, alto-falantes para emitir dados de áudio, etc. Os dispositivos de I/O 1080 também podem incluir dispositivos de entrada, tais como um teclado, mouse, trackball, etc., e/ou interfaces correspondentes para interagir com tais dispositivos de saída.
[0267] A memória 1060 compreende um ou mais discos, unidades de fita e unidades de estado sólido e pode ser usada como um dispositivo de armazenamento de dados de sobrefluxo, para armazenar programas quando tais programas são selecionados para execução, e para armazenar instruções e dados que são lidos durante a execução de programa. A memória 1060 pode ser volátil e/ou não volátil e pode ser memória somente leitura (ROM), memória de acesso aleatório (RAM), memória ternária de conteúdo endereçável (TCAM) e/ou memória de acesso aleatório estática (SRAM).
[0268] A Figura 11 é um diagrama esquemático de uma modalidade de um meio para codificação 1100. Na modalidade, o meio para codificação 1100 é implementado em um dispositivo de codificação de vídeo 1102 (por exemplo, um codificador de vídeo 20 ou um decodificador de vídeo 30). O dispositivo de codificação de vídeo 1102 inclui meio de recebimento 1101. O meio de recebimento 1101 é configurado para receber uma imagem para codificação ou receber um fluxo de bits para decodificação. O dispositivo de codificação de vídeo 1102 inclui meio de transmissão 1107 acoplado ao meio de recebimento 1101. O meio de transmissão 1107 é configurado para transmitir o fluxo de bits para um decodificador ou transmitir uma imagem decodificada para um meio de exibição (por exemplo, um dentre os dispositivos de I/O 1080).
[0269] O dispositivo de codificação de vídeo 1102 inclui um meio de armazenamento 1103. O meio de armazenamento 1103 é acoplado a pelo menos um dentre o meio de recebimento 1101 ou o meio de transmissão 1107. O meio de armazenamento 1103 é configurado para armazenar instruções. O dispositivo de codificação de vídeo 1102 também inclui meio de processamento 1105. O meio de processamento 1105 é acoplado ao meio de armazenamento 1103. O meio de processamento 1105 é configurado para executar as instruções armazenadas no meio de armazenamento 1103 para realizar os métodos revelados na presente invenção.
[0270] Deve-se entender também que não é exigido que as etapas dos métodos exemplificativos estabelecidos na presente invenção sejam necessariamente realizadas na ordem descrita, e a ordem das etapas de tais métodos deve ser entendida apenas como exemplificativa. Da mesma maneira, as etapas adicionais podem ser incluídas em tais métodos, e determinadas etapas podem ser omitidas ou combinadas, em métodos consistentes com várias modalidades da presente revelação.
[0271] Embora diversas modalidades tenham sido fornecidas na presente revelação, deve-se entender que os sistemas e métodos revelados podem ser incorporados em muitas outras formas específicas sem se afastar do espírito ou escopo da presente revelação. Os presentes exemplos devem ser considerados como ilustrativos e não restritivos, e a intenção não deve ser limitada aos detalhes fornecidos no presente documento. Por exemplo, os vários elementos ou componentes podem ser combinados ou integrados em outro sistema ou determinados atributos podem ser omitidos, ou não implementados.
[0272] Além disso, técnicas, sistemas, subsistemas e métodos descritos e ilustrados nas várias modalidades como discretos ou separados podem ser combinados ou integrados a outros sistemas, módulos, técnicas ou métodos sem se afastar do escopo da presente revelação. Outros itens mostrados ou discutidos como acoplados ou diretamente acoplados ou que se comunicam um com o outro podem ser acoplados indiretamente ou se comunicar através de alguma interface, dispositivo ou componente intermediário, seja de modo elétrico, mecânico ou de outro modo. Outros exemplos de mudanças, substituições e alterações são verificados por um técnico no assunto e podem ser realizados sem se afastar do espírito e escopo revelados no presente documento.

Claims (22)

REIVINDICAÇÕES
1. Método de codificação de um fluxo de bits de vídeo implementado por um codificador de vídeo, o método CARACTERIZADO pelo fato de que compreende: determinar, por um processador do codificador de vídeo, um tipo de unidade de camada de abstração de rede (NAL) de uma unidade NAL para uma imagem dos dados de vídeo, em que o tipo de unidade NAL compreende um tipo de unidade NAL de imagens iniciais e finais, um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL), ou um IRAP sem tipo de unidade NAL de imagens iniciais; gerar, pelo processador do codificador de vídeo, um fluxo de bits de vídeo que contém a unidade NAL correspondente ao tipo de unidade NAL.
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o IRAP com tipo de unidade RADL NAL é selecionado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação.
3. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
4. Método, de acordo com a reivindicação 2, CARACTERIZADO pelo fato de que o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL.
5. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que o IRAP sem tipo de unidade NAL de imagens iniciais é selecionado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação.
6. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial.
7. Método, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais.
8. Método de decodificação de um fluxo de bits de vídeo codificado implementado por um decodificador de vídeo, CARACTERIZADO pelo fato de que compreende: receber, por um receptor do decodificador de vídeo, um fluxo de bits de vídeo codificado que contém unidades de camada de abstração de rede (NAL); atribuir, pelo processador do decodificador de vídeo, uma ordem de apresentação para imagens contidas nas unidades NAL com base nos tipos de unidade NAL das unidades NAL, em que os tipos de unidade NAL compreendem um tipo de unidade NAL de imagens iniciais e finais, um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL), ou um IRAP sem tipo de unidade NAL de imagens iniciais.
9. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o IRAP com tipo de unidade RADL NAL é determinado para uma imagem IRAP que é seguida por uma ou mais imagens RADL e zero imagens RADL em ordem de decodificação.
10. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) com imagem RADL.
11. Método, de acordo com a reivindicação 9, CARACTERIZADO pelo fato de que o IRAP com tipo de unidade RADL NAL é referido como uma atualização de decodificador instantânea (IDR) com tipo de unidade RADL NAL.
12. Método, de acordo com a reivindicação 8, CARACTERIZADO pelo fato de que o IRAP sem tipo de unidade NAL de imagens iniciais é determinado para uma imagem IRAP que não é seguida por uma imagem inicial em ordem de decodificação.
13. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que a imagem IRAP é referida como uma imagem de atualização de decodificador instantânea (IDR) sem uma imagem inicial.
14. Método, de acordo com a reivindicação 12, CARACTERIZADO pelo fato de que o IRAP sem tipo de unidade NAL de imagens iniciais é referido como uma atualização de decodificador instantânea (IDR) sem tipo de unidade NAL de imagens iniciais.
15. Dispositivo de codificação, CARACTERIZADO pelo fato de que compreende:
uma memória que contém instruções e um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo; um processador acoplado à memória, o processador configurado para implementar as instruções para fazer com que o dispositivo de codificação realize o método conforme definido em qualquer uma das reivindicações 1 a 14.
16. Mídia legível por computador não transitória, CARACTERIZADA pelo fato de que compreende um produto de programa de computador para uso por um dispositivo de codificação de vídeo, o produto de programa de computador compreendendo instruções executáveis em computador armazenadas na mídia legível por computador não transitória tais que quando executadas por um processador fazem com que o dispositivo de codificação de vídeo realize o método conforme definido em qualquer uma das reivindicações 1 a 14.
17. Codificador, CARACTERIZADO pelo fato de que compreende: uma unidade de determinação, configurada para: determinar um tipo de unidade de camada de abstração de rede (NAL) de uma unidade NAL para uma imagem dos dados de vídeo, em que o tipo de unidade NAL compreende um tipo de unidade NAL de imagens iniciais e finais, um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL), ou um IRAP sem tipo de unidade NAL de imagens iniciais; uma unidade de codificação, configurada para: gerar um fluxo de bits de vídeo que contém a unidade NAL correspondente ao tipo de unidade NAL.
18. Decodificador, CARACTERIZADO pelo fato de que compreende: uma unidade de recebimento, configurada para receber um fluxo de bits de vídeo codificado que contém unidades de camada de abstração de rede (NAL); uma unidade de atribuição, configurada para atribuir uma ordem de apresentação para imagens contidas nas unidades NAL com base nos tipos de unidade NAL das unidades NAL, em que os tipos de unidade NAL compreendem um tipo de unidade NAL de imagens iniciais e finais, um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL), ou um IRAP sem tipo de unidade NAL de imagens iniciais.
19. Mídia de armazenamento não transitória, CARACTERIZADA pelo fato de que inclui um fluxo de bits codificado, o fluxo de bits sendo gerado dividindo-se uma imagem atual de um sinal de vídeo ou um sinal de imagem em tiles de segundo nível, e compreendendo um tipo de unidade de camada de abstração de rede (NAL) de uma unidade NAL para uma imagem dos dados de vídeo, em que o tipo de unidade NAL compreende um tipo de unidade NAL de imagens iniciais e finais, um IRAP com tipo de unidade NAL inicial decodificável de acesso aleatório (RADL), ou um IRAP sem tipo de unidade NAL de imagens iniciais.
20. Decodificador, CARACTERIZADO pelo fato de que compreende circuitos de processamento para realizar o método conforme definido em qualquer uma das reivindicações 1 a 14.
21. Produto de programa de computador, CARACTERIZADO pelo fato de que compreende código de programa para realizar o método conforme definido em qualquer uma das reivindicações 1 a 14 quando executado em um computador ou em um processador.
22. Mídia legível por computador não transitória, CARACTERIZADA pelo fato de que porta um código de programa que, quando executado por um dispositivo de computador, faz com que o dispositivo de computador realize o método conforme definido em qualquer uma das reivindicações 1 a 14.
',6326,7,92 ',6326,7,92'(25,*(0 '('(67,12 )217('( ',6326,7,92 9Ë'(2 '((;,%,d­2
&2',),&$'25 '(&2',),&$'25 '(9Ë'(2 '(9Ë'(2
,17(5)$&( ,17(5)$&( '(6$Ë'$ '((175$'$
)/8;2'(%,76'( 9Ë'(2&2',),&$'2
'(&2',),&$'25'(9Ë'(2
81,'$'('( &203(16$d­2 (/(0(1726'( '(029,0(172 81,'$'('( 6,17$;( '(&2',),&$d­2 '((17523,$ 81,'$'('( 35(',d­2 &2(),&,(17('( ,175$ 48$17,=$d­2
%/2&26 81,'$'('( 81,'$'('( 5(6,'8$,6 0(0Ï5,$'( 48$17,=$d­2 75$16)250$'$ 48$'52'( ,19(56$ ,19(56$ 5()(5Ç1&,$
9Ë'(2 '(&2',),&$'2
&2',),&$'25 '(9Ë'(2 %/2&26 81,'$'('( '$'26 5(6,'8$,6 352&(66$0(172 81,'$'('( '(9Ë'(2 '( 48$17,=$d­2 Petição 870210063577, de 13/07/2021, pág. 69/77 75$16)250$'$ 81,'$'('( 81,'$'('( &2(),&,(17(6'( 6(/(d­2'( (67,0$ÇÃO'( 75$16)250$'$ 02'2 029,0(172 5(6,'8$,6 48$17,=$'26 (/(0(1726'(6,17$;( 81,'$'('( &203(16$d­2 '(029,0(172 81,'$'('(
3$57,d­2 81,'$'('( 35(',d­2 ,175$ %/2&265(6,'8$,6 0(0Ï5,$'(48$'52'(5()(5Ç1&,$ 81,'$'('( 81,'$'('( 81,'$'('( 5(&216758Ë'26 75$16)250$'$ 48$17,=$d­2 &2',),&$d­2 ,19(56$ ,19(56$ '((17523,$ %/2&26'(9Ë'(2 5(&216758Ë'26
)OX[RGHELWV
&DEHoDOKRGH 'DGRVGH 636 336 )DWLD ,PDJHP
),*
/ͲZW KƌĚĞŵĚĞĚĞĐŽĚŝĨŝĐĂĕĆŽ Ϭ ϭ Ϯ ϯ ϰ
Z^> Z> /ͲZW
KƌĚĞŵĚĞĂƉƌĞƐĞŶƚĂĕĆŽ Ϭ Ϯ ϯ ϭ ϰ
),*
$UPD]HQDUXPFRQMXQWRGHPHQRVGHFLQFRWLSRVGHXQLGDGHGHFDPDGD GHDEVWUDomRGHUHGH1$/
GLVSRQtYHLVSDUDGDGRVGHYtGHR Selecionar um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL para uma imagem a partir dos dados de vídeo Gerar um fluxo de bits de vídeo que contém uma unidade NAL correspondente ao tipo de unidade NAL selecionado e que contém um identificador que identifica o tipo de unidade NAL selecionado 7UDQVPLWLURIOX[RGHELWVGHYtGHRHPGLUHomR DRGHFRGLILFDGRUGHYtGHR
Armazenar um conjunto de menos de cinco tipos de unidade de camada de abstração de rede (NAL) disponíveis para dados de vídeo Receber um fluxo de bits de vídeo codificado que contém uma unidade NAL e um identificador Determinar um tipo de unidade NAL a partir do conjunto de menos de cinco tipos de unidade NAL usados para codificar a unidade NAL com base no identificador Atribuir uma ordem de apresentação para imagens contidas na unidade NAL com base no tipo de unidade NAL determinado
Gerar um fluxo de bits que contém uma unidade NAL para uma imagem de ponto de acesso aleatório não intra (não IRAP) associada a uma imagem de ponto de acesso aleatório intra (IRAP) Definir uma primeira flag no fluxo de bits para um primeiro valor quando a unidade NAL para a imagem não IRAP compreender uma imagem inicial decodificável de acesso aleatório (RADL) Definir uma segunda flag no fluxo de bits para o primeiro valor quando a unidade NAL para a imagem não IRAP compreender uma imagem inicial pulada de acesso aleatório (RASL) Transmitir o fluxo de bits de vídeo em direção ao decodificador de vídeo
Receber um fluxo de bits de vídeo codificado que contém uma primeira flag, uma segunda flag, e uma unidade NAL para uma imagem de ponto de acesso aleatório não intra (não IRAP) associada a uma imagem de ponto de acesso aleatório intra (IRAP) Determinar que a unidade NAL para a imagem não IRAP compreende uma imagem inicial decodificável de acesso aleatório (RADL) quando a primeira flag no fluxo de bits tiver sido definida para um primeiro valor Determinar que a unidade NAL para a imagem não IRAP compreende uma imagem inicial pulada de acesso aleatório (RASL) quando a segunda flag no fluxo de bits tiver sido definida para o primeiro valor Atribuir uma ordem de apresentação para imagens contidas na unidade NAL com base na primeira flag ou na segunda flag que tem o primeiro valor e decodificar a unidade NAL com base na ordem de apresentação atribuída
'LVSRVLWLYRGH&RGLILFDomRGH9tGHR 'LVSRVLWLYRV GH,2
3URFHVVDGRU
0yGXORGH &RGLILFDomR 7[5[ 7[5[
0HPyULD 3RUWDVD 3RUWDVD -XVDQWH 0RQWDQWH
'LVSRVLWLYRGH &RGLILFDomR GH9tGHR 0HLRGH 5HFHELPHQWR
0HLRGH 0HLRGH $UPD]HQDPHQWR 3URFHVVDPHQWR
0HLRGH 7UDQVPLVVmR
BR112021012679-1A 2018-12-27 2019-12-23 Codificador de vídeo, decodificador de vídeo e métodos correspondentes BR112021012679A2 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862785515P 2018-12-27 2018-12-27
US62/785,515 2018-12-27
PCT/US2019/068324 WO2020139829A1 (en) 2018-12-27 2019-12-23 On intra random access point pictures and leading pictures in video coding

Publications (1)

Publication Number Publication Date
BR112021012679A2 true BR112021012679A2 (pt) 2021-09-08

Family

ID=71126253

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112021012679-1A BR112021012679A2 (pt) 2018-12-27 2019-12-23 Codificador de vídeo, decodificador de vídeo e métodos correspondentes

Country Status (5)

Country Link
US (1) US11563967B2 (pt)
KR (1) KR102603980B1 (pt)
CN (1) CN113228588A (pt)
BR (1) BR112021012679A2 (pt)
WO (1) WO2020139829A1 (pt)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3133079C (en) * 2019-03-11 2024-01-30 Huawei Technologies Co., Ltd. Pictures with mixed nal unit types
US11792432B2 (en) * 2020-02-24 2023-10-17 Tencent America LLC Techniques for signaling and identifying access unit boundaries
KR20220030186A (ko) * 2020-09-02 2022-03-10 레몬 인크. Vvc 이미지 항목에 포함된 픽처들 및 계층들
EP3965424A1 (en) 2020-09-02 2022-03-09 Lemon Inc. Transition period for image transitions in a media file
CN114615549B (zh) * 2022-05-11 2022-09-20 北京搜狐新动力信息技术有限公司 流媒体seek方法、客户端、存储介质和移动设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9374583B2 (en) * 2012-09-20 2016-06-21 Qualcomm Incorporated Video coding with improved random access point picture behaviors
US9350781B2 (en) * 2013-05-31 2016-05-24 Qualcomm Incorporated Single network abstraction layer unit packets with decoding order number for video coding
US9525883B2 (en) * 2013-07-15 2016-12-20 Qualcomm Incorporated Cross-layer alignment of intra random access point pictures
KR102246634B1 (ko) * 2013-10-11 2021-05-03 한국전자통신연구원 영상의 부호화/복호화 방법 및 이를 이용하는 장치
US9854270B2 (en) * 2013-12-19 2017-12-26 Qualcomm Incorporated Device and method for scalable coding of video information

Also Published As

Publication number Publication date
CN113228588A (zh) 2021-08-06
WO2020139829A1 (en) 2020-07-02
KR20210105984A (ko) 2021-08-27
KR102603980B1 (ko) 2023-11-20
US20210392361A1 (en) 2021-12-16
US11563967B2 (en) 2023-01-24

Similar Documents

Publication Publication Date Title
KR102613593B1 (ko) 필수 및 비필수 비디오 보충 정보의 시그널링
KR101787864B1 (ko) 출력 계층 세트에 대한 비디오 데이터 코딩
US10306253B2 (en) Signaling of parameter sets in files of multi-layer bitstreams
US9648317B2 (en) Method of coding video and storing video content
EP3363204B1 (en) Support of random access and switching of layers and sub-layers in multi-layer video files
CN110178379B (zh) 以文件格式用信号表示重要视频信息的方法和设备
KR102603980B1 (ko) 비디오 인코더, 비디오 디코더, 및 대응하는 방법들
KR102527431B1 (ko) 비디오 코딩에서 파라미터 세트들 및 동기 샘플들의 배치
BR112021004662A2 (pt) codificador de vídeo, decodificador de vídeo e métodos correspondentes
JP2017525240A (ja) マルチレイヤビデオコーデック内の回復点seiメッセージ
AU2016219228B2 (en) Signaling of operation points for carriage of HEVC extensions
US20230379481A1 (en) Media file generation/reception method and device for signaling operating point information and output layer set information, and computer-readable recording medium in which media file is stored
US20230336751A1 (en) Method and apparatus for generating/receiving media file which signals output layer set information, and computer-readable recording medium storing media file