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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/172—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
- H04N19/88—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/184—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/31—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding 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
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
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)
| 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)
| 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 | 삼성전자주식회사 | 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치 |
-
2011
- 2011-10-11 IL IL230189A patent/IL230189A/en active IP Right Grant
- 2011-10-11 LT LTEP20162441.8T patent/LT3691268T/lt unknown
- 2011-10-11 PH PH1/2013/502659A patent/PH12013502659A1/en unknown
- 2011-10-11 EP EP20162441.8A patent/EP3691268B1/en active Active
- 2011-10-11 CA CA2840427A patent/CA2840427C/en active Active
- 2011-10-11 MX MX2013015154A patent/MX2013015154A/es active IP Right Grant
- 2011-10-11 CN CN201610092615.0A patent/CN105721880B/zh active Active
- 2011-10-11 BR BR112013033552-1A patent/BR112013033552B1/pt active IP Right Grant
- 2011-10-11 RS RS20230857A patent/RS64742B1/sr unknown
- 2011-10-11 TW TW105103519A patent/TWI587693B/zh not_active IP Right Cessation
- 2011-10-11 DK DK20162441.8T patent/DK3691268T3/da active
- 2011-10-11 NZ NZ619406A patent/NZ619406A/en unknown
- 2011-10-11 PL PL20162441.8T patent/PL3691268T3/pl unknown
- 2011-10-11 WO PCT/US2011/055835 patent/WO2013002818A1/en not_active Ceased
- 2011-10-11 MY MYPI2013702507A patent/MY189650A/en unknown
- 2011-10-11 EP EP23190874.0A patent/EP4246967A3/en active Pending
- 2011-10-11 EP EP23190880.7A patent/EP4246968A3/en active Pending
- 2011-10-11 US US13/270,969 patent/US8837600B2/en active Active
- 2011-10-11 HU HUE20162441A patent/HUE063498T2/hu unknown
- 2011-10-11 SG SG10201408609SA patent/SG10201408609SA/en unknown
- 2011-10-11 JP JP2014518537A patent/JP6059219B2/ja active Active
- 2011-10-11 AU AU2011371809A patent/AU2011371809B2/en active Active
- 2011-10-11 TW TW100136771A patent/TWI533677B/zh not_active IP Right Cessation
- 2011-10-11 EP EP11868856.3A patent/EP2727341B1/en active Active
- 2011-10-11 RU RU2013158832/07A patent/RU2587467C2/ru active
- 2011-10-11 ES ES20162441T patent/ES2958967T3/es active Active
- 2011-10-11 KR KR1020137034813A patent/KR101944565B1/ko active Active
- 2011-10-11 HR HRP20231180TT patent/HRP20231180T1/hr unknown
- 2011-10-11 TW TW106113582A patent/TWI606722B/zh not_active IP Right Cessation
- 2011-10-11 MY MYPI2021007810A patent/MY205545A/en unknown
- 2011-10-11 PT PT201624418T patent/PT3691268T/pt unknown
- 2011-10-11 CN CN201180071993.6A patent/CN103621085B/zh active Active
-
2013
- 2013-11-13 ZA ZA2013/08553A patent/ZA201308553B/en unknown
- 2013-12-27 CL CL2013003736A patent/CL2013003736A1/es unknown
-
2014
- 2014-01-30 CO CO14019170A patent/CO6862115A2/es unknown
- 2014-08-13 US US14/458,997 patent/US9426495B2/en active Active
-
2016
- 2016-07-01 US US15/201,160 patent/US9729898B2/en active Active
- 2016-08-08 IL IL247175A patent/IL247175A/en active IP Right Grant
- 2016-12-13 US US15/377,831 patent/US9743114B2/en active Active
-
2017
- 2017-07-12 US US15/647,962 patent/US10003824B2/en active Active
-
2018
- 2018-04-26 US US15/963,899 patent/US10805640B2/en active Active
-
2020
- 2020-09-02 US US17/009,918 patent/US10924766B2/en active Active
-
2021
- 2021-01-07 US US17/143,782 patent/US11451830B2/en active Active
-
2022
- 2022-08-18 US US17/890,398 patent/US11601681B2/en active Active
- 2022-09-20 US US17/949,025 patent/US11641487B2/en active Active
- 2022-09-20 US US17/948,903 patent/US11601683B2/en active Active
- 2022-09-20 US US17/948,849 patent/US11601682B2/en active Active
- 2022-09-20 US US17/948,982 patent/US11641486B2/en active Active
- 2022-09-20 US US17/949,049 patent/US11601684B1/en active Active
- 2022-09-20 US US17/948,949 patent/US11641485B2/en active Active
-
2023
- 2023-03-21 US US18/124,517 patent/US11871040B2/en active Active
- 2023-11-02 US US18/386,524 patent/US12075097B2/en active Active
-
2024
- 2024-07-10 US US18/768,380 patent/US12439091B2/en active Active
- 2024-07-10 US US18/768,492 patent/US20240364935A1/en active Pending
- 2024-07-10 US US18/768,430 patent/US20240364934A1/en active Pending
Also Published As
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. |