BR112013033552B1 - Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação - Google Patents

Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação Download PDF

Info

Publication number
BR112013033552B1
BR112013033552B1 BR112013033552-1A BR112013033552A BR112013033552B1 BR 112013033552 B1 BR112013033552 B1 BR 112013033552B1 BR 112013033552 A BR112013033552 A BR 112013033552A BR 112013033552 B1 BR112013033552 B1 BR 112013033552B1
Authority
BR
Brazil
Prior art keywords
frame
latency
constraint
maximum
reordering
Prior art date
Application number
BR112013033552-1A
Other languages
English (en)
Other versions
BR112013033552A2 (pt
Inventor
Gary J. Sullivan
Original Assignee
Microsoft Technology Licensing, Llc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing, Llc filed Critical Microsoft Technology Licensing, Llc
Publication of BR112013033552A2 publication Critical patent/BR112013033552A2/pt
Publication of BR112013033552B1 publication Critical patent/BR112013033552B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/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/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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/88Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving rearrangement of data among different coding units, e.g. shuffling, interleaving, scrambling or permutation of pixel data or permutation of transform coefficient data among different blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process

Landscapes

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

Abstract

MÉTODO EM UM SISTEMA DE COMPUTADOR QUE IMPLEMENTA UM DECODIFICADOR DE VÍDEO, MÉTODO EM UM SISTEMA DE COMPUTAÇÃO, MEIO LEGÍVEL POR COMPUTADOR E SISTEMA DE COMPUTAÇÃO. A presente invenção refere-se a técnicas de ferramentas para reduzir latência em codificação e decodificação de vídeo por restringir latência devido à reordenação de quadros de vídeo, e por indicar a restrição em relação à latência de reordenação de quadro com um ou mais elementos de sintaxe que acompanham dados codificados (421) para os quadros de vídeo. Por exemplo, uma ferramenta de comunicação em tempo real com um codificador de vídeo estabelece um elemento de sintaxe que indica uma restrição em relação à latência de reordenação de quadro, a qual é consistente com as dependências entre os quadros entre múltiplos quadros de uma sequência de vídeo, e então emite o elemento de sintaxe. Uma ferramenta de comunicação em tempo real correspondente com um decodificador de vídeo recebe o elemento de sintaxe que indica a restrição em relação à latência de reordenação de quadro, determina a restrição em relação à latência de reordenação de quadro baseada no elemento de sintaxe, e utiliza a restrição em relação à latência de reordenação de quadro para determinar quando (...).

Description

ANTECEDENTES
[0001] Engenheiros utilizam compactação (também chamada de compilação de fonte ou codificação de fonte) para reduzir a taxa de bits de vídeo digital. A compactação diminui o custo de armazenar e transmitir informação de vídeo por converter a informação para uma forma com taxa de bits menor. A descompactação (também chamada de decodificação) reconstrói uma versão da informação original a partir da forma compactada. Um “codec" é um sistema codificador / decodifi- cador.
[0002] Através das últimas duas décadas, vários padrões de codec foram adotados, incluindo os padrões H.261, H.262 (MPEG-2 ou ISO/IEC 13818-2), H.263 e H.264 (AVC ou ISO/IEC 14496-10) e os padrões MPEG-1 (ISO/IEC 11172-2), MPEG-4 Visual (ISO/IEC 144962) e SMPTE 421M. Mais recentemente, o padrão HEVC está sob desenvolvimento. Um padrão codec de vídeo tipicamente define opões para a sintaxe de um fluxo de bits de vídeo codificado, detalhando parâmetros no fluxo de bits quando aspectos particulares são utilizados na codificação e na decodificação. Em vários caos, um padrão codec de vídeo também proporciona detalhes sobre operações de decodifi- cação que um decodificador deve executar para obter os resultados corretos na decodificação.
[0003] Uma meta básica da compactação é proporcionar boa per formance de distorção de taxa. Assim, para uma taxa de bits particular, um codificador tenta proporcionar a mais alta qualidade de vídeo. Ou, para um nível particular de qualidade / fidelidade ao vídeo original, um codificador tenta proporcionar o vídeo codificador com a menor taxa de bits. Na prática, dependendo do cenário de uso, considerações tais como tempo de codificação, complexidade da codificação, recursos de codificação, tempo de decodificação, complexidade da decodificação, recursos da decodificação, atraso geral, e/ou uniformidade na reprodução também afetam decisões tomadas durante a codificação e a decodificação.
[0004] Por exemplo, considere cenários de uso tais como reprodu ção de vídeo a partir do armazenamento, reprodução de vídeo a partir de dados codificados transmitidos continuamente através de uma conexão de rede, e transcodificação de vídeo (de uma taxa de bits para outra taxa de bits, ou de um padrão para outro padrão). No lado do codificador, tais aplicativos podem permitir a codificação off-line que de modo algum é sensível ao tempo. Portanto, um codificador pode aumentar o tempo de codificação e aumentar os recursos utilizados durante a codificação para encontrar o modo mais eficiente para compactar vídeo, e desse modo, melhorar a performance de distorção de taxa. Se uma pequena quantidade de atraso também for aceitável no lado do decodificador, o codificador adicionalmente pode melhorar a performance de distorção de taxa, por exemplo, por explorar as dependências entre as imagens a partir de imagens mais distante à frente em uma sequência.
[0005] Por outro lado, considere cenários de uso tais como conferência remota em área de trabalho, vídeo de vigilância, telefonia por vídeo e outros cenários de comunicação em tempo real. Tais aplicações são sensíveis ao tempo. Baixa latência entre a gravação das imagens de entrada e a reprodução de imagens de saída é um fator chave na performance. Quando ferramentas de codificação / decodifi- cação adaptadas para comunicação que não é em tempo real são aplicadas nos cenários de comunicação em tempo real, a latência ge- ral frequentemente é inaceitavelmente alta. Os atrasos que estas ferramentas introduzem durante a codificação e a decodificação podem melhorar a performance para reprodução de vídeo normal, mas elas atrapalham a comunicação em tempo real.
SUMÁRIO
[0006] No Sumário, a descrição detalhada apresenta técnicas e ferramentas para reduzir latência na codificação e decodificação de vídeo. As técnicas e ferramentas podem reduzir latência de modo a melhorar a rapidez de resposta na comunicação em tempo real. Por exemplo, as técnicas e ferramentas reduzem a latência geral por restringir a latência devido ao novo ordenamento dos quadros de vídeo, e por indicar a restrição em relação à latência de novo ordenamento de quadro com um ou mais elementos de sintaxe que acompanham dados codificados para os quadros de vídeo.
[0007] De acordo com um aspecto das técnicas e ferramentas descritas neste documento, uma ferramenta tal como um codificador de vídeo, ferramenta de comunicação em tempo real com um codificador de vídeo, ou outra ferramenta, estabelece um ou mais elementos de sintaxe que indicam uma restrição em relação à latência (por exemplo, uma restrição em relação à latência de novo ordenamento de quadro consistente com as dependências entre os quadros entre múltiplos quadros de uma sequência de vídeo). A ferramenta emite o ele- mento(s) de sintaxe, desse modo facilitando a determinação mais simples e mais rápida de quando os quadros reconstruídos estão prontos para emissão em termos de ordem de saída dos quadros.
[0008] De acordo com outro aspecto das técnicas e ferramentas descritas neste documento, uma ferramenta tal como um decodificador de vídeo, ferramenta de comunicação em tempo real com um decodifi- cador de vídeo, ou outra ferramenta, recebe e analisa um ou mais elementos de sintaxe que indicam uma restrição em relação à latência (por exemplo, uma restrição em relação à latência de nova ordenação de quadro). A ferramenta também recebe dados codificados para múltiplos quadros de uma sequência de vídeo. Pelo menos alguns dos dados codificados são decodificados para reconstruir um dos quadros. A ferramenta pode determinar a restrição em relação à latência baseada no elemento(s) de sintaxe, então utilizar a restrição em relação à latência para determinar quando um quadro reconstruído está pronto para emissão (em termos de ordem de saída). A ferramenta emite o quadro reconstruído.
[0009] Os objetivos, aspectos e vantagens da invenção acima e outros irão se tornar mais aparentes a partir da descrição detalhada seguinte, a qual continua com referência às figuras acompanhantes.
BREVE DESCRIÇÃO DOS DESENHOS
[00010] A Figura 1 é um diagrama de um sistema de computação ilustrativo no qual algumas concretizações descritas podem ser implementadas.
[00011] As Figuras 2a e 2b são diagramas de ambientes em rede ilustrativos nos quais algumas concretizações descritas podem ser implementadas.
[00012] A Figura 3 é um diagrama de um sistema codificador ilus trativo em conjunto com o qual algumas concretizações descritas podem ser implementadas.
[00013] A Figura 4 é um diagrama de um sistema decodificador ilustrativo em conjunto com o qual algumas concretizações descritas podem ser implementadas.
[00014] As Figuras 5a até 5e são diagramas apresentando a ordem codificada e a ordem de saída para quadros em várias séries ilustrativas.
[00015] A Figura 6 é um fluxograma apresentando uma técnica ilustrativa para estabelecer e emitir um ou mais elementos de sintaxe que indicam uma restrição em relação á latência.
[00016] A Figura 7 é um fluxograma apresentando uma técnica ilustrativa para decodificação com latência reduzida.
DESCRIÇÃO DETALHADA
[00017] A descrição detalhada apresenta técnicas e ferramentas para reduzir latência na codificação e decodificação de vídeo. As técnicas e ferramentas podem ajudar a reduzir latência de modo a melhorar a rapidez de resposta na comunicação em tempo real.
[00018] Nos cenários de codificação / decodificação de vídeo, al gum atraso é inevitável entre o momento em que um quadro de vídeo de entrada é recebido e o momento em que o quadro é reproduzido. O quadro é codificador por um codificador, distribuído para um decodifi- cador e decodificado pelo decodificador, e alguma quantidade de la- tência é causada pelas limitações práticas em relação aos recursos de codificação, aos recursos de decodificação e/ou à largura de banda da rede. Entretanto, outra latência é evitável. Por exemplo, a latência pode ser introduzida por um codificador e decodificador para melhorar a performance de distorção de taxa (por exemplo, para explorar as dependências entre os quadros a partir de imagens mais distantes à frente em uma sequência). Tal latência pode ser reduzida, apesar de poder existir uma penalidade em termos de performance de distorção de taxa, de utilização do processador, ou de uniformidade de reprodução.
[00019] Com as técnicas e ferramentas descritas neste documento, a latência é diminuída por restringir a latência (por consequência, limitando a extensão temporal da dependência entre os quadros) e indicando a restrição em relação à latência para um decodificador. Alter-nativamente, a restrição em relação à latência é uma restrição em termos de segundos, milissegundos, ou de outra medida de tempo. O decodificador pode então determinar a restrição em relação à latência e utilizar a restrição quando determinando quais quadros estão prontos para emissão. Deste modo, o atraso pode ser reduzido para uma conferência remoto em área de trabalho, telefonia por vídeo, vigilância por vídeo, vídeo de câmera web e em outras aplicações de comunicação em tempo real.
[00020] Algumas das inovações descritas neste documento são ilustradas com referência aos elementos de sintaxe e às operações específicas para o padrão H.264 e/ou HEVC. Tais inovações também podem ser implementadas para outros padrões ou formatos.
[00021] Mais geralmente, várias alternativas para os exemplos descritos neste documento são possíveis. Algumas técnicas descritas com referência aos diagramas em fluxograma podem ser alteradas pela alteração da ordem dos estágios apresentados nos fluxogramas, por separação, repetição ou omissão de alguns estágios, etc. Os vários aspectos de redução de latência para codificação e decodificação de vídeo podem ser utilizados em combinação ou separadamente. Diferentes concretizações utilizam uma ou mais das técnicas e ferramentas descritas. Algumas das técnicas e ferramentas descritas neste documento endereçam um ou mais dos problemas citados nos antecedentes. Tipicamente, uma dada técnica / ferramenta não resolve todos os problemas. I. Sistema de Computação Ilustrativo
[00022] A Figura 1 ilustra um exemplo generalizado de um sistema de computação adequado (100) no qual várias das técnicas e ferramentas descritas podem ser implementadas. O sistema de computação (100) não é pretendido para sugerir qualquer limitação quanto ao escopo de uso ou funcionalidade, à medida que as técnicas e ferramentas podem ser implementadas em diversos sistemas de computação de propósito geral ou de propósito especial.
[00023] Com referência à Figura 1, o sistema de computação (100) inclui uma ou mais unidades de processamento (110, 115) e a memó- ria (120, 125). Na Figura 1, esta configuração mais básica (130) está incluída dentro de uma linha tracejada. As unidades de processamento (110, 115) executam instruções executáveis por computador. Uma unidade de processamento pode ser uma unidade central de processamento (CPU) de propósito geral, um processador em um circuito integrado de aplicação específica (ASIC) ou qualquer outro tipo de processador. Em um sistema com múltiplos processamentos, múltiplas unidades de processamento executam instruções executáveis por computador para aumentar a capacidade de processamento. Por exemplo, a Figura 1 apresenta uma unidade central de processamento (110) bem como uma unidade de processamento de elementos gráficos ou unidade de coprocessamento (115). A memória tangível (120, 125) pode ser memória volátil (por exemplo, registradores, cache, RAM), memória não volátil (por exemplo, ROM, EEPROM, memória flash, etc.), ou alguma combinação das duas, acessível pela unida- de(s) de processamento. A memória (120, 125) armazena software (180) implementando uma ou mais inovações para reduzir latência na codificação e decodificação de vídeo, na forma de instruções executá-veis por computador adequadas para execução pela unidade(s) de processamento.
[00024] Um sistema de computação pode possuir aspectos adicionais. Por exemplo, o sistema de computação (100) inclui armazenamento (140), um ou mais dispositivos de entrada (150), um ou mais dispositivos de saída (160), e uma ou mais conexões de comunicação (170). Um mecanismo de interconexão (não apresentado) tal como um barramento, controlador, ou rede, interconecta os componentes do sistema de computação (100). Tipicamente, o software do sistema operacional (não apresentado) proporciona um ambiente operacional para outro software executando no sistema de computação (100), e coordena as atividades dos componentes do sistema de computação (100).
[00025] O armazenamento tangível (140) pode ser removível ou não removível, e inclui discos magnéticos, fitas ou cassetes magnéticos, CD-ROMs, DVDs, ou qualquer outro meio que possa ser utilizado para armazenar informação de um modo não temporário e que possa ser acessado dentro do sistema de computação (100). O armazenamento (140) armazena instruções para o software (180) implementando uma ou mais inovações para redução de latência na codificação e decodificação de vídeo.
[00026] O dispositivo(s) de entrada (150) pode ser um dispositivo de entrada de toque, tal como um teclado, mouse, caneta, ou trackball, um dispositivo de entrada por voz, um dispositivo de digitalização, ou outro dispositivo que proporcione entrada para o sistema de computação (100). Para codificação de vídeo, o dispositivo(s) de entrada (150) pode ser uma câmera, placa de vídeo, placa de sintonização de TV, ou dispositivo similar que aceita entrada de vídeo em forma analógica ou digital, ou um CD-ROM ou CD-RW que lê amostras de vídeo para o sistema de computação (100). O dispositivo(s) de entrada (160) pode ser um vídeo, impressora, alto-falante, gravador de CD, ou outro dispositivo que proporcione saída a partir do sistema de computação (100).
[00027] A(s) conexão (conexões) de comunicação (170) permitem comunicação através de um meio de comunicação para outra entidade de computação. O meio de comunicação transporta informação tal como instruções executáveis por computador, entrada ou saída de áudio ou de vídeo, ou outros dados em um sinal de dados modulado. Um sinal de dados modulado é um sinal que tem uma ou mais de suas características estabelecidas ou alteradas de uma maneira a codificar informação no sinal. A título de exemplo, e não de limitação, o meio de comunicação pode utilizar um portador elétrico, ótico, RF ou outro por- tador.
[00028] As técnicas e ferramentas podem ser descritas no contexto geral de meio legível por computador. O meio legível por computador são qualquer meio tangível disponível que possa ser acessado dentro de um ambiente de computação. A título de exemplo e não de limitação, com o sistema de computação (100), o meio legível por computador inclui memória (120, 125), armazenamento (140), e combinações de qualquer um dos acima.
[00029] As técnicas e ferramentas podem ser descritas no contexto geral de instruções executáveis por computador, tais como estas incluídas nos módulos de programa, sendo executadas em um sistema de computação em um processador alvo real ou virtual. Geralmente, os módulos de programa incluem rotinas, programas, bibliotecas, objetos, classes, componentes, estruturas de dados, etc., que executam tarefas particulares ou implementam tipos particulares de dados abstratos. A funcionalidade dos módulos de programa pode ser combinada ou separada entre os módulos de programa como desejado nas várias concretizações. As instruções executáveis por computador para os módulos de programa podem ser executadas dentro de um sistema de computação local ou distribuído.
[00030] Os termos “sistemas" e “dispositivo" são utilizados de forma alternada neste documento. A não ser que o contexto claramente indique de outro modo, nenhum dos termos implica em qualquer limitação em relação a um tipo de sistema de computação ou dispositivo de computação. Em geral, um sistema de computação ou dispositivo de computação pode ser local ou distribuído, e pode incluir qualquer combinação de hardware de propósito especial e/ou hardware de propósito geral com software implementando a funcionalidade descrita neste documento.
[00031] Para o propósito de apresentação, a descrição detalhada utiliza termos como “determina" e “utiliza" para descrever operações de computador em um sistema de computação. Estes termos são abstrações de alto nível para operações executadas por um computador, e não devem ser confundidas com atos executados por um ser humano. As operações de computador real correspondendo a estes termos variam dependendo da implementação.
II. Ambientes de Rede Ilustrativos
[00032] As Figuras 2a e 2b apresentam ambientes de rede ilustrativos 201, 202 que incluem codificadores de vídeo 220 e decodificado- res de vídeo 270. Os codificadores 220 e os decodificadores 270 são conectados através de uma rede 250 utilizando um protocolo de comunicação apropriado. A rede 250 pode incluir a Internet ou outra rede de computadores.
[00033] No ambiente em rede 201 apresentando na Figura 2a, cada ferramenta de comunicação em tempo real (“RTC") 210 inclui tanto um codificador 220 como um decodificador 270 para comunicação bidirecional. Um dado codificador 220 pode produzir saída de acordo com o padrão SMPTE 421M, com o padrão ISO-IEC 14496-10 (também conhecido como H.264 ou AVC), padrão HEVC, outro padrão, ou um formato apropriado, com um decodificador correspondente 270 aceitando dados codificados a partir do codificador 220. A comunicação bidirecional pode ser parte de uma conferência de vídeo, chamada de telefone com vídeo, ou outro cenário de comunicação com duas partes. Apesar de o ambiente em rede 201 na Figura 2a incluir duas ferramentas de comunicação em tempo real 210, o ambiente em rede 201 pode ao invés disso incluir três ou mais ferramentas de comunicação em tempo real 210 que participam na comunicação com múltiplas partes.
[00034] Uma ferramenta de comunicação em tempo real 210 gerencia a codificação por um codificador 220. A Figura 3 apresenta um sistema codificador ilustrativo 300 que pode estar incluído na ferramenta de comunicação em tempo real 210. Alternativamente, a ferramenta de comunicação em tempo real 210 utiliza outro sistema codificador. Uma ferramenta de comunicação em tempo real 210 também gerencia decodificação por um decodificador 270. A Figura 4 apresenta um sistema decodificador ilustrativo 400, o qual pode estar incluído na ferramenta de comunicação em tempo real 210. Alternativamente, a ferramenta de comunicação em tempo real 210 utiliza outro sistema decodificador.
[00035] No ambiente em rede 202 apresentando na Figura 2b, uma ferramenta de codificação 212 inclui um codificador 220 que codifica vídeo para distribuição para múltiplas ferramentas de reprodução 214, as quais incluem os decodificadores 270. A comunicação unidirecional pode ser proporcionada para um sistema de vigilância por vídeo, sistema de monitoramento por câmera web, apresentação remota de conferência em área de trabalho ou outro cenário no qual vídeo é codi-ficado e enviado a partir de uma localização para uma ou mais outras localizações. Apesar de o ambiente em rede 202 na Figura 2B incluir duas ferramentas de reprodução 214, o ambiente em rede 202 pode incluir mais ou menos ferramentas de reprodução 214. Em geral, uma ferramenta de reprodução 214 se comunicação com a ferramenta de codificação 212 para determinar um fluxo de vídeo para a ferramenta de reprodução 214 receber. A ferramenta de reprodução 214 recebe o fluxo, coloca na memória temporária os dados codificados recebidos durante um período apropriado, e começa a decodificação e a reprodução.
[00036] A Figura 3 apresenta um sistema codificador ilustrativo 300 que pode estar incluído na ferramenta de codificação 212. Alternativamente, a ferramenta de codificação 212 utiliza outro sistema codificador. A ferramenta de codificação 212 também pode incluir lógica do controlador do lado do servidor para gerenciar conexões com uma ou mais ferramentas de reprodução 214. A Figura 4 apresenta um sistema decodificador ilustrativo 400, o qual pode estar incluído na ferramenta de reprodução 214. Alternativamente, a ferramenta de reprodução 214 utiliza outro sistema decodificador. Uma ferramenta de reprodução 214 também pode incluir lógica do controlador do lado do cliente para gerenciar conexões com a ferramenta de codificação 212.
[00037] Em alguns casos, o uso de um elemento de sintaxe para indicar latência (por exemplo, latência de novo ordenamento de quadro) é específico para um padrão ou formato particular. Por exemplo, dados codificados podem conter um ou mais elementos de sintaxe que indicam uma restrição em relação à latência como parte da sintaxe de um fluxo de bits de vídeo codificado elementar definido de acordo com o padrão ou formado, ou como metadados de mídia definidos se rela-cionando com os dados codificados. Em tais casos, a ferramenta de comunicação em tempo real 210, a ferramenta de codificação 212 e/ou a ferramenta de reprodução 214 com latência reduzida pode ser dependente do codec, pelo fato que as decisões que ela toma podem depender da sintaxe do fluxo de bits para um padrão ou formato particular.
[00038] Em outros casos, o uso de um elemento de sintaxe para indicar uma restrição em relação à latência (por exemplo, latência de novo ordenamento de quadro) está fora de um padrão ou formato particular. Por exemplo, o elemento(s) de sintaxe que indica uma restrição em relação à latência pode ser sinalizado como parte da sintaxe de um fluxo de transmissão de mídia, arquivo de armazenamento de mídia ou, mais geralmente, um protocolo de multiplexação ou protocolo de transporte do sistema de mídia. Ou, o elemento(s) de sintaxe que indi-ca latência pode ser negociado entre as ferramentas de comunicação em tempo real 210, as ferramentas de codificação 212 e/ou as ferra- mentas de reprodução 214 de acordo com um protocolo de negociação de propriedade de mídia. Em tais casos, a ferramenta de comunicação em tempo real 210, a ferramenta de codificação 212 e a ferramenta de reprodução 214 com latência reduzida podem ser independente do codec, pelo fato que elas podem funcionar com qualquer codificador e decodificador de vídeo disponível, assumindo um nível de controle sobre a dependência entre os quadros estabelecidos durante a codificação.
III. Sistemas Codificadores Ilustrativos
[00039] A Figura 3 é um diagrama de blocos de um sistema codificador ilustrativo 300 em conjunto com o qual algumas concretizações descritas podem ser implementadas. O sistema codificador 300 pode ser uma ferramenta de codificação de propósito geral capaz de operação em qualquer um dos múltiplos modos de codificação, tais como um modo de codificação com baixa latência para comunicação em tempo real, modo de transcodificação, e modo de codificação normal para reprodução de mídia a partir de um arquivo ou fluxo, ou ele pode ser uma ferramenta de codificação de propósito especial adaptada para tal modo de codificação. O sistema codificador 300 pode ser implementado como um módulo de sistema operacional, como parte de uma biblioteca de aplicativo ou como um aplicativo independente. No geral, o sistema codificador 300 recebe uma sequência de quadros de vídeo fonte 311 a partir de uma fonte de vídeo 310 e produz dados codificados como saída para um canal 390. Os dados codificados emitidos para o canal podem incluir um ou mais elementos de sintaxe que indicam uma restrição em relação à latência (por exemplo, latência de nova ordenação de quadro) para facilitar a decodificação com latência reduzida.
[00040] A fonte de vídeo 310 pode ser uma câmera, uma placa sin- tonizadora, meio de armazenamento, ou outra fonte de vídeo digital. A fonte de vídeo 310 produz uma sequência de quadros de vídeo em uma taxa de quadros, por exemplo, de 30 quadros por segundo. Como utilizado neste documento, o termo “quadro" geralmente se refere aos dados de imagem fonte, codificados ou reconstruídos. Para vídeo progressivo, um quadro é um quadro de vídeo progressivo. Para vídeo entrelaçado, nas concretizações ilustrativas, um quadro de vídeo entrelaçado tem o entrelaçamento retirado antes da codificação. Alternativamente, dois campos de vídeo entrelaçados complementares são codificados como um quadro de vídeo entrelaçado ou campos separados. Ao lado de indicar um quadro de vídeo progressivo, o termo “quadro" pode indicar um único campo de vídeo não emparelhado, um par de campos de vídeo complementares, um plano de objeto de vídeo que representa um objeto vídeo em um dado momento, ou uma região de interesse em uma imagem maior. O plano ou região de objeto de vídeo pode ser parte de uma imagem maior que inclui múltiplos objetos ou regiões de uma cena.
[00041] Um quadro fonte de chegada 311 é armazenado em uma área de armazenamento em memória temporária de quadro fonte 320 que inclui múltiplas áreas de armazenamento de quadro em memória temporária 321, 322, ..., 32n. Uma memória temporária de quadro 321, 322, etc. mantém um quadro fonte na área de armazenamento de quadro fonte 320. Após um ou mis dos quadros fontes 311 terem sido armazenados nas memórias temporárias de quadro 321, 322, etc., um seletor de quadro 330 periodicamente seleciona um quadro fonte individual a partir da área de armazenamento de quadro fonte 320. A ordem, na qual quadros são selecionados pelo seletor de quadro 330 para entrada para o codificador 340 pode ser diferente da ordem na qual os quadros são produzidos pela fonte de vídeo 310, por exemplo, um quadro pode estar à frente na ordem, para facilitar a predição temporariamente para trás. Antes do codificador 340, o sistema codificador (300) pode incluir um pré-processador (não apresentado) que executa pré-processamento (por exemplo, filtragem) do quadro selecionado 331 antes da codificação.
[00042] O codificador 340 codifica o quadro selecionado 331 para produzir um quadro codificado 341 e também produz sinais de controle de gerenciamento de memória 342. Se o quadro corrente não for o primeiro quadro que foi codificado, quando executando seu processo de codificação, o codificador 340 pode utilizar um ou mais quadros anteriormente codificados / decodificados 369 que foram armazenados em uma área de armazenamento de quadro decodificado em memória temporária 360. Tais quadros decodificados armazenados 369 são uti-lizados como quadros de referência para predição entre os quadros do conteúdo do quadro fonte corrente 331. Geralmente, o codificador 340 inclui múltiplos módulos de codificação que executam tarefas de codificação tais como estimativa e compensação de movimento, transformações de frequência, quantização de codificação de entropia. As operações exatas executadas pelo codificador 340 podem variar dependendo do formato de compactação. O formato dos dados codificados de saída pode ser um formato de Vídeo de Mídia Windows, formato VC-1, formato MPEG-x (por exemplo, MPEG-1, MPEG-2, ou MPEG- 4), formato H.26x (por exemplo, H.261, H.262, H.263, H.264), formato HEVC ou outro formato.
[00043] Os quadros codificados 341 e os sinais de controle de gerenciamento de memória 342 são processados por um emulador de processo de decodificação 350. O emulador de processo de decodifi- cação (350) implementa algumas das funcionalidades de um decodifi- cador, por exemplo, tarefas de decodificação para reconstruir quadros de referência que são utilizados pelo codificador 340 em estimativa e compensação de movimento. O emulador de processo de decodifica- ção 350 utiliza os sinais de controle de gerenciamento de memória 342 para determinar se um dado quadro codificado 341 precisa ser reconstruído e armazenado para uso como um quadro de referência na predição entre quadros dos quadros subsequentes a serem codificados. Se os sinais de controle 342 indicarem que um quadro codificado 431 precisa ser armazenado, o emulador de processo de decodificação 350 modela o processo de decodificação que seria conduzido por um decodificador que recebe o quadro codificado 341 e produz um quadro decodificado correspondente 351. Ao fazer isso, quando o codificador 340 tiver utilizado o quadro(s) decodificado 369 que foi armazenado na área de armazenamento de quadro decodificado 360, o emulador de processo de decodificação 350 também utiliza o quadro(s) decodificado 369 a partir da área de armazenamento 360 como parte do processo de decodificação.
[00044] A área de armazenamento de quadro decodificado em memória temporária 360 inclui múltiplas áreas de armazenamento de quadro em memória temporária 361, 362, ..., 36n. O emulador de processo de decodificação 350 utiliza os sinais de controle de gerenciamento de memória 342 para gerenciar o conteúdo da área de armazenamento 360 de modo a identificar quaisquer memórias temporárias de quadro 361, 362, etc. com quadros que não são mais necessários pelo codificador 340 para uso como quadros de referência. Após modelar o processo de decodificação, o emulador de processo de decodi- ficação 350 armazena um quadro mais recentemente decodificado 351 em uma memória temporária de quadro (361, 362, etc. que foi identificada desta maneira.
[00045] Os quadros codificados 341 e os sinais de controle de gerenciamento de memória 342 são também colocados em memória temporária em uma área de dados codificados temporários 370. Os dados codificados que são agregados na área de dados codificados 370 podem conter, como parte da sintaxe de um fluxo de bits elemen- tar de vídeo codificado, um ou mais elementos de sintaxe que indicam uma restrição em relação à latência. Ou, os dados codificados que são agregados na área de dados codificados 370 podem incluir elementos de sintaxe que indicam uma restrição em relação à latência como parte de metadados de mídia se relacionando com dados de vídeo codificados (por exemplo, como um ou mais parâmetros em uma ou mais mensagens de informação de melhoramento suplementar (“SEI") ou mensagens de informação de usabilidade de vídeo (“VUI").
[00046] Os dados agregados 371 a partir da área temporária de dados codificados 370 são processados por um codificador de canal 380. O codificador de canal 380 pode colocar os dados agregados em pacotes para transmissão como um fluxo de mídia, caso no qual o codificador de canal 380 pode adicionar, como parte da sintaxe do fluxo de transmissão de mídia, o elemento(s) de sintaxe que indica uma restrição em relação à latência. Ou, o codificador de canal 380 pode organizar os dados agregados para armazenamento como um arquivo, caso no qual o codificador de canal 380 pode adicionar, como parte da sintaxe do arquivo de armazenamento de mídia, o elemento(s) de sintaxe que indica uma restrição em relação à latência. Ou, mais geralmente, o codificador de canal 380 pode implementar um ou mais protocolos de multiplexação ou protocolos de transporte de sistema de mídia, caso no qual o codificador de canal 380 pode adicionar, como parte da sintaxe do protocolo(s), o elemento(s) de sintaxe que indica uma restrição em relação à latência. O codificador de canal 380 proporciona saída para um canal 390, o qual representa armazenamento, uma conexão de comunicação, ou outro canal para a saída. IV. Sistemas Decodificadores Ilustrativos
[00047] A Figura 4 é um diagrama de blocos de um sistema decodi- ficador ilustrativo 400 em conjunto com o qual algumas concretizações descritas podem ser implementadas. O sistema decodificador 400 po- de ser uma ferramenta de decodificação de propósito geral capaz de operar em qualquer um dos múltiplos modos de decodificação tais como um modo de decodificação com baixa latência para comunicação em tempo real e modo de decodificação normal para reprodução de mídia a partir de um arquivo ou fluxo, ou ele pode ser uma ferramenta de decodificação de propósito especial adaptada para tal modo de de- codificação. O sistema decodificador 400 pode ser implementado como um módulo do sistema operacional, como parte de uma biblioteca de aplicativo ou como um aplicativo independente. No geral, o sistema decodificador 400 recebe dados codificados a partir de um canal 410 e produz quadros reconstruídos como saída para um destino de saída 490. Os dados codificados podem incluir um ou mais elementos de sintaxe que indicam uma restrição em relação à latência (por exemplo, latência de novo ordenamento de quadro) para facilitar a decodificação com latência reduzida.
[00048] O sistema decodificador 400 inclui um canal 410, o qual representa armazenamento, uma conexão de comunicação, ou outro canal para dados codificados como entrada. O canal 410 produz dados codificados que foram codificados por canal. Um decodificador de canal 420 pode processar os dados codificados. Por exemplo, o codificador de canal 420 retira a colocação em pacotes dos dados que foram agregados para transmissão como um fluxo de mídia, caso no qual o decodificador de canal 420 pode analisar, como parte da sintaxe do fluxo de transmissão de mídia, o elemento(s) de sintaxe que indica uma restrição em relação à latência. Ou, o decodificador de canal 420 separa dados de vídeo codificados que foram agregados para armazenamento como um arquivo, caso no qual o decodificador de canal 420 pode analisar, como parte da sintaxe do arquivo de armazenamento de mídia, o elemento(s) de sintaxe que indica uma restrição em relação à latência. Ou, mais geralmente, o decodificador de canal 420 pode implementar um ou mais protocolos de demultiplexação ou protocolos de transporte de sistema de mídia, caso no qual o decodifi- cador de canal 420 pode analisar, como parte da sintaxe do protoco- lo(s), o elemento(s) de sintaxe que indica uma restrição em relação à latência.
[00049] Os dados codificados 421 que são emitidos a partir do de- codificador de canal 420 são armazenados em uma área temporária de dados codificados 430 até que uma quantidade suficiente de tais dados tenha sido recebida. Os dados codificados 421 incluem quadros codificados 431 e sinais de controle de gerenciamento de memória 432. Os dados codificados 421 na área de dados codificados 430 podem conter, como parte da sintaxe de um fluxo de bits elementar de vídeo codificado, um ou mais elementos de sintaxe que indicam uma restrição em relação à latência. Ou, os dados codificados 421 na área de dados codificados 430 podem incluir o elemento(s) de sintaxe que indica uma restrição em relação à latência como parte dos metadados de mídia se relacionando com os dados de vídeo codificado (por exemplo, como um ou mais parâmetros em uma ou mais mensagens SEI ou mensagens VUI). Em geral, a área de dados codificados 430 temporariamente armazena dados codificados 421 até que tais dados codificados 421 sejam utilizados pelo decodificador (450). Neste ponto, dados codificados para um quadro codificado 431 e sinais de controle de gerenciamento de memória 432 são transferidos da área de dados codificados 430 para o decodificador 450. À medida que a decodifica- ção continua, novos dados codificados são adicionados para a área de dados codificados 430 e os dados codificados mais antigos permanecendo na área de dados codificados 430 são transferidos para o deco- dificador 450.
[00050] O decodificador 450 periodicamente decodifica um quadro codificado 431 para produzir um quadro decodificado correspondente 451. À medida que apropriado, quando executando seu processo de decodificação, o decodificador 450 pode utilizar um ou mais quadros anteriormente decodificados 469 como quadros de referência para predição entre quadros. O decodificador 450 lê tais quadros anteriormente decodificados 469 a partir de uma área de armazenamento de quadro decodificado em memória temporária 460. Geralmente, o de- codificador 450 inclui múltiplos módulos de decodificação que executam tarefas de decodificação tais como decodificação de entropia, quantização inversa, transformações de frequência inversas e com-pensação de movimento. As operações exatas executadas pelo deco- dificador 450 podem variar dependendo do formato de compactação.
[00051] A área de armazenamento de quadro decodificado em memória temporária 460 inclui múltiplas áreas de armazenamento de memória temporária de quadro 461, 462, ..., 46n. A área de armaze namento de quadro decodificado 460 é um exemplo de uma memória temporária de imagem decodificada. O decodificador 450 utiliza os sinais de controle de gerenciamento de memória 432 para identificar uma memória temporária de quadro 461, 462, etc. na qual ele pode armazenar um quadro decodificado 451. O decodificador 450 armazena o quadro decodificado 451 nesta memória temporária de quadro.
[00052] Um sequenciador de saída 480 utiliza os sinais de controle de gerenciamento de memória 432 para identificar quando o próximo quadro a ser produzido na ordem de saída está disponível na área de armazenamento de quadro decodificado 460. Para reduzir a latência do sistema de codificação - decodificação, o sequenciador de saída 480 utiliza elementos de sintaxe que indicam restrições em relação à latência para expedir identificação de quadros a serem produzidos na ordem de saída. Quando o próximo quadro 481 a ser produzido na ordem de saída está disponível na área de armazenamento de quadro decodificado 460, ele é lido pelo sequenciador de saída 480 e emitido para o destino de saída 490 (por exemplo, vídeo). Em geral, a ordem na qual os quadros são emitidos a partir da área de armazenamento de quadro decodificado 460 pelo sequenciador de saída 480 pode ser diferente da ordem na qual os quadros são decodificados pelo decodi- ficador 450. V. Elementos de Sintaxe que Facilitam a Codificação e Decodificação com Latência Reduzida
[00053] Na maioria dos sistemas codec de vídeo, a ordem codificada (também chamada de ordem de decodificação ou ordem do fluxo de bits) é a ordem na qual quadros de vídeo são representados em dados codificados em um fluxo de bits e, por consequência, processados durante a decodificação. A ordem codificada pode ser diferente da ordem na qual os quadros são capturados por uma câmera antes da codificação e diferente da ordem na qual quadros decodificados são exibidos, armazenados, ou de outro modo emitidos após a decodifica- ção (ordem de saída ou ordem de exibição). A reordenação de quadros em relação à ordem de saída possui benefícios (principalmente em termos de capacidade de compactação), mas ela aumenta a latên- cia de ponta a ponta dos processos de codificação e de decodificação.
[00054] Técnicas e ferramentas descritas neste documento reduzem latência devido à reordenação de quadros de vídeo e, por proporcionar informação sobre restrições em relação à latência de reordenação para os sistemas decodificadores, também facilita a redução de latência pelos sistemas decodificadores. Tal redução de latência é útil para vários propósitos. Por exemplo, ela pode ser utilizada para reduzir o tempo de resposta que ocorre em comunicação de vídeo interativo utilizando um sistema de vídeo conferência, de modo que o fluxo de conversação e de interatividade de comunicação entre participantes remotos será mais rápido e natural.
A. Abordagens para Sincronização de Saída e Ordenamento de Saída
[00055] De acordo com o padrão H.264, um decodificador pode utilizar duas abordagens para determinar quando um quadro decodificado está pronto para ser emitido. Um decodificador pode utilizar informação de sincronização na forma de marcas de tempo de decodifica- ção e marcas de tempo de saída (por exemplo, como sinalizados nas mensagens SEI de sincronização de imagem). Ou, o decodificador pode utilizar os limites de capacidade de colocação em memória temporária sinalizados com vários elementos de sintaxe para determinar quando um quadro decodificado está pronto para ser emitido.
[00056] A informação de sincronização pode ser associada com cada quadro decodificado. O decodificador pode utilizar a informação de sincronização para determinar quando um quadro decodificador pode ser emitido. Entretanto, na prática, tal informação de sincronização pode estar indisponível para um decodificador. Além disso, mesmo quando a informação de sincronização está disponível, alguns decodi- ficadores não realmente utilizam esta informação (por exemplo, devido a um decodificador ter sido designado para funcionar independente de se a informação de sincronização está disponível).
[00057] Os limites de capacidade de colocação em memória temporária são indicados com vários elementos de sintaxe de acordo com o padrão H.264 (e versões preliminares do padrão HEVC), incluindo o elemento de sintaxe max_dec_frame_buffering, o elemento de sintaxe num_reorder_frames, informação de ordenamento relativo (denominado informação de “contagem de ordem de imagem") e outras informações de controle de gerenciamento de memória sinalizadas no fluxo de bits. O elemento de sintaxe max_dec_frame_buffering (ou a variável derivada especificada como MaxDpbFrames) especifica o tamanho requerido de uma memória temporária de imagem decodificada (“DPB") em unidades de memórias temporárias de quadro. Assim, o elemento de sintaxe max_dec_frame_buffering expressa uma capacidade de memória de nível máximo utilizada para uma sequência de vídeo codificado, de modo a permitir a um decodificador emitir imagens na ordem correta. O elemento de sintaxe num_reorder_frames (ou max_num_reorder_frames) indica o número máximo de quadros (ou pares de campos complementares, ou campos não emparelhados) que podem preceder qualquer quadro (ou par de campos complementares, ou campos não emparelhados) na ordem codificada e seguem a mesma na ordem de saída. Em outras palavras, num_reorder_frames especifica uma restrição em relação à capacidade de memória necessária para reordenação de imagem. O elemento de sintaxe max_num_ref_frames especifica o número máximo de quadros de referência a curto prazo e a longo prazo (ou pares de campos de referência, ou campos de referência não emparelhados complementares) que podem ser utilizados pelo processo de decodificação para predição inter de qualquer imagem na sequência. O elemento de sintaxe max_num_ref_frames também determina o tamanho da janela corrediça para marcação da imagem de referência decodificada. Da mesma forma que num_reorder_frames, max_num_ref_frames especifica uma restrição em relação à capacidade de memória requerida.
[00058] Um decodificador utiliza os elementos de sintaxe max_dec_frame_buffering (ou MaxDpbFrames) e num_reorder_frames para determinar quando um limite de capacidade de colocação em memória temporária foi excedido. Isto acontece, por exemplo, quando um novo quadro decodificado precisa ser armazenado na DPB, mas não existe espaço disponível restante na DPB. Nesta situação, o de- codificador utiliza a informação de contagem de ordem de imagem para identificar, entre as imagens que foram decodificadas, qual é a mais antiga na ordem de saída. A imagem que é mais antiga na ordem de saída é então emitida. Tal processamento algumas vezes é chamado de “colisão" devido a uma imagem ser “empurrada para fora" da DPB pela chagada de uma nova imagem que precisa ser armazenada.
[00059] A informação indicada com os elementos de sintaxe max_dec_frame_buffering (ou MaxDpbFrames) e num_reorder_frames é suficiente para determinar a capacidade de memória necessária em um decodificador. Quando utilizada para controlar o processo de “colisão" para saída de imagem, entretanto, o uso de tal informação pode introduzir latência desnecessariamente. Como definido no padrão H.264, os elementos de sintaxe max_dec_frame_buffering e num_reorder_frames não estabelecem um limite em relação à quantidade de reordenação que possa ser aplicado para qualquer imagem particular e, por consequência, não estabelecem um limite em relação a uma latência de ponta a ponta. Independente dos valores destes elementos de sintaxe, uma imagem particular pode ser mantida na DPB durante um longo tempo arbitrário antes de ela ser emitida, o qual corresponde à substancial latência adicionada por pré-colocação em memória temporária das imagens fonte por um codificador.
B. Elementos de Sintaxe que Indicam Restrições Em Relação à Latên- cia de Reordenação de Quadro
[00060] Técnicas e ferramentas descritas neste documento reduzem latência em um sistema de comunicação de vídeo. Uma ferramenta de codificação, ferramenta de comunicação em tempo real, ou outra ferramenta estabelece um limite em relação à extensão de reordenação que pode ser aplicada para qualquer quadro em uma sequência de vídeo codificado. Por exemplo, o limite é expresso como um número de quadros que podem preceder qualquer dado quadro em uma sequência de vídeo codificado na ordem de saída e segue a mesma na ordem codificada. O limite restringe a latência de reordenação permitida para qualquer quadro particular na sequência. Dito de outra forma, o limite restringe a extensão temporal de reordenação (em termos de quadros) entre ordem codificada e ordem de saída que pode ser aplicada para qualquer quadro particular. Limitar a extensão de reordenação ajuda a reduzir o atraso de ponta a ponta. Além disso, estabelecer tal limite pode ser útil em protocolos de negociação de sistema em tempo real ou em especificações de aplicativo para cenários de uso nos quais reduzir latência é importante.
[00061] Um ou mais elementos de sintaxe indicam a restrição em relação à latência de reordenação de quadro. Sinalizar uma restrição em relação à latência de reordenação de quadro facilita a negociação em nível de sistema para comunicação em tempo real interativa e outros cenários de uso. Isto proporciona um modo para diretamente expressar restrições em relação à latência de reordenação de quadro e caracteriza propriedades de um fluxo ou sessão de mídia.
[00062] Um decodificador de vídeo pode utilizar uma restrição indi cada em relação à latência de reordenação de quadro para permitir emissão de quadros de vídeo decodificado com latência reduzida. Em particular, comparado com os processos de “colisão", sinalizar uma restrição em relação à latência de reordenação de quadro permite a um decodificador mais simplesmente e mais rapidamente identificar quadros em uma DPB que estão prontos para serem emitidos. Por exemplo, um decodificador pode determinar a condição de latência de um quadro na DPB por calcular a diferença entre ordem codificada para o quadro e ordem de saída. Por comparar a condição de latência do quadro para a restrição em relação à latência de reordenação de quadro, o decodificador pode determinar quando a restrição em relação à latência de reordenação de quadro foi alcançada. O decodificador pode imediatamente emitir qualquer quadro que tenha alcançado este limite. Isto pode ajudar o decodificador a mais rapidamente identificar quadros que estão prontos para emissão, comparado com processos de “colisão" que utilizam vários elementos de sintaxe e estruturas de rastreamento. Deste modo, o decodificador pode rapidamente (e mais cedo) determinar quando um quadro decodificado pode ser emitido. Quanto mais rapidamente (e mais cedo) o decodificador puder identificar quando quadros podem ser emitidos, mais rapidamente (e mais cedo) o decodificador pode emitir vídeo para um vídeo ou para estágios subsequentes de processamento.
[00063] Assim, utilizando a restrição em relação à latência de reordenação, um decodificador pode começar a emissão de quadros a partir da área de armazenamento de quadro decodificado antes da área de armazenamento de quadro decodificado estar cheia, mas ainda proporcionar decodificação adequada (isto é, decodificação de todos os quadros de modo que os quadros sejam combinações exatas de bits de quadros decodificados utilizando outro esquema convencional). Isto reduz de forma significativa o atraso quando o atraso (em quadros) indicado pelo elemento de sintaxe de latência é muito menor do que o tamanho (em quadros) da área de armazenamento de quadro decodificado.
[00064] As Figuras 5a até 5e ilustram séries (501 até 505) de quadros possuindo diferentes dependências entre quadros. As séries são caracterizadas por diferentes valores para (1) a restrição em relação à capacidade de memória necessária para reordenação de imagem (ou seja, o número de memórias temporárias de quadro utilizado para armazenar quadros de referência para propósito de reordenação, por exemplo, como indicado com um elemento de sintaxe num_reorder_frames, e (2) uma restrição em relação à latência de re-ordenação de quadro, por exemplo, como especificada por uma variável MaxLatencyFrames. Nas Figuras 5a até 5e, para um dado quadro F? } o subscrito indica posição do quadro na ordem de saída e o sobrescrito indica posição do quadro na ordem codificada. Os quadros são apresentados na ordem de saída - a valor do subscrito da ordem de saída aumenta a partir da esquerda para a direita. As setas ilustram as dependência entre os quadros para compensação de movimento, de acordo com a qual os quadros precedentes na ordem codificada são utilizados para predição de quadros subsequentes na ordem codificada. Por simplicidade, as Figuras 5a até 5e apresentam dependências entre quadros em nível de quadro (e não em nível de macroblo- cos, blocos, etc., na qual quadros de referência podem alterar), e as Figuras 5a até 5e apresentam no máximo dois quadros como quadros de referência para um dado quadro. Na prática, em algumas implementações, diferentes macroblocos, blocos, etc., em um dado quadro, podem utilizar diferentes quadros de referência, e mais do que dois quadros de referência podem ser utilizados para o dado quadro.
[00065] Na Figura 5a, a série (501) inclui nove quadros. O último quadro F81 na ordem de saída utiliza o primeiro quadro F00 como um quadro de referência. Os outros quadros na série (501) utilizam tanto o último quadro F81 como o primeiro quadro F00 como um quadro de referência. Isto significa que o quadro F00 é decodificado primeiro, seguido pelo quadro F81, seguido pelo quadro F12, etc.. Na série (501) apresentada na Figura 5a, o valor de num_reoder_frames é 1. Em qualquer ponto no processamento do sistema decodificador, entre os quadros apresentados na Figura 5a, existe somente um quadro (F81) armazenado na área de armazenamento de quadro decodificado para propósito de reordenação. (O primeiro quadro F00 também é utilizado como um quadro de referência e é armazenado, mas não é armazenado para propósito de reordenação. Devido à ordem de saída para o primeiro quadro F00 ser menor do que a ordem de saída dos quadros intermediários, o primeiro quadro F00 não é contado para propósito de num_reoder_frames). Independente do valor baixo para num_reorder_frames, a série (501) possui uma latência relativamente alta - o valor de MaxLatencyFrames é 7. Após codificar o primeiro quadro F00, o codificador aguarda até que ele tenha colocado em me mória temporária oito mais quadros fonte antes da codificação do próximo quadro F12 na ordem de saída, devido ao próximo quadro F12 depender do último quadro F81 na série (501). O valor de MaxLatencyFrames é efetivamente a diferença máxima permitida entre o valor subscrito e o valor sobrescrito para qualquer quadro codificado particular.
[00066] Na Figura 5b, a série (502) inclui nove quadros, como na série (501) da Figura 5a, mas as dependências entre quadros são diferentes. A reordenação temporal de quadros ocorre através de curtas extensões. Como resultado, a série (502) possui muito menos latência - o valor de MaxLatencyFrames é 1. O valor de num_reorder_frames ainda é 1.
[00067] Na Figura 5c, a série (503) inclui dez quadros. A dependência entre quadros mais longa é mais curta (na extensão temporal) do que a dependência entre quadros na Figura 5a, mas mais longa do que a dependência entre quadros mais longa na Figura 5b. A série (503) possui o mesmo valor baixo de 1 para num_reorder_frames, e ela possui um valor relativamente baixo de 2 para MaxLatencyFrames. Portanto, a série (503) permite uma latência de ponta a ponta menor do que a série (501) da Figura 5a, apesar de não tão baixa quando a latência que pode ser permitida da série (502) da Figura 5b.
[00068] Na Figura 5d, a série (504) inclui quadros organizados em uma hierarquia temporal com três camadas temporais de acordo com as dependência entre quadros. A camada de resolução temporal mais baixa inclui o primeiro quadro F00 e o último quadro F81. A próxima camada de resolução temporal adiciona o quadro F42, o qual depende do primeiro quadro F00 e do último quadro F81. A camada de resolução temporal mais alta adicionada os quadros restantes. A série (504) apresentada na Figura 5d possui um valor relativamente baixo de 2 para num_reorder_frames, mas um valor relativamente alto de 7 para MaxLatencyFrames, pelo menos para a camada de resolução temporal mais alta, devido à diferença entre a ordem codificada e a ordem de Aída para o último quadro F81. Se somente a camada de resolução temporal intermediária ou a camada de resolução temporal mais baixa for decodificada, a restrição em relação ao atraso de reordenação de quadro pode ser reduzida para 1 (para a camada intermediária) ou 0 (para a camada mais baixa). Para facilitar a decodificação com latên- cia reduzida nas várias resoluções temporais, os elementos de sintaxe podem indicar restrições em relação à latência de reordenação de quadro para diferentes camadas em uma hierarquia temporal.
[00069] Na Figura 5e, a série (505) inclui quadros organizados em uma hierarquia temporal com três camadas temporais de acordo com diferentes dependência entre quadros. A camada de resolução temporal mais baixa inclui o primeiro quadro F00, o quadro do meio F41 e o último quadro F85. A próxima camada de resolução temporal adiciona os quadros F22 (o qual depende do primeiro quadro F00 e do quadro do meio F41) e F66 ( o qual depende do quadro do meio F41 e do último quadro F85). A camada de resolução temporal mais alta adiciona os quadros restantes. Comparada com a série (504) da Figura 5d, a série (505) da Figura 5e ainda possui um valor relativamente baixo de 2 para num_reorder_frames, mas possui um valor inferior de 3 para MaxLatencyFrames, pelo menos para a camada de resolução temporal mais alta, devido à diferença entre a ordem codificada e a ordem de saída para o quadro do meio F41 e para o último quadro F85. Se somente a camada de resolução temporal intermediária ou a camada de resolução temporal mais baixa for decodificada, a restrição em relação ao atraso de reordenação de quadro pode ser reduzida para 1 (para a camada intermediária)ou 0 (para a camada mais baixa).
[00070] Nos exemplos apresentados nas Figuras 5a até 5e, se o valor de MaxLatencyFrames for conhecido, um decodificador pode identificar alguns quadros como estando prontos para emissão imediata ao receber o quadro precedente na ordem de saída. Para um dado quadro, o valor da ordem de saída do quadro menos o valor de ordem codificada do quadro pode ser igual ao valor de MaxLatencyFrames. Neste caso, o dado quadro está pronto para emissão assim que o quadro precedente ao mesmo na ordem de saída for recebido. (Em contraste, tais quadros não poderiam ser identificados como prontos para emissão utilizando num_reorder_frames sozinho até que quadros adicionais fossem recebidos ou o fim da sequência fosse alcançado). Em particular, um decodificador pode utilizar o valor de MaxLatencyFrames para permitir a saída antecipada dos seguintes quadros: • Na série (501) da Figura 5a, o quadro F81. • Na série (502) da Figura 5b, os quadros F21, F43, F55, e F87. • Na série (503) da Figura 5c, os quadros F31, F64, e F97. • Na série (504) da Figura 5d, o quadro F81. • Na série (505) da Figura 5e, os quadros F41 e F85.
[00071] Em adição, a declaração ou negociação do valor de MaxLatencyFrames em nível de sistema pode proporciona uma expressão resumida das características de latência do fluxo de bits ou da sessão de um modo que não é permitido pela medição da capacidade de armazenamento de reordenação e indicação de tal capacidade utilizando num_reorder_frames.
C. Implementações Ilustrativas
[00072] Elementos de sintaxe que indicam uma restrição em relação à latência de reordenação de quadro podem ser sinalizados de vários modos, dependendo da implementação. Os elementos de sintaxe podem ser sinalizados como parte de um conjunto de parâmetros de sequência (“SPS"), conjunto de parâmetros de imagem (“PPS"), ou de outro elemento do fluxo de bits, sinalizados como parte de mensagens SEI. Mensagens VUI ou outros metadados, ou sinalizados de algum outro modo. Em qualquer uma das implementações, um elemento de sintaxe indicando um valor de restrição pode ser codificado utilizando a codificação de Golomb exponencial não sinalizada, alguma outra forma de codificação de entropia, ou codificação de comprimento fixo, e então sinalizado. Um decodificador executa a decodificação correspondente após receber o elemento de sintaxe.
[00073] Em uma primeira implementação, um indicador max_latency_limitation_flag é sinalizado. Se o indicador possui um primeiro valor binário (por exemplo, 0), nenhuma restrição em relação à latência de reordenação de quadro é imposta. Neste caso, o valor de um elemento de sintaxe max_latency_frames não é sinalizado ou é ignorado. Caso contrário (o indicador possuindo um segundo valor binário tal como 1), o valor de um elemento de sintaxe max_latency_frames é sinalizado para indicar a restrição em relação à latência de reordenação de quando. Por exemplo, neste caso, o valor sinalizado para o elemento de sintaxe max_latency_frames pode ser qualquer valor inteiro não negativo.
[00074] Em uma segunda implementação, um elemento de sintaxe max_latency_frames_plus1 é sinalizado para indicar a restrição em relação à latência de reordenação de quadro. Se max_latency_frames_plus1 possui um primeiro valor (por exemplo, 0), nenhuma restrição em relação à latência de reordenação de quadro é imposta. Para outros valores (por exemplo, valores que não são zero), o valor da restrição em relação à latência de reordenação de quadro é estabelecido para max_latency_frames_plus1 - 1. Por exemplo, o va lor de max_latency_frames_plus1 está na faixa de 0 até 232 - 2, inclusive.
[00075] De forma similar, em uma terceira implementação, um elemento de sintaxe max_latency_frames é sinalizado para indicar a res- trição em relação à latência de reordenação de quando. Se max_latency_frames possuir um primeiro valor (por exemplo, um valor máximo), nenhuma restrição em relação à latência de reordenação de quadro é imposta. Para outros valores (por exemplo, valores menores do que o valor máximo), o valor da restrição em relação à latência de reordenação de quadro é estabelecido para max_latency_frames.
[00076] Em uma quarta implementação, a restrição em relação à latência de reordenação de quadro é indicada em relação a um tamanho máximo da memória de quadro. Por exemplo, a restrição de latên- cia é sinalizada como um aumento relativo ao elemento de sintaxe num_reorder_frames. Normalmente, a restrição em relação à latência de reordenação de quadro (em termos de quadros) é maior ou igual a num_reorder_frames. Para economizar bits na sinalização da restrição de latência, a diferença entre a restrição de latência e num_reorder_frames é codificada (por exemplo, utilizando codificação de Golomb exponencial não sinalizada, alguma outra forma de codificação de entropia) e então sinalizada. Um elemento de sintaxe max_latency_increase_plus1 é sinalizado para indicar a restrição em relação à latência de reordenação de quadro. Se max_latency_increase_plus1 possui um primeiro valor (por exemplo, 0), nenhuma restrição em relação à latência de reordenação de quadro é imposta. Para outros valores (por exemplo, valores que não são zero), o valor da restrição em relação à latência de ordenação de quadro é estabelecido para num_reorder_frames + max_latency_increase_plus1 - 1. Por exemplo, o valor de max_latency_increase_plus1 está na faixa de 0 até 232 - 2, inclusive.
[00077] Alternativamente, um ou mais elementos de sintaxe que indicam uma restrição em relação à latência de reordenação de quadro são sinalizados de algum outro modo.
D. Outros Modos para Indicar Restrições em Relação à Latência.
[00078] Nos vários exemplos precedentes, a restrição em relação à latência é uma restrição em relação à latência de reordenação de quadro que é expressa em termos de uma contagem de quadros. Mais geralmente, a restrição em relação à latência é uma restrição em relação ao atraso que pode ser expressa em termos de uma contagem de quadros ou expressa em termos de segundos, milissegundos ou de outra medida de tempo. Por exemplo, a restrição em relação á latência pode ser expressa como uma medida de tempo absoluta tal como 1 segundo ou 0,5 segundos. Um codificador pode converter tal medida de tempo para uma contagem de quadros (considerando a taxa de quadros de vídeo), então, codificar o vídeo de modo que as dependências entre os quadros entre os múltiplos quadros de uma sequência de vídeo sejam consistentes com a contagem de quadros. Ou, independente da reordenação de quadro e das dependências entre os quadros, o codificador pode utilizar a medida de tempo para limitar a extensão até a qual o atraso é utilizado para suavizar flutuações a curto prazo na taxa de bits do vídeo codificado, na complexidade da codificação, na largura de banda da rede, etc. Um decodificador pode utilizar esta medida de tempo para determinar quando um quadro pode ser emitido a partir de uma memória temporária de imagem decodificada.
[00079] A restrição em relação à latência pode ser negociada entre um lado do transmissor e o lado do receptor de modo a negociar a rapidez de resposta (ausência de atraso) com habilidade para suavizar as flutuações a curto prazo na taxa de bits de vídeo codificado, habilidade para suavizar as flutuações a curto prazo na complexidade da codificação, habilidade para suavizar flutuações a curto prazo na largura de banda da rede e/ou outro fator que se beneficia do atraso au-mentado. Em tais negociações, pode ser útil estabelecer e caracterizar a restrição em relação à latência de um modo que seja independente da taxa de quadros. Então, a restrição pode ser aplicada durante a codificação e a decodificação, considerando a taxa de quadros do vídeo. Ou, a restrição pode ser aplicada durante a codificação e a decodifica- ção independente da taxa de quadros do vídeo.
E. Técnicas Generalizadas para Estabelecer e Emitir Elementos de Sintaxe.
[00080] A Figura 6 apresenta uma técnica ilustrativa (600) para estabelecer e emitir elementos de sintaxe que facilitam decodificação com latência reduzida. Por exemplo, uma ferramenta de comunicação em tempo real ou ferramenta de codificação descrita com referência à Figura 2a e à Figura 2b executa a técnica (600). Alternativamente, outra ferramenta executa a técnica (600).
[00081] Para iniciar, a ferramenta estabelece (610) um ou mais elementos de sintaxe que indicam uma restrição em relação à latência (por exemplo, latência de reordenação de quadro, latência em termos de uma medida de tempo) consistente com dependência entre os quadros entre os múltiplos quadros de uma sequência de vídeo. Quando a ferramenta inclui um codificador de vídeo, a mesma ferramenta também pode receber os quadros, codificar os quadros para produzir dados codificados (utilizando as dependências entre os quadros que são consistentes com a restrição em relação à latência de reordenação de quadro), e emitir os dados codificados para armazenamento ou transmissão.
[00082] Tipicamente, uma restrição em relação à latência de reordenação de quadro é uma latência de reordenação permitida para qualquer quadro na sequência de vídeo. Entretanto, a restrição pode ser expressa de vários modos e possuir vários outros significados. Por exemplo, a restrição pode ser expressa em termos de uma contagem máxima de quadros que podem preceder um dado quadro na ordem de saída, mas seguindo o dado quadro na ordem codificada. Ou, a restrição pode ser expressa como uma diferença máxima entre a ordem codificada e a ordem de saída para qualquer quadro na sequência de vídeo. Ou, focando em relação a um quadro individual, a restrição pode ser expressa como a latência de reordenação associada com um dado quadro específico na sequência de vídeo. Ou, focando em um grupo de quadros, a restrição pode ser expressa como a latên- cia de reordenação associada com o grupo de quadros na sequência de vídeo. Ou, a restrição pode ser expressa de algum outro modo.
[00083] A seguir, a ferramenta emite (620) o elemento(s) de sintaxe. Isto facilita a determinação de quando os quadros reconstruídos estão prontos para emissão em termos de ordem de saída dos múltiplos quadros. O elemento(s) de sintaxe pode ser emitido como parte de um conjunto de parâmetros da sequência ou conjunto de parâmetros da imagem em um fluxo de bits de vídeo codificado, como parte de sintaxe para arquivo de armazenamento de mídia ou fluxo de transmissão de mídia que também inclui dados codificados para os quadros, como parte de um protocolo de negociação de propriedades de mídia (por exemplo, durante a troca valores de parâmetro de fluxo ou de sessão em negociação em nível de sistema), como parte de informação do sistema de mídia multiplexada com dados codificados para os quadros, ou como parte de metadados de mídia se relacionando com dados codificados para os quadros (por exemplo, nas mensagens SEI ou mensagens VUI). Diferentes elementos de sintaxe podem ser emitidos para indicar requerimentos de capacidade de memória. Por exemplo, um elemento de sintaxe de tamanho de memória temporária (tal como max_dec_frame_buffering) pode indicar o tamanho máximo de uma DPB, e um elemento de sintaxe de memória de quadro (tal como num_reorder_frames) pode indicar o tamanho máximo da memória de quadro para reordenação.
[00084] O valor da restrição em relação à latência pode ser repre- sentado de vários modos, como descrito na seção V.C. Por exemplo, a ferramenta emite um indicador que indica a presença ou ausência do elemento(s) de sintaxe. Se o indicador indicar que os elementos de sintaxe estão ausentes, então, a restrição em relação à latência é indefinida ou possui um valor preestabelecido. Caso contrário, o elemen- to(s) de sintaxe segue e indica a restrição em relação à latência. Ou, um valor do elemento(s) de sintaxe que indica a restrição em relação à latência é indefinido ou possui um valor preestabelecido, e outros valores possíveis do elemento(s) de sintaxe indicam uma contagem de número inteiro para a restrição em relação à latência. Ou, para casos nos quais a restrição em relação à latência é uma restrição em relação à latência de reordenação de quando, um dado valor do elemento(s) de sintaxe indica uma contagem de número inteiro para a restrição em relação à latência de reordenação de quadro em relação a um tamanho máximo da memória de quadro para reordenação, o que é indicado com um elemento de sintaxe diferente tal como num_reorder_frames. Alternativamente, a restrição em relação à la- tência é representada de algum outro modo.
[00085] Em algumas implementações, os quadros da sequência de vídeo são organizados de acordo com uma hierarquia temporal. Neste caso, diferentes elementos de sintaxe podem indicar diferentes restrições em relação à latências de reordenação de quadro para diferentes camadas temporais da hierarquia temporal.
F. Técnicas Generalizadas para Receber e Utilizar Elementos de Sintaxe.
[00086] A Figura 7 apresenta uma técnica ilustrativa (700) para receber e utilizar elementos de sintaxe que facilitam a decodificação com latência reduzida. Por exemplo, uma ferramenta de comunicação em tempo real ou ferramenta de reprodução descria com referência às Figuras 2a e 2b executa a técnica (700). Alternativamente, outra ferra- menta executa a técnica (700).
[00087] Para iniciar, a ferramenta recebe e analisa (710) um ou mais elementos de sintaxe que indicam uma restrição em relação à la- tência (por exemplo, latência de reordenação de quadro, latência em termos de uma medida de tempo). Por exemplo, a análise inclui ler o um ou mais elementos de sintaxe que indicam a restrição em relação à latência a partir do fluxo de bits. A ferramenta também recebe (720) dados codificados para múltiplos quadros de uma sequência de vídeo. A ferramenta pode analisar o elemento(s) de sintaxe e, baseada no elemento(s) de sintaxe, determinar a restrição em relação à latência. Tipicamente, uma restrição em relação à latência de reordenação de quadro é uma latência de reordenação permitida para qualquer quadro na sequência de vídeo. A restrição pode ser expressa de vários modos, entretanto, e possuir vários outros significados, como descritos na seção anterior. O elemento(s) de sintaxe pode ser sinalizado como parte de um conjunto de parâmetros da sequência ou conjunto de parâmetros da imagem em um fluxo de bits elementar de vídeo codificado, como parte de sintaxe para arquivo de armazenamento de mídia ou fluxo de transmissão de mídia, como parte de um protocolo de negociação de propriedades de mídia, como parte da informação do sistema de mídia multiplexada com dados codificados, ou como parte de metadados de mídia se relacionando com os dados codificados. A ferramenta pode receber e analisar diferentes elementos de sintaxe que indicam requerimentos de capacidade de memória, por exemplo, um elemento de sintaxe de tamanho de memória temporária tal como max_dec_frame_buffering e um elemento de sintaxe de memória de quadro tal como num_reorder_frames.
[00088] O valor da restrição em relação à latência pode ser repre sentado de vários modos, como descrito na seção V.C. Por exemplo, a ferramenta recebe um indicador que indica a presença ou ausência do elemento(s) de sintaxe. Se o indicador indicar que o elemento(s) de sintaxe está ausente, então a restrição em relação à latência é indefinida ou possui um valor preestabelecido. Caso contrário, o elemen- to(s) de sintaxe segue e indica a restrição em relação à latência. Ou, um valor do elemento(s) de sintaxe que indica restrição em relação à latência é indefinido ou possui um valor preestabelecido, e outros valores possíveis do elemento(s) de sintaxe indicam uma contagem de número inteiro para a restrição em relação à latência. Ou, para casos nos quais a restrição em relação à latência é uma restrição em relação à latência de reordenação de quadro, um dado valor do elemento(s) de sintaxe indica uma contagem de número inteiro para a restrição em relação à latência de reordenação de quadro em relação a um tamanho máximo da memória de quadro para a reordenação, o que é indicado com um elemento de sintaxe diferente tal como num_reorder_frames. Alternativamente, a restrição em relação à latência é sinalizada de algum outro modo.
[00089] Retornando para a Figura 7, a ferramenta decodifica (730) pelo menos alguns dos dados codificados para reconstruir um dos quadros. A ferramenta emite (740) o quadro reconstruído. Ao fazer isso, a ferramenta pode utilizar a restrição em relação à latência para determinar quando o quadro reconstruído está pronto para emissão, por exemplo, em termos de ordem de saída dos quadros da sequência de vídeo.
[00090] Em algumas implementações, os quadros da sequência de vídeo são organizados de acordo com uma hierarquia temporal. Neste caso, diferentes elementos de sintaxe podem indicar diferentes restrições em relação às latências de reordenação de quadro para diferentes camadas temporais da hierarquia temporal. A ferramenta pode selecionar uma das diferentes restrições em relação às latências de reordenação de quadro dependendo da resolução temporal da saída.
[00091] Em vista das várias concretizações possíveis junto às quais os princípios da invenção revelada podem ser aplicados, deve ser reconhecido que as concretizações ilustradas são somente exemplos preferidos da invenção e não devem ser consideradas como limitando o escopo da invenção. Ao invés disso, o escopo da invenção é definido pelas reivindicações seguinte. Portanto, reivindico como minha invenção tudo que esteja dentro do escopo e do espírito destas reivindicações.

Claims (33)

1. Método em um sistema de computação que implementa um decodificador de vídeo caracterizado pelo fato de que compreende as etapas de: receber e analisar um elemento de sintaxe que indica um tamanho máximo de memória de quadro para reordenação, em que o tamanho máximo de memória de quadro para reordenação está expresso em termos de uma contagem máxima de quadros que pode preceder a qualquer quadro de uma sequência de vídeo em ordem codificada mas seguindo o quadro na ordem de saída; receber e analisar um ou mais elementos de sintaxe diferentes que indicam uma restrição na latência de reordenamento de quadro, em que a restrição na latência de reordenamento de quadro é expressa em termos de uma contagem máxima de quadros que podem preceder qualquer quadro da sequência de vídeo na ordem de saída mas segue o quadro na ordem codificada; receber os dados codificados para múltiplos quadros da sequência de vídeo; com o decodificador vídeo, decodificar pelo menos alguns dos dados codificados para reconstituir um dos múltiplos quadros; e emitir o quadro reconstruído.
2. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que compreende ainda: determinar a restrição na latência de reordenamento de quadro baseada em um ou mais dos elementos de sintaxe diferente; e utilizar a restrição na latência de reordenamento de quadro para determinar quando o quadro reconstruído está pronto para emitir em termos de ordem dos saída dos múltiplos quadros da sequência de vídeo.
3. Método, de acordo com a reivindicação 2, caracterizado pelo fato de que os múltiplos quadros da sequência de vídeo são or-ganizados de acordo com uma hierarquia temporal, em que diferentes elementos de sintaxe de um ou mais elementos de sintaxe diferentes indicam diferentes restrições nas latências de reordenamento de qua-dro para diferentes camadas temporais da hierarquia temporal, o mé-todo compreendendo ainda selecionar uma das diferentes restrições nas latências de reordenamento de quadro dependendo da resolução temporal da saída.
4. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que a restrição na latência de reordenamento de quadro define uma diferença máxima entre a ordem codificada e a ordem de saída para qualquer quadro na sequência de vídeo.
5. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um ou mais elementos de sintaxe diferentes e os dados codificados são sinalizados como parte de uma sintaxe para um fluxo de bits de vídeo codificado, o método ainda compreendendo: receber e analisar um elemento de sintaxe tamanho de buffer que indica o tamanho máximo de um buffer de imagem descodificada, em que o elemento de sintaxe de tamanho de buffer é diferente de um ou mais elementos de sintaxe diferentes que indicam a restrição na latência de reordenamento de quadro.
6. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um ou mais dos elementos de sintaxe diferentes são sinalizados como parte de um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, sintaxe para um arquivo de armazenamento de mídia que inclui também os dados codificados, sintaxe para um fluxo de transmissão de mídia que também inclui os dados codificados, um protocolo de negociação de propriedades de mí-dia, informação do sistema de mídia multiplexado com os dados codificados ou metadados de mídia relacionados aos dados codificados.
7. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende: receber um sinal que indica a presença ou ausência de um ou mais elementos de sintaxe diferentes, em que se o sinal indica que um ou mais elementos de sintaxe diferentes estão ausentes, então a restrição no quadro na latência de reordenamento de quadro é indefinido ou tem um valor predefinido.
8. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um valor possível de um ou mais elementos de sintaxe diferentes indica que a restrição na latência de reordenamento de quadro é indefinida ou tem um valor predefinido, e em que outros valores possíveis de um ou mais elementos de sintaxe diferentes indicam um contador inteiro para a restrição na latência de reordenamento de quadro.
9. Método, de acordo com a reivindicação 1, caracterizado pelo fato de que um valor de um ou mais dos diferentes elementos de sintaxe indica um contador inteiro para a restrição na latência de reor- denamento de quadro em relação ao tamanho máximo da memória do quadro para reordenamento.
10. Método, de acordo com a reivindicação 9, caracterizado pelo fato de que a restrição na latência de reordenamento de quadro pode ser determinada como a contagem máximo para o tamanho máximo da memória do quadro reordenar mais o contador inteiro para a restrição na latência de reordenamento de quadro menos 1.
11. Método em um sistema de computação, caracterizado pelo fato de que compreende as etapas de: ajustar um elemento de sintaxe que indica um tamanho máximo da memória do quadro para reordenar, em que o tamanho máximo da memória do quadro para reordenar está expresso em termos de um contador máximo de quadros que pode preceder qualquer quadro de uma sequência de vídeo em ordem codificada mas seguem o quadro na ordem de saída; ajustar um ou mais elementos de sintaxe diferentes que indicam uma restrição na latência de reordenamento de quadro consistente com as dependências entre os quadros entre múltiplos quadros da sequência de vídeo, em que a restrição na latência de reordena- mento de quadro é expressa em termos de uma contagem máxima de quadros que podem preceder qualquer quadro da sequência de vídeo na ordem de saída mas seguem o quadro na ordem codificada; e emitir um ou mais elementos de sintaxe diferentes, facilitando assim a determinação de quando os quadros reconstruídos estão prontos para emitir em termos de ordem de saída os múltiplos quadros.
12. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que o sistema de computação implementa um codificador de vídeo, o método ainda compreendendo: receber os múltiplos quadros da sequência de vídeo; com o codificador de vídeo, codificar os múltiplos quadros para produzir dados codificados, em que a codificação utiliza as dependências entre quadros que são consistentes com a restrição na la- tência de reordenamento de quadro; e emitir os dados codificados para armazenamento ou transmissão.
13. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que um ou mais elementos de sintaxe diferentes e os dados codificados são emitidos como parte da sintaxe para um fluxo de bits de vídeo codificado, o método ainda compreendendo: emitir um elemento de sintaxe de tamanho de buffer que indica o tamanho máximo de um buffer de imagem decodificada, em que o elemento de sintaxe de tamanho de buffer é diferente de um ou mais elementos de sintaxe diferentes que indicam a restrição na latência de reordenamento de quadro.
14. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que um ou mais elementos de sintaxe diferentes são emitidos como parte de um conjunto de parâmetros de sequência, um conjunto de parâmetros de imagem, sintaxe para um arquivo de armazenamento de mídia que inclui também dados codificados para os múltiplos quadros, sintaxe para um fluxo de transmissão de mídia que inclui também dados codificados para os múltiplos quadros, um protocolo de negociação de propriedades de mídia, informação do sistema de mídia multiplexados com dados codificados para os múltiplos quadros ou metadados de mídia relativos a dados codificados para os múltiplos quadros.
15. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que ainda compreende: emitir um sinal que indica a presença ou ausência de um ou mais elementos de sintaxe diferentes, em que se o sinal indica que um ou mais elementos de sintaxe diferentes estão ausentes, então a restrição na latência de reordenamento de quadro é indefinida ou tem um valor predefinido.
16. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que um valor possível de um ou mais elementos de sintaxe diferentes indica que a restrição na latência de reordenamento de quadro é indefinida ou tem um valor predefinido, e em que outros valores possíveis de um ou mais elementos de sintaxe diferentes indicam um contador inteiro para a restrição na latência de reordenamento de quadro.
17. Método, de acordo com a reivindicação 11, caracterizado pelo fato de que um valor de um ou mais dos diferentes elementos de sintaxe indica um contador inteiro para a restrição na latên- cia de reordenamento de quadro em relação ao tamanho máximo de memória do quadro para reordenamento.
18. Método, de acordo com a reivindicação 17, caracterizado pelo fato de que a restrição na latência de reordenamento de quadro pode ser determinada como a contagem máximo para o tamanho máximo da memória do quadro reordenar mais o contador inteiro para a restrição na latência de reordenamento de quadro menos 1.
19. Sistema de computação compreendendo um processador, memória e armazenamento que implementam um decodificador de vídeo adaptado para realizar um método caracterizado pelo fato de que compreende: receber e analisar um elemento de sintaxe que indica um tamanho máximo de memória de quadro para reordenação, em que o tamanho máximo de memória de quadro para reordenação é expresso em termos de uma contagem máxima de quadros que pode preceder a qualquer quadro de uma sequência de vídeo em ordem codificada mas segue o quadro na ordem de saída; receber e analisar um ou mais elementos de sintaxe diferentes que indicam uma restrição na latência de reordenamento de quadro; determinar a restrição na latência de reordenamento de quadro com base em um ou mais elementos de sintaxe diferentes, em que a restrição na latência de reordenamento de quadro é expressa em termos de uma contagem máxima de quadros que pode preceder qualquer quadro da sequência de vídeo na ordem de saída mas segue o quadro na ordem codificada; receber os dados codificados para múltiplos quadros da sequência de vídeo; com o decodificador vídeo, decodificando pelo menos alguns dos dados codificados para reconstituir um dos múltiplos qua- dros; e emitir o quadro reconstruído, incluindo usar a restrição na latência de reordenamento de quadro para determinar quando o quadro reconstruído está pronto para ser emitido em termos da ordem de saída dos múltiplos quadros da sequência de vídeo.
20. Sistema de computação, de acordo com a reivindicação 19, caracterizado pelo fato de que um ou mais elementos de sintaxe diferentes são sinalizados como parte de um conjunto de parâmetro de sequência ou metadados de media relativos aos dados codificados para os múltiplos quadros.
21. Sistema de computação, de acordo com a reivindicação 19, caracterizado pelo fato de que um valor de um ou mais elementos de sintaxe diferentes indica uma contagem inteira para a restrição na latência de reordenamento de quadro em relação a um tamanho máximo da memória de quadro para reordenamento.
22. Sistema de computação, de acordo com a reivindicação 21, caracterizado pelo fato de que a restrição na latência de reorde- namento de quadro pode ser determinada como a contagem máximo para o tamanho máximo da memória do quadro reordenar mais o contador inteiro para a restrição na latência de reordenamento de quadro menos 1.
23. Meio legível por computador que armazena instruções executáveis por computador para fazer com que um sistema de computação programado para assim realizar um método, o meio legível por computador sendo selecionado a partir do grupo consistindo de uma memória não-volátil e um dispositivo de armazenamento, caracterizado pelo fato de que compreende: receber e analisar um elemento de sintaxe que indica um tamanho máximo de memória de quadro para reordenação, em que o tamanho máximo de memória de quadro para reordenação está ex- presso em termos de uma contagem máxima de quadros que pode preceder a qualquer quadro de uma sequência de vídeo em ordem codificada mas seguindo o quadro na ordem de saída; receber e analisar um ou mais elementos de sintaxe diferentes que indicam uma restrição na latência de reordenamento de quadro, em que a restrição na latência de reordenamento de quadro é expressa em termos de uma contagem máxima de quadros que podem preceder qualquer quadro da sequência de vídeo na ordem de saída mas segue o quadro na ordem codificada; receber os dados codificados para múltiplos quadros da sequência de vídeo; com o decodificador vídeo, decodificar pelo menos alguns dos dados codificados para reconstituir um dos múltiplos quadros; e emitir o quadro reconstruído.
24. Meio legível por computador, de acordo com a reivindicação 23, caracterizado pelo fato de que compreende ainda: determinar a restrição na latência de reordenamento de quadro baseada em um ou mais dos elementos de sintaxe diferente; e utilizar a restrição na latência de reordenamento de quadro para determinar quando o quadro reconstruído está pronto para emitir em termos de ordem dos saída dos múltiplos quadros da sequência de vídeo.
25. Meio legível por computador, de acordo com a reivindicação 23, caracterizado pelo fato de que os múltiplos quadros da sequência de vídeo são organizados de acordo com uma hierarquia temporal, em que diferentes elementos de sintaxe de um ou mais elementos de sintaxe diferentes indicam diferentes restrições nas latên- cias de reordenamento de quadro para diferentes camadas temporais da hierarquia temporal, compreendendo ainda selecionar uma das diferentes restrições nas latências de reordenamento de quadro depen- dendo da resolução temporal da saída.
26. Meio legível por computador, de acordo com a reivindicação 23, caracterizado pelo fato de que um valor de um ou mais dos diferentes elementos de sintaxe indica um contador inteiro para a restrição na latência de reordenamento de quadro em relação ao tamanho máximo da memória do quadro para reordenamento.
27. Meio legível por computador, de acordo com a reivindicação 26, caracterizado pelo fato de que a restrição na latência de reordenamento de quadro pode ser determinada como a contagem máximo para o tamanho máximo da memória do quadro reordenar mais o contador inteiro para a restrição na latência de reordenamento de quadro menos 1.
28. Meio legível por computador que armazena instruções executáveis por computador para fazer com que um sistema de computação programado para assim realizar um método, o meio legível por computador sendo selecionado a partir do grupo consistindo de uma memória não-volátil e um dispositivo de armazenamento, caracterizado pelo fato de que compreende: ajustar um elemento de sintaxe que indica um tamanho máximo da memória do quadro para reordenar, em que o tamanho máximo da memória do quadro para reordenar está expresso em termos de um contador máximo de quadros que pode preceder qualquer quadro de uma sequência de vídeo em ordem codificada mas seguem o quadro na ordem de saída; ajustar um ou mais elementos de sintaxe diferentes que indicam uma restrição na latência de reordenamento de quadro consistente com as dependências entre os quadros entre múltiplos quadros da sequência de vídeo, em que a restrição na latência de reordena- mento de quadro é expressa em termos de uma contagem máxima de quadros que podem preceder qualquer quadro da sequência de vídeo na ordem de saída mas seguem o quadro na ordem codificada; e emitir um ou mais elementos de sintaxe diferentes, facilitando assim a determinação de quando os quadros reconstruídos estão prontos para emitir em termos de ordem de saída os múltiplos quadros.
29. Meio legível por computador, de acordo com a reivindicação 28, caracterizado pelo fato de que um valor de um ou mais dos diferentes elementos de sintaxe indica um contador inteiro para a restrição na latência de reordenamento de quadro em relação ao tamanho máximo de memória do quadro para reordenamento.
30. Meio legível por computador, de acordo com a reivindicação 29, caracterizado pelo fato de que a restrição na latência de reordenamento de quadro pode ser determinada como a contagem máximo para o tamanho máximo da memória do quadro reordenar mais o contador inteiro para a restrição na latência de reordenamento de quadro menos 1.
31. Sistema de computação que compreende um processador, memória e armazenamento que implementam um codificador de vídeo adaptado para realizar um método caracterizado pelo fato de que compreende: ajustar um elemento de sintaxe que indica um tamanho máximo da memória do quadro para reordenar, em que o tamanho máximo da memória do quadro para reordenar está expresso em termos de um contador máximo de quadros que pode preceder qualquer quadro de uma sequência de vídeo em ordem codificada mas seguem o quadro na ordem de saída; ajustar um ou mais elementos de sintaxe diferentes que indicam uma restrição na latência de reordenamento de quadro consistente com as dependências entre os quadros entre múltiplos quadros da sequência de vídeo, em que a restrição na latência de reordena- mento de quadro é expressa em termos de uma contagem máxima de quadros que podem preceder qualquer quadro da sequência de vídeo na ordem de saída mas seguem o quadro na ordem codificada; receber os múltiplos quadros da sequência de vídeo; com o codificador de vídeo, codificar os múltiplos quadros para produzir dados codificados, em que a codificação utiliza as dependências entre quadros que são consistentes com a restrição na la- tência de reordenamento de quadro; emitir um ou mais elementos de sintaxe diferentes, facilitando assim a determinação de quando os quadros reconstruídos estão prontos para serem emitidos em termos da ordem de saída dos múltiplos quadros; e emitir os dados codificados para armazenamento ou transmissão.
32. Sistema de computação, de acordo com a reivindicação 31, caracterizado pelo fato de que um valor de um ou mais dos diferentes elementos de sintaxe indica um contador inteiro para a restrição na latência de reordenamento de quadro em relação ao tamanho máximo de memória do quadro para reordenamento.
33. Sistema de computação, de acordo com a reivindicação 32, caracterizado pelo fato de que a restrição na latência de reorde- namento de quadro pode ser determinada como a contagem máximo para o tamanho máximo da memória do quadro reordenar mais o contador inteiro para a restrição na latência de reordenamento de quadro menos 1.
BR112013033552-1A 2011-06-30 2011-10-11 Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação BR112013033552B1 (pt)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161571553P 2011-06-30 2011-06-30
US61/571,553 2011-06-30
US13/270,969 US8837600B2 (en) 2011-06-30 2011-10-11 Reducing latency in video encoding and decoding
US13/270,969 2011-10-11
PCT/US2011/055835 WO2013002818A1 (en) 2011-06-30 2011-10-11 Reducing latency in video encoding and decoding

Publications (2)

Publication Number Publication Date
BR112013033552A2 BR112013033552A2 (pt) 2017-02-07
BR112013033552B1 true BR112013033552B1 (pt) 2022-02-22

Family

ID=47390681

Family Applications (1)

Application Number Title Priority Date Filing Date
BR112013033552-1A BR112013033552B1 (pt) 2011-06-30 2011-10-11 Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação

Country Status (28)

Country Link
US (20) US8837600B2 (pt)
EP (4) EP3691268B1 (pt)
JP (1) JP6059219B2 (pt)
KR (1) KR101944565B1 (pt)
CN (2) CN105721880B (pt)
AU (1) AU2011371809B2 (pt)
BR (1) BR112013033552B1 (pt)
CA (1) CA2840427C (pt)
CL (1) CL2013003736A1 (pt)
CO (1) CO6862115A2 (pt)
DK (1) DK3691268T3 (pt)
ES (1) ES2958967T3 (pt)
HR (1) HRP20231180T1 (pt)
HU (1) HUE063498T2 (pt)
IL (2) IL230189A (pt)
LT (1) LT3691268T (pt)
MX (1) MX2013015154A (pt)
MY (2) MY189650A (pt)
NZ (1) NZ619406A (pt)
PH (1) PH12013502659A1 (pt)
PL (1) PL3691268T3 (pt)
PT (1) PT3691268T (pt)
RS (1) RS64742B1 (pt)
RU (1) RU2587467C2 (pt)
SG (1) SG10201408609SA (pt)
TW (3) TWI587693B (pt)
WO (1) WO2013002818A1 (pt)
ZA (1) ZA201308553B (pt)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL230189A (en) 2011-06-30 2016-09-29 Microsoft Corp Reducing latency in video encoding and decoding
KR20130058584A (ko) 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
JP6048941B2 (ja) * 2012-01-27 2016-12-27 サン パテント トラスト 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
FR2994785A1 (fr) * 2012-08-23 2014-02-28 France Telecom Procede de traitement d'un flux multimedia, terminal de communication, serveur et produit programme d'ordinateur correspondant.
US9161039B2 (en) 2012-09-24 2015-10-13 Qualcomm Incorporated Bitstream properties in video coding
CA2886688C (en) 2012-09-28 2020-01-07 Telefonaktiebolaget Lm Ericsson (Publ) Decoding and encoding of pictures of a video sequence
US9374585B2 (en) 2012-12-19 2016-06-21 Qualcomm Incorporated Low-delay buffering model in video coding
JP5811106B2 (ja) * 2013-01-11 2015-11-11 セイコーエプソン株式会社 映像処理装置、表示装置および映像処理方法
US20140301477A1 (en) * 2013-04-07 2014-10-09 Sharp Laboratories Of America, Inc. Signaling dpb parameters in vps extension and dpb operation
EP4468707A1 (en) * 2013-06-05 2024-11-27 Sun Patent Trust Image encoding method, image decoding method, image encoding apparatus, and image decoding apparatus
EP3015819B1 (en) * 2013-06-27 2019-10-23 Panasonic Intellectual Property Corporation of America Motion sensor device having plurality of light sources
US10313599B2 (en) * 2013-07-01 2019-06-04 Panasonic Intellectual Property Corporation Of America Motion sensor device having plurality of light sources
CN105379273B (zh) * 2013-07-14 2019-03-15 夏普株式会社 对来自比特流的视频进行解码的方法和设备
US9674257B2 (en) * 2013-12-31 2017-06-06 Echostar Technologies L.L.C. Placeshifting live encoded video faster than real time
JP5866499B2 (ja) * 2014-02-24 2016-02-17 パナソニックIpマネジメント株式会社 監視カメラシステム及び監視カメラシステムの制御方法
US10419703B2 (en) * 2014-06-20 2019-09-17 Qualcomm Incorporated Automatic multiple depth cameras synchronization using time sharing
DE102014214750B3 (de) * 2014-07-28 2015-06-11 Reimar Lenz Bildaufnahmesystem mit schnell vibrierendem Global-Shutter-CMOS-Sensor
TWI500904B (zh) * 2014-09-18 2015-09-21 Vivotek Inc 立體攝影機及用來測量立體攝影機與基準面之距離的自動測距方法
US10283091B2 (en) * 2014-10-13 2019-05-07 Microsoft Technology Licensing, Llc Buffer optimization
US10075692B2 (en) * 2015-01-28 2018-09-11 Hfi Innovation Inc. Method of simple intra mode for video coding
US10638140B2 (en) 2015-05-29 2020-04-28 Qualcomm Incorporated Slice level intra block copy and other video coding improvements
US10003813B2 (en) * 2015-06-25 2018-06-19 Samsung Electronics Co., Ltd. Method and system for decoding by enabling optimal picture buffer management
CN106358042B (zh) 2015-07-17 2020-10-09 恩智浦美国有限公司 使用视频图像的帧间预测的并行解码器
US11051026B2 (en) 2015-08-31 2021-06-29 Intel Corporation Method and system of frame re-ordering for video coding
US10962780B2 (en) * 2015-10-26 2021-03-30 Microsoft Technology Licensing, Llc Remote rendering for virtual images
TWI632814B (zh) 2016-11-11 2018-08-11 財團法人工業技術研究院 視訊畫幀產生方法及其系統
FR3058858A1 (fr) * 2016-11-15 2018-05-18 Orange Procede et dispositif de codage et de decodage d'une sequence multi-vues
KR102342051B1 (ko) 2017-08-08 2021-12-22 삼성전자주식회사 영상 처리 장치, 영상 처리 방법 및 영상 디스플레이 시스템
US10412383B2 (en) 2017-08-15 2019-09-10 Google Llc Compressing groups of video frames using reversed ordering
US10748844B2 (en) * 2017-12-30 2020-08-18 Intel Corporation Stress isolation for silicon photonic applications
CN108833932B (zh) * 2018-07-19 2021-01-05 湖南君瀚信息技术有限公司 一种实现高清视频超低延迟编解码及传输的方法及系统
EP3797518B1 (en) * 2018-08-21 2024-12-18 Adeia Guides Inc. Systems and methods for real-time adaptive bitrate transcoding and transmission of transcoded media
US12238353B2 (en) 2018-10-03 2025-02-25 Qualcomm Incorporated Service description for streaming media data
US11252406B2 (en) * 2018-11-07 2022-02-15 Mediatek Inc. Method and apparatus of encoding or decoding video blocks by current picture referencing coding
US10911791B2 (en) * 2019-01-09 2021-02-02 Netflix, Inc. Optimizing encoding operations when generating a buffer-constrained version of a media title
CN113383543B (zh) 2019-02-02 2025-08-29 北京字节跳动网络技术有限公司 使用用于视频编解码中的帧内块复制的额外缓冲区样点的预测
CN113366844B (zh) 2019-02-02 2023-10-03 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的缓冲区中的数据存储
US10992960B2 (en) 2019-02-06 2021-04-27 Jared Michael Cohn Accelerated video exportation to multiple destinations
KR102688366B1 (ko) * 2019-03-01 2024-07-24 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 복사를 위한 방향 기반 예측
WO2020177659A1 (en) 2019-03-01 2020-09-10 Beijing Bytedance Network Technology Co., Ltd. Direction-based prediction for intra block copy in video coding
CN117640927A (zh) 2019-03-04 2024-03-01 北京字节跳动网络技术有限公司 视频编解码中的帧内块复制中的实施方式方面
EP3709272A1 (en) * 2019-03-15 2020-09-16 InterDigital VC Holdings, Inc. Processing a point cloud
CN114175645B (zh) 2019-07-06 2024-04-12 北京字节跳动网络技术有限公司 用于视频编解码中的帧内块复制的虚拟预测缓冲
KR102635519B1 (ko) 2019-07-10 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 코딩에서 인트라 블록 카피를 위한 샘플 식별
EP3981146A4 (en) 2019-07-11 2022-08-03 Beijing Bytedance Network Technology Co., Ltd. BITSTREAM COMPLIANCE CONSTRAINTS FOR INTRA-BLOCK COPY IN VIDEO ENCODING
CN114503574B (zh) * 2019-09-19 2025-01-10 北京字节跳动网络技术有限公司 视频编解码中的缩放窗口
BR112022005293A2 (pt) 2019-09-19 2022-09-20 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeo, aparelho para processar dados de vídeo e meios de armazenamento e de gravação não transitórios legíveis por computador
KR20220027834A (ko) * 2019-10-09 2022-03-08 소니그룹주식회사 포인트 클라우드 복원 전의 디코딩된 프레임들의 동기화
KR102758910B1 (ko) 2019-10-13 2025-01-24 두인 비전 컴퍼니 리미티드 레퍼런스 픽처 리샘플링 및 비디오 코딩 툴 사이의 상호 작용
US11064194B2 (en) 2019-10-31 2021-07-13 Western Digital Technologies, Inc. Encoding digital videos using controllers of data storage devices
CN113497932B (zh) * 2020-04-07 2022-10-18 上海交通大学 测量视频传输时延的方法、系统及介质
WO2021243044A1 (en) * 2020-05-27 2021-12-02 Let's Jam, Llc Methods and systems for synchronizing multimedia
CN116195250A (zh) * 2020-06-09 2023-05-30 Lg电子株式会社 基于dpb操作的图像或视频编码
CN112351285B (zh) * 2020-11-04 2024-04-05 北京金山云网络技术有限公司 视频编码、解码方法和装置、电子设备和存储介质
CN112468875B (zh) * 2020-11-30 2022-03-29 展讯通信(天津)有限公司 视频解码帧的显示输出控制方法及装置、存储介质、终端
US11620725B2 (en) * 2021-02-18 2023-04-04 Qualcomm Incorporated Low latency frame delivery
WO2022225184A1 (ko) 2021-04-19 2022-10-27 삼성전자주식회사 서버 및 그 제어 방법
US20250227313A1 (en) * 2021-11-01 2025-07-10 Lg Electronics Inc. Feature encoding/decoding method and device, and recording medium storing bitstream
US11425423B1 (en) 2022-03-10 2022-08-23 Yendo Hu Memory storage for motion estimation and visual artifact redcution
ES2985524T3 (es) * 2022-03-28 2024-11-06 Deutsche Telekom Ag Receptor de múltiples trayectorias y procesamiento de ATSSS 3GPP en un receptor de múltiples trayectorias
US20240127484A1 (en) * 2022-10-14 2024-04-18 Rovi Guides, Inc. Optimized light field representation for compression

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4309754A (en) 1979-07-30 1982-01-05 International Business Machines Corp. Data interface mechanism for interfacing bit-parallel data buses of different bit width
US4642756A (en) 1985-03-15 1987-02-10 S & H Computer Systems, Inc. Method and apparatus for scheduling the execution of multiple processing tasks in a computer system
EP0537721B1 (en) 1991-10-15 1998-11-25 Hewlett-Packard Company Hardware-configured operating system kernel for a multitasking processor
US6002801A (en) 1995-04-18 1999-12-14 Advanced Micro Devices, Inc. Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
DE19530483A1 (de) 1995-08-18 1997-02-20 Siemens Ag Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
US5861920A (en) * 1996-11-08 1999-01-19 Hughes Electronics Corporation Hierarchical low latency video compression
JPH10229420A (ja) 1997-02-17 1998-08-25 Matsushita Electric Ind Co Ltd 通信システム
US5909559A (en) 1997-04-04 1999-06-01 Texas Instruments Incorporated Bus bridge device including data bus of first width for a first processor, memory controller, arbiter circuit and second processor having a different second data width
US6006303A (en) 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
EP0909094A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Multithread data processor
KR100562116B1 (ko) 1997-11-28 2006-05-25 마츠시타 덴끼 산교 가부시키가이샤 처리 효율을 높인 영상음성 처리장치
JP3935252B2 (ja) 1997-12-26 2007-06-20 キヤノン株式会社 画像形成装置及びジョブ処理方法
US6823016B1 (en) 1998-02-20 2004-11-23 Intel Corporation Method and system for data management in a video decoder
JPH11252552A (ja) 1998-03-05 1999-09-17 Sony Corp ビデオ信号の圧縮符号化方法及び圧縮符号化装置、並びに、圧縮符号化データの多重化方法及び多重化装置
US6298166B1 (en) 1998-03-30 2001-10-02 Seiko Epson Corporation Image transformations in the compressed domain
US6859496B1 (en) 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
JP4146950B2 (ja) 1998-11-04 2008-09-10 キヤノン株式会社 画像形成装置、画像形成装置における表示制御方法及び記憶媒体
US6768774B1 (en) 1998-11-09 2004-07-27 Broadcom Corporation Video and graphics system with video scaling
US6637031B1 (en) 1998-12-04 2003-10-21 Microsoft Corporation Multimedia presentation latency minimization
US6249288B1 (en) 1998-12-14 2001-06-19 Ati International Srl Multi thread display controller
US7370325B1 (en) 1999-02-19 2008-05-06 Lucent Technologies Inc. Eager evaluation of tasks in a workflow system
US6771824B1 (en) 1999-12-28 2004-08-03 Lucent Technologies Inc. Adaptive variable length decoding method
US6574279B1 (en) 2000-02-02 2003-06-03 Mitsubishi Electric Research Laboratories, Inc. Video transcoding using syntactic and semantic clues
JP2002010216A (ja) 2000-04-20 2002-01-11 Canon Inc 復号化装置及びその制御方法並びに記憶媒体
US7206016B2 (en) 2000-05-01 2007-04-17 Polycom, Inc. Filtering artifacts from multi-threaded video
EP1156674A1 (en) 2000-05-19 2001-11-21 THOMSON multimedia Method and device for decoding a video data stream in special reproduction modes
US6963347B1 (en) 2000-08-04 2005-11-08 Ati International, Srl Vertex data processing with multiple threads of execution
GB2366464A (en) 2000-08-14 2002-03-06 Nokia Mobile Phones Ltd Video coding using intra and inter coding on the same data
US20040117427A1 (en) 2001-03-16 2004-06-17 Anystream, Inc. System and method for distributing streaming media
US7366236B1 (en) 2001-06-04 2008-04-29 Cisco Sytems Canada Co. Source adaptive system and method for 2D iDCT
AU2002367381A1 (en) * 2001-12-31 2003-07-24 Bae Systems Information And Electronic Systems Integration Inc. System for peak detection among multiple signals
US7034897B2 (en) 2002-04-01 2006-04-25 Broadcom Corporation Method of operating a video decoding system
US6963613B2 (en) 2002-04-01 2005-11-08 Broadcom Corporation Method of communicating between modules in a decoding system
US7920624B2 (en) 2002-04-01 2011-04-05 Broadcom Corporation Inverse quantizer supporting multiple decoding processes
CN1976454B (zh) 2002-04-19 2011-05-11 松下电器产业株式会社 运动矢量的确定方法
JP2004088736A (ja) * 2002-06-28 2004-03-18 Matsushita Electric Ind Co Ltd 動画像の符号化方法、復号化方法、データストリーム、データ記録媒体およびプログラム
US7787539B2 (en) * 2002-07-17 2010-08-31 Broadcom Corporation Decoding and presentation time stamps for MPEG-4 advanced video coding
JP3534742B1 (ja) * 2002-10-03 2004-06-07 株式会社エヌ・ティ・ティ・ドコモ 動画像復号方法、動画像復号装置、及び動画像復号プログラム
TWI249356B (en) 2002-11-06 2006-02-11 Nokia Corp Picture buffering for prediction references and display
US8798167B2 (en) 2002-11-29 2014-08-05 Sony Corporation Encoder and its method
US7099389B1 (en) 2002-12-10 2006-08-29 Tut Systems, Inc. Rate control with picture-based lookahead window
EP1595405B1 (en) 2003-02-18 2019-12-04 Nokia Technologies Oy Method and device for transmitting media data in nal units over rtp
JP4750350B2 (ja) 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
US7646817B2 (en) 2003-03-28 2010-01-12 Microsoft Corporation Accelerating video decoding using a graphics processing unit
US7627039B2 (en) 2003-09-05 2009-12-01 Realnetworks, Inc. Parallel video decoding
US7869503B2 (en) 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
JP4095559B2 (ja) 2004-02-13 2008-06-04 株式会社東芝 H.264コーデックic、dvd再生装置、h.264コーデック方法
WO2005083684A1 (en) 2004-02-19 2005-09-09 Koninklijke Philips Electronics N.V. Decoding scheme for variable block length signals
EP1942670B1 (en) 2004-04-28 2011-09-14 Panasonic Corporation Stream generation apparatus, stream generation method, coding apparatus, coding method, recording medium and program thereof
US20060002479A1 (en) 2004-06-22 2006-01-05 Fernandes Felix C A Decoder for H.264/AVC video
US20050289505A1 (en) 2004-06-25 2005-12-29 Williams Stanley N Method and system for improving performance and scalability of applications that utilize a flow-based-programming methodology
US8291448B2 (en) 2004-09-15 2012-10-16 Nokia Corporation Providing zapping streams to broadcast receivers
JP4375305B2 (ja) 2004-10-26 2009-12-02 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
JP4867235B2 (ja) 2004-10-26 2012-02-01 ソニー株式会社 情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US20060114995A1 (en) 2004-12-01 2006-06-01 Joshua Robey Method and system for high speed video encoding using parallel encoders
US20060126744A1 (en) 2004-12-10 2006-06-15 Liang Peng Two pass architecture for H.264 CABAC decoding process
US7430238B2 (en) 2004-12-10 2008-09-30 Micronas Usa, Inc. Shared pipeline architecture for motion vector prediction and residual decoding
US20060126726A1 (en) 2004-12-10 2006-06-15 Lin Teng C Digital signal processing structure for decoding multiple video standards
US7817723B2 (en) 2004-12-14 2010-10-19 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E. V. Apparatus and method of optimizing motion estimation parameters for encoding a video signal
EP1675402A1 (en) 2004-12-22 2006-06-28 Thomson Licensing Optimisation of a quantisation matrix for image and video coding
US9219917B2 (en) 2005-01-19 2015-12-22 Thomson Licensing Method and apparatus for real time parallel encoding
US7565021B2 (en) 2005-03-01 2009-07-21 Microsoft Corporation Efficient implementation of block-based transform on graphics processing unit
WO2006096612A2 (en) 2005-03-04 2006-09-14 The Trustees Of Columbia University In The City Of New York System and method for motion estimation and mode decision for low-complexity h.264 decoder
US20060215754A1 (en) 2005-03-24 2006-09-28 Intel Corporation Method and apparatus for performing video decoding in a multi-thread environment
JP4261508B2 (ja) 2005-04-11 2009-04-30 株式会社東芝 動画像復号装置
JP4374548B2 (ja) 2005-04-15 2009-12-02 ソニー株式会社 復号装置および方法、記録媒体、並びに、プログラム
US7920633B2 (en) 2005-04-22 2011-04-05 Broadcom Corporation Method and system for parallel processing video data
US8902989B2 (en) 2005-04-27 2014-12-02 Broadcom Corporation Decoder system for decoding multi-standard encoded video
EP1773063A1 (en) 2005-06-14 2007-04-11 Thomson Licensing Method and apparatus for encoding video data, and method and apparatus for decoding video data
US7119723B1 (en) 2005-07-28 2006-10-10 Texas Instruments Incorporated Decoding variable length codes while using optimal resources
KR100770704B1 (ko) 2005-08-04 2007-10-29 삼성전자주식회사 픽쳐 스킵 방법 및 장치
US8306112B2 (en) 2005-09-20 2012-11-06 Mitsubishi Electric Corporation Image encoding method and image decoding method, image encoder and image decoder, and image encoded bit stream and recording medium
KR20080067637A (ko) 2005-10-03 2008-07-21 노키아 코포레이션 독립 변수들에 대한 적응적 가변 길이 코드들
CA2624339C (en) 2005-10-12 2014-12-02 Thomson Licensing Region of interest h.264 scalable video coding
US8200164B2 (en) * 2005-12-01 2012-06-12 Intel Corporation Wireless communication system, associated methods and data structures
US8767836B2 (en) 2006-03-27 2014-07-01 Nokia Corporation Picture delimiter in scalable video coding
US7694102B2 (en) 2006-03-30 2010-04-06 International Business Machines Corporation Systems and methods for self-tuning memory
EP1841072B1 (de) 2006-03-30 2016-06-01 Unify GmbH & Co. KG Verfahren und Einrichtung zum Dekodieren von schichtkodierten Daten
US7626518B2 (en) 2006-06-08 2009-12-01 Via Technologies, Inc. Decoding systems and methods in computational core of programmable graphics processing unit
US8369419B2 (en) 2006-06-16 2013-02-05 Via Technologies, Inc. Systems and methods of video compression deblocking
US7586425B2 (en) 2006-07-11 2009-09-08 Nokia Corporation Scalable video coding and decoding
US8699583B2 (en) 2006-07-11 2014-04-15 Nokia Corporation Scalable video coding and decoding
CN1960472A (zh) 2006-08-14 2007-05-09 中兴通讯股份有限公司 一种多媒体移动终端及其接收多媒体数据的处理方法
US8218640B2 (en) 2006-10-31 2012-07-10 Sony Computer Entertainment Inc. Picture decoding using same-picture reference for pixel reconstruction
US8121196B2 (en) 2006-11-02 2012-02-21 Corel Corporation Method and apparatus for multi-threaded video decoding
US7573407B2 (en) 2006-11-14 2009-08-11 Qualcomm Incorporated Memory efficient adaptive block coding
CN101601299A (zh) 2006-12-14 2009-12-09 汤姆逊许可公司 用位深度可分级性的增强层残差预测对视频数据进行编码和/或解码的方法和设备
EP2127394A1 (en) 2006-12-27 2009-12-02 Intel Corporation Methods and apparatus to decode and encode video information
WO2008085433A2 (en) 2007-01-05 2008-07-17 Thomson Licensing Hypothetical reference decoder for scalable video coding
JP5114495B2 (ja) * 2007-01-08 2013-01-09 トムソン ライセンシング ビデオストリームのスプライシングのための方法及び装置
US8411734B2 (en) 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
KR101132386B1 (ko) * 2007-04-13 2012-07-16 노키아 코포레이션 비디오 코더
WO2008143157A1 (ja) 2007-05-17 2008-11-27 Sony Corporation 情報処理装置および方法
US8396082B2 (en) 2007-06-05 2013-03-12 Core Wireless Licensing S.A.R.L. Time-interleaved simulcast for tune-in reduction
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
JP5411417B2 (ja) * 2007-09-11 2014-02-12 古野電気株式会社 パルス信号の送受信装置および送受信方法
US8295363B2 (en) * 2007-09-14 2012-10-23 Yahoo! Inc. Restoring program information for clips of broadcast programs shared online
US20110038424A1 (en) * 2007-10-05 2011-02-17 Jiancong Luo Methods and apparatus for incorporating video usability information (vui) within a multi-view video (mvc) coding system
US20090109988A1 (en) 2007-10-26 2009-04-30 Chowdhary Musunuri Video Decoder with an Adjustable Video Clock
US8121187B2 (en) 2007-12-05 2012-02-21 Alcatel Lucent Method and apparatus for performing multiple bit rate video encoding and video stream switching
US20100128779A1 (en) * 2008-11-14 2010-05-27 Chanchal Chatterjee Method and apparatus for splicing in a compressed video bitstream
WO2010086501A1 (en) 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20110002376A1 (en) 2009-07-01 2011-01-06 Wham! Inc. Latency Minimization Via Pipelining of Processing Blocks
JP5604825B2 (ja) * 2009-08-19 2014-10-15 ソニー株式会社 画像処理装置および方法
WO2011043885A1 (en) 2009-10-06 2011-04-14 Dow Global Technologies Llc. Extruded polystyrene foam with broad comonomer content distribution
US9237387B2 (en) 2009-10-06 2016-01-12 Microsoft Technology Licensing, Llc Low latency cacheable media streaming
US8487791B2 (en) * 2010-02-18 2013-07-16 Research In Motion Limited Parallel entropy coding and decoding methods and devices
US8918533B2 (en) * 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
CN101938341B (zh) * 2010-09-17 2012-12-05 东华大学 一种跨节点控制的在线视频流选择性重传方法
US8885729B2 (en) 2010-12-13 2014-11-11 Microsoft Corporation Low-latency video decoding
US8797842B2 (en) * 2011-03-10 2014-08-05 The Boeing Company Aircraft communication bus fault isolator apparatus and method
IL230189A (en) 2011-06-30 2016-09-29 Microsoft Corp Reducing latency in video encoding and decoding
KR20130058584A (ko) * 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치

Also Published As

Publication number Publication date
US11601682B2 (en) 2023-03-07
US20240364934A1 (en) 2024-10-31
TW201301899A (zh) 2013-01-01
TW201728180A (zh) 2017-08-01
CA2840427C (en) 2018-03-06
US20240364935A1 (en) 2024-10-31
HK1226567A1 (zh) 2017-09-29
US20240373067A1 (en) 2024-11-07
EP4246968A3 (en) 2023-12-06
US12075097B2 (en) 2024-08-27
US20230239509A1 (en) 2023-07-27
JP6059219B2 (ja) 2017-01-11
US11641486B2 (en) 2023-05-02
WO2013002818A1 (en) 2013-01-03
HK1195430A1 (zh) 2014-11-07
US10003824B2 (en) 2018-06-19
US12439091B2 (en) 2025-10-07
HUE063498T2 (hu) 2024-01-28
US9743114B2 (en) 2017-08-22
PT3691268T (pt) 2023-09-20
US20230014518A1 (en) 2023-01-19
EP4246967A2 (en) 2023-09-20
US11601683B2 (en) 2023-03-07
US11451830B2 (en) 2022-09-20
US11641487B2 (en) 2023-05-02
TWI587693B (zh) 2017-06-11
HRP20231180T1 (hr) 2024-01-05
EP2727341A4 (en) 2015-03-11
US20240080485A1 (en) 2024-03-07
RU2013158832A (ru) 2015-07-10
KR101944565B1 (ko) 2019-01-31
TWI533677B (zh) 2016-05-11
US20230015752A1 (en) 2023-01-19
US20230020316A1 (en) 2023-01-19
MY189650A (en) 2022-02-23
EP4246968A2 (en) 2023-09-20
CO6862115A2 (es) 2014-02-10
ZA201308553B (en) 2015-02-25
MX2013015154A (es) 2014-03-27
US9426495B2 (en) 2016-08-23
US11871040B2 (en) 2024-01-09
US20130003864A1 (en) 2013-01-03
US20160316228A1 (en) 2016-10-27
US11601681B2 (en) 2023-03-07
JP2014523693A (ja) 2014-09-11
DK3691268T3 (da) 2023-10-02
LT3691268T (lt) 2023-10-10
CN103621085B (zh) 2016-03-16
RS64742B1 (sr) 2023-11-30
US11641485B2 (en) 2023-05-02
US10805640B2 (en) 2020-10-13
CN105721880B (zh) 2019-04-05
EP2727341B1 (en) 2020-04-08
US20220394307A1 (en) 2022-12-08
CL2013003736A1 (es) 2014-08-01
US20170311000A1 (en) 2017-10-26
MY205545A (en) 2024-10-25
US20200404337A1 (en) 2020-12-24
US20210127138A1 (en) 2021-04-29
TWI606722B (zh) 2017-11-21
US20170094316A1 (en) 2017-03-30
PL3691268T3 (pl) 2024-02-19
US20180249184A1 (en) 2018-08-30
US11601684B1 (en) 2023-03-07
US10924766B2 (en) 2021-02-16
US20230008752A1 (en) 2023-01-12
EP2727341A1 (en) 2014-05-07
CN105721880A (zh) 2016-06-29
IL247175A (en) 2017-11-30
CN103621085A (zh) 2014-03-05
US20230010753A1 (en) 2023-01-12
EP3691268A1 (en) 2020-08-05
ES2958967T3 (es) 2024-02-16
CA2840427A1 (en) 2013-01-03
EP3691268B1 (en) 2023-08-30
NZ619406A (en) 2016-01-29
RU2587467C2 (ru) 2016-06-20
SG10201408609SA (en) 2015-02-27
US20140348249A1 (en) 2014-11-27
TW201625008A (zh) 2016-07-01
BR112013033552A2 (pt) 2017-02-07
PH12013502659A1 (en) 2014-02-10
KR20140043767A (ko) 2014-04-10
US8837600B2 (en) 2014-09-16
EP4246967A3 (en) 2023-12-20
US20230017770A1 (en) 2023-01-19
AU2011371809B2 (en) 2016-07-14
IL230189A (en) 2016-09-29
US9729898B2 (en) 2017-08-08

Similar Documents

Publication Publication Date Title
BR112013033552B1 (pt) Método em um sistema de computador que implementa um decodificador de vídeo, método em um sistema de computação, meio legível por computador e sistema de computação
HK1226567B (zh) 用於降低视频编码和解码中的延迟的方法和系统

Legal Events

Date Code Title Description
B25A Requested transfer of rights approved

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US)

B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: A CLASSIFICACAO ANTERIOR ERA: H04N 7/24

Ipc: H04N 19/103 (2014.01), H04N 19/172 (2014.01), H04N

B09A Decision: intention to grant [chapter 9.1 patent gazette]
B09W Correction of the decision to grant [chapter 9.1.4 patent gazette]

Free format text: INCORRECOES NO RELATORIO DE BUSCA, PUBLICADO DESNECESSARIAMENTE.

B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 11/10/2011, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.